@studiometa/js-toolkit 2.6.0 → 2.6.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Base/index.cjs +41 -41
- package/Base/index.cjs.map +7 -0
- package/Base/index.js +58 -64
- package/Base/index.js.map +7 -0
- package/Base/managers/AbstractManager.cjs +6 -10
- package/Base/managers/AbstractManager.cjs.map +7 -0
- package/Base/managers/AbstractManager.js +6 -11
- package/Base/managers/AbstractManager.js.map +7 -0
- package/Base/managers/ChildrenManager.cjs +3 -11
- package/Base/managers/ChildrenManager.cjs.map +7 -0
- package/Base/managers/ChildrenManager.js +3 -12
- package/Base/managers/ChildrenManager.js.map +7 -0
- package/Base/managers/EventsManager.cjs +57 -61
- package/Base/managers/EventsManager.cjs.map +7 -0
- package/Base/managers/EventsManager.js +57 -62
- package/Base/managers/EventsManager.js.map +7 -0
- package/Base/managers/OptionsManager.cjs +8 -14
- package/Base/managers/OptionsManager.cjs.map +7 -0
- package/Base/managers/OptionsManager.js +8 -15
- package/Base/managers/OptionsManager.js.map +7 -0
- package/Base/managers/RefsManager.cjs +2 -2
- package/Base/managers/RefsManager.cjs.map +7 -0
- package/Base/managers/RefsManager.js +2 -2
- package/Base/managers/RefsManager.js.map +7 -0
- package/Base/managers/ResponsiveOptionsManager.cjs +1 -0
- package/Base/managers/ResponsiveOptionsManager.cjs.map +7 -0
- package/Base/managers/ResponsiveOptionsManager.js +1 -0
- package/Base/managers/ResponsiveOptionsManager.js.map +7 -0
- package/Base/managers/ServicesManager.cjs +3 -12
- package/Base/managers/ServicesManager.cjs.map +7 -0
- package/Base/managers/ServicesManager.js +3 -13
- package/Base/managers/ServicesManager.js.map +7 -0
- package/Base/types.cjs +1 -0
- package/Base/types.cjs.map +7 -0
- package/Base/types.js +1 -0
- package/Base/types.js.map +7 -0
- package/Base/utils.cjs +1 -0
- package/Base/utils.cjs.map +7 -0
- package/Base/utils.js +1 -0
- package/Base/utils.js.map +7 -0
- package/decorators/index.cjs +1 -0
- package/decorators/index.cjs.map +7 -0
- package/decorators/index.js +1 -0
- package/decorators/index.js.map +7 -0
- package/decorators/withBreakpointManager.cjs +1 -0
- package/decorators/withBreakpointManager.cjs.map +7 -0
- package/decorators/withBreakpointManager.js +1 -0
- package/decorators/withBreakpointManager.js.map +7 -0
- package/decorators/withBreakpointObserver.cjs +10 -15
- package/decorators/withBreakpointObserver.cjs.map +7 -0
- package/decorators/withBreakpointObserver.js +10 -16
- package/decorators/withBreakpointObserver.js.map +7 -0
- package/decorators/withDrag.cjs +5 -9
- package/decorators/withDrag.cjs.map +7 -0
- package/decorators/withDrag.js +5 -10
- package/decorators/withDrag.js.map +7 -0
- package/decorators/withExtraConfig.cjs +2 -6
- package/decorators/withExtraConfig.cjs.map +7 -0
- package/decorators/withExtraConfig.js +2 -7
- package/decorators/withExtraConfig.js.map +7 -0
- package/decorators/withFreezedOptions.cjs +2 -9
- package/decorators/withFreezedOptions.cjs.map +7 -0
- package/decorators/withFreezedOptions.js +2 -10
- package/decorators/withFreezedOptions.js.map +7 -0
- package/decorators/withIntersectionObserver.cjs +11 -16
- package/decorators/withIntersectionObserver.cjs.map +7 -0
- package/decorators/withIntersectionObserver.js +11 -17
- package/decorators/withIntersectionObserver.js.map +7 -0
- package/decorators/withMountWhenInView.cjs +11 -16
- package/decorators/withMountWhenInView.cjs.map +7 -0
- package/decorators/withMountWhenInView.js +11 -17
- package/decorators/withMountWhenInView.js.map +7 -0
- package/decorators/withResponsiveOptions.cjs +1 -0
- package/decorators/withResponsiveOptions.cjs.map +7 -0
- package/decorators/withResponsiveOptions.js +1 -0
- package/decorators/withResponsiveOptions.js.map +7 -0
- package/decorators/withScrolledInView.cjs +45 -50
- package/decorators/withScrolledInView.cjs.map +7 -0
- package/decorators/withScrolledInView.js +45 -51
- package/decorators/withScrolledInView.js.map +7 -0
- package/decorators/withVue2.cjs +9 -15
- package/decorators/withVue2.cjs.map +7 -0
- package/decorators/withVue2.js +9 -16
- package/decorators/withVue2.js.map +7 -0
- package/helpers/createApp.cjs +1 -0
- package/helpers/createApp.cjs.map +7 -0
- package/helpers/createApp.js +1 -0
- package/helpers/createApp.js.map +7 -0
- package/helpers/getClosestParent.cjs +1 -0
- package/helpers/getClosestParent.cjs.map +7 -0
- package/helpers/getClosestParent.js +1 -0
- package/helpers/getClosestParent.js.map +7 -0
- package/helpers/getDirectChildren.cjs +1 -0
- package/helpers/getDirectChildren.cjs.map +7 -0
- package/helpers/getDirectChildren.js +1 -0
- package/helpers/getDirectChildren.js.map +7 -0
- package/helpers/getInstanceFromElement.cjs +1 -0
- package/helpers/getInstanceFromElement.cjs.map +7 -0
- package/helpers/getInstanceFromElement.js +1 -0
- package/helpers/getInstanceFromElement.js.map +7 -0
- package/helpers/importOnInteraction.cjs +2 -1
- package/helpers/importOnInteraction.cjs.map +7 -0
- package/helpers/importOnInteraction.js +2 -1
- package/helpers/importOnInteraction.js.map +7 -0
- package/helpers/importWhenIdle.cjs +1 -0
- package/helpers/importWhenIdle.cjs.map +7 -0
- package/helpers/importWhenIdle.js +1 -0
- package/helpers/importWhenIdle.js.map +7 -0
- package/helpers/importWhenVisible.cjs +2 -1
- package/helpers/importWhenVisible.cjs.map +7 -0
- package/helpers/importWhenVisible.js +2 -1
- package/helpers/importWhenVisible.js.map +7 -0
- package/helpers/index.cjs +1 -0
- package/helpers/index.cjs.map +7 -0
- package/helpers/index.js +1 -0
- package/helpers/index.js.map +7 -0
- package/helpers/utils.cjs +1 -0
- package/helpers/utils.cjs.map +7 -0
- package/helpers/utils.js +1 -0
- package/helpers/utils.js.map +7 -0
- package/index.cjs +1 -0
- package/index.cjs.map +7 -0
- package/index.js +1 -0
- package/index.js.map +7 -0
- package/package.json +1 -1
- package/services/drag.cjs +1 -0
- package/services/drag.cjs.map +7 -0
- package/services/drag.js +1 -0
- package/services/drag.js.map +7 -0
- package/services/index.cjs +1 -0
- package/services/index.cjs.map +7 -0
- package/services/index.js +1 -0
- package/services/index.js.map +7 -0
- package/services/key.cjs +2 -1
- package/services/key.cjs.map +7 -0
- package/services/key.js +2 -1
- package/services/key.js.map +7 -0
- package/services/load.cjs +1 -0
- package/services/load.cjs.map +7 -0
- package/services/load.js +1 -0
- package/services/load.js.map +7 -0
- package/services/pointer.cjs +3 -3
- package/services/pointer.cjs.map +7 -0
- package/services/pointer.js +3 -3
- package/services/pointer.js.map +7 -0
- package/services/raf.cjs +1 -0
- package/services/raf.cjs.map +7 -0
- package/services/raf.js +1 -0
- package/services/raf.js.map +7 -0
- package/services/resize.cjs +1 -0
- package/services/resize.cjs.map +7 -0
- package/services/resize.js +1 -0
- package/services/resize.js.map +7 -0
- package/services/scroll.cjs +1 -0
- package/services/scroll.cjs.map +7 -0
- package/services/scroll.js +1 -0
- package/services/scroll.js.map +7 -0
- package/services/service.cjs +1 -0
- package/services/service.cjs.map +7 -0
- package/services/service.js +1 -0
- package/services/service.js.map +7 -0
- package/utils/collide/boundingRectToCircle.cjs +1 -0
- package/utils/collide/boundingRectToCircle.cjs.map +7 -0
- package/utils/collide/boundingRectToCircle.js +1 -0
- package/utils/collide/boundingRectToCircle.js.map +7 -0
- package/utils/collide/collideCircleCircle.cjs +1 -0
- package/utils/collide/collideCircleCircle.cjs.map +7 -0
- package/utils/collide/collideCircleCircle.js +1 -0
- package/utils/collide/collideCircleCircle.js.map +7 -0
- package/utils/collide/collideCircleRect.cjs +1 -0
- package/utils/collide/collideCircleRect.cjs.map +7 -0
- package/utils/collide/collideCircleRect.js +1 -0
- package/utils/collide/collideCircleRect.js.map +7 -0
- package/utils/collide/collidePointCircle.cjs +1 -0
- package/utils/collide/collidePointCircle.cjs.map +7 -0
- package/utils/collide/collidePointCircle.js +1 -0
- package/utils/collide/collidePointCircle.js.map +7 -0
- package/utils/collide/collidePointRect.cjs +1 -0
- package/utils/collide/collidePointRect.cjs.map +7 -0
- package/utils/collide/collidePointRect.js +1 -0
- package/utils/collide/collidePointRect.js.map +7 -0
- package/utils/collide/collideRectRect.cjs +1 -0
- package/utils/collide/collideRectRect.cjs.map +7 -0
- package/utils/collide/collideRectRect.js +1 -0
- package/utils/collide/collideRectRect.js.map +7 -0
- package/utils/collide/index.cjs +1 -0
- package/utils/collide/index.cjs.map +7 -0
- package/utils/collide/index.js +1 -0
- package/utils/collide/index.js.map +7 -0
- package/utils/css/animate.cjs +10 -13
- package/utils/css/animate.cjs.map +7 -0
- package/utils/css/animate.js +10 -13
- package/utils/css/animate.js.map +7 -0
- package/utils/css/classes.cjs +2 -1
- package/utils/css/classes.cjs.map +7 -0
- package/utils/css/classes.js +2 -1
- package/utils/css/classes.js.map +7 -0
- package/utils/css/getOffsetSizes.cjs +1 -0
- package/utils/css/getOffsetSizes.cjs.map +7 -0
- package/utils/css/getOffsetSizes.js +1 -0
- package/utils/css/getOffsetSizes.js.map +7 -0
- package/utils/css/index.cjs +1 -0
- package/utils/css/index.cjs.map +7 -0
- package/utils/css/index.js +1 -0
- package/utils/css/index.js.map +7 -0
- package/utils/css/matrix.cjs +2 -2
- package/utils/css/matrix.cjs.map +7 -0
- package/utils/css/matrix.js +2 -2
- package/utils/css/matrix.js.map +7 -0
- package/utils/css/styles.cjs +1 -0
- package/utils/css/styles.cjs.map +7 -0
- package/utils/css/styles.js +1 -0
- package/utils/css/styles.js.map +7 -0
- package/utils/css/transform.cjs +2 -2
- package/utils/css/transform.cjs.map +7 -0
- package/utils/css/transform.js +2 -2
- package/utils/css/transform.js.map +7 -0
- package/utils/css/transition.cjs +3 -7
- package/utils/css/transition.cjs.map +7 -0
- package/utils/css/transition.js +3 -8
- package/utils/css/transition.js.map +7 -0
- package/utils/css/utils.cjs +1 -0
- package/utils/css/utils.cjs.map +7 -0
- package/utils/css/utils.js +1 -0
- package/utils/css/utils.js.map +7 -0
- package/utils/debounce.cjs +1 -0
- package/utils/debounce.cjs.map +7 -0
- package/utils/debounce.js +1 -0
- package/utils/debounce.js.map +7 -0
- package/utils/focusTrap.cjs +1 -0
- package/utils/focusTrap.cjs.map +7 -0
- package/utils/focusTrap.js +1 -0
- package/utils/focusTrap.js.map +7 -0
- package/utils/has.cjs +1 -0
- package/utils/has.cjs.map +7 -0
- package/utils/has.js +1 -0
- package/utils/has.js.map +7 -0
- package/utils/history.cjs +1 -0
- package/utils/history.cjs.map +7 -0
- package/utils/history.js +1 -0
- package/utils/history.js.map +7 -0
- package/utils/index.cjs +1 -0
- package/utils/index.cjs.map +7 -0
- package/utils/index.js +1 -0
- package/utils/index.js.map +7 -0
- package/utils/is.cjs +1 -0
- package/utils/is.cjs.map +7 -0
- package/utils/is.js +1 -0
- package/utils/is.js.map +7 -0
- package/utils/keyCodes.cjs +1 -0
- package/utils/keyCodes.cjs.map +7 -0
- package/utils/keyCodes.js +1 -0
- package/utils/keyCodes.js.map +7 -0
- package/utils/math/clamp.cjs +1 -0
- package/utils/math/clamp.cjs.map +7 -0
- package/utils/math/clamp.js +1 -0
- package/utils/math/clamp.js.map +7 -0
- package/utils/math/clamp01.cjs +1 -0
- package/utils/math/clamp01.cjs.map +7 -0
- package/utils/math/clamp01.js +1 -0
- package/utils/math/clamp01.js.map +7 -0
- package/utils/math/createEases.cjs +1 -0
- package/utils/math/createEases.cjs.map +7 -0
- package/utils/math/createEases.js +1 -0
- package/utils/math/createEases.js.map +7 -0
- package/utils/math/damp.cjs +1 -0
- package/utils/math/damp.cjs.map +7 -0
- package/utils/math/damp.js +1 -0
- package/utils/math/damp.js.map +7 -0
- package/utils/math/ease.cjs +1 -0
- package/utils/math/ease.cjs.map +7 -0
- package/utils/math/ease.js +1 -0
- package/utils/math/ease.js.map +7 -0
- package/utils/math/index.cjs +1 -0
- package/utils/math/index.cjs.map +7 -0
- package/utils/math/index.js +1 -0
- package/utils/math/index.js.map +7 -0
- package/utils/math/inertiaFinalValue.cjs +1 -0
- package/utils/math/inertiaFinalValue.cjs.map +7 -0
- package/utils/math/inertiaFinalValue.js +1 -0
- package/utils/math/inertiaFinalValue.js.map +7 -0
- package/utils/math/lerp.cjs +1 -0
- package/utils/math/lerp.cjs.map +7 -0
- package/utils/math/lerp.js +1 -0
- package/utils/math/lerp.js.map +7 -0
- package/utils/math/map.cjs +1 -0
- package/utils/math/map.cjs.map +7 -0
- package/utils/math/map.js +1 -0
- package/utils/math/map.js.map +7 -0
- package/utils/math/round.cjs +1 -0
- package/utils/math/round.cjs.map +7 -0
- package/utils/math/round.js +1 -0
- package/utils/math/round.js.map +7 -0
- package/utils/memoize.cjs +1 -0
- package/utils/memoize.cjs.map +7 -0
- package/utils/memoize.js +1 -0
- package/utils/memoize.js.map +7 -0
- package/utils/nextFrame.cjs +1 -0
- package/utils/nextFrame.cjs.map +7 -0
- package/utils/nextFrame.js +1 -0
- package/utils/nextFrame.js.map +7 -0
- package/utils/nextMicrotask.cjs +1 -0
- package/utils/nextMicrotask.cjs.map +7 -0
- package/utils/nextMicrotask.js +1 -0
- package/utils/nextMicrotask.js.map +7 -0
- package/utils/nextTick.cjs +1 -0
- package/utils/nextTick.cjs.map +7 -0
- package/utils/nextTick.js +1 -0
- package/utils/nextTick.js.map +7 -0
- package/utils/noop.cjs +1 -0
- package/utils/noop.cjs.map +7 -0
- package/utils/noop.js +1 -0
- package/utils/noop.js.map +7 -0
- package/utils/object/autoBind.cjs +1 -0
- package/utils/object/autoBind.cjs.map +7 -0
- package/utils/object/autoBind.js +1 -0
- package/utils/object/autoBind.js.map +7 -0
- package/utils/object/getAllProperties.cjs +1 -0
- package/utils/object/getAllProperties.cjs.map +7 -0
- package/utils/object/getAllProperties.js +1 -0
- package/utils/object/getAllProperties.js.map +7 -0
- package/utils/object/index.cjs +1 -0
- package/utils/object/index.cjs.map +7 -0
- package/utils/object/index.js +1 -0
- package/utils/object/index.js.map +7 -0
- package/utils/scheduler.cjs +1 -0
- package/utils/scheduler.cjs.map +7 -0
- package/utils/scheduler.js +1 -0
- package/utils/scheduler.js.map +7 -0
- package/utils/scrollTo.cjs +1 -0
- package/utils/scrollTo.cjs.map +7 -0
- package/utils/scrollTo.d.ts +1 -1
- package/utils/scrollTo.js +1 -0
- package/utils/scrollTo.js.map +7 -0
- package/utils/string/index.cjs +1 -0
- package/utils/string/index.cjs.map +7 -0
- package/utils/string/index.js +1 -0
- package/utils/string/index.js.map +7 -0
- package/utils/string/withLeadingCharacters.cjs +1 -0
- package/utils/string/withLeadingCharacters.cjs.map +7 -0
- package/utils/string/withLeadingCharacters.js +1 -0
- package/utils/string/withLeadingCharacters.js.map +7 -0
- package/utils/string/withLeadingSlash.cjs +1 -0
- package/utils/string/withLeadingSlash.cjs.map +7 -0
- package/utils/string/withLeadingSlash.js +1 -0
- package/utils/string/withLeadingSlash.js.map +7 -0
- package/utils/string/withTrailingCharacters.cjs +1 -0
- package/utils/string/withTrailingCharacters.cjs.map +7 -0
- package/utils/string/withTrailingCharacters.js +1 -0
- package/utils/string/withTrailingCharacters.js.map +7 -0
- package/utils/string/withTrailingSlash.cjs +1 -0
- package/utils/string/withTrailingSlash.cjs.map +7 -0
- package/utils/string/withTrailingSlash.js +1 -0
- package/utils/string/withTrailingSlash.js.map +7 -0
- package/utils/string/withoutLeadingCharacters.cjs +1 -0
- package/utils/string/withoutLeadingCharacters.cjs.map +7 -0
- package/utils/string/withoutLeadingCharacters.js +1 -0
- package/utils/string/withoutLeadingCharacters.js.map +7 -0
- package/utils/string/withoutLeadingCharactersRecursive.cjs +1 -0
- package/utils/string/withoutLeadingCharactersRecursive.cjs.map +7 -0
- package/utils/string/withoutLeadingCharactersRecursive.js +1 -0
- package/utils/string/withoutLeadingCharactersRecursive.js.map +7 -0
- package/utils/string/withoutLeadingSlash.cjs +1 -0
- package/utils/string/withoutLeadingSlash.cjs.map +7 -0
- package/utils/string/withoutLeadingSlash.js +1 -0
- package/utils/string/withoutLeadingSlash.js.map +7 -0
- package/utils/string/withoutTrailingCharacters.cjs +1 -0
- package/utils/string/withoutTrailingCharacters.cjs.map +7 -0
- package/utils/string/withoutTrailingCharacters.js +1 -0
- package/utils/string/withoutTrailingCharacters.js.map +7 -0
- package/utils/string/withoutTrailingCharactersRecursive.cjs +1 -0
- package/utils/string/withoutTrailingCharactersRecursive.cjs.map +7 -0
- package/utils/string/withoutTrailingCharactersRecursive.js +1 -0
- package/utils/string/withoutTrailingCharactersRecursive.js.map +7 -0
- package/utils/string/withoutTrailingSlash.cjs +1 -0
- package/utils/string/withoutTrailingSlash.cjs.map +7 -0
- package/utils/string/withoutTrailingSlash.js +1 -0
- package/utils/string/withoutTrailingSlash.js.map +7 -0
- package/utils/throttle.cjs +1 -0
- package/utils/throttle.cjs.map +7 -0
- package/utils/throttle.js +1 -0
- package/utils/throttle.js.map +7 -0
- package/utils/tween.cjs +2 -2
- package/utils/tween.cjs.map +7 -0
- package/utils/tween.d.ts +7 -1
- package/utils/tween.js +2 -2
- package/utils/tween.js.map +7 -0
|
@@ -1,9 +1,3 @@
|
|
|
1
|
-
var __defProp = Object.defineProperty;
|
|
2
|
-
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
3
|
-
var __publicField = (obj, key, value) => {
|
|
4
|
-
__defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
5
|
-
return value;
|
|
6
|
-
};
|
|
7
1
|
import merge from "deepmerge";
|
|
8
2
|
function withExtraConfig(BaseClass, config, options = {}) {
|
|
9
3
|
const newConfig = merge(BaseClass.config, config, options);
|
|
@@ -11,10 +5,11 @@ function withExtraConfig(BaseClass, config, options = {}) {
|
|
|
11
5
|
newConfig.name = `${BaseClass.config.name}WithExtraConfig`;
|
|
12
6
|
}
|
|
13
7
|
class WithExtraConfig extends BaseClass {
|
|
8
|
+
static config = newConfig;
|
|
14
9
|
}
|
|
15
|
-
__publicField(WithExtraConfig, "config", newConfig);
|
|
16
10
|
return WithExtraConfig;
|
|
17
11
|
}
|
|
18
12
|
export {
|
|
19
13
|
withExtraConfig
|
|
20
14
|
};
|
|
15
|
+
//# sourceMappingURL=withExtraConfig.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../packages/js-toolkit/decorators/withExtraConfig.ts"],
|
|
4
|
+
"sourcesContent": ["import merge from 'deepmerge';\nimport type { Options as DeepmergeOptions } from 'deepmerge';\nimport type { BaseDecorator, BaseInterface } from '../Base/types.js';\nimport type { Base, BaseProps, BaseConfig } from '../Base/index.js';\n\n/**\n * Extends the configuration of an existing class.\n */\nexport function withExtraConfig<S extends Base>(\n BaseClass: typeof Base,\n config: Partial<BaseConfig>,\n options: DeepmergeOptions = {},\n): BaseDecorator<BaseInterface, S> {\n const newConfig = merge(BaseClass.config, config, options);\n\n if (newConfig.name === BaseClass.config.name) {\n newConfig.name = `${BaseClass.config.name}WithExtraConfig`;\n }\n\n /**\n * Class.\n */\n class WithExtraConfig<T extends BaseProps = BaseProps> extends BaseClass<T> {\n /**\n * Config.\n */\n static config: BaseConfig = newConfig;\n }\n\n // @ts-ignore\n return WithExtraConfig;\n}\n"],
|
|
5
|
+
"mappings": "AAAA,OAAO,WAAW;AAQX,SAAS,gBACd,WACA,QACA,UAA4B,CAAC,GACI;AACjC,QAAM,YAAY,MAAM,UAAU,QAAQ,QAAQ,OAAO;AAEzD,MAAI,UAAU,SAAS,UAAU,OAAO,MAAM;AAC5C,cAAU,OAAO,GAAG,UAAU,OAAO;AAAA,EACvC;AAKA,QAAM,wBAAyD,UAAa;AAAA,IAI1E,OAAO,SAAqB;AAAA,EAC9B;AAGA,SAAO;AACT;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -2,7 +2,6 @@ var __defProp = Object.defineProperty;
|
|
|
2
2
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
3
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
4
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
-
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
6
5
|
var __export = (target, all) => {
|
|
7
6
|
for (var name in all)
|
|
8
7
|
__defProp(target, name, { get: all[name], enumerable: true });
|
|
@@ -16,10 +15,6 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
16
15
|
return to;
|
|
17
16
|
};
|
|
18
17
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
var __publicField = (obj, key, value) => {
|
|
20
|
-
__defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
21
|
-
return value;
|
|
22
|
-
};
|
|
23
18
|
|
|
24
19
|
// packages/js-toolkit/decorators/withFreezedOptions.ts
|
|
25
20
|
var withFreezedOptions_exports = {};
|
|
@@ -29,10 +24,7 @@ __export(withFreezedOptions_exports, {
|
|
|
29
24
|
module.exports = __toCommonJS(withFreezedOptions_exports);
|
|
30
25
|
function withFreezedOptions(BaseClass) {
|
|
31
26
|
class WithFreezedOptions extends BaseClass {
|
|
32
|
-
|
|
33
|
-
super(...arguments);
|
|
34
|
-
__publicField(this, "__freezedOptions");
|
|
35
|
-
}
|
|
27
|
+
__freezedOptions;
|
|
36
28
|
get $options() {
|
|
37
29
|
if (!this.__freezedOptions) {
|
|
38
30
|
Object.defineProperty(this, "__freezedOptions", {
|
|
@@ -47,3 +39,4 @@ function withFreezedOptions(BaseClass) {
|
|
|
47
39
|
return WithFreezedOptions;
|
|
48
40
|
}
|
|
49
41
|
if (module.exports.default) module.exports = module.exports.default;
|
|
42
|
+
//# sourceMappingURL=withFreezedOptions.cjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../packages/js-toolkit/decorators/withFreezedOptions.ts"],
|
|
4
|
+
"sourcesContent": ["import type { BaseDecorator, BaseInterface } from '../Base/types.js';\nimport type { Base, BaseProps, BaseOptions } from '../Base/index.js';\n\nexport interface WithFreezedOptionsInterface extends BaseInterface {\n readonly $options: Readonly<BaseOptions>;\n}\n\n/**\n * Freeze the `$options` property to improve performance.\n */\nexport function withFreezedOptions<S extends Base>(\n BaseClass: typeof Base,\n): BaseDecorator<WithFreezedOptionsInterface, S> {\n /**\n * Class.\n */\n class WithFreezedOptions<T extends BaseProps = BaseProps> extends BaseClass<T> {\n /**\n * Hold freezed options\n * @private\n */\n __freezedOptions;\n\n /**\n * Lazyly freeze the `$options` property.\n */\n get $options() {\n if (!this.__freezedOptions) {\n Object.defineProperty(this, '__freezedOptions', {\n value: Object.freeze({ ...super.$options }),\n enumerable: false,\n configurable: true,\n });\n }\n\n return this.__freezedOptions;\n }\n }\n\n // @ts-ignore\n return WithFreezedOptions;\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAUO,SAAS,mBACd,WAC+C;AAI/C,QAAM,2BAA4D,UAAa;AAAA,IAK7E;AAAA,IAKA,IAAI,WAAW;AACb,UAAI,CAAC,KAAK,kBAAkB;AAC1B,eAAO,eAAe,MAAM,oBAAoB;AAAA,UAC9C,OAAO,OAAO,OAAO,EAAE,GAAG,MAAM,SAAS,CAAC;AAAA,UAC1C,YAAY;AAAA,UACZ,cAAc;AAAA,QAChB,CAAC;AAAA,MACH;AAEA,aAAO,KAAK;AAAA,IACd;AAAA,EACF;AAGA,SAAO;AACT;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -1,15 +1,6 @@
|
|
|
1
|
-
var __defProp = Object.defineProperty;
|
|
2
|
-
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
3
|
-
var __publicField = (obj, key, value) => {
|
|
4
|
-
__defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
5
|
-
return value;
|
|
6
|
-
};
|
|
7
1
|
function withFreezedOptions(BaseClass) {
|
|
8
2
|
class WithFreezedOptions extends BaseClass {
|
|
9
|
-
|
|
10
|
-
super(...arguments);
|
|
11
|
-
__publicField(this, "__freezedOptions");
|
|
12
|
-
}
|
|
3
|
+
__freezedOptions;
|
|
13
4
|
get $options() {
|
|
14
5
|
if (!this.__freezedOptions) {
|
|
15
6
|
Object.defineProperty(this, "__freezedOptions", {
|
|
@@ -26,3 +17,4 @@ function withFreezedOptions(BaseClass) {
|
|
|
26
17
|
export {
|
|
27
18
|
withFreezedOptions
|
|
28
19
|
};
|
|
20
|
+
//# sourceMappingURL=withFreezedOptions.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../packages/js-toolkit/decorators/withFreezedOptions.ts"],
|
|
4
|
+
"sourcesContent": ["import type { BaseDecorator, BaseInterface } from '../Base/types.js';\nimport type { Base, BaseProps, BaseOptions } from '../Base/index.js';\n\nexport interface WithFreezedOptionsInterface extends BaseInterface {\n readonly $options: Readonly<BaseOptions>;\n}\n\n/**\n * Freeze the `$options` property to improve performance.\n */\nexport function withFreezedOptions<S extends Base>(\n BaseClass: typeof Base,\n): BaseDecorator<WithFreezedOptionsInterface, S> {\n /**\n * Class.\n */\n class WithFreezedOptions<T extends BaseProps = BaseProps> extends BaseClass<T> {\n /**\n * Hold freezed options\n * @private\n */\n __freezedOptions;\n\n /**\n * Lazyly freeze the `$options` property.\n */\n get $options() {\n if (!this.__freezedOptions) {\n Object.defineProperty(this, '__freezedOptions', {\n value: Object.freeze({ ...super.$options }),\n enumerable: false,\n configurable: true,\n });\n }\n\n return this.__freezedOptions;\n }\n }\n\n // @ts-ignore\n return WithFreezedOptions;\n}\n"],
|
|
5
|
+
"mappings": "AAUO,SAAS,mBACd,WAC+C;AAI/C,QAAM,2BAA4D,UAAa;AAAA,IAK7E;AAAA,IAKA,IAAI,WAAW;AACb,UAAI,CAAC,KAAK,kBAAkB;AAC1B,eAAO,eAAe,MAAM,oBAAoB;AAAA,UAC9C,OAAO,OAAO,OAAO,EAAE,GAAG,MAAM,SAAS,CAAC;AAAA,UAC1C,YAAY;AAAA,UACZ,cAAc;AAAA,QAChB,CAAC;AAAA,MACH;AAEA,aAAO,KAAK;AAAA,IACd;AAAA,EACF;AAGA,SAAO;AACT;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -2,7 +2,6 @@ var __defProp = Object.defineProperty;
|
|
|
2
2
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
3
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
4
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
-
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
6
5
|
var __export = (target, all) => {
|
|
7
6
|
for (var name in all)
|
|
8
7
|
__defProp(target, name, { get: all[name], enumerable: true });
|
|
@@ -16,10 +15,6 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
16
15
|
return to;
|
|
17
16
|
};
|
|
18
17
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
var __publicField = (obj, key, value) => {
|
|
20
|
-
__defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
21
|
-
return value;
|
|
22
|
-
};
|
|
23
18
|
|
|
24
19
|
// packages/js-toolkit/decorators/withIntersectionObserver.ts
|
|
25
20
|
var withIntersectionObserver_exports = {};
|
|
@@ -31,11 +26,19 @@ function createArrayOfNumber(length) {
|
|
|
31
26
|
return [...new Array(length + 1)].map((val, index) => index / length);
|
|
32
27
|
}
|
|
33
28
|
function withIntersectionObserver(BaseClass, defaultOptions = { threshold: createArrayOfNumber(100) }) {
|
|
34
|
-
var _a;
|
|
35
29
|
class WithIntersectionObserver extends BaseClass {
|
|
30
|
+
static config = {
|
|
31
|
+
...BaseClass.config,
|
|
32
|
+
name: `${BaseClass.config.name}WithIntersectionObserver`,
|
|
33
|
+
options: {
|
|
34
|
+
...BaseClass.config?.options || {},
|
|
35
|
+
intersectionObserver: Object
|
|
36
|
+
},
|
|
37
|
+
emits: ["intersected"]
|
|
38
|
+
};
|
|
39
|
+
$observer;
|
|
36
40
|
constructor(element) {
|
|
37
41
|
super(element);
|
|
38
|
-
__publicField(this, "$observer");
|
|
39
42
|
this.$observer = new IntersectionObserver(
|
|
40
43
|
(entries) => {
|
|
41
44
|
this.__callMethod("intersected", entries);
|
|
@@ -53,15 +56,7 @@ function withIntersectionObserver(BaseClass, defaultOptions = { threshold: creat
|
|
|
53
56
|
});
|
|
54
57
|
}
|
|
55
58
|
}
|
|
56
|
-
__publicField(WithIntersectionObserver, "config", {
|
|
57
|
-
...BaseClass.config,
|
|
58
|
-
name: `${BaseClass.config.name}WithIntersectionObserver`,
|
|
59
|
-
options: {
|
|
60
|
-
...((_a = BaseClass.config) == null ? void 0 : _a.options) || {},
|
|
61
|
-
intersectionObserver: Object
|
|
62
|
-
},
|
|
63
|
-
emits: ["intersected"]
|
|
64
|
-
});
|
|
65
59
|
return WithIntersectionObserver;
|
|
66
60
|
}
|
|
67
61
|
if (module.exports.default) module.exports = module.exports.default;
|
|
62
|
+
//# sourceMappingURL=withIntersectionObserver.cjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../packages/js-toolkit/decorators/withIntersectionObserver.ts"],
|
|
4
|
+
"sourcesContent": ["import type { BaseDecorator, BaseInterface } from '../Base/types.js';\nimport type { Base, BaseProps, BaseConfig } from '../Base/index.js';\n\nexport interface WithIntersectionObserverProps extends BaseProps {\n $options: {\n intersectionObserver: IntersectionObserverInit;\n };\n $observer: IntersectionObserver;\n intersected(entries: IntersectionObserverEntry[]): void;\n}\n\nexport interface WithIntersectionObserverInterface extends BaseInterface {\n $observer: IntersectionObserver;\n}\n\n/**\n * Create an array of number between 0 and 1 from the given length.\n */\nfunction createArrayOfNumber(length: number): number[] {\n return [...new Array(length + 1)].map((val, index) => index / length);\n}\n\n/**\n * IntersectionObserver decoration.\n */\nexport function withIntersectionObserver<S extends Base>(\n BaseClass: typeof Base,\n // eslint-disable-next-line unicorn/no-object-as-default-parameter\n defaultOptions: IntersectionObserverInit = { threshold: createArrayOfNumber(100) },\n): BaseDecorator<WithIntersectionObserverInterface, S, WithIntersectionObserverProps> {\n /**\n * Class.\n */\n class WithIntersectionObserver<T extends BaseProps = BaseProps> extends BaseClass<\n T & WithIntersectionObserverProps\n > {\n /**\n * Config\n */\n static config: BaseConfig = {\n ...BaseClass.config,\n name: `${BaseClass.config.name}WithIntersectionObserver`,\n options: {\n ...(BaseClass.config?.options || {}),\n intersectionObserver: Object,\n },\n emits: ['intersected'],\n };\n\n /**\n * Intersection observer instance.\n */\n $observer: IntersectionObserver;\n\n /**\n * Create an observer when the class in instantiated.\n */\n constructor(element: HTMLElement) {\n super(element);\n\n this.$observer = new IntersectionObserver(\n (entries) => {\n this.__callMethod('intersected', entries);\n },\n {\n ...defaultOptions,\n ...(this.$options.intersectionObserver as IntersectionObserverInit),\n },\n );\n\n this.$on('mounted', () => {\n this.$observer.observe(this.$el);\n });\n\n this.$on('destroyed', () => {\n this.$observer.unobserve(this.$el);\n });\n }\n }\n\n // @ts-ignore\n return WithIntersectionObserver;\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAkBA,SAAS,oBAAoB,QAA0B;AACrD,SAAO,CAAC,GAAG,IAAI,MAAM,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,UAAU,QAAQ,MAAM;AACtE;AAKO,SAAS,yBACd,WAEA,iBAA2C,EAAE,WAAW,oBAAoB,GAAG,EAAE,GACG;AAIpF,QAAM,iCAAkE,UAEtE;AAAA,IAIA,OAAO,SAAqB;AAAA,MAC1B,GAAG,UAAU;AAAA,MACb,MAAM,GAAG,UAAU,OAAO;AAAA,MAC1B,SAAS;AAAA,QACP,GAAI,UAAU,QAAQ,WAAW,CAAC;AAAA,QAClC,sBAAsB;AAAA,MACxB;AAAA,MACA,OAAO,CAAC,aAAa;AAAA,IACvB;AAAA,IAKA;AAAA,IAKA,YAAY,SAAsB;AAChC,YAAM,OAAO;AAEb,WAAK,YAAY,IAAI;AAAA,QACnB,CAAC,YAAY;AACX,eAAK,aAAa,eAAe,OAAO;AAAA,QAC1C;AAAA,QACA;AAAA,UACE,GAAG;AAAA,UACH,GAAI,KAAK,SAAS;AAAA,QACpB;AAAA,MACF;AAEA,WAAK,IAAI,WAAW,MAAM;AACxB,aAAK,UAAU,QAAQ,KAAK,GAAG;AAAA,MACjC,CAAC;AAED,WAAK,IAAI,aAAa,MAAM;AAC1B,aAAK,UAAU,UAAU,KAAK,GAAG;AAAA,MACnC,CAAC;AAAA,IACH;AAAA,EACF;AAGA,SAAO;AACT;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -1,18 +1,20 @@
|
|
|
1
|
-
var __defProp = Object.defineProperty;
|
|
2
|
-
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
3
|
-
var __publicField = (obj, key, value) => {
|
|
4
|
-
__defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
5
|
-
return value;
|
|
6
|
-
};
|
|
7
1
|
function createArrayOfNumber(length) {
|
|
8
2
|
return [...new Array(length + 1)].map((val, index) => index / length);
|
|
9
3
|
}
|
|
10
4
|
function withIntersectionObserver(BaseClass, defaultOptions = { threshold: createArrayOfNumber(100) }) {
|
|
11
|
-
var _a;
|
|
12
5
|
class WithIntersectionObserver extends BaseClass {
|
|
6
|
+
static config = {
|
|
7
|
+
...BaseClass.config,
|
|
8
|
+
name: `${BaseClass.config.name}WithIntersectionObserver`,
|
|
9
|
+
options: {
|
|
10
|
+
...BaseClass.config?.options || {},
|
|
11
|
+
intersectionObserver: Object
|
|
12
|
+
},
|
|
13
|
+
emits: ["intersected"]
|
|
14
|
+
};
|
|
15
|
+
$observer;
|
|
13
16
|
constructor(element) {
|
|
14
17
|
super(element);
|
|
15
|
-
__publicField(this, "$observer");
|
|
16
18
|
this.$observer = new IntersectionObserver(
|
|
17
19
|
(entries) => {
|
|
18
20
|
this.__callMethod("intersected", entries);
|
|
@@ -30,17 +32,9 @@ function withIntersectionObserver(BaseClass, defaultOptions = { threshold: creat
|
|
|
30
32
|
});
|
|
31
33
|
}
|
|
32
34
|
}
|
|
33
|
-
__publicField(WithIntersectionObserver, "config", {
|
|
34
|
-
...BaseClass.config,
|
|
35
|
-
name: `${BaseClass.config.name}WithIntersectionObserver`,
|
|
36
|
-
options: {
|
|
37
|
-
...((_a = BaseClass.config) == null ? void 0 : _a.options) || {},
|
|
38
|
-
intersectionObserver: Object
|
|
39
|
-
},
|
|
40
|
-
emits: ["intersected"]
|
|
41
|
-
});
|
|
42
35
|
return WithIntersectionObserver;
|
|
43
36
|
}
|
|
44
37
|
export {
|
|
45
38
|
withIntersectionObserver
|
|
46
39
|
};
|
|
40
|
+
//# sourceMappingURL=withIntersectionObserver.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../packages/js-toolkit/decorators/withIntersectionObserver.ts"],
|
|
4
|
+
"sourcesContent": ["import type { BaseDecorator, BaseInterface } from '../Base/types.js';\nimport type { Base, BaseProps, BaseConfig } from '../Base/index.js';\n\nexport interface WithIntersectionObserverProps extends BaseProps {\n $options: {\n intersectionObserver: IntersectionObserverInit;\n };\n $observer: IntersectionObserver;\n intersected(entries: IntersectionObserverEntry[]): void;\n}\n\nexport interface WithIntersectionObserverInterface extends BaseInterface {\n $observer: IntersectionObserver;\n}\n\n/**\n * Create an array of number between 0 and 1 from the given length.\n */\nfunction createArrayOfNumber(length: number): number[] {\n return [...new Array(length + 1)].map((val, index) => index / length);\n}\n\n/**\n * IntersectionObserver decoration.\n */\nexport function withIntersectionObserver<S extends Base>(\n BaseClass: typeof Base,\n // eslint-disable-next-line unicorn/no-object-as-default-parameter\n defaultOptions: IntersectionObserverInit = { threshold: createArrayOfNumber(100) },\n): BaseDecorator<WithIntersectionObserverInterface, S, WithIntersectionObserverProps> {\n /**\n * Class.\n */\n class WithIntersectionObserver<T extends BaseProps = BaseProps> extends BaseClass<\n T & WithIntersectionObserverProps\n > {\n /**\n * Config\n */\n static config: BaseConfig = {\n ...BaseClass.config,\n name: `${BaseClass.config.name}WithIntersectionObserver`,\n options: {\n ...(BaseClass.config?.options || {}),\n intersectionObserver: Object,\n },\n emits: ['intersected'],\n };\n\n /**\n * Intersection observer instance.\n */\n $observer: IntersectionObserver;\n\n /**\n * Create an observer when the class in instantiated.\n */\n constructor(element: HTMLElement) {\n super(element);\n\n this.$observer = new IntersectionObserver(\n (entries) => {\n this.__callMethod('intersected', entries);\n },\n {\n ...defaultOptions,\n ...(this.$options.intersectionObserver as IntersectionObserverInit),\n },\n );\n\n this.$on('mounted', () => {\n this.$observer.observe(this.$el);\n });\n\n this.$on('destroyed', () => {\n this.$observer.unobserve(this.$el);\n });\n }\n }\n\n // @ts-ignore\n return WithIntersectionObserver;\n}\n"],
|
|
5
|
+
"mappings": "AAkBA,SAAS,oBAAoB,QAA0B;AACrD,SAAO,CAAC,GAAG,IAAI,MAAM,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,UAAU,QAAQ,MAAM;AACtE;AAKO,SAAS,yBACd,WAEA,iBAA2C,EAAE,WAAW,oBAAoB,GAAG,EAAE,GACG;AAIpF,QAAM,iCAAkE,UAEtE;AAAA,IAIA,OAAO,SAAqB;AAAA,MAC1B,GAAG,UAAU;AAAA,MACb,MAAM,GAAG,UAAU,OAAO;AAAA,MAC1B,SAAS;AAAA,QACP,GAAI,UAAU,QAAQ,WAAW,CAAC;AAAA,QAClC,sBAAsB;AAAA,MACxB;AAAA,MACA,OAAO,CAAC,aAAa;AAAA,IACvB;AAAA,IAKA;AAAA,IAKA,YAAY,SAAsB;AAChC,YAAM,OAAO;AAEb,WAAK,YAAY,IAAI;AAAA,QACnB,CAAC,YAAY;AACX,eAAK,aAAa,eAAe,OAAO;AAAA,QAC1C;AAAA,QACA;AAAA,UACE,GAAG;AAAA,UACH,GAAI,KAAK,SAAS;AAAA,QACpB;AAAA,MACF;AAEA,WAAK,IAAI,WAAW,MAAM;AACxB,aAAK,UAAU,QAAQ,KAAK,GAAG;AAAA,MACjC,CAAC;AAED,WAAK,IAAI,aAAa,MAAM;AAC1B,aAAK,UAAU,UAAU,KAAK,GAAG;AAAA,MACnC,CAAC;AAAA,IACH;AAAA,EACF;AAGA,SAAO;AACT;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -2,7 +2,6 @@ var __defProp = Object.defineProperty;
|
|
|
2
2
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
3
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
4
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
-
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
6
5
|
var __export = (target, all) => {
|
|
7
6
|
for (var name in all)
|
|
8
7
|
__defProp(target, name, { get: all[name], enumerable: true });
|
|
@@ -16,10 +15,6 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
16
15
|
return to;
|
|
17
16
|
};
|
|
18
17
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
var __publicField = (obj, key, value) => {
|
|
20
|
-
__defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
21
|
-
return value;
|
|
22
|
-
};
|
|
23
18
|
|
|
24
19
|
// packages/js-toolkit/decorators/withMountWhenInView.ts
|
|
25
20
|
var withMountWhenInView_exports = {};
|
|
@@ -28,12 +23,19 @@ __export(withMountWhenInView_exports, {
|
|
|
28
23
|
});
|
|
29
24
|
module.exports = __toCommonJS(withMountWhenInView_exports);
|
|
30
25
|
function withMountWhenInView(BaseClass, defaultOptions = { threshold: [0, 1] }) {
|
|
31
|
-
var _a;
|
|
32
26
|
class WithMountWhenInView extends BaseClass {
|
|
27
|
+
static config = {
|
|
28
|
+
...BaseClass.config,
|
|
29
|
+
name: `${BaseClass.config.name}WithMountWhenInView`,
|
|
30
|
+
options: {
|
|
31
|
+
...BaseClass.config?.options || {},
|
|
32
|
+
intersectionObserver: Object
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
__isVisible = false;
|
|
36
|
+
__observer;
|
|
33
37
|
constructor(element) {
|
|
34
38
|
super(element);
|
|
35
|
-
__publicField(this, "__isVisible", false);
|
|
36
|
-
__publicField(this, "__observer");
|
|
37
39
|
this.__observer = new IntersectionObserver(
|
|
38
40
|
(entries) => {
|
|
39
41
|
const isVisible = entries.reduce((acc, entry) => acc || entry.isIntersecting, false);
|
|
@@ -63,14 +65,7 @@ function withMountWhenInView(BaseClass, defaultOptions = { threshold: [0, 1] })
|
|
|
63
65
|
return this;
|
|
64
66
|
}
|
|
65
67
|
}
|
|
66
|
-
__publicField(WithMountWhenInView, "config", {
|
|
67
|
-
...BaseClass.config,
|
|
68
|
-
name: `${BaseClass.config.name}WithMountWhenInView`,
|
|
69
|
-
options: {
|
|
70
|
-
...((_a = BaseClass.config) == null ? void 0 : _a.options) || {},
|
|
71
|
-
intersectionObserver: Object
|
|
72
|
-
}
|
|
73
|
-
});
|
|
74
68
|
return WithMountWhenInView;
|
|
75
69
|
}
|
|
76
70
|
if (module.exports.default) module.exports = module.exports.default;
|
|
71
|
+
//# sourceMappingURL=withMountWhenInView.cjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../packages/js-toolkit/decorators/withMountWhenInView.ts"],
|
|
4
|
+
"sourcesContent": ["import { BaseInterface, BaseDecorator } from '../Base/types.js';\nimport type { Base, BaseProps, BaseConfig } from '../Base/index.js';\n\nexport interface WithMountWhenInViewProps extends BaseProps {\n $options: {\n intersectionObserver: IntersectionObserverInit;\n };\n}\n\nexport interface WithMountWhenInViewInterface extends BaseInterface {\n /**\n * @private\n */\n __isVisible: boolean;\n /**\n * @private\n */\n __observer: IntersectionObserver;\n $mount():this;\n}\n\n/**\n * IntersectionObserver decoration.\n */\nexport function withMountWhenInView<S extends Base = Base>(\n BaseClass: typeof Base,\n // eslint-disable-next-line unicorn/no-object-as-default-parameter\n defaultOptions: IntersectionObserverInit = { threshold: [0, 1] },\n):BaseDecorator<WithMountWhenInViewInterface, S, WithMountWhenInViewProps> {\n /**\n * Class.\n */\n class WithMountWhenInView<T extends BaseProps = BaseProps> extends BaseClass<\n T & WithMountWhenInViewProps\n > {\n /**\n * Config.\n */\n static config: BaseConfig = {\n ...BaseClass.config,\n name: `${BaseClass.config.name}WithMountWhenInView`,\n options: {\n ...(BaseClass.config?.options || {}),\n intersectionObserver: Object,\n },\n };\n\n /**\n * Is the component visible?\n * @private\n */\n __isVisible = false;\n\n /**\n * The component's observer.\n * @private\n */\n __observer: IntersectionObserver;\n\n /**\n * Create an observer when the class in instantiated.\n *\n * @param {HTMLElement} element The component's root element.\n */\n constructor(element: HTMLElement) {\n super(element);\n\n this.__observer = new IntersectionObserver(\n (entries) => {\n const isVisible = entries.reduce((acc, entry) => acc || entry.isIntersecting, false);\n if (this.__isVisible !== isVisible) {\n this.__isVisible = isVisible;\n\n if (isVisible) {\n this.$mount();\n } else {\n setTimeout(() => this.$destroy());\n }\n }\n },\n {\n ...defaultOptions,\n ...(this.$options as typeof this.$options & WithMountWhenInViewProps['$options'])\n .intersectionObserver,\n },\n );\n\n this.__observer.observe(this.$el);\n\n this.$on('terminated', () => {\n this.__observer.disconnect();\n });\n }\n\n /**\n * Override the mounting of the component.\n */\n $mount() {\n if (this.__isVisible) {\n super.$mount();\n }\n\n return this;\n }\n }\n\n // @ts-ignore\n return WithMountWhenInView;\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAwBO,SAAS,oBACd,WAEA,iBAA2C,EAAE,WAAW,CAAC,GAAG,CAAC,EAAE,GACU;AAIzE,QAAM,4BAA6D,UAEjE;AAAA,IAIA,OAAO,SAAqB;AAAA,MAC1B,GAAG,UAAU;AAAA,MACb,MAAM,GAAG,UAAU,OAAO;AAAA,MAC1B,SAAS;AAAA,QACP,GAAI,UAAU,QAAQ,WAAW,CAAC;AAAA,QAClC,sBAAsB;AAAA,MACxB;AAAA,IACF;AAAA,IAMA,cAAc;AAAA,IAMd;AAAA,IAOA,YAAY,SAAsB;AAChC,YAAM,OAAO;AAEb,WAAK,aAAa,IAAI;AAAA,QACpB,CAAC,YAAY;AACX,gBAAM,YAAY,QAAQ,OAAO,CAAC,KAAK,UAAU,OAAO,MAAM,gBAAgB,KAAK;AACnF,cAAI,KAAK,gBAAgB,WAAW;AAClC,iBAAK,cAAc;AAEnB,gBAAI,WAAW;AACb,mBAAK,OAAO;AAAA,YACd,OAAO;AACL,yBAAW,MAAM,KAAK,SAAS,CAAC;AAAA,YAClC;AAAA,UACF;AAAA,QACF;AAAA,QACA;AAAA,UACE,GAAG;AAAA,UACH,GAAI,KAAK,SACN;AAAA,QACL;AAAA,MACF;AAEA,WAAK,WAAW,QAAQ,KAAK,GAAG;AAEhC,WAAK,IAAI,cAAc,MAAM;AAC3B,aAAK,WAAW,WAAW;AAAA,MAC7B,CAAC;AAAA,IACH;AAAA,IAKA,SAAS;AACP,UAAI,KAAK,aAAa;AACpB,cAAM,OAAO;AAAA,MACf;AAEA,aAAO;AAAA,IACT;AAAA,EACF;AAGA,SAAO;AACT;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -1,16 +1,17 @@
|
|
|
1
|
-
var __defProp = Object.defineProperty;
|
|
2
|
-
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
3
|
-
var __publicField = (obj, key, value) => {
|
|
4
|
-
__defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
5
|
-
return value;
|
|
6
|
-
};
|
|
7
1
|
function withMountWhenInView(BaseClass, defaultOptions = { threshold: [0, 1] }) {
|
|
8
|
-
var _a;
|
|
9
2
|
class WithMountWhenInView extends BaseClass {
|
|
3
|
+
static config = {
|
|
4
|
+
...BaseClass.config,
|
|
5
|
+
name: `${BaseClass.config.name}WithMountWhenInView`,
|
|
6
|
+
options: {
|
|
7
|
+
...BaseClass.config?.options || {},
|
|
8
|
+
intersectionObserver: Object
|
|
9
|
+
}
|
|
10
|
+
};
|
|
11
|
+
__isVisible = false;
|
|
12
|
+
__observer;
|
|
10
13
|
constructor(element) {
|
|
11
14
|
super(element);
|
|
12
|
-
__publicField(this, "__isVisible", false);
|
|
13
|
-
__publicField(this, "__observer");
|
|
14
15
|
this.__observer = new IntersectionObserver(
|
|
15
16
|
(entries) => {
|
|
16
17
|
const isVisible = entries.reduce((acc, entry) => acc || entry.isIntersecting, false);
|
|
@@ -40,16 +41,9 @@ function withMountWhenInView(BaseClass, defaultOptions = { threshold: [0, 1] })
|
|
|
40
41
|
return this;
|
|
41
42
|
}
|
|
42
43
|
}
|
|
43
|
-
__publicField(WithMountWhenInView, "config", {
|
|
44
|
-
...BaseClass.config,
|
|
45
|
-
name: `${BaseClass.config.name}WithMountWhenInView`,
|
|
46
|
-
options: {
|
|
47
|
-
...((_a = BaseClass.config) == null ? void 0 : _a.options) || {},
|
|
48
|
-
intersectionObserver: Object
|
|
49
|
-
}
|
|
50
|
-
});
|
|
51
44
|
return WithMountWhenInView;
|
|
52
45
|
}
|
|
53
46
|
export {
|
|
54
47
|
withMountWhenInView
|
|
55
48
|
};
|
|
49
|
+
//# sourceMappingURL=withMountWhenInView.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../packages/js-toolkit/decorators/withMountWhenInView.ts"],
|
|
4
|
+
"sourcesContent": ["import { BaseInterface, BaseDecorator } from '../Base/types.js';\nimport type { Base, BaseProps, BaseConfig } from '../Base/index.js';\n\nexport interface WithMountWhenInViewProps extends BaseProps {\n $options: {\n intersectionObserver: IntersectionObserverInit;\n };\n}\n\nexport interface WithMountWhenInViewInterface extends BaseInterface {\n /**\n * @private\n */\n __isVisible: boolean;\n /**\n * @private\n */\n __observer: IntersectionObserver;\n $mount():this;\n}\n\n/**\n * IntersectionObserver decoration.\n */\nexport function withMountWhenInView<S extends Base = Base>(\n BaseClass: typeof Base,\n // eslint-disable-next-line unicorn/no-object-as-default-parameter\n defaultOptions: IntersectionObserverInit = { threshold: [0, 1] },\n):BaseDecorator<WithMountWhenInViewInterface, S, WithMountWhenInViewProps> {\n /**\n * Class.\n */\n class WithMountWhenInView<T extends BaseProps = BaseProps> extends BaseClass<\n T & WithMountWhenInViewProps\n > {\n /**\n * Config.\n */\n static config: BaseConfig = {\n ...BaseClass.config,\n name: `${BaseClass.config.name}WithMountWhenInView`,\n options: {\n ...(BaseClass.config?.options || {}),\n intersectionObserver: Object,\n },\n };\n\n /**\n * Is the component visible?\n * @private\n */\n __isVisible = false;\n\n /**\n * The component's observer.\n * @private\n */\n __observer: IntersectionObserver;\n\n /**\n * Create an observer when the class in instantiated.\n *\n * @param {HTMLElement} element The component's root element.\n */\n constructor(element: HTMLElement) {\n super(element);\n\n this.__observer = new IntersectionObserver(\n (entries) => {\n const isVisible = entries.reduce((acc, entry) => acc || entry.isIntersecting, false);\n if (this.__isVisible !== isVisible) {\n this.__isVisible = isVisible;\n\n if (isVisible) {\n this.$mount();\n } else {\n setTimeout(() => this.$destroy());\n }\n }\n },\n {\n ...defaultOptions,\n ...(this.$options as typeof this.$options & WithMountWhenInViewProps['$options'])\n .intersectionObserver,\n },\n );\n\n this.__observer.observe(this.$el);\n\n this.$on('terminated', () => {\n this.__observer.disconnect();\n });\n }\n\n /**\n * Override the mounting of the component.\n */\n $mount() {\n if (this.__isVisible) {\n super.$mount();\n }\n\n return this;\n }\n }\n\n // @ts-ignore\n return WithMountWhenInView;\n}\n"],
|
|
5
|
+
"mappings": "AAwBO,SAAS,oBACd,WAEA,iBAA2C,EAAE,WAAW,CAAC,GAAG,CAAC,EAAE,GACU;AAIzE,QAAM,4BAA6D,UAEjE;AAAA,IAIA,OAAO,SAAqB;AAAA,MAC1B,GAAG,UAAU;AAAA,MACb,MAAM,GAAG,UAAU,OAAO;AAAA,MAC1B,SAAS;AAAA,QACP,GAAI,UAAU,QAAQ,WAAW,CAAC;AAAA,QAClC,sBAAsB;AAAA,MACxB;AAAA,IACF;AAAA,IAMA,cAAc;AAAA,IAMd;AAAA,IAOA,YAAY,SAAsB;AAChC,YAAM,OAAO;AAEb,WAAK,aAAa,IAAI;AAAA,QACpB,CAAC,YAAY;AACX,gBAAM,YAAY,QAAQ,OAAO,CAAC,KAAK,UAAU,OAAO,MAAM,gBAAgB,KAAK;AACnF,cAAI,KAAK,gBAAgB,WAAW;AAClC,iBAAK,cAAc;AAEnB,gBAAI,WAAW;AACb,mBAAK,OAAO;AAAA,YACd,OAAO;AACL,yBAAW,MAAM,KAAK,SAAS,CAAC;AAAA,YAClC;AAAA,UACF;AAAA,QACF;AAAA,QACA;AAAA,UACE,GAAG;AAAA,UACH,GAAI,KAAK,SACN;AAAA,QACL;AAAA,MACF;AAEA,WAAK,WAAW,QAAQ,KAAK,GAAG;AAEhC,WAAK,IAAI,cAAc,MAAM;AAC3B,aAAK,WAAW,WAAW;AAAA,MAC7B,CAAC;AAAA,IACH;AAAA,IAKA,SAAS;AACP,UAAI,KAAK,aAAa;AACpB,cAAM,OAAO;AAAA,MACf;AAEA,aAAO;AAAA,IACT;AAAA,EACF;AAGA,SAAO;AACT;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../packages/js-toolkit/decorators/withResponsiveOptions.ts"],
|
|
4
|
+
"sourcesContent": ["import type { BaseInterface, BaseDecorator } from '../Base/types.js';\nimport type { Base, BaseProps, Managers } from '../Base/index.js';\nimport { ResponsiveOptionsManager } from '../Base/managers/ResponsiveOptionsManager.js';\n\n/**\n * Extends the configuration of an existing class.\n */\nexport function withResponsiveOptions<S extends Base>(\n BaseClass: typeof Base,\n): BaseDecorator<BaseInterface, S> {\n /**\n * Class.\n */\n class WithResponsiveOptions<\n T extends BaseProps = BaseProps,\n > extends BaseClass<T> {\n /**\n * Get managers.\n */\n get __managers(): Managers & { OptionsManager: typeof ResponsiveOptionsManager } {\n return {\n ...super.__managers,\n OptionsManager: ResponsiveOptionsManager,\n };\n }\n }\n\n // @ts-ignore\n return WithResponsiveOptions;\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,sCAAyC;AAKlC,SAAS,sBACd,WACiC;AAIjC,QAAM,8BAEI,UAAa;AAAA,IAIrB,IAAI,aAA6E;AAC/E,aAAO;AAAA,QACL,GAAG,MAAM;AAAA,QACT,gBAAgB;AAAA,MAClB;AAAA,IACF;AAAA,EACF;AAGA,SAAO;AACT;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../packages/js-toolkit/decorators/withResponsiveOptions.ts"],
|
|
4
|
+
"sourcesContent": ["import type { BaseInterface, BaseDecorator } from '../Base/types.js';\nimport type { Base, BaseProps, Managers } from '../Base/index.js';\nimport { ResponsiveOptionsManager } from '../Base/managers/ResponsiveOptionsManager.js';\n\n/**\n * Extends the configuration of an existing class.\n */\nexport function withResponsiveOptions<S extends Base>(\n BaseClass: typeof Base,\n): BaseDecorator<BaseInterface, S> {\n /**\n * Class.\n */\n class WithResponsiveOptions<\n T extends BaseProps = BaseProps,\n > extends BaseClass<T> {\n /**\n * Get managers.\n */\n get __managers(): Managers & { OptionsManager: typeof ResponsiveOptionsManager } {\n return {\n ...super.__managers,\n OptionsManager: ResponsiveOptionsManager,\n };\n }\n }\n\n // @ts-ignore\n return WithResponsiveOptions;\n}\n"],
|
|
5
|
+
"mappings": "AAEA,SAAS,gCAAgC;AAKlC,SAAS,sBACd,WACiC;AAIjC,QAAM,8BAEI,UAAa;AAAA,IAIrB,IAAI,aAA6E;AAC/E,aAAO;AAAA,QACL,GAAG,MAAM;AAAA,QACT,gBAAgB;AAAA,MAClB;AAAA,IACF;AAAA,EACF;AAGA,SAAO;AACT;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -2,7 +2,6 @@ var __defProp = Object.defineProperty;
|
|
|
2
2
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
3
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
4
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
-
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
6
5
|
var __export = (target, all) => {
|
|
7
6
|
for (var name in all)
|
|
8
7
|
__defProp(target, name, { get: all[name], enumerable: true });
|
|
@@ -16,10 +15,6 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
16
15
|
return to;
|
|
17
16
|
};
|
|
18
17
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
var __publicField = (obj, key, value) => {
|
|
20
|
-
__defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
21
|
-
return value;
|
|
22
|
-
};
|
|
23
18
|
|
|
24
19
|
// packages/js-toolkit/decorators/withScrolledInView.ts
|
|
25
20
|
var withScrolledInView_exports = {};
|
|
@@ -51,36 +46,50 @@ function updateProps(props, dampFactor, dampPrecision, axis = "x") {
|
|
|
51
46
|
}
|
|
52
47
|
function withScrolledInView(BaseClass, options = {}) {
|
|
53
48
|
class WithScrolledInView extends (0, import_withMountWhenInView.withMountWhenInView)(BaseClass, options) {
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
end: {
|
|
62
|
-
x: 0,
|
|
63
|
-
y: 0
|
|
64
|
-
},
|
|
65
|
-
current: {
|
|
66
|
-
x: 0,
|
|
67
|
-
y: 0
|
|
49
|
+
static config = {
|
|
50
|
+
name: `${BaseClass.config.name}WithMountWhenInView`,
|
|
51
|
+
emits: ["scrolledInView"],
|
|
52
|
+
options: {
|
|
53
|
+
dampFactor: {
|
|
54
|
+
type: Number,
|
|
55
|
+
default: 0.1
|
|
68
56
|
},
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
},
|
|
73
|
-
progress: {
|
|
74
|
-
x: 0,
|
|
75
|
-
y: 0
|
|
76
|
-
},
|
|
77
|
-
dampedProgress: {
|
|
78
|
-
x: 0,
|
|
79
|
-
y: 0
|
|
57
|
+
dampPrecision: {
|
|
58
|
+
type: Number,
|
|
59
|
+
default: 1e-3
|
|
80
60
|
}
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
__props = {
|
|
64
|
+
start: {
|
|
65
|
+
x: 0,
|
|
66
|
+
y: 0
|
|
67
|
+
},
|
|
68
|
+
end: {
|
|
69
|
+
x: 0,
|
|
70
|
+
y: 0
|
|
71
|
+
},
|
|
72
|
+
current: {
|
|
73
|
+
x: 0,
|
|
74
|
+
y: 0
|
|
75
|
+
},
|
|
76
|
+
dampedCurrent: {
|
|
77
|
+
x: 0,
|
|
78
|
+
y: 0
|
|
79
|
+
},
|
|
80
|
+
progress: {
|
|
81
|
+
x: 0,
|
|
82
|
+
y: 0
|
|
83
|
+
},
|
|
84
|
+
dampedProgress: {
|
|
85
|
+
x: 0,
|
|
86
|
+
y: 0
|
|
87
|
+
}
|
|
88
|
+
};
|
|
89
|
+
dampFactor = null;
|
|
90
|
+
dampPrecision = null;
|
|
91
|
+
constructor(element) {
|
|
92
|
+
super(element);
|
|
84
93
|
const render = () => {
|
|
85
94
|
scheduler.update(() => {
|
|
86
95
|
const renderFn = this.__callMethod("scrolledInView", this.__props);
|
|
@@ -104,9 +113,8 @@ function withScrolledInView(BaseClass, options = {}) {
|
|
|
104
113
|
}
|
|
105
114
|
},
|
|
106
115
|
ticked: () => {
|
|
107
|
-
|
|
108
|
-
const
|
|
109
|
-
const dampPrecision = (_b = this.dampFactor) != null ? _b : this.$options.dampFactor;
|
|
116
|
+
const dampFactor = this.dampFactor ?? this.$options.dampFactor;
|
|
117
|
+
const dampPrecision = this.dampFactor ?? this.$options.dampFactor;
|
|
110
118
|
updateProps(this.__props, dampFactor, dampPrecision, "x");
|
|
111
119
|
updateProps(this.__props, dampFactor, dampPrecision, "y");
|
|
112
120
|
if (this.__props.dampedCurrent.x === this.__props.current.x && this.__props.dampedCurrent.y === this.__props.current.y) {
|
|
@@ -197,20 +205,7 @@ function withScrolledInView(BaseClass, options = {}) {
|
|
|
197
205
|
);
|
|
198
206
|
}
|
|
199
207
|
}
|
|
200
|
-
__publicField(WithScrolledInView, "config", {
|
|
201
|
-
name: `${BaseClass.config.name}WithMountWhenInView`,
|
|
202
|
-
emits: ["scrolledInView"],
|
|
203
|
-
options: {
|
|
204
|
-
dampFactor: {
|
|
205
|
-
type: Number,
|
|
206
|
-
default: 0.1
|
|
207
|
-
},
|
|
208
|
-
dampPrecision: {
|
|
209
|
-
type: Number,
|
|
210
|
-
default: 1e-3
|
|
211
|
-
}
|
|
212
|
-
}
|
|
213
|
-
});
|
|
214
208
|
return WithScrolledInView;
|
|
215
209
|
}
|
|
216
210
|
if (module.exports.default) module.exports = module.exports.default;
|
|
211
|
+
//# sourceMappingURL=withScrolledInView.cjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../packages/js-toolkit/decorators/withScrolledInView.ts"],
|
|
4
|
+
"sourcesContent": ["import type { BaseInterface, BaseDecorator } from '../Base/types.js';\nimport type { Base, BaseProps, BaseConfig } from '../Base/index.js';\nimport type { RafServiceProps, ScrollServiceProps, ResizeServiceProps } from '../services/index.js';\nimport { withMountWhenInView } from './withMountWhenInView.js';\nimport { damp, clamp, clamp01, getOffsetSizes, isFunction, useScheduler } from '../utils/index.js';\n\nconst scheduler = useScheduler(['update', 'render']);\n\nexport interface WithScrolledInViewProps extends BaseProps {\n $options: {\n dampFactor: number;\n dampPrecision: number;\n };\n}\n\nexport type ScrollInViewProps = {\n start: {\n x: number;\n y: number;\n };\n end: {\n x: number;\n y: number;\n };\n current: {\n x: number;\n y: number;\n };\n dampedCurrent: {\n x: number;\n y: number;\n };\n progress: {\n x: number;\n y: number;\n };\n dampedProgress: {\n x: number;\n y: number;\n };\n};\n\nexport type WithScrolledInViewOptions = IntersectionObserverInit & {\n useOffsetSizes?: boolean;\n};\n\n/**\n * Update props on tick.\n */\nfunction updateProps(\n props: ScrollInViewProps,\n dampFactor: number,\n dampPrecision: number,\n axis: 'x' | 'y' = 'x',\n): void {\n props.current[axis] = clamp(\n axis === 'x' ? window.pageXOffset : window.pageYOffset,\n props.start[axis],\n props.end[axis],\n );\n props.dampedCurrent[axis] = damp(\n props.current[axis],\n props.dampedCurrent[axis],\n dampFactor,\n dampPrecision,\n );\n props.progress[axis] = clamp01(\n (props.current[axis] - props.start[axis]) / (props.end[axis] - props.start[axis]),\n );\n props.dampedProgress[axis] = clamp01(\n (props.dampedCurrent[axis] - props.start[axis]) / (props.end[axis] - props.start[axis]),\n );\n}\n\nexport interface WithScrolledInViewInterface extends BaseInterface {\n /**\n * @private\n * @type {ScrollInViewProps}\n */\n __props: ScrollInViewProps;\n dampFactor?: number;\n dampPrecision?: number;\n mounted(): void;\n resized(props: ResizeServiceProps): void;\n scrolled(props: ScrollServiceProps): void;\n ticked(props: RafServiceProps): void;\n destroyed(): void;\n /**\n * @private\n */\n __setProps(): void;\n}\n\n/**\n * Add scrolled in view capabilities to a component.\n */\nexport function withScrolledInView<S extends Base = Base>(\n BaseClass: typeof Base,\n options: WithScrolledInViewOptions = {},\n): BaseDecorator<WithScrolledInViewInterface, S, WithScrolledInViewProps> {\n /**\n * Class.\n */\n class WithScrolledInView<\n T extends BaseProps = BaseProps,\n > extends withMountWhenInView(BaseClass, options)<T & WithScrolledInViewProps> {\n /**\n * Config.\n */\n static config: BaseConfig = {\n name: `${BaseClass.config.name}WithMountWhenInView`,\n emits: ['scrolledInView'],\n options: {\n dampFactor: {\n type: Number,\n default: 0.1,\n },\n dampPrecision: {\n type: Number,\n default: 0.001,\n },\n },\n };\n\n __props: ScrollInViewProps = {\n start: {\n x: 0,\n y: 0,\n },\n end: {\n x: 0,\n y: 0,\n },\n current: {\n x: 0,\n y: 0,\n },\n dampedCurrent: {\n x: 0,\n y: 0,\n },\n progress: {\n x: 0,\n y: 0,\n },\n dampedProgress: {\n x: 0,\n y: 0,\n },\n };\n\n /**\n * Factor used for the `dampedProgress` props.\n * @deprecated\n * @todo v3 delete in favor of option API\n */\n dampFactor?: number = null;\n\n /**\n * Precision for the `dampedProgress` props.\n * @deprecated\n * @todo v3 delete in favor of option API\n */\n dampPrecision?: number = null;\n\n /**\n * Bind listeners.\n */\n constructor(element: HTMLElement) {\n super(element);\n\n const render = () => {\n scheduler.update(() => {\n // @ts-ignore\n const renderFn = this.__callMethod('scrolledInView', this.__props);\n if (isFunction(renderFn)) {\n scheduler.render(() => {\n renderFn(this.__props);\n });\n }\n });\n };\n\n const delegate = {\n handleEvent(event) {\n delegate[event.type](event.detail[0]);\n },\n resized: () => {\n this.__setProps();\n },\n scrolled: (props) => {\n if ((!this.$services.has('ticked') && props.changed.y) || props.changed.x) {\n this.$services.enable('ticked');\n }\n },\n ticked: () => {\n const dampFactor = this.dampFactor ?? this.$options.dampFactor;\n const dampPrecision = this.dampFactor ?? this.$options.dampFactor;\n\n updateProps(this.__props, dampFactor, dampPrecision, 'x');\n updateProps(this.__props, dampFactor, dampPrecision, 'y');\n\n if (\n this.__props.dampedCurrent.x === this.__props.current.x &&\n this.__props.dampedCurrent.y === this.__props.current.y\n ) {\n this.$services.disable('ticked');\n }\n\n render();\n },\n };\n\n this.$on('before-mounted', () => {\n this.$on('resized', delegate);\n this.$on('scrolled', delegate);\n this.$on('ticked', delegate);\n });\n\n this.$on('mounted', () => {\n this.__setProps();\n });\n\n this.$on('destroyed', () => {\n this.$off('resized', delegate);\n this.$off('scrolled', delegate);\n this.$off('ticked', delegate);\n\n // Clamp damped values to their final value and trigger one last render on destroy\n this.__props.dampedCurrent.x = this.__props.current.x;\n this.__props.dampedCurrent.y = this.__props.current.y;\n this.__props.dampedProgress.x = this.__props.progress.x;\n this.__props.dampedProgress.y = this.__props.progress.y;\n render();\n });\n }\n\n /**\n * Mounted hook.\n */\n mounted() {\n // @ts-ignore\n if (isFunction(super.mounted)) {\n // @ts-ignore\n super.mounted();\n }\n }\n\n /**\n * Resized hook.\n */\n resized(props: ResizeServiceProps) {\n // @ts-ignore\n if (isFunction(super.resized)) {\n // @ts-ignore\n super.resized(props);\n }\n }\n\n /**\n * Scrolled hook.\n */\n scrolled(props: ScrollServiceProps) {\n // @ts-ignore\n if (isFunction(super.scrolled)) {\n // @ts-ignore\n super.scrolled(props);\n }\n }\n\n /**\n * Ticked hook.\n */\n ticked(props: RafServiceProps) {\n // @ts-ignore\n if (isFunction(super.ticked)) {\n // @ts-ignore\n super.ticked(props);\n }\n }\n\n /**\n * Destroyed hook.\n */\n destroyed() {\n // @ts-ignore\n if (isFunction(super.destroyed)) {\n // @ts-ignore\n super.destroyed();\n }\n }\n\n /**\n * Set the decorator props.\n */\n __setProps() {\n const sizes = options.useOffsetSizes\n ? getOffsetSizes(this.$el)\n : this.$el.getBoundingClientRect();\n\n // Y axis\n const yEnd = sizes.y + window.pageYOffset + sizes.height;\n const yStart = yEnd - window.innerHeight - sizes.height;\n const yCurrent = clamp(window.pageYOffset, yStart, yEnd);\n const yProgress = clamp01((yCurrent - yStart) / (yEnd - yStart));\n\n // X axis\n const xEnd = sizes.x + window.pageXOffset + sizes.width;\n const xStart = xEnd - window.innerWidth - sizes.width;\n const xCurrent = clamp(window.pageXOffset, xStart, xEnd);\n const xProgress = clamp01((xCurrent - xStart) / (xEnd - xStart));\n\n this.__props.start.x = xStart;\n this.__props.start.y = yStart;\n this.__props.end.x = xEnd;\n this.__props.end.y = yEnd;\n this.__props.current.x = xCurrent;\n this.__props.current.y = yCurrent;\n this.__props.dampedCurrent.x = damp(\n xCurrent,\n this.__props.dampedCurrent.x,\n this.dampFactor,\n this.dampPrecision,\n );\n this.__props.dampedCurrent.y = damp(\n yCurrent,\n this.__props.dampedCurrent.y,\n this.dampFactor,\n this.dampPrecision,\n );\n this.__props.progress.x = xProgress;\n this.__props.progress.y = yProgress;\n this.__props.dampedProgress.x = clamp01(\n (this.__props.dampedCurrent.x - xStart) / (xEnd - xStart),\n );\n this.__props.dampedProgress.y = clamp01(\n (this.__props.dampedCurrent.y - yStart) / (yEnd - yStart),\n );\n }\n }\n\n // @ts-ignore\n return WithScrolledInView;\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|