@siberiacancode/reactuse 0.3.8 → 0.3.9
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/hooks/useDebounceEffect/useDebounceEffect.cjs +2 -0
- package/dist/cjs/hooks/useDebounceEffect/useDebounceEffect.cjs.map +1 -0
- package/dist/cjs/hooks/useDidUpdate/useDidUpdate.cjs.map +1 -1
- package/dist/cjs/hooks/useSize/useSize.cjs +2 -0
- package/dist/cjs/hooks/useSize/useSize.cjs.map +1 -0
- package/dist/cjs/hooks/useThrottleEffect/useThrottleEffect.cjs +2 -0
- package/dist/cjs/hooks/useThrottleEffect/useThrottleEffect.cjs.map +1 -0
- package/dist/cjs/hooks/useVisibility/useVisibility.cjs +1 -1
- package/dist/cjs/hooks/useVisibility/useVisibility.cjs.map +1 -1
- package/dist/cjs/index.cjs +1 -1
- package/dist/esm/hooks/useDebounceEffect/useDebounceEffect.mjs +19 -0
- package/dist/esm/hooks/useDebounceEffect/useDebounceEffect.mjs.map +1 -0
- package/dist/esm/hooks/useDidUpdate/useDidUpdate.mjs +7 -7
- package/dist/esm/hooks/useDidUpdate/useDidUpdate.mjs.map +1 -1
- package/dist/esm/hooks/useSize/useSize.mjs +31 -0
- package/dist/esm/hooks/useSize/useSize.mjs.map +1 -0
- package/dist/esm/hooks/useThrottleEffect/useThrottleEffect.mjs +22 -0
- package/dist/esm/hooks/useThrottleEffect/useThrottleEffect.mjs.map +1 -0
- package/dist/esm/hooks/useVisibility/useVisibility.mjs +22 -22
- package/dist/esm/hooks/useVisibility/useVisibility.mjs.map +1 -1
- package/dist/esm/index.mjs +100 -96
- package/dist/esm/index.mjs.map +1 -1
- package/dist/types/hooks/sensors.d.ts +1 -1
- package/dist/types/hooks/useDebounceEffect/useDebounceEffect.d.ts +15 -0
- package/dist/types/hooks/useSize/useSize.d.ts +43 -0
- package/dist/types/hooks/useThrottleEffect/useThrottleEffect.d.ts +15 -0
- package/dist/types/hooks/useVisibility/useVisibility.d.ts +1 -1
- package/dist/types/hooks/utilities.d.ts +2 -0
- package/package.json +1 -1
- package/dist/cjs/hooks/useElementSize/useElementSize.cjs +0 -2
- package/dist/cjs/hooks/useElementSize/useElementSize.cjs.map +0 -1
- package/dist/esm/hooks/useElementSize/useElementSize.mjs +0 -30
- package/dist/esm/hooks/useElementSize/useElementSize.mjs.map +0 -1
- package/dist/types/hooks/useElementSize/useElementSize.d.ts +0 -39
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("react"),i=(u,n,s)=>{const c=r.useRef(!0),e=r.useRef(null),t=r.useRef(void 0),f=r.useRef(u),o=r.useRef(n);f.current=u,o.current=n,r.useEffect(()=>{if(c.current){c.current=!1;return}return e.current&&(clearTimeout(e.current),e.current=null),e.current=setTimeout(()=>{t.current=f.current()},o.current),()=>{e.current&&clearTimeout(e.current),e.current=null,typeof t.current=="function"&&t.current()}},s)};exports.useDebounceEffect=i;
|
|
2
|
+
//# sourceMappingURL=useDebounceEffect.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useDebounceEffect.cjs","sources":["../../../../src/hooks/useDebounceEffect/useDebounceEffect.ts"],"sourcesContent":["import type { DependencyList, EffectCallback } from 'react';\n\nimport { useEffect, useRef } from 'react';\n\n/**\n * @name useDebounceEffect\n * @description – Hook that runs an effect after a delay when dependencies change\n * @category Utilities\n * @usage high\n *\n * @param {EffectCallback} effect The effect callback to run\n * @param {number} delay The delay in milliseconds\n * @param {DependencyList} deps The dependencies list for the effect\n *\n * @example\n * useDebounceEffect(() => console.log('effect'), 500, [value]);\n */\nexport const useDebounceEffect = (effect: EffectCallback, delay: number, deps?: DependencyList) => {\n const mountedRef = useRef(true);\n const timeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n const cleanupRef = useRef<ReturnType<EffectCallback>>(undefined);\n const effectRef = useRef(effect);\n const delayRef = useRef(delay);\n\n effectRef.current = effect;\n delayRef.current = delay;\n\n useEffect(() => {\n if (mountedRef.current) {\n mountedRef.current = false;\n return;\n }\n\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n timeoutRef.current = null;\n }\n\n timeoutRef.current = setTimeout(() => {\n cleanupRef.current = effectRef.current();\n }, delayRef.current);\n\n return () => {\n if (timeoutRef.current) clearTimeout(timeoutRef.current);\n timeoutRef.current = null;\n if (typeof cleanupRef.current === 'function') cleanupRef.current();\n };\n }, deps);\n};\n"],"names":["useDebounceEffect","effect","delay","deps","mountedRef","useRef","timeoutRef","cleanupRef","effectRef","delayRef","useEffect"],"mappings":"yGAiBaA,EAAoB,CAACC,EAAwBC,EAAeC,IAA0B,CACjG,MAAMC,EAAaC,EAAAA,OAAO,EAAI,EACxBC,EAAaD,EAAAA,OAA6C,IAAI,EAC9DE,EAAaF,EAAAA,OAAmC,MAAS,EACzDG,EAAYH,EAAAA,OAAOJ,CAAM,EACzBQ,EAAWJ,EAAAA,OAAOH,CAAK,EAE7BM,EAAU,QAAUP,EACpBQ,EAAS,QAAUP,EAEnBQ,EAAAA,UAAU,IAAM,CACd,GAAIN,EAAW,QAAS,CACtBA,EAAW,QAAU,GACrB,MAAA,CAGF,OAAIE,EAAW,UACb,aAAaA,EAAW,OAAO,EAC/BA,EAAW,QAAU,MAGvBA,EAAW,QAAU,WAAW,IAAM,CACpCC,EAAW,QAAUC,EAAU,QAAA,CAAQ,EACtCC,EAAS,OAAO,EAEZ,IAAM,CACPH,EAAW,SAAS,aAAaA,EAAW,OAAO,EACvDA,EAAW,QAAU,KACjB,OAAOC,EAAW,SAAY,cAAuB,QAAA,CAAQ,CACnE,EACCJ,CAAI,CACT"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDidUpdate.cjs","sources":["../../../../src/hooks/useDidUpdate/useDidUpdate.ts"],"sourcesContent":["import type { DependencyList, EffectCallback } from 'react';\n\nimport { useRef } from 'react';\n\nimport { useIsomorphicLayoutEffect } from '../useIsomorphicLayoutEffect/useIsomorphicLayoutEffect';\n\n/**\n * @name useDidUpdate\n * @description – Hook that triggers the effect callback on updates\n * @category Lifecycle\n * @usage necessary\n\n * @param {EffectCallback} effect The effect callback\n * @param {DependencyList} [deps] The dependencies list for the effect\n *\n * @example\n * useDidUpdate(() => console.log(\"effect runs on updates\"), deps);\n */\nexport const useDidUpdate = (effect: EffectCallback, deps?: DependencyList) => {\n const
|
|
1
|
+
{"version":3,"file":"useDidUpdate.cjs","sources":["../../../../src/hooks/useDidUpdate/useDidUpdate.ts"],"sourcesContent":["import type { DependencyList, EffectCallback } from 'react';\n\nimport { useRef } from 'react';\n\nimport { useIsomorphicLayoutEffect } from '../useIsomorphicLayoutEffect/useIsomorphicLayoutEffect';\n\n/**\n * @name useDidUpdate\n * @description – Hook that triggers the effect callback on updates\n * @category Lifecycle\n * @usage necessary\n\n * @param {EffectCallback} effect The effect callback\n * @param {DependencyList} [deps] The dependencies list for the effect\n *\n * @example\n * useDidUpdate(() => console.log(\"effect runs on updates\"), deps);\n */\nexport const useDidUpdate = (effect: EffectCallback, deps?: DependencyList) => {\n const mountedRef = useRef(false);\n\n useIsomorphicLayoutEffect(\n () => () => {\n mountedRef.current = false;\n },\n []\n );\n\n useIsomorphicLayoutEffect(() => {\n if (mountedRef.current) {\n return effect();\n }\n\n mountedRef.current = true;\n return undefined;\n }, deps);\n};\n"],"names":["useDidUpdate","effect","deps","mountedRef","useRef","useIsomorphicLayoutEffect"],"mappings":"iLAkBaA,EAAe,CAACC,EAAwBC,IAA0B,CAC7E,MAAMC,EAAaC,EAAAA,OAAO,EAAK,EAE/BC,EAAAA,0BACE,IAAM,IAAM,CACVF,EAAW,QAAU,EAAA,EAEvB,CAAA,CAAC,EAGHE,EAAAA,0BAA0B,IAAM,CAC9B,GAAIF,EAAW,QACb,OAAOF,EAAA,EAGTE,EAAW,QAAU,EACd,EACND,CAAI,CACT"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("react"),S=require("../useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.cjs"),v=require("../useRefState/useRefState.cjs"),c=require("../../utils/helpers/isTarget.cjs"),b=((...a)=>{const e=a[0],[i,n]=u.useState({width:0,height:0}),[o,g]=u.useState(),r=v.useRefState();return S.useIsomorphicLayoutEffect(()=>{const t=e?c.isTarget.getElement(e):r.current;if(!t)return;const{width:h,height:f}=t.getBoundingClientRect();n({width:h,height:f});const s=new ResizeObserver(()=>{const{width:l,height:d}=t.getBoundingClientRect();n({width:l,height:d})});return g(s),s.observe(t),()=>{s.disconnect()}},[r.state,e&&c.isTarget.getRawElement(e)]),e?{observer:o,value:i}:{observer:o,ref:r,value:i}});exports.useSize=b;
|
|
2
|
+
//# sourceMappingURL=useSize.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useSize.cjs","sources":["../../../../src/hooks/useSize/useSize.ts"],"sourcesContent":["import { useState } from 'react';\n\nimport type { HookTarget } from '@/utils/helpers';\n\nimport { isTarget } from '@/utils/helpers';\n\nimport type { StateRef } from '../useRefState/useRefState';\n\nimport { useIsomorphicLayoutEffect } from '../useIsomorphicLayoutEffect/useIsomorphicLayoutEffect';\nimport { useRefState } from '../useRefState/useRefState';\n\n/** The size value type */\nexport interface UseSizeValue {\n /** The element's height */\n height: number;\n /** The element's width */\n width: number;\n}\n\n/** The use size return type */\nexport interface UseSizeReturn {\n /** The resize observer instance */\n observer?: ResizeObserver;\n /** The current size value */\n value: UseSizeValue;\n}\n\nexport interface UseSize {\n (target: HookTarget): UseSizeReturn;\n\n <Target extends Element>(\n target?: never\n ): {\n ref: StateRef<Target>;\n } & UseSizeReturn;\n}\n\n/**\n * @name useSize\n * @description - Hook that observes and returns the width and height of element\n * @category Elements\n * @usage low\n *\n * @overload\n * @param {HookTarget} target The target element to observe\n * @returns {UseSizeReturn} An object containing the resize observer, current width and height of the element\n *\n * @example\n * const { value, observer } = useSize(ref);\n *\n * @overload\n * @template Target The target element type\n * @returns { { ref: StateRef<Target> } & UseSizeReturn } An object containing the resize observer, current width and height of the element\n *\n * @example\n * const { ref, value, observer } = useSize();\n */\nexport const useSize = ((...params: any[]) => {\n const target = params[0] as HookTarget | undefined;\n const [size, setSize] = useState({ width: 0, height: 0 });\n const [observer, setObserver] = useState<ResizeObserver>();\n const internalRef = useRefState<Element>();\n\n useIsomorphicLayoutEffect(() => {\n const element = (target ? isTarget.getElement(target) : internalRef.current) as Element;\n\n if (!element) return;\n\n const { width, height } = element.getBoundingClientRect();\n setSize({\n width,\n height\n });\n\n const observer = new ResizeObserver(() => {\n const { width, height } = element.getBoundingClientRect();\n setSize({ width, height });\n });\n\n setObserver(observer);\n observer.observe(element);\n\n return () => {\n observer.disconnect();\n };\n }, [internalRef.state, target && isTarget.getRawElement(target)]);\n\n if (target) return { observer, value: size };\n return {\n observer,\n ref: internalRef,\n value: size\n };\n}) as UseSize;\n"],"names":["useSize","params","target","size","setSize","useState","observer","setObserver","internalRef","useRefState","useIsomorphicLayoutEffect","element","isTarget","width","height"],"mappings":"2QAyDaA,GAAW,IAAIC,IAAkB,CAC5C,MAAMC,EAASD,EAAO,CAAC,EACjB,CAACE,EAAMC,CAAO,EAAIC,EAAAA,SAAS,CAAE,MAAO,EAAG,OAAQ,EAAG,EAClD,CAACC,EAAUC,CAAW,EAAIF,WAAA,EAC1BG,EAAcC,EAAAA,YAAA,EA0BpB,OAxBAC,EAAAA,0BAA0B,IAAM,CAC9B,MAAMC,EAAWT,EAASU,EAAAA,SAAS,WAAWV,CAAM,EAAIM,EAAY,QAEpE,GAAI,CAACG,EAAS,OAEd,KAAM,CAAE,MAAAE,EAAO,OAAAC,GAAWH,EAAQ,sBAAA,EAClCP,EAAQ,CACN,MAAAS,EACA,OAAAC,CAAA,CACD,EAED,MAAMR,EAAW,IAAI,eAAe,IAAM,CACxC,KAAM,CAAE,MAAAO,EAAO,OAAAC,CAAAA,EAAWH,EAAQ,sBAAA,EAClCP,EAAQ,CAAE,MAAAS,EAAO,OAAAC,EAAQ,CAAA,CAC1B,EAED,OAAAP,EAAYD,CAAQ,EACpBA,EAAS,QAAQK,CAAO,EAEjB,IAAM,CACXL,EAAS,WAAA,CAAW,CACtB,EACC,CAACE,EAAY,MAAON,GAAUU,EAAAA,SAAS,cAAcV,CAAM,CAAC,CAAC,EAE5DA,EAAe,CAAE,SAAAI,EAAU,MAAOH,CAAA,EAC/B,CACL,SAAAG,EACA,IAAKE,EACL,MAAOL,CAAA,CAEX"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react"),i=(f,s,l)=>{const o=e.useRef(!0),r=e.useRef(void 0),t=e.useRef(null),u=e.useRef(!1),n=e.useRef(f),c=e.useRef(s);n.current=f,c.current=s,e.useEffect(()=>{if(o.current){o.current=!1;return}if(!u.current)return r.current=n.current(),u.current=!0,setTimeout(()=>{u.current=!1,t.current=setTimeout(()=>{r.current=n.current()},c.current)},c.current),()=>{t.current&&clearTimeout(t.current),t.current=null,typeof r.current=="function"&&r.current()}},l)};exports.useThrottleEffect=i;
|
|
2
|
+
//# sourceMappingURL=useThrottleEffect.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useThrottleEffect.cjs","sources":["../../../../src/hooks/useThrottleEffect/useThrottleEffect.ts"],"sourcesContent":["import type { DependencyList, EffectCallback } from 'react';\n\nimport { useEffect, useRef } from 'react';\n\n/**\n * @name useThrottleEffect\n * @description – Hook that runs an effect at most once per delay period when dependencies change\n * @category Utilities\n * @usage medium\n *\n * @param {EffectCallback} effect The effect callback to run\n * @param {number} delay The delay in milliseconds\n * @param {DependencyList} deps The dependencies list for the effect\n *\n * @example\n * useThrottleEffect(() => console.log('effect'), 500, [value]);\n */\nexport const useThrottleEffect = (effect: EffectCallback, delay: number, deps?: DependencyList) => {\n const mountedRef = useRef(true);\n const cleanupRef = useRef<ReturnType<EffectCallback>>(undefined);\n const timeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n const isCalledRef = useRef(false);\n\n const effectRef = useRef(effect);\n const delayRef = useRef(delay);\n\n effectRef.current = effect;\n delayRef.current = delay;\n\n useEffect(() => {\n if (mountedRef.current) {\n mountedRef.current = false;\n return;\n }\n\n if (isCalledRef.current) return;\n\n cleanupRef.current = effectRef.current();\n isCalledRef.current = true;\n\n setTimeout(() => {\n isCalledRef.current = false;\n\n timeoutRef.current = setTimeout(() => {\n cleanupRef.current = effectRef.current();\n }, delayRef.current);\n }, delayRef.current);\n\n return () => {\n if (timeoutRef.current) clearTimeout(timeoutRef.current);\n timeoutRef.current = null;\n if (typeof cleanupRef.current === 'function') cleanupRef.current();\n };\n }, deps);\n};\n"],"names":["useThrottleEffect","effect","delay","deps","mountedRef","useRef","cleanupRef","timeoutRef","isCalledRef","effectRef","delayRef","useEffect"],"mappings":"yGAiBaA,EAAoB,CAACC,EAAwBC,EAAeC,IAA0B,CACjG,MAAMC,EAAaC,EAAAA,OAAO,EAAI,EACxBC,EAAaD,EAAAA,OAAmC,MAAS,EACzDE,EAAaF,EAAAA,OAA6C,IAAI,EAC9DG,EAAcH,EAAAA,OAAO,EAAK,EAE1BI,EAAYJ,EAAAA,OAAOJ,CAAM,EACzBS,EAAWL,EAAAA,OAAOH,CAAK,EAE7BO,EAAU,QAAUR,EACpBS,EAAS,QAAUR,EAEnBS,EAAAA,UAAU,IAAM,CACd,GAAIP,EAAW,QAAS,CACtBA,EAAW,QAAU,GACrB,MAAA,CAGF,GAAI,CAAAI,EAAY,QAEhB,OAAAF,EAAW,QAAUG,EAAU,QAAA,EAC/BD,EAAY,QAAU,GAEtB,WAAW,IAAM,CACfA,EAAY,QAAU,GAEtBD,EAAW,QAAU,WAAW,IAAM,CACpCD,EAAW,QAAUG,EAAU,QAAA,CAAQ,EACtCC,EAAS,OAAO,CAAA,EAClBA,EAAS,OAAO,EAEZ,IAAM,CACPH,EAAW,SAAS,aAAaA,EAAW,OAAO,EACvDA,EAAW,QAAU,KACjB,OAAOD,EAAW,SAAY,cAAuB,QAAA,CAAQ,CACnE,EACCH,CAAI,CACT"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("react"),S=require("../useRefState/useRefState.cjs"),s=require("../../utils/helpers/isTarget.cjs"),T=((...e)=>{const n=s.isTarget(e[0])?e[0]:void 0,t=n?typeof e[1]=="object"?e[1]:{onChange:e[1]}:typeof e[0]=="object"?e[0]:{onChange:e[0]},l=t?.onChange,f=t?.enabled??!0,[g,d]=o.useState(),[i,v]=o.useState(),a=i?.isIntersecting??!1,r=S.useRefState(),b=o.useRef(l);return b.current=l,o.useEffect(()=>{if(!f||!n&&!r.state)return;const y=n?s.isTarget.getElement(n):r.current;if(!y)return;const c=new IntersectionObserver((E,R)=>{const u=E[0];u&&(v(u),b.current?.(u,R))},{...t,root:t?.root?s.isTarget.getElement(t.root):document});return d(c),c.observe(y),()=>{c.disconnect()}},[n&&s.isTarget.getRawElement(n),r.state,t?.rootMargin,t?.threshold,t?.root,f]),n?{observer:g,entry:i,inView:a}:{observer:g,ref:r,entry:i,inView:a}});exports.useVisibility=T;
|
|
2
2
|
//# sourceMappingURL=useVisibility.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useVisibility.cjs","sources":["../../../../src/hooks/useVisibility/useVisibility.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\n\nimport type { HookTarget } from '@/utils/helpers';\n\nimport { isTarget } from '@/utils/helpers';\n\nimport type { StateRef } from '../useRefState/useRefState';\n\nimport { useRefState } from '../useRefState/useRefState';\n\n/** The visibility callback type */\nexport type UseVisibilityCallback = (\n entry: IntersectionObserverEntry,\n observer: IntersectionObserver\n) => void;\n\n/** The visibility options type */\nexport interface UseVisibilityOptions extends Omit<IntersectionObserverInit, 'root'> {\n /** The enabled state of the intersection */\n enabled?: boolean;\n /** The callback to execute when intersection is detected */\n onChange?: UseVisibilityCallback;\n /** The root element to observe */\n root?: HookTarget;\n}\n\n/** The intersection observer return type */\nexport interface UseVisibilityReturn {\n /** The intersection observer entry */\n entry?: IntersectionObserverEntry;\n /** The intersection observer in view */\n inView
|
|
1
|
+
{"version":3,"file":"useVisibility.cjs","sources":["../../../../src/hooks/useVisibility/useVisibility.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\n\nimport type { HookTarget } from '@/utils/helpers';\n\nimport { isTarget } from '@/utils/helpers';\n\nimport type { StateRef } from '../useRefState/useRefState';\n\nimport { useRefState } from '../useRefState/useRefState';\n\n/** The visibility callback type */\nexport type UseVisibilityCallback = (\n entry: IntersectionObserverEntry,\n observer: IntersectionObserver\n) => void;\n\n/** The visibility options type */\nexport interface UseVisibilityOptions extends Omit<IntersectionObserverInit, 'root'> {\n /** The enabled state of the intersection */\n enabled?: boolean;\n /** The callback to execute when intersection is detected */\n onChange?: UseVisibilityCallback;\n /** The root element to observe */\n root?: HookTarget;\n}\n\n/** The intersection observer return type */\nexport interface UseVisibilityReturn {\n /** The intersection observer entry */\n entry?: IntersectionObserverEntry;\n /** The intersection observer in view */\n inView: boolean;\n /** The intersection observer instance */\n observer?: IntersectionObserver;\n}\n\nexport interface UseVisibility {\n <Target extends Element>(\n options?: UseVisibilityOptions,\n target?: never\n ): UseVisibilityReturn & { ref: StateRef<Target> };\n\n (target: HookTarget, options?: UseVisibilityOptions): UseVisibilityReturn;\n\n <Target extends Element>(\n callback: UseVisibilityCallback,\n target?: never\n ): UseVisibilityReturn & { ref: StateRef<Target> };\n\n (target: HookTarget, callback: UseVisibilityCallback): UseVisibilityReturn;\n}\n\n/**\n * @name useVisibility\n * @description - Hook that gives you visibility observer state\n * @category Sensors\n * @usage medium\n *\n * @browserapi IntersectionObserver https://developer.mozilla.org/en-US/docs/Web/API/IntersectionObserver\n *\n * @overload\n * @param {HookTarget} target The target element to detect intersection\n * @param {boolean} [options.enabled=true] The Intersection options\n * @param {((entries: IntersectionEntry[], observer: Intersection) => void) | undefined} [options.onChange] The callback to execute when intersection is detected\n * @param {HookTarget} [options.root=document] The root element to observe\n * @returns {UseVisibilityReturn} An object containing the state\n *\n * @example\n * const { ref, entries, observer } = useVisibility();\n *\n * @overload\n * @template Target The target element\n * @param {boolean} [options.enabled=true] The Intersection options\n * @param {((entries: IntersectionEntry[], observer: Intersection) => void) | undefined} [options.onChange] The callback to execute when intersection is detected\n * @param {HookTarget} [options.root=document] The root element to observe\n * @returns {UseVisibilityReturn & { ref: StateRef<Target> }} A React ref to attach to the target element\n *\n * @example\n * const { entries, observer } = useVisibility(ref);\n *\n * @overload\n * @template Target The target element\n * @param {UseVisibilityCallback} callback The callback to execute when intersection is detected\n * @returns {UseVisibilityReturn & { ref: StateRef<Target> }} A React ref to attach to the target element\n *\n * @example\n * const { ref, entries, observer } = useVisibility(() => console.log('callback'));\n *\n * @overload\n * @param {UseVisibilityCallback} callback The callback to execute when intersection is detected\n * @param {HookTarget} target The target element to detect intersection\n * @returns {UseVisibilityReturn} An object containing the state\n *\n * @example\n * const { entries, observer } = useVisibility(ref, () => console.log('callback'));\n */\nexport const useVisibility = ((...params: any[]) => {\n const target = (isTarget(params[0]) ? params[0] : undefined) as HookTarget | undefined;\n\n const options = (\n target\n ? typeof params[1] === 'object'\n ? params[1]\n : { onChange: params[1] }\n : typeof params[0] === 'object'\n ? params[0]\n : { onChange: params[0] }\n ) as UseVisibilityOptions | undefined;\n\n const callback = options?.onChange;\n const enabled = options?.enabled ?? true;\n\n const [observer, setObserver] = useState<IntersectionObserver>();\n const [entry, setEntry] = useState<IntersectionObserverEntry>();\n const inView = entry?.isIntersecting ?? false;\n\n const internalRef = useRefState<Element>();\n const internalCallbackRef = useRef(callback);\n internalCallbackRef.current = callback;\n\n useEffect(() => {\n if (!enabled || (!target && !internalRef.state)) return;\n\n const element = target ? isTarget.getElement(target) : internalRef.current;\n if (!element) return;\n\n const observer = new IntersectionObserver(\n (entries: IntersectionObserverEntry[], observer: IntersectionObserver) => {\n const firstEntry = entries[0];\n if (firstEntry) {\n setEntry(firstEntry);\n internalCallbackRef.current?.(firstEntry, observer);\n }\n },\n {\n ...options,\n root: options?.root ? (isTarget.getElement(options.root) as Document | Element) : document\n }\n );\n\n setObserver(observer);\n observer.observe(element as Element);\n\n return () => {\n observer.disconnect();\n };\n }, [\n target && isTarget.getRawElement(target),\n internalRef.state,\n options?.rootMargin,\n options?.threshold,\n options?.root,\n enabled\n ]);\n\n if (target) return { observer, entry, inView };\n return {\n observer,\n ref: internalRef,\n entry,\n inView\n };\n}) as UseVisibility;\n"],"names":["useVisibility","params","target","isTarget","options","callback","enabled","observer","setObserver","useState","entry","setEntry","inView","internalRef","useRefState","internalCallbackRef","useRef","useEffect","element","entries","firstEntry"],"mappings":"mMAgGaA,GAAiB,IAAIC,IAAkB,CAClD,MAAMC,EAAUC,EAAAA,SAASF,EAAO,CAAC,CAAC,EAAIA,EAAO,CAAC,EAAI,OAE5CG,EACJF,EACI,OAAOD,EAAO,CAAC,GAAM,SACnBA,EAAO,CAAC,EACR,CAAE,SAAUA,EAAO,CAAC,CAAA,EACtB,OAAOA,EAAO,CAAC,GAAM,SACnBA,EAAO,CAAC,EACR,CAAE,SAAUA,EAAO,CAAC,CAAA,EAGtBI,EAAWD,GAAS,SACpBE,EAAUF,GAAS,SAAW,GAE9B,CAACG,EAAUC,CAAW,EAAIC,WAAA,EAC1B,CAACC,EAAOC,CAAQ,EAAIF,WAAA,EACpBG,EAASF,GAAO,gBAAkB,GAElCG,EAAcC,EAAAA,YAAA,EACdC,EAAsBC,EAAAA,OAAOX,CAAQ,EAsC3C,OArCAU,EAAoB,QAAUV,EAE9BY,EAAAA,UAAU,IAAM,CACd,GAAI,CAACX,GAAY,CAACJ,GAAU,CAACW,EAAY,MAAQ,OAEjD,MAAMK,EAAUhB,EAASC,EAAAA,SAAS,WAAWD,CAAM,EAAIW,EAAY,QACnE,GAAI,CAACK,EAAS,OAEd,MAAMX,EAAW,IAAI,qBACnB,CAACY,EAAsCZ,IAAmC,CACxE,MAAMa,EAAaD,EAAQ,CAAC,EACxBC,IACFT,EAASS,CAAU,EACnBL,EAAoB,UAAUK,EAAYb,CAAQ,EACpD,EAEF,CACE,GAAGH,EACH,KAAMA,GAAS,KAAQD,EAAAA,SAAS,WAAWC,EAAQ,IAAI,EAA2B,QAAA,CACpF,EAGF,OAAAI,EAAYD,CAAQ,EACpBA,EAAS,QAAQW,CAAkB,EAE5B,IAAM,CACXX,EAAS,WAAA,CAAW,CACtB,EACC,CACDL,GAAUC,EAAAA,SAAS,cAAcD,CAAM,EACvCW,EAAY,MACZT,GAAS,WACTA,GAAS,UACTA,GAAS,KACTE,CAAA,CACD,EAEGJ,EAAe,CAAE,SAAAK,EAAU,MAAAG,EAAO,OAAAE,CAAA,EAC/B,CACL,SAAAL,EACA,IAAKM,EACL,MAAAH,EACA,OAAAE,CAAA,CAEJ"}
|
package/dist/cjs/index.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const h=require("./helpers/createContext/createContext.cjs"),I=require("./helpers/createEventEmitter/createEventEmitter.cjs"),O=require("./helpers/createReactiveContext/createReactiveContext.cjs"),v=require("./helpers/createStore/createStore.cjs"),A=require("./hooks/useAsync/useAsync.cjs"),b=require("./hooks/useLockCallback/useLockCallback.cjs"),D=require("./hooks/useMutation/useMutation.cjs"),L=require("./hooks/useOptimistic/useOptimistic.cjs"),M=require("./hooks/useQuery/useQuery.cjs"),_=require("./hooks/useAudio/useAudio.cjs"),B=require("./hooks/useBattery/useBattery.cjs"),N=require("./hooks/useBluetooth/useBluetooth.cjs"),F=require("./hooks/useBroadcastChannel/useBroadcastChannel.cjs"),K=require("./hooks/useClipboard/useClipboard.cjs"),V=require("./hooks/useCopy/useCopy.cjs"),w=require("./hooks/useCssVar/useCssVar.cjs"),U=require("./hooks/useDisplayMedia/useDisplayMedia.cjs"),H=require("./hooks/useDocumentTitle/useDocumentTitle.cjs"),x=require("./hooks/useEventSource/useEventSource.cjs"),W=require("./hooks/useEyeDropper/useEyeDropper.cjs"),z=require("./hooks/useFavicon/useFavicon.cjs"),Q=require("./hooks/useFps/useFps.cjs"),G=require("./hooks/useFullscreen/useFullscreen.cjs"),n=require("./hooks/useGamepad/useGamepad.cjs"),X=require("./hooks/useGeolocation/useGeolocation.cjs"),c=require("./hooks/useMediaControls/useMediaControls.cjs"),Z=require("./hooks/useMemory/useMemory.cjs"),a=require("./hooks/useNetwork/useNetwork.cjs"),j=require("./hooks/useOnline/useOnline.cjs"),J=require("./hooks/useOtpCredential/useOtpCredential.cjs"),Y=require("./hooks/usePermission/usePermission.cjs"),$=require("./hooks/usePictureInPicture/usePictureInPicture.cjs"),ee=require("./hooks/usePointerLock/usePointerLock.cjs"),se=require("./hooks/usePostMessage/usePostMessage.cjs"),ue=require("./hooks/useRaf/useRaf.cjs"),re=require("./hooks/useShare/useShare.cjs"),l=require("./hooks/useSpeechRecognition/useSpeechRecognition.cjs"),te=require("./hooks/useSpeechSynthesis/useSpeechSynthesis.cjs"),oe=require("./hooks/useVibrate/useVibrate.cjs"),ie=require("./hooks/useVirtualKeyboard/useVirtualKeyboard.cjs"),ne=require("./hooks/useWakeLock/useWakeLock.cjs"),ce=require("./hooks/useWebSocket/useWebSocket.cjs"),ae=require("./hooks/useLogger/useLogger.cjs"),le=require("./hooks/useRenderCount/useRenderCount.cjs"),Se=require("./hooks/useRenderInfo/useRenderInfo.cjs"),qe=require("./hooks/useRerender/useRerender.cjs"),de=require("./hooks/useActiveElement/useActiveElement.cjs"),ge=require("./hooks/useAutoScroll/useAutoScroll.cjs"),Te=require("./hooks/useClickOutside/useClickOutside.cjs"),S=require("./hooks/useDoubleClick/useDoubleClick.cjs"),Ee=require("./hooks/useDropZone/useDropZone.cjs"),Re=require("./hooks/useFileDialog/useFileDialog.cjs"),Ce=require("./hooks/useFocus/useFocus.cjs"),q=require("./hooks/useFocusTrap/useFocusTrap.cjs"),Pe=require("./hooks/useHover/useHover.cjs"),me=require("./hooks/useImage/useImage.cjs"),ye=require("./hooks/useLongPress/useLongPress.cjs"),t=require("./hooks/usePaint/usePaint.cjs"),pe=require("./hooks/useRightClick/useRightClick.cjs"),d=require("./hooks/useScript/useScript.cjs"),ke=require("./hooks/useSticky/useSticky.cjs"),fe=require("./hooks/useTextareaAutosize/useTextareaAutosize.cjs"),he=require("./hooks/useTextDirection/useTextDirection.cjs"),Ie=require("./hooks/useFul/useFul.cjs"),Oe=require("./hooks/useLess/useLess.cjs"),ve=require("./hooks/useOnce/useOnce.cjs"),Ae=require("./hooks/useAsyncEffect/useAsyncEffect.cjs"),be=require("./hooks/useDidUpdate/useDidUpdate.cjs"),De=require("./hooks/useIsFirstRender/useIsFirstRender.cjs"),Le=require("./hooks/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.cjs"),Me=require("./hooks/useMount/useMount.cjs"),g=require("./hooks/useShallowEffect/useShallowEffect.cjs"),_e=require("./hooks/useUnmount/useUnmount.cjs"),e=require("./hooks/useBreakpoints/useBreakpoints.cjs"),Be=require("./hooks/useDeviceMotion/useDeviceMotion.cjs"),Ne=require("./hooks/useDeviceOrientation/useDeviceOrientation.cjs"),Fe=require("./hooks/useDevicePixelRatio/useDevicePixelRatio.cjs"),Ke=require("./hooks/useDocumentEvent/useDocumentEvent.cjs"),Ve=require("./hooks/useDocumentVisibility/useDocumentVisibility.cjs"),we=require("./hooks/useElementSize/useElementSize.cjs"),Ue=require("./hooks/useEventListener/useEventListener.cjs"),T=require("./hooks/useHotkeys/useHotkeys.cjs"),He=require("./hooks/useIdle/useIdle.cjs"),xe=require("./hooks/useInfiniteScroll/useInfiniteScroll.cjs"),We=require("./hooks/useIntersectionObserver/useIntersectionObserver.cjs"),ze=require("./hooks/useKeyboard/useKeyboard.cjs"),Qe=require("./hooks/useKeyPress/useKeyPress.cjs"),Ge=require("./hooks/useKeyPressEvent/useKeyPressEvent.cjs"),Xe=require("./hooks/useKeysPressed/useKeysPressed.cjs"),Ze=require("./hooks/useLockScroll/useLockScroll.cjs"),je=require("./hooks/useMeasure/useMeasure.cjs"),Je=require("./hooks/useMediaQuery/useMediaQuery.cjs"),Ye=require("./hooks/useMouse/useMouse.cjs"),$e=require("./hooks/useMutationObserver/useMutationObserver.cjs"),es=require("./hooks/useOrientation/useOrientation.cjs"),ss=require("./hooks/usePageLeave/usePageLeave.cjs"),us=require("./hooks/useParallax/useParallax.cjs"),rs=require("./hooks/usePerformanceObserver/usePerformanceObserver.cjs"),ts=require("./hooks/useResizeObserver/useResizeObserver.cjs"),os=require("./hooks/useScroll/useScroll.cjs"),is=require("./hooks/useScrollIntoView/useScrollIntoView.cjs"),ns=require("./hooks/useScrollTo/useScrollTo.cjs"),E=require("./hooks/useTextSelection/useTextSelection.cjs"),cs=require("./hooks/useVisibility/useVisibility.cjs"),as=require("./hooks/useWindowEvent/useWindowEvent.cjs"),ls=require("./hooks/useWindowFocus/useWindowFocus.cjs"),R=require("./hooks/useWindowScroll/useWindowScroll.cjs"),Ss=require("./hooks/useWindowSize/useWindowSize.cjs"),qs=require("./hooks/useBoolean/useBoolean.cjs"),ds=require("./hooks/useControllableState/useControllableState.cjs"),s=require("./hooks/useCookie/useCookie.cjs"),C=require("./hooks/useCookies/useCookies.cjs"),gs=require("./hooks/useCounter/useCounter.cjs"),Ts=require("./hooks/useDefault/useDefault.cjs"),Es=require("./hooks/useDisclosure/useDisclosure.cjs"),Rs=require("./hooks/useField/useField.cjs"),P=require("./hooks/useHash/useHash.cjs"),Cs=require("./hooks/useList/useList.cjs"),Ps=require("./hooks/useLocalStorage/useLocalStorage.cjs"),ms=require("./hooks/useMap/useMap.cjs"),o=require("./hooks/useMergedRef/useMergedRef.cjs"),ys=require("./hooks/useOffsetPagination/useOffsetPagination.cjs"),ps=require("./hooks/useQueue/useQueue.cjs"),ks=require("./hooks/useRafState/useRafState.cjs"),m=require("./hooks/useRefState/useRefState.cjs"),fs=require("./hooks/useSessionStorage/useSessionStorage.cjs"),hs=require("./hooks/useSet/useSet.cjs"),y=require("./hooks/useStateHistory/useStateHistory.cjs"),Is=require("./hooks/useStep/useStep.cjs"),i=require("./hooks/useStorage/useStorage.cjs"),Os=require("./hooks/useToggle/useToggle.cjs"),r=require("./hooks/useUrlSearchParam/useUrlSearchParam.cjs"),vs=require("./hooks/useUrlSearchParams/useUrlSearchParams.cjs"),As=require("./hooks/useWizard/useWizard.cjs"),bs=require("./hooks/useInterval/useInterval.cjs"),Ds=require("./hooks/useStopwatch/useStopwatch.cjs"),Ls=require("./hooks/useTime/useTime.cjs"),Ms=require("./hooks/useTimeout/useTimeout.cjs"),p=require("./hooks/useTimer/useTimer.cjs"),_s=require("./hooks/useBrowserLanguage/useBrowserLanguage.cjs"),k=require("./hooks/useOperatingSystem/useOperatingSystem.cjs"),Bs=require("./hooks/usePreferredColorScheme/usePreferredColorScheme.cjs"),Ns=require("./hooks/usePreferredContrast/usePreferredContrast.cjs"),Fs=require("./hooks/usePreferredDark/usePreferredDark.cjs"),Ks=require("./hooks/usePreferredLanguages/usePreferredLanguages.cjs"),Vs=require("./hooks/usePreferredReducedMotion/usePreferredReducedMotion.cjs"),ws=require("./hooks/useBatchedCallback/useBatchedCallback.cjs"),Us=require("./hooks/useConst/useConst.cjs"),Hs=require("./hooks/useDebounceCallback/useDebounceCallback.cjs"),xs=require("./hooks/useDebounceState/useDebounceState.cjs"),Ws=require("./hooks/useDebounceValue/useDebounceValue.cjs"),zs=require("./hooks/useEvent/useEvent.cjs"),Qs=require("./hooks/useLastChanged/useLastChanged.cjs"),Gs=require("./hooks/useLatest/useLatest.cjs"),Xs=require("./hooks/usePrevious/usePrevious.cjs"),Zs=require("./hooks/useThrottleCallback/useThrottleCallback.cjs"),js=require("./hooks/useThrottleState/useThrottleState.cjs"),Js=require("./hooks/useThrottleValue/useThrottleValue.cjs"),f=require("./utils/helpers/copy.cjs"),Ys=require("./utils/helpers/debounce.cjs"),$s=require("./utils/helpers/getDate.cjs"),eu=require("./utils/helpers/getRetry.cjs"),u=require("./utils/helpers/isTarget.cjs"),su=require("./utils/helpers/throttle.cjs");exports.createContext=h.createContext;exports.createEventEmitter=I.createEventEmitter;exports.createReactiveContext=O.createReactiveContext;exports.createStore=v.createStore;exports.useAsync=A.useAsync;exports.useLockCallback=b.useLockCallback;exports.useMutation=D.useMutation;exports.useOptimistic=L.useOptimistic;exports.useQuery=M.useQuery;exports.useAudio=_.useAudio;exports.useBattery=B.useBattery;exports.useBluetooth=N.useBluetooth;exports.useBroadcastChannel=F.useBroadcastChannel;exports.useClipboard=K.useClipboard;exports.useCopy=V.useCopy;exports.useCssVar=w.useCssVar;exports.useDisplayMedia=U.useDisplayMedia;exports.useDocumentTitle=H.useDocumentTitle;exports.useEventSource=x.useEventSource;exports.useEyeDropper=W.useEyeDropper;exports.useFavicon=z.useFavicon;exports.useFps=Q.useFps;exports.useFullscreen=G.useFullscreen;exports.mapGamepadToXbox360Controller=n.mapGamepadToXbox360Controller;exports.useGamepad=n.useGamepad;exports.useGeolocation=X.useGeolocation;exports.timeRangeToArray=c.timeRangeToArray;exports.useMediaControls=c.useMediaControls;exports.useMemory=Z.useMemory;exports.getConnection=a.getConnection;exports.useNetwork=a.useNetwork;exports.useOnline=j.useOnline;exports.useOtpCredential=J.useOtpCredential;exports.usePermission=Y.usePermission;exports.usePictureInPicture=$.usePictureInPicture;exports.usePointerLock=ee.usePointerLock;exports.usePostMessage=se.usePostMessage;exports.useRaf=ue.useRaf;exports.useShare=re.useShare;exports.getSpeechRecognition=l.getSpeechRecognition;exports.useSpeechRecognition=l.useSpeechRecognition;exports.useSpeechSynthesis=te.useSpeechSynthesis;exports.useVibrate=oe.useVibrate;exports.useVirtualKeyboard=ie.useVirtualKeyboard;exports.useWakeLock=ne.useWakeLock;exports.useWebSocket=ce.useWebSocket;exports.useLogger=ae.useLogger;exports.useRenderCount=le.useRenderCount;exports.useRenderInfo=Se.useRenderInfo;exports.useRerender=qe.useRerender;exports.useActiveElement=de.useActiveElement;exports.useAutoScroll=ge.useAutoScroll;exports.useClickOutside=Te.useClickOutside;exports.DEFAULT_THRESHOLD_TIME=S.DEFAULT_THRESHOLD_TIME;exports.useDoubleClick=S.useDoubleClick;exports.useDropZone=Ee.useDropZone;exports.useFileDialog=Re.useFileDialog;exports.useFocus=Ce.useFocus;exports.FOCUS_SELECTOR=q.FOCUS_SELECTOR;exports.useFocusTrap=q.useFocusTrap;exports.useHover=Pe.useHover;exports.useImage=me.useImage;exports.useLongPress=ye.useLongPress;exports.Paint=t.Paint;exports.Pointer=t.Pointer;exports.usePaint=t.usePaint;exports.useRightClick=pe.useRightClick;exports.SCRIPT_STATUS_ATTRIBUTE_NAME=d.SCRIPT_STATUS_ATTRIBUTE_NAME;exports.useScript=d.useScript;exports.useSticky=ke.useSticky;exports.useTextareaAutosize=fe.useTextareaAutosize;exports.useTextDirection=he.useTextDirection;exports.useFul=Ie.useFul;exports.useLess=Oe.useLess;exports.useOnce=ve.useOnce;exports.useAsyncEffect=Ae.useAsyncEffect;exports.useDidUpdate=be.useDidUpdate;exports.useIsFirstRender=De.useIsFirstRender;exports.useIsomorphicLayoutEffect=Le.useIsomorphicLayoutEffect;exports.useMount=Me.useMount;exports.deepEqual=g.deepEqual;exports.useShallowEffect=g.useShallowEffect;exports.useUnmount=_e.useUnmount;exports.BREAKPOINTS_ANT_DESIGN=e.BREAKPOINTS_ANT_DESIGN;exports.BREAKPOINTS_BOOTSTRAP_V5=e.BREAKPOINTS_BOOTSTRAP_V5;exports.BREAKPOINTS_MANTINE=e.BREAKPOINTS_MANTINE;exports.BREAKPOINTS_MASTER_CSS=e.BREAKPOINTS_MASTER_CSS;exports.BREAKPOINTS_MATERIAL_UI=e.BREAKPOINTS_MATERIAL_UI;exports.BREAKPOINTS_PRIME_FLEX=e.BREAKPOINTS_PRIME_FLEX;exports.BREAKPOINTS_QUASAR_V2=e.BREAKPOINTS_QUASAR_V2;exports.BREAKPOINTS_SEMANTIC=e.BREAKPOINTS_SEMANTIC;exports.BREAKPOINTS_TAILWIND=e.BREAKPOINTS_TAILWIND;exports.useBreakpoints=e.useBreakpoints;exports.useDeviceMotion=Be.useDeviceMotion;exports.useDeviceOrientation=Ne.useDeviceOrientation;exports.useDevicePixelRatio=Fe.useDevicePixelRatio;exports.useDocumentEvent=Ke.useDocumentEvent;exports.useDocumentVisibility=Ve.useDocumentVisibility;exports.useElementSize=we.useElementSize;exports.useEventListener=Ue.useEventListener;exports.isHotkeyMatch=T.isHotkeyMatch;exports.useHotkeys=T.useHotkeys;exports.useIdle=He.useIdle;exports.useInfiniteScroll=xe.useInfiniteScroll;exports.useIntersectionObserver=We.useIntersectionObserver;exports.useKeyboard=ze.useKeyboard;exports.useKeyPress=Qe.useKeyPress;exports.useKeyPressEvent=Ge.useKeyPressEvent;exports.useKeysPressed=Xe.useKeysPressed;exports.useLockScroll=Ze.useLockScroll;exports.useMeasure=je.useMeasure;exports.useMediaQuery=Je.useMediaQuery;exports.useMouse=Ye.useMouse;exports.useMutationObserver=$e.useMutationObserver;exports.useOrientation=es.useOrientation;exports.usePageLeave=ss.usePageLeave;exports.useParallax=us.useParallax;exports.usePerformanceObserver=rs.usePerformanceObserver;exports.useResizeObserver=ts.useResizeObserver;exports.useScroll=os.useScroll;exports.useScrollIntoView=is.useScrollIntoView;exports.useScrollTo=ns.useScrollTo;exports.getRangesSelection=E.getRangesSelection;exports.useTextSelection=E.useTextSelection;exports.useVisibility=cs.useVisibility;exports.useWindowEvent=as.useWindowEvent;exports.useWindowFocus=ls.useWindowFocus;exports.scrollTo=R.scrollTo;exports.useWindowScroll=R.useWindowScroll;exports.useWindowSize=Ss.useWindowSize;exports.useBoolean=qs.useBoolean;exports.useControllableState=ds.useControllableState;exports.COOKIE_EVENT=s.COOKIE_EVENT;exports.dispatchCookieEvent=s.dispatchCookieEvent;exports.getCookie=s.getCookie;exports.getCookies=s.getCookies;exports.removeCookie=s.removeCookie;exports.removeCookieItem=s.removeCookieItem;exports.setCookie=s.setCookie;exports.setCookieItem=s.setCookieItem;exports.useCookie=s.useCookie;exports.clearCookies=C.clearCookies;exports.useCookies=C.useCookies;exports.useCounter=gs.useCounter;exports.useDefault=Ts.useDefault;exports.useDisclosure=Es.useDisclosure;exports.useField=Rs.useField;exports.getHash=P.getHash;exports.useHash=P.useHash;exports.useList=Cs.useList;exports.useLocalStorage=Ps.useLocalStorage;exports.useMap=ms.useMap;exports.assignRef=o.assignRef;exports.mergeRefs=o.mergeRefs;exports.useMergedRef=o.useMergedRef;exports.useOffsetPagination=ys.useOffsetPagination;exports.useQueue=ps.useQueue;exports.useRafState=ks.useRafState;exports.createRefState=m.createRefState;exports.useRefState=m.useRefState;exports.useSessionStorage=fs.useSessionStorage;exports.useSet=hs.useSet;exports.stateHistoryReducer=y.stateHistoryReducer;exports.useStateHistory=y.useStateHistory;exports.useStep=Is.useStep;exports.STORAGE_EVENT=i.STORAGE_EVENT;exports.dispatchStorageEvent=i.dispatchStorageEvent;exports.useStorage=i.useStorage;exports.useToggle=Os.useToggle;exports.URL_SEARCH_PARAMS_EVENT=r.URL_SEARCH_PARAMS_EVENT;exports.createQueryString=r.createQueryString;exports.dispatchUrlSearchParamsEvent=r.dispatchUrlSearchParamsEvent;exports.getUrlSearchParams=r.getUrlSearchParams;exports.useUrlSearchParam=r.useUrlSearchParam;exports.useUrlSearchParams=vs.useUrlSearchParams;exports.useWizard=As.useWizard;exports.useInterval=bs.useInterval;exports.useStopwatch=Ds.useStopwatch;exports.useTime=Ls.useTime;exports.useTimeout=Ms.useTimeout;exports.getTimeFromSeconds=p.getTimeFromSeconds;exports.useTimer=p.useTimer;exports.useBrowserLanguage=_s.useBrowserLanguage;exports.getOperatingSystem=k.getOperatingSystem;exports.useOperatingSystem=k.useOperatingSystem;exports.usePreferredColorScheme=Bs.usePreferredColorScheme;exports.usePreferredContrast=Ns.usePreferredContrast;exports.usePreferredDark=Fs.usePreferredDark;exports.usePreferredLanguages=Ks.usePreferredLanguages;exports.usePreferredReducedMotion=Vs.usePreferredReducedMotion;exports.useBatchedCallback=ws.useBatchedCallback;exports.useConst=Us.useConst;exports.useDebounceCallback=Hs.useDebounceCallback;exports.useDebounceState=xs.useDebounceState;exports.useDebounceValue=Ws.useDebounceValue;exports.useEvent=zs.useEvent;exports.useLastChanged=Qs.useLastChanged;exports.useLatest=Gs.useLatest;exports.usePrevious=Xs.usePrevious;exports.useThrottleCallback=Zs.useThrottleCallback;exports.useThrottleState=js.useThrottleState;exports.useThrottleValue=Js.useThrottleValue;exports.copy=f.copy;exports.legacyCopyToClipboard=f.legacyCopyToClipboard;exports.debounce=Ys.debounce;exports.getDate=$s.getDate;exports.getRetry=eu.getRetry;exports.getRawElement=u.getRawElement;exports.getRefState=u.getRefState;exports.isBrowserTarget=u.isBrowserTarget;exports.isRef=u.isRef;exports.isRefState=u.isRefState;exports.isTarget=u.isTarget;exports.target=u.target;exports.targetSymbol=u.targetSymbol;exports.throttle=su.throttle;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const k=require("./helpers/createContext/createContext.cjs"),I=require("./helpers/createEventEmitter/createEventEmitter.cjs"),O=require("./helpers/createReactiveContext/createReactiveContext.cjs"),b=require("./helpers/createStore/createStore.cjs"),v=require("./hooks/useAsync/useAsync.cjs"),A=require("./hooks/useLockCallback/useLockCallback.cjs"),D=require("./hooks/useMutation/useMutation.cjs"),L=require("./hooks/useOptimistic/useOptimistic.cjs"),M=require("./hooks/useQuery/useQuery.cjs"),_=require("./hooks/useAudio/useAudio.cjs"),B=require("./hooks/useBattery/useBattery.cjs"),N=require("./hooks/useBluetooth/useBluetooth.cjs"),F=require("./hooks/useBroadcastChannel/useBroadcastChannel.cjs"),K=require("./hooks/useClipboard/useClipboard.cjs"),V=require("./hooks/useCopy/useCopy.cjs"),w=require("./hooks/useCssVar/useCssVar.cjs"),U=require("./hooks/useDisplayMedia/useDisplayMedia.cjs"),H=require("./hooks/useDocumentTitle/useDocumentTitle.cjs"),x=require("./hooks/useEventSource/useEventSource.cjs"),W=require("./hooks/useEyeDropper/useEyeDropper.cjs"),z=require("./hooks/useFavicon/useFavicon.cjs"),Q=require("./hooks/useFps/useFps.cjs"),G=require("./hooks/useFullscreen/useFullscreen.cjs"),n=require("./hooks/useGamepad/useGamepad.cjs"),X=require("./hooks/useGeolocation/useGeolocation.cjs"),c=require("./hooks/useMediaControls/useMediaControls.cjs"),Z=require("./hooks/useMemory/useMemory.cjs"),a=require("./hooks/useNetwork/useNetwork.cjs"),j=require("./hooks/useOnline/useOnline.cjs"),J=require("./hooks/useOtpCredential/useOtpCredential.cjs"),Y=require("./hooks/usePermission/usePermission.cjs"),$=require("./hooks/usePictureInPicture/usePictureInPicture.cjs"),ee=require("./hooks/usePointerLock/usePointerLock.cjs"),se=require("./hooks/usePostMessage/usePostMessage.cjs"),ue=require("./hooks/useRaf/useRaf.cjs"),re=require("./hooks/useShare/useShare.cjs"),l=require("./hooks/useSpeechRecognition/useSpeechRecognition.cjs"),te=require("./hooks/useSpeechSynthesis/useSpeechSynthesis.cjs"),oe=require("./hooks/useVibrate/useVibrate.cjs"),ie=require("./hooks/useVirtualKeyboard/useVirtualKeyboard.cjs"),ne=require("./hooks/useWakeLock/useWakeLock.cjs"),ce=require("./hooks/useWebSocket/useWebSocket.cjs"),ae=require("./hooks/useLogger/useLogger.cjs"),le=require("./hooks/useRenderCount/useRenderCount.cjs"),Se=require("./hooks/useRenderInfo/useRenderInfo.cjs"),qe=require("./hooks/useRerender/useRerender.cjs"),de=require("./hooks/useActiveElement/useActiveElement.cjs"),ge=require("./hooks/useAutoScroll/useAutoScroll.cjs"),Te=require("./hooks/useClickOutside/useClickOutside.cjs"),S=require("./hooks/useDoubleClick/useDoubleClick.cjs"),Ee=require("./hooks/useDropZone/useDropZone.cjs"),Re=require("./hooks/useFileDialog/useFileDialog.cjs"),Ce=require("./hooks/useFocus/useFocus.cjs"),q=require("./hooks/useFocusTrap/useFocusTrap.cjs"),Pe=require("./hooks/useHover/useHover.cjs"),me=require("./hooks/useImage/useImage.cjs"),ye=require("./hooks/useLongPress/useLongPress.cjs"),t=require("./hooks/usePaint/usePaint.cjs"),fe=require("./hooks/useRightClick/useRightClick.cjs"),d=require("./hooks/useScript/useScript.cjs"),pe=require("./hooks/useSticky/useSticky.cjs"),he=require("./hooks/useTextareaAutosize/useTextareaAutosize.cjs"),ke=require("./hooks/useTextDirection/useTextDirection.cjs"),Ie=require("./hooks/useFul/useFul.cjs"),Oe=require("./hooks/useLess/useLess.cjs"),be=require("./hooks/useOnce/useOnce.cjs"),ve=require("./hooks/useAsyncEffect/useAsyncEffect.cjs"),Ae=require("./hooks/useDidUpdate/useDidUpdate.cjs"),De=require("./hooks/useIsFirstRender/useIsFirstRender.cjs"),Le=require("./hooks/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.cjs"),Me=require("./hooks/useMount/useMount.cjs"),g=require("./hooks/useShallowEffect/useShallowEffect.cjs"),_e=require("./hooks/useUnmount/useUnmount.cjs"),e=require("./hooks/useBreakpoints/useBreakpoints.cjs"),Be=require("./hooks/useDeviceMotion/useDeviceMotion.cjs"),Ne=require("./hooks/useDeviceOrientation/useDeviceOrientation.cjs"),Fe=require("./hooks/useDevicePixelRatio/useDevicePixelRatio.cjs"),Ke=require("./hooks/useDocumentEvent/useDocumentEvent.cjs"),Ve=require("./hooks/useDocumentVisibility/useDocumentVisibility.cjs"),we=require("./hooks/useEventListener/useEventListener.cjs"),T=require("./hooks/useHotkeys/useHotkeys.cjs"),Ue=require("./hooks/useIdle/useIdle.cjs"),He=require("./hooks/useInfiniteScroll/useInfiniteScroll.cjs"),xe=require("./hooks/useIntersectionObserver/useIntersectionObserver.cjs"),We=require("./hooks/useKeyboard/useKeyboard.cjs"),ze=require("./hooks/useKeyPress/useKeyPress.cjs"),Qe=require("./hooks/useKeyPressEvent/useKeyPressEvent.cjs"),Ge=require("./hooks/useKeysPressed/useKeysPressed.cjs"),Xe=require("./hooks/useLockScroll/useLockScroll.cjs"),Ze=require("./hooks/useMeasure/useMeasure.cjs"),je=require("./hooks/useMediaQuery/useMediaQuery.cjs"),Je=require("./hooks/useMouse/useMouse.cjs"),Ye=require("./hooks/useMutationObserver/useMutationObserver.cjs"),$e=require("./hooks/useOrientation/useOrientation.cjs"),es=require("./hooks/usePageLeave/usePageLeave.cjs"),ss=require("./hooks/useParallax/useParallax.cjs"),us=require("./hooks/usePerformanceObserver/usePerformanceObserver.cjs"),rs=require("./hooks/useResizeObserver/useResizeObserver.cjs"),ts=require("./hooks/useScroll/useScroll.cjs"),os=require("./hooks/useScrollIntoView/useScrollIntoView.cjs"),is=require("./hooks/useScrollTo/useScrollTo.cjs"),ns=require("./hooks/useSize/useSize.cjs"),E=require("./hooks/useTextSelection/useTextSelection.cjs"),cs=require("./hooks/useVisibility/useVisibility.cjs"),as=require("./hooks/useWindowEvent/useWindowEvent.cjs"),ls=require("./hooks/useWindowFocus/useWindowFocus.cjs"),R=require("./hooks/useWindowScroll/useWindowScroll.cjs"),Ss=require("./hooks/useWindowSize/useWindowSize.cjs"),qs=require("./hooks/useBoolean/useBoolean.cjs"),ds=require("./hooks/useControllableState/useControllableState.cjs"),s=require("./hooks/useCookie/useCookie.cjs"),C=require("./hooks/useCookies/useCookies.cjs"),gs=require("./hooks/useCounter/useCounter.cjs"),Ts=require("./hooks/useDefault/useDefault.cjs"),Es=require("./hooks/useDisclosure/useDisclosure.cjs"),Rs=require("./hooks/useField/useField.cjs"),P=require("./hooks/useHash/useHash.cjs"),Cs=require("./hooks/useList/useList.cjs"),Ps=require("./hooks/useLocalStorage/useLocalStorage.cjs"),ms=require("./hooks/useMap/useMap.cjs"),o=require("./hooks/useMergedRef/useMergedRef.cjs"),ys=require("./hooks/useOffsetPagination/useOffsetPagination.cjs"),fs=require("./hooks/useQueue/useQueue.cjs"),ps=require("./hooks/useRafState/useRafState.cjs"),m=require("./hooks/useRefState/useRefState.cjs"),hs=require("./hooks/useSessionStorage/useSessionStorage.cjs"),ks=require("./hooks/useSet/useSet.cjs"),y=require("./hooks/useStateHistory/useStateHistory.cjs"),Is=require("./hooks/useStep/useStep.cjs"),i=require("./hooks/useStorage/useStorage.cjs"),Os=require("./hooks/useToggle/useToggle.cjs"),r=require("./hooks/useUrlSearchParam/useUrlSearchParam.cjs"),bs=require("./hooks/useUrlSearchParams/useUrlSearchParams.cjs"),vs=require("./hooks/useWizard/useWizard.cjs"),As=require("./hooks/useInterval/useInterval.cjs"),Ds=require("./hooks/useStopwatch/useStopwatch.cjs"),Ls=require("./hooks/useTime/useTime.cjs"),Ms=require("./hooks/useTimeout/useTimeout.cjs"),f=require("./hooks/useTimer/useTimer.cjs"),_s=require("./hooks/useBrowserLanguage/useBrowserLanguage.cjs"),p=require("./hooks/useOperatingSystem/useOperatingSystem.cjs"),Bs=require("./hooks/usePreferredColorScheme/usePreferredColorScheme.cjs"),Ns=require("./hooks/usePreferredContrast/usePreferredContrast.cjs"),Fs=require("./hooks/usePreferredDark/usePreferredDark.cjs"),Ks=require("./hooks/usePreferredLanguages/usePreferredLanguages.cjs"),Vs=require("./hooks/usePreferredReducedMotion/usePreferredReducedMotion.cjs"),ws=require("./hooks/useBatchedCallback/useBatchedCallback.cjs"),Us=require("./hooks/useConst/useConst.cjs"),Hs=require("./hooks/useDebounceCallback/useDebounceCallback.cjs"),xs=require("./hooks/useDebounceEffect/useDebounceEffect.cjs"),Ws=require("./hooks/useDebounceState/useDebounceState.cjs"),zs=require("./hooks/useDebounceValue/useDebounceValue.cjs"),Qs=require("./hooks/useEvent/useEvent.cjs"),Gs=require("./hooks/useLastChanged/useLastChanged.cjs"),Xs=require("./hooks/useLatest/useLatest.cjs"),Zs=require("./hooks/usePrevious/usePrevious.cjs"),js=require("./hooks/useThrottleCallback/useThrottleCallback.cjs"),Js=require("./hooks/useThrottleEffect/useThrottleEffect.cjs"),Ys=require("./hooks/useThrottleState/useThrottleState.cjs"),$s=require("./hooks/useThrottleValue/useThrottleValue.cjs"),h=require("./utils/helpers/copy.cjs"),eu=require("./utils/helpers/debounce.cjs"),su=require("./utils/helpers/getDate.cjs"),uu=require("./utils/helpers/getRetry.cjs"),u=require("./utils/helpers/isTarget.cjs"),ru=require("./utils/helpers/throttle.cjs");exports.createContext=k.createContext;exports.createEventEmitter=I.createEventEmitter;exports.createReactiveContext=O.createReactiveContext;exports.createStore=b.createStore;exports.useAsync=v.useAsync;exports.useLockCallback=A.useLockCallback;exports.useMutation=D.useMutation;exports.useOptimistic=L.useOptimistic;exports.useQuery=M.useQuery;exports.useAudio=_.useAudio;exports.useBattery=B.useBattery;exports.useBluetooth=N.useBluetooth;exports.useBroadcastChannel=F.useBroadcastChannel;exports.useClipboard=K.useClipboard;exports.useCopy=V.useCopy;exports.useCssVar=w.useCssVar;exports.useDisplayMedia=U.useDisplayMedia;exports.useDocumentTitle=H.useDocumentTitle;exports.useEventSource=x.useEventSource;exports.useEyeDropper=W.useEyeDropper;exports.useFavicon=z.useFavicon;exports.useFps=Q.useFps;exports.useFullscreen=G.useFullscreen;exports.mapGamepadToXbox360Controller=n.mapGamepadToXbox360Controller;exports.useGamepad=n.useGamepad;exports.useGeolocation=X.useGeolocation;exports.timeRangeToArray=c.timeRangeToArray;exports.useMediaControls=c.useMediaControls;exports.useMemory=Z.useMemory;exports.getConnection=a.getConnection;exports.useNetwork=a.useNetwork;exports.useOnline=j.useOnline;exports.useOtpCredential=J.useOtpCredential;exports.usePermission=Y.usePermission;exports.usePictureInPicture=$.usePictureInPicture;exports.usePointerLock=ee.usePointerLock;exports.usePostMessage=se.usePostMessage;exports.useRaf=ue.useRaf;exports.useShare=re.useShare;exports.getSpeechRecognition=l.getSpeechRecognition;exports.useSpeechRecognition=l.useSpeechRecognition;exports.useSpeechSynthesis=te.useSpeechSynthesis;exports.useVibrate=oe.useVibrate;exports.useVirtualKeyboard=ie.useVirtualKeyboard;exports.useWakeLock=ne.useWakeLock;exports.useWebSocket=ce.useWebSocket;exports.useLogger=ae.useLogger;exports.useRenderCount=le.useRenderCount;exports.useRenderInfo=Se.useRenderInfo;exports.useRerender=qe.useRerender;exports.useActiveElement=de.useActiveElement;exports.useAutoScroll=ge.useAutoScroll;exports.useClickOutside=Te.useClickOutside;exports.DEFAULT_THRESHOLD_TIME=S.DEFAULT_THRESHOLD_TIME;exports.useDoubleClick=S.useDoubleClick;exports.useDropZone=Ee.useDropZone;exports.useFileDialog=Re.useFileDialog;exports.useFocus=Ce.useFocus;exports.FOCUS_SELECTOR=q.FOCUS_SELECTOR;exports.useFocusTrap=q.useFocusTrap;exports.useHover=Pe.useHover;exports.useImage=me.useImage;exports.useLongPress=ye.useLongPress;exports.Paint=t.Paint;exports.Pointer=t.Pointer;exports.usePaint=t.usePaint;exports.useRightClick=fe.useRightClick;exports.SCRIPT_STATUS_ATTRIBUTE_NAME=d.SCRIPT_STATUS_ATTRIBUTE_NAME;exports.useScript=d.useScript;exports.useSticky=pe.useSticky;exports.useTextareaAutosize=he.useTextareaAutosize;exports.useTextDirection=ke.useTextDirection;exports.useFul=Ie.useFul;exports.useLess=Oe.useLess;exports.useOnce=be.useOnce;exports.useAsyncEffect=ve.useAsyncEffect;exports.useDidUpdate=Ae.useDidUpdate;exports.useIsFirstRender=De.useIsFirstRender;exports.useIsomorphicLayoutEffect=Le.useIsomorphicLayoutEffect;exports.useMount=Me.useMount;exports.deepEqual=g.deepEqual;exports.useShallowEffect=g.useShallowEffect;exports.useUnmount=_e.useUnmount;exports.BREAKPOINTS_ANT_DESIGN=e.BREAKPOINTS_ANT_DESIGN;exports.BREAKPOINTS_BOOTSTRAP_V5=e.BREAKPOINTS_BOOTSTRAP_V5;exports.BREAKPOINTS_MANTINE=e.BREAKPOINTS_MANTINE;exports.BREAKPOINTS_MASTER_CSS=e.BREAKPOINTS_MASTER_CSS;exports.BREAKPOINTS_MATERIAL_UI=e.BREAKPOINTS_MATERIAL_UI;exports.BREAKPOINTS_PRIME_FLEX=e.BREAKPOINTS_PRIME_FLEX;exports.BREAKPOINTS_QUASAR_V2=e.BREAKPOINTS_QUASAR_V2;exports.BREAKPOINTS_SEMANTIC=e.BREAKPOINTS_SEMANTIC;exports.BREAKPOINTS_TAILWIND=e.BREAKPOINTS_TAILWIND;exports.useBreakpoints=e.useBreakpoints;exports.useDeviceMotion=Be.useDeviceMotion;exports.useDeviceOrientation=Ne.useDeviceOrientation;exports.useDevicePixelRatio=Fe.useDevicePixelRatio;exports.useDocumentEvent=Ke.useDocumentEvent;exports.useDocumentVisibility=Ve.useDocumentVisibility;exports.useEventListener=we.useEventListener;exports.isHotkeyMatch=T.isHotkeyMatch;exports.useHotkeys=T.useHotkeys;exports.useIdle=Ue.useIdle;exports.useInfiniteScroll=He.useInfiniteScroll;exports.useIntersectionObserver=xe.useIntersectionObserver;exports.useKeyboard=We.useKeyboard;exports.useKeyPress=ze.useKeyPress;exports.useKeyPressEvent=Qe.useKeyPressEvent;exports.useKeysPressed=Ge.useKeysPressed;exports.useLockScroll=Xe.useLockScroll;exports.useMeasure=Ze.useMeasure;exports.useMediaQuery=je.useMediaQuery;exports.useMouse=Je.useMouse;exports.useMutationObserver=Ye.useMutationObserver;exports.useOrientation=$e.useOrientation;exports.usePageLeave=es.usePageLeave;exports.useParallax=ss.useParallax;exports.usePerformanceObserver=us.usePerformanceObserver;exports.useResizeObserver=rs.useResizeObserver;exports.useScroll=ts.useScroll;exports.useScrollIntoView=os.useScrollIntoView;exports.useScrollTo=is.useScrollTo;exports.useSize=ns.useSize;exports.getRangesSelection=E.getRangesSelection;exports.useTextSelection=E.useTextSelection;exports.useVisibility=cs.useVisibility;exports.useWindowEvent=as.useWindowEvent;exports.useWindowFocus=ls.useWindowFocus;exports.scrollTo=R.scrollTo;exports.useWindowScroll=R.useWindowScroll;exports.useWindowSize=Ss.useWindowSize;exports.useBoolean=qs.useBoolean;exports.useControllableState=ds.useControllableState;exports.COOKIE_EVENT=s.COOKIE_EVENT;exports.dispatchCookieEvent=s.dispatchCookieEvent;exports.getCookie=s.getCookie;exports.getCookies=s.getCookies;exports.removeCookie=s.removeCookie;exports.removeCookieItem=s.removeCookieItem;exports.setCookie=s.setCookie;exports.setCookieItem=s.setCookieItem;exports.useCookie=s.useCookie;exports.clearCookies=C.clearCookies;exports.useCookies=C.useCookies;exports.useCounter=gs.useCounter;exports.useDefault=Ts.useDefault;exports.useDisclosure=Es.useDisclosure;exports.useField=Rs.useField;exports.getHash=P.getHash;exports.useHash=P.useHash;exports.useList=Cs.useList;exports.useLocalStorage=Ps.useLocalStorage;exports.useMap=ms.useMap;exports.assignRef=o.assignRef;exports.mergeRefs=o.mergeRefs;exports.useMergedRef=o.useMergedRef;exports.useOffsetPagination=ys.useOffsetPagination;exports.useQueue=fs.useQueue;exports.useRafState=ps.useRafState;exports.createRefState=m.createRefState;exports.useRefState=m.useRefState;exports.useSessionStorage=hs.useSessionStorage;exports.useSet=ks.useSet;exports.stateHistoryReducer=y.stateHistoryReducer;exports.useStateHistory=y.useStateHistory;exports.useStep=Is.useStep;exports.STORAGE_EVENT=i.STORAGE_EVENT;exports.dispatchStorageEvent=i.dispatchStorageEvent;exports.useStorage=i.useStorage;exports.useToggle=Os.useToggle;exports.URL_SEARCH_PARAMS_EVENT=r.URL_SEARCH_PARAMS_EVENT;exports.createQueryString=r.createQueryString;exports.dispatchUrlSearchParamsEvent=r.dispatchUrlSearchParamsEvent;exports.getUrlSearchParams=r.getUrlSearchParams;exports.useUrlSearchParam=r.useUrlSearchParam;exports.useUrlSearchParams=bs.useUrlSearchParams;exports.useWizard=vs.useWizard;exports.useInterval=As.useInterval;exports.useStopwatch=Ds.useStopwatch;exports.useTime=Ls.useTime;exports.useTimeout=Ms.useTimeout;exports.getTimeFromSeconds=f.getTimeFromSeconds;exports.useTimer=f.useTimer;exports.useBrowserLanguage=_s.useBrowserLanguage;exports.getOperatingSystem=p.getOperatingSystem;exports.useOperatingSystem=p.useOperatingSystem;exports.usePreferredColorScheme=Bs.usePreferredColorScheme;exports.usePreferredContrast=Ns.usePreferredContrast;exports.usePreferredDark=Fs.usePreferredDark;exports.usePreferredLanguages=Ks.usePreferredLanguages;exports.usePreferredReducedMotion=Vs.usePreferredReducedMotion;exports.useBatchedCallback=ws.useBatchedCallback;exports.useConst=Us.useConst;exports.useDebounceCallback=Hs.useDebounceCallback;exports.useDebounceEffect=xs.useDebounceEffect;exports.useDebounceState=Ws.useDebounceState;exports.useDebounceValue=zs.useDebounceValue;exports.useEvent=Qs.useEvent;exports.useLastChanged=Gs.useLastChanged;exports.useLatest=Xs.useLatest;exports.usePrevious=Zs.usePrevious;exports.useThrottleCallback=js.useThrottleCallback;exports.useThrottleEffect=Js.useThrottleEffect;exports.useThrottleState=Ys.useThrottleState;exports.useThrottleValue=$s.useThrottleValue;exports.copy=h.copy;exports.legacyCopyToClipboard=h.legacyCopyToClipboard;exports.debounce=eu.debounce;exports.getDate=su.getDate;exports.getRetry=uu.getRetry;exports.getRawElement=u.getRawElement;exports.getRefState=u.getRefState;exports.isBrowserTarget=u.isBrowserTarget;exports.isRef=u.isRef;exports.isRefState=u.isRefState;exports.isTarget=u.isTarget;exports.target=u.target;exports.targetSymbol=u.targetSymbol;exports.throttle=ru.throttle;
|
|
2
2
|
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { useRef as r, useEffect as s } from "react";
|
|
2
|
+
const m = (u, n, i) => {
|
|
3
|
+
const c = r(!0), e = r(null), t = r(void 0), f = r(u), o = r(n);
|
|
4
|
+
f.current = u, o.current = n, s(() => {
|
|
5
|
+
if (c.current) {
|
|
6
|
+
c.current = !1;
|
|
7
|
+
return;
|
|
8
|
+
}
|
|
9
|
+
return e.current && (clearTimeout(e.current), e.current = null), e.current = setTimeout(() => {
|
|
10
|
+
t.current = f.current();
|
|
11
|
+
}, o.current), () => {
|
|
12
|
+
e.current && clearTimeout(e.current), e.current = null, typeof t.current == "function" && t.current();
|
|
13
|
+
};
|
|
14
|
+
}, i);
|
|
15
|
+
};
|
|
16
|
+
export {
|
|
17
|
+
m as useDebounceEffect
|
|
18
|
+
};
|
|
19
|
+
//# sourceMappingURL=useDebounceEffect.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useDebounceEffect.mjs","sources":["../../../../src/hooks/useDebounceEffect/useDebounceEffect.ts"],"sourcesContent":["import type { DependencyList, EffectCallback } from 'react';\n\nimport { useEffect, useRef } from 'react';\n\n/**\n * @name useDebounceEffect\n * @description – Hook that runs an effect after a delay when dependencies change\n * @category Utilities\n * @usage high\n *\n * @param {EffectCallback} effect The effect callback to run\n * @param {number} delay The delay in milliseconds\n * @param {DependencyList} deps The dependencies list for the effect\n *\n * @example\n * useDebounceEffect(() => console.log('effect'), 500, [value]);\n */\nexport const useDebounceEffect = (effect: EffectCallback, delay: number, deps?: DependencyList) => {\n const mountedRef = useRef(true);\n const timeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n const cleanupRef = useRef<ReturnType<EffectCallback>>(undefined);\n const effectRef = useRef(effect);\n const delayRef = useRef(delay);\n\n effectRef.current = effect;\n delayRef.current = delay;\n\n useEffect(() => {\n if (mountedRef.current) {\n mountedRef.current = false;\n return;\n }\n\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n timeoutRef.current = null;\n }\n\n timeoutRef.current = setTimeout(() => {\n cleanupRef.current = effectRef.current();\n }, delayRef.current);\n\n return () => {\n if (timeoutRef.current) clearTimeout(timeoutRef.current);\n timeoutRef.current = null;\n if (typeof cleanupRef.current === 'function') cleanupRef.current();\n };\n }, deps);\n};\n"],"names":["useDebounceEffect","effect","delay","deps","mountedRef","useRef","timeoutRef","cleanupRef","effectRef","delayRef","useEffect"],"mappings":";AAiBO,MAAMA,IAAoB,CAACC,GAAwBC,GAAeC,MAA0B;AACjG,QAAMC,IAAaC,EAAO,EAAI,GACxBC,IAAaD,EAA6C,IAAI,GAC9DE,IAAaF,EAAmC,MAAS,GACzDG,IAAYH,EAAOJ,CAAM,GACzBQ,IAAWJ,EAAOH,CAAK;AAE7B,EAAAM,EAAU,UAAUP,GACpBQ,EAAS,UAAUP,GAEnBQ,EAAU,MAAM;AACd,QAAIN,EAAW,SAAS;AACtB,MAAAA,EAAW,UAAU;AACrB;AAAA,IAAA;AAGF,WAAIE,EAAW,YACb,aAAaA,EAAW,OAAO,GAC/BA,EAAW,UAAU,OAGvBA,EAAW,UAAU,WAAW,MAAM;AACpC,MAAAC,EAAW,UAAUC,EAAU,QAAA;AAAA,IAAQ,GACtCC,EAAS,OAAO,GAEZ,MAAM;AACX,MAAIH,EAAW,WAAS,aAAaA,EAAW,OAAO,GACvDA,EAAW,UAAU,MACjB,OAAOC,EAAW,WAAY,gBAAuB,QAAA;AAAA,IAAQ;AAAA,EACnE,GACCJ,CAAI;AACT;"}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import { useRef as u } from "react";
|
|
2
|
-
import { useIsomorphicLayoutEffect as
|
|
2
|
+
import { useIsomorphicLayoutEffect as r } from "../useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.mjs";
|
|
3
3
|
const s = (t, o) => {
|
|
4
|
-
const
|
|
5
|
-
|
|
4
|
+
const e = u(!1);
|
|
5
|
+
r(
|
|
6
6
|
() => () => {
|
|
7
|
-
|
|
7
|
+
e.current = !1;
|
|
8
8
|
},
|
|
9
9
|
[]
|
|
10
|
-
),
|
|
11
|
-
if (
|
|
10
|
+
), r(() => {
|
|
11
|
+
if (e.current)
|
|
12
12
|
return t();
|
|
13
|
-
|
|
13
|
+
e.current = !0;
|
|
14
14
|
}, o);
|
|
15
15
|
};
|
|
16
16
|
export {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDidUpdate.mjs","sources":["../../../../src/hooks/useDidUpdate/useDidUpdate.ts"],"sourcesContent":["import type { DependencyList, EffectCallback } from 'react';\n\nimport { useRef } from 'react';\n\nimport { useIsomorphicLayoutEffect } from '../useIsomorphicLayoutEffect/useIsomorphicLayoutEffect';\n\n/**\n * @name useDidUpdate\n * @description – Hook that triggers the effect callback on updates\n * @category Lifecycle\n * @usage necessary\n\n * @param {EffectCallback} effect The effect callback\n * @param {DependencyList} [deps] The dependencies list for the effect\n *\n * @example\n * useDidUpdate(() => console.log(\"effect runs on updates\"), deps);\n */\nexport const useDidUpdate = (effect: EffectCallback, deps?: DependencyList) => {\n const
|
|
1
|
+
{"version":3,"file":"useDidUpdate.mjs","sources":["../../../../src/hooks/useDidUpdate/useDidUpdate.ts"],"sourcesContent":["import type { DependencyList, EffectCallback } from 'react';\n\nimport { useRef } from 'react';\n\nimport { useIsomorphicLayoutEffect } from '../useIsomorphicLayoutEffect/useIsomorphicLayoutEffect';\n\n/**\n * @name useDidUpdate\n * @description – Hook that triggers the effect callback on updates\n * @category Lifecycle\n * @usage necessary\n\n * @param {EffectCallback} effect The effect callback\n * @param {DependencyList} [deps] The dependencies list for the effect\n *\n * @example\n * useDidUpdate(() => console.log(\"effect runs on updates\"), deps);\n */\nexport const useDidUpdate = (effect: EffectCallback, deps?: DependencyList) => {\n const mountedRef = useRef(false);\n\n useIsomorphicLayoutEffect(\n () => () => {\n mountedRef.current = false;\n },\n []\n );\n\n useIsomorphicLayoutEffect(() => {\n if (mountedRef.current) {\n return effect();\n }\n\n mountedRef.current = true;\n return undefined;\n }, deps);\n};\n"],"names":["useDidUpdate","effect","deps","mountedRef","useRef","useIsomorphicLayoutEffect"],"mappings":";;AAkBO,MAAMA,IAAe,CAACC,GAAwBC,MAA0B;AAC7E,QAAMC,IAAaC,EAAO,EAAK;AAE/B,EAAAC;AAAA,IACE,MAAM,MAAM;AACV,MAAAF,EAAW,UAAU;AAAA,IAAA;AAAA,IAEvB,CAAA;AAAA,EAAC,GAGHE,EAA0B,MAAM;AAC9B,QAAIF,EAAW;AACb,aAAOF,EAAA;AAGT,IAAAE,EAAW,UAAU;AAAA,EACd,GACND,CAAI;AACT;"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { useState as c } from "react";
|
|
2
|
+
import { useIsomorphicLayoutEffect as l } from "../useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.mjs";
|
|
3
|
+
import { useRefState as v } from "../useRefState/useRefState.mjs";
|
|
4
|
+
import { isTarget as h } from "../../utils/helpers/isTarget.mjs";
|
|
5
|
+
const z = ((...u) => {
|
|
6
|
+
const e = u[0], [n, o] = c({ width: 0, height: 0 }), [s, g] = c(), r = v();
|
|
7
|
+
return l(() => {
|
|
8
|
+
const t = e ? h.getElement(e) : r.current;
|
|
9
|
+
if (!t) return;
|
|
10
|
+
const { width: m, height: f } = t.getBoundingClientRect();
|
|
11
|
+
o({
|
|
12
|
+
width: m,
|
|
13
|
+
height: f
|
|
14
|
+
});
|
|
15
|
+
const i = new ResizeObserver(() => {
|
|
16
|
+
const { width: a, height: d } = t.getBoundingClientRect();
|
|
17
|
+
o({ width: a, height: d });
|
|
18
|
+
});
|
|
19
|
+
return g(i), i.observe(t), () => {
|
|
20
|
+
i.disconnect();
|
|
21
|
+
};
|
|
22
|
+
}, [r.state, e && h.getRawElement(e)]), e ? { observer: s, value: n } : {
|
|
23
|
+
observer: s,
|
|
24
|
+
ref: r,
|
|
25
|
+
value: n
|
|
26
|
+
};
|
|
27
|
+
});
|
|
28
|
+
export {
|
|
29
|
+
z as useSize
|
|
30
|
+
};
|
|
31
|
+
//# sourceMappingURL=useSize.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useSize.mjs","sources":["../../../../src/hooks/useSize/useSize.ts"],"sourcesContent":["import { useState } from 'react';\n\nimport type { HookTarget } from '@/utils/helpers';\n\nimport { isTarget } from '@/utils/helpers';\n\nimport type { StateRef } from '../useRefState/useRefState';\n\nimport { useIsomorphicLayoutEffect } from '../useIsomorphicLayoutEffect/useIsomorphicLayoutEffect';\nimport { useRefState } from '../useRefState/useRefState';\n\n/** The size value type */\nexport interface UseSizeValue {\n /** The element's height */\n height: number;\n /** The element's width */\n width: number;\n}\n\n/** The use size return type */\nexport interface UseSizeReturn {\n /** The resize observer instance */\n observer?: ResizeObserver;\n /** The current size value */\n value: UseSizeValue;\n}\n\nexport interface UseSize {\n (target: HookTarget): UseSizeReturn;\n\n <Target extends Element>(\n target?: never\n ): {\n ref: StateRef<Target>;\n } & UseSizeReturn;\n}\n\n/**\n * @name useSize\n * @description - Hook that observes and returns the width and height of element\n * @category Elements\n * @usage low\n *\n * @overload\n * @param {HookTarget} target The target element to observe\n * @returns {UseSizeReturn} An object containing the resize observer, current width and height of the element\n *\n * @example\n * const { value, observer } = useSize(ref);\n *\n * @overload\n * @template Target The target element type\n * @returns { { ref: StateRef<Target> } & UseSizeReturn } An object containing the resize observer, current width and height of the element\n *\n * @example\n * const { ref, value, observer } = useSize();\n */\nexport const useSize = ((...params: any[]) => {\n const target = params[0] as HookTarget | undefined;\n const [size, setSize] = useState({ width: 0, height: 0 });\n const [observer, setObserver] = useState<ResizeObserver>();\n const internalRef = useRefState<Element>();\n\n useIsomorphicLayoutEffect(() => {\n const element = (target ? isTarget.getElement(target) : internalRef.current) as Element;\n\n if (!element) return;\n\n const { width, height } = element.getBoundingClientRect();\n setSize({\n width,\n height\n });\n\n const observer = new ResizeObserver(() => {\n const { width, height } = element.getBoundingClientRect();\n setSize({ width, height });\n });\n\n setObserver(observer);\n observer.observe(element);\n\n return () => {\n observer.disconnect();\n };\n }, [internalRef.state, target && isTarget.getRawElement(target)]);\n\n if (target) return { observer, value: size };\n return {\n observer,\n ref: internalRef,\n value: size\n };\n}) as UseSize;\n"],"names":["useSize","params","target","size","setSize","useState","observer","setObserver","internalRef","useRefState","useIsomorphicLayoutEffect","element","isTarget","width","height"],"mappings":";;;;AAyDO,MAAMA,KAAW,IAAIC,MAAkB;AAC5C,QAAMC,IAASD,EAAO,CAAC,GACjB,CAACE,GAAMC,CAAO,IAAIC,EAAS,EAAE,OAAO,GAAG,QAAQ,GAAG,GAClD,CAACC,GAAUC,CAAW,IAAIF,EAAA,GAC1BG,IAAcC,EAAA;AA0BpB,SAxBAC,EAA0B,MAAM;AAC9B,UAAMC,IAAWT,IAASU,EAAS,WAAWV,CAAM,IAAIM,EAAY;AAEpE,QAAI,CAACG,EAAS;AAEd,UAAM,EAAE,OAAAE,GAAO,QAAAC,MAAWH,EAAQ,sBAAA;AAClC,IAAAP,EAAQ;AAAA,MACN,OAAAS;AAAA,MACA,QAAAC;AAAA,IAAA,CACD;AAED,UAAMR,IAAW,IAAI,eAAe,MAAM;AACxC,YAAM,EAAE,OAAAO,GAAO,QAAAC,EAAAA,IAAWH,EAAQ,sBAAA;AAClC,MAAAP,EAAQ,EAAE,OAAAS,GAAO,QAAAC,GAAQ;AAAA,IAAA,CAC1B;AAED,WAAAP,EAAYD,CAAQ,GACpBA,EAAS,QAAQK,CAAO,GAEjB,MAAM;AACXL,MAAAA,EAAS,WAAA;AAAA,IAAW;AAAA,EACtB,GACC,CAACE,EAAY,OAAON,KAAUU,EAAS,cAAcV,CAAM,CAAC,CAAC,GAE5DA,IAAe,EAAE,UAAAI,GAAU,OAAOH,EAAA,IAC/B;AAAA,IACL,UAAAG;AAAA,IACA,KAAKE;AAAA,IACL,OAAOL;AAAA,EAAA;AAEX;"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { useRef as e, useEffect as l } from "react";
|
|
2
|
+
const R = (f, o, i) => {
|
|
3
|
+
const s = e(!0), r = e(void 0), t = e(null), u = e(!1), n = e(f), c = e(o);
|
|
4
|
+
n.current = f, c.current = o, l(() => {
|
|
5
|
+
if (s.current) {
|
|
6
|
+
s.current = !1;
|
|
7
|
+
return;
|
|
8
|
+
}
|
|
9
|
+
if (!u.current)
|
|
10
|
+
return r.current = n.current(), u.current = !0, setTimeout(() => {
|
|
11
|
+
u.current = !1, t.current = setTimeout(() => {
|
|
12
|
+
r.current = n.current();
|
|
13
|
+
}, c.current);
|
|
14
|
+
}, c.current), () => {
|
|
15
|
+
t.current && clearTimeout(t.current), t.current = null, typeof r.current == "function" && r.current();
|
|
16
|
+
};
|
|
17
|
+
}, i);
|
|
18
|
+
};
|
|
19
|
+
export {
|
|
20
|
+
R as useThrottleEffect
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=useThrottleEffect.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useThrottleEffect.mjs","sources":["../../../../src/hooks/useThrottleEffect/useThrottleEffect.ts"],"sourcesContent":["import type { DependencyList, EffectCallback } from 'react';\n\nimport { useEffect, useRef } from 'react';\n\n/**\n * @name useThrottleEffect\n * @description – Hook that runs an effect at most once per delay period when dependencies change\n * @category Utilities\n * @usage medium\n *\n * @param {EffectCallback} effect The effect callback to run\n * @param {number} delay The delay in milliseconds\n * @param {DependencyList} deps The dependencies list for the effect\n *\n * @example\n * useThrottleEffect(() => console.log('effect'), 500, [value]);\n */\nexport const useThrottleEffect = (effect: EffectCallback, delay: number, deps?: DependencyList) => {\n const mountedRef = useRef(true);\n const cleanupRef = useRef<ReturnType<EffectCallback>>(undefined);\n const timeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n const isCalledRef = useRef(false);\n\n const effectRef = useRef(effect);\n const delayRef = useRef(delay);\n\n effectRef.current = effect;\n delayRef.current = delay;\n\n useEffect(() => {\n if (mountedRef.current) {\n mountedRef.current = false;\n return;\n }\n\n if (isCalledRef.current) return;\n\n cleanupRef.current = effectRef.current();\n isCalledRef.current = true;\n\n setTimeout(() => {\n isCalledRef.current = false;\n\n timeoutRef.current = setTimeout(() => {\n cleanupRef.current = effectRef.current();\n }, delayRef.current);\n }, delayRef.current);\n\n return () => {\n if (timeoutRef.current) clearTimeout(timeoutRef.current);\n timeoutRef.current = null;\n if (typeof cleanupRef.current === 'function') cleanupRef.current();\n };\n }, deps);\n};\n"],"names":["useThrottleEffect","effect","delay","deps","mountedRef","useRef","cleanupRef","timeoutRef","isCalledRef","effectRef","delayRef","useEffect"],"mappings":";AAiBO,MAAMA,IAAoB,CAACC,GAAwBC,GAAeC,MAA0B;AACjG,QAAMC,IAAaC,EAAO,EAAI,GACxBC,IAAaD,EAAmC,MAAS,GACzDE,IAAaF,EAA6C,IAAI,GAC9DG,IAAcH,EAAO,EAAK,GAE1BI,IAAYJ,EAAOJ,CAAM,GACzBS,IAAWL,EAAOH,CAAK;AAE7B,EAAAO,EAAU,UAAUR,GACpBS,EAAS,UAAUR,GAEnBS,EAAU,MAAM;AACd,QAAIP,EAAW,SAAS;AACtB,MAAAA,EAAW,UAAU;AACrB;AAAA,IAAA;AAGF,QAAI,CAAAI,EAAY;AAEhB,aAAAF,EAAW,UAAUG,EAAU,QAAA,GAC/BD,EAAY,UAAU,IAEtB,WAAW,MAAM;AACf,QAAAA,EAAY,UAAU,IAEtBD,EAAW,UAAU,WAAW,MAAM;AACpC,UAAAD,EAAW,UAAUG,EAAU,QAAA;AAAA,QAAQ,GACtCC,EAAS,OAAO;AAAA,MAAA,GAClBA,EAAS,OAAO,GAEZ,MAAM;AACX,QAAIH,EAAW,WAAS,aAAaA,EAAW,OAAO,GACvDA,EAAW,UAAU,MACjB,OAAOD,EAAW,WAAY,gBAAuB,QAAA;AAAA,MAAQ;AAAA,EACnE,GACCH,CAAI;AACT;"}
|
|
@@ -1,40 +1,40 @@
|
|
|
1
|
-
import { useState as d, useRef as
|
|
2
|
-
import { useRefState as
|
|
3
|
-
import { isTarget as
|
|
4
|
-
const
|
|
5
|
-
const n =
|
|
6
|
-
return
|
|
7
|
-
if (!
|
|
8
|
-
const
|
|
9
|
-
if (!
|
|
1
|
+
import { useState as d, useRef as R, useEffect as m } from "react";
|
|
2
|
+
import { useRefState as C } from "../useRefState/useRefState.mjs";
|
|
3
|
+
import { isTarget as r } from "../../utils/helpers/isTarget.mjs";
|
|
4
|
+
const I = ((...e) => {
|
|
5
|
+
const n = r(e[0]) ? e[0] : void 0, t = n ? typeof e[1] == "object" ? e[1] : { onChange: e[1] } : typeof e[0] == "object" ? e[0] : { onChange: e[0] }, f = t?.onChange, l = t?.enabled ?? !0, [u, v] = d(), [s, y] = d(), b = s?.isIntersecting ?? !1, o = C(), g = R(f);
|
|
6
|
+
return g.current = f, m(() => {
|
|
7
|
+
if (!l || !n && !o.state) return;
|
|
8
|
+
const a = n ? r.getElement(n) : o.current;
|
|
9
|
+
if (!a) return;
|
|
10
10
|
const c = new IntersectionObserver(
|
|
11
|
-
(
|
|
12
|
-
const
|
|
13
|
-
y(
|
|
11
|
+
(E, h) => {
|
|
12
|
+
const i = E[0];
|
|
13
|
+
i && (y(i), g.current?.(i, h));
|
|
14
14
|
},
|
|
15
15
|
{
|
|
16
16
|
...t,
|
|
17
|
-
root: t?.root ?
|
|
17
|
+
root: t?.root ? r.getElement(t.root) : document
|
|
18
18
|
}
|
|
19
19
|
);
|
|
20
|
-
return v(c), c.observe(
|
|
20
|
+
return v(c), c.observe(a), () => {
|
|
21
21
|
c.disconnect();
|
|
22
22
|
};
|
|
23
23
|
}, [
|
|
24
|
-
n &&
|
|
25
|
-
|
|
24
|
+
n && r.getRawElement(n),
|
|
25
|
+
o.state,
|
|
26
26
|
t?.rootMargin,
|
|
27
27
|
t?.threshold,
|
|
28
28
|
t?.root,
|
|
29
|
-
|
|
30
|
-
]), n ? { observer: u, entry:
|
|
29
|
+
l
|
|
30
|
+
]), n ? { observer: u, entry: s, inView: b } : {
|
|
31
31
|
observer: u,
|
|
32
|
-
ref:
|
|
33
|
-
entry:
|
|
34
|
-
inView:
|
|
32
|
+
ref: o,
|
|
33
|
+
entry: s,
|
|
34
|
+
inView: b
|
|
35
35
|
};
|
|
36
36
|
});
|
|
37
37
|
export {
|
|
38
|
-
|
|
38
|
+
I as useVisibility
|
|
39
39
|
};
|
|
40
40
|
//# sourceMappingURL=useVisibility.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useVisibility.mjs","sources":["../../../../src/hooks/useVisibility/useVisibility.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\n\nimport type { HookTarget } from '@/utils/helpers';\n\nimport { isTarget } from '@/utils/helpers';\n\nimport type { StateRef } from '../useRefState/useRefState';\n\nimport { useRefState } from '../useRefState/useRefState';\n\n/** The visibility callback type */\nexport type UseVisibilityCallback = (\n entry: IntersectionObserverEntry,\n observer: IntersectionObserver\n) => void;\n\n/** The visibility options type */\nexport interface UseVisibilityOptions extends Omit<IntersectionObserverInit, 'root'> {\n /** The enabled state of the intersection */\n enabled?: boolean;\n /** The callback to execute when intersection is detected */\n onChange?: UseVisibilityCallback;\n /** The root element to observe */\n root?: HookTarget;\n}\n\n/** The intersection observer return type */\nexport interface UseVisibilityReturn {\n /** The intersection observer entry */\n entry?: IntersectionObserverEntry;\n /** The intersection observer in view */\n inView
|
|
1
|
+
{"version":3,"file":"useVisibility.mjs","sources":["../../../../src/hooks/useVisibility/useVisibility.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\n\nimport type { HookTarget } from '@/utils/helpers';\n\nimport { isTarget } from '@/utils/helpers';\n\nimport type { StateRef } from '../useRefState/useRefState';\n\nimport { useRefState } from '../useRefState/useRefState';\n\n/** The visibility callback type */\nexport type UseVisibilityCallback = (\n entry: IntersectionObserverEntry,\n observer: IntersectionObserver\n) => void;\n\n/** The visibility options type */\nexport interface UseVisibilityOptions extends Omit<IntersectionObserverInit, 'root'> {\n /** The enabled state of the intersection */\n enabled?: boolean;\n /** The callback to execute when intersection is detected */\n onChange?: UseVisibilityCallback;\n /** The root element to observe */\n root?: HookTarget;\n}\n\n/** The intersection observer return type */\nexport interface UseVisibilityReturn {\n /** The intersection observer entry */\n entry?: IntersectionObserverEntry;\n /** The intersection observer in view */\n inView: boolean;\n /** The intersection observer instance */\n observer?: IntersectionObserver;\n}\n\nexport interface UseVisibility {\n <Target extends Element>(\n options?: UseVisibilityOptions,\n target?: never\n ): UseVisibilityReturn & { ref: StateRef<Target> };\n\n (target: HookTarget, options?: UseVisibilityOptions): UseVisibilityReturn;\n\n <Target extends Element>(\n callback: UseVisibilityCallback,\n target?: never\n ): UseVisibilityReturn & { ref: StateRef<Target> };\n\n (target: HookTarget, callback: UseVisibilityCallback): UseVisibilityReturn;\n}\n\n/**\n * @name useVisibility\n * @description - Hook that gives you visibility observer state\n * @category Sensors\n * @usage medium\n *\n * @browserapi IntersectionObserver https://developer.mozilla.org/en-US/docs/Web/API/IntersectionObserver\n *\n * @overload\n * @param {HookTarget} target The target element to detect intersection\n * @param {boolean} [options.enabled=true] The Intersection options\n * @param {((entries: IntersectionEntry[], observer: Intersection) => void) | undefined} [options.onChange] The callback to execute when intersection is detected\n * @param {HookTarget} [options.root=document] The root element to observe\n * @returns {UseVisibilityReturn} An object containing the state\n *\n * @example\n * const { ref, entries, observer } = useVisibility();\n *\n * @overload\n * @template Target The target element\n * @param {boolean} [options.enabled=true] The Intersection options\n * @param {((entries: IntersectionEntry[], observer: Intersection) => void) | undefined} [options.onChange] The callback to execute when intersection is detected\n * @param {HookTarget} [options.root=document] The root element to observe\n * @returns {UseVisibilityReturn & { ref: StateRef<Target> }} A React ref to attach to the target element\n *\n * @example\n * const { entries, observer } = useVisibility(ref);\n *\n * @overload\n * @template Target The target element\n * @param {UseVisibilityCallback} callback The callback to execute when intersection is detected\n * @returns {UseVisibilityReturn & { ref: StateRef<Target> }} A React ref to attach to the target element\n *\n * @example\n * const { ref, entries, observer } = useVisibility(() => console.log('callback'));\n *\n * @overload\n * @param {UseVisibilityCallback} callback The callback to execute when intersection is detected\n * @param {HookTarget} target The target element to detect intersection\n * @returns {UseVisibilityReturn} An object containing the state\n *\n * @example\n * const { entries, observer } = useVisibility(ref, () => console.log('callback'));\n */\nexport const useVisibility = ((...params: any[]) => {\n const target = (isTarget(params[0]) ? params[0] : undefined) as HookTarget | undefined;\n\n const options = (\n target\n ? typeof params[1] === 'object'\n ? params[1]\n : { onChange: params[1] }\n : typeof params[0] === 'object'\n ? params[0]\n : { onChange: params[0] }\n ) as UseVisibilityOptions | undefined;\n\n const callback = options?.onChange;\n const enabled = options?.enabled ?? true;\n\n const [observer, setObserver] = useState<IntersectionObserver>();\n const [entry, setEntry] = useState<IntersectionObserverEntry>();\n const inView = entry?.isIntersecting ?? false;\n\n const internalRef = useRefState<Element>();\n const internalCallbackRef = useRef(callback);\n internalCallbackRef.current = callback;\n\n useEffect(() => {\n if (!enabled || (!target && !internalRef.state)) return;\n\n const element = target ? isTarget.getElement(target) : internalRef.current;\n if (!element) return;\n\n const observer = new IntersectionObserver(\n (entries: IntersectionObserverEntry[], observer: IntersectionObserver) => {\n const firstEntry = entries[0];\n if (firstEntry) {\n setEntry(firstEntry);\n internalCallbackRef.current?.(firstEntry, observer);\n }\n },\n {\n ...options,\n root: options?.root ? (isTarget.getElement(options.root) as Document | Element) : document\n }\n );\n\n setObserver(observer);\n observer.observe(element as Element);\n\n return () => {\n observer.disconnect();\n };\n }, [\n target && isTarget.getRawElement(target),\n internalRef.state,\n options?.rootMargin,\n options?.threshold,\n options?.root,\n enabled\n ]);\n\n if (target) return { observer, entry, inView };\n return {\n observer,\n ref: internalRef,\n entry,\n inView\n };\n}) as UseVisibility;\n"],"names":["useVisibility","params","target","isTarget","options","callback","enabled","observer","setObserver","useState","entry","setEntry","inView","internalRef","useRefState","internalCallbackRef","useRef","useEffect","element","entries","firstEntry"],"mappings":";;;AAgGO,MAAMA,KAAiB,IAAIC,MAAkB;AAClD,QAAMC,IAAUC,EAASF,EAAO,CAAC,CAAC,IAAIA,EAAO,CAAC,IAAI,QAE5CG,IACJF,IACI,OAAOD,EAAO,CAAC,KAAM,WACnBA,EAAO,CAAC,IACR,EAAE,UAAUA,EAAO,CAAC,EAAA,IACtB,OAAOA,EAAO,CAAC,KAAM,WACnBA,EAAO,CAAC,IACR,EAAE,UAAUA,EAAO,CAAC,EAAA,GAGtBI,IAAWD,GAAS,UACpBE,IAAUF,GAAS,WAAW,IAE9B,CAACG,GAAUC,CAAW,IAAIC,EAAA,GAC1B,CAACC,GAAOC,CAAQ,IAAIF,EAAA,GACpBG,IAASF,GAAO,kBAAkB,IAElCG,IAAcC,EAAA,GACdC,IAAsBC,EAAOX,CAAQ;AAsC3C,SArCAU,EAAoB,UAAUV,GAE9BY,EAAU,MAAM;AACd,QAAI,CAACX,KAAY,CAACJ,KAAU,CAACW,EAAY,MAAQ;AAEjD,UAAMK,IAAUhB,IAASC,EAAS,WAAWD,CAAM,IAAIW,EAAY;AACnE,QAAI,CAACK,EAAS;AAEd,UAAMX,IAAW,IAAI;AAAA,MACnB,CAACY,GAAsCZ,MAAmC;AACxE,cAAMa,IAAaD,EAAQ,CAAC;AAC5B,QAAIC,MACFT,EAASS,CAAU,GACnBL,EAAoB,UAAUK,GAAYb,CAAQ;AAAA,MACpD;AAAA,MAEF;AAAA,QACE,GAAGH;AAAA,QACH,MAAMA,GAAS,OAAQD,EAAS,WAAWC,EAAQ,IAAI,IAA2B;AAAA,MAAA;AAAA,IACpF;AAGF,WAAAI,EAAYD,CAAQ,GACpBA,EAAS,QAAQW,CAAkB,GAE5B,MAAM;AACXX,MAAAA,EAAS,WAAA;AAAA,IAAW;AAAA,EACtB,GACC;AAAA,IACDL,KAAUC,EAAS,cAAcD,CAAM;AAAA,IACvCW,EAAY;AAAA,IACZT,GAAS;AAAA,IACTA,GAAS;AAAA,IACTA,GAAS;AAAA,IACTE;AAAA,EAAA,CACD,GAEGJ,IAAe,EAAE,UAAAK,GAAU,OAAAG,GAAO,QAAAE,EAAA,IAC/B;AAAA,IACL,UAAAL;AAAA,IACA,KAAKM;AAAA,IACL,OAAAH;AAAA,IACA,QAAAE;AAAA,EAAA;AAEJ;"}
|
package/dist/esm/index.mjs
CHANGED
|
@@ -11,7 +11,7 @@ import { useAudio as d } from "./hooks/useAudio/useAudio.mjs";
|
|
|
11
11
|
import { useBattery as P } from "./hooks/useBattery/useBattery.mjs";
|
|
12
12
|
import { useBluetooth as I } from "./hooks/useBluetooth/useBluetooth.mjs";
|
|
13
13
|
import { useBroadcastChannel as O } from "./hooks/useBroadcastChannel/useBroadcastChannel.mjs";
|
|
14
|
-
import { useClipboard as
|
|
14
|
+
import { useClipboard as k } from "./hooks/useClipboard/useClipboard.mjs";
|
|
15
15
|
import { useCopy as _ } from "./hooks/useCopy/useCopy.mjs";
|
|
16
16
|
import { useCssVar as D } from "./hooks/useCssVar/useCssVar.mjs";
|
|
17
17
|
import { useDisplayMedia as M } from "./hooks/useDisplayMedia/useDisplayMedia.mjs";
|
|
@@ -36,7 +36,7 @@ import { useRaf as Re } from "./hooks/useRaf/useRaf.mjs";
|
|
|
36
36
|
import { useShare as Ce } from "./hooks/useShare/useShare.mjs";
|
|
37
37
|
import { getSpeechRecognition as Ae, useSpeechRecognition as Ie } from "./hooks/useSpeechRecognition/useSpeechRecognition.mjs";
|
|
38
38
|
import { useSpeechSynthesis as Oe } from "./hooks/useSpeechSynthesis/useSpeechSynthesis.mjs";
|
|
39
|
-
import { useVibrate as
|
|
39
|
+
import { useVibrate as ke } from "./hooks/useVibrate/useVibrate.mjs";
|
|
40
40
|
import { useVirtualKeyboard as _e } from "./hooks/useVirtualKeyboard/useVirtualKeyboard.mjs";
|
|
41
41
|
import { useWakeLock as De } from "./hooks/useWakeLock/useWakeLock.mjs";
|
|
42
42
|
import { useWebSocket as Me } from "./hooks/useWebSocket/useWebSocket.mjs";
|
|
@@ -60,7 +60,7 @@ import { useRightClick as go } from "./hooks/useRightClick/useRightClick.mjs";
|
|
|
60
60
|
import { SCRIPT_STATUS_ATTRIBUTE_NAME as Co, useScript as Po } from "./hooks/useScript/useScript.mjs";
|
|
61
61
|
import { useSticky as Io } from "./hooks/useSticky/useSticky.mjs";
|
|
62
62
|
import { useTextareaAutosize as Oo } from "./hooks/useTextareaAutosize/useTextareaAutosize.mjs";
|
|
63
|
-
import { useTextDirection as
|
|
63
|
+
import { useTextDirection as ko } from "./hooks/useTextDirection/useTextDirection.mjs";
|
|
64
64
|
import { useFul as _o } from "./hooks/useFul/useFul.mjs";
|
|
65
65
|
import { useLess as Do } from "./hooks/useLess/useLess.mjs";
|
|
66
66
|
import { useOnce as Mo } from "./hooks/useOnce/useOnce.mjs";
|
|
@@ -77,29 +77,29 @@ import { useDeviceOrientation as ar } from "./hooks/useDeviceOrientation/useDevi
|
|
|
77
77
|
import { useDevicePixelRatio as nr } from "./hooks/useDevicePixelRatio/useDevicePixelRatio.mjs";
|
|
78
78
|
import { useDocumentEvent as lr } from "./hooks/useDocumentEvent/useDocumentEvent.mjs";
|
|
79
79
|
import { useDocumentVisibility as Er } from "./hooks/useDocumentVisibility/useDocumentVisibility.mjs";
|
|
80
|
-
import {
|
|
81
|
-
import {
|
|
82
|
-
import {
|
|
83
|
-
import {
|
|
84
|
-
import {
|
|
85
|
-
import {
|
|
86
|
-
import {
|
|
87
|
-
import {
|
|
88
|
-
import {
|
|
89
|
-
import {
|
|
90
|
-
import {
|
|
91
|
-
import {
|
|
92
|
-
import {
|
|
93
|
-
import {
|
|
94
|
-
import {
|
|
95
|
-
import {
|
|
96
|
-
import {
|
|
97
|
-
import {
|
|
98
|
-
import {
|
|
99
|
-
import {
|
|
100
|
-
import {
|
|
101
|
-
import {
|
|
102
|
-
import {
|
|
80
|
+
import { useEventListener as gr } from "./hooks/useEventListener/useEventListener.mjs";
|
|
81
|
+
import { isHotkeyMatch as dr, useHotkeys as Cr } from "./hooks/useHotkeys/useHotkeys.mjs";
|
|
82
|
+
import { useIdle as Ar } from "./hooks/useIdle/useIdle.mjs";
|
|
83
|
+
import { useInfiniteScroll as yr } from "./hooks/useInfiniteScroll/useInfiniteScroll.mjs";
|
|
84
|
+
import { useIntersectionObserver as hr } from "./hooks/useIntersectionObserver/useIntersectionObserver.mjs";
|
|
85
|
+
import { useKeyboard as vr } from "./hooks/useKeyboard/useKeyboard.mjs";
|
|
86
|
+
import { useKeyPress as br } from "./hooks/useKeyPress/useKeyPress.mjs";
|
|
87
|
+
import { useKeyPressEvent as Lr } from "./hooks/useKeyPressEvent/useKeyPressEvent.mjs";
|
|
88
|
+
import { useKeysPressed as Nr } from "./hooks/useKeysPressed/useKeysPressed.mjs";
|
|
89
|
+
import { useLockScroll as Kr } from "./hooks/useLockScroll/useLockScroll.mjs";
|
|
90
|
+
import { useMeasure as Ur } from "./hooks/useMeasure/useMeasure.mjs";
|
|
91
|
+
import { useMediaQuery as wr } from "./hooks/useMediaQuery/useMediaQuery.mjs";
|
|
92
|
+
import { useMouse as Wr } from "./hooks/useMouse/useMouse.mjs";
|
|
93
|
+
import { useMutationObserver as Gr } from "./hooks/useMutationObserver/useMutationObserver.mjs";
|
|
94
|
+
import { useOrientation as Xr } from "./hooks/useOrientation/useOrientation.mjs";
|
|
95
|
+
import { usePageLeave as Zr } from "./hooks/usePageLeave/usePageLeave.mjs";
|
|
96
|
+
import { useParallax as Jr } from "./hooks/useParallax/useParallax.mjs";
|
|
97
|
+
import { usePerformanceObserver as $r } from "./hooks/usePerformanceObserver/usePerformanceObserver.mjs";
|
|
98
|
+
import { useResizeObserver as ot } from "./hooks/useResizeObserver/useResizeObserver.mjs";
|
|
99
|
+
import { useScroll as tt } from "./hooks/useScroll/useScroll.mjs";
|
|
100
|
+
import { useScrollIntoView as ut } from "./hooks/useScrollIntoView/useScrollIntoView.mjs";
|
|
101
|
+
import { useScrollTo as pt } from "./hooks/useScrollTo/useScrollTo.mjs";
|
|
102
|
+
import { useSize as xt } from "./hooks/useSize/useSize.mjs";
|
|
103
103
|
import { getRangesSelection as it, useTextSelection as nt } from "./hooks/useTextSelection/useTextSelection.mjs";
|
|
104
104
|
import { useVisibility as lt } from "./hooks/useVisibility/useVisibility.mjs";
|
|
105
105
|
import { useWindowEvent as Et } from "./hooks/useWindowEvent/useWindowEvent.mjs";
|
|
@@ -107,7 +107,7 @@ import { useWindowFocus as gt } from "./hooks/useWindowFocus/useWindowFocus.mjs"
|
|
|
107
107
|
import { scrollTo as dt, useWindowScroll as Ct } from "./hooks/useWindowScroll/useWindowScroll.mjs";
|
|
108
108
|
import { useWindowSize as At } from "./hooks/useWindowSize/useWindowSize.mjs";
|
|
109
109
|
import { useBoolean as yt } from "./hooks/useBoolean/useBoolean.mjs";
|
|
110
|
-
import { useControllableState as
|
|
110
|
+
import { useControllableState as ht } from "./hooks/useControllableState/useControllableState.mjs";
|
|
111
111
|
import { COOKIE_EVENT as vt, dispatchCookieEvent as _t, getCookie as bt, getCookies as Dt, removeCookie as Lt, removeCookieItem as Mt, setCookie as Nt, setCookieItem as Bt, useCookie as Kt } from "./hooks/useCookie/useCookie.mjs";
|
|
112
112
|
import { clearCookies as Ut, useCookies as Vt } from "./hooks/useCookies/useCookies.mjs";
|
|
113
113
|
import { useCounter as Ht } from "./hooks/useCounter/useCounter.mjs";
|
|
@@ -127,7 +127,7 @@ import { useSessionStorage as gs } from "./hooks/useSessionStorage/useSessionSto
|
|
|
127
127
|
import { useSet as ds } from "./hooks/useSet/useSet.mjs";
|
|
128
128
|
import { stateHistoryReducer as Ps, useStateHistory as As } from "./hooks/useStateHistory/useStateHistory.mjs";
|
|
129
129
|
import { useStep as ys } from "./hooks/useStep/useStep.mjs";
|
|
130
|
-
import { STORAGE_EVENT as
|
|
130
|
+
import { STORAGE_EVENT as hs, dispatchStorageEvent as ks, useStorage as vs } from "./hooks/useStorage/useStorage.mjs";
|
|
131
131
|
import { useToggle as bs } from "./hooks/useToggle/useToggle.mjs";
|
|
132
132
|
import { URL_SEARCH_PARAMS_EVENT as Ls, createQueryString as Ms, dispatchUrlSearchParamsEvent as Ns, getUrlSearchParams as Bs, useUrlSearchParam as Ks } from "./hooks/useUrlSearchParam/useUrlSearchParam.mjs";
|
|
133
133
|
import { useUrlSearchParams as Us } from "./hooks/useUrlSearchParams/useUrlSearchParams.mjs";
|
|
@@ -147,21 +147,23 @@ import { usePreferredReducedMotion as cu } from "./hooks/usePreferredReducedMoti
|
|
|
147
147
|
import { useBatchedCallback as Su } from "./hooks/useBatchedCallback/useBatchedCallback.mjs";
|
|
148
148
|
import { useConst as Tu } from "./hooks/useConst/useConst.mjs";
|
|
149
149
|
import { useDebounceCallback as Ru } from "./hooks/useDebounceCallback/useDebounceCallback.mjs";
|
|
150
|
-
import {
|
|
151
|
-
import {
|
|
152
|
-
import {
|
|
153
|
-
import {
|
|
154
|
-
import {
|
|
155
|
-
import {
|
|
156
|
-
import {
|
|
157
|
-
import {
|
|
158
|
-
import {
|
|
159
|
-
import {
|
|
160
|
-
import {
|
|
161
|
-
import {
|
|
162
|
-
import {
|
|
163
|
-
import {
|
|
164
|
-
import {
|
|
150
|
+
import { useDebounceEffect as Cu } from "./hooks/useDebounceEffect/useDebounceEffect.mjs";
|
|
151
|
+
import { useDebounceState as Au } from "./hooks/useDebounceState/useDebounceState.mjs";
|
|
152
|
+
import { useDebounceValue as yu } from "./hooks/useDebounceValue/useDebounceValue.mjs";
|
|
153
|
+
import { useEvent as hu } from "./hooks/useEvent/useEvent.mjs";
|
|
154
|
+
import { useLastChanged as vu } from "./hooks/useLastChanged/useLastChanged.mjs";
|
|
155
|
+
import { useLatest as bu } from "./hooks/useLatest/useLatest.mjs";
|
|
156
|
+
import { usePrevious as Lu } from "./hooks/usePrevious/usePrevious.mjs";
|
|
157
|
+
import { useThrottleCallback as Nu } from "./hooks/useThrottleCallback/useThrottleCallback.mjs";
|
|
158
|
+
import { useThrottleEffect as Ku } from "./hooks/useThrottleEffect/useThrottleEffect.mjs";
|
|
159
|
+
import { useThrottleState as Uu } from "./hooks/useThrottleState/useThrottleState.mjs";
|
|
160
|
+
import { useThrottleValue as wu } from "./hooks/useThrottleValue/useThrottleValue.mjs";
|
|
161
|
+
import { copy as Wu, legacyCopyToClipboard as zu } from "./utils/helpers/copy.mjs";
|
|
162
|
+
import { debounce as Qu } from "./utils/helpers/debounce.mjs";
|
|
163
|
+
import { getDate as qu } from "./utils/helpers/getDate.mjs";
|
|
164
|
+
import { getRetry as ju } from "./utils/helpers/getRetry.mjs";
|
|
165
|
+
import { getRawElement as Yu, getRefState as $u, isBrowserTarget as em, isRef as om, isRefState as rm, isTarget as tm, target as sm, targetSymbol as um } from "./utils/helpers/isTarget.mjs";
|
|
166
|
+
import { throttle as pm } from "./utils/helpers/throttle.mjs";
|
|
165
167
|
export {
|
|
166
168
|
Jo as BREAKPOINTS_ANT_DESIGN,
|
|
167
169
|
Yo as BREAKPOINTS_BOOTSTRAP_V5,
|
|
@@ -178,41 +180,41 @@ export {
|
|
|
178
180
|
lo as Paint,
|
|
179
181
|
So as Pointer,
|
|
180
182
|
Co as SCRIPT_STATUS_ATTRIBUTE_NAME,
|
|
181
|
-
|
|
183
|
+
hs as STORAGE_EVENT,
|
|
182
184
|
Ls as URL_SEARCH_PARAMS_EVENT,
|
|
183
185
|
us as assignRef,
|
|
184
186
|
Ut as clearCookies,
|
|
185
|
-
|
|
187
|
+
Wu as copy,
|
|
186
188
|
r as createContext,
|
|
187
189
|
s as createEventEmitter,
|
|
188
190
|
Ms as createQueryString,
|
|
189
191
|
m as createReactiveContext,
|
|
190
192
|
Ss as createRefState,
|
|
191
193
|
f as createStore,
|
|
192
|
-
|
|
194
|
+
Qu as debounce,
|
|
193
195
|
Qo as deepEqual,
|
|
194
196
|
_t as dispatchCookieEvent,
|
|
195
|
-
|
|
197
|
+
ks as dispatchStorageEvent,
|
|
196
198
|
Ns as dispatchUrlSearchParamsEvent,
|
|
197
199
|
se as getConnection,
|
|
198
200
|
bt as getCookie,
|
|
199
201
|
Dt as getCookies,
|
|
200
|
-
|
|
202
|
+
qu as getDate,
|
|
201
203
|
jt as getHash,
|
|
202
204
|
ru as getOperatingSystem,
|
|
203
205
|
it as getRangesSelection,
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
206
|
+
Yu as getRawElement,
|
|
207
|
+
$u as getRefState,
|
|
208
|
+
ju as getRetry,
|
|
207
209
|
Ae as getSpeechRecognition,
|
|
208
210
|
Js as getTimeFromSeconds,
|
|
209
211
|
Bs as getUrlSearchParams,
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
212
|
+
em as isBrowserTarget,
|
|
213
|
+
dr as isHotkeyMatch,
|
|
214
|
+
om as isRef,
|
|
215
|
+
rm as isRefState,
|
|
216
|
+
tm as isTarget,
|
|
217
|
+
zu as legacyCopyToClipboard,
|
|
216
218
|
q as mapGamepadToXbox360Controller,
|
|
217
219
|
ms as mergeRefs,
|
|
218
220
|
Lt as removeCookie,
|
|
@@ -221,9 +223,9 @@ export {
|
|
|
221
223
|
Nt as setCookie,
|
|
222
224
|
Bt as setCookieItem,
|
|
223
225
|
Ps as stateHistoryReducer,
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
226
|
+
sm as target,
|
|
227
|
+
um as targetSymbol,
|
|
228
|
+
pm as throttle,
|
|
227
229
|
$ as timeRangeToArray,
|
|
228
230
|
ze as useActiveElement,
|
|
229
231
|
a as useAsync,
|
|
@@ -238,17 +240,18 @@ export {
|
|
|
238
240
|
O as useBroadcastChannel,
|
|
239
241
|
eu as useBrowserLanguage,
|
|
240
242
|
qe as useClickOutside,
|
|
241
|
-
|
|
243
|
+
k as useClipboard,
|
|
242
244
|
Tu as useConst,
|
|
243
|
-
|
|
245
|
+
ht as useControllableState,
|
|
244
246
|
Kt as useCookie,
|
|
245
247
|
Vt as useCookies,
|
|
246
248
|
_ as useCopy,
|
|
247
249
|
Ht as useCounter,
|
|
248
250
|
D as useCssVar,
|
|
249
251
|
Ru as useDebounceCallback,
|
|
250
|
-
Cu as
|
|
251
|
-
Au as
|
|
252
|
+
Cu as useDebounceEffect,
|
|
253
|
+
Au as useDebounceState,
|
|
254
|
+
yu as useDebounceValue,
|
|
252
255
|
zt as useDefault,
|
|
253
256
|
fr as useDeviceMotion,
|
|
254
257
|
ar as useDeviceOrientation,
|
|
@@ -261,9 +264,8 @@ export {
|
|
|
261
264
|
Er as useDocumentVisibility,
|
|
262
265
|
Je as useDoubleClick,
|
|
263
266
|
$e as useDropZone,
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
dr as useEventListener,
|
|
267
|
+
hu as useEvent,
|
|
268
|
+
gr as useEventListener,
|
|
267
269
|
F as useEventSource,
|
|
268
270
|
V as useEyeDropper,
|
|
269
271
|
H as useFavicon,
|
|
@@ -277,50 +279,50 @@ export {
|
|
|
277
279
|
Z as useGamepad,
|
|
278
280
|
J as useGeolocation,
|
|
279
281
|
Jt as useHash,
|
|
280
|
-
|
|
282
|
+
Cr as useHotkeys,
|
|
281
283
|
fo as useHover,
|
|
282
|
-
|
|
284
|
+
Ar as useIdle,
|
|
283
285
|
ao as useImage,
|
|
284
|
-
|
|
285
|
-
|
|
286
|
+
yr as useInfiniteScroll,
|
|
287
|
+
hr as useIntersectionObserver,
|
|
286
288
|
Ws as useInterval,
|
|
287
289
|
Vo as useIsFirstRender,
|
|
288
290
|
Ho as useIsomorphicLayoutEffect,
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
291
|
+
br as useKeyPress,
|
|
292
|
+
Lr as useKeyPressEvent,
|
|
293
|
+
vr as useKeyboard,
|
|
294
|
+
Nr as useKeysPressed,
|
|
295
|
+
vu as useLastChanged,
|
|
296
|
+
bu as useLatest,
|
|
295
297
|
Do as useLess,
|
|
296
298
|
$t as useList,
|
|
297
299
|
os as useLocalStorage,
|
|
298
300
|
n as useLockCallback,
|
|
299
|
-
|
|
301
|
+
Kr as useLockScroll,
|
|
300
302
|
Be as useLogger,
|
|
301
303
|
no as useLongPress,
|
|
302
304
|
ts as useMap,
|
|
303
|
-
|
|
305
|
+
Ur as useMeasure,
|
|
304
306
|
ee as useMediaControls,
|
|
305
|
-
|
|
307
|
+
wr as useMediaQuery,
|
|
306
308
|
re as useMemory,
|
|
307
309
|
ps as useMergedRef,
|
|
308
310
|
zo as useMount,
|
|
309
|
-
|
|
311
|
+
Wr as useMouse,
|
|
310
312
|
l as useMutation,
|
|
311
|
-
|
|
313
|
+
Gr as useMutationObserver,
|
|
312
314
|
ue as useNetwork,
|
|
313
315
|
xs as useOffsetPagination,
|
|
314
316
|
Mo as useOnce,
|
|
315
317
|
pe as useOnline,
|
|
316
318
|
tu as useOperatingSystem,
|
|
317
319
|
E as useOptimistic,
|
|
318
|
-
|
|
320
|
+
Xr as useOrientation,
|
|
319
321
|
xe as useOtpCredential,
|
|
320
|
-
|
|
322
|
+
Zr as usePageLeave,
|
|
321
323
|
Eo as usePaint,
|
|
322
|
-
|
|
323
|
-
|
|
324
|
+
Jr as useParallax,
|
|
325
|
+
$r as usePerformanceObserver,
|
|
324
326
|
ie as usePermission,
|
|
325
327
|
ce as usePictureInPicture,
|
|
326
328
|
Se as usePointerLock,
|
|
@@ -330,7 +332,7 @@ export {
|
|
|
330
332
|
xu as usePreferredDark,
|
|
331
333
|
iu as usePreferredLanguages,
|
|
332
334
|
cu as usePreferredReducedMotion,
|
|
333
|
-
|
|
335
|
+
Lu as usePrevious,
|
|
334
336
|
g as useQuery,
|
|
335
337
|
is as useQueue,
|
|
336
338
|
Re as useRaf,
|
|
@@ -339,16 +341,17 @@ export {
|
|
|
339
341
|
Fe as useRenderCount,
|
|
340
342
|
Ve as useRenderInfo,
|
|
341
343
|
He as useRerender,
|
|
342
|
-
|
|
344
|
+
ot as useResizeObserver,
|
|
343
345
|
go as useRightClick,
|
|
344
346
|
Po as useScript,
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
347
|
+
tt as useScroll,
|
|
348
|
+
ut as useScrollIntoView,
|
|
349
|
+
pt as useScrollTo,
|
|
348
350
|
gs as useSessionStorage,
|
|
349
351
|
ds as useSet,
|
|
350
352
|
Xo as useShallowEffect,
|
|
351
353
|
Ce as useShare,
|
|
354
|
+
xt as useSize,
|
|
352
355
|
Ie as useSpeechRecognition,
|
|
353
356
|
Oe as useSpeechSynthesis,
|
|
354
357
|
As as useStateHistory,
|
|
@@ -356,12 +359,13 @@ export {
|
|
|
356
359
|
Io as useSticky,
|
|
357
360
|
Gs as useStopwatch,
|
|
358
361
|
vs as useStorage,
|
|
359
|
-
|
|
362
|
+
ko as useTextDirection,
|
|
360
363
|
nt as useTextSelection,
|
|
361
364
|
Oo as useTextareaAutosize,
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
+
Nu as useThrottleCallback,
|
|
366
|
+
Ku as useThrottleEffect,
|
|
367
|
+
Uu as useThrottleState,
|
|
368
|
+
wu as useThrottleValue,
|
|
365
369
|
Xs as useTime,
|
|
366
370
|
Zs as useTimeout,
|
|
367
371
|
Ys as useTimer,
|
|
@@ -369,7 +373,7 @@ export {
|
|
|
369
373
|
Zo as useUnmount,
|
|
370
374
|
Ks as useUrlSearchParam,
|
|
371
375
|
Us as useUrlSearchParams,
|
|
372
|
-
|
|
376
|
+
ke as useVibrate,
|
|
373
377
|
_e as useVirtualKeyboard,
|
|
374
378
|
lt as useVisibility,
|
|
375
379
|
De as useWakeLock,
|
package/dist/esm/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -4,7 +4,6 @@ export * from './useDeviceOrientation/useDeviceOrientation';
|
|
|
4
4
|
export * from './useDevicePixelRatio/useDevicePixelRatio';
|
|
5
5
|
export * from './useDocumentEvent/useDocumentEvent';
|
|
6
6
|
export * from './useDocumentVisibility/useDocumentVisibility';
|
|
7
|
-
export * from './useElementSize/useElementSize';
|
|
8
7
|
export * from './useEventListener/useEventListener';
|
|
9
8
|
export * from './useHotkeys/useHotkeys';
|
|
10
9
|
export * from './useIdle/useIdle';
|
|
@@ -27,6 +26,7 @@ export * from './useResizeObserver/useResizeObserver';
|
|
|
27
26
|
export * from './useScroll/useScroll';
|
|
28
27
|
export * from './useScrollIntoView/useScrollIntoView';
|
|
29
28
|
export * from './useScrollTo/useScrollTo';
|
|
29
|
+
export * from './useSize/useSize';
|
|
30
30
|
export * from './useTextSelection/useTextSelection';
|
|
31
31
|
export * from './useVisibility/useVisibility';
|
|
32
32
|
export * from './useWindowEvent/useWindowEvent';
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { DependencyList, EffectCallback } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* @name useDebounceEffect
|
|
4
|
+
* @description – Hook that runs an effect after a delay when dependencies change
|
|
5
|
+
* @category Utilities
|
|
6
|
+
* @usage high
|
|
7
|
+
*
|
|
8
|
+
* @param {EffectCallback} effect The effect callback to run
|
|
9
|
+
* @param {number} delay The delay in milliseconds
|
|
10
|
+
* @param {DependencyList} deps The dependencies list for the effect
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* useDebounceEffect(() => console.log('effect'), 500, [value]);
|
|
14
|
+
*/
|
|
15
|
+
export declare const useDebounceEffect: (effect: EffectCallback, delay: number, deps?: DependencyList) => void;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { HookTarget } from '../../utils/helpers';
|
|
2
|
+
import { StateRef } from '../useRefState/useRefState';
|
|
3
|
+
/** The size value type */
|
|
4
|
+
export interface UseSizeValue {
|
|
5
|
+
/** The element's height */
|
|
6
|
+
height: number;
|
|
7
|
+
/** The element's width */
|
|
8
|
+
width: number;
|
|
9
|
+
}
|
|
10
|
+
/** The use size return type */
|
|
11
|
+
export interface UseSizeReturn {
|
|
12
|
+
/** The resize observer instance */
|
|
13
|
+
observer?: ResizeObserver;
|
|
14
|
+
/** The current size value */
|
|
15
|
+
value: UseSizeValue;
|
|
16
|
+
}
|
|
17
|
+
export interface UseSize {
|
|
18
|
+
(target: HookTarget): UseSizeReturn;
|
|
19
|
+
<Target extends Element>(target?: never): {
|
|
20
|
+
ref: StateRef<Target>;
|
|
21
|
+
} & UseSizeReturn;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* @name useSize
|
|
25
|
+
* @description - Hook that observes and returns the width and height of element
|
|
26
|
+
* @category Elements
|
|
27
|
+
* @usage low
|
|
28
|
+
*
|
|
29
|
+
* @overload
|
|
30
|
+
* @param {HookTarget} target The target element to observe
|
|
31
|
+
* @returns {UseSizeReturn} An object containing the resize observer, current width and height of the element
|
|
32
|
+
*
|
|
33
|
+
* @example
|
|
34
|
+
* const { value, observer } = useSize(ref);
|
|
35
|
+
*
|
|
36
|
+
* @overload
|
|
37
|
+
* @template Target The target element type
|
|
38
|
+
* @returns { { ref: StateRef<Target> } & UseSizeReturn } An object containing the resize observer, current width and height of the element
|
|
39
|
+
*
|
|
40
|
+
* @example
|
|
41
|
+
* const { ref, value, observer } = useSize();
|
|
42
|
+
*/
|
|
43
|
+
export declare const useSize: UseSize;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { DependencyList, EffectCallback } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* @name useThrottleEffect
|
|
4
|
+
* @description – Hook that runs an effect at most once per delay period when dependencies change
|
|
5
|
+
* @category Utilities
|
|
6
|
+
* @usage medium
|
|
7
|
+
*
|
|
8
|
+
* @param {EffectCallback} effect The effect callback to run
|
|
9
|
+
* @param {number} delay The delay in milliseconds
|
|
10
|
+
* @param {DependencyList} deps The dependencies list for the effect
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* useThrottleEffect(() => console.log('effect'), 500, [value]);
|
|
14
|
+
*/
|
|
15
|
+
export declare const useThrottleEffect: (effect: EffectCallback, delay: number, deps?: DependencyList) => void;
|
|
@@ -16,7 +16,7 @@ export interface UseVisibilityReturn {
|
|
|
16
16
|
/** The intersection observer entry */
|
|
17
17
|
entry?: IntersectionObserverEntry;
|
|
18
18
|
/** The intersection observer in view */
|
|
19
|
-
inView
|
|
19
|
+
inView: boolean;
|
|
20
20
|
/** The intersection observer instance */
|
|
21
21
|
observer?: IntersectionObserver;
|
|
22
22
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export * from './useBatchedCallback/useBatchedCallback';
|
|
2
2
|
export * from './useConst/useConst';
|
|
3
3
|
export * from './useDebounceCallback/useDebounceCallback';
|
|
4
|
+
export * from './useDebounceEffect/useDebounceEffect';
|
|
4
5
|
export * from './useDebounceState/useDebounceState';
|
|
5
6
|
export * from './useDebounceValue/useDebounceValue';
|
|
6
7
|
export * from './useEvent/useEvent';
|
|
@@ -8,5 +9,6 @@ export * from './useLastChanged/useLastChanged';
|
|
|
8
9
|
export * from './useLatest/useLatest';
|
|
9
10
|
export * from './usePrevious/usePrevious';
|
|
10
11
|
export * from './useThrottleCallback/useThrottleCallback';
|
|
12
|
+
export * from './useThrottleEffect/useThrottleEffect';
|
|
11
13
|
export * from './useThrottleState/useThrottleState';
|
|
12
14
|
export * from './useThrottleValue/useThrottleValue';
|
package/package.json
CHANGED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("react"),f=require("../useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.cjs"),d=require("../useRefState/useRefState.cjs"),o=require("../../utils/helpers/isTarget.cjs"),m=((...u)=>{const e=u[0],[i,n]=l.useState({width:0,height:0}),r=d.useRefState();return f.useIsomorphicLayoutEffect(()=>{const t=e?o.isTarget.getElement(e):r.current;if(!t)return;const{width:c,height:a}=t.getBoundingClientRect();n({width:c,height:a});const s=new ResizeObserver(()=>{const{width:g,height:h}=t.getBoundingClientRect();n({width:g,height:h})});return s.observe(t),()=>{s.disconnect()}},[r.state,e&&o.isTarget.getRawElement(e)]),e?{value:i}:{ref:r,value:i}});exports.useElementSize=m;
|
|
2
|
-
//# sourceMappingURL=useElementSize.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useElementSize.cjs","sources":["../../../../src/hooks/useElementSize/useElementSize.ts"],"sourcesContent":["import { useState } from 'react';\n\nimport type { HookTarget } from '@/utils/helpers';\n\nimport { isTarget } from '@/utils/helpers';\n\nimport type { StateRef } from '../useRefState/useRefState';\n\nimport { useIsomorphicLayoutEffect } from '../useIsomorphicLayoutEffect/useIsomorphicLayoutEffect';\nimport { useRefState } from '../useRefState/useRefState';\n\n/** The element size value type */\nexport interface UseElementSizeValue {\n /** The element's height */\n height: number;\n /** The element's width */\n width: number;\n}\n\n/** The use element size return type */\nexport interface UseElementSizeReturn {\n value: UseElementSizeValue;\n}\n\nexport interface UseElementSize {\n (target: HookTarget): UseElementSizeReturn;\n\n <Target extends Element>(\n target?: never\n ): {\n ref: StateRef<Target>;\n } & UseElementSizeReturn;\n}\n\n/**\n * @name useElementSize\n * @description - Hook that observes and returns the width and height of element\n * @category Elements\n * @usage low\n\n * @overload\n * @param {HookTarget} target The target element to observe\n * @returns {UseElementSizeReturn} An object containing the current width and height of the element\n *\n * @example\n * const { value } = useElementSize(ref);\n *\n * @overload\n * @returns { { ref: StateRef<Target> } & UseElementSizeReturn } An object containing the current width and height of the element\n *\n * @example\n * const { ref, value } = useElementSize();\n */\nexport const useElementSize = ((...params: any[]) => {\n const target = params[0] as HookTarget | undefined;\n const [size, setSize] = useState({ width: 0, height: 0 });\n const internalRef = useRefState<Element>();\n\n useIsomorphicLayoutEffect(() => {\n const element = (target ? isTarget.getElement(target) : internalRef.current) as Element;\n\n if (!element) return;\n\n const { width, height } = element.getBoundingClientRect();\n setSize({\n width,\n height\n });\n\n const observer = new ResizeObserver(() => {\n const { width, height } = element.getBoundingClientRect();\n setSize({ width, height });\n });\n\n observer.observe(element);\n\n return () => {\n observer.disconnect();\n };\n }, [internalRef.state, target && isTarget.getRawElement(target)]);\n\n if (target) return { value: size };\n return {\n ref: internalRef,\n value: size\n };\n}) as UseElementSize;\n"],"names":["useElementSize","params","target","size","setSize","useState","internalRef","useRefState","useIsomorphicLayoutEffect","element","isTarget","width","height","observer"],"mappings":"2QAqDaA,GAAkB,IAAIC,IAAkB,CACnD,MAAMC,EAASD,EAAO,CAAC,EACjB,CAACE,EAAMC,CAAO,EAAIC,EAAAA,SAAS,CAAE,MAAO,EAAG,OAAQ,EAAG,EAClDC,EAAcC,EAAAA,YAAA,EAyBpB,OAvBAC,EAAAA,0BAA0B,IAAM,CAC9B,MAAMC,EAAWP,EAASQ,EAAAA,SAAS,WAAWR,CAAM,EAAII,EAAY,QAEpE,GAAI,CAACG,EAAS,OAEd,KAAM,CAAE,MAAAE,EAAO,OAAAC,GAAWH,EAAQ,sBAAA,EAClCL,EAAQ,CACN,MAAAO,EACA,OAAAC,CAAA,CACD,EAED,MAAMC,EAAW,IAAI,eAAe,IAAM,CACxC,KAAM,CAAE,MAAAF,EAAO,OAAAC,CAAAA,EAAWH,EAAQ,sBAAA,EAClCL,EAAQ,CAAE,MAAAO,EAAO,OAAAC,EAAQ,CAAA,CAC1B,EAED,OAAAC,EAAS,QAAQJ,CAAO,EAEjB,IAAM,CACXI,EAAS,WAAA,CAAW,CACtB,EACC,CAACP,EAAY,MAAOJ,GAAUQ,EAAAA,SAAS,cAAcR,CAAM,CAAC,CAAC,EAE5DA,EAAe,CAAE,MAAOC,CAAA,EACrB,CACL,IAAKG,EACL,MAAOH,CAAA,CAEX"}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { useState as f } from "react";
|
|
2
|
-
import { useIsomorphicLayoutEffect as a } from "../useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.mjs";
|
|
3
|
-
import { useRefState as l } from "../useRefState/useRefState.mjs";
|
|
4
|
-
import { isTarget as s } from "../../utils/helpers/isTarget.mjs";
|
|
5
|
-
const v = ((...h) => {
|
|
6
|
-
const e = h[0], [i, n] = f({ width: 0, height: 0 }), r = l();
|
|
7
|
-
return a(() => {
|
|
8
|
-
const t = e ? s.getElement(e) : r.current;
|
|
9
|
-
if (!t) return;
|
|
10
|
-
const { width: c, height: u } = t.getBoundingClientRect();
|
|
11
|
-
n({
|
|
12
|
-
width: c,
|
|
13
|
-
height: u
|
|
14
|
-
});
|
|
15
|
-
const o = new ResizeObserver(() => {
|
|
16
|
-
const { width: g, height: m } = t.getBoundingClientRect();
|
|
17
|
-
n({ width: g, height: m });
|
|
18
|
-
});
|
|
19
|
-
return o.observe(t), () => {
|
|
20
|
-
o.disconnect();
|
|
21
|
-
};
|
|
22
|
-
}, [r.state, e && s.getRawElement(e)]), e ? { value: i } : {
|
|
23
|
-
ref: r,
|
|
24
|
-
value: i
|
|
25
|
-
};
|
|
26
|
-
});
|
|
27
|
-
export {
|
|
28
|
-
v as useElementSize
|
|
29
|
-
};
|
|
30
|
-
//# sourceMappingURL=useElementSize.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useElementSize.mjs","sources":["../../../../src/hooks/useElementSize/useElementSize.ts"],"sourcesContent":["import { useState } from 'react';\n\nimport type { HookTarget } from '@/utils/helpers';\n\nimport { isTarget } from '@/utils/helpers';\n\nimport type { StateRef } from '../useRefState/useRefState';\n\nimport { useIsomorphicLayoutEffect } from '../useIsomorphicLayoutEffect/useIsomorphicLayoutEffect';\nimport { useRefState } from '../useRefState/useRefState';\n\n/** The element size value type */\nexport interface UseElementSizeValue {\n /** The element's height */\n height: number;\n /** The element's width */\n width: number;\n}\n\n/** The use element size return type */\nexport interface UseElementSizeReturn {\n value: UseElementSizeValue;\n}\n\nexport interface UseElementSize {\n (target: HookTarget): UseElementSizeReturn;\n\n <Target extends Element>(\n target?: never\n ): {\n ref: StateRef<Target>;\n } & UseElementSizeReturn;\n}\n\n/**\n * @name useElementSize\n * @description - Hook that observes and returns the width and height of element\n * @category Elements\n * @usage low\n\n * @overload\n * @param {HookTarget} target The target element to observe\n * @returns {UseElementSizeReturn} An object containing the current width and height of the element\n *\n * @example\n * const { value } = useElementSize(ref);\n *\n * @overload\n * @returns { { ref: StateRef<Target> } & UseElementSizeReturn } An object containing the current width and height of the element\n *\n * @example\n * const { ref, value } = useElementSize();\n */\nexport const useElementSize = ((...params: any[]) => {\n const target = params[0] as HookTarget | undefined;\n const [size, setSize] = useState({ width: 0, height: 0 });\n const internalRef = useRefState<Element>();\n\n useIsomorphicLayoutEffect(() => {\n const element = (target ? isTarget.getElement(target) : internalRef.current) as Element;\n\n if (!element) return;\n\n const { width, height } = element.getBoundingClientRect();\n setSize({\n width,\n height\n });\n\n const observer = new ResizeObserver(() => {\n const { width, height } = element.getBoundingClientRect();\n setSize({ width, height });\n });\n\n observer.observe(element);\n\n return () => {\n observer.disconnect();\n };\n }, [internalRef.state, target && isTarget.getRawElement(target)]);\n\n if (target) return { value: size };\n return {\n ref: internalRef,\n value: size\n };\n}) as UseElementSize;\n"],"names":["useElementSize","params","target","size","setSize","useState","internalRef","useRefState","useIsomorphicLayoutEffect","element","isTarget","width","height","observer"],"mappings":";;;;AAqDO,MAAMA,KAAkB,IAAIC,MAAkB;AACnD,QAAMC,IAASD,EAAO,CAAC,GACjB,CAACE,GAAMC,CAAO,IAAIC,EAAS,EAAE,OAAO,GAAG,QAAQ,GAAG,GAClDC,IAAcC,EAAA;AAyBpB,SAvBAC,EAA0B,MAAM;AAC9B,UAAMC,IAAWP,IAASQ,EAAS,WAAWR,CAAM,IAAII,EAAY;AAEpE,QAAI,CAACG,EAAS;AAEd,UAAM,EAAE,OAAAE,GAAO,QAAAC,MAAWH,EAAQ,sBAAA;AAClC,IAAAL,EAAQ;AAAA,MACN,OAAAO;AAAA,MACA,QAAAC;AAAA,IAAA,CACD;AAED,UAAMC,IAAW,IAAI,eAAe,MAAM;AACxC,YAAM,EAAE,OAAAF,GAAO,QAAAC,EAAAA,IAAWH,EAAQ,sBAAA;AAClC,MAAAL,EAAQ,EAAE,OAAAO,GAAO,QAAAC,GAAQ;AAAA,IAAA,CAC1B;AAED,WAAAC,EAAS,QAAQJ,CAAO,GAEjB,MAAM;AACX,MAAAI,EAAS,WAAA;AAAA,IAAW;AAAA,EACtB,GACC,CAACP,EAAY,OAAOJ,KAAUQ,EAAS,cAAcR,CAAM,CAAC,CAAC,GAE5DA,IAAe,EAAE,OAAOC,EAAA,IACrB;AAAA,IACL,KAAKG;AAAA,IACL,OAAOH;AAAA,EAAA;AAEX;"}
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import { HookTarget } from '../../utils/helpers';
|
|
2
|
-
import { StateRef } from '../useRefState/useRefState';
|
|
3
|
-
/** The element size value type */
|
|
4
|
-
export interface UseElementSizeValue {
|
|
5
|
-
/** The element's height */
|
|
6
|
-
height: number;
|
|
7
|
-
/** The element's width */
|
|
8
|
-
width: number;
|
|
9
|
-
}
|
|
10
|
-
/** The use element size return type */
|
|
11
|
-
export interface UseElementSizeReturn {
|
|
12
|
-
value: UseElementSizeValue;
|
|
13
|
-
}
|
|
14
|
-
export interface UseElementSize {
|
|
15
|
-
(target: HookTarget): UseElementSizeReturn;
|
|
16
|
-
<Target extends Element>(target?: never): {
|
|
17
|
-
ref: StateRef<Target>;
|
|
18
|
-
} & UseElementSizeReturn;
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* @name useElementSize
|
|
22
|
-
* @description - Hook that observes and returns the width and height of element
|
|
23
|
-
* @category Elements
|
|
24
|
-
* @usage low
|
|
25
|
-
|
|
26
|
-
* @overload
|
|
27
|
-
* @param {HookTarget} target The target element to observe
|
|
28
|
-
* @returns {UseElementSizeReturn} An object containing the current width and height of the element
|
|
29
|
-
*
|
|
30
|
-
* @example
|
|
31
|
-
* const { value } = useElementSize(ref);
|
|
32
|
-
*
|
|
33
|
-
* @overload
|
|
34
|
-
* @returns { { ref: StateRef<Target> } & UseElementSizeReturn } An object containing the current width and height of the element
|
|
35
|
-
*
|
|
36
|
-
* @example
|
|
37
|
-
* const { ref, value } = useElementSize();
|
|
38
|
-
*/
|
|
39
|
-
export declare const useElementSize: UseElementSize;
|