UNPKG

design-react-kit

Version:

Componenti React per Bootstrap 5

2 lines 4.94 kB
"use strict";var Z=Object.create;var k=Object.defineProperty;var ee=Object.getOwnPropertyDescriptor;var te=Object.getOwnPropertyNames;var ne=Object.getPrototypeOf,re=Object.prototype.hasOwnProperty;var oe=(e,t)=>{for(var n in t)k(e,n,{get:t[n],enumerable:!0})},W=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of te(t))!re.call(e,s)&&s!==n&&k(e,s,{get:()=>t[s],enumerable:!(r=ee(t,s))||r.enumerable});return e};var ie=(e,t,n)=>(n=e!=null?Z(ne(e)):{},W(t||!e||!e.__esModule?k(n,"default",{value:e,enumerable:!0}):n,e)),se=e=>W(k({},"__esModule",{value:!0}),e);var ge={};oe(ge,{useNavScroll:()=>me});module.exports=se(ge);var o=require("react");var I=(e,t)=>{let n;return(...r)=>{clearTimeout(n),n=setTimeout(()=>{e(...r)},t)}};var v=require("react");var $=150,U=({root:e,isHorizontal:t,activeId:n,onChange:r,setForceRecompute:s,updateActiveId:u,hasWindow:f})=>{let[C,x]=(0,v.useState)(1),m=e==null||f&&(t?window.innerWidth<e.clientWidth:window.innerHeight<e.clientHeight),d=(0,v.useCallback)(I(()=>{s(!0)},$),[s]);return(0,v.useEffect)(()=>{if(!f)return;let p=null,w=()=>{setTimeout(()=>{x(t?window.innerWidth:window.innerHeight)},$)},D=b=>{let[g]=b;m||x(t?g.boundingClientRect.width:g.boundingClientRect.height),g.intersectionRatio===0&&n!=null&&(u(null),r&&r({added:null,removed:n}))};return addEventListener("scroll",d),m&&(x(t?window.innerWidth:window.innerHeight),addEventListener("resize",w)),e&&(p=new IntersectionObserver(D),p.observe(e)),()=>{p&&p.disconnect(),removeEventListener("resize",w),removeEventListener("scroll",d)}},[e,t,n,r,m,d,f,u]),{targetSize:C,useViewport:m}};var V=ie(require("crypto")),T=new Uint8Array(256),L=T.length;function _(){return L>T.length-16&&(V.default.randomFillSync(T),L=0),T.slice(L,L+=16)}var B=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;function ce(e){return typeof e=="string"&&B.test(e)}var P=ce;var c=[];for(let e=0;e<256;++e)c.push((e+256).toString(16).substr(1));function le(e,t=0){let n=(c[e[t+0]]+c[e[t+1]]+c[e[t+2]]+c[e[t+3]]+"-"+c[e[t+4]]+c[e[t+5]]+"-"+c[e[t+6]]+c[e[t+7]]+"-"+c[e[t+8]]+c[e[t+9]]+"-"+c[e[t+10]]+c[e[t+11]]+c[e[t+12]]+c[e[t+13]]+c[e[t+14]]+c[e[t+15]]).toLowerCase();if(!P(n))throw TypeError("Stringified UUID is invalid");return n}var q=le;function ue(e,t,n){e=e||{};let r=e.random||(e.rng||_)();if(r[6]=r[6]&15|64,r[8]=r[8]&63|128,t){n=n||0;for(let s=0;s<16;++s)t[n+s]=r[s];return t}return q(r)}var M=ue;var F=!1,E=[],O=class{_callback;id;constructor(t,n){this.id=t,this._callback=n}dispose(){de(this.id)}_execute(t){this._callback(t)}},de=e=>{E=E.filter(t=>t.id!==e)},ae=e=>{if(!(typeof document>"u")){if(E.length||typeof window<"u"&&typeof document<"u"&&document.addEventListener("scroll",t=>{F||(window.requestAnimationFrame(()=>{E.forEach(n=>n.cb._execute(t)),F=!1}),F=!0)}),typeof e=="function"){let t=new O(M(),e);return E.push({id:t.id,cb:t}),t}return console.error("[onDocumentScroll] the provided data has to be of type function"),null}},H=typeof window<"u",fe=50;function pe(e,t){let n=[e],r=n[0];for(;r!=null&&t[r]!=null;)n.push(t[r]),r=t[r];return n.reverse()}function me(e={}){let{onChange:t,root:n,offset:r=50,isHorizontal:s=!1}=e,u=(0,o.useRef)([]),[f,C]=(0,o.useState)(0),[x,m]=(0,o.useState)(!1),[d,p]=(0,o.useState)(null),[w,D]=(0,o.useState)(0),{targetSize:b,useViewport:g}=U({root:n,isHorizontal:s,onChange:t,activeId:d,setForceRecompute:m,updateActiveId:p,hasWindow:H}),h=Math.floor(b*r/100)||1,G=(0,o.useMemo)(()=>{let i=h%2===1?h-1:h,l=b-h;return{root:g?null:n,rootMargin:s?`0px ${-i}px 0px ${-l}px`:`${-i}px 0px ${-l}px 0px`}},[n,b,h,s,g]),R=(0,o.useMemo)(()=>{let i={};for(let{id:l,parent:a}of u.current)i[l]=a;return i},[f]),A=(0,o.useMemo)(()=>d?pe(d,R):[],[d,R]),N=(0,o.useMemo)(()=>new Set(A),[A]);(0,o.useEffect)(()=>{if(!H)return;let i=()=>{let l=null;for(let a=0;a<u.current.length;a++){let y=u.current[a].ref.current,S=y?.getBoundingClientRect().top?y?.getBoundingClientRect().top:0;if(!S)break;if(S>0&&a>0){let z=n?.previousSibling?.firstChild?.parentNode?.querySelectorAll(".it-navscroll-wrapper .nav-link").length||1;D(a/(z/2)*100),l=u.current[a-1].ref.current?.id;break}}l!=null&&(p(l),t&&t({added:l,removed:d}))};ae(i),setTimeout(()=>{i()},300)},[A,p,u,R,t,N,d,G,s,n,x]);let Y=(0,o.useCallback)(I(()=>{C(f+1)},fe),[f]),J=(0,o.useCallback)((i,l={})=>{if(!H)return{id:i,ref:null};let a=i in R,y=a?u.current.find(({id:z})=>z===i):l,S=y&&y.ref||(0,o.createRef)();return a||(u.current=[...u.current,{id:i,ref:S,parent:l.parent}],Y()),{id:i,ref:S}},[f]),X=(0,o.useCallback)(i=>{u.current=u.current.filter(({id:l})=>l!==i)},[f]),j=(0,o.useCallback)(i=>N.has(i),[N]),K=(0,o.useMemo)(()=>w,[w]),Q=(0,o.useCallback)(()=>{let i=u.current.find(({id:l})=>l===d);return i?i.ref:null},[d]);return{percentage:K,register:J,unregister:X,activeIds:A,isActive:j,getActiveRef:Q}}0&&(module.exports={useNavScroll}); //# sourceMappingURL=useNavScroll.cjs.map