@ehfuse/overlay-scrollbar 1.7.12 → 1.7.13
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/OverlayScrollbar.d.ts +1 -0
- package/dist/OverlayScrollbar.d.ts.map +1 -1
- package/dist/index.esm.js +7 -4
- package/dist/index.esm.js.map +3 -3
- package/dist/index.js +7 -4
- package/dist/index.js.map +3 -3
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OverlayScrollbar.d.ts","sourceRoot":"","sources":["../src/OverlayScrollbar.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAAK,EAAE,EAMV,SAAS,EAKZ,MAAM,OAAO,CAAC;AAIf,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAGnD,MAAM,WAAW,WAAW;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB;AAGD,MAAM,WAAW,WAAW;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;CACvB;AAGD,MAAM,WAAW,YAAY;IACzB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB;AAGD,MAAM,WAAW,gBAAgB;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC/B;AAGD,MAAM,WAAW,cAAc;IAC3B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,qBAAqB;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,cAAc,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IACrC,YAAY,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IACnC,QAAQ,EAAE,SAAS,CAAC;IACpB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAGlC,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,aAAa,CAAC,EAAE,mBAAmB,CAAC;IAGpC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,YAAY,CAAC,EAAE,OAAO,GAAG,kBAAkB,CAAC;CAC/C;AAGD,MAAM,WAAW,kBAAkB;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"OverlayScrollbar.d.ts","sourceRoot":"","sources":["../src/OverlayScrollbar.tsx"],"names":[],"mappings":"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"}
|
package/dist/index.esm.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{useRef as O,useEffect as A,useState as p,useCallback as h,useMemo as Ee,forwardRef as Vt,useImperativeHandle as Zt,useLayoutEffect as Qt,useId as Jt}from"react";var qt=["editor","textarea","input","select","textfield","form-control","contenteditable","MuiInputBase-input","MuiSelect-select","MuiOutlinedInput-input","MuiFilledInput-input","MuiInput-input","MuiFormControl-root","MuiTextField-root","MuiSelect-root","MuiOutlinedInput-root","MuiFilledInput-root","MuiInput-root","MuiAutocomplete-input","MuiDatePicker-input","MuiSlider-thumb","MuiSlider-rail","MuiSlider-track","MuiSlider-mark","MuiSlider-markLabel","MuiSlider-root","MuiSlider-colorPrimary","MuiSlider-sizeMedium","MuiIconButton-root","MuiButton-root","MuiButtonBase-root","MuiTouchRipple-root","MuiCheckbox-root","MuiRadio-root","MuiSwitch-root","PrivateSwitchBase-root","ant-input","ant-input-affix-wrapper","ant-input-group-addon","ant-input-number","ant-input-number-handler","ant-select","ant-select-selector","ant-select-selection-search","ant-select-dropdown","ant-cascader","ant-cascader-input","ant-picker","ant-picker-input","ant-time-picker","ant-calendar-picker","ant-slider","ant-slider-track","ant-slider-handle","ant-switch","ant-checkbox","ant-checkbox-wrapper","ant-radio","ant-radio-wrapper","ant-rate","ant-upload","ant-upload-drag","ant-form-item","ant-form-item-control","ant-btn","ant-dropdown","ant-dropdown-trigger","ant-menu","ant-menu-item","ant-tooltip","ant-popover","ant-modal","ant-drawer","ant-tree-select","ant-auto-complete","ant-mentions","ant-transfer","ui-input","ui-textarea","ui-select","ui-select-trigger","ui-select-content","ui-select-item","ui-button","ui-checkbox","ui-radio-group","ui-switch","ui-slider","ui-range-slider","ui-calendar","ui-date-picker","ui-combobox","ui-command","ui-command-input","ui-popover","ui-dialog","ui-sheet","ui-dropdown-menu","ui-context-menu","ui-menubar","ui-navigation-menu","ui-form","ui-form-control","ui-form-item","ui-form-field","ui-label","radix-ui","radix-select","radix-dropdown","radix-dialog","radix-popover","radix-accordion","radix-tabs","radix-slider","radix-switch","radix-checkbox","radix-radio","ql-editor","ql-container","ql-toolbar","ql-picker","ql-picker-label","ql-picker-options","ql-formats","ql-snow","ql-bubble","quill","quilleditor","monaco-editor","monaco-editor-background","view-lines","decorationsOverviewRuler","monaco-scrollable-element","CodeMirror","CodeMirror-code","CodeMirror-lines","CodeMirror-scroll","CodeMirror-sizer","cm-editor","cm-focused","cm-content","tox-editor-container","tox-editor-header","tox-edit-area","tox-tinymce","mce-content-body","ck-editor","ck-content","ck-toolbar","ck-editor__editable","ck-widget","slate-editor","slate-content","DraftEditor-root","DraftEditor-editorContainer","public-DraftEditor-content","ehfuse-editor","ehfuse-editor-wrapper","ehfuse-editor-content","ehfuse-toolbar","ehfuse-toolbar-group","ehfuse-cursor","text-editor","rich-text-editor","wysiwyg","ace_editor","ace_content"],Ie=(M,L)=>{if(M instanceof HTMLElement&&M.isContentEditable||M.closest('[role="textbox"],[role="searchbox"]'))return!0;let S=M.tagName.toLowerCase();if(S==="input"){let d=(M.type||"text").toLowerCase();return!["button","submit","reset","image","hidden"].includes(d)}if(["textarea","select","button"].includes(S)||["svg","path","circle","rect","line","polygon","polyline"].includes(S)||M.getAttribute("contenteditable")==="true")return!0;if(L?.excludeSelectors){for(let d of L.excludeSelectors)if(M.matches(d))return!0}return jt(M,L)},jt=(M,L)=>{let S=[...qt,...L?.excludeClasses||[]],d=M,z=0,$=5;for(;d&&z<=$;){if(S.some(k=>d.classList.contains(k)))return!0;if(d.classList.contains("MuiDialogContent-root"))break;d=d.parentElement,z++}return!1};import{useEffect as mt,useRef as re,useState as bt}from"react";var gt=({containerRef:M,config:L})=>{let S=L.enabled??!0,d=L.threshold??80,z=L.maxDistance??d*2,$=L.onRefresh,[k,D]=bt(0),[P,X]=bt(!1),F=re(0),fe=re(0),q=re(!1),J=re(!1),ne=re(!1),j=re(0),le=re(!1);return mt(()=>{le.current=P},[P]),mt(()=>{let g=M.current;if(!g||!(S&&typeof $=="function"))return;let Me=m=>{let C=m instanceof Element?m:null;for(;C&&C!==g;){if(C instanceof HTMLElement&&C.scrollHeight>C.clientHeight+1&&C.scrollTop>0)return!1;C=C.parentElement}return!0},$e=m=>{q.current=!1,J.current=!1,ne.current=!1,!le.current&&m.touches.length===1&&g.scrollTop===0&&Me(m.target)&&(q.current=!0,F.current=m.touches[0].clientY,fe.current=m.touches[0].clientX)},ee=m=>{if(!q.current||le.current||m.touches.length!==1)return;let C=m.touches[0].clientY-F.current,Pe=m.touches[0].clientX-fe.current;if(!J.current){if(C<=0||g.scrollTop>0){q.current=!1;return}if(C>8&&C>Math.abs(Pe))J.current=!0,ne.current=g.scrollTop<0;else return}!ne.current&&m.cancelable&&m.preventDefault();let pe=Math.min(Math.max(C,0)*.5,z);j.current=pe,D(pe)},G=()=>{if(!q.current||(q.current=!1,!J.current))return;J.current=!1,ne.current=!1;let m=j.current;j.current=0,m>=d&&!le.current?(X(!0),D(d),Promise.resolve().then(()=>$()).catch(()=>{}).finally(()=>{X(!1),D(0)})):D(0)};return g.addEventListener("touchstart",$e,{passive:!0}),g.addEventListener("touchmove",ee,{passive:!1}),g.addEventListener("touchend",G,{passive:!0}),g.addEventListener("touchcancel",G,{passive:!0}),()=>{g.removeEventListener("touchstart",$e),g.removeEventListener("touchmove",ee),g.removeEventListener("touchend",G),g.removeEventListener("touchcancel",G)}},[M,S,$,d,z]),{pullDistance:k,isRefreshing:P,pullProgress:Math.min(k/d,1),pullThreshold:d}};import{useEffect as Gt,useState as Kt}from"react";function vt(){let[M,L]=Kt(()=>typeof window>"u"||typeof window.matchMedia!="function"?!1:window.matchMedia("(pointer: coarse)").matches);return Gt(()=>{if(typeof window>"u"||typeof window.matchMedia!="function")return;let S=window.matchMedia("(pointer: coarse)"),d=z=>L(z.matches);return L(S.matches),typeof S.addEventListener=="function"?(S.addEventListener("change",d),()=>S.removeEventListener("change",d)):(S.addListener(d),()=>S.removeListener(d))},[]),M}import{jsx as H,jsxs as Ze}from"react/jsx-runtime";var eo={},to={},oo={},ro={},no={},lo={},io=Vt(({className:M="",style:L={},containerStyle:S={},contentStyle:d={},children:z,onScroll:$,thumb:k=eo,track:D=to,arrows:P=oo,dragScroll:X=ro,autoHide:F=no,pullToRefresh:fe=lo,showScrollbar:q=!0,showHorizontalScrollbar:J=!0,detectInnerScroll:ne=!1,scrollTopFab:j=!1},le)=>{let g=vt(),ie=g?!1:q,Me=g?!1:J,ee=`os-${Jt().replace(/[^a-zA-Z0-9_-]/g,"")}`,G=j!==!1&&j!=null,m=typeof j=="object"?j:{},C=m.threshold??200,Pe=m.position??"right",pe=m.offset??16,xt=m.background??"#1976d2",wt=m.color??"#ffffff",[We,Tt]=p(!1),Et=O({});A(()=>{Et.current={children:z,onScroll:$,showScrollbar:ie,showHorizontalScrollbar:Me,thumb:k,track:D,arrows:P,dragScroll:X,autoHide:F}});let Oe=O(null),i=O(null),he=O(null),me=O(null),Mt=O(null),B=O(null),{pullDistance:Ae,isRefreshing:Se,pullProgress:ze}=gt({containerRef:i,config:fe}),Qe=fe.indicatorColor??"#1976d2",St=Ae>0||Se,[Ce,w]=p(!1),[_,Je]=p(!1),[et,tt]=p(!1),[Fe,Ct]=p({y:0,scrollTop:0}),[be,ot]=p(0),[Ht,Ne]=p(0),[ae,rt]=p(!1),[nt,lt]=p(!1),[U,it]=p(!1),[Be,Lt]=p({x:0,scrollLeft:0}),[_e,at]=p(0),[Ue,st]=p(0),[kt,ct]=p(!1),se=O(!1),[K,ut]=p(!1),[ge,Dt]=p({x:0,y:0,scrollTop:0,scrollLeft:0}),[ao,so]=p(null),[He,Le]=p(null),[co,Rt]=p(!1),[It,$t]=p(0),ve=O(null),[dt,ft]=p(!1),ye=O(null),te=O(null),oe=O(null),T=Ee(()=>{let e=k.color??"#606060";return{width:k.width??8,minHeight:k.minHeight??50,radius:k.radius??(k.width??8)/2,color:e,opacity:k.opacity??.6,hoverColor:k.hoverColor??e,hoverOpacity:k.hoverOpacity??1}},[k]),n=Ee(()=>({width:D.width??16,color:D.color??"rgba(128, 128, 128, 0.1)",visible:D.visible??!0,alignment:D.alignment??"outside",radius:D.radius??T.radius??4,margin:D.margin??4,overflowX:D.overflowX??!0,overflowY:D.overflowY??!0}),[D,T.radius]),N=Ee(()=>{let e=P.color??"#808080";return{visible:P.visible??!1,step:P.step??50,color:e,opacity:P.opacity??.6,hoverColor:P.hoverColor??e,hoverOpacity:P.hoverOpacity??1}},[P]),xe=Ee(()=>({enabled:g?!1:X.enabled??!0,excludeClasses:X.excludeClasses??[],excludeSelectors:X.excludeSelectors??[]}),[X,g]),a=Ee(()=>({enabled:F.enabled??!0,delay:F.delay??1500,delayOnWheel:F.delayOnWheel??700,initialDelay:F.initialDelay??200}),[F]),[ce,Pt]=p(()=>(F.initialDelay??200)>0),v=T.width,Wt=n.width,Ye=T.minHeight,Y=N.visible,ke=N.step,W=h(()=>{if(!i.current)return;let e=document.activeElement;e&&i.current.contains(e)&&e!==i.current||i.current.focus()},[]);Zt(le,()=>({getScrollContainer:()=>i.current,scrollTo:e=>{i.current&&i.current.scrollTo(e)},get scrollTop(){return i.current?.scrollTop||0},get scrollHeight(){return i.current?.scrollHeight||0},get clientHeight(){return i.current?.clientHeight||0}}),[]);let u=h(()=>{if(B.current){let t=B.current;if(document.contains(t)&&(t.scrollHeight>t.clientHeight+2||t.scrollWidth>t.clientWidth+2))return t;B.current=null}if(!i.current)return null;if(i.current.scrollHeight>i.current.clientHeight+2||i.current.scrollWidth>i.current.clientWidth+2)return B.current=i.current,i.current;if(!ne)return null;let e=i.current.querySelectorAll('[data-virtuoso-scroller], [style*="overflow"], .virtuoso-scroller, [style*="overflow: auto"], [style*="overflow:auto"]');for(let t of e){let o=t;if(o!==i.current&&o.classList.contains("overlay-scrollbar-container"))continue;let r=o.parentElement,l=!1;for(;r&&r!==i.current;){if(r.classList.contains("overlay-scrollbar-container")&&r!==i.current){l=!0;break}r=r.parentElement}if(!l&&(o.scrollHeight>o.clientHeight+2||o.scrollWidth>o.clientWidth+2))return B.current=o,o}return null},[]),V=h(()=>u()!==null,[u]),y=h(()=>{ye.current&&(clearTimeout(ye.current),ye.current=null)},[]),De=h(()=>{te.current&&(clearTimeout(te.current),te.current=null)},[]),pt=h(()=>{oe.current&&(clearTimeout(oe.current),oe.current=null)},[]),Ot=h(()=>{De(),!(_||U||K||se.current)&&(y(),w(!1))},[y,De,_,U,K]),b=h(e=>{a.enabled&&(y(),ye.current=setTimeout(()=>{w(!1),ye.current=null},e))},[y,a.enabled]),c=h(()=>{let e=u()??i.current;if(!e){w(!1),rt(!1),ct(!1),y();return}!a.enabled&&!ce&&(w(!0),y());let t=e.clientHeight,o=e.scrollHeight,r=e.scrollTop,l=e.clientWidth,s=e.scrollWidth,x=e.scrollLeft,E=o-t>0,f=s-l>0,ue=E||f;rt(E),ct(f),ue||(w(!1),y());let we=0,I=0;if(Oe.current){let Z=window.getComputedStyle(Oe.current),Q=parseFloat(Z.paddingTop)||0;I=parseFloat(Z.paddingBottom)||0,we=Q+I,$t(I)}if(E){let Z=Y?v*2+n.margin*4:n.margin*2,Q=t-Z+we,Re=t/o,de=Math.max(Q*Re,Ye),ht=o-t,Yt=Q-de,Xt=ht>0?r/ht*Yt:0;ot(de),Ne(Xt)}else ot(0),Ne(0);let Te=s-l;if(Te>0){let Z=l/s,Q=Math.max(l*Z,50),Re=l-Q,de=Te>0?x/Te*Re:0;at(Q),st(de)}else at(0),st(0)},[u,y,Y,v,Ye,a.enabled,ce]),At=h(e=>{e.preventDefault(),e.stopPropagation();let t=u();t&&(Je(!0),Ct({y:e.clientY,scrollTop:t.scrollTop}),y(),w(!0),W())},[u,y,W]),Xe=h(e=>{if(!_)return;let t=u();if(!t)return;let o=t.clientHeight,l=t.scrollHeight-o,s=e.clientY-Fe.y,x=o-be,E=s/x*l,f=Math.max(0,Math.min(l,Fe.scrollTop+E));t.scrollTop=f,c()},[_,Fe,be,c,u]),qe=h(()=>{Je(!1),V()&&b(a.delay)},[V,b,a.delay]),zt=h(e=>{if(!me.current)return;let o=me.current.getBoundingClientRect(),r=e.clientY-o.top,l=u();if(!l)return;let s=l.clientHeight,x=l.scrollHeight,f=r/s*(x-s);l.scrollTop=Math.max(0,Math.min(x-s,f)),c(),w(!0),b(a.delay),W()},[c,b,a.delay,u,W]),Ft=h(e=>{if(e.preventDefault(),e.stopPropagation(),!i.current)return;let t=Math.max(0,i.current.scrollTop-ke);i.current.scrollTop=t,c(),w(!0),b(a.delay),W()},[c,b,ke,a.delay,W]),Nt=h(e=>{if(e.preventDefault(),e.stopPropagation(),!i.current||!he.current)return;let t=i.current,r=he.current.scrollHeight-t.clientHeight,l=Math.min(r,t.scrollTop+ke);t.scrollTop=l,c(),w(!0),b(a.delay),W()},[c,b,ke,a.delay,W]),Bt=h(e=>{e.preventDefault(),e.stopPropagation();let t=u();t&&(it(!0),Lt({x:e.clientX,scrollLeft:t.scrollLeft}),y(),w(!0),W())},[u,y,W]),je=h(e=>{if(!U)return;let t=u();if(!t)return;let o=t.clientWidth,l=t.scrollWidth-o,s=e.clientX-Be.x,x=o-_e,E=s/x*l,f=Math.max(0,Math.min(l,Be.scrollLeft+E));t.scrollLeft=f,c()},[U,Be,_e,c,u]),Ge=h(()=>{it(!1),V()&&b(a.delay)},[V,b,a.delay]),_t=h(e=>{if(!me.current)return;let o=me.current.getBoundingClientRect(),r=e.clientX-o.left,l=u();if(!l)return;let s=l.clientWidth,x=l.scrollWidth,f=r/s*(x-s);l.scrollLeft=Math.max(0,Math.min(x-s,f)),c(),w(!0),b(a.delay),W()},[c,b,a.delay,u,W]),Ut=h(e=>{if(!xe.enabled||e.defaultPrevented)return;let t=e.target,o=i.current;if(!o||!o.contains(t)||Ie(t,xe)||e.button!==0)return;let r=u();r&&(r.scrollHeight<=r.clientHeight&&r.scrollWidth<=r.clientWidth||(e.preventDefault(),se.current=!0,Dt({x:e.clientX,y:e.clientY,scrollTop:r.scrollTop,scrollLeft:r.scrollLeft||0}),y()))},[xe,Ie,u,y]),Ke=h(e=>{if(!se.current&&!K)return;let t=u();if(!t)return;let o=ge.x-e.clientX,r=ge.y-e.clientY;if(Math.abs(r)<5&&Math.abs(o)<5)return;se.current&&(se.current=!1,ut(!0)),w(!0);let l=Math.max(0,Math.min(t.scrollHeight-t.clientHeight,ge.scrollTop+r)),s=Math.max(0,Math.min(t.scrollWidth-t.clientWidth,ge.scrollLeft+o));t.scrollTop=l,t.scrollLeft=s,c()},[K,ge,u,c]),Ve=h(()=>{let e=K;se.current=!1,ut(!1),e&&V()&&b(a.delay)},[K,V,b,a.delay]);A(()=>{let e=s=>{if(c(),G){let E=s.target?.scrollTop??0;Tt(E>C)}if(ce){$&&$(s);return}y(),w(!0),pt();let x=dt?a.delayOnWheel:a.delay;b(x),$&&$(s)},t=()=>{ft(!0),ve.current&&clearTimeout(ve.current),ve.current=setTimeout(()=>{ft(!1)},300),pt(),oe.current=setTimeout(()=>{w(!0),oe.current=null,b(a.delayOnWheel)},50)},o=[],r=u();r&&o.push(r);let l=i.current;return l&&!r&&(o.push(l),l.querySelectorAll('[data-virtuoso-scroller], [style*="overflow"], .virtuoso-scroller, [style*="overflow: auto"], [style*="overflow:auto"]').forEach(x=>{let E=x;if(E!==l&&E.classList.contains("overlay-scrollbar-container"))return;let f=E.parentElement;for(;f&&f!==l;){if(f.classList.contains("overlay-scrollbar-container")&&f!==l)return;f=f.parentElement}o.push(E)})),o.forEach(s=>{s.addEventListener("scroll",e,{passive:!0}),s.addEventListener("wheel",t,{passive:!0})}),()=>{o.forEach(s=>{s.removeEventListener("scroll",e),s.removeEventListener("wheel",t)}),ve.current&&clearTimeout(ve.current),oe.current&&clearTimeout(oe.current)}},[u,c,$,y,b,a,dt,ce,G,C]),A(()=>{let e=o=>{let r=o.target;if(o.defaultPrevented||r instanceof Element&&Ie(r,xe))return;let l=u();if(!l)return;let{key:s}=o,{scrollTop:x,scrollHeight:E,clientHeight:f}=l,ue=E-f,we=50,I=null;switch(s){case"ArrowUp":o.preventDefault(),I=Math.max(0,x-we);break;case"ArrowDown":o.preventDefault(),I=Math.min(ue,x+we);break;case"PageUp":o.preventDefault(),I=Math.max(0,x-f);break;case"PageDown":o.preventDefault(),I=Math.min(ue,x+f);break;case"Home":o.preventDefault(),I=0;break;case"End":o.preventDefault(),I=ue;break;default:return}if(I!==null){let Te=I/ue,Z=Y?v*2+n.margin*4:n.margin*2,de=(f-Z-be)*Te;Ne(de),l.scrollTop=I,y(),w(!0),b(a.delay)}},t=i.current;if(t)return t.addEventListener("keydown",e),()=>{t.removeEventListener("keydown",e)}},[u,Y,v,n.margin,be,y,b,a.delay,xe]),A(()=>(document.addEventListener("mousemove",Ke),document.addEventListener("mouseup",Ve),()=>{document.removeEventListener("mousemove",Ke),document.removeEventListener("mouseup",Ve)}),[K,Ke,Ve]),A(()=>{if(_)return document.addEventListener("mousemove",Xe),document.addEventListener("mouseup",qe),()=>{document.removeEventListener("mousemove",Xe),document.removeEventListener("mouseup",qe)}},[_,Xe,qe]),A(()=>{if(U)return document.addEventListener("mousemove",je),document.addEventListener("mouseup",Ge),()=>{document.removeEventListener("mousemove",je),document.removeEventListener("mouseup",Ge)}},[U,je,Ge]),A(()=>{c();let e=setTimeout(()=>{c()},100);return()=>clearTimeout(e)},[c]),Qt(()=>{Rt(!0),c(),!a.enabled&&!ce&&V()&&w(!0)},[V,c,a.enabled,ce]),A(()=>{if(a.initialDelay>0){let e=setTimeout(()=>{Pt(!1)},a.initialDelay);return()=>clearTimeout(e)}},[a.initialDelay]),A(()=>{let e=new ResizeObserver(()=>{c()}),t=[];return i.current&&t.push(i.current),he.current&&t.push(he.current),B.current&&document.contains(B.current)&&t.push(B.current),t.forEach(o=>{e.observe(o)}),()=>e.disconnect()},[c]),A(()=>{if(!i.current)return;let e=new MutationObserver(()=>{B.current=null,c()});return e.observe(i.current,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["style"]}),()=>e.disconnect()},[c]);let R=Math.max(Wt,v);return A(()=>{let e="overlay-scrollbar-shared";if(document.getElementById(e))return;let t=document.createElement("style");t.id=e,t.textContent=`
|
|
1
|
+
import{useRef as O,useEffect as A,useState as h,useCallback as m,useMemo as Me,forwardRef as Zt,useImperativeHandle as Qt,useLayoutEffect as Jt,useId as eo}from"react";var jt=["editor","textarea","input","select","textfield","form-control","contenteditable","MuiInputBase-input","MuiSelect-select","MuiOutlinedInput-input","MuiFilledInput-input","MuiInput-input","MuiFormControl-root","MuiTextField-root","MuiSelect-root","MuiOutlinedInput-root","MuiFilledInput-root","MuiInput-root","MuiAutocomplete-input","MuiDatePicker-input","MuiSlider-thumb","MuiSlider-rail","MuiSlider-track","MuiSlider-mark","MuiSlider-markLabel","MuiSlider-root","MuiSlider-colorPrimary","MuiSlider-sizeMedium","MuiIconButton-root","MuiButton-root","MuiButtonBase-root","MuiTouchRipple-root","MuiCheckbox-root","MuiRadio-root","MuiSwitch-root","PrivateSwitchBase-root","ant-input","ant-input-affix-wrapper","ant-input-group-addon","ant-input-number","ant-input-number-handler","ant-select","ant-select-selector","ant-select-selection-search","ant-select-dropdown","ant-cascader","ant-cascader-input","ant-picker","ant-picker-input","ant-time-picker","ant-calendar-picker","ant-slider","ant-slider-track","ant-slider-handle","ant-switch","ant-checkbox","ant-checkbox-wrapper","ant-radio","ant-radio-wrapper","ant-rate","ant-upload","ant-upload-drag","ant-form-item","ant-form-item-control","ant-btn","ant-dropdown","ant-dropdown-trigger","ant-menu","ant-menu-item","ant-tooltip","ant-popover","ant-modal","ant-drawer","ant-tree-select","ant-auto-complete","ant-mentions","ant-transfer","ui-input","ui-textarea","ui-select","ui-select-trigger","ui-select-content","ui-select-item","ui-button","ui-checkbox","ui-radio-group","ui-switch","ui-slider","ui-range-slider","ui-calendar","ui-date-picker","ui-combobox","ui-command","ui-command-input","ui-popover","ui-dialog","ui-sheet","ui-dropdown-menu","ui-context-menu","ui-menubar","ui-navigation-menu","ui-form","ui-form-control","ui-form-item","ui-form-field","ui-label","radix-ui","radix-select","radix-dropdown","radix-dialog","radix-popover","radix-accordion","radix-tabs","radix-slider","radix-switch","radix-checkbox","radix-radio","ql-editor","ql-container","ql-toolbar","ql-picker","ql-picker-label","ql-picker-options","ql-formats","ql-snow","ql-bubble","quill","quilleditor","monaco-editor","monaco-editor-background","view-lines","decorationsOverviewRuler","monaco-scrollable-element","CodeMirror","CodeMirror-code","CodeMirror-lines","CodeMirror-scroll","CodeMirror-sizer","cm-editor","cm-focused","cm-content","tox-editor-container","tox-editor-header","tox-edit-area","tox-tinymce","mce-content-body","ck-editor","ck-content","ck-toolbar","ck-editor__editable","ck-widget","slate-editor","slate-content","DraftEditor-root","DraftEditor-editorContainer","public-DraftEditor-content","ehfuse-editor","ehfuse-editor-wrapper","ehfuse-editor-content","ehfuse-toolbar","ehfuse-toolbar-group","ehfuse-cursor","text-editor","rich-text-editor","wysiwyg","ace_editor","ace_content"],$e=(E,L)=>{if(E instanceof HTMLElement&&E.isContentEditable||E.closest('[role="textbox"],[role="searchbox"]'))return!0;let S=E.tagName.toLowerCase();if(S==="input"){let d=(E.type||"text").toLowerCase();return!["button","submit","reset","image","hidden"].includes(d)}if(["textarea","select","button"].includes(S)||["svg","path","circle","rect","line","polygon","polyline"].includes(S)||E.getAttribute("contenteditable")==="true")return!0;if(L?.excludeSelectors){for(let d of L.excludeSelectors)if(E.matches(d))return!0}return Gt(E,L)},Gt=(E,L)=>{let S=[...jt,...L?.excludeClasses||[]],d=E,z=0,$=5;for(;d&&z<=$;){if(S.some(k=>d.classList.contains(k)))return!0;if(d.classList.contains("MuiDialogContent-root"))break;d=d.parentElement,z++}return!1};import{useEffect as bt,useRef as re,useState as gt}from"react";var vt=({containerRef:E,config:L})=>{let S=L.enabled??!0,d=L.threshold??80,z=L.maxDistance??d*2,$=L.onRefresh,[k,D]=gt(0),[P,X]=gt(!1),F=re(0),fe=re(0),q=re(!1),J=re(!1),ne=re(!1),j=re(0),le=re(!1);return bt(()=>{le.current=P},[P]),bt(()=>{let g=E.current;if(!g||!(S&&typeof $=="function"))return;let Ee=f=>{let C=f instanceof Element?f:null;for(;C&&C!==g;){if(C instanceof HTMLElement&&C.scrollHeight>C.clientHeight+1&&C.scrollTop>0)return!1;C=C.parentElement}return!0},Pe=f=>{q.current=!1,J.current=!1,ne.current=!1,!le.current&&f.touches.length===1&&g.scrollTop===0&&Ee(f.target)&&(q.current=!0,F.current=f.touches[0].clientY,fe.current=f.touches[0].clientX)},ee=f=>{if(!q.current||le.current||f.touches.length!==1)return;let C=f.touches[0].clientY-F.current,We=f.touches[0].clientX-fe.current;if(!J.current){if(C<=0||g.scrollTop>0){q.current=!1;return}if(C>8&&C>Math.abs(We))J.current=!0,ne.current=g.scrollTop<0;else return}!ne.current&&f.cancelable&&f.preventDefault();let pe=Math.min(Math.max(C,0)*.5,z);j.current=pe,D(pe)},G=()=>{if(!q.current||(q.current=!1,!J.current))return;J.current=!1,ne.current=!1;let f=j.current;j.current=0,f>=d&&!le.current?(X(!0),D(d),Promise.resolve().then(()=>$()).catch(()=>{}).finally(()=>{X(!1),D(0)})):D(0)};return g.addEventListener("touchstart",Pe,{passive:!0}),g.addEventListener("touchmove",ee,{passive:!1}),g.addEventListener("touchend",G,{passive:!0}),g.addEventListener("touchcancel",G,{passive:!0}),()=>{g.removeEventListener("touchstart",Pe),g.removeEventListener("touchmove",ee),g.removeEventListener("touchend",G),g.removeEventListener("touchcancel",G)}},[E,S,$,d,z]),{pullDistance:k,isRefreshing:P,pullProgress:Math.min(k/d,1),pullThreshold:d}};import{useEffect as Kt,useState as Vt}from"react";function yt(){let[E,L]=Vt(()=>typeof window>"u"||typeof window.matchMedia!="function"?!1:window.matchMedia("(pointer: coarse)").matches);return Kt(()=>{if(typeof window>"u"||typeof window.matchMedia!="function")return;let S=window.matchMedia("(pointer: coarse)"),d=z=>L(z.matches);return L(S.matches),typeof S.addEventListener=="function"?(S.addEventListener("change",d),()=>S.removeEventListener("change",d)):(S.addListener(d),()=>S.removeListener(d))},[]),E}import{jsx as H,jsxs as Qe}from"react/jsx-runtime";var to={},oo={},ro={},no={},lo={},io={},ao=Zt(({className:E="",style:L={},containerStyle:S={},contentStyle:d={},children:z,onScroll:$,thumb:k=to,track:D=oo,arrows:P=ro,dragScroll:X=no,autoHide:F=lo,pullToRefresh:fe=io,showScrollbar:q=!0,showHorizontalScrollbar:J=!0,detectInnerScroll:ne=!1,scrollTopFab:j=!1},le)=>{let g=yt(),ie=g?!1:q,Ee=g?!1:J,ee=`os-${eo().replace(/[^a-zA-Z0-9_-]/g,"")}`,G=j!==!1&&j!=null,f=typeof j=="object"?j:{},C=f.threshold??200,We=f.position??"right",pe=f.offset??16,wt=f.background??"#1976d2",Tt=f.color??"#ffffff",Se=f.size??48,[Oe,Mt]=h(!1),Et=O({});A(()=>{Et.current={children:z,onScroll:$,showScrollbar:ie,showHorizontalScrollbar:Ee,thumb:k,track:D,arrows:P,dragScroll:X,autoHide:F}});let Ae=O(null),i=O(null),he=O(null),me=O(null),St=O(null),B=O(null),{pullDistance:ze,isRefreshing:Ce,pullProgress:Fe}=vt({containerRef:i,config:fe}),Je=fe.indicatorColor??"#1976d2",Ct=ze>0||Ce,[He,w]=h(!1),[_,et]=h(!1),[tt,ot]=h(!1),[Ne,Ht]=h({y:0,scrollTop:0}),[be,rt]=h(0),[Lt,Be]=h(0),[ae,nt]=h(!1),[lt,it]=h(!1),[U,at]=h(!1),[_e,kt]=h({x:0,scrollLeft:0}),[Ue,st]=h(0),[Ye,ct]=h(0),[Dt,ut]=h(!1),se=O(!1),[K,dt]=h(!1),[ge,Rt]=h({x:0,y:0,scrollTop:0,scrollLeft:0}),[so,co]=h(null),[Le,ke]=h(null),[uo,It]=h(!1),[$t,Pt]=h(0),ve=O(null),[ft,pt]=h(!1),ye=O(null),te=O(null),oe=O(null),T=Me(()=>{let e=k.color??"#606060";return{width:k.width??8,minHeight:k.minHeight??50,radius:k.radius??(k.width??8)/2,color:e,opacity:k.opacity??.6,hoverColor:k.hoverColor??e,hoverOpacity:k.hoverOpacity??1}},[k]),n=Me(()=>({width:D.width??16,color:D.color??"rgba(128, 128, 128, 0.1)",visible:D.visible??!0,alignment:D.alignment??"outside",radius:D.radius??T.radius??4,margin:D.margin??4,overflowX:D.overflowX??!0,overflowY:D.overflowY??!0}),[D,T.radius]),N=Me(()=>{let e=P.color??"#808080";return{visible:P.visible??!1,step:P.step??50,color:e,opacity:P.opacity??.6,hoverColor:P.hoverColor??e,hoverOpacity:P.hoverOpacity??1}},[P]),xe=Me(()=>({enabled:g?!1:X.enabled??!0,excludeClasses:X.excludeClasses??[],excludeSelectors:X.excludeSelectors??[]}),[X,g]),a=Me(()=>({enabled:F.enabled??!0,delay:F.delay??1500,delayOnWheel:F.delayOnWheel??700,initialDelay:F.initialDelay??200}),[F]),[ce,Wt]=h(()=>(F.initialDelay??200)>0),v=T.width,Ot=n.width,Xe=T.minHeight,Y=N.visible,De=N.step,W=m(()=>{if(!i.current)return;let e=document.activeElement;e&&i.current.contains(e)&&e!==i.current||i.current.focus()},[]);Qt(le,()=>({getScrollContainer:()=>i.current,scrollTo:e=>{i.current&&i.current.scrollTo(e)},get scrollTop(){return i.current?.scrollTop||0},get scrollHeight(){return i.current?.scrollHeight||0},get clientHeight(){return i.current?.clientHeight||0}}),[]);let u=m(()=>{if(B.current){let t=B.current;if(document.contains(t)&&(t.scrollHeight>t.clientHeight+2||t.scrollWidth>t.clientWidth+2))return t;B.current=null}if(!i.current)return null;if(i.current.scrollHeight>i.current.clientHeight+2||i.current.scrollWidth>i.current.clientWidth+2)return B.current=i.current,i.current;if(!ne)return null;let e=i.current.querySelectorAll('[data-virtuoso-scroller], [style*="overflow"], .virtuoso-scroller, [style*="overflow: auto"], [style*="overflow:auto"]');for(let t of e){let o=t;if(o!==i.current&&o.classList.contains("overlay-scrollbar-container"))continue;let r=o.parentElement,l=!1;for(;r&&r!==i.current;){if(r.classList.contains("overlay-scrollbar-container")&&r!==i.current){l=!0;break}r=r.parentElement}if(!l&&(o.scrollHeight>o.clientHeight+2||o.scrollWidth>o.clientWidth+2))return B.current=o,o}return null},[]),V=m(()=>u()!==null,[u]),y=m(()=>{ye.current&&(clearTimeout(ye.current),ye.current=null)},[]),Re=m(()=>{te.current&&(clearTimeout(te.current),te.current=null)},[]),ht=m(()=>{oe.current&&(clearTimeout(oe.current),oe.current=null)},[]),At=m(()=>{Re(),!(_||U||K||se.current)&&(y(),w(!1))},[y,Re,_,U,K]),b=m(e=>{a.enabled&&(y(),ye.current=setTimeout(()=>{w(!1),ye.current=null},e))},[y,a.enabled]),c=m(()=>{let e=u()??i.current;if(!e){w(!1),nt(!1),ut(!1),y();return}!a.enabled&&!ce&&(w(!0),y());let t=e.clientHeight,o=e.scrollHeight,r=e.scrollTop,l=e.clientWidth,s=e.scrollWidth,x=e.scrollLeft,M=o-t>0,p=s-l>0,ue=M||p;nt(M),ut(p),ue||(w(!1),y());let we=0,I=0;if(Ae.current){let Z=window.getComputedStyle(Ae.current),Q=parseFloat(Z.paddingTop)||0;I=parseFloat(Z.paddingBottom)||0,we=Q+I,Pt(I)}if(M){let Z=Y?v*2+n.margin*4:n.margin*2,Q=t-Z+we,Ie=t/o,de=Math.max(Q*Ie,Xe),mt=o-t,Xt=Q-de,qt=mt>0?r/mt*Xt:0;rt(de),Be(qt)}else rt(0),Be(0);let Te=s-l;if(Te>0){let Z=l/s,Q=Math.max(l*Z,50),Ie=l-Q,de=Te>0?x/Te*Ie:0;st(Q),ct(de)}else st(0),ct(0)},[u,y,Y,v,Xe,a.enabled,ce]),zt=m(e=>{e.preventDefault(),e.stopPropagation();let t=u();t&&(et(!0),Ht({y:e.clientY,scrollTop:t.scrollTop}),y(),w(!0),W())},[u,y,W]),qe=m(e=>{if(!_)return;let t=u();if(!t)return;let o=t.clientHeight,l=t.scrollHeight-o,s=e.clientY-Ne.y,x=o-be,M=s/x*l,p=Math.max(0,Math.min(l,Ne.scrollTop+M));t.scrollTop=p,c()},[_,Ne,be,c,u]),je=m(()=>{et(!1),V()&&b(a.delay)},[V,b,a.delay]),Ft=m(e=>{if(!me.current)return;let o=me.current.getBoundingClientRect(),r=e.clientY-o.top,l=u();if(!l)return;let s=l.clientHeight,x=l.scrollHeight,p=r/s*(x-s);l.scrollTop=Math.max(0,Math.min(x-s,p)),c(),w(!0),b(a.delay),W()},[c,b,a.delay,u,W]),Nt=m(e=>{if(e.preventDefault(),e.stopPropagation(),!i.current)return;let t=Math.max(0,i.current.scrollTop-De);i.current.scrollTop=t,c(),w(!0),b(a.delay),W()},[c,b,De,a.delay,W]),Bt=m(e=>{if(e.preventDefault(),e.stopPropagation(),!i.current||!he.current)return;let t=i.current,r=he.current.scrollHeight-t.clientHeight,l=Math.min(r,t.scrollTop+De);t.scrollTop=l,c(),w(!0),b(a.delay),W()},[c,b,De,a.delay,W]),_t=m(e=>{e.preventDefault(),e.stopPropagation();let t=u();t&&(at(!0),kt({x:e.clientX,scrollLeft:t.scrollLeft}),y(),w(!0),W())},[u,y,W]),Ge=m(e=>{if(!U)return;let t=u();if(!t)return;let o=t.clientWidth,l=t.scrollWidth-o,s=e.clientX-_e.x,x=o-Ue,M=s/x*l,p=Math.max(0,Math.min(l,_e.scrollLeft+M));t.scrollLeft=p,c()},[U,_e,Ue,c,u]),Ke=m(()=>{at(!1),V()&&b(a.delay)},[V,b,a.delay]),Ut=m(e=>{if(!me.current)return;let o=me.current.getBoundingClientRect(),r=e.clientX-o.left,l=u();if(!l)return;let s=l.clientWidth,x=l.scrollWidth,p=r/s*(x-s);l.scrollLeft=Math.max(0,Math.min(x-s,p)),c(),w(!0),b(a.delay),W()},[c,b,a.delay,u,W]),Yt=m(e=>{if(!xe.enabled||e.defaultPrevented)return;let t=e.target,o=i.current;if(!o||!o.contains(t)||$e(t,xe)||e.button!==0)return;let r=u();r&&(r.scrollHeight<=r.clientHeight&&r.scrollWidth<=r.clientWidth||(e.preventDefault(),se.current=!0,Rt({x:e.clientX,y:e.clientY,scrollTop:r.scrollTop,scrollLeft:r.scrollLeft||0}),y()))},[xe,$e,u,y]),Ve=m(e=>{if(!se.current&&!K)return;let t=u();if(!t)return;let o=ge.x-e.clientX,r=ge.y-e.clientY;if(Math.abs(r)<5&&Math.abs(o)<5)return;se.current&&(se.current=!1,dt(!0)),w(!0);let l=Math.max(0,Math.min(t.scrollHeight-t.clientHeight,ge.scrollTop+r)),s=Math.max(0,Math.min(t.scrollWidth-t.clientWidth,ge.scrollLeft+o));t.scrollTop=l,t.scrollLeft=s,c()},[K,ge,u,c]),Ze=m(()=>{let e=K;se.current=!1,dt(!1),e&&V()&&b(a.delay)},[K,V,b,a.delay]);A(()=>{let e=s=>{if(c(),G){let M=s.target?.scrollTop??0;Mt(M>C)}if(ce){$&&$(s);return}y(),w(!0),ht();let x=ft?a.delayOnWheel:a.delay;b(x),$&&$(s)},t=()=>{pt(!0),ve.current&&clearTimeout(ve.current),ve.current=setTimeout(()=>{pt(!1)},300),ht(),oe.current=setTimeout(()=>{w(!0),oe.current=null,b(a.delayOnWheel)},50)},o=[],r=u();r&&o.push(r);let l=i.current;return l&&!r&&(o.push(l),l.querySelectorAll('[data-virtuoso-scroller], [style*="overflow"], .virtuoso-scroller, [style*="overflow: auto"], [style*="overflow:auto"]').forEach(x=>{let M=x;if(M!==l&&M.classList.contains("overlay-scrollbar-container"))return;let p=M.parentElement;for(;p&&p!==l;){if(p.classList.contains("overlay-scrollbar-container")&&p!==l)return;p=p.parentElement}o.push(M)})),o.forEach(s=>{s.addEventListener("scroll",e,{passive:!0}),s.addEventListener("wheel",t,{passive:!0})}),()=>{o.forEach(s=>{s.removeEventListener("scroll",e),s.removeEventListener("wheel",t)}),ve.current&&clearTimeout(ve.current),oe.current&&clearTimeout(oe.current)}},[u,c,$,y,b,a,ft,ce,G,C]),A(()=>{let e=o=>{let r=o.target;if(o.defaultPrevented||r instanceof Element&&$e(r,xe))return;let l=u();if(!l)return;let{key:s}=o,{scrollTop:x,scrollHeight:M,clientHeight:p}=l,ue=M-p,we=50,I=null;switch(s){case"ArrowUp":o.preventDefault(),I=Math.max(0,x-we);break;case"ArrowDown":o.preventDefault(),I=Math.min(ue,x+we);break;case"PageUp":o.preventDefault(),I=Math.max(0,x-p);break;case"PageDown":o.preventDefault(),I=Math.min(ue,x+p);break;case"Home":o.preventDefault(),I=0;break;case"End":o.preventDefault(),I=ue;break;default:return}if(I!==null){let Te=I/ue,Z=Y?v*2+n.margin*4:n.margin*2,de=(p-Z-be)*Te;Be(de),l.scrollTop=I,y(),w(!0),b(a.delay)}},t=i.current;if(t)return t.addEventListener("keydown",e),()=>{t.removeEventListener("keydown",e)}},[u,Y,v,n.margin,be,y,b,a.delay,xe]),A(()=>(document.addEventListener("mousemove",Ve),document.addEventListener("mouseup",Ze),()=>{document.removeEventListener("mousemove",Ve),document.removeEventListener("mouseup",Ze)}),[K,Ve,Ze]),A(()=>{if(_)return document.addEventListener("mousemove",qe),document.addEventListener("mouseup",je),()=>{document.removeEventListener("mousemove",qe),document.removeEventListener("mouseup",je)}},[_,qe,je]),A(()=>{if(U)return document.addEventListener("mousemove",Ge),document.addEventListener("mouseup",Ke),()=>{document.removeEventListener("mousemove",Ge),document.removeEventListener("mouseup",Ke)}},[U,Ge,Ke]),A(()=>{c();let e=setTimeout(()=>{c()},100);return()=>clearTimeout(e)},[c]),Jt(()=>{It(!0),c(),!a.enabled&&!ce&&V()&&w(!0)},[V,c,a.enabled,ce]),A(()=>{if(a.initialDelay>0){let e=setTimeout(()=>{Wt(!1)},a.initialDelay);return()=>clearTimeout(e)}},[a.initialDelay]),A(()=>{let e=new ResizeObserver(()=>{c()}),t=[];return i.current&&t.push(i.current),he.current&&t.push(he.current),B.current&&document.contains(B.current)&&t.push(B.current),t.forEach(o=>{e.observe(o)}),()=>e.disconnect()},[c]),A(()=>{if(!i.current)return;let e=new MutationObserver(()=>{B.current=null,c()});return e.observe(i.current,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["style"]}),()=>e.disconnect()},[c]);let R=Math.max(Ot,v);return A(()=>{let e="overlay-scrollbar-shared";if(document.getElementById(e))return;let t=document.createElement("style");t.id=e,t.textContent=`
|
|
2
2
|
/* ehfuse-editor-content\uB294 \uC2A4\uD06C\uB864\uBC14 \uC720\uC9C0 */
|
|
3
3
|
.overlay-scrollbar-container .ehfuse-editor-content {
|
|
4
4
|
scrollbar-width: thin !important;
|
|
@@ -32,9 +32,12 @@ import{useRef as O,useEffect as A,useState as p,useCallback as h,useMemo as Ee,f
|
|
|
32
32
|
scrollbar-width: thin;
|
|
33
33
|
scrollbar-color: rgba(100, 116, 139, 0.55) transparent;
|
|
34
34
|
}
|
|
35
|
-
${r}::-webkit-scrollbar {
|
|
35
|
+
${r}::-webkit-scrollbar:vertical {
|
|
36
36
|
width: 6px;
|
|
37
|
-
|
|
37
|
+
}
|
|
38
|
+
${r}::-webkit-scrollbar:horizontal {
|
|
39
|
+
height: 0;
|
|
40
|
+
display: none;
|
|
38
41
|
}
|
|
39
42
|
${r}::-webkit-scrollbar-track {
|
|
40
43
|
background: transparent;
|
|
@@ -53,5 +56,5 @@ import{useRef as O,useEffect as A,useState as p,useCallback as h,useMemo as Ee,f
|
|
|
53
56
|
height: 0 !important;
|
|
54
57
|
}
|
|
55
58
|
${r}::-webkit-scrollbar-track { display: none !important; }
|
|
56
|
-
${r}::-webkit-scrollbar-thumb { display: none !important; }`,document.head.appendChild(o),()=>{document.getElementById(e)?.remove()}},[g,ee]),
|
|
59
|
+
${r}::-webkit-scrollbar-thumb { display: none !important; }`,document.head.appendChild(o),()=>{document.getElementById(e)?.remove()}},[g,ee]),Qe("div",{ref:Ae,className:`overlay-scrollbar-wrapper ${E}`,onMouseLeave:At,style:{display:"flex",flexDirection:"column",position:"relative",minHeight:0,height:"100%",flex:"1 1 0%",overflow:"visible",...L},children:[Ct&&H("div",{className:"overlay-scrollbar-pull-indicator",style:{position:"absolute",top:0,left:"50%",transform:`translate(-50%, ${ze-56}px)`,transition:Ce?"transform 0.15s ease-out":ze===0?"transform 0.2s ease-out":"none",width:48,height:48,borderRadius:"50%",background:"#ffffff",boxShadow:"0 2px 8px rgba(0, 0, 0, 0.25)",display:"flex",alignItems:"center",justifyContent:"center",zIndex:1001,pointerEvents:"none",opacity:Ce?1:Math.min(Fe*1.5,1)},children:Ce?H("svg",{width:"28",height:"28",viewBox:"0 0 24 24",style:{animation:"overlay-scrollbar-ptr-spin 0.8s linear infinite"},children:H("circle",{cx:"12",cy:"12",r:"9",fill:"none",stroke:Je,strokeWidth:"2.5",strokeLinecap:"round",strokeDasharray:"42",strokeDashoffset:"14"})}):H("svg",{width:"28",height:"28",viewBox:"0 0 24 24",style:{transform:`rotate(${Fe*270}deg)`,opacity:Fe>=1?1:.6},children:H("path",{d:"M17.65 6.35A7.958 7.958 0 0 0 12 4c-4.42 0-7.99 3.58-7.99 8s3.57 8 7.99 8c3.73 0 6.84-2.55 7.73-6h-2.08A5.99 5.99 0 0 1 12 18c-3.31 0-6-2.69-6-6s2.69-6 6-6c1.66 0 3.14.69 4.22 1.78L13 11h7V4l-2.35 2.35z",fill:Je})})}),H("div",{ref:i,className:`overlay-scrollbar-container ${ee}`,tabIndex:-1,onMouseDown:Yt,style:{display:"flex",width:"100%",flex:"1 1 auto",minHeight:0,overflow:"auto",outline:"none",userSelect:K?"none":"auto",...S},children:H("div",{ref:he,className:"overlay-scrollbar-content",style:{flex:"1 1 0%",minHeight:0,display:"flex",flexDirection:"column",boxSizing:"border-box",...d},children:z})}),ie&&ae&&(n.overflowY??!0)&&Qe("div",{ref:me,className:"overlay-scrollbar-track",onMouseEnter:()=>{y(),te.current=setTimeout(()=>{w(!0),te.current=null},100)},onMouseLeave:()=>{Re(),_||b(a.delay)},style:{position:"absolute",top:0,right:0,width:`${R}px`,height:"100%",opacity:He?1:0,transition:"opacity 0.2s ease-in-out",cursor:"pointer",zIndex:1e3,pointerEvents:"auto"},children:[n.visible&&H("div",{className:"overlay-scrollbar-track-background",onClick:e=>{e.preventDefault(),e.stopPropagation(),Ft(e)},style:{position:"absolute",top:Y?`${T.width+n.margin*2}px`:`${n.margin}px`,right:n.alignment==="outside"?"0px":`${(R-T.width)/2}px`,width:`${T.width}px`,height:Y?`calc(100% - ${T.width*2+n.margin*4}px)`:`calc(100% - ${n.margin*2}px)`,backgroundColor:n.color,borderRadius:`${n.radius}px`,cursor:"pointer"}}),H("div",{ref:St,className:"overlay-scrollbar-thumb",onMouseDown:zt,onMouseEnter:()=>ot(!0),onMouseLeave:()=>ot(!1),style:{position:"absolute",top:`${(Y?v+n.margin*2:n.margin)+Lt}px`,right:n.alignment==="outside"?"0px":`${(R-v)/2}px`,width:`${v}px`,height:`${Math.max(be,Xe)}px`,backgroundColor:tt||_?T.hoverColor:T.color,opacity:tt||_?T.hoverOpacity:T.opacity,borderRadius:`${T.radius}px`,cursor:"pointer",transition:"background-color 0.2s ease-in-out, opacity 0.2s ease-in-out"}})]}),ie&&ae&&Y&&H("div",{className:"overlay-scrollbar-up-arrow",onClick:Nt,onMouseEnter:()=>ke("up"),onMouseLeave:()=>ke(null),style:{position:"absolute",top:`${n.margin}px`,right:n.alignment==="outside"?"0px":`${(R-v)/2}px`,width:`${v}px`,height:`${v}px`,cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",fontSize:`${Math.max(v*.75,8)}px`,color:Le==="up"?N.hoverColor:N.color,userSelect:"none",zIndex:1001,opacity:He?Le==="up"?N.hoverOpacity:N.opacity:0,transition:"opacity 0.2s ease-in-out, color 0.15s ease-in-out"},children:"\u25B2"}),ie&&ae&&Y&&H("div",{className:"overlay-scrollbar-down-arrow",onClick:Bt,onMouseEnter:()=>ke("down"),onMouseLeave:()=>ke(null),style:{position:"absolute",bottom:`${n.margin}px`,right:n.alignment==="outside"?"0px":`${(R-v)/2}px`,width:`${v}px`,height:`${v}px`,cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",fontSize:`${Math.max(v*.75,8)}px`,color:Le==="down"?N.hoverColor:N.color,userSelect:"none",zIndex:1001,opacity:He?Le==="down"?N.hoverOpacity:N.opacity:0,transition:"opacity 0.2s ease-in-out, color 0.15s ease-in-out"},children:"\u25BC"}),ie&&Ee&&Dt&&(n.overflowX??!0)&&Qe("div",{className:"overlay-scrollbar-horizontal-track",onMouseEnter:()=>{y(),te.current=setTimeout(()=>{w(!0),te.current=null},100)},onMouseLeave:()=>{Re(),U||b(a.delay)},style:{position:"absolute",bottom:`${$t}px`,left:0,width:"100%",height:`${R}px`,opacity:He?1:0,transition:"opacity 0.2s ease-in-out",cursor:"pointer",zIndex:1e3,pointerEvents:"auto"},children:[n.visible&&H("div",{className:"overlay-scrollbar-horizontal-track-background",onClick:e=>{e.preventDefault(),e.stopPropagation(),Ut(e)},style:{position:"absolute",bottom:n.alignment==="outside"?"0px":`${(R-v)/2}px`,left:`${n.margin}px`,right:ae?n.alignment==="outside"?`${R-n.margin}px`:`${R}px`:`${n.margin}px`,height:`${v}px`,backgroundColor:n.color,borderRadius:`${n.radius}px`,cursor:"pointer"}}),H("div",{className:"overlay-scrollbar-horizontal-thumb",onMouseDown:_t,onMouseEnter:()=>it(!0),onMouseLeave:()=>it(!1),style:{position:"absolute",bottom:n.alignment==="outside"?"0px":`${(R-v)/2}px`,left:`${n.margin+Ye}px`,right:ae?n.alignment==="outside"?`${R-n.margin}px`:`${R}px`:"auto",maxWidth:ae?n.alignment==="outside"?`calc(100% - ${n.margin+Ye+R-n.margin}px)`:`calc(100% - ${n.margin+Ye+R}px)`:"none",width:`${Math.max(Ue,50)}px`,height:`${v}px`,backgroundColor:lt||U?T.hoverColor:T.color,opacity:lt||U?T.hoverOpacity:T.opacity,borderRadius:`${T.radius}px`,cursor:"pointer",transition:"background-color 0.2s ease-in-out, opacity 0.2s ease-in-out"}})]}),G&&H("button",{type:"button","aria-label":"\uB9E8 \uC704\uB85C",onClick:()=>i.current?.scrollTo({top:0,behavior:"smooth"}),style:{position:"absolute",[We]:pe,bottom:pe,zIndex:1200,width:Se,height:Se,padding:0,display:"flex",alignItems:"center",justifyContent:"center",border:"none",borderRadius:"50%",backgroundColor:wt,color:Tt,boxShadow:"0 3px 8px rgba(15, 23, 42, 0.28)",cursor:"pointer",opacity:Oe?1:0,transform:Oe?"translateY(0) scale(1)":"translateY(8px) scale(0.9)",pointerEvents:Oe?"auto":"none",transition:"opacity 0.2s ease, transform 0.2s ease"},children:H("svg",{width:Math.round(Se*.5),height:Math.round(Se*.5),viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.4",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:H("polyline",{points:"18 15 12 9 6 15"})})})]})}),xt=ao;export{xt as OverlayScrollbar,xt as default};
|
|
57
60
|
//# sourceMappingURL=index.esm.js.map
|