@siberiacancode/reactuse 0.2.22 → 0.2.23

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 (41) hide show
  1. package/dist/cjs/hooks/useBattery/useBattery.cjs +1 -1
  2. package/dist/cjs/hooks/useBattery/useBattery.cjs.map +1 -1
  3. package/dist/cjs/hooks/useBroadcastChannel/useBroadcastChannel.cjs +2 -0
  4. package/dist/cjs/hooks/useBroadcastChannel/useBroadcastChannel.cjs.map +1 -0
  5. package/dist/cjs/hooks/useClickOutside/useClickOutside.cjs +1 -1
  6. package/dist/cjs/hooks/useClickOutside/useClickOutside.cjs.map +1 -1
  7. package/dist/cjs/hooks/useDisplayMedia/useDisplayMedia.cjs +1 -1
  8. package/dist/cjs/hooks/useDisplayMedia/useDisplayMedia.cjs.map +1 -1
  9. package/dist/cjs/hooks/useMemory/useMemory.cjs +1 -1
  10. package/dist/cjs/hooks/useMemory/useMemory.cjs.map +1 -1
  11. package/dist/cjs/hooks/useRerender/useRerender.cjs.map +1 -1
  12. package/dist/cjs/hooks/useTextDirection/useTextDirection.cjs +1 -1
  13. package/dist/cjs/hooks/useTextDirection/useTextDirection.cjs.map +1 -1
  14. package/dist/cjs/hooks/useThrottleCallback/useThrottleCallback.cjs +1 -1
  15. package/dist/cjs/hooks/useThrottleCallback/useThrottleCallback.cjs.map +1 -1
  16. package/dist/cjs/hooks/useTime/useTime.cjs +1 -1
  17. package/dist/cjs/hooks/useTime/useTime.cjs.map +1 -1
  18. package/dist/cjs/index.cjs +1 -1
  19. package/dist/esm/hooks/useBattery/useBattery.mjs +8 -8
  20. package/dist/esm/hooks/useBattery/useBattery.mjs.map +1 -1
  21. package/dist/esm/hooks/useBroadcastChannel/useBroadcastChannel.mjs +32 -0
  22. package/dist/esm/hooks/useBroadcastChannel/useBroadcastChannel.mjs.map +1 -0
  23. package/dist/esm/hooks/useClickOutside/useClickOutside.mjs +12 -12
  24. package/dist/esm/hooks/useClickOutside/useClickOutside.mjs.map +1 -1
  25. package/dist/esm/hooks/useDisplayMedia/useDisplayMedia.mjs +23 -25
  26. package/dist/esm/hooks/useDisplayMedia/useDisplayMedia.mjs.map +1 -1
  27. package/dist/esm/hooks/useMemory/useMemory.mjs +9 -8
  28. package/dist/esm/hooks/useMemory/useMemory.mjs.map +1 -1
  29. package/dist/esm/hooks/useRerender/useRerender.mjs.map +1 -1
  30. package/dist/esm/hooks/useTextDirection/useTextDirection.mjs +9 -10
  31. package/dist/esm/hooks/useTextDirection/useTextDirection.mjs.map +1 -1
  32. package/dist/esm/hooks/useThrottleCallback/useThrottleCallback.mjs +11 -11
  33. package/dist/esm/hooks/useThrottleCallback/useThrottleCallback.mjs.map +1 -1
  34. package/dist/esm/hooks/useTime/useTime.mjs +10 -6
  35. package/dist/esm/hooks/useTime/useTime.mjs.map +1 -1
  36. package/dist/esm/index.mjs +321 -319
  37. package/dist/esm/index.mjs.map +1 -1
  38. package/dist/types/hooks/index.d.ts +1 -0
  39. package/dist/types/hooks/useBroadcastChannel/useBroadcastChannel.d.ts +32 -0
  40. package/dist/types/hooks/useTime/useTime.d.ts +8 -0
  41. package/package.json +1 -1
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("react"),c=()=>{const n=typeof navigator<"u"&&"getBattery"in navigator&&typeof navigator.getBattery=="function",[a,i]=r.useState({loading:!0,level:0,charging:!1,chargingTime:0,dischargingTime:0});return r.useEffect(()=>{if(!n)return i({...a,loading:!1});let e;const t=()=>i({loading:!1,level:e?.level??0,charging:e?.charging??!1,dischargingTime:e?.dischargingTime??0,chargingTime:e?.chargingTime??0});return navigator.getBattery().then(g=>{e=g,t(),e.addEventListener("levelchange",t),e.addEventListener("chargingchange",t),e.addEventListener("chargingtimechange",t),e.addEventListener("dischargingtimechange",t)}),()=>{e&&(e.removeEventListener("levelchange",t),e.removeEventListener("chargingchange",t),e.removeEventListener("chargingtimechange",t),e.removeEventListener("dischargingtimechange",t))}},[]),{supported:n,value:a}};exports.useBattery=c;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react"),c=()=>{const t=typeof navigator<"u"&&"getBattery"in navigator&&typeof navigator.getBattery=="function",[i,r]=a.useState({loading:t,level:0,charging:!1,chargingTime:0,dischargingTime:0});return a.useEffect(()=>{if(!t)return;let e;const n=()=>r({loading:!1,level:e?.level??0,charging:e?.charging??!1,dischargingTime:e?.dischargingTime??0,chargingTime:e?.chargingTime??0});return navigator.getBattery().then(g=>{e=g,n(),e.addEventListener("levelchange",n),e.addEventListener("chargingchange",n),e.addEventListener("chargingtimechange",n),e.addEventListener("dischargingtimechange",n)}),()=>{e&&(console.log("unmount",e),e.removeEventListener("levelchange",n),e.removeEventListener("chargingchange",n),e.removeEventListener("chargingtimechange",n),e.removeEventListener("dischargingtimechange",n))}},[]),{supported:t,value:i}};exports.useBattery=c;
2
2
  //# sourceMappingURL=useBattery.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useBattery.cjs","sources":["../../../../src/hooks/useBattery/useBattery.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\n\nexport interface BatteryManager extends EventTarget {\n charging: boolean;\n chargingTime: number;\n dischargingTime: number;\n level: number;\n}\n\ndeclare global {\n interface Navigator {\n readonly getBattery: () => Promise<BatteryManager>;\n }\n}\n\n/** The use battery value type */\nexport interface UseBatteryValue {\n /** Is charging battery? */\n charging: boolean;\n /** Time until the battery is fully charged */\n chargingTime: number;\n /** Time until the battery is completely discharged */\n dischargingTime: number;\n /** Battery charge level from 0 to 1 */\n level: number;\n /** Is battery information loading? */\n loading: boolean;\n}\n\n/** The use battery return type */\nexport interface UseBatteryStateReturn {\n /** Whether the battery api is supported*/\n supported: boolean;\n /** The use battery value type */\n value: UseBatteryValue;\n}\n\n/**\n * @name useBattery\n * @description - Hook for getting information about battery status\n * @category Browser\n *\n * @browserapi navigator.getBattery https://developer.mozilla.org/en-US/docs/Web/API/Navigator/getBattery\n *\n * @returns {UseBatteryStateReturn} Object containing battery information & Battery API support\n *\n * @example\n * const { supported, loading, charging, chargingTime, dischargingTime, level } = useBattery();\n */\nexport const useBattery = (): UseBatteryStateReturn => {\n const supported =\n typeof navigator !== 'undefined' &&\n 'getBattery' in navigator &&\n typeof navigator.getBattery === 'function';\n const [value, setValue] = useState<UseBatteryValue>({\n loading: true,\n level: 0,\n charging: false,\n chargingTime: 0,\n dischargingTime: 0\n });\n\n useEffect(() => {\n if (!supported) return setValue({ ...value, loading: false });\n\n let battery: BatteryManager | null;\n\n const onChange = () =>\n setValue({\n loading: false,\n level: battery?.level ?? 0,\n charging: battery?.charging ?? false,\n dischargingTime: battery?.dischargingTime ?? 0,\n chargingTime: battery?.chargingTime ?? 0\n });\n\n navigator.getBattery().then((batteryManager) => {\n battery = batteryManager;\n onChange();\n\n battery.addEventListener('levelchange', onChange);\n battery.addEventListener('chargingchange', onChange);\n battery.addEventListener('chargingtimechange', onChange);\n battery.addEventListener('dischargingtimechange', onChange);\n });\n\n return () => {\n if (!battery) return;\n battery.removeEventListener('levelchange', onChange);\n battery.removeEventListener('chargingchange', onChange);\n battery.removeEventListener('chargingtimechange', onChange);\n battery.removeEventListener('dischargingtimechange', onChange);\n };\n }, []);\n\n return { supported, value };\n};\n"],"names":["useBattery","supported","value","setValue","useState","useEffect","battery","onChange","batteryManager"],"mappings":"yGAiDaA,EAAa,IAA6B,CACrD,MAAMC,EACJ,OAAO,UAAc,KACrB,eAAgB,WAChB,OAAO,UAAU,YAAe,WAC5B,CAACC,EAAOC,CAAQ,EAAIC,WAA0B,CAClD,QAAS,GACT,MAAO,EACP,SAAU,GACV,aAAc,EACd,gBAAiB,CAAA,CAClB,EAEDC,OAAAA,EAAAA,UAAU,IAAM,CACd,GAAI,CAACJ,EAAW,OAAOE,EAAS,CAAE,GAAGD,EAAO,QAAS,GAAO,EAE5D,IAAII,EAEJ,MAAMC,EAAW,IACfJ,EAAS,CACP,QAAS,GACT,MAAOG,GAAS,OAAS,EACzB,SAAUA,GAAS,UAAY,GAC/B,gBAAiBA,GAAS,iBAAmB,EAC7C,aAAcA,GAAS,cAAgB,CAAA,CACxC,EAEH,iBAAU,WAAA,EAAa,KAAME,GAAmB,CAC9CF,EAAUE,EACVD,EAAA,EAEAD,EAAQ,iBAAiB,cAAeC,CAAQ,EAChDD,EAAQ,iBAAiB,iBAAkBC,CAAQ,EACnDD,EAAQ,iBAAiB,qBAAsBC,CAAQ,EACvDD,EAAQ,iBAAiB,wBAAyBC,CAAQ,CAAA,CAC3D,EAEM,IAAM,CACND,IACLA,EAAQ,oBAAoB,cAAeC,CAAQ,EACnDD,EAAQ,oBAAoB,iBAAkBC,CAAQ,EACtDD,EAAQ,oBAAoB,qBAAsBC,CAAQ,EAC1DD,EAAQ,oBAAoB,wBAAyBC,CAAQ,EAAA,CAC/D,EACC,EAAE,EAEE,CAAE,UAAAN,EAAW,MAAAC,CAAA,CACtB"}
1
+ {"version":3,"file":"useBattery.cjs","sources":["../../../../src/hooks/useBattery/useBattery.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\n\nexport interface BatteryManager extends EventTarget {\n charging: boolean;\n chargingTime: number;\n dischargingTime: number;\n level: number;\n}\n\ndeclare global {\n interface Navigator {\n readonly getBattery: () => Promise<BatteryManager>;\n }\n}\n\n/** The use battery value type */\nexport interface UseBatteryValue {\n /** Is charging battery? */\n charging: boolean;\n /** Time until the battery is fully charged */\n chargingTime: number;\n /** Time until the battery is completely discharged */\n dischargingTime: number;\n /** Battery charge level from 0 to 1 */\n level: number;\n /** Is battery information loading? */\n loading: boolean;\n}\n\n/** The use battery return type */\nexport interface UseBatteryStateReturn {\n /** Whether the battery api is supported*/\n supported: boolean;\n /** The use battery value type */\n value: UseBatteryValue;\n}\n\n/**\n * @name useBattery\n * @description - Hook for getting information about battery status\n * @category Browser\n *\n * @browserapi navigator.getBattery https://developer.mozilla.org/en-US/docs/Web/API/Navigator/getBattery\n *\n * @returns {UseBatteryStateReturn} Object containing battery information & Battery API support\n *\n * @example\n * const { supported, loading, charging, chargingTime, dischargingTime, level } = useBattery();\n */\nexport const useBattery = (): UseBatteryStateReturn => {\n const supported =\n typeof navigator !== 'undefined' &&\n 'getBattery' in navigator &&\n typeof navigator.getBattery === 'function';\n const [value, setValue] = useState<UseBatteryValue>({\n loading: supported,\n level: 0,\n charging: false,\n chargingTime: 0,\n dischargingTime: 0\n });\n\n useEffect(() => {\n if (!supported) return;\n let battery: BatteryManager | null;\n\n const onChange = () =>\n setValue({\n loading: false,\n level: battery?.level ?? 0,\n charging: battery?.charging ?? false,\n dischargingTime: battery?.dischargingTime ?? 0,\n chargingTime: battery?.chargingTime ?? 0\n });\n\n navigator.getBattery().then((batteryManager) => {\n battery = batteryManager;\n onChange();\n\n battery.addEventListener('levelchange', onChange);\n battery.addEventListener('chargingchange', onChange);\n battery.addEventListener('chargingtimechange', onChange);\n battery.addEventListener('dischargingtimechange', onChange);\n });\n\n return () => {\n if (!battery) return;\n console.log('unmount', battery);\n battery.removeEventListener('levelchange', onChange);\n battery.removeEventListener('chargingchange', onChange);\n battery.removeEventListener('chargingtimechange', onChange);\n battery.removeEventListener('dischargingtimechange', onChange);\n };\n }, []);\n\n return { supported, value };\n};\n"],"names":["useBattery","supported","value","setValue","useState","useEffect","battery","onChange","batteryManager"],"mappings":"yGAiDaA,EAAa,IAA6B,CACrD,MAAMC,EACJ,OAAO,UAAc,KACrB,eAAgB,WAChB,OAAO,UAAU,YAAe,WAC5B,CAACC,EAAOC,CAAQ,EAAIC,WAA0B,CAClD,QAASH,EACT,MAAO,EACP,SAAU,GACV,aAAc,EACd,gBAAiB,CAAA,CAClB,EAEDI,OAAAA,EAAAA,UAAU,IAAM,CACd,GAAI,CAACJ,EAAW,OAChB,IAAIK,EAEJ,MAAMC,EAAW,IACfJ,EAAS,CACP,QAAS,GACT,MAAOG,GAAS,OAAS,EACzB,SAAUA,GAAS,UAAY,GAC/B,gBAAiBA,GAAS,iBAAmB,EAC7C,aAAcA,GAAS,cAAgB,CAAA,CACxC,EAEH,iBAAU,WAAA,EAAa,KAAME,GAAmB,CAC9CF,EAAUE,EACVD,EAAA,EAEAD,EAAQ,iBAAiB,cAAeC,CAAQ,EAChDD,EAAQ,iBAAiB,iBAAkBC,CAAQ,EACnDD,EAAQ,iBAAiB,qBAAsBC,CAAQ,EACvDD,EAAQ,iBAAiB,wBAAyBC,CAAQ,CAAA,CAC3D,EAEM,IAAM,CACND,IACL,QAAQ,IAAI,UAAWA,CAAO,EAC9BA,EAAQ,oBAAoB,cAAeC,CAAQ,EACnDD,EAAQ,oBAAoB,iBAAkBC,CAAQ,EACtDD,EAAQ,oBAAoB,qBAAsBC,CAAQ,EAC1DD,EAAQ,oBAAoB,wBAAyBC,CAAQ,EAAA,CAC/D,EACC,EAAE,EAEE,CAAE,UAAAN,EAAW,MAAAC,CAAA,CACtB"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react"),p=(s,d)=>{const o=typeof window<"u"&&"BroadcastChannel"in window,[l,c]=t.useState(!1),[i,f]=t.useState(),[g,v]=t.useState(),e=t.useRef(void 0);t.useEffect(()=>{if(!o)return;e.current=new BroadcastChannel(s);const r=n=>{f(n.data),d?.(n.data)},a=n=>v(n),u=()=>c(!0);return e.current.addEventListener("message",r),e.current.addEventListener("messageerror",a),e.current.addEventListener("close",u),()=>{e.current&&(e.current.removeEventListener("message",r),e.current.removeEventListener("messageerror",a),e.current.removeEventListener("close",u),e.current.close())}},[s]);const E=r=>{console.log("post",r,e.current),e.current&&e.current.postMessage(r)},m=()=>{e.current&&(e.current.close(),c(!0))};return{supported:o,channel:e.current,data:i,post:E,close:m,error:g,closed:l}};exports.useBroadcastChannel=p;
2
+ //# sourceMappingURL=useBroadcastChannel.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useBroadcastChannel.cjs","sources":["../../../../src/hooks/useBroadcastChannel/useBroadcastChannel.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\n\n/** The use broadcast channel return type */\nexport interface UseBroadcastChannelReturn<Data = unknown> {\n /** The underlying BroadcastChannel instance if supported, undefined otherwise */\n channel?: BroadcastChannel;\n /** Whether the channel has been closed */\n closed: boolean;\n /** The most recently received data from other contexts */\n data?: Data;\n /** Error object if any error occurred during channel operations */\n error?: Event;\n /** Whether the BroadcastChannel API is supported in the current environment */\n supported: boolean;\n /** Function to close the channel and clean up resources */\n close: () => void;\n /** Function to send data to other contexts through the channel */\n post: (data: Data) => void;\n}\n\n/**\n * @name useBroadcastChannel\n * @description Hook that provides cross-tab/window communication\n * @category Browser\n *\n * @browserapi BroadcastChannel https://developer.mozilla.org/en-US/docs/Web/API/BroadcastChannel\n *\n * @param {string} name The name of the channel\n * @param {Function} callback A callback function that will be called when a message is received\n * @returns {UseBroadcastChannelReturn} An object containing the channel state and controls\n *\n * @example\n * const { supported, data, post, error } = useBroadcastChannel('channel');\n */\nexport const useBroadcastChannel = <Data = unknown>(\n name: string,\n callback?: (data: Data) => void\n): UseBroadcastChannelReturn<Data> => {\n const supported = typeof window !== 'undefined' && 'BroadcastChannel' in window;\n\n const [closed, setClosed] = useState(false);\n const [data, setData] = useState<Data>();\n const [error, setError] = useState<MessageEvent>();\n const channelRef = useRef<BroadcastChannel>(undefined);\n\n useEffect(() => {\n if (!supported) return;\n\n channelRef.current = new BroadcastChannel(name);\n\n const onMessage = (event: MessageEvent) => {\n setData(event.data);\n callback?.(event.data);\n };\n const onMessageError = (event: MessageEvent) => setError(event);\n const onClose = () => setClosed(true);\n\n channelRef.current.addEventListener('message', onMessage);\n channelRef.current.addEventListener('messageerror', onMessageError);\n channelRef.current.addEventListener('close', onClose);\n\n return () => {\n if (channelRef.current) {\n channelRef.current.removeEventListener('message', onMessage);\n channelRef.current.removeEventListener('messageerror', onMessageError);\n channelRef.current.removeEventListener('close', onClose);\n channelRef.current.close();\n }\n };\n }, [name]);\n\n const post = (data: Data) => {\n console.log('post', data, channelRef.current);\n if (!channelRef.current) return;\n channelRef.current.postMessage(data);\n };\n\n const close = () => {\n if (!channelRef.current) return;\n channelRef.current.close();\n setClosed(true);\n };\n\n return {\n supported,\n channel: channelRef.current,\n data,\n post,\n close,\n error,\n closed\n };\n};\n"],"names":["useBroadcastChannel","name","callback","supported","closed","setClosed","useState","data","setData","error","setError","channelRef","useRef","useEffect","onMessage","event","onMessageError","onClose","post","close"],"mappings":"yGAkCaA,EAAsB,CACjCC,EACAC,IACoC,CACpC,MAAMC,EAAY,OAAO,OAAW,KAAe,qBAAsB,OAEnE,CAACC,EAAQC,CAAS,EAAIC,EAAAA,SAAS,EAAK,EACpC,CAACC,EAAMC,CAAO,EAAIF,WAAA,EAClB,CAACG,EAAOC,CAAQ,EAAIJ,WAAA,EACpBK,EAAaC,EAAAA,OAAyB,MAAS,EAErDC,EAAAA,UAAU,IAAM,CACd,GAAI,CAACV,EAAW,OAEhBQ,EAAW,QAAU,IAAI,iBAAiBV,CAAI,EAE9C,MAAMa,EAAaC,GAAwB,CACzCP,EAAQO,EAAM,IAAI,EAClBb,IAAWa,EAAM,IAAI,CAAA,EAEjBC,EAAkBD,GAAwBL,EAASK,CAAK,EACxDE,EAAU,IAAMZ,EAAU,EAAI,EAEpC,OAAAM,EAAW,QAAQ,iBAAiB,UAAWG,CAAS,EACxDH,EAAW,QAAQ,iBAAiB,eAAgBK,CAAc,EAClEL,EAAW,QAAQ,iBAAiB,QAASM,CAAO,EAE7C,IAAM,CACPN,EAAW,UACbA,EAAW,QAAQ,oBAAoB,UAAWG,CAAS,EAC3DH,EAAW,QAAQ,oBAAoB,eAAgBK,CAAc,EACrEL,EAAW,QAAQ,oBAAoB,QAASM,CAAO,EACvDN,EAAW,QAAQ,MAAA,EACrB,CACF,EACC,CAACV,CAAI,CAAC,EAET,MAAMiB,EAAQX,GAAe,CAC3B,QAAQ,IAAI,OAAQA,EAAMI,EAAW,OAAO,EACvCA,EAAW,SAChBA,EAAW,QAAQ,YAAYJ,CAAI,CAAA,EAG/BY,EAAQ,IAAM,CACbR,EAAW,UAChBA,EAAW,QAAQ,MAAA,EACnBN,EAAU,EAAI,EAAA,EAGhB,MAAO,CACL,UAAAF,EACA,QAASQ,EAAW,QACpB,KAAAJ,EACA,KAAAW,EACA,MAAAC,EACA,MAAAV,EACA,OAAAL,CAAA,CAEJ"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("react"),l=require("../useRefState/useRefState.cjs"),a=require("../../utils/helpers/isTarget.cjs"),f=require("../../utils/helpers/getElement.cjs"),d=(...e)=>{const t=a.isTarget(e[0])?e[0]:void 0,r=e[1]?e[1]:e[0],n=l.useRefState(),c=o.useRef(r);if(c.current=r,o.useEffect(()=>{if(!t&&!n.state)return;const i=s=>{const u=t?f.getElement(t):n.current;u&&!u.contains(s.target)&&c.current(s)};return document.addEventListener("click",i),()=>{document.removeEventListener("click",i)}},[t,n.state]),!t)return n};exports.useClickOutside=d;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("react"),l=require("../useRefState/useRefState.cjs"),a=require("../../utils/helpers/isTarget.cjs"),f=require("../../utils/helpers/getElement.cjs"),g=(...t)=>{const e=a.isTarget(t[0])?t[0]:void 0,r=t[1]?t[1]:t[0],n=l.useRefState(),c=u.useRef(r);if(c.current=r,u.useEffect(()=>{if(console.log("target",e),!e&&!n.state)return;const i=s=>{const o=e?f.getElement(e):n.current;o&&!o.contains(s.target)&&c.current(s)};return document.addEventListener("click",i),()=>{document.removeEventListener("click",i)}},[e,n.state]),!e)return n};exports.useClickOutside=g;
2
2
  //# sourceMappingURL=useClickOutside.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useClickOutside.cjs","sources":["../../../../src/hooks/useClickOutside/useClickOutside.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 interface UseClickOutside {\n (target: HookTarget, callback: (event: Event) => void): void;\n\n <Target extends Element>(callback: (event: Event) => void, target?: never): StateRef<Target>;\n}\n\n/**\n * @name useClickOutside\n * @description - Hook to handle click events outside the specified target element(s)\n * @category Sensors\n *\n * @overload\n * @param {HookTarget} target The target element(s) to detect outside clicks for\n * @param {(event: Event) => void} callback The callback to execute when a click outside the target is detected\n * @returns {void}\n *\n * @example\n * useClickOutside(ref, () => console.log('click outside'));\n *\n * @overload\n * @template Target The target element(s)\n * @param {(event: Event) => void} callback The callback to execute when a click outside the target is detected\n * @returns {(node: Target) => void} A React ref to attach to the target element\n *\n * @example\n * const ref = useClickOutside<HTMLDivElement>(() => console.log('click outside'));\n *\n * @see {@link https://siberiacancode.github.io/reactuse/functions/hooks/useClickOutside.html}\n */\nexport const useClickOutside = ((...params: any[]) => {\n const target = (isTarget(params[0]) ? params[0] : undefined) as HookTarget | undefined;\n const callback = (params[1] ? params[1] : params[0]) as (event: Event) => void;\n\n const internalRef = useRefState<Element>();\n const internalCallbackRef = useRef(callback);\n internalCallbackRef.current = callback;\n\n useEffect(() => {\n if (!target && !internalRef.state) return;\n const onClick = (event: Event) => {\n const element = (target ? getElement(target) : internalRef.current) as Element;\n\n if (element && !element.contains(event.target as Node)) {\n internalCallbackRef.current(event);\n }\n };\n\n document.addEventListener('click', onClick);\n\n return () => {\n document.removeEventListener('click', onClick);\n };\n }, [target, internalRef.state]);\n\n if (target) return;\n return internalRef;\n}) as UseClickOutside;\n"],"names":["useClickOutside","params","target","isTarget","callback","internalRef","useRefState","internalCallbackRef","useRef","useEffect","onClick","event","element","getElement"],"mappings":"mPAuCaA,EAAmB,IAAIC,IAAkB,CACpD,MAAMC,EAAUC,EAAAA,SAASF,EAAO,CAAC,CAAC,EAAIA,EAAO,CAAC,EAAI,OAC5CG,EAAYH,EAAO,CAAC,EAAIA,EAAO,CAAC,EAAIA,EAAO,CAAC,EAE5CI,EAAcC,EAAAA,YAAA,EACdC,EAAsBC,EAAAA,OAAOJ,CAAQ,EAoB3C,GAnBAG,EAAoB,QAAUH,EAE9BK,EAAAA,UAAU,IAAM,CACd,GAAI,CAACP,GAAU,CAACG,EAAY,MAAO,OACnC,MAAMK,EAAWC,GAAiB,CAChC,MAAMC,EAAWV,EAASW,EAAAA,WAAWX,CAAM,EAAIG,EAAY,QAEvDO,GAAW,CAACA,EAAQ,SAASD,EAAM,MAAc,GACnDJ,EAAoB,QAAQI,CAAK,CACnC,EAGF,gBAAS,iBAAiB,QAASD,CAAO,EAEnC,IAAM,CACX,SAAS,oBAAoB,QAASA,CAAO,CAAA,CAC/C,EACC,CAACR,EAAQG,EAAY,KAAK,CAAC,EAE1B,CAAAH,EACJ,OAAOG,CACT"}
1
+ {"version":3,"file":"useClickOutside.cjs","sources":["../../../../src/hooks/useClickOutside/useClickOutside.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 interface UseClickOutside {\n (target: HookTarget, callback: (event: Event) => void): void;\n\n <Target extends Element>(callback: (event: Event) => void, target?: never): StateRef<Target>;\n}\n\n/**\n * @name useClickOutside\n * @description - Hook to handle click events outside the specified target element(s)\n * @category Sensors\n *\n * @overload\n * @param {HookTarget} target The target element(s) to detect outside clicks for\n * @param {(event: Event) => void} callback The callback to execute when a click outside the target is detected\n * @returns {void}\n *\n * @example\n * useClickOutside(ref, () => console.log('click outside'));\n *\n * @overload\n * @template Target The target element(s)\n * @param {(event: Event) => void} callback The callback to execute when a click outside the target is detected\n * @returns {(node: Target) => void} A React ref to attach to the target element\n *\n * @example\n * const ref = useClickOutside<HTMLDivElement>(() => console.log('click outside'));\n *\n * @see {@link https://siberiacancode.github.io/reactuse/functions/hooks/useClickOutside.html}\n */\nexport const useClickOutside = ((...params: any[]) => {\n const target = (isTarget(params[0]) ? params[0] : undefined) as HookTarget | undefined;\n const callback = (params[1] ? params[1] : params[0]) as (event: Event) => void;\n\n const internalRef = useRefState<Element>();\n const internalCallbackRef = useRef(callback);\n internalCallbackRef.current = callback;\n\n useEffect(() => {\n console.log('target', target);\n if (!target && !internalRef.state) return;\n const onClick = (event: Event) => {\n const element = (target ? getElement(target) : internalRef.current) as Element;\n\n if (element && !element.contains(event.target as Node)) {\n internalCallbackRef.current(event);\n }\n };\n\n document.addEventListener('click', onClick);\n\n return () => {\n document.removeEventListener('click', onClick);\n };\n }, [target, internalRef.state]);\n\n if (target) return;\n return internalRef;\n}) as UseClickOutside;\n"],"names":["useClickOutside","params","target","isTarget","callback","internalRef","useRefState","internalCallbackRef","useRef","useEffect","onClick","event","element","getElement"],"mappings":"mPAuCaA,EAAmB,IAAIC,IAAkB,CACpD,MAAMC,EAAUC,EAAAA,SAASF,EAAO,CAAC,CAAC,EAAIA,EAAO,CAAC,EAAI,OAC5CG,EAAYH,EAAO,CAAC,EAAIA,EAAO,CAAC,EAAIA,EAAO,CAAC,EAE5CI,EAAcC,EAAAA,YAAA,EACdC,EAAsBC,EAAAA,OAAOJ,CAAQ,EAqB3C,GApBAG,EAAoB,QAAUH,EAE9BK,EAAAA,UAAU,IAAM,CAEd,GADA,QAAQ,IAAI,SAAUP,CAAM,EACxB,CAACA,GAAU,CAACG,EAAY,MAAO,OACnC,MAAMK,EAAWC,GAAiB,CAChC,MAAMC,EAAWV,EAASW,EAAAA,WAAWX,CAAM,EAAIG,EAAY,QAEvDO,GAAW,CAACA,EAAQ,SAASD,EAAM,MAAc,GACnDJ,EAAoB,QAAQI,CAAK,CACnC,EAGF,gBAAS,iBAAiB,QAASD,CAAO,EAEnC,IAAM,CACX,SAAS,oBAAoB,QAASA,CAAO,CAAA,CAC/C,EACC,CAACR,EAAQG,EAAY,KAAK,CAAC,EAE1B,CAAAH,EACJ,OAAOG,CACT"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("react"),y=require("../useRefState/useRefState.cjs"),p=require("../../utils/helpers/isTarget.cjs"),d=require("../../utils/helpers/getElement.cjs"),D=(...s)=>{const a=typeof navigator<"u"&&"mediaDevices"in navigator&&!!navigator.mediaDevices&&"getDisplayMedia"in navigator.mediaDevices,e=p.isTarget(s[0])?s[0]:void 0,u=s[1]?s[1]:s[0],m=u?.immediately??!1,[f,g]=l.useState(!1),t=l.useRef(null),r=y.useRefState(),c=()=>{if(!t.current||!a)return;const n=e?d.getElement(e):r.current;n&&(g(!1),n.srcObject=null,t.current.getTracks().forEach(i=>i.stop()),t.current=null)},o=async()=>{if(!a)return;const n=e?d.getElement(e):r.current;if(!n)return;const i=await navigator.mediaDevices.getDisplayMedia({video:u?.video,audio:u?.audio});return g(!0),t.current=i,n.srcObject=i,i.getTracks().forEach(v=>v.onended=c),i};return l.useEffect(()=>{if(!(!a||!m||!e&&!r.state||!(e?d.getElement(e):r.current)))return o(),()=>{c()}},[e,r.state]),e?{stream:t.current,sharing:f,supported:a,start:o,stop:c}:{stream:t.current,sharing:f,supported:a,start:o,stop:c,ref:r}};exports.useDisplayMedia=D;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("react"),m=require("../useRefState/useRefState.cjs"),y=require("../../utils/helpers/isTarget.cjs"),p=require("../../utils/helpers/getElement.cjs"),D=(...r)=>{const n=typeof navigator<"u"&&"mediaDevices"in navigator&&!!navigator.mediaDevices&&"getDisplayMedia"in navigator.mediaDevices,i=y.isTarget(r[0])?r[0]:void 0,o=r[1]?r[1]:r[0],g=o?.immediately??!1,[d,f]=u.useState(!1),s=u.useRef(null),t=u.useRef(null),a=m.useRefState(),c=()=>{!t.current||!n||!s.current||(f(!1),s.current.srcObject=null,t.current.getTracks().forEach(e=>e.stop()),t.current=null)},l=async()=>{if(!n||!s.current)return;const e=await navigator.mediaDevices.getDisplayMedia({video:o?.video,audio:o?.audio});return f(!0),t.current=e,s.current.srcObject=e,e.getTracks().forEach(v=>v.onended=c),e};return u.useEffect(()=>{if(!n||!i&&!a.state)return;const e=i?p.getElement(i):a.current;if(e&&(s.current=e,!!g))return l(),()=>{c()}},[i,a.state]),i?{stream:t.current,sharing:d,supported:n,start:l,stop:c}:{stream:t.current,sharing:d,supported:n,start:l,stop:c,ref:a}};exports.useDisplayMedia=D;
2
2
  //# sourceMappingURL=useDisplayMedia.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useDisplayMedia.cjs","sources":["../../../../src/hooks/useDisplayMedia/useDisplayMedia.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 display media return type */\nexport interface UseDisplayMediaReturn {\n /** Whether screen sharing is currently active */\n sharing: boolean;\n /** The media stream object */\n stream: MediaStream | null;\n /** Whether the display media API is supported */\n supported: boolean;\n /** Start screen sharing */\n start: () => Promise<void>;\n /** Stop screen sharing */\n stop: () => void;\n}\n\n/** The use display media options type */\nexport interface UseDisplayMediaOptions {\n /** Whether to enable audio sharing */\n audio?: boolean | MediaTrackConstraints;\n /** Whether to start immediately */\n immediately?: boolean;\n /** Whether to enable video sharing */\n video?: boolean | MediaTrackConstraints;\n}\n\nexport interface UseDisplayMedia {\n (target: HookTarget, options?: UseDisplayMediaOptions): UseDisplayMediaReturn;\n\n <Target extends HTMLVideoElement>(\n options?: UseDisplayMediaOptions,\n target?: never\n ): { ref: StateRef<Target> } & UseDisplayMediaReturn;\n}\n\n/**\n * @name useDisplayMedia\n * @description - Hook that provides screen sharing functionality\n * @category Browser\n *\n * @browserapi mediaDevices.getDisplayMedia https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getDisplayMedia\n *\n * @overload\n * @param {HookTarget} target The target video element to display the media stream\n * @param {boolean | MediaTrackConstraints} [options.audio] Whether to enable audio sharing\n * @param {boolean} [options.immediately=false] Whether to start immediately\n * @param {boolean | MediaTrackConstraints} [options.video] Whether to enable video sharing\n * @returns {UseDisplayMediaReturn} Object containing stream, sharing status and control methods\n *\n * @example\n * const { stream, sharing, start, stop } = useDisplayMedia(ref);\n *\n * @overload\n * @template Target The target video element\n * @param {boolean | MediaTrackConstraints} [options.audio] Whether to enable audio sharing\n * @param {boolean} [options.immediately=false] Whether to start immediately\n * @param {boolean | MediaTrackConstraints} [options.video] Whether to enable video sharing\n * @returns {UseDisplayMediaReturn & { ref: StateRef<HTMLVideoElement> }} Object containing stream, sharing status, control methods and ref\n *\n * @example\n * const { ref, stream, sharing, start, stop } = useDisplayMedia<HTMLVideoElement>();\n */\nexport const useDisplayMedia = ((...params: any[]) => {\n const supported =\n typeof navigator !== 'undefined' &&\n 'mediaDevices' in navigator &&\n !!navigator.mediaDevices &&\n 'getDisplayMedia' in navigator.mediaDevices;\n const target = (isTarget(params[0]) ? params[0] : undefined) as HookTarget | undefined;\n const options = (params[1] ? params[1] : params[0]) as UseDisplayMediaOptions | undefined;\n const immediately = options?.immediately ?? false;\n\n const [sharing, setSharing] = useState(false);\n\n const streamRef = useRef<MediaStream | null>(null);\n const internalRef = useRefState<Element>();\n\n const stop = () => {\n if (!streamRef.current || !supported) return;\n\n const element = (target ? getElement(target) : internalRef.current) as HTMLVideoElement;\n if (!element) return;\n\n setSharing(false);\n element.srcObject = null;\n streamRef.current.getTracks().forEach((track) => track.stop());\n streamRef.current = null;\n };\n\n const start = async () => {\n if (!supported) return;\n\n const element = (target ? getElement(target) : internalRef.current) as HTMLVideoElement;\n if (!element) return;\n\n const displayMedia = await navigator.mediaDevices.getDisplayMedia({\n video: options?.video,\n audio: options?.audio\n });\n\n setSharing(true);\n streamRef.current = displayMedia;\n element.srcObject = displayMedia;\n\n displayMedia.getTracks().forEach((track) => (track.onended = stop));\n return displayMedia;\n };\n\n useEffect(() => {\n if (!supported || !immediately) return;\n if (!target && !internalRef.state) return;\n\n const element = (target ? getElement(target) : internalRef.current) as HTMLVideoElement;\n if (!element) return;\n\n start();\n\n return () => {\n stop();\n };\n }, [target, internalRef.state]);\n\n if (target)\n return {\n stream: streamRef.current,\n sharing,\n supported,\n start,\n stop\n };\n\n return {\n stream: streamRef.current,\n sharing,\n supported,\n start,\n stop,\n ref: internalRef\n };\n}) as UseDisplayMedia;\n"],"names":["useDisplayMedia","params","supported","target","isTarget","options","immediately","sharing","setSharing","useState","streamRef","useRef","internalRef","useRefState","stop","element","getElement","track","start","displayMedia","useEffect"],"mappings":"mPAsEaA,EAAmB,IAAIC,IAAkB,CACpD,MAAMC,EACJ,OAAO,UAAc,KACrB,iBAAkB,WAClB,CAAC,CAAC,UAAU,cACZ,oBAAqB,UAAU,aAC3BC,EAAUC,EAAAA,SAASH,EAAO,CAAC,CAAC,EAAIA,EAAO,CAAC,EAAI,OAC5CI,EAAWJ,EAAO,CAAC,EAAIA,EAAO,CAAC,EAAIA,EAAO,CAAC,EAC3CK,EAAcD,GAAS,aAAe,GAEtC,CAACE,EAASC,CAAU,EAAIC,EAAAA,SAAS,EAAK,EAEtCC,EAAYC,EAAAA,OAA2B,IAAI,EAC3CC,EAAcC,EAAAA,YAAA,EAEdC,EAAO,IAAM,CACjB,GAAI,CAACJ,EAAU,SAAW,CAACR,EAAW,OAEtC,MAAMa,EAAWZ,EAASa,EAAAA,WAAWb,CAAM,EAAIS,EAAY,QACtDG,IAELP,EAAW,EAAK,EAChBO,EAAQ,UAAY,KACpBL,EAAU,QAAQ,YAAY,QAASO,GAAUA,EAAM,MAAM,EAC7DP,EAAU,QAAU,KAAA,EAGhBQ,EAAQ,SAAY,CACxB,GAAI,CAAChB,EAAW,OAEhB,MAAMa,EAAWZ,EAASa,EAAAA,WAAWb,CAAM,EAAIS,EAAY,QAC3D,GAAI,CAACG,EAAS,OAEd,MAAMI,EAAe,MAAM,UAAU,aAAa,gBAAgB,CAChE,MAAOd,GAAS,MAChB,MAAOA,GAAS,KAAA,CACjB,EAED,OAAAG,EAAW,EAAI,EACfE,EAAU,QAAUS,EACpBJ,EAAQ,UAAYI,EAEpBA,EAAa,YAAY,QAASF,GAAWA,EAAM,QAAUH,CAAK,EAC3DK,CAAA,EAiBT,OAdAC,EAAAA,UAAU,IAAM,CAKd,GAJI,GAAClB,GAAa,CAACI,GACf,CAACH,GAAU,CAACS,EAAY,OAGxB,EADaT,EAASa,EAAAA,WAAWb,CAAM,EAAIS,EAAY,UAG3D,OAAAM,EAAA,EAEO,IAAM,CACXJ,EAAA,CAAK,CACP,EACC,CAACX,EAAQS,EAAY,KAAK,CAAC,EAE1BT,EACK,CACL,OAAQO,EAAU,QAClB,QAAAH,EACA,UAAAL,EACA,MAAAgB,EACA,KAAAJ,CAAA,EAGG,CACL,OAAQJ,EAAU,QAClB,QAAAH,EACA,UAAAL,EACA,MAAAgB,EACA,KAAAJ,EACA,IAAKF,CAAA,CAET"}
1
+ {"version":3,"file":"useDisplayMedia.cjs","sources":["../../../../src/hooks/useDisplayMedia/useDisplayMedia.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 display media return type */\nexport interface UseDisplayMediaReturn {\n /** Whether screen sharing is currently active */\n sharing: boolean;\n /** The media stream object */\n stream: MediaStream | null;\n /** Whether the display media API is supported */\n supported: boolean;\n /** Start screen sharing */\n start: () => Promise<void>;\n /** Stop screen sharing */\n stop: () => void;\n}\n\n/** The use display media options type */\nexport interface UseDisplayMediaOptions {\n /** Whether to enable audio sharing */\n audio?: boolean | MediaTrackConstraints;\n /** Whether to start immediately */\n immediately?: boolean;\n /** Whether to enable video sharing */\n video?: boolean | MediaTrackConstraints;\n}\n\nexport interface UseDisplayMedia {\n (target: HookTarget, options?: UseDisplayMediaOptions): UseDisplayMediaReturn;\n\n <Target extends HTMLVideoElement>(\n options?: UseDisplayMediaOptions,\n target?: never\n ): { ref: StateRef<Target> } & UseDisplayMediaReturn;\n}\n\n/**\n * @name useDisplayMedia\n * @description - Hook that provides screen sharing functionality\n * @category Browser\n *\n * @browserapi mediaDevices.getDisplayMedia https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getDisplayMedia\n *\n * @overload\n * @param {HookTarget} target The target video element to display the media stream\n * @param {boolean | MediaTrackConstraints} [options.audio] Whether to enable audio sharing\n * @param {boolean} [options.immediately=false] Whether to start immediately\n * @param {boolean | MediaTrackConstraints} [options.video] Whether to enable video sharing\n * @returns {UseDisplayMediaReturn} Object containing stream, sharing status and control methods\n *\n * @example\n * const { stream, sharing, start, stop } = useDisplayMedia(ref);\n *\n * @overload\n * @template Target The target video element\n * @param {boolean | MediaTrackConstraints} [options.audio] Whether to enable audio sharing\n * @param {boolean} [options.immediately=false] Whether to start immediately\n * @param {boolean | MediaTrackConstraints} [options.video] Whether to enable video sharing\n * @returns {UseDisplayMediaReturn & { ref: StateRef<HTMLVideoElement> }} Object containing stream, sharing status, control methods and ref\n *\n * @example\n * const { ref, stream, sharing, start, stop } = useDisplayMedia<HTMLVideoElement>();\n */\nexport const useDisplayMedia = ((...params: any[]) => {\n const supported =\n typeof navigator !== 'undefined' &&\n 'mediaDevices' in navigator &&\n !!navigator.mediaDevices &&\n 'getDisplayMedia' in navigator.mediaDevices;\n const target = (isTarget(params[0]) ? params[0] : undefined) as HookTarget | undefined;\n const options = (params[1] ? params[1] : params[0]) as UseDisplayMediaOptions | undefined;\n const immediately = options?.immediately ?? false;\n\n const [sharing, setSharing] = useState(false);\n\n const elementRef = useRef<HTMLVideoElement | null>(null);\n const streamRef = useRef<MediaStream | null>(null);\n const internalRef = useRefState<Element>();\n\n const stop = () => {\n if (!streamRef.current || !supported || !elementRef.current) return;\n\n setSharing(false);\n elementRef.current.srcObject = null;\n streamRef.current.getTracks().forEach((track) => track.stop());\n streamRef.current = null;\n };\n\n const start = async () => {\n if (!supported || !elementRef.current) return;\n\n const displayMedia = await navigator.mediaDevices.getDisplayMedia({\n video: options?.video,\n audio: options?.audio\n });\n\n setSharing(true);\n streamRef.current = displayMedia;\n elementRef.current.srcObject = displayMedia;\n\n displayMedia.getTracks().forEach((track) => (track.onended = stop));\n return displayMedia;\n };\n\n useEffect(() => {\n if (!supported || (!target && !internalRef.state)) return;\n\n const element = (target ? getElement(target) : internalRef.current) as HTMLVideoElement;\n\n if (!element) return;\n\n elementRef.current = element;\n\n if (!immediately) return;\n\n start();\n\n return () => {\n stop();\n };\n }, [target, internalRef.state]);\n\n if (target)\n return {\n stream: streamRef.current,\n sharing,\n supported,\n start,\n stop\n };\n\n return {\n stream: streamRef.current,\n sharing,\n supported,\n start,\n stop,\n ref: internalRef\n };\n}) as UseDisplayMedia;\n"],"names":["useDisplayMedia","params","supported","target","isTarget","options","immediately","sharing","setSharing","useState","elementRef","useRef","streamRef","internalRef","useRefState","stop","track","start","displayMedia","useEffect","element","getElement"],"mappings":"mPAsEaA,EAAmB,IAAIC,IAAkB,CACpD,MAAMC,EACJ,OAAO,UAAc,KACrB,iBAAkB,WAClB,CAAC,CAAC,UAAU,cACZ,oBAAqB,UAAU,aAC3BC,EAAUC,EAAAA,SAASH,EAAO,CAAC,CAAC,EAAIA,EAAO,CAAC,EAAI,OAC5CI,EAAWJ,EAAO,CAAC,EAAIA,EAAO,CAAC,EAAIA,EAAO,CAAC,EAC3CK,EAAcD,GAAS,aAAe,GAEtC,CAACE,EAASC,CAAU,EAAIC,EAAAA,SAAS,EAAK,EAEtCC,EAAaC,EAAAA,OAAgC,IAAI,EACjDC,EAAYD,EAAAA,OAA2B,IAAI,EAC3CE,EAAcC,EAAAA,YAAA,EAEdC,EAAO,IAAM,CACb,CAACH,EAAU,SAAW,CAACV,GAAa,CAACQ,EAAW,UAEpDF,EAAW,EAAK,EAChBE,EAAW,QAAQ,UAAY,KAC/BE,EAAU,QAAQ,YAAY,QAASI,GAAUA,EAAM,MAAM,EAC7DJ,EAAU,QAAU,KAAA,EAGhBK,EAAQ,SAAY,CACxB,GAAI,CAACf,GAAa,CAACQ,EAAW,QAAS,OAEvC,MAAMQ,EAAe,MAAM,UAAU,aAAa,gBAAgB,CAChE,MAAOb,GAAS,MAChB,MAAOA,GAAS,KAAA,CACjB,EAED,OAAAG,EAAW,EAAI,EACfI,EAAU,QAAUM,EACpBR,EAAW,QAAQ,UAAYQ,EAE/BA,EAAa,YAAY,QAASF,GAAWA,EAAM,QAAUD,CAAK,EAC3DG,CAAA,EAqBT,OAlBAC,EAAAA,UAAU,IAAM,CACd,GAAI,CAACjB,GAAc,CAACC,GAAU,CAACU,EAAY,MAAQ,OAEnD,MAAMO,EAAWjB,EAASkB,EAAAA,WAAWlB,CAAM,EAAIU,EAAY,QAE3D,GAAKO,IAELV,EAAW,QAAUU,EAEjB,EAACd,GAEL,OAAAW,EAAA,EAEO,IAAM,CACXF,EAAA,CAAK,CACP,EACC,CAACZ,EAAQU,EAAY,KAAK,CAAC,EAE1BV,EACK,CACL,OAAQS,EAAU,QAClB,QAAAL,EACA,UAAAL,EACA,MAAAe,EACA,KAAAF,CAAA,EAGG,CACL,OAAQH,EAAU,QAClB,QAAAL,EACA,UAAAL,EACA,MAAAe,EACA,KAAAF,EACA,IAAKF,CAAA,CAET"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("react"),m=require("../useInterval/useInterval.cjs"),a=()=>{const e=performance&&"memory"in performance&&!!performance.memory,[r,t]=o.useState(performance?.memory??{jsHeapSizeLimit:0,totalJSHeapSize:0,usedJSHeapSize:0});return m.useInterval(()=>t(performance.memory),1e3,{immediately:e}),{supported:e,value:r}};exports.useMemory=a;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("react"),n=()=>{const e=performance&&"memory"in performance&&!!performance.memory,[t,o]=r.useState(performance?.memory??{jsHeapSizeLimit:0,totalJSHeapSize:0,usedJSHeapSize:0});return r.useEffect(()=>{if(!e)return;const a=setInterval(()=>o(performance.memory),1e3);return()=>clearInterval(a)},[]),{supported:e,value:t}};exports.useMemory=n;
2
2
  //# sourceMappingURL=useMemory.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useMemory.cjs","sources":["../../../../src/hooks/useMemory/useMemory.ts"],"sourcesContent":["import { useState } from 'react';\n\nimport { useInterval } from '../useInterval/useInterval';\n\ndeclare global {\n interface Performance {\n memory: {\n readonly jsHeapSizeLimit: number;\n readonly totalJSHeapSize: number;\n readonly usedJSHeapSize: number;\n };\n }\n}\n\n/** The use memory return type */\nexport interface UseMemoryReturn {\n /** The memory supported status */\n supported: boolean;\n /** The current memory usage */\n value: Performance['memory'];\n}\n\n/**\n * @name useMemory\n * @description - Hook that gives you current memory usage\n * @category Browser\n *\n * @browserapi performance.memory https://developer.mozilla.org/en-US/docs/Web/API/Performance/memory\n *\n * @returns {UseMemoryReturn} An object containing the current memory usage\n *\n * @example\n * const { supported, value } = useMemory();\n */\nexport const useMemory = (): UseMemoryReturn => {\n const supported = performance && 'memory' in performance && !!performance.memory;\n const [value, setValue] = useState<Performance['memory']>(\n performance?.memory ?? {\n jsHeapSizeLimit: 0,\n totalJSHeapSize: 0,\n usedJSHeapSize: 0\n }\n );\n\n useInterval(() => setValue(performance.memory), 1000, {\n immediately: supported\n });\n\n return { supported, value };\n};\n"],"names":["useMemory","supported","value","setValue","useState","useInterval"],"mappings":"qJAkCaA,EAAY,IAAuB,CAC9C,MAAMC,EAAY,aAAe,WAAY,aAAe,CAAC,CAAC,YAAY,OACpE,CAACC,EAAOC,CAAQ,EAAIC,EAAAA,SACxB,aAAa,QAAU,CACrB,gBAAiB,EACjB,gBAAiB,EACjB,eAAgB,CAAA,CAClB,EAGFC,OAAAA,EAAAA,YAAY,IAAMF,EAAS,YAAY,MAAM,EAAG,IAAM,CACpD,YAAaF,CAAA,CACd,EAEM,CAAE,UAAAA,EAAW,MAAAC,CAAA,CACtB"}
1
+ {"version":3,"file":"useMemory.cjs","sources":["../../../../src/hooks/useMemory/useMemory.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\n\ndeclare global {\n interface Performance {\n memory: {\n readonly jsHeapSizeLimit: number;\n readonly totalJSHeapSize: number;\n readonly usedJSHeapSize: number;\n };\n }\n}\n\n/** The use memory return type */\nexport interface UseMemoryReturn {\n /** The memory supported status */\n supported: boolean;\n /** The current memory usage */\n value: Performance['memory'];\n}\n\n/**\n * @name useMemory\n * @description - Hook that gives you current memory usage\n * @category Browser\n *\n * @browserapi performance.memory https://developer.mozilla.org/en-US/docs/Web/API/Performance/memory\n *\n * @returns {UseMemoryReturn} An object containing the current memory usage\n *\n * @example\n * const { supported, value } = useMemory();\n */\nexport const useMemory = (): UseMemoryReturn => {\n const supported = performance && 'memory' in performance && !!performance.memory;\n const [value, setValue] = useState<Performance['memory']>(\n performance?.memory ?? {\n jsHeapSizeLimit: 0,\n totalJSHeapSize: 0,\n usedJSHeapSize: 0\n }\n );\n\n useEffect(() => {\n if (!supported) return;\n\n const intervalId = setInterval(() => setValue(performance.memory), 1000);\n\n return () => clearInterval(intervalId);\n }, []);\n\n return { supported, value };\n};\n"],"names":["useMemory","supported","value","setValue","useState","useEffect","intervalId"],"mappings":"yGAgCaA,EAAY,IAAuB,CAC9C,MAAMC,EAAY,aAAe,WAAY,aAAe,CAAC,CAAC,YAAY,OACpE,CAACC,EAAOC,CAAQ,EAAIC,EAAAA,SACxB,aAAa,QAAU,CACrB,gBAAiB,EACjB,gBAAiB,EACjB,eAAgB,CAAA,CAClB,EAGFC,OAAAA,EAAAA,UAAU,IAAM,CACd,GAAI,CAACJ,EAAW,OAEhB,MAAMK,EAAa,YAAY,IAAMH,EAAS,YAAY,MAAM,EAAG,GAAI,EAEvE,MAAO,IAAM,cAAcG,CAAU,CAAA,EACpC,EAAE,EAEE,CAAE,UAAAL,EAAW,MAAAC,CAAA,CACtB"}
@@ -1 +1 @@
1
- {"version":3,"file":"useRerender.cjs","sources":["../../../../src/hooks/useRerender/useRerender.ts"],"sourcesContent":["import { useReducer } from 'react';\n\n/** The use rerender return type */\ntype UseRerenderReturn = () => void;\n\n/**\n * @name useRerender\n * @description - Hook that defines the logic to force rerender a component\n * @category Lifecycle\n *\n * @returns {UseRerenderReturn} The rerender function\n *\n * @example\n * const rerender = useRerender();\n */\nexport const useRerender = (): UseRerenderReturn => {\n const rerender = useReducer(() => ({}), {})[1];\n return rerender;\n};\n"],"names":["useRerender","useReducer"],"mappings":"yGAeaA,EAAc,IACRC,EAAAA,WAAW,KAAO,CAAA,GAAK,CAAA,CAAE,EAAE,CAAC"}
1
+ {"version":3,"file":"useRerender.cjs","sources":["../../../../src/hooks/useRerender/useRerender.ts"],"sourcesContent":["import { useReducer } from 'react';\n\n/** The use rerender return type */\ntype UseRerenderReturn = () => void;\n\n/**\n * @name useRerender\n * @description - Hook that defines the logic to force rerender a component\n * @category Lifecycle\n *\n * @returns {UseRerenderReturn} The rerender function\n *\n * @example\n * const rerender = useRerender();\n */\nexport const useRerender = (): UseRerenderReturn => useReducer(() => ({}), {})[1];\n"],"names":["useRerender","useReducer"],"mappings":"yGAeaA,EAAc,IAAyBC,EAAAA,WAAW,KAAO,CAAA,GAAK,CAAA,CAAE,EAAE,CAAC"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const m=require("react"),b=require("../useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.cjs"),d=require("../useRefState/useRefState.cjs"),v=require("../../utils/helpers/isTarget.cjs"),o=require("../../utils/helpers/getElement.cjs"),E=(...i)=>{const e=v.isTarget(i[0])?i[0]:void 0,g=(e?i[1]:i[0])??"ltr",r=d.useRefState(),s=()=>(e?o.getElement(e):r.current)?.getAttribute("dir")??g,[u,c]=m.useState(s()),l=()=>{const t=e?o.getElement(e):r.current;t&&t?.removeAttribute("dir")},f=t=>{const n=e?o.getElement(e):r.current;n&&(c(t),n.setAttribute("dir",t))};return b.useIsomorphicLayoutEffect(()=>{if(!e&&!r.state)return;const t=e?o.getElement(e):r.current;if(!t)return;const n=s();t.setAttribute("dir",n),c(n);const a=new MutationObserver(s);return a.observe(t,{attributes:!0}),()=>{a.disconnect()}},[r.state,e]),e?{value:u,set:f,remove:l}:{ref:r,value:u,set:f,remove:l}};exports.useTextDirection=E;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react"),m=require("../useRefState/useRefState.cjs"),d=require("../../utils/helpers/isTarget.cjs"),s=require("../../utils/helpers/getElement.cjs"),v=(...i)=>{const e=d.isTarget(i[0])?i[0]:void 0,b=(e?i[1]:i[0])??"ltr",r=m.useRefState(),u=()=>(e?s.getElement(e):r.current)?.getAttribute("dir")??b,[o,c]=a.useState(u()),l=()=>{const t=e?s.getElement(e):r.current;t&&t?.removeAttribute("dir")},f=t=>{const n=e?s.getElement(e):r.current;n&&(c(t),n.setAttribute("dir",t))};return a.useEffect(()=>{if(!e&&!r.state)return;const t=e?s.getElement(e):r.current;if(!t)return;const n=u();t.setAttribute("dir",n),c(n);const g=new MutationObserver(u);return g.observe(t,{attributes:!0}),()=>{g.disconnect()}},[r.state,e]),e?{value:o,set:f,remove:l}:{ref:r,value:o,set:f,remove:l}};exports.useTextDirection=v;
2
2
  //# sourceMappingURL=useTextDirection.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useTextDirection.cjs","sources":["../../../../src/hooks/useTextDirection/useTextDirection.ts"],"sourcesContent":["import { 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 { useIsomorphicLayoutEffect } from '../useIsomorphicLayoutEffect/useIsomorphicLayoutEffect';\nimport { useRefState } from '../useRefState/useRefState';\n\n/** The use text direction value type */\nexport type UseTextDirectionValue = 'auto' | 'ltr' | 'rtl';\n\n/** The use text direction return type */\nexport interface UseTextDirectionReturn {\n /** The current direction */\n value: UseTextDirectionValue;\n /*** The function to remove the direction */\n remove: () => void;\n /*** The function to set the direction */\n set: (value: UseTextDirectionValue | null) => void;\n}\n\nexport interface UseTextDirection {\n (target: HookTarget, initialValue?: UseTextDirectionValue): UseTextDirectionReturn;\n\n <Target extends Element>(\n initialValue?: UseTextDirectionValue,\n target?: never\n ): UseTextDirectionReturn & { ref: StateRef<Target> };\n}\n\n/**\n * @name useTextDirection\n * @description - Hook that can get and set the direction of the element\n * @category Browser\n *\n * @overload\n * @param {HookTarget} target The target element to observe\n * @param {UseTextDirectionValue} [initialValue = 'ltr'] The initial direction of the element\n * @returns {UseTextDirectionReturn} An object containing the current text direction of the element\n *\n * @example\n * const { value, set, remove } = useTextDirection(ref);\n *\n * @overload\n * @template Target The target element type\n * @param {UseTextDirectionValue} [initialValue = 'ltr'] The initial direction of the element\n * @returns { { ref: StateRef<Target> } & UseTextDirectionReturn } An object containing the current text direction of the element\n *\n * @example\n * const { ref, value, set, remove } = useTextDirection();\n */\nexport const useTextDirection = ((...params: any[]) => {\n const target = (isTarget(params[0]) ? params[0] : undefined) as HookTarget | undefined;\n const initialValue = ((target ? params[1] : params[0]) as UseTextDirectionValue) ?? 'ltr';\n\n const internalRef = useRefState<Element>();\n\n const getDirection = () => {\n const element = (target ? getElement(target) : internalRef.current) as Element;\n return (element?.getAttribute('dir') as UseTextDirectionValue) ?? initialValue;\n };\n\n const [value, setValue] = useState<UseTextDirectionValue>(getDirection());\n\n const remove = () => {\n const element = (target ? getElement(target) : internalRef.current) as Element;\n if (!element) return;\n\n element?.removeAttribute('dir');\n };\n\n const set = (value: UseTextDirectionValue) => {\n const element = (target ? getElement(target) : internalRef.current) as Element;\n if (!element) return;\n\n setValue(value);\n element.setAttribute('dir', value);\n };\n\n useIsomorphicLayoutEffect(() => {\n if (!target && !internalRef.state) return;\n\n const element = (target ? getElement(target) : internalRef.current) as Element;\n if (!element) return;\n\n const direction = getDirection();\n element.setAttribute('dir', direction);\n setValue(direction);\n\n const observer = new MutationObserver(getDirection);\n\n observer.observe(element, { attributes: true });\n\n return () => {\n observer.disconnect();\n };\n }, [internalRef.state, target]);\n\n if (target) return { value, set, remove };\n return {\n ref: internalRef,\n value,\n set,\n remove\n };\n}) as UseTextDirection;\n"],"names":["useTextDirection","params","target","isTarget","initialValue","internalRef","useRefState","getDirection","getElement","value","setValue","useState","remove","element","set","useIsomorphicLayoutEffect","direction","observer"],"mappings":"2TAsDaA,EAAoB,IAAIC,IAAkB,CACrD,MAAMC,EAAUC,EAAAA,SAASF,EAAO,CAAC,CAAC,EAAIA,EAAO,CAAC,EAAI,OAC5CG,GAAiBF,EAASD,EAAO,CAAC,EAAIA,EAAO,CAAC,IAAgC,MAE9EI,EAAcC,EAAAA,YAAA,EAEdC,EAAe,KACFL,EAASM,EAAAA,WAAWN,CAAM,EAAIG,EAAY,UAC1C,aAAa,KAAK,GAA+BD,EAG9D,CAACK,EAAOC,CAAQ,EAAIC,EAAAA,SAAgCJ,GAAc,EAElEK,EAAS,IAAM,CACnB,MAAMC,EAAWX,EAASM,EAAAA,WAAWN,CAAM,EAAIG,EAAY,QACtDQ,GAELA,GAAS,gBAAgB,KAAK,CAAA,EAG1BC,EAAOL,GAAiC,CAC5C,MAAMI,EAAWX,EAASM,EAAAA,WAAWN,CAAM,EAAIG,EAAY,QACtDQ,IAELH,EAASD,CAAK,EACdI,EAAQ,aAAa,MAAOJ,CAAK,EAAA,EAsBnC,OAnBAM,EAAAA,0BAA0B,IAAM,CAC9B,GAAI,CAACb,GAAU,CAACG,EAAY,MAAO,OAEnC,MAAMQ,EAAWX,EAASM,EAAAA,WAAWN,CAAM,EAAIG,EAAY,QAC3D,GAAI,CAACQ,EAAS,OAEd,MAAMG,EAAYT,EAAA,EAClBM,EAAQ,aAAa,MAAOG,CAAS,EACrCN,EAASM,CAAS,EAElB,MAAMC,EAAW,IAAI,iBAAiBV,CAAY,EAElD,OAAAU,EAAS,QAAQJ,EAAS,CAAE,WAAY,GAAM,EAEvC,IAAM,CACXI,EAAS,WAAA,CAAW,CACtB,EACC,CAACZ,EAAY,MAAOH,CAAM,CAAC,EAE1BA,EAAe,CAAE,MAAAO,EAAO,IAAAK,EAAK,OAAAF,CAAA,EAC1B,CACL,IAAKP,EACL,MAAAI,EACA,IAAAK,EACA,OAAAF,CAAA,CAEJ"}
1
+ {"version":3,"file":"useTextDirection.cjs","sources":["../../../../src/hooks/useTextDirection/useTextDirection.ts"],"sourcesContent":["import { useEffect, 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 text direction value type */\nexport type UseTextDirectionValue = 'auto' | 'ltr' | 'rtl';\n\n/** The use text direction return type */\nexport interface UseTextDirectionReturn {\n /** The current direction */\n value: UseTextDirectionValue;\n /*** The function to remove the direction */\n remove: () => void;\n /*** The function to set the direction */\n set: (value: UseTextDirectionValue | null) => void;\n}\n\nexport interface UseTextDirection {\n (target: HookTarget, initialValue?: UseTextDirectionValue): UseTextDirectionReturn;\n\n <Target extends Element>(\n initialValue?: UseTextDirectionValue,\n target?: never\n ): UseTextDirectionReturn & { ref: StateRef<Target> };\n}\n\n/**\n * @name useTextDirection\n * @description - Hook that can get and set the direction of the element\n * @category Browser\n *\n * @overload\n * @param {HookTarget} target The target element to observe\n * @param {UseTextDirectionValue} [initialValue = 'ltr'] The initial direction of the element\n * @returns {UseTextDirectionReturn} An object containing the current text direction of the element\n *\n * @example\n * const { value, set, remove } = useTextDirection(ref);\n *\n * @overload\n * @template Target The target element type\n * @param {UseTextDirectionValue} [initialValue = 'ltr'] The initial direction of the element\n * @returns { { ref: StateRef<Target> } & UseTextDirectionReturn } An object containing the current text direction of the element\n *\n * @example\n * const { ref, value, set, remove } = useTextDirection();\n */\nexport const useTextDirection = ((...params: any[]) => {\n const target = (isTarget(params[0]) ? params[0] : undefined) as HookTarget | undefined;\n const initialValue = ((target ? params[1] : params[0]) as UseTextDirectionValue) ?? 'ltr';\n\n const internalRef = useRefState<Element>();\n\n const getDirection = () => {\n const element = (target ? getElement(target) : internalRef.current) as Element;\n return (element?.getAttribute('dir') as UseTextDirectionValue) ?? initialValue;\n };\n\n const [value, setValue] = useState<UseTextDirectionValue>(getDirection());\n\n const remove = () => {\n const element = (target ? getElement(target) : internalRef.current) as Element;\n if (!element) return;\n\n element?.removeAttribute('dir');\n };\n\n const set = (value: UseTextDirectionValue) => {\n const element = (target ? getElement(target) : internalRef.current) as Element;\n if (!element) return;\n\n setValue(value);\n element.setAttribute('dir', value);\n };\n\n useEffect(() => {\n if (!target && !internalRef.state) return;\n\n const element = (target ? getElement(target) : internalRef.current) as Element;\n if (!element) return;\n\n const direction = getDirection();\n element.setAttribute('dir', direction);\n setValue(direction);\n\n const observer = new MutationObserver(getDirection);\n\n observer.observe(element, { attributes: true });\n\n return () => {\n observer.disconnect();\n };\n }, [internalRef.state, target]);\n\n if (target) return { value, set, remove };\n return {\n ref: internalRef,\n value,\n set,\n remove\n };\n}) as UseTextDirection;\n"],"names":["useTextDirection","params","target","isTarget","initialValue","internalRef","useRefState","getDirection","getElement","value","setValue","useState","remove","element","set","useEffect","direction","observer"],"mappings":"mPAqDaA,EAAoB,IAAIC,IAAkB,CACrD,MAAMC,EAAUC,EAAAA,SAASF,EAAO,CAAC,CAAC,EAAIA,EAAO,CAAC,EAAI,OAC5CG,GAAiBF,EAASD,EAAO,CAAC,EAAIA,EAAO,CAAC,IAAgC,MAE9EI,EAAcC,EAAAA,YAAA,EAEdC,EAAe,KACFL,EAASM,EAAAA,WAAWN,CAAM,EAAIG,EAAY,UAC1C,aAAa,KAAK,GAA+BD,EAG9D,CAACK,EAAOC,CAAQ,EAAIC,EAAAA,SAAgCJ,GAAc,EAElEK,EAAS,IAAM,CACnB,MAAMC,EAAWX,EAASM,EAAAA,WAAWN,CAAM,EAAIG,EAAY,QACtDQ,GAELA,GAAS,gBAAgB,KAAK,CAAA,EAG1BC,EAAOL,GAAiC,CAC5C,MAAMI,EAAWX,EAASM,EAAAA,WAAWN,CAAM,EAAIG,EAAY,QACtDQ,IAELH,EAASD,CAAK,EACdI,EAAQ,aAAa,MAAOJ,CAAK,EAAA,EAsBnC,OAnBAM,EAAAA,UAAU,IAAM,CACd,GAAI,CAACb,GAAU,CAACG,EAAY,MAAO,OAEnC,MAAMQ,EAAWX,EAASM,EAAAA,WAAWN,CAAM,EAAIG,EAAY,QAC3D,GAAI,CAACQ,EAAS,OAEd,MAAMG,EAAYT,EAAA,EAClBM,EAAQ,aAAa,MAAOG,CAAS,EACrCN,EAASM,CAAS,EAElB,MAAMC,EAAW,IAAI,iBAAiBV,CAAY,EAElD,OAAAU,EAAS,QAAQJ,EAAS,CAAE,WAAY,GAAM,EAEvC,IAAM,CACXI,EAAS,WAAA,CAAW,CACtB,EACC,CAACZ,EAAY,MAAOH,CAAM,CAAC,EAE1BA,EAAe,CAAE,MAAAO,EAAO,IAAAK,EAAK,OAAAF,CAAA,EAC1B,CACL,IAAKP,EACL,MAAAI,EACA,IAAAK,EACA,OAAAF,CAAA,CAEJ"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react"),R=(o,u)=>{const c=e.useRef(o),t=e.useRef(null),r=e.useRef(!1),l=e.useRef(u),n=e.useRef(null);return c.current=o,l.current=u,e.useMemo(()=>{const s=()=>{r.current=!1,n.current&&(c.current.apply(void 0,n.current),n.current=null,setTimeout(s,l.current))},a=()=>{t.current&&(clearTimeout(t.current),t.current=null,r.current=!1)},f=function(...i){n.current=i,!r.current&&(c.current.apply(this,i),r.current=!0,t.current=setTimeout(s,l.current))};return f.cancel=a,console.log("cancel",t.current),a(),f},[u])};exports.useThrottleCallback=R;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react"),R=(s,u)=>{const c=e.useRef(s),t=e.useRef(null),r=e.useRef(!1),l=e.useRef(u),n=e.useRef(null);return c.current=s,l.current=u,e.useMemo(()=>{const o=()=>{r.current=!1,n.current&&(c.current.apply(void 0,n.current),n.current=null,setTimeout(o,l.current))},a=()=>{t.current&&(clearTimeout(t.current),t.current=null,r.current=!1)},f=function(...i){n.current=i,!r.current&&(c.current.apply(this,i),r.current=!0,t.current=setTimeout(o,l.current))};return f.cancel=a,a(),f},[u])};exports.useThrottleCallback=R;
2
2
  //# sourceMappingURL=useThrottleCallback.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useThrottleCallback.cjs","sources":["../../../../src/hooks/useThrottleCallback/useThrottleCallback.ts"],"sourcesContent":["import { useMemo, useRef } from 'react';\n\nexport type ThrottledCallback<Params extends unknown[]> = ((...args: Params) => void) & {\n cancel: () => void;\n};\n\n/**\n * @name useThrottleCallback\n * @description - Hook that creates a throttled callback\n * @category Utilities\n *\n * @template Params The type of the params\n * @template Return The type of the return\n * @param {(...args: Params) => Return} callback The callback function\n * @param {number} delay The delay in milliseconds\n * @returns {(...args: Params) => Return} The callback with throttle\n *\n * @example\n * const throttled = useThrottleCallback(() => console.log('callback'), 500);\n */\nexport const useThrottleCallback = <Params extends unknown[], Return>(\n callback: (...args: Params) => Return,\n delay: number\n): ThrottledCallback<Params> => {\n const internalCallbackRef = useRef(callback);\n const timeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n const isCalledRef = useRef(false);\n const delayRef = useRef(delay);\n const lastArgsRef = useRef<Params | null>(null);\n\n internalCallbackRef.current = callback;\n delayRef.current = delay;\n\n const throttled = useMemo(() => {\n const timer = () => {\n isCalledRef.current = false;\n\n if (!lastArgsRef.current) return;\n internalCallbackRef.current.apply(this, lastArgsRef.current);\n lastArgsRef.current = null;\n setTimeout(timer, delayRef.current);\n };\n\n const cancel = () => {\n if (!timeoutRef.current) return;\n clearTimeout(timeoutRef.current);\n timeoutRef.current = null;\n isCalledRef.current = false;\n };\n\n const throttledCallback = function (this: any, ...args: Params) {\n lastArgsRef.current = args;\n if (isCalledRef.current) return;\n\n internalCallbackRef.current.apply(this, args);\n isCalledRef.current = true;\n timeoutRef.current = setTimeout(timer, delayRef.current);\n };\n\n throttledCallback.cancel = cancel;\n\n console.log('cancel', timeoutRef.current);\n cancel();\n return throttledCallback;\n }, [delay]);\n\n return throttled;\n};\n"],"names":["useThrottleCallback","callback","delay","internalCallbackRef","useRef","timeoutRef","isCalledRef","delayRef","lastArgsRef","useMemo","timer","cancel","throttledCallback","args"],"mappings":"yGAoBaA,EAAsB,CACjCC,EACAC,IAC8B,CAC9B,MAAMC,EAAsBC,EAAAA,OAAOH,CAAQ,EACrCI,EAAaD,EAAAA,OAA6C,IAAI,EAC9DE,EAAcF,EAAAA,OAAO,EAAK,EAC1BG,EAAWH,EAAAA,OAAOF,CAAK,EACvBM,EAAcJ,EAAAA,OAAsB,IAAI,EAE9C,OAAAD,EAAoB,QAAUF,EAC9BM,EAAS,QAAUL,EAEDO,EAAAA,QAAQ,IAAM,CAC9B,MAAMC,EAAQ,IAAM,CAClBJ,EAAY,QAAU,GAEjBE,EAAY,UACjBL,EAAoB,QAAQ,MAAM,OAAMK,EAAY,OAAO,EAC3DA,EAAY,QAAU,KACtB,WAAWE,EAAOH,EAAS,OAAO,EAAA,EAG9BI,EAAS,IAAM,CACdN,EAAW,UAChB,aAAaA,EAAW,OAAO,EAC/BA,EAAW,QAAU,KACrBC,EAAY,QAAU,GAAA,EAGlBM,EAAoB,YAAwBC,EAAc,CAC9DL,EAAY,QAAUK,EAClB,CAAAP,EAAY,UAEhBH,EAAoB,QAAQ,MAAM,KAAMU,CAAI,EAC5CP,EAAY,QAAU,GACtBD,EAAW,QAAU,WAAWK,EAAOH,EAAS,OAAO,EAAA,EAGzD,OAAAK,EAAkB,OAASD,EAE3B,QAAQ,IAAI,SAAUN,EAAW,OAAO,EACxCM,EAAA,EACOC,CAAA,EACN,CAACV,CAAK,CAAC,CAGZ"}
1
+ {"version":3,"file":"useThrottleCallback.cjs","sources":["../../../../src/hooks/useThrottleCallback/useThrottleCallback.ts"],"sourcesContent":["import { useMemo, useRef } from 'react';\n\nexport type ThrottledCallback<Params extends unknown[]> = ((...args: Params) => void) & {\n cancel: () => void;\n};\n\n/**\n * @name useThrottleCallback\n * @description - Hook that creates a throttled callback\n * @category Utilities\n *\n * @template Params The type of the params\n * @template Return The type of the return\n * @param {(...args: Params) => Return} callback The callback function\n * @param {number} delay The delay in milliseconds\n * @returns {(...args: Params) => Return} The callback with throttle\n *\n * @example\n * const throttled = useThrottleCallback(() => console.log('callback'), 500);\n */\nexport const useThrottleCallback = <Params extends unknown[], Return>(\n callback: (...args: Params) => Return,\n delay: number\n): ThrottledCallback<Params> => {\n const internalCallbackRef = useRef(callback);\n const timeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n const isCalledRef = useRef(false);\n const delayRef = useRef(delay);\n const lastArgsRef = useRef<Params | null>(null);\n\n internalCallbackRef.current = callback;\n delayRef.current = delay;\n\n const throttled = useMemo(() => {\n const timer = () => {\n isCalledRef.current = false;\n\n if (!lastArgsRef.current) return;\n internalCallbackRef.current.apply(this, lastArgsRef.current);\n lastArgsRef.current = null;\n setTimeout(timer, delayRef.current);\n };\n\n const cancel = () => {\n if (!timeoutRef.current) return;\n clearTimeout(timeoutRef.current);\n timeoutRef.current = null;\n isCalledRef.current = false;\n };\n\n const throttledCallback = function (this: any, ...args: Params) {\n lastArgsRef.current = args;\n if (isCalledRef.current) return;\n\n internalCallbackRef.current.apply(this, args);\n isCalledRef.current = true;\n timeoutRef.current = setTimeout(timer, delayRef.current);\n };\n\n throttledCallback.cancel = cancel;\n\n cancel();\n return throttledCallback;\n }, [delay]);\n\n return throttled;\n};\n"],"names":["useThrottleCallback","callback","delay","internalCallbackRef","useRef","timeoutRef","isCalledRef","delayRef","lastArgsRef","useMemo","timer","cancel","throttledCallback","args"],"mappings":"yGAoBaA,EAAsB,CACjCC,EACAC,IAC8B,CAC9B,MAAMC,EAAsBC,EAAAA,OAAOH,CAAQ,EACrCI,EAAaD,EAAAA,OAA6C,IAAI,EAC9DE,EAAcF,EAAAA,OAAO,EAAK,EAC1BG,EAAWH,EAAAA,OAAOF,CAAK,EACvBM,EAAcJ,EAAAA,OAAsB,IAAI,EAE9C,OAAAD,EAAoB,QAAUF,EAC9BM,EAAS,QAAUL,EAEDO,EAAAA,QAAQ,IAAM,CAC9B,MAAMC,EAAQ,IAAM,CAClBJ,EAAY,QAAU,GAEjBE,EAAY,UACjBL,EAAoB,QAAQ,MAAM,OAAMK,EAAY,OAAO,EAC3DA,EAAY,QAAU,KACtB,WAAWE,EAAOH,EAAS,OAAO,EAAA,EAG9BI,EAAS,IAAM,CACdN,EAAW,UAChB,aAAaA,EAAW,OAAO,EAC/BA,EAAW,QAAU,KACrBC,EAAY,QAAU,GAAA,EAGlBM,EAAoB,YAAwBC,EAAc,CAC9DL,EAAY,QAAUK,EAClB,CAAAP,EAAY,UAEhBH,EAAoB,QAAQ,MAAM,KAAMU,CAAI,EAC5CP,EAAY,QAAU,GACtBD,EAAW,QAAU,WAAWK,EAAOH,EAAS,OAAO,EAAA,EAGzD,OAAAK,EAAkB,OAASD,EAE3BA,EAAA,EACOC,CAAA,EACN,CAACV,CAAK,CAAC,CAGZ"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("react"),u=require("../useInterval/useInterval.cjs"),e=require("../../utils/helpers/getDate.cjs"),i=()=>{const[t,r]=s.useState(e.getDate());return u.useInterval(()=>r(e.getDate()),1e3),t};exports.useTime=i;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react"),t=require("../../utils/helpers/getDate.cjs"),u=()=>{const[r,s]=e.useState(t.getDate());return e.useEffect(()=>{const n=setInterval(()=>s(t.getDate()),1e3);return()=>{clearInterval(n)}},[]),r};exports.useTime=u;
2
2
  //# sourceMappingURL=useTime.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useTime.cjs","sources":["../../../../src/hooks/useTime/useTime.ts"],"sourcesContent":["import { useState } from 'react';\n\nimport { getDate } from '@/utils/helpers';\n\nimport { useInterval } from '../useInterval/useInterval';\n\nexport interface UseTimeReturn {\n day: number;\n hours: number;\n meridiemHours: { value: number; type: string };\n minutes: number;\n month: number;\n seconds: number;\n timestamp: number;\n year: number;\n}\n\n/**\n * @name useTime\n * @description - Hook that gives you current time in different values\n * @category Time\n *\n * @returns {UseTimeReturn} An object containing the current time\n *\n * @example\n * const { seconds, minutes, hours, meridiemHours, day, month, year, timestamp } = useTime();\n */\nexport const useTime = (): UseTimeReturn => {\n const [time, setTime] = useState(getDate());\n useInterval(() => setTime(getDate()), 1000);\n return time;\n};\n"],"names":["useTime","time","setTime","useState","getDate","useInterval"],"mappings":"kMA2BaA,EAAU,IAAqB,CAC1C,KAAM,CAACC,EAAMC,CAAO,EAAIC,EAAAA,SAASC,EAAAA,SAAS,EAC1CC,OAAAA,EAAAA,YAAY,IAAMH,EAAQE,UAAA,CAAS,EAAG,GAAI,EACnCH,CACT"}
1
+ {"version":3,"file":"useTime.cjs","sources":["../../../../src/hooks/useTime/useTime.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\n\nimport { getDate } from '@/utils/helpers';\n\nexport interface UseTimeReturn {\n /** The current day of the month (1-31) */\n day: number;\n /** The current hour in 24-hour format (0-23) */\n hours: number;\n /** The current hour in 12-hour format with meridiem type (AM/PM) */\n meridiemHours: { value: number; type: string };\n /** The current minute (0-59) */\n minutes: number;\n /** The current month (1-12) */\n month: number;\n /** The current second (0-59) */\n seconds: number;\n /** The current Unix timestamp in milliseconds */\n timestamp: number;\n /** The current year */\n year: number;\n}\n\n/**\n * @name useTime\n * @description - Hook that gives you current time in different values\n * @category Time\n *\n * @returns {UseTimeReturn} An object containing the current time\n *\n * @example\n * const { seconds, minutes, hours, meridiemHours, day, month, year, timestamp } = useTime();\n */\nexport const useTime = (): UseTimeReturn => {\n const [time, setTime] = useState(getDate());\n\n useEffect(() => {\n const timerId = setInterval(() => setTime(getDate()), 1000);\n\n return () => {\n clearInterval(timerId);\n };\n }, []);\n\n return time;\n};\n"],"names":["useTime","time","setTime","useState","getDate","useEffect","timerId"],"mappings":"sJAiCaA,EAAU,IAAqB,CAC1C,KAAM,CAACC,EAAMC,CAAO,EAAIC,EAAAA,SAASC,EAAAA,SAAS,EAE1CC,OAAAA,EAAAA,UAAU,IAAM,CACd,MAAMC,EAAU,YAAY,IAAMJ,EAAQE,EAAAA,QAAA,CAAS,EAAG,GAAI,EAE1D,MAAO,IAAM,CACX,cAAcE,CAAO,CAAA,CACvB,EACC,EAAE,EAEEL,CACT"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const p=require("./helpers/createContext/createContext.cjs"),y=require("./helpers/createEventEmitter/createEventEmitter.cjs"),I=require("./helpers/createReactiveContext/createReactiveContext.cjs"),O=require("./helpers/createStore/createStore.cjs"),v=require("./hooks/useActiveElement/useActiveElement.cjs"),k=require("./hooks/useAsync/useAsync.cjs"),A=require("./hooks/useAudio/useAudio.cjs"),D=require("./hooks/useBattery/useBattery.cjs"),h=require("./hooks/useBluetooth/useBluetooth.cjs"),M=require("./hooks/useBoolean/useBoolean.cjs"),e=require("./hooks/useBreakpoints/useBreakpoints.cjs"),L=require("./hooks/useBrowserLanguage/useBrowserLanguage.cjs"),b=require("./hooks/useClickOutside/useClickOutside.cjs"),f=require("./hooks/useClipboard/useClipboard.cjs"),_=require("./hooks/useConst/useConst.cjs"),s=require("./hooks/useCookie/useCookie.cjs"),i=require("./hooks/useCookies/useCookies.cjs"),N=require("./hooks/useCopy/useCopy.cjs"),B=require("./hooks/useCounter/useCounter.cjs"),F=require("./hooks/useCssVar/useCssVar.cjs"),K=require("./hooks/useDebounceCallback/useDebounceCallback.cjs"),V=require("./hooks/useDebounceValue/useDebounceValue.cjs"),U=require("./hooks/useDefault/useDefault.cjs"),w=require("./hooks/useDeviceMotion/useDeviceMotion.cjs"),W=require("./hooks/useDeviceOrientation/useDeviceOrientation.cjs"),H=require("./hooks/useDevicePixelRatio/useDevicePixelRatio.cjs"),x=require("./hooks/useDidUpdate/useDidUpdate.cjs"),Q=require("./hooks/useDisclosure/useDisclosure.cjs"),z=require("./hooks/useDisplayMedia/useDisplayMedia.cjs"),G=require("./hooks/useDocumentEvent/useDocumentEvent.cjs"),X=require("./hooks/useDocumentTitle/useDocumentTitle.cjs"),Z=require("./hooks/useDocumentVisibility/useDocumentVisibility.cjs"),n=require("./hooks/useDoubleClick/useDoubleClick.cjs"),j=require("./hooks/useDropZone/useDropZone.cjs"),J=require("./hooks/useElementSize/useElementSize.cjs"),Y=require("./hooks/useEvent/useEvent.cjs"),$=require("./hooks/useEventListener/useEventListener.cjs"),ee=require("./hooks/useEventSource/useEventSource.cjs"),se=require("./hooks/useEyeDropper/useEyeDropper.cjs"),ue=require("./hooks/useFavicon/useFavicon.cjs"),re=require("./hooks/useField/useField.cjs"),te=require("./hooks/useFileDialog/useFileDialog.cjs"),oe=require("./hooks/useFocus/useFocus.cjs"),ie=require("./hooks/useFps/useFps.cjs"),ne=require("./hooks/useFul/useFul.cjs"),ce=require("./hooks/useFullscreen/useFullscreen.cjs"),c=require("./hooks/useGamepad/useGamepad.cjs"),ae=require("./hooks/useGeolocation/useGeolocation.cjs"),le=require("./hooks/useHash/useHash.cjs"),a=require("./hooks/useHotkeys/useHotkeys.cjs"),Se=require("./hooks/useHover/useHover.cjs"),qe=require("./hooks/useIdle/useIdle.cjs"),de=require("./hooks/useImage/useImage.cjs"),Ee=require("./hooks/useInfiniteScroll/useInfiniteScroll.cjs"),ge=require("./hooks/useIntersectionObserver/useIntersectionObserver.cjs"),Pe=require("./hooks/useInterval/useInterval.cjs"),Te=require("./hooks/useIsFirstRender/useIsFirstRender.cjs"),Ce=require("./hooks/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.cjs"),me=require("./hooks/useKeyboard/useKeyboard.cjs"),Re=require("./hooks/useKeyPress/useKeyPress.cjs"),pe=require("./hooks/useKeyPressEvent/useKeyPressEvent.cjs"),ye=require("./hooks/useKeysPressed/useKeysPressed.cjs"),Ie=require("./hooks/useLastChanged/useLastChanged.cjs"),Oe=require("./hooks/useLatest/useLatest.cjs"),ve=require("./hooks/useLess/useLess.cjs"),ke=require("./hooks/useList/useList.cjs"),Ae=require("./hooks/useLocalStorage/useLocalStorage.cjs"),De=require("./hooks/useLockCallback/useLockCallback.cjs"),he=require("./hooks/useLogger/useLogger.cjs"),Me=require("./hooks/useLongPress/useLongPress.cjs"),Le=require("./hooks/useMap/useMap.cjs"),be=require("./hooks/useMeasure/useMeasure.cjs"),l=require("./hooks/useMediaControls/useMediaControls.cjs"),fe=require("./hooks/useMediaQuery/useMediaQuery.cjs"),_e=require("./hooks/useMemory/useMemory.cjs"),Ne=require("./hooks/useMount/useMount.cjs"),Be=require("./hooks/useMouse/useMouse.cjs"),Fe=require("./hooks/useMutation/useMutation.cjs"),Ke=require("./hooks/useMutationObserver/useMutationObserver.cjs"),S=require("./hooks/useNetwork/useNetwork.cjs"),Ve=require("./hooks/useOffsetPagination/useOffsetPagination.cjs"),Ue=require("./hooks/useOnce/useOnce.cjs"),we=require("./hooks/useOnline/useOnline.cjs"),q=require("./hooks/useOperatingSystem/useOperatingSystem.cjs"),We=require("./hooks/useOptimistic/useOptimistic.cjs"),He=require("./hooks/useOrientation/useOrientation.cjs"),xe=require("./hooks/useOtpCredential/useOtpCredential.cjs"),Qe=require("./hooks/usePageLeave/usePageLeave.cjs"),r=require("./hooks/usePaint/usePaint.cjs"),ze=require("./hooks/useParallax/useParallax.cjs"),Ge=require("./hooks/usePerformanceObserver/usePerformanceObserver.cjs"),Xe=require("./hooks/usePermission/usePermission.cjs"),Ze=require("./hooks/usePictureInPicture/usePictureInPicture.cjs"),je=require("./hooks/usePointerLock/usePointerLock.cjs"),Je=require("./hooks/usePostMessage/usePostMessage.cjs"),Ye=require("./hooks/usePreferredColorScheme/usePreferredColorScheme.cjs"),$e=require("./hooks/usePreferredContrast/usePreferredContrast.cjs"),es=require("./hooks/usePreferredDark/usePreferredDark.cjs"),ss=require("./hooks/usePreferredLanguages/usePreferredLanguages.cjs"),us=require("./hooks/usePreferredReducedMotion/usePreferredReducedMotion.cjs"),rs=require("./hooks/usePrevious/usePrevious.cjs"),ts=require("./hooks/useQuery/useQuery.cjs"),os=require("./hooks/useQueue/useQueue.cjs"),is=require("./hooks/useRaf/useRaf.cjs"),ns=require("./hooks/useRafValue/useRafValue.cjs"),cs=require("./hooks/useRefState/useRefState.cjs"),as=require("./hooks/useRenderCount/useRenderCount.cjs"),ls=require("./hooks/useRenderInfo/useRenderInfo.cjs"),Ss=require("./hooks/useRerender/useRerender.cjs"),qs=require("./hooks/useResizeObserver/useResizeObserver.cjs"),ds=require("./hooks/useScreenOrientation/useScreenOrientation.cjs"),d=require("./hooks/useScript/useScript.cjs"),Es=require("./hooks/useScroll/useScroll.cjs"),gs=require("./hooks/useScrollIntoView/useScrollIntoView.cjs"),Ps=require("./hooks/useScrollTo/useScrollTo.cjs"),Ts=require("./hooks/useSessionStorage/useSessionStorage.cjs"),Cs=require("./hooks/useSet/useSet.cjs"),E=require("./hooks/useShallowEffect/useShallowEffect.cjs"),ms=require("./hooks/useShare/useShare.cjs"),g=require("./hooks/useSpeechRecognition/useSpeechRecognition.cjs"),Rs=require("./hooks/useSpeechSynthesis/useSpeechSynthesis.cjs"),P=require("./hooks/useStateHistory/useStateHistory.cjs"),ps=require("./hooks/useStep/useStep.cjs"),ys=require("./hooks/useSticky/useSticky.cjs"),Is=require("./hooks/useStopwatch/useStopwatch.cjs"),t=require("./hooks/useStorage/useStorage.cjs"),Os=require("./hooks/useTextDirection/useTextDirection.cjs"),T=require("./hooks/useTextSelection/useTextSelection.cjs"),vs=require("./hooks/useThrottleCallback/useThrottleCallback.cjs"),ks=require("./hooks/useThrottleValue/useThrottleValue.cjs"),As=require("./hooks/useTime/useTime.cjs"),Ds=require("./hooks/useTimeout/useTimeout.cjs"),C=require("./hooks/useTimer/useTimer.cjs"),hs=require("./hooks/useToggle/useToggle.cjs"),Ms=require("./hooks/useUnmount/useUnmount.cjs"),u=require("./hooks/useUrlSearchParam/useUrlSearchParam.cjs"),Ls=require("./hooks/useUrlSearchParams/useUrlSearchParams.cjs"),bs=require("./hooks/useVibrate/useVibrate.cjs"),fs=require("./hooks/useWakeLock/useWakeLock.cjs"),_s=require("./hooks/useWebSocket/useWebSocket.cjs"),Ns=require("./hooks/useWindowEvent/useWindowEvent.cjs"),Bs=require("./hooks/useWindowFocus/useWindowFocus.cjs"),m=require("./hooks/useWindowScroll/useWindowScroll.cjs"),Fs=require("./hooks/useWindowSize/useWindowSize.cjs"),Ks=require("./hooks/useWizard/useWizard.cjs"),R=require("./utils/helpers/copy.cjs"),Vs=require("./utils/helpers/debounce.cjs"),Us=require("./utils/helpers/getDate.cjs"),o=require("./utils/helpers/getElement.cjs"),ws=require("./utils/helpers/getRetry.cjs"),Ws=require("./utils/helpers/isTarget.cjs"),Hs=require("./utils/helpers/throttle.cjs");exports.createContext=p.createContext;exports.createEventEmitter=y.createEventEmitter;exports.createReactiveContext=I.createReactiveContext;exports.createStore=O.createStore;exports.useActiveElement=v.useActiveElement;exports.useAsync=k.useAsync;exports.useAudio=A.useAudio;exports.useBattery=D.useBattery;exports.useBluetooth=h.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=L.useBrowserLanguage;exports.useClickOutside=b.useClickOutside;exports.useClipboard=f.useClipboard;exports.useConst=_.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=i.clearCookies;exports.useCookies=i.useCookies;exports.useCopy=N.useCopy;exports.useCounter=B.useCounter;exports.useCssVar=F.useCssVar;exports.useDebounceCallback=K.useDebounceCallback;exports.useDebounceValue=V.useDebounceValue;exports.useDefault=U.useDefault;exports.useDeviceMotion=w.useDeviceMotion;exports.useDeviceOrientation=W.useDeviceOrientation;exports.useDevicePixelRatio=H.useDevicePixelRatio;exports.useDidUpdate=x.useDidUpdate;exports.useDisclosure=Q.useDisclosure;exports.useDisplayMedia=z.useDisplayMedia;exports.useDocumentEvent=G.useDocumentEvent;exports.useDocumentTitle=X.useDocumentTitle;exports.useDocumentVisibility=Z.useDocumentVisibility;exports.DEFAULT_THRESHOLD_TIME=n.DEFAULT_THRESHOLD_TIME;exports.useDoubleClick=n.useDoubleClick;exports.useDropZone=j.useDropZone;exports.useElementSize=J.useElementSize;exports.useEvent=Y.useEvent;exports.useEventListener=$.useEventListener;exports.useEventSource=ee.useEventSource;exports.useEyeDropper=se.useEyeDropper;exports.useFavicon=ue.useFavicon;exports.useField=re.useField;exports.useFileDialog=te.useFileDialog;exports.useFocus=oe.useFocus;exports.useFps=ie.useFps;exports.useFul=ne.useFul;exports.useFullscreen=ce.useFullscreen;exports.mapGamepadToXbox360Controller=c.mapGamepadToXbox360Controller;exports.useGamepad=c.useGamepad;exports.useGeolocation=ae.useGeolocation;exports.useHash=le.useHash;exports.isHotkeyMatch=a.isHotkeyMatch;exports.useHotkeys=a.useHotkeys;exports.useHover=Se.useHover;exports.useIdle=qe.useIdle;exports.useImage=de.useImage;exports.useInfiniteScroll=Ee.useInfiniteScroll;exports.useIntersectionObserver=ge.useIntersectionObserver;exports.useInterval=Pe.useInterval;exports.useIsFirstRender=Te.useIsFirstRender;exports.useIsomorphicLayoutEffect=Ce.useIsomorphicLayoutEffect;exports.useKeyboard=me.useKeyboard;exports.useKeyPress=Re.useKeyPress;exports.useKeyPressEvent=pe.useKeyPressEvent;exports.useKeysPressed=ye.useKeysPressed;exports.useLastChanged=Ie.useLastChanged;exports.useLatest=Oe.useLatest;exports.useLess=ve.useLess;exports.useList=ke.useList;exports.useLocalStorage=Ae.useLocalStorage;exports.useLockCallback=De.useLockCallback;exports.useLogger=he.useLogger;exports.useLongPress=Me.useLongPress;exports.useMap=Le.useMap;exports.useMeasure=be.useMeasure;exports.timeRangeToArray=l.timeRangeToArray;exports.useMediaControls=l.useMediaControls;exports.useMediaQuery=fe.useMediaQuery;exports.useMemory=_e.useMemory;exports.useMount=Ne.useMount;exports.useMouse=Be.useMouse;exports.useMutation=Fe.useMutation;exports.useMutationObserver=Ke.useMutationObserver;exports.getConnection=S.getConnection;exports.useNetwork=S.useNetwork;exports.useOffsetPagination=Ve.useOffsetPagination;exports.useOnce=Ue.useOnce;exports.useOnline=we.useOnline;exports.getOperatingSystem=q.getOperatingSystem;exports.useOperatingSystem=q.useOperatingSystem;exports.useOptimistic=We.useOptimistic;exports.useOrientation=He.useOrientation;exports.useOtpCredential=xe.useOtpCredential;exports.usePageLeave=Qe.usePageLeave;exports.Paint=r.Paint;exports.Pointer=r.Pointer;exports.usePaint=r.usePaint;exports.useParallax=ze.useParallax;exports.usePerformanceObserver=Ge.usePerformanceObserver;exports.usePermission=Xe.usePermission;exports.usePictureInPicture=Ze.usePictureInPicture;exports.usePointerLock=je.usePointerLock;exports.usePostMessage=Je.usePostMessage;exports.usePreferredColorScheme=Ye.usePreferredColorScheme;exports.usePreferredContrast=$e.usePreferredContrast;exports.usePreferredDark=es.usePreferredDark;exports.usePreferredLanguages=ss.usePreferredLanguages;exports.usePreferredReducedMotion=us.usePreferredReducedMotion;exports.usePrevious=rs.usePrevious;exports.useQuery=ts.useQuery;exports.useQueue=os.useQueue;exports.useRaf=is.useRaf;exports.useRafValue=ns.useRafValue;exports.useRefState=cs.useRefState;exports.useRenderCount=as.useRenderCount;exports.useRenderInfo=ls.useRenderInfo;exports.useRerender=Ss.useRerender;exports.useResizeObserver=qs.useResizeObserver;exports.useScreenOrientation=ds.useScreenOrientation;exports.SCRIPT_STATUS_ATTRIBUTE_NAME=d.SCRIPT_STATUS_ATTRIBUTE_NAME;exports.useScript=d.useScript;exports.useScroll=Es.useScroll;exports.useScrollIntoView=gs.useScrollIntoView;exports.useScrollTo=Ps.useScrollTo;exports.useSessionStorage=Ts.useSessionStorage;exports.useSet=Cs.useSet;exports.deepEqual=E.deepEqual;exports.useShallowEffect=E.useShallowEffect;exports.useShare=ms.useShare;exports.getSpeechRecognition=g.getSpeechRecognition;exports.useSpeechRecognition=g.useSpeechRecognition;exports.useSpeechSynthesis=Rs.useSpeechSynthesis;exports.stateHistoryReducer=P.stateHistoryReducer;exports.useStateHistory=P.useStateHistory;exports.useStep=ps.useStep;exports.useSticky=ys.useSticky;exports.useStopwatch=Is.useStopwatch;exports.STORAGE_EVENT=t.STORAGE_EVENT;exports.dispatchStorageEvent=t.dispatchStorageEvent;exports.useStorage=t.useStorage;exports.useTextDirection=Os.useTextDirection;exports.getRangesSelection=T.getRangesSelection;exports.useTextSelection=T.useTextSelection;exports.useThrottleCallback=vs.useThrottleCallback;exports.useThrottleValue=ks.useThrottleValue;exports.useTime=As.useTime;exports.useTimeout=Ds.useTimeout;exports.getTimeFromSeconds=C.getTimeFromSeconds;exports.useTimer=C.useTimer;exports.useToggle=hs.useToggle;exports.useUnmount=Ms.useUnmount;exports.URL_SEARCH_PARAMS_EVENT=u.URL_SEARCH_PARAMS_EVENT;exports.createQueryString=u.createQueryString;exports.dispatchUrlSearchParamsEvent=u.dispatchUrlSearchParamsEvent;exports.getUrlSearchParams=u.getUrlSearchParams;exports.useUrlSearchParam=u.useUrlSearchParam;exports.useUrlSearchParams=Ls.useUrlSearchParams;exports.useVibrate=bs.useVibrate;exports.useWakeLock=fs.useWakeLock;exports.useWebSocket=_s.useWebSocket;exports.useWindowEvent=Ns.useWindowEvent;exports.useWindowFocus=Bs.useWindowFocus;exports.scrollTo=m.scrollTo;exports.useWindowScroll=m.useWindowScroll;exports.useWindowSize=Fs.useWindowSize;exports.useWizard=Ks.useWizard;exports.copy=R.copy;exports.legacyCopyToClipboard=R.legacyCopyToClipboard;exports.debounce=Vs.debounce;exports.getDate=Us.getDate;exports.getElement=o.getElement;exports.target=o.target;exports.targetSymbol=o.targetSymbol;exports.getRetry=ws.getRetry;exports.isTarget=Ws.isTarget;exports.throttle=Hs.throttle;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const p=require("./helpers/createContext/createContext.cjs"),y=require("./helpers/createEventEmitter/createEventEmitter.cjs"),I=require("./helpers/createReactiveContext/createReactiveContext.cjs"),O=require("./helpers/createStore/createStore.cjs"),v=require("./hooks/useActiveElement/useActiveElement.cjs"),k=require("./hooks/useAsync/useAsync.cjs"),h=require("./hooks/useAudio/useAudio.cjs"),A=require("./hooks/useBattery/useBattery.cjs"),D=require("./hooks/useBluetooth/useBluetooth.cjs"),M=require("./hooks/useBoolean/useBoolean.cjs"),e=require("./hooks/useBreakpoints/useBreakpoints.cjs"),L=require("./hooks/useBroadcastChannel/useBroadcastChannel.cjs"),b=require("./hooks/useBrowserLanguage/useBrowserLanguage.cjs"),f=require("./hooks/useClickOutside/useClickOutside.cjs"),_=require("./hooks/useClipboard/useClipboard.cjs"),N=require("./hooks/useConst/useConst.cjs"),s=require("./hooks/useCookie/useCookie.cjs"),i=require("./hooks/useCookies/useCookies.cjs"),B=require("./hooks/useCopy/useCopy.cjs"),F=require("./hooks/useCounter/useCounter.cjs"),K=require("./hooks/useCssVar/useCssVar.cjs"),V=require("./hooks/useDebounceCallback/useDebounceCallback.cjs"),U=require("./hooks/useDebounceValue/useDebounceValue.cjs"),w=require("./hooks/useDefault/useDefault.cjs"),W=require("./hooks/useDeviceMotion/useDeviceMotion.cjs"),H=require("./hooks/useDeviceOrientation/useDeviceOrientation.cjs"),x=require("./hooks/useDevicePixelRatio/useDevicePixelRatio.cjs"),Q=require("./hooks/useDidUpdate/useDidUpdate.cjs"),z=require("./hooks/useDisclosure/useDisclosure.cjs"),G=require("./hooks/useDisplayMedia/useDisplayMedia.cjs"),X=require("./hooks/useDocumentEvent/useDocumentEvent.cjs"),Z=require("./hooks/useDocumentTitle/useDocumentTitle.cjs"),j=require("./hooks/useDocumentVisibility/useDocumentVisibility.cjs"),n=require("./hooks/useDoubleClick/useDoubleClick.cjs"),J=require("./hooks/useDropZone/useDropZone.cjs"),Y=require("./hooks/useElementSize/useElementSize.cjs"),$=require("./hooks/useEvent/useEvent.cjs"),ee=require("./hooks/useEventListener/useEventListener.cjs"),se=require("./hooks/useEventSource/useEventSource.cjs"),ue=require("./hooks/useEyeDropper/useEyeDropper.cjs"),re=require("./hooks/useFavicon/useFavicon.cjs"),te=require("./hooks/useField/useField.cjs"),oe=require("./hooks/useFileDialog/useFileDialog.cjs"),ie=require("./hooks/useFocus/useFocus.cjs"),ne=require("./hooks/useFps/useFps.cjs"),ce=require("./hooks/useFul/useFul.cjs"),ae=require("./hooks/useFullscreen/useFullscreen.cjs"),c=require("./hooks/useGamepad/useGamepad.cjs"),le=require("./hooks/useGeolocation/useGeolocation.cjs"),Se=require("./hooks/useHash/useHash.cjs"),a=require("./hooks/useHotkeys/useHotkeys.cjs"),qe=require("./hooks/useHover/useHover.cjs"),de=require("./hooks/useIdle/useIdle.cjs"),Ee=require("./hooks/useImage/useImage.cjs"),ge=require("./hooks/useInfiniteScroll/useInfiniteScroll.cjs"),Pe=require("./hooks/useIntersectionObserver/useIntersectionObserver.cjs"),Te=require("./hooks/useInterval/useInterval.cjs"),Ce=require("./hooks/useIsFirstRender/useIsFirstRender.cjs"),me=require("./hooks/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.cjs"),Re=require("./hooks/useKeyboard/useKeyboard.cjs"),pe=require("./hooks/useKeyPress/useKeyPress.cjs"),ye=require("./hooks/useKeyPressEvent/useKeyPressEvent.cjs"),Ie=require("./hooks/useKeysPressed/useKeysPressed.cjs"),Oe=require("./hooks/useLastChanged/useLastChanged.cjs"),ve=require("./hooks/useLatest/useLatest.cjs"),ke=require("./hooks/useLess/useLess.cjs"),he=require("./hooks/useList/useList.cjs"),Ae=require("./hooks/useLocalStorage/useLocalStorage.cjs"),De=require("./hooks/useLockCallback/useLockCallback.cjs"),Me=require("./hooks/useLogger/useLogger.cjs"),Le=require("./hooks/useLongPress/useLongPress.cjs"),be=require("./hooks/useMap/useMap.cjs"),fe=require("./hooks/useMeasure/useMeasure.cjs"),l=require("./hooks/useMediaControls/useMediaControls.cjs"),_e=require("./hooks/useMediaQuery/useMediaQuery.cjs"),Ne=require("./hooks/useMemory/useMemory.cjs"),Be=require("./hooks/useMount/useMount.cjs"),Fe=require("./hooks/useMouse/useMouse.cjs"),Ke=require("./hooks/useMutation/useMutation.cjs"),Ve=require("./hooks/useMutationObserver/useMutationObserver.cjs"),S=require("./hooks/useNetwork/useNetwork.cjs"),Ue=require("./hooks/useOffsetPagination/useOffsetPagination.cjs"),we=require("./hooks/useOnce/useOnce.cjs"),We=require("./hooks/useOnline/useOnline.cjs"),q=require("./hooks/useOperatingSystem/useOperatingSystem.cjs"),He=require("./hooks/useOptimistic/useOptimistic.cjs"),xe=require("./hooks/useOrientation/useOrientation.cjs"),Qe=require("./hooks/useOtpCredential/useOtpCredential.cjs"),ze=require("./hooks/usePageLeave/usePageLeave.cjs"),r=require("./hooks/usePaint/usePaint.cjs"),Ge=require("./hooks/useParallax/useParallax.cjs"),Xe=require("./hooks/usePerformanceObserver/usePerformanceObserver.cjs"),Ze=require("./hooks/usePermission/usePermission.cjs"),je=require("./hooks/usePictureInPicture/usePictureInPicture.cjs"),Je=require("./hooks/usePointerLock/usePointerLock.cjs"),Ye=require("./hooks/usePostMessage/usePostMessage.cjs"),$e=require("./hooks/usePreferredColorScheme/usePreferredColorScheme.cjs"),es=require("./hooks/usePreferredContrast/usePreferredContrast.cjs"),ss=require("./hooks/usePreferredDark/usePreferredDark.cjs"),us=require("./hooks/usePreferredLanguages/usePreferredLanguages.cjs"),rs=require("./hooks/usePreferredReducedMotion/usePreferredReducedMotion.cjs"),ts=require("./hooks/usePrevious/usePrevious.cjs"),os=require("./hooks/useQuery/useQuery.cjs"),is=require("./hooks/useQueue/useQueue.cjs"),ns=require("./hooks/useRaf/useRaf.cjs"),cs=require("./hooks/useRafValue/useRafValue.cjs"),as=require("./hooks/useRefState/useRefState.cjs"),ls=require("./hooks/useRenderCount/useRenderCount.cjs"),Ss=require("./hooks/useRenderInfo/useRenderInfo.cjs"),qs=require("./hooks/useRerender/useRerender.cjs"),ds=require("./hooks/useResizeObserver/useResizeObserver.cjs"),Es=require("./hooks/useScreenOrientation/useScreenOrientation.cjs"),d=require("./hooks/useScript/useScript.cjs"),gs=require("./hooks/useScroll/useScroll.cjs"),Ps=require("./hooks/useScrollIntoView/useScrollIntoView.cjs"),Ts=require("./hooks/useScrollTo/useScrollTo.cjs"),Cs=require("./hooks/useSessionStorage/useSessionStorage.cjs"),ms=require("./hooks/useSet/useSet.cjs"),E=require("./hooks/useShallowEffect/useShallowEffect.cjs"),Rs=require("./hooks/useShare/useShare.cjs"),g=require("./hooks/useSpeechRecognition/useSpeechRecognition.cjs"),ps=require("./hooks/useSpeechSynthesis/useSpeechSynthesis.cjs"),P=require("./hooks/useStateHistory/useStateHistory.cjs"),ys=require("./hooks/useStep/useStep.cjs"),Is=require("./hooks/useSticky/useSticky.cjs"),Os=require("./hooks/useStopwatch/useStopwatch.cjs"),t=require("./hooks/useStorage/useStorage.cjs"),vs=require("./hooks/useTextDirection/useTextDirection.cjs"),T=require("./hooks/useTextSelection/useTextSelection.cjs"),ks=require("./hooks/useThrottleCallback/useThrottleCallback.cjs"),hs=require("./hooks/useThrottleValue/useThrottleValue.cjs"),As=require("./hooks/useTime/useTime.cjs"),Ds=require("./hooks/useTimeout/useTimeout.cjs"),C=require("./hooks/useTimer/useTimer.cjs"),Ms=require("./hooks/useToggle/useToggle.cjs"),Ls=require("./hooks/useUnmount/useUnmount.cjs"),u=require("./hooks/useUrlSearchParam/useUrlSearchParam.cjs"),bs=require("./hooks/useUrlSearchParams/useUrlSearchParams.cjs"),fs=require("./hooks/useVibrate/useVibrate.cjs"),_s=require("./hooks/useWakeLock/useWakeLock.cjs"),Ns=require("./hooks/useWebSocket/useWebSocket.cjs"),Bs=require("./hooks/useWindowEvent/useWindowEvent.cjs"),Fs=require("./hooks/useWindowFocus/useWindowFocus.cjs"),m=require("./hooks/useWindowScroll/useWindowScroll.cjs"),Ks=require("./hooks/useWindowSize/useWindowSize.cjs"),Vs=require("./hooks/useWizard/useWizard.cjs"),R=require("./utils/helpers/copy.cjs"),Us=require("./utils/helpers/debounce.cjs"),ws=require("./utils/helpers/getDate.cjs"),o=require("./utils/helpers/getElement.cjs"),Ws=require("./utils/helpers/getRetry.cjs"),Hs=require("./utils/helpers/isTarget.cjs"),xs=require("./utils/helpers/throttle.cjs");exports.createContext=p.createContext;exports.createEventEmitter=y.createEventEmitter;exports.createReactiveContext=I.createReactiveContext;exports.createStore=O.createStore;exports.useActiveElement=v.useActiveElement;exports.useAsync=k.useAsync;exports.useAudio=h.useAudio;exports.useBattery=A.useBattery;exports.useBluetooth=D.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.useBroadcastChannel=L.useBroadcastChannel;exports.useBrowserLanguage=b.useBrowserLanguage;exports.useClickOutside=f.useClickOutside;exports.useClipboard=_.useClipboard;exports.useConst=N.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=i.clearCookies;exports.useCookies=i.useCookies;exports.useCopy=B.useCopy;exports.useCounter=F.useCounter;exports.useCssVar=K.useCssVar;exports.useDebounceCallback=V.useDebounceCallback;exports.useDebounceValue=U.useDebounceValue;exports.useDefault=w.useDefault;exports.useDeviceMotion=W.useDeviceMotion;exports.useDeviceOrientation=H.useDeviceOrientation;exports.useDevicePixelRatio=x.useDevicePixelRatio;exports.useDidUpdate=Q.useDidUpdate;exports.useDisclosure=z.useDisclosure;exports.useDisplayMedia=G.useDisplayMedia;exports.useDocumentEvent=X.useDocumentEvent;exports.useDocumentTitle=Z.useDocumentTitle;exports.useDocumentVisibility=j.useDocumentVisibility;exports.DEFAULT_THRESHOLD_TIME=n.DEFAULT_THRESHOLD_TIME;exports.useDoubleClick=n.useDoubleClick;exports.useDropZone=J.useDropZone;exports.useElementSize=Y.useElementSize;exports.useEvent=$.useEvent;exports.useEventListener=ee.useEventListener;exports.useEventSource=se.useEventSource;exports.useEyeDropper=ue.useEyeDropper;exports.useFavicon=re.useFavicon;exports.useField=te.useField;exports.useFileDialog=oe.useFileDialog;exports.useFocus=ie.useFocus;exports.useFps=ne.useFps;exports.useFul=ce.useFul;exports.useFullscreen=ae.useFullscreen;exports.mapGamepadToXbox360Controller=c.mapGamepadToXbox360Controller;exports.useGamepad=c.useGamepad;exports.useGeolocation=le.useGeolocation;exports.useHash=Se.useHash;exports.isHotkeyMatch=a.isHotkeyMatch;exports.useHotkeys=a.useHotkeys;exports.useHover=qe.useHover;exports.useIdle=de.useIdle;exports.useImage=Ee.useImage;exports.useInfiniteScroll=ge.useInfiniteScroll;exports.useIntersectionObserver=Pe.useIntersectionObserver;exports.useInterval=Te.useInterval;exports.useIsFirstRender=Ce.useIsFirstRender;exports.useIsomorphicLayoutEffect=me.useIsomorphicLayoutEffect;exports.useKeyboard=Re.useKeyboard;exports.useKeyPress=pe.useKeyPress;exports.useKeyPressEvent=ye.useKeyPressEvent;exports.useKeysPressed=Ie.useKeysPressed;exports.useLastChanged=Oe.useLastChanged;exports.useLatest=ve.useLatest;exports.useLess=ke.useLess;exports.useList=he.useList;exports.useLocalStorage=Ae.useLocalStorage;exports.useLockCallback=De.useLockCallback;exports.useLogger=Me.useLogger;exports.useLongPress=Le.useLongPress;exports.useMap=be.useMap;exports.useMeasure=fe.useMeasure;exports.timeRangeToArray=l.timeRangeToArray;exports.useMediaControls=l.useMediaControls;exports.useMediaQuery=_e.useMediaQuery;exports.useMemory=Ne.useMemory;exports.useMount=Be.useMount;exports.useMouse=Fe.useMouse;exports.useMutation=Ke.useMutation;exports.useMutationObserver=Ve.useMutationObserver;exports.getConnection=S.getConnection;exports.useNetwork=S.useNetwork;exports.useOffsetPagination=Ue.useOffsetPagination;exports.useOnce=we.useOnce;exports.useOnline=We.useOnline;exports.getOperatingSystem=q.getOperatingSystem;exports.useOperatingSystem=q.useOperatingSystem;exports.useOptimistic=He.useOptimistic;exports.useOrientation=xe.useOrientation;exports.useOtpCredential=Qe.useOtpCredential;exports.usePageLeave=ze.usePageLeave;exports.Paint=r.Paint;exports.Pointer=r.Pointer;exports.usePaint=r.usePaint;exports.useParallax=Ge.useParallax;exports.usePerformanceObserver=Xe.usePerformanceObserver;exports.usePermission=Ze.usePermission;exports.usePictureInPicture=je.usePictureInPicture;exports.usePointerLock=Je.usePointerLock;exports.usePostMessage=Ye.usePostMessage;exports.usePreferredColorScheme=$e.usePreferredColorScheme;exports.usePreferredContrast=es.usePreferredContrast;exports.usePreferredDark=ss.usePreferredDark;exports.usePreferredLanguages=us.usePreferredLanguages;exports.usePreferredReducedMotion=rs.usePreferredReducedMotion;exports.usePrevious=ts.usePrevious;exports.useQuery=os.useQuery;exports.useQueue=is.useQueue;exports.useRaf=ns.useRaf;exports.useRafValue=cs.useRafValue;exports.useRefState=as.useRefState;exports.useRenderCount=ls.useRenderCount;exports.useRenderInfo=Ss.useRenderInfo;exports.useRerender=qs.useRerender;exports.useResizeObserver=ds.useResizeObserver;exports.useScreenOrientation=Es.useScreenOrientation;exports.SCRIPT_STATUS_ATTRIBUTE_NAME=d.SCRIPT_STATUS_ATTRIBUTE_NAME;exports.useScript=d.useScript;exports.useScroll=gs.useScroll;exports.useScrollIntoView=Ps.useScrollIntoView;exports.useScrollTo=Ts.useScrollTo;exports.useSessionStorage=Cs.useSessionStorage;exports.useSet=ms.useSet;exports.deepEqual=E.deepEqual;exports.useShallowEffect=E.useShallowEffect;exports.useShare=Rs.useShare;exports.getSpeechRecognition=g.getSpeechRecognition;exports.useSpeechRecognition=g.useSpeechRecognition;exports.useSpeechSynthesis=ps.useSpeechSynthesis;exports.stateHistoryReducer=P.stateHistoryReducer;exports.useStateHistory=P.useStateHistory;exports.useStep=ys.useStep;exports.useSticky=Is.useSticky;exports.useStopwatch=Os.useStopwatch;exports.STORAGE_EVENT=t.STORAGE_EVENT;exports.dispatchStorageEvent=t.dispatchStorageEvent;exports.useStorage=t.useStorage;exports.useTextDirection=vs.useTextDirection;exports.getRangesSelection=T.getRangesSelection;exports.useTextSelection=T.useTextSelection;exports.useThrottleCallback=ks.useThrottleCallback;exports.useThrottleValue=hs.useThrottleValue;exports.useTime=As.useTime;exports.useTimeout=Ds.useTimeout;exports.getTimeFromSeconds=C.getTimeFromSeconds;exports.useTimer=C.useTimer;exports.useToggle=Ms.useToggle;exports.useUnmount=Ls.useUnmount;exports.URL_SEARCH_PARAMS_EVENT=u.URL_SEARCH_PARAMS_EVENT;exports.createQueryString=u.createQueryString;exports.dispatchUrlSearchParamsEvent=u.dispatchUrlSearchParamsEvent;exports.getUrlSearchParams=u.getUrlSearchParams;exports.useUrlSearchParam=u.useUrlSearchParam;exports.useUrlSearchParams=bs.useUrlSearchParams;exports.useVibrate=fs.useVibrate;exports.useWakeLock=_s.useWakeLock;exports.useWebSocket=Ns.useWebSocket;exports.useWindowEvent=Bs.useWindowEvent;exports.useWindowFocus=Fs.useWindowFocus;exports.scrollTo=m.scrollTo;exports.useWindowScroll=m.useWindowScroll;exports.useWindowSize=Ks.useWindowSize;exports.useWizard=Vs.useWizard;exports.copy=R.copy;exports.legacyCopyToClipboard=R.legacyCopyToClipboard;exports.debounce=Us.debounce;exports.getDate=ws.getDate;exports.getElement=o.getElement;exports.target=o.target;exports.targetSymbol=o.targetSymbol;exports.getRetry=Ws.getRetry;exports.isTarget=Hs.isTarget;exports.throttle=xs.throttle;
2
2
  //# sourceMappingURL=index.cjs.map
@@ -1,16 +1,16 @@
1
1
  import { useState as r, useEffect as c } from "react";
2
- const h = () => {
3
- const t = typeof navigator < "u" && "getBattery" in navigator && typeof navigator.getBattery == "function", [a, i] = r({
4
- loading: !0,
2
+ const s = () => {
3
+ const t = typeof navigator < "u" && "getBattery" in navigator && typeof navigator.getBattery == "function", [i, a] = r({
4
+ loading: t,
5
5
  level: 0,
6
6
  charging: !1,
7
7
  chargingTime: 0,
8
8
  dischargingTime: 0
9
9
  });
10
10
  return c(() => {
11
- if (!t) return i({ ...a, loading: !1 });
11
+ if (!t) return;
12
12
  let e;
13
- const n = () => i({
13
+ const n = () => a({
14
14
  loading: !1,
15
15
  level: e?.level ?? 0,
16
16
  charging: e?.charging ?? !1,
@@ -20,11 +20,11 @@ const h = () => {
20
20
  return navigator.getBattery().then((g) => {
21
21
  e = g, n(), e.addEventListener("levelchange", n), e.addEventListener("chargingchange", n), e.addEventListener("chargingtimechange", n), e.addEventListener("dischargingtimechange", n);
22
22
  }), () => {
23
- e && (e.removeEventListener("levelchange", n), e.removeEventListener("chargingchange", n), e.removeEventListener("chargingtimechange", n), e.removeEventListener("dischargingtimechange", n));
23
+ e && (console.log("unmount", e), e.removeEventListener("levelchange", n), e.removeEventListener("chargingchange", n), e.removeEventListener("chargingtimechange", n), e.removeEventListener("dischargingtimechange", n));
24
24
  };
25
- }, []), { supported: t, value: a };
25
+ }, []), { supported: t, value: i };
26
26
  };
27
27
  export {
28
- h as useBattery
28
+ s as useBattery
29
29
  };
30
30
  //# sourceMappingURL=useBattery.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useBattery.mjs","sources":["../../../../src/hooks/useBattery/useBattery.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\n\nexport interface BatteryManager extends EventTarget {\n charging: boolean;\n chargingTime: number;\n dischargingTime: number;\n level: number;\n}\n\ndeclare global {\n interface Navigator {\n readonly getBattery: () => Promise<BatteryManager>;\n }\n}\n\n/** The use battery value type */\nexport interface UseBatteryValue {\n /** Is charging battery? */\n charging: boolean;\n /** Time until the battery is fully charged */\n chargingTime: number;\n /** Time until the battery is completely discharged */\n dischargingTime: number;\n /** Battery charge level from 0 to 1 */\n level: number;\n /** Is battery information loading? */\n loading: boolean;\n}\n\n/** The use battery return type */\nexport interface UseBatteryStateReturn {\n /** Whether the battery api is supported*/\n supported: boolean;\n /** The use battery value type */\n value: UseBatteryValue;\n}\n\n/**\n * @name useBattery\n * @description - Hook for getting information about battery status\n * @category Browser\n *\n * @browserapi navigator.getBattery https://developer.mozilla.org/en-US/docs/Web/API/Navigator/getBattery\n *\n * @returns {UseBatteryStateReturn} Object containing battery information & Battery API support\n *\n * @example\n * const { supported, loading, charging, chargingTime, dischargingTime, level } = useBattery();\n */\nexport const useBattery = (): UseBatteryStateReturn => {\n const supported =\n typeof navigator !== 'undefined' &&\n 'getBattery' in navigator &&\n typeof navigator.getBattery === 'function';\n const [value, setValue] = useState<UseBatteryValue>({\n loading: true,\n level: 0,\n charging: false,\n chargingTime: 0,\n dischargingTime: 0\n });\n\n useEffect(() => {\n if (!supported) return setValue({ ...value, loading: false });\n\n let battery: BatteryManager | null;\n\n const onChange = () =>\n setValue({\n loading: false,\n level: battery?.level ?? 0,\n charging: battery?.charging ?? false,\n dischargingTime: battery?.dischargingTime ?? 0,\n chargingTime: battery?.chargingTime ?? 0\n });\n\n navigator.getBattery().then((batteryManager) => {\n battery = batteryManager;\n onChange();\n\n battery.addEventListener('levelchange', onChange);\n battery.addEventListener('chargingchange', onChange);\n battery.addEventListener('chargingtimechange', onChange);\n battery.addEventListener('dischargingtimechange', onChange);\n });\n\n return () => {\n if (!battery) return;\n battery.removeEventListener('levelchange', onChange);\n battery.removeEventListener('chargingchange', onChange);\n battery.removeEventListener('chargingtimechange', onChange);\n battery.removeEventListener('dischargingtimechange', onChange);\n };\n }, []);\n\n return { supported, value };\n};\n"],"names":["useBattery","supported","value","setValue","useState","useEffect","battery","onChange","batteryManager"],"mappings":";AAiDO,MAAMA,IAAa,MAA6B;AACrD,QAAMC,IACJ,OAAO,YAAc,OACrB,gBAAgB,aAChB,OAAO,UAAU,cAAe,YAC5B,CAACC,GAAOC,CAAQ,IAAIC,EAA0B;AAAA,IAClD,SAAS;AAAA,IACT,OAAO;AAAA,IACP,UAAU;AAAA,IACV,cAAc;AAAA,IACd,iBAAiB;AAAA,EAAA,CAClB;AAED,SAAAC,EAAU,MAAM;AACd,QAAI,CAACJ,EAAW,QAAOE,EAAS,EAAE,GAAGD,GAAO,SAAS,IAAO;AAE5D,QAAII;AAEJ,UAAMC,IAAW,MACfJ,EAAS;AAAA,MACP,SAAS;AAAA,MACT,OAAOG,GAAS,SAAS;AAAA,MACzB,UAAUA,GAAS,YAAY;AAAA,MAC/B,iBAAiBA,GAAS,mBAAmB;AAAA,MAC7C,cAAcA,GAAS,gBAAgB;AAAA,IAAA,CACxC;AAEH,qBAAU,WAAA,EAAa,KAAK,CAACE,MAAmB;AAC9C,MAAAF,IAAUE,GACVD,EAAA,GAEAD,EAAQ,iBAAiB,eAAeC,CAAQ,GAChDD,EAAQ,iBAAiB,kBAAkBC,CAAQ,GACnDD,EAAQ,iBAAiB,sBAAsBC,CAAQ,GACvDD,EAAQ,iBAAiB,yBAAyBC,CAAQ;AAAA,IAAA,CAC3D,GAEM,MAAM;AACX,MAAKD,MACLA,EAAQ,oBAAoB,eAAeC,CAAQ,GACnDD,EAAQ,oBAAoB,kBAAkBC,CAAQ,GACtDD,EAAQ,oBAAoB,sBAAsBC,CAAQ,GAC1DD,EAAQ,oBAAoB,yBAAyBC,CAAQ;AAAA,IAAA;AAAA,EAC/D,GACC,EAAE,GAEE,EAAE,WAAAN,GAAW,OAAAC,EAAA;AACtB;"}
1
+ {"version":3,"file":"useBattery.mjs","sources":["../../../../src/hooks/useBattery/useBattery.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\n\nexport interface BatteryManager extends EventTarget {\n charging: boolean;\n chargingTime: number;\n dischargingTime: number;\n level: number;\n}\n\ndeclare global {\n interface Navigator {\n readonly getBattery: () => Promise<BatteryManager>;\n }\n}\n\n/** The use battery value type */\nexport interface UseBatteryValue {\n /** Is charging battery? */\n charging: boolean;\n /** Time until the battery is fully charged */\n chargingTime: number;\n /** Time until the battery is completely discharged */\n dischargingTime: number;\n /** Battery charge level from 0 to 1 */\n level: number;\n /** Is battery information loading? */\n loading: boolean;\n}\n\n/** The use battery return type */\nexport interface UseBatteryStateReturn {\n /** Whether the battery api is supported*/\n supported: boolean;\n /** The use battery value type */\n value: UseBatteryValue;\n}\n\n/**\n * @name useBattery\n * @description - Hook for getting information about battery status\n * @category Browser\n *\n * @browserapi navigator.getBattery https://developer.mozilla.org/en-US/docs/Web/API/Navigator/getBattery\n *\n * @returns {UseBatteryStateReturn} Object containing battery information & Battery API support\n *\n * @example\n * const { supported, loading, charging, chargingTime, dischargingTime, level } = useBattery();\n */\nexport const useBattery = (): UseBatteryStateReturn => {\n const supported =\n typeof navigator !== 'undefined' &&\n 'getBattery' in navigator &&\n typeof navigator.getBattery === 'function';\n const [value, setValue] = useState<UseBatteryValue>({\n loading: supported,\n level: 0,\n charging: false,\n chargingTime: 0,\n dischargingTime: 0\n });\n\n useEffect(() => {\n if (!supported) return;\n let battery: BatteryManager | null;\n\n const onChange = () =>\n setValue({\n loading: false,\n level: battery?.level ?? 0,\n charging: battery?.charging ?? false,\n dischargingTime: battery?.dischargingTime ?? 0,\n chargingTime: battery?.chargingTime ?? 0\n });\n\n navigator.getBattery().then((batteryManager) => {\n battery = batteryManager;\n onChange();\n\n battery.addEventListener('levelchange', onChange);\n battery.addEventListener('chargingchange', onChange);\n battery.addEventListener('chargingtimechange', onChange);\n battery.addEventListener('dischargingtimechange', onChange);\n });\n\n return () => {\n if (!battery) return;\n console.log('unmount', battery);\n battery.removeEventListener('levelchange', onChange);\n battery.removeEventListener('chargingchange', onChange);\n battery.removeEventListener('chargingtimechange', onChange);\n battery.removeEventListener('dischargingtimechange', onChange);\n };\n }, []);\n\n return { supported, value };\n};\n"],"names":["useBattery","supported","value","setValue","useState","useEffect","battery","onChange","batteryManager"],"mappings":";AAiDO,MAAMA,IAAa,MAA6B;AACrD,QAAMC,IACJ,OAAO,YAAc,OACrB,gBAAgB,aAChB,OAAO,UAAU,cAAe,YAC5B,CAACC,GAAOC,CAAQ,IAAIC,EAA0B;AAAA,IAClD,SAASH;AAAA,IACT,OAAO;AAAA,IACP,UAAU;AAAA,IACV,cAAc;AAAA,IACd,iBAAiB;AAAA,EAAA,CAClB;AAED,SAAAI,EAAU,MAAM;AACd,QAAI,CAACJ,EAAW;AAChB,QAAIK;AAEJ,UAAMC,IAAW,MACfJ,EAAS;AAAA,MACP,SAAS;AAAA,MACT,OAAOG,GAAS,SAAS;AAAA,MACzB,UAAUA,GAAS,YAAY;AAAA,MAC/B,iBAAiBA,GAAS,mBAAmB;AAAA,MAC7C,cAAcA,GAAS,gBAAgB;AAAA,IAAA,CACxC;AAEH,qBAAU,WAAA,EAAa,KAAK,CAACE,MAAmB;AAC9C,MAAAF,IAAUE,GACVD,EAAA,GAEAD,EAAQ,iBAAiB,eAAeC,CAAQ,GAChDD,EAAQ,iBAAiB,kBAAkBC,CAAQ,GACnDD,EAAQ,iBAAiB,sBAAsBC,CAAQ,GACvDD,EAAQ,iBAAiB,yBAAyBC,CAAQ;AAAA,IAAA,CAC3D,GAEM,MAAM;AACX,MAAKD,MACL,QAAQ,IAAI,WAAWA,CAAO,GAC9BA,EAAQ,oBAAoB,eAAeC,CAAQ,GACnDD,EAAQ,oBAAoB,kBAAkBC,CAAQ,GACtDD,EAAQ,oBAAoB,sBAAsBC,CAAQ,GAC1DD,EAAQ,oBAAoB,yBAAyBC,CAAQ;AAAA,IAAA;AAAA,EAC/D,GACC,EAAE,GAEE,EAAE,WAAAN,GAAW,OAAAC,EAAA;AACtB;"}
@@ -0,0 +1,32 @@
1
+ import { useState as n, useRef as p, useEffect as L } from "react";
2
+ const w = (s, d) => {
3
+ const o = typeof window < "u" && "BroadcastChannel" in window, [i, c] = n(!1), [l, f] = n(), [v, E] = n(), e = p(void 0);
4
+ L(() => {
5
+ if (!o) return;
6
+ e.current = new BroadcastChannel(s);
7
+ const r = (t) => {
8
+ f(t.data), d?.(t.data);
9
+ }, a = (t) => E(t), u = () => c(!0);
10
+ return e.current.addEventListener("message", r), e.current.addEventListener("messageerror", a), e.current.addEventListener("close", u), () => {
11
+ e.current && (e.current.removeEventListener("message", r), e.current.removeEventListener("messageerror", a), e.current.removeEventListener("close", u), e.current.close());
12
+ };
13
+ }, [s]);
14
+ const g = (r) => {
15
+ console.log("post", r, e.current), e.current && e.current.postMessage(r);
16
+ }, m = () => {
17
+ e.current && (e.current.close(), c(!0));
18
+ };
19
+ return {
20
+ supported: o,
21
+ channel: e.current,
22
+ data: l,
23
+ post: g,
24
+ close: m,
25
+ error: v,
26
+ closed: i
27
+ };
28
+ };
29
+ export {
30
+ w as useBroadcastChannel
31
+ };
32
+ //# sourceMappingURL=useBroadcastChannel.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useBroadcastChannel.mjs","sources":["../../../../src/hooks/useBroadcastChannel/useBroadcastChannel.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\n\n/** The use broadcast channel return type */\nexport interface UseBroadcastChannelReturn<Data = unknown> {\n /** The underlying BroadcastChannel instance if supported, undefined otherwise */\n channel?: BroadcastChannel;\n /** Whether the channel has been closed */\n closed: boolean;\n /** The most recently received data from other contexts */\n data?: Data;\n /** Error object if any error occurred during channel operations */\n error?: Event;\n /** Whether the BroadcastChannel API is supported in the current environment */\n supported: boolean;\n /** Function to close the channel and clean up resources */\n close: () => void;\n /** Function to send data to other contexts through the channel */\n post: (data: Data) => void;\n}\n\n/**\n * @name useBroadcastChannel\n * @description Hook that provides cross-tab/window communication\n * @category Browser\n *\n * @browserapi BroadcastChannel https://developer.mozilla.org/en-US/docs/Web/API/BroadcastChannel\n *\n * @param {string} name The name of the channel\n * @param {Function} callback A callback function that will be called when a message is received\n * @returns {UseBroadcastChannelReturn} An object containing the channel state and controls\n *\n * @example\n * const { supported, data, post, error } = useBroadcastChannel('channel');\n */\nexport const useBroadcastChannel = <Data = unknown>(\n name: string,\n callback?: (data: Data) => void\n): UseBroadcastChannelReturn<Data> => {\n const supported = typeof window !== 'undefined' && 'BroadcastChannel' in window;\n\n const [closed, setClosed] = useState(false);\n const [data, setData] = useState<Data>();\n const [error, setError] = useState<MessageEvent>();\n const channelRef = useRef<BroadcastChannel>(undefined);\n\n useEffect(() => {\n if (!supported) return;\n\n channelRef.current = new BroadcastChannel(name);\n\n const onMessage = (event: MessageEvent) => {\n setData(event.data);\n callback?.(event.data);\n };\n const onMessageError = (event: MessageEvent) => setError(event);\n const onClose = () => setClosed(true);\n\n channelRef.current.addEventListener('message', onMessage);\n channelRef.current.addEventListener('messageerror', onMessageError);\n channelRef.current.addEventListener('close', onClose);\n\n return () => {\n if (channelRef.current) {\n channelRef.current.removeEventListener('message', onMessage);\n channelRef.current.removeEventListener('messageerror', onMessageError);\n channelRef.current.removeEventListener('close', onClose);\n channelRef.current.close();\n }\n };\n }, [name]);\n\n const post = (data: Data) => {\n console.log('post', data, channelRef.current);\n if (!channelRef.current) return;\n channelRef.current.postMessage(data);\n };\n\n const close = () => {\n if (!channelRef.current) return;\n channelRef.current.close();\n setClosed(true);\n };\n\n return {\n supported,\n channel: channelRef.current,\n data,\n post,\n close,\n error,\n closed\n };\n};\n"],"names":["useBroadcastChannel","name","callback","supported","closed","setClosed","useState","data","setData","error","setError","channelRef","useRef","useEffect","onMessage","event","onMessageError","onClose","post","close"],"mappings":";AAkCO,MAAMA,IAAsB,CACjCC,GACAC,MACoC;AACpC,QAAMC,IAAY,OAAO,SAAW,OAAe,sBAAsB,QAEnE,CAACC,GAAQC,CAAS,IAAIC,EAAS,EAAK,GACpC,CAACC,GAAMC,CAAO,IAAIF,EAAA,GAClB,CAACG,GAAOC,CAAQ,IAAIJ,EAAA,GACpBK,IAAaC,EAAyB,MAAS;AAErD,EAAAC,EAAU,MAAM;AACd,QAAI,CAACV,EAAW;AAEhB,IAAAQ,EAAW,UAAU,IAAI,iBAAiBV,CAAI;AAE9C,UAAMa,IAAY,CAACC,MAAwB;AACzC,MAAAP,EAAQO,EAAM,IAAI,GAClBb,IAAWa,EAAM,IAAI;AAAA,IAAA,GAEjBC,IAAiB,CAACD,MAAwBL,EAASK,CAAK,GACxDE,IAAU,MAAMZ,EAAU,EAAI;AAEpC,WAAAM,EAAW,QAAQ,iBAAiB,WAAWG,CAAS,GACxDH,EAAW,QAAQ,iBAAiB,gBAAgBK,CAAc,GAClEL,EAAW,QAAQ,iBAAiB,SAASM,CAAO,GAE7C,MAAM;AACX,MAAIN,EAAW,YACbA,EAAW,QAAQ,oBAAoB,WAAWG,CAAS,GAC3DH,EAAW,QAAQ,oBAAoB,gBAAgBK,CAAc,GACrEL,EAAW,QAAQ,oBAAoB,SAASM,CAAO,GACvDN,EAAW,QAAQ,MAAA;AAAA,IACrB;AAAA,EACF,GACC,CAACV,CAAI,CAAC;AAET,QAAMiB,IAAO,CAACX,MAAe;AAE3B,IADA,QAAQ,IAAI,QAAQA,GAAMI,EAAW,OAAO,GACvCA,EAAW,WAChBA,EAAW,QAAQ,YAAYJ,CAAI;AAAA,EAAA,GAG/BY,IAAQ,MAAM;AAClB,IAAKR,EAAW,YAChBA,EAAW,QAAQ,MAAA,GACnBN,EAAU,EAAI;AAAA,EAAA;AAGhB,SAAO;AAAA,IACL,WAAAF;AAAA,IACA,SAASQ,EAAW;AAAA,IACpB,MAAAJ;AAAA,IACA,MAAAW;AAAA,IACA,OAAAC;AAAA,IACA,OAAAV;AAAA,IACA,QAAAL;AAAA,EAAA;AAEJ;"}
@@ -1,19 +1,19 @@
1
- import { useRef as u, useEffect as f } from "react";
2
- import { useRefState as l } from "../useRefState/useRefState.mjs";
1
+ import { useRef as l, useEffect as u } from "react";
2
+ import { useRefState as f } from "../useRefState/useRefState.mjs";
3
3
  import { isTarget as m } from "../../utils/helpers/isTarget.mjs";
4
4
  import { getElement as a } from "../../utils/helpers/getElement.mjs";
5
- const R = (...t) => {
6
- const e = m(t[0]) ? t[0] : void 0, r = t[1] ? t[1] : t[0], n = l(), c = u(r);
7
- if (c.current = r, f(() => {
8
- if (!e && !n.state) return;
9
- const o = (i) => {
10
- const s = e ? a(e) : n.current;
11
- s && !s.contains(i.target) && c.current(i);
5
+ const R = (...e) => {
6
+ const t = m(e[0]) ? e[0] : void 0, r = e[1] ? e[1] : e[0], n = f(), o = l(r);
7
+ if (o.current = r, u(() => {
8
+ if (console.log("target", t), !t && !n.state) return;
9
+ const c = (i) => {
10
+ const s = t ? a(t) : n.current;
11
+ s && !s.contains(i.target) && o.current(i);
12
12
  };
13
- return document.addEventListener("click", o), () => {
14
- document.removeEventListener("click", o);
13
+ return document.addEventListener("click", c), () => {
14
+ document.removeEventListener("click", c);
15
15
  };
16
- }, [e, n.state]), !e)
16
+ }, [t, n.state]), !t)
17
17
  return n;
18
18
  };
19
19
  export {
@@ -1 +1 @@
1
- {"version":3,"file":"useClickOutside.mjs","sources":["../../../../src/hooks/useClickOutside/useClickOutside.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 interface UseClickOutside {\n (target: HookTarget, callback: (event: Event) => void): void;\n\n <Target extends Element>(callback: (event: Event) => void, target?: never): StateRef<Target>;\n}\n\n/**\n * @name useClickOutside\n * @description - Hook to handle click events outside the specified target element(s)\n * @category Sensors\n *\n * @overload\n * @param {HookTarget} target The target element(s) to detect outside clicks for\n * @param {(event: Event) => void} callback The callback to execute when a click outside the target is detected\n * @returns {void}\n *\n * @example\n * useClickOutside(ref, () => console.log('click outside'));\n *\n * @overload\n * @template Target The target element(s)\n * @param {(event: Event) => void} callback The callback to execute when a click outside the target is detected\n * @returns {(node: Target) => void} A React ref to attach to the target element\n *\n * @example\n * const ref = useClickOutside<HTMLDivElement>(() => console.log('click outside'));\n *\n * @see {@link https://siberiacancode.github.io/reactuse/functions/hooks/useClickOutside.html}\n */\nexport const useClickOutside = ((...params: any[]) => {\n const target = (isTarget(params[0]) ? params[0] : undefined) as HookTarget | undefined;\n const callback = (params[1] ? params[1] : params[0]) as (event: Event) => void;\n\n const internalRef = useRefState<Element>();\n const internalCallbackRef = useRef(callback);\n internalCallbackRef.current = callback;\n\n useEffect(() => {\n if (!target && !internalRef.state) return;\n const onClick = (event: Event) => {\n const element = (target ? getElement(target) : internalRef.current) as Element;\n\n if (element && !element.contains(event.target as Node)) {\n internalCallbackRef.current(event);\n }\n };\n\n document.addEventListener('click', onClick);\n\n return () => {\n document.removeEventListener('click', onClick);\n };\n }, [target, internalRef.state]);\n\n if (target) return;\n return internalRef;\n}) as UseClickOutside;\n"],"names":["useClickOutside","params","target","isTarget","callback","internalRef","useRefState","internalCallbackRef","useRef","useEffect","onClick","event","element","getElement"],"mappings":";;;;AAuCO,MAAMA,IAAmB,IAAIC,MAAkB;AACpD,QAAMC,IAAUC,EAASF,EAAO,CAAC,CAAC,IAAIA,EAAO,CAAC,IAAI,QAC5CG,IAAYH,EAAO,CAAC,IAAIA,EAAO,CAAC,IAAIA,EAAO,CAAC,GAE5CI,IAAcC,EAAA,GACdC,IAAsBC,EAAOJ,CAAQ;AAoB3C,MAnBAG,EAAoB,UAAUH,GAE9BK,EAAU,MAAM;AACd,QAAI,CAACP,KAAU,CAACG,EAAY,MAAO;AACnC,UAAMK,IAAU,CAACC,MAAiB;AAChC,YAAMC,IAAWV,IAASW,EAAWX,CAAM,IAAIG,EAAY;AAE3D,MAAIO,KAAW,CAACA,EAAQ,SAASD,EAAM,MAAc,KACnDJ,EAAoB,QAAQI,CAAK;AAAA,IACnC;AAGF,oBAAS,iBAAiB,SAASD,CAAO,GAEnC,MAAM;AACX,eAAS,oBAAoB,SAASA,CAAO;AAAA,IAAA;AAAA,EAC/C,GACC,CAACR,GAAQG,EAAY,KAAK,CAAC,GAE1B,CAAAH;AACJ,WAAOG;AACT;"}
1
+ {"version":3,"file":"useClickOutside.mjs","sources":["../../../../src/hooks/useClickOutside/useClickOutside.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 interface UseClickOutside {\n (target: HookTarget, callback: (event: Event) => void): void;\n\n <Target extends Element>(callback: (event: Event) => void, target?: never): StateRef<Target>;\n}\n\n/**\n * @name useClickOutside\n * @description - Hook to handle click events outside the specified target element(s)\n * @category Sensors\n *\n * @overload\n * @param {HookTarget} target The target element(s) to detect outside clicks for\n * @param {(event: Event) => void} callback The callback to execute when a click outside the target is detected\n * @returns {void}\n *\n * @example\n * useClickOutside(ref, () => console.log('click outside'));\n *\n * @overload\n * @template Target The target element(s)\n * @param {(event: Event) => void} callback The callback to execute when a click outside the target is detected\n * @returns {(node: Target) => void} A React ref to attach to the target element\n *\n * @example\n * const ref = useClickOutside<HTMLDivElement>(() => console.log('click outside'));\n *\n * @see {@link https://siberiacancode.github.io/reactuse/functions/hooks/useClickOutside.html}\n */\nexport const useClickOutside = ((...params: any[]) => {\n const target = (isTarget(params[0]) ? params[0] : undefined) as HookTarget | undefined;\n const callback = (params[1] ? params[1] : params[0]) as (event: Event) => void;\n\n const internalRef = useRefState<Element>();\n const internalCallbackRef = useRef(callback);\n internalCallbackRef.current = callback;\n\n useEffect(() => {\n console.log('target', target);\n if (!target && !internalRef.state) return;\n const onClick = (event: Event) => {\n const element = (target ? getElement(target) : internalRef.current) as Element;\n\n if (element && !element.contains(event.target as Node)) {\n internalCallbackRef.current(event);\n }\n };\n\n document.addEventListener('click', onClick);\n\n return () => {\n document.removeEventListener('click', onClick);\n };\n }, [target, internalRef.state]);\n\n if (target) return;\n return internalRef;\n}) as UseClickOutside;\n"],"names":["useClickOutside","params","target","isTarget","callback","internalRef","useRefState","internalCallbackRef","useRef","useEffect","onClick","event","element","getElement"],"mappings":";;;;AAuCO,MAAMA,IAAmB,IAAIC,MAAkB;AACpD,QAAMC,IAAUC,EAASF,EAAO,CAAC,CAAC,IAAIA,EAAO,CAAC,IAAI,QAC5CG,IAAYH,EAAO,CAAC,IAAIA,EAAO,CAAC,IAAIA,EAAO,CAAC,GAE5CI,IAAcC,EAAA,GACdC,IAAsBC,EAAOJ,CAAQ;AAqB3C,MApBAG,EAAoB,UAAUH,GAE9BK,EAAU,MAAM;AAEd,QADA,QAAQ,IAAI,UAAUP,CAAM,GACxB,CAACA,KAAU,CAACG,EAAY,MAAO;AACnC,UAAMK,IAAU,CAACC,MAAiB;AAChC,YAAMC,IAAWV,IAASW,EAAWX,CAAM,IAAIG,EAAY;AAE3D,MAAIO,KAAW,CAACA,EAAQ,SAASD,EAAM,MAAc,KACnDJ,EAAoB,QAAQI,CAAK;AAAA,IACnC;AAGF,oBAAS,iBAAiB,SAASD,CAAO,GAEnC,MAAM;AACX,eAAS,oBAAoB,SAASA,CAAO;AAAA,IAAA;AAAA,EAC/C,GACC,CAACR,GAAQG,EAAY,KAAK,CAAC,GAE1B,CAAAH;AACJ,WAAOG;AACT;"}
@@ -1,40 +1,38 @@
1
- import { useState as v, useRef as p, useEffect as y } from "react";
2
- import { useRefState as D } from "../useRefState/useRefState.mjs";
3
- import { isTarget as h } from "../../utils/helpers/isTarget.mjs";
4
- import { getElement as f } from "../../utils/helpers/getElement.mjs";
5
- const T = (...s) => {
6
- const o = typeof navigator < "u" && "mediaDevices" in navigator && !!navigator.mediaDevices && "getDisplayMedia" in navigator.mediaDevices, e = h(s[0]) ? s[0] : void 0, c = s[1] ? s[1] : s[0], m = c?.immediately ?? !1, [d, l] = v(!1), t = p(null), r = D(), a = () => {
7
- if (!t.current || !o) return;
8
- const n = e ? f(e) : r.current;
9
- n && (l(!1), n.srcObject = null, t.current.getTracks().forEach((i) => i.stop()), t.current = null);
1
+ import { useState as v, useRef as l, useEffect as p } from "react";
2
+ import { useRefState as y } from "../useRefState/useRefState.mjs";
3
+ import { isTarget as D } from "../../utils/helpers/isTarget.mjs";
4
+ import { getElement as R } from "../../utils/helpers/getElement.mjs";
5
+ const T = (...r) => {
6
+ const n = typeof navigator < "u" && "mediaDevices" in navigator && !!navigator.mediaDevices && "getDisplayMedia" in navigator.mediaDevices, i = D(r[0]) ? r[0] : void 0, c = r[1] ? r[1] : r[0], m = c?.immediately ?? !1, [f, d] = v(!1), s = l(null), t = l(null), a = y(), o = () => {
7
+ !t.current || !n || !s.current || (d(!1), s.current.srcObject = null, t.current.getTracks().forEach((e) => e.stop()), t.current = null);
10
8
  }, u = async () => {
11
- if (!o) return;
12
- const n = e ? f(e) : r.current;
13
- if (!n) return;
14
- const i = await navigator.mediaDevices.getDisplayMedia({
9
+ if (!n || !s.current) return;
10
+ const e = await navigator.mediaDevices.getDisplayMedia({
15
11
  video: c?.video,
16
12
  audio: c?.audio
17
13
  });
18
- return l(!0), t.current = i, n.srcObject = i, i.getTracks().forEach((g) => g.onended = a), i;
14
+ return d(!0), t.current = e, s.current.srcObject = e, e.getTracks().forEach((g) => g.onended = o), e;
19
15
  };
20
- return y(() => {
21
- if (!(!o || !m || !e && !r.state || !(e ? f(e) : r.current)))
16
+ return p(() => {
17
+ if (!n || !i && !a.state) return;
18
+ const e = i ? R(i) : a.current;
19
+ if (e && (s.current = e, !!m))
22
20
  return u(), () => {
23
- a();
21
+ o();
24
22
  };
25
- }, [e, r.state]), e ? {
23
+ }, [i, a.state]), i ? {
26
24
  stream: t.current,
27
- sharing: d,
28
- supported: o,
25
+ sharing: f,
26
+ supported: n,
29
27
  start: u,
30
- stop: a
28
+ stop: o
31
29
  } : {
32
30
  stream: t.current,
33
- sharing: d,
34
- supported: o,
31
+ sharing: f,
32
+ supported: n,
35
33
  start: u,
36
- stop: a,
37
- ref: r
34
+ stop: o,
35
+ ref: a
38
36
  };
39
37
  };
40
38
  export {