@schukai/monster 3.5.0 → 3.7.0
Sign up to get free protection for your applications and to get access to all the features.
- 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 +16 -20
- 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 +16 -19
- 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 +16 -26
- package/source/i18n/providers/fetch.mjs +30 -36
- package/source/i18n/translations.mjs +15 -22
- 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/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
|
}
|