@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.
Files changed (109) hide show
  1. package/example/i18n/providers/embed.mjs +5 -0
  2. package/package.json +1 -1
  3. package/source/constants.mjs +4 -9
  4. package/source/constraints/abstract.mjs +4 -6
  5. package/source/constraints/abstractoperator.mjs +6 -12
  6. package/source/constraints/andoperator.mjs +3 -6
  7. package/source/constraints/invalid.mjs +3 -6
  8. package/source/constraints/isarray.mjs +6 -9
  9. package/source/constraints/isobject.mjs +4 -7
  10. package/source/constraints/namespace.mjs +1 -3
  11. package/source/constraints/oroperator.mjs +26 -25
  12. package/source/constraints/valid.mjs +3 -6
  13. package/source/data/buildmap.mjs +20 -36
  14. package/source/data/buildtree.mjs +29 -29
  15. package/source/data/datasource/namespace.mjs +1 -1
  16. package/source/data/datasource/server/restapi/writeerror.mjs +6 -6
  17. package/source/data/datasource/server/restapi.mjs +51 -65
  18. package/source/data/datasource/server/webconnect.mjs +26 -35
  19. package/source/data/datasource/server.mjs +17 -21
  20. package/source/data/datasource/storage/localstorage.mjs +8 -11
  21. package/source/data/datasource/storage/sessionstorage.mjs +8 -10
  22. package/source/data/datasource/storage.mjs +18 -22
  23. package/source/data/datasource.mjs +27 -43
  24. package/source/data/diff.mjs +20 -32
  25. package/source/data/extend.mjs +20 -14
  26. package/source/data/namespace.mjs +1 -3
  27. package/source/data/pathfinder.mjs +40 -67
  28. package/source/data/pipe.mjs +6 -10
  29. package/source/data/transformer.mjs +141 -157
  30. package/source/dom/assembler.mjs +6 -9
  31. package/source/dom/attributes.mjs +36 -48
  32. package/source/dom/constants.mjs +55 -71
  33. package/source/dom/customcontrol.mjs +16 -21
  34. package/source/dom/customelement.mjs +140 -164
  35. package/source/dom/events.mjs +17 -24
  36. package/source/dom/focusmanager.mjs +30 -48
  37. package/source/dom/locale.mjs +41 -10
  38. package/source/dom/namespace.mjs +1 -1
  39. package/source/dom/ready.mjs +7 -10
  40. package/source/dom/resource/data.mjs +38 -46
  41. package/source/dom/resource/link/namespace.mjs +1 -3
  42. package/source/dom/resource/link/stylesheet.mjs +7 -11
  43. package/source/dom/resource/link.mjs +36 -17
  44. package/source/dom/resource/namespace.mjs +1 -1
  45. package/source/dom/resource/script.mjs +23 -13
  46. package/source/dom/resource.mjs +47 -60
  47. package/source/dom/resourcemanager.mjs +36 -43
  48. package/source/dom/template.mjs +17 -24
  49. package/source/dom/theme.mjs +8 -12
  50. package/source/dom/updater.mjs +150 -196
  51. package/source/dom/util.mjs +11 -12
  52. package/source/dom/worker/factory.mjs +21 -25
  53. package/source/dom/worker/namespace.mjs +1 -1
  54. package/source/i18n/formatter.mjs +20 -24
  55. package/source/i18n/locale.mjs +40 -42
  56. package/source/i18n/namespace.mjs +1 -1
  57. package/source/i18n/provider.mjs +4 -7
  58. package/source/i18n/providers/embed.mjs +115 -0
  59. package/source/i18n/providers/fetch.mjs +33 -38
  60. package/source/i18n/translations.mjs +16 -20
  61. package/source/logging/handler/console.mjs +6 -10
  62. package/source/logging/handler.mjs +15 -18
  63. package/source/logging/logentry.mjs +8 -9
  64. package/source/logging/logger.mjs +73 -55
  65. package/source/logging/namespace.mjs +1 -1
  66. package/source/math/namespace.mjs +1 -1
  67. package/source/math/random.mjs +13 -14
  68. package/source/monster.mjs +132 -100
  69. package/source/net/namespace.mjs +1 -3
  70. package/source/net/webconnect/message.mjs +6 -8
  71. package/source/net/webconnect/namespace.mjs +1 -3
  72. package/source/net/webconnect.mjs +28 -39
  73. package/source/text/formatter.mjs +44 -55
  74. package/source/types/base.mjs +16 -26
  75. package/source/types/basewithoptions.mjs +8 -14
  76. package/source/types/binary.mjs +4 -5
  77. package/source/types/dataurl.mjs +19 -27
  78. package/source/types/global.mjs +14 -26
  79. package/source/types/id.mjs +4 -6
  80. package/source/types/is.mjs +11 -16
  81. package/source/types/mediatype.mjs +29 -44
  82. package/source/types/namespace.mjs +0 -1
  83. package/source/types/node.mjs +16 -22
  84. package/source/types/nodelist.mjs +10 -14
  85. package/source/types/noderecursiveiterator.mjs +11 -14
  86. package/source/types/observablequeue.mjs +13 -16
  87. package/source/types/observer.mjs +16 -23
  88. package/source/types/observerlist.mjs +18 -21
  89. package/source/types/proxyobserver.mjs +24 -37
  90. package/source/types/queue.mjs +8 -13
  91. package/source/types/randomid.mjs +10 -10
  92. package/source/types/regex.mjs +3 -5
  93. package/source/types/stack.mjs +4 -8
  94. package/source/types/tokenlist.mjs +24 -31
  95. package/source/types/typeof.mjs +5 -7
  96. package/source/types/uniquequeue.mjs +8 -13
  97. package/source/types/uuid.mjs +18 -25
  98. package/source/types/validate.mjs +26 -27
  99. package/source/types/version.mjs +17 -25
  100. package/source/util/clone.mjs +23 -32
  101. package/source/util/comparator.mjs +7 -15
  102. package/source/util/deadmansswitch.mjs +16 -23
  103. package/source/util/freeze.mjs +5 -7
  104. package/source/util/namespace.mjs +1 -1
  105. package/source/util/processing.mjs +33 -39
  106. package/source/util/trimspaces.mjs +17 -24
  107. package/test/cases/dom/locale.mjs +15 -0
  108. package/test/cases/i18n/providers/embed.mjs +72 -0
  109. 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('there is no object link for ' + symbol.toString());
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('HTMLElement'));
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 += "=" + validateString(value);
364
- let result = element.closest('[' + selector + ']');
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('HTMLElement'));
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('.' + className);
397
+ let result = element.closest(`.${className}`);
410
398
  if (result instanceof HTMLElement) {
411
399
  return result;
412
400
  }