@siberiacancode/reactuse 0.0.64 → 0.0.66
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +12 -19
- package/dist/cjs/_rollupPluginBabelHelpers-DA8CS73W.js +3 -0
- package/dist/cjs/_rollupPluginBabelHelpers-DA8CS73W.js.map +1 -0
- package/dist/cjs/hooks/index.js +2 -2
- package/dist/cjs/hooks/useAsync/useAsync.js +2 -2
- package/dist/cjs/hooks/useAsync/useAsync.js.map +1 -1
- package/dist/cjs/hooks/useBattery/useBattery.js +2 -2
- package/dist/cjs/hooks/useBoolean/useBoolean.js +2 -2
- package/dist/cjs/hooks/useBreakpoints/constants/breakpoints.js +1 -1
- package/dist/cjs/hooks/useBreakpoints/useBreakpoints.js +2 -2
- package/dist/cjs/hooks/useBrowserLanguage/useBrowserLanguage.js +1 -1
- package/dist/cjs/hooks/useClickOutside/useClickOutside.js +2 -2
- package/dist/cjs/hooks/useClickOutside/useClickOutside.js.map +1 -1
- package/dist/cjs/hooks/useClipboard/useClipboard.js +2 -2
- package/dist/cjs/hooks/useCounter/useCounter.js +2 -2
- package/dist/cjs/hooks/useCounter/useCounter.js.map +1 -1
- package/dist/cjs/hooks/useCssVar/useCssVar.js +2 -2
- package/dist/cjs/hooks/useDebounceCallback/useDebounceCallback.js +1 -1
- package/dist/cjs/hooks/useDebounceValue/useDebounceValue.js +2 -2
- package/dist/cjs/hooks/useDefault/useDefault.js +2 -2
- package/dist/cjs/hooks/useDeviceMotion/useDeviceMotion.js +3 -0
- package/dist/cjs/hooks/useDeviceMotion/useDeviceMotion.js.map +1 -0
- package/dist/cjs/hooks/useDeviceOrientation/useDeviceOrientation.js +3 -0
- package/dist/cjs/hooks/useDeviceOrientation/useDeviceOrientation.js.map +1 -0
- package/dist/cjs/hooks/useDidUpdate/useDidUpdate.js +1 -1
- package/dist/cjs/hooks/useDisclosure/useDisclosure.js +2 -2
- package/dist/cjs/hooks/useDocumentEvent/useDocumentEvent.js +2 -2
- package/dist/cjs/hooks/useDocumentTitle/useDocumentTitle.js +2 -2
- package/dist/cjs/hooks/useDocumentVisibility/useDocumentVisibility.js +1 -1
- package/dist/cjs/hooks/useEvent/useEvent.js +1 -1
- package/dist/cjs/hooks/useEventListener/useEventListener.js +2 -2
- package/dist/cjs/hooks/useEventListener/useEventListener.js.map +1 -1
- package/dist/cjs/hooks/useEyeDropper/useEyeDropper.js +2 -2
- package/dist/cjs/hooks/useFavicon/useFavicon.js +2 -2
- package/dist/cjs/hooks/useField/useField.js +2 -2
- package/dist/cjs/hooks/useField/useField.js.map +1 -1
- package/dist/cjs/hooks/useFileDialog/useFileDialog.js +2 -2
- package/dist/cjs/hooks/useFileDialog/useFileDialog.js.map +1 -1
- package/dist/cjs/hooks/useFps/useFps.js +2 -2
- package/dist/cjs/hooks/useFps/useFps.js.map +1 -1
- package/dist/cjs/hooks/useFullscreen/useFullscreen.js +2 -2
- package/dist/cjs/hooks/useFullscreen/useFullscreen.js.map +1 -1
- package/dist/cjs/hooks/useGamepad/helpers/mapGamepadToXbox360Controller.js +1 -1
- package/dist/cjs/hooks/useGamepad/useGamepad.js +2 -2
- package/dist/cjs/hooks/useGeolocation/useGeolocation.js +2 -2
- package/dist/cjs/hooks/useHash/useHash.js +2 -2
- package/dist/cjs/hooks/useHotkeys/useHotkeys.js +2 -2
- package/dist/cjs/hooks/useHotkeys/useHotkeys.js.map +1 -1
- package/dist/cjs/hooks/useHover/useHover.js +2 -2
- package/dist/cjs/hooks/useHover/useHover.js.map +1 -1
- package/dist/cjs/hooks/useIdle/useIdle.js +2 -2
- package/dist/cjs/hooks/useImage/useImage.js +2 -2
- package/dist/cjs/hooks/useInfiniteScroll/useInfiniteScroll.js +2 -2
- package/dist/cjs/hooks/useInfiniteScroll/useInfiniteScroll.js.map +1 -1
- package/dist/cjs/hooks/useIntersectionObserver/useIntersectionObserver.js +2 -2
- package/dist/cjs/hooks/useIntersectionObserver/useIntersectionObserver.js.map +1 -1
- package/dist/cjs/hooks/useInterval/useInterval.js +2 -2
- package/dist/cjs/hooks/useInterval/useInterval.js.map +1 -1
- package/dist/cjs/hooks/useIsFirstRender/useIsFirstRender.js +1 -1
- package/dist/cjs/hooks/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.js +1 -1
- package/dist/cjs/hooks/useKeyPress/useKeyPress.js +2 -2
- package/dist/cjs/hooks/useKeyPress/useKeyPress.js.map +1 -1
- package/dist/cjs/hooks/useKeyPressEvent/useKeyPressEvent.js +2 -2
- package/dist/cjs/hooks/useKeyPressEvent/useKeyPressEvent.js.map +1 -1
- package/dist/cjs/hooks/useKeyboard/useKeyboard.js +2 -2
- package/dist/cjs/hooks/useKeyboard/useKeyboard.js.map +1 -1
- package/dist/cjs/hooks/useKeysPressed/useKeysPressed.js +2 -2
- package/dist/cjs/hooks/useList/useList.js +2 -2
- package/dist/cjs/hooks/useLocalStorage/useLocalStorage.js +2 -2
- package/dist/cjs/hooks/useLogger/useLogger.js +2 -2
- package/dist/cjs/hooks/useLongPress/useLongPress.js +2 -2
- package/dist/cjs/hooks/useMap/useMap.js +2 -2
- package/dist/cjs/hooks/useMeasure/useMeasure.js +2 -2
- package/dist/cjs/hooks/useMeasure/useMeasure.js.map +1 -1
- package/dist/cjs/hooks/useMediaQuery/useMediaQuery.js +1 -1
- package/dist/cjs/hooks/useMemory/useMemory.js +2 -2
- package/dist/cjs/hooks/useMount/useMount.js +1 -1
- package/dist/cjs/hooks/useMouse/useMouse.js +2 -2
- package/dist/cjs/hooks/useMouse/useMouse.js.map +1 -1
- package/dist/cjs/hooks/useMutation/useMutation.js +2 -2
- package/dist/cjs/hooks/useMutation/useMutation.js.map +1 -1
- package/dist/cjs/hooks/useMutationObserver/useMutationObserver.js +2 -2
- package/dist/cjs/hooks/useMutationObserver/useMutationObserver.js.map +1 -1
- package/dist/cjs/hooks/useNetwork/useNetwork.js +2 -2
- package/dist/cjs/hooks/useOffsetPagination/useOffsetPagination.js +2 -2
- package/dist/cjs/hooks/useOnline/useOnline.js +1 -1
- package/dist/cjs/hooks/useOperatingSystem/useOperatingSystem.js +2 -2
- package/dist/cjs/hooks/useOperatingSystem/useOperatingSystem.js.map +1 -1
- package/dist/cjs/hooks/useOptimistic/useOptimistic.js +3 -0
- package/dist/cjs/hooks/useOptimistic/useOptimistic.js.map +1 -0
- package/dist/cjs/hooks/useOrientation/useOrientation.js +2 -2
- package/dist/cjs/hooks/useOtpCredential/useOtpCredential.js +2 -2
- package/dist/cjs/hooks/useOtpCredential/useOtpCredential.js.map +1 -1
- package/dist/cjs/hooks/usePageLeave/usePageLeave.js +2 -2
- package/dist/cjs/hooks/usePaint/helpers/Paint.js +2 -2
- package/dist/cjs/hooks/usePaint/helpers/Pointer.js +2 -2
- package/dist/cjs/hooks/usePaint/usePaint.js +2 -2
- package/dist/cjs/hooks/usePaint/usePaint.js.map +1 -1
- package/dist/cjs/hooks/useParallax/useParallax.js +3 -0
- package/dist/cjs/hooks/useParallax/useParallax.js.map +1 -0
- package/dist/cjs/hooks/usePermission/usePermission.js +2 -2
- package/dist/cjs/hooks/usePermission/usePermission.js.map +1 -1
- package/dist/cjs/hooks/usePreferredColorScheme/usePreferredColorScheme.js +1 -1
- package/dist/cjs/hooks/usePreferredContrast/usePreferredContrast.js +1 -1
- package/dist/cjs/hooks/usePreferredDark/usePreferredDark.js +1 -1
- package/dist/cjs/hooks/usePreferredLanguages/usePreferredLanguages.js +1 -1
- package/dist/cjs/hooks/usePreferredReducedMotion/usePreferredReducedMotion.js +1 -1
- package/dist/cjs/hooks/usePrevious/usePrevious.js +1 -1
- package/dist/cjs/hooks/useQuery/useQuery.js +2 -2
- package/dist/cjs/hooks/useQuery/useQuery.js.map +1 -1
- package/dist/cjs/hooks/useQueue/useQueue.js +2 -2
- package/dist/cjs/hooks/useRaf/useRaf.js +2 -2
- package/dist/cjs/hooks/useRaf/useRaf.js.map +1 -1
- package/dist/cjs/hooks/useRafValue/useRafValue.js +2 -2
- package/dist/cjs/hooks/useRenderCount/useRenderCount.js +1 -1
- package/dist/cjs/hooks/useRenderInfo/useRenderInfo.js +1 -1
- package/dist/cjs/hooks/useRerender/useRerender.js +2 -2
- package/dist/cjs/hooks/useRerender/useRerender.js.map +1 -1
- package/dist/cjs/hooks/useResizeObserver/useResizeObserver.js +2 -2
- package/dist/cjs/hooks/useResizeObserver/useResizeObserver.js.map +1 -1
- package/dist/cjs/hooks/useScreenOrientation/useScreenOrientation.js +3 -0
- package/dist/cjs/hooks/useScreenOrientation/useScreenOrientation.js.map +1 -0
- package/dist/cjs/hooks/useScript/useScript.js +2 -2
- package/dist/cjs/hooks/useSessionStorage/useSessionStorage.js +2 -2
- package/dist/cjs/hooks/useSet/useSet.js +2 -2
- package/dist/cjs/hooks/useSet/useSet.js.map +1 -1
- package/dist/cjs/hooks/useShare/useShare.js +2 -2
- package/dist/cjs/hooks/useStep/useStep.js +2 -2
- package/dist/cjs/hooks/useStopwatch/useStopwatch.js +2 -2
- package/dist/cjs/hooks/useStopwatch/useStopwatch.js.map +1 -1
- package/dist/cjs/hooks/useStorage/useStorage.js +2 -2
- package/dist/cjs/hooks/useStorage/useStorage.js.map +1 -1
- package/dist/cjs/hooks/useTextSelection/useTextSelection.js +2 -2
- package/dist/cjs/hooks/useTime/useTime.js +2 -2
- package/dist/cjs/hooks/useTimeout/useTimeout.js +2 -2
- package/dist/cjs/hooks/useToggle/useToggle.js +2 -2
- package/dist/cjs/hooks/useUnmount/useUnmount.js +1 -1
- package/dist/cjs/hooks/useWebSocket/useWebSocket.js +2 -2
- package/dist/cjs/hooks/useWindowEvent/useWindowEvent.js +2 -2
- package/dist/cjs/hooks/useWindowScroll/useWindowScroll.js +2 -2
- package/dist/cjs/hooks/useWindowScroll/useWindowScroll.js.map +1 -1
- package/dist/cjs/hooks/useWindowSize/useWindowSize.js +2 -2
- package/dist/cjs/hooks/useWizard/useWizard.js +2 -2
- package/dist/cjs/{index-CYZjZMEr.js → index-DNTtg9NP.js} +2 -2
- package/dist/cjs/{index-CYZjZMEr.js.map → index-DNTtg9NP.js.map} +1 -1
- package/dist/cjs/index.js +2 -2
- package/dist/cjs/utils/helpers/debounce.js +1 -1
- package/dist/cjs/utils/helpers/getElement.js +1 -1
- package/dist/cjs/utils/helpers/getRetry.js +1 -1
- package/dist/cjs/utils/helpers/index.js +1 -1
- package/dist/cjs/utils/helpers/isClient.js +1 -1
- package/dist/cjs/utils/helpers/throttle.js +1 -1
- package/dist/cjs/utils/helpers/throttle.js.map +1 -1
- package/dist/cjs/utils/helpers/time/getDate.js +1 -1
- package/dist/esm/_rollupPluginBabelHelpers-CWXiPzDd.js +3 -0
- package/dist/esm/_rollupPluginBabelHelpers-CWXiPzDd.js.map +1 -0
- package/dist/esm/hooks/index.js +2 -2
- package/dist/esm/hooks/useAsync/useAsync.js +2 -2
- package/dist/esm/hooks/useAsync/useAsync.js.map +1 -1
- package/dist/esm/hooks/useBattery/useBattery.js +2 -2
- package/dist/esm/hooks/useBoolean/useBoolean.js +2 -2
- package/dist/esm/hooks/useBreakpoints/constants/breakpoints.js +1 -1
- package/dist/esm/hooks/useBreakpoints/useBreakpoints.js +2 -2
- package/dist/esm/hooks/useBrowserLanguage/useBrowserLanguage.js +1 -1
- package/dist/esm/hooks/useClickOutside/useClickOutside.js +2 -2
- package/dist/esm/hooks/useClickOutside/useClickOutside.js.map +1 -1
- package/dist/esm/hooks/useClipboard/useClipboard.js +2 -2
- package/dist/esm/hooks/useCounter/useCounter.js +2 -2
- package/dist/esm/hooks/useCounter/useCounter.js.map +1 -1
- package/dist/esm/hooks/useCssVar/useCssVar.js +2 -2
- package/dist/esm/hooks/useDebounceCallback/useDebounceCallback.js +1 -1
- package/dist/esm/hooks/useDebounceValue/useDebounceValue.js +2 -2
- package/dist/esm/hooks/useDefault/useDefault.js +2 -2
- package/dist/esm/hooks/useDeviceMotion/useDeviceMotion.js +3 -0
- package/dist/esm/hooks/useDeviceMotion/useDeviceMotion.js.map +1 -0
- package/dist/esm/hooks/useDeviceOrientation/useDeviceOrientation.js +3 -0
- package/dist/esm/hooks/useDeviceOrientation/useDeviceOrientation.js.map +1 -0
- package/dist/esm/hooks/useDidUpdate/useDidUpdate.js +1 -1
- package/dist/esm/hooks/useDisclosure/useDisclosure.js +2 -2
- package/dist/esm/hooks/useDocumentEvent/useDocumentEvent.js +2 -2
- package/dist/esm/hooks/useDocumentTitle/useDocumentTitle.js +2 -2
- package/dist/esm/hooks/useDocumentVisibility/useDocumentVisibility.js +1 -1
- package/dist/esm/hooks/useEvent/useEvent.js +1 -1
- package/dist/esm/hooks/useEventListener/useEventListener.js +2 -2
- package/dist/esm/hooks/useEventListener/useEventListener.js.map +1 -1
- package/dist/esm/hooks/useEyeDropper/useEyeDropper.js +2 -2
- package/dist/esm/hooks/useFavicon/useFavicon.js +2 -2
- package/dist/esm/hooks/useField/useField.js +2 -2
- package/dist/esm/hooks/useField/useField.js.map +1 -1
- package/dist/esm/hooks/useFileDialog/useFileDialog.js +2 -2
- package/dist/esm/hooks/useFileDialog/useFileDialog.js.map +1 -1
- package/dist/esm/hooks/useFps/useFps.js +2 -2
- package/dist/esm/hooks/useFps/useFps.js.map +1 -1
- package/dist/esm/hooks/useFullscreen/useFullscreen.js +2 -2
- package/dist/esm/hooks/useFullscreen/useFullscreen.js.map +1 -1
- package/dist/esm/hooks/useGamepad/helpers/mapGamepadToXbox360Controller.js +1 -1
- package/dist/esm/hooks/useGamepad/useGamepad.js +2 -2
- package/dist/esm/hooks/useGeolocation/useGeolocation.js +2 -2
- package/dist/esm/hooks/useHash/useHash.js +2 -2
- package/dist/esm/hooks/useHotkeys/useHotkeys.js +2 -2
- package/dist/esm/hooks/useHotkeys/useHotkeys.js.map +1 -1
- package/dist/esm/hooks/useHover/useHover.js +2 -2
- package/dist/esm/hooks/useHover/useHover.js.map +1 -1
- package/dist/esm/hooks/useIdle/useIdle.js +2 -2
- package/dist/esm/hooks/useImage/useImage.js +2 -2
- package/dist/esm/hooks/useInfiniteScroll/useInfiniteScroll.js +2 -2
- package/dist/esm/hooks/useInfiniteScroll/useInfiniteScroll.js.map +1 -1
- package/dist/esm/hooks/useIntersectionObserver/useIntersectionObserver.js +2 -2
- package/dist/esm/hooks/useIntersectionObserver/useIntersectionObserver.js.map +1 -1
- package/dist/esm/hooks/useInterval/useInterval.js +2 -2
- package/dist/esm/hooks/useInterval/useInterval.js.map +1 -1
- package/dist/esm/hooks/useIsFirstRender/useIsFirstRender.js +1 -1
- package/dist/esm/hooks/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.js +1 -1
- package/dist/esm/hooks/useKeyPress/useKeyPress.js +2 -2
- package/dist/esm/hooks/useKeyPress/useKeyPress.js.map +1 -1
- package/dist/esm/hooks/useKeyPressEvent/useKeyPressEvent.js +2 -2
- package/dist/esm/hooks/useKeyPressEvent/useKeyPressEvent.js.map +1 -1
- package/dist/esm/hooks/useKeyboard/useKeyboard.js +2 -2
- package/dist/esm/hooks/useKeyboard/useKeyboard.js.map +1 -1
- package/dist/esm/hooks/useKeysPressed/useKeysPressed.js +2 -2
- package/dist/esm/hooks/useList/useList.js +2 -2
- package/dist/esm/hooks/useLocalStorage/useLocalStorage.js +2 -2
- package/dist/esm/hooks/useLogger/useLogger.js +2 -2
- package/dist/esm/hooks/useLongPress/useLongPress.js +2 -2
- package/dist/esm/hooks/useMap/useMap.js +2 -2
- package/dist/esm/hooks/useMeasure/useMeasure.js +2 -2
- package/dist/esm/hooks/useMeasure/useMeasure.js.map +1 -1
- package/dist/esm/hooks/useMediaQuery/useMediaQuery.js +1 -1
- package/dist/esm/hooks/useMemory/useMemory.js +2 -2
- package/dist/esm/hooks/useMount/useMount.js +1 -1
- package/dist/esm/hooks/useMouse/useMouse.js +2 -2
- package/dist/esm/hooks/useMouse/useMouse.js.map +1 -1
- package/dist/esm/hooks/useMutation/useMutation.js +2 -2
- package/dist/esm/hooks/useMutation/useMutation.js.map +1 -1
- package/dist/esm/hooks/useMutationObserver/useMutationObserver.js +2 -2
- package/dist/esm/hooks/useMutationObserver/useMutationObserver.js.map +1 -1
- package/dist/esm/hooks/useNetwork/useNetwork.js +2 -2
- package/dist/esm/hooks/useOffsetPagination/useOffsetPagination.js +2 -2
- package/dist/esm/hooks/useOnline/useOnline.js +1 -1
- package/dist/esm/hooks/useOperatingSystem/useOperatingSystem.js +2 -2
- package/dist/esm/hooks/useOperatingSystem/useOperatingSystem.js.map +1 -1
- package/dist/esm/hooks/useOptimistic/useOptimistic.js +3 -0
- package/dist/esm/hooks/useOptimistic/useOptimistic.js.map +1 -0
- package/dist/esm/hooks/useOrientation/useOrientation.js +2 -2
- package/dist/esm/hooks/useOtpCredential/useOtpCredential.js +2 -2
- package/dist/esm/hooks/useOtpCredential/useOtpCredential.js.map +1 -1
- package/dist/esm/hooks/usePageLeave/usePageLeave.js +2 -2
- package/dist/esm/hooks/usePaint/helpers/Paint.js +2 -2
- package/dist/esm/hooks/usePaint/helpers/Pointer.js +2 -2
- package/dist/esm/hooks/usePaint/usePaint.js +2 -2
- package/dist/esm/hooks/usePaint/usePaint.js.map +1 -1
- package/dist/esm/hooks/useParallax/useParallax.js +3 -0
- package/dist/esm/hooks/useParallax/useParallax.js.map +1 -0
- package/dist/esm/hooks/usePermission/usePermission.js +2 -2
- package/dist/esm/hooks/usePermission/usePermission.js.map +1 -1
- package/dist/esm/hooks/usePreferredColorScheme/usePreferredColorScheme.js +1 -1
- package/dist/esm/hooks/usePreferredContrast/usePreferredContrast.js +1 -1
- package/dist/esm/hooks/usePreferredDark/usePreferredDark.js +1 -1
- package/dist/esm/hooks/usePreferredLanguages/usePreferredLanguages.js +1 -1
- package/dist/esm/hooks/usePreferredReducedMotion/usePreferredReducedMotion.js +1 -1
- package/dist/esm/hooks/usePrevious/usePrevious.js +1 -1
- package/dist/esm/hooks/useQuery/useQuery.js +2 -2
- package/dist/esm/hooks/useQuery/useQuery.js.map +1 -1
- package/dist/esm/hooks/useQueue/useQueue.js +2 -2
- package/dist/esm/hooks/useRaf/useRaf.js +2 -2
- package/dist/esm/hooks/useRaf/useRaf.js.map +1 -1
- package/dist/esm/hooks/useRafValue/useRafValue.js +2 -2
- package/dist/esm/hooks/useRenderCount/useRenderCount.js +1 -1
- package/dist/esm/hooks/useRenderInfo/useRenderInfo.js +1 -1
- package/dist/esm/hooks/useRerender/useRerender.js +2 -2
- package/dist/esm/hooks/useRerender/useRerender.js.map +1 -1
- package/dist/esm/hooks/useResizeObserver/useResizeObserver.js +2 -2
- package/dist/esm/hooks/useResizeObserver/useResizeObserver.js.map +1 -1
- package/dist/esm/hooks/useScreenOrientation/useScreenOrientation.js +3 -0
- package/dist/esm/hooks/useScreenOrientation/useScreenOrientation.js.map +1 -0
- package/dist/esm/hooks/useScript/useScript.js +2 -2
- package/dist/esm/hooks/useSessionStorage/useSessionStorage.js +2 -2
- package/dist/esm/hooks/useSet/useSet.js +2 -2
- package/dist/esm/hooks/useSet/useSet.js.map +1 -1
- package/dist/esm/hooks/useShare/useShare.js +2 -2
- package/dist/esm/hooks/useStep/useStep.js +2 -2
- package/dist/esm/hooks/useStopwatch/useStopwatch.js +2 -2
- package/dist/esm/hooks/useStopwatch/useStopwatch.js.map +1 -1
- package/dist/esm/hooks/useStorage/useStorage.js +2 -2
- package/dist/esm/hooks/useStorage/useStorage.js.map +1 -1
- package/dist/esm/hooks/useTextSelection/useTextSelection.js +2 -2
- package/dist/esm/hooks/useTime/useTime.js +2 -2
- package/dist/esm/hooks/useTimeout/useTimeout.js +2 -2
- package/dist/esm/hooks/useToggle/useToggle.js +2 -2
- package/dist/esm/hooks/useUnmount/useUnmount.js +1 -1
- package/dist/esm/hooks/useWebSocket/useWebSocket.js +2 -2
- package/dist/esm/hooks/useWindowEvent/useWindowEvent.js +2 -2
- package/dist/esm/hooks/useWindowScroll/useWindowScroll.js +2 -2
- package/dist/esm/hooks/useWindowScroll/useWindowScroll.js.map +1 -1
- package/dist/esm/hooks/useWindowSize/useWindowSize.js +2 -2
- package/dist/esm/hooks/useWizard/useWizard.js +2 -2
- package/dist/esm/{index-BPVyLfoe.js → index-CNvEQA9K.js} +2 -2
- package/dist/esm/{index-BPVyLfoe.js.map → index-CNvEQA9K.js.map} +1 -1
- package/dist/esm/index.js +2 -2
- package/dist/esm/utils/helpers/debounce.js +1 -1
- package/dist/esm/utils/helpers/getElement.js +1 -1
- package/dist/esm/utils/helpers/getRetry.js +1 -1
- package/dist/esm/utils/helpers/index.js +1 -1
- package/dist/esm/utils/helpers/isClient.js +1 -1
- package/dist/esm/utils/helpers/throttle.js +1 -1
- package/dist/esm/utils/helpers/throttle.js.map +1 -1
- package/dist/esm/utils/helpers/time/getDate.js +1 -1
- package/dist/index.d.ts +160 -59
- package/package.json +98 -99
- package/dist/cjs/_rollupPluginBabelHelpers-CpK-EpSH.js +0 -3
- package/dist/cjs/_rollupPluginBabelHelpers-CpK-EpSH.js.map +0 -1
- package/dist/esm/_rollupPluginBabelHelpers-B91Ylx3P.js +0 -3
- package/dist/esm/_rollupPluginBabelHelpers-B91Ylx3P.js.map +0 -1
|
@@ -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 { getElement } from '@/utils/helpers';\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 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) as HTMLCanvasElement;\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":["usePaint","_options$color","_options$opacity","_options$radius","_options$radius2","_options$smooth","target","_typeof","arguments","length","undefined","options","color","opacity","radius","paintRef","useRef","Paint","x","y","smooth","_useState","useState","_useState2","_slicedToArray","drawing","setIsDrawing","internalRef","contextRef","draw","points","current","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","getElement","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 { getElement } from '@/utils/helpers';\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 interface 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) as HTMLCanvasElement;\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":["usePaint","_options$color","_options$opacity","_options$radius","_options$radius2","_options$smooth","target","_typeof","arguments","length","undefined","options","color","opacity","radius","paintRef","useRef","Paint","x","y","smooth","_useState","useState","_useState2","_slicedToArray","drawing","setIsDrawing","internalRef","contextRef","draw","points","current","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","getElement","getContext","initialLines","_ref3","addEventListener","removeEventListener","ref"],"mappings":"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"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
/* @license @siberiacancode/reactuse v0.0.66 */
|
|
2
|
+
import{_ as e}from"../../_rollupPluginBabelHelpers-CWXiPzDd.js";import{useState as t,useEffect as a}from"react";import{useDeviceOrientation as n}from"../useDeviceOrientation/useDeviceOrientation.js";import{useMouse as i}from"../useMouse/useMouse.js";import{useScreenOrientation as r}from"../useScreenOrientation/useScreenOrientation.js";import"../../utils/helpers/getElement.js";import"../../utils/helpers/isClient.js";var o=function(){var o=(arguments.length<=0?void 0:arguments[0])instanceof Function||(arguments.length<=0?void 0:arguments[0])&&"current"in(arguments.length<=0?void 0:arguments[0])||(arguments.length<=0?void 0:arguments[0])instanceof Element?arguments.length<=0?void 0:arguments[0]:void 0,l=o?arguments.length<=1?void 0:arguments[1]:{},u=l.deviceOrientationRollAdjust,s=void 0===u?function(e){return e}:u,c=l.deviceOrientationTiltAdjust,v=void 0===c?function(e){return e}:c,m=l.mouseRollAdjust,d=void 0===m?function(e){return e}:m,p=l.mouseTiltAdjust,f=void 0===p?function(e){return e}:p,g=t(),h=e(g,2),b=h[0],y=h[1],j=i(null!=o?o:b),O=r(),k=n(),T=function(){return k.supported&&(k.value.alpha||k.value.gamma)?"deviceOrientation":"mouse"},A=t({roll:0,source:"mouse",tilt:0}),R=e(A,2),w=R[0],x=R[1];return a((function(){if(j.element){var e=T(),t=function(){if("deviceOrientation"===T()){var e;switch(O.value.orientationType){case"landscape-primary":e=k.value.gamma/90;break;case"landscape-secondary":e=-k.value.gamma/90;break;case"portrait-primary":default:e=-k.value.beta/90;break;case"portrait-secondary":e=k.value.beta/90}return s(e)}var t=j.y-j.elementPositionY,a=j.element.getBoundingClientRect().height;return d(-(t-a/2)/a)}(),a=function(){if("deviceOrientation"===T()){var e;switch(O.value.orientationType){case"landscape-primary":e=k.value.beta/90;break;case"landscape-secondary":e=-k.value.beta/90;break;case"portrait-primary":default:e=k.value.gamma/90;break;case"portrait-secondary":e=-k.value.gamma/90}return v(e)}var t=j.x-j.elementPositionX,a=j.element.getBoundingClientRect().width;return f((t-a/2)/a)}();x({roll:t,source:e,tilt:a})}}),[O.value.angle,O.value.orientationType,k.value.gamma,k.value.beta,k.value.alpha,k.value.absolute,j.x,j.y,j.element]),o?{value:w}:{ref:y,value:w}};export{o as useParallax};
|
|
3
|
+
//# sourceMappingURL=useParallax.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useParallax.js","sources":["../../../../src/hooks/useParallax/useParallax.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\n\nimport { useDeviceOrientation } from '../useDeviceOrientation/useDeviceOrientation';\nimport type { UseMouseTarget } from '../useMouse/useMouse';\nimport { useMouse } from '../useMouse/useMouse';\nimport { useScreenOrientation } from '../useScreenOrientation/useScreenOrientation';\n\n/** The use parallax value type */\nexport interface UseParallaxValue {\n /** Roll value. Scaled to `-0.5 ~ 0.5` */\n roll: number\n /** Tilt value. Scaled to `-0.5 ~ 0.5` */\n tilt: number\n /** Sensor source, can be `mouse` or `deviceOrientation` */\n source: 'deviceOrientation' | 'mouse'\n}\n\n/** The use parallax options type */\nexport interface UseParallaxOptions {\n /** Device orientation tilt adjust function */\n deviceOrientationTiltAdjust?: (value: number) => number\n /** Device orientation roll adjust function */\n deviceOrientationRollAdjust?: (value: number) => number\n /** Mouse tilt adjust function */\n mouseTiltAdjust?: (value: number) => number\n /** Mouse roll adjust function */\n mouseRollAdjust?: (value: number) => number\n}\n\ninterface UseParallaxReturn {\n value: UseParallaxValue\n}\n\nexport interface UseParallax {\n <Target extends UseMouseTarget>(\n target: Target,\n options?: UseParallaxOptions\n ): UseParallaxReturn\n\n <Target extends UseMouseTarget>(params?: UseParallaxOptions): UseParallaxReturn & {\n ref: (node: Target) => void\n }\n}\n\n/**\n * @name useParallax\n * @description - Hook to help create parallax effect\n * @category Sensors\n *\n * @overload\n * @template Target The target element for the parallax effect\n * @param {Target} target The target element for the parallax effect\n * @param {UseParallaxOptions} options The options for the parallax effect\n * @returns {UseParallaxReturn} An object with the current mouse position\n *\n * @example\n * const { roll, tilt, source } = useParallax(target);\n *\n * @overload\n * @template Target The target element for the parallax effect\n * @param {UseParallaxOptions} options The options for the parallax effect\n *\n * @example\n * const { ref, roll, tilt, source } = useParallax();\n */\nexport const useParallax = ((...params: any[]) => {\n const target = params[0] instanceof Function || (params[0] && 'current' in params[0]) || params[0] instanceof Element ?\n params[0] : undefined;\n const {\n deviceOrientationRollAdjust = (value) => value,\n deviceOrientationTiltAdjust = (value) => value,\n mouseRollAdjust = (value) => value,\n mouseTiltAdjust = (value) => value\n } = (target ? params[1] : {}) as UseParallaxOptions;\n\n const [internalRef, setInternalRef] = useState<Element>();\n\n const mouse = useMouse(target ?? internalRef);\n const screenOrientation = useScreenOrientation();\n const deviceOrientation = useDeviceOrientation();\n\n const getSource = () => {\n const isDeviceOrientation = deviceOrientation.supported\n && (deviceOrientation.value.alpha || deviceOrientation.value.gamma);\n\n if (isDeviceOrientation) return 'deviceOrientation';\n return 'mouse';\n };\n\n const getRoll = () => {\n const source = getSource();\n if (source === 'deviceOrientation') {\n let value: number;\n switch (screenOrientation.value.orientationType) {\n case 'landscape-primary':\n value = deviceOrientation.value.gamma! / 90;\n break;\n case 'landscape-secondary':\n value = -deviceOrientation.value.gamma! / 90;\n break;\n case 'portrait-primary':\n value = -deviceOrientation.value.beta! / 90;\n break;\n case 'portrait-secondary':\n value = deviceOrientation.value.beta! / 90;\n break;\n default:\n value = -deviceOrientation.value.beta! / 90;\n }\n return deviceOrientationRollAdjust(value);\n }\n else {\n const y = mouse.y - mouse.elementPositionY;\n const height = mouse.element.getBoundingClientRect().height;\n const value = -(y - height / 2) / height;\n return mouseRollAdjust(value);\n }\n };\n\n const getTilt = () => {\n const source = getSource();\n if (source === 'deviceOrientation') {\n let value: number;\n switch (screenOrientation.value.orientationType) {\n case 'landscape-primary':\n value = deviceOrientation.value.beta! / 90;\n break;\n case 'landscape-secondary':\n value = -deviceOrientation.value.beta! / 90;\n break;\n case 'portrait-primary':\n value = deviceOrientation.value.gamma! / 90;\n break;\n case 'portrait-secondary':\n value = -deviceOrientation.value.gamma! / 90;\n break;\n default:\n value = deviceOrientation.value.gamma! / 90;\n }\n return deviceOrientationTiltAdjust(value);\n }\n else {\n const x = mouse.x - mouse.elementPositionX;\n const width = mouse.element.getBoundingClientRect().width;\n const value = (x - width / 2) / width;\n return mouseTiltAdjust(value);\n }\n };\n\n const [value, setValue] = useState({\n roll: 0,\n source: 'mouse',\n tilt: 0\n });\n\n useEffect(() => {\n if (!mouse.element) return;\n\n const source = getSource();\n const roll = getRoll();\n const tilt = getTilt();\n\n setValue({\n roll,\n source,\n tilt\n });\n }, [\n screenOrientation.value.angle,\n screenOrientation.value.orientationType,\n deviceOrientation.value.gamma,\n deviceOrientation.value.beta,\n deviceOrientation.value.alpha,\n deviceOrientation.value.absolute,\n mouse.x,\n mouse.y,\n mouse.element\n ]);\n\n if (target) return { value };\n return { ref: setInternalRef, value };\n}) as UseParallax;\n"],"names":["useParallax","target","arguments","length","undefined","Function","Element","_ref","_ref$deviceOrientatio","deviceOrientationRollAdjust","value","_ref$deviceOrientatio2","deviceOrientationTiltAdjust","_ref$mouseRollAdjust","mouseRollAdjust","_ref$mouseTiltAdjust","mouseTiltAdjust","_useState","useState","_useState2","_slicedToArray","internalRef","setInternalRef","mouse","useMouse","screenOrientation","useScreenOrientation","deviceOrientation","useDeviceOrientation","getSource","supported","alpha","gamma","_useState3","roll","source","tilt","_useState4","setValue","useEffect","element","orientationType","beta","y","elementPositionY","height","getBoundingClientRect","getRoll","x","elementPositionX","width","getTilt","angle","absolute","ref"],"mappings":"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"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
/* @license @siberiacancode/reactuse v0.0.
|
|
2
|
-
import{_ as r,d as e,e as t}from"../../_rollupPluginBabelHelpers-
|
|
1
|
+
/* @license @siberiacancode/reactuse v0.0.66 */
|
|
2
|
+
import{_ as r,d as e,e as t}from"../../_rollupPluginBabelHelpers-CWXiPzDd.js";import{useState as n,useEffect as a}from"react";import{useEvent as s}from"../useEvent/useEvent.js";var o=function(o){var u=n("prompt"),i=r(u,2),p=i[0],c=i[1],m=navigator&&"permissions"in navigator,v={name:o},f=s(e(t().mark((function r(){var e;return t().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.prev=0,r.next=3,navigator.permissions.query(v);case 3:return e=r.sent,c(e.state),r.abrupt("return",e.state);case 8:return r.prev=8,r.t0=r.catch(0),c("prompt"),r.abrupt("return","prompt");case 12:case"end":return r.stop()}}),r,null,[[0,8]])}))));return a((function(){if(m)return f(),window.addEventListener("change",f),function(){window.removeEventListener("change",f)}}),[o]),{state:p,supported:m,query:f}};export{o as usePermission};
|
|
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';\
|
|
1
|
+
{"version":3,"file":"usePermission.js","sources":["../../../../src/hooks/usePermission/usePermission.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\n\nimport { useEvent } from '../useEvent/useEvent';\n\n/** The permission name */\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\n/** The use permission return type */\nexport interface UsePermissionReturn {\n /** The permission state */\n state: PermissionState;\n /** The permission supported status */\n supported: boolean;\n /** The permission query function */\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 = navigator && 'permissions' in navigator;\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 {\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":["usePermission","permissionDescriptorName","_useState","useState","_useState2","_slicedToArray","state","setState","supported","navigator","permissionDescriptor","name","query","useEvent","_asyncToGenerator","_regeneratorRuntime","mark","_callee","permissionStatus","wrap","_context","prev","next","permissions","sent","abrupt","t0","stop","useEffect","window","addEventListener","removeEventListener"],"mappings":";qLA2CaA,EAAgB,SAACC,GAC5B,IAAAC,EAA0BC,EAA0B,UAASC,EAAAC,EAAAH,EAAA,GAAtDI,EAAKF,EAAA,GAAEG,EAAQH,EAAA,GAChBI,EAAYC,WAAa,gBAAiBA,UAE1CC,EAAuB,CAAEC,KAAMV,GAE/BW,EAAQC,EAAQC,EAAAC,IAAAC,MAAC,SAAAC,IAAA,IAAAC,EAAA,OAAAH,IAAAI,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,KAGtBjB,EAASW,EAAiBZ,OAAOc,EAAAK,OAC1BP,SAAAA,EAAiBZ,OAAK,KAAA,EAEV,OAFUc,EAAAC,KAAA,EAAAD,EAAAM,GAAAN,EAAA,MAAA,GAE7Bb,EAAS,UAAUa,EAAAK,OAAA,SACZ,UAAQ,KAAA,GAAA,IAAA,MAAA,OAAAL,EAAAO,OAAA,GAAAV,EAAA,KAAA,CAAA,CAAA,EAAA,IAElB,MAWD,OATAW,GAAU,WACR,GAAKpB,EAGL,OAFAI,IACAiB,OAAOC,iBAAiB,SAAUlB,GAC3B,WACLiB,OAAOE,oBAAoB,SAAUnB,GAEzC,GAAG,CAACX,IAEG,CACLK,MAAAA,EACAE,UAAAA,EACAI,MAAAA,EAEJ"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
/* @license @siberiacancode/reactuse v0.0.
|
|
1
|
+
/* @license @siberiacancode/reactuse v0.0.66 */
|
|
2
2
|
import{useMediaQuery as e}from"../useMediaQuery/useMediaQuery.js";import"react";var r=function(){var r=e("(prefers-color-scheme: light)"),o=e("(prefers-color-scheme: dark)");return r?"light":o?"dark":"no-preference"};export{r as usePreferredColorScheme};
|
|
3
3
|
//# sourceMappingURL=usePreferredColorScheme.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
/* @license @siberiacancode/reactuse v0.0.
|
|
1
|
+
/* @license @siberiacancode/reactuse v0.0.66 */
|
|
2
2
|
import{useMediaQuery as r}from"../useMediaQuery/useMediaQuery.js";import"react";var e=function(){var e=r("(prefers-contrast: more)"),s=r("(prefers-contrast: less)"),t=r("(prefers-contrast: custom)");return e?"more":s?"less":t?"custom":"no-preference"};export{e as usePreferredContrast};
|
|
3
3
|
//# sourceMappingURL=usePreferredContrast.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
/* @license @siberiacancode/reactuse v0.0.
|
|
1
|
+
/* @license @siberiacancode/reactuse v0.0.66 */
|
|
2
2
|
import{useMediaQuery as r}from"../useMediaQuery/useMediaQuery.js";import"react";var e=function(){return r("(prefers-color-scheme: dark)")};export{e as usePreferredDark};
|
|
3
3
|
//# sourceMappingURL=usePreferredDark.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
/* @license @siberiacancode/reactuse v0.0.
|
|
1
|
+
/* @license @siberiacancode/reactuse v0.0.66 */
|
|
2
2
|
import{useSyncExternalStore as n}from"react";var e=function(){return window.navigator.languages},r=function(){return[]},t=function(n){return window.addEventListener("languagechange",n),function(){window.removeEventListener("languagechange",n)}},a=function(){return n(t,e,r)};export{a as usePreferredLanguages};
|
|
3
3
|
//# sourceMappingURL=usePreferredLanguages.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
/* @license @siberiacancode/reactuse v0.0.
|
|
1
|
+
/* @license @siberiacancode/reactuse v0.0.66 */
|
|
2
2
|
import{useMediaQuery as e}from"../useMediaQuery/useMediaQuery.js";import"react";var r=function(){return e("(prefers-reduced-motion: reduce)")?"reduce":"no-preference"};export{r as usePreferredReducedMotion};
|
|
3
3
|
//# sourceMappingURL=usePreferredReducedMotion.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
/* @license @siberiacancode/reactuse v0.0.
|
|
1
|
+
/* @license @siberiacancode/reactuse v0.0.66 */
|
|
2
2
|
import{useRef as r,useEffect as t}from"react";var n=function(n){var c=r();return t((function(){c.current=n})),c.current};export{n as usePrevious};
|
|
3
3
|
//# sourceMappingURL=usePrevious.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
/* @license @siberiacancode/reactuse v0.0.
|
|
2
|
-
import{_ as r,a as t}from"../../_rollupPluginBabelHelpers-
|
|
1
|
+
/* @license @siberiacancode/reactuse v0.0.66 */
|
|
2
|
+
import{_ as r,a as t}from"../../_rollupPluginBabelHelpers-CWXiPzDd.js";import{useRef as n,useState as e,useEffect as l}from"react";import{getRetry as o}from"../../utils/helpers/getRetry.js";import"../../utils/helpers/isClient.js";import{useDidUpdate as i}from"../useDidUpdate/useDidUpdate.js";import{useMount as u}from"../useMount/useMount.js";import"../useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.js";var a=function(a,c){var s,f,v=null===(s=null==c?void 0:c.enabled)||void 0===s||s,d=n(null!=c&&c.retry?o(c.retry):0),h=e(!1),p=r(h,2),m=p[0],y=p[1],b=e(!1),D=r(b,2),I=D[0],g=D[1],j=e(!1),E=r(j,2),C=E[0],L=E[1],k=e(!(null==c||!c.initialData)),w=r(k,2),A=w[0],M=w[1],R=e(!(null==c||!c.initialData)),S=r(R,2),U=S[0],_=S[1],x=e(void 0),B=r(x,2),F=B[0],H=B[1],P=e(null==c?void 0:c.initialData),q=r(P,2),z=q[0],G=q[1],J=n(new AbortController),K=n(),N=null!==(f=null==c?void 0:c.keys)&&void 0!==f?f:[],O=function(){J.current.abort(),J.current=new AbortController,J.current.signal.onabort=function(){return _(!0)}},Q=function r(t){O(),y(!0),"refetch"===t&&L(!0),a({signal:J.current.signal,keys:N}).then((function(r){var n,e=null!=c&&c.select?null==c?void 0:c.select(r):r;null==c||null===(n=c.onSuccess)||void 0===n||n.call(c,e),G(e),M(!0),y(!1),H(void 0),g(!1),_(!1),"refetch"===t&&L(!1)})).catch((function(n){var e;if(d.current>0)return d.current-=1,r(t);null==c||null===(e=c.onError)||void 0===e||e.call(c,n),G(void 0),M(!1),y(!1),_(!1),H(n),g(!0),"refetch"===t&&L(!1),d.current=null!=c&&c.retry?o(c.retry):0})).finally((function(){if(null!=c&&c.refetchInterval){var t=setInterval((function(){clearInterval(t),r("refetch")}),null==c?void 0:c.refetchInterval);K.current=t}}))};u((function(){v&&Q("init")})),i((function(){v&&Q("refetch")}),[v].concat(t(N))),l((function(){return function(){clearInterval(K.current)}}),[v,null==c?void 0:c.refetchInterval,null==c?void 0:c.retry].concat(t(N)));var T=(null==c?void 0:c.placeholderData)instanceof Function?null==c?void 0:c.placeholderData():null==c?void 0:c.placeholderData;return{abort:O,data:null!=z?z:T,error:F,refetch:function(){return Q("refetch")},isLoading:m,isError:I,isSuccess:A,isRefetching:C,aborted:U}};export{a as useQuery};
|
|
3
3
|
//# sourceMappingURL=useQuery.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useQuery.js","sources":["../../../../src/hooks/useQuery/useQuery.ts"],"sourcesContent":["import type { DependencyList } from 'react';\nimport { useEffect, useRef, useState } from 'react';\n\nimport { getRetry } from '@/utils/helpers';\n\nimport { useDidUpdate } from '../useDidUpdate/useDidUpdate';\nimport { useMount } from '../useMount/useMount';\n\n/* The use query return type */\nexport interface UseQueryOptions<QueryData, Data> {\n /* The depends for the hook */\n keys?: DependencyList;\n /* The callback function to be invoked on success */\n onSuccess?: (data: Data) => void;\n /* The callback function to be invoked on error */\n onError?: (error: Error) => void;\n /* The select function to be invoked */\n select?: (data: QueryData) => Data;\n /* The initial data for the hook */\n initialData?: Data | (() => Data);\n /* The placeholder data for the hook */\n placeholderData?: Data | (() => Data);\n /* The retry count of requests */\n retry?: boolean | number;\n /* The refetch interval */\n refetchInterval?: number;\n /* The enabled state of the query */\n enabled?: boolean;\n}\n\ninterface UseQueryCallbackParams {\n /* The abort signal */\n signal: AbortSignal;\n /* The depends for the hook */\n keys: DependencyList;\n}\n\n/* The use query return type */\nexport interface UseQueryReturn<Data> {\n /* The state of the query */\n data?: Data;\n /* The loading state of the query */\n isLoading: boolean;\n /* The error state of the query */\n isError: boolean;\n /* The success state of the query */\n isSuccess: boolean;\n /* The success state of the query */\n error?: Error;\n /* The refetch function */\n refetch: () => void;\n /* The refetching state of the query */\n isRefetching: boolean;\n /* The abort function */\n abort: AbortController['abort'];\n /* The aborted state of the query */\n aborted: boolean;\n}\n\n/**\n * @name useQuery\n * @description - Hook that defines the logic when query data\n * @category Utilities\n *\n * @template Data The type of the data\n * @param {() => Promise<Data>} callback The callback function to be invoked\n * @param {DependencyList} [options.keys] The dependencies for the hook\n * @param {(data: Data) => void} [options.onSuccess] The callback function to be invoked on success\n * @param {(error: Error) => void} [options.onError] The callback function to be invoked on error\n * @param {UseQueryOptionsSelect<Data>} [options.select] The select function to be invoked\n * @param {Data | (() => Data)} [options.initialData] The initial data for the hook\n * @param {Data | (() => Data)} [options.placeholderData] The placeholder data for the hook\n * @param {number} [options.refetchInterval] The refetch interval\n * @param {boolean | number} [options.retry] The retry count of requests\n * @returns {UseQueryReturn<Data>} An object with the state of the query\n *\n * @example\n * const { data, isLoading, isError, isSuccess, error, refetch, isRefetching, abort, aborted } = useQuery(() => fetch('url'));\n */\nexport const useQuery = <QueryData, Data = QueryData>(\n callback: (params: UseQueryCallbackParams) => Promise<QueryData>,\n options?: UseQueryOptions<QueryData, Data>\n): UseQueryReturn<Data> => {\n const enabled = options?.enabled ?? true;\n const retryCountRef = useRef(options?.retry ? getRetry(options.retry) : 0);\n\n const [isLoading, setIsLoading] = useState(false);\n const [isError, setIsError] = useState(false);\n const [isRefetching, setIsRefetching] = useState(false);\n const [isSuccess, setIsSuccess] = useState(!!options?.initialData);\n const [aborted, setAborted] = useState(!!options?.initialData);\n\n const [error, setError] = useState<Error | undefined>(undefined);\n const [data, setData] = useState<Data | undefined>(options?.initialData);\n\n const abortControllerRef = useRef<AbortController>(new AbortController());\n const intervalIdRef = useRef<ReturnType<typeof setInterval>>();\n\n const keys = options?.keys ?? [];\n\n const abort = () => {\n abortControllerRef.current.abort();\n abortControllerRef.current = new AbortController();\n abortControllerRef.current.signal.onabort = () => setAborted(true);\n };\n\n const request = (action: 'init' | 'refetch') => {\n abort();\n setIsLoading(true);\n\n if (action === 'refetch') setIsRefetching(true);\n callback({ signal: abortControllerRef.current.signal, keys })\n .then((response) => {\n const data = options?.select ? options?.select(response) : response;\n options?.onSuccess?.(data as Data);\n setData(data as Data);\n setIsSuccess(true);\n setIsLoading(false);\n setError(undefined);\n setIsError(false);\n setAborted(false);\n if (action === 'refetch') setIsRefetching(false);\n })\n .catch((error: Error) => {\n if (retryCountRef.current > 0) {\n retryCountRef.current -= 1;\n return request(action);\n }\n options?.onError?.(error);\n setData(undefined);\n setIsSuccess(false);\n setIsLoading(false);\n setAborted(false);\n setError(error);\n setIsError(true);\n if (action === 'refetch') setIsRefetching(false);\n retryCountRef.current = options?.retry ? getRetry(options.retry) : 0;\n })\n .finally(() => {\n if (options?.refetchInterval) {\n const interval = setInterval(() => {\n clearInterval(interval);\n request('refetch');\n }, options?.refetchInterval);\n intervalIdRef.current = interval;\n }\n });\n };\n\n useMount(() => {\n if (!enabled) return;\n request('init');\n });\n\n useDidUpdate(() => {\n if (!enabled) return;\n request('refetch');\n }, [enabled, ...keys]);\n\n useEffect(() => {\n return () => {\n clearInterval(intervalIdRef.current);\n };\n }, [enabled, options?.refetchInterval, options?.retry, ...keys]);\n\n const refetch = () => request('refetch');\n\n const placeholderData =\n options?.placeholderData instanceof Function\n ? options?.placeholderData()\n : options?.placeholderData;\n\n return {\n abort,\n data: data ?? placeholderData,\n error,\n refetch,\n isLoading,\n isError,\n isSuccess,\n isRefetching,\n aborted\n };\n};\n"],"names":["useQuery","callback","options","_options$enabled","_options$keys","enabled","retryCountRef","useRef","retry","getRetry","_useState","useState","_useState2","_slicedToArray","isLoading","setIsLoading","_useState3","_useState4","isError","setIsError","_useState5","_useState6","isRefetching","setIsRefetching","_useState7","initialData","_useState8","isSuccess","setIsSuccess","_useState9","_useState10","aborted","setAborted","_useState11","undefined","_useState12","error","setError","_useState13","_useState14","data","setData","abortControllerRef","AbortController","intervalIdRef","keys","abort","current","signal","onabort","request","action","then","response","_options$onSuccess","select","onSuccess","call","_options$onError","onError","refetchInterval","interval","setInterval","clearInterval","useMount","useDidUpdate","concat","_toConsumableArray","useEffect","placeholderData","Function","refetch"],"mappings":";0ZA+EO,IAAMA,EAAW,SACtBC,EACAC,GACyB,IAAAC,EAAAC,EACnBC,EAA0BF,QAAnBA,EAAGD,aAAO,EAAPA,EAASG,eAAOF,IAAAA,GAAAA,EAC1BG,EAAgBC,EAAOL,SAAAA,EAASM,MAAQC,EAASP,EAAQM,OAAS,GAExEE,EAAkCC,GAAS,GAAMC,EAAAC,EAAAH,EAAA,GAA1CI,EAASF,EAAA,GAAEG,EAAYH,EAAA,GAC9BI,EAA8BL,GAAS,GAAMM,EAAAJ,EAAAG,EAAA,GAAtCE,EAAOD,EAAA,GAAEE,EAAUF,EAAA,GAC1BG,EAAwCT,GAAS,GAAMU,EAAAR,EAAAO,EAAA,GAAhDE,EAAYD,EAAA,GAAEE,EAAeF,EAAA,GACpCG,EAAkCb,IAAWT,UAAAA,EAASuB,cAAYC,EAAAb,EAAAW,EAAA,GAA3DG,EAASD,EAAA,GAAEE,EAAYF,EAAA,GAC9BG,EAA8BlB,IAAWT,UAAAA,EAASuB,cAAYK,EAAAjB,EAAAgB,EAAA,GAAvDE,EAAOD,EAAA,GAAEE,EAAUF,EAAA,GAE1BG,EAA0BtB,OAA4BuB,GAAUC,EAAAtB,EAAAoB,EAAA,GAAzDG,EAAKD,EAAA,GAAEE,EAAQF,EAAA,GACtBG,EAAwB3B,EAA2BT,aAAAA,EAAAA,EAASuB,aAAYc,EAAA1B,EAAAyB,EAAA,GAAjEE,EAAID,EAAA,GAAEE,EAAOF,EAAA,GAEdG,EAAqBnC,EAAwB,IAAIoC,iBACjDC,EAAgBrC,IAEhBsC,EAAoBzC,QAAhBA,EAAGF,aAAO,EAAPA,EAAS2C,YAAIzC,IAAAA,EAAAA,EAAI,GAExB0C,EAAQ,WACZJ,EAAmBK,QAAQD,QAC3BJ,EAAmBK,QAAU,IAAIJ,gBACjCD,EAAmBK,QAAQC,OAAOC,QAAU,WAAA,OAAMjB,GAAW,EAAK,GAG9DkB,EAAU,
|
|
1
|
+
{"version":3,"file":"useQuery.js","sources":["../../../../src/hooks/useQuery/useQuery.ts"],"sourcesContent":["import type { DependencyList } from 'react';\nimport { useEffect, useRef, useState } from 'react';\n\nimport { getRetry } from '@/utils/helpers';\n\nimport { useDidUpdate } from '../useDidUpdate/useDidUpdate';\nimport { useMount } from '../useMount/useMount';\n\n/* The use query return type */\nexport interface UseQueryOptions<QueryData, Data> {\n /* The depends for the hook */\n keys?: DependencyList;\n /* The callback function to be invoked on success */\n onSuccess?: (data: Data) => void;\n /* The callback function to be invoked on error */\n onError?: (error: Error) => void;\n /* The select function to be invoked */\n select?: (data: QueryData) => Data;\n /* The initial data for the hook */\n initialData?: Data | (() => Data);\n /* The placeholder data for the hook */\n placeholderData?: Data | (() => Data);\n /* The retry count of requests */\n retry?: boolean | number;\n /* The refetch interval */\n refetchInterval?: number;\n /* The enabled state of the query */\n enabled?: boolean;\n}\n\ninterface UseQueryCallbackParams {\n /* The abort signal */\n signal: AbortSignal;\n /* The depends for the hook */\n keys: DependencyList;\n}\n\n/* The use query return type */\nexport interface UseQueryReturn<Data> {\n /* The state of the query */\n data?: Data;\n /* The loading state of the query */\n isLoading: boolean;\n /* The error state of the query */\n isError: boolean;\n /* The success state of the query */\n isSuccess: boolean;\n /* The success state of the query */\n error?: Error;\n /* The refetch function */\n refetch: () => void;\n /* The refetching state of the query */\n isRefetching: boolean;\n /* The abort function */\n abort: AbortController['abort'];\n /* The aborted state of the query */\n aborted: boolean;\n}\n\n/**\n * @name useQuery\n * @description - Hook that defines the logic when query data\n * @category Utilities\n *\n * @template Data The type of the data\n * @param {() => Promise<Data>} callback The callback function to be invoked\n * @param {DependencyList} [options.keys] The dependencies for the hook\n * @param {(data: Data) => void} [options.onSuccess] The callback function to be invoked on success\n * @param {(error: Error) => void} [options.onError] The callback function to be invoked on error\n * @param {UseQueryOptionsSelect<Data>} [options.select] The select function to be invoked\n * @param {Data | (() => Data)} [options.initialData] The initial data for the hook\n * @param {Data | (() => Data)} [options.placeholderData] The placeholder data for the hook\n * @param {number} [options.refetchInterval] The refetch interval\n * @param {boolean | number} [options.retry] The retry count of requests\n * @returns {UseQueryReturn<Data>} An object with the state of the query\n *\n * @example\n * const { data, isLoading, isError, isSuccess, error, refetch, isRefetching, abort, aborted } = useQuery(() => fetch('url'));\n */\nexport const useQuery = <QueryData, Data = QueryData>(\n callback: (params: UseQueryCallbackParams) => Promise<QueryData>,\n options?: UseQueryOptions<QueryData, Data>\n): UseQueryReturn<Data> => {\n const enabled = options?.enabled ?? true;\n const retryCountRef = useRef(options?.retry ? getRetry(options.retry) : 0);\n\n const [isLoading, setIsLoading] = useState(false);\n const [isError, setIsError] = useState(false);\n const [isRefetching, setIsRefetching] = useState(false);\n const [isSuccess, setIsSuccess] = useState(!!options?.initialData);\n const [aborted, setAborted] = useState(!!options?.initialData);\n\n const [error, setError] = useState<Error | undefined>(undefined);\n const [data, setData] = useState<Data | undefined>(options?.initialData);\n\n const abortControllerRef = useRef<AbortController>(new AbortController());\n const intervalIdRef = useRef<ReturnType<typeof setInterval>>();\n\n const keys = options?.keys ?? [];\n\n const abort = () => {\n abortControllerRef.current.abort();\n abortControllerRef.current = new AbortController();\n abortControllerRef.current.signal.onabort = () => setAborted(true);\n };\n\n const request = (action: 'init' | 'refetch') => {\n abort();\n setIsLoading(true);\n\n if (action === 'refetch') setIsRefetching(true);\n callback({ signal: abortControllerRef.current.signal, keys })\n .then((response) => {\n const data = options?.select ? options?.select(response) : response;\n options?.onSuccess?.(data as Data);\n setData(data as Data);\n setIsSuccess(true);\n setIsLoading(false);\n setError(undefined);\n setIsError(false);\n setAborted(false);\n if (action === 'refetch') setIsRefetching(false);\n })\n .catch((error: Error) => {\n if (retryCountRef.current > 0) {\n retryCountRef.current -= 1;\n return request(action);\n }\n options?.onError?.(error);\n setData(undefined);\n setIsSuccess(false);\n setIsLoading(false);\n setAborted(false);\n setError(error);\n setIsError(true);\n if (action === 'refetch') setIsRefetching(false);\n retryCountRef.current = options?.retry ? getRetry(options.retry) : 0;\n })\n .finally(() => {\n if (options?.refetchInterval) {\n const interval = setInterval(() => {\n clearInterval(interval);\n request('refetch');\n }, options?.refetchInterval);\n intervalIdRef.current = interval;\n }\n });\n };\n\n useMount(() => {\n if (!enabled) return;\n request('init');\n });\n\n useDidUpdate(() => {\n if (!enabled) return;\n request('refetch');\n }, [enabled, ...keys]);\n\n useEffect(() => {\n return () => {\n clearInterval(intervalIdRef.current);\n };\n }, [enabled, options?.refetchInterval, options?.retry, ...keys]);\n\n const refetch = () => request('refetch');\n\n const placeholderData =\n options?.placeholderData instanceof Function\n ? options?.placeholderData()\n : options?.placeholderData;\n\n return {\n abort,\n data: data ?? placeholderData,\n error,\n refetch,\n isLoading,\n isError,\n isSuccess,\n isRefetching,\n aborted\n };\n};\n"],"names":["useQuery","callback","options","_options$enabled","_options$keys","enabled","retryCountRef","useRef","retry","getRetry","_useState","useState","_useState2","_slicedToArray","isLoading","setIsLoading","_useState3","_useState4","isError","setIsError","_useState5","_useState6","isRefetching","setIsRefetching","_useState7","initialData","_useState8","isSuccess","setIsSuccess","_useState9","_useState10","aborted","setAborted","_useState11","undefined","_useState12","error","setError","_useState13","_useState14","data","setData","abortControllerRef","AbortController","intervalIdRef","keys","abort","current","signal","onabort","request","action","then","response","_options$onSuccess","select","onSuccess","call","_options$onError","onError","refetchInterval","interval","setInterval","clearInterval","useMount","useDidUpdate","concat","_toConsumableArray","useEffect","placeholderData","Function","refetch"],"mappings":";0ZA+EO,IAAMA,EAAW,SACtBC,EACAC,GACyB,IAAAC,EAAAC,EACnBC,EAA0BF,QAAnBA,EAAGD,aAAO,EAAPA,EAASG,eAAOF,IAAAA,GAAAA,EAC1BG,EAAgBC,EAAOL,SAAAA,EAASM,MAAQC,EAASP,EAAQM,OAAS,GAExEE,EAAkCC,GAAS,GAAMC,EAAAC,EAAAH,EAAA,GAA1CI,EAASF,EAAA,GAAEG,EAAYH,EAAA,GAC9BI,EAA8BL,GAAS,GAAMM,EAAAJ,EAAAG,EAAA,GAAtCE,EAAOD,EAAA,GAAEE,EAAUF,EAAA,GAC1BG,EAAwCT,GAAS,GAAMU,EAAAR,EAAAO,EAAA,GAAhDE,EAAYD,EAAA,GAAEE,EAAeF,EAAA,GACpCG,EAAkCb,IAAWT,UAAAA,EAASuB,cAAYC,EAAAb,EAAAW,EAAA,GAA3DG,EAASD,EAAA,GAAEE,EAAYF,EAAA,GAC9BG,EAA8BlB,IAAWT,UAAAA,EAASuB,cAAYK,EAAAjB,EAAAgB,EAAA,GAAvDE,EAAOD,EAAA,GAAEE,EAAUF,EAAA,GAE1BG,EAA0BtB,OAA4BuB,GAAUC,EAAAtB,EAAAoB,EAAA,GAAzDG,EAAKD,EAAA,GAAEE,EAAQF,EAAA,GACtBG,EAAwB3B,EAA2BT,aAAAA,EAAAA,EAASuB,aAAYc,EAAA1B,EAAAyB,EAAA,GAAjEE,EAAID,EAAA,GAAEE,EAAOF,EAAA,GAEdG,EAAqBnC,EAAwB,IAAIoC,iBACjDC,EAAgBrC,IAEhBsC,EAAoBzC,QAAhBA,EAAGF,aAAO,EAAPA,EAAS2C,YAAIzC,IAAAA,EAAAA,EAAI,GAExB0C,EAAQ,WACZJ,EAAmBK,QAAQD,QAC3BJ,EAAmBK,QAAU,IAAIJ,gBACjCD,EAAmBK,QAAQC,OAAOC,QAAU,WAAA,OAAMjB,GAAW,EAAK,GAG9DkB,EAAU,SAAVA,EAAWC,GACfL,IACA/B,GAAa,GAEE,YAAXoC,GAAsB5B,GAAgB,GAC1CtB,EAAS,CAAE+C,OAAQN,EAAmBK,QAAQC,OAAQH,KAAAA,IACnDO,MAAK,SAACC,GAAa,IAAAC,EACZd,EAAOtC,SAAAA,EAASqD,OAASrD,eAAAA,EAASqD,OAAOF,GAAYA,EAC3DnD,SAAkB,QAAXoD,EAAPpD,EAASsD,iBAAS,IAAAF,GAAlBA,EAAAG,KAAAvD,EAAqBsC,GACrBC,EAAQD,GACRZ,GAAa,GACbb,GAAa,GACbsB,OAASH,GACTf,GAAW,GACXa,GAAW,GACI,YAAXmB,GAAsB5B,GAAgB,EAC5C,IAAE,OACK,SAACa,GAAiB,IAAAsB,EACvB,GAAIpD,EAAcyC,QAAU,EAE1B,OADAzC,EAAcyC,SAAW,EAClBG,EAAQC,GAEjBjD,SAAgB,QAATwD,EAAPxD,EAASyD,eAAO,IAAAD,GAAhBA,EAAAD,KAAAvD,EAAmBkC,GACnBK,OAAQP,GACRN,GAAa,GACbb,GAAa,GACbiB,GAAW,GACXK,EAASD,GACTjB,GAAW,GACI,YAAXgC,GAAsB5B,GAAgB,GAC1CjB,EAAcyC,QAAU7C,SAAAA,EAASM,MAAQC,EAASP,EAAQM,OAAS,KAE7D,SAAC,WACP,GAAIN,SAAAA,EAAS0D,gBAAiB,CAC5B,IAAMC,EAAWC,aAAY,WAC3BC,cAAcF,GACdX,EAAQ,aACPhD,eAAAA,EAAS0D,iBACZhB,EAAcG,QAAUc,CAC1B,CACF,KAGJG,GAAS,WACF3D,GACL6C,EAAQ,OACV,IAEAe,GAAa,WACN5D,GACL6C,EAAQ,aACT,CAAG7C,GAAO6D,OAAAC,EAAKtB,KAEhBuB,GAAU,WACR,OAAO,WACLL,cAAcnB,EAAcG,SAE/B,GAAA,CAAG1C,EAASH,aAAAA,EAAAA,EAAS0D,gBAAiB1D,aAAO,EAAPA,EAASM,OAAK0D,OAAAC,EAAKtB,KAE1D,IAEMwB,GACJnE,aAAAA,EAAAA,EAASmE,2BAA2BC,SAChCpE,aAAAA,EAAAA,EAASmE,kBACTnE,aAAAA,EAAAA,EAASmE,gBAEf,MAAO,CACLvB,MAAAA,EACAN,KAAMA,QAAAA,EAAQ6B,EACdjC,MAAAA,EACAmC,QAXc,WAAH,OAASrB,EAAQ,UAAU,EAYtCpC,UAAAA,EACAI,QAAAA,EACAS,UAAAA,EACAL,aAAAA,EACAS,QAAAA,EAEJ"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
/* @license @siberiacancode/reactuse v0.0.
|
|
2
|
-
import{_ as r,a as n,g as t}from"../../_rollupPluginBabelHelpers-
|
|
1
|
+
/* @license @siberiacancode/reactuse v0.0.66 */
|
|
2
|
+
import{_ as r,a as n,g as t}from"../../_rollupPluginBabelHelpers-CWXiPzDd.js";import{useState as e}from"react";import{flushSync as o}from"react-dom";var u=function(){var u=e(arguments.length>0&&void 0!==arguments[0]?arguments[0]:[]),a=r(u,2),i=a[0],c=a[1];return{add:function(r){return c((function(t){return[].concat(n(t),[r])}))},remove:function(){var r;return o((function(){c((function(n){var e=t(n),o=e[0],u=e.slice(1);return r=o,u}))})),r},clear:function(){return c([])},first:i[0],last:i[i.length-1],size:i.length,queue:i}};export{u as useQueue};
|
|
3
3
|
//# sourceMappingURL=useQueue.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
/* @license @siberiacancode/reactuse v0.0.
|
|
2
|
-
import{_ as r}from"../../_rollupPluginBabelHelpers-
|
|
1
|
+
/* @license @siberiacancode/reactuse v0.0.66 */
|
|
2
|
+
import{_ as r}from"../../_rollupPluginBabelHelpers-CWXiPzDd.js";import{useRef as n,useState as e,useEffect as t}from"react";var u=function(u,l){var i,a=n(null),o=n(0),c=e(!1),m=r(c,2),d=m[0],v=m[1],f=null===(i=null==l?void 0:l.enabled)||void 0===i||i,s=n(u);s.current=u;var p=function r(n){var e=n-o.current;null!=l&&l.delay&&e<(null==l?void 0:l.delay)||(o.current=n,s.current({delta:e,timestamp:n})),a.current=window.requestAnimationFrame(r)},w=function(){d||(v(!0),o.current=0,a.current=window.requestAnimationFrame(p))};function y(){a.current&&(v(!1),window.cancelAnimationFrame(a.current),a.current=null)}return t((function(){if(f)return w(),y}),[f,null==l?void 0:l.delay]),{active:d,pause:y,resume:w}};export{u as useRaf};
|
|
3
3
|
//# sourceMappingURL=useRaf.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useRaf.js","sources":["../../../../src/hooks/useRaf/useRaf.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\n\n/* The use raf params type */\nexport interface UseRafParams {\n /** The delta between each frame in milliseconds */\n delta: number;\n /** The timestamp of the current frame in milliseconds */\n timestamp: DOMHighResTimeStamp;\n}\n\n/* The use raf type */\nexport type UseRafCallback = (params: UseRafParams) => void;\n\n/* The use raf options type */\nexport interface UseRafOptions {\n /** The delay between each frame in milliseconds */\n delay?: number;\n /** Whether the callback should be enabled */\n enabled?: boolean;\n}\n\n/* The use raf return type */\nexport interface UseRafReturn {\n /** Whether the callback is active */\n active: boolean;\n /** Function to pause the callback */\n pause: () => void;\n /** Function to resume the callback */\n resume: () => void;\n}\n\n/**\n * @name useRaf\n * @description - Hook that defines the logic for raf callback\n * @category Utilities\n *\n * @param {UseRafCallback} callback The callback to execute\n * @param {number} [options.delay] The delay between each frame in milliseconds\n * @param {boolean} [options.enabled=true] Whether the callback should be enabled\n * @returns {UseRafCallbackReturn} An object of raf callback functions\n *\n * @example\n * useRaf(() => console.log('callback'));\n */\nexport const useRaf = (callback: UseRafCallback, options?: UseRafOptions): UseRafReturn => {\n const rafIdRef = useRef<number | null>(null);\n const previousFrameTimestampRef = useRef(0);\n const [active, setActive] = useState(false);\n const enabled = options?.enabled ?? true;\n\n const internalCallbackRef = useRef(callback);\n internalCallbackRef.current = callback;\n\n const loop = (timestamp: DOMHighResTimeStamp) => {\n const delta = timestamp - previousFrameTimestampRef.current;\n\n if (options?.delay && delta < options?.delay) {\n rafIdRef.current = window.requestAnimationFrame(loop);\n return;\n }\n\n previousFrameTimestampRef.current = timestamp;\n internalCallbackRef.current({ delta, timestamp });\n rafIdRef.current = window.requestAnimationFrame(loop);\n };\n\n const resume = () => {\n if (active) return;\n setActive(true);\n previousFrameTimestampRef.current = 0;\n rafIdRef.current = window.requestAnimationFrame(loop);\n };\n\n function pause() {\n if (!rafIdRef.current) return;\n\n setActive(false);\n window.cancelAnimationFrame(rafIdRef.current);\n rafIdRef.current = null;\n }\n\n useEffect(() => {\n if (!enabled) return;\n resume();\n\n return pause;\n }, [enabled, options?.delay]);\n\n return {\n active,\n pause,\n resume\n };\n};\n"],"names":["useRaf","callback","options","_options$enabled","rafIdRef","useRef","previousFrameTimestampRef","_useState","useState","_useState2","_slicedToArray","active","setActive","enabled","internalCallbackRef","current","loop","timestamp","delta","delay","window","requestAnimationFrame","resume","pause","cancelAnimationFrame","useEffect"],"mappings":";4HA4CO,IAAMA,EAAS,SAACC,EAA0BC,GAA0C,IAAAC,EACnFC,EAAWC,EAAsB,MACjCC,EAA4BD,EAAO,GACzCE,EAA4BC,GAAS,GAAMC,EAAAC,EAAAH,EAAA,GAApCI,EAAMF,EAAA,GAAEG,EAASH,EAAA,GAClBI,EAA0BV,QAAnBA,EAAGD,aAAO,EAAPA,EAASW,eAAOV,IAAAA,GAAAA,EAE1BW,EAAsBT,EAAOJ,GACnCa,EAAoBC,QAAUd,EAE9B,IAAMe,EAAO,
|
|
1
|
+
{"version":3,"file":"useRaf.js","sources":["../../../../src/hooks/useRaf/useRaf.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\n\n/* The use raf params type */\nexport interface UseRafParams {\n /** The delta between each frame in milliseconds */\n delta: number;\n /** The timestamp of the current frame in milliseconds */\n timestamp: DOMHighResTimeStamp;\n}\n\n/* The use raf type */\nexport type UseRafCallback = (params: UseRafParams) => void;\n\n/* The use raf options type */\nexport interface UseRafOptions {\n /** The delay between each frame in milliseconds */\n delay?: number;\n /** Whether the callback should be enabled */\n enabled?: boolean;\n}\n\n/* The use raf return type */\nexport interface UseRafReturn {\n /** Whether the callback is active */\n active: boolean;\n /** Function to pause the callback */\n pause: () => void;\n /** Function to resume the callback */\n resume: () => void;\n}\n\n/**\n * @name useRaf\n * @description - Hook that defines the logic for raf callback\n * @category Utilities\n *\n * @param {UseRafCallback} callback The callback to execute\n * @param {number} [options.delay] The delay between each frame in milliseconds\n * @param {boolean} [options.enabled=true] Whether the callback should be enabled\n * @returns {UseRafCallbackReturn} An object of raf callback functions\n *\n * @example\n * useRaf(() => console.log('callback'));\n */\nexport const useRaf = (callback: UseRafCallback, options?: UseRafOptions): UseRafReturn => {\n const rafIdRef = useRef<number | null>(null);\n const previousFrameTimestampRef = useRef(0);\n const [active, setActive] = useState(false);\n const enabled = options?.enabled ?? true;\n\n const internalCallbackRef = useRef(callback);\n internalCallbackRef.current = callback;\n\n const loop = (timestamp: DOMHighResTimeStamp) => {\n const delta = timestamp - previousFrameTimestampRef.current;\n\n if (options?.delay && delta < options?.delay) {\n rafIdRef.current = window.requestAnimationFrame(loop);\n return;\n }\n\n previousFrameTimestampRef.current = timestamp;\n internalCallbackRef.current({ delta, timestamp });\n rafIdRef.current = window.requestAnimationFrame(loop);\n };\n\n const resume = () => {\n if (active) return;\n setActive(true);\n previousFrameTimestampRef.current = 0;\n rafIdRef.current = window.requestAnimationFrame(loop);\n };\n\n function pause() {\n if (!rafIdRef.current) return;\n\n setActive(false);\n window.cancelAnimationFrame(rafIdRef.current);\n rafIdRef.current = null;\n }\n\n useEffect(() => {\n if (!enabled) return;\n resume();\n\n return pause;\n }, [enabled, options?.delay]);\n\n return {\n active,\n pause,\n resume\n };\n};\n"],"names":["useRaf","callback","options","_options$enabled","rafIdRef","useRef","previousFrameTimestampRef","_useState","useState","_useState2","_slicedToArray","active","setActive","enabled","internalCallbackRef","current","loop","timestamp","delta","delay","window","requestAnimationFrame","resume","pause","cancelAnimationFrame","useEffect"],"mappings":";4HA4CO,IAAMA,EAAS,SAACC,EAA0BC,GAA0C,IAAAC,EACnFC,EAAWC,EAAsB,MACjCC,EAA4BD,EAAO,GACzCE,EAA4BC,GAAS,GAAMC,EAAAC,EAAAH,EAAA,GAApCI,EAAMF,EAAA,GAAEG,EAASH,EAAA,GAClBI,EAA0BV,QAAnBA,EAAGD,aAAO,EAAPA,EAASW,eAAOV,IAAAA,GAAAA,EAE1BW,EAAsBT,EAAOJ,GACnCa,EAAoBC,QAAUd,EAE9B,IAAMe,EAAO,SAAPA,EAAQC,GACZ,IAAMC,EAAQD,EAAYX,EAA0BS,QAEhDb,SAAAA,EAASiB,OAASD,GAAQhB,eAAAA,EAASiB,SAKvCb,EAA0BS,QAAUE,EACpCH,EAAoBC,QAAQ,CAAEG,MAAAA,EAAOD,UAAAA,KALnCb,EAASW,QAAUK,OAAOC,sBAAsBL,IAS9CM,EAAS,WACTX,IACJC,GAAU,GACVN,EAA0BS,QAAU,EACpCX,EAASW,QAAUK,OAAOC,sBAAsBL,KAGlD,SAASO,IACFnB,EAASW,UAEdH,GAAU,GACVQ,OAAOI,qBAAqBpB,EAASW,SACrCX,EAASW,QAAU,KACrB,CASA,OAPAU,GAAU,WACR,GAAKZ,EAGL,OAFAS,IAEOC,CACR,GAAE,CAACV,EAASX,aAAO,EAAPA,EAASiB,QAEf,CACLR,OAAAA,EACAY,MAAAA,EACAD,OAAAA,EAEJ"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
/* @license @siberiacancode/reactuse v0.0.
|
|
2
|
-
import{_ as r}from"../../_rollupPluginBabelHelpers-
|
|
1
|
+
/* @license @siberiacancode/reactuse v0.0.66 */
|
|
2
|
+
import{_ as r}from"../../_rollupPluginBabelHelpers-CWXiPzDd.js";import{useRef as n,useState as t}from"react";import{useUnmount as e}from"../useUnmount/useUnmount.js";var o=function(o){var u=n(0),i=t(o),m=r(i,2),a=m[0],c=m[1];return e((function(){return cancelAnimationFrame(u.current)})),[a,function(r){cancelAnimationFrame(u.current),u.current=requestAnimationFrame((function(){return c(r)}))}]};export{o as useRafValue};
|
|
3
3
|
//# sourceMappingURL=useRafValue.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
/* @license @siberiacancode/reactuse v0.0.
|
|
1
|
+
/* @license @siberiacancode/reactuse v0.0.66 */
|
|
2
2
|
import{useRef as r,useEffect as t}from"react";var n=function(){var n=r(0);return t((function(){n.current+=1})),n.current};export{n as useRenderCount};
|
|
3
3
|
//# sourceMappingURL=useRenderCount.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
/* @license @siberiacancode/reactuse v0.0.
|
|
1
|
+
/* @license @siberiacancode/reactuse v0.0.66 */
|
|
2
2
|
import{useRef as e}from"react";var n=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({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};export{n as useRenderInfo};
|
|
3
3
|
//# sourceMappingURL=useRenderInfo.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
/* @license @siberiacancode/reactuse v0.0.
|
|
2
|
-
import{_ as r}from"../../_rollupPluginBabelHelpers-
|
|
1
|
+
/* @license @siberiacancode/reactuse v0.0.66 */
|
|
2
|
+
import{_ as r}from"../../_rollupPluginBabelHelpers-CWXiPzDd.js";import{useId as t,useState as o}from"react";var n=function(){var n=t(),a=o(n),e=r(a,2),i=e[0],u=e[1];return{id:i,update:function(){return u(Math.random().toString())}}};export{n as useRerender};
|
|
3
3
|
//# sourceMappingURL=useRerender.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useRerender.js","sources":["../../../../src/hooks/useRerender/useRerender.ts"],"sourcesContent":["import { useId, useState } from 'react';\n\n/** The use rerender return type */\ninterface UseRerenderReturns {\n /** The id of the rerender */\n id: string;\n /** Function to rerender the component */\n update: () => void;\n}\n\n/**\n * @name useRerender\n * @description - Hook that defines the logic to force rerender a component\n * @category Lifecycle\n *\n * @returns {UseRerenderReturns} An object containing the id and update function\n *\n * @example\n * const { id, update } = useRerender();\n */\nexport const useRerender = (): UseRerenderReturns => {\n const id = useId();\n const [value, setValue] = useState(id);\n return { id: value, update: () => setValue(Math.random().toString()) };\n};\n"],"names":["useRerender","id","useId","_useState","useState","_useState2","_slicedToArray","value","setValue","update","Math","random","toString"],"mappings":";gHAoBaA,EAAc,WACzB,IAAMC,EAAKC,IACXC,EAA0BC,EAASH,GAAGI,EAAAC,EAAAH,EAAA,GAA/BI,EAAKF,EAAA,GAAEG,EAAQH,EAAA,GACtB,MAAO,CAAEJ,GAAIM,EAAOE,OAAQ,
|
|
1
|
+
{"version":3,"file":"useRerender.js","sources":["../../../../src/hooks/useRerender/useRerender.ts"],"sourcesContent":["import { useId, useState } from 'react';\n\n/** The use rerender return type */\ninterface UseRerenderReturns {\n /** The id of the rerender */\n id: string;\n /** Function to rerender the component */\n update: () => void;\n}\n\n/**\n * @name useRerender\n * @description - Hook that defines the logic to force rerender a component\n * @category Lifecycle\n *\n * @returns {UseRerenderReturns} An object containing the id and update function\n *\n * @example\n * const { id, update } = useRerender();\n */\nexport const useRerender = (): UseRerenderReturns => {\n const id = useId();\n const [value, setValue] = useState(id);\n return { id: value, update: () => setValue(Math.random().toString()) };\n};\n"],"names":["useRerender","id","useId","_useState","useState","_useState2","_slicedToArray","value","setValue","update","Math","random","toString"],"mappings":";gHAoBaA,EAAc,WACzB,IAAMC,EAAKC,IACXC,EAA0BC,EAASH,GAAGI,EAAAC,EAAAH,EAAA,GAA/BI,EAAKF,EAAA,GAAEG,EAAQH,EAAA,GACtB,MAAO,CAAEJ,GAAIM,EAAOE,OAAQ,WAAA,OAAMD,EAASE,KAAKC,SAASC,WAAW,EACtE"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
/* @license @siberiacancode/reactuse v0.0.
|
|
2
|
-
import{c as e,_ as r}from"../../_rollupPluginBabelHelpers-
|
|
1
|
+
/* @license @siberiacancode/reactuse v0.0.66 */
|
|
2
|
+
import{c as e,_ as r}from"../../_rollupPluginBabelHelpers-CWXiPzDd.js";import{useState as n,useRef as i,useEffect as t}from"react";import{getElement as o}from"../../utils/helpers/getElement.js";import"../../utils/helpers/isClient.js";var l=function(){var l,u="object"!==e(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=u?arguments.length<=1?void 0:arguments[1]:arguments.length<=0?void 0:arguments[0],s=null===(l=null==v?void 0:v.enabled)||void 0===l||l,c=n([]),a=r(c,2),f=a[0],d=a[1],h=n(),g=r(h,2),p=g[0],b=g[1],m=i();return m.current=null==v?void 0:v.onChange,t((function(){if(s||u||p){if(Array.isArray(u)){if(!u.length)return;var e=new ResizeObserver((function(r){var n;d(r),null===(n=m.current)||void 0===n||n.call(m,r,e)}));return u.forEach((function(r){var n=o(r);n&&e.observe(n,v)})),function(){e.disconnect()}}var r=u?o(u):p;if(r){var n=new ResizeObserver((function(e){var r;d(e),null===(r=m.current)||void 0===r||r.call(m,e,n)}));return n.observe(r,v),function(){n.disconnect()}}}}),[p,u,null==v?void 0:v.box,s]),u?{entries:f}:{ref:b,entries:f}};export{l as useResizeObserver};
|
|
3
3
|
//# sourceMappingURL=useResizeObserver.js.map
|
|
@@ -1 +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 { getElement } from '@/utils/helpers';\n\n/** The resize observer target element type */\nexport type UseResizeObserverTarget =\n | RefObject<Element | null | undefined>\n | (() => Element)\n | Element;\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
|
|
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 { getElement } from '@/utils/helpers';\n\n/** The resize observer target element type */\nexport type UseResizeObserverTarget =\n | RefObject<Element | null | undefined>\n | (() => Element)\n | Element;\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 interface 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 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, setInternalRef] = useState<Element>();\n const internalOnChangeRef = useRef<UseResizeObserverOptions['onChange']>();\n internalOnChangeRef.current = options?.onChange;\n\n useEffect(() => {\n if (!enabled && !target && !internalRef) 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 as Element, options);\n });\n\n return () => {\n observer.disconnect();\n };\n }\n\n const element = target ? getElement(target) : internalRef;\n if (!element) return;\n\n const observer = new ResizeObserver((entries) => {\n setEntries(entries);\n internalOnChangeRef.current?.(entries, observer);\n });\n observer.observe(element as Element, options);\n\n return () => {\n observer.disconnect();\n };\n }, [internalRef, target, options?.box, enabled]);\n\n if (target) return { entries };\n return {\n ref: setInternalRef,\n entries\n };\n}) as UseResizeObserver;\n"],"names":["useResizeObserver","_options$enabled","target","_typeof","arguments","length","undefined","options","enabled","_useState","useState","_useState2","_slicedToArray","entries","setEntries","_useState3","_useState4","internalRef","setInternalRef","internalOnChangeRef","useRef","current","onChange","useEffect","Array","isArray","observer","ResizeObserver","_internalOnChangeRef$","call","forEach","element","getElement","observe","disconnect","_internalOnChangeRef$2","box","ref"],"mappings":";8OA4DaA,EAAqB,WAAsB,IAAAC,EAChDC,EACiB,WAArBC,EAAAC,UAAAC,QAAA,OAAAC,EAAAF,UAAqB,KAAc,YAASA,UAAAC,eAAAC,EAAAF,UAAA,IAA0BA,UAAAC,QAAA,OAAAC,EAAAF,UACJ,QADLE,EAEzDC,EAAWL,EAAME,UAAAC,QAAAC,OAAAA,EAAAF,UAAA,GAAAA,UAAAC,eAAAC,EAAAF,UAAiE,GAClFI,EAA0BP,QAAnBA,EAAGM,aAAO,EAAPA,EAASC,eAAOP,IAAAA,GAAAA,EAEhCQ,EAA8BC,EAAgC,IAAGC,EAAAC,EAAAH,EAAA,GAA1DI,EAAOF,EAAA,GAAEG,EAAUH,EAAA,GAE1BI,EAAsCL,IAAmBM,EAAAJ,EAAAG,EAAA,GAAlDE,EAAWD,EAAA,GAAEE,EAAcF,EAAA,GAC5BG,EAAsBC,IAsC5B,OArCAD,EAAoBE,QAAUd,aAAO,EAAPA,EAASe,SAEvCC,GAAU,WACR,GAAKf,GAAYN,GAAWe,EAA5B,CAEA,GAAIO,MAAMC,QAAQvB,GAAS,CACzB,IAAKA,EAAOG,OAAQ,OACpB,IAAMqB,EAAW,IAAIC,gBAAe,SAACd,GAAY,IAAAe,EAC/Cd,EAAWD,WACXe,EAAAT,EAAoBE,eAAO,IAAAO,GAA3BA,EAAAC,KAAAV,EAA8BN,EAASa,EACzC,IAQA,OANAxB,EAAO4B,SAAQ,SAAC5B,GACd,IAAM6B,EAAUC,EAAW9B,GACtB6B,GACLL,EAASO,QAAQF,EAAoBxB,EACvC,IAEO,WACLmB,EAASQ,aAEb,CAEA,IAAMH,EAAU7B,EAAS8B,EAAW9B,GAAUe,EAC9C,GAAKc,EAAL,CAEA,IAAML,EAAW,IAAIC,gBAAe,SAACd,GAAY,IAAAsB,EAC/CrB,EAAWD,WACXsB,EAAAhB,EAAoBE,eAAO,IAAAc,GAA3BA,EAAAN,KAAAV,EAA8BN,EAASa,EACzC,IAGA,OAFAA,EAASO,QAAQF,EAAoBxB,GAE9B,WACLmB,EAASQ,aATG,CArB2B,CAgC1C,GAAE,CAACjB,EAAaf,EAAQK,aAAO,EAAPA,EAAS6B,IAAK5B,IAEnCN,EAAe,CAAEW,QAAAA,GACd,CACLwB,IAAKnB,EACLL,QAAAA,EAEJ"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
/* @license @siberiacancode/reactuse v0.0.66 */
|
|
2
|
+
import{_ as n}from"../../_rollupPluginBabelHelpers-CWXiPzDd.js";import{useState as o,useEffect as e}from"react";var i=function(){var i=window&&"screen"in window&&"orientation"in window.screen,t=i?window.screen.orientation:{},r=o((function(){var n;return{angle:null!==(n=null==t?void 0:t.angle)&&void 0!==n?n:0,orientationType:null==t?void 0:t.type}})),u=n(r,2),l=u[0],a=u[1];e((function(){if(i){var n=function(){return a({angle:t.angle,orientationType:t.type})};return window.addEventListener("orientationchange",n),function(){window.removeEventListener("orientationchange",n)}}}));return{supported:i,value:l,lock:function(n){if(i&&"function"==typeof t.lock)return t.lock(n)},unlock:function(){i&&"function"==typeof t.unlock&&t.unlock()}}};export{i as useScreenOrientation};
|
|
3
|
+
//# sourceMappingURL=useScreenOrientation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useScreenOrientation.js","sources":["../../../../src/hooks/useScreenOrientation/useScreenOrientation.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\n\ndeclare global {\n interface ScreenOrientation {\n lock: (orientation: OrientationLockType) => Promise<void>\n }\n}\n\n/* The use device orientation value type */\nexport interface UseScreenOrientationValue {\n /** The current angle */\n angle: number\n /** The current orientation type */\n orientationType: OrientationType\n}\n\n/* The screen lock orientation type */\nexport type OrientationLockType = 'any' | 'natural' | 'landscape' | 'portrait' | 'portrait-primary' | 'portrait-secondary' | 'landscape-primary' | 'landscape-secondary';\n\n/* The use device orientation return type */\nexport interface useScreenOrientationReturn {\n /** Whether the screen orientation is supported */\n supported: boolean\n /** The current screen orientation value */\n value: UseScreenOrientationValue\n /** Lock the screen orientation */\n lock: (orientation: OrientationLockType) => void\n /** Unlock the screen orientation */\n unlock: () => void\n}\n\n/**\n * @name useScreenOrientation\n * @description - Hook that provides the current screen orientation\n * @category Sensors\n *\n * @returns {useScreenOrientationReturn} The current screen orientation\n *\n * @example\n * const { supported, value, lock, unlock } = useScreenOrientation();\n */\nexport const useScreenOrientation = (): useScreenOrientationReturn => {\n const supported = window && 'screen' in window && 'orientation' in window.screen;\n const screenOrientation = (supported ? window.screen.orientation : {}) as ScreenOrientation;\n\n const [value, setValue] = useState<UseScreenOrientationValue>(() => {\n return {\n angle: screenOrientation?.angle ?? 0,\n orientationType: screenOrientation?.type\n };\n });\n\n useEffect(() => {\n if (!supported) return;\n\n const onOrientationChange = () =>\n setValue({\n angle: screenOrientation.angle,\n orientationType: screenOrientation.type\n });\n\n window.addEventListener('orientationchange', onOrientationChange);\n return () => {\n window.removeEventListener('orientationchange', onOrientationChange);\n };\n });\n\n const lock = (type: OrientationLockType) => {\n if (supported && typeof screenOrientation.lock === 'function')\n return screenOrientation.lock(type);\n };\n\n const unlock = () => {\n if (supported && typeof screenOrientation.unlock === 'function')\n screenOrientation.unlock();\n };\n\n return {\n supported,\n value,\n lock,\n unlock\n };\n};\n"],"names":["useScreenOrientation","supported","window","screen","screenOrientation","orientation","_useState","useState","_screenOrientation$an","angle","orientationType","type","_useState2","_slicedToArray","value","setValue","useEffect","onOrientationChange","addEventListener","removeEventListener","lock","unlock"],"mappings":";oHAyCaA,EAAuB,WAClC,IAAMC,EAAYC,QAAU,WAAYA,QAAU,gBAAiBA,OAAOC,OACpEC,EAAqBH,EAAYC,OAAOC,OAAOE,YAAc,CAAA,EAEnEC,EAA0BC,GAAoC,WAAM,IAAAC,EAClE,MAAO,CACLC,MAA+BD,QAA1BA,EAAEJ,aAAiB,EAAjBA,EAAmBK,aAAKD,IAAAA,EAAAA,EAAI,EACnCE,gBAAiBN,aAAiB,EAAjBA,EAAmBO,KAExC,IAAEC,EAAAC,EAAAP,EAAA,GALKQ,EAAKF,EAAA,GAAEG,EAAQH,EAAA,GAOtBI,GAAU,WACR,GAAKf,EAAL,CAEA,IAAMgB,EAAsB,WAAH,OACvBF,EAAS,CACPN,MAAOL,EAAkBK,MACzBC,gBAAiBN,EAAkBO,MACnC,EAGJ,OADAT,OAAOgB,iBAAiB,oBAAqBD,GACtC,WACLf,OAAOiB,oBAAoB,oBAAqBF,GAVlC,CAYlB,IAYA,MAAO,CACLhB,UAAAA,EACAa,MAAAA,EACAM,KAbW,SAACT,GACZ,GAAIV,GAA+C,mBAA3BG,EAAkBgB,KACxC,OAAOhB,EAAkBgB,KAAKT,IAYhCU,OATa,WACTpB,GAAiD,mBAA7BG,EAAkBiB,QACxCjB,EAAkBiB,UASxB"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
/* @license @siberiacancode/reactuse v0.0.
|
|
2
|
-
import{_ as r}from"../../_rollupPluginBabelHelpers-
|
|
1
|
+
/* @license @siberiacancode/reactuse v0.0.66 */
|
|
2
|
+
import{_ as r}from"../../_rollupPluginBabelHelpers-CWXiPzDd.js";import{useState as t,useEffect as e}from"react";var n="script-status",o=function(o){var i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},u=t((function(){var r=document.querySelector('script[src="'.concat(o,'"]')),t=null==r?void 0:r.getAttribute(n);return t||(r?"unknown":"loading")})),c=r(u,2),a=c[0],s=c[1],d=i.removeOnUnmount,v=void 0===d||d,l=i.async,m=void 0===l||l;return e((function(){var t=document.querySelector('script[src="'.concat(o,'"]')),e=null==t?void 0:t.getAttribute(n);if(e)return s(e);if(t)return s("unknown");var u=document.createElement("script");u.src=o,u.async=m;for(var c=0,a=Object.entries(i);c<a.length;c++){var d=r(a[c],2),l=d[0],f=d[1];u.setAttribute(l,String(f))}u.setAttribute(n,"loading"),document.body.appendChild(u);var p=function(){u.setAttribute(n,"ready"),s("ready")},b=function(){u.setAttribute(n,"error"),s("error")};return u.addEventListener("load",p),u.addEventListener("error",b),function(){v&&u.remove(),u.removeEventListener("load",p),u.removeEventListener("error",b)}}),[o,v]),a};export{n as SCRIPT_STATUS_ATTRIBUTE_NAME,o as useScript};
|
|
3
3
|
//# sourceMappingURL=useScript.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
/* @license @siberiacancode/reactuse v0.0.
|
|
2
|
-
import{b as o}from"../../_rollupPluginBabelHelpers-
|
|
1
|
+
/* @license @siberiacancode/reactuse v0.0.66 */
|
|
2
|
+
import{b as o}from"../../_rollupPluginBabelHelpers-CWXiPzDd.js";import{useStorage as e}from"../useStorage/useStorage.js";import"react";import"../../utils/helpers/isClient.js";import"../useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.js";var r=function(r,t,s){return e(r,o({initialValue:t,storage:window.sessionStorage},s))};export{r as useSessionStorage};
|
|
3
3
|
//# sourceMappingURL=useSessionStorage.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
/* @license @siberiacancode/reactuse v0.0.
|
|
2
|
-
import{_ as e}from"../../_rollupPluginBabelHelpers-
|
|
1
|
+
/* @license @siberiacancode/reactuse v0.0.66 */
|
|
2
|
+
import{_ as e}from"../../_rollupPluginBabelHelpers-CWXiPzDd.js";import{useState as n}from"react";var r=function(r){var t=n(new Set(r)),u=e(t,2),i=u[0],f=u[1];return{value:i,size:i.size,has:function(e){return i.has(e)},add:function(e){return f((function(n){return new Set(n).add(e)}))},remove:function(e){return f((function(n){if(!n.has(e))return n;var r=new Set(n);return r.delete(e),r}))},clear:function(){return f(new Set)},reset:function(){return f(new Set(r))},toggle:function(e){return f((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 f(i.union(e))},difference:function(e){return f(i.difference(e))},symmetricDifference:function(e){return f(i.symmetricDifference(e))},intersection:function(e){return f(i.intersection(e))}}};export{r as useSet};
|
|
3
3
|
//# sourceMappingURL=useSet.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSet.js","sources":["../../../../src/hooks/useSet/useSet.ts"],"sourcesContent":["import { useState } from 'react';\
|
|
1
|
+
{"version":3,"file":"useSet.js","sources":["../../../../src/hooks/useSet/useSet.ts"],"sourcesContent":["import { useState } from 'react';\n\n/** The use set return type */\ninterface UseSetReturn<Value> {\n /** The current set */\n value: Set<Value>;\n /** The size of the set */\n size: number;\n /** Function to check if a value exists in the set */\n has: (value: Value) => boolean;\n /** Function to add a value to the set */\n add: (value: Value) => void;\n /** Function to remove a value from the set */\n remove: (value: Value) => void;\n /** Function to clear the set */\n clear: () => void;\n /** Function to toggle a value in the set */\n reset: () => void;\n /** Function to toggle a value in the set */\n toggle: (value: Value) => void;\n /** Function to get the union of two sets */\n union: (other: Set<Value>) => void;\n /** Function to get the difference of two sets */\n intersection: (other: Set<Value>) => void;\n /** Function to get the symmetric difference of two sets */\n difference: (other: Set<Value>) => void;\n /** Function to get the symmetric difference of two sets */\n symmetricDifference: (other: Set<Value>) => void;\n}\n\n/**\n * @name useSet\n * @description - Hook that manages a set structure\n * @category Utilities\n *\n * @template Value The type of the value\n * @param {Value[]} [values] The initial array of the set\n * @returns {UseSetReturn<Value>} An object containing the current set and functions to interact with the set\n *\n * @example\n * const { value, add, remove, clear, reset, toggle, union, intersection, difference, symmetricDifference, size, has } = useSet([1, 2, 3]);\n */\nexport const useSet = <Value>(values?: Value[]): UseSetReturn<Value> => {\n const [set, setSet] = useState(new Set(values));\n\n const add = (value: Value) => setSet((prevSet) => new Set(prevSet).add(value));\n const remove = (value: Value) =>\n setSet((prevSet) => {\n if (!prevSet.has(value)) return prevSet;\n const newSet = new Set(prevSet);\n newSet.delete(value);\n return newSet;\n });\n const clear = () => setSet(new Set());\n const reset = () => setSet(new Set(values));\n const toggle = (value: Value) =>\n setSet((prevSet) => {\n if (!prevSet.has(value)) return new Set(prevSet).add(value);\n const newSet = new Set(prevSet);\n newSet.delete(value);\n return newSet;\n });\n const union = (other: Set<Value>) => setSet(set.union(other));\n const difference = (other: Set<Value>) => setSet(set.difference(other));\n const symmetricDifference = (other: Set<Value>) => setSet(set.symmetricDifference(other));\n const intersection = (other: Set<Value>) => setSet(set.intersection(other));\n const has = (value: Value) => set.has(value);\n\n return {\n value: set,\n size: set.size,\n has,\n add,\n remove,\n clear,\n reset,\n toggle,\n union,\n difference,\n symmetricDifference,\n intersection\n };\n};\n"],"names":["useSet","values","_useState","useState","Set","_useState2","_slicedToArray","set","setSet","value","size","has","add","prevSet","remove","newSet","clear","reset","toggle","union","other","difference","symmetricDifference","intersection"],"mappings":";qGA0CaA,EAAS,SAAQC,GAC5B,IAAAC,EAAsBC,EAAS,IAAIC,IAAIH,IAAQI,EAAAC,EAAAJ,EAAA,GAAxCK,EAAGF,EAAA,GAAEG,EAAMH,EAAA,GAyBlB,MAAO,CACLI,MAAOF,EACPG,KAAMH,EAAIG,KACVC,IALU,SAACF,GAAY,OAAKF,EAAII,IAAIF,EAAM,EAM1CG,IA3BU,SAACH,GAAY,OAAKD,GAAO,SAACK,GAAO,OAAK,IAAIT,IAAIS,GAASD,IAAIH,KAAO,EA4B5EK,OA3Ba,SAACL,GAAY,OAC1BD,GAAO,SAACK,GACN,IAAKA,EAAQF,IAAIF,GAAQ,OAAOI,EAChC,IAAME,EAAS,IAAIX,IAAIS,GAEvB,OADAE,EAAM,OAAQN,GACPM,CACT,GAAE,EAsBFC,MArBY,WAAH,OAASR,EAAO,IAAIJ,IAAM,EAsBnCa,MArBY,WAAH,OAAST,EAAO,IAAIJ,IAAIH,GAAQ,EAsBzCiB,OArBa,SAACT,GAAY,OAC1BD,GAAO,SAACK,GACN,IAAKA,EAAQF,IAAIF,GAAQ,OAAO,IAAIL,IAAIS,GAASD,IAAIH,GACrD,IAAMM,EAAS,IAAIX,IAAIS,GAEvB,OADAE,EAAM,OAAQN,GACPM,CACT,GAAE,EAgBFI,MAfY,SAACC,GAAiB,OAAKZ,EAAOD,EAAIY,MAAMC,GAAO,EAgB3DC,WAfiB,SAACD,GAAiB,OAAKZ,EAAOD,EAAIc,WAAWD,GAAO,EAgBrEE,oBAf0B,SAACF,GAAiB,OAAKZ,EAAOD,EAAIe,oBAAoBF,GAAO,EAgBvFG,aAfmB,SAACH,GAAiB,OAAKZ,EAAOD,EAAIgB,aAAaH,GAAO,EAiB7E"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
/* @license @siberiacancode/reactuse v0.0.
|
|
2
|
-
import{d as r,e as a,b as e}from"../../_rollupPluginBabelHelpers-
|
|
1
|
+
/* @license @siberiacancode/reactuse v0.0.66 */
|
|
2
|
+
import{d as r,e as a,b as e}from"../../_rollupPluginBabelHelpers-CWXiPzDd.js";var n=function(n){var t=navigator&&"share"in navigator,s=function(){var s=r(a().mark((function r(s){var i;return a().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:if(t){r.next=2;break}return r.abrupt("return");case 2:return(i=e(e({},n),s)).files&&navigator.canShare({files:i.files})&&navigator.share(i),r.abrupt("return",navigator.share(i));case 5:case"end":return r.stop()}}),r)})));return function(r){return s.apply(this,arguments)}}();return{share:s,supported:t}};export{n as useShare};
|
|
3
3
|
//# sourceMappingURL=useShare.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
/* @license @siberiacancode/reactuse v0.0.
|
|
2
|
-
import{c as t,_ as r}from"../../_rollupPluginBabelHelpers-
|
|
1
|
+
/* @license @siberiacancode/reactuse v0.0.66 */
|
|
2
|
+
import{c as t,_ as r}from"../../_rollupPluginBabelHelpers-CWXiPzDd.js";import{useRef as n,useState as e}from"react";var i=function(i){var u="object"===t(i)?i.max:i,o="object"===t(i)?i.initial:1,c=n(o>u||o<1?1:o),s=e(o),a=r(s,2),f=a[0],l=a[1],p=1===f,m=f===u;return{counts:u,currentStep:f,isFirst:p,isLast:m,next:function(){m||l((function(t){return t+1}))},back:function(){p||l((function(t){return t-1}))},reset:function(){return l(c.current)},set:function(t){return"first"===t?l(c.current):"last"===t||t>=u?l(u):t<=1?l(1):void l(t)}}};export{i as useStep};
|
|
3
3
|
//# sourceMappingURL=useStep.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
/* @license @siberiacancode/reactuse v0.0.
|
|
2
|
-
import{_ as n,b as t}from"../../_rollupPluginBabelHelpers-
|
|
1
|
+
/* @license @siberiacancode/reactuse v0.0.66 */
|
|
2
|
+
import{_ as n,b as t}from"../../_rollupPluginBabelHelpers-CWXiPzDd.js";import{useState as r,useEffect as o}from"react";import"../../utils/helpers/isClient.js";import{useEvent as e}from"../useEvent/useEvent.js";import"../../index-CNvEQA9K.js";import"react-dom";var u=function(n){return n?{days:Math.floor(n/86400),hours:Math.floor(n%86400/3600),minutes:Math.floor(n%3600/60),seconds:Math.floor(n%60),count:n}:{days:0,hours:0,minutes:0,seconds:0,count:0}},s=function(){for(var s,i,c=arguments.length,a=new Array(c),l=0;l<c;l++)a[l]=arguments[l];var f=null!==(s="number"==typeof a[0]?a[0]:null===(i=a[0])||void 0===i?void 0:i.initialTime)&&void 0!==s?s:0,d="number"==typeof a[0]?a[1]:a[0],m=r(u(f)),p=n(m,2),v=p[0],h=p[1],y=r(!(null!=d&&d.enabled)),b=n(y,2),g=b[0],j=b[1],M=e((function(){var n=v.count+1;return n%60==0?h(t(t({},v),{},{minutes:v.minutes+1,seconds:0,count:n})):n%3600==0?h(t(t({},v),{},{hours:v.hours+1,minutes:0,seconds:0,count:n})):n%86400==0?h(t(t({},v),{},{days:v.days+1,hours:0,minutes:0,seconds:0,count:n})):void h(t(t({},v),{},{seconds:v.seconds+1,count:n}))}));return o((function(){if(!g){var n=setInterval((function(){return M()}),1e3);return function(){return clearInterval(n)}}}),[g]),t(t({},v),{},{paused:g,pause:function(){return j(!0)},start:function(){return j(!1)},reset:function(){return h(u(f))},toggle:function(){return j((function(n){return!n}))}})};export{s as useStopwatch};
|
|
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\
|
|
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\ninterface 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 * @category Time\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","useStopwatch","_ref","_params$","_len","arguments","length","params","Array","_key","initialTime","options","_useState","useState","_useState2","_slicedToArray","setTime","_useState3","enabled","_useState4","paused","setPaused","onInterval","useEvent","updatedCount","_objectSpread","useEffect","interval","setInterval","clearInterval","pause","start","reset","toggle","prevPause"],"mappings":";oQAIA,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,EA2DaC,EAAgB,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,EAASrB,EAAiBkB,IAAaI,EAAAC,EAAAH,EAAA,GAAxDnB,EAAIqB,EAAA,GAAEE,EAAOF,EAAA,GACpBG,EAA4BJ,IAAUF,SAAAA,EAASO,UAAQC,EAAAJ,EAAAE,EAAA,GAAhDG,EAAMD,EAAA,GAAEE,EAASF,EAAA,GAElBG,EAAaC,GAAS,WAC1B,IAAMC,EAAe/B,EAAKO,MAAQ,EAElC,OAAIwB,EAAe,IAAO,EACjBR,EAAOS,EAAAA,KACThC,GAAI,GAAA,CACPK,QAASL,EAAKK,QAAU,EACxBC,QAAS,EACTC,MAAOwB,KAIPA,EAAgB,MAAa,EACxBR,EAAOS,EAAAA,KACThC,GAAI,GAAA,CACPI,MAAOJ,EAAKI,MAAQ,EACpBC,QAAS,EACTC,QAAS,EACTC,MAAOwB,KAIPA,EAAY,OAAsB,EAC7BR,EAAOS,EAAAA,KACThC,GAAI,GAAA,CACPC,KAAMD,EAAKC,KAAO,EAClBG,MAAO,EACPC,QAAS,EACTC,QAAS,EACTC,MAAOwB,UAIXR,EAAOS,EAAAA,KACFhC,GAAI,CAAA,EAAA,CACPM,QAASN,EAAKM,QAAU,EACxBC,MAAOwB,IAEX,IAQA,OANAE,GAAU,WACR,IAAIN,EAAJ,CACA,IAAMO,EAAWC,aAAY,WAAA,OAAMN,GAAY,GAAE,KACjD,OAAO,WAAA,OAAMO,cAAcF,EAAS,CAFxB,CAGd,GAAG,CAACP,IAEJK,EAAAA,EAAA,CAAA,EACKhC,GAAI,CAAA,EAAA,CACP2B,OAAAA,EACAU,MAAO,WAAA,OAAMT,GAAU,EAAK,EAC5BU,MAAO,WAAA,OAAMV,GAAU,EAAM,EAC7BW,MAAO,WAAA,OAAMhB,EAAQxB,EAAiBkB,GAAa,EACnDuB,OAAQ,WAAA,OAAMZ,GAAU,SAACa,GAAS,OAAMA,IAAU,GAEtD"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
/* @license @siberiacancode/reactuse v0.0.
|
|
2
|
-
import{c as e}from"../../_rollupPluginBabelHelpers-
|
|
1
|
+
/* @license @siberiacancode/reactuse v0.0.66 */
|
|
2
|
+
import{c as e}from"../../_rollupPluginBabelHelpers-CWXiPzDd.js";import{useSyncExternalStore as n}from"react";import{isClient as t}from"../../utils/helpers/isClient.js";import{useIsomorphicLayoutEffect as r}from"../useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.js";var o=function(e){return window.dispatchEvent(new StorageEvent("storage",e))},i=function(e,n,t){var r=e.getItem(n);e.setItem(n,t),o({key:n,oldValue:r,newValue:t,storageArea:e})},u=function(e,n){var t=e.getItem(n);e.removeItem(n),o({key:n,oldValue:t,newValue:null,storageArea:e})},a=function(e,n){var t=e.getItem(n);if(t)return t},l=function(e){return window.addEventListener("storage",e),function(){return window.removeEventListener("storage",e)}},s=function(){},f=function(o,f){var c,v="object"===e(f)?f:void 0,d=v?null==v?void 0:v.initialValue:f,m=null!==(c=null==v?void 0:v.storage)&&void 0!==c?c:window.localStorage,g=function(e){return null!=v&&v.serializer?v.serializer(e):JSON.stringify(e)},p=n(l,(function(){return a(m,o)}),s),w=function(e){if(null===e)return u(m,o);i(m,o,g(e))};r((function(){void 0===a(m,o)&&void 0!==d&&i(m,o,g(d instanceof Function?d():d))}),[o]);var I=function(){return u(m,o)};return t?{value:p?function(e){if(null!=v&&v.deserializer)return v.deserializer(e);if("undefined"!==e)try{return JSON.parse(e)}catch(n){return e}}(p):void 0,set:w,remove:I}:{value:d instanceof Function?d():d,set:w,remove:I}};export{o as dispatchStorageEvent,f as useStorage};
|
|
3
3
|
//# sourceMappingURL=useStorage.js.map
|