@siberiacancode/reactuse 0.0.44 → 0.0.46

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 (260) hide show
  1. package/dist/cjs/{_rollupPluginBabelHelpers-Bx9oEugz.js → _rollupPluginBabelHelpers-CFMEkg0G.js} +2 -2
  2. package/dist/cjs/_rollupPluginBabelHelpers-CFMEkg0G.js.map +1 -0
  3. package/dist/cjs/hooks/index.js +2 -2
  4. package/dist/cjs/hooks/useBattery/useBattery.js +2 -2
  5. package/dist/cjs/hooks/useBoolean/useBoolean.js +2 -2
  6. package/dist/cjs/hooks/useBrowserLanguage/useBrowserLanguage.js +1 -1
  7. package/dist/cjs/hooks/useClickOutside/useClickOutside.js +2 -2
  8. package/dist/cjs/hooks/useClickOutside/useClickOutside.js.map +1 -1
  9. package/dist/cjs/hooks/useClipboard/useClipboard.js +3 -0
  10. package/dist/cjs/hooks/useClipboard/useClipboard.js.map +1 -0
  11. package/dist/cjs/hooks/useCounter/useCounter.js +2 -2
  12. package/dist/cjs/hooks/useCounter/useCounter.js.map +1 -1
  13. package/dist/cjs/hooks/useDebounceCallback/useDebounceCallback.js +1 -1
  14. package/dist/cjs/hooks/useDebounceValue/useDebounceValue.js +2 -2
  15. package/dist/cjs/hooks/useDefault/useDefault.js +2 -2
  16. package/dist/cjs/hooks/useDidUpdate/useDidUpdate.js +1 -1
  17. package/dist/cjs/hooks/useDisclosure/useDisclosure.js +2 -2
  18. package/dist/cjs/hooks/useDocumentEvent/useDocumentEvent.js +2 -2
  19. package/dist/cjs/hooks/useDocumentEvent/useDocumentEvent.js.map +1 -1
  20. package/dist/cjs/hooks/useDocumentTitle/useDocumentTitle.js +2 -2
  21. package/dist/cjs/hooks/useDocumentVisibility/useDocumentVisibility.js +1 -1
  22. package/dist/cjs/hooks/useEvent/useEvent.js +2 -2
  23. package/dist/cjs/hooks/useEvent/useEvent.js.map +1 -1
  24. package/dist/cjs/hooks/useEventListener/useEventListener.js +2 -2
  25. package/dist/cjs/hooks/useEventListener/useEventListener.js.map +1 -1
  26. package/dist/cjs/hooks/useEyeDropper/useEyeDropper.js +2 -2
  27. package/dist/cjs/hooks/useFavicon/useFavicon.js +2 -2
  28. package/dist/cjs/hooks/useField/useField.js +2 -2
  29. package/dist/cjs/hooks/useField/useField.js.map +1 -1
  30. package/dist/cjs/hooks/useFileDialog/useFileDialog.js +2 -2
  31. package/dist/cjs/hooks/useFileDialog/useFileDialog.js.map +1 -1
  32. package/dist/cjs/hooks/useFps/useFps.js +2 -2
  33. package/dist/cjs/hooks/useFullscreen/useFullscreen.js +2 -2
  34. package/dist/cjs/hooks/useFullscreen/useFullscreen.js.map +1 -1
  35. package/dist/cjs/hooks/useGeolocation/useGeolocation.js +2 -2
  36. package/dist/cjs/hooks/useHash/useHash.js +2 -2
  37. package/dist/cjs/hooks/useHotkeys/useHotkeys.js +2 -2
  38. package/dist/cjs/hooks/useHover/useHover.js +2 -2
  39. package/dist/cjs/hooks/useHover/useHover.js.map +1 -1
  40. package/dist/cjs/hooks/useIdle/useIdle.js +2 -2
  41. package/dist/cjs/hooks/useImage/useImage.js +2 -2
  42. package/dist/cjs/hooks/useIntersectionObserver/useIntersectionObserver.js +2 -2
  43. package/dist/cjs/hooks/useIntersectionObserver/useIntersectionObserver.js.map +1 -1
  44. package/dist/cjs/hooks/useInterval/useInterval.js +2 -2
  45. package/dist/cjs/hooks/useInterval/useInterval.js.map +1 -1
  46. package/dist/cjs/hooks/useIsFirstRender/useIsFirstRender.js +1 -1
  47. package/dist/cjs/hooks/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.js +1 -1
  48. package/dist/cjs/hooks/useKeyPress/useKeyPress.js +2 -2
  49. package/dist/cjs/hooks/useKeyPress/useKeyPress.js.map +1 -1
  50. package/dist/cjs/hooks/useKeyPressEvent/useKeyPressEvent.js +2 -2
  51. package/dist/cjs/hooks/useKeyPressEvent/useKeyPressEvent.js.map +1 -1
  52. package/dist/cjs/hooks/useKeyboard/useKeyboard.js +2 -2
  53. package/dist/cjs/hooks/useKeyboard/useKeyboard.js.map +1 -1
  54. package/dist/cjs/hooks/useKeysPressed/useKeysPressed.js +2 -2
  55. package/dist/cjs/hooks/useList/useList.js +2 -2
  56. package/dist/cjs/hooks/useLocalStorage/useLocalStorage.js +2 -2
  57. package/dist/cjs/hooks/useLogger/useLogger.js +2 -2
  58. package/dist/cjs/hooks/useLongPress/useLongPress.js +2 -2
  59. package/dist/cjs/hooks/useLongPress/useLongPress.js.map +1 -1
  60. package/dist/cjs/hooks/useMap/useMap.js +2 -2
  61. package/dist/cjs/hooks/useMeasure/useMeasure.js +2 -2
  62. package/dist/cjs/hooks/useMeasure/useMeasure.js.map +1 -1
  63. package/dist/cjs/hooks/useMediaQuery/useMediaQuery.js +1 -1
  64. package/dist/cjs/hooks/useMemory/useMemory.js +2 -2
  65. package/dist/cjs/hooks/useMemory/useMemory.js.map +1 -1
  66. package/dist/cjs/hooks/useMount/useMount.js +1 -1
  67. package/dist/cjs/hooks/useMouse/useMouse.js +2 -2
  68. package/dist/cjs/hooks/useMouse/useMouse.js.map +1 -1
  69. package/dist/cjs/hooks/useMutation/useMutation.js +2 -2
  70. package/dist/cjs/hooks/useMutationObserver.js +1 -1
  71. package/dist/cjs/hooks/useNetwork/useNetwork.js +2 -2
  72. package/dist/cjs/hooks/useOnline/useOnline.js +1 -1
  73. package/dist/cjs/hooks/useOperatingSystem/useOperatingSystem.js +1 -1
  74. package/dist/cjs/hooks/useOrientation/useOrientation.js +2 -2
  75. package/dist/cjs/hooks/usePageLeave/usePageLeave.js +2 -2
  76. package/dist/cjs/hooks/usePageLeave/usePageLeave.js.map +1 -1
  77. package/dist/cjs/hooks/usePaint/helpers/Paint.js +2 -2
  78. package/dist/cjs/hooks/usePaint/helpers/Pointer.js +2 -2
  79. package/dist/cjs/hooks/usePaint/usePaint.js +2 -2
  80. package/dist/cjs/hooks/usePaint/usePaint.js.map +1 -1
  81. package/dist/cjs/hooks/usePermission/usePermission.js +2 -2
  82. package/dist/cjs/hooks/usePermission/usePermission.js.map +1 -1
  83. package/dist/cjs/hooks/usePreferredColorScheme/usePreferredColorScheme.js +1 -1
  84. package/dist/cjs/hooks/usePreferredLanguages/usePreferredLanguages.js +1 -1
  85. package/dist/cjs/hooks/usePrevious/usePrevious.js +1 -1
  86. package/dist/cjs/hooks/useQuery/useQuery.js +2 -2
  87. package/dist/cjs/hooks/useQueue/useQueue.js +2 -2
  88. package/dist/cjs/hooks/useRenderCount/useRenderCount.js +1 -1
  89. package/dist/cjs/hooks/useRenderInfo/useRenderInfo.js +1 -1
  90. package/dist/cjs/hooks/useRerender/useRerender.js +2 -2
  91. package/dist/cjs/hooks/useResizeObserver/useResizeObserver.js +3 -0
  92. package/dist/cjs/hooks/useResizeObserver/useResizeObserver.js.map +1 -0
  93. package/dist/cjs/hooks/useScript/useScript.js +2 -2
  94. package/dist/cjs/hooks/useSessionStorage/useSessionStorage.js +2 -2
  95. package/dist/cjs/hooks/useSet/useSet.js +2 -2
  96. package/dist/cjs/hooks/useShare/useShare.js +2 -2
  97. package/dist/cjs/hooks/useStep/useStep.js +2 -2
  98. package/dist/cjs/hooks/useStopwatch/useStopwatch.js +2 -2
  99. package/dist/cjs/hooks/useStopwatch/useStopwatch.js.map +1 -1
  100. package/dist/cjs/hooks/useStorage/useStorage.js +2 -2
  101. package/dist/cjs/hooks/useTextSelection/useTextSelection.js +2 -2
  102. package/dist/cjs/hooks/useTime/useTime.js +2 -2
  103. package/dist/cjs/hooks/useTime/useTime.js.map +1 -1
  104. package/dist/cjs/hooks/useTimeout/useTimeout.js +2 -2
  105. package/dist/cjs/hooks/useTimeout/useTimeout.js.map +1 -1
  106. package/dist/cjs/hooks/useToggle/useToggle.js +2 -2
  107. package/dist/cjs/hooks/useUnmount/useUnmount.js +1 -1
  108. package/dist/cjs/hooks/useUnmount/useUnmount.js.map +1 -1
  109. package/dist/cjs/hooks/useWebSocket/useWebSocket.js +2 -2
  110. package/dist/cjs/hooks/useWebSocket/useWebSocket.js.map +1 -1
  111. package/dist/cjs/hooks/useWindowEvent/useWindowEvent.js +2 -2
  112. package/dist/cjs/hooks/useWindowEvent/useWindowEvent.js.map +1 -1
  113. package/dist/cjs/hooks/useWindowSize/useWindowSize.js +2 -2
  114. package/dist/cjs/hooks/useWizard/useWizard.js +2 -2
  115. package/dist/cjs/{index-P7gOty8T.js → index-tUwcXC5G.js} +2 -2
  116. package/dist/cjs/{index-P7gOty8T.js.map → index-tUwcXC5G.js.map} +1 -1
  117. package/dist/cjs/index.js +2 -2
  118. package/dist/cjs/utils/helpers/debounce.js +1 -1
  119. package/dist/cjs/utils/helpers/getRetry.js +1 -1
  120. package/dist/cjs/utils/helpers/index.js +2 -2
  121. package/dist/cjs/utils/helpers/isClient.js +1 -1
  122. package/dist/cjs/utils/helpers/isPermissionAllowed.js +3 -0
  123. package/dist/cjs/utils/helpers/isPermissionAllowed.js.map +1 -0
  124. package/dist/cjs/utils/helpers/throttle.js +1 -1
  125. package/dist/cjs/utils/helpers/time/getDate.js +1 -1
  126. package/dist/cjs/utils/types/index.js +1 -1
  127. package/dist/esm/{_rollupPluginBabelHelpers-CePHKKZk.js → _rollupPluginBabelHelpers-Cr2mIGKl.js} +2 -2
  128. package/dist/esm/_rollupPluginBabelHelpers-Cr2mIGKl.js.map +1 -0
  129. package/dist/esm/hooks/index.js +2 -2
  130. package/dist/esm/hooks/useBattery/useBattery.js +2 -2
  131. package/dist/esm/hooks/useBoolean/useBoolean.js +2 -2
  132. package/dist/esm/hooks/useBrowserLanguage/useBrowserLanguage.js +1 -1
  133. package/dist/esm/hooks/useClickOutside/useClickOutside.js +2 -2
  134. package/dist/esm/hooks/useClickOutside/useClickOutside.js.map +1 -1
  135. package/dist/esm/hooks/useClipboard/useClipboard.js +3 -0
  136. package/dist/esm/hooks/useClipboard/useClipboard.js.map +1 -0
  137. package/dist/esm/hooks/useCounter/useCounter.js +2 -2
  138. package/dist/esm/hooks/useCounter/useCounter.js.map +1 -1
  139. package/dist/esm/hooks/useDebounceCallback/useDebounceCallback.js +1 -1
  140. package/dist/esm/hooks/useDebounceValue/useDebounceValue.js +2 -2
  141. package/dist/esm/hooks/useDefault/useDefault.js +2 -2
  142. package/dist/esm/hooks/useDidUpdate/useDidUpdate.js +1 -1
  143. package/dist/esm/hooks/useDisclosure/useDisclosure.js +2 -2
  144. package/dist/esm/hooks/useDocumentEvent/useDocumentEvent.js +2 -2
  145. package/dist/esm/hooks/useDocumentEvent/useDocumentEvent.js.map +1 -1
  146. package/dist/esm/hooks/useDocumentTitle/useDocumentTitle.js +2 -2
  147. package/dist/esm/hooks/useDocumentVisibility/useDocumentVisibility.js +1 -1
  148. package/dist/esm/hooks/useEvent/useEvent.js +2 -2
  149. package/dist/esm/hooks/useEvent/useEvent.js.map +1 -1
  150. package/dist/esm/hooks/useEventListener/useEventListener.js +2 -2
  151. package/dist/esm/hooks/useEventListener/useEventListener.js.map +1 -1
  152. package/dist/esm/hooks/useEyeDropper/useEyeDropper.js +2 -2
  153. package/dist/esm/hooks/useFavicon/useFavicon.js +2 -2
  154. package/dist/esm/hooks/useField/useField.js +2 -2
  155. package/dist/esm/hooks/useField/useField.js.map +1 -1
  156. package/dist/esm/hooks/useFileDialog/useFileDialog.js +2 -2
  157. package/dist/esm/hooks/useFileDialog/useFileDialog.js.map +1 -1
  158. package/dist/esm/hooks/useFps/useFps.js +2 -2
  159. package/dist/esm/hooks/useFullscreen/useFullscreen.js +2 -2
  160. package/dist/esm/hooks/useFullscreen/useFullscreen.js.map +1 -1
  161. package/dist/esm/hooks/useGeolocation/useGeolocation.js +2 -2
  162. package/dist/esm/hooks/useHash/useHash.js +2 -2
  163. package/dist/esm/hooks/useHotkeys/useHotkeys.js +2 -2
  164. package/dist/esm/hooks/useHover/useHover.js +2 -2
  165. package/dist/esm/hooks/useHover/useHover.js.map +1 -1
  166. package/dist/esm/hooks/useIdle/useIdle.js +2 -2
  167. package/dist/esm/hooks/useImage/useImage.js +2 -2
  168. package/dist/esm/hooks/useIntersectionObserver/useIntersectionObserver.js +2 -2
  169. package/dist/esm/hooks/useIntersectionObserver/useIntersectionObserver.js.map +1 -1
  170. package/dist/esm/hooks/useInterval/useInterval.js +2 -2
  171. package/dist/esm/hooks/useInterval/useInterval.js.map +1 -1
  172. package/dist/esm/hooks/useIsFirstRender/useIsFirstRender.js +1 -1
  173. package/dist/esm/hooks/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.js +1 -1
  174. package/dist/esm/hooks/useKeyPress/useKeyPress.js +2 -2
  175. package/dist/esm/hooks/useKeyPress/useKeyPress.js.map +1 -1
  176. package/dist/esm/hooks/useKeyPressEvent/useKeyPressEvent.js +2 -2
  177. package/dist/esm/hooks/useKeyPressEvent/useKeyPressEvent.js.map +1 -1
  178. package/dist/esm/hooks/useKeyboard/useKeyboard.js +2 -2
  179. package/dist/esm/hooks/useKeyboard/useKeyboard.js.map +1 -1
  180. package/dist/esm/hooks/useKeysPressed/useKeysPressed.js +2 -2
  181. package/dist/esm/hooks/useList/useList.js +2 -2
  182. package/dist/esm/hooks/useLocalStorage/useLocalStorage.js +2 -2
  183. package/dist/esm/hooks/useLogger/useLogger.js +2 -2
  184. package/dist/esm/hooks/useLongPress/useLongPress.js +2 -2
  185. package/dist/esm/hooks/useLongPress/useLongPress.js.map +1 -1
  186. package/dist/esm/hooks/useMap/useMap.js +2 -2
  187. package/dist/esm/hooks/useMeasure/useMeasure.js +2 -2
  188. package/dist/esm/hooks/useMeasure/useMeasure.js.map +1 -1
  189. package/dist/esm/hooks/useMediaQuery/useMediaQuery.js +1 -1
  190. package/dist/esm/hooks/useMemory/useMemory.js +2 -2
  191. package/dist/esm/hooks/useMemory/useMemory.js.map +1 -1
  192. package/dist/esm/hooks/useMount/useMount.js +1 -1
  193. package/dist/esm/hooks/useMouse/useMouse.js +2 -2
  194. package/dist/esm/hooks/useMouse/useMouse.js.map +1 -1
  195. package/dist/esm/hooks/useMutation/useMutation.js +2 -2
  196. package/dist/esm/hooks/useMutationObserver.js +1 -1
  197. package/dist/esm/hooks/useNetwork/useNetwork.js +2 -2
  198. package/dist/esm/hooks/useOnline/useOnline.js +1 -1
  199. package/dist/esm/hooks/useOperatingSystem/useOperatingSystem.js +1 -1
  200. package/dist/esm/hooks/useOrientation/useOrientation.js +2 -2
  201. package/dist/esm/hooks/usePageLeave/usePageLeave.js +2 -2
  202. package/dist/esm/hooks/usePageLeave/usePageLeave.js.map +1 -1
  203. package/dist/esm/hooks/usePaint/helpers/Paint.js +2 -2
  204. package/dist/esm/hooks/usePaint/helpers/Pointer.js +2 -2
  205. package/dist/esm/hooks/usePaint/usePaint.js +2 -2
  206. package/dist/esm/hooks/usePaint/usePaint.js.map +1 -1
  207. package/dist/esm/hooks/usePermission/usePermission.js +2 -2
  208. package/dist/esm/hooks/usePermission/usePermission.js.map +1 -1
  209. package/dist/esm/hooks/usePreferredColorScheme/usePreferredColorScheme.js +1 -1
  210. package/dist/esm/hooks/usePreferredLanguages/usePreferredLanguages.js +1 -1
  211. package/dist/esm/hooks/usePrevious/usePrevious.js +1 -1
  212. package/dist/esm/hooks/useQuery/useQuery.js +2 -2
  213. package/dist/esm/hooks/useQueue/useQueue.js +2 -2
  214. package/dist/esm/hooks/useRenderCount/useRenderCount.js +1 -1
  215. package/dist/esm/hooks/useRenderInfo/useRenderInfo.js +1 -1
  216. package/dist/esm/hooks/useRerender/useRerender.js +2 -2
  217. package/dist/esm/hooks/useResizeObserver/useResizeObserver.js +3 -0
  218. package/dist/esm/hooks/useResizeObserver/useResizeObserver.js.map +1 -0
  219. package/dist/esm/hooks/useScript/useScript.js +2 -2
  220. package/dist/esm/hooks/useSessionStorage/useSessionStorage.js +2 -2
  221. package/dist/esm/hooks/useSet/useSet.js +2 -2
  222. package/dist/esm/hooks/useShare/useShare.js +2 -2
  223. package/dist/esm/hooks/useStep/useStep.js +2 -2
  224. package/dist/esm/hooks/useStopwatch/useStopwatch.js +2 -2
  225. package/dist/esm/hooks/useStopwatch/useStopwatch.js.map +1 -1
  226. package/dist/esm/hooks/useStorage/useStorage.js +2 -2
  227. package/dist/esm/hooks/useTextSelection/useTextSelection.js +2 -2
  228. package/dist/esm/hooks/useTime/useTime.js +2 -2
  229. package/dist/esm/hooks/useTime/useTime.js.map +1 -1
  230. package/dist/esm/hooks/useTimeout/useTimeout.js +2 -2
  231. package/dist/esm/hooks/useTimeout/useTimeout.js.map +1 -1
  232. package/dist/esm/hooks/useToggle/useToggle.js +2 -2
  233. package/dist/esm/hooks/useUnmount/useUnmount.js +1 -1
  234. package/dist/esm/hooks/useUnmount/useUnmount.js.map +1 -1
  235. package/dist/esm/hooks/useWebSocket/useWebSocket.js +2 -2
  236. package/dist/esm/hooks/useWebSocket/useWebSocket.js.map +1 -1
  237. package/dist/esm/hooks/useWindowEvent/useWindowEvent.js +2 -2
  238. package/dist/esm/hooks/useWindowEvent/useWindowEvent.js.map +1 -1
  239. package/dist/esm/hooks/useWindowSize/useWindowSize.js +2 -2
  240. package/dist/esm/hooks/useWizard/useWizard.js +2 -2
  241. package/dist/esm/{index-D_PnqV6k.js → index-CbB5dZai.js} +2 -2
  242. package/dist/esm/{index-D_PnqV6k.js.map → index-CbB5dZai.js.map} +1 -1
  243. package/dist/esm/index.js +2 -2
  244. package/dist/esm/utils/helpers/debounce.js +1 -1
  245. package/dist/esm/utils/helpers/getRetry.js +1 -1
  246. package/dist/esm/utils/helpers/index.js +2 -2
  247. package/dist/esm/utils/helpers/isClient.js +1 -1
  248. package/dist/esm/utils/helpers/isPermissionAllowed.js +3 -0
  249. package/dist/esm/utils/helpers/isPermissionAllowed.js.map +1 -0
  250. package/dist/esm/utils/helpers/throttle.js +1 -1
  251. package/dist/esm/utils/helpers/time/getDate.js +1 -1
  252. package/dist/esm/utils/types/index.js +1 -1
  253. package/dist/index.d.ts +100 -30
  254. package/package.json +1 -1
  255. package/dist/cjs/_rollupPluginBabelHelpers-Bx9oEugz.js.map +0 -1
  256. package/dist/cjs/hooks/useCopyToClipboard/useCopyToClipboard.js +0 -3
  257. package/dist/cjs/hooks/useCopyToClipboard/useCopyToClipboard.js.map +0 -1
  258. package/dist/esm/_rollupPluginBabelHelpers-CePHKKZk.js.map +0 -1
  259. package/dist/esm/hooks/useCopyToClipboard/useCopyToClipboard.js +0 -3
  260. package/dist/esm/hooks/useCopyToClipboard/useCopyToClipboard.js.map +0 -1
@@ -1,3 +1,3 @@
1
- /* @license @siberiacancode/reactuse v0.0.44 */
2
- "use strict";var n=require("../../_rollupPluginBabelHelpers-Bx9oEugz.js"),e=require("react"),i=require("../../utils/helpers/isClient.js"),o=function(){var n,e,i;return(null===(n=navigator)||void 0===n?void 0:n.connection)||(null===(e=navigator)||void 0===e?void 0:e.mozConnection)||(null===(i=navigator)||void 0===i?void 0:i.webkitConnection)};exports.getConnection=o,exports.useNetwork=function(){var t=e.useState((function(){if(!i.isClient)return{online:!1,type:void 0,effectiveType:void 0,saveData:!1,downlink:0,downlinkMax:0,rtt:0};var n=navigator.onLine,e=o();return{online:n,downlink:null==e?void 0:e.downlink,downlinkMax:null==e?void 0:e.downlinkMax,effectiveType:null==e?void 0:e.effectiveType,rtt:null==e?void 0:e.rtt,saveData:null==e?void 0:e.saveData,type:null==e?void 0:e.type}})),l=n._slicedToArray(t,2),v=l[0],r=l[1];return e.useEffect((function(){var n=function(){var n=navigator.onLine,e=o();r({online:n,downlink:null==e?void 0:e.downlink,downlinkMax:null==e?void 0:e.downlinkMax,effectiveType:null==e?void 0:e.effectiveType,rtt:null==e?void 0:e.rtt,saveData:null==e?void 0:e.saveData,type:null==e?void 0:e.type})};window.addEventListener("online",n,{passive:!0}),window.addEventListener("offline",n,{passive:!0});var e=o();return e&&e.addEventListener("change",n,{passive:!0}),function(){window.removeEventListener("online",n),window.removeEventListener("offline",n),e&&e.removeEventListener("change",n)}})),v};
1
+ /* @license @siberiacancode/reactuse v0.0.46 */
2
+ "use strict";var n=require("../../_rollupPluginBabelHelpers-CFMEkg0G.js"),e=require("react"),i=require("../../utils/helpers/isClient.js"),o=function(){var n,e,i;return(null===(n=navigator)||void 0===n?void 0:n.connection)||(null===(e=navigator)||void 0===e?void 0:e.mozConnection)||(null===(i=navigator)||void 0===i?void 0:i.webkitConnection)};exports.getConnection=o,exports.useNetwork=function(){var t=e.useState((function(){if(!i.isClient)return{online:!1,type:void 0,effectiveType:void 0,saveData:!1,downlink:0,downlinkMax:0,rtt:0};var n=navigator.onLine,e=o();return{online:n,downlink:null==e?void 0:e.downlink,downlinkMax:null==e?void 0:e.downlinkMax,effectiveType:null==e?void 0:e.effectiveType,rtt:null==e?void 0:e.rtt,saveData:null==e?void 0:e.saveData,type:null==e?void 0:e.type}})),l=n._slicedToArray(t,2),v=l[0],r=l[1];return e.useEffect((function(){var n=function(){var n=navigator.onLine,e=o();r({online:n,downlink:null==e?void 0:e.downlink,downlinkMax:null==e?void 0:e.downlinkMax,effectiveType:null==e?void 0:e.effectiveType,rtt:null==e?void 0:e.rtt,saveData:null==e?void 0:e.saveData,type:null==e?void 0:e.type})};window.addEventListener("online",n,{passive:!0}),window.addEventListener("offline",n,{passive:!0});var e=o();return e&&e.addEventListener("change",n,{passive:!0}),function(){window.removeEventListener("online",n),window.removeEventListener("offline",n),e&&e.removeEventListener("change",n)}})),v};
3
3
  //# sourceMappingURL=useNetwork.js.map
@@ -1,3 +1,3 @@
1
- /* @license @siberiacancode/reactuse v0.0.44 */
1
+ /* @license @siberiacancode/reactuse v0.0.46 */
2
2
  "use strict";var n=require("react"),e=function(){return navigator.onLine},t=function(){return!1},r=function(n){return window.addEventListener("online",n),window.addEventListener("offline",n),function(){window.removeEventListener("online",n),window.removeEventListener("offline",n)}};exports.useOnline=function(){return n.useSyncExternalStore(r,e,t)};
3
3
  //# sourceMappingURL=useOnline.js.map
@@ -1,3 +1,3 @@
1
- /* @license @siberiacancode/reactuse v0.0.44 */
1
+ /* @license @siberiacancode/reactuse v0.0.46 */
2
2
  "use strict";var e=require("react"),t=function(){if("undefined"==typeof window)return"undetermined";var e=window.navigator.userAgent;return/(Macintosh)|(MacIntel)|(MacPPC)|(Mac68K)/i.test(e)?"macos":/(iPhone)|(iPad)|(iPod)/i.test(e)?"ios":/(Win32)|(Win64)|(Windows)|(WinCE)/i.test(e)?"windows":/Android/i.test(e)?"android":/Linux/i.test(e)?"linux":"undetermined"};exports.getOperatingSystem=t,exports.useOperatingSystem=function(){return e.useRef(t()).current};
3
3
  //# sourceMappingURL=useOperatingSystem.js.map
@@ -1,3 +1,3 @@
1
- /* @license @siberiacancode/reactuse v0.0.44 */
2
- "use strict";var e=require("../../_rollupPluginBabelHelpers-Bx9oEugz.js"),r=require("react"),n=require("../useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.js");require("../../utils/helpers/isClient.js");exports.useOrientation=function(){var t=r.useState({angle:0,type:"landscape-primary"}),i=e._slicedToArray(t,2),o=i[0],a=i[1];return n.useIsomorphicLayoutEffect((function(){var e,r=function(){var e=window.screen.orientation,r=e.angle,n=e.type;a({angle:r,type:n})};return null===(e=window.screen.orientation)||void 0===e||e.addEventListener("change",r),function(){var e;return null===(e=window.screen.orientation)||void 0===e?void 0:e.removeEventListener("change",r)}}),[]),o};
1
+ /* @license @siberiacancode/reactuse v0.0.46 */
2
+ "use strict";var e=require("../../_rollupPluginBabelHelpers-CFMEkg0G.js"),r=require("react"),n=require("../useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.js");require("../../utils/helpers/isClient.js");exports.useOrientation=function(){var t=r.useState({angle:0,type:"landscape-primary"}),i=e._slicedToArray(t,2),o=i[0],a=i[1];return n.useIsomorphicLayoutEffect((function(){var e,r=function(){var e=window.screen.orientation,r=e.angle,n=e.type;a({angle:r,type:n})};return null===(e=window.screen.orientation)||void 0===e||e.addEventListener("change",r),function(){var e;return null===(e=window.screen.orientation)||void 0===e?void 0:e.removeEventListener("change",r)}}),[]),o};
3
3
  //# sourceMappingURL=useOrientation.js.map
@@ -1,3 +1,3 @@
1
- /* @license @siberiacancode/reactuse v0.0.44 */
2
- "use strict";var e=require("../../_rollupPluginBabelHelpers-Bx9oEugz.js"),t=require("react"),r=require("../useEvent/useEvent.js");require("../useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.js"),require("../../utils/helpers/isClient.js");exports.usePageLeave=function(u){var s=t.useState(!1),n=e._slicedToArray(s,2),i=n[0],o=n[1],a=r.useEvent((function(){if(i)return o(!1);null==u||u(),o(!0)}));return t.useEffect((function(){return document.addEventListener("mouseleave",a,{passive:!0}),document.addEventListener("mouseenter",a,{passive:!0}),function(){document.removeEventListener("mouseenter",a),document.removeEventListener("mouseleave",a)}}),[]),i};
1
+ /* @license @siberiacancode/reactuse v0.0.46 */
2
+ "use strict";var e=require("../../_rollupPluginBabelHelpers-CFMEkg0G.js"),t=require("react"),n=require("../useEvent/useEvent.js");exports.usePageLeave=function(r){var u=t.useState(!1),s=e._slicedToArray(u,2),i=s[0],o=s[1],v=n.useEvent((function(){if(i)return o(!1);null==r||r(),o(!0)}));return t.useEffect((function(){return document.addEventListener("mouseleave",v,{passive:!0}),document.addEventListener("mouseenter",v,{passive:!0}),function(){document.removeEventListener("mouseenter",v),document.removeEventListener("mouseleave",v)}}),[]),i};
3
3
  //# sourceMappingURL=usePageLeave.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"usePageLeave.js","sources":["../../../../src/hooks/usePageLeave/usePageLeave.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\n\nimport { useEvent } from '../useEvent/useEvent';\n\n/**\n * @name usePageLeave\n * @description - Hook what calls given function when mouse leaves the page\n * @category Sensors\n *\n * @param {() => void} [callback] The callback function what calls then mouse leaves the page\n * @returns {boolean} A boolean which determines if the mouse left the page\n *\n * @example\n * const isLeft = usePageLeave(() => console.log('on leave'))\n */\nexport const usePageLeave = (callback?: () => void) => {\n const [isLeft, setIsLeft] = useState(false);\n\n const onMouse = useEvent(() => {\n if (isLeft) return setIsLeft(false);\n callback?.();\n setIsLeft(true);\n });\n\n useEffect(() => {\n document.addEventListener('mouseleave', onMouse, { passive: true });\n document.addEventListener('mouseenter', onMouse, { passive: true });\n\n return () => {\n document.removeEventListener('mouseenter', onMouse);\n document.removeEventListener('mouseleave', onMouse);\n };\n }, []);\n\n return isLeft;\n};\n"],"names":["callback","_useState","useState","_useState2","_slicedToArray","isLeft","setIsLeft","onMouse","useEvent","useEffect","document","addEventListener","passive","removeEventListener"],"mappings":";uQAe4B,SAACA,GAC3B,IAAAC,EAA4BC,EAAQA,UAAC,GAAMC,EAAAC,EAAAA,eAAAH,EAAA,GAApCI,EAAMF,EAAA,GAAEG,EAASH,EAAA,GAElBI,EAAUC,EAAAA,UAAS,WACvB,GAAIH,EAAQ,OAAOC,GAAU,GAC7BN,SAAAA,IACAM,GAAU,EACZ,IAYA,OAVAG,EAAAA,WAAU,WAIR,OAHAC,SAASC,iBAAiB,aAAcJ,EAAS,CAAEK,SAAS,IAC5DF,SAASC,iBAAiB,aAAcJ,EAAS,CAAEK,SAAS,IAErD,WACLF,SAASG,oBAAoB,aAAcN,GAC3CG,SAASG,oBAAoB,aAAcN,GAE9C,GAAE,IAEIF,CACT"}
1
+ {"version":3,"file":"usePageLeave.js","sources":["../../../../src/hooks/usePageLeave/usePageLeave.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\n\nimport { useEvent } from '../useEvent/useEvent';\n\n/**\n * @name usePageLeave\n * @description - Hook what calls given function when mouse leaves the page\n * @category Sensors\n *\n * @param {() => void} [callback] The callback function what calls then mouse leaves the page\n * @returns {boolean} A boolean which determines if the mouse left the page\n *\n * @example\n * const isLeft = usePageLeave(() => console.log('on leave'))\n */\nexport const usePageLeave = (callback?: () => void) => {\n const [isLeft, setIsLeft] = useState(false);\n\n const onMouse = useEvent(() => {\n if (isLeft) return setIsLeft(false);\n callback?.();\n setIsLeft(true);\n });\n\n useEffect(() => {\n document.addEventListener('mouseleave', onMouse, { passive: true });\n document.addEventListener('mouseenter', onMouse, { passive: true });\n\n return () => {\n document.removeEventListener('mouseenter', onMouse);\n document.removeEventListener('mouseleave', onMouse);\n };\n }, []);\n\n return isLeft;\n};\n"],"names":["callback","_useState","useState","_useState2","_slicedToArray","isLeft","setIsLeft","onMouse","useEvent","useEffect","document","addEventListener","passive","removeEventListener"],"mappings":";uJAe4B,SAACA,GAC3B,IAAAC,EAA4BC,EAAQA,UAAC,GAAMC,EAAAC,EAAAA,eAAAH,EAAA,GAApCI,EAAMF,EAAA,GAAEG,EAASH,EAAA,GAElBI,EAAUC,EAAAA,UAAS,WACvB,GAAIH,EAAQ,OAAOC,GAAU,GAC7BN,SAAAA,IACAM,GAAU,EACZ,IAYA,OAVAG,EAAAA,WAAU,WAIR,OAHAC,SAASC,iBAAiB,aAAcJ,EAAS,CAAEK,SAAS,IAC5DF,SAASC,iBAAiB,aAAcJ,EAAS,CAAEK,SAAS,IAErD,WACLF,SAASG,oBAAoB,aAAcN,GAC3CG,SAASG,oBAAoB,aAAcN,GAE9C,GAAE,IAEIF,CACT"}
@@ -1,3 +1,3 @@
1
- /* @license @siberiacancode/reactuse v0.0.44 */
2
- "use strict";var t=require("../../../_rollupPluginBabelHelpers-Bx9oEugz.js"),s=require("./Pointer.js"),i=function(){return t._createClass((function i(e){var r=e.x,h=e.y,n=e.radius,o=e.smooth;t._classCallCheck(this,i),t._defineProperty(this,"smooth",!1),t._defineProperty(this,"points",[]),t._defineProperty(this,"lines",[]),this.smooth=o,this.pointer=new s.Pointer(r,h),this.brush=new s.Pointer(r,h),this.radius=n,this.points=[],this.lines=[]}),[{key:"getBrushCoordinates",value:function(){return{x:this.brush.x,y:this.brush.y}}},{key:"getPointerCoordinates",value:function(){return{x:this.pointer.x,y:this.pointer.y}}},{key:"update",value:function(t){if(this.pointer.equalsTo(t))return!1;if(this.pointer.update(t),!this.smooth)return this.brush.update(t),this.points.push(this.getBrushCoordinates()),!0;var s=this.pointer.getDistanceTo(this.brush),i=this.pointer.getAngleTo(this.brush);if(Math.round(10*(s-this.radius))/10>0){var e=i+Math.PI/2;return this.brush.update({x:this.brush.x+Math.sin(e)*(s-this.radius),y:this.brush.y-Math.cos(e)*(s-this.radius)}),this.points.push(this.getBrushCoordinates()),!0}return!1}}])}();exports.Paint=i;
1
+ /* @license @siberiacancode/reactuse v0.0.46 */
2
+ "use strict";var t=require("../../../_rollupPluginBabelHelpers-CFMEkg0G.js"),s=require("./Pointer.js"),i=function(){return t._createClass((function i(e){var r=e.x,h=e.y,n=e.radius,o=e.smooth;t._classCallCheck(this,i),t._defineProperty(this,"smooth",!1),t._defineProperty(this,"points",[]),t._defineProperty(this,"lines",[]),this.smooth=o,this.pointer=new s.Pointer(r,h),this.brush=new s.Pointer(r,h),this.radius=n,this.points=[],this.lines=[]}),[{key:"getBrushCoordinates",value:function(){return{x:this.brush.x,y:this.brush.y}}},{key:"getPointerCoordinates",value:function(){return{x:this.pointer.x,y:this.pointer.y}}},{key:"update",value:function(t){if(this.pointer.equalsTo(t))return!1;if(this.pointer.update(t),!this.smooth)return this.brush.update(t),this.points.push(this.getBrushCoordinates()),!0;var s=this.pointer.getDistanceTo(this.brush),i=this.pointer.getAngleTo(this.brush);if(Math.round(10*(s-this.radius))/10>0){var e=i+Math.PI/2;return this.brush.update({x:this.brush.x+Math.sin(e)*(s-this.radius),y:this.brush.y-Math.cos(e)*(s-this.radius)}),this.points.push(this.getBrushCoordinates()),!0}return!1}}])}();exports.Paint=i;
3
3
  //# sourceMappingURL=Paint.js.map
@@ -1,3 +1,3 @@
1
- /* @license @siberiacancode/reactuse v0.0.44 */
2
- "use strict";var e=require("../../../_rollupPluginBabelHelpers-Bx9oEugz.js"),t=function(){function t(n,i){e._classCallCheck(this,t),this.x=n,this.y=i}return e._createClass(t,[{key:"update",value:function(e){this.x=e.x,this.y=e.y}},{key:"getDifferenceTo",value:function(e){return new t(this.x-e.x,this.y-e.y)}},{key:"getDistanceTo",value:function(e){var t=this.getDifferenceTo(e);return Math.sqrt(Math.pow(t.x,2)+Math.pow(t.y,2))}},{key:"getAngleTo",value:function(e){var t=this.getDifferenceTo(e);return Math.atan2(t.y,t.x)}},{key:"equalsTo",value:function(e){return this.x===e.x&&this.y===e.y}},{key:"moveByAngle",value:function(e,t){var n=e+Math.PI/2;return this.x+=Math.sin(n)*t,this.y-=Math.cos(n)*t,this}}])}();exports.Pointer=t;
1
+ /* @license @siberiacancode/reactuse v0.0.46 */
2
+ "use strict";var e=require("../../../_rollupPluginBabelHelpers-CFMEkg0G.js"),t=function(){function t(n,i){e._classCallCheck(this,t),this.x=n,this.y=i}return e._createClass(t,[{key:"update",value:function(e){this.x=e.x,this.y=e.y}},{key:"getDifferenceTo",value:function(e){return new t(this.x-e.x,this.y-e.y)}},{key:"getDistanceTo",value:function(e){var t=this.getDifferenceTo(e);return Math.sqrt(Math.pow(t.x,2)+Math.pow(t.y,2))}},{key:"getAngleTo",value:function(e){var t=this.getDifferenceTo(e);return Math.atan2(t.y,t.x)}},{key:"equalsTo",value:function(e){return this.x===e.x&&this.y===e.y}},{key:"moveByAngle",value:function(e,t){var n=e+Math.PI/2;return this.x+=Math.sin(n)*t,this.y-=Math.cos(n)*t,this}}])}();exports.Pointer=t;
3
3
  //# sourceMappingURL=Pointer.js.map
@@ -1,3 +1,3 @@
1
- /* @license @siberiacancode/reactuse v0.0.44 */
2
- "use strict";var e=require("../../_rollupPluginBabelHelpers-Bx9oEugz.js"),r=require("react"),n=require("../useEvent/useEvent.js"),t=require("./helpers/Paint.js");require("../useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.js"),require("../../utils/helpers/isClient.js"),require("./helpers/Pointer.js");var u=function(e){return"function"==typeof e?e():e instanceof Element?e:e.current};exports.getTargetElement=u,exports.usePaint=function(){var i,o,c,l,s,a="object"!==e._typeof(arguments.length<=0?void 0:arguments[0])||"current"in(arguments.length<=0?void 0:arguments[0])?arguments.length<=0?void 0:arguments[0]:void 0,v=a?arguments.length<=1?void 0:arguments[1]:arguments.length<=0?void 0:arguments[0],d=null!==(i=null==v?void 0:v.color)&&void 0!==i?i:"black",f=null!==(o=null==v?void 0:v.opacity)&&void 0!==o?o:1,p=null!==(c=null==v?void 0:v.radius)&&void 0!==c?c:10,h=r.useRef(new t.Paint({x:0,y:0,radius:null!==(l=null==v?void 0:v.radius)&&void 0!==l?l:10,smooth:null!==(s=null==v?void 0:v.smooth)&&void 0!==s&&s})),y=r.useState(!1),E=e._slicedToArray(y,2),g=E[0],m=E[1],x=r.useRef(null),L=r.useRef(null),w=function(e,r,n,t){if(L.current){L.current.globalAlpha=n,L.current.strokeStyle=r,L.current.lineWidth=2*t,L.current.lineCap="round",L.current.lineJoin="round";var u=e[0],i=e[1];L.current.beginPath();for(var o=1;o<e.length;o+=1){var c={x:u.x+(i.x-u.x)/2,y:u.y+(i.y-u.y)/2};L.current.quadraticCurveTo(u.x,u.y,c.x,c.y),u=e[o],i=e[o+1]}L.current.lineTo(u.x,u.y),L.current.stroke()}},q=function(){L.current&&L.current.clearRect(0,0,L.current.canvas.width,L.current.canvas.height)},j=n.useEvent((function(e){var r;if(g){null==v||null===(r=v.onMouseMove)||void 0===r||r.call(v,e,h.current);var n={x:e.offsetX,y:e.offsetY};h.current.update(n)&&L.current&&(q(),L.current.clearRect(0,0,L.current.canvas.width,L.current.canvas.height),h.current.lines.forEach((function(e){var r=e.points,n=e.color,t=e.opacity,u=e.radius;return w(r,n,t,u)})),w(h.current.points,d,f,p))}})),b=n.useEvent((function(e){var r;if(L.current){var n={x:e.offsetX,y:e.offsetY};h.current.brush.update(n),h.current.points.push(n),w(h.current.points,d,f,p),null==v||null===(r=v.onMouseDown)||void 0===r||r.call(v,e,h.current),m(!0)}})),P=n.useEvent((function(e){var r;L.current&&(h.current.points.length&&(h.current.lines.push({points:h.current.points,color:d,opacity:f,radius:p}),h.current.points=[]),null==v||null===(r=v.onMouseUp)||void 0===r||r.call(v,e,h.current),m(!1))})),R=function(){L.current&&(q(),h.current.lines=[],h.current.points=[])},C=function(){L.current&&(q(),h.current.lines.pop(),h.current.lines.forEach((function(e){var r=e.points,n=e.color,t=e.opacity,u=e.radius;return w(r,n,t,u)})))};return r.useEffect((function(){var e=a?u(a):x.current;if(e)return L.current=e.getContext("2d"),null!=v&&v.initialLines&&(h.current.lines=v.initialLines,v.initialLines.forEach((function(e){var r=e.points,n=e.color,t=e.opacity,u=e.radius;return w(r,n,t,u)}))),e.addEventListener("mousedown",b),e.addEventListener("mousemove",j),e.addEventListener("mouseup",P),function(){e&&(e.removeEventListener("mousedown",b),e.removeEventListener("mousemove",j),e.removeEventListener("mouseup",P))}}),[]),a?{drawing:g,clear:R,undo:C,draw:w,lines:h.current.lines}:{ref:x,drawing:g,clear:R,undo:C,draw:w,lines:h.current.lines}};
1
+ /* @license @siberiacancode/reactuse v0.0.46 */
2
+ "use strict";var e=require("../../_rollupPluginBabelHelpers-CFMEkg0G.js"),n=require("react"),r=require("../useEvent/useEvent.js"),t=require("./helpers/Paint.js");require("./helpers/Pointer.js");var u=function(e){return"function"==typeof e?e():e instanceof Element?e:e.current};exports.getElement=u,exports.usePaint=function(){var i,o,c,l,s,a="object"!==e._typeof(arguments.length<=0?void 0:arguments[0])||"current"in(arguments.length<=0?void 0:arguments[0])?arguments.length<=0?void 0:arguments[0]:void 0,v=a?arguments.length<=1?void 0:arguments[1]:arguments.length<=0?void 0:arguments[0],d=null!==(i=null==v?void 0:v.color)&&void 0!==i?i:"black",f=null!==(o=null==v?void 0:v.opacity)&&void 0!==o?o:1,p=null!==(c=null==v?void 0:v.radius)&&void 0!==c?c:10,h=n.useRef(new t.Paint({x:0,y:0,radius:null!==(l=null==v?void 0:v.radius)&&void 0!==l?l:10,smooth:null!==(s=null==v?void 0:v.smooth)&&void 0!==s&&s})),y=n.useState(!1),E=e._slicedToArray(y,2),g=E[0],m=E[1],x=n.useRef(null),w=n.useRef(null),L=function(e,n,r,t){if(w.current){w.current.globalAlpha=r,w.current.strokeStyle=n,w.current.lineWidth=2*t,w.current.lineCap="round",w.current.lineJoin="round";var u=e[0],i=e[1];w.current.beginPath();for(var o=1;o<e.length;o+=1){var c={x:u.x+(i.x-u.x)/2,y:u.y+(i.y-u.y)/2};w.current.quadraticCurveTo(u.x,u.y,c.x,c.y),u=e[o],i=e[o+1]}w.current.lineTo(u.x,u.y),w.current.stroke()}},b=function(){w.current&&w.current.clearRect(0,0,w.current.canvas.width,w.current.canvas.height)},q=r.useEvent((function(e){var n;if(g){null==v||null===(n=v.onMouseMove)||void 0===n||n.call(v,e,h.current);var r={x:e.offsetX,y:e.offsetY};h.current.update(r)&&w.current&&(b(),w.current.clearRect(0,0,w.current.canvas.width,w.current.canvas.height),h.current.lines.forEach((function(e){var n=e.points,r=e.color,t=e.opacity,u=e.radius;return L(n,r,t,u)})),L(h.current.points,d,f,p))}})),P=r.useEvent((function(e){var n;if(w.current){var r={x:e.offsetX,y:e.offsetY};h.current.brush.update(r),h.current.points.push(r),L(h.current.points,d,f,p),null==v||null===(n=v.onMouseDown)||void 0===n||n.call(v,e,h.current),m(!0)}})),j=r.useEvent((function(e){var n;w.current&&(h.current.points.length&&(h.current.lines.push({points:h.current.points,color:d,opacity:f,radius:p}),h.current.points=[]),null==v||null===(n=v.onMouseUp)||void 0===n||n.call(v,e,h.current),m(!1))})),R=function(){w.current&&(b(),h.current.lines=[],h.current.points=[])},M=function(){w.current&&(b(),h.current.lines.pop(),h.current.lines.forEach((function(e){var n=e.points,r=e.color,t=e.opacity,u=e.radius;return L(n,r,t,u)})))};return n.useEffect((function(){var e=a?u(a):x.current;if(e)return w.current=e.getContext("2d"),null!=v&&v.initialLines&&(h.current.lines=v.initialLines,v.initialLines.forEach((function(e){var n=e.points,r=e.color,t=e.opacity,u=e.radius;return L(n,r,t,u)}))),e.addEventListener("mousedown",P),e.addEventListener("mousemove",q),e.addEventListener("mouseup",j),function(){e&&(e.removeEventListener("mousedown",P),e.removeEventListener("mousemove",q),e.removeEventListener("mouseup",j))}}),[]),a?{drawing:g,clear:R,undo:M,draw:L,lines:h.current.lines}:{ref:x,drawing:g,clear:R,undo:M,draw:L,lines:h.current.lines}};
3
3
  //# sourceMappingURL=usePaint.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"usePaint.js","sources":["../../../../src/hooks/usePaint/usePaint.ts"],"sourcesContent":["import type { RefObject } from 'react';\nimport { useEffect, useRef, useState } from 'react';\n\nimport { useEvent } from '../useEvent/useEvent';\n\nimport { Paint } from './helpers/Paint';\nimport type { Point } from './helpers/Pointer';\n\nconst DEFAULT_BRUSH_RADIUS = 10;\n\nexport interface UsePaintOptions {\n /** Brush color */\n color?: string;\n /** Brush radius */\n radius?: number;\n /** Smooth brush movement */\n smooth?: boolean;\n /** Brush opacity */\n opacity?: number;\n /** Initial lines */\n initialLines?: Paint['lines'];\n /** Callback when the mouse is down */\n onMouseDown?: (event: MouseEvent, paint: Paint) => void;\n /** Callback when the mouse is moved */\n onMouseMove?: (event: MouseEvent, paint: Paint) => void;\n /** Callback when the mouse is up */\n onMouseUp?: (event: MouseEvent, paint: Paint) => void;\n}\n\nexport interface UsePaintReturn {\n drawing: boolean;\n clear: () => void;\n undo: () => void;\n draw: (points: Point[], color: string, opacity: number, radius: number) => void;\n lines: Paint['lines'];\n}\n\n/** The use paint return type */\nexport type UsePaintTarget =\n | RefObject<HTMLCanvasElement>\n | (() => HTMLCanvasElement)\n | HTMLCanvasElement;\n\nexport const getTargetElement = (target: UsePaintTarget) => {\n if (typeof target === 'function') {\n return target();\n }\n\n if (target instanceof Element) {\n return target;\n }\n\n return target.current;\n};\n\nexport type UsePaint = {\n <Target extends UsePaintTarget>(target: Target, options?: UsePaintOptions): UsePaintReturn;\n\n (\n options?: UsePaintOptions,\n target?: never\n ): { ref: RefObject<HTMLCanvasElement> } & UsePaintReturn;\n};\n\n/**\n * @name usePaint\n * @description - Hook that allows you to draw in a specific area\n * @category Browser\n *\n * @overload\n * @template Target The target element\n * @param {Target} target The target element to be painted\n * @param {UsePaintOptions} [options] The options to be used\n * @returns {UsePaintReturn} An object containing the current pencil options and functions to interact with the paint\n *\n * @example\n * const drawing = usePaint(canvasRef);\n *\n * @overload\n * @param {UsePaintOptions} [options] The options to be used\n * @returns {UsePaintReturn & { ref: RefObject<HTMLCanvasElement> }} An object containing the current pencil options and functions to interact with the paint\n *\n * @example\n * const { ref, drawing } = usePaint();\n */\n\nexport const usePaint = ((...params: any[]) => {\n const target = (\n typeof params[0] === 'object' && !('current' in params[0]) ? undefined : params[0]\n ) as UsePaintTarget | undefined;\n const options = (target ? params[1] : params[0]) as UsePaintOptions | undefined;\n\n const color = options?.color ?? 'black';\n const opacity = options?.opacity ?? 1;\n const radius = options?.radius ?? DEFAULT_BRUSH_RADIUS;\n\n const paintRef = useRef<Paint>(\n new Paint({\n x: 0,\n y: 0,\n radius: options?.radius ?? DEFAULT_BRUSH_RADIUS,\n smooth: options?.smooth ?? false\n })\n );\n const [drawing, setIsDrawing] = useState(false);\n const internalRef = useRef<HTMLCanvasElement>(null);\n const contextRef = useRef<CanvasRenderingContext2D | null>(null);\n\n const draw = (points: Point[], color: string, opacity: number, radius: number) => {\n if (!contextRef.current) return;\n\n contextRef.current.globalAlpha = opacity;\n contextRef.current.strokeStyle = color;\n contextRef.current.lineWidth = radius * 2;\n contextRef.current.lineCap = 'round';\n contextRef.current.lineJoin = 'round';\n\n let p1 = points[0];\n let p2 = points[1];\n\n contextRef.current.beginPath();\n\n for (let i = 1; i < points.length; i += 1) {\n const midPoint = {\n x: p1.x + (p2.x - p1.x) / 2,\n y: p1.y + (p2.y - p1.y) / 2\n };\n contextRef.current.quadraticCurveTo(p1.x, p1.y, midPoint.x, midPoint.y);\n p1 = points[i];\n p2 = points[i + 1];\n }\n contextRef.current.lineTo(p1.x, p1.y);\n contextRef.current.stroke();\n };\n\n const clearCanvas = () => {\n if (!contextRef.current) return;\n contextRef.current.clearRect(\n 0,\n 0,\n contextRef.current.canvas.width,\n contextRef.current.canvas.height\n );\n };\n\n const onMouseMove = useEvent((event: MouseEvent) => {\n if (!drawing) return;\n options?.onMouseMove?.(event, paintRef.current);\n\n const point = { x: event.offsetX, y: event.offsetY };\n\n const isUpdated = paintRef.current.update(point);\n\n if (!isUpdated) return;\n if (!contextRef.current) return;\n clearCanvas();\n contextRef.current.clearRect(\n 0,\n 0,\n contextRef.current.canvas.width,\n contextRef.current.canvas.height\n );\n\n // const brush = paintRef.current.getBrushCoordinates();\n // // Draw brush point\n // contextRef.current.beginPath();\n // contextRef.current.fillStyle = 'red';\n // contextRef.current.arc(brush.x, brush.y, radius, 0, Math.PI * 2, true);\n // contextRef.current.fill();\n\n // // Draw the lazy radius.\n // contextRef.current.beginPath();\n // contextRef.current.strokeStyle = '#ccc';\n // contextRef.current.arc(brush.x, brush.y, radius * 2, 0, Math.PI * 2, true);\n // contextRef.current.stroke();\n\n paintRef.current.lines.forEach(({ points, color, opacity, radius }) =>\n draw(points, color, opacity, radius)\n );\n draw(paintRef.current.points, color, opacity, radius);\n });\n\n const onMouseDown = useEvent((event: MouseEvent) => {\n if (!contextRef.current) return;\n\n const point = { x: event.offsetX, y: event.offsetY };\n paintRef.current.brush.update(point);\n paintRef.current.points.push(point);\n draw(paintRef.current.points, color, opacity, radius);\n\n options?.onMouseDown?.(event, paintRef.current);\n setIsDrawing(true);\n });\n\n const onMouseUp = useEvent((event: MouseEvent) => {\n if (!contextRef.current) return;\n\n if (paintRef.current.points.length) {\n paintRef.current.lines.push({ points: paintRef.current.points, color, opacity, radius });\n paintRef.current.points = [];\n }\n\n options?.onMouseUp?.(event, paintRef.current);\n setIsDrawing(false);\n });\n\n const clear = () => {\n if (!contextRef.current) return;\n clearCanvas();\n paintRef.current.lines = [];\n paintRef.current.points = [];\n };\n\n const undo = () => {\n if (!contextRef.current) return;\n clearCanvas();\n\n paintRef.current.lines.pop();\n paintRef.current.lines.forEach(({ points, color, opacity, radius }) =>\n draw(points, color, opacity, radius)\n );\n };\n\n useEffect(() => {\n const element = target ? getTargetElement(target) : internalRef.current;\n if (!element) return;\n contextRef.current = element.getContext('2d');\n\n if (options?.initialLines) {\n paintRef.current.lines = options.initialLines;\n options.initialLines.forEach(({ points, color, opacity, radius }) =>\n draw(points, color, opacity, radius)\n );\n }\n\n element.addEventListener('mousedown', onMouseDown);\n element.addEventListener('mousemove', onMouseMove);\n element.addEventListener('mouseup', onMouseUp);\n\n return () => {\n if (!element) return;\n element.removeEventListener('mousedown', onMouseDown);\n element.removeEventListener('mousemove', onMouseMove);\n element.removeEventListener('mouseup', onMouseUp);\n };\n }, []);\n\n if (target) return { drawing, clear, undo, draw, lines: paintRef.current.lines };\n return { ref: internalRef, drawing, clear, undo, draw, lines: paintRef.current.lines };\n}) as UsePaint;\n"],"names":["getTargetElement","target","Element","current","_options$color","_options$opacity","_options$radius","_options$radius2","_options$smooth","_typeof","arguments","length","undefined","options","color","opacity","radius","paintRef","useRef","Paint","x","y","smooth","_useState","useState","_useState2","_slicedToArray","drawing","setIsDrawing","internalRef","contextRef","draw","points","globalAlpha","strokeStyle","lineWidth","lineCap","lineJoin","p1","p2","beginPath","i","midPoint","quadraticCurveTo","lineTo","stroke","clearCanvas","clearRect","canvas","width","height","onMouseMove","useEvent","event","_options$onMouseMove","call","point","offsetX","offsetY","update","lines","forEach","_ref","onMouseDown","_options$onMouseDown","brush","push","onMouseUp","_options$onMouseUp","clear","undo","pop","_ref2","useEffect","element","getContext","initialLines","_ref3","addEventListener","removeEventListener","ref"],"mappings":"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"}
1
+ {"version":3,"file":"usePaint.js","sources":["../../../../src/hooks/usePaint/usePaint.ts"],"sourcesContent":["import type { RefObject } from 'react';\nimport { useEffect, useRef, useState } from 'react';\n\nimport { useEvent } from '../useEvent/useEvent';\n\nimport { Paint } from './helpers/Paint';\nimport type { Point } from './helpers/Pointer';\n\nconst DEFAULT_BRUSH_RADIUS = 10;\n\nexport interface UsePaintOptions {\n /** Brush color */\n color?: string;\n /** Brush radius */\n radius?: number;\n /** Smooth brush movement */\n smooth?: boolean;\n /** Brush opacity */\n opacity?: number;\n /** Initial lines */\n initialLines?: Paint['lines'];\n /** Callback when the mouse is down */\n onMouseDown?: (event: MouseEvent, paint: Paint) => void;\n /** Callback when the mouse is moved */\n onMouseMove?: (event: MouseEvent, paint: Paint) => void;\n /** Callback when the mouse is up */\n onMouseUp?: (event: MouseEvent, paint: Paint) => void;\n}\n\nexport interface UsePaintReturn {\n drawing: boolean;\n clear: () => void;\n undo: () => void;\n draw: (points: Point[], color: string, opacity: number, radius: number) => void;\n lines: Paint['lines'];\n}\n\n/** The use paint return type */\nexport type UsePaintTarget =\n | RefObject<HTMLCanvasElement>\n | (() => HTMLCanvasElement)\n | HTMLCanvasElement;\n\nexport const getElement = (target: UsePaintTarget) => {\n if (typeof target === 'function') {\n return target();\n }\n\n if (target instanceof Element) {\n return target;\n }\n\n return target.current;\n};\n\nexport type UsePaint = {\n <Target extends UsePaintTarget>(target: Target, options?: UsePaintOptions): UsePaintReturn;\n\n (\n options?: UsePaintOptions,\n target?: never\n ): { ref: RefObject<HTMLCanvasElement> } & UsePaintReturn;\n};\n\n/**\n * @name usePaint\n * @description - Hook that allows you to draw in a specific area\n * @category Browser\n *\n * @overload\n * @template Target The target element\n * @param {Target} target The target element to be painted\n * @param {UsePaintOptions} [options] The options to be used\n * @returns {UsePaintReturn} An object containing the current pencil options and functions to interact with the paint\n *\n * @example\n * const drawing = usePaint(canvasRef);\n *\n * @overload\n * @param {UsePaintOptions} [options] The options to be used\n * @returns {UsePaintReturn & { ref: RefObject<HTMLCanvasElement> }} An object containing the current pencil options and functions to interact with the paint\n *\n * @example\n * const { ref, drawing } = usePaint();\n */\n\nexport const usePaint = ((...params: any[]) => {\n const target = (\n typeof params[0] === 'object' && !('current' in params[0]) ? undefined : params[0]\n ) as UsePaintTarget | undefined;\n const options = (target ? params[1] : params[0]) as UsePaintOptions | undefined;\n\n const color = options?.color ?? 'black';\n const opacity = options?.opacity ?? 1;\n const radius = options?.radius ?? DEFAULT_BRUSH_RADIUS;\n\n const paintRef = useRef<Paint>(\n new Paint({\n x: 0,\n y: 0,\n radius: options?.radius ?? DEFAULT_BRUSH_RADIUS,\n smooth: options?.smooth ?? false\n })\n );\n const [drawing, setIsDrawing] = useState(false);\n const internalRef = useRef<HTMLCanvasElement>(null);\n const contextRef = useRef<CanvasRenderingContext2D | null>(null);\n\n const draw = (points: Point[], color: string, opacity: number, radius: number) => {\n if (!contextRef.current) return;\n\n contextRef.current.globalAlpha = opacity;\n contextRef.current.strokeStyle = color;\n contextRef.current.lineWidth = radius * 2;\n contextRef.current.lineCap = 'round';\n contextRef.current.lineJoin = 'round';\n\n let p1 = points[0];\n let p2 = points[1];\n\n contextRef.current.beginPath();\n\n for (let i = 1; i < points.length; i += 1) {\n const midPoint = {\n x: p1.x + (p2.x - p1.x) / 2,\n y: p1.y + (p2.y - p1.y) / 2\n };\n contextRef.current.quadraticCurveTo(p1.x, p1.y, midPoint.x, midPoint.y);\n p1 = points[i];\n p2 = points[i + 1];\n }\n contextRef.current.lineTo(p1.x, p1.y);\n contextRef.current.stroke();\n };\n\n const clearCanvas = () => {\n if (!contextRef.current) return;\n contextRef.current.clearRect(\n 0,\n 0,\n contextRef.current.canvas.width,\n contextRef.current.canvas.height\n );\n };\n\n const onMouseMove = useEvent((event: MouseEvent) => {\n if (!drawing) return;\n options?.onMouseMove?.(event, paintRef.current);\n\n const point = { x: event.offsetX, y: event.offsetY };\n\n const isUpdated = paintRef.current.update(point);\n\n if (!isUpdated) return;\n if (!contextRef.current) return;\n clearCanvas();\n contextRef.current.clearRect(\n 0,\n 0,\n contextRef.current.canvas.width,\n contextRef.current.canvas.height\n );\n\n // const brush = paintRef.current.getBrushCoordinates();\n // // Draw brush point\n // contextRef.current.beginPath();\n // contextRef.current.fillStyle = 'red';\n // contextRef.current.arc(brush.x, brush.y, radius, 0, Math.PI * 2, true);\n // contextRef.current.fill();\n\n // // Draw the lazy radius.\n // contextRef.current.beginPath();\n // contextRef.current.strokeStyle = '#ccc';\n // contextRef.current.arc(brush.x, brush.y, radius * 2, 0, Math.PI * 2, true);\n // contextRef.current.stroke();\n\n paintRef.current.lines.forEach(({ points, color, opacity, radius }) =>\n draw(points, color, opacity, radius)\n );\n draw(paintRef.current.points, color, opacity, radius);\n });\n\n const onMouseDown = useEvent((event: MouseEvent) => {\n if (!contextRef.current) return;\n\n const point = { x: event.offsetX, y: event.offsetY };\n paintRef.current.brush.update(point);\n paintRef.current.points.push(point);\n draw(paintRef.current.points, color, opacity, radius);\n\n options?.onMouseDown?.(event, paintRef.current);\n setIsDrawing(true);\n });\n\n const onMouseUp = useEvent((event: MouseEvent) => {\n if (!contextRef.current) return;\n\n if (paintRef.current.points.length) {\n paintRef.current.lines.push({ points: paintRef.current.points, color, opacity, radius });\n paintRef.current.points = [];\n }\n\n options?.onMouseUp?.(event, paintRef.current);\n setIsDrawing(false);\n });\n\n const clear = () => {\n if (!contextRef.current) return;\n clearCanvas();\n paintRef.current.lines = [];\n paintRef.current.points = [];\n };\n\n const undo = () => {\n if (!contextRef.current) return;\n clearCanvas();\n\n paintRef.current.lines.pop();\n paintRef.current.lines.forEach(({ points, color, opacity, radius }) =>\n draw(points, color, opacity, radius)\n );\n };\n\n useEffect(() => {\n const element = target ? getElement(target) : internalRef.current;\n if (!element) return;\n contextRef.current = element.getContext('2d');\n\n if (options?.initialLines) {\n paintRef.current.lines = options.initialLines;\n options.initialLines.forEach(({ points, color, opacity, radius }) =>\n draw(points, color, opacity, radius)\n );\n }\n\n element.addEventListener('mousedown', onMouseDown);\n element.addEventListener('mousemove', onMouseMove);\n element.addEventListener('mouseup', onMouseUp);\n\n return () => {\n if (!element) return;\n element.removeEventListener('mousedown', onMouseDown);\n element.removeEventListener('mousemove', onMouseMove);\n element.removeEventListener('mouseup', onMouseUp);\n };\n }, []);\n\n if (target) return { drawing, clear, undo, draw, lines: paintRef.current.lines };\n return { ref: internalRef, drawing, clear, undo, draw, lines: paintRef.current.lines };\n}) as UsePaint;\n"],"names":["getElement","target","Element","current","_options$color","_options$opacity","_options$radius","_options$radius2","_options$smooth","_typeof","arguments","length","undefined","options","color","opacity","radius","paintRef","useRef","Paint","x","y","smooth","_useState","useState","_useState2","_slicedToArray","drawing","setIsDrawing","internalRef","contextRef","draw","points","globalAlpha","strokeStyle","lineWidth","lineCap","lineJoin","p1","p2","beginPath","i","midPoint","quadraticCurveTo","lineTo","stroke","clearCanvas","clearRect","canvas","width","height","onMouseMove","useEvent","event","_options$onMouseMove","call","point","offsetX","offsetY","update","lines","forEach","_ref","onMouseDown","_options$onMouseDown","brush","push","onMouseUp","_options$onMouseUp","clear","undo","pop","_ref2","useEffect","element","getContext","initialLines","_ref3","addEventListener","removeEventListener","ref"],"mappings":"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"}
@@ -1,3 +1,3 @@
1
- /* @license @siberiacancode/reactuse v0.0.44 */
2
- "use strict";var e=require("../../_rollupPluginBabelHelpers-Bx9oEugz.js"),r=require("react"),t=require("../../utils/helpers/isClient.js"),n=require("../useEvent/useEvent.js");require("../useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.js");exports.usePermission=function(s){var u=r.useState("prompt"),i=e._slicedToArray(u,2),a=i[0],o=i[1],c=!!t.isClient&&(navigator&&"permissions"in navigator),p={name:s},v=n.useEvent(e._asyncToGenerator(e._regeneratorRuntime().mark((function r(){var t;return e._regeneratorRuntime().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,navigator.permissions.query(p);case 3:return t=e.sent,o(t.state),e.abrupt("return",t.state);case 8:return e.prev=8,e.t0=e.catch(0),o("prompt"),e.abrupt("return","prompt");case 12:case"end":return e.stop()}}),r,null,[[0,8]])}))));return r.useEffect((function(){if(c)return v(),window.addEventListener("change",v),function(){window.removeEventListener("change",v)}}),[s]),{state:a,supported:c,query:v}};
1
+ /* @license @siberiacancode/reactuse v0.0.46 */
2
+ "use strict";var e=require("../../_rollupPluginBabelHelpers-CFMEkg0G.js"),r=require("react"),t=require("../../utils/helpers/isClient.js"),n=require("../useEvent/useEvent.js");exports.usePermission=function(s){var u=r.useState("prompt"),i=e._slicedToArray(u,2),a=i[0],o=i[1],p=!!t.isClient&&(navigator&&"permissions"in navigator),c={name:s},v=n.useEvent(e._asyncToGenerator(e._regeneratorRuntime().mark((function r(){var t;return e._regeneratorRuntime().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,navigator.permissions.query(c);case 3:return t=e.sent,o(t.state),e.abrupt("return",t.state);case 8:return e.prev=8,e.t0=e.catch(0),o("prompt"),e.abrupt("return","prompt");case 12:case"end":return e.stop()}}),r,null,[[0,8]])}))));return r.useEffect((function(){if(p)return v(),window.addEventListener("change",v),function(){window.removeEventListener("change",v)}}),[s]),{state:a,supported:p,query:v}};
3
3
  //# sourceMappingURL=usePermission.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"usePermission.js","sources":["../../../../src/hooks/usePermission/usePermission.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\n\nimport { isClient } from '@/utils/helpers';\n\nimport { useEvent } from '../useEvent/useEvent';\n\nexport type UsePermissionName =\n | PermissionName\n | 'accelerometer'\n | 'accessibility-events'\n | 'ambient-light-sensor'\n | 'background-sync'\n | 'camera'\n | 'clipboard-read'\n | 'clipboard-write'\n | 'gyroscope'\n | 'magnetometer'\n | 'microphone'\n | 'notifications'\n | 'payment-handler'\n | 'persistent-storage'\n | 'push'\n | 'speaker';\n\nexport interface UsePermissionReturn {\n state: PermissionState;\n supported: boolean;\n query: () => Promise<PermissionState>;\n}\n\n/**\n * @name usePermission\n * @description - Hook that gives you the state of permission\n * @category Browser\n *\n * @returns {UsePermissionReturn} An object containing the state and the supported status\n *\n * @example\n * const { state, supported, query } = usePermission('microphone');\n */\nexport const usePermission = (permissionDescriptorName: UsePermissionName) => {\n const [state, setState] = useState<PermissionState>('prompt');\n const supported = isClient ? navigator && 'permissions' in navigator : false;\n\n const permissionDescriptor = { name: permissionDescriptorName };\n\n const query = useEvent(async () => {\n try {\n const permissionStatus = await navigator.permissions.query(\n permissionDescriptor as PermissionDescriptor\n );\n setState(permissionStatus.state);\n return permissionStatus.state;\n } catch (error) {\n setState('prompt');\n return 'prompt';\n }\n });\n\n useEffect(() => {\n if (!supported) return;\n query();\n window.addEventListener('change', query);\n return () => {\n window.removeEventListener('change', query);\n };\n }, [permissionDescriptorName]);\n\n return {\n state,\n supported,\n query\n };\n};\n"],"names":["permissionDescriptorName","_useState","useState","_useState2","_slicedToArray","state","setState","supported","isClient","navigator","permissionDescriptor","name","query","useEvent","_asyncToGenerator","_regeneratorRuntime","mark","_callee","permissionStatus","wrap","_context","prev","next","permissions","sent","abrupt","t0","stop","useEffect","window","addEventListener","removeEventListener"],"mappings":";0QAwC6B,SAACA,GAC5B,IAAAC,EAA0BC,EAAQA,SAAkB,UAASC,EAAAC,EAAAA,eAAAH,EAAA,GAAtDI,EAAKF,EAAA,GAAEG,EAAQH,EAAA,GAChBI,IAAYC,EAAAA,WAAWC,WAAa,gBAAiBA,WAErDC,EAAuB,CAAEC,KAAMX,GAE/BY,EAAQC,EAAAA,SAAQC,EAAAA,kBAAAC,EAAAA,sBAAAC,MAAC,SAAAC,IAAA,IAAAC,EAAA,OAAAH,EAAAA,sBAAAI,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,KAAA,EAAA,OAAAF,EAAAC,KAAA,EAAAD,EAAAE,KAAA,EAEYb,UAAUc,YAAYX,MACnDF,GACD,KAAA,EACgC,OAH3BQ,EAAgBE,EAAAI,KAGtBlB,EAASY,EAAiBb,OAAOe,EAAAK,OAC1BP,SAAAA,EAAiBb,OAAK,KAAA,EAEV,OAFUe,EAAAC,KAAA,EAAAD,EAAAM,GAAAN,EAAA,MAAA,GAE7Bd,EAAS,UAAUc,EAAAK,OAAA,SACZ,UAAQ,KAAA,GAAA,IAAA,MAAA,OAAAL,EAAAO,OAAA,GAAAV,EAAA,KAAA,CAAA,CAAA,EAAA,IAElB,MAWD,OATAW,EAAAA,WAAU,WACR,GAAKrB,EAGL,OAFAK,IACAiB,OAAOC,iBAAiB,SAAUlB,GAC3B,WACLiB,OAAOE,oBAAoB,SAAUnB,GAEzC,GAAG,CAACZ,IAEG,CACLK,MAAAA,EACAE,UAAAA,EACAK,MAAAA,EAEJ"}
1
+ {"version":3,"file":"usePermission.js","sources":["../../../../src/hooks/usePermission/usePermission.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\n\nimport { isClient } from '@/utils/helpers';\n\nimport { useEvent } from '../useEvent/useEvent';\n\nexport type UsePermissionName =\n | PermissionName\n | 'accelerometer'\n | 'accessibility-events'\n | 'ambient-light-sensor'\n | 'background-sync'\n | 'camera'\n | 'clipboard-read'\n | 'clipboard-write'\n | 'gyroscope'\n | 'magnetometer'\n | 'microphone'\n | 'notifications'\n | 'payment-handler'\n | 'persistent-storage'\n | 'push'\n | 'speaker';\n\nexport interface UsePermissionReturn {\n state: PermissionState;\n supported: boolean;\n query: () => Promise<PermissionState>;\n}\n\n/**\n * @name usePermission\n * @description - Hook that gives you the state of permission\n * @category Browser\n *\n * @returns {UsePermissionReturn} An object containing the state and the supported status\n *\n * @example\n * const { state, supported, query } = usePermission('microphone');\n */\nexport const usePermission = (permissionDescriptorName: UsePermissionName) => {\n const [state, setState] = useState<PermissionState>('prompt');\n const supported = isClient ? navigator && 'permissions' in navigator : false;\n\n const permissionDescriptor = { name: permissionDescriptorName };\n\n const query = useEvent(async () => {\n try {\n const permissionStatus = await navigator.permissions.query(\n permissionDescriptor as PermissionDescriptor\n );\n setState(permissionStatus.state);\n return permissionStatus.state;\n } catch (error) {\n setState('prompt');\n return 'prompt';\n }\n });\n\n useEffect(() => {\n if (!supported) return;\n query();\n window.addEventListener('change', query);\n return () => {\n window.removeEventListener('change', query);\n };\n }, [permissionDescriptorName]);\n\n return {\n state,\n supported,\n query\n };\n};\n"],"names":["permissionDescriptorName","_useState","useState","_useState2","_slicedToArray","state","setState","supported","isClient","navigator","permissionDescriptor","name","query","useEvent","_asyncToGenerator","_regeneratorRuntime","mark","_callee","permissionStatus","wrap","_context","prev","next","permissions","sent","abrupt","t0","stop","useEffect","window","addEventListener","removeEventListener"],"mappings":";qMAwC6B,SAACA,GAC5B,IAAAC,EAA0BC,EAAQA,SAAkB,UAASC,EAAAC,EAAAA,eAAAH,EAAA,GAAtDI,EAAKF,EAAA,GAAEG,EAAQH,EAAA,GAChBI,IAAYC,EAAAA,WAAWC,WAAa,gBAAiBA,WAErDC,EAAuB,CAAEC,KAAMX,GAE/BY,EAAQC,EAAAA,SAAQC,EAAAA,kBAAAC,EAAAA,sBAAAC,MAAC,SAAAC,IAAA,IAAAC,EAAA,OAAAH,EAAAA,sBAAAI,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,KAAA,EAAA,OAAAF,EAAAC,KAAA,EAAAD,EAAAE,KAAA,EAEYb,UAAUc,YAAYX,MACnDF,GACD,KAAA,EACgC,OAH3BQ,EAAgBE,EAAAI,KAGtBlB,EAASY,EAAiBb,OAAOe,EAAAK,OAC1BP,SAAAA,EAAiBb,OAAK,KAAA,EAEV,OAFUe,EAAAC,KAAA,EAAAD,EAAAM,GAAAN,EAAA,MAAA,GAE7Bd,EAAS,UAAUc,EAAAK,OAAA,SACZ,UAAQ,KAAA,GAAA,IAAA,MAAA,OAAAL,EAAAO,OAAA,GAAAV,EAAA,KAAA,CAAA,CAAA,EAAA,IAElB,MAWD,OATAW,EAAAA,WAAU,WACR,GAAKrB,EAGL,OAFAK,IACAiB,OAAOC,iBAAiB,SAAUlB,GAC3B,WACLiB,OAAOE,oBAAoB,SAAUnB,GAEzC,GAAG,CAACZ,IAEG,CACLK,MAAAA,EACAE,UAAAA,EACAK,MAAAA,EAEJ"}
@@ -1,3 +1,3 @@
1
- /* @license @siberiacancode/reactuse v0.0.44 */
1
+ /* @license @siberiacancode/reactuse v0.0.46 */
2
2
  "use strict";var e=require("../useMediaQuery/useMediaQuery.js");require("react");exports.usePreferredColorScheme=function(){var r=e.useMediaQuery("(prefers-color-scheme: light)"),u=e.useMediaQuery("(prefers-color-scheme: dark)");return r?"light":u?"dark":"no-preference"};
3
3
  //# sourceMappingURL=usePreferredColorScheme.js.map
@@ -1,3 +1,3 @@
1
- /* @license @siberiacancode/reactuse v0.0.44 */
1
+ /* @license @siberiacancode/reactuse v0.0.46 */
2
2
  "use strict";var e=require("react"),n=function(){return window.navigator.languages},r=function(){return[]},t=function(e){return window.addEventListener("languagechange",e),function(){window.removeEventListener("languagechange",e)}};exports.usePreferredLanguages=function(){return e.useSyncExternalStore(t,n,r)};
3
3
  //# sourceMappingURL=usePreferredLanguages.js.map
@@ -1,3 +1,3 @@
1
- /* @license @siberiacancode/reactuse v0.0.44 */
1
+ /* @license @siberiacancode/reactuse v0.0.46 */
2
2
  "use strict";var e=require("react");exports.usePrevious=function(r){var u=e.useRef();return e.useEffect((function(){u.current=r})),u.current};
3
3
  //# sourceMappingURL=usePrevious.js.map
@@ -1,3 +1,3 @@
1
- /* @license @siberiacancode/reactuse v0.0.44 */
2
- "use strict";var e=require("../../_rollupPluginBabelHelpers-Bx9oEugz.js"),r=require("react"),l=require("../../utils/helpers/getRetry.js");require("../../utils/helpers/isClient.js");exports.useQuery=function(t,n){var i,u=r.useRef(null!=n&&n.retry?l.getRetry(n.retry):0),a=r.useState(!1),c=e._slicedToArray(a,2),o=c[0],s=c[1],d=r.useState(!1),f=e._slicedToArray(d,2),v=f[0],h=f[1],y=r.useState(!1),p=e._slicedToArray(y,2),S=p[0],_=p[1],g=r.useState(!(null==n||!n.initialData)),A=e._slicedToArray(g,2),D=A[0],T=A[1],R=r.useState(void 0),q=e._slicedToArray(R,2),I=q[0],j=q[1],E=r.useState(null==n?void 0:n.initialData),b=e._slicedToArray(E,2),k=b[0],x=b[1],B=function e(r){s(!0),"refetch"===r&&_(!0),t().then((function(e){var l,t=null!=n&&n.select?null==n?void 0:n.select(e):e;null==n||null===(l=n.onSuccess)||void 0===l||l.call(n,t),x(t),T(!0),s(!1),j(void 0),h(!1),"refetch"===r&&_(!1)})).catch((function(t){var i;if(u.current>0)return u.current-=1,e(r);null==n||null===(i=n.onError)||void 0===i||i.call(n,t),x(void 0),T(!1),s(!1),j(t),h(!0),"refetch"===r&&_(!1),u.current=null!=n&&n.retry?l.getRetry(n.retry):0})).finally((function(){if(null!=n&&n.refetchInterval)var r=setInterval((function(){e("refetch"),clearInterval(r)}),null==n?void 0:n.refetchInterval)}))};r.useEffect((function(){null!=n&&n.initialData||B("init")}),null!==(i=null==n?void 0:n.keys)&&void 0!==i?i:[]);var C=(null==n?void 0:n.placeholderData)instanceof Function?null==n?void 0:n.placeholderData():null==n?void 0:n.placeholderData;return{data:null!=k?k:C,error:I,refetch:function(){return B("refetch")},isLoading:o,isError:v,isSuccess:D,isRefetching:S}};
1
+ /* @license @siberiacancode/reactuse v0.0.46 */
2
+ "use strict";var e=require("../../_rollupPluginBabelHelpers-CFMEkg0G.js"),r=require("react"),l=require("../../utils/helpers/getRetry.js");require("../../utils/helpers/isClient.js");exports.useQuery=function(t,n){var i,u=r.useRef(null!=n&&n.retry?l.getRetry(n.retry):0),a=r.useState(!1),c=e._slicedToArray(a,2),o=c[0],s=c[1],d=r.useState(!1),f=e._slicedToArray(d,2),v=f[0],h=f[1],y=r.useState(!1),p=e._slicedToArray(y,2),S=p[0],_=p[1],g=r.useState(!(null==n||!n.initialData)),A=e._slicedToArray(g,2),D=A[0],T=A[1],R=r.useState(void 0),q=e._slicedToArray(R,2),I=q[0],j=q[1],E=r.useState(null==n?void 0:n.initialData),b=e._slicedToArray(E,2),k=b[0],x=b[1],B=function e(r){s(!0),"refetch"===r&&_(!0),t().then((function(e){var l,t=null!=n&&n.select?null==n?void 0:n.select(e):e;null==n||null===(l=n.onSuccess)||void 0===l||l.call(n,t),x(t),T(!0),s(!1),j(void 0),h(!1),"refetch"===r&&_(!1)})).catch((function(t){var i;if(u.current>0)return u.current-=1,e(r);null==n||null===(i=n.onError)||void 0===i||i.call(n,t),x(void 0),T(!1),s(!1),j(t),h(!0),"refetch"===r&&_(!1),u.current=null!=n&&n.retry?l.getRetry(n.retry):0})).finally((function(){if(null!=n&&n.refetchInterval)var r=setInterval((function(){e("refetch"),clearInterval(r)}),null==n?void 0:n.refetchInterval)}))};r.useEffect((function(){null!=n&&n.initialData||B("init")}),null!==(i=null==n?void 0:n.keys)&&void 0!==i?i:[]);var C=(null==n?void 0:n.placeholderData)instanceof Function?null==n?void 0:n.placeholderData():null==n?void 0:n.placeholderData;return{data:null!=k?k:C,error:I,refetch:function(){return B("refetch")},isLoading:o,isError:v,isSuccess:D,isRefetching:S}};
3
3
  //# sourceMappingURL=useQuery.js.map
@@ -1,3 +1,3 @@
1
- /* @license @siberiacancode/reactuse v0.0.44 */
2
- "use strict";var r=require("../../_rollupPluginBabelHelpers-Bx9oEugz.js"),e=require("react"),t=require("react-dom");exports.useQueue=function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],u=e.useState(n),i=r._slicedToArray(u,2),o=i[0],a=i[1];return{add:function(e){return a((function(t){return[].concat(r._toConsumableArray(t),[e])}))},remove:function(){var e;return t.flushSync((function(){a((function(t){var n=r._toArray(t),u=n[0],i=n.slice(1);return e=u,i}))})),e},clear:function(){return a([])},first:o[0],last:o[o.length-1],size:o.length,queue:o}};
1
+ /* @license @siberiacancode/reactuse v0.0.46 */
2
+ "use strict";var r=require("../../_rollupPluginBabelHelpers-CFMEkg0G.js"),e=require("react"),t=require("react-dom");exports.useQueue=function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],u=e.useState(n),i=r._slicedToArray(u,2),o=i[0],a=i[1];return{add:function(e){return a((function(t){return[].concat(r._toConsumableArray(t),[e])}))},remove:function(){var e;return t.flushSync((function(){a((function(t){var n=r._toArray(t),u=n[0],i=n.slice(1);return e=u,i}))})),e},clear:function(){return a([])},first:o[0],last:o[o.length-1],size:o.length,queue:o}};
3
3
  //# sourceMappingURL=useQueue.js.map
@@ -1,3 +1,3 @@
1
- /* @license @siberiacancode/reactuse v0.0.44 */
1
+ /* @license @siberiacancode/reactuse v0.0.46 */
2
2
  "use strict";var e=require("react");exports.useRenderCount=function(){var r=e.useRef(0);return e.useEffect((function(){r.current+=1})),r.current};
3
3
  //# sourceMappingURL=useRenderCount.js.map
@@ -1,3 +1,3 @@
1
- /* @license @siberiacancode/reactuse v0.0.44 */
1
+ /* @license @siberiacancode/reactuse v0.0.46 */
2
2
  "use strict";var e=require("react");exports.useRenderInfo=function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"Unknown",r=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],t=e.useRef({component:n,renders:0,timestamp:Date.now(),sinceLast:0}),c=Date.now();return t.current.renders+=1,t.current.sinceLast=t.current.timestamp?c-t.current.timestamp:0,t.current.timestamp=c,r&&(console.group("".concat(n," info, render number: ").concat(t.current.renders)),console.log("Timestamp: ".concat(t.current.timestamp)),console.log("Since last render: ".concat(t.current.sinceLast)),console.log("Renders: ".concat(t.current.renders)),console.dir(t.current),console.groupEnd()),t.current};
3
3
  //# sourceMappingURL=useRenderInfo.js.map
@@ -1,3 +1,3 @@
1
- /* @license @siberiacancode/reactuse v0.0.44 */
2
- "use strict";var e=require("../../_rollupPluginBabelHelpers-Bx9oEugz.js"),r=require("react");exports.useRerender=function(){var t=r.useId(),u=r.useState(t),n=e._slicedToArray(u,2),a=n[0],i=n[1];return{id:a,update:function(){return i(Math.random().toString())}}};
1
+ /* @license @siberiacancode/reactuse v0.0.46 */
2
+ "use strict";var e=require("../../_rollupPluginBabelHelpers-CFMEkg0G.js"),r=require("react");exports.useRerender=function(){var t=r.useId(),u=r.useState(t),n=e._slicedToArray(u,2),a=n[0],i=n[1];return{id:a,update:function(){return i(Math.random().toString())}}};
3
3
  //# sourceMappingURL=useRerender.js.map
@@ -0,0 +1,3 @@
1
+ /* @license @siberiacancode/reactuse v0.0.46 */
2
+ "use strict";var e=require("../../_rollupPluginBabelHelpers-CFMEkg0G.js"),r=require("react"),n=require("../useRerender/useRerender.js"),t=function(e){return"function"==typeof e?e():e instanceof Element?e:e.current};exports.useResizeObserver=function(){var u,i=n.useRerender(),o="object"!==e._typeof(arguments.length<=0?void 0:arguments[0])||"current"in(arguments.length<=0?void 0:arguments[0])?arguments.length<=0?void 0:arguments[0]:void 0,c=o?arguments.length<=1?void 0:arguments[1]:arguments.length<=0?void 0:arguments[0],l=null===(u=null==c?void 0:c.enabled)||void 0===u||u,s=r.useState([]),v=e._slicedToArray(s,2),f=v[0],a=v[1],d=r.useRef(),b=r.useRef();return b.current=null==c?void 0:c.onChange,r.useEffect((function(){if(l){if(Array.isArray(o)){if(!o.length)return;var e=new ResizeObserver((function(r){var n;a(r),null===(n=b.current)||void 0===n||n.call(b,r,e)}));return o.forEach((function(r){var n=t(r);n&&e.observe(n,c)})),function(){e.disconnect()}}var r=o?t(o):d.current;if(r){var n=new ResizeObserver((function(e){var r;a(e),null===(r=b.current)||void 0===r||r.call(b,e,n)}));return n.observe(r,c),function(){n.disconnect()}}}}),[d.current,o,null==c?void 0:c.box,l]),o?{entries:f}:{ref:function(e){d.current||(d.current=e,i.update())},entries:f}};
3
+ //# sourceMappingURL=useResizeObserver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useResizeObserver.js","sources":["../../../../src/hooks/useResizeObserver/useResizeObserver.ts"],"sourcesContent":["import type { RefObject } from 'react';\nimport { useEffect, useRef, useState } from 'react';\n\nimport { useRerender } from '../useRerender/useRerender';\n\n/** The resize observer target element type */\ntype UseResizeObserverTarget = RefObject<Element | null | undefined> | (() => Element) | Element;\n\nconst getElement = (target: UseResizeObserverTarget) => {\n if (typeof target === 'function') {\n return target();\n }\n\n if (target instanceof Element) {\n return target;\n }\n\n return target.current;\n};\n\n/** The resize observer options type */\nexport interface UseResizeObserverOptions extends ResizeObserverOptions {\n enabled?: boolean;\n onChange?: (entries: ResizeObserverEntry[], observer: ResizeObserver) => void;\n}\n\n/** The resize observer return type */\nexport interface UseResizeObserverReturn {\n entries: ResizeObserverEntry[];\n}\n\nexport type UseResizeObserver = {\n <Target extends UseResizeObserverTarget | UseResizeObserverTarget[]>(\n target: Target,\n options?: UseResizeObserverOptions\n ): UseResizeObserverReturn;\n\n <Target extends UseResizeObserverTarget | UseResizeObserverTarget[]>(\n options?: UseResizeObserverOptions,\n target?: never\n ): UseResizeObserverReturn & { ref: (node: Target) => void };\n};\n\n/**\n * @name useResizeObserver\n * @description - Hook that gives you resize observer state\n * @category Browser\n *\n * @overload\n * @template Target The target element\n * @param {boolean} [options.enabled=true] The IntersectionObserver options\n * @param {boolean} [options.box] The IntersectionObserver options\n * @param {(entries: ResizeObserverEntry[], observer: ResizeObserver) => void} [options.onChange] The callback to execute when resize is detected\n * @returns {UseResizeObserverReturn & { ref: (node: Target) => void }} An object containing the resize observer state\n *\n * @example\n * const { ref, entries } = useResizeObserver();\n *\n * @overload\n * @template Target The target element\n * @param {Target} target The target element to observe\n * @param {boolean} [options.enabled=true] The IntersectionObserver options\n * @param {boolean} [options.box] The IntersectionObserver options\n * @param {(entries: ResizeObserverEntry[], observer: ResizeObserver) => void} [options.onChange] The callback to execute when resize is detected\n * @returns {UseResizeObserverReturn} An object containing the resize observer state\n *\n * @example\n * const { entries } = useResizeObserver(ref);\n */\nexport const useResizeObserver = ((...params: any[]) => {\n const rerender = useRerender();\n const target = (\n typeof params[0] === 'object' && !('current' in params[0]) ? undefined : params[0]\n ) as UseResizeObserverTarget | UseResizeObserverTarget[] | undefined;\n const options = (target ? params[1] : params[0]) as UseResizeObserverOptions | undefined;\n const enabled = options?.enabled ?? true;\n\n const [entries, setEntries] = useState<ResizeObserverEntry[]>([]);\n\n const internalRef = useRef<Element>();\n const internalOnChangeRef = useRef<UseResizeObserverOptions['onChange']>();\n internalOnChangeRef.current = options?.onChange;\n\n useEffect(() => {\n if (!enabled) return;\n\n if (Array.isArray(target)) {\n if (!target.length) return;\n const observer = new ResizeObserver((entries) => {\n setEntries(entries);\n internalOnChangeRef.current?.(entries, observer);\n });\n\n target.forEach((target) => {\n const element = getElement(target);\n if (!element) return;\n observer.observe(element, options);\n });\n\n return () => {\n observer.disconnect();\n };\n }\n\n const element = target ? getElement(target) : internalRef.current;\n if (!element) return;\n\n const observer = new ResizeObserver((entries) => {\n setEntries(entries);\n internalOnChangeRef.current?.(entries, observer);\n });\n observer.observe(element, options);\n\n return () => {\n observer.disconnect();\n };\n }, [internalRef.current, target, options?.box, enabled]);\n\n if (target) return { entries };\n return {\n ref: (node: Element) => {\n if (!internalRef.current) {\n internalRef.current = node;\n rerender.update();\n }\n },\n entries\n };\n}) as UseResizeObserver;\n"],"names":["getElement","target","Element","current","_options$enabled","rerender","useRerender","_typeof","arguments","length","undefined","options","enabled","_useState","useState","_useState2","_slicedToArray","entries","setEntries","internalRef","useRef","internalOnChangeRef","onChange","useEffect","Array","isArray","observer","ResizeObserver","_internalOnChangeRef$","call","forEach","element","observe","disconnect","_internalOnChangeRef$2","box","ref","node","update"],"mappings":";wIAQMA,EAAa,SAACC,GAClB,MAAsB,mBAAXA,EACFA,IAGLA,aAAkBC,QACbD,EAGFA,EAAOE,OAChB,4BAmDkC,WAAsB,IAAAC,EAChDC,EAAWC,EAAAA,cACXL,EACiB,WAArBM,EAAAA,QAAAC,UAAAC,QAAA,OAAAC,EAAAF,UAAqB,KAAc,YAASA,UAAAC,eAAAC,EAAAF,UAAA,IAA0BA,UAAAC,QAAA,OAAAC,EAAAF,UACJ,QADLE,EAEzDC,EAAWV,EAAMO,UAAAC,QAAAC,OAAAA,EAAAF,UAAA,GAAAA,UAAAC,eAAAC,EAAAF,UAAiE,GAClFI,EAA0BR,QAAnBA,EAAGO,aAAO,EAAPA,EAASC,eAAOR,IAAAA,GAAAA,EAEhCS,EAA8BC,EAAQA,SAAwB,IAAGC,EAAAC,EAAAA,eAAAH,EAAA,GAA1DI,EAAOF,EAAA,GAAEG,EAAUH,EAAA,GAEpBI,EAAcC,EAAAA,SACdC,EAAsBD,EAAAA,SAsC5B,OArCAC,EAAoBlB,QAAUQ,aAAO,EAAPA,EAASW,SAEvCC,EAAAA,WAAU,WACR,GAAKX,EAAL,CAEA,GAAIY,MAAMC,QAAQxB,GAAS,CACzB,IAAKA,EAAOQ,OAAQ,OACpB,IAAMiB,EAAW,IAAIC,gBAAe,SAACV,GAAY,IAAAW,EAC/CV,EAAWD,WACXW,EAAAP,EAAoBlB,eAAO,IAAAyB,GAA3BA,EAAAC,KAAAR,EAA8BJ,EAASS,EACzC,IAQA,OANAzB,EAAO6B,SAAQ,SAAC7B,GACd,IAAM8B,EAAU/B,EAAWC,GACtB8B,GACLL,EAASM,QAAQD,EAASpB,EAC5B,IAEO,WACLe,EAASO,aAEb,CAEA,IAAMF,EAAU9B,EAASD,EAAWC,GAAUkB,EAAYhB,QAC1D,GAAK4B,EAAL,CAEA,IAAML,EAAW,IAAIC,gBAAe,SAACV,GAAY,IAAAiB,EAC/ChB,EAAWD,WACXiB,EAAAb,EAAoBlB,eAAO,IAAA+B,GAA3BA,EAAAL,KAAAR,EAA8BJ,EAASS,EACzC,IAGA,OAFAA,EAASM,QAAQD,EAASpB,GAEnB,WACLe,EAASO,aATG,CArBA,CAgCf,GAAE,CAACd,EAAYhB,QAASF,EAAQU,eAAAA,EAASwB,IAAKvB,IAE3CX,EAAe,CAAEgB,QAAAA,GACd,CACLmB,IAAK,SAACC,GACClB,EAAYhB,UACfgB,EAAYhB,QAAUkC,EACtBhC,EAASiC,SAEZ,EACDrB,QAAAA,EAEJ"}
@@ -1,3 +1,3 @@
1
- /* @license @siberiacancode/reactuse v0.0.44 */
2
- "use strict";var e=require("../../_rollupPluginBabelHelpers-Bx9oEugz.js"),r=require("react"),t="script-status";exports.SCRIPT_STATUS_ATTRIBUTE_NAME=t,exports.useScript=function(n){var o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=r.useState((function(){var e=document.querySelector('script[src="'.concat(n,'"]')),r=null==e?void 0:e.getAttribute(t);return r||(e?"unknown":"loading")})),u=e._slicedToArray(i,2),c=u[0],s=u[1],a=o.removeOnUnmount,d=void 0===a||a,l=o.async,v=void 0===l||l;return r.useEffect((function(){var r=document.querySelector('script[src="'.concat(n,'"]')),i=null==r?void 0:r.getAttribute(t);if(i)return s(i);if(r)return s("unknown");var u=document.createElement("script");u.src=n,u.async=v;for(var c=0,a=Object.entries(o);c<a.length;c++){var l=e._slicedToArray(a[c],2),f=l[0],p=l[1];u.setAttribute(f,String(p))}u.setAttribute(t,"loading"),document.body.appendChild(u);var A=function(){u.setAttribute(t,"ready"),s("ready")},m=function(){u.setAttribute(t,"error"),s("error")};return u.addEventListener("load",A),u.addEventListener("error",m),function(){d&&(u.remove(),u.removeEventListener("load",A),u.removeEventListener("error",m))}}),[n,d]),c};
1
+ /* @license @siberiacancode/reactuse v0.0.46 */
2
+ "use strict";var e=require("../../_rollupPluginBabelHelpers-CFMEkg0G.js"),r=require("react"),t="script-status";exports.SCRIPT_STATUS_ATTRIBUTE_NAME=t,exports.useScript=function(n){var o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=r.useState((function(){var e=document.querySelector('script[src="'.concat(n,'"]')),r=null==e?void 0:e.getAttribute(t);return r||(e?"unknown":"loading")})),u=e._slicedToArray(i,2),c=u[0],s=u[1],a=o.removeOnUnmount,d=void 0===a||a,l=o.async,v=void 0===l||l;return r.useEffect((function(){var r=document.querySelector('script[src="'.concat(n,'"]')),i=null==r?void 0:r.getAttribute(t);if(i)return s(i);if(r)return s("unknown");var u=document.createElement("script");u.src=n,u.async=v;for(var c=0,a=Object.entries(o);c<a.length;c++){var l=e._slicedToArray(a[c],2),f=l[0],p=l[1];u.setAttribute(f,String(p))}u.setAttribute(t,"loading"),document.body.appendChild(u);var A=function(){u.setAttribute(t,"ready"),s("ready")},m=function(){u.setAttribute(t,"error"),s("error")};return u.addEventListener("load",A),u.addEventListener("error",m),function(){d&&(u.remove(),u.removeEventListener("load",A),u.removeEventListener("error",m))}}),[n,d]),c};
3
3
  //# sourceMappingURL=useScript.js.map
@@ -1,3 +1,3 @@
1
- /* @license @siberiacancode/reactuse v0.0.44 */
2
- "use strict";var e=require("../../_rollupPluginBabelHelpers-Bx9oEugz.js"),r=require("../useStorage/useStorage.js");require("react"),require("../../utils/helpers/isClient.js"),require("../useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.js");exports.useSessionStorage=function(s,t,u){return r.useStorage(s,e._objectSpread2({initialValue:t,storage:window.sessionStorage},u))};
1
+ /* @license @siberiacancode/reactuse v0.0.46 */
2
+ "use strict";var e=require("../../_rollupPluginBabelHelpers-CFMEkg0G.js"),r=require("../useStorage/useStorage.js");require("react"),require("../../utils/helpers/isClient.js"),require("../useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.js");exports.useSessionStorage=function(s,t,u){return r.useStorage(s,e._objectSpread2({initialValue:t,storage:window.sessionStorage},u))};
3
3
  //# sourceMappingURL=useSessionStorage.js.map
@@ -1,3 +1,3 @@
1
- /* @license @siberiacancode/reactuse v0.0.44 */
2
- "use strict";var e=require("../../_rollupPluginBabelHelpers-Bx9oEugz.js"),n=require("react");exports.useSet=function(r){var t=n.useState(new Set(r)),u=e._slicedToArray(t,2),i=u[0],c=u[1];return{value:i,size:i.size,has:function(e){return i.has(e)},add:function(e){return c((function(n){return new Set(n).add(e)}))},remove:function(e){return c((function(n){if(!n.has(e))return n;var r=new Set(n);return r.delete(e),r}))},clear:function(){return c(new Set)},reset:function(){return c(new Set(r))},toggle:function(e){return c((function(n){if(!n.has(e))return new Set(n).add(e);var r=new Set(n);return r.delete(e),r}))},union:function(e){return c(i.union(e))},difference:function(e){return c(i.difference(e))},symmetricDifference:function(e){return c(i.symmetricDifference(e))},intersection:function(e){return c(i.intersection(e))}}};
1
+ /* @license @siberiacancode/reactuse v0.0.46 */
2
+ "use strict";var e=require("../../_rollupPluginBabelHelpers-CFMEkg0G.js"),n=require("react");exports.useSet=function(r){var t=n.useState(new Set(r)),u=e._slicedToArray(t,2),i=u[0],c=u[1];return{value:i,size:i.size,has:function(e){return i.has(e)},add:function(e){return c((function(n){return new Set(n).add(e)}))},remove:function(e){return c((function(n){if(!n.has(e))return n;var r=new Set(n);return r.delete(e),r}))},clear:function(){return c(new Set)},reset:function(){return c(new Set(r))},toggle:function(e){return c((function(n){if(!n.has(e))return new Set(n).add(e);var r=new Set(n);return r.delete(e),r}))},union:function(e){return c(i.union(e))},difference:function(e){return c(i.difference(e))},symmetricDifference:function(e){return c(i.symmetricDifference(e))},intersection:function(e){return c(i.intersection(e))}}};
3
3
  //# sourceMappingURL=useSet.js.map
@@ -1,3 +1,3 @@
1
- /* @license @siberiacancode/reactuse v0.0.44 */
2
- "use strict";var r=require("../../_rollupPluginBabelHelpers-Bx9oEugz.js"),e=require("../../utils/helpers/isClient.js");exports.useShare=function(t){var n=!!e.isClient&&"share"in navigator,a=function(){var e=r._asyncToGenerator(r._regeneratorRuntime().mark((function e(a){var i;return r._regeneratorRuntime().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n){e.next=2;break}return e.abrupt("return");case 2:return(i=r._objectSpread2(r._objectSpread2({},t),a)).files&&navigator.canShare({files:i.files})&&navigator.share(i),e.abrupt("return",navigator.share(i));case 5:case"end":return e.stop()}}),e)})));return function(r){return e.apply(this,arguments)}}();return{share:a,supported:n}};
1
+ /* @license @siberiacancode/reactuse v0.0.46 */
2
+ "use strict";var r=require("../../_rollupPluginBabelHelpers-CFMEkg0G.js"),e=require("../../utils/helpers/isClient.js");exports.useShare=function(t){var n=!!e.isClient&&"share"in navigator,a=function(){var e=r._asyncToGenerator(r._regeneratorRuntime().mark((function e(a){var i;return r._regeneratorRuntime().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n){e.next=2;break}return e.abrupt("return");case 2:return(i=r._objectSpread2(r._objectSpread2({},t),a)).files&&navigator.canShare({files:i.files})&&navigator.share(i),e.abrupt("return",navigator.share(i));case 5:case"end":return e.stop()}}),e)})));return function(r){return e.apply(this,arguments)}}();return{share:a,supported:n}};
3
3
  //# sourceMappingURL=useShare.js.map
@@ -1,3 +1,3 @@
1
- /* @license @siberiacancode/reactuse v0.0.44 */
2
- "use strict";var t=require("../../_rollupPluginBabelHelpers-Bx9oEugz.js"),e=require("react");exports.useStep=function(r){var n="object"===t._typeof(r)?r.max:r,u="object"===t._typeof(r)?r.initial:1,i=e.useRef(u>n||u<1?1:u),s=e.useState(u),c=t._slicedToArray(s,2),o=c[0],a=c[1],f=1===o,l=o===n;return{counts:n,currentStep:o,isFirst:f,isLast:l,next:function(){l||a((function(t){return t+1}))},back:function(){f||a((function(t){return t-1}))},reset:function(){return a(i.current)},set:function(t){return"first"===t?a(i.current):"last"===t||t>=n?a(n):t<=1?a(1):void a(t)}}};
1
+ /* @license @siberiacancode/reactuse v0.0.46 */
2
+ "use strict";var t=require("../../_rollupPluginBabelHelpers-CFMEkg0G.js"),e=require("react");exports.useStep=function(r){var n="object"===t._typeof(r)?r.max:r,u="object"===t._typeof(r)?r.initial:1,i=e.useRef(u>n||u<1?1:u),s=e.useState(u),c=t._slicedToArray(s,2),o=c[0],a=c[1],f=1===o,l=o===n;return{counts:n,currentStep:o,isFirst:f,isLast:l,next:function(){l||a((function(t){return t+1}))},back:function(){f||a((function(t){return t-1}))},reset:function(){return a(i.current)},set:function(t){return"first"===t?a(i.current):"last"===t||t>=n?a(n):t<=1?a(1):void a(t)}}};
3
3
  //# sourceMappingURL=useStep.js.map
@@ -1,3 +1,3 @@
1
- /* @license @siberiacancode/reactuse v0.0.44 */
2
- "use strict";var e=require("../../_rollupPluginBabelHelpers-Bx9oEugz.js"),r=require("react");require("../../utils/helpers/isClient.js");var t=require("../useEvent/useEvent.js");require("../../index-P7gOty8T.js"),require("react-dom"),require("../useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.js");var n=function(e){return e?{days:Math.floor(e/86400),hours:Math.floor(e%86400/3600),minutes:Math.floor(e%3600/60),seconds:Math.floor(e%60),count:e}:{days:0,hours:0,minutes:0,seconds:0,count:0}};exports.useStopwatch=function(){for(var u,o,s=arguments.length,c=new Array(s),a=0;a<s;a++)c[a]=arguments[a];var i=null!==(u="number"==typeof c[0]?c[0]:null===(o=c[0])||void 0===o?void 0:o.initialTime)&&void 0!==u?u:0,d="number"==typeof c[0]?c[1]:c[0],l=r.useState(n(i)),f=e._slicedToArray(l,2),p=f[0],v=f[1],j=r.useState(!(null!=d&&d.enabled)),b=e._slicedToArray(j,2),h=b[0],S=b[1],_=t.useEvent((function(){var r=p.count+1;return r%60==0?v(e._objectSpread2(e._objectSpread2({},p),{},{minutes:p.minutes+1,seconds:0,count:r})):r%3600==0?v(e._objectSpread2(e._objectSpread2({},p),{},{hours:p.hours+1,minutes:0,seconds:0,count:r})):r%86400==0?v(e._objectSpread2(e._objectSpread2({},p),{},{days:p.days+1,hours:0,minutes:0,seconds:0,count:r})):void v(e._objectSpread2(e._objectSpread2({},p),{},{seconds:p.seconds+1,count:r}))}));return r.useEffect((function(){if(!h){var e=setInterval((function(){return _()}),1e3);return function(){return clearInterval(e)}}}),[h]),e._objectSpread2(e._objectSpread2({},p),{},{paused:h,pause:function(){return S(!0)},start:function(){return S(!1)},reset:function(){return v(n(i))},toggle:function(){return S((function(e){return!e}))}})};
1
+ /* @license @siberiacancode/reactuse v0.0.46 */
2
+ "use strict";var e=require("../../_rollupPluginBabelHelpers-CFMEkg0G.js"),r=require("react");require("../../utils/helpers/isClient.js");var t=require("../useEvent/useEvent.js");require("../../index-tUwcXC5G.js"),require("react-dom");var n=function(e){return e?{days:Math.floor(e/86400),hours:Math.floor(e%86400/3600),minutes:Math.floor(e%3600/60),seconds:Math.floor(e%60),count:e}:{days:0,hours:0,minutes:0,seconds:0,count:0}};exports.useStopwatch=function(){for(var u,o,s=arguments.length,c=new Array(s),a=0;a<s;a++)c[a]=arguments[a];var i=null!==(u="number"==typeof c[0]?c[0]:null===(o=c[0])||void 0===o?void 0:o.initialTime)&&void 0!==u?u:0,d="number"==typeof c[0]?c[1]:c[0],l=r.useState(n(i)),f=e._slicedToArray(l,2),p=f[0],v=f[1],b=r.useState(!(null!=d&&d.enabled)),j=e._slicedToArray(b,2),S=j[0],_=j[1],h=t.useEvent((function(){var r=p.count+1;return r%60==0?v(e._objectSpread2(e._objectSpread2({},p),{},{minutes:p.minutes+1,seconds:0,count:r})):r%3600==0?v(e._objectSpread2(e._objectSpread2({},p),{},{hours:p.hours+1,minutes:0,seconds:0,count:r})):r%86400==0?v(e._objectSpread2(e._objectSpread2({},p),{},{days:p.days+1,hours:0,minutes:0,seconds:0,count:r})):void v(e._objectSpread2(e._objectSpread2({},p),{},{seconds:p.seconds+1,count:r}))}));return r.useEffect((function(){if(!S){var e=setInterval((function(){return h()}),1e3);return function(){return clearInterval(e)}}}),[S]),e._objectSpread2(e._objectSpread2({},p),{},{paused:S,pause:function(){return _(!0)},start:function(){return _(!1)},reset:function(){return v(n(i))},toggle:function(){return _((function(e){return!e}))}})};
3
3
  //# sourceMappingURL=useStopwatch.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useStopwatch.js","sources":["../../../../src/hooks/useStopwatch/useStopwatch.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\n\nimport { useEvent } from '@/hooks';\n\nconst getStopwatchTime = (time: number) => {\n if (!time)\n return {\n days: 0,\n hours: 0,\n minutes: 0,\n seconds: 0,\n count: 0\n };\n\n const days = Math.floor(time / 86400);\n const hours = Math.floor((time % 86400) / 3600);\n const minutes = Math.floor((time % 3600) / 60);\n const seconds = Math.floor(time % 60);\n\n return { days, hours, minutes, seconds, count: time };\n};\n\n/** The use stopwatch return type */\nexport interface UseStopwatchReturn {\n /** The paused state of the stopwatch */\n paused: boolean;\n /** The over state of the stopwatch */\n over: boolean;\n /** The day count of the stopwatch */\n days: number;\n /** The hour count of the stopwatch */\n hours: number;\n /** The minute count of the stopwatch */\n minutes: number;\n /** The second count of the stopwatch */\n seconds: number;\n /** The total count of the stopwatch */\n count: number;\n /** The function to pause the stopwatch */\n pause: () => void;\n /** The function to start the stopwatch */\n start: () => void;\n /** The function to reset the stopwatch */\n reset: () => void;\n /** The function to toggle the stopwatch */\n toggle: () => void;\n}\n\n/** The use stopwatch options */\nexport interface UseStopwatchOptions {\n /** The enabled state of the timer */\n enabled?: boolean;\n}\n\ntype UseStopwatch = {\n (initialTime?: number, options?: UseStopwatchOptions): UseStopwatchReturn;\n (options?: UseStopwatchOptions & { initialTime?: number }): UseStopwatchReturn;\n};\n/**\n * @name useStopwatch\n * @description - Hook that creates a stopwatch functionality\n *\n * @overload\n * @param {number} [initialTime=0] The initial time of the timer\n * @param {boolean} [options.enabled=true] The enabled state of the timer\n * @returns {UseStopwatchReturn} An object containing the current time and functions to interact with the timer\n *\n * @example\n * const { seconds, minutes, start, pause, reset } = useStopwatch(1000, { enabled: false });\n *\n * @overload\n * @param {number} [options.initialTime=0] -The initial time of the timer\n * @param {boolean} [options.enabled=true] The enabled state of the timer\n * @returns {UseStopwatchReturn} An object containing the current time and functions to interact with the timer\n *\n * @example\n * const { seconds, minutes, start, pause, reset } = useStopwatch({ initialTime: 1000, enabled: false });\n */\nexport const useStopwatch = ((...params: any[]) => {\n const initialTime =\n (typeof params[0] === 'number'\n ? (params[0] as number | undefined)\n : (params[0] as UseStopwatchOptions & { initialTime?: number })?.initialTime) ?? 0;\n\n const options =\n typeof params[0] === 'number'\n ? (params[1] as UseStopwatchOptions | undefined)\n : (params[0] as (UseStopwatchOptions & { initialTime?: number }) | undefined);\n\n const [time, setTime] = useState(getStopwatchTime(initialTime));\n const [paused, setPaused] = useState(!options?.enabled);\n\n const onInterval = useEvent(() => {\n const updatedCount = time.count + 1;\n\n if (updatedCount % 60 === 0) {\n return setTime({\n ...time,\n minutes: time.minutes + 1,\n seconds: 0,\n count: updatedCount\n });\n }\n\n if (updatedCount % (60 * 60) === 0) {\n return setTime({\n ...time,\n hours: time.hours + 1,\n minutes: 0,\n seconds: 0,\n count: updatedCount\n });\n }\n\n if (updatedCount % (60 * 60 * 24) === 0) {\n return setTime({\n ...time,\n days: time.days + 1,\n hours: 0,\n minutes: 0,\n seconds: 0,\n count: updatedCount\n });\n }\n\n setTime({\n ...time,\n seconds: time.seconds + 1,\n count: updatedCount\n });\n });\n\n useEffect(() => {\n if (paused) return;\n const interval = setInterval(() => onInterval(), 1000);\n return () => clearInterval(interval);\n }, [paused]);\n\n return {\n ...time,\n paused,\n pause: () => setPaused(true),\n start: () => setPaused(false),\n reset: () => setTime(getStopwatchTime(initialTime)),\n toggle: () => setPaused((prevPause) => !prevPause)\n };\n}) as UseStopwatch;\n"],"names":["getStopwatchTime","time","days","Math","floor","hours","minutes","seconds","count","_ref","_params$","_len","arguments","length","params","Array","_key","initialTime","options","_useState","useState","_useState2","_slicedToArray","setTime","_useState3","enabled","_useState4","paused","setPaused","onInterval","useEvent","updatedCount","_objectSpread","_objectSpread2","useEffect","interval","setInterval","clearInterval","pause","start","reset","toggle","prevPause"],"mappings":";8SAIA,IAAMA,EAAmB,SAACC,GACxB,OAAKA,EAcE,CAAEC,KALIC,KAAKC,MAAMH,EAAO,OAKhBI,MAJDF,KAAKC,MAAOH,EAAO,MAAS,MAIpBK,QAHNH,KAAKC,MAAOH,EAAO,KAAQ,IAGZM,QAFfJ,KAAKC,MAAMH,EAAO,IAEMO,MAAOP,GAbtC,CACLC,KAAM,EACNG,MAAO,EACPC,QAAS,EACTC,QAAS,EACTC,MAAO,EASb,uBA0D6B,WAAsB,IAAA,IAAAC,EAAAC,EAAAC,EAAAC,UAAAC,OAAlBC,EAAMC,IAAAA,MAAAJ,GAAAK,EAAA,EAAAA,EAAAL,EAAAK,IAANF,EAAME,GAAAJ,UAAAI,GACrC,IAAMC,EAG0ER,QAH/DA,EACO,iBAAdK,EAAO,GACVA,EAAO,WAAEJ,EACTI,EAAO,UAAE,IAAAJ,OAAA,EAAVA,EAA+DO,mBAAWR,IAAAA,EAAAA,EAAK,EAE/ES,EACiB,iBAAdJ,EAAO,GACTA,EAAO,GACPA,EAAO,GAEdK,EAAwBC,EAAAA,SAASpB,EAAiBiB,IAAaI,EAAAC,EAAAA,eAAAH,EAAA,GAAxDlB,EAAIoB,EAAA,GAAEE,EAAOF,EAAA,GACpBG,EAA4BJ,aAAUF,SAAAA,EAASO,UAAQC,EAAAJ,EAAAA,eAAAE,EAAA,GAAhDG,EAAMD,EAAA,GAAEE,EAASF,EAAA,GAElBG,EAAaC,EAAAA,UAAS,WAC1B,IAAMC,EAAe9B,EAAKO,MAAQ,EAElC,OAAIuB,EAAe,IAAO,EACjBR,EAAOS,EAAAA,eAAAA,EAAAA,kBACT/B,GAAI,GAAA,CACPK,QAASL,EAAKK,QAAU,EACxBC,QAAS,EACTC,MAAOuB,KAIPA,EAAgB,MAAa,EACxBR,EAAOS,EAAAA,eAAAA,EAAAA,kBACT/B,GAAI,GAAA,CACPI,MAAOJ,EAAKI,MAAQ,EACpBC,QAAS,EACTC,QAAS,EACTC,MAAOuB,KAIPA,EAAY,OAAsB,EAC7BR,EAAOS,EAAAA,eAAAA,EAAAA,kBACT/B,GAAI,GAAA,CACPC,KAAMD,EAAKC,KAAO,EAClBG,MAAO,EACPC,QAAS,EACTC,QAAS,EACTC,MAAOuB,UAIXR,EAAOS,EAAAC,eAAAD,EAAAC,kBACFhC,GAAI,CAAA,EAAA,CACPM,QAASN,EAAKM,QAAU,EACxBC,MAAOuB,IAEX,IAQA,OANAG,EAAAA,WAAU,WACR,IAAIP,EAAJ,CACA,IAAMQ,EAAWC,aAAY,WAAA,OAAMP,GAAY,GAAE,KACjD,OAAO,WAAA,OAAMQ,cAAcF,EAAS,CAFxB,CAGd,GAAG,CAACR,IAEJK,EAAAC,eAAAD,EAAAC,eAAA,CAAA,EACKhC,GAAI,CAAA,EAAA,CACP0B,OAAAA,EACAW,MAAO,WAAA,OAAMV,GAAU,EAAK,EAC5BW,MAAO,WAAA,OAAMX,GAAU,EAAM,EAC7BY,MAAO,WAAA,OAAMjB,EAAQvB,EAAiBiB,GAAa,EACnDwB,OAAQ,WAAA,OAAMb,GAAU,SAACc,GAAS,OAAMA,IAAU,GAEtD"}
1
+ {"version":3,"file":"useStopwatch.js","sources":["../../../../src/hooks/useStopwatch/useStopwatch.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\n\nimport { useEvent } from '@/hooks';\n\nconst getStopwatchTime = (time: number) => {\n if (!time)\n return {\n days: 0,\n hours: 0,\n minutes: 0,\n seconds: 0,\n count: 0\n };\n\n const days = Math.floor(time / 86400);\n const hours = Math.floor((time % 86400) / 3600);\n const minutes = Math.floor((time % 3600) / 60);\n const seconds = Math.floor(time % 60);\n\n return { days, hours, minutes, seconds, count: time };\n};\n\n/** The use stopwatch return type */\nexport interface UseStopwatchReturn {\n /** The paused state of the stopwatch */\n paused: boolean;\n /** The over state of the stopwatch */\n over: boolean;\n /** The day count of the stopwatch */\n days: number;\n /** The hour count of the stopwatch */\n hours: number;\n /** The minute count of the stopwatch */\n minutes: number;\n /** The second count of the stopwatch */\n seconds: number;\n /** The total count of the stopwatch */\n count: number;\n /** The function to pause the stopwatch */\n pause: () => void;\n /** The function to start the stopwatch */\n start: () => void;\n /** The function to reset the stopwatch */\n reset: () => void;\n /** The function to toggle the stopwatch */\n toggle: () => void;\n}\n\n/** The use stopwatch options */\nexport interface UseStopwatchOptions {\n /** The enabled state of the timer */\n enabled?: boolean;\n}\n\ntype UseStopwatch = {\n (initialTime?: number, options?: UseStopwatchOptions): UseStopwatchReturn;\n (options?: UseStopwatchOptions & { initialTime?: number }): UseStopwatchReturn;\n};\n/**\n * @name useStopwatch\n * @description - Hook that creates a stopwatch functionality\n *\n * @overload\n * @param {number} [initialTime=0] The initial time of the timer\n * @param {boolean} [options.enabled=true] The enabled state of the timer\n * @returns {UseStopwatchReturn} An object containing the current time and functions to interact with the timer\n *\n * @example\n * const { seconds, minutes, start, pause, reset } = useStopwatch(1000, { enabled: false });\n *\n * @overload\n * @param {number} [options.initialTime=0] -The initial time of the timer\n * @param {boolean} [options.enabled=true] The enabled state of the timer\n * @returns {UseStopwatchReturn} An object containing the current time and functions to interact with the timer\n *\n * @example\n * const { seconds, minutes, start, pause, reset } = useStopwatch({ initialTime: 1000, enabled: false });\n */\nexport const useStopwatch = ((...params: any[]) => {\n const initialTime =\n (typeof params[0] === 'number'\n ? (params[0] as number | undefined)\n : (params[0] as UseStopwatchOptions & { initialTime?: number })?.initialTime) ?? 0;\n\n const options =\n typeof params[0] === 'number'\n ? (params[1] as UseStopwatchOptions | undefined)\n : (params[0] as (UseStopwatchOptions & { initialTime?: number }) | undefined);\n\n const [time, setTime] = useState(getStopwatchTime(initialTime));\n const [paused, setPaused] = useState(!options?.enabled);\n\n const onInterval = useEvent(() => {\n const updatedCount = time.count + 1;\n\n if (updatedCount % 60 === 0) {\n return setTime({\n ...time,\n minutes: time.minutes + 1,\n seconds: 0,\n count: updatedCount\n });\n }\n\n if (updatedCount % (60 * 60) === 0) {\n return setTime({\n ...time,\n hours: time.hours + 1,\n minutes: 0,\n seconds: 0,\n count: updatedCount\n });\n }\n\n if (updatedCount % (60 * 60 * 24) === 0) {\n return setTime({\n ...time,\n days: time.days + 1,\n hours: 0,\n minutes: 0,\n seconds: 0,\n count: updatedCount\n });\n }\n\n setTime({\n ...time,\n seconds: time.seconds + 1,\n count: updatedCount\n });\n });\n\n useEffect(() => {\n if (paused) return;\n const interval = setInterval(() => onInterval(), 1000);\n return () => clearInterval(interval);\n }, [paused]);\n\n return {\n ...time,\n paused,\n pause: () => setPaused(true),\n start: () => setPaused(false),\n reset: () => setTime(getStopwatchTime(initialTime)),\n toggle: () => setPaused((prevPause) => !prevPause)\n };\n}) as UseStopwatch;\n"],"names":["getStopwatchTime","time","days","Math","floor","hours","minutes","seconds","count","_ref","_params$","_len","arguments","length","params","Array","_key","initialTime","options","_useState","useState","_useState2","_slicedToArray","setTime","_useState3","enabled","_useState4","paused","setPaused","onInterval","useEvent","updatedCount","_objectSpread","_objectSpread2","useEffect","interval","setInterval","clearInterval","pause","start","reset","toggle","prevPause"],"mappings":";yOAIA,IAAMA,EAAmB,SAACC,GACxB,OAAKA,EAcE,CAAEC,KALIC,KAAKC,MAAMH,EAAO,OAKhBI,MAJDF,KAAKC,MAAOH,EAAO,MAAS,MAIpBK,QAHNH,KAAKC,MAAOH,EAAO,KAAQ,IAGZM,QAFfJ,KAAKC,MAAMH,EAAO,IAEMO,MAAOP,GAbtC,CACLC,KAAM,EACNG,MAAO,EACPC,QAAS,EACTC,QAAS,EACTC,MAAO,EASb,uBA0D6B,WAAsB,IAAA,IAAAC,EAAAC,EAAAC,EAAAC,UAAAC,OAAlBC,EAAMC,IAAAA,MAAAJ,GAAAK,EAAA,EAAAA,EAAAL,EAAAK,IAANF,EAAME,GAAAJ,UAAAI,GACrC,IAAMC,EAG0ER,QAH/DA,EACO,iBAAdK,EAAO,GACVA,EAAO,WAAEJ,EACTI,EAAO,UAAE,IAAAJ,OAAA,EAAVA,EAA+DO,mBAAWR,IAAAA,EAAAA,EAAK,EAE/ES,EACiB,iBAAdJ,EAAO,GACTA,EAAO,GACPA,EAAO,GAEdK,EAAwBC,EAAAA,SAASpB,EAAiBiB,IAAaI,EAAAC,EAAAA,eAAAH,EAAA,GAAxDlB,EAAIoB,EAAA,GAAEE,EAAOF,EAAA,GACpBG,EAA4BJ,aAAUF,SAAAA,EAASO,UAAQC,EAAAJ,EAAAA,eAAAE,EAAA,GAAhDG,EAAMD,EAAA,GAAEE,EAASF,EAAA,GAElBG,EAAaC,EAAAA,UAAS,WAC1B,IAAMC,EAAe9B,EAAKO,MAAQ,EAElC,OAAIuB,EAAe,IAAO,EACjBR,EAAOS,EAAAA,eAAAA,EAAAA,kBACT/B,GAAI,GAAA,CACPK,QAASL,EAAKK,QAAU,EACxBC,QAAS,EACTC,MAAOuB,KAIPA,EAAgB,MAAa,EACxBR,EAAOS,EAAAA,eAAAA,EAAAA,kBACT/B,GAAI,GAAA,CACPI,MAAOJ,EAAKI,MAAQ,EACpBC,QAAS,EACTC,QAAS,EACTC,MAAOuB,KAIPA,EAAY,OAAsB,EAC7BR,EAAOS,EAAAA,eAAAA,EAAAA,kBACT/B,GAAI,GAAA,CACPC,KAAMD,EAAKC,KAAO,EAClBG,MAAO,EACPC,QAAS,EACTC,QAAS,EACTC,MAAOuB,UAIXR,EAAOS,EAAAC,eAAAD,EAAAC,kBACFhC,GAAI,CAAA,EAAA,CACPM,QAASN,EAAKM,QAAU,EACxBC,MAAOuB,IAEX,IAQA,OANAG,EAAAA,WAAU,WACR,IAAIP,EAAJ,CACA,IAAMQ,EAAWC,aAAY,WAAA,OAAMP,GAAY,GAAE,KACjD,OAAO,WAAA,OAAMQ,cAAcF,EAAS,CAFxB,CAGd,GAAG,CAACR,IAEJK,EAAAC,eAAAD,EAAAC,eAAA,CAAA,EACKhC,GAAI,CAAA,EAAA,CACP0B,OAAAA,EACAW,MAAO,WAAA,OAAMV,GAAU,EAAK,EAC5BW,MAAO,WAAA,OAAMX,GAAU,EAAM,EAC7BY,MAAO,WAAA,OAAMjB,EAAQvB,EAAiBiB,GAAa,EACnDwB,OAAQ,WAAA,OAAMb,GAAU,SAACc,GAAS,OAAMA,IAAU,GAEtD"}
@@ -1,3 +1,3 @@
1
- /* @license @siberiacancode/reactuse v0.0.44 */
2
- "use strict";var e=require("../../_rollupPluginBabelHelpers-Bx9oEugz.js"),t=require("react"),n=require("../../utils/helpers/isClient.js"),r=require("../useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.js"),i=function(e){return window.dispatchEvent(new StorageEvent("storage",e))},o=function(e,t,n){var r=e.getItem(t);e.setItem(t,n),i({key:t,oldValue:r,newValue:n,storageArea:e})},u=function(e,t){var n=e.getItem(t);e.removeItem(t),i({key:t,oldValue:n,newValue:null,storageArea:e})},a=function(e,t){var n=e.getItem(t);if(n)return n},s=function(e){return window.addEventListener("storage",e),function(){return window.removeEventListener("storage",e)}},l=function(){};exports.dispatchStorageEvent=i,exports.useStorage=function(i,c){var f,d="object"===e._typeof(c)?c:void 0,v=d?null==d?void 0:d.initialValue:c,g=null!==(f=null==d?void 0:d.storage)&&void 0!==f?f:window.localStorage,p=function(e){return null!=d&&d.serializer?d.serializer(e):JSON.stringify(e)},w=t.useSyncExternalStore(s,(function(){return a(g,i)}),l),m=function(e){if(null===e)return u(g,i);o(g,i,p(e))};r.useIsomorphicLayoutEffect((function(){(void 0===a(g,i)||v)&&o(g,i,p(v instanceof Function?v():v))}),[i]);var y=function(){return u(g,i)};return n.isClient?[w?function(e){if(null!=d&&d.deserializer)return d.deserializer(e);if("undefined"!==e)try{return JSON.parse(e)}catch(t){return e}}(w):void 0,m,y]:[v instanceof Function?v():v,m,y]};
1
+ /* @license @siberiacancode/reactuse v0.0.46 */
2
+ "use strict";var e=require("../../_rollupPluginBabelHelpers-CFMEkg0G.js"),t=require("react"),n=require("../../utils/helpers/isClient.js"),r=require("../useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.js"),i=function(e){return window.dispatchEvent(new StorageEvent("storage",e))},o=function(e,t,n){var r=e.getItem(t);e.setItem(t,n),i({key:t,oldValue:r,newValue:n,storageArea:e})},u=function(e,t){var n=e.getItem(t);e.removeItem(t),i({key:t,oldValue:n,newValue:null,storageArea:e})},a=function(e,t){var n=e.getItem(t);if(n)return n},s=function(e){return window.addEventListener("storage",e),function(){return window.removeEventListener("storage",e)}},l=function(){};exports.dispatchStorageEvent=i,exports.useStorage=function(i,c){var f,d="object"===e._typeof(c)?c:void 0,v=d?null==d?void 0:d.initialValue:c,g=null!==(f=null==d?void 0:d.storage)&&void 0!==f?f:window.localStorage,p=function(e){return null!=d&&d.serializer?d.serializer(e):JSON.stringify(e)},w=t.useSyncExternalStore(s,(function(){return a(g,i)}),l),m=function(e){if(null===e)return u(g,i);o(g,i,p(e))};r.useIsomorphicLayoutEffect((function(){(void 0===a(g,i)||v)&&o(g,i,p(v instanceof Function?v():v))}),[i]);var y=function(){return u(g,i)};return n.isClient?[w?function(e){if(null!=d&&d.deserializer)return d.deserializer(e);if("undefined"!==e)try{return JSON.parse(e)}catch(t){return e}}(w):void 0,m,y]:[v instanceof Function?v():v,m,y]};
3
3
  //# sourceMappingURL=useStorage.js.map
@@ -1,3 +1,3 @@
1
- /* @license @siberiacancode/reactuse v0.0.44 */
2
- "use strict";var e=require("../../_rollupPluginBabelHelpers-Bx9oEugz.js"),n=require("react"),t=require("../../utils/helpers/isClient.js"),r=require("../useRerender/useRerender.js"),u=function(e){var n,t=null!==(n=e.rangeCount)&&void 0!==n?n:0;return Array.from({length:t},(function(n,t){return e.getRangeAt(t)}))};exports.getRangesSelection=u,exports.useTextSelection=function(){var i,o=r.useRerender(),l=n.useState(t.isClient?document.getSelection():null),s=e._slicedToArray(l,2),c=s[0],a=s[1];n.useEffect((function(){var e=function(){a(document.getSelection()),o.update()};return document.addEventListener("selectionchange",e),function(){return document.removeEventListener("selectionchange",e)}}),[]);var d=null!==(i=null==c?void 0:c.toString())&&void 0!==i?i:"",g=c?u(c):[],v=g.map((function(e){return e.getBoundingClientRect()}));return{text:d,ranges:g,rects:v,selection:c}};
1
+ /* @license @siberiacancode/reactuse v0.0.46 */
2
+ "use strict";var e=require("../../_rollupPluginBabelHelpers-CFMEkg0G.js"),n=require("react"),t=require("../../utils/helpers/isClient.js"),r=require("../useRerender/useRerender.js"),u=function(e){var n,t=null!==(n=e.rangeCount)&&void 0!==n?n:0;return Array.from({length:t},(function(n,t){return e.getRangeAt(t)}))};exports.getRangesSelection=u,exports.useTextSelection=function(){var i,o=r.useRerender(),l=n.useState(t.isClient?document.getSelection():null),s=e._slicedToArray(l,2),c=s[0],a=s[1];n.useEffect((function(){var e=function(){a(document.getSelection()),o.update()};return document.addEventListener("selectionchange",e),function(){return document.removeEventListener("selectionchange",e)}}),[]);var d=null!==(i=null==c?void 0:c.toString())&&void 0!==i?i:"",g=c?u(c):[],v=g.map((function(e){return e.getBoundingClientRect()}));return{text:d,ranges:g,rects:v,selection:c}};
3
3
  //# sourceMappingURL=useTextSelection.js.map
@@ -1,3 +1,3 @@
1
- /* @license @siberiacancode/reactuse v0.0.44 */
2
- "use strict";var e=require("../../_rollupPluginBabelHelpers-Bx9oEugz.js"),r=require("react");require("../../utils/helpers/isClient.js");var t=require("../../utils/helpers/time/getDate.js"),s=require("../useInterval/useInterval.js");require("../useEvent/useEvent.js"),require("../useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.js");exports.useTime=function(){var u=r.useState(t.getDate()),i=e._slicedToArray(u,2),a=i[0],l=i[1];return s.useInterval((function(){return l(t.getDate())}),1e3),a};
1
+ /* @license @siberiacancode/reactuse v0.0.46 */
2
+ "use strict";var e=require("../../_rollupPluginBabelHelpers-CFMEkg0G.js"),r=require("react");require("../../utils/helpers/isClient.js");var t=require("../../utils/helpers/time/getDate.js"),s=require("../useInterval/useInterval.js");require("../useEvent/useEvent.js");exports.useTime=function(){var u=r.useState(t.getDate()),i=e._slicedToArray(u,2),l=i[0],a=i[1];return s.useInterval((function(){return a(t.getDate())}),1e3),l};
3
3
  //# sourceMappingURL=useTime.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useTime.js","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 seconds: number;\n minutes: number;\n hours: number;\n meridiemHours: { value: number; type: string };\n day: number;\n month: number;\n year: number;\n timestamp: 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":["_useState","useState","getDate","_useState2","_slicedToArray","time","setTime","useInterval"],"mappings":";gWA2BuB,WACrB,IAAAA,EAAwBC,WAASC,EAAAA,WAAUC,EAAAC,EAAAA,eAAAJ,EAAA,GAApCK,EAAIF,EAAA,GAAEG,EAAOH,EAAA,GAEpB,OADAI,EAAAA,aAAY,WAAA,OAAMD,EAAQJ,EAAOA,UAAG,GAAE,KAC/BG,CACT"}
1
+ {"version":3,"file":"useTime.js","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 seconds: number;\n minutes: number;\n hours: number;\n meridiemHours: { value: number; type: string };\n day: number;\n month: number;\n year: number;\n timestamp: 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":["_useState","useState","getDate","_useState2","_slicedToArray","time","setTime","useInterval"],"mappings":";2RA2BuB,WACrB,IAAAA,EAAwBC,WAASC,EAAAA,WAAUC,EAAAC,EAAAA,eAAAJ,EAAA,GAApCK,EAAIF,EAAA,GAAEG,EAAOH,EAAA,GAEpB,OADAI,EAAAA,aAAY,WAAA,OAAMD,EAAQJ,EAAOA,UAAG,GAAE,KAC/BG,CACT"}
@@ -1,3 +1,3 @@
1
- /* @license @siberiacancode/reactuse v0.0.44 */
2
- "use strict";var e=require("../../_rollupPluginBabelHelpers-Bx9oEugz.js"),r=require("react"),u=require("../useEvent/useEvent.js");require("../useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.js"),require("../../utils/helpers/isClient.js"),exports.useTimeout=function(t,s){var i=r.useState(!1),n=e._slicedToArray(i,2),c=n[0],o=n[1],a=r.useRef(),f=u.useEvent(t);return r.useEffect((function(){return a.current=setTimeout((function(){f(),o(!0)}),s),function(){clearTimeout(a.current)}}),[s]),{ready:c,clear:function(){clearTimeout(a.current),o(!0)}}};
1
+ /* @license @siberiacancode/reactuse v0.0.46 */
2
+ "use strict";var e=require("../../_rollupPluginBabelHelpers-CFMEkg0G.js"),r=require("react"),u=require("../useEvent/useEvent.js");exports.useTimeout=function(t,n){var c=r.useState(!1),i=e._slicedToArray(c,2),s=i[0],o=i[1],a=r.useRef(),l=u.useEvent(t);return r.useEffect((function(){return a.current=setTimeout((function(){l(),o(!0)}),n),function(){clearTimeout(a.current)}}),[n]),{ready:s,clear:function(){clearTimeout(a.current),o(!0)}}};
3
3
  //# sourceMappingURL=useTimeout.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useTimeout.js","sources":["../../../../src/hooks/useTimeout/useTimeout.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\n\nimport { useEvent } from '../useEvent/useEvent';\n\n/** The use timeout return type */\ninterface UseTimeoutReturn {\n /** Timeout is ready state value */\n ready: boolean;\n /** Function to clear timeout */\n clear: () => void;\n}\n\n/**\n * @name useTimeout\n * @description - Hook that executes a callback function after a specified delay\n * @category Time\n *\n * @param {() => void} callback The function to be executed after the timeout\n * @param {number} delay The delay in milliseconds before the timeout executes the callback function\n * @returns {UseTimeoutReturn} An object with a `ready` boolean state value and a `clear` function to clear timeout\n *\n * @example\n * const { clear, ready } = useTimeout(() => {}, 5000);\n */\nexport function useTimeout(callback: () => void, delay: number): UseTimeoutReturn {\n const [ready, setReady] = useState(false);\n\n const timeoutIdRef = useRef<ReturnType<typeof setTimeout>>();\n const internalCallback = useEvent(callback);\n\n useEffect(() => {\n timeoutIdRef.current = setTimeout(() => {\n internalCallback();\n setReady(true);\n }, delay);\n\n return () => {\n clearTimeout(timeoutIdRef.current);\n };\n }, [delay]);\n\n const clear = () => {\n clearTimeout(timeoutIdRef.current);\n setReady(true);\n };\n\n return { ready, clear };\n}\n"],"names":["callback","delay","_useState","useState","_useState2","_slicedToArray","ready","setReady","timeoutIdRef","useRef","internalCallback","useEvent","useEffect","current","setTimeout","clearTimeout","clear"],"mappings":";qQAwBO,SAAoBA,EAAsBC,GAC/C,IAAAC,EAA0BC,EAAQA,UAAC,GAAMC,EAAAC,EAAAA,eAAAH,EAAA,GAAlCI,EAAKF,EAAA,GAAEG,EAAQH,EAAA,GAEhBI,EAAeC,EAAAA,SACfC,EAAmBC,WAASX,GAkBlC,OAhBAY,EAAAA,WAAU,WAMR,OALAJ,EAAaK,QAAUC,YAAW,WAChCJ,IACAH,GAAS,EACV,GAAEN,GAEI,WACLc,aAAaP,EAAaK,SAE9B,GAAG,CAACZ,IAOG,CAAEK,MAAAA,EAAOU,MALF,WACZD,aAAaP,EAAaK,SAC1BN,GAAS,IAIb"}
1
+ {"version":3,"file":"useTimeout.js","sources":["../../../../src/hooks/useTimeout/useTimeout.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\n\nimport { useEvent } from '../useEvent/useEvent';\n\n/** The use timeout return type */\ninterface UseTimeoutReturn {\n /** Timeout is ready state value */\n ready: boolean;\n /** Function to clear timeout */\n clear: () => void;\n}\n\n/**\n * @name useTimeout\n * @description - Hook that executes a callback function after a specified delay\n * @category Time\n *\n * @param {() => void} callback The function to be executed after the timeout\n * @param {number} delay The delay in milliseconds before the timeout executes the callback function\n * @returns {UseTimeoutReturn} An object with a `ready` boolean state value and a `clear` function to clear timeout\n *\n * @example\n * const { clear, ready } = useTimeout(() => {}, 5000);\n */\nexport function useTimeout(callback: () => void, delay: number): UseTimeoutReturn {\n const [ready, setReady] = useState(false);\n\n const timeoutIdRef = useRef<ReturnType<typeof setTimeout>>();\n const internalCallback = useEvent(callback);\n\n useEffect(() => {\n timeoutIdRef.current = setTimeout(() => {\n internalCallback();\n setReady(true);\n }, delay);\n\n return () => {\n clearTimeout(timeoutIdRef.current);\n };\n }, [delay]);\n\n const clear = () => {\n clearTimeout(timeoutIdRef.current);\n setReady(true);\n };\n\n return { ready, clear };\n}\n"],"names":["callback","delay","_useState","useState","_useState2","_slicedToArray","ready","setReady","timeoutIdRef","useRef","internalCallback","useEvent","useEffect","current","setTimeout","clearTimeout","clear"],"mappings":";qJAwBO,SAAoBA,EAAsBC,GAC/C,IAAAC,EAA0BC,EAAQA,UAAC,GAAMC,EAAAC,EAAAA,eAAAH,EAAA,GAAlCI,EAAKF,EAAA,GAAEG,EAAQH,EAAA,GAEhBI,EAAeC,EAAAA,SACfC,EAAmBC,WAASX,GAkBlC,OAhBAY,EAAAA,WAAU,WAMR,OALAJ,EAAaK,QAAUC,YAAW,WAChCJ,IACAH,GAAS,EACV,GAAEN,GAEI,WACLc,aAAaP,EAAaK,SAE9B,GAAG,CAACZ,IAOG,CAAEK,MAAAA,EAAOU,MALF,WACZD,aAAaP,EAAaK,SAC1BN,GAAS,IAIb"}
@@ -1,3 +1,3 @@
1
- /* @license @siberiacancode/reactuse v0.0.44 */
2
- "use strict";var e=require("../../_rollupPluginBabelHelpers-Bx9oEugz.js"),r=require("react");exports.useToggle=function(){var i=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[!1,!0],n=r.useReducer((function(e,r){var i=r instanceof Function?r(e[0]):r,n=Math.abs(e.indexOf(i));return e.slice(n).concat(e.slice(0,n))}),i),c=e._slicedToArray(n,2);return[e._slicedToArray(c[0],1)[0],c[1]]};
1
+ /* @license @siberiacancode/reactuse v0.0.46 */
2
+ "use strict";var e=require("../../_rollupPluginBabelHelpers-CFMEkg0G.js"),r=require("react");exports.useToggle=function(){var i=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[!1,!0],n=r.useReducer((function(e,r){var i=r instanceof Function?r(e[0]):r,n=Math.abs(e.indexOf(i));return e.slice(n).concat(e.slice(0,n))}),i),c=e._slicedToArray(n,2);return[e._slicedToArray(c[0],1)[0],c[1]]};
3
3
  //# sourceMappingURL=useToggle.js.map
@@ -1,3 +1,3 @@
1
- /* @license @siberiacancode/reactuse v0.0.44 */
1
+ /* @license @siberiacancode/reactuse v0.0.46 */
2
2
  "use strict";var e=require("react");exports.useUnmount=function(r){var t=e.useRef(r);t.current=r,e.useEffect((function(){return function(){t.current()}}),[])};
3
3
  //# sourceMappingURL=useUnmount.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useUnmount.js","sources":["../../../../src/hooks/useUnmount/useUnmount.ts"],"sourcesContent":["import { useEffect, useRef } from 'react';\n\n/**\n * @name useUnmount\n * @description - Hook that defines the logic when unmounting a component\n * @category Lifecycle\n *\n * @param {() => void} callback The callback function to be invoked on component unmount\n * @returns {void}\n *\n * @example\n * useUnmount(() => console.log('This effect runs on component unmount'));\n */\n\nexport const useUnmount = (callback: () => void) => {\n const callbackRef = useRef(callback);\n callbackRef.current = callback;\n\n useEffect(\n () => () => {\n callbackRef.current();\n },\n []\n );\n};\n"],"names":["callback","callbackRef","useRef","current","useEffect"],"mappings":";uDAc0B,SAACA,GACzB,IAAMC,EAAcC,SAAOF,GAC3BC,EAAYE,QAAUH,EAEtBI,EAAAA,WACE,WAAA,OAAM,WACJH,EAAYE,UACb,GACD,GAEJ"}
1
+ {"version":3,"file":"useUnmount.js","sources":["../../../../src/hooks/useUnmount/useUnmount.ts"],"sourcesContent":["import { useEffect, useRef } from 'react';\n\n/**\n * @name useUnmount\n * @description - Hook that defines the logic when unmounting a component\n * @category Lifecycle\n *\n * @param {() => void} callback The callback function to be invoked on component unmount\n * @returns {void}\n *\n * @example\n * useUnmount(() => console.log('This effect runs on component unmount'));\n */\n\nexport const useUnmount = (callback: () => void) => {\n const internalCallbackRef = useRef(callback);\n internalCallbackRef.current = callback;\n\n useEffect(\n () => () => {\n internalCallbackRef.current();\n },\n []\n );\n};\n"],"names":["callback","internalCallbackRef","useRef","current","useEffect"],"mappings":";uDAc0B,SAACA,GACzB,IAAMC,EAAsBC,SAAOF,GACnCC,EAAoBE,QAAUH,EAE9BI,EAAAA,WACE,WAAA,OAAM,WACJH,EAAoBE,UACrB,GACD,GAEJ"}
@@ -1,3 +1,3 @@
1
- /* @license @siberiacancode/reactuse v0.0.44 */
2
- "use strict";var e=require("../../_rollupPluginBabelHelpers-Bx9oEugz.js"),n=require("react"),r=require("../../utils/helpers/getRetry.js");require("../../utils/helpers/isClient.js");var t=require("../useEvent/useEvent.js");require("../useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.js");exports.useWebSocket=function(u,o){var c=n.useRef(),l=n.useRef(null!=o&&o.retry?r.getRetry(o.retry):0),i=n.useRef(!1),s=n.useState("connecting"),a=e._slicedToArray(s,2),f=a[0],v=a[1],d=t.useEvent((function(){c.current=new WebSocket("function"==typeof u?u():u,null==o?void 0:o.protocols),v("connecting");var e=c.current;e&&(e.onopen=function(){var n;v("connected"),null==o||null===(n=o.onConnected)||void 0===n||n.call(o,e)},e.onerror=function(n){var r;v("failed"),null==o||null===(r=o.onError)||void 0===r||r.call(o,n,e)},e.onmessage=function(n){var r;return null==o||null===(r=o.onMessage)||void 0===r?void 0:r.call(o,n,e)},e.onclose=function(n){var t;if(v("disconnected"),null==o||null===(t=o.onDisconnected)||void 0===t||t.call(o,n,e),!i.current)return l.current>0?(l.current-=1,d()):void(l.current=null!=o&&o.retry?r.getRetry(o.retry):0)})}));n.useEffect((function(){return d(),function(){c.current&&(c.current.close(),c.current=void 0)}}),[u]);return{client:c.current,close:function(){var e;i.current=!0,null===(e=c.current)||void 0===e||e.close()},open:function(){i.current=!1,d()},send:function(e){var n;return null===(n=c.current)||void 0===n?void 0:n.send(e)},status:f}};
1
+ /* @license @siberiacancode/reactuse v0.0.46 */
2
+ "use strict";var e=require("../../_rollupPluginBabelHelpers-CFMEkg0G.js"),n=require("react"),r=require("../../utils/helpers/getRetry.js");require("../../utils/helpers/isClient.js");var t=require("../useEvent/useEvent.js");exports.useWebSocket=function(u,o){var c=n.useRef(),l=n.useRef(null!=o&&o.retry?r.getRetry(o.retry):0),i=n.useRef(!1),s=n.useState("connecting"),v=e._slicedToArray(s,2),a=v[0],d=v[1],f=t.useEvent((function(){c.current=new WebSocket("function"==typeof u?u():u,null==o?void 0:o.protocols),d("connecting");var e=c.current;e&&(e.onopen=function(){var n;d("connected"),null==o||null===(n=o.onConnected)||void 0===n||n.call(o,e)},e.onerror=function(n){var r;d("failed"),null==o||null===(r=o.onError)||void 0===r||r.call(o,n,e)},e.onmessage=function(n){var r;return null==o||null===(r=o.onMessage)||void 0===r?void 0:r.call(o,n,e)},e.onclose=function(n){var t;if(d("disconnected"),null==o||null===(t=o.onDisconnected)||void 0===t||t.call(o,n,e),!i.current)return l.current>0?(l.current-=1,f()):void(l.current=null!=o&&o.retry?r.getRetry(o.retry):0)})}));n.useEffect((function(){return f(),function(){c.current&&(c.current.close(),c.current=void 0)}}),[u]);return{client:c.current,close:function(){var e;i.current=!0,null===(e=c.current)||void 0===e||e.close()},open:function(){i.current=!1,f()},send:function(e){var n;return null===(n=c.current)||void 0===n?void 0:n.send(e)},status:a}};
3
3
  //# sourceMappingURL=useWebSocket.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useWebSocket.js","sources":["../../../../src/hooks/useWebSocket/useWebSocket.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\n\nimport { getRetry } from '@/utils/helpers';\n\nimport { useEvent } from '../useEvent/useEvent';\n\nexport type UseWebSocketUrl = string | (() => string);\n\nexport interface UseWebSocketOptions {\n onConnected?: (webSocket: WebSocket) => void;\n onDisconnected?: (event: CloseEvent, webSocket: WebSocket) => void;\n onError?: (event: Event, webSocket: WebSocket) => void;\n onMessage?: (event: MessageEvent, webSocket: WebSocket) => void;\n retry?: boolean | number;\n protocols?: Array<'soap' | 'wasm'>;\n}\n\nexport type UseWebSocketStatus = 'connecting' | 'failed' | 'connected' | 'disconnected';\n\nexport interface UseWebSocketReturn {\n status: UseWebSocketStatus;\n close: WebSocket['close'];\n send: WebSocket['send'];\n open: () => void;\n client?: WebSocket;\n}\n\n/**\n * @name useWebSocket\n * @description - Hook that connects to a WebSocket server and handles incoming and outgoing messages\n * @category Network\n *\n * @param {UseWebSocketUrl} url The URL of the WebSocket server\n * @param {(webSocket: WebSocket) => void} [options.onConnected] The callback function that is called when the WebSocket connection is established\n * @param {(event: CloseEvent, webSocket: WebSocket) => void} [options.onDisconnected] The callback function that is called when the WebSocket connection is closed\n * @param {(event: Event, webSocket: WebSocket) => void} [options.onError] The callback function that is called when an error occurs\n * @param {(event: MessageEvent, webSocket: WebSocket) => void} [options.onMessage] The callback function that is called when a message is received\n * @param {boolean | number} [options.retry] The number of times to retry the connection\n * @param {Array<'soap' | 'wasm'>} [options.protocols] The list of protocols to use\n * @returns {UseWebSocketReturn} An object with the status, close, send, open, and ws properties\n *\n * @example\n * const { status, close, send, open, client } = useWebSocket('url');\n */\nexport const useWebSocket = (\n url: UseWebSocketUrl,\n options?: UseWebSocketOptions\n): UseWebSocketReturn => {\n const webSocketRef = useRef<WebSocket>();\n const retryCountRef = useRef(options?.retry ? getRetry(options.retry) : 0);\n const explicityCloseRef = useRef(false);\n\n const [status, setStatus] = useState<UseWebSocketStatus>('connecting');\n\n const send = (data: string | Blob | ArrayBufferLike | ArrayBufferView) =>\n webSocketRef.current?.send(data);\n\n const close = () => {\n explicityCloseRef.current = true;\n webSocketRef.current?.close();\n };\n\n const init = useEvent(() => {\n webSocketRef.current = new WebSocket(\n typeof url === 'function' ? url() : url,\n options?.protocols\n );\n setStatus('connecting');\n\n const webSocket = webSocketRef.current;\n if (!webSocket) return;\n\n webSocket.onopen = () => {\n setStatus('connected');\n options?.onConnected?.(webSocket);\n };\n\n webSocket.onerror = (event) => {\n setStatus('failed');\n options?.onError?.(event, webSocket);\n };\n\n webSocket.onmessage = (event) => options?.onMessage?.(event, webSocket);\n\n webSocket.onclose = (event) => {\n setStatus('disconnected');\n options?.onDisconnected?.(event, webSocket);\n if (explicityCloseRef.current) return;\n\n if (retryCountRef.current > 0) {\n retryCountRef.current -= 1;\n return init();\n }\n retryCountRef.current = options?.retry ? getRetry(options.retry) : 0;\n };\n });\n\n useEffect(() => {\n init();\n\n return () => {\n if (!webSocketRef.current) return;\n webSocketRef.current.close();\n webSocketRef.current = undefined;\n };\n }, [url]);\n\n const open = () => {\n explicityCloseRef.current = false;\n init();\n };\n\n return { client: webSocketRef.current, close, open, send, status };\n};\n"],"names":["url","options","webSocketRef","useRef","retryCountRef","retry","getRetry","explicityCloseRef","_useState","useState","_useState2","_slicedToArray","status","setStatus","init","useEvent","current","WebSocket","protocols","webSocket","onopen","_options$onConnected","onConnected","call","onerror","event","_options$onError","onError","onmessage","_options$onMessage","onMessage","onclose","_options$onDisconnect","onDisconnected","useEffect","close","undefined","client","_webSocketRef$current2","open","send","data","_webSocketRef$current"],"mappings":";wTA4C4B,SAC1BA,EACAC,GAEA,IAAMC,EAAeC,EAAAA,SACfC,EAAgBD,EAAMA,OAACF,SAAAA,EAASI,MAAQC,EAAAA,SAASL,EAAQI,OAAS,GAClEE,EAAoBJ,UAAO,GAEjCK,EAA4BC,EAAQA,SAAqB,cAAaC,EAAAC,EAAAA,eAAAH,EAAA,GAA/DI,EAAMF,EAAA,GAAEG,EAASH,EAAA,GAUlBI,EAAOC,EAAAA,UAAS,WACpBb,EAAac,QAAU,IAAIC,UACV,mBAARjB,EAAqBA,IAAQA,EACpCC,aAAAA,EAAAA,EAASiB,WAEXL,EAAU,cAEV,IAAMM,EAAYjB,EAAac,QAC1BG,IAELA,EAAUC,OAAS,WAAM,IAAAC,EACvBR,EAAU,aACVZ,SAAoB,QAAboB,EAAPpB,EAASqB,mBAAW,IAAAD,GAApBA,EAAAE,KAAAtB,EAAuBkB,IAGzBA,EAAUK,QAAU,SAACC,GAAU,IAAAC,EAC7Bb,EAAU,UACVZ,SAAgByB,QAATA,EAAPzB,EAAS0B,mBAAOD,GAAhBA,EAAAH,KAAAtB,EAAmBwB,EAAON,IAG5BA,EAAUS,UAAY,SAACH,GAAK,IAAAI,EAAA,OAAK5B,SAAkB,QAAX4B,EAAP5B,EAAS6B,iBAATD,IAAkBA,OAAlBA,EAAAA,EAAAN,KAAAtB,EAAqBwB,EAAON,EAAU,EAEvEA,EAAUY,QAAU,SAACN,GAAU,IAAAO,EAG7B,GAFAnB,EAAU,gBACVZ,SAAuB+B,QAAhBA,EAAP/B,EAASgC,0BAAcD,GAAvBA,EAAAT,KAAAtB,EAA0BwB,EAAON,IAC7BZ,EAAkBS,QAEtB,OAAIZ,EAAcY,QAAU,GAC1BZ,EAAcY,SAAW,EAClBF,UAETV,EAAcY,QAAUf,SAAAA,EAASI,MAAQC,EAAQA,SAACL,EAAQI,OAAS,IAEvE,IAEA6B,EAAAA,WAAU,WAGR,OAFApB,IAEO,WACAZ,EAAac,UAClBd,EAAac,QAAQmB,QACrBjC,EAAac,aAAUoB,GAE3B,GAAG,CAACpC,IAOJ,MAAO,CAAEqC,OAAQnC,EAAac,QAASmB,MAvDzB,WAAM,IAAAG,EAClB/B,EAAkBS,SAAU,EACR,QAApBsB,EAAApC,EAAac,eAAO,IAAAsB,GAApBA,EAAsBH,SAqDsBI,KALjC,WACXhC,EAAkBS,SAAU,EAC5BF,KAGkD0B,KA1DvC,SAACC,GAAuD,IAAAC,EAAA,OAC/C,QAD+CA,EACnExC,EAAac,eAAO,IAAA0B,OAAA,EAApBA,EAAsBF,KAAKC,EAAK,EAyDwB7B,OAAAA,EAC5D"}
1
+ {"version":3,"file":"useWebSocket.js","sources":["../../../../src/hooks/useWebSocket/useWebSocket.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\n\nimport { getRetry } from '@/utils/helpers';\n\nimport { useEvent } from '../useEvent/useEvent';\n\nexport type UseWebSocketUrl = string | (() => string);\n\nexport interface UseWebSocketOptions {\n onConnected?: (webSocket: WebSocket) => void;\n onDisconnected?: (event: CloseEvent, webSocket: WebSocket) => void;\n onError?: (event: Event, webSocket: WebSocket) => void;\n onMessage?: (event: MessageEvent, webSocket: WebSocket) => void;\n retry?: boolean | number;\n protocols?: Array<'soap' | 'wasm'>;\n}\n\nexport type UseWebSocketStatus = 'connecting' | 'failed' | 'connected' | 'disconnected';\n\nexport interface UseWebSocketReturn {\n status: UseWebSocketStatus;\n close: WebSocket['close'];\n send: WebSocket['send'];\n open: () => void;\n client?: WebSocket;\n}\n\n/**\n * @name useWebSocket\n * @description - Hook that connects to a WebSocket server and handles incoming and outgoing messages\n * @category Network\n *\n * @param {UseWebSocketUrl} url The URL of the WebSocket server\n * @param {(webSocket: WebSocket) => void} [options.onConnected] The callback function that is called when the WebSocket connection is established\n * @param {(event: CloseEvent, webSocket: WebSocket) => void} [options.onDisconnected] The callback function that is called when the WebSocket connection is closed\n * @param {(event: Event, webSocket: WebSocket) => void} [options.onError] The callback function that is called when an error occurs\n * @param {(event: MessageEvent, webSocket: WebSocket) => void} [options.onMessage] The callback function that is called when a message is received\n * @param {boolean | number} [options.retry] The number of times to retry the connection\n * @param {Array<'soap' | 'wasm'>} [options.protocols] The list of protocols to use\n * @returns {UseWebSocketReturn} An object with the status, close, send, open, and ws properties\n *\n * @example\n * const { status, close, send, open, client } = useWebSocket('url');\n */\nexport const useWebSocket = (\n url: UseWebSocketUrl,\n options?: UseWebSocketOptions\n): UseWebSocketReturn => {\n const webSocketRef = useRef<WebSocket>();\n const retryCountRef = useRef(options?.retry ? getRetry(options.retry) : 0);\n const explicityCloseRef = useRef(false);\n\n const [status, setStatus] = useState<UseWebSocketStatus>('connecting');\n\n const send = (data: string | Blob | ArrayBufferLike | ArrayBufferView) =>\n webSocketRef.current?.send(data);\n\n const close = () => {\n explicityCloseRef.current = true;\n webSocketRef.current?.close();\n };\n\n const init = useEvent(() => {\n webSocketRef.current = new WebSocket(\n typeof url === 'function' ? url() : url,\n options?.protocols\n );\n setStatus('connecting');\n\n const webSocket = webSocketRef.current;\n if (!webSocket) return;\n\n webSocket.onopen = () => {\n setStatus('connected');\n options?.onConnected?.(webSocket);\n };\n\n webSocket.onerror = (event) => {\n setStatus('failed');\n options?.onError?.(event, webSocket);\n };\n\n webSocket.onmessage = (event) => options?.onMessage?.(event, webSocket);\n\n webSocket.onclose = (event) => {\n setStatus('disconnected');\n options?.onDisconnected?.(event, webSocket);\n if (explicityCloseRef.current) return;\n\n if (retryCountRef.current > 0) {\n retryCountRef.current -= 1;\n return init();\n }\n retryCountRef.current = options?.retry ? getRetry(options.retry) : 0;\n };\n });\n\n useEffect(() => {\n init();\n\n return () => {\n if (!webSocketRef.current) return;\n webSocketRef.current.close();\n webSocketRef.current = undefined;\n };\n }, [url]);\n\n const open = () => {\n explicityCloseRef.current = false;\n init();\n };\n\n return { client: webSocketRef.current, close, open, send, status };\n};\n"],"names":["url","options","webSocketRef","useRef","retryCountRef","retry","getRetry","explicityCloseRef","_useState","useState","_useState2","_slicedToArray","status","setStatus","init","useEvent","current","WebSocket","protocols","webSocket","onopen","_options$onConnected","onConnected","call","onerror","event","_options$onError","onError","onmessage","_options$onMessage","onMessage","onclose","_options$onDisconnect","onDisconnected","useEffect","close","undefined","client","_webSocketRef$current2","open","send","data","_webSocketRef$current"],"mappings":";mPA4C4B,SAC1BA,EACAC,GAEA,IAAMC,EAAeC,EAAAA,SACfC,EAAgBD,EAAMA,OAACF,SAAAA,EAASI,MAAQC,EAAAA,SAASL,EAAQI,OAAS,GAClEE,EAAoBJ,UAAO,GAEjCK,EAA4BC,EAAQA,SAAqB,cAAaC,EAAAC,EAAAA,eAAAH,EAAA,GAA/DI,EAAMF,EAAA,GAAEG,EAASH,EAAA,GAUlBI,EAAOC,EAAAA,UAAS,WACpBb,EAAac,QAAU,IAAIC,UACV,mBAARjB,EAAqBA,IAAQA,EACpCC,aAAAA,EAAAA,EAASiB,WAEXL,EAAU,cAEV,IAAMM,EAAYjB,EAAac,QAC1BG,IAELA,EAAUC,OAAS,WAAM,IAAAC,EACvBR,EAAU,aACVZ,SAAoB,QAAboB,EAAPpB,EAASqB,mBAAW,IAAAD,GAApBA,EAAAE,KAAAtB,EAAuBkB,IAGzBA,EAAUK,QAAU,SAACC,GAAU,IAAAC,EAC7Bb,EAAU,UACVZ,SAAgByB,QAATA,EAAPzB,EAAS0B,mBAAOD,GAAhBA,EAAAH,KAAAtB,EAAmBwB,EAAON,IAG5BA,EAAUS,UAAY,SAACH,GAAK,IAAAI,EAAA,OAAK5B,SAAkB,QAAX4B,EAAP5B,EAAS6B,iBAATD,IAAkBA,OAAlBA,EAAAA,EAAAN,KAAAtB,EAAqBwB,EAAON,EAAU,EAEvEA,EAAUY,QAAU,SAACN,GAAU,IAAAO,EAG7B,GAFAnB,EAAU,gBACVZ,SAAuB+B,QAAhBA,EAAP/B,EAASgC,0BAAcD,GAAvBA,EAAAT,KAAAtB,EAA0BwB,EAAON,IAC7BZ,EAAkBS,QAEtB,OAAIZ,EAAcY,QAAU,GAC1BZ,EAAcY,SAAW,EAClBF,UAETV,EAAcY,QAAUf,SAAAA,EAASI,MAAQC,EAAQA,SAACL,EAAQI,OAAS,IAEvE,IAEA6B,EAAAA,WAAU,WAGR,OAFApB,IAEO,WACAZ,EAAac,UAClBd,EAAac,QAAQmB,QACrBjC,EAAac,aAAUoB,GAE3B,GAAG,CAACpC,IAOJ,MAAO,CAAEqC,OAAQnC,EAAac,QAASmB,MAvDzB,WAAM,IAAAG,EAClB/B,EAAkBS,SAAU,EACR,QAApBsB,EAAApC,EAAac,eAAO,IAAAsB,GAApBA,EAAsBH,SAqDsBI,KALjC,WACXhC,EAAkBS,SAAU,EAC5BF,KAGkD0B,KA1DvC,SAACC,GAAuD,IAAAC,EAAA,OAC/C,QAD+CA,EACnExC,EAAac,eAAO,IAAA0B,OAAA,EAApBA,EAAsBF,KAAKC,EAAK,EAyDwB7B,OAAAA,EAC5D"}
@@ -1,3 +1,3 @@
1
- /* @license @siberiacancode/reactuse v0.0.44 */
2
- "use strict";var e=require("../useEventListener/useEventListener.js");require("react"),require("../useEvent/useEvent.js"),require("../useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.js"),require("../../utils/helpers/isClient.js");exports.useWindowEvent=function(s,r,t){return e.useEventListener(window,s,r,t)};
1
+ /* @license @siberiacancode/reactuse v0.0.46 */
2
+ "use strict";var e=require("../useEventListener/useEventListener.js");require("react"),require("../useEvent/useEvent.js");exports.useWindowEvent=function(r,t,n){return e.useEventListener(window,r,t,n)};
3
3
  //# sourceMappingURL=useWindowEvent.js.map