tool-shack 1.1.1 → 1.1.2
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 +11 -1
- package/dist/cjs/browser/index.cjs +230 -0
- package/dist/cjs/browser/index.cjs.map +1 -0
- package/dist/cjs/dateTime/index.cjs +93 -0
- package/dist/cjs/dateTime/index.cjs.map +1 -0
- package/dist/cjs/dom/index.cjs +305 -0
- package/dist/cjs/dom/index.cjs.map +1 -0
- package/dist/cjs/general/index.cjs +140 -0
- package/dist/cjs/general/index.cjs.map +1 -0
- package/dist/cjs/index.cjs +1097 -0
- package/dist/cjs/index.cjs.map +1 -0
- package/dist/cjs/schedule/index.cjs +155 -0
- package/dist/cjs/schedule/index.cjs.map +1 -0
- package/dist/cjs/storage/index.cjs +165 -0
- package/dist/cjs/storage/index.cjs.map +1 -0
- package/dist/cjs/string/index.cjs +188 -0
- package/dist/cjs/string/index.cjs.map +1 -0
- package/dist/esm/browser/deleteCookie.d.ts +1 -2
- package/dist/esm/browser/deleteCookie.js +8 -10
- package/dist/esm/browser/deleteCookie.js.map +1 -1
- package/dist/esm/browser/detectOS.d.ts +0 -1
- package/dist/esm/browser/detectOS.js +9 -24
- package/dist/esm/browser/detectOS.js.map +1 -1
- package/dist/esm/browser/downloadFile.d.ts +0 -1
- package/dist/esm/browser/downloadFile.js +8 -10
- package/dist/esm/browser/downloadFile.js.map +1 -1
- package/dist/esm/browser/getCookie.d.ts +0 -1
- package/dist/esm/browser/getCookie.js +6 -13
- package/dist/esm/browser/getCookie.js.map +1 -1
- package/dist/esm/browser/getQueryParams.d.ts +0 -1
- package/dist/esm/browser/getQueryParams.js +6 -13
- package/dist/esm/browser/getQueryParams.js.map +1 -1
- package/dist/esm/browser/index.d.ts +0 -1
- package/dist/esm/browser/index.js +19 -20
- package/dist/esm/browser/interfaces/detectOS.d.ts +0 -1
- package/dist/esm/browser/interfaces/detectOS.js +1 -2
- package/dist/esm/browser/interfaces/index.d.ts +0 -1
- package/dist/esm/browser/interfaces/index.js +3 -4
- package/dist/esm/browser/interfaces/isTouchSupported.d.ts +0 -1
- package/dist/esm/browser/interfaces/isTouchSupported.js +1 -2
- package/dist/esm/browser/interfaces/setCookie.d.ts +0 -1
- package/dist/esm/browser/interfaces/setCookie.js +1 -2
- package/dist/esm/browser/isPageVisible.d.ts +0 -1
- package/dist/esm/browser/isPageVisible.js +3 -9
- package/dist/esm/browser/isPageVisible.js.map +1 -1
- package/dist/esm/browser/isPushNotificationSupported.d.ts +0 -1
- package/dist/esm/browser/isPushNotificationSupported.js +3 -9
- package/dist/esm/browser/isPushNotificationSupported.js.map +1 -1
- package/dist/esm/browser/isScrollBehaviorSupported.d.ts +0 -1
- package/dist/esm/browser/isScrollBehaviorSupported.js +3 -6
- package/dist/esm/browser/isScrollBehaviorSupported.js.map +1 -1
- package/dist/esm/browser/isShareSupported.d.ts +0 -1
- package/dist/esm/browser/isShareSupported.js +3 -6
- package/dist/esm/browser/isShareSupported.js.map +1 -1
- package/dist/esm/browser/isTabFocused.d.ts +2 -2
- package/dist/esm/browser/isTabFocused.js +4 -6
- package/dist/esm/browser/isTabFocused.js.map +1 -1
- package/dist/esm/browser/isTouchSupported.d.ts +0 -1
- package/dist/esm/browser/isTouchSupported.js +3 -8
- package/dist/esm/browser/isTouchSupported.js.map +1 -1
- package/dist/esm/browser/networkStatusListener.d.ts +0 -1
- package/dist/esm/browser/networkStatusListener.js +6 -11
- package/dist/esm/browser/networkStatusListener.js.map +1 -1
- package/dist/esm/browser/pageVisibilityListener.d.ts +0 -1
- package/dist/esm/browser/pageVisibilityListener.js +8 -20
- package/dist/esm/browser/pageVisibilityListener.js.map +1 -1
- package/dist/esm/browser/preferColorScheme.d.ts +1 -2
- package/dist/esm/browser/preferColorScheme.js +5 -20
- package/dist/esm/browser/preferColorScheme.js.map +1 -1
- package/dist/esm/browser/scrollToElement.d.ts +0 -1
- package/dist/esm/browser/scrollToElement.js +5 -11
- package/dist/esm/browser/scrollToElement.js.map +1 -1
- package/dist/esm/browser/scrollToPosition.d.ts +0 -1
- package/dist/esm/browser/scrollToPosition.js +10 -21
- package/dist/esm/browser/scrollToPosition.js.map +1 -1
- package/dist/esm/browser/setCookie.d.ts +0 -1
- package/dist/esm/browser/setCookie.js +8 -20
- package/dist/esm/browser/setCookie.js.map +1 -1
- package/dist/esm/browser/tabFocusListener.d.ts +2 -2
- package/dist/esm/browser/tabFocusListener.js +4 -6
- package/dist/esm/browser/tabFocusListener.js.map +1 -1
- package/dist/esm/dateTime/dateAsIso.d.ts +0 -1
- package/dist/esm/dateTime/dateAsIso.js +4 -10
- package/dist/esm/dateTime/dateAsIso.js.map +1 -1
- package/dist/esm/dateTime/index.d.ts +0 -1
- package/dist/esm/dateTime/index.js +5 -6
- package/dist/esm/dateTime/interfaces/index.d.ts +0 -1
- package/dist/esm/dateTime/interfaces/index.js +1 -2
- package/dist/esm/dateTime/interfaces/parseDuration.d.ts +0 -1
- package/dist/esm/dateTime/interfaces/parseDuration.js +1 -2
- package/dist/esm/dateTime/isSameDay.d.ts +0 -1
- package/dist/esm/dateTime/isSameDay.js +4 -11
- package/dist/esm/dateTime/isSameDay.js.map +1 -1
- package/dist/esm/dateTime/parseDuration.d.ts +0 -1
- package/dist/esm/dateTime/parseDuration.js +7 -11
- package/dist/esm/dateTime/parseDuration.js.map +1 -1
- package/dist/esm/dateTime/timeAgo.d.ts +0 -1
- package/dist/esm/dateTime/timeAgo.js +11 -24
- package/dist/esm/dateTime/timeAgo.js.map +1 -1
- package/dist/esm/dom/addAsyncEventListener.d.ts +0 -1
- package/dist/esm/dom/addAsyncEventListener.js +15 -25
- package/dist/esm/dom/addAsyncEventListener.js.map +1 -1
- package/dist/esm/dom/addClickOutsideListener.d.ts +0 -1
- package/dist/esm/dom/addClickOutsideListener.js +6 -13
- package/dist/esm/dom/addClickOutsideListener.js.map +1 -1
- package/dist/esm/dom/addEventListener.d.ts +0 -1
- package/dist/esm/dom/addEventListener.js +12 -17
- package/dist/esm/dom/addEventListener.js.map +1 -1
- package/dist/esm/dom/appendAfter.d.ts +0 -1
- package/dist/esm/dom/appendAfter.js +3 -8
- package/dist/esm/dom/appendAfter.js.map +1 -1
- package/dist/esm/dom/appendBefore.d.ts +0 -1
- package/dist/esm/dom/appendBefore.js +3 -8
- package/dist/esm/dom/appendBefore.js.map +1 -1
- package/dist/esm/dom/copyToClipboard.d.ts +0 -1
- package/dist/esm/dom/copyToClipboard.js +7 -16
- package/dist/esm/dom/copyToClipboard.js.map +1 -1
- package/dist/esm/dom/createElement.d.ts +0 -1
- package/dist/esm/dom/createElement.js +17 -43
- package/dist/esm/dom/createElement.js.map +1 -1
- package/dist/esm/dom/fireEvent.d.ts +0 -1
- package/dist/esm/dom/fireEvent.js +3 -8
- package/dist/esm/dom/fireEvent.js.map +1 -1
- package/dist/esm/dom/getElementOffset.d.ts +0 -1
- package/dist/esm/dom/getElementOffset.js +7 -8
- package/dist/esm/dom/getElementOffset.js.map +1 -1
- package/dist/esm/dom/index.d.ts +0 -1
- package/dist/esm/dom/index.js +15 -16
- package/dist/esm/dom/interfaces/createElement.d.ts +0 -1
- package/dist/esm/dom/interfaces/createElement.js +1 -2
- package/dist/esm/dom/interfaces/index.d.ts +0 -1
- package/dist/esm/dom/interfaces/index.js +2 -3
- package/dist/esm/dom/interfaces/toggleFullscreenWithFallback.d.ts +0 -1
- package/dist/esm/dom/interfaces/toggleFullscreenWithFallback.js +1 -2
- package/dist/esm/dom/isInViewport.d.ts +0 -1
- package/dist/esm/dom/isInViewport.js +4 -12
- package/dist/esm/dom/isInViewport.js.map +1 -1
- package/dist/esm/dom/toggleFullscreen.d.ts +0 -1
- package/dist/esm/dom/toggleFullscreen.js +5 -13
- package/dist/esm/dom/toggleFullscreen.js.map +1 -1
- package/dist/esm/dom/toggleFullscreenWithFallback.d.ts +0 -1
- package/dist/esm/dom/toggleFullscreenWithFallback.js +20 -26
- package/dist/esm/dom/toggleFullscreenWithFallback.js.map +1 -1
- package/dist/esm/dom/types/createElement.d.ts +0 -1
- package/dist/esm/dom/types/createElement.js +1 -2
- package/dist/esm/dom/types/index.d.ts +0 -1
- package/dist/esm/dom/types/index.js +2 -3
- package/dist/esm/dom/types/toggleFullscreenWithFallback.d.ts +0 -1
- package/dist/esm/dom/types/toggleFullscreenWithFallback.js +1 -2
- package/dist/esm/dom/waitForElement.d.ts +0 -1
- package/dist/esm/dom/waitForElement.js +20 -28
- package/dist/esm/dom/waitForElement.js.map +1 -1
- package/dist/esm/general/chunk.d.ts +0 -1
- package/dist/esm/general/chunk.js +5 -14
- package/dist/esm/general/chunk.js.map +1 -1
- package/dist/esm/general/clamp.d.ts +0 -1
- package/dist/esm/general/clamp.js +3 -9
- package/dist/esm/general/clamp.js.map +1 -1
- package/dist/esm/general/groupBy.d.ts +0 -1
- package/dist/esm/general/groupBy.js +5 -12
- package/dist/esm/general/groupBy.js.map +1 -1
- package/dist/esm/general/index.d.ts +0 -1
- package/dist/esm/general/index.js +9 -10
- package/dist/esm/general/isEmpty.d.ts +0 -1
- package/dist/esm/general/isEmpty.js +8 -22
- package/dist/esm/general/isEmpty.js.map +1 -1
- package/dist/esm/general/isEqual.d.ts +0 -1
- package/dist/esm/general/isEqual.js +17 -48
- package/dist/esm/general/isEqual.js.map +1 -1
- package/dist/esm/general/isNil.d.ts +0 -1
- package/dist/esm/general/isNil.js +3 -7
- package/dist/esm/general/isNil.js.map +1 -1
- package/dist/esm/general/isValidJson.d.ts +0 -1
- package/dist/esm/general/isValidJson.js +4 -9
- package/dist/esm/general/isValidJson.js.map +1 -1
- package/dist/esm/general/pick.d.ts +0 -1
- package/dist/esm/general/pick.js +4 -13
- package/dist/esm/general/pick.js.map +1 -1
- package/dist/esm/general/unique.d.ts +0 -1
- package/dist/esm/general/unique.js +5 -12
- package/dist/esm/general/unique.js.map +1 -1
- package/dist/esm/index.d.ts +0 -1
- package/dist/esm/index.js +7 -8
- package/dist/esm/schedule/debounce.d.ts +0 -1
- package/dist/esm/schedule/debounce.js +8 -15
- package/dist/esm/schedule/debounce.js.map +1 -1
- package/dist/esm/schedule/index.d.ts +0 -1
- package/dist/esm/schedule/index.js +7 -8
- package/dist/esm/schedule/interfaces/debounce.d.ts +0 -1
- package/dist/esm/schedule/interfaces/debounce.js +1 -2
- package/dist/esm/schedule/interfaces/index.d.ts +0 -1
- package/dist/esm/schedule/interfaces/index.js +4 -5
- package/dist/esm/schedule/interfaces/retry.d.ts +0 -1
- package/dist/esm/schedule/interfaces/retry.js +1 -2
- package/dist/esm/schedule/interfaces/runAnimation.d.ts +0 -1
- package/dist/esm/schedule/interfaces/runAnimation.js +1 -2
- package/dist/esm/schedule/interfaces/throttle.d.ts +0 -1
- package/dist/esm/schedule/interfaces/throttle.js +1 -2
- package/dist/esm/schedule/retry.d.ts +0 -1
- package/dist/esm/schedule/retry.js +11 -21
- package/dist/esm/schedule/retry.js.map +1 -1
- package/dist/esm/schedule/runAnimation.d.ts +0 -1
- package/dist/esm/schedule/runAnimation.js +17 -29
- package/dist/esm/schedule/runAnimation.js.map +1 -1
- package/dist/esm/schedule/runAsync.d.ts +0 -1
- package/dist/esm/schedule/runAsync.js +9 -13
- package/dist/esm/schedule/runAsync.js.map +1 -1
- package/dist/esm/schedule/sleep.d.ts +0 -1
- package/dist/esm/schedule/sleep.js +3 -7
- package/dist/esm/schedule/sleep.js.map +1 -1
- package/dist/esm/schedule/throttle.d.ts +0 -1
- package/dist/esm/schedule/throttle.js +10 -18
- package/dist/esm/schedule/throttle.js.map +1 -1
- package/dist/esm/storage/clearLocalStorage.d.ts +0 -1
- package/dist/esm/storage/clearLocalStorage.js +5 -13
- package/dist/esm/storage/clearLocalStorage.js.map +1 -1
- package/dist/esm/storage/clearSessionStorage.d.ts +0 -1
- package/dist/esm/storage/clearSessionStorage.js +5 -13
- package/dist/esm/storage/clearSessionStorage.js.map +1 -1
- package/dist/esm/storage/getLocalStorage.d.ts +0 -1
- package/dist/esm/storage/getLocalStorage.js +11 -25
- package/dist/esm/storage/getLocalStorage.js.map +1 -1
- package/dist/esm/storage/getSessionStorage.d.ts +0 -1
- package/dist/esm/storage/getSessionStorage.js +11 -25
- package/dist/esm/storage/getSessionStorage.js.map +1 -1
- package/dist/esm/storage/index.d.ts +0 -1
- package/dist/esm/storage/index.js +9 -10
- package/dist/esm/storage/interfaces/index.d.ts +0 -1
- package/dist/esm/storage/interfaces/index.js +1 -2
- package/dist/esm/storage/interfaces/storage.d.ts +0 -1
- package/dist/esm/storage/interfaces/storage.js +1 -2
- package/dist/esm/storage/removeLocalStorage.d.ts +0 -1
- package/dist/esm/storage/removeLocalStorage.js +5 -14
- package/dist/esm/storage/removeLocalStorage.js.map +1 -1
- package/dist/esm/storage/removeSessionStorage.d.ts +0 -1
- package/dist/esm/storage/removeSessionStorage.js +5 -14
- package/dist/esm/storage/removeSessionStorage.js.map +1 -1
- package/dist/esm/storage/setLocalStorage.d.ts +0 -1
- package/dist/esm/storage/setLocalStorage.js +7 -18
- package/dist/esm/storage/setLocalStorage.js.map +1 -1
- package/dist/esm/storage/setSessionStorage.d.ts +0 -1
- package/dist/esm/storage/setSessionStorage.js +7 -18
- package/dist/esm/storage/setSessionStorage.js.map +1 -1
- package/dist/esm/string/byteSize.d.ts +0 -1
- package/dist/esm/string/byteSize.js +5 -7
- package/dist/esm/string/byteSize.js.map +1 -1
- package/dist/esm/string/camelCase.d.ts +0 -1
- package/dist/esm/string/camelCase.js +4 -12
- package/dist/esm/string/camelCase.js.map +1 -1
- package/dist/esm/string/capitalize.d.ts +0 -1
- package/dist/esm/string/capitalize.js +3 -7
- package/dist/esm/string/capitalize.js.map +1 -1
- package/dist/esm/string/decodeBase64.d.ts +0 -1
- package/dist/esm/string/decodeBase64.js +3 -9
- package/dist/esm/string/decodeBase64.js.map +1 -1
- package/dist/esm/string/encodeBase64.d.ts +0 -1
- package/dist/esm/string/encodeBase64.js +3 -7
- package/dist/esm/string/encodeBase64.js.map +1 -1
- package/dist/esm/string/escapeHTML.d.ts +0 -1
- package/dist/esm/string/escapeHTML.js +3 -14
- package/dist/esm/string/escapeHTML.js.map +1 -1
- package/dist/esm/string/formatBytes.d.ts +0 -1
- package/dist/esm/string/formatBytes.js +12 -12
- package/dist/esm/string/formatBytes.js.map +1 -1
- package/dist/esm/string/index.d.ts +0 -1
- package/dist/esm/string/index.js +18 -19
- package/dist/esm/string/interfaces/index.d.ts +0 -1
- package/dist/esm/string/interfaces/index.js +1 -2
- package/dist/esm/string/interfaces/mask.d.ts +0 -1
- package/dist/esm/string/interfaces/mask.js +1 -2
- package/dist/esm/string/kebabCase.d.ts +0 -1
- package/dist/esm/string/kebabCase.js +4 -13
- package/dist/esm/string/kebabCase.js.map +1 -1
- package/dist/esm/string/mask.d.ts +0 -1
- package/dist/esm/string/mask.js +5 -14
- package/dist/esm/string/mask.js.map +1 -1
- package/dist/esm/string/pascalCase.d.ts +0 -1
- package/dist/esm/string/pascalCase.js +5 -9
- package/dist/esm/string/pascalCase.js.map +1 -1
- package/dist/esm/string/randomCryptoString.d.ts +0 -1
- package/dist/esm/string/randomCryptoString.js +4 -11
- package/dist/esm/string/randomCryptoString.js.map +1 -1
- package/dist/esm/string/randomString.d.ts +0 -1
- package/dist/esm/string/randomString.js +4 -11
- package/dist/esm/string/randomString.js.map +1 -1
- package/dist/esm/string/removeDiacritics.d.ts +0 -1
- package/dist/esm/string/removeDiacritics.js +3 -10
- package/dist/esm/string/removeDiacritics.js.map +1 -1
- package/dist/esm/string/slugify.d.ts +0 -1
- package/dist/esm/string/slugify.js +5 -14
- package/dist/esm/string/slugify.js.map +1 -1
- package/dist/esm/string/snakeCase.d.ts +0 -1
- package/dist/esm/string/snakeCase.js +4 -13
- package/dist/esm/string/snakeCase.js.map +1 -1
- package/dist/esm/string/truncate.d.ts +0 -1
- package/dist/esm/string/truncate.js +5 -15
- package/dist/esm/string/truncate.js.map +1 -1
- package/dist/esm/string/unescapeHTML.d.ts +0 -1
- package/dist/esm/string/unescapeHTML.js +3 -7
- package/dist/esm/string/unescapeHTML.js.map +1 -1
- package/package.json +49 -21
- package/dist/cjs/browser/deleteCookie.d.ts +0 -10
- package/dist/cjs/browser/deleteCookie.d.ts.map +0 -1
- package/dist/cjs/browser/deleteCookie.js +0 -16
- package/dist/cjs/browser/deleteCookie.js.map +0 -1
- package/dist/cjs/browser/detectOS.d.ts +0 -8
- package/dist/cjs/browser/detectOS.d.ts.map +0 -1
- package/dist/cjs/browser/detectOS.js +0 -32
- package/dist/cjs/browser/detectOS.js.map +0 -1
- package/dist/cjs/browser/downloadFile.d.ts +0 -10
- package/dist/cjs/browser/downloadFile.d.ts.map +0 -1
- package/dist/cjs/browser/downloadFile.js +0 -25
- package/dist/cjs/browser/downloadFile.js.map +0 -1
- package/dist/cjs/browser/getCookie.d.ts +0 -8
- package/dist/cjs/browser/getCookie.d.ts.map +0 -1
- package/dist/cjs/browser/getCookie.js +0 -25
- package/dist/cjs/browser/getCookie.js.map +0 -1
- package/dist/cjs/browser/getQueryParams.d.ts +0 -8
- package/dist/cjs/browser/getQueryParams.d.ts.map +0 -1
- package/dist/cjs/browser/getQueryParams.js +0 -24
- package/dist/cjs/browser/getQueryParams.js.map +0 -1
- package/dist/cjs/browser/index.d.ts +0 -20
- package/dist/cjs/browser/index.d.ts.map +0 -1
- package/dist/cjs/browser/index.js +0 -36
- package/dist/cjs/browser/index.js.map +0 -1
- package/dist/cjs/browser/interfaces/detectOS.d.ts +0 -2
- package/dist/cjs/browser/interfaces/detectOS.d.ts.map +0 -1
- package/dist/cjs/browser/interfaces/detectOS.js +0 -3
- package/dist/cjs/browser/interfaces/detectOS.js.map +0 -1
- package/dist/cjs/browser/interfaces/index.d.ts +0 -4
- package/dist/cjs/browser/interfaces/index.d.ts.map +0 -1
- package/dist/cjs/browser/interfaces/index.js +0 -20
- package/dist/cjs/browser/interfaces/index.js.map +0 -1
- package/dist/cjs/browser/interfaces/isTouchSupported.d.ts +0 -6
- package/dist/cjs/browser/interfaces/isTouchSupported.d.ts.map +0 -1
- package/dist/cjs/browser/interfaces/isTouchSupported.js +0 -3
- package/dist/cjs/browser/interfaces/isTouchSupported.js.map +0 -1
- package/dist/cjs/browser/interfaces/setCookie.d.ts +0 -8
- package/dist/cjs/browser/interfaces/setCookie.d.ts.map +0 -1
- package/dist/cjs/browser/interfaces/setCookie.js +0 -3
- package/dist/cjs/browser/interfaces/setCookie.js.map +0 -1
- package/dist/cjs/browser/isPageVisible.d.ts +0 -10
- package/dist/cjs/browser/isPageVisible.d.ts.map +0 -1
- package/dist/cjs/browser/isPageVisible.js +0 -14
- package/dist/cjs/browser/isPageVisible.js.map +0 -1
- package/dist/cjs/browser/isPushNotificationSupported.d.ts +0 -10
- package/dist/cjs/browser/isPushNotificationSupported.d.ts.map +0 -1
- package/dist/cjs/browser/isPushNotificationSupported.js +0 -14
- package/dist/cjs/browser/isPushNotificationSupported.js.map +0 -1
- package/dist/cjs/browser/isScrollBehaviorSupported.d.ts +0 -7
- package/dist/cjs/browser/isScrollBehaviorSupported.d.ts.map +0 -1
- package/dist/cjs/browser/isScrollBehaviorSupported.js +0 -11
- package/dist/cjs/browser/isScrollBehaviorSupported.js.map +0 -1
- package/dist/cjs/browser/isShareSupported.d.ts +0 -7
- package/dist/cjs/browser/isShareSupported.d.ts.map +0 -1
- package/dist/cjs/browser/isShareSupported.js +0 -11
- package/dist/cjs/browser/isShareSupported.js.map +0 -1
- package/dist/cjs/browser/isTabFocused.d.ts +0 -6
- package/dist/cjs/browser/isTabFocused.d.ts.map +0 -1
- package/dist/cjs/browser/isTabFocused.js +0 -10
- package/dist/cjs/browser/isTabFocused.js.map +0 -1
- package/dist/cjs/browser/isTouchSupported.d.ts +0 -7
- package/dist/cjs/browser/isTouchSupported.d.ts.map +0 -1
- package/dist/cjs/browser/isTouchSupported.js +0 -13
- package/dist/cjs/browser/isTouchSupported.js.map +0 -1
- package/dist/cjs/browser/networkStatusListener.d.ts +0 -9
- package/dist/cjs/browser/networkStatusListener.d.ts.map +0 -1
- package/dist/cjs/browser/networkStatusListener.js +0 -22
- package/dist/cjs/browser/networkStatusListener.js.map +0 -1
- package/dist/cjs/browser/pageVisibilityListener.d.ts +0 -12
- package/dist/cjs/browser/pageVisibilityListener.d.ts.map +0 -1
- package/dist/cjs/browser/pageVisibilityListener.js +0 -30
- package/dist/cjs/browser/pageVisibilityListener.js.map +0 -1
- package/dist/cjs/browser/preferColorScheme.d.ts +0 -21
- package/dist/cjs/browser/preferColorScheme.d.ts.map +0 -1
- package/dist/cjs/browser/preferColorScheme.js +0 -27
- package/dist/cjs/browser/preferColorScheme.js.map +0 -1
- package/dist/cjs/browser/scrollToElement.d.ts +0 -10
- package/dist/cjs/browser/scrollToElement.d.ts.map +0 -1
- package/dist/cjs/browser/scrollToElement.js +0 -18
- package/dist/cjs/browser/scrollToElement.js.map +0 -1
- package/dist/cjs/browser/scrollToPosition.d.ts +0 -11
- package/dist/cjs/browser/scrollToPosition.d.ts.map +0 -1
- package/dist/cjs/browser/scrollToPosition.js +0 -27
- package/dist/cjs/browser/scrollToPosition.js.map +0 -1
- package/dist/cjs/browser/setCookie.d.ts +0 -11
- package/dist/cjs/browser/setCookie.d.ts.map +0 -1
- package/dist/cjs/browser/setCookie.js +0 -31
- package/dist/cjs/browser/setCookie.js.map +0 -1
- package/dist/cjs/browser/tabFocusListener.d.ts +0 -6
- package/dist/cjs/browser/tabFocusListener.d.ts.map +0 -1
- package/dist/cjs/browser/tabFocusListener.js +0 -10
- package/dist/cjs/browser/tabFocusListener.js.map +0 -1
- package/dist/cjs/dateTime/dateAsIso.d.ts +0 -10
- package/dist/cjs/dateTime/dateAsIso.d.ts.map +0 -1
- package/dist/cjs/dateTime/dateAsIso.js +0 -22
- package/dist/cjs/dateTime/dateAsIso.js.map +0 -1
- package/dist/cjs/dateTime/index.d.ts +0 -6
- package/dist/cjs/dateTime/index.d.ts.map +0 -1
- package/dist/cjs/dateTime/index.js +0 -22
- package/dist/cjs/dateTime/index.js.map +0 -1
- package/dist/cjs/dateTime/interfaces/index.d.ts +0 -2
- package/dist/cjs/dateTime/interfaces/index.d.ts.map +0 -1
- package/dist/cjs/dateTime/interfaces/index.js +0 -18
- package/dist/cjs/dateTime/interfaces/index.js.map +0 -1
- package/dist/cjs/dateTime/interfaces/parseDuration.d.ts +0 -8
- package/dist/cjs/dateTime/interfaces/parseDuration.d.ts.map +0 -1
- package/dist/cjs/dateTime/interfaces/parseDuration.js +0 -3
- package/dist/cjs/dateTime/interfaces/parseDuration.js.map +0 -1
- package/dist/cjs/dateTime/isSameDay.d.ts +0 -9
- package/dist/cjs/dateTime/isSameDay.d.ts.map +0 -1
- package/dist/cjs/dateTime/isSameDay.js +0 -19
- package/dist/cjs/dateTime/isSameDay.js.map +0 -1
- package/dist/cjs/dateTime/parseDuration.d.ts +0 -9
- package/dist/cjs/dateTime/parseDuration.d.ts.map +0 -1
- package/dist/cjs/dateTime/parseDuration.js +0 -21
- package/dist/cjs/dateTime/parseDuration.js.map +0 -1
- package/dist/cjs/dateTime/timeAgo.d.ts +0 -9
- package/dist/cjs/dateTime/timeAgo.d.ts.map +0 -1
- package/dist/cjs/dateTime/timeAgo.js +0 -39
- package/dist/cjs/dateTime/timeAgo.js.map +0 -1
- package/dist/cjs/dom/addAsyncEventListener.d.ts +0 -10
- package/dist/cjs/dom/addAsyncEventListener.d.ts.map +0 -1
- package/dist/cjs/dom/addAsyncEventListener.js +0 -42
- package/dist/cjs/dom/addAsyncEventListener.js.map +0 -1
- package/dist/cjs/dom/addClickOutsideListener.d.ts +0 -9
- package/dist/cjs/dom/addClickOutsideListener.d.ts.map +0 -1
- package/dist/cjs/dom/addClickOutsideListener.js +0 -24
- package/dist/cjs/dom/addClickOutsideListener.js.map +0 -1
- package/dist/cjs/dom/addEventListener.d.ts +0 -11
- package/dist/cjs/dom/addEventListener.d.ts.map +0 -1
- package/dist/cjs/dom/addEventListener.js +0 -25
- package/dist/cjs/dom/addEventListener.js.map +0 -1
- package/dist/cjs/dom/appendAfter.d.ts +0 -9
- package/dist/cjs/dom/appendAfter.d.ts.map +0 -1
- package/dist/cjs/dom/appendAfter.js +0 -13
- package/dist/cjs/dom/appendAfter.js.map +0 -1
- package/dist/cjs/dom/appendBefore.d.ts +0 -9
- package/dist/cjs/dom/appendBefore.d.ts.map +0 -1
- package/dist/cjs/dom/appendBefore.js +0 -13
- package/dist/cjs/dom/appendBefore.js.map +0 -1
- package/dist/cjs/dom/copyToClipboard.d.ts +0 -8
- package/dist/cjs/dom/copyToClipboard.d.ts.map +0 -1
- package/dist/cjs/dom/copyToClipboard.js +0 -41
- package/dist/cjs/dom/copyToClipboard.js.map +0 -1
- package/dist/cjs/dom/createElement.d.ts +0 -12
- package/dist/cjs/dom/createElement.d.ts.map +0 -1
- package/dist/cjs/dom/createElement.js +0 -58
- package/dist/cjs/dom/createElement.js.map +0 -1
- package/dist/cjs/dom/fireEvent.d.ts +0 -9
- package/dist/cjs/dom/fireEvent.d.ts.map +0 -1
- package/dist/cjs/dom/fireEvent.js +0 -13
- package/dist/cjs/dom/fireEvent.js.map +0 -1
- package/dist/cjs/dom/getElementOffset.d.ts +0 -11
- package/dist/cjs/dom/getElementOffset.d.ts.map +0 -1
- package/dist/cjs/dom/getElementOffset.js +0 -15
- package/dist/cjs/dom/getElementOffset.js.map +0 -1
- package/dist/cjs/dom/index.d.ts +0 -16
- package/dist/cjs/dom/index.d.ts.map +0 -1
- package/dist/cjs/dom/index.js +0 -32
- package/dist/cjs/dom/index.js.map +0 -1
- package/dist/cjs/dom/interfaces/createElement.d.ts +0 -10
- package/dist/cjs/dom/interfaces/createElement.d.ts.map +0 -1
- package/dist/cjs/dom/interfaces/createElement.js +0 -3
- package/dist/cjs/dom/interfaces/createElement.js.map +0 -1
- package/dist/cjs/dom/interfaces/index.d.ts +0 -3
- package/dist/cjs/dom/interfaces/index.d.ts.map +0 -1
- package/dist/cjs/dom/interfaces/index.js +0 -19
- package/dist/cjs/dom/interfaces/index.js.map +0 -1
- package/dist/cjs/dom/interfaces/toggleFullscreenWithFallback.d.ts +0 -5
- package/dist/cjs/dom/interfaces/toggleFullscreenWithFallback.d.ts.map +0 -1
- package/dist/cjs/dom/interfaces/toggleFullscreenWithFallback.js +0 -3
- package/dist/cjs/dom/interfaces/toggleFullscreenWithFallback.js.map +0 -1
- package/dist/cjs/dom/isInViewport.d.ts +0 -9
- package/dist/cjs/dom/isInViewport.d.ts.map +0 -1
- package/dist/cjs/dom/isInViewport.js +0 -21
- package/dist/cjs/dom/isInViewport.js.map +0 -1
- package/dist/cjs/dom/toggleFullscreen.d.ts +0 -8
- package/dist/cjs/dom/toggleFullscreen.d.ts.map +0 -1
- package/dist/cjs/dom/toggleFullscreen.js +0 -19
- package/dist/cjs/dom/toggleFullscreen.js.map +0 -1
- package/dist/cjs/dom/toggleFullscreenWithFallback.d.ts +0 -10
- package/dist/cjs/dom/toggleFullscreenWithFallback.d.ts.map +0 -1
- package/dist/cjs/dom/toggleFullscreenWithFallback.js +0 -83
- package/dist/cjs/dom/toggleFullscreenWithFallback.js.map +0 -1
- package/dist/cjs/dom/types/createElement.d.ts +0 -12
- package/dist/cjs/dom/types/createElement.d.ts.map +0 -1
- package/dist/cjs/dom/types/createElement.js +0 -3
- package/dist/cjs/dom/types/createElement.js.map +0 -1
- package/dist/cjs/dom/types/index.d.ts +0 -3
- package/dist/cjs/dom/types/index.d.ts.map +0 -1
- package/dist/cjs/dom/types/index.js +0 -19
- package/dist/cjs/dom/types/index.js.map +0 -1
- package/dist/cjs/dom/types/toggleFullscreenWithFallback.d.ts +0 -15
- package/dist/cjs/dom/types/toggleFullscreenWithFallback.d.ts.map +0 -1
- package/dist/cjs/dom/types/toggleFullscreenWithFallback.js +0 -3
- package/dist/cjs/dom/types/toggleFullscreenWithFallback.js.map +0 -1
- package/dist/cjs/dom/waitForElement.d.ts +0 -10
- package/dist/cjs/dom/waitForElement.d.ts.map +0 -1
- package/dist/cjs/dom/waitForElement.js +0 -35
- package/dist/cjs/dom/waitForElement.js.map +0 -1
- package/dist/cjs/general/chunk.d.ts +0 -9
- package/dist/cjs/general/chunk.d.ts.map +0 -1
- package/dist/cjs/general/chunk.js +0 -22
- package/dist/cjs/general/chunk.js.map +0 -1
- package/dist/cjs/general/clamp.d.ts +0 -10
- package/dist/cjs/general/clamp.d.ts.map +0 -1
- package/dist/cjs/general/clamp.js +0 -14
- package/dist/cjs/general/clamp.js.map +0 -1
- package/dist/cjs/general/groupBy.d.ts +0 -9
- package/dist/cjs/general/groupBy.d.ts.map +0 -1
- package/dist/cjs/general/groupBy.js +0 -23
- package/dist/cjs/general/groupBy.js.map +0 -1
- package/dist/cjs/general/index.d.ts +0 -10
- package/dist/cjs/general/index.d.ts.map +0 -1
- package/dist/cjs/general/index.js +0 -26
- package/dist/cjs/general/index.js.map +0 -1
- package/dist/cjs/general/isEmpty.d.ts +0 -8
- package/dist/cjs/general/isEmpty.d.ts.map +0 -1
- package/dist/cjs/general/isEmpty.js +0 -28
- package/dist/cjs/general/isEmpty.js.map +0 -1
- package/dist/cjs/general/isEqual.d.ts +0 -11
- package/dist/cjs/general/isEqual.d.ts.map +0 -1
- package/dist/cjs/general/isEqual.js +0 -65
- package/dist/cjs/general/isEqual.js.map +0 -1
- package/dist/cjs/general/isNil.d.ts +0 -8
- package/dist/cjs/general/isNil.d.ts.map +0 -1
- package/dist/cjs/general/isNil.js +0 -12
- package/dist/cjs/general/isNil.js.map +0 -1
- package/dist/cjs/general/isValidJson.d.ts +0 -8
- package/dist/cjs/general/isValidJson.d.ts.map +0 -1
- package/dist/cjs/general/isValidJson.js +0 -20
- package/dist/cjs/general/isValidJson.js.map +0 -1
- package/dist/cjs/general/pick.d.ts +0 -9
- package/dist/cjs/general/pick.d.ts.map +0 -1
- package/dist/cjs/general/pick.js +0 -21
- package/dist/cjs/general/pick.js.map +0 -1
- package/dist/cjs/general/unique.d.ts +0 -9
- package/dist/cjs/general/unique.d.ts.map +0 -1
- package/dist/cjs/general/unique.js +0 -27
- package/dist/cjs/general/unique.js.map +0 -1
- package/dist/cjs/index.d.ts +0 -8
- package/dist/cjs/index.d.ts.map +0 -1
- package/dist/cjs/index.js +0 -24
- package/dist/cjs/index.js.map +0 -1
- package/dist/cjs/package.json +0 -3
- package/dist/cjs/schedule/debounce.d.ts +0 -10
- package/dist/cjs/schedule/debounce.d.ts.map +0 -1
- package/dist/cjs/schedule/debounce.js +0 -31
- package/dist/cjs/schedule/debounce.js.map +0 -1
- package/dist/cjs/schedule/index.d.ts +0 -8
- package/dist/cjs/schedule/index.d.ts.map +0 -1
- package/dist/cjs/schedule/index.js +0 -24
- package/dist/cjs/schedule/index.js.map +0 -1
- package/dist/cjs/schedule/interfaces/debounce.d.ts +0 -5
- package/dist/cjs/schedule/interfaces/debounce.d.ts.map +0 -1
- package/dist/cjs/schedule/interfaces/debounce.js +0 -3
- package/dist/cjs/schedule/interfaces/debounce.js.map +0 -1
- package/dist/cjs/schedule/interfaces/index.d.ts +0 -5
- package/dist/cjs/schedule/interfaces/index.d.ts.map +0 -1
- package/dist/cjs/schedule/interfaces/index.js +0 -21
- package/dist/cjs/schedule/interfaces/index.js.map +0 -1
- package/dist/cjs/schedule/interfaces/retry.d.ts +0 -6
- package/dist/cjs/schedule/interfaces/retry.d.ts.map +0 -1
- package/dist/cjs/schedule/interfaces/retry.js +0 -3
- package/dist/cjs/schedule/interfaces/retry.js.map +0 -1
- package/dist/cjs/schedule/interfaces/runAnimation.d.ts +0 -5
- package/dist/cjs/schedule/interfaces/runAnimation.d.ts.map +0 -1
- package/dist/cjs/schedule/interfaces/runAnimation.js +0 -3
- package/dist/cjs/schedule/interfaces/runAnimation.js.map +0 -1
- package/dist/cjs/schedule/interfaces/throttle.d.ts +0 -5
- package/dist/cjs/schedule/interfaces/throttle.d.ts.map +0 -1
- package/dist/cjs/schedule/interfaces/throttle.js +0 -3
- package/dist/cjs/schedule/interfaces/throttle.js.map +0 -1
- package/dist/cjs/schedule/retry.d.ts +0 -10
- package/dist/cjs/schedule/retry.d.ts.map +0 -1
- package/dist/cjs/schedule/retry.js +0 -34
- package/dist/cjs/schedule/retry.js.map +0 -1
- package/dist/cjs/schedule/runAnimation.d.ts +0 -10
- package/dist/cjs/schedule/runAnimation.d.ts.map +0 -1
- package/dist/cjs/schedule/runAnimation.js +0 -44
- package/dist/cjs/schedule/runAnimation.js.map +0 -1
- package/dist/cjs/schedule/runAsync.d.ts +0 -10
- package/dist/cjs/schedule/runAsync.d.ts.map +0 -1
- package/dist/cjs/schedule/runAsync.js +0 -26
- package/dist/cjs/schedule/runAsync.js.map +0 -1
- package/dist/cjs/schedule/sleep.d.ts +0 -8
- package/dist/cjs/schedule/sleep.d.ts.map +0 -1
- package/dist/cjs/schedule/sleep.js +0 -12
- package/dist/cjs/schedule/sleep.js.map +0 -1
- package/dist/cjs/schedule/throttle.d.ts +0 -10
- package/dist/cjs/schedule/throttle.d.ts.map +0 -1
- package/dist/cjs/schedule/throttle.js +0 -40
- package/dist/cjs/schedule/throttle.js.map +0 -1
- package/dist/cjs/storage/clearLocalStorage.d.ts +0 -7
- package/dist/cjs/storage/clearLocalStorage.d.ts.map +0 -1
- package/dist/cjs/storage/clearLocalStorage.js +0 -20
- package/dist/cjs/storage/clearLocalStorage.js.map +0 -1
- package/dist/cjs/storage/clearSessionStorage.d.ts +0 -7
- package/dist/cjs/storage/clearSessionStorage.d.ts.map +0 -1
- package/dist/cjs/storage/clearSessionStorage.js +0 -20
- package/dist/cjs/storage/clearSessionStorage.js.map +0 -1
- package/dist/cjs/storage/getLocalStorage.d.ts +0 -11
- package/dist/cjs/storage/getLocalStorage.d.ts.map +0 -1
- package/dist/cjs/storage/getLocalStorage.js +0 -38
- package/dist/cjs/storage/getLocalStorage.js.map +0 -1
- package/dist/cjs/storage/getSessionStorage.d.ts +0 -11
- package/dist/cjs/storage/getSessionStorage.d.ts.map +0 -1
- package/dist/cjs/storage/getSessionStorage.js +0 -38
- package/dist/cjs/storage/getSessionStorage.js.map +0 -1
- package/dist/cjs/storage/index.d.ts +0 -10
- package/dist/cjs/storage/index.d.ts.map +0 -1
- package/dist/cjs/storage/index.js +0 -26
- package/dist/cjs/storage/index.js.map +0 -1
- package/dist/cjs/storage/interfaces/index.d.ts +0 -2
- package/dist/cjs/storage/interfaces/index.d.ts.map +0 -1
- package/dist/cjs/storage/interfaces/index.js +0 -18
- package/dist/cjs/storage/interfaces/index.js.map +0 -1
- package/dist/cjs/storage/interfaces/storage.d.ts +0 -4
- package/dist/cjs/storage/interfaces/storage.d.ts.map +0 -1
- package/dist/cjs/storage/interfaces/storage.js +0 -3
- package/dist/cjs/storage/interfaces/storage.js.map +0 -1
- package/dist/cjs/storage/removeLocalStorage.d.ts +0 -8
- package/dist/cjs/storage/removeLocalStorage.d.ts.map +0 -1
- package/dist/cjs/storage/removeLocalStorage.js +0 -21
- package/dist/cjs/storage/removeLocalStorage.js.map +0 -1
- package/dist/cjs/storage/removeSessionStorage.d.ts +0 -8
- package/dist/cjs/storage/removeSessionStorage.d.ts.map +0 -1
- package/dist/cjs/storage/removeSessionStorage.js +0 -21
- package/dist/cjs/storage/removeSessionStorage.js.map +0 -1
- package/dist/cjs/storage/setLocalStorage.d.ts +0 -11
- package/dist/cjs/storage/setLocalStorage.d.ts.map +0 -1
- package/dist/cjs/storage/setLocalStorage.js +0 -31
- package/dist/cjs/storage/setLocalStorage.js.map +0 -1
- package/dist/cjs/storage/setSessionStorage.d.ts +0 -11
- package/dist/cjs/storage/setSessionStorage.d.ts.map +0 -1
- package/dist/cjs/storage/setSessionStorage.js +0 -31
- package/dist/cjs/storage/setSessionStorage.js.map +0 -1
- package/dist/cjs/string/byteSize.d.ts +0 -8
- package/dist/cjs/string/byteSize.d.ts.map +0 -1
- package/dist/cjs/string/byteSize.js +0 -12
- package/dist/cjs/string/byteSize.js.map +0 -1
- package/dist/cjs/string/camelCase.d.ts +0 -8
- package/dist/cjs/string/camelCase.d.ts.map +0 -1
- package/dist/cjs/string/camelCase.js +0 -17
- package/dist/cjs/string/camelCase.js.map +0 -1
- package/dist/cjs/string/capitalize.d.ts +0 -8
- package/dist/cjs/string/capitalize.d.ts.map +0 -1
- package/dist/cjs/string/capitalize.js +0 -12
- package/dist/cjs/string/capitalize.js.map +0 -1
- package/dist/cjs/string/decodeBase64.d.ts +0 -8
- package/dist/cjs/string/decodeBase64.d.ts.map +0 -1
- package/dist/cjs/string/decodeBase64.js +0 -14
- package/dist/cjs/string/decodeBase64.js.map +0 -1
- package/dist/cjs/string/encodeBase64.d.ts +0 -8
- package/dist/cjs/string/encodeBase64.d.ts.map +0 -1
- package/dist/cjs/string/encodeBase64.js +0 -12
- package/dist/cjs/string/encodeBase64.js.map +0 -1
- package/dist/cjs/string/escapeHTML.d.ts +0 -10
- package/dist/cjs/string/escapeHTML.d.ts.map +0 -1
- package/dist/cjs/string/escapeHTML.js +0 -19
- package/dist/cjs/string/escapeHTML.js.map +0 -1
- package/dist/cjs/string/formatBytes.d.ts +0 -9
- package/dist/cjs/string/formatBytes.d.ts.map +0 -1
- package/dist/cjs/string/formatBytes.js +0 -23
- package/dist/cjs/string/formatBytes.js.map +0 -1
- package/dist/cjs/string/index.d.ts +0 -19
- package/dist/cjs/string/index.d.ts.map +0 -1
- package/dist/cjs/string/index.js +0 -35
- package/dist/cjs/string/index.js.map +0 -1
- package/dist/cjs/string/interfaces/index.d.ts +0 -2
- package/dist/cjs/string/interfaces/index.d.ts.map +0 -1
- package/dist/cjs/string/interfaces/index.js +0 -18
- package/dist/cjs/string/interfaces/index.js.map +0 -1
- package/dist/cjs/string/interfaces/mask.d.ts +0 -6
- package/dist/cjs/string/interfaces/mask.d.ts.map +0 -1
- package/dist/cjs/string/interfaces/mask.js +0 -3
- package/dist/cjs/string/interfaces/mask.js.map +0 -1
- package/dist/cjs/string/kebabCase.d.ts +0 -8
- package/dist/cjs/string/kebabCase.d.ts.map +0 -1
- package/dist/cjs/string/kebabCase.js +0 -18
- package/dist/cjs/string/kebabCase.js.map +0 -1
- package/dist/cjs/string/mask.d.ts +0 -10
- package/dist/cjs/string/mask.d.ts.map +0 -1
- package/dist/cjs/string/mask.js +0 -29
- package/dist/cjs/string/mask.js.map +0 -1
- package/dist/cjs/string/pascalCase.d.ts +0 -8
- package/dist/cjs/string/pascalCase.d.ts.map +0 -1
- package/dist/cjs/string/pascalCase.js +0 -14
- package/dist/cjs/string/pascalCase.js.map +0 -1
- package/dist/cjs/string/randomCryptoString.d.ts +0 -9
- package/dist/cjs/string/randomCryptoString.d.ts.map +0 -1
- package/dist/cjs/string/randomCryptoString.js +0 -23
- package/dist/cjs/string/randomCryptoString.js.map +0 -1
- package/dist/cjs/string/randomString.d.ts +0 -9
- package/dist/cjs/string/randomString.d.ts.map +0 -1
- package/dist/cjs/string/randomString.js +0 -21
- package/dist/cjs/string/randomString.js.map +0 -1
- package/dist/cjs/string/removeDiacritics.d.ts +0 -8
- package/dist/cjs/string/removeDiacritics.d.ts.map +0 -1
- package/dist/cjs/string/removeDiacritics.js +0 -15
- package/dist/cjs/string/removeDiacritics.js.map +0 -1
- package/dist/cjs/string/slugify.d.ts +0 -9
- package/dist/cjs/string/slugify.d.ts.map +0 -1
- package/dist/cjs/string/slugify.js +0 -25
- package/dist/cjs/string/slugify.js.map +0 -1
- package/dist/cjs/string/snakeCase.d.ts +0 -8
- package/dist/cjs/string/snakeCase.d.ts.map +0 -1
- package/dist/cjs/string/snakeCase.js +0 -18
- package/dist/cjs/string/snakeCase.js.map +0 -1
- package/dist/cjs/string/truncate.d.ts +0 -10
- package/dist/cjs/string/truncate.d.ts.map +0 -1
- package/dist/cjs/string/truncate.js +0 -21
- package/dist/cjs/string/truncate.js.map +0 -1
- package/dist/cjs/string/unescapeHTML.d.ts +0 -8
- package/dist/cjs/string/unescapeHTML.d.ts.map +0 -1
- package/dist/cjs/string/unescapeHTML.js +0 -16
- package/dist/cjs/string/unescapeHTML.js.map +0 -1
- package/dist/esm/browser/deleteCookie.d.ts.map +0 -1
- package/dist/esm/browser/detectOS.d.ts.map +0 -1
- package/dist/esm/browser/downloadFile.d.ts.map +0 -1
- package/dist/esm/browser/getCookie.d.ts.map +0 -1
- package/dist/esm/browser/getQueryParams.d.ts.map +0 -1
- package/dist/esm/browser/index.d.ts.map +0 -1
- package/dist/esm/browser/index.js.map +0 -1
- package/dist/esm/browser/interfaces/detectOS.d.ts.map +0 -1
- package/dist/esm/browser/interfaces/detectOS.js.map +0 -1
- package/dist/esm/browser/interfaces/index.d.ts.map +0 -1
- package/dist/esm/browser/interfaces/index.js.map +0 -1
- package/dist/esm/browser/interfaces/isTouchSupported.d.ts.map +0 -1
- package/dist/esm/browser/interfaces/isTouchSupported.js.map +0 -1
- package/dist/esm/browser/interfaces/setCookie.d.ts.map +0 -1
- package/dist/esm/browser/interfaces/setCookie.js.map +0 -1
- package/dist/esm/browser/isPageVisible.d.ts.map +0 -1
- package/dist/esm/browser/isPushNotificationSupported.d.ts.map +0 -1
- package/dist/esm/browser/isScrollBehaviorSupported.d.ts.map +0 -1
- package/dist/esm/browser/isShareSupported.d.ts.map +0 -1
- package/dist/esm/browser/isTabFocused.d.ts.map +0 -1
- package/dist/esm/browser/isTouchSupported.d.ts.map +0 -1
- package/dist/esm/browser/networkStatusListener.d.ts.map +0 -1
- package/dist/esm/browser/pageVisibilityListener.d.ts.map +0 -1
- package/dist/esm/browser/preferColorScheme.d.ts.map +0 -1
- package/dist/esm/browser/scrollToElement.d.ts.map +0 -1
- package/dist/esm/browser/scrollToPosition.d.ts.map +0 -1
- package/dist/esm/browser/setCookie.d.ts.map +0 -1
- package/dist/esm/browser/tabFocusListener.d.ts.map +0 -1
- package/dist/esm/dateTime/dateAsIso.d.ts.map +0 -1
- package/dist/esm/dateTime/index.d.ts.map +0 -1
- package/dist/esm/dateTime/index.js.map +0 -1
- package/dist/esm/dateTime/interfaces/index.d.ts.map +0 -1
- package/dist/esm/dateTime/interfaces/index.js.map +0 -1
- package/dist/esm/dateTime/interfaces/parseDuration.d.ts.map +0 -1
- package/dist/esm/dateTime/interfaces/parseDuration.js.map +0 -1
- package/dist/esm/dateTime/isSameDay.d.ts.map +0 -1
- package/dist/esm/dateTime/parseDuration.d.ts.map +0 -1
- package/dist/esm/dateTime/timeAgo.d.ts.map +0 -1
- package/dist/esm/dom/addAsyncEventListener.d.ts.map +0 -1
- package/dist/esm/dom/addClickOutsideListener.d.ts.map +0 -1
- package/dist/esm/dom/addEventListener.d.ts.map +0 -1
- package/dist/esm/dom/appendAfter.d.ts.map +0 -1
- package/dist/esm/dom/appendBefore.d.ts.map +0 -1
- package/dist/esm/dom/copyToClipboard.d.ts.map +0 -1
- package/dist/esm/dom/createElement.d.ts.map +0 -1
- package/dist/esm/dom/fireEvent.d.ts.map +0 -1
- package/dist/esm/dom/getElementOffset.d.ts.map +0 -1
- package/dist/esm/dom/index.d.ts.map +0 -1
- package/dist/esm/dom/index.js.map +0 -1
- package/dist/esm/dom/interfaces/createElement.d.ts.map +0 -1
- package/dist/esm/dom/interfaces/createElement.js.map +0 -1
- package/dist/esm/dom/interfaces/index.d.ts.map +0 -1
- package/dist/esm/dom/interfaces/index.js.map +0 -1
- package/dist/esm/dom/interfaces/toggleFullscreenWithFallback.d.ts.map +0 -1
- package/dist/esm/dom/interfaces/toggleFullscreenWithFallback.js.map +0 -1
- package/dist/esm/dom/isInViewport.d.ts.map +0 -1
- package/dist/esm/dom/toggleFullscreen.d.ts.map +0 -1
- package/dist/esm/dom/toggleFullscreenWithFallback.d.ts.map +0 -1
- package/dist/esm/dom/types/createElement.d.ts.map +0 -1
- package/dist/esm/dom/types/createElement.js.map +0 -1
- package/dist/esm/dom/types/index.d.ts.map +0 -1
- package/dist/esm/dom/types/index.js.map +0 -1
- package/dist/esm/dom/types/toggleFullscreenWithFallback.d.ts.map +0 -1
- package/dist/esm/dom/types/toggleFullscreenWithFallback.js.map +0 -1
- package/dist/esm/dom/waitForElement.d.ts.map +0 -1
- package/dist/esm/general/chunk.d.ts.map +0 -1
- package/dist/esm/general/clamp.d.ts.map +0 -1
- package/dist/esm/general/groupBy.d.ts.map +0 -1
- package/dist/esm/general/index.d.ts.map +0 -1
- package/dist/esm/general/index.js.map +0 -1
- package/dist/esm/general/isEmpty.d.ts.map +0 -1
- package/dist/esm/general/isEqual.d.ts.map +0 -1
- package/dist/esm/general/isNil.d.ts.map +0 -1
- package/dist/esm/general/isValidJson.d.ts.map +0 -1
- package/dist/esm/general/pick.d.ts.map +0 -1
- package/dist/esm/general/unique.d.ts.map +0 -1
- package/dist/esm/index.d.ts.map +0 -1
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/schedule/debounce.d.ts.map +0 -1
- package/dist/esm/schedule/index.d.ts.map +0 -1
- package/dist/esm/schedule/index.js.map +0 -1
- package/dist/esm/schedule/interfaces/debounce.d.ts.map +0 -1
- package/dist/esm/schedule/interfaces/debounce.js.map +0 -1
- package/dist/esm/schedule/interfaces/index.d.ts.map +0 -1
- package/dist/esm/schedule/interfaces/index.js.map +0 -1
- package/dist/esm/schedule/interfaces/retry.d.ts.map +0 -1
- package/dist/esm/schedule/interfaces/retry.js.map +0 -1
- package/dist/esm/schedule/interfaces/runAnimation.d.ts.map +0 -1
- package/dist/esm/schedule/interfaces/runAnimation.js.map +0 -1
- package/dist/esm/schedule/interfaces/throttle.d.ts.map +0 -1
- package/dist/esm/schedule/interfaces/throttle.js.map +0 -1
- package/dist/esm/schedule/retry.d.ts.map +0 -1
- package/dist/esm/schedule/runAnimation.d.ts.map +0 -1
- package/dist/esm/schedule/runAsync.d.ts.map +0 -1
- package/dist/esm/schedule/sleep.d.ts.map +0 -1
- package/dist/esm/schedule/throttle.d.ts.map +0 -1
- package/dist/esm/storage/clearLocalStorage.d.ts.map +0 -1
- package/dist/esm/storage/clearSessionStorage.d.ts.map +0 -1
- package/dist/esm/storage/getLocalStorage.d.ts.map +0 -1
- package/dist/esm/storage/getSessionStorage.d.ts.map +0 -1
- package/dist/esm/storage/index.d.ts.map +0 -1
- package/dist/esm/storage/index.js.map +0 -1
- package/dist/esm/storage/interfaces/index.d.ts.map +0 -1
- package/dist/esm/storage/interfaces/index.js.map +0 -1
- package/dist/esm/storage/interfaces/storage.d.ts.map +0 -1
- package/dist/esm/storage/interfaces/storage.js.map +0 -1
- package/dist/esm/storage/removeLocalStorage.d.ts.map +0 -1
- package/dist/esm/storage/removeSessionStorage.d.ts.map +0 -1
- package/dist/esm/storage/setLocalStorage.d.ts.map +0 -1
- package/dist/esm/storage/setSessionStorage.d.ts.map +0 -1
- package/dist/esm/string/byteSize.d.ts.map +0 -1
- package/dist/esm/string/camelCase.d.ts.map +0 -1
- package/dist/esm/string/capitalize.d.ts.map +0 -1
- package/dist/esm/string/decodeBase64.d.ts.map +0 -1
- package/dist/esm/string/encodeBase64.d.ts.map +0 -1
- package/dist/esm/string/escapeHTML.d.ts.map +0 -1
- package/dist/esm/string/formatBytes.d.ts.map +0 -1
- package/dist/esm/string/index.d.ts.map +0 -1
- package/dist/esm/string/index.js.map +0 -1
- package/dist/esm/string/interfaces/index.d.ts.map +0 -1
- package/dist/esm/string/interfaces/index.js.map +0 -1
- package/dist/esm/string/interfaces/mask.d.ts.map +0 -1
- package/dist/esm/string/interfaces/mask.js.map +0 -1
- package/dist/esm/string/kebabCase.d.ts.map +0 -1
- package/dist/esm/string/mask.d.ts.map +0 -1
- package/dist/esm/string/pascalCase.d.ts.map +0 -1
- package/dist/esm/string/randomCryptoString.d.ts.map +0 -1
- package/dist/esm/string/randomString.d.ts.map +0 -1
- package/dist/esm/string/removeDiacritics.d.ts.map +0 -1
- package/dist/esm/string/slugify.d.ts.map +0 -1
- package/dist/esm/string/snakeCase.d.ts.map +0 -1
- package/dist/esm/string/truncate.d.ts.map +0 -1
- package/dist/esm/string/unescapeHTML.d.ts.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../../src/browser/setCookie.ts","../../src/browser/deleteCookie.ts","../../src/browser/detectOS.ts","../../src/browser/downloadFile.ts","../../src/browser/getCookie.ts","../../src/browser/getQueryParams.ts","../../src/browser/isPageVisible.ts","../../src/browser/isPushNotificationSupported.ts","../../src/browser/isScrollBehaviorSupported.ts","../../src/browser/isShareSupported.ts","../../src/browser/isTabFocused.ts","../../src/browser/isTouchSupported.ts","../../src/browser/networkStatusListener.ts","../../src/browser/pageVisibilityListener.ts","../../src/browser/preferColorScheme.ts","../../src/browser/scrollToPosition.ts","../../src/browser/scrollToElement.ts","../../src/browser/tabFocusListener.ts","../../src/dateTime/dateAsIso.ts","../../src/dateTime/isSameDay.ts","../../src/dateTime/parseDuration.ts","../../src/dateTime/timeAgo.ts","../../src/dom/getElementOffset.ts","../../src/dom/addAsyncEventListener.ts","../../src/dom/addClickOutsideListener.ts","../../src/dom/addEventListener.ts","../../src/dom/appendAfter.ts","../../src/dom/appendBefore.ts","../../src/dom/copyToClipboard.ts","../../src/dom/createElement.ts","../../src/dom/fireEvent.ts","../../src/dom/isInViewport.ts","../../src/dom/toggleFullscreen.ts","../../src/dom/toggleFullscreenWithFallback.ts","../../src/dom/waitForElement.ts","../../src/general/chunk.ts","../../src/general/clamp.ts","../../src/general/groupBy.ts","../../src/general/isNil.ts","../../src/general/isEmpty.ts","../../src/general/isEqual.ts","../../src/general/isValidJson.ts","../../src/general/pick.ts","../../src/general/unique.ts","../../src/schedule/debounce.ts","../../src/schedule/sleep.ts","../../src/schedule/retry.ts","../../src/schedule/runAnimation.ts","../../src/schedule/runAsync.ts","../../src/schedule/throttle.ts","../../src/storage/clearLocalStorage.ts","../../src/storage/clearSessionStorage.ts","../../src/storage/getLocalStorage.ts","../../src/storage/getSessionStorage.ts","../../src/storage/removeLocalStorage.ts","../../src/storage/removeSessionStorage.ts","../../src/storage/setLocalStorage.ts","../../src/storage/setSessionStorage.ts","../../src/string/decodeBase64.ts","../../src/string/encodeBase64.ts","../../src/string/byteSize.ts","../../src/string/removeDiacritics.ts","../../src/string/camelCase.ts","../../src/string/capitalize.ts","../../src/string/escapeHTML.ts","../../src/string/formatBytes.ts","../../src/string/kebabCase.ts","../../src/string/mask.ts","../../src/string/pascalCase.ts","../../src/string/randomCryptoString.ts","../../src/string/randomString.ts","../../src/string/slugify.ts","../../src/string/snakeCase.ts","../../src/string/truncate.ts","../../src/string/unescapeHTML.ts","webpack://webpack/runtime/define_property_getters","webpack://webpack/runtime/has_own_property","webpack://webpack/runtime/make_namespace_object"],"sourcesContent":["import type { ICookieOptions } from './interfaces/setCookie.js';\n\n/**\n * Set a browser cookie\n *\n * @param name Cookie name\n * @param value Cookie value\n * @param options Cookie options (days, path, domain, secure, sameSite)\n * @returns void\n */\nexport const setCookie = (name: string, value: string, options?: ICookieOptions): void => {\n let cookieString = `${encodeURIComponent(name)}=${encodeURIComponent(value)}`;\n\n if (options?.days !== undefined) {\n const expires = new Date(Date.now() + options.days * 86400000).toUTCString();\n cookieString += `; expires=${expires}`;\n }\n\n cookieString += `; path=${options?.path ?? '/'}`;\n\n if (options?.domain) {\n cookieString += `; domain=${options.domain}`;\n }\n\n if (options?.secure) {\n cookieString += '; secure';\n }\n\n if (options?.sameSite) {\n cookieString += `; samesite=${options.sameSite}`;\n }\n\n document.cookie = cookieString;\n};\n","import type { ICookieOptions } from './interfaces/setCookie.js';\nimport { setCookie } from './setCookie.js';\n\n/**\n * Delete a browser cookie by name\n *\n * @param name Cookie name to delete\n * @param options Optional path and domain to match cookie scope\n * @returns void\n */\nexport const deleteCookie = (\n name: string,\n options?: Pick<ICookieOptions, 'path' | 'domain'>,\n): void => {\n setCookie(name, '', { ...options, days: -1 });\n};\n","import type { TOSName } from './interfaces/detectOS.js';\n\n/**\n * Detect user operating system from browser environment\n *\n * @returns Detected OS name ('ios' | 'android' | 'macos' | 'windows' | 'linux' | 'unknown')\n */\nexport const detectOS = (): TOSName => {\n if (typeof navigator === 'undefined') {\n return 'unknown';\n }\n\n const userAgent = navigator.userAgent.toLowerCase();\n\n if (/iphone|ipad|ipod/.test(userAgent)) {\n return 'ios';\n }\n if (/android/.test(userAgent)) {\n return 'android';\n }\n if (/macintosh|mac os x/.test(userAgent)) {\n return 'macos';\n }\n if (/windows|win32|win64/.test(userAgent)) {\n return 'windows';\n }\n if (/linux/.test(userAgent)) {\n return 'linux';\n }\n\n return 'unknown';\n};\n","/**\n * Programmatically download a file in browser\n *\n * @param data File content as string or Blob\n * @param filename Desired filename\n * @param mimeType Optional MIME type when data is string (default 'text/plain')\n * @returns void\n */\nexport const downloadFile = (\n data: string | Blob,\n filename: string,\n mimeType = 'text/plain',\n): void => {\n const blob = typeof data === 'string' ? new Blob([data], { type: mimeType }) : data;\n const url = URL.createObjectURL(blob);\n const tempLink = document.createElement('a');\n\n tempLink.href = url;\n tempLink.download = filename;\n tempLink.style.display = 'none';\n\n document.body.appendChild(tempLink);\n tempLink.click();\n document.body.removeChild(tempLink);\n\n URL.revokeObjectURL(url);\n};\n","/**\n * Get browser cookie value by name\n *\n * @param name Cookie name\n * @returns Decoded cookie value or null if not found\n */\nexport const getCookie = (name: string): string | null => {\n const encodedName = encodeURIComponent(name);\n\n for (const part of document.cookie.split(';')) {\n const entry = part.trim();\n const separatorIndex = entry.indexOf('=');\n\n if (separatorIndex === -1) {\n continue;\n }\n\n if (entry.slice(0, separatorIndex) === encodedName) {\n return decodeURIComponent(entry.slice(separatorIndex + 1));\n }\n }\n\n return null;\n};\n","/**\n * Extract query parameters from URL into a key-value record\n *\n * @param url Optional URL string (defaults to window.location.href)\n * @returns Record of query parameters; empty if the URL is invalid or has no search\n */\nexport const getQueryParams = (url?: string): Record<string, string> => {\n const result: Record<string, string> = {};\n const base = typeof window !== 'undefined' ? window.location.href : 'http://localhost/';\n\n try {\n new URL(url ?? base, base).searchParams.forEach((value, key) => {\n result[key] = value;\n });\n } catch {\n return result;\n }\n\n return result;\n};\n","/**\n * Check whether the page is currently visible\n *\n * Uses the Page Visibility API (`document.hidden`). This is not window or tab\n * input focus.\n *\n * @returns Whether the document is currently visible\n */\nexport const isPageVisible = (): boolean => !document.hidden;\n","/**\n * Check whether the environment supports the Web Push API\n *\n * Requires Notification, Service Worker, and PushManager. Does not check\n * permission and does not register a service worker.\n *\n * @returns Whether Web Push is supported\n */\nexport const isPushNotificationSupported = (): boolean =>\n 'Notification' in window && 'serviceWorker' in navigator && 'PushManager' in window;\n","/**\n * Check if user's browser supports setting scroll behavior\n *\n * @returns Boolean indicating if user's browser supports setting scroll behavior\n */\nexport const isScrollBehaviorSupported = (): boolean =>\n !!('scrollBehavior' in document.documentElement.style);\n","/**\n * Check if user's browser supports navigator share\n *\n * @returns Boolean indicating if user's browser supports navigator share\n */\nexport const isShareSupported = (): boolean =>\n !!('navigator' in window && 'share' in window.navigator && !!navigator.share);\n","import { isPageVisible } from './isPageVisible.js';\n\n/**\n * @deprecated Use {@link isPageVisible}. Same as `!document.hidden`; not window\n * or tab input focus.\n */\nexport const isTabFocused: typeof isPageVisible = isPageVisible;\n","import type { IExtendedWindow } from './interfaces/isTouchSupported.js';\n\n/**\n * Check if user's browser supports touch events\n *\n * @returns Boolean indicating if user's browser supports touch events\n */\nexport const isTouchSupported = (): boolean =>\n !!(\n 'ontouchstart' in window ||\n ((window as unknown as IExtendedWindow).DocumentTouch &&\n document instanceof (window as unknown as IExtendedWindow).DocumentTouch)\n );\n","/**\n * Set callbacks for when browser goes online or offline\n *\n * @param onOnline Callback when connection is restored\n * @param onOffline Callback when connection is lost\n * @returns Cleanup function to remove event listeners\n */\nexport const networkStatusListener = (\n onOnline?: () => void,\n onOffline?: () => void,\n): (() => void) => {\n const handleOnline = (): void => onOnline?.();\n const handleOffline = (): void => onOffline?.();\n\n window.addEventListener('online', handleOnline);\n window.addEventListener('offline', handleOffline);\n\n return () => {\n window.removeEventListener('online', handleOnline);\n window.removeEventListener('offline', handleOffline);\n };\n};\n","import { isPageVisible } from './isPageVisible.js';\n\n/**\n * Subscribe to Page Visibility changes\n *\n * Uses `visibilitychange` and `document.hidden`. This is not window focus or\n * blur.\n *\n * @param onVisible Called when the page becomes visible\n * @param onHidden Called when the page becomes hidden\n * @returns Cleanup function to remove the listener\n */\nexport const pageVisibilityListener = (\n onVisible?: () => void,\n onHidden?: () => void,\n): (() => void) => {\n const handleVisibilityChange = (): void => {\n if (isPageVisible()) {\n onVisible?.();\n } else {\n onHidden?.();\n }\n };\n\n document.addEventListener('visibilitychange', handleVisibilityChange);\n\n return () => {\n document.removeEventListener('visibilitychange', handleVisibilityChange);\n };\n};\n","/**\n * Check if user prefers light color scheme\n *\n * @returns Boolean indicating if user prefers light color scheme\n */\nexport const preferLightColorScheme = (): boolean =>\n !!window.matchMedia('(prefers-color-scheme: light)').matches;\n\n/**\n * Check if user prefers dark color scheme\n *\n * @returns Boolean indicating if user prefers dark color scheme\n */\nexport const preferDarkColorScheme = (): boolean =>\n !!window.matchMedia('(prefers-color-scheme: dark)').matches;\n\n/**\n * Check what color scheme the user prefers\n *\n * Returns `'light'` when `(prefers-color-scheme: light)` matches; otherwise `'dark'`.\n *\n * @returns `'light'` or `'dark'`\n */\nexport const preferColorScheme = (): 'light' | 'dark' =>\n preferLightColorScheme() ? 'light' : 'dark';\n","import { isScrollBehaviorSupported } from './isScrollBehaviorSupported.js';\n\n/**\n * Scroll window or other scrollable element to given position\n *\n * @param x Horizontal position to scroll to\n * @param y Vertical position to scroll to\n * @param smoothScroll Enable smooth scroll if supported, true by default\n * @param target Target to be scrolled, window by default\n * @returns void\n */\nexport const scrollToPosition = (\n x: number,\n y: number,\n smoothScroll = true,\n target: Window | HTMLElement = window,\n): void => {\n if (smoothScroll && isScrollBehaviorSupported()) {\n target.scrollTo({\n top: y,\n left: x,\n behavior: 'smooth',\n });\n } else {\n target.scrollTo(x, y);\n }\n};\n","import { getElementOffset } from '../dom/getElementOffset.js';\nimport { scrollToPosition } from './scrollToPosition.js';\n\n/**\n * Scroll window to make HTMLElement visible\n *\n * @param element Element to scroll to\n * @param offset Scroll offset from element, zero by default\n * @param smoothScroll Enable smooth scroll if supported, true by default\n * @returns void\n */\nexport const scrollToElement = (element: HTMLElement, offset = 0, smoothScroll = true): void => {\n scrollToPosition(0, getElementOffset(element).top - offset, smoothScroll);\n};\n","import { pageVisibilityListener } from './pageVisibilityListener.js';\n\n/**\n * @deprecated Use {@link pageVisibilityListener}. Same `visibilitychange`\n * listener; not window focus or blur.\n */\nexport const tabFocusListener: typeof pageVisibilityListener = pageVisibilityListener;\n","/**\n * Format a Date as local calendar date-time with numeric timezone offset\n *\n * Output shape: `YYYY-MM-DDTHH:mm:ss±HH:mm` (no milliseconds, not UTC `Z`).\n *\n * @param date Date to format\n * @returns Local ISO-like string with timezone offset\n */\nexport const dateAsIso = (date: Date): string => {\n const timezoneOffset = date.getTimezoneOffset();\n\n let isoFormat = '';\n isoFormat += `${date.getFullYear()}-${padNumber(date.getMonth() + 1)}-${padNumber(\n date.getDate(),\n )}`;\n isoFormat += `T${padNumber(date.getHours())}:${padNumber(date.getMinutes())}:${padNumber(\n date.getSeconds(),\n )}`;\n isoFormat += `${timezoneOffset <= 0 ? '+' : '-'}${padNumber(\n Math.floor(Math.abs(timezoneOffset) / 60),\n )}:${padNumber(Math.abs(timezoneOffset) % 60)}`;\n\n return isoFormat;\n};\n\nconst padNumber = (number: number): string => `${number}`.padStart(2, '0');\n","/**\n * Check if two dates fall on the same calendar day\n *\n * @param firstDate First Date object or timestamp\n * @param secondDate Second Date object or timestamp\n * @returns Boolean indicating if both dates have matching day, month, and year\n */\nexport const isSameDay = (\n firstDate: Date | number | string,\n secondDate: Date | number | string,\n): boolean => {\n const dateA = firstDate instanceof Date ? firstDate : new Date(firstDate);\n const dateB = secondDate instanceof Date ? secondDate : new Date(secondDate);\n\n return (\n dateA.getFullYear() === dateB.getFullYear() &&\n dateA.getMonth() === dateB.getMonth() &&\n dateA.getDate() === dateB.getDate()\n );\n};\n","import type { IDuration } from './interfaces/parseDuration.js';\n\n/**\n * Parse duration in milliseconds into days, hours, minutes, seconds, milliseconds\n *\n * @param durationInMs Integer of duration in milliseconds\n * @returns Object containing days, hours, minutes, seconds and milliseconds of provided duration\n */\nexport const parseDuration = (durationInMs: number): IDuration => {\n durationInMs = Math.abs(durationInMs);\n\n return {\n days: Math.floor(durationInMs / (24 * 60 * 60 * 1000)),\n hours: Math.floor(durationInMs / (60 * 60 * 1000)) % 24,\n minutes: Math.floor(durationInMs / (60 * 1000)) % 60,\n seconds: Math.floor(durationInMs / 1000) % 60,\n milliseconds: Math.floor(durationInMs) % 1000,\n };\n};\n","/**\n * Convert a date into human-readable relative time string (e.g. \"5 minutes ago\", \"in 2 days\")\n *\n * @param date Target Date, timestamp number, or date string\n * @param locale Optional BCP 47 locale tag (defaults to 'en')\n * @returns Human-readable relative time string\n */\nexport const timeAgo = (date: Date | number | string, locale = 'en'): string => {\n const targetDate = date instanceof Date ? date : new Date(date);\n const diffInSeconds = Math.round((targetDate.getTime() - Date.now()) / 1000);\n const absDiff = Math.abs(diffInSeconds);\n\n const formatter = new Intl.RelativeTimeFormat(locale, { numeric: 'auto' });\n\n if (absDiff < 60) {\n return formatter.format(diffInSeconds, 'second');\n }\n\n const diffInMinutes = Math.round(diffInSeconds / 60);\n if (Math.abs(diffInMinutes) < 60) {\n return formatter.format(diffInMinutes, 'minute');\n }\n\n const diffInHours = Math.round(diffInMinutes / 60);\n if (Math.abs(diffInHours) < 24) {\n return formatter.format(diffInHours, 'hour');\n }\n\n const diffInDays = Math.round(diffInHours / 24);\n if (Math.abs(diffInDays) < 30) {\n return formatter.format(diffInDays, 'day');\n }\n\n const diffInMonths = Math.round(diffInDays / 30);\n if (Math.abs(diffInMonths) < 12) {\n return formatter.format(diffInMonths, 'month');\n }\n\n const diffInYears = Math.round(diffInDays / 365);\n return formatter.format(diffInYears, 'year');\n};\n","/**\n * Get element's offset relative to the whole page\n *\n * @param element HTMLElement for which should be calculated offset\n * @returns Object with top and left offset value\n */\nexport const getElementOffset = (element: HTMLElement): { top: number; left: number } => {\n const box: DOMRect = element.getBoundingClientRect();\n\n return { top: box.top + window.pageYOffset, left: box.left + window.pageXOffset };\n};\n","/**\n * Listen to events fired on elements that may currently not exist in the DOM\n *\n * @param elementSelector Selector for element(s) to match event target\n * @param listeners List of event types and related callback(s)\n * @param acceptBubbling Boolean switch to allow bubbling or accept only direct element match\n * @returns Cleanup function to remove the delegated listeners\n */\nexport const addAsyncEventListener = (\n elementSelector: string,\n listeners: Record<string, EventListener | EventListener[]>,\n acceptBubbling = true,\n): (() => void) => {\n const removals: (() => void)[] = [];\n\n for (const eventName in listeners) {\n const functionList = (\n listeners[eventName] instanceof Array ? listeners[eventName] : [listeners[eventName]]\n ) as EventListener[];\n\n functionList.forEach((listener: EventListener) => {\n const handleEvent = (event: Event): void => {\n const target = event.target as HTMLElement;\n if (!target) {\n return;\n }\n\n if (!acceptBubbling && target.matches(elementSelector)) {\n listener(event);\n } else if (acceptBubbling && target.closest(elementSelector)) {\n listener(event);\n }\n };\n\n document.addEventListener(eventName, handleEvent);\n removals.push(() => {\n document.removeEventListener(eventName, handleEvent);\n });\n });\n }\n\n return () => {\n removals.forEach((remove) => {\n remove();\n });\n };\n};\n","/**\n * Add event listener to listen to clicks outside of given element\n *\n * @param element Node element outside which to listen to clicks\n * @param callback Function to trigger when clicked outside\n * @returns Cleanup function to remove the listener\n */\nexport const addClickOutsideListener = (\n element: HTMLElement,\n callback: (event?: Event) => void,\n): (() => void) => {\n const handleClick = (event: Event): void => {\n const target = event.target as HTMLElement;\n\n if (!!target && !element.contains(target)) {\n callback(event);\n }\n };\n\n document.addEventListener('click', handleClick);\n\n return () => {\n document.removeEventListener('click', handleClick);\n };\n};\n","/**\n * Add event listener(s) to one or more elements\n *\n * `listeners` is a map of event name to one handler or an array of handlers. This helper does not take `AddEventListenerOptions` and does not return cleanup.\n *\n * @param element One element or a list of elements\n * @param listeners Event name to handler or handler array\n * @returns void\n */\nexport const addEventListener = (\n element: HTMLElement | HTMLElement[] | NodeListOf<HTMLElement> | HTMLCollectionOf<HTMLElement>,\n listeners: Record<\n string,\n EventListenerOrEventListenerObject | EventListenerOrEventListenerObject[]\n >,\n): void => {\n const elementList = (\n element instanceof Array || element instanceof HTMLCollection || element instanceof NodeList\n ? Array.from(element)\n : [element]\n ) as HTMLElement[];\n\n elementList.forEach((targetElement: HTMLElement) => {\n for (const eventName in listeners) {\n const functionList = (\n listeners[eventName] instanceof Array ? listeners[eventName] : [listeners[eventName]]\n ) as EventListenerOrEventListenerObject[];\n\n functionList.forEach((listener: EventListenerOrEventListenerObject) =>\n targetElement.addEventListener(eventName, listener),\n );\n }\n });\n};\n","/**\n * Append given node after reference node in the DOM\n *\n * @param newNode New node element to be appended\n * @param referenceNode Reference node element\n * @returns Result of the action\n */\nexport const appendAfter = (newNode: HTMLElement, referenceNode: HTMLElement): boolean =>\n !!referenceNode.parentElement?.insertBefore(newNode, referenceNode.nextSibling);\n","/**\n * Append given node before reference node in the DOM\n *\n * @param newNode New node element to be appended\n * @param referenceNode Reference node element\n * @returns Result of the action\n */\nexport const appendBefore = (newNode: HTMLElement, referenceNode: HTMLElement): boolean =>\n !!referenceNode.parentElement?.insertBefore(newNode, referenceNode);\n","/**\n * Copy text to clipboard using Clipboard API with textarea fallback\n *\n * @param text String text to copy\n * @returns Promise resolving to boolean indicating success\n */\nexport const copyToClipboard = async (text: string): Promise<boolean> => {\n try {\n if (typeof navigator !== 'undefined' && navigator.clipboard?.writeText) {\n await navigator.clipboard.writeText(text);\n return true;\n }\n } catch {\n // Fallback below\n }\n\n try {\n const tempTextarea = document.createElement('textarea');\n tempTextarea.value = text;\n tempTextarea.style.position = 'fixed';\n tempTextarea.style.opacity = '0';\n tempTextarea.style.pointerEvents = 'none';\n document.body.appendChild(tempTextarea);\n\n try {\n tempTextarea.focus();\n tempTextarea.select();\n return document.execCommand('copy');\n } finally {\n document.body.removeChild(tempTextarea);\n }\n } catch {\n return false;\n }\n};\n","import type {\n TCreateElementNode,\n TCreateElementProps,\n TCreateElementPropsFor,\n} from './types/createElement.js';\n\n/**\n * Method for creating Node element and assigning multiple parameters, event listeners & children in one method call.\n * A known tag name selects that element's properties, so `input` accepts `type`, `checked`, and `disabled`.\n * An explicit element type does the same for a string tag: `createElement<HTMLInputElement>(tag, props)`.\n *\n * @param tagName Node tag name\n * @param props List of attributes, event listeners or/and children to assign to the newly created element\n * @returns Created element; known HTML tags infer their specific element type\n */\nexport function createElement<T extends HTMLElement | string>(\n tagName: T extends HTMLElement ? string : T,\n props?: TCreateElementPropsFor<T>,\n): TCreateElementNode<T>;\n\n/**\n * Creates the element and assigns properties.\n *\n * @param tagName Node tag name\n * @param props List of attributes, event listeners or/and children to assign to the newly created element\n * @returns Created element\n */\nexport function createElement(\n tagName: string,\n props?: TCreateElementProps<HTMLElement>,\n): HTMLElement {\n const element = document.createElement(tagName);\n\n if (props) {\n const propsRecord = props as Record<string, unknown>;\n\n for (const key in props) {\n const value = propsRecord[key];\n\n if (key === 'role') {\n element.setAttribute(key, value as string);\n } else if (key === 'aria') {\n for (const [ariaKey, ariaValue] of Object.entries(props.aria!)) {\n element.setAttribute(`aria-${ariaKey}`, ariaValue as string);\n }\n } else if (key === 'style') {\n Object.assign(element.style, props.style);\n } else if (key === 'children') {\n const fragment = document.createDocumentFragment();\n for (const child of props.children!) {\n if (typeof child === 'string') {\n fragment.appendChild(document.createTextNode(child));\n } else {\n fragment.appendChild(child);\n }\n }\n element.appendChild(fragment);\n } else if (key === 'listeners') {\n for (const eventName in props.listeners!) {\n const functionList = (\n props.listeners![eventName] instanceof Array\n ? props.listeners![eventName]\n : [props.listeners![eventName]]\n ) as EventListenerOrEventListenerObject[];\n\n functionList.forEach((listener: EventListenerOrEventListenerObject) =>\n element.addEventListener(eventName, listener),\n );\n }\n } else if (key === 'dataset') {\n Object.assign(element.dataset, props.dataset);\n } else {\n (element as unknown as Record<string, unknown>)[key] = value;\n }\n }\n }\n\n return element;\n}\n","/**\n * Dispatch a native Event on an element\n *\n * @param element Element to dispatch on\n * @param eventType Event type name\n * @returns Result of `dispatchEvent`\n */\nexport const fireEvent = (element: HTMLElement, eventType: string): boolean =>\n element.dispatchEvent(new Event(eventType));\n","/**\n * Check if a DOM element is currently within the visible viewport\n *\n * @param element Target HTMLElement to check\n * @param offset Optional margin offset in pixels to expand or shrink the viewport check boundary\n * @returns Boolean indicating whether element is in viewport\n */\nexport const isInViewport = (element: HTMLElement, offset = 0): boolean => {\n const rect = element.getBoundingClientRect();\n const windowHeight = window.innerHeight || document.documentElement.clientHeight;\n const windowWidth = window.innerWidth || document.documentElement.clientWidth;\n\n return (\n rect.top <= windowHeight + offset &&\n rect.bottom >= -offset &&\n rect.left <= windowWidth + offset &&\n rect.right >= -offset\n );\n};\n","/**\n * Toggle fullscreen mode for a given element or document root\n *\n * @param element Target HTMLElement to toggle fullscreen for (defaults to documentElement)\n * @returns Promise resolving when fullscreen state transition completes\n */\nexport const toggleFullscreen = async (\n element: HTMLElement = document.documentElement,\n): Promise<void> => {\n if (document.fullscreenElement) {\n await document.exitFullscreen();\n } else {\n await element.requestFullscreen();\n }\n};\n","import type { IFullscreenFallbackOptions } from './interfaces/toggleFullscreenWithFallback.js';\nimport type { TPseudoFullscreenState } from './types/toggleFullscreenWithFallback.js';\n\nconst pseudoFullscreenState = new WeakMap<HTMLElement, TPseudoFullscreenState>();\n\nconst restorePseudoFullscreen = (element: HTMLElement, state: TPseudoFullscreenState): void => {\n switch (state.mode) {\n case 'class':\n if (state.added) {\n element.classList.remove(state.className);\n }\n break;\n case 'style':\n element.style.position = state.position;\n element.style.top = state.top;\n element.style.left = state.left;\n element.style.width = state.width;\n element.style.height = state.height;\n element.style.zIndex = state.zIndex;\n element.style.overflow = state.overflow;\n break;\n default: {\n const _exhaustive: never = state;\n throw new Error(`Unhandled pseudo-fullscreen state: ${_exhaustive}`);\n }\n }\n\n pseudoFullscreenState.delete(element);\n};\n\n/**\n * Toggle fullscreen mode with CSS pseudo-fullscreen fallback for unsupported environments (such as iOS Safari)\n *\n * @param element Target HTMLElement to toggle fullscreen for (defaults to documentElement)\n * @param options Optional configuration for fallback CSS class or z-index\n * @returns Promise resolving to boolean indicating whether element is currently fullscreen/pseudo-fullscreen\n */\nexport const toggleFullscreenWithFallback = async (\n element: HTMLElement = document.documentElement,\n options?: IFullscreenFallbackOptions,\n): Promise<boolean> => {\n const isNativeSupported =\n typeof element.requestFullscreen === 'function' &&\n typeof document.exitFullscreen === 'function';\n\n if (isNativeSupported) {\n if (document.fullscreenElement) {\n await document.exitFullscreen();\n return false;\n }\n await element.requestFullscreen();\n return true;\n }\n\n const existingState = pseudoFullscreenState.get(element);\n if (existingState) {\n restorePseudoFullscreen(element, existingState);\n return false;\n }\n\n const customClass = options?.className;\n const zIndex = options?.zIndex ?? 9999;\n\n if (customClass) {\n const added = !element.classList.contains(customClass);\n if (added) {\n element.classList.add(customClass);\n }\n pseudoFullscreenState.set(element, { mode: 'class', className: customClass, added });\n } else {\n const styleState: TPseudoFullscreenState = {\n mode: 'style',\n position: element.style.position,\n top: element.style.top,\n left: element.style.left,\n width: element.style.width,\n height: element.style.height,\n zIndex: element.style.zIndex,\n overflow: element.style.overflow,\n };\n element.style.position = 'fixed';\n element.style.top = '0';\n element.style.left = '0';\n element.style.width = '100vw';\n element.style.height = '100vh';\n element.style.zIndex = String(zIndex);\n element.style.overflow = 'auto';\n pseudoFullscreenState.set(element, styleState);\n }\n\n return true;\n};\n","/**\n * Wait for an element matching selector to appear in the DOM\n *\n * @param selector CSS selector of the target element\n * @param timeout Timeout in milliseconds (default 5000)\n * @param parent Root element to observe (default document)\n * @returns Promise resolving to the HTMLElement\n */\nexport const waitForElement = <T extends HTMLElement = HTMLElement>(\n selector: string,\n timeout = 5000,\n parent: HTMLElement | Document = document,\n): Promise<T> =>\n new Promise((resolve, reject) => {\n const existing = parent.querySelector<T>(selector);\n if (existing) {\n return resolve(existing);\n }\n\n const observer = new MutationObserver(() => {\n const el = parent.querySelector<T>(selector);\n if (el) {\n observer.disconnect();\n clearTimeout(timer);\n resolve(el);\n }\n });\n\n const timer = setTimeout(() => {\n observer.disconnect();\n reject(new Error(`Timeout waiting for element matching selector: \"${selector}\"`));\n }, timeout);\n\n observer.observe(parent instanceof Document ? parent.body || parent.documentElement : parent, {\n childList: true,\n subtree: true,\n });\n });\n","/**\n * Split array into chunks of specified size\n *\n * @param array Array to split\n * @param size Size of each chunk (default 1)\n * @returns Array of chunked arrays\n */\nexport const chunk = <T>(array: T[], size = 1): T[][] => {\n if (size <= 0 || !array.length) {\n return [];\n }\n\n const result: T[][] = [];\n for (let i = 0; i < array.length; i += size) {\n result.push(array.slice(i, i + size));\n }\n\n return result;\n};\n","/**\n * Clamp a number between min and max bounds\n *\n * @param value Number to clamp\n * @param min Minimum boundary\n * @param max Maximum boundary\n * @returns Clamped value\n */\nexport const clamp = (value: number, min: number, max: number): number =>\n Math.min(Math.max(value, min), max);\n","/**\n * Group array elements by key returned from keyFn\n *\n * @param array Array of items\n * @param keyFn Function returning key to group by\n * @returns Object grouped by keys\n */\nexport const groupBy = <T, K extends string | number | symbol>(\n array: T[],\n keyFn: (item: T, index: number) => K,\n): Record<K, T[]> => {\n const result = Object.create(null) as Record<K, T[]>;\n\n array.forEach((item, index) => {\n const key = keyFn(item, index);\n if (!result[key]) {\n result[key] = [];\n }\n result[key].push(item);\n });\n\n return result;\n};\n","/**\n * Check if value is equal to null or undefined\n *\n * @param value Value to be checked\n * @returns Boolean indicating if value is equal to null or undefined\n */\nexport const isNil = (value: unknown): value is null | undefined =>\n value === undefined || value === null;\n","import { isNil } from './isNil.js';\n\n/**\n * Check if given value is empty\n *\n * @param value Value to be checked\n * @returns Boolean indicating if given value is empty\n */\nexport const isEmpty = (value: unknown): boolean => {\n if (value instanceof Function) {\n return false;\n }\n\n if (value instanceof Map || value instanceof Set) {\n return value.size === 0;\n }\n\n if (value !== null && typeof value === 'object' && Object.getPrototypeOf(value) === null) {\n return !Object.keys(value).length;\n }\n\n return (\n isNil(value) ||\n (value instanceof Object &&\n !Object.keys(value).length &&\n Object.getPrototypeOf(value) === Object.prototype) ||\n !String((value as { valueOf: () => unknown }).valueOf()).length\n );\n};\n","import { isNil } from './isNil.js';\n\n/**\n * Compare two values by `Object.is`, then Date time, RegExp `toString`, arrays, and own enumerable string keys\n *\n * Map, Set, cyclic objects, and symbol keys are not treated as a general deep-equality API.\n *\n * @param a First value to compare\n * @param b Second value to compare\n * @returns Whether the compared shapes are equal under those rules\n */\nexport const isEqual = (a: unknown, b: unknown): boolean => {\n if (Object.is(a, b)) {\n return true;\n }\n\n if (isNil(a) || isNil(b)) {\n return a === b;\n }\n\n if (typeof a !== typeof b) {\n return false;\n }\n\n if (a instanceof Date && b instanceof Date) {\n return a.getTime() === b.getTime();\n }\n\n if (a instanceof RegExp && b instanceof RegExp) {\n return a.toString() === b.toString();\n }\n\n if (Array.isArray(a) || Array.isArray(b)) {\n if (!Array.isArray(a) || !Array.isArray(b)) {\n return false;\n }\n if (a.length !== b.length) {\n return false;\n }\n for (let index = 0; index < a.length; index++) {\n if (!isEqual(a[index], b[index])) {\n return false;\n }\n }\n return true;\n }\n\n if (typeof a === 'object' && typeof b === 'object' && a !== null && b !== null) {\n const aRecord = a as Record<string, unknown>;\n const bRecord = b as Record<string, unknown>;\n const aKeys = Object.keys(aRecord);\n const bKeys = Object.keys(bRecord);\n\n if (aKeys.length !== bKeys.length) {\n return false;\n }\n\n for (const key of aKeys) {\n if (!Object.prototype.hasOwnProperty.call(bRecord, key)) {\n return false;\n }\n if (!isEqual(aRecord[key], bRecord[key])) {\n return false;\n }\n }\n\n return true;\n }\n\n return false;\n};\n","/**\n * Check if string is valid JSON\n *\n * @param value String value to be checked\n * @returns Boolean indicating if string value is a valid JSON\n */\nexport const isValidJson = (value: string): boolean => {\n try {\n JSON.parse(value);\n } catch {\n return false;\n }\n\n return true;\n};\n","/**\n * Creates an object composed of the picked object properties\n *\n * @param object Source object to pick properties from\n * @param keys Array of keys to pick\n * @returns New object containing only picked properties\n */\nexport const pick = <T extends Record<string, unknown>, K extends keyof T>(\n object: T,\n keys: K[],\n): Pick<T, K> => {\n const result = {} as Pick<T, K>;\n\n for (const key of keys) {\n if (key in object) {\n result[key] = object[key];\n }\n }\n\n return result;\n};\n","/**\n * Remove duplicate values from array\n *\n * @param array Array of items to deduplicate\n * @param keyFn Optional callback returning key to distinguish items by\n * @returns Deduplicated array\n */\nexport const unique = <T>(array: T[], keyFn?: (item: T, index: number) => unknown): T[] => {\n if (!keyFn) {\n return Array.from(new Set(array));\n }\n\n const seen = new Set<unknown>();\n const result: T[] = [];\n\n array.forEach((item, index) => {\n const key = keyFn(item, index);\n if (!seen.has(key)) {\n seen.add(key);\n result.push(item);\n }\n });\n\n return result;\n};\n","import type { IDebouncedFunction } from './interfaces/debounce.js';\n\n/**\n * Creates a debounced function that delays invoking callback until after delay milliseconds\n *\n * @param callback Function to debounce\n * @param delay Milliseconds to delay (default 300)\n * @returns Debounced function with cancel method\n */\nexport const debounce = <T extends (...args: never[]) => unknown>(\n callback: T,\n delay = 300,\n): IDebouncedFunction<T> => {\n let timer: ReturnType<typeof setTimeout> | null = null;\n\n const debounced = (...args: Parameters<T>): void => {\n if (timer !== null) {\n clearTimeout(timer);\n }\n\n timer = setTimeout(() => {\n callback(...args);\n timer = null;\n }, delay);\n };\n\n debounced.cancel = (): void => {\n if (timer !== null) {\n clearTimeout(timer);\n timer = null;\n }\n };\n\n return debounced;\n};\n","/**\n * Pause execution for given duration in milliseconds\n *\n * @param ms Duration in milliseconds to sleep\n * @returns Promise resolving after the duration\n */\nexport const sleep = (ms: number): Promise<void> =>\n new Promise((resolve) => setTimeout(resolve, ms));\n","import type { IRetryOptions } from './interfaces/retry.js';\nimport { sleep } from './sleep.js';\n\n/**\n * Retry an async operation given number of times before failing\n *\n * @param asyncOperation Async function to retry\n * @param options Configuration options (retries, delay, backoff)\n * @returns Promise resolving with the result of asyncOperation\n */\nexport const retry = async <T>(\n asyncOperation: () => Promise<T>,\n options?: IRetryOptions,\n): Promise<T> => {\n const retries = options?.retries ?? 3;\n const baseDelay = options?.delay ?? 1000;\n const backoff = options?.backoff ?? true;\n\n let lastError: unknown;\n for (let attempt = 0; attempt <= retries; attempt++) {\n try {\n return await asyncOperation();\n } catch (error) {\n lastError = error;\n if (attempt < retries) {\n const currentDelay = backoff ? baseDelay * Math.pow(2, attempt) : baseDelay;\n if (currentDelay > 0) {\n await sleep(currentDelay);\n }\n }\n }\n }\n\n throw lastError;\n};\n","import type { IAnimationControls } from './interfaces/runAnimation.js';\n\n/**\n * Run function as animation using requestAnimationFrame\n *\n * @param callback Function to be run as animation\n * @param autoStart If animation should start right away or just return callbacks\n * @returns Callbacks to start animation (startAnimation) and stop animation (stopAnimation)\n */\nexport const runAnimation = (callback: () => void, autoStart = true): IAnimationControls => {\n let isRunning = false;\n let requestedAnimationFrame: number | null = null;\n\n const runAnimation = (): void => {\n requestedAnimationFrame = requestAnimationFrame((): void => {\n callback.call(this);\n\n if (isRunning) {\n runAnimation();\n }\n });\n };\n\n const startAnimation = (): void => {\n if (isRunning) {\n return;\n }\n\n isRunning = true;\n runAnimation();\n };\n\n const stopAnimation = (): void => {\n if (!isRunning) {\n return;\n }\n\n isRunning = false;\n\n if (requestedAnimationFrame !== null) {\n cancelAnimationFrame(requestedAnimationFrame);\n }\n };\n\n if (autoStart) {\n startAnimation();\n }\n\n return { startAnimation, stopAnimation };\n};\n","/**\n * Run a function in a Web Worker by serializing its source into a Blob URL\n *\n * Closures, imports, and `this` are not available. Async callbacks are not awaited before `postMessage`.\n *\n * @param workerFunction Function whose source is run in the worker\n * @returns Promise of the posted result\n */\nexport const runAsync = <T>(workerFunction: () => T | Promise<T>): Promise<T> => {\n const worker = new Worker(URL.createObjectURL(new Blob([`postMessage((${workerFunction})());`])));\n\n return new Promise((resolve, reject) => {\n worker.onmessage = ({ data }: MessageEvent<T>) => {\n resolve(data);\n worker.terminate();\n };\n\n worker.onerror = (error: ErrorEvent) => {\n reject(error);\n worker.terminate();\n };\n });\n};\n","import type { IThrottledFunction } from './interfaces/throttle.js';\n\n/**\n * Creates a throttled function that only invokes callback at most once per every limit milliseconds\n *\n * @param callback Function to throttle\n * @param limit Milliseconds to limit invocations (default 300)\n * @returns Throttled function with cancel method\n */\nexport const throttle = <T extends (...args: never[]) => unknown>(\n callback: T,\n limit = 300,\n): IThrottledFunction<T> => {\n let timer: ReturnType<typeof setTimeout> | null = null;\n let lastArgs: Parameters<T> | null = null;\n\n const throttled = (...args: Parameters<T>): void => {\n if (timer === null) {\n callback(...args);\n timer = setTimeout(() => {\n timer = null;\n if (lastArgs !== null) {\n const currentArgs = lastArgs;\n lastArgs = null;\n throttled(...currentArgs);\n }\n }, limit);\n } else {\n lastArgs = args;\n }\n };\n\n throttled.cancel = (): void => {\n if (timer !== null) {\n clearTimeout(timer);\n timer = null;\n }\n lastArgs = null;\n };\n\n return throttled;\n};\n","/**\n * Clear all items from localStorage\n *\n * @returns void\n */\nexport const clearLocalStorage = (): void => {\n try {\n if (typeof localStorage !== 'undefined') {\n localStorage.clear();\n }\n } catch {\n // Storage access restricted\n }\n};\n","/**\n * Clear all items from sessionStorage\n *\n * @returns void\n */\nexport const clearSessionStorage = (): void => {\n try {\n if (typeof sessionStorage !== 'undefined') {\n sessionStorage.clear();\n }\n } catch {\n // Storage access restricted\n }\n};\n","import type { IStorageOptions } from './interfaces/storage.js';\nimport { decodeBase64 } from '../string/index.js';\n\n/**\n * Retrieve item from localStorage with automatic JSON parsing and optional Base64 decoding\n *\n * @param key Storage key\n * @param fallback Optional fallback value if key does not exist or parsing fails\n * @param options Storage options including optional Base64 decoding\n * @returns Parsed value or fallback\n */\nexport const getLocalStorage = <T>(\n key: string,\n fallback: T | null = null,\n options?: IStorageOptions,\n): T | null => {\n try {\n if (typeof localStorage === 'undefined') {\n return fallback;\n }\n const raw = localStorage.getItem(key);\n if (raw === null) {\n return fallback;\n }\n\n let json = raw;\n if (options?.encode) {\n try {\n json = decodeBase64(raw);\n } catch {\n json = raw;\n }\n }\n\n return JSON.parse(json) as T;\n } catch {\n return fallback;\n }\n};\n","import type { IStorageOptions } from './interfaces/storage.js';\nimport { decodeBase64 } from '../string/index.js';\n\n/**\n * Retrieve item from sessionStorage with automatic JSON parsing and optional Base64 decoding\n *\n * @param key Storage key\n * @param fallback Optional fallback value if key does not exist or parsing fails\n * @param options Storage options including optional Base64 decoding\n * @returns Parsed value or fallback\n */\nexport const getSessionStorage = <T>(\n key: string,\n fallback: T | null = null,\n options?: IStorageOptions,\n): T | null => {\n try {\n if (typeof sessionStorage === 'undefined') {\n return fallback;\n }\n const raw = sessionStorage.getItem(key);\n if (raw === null) {\n return fallback;\n }\n\n let json = raw;\n if (options?.encode) {\n try {\n json = decodeBase64(raw);\n } catch {\n json = raw;\n }\n }\n\n return JSON.parse(json) as T;\n } catch {\n return fallback;\n }\n};\n","/**\n * Remove item from localStorage\n *\n * @param key Storage key to remove\n * @returns void\n */\nexport const removeLocalStorage = (key: string): void => {\n try {\n if (typeof localStorage !== 'undefined') {\n localStorage.removeItem(key);\n }\n } catch {\n // Storage access restricted\n }\n};\n","/**\n * Remove item from sessionStorage\n *\n * @param key Storage key to remove\n * @returns void\n */\nexport const removeSessionStorage = (key: string): void => {\n try {\n if (typeof sessionStorage !== 'undefined') {\n sessionStorage.removeItem(key);\n }\n } catch {\n // Storage access restricted\n }\n};\n","import type { IStorageOptions } from './interfaces/storage.js';\nimport { encodeBase64 } from '../string/index.js';\n\n/**\n * Store item in localStorage with automatic JSON serialization and optional Base64 encoding\n *\n * @param key Storage key\n * @param value Value to store\n * @param options Storage options including optional Base64 encoding\n * @returns Whether a JSON-serializable payload was stored\n */\nexport const setLocalStorage = <T>(key: string, value: T, options?: IStorageOptions): boolean => {\n try {\n if (typeof localStorage === 'undefined') {\n return false;\n }\n const json = JSON.stringify(value);\n if (json === undefined) {\n return false;\n }\n const payload = options?.encode ? encodeBase64(json) : json;\n localStorage.setItem(key, payload);\n return true;\n } catch {\n return false;\n }\n};\n","import type { IStorageOptions } from './interfaces/storage.js';\nimport { encodeBase64 } from '../string/index.js';\n\n/**\n * Store item in sessionStorage with automatic JSON serialization and optional Base64 encoding\n *\n * @param key Storage key\n * @param value Value to store\n * @param options Storage options including optional Base64 encoding\n * @returns Whether a JSON-serializable payload was stored\n */\nexport const setSessionStorage = <T>(key: string, value: T, options?: IStorageOptions): boolean => {\n try {\n if (typeof sessionStorage === 'undefined') {\n return false;\n }\n const json = JSON.stringify(value);\n if (json === undefined) {\n return false;\n }\n const payload = options?.encode ? encodeBase64(json) : json;\n sessionStorage.setItem(key, payload);\n return true;\n } catch {\n return false;\n }\n};\n","/**\n * Safely decode a Base64 string to a Unicode string\n *\n * @param value Base64 string to decode\n * @returns Decoded Unicode string\n */\nexport const decodeBase64 = (value: string): string =>\n decodeURIComponent(\n Array.prototype.map\n .call(\n atob(value),\n (character: string) => `%${`00${character.charCodeAt(0).toString(16)}`.slice(-2)}`,\n )\n .join(''),\n );\n","/**\n * Safely encode a Unicode string to Base64\n *\n * @param value String to encode\n * @returns Base64 encoded string\n */\nexport const encodeBase64 = (value: string): string =>\n btoa(\n encodeURIComponent(value).replace(/%([0-9A-F]{2})/g, (_, p1) =>\n String.fromCharCode(parseInt(p1, 16)),\n ),\n );\n","/**\n * Return size of string in bytes\n *\n * @param value String to be sized\n * @returns Byte size of given string\n */\nexport const byteSize = (value: string): number => new Blob([value]).size;\n","/**\n * Remove diacritics & accents from string\n *\n * @param value String from which should be removed diacritics & accents\n * @returns ASCII string with removed diacritics & accents\n */\nexport const removeDiacritics = (value: string): string =>\n value\n .normalize('NFD')\n .toString()\n .replace(/[\\u0300-\\u036f]/g, '');\n","import { removeDiacritics } from './removeDiacritics.js';\n\n/**\n * Convert string to camelCase\n *\n * @param value String to convert\n * @returns camelCase string\n */\nexport const camelCase = (value: string): string =>\n removeDiacritics(value)\n .trim()\n .replace(/^[-_\\s]+|[-_\\s]+$/g, '')\n .replace(/[-_\\s]+(.)?/g, (_, character) => (character ? character.toUpperCase() : ''))\n .replace(/^[A-Z]/, (character) => character.toLowerCase());\n","/**\n * Capitalize first character of string\n *\n * @param value String to capitalize\n * @returns Capitalized string\n */\nexport const capitalize = (value: string): string =>\n value.length ? value.charAt(0).toUpperCase() + value.slice(1) : '';\n","/**\n * Encode `&`, `<`, `>`, `\"`, and `'` as HTML entities for ordinary text content or quoted attributes.\n *\n * This is not an HTML sanitizer and is not safe for script, style, URL, or unquoted-attribute contexts.\n *\n * @param html String that may contain HTML-significant characters\n * @returns String with `&`, `<`, `>`, `\"`, and `'` replaced by HTML entities\n */\nexport const escapeHTML = (html: string): string =>\n html\n .replace(/&/g, '&')\n .replace(/</g, '<')\n .replace(/>/g, '>')\n .replace(/\"/g, '"')\n .replace(/'/g, ''');\n","/**\n * Format bytes into human-readable string representation (e.g. \"1.5 MB\")\n *\n * @param bytes Number of bytes\n * @param decimals Number of decimal places to include (default 2)\n * @returns Formatted byte string\n */\nexport const formatBytes = (bytes: number, decimals = 2): string => {\n if (bytes <= 0 || isNaN(bytes)) {\n return '0 Bytes';\n }\n\n const k = 1024;\n const decimalCount = Math.max(0, decimals);\n const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB'];\n const index = Math.min(Math.floor(Math.log(bytes) / Math.log(k)), sizes.length - 1);\n\n const value = bytes / Math.pow(k, index);\n return `${parseFloat(value.toFixed(decimalCount))} ${sizes[index]}`;\n};\n","import { removeDiacritics } from './removeDiacritics.js';\n\n/**\n * Convert string to kebab-case\n *\n * @param value String to convert\n * @returns kebab-case string\n */\nexport const kebabCase = (value: string): string =>\n removeDiacritics(value)\n .trim()\n .replace(/([a-z\\d])([A-Z])/g, '$1-$2')\n .replace(/[-_\\s]+/g, '-')\n .replace(/^-+|-+$/g, '')\n .toLowerCase();\n","import type { IMaskOptions } from './interfaces/mask.js';\n\n/**\n * Mask sensitive characters in a string for safe display\n *\n * @param value String to mask\n * @param options Configuration for visible characters and mask character\n * @returns Masked string\n */\nexport const mask = (value: string, options?: IMaskOptions): string => {\n const visibleStart = options?.visibleStart ?? 0;\n const visibleEnd = options?.visibleEnd ?? 0;\n const maskChar = options?.maskChar ?? '*';\n\n if (!value.length) {\n return '';\n }\n\n const totalVisible = visibleStart + visibleEnd;\n if (totalVisible >= value.length) {\n return value;\n }\n\n const start = value.slice(0, visibleStart);\n const end = visibleEnd > 0 ? value.slice(-visibleEnd) : '';\n const maskedLength = value.length - totalVisible;\n const maskedMiddle = maskChar.repeat(maskedLength);\n\n return `${start}${maskedMiddle}${end}`;\n};\n","import { camelCase } from './camelCase.js';\nimport { capitalize } from './capitalize.js';\n\n/**\n * Convert string to PascalCase\n *\n * @param value String to convert\n * @returns PascalCase string\n */\nexport const pascalCase = (value: string): string => capitalize(camelCase(value));\n","const DEFAULT_CHARSET = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n\n/**\n * Generate cryptographically secure random string using crypto.getRandomValues\n *\n * @param length Desired length of random string\n * @param charset Character set to use (defaults to alphanumeric)\n * @returns Cryptographically secure random string\n */\nexport const randomCryptoString = (length = 16, charset: string = DEFAULT_CHARSET): string => {\n const charsetLength = charset.length;\n const randomValues = new Uint32Array(length);\n crypto.getRandomValues(randomValues);\n\n let result = '';\n for (const value of randomValues) {\n result += charset.charAt(value % charsetLength);\n }\n\n return result;\n};\n","const DEFAULT_CHARSET = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n\n/**\n * Generate random string using Math.random\n *\n * @param length Desired length of random string\n * @param charset Character set to use (defaults to alphanumeric)\n * @returns Random string\n */\nexport const randomString = (length = 16, charset: string = DEFAULT_CHARSET): string => {\n let result = '';\n const charsetLength = charset.length;\n for (let i = 0; i < length; i++) {\n result += charset.charAt(Math.floor(Math.random() * charsetLength));\n }\n\n return result;\n};\n","import { removeDiacritics } from './removeDiacritics.js';\n\n/**\n * Create slug from given string\n *\n * @param value String to be slugified\n * @param separator One character to be used as separator (if provided longer than one character, will be automatically shortened), dash ('-') by default\n * @returns Slugified string\n */\nexport const slugify = (value: string, separator = '-'): string => {\n separator = separator.trim().substring(0, 1) || '-';\n const escapedSeparator = separator.replace(/[.*+?^${}()|[\\]\\\\-]/g, '\\\\$&');\n const removeCharsRegex = new RegExp(`[^\\\\w\\\\s${escapedSeparator}]`, 'g');\n const multipleSeparatorsRegex = new RegExp(`${escapedSeparator}+`, 'g');\n const trimSeparatorsRegex = new RegExp(`^${escapedSeparator}+|${escapedSeparator}+$`, 'g');\n\n return removeDiacritics(value.trim().toLowerCase())\n .replace(removeCharsRegex, '')\n .replace(/\\s+/g, separator)\n .replace(multipleSeparatorsRegex, separator)\n .replace(trimSeparatorsRegex, '');\n};\n","import { removeDiacritics } from './removeDiacritics.js';\n\n/**\n * Convert string to snake_case\n *\n * @param value String to convert\n * @returns snake_case string\n */\nexport const snakeCase = (value: string): string =>\n removeDiacritics(value)\n .trim()\n .replace(/([a-z\\d])([A-Z])/g, '$1_$2')\n .replace(/[-_\\s]+/g, '_')\n .replace(/^_+|_+$/g, '')\n .toLowerCase();\n","/**\n * Truncate string to maximum given length if needed and append string at the end (by default \"...\")\n *\n * @param value String value to be truncated\n * @param maxLength Maximum allowed length\n * @param appendedString String to append at the end, be default \"...\"\n * @returns Truncated value if needed otherwise original value\n */\nexport const truncate = (value: string, maxLength: number, appendedString = '...'): string => {\n if (maxLength < appendedString.length) {\n return appendedString.slice(0, maxLength);\n }\n\n return value.length > maxLength\n ? value.slice(0, maxLength - appendedString.length) + appendedString\n : value;\n};\n","/**\n * Unescape HTML entities back into plain characters\n *\n * @param html HTML string containing entities\n * @returns Unescaped plain text\n */\nexport const unescapeHTML = (html: string): string => {\n const tempTextarea = document.createElement('textarea');\n tempTextarea.innerHTML = html;\n\n return tempTextarea.value;\n};\n","__webpack_require__.d = (exports, getters, values) => {\n\tvar define = (defs, kind) => {\n\t\tfor(var key in defs) {\n\t\t\tif(__webpack_require__.o(defs, key) && !__webpack_require__.o(exports, key)) {\n\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, [kind]: defs[key] });\n\t\t\t}\n\t\t}\n\t};\n\tdefine(getters, \"get\");\n\tdefine(values, \"value\");\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};"],"names":["setCookie","name","value","options","cookieString","encodeURIComponent","undefined","expires","Date","document","deleteCookie","detectOS","navigator","userAgent","downloadFile","data","filename","mimeType","blob","Blob","url","URL","tempLink","getCookie","encodedName","part","entry","separatorIndex","decodeURIComponent","getQueryParams","result","base","window","key","isPageVisible","isPushNotificationSupported","isScrollBehaviorSupported","isShareSupported","isTabFocused","isTouchSupported","networkStatusListener","onOnline","onOffline","handleOnline","handleOffline","pageVisibilityListener","onVisible","onHidden","handleVisibilityChange","preferLightColorScheme","preferDarkColorScheme","preferColorScheme","scrollToPosition","x","y","smoothScroll","target","scrollToElement","element","offset","getElementOffset","tabFocusListener","dateAsIso","date","timezoneOffset","isoFormat","padNumber","Math","number","isSameDay","firstDate","secondDate","dateA","dateB","parseDuration","durationInMs","timeAgo","locale","targetDate","diffInSeconds","absDiff","formatter","Intl","diffInMinutes","diffInHours","diffInDays","diffInMonths","diffInYears","box","addAsyncEventListener","elementSelector","listeners","acceptBubbling","removals","eventName","functionList","Array","listener","handleEvent","event","remove","addClickOutsideListener","callback","handleClick","addEventListener","elementList","HTMLCollection","NodeList","targetElement","appendAfter","newNode","referenceNode","appendBefore","copyToClipboard","text","tempTextarea","createElement","tagName","props","propsRecord","ariaKey","ariaValue","Object","fragment","child","fireEvent","eventType","Event","isInViewport","rect","windowHeight","windowWidth","toggleFullscreen","pseudoFullscreenState","WeakMap","restorePseudoFullscreen","state","_exhaustive","Error","toggleFullscreenWithFallback","isNativeSupported","existingState","customClass","zIndex","added","styleState","String","waitForElement","selector","timeout","parent","Promise","resolve","reject","existing","observer","MutationObserver","el","clearTimeout","timer","setTimeout","Document","chunk","array","size","i","clamp","min","max","groupBy","keyFn","item","index","isNil","isEmpty","Function","Map","Set","isEqual","a","b","RegExp","aRecord","bRecord","aKeys","bKeys","isValidJson","JSON","pick","object","keys","unique","seen","debounce","delay","debounced","args","sleep","ms","retry","asyncOperation","retries","baseDelay","backoff","lastError","attempt","error","currentDelay","runAnimation","autoStart","isRunning","requestedAnimationFrame","requestAnimationFrame","startAnimation","stopAnimation","cancelAnimationFrame","runAsync","workerFunction","worker","Worker","throttle","limit","lastArgs","throttled","currentArgs","clearLocalStorage","localStorage","clearSessionStorage","sessionStorage","getLocalStorage","fallback","raw","json","decodeBase64","getSessionStorage","removeLocalStorage","removeSessionStorage","setLocalStorage","payload","encodeBase64","setSessionStorage","atob","character","btoa","_","p1","parseInt","byteSize","removeDiacritics","camelCase","capitalize","escapeHTML","html","formatBytes","bytes","decimals","isNaN","k","decimalCount","sizes","parseFloat","kebabCase","mask","visibleStart","visibleEnd","maskChar","totalVisible","start","end","maskedLength","maskedMiddle","pascalCase","DEFAULT_CHARSET","randomCryptoString","length","charset","charsetLength","randomValues","Uint32Array","crypto","randomString","slugify","separator","escapedSeparator","removeCharsRegex","multipleSeparatorsRegex","trimSeparatorsRegex","snakeCase","truncate","maxLength","appendedString","unescapeHTML","__webpack_require__","getters","values","define","defs","kind","obj","prop","Symbol"],"mappings":"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"}
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __webpack_require__ = {};
|
|
3
|
+
(()=>{
|
|
4
|
+
__webpack_require__.d = (exports1, getters, values)=>{
|
|
5
|
+
var define = (defs, kind)=>{
|
|
6
|
+
for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
[kind]: defs[key]
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
define(getters, "get");
|
|
12
|
+
define(values, "value");
|
|
13
|
+
};
|
|
14
|
+
})();
|
|
15
|
+
(()=>{
|
|
16
|
+
__webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
|
|
17
|
+
})();
|
|
18
|
+
(()=>{
|
|
19
|
+
__webpack_require__.r = (exports1)=>{
|
|
20
|
+
if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
|
|
21
|
+
value: 'Module'
|
|
22
|
+
});
|
|
23
|
+
Object.defineProperty(exports1, '__esModule', {
|
|
24
|
+
value: true
|
|
25
|
+
});
|
|
26
|
+
};
|
|
27
|
+
})();
|
|
28
|
+
var __webpack_exports__ = {};
|
|
29
|
+
__webpack_require__.r(__webpack_exports__);
|
|
30
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
31
|
+
debounce: ()=>debounce,
|
|
32
|
+
retry: ()=>retry,
|
|
33
|
+
runAnimation: ()=>runAnimation_runAnimation,
|
|
34
|
+
runAsync: ()=>runAsync,
|
|
35
|
+
sleep: ()=>sleep,
|
|
36
|
+
throttle: ()=>throttle
|
|
37
|
+
});
|
|
38
|
+
const debounce = (callback, delay = 300)=>{
|
|
39
|
+
let timer = null;
|
|
40
|
+
const debounced = (...args)=>{
|
|
41
|
+
if (null !== timer) clearTimeout(timer);
|
|
42
|
+
timer = setTimeout(()=>{
|
|
43
|
+
callback(...args);
|
|
44
|
+
timer = null;
|
|
45
|
+
}, delay);
|
|
46
|
+
};
|
|
47
|
+
debounced.cancel = ()=>{
|
|
48
|
+
if (null !== timer) {
|
|
49
|
+
clearTimeout(timer);
|
|
50
|
+
timer = null;
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
return debounced;
|
|
54
|
+
};
|
|
55
|
+
const sleep = (ms)=>new Promise((resolve)=>setTimeout(resolve, ms));
|
|
56
|
+
const retry = async (asyncOperation, options)=>{
|
|
57
|
+
const retries = options?.retries ?? 3;
|
|
58
|
+
const baseDelay = options?.delay ?? 1000;
|
|
59
|
+
const backoff = options?.backoff ?? true;
|
|
60
|
+
let lastError;
|
|
61
|
+
for(let attempt = 0; attempt <= retries; attempt++)try {
|
|
62
|
+
return await asyncOperation();
|
|
63
|
+
} catch (error) {
|
|
64
|
+
lastError = error;
|
|
65
|
+
if (attempt < retries) {
|
|
66
|
+
const currentDelay = backoff ? baseDelay * Math.pow(2, attempt) : baseDelay;
|
|
67
|
+
if (currentDelay > 0) await sleep(currentDelay);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
throw lastError;
|
|
71
|
+
};
|
|
72
|
+
const runAnimation_runAnimation = (callback, autoStart = true)=>{
|
|
73
|
+
let isRunning = false;
|
|
74
|
+
let requestedAnimationFrame = null;
|
|
75
|
+
const runAnimation = ()=>{
|
|
76
|
+
requestedAnimationFrame = requestAnimationFrame(()=>{
|
|
77
|
+
callback.call(void 0);
|
|
78
|
+
if (isRunning) runAnimation();
|
|
79
|
+
});
|
|
80
|
+
};
|
|
81
|
+
const startAnimation = ()=>{
|
|
82
|
+
if (isRunning) return;
|
|
83
|
+
isRunning = true;
|
|
84
|
+
runAnimation();
|
|
85
|
+
};
|
|
86
|
+
const stopAnimation = ()=>{
|
|
87
|
+
if (!isRunning) return;
|
|
88
|
+
isRunning = false;
|
|
89
|
+
if (null !== requestedAnimationFrame) cancelAnimationFrame(requestedAnimationFrame);
|
|
90
|
+
};
|
|
91
|
+
if (autoStart) startAnimation();
|
|
92
|
+
return {
|
|
93
|
+
startAnimation,
|
|
94
|
+
stopAnimation
|
|
95
|
+
};
|
|
96
|
+
};
|
|
97
|
+
const runAsync = (workerFunction)=>{
|
|
98
|
+
const worker = new Worker(URL.createObjectURL(new Blob([
|
|
99
|
+
`postMessage((${workerFunction})());`
|
|
100
|
+
])));
|
|
101
|
+
return new Promise((resolve, reject)=>{
|
|
102
|
+
worker.onmessage = ({ data })=>{
|
|
103
|
+
resolve(data);
|
|
104
|
+
worker.terminate();
|
|
105
|
+
};
|
|
106
|
+
worker.onerror = (error)=>{
|
|
107
|
+
reject(error);
|
|
108
|
+
worker.terminate();
|
|
109
|
+
};
|
|
110
|
+
});
|
|
111
|
+
};
|
|
112
|
+
const throttle = (callback, limit = 300)=>{
|
|
113
|
+
let timer = null;
|
|
114
|
+
let lastArgs = null;
|
|
115
|
+
const throttled = (...args)=>{
|
|
116
|
+
if (null === timer) {
|
|
117
|
+
callback(...args);
|
|
118
|
+
timer = setTimeout(()=>{
|
|
119
|
+
timer = null;
|
|
120
|
+
if (null !== lastArgs) {
|
|
121
|
+
const currentArgs = lastArgs;
|
|
122
|
+
lastArgs = null;
|
|
123
|
+
throttled(...currentArgs);
|
|
124
|
+
}
|
|
125
|
+
}, limit);
|
|
126
|
+
} else lastArgs = args;
|
|
127
|
+
};
|
|
128
|
+
throttled.cancel = ()=>{
|
|
129
|
+
if (null !== timer) {
|
|
130
|
+
clearTimeout(timer);
|
|
131
|
+
timer = null;
|
|
132
|
+
}
|
|
133
|
+
lastArgs = null;
|
|
134
|
+
};
|
|
135
|
+
return throttled;
|
|
136
|
+
};
|
|
137
|
+
exports.debounce = __webpack_exports__.debounce;
|
|
138
|
+
exports.retry = __webpack_exports__.retry;
|
|
139
|
+
exports.runAnimation = __webpack_exports__.runAnimation;
|
|
140
|
+
exports.runAsync = __webpack_exports__.runAsync;
|
|
141
|
+
exports.sleep = __webpack_exports__.sleep;
|
|
142
|
+
exports.throttle = __webpack_exports__.throttle;
|
|
143
|
+
for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
144
|
+
"debounce",
|
|
145
|
+
"retry",
|
|
146
|
+
"runAnimation",
|
|
147
|
+
"runAsync",
|
|
148
|
+
"sleep",
|
|
149
|
+
"throttle"
|
|
150
|
+
].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
|
|
151
|
+
Object.defineProperty(exports, '__esModule', {
|
|
152
|
+
value: true
|
|
153
|
+
});
|
|
154
|
+
|
|
155
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schedule/index.cjs","sources":["webpack://webpack/runtime/define_property_getters","webpack://webpack/runtime/has_own_property","webpack://webpack/runtime/make_namespace_object","../../../src/schedule/debounce.ts","../../../src/schedule/sleep.ts","../../../src/schedule/retry.ts","../../../src/schedule/runAnimation.ts","../../../src/schedule/runAsync.ts","../../../src/schedule/throttle.ts"],"sourcesContent":["__webpack_require__.d = (exports, getters, values) => {\n\tvar define = (defs, kind) => {\n\t\tfor(var key in defs) {\n\t\t\tif(__webpack_require__.o(defs, key) && !__webpack_require__.o(exports, key)) {\n\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, [kind]: defs[key] });\n\t\t\t}\n\t\t}\n\t};\n\tdefine(getters, \"get\");\n\tdefine(values, \"value\");\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import type { IDebouncedFunction } from './interfaces/debounce.js';\n\n/**\n * Creates a debounced function that delays invoking callback until after delay milliseconds\n *\n * @param callback Function to debounce\n * @param delay Milliseconds to delay (default 300)\n * @returns Debounced function with cancel method\n */\nexport const debounce = <T extends (...args: never[]) => unknown>(\n callback: T,\n delay = 300,\n): IDebouncedFunction<T> => {\n let timer: ReturnType<typeof setTimeout> | null = null;\n\n const debounced = (...args: Parameters<T>): void => {\n if (timer !== null) {\n clearTimeout(timer);\n }\n\n timer = setTimeout(() => {\n callback(...args);\n timer = null;\n }, delay);\n };\n\n debounced.cancel = (): void => {\n if (timer !== null) {\n clearTimeout(timer);\n timer = null;\n }\n };\n\n return debounced;\n};\n","/**\n * Pause execution for given duration in milliseconds\n *\n * @param ms Duration in milliseconds to sleep\n * @returns Promise resolving after the duration\n */\nexport const sleep = (ms: number): Promise<void> =>\n new Promise((resolve) => setTimeout(resolve, ms));\n","import type { IRetryOptions } from './interfaces/retry.js';\nimport { sleep } from './sleep.js';\n\n/**\n * Retry an async operation given number of times before failing\n *\n * @param asyncOperation Async function to retry\n * @param options Configuration options (retries, delay, backoff)\n * @returns Promise resolving with the result of asyncOperation\n */\nexport const retry = async <T>(\n asyncOperation: () => Promise<T>,\n options?: IRetryOptions,\n): Promise<T> => {\n const retries = options?.retries ?? 3;\n const baseDelay = options?.delay ?? 1000;\n const backoff = options?.backoff ?? true;\n\n let lastError: unknown;\n for (let attempt = 0; attempt <= retries; attempt++) {\n try {\n return await asyncOperation();\n } catch (error) {\n lastError = error;\n if (attempt < retries) {\n const currentDelay = backoff ? baseDelay * Math.pow(2, attempt) : baseDelay;\n if (currentDelay > 0) {\n await sleep(currentDelay);\n }\n }\n }\n }\n\n throw lastError;\n};\n","import type { IAnimationControls } from './interfaces/runAnimation.js';\n\n/**\n * Run function as animation using requestAnimationFrame\n *\n * @param callback Function to be run as animation\n * @param autoStart If animation should start right away or just return callbacks\n * @returns Callbacks to start animation (startAnimation) and stop animation (stopAnimation)\n */\nexport const runAnimation = (callback: () => void, autoStart = true): IAnimationControls => {\n let isRunning = false;\n let requestedAnimationFrame: number | null = null;\n\n const runAnimation = (): void => {\n requestedAnimationFrame = requestAnimationFrame((): void => {\n callback.call(this);\n\n if (isRunning) {\n runAnimation();\n }\n });\n };\n\n const startAnimation = (): void => {\n if (isRunning) {\n return;\n }\n\n isRunning = true;\n runAnimation();\n };\n\n const stopAnimation = (): void => {\n if (!isRunning) {\n return;\n }\n\n isRunning = false;\n\n if (requestedAnimationFrame !== null) {\n cancelAnimationFrame(requestedAnimationFrame);\n }\n };\n\n if (autoStart) {\n startAnimation();\n }\n\n return { startAnimation, stopAnimation };\n};\n","/**\n * Run a function in a Web Worker by serializing its source into a Blob URL\n *\n * Closures, imports, and `this` are not available. Async callbacks are not awaited before `postMessage`.\n *\n * @param workerFunction Function whose source is run in the worker\n * @returns Promise of the posted result\n */\nexport const runAsync = <T>(workerFunction: () => T | Promise<T>): Promise<T> => {\n const worker = new Worker(URL.createObjectURL(new Blob([`postMessage((${workerFunction})());`])));\n\n return new Promise((resolve, reject) => {\n worker.onmessage = ({ data }: MessageEvent<T>) => {\n resolve(data);\n worker.terminate();\n };\n\n worker.onerror = (error: ErrorEvent) => {\n reject(error);\n worker.terminate();\n };\n });\n};\n","import type { IThrottledFunction } from './interfaces/throttle.js';\n\n/**\n * Creates a throttled function that only invokes callback at most once per every limit milliseconds\n *\n * @param callback Function to throttle\n * @param limit Milliseconds to limit invocations (default 300)\n * @returns Throttled function with cancel method\n */\nexport const throttle = <T extends (...args: never[]) => unknown>(\n callback: T,\n limit = 300,\n): IThrottledFunction<T> => {\n let timer: ReturnType<typeof setTimeout> | null = null;\n let lastArgs: Parameters<T> | null = null;\n\n const throttled = (...args: Parameters<T>): void => {\n if (timer === null) {\n callback(...args);\n timer = setTimeout(() => {\n timer = null;\n if (lastArgs !== null) {\n const currentArgs = lastArgs;\n lastArgs = null;\n throttled(...currentArgs);\n }\n }, limit);\n } else {\n lastArgs = args;\n }\n };\n\n throttled.cancel = (): void => {\n if (timer !== null) {\n clearTimeout(timer);\n timer = null;\n }\n lastArgs = null;\n };\n\n return throttled;\n};\n"],"names":["__webpack_require__","getters","values","define","defs","kind","key","Object","obj","prop","Symbol","debounce","callback","delay","timer","debounced","args","clearTimeout","setTimeout","sleep","ms","Promise","resolve","retry","asyncOperation","options","retries","baseDelay","backoff","lastError","attempt","error","currentDelay","Math","runAnimation","autoStart","isRunning","requestedAnimationFrame","requestAnimationFrame","startAnimation","stopAnimation","cancelAnimationFrame","runAsync","workerFunction","worker","Worker","URL","Blob","reject","data","throttle","limit","lastArgs","throttled","currentArgs"],"mappings":"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"}
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __webpack_modules__ = {
|
|
3
|
+
"./src/string/decodeBase64.ts" (__unused_rspack_module, __webpack_exports__, __webpack_require__) {
|
|
4
|
+
const decodeBase64 = (value)=>decodeURIComponent(Array.prototype.map.call(atob(value), (character)=>`%${`00${character.charCodeAt(0).toString(16)}`.slice(-2)}`).join(''));
|
|
5
|
+
__webpack_require__.d(__webpack_exports__, {}, {
|
|
6
|
+
y: decodeBase64
|
|
7
|
+
});
|
|
8
|
+
},
|
|
9
|
+
"./src/string/encodeBase64.ts" (__unused_rspack_module, __webpack_exports__, __webpack_require__) {
|
|
10
|
+
const encodeBase64 = (value)=>btoa(encodeURIComponent(value).replace(/%([0-9A-F]{2})/g, (_, p1)=>String.fromCharCode(parseInt(p1, 16))));
|
|
11
|
+
__webpack_require__.d(__webpack_exports__, {}, {
|
|
12
|
+
W: encodeBase64
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
};
|
|
16
|
+
var __webpack_module_cache__ = {};
|
|
17
|
+
function __webpack_require__(moduleId) {
|
|
18
|
+
var cachedModule = __webpack_module_cache__[moduleId];
|
|
19
|
+
if (void 0 !== cachedModule) return cachedModule.exports;
|
|
20
|
+
var module = __webpack_module_cache__[moduleId] = {
|
|
21
|
+
exports: {}
|
|
22
|
+
};
|
|
23
|
+
__webpack_modules__[moduleId](module, module.exports, __webpack_require__);
|
|
24
|
+
return module.exports;
|
|
25
|
+
}
|
|
26
|
+
(()=>{
|
|
27
|
+
__webpack_require__.d = (exports1, getters, values)=>{
|
|
28
|
+
var define = (defs, kind)=>{
|
|
29
|
+
for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
|
|
30
|
+
enumerable: true,
|
|
31
|
+
[kind]: defs[key]
|
|
32
|
+
});
|
|
33
|
+
};
|
|
34
|
+
define(getters, "get");
|
|
35
|
+
define(values, "value");
|
|
36
|
+
};
|
|
37
|
+
})();
|
|
38
|
+
(()=>{
|
|
39
|
+
__webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
|
|
40
|
+
})();
|
|
41
|
+
(()=>{
|
|
42
|
+
__webpack_require__.r = (exports1)=>{
|
|
43
|
+
if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
|
|
44
|
+
value: 'Module'
|
|
45
|
+
});
|
|
46
|
+
Object.defineProperty(exports1, '__esModule', {
|
|
47
|
+
value: true
|
|
48
|
+
});
|
|
49
|
+
};
|
|
50
|
+
})();
|
|
51
|
+
var __webpack_exports__ = {};
|
|
52
|
+
(()=>{
|
|
53
|
+
__webpack_require__.r(__webpack_exports__);
|
|
54
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
55
|
+
clearLocalStorage: ()=>clearLocalStorage,
|
|
56
|
+
clearSessionStorage: ()=>clearSessionStorage,
|
|
57
|
+
getLocalStorage: ()=>getLocalStorage,
|
|
58
|
+
getSessionStorage: ()=>getSessionStorage,
|
|
59
|
+
removeLocalStorage: ()=>removeLocalStorage,
|
|
60
|
+
removeSessionStorage: ()=>removeSessionStorage,
|
|
61
|
+
setLocalStorage: ()=>setLocalStorage,
|
|
62
|
+
setSessionStorage: ()=>setSessionStorage
|
|
63
|
+
});
|
|
64
|
+
const clearLocalStorage = ()=>{
|
|
65
|
+
try {
|
|
66
|
+
if ("u" > typeof localStorage) localStorage.clear();
|
|
67
|
+
} catch {}
|
|
68
|
+
};
|
|
69
|
+
const clearSessionStorage = ()=>{
|
|
70
|
+
try {
|
|
71
|
+
if ("u" > typeof sessionStorage) sessionStorage.clear();
|
|
72
|
+
} catch {}
|
|
73
|
+
};
|
|
74
|
+
var decodeBase64 = __webpack_require__("./src/string/decodeBase64.ts");
|
|
75
|
+
const getLocalStorage = (key, fallback = null, options)=>{
|
|
76
|
+
try {
|
|
77
|
+
if ("u" < typeof localStorage) return fallback;
|
|
78
|
+
const raw = localStorage.getItem(key);
|
|
79
|
+
if (null === raw) return fallback;
|
|
80
|
+
let json = raw;
|
|
81
|
+
if (options?.encode) try {
|
|
82
|
+
json = (0, decodeBase64.y)(raw);
|
|
83
|
+
} catch {
|
|
84
|
+
json = raw;
|
|
85
|
+
}
|
|
86
|
+
return JSON.parse(json);
|
|
87
|
+
} catch {
|
|
88
|
+
return fallback;
|
|
89
|
+
}
|
|
90
|
+
};
|
|
91
|
+
const getSessionStorage = (key, fallback = null, options)=>{
|
|
92
|
+
try {
|
|
93
|
+
if ("u" < typeof sessionStorage) return fallback;
|
|
94
|
+
const raw = sessionStorage.getItem(key);
|
|
95
|
+
if (null === raw) return fallback;
|
|
96
|
+
let json = raw;
|
|
97
|
+
if (options?.encode) try {
|
|
98
|
+
json = (0, decodeBase64.y)(raw);
|
|
99
|
+
} catch {
|
|
100
|
+
json = raw;
|
|
101
|
+
}
|
|
102
|
+
return JSON.parse(json);
|
|
103
|
+
} catch {
|
|
104
|
+
return fallback;
|
|
105
|
+
}
|
|
106
|
+
};
|
|
107
|
+
const removeLocalStorage = (key)=>{
|
|
108
|
+
try {
|
|
109
|
+
if ("u" > typeof localStorage) localStorage.removeItem(key);
|
|
110
|
+
} catch {}
|
|
111
|
+
};
|
|
112
|
+
const removeSessionStorage = (key)=>{
|
|
113
|
+
try {
|
|
114
|
+
if ("u" > typeof sessionStorage) sessionStorage.removeItem(key);
|
|
115
|
+
} catch {}
|
|
116
|
+
};
|
|
117
|
+
var encodeBase64 = __webpack_require__("./src/string/encodeBase64.ts");
|
|
118
|
+
const setLocalStorage = (key, value, options)=>{
|
|
119
|
+
try {
|
|
120
|
+
if ("u" < typeof localStorage) return false;
|
|
121
|
+
const json = JSON.stringify(value);
|
|
122
|
+
if (void 0 === json) return false;
|
|
123
|
+
const payload = options?.encode ? (0, encodeBase64.W)(json) : json;
|
|
124
|
+
localStorage.setItem(key, payload);
|
|
125
|
+
return true;
|
|
126
|
+
} catch {
|
|
127
|
+
return false;
|
|
128
|
+
}
|
|
129
|
+
};
|
|
130
|
+
const setSessionStorage = (key, value, options)=>{
|
|
131
|
+
try {
|
|
132
|
+
if ("u" < typeof sessionStorage) return false;
|
|
133
|
+
const json = JSON.stringify(value);
|
|
134
|
+
if (void 0 === json) return false;
|
|
135
|
+
const payload = options?.encode ? (0, encodeBase64.W)(json) : json;
|
|
136
|
+
sessionStorage.setItem(key, payload);
|
|
137
|
+
return true;
|
|
138
|
+
} catch {
|
|
139
|
+
return false;
|
|
140
|
+
}
|
|
141
|
+
};
|
|
142
|
+
})();
|
|
143
|
+
exports.clearLocalStorage = __webpack_exports__.clearLocalStorage;
|
|
144
|
+
exports.clearSessionStorage = __webpack_exports__.clearSessionStorage;
|
|
145
|
+
exports.getLocalStorage = __webpack_exports__.getLocalStorage;
|
|
146
|
+
exports.getSessionStorage = __webpack_exports__.getSessionStorage;
|
|
147
|
+
exports.removeLocalStorage = __webpack_exports__.removeLocalStorage;
|
|
148
|
+
exports.removeSessionStorage = __webpack_exports__.removeSessionStorage;
|
|
149
|
+
exports.setLocalStorage = __webpack_exports__.setLocalStorage;
|
|
150
|
+
exports.setSessionStorage = __webpack_exports__.setSessionStorage;
|
|
151
|
+
for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
152
|
+
"clearLocalStorage",
|
|
153
|
+
"clearSessionStorage",
|
|
154
|
+
"getLocalStorage",
|
|
155
|
+
"getSessionStorage",
|
|
156
|
+
"removeLocalStorage",
|
|
157
|
+
"removeSessionStorage",
|
|
158
|
+
"setLocalStorage",
|
|
159
|
+
"setSessionStorage"
|
|
160
|
+
].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
|
|
161
|
+
Object.defineProperty(exports, '__esModule', {
|
|
162
|
+
value: true
|
|
163
|
+
});
|
|
164
|
+
|
|
165
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage/index.cjs","sources":["../../../src/string/decodeBase64.ts","../../../src/string/encodeBase64.ts","webpack://webpack/runtime/define_property_getters","webpack://webpack/runtime/has_own_property","webpack://webpack/runtime/make_namespace_object","../../../src/storage/clearLocalStorage.ts","../../../src/storage/clearSessionStorage.ts","../../../src/storage/getLocalStorage.ts","../../../src/storage/getSessionStorage.ts","../../../src/storage/removeLocalStorage.ts","../../../src/storage/removeSessionStorage.ts","../../../src/storage/setLocalStorage.ts","../../../src/storage/setSessionStorage.ts"],"sourcesContent":["/**\n * Safely decode a Base64 string to a Unicode string\n *\n * @param value Base64 string to decode\n * @returns Decoded Unicode string\n */\nexport const decodeBase64 = (value: string): string =>\n decodeURIComponent(\n Array.prototype.map\n .call(\n atob(value),\n (character: string) => `%${`00${character.charCodeAt(0).toString(16)}`.slice(-2)}`,\n )\n .join(''),\n );\n","/**\n * Safely encode a Unicode string to Base64\n *\n * @param value String to encode\n * @returns Base64 encoded string\n */\nexport const encodeBase64 = (value: string): string =>\n btoa(\n encodeURIComponent(value).replace(/%([0-9A-F]{2})/g, (_, p1) =>\n String.fromCharCode(parseInt(p1, 16)),\n ),\n );\n","__webpack_require__.d = (exports, getters, values) => {\n\tvar define = (defs, kind) => {\n\t\tfor(var key in defs) {\n\t\t\tif(__webpack_require__.o(defs, key) && !__webpack_require__.o(exports, key)) {\n\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, [kind]: defs[key] });\n\t\t\t}\n\t\t}\n\t};\n\tdefine(getters, \"get\");\n\tdefine(values, \"value\");\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","/**\n * Clear all items from localStorage\n *\n * @returns void\n */\nexport const clearLocalStorage = (): void => {\n try {\n if (typeof localStorage !== 'undefined') {\n localStorage.clear();\n }\n } catch {\n // Storage access restricted\n }\n};\n","/**\n * Clear all items from sessionStorage\n *\n * @returns void\n */\nexport const clearSessionStorage = (): void => {\n try {\n if (typeof sessionStorage !== 'undefined') {\n sessionStorage.clear();\n }\n } catch {\n // Storage access restricted\n }\n};\n","import type { IStorageOptions } from './interfaces/storage.js';\nimport { decodeBase64 } from '../string/index.js';\n\n/**\n * Retrieve item from localStorage with automatic JSON parsing and optional Base64 decoding\n *\n * @param key Storage key\n * @param fallback Optional fallback value if key does not exist or parsing fails\n * @param options Storage options including optional Base64 decoding\n * @returns Parsed value or fallback\n */\nexport const getLocalStorage = <T>(\n key: string,\n fallback: T | null = null,\n options?: IStorageOptions,\n): T | null => {\n try {\n if (typeof localStorage === 'undefined') {\n return fallback;\n }\n const raw = localStorage.getItem(key);\n if (raw === null) {\n return fallback;\n }\n\n let json = raw;\n if (options?.encode) {\n try {\n json = decodeBase64(raw);\n } catch {\n json = raw;\n }\n }\n\n return JSON.parse(json) as T;\n } catch {\n return fallback;\n }\n};\n","import type { IStorageOptions } from './interfaces/storage.js';\nimport { decodeBase64 } from '../string/index.js';\n\n/**\n * Retrieve item from sessionStorage with automatic JSON parsing and optional Base64 decoding\n *\n * @param key Storage key\n * @param fallback Optional fallback value if key does not exist or parsing fails\n * @param options Storage options including optional Base64 decoding\n * @returns Parsed value or fallback\n */\nexport const getSessionStorage = <T>(\n key: string,\n fallback: T | null = null,\n options?: IStorageOptions,\n): T | null => {\n try {\n if (typeof sessionStorage === 'undefined') {\n return fallback;\n }\n const raw = sessionStorage.getItem(key);\n if (raw === null) {\n return fallback;\n }\n\n let json = raw;\n if (options?.encode) {\n try {\n json = decodeBase64(raw);\n } catch {\n json = raw;\n }\n }\n\n return JSON.parse(json) as T;\n } catch {\n return fallback;\n }\n};\n","/**\n * Remove item from localStorage\n *\n * @param key Storage key to remove\n * @returns void\n */\nexport const removeLocalStorage = (key: string): void => {\n try {\n if (typeof localStorage !== 'undefined') {\n localStorage.removeItem(key);\n }\n } catch {\n // Storage access restricted\n }\n};\n","/**\n * Remove item from sessionStorage\n *\n * @param key Storage key to remove\n * @returns void\n */\nexport const removeSessionStorage = (key: string): void => {\n try {\n if (typeof sessionStorage !== 'undefined') {\n sessionStorage.removeItem(key);\n }\n } catch {\n // Storage access restricted\n }\n};\n","import type { IStorageOptions } from './interfaces/storage.js';\nimport { encodeBase64 } from '../string/index.js';\n\n/**\n * Store item in localStorage with automatic JSON serialization and optional Base64 encoding\n *\n * @param key Storage key\n * @param value Value to store\n * @param options Storage options including optional Base64 encoding\n * @returns Whether a JSON-serializable payload was stored\n */\nexport const setLocalStorage = <T>(key: string, value: T, options?: IStorageOptions): boolean => {\n try {\n if (typeof localStorage === 'undefined') {\n return false;\n }\n const json = JSON.stringify(value);\n if (json === undefined) {\n return false;\n }\n const payload = options?.encode ? encodeBase64(json) : json;\n localStorage.setItem(key, payload);\n return true;\n } catch {\n return false;\n }\n};\n","import type { IStorageOptions } from './interfaces/storage.js';\nimport { encodeBase64 } from '../string/index.js';\n\n/**\n * Store item in sessionStorage with automatic JSON serialization and optional Base64 encoding\n *\n * @param key Storage key\n * @param value Value to store\n * @param options Storage options including optional Base64 encoding\n * @returns Whether a JSON-serializable payload was stored\n */\nexport const setSessionStorage = <T>(key: string, value: T, options?: IStorageOptions): boolean => {\n try {\n if (typeof sessionStorage === 'undefined') {\n return false;\n }\n const json = JSON.stringify(value);\n if (json === undefined) {\n return false;\n }\n const payload = options?.encode ? encodeBase64(json) : json;\n sessionStorage.setItem(key, payload);\n return true;\n } catch {\n return false;\n }\n};\n"],"names":["decodeBase64","value","decodeURIComponent","Array","atob","character","encodeBase64","btoa","encodeURIComponent","_","p1","String","parseInt","__webpack_require__","getters","values","define","defs","kind","key","Object","obj","prop","Symbol","clearLocalStorage","localStorage","clearSessionStorage","sessionStorage","getLocalStorage","fallback","options","raw","json","JSON","getSessionStorage","removeLocalStorage","removeSessionStorage","setLocalStorage","undefined","payload","setSessionStorage"],"mappings":"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"}
|