@studiometa/js-toolkit 2.4.2 → 2.4.4-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/Base/index.d.ts +90 -49
  2. package/Base/managers/AbstractManager.d.ts +3 -3
  3. package/Base/managers/ChildrenManager.d.ts +1 -1
  4. package/Base/managers/EventsManager.d.ts +3 -3
  5. package/Base/managers/OptionsManager.d.ts +1 -1
  6. package/Base/managers/ResponsiveOptionsManager.cjs +1 -1
  7. package/Base/managers/ResponsiveOptionsManager.d.ts +3 -7
  8. package/Base/managers/ServicesManager.d.ts +6 -6
  9. package/Base/utils.d.ts +2 -2
  10. package/decorators/index.cjs +1 -1
  11. package/decorators/index.d.ts +10 -10
  12. package/decorators/withBreakpointManager.cjs +2 -3
  13. package/decorators/withBreakpointManager.d.ts +84 -7
  14. package/decorators/withBreakpointManager.js +1 -2
  15. package/decorators/withBreakpointObserver.cjs +2 -2
  16. package/decorators/withBreakpointObserver.d.ts +89 -13
  17. package/decorators/withBreakpointObserver.js +1 -1
  18. package/decorators/withDrag.cjs +1 -1
  19. package/decorators/withDrag.d.ts +81 -18
  20. package/decorators/withExtraConfig.cjs +1 -1
  21. package/decorators/withExtraConfig.d.ts +77 -10
  22. package/decorators/withFreezedOptions.cjs +9 -7
  23. package/decorators/withFreezedOptions.d.ts +81 -11
  24. package/decorators/withFreezedOptions.js +8 -6
  25. package/decorators/withIntersectionObserver.cjs +2 -1
  26. package/decorators/withIntersectionObserver.d.ts +91 -17
  27. package/decorators/withIntersectionObserver.js +1 -0
  28. package/decorators/withMountWhenInView.cjs +1 -1
  29. package/decorators/withMountWhenInView.d.ts +91 -29
  30. package/decorators/withResponsiveOptions.cjs +2 -2
  31. package/decorators/withResponsiveOptions.d.ts +78 -5
  32. package/decorators/withResponsiveOptions.js +1 -1
  33. package/decorators/withScrolledInView.cjs +13 -7
  34. package/decorators/withScrolledInView.d.ts +173 -15
  35. package/decorators/withScrolledInView.js +12 -6
  36. package/decorators/withVue2.cjs +5 -5
  37. package/decorators/withVue2.d.ts +97 -6
  38. package/decorators/withVue2.js +4 -4
  39. package/helpers/getDirectChildren.d.ts +11 -4
  40. package/helpers/importOnInteraction.d.ts +2 -2
  41. package/helpers/importWhenVisible.d.ts +2 -2
  42. package/index.cjs +1 -1
  43. package/index.d.ts +5 -4
  44. package/package.json +1 -1
  45. package/services/drag.d.ts +1 -1
  46. package/services/index.cjs +1 -1
  47. package/services/index.d.ts +33 -25
  48. package/services/key.d.ts +1 -1
  49. package/services/load.d.ts +1 -1
  50. package/services/pointer.d.ts +1 -1
  51. package/services/raf.d.ts +1 -1
  52. package/services/resize.d.ts +1 -1
  53. package/services/scroll.d.ts +1 -1
@@ -1,17 +1,93 @@
1
+ import type Base from '../Base/index.js';
2
+ import type { BaseConstructor, BaseTypeParameter } from '../Base/index.js';
1
3
  /**
2
4
  * BreakpointObserver class.
3
- *
4
- * @template {BaseConstructor} T
5
- * @param {T} BaseClass The Base class to extend from.
6
- * @returns {T}
7
5
  */
8
- export default function withBreakpointObserver<T extends typeof import("../Base").default>(BaseClass: T): T;
9
- export type Base = import("../Base").default<any>;
10
- export type BaseConstructor = import('../Base').BaseConstructor;
11
- export type WithBreakpointObserverOptions = {
12
- activeBreakpoints?: string;
13
- inactiveBreakpoints?: string;
14
- };
15
- export type WithBreakpointObserverInterface = {
16
- $options: WithBreakpointObserverOptions;
6
+ export default function withBreakpointObserver<T extends BaseTypeParameter = BaseTypeParameter>(BaseClass: BaseConstructor): {
7
+ new <U extends BaseTypeParameter = BaseTypeParameter>(element: any): {
8
+ /**
9
+ * Override the default $mount method to prevent component's from being
10
+ * mounted when they should not.
11
+ *
12
+ * @returns {this}
13
+ */
14
+ $mount(): any;
15
+ $parent: Base<{
16
+ $el: HTMLElement;
17
+ $options: import("../Base/index.js").BaseOptions;
18
+ $refs: import("../Base/index.js").BaseRefs;
19
+ $children: {
20
+ [name: string]: Base<any> | Promise<Base<any>>;
21
+ };
22
+ }>;
23
+ $id: string;
24
+ $el: (T & U)["$el"] & HTMLElement & {
25
+ __base__?: WeakMap<typeof Base, Base<{
26
+ $el: HTMLElement;
27
+ $options: import("../Base/index.js").BaseOptions;
28
+ $refs: import("../Base/index.js").BaseRefs;
29
+ $children: {
30
+ [name: string]: Base<any> | Promise<Base<any>>;
31
+ };
32
+ }> | "terminated">;
33
+ };
34
+ $isMounted: boolean;
35
+ __eventHandlers: Map<string, Set<EventListenerOrEventListenerObject>>;
36
+ readonly $root: Base<{
37
+ $el: HTMLElement;
38
+ $options: import("../Base/index.js").BaseOptions;
39
+ $refs: import("../Base/index.js").BaseRefs;
40
+ $children: {
41
+ [name: string]: Base<any> | Promise<Base<any>>;
42
+ };
43
+ }>;
44
+ readonly __config: import("../Base/index.js").BaseConfig;
45
+ __services: import("../Base/managers/ServicesManager.js").default;
46
+ readonly $services: import("../Base/managers/ServicesManager.js").default;
47
+ __refs: import("../Base/managers/RefsManager.js").default & (T & U)["$refs"] & import("../Base/index.js").BaseRefs;
48
+ readonly $refs: import("../Base/managers/RefsManager.js").default & (T & U)["$refs"] & import("../Base/index.js").BaseRefs;
49
+ __options: import("../Base/managers/OptionsManager.js").default & (T & U)["$options"] & import("../Base/index.js").BaseOptions;
50
+ readonly $options: import("../Base/managers/OptionsManager.js").default & (T & U)["$options"] & import("../Base/index.js").BaseOptions;
51
+ __children: import("../Base/managers/ChildrenManager.js").default & ((T & U)["$children"] extends infer T_1 ? { [key in keyof T_1]: (T & U)["$children"][key][]; } : never) & import("../Base/index.js").BaseChildren;
52
+ readonly $children: import("../Base/managers/ChildrenManager.js").default & ((T & U)["$children"] extends infer T_2 ? { [key_1 in keyof T_2]: (T & U)["$children"][key_1][]; } : never) & import("../Base/index.js").BaseChildren;
53
+ __events: import("../Base/managers/EventsManager.js").default;
54
+ readonly $log: (...args: any) => void;
55
+ readonly __debug: (...args: any) => void;
56
+ readonly __managers: import("../Base/index.js").Managers;
57
+ __callMethod(method: string, ...args: any[]): any;
58
+ __hasEvent(event: string): boolean;
59
+ $update(): any;
60
+ $destroy(): any;
61
+ $terminate(): void;
62
+ __addEmits(event: string): void;
63
+ __removeEmits(event: string): void;
64
+ readonly __ctor: typeof Base;
65
+ $on(event: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): () => void;
66
+ $off(event: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
67
+ $emit(event: string, ...args: any[]): void;
68
+ addEventListener(type: string, callback: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
69
+ dispatchEvent(event: Event): boolean;
70
+ removeEventListener(type: string, callback: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
71
+ };
72
+ config: {
73
+ name: string;
74
+ options: {
75
+ activeBreakpoints: StringConstructor;
76
+ inactiveBreakpoints: StringConstructor;
77
+ };
78
+ debug?: boolean;
79
+ log?: boolean;
80
+ refs?: string[];
81
+ emits?: string[];
82
+ components?: import("../Base/index.js").BaseConfigComponents;
83
+ };
84
+ readonly $isBase: boolean;
85
+ $factory(nameOrSelector: string): Base<{
86
+ $el: HTMLElement;
87
+ $options: import("../Base/index.js").BaseOptions;
88
+ $refs: import("../Base/index.js").BaseRefs;
89
+ $children: {
90
+ [name: string]: Base<any> | Promise<Base<any>>;
91
+ };
92
+ }>[];
17
93
  };
@@ -33,7 +33,7 @@ function addToResize(key, instance) {
33
33
  }
34
34
  const { add, has } = useResize();
35
35
  if (!has(key)) {
36
- add(key, function onResize({ breakpoint }) {
36
+ add(key, ({ breakpoint }) => {
37
37
  const action = testBreakpoints(instance, breakpoint);
38
38
  if (action === "$destroy" && instance.$isMounted) {
39
39
  instance[action]();
@@ -27,7 +27,7 @@ var __publicField = (obj, key, value) => {
27
27
  return value;
28
28
  };
29
29
 
30
- // packages/js-toolkit/decorators/withDrag.js
30
+ // packages/js-toolkit/decorators/withDrag.ts
31
31
  var withDrag_exports = {};
32
32
  __export(withDrag_exports, {
33
33
  default: () => withDrag
@@ -1,21 +1,84 @@
1
- /**
2
- * @typedef {import('../Base').default} Base
3
- * @typedef {import('../Base').BaseConstructor} BaseConstructor
4
- * @typedef {import('../services/drag').DragServiceOptions} DragServiceOptions
5
- */
6
- /**
7
- * @typedef {DragServiceOptions & { target?: (this:Base, Base) => HTMLElement }} DragDecoratorOptions
8
- */
1
+ import type Base from '../Base/index.js';
2
+ import type { BaseTypeParameter, BaseConstructor } from '../Base/index.js';
3
+ import type { DragServiceOptions } from '../services/drag.js';
4
+ declare type DragDecoratorOptions = DragServiceOptions & {
5
+ target?: (this: Base, instance: Base) => HTMLElement;
6
+ };
9
7
  /**
10
8
  * Add dragging capabilities to a component.
11
- *
12
- * @template {BaseConstructor} T
13
- * @param {T} BaseClass
14
- * @param {DragDecoratorOptions} options
15
- * @returns {T}
16
9
  */
17
- export default function withDrag<T extends typeof import("../Base").default>(BaseClass: T, { target, ...options }?: DragDecoratorOptions): T;
18
- export type Base = import("../Base").default<any>;
19
- export type BaseConstructor = import('../Base').BaseConstructor;
20
- export type DragServiceOptions = import('../services/drag').DragServiceOptions;
21
- export type DragDecoratorOptions = DragDecoratorOptions;
10
+ export default function withDrag<T extends BaseTypeParameter = BaseTypeParameter>(BaseClass: BaseConstructor, { target, ...options }?: DragDecoratorOptions): {
11
+ new <U extends BaseTypeParameter = BaseTypeParameter>(el: any): {
12
+ $parent: Base<{
13
+ $el: HTMLElement;
14
+ $options: import("../Base/index.js").BaseOptions;
15
+ $refs: import("../Base/index.js").BaseRefs;
16
+ $children: {
17
+ [name: string]: Base<any> | Promise<Base<any>>;
18
+ };
19
+ }>;
20
+ $id: string;
21
+ $el: (T & U)["$el"] & HTMLElement & {
22
+ __base__?: WeakMap<typeof Base, Base<{
23
+ $el: HTMLElement;
24
+ $options: import("../Base/index.js").BaseOptions;
25
+ $refs: import("../Base/index.js").BaseRefs;
26
+ $children: {
27
+ [name: string]: Base<any> | Promise<Base<any>>;
28
+ };
29
+ }> | "terminated">;
30
+ };
31
+ $isMounted: boolean;
32
+ __eventHandlers: Map<string, Set<EventListenerOrEventListenerObject>>;
33
+ readonly $root: Base<{
34
+ $el: HTMLElement;
35
+ $options: import("../Base/index.js").BaseOptions;
36
+ $refs: import("../Base/index.js").BaseRefs;
37
+ $children: {
38
+ [name: string]: Base<any> | Promise<Base<any>>;
39
+ };
40
+ }>;
41
+ readonly __config: import("../Base/index.js").BaseConfig;
42
+ __services: import("../Base/managers/ServicesManager.js").default;
43
+ readonly $services: import("../Base/managers/ServicesManager.js").default;
44
+ __refs: import("../Base/managers/RefsManager.js").default & (T & U)["$refs"] & import("../Base/index.js").BaseRefs;
45
+ readonly $refs: import("../Base/managers/RefsManager.js").default & (T & U)["$refs"] & import("../Base/index.js").BaseRefs;
46
+ __options: import("../Base/managers/OptionsManager.js").default & (T & U)["$options"] & import("../Base/index.js").BaseOptions;
47
+ readonly $options: import("../Base/managers/OptionsManager.js").default & (T & U)["$options"] & import("../Base/index.js").BaseOptions;
48
+ __children: import("../Base/managers/ChildrenManager.js").default & ((T & U)["$children"] extends infer T_1 ? { [key in keyof T_1]: (T & U)["$children"][key][]; } : never) & import("../Base/index.js").BaseChildren;
49
+ readonly $children: import("../Base/managers/ChildrenManager.js").default & ((T & U)["$children"] extends infer T_2 ? { [key_1 in keyof T_2]: (T & U)["$children"][key_1][]; } : never) & import("../Base/index.js").BaseChildren;
50
+ __events: import("../Base/managers/EventsManager.js").default;
51
+ readonly $log: (...args: any) => void;
52
+ readonly __debug: (...args: any) => void;
53
+ readonly __managers: import("../Base/index.js").Managers;
54
+ __callMethod(method: string, ...args: any[]): any;
55
+ __hasEvent(event: string): boolean;
56
+ $mount(): any;
57
+ $update(): any;
58
+ $destroy(): any;
59
+ $terminate(): void;
60
+ __addEmits(event: string): void;
61
+ __removeEmits(event: string): void;
62
+ readonly __ctor: typeof Base;
63
+ $on(event: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): () => void;
64
+ $off(event: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
65
+ $emit(event: string, ...args: any[]): void;
66
+ addEventListener(type: string, callback: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
67
+ dispatchEvent(event: Event): boolean;
68
+ removeEventListener(type: string, callback: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
69
+ };
70
+ config: {
71
+ name: string;
72
+ emits: string[];
73
+ };
74
+ readonly $isBase: boolean;
75
+ $factory(nameOrSelector: string): Base<{
76
+ $el: HTMLElement;
77
+ $options: import("../Base/index.js").BaseOptions;
78
+ $refs: import("../Base/index.js").BaseRefs;
79
+ $children: {
80
+ [name: string]: Base<any> | Promise<Base<any>>;
81
+ };
82
+ }>[];
83
+ };
84
+ export {};
@@ -27,7 +27,7 @@ var __publicField = (obj, key, value) => {
27
27
  return value;
28
28
  };
29
29
 
30
- // packages/js-toolkit/decorators/withExtraConfig.js
30
+ // packages/js-toolkit/decorators/withExtraConfig.ts
31
31
  var withExtraConfig_exports = {};
32
32
  __export(withExtraConfig_exports, {
33
33
  default: () => withExtraConfig
@@ -1,8 +1,5 @@
1
- /**
2
- * @typedef {import('deepmerge').Options} DeepmergeOptions
3
- * @typedef {import('../Base').BaseConfig} BaseConfig
4
- * @typedef {import('../Base').BaseConstructor} BaseConstructor
5
- */
1
+ import type { Options as DeepmergeOptions } from 'deepmerge';
2
+ import type { BaseTypeParameter, BaseConstructor, BaseConfig } from '../Base/index.js';
6
3
  /**
7
4
  * Extends the configuration of an existing class.
8
5
  *
@@ -10,9 +7,79 @@
10
7
  * @param {T} BaseClass The Base class to extend.
11
8
  * @param {Partial<BaseConfig>} config Extra configuration to merge.
12
9
  * @param {DeepmergeOptions} options Options for the `deepmerge` function. {@link https://github.com/TehShrike/deepmerge#options}
13
- * @returns {T}
14
10
  */
15
- export default function withExtraConfig<T extends typeof import("../Base").default>(BaseClass: T, config: Partial<BaseConfig>, options?: DeepmergeOptions): T;
16
- export type DeepmergeOptions = import('deepmerge').Options;
17
- export type BaseConfig = import('../Base').BaseConfig;
18
- export type BaseConstructor = import('../Base').BaseConstructor;
11
+ export default function withExtraConfig<T extends BaseTypeParameter = BaseTypeParameter>(BaseClass: BaseConstructor, config: Partial<BaseConfig>, options?: DeepmergeOptions): {
12
+ new <U extends BaseTypeParameter = BaseTypeParameter>(element: HTMLElement): {
13
+ $parent: import("../Base/index.js").default<{
14
+ $el: HTMLElement;
15
+ $options: import("../Base/index.js").BaseOptions;
16
+ $refs: import("../Base/index.js").BaseRefs;
17
+ $children: {
18
+ [name: string]: import("../Base/index.js").default<any> | Promise<import("../Base/index.js").default<any>>;
19
+ };
20
+ }>;
21
+ $id: string;
22
+ $el: (T & U)["$el"] & HTMLElement & {
23
+ __base__?: WeakMap<typeof import("../Base/index.js").default, import("../Base/index.js").default<{
24
+ $el: HTMLElement;
25
+ $options: import("../Base/index.js").BaseOptions;
26
+ $refs: import("../Base/index.js").BaseRefs;
27
+ $children: {
28
+ [name: string]: import("../Base/index.js").default<any> | Promise<import("../Base/index.js").default<any>>;
29
+ };
30
+ }> | "terminated">;
31
+ };
32
+ $isMounted: boolean;
33
+ __eventHandlers: Map<string, Set<EventListenerOrEventListenerObject>>;
34
+ readonly $root: import("../Base/index.js").default<{
35
+ $el: HTMLElement;
36
+ $options: import("../Base/index.js").BaseOptions;
37
+ $refs: import("../Base/index.js").BaseRefs;
38
+ $children: {
39
+ [name: string]: import("../Base/index.js").default<any> | Promise<import("../Base/index.js").default<any>>;
40
+ };
41
+ }>;
42
+ readonly __config: BaseConfig;
43
+ __services: import("../Base/managers/ServicesManager.js").default;
44
+ readonly $services: import("../Base/managers/ServicesManager.js").default;
45
+ __refs: import("../Base/managers/RefsManager.js").default & (T & U)["$refs"] & import("../Base/index.js").BaseRefs;
46
+ readonly $refs: import("../Base/managers/RefsManager.js").default & (T & U)["$refs"] & import("../Base/index.js").BaseRefs;
47
+ __options: import("../Base/managers/OptionsManager.js").default & (T & U)["$options"] & import("../Base/index.js").BaseOptions;
48
+ readonly $options: import("../Base/managers/OptionsManager.js").default & (T & U)["$options"] & import("../Base/index.js").BaseOptions;
49
+ __children: import("../Base/managers/ChildrenManager.js").default & ((T & U)["$children"] extends infer T_1 ? { [key in keyof T_1]: (T & U)["$children"][key][]; } : never) & import("../Base/index.js").BaseChildren;
50
+ readonly $children: import("../Base/managers/ChildrenManager.js").default & ((T & U)["$children"] extends infer T_2 ? { [key_1 in keyof T_2]: (T & U)["$children"][key_1][]; } : never) & import("../Base/index.js").BaseChildren;
51
+ __events: import("../Base/managers/EventsManager.js").default;
52
+ readonly $log: (...args: any) => void;
53
+ readonly __debug: (...args: any) => void;
54
+ readonly __managers: import("../Base/index.js").Managers;
55
+ __callMethod(method: string, ...args: any[]): any;
56
+ __hasEvent(event: string): boolean;
57
+ $mount(): any;
58
+ $update(): any;
59
+ $destroy(): any;
60
+ $terminate(): void;
61
+ __addEmits(event: string): void;
62
+ __removeEmits(event: string): void;
63
+ readonly __ctor: typeof import("../Base/index.js").default;
64
+ $on(event: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): () => void;
65
+ $off(event: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
66
+ $emit(event: string, ...args: any[]): void;
67
+ addEventListener(type: string, callback: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
68
+ dispatchEvent(event: Event): boolean;
69
+ removeEventListener(type: string, callback: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
70
+ };
71
+ /**
72
+ * Class config.
73
+ * @type {BaseConfig}
74
+ */
75
+ config: BaseConfig;
76
+ readonly $isBase: boolean;
77
+ $factory(nameOrSelector: string): import("../Base/index.js").default<{
78
+ $el: HTMLElement;
79
+ $options: import("../Base/index.js").BaseOptions;
80
+ $refs: import("../Base/index.js").BaseRefs;
81
+ $children: {
82
+ [name: string]: import("../Base/index.js").default<any> | Promise<import("../Base/index.js").default<any>>;
83
+ };
84
+ }>[];
85
+ };
@@ -21,24 +21,26 @@ var __publicField = (obj, key, value) => {
21
21
  return value;
22
22
  };
23
23
 
24
- // packages/js-toolkit/decorators/withFreezedOptions.js
24
+ // packages/js-toolkit/decorators/withFreezedOptions.ts
25
25
  var withFreezedOptions_exports = {};
26
26
  __export(withFreezedOptions_exports, {
27
27
  default: () => withFreezedOptions
28
28
  });
29
29
  module.exports = __toCommonJS(withFreezedOptions_exports);
30
30
  function withFreezedOptions(BaseClass) {
31
- return class extends BaseClass {
31
+ return class WithFreezedOptions extends BaseClass {
32
32
  constructor() {
33
33
  super(...arguments);
34
34
  __publicField(this, "__freezedOptions");
35
35
  }
36
36
  get $options() {
37
- Object.defineProperty(this, "__freezedOptions", {
38
- value: Object.freeze({ ...super.$options }),
39
- enumerable: false,
40
- configurable: true
41
- });
37
+ if (!this.__freezedOptions) {
38
+ Object.defineProperty(this, "__freezedOptions", {
39
+ value: Object.freeze({ ...super.$options }),
40
+ enumerable: false,
41
+ configurable: true
42
+ });
43
+ }
42
44
  return this.__freezedOptions;
43
45
  }
44
46
  };
@@ -1,14 +1,84 @@
1
- /**
2
- * @typedef {import('../Base').BaseOptions} BaseOptions
3
- * @typedef {import('../Base').BaseConstructor} BaseConstructor
4
- */
1
+ import type { BaseConstructor, BaseTypeParameter } from '../Base/index.js';
5
2
  /**
6
3
  * Freeze the `$options` property to improve performance.
7
- *
8
- * @template {BaseConstructor} T
9
- * @param {T} BaseClass The Base class to extend.
10
- * @returns {T}
11
4
  */
12
- export default function withFreezedOptions<T extends typeof import("../Base").default>(BaseClass: T): T;
13
- export type BaseOptions = import('../Base').BaseOptions;
14
- export type BaseConstructor = import('../Base').BaseConstructor;
5
+ export default function withFreezedOptions<T extends BaseTypeParameter = BaseTypeParameter>(BaseClass: BaseConstructor): {
6
+ new <U extends BaseTypeParameter = BaseTypeParameter>(element: HTMLElement): {
7
+ /**
8
+ * Hold freezed options
9
+ * @private
10
+ */
11
+ __freezedOptions: any;
12
+ /**
13
+ * Lazyly freeze the `$options` property.
14
+ * @returns {Readonly<this['$options']>}
15
+ */
16
+ readonly $options: any;
17
+ $parent: import("../Base/index.js").default<{
18
+ $el: HTMLElement;
19
+ $options: import("../Base/index.js").BaseOptions;
20
+ $refs: import("../Base/index.js").BaseRefs;
21
+ $children: {
22
+ [name: string]: import("../Base/index.js").default<any> | Promise<import("../Base/index.js").default<any>>;
23
+ };
24
+ }>;
25
+ $id: string;
26
+ $el: (T & U)["$el"] & HTMLElement & {
27
+ __base__?: WeakMap<typeof import("../Base/index.js").default, import("../Base/index.js").default<{
28
+ $el: HTMLElement;
29
+ $options: import("../Base/index.js").BaseOptions;
30
+ $refs: import("../Base/index.js").BaseRefs;
31
+ $children: {
32
+ [name: string]: import("../Base/index.js").default<any> | Promise<import("../Base/index.js").default<any>>;
33
+ };
34
+ }> | "terminated">;
35
+ };
36
+ $isMounted: boolean;
37
+ __eventHandlers: Map<string, Set<EventListenerOrEventListenerObject>>;
38
+ readonly $root: import("../Base/index.js").default<{
39
+ $el: HTMLElement;
40
+ $options: import("../Base/index.js").BaseOptions;
41
+ $refs: import("../Base/index.js").BaseRefs;
42
+ $children: {
43
+ [name: string]: import("../Base/index.js").default<any> | Promise<import("../Base/index.js").default<any>>;
44
+ };
45
+ }>;
46
+ readonly __config: import("../Base/index.js").BaseConfig;
47
+ __services: import("../Base/managers/ServicesManager.js").default;
48
+ readonly $services: import("../Base/managers/ServicesManager.js").default;
49
+ __refs: import("../Base/managers/RefsManager.js").default & (T & U)["$refs"] & import("../Base/index.js").BaseRefs;
50
+ readonly $refs: import("../Base/managers/RefsManager.js").default & (T & U)["$refs"] & import("../Base/index.js").BaseRefs;
51
+ __options: import("../Base/managers/OptionsManager.js").default & (T & U)["$options"] & import("../Base/index.js").BaseOptions;
52
+ __children: import("../Base/managers/ChildrenManager.js").default & ((T & U)["$children"] extends infer T_1 ? { [key in keyof T_1]: (T & U)["$children"][key][]; } : never) & import("../Base/index.js").BaseChildren;
53
+ readonly $children: import("../Base/managers/ChildrenManager.js").default & ((T & U)["$children"] extends infer T_2 ? { [key_1 in keyof T_2]: (T & U)["$children"][key_1][]; } : never) & import("../Base/index.js").BaseChildren;
54
+ __events: import("../Base/managers/EventsManager.js").default;
55
+ readonly $log: (...args: any) => void;
56
+ readonly __debug: (...args: any) => void;
57
+ readonly __managers: import("../Base/index.js").Managers;
58
+ __callMethod(method: string, ...args: any[]): any;
59
+ __hasEvent(event: string): boolean;
60
+ $mount(): any;
61
+ $update(): any;
62
+ $destroy(): any;
63
+ $terminate(): void;
64
+ __addEmits(event: string): void;
65
+ __removeEmits(event: string): void;
66
+ readonly __ctor: typeof import("../Base/index.js").default;
67
+ $on(event: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): () => void;
68
+ $off(event: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
69
+ $emit(event: string, ...args: any[]): void;
70
+ addEventListener(type: string, callback: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
71
+ dispatchEvent(event: Event): boolean;
72
+ removeEventListener(type: string, callback: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
73
+ };
74
+ readonly $isBase: boolean;
75
+ config: import("../Base/index.js").BaseConfig;
76
+ $factory(nameOrSelector: string): import("../Base/index.js").default<{
77
+ $el: HTMLElement;
78
+ $options: import("../Base/index.js").BaseOptions;
79
+ $refs: import("../Base/index.js").BaseRefs;
80
+ $children: {
81
+ [name: string]: import("../Base/index.js").default<any> | Promise<import("../Base/index.js").default<any>>;
82
+ };
83
+ }>[];
84
+ };
@@ -5,17 +5,19 @@ var __publicField = (obj, key, value) => {
5
5
  return value;
6
6
  };
7
7
  function withFreezedOptions(BaseClass) {
8
- return class extends BaseClass {
8
+ return class WithFreezedOptions extends BaseClass {
9
9
  constructor() {
10
10
  super(...arguments);
11
11
  __publicField(this, "__freezedOptions");
12
12
  }
13
13
  get $options() {
14
- Object.defineProperty(this, "__freezedOptions", {
15
- value: Object.freeze({ ...super.$options }),
16
- enumerable: false,
17
- configurable: true
18
- });
14
+ if (!this.__freezedOptions) {
15
+ Object.defineProperty(this, "__freezedOptions", {
16
+ value: Object.freeze({ ...super.$options }),
17
+ enumerable: false,
18
+ configurable: true
19
+ });
20
+ }
19
21
  return this.__freezedOptions;
20
22
  }
21
23
  };
@@ -21,7 +21,7 @@ var __publicField = (obj, key, value) => {
21
21
  return value;
22
22
  };
23
23
 
24
- // packages/js-toolkit/decorators/withIntersectionObserver.js
24
+ // packages/js-toolkit/decorators/withIntersectionObserver.ts
25
25
  var withIntersectionObserver_exports = {};
26
26
  __export(withIntersectionObserver_exports, {
27
27
  default: () => withIntersectionObserver
@@ -35,6 +35,7 @@ function withIntersectionObserver(BaseClass, defaultOptions = { threshold: creat
35
35
  return _b = class extends BaseClass {
36
36
  constructor(element) {
37
37
  super(element);
38
+ __publicField(this, "$observer");
38
39
  this.$observer = new IntersectionObserver(
39
40
  (entries) => {
40
41
  this.__callMethod("intersected", entries);
@@ -1,23 +1,97 @@
1
+ import type { BaseConstructor, BaseTypeParameter } from '../Base/index.js';
2
+ interface WithIntersectionObserverInterface {
3
+ $options: {
4
+ intersectionObserver: IntersectionObserverInit;
5
+ };
6
+ $observer: IntersectionObserver;
7
+ intersected(entries: IntersectionObserverEntry[]): void;
8
+ }
1
9
  /**
2
10
  * IntersectionObserver decoration.
3
- *
4
- * @template {BaseConstructor} T
5
- * @param {T} BaseClass The Base class to extend.
6
- * @param {Object} [defaultOptions] The options for the IntersectionObserver instance.
7
- * @returns {T & { new: (element:HTMLElement) => { $observer: IntersectionObserver }}}
8
11
  */
9
- export default function withIntersectionObserver<T extends typeof import("../Base").default>(BaseClass: T, defaultOptions?: any): T & {
10
- new: (element: HTMLElement) => {
12
+ export default function withIntersectionObserver<T extends BaseTypeParameter = BaseTypeParameter>(BaseClass: BaseConstructor, defaultOptions?: IntersectionObserverInit): {
13
+ new <U extends BaseTypeParameter = BaseTypeParameter>(element: HTMLElement): {
14
+ /**
15
+ * Intersection observer instance.
16
+ */
11
17
  $observer: IntersectionObserver;
18
+ $parent: import("../Base/index.js").default<{
19
+ $el: HTMLElement;
20
+ $options: import("../Base/index.js").BaseOptions;
21
+ $refs: import("../Base/index.js").BaseRefs;
22
+ $children: {
23
+ [name: string]: import("../Base/index.js").default<any> | Promise<import("../Base/index.js").default<any>>;
24
+ };
25
+ }>;
26
+ $id: string;
27
+ $el: (WithIntersectionObserverInterface & T & U)["$el"] & HTMLElement & {
28
+ __base__?: WeakMap<typeof import("../Base/index.js").default, import("../Base/index.js").default<{
29
+ $el: HTMLElement;
30
+ $options: import("../Base/index.js").BaseOptions;
31
+ $refs: import("../Base/index.js").BaseRefs;
32
+ $children: {
33
+ [name: string]: import("../Base/index.js").default<any> | Promise<import("../Base/index.js").default<any>>;
34
+ };
35
+ }> | "terminated">;
36
+ };
37
+ $isMounted: boolean;
38
+ __eventHandlers: Map<string, Set<EventListenerOrEventListenerObject>>;
39
+ readonly $root: import("../Base/index.js").default<{
40
+ $el: HTMLElement;
41
+ $options: import("../Base/index.js").BaseOptions;
42
+ $refs: import("../Base/index.js").BaseRefs;
43
+ $children: {
44
+ [name: string]: import("../Base/index.js").default<any> | Promise<import("../Base/index.js").default<any>>;
45
+ };
46
+ }>;
47
+ readonly __config: import("../Base/index.js").BaseConfig;
48
+ __services: import("../Base/managers/ServicesManager.js").default;
49
+ readonly $services: import("../Base/managers/ServicesManager.js").default;
50
+ __refs: import("../Base/managers/RefsManager.js").default & (WithIntersectionObserverInterface & T & U)["$refs"] & import("../Base/index.js").BaseRefs;
51
+ readonly $refs: import("../Base/managers/RefsManager.js").default & (WithIntersectionObserverInterface & T & U)["$refs"] & import("../Base/index.js").BaseRefs;
52
+ __options: import("../Base/managers/OptionsManager.js").default & (WithIntersectionObserverInterface & T & U)["$options"] & import("../Base/index.js").BaseOptions;
53
+ readonly $options: import("../Base/managers/OptionsManager.js").default & (WithIntersectionObserverInterface & T & U)["$options"] & import("../Base/index.js").BaseOptions;
54
+ __children: import("../Base/managers/ChildrenManager.js").default & ((WithIntersectionObserverInterface & T & U)["$children"] extends infer T_1 ? { [key in keyof T_1]: (WithIntersectionObserverInterface & T & U)["$children"][key][]; } : never) & import("../Base/index.js").BaseChildren;
55
+ readonly $children: import("../Base/managers/ChildrenManager.js").default & ((WithIntersectionObserverInterface & T & U)["$children"] extends infer T_2 ? { [key_1 in keyof T_2]: (WithIntersectionObserverInterface & T & U)["$children"][key_1][]; } : never) & import("../Base/index.js").BaseChildren;
56
+ __events: import("../Base/managers/EventsManager.js").default;
57
+ readonly $log: (...args: any) => void;
58
+ readonly __debug: (...args: any) => void;
59
+ readonly __managers: import("../Base/index.js").Managers;
60
+ __callMethod(method: string, ...args: any[]): any;
61
+ __hasEvent(event: string): boolean;
62
+ $mount(): any;
63
+ $update(): any;
64
+ $destroy(): any;
65
+ $terminate(): void;
66
+ __addEmits(event: string): void;
67
+ __removeEmits(event: string): void;
68
+ readonly __ctor: typeof import("../Base/index.js").default;
69
+ $on(event: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): () => void;
70
+ $off(event: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
71
+ $emit(event: string, ...args: any[]): void;
72
+ addEventListener(type: string, callback: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
73
+ dispatchEvent(event: Event): boolean;
74
+ removeEventListener(type: string, callback: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
12
75
  };
76
+ config: {
77
+ name: string;
78
+ options: {
79
+ intersectionObserver: ObjectConstructor;
80
+ };
81
+ emits: string[];
82
+ debug?: boolean;
83
+ log?: boolean;
84
+ refs?: string[];
85
+ components?: import("../Base/index.js").BaseConfigComponents;
86
+ };
87
+ readonly $isBase: boolean;
88
+ $factory(nameOrSelector: string): import("../Base/index.js").default<{
89
+ $el: HTMLElement;
90
+ $options: import("../Base/index.js").BaseOptions;
91
+ $refs: import("../Base/index.js").BaseRefs;
92
+ $children: {
93
+ [name: string]: import("../Base/index.js").default<any> | Promise<import("../Base/index.js").default<any>>;
94
+ };
95
+ }>[];
13
96
  };
14
- export type Base = import("../Base").default<any>;
15
- export type BaseConstructor = import('../Base').BaseConstructor;
16
- export type WithIntersectionObserverOptions = {
17
- intersectionObserver: any;
18
- };
19
- export type WithIntersectionObserverInterface = {
20
- $options: WithIntersectionObserverOptions;
21
- $observer: IntersectionObserver;
22
- intersected: (entries: IntersectionObserverEntry[]) => void;
23
- };
97
+ export {};
@@ -12,6 +12,7 @@ function withIntersectionObserver(BaseClass, defaultOptions = { threshold: creat
12
12
  return _b = class extends BaseClass {
13
13
  constructor(element) {
14
14
  super(element);
15
+ __publicField(this, "$observer");
15
16
  this.$observer = new IntersectionObserver(
16
17
  (entries) => {
17
18
  this.__callMethod("intersected", entries);