@schukai/monster 3.4.2 → 3.7.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/example/i18n/providers/embed.mjs +5 -0
- package/package.json +1 -1
- package/source/constants.mjs +4 -9
- package/source/constraints/abstract.mjs +4 -6
- package/source/constraints/abstractoperator.mjs +6 -12
- package/source/constraints/andoperator.mjs +3 -6
- package/source/constraints/invalid.mjs +3 -6
- package/source/constraints/isarray.mjs +6 -9
- package/source/constraints/isobject.mjs +4 -7
- package/source/constraints/namespace.mjs +1 -3
- package/source/constraints/oroperator.mjs +26 -25
- package/source/constraints/valid.mjs +3 -6
- package/source/data/buildmap.mjs +20 -36
- package/source/data/buildtree.mjs +29 -29
- package/source/data/datasource/namespace.mjs +1 -1
- package/source/data/datasource/server/restapi/writeerror.mjs +6 -6
- package/source/data/datasource/server/restapi.mjs +51 -65
- package/source/data/datasource/server/webconnect.mjs +26 -35
- package/source/data/datasource/server.mjs +17 -21
- package/source/data/datasource/storage/localstorage.mjs +8 -11
- package/source/data/datasource/storage/sessionstorage.mjs +8 -10
- package/source/data/datasource/storage.mjs +18 -22
- package/source/data/datasource.mjs +27 -43
- package/source/data/diff.mjs +20 -32
- package/source/data/extend.mjs +20 -14
- package/source/data/namespace.mjs +1 -3
- package/source/data/pathfinder.mjs +40 -67
- package/source/data/pipe.mjs +6 -10
- package/source/data/transformer.mjs +141 -157
- package/source/dom/assembler.mjs +6 -9
- package/source/dom/attributes.mjs +36 -48
- package/source/dom/constants.mjs +55 -71
- package/source/dom/customcontrol.mjs +16 -21
- package/source/dom/customelement.mjs +140 -164
- package/source/dom/events.mjs +17 -24
- package/source/dom/focusmanager.mjs +30 -48
- package/source/dom/locale.mjs +41 -10
- package/source/dom/namespace.mjs +1 -1
- package/source/dom/ready.mjs +7 -10
- package/source/dom/resource/data.mjs +38 -46
- package/source/dom/resource/link/namespace.mjs +1 -3
- package/source/dom/resource/link/stylesheet.mjs +7 -11
- package/source/dom/resource/link.mjs +36 -17
- package/source/dom/resource/namespace.mjs +1 -1
- package/source/dom/resource/script.mjs +23 -13
- package/source/dom/resource.mjs +47 -60
- package/source/dom/resourcemanager.mjs +36 -43
- package/source/dom/template.mjs +17 -24
- package/source/dom/theme.mjs +8 -12
- package/source/dom/updater.mjs +150 -196
- package/source/dom/util.mjs +11 -12
- package/source/dom/worker/factory.mjs +21 -25
- package/source/dom/worker/namespace.mjs +1 -1
- package/source/i18n/formatter.mjs +20 -24
- package/source/i18n/locale.mjs +40 -42
- package/source/i18n/namespace.mjs +1 -1
- package/source/i18n/provider.mjs +4 -7
- package/source/i18n/providers/embed.mjs +115 -0
- package/source/i18n/providers/fetch.mjs +33 -38
- package/source/i18n/translations.mjs +16 -20
- package/source/logging/handler/console.mjs +6 -10
- package/source/logging/handler.mjs +15 -18
- package/source/logging/logentry.mjs +8 -9
- package/source/logging/logger.mjs +73 -55
- package/source/logging/namespace.mjs +1 -1
- package/source/math/namespace.mjs +1 -1
- package/source/math/random.mjs +13 -14
- package/source/monster.mjs +132 -100
- package/source/net/namespace.mjs +1 -3
- package/source/net/webconnect/message.mjs +6 -8
- package/source/net/webconnect/namespace.mjs +1 -3
- package/source/net/webconnect.mjs +28 -39
- package/source/text/formatter.mjs +44 -55
- package/source/types/base.mjs +16 -26
- package/source/types/basewithoptions.mjs +8 -14
- package/source/types/binary.mjs +4 -5
- package/source/types/dataurl.mjs +19 -27
- package/source/types/global.mjs +14 -26
- package/source/types/id.mjs +4 -6
- package/source/types/is.mjs +11 -16
- package/source/types/mediatype.mjs +29 -44
- package/source/types/namespace.mjs +0 -1
- package/source/types/node.mjs +16 -22
- package/source/types/nodelist.mjs +10 -14
- package/source/types/noderecursiveiterator.mjs +11 -14
- package/source/types/observablequeue.mjs +13 -16
- package/source/types/observer.mjs +16 -23
- package/source/types/observerlist.mjs +18 -21
- package/source/types/proxyobserver.mjs +24 -37
- package/source/types/queue.mjs +8 -13
- package/source/types/randomid.mjs +10 -10
- package/source/types/regex.mjs +3 -5
- package/source/types/stack.mjs +4 -8
- package/source/types/tokenlist.mjs +24 -31
- package/source/types/typeof.mjs +5 -7
- package/source/types/uniquequeue.mjs +8 -13
- package/source/types/uuid.mjs +18 -25
- package/source/types/validate.mjs +26 -27
- package/source/types/version.mjs +17 -25
- package/source/util/clone.mjs +23 -32
- package/source/util/comparator.mjs +7 -15
- package/source/util/deadmansswitch.mjs +16 -23
- package/source/util/freeze.mjs +5 -7
- package/source/util/namespace.mjs +1 -1
- package/source/util/processing.mjs +33 -39
- package/source/util/trimspaces.mjs +17 -24
- package/test/cases/dom/locale.mjs +15 -0
- package/test/cases/i18n/providers/embed.mjs +72 -0
- package/test/cases/monster.mjs +1 -1
|
@@ -5,10 +5,10 @@
|
|
|
5
5
|
* License text available at https://www.gnu.org/licenses/agpl-3.0.en.html
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
import {getGlobalFunction} from "../types/global.mjs";
|
|
9
|
-
import {TokenList} from "../types/tokenlist.mjs";
|
|
10
|
-
import {validateInstance, validateString, validateSymbol} from "../types/validate.mjs";
|
|
11
|
-
import {ATTRIBUTE_OBJECTLINK} from "./constants.mjs";
|
|
8
|
+
import { getGlobalFunction } from "../types/global.mjs";
|
|
9
|
+
import { TokenList } from "../types/tokenlist.mjs";
|
|
10
|
+
import { validateInstance, validateString, validateSymbol } from "../types/validate.mjs";
|
|
11
|
+
import { ATTRIBUTE_OBJECTLINK } from "./constants.mjs";
|
|
12
12
|
|
|
13
13
|
export {
|
|
14
14
|
findClosestObjectLink,
|
|
@@ -23,8 +23,8 @@ export {
|
|
|
23
23
|
replaceAttributeToken,
|
|
24
24
|
clearAttributeTokens,
|
|
25
25
|
findClosestByAttribute,
|
|
26
|
-
findClosestByClass
|
|
27
|
-
}
|
|
26
|
+
findClosestByClass,
|
|
27
|
+
};
|
|
28
28
|
|
|
29
29
|
/**
|
|
30
30
|
* Get the closest object link of a node
|
|
@@ -57,18 +57,16 @@ function findClosestObjectLink(element) {
|
|
|
57
57
|
* @return {boolean}
|
|
58
58
|
*/
|
|
59
59
|
function addToObjectLink(element, symbol, object) {
|
|
60
|
-
|
|
61
60
|
validateInstance(element, HTMLElement);
|
|
62
|
-
validateSymbol(symbol)
|
|
61
|
+
validateSymbol(symbol);
|
|
63
62
|
|
|
64
63
|
if (element?.[symbol] === undefined) {
|
|
65
|
-
element[symbol] = new Set;
|
|
64
|
+
element[symbol] = new Set();
|
|
66
65
|
}
|
|
67
66
|
|
|
68
67
|
addAttributeToken(element, ATTRIBUTE_OBJECTLINK, symbol.toString());
|
|
69
68
|
element[symbol].add(object);
|
|
70
69
|
return element;
|
|
71
|
-
|
|
72
70
|
}
|
|
73
71
|
|
|
74
72
|
/**
|
|
@@ -83,21 +81,18 @@ function addToObjectLink(element, symbol, object) {
|
|
|
83
81
|
* @return {boolean}
|
|
84
82
|
*/
|
|
85
83
|
function removeObjectLink(element, symbol) {
|
|
86
|
-
|
|
87
84
|
validateInstance(element, HTMLElement);
|
|
88
|
-
validateSymbol(symbol)
|
|
85
|
+
validateSymbol(symbol);
|
|
89
86
|
|
|
90
87
|
if (element?.[symbol] === undefined) {
|
|
91
|
-
return element
|
|
88
|
+
return element;
|
|
92
89
|
}
|
|
93
90
|
|
|
94
91
|
removeAttributeToken(element, ATTRIBUTE_OBJECTLINK, symbol.toString());
|
|
95
92
|
delete element[symbol];
|
|
96
93
|
return element;
|
|
97
|
-
|
|
98
94
|
}
|
|
99
95
|
|
|
100
|
-
|
|
101
96
|
/**
|
|
102
97
|
* Checks if an element has an object link
|
|
103
98
|
*
|
|
@@ -110,16 +105,14 @@ function removeObjectLink(element, symbol) {
|
|
|
110
105
|
* @return {boolean}
|
|
111
106
|
*/
|
|
112
107
|
function hasObjectLink(element, symbol) {
|
|
113
|
-
|
|
114
108
|
validateInstance(element, HTMLElement);
|
|
115
|
-
validateSymbol(symbol)
|
|
109
|
+
validateSymbol(symbol);
|
|
116
110
|
|
|
117
111
|
if (element?.[symbol] === undefined) {
|
|
118
|
-
return false
|
|
112
|
+
return false;
|
|
119
113
|
}
|
|
120
114
|
|
|
121
115
|
return containsAttributeToken(element, ATTRIBUTE_OBJECTLINK, symbol.toString());
|
|
122
|
-
|
|
123
116
|
}
|
|
124
117
|
|
|
125
118
|
/**
|
|
@@ -140,19 +133,16 @@ function hasObjectLink(element, symbol) {
|
|
|
140
133
|
* @throws {Error} there is no object link for symbol
|
|
141
134
|
*/
|
|
142
135
|
function getLinkedObjects(element, symbol) {
|
|
143
|
-
|
|
144
136
|
validateInstance(element, HTMLElement);
|
|
145
|
-
validateSymbol(symbol)
|
|
137
|
+
validateSymbol(symbol);
|
|
146
138
|
|
|
147
139
|
if (element?.[symbol] === undefined) {
|
|
148
|
-
throw new Error(
|
|
140
|
+
throw new Error(`there is no object link for ${symbol.toString()}`);
|
|
149
141
|
}
|
|
150
142
|
|
|
151
143
|
return element?.[symbol][Symbol.iterator]();
|
|
152
|
-
|
|
153
144
|
}
|
|
154
145
|
|
|
155
|
-
|
|
156
146
|
/**
|
|
157
147
|
* With this method tokens in an attribute can be switched on or off. For example, classes can be switched on and off in the elements class attribute.
|
|
158
148
|
*
|
|
@@ -169,8 +159,8 @@ function getLinkedObjects(element, symbol) {
|
|
|
169
159
|
*/
|
|
170
160
|
function toggleAttributeToken(element, key, token) {
|
|
171
161
|
validateInstance(element, HTMLElement);
|
|
172
|
-
validateString(token)
|
|
173
|
-
validateString(key)
|
|
162
|
+
validateString(token);
|
|
163
|
+
validateString(key);
|
|
174
164
|
|
|
175
165
|
if (!element.hasAttribute(key)) {
|
|
176
166
|
element.setAttribute(key, token);
|
|
@@ -179,7 +169,7 @@ function toggleAttributeToken(element, key, token) {
|
|
|
179
169
|
|
|
180
170
|
element.setAttribute(key, new TokenList(element.getAttribute(key)).toggle(token).toString());
|
|
181
171
|
|
|
182
|
-
return element
|
|
172
|
+
return element;
|
|
183
173
|
}
|
|
184
174
|
|
|
185
175
|
/**
|
|
@@ -196,8 +186,8 @@ function toggleAttributeToken(element, key, token) {
|
|
|
196
186
|
*/
|
|
197
187
|
function addAttributeToken(element, key, token) {
|
|
198
188
|
validateInstance(element, HTMLElement);
|
|
199
|
-
validateString(token)
|
|
200
|
-
validateString(key)
|
|
189
|
+
validateString(token);
|
|
190
|
+
validateString(key);
|
|
201
191
|
|
|
202
192
|
if (!element.hasAttribute(key)) {
|
|
203
193
|
element.setAttribute(key, token);
|
|
@@ -206,7 +196,7 @@ function addAttributeToken(element, key, token) {
|
|
|
206
196
|
|
|
207
197
|
element.setAttribute(key, new TokenList(element.getAttribute(key)).add(token).toString());
|
|
208
198
|
|
|
209
|
-
return element
|
|
199
|
+
return element;
|
|
210
200
|
}
|
|
211
201
|
|
|
212
202
|
/**
|
|
@@ -225,8 +215,8 @@ function addAttributeToken(element, key, token) {
|
|
|
225
215
|
*/
|
|
226
216
|
function removeAttributeToken(element, key, token) {
|
|
227
217
|
validateInstance(element, HTMLElement);
|
|
228
|
-
validateString(token)
|
|
229
|
-
validateString(key)
|
|
218
|
+
validateString(token);
|
|
219
|
+
validateString(key);
|
|
230
220
|
|
|
231
221
|
if (!element.hasAttribute(key)) {
|
|
232
222
|
return element;
|
|
@@ -234,7 +224,7 @@ function removeAttributeToken(element, key, token) {
|
|
|
234
224
|
|
|
235
225
|
element.setAttribute(key, new TokenList(element.getAttribute(key)).remove(token).toString());
|
|
236
226
|
|
|
237
|
-
return element
|
|
227
|
+
return element;
|
|
238
228
|
}
|
|
239
229
|
|
|
240
230
|
/**
|
|
@@ -253,15 +243,14 @@ function removeAttributeToken(element, key, token) {
|
|
|
253
243
|
*/
|
|
254
244
|
function containsAttributeToken(element, key, token) {
|
|
255
245
|
validateInstance(element, HTMLElement);
|
|
256
|
-
validateString(token)
|
|
257
|
-
validateString(key)
|
|
246
|
+
validateString(token);
|
|
247
|
+
validateString(key);
|
|
258
248
|
|
|
259
249
|
if (!element.hasAttribute(key)) {
|
|
260
250
|
return false;
|
|
261
251
|
}
|
|
262
252
|
|
|
263
253
|
return new TokenList(element.getAttribute(key)).contains(token);
|
|
264
|
-
|
|
265
254
|
}
|
|
266
255
|
|
|
267
256
|
/**
|
|
@@ -279,9 +268,9 @@ function containsAttributeToken(element, key, token) {
|
|
|
279
268
|
*/
|
|
280
269
|
function replaceAttributeToken(element, key, from, to) {
|
|
281
270
|
validateInstance(element, HTMLElement);
|
|
282
|
-
validateString(from)
|
|
283
|
-
validateString(to)
|
|
284
|
-
validateString(key)
|
|
271
|
+
validateString(from);
|
|
272
|
+
validateString(to);
|
|
273
|
+
validateString(key);
|
|
285
274
|
|
|
286
275
|
if (!element.hasAttribute(key)) {
|
|
287
276
|
return element;
|
|
@@ -289,7 +278,7 @@ function replaceAttributeToken(element, key, from, to) {
|
|
|
289
278
|
|
|
290
279
|
element.setAttribute(key, new TokenList(element.getAttribute(key)).replace(from, to).toString());
|
|
291
280
|
|
|
292
|
-
return element
|
|
281
|
+
return element;
|
|
293
282
|
}
|
|
294
283
|
|
|
295
284
|
/**
|
|
@@ -305,7 +294,7 @@ function replaceAttributeToken(element, key, from, to) {
|
|
|
305
294
|
*/
|
|
306
295
|
function clearAttributeTokens(element, key) {
|
|
307
296
|
validateInstance(element, HTMLElement);
|
|
308
|
-
validateString(key)
|
|
297
|
+
validateString(key);
|
|
309
298
|
|
|
310
299
|
if (!element.hasAttribute(key)) {
|
|
311
300
|
return element;
|
|
@@ -313,7 +302,7 @@ function clearAttributeTokens(element, key) {
|
|
|
313
302
|
|
|
314
303
|
element.setAttribute(key, "");
|
|
315
304
|
|
|
316
|
-
return element
|
|
305
|
+
return element;
|
|
317
306
|
}
|
|
318
307
|
|
|
319
308
|
/**
|
|
@@ -346,7 +335,7 @@ function clearAttributeTokens(element, key) {
|
|
|
346
335
|
* @summary find closest node
|
|
347
336
|
*/
|
|
348
337
|
function findClosestByAttribute(element, key, value) {
|
|
349
|
-
validateInstance(element, getGlobalFunction(
|
|
338
|
+
validateInstance(element, getGlobalFunction("HTMLElement"));
|
|
350
339
|
|
|
351
340
|
if (element.hasAttribute(key)) {
|
|
352
341
|
if (value === undefined) {
|
|
@@ -356,12 +345,11 @@ function findClosestByAttribute(element, key, value) {
|
|
|
356
345
|
if (element.getAttribute(key) === value) {
|
|
357
346
|
return element;
|
|
358
347
|
}
|
|
359
|
-
|
|
360
348
|
}
|
|
361
349
|
|
|
362
350
|
let selector = validateString(key);
|
|
363
|
-
if (value !== undefined) selector +=
|
|
364
|
-
let result = element.closest(
|
|
351
|
+
if (value !== undefined) selector += `=${validateString(value)}`;
|
|
352
|
+
let result = element.closest(`[${selector}]`);
|
|
365
353
|
if (result instanceof HTMLElement) {
|
|
366
354
|
return result;
|
|
367
355
|
}
|
|
@@ -400,13 +388,13 @@ function findClosestByAttribute(element, key, value) {
|
|
|
400
388
|
* @summary find closest node
|
|
401
389
|
*/
|
|
402
390
|
function findClosestByClass(element, className) {
|
|
403
|
-
validateInstance(element, getGlobalFunction(
|
|
391
|
+
validateInstance(element, getGlobalFunction("HTMLElement"));
|
|
404
392
|
|
|
405
393
|
if (element?.classList?.contains(validateString(className))) {
|
|
406
394
|
return element;
|
|
407
395
|
}
|
|
408
396
|
|
|
409
|
-
let result = element.closest(
|
|
397
|
+
let result = element.closest(`.${className}`);
|
|
410
398
|
if (result instanceof HTMLElement) {
|
|
411
399
|
return result;
|
|
412
400
|
}
|