@studiometa/js-toolkit 2.0.0-beta.11 → 2.0.0-beta.15
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 +114 -194
- package/Base/managers/ChildrenManager.cjs +131 -0
- package/Base/managers/ChildrenManager.js +38 -57
- package/Base/managers/EventsManager.cjs +190 -0
- package/Base/managers/EventsManager.js +72 -112
- package/Base/managers/OptionsManager.cjs +177 -0
- package/Base/managers/OptionsManager.js +54 -88
- package/Base/managers/RefsManager.cjs +104 -0
- package/Base/managers/RefsManager.js +28 -38
- package/Base/managers/ServicesManager.cjs +138 -0
- package/Base/managers/ServicesManager.js +39 -67
- 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 +122 -0
- package/decorators/withBreakpointObserver.js +44 -86
- package/decorators/withDrag.cjs +60 -0
- package/decorators/withDrag.js +24 -26
- package/decorators/withExtraConfig.cjs +50 -0
- package/decorators/withExtraConfig.js +17 -12
- package/decorators/withIntersectionObserver.cjs +67 -0
- package/decorators/withIntersectionObserver.js +29 -32
- package/decorators/withMountWhenInView.cjs +74 -0
- package/decorators/withMountWhenInView.js +31 -52
- package/decorators/withScrolledInView.cjs +121 -0
- package/decorators/withScrolledInView.js +35 -39
- package/decorators/withVue2.cjs +65 -0
- package/decorators/withVue2.js +26 -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 +54 -0
- package/helpers/importWhenIdle.js +14 -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 -4
- package/services/Service.cjs +81 -0
- package/services/Service.js +19 -32
- package/services/drag.cjs +200 -0
- package/services/drag.js +42 -66
- package/services/index.cjs +48 -0
- package/services/index.js +16 -7
- package/services/key.cjs +111 -0
- package/services/key.js +28 -36
- package/services/load.cjs +79 -0
- package/services/load.js +17 -19
- package/services/pointer.cjs +169 -0
- package/services/pointer.js +43 -60
- package/services/raf.cjs +90 -0
- package/services/raf.js +20 -28
- package/services/resize.cjs +115 -0
- package/services/resize.js +33 -42
- package/services/scroll.cjs +138 -0
- package/services/scroll.js +26 -35
- 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 +35 -0
- package/utils/css/matrix.js +7 -5
- package/utils/css/styles.cjs +52 -0
- package/utils/css/styles.js +13 -12
- package/utils/css/transition.cjs +127 -0
- package/utils/css/transition.js +68 -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
|
@@ -0,0 +1,177 @@
|
|
|
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 __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
8
|
+
var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
|
|
9
|
+
var __export = (target, all) => {
|
|
10
|
+
for (var name in all)
|
|
11
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
12
|
+
};
|
|
13
|
+
var __reExport = (target, module2, copyDefault, desc) => {
|
|
14
|
+
if (module2 && typeof module2 === "object" || typeof module2 === "function") {
|
|
15
|
+
for (let key of __getOwnPropNames(module2))
|
|
16
|
+
if (!__hasOwnProp.call(target, key) && (copyDefault || key !== "default"))
|
|
17
|
+
__defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
|
|
18
|
+
}
|
|
19
|
+
return target;
|
|
20
|
+
};
|
|
21
|
+
var __toESM = (module2, isNodeMode) => {
|
|
22
|
+
return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", !isNodeMode && module2 && module2.__esModule ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2);
|
|
23
|
+
};
|
|
24
|
+
var __toCommonJS = /* @__PURE__ */ ((cache) => {
|
|
25
|
+
return (module2, temp) => {
|
|
26
|
+
return cache && cache.get(module2) || (temp = __reExport(__markAsModule({}), module2, 1), cache && cache.set(module2, temp), temp);
|
|
27
|
+
};
|
|
28
|
+
})(typeof WeakMap !== "undefined" ? /* @__PURE__ */ new WeakMap() : 0);
|
|
29
|
+
var __publicField = (obj, key, value) => {
|
|
30
|
+
__defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
31
|
+
return value;
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
// packages/js-toolkit/Base/managers/OptionsManager.js
|
|
35
|
+
var OptionsManager_exports = {};
|
|
36
|
+
__export(OptionsManager_exports, {
|
|
37
|
+
default: () => OptionsManager
|
|
38
|
+
});
|
|
39
|
+
var import_deepmerge = __toESM(require("deepmerge"), 1);
|
|
40
|
+
var import_isObject = __toESM(require("../../utils/object/isObject.cjs"), 1);
|
|
41
|
+
var _OptionsManager = class {
|
|
42
|
+
constructor(element, schema, baseConfig) {
|
|
43
|
+
__publicField(this, "__element");
|
|
44
|
+
__publicField(this, "__values", {});
|
|
45
|
+
__publicField(this, "__defaultValues", {
|
|
46
|
+
String: "",
|
|
47
|
+
Number: 0,
|
|
48
|
+
Boolean: false,
|
|
49
|
+
Array: () => [],
|
|
50
|
+
Object: () => ({})
|
|
51
|
+
});
|
|
52
|
+
__publicField(this, "name", "Base");
|
|
53
|
+
__publicField(this, "debug", false);
|
|
54
|
+
__publicField(this, "log", false);
|
|
55
|
+
var _a, _b;
|
|
56
|
+
Object.defineProperties(this, {
|
|
57
|
+
__element: {
|
|
58
|
+
enumerable: false,
|
|
59
|
+
writable: false,
|
|
60
|
+
value: element
|
|
61
|
+
},
|
|
62
|
+
__values: {
|
|
63
|
+
enumerable: false,
|
|
64
|
+
writable: false,
|
|
65
|
+
value: this.__values
|
|
66
|
+
},
|
|
67
|
+
__defaultValues: {
|
|
68
|
+
enumerable: false,
|
|
69
|
+
writable: false,
|
|
70
|
+
value: this.__defaultValues
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
this.name = baseConfig.name;
|
|
74
|
+
schema.debug = {
|
|
75
|
+
type: Boolean,
|
|
76
|
+
default: (_a = baseConfig.debug) != null ? _a : false
|
|
77
|
+
};
|
|
78
|
+
schema.log = {
|
|
79
|
+
type: Boolean,
|
|
80
|
+
default: (_b = baseConfig.log) != null ? _b : false
|
|
81
|
+
};
|
|
82
|
+
Object.entries(schema).forEach(([name, config]) => {
|
|
83
|
+
this.__register(name, config);
|
|
84
|
+
});
|
|
85
|
+
return this;
|
|
86
|
+
}
|
|
87
|
+
__register(name, config) {
|
|
88
|
+
const hasDefaultValue = !_OptionsManager.types.includes(config);
|
|
89
|
+
const type = hasDefaultValue ? config.type : config;
|
|
90
|
+
if (!_OptionsManager.types.includes(type)) {
|
|
91
|
+
throw new Error(`The "${name}" option has an invalid type. The allowed types are: String, Number, Boolean, Array and Object.`);
|
|
92
|
+
}
|
|
93
|
+
const defaultValue = hasDefaultValue ? config.default : this.__defaultValues[type.name];
|
|
94
|
+
if ((type === Array || type === Object) && typeof defaultValue !== "function") {
|
|
95
|
+
throw new Error(`The default value for options of type "${type.name}" must be returned by a function.`);
|
|
96
|
+
}
|
|
97
|
+
Object.defineProperty(this, name, {
|
|
98
|
+
get: () => {
|
|
99
|
+
return this.get(name, type, defaultValue);
|
|
100
|
+
},
|
|
101
|
+
set: (value) => {
|
|
102
|
+
this.set(name, type, value, defaultValue);
|
|
103
|
+
},
|
|
104
|
+
enumerable: true
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
get(name, type, defaultValue) {
|
|
108
|
+
const propertyName = _OptionsManager.__getPropertyName(name);
|
|
109
|
+
const hasProperty = this.__hasProperty(propertyName);
|
|
110
|
+
if (type === Boolean) {
|
|
111
|
+
if (defaultValue) {
|
|
112
|
+
const negatedPropertyName = _OptionsManager.__getPropertyName(name, "No");
|
|
113
|
+
const hasNegatedProperty = this.__hasProperty(negatedPropertyName);
|
|
114
|
+
return !hasNegatedProperty;
|
|
115
|
+
}
|
|
116
|
+
return hasProperty || defaultValue;
|
|
117
|
+
}
|
|
118
|
+
const value = this.__element.dataset[propertyName];
|
|
119
|
+
if (type === Number) {
|
|
120
|
+
return hasProperty ? Number(value) : defaultValue;
|
|
121
|
+
}
|
|
122
|
+
if (type === Array || type === Object) {
|
|
123
|
+
const val = (0, import_deepmerge.default)(defaultValue(), hasProperty ? JSON.parse(value) : this.__defaultValues[type.name]());
|
|
124
|
+
if (!this.__values[name]) {
|
|
125
|
+
this.__values[name] = val;
|
|
126
|
+
}
|
|
127
|
+
return this.__values[name];
|
|
128
|
+
}
|
|
129
|
+
return hasProperty ? value : defaultValue;
|
|
130
|
+
}
|
|
131
|
+
set(name, type, value, defaultValue) {
|
|
132
|
+
const propertyName = _OptionsManager.__getPropertyName(name);
|
|
133
|
+
if (value.constructor.name !== type.name) {
|
|
134
|
+
const val = Array.isArray(value) || (0, import_isObject.default)(value) ? JSON.stringify(value) : value;
|
|
135
|
+
throw new TypeError(`The "${val}" value for the "${name}" option must be of type "${type.name}"`);
|
|
136
|
+
}
|
|
137
|
+
switch (type) {
|
|
138
|
+
case Boolean:
|
|
139
|
+
if (defaultValue) {
|
|
140
|
+
const negatedPropertyName = _OptionsManager.__getPropertyName(name, "No");
|
|
141
|
+
if (value) {
|
|
142
|
+
delete this.__element.dataset[negatedPropertyName];
|
|
143
|
+
} else {
|
|
144
|
+
this.__element.dataset[negatedPropertyName] = "";
|
|
145
|
+
}
|
|
146
|
+
} else if (value) {
|
|
147
|
+
this.__element.dataset[propertyName] = "";
|
|
148
|
+
} else {
|
|
149
|
+
delete this.__element.dataset[propertyName];
|
|
150
|
+
}
|
|
151
|
+
break;
|
|
152
|
+
case Array:
|
|
153
|
+
case Object:
|
|
154
|
+
this.__values[name] = value;
|
|
155
|
+
break;
|
|
156
|
+
default:
|
|
157
|
+
this.__element.dataset[propertyName] = value;
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
__hasProperty(prop) {
|
|
161
|
+
return typeof this.__element.dataset[prop] !== "undefined";
|
|
162
|
+
}
|
|
163
|
+
static __getPropertyName(name, prefix = "") {
|
|
164
|
+
const key = name + prefix;
|
|
165
|
+
if (_OptionsManager.__propertyNameCache.has(key)) {
|
|
166
|
+
return _OptionsManager.__propertyNameCache.get(key);
|
|
167
|
+
}
|
|
168
|
+
const propertyName = `option${prefix}${name.replace(/^\w/, (c) => c.toUpperCase())}`;
|
|
169
|
+
_OptionsManager.__propertyNameCache.set(key, propertyName);
|
|
170
|
+
return propertyName;
|
|
171
|
+
}
|
|
172
|
+
};
|
|
173
|
+
var OptionsManager = _OptionsManager;
|
|
174
|
+
__publicField(OptionsManager, "types", [String, Number, Boolean, Array, Object]);
|
|
175
|
+
__publicField(OptionsManager, "__propertyNameCache", /* @__PURE__ */ new Map());
|
|
176
|
+
module.exports = __toCommonJS(OptionsManager_exports);
|
|
177
|
+
if (module.exports.default) module.exports = module.exports.default;
|
|
@@ -1,28 +1,26 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
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
|
+
import deepmerge from "deepmerge";
|
|
8
|
+
import isObject from "../../utils/object/isObject.js";
|
|
9
|
+
const _OptionsManager = class {
|
|
5
10
|
constructor(element, schema, baseConfig) {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
_defineProperty(this, "__values", {});
|
|
11
|
-
|
|
12
|
-
_defineProperty(this, "__defaultValues", {
|
|
13
|
-
String: '',
|
|
11
|
+
__publicField(this, "__element");
|
|
12
|
+
__publicField(this, "__values", {});
|
|
13
|
+
__publicField(this, "__defaultValues", {
|
|
14
|
+
String: "",
|
|
14
15
|
Number: 0,
|
|
15
16
|
Boolean: false,
|
|
16
17
|
Array: () => [],
|
|
17
18
|
Object: () => ({})
|
|
18
19
|
});
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
_defineProperty(this, "log", false);
|
|
25
|
-
|
|
20
|
+
__publicField(this, "name", "Base");
|
|
21
|
+
__publicField(this, "debug", false);
|
|
22
|
+
__publicField(this, "log", false);
|
|
23
|
+
var _a, _b;
|
|
26
24
|
Object.defineProperties(this, {
|
|
27
25
|
__element: {
|
|
28
26
|
enumerable: false,
|
|
@@ -43,138 +41,106 @@ export default class OptionsManager {
|
|
|
43
41
|
this.name = baseConfig.name;
|
|
44
42
|
schema.debug = {
|
|
45
43
|
type: Boolean,
|
|
46
|
-
default: (
|
|
44
|
+
default: (_a = baseConfig.debug) != null ? _a : false
|
|
47
45
|
};
|
|
48
46
|
schema.log = {
|
|
49
47
|
type: Boolean,
|
|
50
|
-
default: (
|
|
48
|
+
default: (_b = baseConfig.log) != null ? _b : false
|
|
51
49
|
};
|
|
52
|
-
Object.entries(schema).forEach(
|
|
53
|
-
var [name, config] = _ref;
|
|
54
|
-
|
|
50
|
+
Object.entries(schema).forEach(([name, config]) => {
|
|
55
51
|
this.__register(name, config);
|
|
56
52
|
});
|
|
57
53
|
return this;
|
|
58
54
|
}
|
|
59
|
-
|
|
60
55
|
__register(name, config) {
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
throw new Error("The \"".concat(name, "\" option has an invalid type. The allowed types are: String, Number, Boolean, Array and Object."));
|
|
56
|
+
const hasDefaultValue = !_OptionsManager.types.includes(config);
|
|
57
|
+
const type = hasDefaultValue ? config.type : config;
|
|
58
|
+
if (!_OptionsManager.types.includes(type)) {
|
|
59
|
+
throw new Error(`The "${name}" option has an invalid type. The allowed types are: String, Number, Boolean, Array and Object.`);
|
|
66
60
|
}
|
|
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."));
|
|
61
|
+
const defaultValue = hasDefaultValue ? config.default : this.__defaultValues[type.name];
|
|
62
|
+
if ((type === Array || type === Object) && typeof defaultValue !== "function") {
|
|
63
|
+
throw new Error(`The default value for options of type "${type.name}" must be returned by a function.`);
|
|
72
64
|
}
|
|
73
|
-
|
|
74
65
|
Object.defineProperty(this, name, {
|
|
75
66
|
get: () => {
|
|
76
67
|
return this.get(name, type, defaultValue);
|
|
77
68
|
},
|
|
78
|
-
set: value => {
|
|
69
|
+
set: (value) => {
|
|
79
70
|
this.set(name, type, value, defaultValue);
|
|
80
71
|
},
|
|
81
72
|
enumerable: true
|
|
82
73
|
});
|
|
83
74
|
}
|
|
84
|
-
|
|
85
75
|
get(name, type, defaultValue) {
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
var hasProperty = this.__hasProperty(propertyName);
|
|
89
|
-
|
|
76
|
+
const propertyName = _OptionsManager.__getPropertyName(name);
|
|
77
|
+
const hasProperty = this.__hasProperty(propertyName);
|
|
90
78
|
if (type === Boolean) {
|
|
91
79
|
if (defaultValue) {
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
var hasNegatedProperty = this.__hasProperty(negatedPropertyName);
|
|
95
|
-
|
|
80
|
+
const negatedPropertyName = _OptionsManager.__getPropertyName(name, "No");
|
|
81
|
+
const hasNegatedProperty = this.__hasProperty(negatedPropertyName);
|
|
96
82
|
return !hasNegatedProperty;
|
|
97
83
|
}
|
|
98
|
-
|
|
99
84
|
return hasProperty || defaultValue;
|
|
100
85
|
}
|
|
101
|
-
|
|
102
|
-
var value = this.__element.dataset[propertyName];
|
|
103
|
-
|
|
86
|
+
const value = this.__element.dataset[propertyName];
|
|
104
87
|
if (type === Number) {
|
|
105
88
|
return hasProperty ? Number(value) : defaultValue;
|
|
106
89
|
}
|
|
107
|
-
|
|
108
90
|
if (type === Array || type === Object) {
|
|
109
|
-
|
|
110
|
-
|
|
91
|
+
const val = deepmerge(defaultValue(), hasProperty ? JSON.parse(value) : this.__defaultValues[type.name]());
|
|
111
92
|
if (!this.__values[name]) {
|
|
112
93
|
this.__values[name] = val;
|
|
113
94
|
}
|
|
114
|
-
|
|
115
95
|
return this.__values[name];
|
|
116
96
|
}
|
|
117
|
-
|
|
118
97
|
return hasProperty ? value : defaultValue;
|
|
119
98
|
}
|
|
120
|
-
|
|
121
99
|
set(name, type, value, defaultValue) {
|
|
122
|
-
|
|
123
|
-
|
|
100
|
+
const propertyName = _OptionsManager.__getPropertyName(name);
|
|
124
101
|
if (value.constructor.name !== type.name) {
|
|
125
|
-
|
|
126
|
-
throw new TypeError(
|
|
102
|
+
const val = Array.isArray(value) || isObject(value) ? JSON.stringify(value) : value;
|
|
103
|
+
throw new TypeError(`The "${val}" value for the "${name}" option must be of type "${type.name}"`);
|
|
127
104
|
}
|
|
128
|
-
|
|
129
105
|
switch (type) {
|
|
130
106
|
case Boolean:
|
|
131
107
|
if (defaultValue) {
|
|
132
|
-
|
|
133
|
-
|
|
108
|
+
const negatedPropertyName = _OptionsManager.__getPropertyName(name, "No");
|
|
134
109
|
if (value) {
|
|
135
110
|
delete this.__element.dataset[negatedPropertyName];
|
|
136
111
|
} else {
|
|
137
|
-
this.__element.dataset[negatedPropertyName] =
|
|
112
|
+
this.__element.dataset[negatedPropertyName] = "";
|
|
138
113
|
}
|
|
139
114
|
} else if (value) {
|
|
140
|
-
this.__element.dataset[propertyName] =
|
|
115
|
+
this.__element.dataset[propertyName] = "";
|
|
141
116
|
} else {
|
|
142
117
|
delete this.__element.dataset[propertyName];
|
|
143
118
|
}
|
|
144
|
-
|
|
145
119
|
break;
|
|
146
|
-
|
|
147
120
|
case Array:
|
|
148
121
|
case Object:
|
|
149
122
|
this.__values[name] = value;
|
|
150
123
|
break;
|
|
151
|
-
|
|
152
124
|
default:
|
|
153
125
|
this.__element.dataset[propertyName] = value;
|
|
154
126
|
}
|
|
155
127
|
}
|
|
156
|
-
|
|
157
128
|
__hasProperty(prop) {
|
|
158
|
-
return typeof this.__element.dataset[prop] !==
|
|
129
|
+
return typeof this.__element.dataset[prop] !== "undefined";
|
|
159
130
|
}
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
if (OptionsManager.__propertyNameCache.has(key)) {
|
|
166
|
-
return OptionsManager.__propertyNameCache.get(key);
|
|
131
|
+
static __getPropertyName(name, prefix = "") {
|
|
132
|
+
const key = name + prefix;
|
|
133
|
+
if (_OptionsManager.__propertyNameCache.has(key)) {
|
|
134
|
+
return _OptionsManager.__propertyNameCache.get(key);
|
|
167
135
|
}
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
OptionsManager.__propertyNameCache.set(key, propertyName);
|
|
172
|
-
|
|
136
|
+
const propertyName = `option${prefix}${name.replace(/^\w/, (c) => c.toUpperCase())}`;
|
|
137
|
+
_OptionsManager.__propertyNameCache.set(key, propertyName);
|
|
173
138
|
return propertyName;
|
|
174
139
|
}
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
140
|
+
};
|
|
141
|
+
let OptionsManager = _OptionsManager;
|
|
142
|
+
__publicField(OptionsManager, "types", [String, Number, Boolean, Array, Object]);
|
|
143
|
+
__publicField(OptionsManager, "__propertyNameCache", /* @__PURE__ */ new Map());
|
|
144
|
+
export {
|
|
145
|
+
OptionsManager as default
|
|
146
|
+
};
|
|
@@ -0,0 +1,104 @@
|
|
|
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 __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all)
|
|
9
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
10
|
+
};
|
|
11
|
+
var __reExport = (target, module2, copyDefault, desc) => {
|
|
12
|
+
if (module2 && typeof module2 === "object" || typeof module2 === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(module2))
|
|
14
|
+
if (!__hasOwnProp.call(target, key) && (copyDefault || key !== "default"))
|
|
15
|
+
__defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
|
|
16
|
+
}
|
|
17
|
+
return target;
|
|
18
|
+
};
|
|
19
|
+
var __toCommonJS = /* @__PURE__ */ ((cache) => {
|
|
20
|
+
return (module2, temp) => {
|
|
21
|
+
return cache && cache.get(module2) || (temp = __reExport(__markAsModule({}), module2, 1), cache && cache.set(module2, temp), temp);
|
|
22
|
+
};
|
|
23
|
+
})(typeof WeakMap !== "undefined" ? /* @__PURE__ */ new WeakMap() : 0);
|
|
24
|
+
var __publicField = (obj, key, value) => {
|
|
25
|
+
__defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
26
|
+
return value;
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
// packages/js-toolkit/Base/managers/RefsManager.js
|
|
30
|
+
var RefsManager_exports = {};
|
|
31
|
+
__export(RefsManager_exports, {
|
|
32
|
+
default: () => RefsManager
|
|
33
|
+
});
|
|
34
|
+
var RefsManager = class {
|
|
35
|
+
constructor(base, element, refs, eventsManager) {
|
|
36
|
+
__publicField(this, "__element");
|
|
37
|
+
__publicField(this, "__refs");
|
|
38
|
+
__publicField(this, "__base");
|
|
39
|
+
__publicField(this, "__eventsManager");
|
|
40
|
+
Object.defineProperties(this, {
|
|
41
|
+
__element: {
|
|
42
|
+
enumerable: false,
|
|
43
|
+
writable: false,
|
|
44
|
+
value: element
|
|
45
|
+
},
|
|
46
|
+
__refs: {
|
|
47
|
+
enumerable: false,
|
|
48
|
+
writable: false,
|
|
49
|
+
value: refs
|
|
50
|
+
},
|
|
51
|
+
__base: {
|
|
52
|
+
enumerable: false,
|
|
53
|
+
writable: false,
|
|
54
|
+
value: base
|
|
55
|
+
},
|
|
56
|
+
__eventsManager: {
|
|
57
|
+
enumerable: false,
|
|
58
|
+
writable: false,
|
|
59
|
+
value: eventsManager
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
registerAll() {
|
|
64
|
+
this.__refs.forEach((refName) => this.__register(refName));
|
|
65
|
+
}
|
|
66
|
+
unregisterAll() {
|
|
67
|
+
this.__refs.forEach((refName) => this.__unregister(refName));
|
|
68
|
+
}
|
|
69
|
+
__register(refName) {
|
|
70
|
+
const isMultiple = refName.endsWith("[]");
|
|
71
|
+
const propName = RefsManager.normalizeRefName(refName);
|
|
72
|
+
const refs = Array.from(this.__element.querySelectorAll(`[data-ref="${refName}"]`)).filter((ref) => this.__filterRefsBelongingToInstance(ref));
|
|
73
|
+
if (!isMultiple && refs.length > 1) {
|
|
74
|
+
console.warn(`[${this.__base.$options.name}]`, `The "${refName}" ref has been found multiple times.`, "Did you forgot to add the `[]` suffix to its name?");
|
|
75
|
+
}
|
|
76
|
+
if (!isMultiple && refs.length <= 1 && refs[0] === void 0) {
|
|
77
|
+
console.warn(`[${this.__base.$options.name}]`, `The "${refName}" ref is missing.`, `Is there an \`[data-ref="${refName}"]\` element in the component's scope?`);
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
this.__eventsManager.bindRef(refName, refs);
|
|
81
|
+
Object.defineProperty(this, propName, {
|
|
82
|
+
value: isMultiple || refs.length > 1 ? refs : refs[0],
|
|
83
|
+
enumerable: true,
|
|
84
|
+
configurable: true
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
__unregister(refName) {
|
|
88
|
+
const propName = RefsManager.normalizeRefName(refName);
|
|
89
|
+
const refs = Array.isArray(this[propName]) ? this[propName] : [this[propName]];
|
|
90
|
+
this.__eventsManager.unbindRef(refName, refs);
|
|
91
|
+
}
|
|
92
|
+
static normalizeRefName(name) {
|
|
93
|
+
return name.endsWith("[]") ? name.replace(/\[\]$/, "") : name;
|
|
94
|
+
}
|
|
95
|
+
__filterRefsBelongingToInstance(ref) {
|
|
96
|
+
let ancestor = ref.parentElement;
|
|
97
|
+
while (ancestor && ancestor.dataset.component === void 0) {
|
|
98
|
+
ancestor = ancestor.parentElement;
|
|
99
|
+
}
|
|
100
|
+
return ancestor === null || ancestor === this.__element;
|
|
101
|
+
}
|
|
102
|
+
};
|
|
103
|
+
module.exports = __toCommonJS(RefsManager_exports);
|
|
104
|
+
if (module.exports.default) module.exports = module.exports.default;
|
|
@@ -1,14 +1,15 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
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 RefsManager {
|
|
3
8
|
constructor(base, element, refs, eventsManager) {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
_defineProperty(this, "__base", void 0);
|
|
9
|
-
|
|
10
|
-
_defineProperty(this, "__eventsManager", void 0);
|
|
11
|
-
|
|
9
|
+
__publicField(this, "__element");
|
|
10
|
+
__publicField(this, "__refs");
|
|
11
|
+
__publicField(this, "__base");
|
|
12
|
+
__publicField(this, "__eventsManager");
|
|
12
13
|
Object.defineProperties(this, {
|
|
13
14
|
__element: {
|
|
14
15
|
enumerable: false,
|
|
@@ -32,57 +33,46 @@ export default class RefsManager {
|
|
|
32
33
|
}
|
|
33
34
|
});
|
|
34
35
|
}
|
|
35
|
-
|
|
36
36
|
registerAll() {
|
|
37
|
-
this.__refs.forEach(refName => this.__register(refName));
|
|
37
|
+
this.__refs.forEach((refName) => this.__register(refName));
|
|
38
38
|
}
|
|
39
|
-
|
|
40
39
|
unregisterAll() {
|
|
41
|
-
this.__refs.forEach(refName => this.__unregister(refName));
|
|
40
|
+
this.__refs.forEach((refName) => this.__unregister(refName));
|
|
42
41
|
}
|
|
43
|
-
|
|
44
42
|
__register(refName) {
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
43
|
+
const isMultiple = refName.endsWith("[]");
|
|
44
|
+
const propName = RefsManager.normalizeRefName(refName);
|
|
45
|
+
const refs = Array.from(this.__element.querySelectorAll(`[data-ref="${refName}"]`)).filter((ref) => this.__filterRefsBelongingToInstance(ref));
|
|
49
46
|
if (!isMultiple && refs.length > 1) {
|
|
50
|
-
console.warn(
|
|
47
|
+
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
48
|
}
|
|
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?"));
|
|
49
|
+
if (!isMultiple && refs.length <= 1 && refs[0] === void 0) {
|
|
50
|
+
console.warn(`[${this.__base.$options.name}]`, `The "${refName}" ref is missing.`, `Is there an \`[data-ref="${refName}"]\` element in the component's scope?`);
|
|
55
51
|
return;
|
|
56
52
|
}
|
|
57
|
-
|
|
58
53
|
this.__eventsManager.bindRef(refName, refs);
|
|
59
|
-
|
|
60
54
|
Object.defineProperty(this, propName, {
|
|
61
55
|
value: isMultiple || refs.length > 1 ? refs : refs[0],
|
|
62
56
|
enumerable: true,
|
|
63
57
|
configurable: true
|
|
64
58
|
});
|
|
65
59
|
}
|
|
66
|
-
|
|
67
60
|
__unregister(refName) {
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
61
|
+
const propName = RefsManager.normalizeRefName(refName);
|
|
62
|
+
const refs = Array.isArray(this[propName]) ? this[propName] : [this[propName]];
|
|
71
63
|
this.__eventsManager.unbindRef(refName, refs);
|
|
72
64
|
}
|
|
73
|
-
|
|
74
65
|
static normalizeRefName(name) {
|
|
75
|
-
return name.endsWith(
|
|
66
|
+
return name.endsWith("[]") ? name.replace(/\[\]$/, "") : name;
|
|
76
67
|
}
|
|
77
|
-
|
|
78
68
|
__filterRefsBelongingToInstance(ref) {
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
while (ancestor && ancestor.dataset.component === undefined) {
|
|
69
|
+
let ancestor = ref.parentElement;
|
|
70
|
+
while (ancestor && ancestor.dataset.component === void 0) {
|
|
82
71
|
ancestor = ancestor.parentElement;
|
|
83
72
|
}
|
|
84
|
-
|
|
85
73
|
return ancestor === null || ancestor === this.__element;
|
|
86
74
|
}
|
|
87
|
-
|
|
88
|
-
|
|
75
|
+
}
|
|
76
|
+
export {
|
|
77
|
+
RefsManager as default
|
|
78
|
+
};
|