overlayscrollbars-solid
Version:
OverlayScrollbars for Solid.
3 lines (2 loc) • 2.02 kB
JavaScript
;Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const d=require("solid-js/web"),l=require("solid-js"),p=require("overlayscrollbars"),S=()=>{if(typeof window>"u"){const i=()=>{};return[i,i]}let t,e;const o=window,c=typeof o.requestIdleCallback=="function",a=o.requestAnimationFrame,f=o.cancelAnimationFrame,m=c?o.requestIdleCallback:a,r=c?o.cancelIdleCallback:f,s=()=>{r(t),f(e)};return[(i,n)=>{s(),t=m(c?()=>{s(),e=a(i)}:i,typeof n=="object"?n:{timeout:2233})},s]},g=t=>typeof t=="function",u=t=>g(t)?t():t,b=t=>{let e=null,o,c,a;const[f,m]=S();return l.createRenderEffect(()=>{var r;a=u((r=u(t))==null?void 0:r.defer)}),l.createRenderEffect(()=>{var r;o=u((r=u(t))==null?void 0:r.options),p.OverlayScrollbars.valid(e)&&e.options(o||{},!0)}),l.createRenderEffect(()=>{var r;c=u((r=u(t))==null?void 0:r.events),p.OverlayScrollbars.valid(e)&&e.on(c||{},!0)}),l.onCleanup(()=>{m(),e==null||e.destroy()}),[r=>{if(p.OverlayScrollbars.valid(e))return e;const s=()=>e=p.OverlayScrollbars(r,o||{},c||{});a?f(s,a):s()},()=>e]};var C=d.template('<div data-overlayscrollbars-contents="">');const E=t=>{const[e,o]=l.splitProps(l.mergeProps({element:"div"},t),["element","options","events","defer","ref","children"]),[c,a]=l.createSignal(),[f,m]=l.createSignal(),[r,s]=b(e),i=l.children(()=>e.children);return l.createEffect(()=>{const n=c(),v=f();n&&(r(e.element==="body"?{target:n,cancel:{body:null}}:{target:n,elements:{viewport:v,content:v}}),l.onCleanup(()=>{var y;(y=s())==null||y.destroy()}))}),l.createRenderEffect(()=>{const n={osInstance:s,getElement:()=>c()||null};typeof e.ref=="function"?e.ref(n):e.ref=n}),d.createComponent(d.Dynamic,d.mergeProps({get component(){return e.element},"data-overlayscrollbars-initialize":"",ref:a},o,{get children(){return d.memo(()=>e.element==="body")()?i():(()=>{var n=d.getNextElement(C);return d.use(m,n),d.insert(n,i),n})()}}))};exports.OverlayScrollbarsComponent=E;exports.createOverlayScrollbars=b;
//# sourceMappingURL=overlayscrollbars-solid.cjs.map