@studiometa/js-toolkit 2.5.0 → 2.6.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/index.cjs +56 -62
- package/Base/index.cjs.map +7 -0
- package/Base/index.d.ts +5 -5
- package/Base/index.js +63 -69
- package/Base/index.js.map +7 -0
- package/Base/managers/AbstractManager.cjs +8 -12
- package/Base/managers/AbstractManager.cjs.map +7 -0
- package/Base/managers/AbstractManager.d.ts +11 -21
- package/Base/managers/AbstractManager.js +7 -12
- package/Base/managers/AbstractManager.js.map +7 -0
- package/Base/managers/ChildrenManager.cjs +6 -20
- package/Base/managers/ChildrenManager.cjs.map +7 -0
- package/Base/managers/ChildrenManager.d.ts +2 -2
- package/Base/managers/ChildrenManager.js +5 -14
- package/Base/managers/ChildrenManager.js.map +7 -0
- package/Base/managers/EventsManager.cjs +60 -64
- package/Base/managers/EventsManager.cjs.map +7 -0
- package/Base/managers/EventsManager.d.ts +2 -2
- package/Base/managers/EventsManager.js +59 -64
- package/Base/managers/EventsManager.js.map +7 -0
- package/Base/managers/OptionsManager.cjs +14 -22
- package/Base/managers/OptionsManager.cjs.map +7 -0
- package/Base/managers/OptionsManager.d.ts +42 -55
- package/Base/managers/OptionsManager.js +12 -21
- package/Base/managers/OptionsManager.js.map +7 -0
- package/Base/managers/RefsManager.cjs +11 -16
- package/Base/managers/RefsManager.cjs.map +7 -0
- package/Base/managers/RefsManager.d.ts +3 -11
- package/Base/managers/RefsManager.js +9 -8
- package/Base/managers/RefsManager.js.map +7 -0
- package/Base/managers/ResponsiveOptionsManager.cjs +4 -9
- package/Base/managers/ResponsiveOptionsManager.cjs.map +7 -0
- package/Base/managers/ResponsiveOptionsManager.d.ts +8 -4
- package/Base/managers/ResponsiveOptionsManager.js +3 -2
- package/Base/managers/ResponsiveOptionsManager.js.map +7 -0
- package/Base/managers/ServicesManager.cjs +21 -45
- package/Base/managers/ServicesManager.cjs.map +7 -0
- package/Base/managers/ServicesManager.d.ts +33 -58
- package/Base/managers/ServicesManager.js +13 -32
- package/Base/managers/ServicesManager.js.map +7 -0
- package/Base/types.cjs +1 -0
- package/Base/types.cjs.map +7 -0
- package/Base/types.js +1 -0
- package/Base/types.js.map +7 -0
- package/Base/utils.cjs +1 -0
- package/Base/utils.cjs.map +7 -0
- package/Base/utils.js +1 -0
- package/Base/utils.js.map +7 -0
- package/decorators/index.cjs +1 -0
- package/decorators/index.cjs.map +7 -0
- package/decorators/index.js +1 -0
- package/decorators/index.js.map +7 -0
- package/decorators/withBreakpointManager.cjs +1 -0
- package/decorators/withBreakpointManager.cjs.map +7 -0
- package/decorators/withBreakpointManager.js +1 -0
- package/decorators/withBreakpointManager.js.map +7 -0
- package/decorators/withBreakpointObserver.cjs +10 -15
- package/decorators/withBreakpointObserver.cjs.map +7 -0
- package/decorators/withBreakpointObserver.js +10 -16
- package/decorators/withBreakpointObserver.js.map +7 -0
- package/decorators/withDrag.cjs +5 -9
- package/decorators/withDrag.cjs.map +7 -0
- package/decorators/withDrag.js +5 -10
- package/decorators/withDrag.js.map +7 -0
- package/decorators/withExtraConfig.cjs +2 -6
- package/decorators/withExtraConfig.cjs.map +7 -0
- package/decorators/withExtraConfig.js +2 -7
- package/decorators/withExtraConfig.js.map +7 -0
- package/decorators/withFreezedOptions.cjs +2 -9
- package/decorators/withFreezedOptions.cjs.map +7 -0
- package/decorators/withFreezedOptions.js +2 -10
- package/decorators/withFreezedOptions.js.map +7 -0
- package/decorators/withIntersectionObserver.cjs +11 -16
- package/decorators/withIntersectionObserver.cjs.map +7 -0
- package/decorators/withIntersectionObserver.js +11 -17
- package/decorators/withIntersectionObserver.js.map +7 -0
- package/decorators/withMountWhenInView.cjs +11 -16
- package/decorators/withMountWhenInView.cjs.map +7 -0
- package/decorators/withMountWhenInView.js +11 -17
- package/decorators/withMountWhenInView.js.map +7 -0
- package/decorators/withResponsiveOptions.cjs +3 -8
- package/decorators/withResponsiveOptions.cjs.map +7 -0
- package/decorators/withResponsiveOptions.js +2 -1
- package/decorators/withResponsiveOptions.js.map +7 -0
- package/decorators/withScrolledInView.cjs +45 -50
- package/decorators/withScrolledInView.cjs.map +7 -0
- package/decorators/withScrolledInView.js +45 -51
- package/decorators/withScrolledInView.js.map +7 -0
- package/decorators/withVue2.cjs +9 -15
- package/decorators/withVue2.cjs.map +7 -0
- package/decorators/withVue2.js +9 -16
- package/decorators/withVue2.js.map +7 -0
- package/helpers/createApp.cjs +1 -0
- package/helpers/createApp.cjs.map +7 -0
- package/helpers/createApp.js +1 -0
- package/helpers/createApp.js.map +7 -0
- package/helpers/getClosestParent.cjs +1 -0
- package/helpers/getClosestParent.cjs.map +7 -0
- package/helpers/getClosestParent.js +1 -0
- package/helpers/getClosestParent.js.map +7 -0
- package/helpers/getDirectChildren.cjs +1 -0
- package/helpers/getDirectChildren.cjs.map +7 -0
- package/helpers/getDirectChildren.js +1 -0
- package/helpers/getDirectChildren.js.map +7 -0
- package/helpers/getInstanceFromElement.cjs +1 -0
- package/helpers/getInstanceFromElement.cjs.map +7 -0
- package/helpers/getInstanceFromElement.js +1 -0
- package/helpers/getInstanceFromElement.js.map +7 -0
- package/helpers/importOnInteraction.cjs +2 -1
- package/helpers/importOnInteraction.cjs.map +7 -0
- package/helpers/importOnInteraction.js +2 -1
- package/helpers/importOnInteraction.js.map +7 -0
- package/helpers/importWhenIdle.cjs +1 -0
- package/helpers/importWhenIdle.cjs.map +7 -0
- package/helpers/importWhenIdle.js +1 -0
- package/helpers/importWhenIdle.js.map +7 -0
- package/helpers/importWhenVisible.cjs +2 -1
- package/helpers/importWhenVisible.cjs.map +7 -0
- package/helpers/importWhenVisible.js +2 -1
- package/helpers/importWhenVisible.js.map +7 -0
- package/helpers/index.cjs +1 -0
- package/helpers/index.cjs.map +7 -0
- package/helpers/index.js +1 -0
- package/helpers/index.js.map +7 -0
- package/helpers/utils.cjs +1 -0
- package/helpers/utils.cjs.map +7 -0
- package/helpers/utils.js +1 -0
- package/helpers/utils.js.map +7 -0
- package/index.cjs +1 -0
- package/index.cjs.map +7 -0
- package/index.js +1 -0
- package/index.js.map +7 -0
- package/package.json +1 -1
- package/services/drag.cjs +1 -0
- package/services/drag.cjs.map +7 -0
- package/services/drag.js +1 -0
- package/services/drag.js.map +7 -0
- package/services/index.cjs +1 -0
- package/services/index.cjs.map +7 -0
- package/services/index.js +1 -0
- package/services/index.js.map +7 -0
- package/services/key.cjs +2 -1
- package/services/key.cjs.map +7 -0
- package/services/key.js +2 -1
- package/services/key.js.map +7 -0
- package/services/load.cjs +1 -0
- package/services/load.cjs.map +7 -0
- package/services/load.js +1 -0
- package/services/load.js.map +7 -0
- package/services/pointer.cjs +3 -3
- package/services/pointer.cjs.map +7 -0
- package/services/pointer.js +3 -3
- package/services/pointer.js.map +7 -0
- package/services/raf.cjs +1 -0
- package/services/raf.cjs.map +7 -0
- package/services/raf.js +1 -0
- package/services/raf.js.map +7 -0
- package/services/resize.cjs +1 -0
- package/services/resize.cjs.map +7 -0
- package/services/resize.js +1 -0
- package/services/resize.js.map +7 -0
- package/services/scroll.cjs +1 -0
- package/services/scroll.cjs.map +7 -0
- package/services/scroll.js +1 -0
- package/services/scroll.js.map +7 -0
- package/services/service.cjs +1 -0
- package/services/service.cjs.map +7 -0
- package/services/service.js +1 -0
- package/services/service.js.map +7 -0
- package/utils/collide/boundingRectToCircle.cjs +1 -0
- package/utils/collide/boundingRectToCircle.cjs.map +7 -0
- package/utils/collide/boundingRectToCircle.js +1 -0
- package/utils/collide/boundingRectToCircle.js.map +7 -0
- package/utils/collide/collideCircleCircle.cjs +1 -0
- package/utils/collide/collideCircleCircle.cjs.map +7 -0
- package/utils/collide/collideCircleCircle.js +1 -0
- package/utils/collide/collideCircleCircle.js.map +7 -0
- package/utils/collide/collideCircleRect.cjs +1 -0
- package/utils/collide/collideCircleRect.cjs.map +7 -0
- package/utils/collide/collideCircleRect.js +1 -0
- package/utils/collide/collideCircleRect.js.map +7 -0
- package/utils/collide/collidePointCircle.cjs +1 -0
- package/utils/collide/collidePointCircle.cjs.map +7 -0
- package/utils/collide/collidePointCircle.js +1 -0
- package/utils/collide/collidePointCircle.js.map +7 -0
- package/utils/collide/collidePointRect.cjs +1 -0
- package/utils/collide/collidePointRect.cjs.map +7 -0
- package/utils/collide/collidePointRect.js +1 -0
- package/utils/collide/collidePointRect.js.map +7 -0
- package/utils/collide/collideRectRect.cjs +1 -0
- package/utils/collide/collideRectRect.cjs.map +7 -0
- package/utils/collide/collideRectRect.js +1 -0
- package/utils/collide/collideRectRect.js.map +7 -0
- package/utils/collide/index.cjs +1 -0
- package/utils/collide/index.cjs.map +7 -0
- package/utils/collide/index.js +1 -0
- package/utils/collide/index.js.map +7 -0
- package/utils/css/animate.cjs +38 -14
- package/utils/css/animate.cjs.map +7 -0
- package/utils/css/animate.d.ts +4 -24
- package/utils/css/animate.js +38 -14
- package/utils/css/animate.js.map +7 -0
- package/utils/css/classes.cjs +7 -3
- package/utils/css/classes.cjs.map +7 -0
- package/utils/css/classes.d.ts +6 -6
- package/utils/css/classes.js +7 -3
- package/utils/css/classes.js.map +7 -0
- package/utils/css/getOffsetSizes.cjs +1 -0
- package/utils/css/getOffsetSizes.cjs.map +7 -0
- package/utils/css/getOffsetSizes.js +1 -0
- package/utils/css/getOffsetSizes.js.map +7 -0
- package/utils/css/index.cjs +2 -1
- package/utils/css/index.cjs.map +7 -0
- package/utils/css/index.d.ts +7 -7
- package/utils/css/index.js +1 -0
- package/utils/css/index.js.map +7 -0
- package/utils/css/matrix.cjs +2 -2
- package/utils/css/matrix.cjs.map +7 -0
- package/utils/css/matrix.js +2 -2
- package/utils/css/matrix.js.map +7 -0
- package/utils/css/styles.cjs +12 -8
- package/utils/css/styles.cjs.map +7 -0
- package/utils/css/styles.d.ts +4 -4
- package/utils/css/styles.js +12 -8
- package/utils/css/styles.js.map +7 -0
- package/utils/css/transform.cjs +7 -4
- package/utils/css/transform.cjs.map +7 -0
- package/utils/css/transform.d.ts +2 -2
- package/utils/css/transform.js +7 -4
- package/utils/css/transform.js.map +7 -0
- package/utils/css/transition.cjs +10 -8
- package/utils/css/transition.cjs.map +7 -0
- package/utils/css/transition.d.ts +5 -8
- package/utils/css/transition.js +10 -9
- package/utils/css/transition.js.map +7 -0
- package/utils/css/utils.cjs +32 -0
- package/utils/css/utils.cjs.map +7 -0
- package/utils/css/utils.d.ts +1 -0
- package/utils/css/utils.js +10 -0
- package/utils/css/utils.js.map +7 -0
- package/utils/debounce.cjs +1 -0
- package/utils/debounce.cjs.map +7 -0
- package/utils/debounce.js +1 -0
- package/utils/debounce.js.map +7 -0
- package/utils/focusTrap.cjs +1 -0
- package/utils/focusTrap.cjs.map +7 -0
- package/utils/focusTrap.js +1 -0
- package/utils/focusTrap.js.map +7 -0
- package/utils/has.cjs +1 -0
- package/utils/has.cjs.map +7 -0
- package/utils/has.js +1 -0
- package/utils/has.js.map +7 -0
- package/utils/history.cjs +1 -0
- package/utils/history.cjs.map +7 -0
- package/utils/history.js +1 -0
- package/utils/history.js.map +7 -0
- package/utils/index.cjs +2 -1
- package/utils/index.cjs.map +7 -0
- package/utils/index.d.ts +19 -19
- package/utils/index.js +1 -0
- package/utils/index.js.map +7 -0
- package/utils/is.cjs +1 -0
- package/utils/is.cjs.map +7 -0
- package/utils/is.js +1 -0
- package/utils/is.js.map +7 -0
- package/utils/keyCodes.cjs +1 -0
- package/utils/keyCodes.cjs.map +7 -0
- package/utils/keyCodes.js +1 -0
- package/utils/keyCodes.js.map +7 -0
- package/utils/math/clamp.cjs +1 -0
- package/utils/math/clamp.cjs.map +7 -0
- package/utils/math/clamp.js +1 -0
- package/utils/math/clamp.js.map +7 -0
- package/utils/math/clamp01.cjs +1 -0
- package/utils/math/clamp01.cjs.map +7 -0
- package/utils/math/clamp01.js +1 -0
- package/utils/math/clamp01.js.map +7 -0
- package/utils/math/createEases.cjs +1 -0
- package/utils/math/createEases.cjs.map +7 -0
- package/utils/math/createEases.js +1 -0
- package/utils/math/createEases.js.map +7 -0
- package/utils/math/damp.cjs +1 -0
- package/utils/math/damp.cjs.map +7 -0
- package/utils/math/damp.js +1 -0
- package/utils/math/damp.js.map +7 -0
- package/utils/math/ease.cjs +1 -0
- package/utils/math/ease.cjs.map +7 -0
- package/utils/math/ease.js +1 -0
- package/utils/math/ease.js.map +7 -0
- package/utils/math/index.cjs +1 -0
- package/utils/math/index.cjs.map +7 -0
- package/utils/math/index.js +1 -0
- package/utils/math/index.js.map +7 -0
- package/utils/math/inertiaFinalValue.cjs +1 -0
- package/utils/math/inertiaFinalValue.cjs.map +7 -0
- package/utils/math/inertiaFinalValue.js +1 -0
- package/utils/math/inertiaFinalValue.js.map +7 -0
- package/utils/math/lerp.cjs +1 -0
- package/utils/math/lerp.cjs.map +7 -0
- package/utils/math/lerp.js +1 -0
- package/utils/math/lerp.js.map +7 -0
- package/utils/math/map.cjs +1 -0
- package/utils/math/map.cjs.map +7 -0
- package/utils/math/map.js +1 -0
- package/utils/math/map.js.map +7 -0
- package/utils/math/round.cjs +1 -0
- package/utils/math/round.cjs.map +7 -0
- package/utils/math/round.js +1 -0
- package/utils/math/round.js.map +7 -0
- package/utils/memoize.cjs +1 -0
- package/utils/memoize.cjs.map +7 -0
- package/utils/memoize.js +1 -0
- package/utils/memoize.js.map +7 -0
- package/utils/nextFrame.cjs +1 -0
- package/utils/nextFrame.cjs.map +7 -0
- package/utils/nextFrame.js +1 -0
- package/utils/nextFrame.js.map +7 -0
- package/utils/nextMicrotask.cjs +1 -0
- package/utils/nextMicrotask.cjs.map +7 -0
- package/utils/nextMicrotask.js +1 -0
- package/utils/nextMicrotask.js.map +7 -0
- package/utils/nextTick.cjs +1 -0
- package/utils/nextTick.cjs.map +7 -0
- package/utils/nextTick.js +1 -0
- package/utils/nextTick.js.map +7 -0
- package/utils/noop.cjs +1 -0
- package/utils/noop.cjs.map +7 -0
- package/utils/noop.js +1 -0
- package/utils/noop.js.map +7 -0
- package/utils/object/autoBind.cjs +1 -0
- package/utils/object/autoBind.cjs.map +7 -0
- package/utils/object/autoBind.js +1 -0
- package/utils/object/autoBind.js.map +7 -0
- package/utils/object/getAllProperties.cjs +1 -0
- package/utils/object/getAllProperties.cjs.map +7 -0
- package/utils/object/getAllProperties.js +1 -0
- package/utils/object/getAllProperties.js.map +7 -0
- package/utils/object/index.cjs +1 -0
- package/utils/object/index.cjs.map +7 -0
- package/utils/object/index.js +1 -0
- package/utils/object/index.js.map +7 -0
- package/utils/scheduler.cjs +1 -0
- package/utils/scheduler.cjs.map +7 -0
- package/utils/scheduler.js +1 -0
- package/utils/scheduler.js.map +7 -0
- package/utils/scrollTo.cjs +1 -0
- package/utils/scrollTo.cjs.map +7 -0
- package/utils/scrollTo.js +1 -0
- package/utils/scrollTo.js.map +7 -0
- package/utils/string/index.cjs +1 -0
- package/utils/string/index.cjs.map +7 -0
- package/utils/string/index.js +1 -0
- package/utils/string/index.js.map +7 -0
- package/utils/string/withLeadingCharacters.cjs +1 -0
- package/utils/string/withLeadingCharacters.cjs.map +7 -0
- package/utils/string/withLeadingCharacters.js +1 -0
- package/utils/string/withLeadingCharacters.js.map +7 -0
- package/utils/string/withLeadingSlash.cjs +1 -0
- package/utils/string/withLeadingSlash.cjs.map +7 -0
- package/utils/string/withLeadingSlash.js +1 -0
- package/utils/string/withLeadingSlash.js.map +7 -0
- package/utils/string/withTrailingCharacters.cjs +1 -0
- package/utils/string/withTrailingCharacters.cjs.map +7 -0
- package/utils/string/withTrailingCharacters.js +1 -0
- package/utils/string/withTrailingCharacters.js.map +7 -0
- package/utils/string/withTrailingSlash.cjs +1 -0
- package/utils/string/withTrailingSlash.cjs.map +7 -0
- package/utils/string/withTrailingSlash.js +1 -0
- package/utils/string/withTrailingSlash.js.map +7 -0
- package/utils/string/withoutLeadingCharacters.cjs +1 -0
- package/utils/string/withoutLeadingCharacters.cjs.map +7 -0
- package/utils/string/withoutLeadingCharacters.js +1 -0
- package/utils/string/withoutLeadingCharacters.js.map +7 -0
- package/utils/string/withoutLeadingCharactersRecursive.cjs +1 -0
- package/utils/string/withoutLeadingCharactersRecursive.cjs.map +7 -0
- package/utils/string/withoutLeadingCharactersRecursive.js +1 -0
- package/utils/string/withoutLeadingCharactersRecursive.js.map +7 -0
- package/utils/string/withoutLeadingSlash.cjs +1 -0
- package/utils/string/withoutLeadingSlash.cjs.map +7 -0
- package/utils/string/withoutLeadingSlash.js +1 -0
- package/utils/string/withoutLeadingSlash.js.map +7 -0
- package/utils/string/withoutTrailingCharacters.cjs +1 -0
- package/utils/string/withoutTrailingCharacters.cjs.map +7 -0
- package/utils/string/withoutTrailingCharacters.js +1 -0
- package/utils/string/withoutTrailingCharacters.js.map +7 -0
- package/utils/string/withoutTrailingCharactersRecursive.cjs +1 -0
- package/utils/string/withoutTrailingCharactersRecursive.cjs.map +7 -0
- package/utils/string/withoutTrailingCharactersRecursive.js +1 -0
- package/utils/string/withoutTrailingCharactersRecursive.js.map +7 -0
- package/utils/string/withoutTrailingSlash.cjs +1 -0
- package/utils/string/withoutTrailingSlash.cjs.map +7 -0
- package/utils/string/withoutTrailingSlash.js +1 -0
- package/utils/string/withoutTrailingSlash.js.map +7 -0
- package/utils/throttle.cjs +1 -0
- package/utils/throttle.cjs.map +7 -0
- package/utils/throttle.js +1 -0
- package/utils/throttle.js.map +7 -0
- package/utils/tween.cjs +2 -2
- package/utils/tween.cjs.map +7 -0
- package/utils/tween.js +2 -2
- package/utils/tween.js.map +7 -0
package/utils/css/animate.js
CHANGED
|
@@ -3,6 +3,7 @@ import { isDefined, isFunction, isNumber } from "../is.js";
|
|
|
3
3
|
import transform, { TRANSFORM_PROPS } from "./transform.js";
|
|
4
4
|
import { domScheduler as scheduler } from "../scheduler.js";
|
|
5
5
|
import { tween, normalizeEase } from "../tween.js";
|
|
6
|
+
import { eachElements } from "./utils.js";
|
|
6
7
|
let id = 0;
|
|
7
8
|
const running = /* @__PURE__ */ new WeakMap();
|
|
8
9
|
const CSSUnitConverter = {
|
|
@@ -22,13 +23,16 @@ function getAnimationStepValue(val, getSizeRef) {
|
|
|
22
23
|
return CSSUnitConverter[val[1]](val[0], getSizeRef);
|
|
23
24
|
}
|
|
24
25
|
const generateTranslateRenderStrategy = (sizeRef) => (element, fromValue, toValue, progress) => lerp(
|
|
25
|
-
getAnimationStepValue(
|
|
26
|
-
|
|
26
|
+
getAnimationStepValue(
|
|
27
|
+
fromValue ?? 0,
|
|
28
|
+
() => element[sizeRef]
|
|
29
|
+
),
|
|
30
|
+
getAnimationStepValue(toValue ?? 0, () => element[sizeRef]),
|
|
27
31
|
progress
|
|
28
32
|
);
|
|
29
33
|
const widthBasedTranslateRenderStrategy = generateTranslateRenderStrategy("offsetWidth");
|
|
30
34
|
const heightBasedTranslateRenderStrategy = generateTranslateRenderStrategy("offsetHeight");
|
|
31
|
-
const generateLerpRenderStrategy = (defaultValue) => (element, fromValue, toValue, progress) => lerp(fromValue
|
|
35
|
+
const generateLerpRenderStrategy = (defaultValue) => (element, fromValue, toValue, progress) => lerp(fromValue ?? defaultValue, toValue ?? defaultValue, progress);
|
|
32
36
|
const scaleRenderStrategy = generateLerpRenderStrategy(1);
|
|
33
37
|
const degreesRenderStrategy = generateLerpRenderStrategy(0);
|
|
34
38
|
const transformRenderStrategies = {
|
|
@@ -50,10 +54,9 @@ const transformRenderStrategies = {
|
|
|
50
54
|
function render(element, from, to, progress) {
|
|
51
55
|
const stepProgress = to.easing(map(progress, from.offset, to.offset, 0, 1));
|
|
52
56
|
scheduler.read(function renderRead() {
|
|
53
|
-
var _a, _b;
|
|
54
57
|
let opacity = false;
|
|
55
58
|
if (isDefined(from.opacity) || isDefined(to.opacity)) {
|
|
56
|
-
opacity = map(stepProgress, 0, 1,
|
|
59
|
+
opacity = map(stepProgress, 0, 1, from.opacity ?? 1, to.opacity ?? 1);
|
|
57
60
|
} else if (element.style.opacity) {
|
|
58
61
|
opacity = "";
|
|
59
62
|
}
|
|
@@ -79,17 +82,14 @@ function render(element, from, to, progress) {
|
|
|
79
82
|
});
|
|
80
83
|
});
|
|
81
84
|
}
|
|
82
|
-
function
|
|
85
|
+
function singleAnimate(element, keyframes, options = {}) {
|
|
83
86
|
const keyframesCount = keyframes.length - 1;
|
|
84
87
|
const normalizedKeyframes = keyframes.map(
|
|
85
|
-
(keyframe, index) => {
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
easing: normalizeEase(keyframe.easing)
|
|
91
|
-
};
|
|
92
|
-
}
|
|
88
|
+
(keyframe, index) => ({
|
|
89
|
+
...keyframe,
|
|
90
|
+
offset: keyframe.offset ?? index / keyframesCount,
|
|
91
|
+
easing: normalizeEase(keyframe.easing)
|
|
92
|
+
})
|
|
93
93
|
);
|
|
94
94
|
if (!running.has(element)) {
|
|
95
95
|
running.set(element, /* @__PURE__ */ new Map());
|
|
@@ -120,6 +120,30 @@ function animate(element, keyframes, options = {}) {
|
|
|
120
120
|
});
|
|
121
121
|
return controls;
|
|
122
122
|
}
|
|
123
|
+
function animate(elementOrElements, keyframes, options = {}) {
|
|
124
|
+
const controls = eachElements(
|
|
125
|
+
elementOrElements,
|
|
126
|
+
(element) => singleAnimate(element, keyframes, options)
|
|
127
|
+
);
|
|
128
|
+
const delegate = (key) => {
|
|
129
|
+
return (...args) => {
|
|
130
|
+
if (key === "progress" && args.length === 0) {
|
|
131
|
+
return controls[0][key]();
|
|
132
|
+
}
|
|
133
|
+
controls.forEach((control) => {
|
|
134
|
+
control[key](...args);
|
|
135
|
+
});
|
|
136
|
+
};
|
|
137
|
+
};
|
|
138
|
+
return {
|
|
139
|
+
start: delegate("start"),
|
|
140
|
+
pause: delegate("pause"),
|
|
141
|
+
finish: delegate("finish"),
|
|
142
|
+
play: delegate("play"),
|
|
143
|
+
progress: delegate("progress")
|
|
144
|
+
};
|
|
145
|
+
}
|
|
123
146
|
export {
|
|
124
147
|
animate
|
|
125
148
|
};
|
|
149
|
+
//# sourceMappingURL=animate.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../packages/js-toolkit/utils/css/animate.js"],
|
|
4
|
+
"sourcesContent": ["import { lerp, map } from '../math/index.js';\nimport { isDefined, isFunction, isNumber } from '../is.js';\nimport transform, { TRANSFORM_PROPS } from './transform.js';\nimport { domScheduler as scheduler } from '../scheduler.js';\nimport { tween, normalizeEase } from '../tween.js';\n// eslint-disable-next-line import/extensions\nimport { eachElements } from './utils.js';\n\nlet id = 0;\nconst running = new WeakMap();\n\nconst CSSUnitConverter = {\n '%': (value, getSizeRef) => (value * getSizeRef()) / 100,\n vh: (value) => (value * window.innerHeight) / 100,\n vw: (value) => (value * window.innerWidth) / 100,\n vmin: (value) => (value * Math.min(window.innerWidth, window.innerHeight)) / 100,\n vmax: (value) => (value * Math.max(window.innerWidth, window.innerHeight)) / 100,\n};\n\n/**\n * Get the value from a step property.\n * @param {number|[number, string]} val\n * @param {() => number} getSizeRef\n * @returns {number}\n */\nfunction getAnimationStepValue(val, getSizeRef) {\n if (isNumber(val)) {\n return val;\n }\n\n if (!val[1] || !CSSUnitConverter[val[1]]) {\n return val[0];\n }\n\n return CSSUnitConverter[val[1]](val[0], getSizeRef);\n}\n\nconst generateTranslateRenderStrategy = (sizeRef) => (element, fromValue, toValue, progress) =>\n lerp(\n getAnimationStepValue(\n fromValue ?? 0,\n /* istanbul ignore next */\n () => element[sizeRef],\n ),\n getAnimationStepValue(toValue ?? 0, () => element[sizeRef]),\n progress,\n );\nconst widthBasedTranslateRenderStrategy = generateTranslateRenderStrategy('offsetWidth');\nconst heightBasedTranslateRenderStrategy = generateTranslateRenderStrategy('offsetHeight');\n\nconst generateLerpRenderStrategy = (defaultValue) => (element, fromValue, toValue, progress) =>\n lerp(fromValue ?? defaultValue, toValue ?? defaultValue, progress);\nconst scaleRenderStrategy = generateLerpRenderStrategy(1);\nconst degreesRenderStrategy = generateLerpRenderStrategy(0);\n\nconst transformRenderStrategies = {\n x: widthBasedTranslateRenderStrategy,\n y: heightBasedTranslateRenderStrategy,\n z: widthBasedTranslateRenderStrategy,\n scale: scaleRenderStrategy,\n scaleX: scaleRenderStrategy,\n scaleY: scaleRenderStrategy,\n scaleZ: scaleRenderStrategy,\n skew: degreesRenderStrategy,\n skewX: degreesRenderStrategy,\n skewY: degreesRenderStrategy,\n rotate: degreesRenderStrategy,\n rotateX: degreesRenderStrategy,\n rotateY: degreesRenderStrategy,\n rotateZ: degreesRenderStrategy,\n};\n\n/**\n * Render an element style based on 2 keyframes and a progress value.\n *\n * @param {HTMLElement} element\n * @param {NormalizedKeyframe} from\n * @param {NormalizedKeyframe} to\n * @param {number} progress\n * @returns {void}\n */\nfunction render(element, from, to, progress) {\n const stepProgress = to.easing(map(progress, from.offset, to.offset, 0, 1));\n\n scheduler.read(function renderRead() {\n /** @type {false|number|string} */\n let opacity = false;\n if (isDefined(from.opacity) || isDefined(to.opacity)) {\n opacity = map(stepProgress, 0, 1, from.opacity ?? 1, to.opacity ?? 1);\n } else if (element.style.opacity) {\n opacity = '';\n }\n\n /** @type {false|string} */\n let transformOrigin = false;\n if (isDefined(to.transformOrigin)) {\n transformOrigin = to.transformOrigin;\n } else if (element.style.transformOrigin) {\n transformOrigin = '';\n }\n\n const props = Object.fromEntries(\n TRANSFORM_PROPS.filter((name) => isDefined(from[name]) || isDefined(to[name])).map((name) => {\n return [name, transformRenderStrategies[name](element, from[name], to[name], stepProgress)];\n }),\n );\n scheduler.write(function renderWrite() {\n if (opacity !== false) {\n // @ts-ignore\n element.style.opacity = opacity;\n }\n if (transformOrigin !== false) {\n element.style.transformOrigin = transformOrigin;\n }\n transform(element, props);\n });\n });\n}\n\n/**\n * @typedef {import('./transform.js').TransformProps} TransformProps\n * @typedef {TransformProps & {\n * opacity?: number;\n * transformOrigin?: string;\n * easing?: import('../math/createEases.js').EasingFunction|import('../tween.js').BezierCurve;\n * offset?: number;\n * }} Keyframe\n * @typedef {Keyframe & {\n * easing: import('../math/createEases.js').EasingFunction;\n * offset: number;\n * }} NormalizedKeyframe\n * @typedef {{\n * start: () => void;\n * pause: () => void;\n * play: () => void;\n * finish: () => void;\n * progress: (value?: number) => number\n * }} Animate\n */\n\n/**\n * Animate an element.\n * @param {HTMLElement} element\n * @param {Keyframe[]} keyframes\n * @param {import('../tween.js').TweenOptions} [options]\n * @returns {Animate}\n */\nfunction singleAnimate(element, keyframes, options = {}) {\n const keyframesCount = keyframes.length - 1;\n const normalizedKeyframes = keyframes.map(\n (keyframe, index) =>\n /** @type {NormalizedKeyframe} */ ({\n ...keyframe,\n offset: keyframe.offset ?? index / keyframesCount,\n easing: normalizeEase(keyframe.easing),\n }),\n );\n\n if (!running.has(element)) {\n running.set(element, new Map());\n }\n\n const key = `animate-${id}`;\n id += 1;\n\n /**\n * Set the progress value.\n *\n * @param {number} progress The progress value.\n */\n function callback(progress) {\n let toIndex = 0;\n while (\n normalizedKeyframes[toIndex] &&\n normalizedKeyframes[toIndex].offset <= progress &&\n normalizedKeyframes[toIndex].offset !== 1\n ) {\n toIndex += 1;\n }\n\n render(element, normalizedKeyframes[toIndex - 1], normalizedKeyframes[toIndex], progress);\n }\n\n const controls = tween(callback, {\n ...options,\n onStart() {\n if (isFunction(options.onStart)) {\n options.onStart();\n }\n // Stop running instances\n const runningKeys = running.get(element);\n runningKeys.forEach((runningPause, runningKey) => {\n runningPause();\n runningKeys.delete(runningKey);\n });\n runningKeys.set(key, controls.pause);\n running.set(element, runningKeys);\n },\n });\n\n return controls;\n}\n\n/**\n * Animate one or more elements.\n * @param {HTMLElement|HTMLElement[]|NodeListOf<HTMLElement>} elementOrElements\n * @param {Keyframe[]} keyframes\n * @param {import('../tween.js').TweenOptions} [options]\n * @returns {Animate}\n */\nexport function animate(elementOrElements, keyframes, options = {}) {\n const controls = eachElements(elementOrElements, (element) =>\n singleAnimate(element, keyframes, options),\n );\n\n const delegate = (key) => {\n // eslint-disable-next-line consistent-return\n return (...args) => {\n if (key === 'progress' && args.length === 0) {\n return controls[0][key]();\n }\n\n controls.forEach((control) => {\n control[key](...args);\n });\n };\n };\n\n return {\n start: delegate('start'),\n pause: delegate('pause'),\n finish: delegate('finish'),\n play: delegate('play'),\n progress: delegate('progress'),\n };\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
package/utils/css/classes.cjs
CHANGED
|
@@ -25,15 +25,18 @@ __export(classes_exports, {
|
|
|
25
25
|
});
|
|
26
26
|
module.exports = __toCommonJS(classes_exports);
|
|
27
27
|
var import_is = require("../is.cjs");
|
|
28
|
+
var import_utils = require("./utils.cjs");
|
|
28
29
|
function setClasses(element, classNames, method, forceToggle) {
|
|
29
30
|
if (!element || !classNames) {
|
|
30
31
|
return;
|
|
31
32
|
}
|
|
32
|
-
const normalizedClassNames = (0, import_is.isArray)(classNames) ? classNames : classNames.split(" ");
|
|
33
|
+
const normalizedClassNames = (0, import_is.isArray)(classNames) ? classNames : classNames.split(" ").filter((className) => className);
|
|
33
34
|
if (method !== "toggle") {
|
|
34
|
-
element.classList[method](...normalizedClassNames);
|
|
35
|
+
(0, import_utils.eachElements)(element, (el) => el.classList[method](...normalizedClassNames));
|
|
35
36
|
} else {
|
|
36
|
-
normalizedClassNames.forEach(
|
|
37
|
+
normalizedClassNames.forEach(
|
|
38
|
+
(className) => (0, import_utils.eachElements)(element, (el) => el.classList[method](className, forceToggle))
|
|
39
|
+
);
|
|
37
40
|
}
|
|
38
41
|
}
|
|
39
42
|
function add(element, classNames) {
|
|
@@ -46,3 +49,4 @@ function toggle(element, classNames, force) {
|
|
|
46
49
|
setClasses(element, classNames, "toggle", force);
|
|
47
50
|
}
|
|
48
51
|
if (module.exports.default) module.exports = module.exports.default;
|
|
52
|
+
//# sourceMappingURL=classes.cjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../packages/js-toolkit/utils/css/classes.js"],
|
|
4
|
+
"sourcesContent": ["import { isArray } from '../is.js';\n// eslint-disable-next-line import/extensions\nimport { eachElements } from './utils.js';\n\n/**\n * Manage a list of classes as string on an element.\n *\n * @param {Element|Element[]|NodeListOf<Element>} element The element to update.\n * @param {string|string[]} classNames A string of class names.\n * @param {'add'|'remove'|'toggle'} [method] The method to use: add, remove or toggle.\n * @param {boolean} [forceToggle] Force toggle?\n */\nfunction setClasses(element, classNames, method, forceToggle) {\n if (!element || !classNames) {\n return;\n }\n\n const normalizedClassNames = isArray(classNames)\n ? classNames\n : classNames.split(' ').filter((className) => className);\n\n if (method !== 'toggle') {\n eachElements(element, (el) => el.classList[method](...normalizedClassNames));\n } else {\n normalizedClassNames.forEach((className) =>\n eachElements(element, (el) => el.classList[method](className, forceToggle)),\n );\n }\n}\n\n/**\n * Add class names to an element.\n *\n * @param {Element|Element[]|NodeListOf<Element>} element The element to update.\n * @param {string|string[]} classNames A string of class names.\n * @returns {void}\n */\nexport function add(element, classNames) {\n setClasses(element, classNames, 'add');\n}\n\n/**\n * Remove class names from an element.\n *\n * @param {Element|Element[]|NodeListOf<Element>} element The element to update.\n * @param {string|string[]} classNames A string of class names.\n * @returns {void}\n */\nexport function remove(element, classNames) {\n setClasses(element, classNames, 'remove');\n}\n\n/**\n * Toggle class names from an element.\n *\n * @param {Element|Element[]|NodeListOf<Element>} element The element to update.\n * @param {string|string[]} classNames A string of class names.\n * @param {boolean} [force] Force toggle?\n * @returns {void}\n */\nexport function toggle(element, classNames, force) {\n setClasses(element, classNames, 'toggle', force);\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAAwB;AAExB,mBAA6B;AAU7B,SAAS,WAAW,SAAS,YAAY,QAAQ,aAAa;AAC5D,MAAI,CAAC,WAAW,CAAC,YAAY;AAC3B;AAAA,EACF;AAEA,QAAM,2BAAuB,mBAAQ,UAAU,IAC3C,aACA,WAAW,MAAM,GAAG,EAAE,OAAO,CAAC,cAAc,SAAS;AAEzD,MAAI,WAAW,UAAU;AACvB,mCAAa,SAAS,CAAC,OAAO,GAAG,UAAU,QAAQ,GAAG,oBAAoB,CAAC;AAAA,EAC7E,OAAO;AACL,yBAAqB;AAAA,MAAQ,CAAC,kBAC5B,2BAAa,SAAS,CAAC,OAAO,GAAG,UAAU,QAAQ,WAAW,WAAW,CAAC;AAAA,IAC5E;AAAA,EACF;AACF;AASO,SAAS,IAAI,SAAS,YAAY;AACvC,aAAW,SAAS,YAAY,KAAK;AACvC;AASO,SAAS,OAAO,SAAS,YAAY;AAC1C,aAAW,SAAS,YAAY,QAAQ;AAC1C;AAUO,SAAS,OAAO,SAAS,YAAY,OAAO;AACjD,aAAW,SAAS,YAAY,UAAU,KAAK;AACjD;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
package/utils/css/classes.d.ts
CHANGED
|
@@ -1,25 +1,25 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Add class names to an element.
|
|
3
3
|
*
|
|
4
|
-
* @param {
|
|
4
|
+
* @param {Element|Element[]|NodeListOf<Element>} element The element to update.
|
|
5
5
|
* @param {string|string[]} classNames A string of class names.
|
|
6
6
|
* @returns {void}
|
|
7
7
|
*/
|
|
8
|
-
export function add(element:
|
|
8
|
+
export function add(element: Element | Element[] | NodeListOf<Element>, classNames: string | string[]): void;
|
|
9
9
|
/**
|
|
10
10
|
* Remove class names from an element.
|
|
11
11
|
*
|
|
12
|
-
* @param {
|
|
12
|
+
* @param {Element|Element[]|NodeListOf<Element>} element The element to update.
|
|
13
13
|
* @param {string|string[]} classNames A string of class names.
|
|
14
14
|
* @returns {void}
|
|
15
15
|
*/
|
|
16
|
-
export function remove(element:
|
|
16
|
+
export function remove(element: Element | Element[] | NodeListOf<Element>, classNames: string | string[]): void;
|
|
17
17
|
/**
|
|
18
18
|
* Toggle class names from an element.
|
|
19
19
|
*
|
|
20
|
-
* @param {
|
|
20
|
+
* @param {Element|Element[]|NodeListOf<Element>} element The element to update.
|
|
21
21
|
* @param {string|string[]} classNames A string of class names.
|
|
22
22
|
* @param {boolean} [force] Force toggle?
|
|
23
23
|
* @returns {void}
|
|
24
24
|
*/
|
|
25
|
-
export function toggle(element:
|
|
25
|
+
export function toggle(element: Element | Element[] | NodeListOf<Element>, classNames: string | string[], force?: boolean): void;
|
package/utils/css/classes.js
CHANGED
|
@@ -1,13 +1,16 @@
|
|
|
1
1
|
import { isArray } from "../is.js";
|
|
2
|
+
import { eachElements } from "./utils.js";
|
|
2
3
|
function setClasses(element, classNames, method, forceToggle) {
|
|
3
4
|
if (!element || !classNames) {
|
|
4
5
|
return;
|
|
5
6
|
}
|
|
6
|
-
const normalizedClassNames = isArray(classNames) ? classNames : classNames.split(" ");
|
|
7
|
+
const normalizedClassNames = isArray(classNames) ? classNames : classNames.split(" ").filter((className) => className);
|
|
7
8
|
if (method !== "toggle") {
|
|
8
|
-
element.classList[method](...normalizedClassNames);
|
|
9
|
+
eachElements(element, (el) => el.classList[method](...normalizedClassNames));
|
|
9
10
|
} else {
|
|
10
|
-
normalizedClassNames.forEach(
|
|
11
|
+
normalizedClassNames.forEach(
|
|
12
|
+
(className) => eachElements(element, (el) => el.classList[method](className, forceToggle))
|
|
13
|
+
);
|
|
11
14
|
}
|
|
12
15
|
}
|
|
13
16
|
function add(element, classNames) {
|
|
@@ -24,3 +27,4 @@ export {
|
|
|
24
27
|
remove,
|
|
25
28
|
toggle
|
|
26
29
|
};
|
|
30
|
+
//# sourceMappingURL=classes.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../packages/js-toolkit/utils/css/classes.js"],
|
|
4
|
+
"sourcesContent": ["import { isArray } from '../is.js';\n// eslint-disable-next-line import/extensions\nimport { eachElements } from './utils.js';\n\n/**\n * Manage a list of classes as string on an element.\n *\n * @param {Element|Element[]|NodeListOf<Element>} element The element to update.\n * @param {string|string[]} classNames A string of class names.\n * @param {'add'|'remove'|'toggle'} [method] The method to use: add, remove or toggle.\n * @param {boolean} [forceToggle] Force toggle?\n */\nfunction setClasses(element, classNames, method, forceToggle) {\n if (!element || !classNames) {\n return;\n }\n\n const normalizedClassNames = isArray(classNames)\n ? classNames\n : classNames.split(' ').filter((className) => className);\n\n if (method !== 'toggle') {\n eachElements(element, (el) => el.classList[method](...normalizedClassNames));\n } else {\n normalizedClassNames.forEach((className) =>\n eachElements(element, (el) => el.classList[method](className, forceToggle)),\n );\n }\n}\n\n/**\n * Add class names to an element.\n *\n * @param {Element|Element[]|NodeListOf<Element>} element The element to update.\n * @param {string|string[]} classNames A string of class names.\n * @returns {void}\n */\nexport function add(element, classNames) {\n setClasses(element, classNames, 'add');\n}\n\n/**\n * Remove class names from an element.\n *\n * @param {Element|Element[]|NodeListOf<Element>} element The element to update.\n * @param {string|string[]} classNames A string of class names.\n * @returns {void}\n */\nexport function remove(element, classNames) {\n setClasses(element, classNames, 'remove');\n}\n\n/**\n * Toggle class names from an element.\n *\n * @param {Element|Element[]|NodeListOf<Element>} element The element to update.\n * @param {string|string[]} classNames A string of class names.\n * @param {boolean} [force] Force toggle?\n * @returns {void}\n */\nexport function toggle(element, classNames, force) {\n setClasses(element, classNames, 'toggle', force);\n}\n"],
|
|
5
|
+
"mappings": "AAAA,SAAS,eAAe;AAExB,SAAS,oBAAoB;AAU7B,SAAS,WAAW,SAAS,YAAY,QAAQ,aAAa;AAC5D,MAAI,CAAC,WAAW,CAAC,YAAY;AAC3B;AAAA,EACF;AAEA,QAAM,uBAAuB,QAAQ,UAAU,IAC3C,aACA,WAAW,MAAM,GAAG,EAAE,OAAO,CAAC,cAAc,SAAS;AAEzD,MAAI,WAAW,UAAU;AACvB,iBAAa,SAAS,CAAC,OAAO,GAAG,UAAU,QAAQ,GAAG,oBAAoB,CAAC;AAAA,EAC7E,OAAO;AACL,yBAAqB;AAAA,MAAQ,CAAC,cAC5B,aAAa,SAAS,CAAC,OAAO,GAAG,UAAU,QAAQ,WAAW,WAAW,CAAC;AAAA,IAC5E;AAAA,EACF;AACF;AASO,SAAS,IAAI,SAAS,YAAY;AACvC,aAAW,SAAS,YAAY,KAAK;AACvC;AASO,SAAS,OAAO,SAAS,YAAY;AAC1C,aAAW,SAAS,YAAY,QAAQ;AAC1C;AAUO,SAAS,OAAO,SAAS,YAAY,OAAO;AACjD,aAAW,SAAS,YAAY,UAAU,KAAK;AACjD;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../packages/js-toolkit/utils/css/getOffsetSizes.js"],
|
|
4
|
+
"sourcesContent": ["/**\n * Get a `DOMRect` like `Object` for an element, without its transforms.\n * @param {HTMLElement} element\n * @returns {{ x: number, y: number, width: number, height: number, top: number, right: number, bottom: number, left: number }}\n */\nexport default function getOffsetSizes(element) {\n let parent = element;\n let x = -window.pageXOffset;\n let y = -window.pageYOffset;\n\n while (parent) {\n x += parent.offsetLeft;\n y += parent.offsetTop;\n // @ts-ignore\n parent = parent.offsetParent;\n }\n\n const width = element.offsetWidth;\n const height = element.offsetWidth;\n\n return {\n x,\n y,\n width,\n height,\n top: y,\n right: width + x,\n bottom: height + y,\n left: x,\n };\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAKe,SAAR,eAAgC,SAAS;AAC9C,MAAI,SAAS;AACb,MAAI,IAAI,CAAC,OAAO;AAChB,MAAI,IAAI,CAAC,OAAO;AAEhB,SAAO,QAAQ;AACb,SAAK,OAAO;AACZ,SAAK,OAAO;AAEZ,aAAS,OAAO;AAAA,EAClB;AAEA,QAAM,QAAQ,QAAQ;AACtB,QAAM,SAAS,QAAQ;AAEvB,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,KAAK;AAAA,IACL,OAAO,QAAQ;AAAA,IACf,QAAQ,SAAS;AAAA,IACjB,MAAM;AAAA,EACR;AACF;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../packages/js-toolkit/utils/css/getOffsetSizes.js"],
|
|
4
|
+
"sourcesContent": ["/**\n * Get a `DOMRect` like `Object` for an element, without its transforms.\n * @param {HTMLElement} element\n * @returns {{ x: number, y: number, width: number, height: number, top: number, right: number, bottom: number, left: number }}\n */\nexport default function getOffsetSizes(element) {\n let parent = element;\n let x = -window.pageXOffset;\n let y = -window.pageYOffset;\n\n while (parent) {\n x += parent.offsetLeft;\n y += parent.offsetTop;\n // @ts-ignore\n parent = parent.offsetParent;\n }\n\n const width = element.offsetWidth;\n const height = element.offsetWidth;\n\n return {\n x,\n y,\n width,\n height,\n top: y,\n right: width + x,\n bottom: height + y,\n left: x,\n };\n}\n"],
|
|
5
|
+
"mappings": "AAKe,SAAR,eAAgC,SAAS;AAC9C,MAAI,SAAS;AACb,MAAI,IAAI,CAAC,OAAO;AAChB,MAAI,IAAI,CAAC,OAAO;AAEhB,SAAO,QAAQ;AACb,SAAK,OAAO;AACZ,SAAK,OAAO;AAEZ,aAAS,OAAO;AAAA,EAClB;AAEA,QAAM,QAAQ,QAAQ;AACtB,QAAM,SAAS,QAAQ;AAEvB,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,KAAK;AAAA,IACL,OAAO,QAAQ;AAAA,IACf,QAAQ,SAAS;AAAA,IACjB,MAAM;AAAA,EACR;AACF;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
package/utils/css/index.cjs
CHANGED
|
@@ -23,7 +23,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
23
23
|
));
|
|
24
24
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
25
25
|
|
|
26
|
-
// packages/js-toolkit/utils/css/index.
|
|
26
|
+
// packages/js-toolkit/utils/css/index.ts
|
|
27
27
|
var css_exports = {};
|
|
28
28
|
__export(css_exports, {
|
|
29
29
|
addClass: () => import_classes.add,
|
|
@@ -45,3 +45,4 @@ var import_matrix = __toESM(require("./matrix.cjs"), 1);
|
|
|
45
45
|
var import_transform = __toESM(require("./transform.cjs"), 1);
|
|
46
46
|
var import_transition = __toESM(require("./transition.cjs"), 1);
|
|
47
47
|
if (module.exports.default) module.exports = module.exports.default;
|
|
48
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../packages/js-toolkit/utils/css/index.ts"],
|
|
4
|
+
"sourcesContent": ["export * from './animate.js';\nexport { add as addClass, remove as removeClass, toggle as toggleClass } from './classes.js';\nexport { add as addStyle, remove as removeStyle } from './styles.js';\nexport { default as getOffsetSizes } from './getOffsetSizes.js';\nexport { default as matrix } from './matrix.js';\nexport { default as transform } from './transform.js';\nexport { default as transition } from './transition.js';\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAAc,0BAAd;AACA,qBAA8E;AAC9E,oBAAuD;AACvD,4BAA0C;AAC1C,oBAAkC;AAClC,uBAAqC;AACrC,wBAAsC;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
package/utils/css/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
export * from
|
|
2
|
-
export {
|
|
3
|
-
export {
|
|
4
|
-
export { default as
|
|
5
|
-
export { default as
|
|
6
|
-
export {
|
|
7
|
-
export {
|
|
1
|
+
export * from './animate.js';
|
|
2
|
+
export { add as addClass, remove as removeClass, toggle as toggleClass } from './classes.js';
|
|
3
|
+
export { add as addStyle, remove as removeStyle } from './styles.js';
|
|
4
|
+
export { default as getOffsetSizes } from './getOffsetSizes.js';
|
|
5
|
+
export { default as matrix } from './matrix.js';
|
|
6
|
+
export { default as transform } from './transform.js';
|
|
7
|
+
export { default as transition } from './transition.js';
|
package/utils/css/index.js
CHANGED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../packages/js-toolkit/utils/css/index.ts"],
|
|
4
|
+
"sourcesContent": ["export * from './animate.js';\nexport { add as addClass, remove as removeClass, toggle as toggleClass } from './classes.js';\nexport { add as addStyle, remove as removeStyle } from './styles.js';\nexport { default as getOffsetSizes } from './getOffsetSizes.js';\nexport { default as matrix } from './matrix.js';\nexport { default as transform } from './transform.js';\nexport { default as transition } from './transition.js';\n"],
|
|
5
|
+
"mappings": "AAAA,cAAc;AACd,SAAgB,KAAoB,QAAuB,cAAmB;AAC9E,SAAgB,OAAPA,MAA2B,UAAVC,eAA6B;AACvD,SAAoB,WAAXC,gBAAiC;AAC1C,SAAoB,WAAXA,gBAAyB;AAClC,SAAoB,WAAXA,gBAA4B;AACrC,SAAoB,WAAXA,gBAA6B;",
|
|
6
|
+
"names": ["add", "remove", "default"]
|
|
7
|
+
}
|
package/utils/css/matrix.cjs
CHANGED
|
@@ -23,8 +23,8 @@ __export(matrix_exports, {
|
|
|
23
23
|
});
|
|
24
24
|
module.exports = __toCommonJS(matrix_exports);
|
|
25
25
|
function matrix(transform) {
|
|
26
|
-
var _a, _b, _c, _d, _e, _f;
|
|
27
26
|
transform = transform || {};
|
|
28
|
-
return `matrix(${
|
|
27
|
+
return `matrix(${transform.scaleX ?? 1}, ${transform.skewY ?? 0}, ${transform.skewX ?? 0}, ${transform.scaleY ?? 1}, ${transform.translateX ?? 0}, ${transform.translateY ?? 0})`;
|
|
29
28
|
}
|
|
30
29
|
if (module.exports.default) module.exports = module.exports.default;
|
|
30
|
+
//# sourceMappingURL=matrix.cjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../packages/js-toolkit/utils/css/matrix.js"],
|
|
4
|
+
"sourcesContent": ["/**\n * Format a CSS transform matrix with the given values.\n *\n * @param {Object} transform\n * @param {number} [transform.scaleX=1] The scale on the x axis.\n * @param {number} [transform.scaleY=1] The scale on the y axis.\n * @param {number} [transform.skewX=0] The skew on the x axis.\n * @param {number} [transform.skewY=0] The skew on the y axis.\n * @param {number} [transform.translateX=0] The translate on the x axis.\n * @param {number} [transform.translateY=0] The translate on the y axis.\n * @returns {string} A formatted CSS matrix transform.\n * @example\n * ```js\n * matrix({ scaleX: 0.5, scaleY: 0.5 });\n * // matrix(0.5, 0, 0, 0.5, 0, 0)\n * ```\n */\nexport default function matrix(transform) {\n // eslint-disable-next-line no-param-reassign\n transform = transform || {};\n return `matrix(${transform.scaleX ?? 1}, ${transform.skewY ?? 0}, ${transform.skewX ?? 0}, ${\n transform.scaleY ?? 1\n }, ${transform.translateX ?? 0}, ${transform.translateY ?? 0})`;\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAiBe,SAAR,OAAwB,WAAW;AAExC,cAAY,aAAa,CAAC;AAC1B,SAAO,UAAU,UAAU,UAAU,MAAM,UAAU,SAAS,MAAM,UAAU,SAAS,MACrF,UAAU,UAAU,MACjB,UAAU,cAAc,MAAM,UAAU,cAAc;AAC7D;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
package/utils/css/matrix.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
function matrix(transform) {
|
|
2
|
-
var _a, _b, _c, _d, _e, _f;
|
|
3
2
|
transform = transform || {};
|
|
4
|
-
return `matrix(${
|
|
3
|
+
return `matrix(${transform.scaleX ?? 1}, ${transform.skewY ?? 0}, ${transform.skewX ?? 0}, ${transform.scaleY ?? 1}, ${transform.translateX ?? 0}, ${transform.translateY ?? 0})`;
|
|
5
4
|
}
|
|
6
5
|
export {
|
|
7
6
|
matrix as default
|
|
8
7
|
};
|
|
8
|
+
//# sourceMappingURL=matrix.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../packages/js-toolkit/utils/css/matrix.js"],
|
|
4
|
+
"sourcesContent": ["/**\n * Format a CSS transform matrix with the given values.\n *\n * @param {Object} transform\n * @param {number} [transform.scaleX=1] The scale on the x axis.\n * @param {number} [transform.scaleY=1] The scale on the y axis.\n * @param {number} [transform.skewX=0] The skew on the x axis.\n * @param {number} [transform.skewY=0] The skew on the y axis.\n * @param {number} [transform.translateX=0] The translate on the x axis.\n * @param {number} [transform.translateY=0] The translate on the y axis.\n * @returns {string} A formatted CSS matrix transform.\n * @example\n * ```js\n * matrix({ scaleX: 0.5, scaleY: 0.5 });\n * // matrix(0.5, 0, 0, 0.5, 0, 0)\n * ```\n */\nexport default function matrix(transform) {\n // eslint-disable-next-line no-param-reassign\n transform = transform || {};\n return `matrix(${transform.scaleX ?? 1}, ${transform.skewY ?? 0}, ${transform.skewX ?? 0}, ${\n transform.scaleY ?? 1\n }, ${transform.translateX ?? 0}, ${transform.translateY ?? 0})`;\n}\n"],
|
|
5
|
+
"mappings": "AAiBe,SAAR,OAAwB,WAAW;AAExC,cAAY,aAAa,CAAC;AAC1B,SAAO,UAAU,UAAU,UAAU,MAAM,UAAU,SAAS,MAAM,UAAU,SAAS,MACrF,UAAU,UAAU,MACjB,UAAU,cAAc,MAAM,UAAU,cAAc;AAC7D;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
package/utils/css/styles.cjs
CHANGED
|
@@ -24,18 +24,22 @@ __export(styles_exports, {
|
|
|
24
24
|
});
|
|
25
25
|
module.exports = __toCommonJS(styles_exports);
|
|
26
26
|
var import_is = require("../is.cjs");
|
|
27
|
-
|
|
28
|
-
|
|
27
|
+
var import_utils = require("./utils.cjs");
|
|
28
|
+
function setStyles(elementOrElements, styles, method = "add") {
|
|
29
|
+
if (!elementOrElements || !styles || !(0, import_is.isObject)(styles)) {
|
|
29
30
|
return;
|
|
30
31
|
}
|
|
31
|
-
|
|
32
|
-
|
|
32
|
+
(0, import_utils.eachElements)(elementOrElements, (el) => {
|
|
33
|
+
Object.entries(styles).forEach(([prop, value]) => {
|
|
34
|
+
el.style[prop] = method === "add" ? value : "";
|
|
35
|
+
});
|
|
33
36
|
});
|
|
34
37
|
}
|
|
35
|
-
function add(
|
|
36
|
-
setStyles(
|
|
38
|
+
function add(elementOrElements, styles) {
|
|
39
|
+
setStyles(elementOrElements, styles);
|
|
37
40
|
}
|
|
38
|
-
function remove(
|
|
39
|
-
setStyles(
|
|
41
|
+
function remove(elementOrElements, styles) {
|
|
42
|
+
setStyles(elementOrElements, styles, "remove");
|
|
40
43
|
}
|
|
41
44
|
if (module.exports.default) module.exports = module.exports.default;
|
|
45
|
+
//# sourceMappingURL=styles.cjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../packages/js-toolkit/utils/css/styles.js"],
|
|
4
|
+
"sourcesContent": ["import { isObject } from '../is.js';\n// eslint-disable-next-line import/extensions\nimport { eachElements } from './utils.js';\n\n/**\n * Manage a list of style properties on an element.\n *\n * @param {HTMLElement|HTMLElement[]|NodeListOf<HTMLElement>} elementOrElements The element to update.\n * @param {Partial<CSSStyleDeclaration>} styles An object of styles properties and values.\n * @param {string} method The method to use: add or remove.\n */\nfunction setStyles(elementOrElements, styles, method = 'add') {\n if (!elementOrElements || !styles || !isObject(styles)) {\n return;\n }\n\n eachElements(elementOrElements, (el) => {\n Object.entries(styles).forEach(([prop, value]) => {\n el.style[prop] = method === 'add' ? value : '';\n });\n });\n}\n\n/**\n * Add styles to an element.\n *\n * @param {HTMLElement|HTMLElement[]|NodeListOf<HTMLElement>} elementOrElements The element to update.\n * @param {Partial<CSSStyleDeclaration>} styles A string of class names.\n * @returns {void}\n */\nexport function add(elementOrElements, styles) {\n setStyles(elementOrElements, styles);\n}\n\n/**\n * Remove class names from an element.\n *\n * @param {HTMLElement|HTMLElement[]|NodeListOf<HTMLElement>} elementOrElements The element to update.\n * @param {Partial<CSSStyleDeclaration>} styles A string of class names.\n * @returns {void}\n */\nexport function remove(elementOrElements, styles) {\n setStyles(elementOrElements, styles, 'remove');\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAAyB;AAEzB,mBAA6B;AAS7B,SAAS,UAAU,mBAAmB,QAAQ,SAAS,OAAO;AAC5D,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;AASO,SAAS,IAAI,mBAAmB,QAAQ;AAC7C,YAAU,mBAAmB,MAAM;AACrC;AASO,SAAS,OAAO,mBAAmB,QAAQ;AAChD,YAAU,mBAAmB,QAAQ,QAAQ;AAC/C;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
package/utils/css/styles.d.ts
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Add styles to an element.
|
|
3
3
|
*
|
|
4
|
-
* @param {HTMLElement}
|
|
4
|
+
* @param {HTMLElement|HTMLElement[]|NodeListOf<HTMLElement>} elementOrElements The element to update.
|
|
5
5
|
* @param {Partial<CSSStyleDeclaration>} styles A string of class names.
|
|
6
6
|
* @returns {void}
|
|
7
7
|
*/
|
|
8
|
-
export function add(
|
|
8
|
+
export function add(elementOrElements: HTMLElement | HTMLElement[] | NodeListOf<HTMLElement>, styles: Partial<CSSStyleDeclaration>): void;
|
|
9
9
|
/**
|
|
10
10
|
* Remove class names from an element.
|
|
11
11
|
*
|
|
12
|
-
* @param {HTMLElement}
|
|
12
|
+
* @param {HTMLElement|HTMLElement[]|NodeListOf<HTMLElement>} elementOrElements The element to update.
|
|
13
13
|
* @param {Partial<CSSStyleDeclaration>} styles A string of class names.
|
|
14
14
|
* @returns {void}
|
|
15
15
|
*/
|
|
16
|
-
export function remove(
|
|
16
|
+
export function remove(elementOrElements: HTMLElement | HTMLElement[] | NodeListOf<HTMLElement>, styles: Partial<CSSStyleDeclaration>): void;
|
package/utils/css/styles.js
CHANGED
|
@@ -1,19 +1,23 @@
|
|
|
1
1
|
import { isObject } from "../is.js";
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
import { eachElements } from "./utils.js";
|
|
3
|
+
function setStyles(elementOrElements, styles, method = "add") {
|
|
4
|
+
if (!elementOrElements || !styles || !isObject(styles)) {
|
|
4
5
|
return;
|
|
5
6
|
}
|
|
6
|
-
|
|
7
|
-
|
|
7
|
+
eachElements(elementOrElements, (el) => {
|
|
8
|
+
Object.entries(styles).forEach(([prop, value]) => {
|
|
9
|
+
el.style[prop] = method === "add" ? value : "";
|
|
10
|
+
});
|
|
8
11
|
});
|
|
9
12
|
}
|
|
10
|
-
function add(
|
|
11
|
-
setStyles(
|
|
13
|
+
function add(elementOrElements, styles) {
|
|
14
|
+
setStyles(elementOrElements, styles);
|
|
12
15
|
}
|
|
13
|
-
function remove(
|
|
14
|
-
setStyles(
|
|
16
|
+
function remove(elementOrElements, styles) {
|
|
17
|
+
setStyles(elementOrElements, styles, "remove");
|
|
15
18
|
}
|
|
16
19
|
export {
|
|
17
20
|
add,
|
|
18
21
|
remove
|
|
19
22
|
};
|
|
23
|
+
//# sourceMappingURL=styles.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../packages/js-toolkit/utils/css/styles.js"],
|
|
4
|
+
"sourcesContent": ["import { isObject } from '../is.js';\n// eslint-disable-next-line import/extensions\nimport { eachElements } from './utils.js';\n\n/**\n * Manage a list of style properties on an element.\n *\n * @param {HTMLElement|HTMLElement[]|NodeListOf<HTMLElement>} elementOrElements The element to update.\n * @param {Partial<CSSStyleDeclaration>} styles An object of styles properties and values.\n * @param {string} method The method to use: add or remove.\n */\nfunction setStyles(elementOrElements, styles, method = 'add') {\n if (!elementOrElements || !styles || !isObject(styles)) {\n return;\n }\n\n eachElements(elementOrElements, (el) => {\n Object.entries(styles).forEach(([prop, value]) => {\n el.style[prop] = method === 'add' ? value : '';\n });\n });\n}\n\n/**\n * Add styles to an element.\n *\n * @param {HTMLElement|HTMLElement[]|NodeListOf<HTMLElement>} elementOrElements The element to update.\n * @param {Partial<CSSStyleDeclaration>} styles A string of class names.\n * @returns {void}\n */\nexport function add(elementOrElements, styles) {\n setStyles(elementOrElements, styles);\n}\n\n/**\n * Remove class names from an element.\n *\n * @param {HTMLElement|HTMLElement[]|NodeListOf<HTMLElement>} elementOrElements The element to update.\n * @param {Partial<CSSStyleDeclaration>} styles A string of class names.\n * @returns {void}\n */\nexport function remove(elementOrElements, styles) {\n setStyles(elementOrElements, styles, 'remove');\n}\n"],
|
|
5
|
+
"mappings": "AAAA,SAAS,gBAAgB;AAEzB,SAAS,oBAAoB;AAS7B,SAAS,UAAU,mBAAmB,QAAQ,SAAS,OAAO;AAC5D,MAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,SAAS,MAAM,GAAG;AACtD;AAAA,EACF;AAEA,eAAa,mBAAmB,CAAC,OAAO;AACtC,WAAO,QAAQ,MAAM,EAAE,QAAQ,CAAC,CAAC,MAAM,KAAK,MAAM;AAChD,SAAG,MAAM,QAAQ,WAAW,QAAQ,QAAQ;AAAA,IAC9C,CAAC;AAAA,EACH,CAAC;AACH;AASO,SAAS,IAAI,mBAAmB,QAAQ;AAC7C,YAAU,mBAAmB,MAAM;AACrC;AASO,SAAS,OAAO,mBAAmB,QAAQ;AAChD,YAAU,mBAAmB,QAAQ,QAAQ;AAC/C;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
package/utils/css/transform.cjs
CHANGED
|
@@ -24,6 +24,7 @@ __export(transform_exports, {
|
|
|
24
24
|
});
|
|
25
25
|
module.exports = __toCommonJS(transform_exports);
|
|
26
26
|
var import_is = require("../is.cjs");
|
|
27
|
+
var import_utils = require("./utils.cjs");
|
|
27
28
|
var TRANSFORM_PROPS = [
|
|
28
29
|
"x",
|
|
29
30
|
"y",
|
|
@@ -40,11 +41,10 @@ var TRANSFORM_PROPS = [
|
|
|
40
41
|
"skewX",
|
|
41
42
|
"skewY"
|
|
42
43
|
];
|
|
43
|
-
function transform(
|
|
44
|
-
var _a, _b, _c;
|
|
44
|
+
function transform(elementOrElements, props) {
|
|
45
45
|
let value = "";
|
|
46
46
|
if ((0, import_is.isDefined)(props.x) || (0, import_is.isDefined)(props.y) || (0, import_is.isDefined)(props.z)) {
|
|
47
|
-
value += `translate3d(${
|
|
47
|
+
value += `translate3d(${props.x ?? 0}px, ${props.y ?? 0}px, ${props.z ?? 0}px) `;
|
|
48
48
|
}
|
|
49
49
|
if ((0, import_is.isDefined)(props.rotate)) {
|
|
50
50
|
value += `rotate(${props.rotate}deg) `;
|
|
@@ -82,7 +82,10 @@ function transform(element, props) {
|
|
|
82
82
|
value += `skewY(${props.skewY}deg) `;
|
|
83
83
|
}
|
|
84
84
|
}
|
|
85
|
-
|
|
85
|
+
(0, import_utils.eachElements)(elementOrElements, (element) => {
|
|
86
|
+
element.style.transform = value;
|
|
87
|
+
});
|
|
86
88
|
return value;
|
|
87
89
|
}
|
|
88
90
|
if (module.exports.default) module.exports = module.exports.default;
|
|
91
|
+
//# sourceMappingURL=transform.cjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../packages/js-toolkit/utils/css/transform.js"],
|
|
4
|
+
"sourcesContent": ["import { isDefined } from '../is.js';\n// eslint-disable-next-line import/extensions\nimport { eachElements } from './utils.js';\n\n/**\n * @typedef {Partial<{\n * x: number;\n * y: number;\n * z: number;\n * rotate: number;\n * rotateX: number;\n * rotateY: number;\n * rotateZ: number;\n * scale: number;\n * scaleX: number;\n * scaleY: number;\n * scaleZ: number;\n * skew: number;\n * skewX: number;\n * skewY: number;\n * }>} TransformProps\n */\n\nexport const TRANSFORM_PROPS = [\n 'x',\n 'y',\n 'z',\n 'rotate',\n 'rotateX',\n 'rotateY',\n 'rotateZ',\n 'scale',\n 'scaleX',\n 'scaleY',\n 'scaleZ',\n 'skew',\n 'skewX',\n 'skewY',\n];\n\n/**\n * Generate a CSS transform.\n *\n * @param {HTMLElement|HTMLElement[]|NodeListOf<HTMLElement>} elementOrElements\n * @param {TransformProps} props\n * @returns {string}\n */\nexport default function transform(elementOrElements, props) {\n let value = '';\n\n if (isDefined(props.x) || isDefined(props.y) || isDefined(props.z)) {\n value += `translate3d(${props.x ?? 0}px, ${props.y ?? 0}px, ${props.z ?? 0}px) `;\n }\n\n if (isDefined(props.rotate)) {\n value += `rotate(${props.rotate}deg) `;\n } else {\n if (isDefined(props.rotateX)) {\n value += `rotateX(${props.rotateX}deg) `;\n }\n\n if (isDefined(props.rotateY)) {\n value += `rotateY(${props.rotateY}deg) `;\n }\n\n if (isDefined(props.rotateZ)) {\n value += `rotateZ(${props.rotateZ}deg) `;\n }\n }\n\n if (isDefined(props.scale)) {\n value += `scale(${props.scale}) `;\n } else {\n if (isDefined(props.scaleX)) {\n value += `scaleX(${props.scaleX}) `;\n }\n\n if (isDefined(props.scaleY)) {\n value += `scaleY(${props.scaleY}) `;\n }\n\n if (isDefined(props.scaleZ)) {\n value += `scaleZ(${props.scaleZ}) `;\n }\n }\n\n if (isDefined(props.skew)) {\n value += `skew(${props.skew}deg) `;\n } else {\n if (isDefined(props.skewX)) {\n value += `skewX(${props.skewX}deg) `;\n }\n\n if (isDefined(props.skewY)) {\n value += `skewY(${props.skewY}deg) `;\n }\n }\n\n eachElements(elementOrElements, (element) => {\n element.style.transform = value;\n });\n return value;\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAA0B;AAE1B,mBAA6B;AAqBtB,IAAM,kBAAkB;AAAA,EAC7B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AASe,SAAR,UAA2B,mBAAmB,OAAO;AAC1D,MAAI,QAAQ;AAEZ,UAAI,qBAAU,MAAM,CAAC,SAAK,qBAAU,MAAM,CAAC,SAAK,qBAAU,MAAM,CAAC,GAAG;AAClE,aAAS,eAAe,MAAM,KAAK,QAAQ,MAAM,KAAK,QAAQ,MAAM,KAAK;AAAA,EAC3E;AAEA,UAAI,qBAAU,MAAM,MAAM,GAAG;AAC3B,aAAS,UAAU,MAAM;AAAA,EAC3B,OAAO;AACL,YAAI,qBAAU,MAAM,OAAO,GAAG;AAC5B,eAAS,WAAW,MAAM;AAAA,IAC5B;AAEA,YAAI,qBAAU,MAAM,OAAO,GAAG;AAC5B,eAAS,WAAW,MAAM;AAAA,IAC5B;AAEA,YAAI,qBAAU,MAAM,OAAO,GAAG;AAC5B,eAAS,WAAW,MAAM;AAAA,IAC5B;AAAA,EACF;AAEA,UAAI,qBAAU,MAAM,KAAK,GAAG;AAC1B,aAAS,SAAS,MAAM;AAAA,EAC1B,OAAO;AACL,YAAI,qBAAU,MAAM,MAAM,GAAG;AAC3B,eAAS,UAAU,MAAM;AAAA,IAC3B;AAEA,YAAI,qBAAU,MAAM,MAAM,GAAG;AAC3B,eAAS,UAAU,MAAM;AAAA,IAC3B;AAEA,YAAI,qBAAU,MAAM,MAAM,GAAG;AAC3B,eAAS,UAAU,MAAM;AAAA,IAC3B;AAAA,EACF;AAEA,UAAI,qBAAU,MAAM,IAAI,GAAG;AACzB,aAAS,QAAQ,MAAM;AAAA,EACzB,OAAO;AACL,YAAI,qBAAU,MAAM,KAAK,GAAG;AAC1B,eAAS,SAAS,MAAM;AAAA,IAC1B;AAEA,YAAI,qBAAU,MAAM,KAAK,GAAG;AAC1B,eAAS,SAAS,MAAM;AAAA,IAC1B;AAAA,EACF;AAEA,iCAAa,mBAAmB,CAAC,YAAY;AAC3C,YAAQ,MAAM,YAAY;AAAA,EAC5B,CAAC;AACD,SAAO;AACT;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
package/utils/css/transform.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Generate a CSS transform.
|
|
3
3
|
*
|
|
4
|
-
* @param {HTMLElement}
|
|
4
|
+
* @param {HTMLElement|HTMLElement[]|NodeListOf<HTMLElement>} elementOrElements
|
|
5
5
|
* @param {TransformProps} props
|
|
6
6
|
* @returns {string}
|
|
7
7
|
*/
|
|
8
|
-
export default function transform(
|
|
8
|
+
export default function transform(elementOrElements: HTMLElement | HTMLElement[] | NodeListOf<HTMLElement>, props: TransformProps): string;
|
|
9
9
|
/**
|
|
10
10
|
* @typedef {Partial<{
|
|
11
11
|
* x: number;
|
package/utils/css/transform.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { isDefined } from "../is.js";
|
|
2
|
+
import { eachElements } from "./utils.js";
|
|
2
3
|
const TRANSFORM_PROPS = [
|
|
3
4
|
"x",
|
|
4
5
|
"y",
|
|
@@ -15,11 +16,10 @@ const TRANSFORM_PROPS = [
|
|
|
15
16
|
"skewX",
|
|
16
17
|
"skewY"
|
|
17
18
|
];
|
|
18
|
-
function transform(
|
|
19
|
-
var _a, _b, _c;
|
|
19
|
+
function transform(elementOrElements, props) {
|
|
20
20
|
let value = "";
|
|
21
21
|
if (isDefined(props.x) || isDefined(props.y) || isDefined(props.z)) {
|
|
22
|
-
value += `translate3d(${
|
|
22
|
+
value += `translate3d(${props.x ?? 0}px, ${props.y ?? 0}px, ${props.z ?? 0}px) `;
|
|
23
23
|
}
|
|
24
24
|
if (isDefined(props.rotate)) {
|
|
25
25
|
value += `rotate(${props.rotate}deg) `;
|
|
@@ -57,10 +57,13 @@ function transform(element, props) {
|
|
|
57
57
|
value += `skewY(${props.skewY}deg) `;
|
|
58
58
|
}
|
|
59
59
|
}
|
|
60
|
-
element
|
|
60
|
+
eachElements(elementOrElements, (element) => {
|
|
61
|
+
element.style.transform = value;
|
|
62
|
+
});
|
|
61
63
|
return value;
|
|
62
64
|
}
|
|
63
65
|
export {
|
|
64
66
|
TRANSFORM_PROPS,
|
|
65
67
|
transform as default
|
|
66
68
|
};
|
|
69
|
+
//# sourceMappingURL=transform.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../packages/js-toolkit/utils/css/transform.js"],
|
|
4
|
+
"sourcesContent": ["import { isDefined } from '../is.js';\n// eslint-disable-next-line import/extensions\nimport { eachElements } from './utils.js';\n\n/**\n * @typedef {Partial<{\n * x: number;\n * y: number;\n * z: number;\n * rotate: number;\n * rotateX: number;\n * rotateY: number;\n * rotateZ: number;\n * scale: number;\n * scaleX: number;\n * scaleY: number;\n * scaleZ: number;\n * skew: number;\n * skewX: number;\n * skewY: number;\n * }>} TransformProps\n */\n\nexport const TRANSFORM_PROPS = [\n 'x',\n 'y',\n 'z',\n 'rotate',\n 'rotateX',\n 'rotateY',\n 'rotateZ',\n 'scale',\n 'scaleX',\n 'scaleY',\n 'scaleZ',\n 'skew',\n 'skewX',\n 'skewY',\n];\n\n/**\n * Generate a CSS transform.\n *\n * @param {HTMLElement|HTMLElement[]|NodeListOf<HTMLElement>} elementOrElements\n * @param {TransformProps} props\n * @returns {string}\n */\nexport default function transform(elementOrElements, props) {\n let value = '';\n\n if (isDefined(props.x) || isDefined(props.y) || isDefined(props.z)) {\n value += `translate3d(${props.x ?? 0}px, ${props.y ?? 0}px, ${props.z ?? 0}px) `;\n }\n\n if (isDefined(props.rotate)) {\n value += `rotate(${props.rotate}deg) `;\n } else {\n if (isDefined(props.rotateX)) {\n value += `rotateX(${props.rotateX}deg) `;\n }\n\n if (isDefined(props.rotateY)) {\n value += `rotateY(${props.rotateY}deg) `;\n }\n\n if (isDefined(props.rotateZ)) {\n value += `rotateZ(${props.rotateZ}deg) `;\n }\n }\n\n if (isDefined(props.scale)) {\n value += `scale(${props.scale}) `;\n } else {\n if (isDefined(props.scaleX)) {\n value += `scaleX(${props.scaleX}) `;\n }\n\n if (isDefined(props.scaleY)) {\n value += `scaleY(${props.scaleY}) `;\n }\n\n if (isDefined(props.scaleZ)) {\n value += `scaleZ(${props.scaleZ}) `;\n }\n }\n\n if (isDefined(props.skew)) {\n value += `skew(${props.skew}deg) `;\n } else {\n if (isDefined(props.skewX)) {\n value += `skewX(${props.skewX}deg) `;\n }\n\n if (isDefined(props.skewY)) {\n value += `skewY(${props.skewY}deg) `;\n }\n }\n\n eachElements(elementOrElements, (element) => {\n element.style.transform = value;\n });\n return value;\n}\n"],
|
|
5
|
+
"mappings": "AAAA,SAAS,iBAAiB;AAE1B,SAAS,oBAAoB;AAqBtB,MAAM,kBAAkB;AAAA,EAC7B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AASe,SAAR,UAA2B,mBAAmB,OAAO;AAC1D,MAAI,QAAQ;AAEZ,MAAI,UAAU,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,GAAG;AAClE,aAAS,eAAe,MAAM,KAAK,QAAQ,MAAM,KAAK,QAAQ,MAAM,KAAK;AAAA,EAC3E;AAEA,MAAI,UAAU,MAAM,MAAM,GAAG;AAC3B,aAAS,UAAU,MAAM;AAAA,EAC3B,OAAO;AACL,QAAI,UAAU,MAAM,OAAO,GAAG;AAC5B,eAAS,WAAW,MAAM;AAAA,IAC5B;AAEA,QAAI,UAAU,MAAM,OAAO,GAAG;AAC5B,eAAS,WAAW,MAAM;AAAA,IAC5B;AAEA,QAAI,UAAU,MAAM,OAAO,GAAG;AAC5B,eAAS,WAAW,MAAM;AAAA,IAC5B;AAAA,EACF;AAEA,MAAI,UAAU,MAAM,KAAK,GAAG;AAC1B,aAAS,SAAS,MAAM;AAAA,EAC1B,OAAO;AACL,QAAI,UAAU,MAAM,MAAM,GAAG;AAC3B,eAAS,UAAU,MAAM;AAAA,IAC3B;AAEA,QAAI,UAAU,MAAM,MAAM,GAAG;AAC3B,eAAS,UAAU,MAAM;AAAA,IAC3B;AAEA,QAAI,UAAU,MAAM,MAAM,GAAG;AAC3B,eAAS,UAAU,MAAM;AAAA,IAC3B;AAAA,EACF;AAEA,MAAI,UAAU,MAAM,IAAI,GAAG;AACzB,aAAS,QAAQ,MAAM;AAAA,EACzB,OAAO;AACL,QAAI,UAAU,MAAM,KAAK,GAAG;AAC1B,eAAS,SAAS,MAAM;AAAA,IAC1B;AAEA,QAAI,UAAU,MAAM,KAAK,GAAG;AAC1B,eAAS,SAAS,MAAM;AAAA,IAC1B;AAAA,EACF;AAEA,eAAa,mBAAmB,CAAC,YAAY;AAC3C,YAAQ,MAAM,YAAY;AAAA,EAC5B,CAAC;AACD,SAAO;AACT;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|