morphing-scroll 2.10.3 → 2.10.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/index.js +1 -1
- package/dist/esm/index.js +1 -1
- package/package.json +1 -1
package/dist/cjs/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),t=require("react"),r=require("keytask-core");const n=(e,t=!1,r)=>{let n=[];if(n=Array.isArray(e)?2===e.length?[e[1],e[0],e[1],e[0]]:[...e]:[e,e,e,e],t&&(n=[n[1],n[0],n[3],n[2]]),r){const e=[];for(let t=0;r>t;t++)e.push(n[t%4]);n=e}return n},o=({className:r,children:o,style:i,root:l,threshold:s,rootMargin:c,visibleContent:a=!1,onIntersection:u})=>{const[d,m]=t.useState(!1),f=t.useRef(null),h=t.useMemo((()=>{if(!c)return"";const e=n(c);return`${e[0]}px ${e[1]}px ${e[2]}px ${e[3]}px`}),[c]),p=t.useCallback((([e])=>{m(e.isIntersecting),u&&u({time:e.time,rootBounds:e.rootBounds,boundingClientRect:e.boundingClientRect,intersectionRect:e.intersectionRect,isIntersecting:e.isIntersecting,intersectionRatio:e.intersectionRatio,target:e.target})}),[u]);return t.useEffect((()=>{const e=new IntersectionObserver(p,{root:l,threshold:s,rootMargin:h});return f.current&&e.observe(f.current),()=>{e.disconnect()}}),[p,l,s,h]),e.jsx("div",{"intersection-tracker":"",className:r,ref:f,style:i,children:a||d?o:null})};o.displayName="IntersectionTracker";const i=({className:r,children:n,style:o,measure:i="inner",onResize:l})=>{const s=t.useRef(null);t.useEffect((()=>{const e=s.current;if(!e)return;const t=new ResizeObserver((e=>{for(const t of e)l&&l(t.contentRect)}));return t.observe(e),()=>{t.unobserve(e),t.disconnect()}}),[i,l]);const c={width:"max-content",height:"max-content"},a={inner:{...c},outer:{width:"100%",height:"100%"},all:{minWidth:"100%",minHeight:"100%",...c}};return e.jsx("div",{"resize-tracker":"",className:r,ref:s,style:{willChange:"width, height",...a[i],...o},children:n})};i.displayName="ResizeTracker";let l=1;function s(e,t=0,r=1/0,n=!0){return Math.max(t,Math.min(n?Math.round(e):e,r))}const c="wrap-id";function a(e,t,r,n,o){t.matches(":focus")||t.focus(),n.animating||(n.targetScrollX=s(t.scrollLeft,0,r[0]),n.targetScrollY=s(t.scrollTop,0,r[1])),"x"===o?n.targetScrollX=s(n.targetScrollX+e.deltaY,0,r[0]):n.targetScrollY=s(n.targetScrollY+e.deltaY,0,r[1]),n.animating||(n.animating=!0,n.animationFrameId=requestAnimationFrame((function e(){let i;if("x"===o){const e=s(t.scrollLeft+.4*(n.targetScrollX-t.scrollLeft),0,r[0]);t.scrollLeft=e,i=Math.abs(e-n.targetScrollX)}else{const e=s(t.scrollTop+.4*(n.targetScrollY-t.scrollTop),0,r[1]);t.scrollTop=e,i=Math.abs(e-n.targetScrollY)}i>2.5?n.animationFrameId=requestAnimationFrame(e):("x"===o?t.scrollLeft=s(n.targetScrollX,0,r[0]):t.scrollTop=s(n.targetScrollY,0,r[1]),n.animating=!1,n.animationFrameId=null)})))}const u=({type:r,direction:n,progressReverse:o,size:i,progressTrigger:l,scrollBarOnHover:s,scrollBarEvent:c,thumbSize:u,thumbSpace:d,objLengthPerSize:m,sliderCheckLocal:f,duration:h,isTouched:p,scrollStateRef:g,scrollEl:y,scrollBarsRef:x,triggerUpdate:b,overscroll:v,maxScrollSize:w})=>{const M=t.useRef(null),S=t.useRef(null),E=["hybrid","y"].includes(n)?"y":"x",k=Math.abs(v.current[E])*(u/200),L=u-k,j=0>v.current[E]?d+k:d,R=t.useMemo((()=>{if("scroll"===r)return;const t=i["x"===E?0:1];return Array.from({length:m},((n,o)=>e.jsx("div",{className:"ms-slider-element",style:{..."sliderMenu"===r&&{cursor:"pointer"}},onClick:"sliderMenu"===r?()=>{c(t*o,E,h,f)}:void 0,children:Array.isArray(l[0].progressElement)?l[0].progressElement[o]:l[0].progressElement},o)))}),[m,r,l[1],h,f,i[0],i[1],c]),A=t.useMemo((()=>"x"!==n?"y":"x"),[n]),z=i["x"===A?0:1],T="scroll"!==r?"":u+2*d>z?"flex-end":"flex-start";t.useEffect((()=>{if(p||!l[0].wheel)return;const e=M.current,t=y.current;if(!e||!t)return;let r=e.previousElementSibling;for(;r&&!r.classList.contains("ms-element");)r=r.previousElementSibling;const n=e=>a(e,t,w,g.current,A);return e.addEventListener("wheel",n,{passive:!1}),()=>e.removeEventListener("wheel",n)}),[A]),t.useEffect((()=>{const e="slider"===r?M.current:S.current;if(!e||"sliderMenu"===r)return;const t=e=>c(e);return e.addEventListener("pointerdown",t),()=>e.removeEventListener("pointerdown",t)}),[c,r]),t.useEffect((()=>{const e=M.current;if(e)return x.current.add(e),b(),()=>{x.current.delete(e)}}),[u]);const C={position:"absolute",...s&&{opacity:0,transition:"opacity 0.2s ease-in-out"}};return e.jsx(t.Fragment,{children:"scroll"===r?e.jsx("div",{className:"ms-bar ms-"+A,ref:M,"data-direction":A,style:{...C,width:"fit-content",height:z+"px",..."x"===n?{transformOrigin:"left top",left:"50%",...o?{top:0,transform:"rotate(-90deg) translate(-100%, -50%)"}:{transform:"rotate(-90deg) translateY(-50%)"}}:{top:"50%",transform:"translateY(-50%)",...o?{left:0}:{right:0}}},children:e.jsx("div",{className:"ms-thumb",ref:S,style:{height:L+"px",transform:`translateY(${j}px)`,...l[0].progressElement&&{cursor:"grab"},display:"flex",alignItems:T},children:l[0].progressElement})}):m>1&&l[0].progressElement&&e.jsx("div",{className:"ms-slider ms-"+A,ref:M,"data-direction":A,style:{...C,display:"flex",..."slider"===r&&{cursor:"grab"},..."x"===n?{transformOrigin:"left top",left:"50%",transform:"translateX(-50%)",...o?{top:0}:{bottom:0}}:{flexDirection:"column",top:"50%",transform:"translateY(-50%)",...o?{left:0}:{right:0}}},children:R})})};u.displayName="ScrollBar";const d=({edgeGradient:t,visibility:r,edgeType:n,size:o})=>{const i={position:"absolute",[n]:0,pointerEvents:"none",transition:"opacity 0.2s ease-in-out","--edge-visibility":r?1:0,opacity:"var(--edge-visibility)",...t.color&&{background:t.color&&`linear-gradient(${["left","right"].includes(n)?"270deg, ":""}${t.color}, transparent)`},...["left","right"].includes(n)?{height:"100%",width:t.size+"px",top:0}:{width:"100%",height:t.size+"px",left:0},..."left"===n?{transform:"scaleX(-1)"}:"bottom"===n?{transform:"scaleY(-1)"}:{}},l=`ms-edge ${n}${r?"":" ms-disabled"}`;return e.jsx("div",{className:l,style:i})};d.displayName="Edge";var m=t.memo(d);const f=({visibility:r,arrows:n,arrowType:o,handleArrow:i,size:l})=>{const s=t.useRef(null),c={position:"absolute",display:"flex",justifyContent:"center",alignItems:"center",cursor:"pointer",width:n.size+"px",...o?{[o]:0}:{},..."top"===o&&{transform:"rotate(-90deg) translateX(-100%)",transformOrigin:"left top"},..."bottom"===o&&{transform:"rotate(90deg) translateX(-100%)",transformOrigin:"left bottom"},..."left"===o&&{transform:"scaleX(-1)"},...["top","bottom"].includes(o)?{height:l+"px"}:{height:"100%",top:0}};return t.useEffect((()=>{const e=s.current;if(!e)return;const t=()=>i(o);return e.addEventListener("click",t),()=>{e.removeEventListener("click",t)}}),[i,o]),e.jsx("div",{className:`ms-arrow-box ${o}${r?" active":""}`,ref:s,style:c,children:n.element})};f.displayName="Arrow";var h=t.memo(f);const p=e=>{const t=e.getAttribute("data-direction");e.style.opacity="0",e.classList.remove("hover"),e.classList.add("leave"),r.cancelTask("remove"+t),r.setTask((()=>e.classList.remove("leave")),200,"remove"+t)},g=e=>{const t=e.getAttribute("data-direction");r.cancelTask("remove"+t),e.style.opacity="1",e.classList.remove("leave"),e.classList.add("hover")},y=function(){let e=null,t=0;const r=new Map,n=()=>{r.forEach(((e,t)=>{e()||r.delete(t)})),e=0!==r.size?requestAnimationFrame(n):null};return{start:(o,i)=>{const l=i??++t;return r.delete(l),r.set(l,o),null===e&&(e=requestAnimationFrame(n)),l},stop:t=>{void 0!==t?(r.delete(t),0===r.size&&null!==e&&(cancelAnimationFrame(e),e=null)):(r.clear(),null!==e&&(cancelAnimationFrame(e),e=null))},isRunning:e=>void 0===e?r.size>0:r.has(e)}}(),x=(e,t,r)=>{const n=e.current[t],o=performance.now();y.start((()=>{const i=performance.now(),l=Math.min((i-o)/140,1);return 1>l?(e.current[t]=n*(1-l),r(),!0):(e.current[t]=0,r(),!1)}))};let b,v={x:0,y:0},w={x:0,y:0},M={x:0,y:0,t:0,distX:0,distY:0},S=null;const E=(e,t,r,n)=>{if(!e)return;let o=null;["thumb","slider"].includes(e)?o="slider"===e?t?.closest(".ms-slider"):t:"wrapp"===e&&(o=r),((e,t)=>{if(!e)return;const r=window.matchMedia("(pointer: coarse)").matches;if("start"===t){if(!r){let e=document.getElementById("ms-cursor-lock");e||(e=document.createElement("style"),e.id="ms-cursor-lock",e.textContent="\n * {\n cursor: grabbing !important;\n user-select: none;\n }\n ",document.head.appendChild(e))}e.style.cursor="grabbing",e.classList.add("active")}else{if(!r){const e=document.getElementById("ms-cursor-lock");e&&e.remove()}e.style.cursor="grab",e.classList.remove("active")}})(o,n)},k=(e,t,r,n)=>{"x"===e?(r.scrollStateRef.targetScrollX=n,t.scrollLeft!==n&&(t.scrollLeft=n)):(r.scrollStateRef.targetScrollY=n,t.scrollTop!==n&&(t.scrollTop=n))},L=(e,t,r,n)=>{const o=n.scrollElement;if(!o)return;const i="x"===e,l={x:n.event.clientX,y:n.event.clientY};if(!l)return;const c=(e,t,r)=>{if(0===e)return 0;const o="x"===t?n.sizeLocal[0]:n.sizeLocal[1],i=.14*Math.max(600,o),l=Math.abs(e);return s(e*i/(i+(r?-l:l)),-150,150)};if(!S)return void(S={x:{value:l.x,rest:0,raw:c(n.overscrollRef.current.x,"x",!0)},y:{value:l.y,rest:0,raw:c(n.overscrollRef.current.y,"y",!0)}});const a=S,u={x:l.x-a.x.value,y:l.y-a.y.value},d=Math.abs(v[e]);if(d>2?n.isDraggingRef.current=!0:3>d&&(v[e]+=u[e]),n.isTouched){const e=performance.now();if(M.t){const t=Math.max(e-M.t,8);M={x:.8*M.x+u.x/t*.2,y:.8*M.y+u.y/t*.2,t:e,distX:(M.distX??0)+Math.abs(u.x),distY:(M.distY??0)+Math.abs(u.y)}}else M.t=e}const m="wrapp"===n.clickedObject.current?-u[e]:u[e],f=i?"scrollLeft":"scrollTop",h=i?0:1,p=(t,r,l)=>{const a=S[e],u=i?n.maxScrollSize[0]:n.maxScrollSize[1];if(!Number.isFinite(t)||!Number.isFinite(r))return void(S=null);if(0!==a.raw){const t=a.raw;return a.raw+=.6*r,l&&(n.overscrollRef.current[e]=c(a.raw,e),n.triggerUpdate()),Math.sign(a.raw)!==Math.sign(t)?(a.raw=0,void(l&&(n.overscrollRef.current[e]=0,n.triggerUpdate()))):void 0}if(0>=u)return void k(e,o,n,0);const d=o[f];if(0>=d&&0>t||d>=u&&t>0)return a.raw+=r,void(l&&(n.overscrollRef.current[e]=c(a.raw,e),n.triggerUpdate()));const m=s(o[f]+t,0,u);k(e,o,n,m)};if("thumb"===n.clickedObject.current&&"slider"!==n.type){const r=m*t+a[e].rest,n=Math.trunc(r);return a[e].rest=r-n,void p(n,m,!1)}if("slider"===n.type&&(w[e]+=m),"wrapp"===n.clickedObject.current)return void p(m/r[h],u[e],!0);const g=o[f];if(n.sliderElSize&&Math.abs(w[e])<n.sliderElSize[i?0:1])return;const y=e=>{const t=o[i?"clientWidth":"clientHeight"]+n.gap[h];return t*(Math.floor(Math.max(0,g)/t)+e)},x=m>0&&g+n.sizeLocal[h]<n.wrapElWH[h]?y(1):0>m&&g>0?y(-1):null;w[e]=0,n.smoothScroll(x,e,10)};function j(e){y.stop(),["x","y"].forEach((t=>{e.rafScrollAnim.cancel(),r.cancelTask("smoothScrollBlock"+t)}));const t=e.scrollElement;if(!t)return;e.scrollStateRef.targetScrollX=t.scrollLeft,e.scrollStateRef.targetScrollY=t.scrollTop,M={x:0,y:0,t:0,distX:0,distY:0};const n=[t.scrollWidth,t.scrollHeight],o=["scroll","slider"].includes(e.type)?function(e){const t=e.getBoundingClientRect();return[t.width/e.clientWidth,t.height/e.clientHeight]}(t):[];let i=1;if("thumb"===e.clickedObject.current&&e.axisFromAtr){const t="x"===e.axisFromAtr?0:1,r=(e.sizeLocal[t]-e.scrollBarEdge[t]-e.thumbSize)*o[t];i=e.maxScrollSize[t]/r,Number.isFinite(i)&&i>0||(i=1)}E(e.clickedObject.current,e.target,t,"start"),b?.abort();const l=new AbortController;b=l;const{signal:c}=l;document.addEventListener("pointermove",(t=>{(t=>{let r;if("thumb"===e.clickedObject.current&&"slider"===e.type){const t=e.target?.closest(".ms-slider");if(!t)return;const n=r=>{const n=t.getBoundingClientRect();return Math.round(("x"===r?n.width:n.height)/e.objLengthPerSize["x"===r?0:1])};r=[n("x"),n("y")]}!function(e){const t=e.direction||"y";"hybrid"===t?["wrapp","slider"].includes(e.clickedObject.current)?["x","y"].forEach((t=>L(t,e.thumbRatio,e.visualDiff,e))):e.axisFromAtr&&L(e.axisFromAtr,e.thumbRatio,e.visualDiff,e):L(e.axisFromAtr?e.axisFromAtr:t,e.thumbRatio,e.visualDiff,e);const r={x:e.event.clientX,y:e.event.clientY};S&&(S.x.value=r.x,S.y.value=r.y)}({...e,event:t,wrapElWH:n,visualDiff:o,thumbRatio:i,sliderElSize:r})})(t)}),{signal:c});const a=t=>{e.isDraggingRef.current=!1,function(e){b?.abort();const t=e.scrollElement;if(t){if(E(e.clickedObject.current,e.target,t,"end"),"slider"===e.type&&"thumb"!==e.clickedObject.current){const r=w,n=(r,n)=>{const o="x"===r,i=o?e.maxScrollSize[0]:e.maxScrollSize[1],l=t[o?"scrollLeft":"scrollTop"],s=o?e.gap[0]:e.gap[1],c=t[o?"clientWidth":"clientHeight"]+s,a=(Math[n?n>0?"floor":"ceil":"round"](l/c)+(n??0))*c;a>i||0>a||e.smoothScroll(a,r,e.duration)},o=(e,t)=>{Math.abs(t)>20?n(e,t>0?1:-1):n(e)};0===r.x&&0===r.y?"hybrid"===e.direction?["x","y"].forEach((e=>o(e,r[e]))):o(e.direction,r[e.direction]):Object.entries(r).forEach((([e,t])=>{0!==t&&o(e,t)}))}if(e.isTouched&&"scroll"===e.type&&"slider"!==e.clickedObject.current){const r=r=>{const n=M[r]*e.thumbRatio,o="x"===r?M.distX:M.distY;80>performance.now()-M.t&&Math.abs(n)>.05&&o>12&&function({el:e,axis:t,velocity:r,rafSchedule:n}){const o=Math.sign(r);let i=Math.abs(r);i=Math.pow(i,.92),.2>i&&(i=.2),r=i*o;const l="y"===t?"scrollTop":"scrollLeft",c="y"===t?e.scrollHeight-e.clientHeight:e.scrollWidth-e.clientWidth;let a=performance.now();const u=()=>{const t=performance.now(),o=t-a;if(a=t,.02>Math.abs(r*=Math.exp(-.0025*o)))return;let i=e[l]+r*o;(0>i||i>c)&&(r*=.4,i=s(i,0,c)),e[l]=i,n("step",u)};n("step",u)}({el:t,axis:r,velocity:"thumb"===e.clickedObject.current?n:-n,rafSchedule:e.rafScrollAnim.schedule})};"hybrid"===e.direction?"wrapp"===e.clickedObject.current?["x","y"].forEach((e=>r(e))):r(e.axisFromAtr):r(e.axisFromAtr?e.axisFromAtr:e.direction)}S=null,0!==e.overscrollRef.current.x&&x(e.overscrollRef,"x",e.triggerUpdate),0!==e.overscrollRef.current.y&&x(e.overscrollRef,"y",e.triggerUpdate),e.clickedObject.current=null,M={x:0,y:0,t:0,distX:0,distY:0},v={x:0,y:0},w={x:0,y:0},e.triggerUpdate()}}({...e,event:t,thumbRatio:i})};document.addEventListener("pointerup",a,{signal:c}),document.addEventListener("pointercancel",a,{signal:c})}function R(e,t){return e>t?Math.floor(e/t):1}const A=new WeakMap;function z(e,t,r,n,o){const i=(e,t)=>"full"===e?("x"===t?r[0]:r[1])-("x"===t?n:o):e;if("hybrid"!==t&&!Array.isArray(e)){const r=i(e,t)+"px";return"x"===t?{minWidth:r}:{minHeight:r}}let l,s;return Array.isArray(e)?[l,s]=e:l=s=e,{minWidth:i(l,"x")+"px",minHeight:i(s,"y")+"px"}}const T=e=>e?"start"===e?"flex-start":"center"===e?"center":"flex-end":void 0;function C(e,t,r=0,n=0){return o=>{let i=!1;const l={width:(o.width??0)-r,height:(o.height??0)-n},s=0===l.width&&0===l.height;s&&!i&&(i=!0),e.current?.width===l.width&&e.current?.height===l.height||s&&i||(e.current=l,t())}}const F=()=>"undefined"!=typeof window&&(window.matchMedia?.("(pointer: coarse)").matches??!1);function O(e,t,r){return t?s(Math.round(e/t*e),r,e):0}function N(e,t,r,n){return t?s(e/t*(r-n),0,r-n):0}function I(){let e=null;const t=new Map;return{schedule:(r,n)=>{t.set(r,n),null===e&&(e=requestAnimationFrame((()=>{e=null;const r=Array.from(t.values());t.clear(),r.forEach((e=>e()))})))},cancel:()=>{null!==e&&(cancelAnimationFrame(e),e=null,t.clear())}}}const Y=e=>{if(null==e)return[];if(t.isValidElement(e)){const r=e;return r.type===t.Fragment?t.Children.toArray(r.props.children).flatMap(Y):[r]}return[e]},H=e=>{const t=e.lastIndexOf(":$");return-1!==t?e.slice(t+2).replace(/=0/g,"=").replace(/=2/g,":"):e.startsWith(".$")?e.slice(2).replace(/=0/g,"=").replace(/=2/g,":"):e},W=40,X="ms-under-drag";let $,B=null,P=!1;const D={x:0,y:0},q={x:0,y:0};let V=!1,U=null,K="",_=null,G=null,Z=null;const J=I(),Q=()=>{G&&G.removeAttribute(X),U=null,G=null,_=null,K="",Z=null};function ee(e,t,r,n,o,i){const l=e-t,s=r-e;return W>l&&n>0?{dir:-1,distance:l}:W>s&&i>n+o?{dir:1,distance:s}:null}function te(e){const t=s((W-Math.abs(e))/W,0,1,!1);return t*t*20|0}function re(){if(!U)return;const{parent:e,element:t,direction:r}=U,n=t.getBoundingClientRect(),o=q.x,i=q.y;if(o<n.left-W||o>n.right+W||i<n.top-W||i>n.bottom+W)return void Q();let l=null,s=null,c=0,a=0;const u="x"!==r?ee(i,n.top,n.bottom,t.scrollTop,t.clientHeight,t.scrollHeight):null;u&&(l=-1===u.dir?"top":"bottom",a=te(u.distance)*u.dir);const d="y"!==r?ee(o,n.left,n.right,t.scrollLeft,t.clientWidth,t.scrollWidth):null;d&&(s=-1===d.dir?"left":"right",c=te(d.distance)*d.dir),K=[l,s].filter(Boolean).join(" "),K!==Z&&(e.setAttribute(X,K),Z=K),(c||a)&&t.scrollBy(c,a),J.schedule("autoScrollLoop",re)}function ne(e){e instanceof DragEvent&&0===e.buttons?oe():q.x===e.clientX&&q.y===e.clientY||(q.x=e.clientX,q.y=e.clientY,J.schedule("onMove",(()=>{if(!V){const e=q.x-D.x,t=q.y-D.y;if(10>Math.hypot(e,t))return;V=!0}const e=document.elementFromPoint(q.x,q.y);if(!e)return;const t=e.closest("[morph-scroll]");if(!t&&!U)return void Q();const r=t?le.get(t):U;r&&(U=r,_!==r.element&&(G&&G!==r.parent&&G.removeAttribute(X),_=r.element,G=r.parent,G.setAttribute(X,K),Z=K,re()))})))}function oe(){B?.abort(),B=null,V=!1,J.cancel(),Q()}function ie(e){const t=e instanceof PointerEvent;if(t&&!e.target.closest("[ms-custom-drag]"))return;D.x=e.clientX,D.y=e.clientY,B?.abort();const r=new AbortController;B=r;const{signal:n}=r;t?(document.addEventListener("pointermove",ne,{signal:n}),document.addEventListener("pointerup",oe,{signal:n})):(document.addEventListener("dragover",ne,{signal:n}),document.addEventListener("dragend",oe,{signal:n}),document.addEventListener("drop",oe,{signal:n}),document.addEventListener("pointerdown",oe,{signal:n}),window.addEventListener("blur",oe,{signal:n}))}const le=new Map;const se=({className:o,children:d,type:f="scroll",direction:y="y",scrollPosition:x,onScrollValue:b,isScrolling:v,onRenderedKeysChange:w,size:M,objectsSize:S,crossCount:E,gap:k,wrapperMargin:L,wrapperMinSize:W,wrapperAlign:X,elementsAlign:D,elementsDirection:q="row",edgeGradient:V,progressTrigger:U={wheel:!0},progressReverse:K=!1,scrollBarOnHover:_=!1,scrollBarEdge:G,thumbMinSize:Z,render:J,emptyElements:Q,suspending:ee=!1,fallback:te,dragScroll:re})=>{const ne=function(){const[,e]=t.useState({});return t.useCallback((()=>{e({})}),[])}(),oe=function(){const e=t.useRef(null);return null===e.current&&(e.current=""+l++),e.current}(),se=I(),ce=()=>se.schedule("triggerUpdate",ne),ae=I();if(!M)throw Error('prop "size" is not provided'+("\n morph-scroll "+oe));Object.keys(U).length,"none"===S||Array.isArray(S)&&("none"===S[0]||S[1]);const ue=t.useRef(null),de=t.useRef(null),me=t.useRef(null),fe=t.useRef(null),he=t.useRef(new Set),pe=t.useRef(F()),ge=t.useRef(!0),ye=t.useRef(null),xe=t.useRef({loaded:new Set,empty:new Set}),be=t.useRef({targetScrollY:0,targetScrollX:0,animating:!1,animationFrameId:0}),ve=t.useRef(!1),we=t.useRef(!1),Me=t.useRef(function(e=2){let t=0,r=0,n=null,o=null;return{update(i,l){const s=i-t,c=l-r;Math.abs(s)>e&&(n=s>0?"right":"left",t=i),Math.abs(c)>e&&(o=c>0?"down":"up",r=l)},reset(){n=null,o=null},get:()=>({x:n,y:o})}}()),Se=t.useRef({x:null,y:null}),Ee=t.useRef({x:0,y:0}),ke=t.useRef(!1),Le=t.useRef(null),je=t.useRef(w);function Re(){return t.useRef({width:0,height:0})}const Ae=Re(),ze=Re(),Te=Re(),[Ce,Fe,Oe,Ne,Ie,Ye,He,We,Xe,$e,Be]=function(...e){const r=new WeakMap,n=e=>{if(null===e)return 1;if("boolean"==typeof e)return e?2:3;if("number"==typeof e||"bigint"==typeof e)return 0|+e;if("string"==typeof e){let t=0;for(let r=0;r<e.length;r++)t=31*t+e.charCodeAt(r)>>>0;return t}if(void 0===e)return 4;if("function"==typeof e)return 5;if(t.isValidElement(e))return 6;if(Array.isArray(e)){let t=0;for(let r=0;r<e.length;r++)t=31*t+n(e[r])>>>0;return t}if(e instanceof Set)return Array.from(e).map(n).sort(((e,t)=>e-t)).reduce(((e,t)=>31*e+t>>>0),0);if(e instanceof Map)return Array.from(e.entries()).map((([e,t])=>31*n(e)+n(t)>>>0)).sort(((e,t)=>e-t)).reduce(((e,t)=>31*e+t>>>0),0);if("object"==typeof e&&null!==e){if(r.has(e))return r.get(e);const t=Object.entries(e).sort((([e],[t])=>e.localeCompare(t))).map((([,e])=>n(e))).reduce(((e,t)=>31*e+t>>>0),0);return r.set(e,t),t}return 7};return e.map(n)}(x,J,M,S,Q,W,X,k,U,xe.current.empty,G),Pe=t.useMemo((()=>{let e=[null],t=200,r=null;if(null!=x)if("number"==typeof x||"end"===x)e=[x,x];else if(Array.isArray(x))e=x;else if("object"==typeof x){const n=x.value;"number"==typeof n||"end"===n?e=[n,n]:Array.isArray(n)&&(e=n),t=x.duration??200,r=x.updater??null}return{value:e,duration:t,updater:r}}),[Ce]),De={color:null,size:40},qe=t.useMemo((()=>"object"==typeof V?{...De,...V}:"string"==typeof V?{color:V,size:40}:De),[V]),Ve=t.useMemo((()=>{const e=U.arrows,r={size:40,contentReduce:!0,loop:!1};return t.isValidElement(e)?{...r,element:e}:"object"==typeof e&&null!==e?{...r,...e}:r}),[Xe]),Ue=t.useMemo((()=>t.Children.toArray(d).flatMap(Y)),[d]),Ke=t.useMemo((()=>Ue.map((e=>t.isValidElement(e)&&e.key?e.key+"":null)).filter((e=>null!==e)).filter((e=>!("clear"===Q||Q&&"object"==typeof Q&&"mode"in Q&&"clear"===Q.mode)||!xe.current.empty?.has(e)))),[d,Ie,$e]),[_e,Ge,Ze,Je]=L?n(L):[0,0,0,0],Qe=_e+Ze,et=Je+Ge,tt=t.useMemo((()=>"number"==typeof k?[k,k]:Array.isArray(k)?[k[1]??0,k[0]??0]:[0,0]),[k]),rt=t.useMemo((()=>{const e={type:void 0,rootMargin:0,stopLoadOnScroll:!1,trackVisibility:!1};if("string"==typeof J)return{...e,type:J};if("object"==typeof J&&null!==J){const{type:t,rootMargin:r=e.rootMargin,stopLoadOnScroll:n=e.stopLoadOnScroll,trackVisibility:o=e.trackVisibility}=J;return{type:t,rootMargin:r,stopLoadOnScroll:n,trackVisibility:o}}return e}),[Fe]),nt=t.useMemo((()=>n(rt.rootMargin)),[rt.rootMargin,y]),ot=t.useMemo((()=>{const[e,t]=Array.isArray(M)?M:"number"==typeof M?[M,M]:[Ae.current.width,Ae.current.height];if(!U.arrows||!Ve.size||!Ve.contentReduce)return[e,t,e,t];const r=2*Ve.size;let n=e,o=t;return"x"===y?n=e-r:"y"===y?o=t-r:"hybrid"===y&&(n=e-r,o=t-r),[n,o,e,t]}),[Oe,Xe,y,Ve,Ae.current.height,Ae.current.width]),it="x"===y?ot[0]:ot[1],lt=t.useMemo((()=>{if(!G)return[0,0];if("number"==typeof G){const e=2*G;return[e,e]}if(Array.isArray(G)){const[e=0,t]=G;return[2*e,2*(t??e)]}return[0,0]}),[Be]),st=t.useMemo((()=>[ot[0]-lt[0],ot[1]-lt[1]]),[lt.join(),ot[0],ot[1]]),ct=t.useMemo((()=>S?Array.isArray(S)?S:n(S,!0,2):[null,null]),[Ne]),at=t.useMemo((()=>{const{height:e,width:t}=Te.current,r=(e,t,r)=>t||("number"==typeof e?e:"size"===e?r:0);return[r(ct[0],t,ot[0]),r(ct[1],e,ot[1])]}),[ct.join(),y,Te.current.width,Te.current.height,ot.join()]),ut=t.useMemo((()=>J&&Q&&!te?e.jsx("div",{className:"ms-empty-element"}):te),[!!te,Fe,Ie]),dt=t.useMemo((()=>{if("none"===ct[0]||"none"===ct[1])return[1,Ke.length];const e="x"===y?1:0,t="row"===q,r=ot[e],n=at[e]?at[e]+tt[e]:0,o="hybrid"===y&&r?n*Ke.length:r,i=n?Math.floor(o/n):1;let l=E&&i>=E?"hybrid"===y?Math.ceil(i/E):E:i;const s=l>1&&l<Ke.length?Math.ceil(Ke.length/l):l<Ke.length?Ke.length:1;t||(l=Math.ceil(Ke.length/s));const c=E&&E<Ke.length,a=e=>Number.isFinite(e)&&e>0?e:1;if("hybrid"===y){const e=c?t?E:l:t?Ke.length:1,r=c?t?l:E:t?1:Ke.length;return[a(e),a(r)]}return[a(l),a(s)]}),[q,tt[0],tt[1],at[0],at[1],Ke.length,y,ot.join(),E]),mt=t.useMemo((()=>{const e=1>dt[0]?1:dt[0]*tt[1]-tt[1],t=dt["x"===y?1:0],r=Ke.length<t?Ke.length:t;return at[0]?(at[0]+tt[1])*r-tt[1]:rt.type?Te.current.width+e:ze.current.width}),[y,at[0],dt[0],dt[1],tt[1],ze.current.width,Te.current.width,rt.type,Ke.length]),ft=t.useMemo((()=>{const e=1>dt[1]?1:dt[0]*tt[0]-tt[0];return at[1]?"x"===y?(at[1]+tt[0])*dt[0]-tt[0]:(at[1]+tt[0])*dt[1]-tt[0]:rt.type?Te.current.height+e:ze.current.height}),[y,at[1],dt[0],dt[1],tt[0],ze.current.height,Te.current.height,rt.type]),ht=t.useMemo((()=>ft+Qe),[ft,Qe]),pt=t.useMemo((()=>mt+et),[mt,et]),gt="x"===y?pt:ht,yt=t.useMemo((()=>[Math.max(0,pt-ot[0]),Math.max(0,ht-ot[1])]),[ot.join(),ht,pt]),xt="x"===y?me.current?.scrollLeft||0:me.current?.scrollTop||0,bt=xt>1&&!0,vt=gt>Math.round(xt+it);let wt=!1,Mt=!1;"hybrid"===y&&(wt=(me.current?.scrollLeft||0)>1&&!0,Mt=Math.round((me.current?.scrollLeft||0)+ot[0])<pt);const St=t.useMemo((()=>Z??30),[Z]),Et=t.useCallback((e=>U.progressElement&>?"x"===e?O(ot[0]-lt[0],pt,St):O(ot[1]-lt[1],ht,St):0),[Xe,gt,ot[0],ot[1],pt,St,lt.join()]),kt=t.useMemo((()=>({x:"y"!==y?Et("x"):0,y:"x"!==y?Et("y"):0})),[Et,y]),Lt=t.useMemo((()=>({w:ot[0]?pt-ot[0]:pt,h:ot[1]?ht-ot[1]:ht})),[pt,ht,ot[0],ot[1]]),jt={x:"y"!==y?N(me.current?.scrollLeft||0,Lt.w,st[0],kt.x):0,y:"x"!==y?N(me.current?.scrollTop||0,Lt.h,st[1],kt.y):0},Rt=t.useMemo((()=>{if(!rt.type)return[{top:0,bottom:0,left:0,right:0}];let e=0;const t="x"===y,r="row"===q,n=t&&!r||!t&&r,o=at[0]+tt[1],i=at[1]+tt[0],l=new Set,s=n?dt[0]:dt[1],c=at[r?0:1],a=tt[r?1:0];for(let e=Math.floor((Ke.length-1)/s)*s;e<Ke.length;e++)l.add(e);const u=s-l.size,d=u>0?(c+a)*u:0;return"center"===D?e=Math.round(d/2):"end"===D&&(e=d),Ke.map(((t,s)=>{const c=n?s%dt[0]:Math.floor(s/dt[1]),a=n?Math.floor(s/dt[0]):s%dt[1];let u,d;"x"===y?(u=a,d=c):(u=c,d=a);const m=l.size>0&&l.has(s),f=(m&&!r?e:0)+i*d,h=(m&&r?e:0)+o*u;return{top:f,left:h,bottom:f+at[1],right:h+at[0]}}))}),[at[0],at[1],tt[0],tt[1],D,Ke.length,dt[0],dt[1],rt.type,q,y]),At=t.useMemo((()=>ot?.length&&X?function(e,t,r,n){const[o,i="start"]="string"==typeof e?[e,e]:e,l={display:"flex"};return t[0]>r&&(l.justifyContent=T(o)),t[1]>n&&(l.alignItems=T(i)),l}(X,ot,pt,ht):{}),[X,ot.join(),ht,pt]),zt=t.useMemo((()=>[R(pt,ot[0]),R(ht,ot[1])]),[pt,ht,ot.join()]),Tt=t.useMemo((()=>"x"===y?zt[0]:zt[1]),[y,zt[0],zt[1]]),Ct=t.useCallback(C(Ae,ce),[]),Ft=t.useCallback(C(ze,ce,et,Qe),[et,Qe]),Ot=t.useCallback(C(Te,ce),[]),Nt=t.useCallback(((e,t,n)=>{const o=me.current;return o&&null!==e?async function(e,t,n,o,i,l){const c="y"===e,a=c?"scrollTop":"scrollLeft",u=c?l[1]:l[0],d=s(o,0,u),m=s(t[a],0,u);if(m!==d)return null===n?(await async function(e){for(;e.scrollHeight<=e.clientHeight&&e.scrollWidth<=e.clientWidth;)await new Promise((e=>requestAnimationFrame(e)))}(t),void(t[a]=o)):void r.setLockTask((()=>{const e=performance.now(),r=()=>{const o=performance.now(),l=Math.min((o-e)/n,1),c=s(m+(d-m)*l,0,u);t[a]=c,1>l&&c!==d&&i("smoothScroll",r)};i("smoothScroll",r)}),n,"smoothScrollBlock"+e)}(t,o,ge.current?null:n,e,ae.schedule,yt):null}),[yt.join()]),It=t.useMemo((()=>{const e={margin:L?`${_e}px ${Ge}px ${Ze}px ${Je}px`:"",height:ct[1]&&"none"!==ct[1]?ft+"px":"fit-content",width:ct[0]&&"none"!==ct[0]?mt+"px":"fit-content",...k&&!rt.type&&{gap:`${tt[0]}px ${tt[1]}px`},...W&&z(W,y,ot,et,Qe),...("hybrid"===y||"x"===y)&&{flexShrink:0}};if(rt.type)return{...e,position:"relative"};const t=1===dt[0]?"y"===y?"column":"row":q,r=ct[0]&&"none"!==ct[0]&&ct[1]&&"none"!==ct[1]?"wrap":void 0;return{...e,display:"flex",flexDirection:t,flexWrap:r,justifyContent:T(D)}}),[L,He,Ye,[_e,Ge,Ze,Je,et,Qe,tt[0],tt[1]].join(),ot.join(),We,ct[1],ft,mt,We,rt.type,y,dt[0],q,D]),Yt=t.useCallback(((e,t,r)=>{pe.current=F();const n=t.target;if(n.closest('\n [ms-custom-drag], [draggable="true"], [contenteditable],\n input, textarea, select, button, a\n '))return;let o=null;r&&(o=n.closest("scroll"===f?".ms-bar":".ms-slider")?.getAttribute("data-direction")),ye.current=e,j({scrollElement:me.current,target:n,clickedObject:ye,scrollStateRef:be.current,type:f,triggerUpdate:ce,direction:y,smoothScroll:Nt,sizeLocal:[ot[0],ot[1]],thumbSize:"x"===o?kt.x:kt.y,axisFromAtr:o,duration:Pe.duration,scrollBarEdge:lt,rafScrollAnim:ae,isTouched:pe.current,gap:tt,overscrollRef:Ee,objLengthPerSize:zt,isDraggingRef:ke,maxScrollSize:yt})}),[y,f,ot.join(),Pe.duration,Nt,lt.join(),kt.x,kt.y,tt.join(),zt,yt.join()]),Ht=t.useCallback((e=>{Yt("thumb",e,!0)}),[Yt]),Wt=t.useCallback((e=>{me.current&&(({arrowType:e,scrollElement:t,wrapSize:r,scrollSize:n,smoothScroll:o,duration:i,loop:l,gap:s})=>{const c=r[0],a=r[1],u=t.scrollTop,d=t.scrollLeft,m=(e,r,n)=>{const l=n?((e,t)=>"x"===e?t>0?0:c:t>0?0:a)(e,r):((e,r)=>{const n="x"===e,o=n?d:u,i=n?s[0]:s[1],l=t[n?"clientWidth":"clientHeight"]+i;return l*(Math.floor(Math.max(0,o)/l)+r)})(e,r);o(l,e,i)};switch(e){case"top":u>0?m("y",-1):l&&m("y",-1,!0);break;case"left":d>0?m("x",-1):l&&m("x",-1,!0);break;case"right":d+n[0]<c?m("x",1):l&&m("x",1,!0);break;case"bottom":u+n[1]<a?m("y",1):l&&m("y",1,!0)}})({arrowType:e,scrollElement:me.current,wrapSize:[pt,ht],scrollSize:ot,smoothScroll:Nt,duration:Pe.duration,loop:Ve.loop,gap:tt})}),[ot.join(),pt,ht,Pe.duration,Nt,Ve.loop,tt[0],tt[1]]),Xt=t.useCallback((()=>{"scroll"!==f&&ot[0]&&ot[1]&&de.current&&me.current&&he.current.size&&((e,t,r,n)=>{[...t].forEach(((t,o)=>{let i=A.get(t);const l=0===o?r:"x",s="x"===l?0:1;if(i&&i.elements.length===n[s]||(i={elements:Array.from(t.querySelectorAll(".ms-slider-element")),lastIndex:-1},A.set(t,i)),!i.elements.length)return;const c="x"===l?e.scrollLeft:e.scrollTop,a="x"===l?e.clientWidth:e.clientHeight,u=Math.floor((c+a/2)/a);u!==i.lastIndex&&(-1!==i.lastIndex&&i.elements[i.lastIndex]?.classList.remove("active"),i.elements[u]?.classList.add("active"),i.lastIndex=u)}))})(me.current,he.current,y,zt)}),[ot.join(),y,f,zt.join()]),$t=t.useCallback((e=>{if(e){const o=(n=fe.current)?Array.from(n.children).flatMap((e=>{if(!(e instanceof HTMLElement))return[];const t=e.getAttribute(c);return t?[H(t)]:[]})):[];Le.current&&(t=Le.current,r=o,t.length===r.length&&t.every(((e,t)=>e===r[t])))||(Le.current=o,e(o))}var t,r,n}),[]),Bt=t.useCallback((()=>{fe.current&&((e,t,r,n)=>{const o=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:e=>e instanceof Element&&e.hasAttribute(c)?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP});let i=o.nextNode();for(;i;){const e=i,r=e.getAttribute(c);if(r){const o=0===e.children.length;o&&(t.current.empty||(t.current.empty=new Set),t.current.empty.add(r)),"virtual"===n&&o||t.current.loaded.add(r)}i=o.nextNode()}r()})(fe.current,xe,ce,rt.type)}),[Fe]),Pt=t.useCallback((e=>{"object"==typeof Q&&"clickTrigger"in Q&&void 0!==Q.clickTrigger&&((e,t,n)=>{const{selector:o,delay:i=0}="string"==typeof t?{selector:t}:t,l=e.target;if(!l.closest(o))return;const s=l.closest(`[${c}]`);s?.classList.add("remove"),r.setTask((()=>{s?.classList.remove("remove"),n()}),i)})(e,Q.clickTrigger,Bt)}),[Ie,Bt]),Dt=t.useCallback((e=>{r.cancelTask("removeHover");const t=de.current,n=ue.current,o=me.current;if(!t||!n||!o)return;if(Pe.value.includes("end")){const{scrollLeft:t,scrollTop:r}=e.currentTarget;Me.current.update(t,r)}b?.(o.scrollLeft,o.scrollTop);const i=t.querySelectorAll("scroll"===f?".ms-bar":".ms-slider");_&&i.length>0&&!ve.current&&i.forEach((e=>{e.classList.contains("hover")||g(e)})),ve.current=!0,v?.(!0),r.setTask((()=>{Me.current.reset(),ve.current=!1,v?.(!1),rt.type&&Bt(),_&&i.length>0&&!ye.current&&i.forEach((e=>{r.setTask((()=>{e.hasAttribute("ms-manual-hover")||p(e)}),1e3,"removeHover")}))}),200,"isScrolling"),r.setTask((()=>$t(je.current)),"raf","onRenderedKeysChange"),se.schedule("sliderCheckLocal",(()=>{"scroll"!==f&&Xt(),ne()}))}),[b,v,f,Xt,Bt,_,rt.type]),qt=t.useCallback((e=>{if(we.current)return;const t="object"==typeof U.wheel&&"string"==typeof U.wheel.changeDirectionKey?U.wheel.changeDirectionKey:"KeyX";e.code!==t||"hybrid"!==y||we.current||(e.stopPropagation(),we.current=!0,ce())}),[y,Xe]),Vt=t.useCallback((e=>{we.current&&(e.stopPropagation(),we.current=!1,ce())}),[]);t.useEffect((()=>{if(!w)return je.current=void 0,void(Le.current=null);je.current=w,Le.current=null,$t(w)}),[w,$t]),t.useEffect((()=>{je.current&&ot[0]&&ot[1]&&$t(je.current)}),[Ke.join("|"),ot.join()]),t.useEffect((()=>{if(pe.current||"hybrid"!==y)return;const e=fe.current,t=me.current;return e&&t?(e.clientWidth+et>t.clientWidth&&e.clientHeight+Qe>t.clientHeight&&(t.addEventListener("keydown",qt),t.addEventListener("keyup",Vt)),()=>{t.removeEventListener("keydown",qt),t.removeEventListener("keyup",Vt)}):void 0}),[y,Xe,Oe,Ne,Ke.join(),et,Qe]),t.useEffect((()=>{Q&&rt.type&&Bt()}),[Ie,rt.type,Bt,Ke.length]),t.useEffect((()=>{if(pe.current)return;const e=me.current,t=fe.current;if(!e||!t)return;const r="hybrid"===y&&"object"==typeof U.wheel&&U.wheel.changeDirection?"x":y,n="hybrid"===y&&ft+Qe<=ot[1]||we.current?["hybrid","y"].includes(r)?"x":"y":r,o=t=>{t.preventDefault(),a(t,e,yt,be.current,n)};return U.wheel&&e.addEventListener("wheel",o,{passive:!1}),()=>{e.removeEventListener("wheel",o)}}),[y,Xe,ft,ot[1],Qe,we.current,yt.join()]),t.useEffect((()=>{se.schedule("smoothScrollLocal",(()=>{("hybrid"===y?["x","y"]:[y]).forEach((e=>{const t=Pe.value["x"===e?0:1];if("end"===t){if(Me.current.get()[e]===("x"===e?"left":"up"))return;Nt("x"===e?Lt.w:Lt.h,e,Pe.duration)}else"number"==typeof t&&Se.current[e]!==t&&(Se.current[e]=t,Nt(t,e,Pe.duration))}))}))}),[y,Ce,Lt.w,Lt.h,Pe.value.join()]),t.useEffect((()=>{const e=be.current.animationFrameId;return(rt.type||v)&&v&&v(!1),requestAnimationFrame((()=>ge.current=!1)),()=>{e&&cancelAnimationFrame(e),be.current.animationFrameId&&cancelAnimationFrame(be.current.animationFrameId),ae.cancel()}}),[]),t.useEffect((()=>{if(!re)return;const e=ue.current,t=me.current;if(!e||!t)return;const r={parent:e,element:t,direction:y};return function(e){le.set(e.parent,e),1===le.size&&function(){if(P)return;$=new AbortController;const{signal:e}=$;document.addEventListener("pointerdown",ie,{signal:e}),document.addEventListener("dragstart",ie,{signal:e}),P=!0}()}(r),()=>{!function(e){le.delete(e.parent),0===le.size&&P&&($?.abort(),B?.abort(),P=!1)}(r)}}),[re,y]),t.useEffect((()=>{const e=me.current;if(!e)return;const t=e=>{Yt("wrapp",e)};if(U.content||!U.content&&pe.current&&U.wheel){if(!0===U.progressElement)return;e.addEventListener("pointerdown",t)}return()=>{e.removeEventListener("pointerdown",t)}}),[Xe,Yt]),t.useEffect((()=>{const e=de.current;if(!e||!_)return;if(!he.current.size)return;const t=e=>{"mouseenter"===e.type&&document.removeEventListener("mouseup",t),"mouseleave"===e.type&&ye.current?document.addEventListener("mouseup",t):Array.from(he.current).forEach((t=>{(({el:e,event:t,isScrolling:r})=>{const n=e=>{if(["mouseleave","mouseup","pointerup","pointercancel"].includes(t.type)){if(e.removeAttribute("ms-manual-hover"),r?.current)return;p(e)}else e.setAttribute("ms-manual-hover",""),g(e)};Array.isArray(e)?e.map((e=>n(e))):n(e)})({el:t,event:e,isScrolling:ve})}))},r=(t,r)=>{pe.current?(Array.from(he.current).forEach((e=>e[t]("pointerdown",r))),document[t]("pointerup",r),document[t]("pointercancel",r)):(e[t]("mouseenter",r),e[t]("mouseleave",r))};return r("addEventListener",t),()=>{r("removeEventListener",t)}}),[_,f,y,he.current.size]),t.useEffect((()=>{"scroll"!==f&&se.schedule("sliderCheckLocal",Xt)}),[f,Xt,ot.join()]);const Ut=t.useCallback(((r,n,o,i,l)=>{const s={width:at[0]?at[0]+"px":void 0,height:at[1]?at[1]+"px":void 0,...rt.type&&{position:"absolute",transform:`translate(${o}px, ${n}px)`},..."number"==typeof l&&{"--content-visibility":l}},a=ee?e.jsx(t.Suspense,{fallback:ut,children:i}):i;return e.jsx("div",{[c]:""+r,className:"ms-object-box",style:s,onClick:Q?Pt:void 0,children:a},r)}),[ee,!!ut,at[0],at[1],Fe,Ie,dt[0],Pt,rt.type]),Kt=t.useMemo((()=>{const e=new Map;return Ue.forEach((r=>{t.isValidElement(r)&&null!=r.key&&e.set(r.key+"",r)})),e}),[Ue]),_t=t.useMemo((()=>[{positionType:"x"===y?"left":"top",visibility:bt},{positionType:"x"===y?"right":"bottom",visibility:vt},..."hybrid"===y?[{positionType:"left",visibility:wt},{positionType:"right",visibility:Mt}]:[]]),[bt,vt,y,wt,Mt]),Gt=t.useMemo((()=>({width:ot[2]+"px",height:ot[3]+"px"})),[ot]),Zt=t.useMemo((()=>({x:pt>ot[0]?"scroll hidden":"hidden",y:ht>ot[1]?"hidden scroll":"hidden",hybrid:`${pt>ot[0]?"scroll":"hidden"} ${ht>ot[1]?"scroll":"hidden"}`,hide:"hidden"}[U.wheel||U.content&&"scroll"===f?y:"hide"]??"hidden")),[pt,ht,ot,Xe,y]),Jt=t.useMemo((()=>V?_t.map((({positionType:t,visibility:r})=>e.jsx(m,{edgeGradient:qe,visibility:r,edgeType:t,size:ot},"edge-"+t))):null),[V,_t,qe,Oe]),Qt=t.useMemo((()=>U.arrows?_t.map((({positionType:t,visibility:r})=>e.jsx(h,{visibility:r,arrows:Ve,arrowType:t,handleArrow:Wt,size:ot[0]},"arrow-"+t))):null),[Xe,_t,Ve,Wt,ot[0]]),er=()=>{const r=me.current?.scrollLeft||0,n=me.current?.scrollTop||0;return e.jsx("div",{className:"ms-objects-wrapper",ref:fe,style:{...It,...(Ee.current.x||Ee.current.y)&&{transform:`translate(${Ee.current.x}px, ${Ee.current.y}px)`},...ke.current&&{pointerEvents:"none"}},children:Ke.map(((o,l)=>((r,n,o,l)=>{const s=Kt.get(r),c=rt.stopLoadOnScroll&&ve.current&&!xe.current.loaded.has(r)?ut:xe.current.empty?.has(r)?Q&&"object"==typeof Q&&t.isValidElement(Q)?Q:Q&&"object"==typeof Q&&"mode"in Q&&"object"==typeof Q.mode&&"fallback"in Q.mode?Q.mode.fallback:ut:s,a="firstChild"!==ct[0]&&"firstChild"!==ct[1]||0!==n?c:e.jsx(i,{onResize:Ot,children:c});if(!rt.type)return Ut(r,0,0,a);const{top:u,bottom:d,left:m,right:f}=Rt[n],h=(e=!0)=>{const t=e?nt:[0,0,0,0],r=e=>{const r="x"===e?o:l,n=r+("x"===e?ot[0]:ot[1]),i="x"===e?m-t[3]:u-t[2],s="x"===e?f+t[1]:d+t[0],c=s-i;if(0>=c)return 0;const a=Math.min(s,n)-Math.max(i,r);return a>0?Math.round(10*Math.min(1,a/c))/10:0};if("hybrid"===y){const e=r("x"),t=r("y");return Math.min(e,t)}return r("x"===y?"x":"y")},p=h(),g=rt.trackVisibility?h(!1):null;if("lazy"===rt.type){const e=xe.current.loaded.has(r);if(p&&!e){if(ve.current&&rt.stopLoadOnScroll)return;xe.current.loaded.add(r)}return e?Ut(r,u,m,a,g):null}return p?Ut(r,u,m,a,g):(xe.current.loaded.delete(r),null)})(o,l,r,n)))})},tr=t.useMemo((()=>{const e={position:"relative",width:ot[0]+"px",height:ot[1]+"px"};return U.arrows&&Ve.contentReduce&&Ve.size&&("x"===y?e.left=Ve.size+"px":"y"===y?e.top=Ve.size+"px":(e.top=Ve.size+"px",e.left=Ve.size+"px")),e}),[ot,Xe,Ve,y]),rr=e.jsxs("div",{"morph-scroll":""+oe,className:o,ref:ue,style:Gt,children:[e.jsxs("div",{className:"ms-content",ref:de,style:{...tr,transform:"translateZ(0)",...pe.current&&{touchAction:"pinch-zoom"}},children:[e.jsx("div",{className:"ms-element",ref:me,onScroll:Dt,tabIndex:0,style:{width:"100%",height:"100%",outline:"none",...At,..."boolean"!=typeof U.progressElement||!1===U.progressElement?{scrollbarWidth:"none",overflow:"hidden"}:{overflow:Zt},...U.content&&{cursor:"grab"}},children:at[0]&&at[1]?er():e.jsx(i,{onResize:Ft,style:At,children:er()})}),Jt,U.progressElement&&!0!==U.progressElement?(()=>{const e="x"!==y;return[{shouldRender:gt>ot[e?1:0],direction:y,thumbSize:e?kt.y:kt.x,thumbSpace:e?jt.y:jt.x,objLengthPerSize:Tt,progressReverseIndex:0},{shouldRender:"hybrid"===y&&pt>ot[0],direction:"x",thumbSize:kt.x,thumbSpace:jt.x,objLengthPerSize:zt[0],progressReverseIndex:1}].filter((({shouldRender:e})=>e))})().map((t=>{const r="boolean"==typeof K?K:K[t.progressReverseIndex];return e.jsx(u,{type:f,direction:t.direction,progressReverse:r,size:st,progressTrigger:[U,Xe],scrollBarOnHover:_,scrollBarEvent:"sliderMenu"===f?Nt:Ht,thumbSize:t.thumbSize,thumbSpace:t.thumbSpace,objLengthPerSize:t.objLengthPerSize,sliderCheckLocal:Xt,duration:Pe.duration,isTouched:pe.current,scrollStateRef:be,scrollEl:me,scrollBarsRef:he,triggerUpdate:ce,overscroll:Ee,maxScrollSize:yt},t.direction)})):null]}),Qt]});return"auto"===M?e.jsx(i,{measure:"outer",onResize:Ct,children:rr}):rr};se.displayName="MorphScroll";const ce={MorphScroll:se,ResizeTracker:i,IntersectionTracker:o};exports.IntersectionTracker=o,exports.MorphScroll=se,exports.ResizeTracker=i,exports.default=ce;
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),r=require("react"),t=require("keytask-core"),n=function(){return n=Object.assign||function(e){for(var r,t=1,n=arguments.length;n>t;t++)for(var o in r=arguments[t])Object.prototype.hasOwnProperty.call(r,o)&&(e[o]=r[o]);return e},n.apply(this,arguments)};function o(e,r,t,n){return new(t||(t=Promise))((function(o,i){function l(e){try{a(n.next(e))}catch(e){i(e)}}function c(e){try{a(n.throw(e))}catch(e){i(e)}}function a(e){var r;e.done?o(e.value):(r=e.value,r instanceof t?r:new t((function(e){e(r)}))).then(l,c)}a((n=n.apply(e,r||[])).next())}))}function i(e,r){var t,n,o,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},l=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return l.next=c(0),l.throw=c(1),l.return=c(2),"function"==typeof Symbol&&(l[Symbol.iterator]=function(){return this}),l;function c(c){return function(a){return function(c){if(t)throw new TypeError("Generator is already executing.");for(;l&&(l=0,c[0]&&(i=0)),i;)try{if(t=1,n&&(o=2&c[0]?n.return:c[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,c[1])).done)return o;switch(n=0,o&&(c=[2&c[0],o.value]),c[0]){case 0:case 1:o=c;break;case 4:return i.label++,{value:c[1],done:!1};case 5:i.label++,n=c[1],c=[0];continue;case 7:c=i.ops.pop(),i.trys.pop();continue;default:if(!((o=(o=i.trys).length>0&&o[o.length-1])||6!==c[0]&&2!==c[0])){i=0;continue}if(3===c[0]&&(!o||c[1]>o[0]&&c[1]<o[3])){i.label=c[1];break}if(6===c[0]&&i.label<o[1]){i.label=o[1],o=c;break}if(o&&i.label<o[2]){i.label=o[2],i.ops.push(c);break}o[2]&&i.ops.pop(),i.trys.pop();continue}c=r.call(e,i)}catch(e){c=[6,e],n=0}finally{t=o=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}([c,a])}}}function l(e,r){var t="function"==typeof Symbol&&e[Symbol.iterator];if(!t)return e;var n,o,i=t.call(e),l=[];try{for(;(void 0===r||r-- >0)&&!(n=i.next()).done;)l.push(n.value)}catch(e){o={error:e}}finally{try{n&&!n.done&&(t=i.return)&&t.call(i)}finally{if(o)throw o.error}}return l}function c(e,r,t){if(t||2===arguments.length)for(var n,o=0,i=r.length;i>o;o++)!n&&o in r||(n||(n=Array.prototype.slice.call(r,0,o)),n[o]=r[o]);return e.concat(n||Array.prototype.slice.call(r))}"function"==typeof SuppressedError&&SuppressedError;var a=function(e,r,t){void 0===r&&(r=!1);var n=[];if(n=Array.isArray(e)?2===e.length?[e[1],e[0],e[1],e[0]]:c([],l(e),!1):[e,e,e,e],r&&(n=[n[1],n[0],n[3],n[2]]),t){for(var o=[],i=0;t>i;i++)o.push(n[i%4]);n=o}return n},u=function(t){var n=t.className,o=t.children,i=t.style,c=t.root,u=t.threshold,s=t.rootMargin,f=t.visibleContent,d=void 0!==f&&f,v=t.onIntersection,h=l(r.useState(!1),2),m=h[0],p=h[1],y=r.useRef(null),g=r.useMemo((function(){if(!s)return"";var e=a(s);return"".concat(e[0],"px ").concat(e[1],"px ").concat(e[2],"px ").concat(e[3],"px")}),[s]),b=r.useCallback((function(e){var r=l(e,1)[0];p(r.isIntersecting),v&&v({time:r.time,rootBounds:r.rootBounds,boundingClientRect:r.boundingClientRect,intersectionRect:r.intersectionRect,isIntersecting:r.isIntersecting,intersectionRatio:r.intersectionRatio,target:r.target})}),[v]);return r.useEffect((function(){var e=new IntersectionObserver(b,{root:c,threshold:u,rootMargin:g});return y.current&&e.observe(y.current),function(){e.disconnect()}}),[b,c,u,g]),e.jsx("div",{"intersection-tracker":"",className:n,ref:y,style:i,children:d||m?o:null})};u.displayName="IntersectionTracker";var s=function(t){var o=t.className,i=t.children,l=t.style,c=t.measure,a=void 0===c?"inner":c,u=t.onResize,s=r.useRef(null);r.useEffect((function(){var e=s.current;if(e){var r=new ResizeObserver((function(e){var r,t;try{for(var n=function(e){var r="function"==typeof Symbol&&Symbol.iterator,t=r&&e[r],n=0;if(t)return t.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(r?"Object is not iterable.":"Symbol.iterator is not defined.")}(e),o=n.next();!o.done;o=n.next()){var i=o.value;u&&u(i.contentRect)}}catch(e){r={error:e}}finally{try{o&&!o.done&&(t=n.return)&&t.call(n)}finally{if(r)throw r.error}}}));return r.observe(e),function(){r.unobserve(e),r.disconnect()}}}),[a,u]);var f={width:"max-content",height:"max-content"},d={inner:n({},f),outer:n({},{width:"100%",height:"100%"}),all:n({minWidth:"100%",minHeight:"100%"},f)};return e.jsx("div",{"resize-tracker":"",className:o,ref:s,style:n(n({willChange:"width, height"},d[a]),l),children:i})};s.displayName="ResizeTracker";var f=t.createTaskManager(),d=f.cancelTask,v=f.setLockTask,h=f.setTask,m=1;function p(e,r,t,n){return void 0===r&&(r=0),void 0===t&&(t=1/0),void 0===n&&(n=!0),Math.max(r,Math.min(n?Math.round(e):e,t))}var y="wrap-id";function g(e,r,t,n,o){r.matches(":focus")||r.focus(),n.animating||(n.targetScrollX=p(r.scrollLeft,0,t[0]),n.targetScrollY=p(r.scrollTop,0,t[1])),"x"===o?n.targetScrollX=p(n.targetScrollX+e.deltaY,0,t[0]):n.targetScrollY=p(n.targetScrollY+e.deltaY,0,t[1]),n.animating||(n.animating=!0,n.animationFrameId=requestAnimationFrame((function e(){var i;if("x"===o){var l=p(r.scrollLeft+.4*(n.targetScrollX-r.scrollLeft),0,t[0]);r.scrollLeft=l,i=Math.abs(l-n.targetScrollX)}else{var c=p(r.scrollTop+.4*(n.targetScrollY-r.scrollTop),0,t[1]);r.scrollTop=c,i=Math.abs(c-n.targetScrollY)}i>2.5?n.animationFrameId=requestAnimationFrame(e):("x"===o?r.scrollLeft=p(n.targetScrollX,0,t[0]):r.scrollTop=p(n.targetScrollY,0,t[1]),n.animating=!1,n.animationFrameId=null)})))}var b=function(t){var o=t.type,i=t.direction,l=t.progressReverse,c=t.size,a=t.progressTrigger,u=t.scrollBarOnHover,s=t.scrollBarEvent,f=t.thumbSize,d=t.thumbSpace,v=t.objLengthPerSize,h=t.sliderCheckLocal,m=t.duration,p=t.isTouched,y=t.scrollStateRef,b=t.scrollEl,x=t.scrollBarsRef,w=t.triggerUpdate,M=t.overscroll,S=t.maxScrollSize,E=r.useRef(null),j=r.useRef(null),L=["hybrid","y"].includes(i)?"y":"x",k=Math.abs(M.current[L])*(f/200),A=f-k,R=0>M.current[L]?d+k:d,z=r.useMemo((function(){if("scroll"!==o){var r=c["x"===L?0:1];return Array.from({length:v},(function(t,i){return e.jsx("div",{className:"ms-slider-element",style:n({},"sliderMenu"===o&&{cursor:"pointer"}),onClick:"sliderMenu"===o?function(){s(r*i,L,m,h)}:void 0,children:Array.isArray(a[0].progressElement)?a[0].progressElement[i]:a[0].progressElement},i)}))}}),[v,o,a[1],m,h,c[0],c[1],s]),T=r.useMemo((function(){return"x"!==i?"y":"x"}),[i]),C=c["x"===T?0:1],F="scroll"!==o?"":f+2*d>C?"flex-end":"flex-start";r.useEffect((function(){if(!p&&a[0].wheel){var e=E.current,r=b.current;if(e&&r){for(var t=e.previousElementSibling;t&&!t.classList.contains("ms-element");)t=t.previousElementSibling;var n=function(e){return g(e,r,S,y.current,T)};return e.addEventListener("wheel",n,{passive:!1}),function(){return e.removeEventListener("wheel",n)}}}}),[T]),r.useEffect((function(){var e="slider"===o?E.current:j.current;if(e&&"sliderMenu"!==o){var r=function(e){return s(e)};return e.addEventListener("pointerdown",r),function(){return e.removeEventListener("pointerdown",r)}}}),[s,o]),r.useEffect((function(){var e=E.current;if(e)return x.current.add(e),w(),function(){x.current.delete(e)}}),[f]);var O=n({position:"absolute"},u&&{opacity:0,transition:"opacity 0.2s ease-in-out"});return e.jsx(r.Fragment,{children:"scroll"===o?e.jsx("div",{className:"ms-bar ms-".concat(T),ref:E,"data-direction":T,style:n(n(n({},O),{width:"fit-content",height:"".concat(C,"px")}),"x"===i?n({transformOrigin:"left top",left:"50%"},l?{top:0,transform:"rotate(-90deg) translate(-100%, -50%)"}:{transform:"rotate(-90deg) translateY(-50%)"}):n({top:"50%",transform:"translateY(-50%)"},l?{left:0}:{right:0})),children:e.jsx("div",{className:"ms-thumb",ref:j,style:n(n({height:"".concat(A,"px"),transform:"translateY(".concat(R,"px)")},a[0].progressElement&&{cursor:"grab"}),{display:"flex",alignItems:F}),children:a[0].progressElement})}):v>1&&a[0].progressElement&&e.jsx("div",{className:"ms-slider ms-".concat(T),ref:E,"data-direction":T,style:n(n(n(n({},O),{display:"flex"}),"slider"===o&&{cursor:"grab"}),"x"===i?n({transformOrigin:"left top",left:"50%",transform:"translateX(-50%)"},l?{top:0}:{bottom:0}):n({flexDirection:"column",top:"50%",transform:"translateY(-50%)"},l?{left:0}:{right:0})),children:z})})};b.displayName="ScrollBar";var x=function(r){var t,o=r.edgeGradient,i=r.visibility,l=r.edgeType;r.size;var c=n(n(n(((t={position:"absolute"})[l]=0,t.pointerEvents="none",t.transition="opacity 0.2s ease-in-out",t["--edge-visibility"]=i?1:0,t.opacity="var(--edge-visibility)",t),o.color&&{background:o.color&&"linear-gradient(".concat(["left","right"].includes(l)?"270deg, ":"").concat(o.color,", transparent)")}),["left","right"].includes(l)?{height:"100%",width:"".concat(o.size,"px"),top:0}:{width:"100%",height:"".concat(o.size,"px"),left:0}),"left"===l?{transform:"scaleX(-1)"}:"bottom"===l?{transform:"scaleY(-1)"}:{}),a="ms-edge ".concat(l).concat(i?"":" ms-disabled");return e.jsx("div",{className:a,style:c})};x.displayName="Edge";var w=r.memo(x),M=function(t){var o,i=t.visibility,l=t.arrows,c=t.arrowType,a=t.handleArrow,u=t.size,s=r.useRef(null),f=n(n(n(n(n({position:"absolute",display:"flex",justifyContent:"center",alignItems:"center",cursor:"pointer",width:"".concat(l.size,"px")},c?((o={})[c]=0,o):{}),"top"===c&&{transform:"rotate(-90deg) translateX(-100%)",transformOrigin:"left top"}),"bottom"===c&&{transform:"rotate(90deg) translateX(-100%)",transformOrigin:"left bottom"}),"left"===c&&{transform:"scaleX(-1)"}),["top","bottom"].includes(c)?{height:"".concat(u,"px")}:{height:"100%",top:0});return r.useEffect((function(){var e=s.current;if(e){var r=function(){return a(c)};return e.addEventListener("click",r),function(){e.removeEventListener("click",r)}}}),[a,c]),e.jsx("div",{className:"ms-arrow-box ".concat(c).concat(i?" active":""),ref:s,style:f,children:l.element})};M.displayName="Arrow";var S,E=r.memo(M),j=function(e){var r=e.getAttribute("data-direction");e.style.opacity="0",e.classList.remove("hover"),e.classList.add("leave"),d("remove".concat(r)),h((function(){return e.classList.remove("leave")}),200,"remove".concat(r))},L=function(e){var r=e.getAttribute("data-direction");d("remove".concat(r)),e.style.opacity="1",e.classList.remove("leave"),e.classList.add("hover")},k=function(){var e=null,r=0,t=new Map,n=function(){t.forEach((function(e,r){e()||t.delete(r)})),e=0!==t.size?requestAnimationFrame(n):null};return{start:function(o,i){var l=null!=i?i:++r;return t.delete(l),t.set(l,o),null===e&&(e=requestAnimationFrame(n)),l},stop:function(r){void 0!==r?(t.delete(r),0===t.size&&null!==e&&(cancelAnimationFrame(e),e=null)):(t.clear(),null!==e&&(cancelAnimationFrame(e),e=null))},isRunning:function(e){return void 0===e?t.size>0:t.has(e)}}}(),A=function(e,r,t){var n=e.current[r],o=performance.now();k.start((function(){var i=performance.now(),l=Math.min((i-o)/140,1);return 1>l?(e.current[r]=n*(1-l),t(),!0):(e.current[r]=0,t(),!1)}))},R={x:0,y:0},z={x:0,y:0},T={x:0,y:0,t:0,distX:0,distY:0},C=null,F=function(e,r,t,n){if(e){var o=null;["thumb","slider"].includes(e)?o="slider"===e?null==r?void 0:r.closest(".ms-slider"):r:"wrapp"===e&&(o=t),function(e,r){if(e){var t,n=window.matchMedia("(pointer: coarse)").matches;"start"===r?(n||(t=document.getElementById("ms-cursor-lock"))||((t=document.createElement("style")).id="ms-cursor-lock",t.textContent="\n * {\n cursor: grabbing !important;\n user-select: none;\n }\n ",document.head.appendChild(t)),e.style.cursor="grabbing",e.classList.add("active")):(n||(t=document.getElementById("ms-cursor-lock"))&&t.remove(),e.style.cursor="grab",e.classList.remove("active"))}}(o,n)}},O=function(e,r,t,n){"x"===e?(t.scrollStateRef.targetScrollX=n,r.scrollLeft!==n&&(r.scrollLeft=n)):(t.scrollStateRef.targetScrollY=n,r.scrollTop!==n&&(r.scrollTop=n))},I=function(e,r,t,n){var o,i,l=n.scrollElement;if(l){var c="x"===e,a={x:n.event.clientX,y:n.event.clientY};if(a){var u=function(e,r,t){if(0===e)return 0;var o="x"===r?n.sizeLocal[0]:n.sizeLocal[1],i=.14*Math.max(600,o),l=Math.abs(e);return p(e*i/(i+(t?-l:l)),-150,150)};if(C){var s=C,f={x:a.x-s.x.value,y:a.y-s.y.value},d=Math.abs(R[e]);if(d>2?n.isDraggingRef.current=!0:3>d&&(R[e]+=f[e]),n.isTouched){var v=performance.now();if(T.t){var h=Math.max(v-T.t,8);T={x:.8*T.x+f.x/h*.2,y:.8*T.y+f.y/h*.2,t:v,distX:(null!==(o=T.distX)&&void 0!==o?o:0)+Math.abs(f.x),distY:(null!==(i=T.distY)&&void 0!==i?i:0)+Math.abs(f.y)}}else T.t=v}var m="wrapp"===n.clickedObject.current?-f[e]:f[e],y=c?"scrollLeft":"scrollTop",g=c?0:1,b=function(r,t,o){var i=C[e],a=c?n.maxScrollSize[0]:n.maxScrollSize[1];if(Number.isFinite(r)&&Number.isFinite(t)){if(0!==i.raw){var s=i.raw;return i.raw+=.6*t,o&&(n.overscrollRef.current[e]=u(i.raw,e),n.triggerUpdate()),Math.sign(i.raw)!==Math.sign(s)?(i.raw=0,void(o&&(n.overscrollRef.current[e]=0,n.triggerUpdate()))):void 0}if(a>0){var f=l[y];if(0>=f&&0>r||f>=a&&r>0)return i.raw+=t,void(o&&(n.overscrollRef.current[e]=u(i.raw,e),n.triggerUpdate()));var d=p(l[y]+r,0,a);O(e,l,n,d)}else O(e,l,n,0)}else C=null};if("thumb"===n.clickedObject.current&&"slider"!==n.type){var x=m*r+s[e].rest,w=Math.trunc(x);return s[e].rest=x-w,void b(w,m,!1)}if("slider"===n.type&&(z[e]+=m),"wrapp"!==n.clickedObject.current){var M=l[y];if(!n.sliderElSize||Math.abs(z[e])>=n.sliderElSize[c?0:1]){var S=function(e){var r=l[c?"clientWidth":"clientHeight"]+n.gap[g];return r*(Math.floor(Math.max(0,M)/r)+e)},E=m>0&&M+n.sizeLocal[g]<n.wrapElWH[g]?S(1):0>m&&M>0?S(-1):null;z[e]=0,n.smoothScroll(E,e,10)}}else b(m/t[g],f[e],!0)}else C={x:{value:a.x,rest:0,raw:u(n.overscrollRef.current.x,"x",!0)},y:{value:a.y,rest:0,raw:u(n.overscrollRef.current.y,"y",!0)}}}}};function N(e){k.stop(),["x","y"].forEach((function(r){e.rafScrollAnim.cancel(),d("smoothScrollBlock".concat(r))}));var r=e.scrollElement;if(r){e.scrollStateRef.targetScrollX=r.scrollLeft,e.scrollStateRef.targetScrollY=r.scrollTop,T={x:0,y:0,t:0,distX:0,distY:0};var t=[r.scrollWidth,r.scrollHeight],o=["scroll","slider"].includes(e.type)?function(e){var r=e.getBoundingClientRect();return[r.width/e.clientWidth,r.height/e.clientHeight]}(r):[],i=1;if("thumb"===e.clickedObject.current&&e.axisFromAtr){var c="x"===e.axisFromAtr?0:1,a=(e.sizeLocal[c]-e.scrollBarEdge[c]-e.thumbSize)*o[c];i=e.maxScrollSize[c]/a,Number.isFinite(i)&&i>0||(i=1)}F(e.clickedObject.current,e.target,r,"start"),null==S||S.abort();var u=new AbortController;S=u;var s=u.signal;document.addEventListener("pointermove",(function(r){!function(r){var l,c;if("thumb"===e.clickedObject.current&&"slider"===e.type){var a=null===(l=e.target)||void 0===l?void 0:l.closest(".ms-slider");if(!a)return;var u=function(r){var t=a.getBoundingClientRect();return Math.round(("x"===r?t.width:t.height)/e.objLengthPerSize["x"===r?0:1])};c=[u("x"),u("y")]}!function(e){var r=e.direction||"y";"hybrid"===r?["wrapp","slider"].includes(e.clickedObject.current)?["x","y"].forEach((function(r){return I(r,e.thumbRatio,e.visualDiff,e)})):e.axisFromAtr&&I(e.axisFromAtr,e.thumbRatio,e.visualDiff,e):I(e.axisFromAtr?e.axisFromAtr:r,e.thumbRatio,e.visualDiff,e);var t={x:e.event.clientX,y:e.event.clientY};C&&(C.x.value=t.x,C.y.value=t.y)}(n(n({},e),{event:r,wrapElWH:t,visualDiff:o,thumbRatio:i,sliderElSize:c}))}(r)}),{signal:s});var f=function(r){e.isDraggingRef.current=!1,function(e){null==S||S.abort();var r=e.scrollElement;if(r){if(F(e.clickedObject.current,e.target,r,"end"),"slider"===e.type&&"thumb"!==e.clickedObject.current){var t=z,n=function(t,n){var o="x"===t,i=o?e.maxScrollSize[0]:e.maxScrollSize[1],l=r[o?"scrollLeft":"scrollTop"],c=o?e.gap[0]:e.gap[1],a=r[o?"clientWidth":"clientHeight"]+c,u=(Math[n?n>0?"floor":"ceil":"round"](l/a)+(null!=n?n:0))*a;u>i||0>u||e.smoothScroll(u,t,e.duration)},o=function(e,r){Math.abs(r)>20?n(e,r>0?1:-1):n(e)};0===t.x&&0===t.y?"hybrid"===e.direction?["x","y"].forEach((function(e){return o(e,t[e])})):o(e.direction,t[e.direction]):Object.entries(t).forEach((function(e){var r=l(e,2),t=r[0],n=r[1];0!==n&&o(t,n)}))}if(e.isTouched&&"scroll"===e.type&&"slider"!==e.clickedObject.current){var i=function(t){var n=T[t]*e.thumbRatio,o="x"===t?T.distX:T.distY;80>performance.now()-T.t&&Math.abs(n)>.05&&o>12&&function(e){var r=e.el,t=e.axis,n=e.velocity,o=e.rafSchedule,i=Math.sign(n),l=Math.abs(n);.2>(l=Math.pow(l,.92))&&(l=.2),n=l*i;var c="y"===t?"scrollTop":"scrollLeft",a="y"===t?r.scrollHeight-r.clientHeight:r.scrollWidth-r.clientWidth,u=performance.now(),s=function(){var e=performance.now(),t=e-u;if(u=e,Math.abs(n*=Math.exp(-.0025*t))>=.02){var i=r[c]+n*t;(0>i||i>a)&&(n*=.4,i=p(i,0,a)),r[c]=i,o("step",s)}};o("step",s)}({el:r,axis:t,velocity:"thumb"===e.clickedObject.current?n:-n,rafSchedule:e.rafScrollAnim.schedule})};"hybrid"===e.direction?"wrapp"===e.clickedObject.current?["x","y"].forEach((function(e){return i(e)})):i(e.axisFromAtr):i(e.axisFromAtr?e.axisFromAtr:e.direction)}C=null,0!==e.overscrollRef.current.x&&A(e.overscrollRef,"x",e.triggerUpdate),0!==e.overscrollRef.current.y&&A(e.overscrollRef,"y",e.triggerUpdate),e.clickedObject.current=null,T={x:0,y:0,t:0,distX:0,distY:0},R={x:0,y:0},z={x:0,y:0},e.triggerUpdate()}}(n(n({},e),{event:r,thumbRatio:i}))};document.addEventListener("pointerup",f,{signal:s}),document.addEventListener("pointercancel",f,{signal:s})}}function Y(e,r){return e>r?Math.floor(e/r):1}function H(e){return o(this,void 0,void 0,(function(){return i(this,(function(r){switch(r.label){case 0:return e.scrollHeight>e.clientHeight||e.scrollWidth>e.clientWidth?[3,2]:[4,new Promise((function(e){return requestAnimationFrame(e)}))];case 1:return r.sent(),[3,0];case 2:return[2]}}))}))}var W=new WeakMap,X=function(e){return e?"start"===e?"flex-start":"center"===e?"center":"flex-end":void 0};function B(e,r,t,n){return void 0===t&&(t=0),void 0===n&&(n=0),function(o){var i,l,c,a,u=!1,s={width:(null!==(i=o.width)&&void 0!==i?i:0)-t,height:(null!==(l=o.height)&&void 0!==l?l:0)-n},f=0===s.width&&0===s.height;f&&!u&&(u=!0),(null===(c=e.current)||void 0===c?void 0:c.width)===s.width&&(null===(a=e.current)||void 0===a?void 0:a.height)===s.height||f&&u||(e.current=s,r())}}var P=function(){var e,r;return"undefined"!=typeof window&&null!==(r=null===(e=window.matchMedia)||void 0===e?void 0:e.call(window,"(pointer: coarse)").matches)&&void 0!==r&&r};function D(e,r,t){return r?p(Math.round(e/r*e),t,e):0}function q(e,r,t,n){return r?p(e/r*(t-n),0,t-n):0}function V(){var e=null,r=new Map;return{schedule:function(t,n){r.set(t,n),null===e&&(e=requestAnimationFrame((function(){e=null;var t=Array.from(r.values());r.clear(),t.forEach((function(e){return e()}))})))},cancel:function(){null!==e&&(cancelAnimationFrame(e),e=null,r.clear())}}}var U,K=function(e){if(null==e)return[];if(r.isValidElement(e)){var t=e;return t.type===r.Fragment?r.Children.toArray(t.props.children).flatMap(K):[t]}return[e]},_=function(e){var r=e.lastIndexOf(":$");return-1!==r?e.slice(r+2).replace(/=0/g,"=").replace(/=2/g,":"):e.startsWith(".$")?e.slice(2).replace(/=0/g,"=").replace(/=2/g,":"):e},G=40,$="ms-under-drag",Z=null,J=!1,Q={x:0,y:0},ee={x:0,y:0},re=!1,te=null,ne="",oe=null,ie=null,le=null,ce=V(),ae=function(){ie&&ie.removeAttribute($),te=null,ie=null,oe=null,ne="",le=null};function ue(e,r,t,n,o,i){var l=e-r,c=t-e;return G>l&&n>0?{dir:-1,distance:l}:G>c&&i>n+o?{dir:1,distance:c}:null}function se(e){var r=p((G-Math.abs(e))/G,0,1,!1);return r*r*20|0}function fe(){if(te){var e=te.parent,r=te.element,t=te.direction,n=r.getBoundingClientRect(),o=ee.x,i=ee.y;if(o<n.left-G||o>n.right+G||i<n.top-G||i>n.bottom+G)ae();else{var l=null,c=null,a=0,u=0,s="x"!==t?ue(i,n.top,n.bottom,r.scrollTop,r.clientHeight,r.scrollHeight):null;s&&(l=-1===s.dir?"top":"bottom",u=se(s.distance)*s.dir);var f="y"!==t?ue(o,n.left,n.right,r.scrollLeft,r.clientWidth,r.scrollWidth):null;f&&(c=-1===f.dir?"left":"right",a=se(f.distance)*f.dir),(ne=[l,c].filter(Boolean).join(" "))!==le&&(e.setAttribute($,ne),le=ne),(a||u)&&r.scrollBy(a,u),ce.schedule("autoScrollLoop",fe)}}}function de(e){e instanceof DragEvent&&0===e.buttons?ve():ee.x===e.clientX&&ee.y===e.clientY||(ee.x=e.clientX,ee.y=e.clientY,ce.schedule("onMove",(function(){if(!re){var e=ee.x-Q.x,r=ee.y-Q.y;if(10>Math.hypot(e,r))return;re=!0}var t=document.elementFromPoint(ee.x,ee.y);if(t){var n=t.closest("[morph-scroll]");if(n||te){var o=n?me.get(n):te;o&&(te=o,oe!==o.element&&(ie&&ie!==o.parent&&ie.removeAttribute($),oe=o.element,(ie=o.parent).setAttribute($,ne),le=ne,fe()))}else ae()}})))}function ve(){null==Z||Z.abort(),Z=null,re=!1,ce.cancel(),ae()}function he(e){var r=e instanceof PointerEvent;if(!r||e.target.closest("[ms-custom-drag]")){Q.x=e.clientX,Q.y=e.clientY,null==Z||Z.abort();var t=new AbortController;Z=t;var n=t.signal;r?(document.addEventListener("pointermove",de,{signal:n}),document.addEventListener("pointerup",ve,{signal:n})):(document.addEventListener("dragover",de,{signal:n}),document.addEventListener("dragend",ve,{signal:n}),document.addEventListener("drop",ve,{signal:n}),document.addEventListener("pointerdown",ve,{signal:n}),window.addEventListener("blur",ve,{signal:n}))}}var me=new Map;var pe=function(t){var u,f,x,M,S,k,A,R,z=t.className,T=t.children,C=t.type,F=void 0===C?"scroll":C,O=t.direction,I=void 0===O?"y":O,G=t.scrollPosition,$=t.onScrollValue,Q=t.isScrolling,ee=t.onRenderedKeysChange,re=t.size,te=t.objectsSize,ne=t.crossCount,oe=t.gap,ie=t.wrapperMargin,le=t.wrapperMinSize,ce=t.wrapperAlign,ae=t.elementsAlign,ue=t.elementsDirection,se=void 0===ue?"row":ue,fe=t.edgeGradient,de=t.progressTrigger,ve=void 0===de?{wheel:!0}:de,pe=t.progressReverse,ye=void 0!==pe&&pe,ge=t.scrollBarOnHover,be=void 0!==ge&&ge,xe=t.scrollBarEdge,we=t.thumbMinSize,Me=t.render,Se=t.emptyElements,Ee=t.suspending,je=void 0!==Ee&&Ee,Le=t.fallback,ke=t.dragScroll,Ae=(A=l(r.useState({}),2)[1],r.useCallback((function(){A({})}),[])),Re=(null===(R=r.useRef(null)).current&&(R.current="".concat(m++)),R.current),ze=V(),Te=function(){return ze.schedule("triggerUpdate",Ae)},Ce=V();if(!re)throw Error('prop "size" is not provided'.concat("\n morph-scroll ".concat(Re)));Object.keys(ve).length,"none"===te||Array.isArray(te)&&("none"===te[0]||te[1]);var Fe=r.useRef(null),Oe=r.useRef(null),Ie=r.useRef(null),Ne=r.useRef(null),Ye=r.useRef(new Set),He=r.useRef(P()),We=r.useRef(!0),Xe=r.useRef(null),Be=r.useRef({loaded:new Set,empty:new Set}),Pe=r.useRef({targetScrollY:0,targetScrollX:0,animating:!1,animationFrameId:0}),De=r.useRef(!1),qe=r.useRef(!1),Ve=r.useRef(function(e){void 0===e&&(e=2);var r=0,t=0,n=null,o=null;return{update:function(i,l){var c=i-r,a=l-t;Math.abs(c)>e&&(n=c>0?"right":"left",r=i),Math.abs(a)>e&&(o=a>0?"down":"up",t=l)},reset:function(){n=null,o=null},get:function(){return{x:n,y:o}}}}()),Ue=r.useRef({x:null,y:null}),Ke=r.useRef({x:0,y:0}),_e=r.useRef(!1),Ge=r.useRef(null),$e=r.useRef(ee);function Ze(){return r.useRef({width:0,height:0})}var Je=Ze(),Qe=Ze(),er=Ze(),rr=l(function(){for(var e=[],t=0;arguments.length>t;t++)e[t]=arguments[t];var n=new WeakMap,o=function(e){if(null===e)return 1;if("boolean"==typeof e)return e?2:3;if("number"==typeof e||"bigint"==typeof e)return 0|+e;if("string"==typeof e){for(var t=0,i=0;i<e.length;i++)t=31*t+e.charCodeAt(i)>>>0;return t}if(void 0===e)return 4;if("function"==typeof e)return 5;if(r.isValidElement(e))return 6;if(Array.isArray(e)){for(t=0,i=0;i<e.length;i++)t=31*t+o(e[i])>>>0;return t}if(e instanceof Set)return Array.from(e).map(o).sort((function(e,r){return e-r})).reduce((function(e,r){return 31*e+r>>>0}),0);if(e instanceof Map)return Array.from(e.entries()).map((function(e){var r=l(e,2),t=r[0],n=r[1];return 31*o(t)+o(n)>>>0})).sort((function(e,r){return e-r})).reduce((function(e,r){return 31*e+r>>>0}),0);if("object"==typeof e&&null!==e){if(n.has(e))return n.get(e);var c=Object.entries(e).sort((function(e,r){var t=l(e,1)[0],n=l(r,1)[0];return t.localeCompare(n)})).map((function(e){var r=l(e,2)[1];return o(r)})).reduce((function(e,r){return 31*e+r>>>0}),0);return n.set(e,c),c}return 7};return e.map(o)}(G,Me,re,te,Se,le,ce,oe,ve,Be.current.empty,xe),11),tr=rr[0],nr=rr[1],or=rr[2],ir=rr[3],lr=rr[4],cr=rr[5],ar=rr[6],ur=rr[7],sr=rr[8],fr=rr[9],dr=rr[10],vr=r.useMemo((function(){var e,r,t=[null],n=200,o=null;if(null!=G)if("number"==typeof G||"end"===G)t=[G,G];else if(Array.isArray(G))t=G;else if("object"==typeof G){var i=G.value;"number"==typeof i||"end"===i?t=[i,i]:Array.isArray(i)&&(t=i),n=null!==(e=G.duration)&&void 0!==e?e:200,o=null!==(r=G.updater)&&void 0!==r?r:null}return{value:t,duration:n,updater:o}}),[tr]),hr={color:null,size:40},mr=r.useMemo((function(){return"object"==typeof fe?n(n({},hr),fe):"string"==typeof fe?{color:fe,size:40}:hr}),[fe]),pr=r.useMemo((function(){var e=ve.arrows,t={size:40,contentReduce:!0,loop:!1};return r.isValidElement(e)?n(n({},t),{element:e}):"object"==typeof e&&null!==e?n(n({},t),e):t}),[sr]),yr=r.useMemo((function(){return r.Children.toArray(T).flatMap(K)}),[T]),gr=r.useMemo((function(){return yr.map((function(e){return r.isValidElement(e)&&e.key?e.key+"":null})).filter((function(e){return null!==e})).filter((function(e){var r;return!("clear"===Se||Se&&"object"==typeof Se&&"mode"in Se&&"clear"===Se.mode)||!(null===(r=Be.current.empty)||void 0===r?void 0:r.has(e))}))}),[T,lr,fr]),br=l(ie?a(ie):[0,0,0,0],4),xr=br[0],wr=br[1],Mr=br[2],Sr=br[3],Er=xr+Mr,jr=Sr+wr,Lr=r.useMemo((function(){var e,r;return"number"==typeof oe?[oe,oe]:Array.isArray(oe)?[null!==(e=oe[1])&&void 0!==e?e:0,null!==(r=oe[0])&&void 0!==r?r:0]:[0,0]}),[oe]),kr=r.useMemo((function(){var e={type:void 0,rootMargin:0,stopLoadOnScroll:!1,trackVisibility:!1};if("string"==typeof Me)return n(n({},e),{type:Me});if("object"==typeof Me&&null!==Me){var r=Me.type,t=Me.rootMargin,o=void 0===t?e.rootMargin:t,i=Me.stopLoadOnScroll,l=void 0===i?e.stopLoadOnScroll:i,c=Me.trackVisibility;return{type:r,rootMargin:o,stopLoadOnScroll:l,trackVisibility:void 0===c?e.trackVisibility:c}}return e}),[nr]),Ar=r.useMemo((function(){return a(kr.rootMargin)}),[kr.rootMargin,I]),Rr=r.useMemo((function(){var e=l(Array.isArray(re)?re:"number"==typeof re?[re,re]:[Je.current.width,Je.current.height],2),r=e[0],t=e[1];if(!ve.arrows||!pr.size||!pr.contentReduce)return[r,t,r,t];var n=2*pr.size,o=r,i=t;return"x"===I?o=r-n:"y"===I?i=t-n:"hybrid"===I&&(o=r-n,i=t-n),[o,i,r,t]}),[or,sr,I,pr,Je.current.height,Je.current.width]),zr="x"===I?Rr[0]:Rr[1],Tr=r.useMemo((function(){if(!xe)return[0,0];if("number"==typeof xe){var e=2*xe;return[e,e]}if(Array.isArray(xe)){var r=l(xe,2),t=r[0],n=void 0===t?0:t,o=r[1];return[2*n,2*(null!=o?o:n)]}return[0,0]}),[dr]),Cr=r.useMemo((function(){return[Rr[0]-Tr[0],Rr[1]-Tr[1]]}),[Tr.join(),Rr[0],Rr[1]]),Fr=r.useMemo((function(){return te?Array.isArray(te)?te:a(te,!0,2):[null,null]}),[ir]),Or=r.useMemo((function(){var e=er.current,r=e.height,t=e.width,n=function(e,r,t){return r||("number"==typeof e?e:"size"===e?t:0)};return[n(Fr[0],t,Rr[0]),n(Fr[1],r,Rr[1])]}),[Fr.join(),I,er.current.width,er.current.height,Rr.join()]),Ir=r.useMemo((function(){return Me&&Se&&!Le?e.jsx("div",{className:"ms-empty-element"}):Le}),[!!Le,nr,lr]),Nr=r.useMemo((function(){if("none"===Fr[0]||"none"===Fr[1])return[1,gr.length];var e="x"===I?1:0,r="row"===se,t=Rr[e],n=Or[e]?Or[e]+Lr[e]:0,o="hybrid"===I&&t?n*gr.length:t,i=n?Math.floor(o/n):1,l=ne&&i>=ne?"hybrid"===I?Math.ceil(i/ne):ne:i,c=l>1&&l<gr.length?Math.ceil(gr.length/l):l<gr.length?gr.length:1;r||(l=Math.ceil(gr.length/c));var a=ne&&ne<gr.length,u=function(e){return Number.isFinite(e)&&e>0?e:1};if("hybrid"===I){var s=a?r?ne:l:r?gr.length:1,f=a?r?l:ne:r?1:gr.length;return[u(s),u(f)]}return[u(l),u(c)]}),[se,Lr[0],Lr[1],Or[0],Or[1],gr.length,I,Rr.join(),ne]),Yr=r.useMemo((function(){var e=1>Nr[0]?1:Nr[0]*Lr[1]-Lr[1],r=Nr["x"===I?1:0],t=gr.length<r?gr.length:r;return Or[0]?(Or[0]+Lr[1])*t-Lr[1]:kr.type?er.current.width+e:Qe.current.width}),[I,Or[0],Nr[0],Nr[1],Lr[1],Qe.current.width,er.current.width,kr.type,gr.length]),Hr=r.useMemo((function(){var e=1>Nr[1]?1:Nr[0]*Lr[0]-Lr[0];return Or[1]?"x"===I?(Or[1]+Lr[0])*Nr[0]-Lr[0]:(Or[1]+Lr[0])*Nr[1]-Lr[0]:kr.type?er.current.height+e:Qe.current.height}),[I,Or[1],Nr[0],Nr[1],Lr[0],Qe.current.height,er.current.height,kr.type]),Wr=r.useMemo((function(){return Hr+Er}),[Hr,Er]),Xr=r.useMemo((function(){return Yr+jr}),[Yr,jr]),Br="x"===I?Xr:Wr,Pr=r.useMemo((function(){return[Math.max(0,Xr-Rr[0]),Math.max(0,Wr-Rr[1])]}),[Rr.join(),Wr,Xr]),Dr="x"===I?(null===(u=Ie.current)||void 0===u?void 0:u.scrollLeft)||0:(null===(f=Ie.current)||void 0===f?void 0:f.scrollTop)||0,qr=Dr>1&&!0,Vr=Br>Math.round(Dr+zr),Ur=!1,Kr=!1;"hybrid"===I&&(Ur=((null===(x=Ie.current)||void 0===x?void 0:x.scrollLeft)||0)>1&&!0,Kr=Math.round(((null===(M=Ie.current)||void 0===M?void 0:M.scrollLeft)||0)+Rr[0])<Xr);var _r=r.useMemo((function(){return null!=we?we:30}),[we]),Gr=r.useCallback((function(e){return ve.progressElement&&Br?"x"===e?D(Rr[0]-Tr[0],Xr,_r):D(Rr[1]-Tr[1],Wr,_r):0}),[sr,Br,Rr[0],Rr[1],Xr,_r,Tr.join()]),$r=r.useMemo((function(){return{x:"y"!==I?Gr("x"):0,y:"x"!==I?Gr("y"):0}}),[Gr,I]),Zr=r.useMemo((function(){return{w:Rr[0]?Xr-Rr[0]:Xr,h:Rr[1]?Wr-Rr[1]:Wr}}),[Xr,Wr,Rr[0],Rr[1]]),Jr={x:"y"!==I?q((null===(S=Ie.current)||void 0===S?void 0:S.scrollLeft)||0,Zr.w,Cr[0],$r.x):0,y:"x"!==I?q((null===(k=Ie.current)||void 0===k?void 0:k.scrollTop)||0,Zr.h,Cr[1],$r.y):0},Qr=r.useMemo((function(){if(!kr.type)return[{top:0,bottom:0,left:0,right:0}];for(var e=0,r="x"===I,t="row"===se,n=r&&!t||!r&&t,o=Or[0]+Lr[1],i=Or[1]+Lr[0],l=new Set,c=n?Nr[0]:Nr[1],a=Or[t?0:1],u=Lr[t?1:0],s=Math.floor((gr.length-1)/c)*c;s<gr.length;s++)l.add(s);var f=c-l.size,d=f>0?(a+u)*f:0;return"center"===ae?e=Math.round(d/2):"end"===ae&&(e=d),gr.map((function(r,c){var a,u,s=n?c%Nr[0]:Math.floor(c/Nr[1]),f=n?Math.floor(c/Nr[0]):c%Nr[1];"x"===I?(a=f,u=s):(a=s,u=f);var d=l.size>0&&l.has(c),v=(d&&!t?e:0)+i*u,h=(d&&t?e:0)+o*a;return{top:v,left:h,bottom:v+Or[1],right:h+Or[0]}}))}),[Or[0],Or[1],Lr[0],Lr[1],ae,gr.length,Nr[0],Nr[1],kr.type,se,I]),et=r.useMemo((function(){return(null==Rr?void 0:Rr.length)&&ce?function(e,r,t,n){var o=l("string"==typeof e?[e,e]:e,2),i=o[0],c=o[1],a=void 0===c?"start":c,u={display:"flex"};return r[0]>t&&(u.justifyContent=X(i)),r[1]>n&&(u.alignItems=X(a)),u}(ce,Rr,Xr,Wr):{}}),[ce,Rr.join(),Wr,Xr]),rt=r.useMemo((function(){return[Y(Xr,Rr[0]),Y(Wr,Rr[1])]}),[Xr,Wr,Rr.join()]),tt=r.useMemo((function(){return"x"===I?rt[0]:rt[1]}),[I,rt[0],rt[1]]),nt=r.useCallback(B(Je,Te),[]),ot=r.useCallback(B(Qe,Te,jr,Er),[jr,Er]),it=r.useCallback(B(er,Te),[]),lt=r.useCallback((function(e,r,t){var n=Ie.current;return n&&null!==e?function(e,r,t,n,l,c){return o(this,void 0,void 0,(function(){var o,a,u,s,f;return i(this,(function(i){switch(i.label){case 0:return a=(o="y"===e)?"scrollTop":"scrollLeft",u=o?c[1]:c[0],s=p(n,0,u),(f=p(r[a],0,u))===s?[2]:null!==t?[3,2]:[4,H(r)];case 1:return i.sent(),r[a]=n,[2];case 2:return v((function(){var e=performance.now(),n=function(){var o=performance.now(),i=Math.min((o-e)/t,1),c=p(f+(s-f)*i,0,u);r[a]=c,1>i&&c!==s&&l("smoothScroll",n)};l("smoothScroll",n)}),t,"smoothScrollBlock".concat(e)),[2]}}))}))}(r,n,We.current?null:t,e,Ce.schedule,Pr):null}),[Pr.join()]),ct=r.useMemo((function(){var e=n(n(n({margin:ie?"".concat(xr,"px ").concat(wr,"px ").concat(Mr,"px ").concat(Sr,"px"):"",height:Fr[1]&&"none"!==Fr[1]?"".concat(Hr,"px"):"fit-content",width:Fr[0]&&"none"!==Fr[0]?"".concat(Yr,"px"):"fit-content"},oe&&!kr.type&&{gap:"".concat(Lr[0],"px ").concat(Lr[1],"px")}),le&&function(e,r,t,n,o){var i,c,a,u=function(e,r){return"full"===e?("x"===r?t[0]:t[1])-("x"===r?n:o):e};if("hybrid"!==r&&!Array.isArray(e)){var s="".concat(u(e,r),"px");return"x"===r?{minWidth:s}:{minHeight:s}}return Array.isArray(e)?(c=(i=l(e,2))[0],a=i[1]):c=a=e,{minWidth:"".concat(u(c,"x"),"px"),minHeight:"".concat(u(a,"y"),"px")}}(le,I,Rr,jr,Er)),("hybrid"===I||"x"===I)&&{flexShrink:0});if(kr.type)return n(n({},e),{position:"relative"});var r=1===Nr[0]?"y"===I?"column":"row":se,t=Fr[0]&&"none"!==Fr[0]&&Fr[1]&&"none"!==Fr[1]?"wrap":void 0;return n(n({},e),{display:"flex",flexDirection:r,flexWrap:t,justifyContent:X(ae)})}),[ie,ar,cr,[xr,wr,Mr,Sr,jr,Er,Lr[0],Lr[1]].join(),Rr.join(),ur,Fr[1],Hr,Yr,ur,kr.type,I,Nr[0],se,ae]),at=r.useCallback((function(e,r,t){var n;He.current=P();var o=r.target;if(!o.closest('\n [ms-custom-drag], [draggable="true"], [contenteditable],\n input, textarea, select, button, a\n ')){var i=null;t&&(i=null===(n=o.closest("scroll"===F?".ms-bar":".ms-slider"))||void 0===n?void 0:n.getAttribute("data-direction")),Xe.current=e,N({scrollElement:Ie.current,target:o,clickedObject:Xe,scrollStateRef:Pe.current,type:F,triggerUpdate:Te,direction:I,smoothScroll:lt,sizeLocal:[Rr[0],Rr[1]],thumbSize:"x"===i?$r.x:$r.y,axisFromAtr:i,duration:vr.duration,scrollBarEdge:Tr,rafScrollAnim:Ce,isTouched:He.current,gap:Lr,overscrollRef:Ke,objLengthPerSize:rt,isDraggingRef:_e,maxScrollSize:Pr})}}),[I,F,Rr.join(),vr.duration,lt,Tr.join(),$r.x,$r.y,Lr.join(),rt,Pr.join()]),ut=r.useCallback((function(e){at("thumb",e,!0)}),[at]),st=r.useCallback((function(e){Ie.current&&function(e){var r=e.arrowType,t=e.scrollElement,n=e.wrapSize,o=e.scrollSize,i=e.smoothScroll,l=e.duration,c=e.loop,a=e.gap,u=n[0],s=n[1],f=t.scrollTop,d=t.scrollLeft,v=function(e,r,n){var o=n?function(e,r){return"x"===e?r>0?0:u:r>0?0:s}(e,r):function(e,r){var n="x"===e,o=n?d:f,i=n?a[0]:a[1],l=t[n?"clientWidth":"clientHeight"]+i;return l*(Math.floor(Math.max(0,o)/l)+r)}(e,r);i(o,e,l)};switch(r){case"top":f>0?v("y",-1):c&&v("y",-1,!0);break;case"left":d>0?v("x",-1):c&&v("x",-1,!0);break;case"right":d+o[0]<u?v("x",1):c&&v("x",1,!0);break;case"bottom":f+o[1]<s?v("y",1):c&&v("y",1,!0)}}({arrowType:e,scrollElement:Ie.current,wrapSize:[Xr,Wr],scrollSize:Rr,smoothScroll:lt,duration:vr.duration,loop:pr.loop,gap:Lr})}),[Rr.join(),Xr,Wr,vr.duration,lt,pr.loop,Lr[0],Lr[1]]),ft=r.useCallback((function(){"scroll"!==F&&Rr[0]&&Rr[1]&&Oe.current&&Ie.current&&Ye.current.size&&function(e,r,t,n){c([],l(r),!1).forEach((function(r,o){var i,l,c=W.get(r),a=0===o?t:"x",u="x"===a?0:1;if(c&&c.elements.length===n[u]||(c={elements:Array.from(r.querySelectorAll(".ms-slider-element")),lastIndex:-1},W.set(r,c)),c.elements.length){var s="x"===a?e.scrollLeft:e.scrollTop,f="x"===a?e.clientWidth:e.clientHeight,d=Math.floor((s+f/2)/f);d!==c.lastIndex&&(-1!==c.lastIndex&&(null===(i=c.elements[c.lastIndex])||void 0===i||i.classList.remove("active")),null===(l=c.elements[d])||void 0===l||l.classList.add("active"),c.lastIndex=d)}}))}(Ie.current,Ye.current,I,rt)}),[Rr.join(),I,F,rt.join()]),dt=r.useCallback((function(e){if(e){var r=(o=Ne.current)?Array.from(o.children).flatMap((function(e){if(!(e instanceof HTMLElement))return[];var r=e.getAttribute(y);return r?[_(r)]:[]})):[];Ge.current&&(t=Ge.current,n=r,t.length===n.length&&t.every((function(e,r){return e===n[r]})))||(Ge.current=r,e(r))}var t,n,o}),[]),vt=r.useCallback((function(){Ne.current&&function(e,r,t,n){for(var o=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:function(e){return e instanceof Element&&e.hasAttribute(y)?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}}),i=o.nextNode();i;){var l=i,c=l.getAttribute(y);if(c){var a=0===l.children.length;a&&(r.current.empty||(r.current.empty=new Set),r.current.empty.add(c)),"virtual"===n&&a||r.current.loaded.add(c)}i=o.nextNode()}t()}(Ne.current,Be,Te,kr.type)}),[nr]),ht=r.useCallback((function(e){"object"==typeof Se&&"clickTrigger"in Se&&void 0!==Se.clickTrigger&&function(e,r,t){var n="string"==typeof r?{selector:r}:r,o=n.selector,i=n.delay,l=void 0===i?0:i,c=e.target;if(c.closest(o)){var a=c.closest("[wrap-id]");null==a||a.classList.add("remove"),h((function(){null==a||a.classList.remove("remove"),t()}),l)}}(e,Se.clickTrigger,vt)}),[lr,vt]),mt=r.useCallback((function(e){d("removeHover");var r=Oe.current,t=Fe.current,n=Ie.current;if(r&&t&&n){if(vr.value.includes("end")){var o=e.currentTarget,i=o.scrollLeft,l=o.scrollTop;Ve.current.update(i,l)}null==$||$(n.scrollLeft,n.scrollTop);var c=r.querySelectorAll("scroll"===F?".ms-bar":".ms-slider");be&&c.length>0&&!De.current&&c.forEach((function(e){e.classList.contains("hover")||L(e)})),De.current=!0,null==Q||Q(!0),h((function(){Ve.current.reset(),De.current=!1,null==Q||Q(!1),kr.type&&vt(),be&&c.length>0&&!Xe.current&&c.forEach((function(e){h((function(){e.hasAttribute("ms-manual-hover")||j(e)}),1e3,"removeHover")}))}),200,"isScrolling"),h((function(){return dt($e.current)}),"raf","onRenderedKeysChange"),ze.schedule("sliderCheckLocal",(function(){"scroll"!==F&&ft(),Ae()}))}}),[$,Q,F,ft,vt,be,kr.type]),pt=r.useCallback((function(e){if(!qe.current){var r="object"==typeof ve.wheel&&"string"==typeof ve.wheel.changeDirectionKey?ve.wheel.changeDirectionKey:"KeyX";e.code!==r||"hybrid"!==I||qe.current||(e.stopPropagation(),qe.current=!0,Te())}}),[I,sr]),yt=r.useCallback((function(e){qe.current&&(e.stopPropagation(),qe.current=!1,Te())}),[]);r.useEffect((function(){if(!ee)return $e.current=void 0,void(Ge.current=null);$e.current=ee,Ge.current=null,dt(ee)}),[ee,dt]),r.useEffect((function(){$e.current&&Rr[0]&&Rr[1]&&dt($e.current)}),[gr.join("|"),Rr.join()]),r.useEffect((function(){if(!He.current&&"hybrid"===I){var e=Ne.current,r=Ie.current;if(e&&r)return e.clientWidth+jr>r.clientWidth&&e.clientHeight+Er>r.clientHeight&&(r.addEventListener("keydown",pt),r.addEventListener("keyup",yt)),function(){r.removeEventListener("keydown",pt),r.removeEventListener("keyup",yt)}}}),[I,sr,or,ir,gr.join(),jr,Er]),r.useEffect((function(){Se&&kr.type&&vt()}),[lr,kr.type,vt,gr.length]),r.useEffect((function(){if(!He.current){var e=Ie.current,r=Ne.current;if(e&&r){var t="hybrid"===I&&"object"==typeof ve.wheel&&ve.wheel.changeDirection?"x":I,n="hybrid"===I&&Hr+Er<=Rr[1]||qe.current?["hybrid","y"].includes(t)?"x":"y":t,o=function(r){r.preventDefault(),g(r,e,Pr,Pe.current,n)};return ve.wheel&&e.addEventListener("wheel",o,{passive:!1}),function(){e.removeEventListener("wheel",o)}}}}),[I,sr,Hr,Rr[1],Er,qe.current,Pr.join()]),r.useEffect((function(){ze.schedule("smoothScrollLocal",(function(){("hybrid"===I?["x","y"]:[I]).forEach((function(e){var r=vr.value["x"===e?0:1];if("end"===r){if(Ve.current.get()[e]===("x"===e?"left":"up"))return;lt("x"===e?Zr.w:Zr.h,e,vr.duration)}else"number"==typeof r&&Ue.current[e]!==r&&(Ue.current[e]=r,lt(r,e,vr.duration))}))}))}),[I,tr,Zr.w,Zr.h,vr.value.join()]),r.useEffect((function(){var e=Pe.current.animationFrameId;return(kr.type||Q)&&Q&&Q(!1),requestAnimationFrame((function(){return We.current=!1})),function(){e&&cancelAnimationFrame(e),Pe.current.animationFrameId&&cancelAnimationFrame(Pe.current.animationFrameId),Ce.cancel()}}),[]),r.useEffect((function(){if(ke){var e=Fe.current,r=Ie.current;if(e&&r){var t={parent:e,element:r,direction:I};return function(e){me.set(e.parent,e),1===me.size&&function(){if(!J){var e=(U=new AbortController).signal;document.addEventListener("pointerdown",he,{signal:e}),document.addEventListener("dragstart",he,{signal:e}),J=!0}}()}(t),function(){!function(e){me.delete(e.parent),0===me.size&&J&&(null==U||U.abort(),null==Z||Z.abort(),J=!1)}(t)}}}}),[ke,I]),r.useEffect((function(){var e=Ie.current;if(e){var r=function(e){at("wrapp",e)};if(ve.content||!ve.content&&He.current&&ve.wheel){if(!0===ve.progressElement)return;e.addEventListener("pointerdown",r)}return function(){e.removeEventListener("pointerdown",r)}}}),[sr,at]),r.useEffect((function(){var e=Oe.current;if(e&&be&&Ye.current.size){var r=function(e){"mouseenter"===e.type&&document.removeEventListener("mouseup",r),"mouseleave"===e.type&&Xe.current?document.addEventListener("mouseup",r):Array.from(Ye.current).forEach((function(r){!function(e){var r=e.el,t=e.event,n=e.isScrolling,o=function(e){if(["mouseleave","mouseup","pointerup","pointercancel"].includes(t.type)){if(e.removeAttribute("ms-manual-hover"),null==n?void 0:n.current)return;j(e)}else e.setAttribute("ms-manual-hover",""),L(e)};Array.isArray(r)?r.map((function(e){return o(e)})):o(r)}({el:r,event:e,isScrolling:De})}))},t=function(r,t){He.current?(Array.from(Ye.current).forEach((function(e){return e[r]("pointerdown",t)})),document[r]("pointerup",t),document[r]("pointercancel",t)):(e[r]("mouseenter",t),e[r]("mouseleave",t))};return t("addEventListener",r),function(){t("removeEventListener",r)}}}),[be,F,I,Ye.current.size]),r.useEffect((function(){"scroll"!==F&&ze.schedule("sliderCheckLocal",ft)}),[F,ft,Rr.join()]);var gt,bt=r.useCallback((function(t,o,i,l,c){var a,u=n(n({width:Or[0]?"".concat(Or[0],"px"):void 0,height:Or[1]?"".concat(Or[1],"px"):void 0},kr.type&&{position:"absolute",transform:"translate(".concat(i,"px, ").concat(o,"px)")}),"number"==typeof c&&{"--content-visibility":c}),s=je?e.jsx(r.Suspense,{fallback:Ir,children:l}):l;return e.jsx("div",n({},kr.type||Se?((a={})[y]="".concat(t),a):{},{className:"ms-object-box",style:u,onClick:Se?ht:void 0,children:s}),t)}),[je,!!Ir,Or[0],Or[1],nr,lr,Nr[0],ht,kr.type]),xt=r.useMemo((function(){var e=new Map;return yr.forEach((function(t){r.isValidElement(t)&&null!=t.key&&e.set(t.key+"",t)})),e}),[yr]),wt=r.useMemo((function(){return c([{positionType:"x"===I?"left":"top",visibility:qr},{positionType:"x"===I?"right":"bottom",visibility:Vr}],l("hybrid"===I?[{positionType:"left",visibility:Ur},{positionType:"right",visibility:Kr}]:[]),!1)}),[qr,Vr,I,Ur,Kr]),Mt=r.useMemo((function(){return{width:"".concat(Rr[2],"px"),height:"".concat(Rr[3],"px")}}),[Rr]),St=r.useMemo((function(){var e;return null!==(e={x:Xr>Rr[0]?"scroll hidden":"hidden",y:Wr>Rr[1]?"hidden scroll":"hidden",hybrid:"".concat(Xr>Rr[0]?"scroll":"hidden"," ").concat(Wr>Rr[1]?"scroll":"hidden"),hide:"hidden"}[ve.wheel||ve.content&&"scroll"===F?I:"hide"])&&void 0!==e?e:"hidden"}),[Xr,Wr,Rr,sr,I]),Et=r.useMemo((function(){return fe?wt.map((function(r){var t=r.positionType,n=r.visibility;return e.jsx(w,{edgeGradient:mr,visibility:n,edgeType:t,size:Rr},"edge-".concat(t))})):null}),[fe,wt,mr,or]),jt=r.useMemo((function(){return ve.arrows?wt.map((function(r){var t=r.positionType,n=r.visibility;return e.jsx(E,{visibility:n,arrows:pr,arrowType:t,handleArrow:st,size:Rr[0]},"arrow-".concat(t))})):null}),[sr,wt,pr,st,Rr[0]]),Lt=function(){var t,o,i=(null===(t=Ie.current)||void 0===t?void 0:t.scrollLeft)||0,l=(null===(o=Ie.current)||void 0===o?void 0:o.scrollTop)||0;return e.jsx("div",{className:"ms-objects-wrapper",ref:Ne,style:n(n(n({},ct),(Ke.current.x||Ke.current.y)&&{transform:"translate(".concat(Ke.current.x,"px, ").concat(Ke.current.y,"px)")}),_e.current&&{pointerEvents:"none"}),children:gr.map((function(t,n){return function(t,n,o,i){var l,c=xt.get(t),a=kr.stopLoadOnScroll&&De.current&&!Be.current.loaded.has(t)?Ir:(null===(l=Be.current.empty)||void 0===l?void 0:l.has(t))?Se&&"object"==typeof Se&&r.isValidElement(Se)?Se:Se&&"object"==typeof Se&&"mode"in Se&&"object"==typeof Se.mode&&"fallback"in Se.mode?Se.mode.fallback:Ir:c,u="firstChild"!==Fr[0]&&"firstChild"!==Fr[1]||0!==n?a:e.jsx(s,{onResize:it,children:a});if(!kr.type)return bt(t,0,0,u);var f=Qr[n],d=f.top,v=f.bottom,h=f.left,m=f.right,p=function(e){void 0===e&&(e=!0);var r=e?Ar:[0,0,0,0],t=function(e){var t="x"===e?o:i,n=t+("x"===e?Rr[0]:Rr[1]),l="x"===e?h-r[3]:d-r[2],c="x"===e?m+r[1]:v+r[0],a=c-l;if(0>=a)return 0;var u=Math.min(c,n)-Math.max(l,t);return u>0?Math.round(10*Math.min(1,u/a))/10:0};if("hybrid"===I){var n=t("x"),l=t("y");return Math.min(n,l)}return t("x"===I?"x":"y")},y=p(),g=kr.trackVisibility?p(!1):null;if("lazy"===kr.type){var b=Be.current.loaded.has(t);if(y&&!b){if(De.current&&kr.stopLoadOnScroll)return;Be.current.loaded.add(t)}return b?bt(t,d,h,u,g):null}return y?bt(t,d,h,u,g):(Be.current.loaded.delete(t),null)}(t,n,i,l)}))})},kt=r.useMemo((function(){var e={position:"relative",width:"".concat(Rr[0],"px"),height:"".concat(Rr[1],"px")};return ve.arrows&&pr.contentReduce&&pr.size&&("x"===I?e.left="".concat(pr.size,"px"):"y"===I?e.top="".concat(pr.size,"px"):(e.top="".concat(pr.size,"px"),e.left="".concat(pr.size,"px"))),e}),[Rr,sr,pr,I]),At=e.jsxs("div",{"morph-scroll":"".concat(Re),className:z,ref:Fe,style:Mt,children:[e.jsxs("div",{className:"ms-content",ref:Oe,style:n(n(n({},kt),{transform:"translateZ(0)"}),He.current&&{touchAction:"pinch-zoom"}),children:[e.jsx("div",{className:"ms-element",ref:Ie,onScroll:mt,tabIndex:0,style:n(n(n({width:"100%",height:"100%",outline:"none"},et),"boolean"!=typeof ve.progressElement||!1===ve.progressElement?{scrollbarWidth:"none",overflow:"hidden"}:{overflow:St}),ve.content&&{cursor:"grab"}),children:Or[0]&&Or[1]?Lt():e.jsx(s,{onResize:ot,style:et,children:Lt()})}),Et,ve.progressElement&&!0!==ve.progressElement?(gt="x"!==I,[{shouldRender:Br>Rr[gt?1:0],direction:I,thumbSize:gt?$r.y:$r.x,thumbSpace:gt?Jr.y:Jr.x,objLengthPerSize:tt,progressReverseIndex:0},{shouldRender:"hybrid"===I&&Xr>Rr[0],direction:"x",thumbSize:$r.x,thumbSpace:Jr.x,objLengthPerSize:rt[0],progressReverseIndex:1}].filter((function(e){return e.shouldRender}))).map((function(r){var t="boolean"==typeof ye?ye:ye[r.progressReverseIndex];return e.jsx(b,{type:F,direction:r.direction,progressReverse:t,size:Cr,progressTrigger:[ve,sr],scrollBarOnHover:be,scrollBarEvent:"sliderMenu"===F?lt:ut,thumbSize:r.thumbSize,thumbSpace:r.thumbSpace,objLengthPerSize:r.objLengthPerSize,sliderCheckLocal:ft,duration:vr.duration,isTouched:He.current,scrollStateRef:Pe,scrollEl:Ie,scrollBarsRef:Ye,triggerUpdate:Te,overscroll:Ke,maxScrollSize:Pr},r.direction)})):null]}),jt]});return"auto"===re?e.jsx(s,{measure:"outer",onResize:nt,children:At}):At};pe.displayName="MorphScroll";var ye={MorphScroll:pe,ResizeTracker:s,IntersectionTracker:u};exports.IntersectionTracker=u,exports.MorphScroll=pe,exports.ResizeTracker=s,exports.default=ye;
|
package/dist/esm/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as e,jsxs as t}from"react/jsx-runtime";import r,{useRef as n,useState as o,useCallback as i}from"react";import{cancelTask as l,setTask as s,setLockTask as c}from"keytask-core";const a=(e,t=!1,r)=>{let n=[];if(n=Array.isArray(e)?2===e.length?[e[1],e[0],e[1],e[0]]:[...e]:[e,e,e,e],t&&(n=[n[1],n[0],n[3],n[2]]),r){const e=[];for(let t=0;r>t;t++)e.push(n[t%4]);n=e}return n},u=({className:t,children:n,style:o,root:i,threshold:l,rootMargin:s,visibleContent:c=!1,onIntersection:u})=>{const[d,m]=r.useState(!1),f=r.useRef(null),h=r.useMemo((()=>{if(!s)return"";const e=a(s);return`${e[0]}px ${e[1]}px ${e[2]}px ${e[3]}px`}),[s]),p=r.useCallback((([e])=>{m(e.isIntersecting),u&&u({time:e.time,rootBounds:e.rootBounds,boundingClientRect:e.boundingClientRect,intersectionRect:e.intersectionRect,isIntersecting:e.isIntersecting,intersectionRatio:e.intersectionRatio,target:e.target})}),[u]);return r.useEffect((()=>{const e=new IntersectionObserver(p,{root:i,threshold:l,rootMargin:h});return f.current&&e.observe(f.current),()=>{e.disconnect()}}),[p,i,l,h]),e("div",{"intersection-tracker":"",className:t,ref:f,style:o,children:c||d?n:null})};u.displayName="IntersectionTracker";const d=({className:t,children:n,style:o,measure:i="inner",onResize:l})=>{const s=r.useRef(null);r.useEffect((()=>{const e=s.current;if(!e)return;const t=new ResizeObserver((e=>{for(const t of e)l&&l(t.contentRect)}));return t.observe(e),()=>{t.unobserve(e),t.disconnect()}}),[i,l]);const c={width:"max-content",height:"max-content"},a={inner:{...c},outer:{width:"100%",height:"100%"},all:{minWidth:"100%",minHeight:"100%",...c}};return e("div",{"resize-tracker":"",className:t,ref:s,style:{willChange:"width, height",...a[i],...o},children:n})};d.displayName="ResizeTracker";let m=1;function f(e,t=0,r=1/0,n=!0){return Math.max(t,Math.min(n?Math.round(e):e,r))}const h="wrap-id";function p(e,t,r,n,o){t.matches(":focus")||t.focus(),n.animating||(n.targetScrollX=f(t.scrollLeft,0,r[0]),n.targetScrollY=f(t.scrollTop,0,r[1])),"x"===o?n.targetScrollX=f(n.targetScrollX+e.deltaY,0,r[0]):n.targetScrollY=f(n.targetScrollY+e.deltaY,0,r[1]),n.animating||(n.animating=!0,n.animationFrameId=requestAnimationFrame((function e(){let i;if("x"===o){const e=f(t.scrollLeft+.4*(n.targetScrollX-t.scrollLeft),0,r[0]);t.scrollLeft=e,i=Math.abs(e-n.targetScrollX)}else{const e=f(t.scrollTop+.4*(n.targetScrollY-t.scrollTop),0,r[1]);t.scrollTop=e,i=Math.abs(e-n.targetScrollY)}i>2.5?n.animationFrameId=requestAnimationFrame(e):("x"===o?t.scrollLeft=f(n.targetScrollX,0,r[0]):t.scrollTop=f(n.targetScrollY,0,r[1]),n.animating=!1,n.animationFrameId=null)})))}const g=({type:t,direction:n,progressReverse:o,size:i,progressTrigger:l,scrollBarOnHover:s,scrollBarEvent:c,thumbSize:a,thumbSpace:u,objLengthPerSize:d,sliderCheckLocal:m,duration:f,isTouched:h,scrollStateRef:g,scrollEl:y,scrollBarsRef:b,triggerUpdate:x,overscroll:v,maxScrollSize:w})=>{const M=r.useRef(null),E=r.useRef(null),S=["hybrid","y"].includes(n)?"y":"x",L=Math.abs(v.current[S])*(a/200),A=a-L,R=0>v.current[S]?u+L:u,k=r.useMemo((()=>{if("scroll"===t)return;const r=i["x"===S?0:1];return Array.from({length:d},((n,o)=>e("div",{className:"ms-slider-element",style:{..."sliderMenu"===t&&{cursor:"pointer"}},onClick:"sliderMenu"===t?()=>{c(r*o,S,f,m)}:void 0,children:Array.isArray(l[0].progressElement)?l[0].progressElement[o]:l[0].progressElement},o)))}),[d,t,l[1],f,m,i[0],i[1],c]),z=r.useMemo((()=>"x"!==n?"y":"x"),[n]),j=i["x"===z?0:1],T="scroll"!==t?"":a+2*u>j?"flex-end":"flex-start";r.useEffect((()=>{if(h||!l[0].wheel)return;const e=M.current,t=y.current;if(!e||!t)return;let r=e.previousElementSibling;for(;r&&!r.classList.contains("ms-element");)r=r.previousElementSibling;const n=e=>p(e,t,w,g.current,z);return e.addEventListener("wheel",n,{passive:!1}),()=>e.removeEventListener("wheel",n)}),[z]),r.useEffect((()=>{const e="slider"===t?M.current:E.current;if(!e||"sliderMenu"===t)return;const r=e=>c(e);return e.addEventListener("pointerdown",r),()=>e.removeEventListener("pointerdown",r)}),[c,t]),r.useEffect((()=>{const e=M.current;if(e)return b.current.add(e),x(),()=>{b.current.delete(e)}}),[a]);const C={position:"absolute",...s&&{opacity:0,transition:"opacity 0.2s ease-in-out"}};return e(r.Fragment,{children:"scroll"===t?e("div",{className:"ms-bar ms-"+z,ref:M,"data-direction":z,style:{...C,width:"fit-content",height:j+"px",..."x"===n?{transformOrigin:"left top",left:"50%",...o?{top:0,transform:"rotate(-90deg) translate(-100%, -50%)"}:{transform:"rotate(-90deg) translateY(-50%)"}}:{top:"50%",transform:"translateY(-50%)",...o?{left:0}:{right:0}}},children:e("div",{className:"ms-thumb",ref:E,style:{height:A+"px",transform:`translateY(${R}px)`,...l[0].progressElement&&{cursor:"grab"},display:"flex",alignItems:T},children:l[0].progressElement})}):d>1&&l[0].progressElement&&e("div",{className:"ms-slider ms-"+z,ref:M,"data-direction":z,style:{...C,display:"flex",..."slider"===t&&{cursor:"grab"},..."x"===n?{transformOrigin:"left top",left:"50%",transform:"translateX(-50%)",...o?{top:0}:{bottom:0}}:{flexDirection:"column",top:"50%",transform:"translateY(-50%)",...o?{left:0}:{right:0}}},children:k})})};g.displayName="ScrollBar";const y=({edgeGradient:t,visibility:r,edgeType:n,size:o})=>{const i={position:"absolute",[n]:0,pointerEvents:"none",transition:"opacity 0.2s ease-in-out","--edge-visibility":r?1:0,opacity:"var(--edge-visibility)",...t.color&&{background:t.color&&`linear-gradient(${["left","right"].includes(n)?"270deg, ":""}${t.color}, transparent)`},...["left","right"].includes(n)?{height:"100%",width:t.size+"px",top:0}:{width:"100%",height:t.size+"px",left:0},..."left"===n?{transform:"scaleX(-1)"}:"bottom"===n?{transform:"scaleY(-1)"}:{}};return e("div",{className:`ms-edge ${n}${r?"":" ms-disabled"}`,style:i})};y.displayName="Edge";var b=r.memo(y);const x=({visibility:t,arrows:n,arrowType:o,handleArrow:i,size:l})=>{const s=r.useRef(null),c={position:"absolute",display:"flex",justifyContent:"center",alignItems:"center",cursor:"pointer",width:n.size+"px",...o?{[o]:0}:{},..."top"===o&&{transform:"rotate(-90deg) translateX(-100%)",transformOrigin:"left top"},..."bottom"===o&&{transform:"rotate(90deg) translateX(-100%)",transformOrigin:"left bottom"},..."left"===o&&{transform:"scaleX(-1)"},...["top","bottom"].includes(o)?{height:l+"px"}:{height:"100%",top:0}};return r.useEffect((()=>{const e=s.current;if(!e)return;const t=()=>i(o);return e.addEventListener("click",t),()=>{e.removeEventListener("click",t)}}),[i,o]),e("div",{className:`ms-arrow-box ${o}${t?" active":""}`,ref:s,style:c,children:n.element})};x.displayName="Arrow";var v=r.memo(x);const w=e=>{const t=e.getAttribute("data-direction");e.style.opacity="0",e.classList.remove("hover"),e.classList.add("leave"),l("remove"+t),s((()=>e.classList.remove("leave")),200,"remove"+t)},M=e=>{const t=e.getAttribute("data-direction");l("remove"+t),e.style.opacity="1",e.classList.remove("leave"),e.classList.add("hover")},E=function(){let e=null,t=0;const r=new Map,n=()=>{r.forEach(((e,t)=>{e()||r.delete(t)})),e=0!==r.size?requestAnimationFrame(n):null};return{start:(o,i)=>{const l=i??++t;return r.delete(l),r.set(l,o),null===e&&(e=requestAnimationFrame(n)),l},stop:t=>{void 0!==t?(r.delete(t),0===r.size&&null!==e&&(cancelAnimationFrame(e),e=null)):(r.clear(),null!==e&&(cancelAnimationFrame(e),e=null))},isRunning:e=>void 0===e?r.size>0:r.has(e)}}(),S=(e,t,r)=>{const n=e.current[t],o=performance.now();E.start((()=>{const i=performance.now(),l=Math.min((i-o)/140,1);return 1>l?(e.current[t]=n*(1-l),r(),!0):(e.current[t]=0,r(),!1)}))};let L,A={x:0,y:0},R={x:0,y:0},k={x:0,y:0,t:0,distX:0,distY:0},z=null;const j=(e,t,r,n)=>{if(!e)return;let o=null;["thumb","slider"].includes(e)?o="slider"===e?t?.closest(".ms-slider"):t:"wrapp"===e&&(o=r),((e,t)=>{if(!e)return;const r=window.matchMedia("(pointer: coarse)").matches;if("start"===t){if(!r){let e=document.getElementById("ms-cursor-lock");e||(e=document.createElement("style"),e.id="ms-cursor-lock",e.textContent="\n * {\n cursor: grabbing !important;\n user-select: none;\n }\n ",document.head.appendChild(e))}e.style.cursor="grabbing",e.classList.add("active")}else{if(!r){const e=document.getElementById("ms-cursor-lock");e&&e.remove()}e.style.cursor="grab",e.classList.remove("active")}})(o,n)},T=(e,t,r,n)=>{"x"===e?(r.scrollStateRef.targetScrollX=n,t.scrollLeft!==n&&(t.scrollLeft=n)):(r.scrollStateRef.targetScrollY=n,t.scrollTop!==n&&(t.scrollTop=n))},C=(e,t,r,n)=>{const o=n.scrollElement;if(!o)return;const i="x"===e,l={x:n.event.clientX,y:n.event.clientY};if(!l)return;const s=(e,t,r)=>{if(0===e)return 0;const o="x"===t?n.sizeLocal[0]:n.sizeLocal[1],i=.14*Math.max(600,o),l=Math.abs(e);return f(e*i/(i+(r?-l:l)),-150,150)};if(!z)return void(z={x:{value:l.x,rest:0,raw:s(n.overscrollRef.current.x,"x",!0)},y:{value:l.y,rest:0,raw:s(n.overscrollRef.current.y,"y",!0)}});const c=z,a={x:l.x-c.x.value,y:l.y-c.y.value},u=Math.abs(A[e]);if(u>2?n.isDraggingRef.current=!0:3>u&&(A[e]+=a[e]),n.isTouched){const e=performance.now();if(k.t){const t=Math.max(e-k.t,8);k={x:.8*k.x+a.x/t*.2,y:.8*k.y+a.y/t*.2,t:e,distX:(k.distX??0)+Math.abs(a.x),distY:(k.distY??0)+Math.abs(a.y)}}else k.t=e}const d="wrapp"===n.clickedObject.current?-a[e]:a[e],m=i?"scrollLeft":"scrollTop",h=i?0:1,p=(t,r,l)=>{const c=z[e],a=i?n.maxScrollSize[0]:n.maxScrollSize[1];if(!Number.isFinite(t)||!Number.isFinite(r))return void(z=null);if(0!==c.raw){const t=c.raw;return c.raw+=.6*r,l&&(n.overscrollRef.current[e]=s(c.raw,e),n.triggerUpdate()),Math.sign(c.raw)!==Math.sign(t)?(c.raw=0,void(l&&(n.overscrollRef.current[e]=0,n.triggerUpdate()))):void 0}if(0>=a)return void T(e,o,n,0);const u=o[m];if(0>=u&&0>t||u>=a&&t>0)return c.raw+=r,void(l&&(n.overscrollRef.current[e]=s(c.raw,e),n.triggerUpdate()));const d=f(o[m]+t,0,a);T(e,o,n,d)};if("thumb"===n.clickedObject.current&&"slider"!==n.type){const r=d*t+c[e].rest,n=Math.trunc(r);return c[e].rest=r-n,void p(n,d,!1)}if("slider"===n.type&&(R[e]+=d),"wrapp"===n.clickedObject.current)return void p(d/r[h],a[e],!0);const g=o[m];if(n.sliderElSize&&Math.abs(R[e])<n.sliderElSize[i?0:1])return;const y=e=>{const t=o[i?"clientWidth":"clientHeight"]+n.gap[h];return t*(Math.floor(Math.max(0,g)/t)+e)},b=d>0&&g+n.sizeLocal[h]<n.wrapElWH[h]?y(1):0>d&&g>0?y(-1):null;R[e]=0,n.smoothScroll(b,e,10)};function F(e){E.stop(),["x","y"].forEach((t=>{e.rafScrollAnim.cancel(),l("smoothScrollBlock"+t)}));const t=e.scrollElement;if(!t)return;e.scrollStateRef.targetScrollX=t.scrollLeft,e.scrollStateRef.targetScrollY=t.scrollTop,k={x:0,y:0,t:0,distX:0,distY:0};const r=[t.scrollWidth,t.scrollHeight],n=["scroll","slider"].includes(e.type)?function(e){const t=e.getBoundingClientRect();return[t.width/e.clientWidth,t.height/e.clientHeight]}(t):[];let o=1;if("thumb"===e.clickedObject.current&&e.axisFromAtr){const t="x"===e.axisFromAtr?0:1,r=(e.sizeLocal[t]-e.scrollBarEdge[t]-e.thumbSize)*n[t];o=e.maxScrollSize[t]/r,Number.isFinite(o)&&o>0||(o=1)}j(e.clickedObject.current,e.target,t,"start"),L?.abort();const i=new AbortController;L=i;const{signal:s}=i;document.addEventListener("pointermove",(t=>{(t=>{let i;if("thumb"===e.clickedObject.current&&"slider"===e.type){const t=e.target?.closest(".ms-slider");if(!t)return;const r=r=>{const n=t.getBoundingClientRect();return Math.round(("x"===r?n.width:n.height)/e.objLengthPerSize["x"===r?0:1])};i=[r("x"),r("y")]}!function(e){const t=e.direction||"y";"hybrid"===t?["wrapp","slider"].includes(e.clickedObject.current)?["x","y"].forEach((t=>C(t,e.thumbRatio,e.visualDiff,e))):e.axisFromAtr&&C(e.axisFromAtr,e.thumbRatio,e.visualDiff,e):C(e.axisFromAtr?e.axisFromAtr:t,e.thumbRatio,e.visualDiff,e);const r={x:e.event.clientX,y:e.event.clientY};z&&(z.x.value=r.x,z.y.value=r.y)}({...e,event:t,wrapElWH:r,visualDiff:n,thumbRatio:o,sliderElSize:i})})(t)}),{signal:s});const c=t=>{e.isDraggingRef.current=!1,function(e){L?.abort();const t=e.scrollElement;if(t){if(j(e.clickedObject.current,e.target,t,"end"),"slider"===e.type&&"thumb"!==e.clickedObject.current){const r=R,n=(r,n)=>{const o="x"===r,i=o?e.maxScrollSize[0]:e.maxScrollSize[1],l=t[o?"scrollLeft":"scrollTop"],s=o?e.gap[0]:e.gap[1],c=t[o?"clientWidth":"clientHeight"]+s,a=(Math[n?n>0?"floor":"ceil":"round"](l/c)+(n??0))*c;a>i||0>a||e.smoothScroll(a,r,e.duration)},o=(e,t)=>{Math.abs(t)>20?n(e,t>0?1:-1):n(e)};0===r.x&&0===r.y?"hybrid"===e.direction?["x","y"].forEach((e=>o(e,r[e]))):o(e.direction,r[e.direction]):Object.entries(r).forEach((([e,t])=>{0!==t&&o(e,t)}))}if(e.isTouched&&"scroll"===e.type&&"slider"!==e.clickedObject.current){const r=r=>{const n=k[r]*e.thumbRatio,o="x"===r?k.distX:k.distY;80>performance.now()-k.t&&Math.abs(n)>.05&&o>12&&function({el:e,axis:t,velocity:r,rafSchedule:n}){const o=Math.sign(r);let i=Math.abs(r);i=Math.pow(i,.92),.2>i&&(i=.2),r=i*o;const l="y"===t?"scrollTop":"scrollLeft",s="y"===t?e.scrollHeight-e.clientHeight:e.scrollWidth-e.clientWidth;let c=performance.now();const a=()=>{const t=performance.now(),o=t-c;if(c=t,.02>Math.abs(r*=Math.exp(-.0025*o)))return;let i=e[l]+r*o;(0>i||i>s)&&(r*=.4,i=f(i,0,s)),e[l]=i,n("step",a)};n("step",a)}({el:t,axis:r,velocity:"thumb"===e.clickedObject.current?n:-n,rafSchedule:e.rafScrollAnim.schedule})};"hybrid"===e.direction?"wrapp"===e.clickedObject.current?["x","y"].forEach((e=>r(e))):r(e.axisFromAtr):r(e.axisFromAtr?e.axisFromAtr:e.direction)}z=null,0!==e.overscrollRef.current.x&&S(e.overscrollRef,"x",e.triggerUpdate),0!==e.overscrollRef.current.y&&S(e.overscrollRef,"y",e.triggerUpdate),e.clickedObject.current=null,k={x:0,y:0,t:0,distX:0,distY:0},A={x:0,y:0},R={x:0,y:0},e.triggerUpdate()}}({...e,event:t,thumbRatio:o})};document.addEventListener("pointerup",c,{signal:s}),document.addEventListener("pointercancel",c,{signal:s})}function N(e,t){return e>t?Math.floor(e/t):1}const O=new WeakMap;function I(e,t,r,n,o){const i=(e,t)=>"full"===e?("x"===t?r[0]:r[1])-("x"===t?n:o):e;if("hybrid"!==t&&!Array.isArray(e)){const r=i(e,t)+"px";return"x"===t?{minWidth:r}:{minHeight:r}}let l,s;return Array.isArray(e)?[l,s]=e:l=s=e,{minWidth:i(l,"x")+"px",minHeight:i(s,"y")+"px"}}const Y=e=>e?"start"===e?"flex-start":"center"===e?"center":"flex-end":void 0;function H(e,t,r=0,n=0){return o=>{let i=!1;const l={width:(o.width??0)-r,height:(o.height??0)-n},s=0===l.width&&0===l.height;s&&!i&&(i=!0),e.current?.width===l.width&&e.current?.height===l.height||s&&i||(e.current=l,t())}}const W=()=>"undefined"!=typeof window&&(window.matchMedia?.("(pointer: coarse)").matches??!1);function X(e,t,r){return t?f(Math.round(e/t*e),r,e):0}function $(e,t,r,n){return t?f(e/t*(r-n),0,r-n):0}function B(){let e=null;const t=new Map;return{schedule:(r,n)=>{t.set(r,n),null===e&&(e=requestAnimationFrame((()=>{e=null;const r=Array.from(t.values());t.clear(),r.forEach((e=>e()))})))},cancel:()=>{null!==e&&(cancelAnimationFrame(e),e=null,t.clear())}}}const D=e=>{if(null==e)return[];if(r.isValidElement(e)){const t=e;return t.type===r.Fragment?r.Children.toArray(t.props.children).flatMap(D):[t]}return[e]},P=e=>{const t=e.lastIndexOf(":$");return-1!==t?e.slice(t+2).replace(/=0/g,"=").replace(/=2/g,":"):e.startsWith(".$")?e.slice(2).replace(/=0/g,"=").replace(/=2/g,":"):e},V=40,U="ms-under-drag";let q,K=null,G=!1;const _={x:0,y:0},Z={x:0,y:0};let J=!1,Q=null,ee="",te=null,re=null,ne=null;const oe=B(),ie=()=>{re&&re.removeAttribute(U),Q=null,re=null,te=null,ee="",ne=null};function le(e,t,r,n,o,i){const l=e-t,s=r-e;return V>l&&n>0?{dir:-1,distance:l}:V>s&&i>n+o?{dir:1,distance:s}:null}function se(e){const t=f((V-Math.abs(e))/V,0,1,!1);return t*t*20|0}function ce(){if(!Q)return;const{parent:e,element:t,direction:r}=Q,n=t.getBoundingClientRect(),o=Z.x,i=Z.y;if(o<n.left-V||o>n.right+V||i<n.top-V||i>n.bottom+V)return void ie();let l=null,s=null,c=0,a=0;const u="x"!==r?le(i,n.top,n.bottom,t.scrollTop,t.clientHeight,t.scrollHeight):null;u&&(l=-1===u.dir?"top":"bottom",a=se(u.distance)*u.dir);const d="y"!==r?le(o,n.left,n.right,t.scrollLeft,t.clientWidth,t.scrollWidth):null;d&&(s=-1===d.dir?"left":"right",c=se(d.distance)*d.dir),ee=[l,s].filter(Boolean).join(" "),ee!==ne&&(e.setAttribute(U,ee),ne=ee),(c||a)&&t.scrollBy(c,a),oe.schedule("autoScrollLoop",ce)}function ae(e){e instanceof DragEvent&&0===e.buttons?ue():Z.x===e.clientX&&Z.y===e.clientY||(Z.x=e.clientX,Z.y=e.clientY,oe.schedule("onMove",(()=>{if(!J){const e=Z.x-_.x,t=Z.y-_.y;if(10>Math.hypot(e,t))return;J=!0}const e=document.elementFromPoint(Z.x,Z.y);if(!e)return;const t=e.closest("[morph-scroll]");if(!t&&!Q)return void ie();const r=t?me.get(t):Q;r&&(Q=r,te!==r.element&&(re&&re!==r.parent&&re.removeAttribute(U),te=r.element,re=r.parent,re.setAttribute(U,ee),ne=ee,ce()))})))}function ue(){K?.abort(),K=null,J=!1,oe.cancel(),ie()}function de(e){const t=e instanceof PointerEvent;if(t&&!e.target.closest("[ms-custom-drag]"))return;_.x=e.clientX,_.y=e.clientY,K?.abort();const r=new AbortController;K=r;const{signal:n}=r;t?(document.addEventListener("pointermove",ae,{signal:n}),document.addEventListener("pointerup",ue,{signal:n})):(document.addEventListener("dragover",ae,{signal:n}),document.addEventListener("dragend",ue,{signal:n}),document.addEventListener("drop",ue,{signal:n}),document.addEventListener("pointerdown",ue,{signal:n}),window.addEventListener("blur",ue,{signal:n}))}const me=new Map;const fe=({className:u,children:y,type:x="scroll",direction:E="y",scrollPosition:S,onScrollValue:L,isScrolling:A,onRenderedKeysChange:R,size:k,objectsSize:z,crossCount:j,gap:T,wrapperMargin:C,wrapperMinSize:V,wrapperAlign:U,elementsAlign:_,elementsDirection:Z="row",edgeGradient:J,progressTrigger:Q={wheel:!0},progressReverse:ee=!1,scrollBarOnHover:te=!1,scrollBarEdge:re,thumbMinSize:ne,render:oe,emptyElements:ie,suspending:le=!1,fallback:se,dragScroll:ce})=>{const ae=function(){const[,e]=o({});return i((()=>{e({})}),[])}(),ue=function(){const e=n(null);return null===e.current&&(e.current=""+m++),e.current}(),fe=B(),he=()=>fe.schedule("triggerUpdate",ae),pe=B();if(!k)throw Error('prop "size" is not provided'+("\n morph-scroll "+ue));Object.keys(Q).length,"none"===z||Array.isArray(z)&&("none"===z[0]||z[1]);const ge=r.useRef(null),ye=r.useRef(null),be=r.useRef(null),xe=r.useRef(null),ve=r.useRef(new Set),we=r.useRef(W()),Me=r.useRef(!0),Ee=r.useRef(null),Se=r.useRef({loaded:new Set,empty:new Set}),Le=r.useRef({targetScrollY:0,targetScrollX:0,animating:!1,animationFrameId:0}),Ae=r.useRef(!1),Re=r.useRef(!1),ke=r.useRef(function(e=2){let t=0,r=0,n=null,o=null;return{update(i,l){const s=i-t,c=l-r;Math.abs(s)>e&&(n=s>0?"right":"left",t=i),Math.abs(c)>e&&(o=c>0?"down":"up",r=l)},reset(){n=null,o=null},get:()=>({x:n,y:o})}}()),ze=r.useRef({x:null,y:null}),je=r.useRef({x:0,y:0}),Te=r.useRef(!1),Ce=r.useRef(null),Fe=r.useRef(R);function Ne(){return r.useRef({width:0,height:0})}const Oe=Ne(),Ie=Ne(),Ye=Ne(),[He,We,Xe,$e,Be,De,Pe,Ve,Ue,qe,Ke]=function(...e){const t=new WeakMap,n=e=>{if(null===e)return 1;if("boolean"==typeof e)return e?2:3;if("number"==typeof e||"bigint"==typeof e)return 0|+e;if("string"==typeof e){let t=0;for(let r=0;r<e.length;r++)t=31*t+e.charCodeAt(r)>>>0;return t}if(void 0===e)return 4;if("function"==typeof e)return 5;if(r.isValidElement(e))return 6;if(Array.isArray(e)){let t=0;for(let r=0;r<e.length;r++)t=31*t+n(e[r])>>>0;return t}if(e instanceof Set)return Array.from(e).map(n).sort(((e,t)=>e-t)).reduce(((e,t)=>31*e+t>>>0),0);if(e instanceof Map)return Array.from(e.entries()).map((([e,t])=>31*n(e)+n(t)>>>0)).sort(((e,t)=>e-t)).reduce(((e,t)=>31*e+t>>>0),0);if("object"==typeof e&&null!==e){if(t.has(e))return t.get(e);const r=Object.entries(e).sort((([e],[t])=>e.localeCompare(t))).map((([,e])=>n(e))).reduce(((e,t)=>31*e+t>>>0),0);return t.set(e,r),r}return 7};return e.map(n)}(S,oe,k,z,ie,V,U,T,Q,Se.current.empty,re),Ge=r.useMemo((()=>{let e=[null],t=200,r=null;if(null!=S)if("number"==typeof S||"end"===S)e=[S,S];else if(Array.isArray(S))e=S;else if("object"==typeof S){const n=S.value;"number"==typeof n||"end"===n?e=[n,n]:Array.isArray(n)&&(e=n),t=S.duration??200,r=S.updater??null}return{value:e,duration:t,updater:r}}),[He]),_e={color:null,size:40},Ze=r.useMemo((()=>"object"==typeof J?{..._e,...J}:"string"==typeof J?{color:J,size:40}:_e),[J]),Je=r.useMemo((()=>{const e=Q.arrows,t={size:40,contentReduce:!0,loop:!1};return r.isValidElement(e)?{...t,element:e}:"object"==typeof e&&null!==e?{...t,...e}:t}),[Ue]),Qe=r.useMemo((()=>r.Children.toArray(y).flatMap(D)),[y]),et=r.useMemo((()=>Qe.map((e=>r.isValidElement(e)&&e.key?e.key+"":null)).filter((e=>null!==e)).filter((e=>!("clear"===ie||ie&&"object"==typeof ie&&"mode"in ie&&"clear"===ie.mode)||!Se.current.empty?.has(e)))),[y,Be,qe]),[tt,rt,nt,ot]=C?a(C):[0,0,0,0],it=tt+nt,lt=ot+rt,st=r.useMemo((()=>"number"==typeof T?[T,T]:Array.isArray(T)?[T[1]??0,T[0]??0]:[0,0]),[T]),ct=r.useMemo((()=>{const e={type:void 0,rootMargin:0,stopLoadOnScroll:!1,trackVisibility:!1};if("string"==typeof oe)return{...e,type:oe};if("object"==typeof oe&&null!==oe){const{type:t,rootMargin:r=e.rootMargin,stopLoadOnScroll:n=e.stopLoadOnScroll,trackVisibility:o=e.trackVisibility}=oe;return{type:t,rootMargin:r,stopLoadOnScroll:n,trackVisibility:o}}return e}),[We]),at=r.useMemo((()=>a(ct.rootMargin)),[ct.rootMargin,E]),ut=r.useMemo((()=>{const[e,t]=Array.isArray(k)?k:"number"==typeof k?[k,k]:[Oe.current.width,Oe.current.height];if(!Q.arrows||!Je.size||!Je.contentReduce)return[e,t,e,t];const r=2*Je.size;let n=e,o=t;return"x"===E?n=e-r:"y"===E?o=t-r:"hybrid"===E&&(n=e-r,o=t-r),[n,o,e,t]}),[Xe,Ue,E,Je,Oe.current.height,Oe.current.width]),dt="x"===E?ut[0]:ut[1],mt=r.useMemo((()=>{if(!re)return[0,0];if("number"==typeof re){const e=2*re;return[e,e]}if(Array.isArray(re)){const[e=0,t]=re;return[2*e,2*(t??e)]}return[0,0]}),[Ke]),ft=r.useMemo((()=>[ut[0]-mt[0],ut[1]-mt[1]]),[mt.join(),ut[0],ut[1]]),ht=r.useMemo((()=>z?Array.isArray(z)?z:a(z,!0,2):[null,null]),[$e]),pt=r.useMemo((()=>{const{height:e,width:t}=Ye.current,r=(e,t,r)=>t||("number"==typeof e?e:"size"===e?r:0);return[r(ht[0],t,ut[0]),r(ht[1],e,ut[1])]}),[ht.join(),E,Ye.current.width,Ye.current.height,ut.join()]),gt=r.useMemo((()=>oe&&ie&&!se?e("div",{className:"ms-empty-element"}):se),[!!se,We,Be]),yt=r.useMemo((()=>{if("none"===ht[0]||"none"===ht[1])return[1,et.length];const e="x"===E?1:0,t="row"===Z,r=ut[e],n=pt[e]?pt[e]+st[e]:0,o="hybrid"===E&&r?n*et.length:r,i=n?Math.floor(o/n):1;let l=j&&i>=j?"hybrid"===E?Math.ceil(i/j):j:i;const s=l>1&&l<et.length?Math.ceil(et.length/l):l<et.length?et.length:1;t||(l=Math.ceil(et.length/s));const c=j&&j<et.length,a=e=>Number.isFinite(e)&&e>0?e:1;if("hybrid"===E){const e=c?t?j:l:t?et.length:1,r=c?t?l:j:t?1:et.length;return[a(e),a(r)]}return[a(l),a(s)]}),[Z,st[0],st[1],pt[0],pt[1],et.length,E,ut.join(),j]),bt=r.useMemo((()=>{const e=1>yt[0]?1:yt[0]*st[1]-st[1],t=yt["x"===E?1:0],r=et.length<t?et.length:t;return pt[0]?(pt[0]+st[1])*r-st[1]:ct.type?Ye.current.width+e:Ie.current.width}),[E,pt[0],yt[0],yt[1],st[1],Ie.current.width,Ye.current.width,ct.type,et.length]),xt=r.useMemo((()=>{const e=1>yt[1]?1:yt[0]*st[0]-st[0];return pt[1]?"x"===E?(pt[1]+st[0])*yt[0]-st[0]:(pt[1]+st[0])*yt[1]-st[0]:ct.type?Ye.current.height+e:Ie.current.height}),[E,pt[1],yt[0],yt[1],st[0],Ie.current.height,Ye.current.height,ct.type]),vt=r.useMemo((()=>xt+it),[xt,it]),wt=r.useMemo((()=>bt+lt),[bt,lt]),Mt="x"===E?wt:vt,Et=r.useMemo((()=>[Math.max(0,wt-ut[0]),Math.max(0,vt-ut[1])]),[ut.join(),vt,wt]),St="x"===E?be.current?.scrollLeft||0:be.current?.scrollTop||0,Lt=St>1&&!0,At=Mt>Math.round(St+dt);let Rt=!1,kt=!1;"hybrid"===E&&(Rt=(be.current?.scrollLeft||0)>1&&!0,kt=Math.round((be.current?.scrollLeft||0)+ut[0])<wt);const zt=r.useMemo((()=>ne??30),[ne]),jt=r.useCallback((e=>Q.progressElement&&Mt?"x"===e?X(ut[0]-mt[0],wt,zt):X(ut[1]-mt[1],vt,zt):0),[Ue,Mt,ut[0],ut[1],wt,zt,mt.join()]),Tt=r.useMemo((()=>({x:"y"!==E?jt("x"):0,y:"x"!==E?jt("y"):0})),[jt,E]),Ct=r.useMemo((()=>({w:ut[0]?wt-ut[0]:wt,h:ut[1]?vt-ut[1]:vt})),[wt,vt,ut[0],ut[1]]),Ft={x:"y"!==E?$(be.current?.scrollLeft||0,Ct.w,ft[0],Tt.x):0,y:"x"!==E?$(be.current?.scrollTop||0,Ct.h,ft[1],Tt.y):0},Nt=r.useMemo((()=>{if(!ct.type)return[{top:0,bottom:0,left:0,right:0}];let e=0;const t="x"===E,r="row"===Z,n=t&&!r||!t&&r,o=pt[0]+st[1],i=pt[1]+st[0],l=new Set,s=n?yt[0]:yt[1],c=pt[r?0:1],a=st[r?1:0];for(let e=Math.floor((et.length-1)/s)*s;e<et.length;e++)l.add(e);const u=s-l.size,d=u>0?(c+a)*u:0;return"center"===_?e=Math.round(d/2):"end"===_&&(e=d),et.map(((t,s)=>{const c=n?s%yt[0]:Math.floor(s/yt[1]),a=n?Math.floor(s/yt[0]):s%yt[1];let u,d;"x"===E?(u=a,d=c):(u=c,d=a);const m=l.size>0&&l.has(s),f=(m&&!r?e:0)+i*d,h=(m&&r?e:0)+o*u;return{top:f,left:h,bottom:f+pt[1],right:h+pt[0]}}))}),[pt[0],pt[1],st[0],st[1],_,et.length,yt[0],yt[1],ct.type,Z,E]),Ot=r.useMemo((()=>ut?.length&&U?function(e,t,r,n){const[o,i="start"]="string"==typeof e?[e,e]:e,l={display:"flex"};return t[0]>r&&(l.justifyContent=Y(o)),t[1]>n&&(l.alignItems=Y(i)),l}(U,ut,wt,vt):{}),[U,ut.join(),vt,wt]),It=r.useMemo((()=>[N(wt,ut[0]),N(vt,ut[1])]),[wt,vt,ut.join()]),Yt=r.useMemo((()=>"x"===E?It[0]:It[1]),[E,It[0],It[1]]),Ht=r.useCallback(H(Oe,he),[]),Wt=r.useCallback(H(Ie,he,lt,it),[lt,it]),Xt=r.useCallback(H(Ye,he),[]),$t=r.useCallback(((e,t,r)=>{const n=be.current;return n&&null!==e?async function(e,t,r,n,o,i){const l="y"===e,s=l?"scrollTop":"scrollLeft",a=l?i[1]:i[0],u=f(n,0,a),d=f(t[s],0,a);if(d!==u)return null===r?(await async function(e){for(;e.scrollHeight<=e.clientHeight&&e.scrollWidth<=e.clientWidth;)await new Promise((e=>requestAnimationFrame(e)))}(t),void(t[s]=n)):void c((()=>{const e=performance.now(),n=()=>{const i=performance.now(),l=Math.min((i-e)/r,1),c=f(d+(u-d)*l,0,a);t[s]=c,1>l&&c!==u&&o("smoothScroll",n)};o("smoothScroll",n)}),r,"smoothScrollBlock"+e)}(t,n,Me.current?null:r,e,pe.schedule,Et):null}),[Et.join()]),Bt=r.useMemo((()=>{const e={margin:C?`${tt}px ${rt}px ${nt}px ${ot}px`:"",height:ht[1]&&"none"!==ht[1]?xt+"px":"fit-content",width:ht[0]&&"none"!==ht[0]?bt+"px":"fit-content",...T&&!ct.type&&{gap:`${st[0]}px ${st[1]}px`},...V&&I(V,E,ut,lt,it),...("hybrid"===E||"x"===E)&&{flexShrink:0}};if(ct.type)return{...e,position:"relative"};const t=1===yt[0]?"y"===E?"column":"row":Z,r=ht[0]&&"none"!==ht[0]&&ht[1]&&"none"!==ht[1]?"wrap":void 0;return{...e,display:"flex",flexDirection:t,flexWrap:r,justifyContent:Y(_)}}),[C,Pe,De,[tt,rt,nt,ot,lt,it,st[0],st[1]].join(),ut.join(),Ve,ht[1],xt,bt,Ve,ct.type,E,yt[0],Z,_]),Dt=r.useCallback(((e,t,r)=>{we.current=W();const n=t.target;if(n.closest('\n [ms-custom-drag], [draggable="true"], [contenteditable],\n input, textarea, select, button, a\n '))return;let o=null;r&&(o=n.closest("scroll"===x?".ms-bar":".ms-slider")?.getAttribute("data-direction")),Ee.current=e,F({scrollElement:be.current,target:n,clickedObject:Ee,scrollStateRef:Le.current,type:x,triggerUpdate:he,direction:E,smoothScroll:$t,sizeLocal:[ut[0],ut[1]],thumbSize:"x"===o?Tt.x:Tt.y,axisFromAtr:o,duration:Ge.duration,scrollBarEdge:mt,rafScrollAnim:pe,isTouched:we.current,gap:st,overscrollRef:je,objLengthPerSize:It,isDraggingRef:Te,maxScrollSize:Et})}),[E,x,ut.join(),Ge.duration,$t,mt.join(),Tt.x,Tt.y,st.join(),It,Et.join()]),Pt=r.useCallback((e=>{Dt("thumb",e,!0)}),[Dt]),Vt=r.useCallback((e=>{be.current&&(({arrowType:e,scrollElement:t,wrapSize:r,scrollSize:n,smoothScroll:o,duration:i,loop:l,gap:s})=>{const c=r[0],a=r[1],u=t.scrollTop,d=t.scrollLeft,m=(e,r,n)=>{const l=n?((e,t)=>"x"===e?t>0?0:c:t>0?0:a)(e,r):((e,r)=>{const n="x"===e,o=n?d:u,i=n?s[0]:s[1],l=t[n?"clientWidth":"clientHeight"]+i;return l*(Math.floor(Math.max(0,o)/l)+r)})(e,r);o(l,e,i)};switch(e){case"top":u>0?m("y",-1):l&&m("y",-1,!0);break;case"left":d>0?m("x",-1):l&&m("x",-1,!0);break;case"right":d+n[0]<c?m("x",1):l&&m("x",1,!0);break;case"bottom":u+n[1]<a?m("y",1):l&&m("y",1,!0)}})({arrowType:e,scrollElement:be.current,wrapSize:[wt,vt],scrollSize:ut,smoothScroll:$t,duration:Ge.duration,loop:Je.loop,gap:st})}),[ut.join(),wt,vt,Ge.duration,$t,Je.loop,st[0],st[1]]),Ut=r.useCallback((()=>{"scroll"!==x&&ut[0]&&ut[1]&&ye.current&&be.current&&ve.current.size&&((e,t,r,n)=>{[...t].forEach(((t,o)=>{let i=O.get(t);const l=0===o?r:"x",s="x"===l?0:1;if(i&&i.elements.length===n[s]||(i={elements:Array.from(t.querySelectorAll(".ms-slider-element")),lastIndex:-1},O.set(t,i)),!i.elements.length)return;const c="x"===l?e.scrollLeft:e.scrollTop,a="x"===l?e.clientWidth:e.clientHeight,u=Math.floor((c+a/2)/a);u!==i.lastIndex&&(-1!==i.lastIndex&&i.elements[i.lastIndex]?.classList.remove("active"),i.elements[u]?.classList.add("active"),i.lastIndex=u)}))})(be.current,ve.current,E,It)}),[ut.join(),E,x,It.join()]),qt=r.useCallback((e=>{if(e){const o=(n=xe.current)?Array.from(n.children).flatMap((e=>{if(!(e instanceof HTMLElement))return[];const t=e.getAttribute(h);return t?[P(t)]:[]})):[];Ce.current&&(t=Ce.current,r=o,t.length===r.length&&t.every(((e,t)=>e===r[t])))||(Ce.current=o,e(o))}var t,r,n}),[]),Kt=r.useCallback((()=>{xe.current&&((e,t,r,n)=>{const o=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:e=>e instanceof Element&&e.hasAttribute(h)?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP});let i=o.nextNode();for(;i;){const e=i,r=e.getAttribute(h);if(r){const o=0===e.children.length;o&&(t.current.empty||(t.current.empty=new Set),t.current.empty.add(r)),"virtual"===n&&o||t.current.loaded.add(r)}i=o.nextNode()}r()})(xe.current,Se,he,ct.type)}),[We]),Gt=r.useCallback((e=>{"object"==typeof ie&&"clickTrigger"in ie&&void 0!==ie.clickTrigger&&((e,t,r)=>{const{selector:n,delay:o=0}="string"==typeof t?{selector:t}:t,i=e.target;if(!i.closest(n))return;const l=i.closest(`[${h}]`);l?.classList.add("remove"),s((()=>{l?.classList.remove("remove"),r()}),o)})(e,ie.clickTrigger,Kt)}),[Be,Kt]),_t=r.useCallback((e=>{l("removeHover");const t=ye.current,r=ge.current,n=be.current;if(!t||!r||!n)return;if(Ge.value.includes("end")){const{scrollLeft:t,scrollTop:r}=e.currentTarget;ke.current.update(t,r)}L?.(n.scrollLeft,n.scrollTop);const o=t.querySelectorAll("scroll"===x?".ms-bar":".ms-slider");te&&o.length>0&&!Ae.current&&o.forEach((e=>{e.classList.contains("hover")||M(e)})),Ae.current=!0,A?.(!0),s((()=>{ke.current.reset(),Ae.current=!1,A?.(!1),ct.type&&Kt(),te&&o.length>0&&!Ee.current&&o.forEach((e=>{s((()=>{e.hasAttribute("ms-manual-hover")||w(e)}),1e3,"removeHover")}))}),200,"isScrolling"),s((()=>qt(Fe.current)),"raf","onRenderedKeysChange"),fe.schedule("sliderCheckLocal",(()=>{"scroll"!==x&&Ut(),ae()}))}),[L,A,x,Ut,Kt,te,ct.type]),Zt=r.useCallback((e=>{if(Re.current)return;const t="object"==typeof Q.wheel&&"string"==typeof Q.wheel.changeDirectionKey?Q.wheel.changeDirectionKey:"KeyX";e.code!==t||"hybrid"!==E||Re.current||(e.stopPropagation(),Re.current=!0,he())}),[E,Ue]),Jt=r.useCallback((e=>{Re.current&&(e.stopPropagation(),Re.current=!1,he())}),[]);r.useEffect((()=>{if(!R)return Fe.current=void 0,void(Ce.current=null);Fe.current=R,Ce.current=null,qt(R)}),[R,qt]),r.useEffect((()=>{Fe.current&&ut[0]&&ut[1]&&qt(Fe.current)}),[et.join("|"),ut.join()]),r.useEffect((()=>{if(we.current||"hybrid"!==E)return;const e=xe.current,t=be.current;return e&&t?(e.clientWidth+lt>t.clientWidth&&e.clientHeight+it>t.clientHeight&&(t.addEventListener("keydown",Zt),t.addEventListener("keyup",Jt)),()=>{t.removeEventListener("keydown",Zt),t.removeEventListener("keyup",Jt)}):void 0}),[E,Ue,Xe,$e,et.join(),lt,it]),r.useEffect((()=>{ie&&ct.type&&Kt()}),[Be,ct.type,Kt,et.length]),r.useEffect((()=>{if(we.current)return;const e=be.current,t=xe.current;if(!e||!t)return;const r="hybrid"===E&&"object"==typeof Q.wheel&&Q.wheel.changeDirection?"x":E,n="hybrid"===E&&xt+it<=ut[1]||Re.current?["hybrid","y"].includes(r)?"x":"y":r,o=t=>{t.preventDefault(),p(t,e,Et,Le.current,n)};return Q.wheel&&e.addEventListener("wheel",o,{passive:!1}),()=>{e.removeEventListener("wheel",o)}}),[E,Ue,xt,ut[1],it,Re.current,Et.join()]),r.useEffect((()=>{fe.schedule("smoothScrollLocal",(()=>{("hybrid"===E?["x","y"]:[E]).forEach((e=>{const t=Ge.value["x"===e?0:1];if("end"===t){if(ke.current.get()[e]===("x"===e?"left":"up"))return;$t("x"===e?Ct.w:Ct.h,e,Ge.duration)}else"number"==typeof t&&ze.current[e]!==t&&(ze.current[e]=t,$t(t,e,Ge.duration))}))}))}),[E,He,Ct.w,Ct.h,Ge.value.join()]),r.useEffect((()=>{const e=Le.current.animationFrameId;return(ct.type||A)&&A&&A(!1),requestAnimationFrame((()=>Me.current=!1)),()=>{e&&cancelAnimationFrame(e),Le.current.animationFrameId&&cancelAnimationFrame(Le.current.animationFrameId),pe.cancel()}}),[]),r.useEffect((()=>{if(!ce)return;const e=ge.current,t=be.current;if(!e||!t)return;const r={parent:e,element:t,direction:E};return function(e){me.set(e.parent,e),1===me.size&&function(){if(G)return;q=new AbortController;const{signal:e}=q;document.addEventListener("pointerdown",de,{signal:e}),document.addEventListener("dragstart",de,{signal:e}),G=!0}()}(r),()=>{!function(e){me.delete(e.parent),0===me.size&&G&&(q?.abort(),K?.abort(),G=!1)}(r)}}),[ce,E]),r.useEffect((()=>{const e=be.current;if(!e)return;const t=e=>{Dt("wrapp",e)};if(Q.content||!Q.content&&we.current&&Q.wheel){if(!0===Q.progressElement)return;e.addEventListener("pointerdown",t)}return()=>{e.removeEventListener("pointerdown",t)}}),[Ue,Dt]),r.useEffect((()=>{const e=ye.current;if(!e||!te)return;if(!ve.current.size)return;const t=e=>{"mouseenter"===e.type&&document.removeEventListener("mouseup",t),"mouseleave"===e.type&&Ee.current?document.addEventListener("mouseup",t):Array.from(ve.current).forEach((t=>{(({el:e,event:t,isScrolling:r})=>{const n=e=>{if(["mouseleave","mouseup","pointerup","pointercancel"].includes(t.type)){if(e.removeAttribute("ms-manual-hover"),r?.current)return;w(e)}else e.setAttribute("ms-manual-hover",""),M(e)};Array.isArray(e)?e.map((e=>n(e))):n(e)})({el:t,event:e,isScrolling:Ae})}))},r=(t,r)=>{we.current?(Array.from(ve.current).forEach((e=>e[t]("pointerdown",r))),document[t]("pointerup",r),document[t]("pointercancel",r)):(e[t]("mouseenter",r),e[t]("mouseleave",r))};return r("addEventListener",t),()=>{r("removeEventListener",t)}}),[te,x,E,ve.current.size]),r.useEffect((()=>{"scroll"!==x&&fe.schedule("sliderCheckLocal",Ut)}),[x,Ut,ut.join()]);const Qt=r.useCallback(((t,n,o,i,l)=>{const s={width:pt[0]?pt[0]+"px":void 0,height:pt[1]?pt[1]+"px":void 0,...ct.type&&{position:"absolute",transform:`translate(${o}px, ${n}px)`},..."number"==typeof l&&{"--content-visibility":l}},c=le?e(r.Suspense,{fallback:gt,children:i}):i;return e("div",{[h]:""+t,className:"ms-object-box",style:s,onClick:ie?Gt:void 0,children:c},t)}),[le,!!gt,pt[0],pt[1],We,Be,yt[0],Gt,ct.type]),er=r.useMemo((()=>{const e=new Map;return Qe.forEach((t=>{r.isValidElement(t)&&null!=t.key&&e.set(t.key+"",t)})),e}),[Qe]),tr=r.useMemo((()=>[{positionType:"x"===E?"left":"top",visibility:Lt},{positionType:"x"===E?"right":"bottom",visibility:At},..."hybrid"===E?[{positionType:"left",visibility:Rt},{positionType:"right",visibility:kt}]:[]]),[Lt,At,E,Rt,kt]),rr=r.useMemo((()=>({width:ut[2]+"px",height:ut[3]+"px"})),[ut]),nr=r.useMemo((()=>({x:wt>ut[0]?"scroll hidden":"hidden",y:vt>ut[1]?"hidden scroll":"hidden",hybrid:`${wt>ut[0]?"scroll":"hidden"} ${vt>ut[1]?"scroll":"hidden"}`,hide:"hidden"}[Q.wheel||Q.content&&"scroll"===x?E:"hide"]??"hidden")),[wt,vt,ut,Ue,E]),or=r.useMemo((()=>J?tr.map((({positionType:t,visibility:r})=>e(b,{edgeGradient:Ze,visibility:r,edgeType:t,size:ut},"edge-"+t))):null),[J,tr,Ze,Xe]),ir=r.useMemo((()=>Q.arrows?tr.map((({positionType:t,visibility:r})=>e(v,{visibility:r,arrows:Je,arrowType:t,handleArrow:Vt,size:ut[0]},"arrow-"+t))):null),[Ue,tr,Je,Vt,ut[0]]),lr=()=>{const t=be.current?.scrollLeft||0,n=be.current?.scrollTop||0;return e("div",{className:"ms-objects-wrapper",ref:xe,style:{...Bt,...(je.current.x||je.current.y)&&{transform:`translate(${je.current.x}px, ${je.current.y}px)`},...Te.current&&{pointerEvents:"none"}},children:et.map(((o,i)=>((t,n,o,i)=>{const l=er.get(t),s=ct.stopLoadOnScroll&&Ae.current&&!Se.current.loaded.has(t)?gt:Se.current.empty?.has(t)?ie&&"object"==typeof ie&&r.isValidElement(ie)?ie:ie&&"object"==typeof ie&&"mode"in ie&&"object"==typeof ie.mode&&"fallback"in ie.mode?ie.mode.fallback:gt:l,c="firstChild"!==ht[0]&&"firstChild"!==ht[1]||0!==n?s:e(d,{onResize:Xt,children:s});if(!ct.type)return Qt(t,0,0,c);const{top:a,bottom:u,left:m,right:f}=Nt[n],h=(e=!0)=>{const t=e?at:[0,0,0,0],r=e=>{const r="x"===e?o:i,n=r+("x"===e?ut[0]:ut[1]),l="x"===e?m-t[3]:a-t[2],s="x"===e?f+t[1]:u+t[0],c=s-l;if(0>=c)return 0;const d=Math.min(s,n)-Math.max(l,r);return d>0?Math.round(10*Math.min(1,d/c))/10:0};if("hybrid"===E){const e=r("x"),t=r("y");return Math.min(e,t)}return r("x"===E?"x":"y")},p=h(),g=ct.trackVisibility?h(!1):null;if("lazy"===ct.type){const e=Se.current.loaded.has(t);if(p&&!e){if(Ae.current&&ct.stopLoadOnScroll)return;Se.current.loaded.add(t)}return e?Qt(t,a,m,c,g):null}return p?Qt(t,a,m,c,g):(Se.current.loaded.delete(t),null)})(o,i,t,n)))})},sr=r.useMemo((()=>{const e={position:"relative",width:ut[0]+"px",height:ut[1]+"px"};return Q.arrows&&Je.contentReduce&&Je.size&&("x"===E?e.left=Je.size+"px":"y"===E?e.top=Je.size+"px":(e.top=Je.size+"px",e.left=Je.size+"px")),e}),[ut,Ue,Je,E]),cr=t("div",{"morph-scroll":""+ue,className:u,ref:ge,style:rr,children:[t("div",{className:"ms-content",ref:ye,style:{...sr,transform:"translateZ(0)",...we.current&&{touchAction:"pinch-zoom"}},children:[e("div",{className:"ms-element",ref:be,onScroll:_t,tabIndex:0,style:{width:"100%",height:"100%",outline:"none",...Ot,..."boolean"!=typeof Q.progressElement||!1===Q.progressElement?{scrollbarWidth:"none",overflow:"hidden"}:{overflow:nr},...Q.content&&{cursor:"grab"}},children:pt[0]&&pt[1]?lr():e(d,{onResize:Wt,style:Ot,children:lr()})}),or,Q.progressElement&&!0!==Q.progressElement?(()=>{const e="x"!==E;return[{shouldRender:Mt>ut[e?1:0],direction:E,thumbSize:e?Tt.y:Tt.x,thumbSpace:e?Ft.y:Ft.x,objLengthPerSize:Yt,progressReverseIndex:0},{shouldRender:"hybrid"===E&&wt>ut[0],direction:"x",thumbSize:Tt.x,thumbSpace:Ft.x,objLengthPerSize:It[0],progressReverseIndex:1}].filter((({shouldRender:e})=>e))})().map((t=>{const r="boolean"==typeof ee?ee:ee[t.progressReverseIndex];return e(g,{type:x,direction:t.direction,progressReverse:r,size:ft,progressTrigger:[Q,Ue],scrollBarOnHover:te,scrollBarEvent:"sliderMenu"===x?$t:Pt,thumbSize:t.thumbSize,thumbSpace:t.thumbSpace,objLengthPerSize:t.objLengthPerSize,sliderCheckLocal:Ut,duration:Ge.duration,isTouched:we.current,scrollStateRef:Le,scrollEl:be,scrollBarsRef:ve,triggerUpdate:he,overscroll:je,maxScrollSize:Et},t.direction)})):null]}),ir]});return"auto"===k?e(d,{measure:"outer",onResize:Ht,children:cr}):cr};fe.displayName="MorphScroll";const he={MorphScroll:fe,ResizeTracker:d,IntersectionTracker:u};export{u as IntersectionTracker,fe as MorphScroll,d as ResizeTracker,he as default};
|
|
1
|
+
import{jsx as e,jsxs as r}from"react/jsx-runtime";import t,{useRef as n,useState as o,useCallback as i}from"react";import{createTaskManager as l}from"keytask-core";var c=function(){return c=Object.assign||function(e){for(var r,t=1,n=arguments.length;n>t;t++)for(var o in r=arguments[t])Object.prototype.hasOwnProperty.call(r,o)&&(e[o]=r[o]);return e},c.apply(this,arguments)};function a(e,r,t,n){return new(t||(t=Promise))((function(o,i){function l(e){try{a(n.next(e))}catch(e){i(e)}}function c(e){try{a(n.throw(e))}catch(e){i(e)}}function a(e){var r;e.done?o(e.value):(r=e.value,r instanceof t?r:new t((function(e){e(r)}))).then(l,c)}a((n=n.apply(e,r||[])).next())}))}function u(e,r){var t,n,o,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},l=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return l.next=c(0),l.throw=c(1),l.return=c(2),"function"==typeof Symbol&&(l[Symbol.iterator]=function(){return this}),l;function c(c){return function(a){return function(c){if(t)throw new TypeError("Generator is already executing.");for(;l&&(l=0,c[0]&&(i=0)),i;)try{if(t=1,n&&(o=2&c[0]?n.return:c[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,c[1])).done)return o;switch(n=0,o&&(c=[2&c[0],o.value]),c[0]){case 0:case 1:o=c;break;case 4:return i.label++,{value:c[1],done:!1};case 5:i.label++,n=c[1],c=[0];continue;case 7:c=i.ops.pop(),i.trys.pop();continue;default:if(!((o=(o=i.trys).length>0&&o[o.length-1])||6!==c[0]&&2!==c[0])){i=0;continue}if(3===c[0]&&(!o||c[1]>o[0]&&c[1]<o[3])){i.label=c[1];break}if(6===c[0]&&i.label<o[1]){i.label=o[1],o=c;break}if(o&&i.label<o[2]){i.label=o[2],i.ops.push(c);break}o[2]&&i.ops.pop(),i.trys.pop();continue}c=r.call(e,i)}catch(e){c=[6,e],n=0}finally{t=o=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}([c,a])}}}function s(e,r){var t="function"==typeof Symbol&&e[Symbol.iterator];if(!t)return e;var n,o,i=t.call(e),l=[];try{for(;(void 0===r||r-- >0)&&!(n=i.next()).done;)l.push(n.value)}catch(e){o={error:e}}finally{try{n&&!n.done&&(t=i.return)&&t.call(i)}finally{if(o)throw o.error}}return l}function f(e,r,t){if(t||2===arguments.length)for(var n,o=0,i=r.length;i>o;o++)!n&&o in r||(n||(n=Array.prototype.slice.call(r,0,o)),n[o]=r[o]);return e.concat(n||Array.prototype.slice.call(r))}"function"==typeof SuppressedError&&SuppressedError;var d=function(e,r,t){void 0===r&&(r=!1);var n=[];if(n=Array.isArray(e)?2===e.length?[e[1],e[0],e[1],e[0]]:f([],s(e),!1):[e,e,e,e],r&&(n=[n[1],n[0],n[3],n[2]]),t){for(var o=[],i=0;t>i;i++)o.push(n[i%4]);n=o}return n},v=function(r){var n=r.className,o=r.children,i=r.style,l=r.root,c=r.threshold,a=r.rootMargin,u=r.visibleContent,f=void 0!==u&&u,v=r.onIntersection,h=s(t.useState(!1),2),m=h[0],p=h[1],y=t.useRef(null),g=t.useMemo((function(){if(!a)return"";var e=d(a);return"".concat(e[0],"px ").concat(e[1],"px ").concat(e[2],"px ").concat(e[3],"px")}),[a]),b=t.useCallback((function(e){var r=s(e,1)[0];p(r.isIntersecting),v&&v({time:r.time,rootBounds:r.rootBounds,boundingClientRect:r.boundingClientRect,intersectionRect:r.intersectionRect,isIntersecting:r.isIntersecting,intersectionRatio:r.intersectionRatio,target:r.target})}),[v]);return t.useEffect((function(){var e=new IntersectionObserver(b,{root:l,threshold:c,rootMargin:g});return y.current&&e.observe(y.current),function(){e.disconnect()}}),[b,l,c,g]),e("div",{"intersection-tracker":"",className:n,ref:y,style:i,children:f||m?o:null})};v.displayName="IntersectionTracker";var h=function(r){var n=r.className,o=r.children,i=r.style,l=r.measure,a=void 0===l?"inner":l,u=r.onResize,s=t.useRef(null);t.useEffect((function(){var e=s.current;if(e){var r=new ResizeObserver((function(e){var r,t;try{for(var n=function(e){var r="function"==typeof Symbol&&Symbol.iterator,t=r&&e[r],n=0;if(t)return t.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(r?"Object is not iterable.":"Symbol.iterator is not defined.")}(e),o=n.next();!o.done;o=n.next()){var i=o.value;u&&u(i.contentRect)}}catch(e){r={error:e}}finally{try{o&&!o.done&&(t=n.return)&&t.call(n)}finally{if(r)throw r.error}}}));return r.observe(e),function(){r.unobserve(e),r.disconnect()}}}),[a,u]);var f={width:"max-content",height:"max-content"},d={inner:c({},f),outer:c({},{width:"100%",height:"100%"}),all:c({minWidth:"100%",minHeight:"100%"},f)};return e("div",{"resize-tracker":"",className:n,ref:s,style:c(c({willChange:"width, height"},d[a]),i),children:o})};h.displayName="ResizeTracker";var m=l(),p=m.cancelTask,y=m.setLockTask,g=m.setTask,b=1;function x(e,r,t,n){return void 0===r&&(r=0),void 0===t&&(t=1/0),void 0===n&&(n=!0),Math.max(r,Math.min(n?Math.round(e):e,t))}var w="wrap-id";function S(e,r,t,n,o){r.matches(":focus")||r.focus(),n.animating||(n.targetScrollX=x(r.scrollLeft,0,t[0]),n.targetScrollY=x(r.scrollTop,0,t[1])),"x"===o?n.targetScrollX=x(n.targetScrollX+e.deltaY,0,t[0]):n.targetScrollY=x(n.targetScrollY+e.deltaY,0,t[1]),n.animating||(n.animating=!0,n.animationFrameId=requestAnimationFrame((function e(){var i;if("x"===o){var l=x(r.scrollLeft+.4*(n.targetScrollX-r.scrollLeft),0,t[0]);r.scrollLeft=l,i=Math.abs(l-n.targetScrollX)}else{var c=x(r.scrollTop+.4*(n.targetScrollY-r.scrollTop),0,t[1]);r.scrollTop=c,i=Math.abs(c-n.targetScrollY)}i>2.5?n.animationFrameId=requestAnimationFrame(e):("x"===o?r.scrollLeft=x(n.targetScrollX,0,t[0]):r.scrollTop=x(n.targetScrollY,0,t[1]),n.animating=!1,n.animationFrameId=null)})))}var M=function(r){var n=r.type,o=r.direction,i=r.progressReverse,l=r.size,a=r.progressTrigger,u=r.scrollBarOnHover,s=r.scrollBarEvent,f=r.thumbSize,d=r.thumbSpace,v=r.objLengthPerSize,h=r.sliderCheckLocal,m=r.duration,p=r.isTouched,y=r.scrollStateRef,g=r.scrollEl,b=r.scrollBarsRef,x=r.triggerUpdate,w=r.overscroll,M=r.maxScrollSize,E=t.useRef(null),L=t.useRef(null),k=["hybrid","y"].includes(o)?"y":"x",A=Math.abs(w.current[k])*(f/200),R=f-A,z=0>w.current[k]?d+A:d,j=t.useMemo((function(){if("scroll"!==n){var r=l["x"===k?0:1];return Array.from({length:v},(function(t,o){return e("div",{className:"ms-slider-element",style:c({},"sliderMenu"===n&&{cursor:"pointer"}),onClick:"sliderMenu"===n?function(){s(r*o,k,m,h)}:void 0,children:Array.isArray(a[0].progressElement)?a[0].progressElement[o]:a[0].progressElement},o)}))}}),[v,n,a[1],m,h,l[0],l[1],s]),T=t.useMemo((function(){return"x"!==o?"y":"x"}),[o]),C=l["x"===T?0:1],F="scroll"!==n?"":f+2*d>C?"flex-end":"flex-start";t.useEffect((function(){if(!p&&a[0].wheel){var e=E.current,r=g.current;if(e&&r){for(var t=e.previousElementSibling;t&&!t.classList.contains("ms-element");)t=t.previousElementSibling;var n=function(e){return S(e,r,M,y.current,T)};return e.addEventListener("wheel",n,{passive:!1}),function(){return e.removeEventListener("wheel",n)}}}}),[T]),t.useEffect((function(){var e="slider"===n?E.current:L.current;if(e&&"sliderMenu"!==n){var r=function(e){return s(e)};return e.addEventListener("pointerdown",r),function(){return e.removeEventListener("pointerdown",r)}}}),[s,n]),t.useEffect((function(){var e=E.current;if(e)return b.current.add(e),x(),function(){b.current.delete(e)}}),[f]);var O=c({position:"absolute"},u&&{opacity:0,transition:"opacity 0.2s ease-in-out"});return e(t.Fragment,{children:"scroll"===n?e("div",{className:"ms-bar ms-".concat(T),ref:E,"data-direction":T,style:c(c(c({},O),{width:"fit-content",height:"".concat(C,"px")}),"x"===o?c({transformOrigin:"left top",left:"50%"},i?{top:0,transform:"rotate(-90deg) translate(-100%, -50%)"}:{transform:"rotate(-90deg) translateY(-50%)"}):c({top:"50%",transform:"translateY(-50%)"},i?{left:0}:{right:0})),children:e("div",{className:"ms-thumb",ref:L,style:c(c({height:"".concat(R,"px"),transform:"translateY(".concat(z,"px)")},a[0].progressElement&&{cursor:"grab"}),{display:"flex",alignItems:F}),children:a[0].progressElement})}):v>1&&a[0].progressElement&&e("div",{className:"ms-slider ms-".concat(T),ref:E,"data-direction":T,style:c(c(c(c({},O),{display:"flex"}),"slider"===n&&{cursor:"grab"}),"x"===o?c({transformOrigin:"left top",left:"50%",transform:"translateX(-50%)"},i?{top:0}:{bottom:0}):c({flexDirection:"column",top:"50%",transform:"translateY(-50%)"},i?{left:0}:{right:0})),children:j})})};M.displayName="ScrollBar";var E=function(r){var t,n=r.edgeGradient,o=r.visibility,i=r.edgeType;r.size;var l=c(c(c(((t={position:"absolute"})[i]=0,t.pointerEvents="none",t.transition="opacity 0.2s ease-in-out",t["--edge-visibility"]=o?1:0,t.opacity="var(--edge-visibility)",t),n.color&&{background:n.color&&"linear-gradient(".concat(["left","right"].includes(i)?"270deg, ":"").concat(n.color,", transparent)")}),["left","right"].includes(i)?{height:"100%",width:"".concat(n.size,"px"),top:0}:{width:"100%",height:"".concat(n.size,"px"),left:0}),"left"===i?{transform:"scaleX(-1)"}:"bottom"===i?{transform:"scaleY(-1)"}:{}),a="ms-edge ".concat(i).concat(o?"":" ms-disabled");return e("div",{className:a,style:l})};E.displayName="Edge";var L=t.memo(E),k=function(r){var n,o=r.visibility,i=r.arrows,l=r.arrowType,a=r.handleArrow,u=r.size,s=t.useRef(null),f=c(c(c(c(c({position:"absolute",display:"flex",justifyContent:"center",alignItems:"center",cursor:"pointer",width:"".concat(i.size,"px")},l?((n={})[l]=0,n):{}),"top"===l&&{transform:"rotate(-90deg) translateX(-100%)",transformOrigin:"left top"}),"bottom"===l&&{transform:"rotate(90deg) translateX(-100%)",transformOrigin:"left bottom"}),"left"===l&&{transform:"scaleX(-1)"}),["top","bottom"].includes(l)?{height:"".concat(u,"px")}:{height:"100%",top:0});return t.useEffect((function(){var e=s.current;if(e){var r=function(){return a(l)};return e.addEventListener("click",r),function(){e.removeEventListener("click",r)}}}),[a,l]),e("div",{className:"ms-arrow-box ".concat(l).concat(o?" active":""),ref:s,style:f,children:i.element})};k.displayName="Arrow";var A,R=t.memo(k),z=function(e){var r=e.getAttribute("data-direction");e.style.opacity="0",e.classList.remove("hover"),e.classList.add("leave"),p("remove".concat(r)),g((function(){return e.classList.remove("leave")}),200,"remove".concat(r))},j=function(e){var r=e.getAttribute("data-direction");p("remove".concat(r)),e.style.opacity="1",e.classList.remove("leave"),e.classList.add("hover")},T=function(){var e=null,r=0,t=new Map,n=function(){t.forEach((function(e,r){e()||t.delete(r)})),e=0!==t.size?requestAnimationFrame(n):null};return{start:function(o,i){var l=null!=i?i:++r;return t.delete(l),t.set(l,o),null===e&&(e=requestAnimationFrame(n)),l},stop:function(r){void 0!==r?(t.delete(r),0===t.size&&null!==e&&(cancelAnimationFrame(e),e=null)):(t.clear(),null!==e&&(cancelAnimationFrame(e),e=null))},isRunning:function(e){return void 0===e?t.size>0:t.has(e)}}}(),C=function(e,r,t){var n=e.current[r],o=performance.now();T.start((function(){var i=performance.now(),l=Math.min((i-o)/140,1);return 1>l?(e.current[r]=n*(1-l),t(),!0):(e.current[r]=0,t(),!1)}))},F={x:0,y:0},O={x:0,y:0},I={x:0,y:0,t:0,distX:0,distY:0},N=null,Y=function(e,r,t,n){if(e){var o=null;["thumb","slider"].includes(e)?o="slider"===e?null==r?void 0:r.closest(".ms-slider"):r:"wrapp"===e&&(o=t),function(e,r){if(e){var t,n=window.matchMedia("(pointer: coarse)").matches;"start"===r?(n||(t=document.getElementById("ms-cursor-lock"))||((t=document.createElement("style")).id="ms-cursor-lock",t.textContent="\n * {\n cursor: grabbing !important;\n user-select: none;\n }\n ",document.head.appendChild(t)),e.style.cursor="grabbing",e.classList.add("active")):(n||(t=document.getElementById("ms-cursor-lock"))&&t.remove(),e.style.cursor="grab",e.classList.remove("active"))}}(o,n)}},H=function(e,r,t,n){"x"===e?(t.scrollStateRef.targetScrollX=n,r.scrollLeft!==n&&(r.scrollLeft=n)):(t.scrollStateRef.targetScrollY=n,r.scrollTop!==n&&(r.scrollTop=n))},W=function(e,r,t,n){var o,i,l=n.scrollElement;if(l){var c="x"===e,a={x:n.event.clientX,y:n.event.clientY};if(a){var u=function(e,r,t){if(0===e)return 0;var o="x"===r?n.sizeLocal[0]:n.sizeLocal[1],i=.14*Math.max(600,o),l=Math.abs(e);return x(e*i/(i+(t?-l:l)),-150,150)};if(N){var s=N,f={x:a.x-s.x.value,y:a.y-s.y.value},d=Math.abs(F[e]);if(d>2?n.isDraggingRef.current=!0:3>d&&(F[e]+=f[e]),n.isTouched){var v=performance.now();if(I.t){var h=Math.max(v-I.t,8);I={x:.8*I.x+f.x/h*.2,y:.8*I.y+f.y/h*.2,t:v,distX:(null!==(o=I.distX)&&void 0!==o?o:0)+Math.abs(f.x),distY:(null!==(i=I.distY)&&void 0!==i?i:0)+Math.abs(f.y)}}else I.t=v}var m="wrapp"===n.clickedObject.current?-f[e]:f[e],p=c?"scrollLeft":"scrollTop",y=c?0:1,g=function(r,t,o){var i=N[e],a=c?n.maxScrollSize[0]:n.maxScrollSize[1];if(Number.isFinite(r)&&Number.isFinite(t)){if(0!==i.raw){var s=i.raw;return i.raw+=.6*t,o&&(n.overscrollRef.current[e]=u(i.raw,e),n.triggerUpdate()),Math.sign(i.raw)!==Math.sign(s)?(i.raw=0,void(o&&(n.overscrollRef.current[e]=0,n.triggerUpdate()))):void 0}if(a>0){var f=l[p];if(0>=f&&0>r||f>=a&&r>0)return i.raw+=t,void(o&&(n.overscrollRef.current[e]=u(i.raw,e),n.triggerUpdate()));var d=x(l[p]+r,0,a);H(e,l,n,d)}else H(e,l,n,0)}else N=null};if("thumb"===n.clickedObject.current&&"slider"!==n.type){var b=m*r+s[e].rest,w=Math.trunc(b);return s[e].rest=b-w,void g(w,m,!1)}if("slider"===n.type&&(O[e]+=m),"wrapp"!==n.clickedObject.current){var S=l[p];if(!n.sliderElSize||Math.abs(O[e])>=n.sliderElSize[c?0:1]){var M=function(e){var r=l[c?"clientWidth":"clientHeight"]+n.gap[y];return r*(Math.floor(Math.max(0,S)/r)+e)},E=m>0&&S+n.sizeLocal[y]<n.wrapElWH[y]?M(1):0>m&&S>0?M(-1):null;O[e]=0,n.smoothScroll(E,e,10)}}else g(m/t[y],f[e],!0)}else N={x:{value:a.x,rest:0,raw:u(n.overscrollRef.current.x,"x",!0)},y:{value:a.y,rest:0,raw:u(n.overscrollRef.current.y,"y",!0)}}}}};function X(e){T.stop(),["x","y"].forEach((function(r){e.rafScrollAnim.cancel(),p("smoothScrollBlock".concat(r))}));var r=e.scrollElement;if(r){e.scrollStateRef.targetScrollX=r.scrollLeft,e.scrollStateRef.targetScrollY=r.scrollTop,I={x:0,y:0,t:0,distX:0,distY:0};var t=[r.scrollWidth,r.scrollHeight],n=["scroll","slider"].includes(e.type)?function(e){var r=e.getBoundingClientRect();return[r.width/e.clientWidth,r.height/e.clientHeight]}(r):[],o=1;if("thumb"===e.clickedObject.current&&e.axisFromAtr){var i="x"===e.axisFromAtr?0:1,l=(e.sizeLocal[i]-e.scrollBarEdge[i]-e.thumbSize)*n[i];o=e.maxScrollSize[i]/l,Number.isFinite(o)&&o>0||(o=1)}Y(e.clickedObject.current,e.target,r,"start"),null==A||A.abort();var a=new AbortController;A=a;var u=a.signal;document.addEventListener("pointermove",(function(r){!function(r){var i,l;if("thumb"===e.clickedObject.current&&"slider"===e.type){var a=null===(i=e.target)||void 0===i?void 0:i.closest(".ms-slider");if(!a)return;var u=function(r){var t=a.getBoundingClientRect();return Math.round(("x"===r?t.width:t.height)/e.objLengthPerSize["x"===r?0:1])};l=[u("x"),u("y")]}!function(e){var r=e.direction||"y";"hybrid"===r?["wrapp","slider"].includes(e.clickedObject.current)?["x","y"].forEach((function(r){return W(r,e.thumbRatio,e.visualDiff,e)})):e.axisFromAtr&&W(e.axisFromAtr,e.thumbRatio,e.visualDiff,e):W(e.axisFromAtr?e.axisFromAtr:r,e.thumbRatio,e.visualDiff,e);var t={x:e.event.clientX,y:e.event.clientY};N&&(N.x.value=t.x,N.y.value=t.y)}(c(c({},e),{event:r,wrapElWH:t,visualDiff:n,thumbRatio:o,sliderElSize:l}))}(r)}),{signal:u});var f=function(r){e.isDraggingRef.current=!1,function(e){null==A||A.abort();var r=e.scrollElement;if(r){if(Y(e.clickedObject.current,e.target,r,"end"),"slider"===e.type&&"thumb"!==e.clickedObject.current){var t=O,n=function(t,n){var o="x"===t,i=o?e.maxScrollSize[0]:e.maxScrollSize[1],l=r[o?"scrollLeft":"scrollTop"],c=o?e.gap[0]:e.gap[1],a=r[o?"clientWidth":"clientHeight"]+c,u=(Math[n?n>0?"floor":"ceil":"round"](l/a)+(null!=n?n:0))*a;u>i||0>u||e.smoothScroll(u,t,e.duration)},o=function(e,r){Math.abs(r)>20?n(e,r>0?1:-1):n(e)};0===t.x&&0===t.y?"hybrid"===e.direction?["x","y"].forEach((function(e){return o(e,t[e])})):o(e.direction,t[e.direction]):Object.entries(t).forEach((function(e){var r=s(e,2),t=r[0],n=r[1];0!==n&&o(t,n)}))}if(e.isTouched&&"scroll"===e.type&&"slider"!==e.clickedObject.current){var i=function(t){var n=I[t]*e.thumbRatio,o="x"===t?I.distX:I.distY;80>performance.now()-I.t&&Math.abs(n)>.05&&o>12&&function(e){var r=e.el,t=e.axis,n=e.velocity,o=e.rafSchedule,i=Math.sign(n),l=Math.abs(n);.2>(l=Math.pow(l,.92))&&(l=.2),n=l*i;var c="y"===t?"scrollTop":"scrollLeft",a="y"===t?r.scrollHeight-r.clientHeight:r.scrollWidth-r.clientWidth,u=performance.now(),s=function(){var e=performance.now(),t=e-u;if(u=e,Math.abs(n*=Math.exp(-.0025*t))>=.02){var i=r[c]+n*t;(0>i||i>a)&&(n*=.4,i=x(i,0,a)),r[c]=i,o("step",s)}};o("step",s)}({el:r,axis:t,velocity:"thumb"===e.clickedObject.current?n:-n,rafSchedule:e.rafScrollAnim.schedule})};"hybrid"===e.direction?"wrapp"===e.clickedObject.current?["x","y"].forEach((function(e){return i(e)})):i(e.axisFromAtr):i(e.axisFromAtr?e.axisFromAtr:e.direction)}N=null,0!==e.overscrollRef.current.x&&C(e.overscrollRef,"x",e.triggerUpdate),0!==e.overscrollRef.current.y&&C(e.overscrollRef,"y",e.triggerUpdate),e.clickedObject.current=null,I={x:0,y:0,t:0,distX:0,distY:0},F={x:0,y:0},O={x:0,y:0},e.triggerUpdate()}}(c(c({},e),{event:r,thumbRatio:o}))};document.addEventListener("pointerup",f,{signal:u}),document.addEventListener("pointercancel",f,{signal:u})}}function B(e,r){return e>r?Math.floor(e/r):1}function P(e){return a(this,void 0,void 0,(function(){return u(this,(function(r){switch(r.label){case 0:return e.scrollHeight>e.clientHeight||e.scrollWidth>e.clientWidth?[3,2]:[4,new Promise((function(e){return requestAnimationFrame(e)}))];case 1:return r.sent(),[3,0];case 2:return[2]}}))}))}var D=new WeakMap,V=function(e){return e?"start"===e?"flex-start":"center"===e?"center":"flex-end":void 0};function U(e,r,t,n){return void 0===t&&(t=0),void 0===n&&(n=0),function(o){var i,l,c,a,u=!1,s={width:(null!==(i=o.width)&&void 0!==i?i:0)-t,height:(null!==(l=o.height)&&void 0!==l?l:0)-n},f=0===s.width&&0===s.height;f&&!u&&(u=!0),(null===(c=e.current)||void 0===c?void 0:c.width)===s.width&&(null===(a=e.current)||void 0===a?void 0:a.height)===s.height||f&&u||(e.current=s,r())}}var q=function(){var e,r;return"undefined"!=typeof window&&null!==(r=null===(e=window.matchMedia)||void 0===e?void 0:e.call(window,"(pointer: coarse)").matches)&&void 0!==r&&r};function K(e,r,t){return r?x(Math.round(e/r*e),t,e):0}function G(e,r,t,n){return r?x(e/r*(t-n),0,t-n):0}function _(){var e=null,r=new Map;return{schedule:function(t,n){r.set(t,n),null===e&&(e=requestAnimationFrame((function(){e=null;var t=Array.from(r.values());r.clear(),t.forEach((function(e){return e()}))})))},cancel:function(){null!==e&&(cancelAnimationFrame(e),e=null,r.clear())}}}var $,Z=function(e){if(null==e)return[];if(t.isValidElement(e)){var r=e;return r.type===t.Fragment?t.Children.toArray(r.props.children).flatMap(Z):[r]}return[e]},J=function(e){var r=e.lastIndexOf(":$");return-1!==r?e.slice(r+2).replace(/=0/g,"=").replace(/=2/g,":"):e.startsWith(".$")?e.slice(2).replace(/=0/g,"=").replace(/=2/g,":"):e},Q=40,ee="ms-under-drag",re=null,te=!1,ne={x:0,y:0},oe={x:0,y:0},ie=!1,le=null,ce="",ae=null,ue=null,se=null,fe=_(),de=function(){ue&&ue.removeAttribute(ee),le=null,ue=null,ae=null,ce="",se=null};function ve(e,r,t,n,o,i){var l=e-r,c=t-e;return Q>l&&n>0?{dir:-1,distance:l}:Q>c&&i>n+o?{dir:1,distance:c}:null}function he(e){var r=x((Q-Math.abs(e))/Q,0,1,!1);return r*r*20|0}function me(){if(le){var e=le.parent,r=le.element,t=le.direction,n=r.getBoundingClientRect(),o=oe.x,i=oe.y;if(o<n.left-Q||o>n.right+Q||i<n.top-Q||i>n.bottom+Q)de();else{var l=null,c=null,a=0,u=0,s="x"!==t?ve(i,n.top,n.bottom,r.scrollTop,r.clientHeight,r.scrollHeight):null;s&&(l=-1===s.dir?"top":"bottom",u=he(s.distance)*s.dir);var f="y"!==t?ve(o,n.left,n.right,r.scrollLeft,r.clientWidth,r.scrollWidth):null;f&&(c=-1===f.dir?"left":"right",a=he(f.distance)*f.dir),(ce=[l,c].filter(Boolean).join(" "))!==se&&(e.setAttribute(ee,ce),se=ce),(a||u)&&r.scrollBy(a,u),fe.schedule("autoScrollLoop",me)}}}function pe(e){e instanceof DragEvent&&0===e.buttons?ye():oe.x===e.clientX&&oe.y===e.clientY||(oe.x=e.clientX,oe.y=e.clientY,fe.schedule("onMove",(function(){if(!ie){var e=oe.x-ne.x,r=oe.y-ne.y;if(10>Math.hypot(e,r))return;ie=!0}var t=document.elementFromPoint(oe.x,oe.y);if(t){var n=t.closest("[morph-scroll]");if(n||le){var o=n?be.get(n):le;o&&(le=o,ae!==o.element&&(ue&&ue!==o.parent&&ue.removeAttribute(ee),ae=o.element,(ue=o.parent).setAttribute(ee,ce),se=ce,me()))}else de()}})))}function ye(){null==re||re.abort(),re=null,ie=!1,fe.cancel(),de()}function ge(e){var r=e instanceof PointerEvent;if(!r||e.target.closest("[ms-custom-drag]")){ne.x=e.clientX,ne.y=e.clientY,null==re||re.abort();var t=new AbortController;re=t;var n=t.signal;r?(document.addEventListener("pointermove",pe,{signal:n}),document.addEventListener("pointerup",ye,{signal:n})):(document.addEventListener("dragover",pe,{signal:n}),document.addEventListener("dragend",ye,{signal:n}),document.addEventListener("drop",ye,{signal:n}),document.addEventListener("pointerdown",ye,{signal:n}),window.addEventListener("blur",ye,{signal:n}))}}var be=new Map;var xe=function(l){var v,m,E,k,A,T,C,F,O=l.className,I=l.children,N=l.type,Y=void 0===N?"scroll":N,H=l.direction,W=void 0===H?"y":H,Q=l.scrollPosition,ee=l.onScrollValue,ne=l.isScrolling,oe=l.onRenderedKeysChange,ie=l.size,le=l.objectsSize,ce=l.crossCount,ae=l.gap,ue=l.wrapperMargin,se=l.wrapperMinSize,fe=l.wrapperAlign,de=l.elementsAlign,ve=l.elementsDirection,he=void 0===ve?"row":ve,me=l.edgeGradient,pe=l.progressTrigger,ye=void 0===pe?{wheel:!0}:pe,xe=l.progressReverse,we=void 0!==xe&&xe,Se=l.scrollBarOnHover,Me=void 0!==Se&&Se,Ee=l.scrollBarEdge,Le=l.thumbMinSize,ke=l.render,Ae=l.emptyElements,Re=l.suspending,ze=void 0!==Re&&Re,je=l.fallback,Te=l.dragScroll,Ce=(C=s(o({}),2)[1],i((function(){C({})}),[])),Fe=(null===(F=n(null)).current&&(F.current="".concat(b++)),F.current),Oe=_(),Ie=function(){return Oe.schedule("triggerUpdate",Ce)},Ne=_();if(!ie)throw Error('prop "size" is not provided'.concat("\n morph-scroll ".concat(Fe)));Object.keys(ye).length,"none"===le||Array.isArray(le)&&("none"===le[0]||le[1]);var Ye=t.useRef(null),He=t.useRef(null),We=t.useRef(null),Xe=t.useRef(null),Be=t.useRef(new Set),Pe=t.useRef(q()),De=t.useRef(!0),Ve=t.useRef(null),Ue=t.useRef({loaded:new Set,empty:new Set}),qe=t.useRef({targetScrollY:0,targetScrollX:0,animating:!1,animationFrameId:0}),Ke=t.useRef(!1),Ge=t.useRef(!1),_e=t.useRef(function(e){void 0===e&&(e=2);var r=0,t=0,n=null,o=null;return{update:function(i,l){var c=i-r,a=l-t;Math.abs(c)>e&&(n=c>0?"right":"left",r=i),Math.abs(a)>e&&(o=a>0?"down":"up",t=l)},reset:function(){n=null,o=null},get:function(){return{x:n,y:o}}}}()),$e=t.useRef({x:null,y:null}),Ze=t.useRef({x:0,y:0}),Je=t.useRef(!1),Qe=t.useRef(null),er=t.useRef(oe);function rr(){return t.useRef({width:0,height:0})}var tr=rr(),nr=rr(),or=rr(),ir=s(function(){for(var e=[],r=0;arguments.length>r;r++)e[r]=arguments[r];var n=new WeakMap,o=function(e){if(null===e)return 1;if("boolean"==typeof e)return e?2:3;if("number"==typeof e||"bigint"==typeof e)return 0|+e;if("string"==typeof e){for(var r=0,i=0;i<e.length;i++)r=31*r+e.charCodeAt(i)>>>0;return r}if(void 0===e)return 4;if("function"==typeof e)return 5;if(t.isValidElement(e))return 6;if(Array.isArray(e)){for(r=0,i=0;i<e.length;i++)r=31*r+o(e[i])>>>0;return r}if(e instanceof Set)return Array.from(e).map(o).sort((function(e,r){return e-r})).reduce((function(e,r){return 31*e+r>>>0}),0);if(e instanceof Map)return Array.from(e.entries()).map((function(e){var r=s(e,2),t=r[0],n=r[1];return 31*o(t)+o(n)>>>0})).sort((function(e,r){return e-r})).reduce((function(e,r){return 31*e+r>>>0}),0);if("object"==typeof e&&null!==e){if(n.has(e))return n.get(e);var l=Object.entries(e).sort((function(e,r){var t=s(e,1)[0],n=s(r,1)[0];return t.localeCompare(n)})).map((function(e){var r=s(e,2)[1];return o(r)})).reduce((function(e,r){return 31*e+r>>>0}),0);return n.set(e,l),l}return 7};return e.map(o)}(Q,ke,ie,le,Ae,se,fe,ae,ye,Ue.current.empty,Ee),11),lr=ir[0],cr=ir[1],ar=ir[2],ur=ir[3],sr=ir[4],fr=ir[5],dr=ir[6],vr=ir[7],hr=ir[8],mr=ir[9],pr=ir[10],yr=t.useMemo((function(){var e,r,t=[null],n=200,o=null;if(null!=Q)if("number"==typeof Q||"end"===Q)t=[Q,Q];else if(Array.isArray(Q))t=Q;else if("object"==typeof Q){var i=Q.value;"number"==typeof i||"end"===i?t=[i,i]:Array.isArray(i)&&(t=i),n=null!==(e=Q.duration)&&void 0!==e?e:200,o=null!==(r=Q.updater)&&void 0!==r?r:null}return{value:t,duration:n,updater:o}}),[lr]),gr={color:null,size:40},br=t.useMemo((function(){return"object"==typeof me?c(c({},gr),me):"string"==typeof me?{color:me,size:40}:gr}),[me]),xr=t.useMemo((function(){var e=ye.arrows,r={size:40,contentReduce:!0,loop:!1};return t.isValidElement(e)?c(c({},r),{element:e}):"object"==typeof e&&null!==e?c(c({},r),e):r}),[hr]),wr=t.useMemo((function(){return t.Children.toArray(I).flatMap(Z)}),[I]),Sr=t.useMemo((function(){return wr.map((function(e){return t.isValidElement(e)&&e.key?e.key+"":null})).filter((function(e){return null!==e})).filter((function(e){var r;return!("clear"===Ae||Ae&&"object"==typeof Ae&&"mode"in Ae&&"clear"===Ae.mode)||!(null===(r=Ue.current.empty)||void 0===r?void 0:r.has(e))}))}),[I,sr,mr]),Mr=s(ue?d(ue):[0,0,0,0],4),Er=Mr[0],Lr=Mr[1],kr=Mr[2],Ar=Mr[3],Rr=Er+kr,zr=Ar+Lr,jr=t.useMemo((function(){var e,r;return"number"==typeof ae?[ae,ae]:Array.isArray(ae)?[null!==(e=ae[1])&&void 0!==e?e:0,null!==(r=ae[0])&&void 0!==r?r:0]:[0,0]}),[ae]),Tr=t.useMemo((function(){var e={type:void 0,rootMargin:0,stopLoadOnScroll:!1,trackVisibility:!1};if("string"==typeof ke)return c(c({},e),{type:ke});if("object"==typeof ke&&null!==ke){var r=ke.type,t=ke.rootMargin,n=void 0===t?e.rootMargin:t,o=ke.stopLoadOnScroll,i=void 0===o?e.stopLoadOnScroll:o,l=ke.trackVisibility;return{type:r,rootMargin:n,stopLoadOnScroll:i,trackVisibility:void 0===l?e.trackVisibility:l}}return e}),[cr]),Cr=t.useMemo((function(){return d(Tr.rootMargin)}),[Tr.rootMargin,W]),Fr=t.useMemo((function(){var e=s(Array.isArray(ie)?ie:"number"==typeof ie?[ie,ie]:[tr.current.width,tr.current.height],2),r=e[0],t=e[1];if(!ye.arrows||!xr.size||!xr.contentReduce)return[r,t,r,t];var n=2*xr.size,o=r,i=t;return"x"===W?o=r-n:"y"===W?i=t-n:"hybrid"===W&&(o=r-n,i=t-n),[o,i,r,t]}),[ar,hr,W,xr,tr.current.height,tr.current.width]),Or="x"===W?Fr[0]:Fr[1],Ir=t.useMemo((function(){if(!Ee)return[0,0];if("number"==typeof Ee){var e=2*Ee;return[e,e]}if(Array.isArray(Ee)){var r=s(Ee,2),t=r[0],n=void 0===t?0:t,o=r[1];return[2*n,2*(null!=o?o:n)]}return[0,0]}),[pr]),Nr=t.useMemo((function(){return[Fr[0]-Ir[0],Fr[1]-Ir[1]]}),[Ir.join(),Fr[0],Fr[1]]),Yr=t.useMemo((function(){return le?Array.isArray(le)?le:d(le,!0,2):[null,null]}),[ur]),Hr=t.useMemo((function(){var e=or.current,r=e.height,t=e.width,n=function(e,r,t){return r||("number"==typeof e?e:"size"===e?t:0)};return[n(Yr[0],t,Fr[0]),n(Yr[1],r,Fr[1])]}),[Yr.join(),W,or.current.width,or.current.height,Fr.join()]),Wr=t.useMemo((function(){return ke&&Ae&&!je?e("div",{className:"ms-empty-element"}):je}),[!!je,cr,sr]),Xr=t.useMemo((function(){if("none"===Yr[0]||"none"===Yr[1])return[1,Sr.length];var e="x"===W?1:0,r="row"===he,t=Fr[e],n=Hr[e]?Hr[e]+jr[e]:0,o="hybrid"===W&&t?n*Sr.length:t,i=n?Math.floor(o/n):1,l=ce&&i>=ce?"hybrid"===W?Math.ceil(i/ce):ce:i,c=l>1&&l<Sr.length?Math.ceil(Sr.length/l):l<Sr.length?Sr.length:1;r||(l=Math.ceil(Sr.length/c));var a=ce&&ce<Sr.length,u=function(e){return Number.isFinite(e)&&e>0?e:1};if("hybrid"===W){var s=a?r?ce:l:r?Sr.length:1,f=a?r?l:ce:r?1:Sr.length;return[u(s),u(f)]}return[u(l),u(c)]}),[he,jr[0],jr[1],Hr[0],Hr[1],Sr.length,W,Fr.join(),ce]),Br=t.useMemo((function(){var e=1>Xr[0]?1:Xr[0]*jr[1]-jr[1],r=Xr["x"===W?1:0],t=Sr.length<r?Sr.length:r;return Hr[0]?(Hr[0]+jr[1])*t-jr[1]:Tr.type?or.current.width+e:nr.current.width}),[W,Hr[0],Xr[0],Xr[1],jr[1],nr.current.width,or.current.width,Tr.type,Sr.length]),Pr=t.useMemo((function(){var e=1>Xr[1]?1:Xr[0]*jr[0]-jr[0];return Hr[1]?"x"===W?(Hr[1]+jr[0])*Xr[0]-jr[0]:(Hr[1]+jr[0])*Xr[1]-jr[0]:Tr.type?or.current.height+e:nr.current.height}),[W,Hr[1],Xr[0],Xr[1],jr[0],nr.current.height,or.current.height,Tr.type]),Dr=t.useMemo((function(){return Pr+Rr}),[Pr,Rr]),Vr=t.useMemo((function(){return Br+zr}),[Br,zr]),Ur="x"===W?Vr:Dr,qr=t.useMemo((function(){return[Math.max(0,Vr-Fr[0]),Math.max(0,Dr-Fr[1])]}),[Fr.join(),Dr,Vr]),Kr="x"===W?(null===(v=We.current)||void 0===v?void 0:v.scrollLeft)||0:(null===(m=We.current)||void 0===m?void 0:m.scrollTop)||0,Gr=Kr>1&&!0,_r=Ur>Math.round(Kr+Or),$r=!1,Zr=!1;"hybrid"===W&&($r=((null===(E=We.current)||void 0===E?void 0:E.scrollLeft)||0)>1&&!0,Zr=Math.round(((null===(k=We.current)||void 0===k?void 0:k.scrollLeft)||0)+Fr[0])<Vr);var Jr=t.useMemo((function(){return null!=Le?Le:30}),[Le]),Qr=t.useCallback((function(e){return ye.progressElement&&Ur?"x"===e?K(Fr[0]-Ir[0],Vr,Jr):K(Fr[1]-Ir[1],Dr,Jr):0}),[hr,Ur,Fr[0],Fr[1],Vr,Jr,Ir.join()]),et=t.useMemo((function(){return{x:"y"!==W?Qr("x"):0,y:"x"!==W?Qr("y"):0}}),[Qr,W]),rt=t.useMemo((function(){return{w:Fr[0]?Vr-Fr[0]:Vr,h:Fr[1]?Dr-Fr[1]:Dr}}),[Vr,Dr,Fr[0],Fr[1]]),tt={x:"y"!==W?G((null===(A=We.current)||void 0===A?void 0:A.scrollLeft)||0,rt.w,Nr[0],et.x):0,y:"x"!==W?G((null===(T=We.current)||void 0===T?void 0:T.scrollTop)||0,rt.h,Nr[1],et.y):0},nt=t.useMemo((function(){if(!Tr.type)return[{top:0,bottom:0,left:0,right:0}];for(var e=0,r="x"===W,t="row"===he,n=r&&!t||!r&&t,o=Hr[0]+jr[1],i=Hr[1]+jr[0],l=new Set,c=n?Xr[0]:Xr[1],a=Hr[t?0:1],u=jr[t?1:0],s=Math.floor((Sr.length-1)/c)*c;s<Sr.length;s++)l.add(s);var f=c-l.size,d=f>0?(a+u)*f:0;return"center"===de?e=Math.round(d/2):"end"===de&&(e=d),Sr.map((function(r,c){var a,u,s=n?c%Xr[0]:Math.floor(c/Xr[1]),f=n?Math.floor(c/Xr[0]):c%Xr[1];"x"===W?(a=f,u=s):(a=s,u=f);var d=l.size>0&&l.has(c),v=(d&&!t?e:0)+i*u,h=(d&&t?e:0)+o*a;return{top:v,left:h,bottom:v+Hr[1],right:h+Hr[0]}}))}),[Hr[0],Hr[1],jr[0],jr[1],de,Sr.length,Xr[0],Xr[1],Tr.type,he,W]),ot=t.useMemo((function(){return(null==Fr?void 0:Fr.length)&&fe?function(e,r,t,n){var o=s("string"==typeof e?[e,e]:e,2),i=o[0],l=o[1],c=void 0===l?"start":l,a={display:"flex"};return r[0]>t&&(a.justifyContent=V(i)),r[1]>n&&(a.alignItems=V(c)),a}(fe,Fr,Vr,Dr):{}}),[fe,Fr.join(),Dr,Vr]),it=t.useMemo((function(){return[B(Vr,Fr[0]),B(Dr,Fr[1])]}),[Vr,Dr,Fr.join()]),lt=t.useMemo((function(){return"x"===W?it[0]:it[1]}),[W,it[0],it[1]]),ct=t.useCallback(U(tr,Ie),[]),at=t.useCallback(U(nr,Ie,zr,Rr),[zr,Rr]),ut=t.useCallback(U(or,Ie),[]),st=t.useCallback((function(e,r,t){var n=We.current;return n&&null!==e?function(e,r,t,n,o,i){return a(this,void 0,void 0,(function(){var l,c,a,s,f;return u(this,(function(u){switch(u.label){case 0:return c=(l="y"===e)?"scrollTop":"scrollLeft",a=l?i[1]:i[0],s=x(n,0,a),(f=x(r[c],0,a))===s?[2]:null!==t?[3,2]:[4,P(r)];case 1:return u.sent(),r[c]=n,[2];case 2:return y((function(){var e=performance.now(),n=function(){var i=performance.now(),l=Math.min((i-e)/t,1),u=x(f+(s-f)*l,0,a);r[c]=u,1>l&&u!==s&&o("smoothScroll",n)};o("smoothScroll",n)}),t,"smoothScrollBlock".concat(e)),[2]}}))}))}(r,n,De.current?null:t,e,Ne.schedule,qr):null}),[qr.join()]),ft=t.useMemo((function(){var e=c(c(c({margin:ue?"".concat(Er,"px ").concat(Lr,"px ").concat(kr,"px ").concat(Ar,"px"):"",height:Yr[1]&&"none"!==Yr[1]?"".concat(Pr,"px"):"fit-content",width:Yr[0]&&"none"!==Yr[0]?"".concat(Br,"px"):"fit-content"},ae&&!Tr.type&&{gap:"".concat(jr[0],"px ").concat(jr[1],"px")}),se&&function(e,r,t,n,o){var i,l,c,a=function(e,r){return"full"===e?("x"===r?t[0]:t[1])-("x"===r?n:o):e};if("hybrid"!==r&&!Array.isArray(e)){var u="".concat(a(e,r),"px");return"x"===r?{minWidth:u}:{minHeight:u}}return Array.isArray(e)?(l=(i=s(e,2))[0],c=i[1]):l=c=e,{minWidth:"".concat(a(l,"x"),"px"),minHeight:"".concat(a(c,"y"),"px")}}(se,W,Fr,zr,Rr)),("hybrid"===W||"x"===W)&&{flexShrink:0});if(Tr.type)return c(c({},e),{position:"relative"});var r=1===Xr[0]?"y"===W?"column":"row":he,t=Yr[0]&&"none"!==Yr[0]&&Yr[1]&&"none"!==Yr[1]?"wrap":void 0;return c(c({},e),{display:"flex",flexDirection:r,flexWrap:t,justifyContent:V(de)})}),[ue,dr,fr,[Er,Lr,kr,Ar,zr,Rr,jr[0],jr[1]].join(),Fr.join(),vr,Yr[1],Pr,Br,vr,Tr.type,W,Xr[0],he,de]),dt=t.useCallback((function(e,r,t){var n;Pe.current=q();var o=r.target;if(!o.closest('\n [ms-custom-drag], [draggable="true"], [contenteditable],\n input, textarea, select, button, a\n ')){var i=null;t&&(i=null===(n=o.closest("scroll"===Y?".ms-bar":".ms-slider"))||void 0===n?void 0:n.getAttribute("data-direction")),Ve.current=e,X({scrollElement:We.current,target:o,clickedObject:Ve,scrollStateRef:qe.current,type:Y,triggerUpdate:Ie,direction:W,smoothScroll:st,sizeLocal:[Fr[0],Fr[1]],thumbSize:"x"===i?et.x:et.y,axisFromAtr:i,duration:yr.duration,scrollBarEdge:Ir,rafScrollAnim:Ne,isTouched:Pe.current,gap:jr,overscrollRef:Ze,objLengthPerSize:it,isDraggingRef:Je,maxScrollSize:qr})}}),[W,Y,Fr.join(),yr.duration,st,Ir.join(),et.x,et.y,jr.join(),it,qr.join()]),vt=t.useCallback((function(e){dt("thumb",e,!0)}),[dt]),ht=t.useCallback((function(e){We.current&&function(e){var r=e.arrowType,t=e.scrollElement,n=e.wrapSize,o=e.scrollSize,i=e.smoothScroll,l=e.duration,c=e.loop,a=e.gap,u=n[0],s=n[1],f=t.scrollTop,d=t.scrollLeft,v=function(e,r,n){var o=n?function(e,r){return"x"===e?r>0?0:u:r>0?0:s}(e,r):function(e,r){var n="x"===e,o=n?d:f,i=n?a[0]:a[1],l=t[n?"clientWidth":"clientHeight"]+i;return l*(Math.floor(Math.max(0,o)/l)+r)}(e,r);i(o,e,l)};switch(r){case"top":f>0?v("y",-1):c&&v("y",-1,!0);break;case"left":d>0?v("x",-1):c&&v("x",-1,!0);break;case"right":d+o[0]<u?v("x",1):c&&v("x",1,!0);break;case"bottom":f+o[1]<s?v("y",1):c&&v("y",1,!0)}}({arrowType:e,scrollElement:We.current,wrapSize:[Vr,Dr],scrollSize:Fr,smoothScroll:st,duration:yr.duration,loop:xr.loop,gap:jr})}),[Fr.join(),Vr,Dr,yr.duration,st,xr.loop,jr[0],jr[1]]),mt=t.useCallback((function(){"scroll"!==Y&&Fr[0]&&Fr[1]&&He.current&&We.current&&Be.current.size&&function(e,r,t,n){f([],s(r),!1).forEach((function(r,o){var i,l,c=D.get(r),a=0===o?t:"x",u="x"===a?0:1;if(c&&c.elements.length===n[u]||(c={elements:Array.from(r.querySelectorAll(".ms-slider-element")),lastIndex:-1},D.set(r,c)),c.elements.length){var s="x"===a?e.scrollLeft:e.scrollTop,f="x"===a?e.clientWidth:e.clientHeight,d=Math.floor((s+f/2)/f);d!==c.lastIndex&&(-1!==c.lastIndex&&(null===(i=c.elements[c.lastIndex])||void 0===i||i.classList.remove("active")),null===(l=c.elements[d])||void 0===l||l.classList.add("active"),c.lastIndex=d)}}))}(We.current,Be.current,W,it)}),[Fr.join(),W,Y,it.join()]),pt=t.useCallback((function(e){if(e){var r=(o=Xe.current)?Array.from(o.children).flatMap((function(e){if(!(e instanceof HTMLElement))return[];var r=e.getAttribute(w);return r?[J(r)]:[]})):[];Qe.current&&(t=Qe.current,n=r,t.length===n.length&&t.every((function(e,r){return e===n[r]})))||(Qe.current=r,e(r))}var t,n,o}),[]),yt=t.useCallback((function(){Xe.current&&function(e,r,t,n){for(var o=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:function(e){return e instanceof Element&&e.hasAttribute(w)?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}}),i=o.nextNode();i;){var l=i,c=l.getAttribute(w);if(c){var a=0===l.children.length;a&&(r.current.empty||(r.current.empty=new Set),r.current.empty.add(c)),"virtual"===n&&a||r.current.loaded.add(c)}i=o.nextNode()}t()}(Xe.current,Ue,Ie,Tr.type)}),[cr]),gt=t.useCallback((function(e){"object"==typeof Ae&&"clickTrigger"in Ae&&void 0!==Ae.clickTrigger&&function(e,r,t){var n="string"==typeof r?{selector:r}:r,o=n.selector,i=n.delay,l=void 0===i?0:i,c=e.target;if(c.closest(o)){var a=c.closest("[wrap-id]");null==a||a.classList.add("remove"),g((function(){null==a||a.classList.remove("remove"),t()}),l)}}(e,Ae.clickTrigger,yt)}),[sr,yt]),bt=t.useCallback((function(e){p("removeHover");var r=He.current,t=Ye.current,n=We.current;if(r&&t&&n){if(yr.value.includes("end")){var o=e.currentTarget,i=o.scrollLeft,l=o.scrollTop;_e.current.update(i,l)}null==ee||ee(n.scrollLeft,n.scrollTop);var c=r.querySelectorAll("scroll"===Y?".ms-bar":".ms-slider");Me&&c.length>0&&!Ke.current&&c.forEach((function(e){e.classList.contains("hover")||j(e)})),Ke.current=!0,null==ne||ne(!0),g((function(){_e.current.reset(),Ke.current=!1,null==ne||ne(!1),Tr.type&&yt(),Me&&c.length>0&&!Ve.current&&c.forEach((function(e){g((function(){e.hasAttribute("ms-manual-hover")||z(e)}),1e3,"removeHover")}))}),200,"isScrolling"),g((function(){return pt(er.current)}),"raf","onRenderedKeysChange"),Oe.schedule("sliderCheckLocal",(function(){"scroll"!==Y&&mt(),Ce()}))}}),[ee,ne,Y,mt,yt,Me,Tr.type]),xt=t.useCallback((function(e){if(!Ge.current){var r="object"==typeof ye.wheel&&"string"==typeof ye.wheel.changeDirectionKey?ye.wheel.changeDirectionKey:"KeyX";e.code!==r||"hybrid"!==W||Ge.current||(e.stopPropagation(),Ge.current=!0,Ie())}}),[W,hr]),wt=t.useCallback((function(e){Ge.current&&(e.stopPropagation(),Ge.current=!1,Ie())}),[]);t.useEffect((function(){if(!oe)return er.current=void 0,void(Qe.current=null);er.current=oe,Qe.current=null,pt(oe)}),[oe,pt]),t.useEffect((function(){er.current&&Fr[0]&&Fr[1]&&pt(er.current)}),[Sr.join("|"),Fr.join()]),t.useEffect((function(){if(!Pe.current&&"hybrid"===W){var e=Xe.current,r=We.current;if(e&&r)return e.clientWidth+zr>r.clientWidth&&e.clientHeight+Rr>r.clientHeight&&(r.addEventListener("keydown",xt),r.addEventListener("keyup",wt)),function(){r.removeEventListener("keydown",xt),r.removeEventListener("keyup",wt)}}}),[W,hr,ar,ur,Sr.join(),zr,Rr]),t.useEffect((function(){Ae&&Tr.type&&yt()}),[sr,Tr.type,yt,Sr.length]),t.useEffect((function(){if(!Pe.current){var e=We.current,r=Xe.current;if(e&&r){var t="hybrid"===W&&"object"==typeof ye.wheel&&ye.wheel.changeDirection?"x":W,n="hybrid"===W&&Pr+Rr<=Fr[1]||Ge.current?["hybrid","y"].includes(t)?"x":"y":t,o=function(r){r.preventDefault(),S(r,e,qr,qe.current,n)};return ye.wheel&&e.addEventListener("wheel",o,{passive:!1}),function(){e.removeEventListener("wheel",o)}}}}),[W,hr,Pr,Fr[1],Rr,Ge.current,qr.join()]),t.useEffect((function(){Oe.schedule("smoothScrollLocal",(function(){("hybrid"===W?["x","y"]:[W]).forEach((function(e){var r=yr.value["x"===e?0:1];if("end"===r){if(_e.current.get()[e]===("x"===e?"left":"up"))return;st("x"===e?rt.w:rt.h,e,yr.duration)}else"number"==typeof r&&$e.current[e]!==r&&($e.current[e]=r,st(r,e,yr.duration))}))}))}),[W,lr,rt.w,rt.h,yr.value.join()]),t.useEffect((function(){var e=qe.current.animationFrameId;return(Tr.type||ne)&&ne&&ne(!1),requestAnimationFrame((function(){return De.current=!1})),function(){e&&cancelAnimationFrame(e),qe.current.animationFrameId&&cancelAnimationFrame(qe.current.animationFrameId),Ne.cancel()}}),[]),t.useEffect((function(){if(Te){var e=Ye.current,r=We.current;if(e&&r){var t={parent:e,element:r,direction:W};return function(e){be.set(e.parent,e),1===be.size&&function(){if(!te){var e=($=new AbortController).signal;document.addEventListener("pointerdown",ge,{signal:e}),document.addEventListener("dragstart",ge,{signal:e}),te=!0}}()}(t),function(){!function(e){be.delete(e.parent),0===be.size&&te&&(null==$||$.abort(),null==re||re.abort(),te=!1)}(t)}}}}),[Te,W]),t.useEffect((function(){var e=We.current;if(e){var r=function(e){dt("wrapp",e)};if(ye.content||!ye.content&&Pe.current&&ye.wheel){if(!0===ye.progressElement)return;e.addEventListener("pointerdown",r)}return function(){e.removeEventListener("pointerdown",r)}}}),[hr,dt]),t.useEffect((function(){var e=He.current;if(e&&Me&&Be.current.size){var r=function(e){"mouseenter"===e.type&&document.removeEventListener("mouseup",r),"mouseleave"===e.type&&Ve.current?document.addEventListener("mouseup",r):Array.from(Be.current).forEach((function(r){!function(e){var r=e.el,t=e.event,n=e.isScrolling,o=function(e){if(["mouseleave","mouseup","pointerup","pointercancel"].includes(t.type)){if(e.removeAttribute("ms-manual-hover"),null==n?void 0:n.current)return;z(e)}else e.setAttribute("ms-manual-hover",""),j(e)};Array.isArray(r)?r.map((function(e){return o(e)})):o(r)}({el:r,event:e,isScrolling:Ke})}))},t=function(r,t){Pe.current?(Array.from(Be.current).forEach((function(e){return e[r]("pointerdown",t)})),document[r]("pointerup",t),document[r]("pointercancel",t)):(e[r]("mouseenter",t),e[r]("mouseleave",t))};return t("addEventListener",r),function(){t("removeEventListener",r)}}}),[Me,Y,W,Be.current.size]),t.useEffect((function(){"scroll"!==Y&&Oe.schedule("sliderCheckLocal",mt)}),[Y,mt,Fr.join()]);var St,Mt=t.useCallback((function(r,n,o,i,l){var a,u=c(c({width:Hr[0]?"".concat(Hr[0],"px"):void 0,height:Hr[1]?"".concat(Hr[1],"px"):void 0},Tr.type&&{position:"absolute",transform:"translate(".concat(o,"px, ").concat(n,"px)")}),"number"==typeof l&&{"--content-visibility":l}),s=ze?e(t.Suspense,{fallback:Wr,children:i}):i;return e("div",c({},Tr.type||Ae?((a={})[w]="".concat(r),a):{},{className:"ms-object-box",style:u,onClick:Ae?gt:void 0,children:s}),r)}),[ze,!!Wr,Hr[0],Hr[1],cr,sr,Xr[0],gt,Tr.type]),Et=t.useMemo((function(){var e=new Map;return wr.forEach((function(r){t.isValidElement(r)&&null!=r.key&&e.set(r.key+"",r)})),e}),[wr]),Lt=t.useMemo((function(){return f([{positionType:"x"===W?"left":"top",visibility:Gr},{positionType:"x"===W?"right":"bottom",visibility:_r}],s("hybrid"===W?[{positionType:"left",visibility:$r},{positionType:"right",visibility:Zr}]:[]),!1)}),[Gr,_r,W,$r,Zr]),kt=t.useMemo((function(){return{width:"".concat(Fr[2],"px"),height:"".concat(Fr[3],"px")}}),[Fr]),At=t.useMemo((function(){var e;return null!==(e={x:Vr>Fr[0]?"scroll hidden":"hidden",y:Dr>Fr[1]?"hidden scroll":"hidden",hybrid:"".concat(Vr>Fr[0]?"scroll":"hidden"," ").concat(Dr>Fr[1]?"scroll":"hidden"),hide:"hidden"}[ye.wheel||ye.content&&"scroll"===Y?W:"hide"])&&void 0!==e?e:"hidden"}),[Vr,Dr,Fr,hr,W]),Rt=t.useMemo((function(){return me?Lt.map((function(r){var t=r.positionType,n=r.visibility;return e(L,{edgeGradient:br,visibility:n,edgeType:t,size:Fr},"edge-".concat(t))})):null}),[me,Lt,br,ar]),zt=t.useMemo((function(){return ye.arrows?Lt.map((function(r){var t=r.positionType,n=r.visibility;return e(R,{visibility:n,arrows:xr,arrowType:t,handleArrow:ht,size:Fr[0]},"arrow-".concat(t))})):null}),[hr,Lt,xr,ht,Fr[0]]),jt=function(){var r,n,o=(null===(r=We.current)||void 0===r?void 0:r.scrollLeft)||0,i=(null===(n=We.current)||void 0===n?void 0:n.scrollTop)||0;return e("div",{className:"ms-objects-wrapper",ref:Xe,style:c(c(c({},ft),(Ze.current.x||Ze.current.y)&&{transform:"translate(".concat(Ze.current.x,"px, ").concat(Ze.current.y,"px)")}),Je.current&&{pointerEvents:"none"}),children:Sr.map((function(r,n){return function(r,n,o,i){var l,c=Et.get(r),a=Tr.stopLoadOnScroll&&Ke.current&&!Ue.current.loaded.has(r)?Wr:(null===(l=Ue.current.empty)||void 0===l?void 0:l.has(r))?Ae&&"object"==typeof Ae&&t.isValidElement(Ae)?Ae:Ae&&"object"==typeof Ae&&"mode"in Ae&&"object"==typeof Ae.mode&&"fallback"in Ae.mode?Ae.mode.fallback:Wr:c,u="firstChild"!==Yr[0]&&"firstChild"!==Yr[1]||0!==n?a:e(h,{onResize:ut,children:a});if(!Tr.type)return Mt(r,0,0,u);var s=nt[n],f=s.top,d=s.bottom,v=s.left,m=s.right,p=function(e){void 0===e&&(e=!0);var r=e?Cr:[0,0,0,0],t=function(e){var t="x"===e?o:i,n=t+("x"===e?Fr[0]:Fr[1]),l="x"===e?v-r[3]:f-r[2],c="x"===e?m+r[1]:d+r[0],a=c-l;if(0>=a)return 0;var u=Math.min(c,n)-Math.max(l,t);return u>0?Math.round(10*Math.min(1,u/a))/10:0};if("hybrid"===W){var n=t("x"),l=t("y");return Math.min(n,l)}return t("x"===W?"x":"y")},y=p(),g=Tr.trackVisibility?p(!1):null;if("lazy"===Tr.type){var b=Ue.current.loaded.has(r);if(y&&!b){if(Ke.current&&Tr.stopLoadOnScroll)return;Ue.current.loaded.add(r)}return b?Mt(r,f,v,u,g):null}return y?Mt(r,f,v,u,g):(Ue.current.loaded.delete(r),null)}(r,n,o,i)}))})},Tt=t.useMemo((function(){var e={position:"relative",width:"".concat(Fr[0],"px"),height:"".concat(Fr[1],"px")};return ye.arrows&&xr.contentReduce&&xr.size&&("x"===W?e.left="".concat(xr.size,"px"):"y"===W?e.top="".concat(xr.size,"px"):(e.top="".concat(xr.size,"px"),e.left="".concat(xr.size,"px"))),e}),[Fr,hr,xr,W]),Ct=r("div",{"morph-scroll":"".concat(Fe),className:O,ref:Ye,style:kt,children:[r("div",{className:"ms-content",ref:He,style:c(c(c({},Tt),{transform:"translateZ(0)"}),Pe.current&&{touchAction:"pinch-zoom"}),children:[e("div",{className:"ms-element",ref:We,onScroll:bt,tabIndex:0,style:c(c(c({width:"100%",height:"100%",outline:"none"},ot),"boolean"!=typeof ye.progressElement||!1===ye.progressElement?{scrollbarWidth:"none",overflow:"hidden"}:{overflow:At}),ye.content&&{cursor:"grab"}),children:Hr[0]&&Hr[1]?jt():e(h,{onResize:at,style:ot,children:jt()})}),Rt,ye.progressElement&&!0!==ye.progressElement?(St="x"!==W,[{shouldRender:Ur>Fr[St?1:0],direction:W,thumbSize:St?et.y:et.x,thumbSpace:St?tt.y:tt.x,objLengthPerSize:lt,progressReverseIndex:0},{shouldRender:"hybrid"===W&&Vr>Fr[0],direction:"x",thumbSize:et.x,thumbSpace:tt.x,objLengthPerSize:it[0],progressReverseIndex:1}].filter((function(e){return e.shouldRender}))).map((function(r){var t="boolean"==typeof we?we:we[r.progressReverseIndex];return e(M,{type:Y,direction:r.direction,progressReverse:t,size:Nr,progressTrigger:[ye,hr],scrollBarOnHover:Me,scrollBarEvent:"sliderMenu"===Y?st:vt,thumbSize:r.thumbSize,thumbSpace:r.thumbSpace,objLengthPerSize:r.objLengthPerSize,sliderCheckLocal:mt,duration:yr.duration,isTouched:Pe.current,scrollStateRef:qe,scrollEl:We,scrollBarsRef:Be,triggerUpdate:Ie,overscroll:Ze,maxScrollSize:qr},r.direction)})):null]}),zt]});return"auto"===ie?e(h,{measure:"outer",onResize:ct,children:Ct}):Ct};xe.displayName="MorphScroll";var we={MorphScroll:xe,ResizeTracker:h,IntersectionTracker:v};export{v as IntersectionTracker,xe as MorphScroll,h as ResizeTracker,we as default};
|