@anoki/fse-ui
Version:
FSE UI components library
6 lines (5 loc) • 4.08 kB
JavaScript
;Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const _=require("./index.cjs674.js"),A=require("react"),x=require("./index.cjs778.js"),N=require("./index.cjs779.js"),v=require("./index.cjs780.js"),E=require("./index.cjs781.js");function p(e){const a=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const l in e)if(l!=="default"){const i=Object.getOwnPropertyDescriptor(e,l);Object.defineProperty(a,l,i.get?i:{enumerable:!0,get:()=>e[l]})}}return a.default=e,Object.freeze(a)}const n=p(A);var S=function(e){return"changedTouches"in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},w=function(e){return[e.deltaX,e.deltaY]},B=function(e){return e&&"current"in e?e.current:e},I=function(e,a){return e[0]===a[0]&&e[1]===a[1]},W=function(e){return`
.block-interactivity-`.concat(e,` {pointer-events: none;}
.allow-interactivity-`).concat(e,` {pointer-events: all;}
`)},z=0,d=[];function F(e){var a=n.useRef([]),l=n.useRef([0,0]),i=n.useRef(),h=n.useState(z++)[0],b=n.useState(N.styleSingleton)[0],y=n.useRef(e);n.useEffect(function(){y.current=e},[e]),n.useEffect(function(){if(e.inert){document.body.classList.add("block-interactivity-".concat(h));var t=_.__spreadArray([e.lockRef.current],(e.shards||[]).map(B),!0).filter(Boolean);return t.forEach(function(r){return r.classList.add("allow-interactivity-".concat(h))}),function(){document.body.classList.remove("block-interactivity-".concat(h)),t.forEach(function(r){return r.classList.remove("allow-interactivity-".concat(h))})}}},[e.inert,e.lockRef.current,e.shards]);var k=n.useCallback(function(t,r){if("touches"in t&&t.touches.length===2||t.type==="wheel"&&t.ctrlKey)return!y.current.allowPinchZoom;var s=S(t),u=l.current,o="deltaX"in t?t.deltaX:u[0]-s[0],f="deltaY"in t?t.deltaY:u[1]-s[1],c,m=t.target,g=Math.abs(o)>Math.abs(f)?"h":"v";if("touches"in t&&g==="h"&&m.type==="range")return!1;var M=window.getSelection(),P=M&&M.anchorNode,j=P?P===m||P.contains(m):!1;if(j)return!1;var R=E.locationCouldBeScrolled(g,m);if(!R)return!0;if(R?c=g:(c=g==="v"?"h":"v",R=E.locationCouldBeScrolled(g,m)),!R)return!1;if(!i.current&&"changedTouches"in t&&(o||f)&&(i.current=c),!c)return!0;var X=i.current||c;return E.handleScroll(X,r,t,X==="h"?o:f)},[]),C=n.useCallback(function(t){var r=t;if(!(!d.length||d[d.length-1]!==b)){var s="deltaY"in r?w(r):S(r),u=a.current.filter(function(c){return c.name===r.type&&(c.target===r.target||r.target===c.shadowParent)&&I(c.delta,s)})[0];if(u&&u.should){r.cancelable&&r.preventDefault();return}if(!u){var o=(y.current.shards||[]).map(B).filter(Boolean).filter(function(c){return c.contains(r.target)}),f=o.length>0?k(r,o[0]):!y.current.noIsolation;f&&r.cancelable&&r.preventDefault()}}},[]),T=n.useCallback(function(t,r,s,u){var o={name:t,delta:r,target:s,should:u,shadowParent:K(s)};a.current.push(o),setTimeout(function(){a.current=a.current.filter(function(f){return f!==o})},1)},[]),L=n.useCallback(function(t){l.current=S(t),i.current=void 0},[]),Y=n.useCallback(function(t){T(t.type,w(t),t.target,k(t,e.lockRef.current))},[]),D=n.useCallback(function(t){T(t.type,S(t),t.target,k(t,e.lockRef.current))},[]);n.useEffect(function(){return d.push(b),e.setCallbacks({onScrollCapture:Y,onWheelCapture:Y,onTouchMoveCapture:D}),document.addEventListener("wheel",C,v.nonPassive),document.addEventListener("touchmove",C,v.nonPassive),document.addEventListener("touchstart",L,v.nonPassive),function(){d=d.filter(function(t){return t!==b}),document.removeEventListener("wheel",C,v.nonPassive),document.removeEventListener("touchmove",C,v.nonPassive),document.removeEventListener("touchstart",L,v.nonPassive)}},[]);var O=e.removeScrollBar,q=e.inert;return n.createElement(n.Fragment,null,q?n.createElement(b,{styles:W(h)}):null,O?n.createElement(x.RemoveScrollBar,{noRelative:e.noRelative,gapMode:e.gapMode}):null)}function K(e){for(var a=null;e!==null;)e instanceof ShadowRoot&&(a=e.host,e=e.host),e=e.parentNode;return a}exports.RemoveScrollSideCar=F;exports.getDeltaXY=w;exports.getTouchXY=S;
//# sourceMappingURL=index.cjs733.js.map