@studiometa/js-toolkit 2.2.2 → 2.4.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 +29 -37
- package/Base/index.d.ts +0 -8
- package/Base/index.js +18 -26
- 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 +9 -7
- package/Base/managers/ServicesManager.js +9 -7
- package/Base/utils.cjs +22 -4
- package/Base/utils.d.ts +25 -8
- package/Base/utils.js +22 -4
- 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/drag.cjs +126 -148
- package/services/drag.d.ts +10 -10
- package/services/drag.js +125 -148
- package/services/index.cjs +3 -1
- package/services/index.d.ts +1 -0
- package/services/index.js +3 -1
- package/services/key.cjs +48 -63
- package/services/key.d.ts +0 -8
- package/services/key.js +47 -63
- package/services/load.cjs +24 -40
- package/services/load.d.ts +0 -8
- package/services/load.js +23 -37
- package/services/pointer.cjs +73 -103
- package/services/pointer.d.ts +1 -9
- package/services/pointer.js +72 -100
- package/services/raf.cjs +38 -58
- package/services/raf.d.ts +0 -8
- package/services/raf.js +37 -55
- package/services/resize.cjs +59 -68
- package/services/resize.d.ts +0 -7
- package/services/resize.js +58 -68
- package/services/scroll.cjs +49 -71
- package/services/scroll.js +48 -71
- package/services/service.cjs +68 -0
- package/services/service.d.ts +18 -0
- package/services/service.js +46 -0
- package/utils/css/animate.cjs +31 -96
- package/utils/css/animate.d.ts +4 -16
- package/utils/css/animate.js +28 -93
- 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 +6 -5
- package/utils/index.d.ts +4 -2
- package/utils/index.js +6 -5
- package/utils/{object/isObject.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/{isDefined.cjs → noop.cjs} +10 -7
- package/utils/noop.d.ts +12 -0
- package/utils/noop.js +9 -0
- 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/services/Service.cjs +0 -76
- package/services/Service.d.ts +0 -76
- package/services/Service.js +0 -55
- 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.d.ts +0 -7
- package/utils/object/isObject.js +0 -6
package/Base/index.cjs
CHANGED
|
@@ -36,10 +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 import_utils2 = require("../utils/index.cjs");
|
|
39
40
|
var id = 0;
|
|
40
|
-
var isDev = typeof __DEV__ !== "undefined" && __DEV__;
|
|
41
|
-
function noop() {
|
|
42
|
-
}
|
|
43
41
|
function createAndTestManagers(instance) {
|
|
44
42
|
[
|
|
45
43
|
{
|
|
@@ -69,7 +67,7 @@ function createAndTestManagers(instance) {
|
|
|
69
67
|
}
|
|
70
68
|
].forEach(({ prop, constructorName, constructor }) => {
|
|
71
69
|
instance[prop] = new instance.__managers[constructorName](instance);
|
|
72
|
-
if (!(instance[prop] instanceof constructor)) {
|
|
70
|
+
if (import_utils2.isDev && !(instance[prop] instanceof constructor)) {
|
|
73
71
|
throw new Error(`The \`$managers.${constructorName}\` must extend the \`${constructorName}\` class.`);
|
|
74
72
|
}
|
|
75
73
|
});
|
|
@@ -88,11 +86,17 @@ var Base = class extends EventTarget {
|
|
|
88
86
|
__publicField(this, "__children");
|
|
89
87
|
__publicField(this, "__events");
|
|
90
88
|
if (!element) {
|
|
91
|
-
|
|
89
|
+
if (import_utils2.isDev) {
|
|
90
|
+
throw new Error("The root element must be defined.");
|
|
91
|
+
}
|
|
92
|
+
return;
|
|
92
93
|
}
|
|
93
94
|
const { __config } = this;
|
|
94
95
|
if (__config.name === "Base") {
|
|
95
|
-
|
|
96
|
+
if (import_utils2.isDev) {
|
|
97
|
+
throw new Error("The `config.name` property is required.");
|
|
98
|
+
}
|
|
99
|
+
return;
|
|
96
100
|
}
|
|
97
101
|
this.$id = `${__config.name}-${id}`;
|
|
98
102
|
id += 1;
|
|
@@ -102,7 +106,7 @@ var Base = class extends EventTarget {
|
|
|
102
106
|
}
|
|
103
107
|
this.$el.__base__.set(this.__ctor, this);
|
|
104
108
|
createAndTestManagers(this);
|
|
105
|
-
if (isDev) {
|
|
109
|
+
if (import_utils2.isDev) {
|
|
106
110
|
this.__debug("constructor", this);
|
|
107
111
|
}
|
|
108
112
|
}
|
|
@@ -152,10 +156,10 @@ var Base = class extends EventTarget {
|
|
|
152
156
|
return this.__children;
|
|
153
157
|
}
|
|
154
158
|
get $log() {
|
|
155
|
-
return this.__options.log ? window.console.log.bind(window, `[${this.__config.name}]`) : noop;
|
|
159
|
+
return this.__options.log ? window.console.log.bind(window, `[${this.__config.name}]`) : import_utils2.noop;
|
|
156
160
|
}
|
|
157
161
|
get __debug() {
|
|
158
|
-
return isDev && this.__options.debug ? window.console.log.bind(window, `[debug] [${this.$id}]`) : noop;
|
|
162
|
+
return import_utils2.isDev && this.__options.debug ? window.console.log.bind(window, `[debug] [${this.$id}]`) : import_utils2.noop;
|
|
159
163
|
}
|
|
160
164
|
get __managers() {
|
|
161
165
|
return {
|
|
@@ -167,14 +171,14 @@ var Base = class extends EventTarget {
|
|
|
167
171
|
};
|
|
168
172
|
}
|
|
169
173
|
__callMethod(method, ...args) {
|
|
170
|
-
if (isDev) {
|
|
174
|
+
if (import_utils2.isDev) {
|
|
171
175
|
this.__debug("callMethod", method, ...args);
|
|
172
176
|
}
|
|
173
177
|
this.$emit(method, ...args);
|
|
174
|
-
if (
|
|
178
|
+
if (!(0, import_utils2.isFunction)(this[method])) {
|
|
175
179
|
return null;
|
|
176
180
|
}
|
|
177
|
-
if (isDev) {
|
|
181
|
+
if (import_utils2.isDev) {
|
|
178
182
|
this.__debug(method, this, ...args);
|
|
179
183
|
}
|
|
180
184
|
return this[method].call(this, ...args);
|
|
@@ -189,7 +193,7 @@ var Base = class extends EventTarget {
|
|
|
189
193
|
}
|
|
190
194
|
this.$emit("before-mounted");
|
|
191
195
|
this.$isMounted = true;
|
|
192
|
-
if (isDev) {
|
|
196
|
+
if (import_utils2.isDev) {
|
|
193
197
|
this.__debug("$mount");
|
|
194
198
|
}
|
|
195
199
|
this.$children.registerAll();
|
|
@@ -201,7 +205,7 @@ var Base = class extends EventTarget {
|
|
|
201
205
|
return this;
|
|
202
206
|
}
|
|
203
207
|
$update() {
|
|
204
|
-
if (isDev) {
|
|
208
|
+
if (import_utils2.isDev) {
|
|
205
209
|
this.__debug("$update");
|
|
206
210
|
}
|
|
207
211
|
this.$refs.unregisterAll();
|
|
@@ -218,7 +222,7 @@ var Base = class extends EventTarget {
|
|
|
218
222
|
return this;
|
|
219
223
|
}
|
|
220
224
|
this.$isMounted = false;
|
|
221
|
-
if (isDev) {
|
|
225
|
+
if (import_utils2.isDev) {
|
|
222
226
|
this.__debug("$destroy");
|
|
223
227
|
}
|
|
224
228
|
this.__events.unbindRootElement();
|
|
@@ -229,21 +233,16 @@ var Base = class extends EventTarget {
|
|
|
229
233
|
return this;
|
|
230
234
|
}
|
|
231
235
|
$terminate() {
|
|
232
|
-
if (isDev) {
|
|
236
|
+
if (import_utils2.isDev) {
|
|
233
237
|
this.__debug("$terminate");
|
|
234
238
|
}
|
|
235
239
|
this.$destroy();
|
|
236
240
|
this.__callMethod("terminated");
|
|
237
241
|
this.$el.__base__.set(this.__ctor, "terminated");
|
|
238
242
|
}
|
|
239
|
-
__testEventIsDefined(event) {
|
|
240
|
-
if (!(Array.isArray(this.__config.emits) && this.__config.emits.includes(event))) {
|
|
241
|
-
console.warn(`[${this.__config.name}]`, `The "${event}" event is missing from the configuration.`);
|
|
242
|
-
}
|
|
243
|
-
}
|
|
244
243
|
__addEmits(event) {
|
|
245
244
|
const ctor = this.__ctor;
|
|
246
|
-
if (
|
|
245
|
+
if ((0, import_utils2.isArray)(ctor.config.emits)) {
|
|
247
246
|
ctor.config.emits.push(event);
|
|
248
247
|
} else {
|
|
249
248
|
ctor.config.emits = [event];
|
|
@@ -258,44 +257,37 @@ var Base = class extends EventTarget {
|
|
|
258
257
|
return this.constructor;
|
|
259
258
|
}
|
|
260
259
|
$on(event, listener, options) {
|
|
261
|
-
if (isDev) {
|
|
260
|
+
if (import_utils2.isDev) {
|
|
262
261
|
this.__debug("$on", event, listener, options);
|
|
263
262
|
}
|
|
264
|
-
if (isDev) {
|
|
265
|
-
this.__testEventIsDefined(event);
|
|
266
|
-
}
|
|
267
263
|
let set = this.__eventHandlers.get(event);
|
|
268
264
|
if (!set) {
|
|
269
265
|
set = /* @__PURE__ */ new Set();
|
|
270
266
|
this.__eventHandlers.set(event, set);
|
|
271
267
|
}
|
|
272
268
|
set.add(listener);
|
|
273
|
-
|
|
269
|
+
const target = (0, import_utils.getEventTarget)(this, event, this.__config);
|
|
270
|
+
target.addEventListener(event, listener, options);
|
|
274
271
|
return () => {
|
|
275
272
|
this.$off(event, listener, options);
|
|
276
273
|
};
|
|
277
274
|
}
|
|
278
275
|
$off(event, listener, options) {
|
|
279
|
-
if (isDev) {
|
|
276
|
+
if (import_utils2.isDev) {
|
|
280
277
|
this.__debug("$off", event, listener);
|
|
281
278
|
}
|
|
282
|
-
if (isDev) {
|
|
283
|
-
this.__testEventIsDefined(event);
|
|
284
|
-
}
|
|
285
279
|
this.__eventHandlers.get(event).delete(listener);
|
|
286
|
-
|
|
280
|
+
const target = (0, import_utils.getEventTarget)(this, event, this.__config);
|
|
281
|
+
target.removeEventListener(event, listener, options);
|
|
287
282
|
}
|
|
288
283
|
$emit(event, ...args) {
|
|
289
|
-
if (isDev) {
|
|
284
|
+
if (import_utils2.isDev) {
|
|
290
285
|
this.__debug("$emit", event, args);
|
|
291
286
|
}
|
|
292
|
-
if (isDev) {
|
|
293
|
-
this.__testEventIsDefined(event);
|
|
294
|
-
}
|
|
295
287
|
this.dispatchEvent(new CustomEvent(event, { detail: args }));
|
|
296
288
|
}
|
|
297
289
|
static $factory(nameOrSelector) {
|
|
298
|
-
if (!nameOrSelector) {
|
|
290
|
+
if (import_utils2.isDev && !nameOrSelector) {
|
|
299
291
|
throw new Error("The $factory method requires a component\u2019s name or selector to be specified.");
|
|
300
292
|
}
|
|
301
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,16 +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, isDev, isFunction, isArray } from "../utils/index.js";
|
|
13
14
|
let id = 0;
|
|
14
|
-
const isDev = typeof __DEV__ !== "undefined" && __DEV__;
|
|
15
|
-
function noop() {
|
|
16
|
-
}
|
|
17
15
|
function createAndTestManagers(instance) {
|
|
18
16
|
[
|
|
19
17
|
{
|
|
@@ -43,7 +41,7 @@ function createAndTestManagers(instance) {
|
|
|
43
41
|
}
|
|
44
42
|
].forEach(({ prop, constructorName, constructor }) => {
|
|
45
43
|
instance[prop] = new instance.__managers[constructorName](instance);
|
|
46
|
-
if (!(instance[prop] instanceof constructor)) {
|
|
44
|
+
if (isDev && !(instance[prop] instanceof constructor)) {
|
|
47
45
|
throw new Error(`The \`$managers.${constructorName}\` must extend the \`${constructorName}\` class.`);
|
|
48
46
|
}
|
|
49
47
|
});
|
|
@@ -62,11 +60,17 @@ class Base extends EventTarget {
|
|
|
62
60
|
__publicField(this, "__children");
|
|
63
61
|
__publicField(this, "__events");
|
|
64
62
|
if (!element) {
|
|
65
|
-
|
|
63
|
+
if (isDev) {
|
|
64
|
+
throw new Error("The root element must be defined.");
|
|
65
|
+
}
|
|
66
|
+
return;
|
|
66
67
|
}
|
|
67
68
|
const { __config } = this;
|
|
68
69
|
if (__config.name === "Base") {
|
|
69
|
-
|
|
70
|
+
if (isDev) {
|
|
71
|
+
throw new Error("The `config.name` property is required.");
|
|
72
|
+
}
|
|
73
|
+
return;
|
|
70
74
|
}
|
|
71
75
|
this.$id = `${__config.name}-${id}`;
|
|
72
76
|
id += 1;
|
|
@@ -145,7 +149,7 @@ class Base extends EventTarget {
|
|
|
145
149
|
this.__debug("callMethod", method, ...args);
|
|
146
150
|
}
|
|
147
151
|
this.$emit(method, ...args);
|
|
148
|
-
if (
|
|
152
|
+
if (!isFunction(this[method])) {
|
|
149
153
|
return null;
|
|
150
154
|
}
|
|
151
155
|
if (isDev) {
|
|
@@ -210,14 +214,9 @@ class Base extends EventTarget {
|
|
|
210
214
|
this.__callMethod("terminated");
|
|
211
215
|
this.$el.__base__.set(this.__ctor, "terminated");
|
|
212
216
|
}
|
|
213
|
-
__testEventIsDefined(event) {
|
|
214
|
-
if (!(Array.isArray(this.__config.emits) && this.__config.emits.includes(event))) {
|
|
215
|
-
console.warn(`[${this.__config.name}]`, `The "${event}" event is missing from the configuration.`);
|
|
216
|
-
}
|
|
217
|
-
}
|
|
218
217
|
__addEmits(event) {
|
|
219
218
|
const ctor = this.__ctor;
|
|
220
|
-
if (
|
|
219
|
+
if (isArray(ctor.config.emits)) {
|
|
221
220
|
ctor.config.emits.push(event);
|
|
222
221
|
} else {
|
|
223
222
|
ctor.config.emits = [event];
|
|
@@ -235,16 +234,14 @@ class Base extends EventTarget {
|
|
|
235
234
|
if (isDev) {
|
|
236
235
|
this.__debug("$on", event, listener, options);
|
|
237
236
|
}
|
|
238
|
-
if (isDev) {
|
|
239
|
-
this.__testEventIsDefined(event);
|
|
240
|
-
}
|
|
241
237
|
let set = this.__eventHandlers.get(event);
|
|
242
238
|
if (!set) {
|
|
243
239
|
set = /* @__PURE__ */ new Set();
|
|
244
240
|
this.__eventHandlers.set(event, set);
|
|
245
241
|
}
|
|
246
242
|
set.add(listener);
|
|
247
|
-
this
|
|
243
|
+
const target = getEventTarget(this, event, this.__config);
|
|
244
|
+
target.addEventListener(event, listener, options);
|
|
248
245
|
return () => {
|
|
249
246
|
this.$off(event, listener, options);
|
|
250
247
|
};
|
|
@@ -253,23 +250,18 @@ class Base extends EventTarget {
|
|
|
253
250
|
if (isDev) {
|
|
254
251
|
this.__debug("$off", event, listener);
|
|
255
252
|
}
|
|
256
|
-
if (isDev) {
|
|
257
|
-
this.__testEventIsDefined(event);
|
|
258
|
-
}
|
|
259
253
|
this.__eventHandlers.get(event).delete(listener);
|
|
260
|
-
this
|
|
254
|
+
const target = getEventTarget(this, event, this.__config);
|
|
255
|
+
target.removeEventListener(event, listener, options);
|
|
261
256
|
}
|
|
262
257
|
$emit(event, ...args) {
|
|
263
258
|
if (isDev) {
|
|
264
259
|
this.__debug("$emit", event, args);
|
|
265
260
|
}
|
|
266
|
-
if (isDev) {
|
|
267
|
-
this.__testEventIsDefined(event);
|
|
268
|
-
}
|
|
269
261
|
this.dispatchEvent(new CustomEvent(event, { detail: args }));
|
|
270
262
|
}
|
|
271
263
|
static $factory(nameOrSelector) {
|
|
272
|
-
if (!nameOrSelector) {
|
|
264
|
+
if (isDev && !nameOrSelector) {
|
|
273
265
|
throw new Error("The $factory method requires a component\u2019s name or selector to be specified.");
|
|
274
266
|
}
|
|
275
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 {
|