@studiometa/js-toolkit 2.0.0-rc.2 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Base/index.cjs +54 -18
- package/Base/index.d.ts +47 -26
- package/Base/index.js +54 -18
- package/Base/managers/AbstractManager.cjs +56 -0
- package/Base/managers/AbstractManager.d.ts +44 -0
- package/Base/managers/AbstractManager.js +35 -0
- package/Base/managers/ChildrenManager.cjs +79 -100
- package/Base/managers/ChildrenManager.d.ts +8 -83
- package/Base/managers/ChildrenManager.js +76 -100
- package/Base/managers/EventsManager.cjs +75 -99
- package/Base/managers/EventsManager.d.ts +37 -113
- package/Base/managers/EventsManager.js +75 -99
- package/Base/managers/OptionsManager.cjs +65 -79
- package/Base/managers/OptionsManager.d.ts +41 -80
- package/Base/managers/OptionsManager.js +66 -80
- package/Base/managers/RefsManager.cjs +44 -68
- package/Base/managers/RefsManager.d.ts +12 -66
- package/Base/managers/RefsManager.js +41 -69
- package/Base/managers/ResponsiveOptionsManager.cjs +62 -0
- package/Base/managers/ResponsiveOptionsManager.d.ts +26 -0
- package/Base/managers/ResponsiveOptionsManager.js +37 -0
- package/Base/managers/ServicesManager.cjs +7 -10
- package/Base/managers/ServicesManager.d.ts +16 -19
- package/Base/managers/ServicesManager.js +7 -10
- package/Base/utils.d.ts +4 -4
- package/decorators/index.cjs +2 -0
- package/decorators/index.d.ts +1 -0
- package/decorators/index.js +6 -4
- package/decorators/withBreakpointManager.cjs +0 -1
- package/decorators/withBreakpointManager.d.ts +2 -2
- package/decorators/withBreakpointManager.js +0 -1
- package/decorators/withBreakpointObserver.cjs +1 -2
- package/decorators/withBreakpointObserver.d.ts +1 -1
- package/decorators/withBreakpointObserver.js +1 -2
- package/decorators/withDrag.d.ts +1 -1
- package/decorators/withExtraConfig.d.ts +1 -1
- package/decorators/withFreezedOptions.cjs +12 -3
- package/decorators/withFreezedOptions.d.ts +1 -1
- package/decorators/withFreezedOptions.js +13 -3
- package/decorators/withIntersectionObserver.cjs +0 -1
- package/decorators/withIntersectionObserver.d.ts +1 -1
- package/decorators/withIntersectionObserver.js +0 -1
- package/decorators/withMountWhenInView.cjs +0 -1
- package/decorators/withMountWhenInView.d.ts +1 -1
- package/decorators/withMountWhenInView.js +0 -1
- package/decorators/withResponsiveOptions.cjs +39 -0
- package/decorators/withResponsiveOptions.d.ts +8 -0
- package/decorators/withResponsiveOptions.js +14 -0
- package/decorators/withScrolledInView.cjs +58 -23
- package/decorators/withScrolledInView.d.ts +5 -3
- package/decorators/withScrolledInView.js +59 -24
- package/helpers/createApp.d.ts +3 -26
- package/helpers/getInstanceFromElement.cjs +32 -0
- package/helpers/getInstanceFromElement.d.ts +14 -0
- package/helpers/getInstanceFromElement.js +10 -0
- package/helpers/importOnInteraction.d.ts +3 -5
- package/helpers/importWhenIdle.d.ts +3 -5
- package/helpers/importWhenVisible.d.ts +4 -6
- package/helpers/index.cjs +2 -0
- package/helpers/index.d.ts +1 -0
- package/helpers/index.js +8 -6
- package/helpers/utils.d.ts +3 -4
- package/package.json +2 -1
- package/services/Service.d.ts +9 -9
- package/services/drag.cjs +0 -1
- package/services/drag.d.ts +3 -3
- package/services/drag.js +0 -1
- package/services/key.d.ts +1 -1
- package/services/load.d.ts +1 -1
- package/services/pointer.d.ts +1 -1
- package/services/raf.d.ts +1 -1
- package/services/resize.cjs +2 -2
- package/services/resize.d.ts +1 -1
- package/services/resize.js +2 -2
- package/services/scroll.cjs +3 -1
- package/services/scroll.d.ts +1 -1
- package/services/scroll.js +3 -1
- package/utils/collide/boundingRectToCircle.d.ts +5 -5
- package/utils/collide/collideCircleCircle.d.ts +4 -4
- package/utils/collide/collideCircleRect.d.ts +8 -8
- package/utils/collide/collidePointCircle.d.ts +6 -6
- package/utils/collide/collidePointRect.d.ts +7 -7
- package/utils/collide/collideRectRect.d.ts +5 -5
- package/utils/css/animate.cjs +190 -0
- package/utils/css/animate.d.ts +57 -0
- package/utils/css/animate.js +165 -0
- package/utils/css/classes.cjs +3 -3
- package/utils/css/classes.d.ts +10 -10
- package/utils/css/classes.js +3 -3
- package/utils/css/getOffsetSizes.cjs +47 -0
- package/utils/css/getOffsetSizes.d.ts +15 -0
- package/utils/css/getOffsetSizes.js +25 -0
- package/utils/css/index.cjs +6 -0
- package/utils/css/index.d.ts +3 -0
- package/utils/css/index.js +9 -4
- package/utils/css/matrix.d.ts +14 -15
- package/utils/css/styles.d.ts +2 -2
- package/utils/css/transform.cjs +91 -0
- package/utils/css/transform.d.ts +43 -0
- package/utils/css/transform.js +66 -0
- package/utils/css/transition.cjs +2 -0
- package/utils/css/transition.d.ts +2 -2
- package/utils/css/transition.js +2 -0
- package/utils/debounce.d.ts +4 -4
- package/utils/focusTrap.cjs +1 -1
- package/utils/focusTrap.d.ts +1 -0
- package/utils/focusTrap.js +1 -1
- package/utils/history.d.ts +13 -11
- package/utils/index.cjs +4 -0
- package/utils/index.d.ts +2 -0
- package/utils/index.js +4 -0
- package/utils/isDefined.cjs +28 -0
- package/utils/isDefined.d.ts +7 -0
- package/utils/isDefined.js +6 -0
- package/utils/isFunction.cjs +28 -0
- package/utils/isFunction.d.ts +7 -0
- package/utils/isFunction.js +6 -0
- package/utils/math/clamp.d.ts +1 -1
- package/utils/math/clamp01.d.ts +1 -1
- package/utils/math/damp.d.ts +6 -6
- package/utils/math/ease.d.ts +7 -7
- package/utils/math/index.cjs +2 -0
- package/utils/math/index.d.ts +1 -0
- package/utils/math/index.js +2 -0
- package/utils/math/inertiaFinalValue.d.ts +5 -5
- package/utils/math/lerp.d.ts +4 -4
- package/utils/math/map.d.ts +6 -6
- package/utils/math/round.d.ts +4 -4
- package/utils/memoize.d.ts +1 -1
- package/utils/nextFrame.d.ts +3 -4
- package/utils/nextMicrotask.d.ts +1 -1
- package/utils/nextTick.d.ts +1 -1
- package/utils/object/autoBind.d.ts +3 -3
- package/utils/object/getAllProperties.d.ts +3 -3
- package/utils/object/isObject.d.ts +1 -1
- package/utils/scrollTo.cjs +1 -1
- package/utils/scrollTo.d.ts +1 -1
- package/utils/scrollTo.js +1 -1
- package/utils/string/withLeadingCharacters.d.ts +3 -2
- package/utils/string/withLeadingSlash.d.ts +1 -1
- package/utils/string/withTrailingCharacters.d.ts +3 -2
- package/utils/string/withTrailingSlash.d.ts +1 -1
- package/utils/string/withoutLeadingCharacters.d.ts +3 -2
- package/utils/string/withoutLeadingCharactersRecursive.d.ts +3 -2
- package/utils/string/withoutLeadingSlash.d.ts +1 -1
- package/utils/string/withoutTrailingCharacters.d.ts +3 -2
- package/utils/string/withoutTrailingCharactersRecursive.d.ts +3 -2
- package/utils/string/withoutTrailingSlash.d.ts +1 -1
- package/utils/throttle.cjs +1 -1
- package/utils/throttle.d.ts +3 -3
- package/utils/throttle.js +1 -1
package/Base/index.cjs
CHANGED
|
@@ -40,6 +40,40 @@ var id = 0;
|
|
|
40
40
|
var isDev = typeof __DEV__ !== "undefined" && __DEV__;
|
|
41
41
|
function noop() {
|
|
42
42
|
}
|
|
43
|
+
function createAndTestManagers(instance) {
|
|
44
|
+
[
|
|
45
|
+
{
|
|
46
|
+
prop: "__options",
|
|
47
|
+
constructorName: "OptionsManager",
|
|
48
|
+
constructor: import_OptionsManager.default
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
prop: "__services",
|
|
52
|
+
constructorName: "ServicesManager",
|
|
53
|
+
constructor: import_ServicesManager.default
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
prop: "__events",
|
|
57
|
+
constructorName: "EventsManager",
|
|
58
|
+
constructor: import_EventsManager.default
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
prop: "__refs",
|
|
62
|
+
constructorName: "RefsManager",
|
|
63
|
+
constructor: import_RefsManager.default
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
prop: "__children",
|
|
67
|
+
constructorName: "ChildrenManager",
|
|
68
|
+
constructor: import_ChildrenManager.default
|
|
69
|
+
}
|
|
70
|
+
].forEach(({ prop, constructorName, constructor }) => {
|
|
71
|
+
instance[prop] = new instance.__managers[constructorName](instance);
|
|
72
|
+
if (!(instance[prop] instanceof constructor)) {
|
|
73
|
+
throw new Error(`The \`$managers.${constructorName}\` must extend the \`${constructorName}\` class.`);
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
}
|
|
43
77
|
var Base = class extends EventTarget {
|
|
44
78
|
constructor(element) {
|
|
45
79
|
super();
|
|
@@ -67,15 +101,10 @@ var Base = class extends EventTarget {
|
|
|
67
101
|
this.$el.__base__ = /* @__PURE__ */ new WeakMap();
|
|
68
102
|
}
|
|
69
103
|
this.$el.__base__.set(this.__ctor, this);
|
|
70
|
-
this
|
|
71
|
-
this.__services = new import_ServicesManager.default(this);
|
|
72
|
-
this.__events = new import_EventsManager.default(element, this);
|
|
73
|
-
this.__children = new import_ChildrenManager.default(this, element, __config.components || {}, this.__events);
|
|
74
|
-
this.__refs = new import_RefsManager.default(this, element, __config.refs || [], this.__events);
|
|
104
|
+
createAndTestManagers(this);
|
|
75
105
|
if (isDev) {
|
|
76
106
|
this.__debug("constructor", this);
|
|
77
107
|
}
|
|
78
|
-
return this;
|
|
79
108
|
}
|
|
80
109
|
get $root() {
|
|
81
110
|
if (!this.$parent) {
|
|
@@ -92,24 +121,22 @@ var Base = class extends EventTarget {
|
|
|
92
121
|
return root;
|
|
93
122
|
}
|
|
94
123
|
get __config() {
|
|
124
|
+
var _a, _b, _c;
|
|
95
125
|
let proto = Object.getPrototypeOf(this);
|
|
96
126
|
let { config } = proto.constructor;
|
|
97
127
|
while (proto.constructor.config && proto.constructor.$isBase) {
|
|
98
|
-
config = {
|
|
99
|
-
...proto.constructor.config,
|
|
100
|
-
...config
|
|
101
|
-
};
|
|
128
|
+
config = { ...proto.constructor.config, ...config };
|
|
102
129
|
if (proto.constructor.config.options) {
|
|
103
|
-
config.options = {
|
|
104
|
-
...proto.constructor.config.options,
|
|
105
|
-
...config.options
|
|
106
|
-
};
|
|
130
|
+
config.options = { ...proto.constructor.config.options, ...config.options };
|
|
107
131
|
}
|
|
108
132
|
if (proto.constructor.config.emits && config.emits) {
|
|
109
133
|
config.emits = [...proto.constructor.config.emits, ...config.emits];
|
|
110
134
|
}
|
|
111
135
|
proto = Object.getPrototypeOf(proto);
|
|
112
136
|
}
|
|
137
|
+
config.options = (_a = config.options) != null ? _a : {};
|
|
138
|
+
config.refs = (_b = config.refs) != null ? _b : [];
|
|
139
|
+
config.components = (_c = config.components) != null ? _c : {};
|
|
113
140
|
return config;
|
|
114
141
|
}
|
|
115
142
|
get $services() {
|
|
@@ -130,6 +157,15 @@ var Base = class extends EventTarget {
|
|
|
130
157
|
get __debug() {
|
|
131
158
|
return isDev && this.__options.debug ? window.console.log.bind(window, `[debug] [${this.$id}]`) : noop;
|
|
132
159
|
}
|
|
160
|
+
get __managers() {
|
|
161
|
+
return {
|
|
162
|
+
ChildrenManager: import_ChildrenManager.default,
|
|
163
|
+
EventsManager: import_EventsManager.default,
|
|
164
|
+
OptionsManager: import_OptionsManager.default,
|
|
165
|
+
RefsManager: import_RefsManager.default,
|
|
166
|
+
ServicesManager: import_ServicesManager.default
|
|
167
|
+
};
|
|
168
|
+
}
|
|
133
169
|
__callMethod(method, ...args) {
|
|
134
170
|
if (isDev) {
|
|
135
171
|
this.__debug("callMethod", method, ...args);
|
|
@@ -151,6 +187,7 @@ var Base = class extends EventTarget {
|
|
|
151
187
|
if (this.$isMounted) {
|
|
152
188
|
return this;
|
|
153
189
|
}
|
|
190
|
+
this.$emit("before-mounted");
|
|
154
191
|
this.$isMounted = true;
|
|
155
192
|
if (isDev) {
|
|
156
193
|
this.__debug("$mount");
|
|
@@ -214,7 +251,7 @@ var Base = class extends EventTarget {
|
|
|
214
251
|
}
|
|
215
252
|
__removeEmits(event) {
|
|
216
253
|
const ctor = this.__ctor;
|
|
217
|
-
const index = ctor.config.emits.
|
|
254
|
+
const index = ctor.config.emits.indexOf(event);
|
|
218
255
|
ctor.config.emits.splice(index, 1);
|
|
219
256
|
}
|
|
220
257
|
get __ctor() {
|
|
@@ -255,9 +292,7 @@ var Base = class extends EventTarget {
|
|
|
255
292
|
if (isDev) {
|
|
256
293
|
this.__testEventIsDefined(event);
|
|
257
294
|
}
|
|
258
|
-
this.dispatchEvent(new CustomEvent(event, {
|
|
259
|
-
detail: args
|
|
260
|
-
}));
|
|
295
|
+
this.dispatchEvent(new CustomEvent(event, { detail: args }));
|
|
261
296
|
}
|
|
262
297
|
static $factory(nameOrSelector) {
|
|
263
298
|
if (!nameOrSelector) {
|
|
@@ -270,6 +305,7 @@ __publicField(Base, "$isBase", true);
|
|
|
270
305
|
__publicField(Base, "config", {
|
|
271
306
|
name: "Base",
|
|
272
307
|
emits: [
|
|
308
|
+
"before-mounted",
|
|
273
309
|
"mounted",
|
|
274
310
|
"updated",
|
|
275
311
|
"destroyed",
|
package/Base/index.d.ts
CHANGED
|
@@ -10,21 +10,29 @@
|
|
|
10
10
|
*/
|
|
11
11
|
/**
|
|
12
12
|
* @typedef {Object} BaseConfig
|
|
13
|
-
* @property {
|
|
14
|
-
* @property {
|
|
15
|
-
* @property {
|
|
16
|
-
* @property {
|
|
17
|
-
* @property {
|
|
13
|
+
* @property {string} name
|
|
14
|
+
* @property {boolean} [debug]
|
|
15
|
+
* @property {boolean} [log]
|
|
16
|
+
* @property {string[]} [refs]
|
|
17
|
+
* @property {string[]} [emits]
|
|
18
18
|
* @property {BaseConfigComponents} [components]
|
|
19
19
|
* @property {BaseConfigOptions} [options]
|
|
20
20
|
*/
|
|
21
|
+
/**
|
|
22
|
+
* @typedef {Object} Managers
|
|
23
|
+
* @property {typeof ChildrenManager} ChildrenManager
|
|
24
|
+
* @property {typeof EventsManager} EventsManager
|
|
25
|
+
* @property {typeof OptionsManager} OptionsManager
|
|
26
|
+
* @property {typeof RefsManager} RefsManager
|
|
27
|
+
* @property {typeof ServicesManager} ServicesManager
|
|
28
|
+
*/
|
|
21
29
|
/**
|
|
22
30
|
* Base class.
|
|
23
31
|
*/
|
|
24
32
|
export default class Base extends EventTarget {
|
|
25
33
|
/**
|
|
26
34
|
* This is a Base instance.
|
|
27
|
-
* @type {
|
|
35
|
+
* @type {boolean}
|
|
28
36
|
* @readonly
|
|
29
37
|
*/
|
|
30
38
|
static readonly $isBase: boolean;
|
|
@@ -35,8 +43,8 @@ export default class Base extends EventTarget {
|
|
|
35
43
|
/**
|
|
36
44
|
* Factory method to generate multiple instance of the class.
|
|
37
45
|
*
|
|
38
|
-
* @param {
|
|
39
|
-
* @
|
|
46
|
+
* @param {string} nameOrSelector The selector on which to mount each instance.
|
|
47
|
+
* @returns {Array<Base>} A list of the created instance.
|
|
40
48
|
*/
|
|
41
49
|
static $factory(nameOrSelector: string): Array<Base>;
|
|
42
50
|
/**
|
|
@@ -64,7 +72,7 @@ export default class Base extends EventTarget {
|
|
|
64
72
|
};
|
|
65
73
|
/**
|
|
66
74
|
* The state of the component.
|
|
67
|
-
* @type {
|
|
75
|
+
* @type {boolean}
|
|
68
76
|
*/
|
|
69
77
|
$isMounted: boolean;
|
|
70
78
|
/**
|
|
@@ -76,13 +84,13 @@ export default class Base extends EventTarget {
|
|
|
76
84
|
private __eventHandlers;
|
|
77
85
|
/**
|
|
78
86
|
* Get the root instance of the app.
|
|
79
|
-
* @
|
|
87
|
+
* @returns {Base}
|
|
80
88
|
*/
|
|
81
89
|
get $root(): Base;
|
|
82
90
|
/**
|
|
83
91
|
* Merge configuration with the parents' configurations.
|
|
84
92
|
*
|
|
85
|
-
* @
|
|
93
|
+
* @returns {BaseConfig}
|
|
86
94
|
* @private
|
|
87
95
|
*/
|
|
88
96
|
private get __config();
|
|
@@ -101,7 +109,7 @@ export default class Base extends EventTarget {
|
|
|
101
109
|
*/
|
|
102
110
|
private __refs;
|
|
103
111
|
/**
|
|
104
|
-
* @
|
|
112
|
+
* @returns {RefsManager}
|
|
105
113
|
*/
|
|
106
114
|
get $refs(): RefsManager;
|
|
107
115
|
/**
|
|
@@ -110,7 +118,7 @@ export default class Base extends EventTarget {
|
|
|
110
118
|
*/
|
|
111
119
|
private __options;
|
|
112
120
|
/**
|
|
113
|
-
* @
|
|
121
|
+
* @returns {BaseOptions}
|
|
114
122
|
*/
|
|
115
123
|
get $options(): BaseOptions;
|
|
116
124
|
/**
|
|
@@ -119,7 +127,7 @@ export default class Base extends EventTarget {
|
|
|
119
127
|
*/
|
|
120
128
|
private __children;
|
|
121
129
|
/**
|
|
122
|
-
* @
|
|
130
|
+
* @returns {ChildrenManager}
|
|
123
131
|
*/
|
|
124
132
|
get $children(): ChildrenManager;
|
|
125
133
|
/**
|
|
@@ -130,23 +138,29 @@ export default class Base extends EventTarget {
|
|
|
130
138
|
/**
|
|
131
139
|
* Small helper to log stuff.
|
|
132
140
|
*
|
|
133
|
-
* @
|
|
141
|
+
* @returns {(...args: any) => void}
|
|
134
142
|
*/
|
|
135
143
|
get $log(): (...args: any) => void;
|
|
136
144
|
/**
|
|
137
145
|
* Small helper to debug information.
|
|
138
146
|
*
|
|
139
147
|
* @private
|
|
140
|
-
* @
|
|
148
|
+
* @returns {(...args:any) => void}
|
|
141
149
|
*/
|
|
142
150
|
private get __debug();
|
|
151
|
+
/**
|
|
152
|
+
* Get manager constructors.
|
|
153
|
+
*
|
|
154
|
+
* @returns {Managers}
|
|
155
|
+
*/
|
|
156
|
+
get __managers(): Managers;
|
|
143
157
|
/**
|
|
144
158
|
* Call an instance method and emit corresponding events.
|
|
145
159
|
*
|
|
146
160
|
* @private
|
|
147
161
|
* @param {string} method
|
|
148
162
|
* @param {any[]} args
|
|
149
|
-
* @
|
|
163
|
+
* @returns {void}
|
|
150
164
|
*/
|
|
151
165
|
private __callMethod;
|
|
152
166
|
/**
|
|
@@ -154,27 +168,27 @@ export default class Base extends EventTarget {
|
|
|
154
168
|
*
|
|
155
169
|
* @private
|
|
156
170
|
* @param {string} event The event's name.
|
|
157
|
-
* @
|
|
171
|
+
* @returns {boolean} Wether the given event has been bound or not.
|
|
158
172
|
*/
|
|
159
173
|
private __hasEvent;
|
|
160
174
|
/**
|
|
161
175
|
* Trigger the `mounted` callback.
|
|
162
|
-
* @
|
|
176
|
+
* @returns {this}
|
|
163
177
|
*/
|
|
164
178
|
$mount(): this;
|
|
165
179
|
/**
|
|
166
180
|
* Update the instance children.
|
|
167
|
-
* @
|
|
181
|
+
* @returns {this}
|
|
168
182
|
*/
|
|
169
183
|
$update(): this;
|
|
170
184
|
/**
|
|
171
185
|
* Trigger the `destroyed` callback.
|
|
172
|
-
* @
|
|
186
|
+
* @returns {this}
|
|
173
187
|
*/
|
|
174
188
|
$destroy(): this;
|
|
175
189
|
/**
|
|
176
190
|
* Terminate a child instance when it is not needed anymore.
|
|
177
|
-
* @
|
|
191
|
+
* @returns {void}
|
|
178
192
|
*/
|
|
179
193
|
$terminate(): void;
|
|
180
194
|
/**
|
|
@@ -217,7 +231,7 @@ export default class Base extends EventTarget {
|
|
|
217
231
|
* Function to be called.
|
|
218
232
|
* @param {boolean|AddEventListenerOptions} [options]
|
|
219
233
|
* Options for the `removeEventListener` method.
|
|
220
|
-
* @
|
|
234
|
+
* @returns {() => void}
|
|
221
235
|
* A function to unbind the listener.
|
|
222
236
|
*/
|
|
223
237
|
$on(event: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): () => void;
|
|
@@ -230,8 +244,7 @@ export default class Base extends EventTarget {
|
|
|
230
244
|
* Function to be removed.
|
|
231
245
|
* @param {boolean|EventListenerOptions} [options]
|
|
232
246
|
* Options for the `removeEventListener` method.
|
|
233
|
-
*
|
|
234
|
-
* @return {void}
|
|
247
|
+
* @returns {void}
|
|
235
248
|
*/
|
|
236
249
|
$off(event: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
|
|
237
250
|
/**
|
|
@@ -240,7 +253,7 @@ export default class Base extends EventTarget {
|
|
|
240
253
|
* @param {string} event
|
|
241
254
|
* Name of the event.
|
|
242
255
|
* @param {any[]} args The arguments to apply to the functions bound to this event.
|
|
243
|
-
* @
|
|
256
|
+
* @returns {void}
|
|
244
257
|
*/
|
|
245
258
|
$emit(event: string, ...args: any[]): void;
|
|
246
259
|
}
|
|
@@ -271,7 +284,15 @@ export type BaseConfig = {
|
|
|
271
284
|
components?: BaseConfigComponents;
|
|
272
285
|
options?: BaseConfigOptions;
|
|
273
286
|
};
|
|
287
|
+
export type Managers = {
|
|
288
|
+
ChildrenManager: typeof ChildrenManager;
|
|
289
|
+
EventsManager: typeof EventsManager;
|
|
290
|
+
OptionsManager: typeof OptionsManager;
|
|
291
|
+
RefsManager: typeof RefsManager;
|
|
292
|
+
ServicesManager: typeof ServicesManager;
|
|
293
|
+
};
|
|
274
294
|
import ServicesManager from "./managers/ServicesManager.js";
|
|
275
295
|
import RefsManager from "./managers/RefsManager.js";
|
|
276
296
|
import ChildrenManager from "./managers/ChildrenManager.js";
|
|
277
297
|
import OptionsManager from "./managers/OptionsManager.js";
|
|
298
|
+
import EventsManager from "./managers/EventsManager.js";
|
package/Base/index.js
CHANGED
|
@@ -14,6 +14,40 @@ let id = 0;
|
|
|
14
14
|
const isDev = typeof __DEV__ !== "undefined" && __DEV__;
|
|
15
15
|
function noop() {
|
|
16
16
|
}
|
|
17
|
+
function createAndTestManagers(instance) {
|
|
18
|
+
[
|
|
19
|
+
{
|
|
20
|
+
prop: "__options",
|
|
21
|
+
constructorName: "OptionsManager",
|
|
22
|
+
constructor: OptionsManager
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
prop: "__services",
|
|
26
|
+
constructorName: "ServicesManager",
|
|
27
|
+
constructor: ServicesManager
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
prop: "__events",
|
|
31
|
+
constructorName: "EventsManager",
|
|
32
|
+
constructor: EventsManager
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
prop: "__refs",
|
|
36
|
+
constructorName: "RefsManager",
|
|
37
|
+
constructor: RefsManager
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
prop: "__children",
|
|
41
|
+
constructorName: "ChildrenManager",
|
|
42
|
+
constructor: ChildrenManager
|
|
43
|
+
}
|
|
44
|
+
].forEach(({ prop, constructorName, constructor }) => {
|
|
45
|
+
instance[prop] = new instance.__managers[constructorName](instance);
|
|
46
|
+
if (!(instance[prop] instanceof constructor)) {
|
|
47
|
+
throw new Error(`The \`$managers.${constructorName}\` must extend the \`${constructorName}\` class.`);
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
}
|
|
17
51
|
class Base extends EventTarget {
|
|
18
52
|
constructor(element) {
|
|
19
53
|
super();
|
|
@@ -41,15 +75,10 @@ class Base extends EventTarget {
|
|
|
41
75
|
this.$el.__base__ = /* @__PURE__ */ new WeakMap();
|
|
42
76
|
}
|
|
43
77
|
this.$el.__base__.set(this.__ctor, this);
|
|
44
|
-
this
|
|
45
|
-
this.__services = new ServicesManager(this);
|
|
46
|
-
this.__events = new EventsManager(element, this);
|
|
47
|
-
this.__children = new ChildrenManager(this, element, __config.components || {}, this.__events);
|
|
48
|
-
this.__refs = new RefsManager(this, element, __config.refs || [], this.__events);
|
|
78
|
+
createAndTestManagers(this);
|
|
49
79
|
if (isDev) {
|
|
50
80
|
this.__debug("constructor", this);
|
|
51
81
|
}
|
|
52
|
-
return this;
|
|
53
82
|
}
|
|
54
83
|
get $root() {
|
|
55
84
|
if (!this.$parent) {
|
|
@@ -66,24 +95,22 @@ class Base extends EventTarget {
|
|
|
66
95
|
return root;
|
|
67
96
|
}
|
|
68
97
|
get __config() {
|
|
98
|
+
var _a, _b, _c;
|
|
69
99
|
let proto = Object.getPrototypeOf(this);
|
|
70
100
|
let { config } = proto.constructor;
|
|
71
101
|
while (proto.constructor.config && proto.constructor.$isBase) {
|
|
72
|
-
config = {
|
|
73
|
-
...proto.constructor.config,
|
|
74
|
-
...config
|
|
75
|
-
};
|
|
102
|
+
config = { ...proto.constructor.config, ...config };
|
|
76
103
|
if (proto.constructor.config.options) {
|
|
77
|
-
config.options = {
|
|
78
|
-
...proto.constructor.config.options,
|
|
79
|
-
...config.options
|
|
80
|
-
};
|
|
104
|
+
config.options = { ...proto.constructor.config.options, ...config.options };
|
|
81
105
|
}
|
|
82
106
|
if (proto.constructor.config.emits && config.emits) {
|
|
83
107
|
config.emits = [...proto.constructor.config.emits, ...config.emits];
|
|
84
108
|
}
|
|
85
109
|
proto = Object.getPrototypeOf(proto);
|
|
86
110
|
}
|
|
111
|
+
config.options = (_a = config.options) != null ? _a : {};
|
|
112
|
+
config.refs = (_b = config.refs) != null ? _b : [];
|
|
113
|
+
config.components = (_c = config.components) != null ? _c : {};
|
|
87
114
|
return config;
|
|
88
115
|
}
|
|
89
116
|
get $services() {
|
|
@@ -104,6 +131,15 @@ class Base extends EventTarget {
|
|
|
104
131
|
get __debug() {
|
|
105
132
|
return isDev && this.__options.debug ? window.console.log.bind(window, `[debug] [${this.$id}]`) : noop;
|
|
106
133
|
}
|
|
134
|
+
get __managers() {
|
|
135
|
+
return {
|
|
136
|
+
ChildrenManager,
|
|
137
|
+
EventsManager,
|
|
138
|
+
OptionsManager,
|
|
139
|
+
RefsManager,
|
|
140
|
+
ServicesManager
|
|
141
|
+
};
|
|
142
|
+
}
|
|
107
143
|
__callMethod(method, ...args) {
|
|
108
144
|
if (isDev) {
|
|
109
145
|
this.__debug("callMethod", method, ...args);
|
|
@@ -125,6 +161,7 @@ class Base extends EventTarget {
|
|
|
125
161
|
if (this.$isMounted) {
|
|
126
162
|
return this;
|
|
127
163
|
}
|
|
164
|
+
this.$emit("before-mounted");
|
|
128
165
|
this.$isMounted = true;
|
|
129
166
|
if (isDev) {
|
|
130
167
|
this.__debug("$mount");
|
|
@@ -188,7 +225,7 @@ class Base extends EventTarget {
|
|
|
188
225
|
}
|
|
189
226
|
__removeEmits(event) {
|
|
190
227
|
const ctor = this.__ctor;
|
|
191
|
-
const index = ctor.config.emits.
|
|
228
|
+
const index = ctor.config.emits.indexOf(event);
|
|
192
229
|
ctor.config.emits.splice(index, 1);
|
|
193
230
|
}
|
|
194
231
|
get __ctor() {
|
|
@@ -229,9 +266,7 @@ class Base extends EventTarget {
|
|
|
229
266
|
if (isDev) {
|
|
230
267
|
this.__testEventIsDefined(event);
|
|
231
268
|
}
|
|
232
|
-
this.dispatchEvent(new CustomEvent(event, {
|
|
233
|
-
detail: args
|
|
234
|
-
}));
|
|
269
|
+
this.dispatchEvent(new CustomEvent(event, { detail: args }));
|
|
235
270
|
}
|
|
236
271
|
static $factory(nameOrSelector) {
|
|
237
272
|
if (!nameOrSelector) {
|
|
@@ -244,6 +279,7 @@ __publicField(Base, "$isBase", true);
|
|
|
244
279
|
__publicField(Base, "config", {
|
|
245
280
|
name: "Base",
|
|
246
281
|
emits: [
|
|
282
|
+
"before-mounted",
|
|
247
283
|
"mounted",
|
|
248
284
|
"updated",
|
|
249
285
|
"destroyed",
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
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
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
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
|
+
|
|
24
|
+
// packages/js-toolkit/Base/managers/AbstractManager.js
|
|
25
|
+
var AbstractManager_exports = {};
|
|
26
|
+
__export(AbstractManager_exports, {
|
|
27
|
+
default: () => AbstractManager
|
|
28
|
+
});
|
|
29
|
+
module.exports = __toCommonJS(AbstractManager_exports);
|
|
30
|
+
var AbstractManager = class {
|
|
31
|
+
constructor(base) {
|
|
32
|
+
__publicField(this, "__base");
|
|
33
|
+
this.__base = base;
|
|
34
|
+
this.__hideProperties(["__base"]);
|
|
35
|
+
}
|
|
36
|
+
get __element() {
|
|
37
|
+
return this.__base.$el;
|
|
38
|
+
}
|
|
39
|
+
get __config() {
|
|
40
|
+
return this.__base.__config;
|
|
41
|
+
}
|
|
42
|
+
get __eventsManager() {
|
|
43
|
+
return this.__base.__events;
|
|
44
|
+
}
|
|
45
|
+
__hideProperties(properties) {
|
|
46
|
+
Object.defineProperties(this, Object.fromEntries(properties.map((property) => [
|
|
47
|
+
property,
|
|
48
|
+
{
|
|
49
|
+
enumerable: false,
|
|
50
|
+
writable: false,
|
|
51
|
+
value: this[property]
|
|
52
|
+
}
|
|
53
|
+
])));
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
if (module.exports.default) module.exports = module.exports.default;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @typedef {import('../index.js').default} Base
|
|
3
|
+
* @typedef {import('../index.js').BaseConfig} BaseConfig
|
|
4
|
+
* @typedef {import('./EventsManager.js').default} EventsManager
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* AbstractManager class.
|
|
8
|
+
*/
|
|
9
|
+
export default class AbstractManager {
|
|
10
|
+
/**
|
|
11
|
+
* Class constructor.
|
|
12
|
+
*
|
|
13
|
+
* @param {Base} base
|
|
14
|
+
*/
|
|
15
|
+
constructor(base: Base);
|
|
16
|
+
/**
|
|
17
|
+
* @type {Base}
|
|
18
|
+
*/
|
|
19
|
+
__base: Base;
|
|
20
|
+
/**
|
|
21
|
+
* Get the base instance root element.
|
|
22
|
+
* @returns {HTMLElement}
|
|
23
|
+
*/
|
|
24
|
+
get __element(): HTMLElement;
|
|
25
|
+
/**
|
|
26
|
+
* Get the base instance config.
|
|
27
|
+
* @returns {BaseConfig}
|
|
28
|
+
*/
|
|
29
|
+
get __config(): import("../index.js").BaseConfig;
|
|
30
|
+
/**
|
|
31
|
+
* Get the events manager.
|
|
32
|
+
* @returns {EventsManager}
|
|
33
|
+
*/
|
|
34
|
+
get __eventsManager(): import("./EventsManager.js").default;
|
|
35
|
+
/**
|
|
36
|
+
* Prevent a list of properties from being enumerable and writable.
|
|
37
|
+
* @param {string[]} properties
|
|
38
|
+
* @returns {void}
|
|
39
|
+
*/
|
|
40
|
+
__hideProperties(properties: string[]): void;
|
|
41
|
+
}
|
|
42
|
+
export type Base = import('../index.js').default;
|
|
43
|
+
export type BaseConfig = import('../index.js').BaseConfig;
|
|
44
|
+
export type EventsManager = import('./EventsManager.js').default;
|
|
@@ -0,0 +1,35 @@
|
|
|
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
|
+
class AbstractManager {
|
|
8
|
+
constructor(base) {
|
|
9
|
+
__publicField(this, "__base");
|
|
10
|
+
this.__base = base;
|
|
11
|
+
this.__hideProperties(["__base"]);
|
|
12
|
+
}
|
|
13
|
+
get __element() {
|
|
14
|
+
return this.__base.$el;
|
|
15
|
+
}
|
|
16
|
+
get __config() {
|
|
17
|
+
return this.__base.__config;
|
|
18
|
+
}
|
|
19
|
+
get __eventsManager() {
|
|
20
|
+
return this.__base.__events;
|
|
21
|
+
}
|
|
22
|
+
__hideProperties(properties) {
|
|
23
|
+
Object.defineProperties(this, Object.fromEntries(properties.map((property) => [
|
|
24
|
+
property,
|
|
25
|
+
{
|
|
26
|
+
enumerable: false,
|
|
27
|
+
writable: false,
|
|
28
|
+
value: this[property]
|
|
29
|
+
}
|
|
30
|
+
])));
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
export {
|
|
34
|
+
AbstractManager as default
|
|
35
|
+
};
|