@studiometa/js-toolkit 2.2.3 → 2.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Base/index.cjs +29 -36
- package/Base/index.d.ts +0 -8
- package/Base/index.js +18 -25
- package/Base/managers/EventsManager.cjs +35 -36
- package/Base/managers/EventsManager.js +35 -36
- package/Base/managers/OptionsManager.cjs +19 -13
- package/Base/managers/OptionsManager.js +19 -13
- package/Base/managers/RefsManager.cjs +8 -5
- package/Base/managers/RefsManager.js +8 -5
- package/Base/managers/ResponsiveOptionsManager.cjs +4 -1
- package/Base/managers/ResponsiveOptionsManager.js +4 -1
- package/Base/managers/ServicesManager.cjs +5 -2
- package/Base/managers/ServicesManager.js +6 -3
- package/Base/utils.cjs +23 -1
- package/Base/utils.d.ts +25 -0
- package/Base/utils.js +23 -1
- package/README.md +3 -3
- package/decorators/withBreakpointManager.cjs +15 -5
- package/decorators/withBreakpointManager.js +15 -5
- package/decorators/withBreakpointObserver.cjs +8 -2
- package/decorators/withBreakpointObserver.js +8 -2
- package/decorators/withVue2.cjs +10 -3
- package/decorators/withVue2.js +10 -3
- package/helpers/getDirectChildren.cjs +46 -0
- package/helpers/getDirectChildren.d.ts +24 -0
- package/helpers/getDirectChildren.js +24 -0
- package/helpers/importOnInteraction.cjs +2 -1
- package/helpers/importOnInteraction.js +2 -1
- package/helpers/importWhenVisible.cjs +2 -1
- package/helpers/importWhenVisible.js +2 -1
- package/helpers/index.cjs +2 -0
- package/helpers/index.d.ts +1 -0
- package/helpers/index.js +1 -0
- package/helpers/utils.cjs +3 -2
- package/helpers/utils.js +3 -2
- package/package.json +4 -1
- package/services/raf.cjs +2 -5
- package/services/raf.js +1 -1
- package/utils/css/animate.cjs +31 -92
- package/utils/css/animate.d.ts +4 -16
- package/utils/css/animate.js +28 -89
- package/utils/css/classes.cjs +2 -1
- package/utils/css/classes.js +2 -1
- package/utils/css/styles.cjs +2 -5
- package/utils/css/styles.js +1 -1
- package/utils/css/transform.cjs +13 -16
- package/utils/css/transform.js +1 -1
- package/utils/css/transition.cjs +5 -3
- package/utils/css/transition.js +5 -3
- package/utils/focusTrap.cjs +2 -1
- package/utils/focusTrap.js +2 -1
- package/utils/{isFunction.cjs → has.cjs} +7 -7
- package/utils/has.d.ts +6 -0
- package/utils/has.js +6 -0
- package/utils/history.cjs +5 -7
- package/utils/history.js +4 -3
- package/utils/index.cjs +5 -5
- package/utils/index.d.ts +3 -2
- package/utils/index.js +5 -5
- package/utils/{isDefined.cjs → is.cjs} +20 -8
- package/utils/is.d.ts +8 -0
- package/utils/is.js +18 -0
- package/utils/math/inertiaFinalValue.cjs +5 -3
- package/utils/math/inertiaFinalValue.js +2 -3
- package/utils/nextFrame.cjs +5 -3
- package/utils/nextFrame.js +5 -3
- package/utils/nextMicrotask.cjs +2 -1
- package/utils/nextMicrotask.js +2 -1
- package/utils/nextTick.cjs +2 -1
- package/utils/nextTick.js +2 -1
- package/utils/object/autoBind.cjs +3 -2
- package/utils/object/autoBind.js +3 -2
- package/utils/object/getAllProperties.cjs +2 -1
- package/utils/object/getAllProperties.js +2 -1
- package/utils/object/index.cjs +1 -3
- package/utils/object/index.d.ts +0 -1
- package/utils/object/index.js +1 -3
- package/utils/tween.cjs +114 -0
- package/utils/tween.d.ts +25 -0
- package/utils/tween.js +89 -0
- package/utils/isDefined.d.ts +0 -7
- package/utils/isDefined.js +0 -6
- package/utils/isFunction.d.ts +0 -7
- package/utils/isFunction.js +0 -6
- package/utils/object/isObject.cjs +0 -28
- package/utils/object/isObject.d.ts +0 -7
- package/utils/object/isObject.js +0 -6
package/Base/index.cjs
CHANGED
|
@@ -36,9 +36,8 @@ var import_RefsManager = __toESM(require("./managers/RefsManager.cjs"), 1);
|
|
|
36
36
|
var import_ServicesManager = __toESM(require("./managers/ServicesManager.cjs"), 1);
|
|
37
37
|
var import_EventsManager = __toESM(require("./managers/EventsManager.cjs"), 1);
|
|
38
38
|
var import_OptionsManager = __toESM(require("./managers/OptionsManager.cjs"), 1);
|
|
39
|
-
var
|
|
39
|
+
var import_utils2 = require("../utils/index.cjs");
|
|
40
40
|
var id = 0;
|
|
41
|
-
var isDev = typeof __DEV__ !== "undefined" && __DEV__;
|
|
42
41
|
function createAndTestManagers(instance) {
|
|
43
42
|
[
|
|
44
43
|
{
|
|
@@ -68,7 +67,7 @@ function createAndTestManagers(instance) {
|
|
|
68
67
|
}
|
|
69
68
|
].forEach(({ prop, constructorName, constructor }) => {
|
|
70
69
|
instance[prop] = new instance.__managers[constructorName](instance);
|
|
71
|
-
if (!(instance[prop] instanceof constructor)) {
|
|
70
|
+
if (import_utils2.isDev && !(instance[prop] instanceof constructor)) {
|
|
72
71
|
throw new Error(`The \`$managers.${constructorName}\` must extend the \`${constructorName}\` class.`);
|
|
73
72
|
}
|
|
74
73
|
});
|
|
@@ -87,11 +86,17 @@ var Base = class extends EventTarget {
|
|
|
87
86
|
__publicField(this, "__children");
|
|
88
87
|
__publicField(this, "__events");
|
|
89
88
|
if (!element) {
|
|
90
|
-
|
|
89
|
+
if (import_utils2.isDev) {
|
|
90
|
+
throw new Error("The root element must be defined.");
|
|
91
|
+
}
|
|
92
|
+
return;
|
|
91
93
|
}
|
|
92
94
|
const { __config } = this;
|
|
93
95
|
if (__config.name === "Base") {
|
|
94
|
-
|
|
96
|
+
if (import_utils2.isDev) {
|
|
97
|
+
throw new Error("The `config.name` property is required.");
|
|
98
|
+
}
|
|
99
|
+
return;
|
|
95
100
|
}
|
|
96
101
|
this.$id = `${__config.name}-${id}`;
|
|
97
102
|
id += 1;
|
|
@@ -101,7 +106,7 @@ var Base = class extends EventTarget {
|
|
|
101
106
|
}
|
|
102
107
|
this.$el.__base__.set(this.__ctor, this);
|
|
103
108
|
createAndTestManagers(this);
|
|
104
|
-
if (isDev) {
|
|
109
|
+
if (import_utils2.isDev) {
|
|
105
110
|
this.__debug("constructor", this);
|
|
106
111
|
}
|
|
107
112
|
}
|
|
@@ -151,10 +156,10 @@ var Base = class extends EventTarget {
|
|
|
151
156
|
return this.__children;
|
|
152
157
|
}
|
|
153
158
|
get $log() {
|
|
154
|
-
return this.__options.log ? window.console.log.bind(window, `[${this.__config.name}]`) :
|
|
159
|
+
return this.__options.log ? window.console.log.bind(window, `[${this.__config.name}]`) : import_utils2.noop;
|
|
155
160
|
}
|
|
156
161
|
get __debug() {
|
|
157
|
-
return isDev && this.__options.debug ? window.console.log.bind(window, `[debug] [${this.$id}]`) :
|
|
162
|
+
return import_utils2.isDev && this.__options.debug ? window.console.log.bind(window, `[debug] [${this.$id}]`) : import_utils2.noop;
|
|
158
163
|
}
|
|
159
164
|
get __managers() {
|
|
160
165
|
return {
|
|
@@ -166,14 +171,14 @@ var Base = class extends EventTarget {
|
|
|
166
171
|
};
|
|
167
172
|
}
|
|
168
173
|
__callMethod(method, ...args) {
|
|
169
|
-
if (isDev) {
|
|
174
|
+
if (import_utils2.isDev) {
|
|
170
175
|
this.__debug("callMethod", method, ...args);
|
|
171
176
|
}
|
|
172
177
|
this.$emit(method, ...args);
|
|
173
|
-
if (
|
|
178
|
+
if (!(0, import_utils2.isFunction)(this[method])) {
|
|
174
179
|
return null;
|
|
175
180
|
}
|
|
176
|
-
if (isDev) {
|
|
181
|
+
if (import_utils2.isDev) {
|
|
177
182
|
this.__debug(method, this, ...args);
|
|
178
183
|
}
|
|
179
184
|
return this[method].call(this, ...args);
|
|
@@ -188,7 +193,7 @@ var Base = class extends EventTarget {
|
|
|
188
193
|
}
|
|
189
194
|
this.$emit("before-mounted");
|
|
190
195
|
this.$isMounted = true;
|
|
191
|
-
if (isDev) {
|
|
196
|
+
if (import_utils2.isDev) {
|
|
192
197
|
this.__debug("$mount");
|
|
193
198
|
}
|
|
194
199
|
this.$children.registerAll();
|
|
@@ -200,7 +205,7 @@ var Base = class extends EventTarget {
|
|
|
200
205
|
return this;
|
|
201
206
|
}
|
|
202
207
|
$update() {
|
|
203
|
-
if (isDev) {
|
|
208
|
+
if (import_utils2.isDev) {
|
|
204
209
|
this.__debug("$update");
|
|
205
210
|
}
|
|
206
211
|
this.$refs.unregisterAll();
|
|
@@ -217,7 +222,7 @@ var Base = class extends EventTarget {
|
|
|
217
222
|
return this;
|
|
218
223
|
}
|
|
219
224
|
this.$isMounted = false;
|
|
220
|
-
if (isDev) {
|
|
225
|
+
if (import_utils2.isDev) {
|
|
221
226
|
this.__debug("$destroy");
|
|
222
227
|
}
|
|
223
228
|
this.__events.unbindRootElement();
|
|
@@ -228,21 +233,16 @@ var Base = class extends EventTarget {
|
|
|
228
233
|
return this;
|
|
229
234
|
}
|
|
230
235
|
$terminate() {
|
|
231
|
-
if (isDev) {
|
|
236
|
+
if (import_utils2.isDev) {
|
|
232
237
|
this.__debug("$terminate");
|
|
233
238
|
}
|
|
234
239
|
this.$destroy();
|
|
235
240
|
this.__callMethod("terminated");
|
|
236
241
|
this.$el.__base__.set(this.__ctor, "terminated");
|
|
237
242
|
}
|
|
238
|
-
__testEventIsDefined(event) {
|
|
239
|
-
if (!(Array.isArray(this.__config.emits) && this.__config.emits.includes(event))) {
|
|
240
|
-
console.warn(`[${this.__config.name}]`, `The "${event}" event is missing from the configuration.`);
|
|
241
|
-
}
|
|
242
|
-
}
|
|
243
243
|
__addEmits(event) {
|
|
244
244
|
const ctor = this.__ctor;
|
|
245
|
-
if (
|
|
245
|
+
if ((0, import_utils2.isArray)(ctor.config.emits)) {
|
|
246
246
|
ctor.config.emits.push(event);
|
|
247
247
|
} else {
|
|
248
248
|
ctor.config.emits = [event];
|
|
@@ -257,44 +257,37 @@ var Base = class extends EventTarget {
|
|
|
257
257
|
return this.constructor;
|
|
258
258
|
}
|
|
259
259
|
$on(event, listener, options) {
|
|
260
|
-
if (isDev) {
|
|
260
|
+
if (import_utils2.isDev) {
|
|
261
261
|
this.__debug("$on", event, listener, options);
|
|
262
262
|
}
|
|
263
|
-
if (isDev) {
|
|
264
|
-
this.__testEventIsDefined(event);
|
|
265
|
-
}
|
|
266
263
|
let set = this.__eventHandlers.get(event);
|
|
267
264
|
if (!set) {
|
|
268
265
|
set = /* @__PURE__ */ new Set();
|
|
269
266
|
this.__eventHandlers.set(event, set);
|
|
270
267
|
}
|
|
271
268
|
set.add(listener);
|
|
272
|
-
|
|
269
|
+
const target = (0, import_utils.getEventTarget)(this, event, this.__config);
|
|
270
|
+
target.addEventListener(event, listener, options);
|
|
273
271
|
return () => {
|
|
274
272
|
this.$off(event, listener, options);
|
|
275
273
|
};
|
|
276
274
|
}
|
|
277
275
|
$off(event, listener, options) {
|
|
278
|
-
if (isDev) {
|
|
276
|
+
if (import_utils2.isDev) {
|
|
279
277
|
this.__debug("$off", event, listener);
|
|
280
278
|
}
|
|
281
|
-
if (isDev) {
|
|
282
|
-
this.__testEventIsDefined(event);
|
|
283
|
-
}
|
|
284
279
|
this.__eventHandlers.get(event).delete(listener);
|
|
285
|
-
|
|
280
|
+
const target = (0, import_utils.getEventTarget)(this, event, this.__config);
|
|
281
|
+
target.removeEventListener(event, listener, options);
|
|
286
282
|
}
|
|
287
283
|
$emit(event, ...args) {
|
|
288
|
-
if (isDev) {
|
|
284
|
+
if (import_utils2.isDev) {
|
|
289
285
|
this.__debug("$emit", event, args);
|
|
290
286
|
}
|
|
291
|
-
if (isDev) {
|
|
292
|
-
this.__testEventIsDefined(event);
|
|
293
|
-
}
|
|
294
287
|
this.dispatchEvent(new CustomEvent(event, { detail: args }));
|
|
295
288
|
}
|
|
296
289
|
static $factory(nameOrSelector) {
|
|
297
|
-
if (!nameOrSelector) {
|
|
290
|
+
if (import_utils2.isDev && !nameOrSelector) {
|
|
298
291
|
throw new Error("The $factory method requires a component\u2019s name or selector to be specified.");
|
|
299
292
|
}
|
|
300
293
|
return (0, import_utils.getComponentElements)(nameOrSelector).map((el) => new this(el).$mount());
|
package/Base/index.d.ts
CHANGED
|
@@ -191,14 +191,6 @@ export default class Base extends EventTarget {
|
|
|
191
191
|
* @returns {void}
|
|
192
192
|
*/
|
|
193
193
|
$terminate(): void;
|
|
194
|
-
/**
|
|
195
|
-
* Test if the given event is configured and warn otherwise.
|
|
196
|
-
*
|
|
197
|
-
* @private
|
|
198
|
-
* @param {string} event The event name.
|
|
199
|
-
* @returns {void}
|
|
200
|
-
*/
|
|
201
|
-
private __testEventIsDefined;
|
|
202
194
|
/**
|
|
203
195
|
* Add an emitted event.
|
|
204
196
|
*
|
package/Base/index.js
CHANGED
|
@@ -4,15 +4,14 @@ var __publicField = (obj, key, value) => {
|
|
|
4
4
|
__defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
5
5
|
return value;
|
|
6
6
|
};
|
|
7
|
-
import { getComponentElements } from "./utils.js";
|
|
7
|
+
import { getComponentElements, getEventTarget } from "./utils.js";
|
|
8
8
|
import ChildrenManager from "./managers/ChildrenManager.js";
|
|
9
9
|
import RefsManager from "./managers/RefsManager.js";
|
|
10
10
|
import ServicesManager from "./managers/ServicesManager.js";
|
|
11
11
|
import EventsManager from "./managers/EventsManager.js";
|
|
12
12
|
import OptionsManager from "./managers/OptionsManager.js";
|
|
13
|
-
import { noop } from "../utils/
|
|
13
|
+
import { noop, isDev, isFunction, isArray } from "../utils/index.js";
|
|
14
14
|
let id = 0;
|
|
15
|
-
const isDev = typeof __DEV__ !== "undefined" && __DEV__;
|
|
16
15
|
function createAndTestManagers(instance) {
|
|
17
16
|
[
|
|
18
17
|
{
|
|
@@ -42,7 +41,7 @@ function createAndTestManagers(instance) {
|
|
|
42
41
|
}
|
|
43
42
|
].forEach(({ prop, constructorName, constructor }) => {
|
|
44
43
|
instance[prop] = new instance.__managers[constructorName](instance);
|
|
45
|
-
if (!(instance[prop] instanceof constructor)) {
|
|
44
|
+
if (isDev && !(instance[prop] instanceof constructor)) {
|
|
46
45
|
throw new Error(`The \`$managers.${constructorName}\` must extend the \`${constructorName}\` class.`);
|
|
47
46
|
}
|
|
48
47
|
});
|
|
@@ -61,11 +60,17 @@ class Base extends EventTarget {
|
|
|
61
60
|
__publicField(this, "__children");
|
|
62
61
|
__publicField(this, "__events");
|
|
63
62
|
if (!element) {
|
|
64
|
-
|
|
63
|
+
if (isDev) {
|
|
64
|
+
throw new Error("The root element must be defined.");
|
|
65
|
+
}
|
|
66
|
+
return;
|
|
65
67
|
}
|
|
66
68
|
const { __config } = this;
|
|
67
69
|
if (__config.name === "Base") {
|
|
68
|
-
|
|
70
|
+
if (isDev) {
|
|
71
|
+
throw new Error("The `config.name` property is required.");
|
|
72
|
+
}
|
|
73
|
+
return;
|
|
69
74
|
}
|
|
70
75
|
this.$id = `${__config.name}-${id}`;
|
|
71
76
|
id += 1;
|
|
@@ -144,7 +149,7 @@ class Base extends EventTarget {
|
|
|
144
149
|
this.__debug("callMethod", method, ...args);
|
|
145
150
|
}
|
|
146
151
|
this.$emit(method, ...args);
|
|
147
|
-
if (
|
|
152
|
+
if (!isFunction(this[method])) {
|
|
148
153
|
return null;
|
|
149
154
|
}
|
|
150
155
|
if (isDev) {
|
|
@@ -209,14 +214,9 @@ class Base extends EventTarget {
|
|
|
209
214
|
this.__callMethod("terminated");
|
|
210
215
|
this.$el.__base__.set(this.__ctor, "terminated");
|
|
211
216
|
}
|
|
212
|
-
__testEventIsDefined(event) {
|
|
213
|
-
if (!(Array.isArray(this.__config.emits) && this.__config.emits.includes(event))) {
|
|
214
|
-
console.warn(`[${this.__config.name}]`, `The "${event}" event is missing from the configuration.`);
|
|
215
|
-
}
|
|
216
|
-
}
|
|
217
217
|
__addEmits(event) {
|
|
218
218
|
const ctor = this.__ctor;
|
|
219
|
-
if (
|
|
219
|
+
if (isArray(ctor.config.emits)) {
|
|
220
220
|
ctor.config.emits.push(event);
|
|
221
221
|
} else {
|
|
222
222
|
ctor.config.emits = [event];
|
|
@@ -234,16 +234,14 @@ class Base extends EventTarget {
|
|
|
234
234
|
if (isDev) {
|
|
235
235
|
this.__debug("$on", event, listener, options);
|
|
236
236
|
}
|
|
237
|
-
if (isDev) {
|
|
238
|
-
this.__testEventIsDefined(event);
|
|
239
|
-
}
|
|
240
237
|
let set = this.__eventHandlers.get(event);
|
|
241
238
|
if (!set) {
|
|
242
239
|
set = /* @__PURE__ */ new Set();
|
|
243
240
|
this.__eventHandlers.set(event, set);
|
|
244
241
|
}
|
|
245
242
|
set.add(listener);
|
|
246
|
-
this
|
|
243
|
+
const target = getEventTarget(this, event, this.__config);
|
|
244
|
+
target.addEventListener(event, listener, options);
|
|
247
245
|
return () => {
|
|
248
246
|
this.$off(event, listener, options);
|
|
249
247
|
};
|
|
@@ -252,23 +250,18 @@ class Base extends EventTarget {
|
|
|
252
250
|
if (isDev) {
|
|
253
251
|
this.__debug("$off", event, listener);
|
|
254
252
|
}
|
|
255
|
-
if (isDev) {
|
|
256
|
-
this.__testEventIsDefined(event);
|
|
257
|
-
}
|
|
258
253
|
this.__eventHandlers.get(event).delete(listener);
|
|
259
|
-
this
|
|
254
|
+
const target = getEventTarget(this, event, this.__config);
|
|
255
|
+
target.removeEventListener(event, listener, options);
|
|
260
256
|
}
|
|
261
257
|
$emit(event, ...args) {
|
|
262
258
|
if (isDev) {
|
|
263
259
|
this.__debug("$emit", event, args);
|
|
264
260
|
}
|
|
265
|
-
if (isDev) {
|
|
266
|
-
this.__testEventIsDefined(event);
|
|
267
|
-
}
|
|
268
261
|
this.dispatchEvent(new CustomEvent(event, { detail: args }));
|
|
269
262
|
}
|
|
270
263
|
static $factory(nameOrSelector) {
|
|
271
|
-
if (!nameOrSelector) {
|
|
264
|
+
if (isDev && !nameOrSelector) {
|
|
272
265
|
throw new Error("The $factory method requires a component\u2019s name or selector to be specified.");
|
|
273
266
|
}
|
|
274
267
|
return getComponentElements(nameOrSelector).map((el) => new this(el).$mount());
|
|
@@ -33,6 +33,8 @@ __export(EventsManager_exports, {
|
|
|
33
33
|
});
|
|
34
34
|
module.exports = __toCommonJS(EventsManager_exports);
|
|
35
35
|
var import_getAllProperties = __toESM(require("../../utils/object/getAllProperties.cjs"), 1);
|
|
36
|
+
var import_utils = require("../../utils/index.cjs");
|
|
37
|
+
var import_utils2 = require("../utils.cjs");
|
|
36
38
|
var import_AbstractManager = __toESM(require("./AbstractManager.cjs"), 1);
|
|
37
39
|
var import_RefsManager = require("./RefsManager.cjs");
|
|
38
40
|
var names = /* @__PURE__ */ new Map();
|
|
@@ -56,12 +58,12 @@ function getRegex(regex) {
|
|
|
56
58
|
}
|
|
57
59
|
return regexes.get(regex);
|
|
58
60
|
}
|
|
59
|
-
function
|
|
61
|
+
function getEventNameByMethod(method, name = "") {
|
|
60
62
|
const regex = getRegex(`^on${normalizeName(name)}([A-Z].*)$`);
|
|
61
63
|
const [, event] = method.match(regex);
|
|
62
64
|
return normalizeEventName(event);
|
|
63
65
|
}
|
|
64
|
-
function
|
|
66
|
+
function getEventMethodsByName(that, name = "") {
|
|
65
67
|
const regex = getRegex(`^on${normalizeName(name)}[A-Z].*$`);
|
|
66
68
|
const key = regex.toString();
|
|
67
69
|
let methods = that.__methodsCache.get(key);
|
|
@@ -71,29 +73,28 @@ function __getEventMethodsByName(that, name = "") {
|
|
|
71
73
|
}
|
|
72
74
|
return methods;
|
|
73
75
|
}
|
|
74
|
-
function
|
|
76
|
+
function manageRef(that, name, elements, mode = "add") {
|
|
75
77
|
const action = `${mode}EventListener`;
|
|
76
|
-
const methods =
|
|
78
|
+
const methods = getEventMethodsByName(that, name);
|
|
77
79
|
methods.forEach((method) => {
|
|
78
|
-
const event =
|
|
80
|
+
const event = getEventNameByMethod(method, name);
|
|
79
81
|
elements.forEach((element) => element[action](event, that.__refsHandler));
|
|
80
82
|
});
|
|
81
83
|
}
|
|
82
|
-
function
|
|
84
|
+
function manageChild(that, name, instance, mode = "add") {
|
|
83
85
|
const action = mode === "add" ? "$on" : "$off";
|
|
84
|
-
const methods =
|
|
86
|
+
const methods = getEventMethodsByName(that, name);
|
|
85
87
|
methods.forEach((method) => {
|
|
86
|
-
const event =
|
|
88
|
+
const event = getEventNameByMethod(method, name);
|
|
87
89
|
instance[action](event, that.__childrenHandler);
|
|
88
90
|
});
|
|
89
91
|
}
|
|
90
|
-
function
|
|
92
|
+
function manageRootElement(that, mode = "add") {
|
|
91
93
|
const modeMethod = `${mode}EventListener`;
|
|
92
|
-
const methods =
|
|
93
|
-
const {
|
|
94
|
-
methods.
|
|
95
|
-
const
|
|
96
|
-
const target = emits.includes(event) ? that.__base : that.__element;
|
|
94
|
+
const methods = getEventMethodsByName(that);
|
|
95
|
+
const { __base: base, __config: config } = that;
|
|
96
|
+
methods.map((method) => getEventNameByMethod(method)).filter((event) => (0, import_utils2.eventIsDefinedInConfig)(event, config) || (0, import_utils2.eventIsNative)(event, base.$el)).forEach((event) => {
|
|
97
|
+
const target = (0, import_utils2.getEventTarget)(base, event, config);
|
|
97
98
|
target[modeMethod](event, that.__rootElementHandler);
|
|
98
99
|
});
|
|
99
100
|
}
|
|
@@ -105,7 +106,11 @@ var EventsManager = class extends import_AbstractManager.default {
|
|
|
105
106
|
handleEvent: (event) => {
|
|
106
107
|
const normalizedEventName = normalizeName(event.type);
|
|
107
108
|
const method = `on${normalizedEventName}`;
|
|
108
|
-
|
|
109
|
+
if (event instanceof CustomEvent && (0, import_utils.isArray)(event.detail) && event.detail.length) {
|
|
110
|
+
this.__base[method](...event.detail, event);
|
|
111
|
+
} else {
|
|
112
|
+
this.__base[method](event);
|
|
113
|
+
}
|
|
109
114
|
}
|
|
110
115
|
});
|
|
111
116
|
__publicField(this, "__refsHandler", {
|
|
@@ -116,7 +121,7 @@ var EventsManager = class extends import_AbstractManager.default {
|
|
|
116
121
|
const normalizedEventName = normalizeName(event.type);
|
|
117
122
|
const method = `on${normalizedRefName}${normalizedEventName}`;
|
|
118
123
|
let index = 0;
|
|
119
|
-
if (
|
|
124
|
+
if ((0, import_utils.isArray)(this.__base.$refs[refName])) {
|
|
120
125
|
index = this.__base.$refs[refName].indexOf(ref);
|
|
121
126
|
}
|
|
122
127
|
this.__base[method](event, index);
|
|
@@ -124,22 +129,16 @@ var EventsManager = class extends import_AbstractManager.default {
|
|
|
124
129
|
});
|
|
125
130
|
__publicField(this, "__childrenHandler", {
|
|
126
131
|
handleEvent: (event) => {
|
|
127
|
-
const child = event.currentTarget;
|
|
128
|
-
let childName;
|
|
129
|
-
let index = 0;
|
|
130
132
|
const childrenManager = this.__base.$children;
|
|
131
|
-
childrenManager.registeredNames.
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
}
|
|
137
|
-
return false;
|
|
138
|
-
});
|
|
139
|
-
const normalizedRefName = normalizeName(childName);
|
|
133
|
+
const { name, child: resolvedChild } = childrenManager.registeredNames.map((childName) => ({
|
|
134
|
+
name: childName,
|
|
135
|
+
child: childrenManager[childName].find((instance) => instance === event.currentTarget || instance.$el === event.currentTarget)
|
|
136
|
+
})).find(({ child }) => child);
|
|
137
|
+
const normalizedChildName = normalizeName(name);
|
|
140
138
|
const normalizedEventName = normalizeName(event.type);
|
|
141
|
-
const method = `on${
|
|
142
|
-
const
|
|
139
|
+
const method = `on${normalizedChildName}${normalizedEventName}`;
|
|
140
|
+
const index = childrenManager[name].indexOf(resolvedChild);
|
|
141
|
+
const args = (0, import_utils.isArray)(event.detail) ? event.detail : [];
|
|
143
142
|
this.__base[method](...args, index, event);
|
|
144
143
|
}
|
|
145
144
|
});
|
|
@@ -151,22 +150,22 @@ var EventsManager = class extends import_AbstractManager.default {
|
|
|
151
150
|
]);
|
|
152
151
|
}
|
|
153
152
|
bindRef(name, elements) {
|
|
154
|
-
|
|
153
|
+
manageRef(this, name, elements);
|
|
155
154
|
}
|
|
156
155
|
unbindRef(name, elements) {
|
|
157
|
-
|
|
156
|
+
manageRef(this, name, elements, "remove");
|
|
158
157
|
}
|
|
159
158
|
bindChild(name, instance) {
|
|
160
|
-
|
|
159
|
+
manageChild(this, name, instance);
|
|
161
160
|
}
|
|
162
161
|
unbindChild(name, instance) {
|
|
163
|
-
|
|
162
|
+
manageChild(this, name, instance, "remove");
|
|
164
163
|
}
|
|
165
164
|
bindRootElement() {
|
|
166
|
-
|
|
165
|
+
manageRootElement(this);
|
|
167
166
|
}
|
|
168
167
|
unbindRootElement() {
|
|
169
|
-
|
|
168
|
+
manageRootElement(this, "remove");
|
|
170
169
|
}
|
|
171
170
|
};
|
|
172
171
|
if (module.exports.default) module.exports = module.exports.default;
|
|
@@ -5,6 +5,8 @@ var __publicField = (obj, key, value) => {
|
|
|
5
5
|
return value;
|
|
6
6
|
};
|
|
7
7
|
import getAllProperties from "../../utils/object/getAllProperties.js";
|
|
8
|
+
import { isArray } from "../../utils/index.js";
|
|
9
|
+
import { getEventTarget, eventIsNative, eventIsDefinedInConfig } from "../utils.js";
|
|
8
10
|
import AbstractManager from "./AbstractManager.js";
|
|
9
11
|
import { normalizeRefName } from "./RefsManager.js";
|
|
10
12
|
const names = /* @__PURE__ */ new Map();
|
|
@@ -28,12 +30,12 @@ function getRegex(regex) {
|
|
|
28
30
|
}
|
|
29
31
|
return regexes.get(regex);
|
|
30
32
|
}
|
|
31
|
-
function
|
|
33
|
+
function getEventNameByMethod(method, name = "") {
|
|
32
34
|
const regex = getRegex(`^on${normalizeName(name)}([A-Z].*)$`);
|
|
33
35
|
const [, event] = method.match(regex);
|
|
34
36
|
return normalizeEventName(event);
|
|
35
37
|
}
|
|
36
|
-
function
|
|
38
|
+
function getEventMethodsByName(that, name = "") {
|
|
37
39
|
const regex = getRegex(`^on${normalizeName(name)}[A-Z].*$`);
|
|
38
40
|
const key = regex.toString();
|
|
39
41
|
let methods = that.__methodsCache.get(key);
|
|
@@ -43,29 +45,28 @@ function __getEventMethodsByName(that, name = "") {
|
|
|
43
45
|
}
|
|
44
46
|
return methods;
|
|
45
47
|
}
|
|
46
|
-
function
|
|
48
|
+
function manageRef(that, name, elements, mode = "add") {
|
|
47
49
|
const action = `${mode}EventListener`;
|
|
48
|
-
const methods =
|
|
50
|
+
const methods = getEventMethodsByName(that, name);
|
|
49
51
|
methods.forEach((method) => {
|
|
50
|
-
const event =
|
|
52
|
+
const event = getEventNameByMethod(method, name);
|
|
51
53
|
elements.forEach((element) => element[action](event, that.__refsHandler));
|
|
52
54
|
});
|
|
53
55
|
}
|
|
54
|
-
function
|
|
56
|
+
function manageChild(that, name, instance, mode = "add") {
|
|
55
57
|
const action = mode === "add" ? "$on" : "$off";
|
|
56
|
-
const methods =
|
|
58
|
+
const methods = getEventMethodsByName(that, name);
|
|
57
59
|
methods.forEach((method) => {
|
|
58
|
-
const event =
|
|
60
|
+
const event = getEventNameByMethod(method, name);
|
|
59
61
|
instance[action](event, that.__childrenHandler);
|
|
60
62
|
});
|
|
61
63
|
}
|
|
62
|
-
function
|
|
64
|
+
function manageRootElement(that, mode = "add") {
|
|
63
65
|
const modeMethod = `${mode}EventListener`;
|
|
64
|
-
const methods =
|
|
65
|
-
const {
|
|
66
|
-
methods.
|
|
67
|
-
const
|
|
68
|
-
const target = emits.includes(event) ? that.__base : that.__element;
|
|
66
|
+
const methods = getEventMethodsByName(that);
|
|
67
|
+
const { __base: base, __config: config } = that;
|
|
68
|
+
methods.map((method) => getEventNameByMethod(method)).filter((event) => eventIsDefinedInConfig(event, config) || eventIsNative(event, base.$el)).forEach((event) => {
|
|
69
|
+
const target = getEventTarget(base, event, config);
|
|
69
70
|
target[modeMethod](event, that.__rootElementHandler);
|
|
70
71
|
});
|
|
71
72
|
}
|
|
@@ -77,7 +78,11 @@ class EventsManager extends AbstractManager {
|
|
|
77
78
|
handleEvent: (event) => {
|
|
78
79
|
const normalizedEventName = normalizeName(event.type);
|
|
79
80
|
const method = `on${normalizedEventName}`;
|
|
80
|
-
|
|
81
|
+
if (event instanceof CustomEvent && isArray(event.detail) && event.detail.length) {
|
|
82
|
+
this.__base[method](...event.detail, event);
|
|
83
|
+
} else {
|
|
84
|
+
this.__base[method](event);
|
|
85
|
+
}
|
|
81
86
|
}
|
|
82
87
|
});
|
|
83
88
|
__publicField(this, "__refsHandler", {
|
|
@@ -88,7 +93,7 @@ class EventsManager extends AbstractManager {
|
|
|
88
93
|
const normalizedEventName = normalizeName(event.type);
|
|
89
94
|
const method = `on${normalizedRefName}${normalizedEventName}`;
|
|
90
95
|
let index = 0;
|
|
91
|
-
if (
|
|
96
|
+
if (isArray(this.__base.$refs[refName])) {
|
|
92
97
|
index = this.__base.$refs[refName].indexOf(ref);
|
|
93
98
|
}
|
|
94
99
|
this.__base[method](event, index);
|
|
@@ -96,22 +101,16 @@ class EventsManager extends AbstractManager {
|
|
|
96
101
|
});
|
|
97
102
|
__publicField(this, "__childrenHandler", {
|
|
98
103
|
handleEvent: (event) => {
|
|
99
|
-
const child = event.currentTarget;
|
|
100
|
-
let childName;
|
|
101
|
-
let index = 0;
|
|
102
104
|
const childrenManager = this.__base.$children;
|
|
103
|
-
childrenManager.registeredNames.
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
}
|
|
109
|
-
return false;
|
|
110
|
-
});
|
|
111
|
-
const normalizedRefName = normalizeName(childName);
|
|
105
|
+
const { name, child: resolvedChild } = childrenManager.registeredNames.map((childName) => ({
|
|
106
|
+
name: childName,
|
|
107
|
+
child: childrenManager[childName].find((instance) => instance === event.currentTarget || instance.$el === event.currentTarget)
|
|
108
|
+
})).find(({ child }) => child);
|
|
109
|
+
const normalizedChildName = normalizeName(name);
|
|
112
110
|
const normalizedEventName = normalizeName(event.type);
|
|
113
|
-
const method = `on${
|
|
114
|
-
const
|
|
111
|
+
const method = `on${normalizedChildName}${normalizedEventName}`;
|
|
112
|
+
const index = childrenManager[name].indexOf(resolvedChild);
|
|
113
|
+
const args = isArray(event.detail) ? event.detail : [];
|
|
115
114
|
this.__base[method](...args, index, event);
|
|
116
115
|
}
|
|
117
116
|
});
|
|
@@ -123,22 +122,22 @@ class EventsManager extends AbstractManager {
|
|
|
123
122
|
]);
|
|
124
123
|
}
|
|
125
124
|
bindRef(name, elements) {
|
|
126
|
-
|
|
125
|
+
manageRef(this, name, elements);
|
|
127
126
|
}
|
|
128
127
|
unbindRef(name, elements) {
|
|
129
|
-
|
|
128
|
+
manageRef(this, name, elements, "remove");
|
|
130
129
|
}
|
|
131
130
|
bindChild(name, instance) {
|
|
132
|
-
|
|
131
|
+
manageChild(this, name, instance);
|
|
133
132
|
}
|
|
134
133
|
unbindChild(name, instance) {
|
|
135
|
-
|
|
134
|
+
manageChild(this, name, instance, "remove");
|
|
136
135
|
}
|
|
137
136
|
bindRootElement() {
|
|
138
|
-
|
|
137
|
+
manageRootElement(this);
|
|
139
138
|
}
|
|
140
139
|
unbindRootElement() {
|
|
141
|
-
|
|
140
|
+
manageRootElement(this, "remove");
|
|
142
141
|
}
|
|
143
142
|
}
|
|
144
143
|
export {
|