@symbo.ls/utils 3.2.3 → 3.14.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/LICENSE +25 -12
- package/README.md +106 -0
- package/array.js +162 -0
- package/cache.js +7 -0
- package/cdn.js +83 -0
- package/component.js +25 -0
- package/cookie.js +71 -0
- package/{src/detectHeight.js → detectHeight.js} +3 -3
- package/dist/cjs/array.js +168 -0
- package/dist/cjs/browser.js +0 -2
- package/dist/cjs/cache.js +26 -0
- package/dist/cjs/cdn.js +85 -0
- package/dist/cjs/component.js +45 -0
- package/dist/cjs/cookie.js +75 -0
- package/dist/cjs/date.js +1 -3
- package/dist/cjs/detectHeight.js +4 -6
- package/dist/cjs/element.js +136 -0
- package/dist/cjs/env.js +43 -0
- package/dist/cjs/events.js +39 -0
- package/dist/cjs/extends.js +434 -0
- package/dist/cjs/fibonacci.js +1 -3
- package/dist/cjs/files.js +1 -3
- package/dist/cjs/function.js +114 -0
- package/dist/cjs/globals.js +30 -0
- package/dist/cjs/if.js +48 -0
- package/dist/cjs/index.js +38 -425
- package/dist/cjs/key.js +38 -0
- package/dist/cjs/keys.js +201 -0
- package/dist/cjs/load.js +5 -7
- package/dist/cjs/log.js +34 -0
- package/dist/cjs/metadata.js +310 -0
- package/dist/cjs/methods.js +599 -0
- package/dist/cjs/node.js +35 -0
- package/dist/cjs/object.js +634 -0
- package/dist/cjs/projectKeys.js +35 -0
- package/dist/cjs/props.js +282 -0
- package/dist/cjs/scaling.js +5 -169
- package/dist/cjs/scope.js +44 -0
- package/dist/cjs/sharedLibraries.js +146 -0
- package/dist/cjs/state.js +173 -0
- package/dist/cjs/string-extra.js +72 -0
- package/dist/cjs/string.js +183 -0
- package/dist/cjs/style.js +1 -3
- package/dist/cjs/tags.js +220 -0
- package/dist/cjs/triggerEvent.js +112 -0
- package/dist/cjs/types.js +74 -0
- package/dist/cjs/update.js +42 -0
- package/dist/esm/array.js +148 -0
- package/dist/esm/browser.js +14 -0
- package/dist/esm/cache.js +6 -0
- package/dist/esm/cdn.js +65 -0
- package/dist/esm/component.js +25 -0
- package/dist/esm/cookie.js +55 -0
- package/dist/esm/date.js +11 -0
- package/dist/esm/detectHeight.js +42 -0
- package/dist/esm/element.js +116 -0
- package/dist/esm/env.js +23 -0
- package/dist/esm/events.js +19 -0
- package/dist/esm/extends.js +414 -0
- package/dist/esm/fibonacci.js +10 -0
- package/dist/esm/files.js +4 -0
- package/dist/esm/function.js +94 -0
- package/dist/esm/globals.js +10 -0
- package/dist/esm/if.js +28 -0
- package/dist/esm/index.js +37 -0
- package/dist/esm/key.js +18 -0
- package/dist/esm/keys.js +181 -0
- package/dist/esm/load.js +151 -0
- package/dist/esm/log.js +14 -0
- package/dist/esm/metadata.js +290 -0
- package/dist/esm/methods.js +569 -0
- package/dist/esm/node.js +15 -0
- package/dist/esm/object.js +621 -0
- package/dist/esm/projectKeys.js +16 -0
- package/dist/esm/props.js +262 -0
- package/dist/esm/scaling.js +15 -0
- package/dist/esm/scope.js +24 -0
- package/dist/esm/sharedLibraries.js +126 -0
- package/dist/esm/state.js +163 -0
- package/dist/esm/string-extra.js +52 -0
- package/dist/esm/string.js +163 -0
- package/dist/esm/style.js +20 -0
- package/dist/esm/tags.js +200 -0
- package/dist/esm/triggerEvent.js +92 -0
- package/dist/esm/types.js +54 -0
- package/dist/esm/update.js +22 -0
- package/dist/iife/index.js +5818 -0
- package/element.js +148 -0
- package/env.js +15 -0
- package/events.js +19 -0
- package/extends.js +519 -0
- package/function.js +145 -0
- package/globals.js +8 -0
- package/if.js +30 -0
- package/index.js +41 -0
- package/key.js +20 -0
- package/keys.js +176 -0
- package/log.js +12 -0
- package/metadata.js +392 -0
- package/methods.js +636 -0
- package/node.js +37 -0
- package/object.js +803 -0
- package/package.json +38 -22
- package/projectKeys.js +30 -0
- package/props.js +327 -0
- package/{src/scaling.js → scaling.js} +1 -1
- package/scope.js +32 -0
- package/sharedLibraries.js +184 -0
- package/state.js +203 -0
- package/{src/index.js → string-extra.js} +11 -17
- package/string.js +206 -0
- package/tags.js +176 -0
- package/triggerEvent.js +102 -0
- package/types.js +55 -0
- package/update.js +27 -0
- package/dist/cjs/package.json +0 -4
- /package/{src/browser.js → browser.js} +0 -0
- /package/{src/date.js → date.js} +0 -0
- /package/{src/fibonacci.js → fibonacci.js} +0 -0
- /package/{src/files.js → files.js} +0 -0
- /package/{src/load.js → load.js} +0 -0
- /package/{src/style.js → style.js} +0 -0
|
@@ -0,0 +1,282 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var props_exports = {};
|
|
20
|
+
__export(props_exports, {
|
|
21
|
+
applyProps: () => applyProps,
|
|
22
|
+
createProps: () => createProps,
|
|
23
|
+
createPropsStack: () => createPropsStack,
|
|
24
|
+
inheritParentProps: () => inheritParentProps,
|
|
25
|
+
initProps: () => initProps,
|
|
26
|
+
objectizeStringProperty: () => objectizeStringProperty,
|
|
27
|
+
pickupElementFromProps: () => pickupElementFromProps,
|
|
28
|
+
pickupPropsFromElement: () => pickupPropsFromElement,
|
|
29
|
+
propExists: () => propExists,
|
|
30
|
+
propertizeElement: () => propertizeElement,
|
|
31
|
+
propertizeUpdate: () => propertizeUpdate,
|
|
32
|
+
removeDuplicateProps: () => removeDuplicateProps,
|
|
33
|
+
setPropsPrototype: () => setPropsPrototype,
|
|
34
|
+
syncProps: () => syncProps,
|
|
35
|
+
update: () => update,
|
|
36
|
+
updateProps: () => updateProps
|
|
37
|
+
});
|
|
38
|
+
module.exports = __toCommonJS(props_exports);
|
|
39
|
+
var import_keys = require("./keys.js");
|
|
40
|
+
var import_events = require("./events.js");
|
|
41
|
+
var import_object = require("./object.js");
|
|
42
|
+
var import_types = require("./types.js");
|
|
43
|
+
var import_string = require("./string.js");
|
|
44
|
+
var import_function = require("./function.js");
|
|
45
|
+
const RE_UPPER = /^[A-Z]/;
|
|
46
|
+
const RE_DIGITS = /^\d+$/;
|
|
47
|
+
const CSS_SELECTOR_PREFIXES = /* @__PURE__ */ new Set([":", "@", "[", "*", "+", "~", "&", ">", "$", "-", ".", "!"]);
|
|
48
|
+
const ELEMENT_INDICATOR_KEYS = /* @__PURE__ */ new Set([
|
|
49
|
+
"extend",
|
|
50
|
+
"props",
|
|
51
|
+
"text",
|
|
52
|
+
"tag",
|
|
53
|
+
"on",
|
|
54
|
+
"if",
|
|
55
|
+
"childExtend",
|
|
56
|
+
"children",
|
|
57
|
+
"childrenAs",
|
|
58
|
+
"state",
|
|
59
|
+
"html",
|
|
60
|
+
"attr",
|
|
61
|
+
"define",
|
|
62
|
+
"content"
|
|
63
|
+
]);
|
|
64
|
+
const looksLikeElement = (value) => {
|
|
65
|
+
if (!value || typeof value !== "object" || Array.isArray(value)) return false;
|
|
66
|
+
for (const k in value) {
|
|
67
|
+
if (ELEMENT_INDICATOR_KEYS.has(k)) return true;
|
|
68
|
+
if (RE_UPPER.test(k)) return true;
|
|
69
|
+
}
|
|
70
|
+
return false;
|
|
71
|
+
};
|
|
72
|
+
const createProps = (element, parent, key) => {
|
|
73
|
+
const { props, __ref: ref } = element;
|
|
74
|
+
ref.__propsStack = [];
|
|
75
|
+
if (props) ref.__initialProps = props;
|
|
76
|
+
else return {};
|
|
77
|
+
if (!(0, import_types.isObjectLike)(props)) {
|
|
78
|
+
ref.__propsStack.push(props);
|
|
79
|
+
return {};
|
|
80
|
+
}
|
|
81
|
+
return { ...props };
|
|
82
|
+
};
|
|
83
|
+
function pickupPropsFromElement(obj, opts = {}) {
|
|
84
|
+
const cachedKeys = opts.cachedKeys || [];
|
|
85
|
+
for (const key in obj) {
|
|
86
|
+
const value = obj[key];
|
|
87
|
+
const isOnKey = key.length > 2 && key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && key[2] === key[2].toUpperCase();
|
|
88
|
+
const isEventHandler = isOnKey && ((0, import_types.isFunction)(value) || value != null && (0, import_function.hasHandlerPlugin)(this.context));
|
|
89
|
+
if (isEventHandler) {
|
|
90
|
+
const eventName = (0, import_string.lowercaseFirstLetter)(key.slice(2));
|
|
91
|
+
if (obj.on) obj.on[eventName] = value;
|
|
92
|
+
delete obj[key];
|
|
93
|
+
continue;
|
|
94
|
+
}
|
|
95
|
+
if (key === "childProps") {
|
|
96
|
+
obj.props[key] = value;
|
|
97
|
+
delete obj[key];
|
|
98
|
+
cachedKeys.push(key);
|
|
99
|
+
continue;
|
|
100
|
+
}
|
|
101
|
+
const defineValue = this.define?.[key];
|
|
102
|
+
const globalDefineValue = this.context?.define?.[key];
|
|
103
|
+
const hasDefine = (0, import_types.isObject)(defineValue) || (0, import_types.isFunction)(defineValue);
|
|
104
|
+
const hasGlobalDefine = (0, import_types.isObject)(globalDefineValue) || (0, import_types.isFunction)(globalDefineValue);
|
|
105
|
+
if (hasDefine || hasGlobalDefine) continue;
|
|
106
|
+
const firstChar = key.charAt(0);
|
|
107
|
+
if (CSS_SELECTOR_PREFIXES.has(firstChar)) {
|
|
108
|
+
obj.props[key] = value;
|
|
109
|
+
delete obj[key];
|
|
110
|
+
cachedKeys.push(key);
|
|
111
|
+
continue;
|
|
112
|
+
}
|
|
113
|
+
const isElement = RE_UPPER.test(key) || RE_DIGITS.test(key) || looksLikeElement(value);
|
|
114
|
+
const isBuiltin = import_keys.DOMQ_PROPERTIES.has(key);
|
|
115
|
+
if (!isElement && !isBuiltin) {
|
|
116
|
+
if (!(key in obj.props)) obj.props[key] = value;
|
|
117
|
+
delete obj[key];
|
|
118
|
+
cachedKeys.push(key);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
return obj;
|
|
122
|
+
}
|
|
123
|
+
function pickupElementFromProps(obj = this, opts) {
|
|
124
|
+
const cachedKeys = opts.cachedKeys || [];
|
|
125
|
+
for (const key in obj.props) {
|
|
126
|
+
const value = obj.props[key];
|
|
127
|
+
const isEvent = key.length > 2 && key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110;
|
|
128
|
+
const isHandler = (0, import_types.isFunction)(value) || value != null && (0, import_function.hasHandlerPlugin)(this.context);
|
|
129
|
+
if (isEvent && isHandler) {
|
|
130
|
+
(0, import_events.addEventFromProps)(key, obj);
|
|
131
|
+
delete obj.props[key];
|
|
132
|
+
continue;
|
|
133
|
+
}
|
|
134
|
+
if (cachedKeys.includes(key)) continue;
|
|
135
|
+
if (key === "childProps") continue;
|
|
136
|
+
const firstChar = key.charAt(0);
|
|
137
|
+
if (CSS_SELECTOR_PREFIXES.has(firstChar)) continue;
|
|
138
|
+
const defineValue = this.define?.[key];
|
|
139
|
+
const globalDefineValue = this.context?.define?.[key];
|
|
140
|
+
const hasDefine = (0, import_types.isObject)(defineValue) || (0, import_types.isFunction)(defineValue);
|
|
141
|
+
const hasGlobalDefine = (0, import_types.isObject)(globalDefineValue) || (0, import_types.isFunction)(globalDefineValue);
|
|
142
|
+
const isElement = RE_UPPER.test(key) || RE_DIGITS.test(key);
|
|
143
|
+
const isBuiltin = import_keys.DOMQ_PROPERTIES.has(key);
|
|
144
|
+
if (isElement || isBuiltin || hasDefine || hasGlobalDefine) {
|
|
145
|
+
if (obj[key] === void 0 || value === null) {
|
|
146
|
+
obj[key] = value;
|
|
147
|
+
if (obj.props) delete obj.props[key];
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
return obj;
|
|
152
|
+
}
|
|
153
|
+
function propertizeElement(element = this) {
|
|
154
|
+
const cachedKeys = [];
|
|
155
|
+
pickupPropsFromElement.call(this, element, { cachedKeys });
|
|
156
|
+
pickupElementFromProps.call(this, element, { cachedKeys });
|
|
157
|
+
return element;
|
|
158
|
+
}
|
|
159
|
+
function propertizeUpdate(params = {}) {
|
|
160
|
+
if (!params.on) params.on = {};
|
|
161
|
+
if (!params.props) params.props = {};
|
|
162
|
+
return propertizeElement.call(this, params);
|
|
163
|
+
}
|
|
164
|
+
const objectizeStringProperty = (propValue) => {
|
|
165
|
+
if ((0, import_types.is)(propValue)("string", "number")) {
|
|
166
|
+
return { inheritedString: propValue };
|
|
167
|
+
}
|
|
168
|
+
return propValue;
|
|
169
|
+
};
|
|
170
|
+
const propExists = (prop, stack) => {
|
|
171
|
+
if (!prop || !stack.length) return false;
|
|
172
|
+
return stack.includes(prop);
|
|
173
|
+
};
|
|
174
|
+
const inheritParentProps = (element, parent) => {
|
|
175
|
+
const { __ref: ref } = element;
|
|
176
|
+
const propsStack = ref.__propsStack || [];
|
|
177
|
+
const parentProps = parent.props;
|
|
178
|
+
if (!parentProps) return propsStack;
|
|
179
|
+
const matchParentKeyProps = parentProps[element.key];
|
|
180
|
+
const matchParentChildProps = parentProps.childProps || parent.childProps;
|
|
181
|
+
const ignoreChildProps = element.props?.ignoreChildProps;
|
|
182
|
+
if (matchParentChildProps && !ignoreChildProps) {
|
|
183
|
+
const childProps = objectizeStringProperty(matchParentChildProps);
|
|
184
|
+
propsStack.unshift(childProps);
|
|
185
|
+
}
|
|
186
|
+
if (matchParentKeyProps) {
|
|
187
|
+
const keyProps = objectizeStringProperty(matchParentKeyProps);
|
|
188
|
+
propsStack.unshift(keyProps);
|
|
189
|
+
}
|
|
190
|
+
return propsStack;
|
|
191
|
+
};
|
|
192
|
+
function update(props, options) {
|
|
193
|
+
const element = this.__element;
|
|
194
|
+
element.update({ props }, options);
|
|
195
|
+
}
|
|
196
|
+
function setPropsPrototype(element) {
|
|
197
|
+
const methods = { update: update.bind(element.props), __element: element };
|
|
198
|
+
Object.setPrototypeOf(element.props, methods);
|
|
199
|
+
}
|
|
200
|
+
const removeDuplicateProps = (propsStack) => {
|
|
201
|
+
const seen = /* @__PURE__ */ new Set();
|
|
202
|
+
return propsStack.filter((prop) => {
|
|
203
|
+
if (!prop || import_keys.PROPS_METHODS.has(prop)) return false;
|
|
204
|
+
if (seen.has(prop)) return false;
|
|
205
|
+
seen.add(prop);
|
|
206
|
+
return true;
|
|
207
|
+
});
|
|
208
|
+
};
|
|
209
|
+
const syncProps = (propsStack, element, opts) => {
|
|
210
|
+
element.props = propsStack.reduce((mergedProps, v) => {
|
|
211
|
+
if (import_keys.PROPS_METHODS.has(v)) return mergedProps;
|
|
212
|
+
while ((0, import_types.isFunction)(v)) v = (0, import_object.exec)(v, element);
|
|
213
|
+
return (0, import_object.deepMerge)(mergedProps, (0, import_object.deepClone)(v, { exclude: import_keys.PROPS_METHODS }));
|
|
214
|
+
}, {});
|
|
215
|
+
setPropsPrototype(element);
|
|
216
|
+
return element.props;
|
|
217
|
+
};
|
|
218
|
+
const createPropsStack = (element, parent) => {
|
|
219
|
+
const { props, __ref: ref } = element;
|
|
220
|
+
let propsStack = ref.__propsStack || [];
|
|
221
|
+
if (parent?.props) {
|
|
222
|
+
const parentStack = inheritParentProps(element, parent);
|
|
223
|
+
propsStack = [...parentStack];
|
|
224
|
+
}
|
|
225
|
+
if ((0, import_types.isObject)(props)) propsStack.push(props);
|
|
226
|
+
else if (props === "inherit" && parent?.props) propsStack.push(parent.props);
|
|
227
|
+
else if (props) propsStack.push(props);
|
|
228
|
+
if ((0, import_types.isArray)(ref.__extendsStack)) {
|
|
229
|
+
for (let i = 0; i < ref.__extendsStack.length; i++) {
|
|
230
|
+
const _extends = ref.__extendsStack[i];
|
|
231
|
+
if (_extends.props && _extends.props !== props) {
|
|
232
|
+
propsStack.push(_extends.props);
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
ref.__propsStack = removeDuplicateProps(propsStack);
|
|
237
|
+
return ref.__propsStack;
|
|
238
|
+
};
|
|
239
|
+
const applyProps = (element, parent) => {
|
|
240
|
+
const { __ref: ref } = element;
|
|
241
|
+
const propsStack = createPropsStack(element, parent);
|
|
242
|
+
if (propsStack.length) {
|
|
243
|
+
syncProps(propsStack, element);
|
|
244
|
+
} else {
|
|
245
|
+
ref.__propsStack = [];
|
|
246
|
+
element.props = {};
|
|
247
|
+
}
|
|
248
|
+
};
|
|
249
|
+
const initProps = function(element, parent, options) {
|
|
250
|
+
const { __ref: ref } = element;
|
|
251
|
+
if (ref.__if) applyProps(element, parent);
|
|
252
|
+
else {
|
|
253
|
+
try {
|
|
254
|
+
applyProps(element, parent);
|
|
255
|
+
} catch (e) {
|
|
256
|
+
if (element.context?.designSystem?.verbose) {
|
|
257
|
+
console.warn("initProps error at", ref.path?.join("."), e);
|
|
258
|
+
}
|
|
259
|
+
element.props = {};
|
|
260
|
+
ref.__propsStack = [];
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
setPropsPrototype(element);
|
|
264
|
+
return element;
|
|
265
|
+
};
|
|
266
|
+
const updateProps = (newProps, element, parent) => {
|
|
267
|
+
const { __ref: ref } = element;
|
|
268
|
+
const propsStack = ref.__propsStack || [];
|
|
269
|
+
let newStack = [...propsStack];
|
|
270
|
+
const parentProps = inheritParentProps(element, parent);
|
|
271
|
+
if (parentProps.length) {
|
|
272
|
+
newStack = [...parentProps, ...newStack];
|
|
273
|
+
}
|
|
274
|
+
if (newProps) {
|
|
275
|
+
newStack = [newProps, ...newStack];
|
|
276
|
+
}
|
|
277
|
+
ref.__propsStack = removeDuplicateProps(newStack);
|
|
278
|
+
if (ref.__propsStack.length) {
|
|
279
|
+
syncProps(ref.__propsStack, element);
|
|
280
|
+
}
|
|
281
|
+
return element;
|
|
282
|
+
};
|
package/dist/cjs/scaling.js
CHANGED
|
@@ -16,184 +16,20 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
16
16
|
return to;
|
|
17
17
|
};
|
|
18
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
|
|
20
|
-
// src/scaling.js
|
|
21
19
|
var scaling_exports = {};
|
|
22
20
|
__export(scaling_exports, {
|
|
23
21
|
findClosestNumber: () => findClosestNumber,
|
|
24
22
|
findClosestNumberInFactory: () => findClosestNumberInFactory
|
|
25
23
|
});
|
|
26
24
|
module.exports = __toCommonJS(scaling_exports);
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
var document2 = window2.document;
|
|
31
|
-
|
|
32
|
-
// ../../../domql/packages/utils/dist/esm/types.js
|
|
33
|
-
var isObject = (arg) => {
|
|
34
|
-
if (arg === null) return false;
|
|
35
|
-
return typeof arg === "object" && arg.constructor === Object;
|
|
36
|
-
};
|
|
37
|
-
var isArray = (arg) => Array.isArray(arg);
|
|
38
|
-
|
|
39
|
-
// ../../../domql/packages/utils/dist/esm/keys.js
|
|
40
|
-
var STATE_METHODS = [
|
|
41
|
-
"update",
|
|
42
|
-
"parse",
|
|
43
|
-
"clean",
|
|
44
|
-
"create",
|
|
45
|
-
"destroy",
|
|
46
|
-
"add",
|
|
47
|
-
"toggle",
|
|
48
|
-
"remove",
|
|
49
|
-
"apply",
|
|
50
|
-
"set",
|
|
51
|
-
"reset",
|
|
52
|
-
"replace",
|
|
53
|
-
"quietReplace",
|
|
54
|
-
"quietUpdate",
|
|
55
|
-
"applyReplace",
|
|
56
|
-
"applyFunction",
|
|
57
|
-
"keys",
|
|
58
|
-
"values",
|
|
59
|
-
"ref",
|
|
60
|
-
"rootUpdate",
|
|
61
|
-
"parentUpdate",
|
|
62
|
-
"parent",
|
|
63
|
-
"__element",
|
|
64
|
-
"__depends",
|
|
65
|
-
"__ref",
|
|
66
|
-
"__children",
|
|
67
|
-
"root",
|
|
68
|
-
"setByPath",
|
|
69
|
-
"setPathCollection",
|
|
70
|
-
"removeByPath",
|
|
71
|
-
"removePathCollection",
|
|
72
|
-
"getByPath"
|
|
73
|
-
];
|
|
74
|
-
var PROPS_METHODS = ["update", "__element"];
|
|
75
|
-
var METHODS = [
|
|
76
|
-
"set",
|
|
77
|
-
"reset",
|
|
78
|
-
"update",
|
|
79
|
-
"remove",
|
|
80
|
-
"updateContent",
|
|
81
|
-
"removeContent",
|
|
82
|
-
"lookup",
|
|
83
|
-
"lookdown",
|
|
84
|
-
"lookdownAll",
|
|
85
|
-
"getRef",
|
|
86
|
-
"getPath",
|
|
87
|
-
"setNodeStyles",
|
|
88
|
-
"spotByPath",
|
|
89
|
-
"keys",
|
|
90
|
-
"parse",
|
|
91
|
-
"setProps",
|
|
92
|
-
"parseDeep",
|
|
93
|
-
"variables",
|
|
94
|
-
"if",
|
|
95
|
-
"log",
|
|
96
|
-
"verbose",
|
|
97
|
-
"warn",
|
|
98
|
-
"error",
|
|
99
|
-
"call",
|
|
100
|
-
"nextElement",
|
|
101
|
-
"previousElement"
|
|
102
|
-
];
|
|
103
|
-
var METHODS_EXL = [
|
|
104
|
-
...["node", "context", "extends", "__element", "__ref"],
|
|
105
|
-
...METHODS,
|
|
106
|
-
...STATE_METHODS,
|
|
107
|
-
...PROPS_METHODS
|
|
108
|
-
];
|
|
109
|
-
|
|
110
|
-
// ../../../domql/packages/utils/dist/esm/cookie.js
|
|
111
|
-
var isMobile = (() => typeof navigator === "undefined" ? false : /Mobi/.test(navigator.userAgent))();
|
|
112
|
-
|
|
113
|
-
// ../../../domql/packages/event/dist/esm/keys.js
|
|
114
|
-
var STATE_METHODS2 = [
|
|
115
|
-
"update",
|
|
116
|
-
"parse",
|
|
117
|
-
"clean",
|
|
118
|
-
"create",
|
|
119
|
-
"destroy",
|
|
120
|
-
"add",
|
|
121
|
-
"toggle",
|
|
122
|
-
"remove",
|
|
123
|
-
"apply",
|
|
124
|
-
"set",
|
|
125
|
-
"reset",
|
|
126
|
-
"replace",
|
|
127
|
-
"quietReplace",
|
|
128
|
-
"quietUpdate",
|
|
129
|
-
"applyReplace",
|
|
130
|
-
"applyFunction",
|
|
131
|
-
"keys",
|
|
132
|
-
"values",
|
|
133
|
-
"ref",
|
|
134
|
-
"rootUpdate",
|
|
135
|
-
"parentUpdate",
|
|
136
|
-
"parent",
|
|
137
|
-
"__element",
|
|
138
|
-
"__depends",
|
|
139
|
-
"__ref",
|
|
140
|
-
"__children",
|
|
141
|
-
"root",
|
|
142
|
-
"setByPath",
|
|
143
|
-
"setPathCollection",
|
|
144
|
-
"removeByPath",
|
|
145
|
-
"removePathCollection",
|
|
146
|
-
"getByPath"
|
|
147
|
-
];
|
|
148
|
-
var PROPS_METHODS2 = ["update", "__element"];
|
|
149
|
-
var METHODS2 = [
|
|
150
|
-
"set",
|
|
151
|
-
"reset",
|
|
152
|
-
"update",
|
|
153
|
-
"remove",
|
|
154
|
-
"updateContent",
|
|
155
|
-
"removeContent",
|
|
156
|
-
"lookup",
|
|
157
|
-
"lookdown",
|
|
158
|
-
"lookdownAll",
|
|
159
|
-
"getRef",
|
|
160
|
-
"getPath",
|
|
161
|
-
"setNodeStyles",
|
|
162
|
-
"spotByPath",
|
|
163
|
-
"keys",
|
|
164
|
-
"parse",
|
|
165
|
-
"setProps",
|
|
166
|
-
"parseDeep",
|
|
167
|
-
"variables",
|
|
168
|
-
"if",
|
|
169
|
-
"log",
|
|
170
|
-
"verbose",
|
|
171
|
-
"warn",
|
|
172
|
-
"error",
|
|
173
|
-
"call",
|
|
174
|
-
"nextElement",
|
|
175
|
-
"previousElement"
|
|
176
|
-
];
|
|
177
|
-
var METHODS_EXL2 = [
|
|
178
|
-
...["node", "context", "extends", "__element", "__ref"],
|
|
179
|
-
...METHODS2,
|
|
180
|
-
...STATE_METHODS2,
|
|
181
|
-
...PROPS_METHODS2
|
|
182
|
-
];
|
|
183
|
-
|
|
184
|
-
// ../../../domql/packages/event/dist/esm/globals.js
|
|
185
|
-
var window3 = globalThis;
|
|
186
|
-
var document3 = window3.document;
|
|
187
|
-
|
|
188
|
-
// src/scaling.js
|
|
189
|
-
var findClosestNumber = (number, arr) => {
|
|
190
|
-
return (isArray(arr) ? arr : Object.values(arr)).reduce((prev, curr) => {
|
|
25
|
+
var import_types = require("./types.js");
|
|
26
|
+
const findClosestNumber = (number, arr) => {
|
|
27
|
+
return ((0, import_types.isArray)(arr) ? arr : Object.values(arr)).reduce((prev, curr) => {
|
|
191
28
|
return Math.abs(curr - number) < Math.abs(prev - number) ? curr : prev;
|
|
192
29
|
});
|
|
193
30
|
};
|
|
194
|
-
|
|
31
|
+
const findClosestNumberInFactory = (val, factory) => {
|
|
195
32
|
val = parseFloat(val);
|
|
196
|
-
if (isObject(factory)) factory = Object.values(factory);
|
|
33
|
+
if ((0, import_types.isObject)(factory)) factory = Object.values(factory);
|
|
197
34
|
return findClosestNumber(val, factory);
|
|
198
35
|
};
|
|
199
|
-
// @preserve-env
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var scope_exports = {};
|
|
20
|
+
__export(scope_exports, {
|
|
21
|
+
createScope: () => createScope
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(scope_exports);
|
|
24
|
+
const createScope = (element, parent) => {
|
|
25
|
+
const { __ref: ref } = element;
|
|
26
|
+
const context = element.context || parent.context || ref.root?.context;
|
|
27
|
+
if (context && !context.globalScope) context.globalScope = {};
|
|
28
|
+
const parentScope = parent.scope || ref.root?.scope;
|
|
29
|
+
const globalScope = context?.globalScope;
|
|
30
|
+
if (!element.scope) {
|
|
31
|
+
if (parentScope) {
|
|
32
|
+
element.scope = parentScope;
|
|
33
|
+
} else if (globalScope) {
|
|
34
|
+
element.scope = Object.create(globalScope);
|
|
35
|
+
} else {
|
|
36
|
+
element.scope = {};
|
|
37
|
+
}
|
|
38
|
+
} else if (typeof element.scope === "object" && element.scope !== null) {
|
|
39
|
+
if (Object.getPrototypeOf(element.scope) === Object.prototype) {
|
|
40
|
+
const proto = parentScope || globalScope;
|
|
41
|
+
if (proto) Object.setPrototypeOf(element.scope, proto);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
};
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var sharedLibraries_exports = {};
|
|
20
|
+
__export(sharedLibraries_exports, {
|
|
21
|
+
deepDefaults: () => deepDefaults,
|
|
22
|
+
fetchLibraryData: () => fetchLibraryData,
|
|
23
|
+
mergeSharedLibraries: () => mergeSharedLibraries,
|
|
24
|
+
normalizeLibraryKey: () => normalizeLibraryKey,
|
|
25
|
+
resolveSharedLibraries: () => resolveSharedLibraries
|
|
26
|
+
});
|
|
27
|
+
module.exports = __toCommonJS(sharedLibraries_exports);
|
|
28
|
+
var import_types = require("./types.js");
|
|
29
|
+
const DEFAULT_LIBRARY_OWNER = "system";
|
|
30
|
+
const KV_BASE_URL = "https://smbls-kv.nika-980.workers.dev";
|
|
31
|
+
const API_BASE_URL = "https://api.symbols.app";
|
|
32
|
+
function normalizeLibraryKey(raw) {
|
|
33
|
+
const s = String(raw || "").trim();
|
|
34
|
+
if (!s) return { owner: DEFAULT_LIBRARY_OWNER, key: "", full: "" };
|
|
35
|
+
let owner = null;
|
|
36
|
+
let key = s;
|
|
37
|
+
if (s.includes("/")) {
|
|
38
|
+
const idx = s.indexOf("/");
|
|
39
|
+
owner = s.slice(0, idx);
|
|
40
|
+
key = s.slice(idx + 1);
|
|
41
|
+
}
|
|
42
|
+
key = key.replace(/\.symbo\.ls$/iu, "");
|
|
43
|
+
if (!owner) owner = DEFAULT_LIBRARY_OWNER;
|
|
44
|
+
const full = key ? `${owner}/${key}` : "";
|
|
45
|
+
return { owner, key, full };
|
|
46
|
+
}
|
|
47
|
+
const deepDefaults = (target, source) => {
|
|
48
|
+
for (const k in source) {
|
|
49
|
+
if (!(k in target)) {
|
|
50
|
+
target[k] = source[k];
|
|
51
|
+
} else if ((0, import_types.isObject)(target[k]) && (0, import_types.isObject)(source[k])) {
|
|
52
|
+
deepDefaults(target[k], source[k]);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
const mergeSharedLibraries = (context, libraries) => {
|
|
57
|
+
if (!libraries || !libraries.length) return;
|
|
58
|
+
for (let i = 0; i < libraries.length; i++) {
|
|
59
|
+
const sharedLib = libraries[i];
|
|
60
|
+
if (!(0, import_types.isObject)(sharedLib)) continue;
|
|
61
|
+
for (const key in sharedLib) {
|
|
62
|
+
if (!Object.prototype.hasOwnProperty.call(sharedLib, key)) continue;
|
|
63
|
+
if ((0, import_types.isObject)(sharedLib[key]) && (0, import_types.isObject)(context[key])) {
|
|
64
|
+
if (key === "designSystem") {
|
|
65
|
+
deepDefaults(context[key], sharedLib[key]);
|
|
66
|
+
} else {
|
|
67
|
+
for (const k in sharedLib[key]) {
|
|
68
|
+
if (!(k in context[key])) context[key][k] = sharedLib[key][k];
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
} else if (!(key in context)) {
|
|
72
|
+
context[key] = sharedLib[key];
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
};
|
|
77
|
+
async function fetchLibraryData(identifier, opts = {}) {
|
|
78
|
+
const provider = opts.provider || "kv";
|
|
79
|
+
if (provider === "api") {
|
|
80
|
+
return fetchLibraryFromApi(identifier, opts);
|
|
81
|
+
}
|
|
82
|
+
const result = await fetchLibraryFromKv(identifier, opts);
|
|
83
|
+
if (result) return result;
|
|
84
|
+
return fetchLibraryFromApi(identifier, opts);
|
|
85
|
+
}
|
|
86
|
+
async function fetchLibraryFromKv(identifier, opts = {}) {
|
|
87
|
+
const baseUrl = opts.kvBaseUrl || KV_BASE_URL;
|
|
88
|
+
const env = opts.env || "production";
|
|
89
|
+
const url = `${baseUrl}/kv/${encodeURIComponent(identifier)}?env=${env}`;
|
|
90
|
+
try {
|
|
91
|
+
const response = await fetch(url, { method: "GET" });
|
|
92
|
+
if (!response.ok) return null;
|
|
93
|
+
const json = await response.json();
|
|
94
|
+
return json?.value || null;
|
|
95
|
+
} catch {
|
|
96
|
+
return null;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
async function fetchLibraryFromApi(identifier, opts = {}) {
|
|
100
|
+
const baseUrl = opts.apiBaseUrl || API_BASE_URL;
|
|
101
|
+
const { key } = normalizeLibraryKey(identifier);
|
|
102
|
+
try {
|
|
103
|
+
const listUrl = `${baseUrl}/core/projects/libraries/available?search=${encodeURIComponent(key)}&limit=10`;
|
|
104
|
+
const listRes = await fetch(listUrl, { method: "GET" });
|
|
105
|
+
if (!listRes.ok) return null;
|
|
106
|
+
const listJson = await listRes.json();
|
|
107
|
+
const items = listJson?.items || listJson?.data || (Array.isArray(listJson) ? listJson : []);
|
|
108
|
+
const match = items.find((lib) => {
|
|
109
|
+
const { key: libKey } = normalizeLibraryKey(lib?.key);
|
|
110
|
+
return libKey.toLowerCase() === key.toLowerCase();
|
|
111
|
+
});
|
|
112
|
+
if (!match?.id && !match?._id) return null;
|
|
113
|
+
const libId = match.id || match._id;
|
|
114
|
+
const dataUrl = `${baseUrl}/core/projects/${encodeURIComponent(libId)}/data?branch=main`;
|
|
115
|
+
const dataRes = await fetch(dataUrl, { method: "GET" });
|
|
116
|
+
if (!dataRes.ok) return null;
|
|
117
|
+
const dataJson = await dataRes.json();
|
|
118
|
+
return dataJson?.data || dataJson || null;
|
|
119
|
+
} catch {
|
|
120
|
+
return null;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
async function resolveSharedLibraries(libraries, opts = {}) {
|
|
124
|
+
if (!libraries || !libraries.length) return [];
|
|
125
|
+
const resolved = await Promise.all(
|
|
126
|
+
libraries.map(async (entry) => {
|
|
127
|
+
if ((0, import_types.isObject)(entry)) return entry;
|
|
128
|
+
if ((0, import_types.isString)(entry)) {
|
|
129
|
+
const { full } = normalizeLibraryKey(entry);
|
|
130
|
+
if (!full) return null;
|
|
131
|
+
try {
|
|
132
|
+
const data = await fetchLibraryData(full, opts);
|
|
133
|
+
if (!data) {
|
|
134
|
+
console.warn(`[smbls] Shared library "${full}" not found`);
|
|
135
|
+
}
|
|
136
|
+
return data;
|
|
137
|
+
} catch (e) {
|
|
138
|
+
console.warn(`[smbls] Failed to fetch shared library "${full}":`, e.message);
|
|
139
|
+
return null;
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
return null;
|
|
143
|
+
})
|
|
144
|
+
);
|
|
145
|
+
return resolved.filter(Boolean);
|
|
146
|
+
}
|