@siberiacancode/reactuse 0.0.118 → 0.1.1

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.
Files changed (76) hide show
  1. package/dist/cjs/hooks/useDidUpdate/useDidUpdate.cjs.map +1 -1
  2. package/dist/cjs/hooks/useDoubleClick/useDoubleClick.cjs +1 -1
  3. package/dist/cjs/hooks/useDoubleClick/useDoubleClick.cjs.map +1 -1
  4. package/dist/cjs/hooks/useDropZone/useDropZone.cjs +2 -0
  5. package/dist/cjs/hooks/useDropZone/useDropZone.cjs.map +1 -0
  6. package/dist/cjs/hooks/useEventSource/useEventSource.cjs +2 -0
  7. package/dist/cjs/hooks/useEventSource/useEventSource.cjs.map +1 -0
  8. package/dist/cjs/hooks/useHover/useHover.cjs +1 -1
  9. package/dist/cjs/hooks/useHover/useHover.cjs.map +1 -1
  10. package/dist/cjs/hooks/useInterval/useInterval.cjs +1 -1
  11. package/dist/cjs/hooks/useInterval/useInterval.cjs.map +1 -1
  12. package/dist/cjs/hooks/useLongPress/useLongPress.cjs +1 -1
  13. package/dist/cjs/hooks/useLongPress/useLongPress.cjs.map +1 -1
  14. package/dist/cjs/hooks/useOnce/useOnce.cjs +1 -1
  15. package/dist/cjs/hooks/useOnce/useOnce.cjs.map +1 -1
  16. package/dist/cjs/hooks/usePerformanceObserver/usePerformanceObserver.cjs +1 -1
  17. package/dist/cjs/hooks/usePerformanceObserver/usePerformanceObserver.cjs.map +1 -1
  18. package/dist/cjs/hooks/usePrevious/usePrevious.cjs +1 -1
  19. package/dist/cjs/hooks/usePrevious/usePrevious.cjs.map +1 -1
  20. package/dist/cjs/hooks/useQuery/useQuery.cjs +1 -1
  21. package/dist/cjs/hooks/useQuery/useQuery.cjs.map +1 -1
  22. package/dist/cjs/hooks/useResizeObserver/useResizeObserver.cjs +1 -1
  23. package/dist/cjs/hooks/useResizeObserver/useResizeObserver.cjs.map +1 -1
  24. package/dist/cjs/hooks/useTimeout/useTimeout.cjs +1 -1
  25. package/dist/cjs/hooks/useTimeout/useTimeout.cjs.map +1 -1
  26. package/dist/cjs/hooks/useTimer/useTimer.cjs +1 -1
  27. package/dist/cjs/hooks/useTimer/useTimer.cjs.map +1 -1
  28. package/dist/cjs/hooks/useVibrate/useVibrate.cjs +1 -1
  29. package/dist/cjs/hooks/useVibrate/useVibrate.cjs.map +1 -1
  30. package/dist/cjs/hooks/useWakeLock/useWakeLock.cjs +1 -1
  31. package/dist/cjs/hooks/useWakeLock/useWakeLock.cjs.map +1 -1
  32. package/dist/cjs/hooks/useWebSocket/useWebSocket.cjs +1 -1
  33. package/dist/cjs/hooks/useWebSocket/useWebSocket.cjs.map +1 -1
  34. package/dist/cjs/index.cjs +1 -1
  35. package/dist/esm/hooks/useDidUpdate/useDidUpdate.mjs.map +1 -1
  36. package/dist/esm/hooks/useDoubleClick/useDoubleClick.mjs +4 -4
  37. package/dist/esm/hooks/useDoubleClick/useDoubleClick.mjs.map +1 -1
  38. package/dist/esm/hooks/useDropZone/useDropZone.mjs +50 -0
  39. package/dist/esm/hooks/useDropZone/useDropZone.mjs.map +1 -0
  40. package/dist/esm/hooks/useEventSource/useEventSource.mjs +52 -0
  41. package/dist/esm/hooks/useEventSource/useEventSource.mjs.map +1 -0
  42. package/dist/esm/hooks/useHover/useHover.mjs +9 -6
  43. package/dist/esm/hooks/useHover/useHover.mjs.map +1 -1
  44. package/dist/esm/hooks/useInterval/useInterval.mjs +6 -6
  45. package/dist/esm/hooks/useInterval/useInterval.mjs.map +1 -1
  46. package/dist/esm/hooks/useLongPress/useLongPress.mjs +1 -1
  47. package/dist/esm/hooks/useLongPress/useLongPress.mjs.map +1 -1
  48. package/dist/esm/hooks/useOnce/useOnce.mjs +3 -3
  49. package/dist/esm/hooks/useOnce/useOnce.mjs.map +1 -1
  50. package/dist/esm/hooks/usePerformanceObserver/usePerformanceObserver.mjs +14 -14
  51. package/dist/esm/hooks/usePerformanceObserver/usePerformanceObserver.mjs.map +1 -1
  52. package/dist/esm/hooks/usePrevious/usePrevious.mjs +3 -3
  53. package/dist/esm/hooks/usePrevious/usePrevious.mjs.map +1 -1
  54. package/dist/esm/hooks/useQuery/useQuery.mjs +27 -29
  55. package/dist/esm/hooks/useQuery/useQuery.mjs.map +1 -1
  56. package/dist/esm/hooks/useResizeObserver/useResizeObserver.mjs +17 -17
  57. package/dist/esm/hooks/useResizeObserver/useResizeObserver.mjs.map +1 -1
  58. package/dist/esm/hooks/useTimeout/useTimeout.mjs +1 -1
  59. package/dist/esm/hooks/useTimeout/useTimeout.mjs.map +1 -1
  60. package/dist/esm/hooks/useTimer/useTimer.mjs +15 -15
  61. package/dist/esm/hooks/useTimer/useTimer.mjs.map +1 -1
  62. package/dist/esm/hooks/useVibrate/useVibrate.mjs +9 -9
  63. package/dist/esm/hooks/useVibrate/useVibrate.mjs.map +1 -1
  64. package/dist/esm/hooks/useWakeLock/useWakeLock.mjs +3 -3
  65. package/dist/esm/hooks/useWakeLock/useWakeLock.mjs.map +1 -1
  66. package/dist/esm/hooks/useWebSocket/useWebSocket.mjs +5 -5
  67. package/dist/esm/hooks/useWebSocket/useWebSocket.mjs.map +1 -1
  68. package/dist/esm/index.mjs +260 -256
  69. package/dist/esm/index.mjs.map +1 -1
  70. package/dist/types/hooks/index.d.ts +2 -0
  71. package/dist/types/hooks/useDropZone/useDropZone.d.ts +80 -0
  72. package/dist/types/hooks/useEventSource/useEventSource.d.ts +47 -0
  73. package/dist/types/hooks/useHover/useHover.d.ts +11 -4
  74. package/dist/types/hooks/usePrevious/usePrevious.d.ts +1 -1
  75. package/dist/types/hooks/useQuery/useQuery.d.ts +0 -1
  76. package/package.json +14 -18
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const f=require("react"),v=require("../useEvent/useEvent.cjs"),g=require("../../utils/helpers/getRetry.cjs"),E=(n,e)=>{const u=f.useRef(),a=f.useRef(e!=null&&e.retry?g.getRetry(e.retry):0),d=f.useRef(!1),[R,y]=f.useState("connecting"),S=r=>{var c;return(c=u.current)==null?void 0:c.send(r)},b=()=>{var r;d.current=!0,(r=u.current)==null||r.close()},l=v.useEvent(()=>{u.current=new WebSocket(typeof n=="function"?n():n,e==null?void 0:e.protocols),y("connecting");const r=u.current;r&&(r.onopen=()=>{var c;y("connected"),(c=e==null?void 0:e.onConnected)==null||c.call(e,r)},r.onerror=c=>{var t;y("failed"),(t=e==null?void 0:e.onError)==null||t.call(e,c,r)},r.onmessage=c=>{var t;return(t=e==null?void 0:e.onMessage)==null?void 0:t.call(e,c,r)},r.onclose=c=>{var t;if(y("disconnected"),(t=e==null?void 0:e.onDisconnected)==null||t.call(e,c,r),!d.current){if(a.current>0)return a.current-=1,l();a.current=e!=null&&e.retry?g.getRetry(e.retry):0}})});f.useEffect(()=>(l(),()=>{u.current&&(u.current.close(),u.current=void 0)}),[n]);const k=()=>{d.current=!1,l()};return{client:u.current,close:b,open:k,send:S,status:R}};exports.useWebSocket=E;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const f=require("react"),v=require("../useEvent/useEvent.cjs"),g=require("../../utils/helpers/getRetry.cjs"),E=(n,e)=>{const u=f.useRef(void 0),y=f.useRef(e!=null&&e.retry?g.getRetry(e.retry):0),a=f.useRef(!1),[R,d]=f.useState("connecting"),S=r=>{var c;return(c=u.current)==null?void 0:c.send(r)},b=()=>{var r;a.current=!0,(r=u.current)==null||r.close()},l=v.useEvent(()=>{u.current=new WebSocket(typeof n=="function"?n():n,e==null?void 0:e.protocols),d("connecting");const r=u.current;r&&(r.onopen=()=>{var c;d("connected"),(c=e==null?void 0:e.onConnected)==null||c.call(e,r)},r.onerror=c=>{var t;d("failed"),(t=e==null?void 0:e.onError)==null||t.call(e,c,r)},r.onmessage=c=>{var t;return(t=e==null?void 0:e.onMessage)==null?void 0:t.call(e,c,r)},r.onclose=c=>{var t;if(d("disconnected"),(t=e==null?void 0:e.onDisconnected)==null||t.call(e,c,r),!a.current){if(y.current>0)return y.current-=1,l();y.current=e!=null&&e.retry?g.getRetry(e.retry):0}})});f.useEffect(()=>(l(),()=>{u.current&&(u.current.close(),u.current=void 0)}),[n]);const k=()=>{a.current=!1,l()};return{client:u.current,close:b,open:k,send:S,status:R}};exports.useWebSocket=E;
2
2
  //# sourceMappingURL=useWebSocket.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useWebSocket.cjs","sources":["../../../../src/hooks/useWebSocket/useWebSocket.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\n\nimport { getRetry } from '@/utils/helpers';\n\nimport { useEvent } from '../useEvent/useEvent';\n\nexport type UseWebSocketUrl = (() => string) | string;\n\nexport interface UseWebSocketOptions {\n protocols?: Array<'soap' | 'wasm'>;\n retry?: boolean | number;\n onConnected?: (webSocket: WebSocket) => void;\n onDisconnected?: (event: CloseEvent, webSocket: WebSocket) => void;\n onError?: (event: Event, webSocket: WebSocket) => void;\n onMessage?: (event: MessageEvent, webSocket: WebSocket) => void;\n}\n\nexport type UseWebSocketStatus = 'connected' | 'connecting' | 'disconnected' | 'failed';\n\nexport interface UseWebSocketReturn {\n client?: WebSocket;\n close: WebSocket['close'];\n send: WebSocket['send'];\n status: UseWebSocketStatus;\n open: () => void;\n}\n\n/**\n * @name useWebSocket\n * @description - Hook that connects to a WebSocket server and handles incoming and outgoing messages\n * @category Browser\n *\n * @param {UseWebSocketUrl} url The URL of the WebSocket server\n * @param {(webSocket: WebSocket) => void} [options.onConnected] The callback function that is called when the WebSocket connection is established\n * @param {(event: CloseEvent, webSocket: WebSocket) => void} [options.onDisconnected] The callback function that is called when the WebSocket connection is closed\n * @param {(event: Event, webSocket: WebSocket) => void} [options.onError] The callback function that is called when an error occurs\n * @param {(event: MessageEvent, webSocket: WebSocket) => void} [options.onMessage] The callback function that is called when a message is received\n * @param {boolean | number} [options.retry] The number of times to retry the connection\n * @param {Array<'soap' | 'wasm'>} [options.protocols] The list of protocols to use\n * @returns {UseWebSocketReturn} An object with the status, close, send, open, and ws properties\n *\n * @example\n * const { status, close, send, open, client } = useWebSocket('url');\n */\nexport const useWebSocket = (\n url: UseWebSocketUrl,\n options?: UseWebSocketOptions\n): UseWebSocketReturn => {\n const webSocketRef = useRef<WebSocket>();\n const retryCountRef = useRef(options?.retry ? getRetry(options.retry) : 0);\n const explicityCloseRef = useRef(false);\n\n const [status, setStatus] = useState<UseWebSocketStatus>('connecting');\n\n const send = (data: string | ArrayBufferLike | ArrayBufferView | Blob) =>\n webSocketRef.current?.send(data);\n\n const close = () => {\n explicityCloseRef.current = true;\n webSocketRef.current?.close();\n };\n\n const init = useEvent(() => {\n webSocketRef.current = new WebSocket(\n typeof url === 'function' ? url() : url,\n options?.protocols\n );\n setStatus('connecting');\n\n const webSocket = webSocketRef.current;\n if (!webSocket) return;\n\n webSocket.onopen = () => {\n setStatus('connected');\n options?.onConnected?.(webSocket);\n };\n\n webSocket.onerror = (event) => {\n setStatus('failed');\n options?.onError?.(event, webSocket);\n };\n\n webSocket.onmessage = (event) => options?.onMessage?.(event, webSocket);\n\n webSocket.onclose = (event) => {\n setStatus('disconnected');\n options?.onDisconnected?.(event, webSocket);\n if (explicityCloseRef.current) return;\n\n if (retryCountRef.current > 0) {\n retryCountRef.current -= 1;\n return init();\n }\n retryCountRef.current = options?.retry ? getRetry(options.retry) : 0;\n };\n });\n\n useEffect(() => {\n init();\n\n return () => {\n if (!webSocketRef.current) return;\n webSocketRef.current.close();\n webSocketRef.current = undefined;\n };\n }, [url]);\n\n const open = () => {\n explicityCloseRef.current = false;\n init();\n };\n\n return { client: webSocketRef.current, close, open, send, status };\n};\n"],"names":["useWebSocket","url","options","webSocketRef","useRef","retryCountRef","getRetry","explicityCloseRef","status","setStatus","useState","send","data","_a","close","init","useEvent","webSocket","event","useEffect","open"],"mappings":"6LA4CaA,EAAe,CAC1BC,EACAC,IACuB,CACvB,MAAMC,EAAeC,EAAAA,OAAkB,EACjCC,EAAgBD,SAAOF,GAAA,MAAAA,EAAS,MAAQI,EAAAA,SAASJ,EAAQ,KAAK,EAAI,CAAC,EACnEK,EAAoBH,SAAO,EAAK,EAEhC,CAACI,EAAQC,CAAS,EAAIC,EAAAA,SAA6B,YAAY,EAE/DC,EAAQC,GAAA,OACZ,OAAAC,EAAAV,EAAa,UAAb,YAAAU,EAAsB,KAAKD,IAEvBE,EAAQ,IAAM,OAClBP,EAAkB,QAAU,IAC5BM,EAAAV,EAAa,UAAb,MAAAU,EAAsB,OACxB,EAEME,EAAOC,EAAAA,SAAS,IAAM,CAC1Bb,EAAa,QAAU,IAAI,UACzB,OAAOF,GAAQ,WAAaA,EAAA,EAAQA,EACpCC,GAAA,YAAAA,EAAS,SACX,EACAO,EAAU,YAAY,EAEtB,MAAMQ,EAAYd,EAAa,QAC1Bc,IAELA,EAAU,OAAS,IAAM,OACvBR,EAAU,WAAW,GACrBI,EAAAX,GAAA,YAAAA,EAAS,cAAT,MAAAW,EAAA,KAAAX,EAAuBe,EACzB,EAEUA,EAAA,QAAWC,GAAU,OAC7BT,EAAU,QAAQ,GACTI,EAAAX,GAAA,YAAAA,EAAA,UAAA,MAAAW,EAAA,KAAAX,EAAUgB,EAAOD,EAC5B,EAEAA,EAAU,UAAaC,GAAA,OAAU,OAAAL,EAAAX,GAAA,YAAAA,EAAS,YAAT,YAAAW,EAAA,KAAAX,EAAqBgB,EAAOD,IAEnDA,EAAA,QAAWC,GAAU,OAG7B,GAFAT,EAAU,cAAc,GACfI,EAAAX,GAAA,YAAAA,EAAA,iBAAA,MAAAW,EAAA,KAAAX,EAAiBgB,EAAOD,GAC7B,CAAAV,EAAkB,QAElB,IAAAF,EAAc,QAAU,EAC1B,OAAAA,EAAc,SAAW,EAClBU,EAAK,EAEdV,EAAc,QAAUH,GAAA,MAAAA,EAAS,MAAQI,EAAAA,SAASJ,EAAQ,KAAK,EAAI,EACrE,EAAA,CACD,EAEDiB,EAAAA,UAAU,KACHJ,EAAA,EAEE,IAAM,CACNZ,EAAa,UAClBA,EAAa,QAAQ,MAAM,EAC3BA,EAAa,QAAU,OACzB,GACC,CAACF,CAAG,CAAC,EAER,MAAMmB,EAAO,IAAM,CACjBb,EAAkB,QAAU,GACvBQ,EAAA,CACP,EAEA,MAAO,CAAE,OAAQZ,EAAa,QAAS,MAAAW,EAAO,KAAAM,EAAM,KAAAT,EAAM,OAAAH,CAAO,CACnE"}
1
+ {"version":3,"file":"useWebSocket.cjs","sources":["../../../../src/hooks/useWebSocket/useWebSocket.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\n\nimport { getRetry } from '@/utils/helpers';\n\nimport { useEvent } from '../useEvent/useEvent';\n\nexport type UseWebSocketUrl = (() => string) | string;\n\nexport interface UseWebSocketOptions {\n protocols?: Array<'soap' | 'wasm'>;\n retry?: boolean | number;\n onConnected?: (webSocket: WebSocket) => void;\n onDisconnected?: (event: CloseEvent, webSocket: WebSocket) => void;\n onError?: (event: Event, webSocket: WebSocket) => void;\n onMessage?: (event: MessageEvent, webSocket: WebSocket) => void;\n}\n\nexport type UseWebSocketStatus = 'connected' | 'connecting' | 'disconnected' | 'failed';\n\nexport interface UseWebSocketReturn {\n client?: WebSocket;\n close: WebSocket['close'];\n send: WebSocket['send'];\n status: UseWebSocketStatus;\n open: () => void;\n}\n\n/**\n * @name useWebSocket\n * @description - Hook that connects to a WebSocket server and handles incoming and outgoing messages\n * @category Browser\n *\n * @param {UseWebSocketUrl} url The URL of the WebSocket server\n * @param {(webSocket: WebSocket) => void} [options.onConnected] The callback function that is called when the WebSocket connection is established\n * @param {(event: CloseEvent, webSocket: WebSocket) => void} [options.onDisconnected] The callback function that is called when the WebSocket connection is closed\n * @param {(event: Event, webSocket: WebSocket) => void} [options.onError] The callback function that is called when an error occurs\n * @param {(event: MessageEvent, webSocket: WebSocket) => void} [options.onMessage] The callback function that is called when a message is received\n * @param {boolean | number} [options.retry] The number of times to retry the connection\n * @param {Array<'soap' | 'wasm'>} [options.protocols] The list of protocols to use\n * @returns {UseWebSocketReturn} An object with the status, close, send, open, and ws properties\n *\n * @example\n * const { status, close, send, open, client } = useWebSocket('url');\n */\nexport const useWebSocket = (\n url: UseWebSocketUrl,\n options?: UseWebSocketOptions\n): UseWebSocketReturn => {\n const webSocketRef = useRef<WebSocket>(undefined);\n const retryCountRef = useRef(options?.retry ? getRetry(options.retry) : 0);\n const explicityCloseRef = useRef(false);\n\n const [status, setStatus] = useState<UseWebSocketStatus>('connecting');\n\n const send = (data: string | ArrayBufferLike | ArrayBufferView | Blob) =>\n webSocketRef.current?.send(data);\n\n const close = () => {\n explicityCloseRef.current = true;\n webSocketRef.current?.close();\n };\n\n const init = useEvent(() => {\n webSocketRef.current = new WebSocket(\n typeof url === 'function' ? url() : url,\n options?.protocols\n );\n setStatus('connecting');\n\n const webSocket = webSocketRef.current;\n if (!webSocket) return;\n\n webSocket.onopen = () => {\n setStatus('connected');\n options?.onConnected?.(webSocket);\n };\n\n webSocket.onerror = (event) => {\n setStatus('failed');\n options?.onError?.(event, webSocket);\n };\n\n webSocket.onmessage = (event) => options?.onMessage?.(event, webSocket);\n\n webSocket.onclose = (event) => {\n setStatus('disconnected');\n options?.onDisconnected?.(event, webSocket);\n if (explicityCloseRef.current) return;\n\n if (retryCountRef.current > 0) {\n retryCountRef.current -= 1;\n return init();\n }\n retryCountRef.current = options?.retry ? getRetry(options.retry) : 0;\n };\n });\n\n useEffect(() => {\n init();\n\n return () => {\n if (!webSocketRef.current) return;\n webSocketRef.current.close();\n webSocketRef.current = undefined;\n };\n }, [url]);\n\n const open = () => {\n explicityCloseRef.current = false;\n init();\n };\n\n return { client: webSocketRef.current, close, open, send, status };\n};\n"],"names":["useWebSocket","url","options","webSocketRef","useRef","retryCountRef","getRetry","explicityCloseRef","status","setStatus","useState","send","data","_a","close","init","useEvent","webSocket","event","useEffect","open"],"mappings":"6LA4CaA,EAAe,CAC1BC,EACAC,IACuB,CACjB,MAAAC,EAAeC,SAAkB,MAAS,EAC1CC,EAAgBD,SAAOF,GAAA,MAAAA,EAAS,MAAQI,EAAAA,SAASJ,EAAQ,KAAK,EAAI,CAAC,EACnEK,EAAoBH,SAAO,EAAK,EAEhC,CAACI,EAAQC,CAAS,EAAIC,EAAAA,SAA6B,YAAY,EAE/DC,EAAQC,GAAA,OACZ,OAAAC,EAAAV,EAAa,UAAb,YAAAU,EAAsB,KAAKD,IAEvBE,EAAQ,IAAM,OAClBP,EAAkB,QAAU,IAC5BM,EAAAV,EAAa,UAAb,MAAAU,EAAsB,OACxB,EAEME,EAAOC,EAAAA,SAAS,IAAM,CAC1Bb,EAAa,QAAU,IAAI,UACzB,OAAOF,GAAQ,WAAaA,EAAA,EAAQA,EACpCC,GAAA,YAAAA,EAAS,SACX,EACAO,EAAU,YAAY,EAEtB,MAAMQ,EAAYd,EAAa,QAC1Bc,IAELA,EAAU,OAAS,IAAM,OACvBR,EAAU,WAAW,GACrBI,EAAAX,GAAA,YAAAA,EAAS,cAAT,MAAAW,EAAA,KAAAX,EAAuBe,EACzB,EAEUA,EAAA,QAAWC,GAAU,OAC7BT,EAAU,QAAQ,GACTI,EAAAX,GAAA,YAAAA,EAAA,UAAA,MAAAW,EAAA,KAAAX,EAAUgB,EAAOD,EAC5B,EAEAA,EAAU,UAAaC,GAAA,OAAU,OAAAL,EAAAX,GAAA,YAAAA,EAAS,YAAT,YAAAW,EAAA,KAAAX,EAAqBgB,EAAOD,IAEnDA,EAAA,QAAWC,GAAU,OAG7B,GAFAT,EAAU,cAAc,GACfI,EAAAX,GAAA,YAAAA,EAAA,iBAAA,MAAAW,EAAA,KAAAX,EAAiBgB,EAAOD,GAC7B,CAAAV,EAAkB,QAElB,IAAAF,EAAc,QAAU,EAC1B,OAAAA,EAAc,SAAW,EAClBU,EAAK,EAEdV,EAAc,QAAUH,GAAA,MAAAA,EAAS,MAAQI,EAAAA,SAASJ,EAAQ,KAAK,EAAI,EACrE,EAAA,CACD,EAEDiB,EAAAA,UAAU,KACHJ,EAAA,EAEE,IAAM,CACNZ,EAAa,UAClBA,EAAa,QAAQ,MAAM,EAC3BA,EAAa,QAAU,OACzB,GACC,CAACF,CAAG,CAAC,EAER,MAAMmB,EAAO,IAAM,CACjBb,EAAkB,QAAU,GACvBQ,EAAA,CACP,EAEA,MAAO,CAAE,OAAQZ,EAAa,QAAS,MAAAW,EAAO,KAAAM,EAAM,KAAAT,EAAM,OAAAH,CAAO,CACnE"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const P=require("./hooks/useActiveElement/useActiveElement.cjs"),C=require("./hooks/useAsync/useAsync.cjs"),E=require("./hooks/useBattery/useBattery.cjs"),m=require("./hooks/useBluetooth/useBluetooth.cjs"),p=require("./hooks/useBoolean/useBoolean.cjs"),e=require("./hooks/useBreakpoints/useBreakpoints.cjs"),y=require("./hooks/useBrowserLanguage/useBrowserLanguage.cjs"),R=require("./hooks/useClickOutside/useClickOutside.cjs"),O=require("./hooks/useClipboard/useClipboard.cjs"),k=require("./hooks/useConst/useConst.cjs"),s=require("./hooks/useCookie/useCookie.cjs"),u=require("./hooks/useCookies/useCookies.cjs"),I=require("./hooks/useCopy/useCopy.cjs"),v=require("./hooks/useCounter/useCounter.cjs"),D=require("./hooks/useCssVar/useCssVar.cjs"),b=require("./hooks/useDebounceCallback/useDebounceCallback.cjs"),A=require("./hooks/useDebounceValue/useDebounceValue.cjs"),L=require("./hooks/useDefault/useDefault.cjs"),M=require("./hooks/useDeviceMotion/useDeviceMotion.cjs"),f=require("./hooks/useDeviceOrientation/useDeviceOrientation.cjs"),h=require("./hooks/useDevicePixelRatio/useDevicePixelRatio.cjs"),_=require("./hooks/useDidUpdate/useDidUpdate.cjs"),N=require("./hooks/useDisclosure/useDisclosure.cjs"),B=require("./hooks/useDisplayMedia/useDisplayMedia.cjs"),K=require("./hooks/useDocumentEvent/useDocumentEvent.cjs"),F=require("./hooks/useDocumentTitle/useDocumentTitle.cjs"),V=require("./hooks/useDocumentVisibility/useDocumentVisibility.cjs"),w=require("./hooks/useDoubleClick/useDoubleClick.cjs"),W=require("./hooks/useElementSize/useElementSize.cjs"),x=require("./hooks/useEvent/useEvent.cjs"),H=require("./hooks/useEventListener/useEventListener.cjs"),U=require("./hooks/useEyeDropper/useEyeDropper.cjs"),z=require("./hooks/useFavicon/useFavicon.cjs"),G=require("./hooks/useField/useField.cjs"),Q=require("./hooks/useFileDialog/useFileDialog.cjs"),X=require("./hooks/useFocus/useFocus.cjs"),j=require("./hooks/useFps/useFps.cjs"),J=require("./hooks/useFul/useFul.cjs"),Y=require("./hooks/useFullscreen/useFullscreen.cjs"),i=require("./hooks/useGamepad/useGamepad.cjs"),Z=require("./hooks/useGeolocation/useGeolocation.cjs"),$=require("./hooks/useHash/useHash.cjs"),n=require("./hooks/useHotkeys/useHotkeys.cjs"),ee=require("./hooks/useHover/useHover.cjs"),se=require("./hooks/useIdle/useIdle.cjs"),ue=require("./hooks/useImage/useImage.cjs"),re=require("./hooks/useInfiniteScroll/useInfiniteScroll.cjs"),te=require("./hooks/useIntersectionObserver/useIntersectionObserver.cjs"),oe=require("./hooks/useInterval/useInterval.cjs"),ie=require("./hooks/useIsFirstRender/useIsFirstRender.cjs"),ne=require("./hooks/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.cjs"),ce=require("./hooks/useKeyboard/useKeyboard.cjs"),ae=require("./hooks/useKeyPress/useKeyPress.cjs"),le=require("./hooks/useKeyPressEvent/useKeyPressEvent.cjs"),qe=require("./hooks/useKeysPressed/useKeysPressed.cjs"),Se=require("./hooks/useLastChanged/useLastChanged.cjs"),de=require("./hooks/useLatest/useLatest.cjs"),ge=require("./hooks/useLess/useLess.cjs"),Te=require("./hooks/useList/useList.cjs"),Pe=require("./hooks/useLocalStorage/useLocalStorage.cjs"),Ce=require("./hooks/useLockCallback/useLockCallback.cjs"),Ee=require("./hooks/useLogger/useLogger.cjs"),me=require("./hooks/useLongPress/useLongPress.cjs"),pe=require("./hooks/useMap/useMap.cjs"),ye=require("./hooks/useMeasure/useMeasure.cjs"),Re=require("./hooks/useMediaQuery/useMediaQuery.cjs"),Oe=require("./hooks/useMemory/useMemory.cjs"),ke=require("./hooks/useMount/useMount.cjs"),Ie=require("./hooks/useMouse/useMouse.cjs"),ve=require("./hooks/useMutation/useMutation.cjs"),De=require("./hooks/useMutationObserver/useMutationObserver.cjs"),c=require("./hooks/useNetwork/useNetwork.cjs"),be=require("./hooks/useOffsetPagination/useOffsetPagination.cjs"),Ae=require("./hooks/useOnce/useOnce.cjs"),Le=require("./hooks/useOnline/useOnline.cjs"),a=require("./hooks/useOperatingSystem/useOperatingSystem.cjs"),Me=require("./hooks/useOptimistic/useOptimistic.cjs"),fe=require("./hooks/useOrientation/useOrientation.cjs"),he=require("./hooks/useOtpCredential/useOtpCredential.cjs"),_e=require("./hooks/usePageLeave/usePageLeave.cjs"),r=require("./hooks/usePaint/usePaint.cjs"),Ne=require("./hooks/useParallax/useParallax.cjs"),Be=require("./hooks/usePerformanceObserver/usePerformanceObserver.cjs"),Ke=require("./hooks/usePermission/usePermission.cjs"),Fe=require("./hooks/usePointerLock/usePointerLock.cjs"),Ve=require("./hooks/usePostMessage/usePostMessage.cjs"),we=require("./hooks/usePreferredColorScheme/usePreferredColorScheme.cjs"),We=require("./hooks/usePreferredContrast/usePreferredContrast.cjs"),xe=require("./hooks/usePreferredDark/usePreferredDark.cjs"),He=require("./hooks/usePreferredLanguages/usePreferredLanguages.cjs"),Ue=require("./hooks/usePreferredReducedMotion/usePreferredReducedMotion.cjs"),ze=require("./hooks/usePrevious/usePrevious.cjs"),Ge=require("./hooks/useQuery/useQuery.cjs"),Qe=require("./hooks/useQueue/useQueue.cjs"),Xe=require("./hooks/useRaf/useRaf.cjs"),je=require("./hooks/useRafValue/useRafValue.cjs"),Je=require("./hooks/useRefState/useRefState.cjs"),Ye=require("./hooks/useRenderCount/useRenderCount.cjs"),Ze=require("./hooks/useRenderInfo/useRenderInfo.cjs"),$e=require("./hooks/useRerender/useRerender.cjs"),es=require("./hooks/useResizeObserver/useResizeObserver.cjs"),ss=require("./hooks/useScreenOrientation/useScreenOrientation.cjs"),l=require("./hooks/useScript/useScript.cjs"),us=require("./hooks/useScroll/useScroll.cjs"),rs=require("./hooks/useScrollIntoView/useScrollIntoView.cjs"),ts=require("./hooks/useScrollTo/useScrollTo.cjs"),os=require("./hooks/useSessionStorage/useSessionStorage.cjs"),is=require("./hooks/useSet/useSet.cjs"),ns=require("./hooks/useShare/useShare.cjs"),q=require("./hooks/useSpeechRecognition/useSpeechRecognition.cjs"),cs=require("./hooks/useSpeechSynthesis/useSpeechSynthesis.cjs"),as=require("./hooks/useStateHistory/useStateHistory.cjs"),ls=require("./hooks/useStep/useStep.cjs"),qs=require("./hooks/useSticky/useSticky.cjs"),Ss=require("./hooks/useStopwatch/useStopwatch.cjs"),t=require("./hooks/useStorage/useStorage.cjs"),ds=require("./hooks/useTextDirection/useTextDirection.cjs"),S=require("./hooks/useTextSelection/useTextSelection.cjs"),gs=require("./hooks/useThrottleCallback/useThrottleCallback.cjs"),Ts=require("./hooks/useThrottleValue/useThrottleValue.cjs"),Ps=require("./hooks/useTime/useTime.cjs"),Cs=require("./hooks/useTimeout/useTimeout.cjs"),d=require("./hooks/useTimer/useTimer.cjs"),Es=require("./hooks/useToggle/useToggle.cjs"),ms=require("./hooks/useUnmount/useUnmount.cjs"),ps=require("./hooks/useVibrate/useVibrate.cjs"),ys=require("./hooks/useWakeLock/useWakeLock.cjs"),Rs=require("./hooks/useWebSocket/useWebSocket.cjs"),Os=require("./hooks/useWindowEvent/useWindowEvent.cjs"),ks=require("./hooks/useWindowFocus/useWindowFocus.cjs"),g=require("./hooks/useWindowScroll/useWindowScroll.cjs"),Is=require("./hooks/useWindowSize/useWindowSize.cjs"),vs=require("./hooks/useWizard/useWizard.cjs"),T=require("./utils/helpers/copy.cjs"),Ds=require("./utils/helpers/debounce.cjs"),bs=require("./utils/helpers/getDate.cjs"),o=require("./utils/helpers/getElement.cjs"),As=require("./utils/helpers/getRetry.cjs"),Ls=require("./utils/helpers/isTarget.cjs"),Ms=require("./utils/helpers/throttle.cjs");exports.useActiveElement=P.useActiveElement;exports.useAsync=C.useAsync;exports.useBattery=E.useBattery;exports.useBluetooth=m.useBluetooth;exports.useBoolean=p.useBoolean;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.useBrowserLanguage=y.useBrowserLanguage;exports.useClickOutside=R.useClickOutside;exports.useClipboard=O.useClipboard;exports.useConst=k.useConst;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=u.clearCookies;exports.getParsedCookies=u.getParsedCookies;exports.useCookies=u.useCookies;exports.useCopy=I.useCopy;exports.useCounter=v.useCounter;exports.useCssVar=D.useCssVar;exports.useDebounceCallback=b.useDebounceCallback;exports.useDebounceValue=A.useDebounceValue;exports.useDefault=L.useDefault;exports.useDeviceMotion=M.useDeviceMotion;exports.useDeviceOrientation=f.useDeviceOrientation;exports.useDevicePixelRatio=h.useDevicePixelRatio;exports.useDidUpdate=_.useDidUpdate;exports.useDisclosure=N.useDisclosure;exports.useDisplayMedia=B.useDisplayMedia;exports.useDocumentEvent=K.useDocumentEvent;exports.useDocumentTitle=F.useDocumentTitle;exports.useDocumentVisibility=V.useDocumentVisibility;exports.useDoubleClick=w.useDoubleClick;exports.useElementSize=W.useElementSize;exports.useEvent=x.useEvent;exports.useEventListener=H.useEventListener;exports.useEyeDropper=U.useEyeDropper;exports.useFavicon=z.useFavicon;exports.useField=G.useField;exports.useFileDialog=Q.useFileDialog;exports.useFocus=X.useFocus;exports.useFps=j.useFps;exports.useFul=J.useFul;exports.useFullscreen=Y.useFullscreen;exports.mapGamepadToXbox360Controller=i.mapGamepadToXbox360Controller;exports.useGamepad=i.useGamepad;exports.useGeolocation=Z.useGeolocation;exports.useHash=$.useHash;exports.isHotkeyMatch=n.isHotkeyMatch;exports.useHotkeys=n.useHotkeys;exports.useHover=ee.useHover;exports.useIdle=se.useIdle;exports.useImage=ue.useImage;exports.useInfiniteScroll=re.useInfiniteScroll;exports.useIntersectionObserver=te.useIntersectionObserver;exports.useInterval=oe.useInterval;exports.useIsFirstRender=ie.useIsFirstRender;exports.useIsomorphicLayoutEffect=ne.useIsomorphicLayoutEffect;exports.useKeyboard=ce.useKeyboard;exports.useKeyPress=ae.useKeyPress;exports.useKeyPressEvent=le.useKeyPressEvent;exports.useKeysPressed=qe.useKeysPressed;exports.useLastChanged=Se.useLastChanged;exports.useLatest=de.useLatest;exports.useLess=ge.useLess;exports.useList=Te.useList;exports.useLocalStorage=Pe.useLocalStorage;exports.useLockCallback=Ce.useLockCallback;exports.useLogger=Ee.useLogger;exports.useLongPress=me.useLongPress;exports.useMap=pe.useMap;exports.useMeasure=ye.useMeasure;exports.useMediaQuery=Re.useMediaQuery;exports.useMemory=Oe.useMemory;exports.useMount=ke.useMount;exports.useMouse=Ie.useMouse;exports.useMutation=ve.useMutation;exports.useMutationObserver=De.useMutationObserver;exports.getConnection=c.getConnection;exports.useNetwork=c.useNetwork;exports.useOffsetPagination=be.useOffsetPagination;exports.useOnce=Ae.useOnce;exports.useOnline=Le.useOnline;exports.getOperatingSystem=a.getOperatingSystem;exports.useOperatingSystem=a.useOperatingSystem;exports.useOptimistic=Me.useOptimistic;exports.useOrientation=fe.useOrientation;exports.useOtpCredential=he.useOtpCredential;exports.usePageLeave=_e.usePageLeave;exports.Paint=r.Paint;exports.Pointer=r.Pointer;exports.usePaint=r.usePaint;exports.useParallax=Ne.useParallax;exports.usePerformanceObserver=Be.usePerformanceObserver;exports.usePermission=Ke.usePermission;exports.usePointerLock=Fe.usePointerLock;exports.usePostMessage=Ve.usePostMessage;exports.usePreferredColorScheme=we.usePreferredColorScheme;exports.usePreferredContrast=We.usePreferredContrast;exports.usePreferredDark=xe.usePreferredDark;exports.usePreferredLanguages=He.usePreferredLanguages;exports.usePreferredReducedMotion=Ue.usePreferredReducedMotion;exports.usePrevious=ze.usePrevious;exports.useQuery=Ge.useQuery;exports.useQueue=Qe.useQueue;exports.useRaf=Xe.useRaf;exports.useRafValue=je.useRafValue;exports.useRefState=Je.useRefState;exports.useRenderCount=Ye.useRenderCount;exports.useRenderInfo=Ze.useRenderInfo;exports.useRerender=$e.useRerender;exports.useResizeObserver=es.useResizeObserver;exports.useScreenOrientation=ss.useScreenOrientation;exports.SCRIPT_STATUS_ATTRIBUTE_NAME=l.SCRIPT_STATUS_ATTRIBUTE_NAME;exports.useScript=l.useScript;exports.useScroll=us.useScroll;exports.useScrollIntoView=rs.useScrollIntoView;exports.useScrollTo=ts.useScrollTo;exports.useSessionStorage=os.useSessionStorage;exports.useSet=is.useSet;exports.useShare=ns.useShare;exports.getSpeechRecognition=q.getSpeechRecognition;exports.useSpeechRecognition=q.useSpeechRecognition;exports.useSpeechSynthesis=cs.useSpeechSynthesis;exports.useStateHistory=as.useStateHistory;exports.useStep=ls.useStep;exports.useSticky=qs.useSticky;exports.useStopwatch=Ss.useStopwatch;exports.STORAGE_EVENT=t.STORAGE_EVENT;exports.dispatchStorageEvent=t.dispatchStorageEvent;exports.useStorage=t.useStorage;exports.useTextDirection=ds.useTextDirection;exports.getRangesSelection=S.getRangesSelection;exports.useTextSelection=S.useTextSelection;exports.useThrottleCallback=gs.useThrottleCallback;exports.useThrottleValue=Ts.useThrottleValue;exports.useTime=Ps.useTime;exports.useTimeout=Cs.useTimeout;exports.getTimeFromSeconds=d.getTimeFromSeconds;exports.useTimer=d.useTimer;exports.useToggle=Es.useToggle;exports.useUnmount=ms.useUnmount;exports.useVibrate=ps.useVibrate;exports.useWakeLock=ys.useWakeLock;exports.useWebSocket=Rs.useWebSocket;exports.useWindowEvent=Os.useWindowEvent;exports.useWindowFocus=ks.useWindowFocus;exports.scrollTo=g.scrollTo;exports.useWindowScroll=g.useWindowScroll;exports.useWindowSize=Is.useWindowSize;exports.useWizard=vs.useWizard;exports.copy=T.copy;exports.legacyCopyToClipboard=T.legacyCopyToClipboard;exports.debounce=Ds.debounce;exports.getDate=bs.getDate;exports.getElement=o.getElement;exports.target=o.target;exports.targetSymbol=o.targetSymbol;exports.getRetry=As.getRetry;exports.isTarget=Ls.isTarget;exports.throttle=Ms.throttle;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const P=require("./hooks/useActiveElement/useActiveElement.cjs"),C=require("./hooks/useAsync/useAsync.cjs"),E=require("./hooks/useBattery/useBattery.cjs"),p=require("./hooks/useBluetooth/useBluetooth.cjs"),m=require("./hooks/useBoolean/useBoolean.cjs"),e=require("./hooks/useBreakpoints/useBreakpoints.cjs"),y=require("./hooks/useBrowserLanguage/useBrowserLanguage.cjs"),R=require("./hooks/useClickOutside/useClickOutside.cjs"),O=require("./hooks/useClipboard/useClipboard.cjs"),k=require("./hooks/useConst/useConst.cjs"),s=require("./hooks/useCookie/useCookie.cjs"),u=require("./hooks/useCookies/useCookies.cjs"),I=require("./hooks/useCopy/useCopy.cjs"),v=require("./hooks/useCounter/useCounter.cjs"),D=require("./hooks/useCssVar/useCssVar.cjs"),b=require("./hooks/useDebounceCallback/useDebounceCallback.cjs"),A=require("./hooks/useDebounceValue/useDebounceValue.cjs"),L=require("./hooks/useDefault/useDefault.cjs"),M=require("./hooks/useDeviceMotion/useDeviceMotion.cjs"),f=require("./hooks/useDeviceOrientation/useDeviceOrientation.cjs"),h=require("./hooks/useDevicePixelRatio/useDevicePixelRatio.cjs"),_=require("./hooks/useDidUpdate/useDidUpdate.cjs"),N=require("./hooks/useDisclosure/useDisclosure.cjs"),B=require("./hooks/useDisplayMedia/useDisplayMedia.cjs"),K=require("./hooks/useDocumentEvent/useDocumentEvent.cjs"),F=require("./hooks/useDocumentTitle/useDocumentTitle.cjs"),V=require("./hooks/useDocumentVisibility/useDocumentVisibility.cjs"),w=require("./hooks/useDoubleClick/useDoubleClick.cjs"),W=require("./hooks/useDropZone/useDropZone.cjs"),x=require("./hooks/useElementSize/useElementSize.cjs"),H=require("./hooks/useEvent/useEvent.cjs"),U=require("./hooks/useEventListener/useEventListener.cjs"),z=require("./hooks/useEventSource/useEventSource.cjs"),G=require("./hooks/useEyeDropper/useEyeDropper.cjs"),Q=require("./hooks/useFavicon/useFavicon.cjs"),X=require("./hooks/useField/useField.cjs"),Z=require("./hooks/useFileDialog/useFileDialog.cjs"),j=require("./hooks/useFocus/useFocus.cjs"),J=require("./hooks/useFps/useFps.cjs"),Y=require("./hooks/useFul/useFul.cjs"),$=require("./hooks/useFullscreen/useFullscreen.cjs"),i=require("./hooks/useGamepad/useGamepad.cjs"),ee=require("./hooks/useGeolocation/useGeolocation.cjs"),se=require("./hooks/useHash/useHash.cjs"),n=require("./hooks/useHotkeys/useHotkeys.cjs"),ue=require("./hooks/useHover/useHover.cjs"),re=require("./hooks/useIdle/useIdle.cjs"),te=require("./hooks/useImage/useImage.cjs"),oe=require("./hooks/useInfiniteScroll/useInfiniteScroll.cjs"),ie=require("./hooks/useIntersectionObserver/useIntersectionObserver.cjs"),ne=require("./hooks/useInterval/useInterval.cjs"),ce=require("./hooks/useIsFirstRender/useIsFirstRender.cjs"),ae=require("./hooks/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.cjs"),le=require("./hooks/useKeyboard/useKeyboard.cjs"),qe=require("./hooks/useKeyPress/useKeyPress.cjs"),Se=require("./hooks/useKeyPressEvent/useKeyPressEvent.cjs"),de=require("./hooks/useKeysPressed/useKeysPressed.cjs"),ge=require("./hooks/useLastChanged/useLastChanged.cjs"),Te=require("./hooks/useLatest/useLatest.cjs"),Pe=require("./hooks/useLess/useLess.cjs"),Ce=require("./hooks/useList/useList.cjs"),Ee=require("./hooks/useLocalStorage/useLocalStorage.cjs"),pe=require("./hooks/useLockCallback/useLockCallback.cjs"),me=require("./hooks/useLogger/useLogger.cjs"),ye=require("./hooks/useLongPress/useLongPress.cjs"),Re=require("./hooks/useMap/useMap.cjs"),Oe=require("./hooks/useMeasure/useMeasure.cjs"),ke=require("./hooks/useMediaQuery/useMediaQuery.cjs"),Ie=require("./hooks/useMemory/useMemory.cjs"),ve=require("./hooks/useMount/useMount.cjs"),De=require("./hooks/useMouse/useMouse.cjs"),be=require("./hooks/useMutation/useMutation.cjs"),Ae=require("./hooks/useMutationObserver/useMutationObserver.cjs"),c=require("./hooks/useNetwork/useNetwork.cjs"),Le=require("./hooks/useOffsetPagination/useOffsetPagination.cjs"),Me=require("./hooks/useOnce/useOnce.cjs"),fe=require("./hooks/useOnline/useOnline.cjs"),a=require("./hooks/useOperatingSystem/useOperatingSystem.cjs"),he=require("./hooks/useOptimistic/useOptimistic.cjs"),_e=require("./hooks/useOrientation/useOrientation.cjs"),Ne=require("./hooks/useOtpCredential/useOtpCredential.cjs"),Be=require("./hooks/usePageLeave/usePageLeave.cjs"),r=require("./hooks/usePaint/usePaint.cjs"),Ke=require("./hooks/useParallax/useParallax.cjs"),Fe=require("./hooks/usePerformanceObserver/usePerformanceObserver.cjs"),Ve=require("./hooks/usePermission/usePermission.cjs"),we=require("./hooks/usePointerLock/usePointerLock.cjs"),We=require("./hooks/usePostMessage/usePostMessage.cjs"),xe=require("./hooks/usePreferredColorScheme/usePreferredColorScheme.cjs"),He=require("./hooks/usePreferredContrast/usePreferredContrast.cjs"),Ue=require("./hooks/usePreferredDark/usePreferredDark.cjs"),ze=require("./hooks/usePreferredLanguages/usePreferredLanguages.cjs"),Ge=require("./hooks/usePreferredReducedMotion/usePreferredReducedMotion.cjs"),Qe=require("./hooks/usePrevious/usePrevious.cjs"),Xe=require("./hooks/useQuery/useQuery.cjs"),Ze=require("./hooks/useQueue/useQueue.cjs"),je=require("./hooks/useRaf/useRaf.cjs"),Je=require("./hooks/useRafValue/useRafValue.cjs"),Ye=require("./hooks/useRefState/useRefState.cjs"),$e=require("./hooks/useRenderCount/useRenderCount.cjs"),es=require("./hooks/useRenderInfo/useRenderInfo.cjs"),ss=require("./hooks/useRerender/useRerender.cjs"),us=require("./hooks/useResizeObserver/useResizeObserver.cjs"),rs=require("./hooks/useScreenOrientation/useScreenOrientation.cjs"),l=require("./hooks/useScript/useScript.cjs"),ts=require("./hooks/useScroll/useScroll.cjs"),os=require("./hooks/useScrollIntoView/useScrollIntoView.cjs"),is=require("./hooks/useScrollTo/useScrollTo.cjs"),ns=require("./hooks/useSessionStorage/useSessionStorage.cjs"),cs=require("./hooks/useSet/useSet.cjs"),as=require("./hooks/useShare/useShare.cjs"),q=require("./hooks/useSpeechRecognition/useSpeechRecognition.cjs"),ls=require("./hooks/useSpeechSynthesis/useSpeechSynthesis.cjs"),qs=require("./hooks/useStateHistory/useStateHistory.cjs"),Ss=require("./hooks/useStep/useStep.cjs"),ds=require("./hooks/useSticky/useSticky.cjs"),gs=require("./hooks/useStopwatch/useStopwatch.cjs"),t=require("./hooks/useStorage/useStorage.cjs"),Ts=require("./hooks/useTextDirection/useTextDirection.cjs"),S=require("./hooks/useTextSelection/useTextSelection.cjs"),Ps=require("./hooks/useThrottleCallback/useThrottleCallback.cjs"),Cs=require("./hooks/useThrottleValue/useThrottleValue.cjs"),Es=require("./hooks/useTime/useTime.cjs"),ps=require("./hooks/useTimeout/useTimeout.cjs"),d=require("./hooks/useTimer/useTimer.cjs"),ms=require("./hooks/useToggle/useToggle.cjs"),ys=require("./hooks/useUnmount/useUnmount.cjs"),Rs=require("./hooks/useVibrate/useVibrate.cjs"),Os=require("./hooks/useWakeLock/useWakeLock.cjs"),ks=require("./hooks/useWebSocket/useWebSocket.cjs"),Is=require("./hooks/useWindowEvent/useWindowEvent.cjs"),vs=require("./hooks/useWindowFocus/useWindowFocus.cjs"),g=require("./hooks/useWindowScroll/useWindowScroll.cjs"),Ds=require("./hooks/useWindowSize/useWindowSize.cjs"),bs=require("./hooks/useWizard/useWizard.cjs"),T=require("./utils/helpers/copy.cjs"),As=require("./utils/helpers/debounce.cjs"),Ls=require("./utils/helpers/getDate.cjs"),o=require("./utils/helpers/getElement.cjs"),Ms=require("./utils/helpers/getRetry.cjs"),fs=require("./utils/helpers/isTarget.cjs"),hs=require("./utils/helpers/throttle.cjs");exports.useActiveElement=P.useActiveElement;exports.useAsync=C.useAsync;exports.useBattery=E.useBattery;exports.useBluetooth=p.useBluetooth;exports.useBoolean=m.useBoolean;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.useBrowserLanguage=y.useBrowserLanguage;exports.useClickOutside=R.useClickOutside;exports.useClipboard=O.useClipboard;exports.useConst=k.useConst;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=u.clearCookies;exports.getParsedCookies=u.getParsedCookies;exports.useCookies=u.useCookies;exports.useCopy=I.useCopy;exports.useCounter=v.useCounter;exports.useCssVar=D.useCssVar;exports.useDebounceCallback=b.useDebounceCallback;exports.useDebounceValue=A.useDebounceValue;exports.useDefault=L.useDefault;exports.useDeviceMotion=M.useDeviceMotion;exports.useDeviceOrientation=f.useDeviceOrientation;exports.useDevicePixelRatio=h.useDevicePixelRatio;exports.useDidUpdate=_.useDidUpdate;exports.useDisclosure=N.useDisclosure;exports.useDisplayMedia=B.useDisplayMedia;exports.useDocumentEvent=K.useDocumentEvent;exports.useDocumentTitle=F.useDocumentTitle;exports.useDocumentVisibility=V.useDocumentVisibility;exports.useDoubleClick=w.useDoubleClick;exports.useDropZone=W.useDropZone;exports.useElementSize=x.useElementSize;exports.useEvent=H.useEvent;exports.useEventListener=U.useEventListener;exports.useEventSource=z.useEventSource;exports.useEyeDropper=G.useEyeDropper;exports.useFavicon=Q.useFavicon;exports.useField=X.useField;exports.useFileDialog=Z.useFileDialog;exports.useFocus=j.useFocus;exports.useFps=J.useFps;exports.useFul=Y.useFul;exports.useFullscreen=$.useFullscreen;exports.mapGamepadToXbox360Controller=i.mapGamepadToXbox360Controller;exports.useGamepad=i.useGamepad;exports.useGeolocation=ee.useGeolocation;exports.useHash=se.useHash;exports.isHotkeyMatch=n.isHotkeyMatch;exports.useHotkeys=n.useHotkeys;exports.useHover=ue.useHover;exports.useIdle=re.useIdle;exports.useImage=te.useImage;exports.useInfiniteScroll=oe.useInfiniteScroll;exports.useIntersectionObserver=ie.useIntersectionObserver;exports.useInterval=ne.useInterval;exports.useIsFirstRender=ce.useIsFirstRender;exports.useIsomorphicLayoutEffect=ae.useIsomorphicLayoutEffect;exports.useKeyboard=le.useKeyboard;exports.useKeyPress=qe.useKeyPress;exports.useKeyPressEvent=Se.useKeyPressEvent;exports.useKeysPressed=de.useKeysPressed;exports.useLastChanged=ge.useLastChanged;exports.useLatest=Te.useLatest;exports.useLess=Pe.useLess;exports.useList=Ce.useList;exports.useLocalStorage=Ee.useLocalStorage;exports.useLockCallback=pe.useLockCallback;exports.useLogger=me.useLogger;exports.useLongPress=ye.useLongPress;exports.useMap=Re.useMap;exports.useMeasure=Oe.useMeasure;exports.useMediaQuery=ke.useMediaQuery;exports.useMemory=Ie.useMemory;exports.useMount=ve.useMount;exports.useMouse=De.useMouse;exports.useMutation=be.useMutation;exports.useMutationObserver=Ae.useMutationObserver;exports.getConnection=c.getConnection;exports.useNetwork=c.useNetwork;exports.useOffsetPagination=Le.useOffsetPagination;exports.useOnce=Me.useOnce;exports.useOnline=fe.useOnline;exports.getOperatingSystem=a.getOperatingSystem;exports.useOperatingSystem=a.useOperatingSystem;exports.useOptimistic=he.useOptimistic;exports.useOrientation=_e.useOrientation;exports.useOtpCredential=Ne.useOtpCredential;exports.usePageLeave=Be.usePageLeave;exports.Paint=r.Paint;exports.Pointer=r.Pointer;exports.usePaint=r.usePaint;exports.useParallax=Ke.useParallax;exports.usePerformanceObserver=Fe.usePerformanceObserver;exports.usePermission=Ve.usePermission;exports.usePointerLock=we.usePointerLock;exports.usePostMessage=We.usePostMessage;exports.usePreferredColorScheme=xe.usePreferredColorScheme;exports.usePreferredContrast=He.usePreferredContrast;exports.usePreferredDark=Ue.usePreferredDark;exports.usePreferredLanguages=ze.usePreferredLanguages;exports.usePreferredReducedMotion=Ge.usePreferredReducedMotion;exports.usePrevious=Qe.usePrevious;exports.useQuery=Xe.useQuery;exports.useQueue=Ze.useQueue;exports.useRaf=je.useRaf;exports.useRafValue=Je.useRafValue;exports.useRefState=Ye.useRefState;exports.useRenderCount=$e.useRenderCount;exports.useRenderInfo=es.useRenderInfo;exports.useRerender=ss.useRerender;exports.useResizeObserver=us.useResizeObserver;exports.useScreenOrientation=rs.useScreenOrientation;exports.SCRIPT_STATUS_ATTRIBUTE_NAME=l.SCRIPT_STATUS_ATTRIBUTE_NAME;exports.useScript=l.useScript;exports.useScroll=ts.useScroll;exports.useScrollIntoView=os.useScrollIntoView;exports.useScrollTo=is.useScrollTo;exports.useSessionStorage=ns.useSessionStorage;exports.useSet=cs.useSet;exports.useShare=as.useShare;exports.getSpeechRecognition=q.getSpeechRecognition;exports.useSpeechRecognition=q.useSpeechRecognition;exports.useSpeechSynthesis=ls.useSpeechSynthesis;exports.useStateHistory=qs.useStateHistory;exports.useStep=Ss.useStep;exports.useSticky=ds.useSticky;exports.useStopwatch=gs.useStopwatch;exports.STORAGE_EVENT=t.STORAGE_EVENT;exports.dispatchStorageEvent=t.dispatchStorageEvent;exports.useStorage=t.useStorage;exports.useTextDirection=Ts.useTextDirection;exports.getRangesSelection=S.getRangesSelection;exports.useTextSelection=S.useTextSelection;exports.useThrottleCallback=Ps.useThrottleCallback;exports.useThrottleValue=Cs.useThrottleValue;exports.useTime=Es.useTime;exports.useTimeout=ps.useTimeout;exports.getTimeFromSeconds=d.getTimeFromSeconds;exports.useTimer=d.useTimer;exports.useToggle=ms.useToggle;exports.useUnmount=ys.useUnmount;exports.useVibrate=Rs.useVibrate;exports.useWakeLock=Os.useWakeLock;exports.useWebSocket=ks.useWebSocket;exports.useWindowEvent=Is.useWindowEvent;exports.useWindowFocus=vs.useWindowFocus;exports.scrollTo=g.scrollTo;exports.useWindowScroll=g.useWindowScroll;exports.useWindowSize=Ds.useWindowSize;exports.useWizard=bs.useWizard;exports.copy=T.copy;exports.legacyCopyToClipboard=T.legacyCopyToClipboard;exports.debounce=As.debounce;exports.getDate=Ls.getDate;exports.getElement=o.getElement;exports.target=o.target;exports.targetSymbol=o.targetSymbol;exports.getRetry=Ms.getRetry;exports.isTarget=fs.isTarget;exports.throttle=hs.throttle;
2
2
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useDidUpdate.mjs","sources":["../../../../src/hooks/useDidUpdate/useDidUpdate.ts"],"sourcesContent":["import type { DependencyList, EffectCallback } from 'react';\r\n\r\nimport { useRef } from 'react';\r\n\r\nimport { useIsomorphicLayoutEffect } from '../useIsomorphicLayoutEffect/useIsomorphicLayoutEffect';\r\n\r\n/**\r\n * @name useDidUpdate\r\n * @description – Hook that triggers the effect callback on updates\r\n * @category Lifecycle\r\n *\r\n * @param {EffectCallback} effect The effect callback\r\n * @param {DependencyList} [deps] The dependencies list for the effect\r\n *\r\n * @example\r\n * useDidUpdate(() => console.log(\"effect runs on updates\"), deps);\r\n */\r\nexport const useDidUpdate = (effect: EffectCallback, deps?: DependencyList) => {\r\n const mounted = useRef(false);\r\n\r\n useIsomorphicLayoutEffect(\r\n () => () => {\r\n mounted.current = false;\r\n },\r\n []\r\n );\r\n\r\n useIsomorphicLayoutEffect(() => {\r\n if (mounted.current) {\r\n return effect();\r\n }\r\n\r\n mounted.current = true;\r\n return undefined;\r\n }, deps);\r\n};\r\n"],"names":["useDidUpdate","effect","deps","mounted","useRef","useIsomorphicLayoutEffect"],"mappings":";;AAiBa,MAAAA,IAAe,CAACC,GAAwBC,MAA0B;AACvE,QAAAC,IAAUC,EAAO,EAAK;AAE5B,EAAAC;AAAA,IACE,MAAM,MAAM;AACV,MAAAF,EAAQ,UAAU;AAAA,IACpB;AAAA,IACA,CAAA;AAAA,EACF,GAEAE,EAA0B,MAAM;AAC9B,QAAIF,EAAQ;AACV,aAAOF,EAAO;AAGhB,IAAAE,EAAQ,UAAU;AAAA,KAEjBD,CAAI;AACT;"}
1
+ {"version":3,"file":"useDidUpdate.mjs","sources":["../../../../src/hooks/useDidUpdate/useDidUpdate.ts"],"sourcesContent":["import type { DependencyList, EffectCallback } from 'react';\n\nimport { useRef } from 'react';\n\nimport { useIsomorphicLayoutEffect } from '../useIsomorphicLayoutEffect/useIsomorphicLayoutEffect';\n\n/**\n * @name useDidUpdate\n * @description – Hook that triggers the effect callback on updates\n * @category Lifecycle\n *\n * @param {EffectCallback} effect The effect callback\n * @param {DependencyList} [deps] The dependencies list for the effect\n *\n * @example\n * useDidUpdate(() => console.log(\"effect runs on updates\"), deps);\n */\nexport const useDidUpdate = (effect: EffectCallback, deps?: DependencyList) => {\n const mounted = useRef(false);\n\n useIsomorphicLayoutEffect(\n () => () => {\n mounted.current = false;\n },\n []\n );\n\n useIsomorphicLayoutEffect(() => {\n if (mounted.current) {\n return effect();\n }\n\n mounted.current = true;\n return undefined;\n }, deps);\n};\n"],"names":["useDidUpdate","effect","deps","mounted","useRef","useIsomorphicLayoutEffect"],"mappings":";;AAiBa,MAAAA,IAAe,CAACC,GAAwBC,MAA0B;AACvE,QAAAC,IAAUC,EAAO,EAAK;AAE5B,EAAAC;AAAA,IACE,MAAM,MAAM;AACV,MAAAF,EAAQ,UAAU;AAAA,IACpB;AAAA,IACA,CAAA;AAAA,EACF,GAEAE,EAA0B,MAAM;AAC9B,QAAIF,EAAQ;AACV,aAAOF,EAAO;AAGhB,IAAAE,EAAQ,UAAU;AAAA,KAEjBD,CAAI;AACT;"}
@@ -1,14 +1,14 @@
1
1
  import { useRef as s, useEffect as R } from "react";
2
2
  import { useRefState as k } from "../useRefState/useRefState.mjs";
3
- import { isTarget as T } from "../../utils/helpers/isTarget.mjs";
4
- import { getElement as v } from "../../utils/helpers/getElement.mjs";
3
+ import { isTarget as v } from "../../utils/helpers/isTarget.mjs";
4
+ import { getElement as T } from "../../utils/helpers/getElement.mjs";
5
5
  const C = 300, b = (...e) => {
6
- const t = T(e[0]) ? e[0] : void 0, f = t ? e[1] : e[0], l = t ? e[2] : e[1], o = s(), r = s(0), c = k(), m = s(f);
6
+ const t = v(e[0]) ? e[0] : void 0, f = t ? e[1] : e[0], l = t ? e[2] : e[1], o = s(void 0), r = s(0), c = k(), m = s(f);
7
7
  m.current = f;
8
8
  const u = s(l);
9
9
  if (u.current = l, R(() => {
10
10
  if (!t && !c.state) return;
11
- const n = t ? v(t) : c.current;
11
+ const n = t ? T(t) : c.current;
12
12
  if (!n) return;
13
13
  const i = (d) => {
14
14
  var E;
@@ -1 +1 @@
1
- {"version":3,"file":"useDoubleClick.mjs","sources":["../../../../src/hooks/useDoubleClick/useDoubleClick.ts"],"sourcesContent":["import { useEffect, useRef } 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\nexport type DoubleClickEvents = MouseEvent | TouchEvent;\n\n// * The use double click options type */\nexport interface UseDoubleClickOptions {\n // * The threshold time in milliseconds between clicks\n threshold?: number;\n // * The callback function to be invoked on single click\n onSingleClick?: (event: DoubleClickEvents) => void;\n}\n\nexport interface UseDoubleClick {\n (\n target: HookTarget,\n callback: (event: DoubleClickEvents) => void,\n options?: UseDoubleClickOptions\n ): boolean;\n\n <Target extends Element>(\n callback: (event: DoubleClickEvents) => void,\n options?: UseDoubleClickOptions,\n target?: never\n ): StateRef<Target>;\n}\n\nconst DEFAULT_THRESHOLD_TIME = 300;\n\n/**\n * @name useDoubleClick\n * @description - Hook that defines the logic when double clicking an element\n * @category Sensors\n *\n * @overload\n * @param {HookTarget} target The target element to be double clicked\n * @param {(event: DoubleClickEvents) => void} callback The callback function to be invoked on double click\n * @param {UseDoubleClickOptions} [options] The options for the double click\n * @returns {boolean} The double clicking state\n *\n * @example\n * useDoubleClick(ref, () => console.log('double clicked'));\n *\n * @overload\n * @template Target The target element\n * @param {(event: DoubleClickEvents) => void} callback The callback function to be invoked on double click\n * @param {UseDoubleClickOptions} [options] The options for the double click\n * @returns {boolean} The double clicking state\n *\n * @example\n * const ref = useDoubleClick(() => console.log('double clicked'));\n *\n * @see {@link https://siberiacancode.github.io/reactuse/functions/hooks/useDoubleClick.html}\n */\nexport const useDoubleClick = ((...params: any[]): any => {\n const target = (isTarget(params[0]) ? params[0] : undefined) as HookTarget | undefined;\n const callback = (target ? params[1] : params[0]) as (event: DoubleClickEvents) => void;\n const options = (target ? params[2] : params[1]) as UseDoubleClickOptions | undefined;\n\n const timeoutIdRef = useRef<ReturnType<typeof setTimeout>>();\n const clickCountRef = useRef(0);\n const internalRef = useRefState<Element>();\n\n const internalCallbackRef = useRef(callback);\n internalCallbackRef.current = callback;\n const internalOptionsRef = useRef(options);\n internalOptionsRef.current = options;\n\n useEffect(() => {\n if (!target && !internalRef.state) return;\n\n const element = target ? getElement(target) : internalRef.current;\n if (!element) return;\n\n const onClick = (event: DoubleClickEvents) => {\n clickCountRef.current += 1;\n\n if (clickCountRef.current === 1) {\n timeoutIdRef.current = setTimeout(() => {\n if (internalOptionsRef.current?.onSingleClick)\n internalOptionsRef.current.onSingleClick(event);\n clickCountRef.current = 0;\n }, internalOptionsRef.current?.threshold ?? DEFAULT_THRESHOLD_TIME);\n }\n\n if (clickCountRef.current === 2) {\n clearTimeout(timeoutIdRef.current);\n internalCallbackRef.current(event);\n clickCountRef.current = 0;\n }\n };\n\n element.addEventListener('mousedown', onClick as EventListener);\n element.addEventListener('touchstart', onClick as EventListener);\n\n return () => {\n element.removeEventListener('mousedown', onClick as EventListener);\n element.removeEventListener('touchstart', onClick as EventListener);\n if (timeoutIdRef.current) clearTimeout(timeoutIdRef.current);\n };\n }, [target, internalRef.state]);\n\n if (target) return;\n return internalRef;\n}) as UseDoubleClick;\n"],"names":["DEFAULT_THRESHOLD_TIME","useDoubleClick","params","target","isTarget","callback","options","timeoutIdRef","useRef","clickCountRef","internalRef","useRefState","internalCallbackRef","internalOptionsRef","useEffect","element","getElement","onClick","event","_a"],"mappings":";;;;AAkCA,MAAMA,IAAyB,KA2BlBC,IAAkB,IAAIC,MAAuB;AAClD,QAAAC,IAAUC,EAASF,EAAO,CAAC,CAAC,IAAIA,EAAO,CAAC,IAAI,QAC5CG,IAAYF,IAASD,EAAO,CAAC,IAAIA,EAAO,CAAC,GACzCI,IAAWH,IAASD,EAAO,CAAC,IAAIA,EAAO,CAAC,GAExCK,IAAeC,EAAsC,GACrDC,IAAgBD,EAAO,CAAC,GACxBE,IAAcC,EAAqB,GAEnCC,IAAsBJ,EAAOH,CAAQ;AAC3C,EAAAO,EAAoB,UAAUP;AACxB,QAAAQ,IAAqBL,EAAOF,CAAO;AAqCzC,MApCAO,EAAmB,UAAUP,GAE7BQ,EAAU,MAAM;AACd,QAAI,CAACX,KAAU,CAACO,EAAY,MAAO;AAEnC,UAAMK,IAAUZ,IAASa,EAAWb,CAAM,IAAIO,EAAY;AAC1D,QAAI,CAACK,EAAS;AAER,UAAAE,IAAU,CAACC,MAA6B;;AAC5C,MAAAT,EAAc,WAAW,GAErBA,EAAc,YAAY,MACfF,EAAA,UAAU,WAAW,MAAM;;AACtC,SAAIY,IAAAN,EAAmB,YAAnB,QAAAM,EAA4B,iBACXN,EAAA,QAAQ,cAAcK,CAAK,GAChDT,EAAc,UAAU;AAAA,MACvB,KAAAU,IAAAN,EAAmB,YAAnB,gBAAAM,EAA4B,cAAanB,CAAsB,IAGhES,EAAc,YAAY,MAC5B,aAAaF,EAAa,OAAO,GACjCK,EAAoB,QAAQM,CAAK,GACjCT,EAAc,UAAU;AAAA,IAE5B;AAEQ,WAAAM,EAAA,iBAAiB,aAAaE,CAAwB,GACtDF,EAAA,iBAAiB,cAAcE,CAAwB,GAExD,MAAM;AACH,MAAAF,EAAA,oBAAoB,aAAaE,CAAwB,GACzDF,EAAA,oBAAoB,cAAcE,CAAwB,GAC9DV,EAAa,WAAsB,aAAAA,EAAa,OAAO;AAAA,IAC7D;AAAA,EACC,GAAA,CAACJ,GAAQO,EAAY,KAAK,CAAC,GAE1B,CAAAP;AACG,WAAAO;AACT;"}
1
+ {"version":3,"file":"useDoubleClick.mjs","sources":["../../../../src/hooks/useDoubleClick/useDoubleClick.ts"],"sourcesContent":["import { useEffect, useRef } 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\nexport type DoubleClickEvents = MouseEvent | TouchEvent;\n\n// * The use double click options type */\nexport interface UseDoubleClickOptions {\n // * The threshold time in milliseconds between clicks\n threshold?: number;\n // * The callback function to be invoked on single click\n onSingleClick?: (event: DoubleClickEvents) => void;\n}\n\nexport interface UseDoubleClick {\n (\n target: HookTarget,\n callback: (event: DoubleClickEvents) => void,\n options?: UseDoubleClickOptions\n ): boolean;\n\n <Target extends Element>(\n callback: (event: DoubleClickEvents) => void,\n options?: UseDoubleClickOptions,\n target?: never\n ): StateRef<Target>;\n}\n\nconst DEFAULT_THRESHOLD_TIME = 300;\n\n/**\n * @name useDoubleClick\n * @description - Hook that defines the logic when double clicking an element\n * @category Sensors\n *\n * @overload\n * @param {HookTarget} target The target element to be double clicked\n * @param {(event: DoubleClickEvents) => void} callback The callback function to be invoked on double click\n * @param {UseDoubleClickOptions} [options] The options for the double click\n * @returns {boolean} The double clicking state\n *\n * @example\n * useDoubleClick(ref, () => console.log('double clicked'));\n *\n * @overload\n * @template Target The target element\n * @param {(event: DoubleClickEvents) => void} callback The callback function to be invoked on double click\n * @param {UseDoubleClickOptions} [options] The options for the double click\n * @returns {boolean} The double clicking state\n *\n * @example\n * const ref = useDoubleClick(() => console.log('double clicked'));\n *\n * @see {@link https://siberiacancode.github.io/reactuse/functions/hooks/useDoubleClick.html}\n */\nexport const useDoubleClick = ((...params: any[]): any => {\n const target = (isTarget(params[0]) ? params[0] : undefined) as HookTarget | undefined;\n const callback = (target ? params[1] : params[0]) as (event: DoubleClickEvents) => void;\n const options = (target ? params[2] : params[1]) as UseDoubleClickOptions | undefined;\n\n const timeoutIdRef = useRef<ReturnType<typeof setTimeout>>(undefined);\n const clickCountRef = useRef(0);\n const internalRef = useRefState<Element>();\n\n const internalCallbackRef = useRef(callback);\n internalCallbackRef.current = callback;\n const internalOptionsRef = useRef(options);\n internalOptionsRef.current = options;\n\n useEffect(() => {\n if (!target && !internalRef.state) return;\n\n const element = target ? getElement(target) : internalRef.current;\n if (!element) return;\n\n const onClick = (event: DoubleClickEvents) => {\n clickCountRef.current += 1;\n\n if (clickCountRef.current === 1) {\n timeoutIdRef.current = setTimeout(() => {\n if (internalOptionsRef.current?.onSingleClick)\n internalOptionsRef.current.onSingleClick(event);\n clickCountRef.current = 0;\n }, internalOptionsRef.current?.threshold ?? DEFAULT_THRESHOLD_TIME);\n }\n\n if (clickCountRef.current === 2) {\n clearTimeout(timeoutIdRef.current);\n internalCallbackRef.current(event);\n clickCountRef.current = 0;\n }\n };\n\n element.addEventListener('mousedown', onClick as EventListener);\n element.addEventListener('touchstart', onClick as EventListener);\n\n return () => {\n element.removeEventListener('mousedown', onClick as EventListener);\n element.removeEventListener('touchstart', onClick as EventListener);\n if (timeoutIdRef.current) clearTimeout(timeoutIdRef.current);\n };\n }, [target, internalRef.state]);\n\n if (target) return;\n return internalRef;\n}) as UseDoubleClick;\n"],"names":["DEFAULT_THRESHOLD_TIME","useDoubleClick","params","target","isTarget","callback","options","timeoutIdRef","useRef","clickCountRef","internalRef","useRefState","internalCallbackRef","internalOptionsRef","useEffect","element","getElement","onClick","event","_a"],"mappings":";;;;AAkCA,MAAMA,IAAyB,KA2BlBC,IAAkB,IAAIC,MAAuB;AAClD,QAAAC,IAAUC,EAASF,EAAO,CAAC,CAAC,IAAIA,EAAO,CAAC,IAAI,QAC5CG,IAAYF,IAASD,EAAO,CAAC,IAAIA,EAAO,CAAC,GACzCI,IAAWH,IAASD,EAAO,CAAC,IAAIA,EAAO,CAAC,GAExCK,IAAeC,EAAsC,MAAS,GAC9DC,IAAgBD,EAAO,CAAC,GACxBE,IAAcC,EAAqB,GAEnCC,IAAsBJ,EAAOH,CAAQ;AAC3C,EAAAO,EAAoB,UAAUP;AACxB,QAAAQ,IAAqBL,EAAOF,CAAO;AAqCzC,MApCAO,EAAmB,UAAUP,GAE7BQ,EAAU,MAAM;AACd,QAAI,CAACX,KAAU,CAACO,EAAY,MAAO;AAEnC,UAAMK,IAAUZ,IAASa,EAAWb,CAAM,IAAIO,EAAY;AAC1D,QAAI,CAACK,EAAS;AAER,UAAAE,IAAU,CAACC,MAA6B;;AAC5C,MAAAT,EAAc,WAAW,GAErBA,EAAc,YAAY,MACfF,EAAA,UAAU,WAAW,MAAM;;AACtC,SAAIY,IAAAN,EAAmB,YAAnB,QAAAM,EAA4B,iBACXN,EAAA,QAAQ,cAAcK,CAAK,GAChDT,EAAc,UAAU;AAAA,MACvB,KAAAU,IAAAN,EAAmB,YAAnB,gBAAAM,EAA4B,cAAanB,CAAsB,IAGhES,EAAc,YAAY,MAC5B,aAAaF,EAAa,OAAO,GACjCK,EAAoB,QAAQM,CAAK,GACjCT,EAAc,UAAU;AAAA,IAE5B;AAEQ,WAAAM,EAAA,iBAAiB,aAAaE,CAAwB,GACtDF,EAAA,iBAAiB,cAAcE,CAAwB,GAExD,MAAM;AACH,MAAAF,EAAA,oBAAoB,aAAaE,CAAwB,GACzDF,EAAA,oBAAoB,cAAcE,CAAwB,GAC9DV,EAAa,WAAsB,aAAAA,EAAa,OAAO;AAAA,IAC7D;AAAA,EACC,GAAA,CAACJ,GAAQO,EAAY,KAAK,CAAC,GAE1B,CAAAP;AACG,WAAAO;AACT;"}
@@ -0,0 +1,50 @@
1
+ import { useRef as b, useState as h, useEffect as j } from "react";
2
+ import { useRefState as k } from "../useRefState/useRefState.mjs";
3
+ import { isTarget as A } from "../../utils/helpers/isTarget.mjs";
4
+ import { getElement as S } from "../../utils/helpers/getElement.mjs";
5
+ const B = (...o) => {
6
+ const s = A(o[0]) ? o[0] : void 0, t = s ? typeof o[1] == "object" ? o[1] : { onDrop: o[1] } : typeof o[0] == "object" ? o[0] : { onDrop: o[0] }, u = k(), c = b(0), [g, V] = h(null), [E, v] = h(!1), a = t.dataTypes, F = (e) => {
7
+ if (!e.dataTransfer) return null;
8
+ const n = Array.from(e.dataTransfer.files);
9
+ return t.multiple ? n : n.length ? [n[0]] : null;
10
+ }, R = (e) => a ? typeof a == "function" ? a(e) : a.length ? e.length ? e.every((n) => (console.log("type", n), console.log("dataTypes", a), a.some((f) => n.includes(f)))) : !1 : !0 : !0, O = (e) => {
11
+ const n = Array.from(e).map((l) => l.type), f = R(n), i = t.multiple || e.length <= 1;
12
+ return f && i;
13
+ };
14
+ return j(() => {
15
+ if (!s && !u.state) return;
16
+ const e = s ? S(s) : u.current;
17
+ if (!e) return;
18
+ const n = (r, d) => {
19
+ var T, y, D, L;
20
+ if (!r.dataTransfer) return;
21
+ if (!O(r.dataTransfer.items)) {
22
+ r.dataTransfer.dropEffect = "none";
23
+ return;
24
+ }
25
+ r.preventDefault(), r.dataTransfer.dropEffect = "copy";
26
+ const p = F(r);
27
+ if (d === "drop") {
28
+ c.current = 0, v(!1), V(p), (T = t.onDrop) == null || T.call(t, p, r);
29
+ return;
30
+ }
31
+ if (d === "enter") {
32
+ c.current += 1, v(!0), (y = t.onEnter) == null || y.call(t, r);
33
+ return;
34
+ }
35
+ if (d === "leave") {
36
+ if (c.current -= 1, c.current !== 0) return;
37
+ v(!1), (D = t.onLeave) == null || D.call(t, r);
38
+ return;
39
+ }
40
+ d === "over" && ((L = t.onOver) == null || L.call(t, r));
41
+ }, f = (r) => n(r, "drop"), i = (r) => n(r, "over"), l = (r) => n(r, "enter"), m = (r) => n(r, "leave");
42
+ return e.addEventListener("dragenter", l), e.addEventListener("dragover", i), e.addEventListener("dragleave", m), e.addEventListener("drop", f), () => {
43
+ e.removeEventListener("dragenter", l), e.removeEventListener("dragover", i), e.removeEventListener("dragleave", m), e.removeEventListener("drop", f);
44
+ };
45
+ }, [s, u.current]), s ? { overed: E, files: g } : { ref: u, overed: E, files: g };
46
+ };
47
+ export {
48
+ B as useDropZone
49
+ };
50
+ //# sourceMappingURL=useDropZone.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDropZone.mjs","sources":["../../../../src/hooks/useDropZone/useDropZone.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\nexport type DropZoneDataTypes = ((types: string[]) => boolean) | string[];\n\nexport interface UseDropZoneOptions {\n /** The data types for drop zone */\n dataTypes?: DropZoneDataTypes;\n /** The multiple mode for drop zone */\n multiple?: boolean;\n /** The on drop callback */\n onDrop?: (files: File[] | null, event: DragEvent) => void;\n /** The on enter callback */\n onEnter?: (event: DragEvent) => void;\n /** The on leave callback */\n onLeave?: (event: DragEvent) => void;\n /** The on over callback */\n onOver?: (event: DragEvent) => void;\n}\n\nexport interface UseDropZoneReturn {\n /** The files that was dropped in drop zone */\n files: File[] | null;\n /** The over drop zone status */\n overed: boolean;\n}\n\nexport interface UseDropZone {\n (\n target: HookTarget,\n callback?: (files: File[] | null, event: DragEvent) => void\n ): UseDropZoneReturn;\n\n <Target extends Element>(\n callback?: (files: File[] | null, event: DragEvent) => void,\n target?: never\n ): UseDropZoneReturn & {\n ref: StateRef<Target>;\n };\n\n (target: HookTarget, options?: UseDropZoneOptions): UseDropZoneReturn;\n\n <Target extends Element>(\n options?: UseDropZoneOptions,\n target?: never\n ): UseDropZoneReturn & {\n ref: StateRef<Target>;\n };\n}\n\n/**\n * @name useDropZone\n * @description - Hook that provides drop zone functionality\n * @category Elements\n *\n * @overload\n * @template Target The target element\n * @param {Target} target The target element drop zone's\n * @param {DataTypes} [options.dataTypes] The data types\n * @param {boolean} [options.multiple] The multiple mode\n * @param {(files: File[] | null, event: DragEvent) => void} [options.onDrop] The on drop callback function\n * @param {(event: DragEvent) => void} [options.onEnter] The on enter callback function\n * @param {(event: DragEvent) => void} [options.onLeave] The on leave callback function\n * @param {(event: DragEvent) => void} [options.onOver] The on over callback function\n * @returns {[boolean, File[] | null]} The object with drop zone states\n *\n * @example\n * const { overed, files } = useDropZone(ref, options);\n *\n * @overload\n * @param {Target} target The target element drop zone's\n * @param {(files: File[] | null, event: DragEvent) => void} [callback] The callback function to be invoked on drop\n * @returns {[boolean, File[] | null]} The object with drop zone states\n *\n * @example\n * const { overed, files } = useDropZone(ref, () => console.log('callback'));\n *\n * @overload\n * @param {DataTypes} [options.dataTypes] The data types\n * @param {boolean} [options.multiple] The multiple mode\n * @param {(files: File[] | null, event: DragEvent) => void} [options.onDrop] The on drop callback function\n * @param {(event: DragEvent) => void} [options.onEnter] The on enter callback function\n * @param {(event: DragEvent) => void} [options.onLeave] The on leave callback function\n * @param {(event: DragEvent) => void} [options.onOver] The on over callback function\n * @returns {[StateRef<Target>, boolean, File[] | null]} The object with drop zone states and ref\n *\n * @example\n * const { ref, overed, files } = useDropZone(options);\n *\n * @overload\n * @param {(files: File[] | null, event: DragEvent) => void} [callback] The callback function to be invoked on drop\n * @returns {[StateRef<Target>, boolean, File[] | null]} The object with drop zone states and ref\n *\n * @example\n * const { ref, overed, files } = useDropZone(() => console.log('callback'));\n */\n\nexport const useDropZone = ((...params: any[]) => {\n const target = (isTarget(params[0]) ? params[0] : undefined) as HookTarget | undefined;\n\n const options = (\n target\n ? typeof params[1] === 'object'\n ? params[1]\n : { onDrop: params[1] }\n : typeof params[0] === 'object'\n ? params[0]\n : { onDrop: params[0] }\n ) as UseDropZoneOptions;\n\n const internalRef = useRefState<Element>();\n\n const counterRef = useRef(0);\n const [files, setFiles] = useState<File[] | null>(null);\n const [overed, setOvered] = useState(false);\n\n const dataTypes = options.dataTypes;\n\n const getFiles = (event: DragEvent) => {\n if (!event.dataTransfer) return null;\n const list = Array.from(event.dataTransfer.files);\n if (options.multiple) return list;\n if (!list.length) return null;\n return [list[0]];\n };\n\n const checkDataTypes = (types: string[]) => {\n if (!dataTypes) return true;\n if (typeof dataTypes === 'function') return dataTypes(types);\n if (!dataTypes.length) return true;\n if (!types.length) return false;\n\n return types.every((type) => {\n console.log('type', type);\n console.log('dataTypes', dataTypes);\n return dataTypes.some((dataType) => type.includes(dataType));\n });\n };\n\n const checkValidity = (items: DataTransferItemList) => {\n const types = Array.from(items).map((item) => item.type);\n const dataTypesValid = checkDataTypes(types);\n const multipleFilesValid = options.multiple || items.length <= 1;\n\n return dataTypesValid && multipleFilesValid;\n };\n\n useEffect(() => {\n if (!target && !internalRef.state) return;\n\n const element = target ? getElement(target) : internalRef.current;\n\n if (!element) return;\n\n const onEvent = (event: DragEvent, type: 'drop' | 'enter' | 'leave' | 'over') => {\n if (!event.dataTransfer) return;\n\n const isValid = checkValidity(event.dataTransfer.items);\n if (!isValid) {\n event.dataTransfer.dropEffect = 'none';\n return;\n }\n\n event.preventDefault();\n event.dataTransfer.dropEffect = 'copy';\n\n const currentFiles = getFiles(event);\n\n if (type === 'drop') {\n counterRef.current = 0;\n setOvered(false);\n setFiles(currentFiles);\n options.onDrop?.(currentFiles, event);\n return;\n }\n\n if (type === 'enter') {\n counterRef.current += 1;\n setOvered(true);\n options.onEnter?.(event);\n return;\n }\n\n if (type === 'leave') {\n counterRef.current -= 1;\n if (counterRef.current !== 0) return;\n setOvered(false);\n options.onLeave?.(event);\n return;\n }\n\n if (type === 'over') options.onOver?.(event);\n };\n\n const onDrop = ((event: DragEvent) => onEvent(event, 'drop')) as EventListener;\n const onDragOver = ((event: DragEvent) => onEvent(event, 'over')) as EventListener;\n const onDragEnter = ((event: DragEvent) => onEvent(event, 'enter')) as EventListener;\n const onDragLeave = ((event: DragEvent) => onEvent(event, 'leave')) as EventListener;\n\n element.addEventListener('dragenter', onDragEnter);\n element.addEventListener('dragover', onDragOver);\n element.addEventListener('dragleave', onDragLeave);\n element.addEventListener('drop', onDrop);\n\n return () => {\n element.removeEventListener('dragenter', onDragEnter);\n element.removeEventListener('dragover', onDragOver);\n element.removeEventListener('dragleave', onDragLeave);\n element.removeEventListener('drop', onDrop);\n };\n }, [target, internalRef.current]);\n\n if (target) return { overed, files };\n return { ref: internalRef, overed, files };\n}) as UseDropZone;\n"],"names":["useDropZone","params","target","isTarget","options","internalRef","useRefState","counterRef","useRef","files","setFiles","useState","overed","setOvered","dataTypes","getFiles","event","list","checkDataTypes","types","type","dataType","checkValidity","items","item","dataTypesValid","multipleFilesValid","useEffect","element","getElement","onEvent","currentFiles","_a","_b","_c","_d","onDrop","onDragOver","onDragEnter","onDragLeave"],"mappings":";;;;AAwGa,MAAAA,IAAe,IAAIC,MAAkB;AAC1C,QAAAC,IAAUC,EAASF,EAAO,CAAC,CAAC,IAAIA,EAAO,CAAC,IAAI,QAE5CG,IACJF,IACI,OAAOD,EAAO,CAAC,KAAM,WACnBA,EAAO,CAAC,IACR,EAAE,QAAQA,EAAO,CAAC,EAAE,IACtB,OAAOA,EAAO,CAAC,KAAM,WACnBA,EAAO,CAAC,IACR,EAAE,QAAQA,EAAO,CAAC,EAAE,GAGtBI,IAAcC,EAAqB,GAEnCC,IAAaC,EAAO,CAAC,GACrB,CAACC,GAAOC,CAAQ,IAAIC,EAAwB,IAAI,GAChD,CAACC,GAAQC,CAAS,IAAIF,EAAS,EAAK,GAEpCG,IAAYV,EAAQ,WAEpBW,IAAW,CAACC,MAAqB;AACjC,QAAA,CAACA,EAAM,aAAqB,QAAA;AAChC,UAAMC,IAAO,MAAM,KAAKD,EAAM,aAAa,KAAK;AAC5C,WAAAZ,EAAQ,WAAiBa,IACxBA,EAAK,SACH,CAACA,EAAK,CAAC,CAAC,IADU;AAAA,EAE3B,GAEMC,IAAiB,CAACC,MACjBL,IACD,OAAOA,KAAc,aAAmBA,EAAUK,CAAK,IACtDL,EAAU,SACVK,EAAM,SAEJA,EAAM,MAAM,CAACC,OACV,QAAA,IAAI,QAAQA,CAAI,GAChB,QAAA,IAAI,aAAaN,CAAS,GAC3BA,EAAU,KAAK,CAACO,MAAaD,EAAK,SAASC,CAAQ,CAAC,EAC5D,IANyB,KADI,KAFP,IAYnBC,IAAgB,CAACC,MAAgC;AAC/C,UAAAJ,IAAQ,MAAM,KAAKI,CAAK,EAAE,IAAI,CAACC,MAASA,EAAK,IAAI,GACjDC,IAAiBP,EAAeC,CAAK,GACrCO,IAAqBtB,EAAQ,YAAYmB,EAAM,UAAU;AAE/D,WAAOE,KAAkBC;AAAA,EAC3B;AAmEA,SAjEAC,EAAU,MAAM;AACd,QAAI,CAACzB,KAAU,CAACG,EAAY,MAAO;AAEnC,UAAMuB,IAAU1B,IAAS2B,EAAW3B,CAAM,IAAIG,EAAY;AAE1D,QAAI,CAACuB,EAAS;AAER,UAAAE,IAAU,CAACd,GAAkBI,MAA8C;;AAC3E,UAAA,CAACJ,EAAM,aAAc;AAGzB,UAAI,CADYM,EAAcN,EAAM,aAAa,KAAK,GACxC;AACZ,QAAAA,EAAM,aAAa,aAAa;AAChC;AAAA,MAAA;AAGF,MAAAA,EAAM,eAAe,GACrBA,EAAM,aAAa,aAAa;AAE1B,YAAAe,IAAehB,EAASC,CAAK;AAEnC,UAAII,MAAS,QAAQ;AACnB,QAAAb,EAAW,UAAU,GACrBM,EAAU,EAAK,GACfH,EAASqB,CAAY,IACbC,IAAA5B,EAAA,WAAA,QAAA4B,EAAA,KAAA5B,GAAS2B,GAAcf;AAC/B;AAAA,MAAA;AAGF,UAAII,MAAS,SAAS;AACpB,QAAAb,EAAW,WAAW,GACtBM,EAAU,EAAI,IACdoB,IAAA7B,EAAQ,YAAR,QAAA6B,EAAA,KAAA7B,GAAkBY;AAClB;AAAA,MAAA;AAGF,UAAII,MAAS,SAAS;AAEhB,YADJb,EAAW,WAAW,GAClBA,EAAW,YAAY,EAAG;AAC9B,QAAAM,EAAU,EAAK,IACfqB,IAAA9B,EAAQ,YAAR,QAAA8B,EAAA,KAAA9B,GAAkBY;AAClB;AAAA,MAAA;AAGF,MAAII,MAAS,YAAgBe,IAAA/B,EAAA,WAAA,QAAA+B,EAAA,KAAA/B,GAASY;AAAA,IACxC,GAEMoB,IAAU,CAACpB,MAAqBc,EAAQd,GAAO,MAAM,GACrDqB,IAAc,CAACrB,MAAqBc,EAAQd,GAAO,MAAM,GACzDsB,IAAe,CAACtB,MAAqBc,EAAQd,GAAO,OAAO,GAC3DuB,IAAe,CAACvB,MAAqBc,EAAQd,GAAO,OAAO;AAEzD,WAAAY,EAAA,iBAAiB,aAAaU,CAAW,GACzCV,EAAA,iBAAiB,YAAYS,CAAU,GACvCT,EAAA,iBAAiB,aAAaW,CAAW,GACzCX,EAAA,iBAAiB,QAAQQ,CAAM,GAEhC,MAAM;AACH,MAAAR,EAAA,oBAAoB,aAAaU,CAAW,GAC5CV,EAAA,oBAAoB,YAAYS,CAAU,GAC1CT,EAAA,oBAAoB,aAAaW,CAAW,GAC5CX,EAAA,oBAAoB,QAAQQ,CAAM;AAAA,IAC5C;AAAA,EACC,GAAA,CAAClC,GAAQG,EAAY,OAAO,CAAC,GAE5BH,IAAe,EAAE,QAAAU,GAAQ,OAAAH,EAAM,IAC5B,EAAE,KAAKJ,GAAa,QAAAO,GAAQ,OAAAH,EAAM;AAC3C;"}
@@ -0,0 +1,52 @@
1
+ import { useState as l, useRef as S, useEffect as T } from "react";
2
+ import { getRetry as h } from "../../utils/helpers/getRetry.mjs";
3
+ const k = (R, w = [], e = {}) => {
4
+ const [I, y] = l(!1), [O, m] = l(!1), [x, D] = l(!1), d = S(e != null && e.retry ? h(e.retry) : 0), [L, g] = l(void 0), [M, v] = l(e == null ? void 0 : e.placeholderData), c = S(void 0), C = e.immediately ?? !0, t = () => {
5
+ c.current && (c.current.close(), c.current = void 0, m(!1), y(!1), D(!1));
6
+ }, E = () => {
7
+ t();
8
+ const u = new EventSource(R, { withCredentials: e.withCredentials ?? !1 });
9
+ c.current = u, y(!0), u.onopen = () => {
10
+ var r;
11
+ m(!0), y(!1), g(void 0), (r = e == null ? void 0 : e.onOpen) == null || r.call(e);
12
+ }, u.onerror = (r) => {
13
+ var a;
14
+ if (m(!1), y(!1), D(!0), g(r), (a = e == null ? void 0 : e.onError) == null || a.call(e, r), d.current > 0) {
15
+ d.current -= 1;
16
+ const f = typeof (e == null ? void 0 : e.retryDelay) == "function" ? e == null ? void 0 : e.retryDelay(d.current, r) : e == null ? void 0 : e.retryDelay;
17
+ if (f) {
18
+ setTimeout(E, f);
19
+ return;
20
+ }
21
+ }
22
+ d.current = e != null && e.retry ? h(e.retry) : 0;
23
+ }, u.onmessage = (r) => {
24
+ var f;
25
+ const a = e != null && e.select ? e == null ? void 0 : e.select(r.data) : r.data;
26
+ v(a), (f = e == null ? void 0 : e.onMessage) == null || f.call(e, r);
27
+ }, w.forEach((r) => {
28
+ u.addEventListener(r, (a) => {
29
+ v(a.data);
30
+ });
31
+ });
32
+ };
33
+ return T(() => {
34
+ if (C)
35
+ return E(), () => {
36
+ t();
37
+ };
38
+ }, [C]), {
39
+ instance: c.current,
40
+ data: M,
41
+ error: L,
42
+ isConnecting: I,
43
+ isOpen: O,
44
+ isError: x,
45
+ close: t,
46
+ open: E
47
+ };
48
+ };
49
+ export {
50
+ k as useEventSource
51
+ };
52
+ //# sourceMappingURL=useEventSource.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useEventSource.mjs","sources":["../../../../src/hooks/useEventSource/useEventSource.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\n\nimport { getRetry } from '@/utils/helpers';\n\n/** The use event source options type */\nexport interface UseEventSourceOptions<QueryData, Data> extends EventSourceInit {\n /** Immediately open the connection when calling this hook */\n immediately?: boolean;\n /* The placeholder data for the hook */\n placeholderData?: (() => Data) | Data;\n /* The retry count of requests */\n retry?: boolean | number;\n /* The retry delay of requests */\n retryDelay?: ((retry: number, event: Event) => number) | number;\n /* The onError function to be invoked */\n onError?: (error: Event) => void;\n /* The onMessage function to be invoked */\n onMessage?: (event: Event & { data?: Data }) => void;\n /* The onOpen function to be invoked */\n onOpen?: () => void;\n /* The select function to be invoked */\n select?: (data: QueryData) => Data;\n}\n\n/** The use event source return type */\ninterface UseEventSourceReturn<Data = any> {\n /** The latest data received via the EventSource */\n data?: Data;\n /** The current error */\n error?: Event;\n /** The instance of the EventSource */\n instance?: EventSource;\n /* The connecting state of the query */\n isConnecting: boolean;\n /* The error state of the query */\n isError: boolean;\n /* The open state of the query */\n isOpen: boolean;\n /** Closes the EventSource connection gracefully */\n close: () => void;\n /** Reopen the EventSource connection */\n open: () => void;\n}\n\n/**\n * @name useEventSource\n * @description - Hook that provides a reactive wrapper for event source\n * @category Browser\n *\n * @browserapi EventSource https://developer.mozilla.org/en-US/docs/Web/API/EventSource\n *\n * @param {string | URL} url The URL of the EventSource\n * @param {string[]} [events=[]] List of events to listen to\n * @param {UseEventSourceOptions} [options={}] Configuration options\n * @returns {UseEventSourceReturn<Data>} The EventSource state and controls\n *\n * @example\n * const { instance, data, isConnecting, isOpen, isError, close, open } = useEventSource('url', ['message']);\n */\nexport const useEventSource = <QueryData = any, Data = QueryData>(\n url: string | URL,\n events: string[] = [],\n options: UseEventSourceOptions<QueryData, Data> = {}\n): UseEventSourceReturn<Data> => {\n const [isConnecting, setIsConnecting] = useState(false);\n const [isOpen, setIsOpen] = useState(false);\n const [isError, setIsError] = useState(false);\n\n const retryCountRef = useRef(options?.retry ? getRetry(options.retry) : 0);\n const [error, setError] = useState<Event | undefined>(undefined);\n const [data, setData] = useState<Data | undefined>(options?.placeholderData);\n\n const eventSourceRef = useRef<EventSource>(undefined);\n\n const immediately = options.immediately ?? true;\n\n const close = () => {\n if (!eventSourceRef.current) return;\n\n eventSourceRef.current.close();\n eventSourceRef.current = undefined;\n setIsOpen(false);\n setIsConnecting(false);\n setIsError(false);\n };\n\n const open = () => {\n close();\n\n const eventSource = new EventSource(url, { withCredentials: options.withCredentials ?? false });\n eventSourceRef.current = eventSource;\n\n setIsConnecting(true);\n\n eventSource.onopen = () => {\n setIsOpen(true);\n setIsConnecting(false);\n setError(undefined);\n options?.onOpen?.();\n };\n\n eventSource.onerror = (event) => {\n setIsOpen(false);\n setIsConnecting(false);\n setIsError(true);\n setError(event);\n options?.onError?.(event);\n\n if (retryCountRef.current > 0) {\n retryCountRef.current -= 1;\n\n const retryDelay =\n typeof options?.retryDelay === 'function'\n ? options?.retryDelay(retryCountRef.current, event)\n : options?.retryDelay;\n\n if (retryDelay) {\n setTimeout(open, retryDelay);\n return;\n }\n }\n\n retryCountRef.current = options?.retry ? getRetry(options.retry) : 0;\n };\n\n eventSource.onmessage = (event) => {\n const data = options?.select ? options?.select(event.data) : event.data;\n setData(data);\n options?.onMessage?.(event);\n };\n\n events.forEach((eventName) => {\n eventSource.addEventListener(eventName, (event: Event & { data?: Data }) => {\n setData(event.data);\n });\n });\n };\n\n useEffect(() => {\n if (!immediately) return;\n\n open();\n return () => {\n close();\n };\n }, [immediately]);\n\n return {\n instance: eventSourceRef.current,\n data,\n error,\n isConnecting,\n isOpen,\n isError,\n close,\n open\n };\n};\n"],"names":["useEventSource","url","events","options","isConnecting","setIsConnecting","useState","isOpen","setIsOpen","isError","setIsError","retryCountRef","useRef","getRetry","error","setError","data","setData","eventSourceRef","immediately","close","open","eventSource","_a","event","retryDelay","eventName","useEffect"],"mappings":";;AA2Da,MAAAA,IAAiB,CAC5BC,GACAC,IAAmB,CAAA,GACnBC,IAAkD,CAAA,MACnB;AAC/B,QAAM,CAACC,GAAcC,CAAe,IAAIC,EAAS,EAAK,GAChD,CAACC,GAAQC,CAAS,IAAIF,EAAS,EAAK,GACpC,CAACG,GAASC,CAAU,IAAIJ,EAAS,EAAK,GAEtCK,IAAgBC,EAAOT,KAAA,QAAAA,EAAS,QAAQU,EAASV,EAAQ,KAAK,IAAI,CAAC,GACnE,CAACW,GAAOC,CAAQ,IAAIT,EAA4B,MAAS,GACzD,CAACU,GAAMC,CAAO,IAAIX,EAA2BH,KAAA,gBAAAA,EAAS,eAAe,GAErEe,IAAiBN,EAAoB,MAAS,GAE9CO,IAAchB,EAAQ,eAAe,IAErCiB,IAAQ,MAAM;AACd,IAACF,EAAe,YAEpBA,EAAe,QAAQ,MAAM,GAC7BA,EAAe,UAAU,QACzBV,EAAU,EAAK,GACfH,EAAgB,EAAK,GACrBK,EAAW,EAAK;AAAA,EAClB,GAEMW,IAAO,MAAM;AACX,IAAAD,EAAA;AAEA,UAAAE,IAAc,IAAI,YAAYrB,GAAK,EAAE,iBAAiBE,EAAQ,mBAAmB,IAAO;AAC9F,IAAAe,EAAe,UAAUI,GAEzBjB,EAAgB,EAAI,GAEpBiB,EAAY,SAAS,MAAM;;AACzB,MAAAd,EAAU,EAAI,GACdH,EAAgB,EAAK,GACrBU,EAAS,MAAS,IAClBQ,IAAApB,KAAA,gBAAAA,EAAS,WAAT,QAAAoB,EAAA,KAAApB;AAAA,IACF,GAEYmB,EAAA,UAAU,CAACE,MAAU;;AAO3B,UANJhB,EAAU,EAAK,GACfH,EAAgB,EAAK,GACrBK,EAAW,EAAI,GACfK,EAASS,CAAK,IACdD,IAAApB,KAAA,gBAAAA,EAAS,YAAT,QAAAoB,EAAA,KAAApB,GAAmBqB,IAEfb,EAAc,UAAU,GAAG;AAC7B,QAAAA,EAAc,WAAW;AAEnB,cAAAc,IACJ,QAAOtB,KAAA,gBAAAA,EAAS,eAAe,aAC3BA,KAAA,gBAAAA,EAAS,WAAWQ,EAAc,SAASa,KAC3CrB,KAAA,gBAAAA,EAAS;AAEf,YAAIsB,GAAY;AACd,qBAAWJ,GAAMI,CAAU;AAC3B;AAAA,QAAA;AAAA,MACF;AAGF,MAAAd,EAAc,UAAUR,KAAA,QAAAA,EAAS,QAAQU,EAASV,EAAQ,KAAK,IAAI;AAAA,IACrE,GAEYmB,EAAA,YAAY,CAACE,MAAU;;AAC3BR,YAAAA,IAAOb,KAAA,QAAAA,EAAS,SAASA,KAAA,gBAAAA,EAAS,OAAOqB,EAAM,QAAQA,EAAM;AACnE,MAAAP,EAAQD,CAAI,IACZO,IAAApB,KAAA,gBAAAA,EAAS,cAAT,QAAAoB,EAAA,KAAApB,GAAqBqB;AAAA,IACvB,GAEOtB,EAAA,QAAQ,CAACwB,MAAc;AAChB,MAAAJ,EAAA,iBAAiBI,GAAW,CAACF,MAAmC;AAC1E,QAAAP,EAAQO,EAAM,IAAI;AAAA,MAAA,CACnB;AAAA,IAAA,CACF;AAAA,EACH;AAEA,SAAAG,EAAU,MAAM;AACd,QAAKR;AAEA,aAAAE,EAAA,GACE,MAAM;AACL,QAAAD,EAAA;AAAA,MACR;AAAA,EAAA,GACC,CAACD,CAAW,CAAC,GAET;AAAA,IACL,UAAUD,EAAe;AAAA,IACzB,MAAAF;AAAA,IACA,OAAAF;AAAA,IACA,cAAAV;AAAA,IACA,QAAAG;AAAA,IACA,SAAAE;AAAA,IACA,OAAAW;AAAA,IACA,MAAAC;AAAA,EACF;AACF;"}
@@ -1,9 +1,9 @@
1
- import { useState as l, useRef as L, useEffect as d } from "react";
1
+ import { useState as m, useRef as L, useEffect as d } from "react";
2
2
  import { useRefState as g } from "../useRefState/useRefState.mjs";
3
3
  import { isTarget as y } from "../../utils/helpers/isTarget.mjs";
4
4
  import { getElement as R } from "../../utils/helpers/getElement.mjs";
5
5
  const H = (...t) => {
6
- const n = y(t[0]) ? t[0] : void 0, f = n ? typeof t[1] == "object" ? t[1] : { onEntry: t[1] } : typeof t[0] == "object" ? t[0] : { onEntry: t[0] }, [c, v] = l(!1), s = g(), u = L(f);
6
+ const n = y(t[0]) ? t[0] : void 0, f = n ? typeof t[1] == "object" ? t[1] : { onEntry: t[1] } : typeof t[0] == "object" ? t[0] : { onEntry: t[0] }, [c, v] = m(!1), s = g(), u = L(f);
7
7
  return u.current = f, d(() => {
8
8
  if (!n && !s.state) return;
9
9
  const o = n ? R(n) : s.current;
@@ -11,14 +11,17 @@ const H = (...t) => {
11
11
  const E = (i) => {
12
12
  var e, r;
13
13
  (r = (e = u.current) == null ? void 0 : e.onEntry) == null || r.call(e, i), v(!0);
14
- }, m = (i) => {
14
+ }, l = (i) => {
15
15
  var e, r;
16
16
  (r = (e = u.current) == null ? void 0 : e.onLeave) == null || r.call(e, i), v(!1);
17
17
  };
18
- return o.addEventListener("mouseenter", E), o.addEventListener("mouseleave", m), () => {
19
- o.removeEventListener("mouseenter", E), o.removeEventListener("mouseleave", m);
18
+ return o.addEventListener("mouseenter", E), o.addEventListener("mouseleave", l), () => {
19
+ o.removeEventListener("mouseenter", E), o.removeEventListener("mouseleave", l);
20
20
  };
21
- }, [n, s.state]), n ? c : [s, c];
21
+ }, [n, s.state]), n ? c : {
22
+ ref: s,
23
+ value: c
24
+ };
22
25
  };
23
26
  export {
24
27
  H as useHover
@@ -1 +1 @@
1
- {"version":3,"file":"useHover.mjs","sources":["../../../../src/hooks/useHover/useHover.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\n/** The use hover options type */\nexport interface UseHoverOptions {\n /** The on entry callback */\n onEntry?: (event: Event) => void;\n /** The on leave callback */\n onLeave?: (event: Event) => void;\n}\n\nexport interface UseHover {\n (target: HookTarget, callback?: (event: Event) => void): boolean;\n\n (target: HookTarget, options?: UseHoverOptions): boolean;\n\n <Target extends Element>(\n callback?: (event: Event) => void,\n target?: never\n ): [StateRef<Target>, boolean];\n\n <Target extends Element>(options?: UseHoverOptions, target?: never): [StateRef<Target>, boolean];\n}\n\n/**\n * @name useHover\n * @description - Hook that defines the logic when hovering an element\n * @category Sensors\n *\n * @overload\n * @param {HookTarget} target The target element to be hovered\n * @param {(event: Event) => void} [callback] The callback function to be invoked on mouse enter\n * @returns {boolean} The state of the hover\n *\n * @example\n * const hovering = useHover(ref, () => console.log('callback'));\n *\n * @overload\n * @param {HookTarget} target The target element to be hovered\n * @param {(event: Event) => void} [options.onEntry] The callback function to be invoked on mouse enter\n * @param {(event: Event) => void} [options.onLeave] The callback function to be invoked on mouse leave\n * @returns {boolean} The state of the hover\n *\n * @example\n * const hovering = useHover(ref, options);\n *\n * @overload\n * @template Target The target element\n * @param {(event: Event) => void} [callback] The callback function to be invoked on mouse enter\n * @returns {UseHoverReturn<Target>} The state of the hover\n *\n * @example\n * const [ref, hovering] = useHover(() => console.log('callback'));\n *\n * @overload\n * @template Target The target element\n * @param {(event: Event) => void} [options.onEntry] The callback function to be invoked on mouse enter\n * @param {(event: Event) => void} [options.onLeave] The callback function to be invoked on mouse leave\n * @returns {UseHoverReturn<Target>} The state of the hover\n *\n * @example\n * const [ref, hovering] = useHover(options);\n */\nexport const useHover = ((...params: any[]) => {\n const target = (isTarget(params[0]) ? params[0] : undefined) as HookTarget | undefined;\n\n const options = (\n target\n ? typeof params[1] === 'object'\n ? params[1]\n : { onEntry: params[1] }\n : typeof params[0] === 'object'\n ? params[0]\n : { onEntry: params[0] }\n ) as UseHoverOptions | undefined;\n\n const [hovering, setHovering] = useState(false);\n const internalRef = useRefState<Element>();\n const internalOptionsRef = useRef(options);\n internalOptionsRef.current = options;\n\n useEffect(() => {\n if (!target && !internalRef.state) return;\n const element = (target ? getElement(target) : internalRef.current) as Element;\n\n if (!element) return;\n\n const onMouseEnter = (event: Event) => {\n internalOptionsRef.current?.onEntry?.(event);\n setHovering(true);\n };\n\n const onMouseLeave = (event: Event) => {\n internalOptionsRef.current?.onLeave?.(event);\n setHovering(false);\n };\n\n element.addEventListener('mouseenter', onMouseEnter);\n element.addEventListener('mouseleave', onMouseLeave);\n\n return () => {\n element.removeEventListener('mouseenter', onMouseEnter);\n element.removeEventListener('mouseleave', onMouseLeave);\n };\n }, [target, internalRef.state]);\n\n if (target) return hovering;\n return [internalRef, hovering] as const;\n}) as UseHover;\n"],"names":["useHover","params","target","isTarget","options","hovering","setHovering","useState","internalRef","useRefState","internalOptionsRef","useRef","useEffect","element","getElement","onMouseEnter","event","_b","_a","onMouseLeave"],"mappings":";;;;AAsEa,MAAAA,IAAY,IAAIC,MAAkB;AACvC,QAAAC,IAAUC,EAASF,EAAO,CAAC,CAAC,IAAIA,EAAO,CAAC,IAAI,QAE5CG,IACJF,IACI,OAAOD,EAAO,CAAC,KAAM,WACnBA,EAAO,CAAC,IACR,EAAE,SAASA,EAAO,CAAC,EAAE,IACvB,OAAOA,EAAO,CAAC,KAAM,WACnBA,EAAO,CAAC,IACR,EAAE,SAASA,EAAO,CAAC,EAAE,GAGvB,CAACI,GAAUC,CAAW,IAAIC,EAAS,EAAK,GACxCC,IAAcC,EAAqB,GACnCC,IAAqBC,EAAOP,CAAO;AA4BzC,SA3BAM,EAAmB,UAAUN,GAE7BQ,EAAU,MAAM;AACd,QAAI,CAACV,KAAU,CAACM,EAAY,MAAO;AACnC,UAAMK,IAAWX,IAASY,EAAWZ,CAAM,IAAIM,EAAY;AAE3D,QAAI,CAACK,EAAS;AAER,UAAAE,IAAe,CAACC,MAAiB;;AAClB,OAAAC,KAAAC,IAAAR,EAAA,YAAA,gBAAAQ,EAAS,YAAT,QAAAD,EAAA,KAAAC,GAAmBF,IACtCV,EAAY,EAAI;AAAA,IAClB,GAEMa,IAAe,CAACH,MAAiB;;AAClB,OAAAC,KAAAC,IAAAR,EAAA,YAAA,gBAAAQ,EAAS,YAAT,QAAAD,EAAA,KAAAC,GAAmBF,IACtCV,EAAY,EAAK;AAAA,IACnB;AAEQ,WAAAO,EAAA,iBAAiB,cAAcE,CAAY,GAC3CF,EAAA,iBAAiB,cAAcM,CAAY,GAE5C,MAAM;AACH,MAAAN,EAAA,oBAAoB,cAAcE,CAAY,GAC9CF,EAAA,oBAAoB,cAAcM,CAAY;AAAA,IACxD;AAAA,EACC,GAAA,CAACjB,GAAQM,EAAY,KAAK,CAAC,GAE1BN,IAAeG,IACZ,CAACG,GAAaH,CAAQ;AAC/B;"}
1
+ {"version":3,"file":"useHover.mjs","sources":["../../../../src/hooks/useHover/useHover.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\n/** The use hover options type */\nexport interface UseHoverOptions {\n /** The on entry callback */\n onEntry?: (event: Event) => void;\n /** The on leave callback */\n onLeave?: (event: Event) => void;\n}\n\nexport interface UseHoverReturn {\n value: boolean;\n}\n\nexport interface UseHover {\n (target: HookTarget, callback?: (event: Event) => void): boolean;\n\n (target: HookTarget, options?: UseHoverOptions): boolean;\n\n <Target extends Element>(\n callback?: (event: Event) => void,\n target?: never\n ): { ref: StateRef<Target> } & UseHoverReturn;\n\n <Target extends Element>(\n options?: UseHoverOptions,\n target?: never\n ): { ref: StateRef<Target> } & UseHoverReturn;\n}\n\n/**\n * @name useHover\n * @description - Hook that defines the logic when hovering an element\n * @category Sensors\n *\n * @overload\n * @param {HookTarget} target The target element to be hovered\n * @param {(event: Event) => void} [callback] The callback function to be invoked on mouse enter\n * @returns {boolean} The state of the hover\n *\n * @example\n * const hovering = useHover(ref, () => console.log('callback'));\n *\n * @overload\n * @param {HookTarget} target The target element to be hovered\n * @param {(event: Event) => void} [options.onEntry] The callback function to be invoked on mouse enter\n * @param {(event: Event) => void} [options.onLeave] The callback function to be invoked on mouse leave\n * @returns {boolean} The state of the hover\n *\n * @example\n * const hovering = useHover(ref, options);\n *\n * @overload\n * @template Target The target element\n * @param {(event: Event) => void} [callback] The callback function to be invoked on mouse enter\n * @returns {{ ref: StateRef<Target> } & UseHoverReturn} The state of the hover\n *\n * @example\n * const [ref, hovering] = useHover(() => console.log('callback'));\n *\n * @overload\n * @template Target The target element\n * @param {(event: Event) => void} [options.onEntry] The callback function to be invoked on mouse enter\n * @param {(event: Event) => void} [options.onLeave] The callback function to be invoked on mouse leave\n * @returns {{ ref: StateRef<Target> } & UseHoverReturn} The state of the hover\n *\n * @example\n * const [ref, hovering] = useHover(options);\n */\nexport const useHover = ((...params: any[]) => {\n const target = (isTarget(params[0]) ? params[0] : undefined) as HookTarget | undefined;\n\n const options = (\n target\n ? typeof params[1] === 'object'\n ? params[1]\n : { onEntry: params[1] }\n : typeof params[0] === 'object'\n ? params[0]\n : { onEntry: params[0] }\n ) as UseHoverOptions | undefined;\n\n const [hovering, setHovering] = useState(false);\n const internalRef = useRefState<Element>();\n const internalOptionsRef = useRef(options);\n internalOptionsRef.current = options;\n\n useEffect(() => {\n if (!target && !internalRef.state) return;\n const element = (target ? getElement(target) : internalRef.current) as Element;\n\n if (!element) return;\n\n const onMouseEnter = (event: Event) => {\n internalOptionsRef.current?.onEntry?.(event);\n setHovering(true);\n };\n\n const onMouseLeave = (event: Event) => {\n internalOptionsRef.current?.onLeave?.(event);\n setHovering(false);\n };\n\n element.addEventListener('mouseenter', onMouseEnter);\n element.addEventListener('mouseleave', onMouseLeave);\n\n return () => {\n element.removeEventListener('mouseenter', onMouseEnter);\n element.removeEventListener('mouseleave', onMouseLeave);\n };\n }, [target, internalRef.state]);\n\n if (target) return hovering;\n return {\n ref: internalRef,\n value: hovering\n } as const;\n}) as UseHover;\n"],"names":["useHover","params","target","isTarget","options","hovering","setHovering","useState","internalRef","useRefState","internalOptionsRef","useRef","useEffect","element","getElement","onMouseEnter","event","_b","_a","onMouseLeave"],"mappings":";;;;AA6Ea,MAAAA,IAAY,IAAIC,MAAkB;AACvC,QAAAC,IAAUC,EAASF,EAAO,CAAC,CAAC,IAAIA,EAAO,CAAC,IAAI,QAE5CG,IACJF,IACI,OAAOD,EAAO,CAAC,KAAM,WACnBA,EAAO,CAAC,IACR,EAAE,SAASA,EAAO,CAAC,EAAE,IACvB,OAAOA,EAAO,CAAC,KAAM,WACnBA,EAAO,CAAC,IACR,EAAE,SAASA,EAAO,CAAC,EAAE,GAGvB,CAACI,GAAUC,CAAW,IAAIC,EAAS,EAAK,GACxCC,IAAcC,EAAqB,GACnCC,IAAqBC,EAAOP,CAAO;AA4BzC,SA3BAM,EAAmB,UAAUN,GAE7BQ,EAAU,MAAM;AACd,QAAI,CAACV,KAAU,CAACM,EAAY,MAAO;AACnC,UAAMK,IAAWX,IAASY,EAAWZ,CAAM,IAAIM,EAAY;AAE3D,QAAI,CAACK,EAAS;AAER,UAAAE,IAAe,CAACC,MAAiB;;AAClB,OAAAC,KAAAC,IAAAR,EAAA,YAAA,gBAAAQ,EAAS,YAAT,QAAAD,EAAA,KAAAC,GAAmBF,IACtCV,EAAY,EAAI;AAAA,IAClB,GAEMa,IAAe,CAACH,MAAiB;;AAClB,OAAAC,KAAAC,IAAAR,EAAA,YAAA,gBAAAQ,EAAS,YAAT,QAAAD,EAAA,KAAAC,GAAmBF,IACtCV,EAAY,EAAK;AAAA,IACnB;AAEQ,WAAAO,EAAA,iBAAiB,cAAcE,CAAY,GAC3CF,EAAA,iBAAiB,cAAcM,CAAY,GAE5C,MAAM;AACH,MAAAN,EAAA,oBAAoB,cAAcE,CAAY,GAC9CF,EAAA,oBAAoB,cAAcM,CAAY;AAAA,IACxD;AAAA,EACC,GAAA,CAACjB,GAAQM,EAAY,KAAK,CAAC,GAE1BN,IAAeG,IACZ;AAAA,IACL,KAAKG;AAAA,IACL,OAAOH;AAAA,EACT;AACF;"}
@@ -1,10 +1,10 @@
1
1
  import { useState as f, useRef as s, useEffect as v } from "react";
2
- const I = (...e) => {
3
- const u = e[0], n = (typeof e[1] == "number" ? e[1] : e[1].interval) ?? 1e3, r = typeof e[1] == "object" ? e[1] : e[2], i = (r == null ? void 0 : r.immediately) ?? !0, [t, c] = f(i ?? !0), l = s(), o = s(u);
4
- return o.current = u, v(() => {
2
+ const y = (...e) => {
3
+ const u = e[0], n = (typeof e[1] == "number" ? e[1] : e[1].interval) ?? 1e3, r = typeof e[1] == "object" ? e[1] : e[2], i = (r == null ? void 0 : r.immediately) ?? !0, [t, c] = f(i ?? !0), o = s(void 0), l = s(u);
4
+ return l.current = u, v(() => {
5
5
  if (t)
6
- return l.current = setInterval(() => o.current(), n), () => {
7
- clearInterval(l.current);
6
+ return o.current = setInterval(() => l.current(), n), () => {
7
+ clearInterval(o.current);
8
8
  };
9
9
  }, [t, n]), {
10
10
  active: t,
@@ -16,6 +16,6 @@ const I = (...e) => {
16
16
  };
17
17
  };
18
18
  export {
19
- I as useInterval
19
+ y as useInterval
20
20
  };
21
21
  //# sourceMappingURL=useInterval.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useInterval.mjs","sources":["../../../../src/hooks/useInterval/useInterval.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\n\n/** The use interval options */\nexport interface UseIntervalOptions {\n /** Start the interval immediately */\n immediately?: boolean;\n}\n\n/** The use interval return type */\nexport interface UseIntervalReturn {\n /** Is the interval active */\n active: boolean;\n /** Pause the interval */\n pause: () => void;\n /** Resume the interval */\n resume: () => void;\n /** Toggle the interval */\n toggle: () => void;\n}\n\ninterface UseInterval {\n (callback: () => void, interval?: number, options?: UseIntervalOptions): UseIntervalReturn;\n\n (callback: () => void, options?: UseIntervalOptions & { interval?: number }): UseIntervalReturn;\n}\n\n/**\n * @name useInterval\n * @description - Hook that makes and interval and returns controlling functions\n * @category Time\n *\n * @overload\n * @param {() => void} callback Any callback function\n * @param {number} [interval=1000] Time in milliseconds\n * @param {boolean} [options.immediately=true] Start the interval immediately\n * @returns {UseIntervalReturn}\n *\n * @example\n * const { active, pause, resume, toggle } = useInterval(() => console.log('inside interval'), 2500);\n *\n * @overload\n * @param {() => void} callback Any callback function\n * @param {number} [options.interval=1000] Time in milliseconds\n * @param {boolean} [options.immediately=true] Start the interval immediately\n *\n * @example\n * const { active, pause, resume, toggle } = useInterval(() => console.log('inside interval'), { interval: 2500 });\n */\nexport const useInterval = ((...params: any[]): UseIntervalReturn => {\n const callback = params[0] as () => void;\n const interval =\n ((typeof params[1] === 'number'\n ? params[1]\n : (params[1] as UseIntervalOptions & { interval?: number }).interval) as number) ?? 1000;\n const options =\n typeof params[1] === 'object'\n ? (params[1] as (UseIntervalOptions & { interval?: number }) | undefined)\n : (params[2] as UseIntervalOptions | undefined);\n const immediately = options?.immediately ?? true;\n\n const [active, setActive] = useState<boolean>(immediately ?? true);\n\n const intervalIdRef = useRef<ReturnType<typeof setInterval>>();\n const internalCallbackRef = useRef(callback);\n internalCallbackRef.current = callback;\n\n useEffect(() => {\n if (!active) return;\n\n intervalIdRef.current = setInterval(() => internalCallbackRef.current(), interval);\n return () => {\n clearInterval(intervalIdRef.current);\n };\n }, [active, interval]);\n\n const pause = () => setActive(false);\n\n const resume = () => {\n if (interval <= 0) return;\n setActive(true);\n };\n\n const toggle = () => setActive(!active);\n\n return {\n active,\n pause,\n resume,\n toggle\n };\n}) as UseInterval;\n"],"names":["useInterval","params","callback","interval","options","immediately","active","setActive","useState","intervalIdRef","useRef","internalCallbackRef","useEffect"],"mappings":";AAgDa,MAAAA,IAAe,IAAIC,MAAqC;AAC7D,QAAAC,IAAWD,EAAO,CAAC,GACnBE,KACF,OAAOF,EAAO,CAAC,KAAM,WACnBA,EAAO,CAAC,IACPA,EAAO,CAAC,EAAiD,aAAwB,KAClFG,IACJ,OAAOH,EAAO,CAAC,KAAM,WAChBA,EAAO,CAAC,IACRA,EAAO,CAAC,GACTI,KAAcD,KAAA,gBAAAA,EAAS,gBAAe,IAEtC,CAACE,GAAQC,CAAS,IAAIC,EAAkBH,KAAe,EAAI,GAE3DI,IAAgBC,EAAuC,GACvDC,IAAsBD,EAAOR,CAAQ;AAC3C,SAAAS,EAAoB,UAAUT,GAE9BU,EAAU,MAAM;AACd,QAAKN;AAEL,aAAAG,EAAc,UAAU,YAAY,MAAME,EAAoB,WAAWR,CAAQ,GAC1E,MAAM;AACX,sBAAcM,EAAc,OAAO;AAAA,MACrC;AAAA,EAAA,GACC,CAACH,GAAQH,CAAQ,CAAC,GAWd;AAAA,IACL,QAAAG;AAAA,IACA,OAXY,MAAMC,EAAU,EAAK;AAAA,IAYjC,QAVa,MAAM;AACnB,MAAIJ,KAAY,KAChBI,EAAU,EAAI;AAAA,IAChB;AAAA,IAQE,QANa,MAAMA,EAAU,CAACD,CAAM;AAAA,EAOtC;AACF;"}
1
+ {"version":3,"file":"useInterval.mjs","sources":["../../../../src/hooks/useInterval/useInterval.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\n\n/** The use interval options */\nexport interface UseIntervalOptions {\n /** Start the interval immediately */\n immediately?: boolean;\n}\n\n/** The use interval return type */\nexport interface UseIntervalReturn {\n /** Is the interval active */\n active: boolean;\n /** Pause the interval */\n pause: () => void;\n /** Resume the interval */\n resume: () => void;\n /** Toggle the interval */\n toggle: () => void;\n}\n\ninterface UseInterval {\n (callback: () => void, interval?: number, options?: UseIntervalOptions): UseIntervalReturn;\n\n (callback: () => void, options?: UseIntervalOptions & { interval?: number }): UseIntervalReturn;\n}\n\n/**\n * @name useInterval\n * @description - Hook that makes and interval and returns controlling functions\n * @category Time\n *\n * @overload\n * @param {() => void} callback Any callback function\n * @param {number} [interval=1000] Time in milliseconds\n * @param {boolean} [options.immediately=true] Start the interval immediately\n * @returns {UseIntervalReturn}\n *\n * @example\n * const { active, pause, resume, toggle } = useInterval(() => console.log('inside interval'), 2500);\n *\n * @overload\n * @param {() => void} callback Any callback function\n * @param {number} [options.interval=1000] Time in milliseconds\n * @param {boolean} [options.immediately=true] Start the interval immediately\n *\n * @example\n * const { active, pause, resume, toggle } = useInterval(() => console.log('inside interval'), { interval: 2500 });\n */\nexport const useInterval = ((...params: any[]): UseIntervalReturn => {\n const callback = params[0] as () => void;\n const interval =\n ((typeof params[1] === 'number'\n ? params[1]\n : (params[1] as UseIntervalOptions & { interval?: number }).interval) as number) ?? 1000;\n const options =\n typeof params[1] === 'object'\n ? (params[1] as (UseIntervalOptions & { interval?: number }) | undefined)\n : (params[2] as UseIntervalOptions | undefined);\n const immediately = options?.immediately ?? true;\n\n const [active, setActive] = useState<boolean>(immediately ?? true);\n\n const intervalIdRef = useRef<ReturnType<typeof setInterval>>(undefined);\n const internalCallbackRef = useRef(callback);\n internalCallbackRef.current = callback;\n\n useEffect(() => {\n if (!active) return;\n\n intervalIdRef.current = setInterval(() => internalCallbackRef.current(), interval);\n return () => {\n clearInterval(intervalIdRef.current);\n };\n }, [active, interval]);\n\n const pause = () => setActive(false);\n\n const resume = () => {\n if (interval <= 0) return;\n setActive(true);\n };\n\n const toggle = () => setActive(!active);\n\n return {\n active,\n pause,\n resume,\n toggle\n };\n}) as UseInterval;\n"],"names":["useInterval","params","callback","interval","options","immediately","active","setActive","useState","intervalIdRef","useRef","internalCallbackRef","useEffect"],"mappings":";AAgDa,MAAAA,IAAe,IAAIC,MAAqC;AAC7D,QAAAC,IAAWD,EAAO,CAAC,GACnBE,KACF,OAAOF,EAAO,CAAC,KAAM,WACnBA,EAAO,CAAC,IACPA,EAAO,CAAC,EAAiD,aAAwB,KAClFG,IACJ,OAAOH,EAAO,CAAC,KAAM,WAChBA,EAAO,CAAC,IACRA,EAAO,CAAC,GACTI,KAAcD,KAAA,gBAAAA,EAAS,gBAAe,IAEtC,CAACE,GAAQC,CAAS,IAAIC,EAAkBH,KAAe,EAAI,GAE3DI,IAAgBC,EAAuC,MAAS,GAChEC,IAAsBD,EAAOR,CAAQ;AAC3C,SAAAS,EAAoB,UAAUT,GAE9BU,EAAU,MAAM;AACd,QAAKN;AAEL,aAAAG,EAAc,UAAU,YAAY,MAAME,EAAoB,WAAWR,CAAQ,GAC1E,MAAM;AACX,sBAAcM,EAAc,OAAO;AAAA,MACrC;AAAA,EAAA,GACC,CAACH,GAAQH,CAAQ,CAAC,GAWd;AAAA,IACL,QAAAG;AAAA,IACA,OAXY,MAAMC,EAAU,EAAK;AAAA,IAYjC,QAVa,MAAM;AACnB,MAAIJ,KAAY,KAChBI,EAAU,EAAI;AAAA,IAChB;AAAA,IAQE,QANa,MAAMA,EAAU,CAACD,CAAM;AAAA,EAOtC;AACF;"}
@@ -3,7 +3,7 @@ import { useRefState as g } from "../useRefState/useRefState.mjs";
3
3
  import { isTarget as C } from "../../utils/helpers/isTarget.mjs";
4
4
  import { getElement as P } from "../../utils/helpers/getElement.mjs";
5
5
  const b = 400, I = (...o) => {
6
- const n = C(o[0]) ? o[0] : void 0, E = n ? o[1] : o[0], L = n ? o[2] : o[1], [w, h] = T(!1), u = l(), v = l(!1), f = g(), R = l(E);
6
+ const n = C(o[0]) ? o[0] : void 0, E = n ? o[1] : o[0], L = n ? o[2] : o[1], [w, h] = T(!1), u = l(void 0), v = l(!1), f = g(), R = l(E);
7
7
  R.current = E;
8
8
  const c = l(L);
9
9
  return c.current = L, S(() => {
@@ -1 +1 @@
1
- {"version":3,"file":"useLongPress.mjs","sources":["../../../../src/hooks/useLongPress/useLongPress.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\nexport type LongPressEvents = MouseEvent | TouchEvent;\n\n// * The use long press options type */\nexport interface UseLongPressOptions {\n // * The threshold time in milliseconds\n threshold?: number;\n // * The callback function to be invoked on long press cancel\n onCancel?: (event: LongPressEvents) => void;\n // * The callback function to be invoked on long press end\n onFinish?: (event: LongPressEvents) => void;\n // * The callback function to be invoked on long press start\n onStart?: (event: LongPressEvents) => void;\n}\n\nexport interface UseLongPress {\n (\n target: HookTarget,\n callback: (event: LongPressEvents) => void,\n options?: UseLongPressOptions\n ): boolean;\n\n <Target extends Element>(\n callback: (event: LongPressEvents) => void,\n options?: UseLongPressOptions,\n target?: never\n ): {\n ref: StateRef<Target>;\n pressed: boolean;\n };\n}\n\nconst DEFAULT_THRESHOLD_TIME = 400;\n\n/**\n * @name useLongPress\n * @description - Hook that defines the logic when long pressing an element\n * @category Sensors\n *\n * @overload\n * @param {HookTarget} target The target element to be long pressed\n * @param {(event: LongPressEvents) => void} callback The callback function to be invoked on long press\n * @param {UseLongPressOptions} [options] The options for the long press\n * @returns {boolean} The long pressing state\n *\n * @example\n * const pressed = useLongPress(ref, () => console.log('callback'));\n *\n * @overload\n * @template Target The target element\n * @param {(event: LongPressEvents) => void} callback The callback function to be invoked on long press\n * @param {UseLongPressOptions} [options] The options for the long press\n * @returns {boolean} The long pressing state\n *\n * @example\n * const { ref, pressed } = useLongPress(() => console.log('callback'));\n */\nexport const useLongPress = ((...params: any[]): any => {\n const target = (isTarget(params[0]) ? params[0] : undefined) as HookTarget | undefined;\n const callback = (target ? params[1] : params[0]) as (event: LongPressEvents) => void;\n const options = (target ? params[2] : params[1]) as UseLongPressOptions | undefined;\n\n const [pressed, setPressed] = useState(false);\n const timeoutIdRef = useRef<ReturnType<typeof setTimeout>>();\n const isPressedRef = useRef(false);\n const internalRef = useRefState<Element>();\n\n const internalCallbackRef = useRef(callback);\n internalCallbackRef.current = callback;\n const internalOptionsRef = useRef(options);\n internalOptionsRef.current = options;\n\n useEffect(() => {\n if (!target && !internalRef.state) return;\n\n const element = target ? getElement(target) : internalRef.current;\n if (!element) return;\n\n const onStart = (event: LongPressEvents) => {\n internalOptionsRef.current?.onStart?.(event);\n\n isPressedRef.current = true;\n timeoutIdRef.current = setTimeout(() => {\n internalCallbackRef.current(event);\n setPressed(true);\n }, internalOptionsRef.current?.threshold ?? DEFAULT_THRESHOLD_TIME);\n };\n\n const onCancel = (event: LongPressEvents) => {\n setPressed((prevPressed) => {\n if (prevPressed) {\n internalOptionsRef.current?.onFinish?.(event);\n } else if (isPressedRef.current) {\n internalOptionsRef.current?.onCancel?.(event);\n }\n\n return false;\n });\n\n isPressedRef.current = false;\n if (timeoutIdRef.current) clearTimeout(timeoutIdRef.current);\n };\n\n element.addEventListener('mousedown', onStart as EventListener);\n element.addEventListener('touchstart', onStart as EventListener);\n element.addEventListener('mouseup', onCancel as EventListener);\n element.addEventListener('touchend', onCancel as EventListener);\n window.addEventListener('mouseup', onCancel as EventListener);\n window.addEventListener('touchend', onCancel as EventListener);\n\n return () => {\n element.removeEventListener('mousedown', onStart as EventListener);\n element.removeEventListener('touchstart', onStart as EventListener);\n element.removeEventListener('mouseup', onCancel as EventListener);\n element.removeEventListener('touchend', onCancel as EventListener);\n window.removeEventListener('mouseup', onCancel as EventListener);\n window.removeEventListener('touchend', onCancel as EventListener);\n\n if (timeoutIdRef.current) clearTimeout(timeoutIdRef.current);\n };\n }, [target, internalRef.state]);\n\n if (target) return pressed;\n return {\n ref: internalRef,\n pressed\n };\n}) as UseLongPress;\n"],"names":["DEFAULT_THRESHOLD_TIME","useLongPress","params","target","isTarget","callback","options","pressed","setPressed","useState","timeoutIdRef","useRef","isPressedRef","internalRef","useRefState","internalCallbackRef","internalOptionsRef","useEffect","element","getElement","onStart","event","_b","_a","_c","onCancel","prevPressed","_d"],"mappings":";;;;AAyCA,MAAMA,IAAyB,KAyBlBC,IAAgB,IAAIC,MAAuB;AAChD,QAAAC,IAAUC,EAASF,EAAO,CAAC,CAAC,IAAIA,EAAO,CAAC,IAAI,QAC5CG,IAAYF,IAASD,EAAO,CAAC,IAAIA,EAAO,CAAC,GACzCI,IAAWH,IAASD,EAAO,CAAC,IAAIA,EAAO,CAAC,GAExC,CAACK,GAASC,CAAU,IAAIC,EAAS,EAAK,GACtCC,IAAeC,EAAsC,GACrDC,IAAeD,EAAO,EAAK,GAC3BE,IAAcC,EAAqB,GAEnCC,IAAsBJ,EAAON,CAAQ;AAC3C,EAAAU,EAAoB,UAAUV;AACxB,QAAAW,IAAqBL,EAAOL,CAAO;AAqDzC,SApDAU,EAAmB,UAAUV,GAE7BW,EAAU,MAAM;AACd,QAAI,CAACd,KAAU,CAACU,EAAY,MAAO;AAEnC,UAAMK,IAAUf,IAASgB,EAAWhB,CAAM,IAAIU,EAAY;AAC1D,QAAI,CAACK,EAAS;AAER,UAAAE,IAAU,CAACC,MAA2B;;AACvB,OAAAC,KAAAC,IAAAP,EAAA,YAAA,gBAAAO,EAAS,YAAT,QAAAD,EAAA,KAAAC,GAAmBF,IAEtCT,EAAa,UAAU,IACVF,EAAA,UAAU,WAAW,MAAM;AACtC,QAAAK,EAAoB,QAAQM,CAAK,GACjCb,EAAW,EAAI;AAAA,MACd,KAAAgB,IAAAR,EAAmB,YAAnB,gBAAAQ,EAA4B,cAAaxB,CAAsB;AAAA,IACpE,GAEMyB,IAAW,CAACJ,MAA2B;AAC3C,MAAAb,EAAW,CAACkB,MAAgB;;AAC1B,eAAIA,KACiBJ,KAAAC,IAAAP,EAAA,YAAA,gBAAAO,EAAS,aAAT,QAAAD,EAAA,KAAAC,GAAoBF,KAC9BT,EAAa,aACHe,KAAAH,IAAAR,EAAA,YAAA,gBAAAQ,EAAS,aAAT,QAAAG,EAAA,KAAAH,GAAoBH,KAGlC;AAAA,MAAA,CACR,GAEDT,EAAa,UAAU,IACnBF,EAAa,WAAsB,aAAAA,EAAa,OAAO;AAAA,IAC7D;AAEQ,WAAAQ,EAAA,iBAAiB,aAAaE,CAAwB,GACtDF,EAAA,iBAAiB,cAAcE,CAAwB,GACvDF,EAAA,iBAAiB,WAAWO,CAAyB,GACrDP,EAAA,iBAAiB,YAAYO,CAAyB,GACvD,OAAA,iBAAiB,WAAWA,CAAyB,GACrD,OAAA,iBAAiB,YAAYA,CAAyB,GAEtD,MAAM;AACH,MAAAP,EAAA,oBAAoB,aAAaE,CAAwB,GACzDF,EAAA,oBAAoB,cAAcE,CAAwB,GAC1DF,EAAA,oBAAoB,WAAWO,CAAyB,GACxDP,EAAA,oBAAoB,YAAYO,CAAyB,GAC1D,OAAA,oBAAoB,WAAWA,CAAyB,GACxD,OAAA,oBAAoB,YAAYA,CAAyB,GAE5Df,EAAa,WAAsB,aAAAA,EAAa,OAAO;AAAA,IAC7D;AAAA,EACC,GAAA,CAACP,GAAQU,EAAY,KAAK,CAAC,GAE1BV,IAAeI,IACZ;AAAA,IACL,KAAKM;AAAA,IACL,SAAAN;AAAA,EACF;AACF;"}
1
+ {"version":3,"file":"useLongPress.mjs","sources":["../../../../src/hooks/useLongPress/useLongPress.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\nexport type LongPressEvents = MouseEvent | TouchEvent;\n\n// * The use long press options type */\nexport interface UseLongPressOptions {\n // * The threshold time in milliseconds\n threshold?: number;\n // * The callback function to be invoked on long press cancel\n onCancel?: (event: LongPressEvents) => void;\n // * The callback function to be invoked on long press end\n onFinish?: (event: LongPressEvents) => void;\n // * The callback function to be invoked on long press start\n onStart?: (event: LongPressEvents) => void;\n}\n\nexport interface UseLongPress {\n (\n target: HookTarget,\n callback: (event: LongPressEvents) => void,\n options?: UseLongPressOptions\n ): boolean;\n\n <Target extends Element>(\n callback: (event: LongPressEvents) => void,\n options?: UseLongPressOptions,\n target?: never\n ): {\n ref: StateRef<Target>;\n pressed: boolean;\n };\n}\n\nconst DEFAULT_THRESHOLD_TIME = 400;\n\n/**\n * @name useLongPress\n * @description - Hook that defines the logic when long pressing an element\n * @category Sensors\n *\n * @overload\n * @param {HookTarget} target The target element to be long pressed\n * @param {(event: LongPressEvents) => void} callback The callback function to be invoked on long press\n * @param {UseLongPressOptions} [options] The options for the long press\n * @returns {boolean} The long pressing state\n *\n * @example\n * const pressed = useLongPress(ref, () => console.log('callback'));\n *\n * @overload\n * @template Target The target element\n * @param {(event: LongPressEvents) => void} callback The callback function to be invoked on long press\n * @param {UseLongPressOptions} [options] The options for the long press\n * @returns {boolean} The long pressing state\n *\n * @example\n * const { ref, pressed } = useLongPress(() => console.log('callback'));\n */\nexport const useLongPress = ((...params: any[]): any => {\n const target = (isTarget(params[0]) ? params[0] : undefined) as HookTarget | undefined;\n const callback = (target ? params[1] : params[0]) as (event: LongPressEvents) => void;\n const options = (target ? params[2] : params[1]) as UseLongPressOptions | undefined;\n\n const [pressed, setPressed] = useState(false);\n const timeoutIdRef = useRef<ReturnType<typeof setTimeout>>(undefined);\n const isPressedRef = useRef(false);\n const internalRef = useRefState<Element>();\n\n const internalCallbackRef = useRef(callback);\n internalCallbackRef.current = callback;\n const internalOptionsRef = useRef(options);\n internalOptionsRef.current = options;\n\n useEffect(() => {\n if (!target && !internalRef.state) return;\n\n const element = target ? getElement(target) : internalRef.current;\n if (!element) return;\n\n const onStart = (event: LongPressEvents) => {\n internalOptionsRef.current?.onStart?.(event);\n\n isPressedRef.current = true;\n timeoutIdRef.current = setTimeout(() => {\n internalCallbackRef.current(event);\n setPressed(true);\n }, internalOptionsRef.current?.threshold ?? DEFAULT_THRESHOLD_TIME);\n };\n\n const onCancel = (event: LongPressEvents) => {\n setPressed((prevPressed) => {\n if (prevPressed) {\n internalOptionsRef.current?.onFinish?.(event);\n } else if (isPressedRef.current) {\n internalOptionsRef.current?.onCancel?.(event);\n }\n\n return false;\n });\n\n isPressedRef.current = false;\n if (timeoutIdRef.current) clearTimeout(timeoutIdRef.current);\n };\n\n element.addEventListener('mousedown', onStart as EventListener);\n element.addEventListener('touchstart', onStart as EventListener);\n element.addEventListener('mouseup', onCancel as EventListener);\n element.addEventListener('touchend', onCancel as EventListener);\n window.addEventListener('mouseup', onCancel as EventListener);\n window.addEventListener('touchend', onCancel as EventListener);\n\n return () => {\n element.removeEventListener('mousedown', onStart as EventListener);\n element.removeEventListener('touchstart', onStart as EventListener);\n element.removeEventListener('mouseup', onCancel as EventListener);\n element.removeEventListener('touchend', onCancel as EventListener);\n window.removeEventListener('mouseup', onCancel as EventListener);\n window.removeEventListener('touchend', onCancel as EventListener);\n\n if (timeoutIdRef.current) clearTimeout(timeoutIdRef.current);\n };\n }, [target, internalRef.state]);\n\n if (target) return pressed;\n return {\n ref: internalRef,\n pressed\n };\n}) as UseLongPress;\n"],"names":["DEFAULT_THRESHOLD_TIME","useLongPress","params","target","isTarget","callback","options","pressed","setPressed","useState","timeoutIdRef","useRef","isPressedRef","internalRef","useRefState","internalCallbackRef","internalOptionsRef","useEffect","element","getElement","onStart","event","_b","_a","_c","onCancel","prevPressed","_d"],"mappings":";;;;AAyCA,MAAMA,IAAyB,KAyBlBC,IAAgB,IAAIC,MAAuB;AAChD,QAAAC,IAAUC,EAASF,EAAO,CAAC,CAAC,IAAIA,EAAO,CAAC,IAAI,QAC5CG,IAAYF,IAASD,EAAO,CAAC,IAAIA,EAAO,CAAC,GACzCI,IAAWH,IAASD,EAAO,CAAC,IAAIA,EAAO,CAAC,GAExC,CAACK,GAASC,CAAU,IAAIC,EAAS,EAAK,GACtCC,IAAeC,EAAsC,MAAS,GAC9DC,IAAeD,EAAO,EAAK,GAC3BE,IAAcC,EAAqB,GAEnCC,IAAsBJ,EAAON,CAAQ;AAC3C,EAAAU,EAAoB,UAAUV;AACxB,QAAAW,IAAqBL,EAAOL,CAAO;AAqDzC,SApDAU,EAAmB,UAAUV,GAE7BW,EAAU,MAAM;AACd,QAAI,CAACd,KAAU,CAACU,EAAY,MAAO;AAEnC,UAAMK,IAAUf,IAASgB,EAAWhB,CAAM,IAAIU,EAAY;AAC1D,QAAI,CAACK,EAAS;AAER,UAAAE,IAAU,CAACC,MAA2B;;AACvB,OAAAC,KAAAC,IAAAP,EAAA,YAAA,gBAAAO,EAAS,YAAT,QAAAD,EAAA,KAAAC,GAAmBF,IAEtCT,EAAa,UAAU,IACVF,EAAA,UAAU,WAAW,MAAM;AACtC,QAAAK,EAAoB,QAAQM,CAAK,GACjCb,EAAW,EAAI;AAAA,MACd,KAAAgB,IAAAR,EAAmB,YAAnB,gBAAAQ,EAA4B,cAAaxB,CAAsB;AAAA,IACpE,GAEMyB,IAAW,CAACJ,MAA2B;AAC3C,MAAAb,EAAW,CAACkB,MAAgB;;AAC1B,eAAIA,KACiBJ,KAAAC,IAAAP,EAAA,YAAA,gBAAAO,EAAS,aAAT,QAAAD,EAAA,KAAAC,GAAoBF,KAC9BT,EAAa,aACHe,KAAAH,IAAAR,EAAA,YAAA,gBAAAQ,EAAS,aAAT,QAAAG,EAAA,KAAAH,GAAoBH,KAGlC;AAAA,MAAA,CACR,GAEDT,EAAa,UAAU,IACnBF,EAAa,WAAsB,aAAAA,EAAa,OAAO;AAAA,IAC7D;AAEQ,WAAAQ,EAAA,iBAAiB,aAAaE,CAAwB,GACtDF,EAAA,iBAAiB,cAAcE,CAAwB,GACvDF,EAAA,iBAAiB,WAAWO,CAAyB,GACrDP,EAAA,iBAAiB,YAAYO,CAAyB,GACvD,OAAA,iBAAiB,WAAWA,CAAyB,GACrD,OAAA,iBAAiB,YAAYA,CAAyB,GAEtD,MAAM;AACH,MAAAP,EAAA,oBAAoB,aAAaE,CAAwB,GACzDF,EAAA,oBAAoB,cAAcE,CAAwB,GAC1DF,EAAA,oBAAoB,WAAWO,CAAyB,GACxDP,EAAA,oBAAoB,YAAYO,CAAyB,GAC1D,OAAA,oBAAoB,WAAWA,CAAyB,GACxD,OAAA,oBAAoB,YAAYA,CAAyB,GAE5Df,EAAa,WAAsB,aAAAA,EAAa,OAAO;AAAA,IAC7D;AAAA,EACC,GAAA,CAACP,GAAQU,EAAY,KAAK,CAAC,GAE1BV,IAAeI,IACZ;AAAA,IACL,KAAKM;AAAA,IACL,SAAAN;AAAA,EACF;AACF;"}
@@ -1,6 +1,6 @@
1
1
  import { useRef as n, useEffect as c } from "react";
2
- function s(u) {
3
- const e = n(), r = n(!1), t = n(!1);
2
+ function o(u) {
3
+ const e = n(void 0), r = n(!1), t = n(!1);
4
4
  r.current && (t.current = !0), c(() => {
5
5
  if (!r.current)
6
6
  return r.current = !0, e.current = u(), () => {
@@ -9,6 +9,6 @@ function s(u) {
9
9
  }, []);
10
10
  }
11
11
  export {
12
- s as useOnce
12
+ o as useOnce
13
13
  };
14
14
  //# sourceMappingURL=useOnce.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useOnce.mjs","sources":["../../../../src/hooks/useOnce/useOnce.ts"],"sourcesContent":["import type { EffectCallback } from 'react';\n\nimport { useEffect, useRef } from 'react';\n\n/**\n * @name useEffectOnce\n * @description - Hook that runs an effect only once. Please do not use it in production code!\n * @category Humor\n *\n * @warning - This hook will run effect only once even in strict mode. Please do not use it in production code!\n *\n * @param {EffectCallback} effect The effect to run\n *\n * @example\n * useOnce(() => console.log('effect once'));\n */\nexport function useOnce(effect: EffectCallback) {\n const cleanupRef = useRef<ReturnType<EffectCallback>>();\n const hasRunRef = useRef(false);\n const hasRenderedAfterRun = useRef(false);\n\n if (hasRunRef.current) {\n hasRenderedAfterRun.current = true;\n }\n\n useEffect(() => {\n if (hasRunRef.current) return;\n\n hasRunRef.current = true;\n cleanupRef.current = effect();\n\n return () => {\n if (!hasRenderedAfterRun.current) return;\n\n if (typeof cleanupRef.current === 'function') {\n cleanupRef.current();\n }\n };\n }, []);\n}\n"],"names":["useOnce","effect","cleanupRef","useRef","hasRunRef","hasRenderedAfterRun","useEffect"],"mappings":";AAgBO,SAASA,EAAQC,GAAwB;AAC9C,QAAMC,IAAaC,EAAmC,GAChDC,IAAYD,EAAO,EAAK,GACxBE,IAAsBF,EAAO,EAAK;AAExC,EAAIC,EAAU,YACZC,EAAoB,UAAU,KAGhCC,EAAU,MAAM;AACd,QAAI,CAAAF,EAAU;AAEd,aAAAA,EAAU,UAAU,IACpBF,EAAW,UAAUD,EAAO,GAErB,MAAM;AACP,QAACI,EAAoB,WAErB,OAAOH,EAAW,WAAY,cAChCA,EAAW,QAAQ;AAAA,MAEvB;AAAA,EACF,GAAG,EAAE;AACP;"}
1
+ {"version":3,"file":"useOnce.mjs","sources":["../../../../src/hooks/useOnce/useOnce.ts"],"sourcesContent":["import type { EffectCallback } from 'react';\n\nimport { useEffect, useRef } from 'react';\n\n/**\n * @name useEffectOnce\n * @description - Hook that runs an effect only once. Please do not use it in production code!\n * @category Humor\n *\n * @warning - This hook will run effect only once even in strict mode. Please do not use it in production code!\n *\n * @param {EffectCallback} effect The effect to run\n *\n * @example\n * useOnce(() => console.log('effect once'));\n */\nexport function useOnce(effect: EffectCallback) {\n const cleanupRef = useRef<ReturnType<EffectCallback>>(undefined);\n const hasRunRef = useRef(false);\n const hasRenderedAfterRun = useRef(false);\n\n if (hasRunRef.current) {\n hasRenderedAfterRun.current = true;\n }\n\n useEffect(() => {\n if (hasRunRef.current) return;\n\n hasRunRef.current = true;\n cleanupRef.current = effect();\n\n return () => {\n if (!hasRenderedAfterRun.current) return;\n\n if (typeof cleanupRef.current === 'function') {\n cleanupRef.current();\n }\n };\n }, []);\n}\n"],"names":["useOnce","effect","cleanupRef","useRef","hasRunRef","hasRenderedAfterRun","useEffect"],"mappings":";AAgBO,SAASA,EAAQC,GAAwB;AACxC,QAAAC,IAAaC,EAAmC,MAAS,GACzDC,IAAYD,EAAO,EAAK,GACxBE,IAAsBF,EAAO,EAAK;AAExC,EAAIC,EAAU,YACZC,EAAoB,UAAU,KAGhCC,EAAU,MAAM;AACd,QAAI,CAAAF,EAAU;AAEd,aAAAA,EAAU,UAAU,IACpBF,EAAW,UAAUD,EAAO,GAErB,MAAM;AACP,QAACI,EAAoB,WAErB,OAAOH,EAAW,WAAY,cAChCA,EAAW,QAAQ;AAAA,MAEvB;AAAA,EACF,GAAG,EAAE;AACP;"}
@@ -1,26 +1,26 @@
1
- import { useState as b, useRef as i, useEffect as a } from "react";
2
- const E = (s, d) => {
3
- const r = typeof window < "u" && typeof PerformanceObserver < "u", [m, p] = b([]), n = i(null), t = i();
4
- t.current = d;
5
- const o = () => {
1
+ import { useState as b, useRef as d, useEffect as w } from "react";
2
+ const O = (s, o) => {
3
+ const r = typeof window < "u" && typeof PerformanceObserver < "u", [m, p] = b([]), n = d(null), t = d(o);
4
+ t.current = o;
5
+ const u = () => {
6
6
  if (!r) return;
7
- const e = new PerformanceObserver((c, v) => {
8
- var f;
9
- p(c.getEntries()), (f = t.current) == null || f.call(t, c, v);
7
+ const e = new PerformanceObserver((f, v) => {
8
+ var i;
9
+ p(f.getEntries()), (i = t.current) == null || i.call(t, f, v);
10
10
  });
11
11
  e.observe(s), n.current = e;
12
- }, u = () => {
12
+ }, c = () => {
13
13
  var e;
14
14
  r && ((e = n.current) == null || e.disconnect(), n.current = null);
15
15
  };
16
- return a(() => {
16
+ return w(() => {
17
17
  if (r)
18
- return s.immediate && o(), () => {
19
- u();
18
+ return s.immediate && u(), () => {
19
+ c();
20
20
  };
21
- }, []), { supported: r, entries: m, start: o, stop: u };
21
+ }, []), { supported: r, entries: m, start: u, stop: c };
22
22
  };
23
23
  export {
24
- E as usePerformanceObserver
24
+ O as usePerformanceObserver
25
25
  };
26
26
  //# sourceMappingURL=usePerformanceObserver.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"usePerformanceObserver.mjs","sources":["../../../../src/hooks/usePerformanceObserver/usePerformanceObserver.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\n\n/** The use performance observer options type */\nexport type UsePerformanceObserverOptions = PerformanceObserverInit & {\n /** Whether to start the observer immediately */\n immediate?: boolean;\n};\n\n/**\n * @name usePerformanceObserver\n * @description - Hook that allows you to observe performance entries\n * @category Sensors\n *\n * @browserapi PerformanceObserver https://developer.mozilla.org/en-US/docs/Web/API/PerformanceObserver\n *\n * @param {UsePerformanceObserverOptions} options The options for the performance observer\n * @param {PerformanceObserverCallback} callback The function to handle performance entries\n * @returns {object} An object containing the observer's support status and methods to start and stop the observer\n *\n * @example\n * const { supported, entries, start, stop } = usePerformanceObserver();\n */\nexport const usePerformanceObserver = (\n options: UsePerformanceObserverOptions,\n callback?: PerformanceObserverCallback\n) => {\n const supported = typeof window !== 'undefined' && typeof PerformanceObserver !== 'undefined';\n const [entries, setEntries] = useState<PerformanceEntry[]>([]);\n\n const observerRef = useRef<PerformanceObserver | null>(null);\n const internalCallback = useRef<PerformanceObserverCallback | null>();\n internalCallback.current = callback;\n\n const start = () => {\n if (!supported) return;\n const observer = new PerformanceObserver((entryList, observer) => {\n setEntries(entryList.getEntries());\n internalCallback.current?.(entryList, observer);\n });\n observer.observe(options);\n observerRef.current = observer;\n };\n\n const stop = () => {\n if (!supported) return;\n observerRef.current?.disconnect();\n observerRef.current = null;\n };\n\n useEffect(() => {\n if (!supported) return;\n if (options.immediate) start();\n\n return () => {\n stop();\n };\n }, []);\n\n return { supported, entries, start, stop };\n};\n"],"names":["usePerformanceObserver","options","callback","supported","entries","setEntries","useState","observerRef","useRef","internalCallback","start","observer","entryList","_a","stop","useEffect"],"mappings":";AAsBa,MAAAA,IAAyB,CACpCC,GACAC,MACG;AACH,QAAMC,IAAY,OAAO,SAAW,OAAe,OAAO,sBAAwB,KAC5E,CAACC,GAASC,CAAU,IAAIC,EAA6B,CAAA,CAAE,GAEvDC,IAAcC,EAAmC,IAAI,GACrDC,IAAmBD,EAA2C;AACpE,EAAAC,EAAiB,UAAUP;AAE3B,QAAMQ,IAAQ,MAAM;AAClB,QAAI,CAACP,EAAW;AAChB,UAAMQ,IAAW,IAAI,oBAAoB,CAACC,GAAWD,MAAa;;AACrD,MAAAN,EAAAO,EAAU,YAAY,IAChBC,IAAAJ,EAAA,YAAA,QAAAI,EAAA,KAAAJ,GAAUG,GAAWD;AAAAA,IAAQ,CAC/C;AACD,IAAAA,EAAS,QAAQV,CAAO,GACxBM,EAAY,UAAUI;AAAA,EACxB,GAEMG,IAAO,MAAM;;AACjB,IAAKX,OACLU,IAAAN,EAAY,YAAZ,QAAAM,EAAqB,cACrBN,EAAY,UAAU;AAAA,EACxB;AAEA,SAAAQ,EAAU,MAAM;AACd,QAAKZ;AACD,aAAAF,EAAQ,aAAiBS,EAAA,GAEtB,MAAM;AACN,QAAAI,EAAA;AAAA,MACP;AAAA,EACF,GAAG,EAAE,GAEE,EAAE,WAAAX,GAAW,SAAAC,GAAS,OAAAM,GAAO,MAAAI,EAAK;AAC3C;"}
1
+ {"version":3,"file":"usePerformanceObserver.mjs","sources":["../../../../src/hooks/usePerformanceObserver/usePerformanceObserver.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\n\n/** The use performance observer options type */\nexport type UsePerformanceObserverOptions = PerformanceObserverInit & {\n /** Whether to start the observer immediately */\n immediate?: boolean;\n};\n\n/**\n * @name usePerformanceObserver\n * @description - Hook that allows you to observe performance entries\n * @category Sensors\n *\n * @browserapi PerformanceObserver https://developer.mozilla.org/en-US/docs/Web/API/PerformanceObserver\n *\n * @param {UsePerformanceObserverOptions} options The options for the performance observer\n * @param {PerformanceObserverCallback} callback The function to handle performance entries\n * @returns {object} An object containing the observer's support status and methods to start and stop the observer\n *\n * @example\n * const { supported, entries, start, stop } = usePerformanceObserver();\n */\nexport const usePerformanceObserver = (\n options: UsePerformanceObserverOptions,\n callback?: PerformanceObserverCallback\n) => {\n const supported = typeof window !== 'undefined' && typeof PerformanceObserver !== 'undefined';\n const [entries, setEntries] = useState<PerformanceEntry[]>([]);\n\n const observerRef = useRef<PerformanceObserver | null>(null);\n const internalCallback = useRef<PerformanceObserverCallback | null>(callback);\n internalCallback.current = callback;\n\n const start = () => {\n if (!supported) return;\n const observer = new PerformanceObserver((entryList, observer) => {\n setEntries(entryList.getEntries());\n internalCallback.current?.(entryList, observer);\n });\n observer.observe(options);\n observerRef.current = observer;\n };\n\n const stop = () => {\n if (!supported) return;\n observerRef.current?.disconnect();\n observerRef.current = null;\n };\n\n useEffect(() => {\n if (!supported) return;\n if (options.immediate) start();\n\n return () => {\n stop();\n };\n }, []);\n\n return { supported, entries, start, stop };\n};\n"],"names":["usePerformanceObserver","options","callback","supported","entries","setEntries","useState","observerRef","useRef","internalCallback","start","observer","entryList","_a","stop","useEffect"],"mappings":";AAsBa,MAAAA,IAAyB,CACpCC,GACAC,MACG;AACH,QAAMC,IAAY,OAAO,SAAW,OAAe,OAAO,sBAAwB,KAC5E,CAACC,GAASC,CAAU,IAAIC,EAA6B,CAAA,CAAE,GAEvDC,IAAcC,EAAmC,IAAI,GACrDC,IAAmBD,EAA2CN,CAAQ;AAC5E,EAAAO,EAAiB,UAAUP;AAE3B,QAAMQ,IAAQ,MAAM;AAClB,QAAI,CAACP,EAAW;AAChB,UAAMQ,IAAW,IAAI,oBAAoB,CAACC,GAAWD,MAAa;;AACrD,MAAAN,EAAAO,EAAU,YAAY,IAChBC,IAAAJ,EAAA,YAAA,QAAAI,EAAA,KAAAJ,GAAUG,GAAWD;AAAAA,IAAQ,CAC/C;AACD,IAAAA,EAAS,QAAQV,CAAO,GACxBM,EAAY,UAAUI;AAAA,EACxB,GAEMG,IAAO,MAAM;;AACjB,IAAKX,OACLU,IAAAN,EAAY,YAAZ,QAAAM,EAAqB,cACrBN,EAAY,UAAU;AAAA,EACxB;AAEA,SAAAQ,EAAU,MAAM;AACd,QAAKZ;AACD,aAAAF,EAAQ,aAAiBS,EAAA,GAEtB,MAAM;AACN,QAAAI,EAAA;AAAA,MACP;AAAA,EACF,GAAG,EAAE,GAEE,EAAE,WAAAX,GAAW,SAAAC,GAAS,OAAAM,GAAO,MAAAI,EAAK;AAC3C;"}