@studiometa/js-toolkit 2.6.0 → 2.6.3
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/index.cjs +41 -41
- package/Base/index.cjs.map +7 -0
- package/Base/index.js +58 -64
- package/Base/index.js.map +7 -0
- package/Base/managers/AbstractManager.cjs +6 -10
- package/Base/managers/AbstractManager.cjs.map +7 -0
- package/Base/managers/AbstractManager.js +6 -11
- package/Base/managers/AbstractManager.js.map +7 -0
- package/Base/managers/ChildrenManager.cjs +3 -11
- package/Base/managers/ChildrenManager.cjs.map +7 -0
- package/Base/managers/ChildrenManager.js +3 -12
- package/Base/managers/ChildrenManager.js.map +7 -0
- package/Base/managers/EventsManager.cjs +57 -61
- package/Base/managers/EventsManager.cjs.map +7 -0
- package/Base/managers/EventsManager.js +57 -62
- package/Base/managers/EventsManager.js.map +7 -0
- package/Base/managers/OptionsManager.cjs +8 -14
- package/Base/managers/OptionsManager.cjs.map +7 -0
- package/Base/managers/OptionsManager.js +8 -15
- package/Base/managers/OptionsManager.js.map +7 -0
- package/Base/managers/RefsManager.cjs +2 -2
- package/Base/managers/RefsManager.cjs.map +7 -0
- package/Base/managers/RefsManager.js +2 -2
- package/Base/managers/RefsManager.js.map +7 -0
- package/Base/managers/ResponsiveOptionsManager.cjs +1 -0
- package/Base/managers/ResponsiveOptionsManager.cjs.map +7 -0
- package/Base/managers/ResponsiveOptionsManager.js +1 -0
- package/Base/managers/ResponsiveOptionsManager.js.map +7 -0
- package/Base/managers/ServicesManager.cjs +3 -12
- package/Base/managers/ServicesManager.cjs.map +7 -0
- package/Base/managers/ServicesManager.js +3 -13
- package/Base/managers/ServicesManager.js.map +7 -0
- package/Base/types.cjs +1 -0
- package/Base/types.cjs.map +7 -0
- package/Base/types.js +1 -0
- package/Base/types.js.map +7 -0
- package/Base/utils.cjs +1 -0
- package/Base/utils.cjs.map +7 -0
- package/Base/utils.js +1 -0
- package/Base/utils.js.map +7 -0
- package/decorators/index.cjs +1 -0
- package/decorators/index.cjs.map +7 -0
- package/decorators/index.js +1 -0
- package/decorators/index.js.map +7 -0
- package/decorators/withBreakpointManager.cjs +1 -0
- package/decorators/withBreakpointManager.cjs.map +7 -0
- package/decorators/withBreakpointManager.js +1 -0
- package/decorators/withBreakpointManager.js.map +7 -0
- package/decorators/withBreakpointObserver.cjs +10 -15
- package/decorators/withBreakpointObserver.cjs.map +7 -0
- package/decorators/withBreakpointObserver.js +10 -16
- package/decorators/withBreakpointObserver.js.map +7 -0
- package/decorators/withDrag.cjs +5 -9
- package/decorators/withDrag.cjs.map +7 -0
- package/decorators/withDrag.js +5 -10
- package/decorators/withDrag.js.map +7 -0
- package/decorators/withExtraConfig.cjs +2 -6
- package/decorators/withExtraConfig.cjs.map +7 -0
- package/decorators/withExtraConfig.js +2 -7
- package/decorators/withExtraConfig.js.map +7 -0
- package/decorators/withFreezedOptions.cjs +2 -9
- package/decorators/withFreezedOptions.cjs.map +7 -0
- package/decorators/withFreezedOptions.js +2 -10
- package/decorators/withFreezedOptions.js.map +7 -0
- package/decorators/withIntersectionObserver.cjs +11 -16
- package/decorators/withIntersectionObserver.cjs.map +7 -0
- package/decorators/withIntersectionObserver.js +11 -17
- package/decorators/withIntersectionObserver.js.map +7 -0
- package/decorators/withMountWhenInView.cjs +11 -16
- package/decorators/withMountWhenInView.cjs.map +7 -0
- package/decorators/withMountWhenInView.js +11 -17
- package/decorators/withMountWhenInView.js.map +7 -0
- package/decorators/withResponsiveOptions.cjs +1 -0
- package/decorators/withResponsiveOptions.cjs.map +7 -0
- package/decorators/withResponsiveOptions.js +1 -0
- package/decorators/withResponsiveOptions.js.map +7 -0
- package/decorators/withScrolledInView.cjs +45 -50
- package/decorators/withScrolledInView.cjs.map +7 -0
- package/decorators/withScrolledInView.js +45 -51
- package/decorators/withScrolledInView.js.map +7 -0
- package/decorators/withVue2.cjs +9 -15
- package/decorators/withVue2.cjs.map +7 -0
- package/decorators/withVue2.js +9 -16
- package/decorators/withVue2.js.map +7 -0
- package/helpers/createApp.cjs +1 -0
- package/helpers/createApp.cjs.map +7 -0
- package/helpers/createApp.js +1 -0
- package/helpers/createApp.js.map +7 -0
- package/helpers/getClosestParent.cjs +1 -0
- package/helpers/getClosestParent.cjs.map +7 -0
- package/helpers/getClosestParent.js +1 -0
- package/helpers/getClosestParent.js.map +7 -0
- package/helpers/getDirectChildren.cjs +1 -0
- package/helpers/getDirectChildren.cjs.map +7 -0
- package/helpers/getDirectChildren.js +1 -0
- package/helpers/getDirectChildren.js.map +7 -0
- package/helpers/getInstanceFromElement.cjs +1 -0
- package/helpers/getInstanceFromElement.cjs.map +7 -0
- package/helpers/getInstanceFromElement.js +1 -0
- package/helpers/getInstanceFromElement.js.map +7 -0
- package/helpers/importOnInteraction.cjs +2 -1
- package/helpers/importOnInteraction.cjs.map +7 -0
- package/helpers/importOnInteraction.js +2 -1
- package/helpers/importOnInteraction.js.map +7 -0
- package/helpers/importWhenIdle.cjs +1 -0
- package/helpers/importWhenIdle.cjs.map +7 -0
- package/helpers/importWhenIdle.js +1 -0
- package/helpers/importWhenIdle.js.map +7 -0
- package/helpers/importWhenVisible.cjs +2 -1
- package/helpers/importWhenVisible.cjs.map +7 -0
- package/helpers/importWhenVisible.js +2 -1
- package/helpers/importWhenVisible.js.map +7 -0
- package/helpers/index.cjs +1 -0
- package/helpers/index.cjs.map +7 -0
- package/helpers/index.js +1 -0
- package/helpers/index.js.map +7 -0
- package/helpers/utils.cjs +1 -0
- package/helpers/utils.cjs.map +7 -0
- package/helpers/utils.js +1 -0
- package/helpers/utils.js.map +7 -0
- package/index.cjs +1 -0
- package/index.cjs.map +7 -0
- package/index.js +1 -0
- package/index.js.map +7 -0
- package/package.json +1 -1
- package/services/drag.cjs +1 -0
- package/services/drag.cjs.map +7 -0
- package/services/drag.js +1 -0
- package/services/drag.js.map +7 -0
- package/services/index.cjs +1 -0
- package/services/index.cjs.map +7 -0
- package/services/index.js +1 -0
- package/services/index.js.map +7 -0
- package/services/key.cjs +2 -1
- package/services/key.cjs.map +7 -0
- package/services/key.js +2 -1
- package/services/key.js.map +7 -0
- package/services/load.cjs +1 -0
- package/services/load.cjs.map +7 -0
- package/services/load.js +1 -0
- package/services/load.js.map +7 -0
- package/services/pointer.cjs +3 -3
- package/services/pointer.cjs.map +7 -0
- package/services/pointer.js +3 -3
- package/services/pointer.js.map +7 -0
- package/services/raf.cjs +1 -0
- package/services/raf.cjs.map +7 -0
- package/services/raf.js +1 -0
- package/services/raf.js.map +7 -0
- package/services/resize.cjs +1 -0
- package/services/resize.cjs.map +7 -0
- package/services/resize.js +1 -0
- package/services/resize.js.map +7 -0
- package/services/scroll.cjs +1 -0
- package/services/scroll.cjs.map +7 -0
- package/services/scroll.js +1 -0
- package/services/scroll.js.map +7 -0
- package/services/service.cjs +1 -0
- package/services/service.cjs.map +7 -0
- package/services/service.js +1 -0
- package/services/service.js.map +7 -0
- package/utils/collide/boundingRectToCircle.cjs +1 -0
- package/utils/collide/boundingRectToCircle.cjs.map +7 -0
- package/utils/collide/boundingRectToCircle.js +1 -0
- package/utils/collide/boundingRectToCircle.js.map +7 -0
- package/utils/collide/collideCircleCircle.cjs +1 -0
- package/utils/collide/collideCircleCircle.cjs.map +7 -0
- package/utils/collide/collideCircleCircle.js +1 -0
- package/utils/collide/collideCircleCircle.js.map +7 -0
- package/utils/collide/collideCircleRect.cjs +1 -0
- package/utils/collide/collideCircleRect.cjs.map +7 -0
- package/utils/collide/collideCircleRect.js +1 -0
- package/utils/collide/collideCircleRect.js.map +7 -0
- package/utils/collide/collidePointCircle.cjs +1 -0
- package/utils/collide/collidePointCircle.cjs.map +7 -0
- package/utils/collide/collidePointCircle.js +1 -0
- package/utils/collide/collidePointCircle.js.map +7 -0
- package/utils/collide/collidePointRect.cjs +1 -0
- package/utils/collide/collidePointRect.cjs.map +7 -0
- package/utils/collide/collidePointRect.js +1 -0
- package/utils/collide/collidePointRect.js.map +7 -0
- package/utils/collide/collideRectRect.cjs +1 -0
- package/utils/collide/collideRectRect.cjs.map +7 -0
- package/utils/collide/collideRectRect.js +1 -0
- package/utils/collide/collideRectRect.js.map +7 -0
- package/utils/collide/index.cjs +1 -0
- package/utils/collide/index.cjs.map +7 -0
- package/utils/collide/index.js +1 -0
- package/utils/collide/index.js.map +7 -0
- package/utils/css/animate.cjs +10 -13
- package/utils/css/animate.cjs.map +7 -0
- package/utils/css/animate.js +10 -13
- package/utils/css/animate.js.map +7 -0
- package/utils/css/classes.cjs +2 -1
- package/utils/css/classes.cjs.map +7 -0
- package/utils/css/classes.js +2 -1
- package/utils/css/classes.js.map +7 -0
- package/utils/css/getOffsetSizes.cjs +1 -0
- package/utils/css/getOffsetSizes.cjs.map +7 -0
- package/utils/css/getOffsetSizes.js +1 -0
- package/utils/css/getOffsetSizes.js.map +7 -0
- package/utils/css/index.cjs +1 -0
- package/utils/css/index.cjs.map +7 -0
- package/utils/css/index.js +1 -0
- package/utils/css/index.js.map +7 -0
- package/utils/css/matrix.cjs +2 -2
- package/utils/css/matrix.cjs.map +7 -0
- package/utils/css/matrix.js +2 -2
- package/utils/css/matrix.js.map +7 -0
- package/utils/css/styles.cjs +1 -0
- package/utils/css/styles.cjs.map +7 -0
- package/utils/css/styles.js +1 -0
- package/utils/css/styles.js.map +7 -0
- package/utils/css/transform.cjs +2 -2
- package/utils/css/transform.cjs.map +7 -0
- package/utils/css/transform.js +2 -2
- package/utils/css/transform.js.map +7 -0
- package/utils/css/transition.cjs +3 -7
- package/utils/css/transition.cjs.map +7 -0
- package/utils/css/transition.js +3 -8
- package/utils/css/transition.js.map +7 -0
- package/utils/css/utils.cjs +1 -0
- package/utils/css/utils.cjs.map +7 -0
- package/utils/css/utils.js +1 -0
- package/utils/css/utils.js.map +7 -0
- package/utils/debounce.cjs +1 -0
- package/utils/debounce.cjs.map +7 -0
- package/utils/debounce.js +1 -0
- package/utils/debounce.js.map +7 -0
- package/utils/focusTrap.cjs +1 -0
- package/utils/focusTrap.cjs.map +7 -0
- package/utils/focusTrap.js +1 -0
- package/utils/focusTrap.js.map +7 -0
- package/utils/has.cjs +1 -0
- package/utils/has.cjs.map +7 -0
- package/utils/has.js +1 -0
- package/utils/has.js.map +7 -0
- package/utils/history.cjs +1 -0
- package/utils/history.cjs.map +7 -0
- package/utils/history.js +1 -0
- package/utils/history.js.map +7 -0
- package/utils/index.cjs +1 -0
- package/utils/index.cjs.map +7 -0
- package/utils/index.js +1 -0
- package/utils/index.js.map +7 -0
- package/utils/is.cjs +1 -0
- package/utils/is.cjs.map +7 -0
- package/utils/is.js +1 -0
- package/utils/is.js.map +7 -0
- package/utils/keyCodes.cjs +1 -0
- package/utils/keyCodes.cjs.map +7 -0
- package/utils/keyCodes.js +1 -0
- package/utils/keyCodes.js.map +7 -0
- package/utils/math/clamp.cjs +1 -0
- package/utils/math/clamp.cjs.map +7 -0
- package/utils/math/clamp.js +1 -0
- package/utils/math/clamp.js.map +7 -0
- package/utils/math/clamp01.cjs +1 -0
- package/utils/math/clamp01.cjs.map +7 -0
- package/utils/math/clamp01.js +1 -0
- package/utils/math/clamp01.js.map +7 -0
- package/utils/math/createEases.cjs +1 -0
- package/utils/math/createEases.cjs.map +7 -0
- package/utils/math/createEases.js +1 -0
- package/utils/math/createEases.js.map +7 -0
- package/utils/math/damp.cjs +1 -0
- package/utils/math/damp.cjs.map +7 -0
- package/utils/math/damp.js +1 -0
- package/utils/math/damp.js.map +7 -0
- package/utils/math/ease.cjs +1 -0
- package/utils/math/ease.cjs.map +7 -0
- package/utils/math/ease.js +1 -0
- package/utils/math/ease.js.map +7 -0
- package/utils/math/index.cjs +1 -0
- package/utils/math/index.cjs.map +7 -0
- package/utils/math/index.js +1 -0
- package/utils/math/index.js.map +7 -0
- package/utils/math/inertiaFinalValue.cjs +1 -0
- package/utils/math/inertiaFinalValue.cjs.map +7 -0
- package/utils/math/inertiaFinalValue.js +1 -0
- package/utils/math/inertiaFinalValue.js.map +7 -0
- package/utils/math/lerp.cjs +1 -0
- package/utils/math/lerp.cjs.map +7 -0
- package/utils/math/lerp.js +1 -0
- package/utils/math/lerp.js.map +7 -0
- package/utils/math/map.cjs +1 -0
- package/utils/math/map.cjs.map +7 -0
- package/utils/math/map.js +1 -0
- package/utils/math/map.js.map +7 -0
- package/utils/math/round.cjs +1 -0
- package/utils/math/round.cjs.map +7 -0
- package/utils/math/round.js +1 -0
- package/utils/math/round.js.map +7 -0
- package/utils/memoize.cjs +1 -0
- package/utils/memoize.cjs.map +7 -0
- package/utils/memoize.js +1 -0
- package/utils/memoize.js.map +7 -0
- package/utils/nextFrame.cjs +1 -0
- package/utils/nextFrame.cjs.map +7 -0
- package/utils/nextFrame.js +1 -0
- package/utils/nextFrame.js.map +7 -0
- package/utils/nextMicrotask.cjs +1 -0
- package/utils/nextMicrotask.cjs.map +7 -0
- package/utils/nextMicrotask.js +1 -0
- package/utils/nextMicrotask.js.map +7 -0
- package/utils/nextTick.cjs +1 -0
- package/utils/nextTick.cjs.map +7 -0
- package/utils/nextTick.js +1 -0
- package/utils/nextTick.js.map +7 -0
- package/utils/noop.cjs +1 -0
- package/utils/noop.cjs.map +7 -0
- package/utils/noop.js +1 -0
- package/utils/noop.js.map +7 -0
- package/utils/object/autoBind.cjs +1 -0
- package/utils/object/autoBind.cjs.map +7 -0
- package/utils/object/autoBind.js +1 -0
- package/utils/object/autoBind.js.map +7 -0
- package/utils/object/getAllProperties.cjs +1 -0
- package/utils/object/getAllProperties.cjs.map +7 -0
- package/utils/object/getAllProperties.js +1 -0
- package/utils/object/getAllProperties.js.map +7 -0
- package/utils/object/index.cjs +1 -0
- package/utils/object/index.cjs.map +7 -0
- package/utils/object/index.js +1 -0
- package/utils/object/index.js.map +7 -0
- package/utils/scheduler.cjs +1 -0
- package/utils/scheduler.cjs.map +7 -0
- package/utils/scheduler.js +1 -0
- package/utils/scheduler.js.map +7 -0
- package/utils/scrollTo.cjs +1 -0
- package/utils/scrollTo.cjs.map +7 -0
- package/utils/scrollTo.d.ts +1 -1
- package/utils/scrollTo.js +1 -0
- package/utils/scrollTo.js.map +7 -0
- package/utils/string/index.cjs +1 -0
- package/utils/string/index.cjs.map +7 -0
- package/utils/string/index.js +1 -0
- package/utils/string/index.js.map +7 -0
- package/utils/string/withLeadingCharacters.cjs +1 -0
- package/utils/string/withLeadingCharacters.cjs.map +7 -0
- package/utils/string/withLeadingCharacters.js +1 -0
- package/utils/string/withLeadingCharacters.js.map +7 -0
- package/utils/string/withLeadingSlash.cjs +1 -0
- package/utils/string/withLeadingSlash.cjs.map +7 -0
- package/utils/string/withLeadingSlash.js +1 -0
- package/utils/string/withLeadingSlash.js.map +7 -0
- package/utils/string/withTrailingCharacters.cjs +1 -0
- package/utils/string/withTrailingCharacters.cjs.map +7 -0
- package/utils/string/withTrailingCharacters.js +1 -0
- package/utils/string/withTrailingCharacters.js.map +7 -0
- package/utils/string/withTrailingSlash.cjs +1 -0
- package/utils/string/withTrailingSlash.cjs.map +7 -0
- package/utils/string/withTrailingSlash.js +1 -0
- package/utils/string/withTrailingSlash.js.map +7 -0
- package/utils/string/withoutLeadingCharacters.cjs +1 -0
- package/utils/string/withoutLeadingCharacters.cjs.map +7 -0
- package/utils/string/withoutLeadingCharacters.js +1 -0
- package/utils/string/withoutLeadingCharacters.js.map +7 -0
- package/utils/string/withoutLeadingCharactersRecursive.cjs +1 -0
- package/utils/string/withoutLeadingCharactersRecursive.cjs.map +7 -0
- package/utils/string/withoutLeadingCharactersRecursive.js +1 -0
- package/utils/string/withoutLeadingCharactersRecursive.js.map +7 -0
- package/utils/string/withoutLeadingSlash.cjs +1 -0
- package/utils/string/withoutLeadingSlash.cjs.map +7 -0
- package/utils/string/withoutLeadingSlash.js +1 -0
- package/utils/string/withoutLeadingSlash.js.map +7 -0
- package/utils/string/withoutTrailingCharacters.cjs +1 -0
- package/utils/string/withoutTrailingCharacters.cjs.map +7 -0
- package/utils/string/withoutTrailingCharacters.js +1 -0
- package/utils/string/withoutTrailingCharacters.js.map +7 -0
- package/utils/string/withoutTrailingCharactersRecursive.cjs +1 -0
- package/utils/string/withoutTrailingCharactersRecursive.cjs.map +7 -0
- package/utils/string/withoutTrailingCharactersRecursive.js +1 -0
- package/utils/string/withoutTrailingCharactersRecursive.js.map +7 -0
- package/utils/string/withoutTrailingSlash.cjs +1 -0
- package/utils/string/withoutTrailingSlash.cjs.map +7 -0
- package/utils/string/withoutTrailingSlash.js +1 -0
- package/utils/string/withoutTrailingSlash.js.map +7 -0
- package/utils/throttle.cjs +1 -0
- package/utils/throttle.cjs.map +7 -0
- package/utils/throttle.js +1 -0
- package/utils/throttle.js.map +7 -0
- package/utils/tween.cjs +2 -2
- package/utils/tween.cjs.map +7 -0
- package/utils/tween.d.ts +7 -1
- package/utils/tween.js +2 -2
- package/utils/tween.js.map +7 -0
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../packages/js-toolkit/utils/css/styles.js"],
|
|
4
|
+
"sourcesContent": ["import { isObject } from '../is.js';\n// eslint-disable-next-line import/extensions\nimport { eachElements } from './utils.js';\n\n/**\n * Manage a list of style properties on an element.\n *\n * @param {HTMLElement|HTMLElement[]|NodeListOf<HTMLElement>} elementOrElements The element to update.\n * @param {Partial<CSSStyleDeclaration>} styles An object of styles properties and values.\n * @param {string} method The method to use: add or remove.\n */\nfunction setStyles(elementOrElements, styles, method = 'add') {\n if (!elementOrElements || !styles || !isObject(styles)) {\n return;\n }\n\n eachElements(elementOrElements, (el) => {\n Object.entries(styles).forEach(([prop, value]) => {\n el.style[prop] = method === 'add' ? value : '';\n });\n });\n}\n\n/**\n * Add styles to an element.\n *\n * @param {HTMLElement|HTMLElement[]|NodeListOf<HTMLElement>} elementOrElements The element to update.\n * @param {Partial<CSSStyleDeclaration>} styles A string of class names.\n * @returns {void}\n */\nexport function add(elementOrElements, styles) {\n setStyles(elementOrElements, styles);\n}\n\n/**\n * Remove class names from an element.\n *\n * @param {HTMLElement|HTMLElement[]|NodeListOf<HTMLElement>} elementOrElements The element to update.\n * @param {Partial<CSSStyleDeclaration>} styles A string of class names.\n * @returns {void}\n */\nexport function remove(elementOrElements, styles) {\n setStyles(elementOrElements, styles, 'remove');\n}\n"],
|
|
5
|
+
"mappings": "AAAA,SAAS,gBAAgB;AAEzB,SAAS,oBAAoB;AAS7B,SAAS,UAAU,mBAAmB,QAAQ,SAAS,OAAO;AAC5D,MAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,SAAS,MAAM,GAAG;AACtD;AAAA,EACF;AAEA,eAAa,mBAAmB,CAAC,OAAO;AACtC,WAAO,QAAQ,MAAM,EAAE,QAAQ,CAAC,CAAC,MAAM,KAAK,MAAM;AAChD,SAAG,MAAM,QAAQ,WAAW,QAAQ,QAAQ;AAAA,IAC9C,CAAC;AAAA,EACH,CAAC;AACH;AASO,SAAS,IAAI,mBAAmB,QAAQ;AAC7C,YAAU,mBAAmB,MAAM;AACrC;AASO,SAAS,OAAO,mBAAmB,QAAQ;AAChD,YAAU,mBAAmB,QAAQ,QAAQ;AAC/C;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
package/utils/css/transform.cjs
CHANGED
|
@@ -42,10 +42,9 @@ var TRANSFORM_PROPS = [
|
|
|
42
42
|
"skewY"
|
|
43
43
|
];
|
|
44
44
|
function transform(elementOrElements, props) {
|
|
45
|
-
var _a, _b, _c;
|
|
46
45
|
let value = "";
|
|
47
46
|
if ((0, import_is.isDefined)(props.x) || (0, import_is.isDefined)(props.y) || (0, import_is.isDefined)(props.z)) {
|
|
48
|
-
value += `translate3d(${
|
|
47
|
+
value += `translate3d(${props.x ?? 0}px, ${props.y ?? 0}px, ${props.z ?? 0}px) `;
|
|
49
48
|
}
|
|
50
49
|
if ((0, import_is.isDefined)(props.rotate)) {
|
|
51
50
|
value += `rotate(${props.rotate}deg) `;
|
|
@@ -89,3 +88,4 @@ function transform(elementOrElements, props) {
|
|
|
89
88
|
return value;
|
|
90
89
|
}
|
|
91
90
|
if (module.exports.default) module.exports = module.exports.default;
|
|
91
|
+
//# sourceMappingURL=transform.cjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../packages/js-toolkit/utils/css/transform.js"],
|
|
4
|
+
"sourcesContent": ["import { isDefined } from '../is.js';\n// eslint-disable-next-line import/extensions\nimport { eachElements } from './utils.js';\n\n/**\n * @typedef {Partial<{\n * x: number;\n * y: number;\n * z: number;\n * rotate: number;\n * rotateX: number;\n * rotateY: number;\n * rotateZ: number;\n * scale: number;\n * scaleX: number;\n * scaleY: number;\n * scaleZ: number;\n * skew: number;\n * skewX: number;\n * skewY: number;\n * }>} TransformProps\n */\n\nexport const TRANSFORM_PROPS = [\n 'x',\n 'y',\n 'z',\n 'rotate',\n 'rotateX',\n 'rotateY',\n 'rotateZ',\n 'scale',\n 'scaleX',\n 'scaleY',\n 'scaleZ',\n 'skew',\n 'skewX',\n 'skewY',\n];\n\n/**\n * Generate a CSS transform.\n *\n * @param {HTMLElement|HTMLElement[]|NodeListOf<HTMLElement>} elementOrElements\n * @param {TransformProps} props\n * @returns {string}\n */\nexport default function transform(elementOrElements, props) {\n let value = '';\n\n if (isDefined(props.x) || isDefined(props.y) || isDefined(props.z)) {\n value += `translate3d(${props.x ?? 0}px, ${props.y ?? 0}px, ${props.z ?? 0}px) `;\n }\n\n if (isDefined(props.rotate)) {\n value += `rotate(${props.rotate}deg) `;\n } else {\n if (isDefined(props.rotateX)) {\n value += `rotateX(${props.rotateX}deg) `;\n }\n\n if (isDefined(props.rotateY)) {\n value += `rotateY(${props.rotateY}deg) `;\n }\n\n if (isDefined(props.rotateZ)) {\n value += `rotateZ(${props.rotateZ}deg) `;\n }\n }\n\n if (isDefined(props.scale)) {\n value += `scale(${props.scale}) `;\n } else {\n if (isDefined(props.scaleX)) {\n value += `scaleX(${props.scaleX}) `;\n }\n\n if (isDefined(props.scaleY)) {\n value += `scaleY(${props.scaleY}) `;\n }\n\n if (isDefined(props.scaleZ)) {\n value += `scaleZ(${props.scaleZ}) `;\n }\n }\n\n if (isDefined(props.skew)) {\n value += `skew(${props.skew}deg) `;\n } else {\n if (isDefined(props.skewX)) {\n value += `skewX(${props.skewX}deg) `;\n }\n\n if (isDefined(props.skewY)) {\n value += `skewY(${props.skewY}deg) `;\n }\n }\n\n eachElements(elementOrElements, (element) => {\n element.style.transform = value;\n });\n return value;\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAA0B;AAE1B,mBAA6B;AAqBtB,IAAM,kBAAkB;AAAA,EAC7B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AASe,SAAR,UAA2B,mBAAmB,OAAO;AAC1D,MAAI,QAAQ;AAEZ,UAAI,qBAAU,MAAM,CAAC,SAAK,qBAAU,MAAM,CAAC,SAAK,qBAAU,MAAM,CAAC,GAAG;AAClE,aAAS,eAAe,MAAM,KAAK,QAAQ,MAAM,KAAK,QAAQ,MAAM,KAAK;AAAA,EAC3E;AAEA,UAAI,qBAAU,MAAM,MAAM,GAAG;AAC3B,aAAS,UAAU,MAAM;AAAA,EAC3B,OAAO;AACL,YAAI,qBAAU,MAAM,OAAO,GAAG;AAC5B,eAAS,WAAW,MAAM;AAAA,IAC5B;AAEA,YAAI,qBAAU,MAAM,OAAO,GAAG;AAC5B,eAAS,WAAW,MAAM;AAAA,IAC5B;AAEA,YAAI,qBAAU,MAAM,OAAO,GAAG;AAC5B,eAAS,WAAW,MAAM;AAAA,IAC5B;AAAA,EACF;AAEA,UAAI,qBAAU,MAAM,KAAK,GAAG;AAC1B,aAAS,SAAS,MAAM;AAAA,EAC1B,OAAO;AACL,YAAI,qBAAU,MAAM,MAAM,GAAG;AAC3B,eAAS,UAAU,MAAM;AAAA,IAC3B;AAEA,YAAI,qBAAU,MAAM,MAAM,GAAG;AAC3B,eAAS,UAAU,MAAM;AAAA,IAC3B;AAEA,YAAI,qBAAU,MAAM,MAAM,GAAG;AAC3B,eAAS,UAAU,MAAM;AAAA,IAC3B;AAAA,EACF;AAEA,UAAI,qBAAU,MAAM,IAAI,GAAG;AACzB,aAAS,QAAQ,MAAM;AAAA,EACzB,OAAO;AACL,YAAI,qBAAU,MAAM,KAAK,GAAG;AAC1B,eAAS,SAAS,MAAM;AAAA,IAC1B;AAEA,YAAI,qBAAU,MAAM,KAAK,GAAG;AAC1B,eAAS,SAAS,MAAM;AAAA,IAC1B;AAAA,EACF;AAEA,iCAAa,mBAAmB,CAAC,YAAY;AAC3C,YAAQ,MAAM,YAAY;AAAA,EAC5B,CAAC;AACD,SAAO;AACT;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
package/utils/css/transform.js
CHANGED
|
@@ -17,10 +17,9 @@ const TRANSFORM_PROPS = [
|
|
|
17
17
|
"skewY"
|
|
18
18
|
];
|
|
19
19
|
function transform(elementOrElements, props) {
|
|
20
|
-
var _a, _b, _c;
|
|
21
20
|
let value = "";
|
|
22
21
|
if (isDefined(props.x) || isDefined(props.y) || isDefined(props.z)) {
|
|
23
|
-
value += `translate3d(${
|
|
22
|
+
value += `translate3d(${props.x ?? 0}px, ${props.y ?? 0}px, ${props.z ?? 0}px) `;
|
|
24
23
|
}
|
|
25
24
|
if (isDefined(props.rotate)) {
|
|
26
25
|
value += `rotate(${props.rotate}deg) `;
|
|
@@ -67,3 +66,4 @@ export {
|
|
|
67
66
|
TRANSFORM_PROPS,
|
|
68
67
|
transform as default
|
|
69
68
|
};
|
|
69
|
+
//# sourceMappingURL=transform.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../packages/js-toolkit/utils/css/transform.js"],
|
|
4
|
+
"sourcesContent": ["import { isDefined } from '../is.js';\n// eslint-disable-next-line import/extensions\nimport { eachElements } from './utils.js';\n\n/**\n * @typedef {Partial<{\n * x: number;\n * y: number;\n * z: number;\n * rotate: number;\n * rotateX: number;\n * rotateY: number;\n * rotateZ: number;\n * scale: number;\n * scaleX: number;\n * scaleY: number;\n * scaleZ: number;\n * skew: number;\n * skewX: number;\n * skewY: number;\n * }>} TransformProps\n */\n\nexport const TRANSFORM_PROPS = [\n 'x',\n 'y',\n 'z',\n 'rotate',\n 'rotateX',\n 'rotateY',\n 'rotateZ',\n 'scale',\n 'scaleX',\n 'scaleY',\n 'scaleZ',\n 'skew',\n 'skewX',\n 'skewY',\n];\n\n/**\n * Generate a CSS transform.\n *\n * @param {HTMLElement|HTMLElement[]|NodeListOf<HTMLElement>} elementOrElements\n * @param {TransformProps} props\n * @returns {string}\n */\nexport default function transform(elementOrElements, props) {\n let value = '';\n\n if (isDefined(props.x) || isDefined(props.y) || isDefined(props.z)) {\n value += `translate3d(${props.x ?? 0}px, ${props.y ?? 0}px, ${props.z ?? 0}px) `;\n }\n\n if (isDefined(props.rotate)) {\n value += `rotate(${props.rotate}deg) `;\n } else {\n if (isDefined(props.rotateX)) {\n value += `rotateX(${props.rotateX}deg) `;\n }\n\n if (isDefined(props.rotateY)) {\n value += `rotateY(${props.rotateY}deg) `;\n }\n\n if (isDefined(props.rotateZ)) {\n value += `rotateZ(${props.rotateZ}deg) `;\n }\n }\n\n if (isDefined(props.scale)) {\n value += `scale(${props.scale}) `;\n } else {\n if (isDefined(props.scaleX)) {\n value += `scaleX(${props.scaleX}) `;\n }\n\n if (isDefined(props.scaleY)) {\n value += `scaleY(${props.scaleY}) `;\n }\n\n if (isDefined(props.scaleZ)) {\n value += `scaleZ(${props.scaleZ}) `;\n }\n }\n\n if (isDefined(props.skew)) {\n value += `skew(${props.skew}deg) `;\n } else {\n if (isDefined(props.skewX)) {\n value += `skewX(${props.skewX}deg) `;\n }\n\n if (isDefined(props.skewY)) {\n value += `skewY(${props.skewY}deg) `;\n }\n }\n\n eachElements(elementOrElements, (element) => {\n element.style.transform = value;\n });\n return value;\n}\n"],
|
|
5
|
+
"mappings": "AAAA,SAAS,iBAAiB;AAE1B,SAAS,oBAAoB;AAqBtB,MAAM,kBAAkB;AAAA,EAC7B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AASe,SAAR,UAA2B,mBAAmB,OAAO;AAC1D,MAAI,QAAQ;AAEZ,MAAI,UAAU,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,GAAG;AAClE,aAAS,eAAe,MAAM,KAAK,QAAQ,MAAM,KAAK,QAAQ,MAAM,KAAK;AAAA,EAC3E;AAEA,MAAI,UAAU,MAAM,MAAM,GAAG;AAC3B,aAAS,UAAU,MAAM;AAAA,EAC3B,OAAO;AACL,QAAI,UAAU,MAAM,OAAO,GAAG;AAC5B,eAAS,WAAW,MAAM;AAAA,IAC5B;AAEA,QAAI,UAAU,MAAM,OAAO,GAAG;AAC5B,eAAS,WAAW,MAAM;AAAA,IAC5B;AAEA,QAAI,UAAU,MAAM,OAAO,GAAG;AAC5B,eAAS,WAAW,MAAM;AAAA,IAC5B;AAAA,EACF;AAEA,MAAI,UAAU,MAAM,KAAK,GAAG;AAC1B,aAAS,SAAS,MAAM;AAAA,EAC1B,OAAO;AACL,QAAI,UAAU,MAAM,MAAM,GAAG;AAC3B,eAAS,UAAU,MAAM;AAAA,IAC3B;AAEA,QAAI,UAAU,MAAM,MAAM,GAAG;AAC3B,eAAS,UAAU,MAAM;AAAA,IAC3B;AAEA,QAAI,UAAU,MAAM,MAAM,GAAG;AAC3B,eAAS,UAAU,MAAM;AAAA,IAC3B;AAAA,EACF;AAEA,MAAI,UAAU,MAAM,IAAI,GAAG;AACzB,aAAS,QAAQ,MAAM;AAAA,EACzB,OAAO;AACL,QAAI,UAAU,MAAM,KAAK,GAAG;AAC1B,eAAS,SAAS,MAAM;AAAA,IAC1B;AAEA,QAAI,UAAU,MAAM,KAAK,GAAG;AAC1B,eAAS,SAAS,MAAM;AAAA,IAC1B;AAAA,EACF;AAEA,eAAa,mBAAmB,CAAC,YAAY;AAC3C,YAAQ,MAAM,YAAY;AAAA,EAC5B,CAAC;AACD,SAAO;AACT;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
package/utils/css/transition.cjs
CHANGED
|
@@ -4,7 +4,6 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
|
4
4
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
5
|
var __getProtoOf = Object.getPrototypeOf;
|
|
6
6
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
-
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
8
7
|
var __export = (target, all) => {
|
|
9
8
|
for (var name in all)
|
|
10
9
|
__defProp(target, name, { get: all[name], enumerable: true });
|
|
@@ -22,10 +21,6 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
22
21
|
mod
|
|
23
22
|
));
|
|
24
23
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
25
|
-
var __publicField = (obj, key, value) => {
|
|
26
|
-
__defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
27
|
-
return value;
|
|
28
|
-
};
|
|
29
24
|
|
|
30
25
|
// packages/js-toolkit/utils/css/transition.js
|
|
31
26
|
var transition_exports = {};
|
|
@@ -42,9 +37,9 @@ var import_has = require("../has.cjs");
|
|
|
42
37
|
var import_utils = require("./utils.cjs");
|
|
43
38
|
var cache = /* @__PURE__ */ new WeakMap();
|
|
44
39
|
var Transition = class {
|
|
40
|
+
isTransitioning = false;
|
|
41
|
+
transitionEndHandler = null;
|
|
45
42
|
constructor(element) {
|
|
46
|
-
__publicField(this, "isTransitioning", false);
|
|
47
|
-
__publicField(this, "transitionEndHandler", null);
|
|
48
43
|
cache.set(element, this);
|
|
49
44
|
}
|
|
50
45
|
static getInstance(element) {
|
|
@@ -128,3 +123,4 @@ async function transition(elementOrElements, name, endMode = "remove") {
|
|
|
128
123
|
);
|
|
129
124
|
}
|
|
130
125
|
if (module.exports.default) module.exports = module.exports.default;
|
|
126
|
+
//# sourceMappingURL=transition.cjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../packages/js-toolkit/utils/css/transition.js"],
|
|
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\n/**\n * @typedef {string|string[]|Partial<CSSStyleDeclaration>} ClassesOrStyles\n * @typedef {{ from?: ClassesOrStyles, active?: ClassesOrStyles, to?: ClassesOrStyles }} TransitionStyles\n */\n\n/**\n * Transition class.\n */\nclass Transition {\n /**\n * Is a transition currently running?\n * @type {boolean}\n */\n isTransitioning = false;\n\n /**\n * A callback to execute when the transition ends.\n * @type {EventListenerOrEventListenerObject|null}\n */\n transitionEndHandler = null;\n\n /**\n * Instantiate and save the instance to the cache.\n * @param {HTMLElement} element The HTML element.\n */\n constructor(element) {\n cache.set(element, this);\n }\n\n /**\n * Get the transition class attached to the given element.\n * @param {HTMLElement} element The HTML element concerned by the transition.\n * @returns {Transition} The transition instance tied to the given element.\n */\n static getInstance(element) {\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 *\n * @param {HTMLElement} element The element to update.\n * @param {ClassesOrStyles} classesOrStyles The classes or styles to apply.\n * @param {'add'|'remove'} method The method to use, one of `add` or `remove`.\n */\nexport function setClassesOrStyles(element, classesOrStyles, method = 'add') {\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 *\n * @param {HTMLElement} element The element to test.\n * @returns {boolean} The result of the test.\n */\nfunction testTransition(element) {\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 *\n * @param {HTMLElement} element The target element.\n * @param {TransitionStyles} classesOrStyles The classes or styles definition.\n * @returns {Promise<void>}\n */\nasync function start(element, classesOrStyles) {\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 *\n * @param {HTMLElement} element The target element.\n * @param {TransitionStyles} classesOrStyles The classes or styles definition.\n * @returns {Promise}\n */\nasync function next(element, classesOrStyles) {\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 *\n * @param {HTMLElement} element The target element.\n * @param {string | Object} classesOrStyles The classes or styles definition.\n * @param {string} mode Whether to remove or keep the `to` classes/styles.\n * @returns {void}\n */\nfunction end(element, classesOrStyles, mode = 'remove') {\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 heavily 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 * @returns {Promise<void>} A promise resolving at the end of the transition.\n */\nasync function singleTransition(element, name, endMode = 'remove') {\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 * @returns {Promise<void>} A promise resolving at the end of the transition.\n */\nexport default async function transition(elementOrElements, name, endMode = 'remove') {\n await Promise.all(\n eachElements(elementOrElements, (element) => singleTransition(element, name, endMode)),\n );\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAA0B;AAC1B,cAAyB;AACzB,aAAwB;AACxB,gBAAkC;AAClC,iBAA0B;AAE1B,mBAA6B;AAG7B,IAAM,QAAQ,oBAAI,QAAQ;AAU1B,IAAM,aAAN,MAAiB;AAAA,EAKf,kBAAkB;AAAA,EAMlB,uBAAuB;AAAA,EAMvB,YAAY,SAAS;AACnB,UAAM,IAAI,SAAS,IAAI;AAAA,EACzB;AAAA,EAOA,OAAO,YAAY,SAAS;AAC1B,QAAI,WAAW,MAAM,IAAI,OAAO;AAEhC,QAAI,CAAC,UAAU;AACb,iBAAW,IAAI,KAAK,OAAO;AAAA,IAC7B;AAEA,WAAO;AAAA,EACT;AACF;AASO,SAAS,mBAAmB,SAAS,iBAAiB,SAAS,OAAO;AAC3E,UAAI,oBAAS,eAAe,SAAK,mBAAQ,eAAe,GAAG;AACzD,YAAQ,QAAQ,SAAS,eAAe;AAAA,EAC1C,OAAO;AACL,WAAO,QAAQ,SAAS,eAAe;AAAA,EACzC;AACF;AAQA,SAAS,eAAe,SAAS;AAC/B,MAAI,KAAC,sBAAU,GAAG;AAChB,WAAO;AAAA,EACT;AAEA,QAAM,EAAE,mBAAmB,IAAI,OAAO,iBAAiB,OAAO;AAC9D,SAAO,CAAC,CAAC,sBAAsB,uBAAuB;AACxD;AASA,eAAe,MAAM,SAAS,iBAAiB;AAC7C,QAAM,MAAM,WAAW,YAAY,OAAO;AAC1C,MAAI,kBAAkB;AACtB,qBAAmB,SAAS,gBAAgB,IAAI;AAChD,YAAM,4BAAU;AAChB,qBAAmB,SAAS,gBAAgB,MAAM;AACpD;AASA,eAAe,KAAK,SAAS,iBAAiB;AAC5C,QAAM,gBAAgB,eAAe,OAAO;AAG5C,SAAO,IAAI,QAAQ,OAAO,YAAY;AACpC,QAAI,eAAe;AACjB,YAAM,MAAM,WAAW,YAAY,OAAO;AAC1C,UAAI,uBAAuB;AAC3B,cAAQ,iBAAiB,iBAAiB,IAAI,sBAAsB,KAAK;AAAA,IAC3E;AACA,uBAAmB,SAAS,gBAAgB,MAAM,QAAQ;AAC1D,uBAAmB,SAAS,gBAAgB,EAAE;AAC9C,cAAM,4BAAU;AAChB,QAAI,CAAC,eAAe;AAClB,cAAQ;AAAA,IACV;AAAA,EACF,CAAC;AACH;AAUA,SAAS,IAAI,SAAS,iBAAiB,OAAO,UAAU;AACtD,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,iBAAiB,SAAS,MAAM,UAAU,UAAU;AAEjE,QAAM,sBAAkB,oBAAS,IAAI,IACjC;AAAA,IACE,MAAM,GAAG;AAAA,IACT,QAAQ,GAAG;AAAA,IACX,IAAI,GAAG;AAAA,EACT,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;AAUA,eAAO,WAAkC,mBAAmB,MAAM,UAAU,UAAU;AACpF,QAAM,QAAQ;AAAA,QACZ,2BAAa,mBAAmB,CAAC,YAAY,iBAAiB,SAAS,MAAM,OAAO,CAAC;AAAA,EACvF;AACF;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
package/utils/css/transition.js
CHANGED
|
@@ -1,9 +1,3 @@
|
|
|
1
|
-
var __defProp = Object.defineProperty;
|
|
2
|
-
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
3
|
-
var __publicField = (obj, key, value) => {
|
|
4
|
-
__defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
5
|
-
return value;
|
|
6
|
-
};
|
|
7
1
|
import { nextFrame } from "../nextFrame.js";
|
|
8
2
|
import * as classes from "./classes.js";
|
|
9
3
|
import * as styles from "./styles.js";
|
|
@@ -12,9 +6,9 @@ import { hasWindow } from "../has.js";
|
|
|
12
6
|
import { eachElements } from "./utils.js";
|
|
13
7
|
const cache = /* @__PURE__ */ new WeakMap();
|
|
14
8
|
class Transition {
|
|
9
|
+
isTransitioning = false;
|
|
10
|
+
transitionEndHandler = null;
|
|
15
11
|
constructor(element) {
|
|
16
|
-
__publicField(this, "isTransitioning", false);
|
|
17
|
-
__publicField(this, "transitionEndHandler", null);
|
|
18
12
|
cache.set(element, this);
|
|
19
13
|
}
|
|
20
14
|
static getInstance(element) {
|
|
@@ -101,3 +95,4 @@ export {
|
|
|
101
95
|
transition as default,
|
|
102
96
|
setClassesOrStyles
|
|
103
97
|
};
|
|
98
|
+
//# sourceMappingURL=transition.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../packages/js-toolkit/utils/css/transition.js"],
|
|
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\n/**\n * @typedef {string|string[]|Partial<CSSStyleDeclaration>} ClassesOrStyles\n * @typedef {{ from?: ClassesOrStyles, active?: ClassesOrStyles, to?: ClassesOrStyles }} TransitionStyles\n */\n\n/**\n * Transition class.\n */\nclass Transition {\n /**\n * Is a transition currently running?\n * @type {boolean}\n */\n isTransitioning = false;\n\n /**\n * A callback to execute when the transition ends.\n * @type {EventListenerOrEventListenerObject|null}\n */\n transitionEndHandler = null;\n\n /**\n * Instantiate and save the instance to the cache.\n * @param {HTMLElement} element The HTML element.\n */\n constructor(element) {\n cache.set(element, this);\n }\n\n /**\n * Get the transition class attached to the given element.\n * @param {HTMLElement} element The HTML element concerned by the transition.\n * @returns {Transition} The transition instance tied to the given element.\n */\n static getInstance(element) {\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 *\n * @param {HTMLElement} element The element to update.\n * @param {ClassesOrStyles} classesOrStyles The classes or styles to apply.\n * @param {'add'|'remove'} method The method to use, one of `add` or `remove`.\n */\nexport function setClassesOrStyles(element, classesOrStyles, method = 'add') {\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 *\n * @param {HTMLElement} element The element to test.\n * @returns {boolean} The result of the test.\n */\nfunction testTransition(element) {\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 *\n * @param {HTMLElement} element The target element.\n * @param {TransitionStyles} classesOrStyles The classes or styles definition.\n * @returns {Promise<void>}\n */\nasync function start(element, classesOrStyles) {\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 *\n * @param {HTMLElement} element The target element.\n * @param {TransitionStyles} classesOrStyles The classes or styles definition.\n * @returns {Promise}\n */\nasync function next(element, classesOrStyles) {\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 *\n * @param {HTMLElement} element The target element.\n * @param {string | Object} classesOrStyles The classes or styles definition.\n * @param {string} mode Whether to remove or keep the `to` classes/styles.\n * @returns {void}\n */\nfunction end(element, classesOrStyles, mode = 'remove') {\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 heavily 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 * @returns {Promise<void>} A promise resolving at the end of the transition.\n */\nasync function singleTransition(element, name, endMode = 'remove') {\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 * @returns {Promise<void>} A promise resolving at the end of the transition.\n */\nexport default async function transition(elementOrElements, name, endMode = 'remove') {\n await Promise.all(\n eachElements(elementOrElements, (element) => singleTransition(element, name, endMode)),\n );\n}\n"],
|
|
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;AAU1B,MAAM,WAAW;AAAA,EAKf,kBAAkB;AAAA,EAMlB,uBAAuB;AAAA,EAMvB,YAAY,SAAS;AACnB,UAAM,IAAI,SAAS,IAAI;AAAA,EACzB;AAAA,EAOA,OAAO,YAAY,SAAS;AAC1B,QAAI,WAAW,MAAM,IAAI,OAAO;AAEhC,QAAI,CAAC,UAAU;AACb,iBAAW,IAAI,KAAK,OAAO;AAAA,IAC7B;AAEA,WAAO;AAAA,EACT;AACF;AASO,SAAS,mBAAmB,SAAS,iBAAiB,SAAS,OAAO;AAC3E,MAAI,SAAS,eAAe,KAAK,QAAQ,eAAe,GAAG;AACzD,YAAQ,QAAQ,SAAS,eAAe;AAAA,EAC1C,OAAO;AACL,WAAO,QAAQ,SAAS,eAAe;AAAA,EACzC;AACF;AAQA,SAAS,eAAe,SAAS;AAC/B,MAAI,CAAC,UAAU,GAAG;AAChB,WAAO;AAAA,EACT;AAEA,QAAM,EAAE,mBAAmB,IAAI,OAAO,iBAAiB,OAAO;AAC9D,SAAO,CAAC,CAAC,sBAAsB,uBAAuB;AACxD;AASA,eAAe,MAAM,SAAS,iBAAiB;AAC7C,QAAM,MAAM,WAAW,YAAY,OAAO;AAC1C,MAAI,kBAAkB;AACtB,qBAAmB,SAAS,gBAAgB,IAAI;AAChD,QAAM,UAAU;AAChB,qBAAmB,SAAS,gBAAgB,MAAM;AACpD;AASA,eAAe,KAAK,SAAS,iBAAiB;AAC5C,QAAM,gBAAgB,eAAe,OAAO;AAG5C,SAAO,IAAI,QAAQ,OAAO,YAAY;AACpC,QAAI,eAAe;AACjB,YAAM,MAAM,WAAW,YAAY,OAAO;AAC1C,UAAI,uBAAuB;AAC3B,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;AAUA,SAAS,IAAI,SAAS,iBAAiB,OAAO,UAAU;AACtD,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,iBAAiB,SAAS,MAAM,UAAU,UAAU;AAEjE,QAAM,kBAAkB,SAAS,IAAI,IACjC;AAAA,IACE,MAAM,GAAG;AAAA,IACT,QAAQ,GAAG;AAAA,IACX,IAAI,GAAG;AAAA,EACT,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;AAUA,eAAO,WAAkC,mBAAmB,MAAM,UAAU,UAAU;AACpF,QAAM,QAAQ;AAAA,IACZ,aAAa,mBAAmB,CAAC,YAAY,iBAAiB,SAAS,MAAM,OAAO,CAAC;AAAA,EACvF;AACF;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
package/utils/css/utils.cjs
CHANGED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../packages/js-toolkit/utils/css/utils.ts"],
|
|
4
|
+
"sourcesContent": ["export function eachElements<S extends Node = Node, T = void>(\n elementOrElements: S | S[] | NodeListOf<S>,\n callback: (element: S, index?: number, elements?: S[]) => T,\n): T[] {\n if (elementOrElements instanceof Node) {\n return [callback(elementOrElements)];\n }\n\n return Array.from(elementOrElements).map(callback);\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAO,SAAS,aACd,mBACA,UACK;AACL,MAAI,6BAA6B,MAAM;AACrC,WAAO,CAAC,SAAS,iBAAiB,CAAC;AAAA,EACrC;AAEA,SAAO,MAAM,KAAK,iBAAiB,EAAE,IAAI,QAAQ;AACnD;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
package/utils/css/utils.js
CHANGED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../packages/js-toolkit/utils/css/utils.ts"],
|
|
4
|
+
"sourcesContent": ["export function eachElements<S extends Node = Node, T = void>(\n elementOrElements: S | S[] | NodeListOf<S>,\n callback: (element: S, index?: number, elements?: S[]) => T,\n): T[] {\n if (elementOrElements instanceof Node) {\n return [callback(elementOrElements)];\n }\n\n return Array.from(elementOrElements).map(callback);\n}\n"],
|
|
5
|
+
"mappings": "AAAO,SAAS,aACd,mBACA,UACK;AACL,MAAI,6BAA6B,MAAM;AACrC,WAAO,CAAC,SAAS,iBAAiB,CAAC;AAAA,EACrC;AAEA,SAAO,MAAM,KAAK,iBAAiB,EAAE,IAAI,QAAQ;AACnD;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
package/utils/debounce.cjs
CHANGED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../packages/js-toolkit/utils/debounce.js"],
|
|
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:any[]) => void} fn The function to call.\n * @param {number} [delay=300] The delay in ms to wait before calling the function.\n * @returns {(...args:any[]) => void} The debounced function.\n */\nexport default function debounce(fn, delay = 300) {\n let timeout;\n return function debounced(...args) {\n clearTimeout(timeout);\n timeout = setTimeout(() => {\n fn(...args);\n }, delay);\n };\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AASe,SAAR,SAA0B,IAAI,QAAQ,KAAK;AAChD,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
|
+
"names": []
|
|
7
|
+
}
|
package/utils/debounce.js
CHANGED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../packages/js-toolkit/utils/debounce.js"],
|
|
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:any[]) => void} fn The function to call.\n * @param {number} [delay=300] The delay in ms to wait before calling the function.\n * @returns {(...args:any[]) => void} The debounced function.\n */\nexport default function debounce(fn, delay = 300) {\n let timeout;\n return function debounced(...args) {\n clearTimeout(timeout);\n timeout = setTimeout(() => {\n fn(...args);\n }, delay);\n };\n}\n"],
|
|
5
|
+
"mappings": "AASe,SAAR,SAA0B,IAAI,QAAQ,KAAK;AAChD,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
|
+
"names": []
|
|
7
|
+
}
|
package/utils/focusTrap.cjs
CHANGED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../packages/js-toolkit/utils/focusTrap.js"],
|
|
4
|
+
"sourcesContent": ["import keyCodes from './keyCodes.js';\nimport { isFunction } from './is.js';\n\nconst FOCUSABLE_ELEMENTS = [\n 'a[href]:not([tabindex^=\"-\"]):not([inert])',\n 'area[href]:not([tabindex^=\"-\"]):not([inert])',\n 'input:not([disabled]):not([inert])',\n 'select:not([disabled]):not([inert])',\n 'textarea:not([disabled]):not([inert])',\n 'button:not([disabled]):not([inert])',\n 'iframe:not([tabindex^=\"-\"]):not([inert])',\n 'audio:not([tabindex^=\"-\"]):not([inert])',\n 'video:not([tabindex^=\"-\"]):not([inert])',\n '[contenteditable]:not([tabindex^=\"-\"]):not([inert])',\n '[tabindex]:not([tabindex^=\"-\"]):not([inert])',\n];\n\nlet focusedBefore;\n\n/**\n * Save the current active element.\n */\nexport function saveActiveElement() {\n focusedBefore = document.activeElement;\n}\n\n/**\n * Trap tab navigation inside the given element.\n * @param {HTMLElement} element The element in which to trap the tabulations.\n * @param {KeyboardEvent} event The keydown or keyup event.\n */\nexport function trap(element, event) {\n if (event.keyCode !== keyCodes.TAB) {\n return;\n }\n\n // Save the previous focused element\n if (!focusedBefore) {\n focusedBefore = document.activeElement;\n }\n\n /** @type {Array<HTMLElement>} */\n const focusableChildren = Array.from(element.querySelectorAll(FOCUSABLE_ELEMENTS.join(', ')));\n const focusedItemIndex =\n document.activeElement instanceof HTMLElement\n ? focusableChildren.indexOf(document.activeElement)\n : -1;\n\n if (!focusableChildren.length) {\n return;\n }\n\n if (focusedItemIndex < 0) {\n focusableChildren[0].focus();\n event.preventDefault();\n }\n\n // If the SHIFT key is being pressed while tabbing (moving backwards) and\n // the currently focused item is the first one, move the focus to the last\n // focusable item from the dialog element\n if (event.shiftKey && focusedItemIndex === 0) {\n focusableChildren.at(-1).focus();\n event.preventDefault();\n }\n\n // If the SHIFT key is not being pressed (moving forwards) and the currently\n // focused item is the last one, move the focus to the first focusable item\n // from the dialog element\n else if (!event.shiftKey && focusedItemIndex === focusableChildren.length - 1) {\n focusableChildren[0].focus();\n event.preventDefault();\n }\n}\n\n/**\n * Untrap the tab navigation.\n */\nexport function untrap() {\n if (focusedBefore && isFunction(focusedBefore.focus)) {\n focusedBefore.focus();\n focusedBefore = null;\n }\n}\n\n/**\n * Use a trap/untrap tabs logic.\n * @returns {{ trap: trap, untrap: untrap, saveActiveElement: saveActiveElement }}\n */\nexport default function useFocusTrap() {\n return { trap, untrap, saveActiveElement };\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAAqB;AACrB,gBAA2B;AAE3B,IAAM,qBAAqB;AAAA,EACzB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEA,IAAI;AAKG,SAAS,oBAAoB;AAClC,kBAAgB,SAAS;AAC3B;AAOO,SAAS,KAAK,SAAS,OAAO;AACnC,MAAI,MAAM,YAAY,gBAAAA,QAAS,KAAK;AAClC;AAAA,EACF;AAGA,MAAI,CAAC,eAAe;AAClB,oBAAgB,SAAS;AAAA,EAC3B;AAGA,QAAM,oBAAoB,MAAM,KAAK,QAAQ,iBAAiB,mBAAmB,KAAK,IAAI,CAAC,CAAC;AAC5F,QAAM,mBACJ,SAAS,yBAAyB,cAC9B,kBAAkB,QAAQ,SAAS,aAAa,IAChD;AAEN,MAAI,CAAC,kBAAkB,QAAQ;AAC7B;AAAA,EACF;AAEA,MAAI,mBAAmB,GAAG;AACxB,sBAAkB,GAAG,MAAM;AAC3B,UAAM,eAAe;AAAA,EACvB;AAKA,MAAI,MAAM,YAAY,qBAAqB,GAAG;AAC5C,sBAAkB,GAAG,EAAE,EAAE,MAAM;AAC/B,UAAM,eAAe;AAAA,EACvB,WAKS,CAAC,MAAM,YAAY,qBAAqB,kBAAkB,SAAS,GAAG;AAC7E,sBAAkB,GAAG,MAAM;AAC3B,UAAM,eAAe;AAAA,EACvB;AACF;AAKO,SAAS,SAAS;AACvB,MAAI,qBAAiB,sBAAW,cAAc,KAAK,GAAG;AACpD,kBAAc,MAAM;AACpB,oBAAgB;AAAA,EAClB;AACF;AAMe,SAAR,eAAgC;AACrC,SAAO,EAAE,MAAM,QAAQ,kBAAkB;AAC3C;",
|
|
6
|
+
"names": ["keyCodes"]
|
|
7
|
+
}
|
package/utils/focusTrap.js
CHANGED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../packages/js-toolkit/utils/focusTrap.js"],
|
|
4
|
+
"sourcesContent": ["import keyCodes from './keyCodes.js';\nimport { isFunction } from './is.js';\n\nconst FOCUSABLE_ELEMENTS = [\n 'a[href]:not([tabindex^=\"-\"]):not([inert])',\n 'area[href]:not([tabindex^=\"-\"]):not([inert])',\n 'input:not([disabled]):not([inert])',\n 'select:not([disabled]):not([inert])',\n 'textarea:not([disabled]):not([inert])',\n 'button:not([disabled]):not([inert])',\n 'iframe:not([tabindex^=\"-\"]):not([inert])',\n 'audio:not([tabindex^=\"-\"]):not([inert])',\n 'video:not([tabindex^=\"-\"]):not([inert])',\n '[contenteditable]:not([tabindex^=\"-\"]):not([inert])',\n '[tabindex]:not([tabindex^=\"-\"]):not([inert])',\n];\n\nlet focusedBefore;\n\n/**\n * Save the current active element.\n */\nexport function saveActiveElement() {\n focusedBefore = document.activeElement;\n}\n\n/**\n * Trap tab navigation inside the given element.\n * @param {HTMLElement} element The element in which to trap the tabulations.\n * @param {KeyboardEvent} event The keydown or keyup event.\n */\nexport function trap(element, event) {\n if (event.keyCode !== keyCodes.TAB) {\n return;\n }\n\n // Save the previous focused element\n if (!focusedBefore) {\n focusedBefore = document.activeElement;\n }\n\n /** @type {Array<HTMLElement>} */\n const focusableChildren = Array.from(element.querySelectorAll(FOCUSABLE_ELEMENTS.join(', ')));\n const focusedItemIndex =\n document.activeElement instanceof HTMLElement\n ? focusableChildren.indexOf(document.activeElement)\n : -1;\n\n if (!focusableChildren.length) {\n return;\n }\n\n if (focusedItemIndex < 0) {\n focusableChildren[0].focus();\n event.preventDefault();\n }\n\n // If the SHIFT key is being pressed while tabbing (moving backwards) and\n // the currently focused item is the first one, move the focus to the last\n // focusable item from the dialog element\n if (event.shiftKey && focusedItemIndex === 0) {\n focusableChildren.at(-1).focus();\n event.preventDefault();\n }\n\n // If the SHIFT key is not being pressed (moving forwards) and the currently\n // focused item is the last one, move the focus to the first focusable item\n // from the dialog element\n else if (!event.shiftKey && focusedItemIndex === focusableChildren.length - 1) {\n focusableChildren[0].focus();\n event.preventDefault();\n }\n}\n\n/**\n * Untrap the tab navigation.\n */\nexport function untrap() {\n if (focusedBefore && isFunction(focusedBefore.focus)) {\n focusedBefore.focus();\n focusedBefore = null;\n }\n}\n\n/**\n * Use a trap/untrap tabs logic.\n * @returns {{ trap: trap, untrap: untrap, saveActiveElement: saveActiveElement }}\n */\nexport default function useFocusTrap() {\n return { trap, untrap, saveActiveElement };\n}\n"],
|
|
5
|
+
"mappings": "AAAA,OAAO,cAAc;AACrB,SAAS,kBAAkB;AAE3B,MAAM,qBAAqB;AAAA,EACzB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEA,IAAI;AAKG,SAAS,oBAAoB;AAClC,kBAAgB,SAAS;AAC3B;AAOO,SAAS,KAAK,SAAS,OAAO;AACnC,MAAI,MAAM,YAAY,SAAS,KAAK;AAClC;AAAA,EACF;AAGA,MAAI,CAAC,eAAe;AAClB,oBAAgB,SAAS;AAAA,EAC3B;AAGA,QAAM,oBAAoB,MAAM,KAAK,QAAQ,iBAAiB,mBAAmB,KAAK,IAAI,CAAC,CAAC;AAC5F,QAAM,mBACJ,SAAS,yBAAyB,cAC9B,kBAAkB,QAAQ,SAAS,aAAa,IAChD;AAEN,MAAI,CAAC,kBAAkB,QAAQ;AAC7B;AAAA,EACF;AAEA,MAAI,mBAAmB,GAAG;AACxB,sBAAkB,GAAG,MAAM;AAC3B,UAAM,eAAe;AAAA,EACvB;AAKA,MAAI,MAAM,YAAY,qBAAqB,GAAG;AAC5C,sBAAkB,GAAG,EAAE,EAAE,MAAM;AAC/B,UAAM,eAAe;AAAA,EACvB,WAKS,CAAC,MAAM,YAAY,qBAAqB,kBAAkB,SAAS,GAAG;AAC7E,sBAAkB,GAAG,MAAM;AAC3B,UAAM,eAAe;AAAA,EACvB;AACF;AAKO,SAAS,SAAS;AACvB,MAAI,iBAAiB,WAAW,cAAc,KAAK,GAAG;AACpD,kBAAc,MAAM;AACpB,oBAAgB;AAAA,EAClB;AACF;AAMe,SAAR,eAAgC;AACrC,SAAO,EAAE,MAAM,QAAQ,kBAAkB;AAC3C;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
package/utils/has.cjs
CHANGED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../packages/js-toolkit/utils/has.js"],
|
|
4
|
+
"sourcesContent": ["/**\n * Test if the current context as a global `window` object available.\n *\n * @returns {boolean}\n */\nexport function hasWindow() {\n return typeof window !== 'undefined';\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAKO,SAAS,YAAY;AAC1B,SAAO,OAAO,WAAW;AAC3B;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
package/utils/has.js
CHANGED
package/utils/has.js.map
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../packages/js-toolkit/utils/has.js"],
|
|
4
|
+
"sourcesContent": ["/**\n * Test if the current context as a global `window` object available.\n *\n * @returns {boolean}\n */\nexport function hasWindow() {\n return typeof window !== 'undefined';\n}\n"],
|
|
5
|
+
"mappings": "AAKO,SAAS,YAAY;AAC1B,SAAO,OAAO,WAAW;AAC3B;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
package/utils/history.cjs
CHANGED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../packages/js-toolkit/utils/history.js"],
|
|
4
|
+
"sourcesContent": ["import { isArray, isObject } from './is.js';\nimport { hasWindow } from './has.js';\n\n/**\n * @typedef {Object} HistoryOptions\n * @property {string} [path]\n * @property {URLSearchParams|{ [key:string]: unknown }} [search]\n * @property {string} [hash]\n */\n\n/**\n * Set a param in a URLSearchParam instance.\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 * @returns {URLSearchParams} The updated URLSearchParams instance.\n */\nfunction updateUrlSearchParam(params, name, value) {\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 value.forEach((val, index) => {\n const arrayName = `${name}[${index}]`;\n updateUrlSearchParam(params, arrayName, val);\n });\n return params;\n }\n\n if (isObject(value)) {\n Object.entries(value).forEach(([key, val]) => {\n const objectName = `${name}[${key}]`;\n updateUrlSearchParam(params, objectName, val);\n });\n return params;\n }\n\n params.set(name, value);\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 * @returns {URLSearchParams}\n */\nexport function objectToURLSearchParams(\n obj,\n defaultSearch = hasWindow() ? window.location.search : '',\n) {\n return Object.entries(obj).reduce(\n (urlSearchParams, [name, value]) => updateUrlSearchParam(urlSearchParams, name, value),\n new URLSearchParams(defaultSearch),\n );\n}\n\n/**\n * Update the history with a new state.\n * @param {string} mode\n * @param {HistoryOptions} options\n * @param {Object} [data]\n * @param {string} [title]\n * @returns {void}\n */\nfunction updateHistory(mode, options, data = {}, title = '') {\n if (!window.history) {\n return;\n }\n\n /** @type {HistoryOptions} */\n const { path, search, hash } = {\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 (hash.startsWith('#')) {\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 * @returns {void}\n */\nexport function push(options, data = {}, 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 * @returns {void}\n */\nexport function replace(options, data = {}, title = '') {\n updateHistory('replace', options, data, title);\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAAkC;AAClC,iBAA0B;AAgB1B,SAAS,qBAAqB,QAAQ,MAAM,OAAO;AACjD,MAAI,UAAU,MAAM,UAAU,QAAQ,UAAU,QAAW;AACzD,QAAI,OAAO,IAAI,IAAI,GAAG;AACpB,aAAO,OAAO,IAAI;AAAA,IACpB;AACA,WAAO;AAAA,EACT;AAEA,UAAI,mBAAQ,KAAK,GAAG;AAClB,UAAM,QAAQ,CAAC,KAAK,UAAU;AAC5B,YAAM,YAAY,GAAG,QAAQ;AAC7B,2BAAqB,QAAQ,WAAW,GAAG;AAAA,IAC7C,CAAC;AACD,WAAO;AAAA,EACT;AAEA,UAAI,oBAAS,KAAK,GAAG;AACnB,WAAO,QAAQ,KAAK,EAAE,QAAQ,CAAC,CAAC,KAAK,GAAG,MAAM;AAC5C,YAAM,aAAa,GAAG,QAAQ;AAC9B,2BAAqB,QAAQ,YAAY,GAAG;AAAA,IAC9C,CAAC;AACD,WAAO;AAAA,EACT;AAEA,SAAO,IAAI,MAAM,KAAK;AACtB,SAAO;AACT;AASO,SAAS,wBACd,KACA,oBAAgB,sBAAU,IAAI,OAAO,SAAS,SAAS,IACvD;AACA,SAAO,OAAO,QAAQ,GAAG,EAAE;AAAA,IACzB,CAAC,iBAAiB,CAAC,MAAM,KAAK,MAAM,qBAAqB,iBAAiB,MAAM,KAAK;AAAA,IACrF,IAAI,gBAAgB,aAAa;AAAA,EACnC;AACF;AAUA,SAAS,cAAc,MAAM,SAAS,OAAO,CAAC,GAAG,QAAQ,IAAI;AAC3D,MAAI,CAAC,OAAO,SAAS;AACnB;AAAA,EACF;AAGA,QAAM,EAAE,MAAM,QAAQ,KAAK,IAAI;AAAA,IAC7B,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;AAAA,EACnC;AAEA,MAAI,MAAM;AACR,QAAI,KAAK,WAAW,GAAG,GAAG;AACxB,aAAO;AAAA,IACT,OAAO;AACL,aAAO,IAAI;AAAA,IACb;AAAA,EACF;AAEA,QAAM,SAAS,GAAG;AAClB,SAAO,QAAQ,QAAQ,MAAM,OAAO,GAAG;AACzC;AAUO,SAAS,KAAK,SAAS,OAAO,CAAC,GAAG,QAAQ,IAAI;AACnD,gBAAc,QAAQ,SAAS,MAAM,KAAK;AAC5C;AAUO,SAAS,QAAQ,SAAS,OAAO,CAAC,GAAG,QAAQ,IAAI;AACtD,gBAAc,WAAW,SAAS,MAAM,KAAK;AAC/C;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
package/utils/history.js
CHANGED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../packages/js-toolkit/utils/history.js"],
|
|
4
|
+
"sourcesContent": ["import { isArray, isObject } from './is.js';\nimport { hasWindow } from './has.js';\n\n/**\n * @typedef {Object} HistoryOptions\n * @property {string} [path]\n * @property {URLSearchParams|{ [key:string]: unknown }} [search]\n * @property {string} [hash]\n */\n\n/**\n * Set a param in a URLSearchParam instance.\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 * @returns {URLSearchParams} The updated URLSearchParams instance.\n */\nfunction updateUrlSearchParam(params, name, value) {\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 value.forEach((val, index) => {\n const arrayName = `${name}[${index}]`;\n updateUrlSearchParam(params, arrayName, val);\n });\n return params;\n }\n\n if (isObject(value)) {\n Object.entries(value).forEach(([key, val]) => {\n const objectName = `${name}[${key}]`;\n updateUrlSearchParam(params, objectName, val);\n });\n return params;\n }\n\n params.set(name, value);\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 * @returns {URLSearchParams}\n */\nexport function objectToURLSearchParams(\n obj,\n defaultSearch = hasWindow() ? window.location.search : '',\n) {\n return Object.entries(obj).reduce(\n (urlSearchParams, [name, value]) => updateUrlSearchParam(urlSearchParams, name, value),\n new URLSearchParams(defaultSearch),\n );\n}\n\n/**\n * Update the history with a new state.\n * @param {string} mode\n * @param {HistoryOptions} options\n * @param {Object} [data]\n * @param {string} [title]\n * @returns {void}\n */\nfunction updateHistory(mode, options, data = {}, title = '') {\n if (!window.history) {\n return;\n }\n\n /** @type {HistoryOptions} */\n const { path, search, hash } = {\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 (hash.startsWith('#')) {\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 * @returns {void}\n */\nexport function push(options, data = {}, 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 * @returns {void}\n */\nexport function replace(options, data = {}, title = '') {\n updateHistory('replace', options, data, title);\n}\n"],
|
|
5
|
+
"mappings": "AAAA,SAAS,SAAS,gBAAgB;AAClC,SAAS,iBAAiB;AAgB1B,SAAS,qBAAqB,QAAQ,MAAM,OAAO;AACjD,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,UAAM,QAAQ,CAAC,KAAK,UAAU;AAC5B,YAAM,YAAY,GAAG,QAAQ;AAC7B,2BAAqB,QAAQ,WAAW,GAAG;AAAA,IAC7C,CAAC;AACD,WAAO;AAAA,EACT;AAEA,MAAI,SAAS,KAAK,GAAG;AACnB,WAAO,QAAQ,KAAK,EAAE,QAAQ,CAAC,CAAC,KAAK,GAAG,MAAM;AAC5C,YAAM,aAAa,GAAG,QAAQ;AAC9B,2BAAqB,QAAQ,YAAY,GAAG;AAAA,IAC9C,CAAC;AACD,WAAO;AAAA,EACT;AAEA,SAAO,IAAI,MAAM,KAAK;AACtB,SAAO;AACT;AASO,SAAS,wBACd,KACA,gBAAgB,UAAU,IAAI,OAAO,SAAS,SAAS,IACvD;AACA,SAAO,OAAO,QAAQ,GAAG,EAAE;AAAA,IACzB,CAAC,iBAAiB,CAAC,MAAM,KAAK,MAAM,qBAAqB,iBAAiB,MAAM,KAAK;AAAA,IACrF,IAAI,gBAAgB,aAAa;AAAA,EACnC;AACF;AAUA,SAAS,cAAc,MAAM,SAAS,OAAO,CAAC,GAAG,QAAQ,IAAI;AAC3D,MAAI,CAAC,OAAO,SAAS;AACnB;AAAA,EACF;AAGA,QAAM,EAAE,MAAM,QAAQ,KAAK,IAAI;AAAA,IAC7B,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;AAAA,EACnC;AAEA,MAAI,MAAM;AACR,QAAI,KAAK,WAAW,GAAG,GAAG;AACxB,aAAO;AAAA,IACT,OAAO;AACL,aAAO,IAAI;AAAA,IACb;AAAA,EACF;AAEA,QAAM,SAAS,GAAG;AAClB,SAAO,QAAQ,QAAQ,MAAM,OAAO,GAAG;AACzC;AAUO,SAAS,KAAK,SAAS,OAAO,CAAC,GAAG,QAAQ,IAAI;AACnD,gBAAc,QAAQ,SAAS,MAAM,KAAK;AAC5C;AAUO,SAAS,QAAQ,SAAS,OAAO,CAAC,GAAG,QAAQ,IAAI;AACtD,gBAAc,WAAW,SAAS,MAAM,KAAK;AAC/C;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
package/utils/index.cjs
CHANGED
|
@@ -61,3 +61,4 @@ __reExport(utils_exports, require("./scheduler.cjs"), module.exports);
|
|
|
61
61
|
__reExport(utils_exports, require("./noop.cjs"), module.exports);
|
|
62
62
|
var import_tween = require("./tween.cjs");
|
|
63
63
|
if (module.exports.default) module.exports = module.exports.default;
|
|
64
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../packages/js-toolkit/utils/index.ts"],
|
|
4
|
+
"sourcesContent": ["export { default as debounce } from './debounce.js';\nexport { default as focusTrap } from './focusTrap.js';\nexport { default as keyCodes } from './keyCodes.js';\nexport { default as memoize } from './memoize.js';\nexport { nextFrame } from './nextFrame.js';\nexport { default as nextTick } from './nextTick.js';\nexport { default as nextMicrotask } from './nextMicrotask.js';\nexport { default as throttle } from './throttle.js';\nexport { default as scrollTo } from './scrollTo.js';\nexport * from './is.js';\nexport * from './has.js';\n// eslint-disable-next-line import/extensions\nexport * from './css/index.js';\nexport {\n objectToURLSearchParams,\n push as historyPush,\n replace as historyReplace,\n} from './history.js';\nexport * from './collide/index.js';\nexport * from './math/index.js';\nexport * from './string/index.js';\nexport * from './scheduler.js';\nexport * from './noop.js';\nexport { tween } from './tween.js';\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAAoC;AACpC,uBAAqC;AACrC,sBAAoC;AACpC,qBAAmC;AACnC,uBAA0B;AAC1B,sBAAoC;AACpC,2BAAyC;AACzC,sBAAoC;AACpC,sBAAoC;AACpC,0BAAc,qBATd;AAUA,0BAAc,sBAVd;AAYA,0BAAc,4BAZd;AAaA,qBAIO;AACP,0BAAc,gCAlBd;AAmBA,0BAAc,6BAnBd;AAoBA,0BAAc,+BApBd;AAqBA,0BAAc,4BArBd;AAsBA,0BAAc,uBAtBd;AAuBA,mBAAsB;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
package/utils/index.js
CHANGED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../packages/js-toolkit/utils/index.ts"],
|
|
4
|
+
"sourcesContent": ["export { default as debounce } from './debounce.js';\nexport { default as focusTrap } from './focusTrap.js';\nexport { default as keyCodes } from './keyCodes.js';\nexport { default as memoize } from './memoize.js';\nexport { nextFrame } from './nextFrame.js';\nexport { default as nextTick } from './nextTick.js';\nexport { default as nextMicrotask } from './nextMicrotask.js';\nexport { default as throttle } from './throttle.js';\nexport { default as scrollTo } from './scrollTo.js';\nexport * from './is.js';\nexport * from './has.js';\n// eslint-disable-next-line import/extensions\nexport * from './css/index.js';\nexport {\n objectToURLSearchParams,\n push as historyPush,\n replace as historyReplace,\n} from './history.js';\nexport * from './collide/index.js';\nexport * from './math/index.js';\nexport * from './string/index.js';\nexport * from './scheduler.js';\nexport * from './noop.js';\nexport { tween } from './tween.js';\n"],
|
|
5
|
+
"mappings": "AAAA,SAAoB,WAAXA,gBAA2B;AACpC,SAAoB,WAAXA,gBAA4B;AACrC,SAAoB,WAAXA,gBAA2B;AACpC,SAAoB,WAAXA,gBAA0B;AACnC,SAAS,iBAAiB;AAC1B,SAAoB,WAAXA,gBAA2B;AACpC,SAAoB,WAAXA,gBAAgC;AACzC,SAAoB,WAAXA,gBAA2B;AACpC,SAAoB,WAAXA,gBAA2B;AACpC,cAAc;AACd,cAAc;AAEd,cAAc;AACd;AAAA,EACE;AAAA,EACQ;AAAA,EACG;AAAA,OACN;AACP,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,SAAS,aAAa;",
|
|
6
|
+
"names": ["default"]
|
|
7
|
+
}
|
package/utils/is.cjs
CHANGED
package/utils/is.cjs.map
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../packages/js-toolkit/utils/is.js"],
|
|
4
|
+
"sourcesContent": ["// eslint-disable-next-line no-undef\nexport const isDev = typeof __DEV__ !== 'undefined' && __DEV__;\n\n/**\n * Test if the given value is a function.\n *\n * @param {unknown} value\n * @returns {value is Function}\n */\nexport const isFunction = (value) => typeof value === 'function';\n\n/**\n * Test if a value is defined or not.\n *\n * @param {unknown} value\n * @returns {boolean}\n */\nexport const isDefined = (value) => typeof value !== 'undefined';\n\n/**\n * Test if value is a string.\n * @param {unknown} value\n * @returns {value is string}\n */\nexport const isString = (value) => typeof value === 'string';\n\n/**\n * Test if the given value is an object.\n *\n * @param {unknown} value\n * @returns {boolean}\n */\nexport const isObject = (value) =>\n typeof value === 'object' && !!value && value.toString() === '[object Object]';\n\n/**\n * Test if a given value is a number.\n *\n * @param {unknown} value\n * @returns {value is number}\n */\nexport const isNumber = (value) => typeof value === 'number';\n\n/**\n * Test if a given value is a boolean.\n * @param {unknown} value\n * @returns {value is boolean}\n */\nexport const isBoolean = (value) => typeof value === 'boolean';\n\n// eslint-disable-next-line prefer-destructuring\nexport const isArray = Array.isArray;\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACO,IAAM,QAAQ,OAAO,YAAY,eAAe;AAQhD,IAAM,aAAa,CAAC,UAAU,OAAO,UAAU;AAQ/C,IAAM,YAAY,CAAC,UAAU,OAAO,UAAU;AAO9C,IAAM,WAAW,CAAC,UAAU,OAAO,UAAU;AAQ7C,IAAM,WAAW,CAAC,UACvB,OAAO,UAAU,YAAY,CAAC,CAAC,SAAS,MAAM,SAAS,MAAM;AAQxD,IAAM,WAAW,CAAC,UAAU,OAAO,UAAU;AAO7C,IAAM,YAAY,CAAC,UAAU,OAAO,UAAU;AAG9C,IAAM,UAAU,MAAM;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
package/utils/is.js
CHANGED
package/utils/is.js.map
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../packages/js-toolkit/utils/is.js"],
|
|
4
|
+
"sourcesContent": ["// eslint-disable-next-line no-undef\nexport const isDev = typeof __DEV__ !== 'undefined' && __DEV__;\n\n/**\n * Test if the given value is a function.\n *\n * @param {unknown} value\n * @returns {value is Function}\n */\nexport const isFunction = (value) => typeof value === 'function';\n\n/**\n * Test if a value is defined or not.\n *\n * @param {unknown} value\n * @returns {boolean}\n */\nexport const isDefined = (value) => typeof value !== 'undefined';\n\n/**\n * Test if value is a string.\n * @param {unknown} value\n * @returns {value is string}\n */\nexport const isString = (value) => typeof value === 'string';\n\n/**\n * Test if the given value is an object.\n *\n * @param {unknown} value\n * @returns {boolean}\n */\nexport const isObject = (value) =>\n typeof value === 'object' && !!value && value.toString() === '[object Object]';\n\n/**\n * Test if a given value is a number.\n *\n * @param {unknown} value\n * @returns {value is number}\n */\nexport const isNumber = (value) => typeof value === 'number';\n\n/**\n * Test if a given value is a boolean.\n * @param {unknown} value\n * @returns {value is boolean}\n */\nexport const isBoolean = (value) => typeof value === 'boolean';\n\n// eslint-disable-next-line prefer-destructuring\nexport const isArray = Array.isArray;\n"],
|
|
5
|
+
"mappings": "AACO,MAAM,QAAQ,OAAO,YAAY,eAAe;AAQhD,MAAM,aAAa,CAAC,UAAU,OAAO,UAAU;AAQ/C,MAAM,YAAY,CAAC,UAAU,OAAO,UAAU;AAO9C,MAAM,WAAW,CAAC,UAAU,OAAO,UAAU;AAQ7C,MAAM,WAAW,CAAC,UACvB,OAAO,UAAU,YAAY,CAAC,CAAC,SAAS,MAAM,SAAS,MAAM;AAQxD,MAAM,WAAW,CAAC,UAAU,OAAO,UAAU;AAO7C,MAAM,YAAY,CAAC,UAAU,OAAO,UAAU;AAG9C,MAAM,UAAU,MAAM;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
package/utils/keyCodes.cjs
CHANGED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../packages/js-toolkit/utils/keyCodes.js"],
|
|
4
|
+
"sourcesContent": ["export default {\n ENTER: 13,\n SPACE: 32,\n TAB: 9,\n ESC: 27,\n LEFT: 37,\n UP: 38,\n RIGHT: 39,\n DOWN: 40,\n};\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAAO,mBAAQ;AAAA,EACb,OAAO;AAAA,EACP,OAAO;AAAA,EACP,KAAK;AAAA,EACL,KAAK;AAAA,EACL,MAAM;AAAA,EACN,IAAI;AAAA,EACJ,OAAO;AAAA,EACP,MAAM;AACR;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
package/utils/keyCodes.js
CHANGED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../packages/js-toolkit/utils/keyCodes.js"],
|
|
4
|
+
"sourcesContent": ["export default {\n ENTER: 13,\n SPACE: 32,\n TAB: 9,\n ESC: 27,\n LEFT: 37,\n UP: 38,\n RIGHT: 39,\n DOWN: 40,\n};\n"],
|
|
5
|
+
"mappings": "AAAA,IAAO,mBAAQ;AAAA,EACb,OAAO;AAAA,EACP,OAAO;AAAA,EACP,KAAK;AAAA,EACL,KAAK;AAAA,EACL,MAAM;AAAA,EACN,IAAI;AAAA,EACJ,OAAO;AAAA,EACP,MAAM;AACR;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
package/utils/math/clamp.cjs
CHANGED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../packages/js-toolkit/utils/math/clamp.js"],
|
|
4
|
+
"sourcesContent": ["/**\n * Clamp a value in a given range.\n * @param {number} value\n * @param {number} min\n * @param {number} max\n * @returns {number}\n */\nexport default function clamp(value, min, max) {\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
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAOe,SAAR,MAAuB,OAAO,KAAK,KAAK;AAE7C,SAAO,MAAM,MACT,QAAQ,MACN,MACA,QAAQ,MACR,MACA,QACF,QAAQ,MACR,MACA,QAAQ,MACR,MACA;AAEN;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
package/utils/math/clamp.js
CHANGED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../packages/js-toolkit/utils/math/clamp.js"],
|
|
4
|
+
"sourcesContent": ["/**\n * Clamp a value in a given range.\n * @param {number} value\n * @param {number} min\n * @param {number} max\n * @returns {number}\n */\nexport default function clamp(value, min, max) {\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
|
+
"mappings": "AAOe,SAAR,MAAuB,OAAO,KAAK,KAAK;AAE7C,SAAO,MAAM,MACT,QAAQ,MACN,MACA,QAAQ,MACR,MACA,QACF,QAAQ,MACR,MACA,QAAQ,MACR,MACA;AAEN;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
package/utils/math/clamp01.cjs
CHANGED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../packages/js-toolkit/utils/math/clamp01.js"],
|
|
4
|
+
"sourcesContent": ["import clamp from './clamp.js';\n\n/**\n * Clamp a value in the 0\u20131 range.\n * @param {number} value\n * @returns {number}\n */\nexport default function clamp01(value) {\n return clamp(value, 0, 1);\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAkB;AAOH,SAAR,QAAyB,OAAO;AACrC,aAAO,aAAAA,SAAM,OAAO,GAAG,CAAC;AAC1B;",
|
|
6
|
+
"names": ["clamp"]
|
|
7
|
+
}
|
package/utils/math/clamp01.js
CHANGED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../packages/js-toolkit/utils/math/clamp01.js"],
|
|
4
|
+
"sourcesContent": ["import clamp from './clamp.js';\n\n/**\n * Clamp a value in the 0\u20131 range.\n * @param {number} value\n * @returns {number}\n */\nexport default function clamp01(value) {\n return clamp(value, 0, 1);\n}\n"],
|
|
5
|
+
"mappings": "AAAA,OAAO,WAAW;AAOH,SAAR,QAAyB,OAAO;AACrC,SAAO,MAAM,OAAO,GAAG,CAAC;AAC1B;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -30,3 +30,4 @@ function createEaseInOut(easeIn) {
|
|
|
30
30
|
return (progress) => progress === 0 ? 0 : progress === 1 ? 1 : progress < 0.5 ? easeIn(progress * 2) / 2 : 1 - easeIn((1 - progress) * 2) / 2;
|
|
31
31
|
}
|
|
32
32
|
if (module.exports.default) module.exports = module.exports.default;
|
|
33
|
+
//# sourceMappingURL=createEases.cjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../packages/js-toolkit/utils/math/createEases.js"],
|
|
4
|
+
"sourcesContent": ["/**\n * @typedef {(progress: number) => number} EasingFunction\n */\n\n/**\n * Create an out easing function.\n *\n * @param {EasingFunction} easeIn The ease in function.\n * @returns {EasingFunction} The out function.\n */\nexport function createEaseOut(easeIn) {\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 * @returns {EasingFunction} The in-out function.\n */\nexport function createEaseInOut(easeIn) {\n /* eslint-disable no-nested-ternary */\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
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAUO,SAAS,cAAc,QAAQ;AACpC,SAAO,CAAC,aAAa,IAAI,OAAO,IAAI,QAAQ;AAC9C;AAQO,SAAS,gBAAgB,QAAQ;AAEtC,SAAO,CAAC,aACN,aAAa,IACT,IACA,aAAa,IACb,IACA,WAAW,MACX,OAAO,WAAW,CAAC,IAAI,IACvB,IAAI,QAAQ,IAAI,YAAY,CAAC,IAAI;AACzC;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../packages/js-toolkit/utils/math/createEases.js"],
|
|
4
|
+
"sourcesContent": ["/**\n * @typedef {(progress: number) => number} EasingFunction\n */\n\n/**\n * Create an out easing function.\n *\n * @param {EasingFunction} easeIn The ease in function.\n * @returns {EasingFunction} The out function.\n */\nexport function createEaseOut(easeIn) {\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 * @returns {EasingFunction} The in-out function.\n */\nexport function createEaseInOut(easeIn) {\n /* eslint-disable no-nested-ternary */\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
|
+
"mappings": "AAUO,SAAS,cAAc,QAAQ;AACpC,SAAO,CAAC,aAAa,IAAI,OAAO,IAAI,QAAQ;AAC9C;AAQO,SAAS,gBAAgB,QAAQ;AAEtC,SAAO,CAAC,aACN,aAAa,IACT,IACA,aAAa,IACb,IACA,WAAW,MACX,OAAO,WAAW,CAAC,IAAI,IACvB,IAAI,QAAQ,IAAI,YAAY,CAAC,IAAI;AACzC;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
package/utils/math/damp.cjs
CHANGED
|
@@ -26,3 +26,4 @@ function damp(targetValue, currentValue, factor = 0.5, precision = 0.01) {
|
|
|
26
26
|
return Math.abs(targetValue - currentValue) < precision ? targetValue : currentValue + (targetValue - currentValue) * factor;
|
|
27
27
|
}
|
|
28
28
|
if (module.exports.default) module.exports = module.exports.default;
|
|
29
|
+
//# sourceMappingURL=damp.cjs.map
|