@studiometa/js-toolkit 3.6.0-beta.0 → 3.6.0-beta.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/Base/Base.js.map +2 -2
- package/Base/types.d.ts +3 -3
- package/Base/utils.js.map +2 -2
- package/README.md +10 -0
- package/decorators/withBreakpointManager.d.ts +1 -1
- package/decorators/withBreakpointManager.js.map +1 -1
- package/decorators/withBreakpointObserver.d.ts +1 -1
- package/decorators/withBreakpointObserver.js.map +1 -1
- package/decorators/withDrag.d.ts +1 -1
- package/decorators/withDrag.js.map +1 -1
- package/decorators/withExtraConfig.d.ts +1 -1
- package/decorators/withExtraConfig.js.map +1 -1
- package/decorators/withFreezedOptions.d.ts +1 -1
- package/decorators/withFreezedOptions.js.map +1 -1
- package/decorators/withGroup.js.map +2 -2
- package/decorators/withIntersectionObserver.d.ts +1 -1
- package/decorators/withIntersectionObserver.js.map +1 -1
- package/decorators/withMountOnMediaQuery.d.ts +1 -1
- package/decorators/withMountOnMediaQuery.js.map +1 -1
- package/decorators/withMountWhenInView.d.ts +1 -1
- package/decorators/withMountWhenInView.js.map +1 -1
- package/decorators/withMutation.d.ts +1 -1
- package/decorators/withMutation.js.map +1 -1
- package/decorators/withRelativePointer.d.ts +1 -1
- package/decorators/withRelativePointer.js.map +1 -1
- package/decorators/withResponsiveOptions.d.ts +1 -1
- package/decorators/withResponsiveOptions.js.map +1 -1
- package/decorators/withScrolledInView/withScrolledInView.d.ts +1 -1
- package/decorators/withScrolledInView/withScrolledInView.js.map +1 -1
- package/helpers/createApp.d.ts +1 -1
- package/helpers/createApp.js +1 -4
- package/helpers/createApp.js.map +2 -2
- package/helpers/getClosestParent.d.ts +1 -1
- package/helpers/getClosestParent.js.map +1 -1
- package/helpers/getDirectChildren.d.ts +2 -2
- package/helpers/getDirectChildren.js.map +1 -1
- package/helpers/getInstanceFromElement.d.ts +1 -1
- package/helpers/getInstanceFromElement.js.map +1 -1
- package/helpers/importOnInteraction.d.ts +1 -1
- package/helpers/importOnInteraction.js.map +1 -1
- package/helpers/importOnMediaQuery.d.ts +1 -1
- package/helpers/importOnMediaQuery.js.map +1 -1
- package/helpers/importWhenIdle.d.ts +1 -1
- package/helpers/importWhenIdle.js.map +1 -1
- package/helpers/importWhenPrefersMotion.d.ts +1 -1
- package/helpers/importWhenPrefersMotion.js.map +1 -1
- package/helpers/importWhenVisible.d.ts +1 -1
- package/helpers/importWhenVisible.js.map +1 -1
- package/helpers/queryComponent.js.map +2 -2
- package/package.json +1 -1
- package/services/DragService.d.ts +1 -1
- package/services/DragService.js.map +1 -1
- package/services/KeyService.d.ts +1 -1
- package/services/KeyService.js.map +1 -1
- package/services/LoadService.d.ts +1 -1
- package/services/LoadService.js.map +1 -1
- package/services/MutationService.d.ts +1 -1
- package/services/MutationService.js.map +1 -1
- package/services/PointerService.d.ts +1 -1
- package/services/PointerService.js.map +1 -1
- package/services/RafService.d.ts +1 -1
- package/services/RafService.js.map +1 -1
- package/services/ResizeService.d.ts +1 -1
- package/services/ResizeService.js.map +1 -1
- package/services/ScrollService.d.ts +1 -1
- package/services/ScrollService.js.map +1 -1
- package/utils/cache.d.ts +1 -1
- package/utils/cache.js.map +1 -1
- package/utils/collide/boundingRectToCircle.d.ts +1 -1
- package/utils/collide/boundingRectToCircle.js.map +1 -1
- package/utils/collide/collideCircleCircle.d.ts +1 -1
- package/utils/collide/collideCircleCircle.js.map +1 -1
- package/utils/collide/collideCircleRect.d.ts +1 -1
- package/utils/collide/collideCircleRect.js.map +1 -1
- package/utils/collide/collidePointCircle.d.ts +1 -1
- package/utils/collide/collidePointCircle.js.map +1 -1
- package/utils/collide/collidePointRect.d.ts +1 -1
- package/utils/collide/collidePointRect.js.map +1 -1
- package/utils/collide/collideRectRect.d.ts +1 -1
- package/utils/collide/collideRectRect.js.map +1 -1
- package/utils/css/animate.d.ts +1 -1
- package/utils/css/animate.js +2 -6
- package/utils/css/animate.js.map +2 -2
- package/utils/css/classes.d.ts +3 -3
- package/utils/css/classes.js.map +1 -1
- package/utils/css/getOffsetSizes.d.ts +1 -1
- package/utils/css/getOffsetSizes.js.map +1 -1
- package/utils/css/matrix.d.ts +1 -1
- package/utils/css/matrix.js.map +1 -1
- package/utils/css/styles.d.ts +2 -2
- package/utils/css/styles.js.map +1 -1
- package/utils/css/transform.d.ts +1 -1
- package/utils/css/transform.js.map +1 -1
- package/utils/css/transition.d.ts +1 -1
- package/utils/css/transition.js.map +1 -1
- package/utils/debounce.d.ts +1 -1
- package/utils/debounce.js.map +1 -1
- package/utils/history.d.ts +3 -3
- package/utils/history.js.map +1 -1
- package/utils/is.d.ts +10 -10
- package/utils/is.js.map +1 -1
- package/utils/loadElement.d.ts +5 -5
- package/utils/loadElement.js.map +1 -1
- package/utils/math/clamp.d.ts +1 -1
- package/utils/math/clamp.js.map +1 -1
- package/utils/math/clamp01.d.ts +1 -1
- package/utils/math/clamp01.js.map +1 -1
- package/utils/math/createEases.d.ts +2 -2
- package/utils/math/createEases.js.map +1 -1
- package/utils/math/createRange.d.ts +1 -1
- package/utils/math/createRange.js.map +1 -1
- package/utils/math/damp.d.ts +1 -1
- package/utils/math/damp.js.map +2 -2
- package/utils/math/inertiaFinalValue.d.ts +1 -1
- package/utils/math/inertiaFinalValue.js.map +1 -1
- package/utils/math/lerp.d.ts +1 -1
- package/utils/math/lerp.js.map +1 -1
- package/utils/math/map.d.ts +1 -1
- package/utils/math/map.js.map +1 -1
- package/utils/math/round.d.ts +1 -1
- package/utils/math/round.js.map +1 -1
- package/utils/math/wrap.d.ts +1 -1
- package/utils/math/wrap.js.map +1 -1
- package/utils/memo.d.ts +1 -1
- package/utils/memo.js.map +1 -1
- package/utils/memoize.d.ts +1 -1
- package/utils/memoize.js.map +1 -1
- package/utils/nextFrame.d.ts +1 -1
- package/utils/nextFrame.js.map +1 -1
- package/utils/nextMicrotask.d.ts +1 -1
- package/utils/nextMicrotask.js.map +1 -1
- package/utils/nextTick.d.ts +1 -1
- package/utils/nextTick.js.map +1 -1
- package/utils/random.d.ts +3 -3
- package/utils/random.js.map +1 -1
- package/utils/scheduler.d.ts +2 -2
- package/utils/scheduler.js.map +1 -1
- package/utils/scrollTo.d.ts +1 -1
- package/utils/scrollTo.js.map +1 -1
- package/utils/storage/createStorage.js +1 -5
- package/utils/storage/createStorage.js.map +2 -2
- package/utils/storage/createUrlSearchParamsProvider.js.map +2 -2
- package/utils/storage/getGlobalStorage.js.map +2 -2
- package/utils/storage/index.js.map +2 -2
- package/utils/string/changeCase.d.ts +6 -6
- package/utils/string/changeCase.js.map +1 -1
- package/utils/string/withLeadingCharacters.d.ts +1 -1
- package/utils/string/withLeadingCharacters.js.map +1 -1
- package/utils/string/withLeadingSlash.d.ts +1 -1
- package/utils/string/withLeadingSlash.js.map +1 -1
- package/utils/string/withTrailingCharacters.d.ts +1 -1
- package/utils/string/withTrailingCharacters.js.map +1 -1
- package/utils/string/withTrailingSlash.d.ts +1 -1
- package/utils/string/withTrailingSlash.js.map +1 -1
- package/utils/string/withoutLeadingCharacters.d.ts +1 -1
- package/utils/string/withoutLeadingCharacters.js.map +1 -1
- package/utils/string/withoutLeadingCharactersRecursive.d.ts +1 -1
- package/utils/string/withoutLeadingCharactersRecursive.js.map +1 -1
- package/utils/string/withoutLeadingSlash.d.ts +1 -1
- package/utils/string/withoutLeadingSlash.js.map +1 -1
- package/utils/string/withoutTrailingCharacters.d.ts +1 -1
- package/utils/string/withoutTrailingCharacters.js.map +1 -1
- package/utils/string/withoutTrailingCharactersRecursive.d.ts +1 -1
- package/utils/string/withoutTrailingCharactersRecursive.js.map +1 -1
- package/utils/string/withoutTrailingSlash.d.ts +1 -1
- package/utils/string/withoutTrailingSlash.js.map +1 -1
- package/utils/throttle.d.ts +1 -1
- package/utils/throttle.js.map +1 -1
- package/utils/trapFocus.d.ts +2 -2
- package/utils/trapFocus.js.map +1 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../packages/js-toolkit/utils/css/transition.ts"],
|
|
4
|
-
"sourcesContent": ["import { nextFrame } from '../nextFrame.js';\nimport * as classes from './classes.js';\nimport * as styles from './styles.js';\nimport { isArray, isString } from '../is.js';\nimport { hasWindow } from '../has.js';\n// eslint-disable-next-line import/extensions\nimport { eachElements } from './utils.js';\n\n/** WeakMap to hold the transition instances. */\nconst cache = new WeakMap();\n\nexport type ClassesOrStyles = string | string[] | Partial<CSSStyleDeclaration>;\n\nexport type TransitionStyles = {\n from?: ClassesOrStyles;\n active?: ClassesOrStyles;\n to?: ClassesOrStyles;\n};\n\n/**\n * Transition class.\n */\nclass Transition {\n /**\n * Is a transition currently running?\n */\n isTransitioning = false;\n\n /**\n * A callback to execute when the transition ends.\n */\n transitionEndHandler: EventListenerOrEventListenerObject | null = null;\n\n /**\n * Instantiate and save the instance to the cache.\n */\n constructor(element: HTMLElement) {\n cache.set(element, this);\n }\n\n /**\n * Get the transition class attached to the given element.\n *\n * @param {HTMLElement} element The HTML element concerned by the transition.\n * @return {Transition} The transition instance tied to the given element.\n */\n static getInstance(element: HTMLElement): Transition {\n let instance = cache.get(element);\n\n if (!instance) {\n instance = new this(element);\n }\n\n return instance;\n }\n}\n\n/**\n * Update either the classes or the styles of an element with the given method.\n */\nexport function setClassesOrStyles(\n element: HTMLElement,\n classesOrStyles: ClassesOrStyles,\n method: 'add' | 'remove' = 'add',\n) {\n if (isString(classesOrStyles) || isArray(classesOrStyles)) {\n classes[method](element, classesOrStyles);\n } else {\n styles[method](element, classesOrStyles);\n }\n}\n\n/**\n * Test if the given element has a transition duration.\n */\nfunction testTransition(element: HTMLElement) {\n if (!hasWindow()) {\n return false;\n }\n\n const { transitionDuration } = window.getComputedStyle(element);\n return !!transitionDuration && transitionDuration !== '0s';\n}\n\n/**\n * Apply the from state.\n */\nasync function start(element: HTMLElement, classesOrStyles: TransitionStyles) {\n const trs = Transition.getInstance(element);\n trs.isTransitioning = true;\n setClassesOrStyles(element, classesOrStyles.from);\n await nextFrame();\n setClassesOrStyles(element, classesOrStyles.active);\n}\n\n/**\n * Apply the active state.\n */\nasync function next(element: HTMLElement, classesOrStyles: TransitionStyles): Promise<void> {\n const hasTransition = testTransition(element);\n\n /* eslint-disable-next-line */\n return new Promise(async (resolve) => {\n if (hasTransition) {\n const trs = Transition.getInstance(element);\n trs.transitionEndHandler = () => resolve();\n element.addEventListener('transitionend', trs.transitionEndHandler, false);\n }\n setClassesOrStyles(element, classesOrStyles.from, 'remove');\n setClassesOrStyles(element, classesOrStyles.to);\n await nextFrame();\n if (!hasTransition) {\n resolve();\n }\n });\n}\n\n/**\n * Apply the final state.\n */\nfunction end(\n element: HTMLElement,\n classesOrStyles: TransitionStyles,\n mode: 'keep' | 'remove' = 'remove',\n) {\n const trs = Transition.getInstance(element);\n element.removeEventListener('transitionend', trs.transitionEndHandler, false);\n if (mode === 'remove') {\n setClassesOrStyles(element, classesOrStyles.to, 'remove');\n }\n setClassesOrStyles(element, classesOrStyles.active, 'remove');\n trs.isTransitioning = false;\n trs.transitionEndHandler = null;\n}\n\n/**\n * Manage CSS transition with class.\n *\n * This is inspired by the Vue `<transition>` component\n * and the `@barba/css` package, many thanks to them!\n *\n * @param {HTMLElement} element The target element.\n * @param {string|TransitionStyles} name The name of the transition or an object with the hooks classesOrStyles.\n * @param {string} endMode Whether to remove or keep the `to` classes/styles\n * @return {Promise<void>} A promise resolving at the end of the transition.\n */\nasync function singleTransition(\n element: HTMLElement,\n name: string | TransitionStyles,\n endMode: 'keep' | 'remove' = 'remove',\n): Promise<void> {\n /** @type {TransitionStyles} */\n const classesOrStyles = isString(name)\n ? {\n from: `${name}-from`,\n active: `${name}-active`,\n to: `${name}-to`,\n }\n : {\n from: '',\n active: '',\n to: '',\n ...name,\n };\n\n const trs = Transition.getInstance(element);\n // End any previous transition running on the element.\n if (trs.isTransitioning) {\n end(element, classesOrStyles);\n }\n\n await start(element, classesOrStyles);\n await next(element, classesOrStyles);\n end(element, classesOrStyles, endMode);\n return Promise.resolve();\n}\n\n/**\n * Manage CSS transition with class.\n *\n * @param {HTMLElement|HTMLElement[]|NodeListOf<HTMLElement>} elementOrElements The target element or elements.\n * @param {string|TransitionStyles} name The name of the transition or an object with the hooks classesOrStyles.\n * @param {string} endMode Whether to remove or keep the `to` classes/styles\n * @return {Promise<void>} A promise resolving at the end of the transition.\n * @link https://js-toolkit.studiometa.dev/utils/css/transition.html\n*/\nexport async function transition(\n elementOrElements: HTMLElement | HTMLElement[] | NodeListOf<HTMLElement>,\n name: string | TransitionStyles,\n endMode: 'keep' | 'remove' = 'remove',\n) {\n await Promise.all(\n eachElements(elementOrElements, (element) => singleTransition(element, name, endMode)),\n );\n}\n"],
|
|
4
|
+
"sourcesContent": ["import { nextFrame } from '../nextFrame.js';\nimport * as classes from './classes.js';\nimport * as styles from './styles.js';\nimport { isArray, isString } from '../is.js';\nimport { hasWindow } from '../has.js';\n// eslint-disable-next-line import/extensions\nimport { eachElements } from './utils.js';\n\n/** WeakMap to hold the transition instances. */\nconst cache = new WeakMap();\n\nexport type ClassesOrStyles = string | string[] | Partial<CSSStyleDeclaration>;\n\nexport type TransitionStyles = {\n from?: ClassesOrStyles;\n active?: ClassesOrStyles;\n to?: ClassesOrStyles;\n};\n\n/**\n * Transition class.\n */\nclass Transition {\n /**\n * Is a transition currently running?\n */\n isTransitioning = false;\n\n /**\n * A callback to execute when the transition ends.\n */\n transitionEndHandler: EventListenerOrEventListenerObject | null = null;\n\n /**\n * Instantiate and save the instance to the cache.\n */\n constructor(element: HTMLElement) {\n cache.set(element, this);\n }\n\n /**\n * Get the transition class attached to the given element.\n *\n * @param {HTMLElement} element The HTML element concerned by the transition.\n * @return {Transition} The transition instance tied to the given element.\n */\n static getInstance(element: HTMLElement): Transition {\n let instance = cache.get(element);\n\n if (!instance) {\n instance = new this(element);\n }\n\n return instance;\n }\n}\n\n/**\n * Update either the classes or the styles of an element with the given method.\n */\nexport function setClassesOrStyles(\n element: HTMLElement,\n classesOrStyles: ClassesOrStyles,\n method: 'add' | 'remove' = 'add',\n) {\n if (isString(classesOrStyles) || isArray(classesOrStyles)) {\n classes[method](element, classesOrStyles);\n } else {\n styles[method](element, classesOrStyles);\n }\n}\n\n/**\n * Test if the given element has a transition duration.\n */\nfunction testTransition(element: HTMLElement) {\n if (!hasWindow()) {\n return false;\n }\n\n const { transitionDuration } = window.getComputedStyle(element);\n return !!transitionDuration && transitionDuration !== '0s';\n}\n\n/**\n * Apply the from state.\n */\nasync function start(element: HTMLElement, classesOrStyles: TransitionStyles) {\n const trs = Transition.getInstance(element);\n trs.isTransitioning = true;\n setClassesOrStyles(element, classesOrStyles.from);\n await nextFrame();\n setClassesOrStyles(element, classesOrStyles.active);\n}\n\n/**\n * Apply the active state.\n */\nasync function next(element: HTMLElement, classesOrStyles: TransitionStyles): Promise<void> {\n const hasTransition = testTransition(element);\n\n /* eslint-disable-next-line */\n return new Promise(async (resolve) => {\n if (hasTransition) {\n const trs = Transition.getInstance(element);\n trs.transitionEndHandler = () => resolve();\n element.addEventListener('transitionend', trs.transitionEndHandler, false);\n }\n setClassesOrStyles(element, classesOrStyles.from, 'remove');\n setClassesOrStyles(element, classesOrStyles.to);\n await nextFrame();\n if (!hasTransition) {\n resolve();\n }\n });\n}\n\n/**\n * Apply the final state.\n */\nfunction end(\n element: HTMLElement,\n classesOrStyles: TransitionStyles,\n mode: 'keep' | 'remove' = 'remove',\n) {\n const trs = Transition.getInstance(element);\n element.removeEventListener('transitionend', trs.transitionEndHandler, false);\n if (mode === 'remove') {\n setClassesOrStyles(element, classesOrStyles.to, 'remove');\n }\n setClassesOrStyles(element, classesOrStyles.active, 'remove');\n trs.isTransitioning = false;\n trs.transitionEndHandler = null;\n}\n\n/**\n * Manage CSS transition with class.\n *\n * This is inspired by the Vue `<transition>` component\n * and the `@barba/css` package, many thanks to them!\n *\n * @param {HTMLElement} element The target element.\n * @param {string|TransitionStyles} name The name of the transition or an object with the hooks classesOrStyles.\n * @param {string} endMode Whether to remove or keep the `to` classes/styles\n * @return {Promise<void>} A promise resolving at the end of the transition.\n */\nasync function singleTransition(\n element: HTMLElement,\n name: string | TransitionStyles,\n endMode: 'keep' | 'remove' = 'remove',\n): Promise<void> {\n /** @type {TransitionStyles} */\n const classesOrStyles = isString(name)\n ? {\n from: `${name}-from`,\n active: `${name}-active`,\n to: `${name}-to`,\n }\n : {\n from: '',\n active: '',\n to: '',\n ...name,\n };\n\n const trs = Transition.getInstance(element);\n // End any previous transition running on the element.\n if (trs.isTransitioning) {\n end(element, classesOrStyles);\n }\n\n await start(element, classesOrStyles);\n await next(element, classesOrStyles);\n end(element, classesOrStyles, endMode);\n return Promise.resolve();\n}\n\n/**\n * Manage CSS transition with class.\n *\n * @param {HTMLElement|HTMLElement[]|NodeListOf<HTMLElement>} elementOrElements The target element or elements.\n * @param {string|TransitionStyles} name The name of the transition or an object with the hooks classesOrStyles.\n * @param {string} endMode Whether to remove or keep the `to` classes/styles\n * @return {Promise<void>} A promise resolving at the end of the transition.\n * @link https://js-toolkit.studiometa.dev/utils/css/transition.html\n */\nexport async function transition(\n elementOrElements: HTMLElement | HTMLElement[] | NodeListOf<HTMLElement>,\n name: string | TransitionStyles,\n endMode: 'keep' | 'remove' = 'remove',\n) {\n await Promise.all(\n eachElements(elementOrElements, (element) => singleTransition(element, name, endMode)),\n );\n}\n"],
|
|
5
5
|
"mappings": "AAAA,SAAS,iBAAiB;AAC1B,YAAY,aAAa;AACzB,YAAY,YAAY;AACxB,SAAS,SAAS,gBAAgB;AAClC,SAAS,iBAAiB;AAE1B,SAAS,oBAAoB;AAG7B,MAAM,QAAQ,oBAAI,QAAQ;AAa1B,MAAM,WAAW;AAAA;AAAA;AAAA;AAAA,EAIf,kBAAkB;AAAA;AAAA;AAAA;AAAA,EAKlB,uBAAkE;AAAA;AAAA;AAAA;AAAA,EAKlE,YAAY,SAAsB;AAChC,UAAM,IAAI,SAAS,IAAI;AAAA,EACzB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,OAAO,YAAY,SAAkC;AACnD,QAAI,WAAW,MAAM,IAAI,OAAO;AAEhC,QAAI,CAAC,UAAU;AACb,iBAAW,IAAI,KAAK,OAAO;AAAA,IAC7B;AAEA,WAAO;AAAA,EACT;AACF;AAKO,SAAS,mBACd,SACA,iBACA,SAA2B,OAC3B;AACA,MAAI,SAAS,eAAe,KAAK,QAAQ,eAAe,GAAG;AACzD,YAAQ,MAAM,EAAE,SAAS,eAAe;AAAA,EAC1C,OAAO;AACL,WAAO,MAAM,EAAE,SAAS,eAAe;AAAA,EACzC;AACF;AAKA,SAAS,eAAe,SAAsB;AAC5C,MAAI,CAAC,UAAU,GAAG;AAChB,WAAO;AAAA,EACT;AAEA,QAAM,EAAE,mBAAmB,IAAI,OAAO,iBAAiB,OAAO;AAC9D,SAAO,CAAC,CAAC,sBAAsB,uBAAuB;AACxD;AAKA,eAAe,MAAM,SAAsB,iBAAmC;AAC5E,QAAM,MAAM,WAAW,YAAY,OAAO;AAC1C,MAAI,kBAAkB;AACtB,qBAAmB,SAAS,gBAAgB,IAAI;AAChD,QAAM,UAAU;AAChB,qBAAmB,SAAS,gBAAgB,MAAM;AACpD;AAKA,eAAe,KAAK,SAAsB,iBAAkD;AAC1F,QAAM,gBAAgB,eAAe,OAAO;AAG5C,SAAO,IAAI,QAAQ,OAAO,YAAY;AACpC,QAAI,eAAe;AACjB,YAAM,MAAM,WAAW,YAAY,OAAO;AAC1C,UAAI,uBAAuB,MAAM,QAAQ;AACzC,cAAQ,iBAAiB,iBAAiB,IAAI,sBAAsB,KAAK;AAAA,IAC3E;AACA,uBAAmB,SAAS,gBAAgB,MAAM,QAAQ;AAC1D,uBAAmB,SAAS,gBAAgB,EAAE;AAC9C,UAAM,UAAU;AAChB,QAAI,CAAC,eAAe;AAClB,cAAQ;AAAA,IACV;AAAA,EACF,CAAC;AACH;AAKA,SAAS,IACP,SACA,iBACA,OAA0B,UAC1B;AACA,QAAM,MAAM,WAAW,YAAY,OAAO;AAC1C,UAAQ,oBAAoB,iBAAiB,IAAI,sBAAsB,KAAK;AAC5E,MAAI,SAAS,UAAU;AACrB,uBAAmB,SAAS,gBAAgB,IAAI,QAAQ;AAAA,EAC1D;AACA,qBAAmB,SAAS,gBAAgB,QAAQ,QAAQ;AAC5D,MAAI,kBAAkB;AACtB,MAAI,uBAAuB;AAC7B;AAaA,eAAe,iBACb,SACA,MACA,UAA6B,UACd;AAEf,QAAM,kBAAkB,SAAS,IAAI,IACjC;AAAA,IACE,MAAM,GAAG,IAAI;AAAA,IACb,QAAQ,GAAG,IAAI;AAAA,IACf,IAAI,GAAG,IAAI;AAAA,EACb,IACA;AAAA,IACE,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,IAAI;AAAA,IACJ,GAAG;AAAA,EACL;AAEJ,QAAM,MAAM,WAAW,YAAY,OAAO;AAE1C,MAAI,IAAI,iBAAiB;AACvB,QAAI,SAAS,eAAe;AAAA,EAC9B;AAEA,QAAM,MAAM,SAAS,eAAe;AACpC,QAAM,KAAK,SAAS,eAAe;AACnC,MAAI,SAAS,iBAAiB,OAAO;AACrC,SAAO,QAAQ,QAAQ;AACzB;AAWA,eAAsB,WACpB,mBACA,MACA,UAA6B,UAC7B;AACA,QAAM,QAAQ;AAAA,IACZ,aAAa,mBAAmB,CAAC,YAAY,iBAAiB,SAAS,MAAM,OAAO,CAAC;AAAA,EACvF;AACF;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/utils/debounce.d.ts
CHANGED
|
@@ -7,5 +7,5 @@
|
|
|
7
7
|
* @param {number} [delay=300] The delay in ms to wait before calling the function.
|
|
8
8
|
* @return {(...args:unknown[]) => void} The debounced function.
|
|
9
9
|
* @link https://js-toolkit.studiometa.dev/utils/debounce.html
|
|
10
|
-
*/
|
|
10
|
+
*/
|
|
11
11
|
export declare function debounce(fn: (...args: unknown[]) => void, delay?: number): (...args: unknown[]) => void;
|
package/utils/debounce.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../packages/js-toolkit/utils/debounce.ts"],
|
|
4
|
-
"sourcesContent": ["/**\n * Returns a function, that, as long as it continues to be invoked,\n * will not be triggered. The function will be called after it stops\n * being called for N milliseconds.\n *\n * @param {(...args:unknown[]) => void} fn The function to call.\n * @param {number} [delay=300] The delay in ms to wait before calling the function.\n * @return {(...args:unknown[]) => void} The debounced function.\n * @link https://js-toolkit.studiometa.dev/utils/debounce.html\n*/\nexport function debounce(\n fn: (...args: unknown[]) => void,\n delay = 300,\n): (...args: unknown[]) => void {\n let timeout;\n return function debounced(...args) {\n clearTimeout(timeout);\n timeout = setTimeout(() => {\n fn(...args);\n }, delay);\n };\n}\n"],
|
|
4
|
+
"sourcesContent": ["/**\n * Returns a function, that, as long as it continues to be invoked,\n * will not be triggered. The function will be called after it stops\n * being called for N milliseconds.\n *\n * @param {(...args:unknown[]) => void} fn The function to call.\n * @param {number} [delay=300] The delay in ms to wait before calling the function.\n * @return {(...args:unknown[]) => void} The debounced function.\n * @link https://js-toolkit.studiometa.dev/utils/debounce.html\n */\nexport function debounce(\n fn: (...args: unknown[]) => void,\n delay = 300,\n): (...args: unknown[]) => void {\n let timeout;\n return function debounced(...args) {\n clearTimeout(timeout);\n timeout = setTimeout(() => {\n fn(...args);\n }, delay);\n };\n}\n"],
|
|
5
5
|
"mappings": "AAUO,SAAS,SACd,IACA,QAAQ,KACsB;AAC9B,MAAI;AACJ,SAAO,SAAS,aAAa,MAAM;AACjC,iBAAa,OAAO;AACpB,cAAU,WAAW,MAAM;AACzB,SAAG,GAAG,IAAI;AAAA,IACZ,GAAG,KAAK;AAAA,EACV;AACF;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/utils/history.d.ts
CHANGED
|
@@ -12,7 +12,7 @@ export interface HistoryOptions {
|
|
|
12
12
|
* @param {string} defaultSearch A string of defaults search params.
|
|
13
13
|
* @return {URLSearchParams}
|
|
14
14
|
* @link https://js-toolkit.studiometa.dev/utils/history/objectToURLSearchParams.html
|
|
15
|
-
*/
|
|
15
|
+
*/
|
|
16
16
|
export declare function objectToURLSearchParams(obj: unknown, defaultSearch?: string): URLSearchParams;
|
|
17
17
|
/**
|
|
18
18
|
* Push a new state.
|
|
@@ -22,7 +22,7 @@ export declare function objectToURLSearchParams(obj: unknown, defaultSearch?: st
|
|
|
22
22
|
* @param {string} [title] The title for the new state.
|
|
23
23
|
* @return {void}
|
|
24
24
|
* @link https://js-toolkit.studiometa.dev/utils/history/historyPush.html
|
|
25
|
-
*/
|
|
25
|
+
*/
|
|
26
26
|
export declare function push(options: HistoryOptions, data?: unknown, title?: string): void;
|
|
27
27
|
/**
|
|
28
28
|
* Replace a new state.
|
|
@@ -32,5 +32,5 @@ export declare function push(options: HistoryOptions, data?: unknown, title?: st
|
|
|
32
32
|
* @param {string} [title] The title for the new state.
|
|
33
33
|
* @return {void}
|
|
34
34
|
* @link https://js-toolkit.studiometa.dev/utils/history/historyReplace.html
|
|
35
|
-
*/
|
|
35
|
+
*/
|
|
36
36
|
export declare function replace(options: HistoryOptions, data?: unknown, title?: string): void;
|
package/utils/history.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../packages/js-toolkit/utils/history.ts"],
|
|
4
|
-
"sourcesContent": ["import { isArray, isObject } from './is.js';\nimport { hasWindow } from './has.js';\nimport { startsWith } from './string/index.js';\n\nexport interface HistoryOptions {\n path?: string;\n search?: URLSearchParams | { [key: string]: unknown };\n hash?: string;\n}\n\ntype SearchParamValue = string | number | boolean;\n\n/**\n * Set a param in a URLSearchParam instance.\n *\n * @param {URLSearchParams} params The params to update.\n * @param {string} name The name of the param to update.\n * @param {string|number|boolean|Array|Object} value The value for this param.\n * @return {URLSearchParams} The updated URLSearchParams instance.\n */\nfunction updateUrlSearchParam(\n params: URLSearchParams,\n name: string,\n value: SearchParamValue | Array<SearchParamValue> | Record<string, SearchParamValue>,\n): URLSearchParams {\n if (value === '' || value === null || value === undefined) {\n if (params.has(name)) {\n params.delete(name);\n }\n return params;\n }\n\n if (isArray(value)) {\n for (const [index, val] of value.entries()) {\n const arrayName = `${name}[${index}]`;\n updateUrlSearchParam(params, arrayName, val);\n }\n return params;\n }\n\n if (isObject(value)) {\n for (const [key, val] of Object.entries(value)) {\n const objectName = `${name}[${key}]`;\n updateUrlSearchParam(params, objectName, val);\n }\n return params;\n }\n\n params.set(name, value as string);\n return params;\n}\n\n/**\n * Transform an object to an URLSearchParams instance.\n *\n * @param {Object} obj The object to convert.\n * @param {string} defaultSearch A string of defaults search params.\n * @return {URLSearchParams}\n * @link https://js-toolkit.studiometa.dev/utils/history/objectToURLSearchParams.html\n*/\nexport function objectToURLSearchParams(\n obj: unknown,\n defaultSearch = hasWindow() ? window.location.search : '',\n): URLSearchParams {\n return Object.entries(obj).reduce(\n (urlSearchParams: URLSearchParams, [name, value]) =>\n updateUrlSearchParam(urlSearchParams, name, value),\n new URLSearchParams(defaultSearch),\n ) as URLSearchParams;\n}\n\n/**\n * Update the history with a new state.\n *\n * @param {string} mode\n * @param {HistoryOptions} options\n * @param {Object} [data]\n * @param {string} [title]\n * @return {void}\n */\nfunction updateHistory(\n mode: 'push' | 'replace',\n options: HistoryOptions,\n data: unknown = {},\n title = '',\n) {\n if (!window.history) {\n return;\n }\n\n const { path, search, hash }: HistoryOptions = {\n path: window.location.pathname,\n search: new URLSearchParams(window.location.search),\n hash: window.location.hash,\n ...options,\n };\n\n let url = path;\n\n const mergedSearch = search instanceof URLSearchParams ? search : objectToURLSearchParams(search);\n\n if (mergedSearch.toString()) {\n url += `?${mergedSearch.toString()}`;\n }\n\n if (hash) {\n if (startsWith(hash, '#')) {\n url += hash;\n } else {\n url += `#${hash}`;\n }\n }\n\n const method = `${mode}State`;\n window.history[method](data, title, url);\n}\n\n/**\n * Push a new state.\n *\n * @param {HistoryOptions} options The new state.\n * @param {Object} [data] The data for the new state.\n * @param {string} [title] The title for the new state.\n * @return {void}\n * @link https://js-toolkit.studiometa.dev/utils/history/historyPush.html\n*/\nexport function push(options: HistoryOptions, data: unknown = {}, title = '') {\n updateHistory('push', options, data, title);\n}\n\n/**\n * Replace a new state.\n *\n * @param {HistoryOptions} options The new state.\n * @param {Object} [data] The data for the new state.\n * @param {string} [title] The title for the new state.\n * @return {void}\n * @link https://js-toolkit.studiometa.dev/utils/history/historyReplace.html\n*/\nexport function replace(options: HistoryOptions, data: unknown = {}, title = '') {\n updateHistory('replace', options, data, title);\n}\n"],
|
|
4
|
+
"sourcesContent": ["import { isArray, isObject } from './is.js';\nimport { hasWindow } from './has.js';\nimport { startsWith } from './string/index.js';\n\nexport interface HistoryOptions {\n path?: string;\n search?: URLSearchParams | { [key: string]: unknown };\n hash?: string;\n}\n\ntype SearchParamValue = string | number | boolean;\n\n/**\n * Set a param in a URLSearchParam instance.\n *\n * @param {URLSearchParams} params The params to update.\n * @param {string} name The name of the param to update.\n * @param {string|number|boolean|Array|Object} value The value for this param.\n * @return {URLSearchParams} The updated URLSearchParams instance.\n */\nfunction updateUrlSearchParam(\n params: URLSearchParams,\n name: string,\n value: SearchParamValue | Array<SearchParamValue> | Record<string, SearchParamValue>,\n): URLSearchParams {\n if (value === '' || value === null || value === undefined) {\n if (params.has(name)) {\n params.delete(name);\n }\n return params;\n }\n\n if (isArray(value)) {\n for (const [index, val] of value.entries()) {\n const arrayName = `${name}[${index}]`;\n updateUrlSearchParam(params, arrayName, val);\n }\n return params;\n }\n\n if (isObject(value)) {\n for (const [key, val] of Object.entries(value)) {\n const objectName = `${name}[${key}]`;\n updateUrlSearchParam(params, objectName, val);\n }\n return params;\n }\n\n params.set(name, value as string);\n return params;\n}\n\n/**\n * Transform an object to an URLSearchParams instance.\n *\n * @param {Object} obj The object to convert.\n * @param {string} defaultSearch A string of defaults search params.\n * @return {URLSearchParams}\n * @link https://js-toolkit.studiometa.dev/utils/history/objectToURLSearchParams.html\n */\nexport function objectToURLSearchParams(\n obj: unknown,\n defaultSearch = hasWindow() ? window.location.search : '',\n): URLSearchParams {\n return Object.entries(obj).reduce(\n (urlSearchParams: URLSearchParams, [name, value]) =>\n updateUrlSearchParam(urlSearchParams, name, value),\n new URLSearchParams(defaultSearch),\n ) as URLSearchParams;\n}\n\n/**\n * Update the history with a new state.\n *\n * @param {string} mode\n * @param {HistoryOptions} options\n * @param {Object} [data]\n * @param {string} [title]\n * @return {void}\n */\nfunction updateHistory(\n mode: 'push' | 'replace',\n options: HistoryOptions,\n data: unknown = {},\n title = '',\n) {\n if (!window.history) {\n return;\n }\n\n const { path, search, hash }: HistoryOptions = {\n path: window.location.pathname,\n search: new URLSearchParams(window.location.search),\n hash: window.location.hash,\n ...options,\n };\n\n let url = path;\n\n const mergedSearch = search instanceof URLSearchParams ? search : objectToURLSearchParams(search);\n\n if (mergedSearch.toString()) {\n url += `?${mergedSearch.toString()}`;\n }\n\n if (hash) {\n if (startsWith(hash, '#')) {\n url += hash;\n } else {\n url += `#${hash}`;\n }\n }\n\n const method = `${mode}State`;\n window.history[method](data, title, url);\n}\n\n/**\n * Push a new state.\n *\n * @param {HistoryOptions} options The new state.\n * @param {Object} [data] The data for the new state.\n * @param {string} [title] The title for the new state.\n * @return {void}\n * @link https://js-toolkit.studiometa.dev/utils/history/historyPush.html\n */\nexport function push(options: HistoryOptions, data: unknown = {}, title = '') {\n updateHistory('push', options, data, title);\n}\n\n/**\n * Replace a new state.\n *\n * @param {HistoryOptions} options The new state.\n * @param {Object} [data] The data for the new state.\n * @param {string} [title] The title for the new state.\n * @return {void}\n * @link https://js-toolkit.studiometa.dev/utils/history/historyReplace.html\n */\nexport function replace(options: HistoryOptions, data: unknown = {}, title = '') {\n updateHistory('replace', options, data, title);\n}\n"],
|
|
5
5
|
"mappings": "AAAA,SAAS,SAAS,gBAAgB;AAClC,SAAS,iBAAiB;AAC1B,SAAS,kBAAkB;AAkB3B,SAAS,qBACP,QACA,MACA,OACiB;AACjB,MAAI,UAAU,MAAM,UAAU,QAAQ,UAAU,QAAW;AACzD,QAAI,OAAO,IAAI,IAAI,GAAG;AACpB,aAAO,OAAO,IAAI;AAAA,IACpB;AACA,WAAO;AAAA,EACT;AAEA,MAAI,QAAQ,KAAK,GAAG;AAClB,eAAW,CAAC,OAAO,GAAG,KAAK,MAAM,QAAQ,GAAG;AAC1C,YAAM,YAAY,GAAG,IAAI,IAAI,KAAK;AAClC,2BAAqB,QAAQ,WAAW,GAAG;AAAA,IAC7C;AACA,WAAO;AAAA,EACT;AAEA,MAAI,SAAS,KAAK,GAAG;AACnB,eAAW,CAAC,KAAK,GAAG,KAAK,OAAO,QAAQ,KAAK,GAAG;AAC9C,YAAM,aAAa,GAAG,IAAI,IAAI,GAAG;AACjC,2BAAqB,QAAQ,YAAY,GAAG;AAAA,IAC9C;AACA,WAAO;AAAA,EACT;AAEA,SAAO,IAAI,MAAM,KAAe;AAChC,SAAO;AACT;AAUO,SAAS,wBACd,KACA,gBAAgB,UAAU,IAAI,OAAO,SAAS,SAAS,IACtC;AACjB,SAAO,OAAO,QAAQ,GAAG,EAAE;AAAA,IACzB,CAAC,iBAAkC,CAAC,MAAM,KAAK,MAC7C,qBAAqB,iBAAiB,MAAM,KAAK;AAAA,IACnD,IAAI,gBAAgB,aAAa;AAAA,EACnC;AACF;AAWA,SAAS,cACP,MACA,SACA,OAAgB,CAAC,GACjB,QAAQ,IACR;AACA,MAAI,CAAC,OAAO,SAAS;AACnB;AAAA,EACF;AAEA,QAAM,EAAE,MAAM,QAAQ,KAAK,IAAoB;AAAA,IAC7C,MAAM,OAAO,SAAS;AAAA,IACtB,QAAQ,IAAI,gBAAgB,OAAO,SAAS,MAAM;AAAA,IAClD,MAAM,OAAO,SAAS;AAAA,IACtB,GAAG;AAAA,EACL;AAEA,MAAI,MAAM;AAEV,QAAM,eAAe,kBAAkB,kBAAkB,SAAS,wBAAwB,MAAM;AAEhG,MAAI,aAAa,SAAS,GAAG;AAC3B,WAAO,IAAI,aAAa,SAAS,CAAC;AAAA,EACpC;AAEA,MAAI,MAAM;AACR,QAAI,WAAW,MAAM,GAAG,GAAG;AACzB,aAAO;AAAA,IACT,OAAO;AACL,aAAO,IAAI,IAAI;AAAA,IACjB;AAAA,EACF;AAEA,QAAM,SAAS,GAAG,IAAI;AACtB,SAAO,QAAQ,MAAM,EAAE,MAAM,OAAO,GAAG;AACzC;AAWO,SAAS,KAAK,SAAyB,OAAgB,CAAC,GAAG,QAAQ,IAAI;AAC5E,gBAAc,QAAQ,SAAS,MAAM,KAAK;AAC5C;AAWO,SAAS,QAAQ,SAAyB,OAAgB,CAAC,GAAG,QAAQ,IAAI;AAC/E,gBAAc,WAAW,SAAS,MAAM,KAAK;AAC/C;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/utils/is.d.ts
CHANGED
|
@@ -5,50 +5,50 @@ export declare const isDev: boolean;
|
|
|
5
5
|
/**
|
|
6
6
|
* Test is the given value is null.
|
|
7
7
|
* @link https://js-toolkit.studiometa.dev/utils/is/isNull.html
|
|
8
|
-
*/
|
|
8
|
+
*/
|
|
9
9
|
export declare const isNull: (value: unknown) => value is null;
|
|
10
10
|
/**
|
|
11
11
|
* Test if the given value is a function.
|
|
12
12
|
* @link https://js-toolkit.studiometa.dev/utils/is/isFunction.html
|
|
13
|
-
*/
|
|
13
|
+
*/
|
|
14
14
|
export declare const isFunction: (value: unknown) => value is Function;
|
|
15
15
|
/**
|
|
16
16
|
* Test if a value is defined or not.
|
|
17
17
|
* @link https://js-toolkit.studiometa.dev/utils/is/isDefined.html
|
|
18
|
-
*/
|
|
18
|
+
*/
|
|
19
19
|
export declare const isDefined: (value: unknown) => boolean;
|
|
20
20
|
/**
|
|
21
21
|
* Test if value is a string.
|
|
22
22
|
* @link https://js-toolkit.studiometa.dev/utils/is/isString.html
|
|
23
|
-
*/
|
|
23
|
+
*/
|
|
24
24
|
export declare const isString: (value: unknown) => value is string;
|
|
25
25
|
/**
|
|
26
26
|
* Test if the given value is an object.
|
|
27
27
|
* @link https://js-toolkit.studiometa.dev/utils/is/isObject.html
|
|
28
|
-
*/
|
|
28
|
+
*/
|
|
29
29
|
export declare const isObject: (value: unknown) => boolean;
|
|
30
30
|
/**
|
|
31
31
|
* Test if a given value is a number.
|
|
32
32
|
* @link https://js-toolkit.studiometa.dev/utils/is/isNumber.html
|
|
33
|
-
*/
|
|
33
|
+
*/
|
|
34
34
|
export declare const isNumber: (value: unknown) => value is number;
|
|
35
35
|
/**
|
|
36
36
|
* Test if a given value is a boolean.
|
|
37
37
|
* @link https://js-toolkit.studiometa.dev/utils/is/isBoolean.html
|
|
38
|
-
*/
|
|
38
|
+
*/
|
|
39
39
|
export declare const isBoolean: (value: unknown) => value is boolean;
|
|
40
40
|
/**
|
|
41
41
|
* Test if a given value is an array.
|
|
42
42
|
* @link https://js-toolkit.studiometa.dev/utils/is/isArray.html
|
|
43
|
-
*/
|
|
43
|
+
*/
|
|
44
44
|
export declare const isArray: (arg: any) => arg is any[];
|
|
45
45
|
/**
|
|
46
46
|
* Test if a given value is an empty string.
|
|
47
47
|
* @link https://js-toolkit.studiometa.dev/utils/is/isEmptyString.html
|
|
48
|
-
*/
|
|
48
|
+
*/
|
|
49
49
|
export declare const isEmptyString: (value?: unknown) => boolean;
|
|
50
50
|
/**
|
|
51
51
|
* Test if the given value is empty.
|
|
52
52
|
* @link https://js-toolkit.studiometa.dev/utils/is/isEmpty.html
|
|
53
|
-
*/
|
|
53
|
+
*/
|
|
54
54
|
export declare const isEmpty: (value?: any) => boolean;
|
package/utils/is.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../packages/js-toolkit/utils/is.ts"],
|
|
4
|
-
"sourcesContent": ["// eslint-disable-next-line no-undef\n/**\n * @link https://js-toolkit.studiometa.dev/utils/is/isDev.html\n */\nexport const isDev = typeof __DEV__ !== 'undefined' && __DEV__;\n\n/**\n * Test is the given value is null.\n * @link https://js-toolkit.studiometa.dev/utils/is/isNull.html\n*/\nexport const isNull = (value: unknown): value is null => value === null;\n\n/**\n * Test if the given value is a function.\n * @link https://js-toolkit.studiometa.dev/utils/is/isFunction.html\n*/\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport const isFunction = (value: unknown): value is Function => typeof value === 'function';\n\n/**\n * Test if a value is defined or not.\n * @link https://js-toolkit.studiometa.dev/utils/is/isDefined.html\n*/\nexport const isDefined = (value: unknown): boolean => typeof value !== 'undefined';\n\n/**\n * Test if value is a string.\n * @link https://js-toolkit.studiometa.dev/utils/is/isString.html\n*/\nexport const isString = (value: unknown): value is string => typeof value === 'string';\n\n/**\n * Test if the given value is an object.\n * @link https://js-toolkit.studiometa.dev/utils/is/isObject.html\n*/\nexport const isObject = (value: unknown): boolean =>\n typeof value === 'object' && !!value && value.toString() === '[object Object]';\n\n/**\n * Test if a given value is a number.\n * @link https://js-toolkit.studiometa.dev/utils/is/isNumber.html\n*/\nexport const isNumber = (value: unknown): value is number =>\n typeof value === 'number' && !Number.isNaN(value);\n\n/**\n * Test if a given value is a boolean.\n * @link https://js-toolkit.studiometa.dev/utils/is/isBoolean.html\n*/\nexport const isBoolean = (value: unknown): value is boolean => typeof value === 'boolean';\n\n// eslint-disable-next-line prefer-destructuring\n/**\n * Test if a given value is an array.\n * @link https://js-toolkit.studiometa.dev/utils/is/isArray.html\n*/\nexport const isArray = Array.isArray;\n\n/**\n * Test if a given value is an empty string.\n * @link https://js-toolkit.studiometa.dev/utils/is/isEmptyString.html\n*/\nexport const isEmptyString = (value?: unknown): boolean => isString(value) && value.length === 0;\n\n/**\n * Test if the given value is empty.\n * @link https://js-toolkit.studiometa.dev/utils/is/isEmpty.html\n*/\nexport const isEmpty = (value?) => {\n if (isNull(value) || !isDefined(value)) {\n return true;\n }\n\n if (isString(value) || isArray(value)) {\n return value.length === 0;\n }\n\n if (isObject(value)) {\n return value.constructor === Object && Object.keys(value).length === 0;\n }\n\n return false;\n};\n"],
|
|
4
|
+
"sourcesContent": ["// eslint-disable-next-line no-undef\n/**\n * @link https://js-toolkit.studiometa.dev/utils/is/isDev.html\n */\nexport const isDev = typeof __DEV__ !== 'undefined' && __DEV__;\n\n/**\n * Test is the given value is null.\n * @link https://js-toolkit.studiometa.dev/utils/is/isNull.html\n */\nexport const isNull = (value: unknown): value is null => value === null;\n\n/**\n * Test if the given value is a function.\n * @link https://js-toolkit.studiometa.dev/utils/is/isFunction.html\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport const isFunction = (value: unknown): value is Function => typeof value === 'function';\n\n/**\n * Test if a value is defined or not.\n * @link https://js-toolkit.studiometa.dev/utils/is/isDefined.html\n */\nexport const isDefined = (value: unknown): boolean => typeof value !== 'undefined';\n\n/**\n * Test if value is a string.\n * @link https://js-toolkit.studiometa.dev/utils/is/isString.html\n */\nexport const isString = (value: unknown): value is string => typeof value === 'string';\n\n/**\n * Test if the given value is an object.\n * @link https://js-toolkit.studiometa.dev/utils/is/isObject.html\n */\nexport const isObject = (value: unknown): boolean =>\n typeof value === 'object' && !!value && value.toString() === '[object Object]';\n\n/**\n * Test if a given value is a number.\n * @link https://js-toolkit.studiometa.dev/utils/is/isNumber.html\n */\nexport const isNumber = (value: unknown): value is number =>\n typeof value === 'number' && !Number.isNaN(value);\n\n/**\n * Test if a given value is a boolean.\n * @link https://js-toolkit.studiometa.dev/utils/is/isBoolean.html\n */\nexport const isBoolean = (value: unknown): value is boolean => typeof value === 'boolean';\n\n// eslint-disable-next-line prefer-destructuring\n/**\n * Test if a given value is an array.\n * @link https://js-toolkit.studiometa.dev/utils/is/isArray.html\n */\nexport const isArray = Array.isArray;\n\n/**\n * Test if a given value is an empty string.\n * @link https://js-toolkit.studiometa.dev/utils/is/isEmptyString.html\n */\nexport const isEmptyString = (value?: unknown): boolean => isString(value) && value.length === 0;\n\n/**\n * Test if the given value is empty.\n * @link https://js-toolkit.studiometa.dev/utils/is/isEmpty.html\n */\nexport const isEmpty = (value?) => {\n if (isNull(value) || !isDefined(value)) {\n return true;\n }\n\n if (isString(value) || isArray(value)) {\n return value.length === 0;\n }\n\n if (isObject(value)) {\n return value.constructor === Object && Object.keys(value).length === 0;\n }\n\n return false;\n};\n"],
|
|
5
5
|
"mappings": "AAIO,MAAM,QAAQ,OAAO,YAAY,eAAe;AAMhD,MAAM,SAAS,CAAC,UAAkC,UAAU;AAO5D,MAAM,aAAa,CAAC,UAAsC,OAAO,UAAU;AAM3E,MAAM,YAAY,CAAC,UAA4B,OAAO,UAAU;AAMhE,MAAM,WAAW,CAAC,UAAoC,OAAO,UAAU;AAMvE,MAAM,WAAW,CAAC,UACvB,OAAO,UAAU,YAAY,CAAC,CAAC,SAAS,MAAM,SAAS,MAAM;AAMxD,MAAM,WAAW,CAAC,UACvB,OAAO,UAAU,YAAY,CAAC,OAAO,MAAM,KAAK;AAM3C,MAAM,YAAY,CAAC,UAAqC,OAAO,UAAU;AAOzE,MAAM,UAAU,MAAM;AAMtB,MAAM,gBAAgB,CAAC,UAA6B,SAAS,KAAK,KAAK,MAAM,WAAW;AAMxF,MAAM,UAAU,CAAC,UAAW;AACjC,MAAI,OAAO,KAAK,KAAK,CAAC,UAAU,KAAK,GAAG;AACtC,WAAO;AAAA,EACT;AAEA,MAAI,SAAS,KAAK,KAAK,QAAQ,KAAK,GAAG;AACrC,WAAO,MAAM,WAAW;AAAA,EAC1B;AAEA,MAAI,SAAS,KAAK,GAAG;AACnB,WAAO,MAAM,gBAAgB,UAAU,OAAO,KAAK,KAAK,EAAE,WAAW;AAAA,EACvE;AAEA,SAAO;AACT;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/utils/loadElement.d.ts
CHANGED
|
@@ -21,27 +21,27 @@ export type LoadElementsReturnType<T extends LoadableElementsNames> = Promise<{
|
|
|
21
21
|
* Load the given source for the given type of element.
|
|
22
22
|
* @todo manage memo
|
|
23
23
|
* @link https://js-toolkit.studiometa.dev/utils/loadElement.html
|
|
24
|
-
*/
|
|
24
|
+
*/
|
|
25
25
|
export declare function loadElement<T extends LoadableElementsNames>(src: string, type: T, { appendTo }?: LoadElementsOptions): LoadElementsReturnType<T>;
|
|
26
26
|
/**
|
|
27
27
|
* Load the given source as an `<img>` element.
|
|
28
28
|
* @link https://js-toolkit.studiometa.dev/utils/loadImage.html
|
|
29
|
-
*/
|
|
29
|
+
*/
|
|
30
30
|
export declare function loadImage(src: string, options?: LoadElementsOptions): LoadElementsReturnType<"img">;
|
|
31
31
|
/**
|
|
32
32
|
* Load the given source as an `<iframe>` element.
|
|
33
33
|
* @link https://js-toolkit.studiometa.dev/utils/loadIframe.html
|
|
34
|
-
*/
|
|
34
|
+
*/
|
|
35
35
|
export declare function loadIframe(src: string, options?: LoadElementsOptions): LoadElementsReturnType<"iframe">;
|
|
36
36
|
/**
|
|
37
37
|
* Load the given source as a `<link>` element.
|
|
38
38
|
* @link https://js-toolkit.studiometa.dev/utils/loadLink.html
|
|
39
|
-
*/
|
|
39
|
+
*/
|
|
40
40
|
export declare function loadLink(src: string, options?: LoadElementsOptions): LoadElementsReturnType<"link">;
|
|
41
41
|
/**
|
|
42
42
|
* Load the given source as a `<script>` element. The generated element is
|
|
43
43
|
* appended to `document.head` by default, as a script element needs
|
|
44
44
|
* to be inserted in the DOM to load.
|
|
45
45
|
* @link https://js-toolkit.studiometa.dev/utils/loadScript.html
|
|
46
|
-
*/
|
|
46
|
+
*/
|
|
47
47
|
export declare function loadScript(src: string, options?: LoadElementsOptions): LoadElementsReturnType<"script">;
|
package/utils/loadElement.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../packages/js-toolkit/utils/loadElement.ts"],
|
|
4
|
-
"sourcesContent": ["export type LoadableElements = {\n embed: HTMLEmbedElement;\n iframe: HTMLIFrameElement;\n img: HTMLImageElement;\n link: HTMLLinkElement;\n script: HTMLScriptElement;\n track: HTMLTrackElement;\n};\n\nexport type LoadableElementsNames = keyof LoadableElements;\n\nexport type LoadElementsOptions = {\n /**\n * An HTML element where the created element will be appended.\n */\n appendTo?: HTMLElement;\n};\n\nexport type LoadElementsReturnType<T extends LoadableElementsNames> = Promise<{\n event: Event;\n element: LoadableElements[T];\n}>;\n\n/**\n * Load the given source for the given type of element.\n * @todo manage memo\n * @link https://js-toolkit.studiometa.dev/utils/loadElement.html\n*/\nexport function loadElement<T extends LoadableElementsNames>(\n src: string,\n type: T,\n { appendTo = null }: LoadElementsOptions = {},\n): LoadElementsReturnType<T> {\n return new Promise((resolve, reject) => {\n const eventOptions = { once: true };\n const prop = type === 'link' ? 'href' : 'src';\n const element = document.createElement(type);\n element.addEventListener('load', (event) => resolve({ event, element }), eventOptions);\n element.addEventListener('error', (event) => reject({ event, element }), eventOptions);\n element[prop] = src;\n if (appendTo) {\n appendTo.append(element);\n }\n });\n}\n\n/**\n * Load the given source as an `<img>` element.\n * @link https://js-toolkit.studiometa.dev/utils/loadImage.html\n*/\nexport function loadImage(src: string, options?: LoadElementsOptions) {\n return loadElement(src, 'img', options);\n}\n\n/**\n * Load the given source as an `<iframe>` element.\n * @link https://js-toolkit.studiometa.dev/utils/loadIframe.html\n*/\nexport function loadIframe(src: string, options?: LoadElementsOptions) {\n return loadElement(src, 'iframe', options);\n}\n\n/**\n * Load the given source as a `<link>` element.\n * @link https://js-toolkit.studiometa.dev/utils/loadLink.html\n*/\nexport function loadLink(src: string, options?: LoadElementsOptions) {\n return loadElement(src, 'link', options);\n}\n\n/**\n * Load the given source as a `<script>` element. The generated element is\n * appended to `document.head` by default, as a script element needs\n * to be inserted in the DOM to load.\n * @link https://js-toolkit.studiometa.dev/utils/loadScript.html\n*/\nexport function loadScript(src: string, options?: LoadElementsOptions) {\n return loadElement(src, 'script', { appendTo: document.head, ...options });\n}\n"],
|
|
4
|
+
"sourcesContent": ["export type LoadableElements = {\n embed: HTMLEmbedElement;\n iframe: HTMLIFrameElement;\n img: HTMLImageElement;\n link: HTMLLinkElement;\n script: HTMLScriptElement;\n track: HTMLTrackElement;\n};\n\nexport type LoadableElementsNames = keyof LoadableElements;\n\nexport type LoadElementsOptions = {\n /**\n * An HTML element where the created element will be appended.\n */\n appendTo?: HTMLElement;\n};\n\nexport type LoadElementsReturnType<T extends LoadableElementsNames> = Promise<{\n event: Event;\n element: LoadableElements[T];\n}>;\n\n/**\n * Load the given source for the given type of element.\n * @todo manage memo\n * @link https://js-toolkit.studiometa.dev/utils/loadElement.html\n */\nexport function loadElement<T extends LoadableElementsNames>(\n src: string,\n type: T,\n { appendTo = null }: LoadElementsOptions = {},\n): LoadElementsReturnType<T> {\n return new Promise((resolve, reject) => {\n const eventOptions = { once: true };\n const prop = type === 'link' ? 'href' : 'src';\n const element = document.createElement(type);\n element.addEventListener('load', (event) => resolve({ event, element }), eventOptions);\n element.addEventListener('error', (event) => reject({ event, element }), eventOptions);\n element[prop] = src;\n if (appendTo) {\n appendTo.append(element);\n }\n });\n}\n\n/**\n * Load the given source as an `<img>` element.\n * @link https://js-toolkit.studiometa.dev/utils/loadImage.html\n */\nexport function loadImage(src: string, options?: LoadElementsOptions) {\n return loadElement(src, 'img', options);\n}\n\n/**\n * Load the given source as an `<iframe>` element.\n * @link https://js-toolkit.studiometa.dev/utils/loadIframe.html\n */\nexport function loadIframe(src: string, options?: LoadElementsOptions) {\n return loadElement(src, 'iframe', options);\n}\n\n/**\n * Load the given source as a `<link>` element.\n * @link https://js-toolkit.studiometa.dev/utils/loadLink.html\n */\nexport function loadLink(src: string, options?: LoadElementsOptions) {\n return loadElement(src, 'link', options);\n}\n\n/**\n * Load the given source as a `<script>` element. The generated element is\n * appended to `document.head` by default, as a script element needs\n * to be inserted in the DOM to load.\n * @link https://js-toolkit.studiometa.dev/utils/loadScript.html\n */\nexport function loadScript(src: string, options?: LoadElementsOptions) {\n return loadElement(src, 'script', { appendTo: document.head, ...options });\n}\n"],
|
|
5
5
|
"mappings": "AA4BO,SAAS,YACd,KACA,MACA,EAAE,WAAW,KAAK,IAAyB,CAAC,GACjB;AAC3B,SAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AACtC,UAAM,eAAe,EAAE,MAAM,KAAK;AAClC,UAAM,OAAO,SAAS,SAAS,SAAS;AACxC,UAAM,UAAU,SAAS,cAAc,IAAI;AAC3C,YAAQ,iBAAiB,QAAQ,CAAC,UAAU,QAAQ,EAAE,OAAO,QAAQ,CAAC,GAAG,YAAY;AACrF,YAAQ,iBAAiB,SAAS,CAAC,UAAU,OAAO,EAAE,OAAO,QAAQ,CAAC,GAAG,YAAY;AACrF,YAAQ,IAAI,IAAI;AAChB,QAAI,UAAU;AACZ,eAAS,OAAO,OAAO;AAAA,IACzB;AAAA,EACF,CAAC;AACH;AAMO,SAAS,UAAU,KAAa,SAA+B;AACpE,SAAO,YAAY,KAAK,OAAO,OAAO;AACxC;AAMO,SAAS,WAAW,KAAa,SAA+B;AACrE,SAAO,YAAY,KAAK,UAAU,OAAO;AAC3C;AAMO,SAAS,SAAS,KAAa,SAA+B;AACnE,SAAO,YAAY,KAAK,QAAQ,OAAO;AACzC;AAQO,SAAS,WAAW,KAAa,SAA+B;AACrE,SAAO,YAAY,KAAK,UAAU,EAAE,UAAU,SAAS,MAAM,GAAG,QAAQ,CAAC;AAC3E;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/utils/math/clamp.d.ts
CHANGED
package/utils/math/clamp.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../packages/js-toolkit/utils/math/clamp.ts"],
|
|
4
|
-
"sourcesContent": ["/**\n * Clamp a value in a given range.\n * @link https://js-toolkit.studiometa.dev/utils/math/clamp.html\n*/\nexport function clamp(value: number, min: number, max: number) {\n /* eslint-disable no-nested-ternary */\n return min < max\n ? value < min\n ? min\n : value > max\n ? max\n : value\n : value < max\n ? max\n : value > min\n ? min\n : value;\n /* eslint-enable no-nested-ternary */\n}\n"],
|
|
4
|
+
"sourcesContent": ["/**\n * Clamp a value in a given range.\n * @link https://js-toolkit.studiometa.dev/utils/math/clamp.html\n */\nexport function clamp(value: number, min: number, max: number) {\n /* eslint-disable no-nested-ternary */\n return min < max\n ? value < min\n ? min\n : value > max\n ? max\n : value\n : value < max\n ? max\n : value > min\n ? min\n : value;\n /* eslint-enable no-nested-ternary */\n}\n"],
|
|
5
5
|
"mappings": "AAIO,SAAS,MAAM,OAAe,KAAa,KAAa;AAE7D,SAAO,MAAM,MACT,QAAQ,MACN,MACA,QAAQ,MACN,MACA,QACJ,QAAQ,MACN,MACA,QAAQ,MACN,MACA;AAEV;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/utils/math/clamp01.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../packages/js-toolkit/utils/math/clamp01.ts"],
|
|
4
|
-
"sourcesContent": ["import { clamp } from './clamp.js';\n\n/**\n * Clamp a value in the 0\u20131 range.\n * @link https://js-toolkit.studiometa.dev/utils/math/clamp01.html\n*/\nexport function clamp01(value: number) {\n return clamp(value, 0, 1);\n}\n"],
|
|
4
|
+
"sourcesContent": ["import { clamp } from './clamp.js';\n\n/**\n * Clamp a value in the 0\u20131 range.\n * @link https://js-toolkit.studiometa.dev/utils/math/clamp01.html\n */\nexport function clamp01(value: number) {\n return clamp(value, 0, 1);\n}\n"],
|
|
5
5
|
"mappings": "AAAA,SAAS,aAAa;AAMf,SAAS,QAAQ,OAAe;AACrC,SAAO,MAAM,OAAO,GAAG,CAAC;AAC1B;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -11,7 +11,7 @@ export type EasingFunction = (progress: number) => number;
|
|
|
11
11
|
* @param {EasingFunction} easeIn The ease in function.
|
|
12
12
|
* @return {EasingFunction} The out function.
|
|
13
13
|
* @link https://js-toolkit.studiometa.dev/utils/math/createEaseOut.html
|
|
14
|
-
*/
|
|
14
|
+
*/
|
|
15
15
|
export declare function createEaseOut(easeIn: EasingFunction): EasingFunction;
|
|
16
16
|
/**
|
|
17
17
|
* Create an in-out easing function.
|
|
@@ -19,5 +19,5 @@ export declare function createEaseOut(easeIn: EasingFunction): EasingFunction;
|
|
|
19
19
|
* @param {EasingFunction} easeIn The ease in function.
|
|
20
20
|
* @return {EasingFunction} The in-out function.
|
|
21
21
|
* @link https://js-toolkit.studiometa.dev/utils/math/createEaseInOut.html
|
|
22
|
-
*/
|
|
22
|
+
*/
|
|
23
23
|
export declare function createEaseInOut(easeIn: EasingFunction): EasingFunction;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../packages/js-toolkit/utils/math/createEases.ts"],
|
|
4
|
-
"sourcesContent": ["/**\n * Easing function.\n *\n * @param progress Progress value betwen `0` and `1`.\n * @return Eased value between `0` and `1`.\n */\nexport type EasingFunction = (progress: number) => number;\n\n/**\n * Create an out easing function.\n *\n * @param {EasingFunction} easeIn The ease in function.\n * @return {EasingFunction} The out function.\n * @link https://js-toolkit.studiometa.dev/utils/math/createEaseOut.html\n*/\nexport function createEaseOut(easeIn: EasingFunction): EasingFunction {\n return (progress) => 1 - easeIn(1 - progress);\n}\n\n/**\n * Create an in-out easing function.\n *\n * @param {EasingFunction} easeIn The ease in function.\n * @return {EasingFunction} The in-out function.\n * @link https://js-toolkit.studiometa.dev/utils/math/createEaseInOut.html\n*/\nexport function createEaseInOut(easeIn: EasingFunction): EasingFunction {\n /* eslint-disable no-nested-ternary */\n // eslint-disable-next-line no-confusing-arrow\n return (progress) =>\n progress === 0\n ? 0\n : progress === 1\n ? 1\n : progress < 0.5\n ? easeIn(progress * 2) / 2\n : 1 - easeIn((1 - progress) * 2) / 2;\n}\n"],
|
|
4
|
+
"sourcesContent": ["/**\n * Easing function.\n *\n * @param progress Progress value betwen `0` and `1`.\n * @return Eased value between `0` and `1`.\n */\nexport type EasingFunction = (progress: number) => number;\n\n/**\n * Create an out easing function.\n *\n * @param {EasingFunction} easeIn The ease in function.\n * @return {EasingFunction} The out function.\n * @link https://js-toolkit.studiometa.dev/utils/math/createEaseOut.html\n */\nexport function createEaseOut(easeIn: EasingFunction): EasingFunction {\n return (progress) => 1 - easeIn(1 - progress);\n}\n\n/**\n * Create an in-out easing function.\n *\n * @param {EasingFunction} easeIn The ease in function.\n * @return {EasingFunction} The in-out function.\n * @link https://js-toolkit.studiometa.dev/utils/math/createEaseInOut.html\n */\nexport function createEaseInOut(easeIn: EasingFunction): EasingFunction {\n /* eslint-disable no-nested-ternary */\n // eslint-disable-next-line no-confusing-arrow\n return (progress) =>\n progress === 0\n ? 0\n : progress === 1\n ? 1\n : progress < 0.5\n ? easeIn(progress * 2) / 2\n : 1 - easeIn((1 - progress) * 2) / 2;\n}\n"],
|
|
5
5
|
"mappings": "AAeO,SAAS,cAAc,QAAwC;AACpE,SAAO,CAAC,aAAa,IAAI,OAAO,IAAI,QAAQ;AAC9C;AASO,SAAS,gBAAgB,QAAwC;AAGtE,SAAO,CAAC,aACN,aAAa,IACT,IACA,aAAa,IACX,IACA,WAAW,MACT,OAAO,WAAW,CAAC,IAAI,IACvB,IAAI,QAAQ,IAAI,YAAY,CAAC,IAAI;AAC7C;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../packages/js-toolkit/utils/math/createRange.ts"],
|
|
4
|
-
"sourcesContent": ["/**\n * Create an array from a given range and with the given incremental step.\n * @link https://js-toolkit.studiometa.dev/utils/math/createRange.html\n*/\nexport function createRange(min: number, max: number, step: number): number[] {\n const result: number[] = [];\n let value = min;\n\n while (value <= max) {\n result.push(value);\n value += step;\n }\n\n return result;\n}\n"],
|
|
4
|
+
"sourcesContent": ["/**\n * Create an array from a given range and with the given incremental step.\n * @link https://js-toolkit.studiometa.dev/utils/math/createRange.html\n */\nexport function createRange(min: number, max: number, step: number): number[] {\n const result: number[] = [];\n let value = min;\n\n while (value <= max) {\n result.push(value);\n value += step;\n }\n\n return result;\n}\n"],
|
|
5
5
|
"mappings": "AAIO,SAAS,YAAY,KAAa,KAAa,MAAwB;AAC5E,QAAM,SAAmB,CAAC;AAC1B,MAAI,QAAQ;AAEZ,SAAO,SAAS,KAAK;AACnB,WAAO,KAAK,KAAK;AACjB,aAAS;AAAA,EACX;AAEA,SAAO;AACT;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/utils/math/damp.d.ts
CHANGED
|
@@ -7,5 +7,5 @@
|
|
|
7
7
|
* @param {number} [precision=0.01] The precision used to calculate the latest value, defaults to `0.01`.
|
|
8
8
|
* @return {number} The next value.
|
|
9
9
|
* @link https://js-toolkit.studiometa.dev/utils/math/damp.html
|
|
10
|
-
*/
|
|
10
|
+
*/
|
|
11
11
|
export declare function damp(targetValue: number, currentValue: number, factor?: number, precision?: number): number;
|
package/utils/math/damp.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../packages/js-toolkit/utils/math/damp.ts"],
|
|
4
|
-
"sourcesContent": ["/**\n * Get the next damped value for a given factor.\n *\n * @param {number} targetValue The final value.\n * @param {number} currentValue The current value.\n * @param {number} [factor=0.5] The factor used to reach the target value, defaults to `0.5`.\n * @param {number} [precision=0.01] The precision used to calculate the latest value, defaults to `0.01`.\n * @return {number} The next value.\n * @link https://js-toolkit.studiometa.dev/utils/math/damp.html\n*/\nexport function damp(
|
|
5
|
-
"mappings": "AAUO,SAAS,
|
|
4
|
+
"sourcesContent": ["/**\n * Get the next damped value for a given factor.\n *\n * @param {number} targetValue The final value.\n * @param {number} currentValue The current value.\n * @param {number} [factor=0.5] The factor used to reach the target value, defaults to `0.5`.\n * @param {number} [precision=0.01] The precision used to calculate the latest value, defaults to `0.01`.\n * @return {number} The next value.\n * @link https://js-toolkit.studiometa.dev/utils/math/damp.html\n */\nexport function damp(targetValue: number, currentValue: number, factor = 0.5, precision = 0.01) {\n return Math.abs(targetValue - currentValue) < precision\n ? targetValue\n : currentValue + (targetValue - currentValue) * factor;\n}\n"],
|
|
5
|
+
"mappings": "AAUO,SAAS,KAAK,aAAqB,cAAsB,SAAS,KAAK,YAAY,MAAM;AAC9F,SAAO,KAAK,IAAI,cAAc,YAAY,IAAI,YAC1C,cACA,gBAAgB,cAAc,gBAAgB;AACpD;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -6,5 +6,5 @@
|
|
|
6
6
|
* @param [dampFactor=0.85] The speed to reach the target value, defaults to `0.85`.
|
|
7
7
|
* @returns The next value.
|
|
8
8
|
* @link https://js-toolkit.studiometa.dev/utils/math/inertiaFinalValue.html
|
|
9
|
-
*/
|
|
9
|
+
*/
|
|
10
10
|
export declare function inertiaFinalValue(initialValue: number, initialDelta: number, dampFactor?: number): number;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../packages/js-toolkit/utils/math/inertiaFinalValue.ts"],
|
|
4
|
-
"sourcesContent": ["import { clamp } from './clamp.js';\n\n/**\n * Get the final damped value for a given factor.\n *\n * @param initialValue The final value.\n * @param initialDelta The current value.\n * @param [dampFactor=0.85] The speed to reach the target value, defaults to `0.85`.\n * @returns The next value.\n * @link https://js-toolkit.studiometa.dev/utils/math/inertiaFinalValue.html\n*/\nexport function inertiaFinalValue(initialValue: number, initialDelta: number, dampFactor = 0.85) {\n // eslint-disable-next-line no-param-reassign\n dampFactor = clamp(dampFactor, 0.00001, 0.99999);\n let delta = initialDelta;\n let finalValue = initialValue;\n\n while (Math.abs(delta) > 0.1) {\n finalValue += delta;\n delta *= dampFactor;\n }\n\n return finalValue;\n}\n"],
|
|
4
|
+
"sourcesContent": ["import { clamp } from './clamp.js';\n\n/**\n * Get the final damped value for a given factor.\n *\n * @param initialValue The final value.\n * @param initialDelta The current value.\n * @param [dampFactor=0.85] The speed to reach the target value, defaults to `0.85`.\n * @returns The next value.\n * @link https://js-toolkit.studiometa.dev/utils/math/inertiaFinalValue.html\n */\nexport function inertiaFinalValue(initialValue: number, initialDelta: number, dampFactor = 0.85) {\n // eslint-disable-next-line no-param-reassign\n dampFactor = clamp(dampFactor, 0.00001, 0.99999);\n let delta = initialDelta;\n let finalValue = initialValue;\n\n while (Math.abs(delta) > 0.1) {\n finalValue += delta;\n delta *= dampFactor;\n }\n\n return finalValue;\n}\n"],
|
|
5
5
|
"mappings": "AAAA,SAAS,aAAa;AAWf,SAAS,kBAAkB,cAAsB,cAAsB,aAAa,MAAM;AAE/F,eAAa,MAAM,YAAY,MAAS,OAAO;AAC/C,MAAI,QAAQ;AACZ,MAAI,aAAa;AAEjB,SAAO,KAAK,IAAI,KAAK,IAAI,KAAK;AAC5B,kBAAc;AACd,aAAS;AAAA,EACX;AAEA,SAAO;AACT;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/utils/math/lerp.d.ts
CHANGED
package/utils/math/lerp.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../packages/js-toolkit/utils/math/lerp.ts"],
|
|
4
|
-
"sourcesContent": ["/**\n * Interpolate the ratio between a given interval.\n *\n * @param min The interval minimum value.\n * @param max The inverval maximum value.\n * @param ratio The ratio to get.\n * @return The value between min and max corresponding to ratio.\n * @link https://js-toolkit.studiometa.dev/utils/math/lerp.html\n*/\nexport function lerp(min: number, max: number, ratio: number) {\n return (1 - ratio) * min + ratio * max;\n}\n"],
|
|
4
|
+
"sourcesContent": ["/**\n * Interpolate the ratio between a given interval.\n *\n * @param min The interval minimum value.\n * @param max The inverval maximum value.\n * @param ratio The ratio to get.\n * @return The value between min and max corresponding to ratio.\n * @link https://js-toolkit.studiometa.dev/utils/math/lerp.html\n */\nexport function lerp(min: number, max: number, ratio: number) {\n return (1 - ratio) * min + ratio * max;\n}\n"],
|
|
5
5
|
"mappings": "AASO,SAAS,KAAK,KAAa,KAAa,OAAe;AAC5D,UAAQ,IAAI,SAAS,MAAM,QAAQ;AACrC;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/utils/math/map.d.ts
CHANGED
|
@@ -8,5 +8,5 @@
|
|
|
8
8
|
* @param {number} outputMax The output's maximum value.
|
|
9
9
|
* @return {number} The input value mapped to the output range.
|
|
10
10
|
* @link https://js-toolkit.studiometa.dev/utils/math/map.html
|
|
11
|
-
*/
|
|
11
|
+
*/
|
|
12
12
|
export declare function map(value: number, inputMin: number, inputMax: number, outputMin: number, outputMax: number): number;
|
package/utils/math/map.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../packages/js-toolkit/utils/math/map.ts"],
|
|
4
|
-
"sourcesContent": ["/**\n * Maps the value from one range of [inputMin..inputMax] to another range of [outputMin..outputMax].\n *\n * @param {number} value The value to map.\n * @param {number} inputMin The input's minimum value.\n * @param {number} inputMax The input's maximum value.\n * @param {number} outputMin The output's minimum value.\n * @param {number} outputMax The output's maximum value.\n * @return {number} The input value mapped to the output range.\n * @link https://js-toolkit.studiometa.dev/utils/math/map.html\n*/\nexport function map(\n value: number,\n inputMin: number,\n inputMax: number,\n outputMin: number,\n outputMax: number,\n) {\n return ((value - inputMin) * (outputMax - outputMin)) / (inputMax - inputMin) + outputMin;\n}\n"],
|
|
4
|
+
"sourcesContent": ["/**\n * Maps the value from one range of [inputMin..inputMax] to another range of [outputMin..outputMax].\n *\n * @param {number} value The value to map.\n * @param {number} inputMin The input's minimum value.\n * @param {number} inputMax The input's maximum value.\n * @param {number} outputMin The output's minimum value.\n * @param {number} outputMax The output's maximum value.\n * @return {number} The input value mapped to the output range.\n * @link https://js-toolkit.studiometa.dev/utils/math/map.html\n */\nexport function map(\n value: number,\n inputMin: number,\n inputMax: number,\n outputMin: number,\n outputMax: number,\n) {\n return ((value - inputMin) * (outputMax - outputMin)) / (inputMax - inputMin) + outputMin;\n}\n"],
|
|
5
5
|
"mappings": "AAWO,SAAS,IACd,OACA,UACA,UACA,WACA,WACA;AACA,UAAS,QAAQ,aAAa,YAAY,cAAe,WAAW,YAAY;AAClF;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/utils/math/round.d.ts
CHANGED
|
@@ -5,5 +5,5 @@
|
|
|
5
5
|
* @param {number} [decimals=0] The number of decimals to keep.
|
|
6
6
|
* @return {number} A rounded number to the given decimals length.
|
|
7
7
|
* @link https://js-toolkit.studiometa.dev/utils/math/round.html
|
|
8
|
-
*/
|
|
8
|
+
*/
|
|
9
9
|
export declare function round(value: number, decimals?: number): number;
|
package/utils/math/round.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../packages/js-toolkit/utils/math/round.ts"],
|
|
4
|
-
"sourcesContent": ["/**\n * Round a value with a given number of decimals.\n *\n * @param {number} value The number to round.\n * @param {number} [decimals=0] The number of decimals to keep.\n * @return {number} A rounded number to the given decimals length.\n * @link https://js-toolkit.studiometa.dev/utils/math/round.html\n*/\nexport function round(value: number, decimals = 0) {\n return Number(value.toFixed(decimals));\n}\n"],
|
|
4
|
+
"sourcesContent": ["/**\n * Round a value with a given number of decimals.\n *\n * @param {number} value The number to round.\n * @param {number} [decimals=0] The number of decimals to keep.\n * @return {number} A rounded number to the given decimals length.\n * @link https://js-toolkit.studiometa.dev/utils/math/round.html\n */\nexport function round(value: number, decimals = 0) {\n return Number(value.toFixed(decimals));\n}\n"],
|
|
5
5
|
"mappings": "AAQO,SAAS,MAAM,OAAe,WAAW,GAAG;AACjD,SAAO,OAAO,MAAM,QAAQ,QAAQ,CAAC;AACvC;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/utils/math/wrap.d.ts
CHANGED
package/utils/math/wrap.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../packages/js-toolkit/utils/math/wrap.ts"],
|
|
4
|
-
"sourcesContent": ["/**\n * Wrap a value in the min and max range.\n * @link https://js-toolkit.studiometa.dev/utils/math/wrap.html\n*/\nexport function wrap(value: number, min: number, max: number): number {\n const range = max - min;\n return min === max ? min : ((range + ((value - min) % range)) % range) + min;\n}\n"],
|
|
4
|
+
"sourcesContent": ["/**\n * Wrap a value in the min and max range.\n * @link https://js-toolkit.studiometa.dev/utils/math/wrap.html\n */\nexport function wrap(value: number, min: number, max: number): number {\n const range = max - min;\n return min === max ? min : ((range + ((value - min) % range)) % range) + min;\n}\n"],
|
|
5
5
|
"mappings": "AAIO,SAAS,KAAK,OAAe,KAAa,KAAqB;AACpE,QAAM,QAAQ,MAAM;AACpB,SAAO,QAAQ,MAAM,OAAQ,SAAU,QAAQ,OAAO,SAAU,QAAS;AAC3E;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/utils/memo.d.ts
CHANGED
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
* Memoize the result of a function with a single argument indefinitely.
|
|
3
3
|
* This is a simpler implementation of the `memoize` function.
|
|
4
4
|
* @link https://js-toolkit.studiometa.dev/utils/memo.html
|
|
5
|
-
*/
|
|
5
|
+
*/
|
|
6
6
|
export declare function memo<T extends (...args: unknown[]) => unknown>(fn: T): T;
|
package/utils/memo.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../packages/js-toolkit/utils/memo.ts"],
|
|
4
|
-
"sourcesContent": ["/**\n * Memoize the result of a function with a single argument indefinitely.\n * This is a simpler implementation of the `memoize` function.\n * @link https://js-toolkit.studiometa.dev/utils/memo.html\n*/\nexport function memo<T extends (...args: unknown[]) => unknown>(fn: T): T {\n const cache = new Map<string, ReturnType<T>>();\n\n // @ts-ignore\n return function cached(...args) {\n const key = args.join('');\n if (!cache.has(key)) {\n cache.set(key, fn(...args) as ReturnType<T>);\n }\n return cache.get(key);\n };\n}\n"],
|
|
4
|
+
"sourcesContent": ["/**\n * Memoize the result of a function with a single argument indefinitely.\n * This is a simpler implementation of the `memoize` function.\n * @link https://js-toolkit.studiometa.dev/utils/memo.html\n */\nexport function memo<T extends (...args: unknown[]) => unknown>(fn: T): T {\n const cache = new Map<string, ReturnType<T>>();\n\n // @ts-ignore\n return function cached(...args) {\n const key = args.join('');\n if (!cache.has(key)) {\n cache.set(key, fn(...args) as ReturnType<T>);\n }\n return cache.get(key);\n };\n}\n"],
|
|
5
5
|
"mappings": "AAKO,SAAS,KAAgD,IAAU;AACxE,QAAM,QAAQ,oBAAI,IAA2B;AAG7C,SAAO,SAAS,UAAU,MAAM;AAC9B,UAAM,MAAM,KAAK,KAAK,EAAE;AACxB,QAAI,CAAC,MAAM,IAAI,GAAG,GAAG;AACnB,YAAM,IAAI,KAAK,GAAG,GAAG,IAAI,CAAkB;AAAA,IAC7C;AACA,WAAO,MAAM,IAAI,GAAG;AAAA,EACtB;AACF;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/utils/memoize.d.ts
CHANGED
|
@@ -17,5 +17,5 @@ export interface MemoizeOptions<T> {
|
|
|
17
17
|
/**
|
|
18
18
|
* Memoize the output of a function.
|
|
19
19
|
* @link https://js-toolkit.studiometa.dev/utils/memoize.html
|
|
20
|
-
*/
|
|
20
|
+
*/
|
|
21
21
|
export declare function memoize<T extends (...args: unknown[]) => unknown>(fn: T, { maxAge, cacheKey, cache }?: MemoizeOptions<ReturnType<T>>): (...args: Parameters<T>) => ReturnType<T>;
|
package/utils/memoize.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../packages/js-toolkit/utils/memoize.ts"],
|
|
4
|
-
"sourcesContent": ["export interface MemoizeCache<T> {\n has: (key: unknown) => boolean;\n set: (key: unknown, value: { data: T; date: number }) => this;\n get: (key: unknown) => { data: T; date: number };\n}\n\nexport interface MemoizeOptions<T> {\n maxAge?: number;\n cacheKey?: (args: unknown[]) => string;\n cache?: MemoizeCache<T>;\n}\n\n/**\n * Memoize the output of a function.\n * @link https://js-toolkit.studiometa.dev/utils/memoize.html\n*/\nexport function memoize<T extends (...args: unknown[]) => unknown>(\n fn: T,\n {\n maxAge = Number.POSITIVE_INFINITY,\n cacheKey = JSON.stringify,\n cache = new Map(),\n }: MemoizeOptions<ReturnType<T>> = {},\n): (...args: Parameters<T>) => ReturnType<T> {\n return function memoized(...args): ReturnType<T> {\n const key = cacheKey(args);\n const date = Date.now();\n\n if (cache.has(key)) {\n const cached = cache.get(key);\n\n if (date - cached.date < maxAge) {\n return cached.data;\n }\n }\n\n // @ts-ignore\n const data: ReturnType<T> = fn(...args);\n\n cache.set(key, {\n data,\n date: Date.now(),\n });\n\n return data;\n };\n}\n"],
|
|
4
|
+
"sourcesContent": ["export interface MemoizeCache<T> {\n has: (key: unknown) => boolean;\n set: (key: unknown, value: { data: T; date: number }) => this;\n get: (key: unknown) => { data: T; date: number };\n}\n\nexport interface MemoizeOptions<T> {\n maxAge?: number;\n cacheKey?: (args: unknown[]) => string;\n cache?: MemoizeCache<T>;\n}\n\n/**\n * Memoize the output of a function.\n * @link https://js-toolkit.studiometa.dev/utils/memoize.html\n */\nexport function memoize<T extends (...args: unknown[]) => unknown>(\n fn: T,\n {\n maxAge = Number.POSITIVE_INFINITY,\n cacheKey = JSON.stringify,\n cache = new Map(),\n }: MemoizeOptions<ReturnType<T>> = {},\n): (...args: Parameters<T>) => ReturnType<T> {\n return function memoized(...args): ReturnType<T> {\n const key = cacheKey(args);\n const date = Date.now();\n\n if (cache.has(key)) {\n const cached = cache.get(key);\n\n if (date - cached.date < maxAge) {\n return cached.data;\n }\n }\n\n // @ts-ignore\n const data: ReturnType<T> = fn(...args);\n\n cache.set(key, {\n data,\n date: Date.now(),\n });\n\n return data;\n };\n}\n"],
|
|
5
5
|
"mappings": "AAgBO,SAAS,QACd,IACA;AAAA,EACE,SAAS,OAAO;AAAA,EAChB,WAAW,KAAK;AAAA,EAChB,QAAQ,oBAAI,IAAI;AAClB,IAAmC,CAAC,GACO;AAC3C,SAAO,SAAS,YAAY,MAAqB;AAC/C,UAAM,MAAM,SAAS,IAAI;AACzB,UAAM,OAAO,KAAK,IAAI;AAEtB,QAAI,MAAM,IAAI,GAAG,GAAG;AAClB,YAAM,SAAS,MAAM,IAAI,GAAG;AAE5B,UAAI,OAAO,OAAO,OAAO,QAAQ;AAC/B,eAAO,OAAO;AAAA,MAChB;AAAA,IACF;AAGA,UAAM,OAAsB,GAAG,GAAG,IAAI;AAEtC,UAAM,IAAI,KAAK;AAAA,MACb;AAAA,MACA,MAAM,KAAK,IAAI;AAAA,IACjB,CAAC;AAED,WAAO;AAAA,EACT;AACF;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/utils/nextFrame.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ type Callback = (time?: DOMHighResTimeStamp) => any;
|
|
|
2
2
|
/**
|
|
3
3
|
* Wait for the next frame to execute a function.
|
|
4
4
|
* @link https://js-toolkit.studiometa.dev/utils/nextFrame.html
|
|
5
|
-
*/
|
|
5
|
+
*/
|
|
6
6
|
export declare function nextFrame(): Promise<DOMHighResTimeStamp>;
|
|
7
7
|
export declare function nextFrame<T extends Callback>(callback?: T): Promise<ReturnType<T>>;
|
|
8
8
|
export {};
|
package/utils/nextFrame.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../packages/js-toolkit/utils/nextFrame.ts"],
|
|
4
|
-
"sourcesContent": ["import { isFunction } from './is.js';\nimport { hasWindow } from './has.js';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype Callback = (time?: DOMHighResTimeStamp) => any;\n\n/**\n * Wait for the next frame to execute a function.\n * @link https://js-toolkit.studiometa.dev/utils/nextFrame.html\n*/\nexport function nextFrame(): Promise<DOMHighResTimeStamp>;\nexport function nextFrame<T extends Callback>(callback?: T): Promise<ReturnType<T>>;\nexport function nextFrame<T extends Callback>(callback?: T): Promise<ReturnType<T>> {\n const fn = hasWindow() ? (window?.requestAnimationFrame ?? setTimeout) : setTimeout;\n return new Promise((resolve) => {\n fn((time) => resolve(isFunction(callback) ? callback(time) : time));\n });\n}\n"],
|
|
4
|
+
"sourcesContent": ["import { isFunction } from './is.js';\nimport { hasWindow } from './has.js';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype Callback = (time?: DOMHighResTimeStamp) => any;\n\n/**\n * Wait for the next frame to execute a function.\n * @link https://js-toolkit.studiometa.dev/utils/nextFrame.html\n */\nexport function nextFrame(): Promise<DOMHighResTimeStamp>;\nexport function nextFrame<T extends Callback>(callback?: T): Promise<ReturnType<T>>;\nexport function nextFrame<T extends Callback>(callback?: T): Promise<ReturnType<T>> {\n const fn = hasWindow() ? (window?.requestAnimationFrame ?? setTimeout) : setTimeout;\n return new Promise((resolve) => {\n fn((time) => resolve(isFunction(callback) ? callback(time) : time));\n });\n}\n"],
|
|
5
5
|
"mappings": "AAAA,SAAS,kBAAkB;AAC3B,SAAS,iBAAiB;AAWnB,SAAS,UAA8B,UAAsC;AAClF,QAAM,KAAK,UAAU,IAAK,QAAQ,yBAAyB,aAAc;AACzE,SAAO,IAAI,QAAQ,CAAC,YAAY;AAC9B,OAAG,CAAC,SAAS,QAAQ,WAAW,QAAQ,IAAI,SAAS,IAAI,IAAI,IAAI,CAAC;AAAA,EACpE,CAAC;AACH;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/utils/nextMicrotask.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ type Callback = (...args: any[]) => any;
|
|
|
2
2
|
/**
|
|
3
3
|
* Wait for the next microtask.
|
|
4
4
|
* @link https://js-toolkit.studiometa.dev/utils/nextMicrotask.html
|
|
5
|
-
*/
|
|
5
|
+
*/
|
|
6
6
|
export declare function nextMicrotask(): Promise<void>;
|
|
7
7
|
export declare function nextMicrotask<T extends Callback>(callback?: T): Promise<ReturnType<T>>;
|
|
8
8
|
export {};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../packages/js-toolkit/utils/nextMicrotask.ts"],
|
|
4
|
-
"sourcesContent": ["import { isFunction } from './is.js';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype Callback = (...args: any[]) => any;\n\n/**\n * Wait for the next microtask.\n * @link https://js-toolkit.studiometa.dev/utils/nextMicrotask.html\n*/\nexport async function nextMicrotask(): Promise<void>;\nexport async function nextMicrotask<T extends Callback>(callback?: T): Promise<ReturnType<T>>;\nexport async function nextMicrotask<T extends Callback>(callback?: T): Promise<ReturnType<T>> {\n return Promise.resolve().then(() => isFunction(callback) && callback());\n}\n"],
|
|
4
|
+
"sourcesContent": ["import { isFunction } from './is.js';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype Callback = (...args: any[]) => any;\n\n/**\n * Wait for the next microtask.\n * @link https://js-toolkit.studiometa.dev/utils/nextMicrotask.html\n */\nexport async function nextMicrotask(): Promise<void>;\nexport async function nextMicrotask<T extends Callback>(callback?: T): Promise<ReturnType<T>>;\nexport async function nextMicrotask<T extends Callback>(callback?: T): Promise<ReturnType<T>> {\n return Promise.resolve().then(() => isFunction(callback) && callback());\n}\n"],
|
|
5
5
|
"mappings": "AAAA,SAAS,kBAAkB;AAW3B,eAAsB,cAAkC,UAAsC;AAC5F,SAAO,QAAQ,QAAQ,EAAE,KAAK,MAAM,WAAW,QAAQ,KAAK,SAAS,CAAC;AACxE;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/utils/nextTick.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ type Callback = (...args: any[]) => any;
|
|
|
2
2
|
/**
|
|
3
3
|
* Wait for the next tick.
|
|
4
4
|
* @link https://js-toolkit.studiometa.dev/utils/nextTick.html
|
|
5
|
-
*/
|
|
5
|
+
*/
|
|
6
6
|
export declare function nextTick(): Promise<void>;
|
|
7
7
|
export declare function nextTick<T extends Callback>(callback?: T): Promise<ReturnType<T>>;
|
|
8
8
|
export {};
|
package/utils/nextTick.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../packages/js-toolkit/utils/nextTick.ts"],
|
|
4
|
-
"sourcesContent": ["import { isFunction } from './is.js';\nimport { wait } from './wait.js';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype Callback = (...args: any[]) => any;\n\n/**\n * Wait for the next tick.\n * @link https://js-toolkit.studiometa.dev/utils/nextTick.html\n*/\nexport async function nextTick(): Promise<void>;\nexport async function nextTick<T extends Callback>(callback?: T): Promise<ReturnType<T>>;\nexport async function nextTick<T extends Callback>(callback?: T): Promise<ReturnType<T>> {\n return wait().then(isFunction(callback) && (callback as ReturnType<T>));\n}\n"],
|
|
4
|
+
"sourcesContent": ["import { isFunction } from './is.js';\nimport { wait } from './wait.js';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype Callback = (...args: any[]) => any;\n\n/**\n * Wait for the next tick.\n * @link https://js-toolkit.studiometa.dev/utils/nextTick.html\n */\nexport async function nextTick(): Promise<void>;\nexport async function nextTick<T extends Callback>(callback?: T): Promise<ReturnType<T>>;\nexport async function nextTick<T extends Callback>(callback?: T): Promise<ReturnType<T>> {\n return wait().then(isFunction(callback) && (callback as ReturnType<T>));\n}\n"],
|
|
5
5
|
"mappings": "AAAA,SAAS,kBAAkB;AAC3B,SAAS,YAAY;AAWrB,eAAsB,SAA6B,UAAsC;AACvF,SAAO,KAAK,EAAE,KAAK,WAAW,QAAQ,KAAM,QAA0B;AACxE;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|