morphing-scroll 2.10.3 → 2.10.4

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 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&&gt?"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=1;function d(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 v="wrap-id";function h(e,r,t,n,o){r.matches(":focus")||r.focus(),n.animating||(n.targetScrollX=d(r.scrollLeft,0,t[0]),n.targetScrollY=d(r.scrollTop,0,t[1])),"x"===o?n.targetScrollX=d(n.targetScrollX+e.deltaY,0,t[0]):n.targetScrollY=d(n.targetScrollY+e.deltaY,0,t[1]),n.animating||(n.animating=!0,n.animationFrameId=requestAnimationFrame((function e(){var i;if("x"===o){var l=d(r.scrollLeft+.4*(n.targetScrollX-r.scrollLeft),0,t[0]);r.scrollLeft=l,i=Math.abs(l-n.targetScrollX)}else{var c=d(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=d(n.targetScrollX,0,t[0]):r.scrollTop=d(n.targetScrollY,0,t[1]),n.animating=!1,n.animationFrameId=null)})))}var m=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,m=t.sliderCheckLocal,p=t.duration,y=t.isTouched,g=t.scrollStateRef,b=t.scrollEl,x=t.scrollBarsRef,w=t.triggerUpdate,S=t.overscroll,M=t.maxScrollSize,E=r.useRef(null),k=r.useRef(null),j=["hybrid","y"].includes(i)?"y":"x",L=Math.abs(S.current[j])*(f/200),A=f-L,R=0>S.current[j]?d+L:d,z=r.useMemo((function(){if("scroll"!==o){var r=c["x"===j?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,j,p,m)}:void 0,children:Array.isArray(a[0].progressElement)?a[0].progressElement[i]:a[0].progressElement},i)}))}}),[v,o,a[1],p,m,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(!y&&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 h(e,r,M,g.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:k.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:k,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})})};m.displayName="ScrollBar";var p=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})};p.displayName="Edge";var y=r.memo(p),g=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})};g.displayName="Arrow";var b,x=r.memo(g),w=function(e){var r=e.getAttribute("data-direction");e.style.opacity="0",e.classList.remove("hover"),e.classList.add("leave"),t.cancelTask("remove".concat(r)),t.setTask((function(){return e.classList.remove("leave")}),200,"remove".concat(r))},S=function(e){var r=e.getAttribute("data-direction");t.cancelTask("remove".concat(r)),e.style.opacity="1",e.classList.remove("leave"),e.classList.add("hover")},M=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)}}}(),E=function(e,r,t){var n=e.current[r],o=performance.now();M.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)}))},k={x:0,y:0},j={x:0,y:0},L={x:0,y:0,t:0,distX:0,distY:0},A=null,R=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)}},z=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))},T=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 d(e*i/(i+(t?-l:l)),-150,150)};if(A){var s=A,f={x:a.x-s.x.value,y:a.y-s.y.value},v=Math.abs(k[e]);if(v>2?n.isDraggingRef.current=!0:3>v&&(k[e]+=f[e]),n.isTouched){var h=performance.now();if(L.t){var m=Math.max(h-L.t,8);L={x:.8*L.x+f.x/m*.2,y:.8*L.y+f.y/m*.2,t:h,distX:(null!==(o=L.distX)&&void 0!==o?o:0)+Math.abs(f.x),distY:(null!==(i=L.distY)&&void 0!==i?i:0)+Math.abs(f.y)}}else L.t=h}var p="wrapp"===n.clickedObject.current?-f[e]:f[e],y=c?"scrollLeft":"scrollTop",g=c?0:1,b=function(r,t,o){var i=A[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 v=d(l[y]+r,0,a);z(e,l,n,v)}else z(e,l,n,0)}else A=null};if("thumb"===n.clickedObject.current&&"slider"!==n.type){var x=p*r+s[e].rest,w=Math.trunc(x);return s[e].rest=x-w,void b(w,p,!1)}if("slider"===n.type&&(j[e]+=p),"wrapp"!==n.clickedObject.current){var S=l[y];if(!n.sliderElSize||Math.abs(j[e])>=n.sliderElSize[c?0:1]){var M=function(e){var r=l[c?"clientWidth":"clientHeight"]+n.gap[g];return r*(Math.floor(Math.max(0,S)/r)+e)},E=p>0&&S+n.sizeLocal[g]<n.wrapElWH[g]?M(1):0>p&&S>0?M(-1):null;j[e]=0,n.smoothScroll(E,e,10)}}else b(p/t[g],f[e],!0)}else A={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 C(e){M.stop(),["x","y"].forEach((function(r){e.rafScrollAnim.cancel(),t.cancelTask("smoothScrollBlock".concat(r))}));var r=e.scrollElement;if(r){e.scrollStateRef.targetScrollX=r.scrollLeft,e.scrollStateRef.targetScrollY=r.scrollTop,L={x:0,y:0,t:0,distX:0,distY:0};var o=[r.scrollWidth,r.scrollHeight],i=["scroll","slider"].includes(e.type)?function(e){var r=e.getBoundingClientRect();return[r.width/e.clientWidth,r.height/e.clientHeight]}(r):[],c=1;if("thumb"===e.clickedObject.current&&e.axisFromAtr){var a="x"===e.axisFromAtr?0:1,u=(e.sizeLocal[a]-e.scrollBarEdge[a]-e.thumbSize)*i[a];c=e.maxScrollSize[a]/u,Number.isFinite(c)&&c>0||(c=1)}R(e.clickedObject.current,e.target,r,"start"),null==b||b.abort();var s=new AbortController;b=s;var f=s.signal;document.addEventListener("pointermove",(function(r){!function(r){var t,l;if("thumb"===e.clickedObject.current&&"slider"===e.type){var a=null===(t=e.target)||void 0===t?void 0:t.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 T(r,e.thumbRatio,e.visualDiff,e)})):e.axisFromAtr&&T(e.axisFromAtr,e.thumbRatio,e.visualDiff,e):T(e.axisFromAtr?e.axisFromAtr:r,e.thumbRatio,e.visualDiff,e);var t={x:e.event.clientX,y:e.event.clientY};A&&(A.x.value=t.x,A.y.value=t.y)}(n(n({},e),{event:r,wrapElWH:o,visualDiff:i,thumbRatio:c,sliderElSize:l}))}(r)}),{signal:f});var v=function(r){e.isDraggingRef.current=!1,function(e){null==b||b.abort();var r=e.scrollElement;if(r){if(R(e.clickedObject.current,e.target,r,"end"),"slider"===e.type&&"thumb"!==e.clickedObject.current){var t=j,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=L[t]*e.thumbRatio,o="x"===t?L.distX:L.distY;80>performance.now()-L.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=d(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)}A=null,0!==e.overscrollRef.current.x&&E(e.overscrollRef,"x",e.triggerUpdate),0!==e.overscrollRef.current.y&&E(e.overscrollRef,"y",e.triggerUpdate),e.clickedObject.current=null,L={x:0,y:0,t:0,distX:0,distY:0},k={x:0,y:0},j={x:0,y:0},e.triggerUpdate()}}(n(n({},e),{event:r,thumbRatio:c}))};document.addEventListener("pointerup",v,{signal:f}),document.addEventListener("pointercancel",v,{signal:f})}}function F(e,r){return e>r?Math.floor(e/r):1}function O(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 I=new WeakMap,N=function(e){return e?"start"===e?"flex-start":"center"===e?"center":"flex-end":void 0};function Y(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 H=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 W(e,r,t){return r?d(Math.round(e/r*e),t,e):0}function X(e,r,t,n){return r?d(e/r*(t-n),0,t-n):0}function B(){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 P,D=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(D):[t]}return[e]},q=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},V=40,U="ms-under-drag",K=null,_=!1,G={x:0,y:0},$={x:0,y:0},Z=!1,J=null,Q="",ee=null,re=null,te=null,ne=B(),oe=function(){re&&re.removeAttribute(U),J=null,re=null,ee=null,Q="",te=null};function ie(e,r,t,n,o,i){var l=e-r,c=t-e;return V>l&&n>0?{dir:-1,distance:l}:V>c&&i>n+o?{dir:1,distance:c}:null}function le(e){var r=d((V-Math.abs(e))/V,0,1,!1);return r*r*20|0}function ce(){if(J){var e=J.parent,r=J.element,t=J.direction,n=r.getBoundingClientRect(),o=$.x,i=$.y;if(o<n.left-V||o>n.right+V||i<n.top-V||i>n.bottom+V)oe();else{var l=null,c=null,a=0,u=0,s="x"!==t?ie(i,n.top,n.bottom,r.scrollTop,r.clientHeight,r.scrollHeight):null;s&&(l=-1===s.dir?"top":"bottom",u=le(s.distance)*s.dir);var f="y"!==t?ie(o,n.left,n.right,r.scrollLeft,r.clientWidth,r.scrollWidth):null;f&&(c=-1===f.dir?"left":"right",a=le(f.distance)*f.dir),(Q=[l,c].filter(Boolean).join(" "))!==te&&(e.setAttribute(U,Q),te=Q),(a||u)&&r.scrollBy(a,u),ne.schedule("autoScrollLoop",ce)}}}function ae(e){e instanceof DragEvent&&0===e.buttons?ue():$.x===e.clientX&&$.y===e.clientY||($.x=e.clientX,$.y=e.clientY,ne.schedule("onMove",(function(){if(!Z){var e=$.x-G.x,r=$.y-G.y;if(10>Math.hypot(e,r))return;Z=!0}var t=document.elementFromPoint($.x,$.y);if(t){var n=t.closest("[morph-scroll]");if(n||J){var o=n?fe.get(n):J;o&&(J=o,ee!==o.element&&(re&&re!==o.parent&&re.removeAttribute(U),ee=o.element,(re=o.parent).setAttribute(U,Q),te=Q,ce()))}else oe()}})))}function ue(){null==K||K.abort(),K=null,Z=!1,ne.cancel(),oe()}function se(e){var r=e instanceof PointerEvent;if(!r||e.target.closest("[ms-custom-drag]")){G.x=e.clientX,G.y=e.clientY,null==K||K.abort();var t=new AbortController;K=t;var n=t.signal;r?(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}))}}var fe=new Map;var de=function(u){var p,g,b,M,E,k,j,L,A=u.className,R=u.children,z=u.type,T=void 0===z?"scroll":z,V=u.direction,U=void 0===V?"y":V,G=u.scrollPosition,$=u.onScrollValue,Z=u.isScrolling,J=u.onRenderedKeysChange,Q=u.size,ee=u.objectsSize,re=u.crossCount,te=u.gap,ne=u.wrapperMargin,oe=u.wrapperMinSize,ie=u.wrapperAlign,le=u.elementsAlign,ce=u.elementsDirection,ae=void 0===ce?"row":ce,ue=u.edgeGradient,de=u.progressTrigger,ve=void 0===de?{wheel:!0}:de,he=u.progressReverse,me=void 0!==he&&he,pe=u.scrollBarOnHover,ye=void 0!==pe&&pe,ge=u.scrollBarEdge,be=u.thumbMinSize,xe=u.render,we=u.emptyElements,Se=u.suspending,Me=void 0!==Se&&Se,Ee=u.fallback,ke=u.dragScroll,je=(j=l(r.useState({}),2)[1],r.useCallback((function(){j({})}),[])),Le=(null===(L=r.useRef(null)).current&&(L.current="".concat(f++)),L.current),Ae=B(),Re=function(){return Ae.schedule("triggerUpdate",je)},ze=B();if(!Q)throw Error('prop "size" is not provided'.concat("\n morph-scroll ".concat(Le)));Object.keys(ve).length,"none"===ee||Array.isArray(ee)&&("none"===ee[0]||ee[1]);var Te=r.useRef(null),Ce=r.useRef(null),Fe=r.useRef(null),Oe=r.useRef(null),Ie=r.useRef(new Set),Ne=r.useRef(H()),Ye=r.useRef(!0),He=r.useRef(null),We=r.useRef({loaded:new Set,empty:new Set}),Xe=r.useRef({targetScrollY:0,targetScrollX:0,animating:!1,animationFrameId:0}),Be=r.useRef(!1),Pe=r.useRef(!1),De=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}}}}()),qe=r.useRef({x:null,y:null}),Ve=r.useRef({x:0,y:0}),Ue=r.useRef(!1),Ke=r.useRef(null),_e=r.useRef(J);function Ge(){return r.useRef({width:0,height:0})}var $e=Ge(),Ze=Ge(),Je=Ge(),Qe=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,xe,Q,ee,we,oe,ie,te,ve,We.current.empty,ge),11),er=Qe[0],rr=Qe[1],tr=Qe[2],nr=Qe[3],or=Qe[4],ir=Qe[5],lr=Qe[6],cr=Qe[7],ar=Qe[8],ur=Qe[9],sr=Qe[10],fr=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}}),[er]),dr={color:null,size:40},vr=r.useMemo((function(){return"object"==typeof ue?n(n({},dr),ue):"string"==typeof ue?{color:ue,size:40}:dr}),[ue]),hr=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}),[ar]),mr=r.useMemo((function(){return r.Children.toArray(R).flatMap(D)}),[R]),pr=r.useMemo((function(){return mr.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"===we||we&&"object"==typeof we&&"mode"in we&&"clear"===we.mode)||!(null===(r=We.current.empty)||void 0===r?void 0:r.has(e))}))}),[R,or,ur]),yr=l(ne?a(ne):[0,0,0,0],4),gr=yr[0],br=yr[1],xr=yr[2],wr=yr[3],Sr=gr+xr,Mr=wr+br,Er=r.useMemo((function(){var e,r;return"number"==typeof te?[te,te]:Array.isArray(te)?[null!==(e=te[1])&&void 0!==e?e:0,null!==(r=te[0])&&void 0!==r?r:0]:[0,0]}),[te]),kr=r.useMemo((function(){var e={type:void 0,rootMargin:0,stopLoadOnScroll:!1,trackVisibility:!1};if("string"==typeof xe)return n(n({},e),{type:xe});if("object"==typeof xe&&null!==xe){var r=xe.type,t=xe.rootMargin,o=void 0===t?e.rootMargin:t,i=xe.stopLoadOnScroll,l=void 0===i?e.stopLoadOnScroll:i,c=xe.trackVisibility;return{type:r,rootMargin:o,stopLoadOnScroll:l,trackVisibility:void 0===c?e.trackVisibility:c}}return e}),[rr]),jr=r.useMemo((function(){return a(kr.rootMargin)}),[kr.rootMargin,U]),Lr=r.useMemo((function(){var e=l(Array.isArray(Q)?Q:"number"==typeof Q?[Q,Q]:[$e.current.width,$e.current.height],2),r=e[0],t=e[1];if(!ve.arrows||!hr.size||!hr.contentReduce)return[r,t,r,t];var n=2*hr.size,o=r,i=t;return"x"===U?o=r-n:"y"===U?i=t-n:"hybrid"===U&&(o=r-n,i=t-n),[o,i,r,t]}),[tr,ar,U,hr,$e.current.height,$e.current.width]),Ar="x"===U?Lr[0]:Lr[1],Rr=r.useMemo((function(){if(!ge)return[0,0];if("number"==typeof ge){var e=2*ge;return[e,e]}if(Array.isArray(ge)){var r=l(ge,2),t=r[0],n=void 0===t?0:t,o=r[1];return[2*n,2*(null!=o?o:n)]}return[0,0]}),[sr]),zr=r.useMemo((function(){return[Lr[0]-Rr[0],Lr[1]-Rr[1]]}),[Rr.join(),Lr[0],Lr[1]]),Tr=r.useMemo((function(){return ee?Array.isArray(ee)?ee:a(ee,!0,2):[null,null]}),[nr]),Cr=r.useMemo((function(){var e=Je.current,r=e.height,t=e.width,n=function(e,r,t){return r||("number"==typeof e?e:"size"===e?t:0)};return[n(Tr[0],t,Lr[0]),n(Tr[1],r,Lr[1])]}),[Tr.join(),U,Je.current.width,Je.current.height,Lr.join()]),Fr=r.useMemo((function(){return xe&&we&&!Ee?e.jsx("div",{className:"ms-empty-element"}):Ee}),[!!Ee,rr,or]),Or=r.useMemo((function(){if("none"===Tr[0]||"none"===Tr[1])return[1,pr.length];var e="x"===U?1:0,r="row"===ae,t=Lr[e],n=Cr[e]?Cr[e]+Er[e]:0,o="hybrid"===U&&t?n*pr.length:t,i=n?Math.floor(o/n):1,l=re&&i>=re?"hybrid"===U?Math.ceil(i/re):re:i,c=l>1&&l<pr.length?Math.ceil(pr.length/l):l<pr.length?pr.length:1;r||(l=Math.ceil(pr.length/c));var a=re&&re<pr.length,u=function(e){return Number.isFinite(e)&&e>0?e:1};if("hybrid"===U){var s=a?r?re:l:r?pr.length:1,f=a?r?l:re:r?1:pr.length;return[u(s),u(f)]}return[u(l),u(c)]}),[ae,Er[0],Er[1],Cr[0],Cr[1],pr.length,U,Lr.join(),re]),Ir=r.useMemo((function(){var e=1>Or[0]?1:Or[0]*Er[1]-Er[1],r=Or["x"===U?1:0],t=pr.length<r?pr.length:r;return Cr[0]?(Cr[0]+Er[1])*t-Er[1]:kr.type?Je.current.width+e:Ze.current.width}),[U,Cr[0],Or[0],Or[1],Er[1],Ze.current.width,Je.current.width,kr.type,pr.length]),Nr=r.useMemo((function(){var e=1>Or[1]?1:Or[0]*Er[0]-Er[0];return Cr[1]?"x"===U?(Cr[1]+Er[0])*Or[0]-Er[0]:(Cr[1]+Er[0])*Or[1]-Er[0]:kr.type?Je.current.height+e:Ze.current.height}),[U,Cr[1],Or[0],Or[1],Er[0],Ze.current.height,Je.current.height,kr.type]),Yr=r.useMemo((function(){return Nr+Sr}),[Nr,Sr]),Hr=r.useMemo((function(){return Ir+Mr}),[Ir,Mr]),Wr="x"===U?Hr:Yr,Xr=r.useMemo((function(){return[Math.max(0,Hr-Lr[0]),Math.max(0,Yr-Lr[1])]}),[Lr.join(),Yr,Hr]),Br="x"===U?(null===(p=Fe.current)||void 0===p?void 0:p.scrollLeft)||0:(null===(g=Fe.current)||void 0===g?void 0:g.scrollTop)||0,Pr=Br>1&&!0,Dr=Wr>Math.round(Br+Ar),qr=!1,Vr=!1;"hybrid"===U&&(qr=((null===(b=Fe.current)||void 0===b?void 0:b.scrollLeft)||0)>1&&!0,Vr=Math.round(((null===(M=Fe.current)||void 0===M?void 0:M.scrollLeft)||0)+Lr[0])<Hr);var Ur=r.useMemo((function(){return null!=be?be:30}),[be]),Kr=r.useCallback((function(e){return ve.progressElement&&Wr?"x"===e?W(Lr[0]-Rr[0],Hr,Ur):W(Lr[1]-Rr[1],Yr,Ur):0}),[ar,Wr,Lr[0],Lr[1],Hr,Ur,Rr.join()]),_r=r.useMemo((function(){return{x:"y"!==U?Kr("x"):0,y:"x"!==U?Kr("y"):0}}),[Kr,U]),Gr=r.useMemo((function(){return{w:Lr[0]?Hr-Lr[0]:Hr,h:Lr[1]?Yr-Lr[1]:Yr}}),[Hr,Yr,Lr[0],Lr[1]]),$r={x:"y"!==U?X((null===(E=Fe.current)||void 0===E?void 0:E.scrollLeft)||0,Gr.w,zr[0],_r.x):0,y:"x"!==U?X((null===(k=Fe.current)||void 0===k?void 0:k.scrollTop)||0,Gr.h,zr[1],_r.y):0},Zr=r.useMemo((function(){if(!kr.type)return[{top:0,bottom:0,left:0,right:0}];for(var e=0,r="x"===U,t="row"===ae,n=r&&!t||!r&&t,o=Cr[0]+Er[1],i=Cr[1]+Er[0],l=new Set,c=n?Or[0]:Or[1],a=Cr[t?0:1],u=Er[t?1:0],s=Math.floor((pr.length-1)/c)*c;s<pr.length;s++)l.add(s);var f=c-l.size,d=f>0?(a+u)*f:0;return"center"===le?e=Math.round(d/2):"end"===le&&(e=d),pr.map((function(r,c){var a,u,s=n?c%Or[0]:Math.floor(c/Or[1]),f=n?Math.floor(c/Or[0]):c%Or[1];"x"===U?(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+Cr[1],right:h+Cr[0]}}))}),[Cr[0],Cr[1],Er[0],Er[1],le,pr.length,Or[0],Or[1],kr.type,ae,U]),Jr=r.useMemo((function(){return(null==Lr?void 0:Lr.length)&&ie?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=N(i)),r[1]>n&&(u.alignItems=N(a)),u}(ie,Lr,Hr,Yr):{}}),[ie,Lr.join(),Yr,Hr]),Qr=r.useMemo((function(){return[F(Hr,Lr[0]),F(Yr,Lr[1])]}),[Hr,Yr,Lr.join()]),et=r.useMemo((function(){return"x"===U?Qr[0]:Qr[1]}),[U,Qr[0],Qr[1]]),rt=r.useCallback(Y($e,Re),[]),tt=r.useCallback(Y(Ze,Re,Mr,Sr),[Mr,Sr]),nt=r.useCallback(Y(Je,Re),[]),ot=r.useCallback((function(e,r,n){var l=Fe.current;return l&&null!==e?function(e,r,n,l,c,a){return o(this,void 0,void 0,(function(){var o,u,s,f,v;return i(this,(function(i){switch(i.label){case 0:return u=(o="y"===e)?"scrollTop":"scrollLeft",s=o?a[1]:a[0],f=d(l,0,s),(v=d(r[u],0,s))===f?[2]:null!==n?[3,2]:[4,O(r)];case 1:return i.sent(),r[u]=l,[2];case 2:return t.setLockTask((function(){var e=performance.now(),t=function(){var o=performance.now(),i=Math.min((o-e)/n,1),l=d(v+(f-v)*i,0,s);r[u]=l,1>i&&l!==f&&c("smoothScroll",t)};c("smoothScroll",t)}),n,"smoothScrollBlock".concat(e)),[2]}}))}))}(r,l,Ye.current?null:n,e,ze.schedule,Xr):null}),[Xr.join()]),it=r.useMemo((function(){var e=n(n(n({margin:ne?"".concat(gr,"px ").concat(br,"px ").concat(xr,"px ").concat(wr,"px"):"",height:Tr[1]&&"none"!==Tr[1]?"".concat(Nr,"px"):"fit-content",width:Tr[0]&&"none"!==Tr[0]?"".concat(Ir,"px"):"fit-content"},te&&!kr.type&&{gap:"".concat(Er[0],"px ").concat(Er[1],"px")}),oe&&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")}}(oe,U,Lr,Mr,Sr)),("hybrid"===U||"x"===U)&&{flexShrink:0});if(kr.type)return n(n({},e),{position:"relative"});var r=1===Or[0]?"y"===U?"column":"row":ae,t=Tr[0]&&"none"!==Tr[0]&&Tr[1]&&"none"!==Tr[1]?"wrap":void 0;return n(n({},e),{display:"flex",flexDirection:r,flexWrap:t,justifyContent:N(le)})}),[ne,lr,ir,[gr,br,xr,wr,Mr,Sr,Er[0],Er[1]].join(),Lr.join(),cr,Tr[1],Nr,Ir,cr,kr.type,U,Or[0],ae,le]),lt=r.useCallback((function(e,r,t){var n;Ne.current=H();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"===T?".ms-bar":".ms-slider"))||void 0===n?void 0:n.getAttribute("data-direction")),He.current=e,C({scrollElement:Fe.current,target:o,clickedObject:He,scrollStateRef:Xe.current,type:T,triggerUpdate:Re,direction:U,smoothScroll:ot,sizeLocal:[Lr[0],Lr[1]],thumbSize:"x"===i?_r.x:_r.y,axisFromAtr:i,duration:fr.duration,scrollBarEdge:Rr,rafScrollAnim:ze,isTouched:Ne.current,gap:Er,overscrollRef:Ve,objLengthPerSize:Qr,isDraggingRef:Ue,maxScrollSize:Xr})}}),[U,T,Lr.join(),fr.duration,ot,Rr.join(),_r.x,_r.y,Er.join(),Qr,Xr.join()]),ct=r.useCallback((function(e){lt("thumb",e,!0)}),[lt]),at=r.useCallback((function(e){Fe.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:Fe.current,wrapSize:[Hr,Yr],scrollSize:Lr,smoothScroll:ot,duration:fr.duration,loop:hr.loop,gap:Er})}),[Lr.join(),Hr,Yr,fr.duration,ot,hr.loop,Er[0],Er[1]]),ut=r.useCallback((function(){"scroll"!==T&&Lr[0]&&Lr[1]&&Ce.current&&Fe.current&&Ie.current.size&&function(e,r,t,n){c([],l(r),!1).forEach((function(r,o){var i,l,c=I.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},I.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)}}))}(Fe.current,Ie.current,U,Qr)}),[Lr.join(),U,T,Qr.join()]),st=r.useCallback((function(e){if(e){var r=(o=Oe.current)?Array.from(o.children).flatMap((function(e){if(!(e instanceof HTMLElement))return[];var r=e.getAttribute(v);return r?[q(r)]:[]})):[];Ke.current&&(t=Ke.current,n=r,t.length===n.length&&t.every((function(e,r){return e===n[r]})))||(Ke.current=r,e(r))}var t,n,o}),[]),ft=r.useCallback((function(){Oe.current&&function(e,r,t,n){for(var o=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:function(e){return e instanceof Element&&e.hasAttribute(v)?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}}),i=o.nextNode();i;){var l=i,c=l.getAttribute(v);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()}(Oe.current,We,Re,kr.type)}),[rr]),dt=r.useCallback((function(e){"object"==typeof we&&"clickTrigger"in we&&void 0!==we.clickTrigger&&function(e,r,n){var o="string"==typeof r?{selector:r}:r,i=o.selector,l=o.delay,c=void 0===l?0:l,a=e.target;if(a.closest(i)){var u=a.closest("[wrap-id]");null==u||u.classList.add("remove"),t.setTask((function(){null==u||u.classList.remove("remove"),n()}),c)}}(e,we.clickTrigger,ft)}),[or,ft]),vt=r.useCallback((function(e){t.cancelTask("removeHover");var r=Ce.current,n=Te.current,o=Fe.current;if(r&&n&&o){if(fr.value.includes("end")){var i=e.currentTarget,l=i.scrollLeft,c=i.scrollTop;De.current.update(l,c)}null==$||$(o.scrollLeft,o.scrollTop);var a=r.querySelectorAll("scroll"===T?".ms-bar":".ms-slider");ye&&a.length>0&&!Be.current&&a.forEach((function(e){e.classList.contains("hover")||S(e)})),Be.current=!0,null==Z||Z(!0),t.setTask((function(){De.current.reset(),Be.current=!1,null==Z||Z(!1),kr.type&&ft(),ye&&a.length>0&&!He.current&&a.forEach((function(e){t.setTask((function(){e.hasAttribute("ms-manual-hover")||w(e)}),1e3,"removeHover")}))}),200,"isScrolling"),t.setTask((function(){return st(_e.current)}),"raf","onRenderedKeysChange"),Ae.schedule("sliderCheckLocal",(function(){"scroll"!==T&&ut(),je()}))}}),[$,Z,T,ut,ft,ye,kr.type]),ht=r.useCallback((function(e){if(!Pe.current){var r="object"==typeof ve.wheel&&"string"==typeof ve.wheel.changeDirectionKey?ve.wheel.changeDirectionKey:"KeyX";e.code!==r||"hybrid"!==U||Pe.current||(e.stopPropagation(),Pe.current=!0,Re())}}),[U,ar]),mt=r.useCallback((function(e){Pe.current&&(e.stopPropagation(),Pe.current=!1,Re())}),[]);r.useEffect((function(){if(!J)return _e.current=void 0,void(Ke.current=null);_e.current=J,Ke.current=null,st(J)}),[J,st]),r.useEffect((function(){_e.current&&Lr[0]&&Lr[1]&&st(_e.current)}),[pr.join("|"),Lr.join()]),r.useEffect((function(){if(!Ne.current&&"hybrid"===U){var e=Oe.current,r=Fe.current;if(e&&r)return e.clientWidth+Mr>r.clientWidth&&e.clientHeight+Sr>r.clientHeight&&(r.addEventListener("keydown",ht),r.addEventListener("keyup",mt)),function(){r.removeEventListener("keydown",ht),r.removeEventListener("keyup",mt)}}}),[U,ar,tr,nr,pr.join(),Mr,Sr]),r.useEffect((function(){we&&kr.type&&ft()}),[or,kr.type,ft,pr.length]),r.useEffect((function(){if(!Ne.current){var e=Fe.current,r=Oe.current;if(e&&r){var t="hybrid"===U&&"object"==typeof ve.wheel&&ve.wheel.changeDirection?"x":U,n="hybrid"===U&&Nr+Sr<=Lr[1]||Pe.current?["hybrid","y"].includes(t)?"x":"y":t,o=function(r){r.preventDefault(),h(r,e,Xr,Xe.current,n)};return ve.wheel&&e.addEventListener("wheel",o,{passive:!1}),function(){e.removeEventListener("wheel",o)}}}}),[U,ar,Nr,Lr[1],Sr,Pe.current,Xr.join()]),r.useEffect((function(){Ae.schedule("smoothScrollLocal",(function(){("hybrid"===U?["x","y"]:[U]).forEach((function(e){var r=fr.value["x"===e?0:1];if("end"===r){if(De.current.get()[e]===("x"===e?"left":"up"))return;ot("x"===e?Gr.w:Gr.h,e,fr.duration)}else"number"==typeof r&&qe.current[e]!==r&&(qe.current[e]=r,ot(r,e,fr.duration))}))}))}),[U,er,Gr.w,Gr.h,fr.value.join()]),r.useEffect((function(){var e=Xe.current.animationFrameId;return(kr.type||Z)&&Z&&Z(!1),requestAnimationFrame((function(){return Ye.current=!1})),function(){e&&cancelAnimationFrame(e),Xe.current.animationFrameId&&cancelAnimationFrame(Xe.current.animationFrameId),ze.cancel()}}),[]),r.useEffect((function(){if(ke){var e=Te.current,r=Fe.current;if(e&&r){var t={parent:e,element:r,direction:U};return function(e){fe.set(e.parent,e),1===fe.size&&function(){if(!_){var e=(P=new AbortController).signal;document.addEventListener("pointerdown",se,{signal:e}),document.addEventListener("dragstart",se,{signal:e}),_=!0}}()}(t),function(){!function(e){fe.delete(e.parent),0===fe.size&&_&&(null==P||P.abort(),null==K||K.abort(),_=!1)}(t)}}}}),[ke,U]),r.useEffect((function(){var e=Fe.current;if(e){var r=function(e){lt("wrapp",e)};if(ve.content||!ve.content&&Ne.current&&ve.wheel){if(!0===ve.progressElement)return;e.addEventListener("pointerdown",r)}return function(){e.removeEventListener("pointerdown",r)}}}),[ar,lt]),r.useEffect((function(){var e=Ce.current;if(e&&ye&&Ie.current.size){var r=function(e){"mouseenter"===e.type&&document.removeEventListener("mouseup",r),"mouseleave"===e.type&&He.current?document.addEventListener("mouseup",r):Array.from(Ie.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;w(e)}else e.setAttribute("ms-manual-hover",""),S(e)};Array.isArray(r)?r.map((function(e){return o(e)})):o(r)}({el:r,event:e,isScrolling:Be})}))},t=function(r,t){Ne.current?(Array.from(Ie.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)}}}),[ye,T,U,Ie.current.size]),r.useEffect((function(){"scroll"!==T&&Ae.schedule("sliderCheckLocal",ut)}),[T,ut,Lr.join()]);var pt,yt=r.useCallback((function(t,o,i,l,c){var a,u=n(n({width:Cr[0]?"".concat(Cr[0],"px"):void 0,height:Cr[1]?"".concat(Cr[1],"px"):void 0},kr.type&&{position:"absolute",transform:"translate(".concat(i,"px, ").concat(o,"px)")}),"number"==typeof c&&{"--content-visibility":c}),s=Me?e.jsx(r.Suspense,{fallback:Fr,children:l}):l;return e.jsx("div",n({},kr.type||we?((a={})[v]="".concat(t),a):{},{className:"ms-object-box",style:u,onClick:we?dt:void 0,children:s}),t)}),[Me,!!Fr,Cr[0],Cr[1],rr,or,Or[0],dt,kr.type]),gt=r.useMemo((function(){var e=new Map;return mr.forEach((function(t){r.isValidElement(t)&&null!=t.key&&e.set(t.key+"",t)})),e}),[mr]),bt=r.useMemo((function(){return c([{positionType:"x"===U?"left":"top",visibility:Pr},{positionType:"x"===U?"right":"bottom",visibility:Dr}],l("hybrid"===U?[{positionType:"left",visibility:qr},{positionType:"right",visibility:Vr}]:[]),!1)}),[Pr,Dr,U,qr,Vr]),xt=r.useMemo((function(){return{width:"".concat(Lr[2],"px"),height:"".concat(Lr[3],"px")}}),[Lr]),wt=r.useMemo((function(){var e;return null!==(e={x:Hr>Lr[0]?"scroll hidden":"hidden",y:Yr>Lr[1]?"hidden scroll":"hidden",hybrid:"".concat(Hr>Lr[0]?"scroll":"hidden"," ").concat(Yr>Lr[1]?"scroll":"hidden"),hide:"hidden"}[ve.wheel||ve.content&&"scroll"===T?U:"hide"])&&void 0!==e?e:"hidden"}),[Hr,Yr,Lr,ar,U]),St=r.useMemo((function(){return ue?bt.map((function(r){var t=r.positionType,n=r.visibility;return e.jsx(y,{edgeGradient:vr,visibility:n,edgeType:t,size:Lr},"edge-".concat(t))})):null}),[ue,bt,vr,tr]),Mt=r.useMemo((function(){return ve.arrows?bt.map((function(r){var t=r.positionType,n=r.visibility;return e.jsx(x,{visibility:n,arrows:hr,arrowType:t,handleArrow:at,size:Lr[0]},"arrow-".concat(t))})):null}),[ar,bt,hr,at,Lr[0]]),Et=function(){var t,o,i=(null===(t=Fe.current)||void 0===t?void 0:t.scrollLeft)||0,l=(null===(o=Fe.current)||void 0===o?void 0:o.scrollTop)||0;return e.jsx("div",{className:"ms-objects-wrapper",ref:Oe,style:n(n(n({},it),(Ve.current.x||Ve.current.y)&&{transform:"translate(".concat(Ve.current.x,"px, ").concat(Ve.current.y,"px)")}),Ue.current&&{pointerEvents:"none"}),children:pr.map((function(t,n){return function(t,n,o,i){var l,c=gt.get(t),a=kr.stopLoadOnScroll&&Be.current&&!We.current.loaded.has(t)?Fr:(null===(l=We.current.empty)||void 0===l?void 0:l.has(t))?we&&"object"==typeof we&&r.isValidElement(we)?we:we&&"object"==typeof we&&"mode"in we&&"object"==typeof we.mode&&"fallback"in we.mode?we.mode.fallback:Fr:c,u="firstChild"!==Tr[0]&&"firstChild"!==Tr[1]||0!==n?a:e.jsx(s,{onResize:nt,children:a});if(!kr.type)return yt(t,0,0,u);var f=Zr[n],d=f.top,v=f.bottom,h=f.left,m=f.right,p=function(e){void 0===e&&(e=!0);var r=e?jr:[0,0,0,0],t=function(e){var t="x"===e?o:i,n=t+("x"===e?Lr[0]:Lr[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"===U){var n=t("x"),l=t("y");return Math.min(n,l)}return t("x"===U?"x":"y")},y=p(),g=kr.trackVisibility?p(!1):null;if("lazy"===kr.type){var b=We.current.loaded.has(t);if(y&&!b){if(Be.current&&kr.stopLoadOnScroll)return;We.current.loaded.add(t)}return b?yt(t,d,h,u,g):null}return y?yt(t,d,h,u,g):(We.current.loaded.delete(t),null)}(t,n,i,l)}))})},kt=r.useMemo((function(){var e={position:"relative",width:"".concat(Lr[0],"px"),height:"".concat(Lr[1],"px")};return ve.arrows&&hr.contentReduce&&hr.size&&("x"===U?e.left="".concat(hr.size,"px"):"y"===U?e.top="".concat(hr.size,"px"):(e.top="".concat(hr.size,"px"),e.left="".concat(hr.size,"px"))),e}),[Lr,ar,hr,U]),jt=e.jsxs("div",{"morph-scroll":"".concat(Le),className:A,ref:Te,style:xt,children:[e.jsxs("div",{className:"ms-content",ref:Ce,style:n(n(n({},kt),{transform:"translateZ(0)"}),Ne.current&&{touchAction:"pinch-zoom"}),children:[e.jsx("div",{className:"ms-element",ref:Fe,onScroll:vt,tabIndex:0,style:n(n(n({width:"100%",height:"100%",outline:"none"},Jr),"boolean"!=typeof ve.progressElement||!1===ve.progressElement?{scrollbarWidth:"none",overflow:"hidden"}:{overflow:wt}),ve.content&&{cursor:"grab"}),children:Cr[0]&&Cr[1]?Et():e.jsx(s,{onResize:tt,style:Jr,children:Et()})}),St,ve.progressElement&&!0!==ve.progressElement?(pt="x"!==U,[{shouldRender:Wr>Lr[pt?1:0],direction:U,thumbSize:pt?_r.y:_r.x,thumbSpace:pt?$r.y:$r.x,objLengthPerSize:et,progressReverseIndex:0},{shouldRender:"hybrid"===U&&Hr>Lr[0],direction:"x",thumbSize:_r.x,thumbSpace:$r.x,objLengthPerSize:Qr[0],progressReverseIndex:1}].filter((function(e){return e.shouldRender}))).map((function(r){var t="boolean"==typeof me?me:me[r.progressReverseIndex];return e.jsx(m,{type:T,direction:r.direction,progressReverse:t,size:zr,progressTrigger:[ve,ar],scrollBarOnHover:ye,scrollBarEvent:"sliderMenu"===T?ot:ct,thumbSize:r.thumbSize,thumbSpace:r.thumbSpace,objLengthPerSize:r.objLengthPerSize,sliderCheckLocal:ut,duration:fr.duration,isTouched:Ne.current,scrollStateRef:Xe,scrollEl:Fe,scrollBarsRef:Ie,triggerUpdate:Re,overscroll:Ve,maxScrollSize:Xr},r.direction)})):null]}),Mt]});return"auto"===Q?e.jsx(s,{measure:"outer",onResize:rt,children:jt}):jt};de.displayName="MorphScroll";var ve={MorphScroll:de,ResizeTracker:s,IntersectionTracker:u};exports.IntersectionTracker=u,exports.MorphScroll=de,exports.ResizeTracker=s,exports.default=ve;
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{cancelTask as l,setTask as c,setLockTask as a}from"keytask-core";var u=function(){return u=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},u.apply(this,arguments)};function s(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 f(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 d(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 v(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 h=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]]:v([],d(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},m=function(r){var n=r.className,o=r.children,i=r.style,l=r.root,c=r.threshold,a=r.rootMargin,u=r.visibleContent,s=void 0!==u&&u,f=r.onIntersection,v=d(t.useState(!1),2),m=v[0],p=v[1],y=t.useRef(null),g=t.useMemo((function(){if(!a)return"";var e=h(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=d(e,1)[0];p(r.isIntersecting),f&&f({time:r.time,rootBounds:r.rootBounds,boundingClientRect:r.boundingClientRect,intersectionRect:r.intersectionRect,isIntersecting:r.isIntersecting,intersectionRatio:r.intersectionRatio,target:r.target})}),[f]);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:s||m?o:null})};m.displayName="IntersectionTracker";var p=function(r){var n=r.className,o=r.children,i=r.style,l=r.measure,c=void 0===l?"inner":l,a=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;a&&a(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()}}}),[c,a]);var f={width:"max-content",height:"max-content"},d={inner:u({},f),outer:u({},{width:"100%",height:"100%"}),all:u({minWidth:"100%",minHeight:"100%"},f)};return e("div",{"resize-tracker":"",className:n,ref:s,style:u(u({willChange:"width, height"},d[c]),i),children:o})};p.displayName="ResizeTracker";var y=1;function g(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 b="wrap-id";function x(e,r,t,n,o){r.matches(":focus")||r.focus(),n.animating||(n.targetScrollX=g(r.scrollLeft,0,t[0]),n.targetScrollY=g(r.scrollTop,0,t[1])),"x"===o?n.targetScrollX=g(n.targetScrollX+e.deltaY,0,t[0]):n.targetScrollY=g(n.targetScrollY+e.deltaY,0,t[1]),n.animating||(n.animating=!0,n.animationFrameId=requestAnimationFrame((function e(){var i;if("x"===o){var l=g(r.scrollLeft+.4*(n.targetScrollX-r.scrollLeft),0,t[0]);r.scrollLeft=l,i=Math.abs(l-n.targetScrollX)}else{var c=g(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=g(n.targetScrollX,0,t[0]):r.scrollTop=g(n.targetScrollY,0,t[1]),n.animating=!1,n.animationFrameId=null)})))}var w=function(r){var n=r.type,o=r.direction,i=r.progressReverse,l=r.size,c=r.progressTrigger,a=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,w=r.triggerUpdate,S=r.overscroll,M=r.maxScrollSize,E=t.useRef(null),L=t.useRef(null),A=["hybrid","y"].includes(o)?"y":"x",R=Math.abs(S.current[A])*(f/200),k=f-R,z=0>S.current[A]?d+R:d,j=t.useMemo((function(){if("scroll"!==n){var r=l["x"===A?0:1];return Array.from({length:v},(function(t,o){return e("div",{className:"ms-slider-element",style:u({},"sliderMenu"===n&&{cursor:"pointer"}),onClick:"sliderMenu"===n?function(){s(r*o,A,m,h)}:void 0,children:Array.isArray(c[0].progressElement)?c[0].progressElement[o]:c[0].progressElement},o)}))}}),[v,n,c[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&&c[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 x(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),w(),function(){b.current.delete(e)}}),[f]);var O=u({position:"absolute"},a&&{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:u(u(u({},O),{width:"fit-content",height:"".concat(C,"px")}),"x"===o?u({transformOrigin:"left top",left:"50%"},i?{top:0,transform:"rotate(-90deg) translate(-100%, -50%)"}:{transform:"rotate(-90deg) translateY(-50%)"}):u({top:"50%",transform:"translateY(-50%)"},i?{left:0}:{right:0})),children:e("div",{className:"ms-thumb",ref:L,style:u(u({height:"".concat(k,"px"),transform:"translateY(".concat(z,"px)")},c[0].progressElement&&{cursor:"grab"}),{display:"flex",alignItems:F}),children:c[0].progressElement})}):v>1&&c[0].progressElement&&e("div",{className:"ms-slider ms-".concat(T),ref:E,"data-direction":T,style:u(u(u(u({},O),{display:"flex"}),"slider"===n&&{cursor:"grab"}),"x"===o?u({transformOrigin:"left top",left:"50%",transform:"translateX(-50%)"},i?{top:0}:{bottom:0}):u({flexDirection:"column",top:"50%",transform:"translateY(-50%)"},i?{left:0}:{right:0})),children:j})})};w.displayName="ScrollBar";var S=function(r){var t,n=r.edgeGradient,o=r.visibility,i=r.edgeType;r.size;var l=u(u(u(((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)"}:{}),c="ms-edge ".concat(i).concat(o?"":" ms-disabled");return e("div",{className:c,style:l})};S.displayName="Edge";var M=t.memo(S),E=function(r){var n,o=r.visibility,i=r.arrows,l=r.arrowType,c=r.handleArrow,a=r.size,s=t.useRef(null),f=u(u(u(u(u({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(a,"px")}:{height:"100%",top:0});return t.useEffect((function(){var e=s.current;if(e){var r=function(){return c(l)};return e.addEventListener("click",r),function(){e.removeEventListener("click",r)}}}),[c,l]),e("div",{className:"ms-arrow-box ".concat(l).concat(o?" active":""),ref:s,style:f,children:i.element})};E.displayName="Arrow";var L,A=t.memo(E),R=function(e){var r=e.getAttribute("data-direction");e.style.opacity="0",e.classList.remove("hover"),e.classList.add("leave"),l("remove".concat(r)),c((function(){return e.classList.remove("leave")}),200,"remove".concat(r))},k=function(e){var r=e.getAttribute("data-direction");l("remove".concat(r)),e.style.opacity="1",e.classList.remove("leave"),e.classList.add("hover")},z=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)}}}(),j=function(e,r,t){var n=e.current[r],o=performance.now();z.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)}))},T={x:0,y:0},C={x:0,y:0},F={x:0,y:0,t:0,distX:0,distY:0},O=null,I=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)}},N=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))},Y=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 g(e*i/(i+(t?-l:l)),-150,150)};if(O){var s=O,f={x:a.x-s.x.value,y:a.y-s.y.value},d=Math.abs(T[e]);if(d>2?n.isDraggingRef.current=!0:3>d&&(T[e]+=f[e]),n.isTouched){var v=performance.now();if(F.t){var h=Math.max(v-F.t,8);F={x:.8*F.x+f.x/h*.2,y:.8*F.y+f.y/h*.2,t:v,distX:(null!==(o=F.distX)&&void 0!==o?o:0)+Math.abs(f.x),distY:(null!==(i=F.distY)&&void 0!==i?i:0)+Math.abs(f.y)}}else F.t=v}var m="wrapp"===n.clickedObject.current?-f[e]:f[e],p=c?"scrollLeft":"scrollTop",y=c?0:1,b=function(r,t,o){var i=O[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=g(l[p]+r,0,a);N(e,l,n,d)}else N(e,l,n,0)}else O=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&&(C[e]+=m),"wrapp"!==n.clickedObject.current){var S=l[p];if(!n.sliderElSize||Math.abs(C[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;C[e]=0,n.smoothScroll(E,e,10)}}else b(m/t[y],f[e],!0)}else O={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 H(e){z.stop(),["x","y"].forEach((function(r){e.rafScrollAnim.cancel(),l("smoothScrollBlock".concat(r))}));var r=e.scrollElement;if(r){e.scrollStateRef.targetScrollX=r.scrollLeft,e.scrollStateRef.targetScrollY=r.scrollTop,F={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,c=(e.sizeLocal[i]-e.scrollBarEdge[i]-e.thumbSize)*n[i];o=e.maxScrollSize[i]/c,Number.isFinite(o)&&o>0||(o=1)}I(e.clickedObject.current,e.target,r,"start"),null==L||L.abort();var a=new AbortController;L=a;var s=a.signal;document.addEventListener("pointermove",(function(r){!function(r){var i,l;if("thumb"===e.clickedObject.current&&"slider"===e.type){var c=null===(i=e.target)||void 0===i?void 0:i.closest(".ms-slider");if(!c)return;var a=function(r){var t=c.getBoundingClientRect();return Math.round(("x"===r?t.width:t.height)/e.objLengthPerSize["x"===r?0:1])};l=[a("x"),a("y")]}!function(e){var r=e.direction||"y";"hybrid"===r?["wrapp","slider"].includes(e.clickedObject.current)?["x","y"].forEach((function(r){return Y(r,e.thumbRatio,e.visualDiff,e)})):e.axisFromAtr&&Y(e.axisFromAtr,e.thumbRatio,e.visualDiff,e):Y(e.axisFromAtr?e.axisFromAtr:r,e.thumbRatio,e.visualDiff,e);var t={x:e.event.clientX,y:e.event.clientY};O&&(O.x.value=t.x,O.y.value=t.y)}(u(u({},e),{event:r,wrapElWH:t,visualDiff:n,thumbRatio:o,sliderElSize:l}))}(r)}),{signal:s});var f=function(r){e.isDraggingRef.current=!1,function(e){null==L||L.abort();var r=e.scrollElement;if(r){if(I(e.clickedObject.current,e.target,r,"end"),"slider"===e.type&&"thumb"!==e.clickedObject.current){var t=C,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=d(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=F[t]*e.thumbRatio,o="x"===t?F.distX:F.distY;80>performance.now()-F.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=g(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)}O=null,0!==e.overscrollRef.current.x&&j(e.overscrollRef,"x",e.triggerUpdate),0!==e.overscrollRef.current.y&&j(e.overscrollRef,"y",e.triggerUpdate),e.clickedObject.current=null,F={x:0,y:0,t:0,distX:0,distY:0},T={x:0,y:0},C={x:0,y:0},e.triggerUpdate()}}(u(u({},e),{event:r,thumbRatio:o}))};document.addEventListener("pointerup",f,{signal:s}),document.addEventListener("pointercancel",f,{signal:s})}}function W(e,r){return e>r?Math.floor(e/r):1}function X(e){return s(this,void 0,void 0,(function(){return f(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 B=new WeakMap,P=function(e){return e?"start"===e?"flex-start":"center"===e?"center":"flex-end":void 0};function D(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 V=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 U(e,r,t){return r?g(Math.round(e/r*e),t,e):0}function q(e,r,t,n){return r?g(e/r*(t-n),0,t-n):0}function K(){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 G,_=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(_):[r]}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},Z=40,J="ms-under-drag",Q=null,ee=!1,re={x:0,y:0},te={x:0,y:0},ne=!1,oe=null,ie="",le=null,ce=null,ae=null,ue=K(),se=function(){ce&&ce.removeAttribute(J),oe=null,ce=null,le=null,ie="",ae=null};function fe(e,r,t,n,o,i){var l=e-r,c=t-e;return Z>l&&n>0?{dir:-1,distance:l}:Z>c&&i>n+o?{dir:1,distance:c}:null}function de(e){var r=g((Z-Math.abs(e))/Z,0,1,!1);return r*r*20|0}function ve(){if(oe){var e=oe.parent,r=oe.element,t=oe.direction,n=r.getBoundingClientRect(),o=te.x,i=te.y;if(o<n.left-Z||o>n.right+Z||i<n.top-Z||i>n.bottom+Z)se();else{var l=null,c=null,a=0,u=0,s="x"!==t?fe(i,n.top,n.bottom,r.scrollTop,r.clientHeight,r.scrollHeight):null;s&&(l=-1===s.dir?"top":"bottom",u=de(s.distance)*s.dir);var f="y"!==t?fe(o,n.left,n.right,r.scrollLeft,r.clientWidth,r.scrollWidth):null;f&&(c=-1===f.dir?"left":"right",a=de(f.distance)*f.dir),(ie=[l,c].filter(Boolean).join(" "))!==ae&&(e.setAttribute(J,ie),ae=ie),(a||u)&&r.scrollBy(a,u),ue.schedule("autoScrollLoop",ve)}}}function he(e){e instanceof DragEvent&&0===e.buttons?me():te.x===e.clientX&&te.y===e.clientY||(te.x=e.clientX,te.y=e.clientY,ue.schedule("onMove",(function(){if(!ne){var e=te.x-re.x,r=te.y-re.y;if(10>Math.hypot(e,r))return;ne=!0}var t=document.elementFromPoint(te.x,te.y);if(t){var n=t.closest("[morph-scroll]");if(n||oe){var o=n?ye.get(n):oe;o&&(oe=o,le!==o.element&&(ce&&ce!==o.parent&&ce.removeAttribute(J),le=o.element,(ce=o.parent).setAttribute(J,ie),ae=ie,ve()))}else se()}})))}function me(){null==Q||Q.abort(),Q=null,ne=!1,ue.cancel(),se()}function pe(e){var r=e instanceof PointerEvent;if(!r||e.target.closest("[ms-custom-drag]")){re.x=e.clientX,re.y=e.clientY,null==Q||Q.abort();var t=new AbortController;Q=t;var n=t.signal;r?(document.addEventListener("pointermove",he,{signal:n}),document.addEventListener("pointerup",me,{signal:n})):(document.addEventListener("dragover",he,{signal:n}),document.addEventListener("dragend",me,{signal:n}),document.addEventListener("drop",me,{signal:n}),document.addEventListener("pointerdown",me,{signal:n}),window.addEventListener("blur",me,{signal:n}))}}var ye=new Map;var ge=function(m){var S,E,L,z,j,T,C,F,O=m.className,I=m.children,N=m.type,Y=void 0===N?"scroll":N,Z=m.direction,J=void 0===Z?"y":Z,re=m.scrollPosition,te=m.onScrollValue,ne=m.isScrolling,oe=m.onRenderedKeysChange,ie=m.size,le=m.objectsSize,ce=m.crossCount,ae=m.gap,ue=m.wrapperMargin,se=m.wrapperMinSize,fe=m.wrapperAlign,de=m.elementsAlign,ve=m.elementsDirection,he=void 0===ve?"row":ve,me=m.edgeGradient,ge=m.progressTrigger,be=void 0===ge?{wheel:!0}:ge,xe=m.progressReverse,we=void 0!==xe&&xe,Se=m.scrollBarOnHover,Me=void 0!==Se&&Se,Ee=m.scrollBarEdge,Le=m.thumbMinSize,Ae=m.render,Re=m.emptyElements,ke=m.suspending,ze=void 0!==ke&&ke,je=m.fallback,Te=m.dragScroll,Ce=(C=d(o({}),2)[1],i((function(){C({})}),[])),Fe=(null===(F=n(null)).current&&(F.current="".concat(y++)),F.current),Oe=K(),Ie=function(){return Oe.schedule("triggerUpdate",Ce)},Ne=K();if(!ie)throw Error('prop "size" is not provided'.concat("\n morph-scroll ".concat(Fe)));Object.keys(be).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(V()),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=d(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=d(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=d(e,1)[0],n=d(r,1)[0];return t.localeCompare(n)})).map((function(e){var r=d(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)}(re,Ae,ie,le,Re,se,fe,ae,be,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!=re)if("number"==typeof re||"end"===re)t=[re,re];else if(Array.isArray(re))t=re;else if("object"==typeof re){var i=re.value;"number"==typeof i||"end"===i?t=[i,i]:Array.isArray(i)&&(t=i),n=null!==(e=re.duration)&&void 0!==e?e:200,o=null!==(r=re.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?u(u({},gr),me):"string"==typeof me?{color:me,size:40}:gr}),[me]),xr=t.useMemo((function(){var e=be.arrows,r={size:40,contentReduce:!0,loop:!1};return t.isValidElement(e)?u(u({},r),{element:e}):"object"==typeof e&&null!==e?u(u({},r),e):r}),[hr]),wr=t.useMemo((function(){return t.Children.toArray(I).flatMap(_)}),[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"===Re||Re&&"object"==typeof Re&&"mode"in Re&&"clear"===Re.mode)||!(null===(r=Ue.current.empty)||void 0===r?void 0:r.has(e))}))}),[I,sr,mr]),Mr=d(ue?h(ue):[0,0,0,0],4),Er=Mr[0],Lr=Mr[1],Ar=Mr[2],Rr=Mr[3],kr=Er+Ar,zr=Rr+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 Ae)return u(u({},e),{type:Ae});if("object"==typeof Ae&&null!==Ae){var r=Ae.type,t=Ae.rootMargin,n=void 0===t?e.rootMargin:t,o=Ae.stopLoadOnScroll,i=void 0===o?e.stopLoadOnScroll:o,l=Ae.trackVisibility;return{type:r,rootMargin:n,stopLoadOnScroll:i,trackVisibility:void 0===l?e.trackVisibility:l}}return e}),[cr]),Cr=t.useMemo((function(){return h(Tr.rootMargin)}),[Tr.rootMargin,J]),Fr=t.useMemo((function(){var e=d(Array.isArray(ie)?ie:"number"==typeof ie?[ie,ie]:[tr.current.width,tr.current.height],2),r=e[0],t=e[1];if(!be.arrows||!xr.size||!xr.contentReduce)return[r,t,r,t];var n=2*xr.size,o=r,i=t;return"x"===J?o=r-n:"y"===J?i=t-n:"hybrid"===J&&(o=r-n,i=t-n),[o,i,r,t]}),[ar,hr,J,xr,tr.current.height,tr.current.width]),Or="x"===J?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=d(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:h(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(),J,or.current.width,or.current.height,Fr.join()]),Wr=t.useMemo((function(){return Ae&&Re&&!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"===J?1:0,r="row"===he,t=Fr[e],n=Hr[e]?Hr[e]+jr[e]:0,o="hybrid"===J&&t?n*Sr.length:t,i=n?Math.floor(o/n):1,l=ce&&i>=ce?"hybrid"===J?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"===J){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,J,Fr.join(),ce]),Br=t.useMemo((function(){var e=1>Xr[0]?1:Xr[0]*jr[1]-jr[1],r=Xr["x"===J?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}),[J,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"===J?(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}),[J,Hr[1],Xr[0],Xr[1],jr[0],nr.current.height,or.current.height,Tr.type]),Dr=t.useMemo((function(){return Pr+kr}),[Pr,kr]),Vr=t.useMemo((function(){return Br+zr}),[Br,zr]),Ur="x"===J?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"===J?(null===(S=We.current)||void 0===S?void 0:S.scrollLeft)||0:(null===(E=We.current)||void 0===E?void 0:E.scrollTop)||0,Gr=Kr>1&&!0,_r=Ur>Math.round(Kr+Or),$r=!1,Zr=!1;"hybrid"===J&&($r=((null===(L=We.current)||void 0===L?void 0:L.scrollLeft)||0)>1&&!0,Zr=Math.round(((null===(z=We.current)||void 0===z?void 0:z.scrollLeft)||0)+Fr[0])<Vr);var Jr=t.useMemo((function(){return null!=Le?Le:30}),[Le]),Qr=t.useCallback((function(e){return be.progressElement&&Ur?"x"===e?U(Fr[0]-Ir[0],Vr,Jr):U(Fr[1]-Ir[1],Dr,Jr):0}),[hr,Ur,Fr[0],Fr[1],Vr,Jr,Ir.join()]),et=t.useMemo((function(){return{x:"y"!==J?Qr("x"):0,y:"x"!==J?Qr("y"):0}}),[Qr,J]),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"!==J?q((null===(j=We.current)||void 0===j?void 0:j.scrollLeft)||0,rt.w,Nr[0],et.x):0,y:"x"!==J?q((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"===J,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"===J?(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,J]),ot=t.useMemo((function(){return(null==Fr?void 0:Fr.length)&&fe?function(e,r,t,n){var o=d("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=P(i)),r[1]>n&&(a.alignItems=P(c)),a}(fe,Fr,Vr,Dr):{}}),[fe,Fr.join(),Dr,Vr]),it=t.useMemo((function(){return[W(Vr,Fr[0]),W(Dr,Fr[1])]}),[Vr,Dr,Fr.join()]),lt=t.useMemo((function(){return"x"===J?it[0]:it[1]}),[J,it[0],it[1]]),ct=t.useCallback(D(tr,Ie),[]),at=t.useCallback(D(nr,Ie,zr,kr),[zr,kr]),ut=t.useCallback(D(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 s(this,void 0,void 0,(function(){var l,c,u,s,d;return f(this,(function(f){switch(f.label){case 0:return c=(l="y"===e)?"scrollTop":"scrollLeft",u=l?i[1]:i[0],s=g(n,0,u),(d=g(r[c],0,u))===s?[2]:null!==t?[3,2]:[4,X(r)];case 1:return f.sent(),r[c]=n,[2];case 2:return a((function(){var e=performance.now(),n=function(){var i=performance.now(),l=Math.min((i-e)/t,1),a=g(d+(s-d)*l,0,u);r[c]=a,1>l&&a!==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=u(u(u({margin:ue?"".concat(Er,"px ").concat(Lr,"px ").concat(Ar,"px ").concat(Rr,"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=d(e,2))[0],c=i[1]):l=c=e,{minWidth:"".concat(a(l,"x"),"px"),minHeight:"".concat(a(c,"y"),"px")}}(se,J,Fr,zr,kr)),("hybrid"===J||"x"===J)&&{flexShrink:0});if(Tr.type)return u(u({},e),{position:"relative"});var r=1===Xr[0]?"y"===J?"column":"row":he,t=Yr[0]&&"none"!==Yr[0]&&Yr[1]&&"none"!==Yr[1]?"wrap":void 0;return u(u({},e),{display:"flex",flexDirection:r,flexWrap:t,justifyContent:P(de)})}),[ue,dr,fr,[Er,Lr,Ar,Rr,zr,kr,jr[0],jr[1]].join(),Fr.join(),vr,Yr[1],Pr,Br,vr,Tr.type,J,Xr[0],he,de]),dt=t.useCallback((function(e,r,t){var n;Pe.current=V();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,H({scrollElement:We.current,target:o,clickedObject:Ve,scrollStateRef:qe.current,type:Y,triggerUpdate:Ie,direction:J,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})}}),[J,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){v([],d(r),!1).forEach((function(r,o){var i,l,c=B.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},B.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,J,it)}),[Fr.join(),J,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(b);return r?[$(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(b)?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}}),i=o.nextNode();i;){var l=i,c=l.getAttribute(b);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 Re&&"clickTrigger"in Re&&void 0!==Re.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,a=e.target;if(a.closest(o)){var u=a.closest("[wrap-id]");null==u||u.classList.add("remove"),c((function(){null==u||u.classList.remove("remove"),t()}),l)}}(e,Re.clickTrigger,yt)}),[sr,yt]),bt=t.useCallback((function(e){l("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,a=o.scrollTop;_e.current.update(i,a)}null==te||te(n.scrollLeft,n.scrollTop);var u=r.querySelectorAll("scroll"===Y?".ms-bar":".ms-slider");Me&&u.length>0&&!Ke.current&&u.forEach((function(e){e.classList.contains("hover")||k(e)})),Ke.current=!0,null==ne||ne(!0),c((function(){_e.current.reset(),Ke.current=!1,null==ne||ne(!1),Tr.type&&yt(),Me&&u.length>0&&!Ve.current&&u.forEach((function(e){c((function(){e.hasAttribute("ms-manual-hover")||R(e)}),1e3,"removeHover")}))}),200,"isScrolling"),c((function(){return pt(er.current)}),"raf","onRenderedKeysChange"),Oe.schedule("sliderCheckLocal",(function(){"scroll"!==Y&&mt(),Ce()}))}}),[te,ne,Y,mt,yt,Me,Tr.type]),xt=t.useCallback((function(e){if(!Ge.current){var r="object"==typeof be.wheel&&"string"==typeof be.wheel.changeDirectionKey?be.wheel.changeDirectionKey:"KeyX";e.code!==r||"hybrid"!==J||Ge.current||(e.stopPropagation(),Ge.current=!0,Ie())}}),[J,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"===J){var e=Xe.current,r=We.current;if(e&&r)return e.clientWidth+zr>r.clientWidth&&e.clientHeight+kr>r.clientHeight&&(r.addEventListener("keydown",xt),r.addEventListener("keyup",wt)),function(){r.removeEventListener("keydown",xt),r.removeEventListener("keyup",wt)}}}),[J,hr,ar,ur,Sr.join(),zr,kr]),t.useEffect((function(){Re&&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"===J&&"object"==typeof be.wheel&&be.wheel.changeDirection?"x":J,n="hybrid"===J&&Pr+kr<=Fr[1]||Ge.current?["hybrid","y"].includes(t)?"x":"y":t,o=function(r){r.preventDefault(),x(r,e,qr,qe.current,n)};return be.wheel&&e.addEventListener("wheel",o,{passive:!1}),function(){e.removeEventListener("wheel",o)}}}}),[J,hr,Pr,Fr[1],kr,Ge.current,qr.join()]),t.useEffect((function(){Oe.schedule("smoothScrollLocal",(function(){("hybrid"===J?["x","y"]:[J]).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))}))}))}),[J,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:J};return function(e){ye.set(e.parent,e),1===ye.size&&function(){if(!ee){var e=(G=new AbortController).signal;document.addEventListener("pointerdown",pe,{signal:e}),document.addEventListener("dragstart",pe,{signal:e}),ee=!0}}()}(t),function(){!function(e){ye.delete(e.parent),0===ye.size&&ee&&(null==G||G.abort(),null==Q||Q.abort(),ee=!1)}(t)}}}}),[Te,J]),t.useEffect((function(){var e=We.current;if(e){var r=function(e){dt("wrapp",e)};if(be.content||!be.content&&Pe.current&&be.wheel){if(!0===be.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;R(e)}else e.setAttribute("ms-manual-hover",""),k(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,J,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 c,a=u(u({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",u({},Tr.type||Re?((c={})[b]="".concat(r),c):{},{className:"ms-object-box",style:a,onClick:Re?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 v([{positionType:"x"===J?"left":"top",visibility:Gr},{positionType:"x"===J?"right":"bottom",visibility:_r}],d("hybrid"===J?[{positionType:"left",visibility:$r},{positionType:"right",visibility:Zr}]:[]),!1)}),[Gr,_r,J,$r,Zr]),At=t.useMemo((function(){return{width:"".concat(Fr[2],"px"),height:"".concat(Fr[3],"px")}}),[Fr]),Rt=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"}[be.wheel||be.content&&"scroll"===Y?J:"hide"])&&void 0!==e?e:"hidden"}),[Vr,Dr,Fr,hr,J]),kt=t.useMemo((function(){return me?Lt.map((function(r){var t=r.positionType,n=r.visibility;return e(M,{edgeGradient:br,visibility:n,edgeType:t,size:Fr},"edge-".concat(t))})):null}),[me,Lt,br,ar]),zt=t.useMemo((function(){return be.arrows?Lt.map((function(r){var t=r.positionType,n=r.visibility;return e(A,{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:u(u(u({},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))?Re&&"object"==typeof Re&&t.isValidElement(Re)?Re:Re&&"object"==typeof Re&&"mode"in Re&&"object"==typeof Re.mode&&"fallback"in Re.mode?Re.mode.fallback:Wr:c,u="firstChild"!==Yr[0]&&"firstChild"!==Yr[1]||0!==n?a:e(p,{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,h=s.right,m=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?h+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"===J){var n=t("x"),l=t("y");return Math.min(n,l)}return t("x"===J?"x":"y")},y=m(),g=Tr.trackVisibility?m(!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 be.arrows&&xr.contentReduce&&xr.size&&("x"===J?e.left="".concat(xr.size,"px"):"y"===J?e.top="".concat(xr.size,"px"):(e.top="".concat(xr.size,"px"),e.left="".concat(xr.size,"px"))),e}),[Fr,hr,xr,J]),Ct=r("div",{"morph-scroll":"".concat(Fe),className:O,ref:Ye,style:At,children:[r("div",{className:"ms-content",ref:He,style:u(u(u({},Tt),{transform:"translateZ(0)"}),Pe.current&&{touchAction:"pinch-zoom"}),children:[e("div",{className:"ms-element",ref:We,onScroll:bt,tabIndex:0,style:u(u(u({width:"100%",height:"100%",outline:"none"},ot),"boolean"!=typeof be.progressElement||!1===be.progressElement?{scrollbarWidth:"none",overflow:"hidden"}:{overflow:Rt}),be.content&&{cursor:"grab"}),children:Hr[0]&&Hr[1]?jt():e(p,{onResize:at,style:ot,children:jt()})}),kt,be.progressElement&&!0!==be.progressElement?(St="x"!==J,[{shouldRender:Ur>Fr[St?1:0],direction:J,thumbSize:St?et.y:et.x,thumbSpace:St?tt.y:tt.x,objLengthPerSize:lt,progressReverseIndex:0},{shouldRender:"hybrid"===J&&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(w,{type:Y,direction:r.direction,progressReverse:t,size:Nr,progressTrigger:[be,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(p,{measure:"outer",onResize:ct,children:Ct}):Ct};ge.displayName="MorphScroll";var be={MorphScroll:ge,ResizeTracker:p,IntersectionTracker:m};export{m as IntersectionTracker,ge as MorphScroll,p as ResizeTracker,be as default};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "morphing-scroll",
3
- "version": "2.10.3",
3
+ "version": "2.10.4",
4
4
  "description": "React library for custom object scrolling and scrollbar styling",
5
5
  "author": "Georg Schilin",
6
6
  "license": "MIT",