@siberiacancode/reactuse 0.2.31 → 0.2.32
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/useControllableState/useControllableState.cjs +2 -0
- package/dist/cjs/hooks/useControllableState/useControllableState.cjs.map +1 -0
- package/dist/cjs/hooks/useScroll/useScroll.cjs +1 -1
- package/dist/cjs/hooks/useScroll/useScroll.cjs.map +1 -1
- package/dist/cjs/index.cjs +1 -1
- package/dist/esm/hooks/useControllableState/useControllableState.mjs +17 -0
- package/dist/esm/hooks/useControllableState/useControllableState.mjs.map +1 -0
- package/dist/esm/hooks/useScroll/useScroll.mjs +53 -35
- package/dist/esm/hooks/useScroll/useScroll.mjs.map +1 -1
- package/dist/esm/index.mjs +149 -147
- package/dist/esm/index.mjs.map +1 -1
- package/dist/types/hooks/state.d.ts +1 -0
- package/dist/types/hooks/useControllableState/useControllableState.d.ts +34 -0
- package/dist/types/hooks/useScroll/useScroll.d.ts +33 -14
- package/package.json +1 -1
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("react");function C(u){const{value:r,initialValue:c,onChange:a}=u,e=r!==void 0,[i,f]=o.useState(c),l=o.useRef(a);l.current=a;const t=e?r:i,S=o.useCallback(n=>{const s=typeof n=="function"?n(t):n;e||f(s),l.current?.(s)},[t,e]);return[t,S,e]}exports.useControllableState=C;
|
|
2
|
+
//# sourceMappingURL=useControllableState.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useControllableState.cjs","sources":["../../../../src/hooks/useControllableState/useControllableState.ts"],"sourcesContent":["import { useCallback, useRef, useState } from 'react';\n\n/** The use controllable state options type */\nexport interface UseControllableStateOptions<Value> {\n /** The initial value for uncontrolled state */\n initialValue?: Value;\n /** The controlled value */\n value?: Value;\n /** The onChange callback */\n onChange?: (value: Value) => void;\n}\n\n/** The use controllable state return type */\nexport type UseControllableStateReturn<Value> = [\n /** Current value */\n value: Value,\n /** Setter function that works with both controlled and uncontrolled state */\n setValue: (nextValue: ((prevValue: Value) => Value) | Value) => void,\n /** Whether the state is controlled */\n isControlled: boolean\n];\n\n/**\n * @name useControllableState\n * @description - Hook that manages both controlled and uncontrolled state patterns\n * @category State\n * @usage medium\n *\n * @template Value The type of the state value\n * @param {Value} [options.value] The controlled value. When provided, the component becomes controlled\n * @param {Value} [options.initialValue] The initial value for uncontrolled state\n * @param {(value: Value) => void} [options.onChange] The callback function called when the state changes\n * @returns {UseControllableStateReturn<Value>} A tuple containing the current value, setter function, and controlled flag\n *\n * @example\n * const [value, setValue, isControlled] = useControllableState({ initialValue: 'initial' });\n */\nexport function useControllableState<Value>(\n options: UseControllableStateOptions<Value>\n): UseControllableStateReturn<Value> {\n const { value, initialValue, onChange } = options;\n const isControlled = value !== undefined;\n\n const [internalState, setInternalState] = useState<Value>(initialValue as Value);\n\n const onChangeRef = useRef(onChange);\n onChangeRef.current = onChange;\n\n const currentValue = isControlled ? value : internalState;\n\n const setValue = useCallback(\n (nextValue: ((prevValue: Value) => Value) | Value) => {\n const resolvedValue =\n typeof nextValue === 'function'\n ? (nextValue as (prevValue: Value) => Value)(currentValue)\n : nextValue;\n\n if (!isControlled) setInternalState(resolvedValue);\n\n onChangeRef.current?.(resolvedValue);\n },\n [currentValue, isControlled]\n );\n\n return [currentValue, setValue, isControlled];\n}\n"],"names":["useControllableState","options","value","initialValue","onChange","isControlled","internalState","setInternalState","useState","onChangeRef","useRef","currentValue","setValue","useCallback","nextValue","resolvedValue"],"mappings":"yGAqCO,SAASA,EACdC,EACmC,CACnC,KAAM,CAAE,MAAAC,EAAO,aAAAC,EAAc,SAAAC,CAAA,EAAaH,EACpCI,EAAeH,IAAU,OAEzB,CAACI,EAAeC,CAAgB,EAAIC,EAAAA,SAAgBL,CAAqB,EAEzEM,EAAcC,EAAAA,OAAON,CAAQ,EACnCK,EAAY,QAAUL,EAEtB,MAAMO,EAAeN,EAAeH,EAAQI,EAEtCM,EAAWC,EAAAA,YACdC,GAAqD,CACpD,MAAMC,EACJ,OAAOD,GAAc,WAChBA,EAA0CH,CAAY,EACvDG,EAEDT,GAAcE,EAAiBQ,CAAa,EAEjDN,EAAY,UAAUM,CAAa,CAAA,EAErC,CAACJ,EAAcN,CAAY,CAAA,EAG7B,MAAO,CAACM,EAAcC,EAAUP,CAAY,CAC9C"}
|
|
@@ -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 d=require("react"),O=require("../useRefState/useRefState.cjs"),P=require("../../utils/helpers/isTarget.cjs"),V=require("../../utils/helpers/getElement.cjs"),H=1,_=(...o)=>{const c=P.isTarget(o[0])?o[0]:void 0,R=c?typeof o[1]=="object"?o[1]:{onScroll:o[1]}:typeof o[0]=="object"?o[0]:{onScroll:o[0]},g=O.useRefState(),a=d.useRef(R),u=d.useRef(null);a.current=R;const[m,y]=d.useState(!1),f=d.useRef({x:0,y:0});d.useEffect(()=>{if(!c&&!g.state)return;const e=(c?V.getElement(c):g.current)??window;u.current=e;const l=t=>{y(!1),R?.onStop?.(t)},s=t=>{y(!0);const r=t.target===document?t.target.documentElement:t.target,{display:v,flexDirection:T,direction:I}=r.style,h=I==="rtl"?-1:1,i=r.scrollLeft;let n=r.scrollTop;r instanceof Document&&!n&&(n=window.document.body.scrollTop);const S=a.current?.offset,p=i*h<=(S?.left??0),x=i*h+r.clientWidth>=r.scrollWidth-(S?.right??0)-H,L=n<=(S?.top??0),w=n+r.clientHeight>=r.scrollHeight-(S?.bottom??0)-H,q=v==="flex"&&T==="column-reverse",D=v==="flex"&&T==="column-reverse",j={x:i,y:n,directions:{left:i<f.current.x,right:i>f.current.x,top:n<f.current.y,bottom:n>f.current.y},arrived:{left:D?x:p,right:D?p:x,top:q?w:L,bottom:q?L:w}};f.current={x:i,y:n},a.current?.onScroll?.(j,t)};return e.addEventListener("scroll",s),e.addEventListener("scrollend",l),()=>{e.removeEventListener("scroll",s),e.removeEventListener("scrollend",l)}},[c,g.state]);const E=e=>{if(!u.current)return;const{behavior:l,block:s,inline:t}=e??{};u.current.scrollIntoView({behavior:l,block:s,inline:t})},b=e=>{if(!u.current)return;const{x:l,y:s,behavior:t}=e??{};u.current.scrollTo({left:l,top:s,behavior:t})};return c?{scrollIntoView:E,scrollTo:b,scrolling:m}:{ref:g,scrolling:m,scrollIntoView:E,scrollTo:b}};exports.useScroll=_;
|
|
2
2
|
//# sourceMappingURL=useScroll.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useScroll.cjs","sources":["../../../../src/hooks/useScroll/useScroll.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\n\nimport type { HookTarget } from '@/utils/helpers';\n\nimport { getElement, isTarget } from '@/utils/helpers';\n\nimport type { StateRef } from '../useRefState/useRefState';\n\nimport { useRefState } from '../useRefState/useRefState';\n\nconst ARRIVED_STATE_THRESHOLD_PIXELS = 1;\n\nexport interface UseScrollOptions {\n /** The on scroll callback */\n onScroll?: (params: UseScrollCallbackParams, event: Event) => void;\n\n /** The on end scroll callback */\n onStop?: (event: Event) => void;\n\n /** Offset arrived states by x pixels. */\n offset?: {\n left?: number;\n right?: number;\n top?: number;\n bottom?: number;\n };\n}\n\nexport interface UseScrollCallbackParams {\n /** The element x position */\n x: number;\n /** The element y position */\n y: number;\n /** State of scroll arrived */\n arrived: {\n left: boolean;\n right: boolean;\n top: boolean;\n bottom: boolean;\n };\n /** State of scroll direction */\n directions: {\n left: boolean;\n right: boolean;\n top: boolean;\n bottom: boolean;\n };\n}\n\nexport interface UseScroll {\n (\n target?: HookTarget,\n callback?: (params: UseScrollCallbackParams, event: Event) => void\n ): boolean;\n\n (target?: HookTarget, options?: UseScrollOptions): boolean;\n\n <Target extends Element>(\n callback?: (params: UseScrollCallbackParams, event: Event) => void,\n target?: never\n ): {\n ref: StateRef<Target>;\n scrolling: boolean;\n };\n\n <Target extends Element>(\n options?: UseScrollOptions,\n target?: never\n ): {\n ref: StateRef<Target>;\n scrolling: boolean;\n };\n}\n\n/**\n * @name useScroll\n * @description - Hook that allows you to control scroll a element\n * @category Sensors\n * @usage low\n *\n * @overload\n * @template Target The target element\n * @param {ScrollBehavior} [options.behavior=auto] The behavior of scrolling\n * @param {number} [options.offset.left=0] The left offset for arrived states\n * @param {number} [options.offset.right=0] The right offset for arrived states\n * @param {number} [options.offset.top=0] The top offset for arrived states\n * @param {number} [options.offset.bottom=0] The bottom offset for arrived states\n * @param {(params: UseScrollCallbackParams, event: Event) => void} [options.onScroll] The callback function to be invoked on scroll\n * @param {(event: Event) => void} [options.onStop] The callback function to be invoked on scroll end\n * @returns {boolean} The state of scrolling\n *\n * @example\n * const scrolling = useScroll(ref, options);\n *\n * @overload\n * @template Target The target element\n * @param {(params: UseScrollCallbackParams, event: Event) => void} [callback] The callback function to be invoked on scroll\n * @returns {boolean} The state of scrolling\n *\n * @example\n * const scrolling = useScroll(ref, () => console.log('callback'));\n *\n * @overload\n * @template Target The target element\n * @param {Target} [target=window] The target element to scroll\n * @param {ScrollBehavior} [options.behavior=auto] The behavior of scrolling\n * @param {number} [options.offset.left=0] The left offset for arrived states\n * @param {number} [options.offset.right=0] The right offset for arrived states\n * @param {number} [options.offset.top=0] The top offset for arrived states\n * @param {number} [options.offset.bottom=0] The bottom offset for arrived states\n * @param {(params: UseScrollCallbackParams, event: Event) => void} [options.onScroll] The callback function to be invoked on scroll\n * @param {(event: Event) => void} [options.onStop] The callback function to be invoked on scroll end\n * @returns {[StateRef<Target>, boolean]} The state of scrolling\n *\n * @example\n * const { ref, scrolling } = useScroll(options);\n *\n * @overload\n * @template Target The target element\n * @param {Target} target The target element to scroll\n * @param {(params: UseScrollCallbackParams, event: Event) => void} [callback] The callback function to be invoked on scroll\n * @returns {[StateRef<Target>, boolean]} The state of scrolling\n *\n * @example\n * const { ref, scrolling } = useScroll(() => console.log('callback'));\n */\nexport const useScroll = ((...params: any[]) => {\n const target = (isTarget(params[0]) ? params[0] : undefined) as HookTarget | undefined;\n const options = (\n target\n ? typeof params[1] === 'object'\n ? params[1]\n : { onScroll: params[1] }\n : typeof params[0] === 'object'\n ? params[0]\n : { onScroll: params[0] }\n ) as UseScrollOptions | undefined;\n\n const internalRef = useRefState<Element>();\n const internalOptionsRef = useRef(options);\n internalOptionsRef.current = options;\n\n const [scrolling, setScrolling] = useState(false);\n const scrollPositionRef = useRef({ x: 0, y: 0 });\n\n useEffect(() => {\n if (!target && !internalRef.state) return;\n const element = ((target ? getElement(target) : internalRef.current) as Element) ?? window;\n\n const onScrollEnd = (event: Event) => {\n setScrolling(false);\n options?.onStop?.(event);\n };\n\n const onScroll = (event: Event) => {\n setScrolling(true);\n const target = (\n event.target === document ? (event.target as Document).documentElement : event.target\n ) as HTMLElement;\n\n const { display, flexDirection, direction } = target.style;\n const directionMultiplier = direction === 'rtl' ? -1 : 1;\n\n const scrollLeft = target.scrollLeft;\n let scrollTop = target.scrollTop;\n if (target instanceof Document && !scrollTop) scrollTop = window.document.body.scrollTop;\n\n const offset = internalOptionsRef.current?.offset;\n const left = scrollLeft * directionMultiplier <= (offset?.left ?? 0);\n const right =\n scrollLeft * directionMultiplier + target.clientWidth >=\n target.scrollWidth - (offset?.right ?? 0) - ARRIVED_STATE_THRESHOLD_PIXELS;\n const top = scrollTop <= (offset?.top ?? 0);\n const bottom =\n scrollTop + target.clientHeight >=\n target.scrollHeight - (offset?.bottom ?? 0) - ARRIVED_STATE_THRESHOLD_PIXELS;\n\n const isColumnReverse = display === 'flex' && flexDirection === 'column-reverse';\n const isRowReverse = display === 'flex' && flexDirection === 'column-reverse';\n\n const params = {\n x: scrollLeft,\n y: scrollTop,\n directions: {\n left: scrollLeft < scrollPositionRef.current.x,\n right: scrollLeft > scrollPositionRef.current.x,\n top: scrollTop < scrollPositionRef.current.y,\n bottom: scrollTop > scrollPositionRef.current.y\n },\n arrived: {\n left: isRowReverse ? right : left,\n right: isRowReverse ? left : right,\n top: isColumnReverse ? bottom : top,\n bottom: isColumnReverse ? top : bottom\n }\n };\n\n scrollPositionRef.current = { x: scrollLeft, y: scrollTop };\n internalOptionsRef.current?.onScroll?.(params, event);\n };\n\n element.addEventListener('scroll', onScroll);\n element.addEventListener('scrollend', onScrollEnd);\n\n return () => {\n element.removeEventListener('scroll', onScroll);\n element.removeEventListener('scrollend', onScrollEnd);\n };\n }, [target, internalRef.state]);\n\n if (target) return scrolling;\n return {\n ref: internalRef,\n scrolling\n };\n}) as UseScroll;\n"],"names":["ARRIVED_STATE_THRESHOLD_PIXELS","useScroll","params","target","isTarget","options","internalRef","useRefState","internalOptionsRef","useRef","scrolling","setScrolling","useState","scrollPositionRef","useEffect","element","getElement","onScrollEnd","event","onScroll","display","flexDirection","direction","directionMultiplier","scrollLeft","scrollTop","offset","left","right","top","bottom","isColumnReverse","isRowReverse"],"mappings":"mPAUMA,EAAiC,EAoH1BC,EAAa,IAAIC,IAAkB,CAC9C,MAAMC,EAAUC,EAAAA,SAASF,EAAO,CAAC,CAAC,EAAIA,EAAO,CAAC,EAAI,OAC5CG,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,EAAcC,EAAAA,YAAA,EACdC,EAAqBC,EAAAA,OAAOJ,CAAO,EACzCG,EAAmB,QAAUH,EAE7B,KAAM,CAACK,EAAWC,CAAY,EAAIC,EAAAA,SAAS,EAAK,EAC1CC,EAAoBJ,EAAAA,OAAO,CAAE,EAAG,EAAG,EAAG,EAAG,EAmE/C,OAjEAK,EAAAA,UAAU,IAAM,CACd,GAAI,CAACX,GAAU,CAACG,EAAY,MAAO,OACnC,MAAMS,GAAYZ,EAASa,EAAAA,WAAWb,CAAM,EAAIG,EAAY,UAAwB,OAE9EW,EAAeC,GAAiB,CACpCP,EAAa,EAAK,EAClBN,GAAS,SAASa,CAAK,CAAA,EAGnBC,EAAYD,GAAiB,CACjCP,EAAa,EAAI,EACjB,MAAMR,EACJe,EAAM,SAAW,SAAYA,EAAM,OAAoB,gBAAkBA,EAAM,OAG3E,CAAE,QAAAE,EAAS,cAAAC,EAAe,UAAAC,CAAA,EAAcnB,EAAO,MAC/CoB,EAAsBD,IAAc,MAAQ,GAAK,EAEjDE,EAAarB,EAAO,WAC1B,IAAIsB,EAAYtB,EAAO,UACnBA,aAAkB,UAAY,CAACsB,IAAWA,EAAY,OAAO,SAAS,KAAK,WAE/E,MAAMC,EAASlB,EAAmB,SAAS,OACrCmB,EAAOH,EAAaD,IAAwBG,GAAQ,MAAQ,GAC5DE,EACJJ,EAAaD,EAAsBpB,EAAO,aAC1CA,EAAO,aAAeuB,GAAQ,OAAS,GAAK1B,EACxC6B,EAAMJ,IAAcC,GAAQ,KAAO,GACnCI,EACJL,EAAYtB,EAAO,cACnBA,EAAO,cAAgBuB,GAAQ,QAAU,GAAK1B,EAE1C+B,EAAkBX,IAAY,QAAUC,IAAkB,iBAC1DW,EAAeZ,IAAY,QAAUC,IAAkB,iBAEvDnB,EAAS,CACb,EAAGsB,EACH,EAAGC,EACH,WAAY,CACV,KAAMD,EAAaX,EAAkB,QAAQ,EAC7C,MAAOW,EAAaX,EAAkB,QAAQ,EAC9C,IAAKY,EAAYZ,EAAkB,QAAQ,EAC3C,OAAQY,EAAYZ,EAAkB,QAAQ,CAAA,EAEhD,QAAS,CACP,KAAMmB,EAAeJ,EAAQD,EAC7B,MAAOK,EAAeL,EAAOC,EAC7B,IAAKG,EAAkBD,EAASD,EAChC,OAAQE,EAAkBF,EAAMC,CAAA,CAClC,EAGFjB,EAAkB,QAAU,CAAE,EAAGW,EAAY,EAAGC,CAAA,EAChDjB,EAAmB,SAAS,WAAWN,EAAQgB,CAAK,CAAA,EAGtD,OAAAH,EAAQ,iBAAiB,SAAUI,CAAQ,EAC3CJ,EAAQ,iBAAiB,YAAaE,CAAW,EAE1C,IAAM,CACXF,EAAQ,oBAAoB,SAAUI,CAAQ,EAC9CJ,EAAQ,oBAAoB,YAAaE,CAAW,CAAA,CACtD,EACC,CAACd,EAAQG,EAAY,KAAK,CAAC,EAE1BH,EAAeO,EACZ,CACL,IAAKJ,EACL,UAAAI,CAAA,CAEJ"}
|
|
1
|
+
{"version":3,"file":"useScroll.cjs","sources":["../../../../src/hooks/useScroll/useScroll.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\n\nimport type { HookTarget } from '@/utils/helpers';\n\nimport { getElement, isTarget } from '@/utils/helpers';\n\nimport type { StateRef } from '../useRefState/useRefState';\n\nimport { useRefState } from '../useRefState/useRefState';\n\nconst ARRIVED_STATE_THRESHOLD_PIXELS = 1;\n\nexport interface UseScrollOptions {\n /** The on scroll callback */\n onScroll?: (params: UseScrollCallbackParams, event: Event) => void;\n\n /** The on end scroll callback */\n onStop?: (event: Event) => void;\n\n /** Offset arrived states by x pixels. */\n offset?: {\n left?: number;\n right?: number;\n top?: number;\n bottom?: number;\n };\n}\n\nexport interface UseScrollCallbackParams {\n /** The element x position */\n x: number;\n /** The element y position */\n y: number;\n /** State of scroll arrived */\n arrived: {\n left: boolean;\n right: boolean;\n top: boolean;\n bottom: boolean;\n };\n /** State of scroll direction */\n directions: {\n left: boolean;\n right: boolean;\n top: boolean;\n bottom: boolean;\n };\n}\n\n/** The scroll into view params type */\nexport interface ScrollIntoViewParams {\n behavior?: ScrollBehavior;\n block?: ScrollLogicalPosition;\n inline?: ScrollLogicalPosition;\n}\n/** The scroll to params type */\nexport interface ScrollToParams {\n behavior?: ScrollBehavior;\n x: number;\n y: number;\n}\n\n/** The use scroll return type */\nexport interface UseScrollReturn {\n /** The state of scrolling */\n scrolling: boolean;\n /** Function to scroll element into view */\n scrollIntoView: (params?: ScrollIntoViewParams) => void;\n /** Function to scroll element to a specific position */\n scrollTo: (params?: ScrollToParams) => void;\n}\n\nexport interface UseScroll {\n (\n target?: HookTarget,\n callback?: (params: UseScrollCallbackParams, event: Event) => void\n ): UseScrollReturn;\n\n (target?: HookTarget, options?: UseScrollOptions): UseScrollReturn;\n\n <Target extends Element>(\n callback?: (params: UseScrollCallbackParams, event: Event) => void,\n target?: never\n ): UseScrollReturn & { ref: StateRef<Target> };\n\n <Target extends Element>(\n options?: UseScrollOptions,\n target?: never\n ): UseScrollReturn & {\n ref: StateRef<Target>;\n };\n}\n\n/**\n * @name useScroll\n * @description - Hook that allows you to control scroll a element\n * @category Sensors\n * @usage low\n *\n * @overload\n * @template Target The target element\n * @param {ScrollBehavior} [options.behavior=auto] The behavior of scrolling\n * @param {number} [options.offset.left=0] The left offset for arrived states\n * @param {number} [options.offset.right=0] The right offset for arrived states\n * @param {number} [options.offset.top=0] The top offset for arrived states\n * @param {number} [options.offset.bottom=0] The bottom offset for arrived states\n * @param {(params: UseScrollCallbackParams, event: Event) => void} [options.onScroll] The callback function to be invoked on scroll\n * @param {(event: Event) => void} [options.onStop] The callback function to be invoked on scroll end\n * @returns {UseScrollReturn} The state of scrolling\n *\n * @example\n * const { scrolling, scrollIntoView, scrollTo} = useScroll(ref, options);\n *\n * @overload\n * @template Target The target element\n * @param {(params: UseScrollCallbackParams, event: Event) => void} [callback] The callback function to be invoked on scroll\n * @returns {UseScrollReturn} The state of scrolling\n *\n * @example\n * const { scrolling, scrollIntoView, scrollTo} = useScroll(ref, () => console.log('callback'));\n *\n * @overload\n * @template Target The target element\n * @param {Target} [target=window] The target element to scroll\n * @param {ScrollBehavior} [options.behavior=auto] The behavior of scrolling\n * @param {number} [options.offset.left=0] The left offset for arrived states\n * @param {number} [options.offset.right=0] The right offset for arrived states\n * @param {number} [options.offset.top=0] The top offset for arrived states\n * @param {number} [options.offset.bottom=0] The bottom offset for arrived states\n * @param {(params: UseScrollCallbackParams, event: Event) => void} [options.onScroll] The callback function to be invoked on scroll\n * @param {(event: Event) => void} [options.onStop] The callback function to be invoked on scroll end\n * @returns {UseScrollReturn & { ref: StateRef<Target> }} The state of scrolling\n *\n * @example\n * const { ref, scrolling, scrollIntoView, scrollTo} = useScroll(options);\n *\n * @overload\n * @template Target The target element\n * @param {Target} target The target element to scroll\n * @param {(params: UseScrollCallbackParams, event: Event) => void} [callback] The callback function to be invoked on scroll\n * @returns {UseScrollReturn & { ref: StateRef<Target> }} The state of scrolling\n *\n * @example\n * const { ref, scrolling, scrollIntoView, scrollTo} = useScroll(() => console.log('callback'));\n */\nexport const useScroll = ((...params: any[]) => {\n const target = (isTarget(params[0]) ? params[0] : undefined) as HookTarget | undefined;\n const options = (\n target\n ? typeof params[1] === 'object'\n ? params[1]\n : { onScroll: params[1] }\n : typeof params[0] === 'object'\n ? params[0]\n : { onScroll: params[0] }\n ) as UseScrollOptions | undefined;\n\n const internalRef = useRefState<Element>();\n const internalOptionsRef = useRef(options);\n const elementRef = useRef<Element>(null);\n internalOptionsRef.current = options;\n\n const [scrolling, setScrolling] = useState(false);\n const scrollPositionRef = useRef({ x: 0, y: 0 });\n\n useEffect(() => {\n if (!target && !internalRef.state) return;\n const element = ((target ? getElement(target) : internalRef.current) as Element) ?? window;\n\n elementRef.current = element;\n\n const onScrollEnd = (event: Event) => {\n setScrolling(false);\n options?.onStop?.(event);\n };\n\n const onScroll = (event: Event) => {\n setScrolling(true);\n const target = (\n event.target === document ? (event.target as Document).documentElement : event.target\n ) as HTMLElement;\n\n const { display, flexDirection, direction } = target.style;\n const directionMultiplier = direction === 'rtl' ? -1 : 1;\n\n const scrollLeft = target.scrollLeft;\n let scrollTop = target.scrollTop;\n if (target instanceof Document && !scrollTop) scrollTop = window.document.body.scrollTop;\n\n const offset = internalOptionsRef.current?.offset;\n const left = scrollLeft * directionMultiplier <= (offset?.left ?? 0);\n const right =\n scrollLeft * directionMultiplier + target.clientWidth >=\n target.scrollWidth - (offset?.right ?? 0) - ARRIVED_STATE_THRESHOLD_PIXELS;\n const top = scrollTop <= (offset?.top ?? 0);\n const bottom =\n scrollTop + target.clientHeight >=\n target.scrollHeight - (offset?.bottom ?? 0) - ARRIVED_STATE_THRESHOLD_PIXELS;\n\n const isColumnReverse = display === 'flex' && flexDirection === 'column-reverse';\n const isRowReverse = display === 'flex' && flexDirection === 'column-reverse';\n\n const params = {\n x: scrollLeft,\n y: scrollTop,\n directions: {\n left: scrollLeft < scrollPositionRef.current.x,\n right: scrollLeft > scrollPositionRef.current.x,\n top: scrollTop < scrollPositionRef.current.y,\n bottom: scrollTop > scrollPositionRef.current.y\n },\n arrived: {\n left: isRowReverse ? right : left,\n right: isRowReverse ? left : right,\n top: isColumnReverse ? bottom : top,\n bottom: isColumnReverse ? top : bottom\n }\n };\n\n scrollPositionRef.current = { x: scrollLeft, y: scrollTop };\n internalOptionsRef.current?.onScroll?.(params, event);\n };\n\n element.addEventListener('scroll', onScroll);\n element.addEventListener('scrollend', onScrollEnd);\n\n return () => {\n element.removeEventListener('scroll', onScroll);\n element.removeEventListener('scrollend', onScrollEnd);\n };\n }, [target, internalRef.state]);\n\n const scrollIntoView = (params?: {\n behavior?: ScrollBehavior;\n block?: ScrollLogicalPosition;\n inline?: ScrollLogicalPosition;\n }) => {\n if (!elementRef.current) return;\n\n const { behavior, block, inline } = params ?? {};\n\n elementRef.current.scrollIntoView({\n behavior,\n block,\n inline\n });\n };\n\n const scrollTo = (params?: { x: number; y: number; behavior?: ScrollBehavior }) => {\n if (!elementRef.current) return;\n\n const { x, y, behavior } = params ?? {};\n\n elementRef.current.scrollTo({ left: x, top: y, behavior });\n };\n\n if (target) return { scrollIntoView, scrollTo, scrolling };\n return {\n ref: internalRef,\n scrolling,\n scrollIntoView,\n scrollTo\n };\n}) as UseScroll;\n"],"names":["ARRIVED_STATE_THRESHOLD_PIXELS","useScroll","params","target","isTarget","options","internalRef","useRefState","internalOptionsRef","useRef","elementRef","scrolling","setScrolling","useState","scrollPositionRef","useEffect","element","getElement","onScrollEnd","event","onScroll","display","flexDirection","direction","directionMultiplier","scrollLeft","scrollTop","offset","left","right","top","bottom","isColumnReverse","isRowReverse","scrollIntoView","behavior","block","inline","scrollTo","x","y"],"mappings":"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"}
|
package/dist/cjs/index.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const y=require("./helpers/createContext/createContext.cjs"),I=require("./helpers/createEventEmitter/createEventEmitter.cjs"),k=require("./helpers/createReactiveContext/createReactiveContext.cjs"),v=require("./helpers/createStore/createStore.cjs"),O=require("./hooks/useAsync/useAsync.cjs"),h=require("./hooks/useLockCallback/useLockCallback.cjs"),A=require("./hooks/useMutation/useMutation.cjs"),D=require("./hooks/useOptimistic/useOptimistic.cjs"),b=require("./hooks/useQuery/useQuery.cjs"),f=require("./hooks/useAudio/useAudio.cjs"),M=require("./hooks/useBattery/useBattery.cjs"),L=require("./hooks/useBluetooth/useBluetooth.cjs"),_=require("./hooks/useBroadcastChannel/useBroadcastChannel.cjs"),N=require("./hooks/useClipboard/useClipboard.cjs"),B=require("./hooks/useCopy/useCopy.cjs"),K=require("./hooks/useCssVar/useCssVar.cjs"),F=require("./hooks/useDisplayMedia/useDisplayMedia.cjs"),V=require("./hooks/useDocumentTitle/useDocumentTitle.cjs"),U=require("./hooks/useEventSource/useEventSource.cjs"),w=require("./hooks/useEyeDropper/useEyeDropper.cjs"),W=require("./hooks/useFavicon/useFavicon.cjs"),H=require("./hooks/useFps/useFps.cjs"),x=require("./hooks/useFullscreen/useFullscreen.cjs"),n=require("./hooks/useGamepad/useGamepad.cjs"),Q=require("./hooks/useGeolocation/useGeolocation.cjs"),c=require("./hooks/useMediaControls/useMediaControls.cjs"),z=require("./hooks/useMemory/useMemory.cjs"),a=require("./hooks/useNetwork/useNetwork.cjs"),G=require("./hooks/useOnline/useOnline.cjs"),X=require("./hooks/useOtpCredential/useOtpCredential.cjs"),Z=require("./hooks/usePermission/usePermission.cjs"),j=require("./hooks/usePictureInPicture/usePictureInPicture.cjs"),J=require("./hooks/usePointerLock/usePointerLock.cjs"),Y=require("./hooks/usePostMessage/usePostMessage.cjs"),$=require("./hooks/useRaf/useRaf.cjs"),ee=require("./hooks/useShare/useShare.cjs"),l=require("./hooks/useSpeechRecognition/useSpeechRecognition.cjs"),se=require("./hooks/useSpeechSynthesis/useSpeechSynthesis.cjs"),ue=require("./hooks/useVibrate/useVibrate.cjs"),re=require("./hooks/useVirtualKeyboard/useVirtualKeyboard.cjs"),te=require("./hooks/useWakeLock/useWakeLock.cjs"),oe=require("./hooks/useWebSocket/useWebSocket.cjs"),ie=require("./hooks/useLogger/useLogger.cjs"),ne=require("./hooks/useRenderCount/useRenderCount.cjs"),ce=require("./hooks/useRenderInfo/useRenderInfo.cjs"),ae=require("./hooks/useRerender/useRerender.cjs"),le=require("./hooks/useActiveElement/useActiveElement.cjs"),Se=require("./hooks/useAutoScroll/useAutoScroll.cjs"),qe=require("./hooks/useClickOutside/useClickOutside.cjs"),S=require("./hooks/useDoubleClick/useDoubleClick.cjs"),de=require("./hooks/useDropZone/useDropZone.cjs"),ge=require("./hooks/useFileDialog/useFileDialog.cjs"),Ee=require("./hooks/useFocus/useFocus.cjs"),Te=require("./hooks/useHover/useHover.cjs"),Pe=require("./hooks/useImage/useImage.cjs"),Ce=require("./hooks/useLongPress/useLongPress.cjs"),r=require("./hooks/usePaint/usePaint.cjs"),Re=require("./hooks/useRightClick/useRightClick.cjs"),q=require("./hooks/useScript/useScript.cjs"),me=require("./hooks/useSticky/useSticky.cjs"),pe=require("./hooks/useTextDirection/useTextDirection.cjs"),ye=require("./hooks/useFul/useFul.cjs"),Ie=require("./hooks/useLess/useLess.cjs"),ke=require("./hooks/useOnce/useOnce.cjs"),ve=require("./hooks/useDidUpdate/useDidUpdate.cjs"),Oe=require("./hooks/useIsFirstRender/useIsFirstRender.cjs"),he=require("./hooks/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.cjs"),Ae=require("./hooks/useMount/useMount.cjs"),d=require("./hooks/useShallowEffect/useShallowEffect.cjs"),De=require("./hooks/useUnmount/useUnmount.cjs"),e=require("./hooks/useBreakpoints/useBreakpoints.cjs"),be=require("./hooks/useDeviceMotion/useDeviceMotion.cjs"),fe=require("./hooks/useDeviceOrientation/useDeviceOrientation.cjs"),Me=require("./hooks/useDevicePixelRatio/useDevicePixelRatio.cjs"),Le=require("./hooks/useDocumentEvent/useDocumentEvent.cjs"),_e=require("./hooks/useDocumentVisibility/useDocumentVisibility.cjs"),Ne=require("./hooks/useElementSize/useElementSize.cjs"),Be=require("./hooks/useEventListener/useEventListener.cjs"),g=require("./hooks/useHotkeys/useHotkeys.cjs"),Ke=require("./hooks/useIdle/useIdle.cjs"),Fe=require("./hooks/useInfiniteScroll/useInfiniteScroll.cjs"),Ve=require("./hooks/useIntersectionObserver/useIntersectionObserver.cjs"),Ue=require("./hooks/useKeyboard/useKeyboard.cjs"),we=require("./hooks/useKeyPress/useKeyPress.cjs"),We=require("./hooks/useKeyPressEvent/useKeyPressEvent.cjs"),He=require("./hooks/useKeysPressed/useKeysPressed.cjs"),xe=require("./hooks/useLockScroll/useLockScroll.cjs"),Qe=require("./hooks/useMeasure/useMeasure.cjs"),ze=require("./hooks/useMediaQuery/useMediaQuery.cjs"),Ge=require("./hooks/useMouse/useMouse.cjs"),Xe=require("./hooks/useMutationObserver/useMutationObserver.cjs"),Ze=require("./hooks/useOrientation/useOrientation.cjs"),je=require("./hooks/usePageLeave/usePageLeave.cjs"),Je=require("./hooks/useParallax/useParallax.cjs"),Ye=require("./hooks/usePerformanceObserver/usePerformanceObserver.cjs"),$e=require("./hooks/useResizeObserver/useResizeObserver.cjs"),es=require("./hooks/useScroll/useScroll.cjs"),ss=require("./hooks/useScrollIntoView/useScrollIntoView.cjs"),us=require("./hooks/useScrollTo/useScrollTo.cjs"),E=require("./hooks/useTextSelection/useTextSelection.cjs"),rs=require("./hooks/useWindowEvent/useWindowEvent.cjs"),ts=require("./hooks/useWindowFocus/useWindowFocus.cjs"),T=require("./hooks/useWindowScroll/useWindowScroll.cjs"),os=require("./hooks/useWindowSize/useWindowSize.cjs"),is=require("./hooks/useBoolean/useBoolean.cjs"),s=require("./hooks/useCookie/useCookie.cjs"),P=require("./hooks/useCookies/useCookies.cjs"),ns=require("./hooks/useCounter/useCounter.cjs"),cs=require("./hooks/useDefault/useDefault.cjs"),as=require("./hooks/useDisclosure/useDisclosure.cjs"),ls=require("./hooks/useField/useField.cjs"),Ss=require("./hooks/useHash/useHash.cjs"),qs=require("./hooks/useList/useList.cjs"),ds=require("./hooks/useLocalStorage/useLocalStorage.cjs"),gs=require("./hooks/useMap/useMap.cjs"),t=require("./hooks/useMergedRef/useMergedRef.cjs"),Es=require("./hooks/useOffsetPagination/useOffsetPagination.cjs"),Ts=require("./hooks/useQueue/useQueue.cjs"),Ps=require("./hooks/useRafState/useRafState.cjs"),Cs=require("./hooks/useRefState/useRefState.cjs"),Rs=require("./hooks/useSessionStorage/useSessionStorage.cjs"),ms=require("./hooks/useSet/useSet.cjs"),C=require("./hooks/useStateHistory/useStateHistory.cjs"),ps=require("./hooks/useStep/useStep.cjs"),o=require("./hooks/useStorage/useStorage.cjs"),ys=require("./hooks/useToggle/useToggle.cjs"),u=require("./hooks/useUrlSearchParam/useUrlSearchParam.cjs"),Is=require("./hooks/useUrlSearchParams/useUrlSearchParams.cjs"),ks=require("./hooks/useWizard/useWizard.cjs"),vs=require("./hooks/useInterval/useInterval.cjs"),Os=require("./hooks/useStopwatch/useStopwatch.cjs"),hs=require("./hooks/useTime/useTime.cjs"),As=require("./hooks/useTimeout/useTimeout.cjs"),R=require("./hooks/useTimer/useTimer.cjs"),Ds=require("./hooks/useBrowserLanguage/useBrowserLanguage.cjs"),m=require("./hooks/useOperatingSystem/useOperatingSystem.cjs"),bs=require("./hooks/usePreferredColorScheme/usePreferredColorScheme.cjs"),fs=require("./hooks/usePreferredContrast/usePreferredContrast.cjs"),Ms=require("./hooks/usePreferredDark/usePreferredDark.cjs"),Ls=require("./hooks/usePreferredLanguages/usePreferredLanguages.cjs"),_s=require("./hooks/usePreferredReducedMotion/usePreferredReducedMotion.cjs"),Ns=require("./hooks/useConst/useConst.cjs"),Bs=require("./hooks/useDebounceCallback/useDebounceCallback.cjs"),Ks=require("./hooks/useDebounceState/useDebounceState.cjs"),Fs=require("./hooks/useDebounceValue/useDebounceValue.cjs"),Vs=require("./hooks/useEvent/useEvent.cjs"),Us=require("./hooks/useLastChanged/useLastChanged.cjs"),ws=require("./hooks/useLatest/useLatest.cjs"),Ws=require("./hooks/usePrevious/usePrevious.cjs"),Hs=require("./hooks/useThrottleCallback/useThrottleCallback.cjs"),xs=require("./hooks/useThrottleState/useThrottleState.cjs"),Qs=require("./hooks/useThrottleValue/useThrottleValue.cjs"),p=require("./utils/helpers/copy.cjs"),zs=require("./utils/helpers/debounce.cjs"),Gs=require("./utils/helpers/getDate.cjs"),i=require("./utils/helpers/getElement.cjs"),Xs=require("./utils/helpers/getRetry.cjs"),Zs=require("./utils/helpers/isTarget.cjs"),js=require("./utils/helpers/throttle.cjs");exports.createContext=y.createContext;exports.createEventEmitter=I.createEventEmitter;exports.createReactiveContext=k.createReactiveContext;exports.createStore=v.createStore;exports.useAsync=O.useAsync;exports.useLockCallback=h.useLockCallback;exports.useMutation=A.useMutation;exports.useOptimistic=D.useOptimistic;exports.useQuery=b.useQuery;exports.useAudio=f.useAudio;exports.useBattery=M.useBattery;exports.useBluetooth=L.useBluetooth;exports.useBroadcastChannel=_.useBroadcastChannel;exports.useClipboard=N.useClipboard;exports.useCopy=B.useCopy;exports.useCssVar=K.useCssVar;exports.useDisplayMedia=F.useDisplayMedia;exports.useDocumentTitle=V.useDocumentTitle;exports.useEventSource=U.useEventSource;exports.useEyeDropper=w.useEyeDropper;exports.useFavicon=W.useFavicon;exports.useFps=H.useFps;exports.useFullscreen=x.useFullscreen;exports.mapGamepadToXbox360Controller=n.mapGamepadToXbox360Controller;exports.useGamepad=n.useGamepad;exports.useGeolocation=Q.useGeolocation;exports.timeRangeToArray=c.timeRangeToArray;exports.useMediaControls=c.useMediaControls;exports.useMemory=z.useMemory;exports.getConnection=a.getConnection;exports.useNetwork=a.useNetwork;exports.useOnline=G.useOnline;exports.useOtpCredential=X.useOtpCredential;exports.usePermission=Z.usePermission;exports.usePictureInPicture=j.usePictureInPicture;exports.usePointerLock=J.usePointerLock;exports.usePostMessage=Y.usePostMessage;exports.useRaf=$.useRaf;exports.useShare=ee.useShare;exports.getSpeechRecognition=l.getSpeechRecognition;exports.useSpeechRecognition=l.useSpeechRecognition;exports.useSpeechSynthesis=se.useSpeechSynthesis;exports.useVibrate=ue.useVibrate;exports.useVirtualKeyboard=re.useVirtualKeyboard;exports.useWakeLock=te.useWakeLock;exports.useWebSocket=oe.useWebSocket;exports.useLogger=ie.useLogger;exports.useRenderCount=ne.useRenderCount;exports.useRenderInfo=ce.useRenderInfo;exports.useRerender=ae.useRerender;exports.useActiveElement=le.useActiveElement;exports.useAutoScroll=Se.useAutoScroll;exports.useClickOutside=qe.useClickOutside;exports.DEFAULT_THRESHOLD_TIME=S.DEFAULT_THRESHOLD_TIME;exports.useDoubleClick=S.useDoubleClick;exports.useDropZone=de.useDropZone;exports.useFileDialog=ge.useFileDialog;exports.useFocus=Ee.useFocus;exports.useHover=Te.useHover;exports.useImage=Pe.useImage;exports.useLongPress=Ce.useLongPress;exports.Paint=r.Paint;exports.Pointer=r.Pointer;exports.usePaint=r.usePaint;exports.useRightClick=Re.useRightClick;exports.SCRIPT_STATUS_ATTRIBUTE_NAME=q.SCRIPT_STATUS_ATTRIBUTE_NAME;exports.useScript=q.useScript;exports.useSticky=me.useSticky;exports.useTextDirection=pe.useTextDirection;exports.useFul=ye.useFul;exports.useLess=Ie.useLess;exports.useOnce=ke.useOnce;exports.useDidUpdate=ve.useDidUpdate;exports.useIsFirstRender=Oe.useIsFirstRender;exports.useIsomorphicLayoutEffect=he.useIsomorphicLayoutEffect;exports.useMount=Ae.useMount;exports.deepEqual=d.deepEqual;exports.useShallowEffect=d.useShallowEffect;exports.useUnmount=De.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=fe.useDeviceOrientation;exports.useDevicePixelRatio=Me.useDevicePixelRatio;exports.useDocumentEvent=Le.useDocumentEvent;exports.useDocumentVisibility=_e.useDocumentVisibility;exports.useElementSize=Ne.useElementSize;exports.useEventListener=Be.useEventListener;exports.isHotkeyMatch=g.isHotkeyMatch;exports.useHotkeys=g.useHotkeys;exports.useIdle=Ke.useIdle;exports.useInfiniteScroll=Fe.useInfiniteScroll;exports.useIntersectionObserver=Ve.useIntersectionObserver;exports.useKeyboard=Ue.useKeyboard;exports.useKeyPress=we.useKeyPress;exports.useKeyPressEvent=We.useKeyPressEvent;exports.useKeysPressed=He.useKeysPressed;exports.useLockScroll=xe.useLockScroll;exports.useMeasure=Qe.useMeasure;exports.useMediaQuery=ze.useMediaQuery;exports.useMouse=Ge.useMouse;exports.useMutationObserver=Xe.useMutationObserver;exports.useOrientation=Ze.useOrientation;exports.usePageLeave=je.usePageLeave;exports.useParallax=Je.useParallax;exports.usePerformanceObserver=Ye.usePerformanceObserver;exports.useResizeObserver=$e.useResizeObserver;exports.useScroll=es.useScroll;exports.useScrollIntoView=ss.useScrollIntoView;exports.useScrollTo=us.useScrollTo;exports.getRangesSelection=E.getRangesSelection;exports.useTextSelection=E.useTextSelection;exports.useWindowEvent=rs.useWindowEvent;exports.useWindowFocus=ts.useWindowFocus;exports.scrollTo=T.scrollTo;exports.useWindowScroll=T.useWindowScroll;exports.useWindowSize=os.useWindowSize;exports.useBoolean=is.useBoolean;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=P.clearCookies;exports.useCookies=P.useCookies;exports.useCounter=ns.useCounter;exports.useDefault=cs.useDefault;exports.useDisclosure=as.useDisclosure;exports.useField=ls.useField;exports.useHash=Ss.useHash;exports.useList=qs.useList;exports.useLocalStorage=ds.useLocalStorage;exports.useMap=gs.useMap;exports.assignRef=t.assignRef;exports.mergeRefs=t.mergeRefs;exports.useMergedRef=t.useMergedRef;exports.useOffsetPagination=Es.useOffsetPagination;exports.useQueue=Ts.useQueue;exports.useRafState=Ps.useRafState;exports.useRefState=Cs.useRefState;exports.useSessionStorage=Rs.useSessionStorage;exports.useSet=ms.useSet;exports.stateHistoryReducer=C.stateHistoryReducer;exports.useStateHistory=C.useStateHistory;exports.useStep=ps.useStep;exports.STORAGE_EVENT=o.STORAGE_EVENT;exports.dispatchStorageEvent=o.dispatchStorageEvent;exports.useStorage=o.useStorage;exports.useToggle=ys.useToggle;exports.URL_SEARCH_PARAMS_EVENT=u.URL_SEARCH_PARAMS_EVENT;exports.createQueryString=u.createQueryString;exports.dispatchUrlSearchParamsEvent=u.dispatchUrlSearchParamsEvent;exports.getUrlSearchParams=u.getUrlSearchParams;exports.useUrlSearchParam=u.useUrlSearchParam;exports.useUrlSearchParams=Is.useUrlSearchParams;exports.useWizard=ks.useWizard;exports.useInterval=vs.useInterval;exports.useStopwatch=Os.useStopwatch;exports.useTime=hs.useTime;exports.useTimeout=As.useTimeout;exports.getTimeFromSeconds=R.getTimeFromSeconds;exports.useTimer=R.useTimer;exports.useBrowserLanguage=Ds.useBrowserLanguage;exports.getOperatingSystem=m.getOperatingSystem;exports.useOperatingSystem=m.useOperatingSystem;exports.usePreferredColorScheme=bs.usePreferredColorScheme;exports.usePreferredContrast=fs.usePreferredContrast;exports.usePreferredDark=Ms.usePreferredDark;exports.usePreferredLanguages=Ls.usePreferredLanguages;exports.usePreferredReducedMotion=_s.usePreferredReducedMotion;exports.useConst=Ns.useConst;exports.useDebounceCallback=Bs.useDebounceCallback;exports.useDebounceState=Ks.useDebounceState;exports.useDebounceValue=Fs.useDebounceValue;exports.useEvent=Vs.useEvent;exports.useLastChanged=Us.useLastChanged;exports.useLatest=ws.useLatest;exports.usePrevious=Ws.usePrevious;exports.useThrottleCallback=Hs.useThrottleCallback;exports.useThrottleState=xs.useThrottleState;exports.useThrottleValue=Qs.useThrottleValue;exports.copy=p.copy;exports.legacyCopyToClipboard=p.legacyCopyToClipboard;exports.debounce=zs.debounce;exports.getDate=Gs.getDate;exports.getElement=i.getElement;exports.target=i.target;exports.targetSymbol=i.targetSymbol;exports.getRetry=Xs.getRetry;exports.isTarget=Zs.isTarget;exports.throttle=js.throttle;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const y=require("./helpers/createContext/createContext.cjs"),I=require("./helpers/createEventEmitter/createEventEmitter.cjs"),k=require("./helpers/createReactiveContext/createReactiveContext.cjs"),v=require("./helpers/createStore/createStore.cjs"),O=require("./hooks/useAsync/useAsync.cjs"),h=require("./hooks/useLockCallback/useLockCallback.cjs"),A=require("./hooks/useMutation/useMutation.cjs"),D=require("./hooks/useOptimistic/useOptimistic.cjs"),b=require("./hooks/useQuery/useQuery.cjs"),f=require("./hooks/useAudio/useAudio.cjs"),M=require("./hooks/useBattery/useBattery.cjs"),L=require("./hooks/useBluetooth/useBluetooth.cjs"),_=require("./hooks/useBroadcastChannel/useBroadcastChannel.cjs"),N=require("./hooks/useClipboard/useClipboard.cjs"),B=require("./hooks/useCopy/useCopy.cjs"),K=require("./hooks/useCssVar/useCssVar.cjs"),F=require("./hooks/useDisplayMedia/useDisplayMedia.cjs"),V=require("./hooks/useDocumentTitle/useDocumentTitle.cjs"),U=require("./hooks/useEventSource/useEventSource.cjs"),w=require("./hooks/useEyeDropper/useEyeDropper.cjs"),W=require("./hooks/useFavicon/useFavicon.cjs"),H=require("./hooks/useFps/useFps.cjs"),x=require("./hooks/useFullscreen/useFullscreen.cjs"),n=require("./hooks/useGamepad/useGamepad.cjs"),Q=require("./hooks/useGeolocation/useGeolocation.cjs"),c=require("./hooks/useMediaControls/useMediaControls.cjs"),z=require("./hooks/useMemory/useMemory.cjs"),a=require("./hooks/useNetwork/useNetwork.cjs"),G=require("./hooks/useOnline/useOnline.cjs"),X=require("./hooks/useOtpCredential/useOtpCredential.cjs"),Z=require("./hooks/usePermission/usePermission.cjs"),j=require("./hooks/usePictureInPicture/usePictureInPicture.cjs"),J=require("./hooks/usePointerLock/usePointerLock.cjs"),Y=require("./hooks/usePostMessage/usePostMessage.cjs"),$=require("./hooks/useRaf/useRaf.cjs"),ee=require("./hooks/useShare/useShare.cjs"),l=require("./hooks/useSpeechRecognition/useSpeechRecognition.cjs"),se=require("./hooks/useSpeechSynthesis/useSpeechSynthesis.cjs"),ue=require("./hooks/useVibrate/useVibrate.cjs"),re=require("./hooks/useVirtualKeyboard/useVirtualKeyboard.cjs"),te=require("./hooks/useWakeLock/useWakeLock.cjs"),oe=require("./hooks/useWebSocket/useWebSocket.cjs"),ie=require("./hooks/useLogger/useLogger.cjs"),ne=require("./hooks/useRenderCount/useRenderCount.cjs"),ce=require("./hooks/useRenderInfo/useRenderInfo.cjs"),ae=require("./hooks/useRerender/useRerender.cjs"),le=require("./hooks/useActiveElement/useActiveElement.cjs"),Se=require("./hooks/useAutoScroll/useAutoScroll.cjs"),qe=require("./hooks/useClickOutside/useClickOutside.cjs"),S=require("./hooks/useDoubleClick/useDoubleClick.cjs"),de=require("./hooks/useDropZone/useDropZone.cjs"),ge=require("./hooks/useFileDialog/useFileDialog.cjs"),Ee=require("./hooks/useFocus/useFocus.cjs"),Te=require("./hooks/useHover/useHover.cjs"),Pe=require("./hooks/useImage/useImage.cjs"),Ce=require("./hooks/useLongPress/useLongPress.cjs"),r=require("./hooks/usePaint/usePaint.cjs"),Re=require("./hooks/useRightClick/useRightClick.cjs"),q=require("./hooks/useScript/useScript.cjs"),me=require("./hooks/useSticky/useSticky.cjs"),pe=require("./hooks/useTextDirection/useTextDirection.cjs"),ye=require("./hooks/useFul/useFul.cjs"),Ie=require("./hooks/useLess/useLess.cjs"),ke=require("./hooks/useOnce/useOnce.cjs"),ve=require("./hooks/useDidUpdate/useDidUpdate.cjs"),Oe=require("./hooks/useIsFirstRender/useIsFirstRender.cjs"),he=require("./hooks/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.cjs"),Ae=require("./hooks/useMount/useMount.cjs"),d=require("./hooks/useShallowEffect/useShallowEffect.cjs"),De=require("./hooks/useUnmount/useUnmount.cjs"),e=require("./hooks/useBreakpoints/useBreakpoints.cjs"),be=require("./hooks/useDeviceMotion/useDeviceMotion.cjs"),fe=require("./hooks/useDeviceOrientation/useDeviceOrientation.cjs"),Me=require("./hooks/useDevicePixelRatio/useDevicePixelRatio.cjs"),Le=require("./hooks/useDocumentEvent/useDocumentEvent.cjs"),_e=require("./hooks/useDocumentVisibility/useDocumentVisibility.cjs"),Ne=require("./hooks/useElementSize/useElementSize.cjs"),Be=require("./hooks/useEventListener/useEventListener.cjs"),g=require("./hooks/useHotkeys/useHotkeys.cjs"),Ke=require("./hooks/useIdle/useIdle.cjs"),Fe=require("./hooks/useInfiniteScroll/useInfiniteScroll.cjs"),Ve=require("./hooks/useIntersectionObserver/useIntersectionObserver.cjs"),Ue=require("./hooks/useKeyboard/useKeyboard.cjs"),we=require("./hooks/useKeyPress/useKeyPress.cjs"),We=require("./hooks/useKeyPressEvent/useKeyPressEvent.cjs"),He=require("./hooks/useKeysPressed/useKeysPressed.cjs"),xe=require("./hooks/useLockScroll/useLockScroll.cjs"),Qe=require("./hooks/useMeasure/useMeasure.cjs"),ze=require("./hooks/useMediaQuery/useMediaQuery.cjs"),Ge=require("./hooks/useMouse/useMouse.cjs"),Xe=require("./hooks/useMutationObserver/useMutationObserver.cjs"),Ze=require("./hooks/useOrientation/useOrientation.cjs"),je=require("./hooks/usePageLeave/usePageLeave.cjs"),Je=require("./hooks/useParallax/useParallax.cjs"),Ye=require("./hooks/usePerformanceObserver/usePerformanceObserver.cjs"),$e=require("./hooks/useResizeObserver/useResizeObserver.cjs"),es=require("./hooks/useScroll/useScroll.cjs"),ss=require("./hooks/useScrollIntoView/useScrollIntoView.cjs"),us=require("./hooks/useScrollTo/useScrollTo.cjs"),E=require("./hooks/useTextSelection/useTextSelection.cjs"),rs=require("./hooks/useWindowEvent/useWindowEvent.cjs"),ts=require("./hooks/useWindowFocus/useWindowFocus.cjs"),T=require("./hooks/useWindowScroll/useWindowScroll.cjs"),os=require("./hooks/useWindowSize/useWindowSize.cjs"),is=require("./hooks/useBoolean/useBoolean.cjs"),ns=require("./hooks/useControllableState/useControllableState.cjs"),s=require("./hooks/useCookie/useCookie.cjs"),P=require("./hooks/useCookies/useCookies.cjs"),cs=require("./hooks/useCounter/useCounter.cjs"),as=require("./hooks/useDefault/useDefault.cjs"),ls=require("./hooks/useDisclosure/useDisclosure.cjs"),Ss=require("./hooks/useField/useField.cjs"),qs=require("./hooks/useHash/useHash.cjs"),ds=require("./hooks/useList/useList.cjs"),gs=require("./hooks/useLocalStorage/useLocalStorage.cjs"),Es=require("./hooks/useMap/useMap.cjs"),t=require("./hooks/useMergedRef/useMergedRef.cjs"),Ts=require("./hooks/useOffsetPagination/useOffsetPagination.cjs"),Ps=require("./hooks/useQueue/useQueue.cjs"),Cs=require("./hooks/useRafState/useRafState.cjs"),Rs=require("./hooks/useRefState/useRefState.cjs"),ms=require("./hooks/useSessionStorage/useSessionStorage.cjs"),ps=require("./hooks/useSet/useSet.cjs"),C=require("./hooks/useStateHistory/useStateHistory.cjs"),ys=require("./hooks/useStep/useStep.cjs"),o=require("./hooks/useStorage/useStorage.cjs"),Is=require("./hooks/useToggle/useToggle.cjs"),u=require("./hooks/useUrlSearchParam/useUrlSearchParam.cjs"),ks=require("./hooks/useUrlSearchParams/useUrlSearchParams.cjs"),vs=require("./hooks/useWizard/useWizard.cjs"),Os=require("./hooks/useInterval/useInterval.cjs"),hs=require("./hooks/useStopwatch/useStopwatch.cjs"),As=require("./hooks/useTime/useTime.cjs"),Ds=require("./hooks/useTimeout/useTimeout.cjs"),R=require("./hooks/useTimer/useTimer.cjs"),bs=require("./hooks/useBrowserLanguage/useBrowserLanguage.cjs"),m=require("./hooks/useOperatingSystem/useOperatingSystem.cjs"),fs=require("./hooks/usePreferredColorScheme/usePreferredColorScheme.cjs"),Ms=require("./hooks/usePreferredContrast/usePreferredContrast.cjs"),Ls=require("./hooks/usePreferredDark/usePreferredDark.cjs"),_s=require("./hooks/usePreferredLanguages/usePreferredLanguages.cjs"),Ns=require("./hooks/usePreferredReducedMotion/usePreferredReducedMotion.cjs"),Bs=require("./hooks/useConst/useConst.cjs"),Ks=require("./hooks/useDebounceCallback/useDebounceCallback.cjs"),Fs=require("./hooks/useDebounceState/useDebounceState.cjs"),Vs=require("./hooks/useDebounceValue/useDebounceValue.cjs"),Us=require("./hooks/useEvent/useEvent.cjs"),ws=require("./hooks/useLastChanged/useLastChanged.cjs"),Ws=require("./hooks/useLatest/useLatest.cjs"),Hs=require("./hooks/usePrevious/usePrevious.cjs"),xs=require("./hooks/useThrottleCallback/useThrottleCallback.cjs"),Qs=require("./hooks/useThrottleState/useThrottleState.cjs"),zs=require("./hooks/useThrottleValue/useThrottleValue.cjs"),p=require("./utils/helpers/copy.cjs"),Gs=require("./utils/helpers/debounce.cjs"),Xs=require("./utils/helpers/getDate.cjs"),i=require("./utils/helpers/getElement.cjs"),Zs=require("./utils/helpers/getRetry.cjs"),js=require("./utils/helpers/isTarget.cjs"),Js=require("./utils/helpers/throttle.cjs");exports.createContext=y.createContext;exports.createEventEmitter=I.createEventEmitter;exports.createReactiveContext=k.createReactiveContext;exports.createStore=v.createStore;exports.useAsync=O.useAsync;exports.useLockCallback=h.useLockCallback;exports.useMutation=A.useMutation;exports.useOptimistic=D.useOptimistic;exports.useQuery=b.useQuery;exports.useAudio=f.useAudio;exports.useBattery=M.useBattery;exports.useBluetooth=L.useBluetooth;exports.useBroadcastChannel=_.useBroadcastChannel;exports.useClipboard=N.useClipboard;exports.useCopy=B.useCopy;exports.useCssVar=K.useCssVar;exports.useDisplayMedia=F.useDisplayMedia;exports.useDocumentTitle=V.useDocumentTitle;exports.useEventSource=U.useEventSource;exports.useEyeDropper=w.useEyeDropper;exports.useFavicon=W.useFavicon;exports.useFps=H.useFps;exports.useFullscreen=x.useFullscreen;exports.mapGamepadToXbox360Controller=n.mapGamepadToXbox360Controller;exports.useGamepad=n.useGamepad;exports.useGeolocation=Q.useGeolocation;exports.timeRangeToArray=c.timeRangeToArray;exports.useMediaControls=c.useMediaControls;exports.useMemory=z.useMemory;exports.getConnection=a.getConnection;exports.useNetwork=a.useNetwork;exports.useOnline=G.useOnline;exports.useOtpCredential=X.useOtpCredential;exports.usePermission=Z.usePermission;exports.usePictureInPicture=j.usePictureInPicture;exports.usePointerLock=J.usePointerLock;exports.usePostMessage=Y.usePostMessage;exports.useRaf=$.useRaf;exports.useShare=ee.useShare;exports.getSpeechRecognition=l.getSpeechRecognition;exports.useSpeechRecognition=l.useSpeechRecognition;exports.useSpeechSynthesis=se.useSpeechSynthesis;exports.useVibrate=ue.useVibrate;exports.useVirtualKeyboard=re.useVirtualKeyboard;exports.useWakeLock=te.useWakeLock;exports.useWebSocket=oe.useWebSocket;exports.useLogger=ie.useLogger;exports.useRenderCount=ne.useRenderCount;exports.useRenderInfo=ce.useRenderInfo;exports.useRerender=ae.useRerender;exports.useActiveElement=le.useActiveElement;exports.useAutoScroll=Se.useAutoScroll;exports.useClickOutside=qe.useClickOutside;exports.DEFAULT_THRESHOLD_TIME=S.DEFAULT_THRESHOLD_TIME;exports.useDoubleClick=S.useDoubleClick;exports.useDropZone=de.useDropZone;exports.useFileDialog=ge.useFileDialog;exports.useFocus=Ee.useFocus;exports.useHover=Te.useHover;exports.useImage=Pe.useImage;exports.useLongPress=Ce.useLongPress;exports.Paint=r.Paint;exports.Pointer=r.Pointer;exports.usePaint=r.usePaint;exports.useRightClick=Re.useRightClick;exports.SCRIPT_STATUS_ATTRIBUTE_NAME=q.SCRIPT_STATUS_ATTRIBUTE_NAME;exports.useScript=q.useScript;exports.useSticky=me.useSticky;exports.useTextDirection=pe.useTextDirection;exports.useFul=ye.useFul;exports.useLess=Ie.useLess;exports.useOnce=ke.useOnce;exports.useDidUpdate=ve.useDidUpdate;exports.useIsFirstRender=Oe.useIsFirstRender;exports.useIsomorphicLayoutEffect=he.useIsomorphicLayoutEffect;exports.useMount=Ae.useMount;exports.deepEqual=d.deepEqual;exports.useShallowEffect=d.useShallowEffect;exports.useUnmount=De.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=fe.useDeviceOrientation;exports.useDevicePixelRatio=Me.useDevicePixelRatio;exports.useDocumentEvent=Le.useDocumentEvent;exports.useDocumentVisibility=_e.useDocumentVisibility;exports.useElementSize=Ne.useElementSize;exports.useEventListener=Be.useEventListener;exports.isHotkeyMatch=g.isHotkeyMatch;exports.useHotkeys=g.useHotkeys;exports.useIdle=Ke.useIdle;exports.useInfiniteScroll=Fe.useInfiniteScroll;exports.useIntersectionObserver=Ve.useIntersectionObserver;exports.useKeyboard=Ue.useKeyboard;exports.useKeyPress=we.useKeyPress;exports.useKeyPressEvent=We.useKeyPressEvent;exports.useKeysPressed=He.useKeysPressed;exports.useLockScroll=xe.useLockScroll;exports.useMeasure=Qe.useMeasure;exports.useMediaQuery=ze.useMediaQuery;exports.useMouse=Ge.useMouse;exports.useMutationObserver=Xe.useMutationObserver;exports.useOrientation=Ze.useOrientation;exports.usePageLeave=je.usePageLeave;exports.useParallax=Je.useParallax;exports.usePerformanceObserver=Ye.usePerformanceObserver;exports.useResizeObserver=$e.useResizeObserver;exports.useScroll=es.useScroll;exports.useScrollIntoView=ss.useScrollIntoView;exports.useScrollTo=us.useScrollTo;exports.getRangesSelection=E.getRangesSelection;exports.useTextSelection=E.useTextSelection;exports.useWindowEvent=rs.useWindowEvent;exports.useWindowFocus=ts.useWindowFocus;exports.scrollTo=T.scrollTo;exports.useWindowScroll=T.useWindowScroll;exports.useWindowSize=os.useWindowSize;exports.useBoolean=is.useBoolean;exports.useControllableState=ns.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=P.clearCookies;exports.useCookies=P.useCookies;exports.useCounter=cs.useCounter;exports.useDefault=as.useDefault;exports.useDisclosure=ls.useDisclosure;exports.useField=Ss.useField;exports.useHash=qs.useHash;exports.useList=ds.useList;exports.useLocalStorage=gs.useLocalStorage;exports.useMap=Es.useMap;exports.assignRef=t.assignRef;exports.mergeRefs=t.mergeRefs;exports.useMergedRef=t.useMergedRef;exports.useOffsetPagination=Ts.useOffsetPagination;exports.useQueue=Ps.useQueue;exports.useRafState=Cs.useRafState;exports.useRefState=Rs.useRefState;exports.useSessionStorage=ms.useSessionStorage;exports.useSet=ps.useSet;exports.stateHistoryReducer=C.stateHistoryReducer;exports.useStateHistory=C.useStateHistory;exports.useStep=ys.useStep;exports.STORAGE_EVENT=o.STORAGE_EVENT;exports.dispatchStorageEvent=o.dispatchStorageEvent;exports.useStorage=o.useStorage;exports.useToggle=Is.useToggle;exports.URL_SEARCH_PARAMS_EVENT=u.URL_SEARCH_PARAMS_EVENT;exports.createQueryString=u.createQueryString;exports.dispatchUrlSearchParamsEvent=u.dispatchUrlSearchParamsEvent;exports.getUrlSearchParams=u.getUrlSearchParams;exports.useUrlSearchParam=u.useUrlSearchParam;exports.useUrlSearchParams=ks.useUrlSearchParams;exports.useWizard=vs.useWizard;exports.useInterval=Os.useInterval;exports.useStopwatch=hs.useStopwatch;exports.useTime=As.useTime;exports.useTimeout=Ds.useTimeout;exports.getTimeFromSeconds=R.getTimeFromSeconds;exports.useTimer=R.useTimer;exports.useBrowserLanguage=bs.useBrowserLanguage;exports.getOperatingSystem=m.getOperatingSystem;exports.useOperatingSystem=m.useOperatingSystem;exports.usePreferredColorScheme=fs.usePreferredColorScheme;exports.usePreferredContrast=Ms.usePreferredContrast;exports.usePreferredDark=Ls.usePreferredDark;exports.usePreferredLanguages=_s.usePreferredLanguages;exports.usePreferredReducedMotion=Ns.usePreferredReducedMotion;exports.useConst=Bs.useConst;exports.useDebounceCallback=Ks.useDebounceCallback;exports.useDebounceState=Fs.useDebounceState;exports.useDebounceValue=Vs.useDebounceValue;exports.useEvent=Us.useEvent;exports.useLastChanged=ws.useLastChanged;exports.useLatest=Ws.useLatest;exports.usePrevious=Hs.usePrevious;exports.useThrottleCallback=xs.useThrottleCallback;exports.useThrottleState=Qs.useThrottleState;exports.useThrottleValue=zs.useThrottleValue;exports.copy=p.copy;exports.legacyCopyToClipboard=p.legacyCopyToClipboard;exports.debounce=Gs.debounce;exports.getDate=Xs.getDate;exports.getElement=i.getElement;exports.target=i.target;exports.targetSymbol=i.targetSymbol;exports.getRetry=Zs.getRetry;exports.isTarget=js.isTarget;exports.throttle=Js.throttle;
|
|
2
2
|
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { useState as C, useRef as S, useCallback as d } from "react";
|
|
2
|
+
function v(l) {
|
|
3
|
+
const { value: o, initialValue: c, onChange: r } = l, t = o !== void 0, [u, i] = C(c), a = S(r);
|
|
4
|
+
a.current = r;
|
|
5
|
+
const e = t ? o : u, f = d(
|
|
6
|
+
(n) => {
|
|
7
|
+
const s = typeof n == "function" ? n(e) : n;
|
|
8
|
+
t || i(s), a.current?.(s);
|
|
9
|
+
},
|
|
10
|
+
[e, t]
|
|
11
|
+
);
|
|
12
|
+
return [e, f, t];
|
|
13
|
+
}
|
|
14
|
+
export {
|
|
15
|
+
v as useControllableState
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=useControllableState.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useControllableState.mjs","sources":["../../../../src/hooks/useControllableState/useControllableState.ts"],"sourcesContent":["import { useCallback, useRef, useState } from 'react';\n\n/** The use controllable state options type */\nexport interface UseControllableStateOptions<Value> {\n /** The initial value for uncontrolled state */\n initialValue?: Value;\n /** The controlled value */\n value?: Value;\n /** The onChange callback */\n onChange?: (value: Value) => void;\n}\n\n/** The use controllable state return type */\nexport type UseControllableStateReturn<Value> = [\n /** Current value */\n value: Value,\n /** Setter function that works with both controlled and uncontrolled state */\n setValue: (nextValue: ((prevValue: Value) => Value) | Value) => void,\n /** Whether the state is controlled */\n isControlled: boolean\n];\n\n/**\n * @name useControllableState\n * @description - Hook that manages both controlled and uncontrolled state patterns\n * @category State\n * @usage medium\n *\n * @template Value The type of the state value\n * @param {Value} [options.value] The controlled value. When provided, the component becomes controlled\n * @param {Value} [options.initialValue] The initial value for uncontrolled state\n * @param {(value: Value) => void} [options.onChange] The callback function called when the state changes\n * @returns {UseControllableStateReturn<Value>} A tuple containing the current value, setter function, and controlled flag\n *\n * @example\n * const [value, setValue, isControlled] = useControllableState({ initialValue: 'initial' });\n */\nexport function useControllableState<Value>(\n options: UseControllableStateOptions<Value>\n): UseControllableStateReturn<Value> {\n const { value, initialValue, onChange } = options;\n const isControlled = value !== undefined;\n\n const [internalState, setInternalState] = useState<Value>(initialValue as Value);\n\n const onChangeRef = useRef(onChange);\n onChangeRef.current = onChange;\n\n const currentValue = isControlled ? value : internalState;\n\n const setValue = useCallback(\n (nextValue: ((prevValue: Value) => Value) | Value) => {\n const resolvedValue =\n typeof nextValue === 'function'\n ? (nextValue as (prevValue: Value) => Value)(currentValue)\n : nextValue;\n\n if (!isControlled) setInternalState(resolvedValue);\n\n onChangeRef.current?.(resolvedValue);\n },\n [currentValue, isControlled]\n );\n\n return [currentValue, setValue, isControlled];\n}\n"],"names":["useControllableState","options","value","initialValue","onChange","isControlled","internalState","setInternalState","useState","onChangeRef","useRef","currentValue","setValue","useCallback","nextValue","resolvedValue"],"mappings":";AAqCO,SAASA,EACdC,GACmC;AACnC,QAAM,EAAE,OAAAC,GAAO,cAAAC,GAAc,UAAAC,EAAA,IAAaH,GACpCI,IAAeH,MAAU,QAEzB,CAACI,GAAeC,CAAgB,IAAIC,EAAgBL,CAAqB,GAEzEM,IAAcC,EAAON,CAAQ;AACnC,EAAAK,EAAY,UAAUL;AAEtB,QAAMO,IAAeN,IAAeH,IAAQI,GAEtCM,IAAWC;AAAA,IACf,CAACC,MAAqD;AACpD,YAAMC,IACJ,OAAOD,KAAc,aAChBA,EAA0CH,CAAY,IACvDG;AAEN,MAAKT,KAAcE,EAAiBQ,CAAa,GAEjDN,EAAY,UAAUM,CAAa;AAAA,IAAA;AAAA,IAErC,CAACJ,GAAcN,CAAY;AAAA,EAAA;AAG7B,SAAO,CAACM,GAAcC,GAAUP,CAAY;AAC9C;"}
|
|
@@ -1,47 +1,65 @@
|
|
|
1
|
-
import { useRef as
|
|
2
|
-
import { useRefState as
|
|
3
|
-
import { isTarget as
|
|
4
|
-
import { getElement as
|
|
5
|
-
const
|
|
6
|
-
const
|
|
7
|
-
|
|
8
|
-
const [
|
|
9
|
-
|
|
10
|
-
if (!
|
|
11
|
-
const
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
1
|
+
import { useRef as S, useState as j, useEffect as A } from "react";
|
|
2
|
+
import { useRefState as O } from "../useRefState/useRefState.mjs";
|
|
3
|
+
import { isTarget as P } from "../../utils/helpers/isTarget.mjs";
|
|
4
|
+
import { getElement as W } from "../../utils/helpers/getElement.mjs";
|
|
5
|
+
const I = 1, q = (...o) => {
|
|
6
|
+
const c = P(o[0]) ? o[0] : void 0, g = c ? typeof o[1] == "object" ? o[1] : { onScroll: o[1] } : typeof o[0] == "object" ? o[0] : { onScroll: o[0] }, d = O(), p = S(g), f = S(null);
|
|
7
|
+
p.current = g;
|
|
8
|
+
const [E, R] = j(!1), u = S({ x: 0, y: 0 });
|
|
9
|
+
A(() => {
|
|
10
|
+
if (!c && !d.state) return;
|
|
11
|
+
const e = (c ? W(c) : d.current) ?? window;
|
|
12
|
+
f.current = e;
|
|
13
|
+
const l = (t) => {
|
|
14
|
+
R(!1), g?.onStop?.(t);
|
|
15
|
+
}, s = (t) => {
|
|
16
|
+
R(!0);
|
|
17
|
+
const r = t.target === document ? t.target.documentElement : t.target, { display: b, flexDirection: h, direction: V } = r.style, x = V === "rtl" ? -1 : 1, i = r.scrollLeft;
|
|
18
|
+
let n = r.scrollTop;
|
|
19
|
+
r instanceof Document && !n && (n = window.document.body.scrollTop);
|
|
20
|
+
const m = p.current?.offset, a = i * x <= (m?.left ?? 0), T = i * x + r.clientWidth >= r.scrollWidth - (m?.right ?? 0) - I, L = n <= (m?.top ?? 0), w = n + r.clientHeight >= r.scrollHeight - (m?.bottom ?? 0) - I, D = b === "flex" && h === "column-reverse", H = b === "flex" && h === "column-reverse", _ = {
|
|
21
|
+
x: i,
|
|
22
|
+
y: n,
|
|
21
23
|
directions: {
|
|
22
|
-
left:
|
|
23
|
-
right:
|
|
24
|
-
top:
|
|
25
|
-
bottom:
|
|
24
|
+
left: i < u.current.x,
|
|
25
|
+
right: i > u.current.x,
|
|
26
|
+
top: n < u.current.y,
|
|
27
|
+
bottom: n > u.current.y
|
|
26
28
|
},
|
|
27
29
|
arrived: {
|
|
28
|
-
left:
|
|
29
|
-
right:
|
|
30
|
-
top:
|
|
31
|
-
bottom:
|
|
30
|
+
left: H ? T : a,
|
|
31
|
+
right: H ? a : T,
|
|
32
|
+
top: D ? w : L,
|
|
33
|
+
bottom: D ? L : w
|
|
32
34
|
}
|
|
33
35
|
};
|
|
34
|
-
|
|
36
|
+
u.current = { x: i, y: n }, p.current?.onScroll?.(_, t);
|
|
35
37
|
};
|
|
36
|
-
return
|
|
37
|
-
|
|
38
|
+
return e.addEventListener("scroll", s), e.addEventListener("scrollend", l), () => {
|
|
39
|
+
e.removeEventListener("scroll", s), e.removeEventListener("scrollend", l);
|
|
38
40
|
};
|
|
39
|
-
}, [
|
|
40
|
-
|
|
41
|
-
|
|
41
|
+
}, [c, d.state]);
|
|
42
|
+
const v = (e) => {
|
|
43
|
+
if (!f.current) return;
|
|
44
|
+
const { behavior: l, block: s, inline: t } = e ?? {};
|
|
45
|
+
f.current.scrollIntoView({
|
|
46
|
+
behavior: l,
|
|
47
|
+
block: s,
|
|
48
|
+
inline: t
|
|
49
|
+
});
|
|
50
|
+
}, y = (e) => {
|
|
51
|
+
if (!f.current) return;
|
|
52
|
+
const { x: l, y: s, behavior: t } = e ?? {};
|
|
53
|
+
f.current.scrollTo({ left: l, top: s, behavior: t });
|
|
54
|
+
};
|
|
55
|
+
return c ? { scrollIntoView: v, scrollTo: y, scrolling: E } : {
|
|
56
|
+
ref: d,
|
|
57
|
+
scrolling: E,
|
|
58
|
+
scrollIntoView: v,
|
|
59
|
+
scrollTo: y
|
|
42
60
|
};
|
|
43
61
|
};
|
|
44
62
|
export {
|
|
45
|
-
|
|
63
|
+
q as useScroll
|
|
46
64
|
};
|
|
47
65
|
//# sourceMappingURL=useScroll.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useScroll.mjs","sources":["../../../../src/hooks/useScroll/useScroll.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\n\nimport type { HookTarget } from '@/utils/helpers';\n\nimport { getElement, isTarget } from '@/utils/helpers';\n\nimport type { StateRef } from '../useRefState/useRefState';\n\nimport { useRefState } from '../useRefState/useRefState';\n\nconst ARRIVED_STATE_THRESHOLD_PIXELS = 1;\n\nexport interface UseScrollOptions {\n /** The on scroll callback */\n onScroll?: (params: UseScrollCallbackParams, event: Event) => void;\n\n /** The on end scroll callback */\n onStop?: (event: Event) => void;\n\n /** Offset arrived states by x pixels. */\n offset?: {\n left?: number;\n right?: number;\n top?: number;\n bottom?: number;\n };\n}\n\nexport interface UseScrollCallbackParams {\n /** The element x position */\n x: number;\n /** The element y position */\n y: number;\n /** State of scroll arrived */\n arrived: {\n left: boolean;\n right: boolean;\n top: boolean;\n bottom: boolean;\n };\n /** State of scroll direction */\n directions: {\n left: boolean;\n right: boolean;\n top: boolean;\n bottom: boolean;\n };\n}\n\nexport interface UseScroll {\n (\n target?: HookTarget,\n callback?: (params: UseScrollCallbackParams, event: Event) => void\n ): boolean;\n\n (target?: HookTarget, options?: UseScrollOptions): boolean;\n\n <Target extends Element>(\n callback?: (params: UseScrollCallbackParams, event: Event) => void,\n target?: never\n ): {\n ref: StateRef<Target>;\n scrolling: boolean;\n };\n\n <Target extends Element>(\n options?: UseScrollOptions,\n target?: never\n ): {\n ref: StateRef<Target>;\n scrolling: boolean;\n };\n}\n\n/**\n * @name useScroll\n * @description - Hook that allows you to control scroll a element\n * @category Sensors\n * @usage low\n *\n * @overload\n * @template Target The target element\n * @param {ScrollBehavior} [options.behavior=auto] The behavior of scrolling\n * @param {number} [options.offset.left=0] The left offset for arrived states\n * @param {number} [options.offset.right=0] The right offset for arrived states\n * @param {number} [options.offset.top=0] The top offset for arrived states\n * @param {number} [options.offset.bottom=0] The bottom offset for arrived states\n * @param {(params: UseScrollCallbackParams, event: Event) => void} [options.onScroll] The callback function to be invoked on scroll\n * @param {(event: Event) => void} [options.onStop] The callback function to be invoked on scroll end\n * @returns {boolean} The state of scrolling\n *\n * @example\n * const scrolling = useScroll(ref, options);\n *\n * @overload\n * @template Target The target element\n * @param {(params: UseScrollCallbackParams, event: Event) => void} [callback] The callback function to be invoked on scroll\n * @returns {boolean} The state of scrolling\n *\n * @example\n * const scrolling = useScroll(ref, () => console.log('callback'));\n *\n * @overload\n * @template Target The target element\n * @param {Target} [target=window] The target element to scroll\n * @param {ScrollBehavior} [options.behavior=auto] The behavior of scrolling\n * @param {number} [options.offset.left=0] The left offset for arrived states\n * @param {number} [options.offset.right=0] The right offset for arrived states\n * @param {number} [options.offset.top=0] The top offset for arrived states\n * @param {number} [options.offset.bottom=0] The bottom offset for arrived states\n * @param {(params: UseScrollCallbackParams, event: Event) => void} [options.onScroll] The callback function to be invoked on scroll\n * @param {(event: Event) => void} [options.onStop] The callback function to be invoked on scroll end\n * @returns {[StateRef<Target>, boolean]} The state of scrolling\n *\n * @example\n * const { ref, scrolling } = useScroll(options);\n *\n * @overload\n * @template Target The target element\n * @param {Target} target The target element to scroll\n * @param {(params: UseScrollCallbackParams, event: Event) => void} [callback] The callback function to be invoked on scroll\n * @returns {[StateRef<Target>, boolean]} The state of scrolling\n *\n * @example\n * const { ref, scrolling } = useScroll(() => console.log('callback'));\n */\nexport const useScroll = ((...params: any[]) => {\n const target = (isTarget(params[0]) ? params[0] : undefined) as HookTarget | undefined;\n const options = (\n target\n ? typeof params[1] === 'object'\n ? params[1]\n : { onScroll: params[1] }\n : typeof params[0] === 'object'\n ? params[0]\n : { onScroll: params[0] }\n ) as UseScrollOptions | undefined;\n\n const internalRef = useRefState<Element>();\n const internalOptionsRef = useRef(options);\n internalOptionsRef.current = options;\n\n const [scrolling, setScrolling] = useState(false);\n const scrollPositionRef = useRef({ x: 0, y: 0 });\n\n useEffect(() => {\n if (!target && !internalRef.state) return;\n const element = ((target ? getElement(target) : internalRef.current) as Element) ?? window;\n\n const onScrollEnd = (event: Event) => {\n setScrolling(false);\n options?.onStop?.(event);\n };\n\n const onScroll = (event: Event) => {\n setScrolling(true);\n const target = (\n event.target === document ? (event.target as Document).documentElement : event.target\n ) as HTMLElement;\n\n const { display, flexDirection, direction } = target.style;\n const directionMultiplier = direction === 'rtl' ? -1 : 1;\n\n const scrollLeft = target.scrollLeft;\n let scrollTop = target.scrollTop;\n if (target instanceof Document && !scrollTop) scrollTop = window.document.body.scrollTop;\n\n const offset = internalOptionsRef.current?.offset;\n const left = scrollLeft * directionMultiplier <= (offset?.left ?? 0);\n const right =\n scrollLeft * directionMultiplier + target.clientWidth >=\n target.scrollWidth - (offset?.right ?? 0) - ARRIVED_STATE_THRESHOLD_PIXELS;\n const top = scrollTop <= (offset?.top ?? 0);\n const bottom =\n scrollTop + target.clientHeight >=\n target.scrollHeight - (offset?.bottom ?? 0) - ARRIVED_STATE_THRESHOLD_PIXELS;\n\n const isColumnReverse = display === 'flex' && flexDirection === 'column-reverse';\n const isRowReverse = display === 'flex' && flexDirection === 'column-reverse';\n\n const params = {\n x: scrollLeft,\n y: scrollTop,\n directions: {\n left: scrollLeft < scrollPositionRef.current.x,\n right: scrollLeft > scrollPositionRef.current.x,\n top: scrollTop < scrollPositionRef.current.y,\n bottom: scrollTop > scrollPositionRef.current.y\n },\n arrived: {\n left: isRowReverse ? right : left,\n right: isRowReverse ? left : right,\n top: isColumnReverse ? bottom : top,\n bottom: isColumnReverse ? top : bottom\n }\n };\n\n scrollPositionRef.current = { x: scrollLeft, y: scrollTop };\n internalOptionsRef.current?.onScroll?.(params, event);\n };\n\n element.addEventListener('scroll', onScroll);\n element.addEventListener('scrollend', onScrollEnd);\n\n return () => {\n element.removeEventListener('scroll', onScroll);\n element.removeEventListener('scrollend', onScrollEnd);\n };\n }, [target, internalRef.state]);\n\n if (target) return scrolling;\n return {\n ref: internalRef,\n scrolling\n };\n}) as UseScroll;\n"],"names":["ARRIVED_STATE_THRESHOLD_PIXELS","useScroll","params","target","isTarget","options","internalRef","useRefState","internalOptionsRef","useRef","scrolling","setScrolling","useState","scrollPositionRef","useEffect","element","getElement","onScrollEnd","event","onScroll","display","flexDirection","direction","directionMultiplier","scrollLeft","scrollTop","offset","left","right","top","bottom","isColumnReverse","isRowReverse"],"mappings":";;;;AAUA,MAAMA,IAAiC,GAoH1BC,IAAa,IAAIC,MAAkB;AAC9C,QAAMC,IAAUC,EAASF,EAAO,CAAC,CAAC,IAAIA,EAAO,CAAC,IAAI,QAC5CG,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,IAAcC,EAAA,GACdC,IAAqBC,EAAOJ,CAAO;AACzC,EAAAG,EAAmB,UAAUH;AAE7B,QAAM,CAACK,GAAWC,CAAY,IAAIC,EAAS,EAAK,GAC1CC,IAAoBJ,EAAO,EAAE,GAAG,GAAG,GAAG,GAAG;AAmE/C,SAjEAK,EAAU,MAAM;AACd,QAAI,CAACX,KAAU,CAACG,EAAY,MAAO;AACnC,UAAMS,KAAYZ,IAASa,EAAWb,CAAM,IAAIG,EAAY,YAAwB,QAE9EW,IAAc,CAACC,MAAiB;AACpC,MAAAP,EAAa,EAAK,GAClBN,GAAS,SAASa,CAAK;AAAA,IAAA,GAGnBC,IAAW,CAACD,MAAiB;AACjC,MAAAP,EAAa,EAAI;AACjB,YAAMR,IACJe,EAAM,WAAW,WAAYA,EAAM,OAAoB,kBAAkBA,EAAM,QAG3E,EAAE,SAAAE,GAAS,eAAAC,GAAe,WAAAC,EAAA,IAAcnB,EAAO,OAC/CoB,IAAsBD,MAAc,QAAQ,KAAK,GAEjDE,IAAarB,EAAO;AAC1B,UAAIsB,IAAYtB,EAAO;AACvB,MAAIA,aAAkB,YAAY,CAACsB,MAAWA,IAAY,OAAO,SAAS,KAAK;AAE/E,YAAMC,IAASlB,EAAmB,SAAS,QACrCmB,IAAOH,IAAaD,MAAwBG,GAAQ,QAAQ,IAC5DE,IACJJ,IAAaD,IAAsBpB,EAAO,eAC1CA,EAAO,eAAeuB,GAAQ,SAAS,KAAK1B,GACxC6B,IAAMJ,MAAcC,GAAQ,OAAO,IACnCI,IACJL,IAAYtB,EAAO,gBACnBA,EAAO,gBAAgBuB,GAAQ,UAAU,KAAK1B,GAE1C+B,IAAkBX,MAAY,UAAUC,MAAkB,kBAC1DW,IAAeZ,MAAY,UAAUC,MAAkB,kBAEvDnB,IAAS;AAAA,QACb,GAAGsB;AAAA,QACH,GAAGC;AAAA,QACH,YAAY;AAAA,UACV,MAAMD,IAAaX,EAAkB,QAAQ;AAAA,UAC7C,OAAOW,IAAaX,EAAkB,QAAQ;AAAA,UAC9C,KAAKY,IAAYZ,EAAkB,QAAQ;AAAA,UAC3C,QAAQY,IAAYZ,EAAkB,QAAQ;AAAA,QAAA;AAAA,QAEhD,SAAS;AAAA,UACP,MAAMmB,IAAeJ,IAAQD;AAAA,UAC7B,OAAOK,IAAeL,IAAOC;AAAA,UAC7B,KAAKG,IAAkBD,IAASD;AAAA,UAChC,QAAQE,IAAkBF,IAAMC;AAAA,QAAA;AAAA,MAClC;AAGF,MAAAjB,EAAkB,UAAU,EAAE,GAAGW,GAAY,GAAGC,EAAA,GAChDjB,EAAmB,SAAS,WAAWN,GAAQgB,CAAK;AAAA,IAAA;AAGtD,WAAAH,EAAQ,iBAAiB,UAAUI,CAAQ,GAC3CJ,EAAQ,iBAAiB,aAAaE,CAAW,GAE1C,MAAM;AACX,MAAAF,EAAQ,oBAAoB,UAAUI,CAAQ,GAC9CJ,EAAQ,oBAAoB,aAAaE,CAAW;AAAA,IAAA;AAAA,EACtD,GACC,CAACd,GAAQG,EAAY,KAAK,CAAC,GAE1BH,IAAeO,IACZ;AAAA,IACL,KAAKJ;AAAA,IACL,WAAAI;AAAA,EAAA;AAEJ;"}
|
|
1
|
+
{"version":3,"file":"useScroll.mjs","sources":["../../../../src/hooks/useScroll/useScroll.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\n\nimport type { HookTarget } from '@/utils/helpers';\n\nimport { getElement, isTarget } from '@/utils/helpers';\n\nimport type { StateRef } from '../useRefState/useRefState';\n\nimport { useRefState } from '../useRefState/useRefState';\n\nconst ARRIVED_STATE_THRESHOLD_PIXELS = 1;\n\nexport interface UseScrollOptions {\n /** The on scroll callback */\n onScroll?: (params: UseScrollCallbackParams, event: Event) => void;\n\n /** The on end scroll callback */\n onStop?: (event: Event) => void;\n\n /** Offset arrived states by x pixels. */\n offset?: {\n left?: number;\n right?: number;\n top?: number;\n bottom?: number;\n };\n}\n\nexport interface UseScrollCallbackParams {\n /** The element x position */\n x: number;\n /** The element y position */\n y: number;\n /** State of scroll arrived */\n arrived: {\n left: boolean;\n right: boolean;\n top: boolean;\n bottom: boolean;\n };\n /** State of scroll direction */\n directions: {\n left: boolean;\n right: boolean;\n top: boolean;\n bottom: boolean;\n };\n}\n\n/** The scroll into view params type */\nexport interface ScrollIntoViewParams {\n behavior?: ScrollBehavior;\n block?: ScrollLogicalPosition;\n inline?: ScrollLogicalPosition;\n}\n/** The scroll to params type */\nexport interface ScrollToParams {\n behavior?: ScrollBehavior;\n x: number;\n y: number;\n}\n\n/** The use scroll return type */\nexport interface UseScrollReturn {\n /** The state of scrolling */\n scrolling: boolean;\n /** Function to scroll element into view */\n scrollIntoView: (params?: ScrollIntoViewParams) => void;\n /** Function to scroll element to a specific position */\n scrollTo: (params?: ScrollToParams) => void;\n}\n\nexport interface UseScroll {\n (\n target?: HookTarget,\n callback?: (params: UseScrollCallbackParams, event: Event) => void\n ): UseScrollReturn;\n\n (target?: HookTarget, options?: UseScrollOptions): UseScrollReturn;\n\n <Target extends Element>(\n callback?: (params: UseScrollCallbackParams, event: Event) => void,\n target?: never\n ): UseScrollReturn & { ref: StateRef<Target> };\n\n <Target extends Element>(\n options?: UseScrollOptions,\n target?: never\n ): UseScrollReturn & {\n ref: StateRef<Target>;\n };\n}\n\n/**\n * @name useScroll\n * @description - Hook that allows you to control scroll a element\n * @category Sensors\n * @usage low\n *\n * @overload\n * @template Target The target element\n * @param {ScrollBehavior} [options.behavior=auto] The behavior of scrolling\n * @param {number} [options.offset.left=0] The left offset for arrived states\n * @param {number} [options.offset.right=0] The right offset for arrived states\n * @param {number} [options.offset.top=0] The top offset for arrived states\n * @param {number} [options.offset.bottom=0] The bottom offset for arrived states\n * @param {(params: UseScrollCallbackParams, event: Event) => void} [options.onScroll] The callback function to be invoked on scroll\n * @param {(event: Event) => void} [options.onStop] The callback function to be invoked on scroll end\n * @returns {UseScrollReturn} The state of scrolling\n *\n * @example\n * const { scrolling, scrollIntoView, scrollTo} = useScroll(ref, options);\n *\n * @overload\n * @template Target The target element\n * @param {(params: UseScrollCallbackParams, event: Event) => void} [callback] The callback function to be invoked on scroll\n * @returns {UseScrollReturn} The state of scrolling\n *\n * @example\n * const { scrolling, scrollIntoView, scrollTo} = useScroll(ref, () => console.log('callback'));\n *\n * @overload\n * @template Target The target element\n * @param {Target} [target=window] The target element to scroll\n * @param {ScrollBehavior} [options.behavior=auto] The behavior of scrolling\n * @param {number} [options.offset.left=0] The left offset for arrived states\n * @param {number} [options.offset.right=0] The right offset for arrived states\n * @param {number} [options.offset.top=0] The top offset for arrived states\n * @param {number} [options.offset.bottom=0] The bottom offset for arrived states\n * @param {(params: UseScrollCallbackParams, event: Event) => void} [options.onScroll] The callback function to be invoked on scroll\n * @param {(event: Event) => void} [options.onStop] The callback function to be invoked on scroll end\n * @returns {UseScrollReturn & { ref: StateRef<Target> }} The state of scrolling\n *\n * @example\n * const { ref, scrolling, scrollIntoView, scrollTo} = useScroll(options);\n *\n * @overload\n * @template Target The target element\n * @param {Target} target The target element to scroll\n * @param {(params: UseScrollCallbackParams, event: Event) => void} [callback] The callback function to be invoked on scroll\n * @returns {UseScrollReturn & { ref: StateRef<Target> }} The state of scrolling\n *\n * @example\n * const { ref, scrolling, scrollIntoView, scrollTo} = useScroll(() => console.log('callback'));\n */\nexport const useScroll = ((...params: any[]) => {\n const target = (isTarget(params[0]) ? params[0] : undefined) as HookTarget | undefined;\n const options = (\n target\n ? typeof params[1] === 'object'\n ? params[1]\n : { onScroll: params[1] }\n : typeof params[0] === 'object'\n ? params[0]\n : { onScroll: params[0] }\n ) as UseScrollOptions | undefined;\n\n const internalRef = useRefState<Element>();\n const internalOptionsRef = useRef(options);\n const elementRef = useRef<Element>(null);\n internalOptionsRef.current = options;\n\n const [scrolling, setScrolling] = useState(false);\n const scrollPositionRef = useRef({ x: 0, y: 0 });\n\n useEffect(() => {\n if (!target && !internalRef.state) return;\n const element = ((target ? getElement(target) : internalRef.current) as Element) ?? window;\n\n elementRef.current = element;\n\n const onScrollEnd = (event: Event) => {\n setScrolling(false);\n options?.onStop?.(event);\n };\n\n const onScroll = (event: Event) => {\n setScrolling(true);\n const target = (\n event.target === document ? (event.target as Document).documentElement : event.target\n ) as HTMLElement;\n\n const { display, flexDirection, direction } = target.style;\n const directionMultiplier = direction === 'rtl' ? -1 : 1;\n\n const scrollLeft = target.scrollLeft;\n let scrollTop = target.scrollTop;\n if (target instanceof Document && !scrollTop) scrollTop = window.document.body.scrollTop;\n\n const offset = internalOptionsRef.current?.offset;\n const left = scrollLeft * directionMultiplier <= (offset?.left ?? 0);\n const right =\n scrollLeft * directionMultiplier + target.clientWidth >=\n target.scrollWidth - (offset?.right ?? 0) - ARRIVED_STATE_THRESHOLD_PIXELS;\n const top = scrollTop <= (offset?.top ?? 0);\n const bottom =\n scrollTop + target.clientHeight >=\n target.scrollHeight - (offset?.bottom ?? 0) - ARRIVED_STATE_THRESHOLD_PIXELS;\n\n const isColumnReverse = display === 'flex' && flexDirection === 'column-reverse';\n const isRowReverse = display === 'flex' && flexDirection === 'column-reverse';\n\n const params = {\n x: scrollLeft,\n y: scrollTop,\n directions: {\n left: scrollLeft < scrollPositionRef.current.x,\n right: scrollLeft > scrollPositionRef.current.x,\n top: scrollTop < scrollPositionRef.current.y,\n bottom: scrollTop > scrollPositionRef.current.y\n },\n arrived: {\n left: isRowReverse ? right : left,\n right: isRowReverse ? left : right,\n top: isColumnReverse ? bottom : top,\n bottom: isColumnReverse ? top : bottom\n }\n };\n\n scrollPositionRef.current = { x: scrollLeft, y: scrollTop };\n internalOptionsRef.current?.onScroll?.(params, event);\n };\n\n element.addEventListener('scroll', onScroll);\n element.addEventListener('scrollend', onScrollEnd);\n\n return () => {\n element.removeEventListener('scroll', onScroll);\n element.removeEventListener('scrollend', onScrollEnd);\n };\n }, [target, internalRef.state]);\n\n const scrollIntoView = (params?: {\n behavior?: ScrollBehavior;\n block?: ScrollLogicalPosition;\n inline?: ScrollLogicalPosition;\n }) => {\n if (!elementRef.current) return;\n\n const { behavior, block, inline } = params ?? {};\n\n elementRef.current.scrollIntoView({\n behavior,\n block,\n inline\n });\n };\n\n const scrollTo = (params?: { x: number; y: number; behavior?: ScrollBehavior }) => {\n if (!elementRef.current) return;\n\n const { x, y, behavior } = params ?? {};\n\n elementRef.current.scrollTo({ left: x, top: y, behavior });\n };\n\n if (target) return { scrollIntoView, scrollTo, scrolling };\n return {\n ref: internalRef,\n scrolling,\n scrollIntoView,\n scrollTo\n };\n}) as UseScroll;\n"],"names":["ARRIVED_STATE_THRESHOLD_PIXELS","useScroll","params","target","isTarget","options","internalRef","useRefState","internalOptionsRef","useRef","elementRef","scrolling","setScrolling","useState","scrollPositionRef","useEffect","element","getElement","onScrollEnd","event","onScroll","display","flexDirection","direction","directionMultiplier","scrollLeft","scrollTop","offset","left","right","top","bottom","isColumnReverse","isRowReverse","scrollIntoView","behavior","block","inline","scrollTo","x","y"],"mappings":"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"}
|
package/dist/esm/index.mjs
CHANGED
|
@@ -8,13 +8,13 @@ import { useMutation as l } from "./hooks/useMutation/useMutation.mjs";
|
|
|
8
8
|
import { useOptimistic as E } from "./hooks/useOptimistic/useOptimistic.mjs";
|
|
9
9
|
import { useQuery as g } from "./hooks/useQuery/useQuery.mjs";
|
|
10
10
|
import { useAudio as R } from "./hooks/useAudio/useAudio.mjs";
|
|
11
|
-
import { useBattery as
|
|
11
|
+
import { useBattery as P } from "./hooks/useBattery/useBattery.mjs";
|
|
12
12
|
import { useBluetooth as A } from "./hooks/useBluetooth/useBluetooth.mjs";
|
|
13
13
|
import { useBroadcastChannel as O } from "./hooks/useBroadcastChannel/useBroadcastChannel.mjs";
|
|
14
14
|
import { useClipboard as h } from "./hooks/useClipboard/useClipboard.mjs";
|
|
15
15
|
import { useCopy as _ } from "./hooks/useCopy/useCopy.mjs";
|
|
16
16
|
import { useCssVar as M } from "./hooks/useCssVar/useCssVar.mjs";
|
|
17
|
-
import { useDisplayMedia as
|
|
17
|
+
import { useDisplayMedia as L } from "./hooks/useDisplayMedia/useDisplayMedia.mjs";
|
|
18
18
|
import { useDocumentTitle as B } from "./hooks/useDocumentTitle/useDocumentTitle.mjs";
|
|
19
19
|
import { useEventSource as F } from "./hooks/useEventSource/useEventSource.mjs";
|
|
20
20
|
import { useEyeDropper as V } from "./hooks/useEyeDropper/useEyeDropper.mjs";
|
|
@@ -33,13 +33,13 @@ import { usePictureInPicture as ce } from "./hooks/usePictureInPicture/usePictur
|
|
|
33
33
|
import { usePointerLock as Se } from "./hooks/usePointerLock/usePointerLock.mjs";
|
|
34
34
|
import { usePostMessage as Te } from "./hooks/usePostMessage/usePostMessage.mjs";
|
|
35
35
|
import { useRaf as de } from "./hooks/useRaf/useRaf.mjs";
|
|
36
|
-
import { useShare as
|
|
36
|
+
import { useShare as Ce } from "./hooks/useShare/useShare.mjs";
|
|
37
37
|
import { getSpeechRecognition as Ie, useSpeechRecognition as Ae } from "./hooks/useSpeechRecognition/useSpeechRecognition.mjs";
|
|
38
38
|
import { useSpeechSynthesis as Oe } from "./hooks/useSpeechSynthesis/useSpeechSynthesis.mjs";
|
|
39
39
|
import { useVibrate as he } from "./hooks/useVibrate/useVibrate.mjs";
|
|
40
40
|
import { useVirtualKeyboard as _e } from "./hooks/useVirtualKeyboard/useVirtualKeyboard.mjs";
|
|
41
41
|
import { useWakeLock as Me } from "./hooks/useWakeLock/useWakeLock.mjs";
|
|
42
|
-
import { useWebSocket as
|
|
42
|
+
import { useWebSocket as Le } from "./hooks/useWebSocket/useWebSocket.mjs";
|
|
43
43
|
import { useLogger as Be } from "./hooks/useLogger/useLogger.mjs";
|
|
44
44
|
import { useRenderCount as Fe } from "./hooks/useRenderCount/useRenderCount.mjs";
|
|
45
45
|
import { useRenderInfo as Ve } from "./hooks/useRenderInfo/useRenderInfo.mjs";
|
|
@@ -57,13 +57,13 @@ import { useLongPress as xo } from "./hooks/useLongPress/useLongPress.mjs";
|
|
|
57
57
|
import { Paint as io, Pointer as no, usePaint as co } from "./hooks/usePaint/usePaint.mjs";
|
|
58
58
|
import { useRightClick as So } from "./hooks/useRightClick/useRightClick.mjs";
|
|
59
59
|
import { SCRIPT_STATUS_ATTRIBUTE_NAME as To, useScript as go } from "./hooks/useScript/useScript.mjs";
|
|
60
|
-
import { useSticky as
|
|
60
|
+
import { useSticky as Co } from "./hooks/useSticky/useSticky.mjs";
|
|
61
61
|
import { useTextDirection as Io } from "./hooks/useTextDirection/useTextDirection.mjs";
|
|
62
62
|
import { useFul as yo } from "./hooks/useFul/useFul.mjs";
|
|
63
63
|
import { useLess as ko } from "./hooks/useLess/useLess.mjs";
|
|
64
64
|
import { useOnce as vo } from "./hooks/useOnce/useOnce.mjs";
|
|
65
65
|
import { useDidUpdate as Do } from "./hooks/useDidUpdate/useDidUpdate.mjs";
|
|
66
|
-
import { useIsFirstRender as
|
|
66
|
+
import { useIsFirstRender as bo } from "./hooks/useIsFirstRender/useIsFirstRender.mjs";
|
|
67
67
|
import { useIsomorphicLayoutEffect as No } from "./hooks/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.mjs";
|
|
68
68
|
import { useMount as Ko } from "./hooks/useMount/useMount.mjs";
|
|
69
69
|
import { deepEqual as Uo, useShallowEffect as Vo } from "./hooks/useShallowEffect/useShallowEffect.mjs";
|
|
@@ -79,13 +79,13 @@ import { useEventListener as cr } from "./hooks/useEventListener/useEventListene
|
|
|
79
79
|
import { isHotkeyMatch as Sr, useHotkeys as Er } from "./hooks/useHotkeys/useHotkeys.mjs";
|
|
80
80
|
import { useIdle as gr } from "./hooks/useIdle/useIdle.mjs";
|
|
81
81
|
import { useInfiniteScroll as Rr } from "./hooks/useInfiniteScroll/useInfiniteScroll.mjs";
|
|
82
|
-
import { useIntersectionObserver as
|
|
82
|
+
import { useIntersectionObserver as Pr } from "./hooks/useIntersectionObserver/useIntersectionObserver.mjs";
|
|
83
83
|
import { useKeyboard as Ar } from "./hooks/useKeyboard/useKeyboard.mjs";
|
|
84
84
|
import { useKeyPress as Or } from "./hooks/useKeyPress/useKeyPress.mjs";
|
|
85
85
|
import { useKeyPressEvent as hr } from "./hooks/useKeyPressEvent/useKeyPressEvent.mjs";
|
|
86
86
|
import { useKeysPressed as _r } from "./hooks/useKeysPressed/useKeysPressed.mjs";
|
|
87
87
|
import { useLockScroll as Mr } from "./hooks/useLockScroll/useLockScroll.mjs";
|
|
88
|
-
import { useMeasure as
|
|
88
|
+
import { useMeasure as Lr } from "./hooks/useMeasure/useMeasure.mjs";
|
|
89
89
|
import { useMediaQuery as Br } from "./hooks/useMediaQuery/useMediaQuery.mjs";
|
|
90
90
|
import { useMouse as Fr } from "./hooks/useMouse/useMouse.mjs";
|
|
91
91
|
import { useMutationObserver as Vr } from "./hooks/useMutationObserver/useMutationObserver.mjs";
|
|
@@ -103,60 +103,61 @@ import { useWindowFocus as xt } from "./hooks/useWindowFocus/useWindowFocus.mjs"
|
|
|
103
103
|
import { scrollTo as it, useWindowScroll as nt } from "./hooks/useWindowScroll/useWindowScroll.mjs";
|
|
104
104
|
import { useWindowSize as lt } from "./hooks/useWindowSize/useWindowSize.mjs";
|
|
105
105
|
import { useBoolean as Et } from "./hooks/useBoolean/useBoolean.mjs";
|
|
106
|
-
import {
|
|
107
|
-
import {
|
|
108
|
-
import {
|
|
109
|
-
import {
|
|
110
|
-
import {
|
|
111
|
-
import {
|
|
112
|
-
import {
|
|
113
|
-
import {
|
|
114
|
-
import {
|
|
115
|
-
import {
|
|
116
|
-
import {
|
|
117
|
-
import {
|
|
118
|
-
import {
|
|
119
|
-
import {
|
|
120
|
-
import {
|
|
121
|
-
import {
|
|
122
|
-
import {
|
|
123
|
-
import {
|
|
124
|
-
import {
|
|
125
|
-
import {
|
|
126
|
-
import {
|
|
127
|
-
import {
|
|
128
|
-
import {
|
|
129
|
-
import {
|
|
130
|
-
import {
|
|
131
|
-
import {
|
|
132
|
-
import {
|
|
133
|
-
import {
|
|
134
|
-
import {
|
|
135
|
-
import {
|
|
136
|
-
import {
|
|
137
|
-
import {
|
|
138
|
-
import {
|
|
139
|
-
import {
|
|
140
|
-
import {
|
|
141
|
-
import {
|
|
142
|
-
import {
|
|
143
|
-
import {
|
|
144
|
-
import {
|
|
145
|
-
import {
|
|
146
|
-
import {
|
|
147
|
-
import {
|
|
148
|
-
import {
|
|
149
|
-
import {
|
|
150
|
-
import {
|
|
151
|
-
import {
|
|
152
|
-
import {
|
|
153
|
-
import {
|
|
154
|
-
import {
|
|
155
|
-
import {
|
|
156
|
-
import {
|
|
157
|
-
import {
|
|
158
|
-
import {
|
|
159
|
-
import {
|
|
106
|
+
import { useControllableState as gt } from "./hooks/useControllableState/useControllableState.mjs";
|
|
107
|
+
import { COOKIE_EVENT as Rt, dispatchCookieEvent as Ct, getCookie as Pt, getCookies as It, removeCookie as At, removeCookieItem as yt, setCookie as Ot, setCookieItem as kt, useCookie as ht } from "./hooks/useCookie/useCookie.mjs";
|
|
108
|
+
import { clearCookies as _t, useCookies as Dt } from "./hooks/useCookies/useCookies.mjs";
|
|
109
|
+
import { useCounter as bt } from "./hooks/useCounter/useCounter.mjs";
|
|
110
|
+
import { useDefault as Nt } from "./hooks/useDefault/useDefault.mjs";
|
|
111
|
+
import { useDisclosure as Kt } from "./hooks/useDisclosure/useDisclosure.mjs";
|
|
112
|
+
import { useField as Ut } from "./hooks/useField/useField.mjs";
|
|
113
|
+
import { useHash as wt } from "./hooks/useHash/useHash.mjs";
|
|
114
|
+
import { useList as Wt } from "./hooks/useList/useList.mjs";
|
|
115
|
+
import { useLocalStorage as Qt } from "./hooks/useLocalStorage/useLocalStorage.mjs";
|
|
116
|
+
import { useMap as Xt } from "./hooks/useMap/useMap.mjs";
|
|
117
|
+
import { assignRef as Zt, mergeRefs as jt, useMergedRef as Jt } from "./hooks/useMergedRef/useMergedRef.mjs";
|
|
118
|
+
import { useOffsetPagination as $t } from "./hooks/useOffsetPagination/useOffsetPagination.mjs";
|
|
119
|
+
import { useQueue as os } from "./hooks/useQueue/useQueue.mjs";
|
|
120
|
+
import { useRafState as ts } from "./hooks/useRafState/useRafState.mjs";
|
|
121
|
+
import { useRefState as ms } from "./hooks/useRefState/useRefState.mjs";
|
|
122
|
+
import { useSessionStorage as ps } from "./hooks/useSessionStorage/useSessionStorage.mjs";
|
|
123
|
+
import { useSet as xs } from "./hooks/useSet/useSet.mjs";
|
|
124
|
+
import { stateHistoryReducer as is, useStateHistory as ns } from "./hooks/useStateHistory/useStateHistory.mjs";
|
|
125
|
+
import { useStep as ls } from "./hooks/useStep/useStep.mjs";
|
|
126
|
+
import { STORAGE_EVENT as Es, dispatchStorageEvent as Ts, useStorage as gs } from "./hooks/useStorage/useStorage.mjs";
|
|
127
|
+
import { useToggle as Rs } from "./hooks/useToggle/useToggle.mjs";
|
|
128
|
+
import { URL_SEARCH_PARAMS_EVENT as Ps, createQueryString as Is, dispatchUrlSearchParamsEvent as As, getUrlSearchParams as ys, useUrlSearchParam as Os } from "./hooks/useUrlSearchParam/useUrlSearchParam.mjs";
|
|
129
|
+
import { useUrlSearchParams as hs } from "./hooks/useUrlSearchParams/useUrlSearchParams.mjs";
|
|
130
|
+
import { useWizard as _s } from "./hooks/useWizard/useWizard.mjs";
|
|
131
|
+
import { useInterval as Ms } from "./hooks/useInterval/useInterval.mjs";
|
|
132
|
+
import { useStopwatch as Ls } from "./hooks/useStopwatch/useStopwatch.mjs";
|
|
133
|
+
import { useTime as Bs } from "./hooks/useTime/useTime.mjs";
|
|
134
|
+
import { useTimeout as Fs } from "./hooks/useTimeout/useTimeout.mjs";
|
|
135
|
+
import { getTimeFromSeconds as Vs, useTimer as ws } from "./hooks/useTimer/useTimer.mjs";
|
|
136
|
+
import { useBrowserLanguage as Ws } from "./hooks/useBrowserLanguage/useBrowserLanguage.mjs";
|
|
137
|
+
import { getOperatingSystem as Qs, useOperatingSystem as zs } from "./hooks/useOperatingSystem/useOperatingSystem.mjs";
|
|
138
|
+
import { usePreferredColorScheme as qs } from "./hooks/usePreferredColorScheme/usePreferredColorScheme.mjs";
|
|
139
|
+
import { usePreferredContrast as js } from "./hooks/usePreferredContrast/usePreferredContrast.mjs";
|
|
140
|
+
import { usePreferredDark as Ys } from "./hooks/usePreferredDark/usePreferredDark.mjs";
|
|
141
|
+
import { usePreferredLanguages as em } from "./hooks/usePreferredLanguages/usePreferredLanguages.mjs";
|
|
142
|
+
import { usePreferredReducedMotion as rm } from "./hooks/usePreferredReducedMotion/usePreferredReducedMotion.mjs";
|
|
143
|
+
import { useConst as sm } from "./hooks/useConst/useConst.mjs";
|
|
144
|
+
import { useDebounceCallback as um } from "./hooks/useDebounceCallback/useDebounceCallback.mjs";
|
|
145
|
+
import { useDebounceState as fm } from "./hooks/useDebounceState/useDebounceState.mjs";
|
|
146
|
+
import { useDebounceValue as am } from "./hooks/useDebounceValue/useDebounceValue.mjs";
|
|
147
|
+
import { useEvent as nm } from "./hooks/useEvent/useEvent.mjs";
|
|
148
|
+
import { useLastChanged as lm } from "./hooks/useLastChanged/useLastChanged.mjs";
|
|
149
|
+
import { useLatest as Em } from "./hooks/useLatest/useLatest.mjs";
|
|
150
|
+
import { usePrevious as gm } from "./hooks/usePrevious/usePrevious.mjs";
|
|
151
|
+
import { useThrottleCallback as Rm } from "./hooks/useThrottleCallback/useThrottleCallback.mjs";
|
|
152
|
+
import { useThrottleState as Pm } from "./hooks/useThrottleState/useThrottleState.mjs";
|
|
153
|
+
import { useThrottleValue as Am } from "./hooks/useThrottleValue/useThrottleValue.mjs";
|
|
154
|
+
import { copy as Om, legacyCopyToClipboard as km } from "./utils/helpers/copy.mjs";
|
|
155
|
+
import { debounce as vm } from "./utils/helpers/debounce.mjs";
|
|
156
|
+
import { getDate as Dm } from "./utils/helpers/getDate.mjs";
|
|
157
|
+
import { getElement as bm, target as Lm, targetSymbol as Nm } from "./utils/helpers/getElement.mjs";
|
|
158
|
+
import { getRetry as Km } from "./utils/helpers/getRetry.mjs";
|
|
159
|
+
import { isTarget as Um } from "./utils/helpers/isTarget.mjs";
|
|
160
|
+
import { throttle as wm } from "./utils/helpers/throttle.mjs";
|
|
160
161
|
export {
|
|
161
162
|
Go as BREAKPOINTS_ANT_DESIGN,
|
|
162
163
|
Qo as BREAKPOINTS_BOOTSTRAP_V5,
|
|
@@ -167,92 +168,93 @@ export {
|
|
|
167
168
|
jo as BREAKPOINTS_QUASAR_V2,
|
|
168
169
|
Jo as BREAKPOINTS_SEMANTIC,
|
|
169
170
|
Yo as BREAKPOINTS_TAILWIND,
|
|
170
|
-
|
|
171
|
+
Rt as COOKIE_EVENT,
|
|
171
172
|
je as DEFAULT_THRESHOLD_TIME,
|
|
172
173
|
io as Paint,
|
|
173
174
|
no as Pointer,
|
|
174
175
|
To as SCRIPT_STATUS_ATTRIBUTE_NAME,
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
176
|
+
Es as STORAGE_EVENT,
|
|
177
|
+
Ps as URL_SEARCH_PARAMS_EVENT,
|
|
178
|
+
Zt as assignRef,
|
|
179
|
+
_t as clearCookies,
|
|
180
|
+
Om as copy,
|
|
180
181
|
r as createContext,
|
|
181
182
|
s as createEventEmitter,
|
|
182
|
-
|
|
183
|
+
Is as createQueryString,
|
|
183
184
|
u as createReactiveContext,
|
|
184
185
|
f as createStore,
|
|
185
|
-
|
|
186
|
+
vm as debounce,
|
|
186
187
|
Uo as deepEqual,
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
188
|
+
Ct as dispatchCookieEvent,
|
|
189
|
+
Ts as dispatchStorageEvent,
|
|
190
|
+
As as dispatchUrlSearchParamsEvent,
|
|
190
191
|
se as getConnection,
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
192
|
+
Pt as getCookie,
|
|
193
|
+
It as getCookies,
|
|
194
|
+
Dm as getDate,
|
|
195
|
+
bm as getElement,
|
|
196
|
+
Qs as getOperatingSystem,
|
|
196
197
|
st as getRangesSelection,
|
|
197
|
-
|
|
198
|
+
Km as getRetry,
|
|
198
199
|
Ie as getSpeechRecognition,
|
|
199
|
-
|
|
200
|
-
|
|
200
|
+
Vs as getTimeFromSeconds,
|
|
201
|
+
ys as getUrlSearchParams,
|
|
201
202
|
Sr as isHotkeyMatch,
|
|
202
|
-
|
|
203
|
-
|
|
203
|
+
Um as isTarget,
|
|
204
|
+
km as legacyCopyToClipboard,
|
|
204
205
|
q as mapGamepadToXbox360Controller,
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
206
|
+
jt as mergeRefs,
|
|
207
|
+
At as removeCookie,
|
|
208
|
+
yt as removeCookieItem,
|
|
208
209
|
it as scrollTo,
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
210
|
+
Ot as setCookie,
|
|
211
|
+
kt as setCookieItem,
|
|
212
|
+
is as stateHistoryReducer,
|
|
213
|
+
Lm as target,
|
|
214
|
+
Nm as targetSymbol,
|
|
215
|
+
wm as throttle,
|
|
215
216
|
$ as timeRangeToArray,
|
|
216
217
|
Ge as useActiveElement,
|
|
217
218
|
a as useAsync,
|
|
218
219
|
R as useAudio,
|
|
219
220
|
ze as useAutoScroll,
|
|
220
|
-
|
|
221
|
+
P as useBattery,
|
|
221
222
|
A as useBluetooth,
|
|
222
223
|
Et as useBoolean,
|
|
223
224
|
$o as useBreakpoints,
|
|
224
225
|
O as useBroadcastChannel,
|
|
225
|
-
|
|
226
|
+
Ws as useBrowserLanguage,
|
|
226
227
|
qe as useClickOutside,
|
|
227
228
|
h as useClipboard,
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
229
|
+
sm as useConst,
|
|
230
|
+
gt as useControllableState,
|
|
231
|
+
ht as useCookie,
|
|
232
|
+
Dt as useCookies,
|
|
231
233
|
_ as useCopy,
|
|
232
|
-
|
|
234
|
+
bt as useCounter,
|
|
233
235
|
M as useCssVar,
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
236
|
+
um as useDebounceCallback,
|
|
237
|
+
fm as useDebounceState,
|
|
238
|
+
am as useDebounceValue,
|
|
239
|
+
Nt as useDefault,
|
|
238
240
|
or as useDeviceMotion,
|
|
239
241
|
tr as useDeviceOrientation,
|
|
240
242
|
mr as useDevicePixelRatio,
|
|
241
243
|
Do as useDidUpdate,
|
|
242
|
-
|
|
243
|
-
|
|
244
|
+
Kt as useDisclosure,
|
|
245
|
+
L as useDisplayMedia,
|
|
244
246
|
pr as useDocumentEvent,
|
|
245
247
|
B as useDocumentTitle,
|
|
246
248
|
xr as useDocumentVisibility,
|
|
247
249
|
Je as useDoubleClick,
|
|
248
250
|
$e as useDropZone,
|
|
249
251
|
ir as useElementSize,
|
|
250
|
-
|
|
252
|
+
nm as useEvent,
|
|
251
253
|
cr as useEventListener,
|
|
252
254
|
F as useEventSource,
|
|
253
255
|
V as useEyeDropper,
|
|
254
256
|
H as useFavicon,
|
|
255
|
-
|
|
257
|
+
Ut as useField,
|
|
256
258
|
oo as useFileDialog,
|
|
257
259
|
to as useFocus,
|
|
258
260
|
G as useFps,
|
|
@@ -260,44 +262,44 @@ export {
|
|
|
260
262
|
z as useFullscreen,
|
|
261
263
|
Z as useGamepad,
|
|
262
264
|
J as useGeolocation,
|
|
263
|
-
|
|
265
|
+
wt as useHash,
|
|
264
266
|
Er as useHotkeys,
|
|
265
267
|
mo as useHover,
|
|
266
268
|
gr as useIdle,
|
|
267
269
|
po as useImage,
|
|
268
270
|
Rr as useInfiniteScroll,
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
271
|
+
Pr as useIntersectionObserver,
|
|
272
|
+
Ms as useInterval,
|
|
273
|
+
bo as useIsFirstRender,
|
|
272
274
|
No as useIsomorphicLayoutEffect,
|
|
273
275
|
Or as useKeyPress,
|
|
274
276
|
hr as useKeyPressEvent,
|
|
275
277
|
Ar as useKeyboard,
|
|
276
278
|
_r as useKeysPressed,
|
|
277
|
-
|
|
278
|
-
|
|
279
|
+
lm as useLastChanged,
|
|
280
|
+
Em as useLatest,
|
|
279
281
|
ko as useLess,
|
|
280
|
-
|
|
281
|
-
|
|
282
|
+
Wt as useList,
|
|
283
|
+
Qt as useLocalStorage,
|
|
282
284
|
n as useLockCallback,
|
|
283
285
|
Mr as useLockScroll,
|
|
284
286
|
Be as useLogger,
|
|
285
287
|
xo as useLongPress,
|
|
286
|
-
|
|
287
|
-
|
|
288
|
+
Xt as useMap,
|
|
289
|
+
Lr as useMeasure,
|
|
288
290
|
ee as useMediaControls,
|
|
289
291
|
Br as useMediaQuery,
|
|
290
292
|
re as useMemory,
|
|
291
|
-
|
|
293
|
+
Jt as useMergedRef,
|
|
292
294
|
Ko as useMount,
|
|
293
295
|
Fr as useMouse,
|
|
294
296
|
l as useMutation,
|
|
295
297
|
Vr as useMutationObserver,
|
|
296
298
|
me as useNetwork,
|
|
297
|
-
|
|
299
|
+
$t as useOffsetPagination,
|
|
298
300
|
vo as useOnce,
|
|
299
301
|
pe as useOnline,
|
|
300
|
-
|
|
302
|
+
zs as useOperatingSystem,
|
|
301
303
|
E as useOptimistic,
|
|
302
304
|
Hr as useOrientation,
|
|
303
305
|
xe as useOtpCredential,
|
|
@@ -309,17 +311,17 @@ export {
|
|
|
309
311
|
ce as usePictureInPicture,
|
|
310
312
|
Se as usePointerLock,
|
|
311
313
|
Te as usePostMessage,
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
314
|
+
qs as usePreferredColorScheme,
|
|
315
|
+
js as usePreferredContrast,
|
|
316
|
+
Ys as usePreferredDark,
|
|
317
|
+
em as usePreferredLanguages,
|
|
318
|
+
rm as usePreferredReducedMotion,
|
|
319
|
+
gm as usePrevious,
|
|
318
320
|
g as useQuery,
|
|
319
|
-
|
|
321
|
+
os as useQueue,
|
|
320
322
|
de as useRaf,
|
|
321
|
-
|
|
322
|
-
|
|
323
|
+
ts as useRafState,
|
|
324
|
+
ms as useRefState,
|
|
323
325
|
Fe as useRenderCount,
|
|
324
326
|
Ve as useRenderInfo,
|
|
325
327
|
He as useRerender,
|
|
@@ -329,37 +331,37 @@ export {
|
|
|
329
331
|
Yr as useScroll,
|
|
330
332
|
et as useScrollIntoView,
|
|
331
333
|
rt as useScrollTo,
|
|
332
|
-
|
|
333
|
-
|
|
334
|
+
ps as useSessionStorage,
|
|
335
|
+
xs as useSet,
|
|
334
336
|
Vo as useShallowEffect,
|
|
335
|
-
|
|
337
|
+
Ce as useShare,
|
|
336
338
|
Ae as useSpeechRecognition,
|
|
337
339
|
Oe as useSpeechSynthesis,
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
340
|
+
ns as useStateHistory,
|
|
341
|
+
ls as useStep,
|
|
342
|
+
Co as useSticky,
|
|
343
|
+
Ls as useStopwatch,
|
|
344
|
+
gs as useStorage,
|
|
343
345
|
Io as useTextDirection,
|
|
344
346
|
mt as useTextSelection,
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
347
|
+
Rm as useThrottleCallback,
|
|
348
|
+
Pm as useThrottleState,
|
|
349
|
+
Am as useThrottleValue,
|
|
350
|
+
Bs as useTime,
|
|
351
|
+
Fs as useTimeout,
|
|
352
|
+
ws as useTimer,
|
|
353
|
+
Rs as useToggle,
|
|
352
354
|
Ho as useUnmount,
|
|
353
|
-
|
|
354
|
-
|
|
355
|
+
Os as useUrlSearchParam,
|
|
356
|
+
hs as useUrlSearchParams,
|
|
355
357
|
he as useVibrate,
|
|
356
358
|
_e as useVirtualKeyboard,
|
|
357
359
|
Me as useWakeLock,
|
|
358
|
-
|
|
360
|
+
Le as useWebSocket,
|
|
359
361
|
pt as useWindowEvent,
|
|
360
362
|
xt as useWindowFocus,
|
|
361
363
|
nt as useWindowScroll,
|
|
362
364
|
lt as useWindowSize,
|
|
363
|
-
|
|
365
|
+
_s as useWizard
|
|
364
366
|
};
|
|
365
367
|
//# sourceMappingURL=index.mjs.map
|
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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/** The use controllable state options type */
|
|
2
|
+
export interface UseControllableStateOptions<Value> {
|
|
3
|
+
/** The initial value for uncontrolled state */
|
|
4
|
+
initialValue?: Value;
|
|
5
|
+
/** The controlled value */
|
|
6
|
+
value?: Value;
|
|
7
|
+
/** The onChange callback */
|
|
8
|
+
onChange?: (value: Value) => void;
|
|
9
|
+
}
|
|
10
|
+
/** The use controllable state return type */
|
|
11
|
+
export type UseControllableStateReturn<Value> = [
|
|
12
|
+
/** Current value */
|
|
13
|
+
value: Value,
|
|
14
|
+
/** Setter function that works with both controlled and uncontrolled state */
|
|
15
|
+
setValue: (nextValue: ((prevValue: Value) => Value) | Value) => void,
|
|
16
|
+
/** Whether the state is controlled */
|
|
17
|
+
isControlled: boolean
|
|
18
|
+
];
|
|
19
|
+
/**
|
|
20
|
+
* @name useControllableState
|
|
21
|
+
* @description - Hook that manages both controlled and uncontrolled state patterns
|
|
22
|
+
* @category State
|
|
23
|
+
* @usage medium
|
|
24
|
+
*
|
|
25
|
+
* @template Value The type of the state value
|
|
26
|
+
* @param {Value} [options.value] The controlled value. When provided, the component becomes controlled
|
|
27
|
+
* @param {Value} [options.initialValue] The initial value for uncontrolled state
|
|
28
|
+
* @param {(value: Value) => void} [options.onChange] The callback function called when the state changes
|
|
29
|
+
* @returns {UseControllableStateReturn<Value>} A tuple containing the current value, setter function, and controlled flag
|
|
30
|
+
*
|
|
31
|
+
* @example
|
|
32
|
+
* const [value, setValue, isControlled] = useControllableState({ initialValue: 'initial' });
|
|
33
|
+
*/
|
|
34
|
+
export declare function useControllableState<Value>(options: UseControllableStateOptions<Value>): UseControllableStateReturn<Value>;
|
|
@@ -33,16 +33,35 @@ export interface UseScrollCallbackParams {
|
|
|
33
33
|
bottom: boolean;
|
|
34
34
|
};
|
|
35
35
|
}
|
|
36
|
+
/** The scroll into view params type */
|
|
37
|
+
export interface ScrollIntoViewParams {
|
|
38
|
+
behavior?: ScrollBehavior;
|
|
39
|
+
block?: ScrollLogicalPosition;
|
|
40
|
+
inline?: ScrollLogicalPosition;
|
|
41
|
+
}
|
|
42
|
+
/** The scroll to params type */
|
|
43
|
+
export interface ScrollToParams {
|
|
44
|
+
behavior?: ScrollBehavior;
|
|
45
|
+
x: number;
|
|
46
|
+
y: number;
|
|
47
|
+
}
|
|
48
|
+
/** The use scroll return type */
|
|
49
|
+
export interface UseScrollReturn {
|
|
50
|
+
/** The state of scrolling */
|
|
51
|
+
scrolling: boolean;
|
|
52
|
+
/** Function to scroll element into view */
|
|
53
|
+
scrollIntoView: (params?: ScrollIntoViewParams) => void;
|
|
54
|
+
/** Function to scroll element to a specific position */
|
|
55
|
+
scrollTo: (params?: ScrollToParams) => void;
|
|
56
|
+
}
|
|
36
57
|
export interface UseScroll {
|
|
37
|
-
(target?: HookTarget, callback?: (params: UseScrollCallbackParams, event: Event) => void):
|
|
38
|
-
(target?: HookTarget, options?: UseScrollOptions):
|
|
39
|
-
<Target extends Element>(callback?: (params: UseScrollCallbackParams, event: Event) => void, target?: never): {
|
|
58
|
+
(target?: HookTarget, callback?: (params: UseScrollCallbackParams, event: Event) => void): UseScrollReturn;
|
|
59
|
+
(target?: HookTarget, options?: UseScrollOptions): UseScrollReturn;
|
|
60
|
+
<Target extends Element>(callback?: (params: UseScrollCallbackParams, event: Event) => void, target?: never): UseScrollReturn & {
|
|
40
61
|
ref: StateRef<Target>;
|
|
41
|
-
scrolling: boolean;
|
|
42
62
|
};
|
|
43
|
-
<Target extends Element>(options?: UseScrollOptions, target?: never): {
|
|
63
|
+
<Target extends Element>(options?: UseScrollOptions, target?: never): UseScrollReturn & {
|
|
44
64
|
ref: StateRef<Target>;
|
|
45
|
-
scrolling: boolean;
|
|
46
65
|
};
|
|
47
66
|
}
|
|
48
67
|
/**
|
|
@@ -60,18 +79,18 @@ export interface UseScroll {
|
|
|
60
79
|
* @param {number} [options.offset.bottom=0] The bottom offset for arrived states
|
|
61
80
|
* @param {(params: UseScrollCallbackParams, event: Event) => void} [options.onScroll] The callback function to be invoked on scroll
|
|
62
81
|
* @param {(event: Event) => void} [options.onStop] The callback function to be invoked on scroll end
|
|
63
|
-
* @returns {
|
|
82
|
+
* @returns {UseScrollReturn} The state of scrolling
|
|
64
83
|
*
|
|
65
84
|
* @example
|
|
66
|
-
* const scrolling = useScroll(ref, options);
|
|
85
|
+
* const { scrolling, scrollIntoView, scrollTo} = useScroll(ref, options);
|
|
67
86
|
*
|
|
68
87
|
* @overload
|
|
69
88
|
* @template Target The target element
|
|
70
89
|
* @param {(params: UseScrollCallbackParams, event: Event) => void} [callback] The callback function to be invoked on scroll
|
|
71
|
-
* @returns {
|
|
90
|
+
* @returns {UseScrollReturn} The state of scrolling
|
|
72
91
|
*
|
|
73
92
|
* @example
|
|
74
|
-
* const scrolling = useScroll(ref, () => console.log('callback'));
|
|
93
|
+
* const { scrolling, scrollIntoView, scrollTo} = useScroll(ref, () => console.log('callback'));
|
|
75
94
|
*
|
|
76
95
|
* @overload
|
|
77
96
|
* @template Target The target element
|
|
@@ -83,18 +102,18 @@ export interface UseScroll {
|
|
|
83
102
|
* @param {number} [options.offset.bottom=0] The bottom offset for arrived states
|
|
84
103
|
* @param {(params: UseScrollCallbackParams, event: Event) => void} [options.onScroll] The callback function to be invoked on scroll
|
|
85
104
|
* @param {(event: Event) => void} [options.onStop] The callback function to be invoked on scroll end
|
|
86
|
-
* @returns {
|
|
105
|
+
* @returns {UseScrollReturn & { ref: StateRef<Target> }} The state of scrolling
|
|
87
106
|
*
|
|
88
107
|
* @example
|
|
89
|
-
* const { ref, scrolling } = useScroll(options);
|
|
108
|
+
* const { ref, scrolling, scrollIntoView, scrollTo} = useScroll(options);
|
|
90
109
|
*
|
|
91
110
|
* @overload
|
|
92
111
|
* @template Target The target element
|
|
93
112
|
* @param {Target} target The target element to scroll
|
|
94
113
|
* @param {(params: UseScrollCallbackParams, event: Event) => void} [callback] The callback function to be invoked on scroll
|
|
95
|
-
* @returns {
|
|
114
|
+
* @returns {UseScrollReturn & { ref: StateRef<Target> }} The state of scrolling
|
|
96
115
|
*
|
|
97
116
|
* @example
|
|
98
|
-
* const { ref, scrolling } = useScroll(() => console.log('callback'));
|
|
117
|
+
* const { ref, scrolling, scrollIntoView, scrollTo} = useScroll(() => console.log('callback'));
|
|
99
118
|
*/
|
|
100
119
|
export declare const useScroll: UseScroll;
|