@studiometa/js-toolkit 2.0.0-beta.10 → 2.0.0-beta.14
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 +295 -0
- package/Base/index.js +88 -174
- package/Base/managers/ChildrenManager.cjs +125 -0
- package/Base/managers/ChildrenManager.js +29 -55
- package/Base/managers/EventsManager.cjs +185 -0
- package/Base/managers/EventsManager.js +84 -130
- package/Base/managers/OptionsManager.cjs +176 -0
- package/Base/managers/OptionsManager.js +46 -88
- package/Base/managers/RefsManager.cjs +99 -0
- package/Base/managers/RefsManager.js +22 -38
- package/Base/managers/ServicesManager.cjs +133 -0
- package/Base/managers/ServicesManager.js +31 -65
- package/Base/utils.cjs +46 -0
- package/Base/utils.js +12 -11
- package/decorators/index.cjs +50 -0
- package/decorators/index.js +18 -8
- package/decorators/withBreakpointManager.cjs +92 -0
- package/decorators/withBreakpointManager.js +18 -39
- package/decorators/withBreakpointObserver.cjs +117 -0
- package/decorators/withBreakpointObserver.js +40 -88
- package/decorators/withDrag.cjs +55 -0
- package/decorators/withDrag.js +18 -26
- package/decorators/withExtraConfig.cjs +45 -0
- package/decorators/withExtraConfig.js +11 -12
- package/decorators/withIntersectionObserver.cjs +62 -0
- package/decorators/withIntersectionObserver.js +23 -32
- package/decorators/withMountWhenInView.cjs +69 -0
- package/decorators/withMountWhenInView.js +26 -53
- package/decorators/withScrolledInView.cjs +113 -0
- package/decorators/withScrolledInView.js +50 -63
- package/decorators/withVue2.cjs +61 -0
- package/decorators/withVue2.js +21 -32
- package/helpers/createApp.cjs +57 -0
- package/helpers/createApp.js +12 -12
- package/helpers/importOnInteraction.cjs +57 -0
- package/helpers/importOnInteraction.js +17 -18
- package/helpers/importWhenIdle.cjs +53 -0
- package/helpers/importWhenIdle.js +13 -17
- package/helpers/importWhenVisible.cjs +55 -0
- package/helpers/importWhenVisible.js +16 -18
- package/helpers/index.cjs +42 -0
- package/helpers/index.js +10 -4
- package/helpers/utils.cjs +40 -0
- package/helpers/utils.js +7 -6
- package/index.cjs +39 -0
- package/index.js +7 -4
- package/package.json +14 -3
- package/services/Service.cjs +76 -0
- package/services/Service.js +13 -32
- package/services/drag.cjs +195 -0
- package/services/drag.js +60 -90
- package/services/index.cjs +48 -0
- package/services/index.js +16 -7
- package/services/key.cjs +102 -0
- package/services/key.js +34 -52
- package/services/load.cjs +71 -0
- package/services/load.js +13 -24
- package/services/pointer.cjs +160 -0
- package/services/pointer.js +60 -87
- package/services/raf.cjs +82 -0
- package/services/raf.js +16 -33
- package/services/resize.cjs +107 -0
- package/services/resize.js +31 -49
- package/services/scroll.cjs +130 -0
- package/services/scroll.js +44 -62
- package/utils/collide/boundingRectToCircle.cjs +39 -0
- package/utils/collide/boundingRectToCircle.d.ts +1 -1
- package/utils/collide/boundingRectToCircle.js +7 -10
- package/utils/collide/collideCircleCircle.cjs +39 -0
- package/utils/collide/collideCircleCircle.js +8 -7
- package/utils/collide/collideCircleRect.cjs +51 -0
- package/utils/collide/collideCircleRect.js +10 -12
- package/utils/collide/collidePointCircle.cjs +36 -0
- package/utils/collide/collidePointCircle.js +8 -5
- package/utils/collide/collidePointRect.cjs +33 -0
- package/utils/collide/collidePointRect.js +5 -2
- package/utils/collide/collideRectRect.cjs +33 -0
- package/utils/collide/collideRectRect.js +5 -2
- package/utils/collide/index.cjs +46 -0
- package/utils/collide/index.js +14 -6
- package/utils/css/classes.cjs +49 -0
- package/utils/css/classes.js +13 -12
- package/utils/css/index.cjs +42 -0
- package/utils/css/index.js +10 -6
- package/utils/css/matrix.cjs +34 -0
- package/utils/css/matrix.js +6 -5
- package/utils/css/styles.cjs +52 -0
- package/utils/css/styles.js +13 -12
- package/utils/css/transition.cjs +122 -0
- package/utils/css/transition.js +62 -117
- package/utils/debounce.cjs +39 -0
- package/utils/debounce.js +7 -9
- package/utils/focusTrap.cjs +89 -0
- package/utils/focusTrap.js +30 -21
- package/utils/history.cjs +96 -0
- package/utils/history.js +28 -57
- package/utils/index.cjs +58 -0
- package/utils/index.d.ts +1 -0
- package/utils/index.js +30 -11
- package/utils/keyCodes.cjs +40 -0
- package/utils/keyCodes.js +5 -2
- package/utils/math/clamp.cjs +33 -0
- package/utils/math/clamp.js +5 -2
- package/utils/math/clamp01.cjs +39 -0
- package/utils/math/clamp01.js +6 -3
- package/utils/math/damp.cjs +33 -0
- package/utils/math/damp.js +5 -4
- package/utils/math/ease.cjs +93 -0
- package/utils/math/ease.js +50 -25
- package/utils/math/index.cjs +49 -0
- package/utils/math/index.js +17 -8
- package/utils/math/inertiaFinalValue.cjs +42 -0
- package/utils/math/inertiaFinalValue.js +8 -10
- package/utils/math/lerp.cjs +33 -0
- package/utils/math/lerp.js +5 -2
- package/utils/math/map.cjs +33 -0
- package/utils/math/map.js +5 -2
- package/utils/math/round.cjs +33 -0
- package/utils/math/round.js +5 -3
- package/utils/memoize.cjs +48 -0
- package/utils/memoize.js +10 -19
- package/utils/nextFrame.cjs +45 -0
- package/utils/nextFrame.js +14 -9
- package/utils/object/autoBind.cjs +56 -0
- package/utils/object/autoBind.js +12 -22
- package/utils/object/getAllProperties.cjs +42 -0
- package/utils/object/getAllProperties.js +10 -13
- package/utils/object/index.cjs +40 -0
- package/utils/object/index.js +8 -3
- package/utils/object/isObject.cjs +33 -0
- package/utils/object/isObject.js +6 -3
- package/utils/scrollTo.cjs +87 -0
- package/utils/scrollTo.js +20 -40
- package/utils/string/index.cjs +54 -0
- package/utils/string/index.js +22 -10
- package/utils/string/withLeadingCharacters.cjs +39 -0
- package/utils/string/withLeadingCharacters.js +7 -4
- package/utils/string/withLeadingSlash.cjs +39 -0
- package/utils/string/withLeadingSlash.js +7 -4
- package/utils/string/withTrailingCharacters.cjs +39 -0
- package/utils/string/withTrailingCharacters.js +7 -4
- package/utils/string/withTrailingSlash.cjs +39 -0
- package/utils/string/withTrailingSlash.js +7 -4
- package/utils/string/withoutLeadingCharacters.cjs +33 -0
- package/utils/string/withoutLeadingCharacters.js +6 -3
- package/utils/string/withoutLeadingCharactersRecursive.cjs +44 -0
- package/utils/string/withoutLeadingCharactersRecursive.js +8 -7
- package/utils/string/withoutLeadingSlash.cjs +39 -0
- package/utils/string/withoutLeadingSlash.js +7 -4
- package/utils/string/withoutTrailingCharacters.cjs +33 -0
- package/utils/string/withoutTrailingCharacters.js +6 -3
- package/utils/string/withoutTrailingCharactersRecursive.cjs +44 -0
- package/utils/string/withoutTrailingCharactersRecursive.js +8 -7
- package/utils/string/withoutTrailingSlash.cjs +39 -0
- package/utils/string/withoutTrailingSlash.js +7 -4
- package/utils/throttle.cjs +41 -0
- package/utils/throttle.js +9 -9
- package/index.modern.js +0 -1
- package/index.umd.js +0 -1
|
@@ -1,28 +1,20 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
import deepmerge from "deepmerge";
|
|
2
|
+
import isObject from "../../utils/object/isObject.js";
|
|
3
|
+
class OptionsManager {
|
|
4
|
+
__element;
|
|
5
|
+
__values = {};
|
|
6
|
+
static types = [String, Number, Boolean, Array, Object];
|
|
7
|
+
__defaultValues = {
|
|
8
|
+
String: "",
|
|
9
|
+
Number: 0,
|
|
10
|
+
Boolean: false,
|
|
11
|
+
Array: () => [],
|
|
12
|
+
Object: () => ({})
|
|
13
|
+
};
|
|
14
|
+
name = "Base";
|
|
15
|
+
debug = false;
|
|
16
|
+
log = false;
|
|
5
17
|
constructor(element, schema, baseConfig) {
|
|
6
|
-
var _baseConfig$debug, _baseConfig$log;
|
|
7
|
-
|
|
8
|
-
_defineProperty(this, "__element", void 0);
|
|
9
|
-
|
|
10
|
-
_defineProperty(this, "__values", {});
|
|
11
|
-
|
|
12
|
-
_defineProperty(this, "__defaultValues", {
|
|
13
|
-
String: '',
|
|
14
|
-
Number: 0,
|
|
15
|
-
Boolean: false,
|
|
16
|
-
Array: () => [],
|
|
17
|
-
Object: () => ({})
|
|
18
|
-
});
|
|
19
|
-
|
|
20
|
-
_defineProperty(this, "name", 'Base');
|
|
21
|
-
|
|
22
|
-
_defineProperty(this, "debug", false);
|
|
23
|
-
|
|
24
|
-
_defineProperty(this, "log", false);
|
|
25
|
-
|
|
26
18
|
Object.defineProperties(this, {
|
|
27
19
|
__element: {
|
|
28
20
|
enumerable: false,
|
|
@@ -43,138 +35,104 @@ export default class OptionsManager {
|
|
|
43
35
|
this.name = baseConfig.name;
|
|
44
36
|
schema.debug = {
|
|
45
37
|
type: Boolean,
|
|
46
|
-
default:
|
|
38
|
+
default: baseConfig.debug ?? false
|
|
47
39
|
};
|
|
48
40
|
schema.log = {
|
|
49
41
|
type: Boolean,
|
|
50
|
-
default:
|
|
42
|
+
default: baseConfig.log ?? false
|
|
51
43
|
};
|
|
52
|
-
Object.entries(schema).forEach(
|
|
53
|
-
var [name, config] = _ref;
|
|
54
|
-
|
|
44
|
+
Object.entries(schema).forEach(([name, config]) => {
|
|
55
45
|
this.__register(name, config);
|
|
56
46
|
});
|
|
57
47
|
return this;
|
|
58
48
|
}
|
|
59
|
-
|
|
60
49
|
__register(name, config) {
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
50
|
+
const hasDefaultValue = !OptionsManager.types.includes(config);
|
|
51
|
+
const type = hasDefaultValue ? config.type : config;
|
|
64
52
|
if (!OptionsManager.types.includes(type)) {
|
|
65
|
-
throw new Error(
|
|
53
|
+
throw new Error(`The "${name}" option has an invalid type. The allowed types are: String, Number, Boolean, Array and Object.`);
|
|
66
54
|
}
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
if ((type === Array || type === Object) && typeof defaultValue !== 'function') {
|
|
71
|
-
throw new Error("The default value for options of type \"".concat(type.name, "\" must be returned by a function."));
|
|
55
|
+
const defaultValue = hasDefaultValue ? config.default : this.__defaultValues[type.name];
|
|
56
|
+
if ((type === Array || type === Object) && typeof defaultValue !== "function") {
|
|
57
|
+
throw new Error(`The default value for options of type "${type.name}" must be returned by a function.`);
|
|
72
58
|
}
|
|
73
|
-
|
|
74
59
|
Object.defineProperty(this, name, {
|
|
75
60
|
get: () => {
|
|
76
61
|
return this.get(name, type, defaultValue);
|
|
77
62
|
},
|
|
78
|
-
set: value => {
|
|
63
|
+
set: (value) => {
|
|
79
64
|
this.set(name, type, value, defaultValue);
|
|
80
65
|
},
|
|
81
66
|
enumerable: true
|
|
82
67
|
});
|
|
83
68
|
}
|
|
84
|
-
|
|
85
69
|
get(name, type, defaultValue) {
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
var hasProperty = this.__hasProperty(propertyName);
|
|
89
|
-
|
|
70
|
+
const propertyName = OptionsManager.__getPropertyName(name);
|
|
71
|
+
const hasProperty = this.__hasProperty(propertyName);
|
|
90
72
|
if (type === Boolean) {
|
|
91
73
|
if (defaultValue) {
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
var hasNegatedProperty = this.__hasProperty(negatedPropertyName);
|
|
95
|
-
|
|
74
|
+
const negatedPropertyName = OptionsManager.__getPropertyName(name, "No");
|
|
75
|
+
const hasNegatedProperty = this.__hasProperty(negatedPropertyName);
|
|
96
76
|
return !hasNegatedProperty;
|
|
97
77
|
}
|
|
98
|
-
|
|
99
78
|
return hasProperty || defaultValue;
|
|
100
79
|
}
|
|
101
|
-
|
|
102
|
-
var value = this.__element.dataset[propertyName];
|
|
103
|
-
|
|
80
|
+
const value = this.__element.dataset[propertyName];
|
|
104
81
|
if (type === Number) {
|
|
105
82
|
return hasProperty ? Number(value) : defaultValue;
|
|
106
83
|
}
|
|
107
|
-
|
|
108
84
|
if (type === Array || type === Object) {
|
|
109
|
-
|
|
110
|
-
|
|
85
|
+
const val = deepmerge(defaultValue(), hasProperty ? JSON.parse(value) : this.__defaultValues[type.name]());
|
|
111
86
|
if (!this.__values[name]) {
|
|
112
87
|
this.__values[name] = val;
|
|
113
88
|
}
|
|
114
|
-
|
|
115
89
|
return this.__values[name];
|
|
116
90
|
}
|
|
117
|
-
|
|
118
91
|
return hasProperty ? value : defaultValue;
|
|
119
92
|
}
|
|
120
|
-
|
|
121
93
|
set(name, type, value, defaultValue) {
|
|
122
|
-
|
|
123
|
-
|
|
94
|
+
const propertyName = OptionsManager.__getPropertyName(name);
|
|
124
95
|
if (value.constructor.name !== type.name) {
|
|
125
|
-
|
|
126
|
-
throw new TypeError(
|
|
96
|
+
const val = Array.isArray(value) || isObject(value) ? JSON.stringify(value) : value;
|
|
97
|
+
throw new TypeError(`The "${val}" value for the "${name}" option must be of type "${type.name}"`);
|
|
127
98
|
}
|
|
128
|
-
|
|
129
99
|
switch (type) {
|
|
130
100
|
case Boolean:
|
|
131
101
|
if (defaultValue) {
|
|
132
|
-
|
|
133
|
-
|
|
102
|
+
const negatedPropertyName = OptionsManager.__getPropertyName(name, "No");
|
|
134
103
|
if (value) {
|
|
135
104
|
delete this.__element.dataset[negatedPropertyName];
|
|
136
105
|
} else {
|
|
137
|
-
this.__element.dataset[negatedPropertyName] =
|
|
106
|
+
this.__element.dataset[negatedPropertyName] = "";
|
|
138
107
|
}
|
|
139
108
|
} else if (value) {
|
|
140
|
-
this.__element.dataset[propertyName] =
|
|
109
|
+
this.__element.dataset[propertyName] = "";
|
|
141
110
|
} else {
|
|
142
111
|
delete this.__element.dataset[propertyName];
|
|
143
112
|
}
|
|
144
|
-
|
|
145
113
|
break;
|
|
146
|
-
|
|
147
114
|
case Array:
|
|
148
115
|
case Object:
|
|
149
116
|
this.__values[name] = value;
|
|
150
117
|
break;
|
|
151
|
-
|
|
152
118
|
default:
|
|
153
119
|
this.__element.dataset[propertyName] = value;
|
|
154
120
|
}
|
|
155
121
|
}
|
|
156
|
-
|
|
157
122
|
__hasProperty(prop) {
|
|
158
|
-
return typeof this.__element.dataset[prop] !==
|
|
123
|
+
return typeof this.__element.dataset[prop] !== "undefined";
|
|
159
124
|
}
|
|
160
|
-
|
|
161
|
-
static __getPropertyName(name) {
|
|
162
|
-
|
|
163
|
-
var key = name + prefix;
|
|
164
|
-
|
|
125
|
+
static __propertyNameCache = /* @__PURE__ */ new Map();
|
|
126
|
+
static __getPropertyName(name, prefix = "") {
|
|
127
|
+
const key = name + prefix;
|
|
165
128
|
if (OptionsManager.__propertyNameCache.has(key)) {
|
|
166
129
|
return OptionsManager.__propertyNameCache.get(key);
|
|
167
130
|
}
|
|
168
|
-
|
|
169
|
-
var propertyName = "option".concat(prefix).concat(name.replace(/^\w/, c => c.toUpperCase()));
|
|
170
|
-
|
|
131
|
+
const propertyName = `option${prefix}${name.replace(/^\w/, (c) => c.toUpperCase())}`;
|
|
171
132
|
OptionsManager.__propertyNameCache.set(key, propertyName);
|
|
172
|
-
|
|
173
133
|
return propertyName;
|
|
174
134
|
}
|
|
175
|
-
|
|
176
135
|
}
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
_defineProperty(OptionsManager, "__propertyNameCache", new Map());
|
|
136
|
+
export {
|
|
137
|
+
OptionsManager as default
|
|
138
|
+
};
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __reExport = (target, module2, copyDefault, desc) => {
|
|
11
|
+
if (module2 && typeof module2 === "object" || typeof module2 === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(module2))
|
|
13
|
+
if (!__hasOwnProp.call(target, key) && (copyDefault || key !== "default"))
|
|
14
|
+
__defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return target;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = /* @__PURE__ */ ((cache) => {
|
|
19
|
+
return (module2, temp) => {
|
|
20
|
+
return cache && cache.get(module2) || (temp = __reExport(__markAsModule({}), module2, 1), cache && cache.set(module2, temp), temp);
|
|
21
|
+
};
|
|
22
|
+
})(typeof WeakMap !== "undefined" ? /* @__PURE__ */ new WeakMap() : 0);
|
|
23
|
+
|
|
24
|
+
// packages/js-toolkit/Base/managers/RefsManager.js
|
|
25
|
+
var RefsManager_exports = {};
|
|
26
|
+
__export(RefsManager_exports, {
|
|
27
|
+
default: () => RefsManager
|
|
28
|
+
});
|
|
29
|
+
var RefsManager = class {
|
|
30
|
+
__element;
|
|
31
|
+
__refs;
|
|
32
|
+
__base;
|
|
33
|
+
__eventsManager;
|
|
34
|
+
constructor(base, element, refs, eventsManager) {
|
|
35
|
+
Object.defineProperties(this, {
|
|
36
|
+
__element: {
|
|
37
|
+
enumerable: false,
|
|
38
|
+
writable: false,
|
|
39
|
+
value: element
|
|
40
|
+
},
|
|
41
|
+
__refs: {
|
|
42
|
+
enumerable: false,
|
|
43
|
+
writable: false,
|
|
44
|
+
value: refs
|
|
45
|
+
},
|
|
46
|
+
__base: {
|
|
47
|
+
enumerable: false,
|
|
48
|
+
writable: false,
|
|
49
|
+
value: base
|
|
50
|
+
},
|
|
51
|
+
__eventsManager: {
|
|
52
|
+
enumerable: false,
|
|
53
|
+
writable: false,
|
|
54
|
+
value: eventsManager
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
registerAll() {
|
|
59
|
+
this.__refs.forEach((refName) => this.__register(refName));
|
|
60
|
+
}
|
|
61
|
+
unregisterAll() {
|
|
62
|
+
this.__refs.forEach((refName) => this.__unregister(refName));
|
|
63
|
+
}
|
|
64
|
+
__register(refName) {
|
|
65
|
+
const isMultiple = refName.endsWith("[]");
|
|
66
|
+
const propName = RefsManager.normalizeRefName(refName);
|
|
67
|
+
const refs = Array.from(this.__element.querySelectorAll(`[data-ref="${refName}"]`)).filter((ref) => this.__filterRefsBelongingToInstance(ref));
|
|
68
|
+
if (!isMultiple && refs.length > 1) {
|
|
69
|
+
console.warn(`[${this.__base.$options.name}]`, `The "${refName}" ref has been found multiple times.`, "Did you forgot to add the `[]` suffix to its name?");
|
|
70
|
+
}
|
|
71
|
+
if (!isMultiple && refs.length <= 1 && refs[0] === void 0) {
|
|
72
|
+
console.warn(`[${this.__base.$options.name}]`, `The "${refName}" ref is missing.`, `Is there an \`[data-ref="${refName}"]\` element in the component's scope?`);
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
this.__eventsManager.bindRef(refName, refs);
|
|
76
|
+
Object.defineProperty(this, propName, {
|
|
77
|
+
value: isMultiple || refs.length > 1 ? refs : refs[0],
|
|
78
|
+
enumerable: true,
|
|
79
|
+
configurable: true
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
__unregister(refName) {
|
|
83
|
+
const propName = RefsManager.normalizeRefName(refName);
|
|
84
|
+
const refs = Array.isArray(this[propName]) ? this[propName] : [this[propName]];
|
|
85
|
+
this.__eventsManager.unbindRef(refName, refs);
|
|
86
|
+
}
|
|
87
|
+
static normalizeRefName(name) {
|
|
88
|
+
return name.endsWith("[]") ? name.replace(/\[\]$/, "") : name;
|
|
89
|
+
}
|
|
90
|
+
__filterRefsBelongingToInstance(ref) {
|
|
91
|
+
let ancestor = ref.parentElement;
|
|
92
|
+
while (ancestor && ancestor.dataset.component === void 0) {
|
|
93
|
+
ancestor = ancestor.parentElement;
|
|
94
|
+
}
|
|
95
|
+
return ancestor === null || ancestor === this.__element;
|
|
96
|
+
}
|
|
97
|
+
};
|
|
98
|
+
module.exports = __toCommonJS(RefsManager_exports);
|
|
99
|
+
if (module.exports.default) module.exports = module.exports.default;
|
|
@@ -1,14 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
class RefsManager {
|
|
2
|
+
__element;
|
|
3
|
+
__refs;
|
|
4
|
+
__base;
|
|
5
|
+
__eventsManager;
|
|
3
6
|
constructor(base, element, refs, eventsManager) {
|
|
4
|
-
_defineProperty(this, "__element", void 0);
|
|
5
|
-
|
|
6
|
-
_defineProperty(this, "__refs", void 0);
|
|
7
|
-
|
|
8
|
-
_defineProperty(this, "__base", void 0);
|
|
9
|
-
|
|
10
|
-
_defineProperty(this, "__eventsManager", void 0);
|
|
11
|
-
|
|
12
7
|
Object.defineProperties(this, {
|
|
13
8
|
__element: {
|
|
14
9
|
enumerable: false,
|
|
@@ -32,57 +27,46 @@ export default class RefsManager {
|
|
|
32
27
|
}
|
|
33
28
|
});
|
|
34
29
|
}
|
|
35
|
-
|
|
36
30
|
registerAll() {
|
|
37
|
-
this.__refs.forEach(refName => this.__register(refName));
|
|
31
|
+
this.__refs.forEach((refName) => this.__register(refName));
|
|
38
32
|
}
|
|
39
|
-
|
|
40
33
|
unregisterAll() {
|
|
41
|
-
this.__refs.forEach(refName => this.__unregister(refName));
|
|
34
|
+
this.__refs.forEach((refName) => this.__unregister(refName));
|
|
42
35
|
}
|
|
43
|
-
|
|
44
36
|
__register(refName) {
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
37
|
+
const isMultiple = refName.endsWith("[]");
|
|
38
|
+
const propName = RefsManager.normalizeRefName(refName);
|
|
39
|
+
const refs = Array.from(this.__element.querySelectorAll(`[data-ref="${refName}"]`)).filter((ref) => this.__filterRefsBelongingToInstance(ref));
|
|
49
40
|
if (!isMultiple && refs.length > 1) {
|
|
50
|
-
console.warn(
|
|
41
|
+
console.warn(`[${this.__base.$options.name}]`, `The "${refName}" ref has been found multiple times.`, "Did you forgot to add the `[]` suffix to its name?");
|
|
51
42
|
}
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
console.warn("[".concat(this.__base.$options.name, "]"), "The \"".concat(refName, "\" ref is missing."), "Is there an `[data-ref=\"".concat(refName, "\"]` element in the component's scope?"));
|
|
43
|
+
if (!isMultiple && refs.length <= 1 && refs[0] === void 0) {
|
|
44
|
+
console.warn(`[${this.__base.$options.name}]`, `The "${refName}" ref is missing.`, `Is there an \`[data-ref="${refName}"]\` element in the component's scope?`);
|
|
55
45
|
return;
|
|
56
46
|
}
|
|
57
|
-
|
|
58
47
|
this.__eventsManager.bindRef(refName, refs);
|
|
59
|
-
|
|
60
48
|
Object.defineProperty(this, propName, {
|
|
61
49
|
value: isMultiple || refs.length > 1 ? refs : refs[0],
|
|
62
50
|
enumerable: true,
|
|
63
51
|
configurable: true
|
|
64
52
|
});
|
|
65
53
|
}
|
|
66
|
-
|
|
67
54
|
__unregister(refName) {
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
55
|
+
const propName = RefsManager.normalizeRefName(refName);
|
|
56
|
+
const refs = Array.isArray(this[propName]) ? this[propName] : [this[propName]];
|
|
71
57
|
this.__eventsManager.unbindRef(refName, refs);
|
|
72
58
|
}
|
|
73
|
-
|
|
74
59
|
static normalizeRefName(name) {
|
|
75
|
-
return name.endsWith(
|
|
60
|
+
return name.endsWith("[]") ? name.replace(/\[\]$/, "") : name;
|
|
76
61
|
}
|
|
77
|
-
|
|
78
62
|
__filterRefsBelongingToInstance(ref) {
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
while (ancestor && ancestor.dataset.component === undefined) {
|
|
63
|
+
let ancestor = ref.parentElement;
|
|
64
|
+
while (ancestor && ancestor.dataset.component === void 0) {
|
|
82
65
|
ancestor = ancestor.parentElement;
|
|
83
66
|
}
|
|
84
|
-
|
|
85
67
|
return ancestor === null || ancestor === this.__element;
|
|
86
68
|
}
|
|
87
|
-
|
|
88
|
-
|
|
69
|
+
}
|
|
70
|
+
export {
|
|
71
|
+
RefsManager as default
|
|
72
|
+
};
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __reExport = (target, module2, copyDefault, desc) => {
|
|
13
|
+
if (module2 && typeof module2 === "object" || typeof module2 === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(module2))
|
|
15
|
+
if (!__hasOwnProp.call(target, key) && (copyDefault || key !== "default"))
|
|
16
|
+
__defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return target;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (module2, isNodeMode) => {
|
|
21
|
+
return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", !isNodeMode && module2 && module2.__esModule ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2);
|
|
22
|
+
};
|
|
23
|
+
var __toCommonJS = /* @__PURE__ */ ((cache) => {
|
|
24
|
+
return (module2, temp) => {
|
|
25
|
+
return cache && cache.get(module2) || (temp = __reExport(__markAsModule({}), module2, 1), cache && cache.set(module2, temp), temp);
|
|
26
|
+
};
|
|
27
|
+
})(typeof WeakMap !== "undefined" ? /* @__PURE__ */ new WeakMap() : 0);
|
|
28
|
+
|
|
29
|
+
// packages/js-toolkit/Base/managers/ServicesManager.js
|
|
30
|
+
var ServicesManager_exports = {};
|
|
31
|
+
__export(ServicesManager_exports, {
|
|
32
|
+
default: () => ServicesManager
|
|
33
|
+
});
|
|
34
|
+
var import_pointer = __toESM(require("../../services/pointer.cjs"), 1);
|
|
35
|
+
var import_raf = __toESM(require("../../services/raf.cjs"), 1);
|
|
36
|
+
var import_resize = __toESM(require("../../services/resize.cjs"), 1);
|
|
37
|
+
var import_scroll = __toESM(require("../../services/scroll.cjs"), 1);
|
|
38
|
+
var import_key = __toESM(require("../../services/key.cjs"), 1);
|
|
39
|
+
var import_load = __toESM(require("../../services/load.cjs"), 1);
|
|
40
|
+
var import_utils = require("../utils.cjs");
|
|
41
|
+
var SERVICES_MAP = {
|
|
42
|
+
scrolled: import_scroll.default,
|
|
43
|
+
resized: import_resize.default,
|
|
44
|
+
ticked: import_raf.default,
|
|
45
|
+
moved: import_pointer.default,
|
|
46
|
+
keyed: import_key.default,
|
|
47
|
+
loaded: import_load.default
|
|
48
|
+
};
|
|
49
|
+
var SERVICE_NAMES = Object.keys(SERVICES_MAP);
|
|
50
|
+
var ServicesManager = class {
|
|
51
|
+
__base;
|
|
52
|
+
__customServices = {};
|
|
53
|
+
get __services() {
|
|
54
|
+
return {
|
|
55
|
+
...this.__customServices,
|
|
56
|
+
...SERVICES_MAP
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
constructor(instance) {
|
|
60
|
+
Object.defineProperties(this, {
|
|
61
|
+
__base: {
|
|
62
|
+
enumerable: false,
|
|
63
|
+
writable: false,
|
|
64
|
+
value: instance
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
has(service) {
|
|
69
|
+
if (!(((0, import_utils.hasMethod)(this.__base, service) || this.__base.__hasEvent(service)) && this.__services[service])) {
|
|
70
|
+
return false;
|
|
71
|
+
}
|
|
72
|
+
const { has } = this.__services[service]();
|
|
73
|
+
return has(this.__base.$id);
|
|
74
|
+
}
|
|
75
|
+
enable(service) {
|
|
76
|
+
if (this.has(service)) {
|
|
77
|
+
return this.disable.bind(this, service);
|
|
78
|
+
}
|
|
79
|
+
if (!((0, import_utils.hasMethod)(this.__base, service) || this.__base.__hasEvent(service)) || !this.__services[service]) {
|
|
80
|
+
return function noop() {
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
const { add } = this.__services[service]();
|
|
84
|
+
const self = this;
|
|
85
|
+
function serviceHandler(...args) {
|
|
86
|
+
self.__base.__callMethod(service, ...args);
|
|
87
|
+
}
|
|
88
|
+
add(this.__base.$id, serviceHandler);
|
|
89
|
+
return this.disable.bind(this, service);
|
|
90
|
+
}
|
|
91
|
+
enableAll() {
|
|
92
|
+
return Object.keys(this.__services).map((serviceName) => this.enable(serviceName));
|
|
93
|
+
}
|
|
94
|
+
disableAll() {
|
|
95
|
+
Object.keys(this.__services).forEach((serviceName) => {
|
|
96
|
+
this.disable(serviceName);
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
disable(service) {
|
|
100
|
+
if (!this.__services[service]) {
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
103
|
+
const { remove } = this.__services[service]();
|
|
104
|
+
remove(this.__base.$id);
|
|
105
|
+
}
|
|
106
|
+
toggle(service, force) {
|
|
107
|
+
if (typeof force !== "undefined") {
|
|
108
|
+
if (force && !this.has(service)) {
|
|
109
|
+
this.enable(service);
|
|
110
|
+
}
|
|
111
|
+
if (!force && this.has(service)) {
|
|
112
|
+
this.disable(service);
|
|
113
|
+
}
|
|
114
|
+
} else if (this.has(service)) {
|
|
115
|
+
this.disable(service);
|
|
116
|
+
} else {
|
|
117
|
+
this.enable(service);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
register(name, useFunction) {
|
|
121
|
+
this.__customServices[name] = useFunction;
|
|
122
|
+
this.__base.__addEmits(name);
|
|
123
|
+
}
|
|
124
|
+
unregister(name) {
|
|
125
|
+
if (SERVICE_NAMES.includes(name)) {
|
|
126
|
+
throw new Error(`[ServicesManager] The \`${name}\` core service can not be unregistered.`);
|
|
127
|
+
}
|
|
128
|
+
this.__base.__removeEmits(name);
|
|
129
|
+
delete this.__customServices[name];
|
|
130
|
+
}
|
|
131
|
+
};
|
|
132
|
+
module.exports = __toCommonJS(ServicesManager_exports);
|
|
133
|
+
if (module.exports.default) module.exports = module.exports.default;
|