@studiometa/js-toolkit 2.6.5 → 2.7.0
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/features.cjs +29 -0
- package/Base/features.cjs.map +7 -0
- package/Base/features.d.ts +2 -0
- package/Base/features.js +7 -0
- package/Base/features.js.map +7 -0
- package/Base/index.cjs +12 -15
- package/Base/index.cjs.map +2 -2
- package/Base/index.d.ts +1 -5
- package/Base/index.js +10 -6
- package/Base/index.js.map +2 -2
- package/Base/managers/AsyncChildrenManager.cjs +61 -0
- package/Base/managers/AsyncChildrenManager.cjs.map +7 -0
- package/Base/managers/AsyncChildrenManager.d.ts +18 -0
- package/Base/managers/AsyncChildrenManager.js +39 -0
- package/Base/managers/AsyncChildrenManager.js.map +7 -0
- package/Base/managers/ChildrenManager.cjs +32 -29
- package/Base/managers/ChildrenManager.cjs.map +2 -2
- package/Base/managers/ChildrenManager.d.ts +21 -1
- package/Base/managers/ChildrenManager.js +32 -29
- package/Base/managers/ChildrenManager.js.map +2 -2
- package/Base/managers/EventsManager.cjs.map +2 -2
- package/Base/managers/EventsManager.js.map +2 -2
- package/Base/managers/RefsManager.cjs.map +2 -2
- package/Base/managers/RefsManager.js.map +2 -2
- package/Base/managers/index.cjs +41 -0
- package/Base/managers/index.cjs.map +7 -0
- package/Base/managers/index.d.ts +8 -0
- package/Base/managers/index.js +19 -0
- package/Base/managers/index.js.map +7 -0
- package/Base/types.cjs.map +1 -1
- package/Base/utils.cjs.map +2 -2
- package/Base/utils.d.ts +1 -0
- package/Base/utils.js.map +2 -2
- package/decorators/withBreakpointManager.cjs.map +2 -2
- package/decorators/withBreakpointManager.js.map +2 -2
- package/decorators/withBreakpointObserver.cjs.map +2 -2
- package/decorators/withBreakpointObserver.js.map +2 -2
- package/decorators/withDrag.cjs.map +2 -2
- package/decorators/withDrag.js.map +2 -2
- package/decorators/withMountWhenInView.cjs.map +2 -2
- package/decorators/withMountWhenInView.js.map +2 -2
- package/decorators/withResponsiveOptions.cjs.map +2 -2
- package/decorators/withResponsiveOptions.js.map +2 -2
- package/decorators/withScrolledInView.cjs +4 -1
- package/decorators/withScrolledInView.cjs.map +2 -2
- package/decorators/withScrolledInView.js +4 -1
- package/decorators/withScrolledInView.js.map +2 -2
- package/decorators/withVue2.cjs.map +2 -2
- package/decorators/withVue2.js.map +2 -2
- package/helpers/createApp.cjs +23 -19
- package/helpers/createApp.cjs.map +2 -2
- package/helpers/createApp.d.ts +6 -1
- package/helpers/createApp.js +23 -19
- package/helpers/createApp.js.map +2 -2
- package/helpers/getClosestParent.cjs.map +2 -2
- package/helpers/getClosestParent.js.map +2 -2
- package/helpers/getInstanceFromElement.cjs.map +2 -2
- package/helpers/getInstanceFromElement.js.map +2 -2
- package/helpers/importOnInteraction.cjs.map +2 -2
- package/helpers/importOnInteraction.js.map +2 -2
- package/helpers/importWhenIdle.cjs.map +2 -2
- package/helpers/importWhenIdle.js.map +2 -2
- package/index.cjs.map +1 -1
- package/index.d.ts +1 -1
- package/index.js.map +1 -1
- package/package.json +1 -1
- package/services/drag.cjs +1 -1
- package/services/drag.cjs.map +3 -3
- package/services/drag.d.ts +21 -24
- package/services/drag.js.map +3 -3
- package/services/key.cjs +1 -1
- package/services/key.cjs.map +3 -3
- package/services/key.d.ts +8 -9
- package/services/key.js.map +3 -3
- package/services/load.cjs +1 -1
- package/services/load.cjs.map +3 -3
- package/services/load.d.ts +6 -5
- package/services/load.js.map +3 -3
- package/services/pointer.cjs +1 -1
- package/services/pointer.cjs.map +3 -3
- package/services/pointer.d.ts +10 -10
- package/services/pointer.js.map +3 -3
- package/services/raf.cjs +4 -4
- package/services/raf.cjs.map +3 -3
- package/services/raf.d.ts +6 -7
- package/services/raf.js +3 -3
- package/services/raf.js.map +3 -3
- package/services/resize.cjs +1 -1
- package/services/resize.cjs.map +3 -3
- package/services/resize.d.ts +8 -9
- package/services/resize.js.map +3 -3
- package/services/scroll.cjs +1 -1
- package/services/scroll.cjs.map +3 -3
- package/services/scroll.d.ts +16 -17
- package/services/scroll.js.map +3 -3
- package/services/service.cjs +2 -2
- package/services/service.cjs.map +3 -3
- package/services/service.d.ts +12 -14
- package/services/service.js +1 -1
- package/services/service.js.map +3 -3
- package/utils/Queue.cjs +60 -0
- package/utils/Queue.cjs.map +7 -0
- package/utils/Queue.d.ts +44 -0
- package/utils/Queue.js +38 -0
- package/utils/Queue.js.map +7 -0
- package/utils/collide/boundingRectToCircle.cjs +3 -2
- package/utils/collide/boundingRectToCircle.cjs.map +3 -3
- package/utils/collide/boundingRectToCircle.d.ts +8 -13
- package/utils/collide/boundingRectToCircle.js +2 -1
- package/utils/collide/boundingRectToCircle.js.map +3 -3
- package/utils/collide/collideCircleCircle.cjs +1 -1
- package/utils/collide/collideCircleCircle.cjs.map +1 -1
- package/utils/collide/collideCircleCircle.d.ts +1 -15
- package/utils/collide/collideCircleCircle.js.map +1 -1
- package/utils/collide/collideCircleRect.cjs +1 -1
- package/utils/collide/collideCircleRect.cjs.map +1 -1
- package/utils/collide/collideCircleRect.d.ts +1 -33
- package/utils/collide/collideCircleRect.js.map +1 -1
- package/utils/collide/collidePointCircle.cjs +1 -1
- package/utils/collide/collidePointCircle.cjs.map +1 -1
- package/utils/collide/collidePointCircle.d.ts +1 -25
- package/utils/collide/collidePointCircle.js.map +1 -1
- package/utils/collide/collidePointRect.cjs +1 -1
- package/utils/collide/collidePointRect.cjs.map +1 -1
- package/utils/collide/collidePointRect.d.ts +1 -29
- package/utils/collide/collidePointRect.js.map +1 -1
- package/utils/collide/collideRectRect.cjs +1 -1
- package/utils/collide/collideRectRect.cjs.map +1 -1
- package/utils/collide/collideRectRect.d.ts +1 -19
- package/utils/collide/collideRectRect.js.map +1 -1
- package/utils/collide/index.cjs +1 -1
- package/utils/collide/index.cjs.map +1 -1
- package/utils/collide/index.d.ts +9 -6
- package/utils/collide/index.js.map +1 -1
- package/utils/css/animate.cjs +14 -15
- package/utils/css/animate.cjs.map +3 -3
- package/utils/css/animate.d.ts +12 -14
- package/utils/css/animate.js +13 -14
- package/utils/css/animate.js.map +3 -3
- package/utils/css/classes.cjs +1 -1
- package/utils/css/classes.cjs.map +3 -3
- package/utils/css/classes.d.ts +3 -16
- package/utils/css/classes.js.map +3 -3
- package/utils/css/getOffsetSizes.cjs +1 -1
- package/utils/css/getOffsetSizes.cjs.map +3 -3
- package/utils/css/getOffsetSizes.d.ts +0 -2
- package/utils/css/getOffsetSizes.js.map +3 -3
- package/utils/css/matrix.cjs +1 -1
- package/utils/css/matrix.cjs.map +3 -3
- package/utils/css/matrix.d.ts +10 -8
- package/utils/css/matrix.js.map +3 -3
- package/utils/css/styles.cjs +1 -1
- package/utils/css/styles.cjs.map +3 -3
- package/utils/css/styles.d.ts +2 -10
- package/utils/css/styles.js.map +3 -3
- package/utils/css/transform.cjs +1 -1
- package/utils/css/transform.cjs.map +3 -3
- package/utils/css/transform.d.ts +6 -28
- package/utils/css/transform.js.map +3 -3
- package/utils/css/transition.cjs +2 -2
- package/utils/css/transition.cjs.map +3 -3
- package/utils/css/transition.d.ts +11 -15
- package/utils/css/transition.js +1 -1
- package/utils/css/transition.js.map +3 -3
- package/utils/debounce.cjs +1 -1
- package/utils/debounce.cjs.map +3 -3
- package/utils/debounce.d.ts +3 -3
- package/utils/debounce.js.map +3 -3
- package/utils/focusTrap.cjs +4 -2
- package/utils/focusTrap.cjs.map +3 -3
- package/utils/focusTrap.d.ts +3 -4
- package/utils/focusTrap.js +3 -1
- package/utils/focusTrap.js.map +3 -3
- package/utils/has.cjs +1 -1
- package/utils/has.cjs.map +3 -3
- package/utils/has.d.ts +1 -3
- package/utils/has.js.map +3 -3
- package/utils/history.cjs +1 -1
- package/utils/history.cjs.map +3 -3
- package/utils/history.d.ts +10 -10
- package/utils/history.js.map +3 -3
- package/utils/index.cjs +2 -0
- package/utils/index.cjs.map +2 -2
- package/utils/index.d.ts +1 -0
- package/utils/index.js +2 -0
- package/utils/index.js.map +2 -2
- package/utils/is.cjs +1 -1
- package/utils/is.cjs.map +3 -3
- package/utils/is.d.ts +26 -8
- package/utils/is.js.map +3 -3
- package/utils/keyCodes.cjs +1 -1
- package/utils/keyCodes.cjs.map +2 -2
- package/utils/keyCodes.d.ts +10 -10
- package/utils/keyCodes.js.map +2 -2
- package/utils/math/clamp.cjs +1 -1
- package/utils/math/clamp.cjs.map +3 -3
- package/utils/math/clamp.js.map +3 -3
- package/utils/math/clamp01.cjs +1 -1
- package/utils/math/clamp01.cjs.map +3 -3
- package/utils/math/clamp01.js.map +3 -3
- package/utils/math/createEases.cjs +1 -1
- package/utils/math/createEases.cjs.map +3 -3
- package/utils/math/createEases.d.ts +3 -6
- package/utils/math/createEases.js.map +3 -3
- package/utils/math/damp.cjs +1 -1
- package/utils/math/damp.cjs.map +3 -3
- package/utils/math/damp.js.map +3 -3
- package/utils/math/ease.cjs +1 -1
- package/utils/math/ease.cjs.map +3 -3
- package/utils/math/ease.d.ts +21 -21
- package/utils/math/ease.js.map +3 -3
- package/utils/math/index.cjs +1 -1
- package/utils/math/index.cjs.map +1 -1
- package/utils/math/index.d.ts +10 -10
- package/utils/math/index.js.map +1 -1
- package/utils/math/inertiaFinalValue.cjs +1 -1
- package/utils/math/inertiaFinalValue.cjs.map +3 -3
- package/utils/math/inertiaFinalValue.js.map +3 -3
- package/utils/math/lerp.cjs +1 -1
- package/utils/math/lerp.cjs.map +3 -3
- package/utils/math/lerp.js.map +3 -3
- package/utils/math/map.cjs +1 -1
- package/utils/math/map.cjs.map +3 -3
- package/utils/math/map.js.map +3 -3
- package/utils/math/round.cjs +1 -1
- package/utils/math/round.cjs.map +3 -3
- package/utils/math/round.js.map +3 -3
- package/utils/memoize.cjs +6 -2
- package/utils/memoize.cjs.map +3 -3
- package/utils/memoize.d.ts +18 -28
- package/utils/memoize.js +5 -1
- package/utils/memoize.js.map +3 -3
- package/utils/nextFrame.cjs +1 -1
- package/utils/nextFrame.cjs.map +3 -3
- package/utils/nextFrame.d.ts +3 -6
- package/utils/nextFrame.js.map +3 -3
- package/utils/nextMicrotask.cjs +1 -1
- package/utils/nextMicrotask.cjs.map +3 -3
- package/utils/nextMicrotask.d.ts +1 -5
- package/utils/nextMicrotask.js.map +3 -3
- package/utils/nextTick.cjs +5 -5
- package/utils/nextTick.cjs.map +3 -3
- package/utils/nextTick.d.ts +1 -5
- package/utils/nextTick.js +4 -4
- package/utils/nextTick.js.map +3 -3
- package/utils/noop.cjs +1 -1
- package/utils/noop.cjs.map +3 -3
- package/utils/noop.d.ts +2 -5
- package/utils/noop.js.map +3 -3
- package/utils/object/autoBind.cjs +1 -1
- package/utils/object/autoBind.cjs.map +3 -3
- package/utils/object/autoBind.d.ts +5 -4
- package/utils/object/autoBind.js.map +3 -3
- package/utils/object/getAllProperties.cjs +3 -3
- package/utils/object/getAllProperties.cjs.map +3 -3
- package/utils/object/getAllProperties.d.ts +1 -1
- package/utils/object/getAllProperties.js +2 -2
- package/utils/object/getAllProperties.js.map +3 -3
- package/utils/object/index.cjs +1 -1
- package/utils/object/index.cjs.map +1 -1
- package/utils/object/index.d.ts +2 -2
- package/utils/object/index.js.map +1 -1
- package/utils/scheduler.cjs +2 -2
- package/utils/scheduler.cjs.map +3 -3
- package/utils/scheduler.d.ts +4 -13
- package/utils/scheduler.js +1 -1
- package/utils/scheduler.js.map +3 -3
- package/utils/scrollTo.cjs +1 -1
- package/utils/scrollTo.cjs.map +3 -3
- package/utils/scrollTo.d.ts +0 -3
- package/utils/scrollTo.js.map +3 -3
- package/utils/string/index.cjs +1 -1
- package/utils/string/index.cjs.map +1 -1
- package/utils/string/index.d.ts +10 -10
- package/utils/string/index.js.map +1 -1
- package/utils/string/withLeadingCharacters.cjs +1 -1
- package/utils/string/withLeadingCharacters.cjs.map +3 -3
- package/utils/string/withLeadingCharacters.js.map +3 -3
- package/utils/string/withLeadingSlash.cjs +1 -1
- package/utils/string/withLeadingSlash.cjs.map +3 -3
- package/utils/string/withLeadingSlash.js.map +3 -3
- package/utils/string/withTrailingCharacters.cjs +1 -1
- package/utils/string/withTrailingCharacters.cjs.map +3 -3
- package/utils/string/withTrailingCharacters.js.map +3 -3
- package/utils/string/withTrailingSlash.cjs +1 -1
- package/utils/string/withTrailingSlash.cjs.map +3 -3
- package/utils/string/withTrailingSlash.js.map +3 -3
- package/utils/string/withoutLeadingCharacters.cjs +1 -1
- package/utils/string/withoutLeadingCharacters.cjs.map +3 -3
- package/utils/string/withoutLeadingCharacters.js.map +3 -3
- package/utils/string/withoutLeadingCharactersRecursive.cjs +1 -1
- package/utils/string/withoutLeadingCharactersRecursive.cjs.map +3 -3
- package/utils/string/withoutLeadingCharactersRecursive.js.map +3 -3
- package/utils/string/withoutLeadingSlash.cjs +1 -1
- package/utils/string/withoutLeadingSlash.cjs.map +3 -3
- package/utils/string/withoutLeadingSlash.js.map +3 -3
- package/utils/string/withoutTrailingCharacters.cjs +1 -1
- package/utils/string/withoutTrailingCharacters.cjs.map +3 -3
- package/utils/string/withoutTrailingCharacters.js.map +3 -3
- package/utils/string/withoutTrailingCharactersRecursive.cjs +1 -1
- package/utils/string/withoutTrailingCharactersRecursive.cjs.map +3 -3
- package/utils/string/withoutTrailingCharactersRecursive.js.map +3 -3
- package/utils/string/withoutTrailingSlash.cjs +1 -1
- package/utils/string/withoutTrailingSlash.cjs.map +3 -3
- package/utils/string/withoutTrailingSlash.js.map +3 -3
- package/utils/throttle.cjs +2 -2
- package/utils/throttle.cjs.map +3 -3
- package/utils/throttle.d.ts +1 -1
- package/utils/throttle.js +1 -1
- package/utils/throttle.js.map +3 -3
- package/utils/tween.cjs +1 -1
- package/utils/tween.cjs.map +3 -3
- package/utils/tween.d.ts +16 -24
- package/utils/tween.js.map +3 -3
package/utils/css/styles.cjs.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../../../packages/js-toolkit/utils/css/styles.
|
|
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
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAAyB;AAEzB,mBAA6B;
|
|
3
|
+
"sources": ["../../../packages/js-toolkit/utils/css/styles.ts"],
|
|
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 */\nfunction setStyles(\n elementOrElements: HTMLElement | HTMLElement[] | NodeListOf<HTMLElement>,\n styles: Partial<CSSStyleDeclaration>,\n method: 'add' | 'remove' = 'add',\n) {\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 */\nexport function add(\n elementOrElements: HTMLElement | HTMLElement[] | NodeListOf<HTMLElement>,\n styles: Partial<CSSStyleDeclaration>,\n) {\n setStyles(elementOrElements, styles);\n}\n\n/**\n * Remove class names from an element.\n */\nexport function remove(\n elementOrElements: HTMLElement | HTMLElement[] | NodeListOf<HTMLElement>,\n styles: Partial<CSSStyleDeclaration>,\n) {\n setStyles(elementOrElements, styles, 'remove');\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAAyB;AAEzB,mBAA6B;AAK7B,SAAS,UACP,mBACA,QACA,SAA2B,OAC3B;AACA,MAAI,CAAC,qBAAqB,CAAC,UAAU,KAAC,oBAAS,MAAM,GAAG;AACtD;AAAA,EACF;AAEA,iCAAa,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;AAKO,SAAS,IACd,mBACA,QACA;AACA,YAAU,mBAAmB,MAAM;AACrC;AAKO,SAAS,OACd,mBACA,QACA;AACA,YAAU,mBAAmB,QAAQ,QAAQ;AAC/C;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/utils/css/styles.d.ts
CHANGED
|
@@ -1,16 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Add styles to an element.
|
|
3
|
-
*
|
|
4
|
-
* @param {HTMLElement|HTMLElement[]|NodeListOf<HTMLElement>} elementOrElements The element to update.
|
|
5
|
-
* @param {Partial<CSSStyleDeclaration>} styles A string of class names.
|
|
6
|
-
* @returns {void}
|
|
7
3
|
*/
|
|
8
|
-
export function add(elementOrElements: HTMLElement | HTMLElement[] | NodeListOf<HTMLElement>, styles: Partial<CSSStyleDeclaration>): void;
|
|
4
|
+
export declare function add(elementOrElements: HTMLElement | HTMLElement[] | NodeListOf<HTMLElement>, styles: Partial<CSSStyleDeclaration>): void;
|
|
9
5
|
/**
|
|
10
6
|
* Remove class names from an element.
|
|
11
|
-
*
|
|
12
|
-
* @param {HTMLElement|HTMLElement[]|NodeListOf<HTMLElement>} elementOrElements The element to update.
|
|
13
|
-
* @param {Partial<CSSStyleDeclaration>} styles A string of class names.
|
|
14
|
-
* @returns {void}
|
|
15
7
|
*/
|
|
16
|
-
export function remove(elementOrElements: HTMLElement | HTMLElement[] | NodeListOf<HTMLElement>, styles: Partial<CSSStyleDeclaration>): void;
|
|
8
|
+
export declare function remove(elementOrElements: HTMLElement | HTMLElement[] | NodeListOf<HTMLElement>, styles: Partial<CSSStyleDeclaration>): void;
|
package/utils/css/styles.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../../../packages/js-toolkit/utils/css/styles.
|
|
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
|
|
5
|
-
"mappings": "AAAA,SAAS,gBAAgB;AAEzB,SAAS,oBAAoB;
|
|
3
|
+
"sources": ["../../../packages/js-toolkit/utils/css/styles.ts"],
|
|
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 */\nfunction setStyles(\n elementOrElements: HTMLElement | HTMLElement[] | NodeListOf<HTMLElement>,\n styles: Partial<CSSStyleDeclaration>,\n method: 'add' | 'remove' = 'add',\n) {\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 */\nexport function add(\n elementOrElements: HTMLElement | HTMLElement[] | NodeListOf<HTMLElement>,\n styles: Partial<CSSStyleDeclaration>,\n) {\n setStyles(elementOrElements, styles);\n}\n\n/**\n * Remove class names from an element.\n */\nexport function remove(\n elementOrElements: HTMLElement | HTMLElement[] | NodeListOf<HTMLElement>,\n styles: Partial<CSSStyleDeclaration>,\n) {\n setStyles(elementOrElements, styles, 'remove');\n}\n"],
|
|
5
|
+
"mappings": "AAAA,SAAS,gBAAgB;AAEzB,SAAS,oBAAoB;AAK7B,SAAS,UACP,mBACA,QACA,SAA2B,OAC3B;AACA,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;AAKO,SAAS,IACd,mBACA,QACA;AACA,YAAU,mBAAmB,MAAM;AACrC;AAKO,SAAS,OACd,mBACA,QACA;AACA,YAAU,mBAAmB,QAAQ,QAAQ;AAC/C;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/utils/css/transform.cjs
CHANGED
|
@@ -16,7 +16,7 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
16
16
|
};
|
|
17
17
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
18
18
|
|
|
19
|
-
// packages/js-toolkit/utils/css/transform.
|
|
19
|
+
// packages/js-toolkit/utils/css/transform.ts
|
|
20
20
|
var transform_exports = {};
|
|
21
21
|
__export(transform_exports, {
|
|
22
22
|
TRANSFORM_PROPS: () => TRANSFORM_PROPS,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../../../packages/js-toolkit/utils/css/transform.
|
|
4
|
-
"sourcesContent": ["import { isDefined } from '../is.js';\n// eslint-disable-next-line import/extensions\nimport { eachElements } from './utils.js';\n\
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAA0B;AAE1B,mBAA6B;
|
|
3
|
+
"sources": ["../../../packages/js-toolkit/utils/css/transform.ts"],
|
|
4
|
+
"sourcesContent": ["import { isDefined } from '../is.js';\n// eslint-disable-next-line import/extensions\nimport { eachElements } from './utils.js';\n\nexport type TransformProps = 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}>;\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 */\nexport default function transform(\n elementOrElements: HTMLElement | HTMLElement[] | NodeListOf<HTMLElement>,\n props: TransformProps,\n): string {\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;AAmBtB,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;AAKe,SAAR,UACL,mBACA,OACQ;AACR,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
6
|
"names": []
|
|
7
7
|
}
|
package/utils/css/transform.d.ts
CHANGED
|
@@ -1,31 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
* Generate a CSS transform.
|
|
3
|
-
*
|
|
4
|
-
* @param {HTMLElement|HTMLElement[]|NodeListOf<HTMLElement>} elementOrElements
|
|
5
|
-
* @param {TransformProps} props
|
|
6
|
-
* @returns {string}
|
|
7
|
-
*/
|
|
8
|
-
export default function transform(elementOrElements: HTMLElement | HTMLElement[] | NodeListOf<HTMLElement>, props: TransformProps): string;
|
|
9
|
-
/**
|
|
10
|
-
* @typedef {Partial<{
|
|
11
|
-
* x: number;
|
|
12
|
-
* y: number;
|
|
13
|
-
* z: number;
|
|
14
|
-
* rotate: number;
|
|
15
|
-
* rotateX: number;
|
|
16
|
-
* rotateY: number;
|
|
17
|
-
* rotateZ: number;
|
|
18
|
-
* scale: number;
|
|
19
|
-
* scaleX: number;
|
|
20
|
-
* scaleY: number;
|
|
21
|
-
* scaleZ: number;
|
|
22
|
-
* skew: number;
|
|
23
|
-
* skewX: number;
|
|
24
|
-
* skewY: number;
|
|
25
|
-
* }>} TransformProps
|
|
26
|
-
*/
|
|
27
|
-
export const TRANSFORM_PROPS: string[];
|
|
28
|
-
export type TransformProps = Partial<{
|
|
1
|
+
export declare type TransformProps = Partial<{
|
|
29
2
|
x: number;
|
|
30
3
|
y: number;
|
|
31
4
|
z: number;
|
|
@@ -41,3 +14,8 @@ export type TransformProps = Partial<{
|
|
|
41
14
|
skewX: number;
|
|
42
15
|
skewY: number;
|
|
43
16
|
}>;
|
|
17
|
+
export declare const TRANSFORM_PROPS: string[];
|
|
18
|
+
/**
|
|
19
|
+
* Generate a CSS transform.
|
|
20
|
+
*/
|
|
21
|
+
export default function transform(elementOrElements: HTMLElement | HTMLElement[] | NodeListOf<HTMLElement>, props: TransformProps): string;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../../../packages/js-toolkit/utils/css/transform.
|
|
4
|
-
"sourcesContent": ["import { isDefined } from '../is.js';\n// eslint-disable-next-line import/extensions\nimport { eachElements } from './utils.js';\n\
|
|
5
|
-
"mappings": "AAAA,SAAS,iBAAiB;AAE1B,SAAS,oBAAoB;
|
|
3
|
+
"sources": ["../../../packages/js-toolkit/utils/css/transform.ts"],
|
|
4
|
+
"sourcesContent": ["import { isDefined } from '../is.js';\n// eslint-disable-next-line import/extensions\nimport { eachElements } from './utils.js';\n\nexport type TransformProps = 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}>;\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 */\nexport default function transform(\n elementOrElements: HTMLElement | HTMLElement[] | NodeListOf<HTMLElement>,\n props: TransformProps,\n): string {\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;AAmBtB,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;AAKe,SAAR,UACL,mBACA,OACQ;AACR,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
6
|
"names": []
|
|
7
7
|
}
|
package/utils/css/transition.cjs
CHANGED
|
@@ -22,7 +22,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
22
22
|
));
|
|
23
23
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
24
24
|
|
|
25
|
-
// packages/js-toolkit/utils/css/transition.
|
|
25
|
+
// packages/js-toolkit/utils/css/transition.ts
|
|
26
26
|
var transition_exports = {};
|
|
27
27
|
__export(transition_exports, {
|
|
28
28
|
default: () => transition,
|
|
@@ -76,7 +76,7 @@ async function next(element, classesOrStyles) {
|
|
|
76
76
|
return new Promise(async (resolve) => {
|
|
77
77
|
if (hasTransition) {
|
|
78
78
|
const trs = Transition.getInstance(element);
|
|
79
|
-
trs.transitionEndHandler = resolve;
|
|
79
|
+
trs.transitionEndHandler = () => resolve();
|
|
80
80
|
element.addEventListener("transitionend", trs.transitionEndHandler, false);
|
|
81
81
|
}
|
|
82
82
|
setClassesOrStyles(element, classesOrStyles.from, "remove");
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../../../packages/js-toolkit/utils/css/transition.
|
|
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\
|
|
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;
|
|
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 * @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: 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 * @returns {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 * @returns {Promise<void>} A promise resolving at the end of the transition.\n */\nexport default 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
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,23 +1,19 @@
|
|
|
1
|
+
export declare type ClassesOrStyles = string | string[] | Partial<CSSStyleDeclaration>;
|
|
2
|
+
export declare type TransitionStyles = {
|
|
3
|
+
from?: ClassesOrStyles;
|
|
4
|
+
active?: ClassesOrStyles;
|
|
5
|
+
to?: ClassesOrStyles;
|
|
6
|
+
};
|
|
1
7
|
/**
|
|
2
8
|
* Update either the classes or the styles of an element with the given method.
|
|
3
|
-
*
|
|
4
|
-
* @param {HTMLElement} element The element to update.
|
|
5
|
-
* @param {ClassesOrStyles} classesOrStyles The classes or styles to apply.
|
|
6
|
-
* @param {'add'|'remove'} method The method to use, one of `add` or `remove`.
|
|
7
9
|
*/
|
|
8
|
-
export function setClassesOrStyles(element: HTMLElement, classesOrStyles: ClassesOrStyles, method?: 'add' | 'remove'): void;
|
|
10
|
+
export declare function setClassesOrStyles(element: HTMLElement, classesOrStyles: ClassesOrStyles, method?: 'add' | 'remove'): void;
|
|
9
11
|
/**
|
|
10
12
|
* Manage CSS transition with class.
|
|
11
13
|
*
|
|
12
14
|
* @param {HTMLElement|HTMLElement[]|NodeListOf<HTMLElement>} elementOrElements The target element or elements.
|
|
13
|
-
* @param {string|TransitionStyles}
|
|
14
|
-
* @param {string}
|
|
15
|
-
* @returns {Promise<void>}
|
|
15
|
+
* @param {string|TransitionStyles} name The name of the transition or an object with the hooks classesOrStyles.
|
|
16
|
+
* @param {string} endMode Whether to remove or keep the `to` classes/styles
|
|
17
|
+
* @returns {Promise<void>} A promise resolving at the end of the transition.
|
|
16
18
|
*/
|
|
17
|
-
export default function transition(elementOrElements: HTMLElement | HTMLElement[] | NodeListOf<HTMLElement>, name: string | TransitionStyles, endMode?:
|
|
18
|
-
export type ClassesOrStyles = string | string[] | Partial<CSSStyleDeclaration>;
|
|
19
|
-
export type TransitionStyles = {
|
|
20
|
-
from?: ClassesOrStyles;
|
|
21
|
-
active?: ClassesOrStyles;
|
|
22
|
-
to?: ClassesOrStyles;
|
|
23
|
-
};
|
|
19
|
+
export default function transition(elementOrElements: HTMLElement | HTMLElement[] | NodeListOf<HTMLElement>, name: string | TransitionStyles, endMode?: 'keep' | 'remove'): Promise<void>;
|
package/utils/css/transition.js
CHANGED
|
@@ -45,7 +45,7 @@ async function next(element, classesOrStyles) {
|
|
|
45
45
|
return new Promise(async (resolve) => {
|
|
46
46
|
if (hasTransition) {
|
|
47
47
|
const trs = Transition.getInstance(element);
|
|
48
|
-
trs.transitionEndHandler = resolve;
|
|
48
|
+
trs.transitionEndHandler = () => resolve();
|
|
49
49
|
element.addEventListener("transitionend", trs.transitionEndHandler, false);
|
|
50
50
|
}
|
|
51
51
|
setClassesOrStyles(element, classesOrStyles.from, "remove");
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../../../packages/js-toolkit/utils/css/transition.
|
|
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\
|
|
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;
|
|
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 * @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: 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 * @returns {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 * @returns {Promise<void>} A promise resolving at the end of the transition.\n */\nexport default 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
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/utils/debounce.cjs
CHANGED
|
@@ -16,7 +16,7 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
16
16
|
};
|
|
17
17
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
18
18
|
|
|
19
|
-
// packages/js-toolkit/utils/debounce.
|
|
19
|
+
// packages/js-toolkit/utils/debounce.ts
|
|
20
20
|
var debounce_exports = {};
|
|
21
21
|
__export(debounce_exports, {
|
|
22
22
|
default: () => debounce
|
package/utils/debounce.cjs.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../../packages/js-toolkit/utils/debounce.
|
|
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:
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AASe,SAAR,
|
|
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 * @returns {(...args:unknown[]) => void} The debounced function.\n */\nexport default 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
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AASe,SAAR,SACL,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/debounce.d.ts
CHANGED
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
* will not be triggered. The function will be called after it stops
|
|
4
4
|
* being called for N milliseconds.
|
|
5
5
|
*
|
|
6
|
-
* @param {(...args:
|
|
6
|
+
* @param {(...args:unknown[]) => void} fn The function to call.
|
|
7
7
|
* @param {number} [delay=300] The delay in ms to wait before calling the function.
|
|
8
|
-
* @returns {(...args:
|
|
8
|
+
* @returns {(...args:unknown[]) => void} The debounced function.
|
|
9
9
|
*/
|
|
10
|
-
export default function debounce(fn: (...args:
|
|
10
|
+
export default 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
|
-
"sources": ["../../packages/js-toolkit/utils/debounce.
|
|
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:
|
|
5
|
-
"mappings": "AASe,SAAR,
|
|
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 * @returns {(...args:unknown[]) => void} The debounced function.\n */\nexport default 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
|
+
"mappings": "AASe,SAAR,SACL,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/focusTrap.cjs
CHANGED
|
@@ -22,7 +22,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
22
22
|
));
|
|
23
23
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
24
24
|
|
|
25
|
-
// packages/js-toolkit/utils/focusTrap.
|
|
25
|
+
// packages/js-toolkit/utils/focusTrap.ts
|
|
26
26
|
var focusTrap_exports = {};
|
|
27
27
|
__export(focusTrap_exports, {
|
|
28
28
|
default: () => useFocusTrap,
|
|
@@ -57,7 +57,9 @@ function trap(element, event) {
|
|
|
57
57
|
if (!focusedBefore) {
|
|
58
58
|
focusedBefore = document.activeElement;
|
|
59
59
|
}
|
|
60
|
-
const focusableChildren = Array.from(
|
|
60
|
+
const focusableChildren = Array.from(
|
|
61
|
+
element.querySelectorAll(FOCUSABLE_ELEMENTS.join(", "))
|
|
62
|
+
);
|
|
61
63
|
const focusedItemIndex = document.activeElement instanceof HTMLElement ? focusableChildren.indexOf(document.activeElement) : -1;
|
|
62
64
|
if (!focusableChildren.length) {
|
|
63
65
|
return;
|
package/utils/focusTrap.cjs.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../../packages/js-toolkit/utils/focusTrap.
|
|
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
|
|
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,
|
|
3
|
+
"sources": ["../../packages/js-toolkit/utils/focusTrap.ts"],
|
|
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: HTMLElement, event: KeyboardEvent) {\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 const focusableChildren: HTMLElement[] = Array.from(\n element.querySelectorAll(FOCUSABLE_ELEMENTS.join(', ')),\n );\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 */\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,SAAsB,OAAsB;AAC/D,MAAI,MAAM,YAAY,gBAAAA,QAAS,KAAK;AAClC;AAAA,EACF;AAGA,MAAI,CAAC,eAAe;AAClB,oBAAgB,SAAS;AAAA,EAC3B;AAEA,QAAM,oBAAmC,MAAM;AAAA,IAC7C,QAAQ,iBAAiB,mBAAmB,KAAK,IAAI,CAAC;AAAA,EACxD;AACA,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;AAKe,SAAR,eAAgC;AACrC,SAAO,EAAE,MAAM,QAAQ,kBAAkB;AAC3C;",
|
|
6
6
|
"names": ["keyCodes"]
|
|
7
7
|
}
|
package/utils/focusTrap.d.ts
CHANGED
|
@@ -1,20 +1,19 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Save the current active element.
|
|
3
3
|
*/
|
|
4
|
-
export function saveActiveElement(): void;
|
|
4
|
+
export declare function saveActiveElement(): void;
|
|
5
5
|
/**
|
|
6
6
|
* Trap tab navigation inside the given element.
|
|
7
7
|
* @param {HTMLElement} element The element in which to trap the tabulations.
|
|
8
8
|
* @param {KeyboardEvent} event The keydown or keyup event.
|
|
9
9
|
*/
|
|
10
|
-
export function trap(element: HTMLElement, event: KeyboardEvent): void;
|
|
10
|
+
export declare function trap(element: HTMLElement, event: KeyboardEvent): void;
|
|
11
11
|
/**
|
|
12
12
|
* Untrap the tab navigation.
|
|
13
13
|
*/
|
|
14
|
-
export function untrap(): void;
|
|
14
|
+
export declare function untrap(): void;
|
|
15
15
|
/**
|
|
16
16
|
* Use a trap/untrap tabs logic.
|
|
17
|
-
* @returns {{ trap: trap, untrap: untrap, saveActiveElement: saveActiveElement }}
|
|
18
17
|
*/
|
|
19
18
|
export default function useFocusTrap(): {
|
|
20
19
|
trap: typeof trap;
|
package/utils/focusTrap.js
CHANGED
|
@@ -24,7 +24,9 @@ function trap(element, event) {
|
|
|
24
24
|
if (!focusedBefore) {
|
|
25
25
|
focusedBefore = document.activeElement;
|
|
26
26
|
}
|
|
27
|
-
const focusableChildren = Array.from(
|
|
27
|
+
const focusableChildren = Array.from(
|
|
28
|
+
element.querySelectorAll(FOCUSABLE_ELEMENTS.join(", "))
|
|
29
|
+
);
|
|
28
30
|
const focusedItemIndex = document.activeElement instanceof HTMLElement ? focusableChildren.indexOf(document.activeElement) : -1;
|
|
29
31
|
if (!focusableChildren.length) {
|
|
30
32
|
return;
|
package/utils/focusTrap.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../../packages/js-toolkit/utils/focusTrap.
|
|
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
|
|
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,
|
|
3
|
+
"sources": ["../../packages/js-toolkit/utils/focusTrap.ts"],
|
|
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: HTMLElement, event: KeyboardEvent) {\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 const focusableChildren: HTMLElement[] = Array.from(\n element.querySelectorAll(FOCUSABLE_ELEMENTS.join(', ')),\n );\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 */\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,SAAsB,OAAsB;AAC/D,MAAI,MAAM,YAAY,SAAS,KAAK;AAClC;AAAA,EACF;AAGA,MAAI,CAAC,eAAe;AAClB,oBAAgB,SAAS;AAAA,EAC3B;AAEA,QAAM,oBAAmC,MAAM;AAAA,IAC7C,QAAQ,iBAAiB,mBAAmB,KAAK,IAAI,CAAC;AAAA,EACxD;AACA,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;AAKe,SAAR,eAAgC;AACrC,SAAO,EAAE,MAAM,QAAQ,kBAAkB;AAC3C;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/utils/has.cjs
CHANGED
|
@@ -16,7 +16,7 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
16
16
|
};
|
|
17
17
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
18
18
|
|
|
19
|
-
// packages/js-toolkit/utils/has.
|
|
19
|
+
// packages/js-toolkit/utils/has.ts
|
|
20
20
|
var has_exports = {};
|
|
21
21
|
__export(has_exports, {
|
|
22
22
|
hasWindow: () => hasWindow
|
package/utils/has.cjs.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../../packages/js-toolkit/utils/has.
|
|
4
|
-
"sourcesContent": ["/**\n * Test if the current context as a global `window` object available.\n
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;
|
|
3
|
+
"sources": ["../../packages/js-toolkit/utils/has.ts"],
|
|
4
|
+
"sourcesContent": ["/**\n * Test if the current context as a global `window` object available.\n */\nexport function hasWindow() {\n return typeof window !== 'undefined';\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGO,SAAS,YAAY;AAC1B,SAAO,OAAO,WAAW;AAC3B;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/utils/has.d.ts
CHANGED
package/utils/has.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../../packages/js-toolkit/utils/has.
|
|
4
|
-
"sourcesContent": ["/**\n * Test if the current context as a global `window` object available.\n
|
|
5
|
-
"mappings": "
|
|
3
|
+
"sources": ["../../packages/js-toolkit/utils/has.ts"],
|
|
4
|
+
"sourcesContent": ["/**\n * Test if the current context as a global `window` object available.\n */\nexport function hasWindow() {\n return typeof window !== 'undefined';\n}\n"],
|
|
5
|
+
"mappings": "AAGO,SAAS,YAAY;AAC1B,SAAO,OAAO,WAAW;AAC3B;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/utils/history.cjs
CHANGED
|
@@ -16,7 +16,7 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
16
16
|
};
|
|
17
17
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
18
18
|
|
|
19
|
-
// packages/js-toolkit/utils/history.
|
|
19
|
+
// packages/js-toolkit/utils/history.ts
|
|
20
20
|
var history_exports = {};
|
|
21
21
|
__export(history_exports, {
|
|
22
22
|
objectToURLSearchParams: () => objectToURLSearchParams,
|