@studiometa/js-toolkit 2.11.2 → 3.0.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Base/Base.d.ts +2 -2
- package/Base/Base.js +142 -79
- package/Base/Base.js.map +2 -2
- package/Base/features.d.ts +10 -2
- package/Base/features.js +23 -1
- package/Base/features.js.map +2 -2
- package/Base/managers/AbstractManager.d.ts +3 -3
- package/Base/managers/AbstractManager.js +21 -0
- package/Base/managers/AbstractManager.js.map +1 -1
- package/Base/managers/ActionManager.d.ts +4 -0
- package/Base/managers/ActionManager.js +10 -0
- package/Base/managers/ActionManager.js.map +7 -0
- package/Base/managers/ChildrenManager.d.ts +1 -1
- package/Base/managers/ChildrenManager.js +41 -8
- package/Base/managers/ChildrenManager.js.map +2 -2
- package/Base/managers/EventsManager.js +88 -7
- package/Base/managers/EventsManager.js.map +2 -2
- package/Base/managers/OptionsManager.js +25 -2
- package/Base/managers/OptionsManager.js.map +2 -2
- package/Base/managers/RefsManager.js +27 -6
- package/Base/managers/RefsManager.js.map +2 -2
- package/Base/managers/ResponsiveOptionsManager.js +22 -6
- package/Base/managers/ResponsiveOptionsManager.js.map +2 -2
- package/Base/managers/ServicesManager.d.ts +2 -4
- package/Base/managers/ServicesManager.js +56 -7
- package/Base/managers/ServicesManager.js.map +2 -2
- package/Base/utils.js +5 -1
- package/Base/utils.js.map +2 -2
- package/decorators/index.d.ts +0 -1
- package/decorators/index.js +0 -1
- package/decorators/index.js.map +2 -2
- package/decorators/withBreakpointManager.js +14 -4
- package/decorators/withBreakpointManager.js.map +2 -2
- package/decorators/withBreakpointObserver.js +13 -3
- package/decorators/withBreakpointObserver.js.map +2 -2
- package/decorators/withDrag.js +6 -0
- package/decorators/withDrag.js.map +1 -1
- package/decorators/withExtraConfig.js +3 -0
- package/decorators/withExtraConfig.js.map +1 -1
- package/decorators/withFreezedOptions.js +8 -0
- package/decorators/withFreezedOptions.js.map +1 -1
- package/decorators/withIntersectionObserver.js +10 -1
- package/decorators/withIntersectionObserver.js.map +2 -2
- package/decorators/withMountOnMediaQuery.js +17 -1
- package/decorators/withMountOnMediaQuery.js.map +2 -2
- package/decorators/withMountWhenInView.js +22 -1
- package/decorators/withMountWhenInView.js.map +2 -2
- package/decorators/withRelativePointer.js +6 -0
- package/decorators/withRelativePointer.js.map +1 -1
- package/decorators/withResponsiveOptions.js +3 -0
- package/decorators/withResponsiveOptions.js.map +1 -1
- package/decorators/withScrolledInView/utils.d.ts +12 -1
- package/decorators/withScrolledInView/utils.js +7 -7
- package/decorators/withScrolledInView/utils.js.map +2 -2
- package/decorators/withScrolledInView/withScrolledInView.js +13 -35
- package/decorators/withScrolledInView/withScrolledInView.js.map +2 -2
- package/helpers/createApp.d.ts +2 -1
- package/helpers/createApp.js +2 -2
- package/helpers/createApp.js.map +2 -2
- package/helpers/getDirectChildren.js.map +1 -1
- package/helpers/importOnInteraction.js +4 -4
- package/helpers/importOnInteraction.js.map +2 -2
- package/helpers/importWhenVisible.js +2 -1
- package/helpers/importWhenVisible.js.map +2 -2
- package/package.json +2 -10
- package/services/drag.js +8 -8
- package/services/drag.js.map +2 -2
- package/services/index.d.ts +1 -1
- package/services/index.js.map +2 -2
- package/services/key.js +2 -2
- package/services/key.js.map +2 -2
- package/services/load.js +3 -0
- package/services/load.js.map +1 -1
- package/services/pointer.d.ts +1 -1
- package/services/pointer.js +7 -7
- package/services/pointer.js.map +2 -2
- package/services/raf.js +4 -6
- package/services/raf.js.map +2 -2
- package/services/resize.d.ts +7 -6
- package/services/resize.js +19 -26
- package/services/resize.js.map +2 -2
- package/services/scroll.js +8 -8
- package/services/scroll.js.map +2 -2
- package/services/service.js +2 -2
- package/services/service.js.map +2 -2
- package/utils/Queue.js +30 -0
- package/utils/Queue.js.map +1 -1
- package/utils/SmartQueue.d.ts +1 -1
- package/utils/SmartQueue.js +13 -1
- package/utils/SmartQueue.js.map +2 -2
- package/utils/collide/collidePointRect.js +4 -1
- package/utils/collide/collidePointRect.js.map +1 -1
- package/utils/collide/collideRectRect.js +4 -1
- package/utils/collide/collideRectRect.js.map +1 -1
- package/utils/css/animate.d.ts +33 -15
- package/utils/css/animate.js +80 -34
- package/utils/css/animate.js.map +2 -2
- package/utils/css/classes.js +2 -3
- package/utils/css/classes.js.map +2 -2
- package/utils/css/getOffsetSizes.js +2 -2
- package/utils/css/getOffsetSizes.js.map +1 -1
- package/utils/css/index.d.ts +2 -1
- package/utils/css/index.js +4 -4
- package/utils/css/index.js.map +2 -2
- package/utils/css/matrix.d.ts +1 -1
- package/utils/css/matrix.js.map +2 -2
- package/utils/css/styles.js +2 -2
- package/utils/css/styles.js.map +2 -2
- package/utils/css/transform.d.ts +1 -1
- package/utils/css/transform.js +1 -1
- package/utils/css/transform.js.map +2 -2
- package/utils/css/transition.js +15 -0
- package/utils/css/transition.js.map +1 -1
- package/utils/css/utils.d.ts +1 -1
- package/utils/css/utils.js +1 -1
- package/utils/css/utils.js.map +2 -2
- package/utils/history.js +6 -5
- package/utils/history.js.map +2 -2
- package/utils/index.d.ts +5 -4
- package/utils/index.js +16 -16
- package/utils/index.js.map +2 -2
- package/utils/is.d.ts +12 -0
- package/utils/is.js +17 -0
- package/utils/is.js.map +2 -2
- package/utils/math/ease.d.ts +1 -0
- package/utils/math/ease.js +2 -0
- package/utils/math/ease.js.map +2 -2
- package/utils/math/index.d.ts +4 -3
- package/utils/math/index.js +5 -3
- package/utils/math/index.js.map +2 -2
- package/utils/math/mean.d.ts +1 -0
- package/utils/math/mean.js +17 -0
- package/utils/math/mean.js.map +7 -0
- package/utils/nextFrame.d.ts +4 -22
- package/utils/nextFrame.js +3 -10
- package/utils/nextFrame.js.map +2 -2
- package/utils/nextMicrotask.d.ts +4 -1
- package/utils/nextMicrotask.js +3 -3
- package/utils/nextMicrotask.js.map +2 -2
- package/utils/nextTick.d.ts +4 -1
- package/utils/nextTick.js +3 -3
- package/utils/nextTick.js.map +2 -2
- package/utils/random.d.ts +15 -0
- package/utils/random.js +15 -0
- package/utils/random.js.map +7 -0
- package/utils/scheduler.js +4 -4
- package/utils/scheduler.js.map +2 -2
- package/utils/scrollTo.d.ts +30 -6
- package/utils/scrollTo.js +97 -43
- package/utils/scrollTo.js.map +2 -2
- package/utils/string/endsWith.d.ts +8 -0
- package/utils/string/endsWith.js +13 -0
- package/utils/string/endsWith.js.map +7 -0
- package/utils/string/index.d.ts +2 -0
- package/utils/string/index.js +2 -0
- package/utils/string/index.js.map +2 -2
- package/utils/string/startsWith.d.ts +8 -0
- package/utils/string/startsWith.js +13 -0
- package/utils/string/startsWith.js.map +7 -0
- package/utils/string/withLeadingCharacters.js.map +1 -1
- package/utils/string/withTrailingCharacters.js.map +1 -1
- package/utils/string/withoutLeadingCharacters.js.map +1 -1
- package/utils/string/withoutLeadingCharactersRecursive.js.map +1 -1
- package/utils/string/withoutTrailingCharacters.js.map +1 -1
- package/utils/string/withoutTrailingCharactersRecursive.js.map +1 -1
- package/utils/{focusTrap.d.ts → trapFocus.d.ts} +2 -10
- package/utils/{focusTrap.js → trapFocus.js} +5 -9
- package/utils/trapFocus.js.map +7 -0
- package/utils/tween.d.ts +59 -10
- package/utils/tween.js +24 -18
- package/utils/tween.js.map +2 -2
- package/Base/Base.cjs +0 -325
- package/Base/Base.cjs.map +0 -7
- package/Base/features.cjs +0 -27
- package/Base/features.cjs.map +0 -7
- package/Base/index.cjs +0 -21
- package/Base/index.cjs.map +0 -7
- package/Base/managers/AbstractManager.cjs +0 -57
- package/Base/managers/AbstractManager.cjs.map +0 -7
- package/Base/managers/ChildrenManager.cjs +0 -123
- package/Base/managers/ChildrenManager.cjs.map +0 -7
- package/Base/managers/EventsManager.cjs +0 -220
- package/Base/managers/EventsManager.cjs.map +0 -7
- package/Base/managers/OptionsManager.cjs +0 -171
- package/Base/managers/OptionsManager.cjs.map +0 -7
- package/Base/managers/RefsManager.cjs +0 -104
- package/Base/managers/RefsManager.cjs.map +0 -7
- package/Base/managers/ResponsiveOptionsManager.cjs +0 -63
- package/Base/managers/ResponsiveOptionsManager.cjs.map +0 -7
- package/Base/managers/ServicesManager.cjs +0 -111
- package/Base/managers/ServicesManager.cjs.map +0 -7
- package/Base/managers/index.cjs +0 -39
- package/Base/managers/index.cjs.map +0 -7
- package/Base/types.cjs +0 -19
- package/Base/types.cjs.map +0 -7
- package/Base/utils.cjs +0 -91
- package/Base/utils.cjs.map +0 -7
- package/decorators/index.cjs +0 -33
- package/decorators/index.cjs.map +0 -7
- package/decorators/withBreakpointManager.cjs +0 -92
- package/decorators/withBreakpointManager.cjs.map +0 -7
- package/decorators/withBreakpointObserver.cjs +0 -118
- package/decorators/withBreakpointObserver.cjs.map +0 -7
- package/decorators/withDrag.cjs +0 -50
- package/decorators/withDrag.cjs.map +0 -7
- package/decorators/withExtraConfig.cjs +0 -43
- package/decorators/withExtraConfig.cjs.map +0 -7
- package/decorators/withFreezedOptions.cjs +0 -42
- package/decorators/withFreezedOptions.cjs.map +0 -7
- package/decorators/withIntersectionObserver.cjs +0 -62
- package/decorators/withIntersectionObserver.cjs.map +0 -7
- package/decorators/withMountOnMediaQuery.cjs +0 -70
- package/decorators/withMountOnMediaQuery.cjs.map +0 -7
- package/decorators/withMountWhenInView.cjs +0 -71
- package/decorators/withMountWhenInView.cjs.map +0 -7
- package/decorators/withMountWhenPrefersMotion.cjs +0 -30
- package/decorators/withMountWhenPrefersMotion.cjs.map +0 -7
- package/decorators/withRelativePointer.cjs +0 -50
- package/decorators/withRelativePointer.cjs.map +0 -7
- package/decorators/withResponsiveOptions.cjs +0 -38
- package/decorators/withResponsiveOptions.cjs.map +0 -7
- package/decorators/withScrolledInView/index.cjs +0 -22
- package/decorators/withScrolledInView/index.cjs.map +0 -7
- package/decorators/withScrolledInView/types.cjs +0 -19
- package/decorators/withScrolledInView/types.cjs.map +0 -7
- package/decorators/withScrolledInView/utils.cjs +0 -99
- package/decorators/withScrolledInView/utils.cjs.map +0 -7
- package/decorators/withScrolledInView/withScrolledInView.cjs +0 -216
- package/decorators/withScrolledInView/withScrolledInView.cjs.map +0 -7
- package/decorators/withVue2.cjs +0 -65
- package/decorators/withVue2.cjs.map +0 -7
- package/decorators/withVue2.d.ts +0 -16
- package/decorators/withVue2.js +0 -43
- package/decorators/withVue2.js.map +0 -7
- package/helpers/createApp.cjs +0 -58
- package/helpers/createApp.cjs.map +0 -7
- package/helpers/getClosestParent.cjs +0 -41
- package/helpers/getClosestParent.cjs.map +0 -7
- package/helpers/getDirectChildren.cjs +0 -47
- package/helpers/getDirectChildren.cjs.map +0 -7
- package/helpers/getInstanceFromElement.cjs +0 -32
- package/helpers/getInstanceFromElement.cjs.map +0 -7
- package/helpers/importOnInteraction.cjs +0 -48
- package/helpers/importOnInteraction.cjs.map +0 -7
- package/helpers/importOnMediaQuery.cjs +0 -44
- package/helpers/importOnMediaQuery.cjs.map +0 -7
- package/helpers/importWhenIdle.cjs +0 -46
- package/helpers/importWhenIdle.cjs.map +0 -7
- package/helpers/importWhenPrefersMotion.cjs +0 -36
- package/helpers/importWhenPrefersMotion.cjs.map +0 -7
- package/helpers/importWhenVisible.cjs +0 -43
- package/helpers/importWhenVisible.cjs.map +0 -7
- package/helpers/index.cjs +0 -49
- package/helpers/index.cjs.map +0 -7
- package/helpers/utils.cjs +0 -37
- package/helpers/utils.cjs.map +0 -7
- package/index.cjs +0 -31
- package/index.cjs.map +0 -7
- package/services/drag.cjs +0 -227
- package/services/drag.cjs.map +0 -7
- package/services/index.cjs +0 -47
- package/services/index.cjs.map +0 -7
- package/services/key.cjs +0 -93
- package/services/key.cjs.map +0 -7
- package/services/load.cjs +0 -57
- package/services/load.cjs.map +0 -7
- package/services/pointer.cjs +0 -145
- package/services/pointer.cjs.map +0 -7
- package/services/raf.cjs +0 -80
- package/services/raf.cjs.map +0 -7
- package/services/resize.cjs +0 -103
- package/services/resize.cjs.map +0 -7
- package/services/scroll.cjs +0 -115
- package/services/scroll.cjs.map +0 -7
- package/services/service.cjs +0 -69
- package/services/service.cjs.map +0 -7
- package/utils/Queue.cjs +0 -63
- package/utils/Queue.cjs.map +0 -7
- package/utils/SmartQueue.cjs +0 -57
- package/utils/SmartQueue.cjs.map +0 -7
- package/utils/collide/boundingRectToCircle.cjs +0 -36
- package/utils/collide/boundingRectToCircle.cjs.map +0 -7
- package/utils/collide/collideCircleCircle.cjs +0 -35
- package/utils/collide/collideCircleCircle.cjs.map +0 -7
- package/utils/collide/collideCircleRect.cjs +0 -47
- package/utils/collide/collideCircleRect.cjs.map +0 -7
- package/utils/collide/collidePointCircle.cjs +0 -32
- package/utils/collide/collidePointCircle.cjs.map +0 -7
- package/utils/collide/collidePointRect.cjs +0 -29
- package/utils/collide/collidePointRect.cjs.map +0 -7
- package/utils/collide/collideRectRect.cjs +0 -29
- package/utils/collide/collideRectRect.cjs.map +0 -7
- package/utils/collide/index.cjs +0 -43
- package/utils/collide/index.cjs.map +0 -7
- package/utils/css/animate.cjs +0 -193
- package/utils/css/animate.cjs.map +0 -7
- package/utils/css/classes.cjs +0 -52
- package/utils/css/classes.cjs.map +0 -7
- package/utils/css/getOffsetSizes.cjs +0 -48
- package/utils/css/getOffsetSizes.cjs.map +0 -7
- package/utils/css/index.cjs +0 -48
- package/utils/css/index.cjs.map +0 -7
- package/utils/css/matrix.cjs +0 -30
- package/utils/css/matrix.cjs.map +0 -7
- package/utils/css/styles.cjs +0 -45
- package/utils/css/styles.cjs.map +0 -7
- package/utils/css/transform.cjs +0 -91
- package/utils/css/transform.cjs.map +0 -7
- package/utils/css/transition.cjs +0 -126
- package/utils/css/transition.cjs.map +0 -7
- package/utils/css/utils.cjs +0 -32
- package/utils/css/utils.cjs.map +0 -7
- package/utils/debounce.cjs +0 -35
- package/utils/debounce.cjs.map +0 -7
- package/utils/dom/ancestors.cjs +0 -37
- package/utils/dom/ancestors.cjs.map +0 -7
- package/utils/dom/index.cjs +0 -21
- package/utils/dom/index.cjs.map +0 -7
- package/utils/focusTrap.cjs +0 -89
- package/utils/focusTrap.cjs.map +0 -7
- package/utils/focusTrap.js.map +0 -7
- package/utils/getComponentResolver.cjs +0 -38
- package/utils/getComponentResolver.cjs.map +0 -7
- package/utils/has.cjs +0 -29
- package/utils/has.cjs.map +0 -7
- package/utils/history.cjs +0 -91
- package/utils/history.cjs.map +0 -7
- package/utils/index.cjs +0 -72
- package/utils/index.cjs.map +0 -7
- package/utils/is.cjs +0 -41
- package/utils/is.cjs.map +0 -7
- package/utils/keyCodes.cjs +0 -36
- package/utils/keyCodes.cjs.map +0 -7
- package/utils/math/clamp.cjs +0 -29
- package/utils/math/clamp.cjs.map +0 -7
- package/utils/math/clamp01.cjs +0 -36
- package/utils/math/clamp01.cjs.map +0 -7
- package/utils/math/createEases.cjs +0 -33
- package/utils/math/createEases.cjs.map +0 -7
- package/utils/math/damp.cjs +0 -29
- package/utils/math/damp.cjs.map +0 -7
- package/utils/math/ease.cjs +0 -82
- package/utils/math/ease.cjs.map +0 -7
- package/utils/math/index.cjs +0 -50
- package/utils/math/index.cjs.map +0 -7
- package/utils/math/inertiaFinalValue.cjs +0 -43
- package/utils/math/inertiaFinalValue.cjs.map +0 -7
- package/utils/math/lerp.cjs +0 -29
- package/utils/math/lerp.cjs.map +0 -7
- package/utils/math/map.cjs +0 -29
- package/utils/math/map.cjs.map +0 -7
- package/utils/math/round.cjs +0 -29
- package/utils/math/round.cjs.map +0 -7
- package/utils/memoize.cjs +0 -48
- package/utils/memoize.cjs.map +0 -7
- package/utils/nextFrame.cjs +0 -41
- package/utils/nextFrame.cjs.map +0 -7
- package/utils/nextMicrotask.cjs +0 -30
- package/utils/nextMicrotask.cjs.map +0 -7
- package/utils/nextTick.cjs +0 -31
- package/utils/nextTick.cjs.map +0 -7
- package/utils/noop.cjs +0 -32
- package/utils/noop.cjs.map +0 -7
- package/utils/object/autoBind.cjs +0 -54
- package/utils/object/autoBind.cjs.map +0 -7
- package/utils/object/autoBind.d.ts +0 -14
- package/utils/object/autoBind.js +0 -26
- package/utils/object/autoBind.js.map +0 -7
- package/utils/object/getAllProperties.cjs +0 -39
- package/utils/object/getAllProperties.cjs.map +0 -7
- package/utils/object/index.cjs +0 -35
- package/utils/object/index.cjs.map +0 -7
- package/utils/object/index.d.ts +0 -2
- package/utils/object/index.js +0 -7
- package/utils/object/index.js.map +0 -7
- package/utils/scheduler.cjs +0 -75
- package/utils/scheduler.cjs.map +0 -7
- package/utils/scrollTo.cjs +0 -84
- package/utils/scrollTo.cjs.map +0 -7
- package/utils/string/index.cjs +0 -51
- package/utils/string/index.cjs.map +0 -7
- package/utils/string/withLeadingCharacters.cjs +0 -36
- package/utils/string/withLeadingCharacters.cjs.map +0 -7
- package/utils/string/withLeadingSlash.cjs +0 -36
- package/utils/string/withLeadingSlash.cjs.map +0 -7
- package/utils/string/withTrailingCharacters.cjs +0 -36
- package/utils/string/withTrailingCharacters.cjs.map +0 -7
- package/utils/string/withTrailingSlash.cjs +0 -36
- package/utils/string/withTrailingSlash.cjs.map +0 -7
- package/utils/string/withoutLeadingCharacters.cjs +0 -29
- package/utils/string/withoutLeadingCharacters.cjs.map +0 -7
- package/utils/string/withoutLeadingCharactersRecursive.cjs +0 -41
- package/utils/string/withoutLeadingCharactersRecursive.cjs.map +0 -7
- package/utils/string/withoutLeadingSlash.cjs +0 -36
- package/utils/string/withoutLeadingSlash.cjs.map +0 -7
- package/utils/string/withoutTrailingCharacters.cjs +0 -29
- package/utils/string/withoutTrailingCharacters.cjs.map +0 -7
- package/utils/string/withoutTrailingCharactersRecursive.cjs +0 -41
- package/utils/string/withoutTrailingCharactersRecursive.cjs.map +0 -7
- package/utils/string/withoutTrailingSlash.cjs +0 -36
- package/utils/string/withoutTrailingSlash.cjs.map +0 -7
- package/utils/throttle.cjs +0 -37
- package/utils/throttle.cjs.map +0 -7
- package/utils/tween.cjs +0 -118
- package/utils/tween.cjs.map +0 -7
- package/utils/wait.cjs +0 -31
- package/utils/wait.cjs.map +0 -7
package/utils/nextFrame.d.ts
CHANGED
|
@@ -1,25 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
* RequestAnimation frame polyfill.
|
|
3
|
-
*
|
|
4
|
-
* @see https://github.com/vuejs/vue/blob/ec78fc8b6d03e59da669be1adf4b4b5abf670a34/dist/vue.runtime.esm.js#L7355
|
|
5
|
-
*/
|
|
6
|
-
export declare function getRaf(): (handler: Function) => number;
|
|
7
|
-
/**
|
|
8
|
-
* Get a function to cancel the method returned by `getRaf()`.
|
|
9
|
-
*/
|
|
10
|
-
export declare function getCancelRaf(): (id: number) => void;
|
|
1
|
+
type Callback = (time?: DOMHighResTimeStamp) => any;
|
|
11
2
|
/**
|
|
12
3
|
* Wait for the next frame to execute a function.
|
|
13
|
-
*
|
|
14
|
-
* @template {() => any} T
|
|
15
|
-
* @param {T} [fn] The callback function to execute.
|
|
16
|
-
* @returns {Promise<T extends Function ? ReturnType<T> : undefined>} A Promise resolving when the next frame is reached.
|
|
17
|
-
* @example
|
|
18
|
-
* ```js
|
|
19
|
-
* nextFrame(() => console.log('hello world'));
|
|
20
|
-
*
|
|
21
|
-
* await nextFrame();
|
|
22
|
-
* console.log('hello world');
|
|
23
|
-
* ```
|
|
24
4
|
*/
|
|
25
|
-
export declare function nextFrame
|
|
5
|
+
export declare function nextFrame(): Promise<DOMHighResTimeStamp>;
|
|
6
|
+
export declare function nextFrame<T extends Callback>(callback?: T): Promise<ReturnType<T>>;
|
|
7
|
+
export {};
|
package/utils/nextFrame.js
CHANGED
|
@@ -1,19 +1,12 @@
|
|
|
1
1
|
import { isFunction } from "./is.js";
|
|
2
2
|
import { hasWindow } from "./has.js";
|
|
3
|
-
function
|
|
4
|
-
|
|
5
|
-
}
|
|
6
|
-
function getCancelRaf() {
|
|
7
|
-
return hasWindow() && window.cancelAnimationFrame ? window.cancelAnimationFrame.bind(window) : clearTimeout;
|
|
8
|
-
}
|
|
9
|
-
function nextFrame(fn) {
|
|
3
|
+
function nextFrame(callback) {
|
|
4
|
+
const fn = hasWindow() ? window?.requestAnimationFrame ?? setTimeout : setTimeout;
|
|
10
5
|
return new Promise((resolve) => {
|
|
11
|
-
|
|
6
|
+
fn((time) => resolve(isFunction(callback) ? callback(time) : time));
|
|
12
7
|
});
|
|
13
8
|
}
|
|
14
9
|
export {
|
|
15
|
-
getCancelRaf,
|
|
16
|
-
getRaf,
|
|
17
10
|
nextFrame
|
|
18
11
|
};
|
|
19
12
|
//# sourceMappingURL=nextFrame.js.map
|
package/utils/nextFrame.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../packages/js-toolkit/utils/nextFrame.ts"],
|
|
4
|
-
"sourcesContent": ["import { isFunction } from './is.js';\nimport { hasWindow } from './has.js';\n\n
|
|
5
|
-
"mappings": "AAAA,SAAS,kBAAkB;AAC3B,SAAS,iBAAiB;
|
|
4
|
+
"sourcesContent": ["import { isFunction } from './is.js';\nimport { hasWindow } from './has.js';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype Callback = (time?: DOMHighResTimeStamp) => any;\n\n/**\n * Wait for the next frame to execute a function.\n */\nexport function nextFrame(): Promise<DOMHighResTimeStamp>;\nexport function nextFrame<T extends Callback>(callback?: T): Promise<ReturnType<T>>;\nexport function nextFrame<T extends Callback>(callback?: T): Promise<ReturnType<T>> {\n const fn = hasWindow() ? window?.requestAnimationFrame ?? setTimeout : setTimeout;\n return new Promise((resolve) => {\n fn((time) => resolve(isFunction(callback) ? callback(time) : time));\n });\n}\n"],
|
|
5
|
+
"mappings": "AAAA,SAAS,kBAAkB;AAC3B,SAAS,iBAAiB;AAUnB,SAAS,UAA8B,UAAsC;AAClF,QAAM,KAAK,UAAU,IAAI,QAAQ,yBAAyB,aAAa;AACvE,SAAO,IAAI,QAAQ,CAAC,YAAY;AAC9B,OAAG,CAAC,SAAS,QAAQ,WAAW,QAAQ,IAAI,SAAS,IAAI,IAAI,IAAI,CAAC;AAAA,EACpE,CAAC;AACH;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/utils/nextMicrotask.d.ts
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
|
+
type Callback = (...args: any[]) => any;
|
|
1
2
|
/**
|
|
2
3
|
* Wait for the next microtask.
|
|
3
4
|
*/
|
|
4
|
-
export
|
|
5
|
+
export declare function nextMicrotask(): Promise<void>;
|
|
6
|
+
export declare function nextMicrotask<T extends Callback>(callback?: T): Promise<ReturnType<T>>;
|
|
7
|
+
export {};
|
package/utils/nextMicrotask.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { isFunction } from "./is.js";
|
|
2
|
-
async function nextMicrotask(
|
|
3
|
-
return Promise.resolve().then(() => isFunction(
|
|
2
|
+
async function nextMicrotask(callback) {
|
|
3
|
+
return Promise.resolve().then(() => isFunction(callback) && callback());
|
|
4
4
|
}
|
|
5
5
|
export {
|
|
6
|
-
nextMicrotask
|
|
6
|
+
nextMicrotask
|
|
7
7
|
};
|
|
8
8
|
//# sourceMappingURL=nextMicrotask.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../packages/js-toolkit/utils/nextMicrotask.ts"],
|
|
4
|
-
"sourcesContent": ["import { isFunction } from './is.js';\n\n/**\n * Wait for the next microtask.\n */\nexport
|
|
5
|
-
"mappings": "AAAA,SAAS,kBAAkB;
|
|
4
|
+
"sourcesContent": ["import { isFunction } from './is.js';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype Callback = (...args: any[]) => any;\n\n/**\n * Wait for the next microtask.\n */\nexport async function nextMicrotask(): Promise<void>;\nexport async function nextMicrotask<T extends Callback>(callback?: T): Promise<ReturnType<T>>;\nexport async function nextMicrotask<T extends Callback>(callback?: T): Promise<ReturnType<T>> {\n return Promise.resolve().then(() => isFunction(callback) && callback());\n}\n"],
|
|
5
|
+
"mappings": "AAAA,SAAS,kBAAkB;AAU3B,eAAsB,cAAkC,UAAsC;AAC5F,SAAO,QAAQ,QAAQ,EAAE,KAAK,MAAM,WAAW,QAAQ,KAAK,SAAS,CAAC;AACxE;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/utils/nextTick.d.ts
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
|
+
type Callback = (...args: any[]) => any;
|
|
1
2
|
/**
|
|
2
3
|
* Wait for the next tick.
|
|
3
4
|
*/
|
|
4
|
-
export
|
|
5
|
+
export declare function nextTick(): Promise<void>;
|
|
6
|
+
export declare function nextTick<T extends Callback>(callback?: T): Promise<ReturnType<T>>;
|
|
7
|
+
export {};
|
package/utils/nextTick.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { isFunction } from "./is.js";
|
|
2
2
|
import { wait } from "./wait.js";
|
|
3
|
-
async function nextTick(
|
|
4
|
-
return wait().then(isFunction(
|
|
3
|
+
async function nextTick(callback) {
|
|
4
|
+
return wait().then(isFunction(callback) && callback);
|
|
5
5
|
}
|
|
6
6
|
export {
|
|
7
|
-
nextTick
|
|
7
|
+
nextTick
|
|
8
8
|
};
|
|
9
9
|
//# sourceMappingURL=nextTick.js.map
|
package/utils/nextTick.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../packages/js-toolkit/utils/nextTick.ts"],
|
|
4
|
-
"sourcesContent": ["import { isFunction } from './is.js';\nimport { wait } from './wait.js';\n\n
|
|
5
|
-
"mappings": "AAAA,SAAS,kBAAkB;AAC3B,SAAS,YAAY;
|
|
4
|
+
"sourcesContent": ["import { isFunction } from './is.js';\nimport { wait } from './wait.js';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype Callback = (...args: any[]) => any;\n\n/**\n * Wait for the next tick.\n */\nexport async function nextTick(): Promise<void>;\nexport async function nextTick<T extends Callback>(callback?: T): Promise<ReturnType<T>>;\nexport async function nextTick<T extends Callback>(callback?: T): Promise<ReturnType<T>> {\n return wait().then(isFunction(callback) && (callback as ReturnType<T>));\n}\n"],
|
|
5
|
+
"mappings": "AAAA,SAAS,kBAAkB;AAC3B,SAAS,YAAY;AAUrB,eAAsB,SAA6B,UAAsC;AACvF,SAAO,KAAK,EAAE,KAAK,WAAW,QAAQ,KAAM,QAA0B;AACxE;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Get a random integer between bounds
|
|
3
|
+
*
|
|
4
|
+
* @param {number} a Lower bound
|
|
5
|
+
* @param {number} b Upper bound
|
|
6
|
+
* @returns {number}
|
|
7
|
+
*/
|
|
8
|
+
export declare function randomInt(a: number, b?: number): number;
|
|
9
|
+
/**
|
|
10
|
+
* Get a random item of an array or a random character of a string
|
|
11
|
+
*
|
|
12
|
+
* @param {T[] | string} items Array or string
|
|
13
|
+
* @returns {T | undefined}
|
|
14
|
+
*/
|
|
15
|
+
export declare function randomItem<T>(items: T[] | string): T | string | undefined;
|
package/utils/random.js
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { isArray, isString } from "./is";
|
|
2
|
+
function randomInt(a, b = 0) {
|
|
3
|
+
return Math.floor(Math.random() * (a - b + 1)) + b;
|
|
4
|
+
}
|
|
5
|
+
function randomItem(items) {
|
|
6
|
+
if (!isArray(items) && !isString(items)) {
|
|
7
|
+
throw new Error("randomItem() expects an array or a string as argument.");
|
|
8
|
+
}
|
|
9
|
+
return items.length > 0 ? items[randomInt(items.length - 1)] : void 0;
|
|
10
|
+
}
|
|
11
|
+
export {
|
|
12
|
+
randomInt,
|
|
13
|
+
randomItem
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=random.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../packages/js-toolkit/utils/random.ts"],
|
|
4
|
+
"sourcesContent": ["import { isArray, isString } from './is';\n\n/**\n * Get a random integer between bounds\n *\n * @param {number} a Lower bound\n * @param {number} b Upper bound\n * @returns {number}\n */\nexport function randomInt(a: number, b = 0): number {\n return Math.floor(Math.random() * (a - b + 1)) + b;\n}\n\n/**\n * Get a random item of an array or a random character of a string\n *\n * @param {T[] | string} items Array or string\n * @returns {T | undefined}\n */\nexport function randomItem<T>(items: T[] | string): T | string | undefined {\n if (!isArray(items) && !isString(items)) {\n throw new Error('randomItem() expects an array or a string as argument.');\n }\n return items.length > 0 ? items[randomInt(items.length - 1)] : undefined;\n}\n"],
|
|
5
|
+
"mappings": "AAAA,SAAS,SAAS,gBAAgB;AAS3B,SAAS,UAAU,GAAW,IAAI,GAAW;AAClD,SAAO,KAAK,MAAM,KAAK,OAAO,KAAK,IAAI,IAAI,EAAE,IAAI;AACnD;AAQO,SAAS,WAAc,OAA6C;AACzE,MAAI,CAAC,QAAQ,KAAK,KAAK,CAAC,SAAS,KAAK,GAAG;AACvC,UAAM,IAAI,MAAM,wDAAwD;AAAA,EAC1E;AACA,SAAO,MAAM,SAAS,IAAI,MAAM,UAAU,MAAM,SAAS,CAAC,CAAC,IAAI;AACjE;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
package/utils/scheduler.js
CHANGED
|
@@ -10,9 +10,9 @@ function getScheduler(steps) {
|
|
|
10
10
|
}
|
|
11
11
|
}
|
|
12
12
|
function flush() {
|
|
13
|
-
|
|
13
|
+
for (const step of steps) {
|
|
14
14
|
run(stepsFns[step]);
|
|
15
|
-
}
|
|
15
|
+
}
|
|
16
16
|
isScheduled = false;
|
|
17
17
|
if (steps.reduce((length, step) => length + stepsFns[step].length, 0) > 0) {
|
|
18
18
|
scheduleFlush();
|
|
@@ -25,13 +25,13 @@ function getScheduler(steps) {
|
|
|
25
25
|
isScheduled = true;
|
|
26
26
|
resolvedPromise.then(flush);
|
|
27
27
|
}
|
|
28
|
-
|
|
28
|
+
for (const step of steps) {
|
|
29
29
|
stepsFns[step] = [];
|
|
30
30
|
api[step] = function add(fn) {
|
|
31
31
|
stepsFns[step].push(fn);
|
|
32
32
|
scheduleFlush();
|
|
33
33
|
};
|
|
34
|
-
}
|
|
34
|
+
}
|
|
35
35
|
return api;
|
|
36
36
|
}
|
|
37
37
|
const instances = /* @__PURE__ */ new Map();
|
package/utils/scheduler.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../packages/js-toolkit/utils/scheduler.ts"],
|
|
4
|
-
"sourcesContent": ["/**\n * Generate a scheduler.\n */\nfunction getScheduler<T extends string>(steps: T[]): Record<T, (fn: () => unknown) => void> {\n const stepsFns = {} as Record<T, Array<() => void>>;\n const api = {} as Record<T, (fn: () => void) => void>;\n\n let isScheduled = false;\n\n const resolvedPromise = Promise.resolve();\n\n /**\n * Execute the given list of tasks.\n */\n function run(tasks: Array<() => void>) {\n let task;\n // eslint-disable-next-line no-cond-assign\n while ((task = tasks.shift())) {\n task();\n }\n }\n\n /**\n * Flush registered tasks and schedule the next run if needed.\n */\n function flush() {\n
|
|
5
|
-
"mappings": "AAGA,SAAS,aAA+B,OAAoD;AAC1F,QAAM,WAAW,CAAC;AAClB,QAAM,MAAM,CAAC;AAEb,MAAI,cAAc;AAElB,QAAM,kBAAkB,QAAQ,QAAQ;AAKxC,WAAS,IAAI,OAA0B;AACrC,QAAI;AAEJ,WAAQ,OAAO,MAAM,MAAM,GAAI;AAC7B,WAAK;AAAA,IACP;AAAA,EACF;AAKA,WAAS,QAAQ;AACf,
|
|
4
|
+
"sourcesContent": ["/**\n * Generate a scheduler.\n */\nfunction getScheduler<T extends string>(steps: T[]): Record<T, (fn: () => unknown) => void> {\n const stepsFns = {} as Record<T, Array<() => void>>;\n const api = {} as Record<T, (fn: () => void) => void>;\n\n let isScheduled = false;\n\n const resolvedPromise = Promise.resolve();\n\n /**\n * Execute the given list of tasks.\n */\n function run(tasks: Array<() => void>) {\n let task;\n // eslint-disable-next-line no-cond-assign\n while ((task = tasks.shift())) {\n task();\n }\n }\n\n /**\n * Flush registered tasks and schedule the next run if needed.\n */\n function flush() {\n for (const step of steps) {\n run(stepsFns[step]);\n }\n isScheduled = false;\n\n if (steps.reduce((length, step) => length + stepsFns[step].length, 0) > 0) {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define, no-use-before-define\n scheduleFlush();\n }\n }\n\n /**\n * Schedule the next flush of tasks.\n */\n function scheduleFlush() {\n if (isScheduled) {\n return;\n }\n\n isScheduled = true;\n resolvedPromise.then(flush);\n }\n\n for (const step of steps) {\n stepsFns[step] = [];\n api[step] = function add(fn) {\n stepsFns[step].push(fn);\n scheduleFlush();\n };\n }\n\n return api;\n}\n\nconst instances = new Map();\n\nconst domSchedulerSteps = ['read', 'write', 'afterWrite'];\n\n/**\n * Use a scheduler based on the given steps.\n */\nexport function useScheduler<T extends string>(\n steps: T[] = domSchedulerSteps as T[],\n): ReturnType<typeof getScheduler<T>> {\n const key = steps.join('-');\n\n if (instances.has(key)) {\n return instances.get(key);\n }\n\n const scheduler = getScheduler(steps);\n instances.set(key, scheduler);\n\n return scheduler;\n}\n\nexport const domScheduler = useScheduler(domSchedulerSteps as ['read', 'write', 'afterWrite']);\n"],
|
|
5
|
+
"mappings": "AAGA,SAAS,aAA+B,OAAoD;AAC1F,QAAM,WAAW,CAAC;AAClB,QAAM,MAAM,CAAC;AAEb,MAAI,cAAc;AAElB,QAAM,kBAAkB,QAAQ,QAAQ;AAKxC,WAAS,IAAI,OAA0B;AACrC,QAAI;AAEJ,WAAQ,OAAO,MAAM,MAAM,GAAI;AAC7B,WAAK;AAAA,IACP;AAAA,EACF;AAKA,WAAS,QAAQ;AACf,eAAW,QAAQ,OAAO;AACxB,UAAI,SAAS,IAAI,CAAC;AAAA,IACpB;AACA,kBAAc;AAEd,QAAI,MAAM,OAAO,CAAC,QAAQ,SAAS,SAAS,SAAS,IAAI,EAAE,QAAQ,CAAC,IAAI,GAAG;AAEzE,oBAAc;AAAA,IAChB;AAAA,EACF;AAKA,WAAS,gBAAgB;AACvB,QAAI,aAAa;AACf;AAAA,IACF;AAEA,kBAAc;AACd,oBAAgB,KAAK,KAAK;AAAA,EAC5B;AAEA,aAAW,QAAQ,OAAO;AACxB,aAAS,IAAI,IAAI,CAAC;AAClB,QAAI,IAAI,IAAI,SAAS,IAAI,IAAI;AAC3B,eAAS,IAAI,EAAE,KAAK,EAAE;AACtB,oBAAc;AAAA,IAChB;AAAA,EACF;AAEA,SAAO;AACT;AAEA,MAAM,YAAY,oBAAI,IAAI;AAE1B,MAAM,oBAAoB,CAAC,QAAQ,SAAS,YAAY;AAKjD,SAAS,aACd,QAAa,mBACuB;AACpC,QAAM,MAAM,MAAM,KAAK,GAAG;AAE1B,MAAI,UAAU,IAAI,GAAG,GAAG;AACtB,WAAO,UAAU,IAAI,GAAG;AAAA,EAC1B;AAEA,QAAM,YAAY,aAAa,KAAK;AACpC,YAAU,IAAI,KAAK,SAAS;AAE5B,SAAO;AACT;AAEO,MAAM,eAAe,aAAa,iBAAoD;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/utils/scrollTo.d.ts
CHANGED
|
@@ -1,9 +1,33 @@
|
|
|
1
|
+
import type { TweenOptions } from './tween.js';
|
|
2
|
+
export interface ScrollPosition {
|
|
3
|
+
left: number;
|
|
4
|
+
top: number;
|
|
5
|
+
}
|
|
6
|
+
export type ScrollTarget = string | HTMLElement | number | Partial<ScrollPosition>;
|
|
7
|
+
export interface ScrollToOptions extends TweenOptions {
|
|
8
|
+
/**
|
|
9
|
+
* Root element that will be scrolled.
|
|
10
|
+
*/
|
|
11
|
+
rootElement?: HTMLElement | typeof window;
|
|
12
|
+
/**
|
|
13
|
+
* Scroll direction.
|
|
14
|
+
*/
|
|
15
|
+
axis?: (typeof scrollTo.axis)[keyof typeof scrollTo.axis];
|
|
16
|
+
/**
|
|
17
|
+
* Distance from the target.
|
|
18
|
+
*/
|
|
19
|
+
offset?: number;
|
|
20
|
+
}
|
|
1
21
|
/**
|
|
2
|
-
*
|
|
22
|
+
* Scroll to an element.
|
|
3
23
|
*
|
|
4
|
-
* @returns {Promise<
|
|
24
|
+
* @returns {Promise<ScrollPosition>} A promising resolving with the scroll position.
|
|
5
25
|
*/
|
|
6
|
-
export
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
26
|
+
export declare function scrollTo(target: string | HTMLElement | number | Partial<ScrollPosition>, { rootElement, axis, offset, ...tweenOptions }?: ScrollToOptions): Promise<ScrollPosition>;
|
|
27
|
+
export declare namespace scrollTo {
|
|
28
|
+
var axis: {
|
|
29
|
+
x: symbol;
|
|
30
|
+
y: symbol;
|
|
31
|
+
both: symbol;
|
|
32
|
+
};
|
|
33
|
+
}
|
package/utils/scrollTo.js
CHANGED
|
@@ -1,56 +1,110 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
import { tween } from "./tween.js";
|
|
2
|
+
import { isString, isNumber, isFunction, isDefined } from "./is.js";
|
|
3
|
+
import { lerp } from "./math/index.js";
|
|
4
|
+
const xAxis = Symbol(0);
|
|
5
|
+
const yAxis = Symbol(1);
|
|
6
|
+
const bothAxis = Symbol(2);
|
|
7
|
+
function isHtmlElement(rootElement) {
|
|
8
|
+
return rootElement instanceof HTMLElement;
|
|
9
|
+
}
|
|
10
|
+
function getCurrentScrollPosition(rootElement) {
|
|
11
|
+
return {
|
|
12
|
+
left: isHtmlElement(rootElement) ? rootElement.scrollTop : rootElement.scrollX,
|
|
13
|
+
top: isHtmlElement(rootElement) ? rootElement.scrollLeft : rootElement.scrollY
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
function getMaxScrollPosition(rootElement) {
|
|
17
|
+
return {
|
|
18
|
+
left: isHtmlElement(rootElement) ? rootElement.scrollWidth - rootElement.offsetWidth : document.documentElement.scrollWidth - window.innerWidth,
|
|
19
|
+
top: isHtmlElement(rootElement) ? rootElement.scrollHeight - rootElement.offsetHeight : document.documentElement.scrollHeight - window.innerHeight
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
function getTargetScrollPosition(initialScrollPosition, maxScrollPosition, target, axis, offset) {
|
|
23
|
+
let { top, left } = initialScrollPosition;
|
|
24
|
+
if (target instanceof HTMLElement || isString(target)) {
|
|
25
|
+
const targetElement = target instanceof HTMLElement ? target : document.querySelector(target);
|
|
26
|
+
if (!targetElement) {
|
|
27
|
+
return { top, left };
|
|
28
|
+
}
|
|
29
|
+
const sizes = targetElement.getBoundingClientRect();
|
|
30
|
+
const styles = getComputedStyle(targetElement);
|
|
31
|
+
const scrollMargin = {
|
|
32
|
+
left: Number.parseInt(styles.scrollMarginLeft || "0", 10),
|
|
33
|
+
top: Number.parseInt(styles.scrollMarginTop || "0", 10)
|
|
34
|
+
};
|
|
35
|
+
left = sizes.left + initialScrollPosition.left - scrollMargin.left;
|
|
36
|
+
top = sizes.top + initialScrollPosition.top - scrollMargin.top;
|
|
37
|
+
} else if (isNumber(target)) {
|
|
38
|
+
left = target;
|
|
39
|
+
top = target;
|
|
6
40
|
} else {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
if (!targetElement) {
|
|
10
|
-
return Promise.resolve(window.pageYOffset);
|
|
41
|
+
left = target.left ?? left;
|
|
42
|
+
top = target.top ?? top;
|
|
11
43
|
}
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
44
|
+
left -= offset;
|
|
45
|
+
top -= offset;
|
|
46
|
+
if (axis !== bothAxis) {
|
|
47
|
+
if (axis !== xAxis && !isDefined(target.left)) {
|
|
48
|
+
left = initialScrollPosition.left;
|
|
49
|
+
}
|
|
50
|
+
if (axis !== yAxis) {
|
|
51
|
+
top = initialScrollPosition.top;
|
|
52
|
+
}
|
|
18
53
|
}
|
|
54
|
+
return {
|
|
55
|
+
left: Math.min(left, maxScrollPosition.left),
|
|
56
|
+
top: Math.min(top, maxScrollPosition.top)
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
function scrollTo(target, { rootElement = window, axis = yAxis, offset = 0, ...tweenOptions } = {}) {
|
|
60
|
+
const initialScrollPosition = getCurrentScrollPosition(rootElement);
|
|
61
|
+
const maxScrollPosition = getMaxScrollPosition(rootElement);
|
|
62
|
+
const targetScrollPosition = getTargetScrollPosition(
|
|
63
|
+
initialScrollPosition,
|
|
64
|
+
maxScrollPosition,
|
|
65
|
+
target,
|
|
66
|
+
axis,
|
|
67
|
+
offset
|
|
68
|
+
);
|
|
19
69
|
return new Promise((resolve) => {
|
|
20
|
-
let isScrolling = false;
|
|
21
|
-
let scroll = window.pageYOffset;
|
|
22
|
-
let dampScroll = window.pageYOffset;
|
|
23
70
|
function eventHandler() {
|
|
24
|
-
|
|
71
|
+
tw.pause();
|
|
72
|
+
stop();
|
|
25
73
|
}
|
|
26
|
-
function
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
resolve(
|
|
74
|
+
function stop() {
|
|
75
|
+
rootElement.removeEventListener("wheel", eventHandler);
|
|
76
|
+
rootElement.removeEventListener("touchmove", eventHandler);
|
|
77
|
+
resolve(getCurrentScrollPosition(rootElement));
|
|
30
78
|
}
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
79
|
+
const tw = tween(
|
|
80
|
+
(progress) => {
|
|
81
|
+
rootElement.scrollTo({
|
|
82
|
+
left: lerp(initialScrollPosition.left, targetScrollPosition.left, progress),
|
|
83
|
+
top: lerp(initialScrollPosition.top, targetScrollPosition.top, progress)
|
|
84
|
+
});
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
smooth: 0.2,
|
|
88
|
+
...tweenOptions,
|
|
89
|
+
onFinish(progress) {
|
|
90
|
+
if (isFunction(tweenOptions.onFinish)) {
|
|
91
|
+
tweenOptions.onFinish(progress);
|
|
92
|
+
}
|
|
93
|
+
stop();
|
|
94
|
+
}
|
|
39
95
|
}
|
|
40
|
-
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
dampScroll = window.pageYOffset;
|
|
45
|
-
scroll = target;
|
|
46
|
-
window.addEventListener("wheel", eventHandler, { passive: true });
|
|
47
|
-
window.addEventListener("touchmove", eventHandler, { passive: true });
|
|
48
|
-
loop();
|
|
49
|
-
}
|
|
50
|
-
start(scrollTarget);
|
|
96
|
+
);
|
|
97
|
+
rootElement.addEventListener("wheel", eventHandler, { passive: true });
|
|
98
|
+
rootElement.addEventListener("touchmove", eventHandler, { passive: true });
|
|
99
|
+
tw.start();
|
|
51
100
|
});
|
|
52
101
|
}
|
|
102
|
+
scrollTo.axis = {
|
|
103
|
+
x: xAxis,
|
|
104
|
+
y: yAxis,
|
|
105
|
+
both: bothAxis
|
|
106
|
+
};
|
|
53
107
|
export {
|
|
54
|
-
scrollTo
|
|
108
|
+
scrollTo
|
|
55
109
|
};
|
|
56
110
|
//# sourceMappingURL=scrollTo.js.map
|
package/utils/scrollTo.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../packages/js-toolkit/utils/scrollTo.ts"],
|
|
4
|
-
"sourcesContent": ["import
|
|
5
|
-
"mappings": "AAAA,
|
|
4
|
+
"sourcesContent": ["import { tween } from './tween.js';\nimport type { TweenOptions } from './tween.js';\nimport { isString, isNumber, isFunction, isDefined } from './is.js';\nimport { lerp } from './math/index.js';\n\nexport interface ScrollPosition {\n left: number;\n top: number;\n}\n\nexport type ScrollTarget = string | HTMLElement | number | Partial<ScrollPosition>;\n\nexport interface ScrollToOptions extends TweenOptions {\n /**\n * Root element that will be scrolled.\n */\n rootElement?: HTMLElement | typeof window;\n /**\n * Scroll direction.\n */\n axis?: (typeof scrollTo.axis)[keyof typeof scrollTo.axis];\n /**\n * Distance from the target.\n */\n offset?: number;\n}\n\nconst xAxis = Symbol(0);\nconst yAxis = Symbol(1);\nconst bothAxis = Symbol(2);\n\nfunction isHtmlElement(rootElement: ScrollToOptions['rootElement']): rootElement is HTMLElement {\n return rootElement instanceof HTMLElement;\n}\n\n/**\n * Get the current root element or window scroll position.\n */\nfunction getCurrentScrollPosition(rootElement: ScrollToOptions['rootElement']): ScrollPosition {\n return {\n left: isHtmlElement(rootElement) ? rootElement.scrollTop : rootElement.scrollX,\n top: isHtmlElement(rootElement) ? rootElement.scrollLeft : rootElement.scrollY,\n };\n}\n\n/**\n * Get the maximum scroll position values.\n */\nfunction getMaxScrollPosition(rootElement?: ScrollToOptions['rootElement']): ScrollPosition {\n return {\n left: isHtmlElement(rootElement)\n ? rootElement.scrollWidth - rootElement.offsetWidth\n : document.documentElement.scrollWidth - window.innerWidth,\n top: isHtmlElement(rootElement)\n ? rootElement.scrollHeight - rootElement.offsetHeight\n : document.documentElement.scrollHeight - window.innerHeight,\n };\n}\n\n/**\n * Get the target scroll position.\n */\nfunction getTargetScrollPosition(\n initialScrollPosition: ScrollPosition,\n maxScrollPosition: ScrollPosition,\n target: ScrollTarget,\n axis: ScrollToOptions['axis'],\n offset: number,\n): ScrollPosition {\n let { top, left } = initialScrollPosition;\n\n if (target instanceof HTMLElement || isString(target)) {\n const targetElement = target instanceof HTMLElement ? target : document.querySelector(target);\n\n if (!targetElement) {\n return { top, left };\n }\n\n const sizes = targetElement.getBoundingClientRect();\n const styles = getComputedStyle(targetElement);\n const scrollMargin = {\n left: Number.parseInt(styles.scrollMarginLeft || '0', 10),\n top: Number.parseInt(styles.scrollMarginTop || '0', 10),\n };\n\n // Set the scroll position of the target element.\n left = sizes.left + initialScrollPosition.left - scrollMargin.left;\n top = sizes.top + initialScrollPosition.top - scrollMargin.top;\n } else if (isNumber(target)) {\n left = target;\n top = target;\n } else {\n left = target.left ?? left;\n top = target.top ?? top;\n }\n\n left -= offset;\n top -= offset;\n\n if (axis !== bothAxis) {\n if (axis !== xAxis && !isDefined((target as Partial<ScrollPosition>).left)) {\n left = initialScrollPosition.left;\n }\n\n if (axis !== yAxis) {\n top = initialScrollPosition.top;\n }\n }\n\n return {\n left: Math.min(left, maxScrollPosition.left),\n top: Math.min(top, maxScrollPosition.top),\n };\n}\n\n/**\n * Scroll to an element.\n *\n * @returns {Promise<ScrollPosition>} A promising resolving with the scroll position.\n */\nexport function scrollTo(\n target: string | HTMLElement | number | Partial<ScrollPosition>,\n { rootElement = window, axis = yAxis, offset = 0, ...tweenOptions }: ScrollToOptions = {},\n): Promise<ScrollPosition> {\n const initialScrollPosition = getCurrentScrollPosition(rootElement);\n const maxScrollPosition = getMaxScrollPosition(rootElement);\n const targetScrollPosition = getTargetScrollPosition(\n initialScrollPosition,\n maxScrollPosition,\n target,\n axis,\n offset,\n );\n\n return new Promise((resolve) => {\n function eventHandler() {\n /* eslint-disable @typescript-eslint/no-use-before-define */\n tw.pause();\n stop();\n /* eslint-enable @typescript-eslint/no-use-before-define */\n }\n\n function stop() {\n rootElement.removeEventListener('wheel', eventHandler);\n rootElement.removeEventListener('touchmove', eventHandler);\n\n // Resolve the promise on animation finish.\n resolve(getCurrentScrollPosition(rootElement));\n }\n\n // Setup tween.\n const tw = tween(\n (progress) => {\n rootElement.scrollTo({\n left: lerp(initialScrollPosition.left, targetScrollPosition.left, progress),\n top: lerp(initialScrollPosition.top, targetScrollPosition.top, progress),\n });\n },\n {\n smooth: 0.2,\n ...tweenOptions,\n onFinish(progress) {\n if (isFunction(tweenOptions.onFinish)) {\n tweenOptions.onFinish(progress);\n }\n\n stop();\n },\n },\n );\n\n rootElement.addEventListener('wheel', eventHandler, { passive: true });\n rootElement.addEventListener('touchmove', eventHandler, { passive: true });\n tw.start();\n });\n}\n\nscrollTo.axis = {\n x: xAxis,\n y: yAxis,\n both: bothAxis,\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
function endsWith(string, search) {
|
|
2
|
+
if (search.length === 0) {
|
|
3
|
+
return true;
|
|
4
|
+
}
|
|
5
|
+
if (search.length === 1) {
|
|
6
|
+
return string[string.length - 1] === search;
|
|
7
|
+
}
|
|
8
|
+
return string.substring(string.length - search.length) === search;
|
|
9
|
+
}
|
|
10
|
+
export {
|
|
11
|
+
endsWith
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=endsWith.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../packages/js-toolkit/utils/string/endsWith.ts"],
|
|
4
|
+
"sourcesContent": ["/**\n * Test if a string starts with another string.\n *\n * This is a more performant version of the `String.prototype.endsWith` method.\n *\n * @see https://jsbench.me/1hlkqqd0ff/2\n */\nexport function endsWith(string: string, search: string): boolean {\n if (search.length === 0) {\n return true;\n }\n\n if (search.length === 1) {\n // eslint-disable-next-line unicorn/prefer-at\n return string[string.length - 1] === search;\n }\n\n // eslint-disable-next-line unicorn/prefer-string-slice\n return string.substring(string.length - search.length) === search;\n}\n"],
|
|
5
|
+
"mappings": "AAOO,SAAS,SAAS,QAAgB,QAAyB;AAChE,MAAI,OAAO,WAAW,GAAG;AACvB,WAAO;AAAA,EACT;AAEA,MAAI,OAAO,WAAW,GAAG;AAEvB,WAAO,OAAO,OAAO,SAAS,CAAC,MAAM;AAAA,EACvC;AAGA,SAAO,OAAO,UAAU,OAAO,SAAS,OAAO,MAAM,MAAM;AAC7D;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
package/utils/string/index.d.ts
CHANGED
|
@@ -8,3 +8,5 @@ export { default as withoutTrailingCharactersRecursive } from './withoutTrailing
|
|
|
8
8
|
export { default as withoutTrailingSlash } from './withoutTrailingSlash.js';
|
|
9
9
|
export { default as withTrailingCharacters } from './withTrailingCharacters.js';
|
|
10
10
|
export { default as withTrailingSlash } from './withTrailingSlash.js';
|
|
11
|
+
export * from './startsWith.js';
|
|
12
|
+
export * from './endsWith.js';
|
package/utils/string/index.js
CHANGED
|
@@ -8,6 +8,8 @@ import { default as default8 } from "./withoutTrailingCharactersRecursive.js";
|
|
|
8
8
|
import { default as default9 } from "./withoutTrailingSlash.js";
|
|
9
9
|
import { default as default10 } from "./withTrailingCharacters.js";
|
|
10
10
|
import { default as default11 } from "./withTrailingSlash.js";
|
|
11
|
+
export * from "./startsWith.js";
|
|
12
|
+
export * from "./endsWith.js";
|
|
11
13
|
export {
|
|
12
14
|
default2 as withLeadingCharacters,
|
|
13
15
|
default3 as withLeadingSlash,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../packages/js-toolkit/utils/string/index.ts"],
|
|
4
|
-
"sourcesContent": ["export { default as withLeadingCharacters } from './withLeadingCharacters.js';\nexport { default as withLeadingSlash } from './withLeadingSlash.js';\nexport { default as withoutLeadingCharacters } from './withoutLeadingCharacters.js';\nexport { default as withoutLeadingCharactersRecursive } from './withoutLeadingCharactersRecursive.js';\nexport { default as withoutLeadingSlash } from './withoutLeadingSlash.js';\nexport { default as withoutTrailingCharacters } from './withoutTrailingCharacters.js';\nexport { default as withoutTrailingCharactersRecursive } from './withoutTrailingCharactersRecursive.js';\nexport { default as withoutTrailingSlash } from './withoutTrailingSlash.js';\nexport { default as withTrailingCharacters } from './withTrailingCharacters.js';\nexport { default as withTrailingSlash } from './withTrailingSlash.js';\n"],
|
|
5
|
-
"mappings": "AAAA,SAAoB,WAAXA,gBAAwC;AACjD,SAAoB,WAAXA,gBAAmC;AAC5C,SAAoB,WAAXA,gBAA2C;AACpD,SAAoB,WAAXA,gBAAoD;AAC7D,SAAoB,WAAXA,gBAAsC;AAC/C,SAAoB,WAAXA,gBAA4C;AACrD,SAAoB,WAAXA,gBAAqD;AAC9D,SAAoB,WAAXA,gBAAuC;AAChD,SAAoB,WAAXA,iBAAyC;AAClD,SAAoB,WAAXA,iBAAoC;",
|
|
4
|
+
"sourcesContent": ["export { default as withLeadingCharacters } from './withLeadingCharacters.js';\nexport { default as withLeadingSlash } from './withLeadingSlash.js';\nexport { default as withoutLeadingCharacters } from './withoutLeadingCharacters.js';\nexport { default as withoutLeadingCharactersRecursive } from './withoutLeadingCharactersRecursive.js';\nexport { default as withoutLeadingSlash } from './withoutLeadingSlash.js';\nexport { default as withoutTrailingCharacters } from './withoutTrailingCharacters.js';\nexport { default as withoutTrailingCharactersRecursive } from './withoutTrailingCharactersRecursive.js';\nexport { default as withoutTrailingSlash } from './withoutTrailingSlash.js';\nexport { default as withTrailingCharacters } from './withTrailingCharacters.js';\nexport { default as withTrailingSlash } from './withTrailingSlash.js';\nexport * from './startsWith.js';\nexport * from './endsWith.js';\n"],
|
|
5
|
+
"mappings": "AAAA,SAAoB,WAAXA,gBAAwC;AACjD,SAAoB,WAAXA,gBAAmC;AAC5C,SAAoB,WAAXA,gBAA2C;AACpD,SAAoB,WAAXA,gBAAoD;AAC7D,SAAoB,WAAXA,gBAAsC;AAC/C,SAAoB,WAAXA,gBAA4C;AACrD,SAAoB,WAAXA,gBAAqD;AAC9D,SAAoB,WAAXA,gBAAuC;AAChD,SAAoB,WAAXA,iBAAyC;AAClD,SAAoB,WAAXA,iBAAoC;AAC7C,cAAc;AACd,cAAc;",
|
|
6
6
|
"names": ["default"]
|
|
7
7
|
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Test if a string starts with another string.
|
|
3
|
+
*
|
|
4
|
+
* This is a more performant version of the `String.prototype.startsWith` method.
|
|
5
|
+
*
|
|
6
|
+
* @see https://jsbench.me/1hlkqqd0ff/1
|
|
7
|
+
*/
|
|
8
|
+
export declare function startsWith(string: string, search: string): boolean;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
function startsWith(string, search) {
|
|
2
|
+
if (search.length === 0) {
|
|
3
|
+
return true;
|
|
4
|
+
}
|
|
5
|
+
if (search.length === 1) {
|
|
6
|
+
return string[0] === search;
|
|
7
|
+
}
|
|
8
|
+
return string.substring(0, search.length) === search;
|
|
9
|
+
}
|
|
10
|
+
export {
|
|
11
|
+
startsWith
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=startsWith.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../packages/js-toolkit/utils/string/startsWith.ts"],
|
|
4
|
+
"sourcesContent": ["/**\n * Test if a string starts with another string.\n *\n * This is a more performant version of the `String.prototype.startsWith` method.\n *\n * @see https://jsbench.me/1hlkqqd0ff/1\n */\nexport function startsWith(string: string, search: string): boolean {\n if (search.length === 0) {\n return true;\n }\n\n if (search.length === 1) {\n return string[0] === search;\n }\n\n // eslint-disable-next-line unicorn/prefer-string-slice\n return string.substring(0, search.length) === search;\n}\n"],
|
|
5
|
+
"mappings": "AAOO,SAAS,WAAW,QAAgB,QAAyB;AAClE,MAAI,OAAO,WAAW,GAAG;AACvB,WAAO;AAAA,EACT;AAEA,MAAI,OAAO,WAAW,GAAG;AACvB,WAAO,OAAO,CAAC,MAAM;AAAA,EACvB;AAGA,SAAO,OAAO,UAAU,GAAG,OAAO,MAAM,MAAM;AAChD;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../packages/js-toolkit/utils/string/withLeadingCharacters.ts"],
|
|
4
4
|
"sourcesContent": ["import withoutLeadingCharacters from './withoutLeadingCharacters.js';\n\n/**\n * Add the given characters to the start of the given string.\n *\n * @param {string} string The string to modify.\n * @param {string} characters The characters to add to the start.\n * @returns {string}\n */\nexport default function withLeadingCharacters(string: string, characters: string): string {\n return `${characters}${withoutLeadingCharacters(string, characters)}`;\n}\n"],
|
|
5
|
-
"mappings": "AAAA,OAAO,8BAA8B;AAStB,SAAR,sBAAuC,QAAgB,YAA4B;AACxF,SAAO,GAAG,
|
|
5
|
+
"mappings": "AAAA,OAAO,8BAA8B;AAStB,SAAR,sBAAuC,QAAgB,YAA4B;AACxF,SAAO,GAAG,UAAU,GAAG,yBAAyB,QAAQ,UAAU,CAAC;AACrE;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../packages/js-toolkit/utils/string/withTrailingCharacters.ts"],
|
|
4
4
|
"sourcesContent": ["import withoutTrailingCharacters from './withoutTrailingCharacters.js';\n\n/**\n * Add the given characters to the end of the given string.\n *\n * @param {string} string The string to modify.\n * @param {string} characters The characters to add to the end.\n * @returns {string}\n */\nexport default function withTrailingCharacters(string: string, characters: string): string {\n return `${withoutTrailingCharacters(string, characters)}${characters}`;\n}\n"],
|
|
5
|
-
"mappings": "AAAA,OAAO,+BAA+B;AASvB,SAAR,uBAAwC,QAAgB,YAA4B;AACzF,SAAO,GAAG,0BAA0B,QAAQ,UAAU,
|
|
5
|
+
"mappings": "AAAA,OAAO,+BAA+B;AASvB,SAAR,uBAAwC,QAAgB,YAA4B;AACzF,SAAO,GAAG,0BAA0B,QAAQ,UAAU,CAAC,GAAG,UAAU;AACtE;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../packages/js-toolkit/utils/string/withoutLeadingCharacters.ts"],
|
|
4
4
|
"sourcesContent": ["/**\n * Remove the given characters from the start of the given string.\n *\n * @param {string} string The string to modify.\n * @param {string} characters The characters to remove from the start.\n * @returns {string}\n */\nexport default function withoutLeadingCharacters(string: string, characters: string): string {\n return string.replace(new RegExp(`^${characters}`), '');\n}\n"],
|
|
5
|
-
"mappings": "AAOe,SAAR,yBAA0C,QAAgB,YAA4B;AAC3F,SAAO,OAAO,QAAQ,IAAI,OAAO,IAAI,
|
|
5
|
+
"mappings": "AAOe,SAAR,yBAA0C,QAAgB,YAA4B;AAC3F,SAAO,OAAO,QAAQ,IAAI,OAAO,IAAI,UAAU,EAAE,GAAG,EAAE;AACxD;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|