@schukai/monster 1.28.0 → 1.29.2

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 (192) hide show
  1. package/CHANGELOG +21 -0
  2. package/README.md +4 -4
  3. package/dist/modules/constants.js +1 -1
  4. package/dist/modules/constraints/abstract.js +1 -1
  5. package/dist/modules/constraints/abstractoperator.js +1 -1
  6. package/dist/modules/constraints/andoperator.js +1 -1
  7. package/dist/modules/constraints/invalid.js +1 -1
  8. package/dist/modules/constraints/isarray.js +1 -1
  9. package/dist/modules/constraints/isobject.js +1 -1
  10. package/dist/modules/constraints/namespace.js +1 -1
  11. package/dist/modules/constraints/oroperator.js +1 -1
  12. package/dist/modules/constraints/valid.js +1 -1
  13. package/dist/modules/data/buildmap.js +2 -2
  14. package/dist/modules/data/buildtree.js +1 -1
  15. package/dist/modules/data/datasource/namespace.js +1 -1
  16. package/dist/modules/data/datasource/restapi/writeerror.js +1 -1
  17. package/dist/modules/data/datasource/restapi.js +1 -1
  18. package/dist/modules/data/datasource/storage/localstorage.js +1 -1
  19. package/dist/modules/data/datasource/storage/namespace.js +1 -1
  20. package/dist/modules/data/datasource/storage/sessionstorage.js +1 -1
  21. package/dist/modules/data/datasource/storage.js +1 -1
  22. package/dist/modules/data/datasource.js +1 -1
  23. package/dist/modules/data/diff.js +1 -1
  24. package/dist/modules/data/extend.js +1 -1
  25. package/dist/modules/data/namespace.js +1 -1
  26. package/dist/modules/data/pathfinder.js +1 -1
  27. package/dist/modules/data/pipe.js +1 -1
  28. package/dist/modules/data/transformer.js +1 -1
  29. package/dist/modules/dom/assembler.js +1 -1
  30. package/dist/modules/dom/attributes.js +1 -1
  31. package/dist/modules/dom/constants.js +1 -1
  32. package/dist/modules/dom/customcontrol.js +1 -1
  33. package/dist/modules/dom/customelement.js +2 -2
  34. package/dist/modules/dom/events.js +2 -2
  35. package/dist/modules/dom/focusmanager.js +1 -1
  36. package/dist/modules/dom/locale.js +1 -1
  37. package/dist/modules/dom/namespace.js +1 -1
  38. package/dist/modules/dom/resource/data.js +1 -1
  39. package/dist/modules/dom/resource/link/stylesheet.js +1 -1
  40. package/dist/modules/dom/resource/link.js +1 -1
  41. package/dist/modules/dom/resource/script.js +1 -1
  42. package/dist/modules/dom/resource.js +1 -1
  43. package/dist/modules/dom/resourcemanager.js +1 -1
  44. package/dist/modules/dom/template.js +1 -1
  45. package/dist/modules/dom/theme.js +1 -1
  46. package/dist/modules/dom/updater.js +2 -2
  47. package/dist/modules/dom/util.js +1 -1
  48. package/dist/modules/dom/worker/factory.js +1 -1
  49. package/dist/modules/i18n/formatter.js +1 -1
  50. package/dist/modules/i18n/locale.js +1 -1
  51. package/dist/modules/i18n/namespace.js +1 -1
  52. package/dist/modules/i18n/provider.js +1 -1
  53. package/dist/modules/i18n/providers/fetch.js +1 -1
  54. package/dist/modules/i18n/providers/namespace.js +1 -1
  55. package/dist/modules/i18n/translations.js +1 -1
  56. package/dist/modules/logging/handler/console.js +1 -1
  57. package/dist/modules/logging/handler/namespace.js +1 -1
  58. package/dist/modules/logging/handler.js +1 -1
  59. package/dist/modules/logging/logentry.js +1 -1
  60. package/dist/modules/logging/logger.js +1 -1
  61. package/dist/modules/logging/namespace.js +1 -1
  62. package/dist/modules/math/namespace.js +1 -1
  63. package/dist/modules/math/random.js +1 -1
  64. package/dist/modules/monster.js +1 -1
  65. package/dist/modules/namespace.js +1 -1
  66. package/dist/modules/text/formatter.js +1 -1
  67. package/dist/modules/text/namespace.js +1 -1
  68. package/dist/modules/types/base.js +1 -1
  69. package/dist/modules/types/basewithoptions.js +1 -1
  70. package/dist/modules/types/binary.js +1 -1
  71. package/dist/modules/types/dataurl.js +1 -1
  72. package/dist/modules/types/global.js +1 -1
  73. package/dist/modules/types/id.js +1 -1
  74. package/dist/modules/types/is.js +1 -1
  75. package/dist/modules/types/mediatype.js +1 -1
  76. package/dist/modules/types/namespace.js +1 -1
  77. package/dist/modules/types/node.js +1 -1
  78. package/dist/modules/types/nodelist.js +1 -1
  79. package/dist/modules/types/noderecursiveiterator.js +1 -1
  80. package/dist/modules/types/observer.js +1 -1
  81. package/dist/modules/types/observerlist.js +1 -1
  82. package/dist/modules/types/proxyobserver.js +1 -1
  83. package/dist/modules/types/queue.js +1 -1
  84. package/dist/modules/types/randomid.js +1 -1
  85. package/dist/modules/types/regex.js +1 -1
  86. package/dist/modules/types/stack.js +1 -1
  87. package/dist/modules/types/tokenlist.js +1 -1
  88. package/dist/modules/types/typeof.js +1 -1
  89. package/dist/modules/types/uniquequeue.js +1 -1
  90. package/dist/modules/types/uuid.js +1 -1
  91. package/dist/modules/types/validate.js +1 -1
  92. package/dist/modules/types/version.js +2 -2
  93. package/dist/modules/util/clone.js +1 -1
  94. package/dist/modules/util/comparator.js +1 -1
  95. package/dist/modules/util/deadmansswitch.js +2 -0
  96. package/dist/modules/util/freeze.js +1 -1
  97. package/dist/modules/util/namespace.js +1 -1
  98. package/dist/modules/util/processing.js +1 -1
  99. package/dist/modules/util/trimspaces.js +1 -1
  100. package/dist/monster.dev.js +497 -314
  101. package/dist/monster.dev.js.map +1 -1
  102. package/dist/monster.js +2 -2
  103. package/package.json +1 -1
  104. package/source/constraints/andoperator.js +5 -5
  105. package/source/constraints/invalid.js +3 -3
  106. package/source/constraints/isarray.js +3 -3
  107. package/source/constraints/isobject.js +3 -3
  108. package/source/constraints/oroperator.js +5 -5
  109. package/source/constraints/valid.js +3 -3
  110. package/source/data/buildmap.js +6 -5
  111. package/source/data/buildtree.js +2 -2
  112. package/source/data/datasource/restapi.js +3 -3
  113. package/source/data/datasource/storage/localstorage.js +2 -2
  114. package/source/data/datasource/storage/sessionstorage.js +2 -2
  115. package/source/data/datasource/storage.js +3 -3
  116. package/source/data/datasource.js +3 -3
  117. package/source/data/diff.js +3 -3
  118. package/source/data/extend.js +2 -2
  119. package/source/data/pathfinder.js +4 -4
  120. package/source/data/pipe.js +3 -3
  121. package/source/data/transformer.js +3 -3
  122. package/source/dom/assembler.js +2 -2
  123. package/source/dom/attributes.js +27 -27
  124. package/source/dom/customcontrol.js +1 -1
  125. package/source/dom/customelement.js +44 -18
  126. package/source/dom/events.js +66 -9
  127. package/source/dom/focusmanager.js +2 -2
  128. package/source/dom/locale.js +2 -2
  129. package/source/dom/resource/data.js +2 -2
  130. package/source/dom/resource/link/stylesheet.js +2 -2
  131. package/source/dom/resource/link.js +2 -2
  132. package/source/dom/resource/script.js +2 -2
  133. package/source/dom/resource.js +2 -2
  134. package/source/dom/resourcemanager.js +2 -2
  135. package/source/dom/template.js +5 -5
  136. package/source/dom/theme.js +3 -3
  137. package/source/dom/updater.js +45 -14
  138. package/source/dom/util.js +6 -6
  139. package/source/dom/worker/factory.js +2 -2
  140. package/source/i18n/formatter.js +4 -4
  141. package/source/i18n/locale.js +4 -4
  142. package/source/i18n/provider.js +2 -2
  143. package/source/i18n/providers/fetch.js +3 -3
  144. package/source/i18n/translations.js +4 -4
  145. package/source/logging/handler/console.js +2 -2
  146. package/source/logging/handler.js +2 -2
  147. package/source/logging/logentry.js +2 -2
  148. package/source/logging/logger.js +2 -2
  149. package/source/math/random.js +2 -2
  150. package/source/namespace.js +1 -1
  151. package/source/text/formatter.js +3 -3
  152. package/source/types/base.js +2 -2
  153. package/source/types/basewithoptions.js +32 -6
  154. package/source/types/binary.js +4 -4
  155. package/source/types/dataurl.js +4 -4
  156. package/source/types/global.js +4 -4
  157. package/source/types/id.js +2 -2
  158. package/source/types/is.js +20 -20
  159. package/source/types/mediatype.js +4 -4
  160. package/source/types/node.js +2 -2
  161. package/source/types/nodelist.js +2 -2
  162. package/source/types/noderecursiveiterator.js +4 -4
  163. package/source/types/observer.js +5 -13
  164. package/source/types/observerlist.js +2 -2
  165. package/source/types/proxyobserver.js +5 -5
  166. package/source/types/queue.js +3 -3
  167. package/source/types/randomid.js +2 -2
  168. package/source/types/regex.js +2 -2
  169. package/source/types/stack.js +2 -2
  170. package/source/types/tokenlist.js +2 -2
  171. package/source/types/typeof.js +3 -3
  172. package/source/types/uniquequeue.js +2 -2
  173. package/source/types/uuid.js +2 -2
  174. package/source/types/validate.js +20 -20
  175. package/source/types/version.js +6 -6
  176. package/source/util/clone.js +2 -2
  177. package/source/util/comparator.js +3 -3
  178. package/source/util/deadmansswitch.js +124 -0
  179. package/source/util/freeze.js +2 -2
  180. package/source/util/processing.js +3 -3
  181. package/source/util/trimspaces.js +2 -2
  182. package/test/cases/dom/customelement.js +55 -3
  183. package/test/cases/dom/events.js +66 -1
  184. package/test/cases/dom/updater.js +76 -3
  185. package/test/cases/math/random.js +3 -0
  186. package/test/cases/monster.js +1 -1
  187. package/test/cases/util/deadmansswitch.js +71 -0
  188. package/test/web/import.js +1 -0
  189. package/test/web/monster-dev.html +3 -3
  190. package/test/web/monster.html +2 -2
  191. package/test/web/test.html +4 -3
  192. package/test/web/tests.js +2 -2
@@ -20,7 +20,7 @@ import {ATTRIBUTE_OBJECTLINK} from "./constants.js";
20
20
  *
21
21
  * ```
22
22
  * <script type="module">
23
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
23
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.29.2/dist/monster.js';
24
24
  * console.log(Monster.DOM.findClosestObjectLink())
25
25
  * </script>
26
26
  * ```
@@ -29,7 +29,7 @@ import {ATTRIBUTE_OBJECTLINK} from "./constants.js";
29
29
  *
30
30
  * ```
31
31
  * <script type="module">
32
- * import {getUpdaterFromNode} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/dom/updater.js';
32
+ * import {getUpdaterFromNode} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.29.2/dist/modules/dom/updater.js';
33
33
  * console.log(findClosestObjectLink())
34
34
  * </script>
35
35
  * ```
@@ -50,7 +50,7 @@ function findClosestObjectLink(element) {
50
50
  *
51
51
  * ```
52
52
  * <script type="module">
53
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
53
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.29.2/dist/monster.js';
54
54
  * Monster.DOM.addToObjectLink();
55
55
  * </script>
56
56
  * ```
@@ -59,7 +59,7 @@ function findClosestObjectLink(element) {
59
59
  *
60
60
  * ```
61
61
  * <script type="module">
62
- * import {addToObjectLink} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/dom/attributes.js';
62
+ * import {addToObjectLink} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.29.2/dist/modules/dom/attributes.js';
63
63
  * addToObjectLink();
64
64
  * </script>
65
65
  * ```
@@ -92,7 +92,7 @@ function addToObjectLink(element, symbol, object) {
92
92
  *
93
93
  * ```
94
94
  * <script type="module">
95
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
95
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.29.2/dist/monster.js';
96
96
  * Monster.DOM.removeObjectLink();
97
97
  * </script>
98
98
  * ```
@@ -101,7 +101,7 @@ function addToObjectLink(element, symbol, object) {
101
101
  *
102
102
  * ```
103
103
  * <script type="module">
104
- * import {removeObjectLink} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/dom/attributes.js';
104
+ * import {removeObjectLink} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.29.2/dist/modules/dom/attributes.js';
105
105
  * removeObjectLink();
106
106
  * </script>
107
107
  * ```
@@ -134,7 +134,7 @@ function removeObjectLink(element, symbol) {
134
134
  *
135
135
  * ```
136
136
  * <script type="module">
137
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
137
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.29.2/dist/monster.js';
138
138
  * Monster.DOM.hasObjectLink();
139
139
  * </script>
140
140
  * ```
@@ -143,7 +143,7 @@ function removeObjectLink(element, symbol) {
143
143
  *
144
144
  * ```
145
145
  * <script type="module">
146
- * import {hasObjectLink} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/dom/attributes.js';
146
+ * import {hasObjectLink} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.29.2/dist/modules/dom/attributes.js';
147
147
  * hasObjectLink();
148
148
  * </script>
149
149
  * ```
@@ -180,7 +180,7 @@ function hasObjectLink(element, symbol) {
180
180
  *
181
181
  * ```
182
182
  * <script type="module">
183
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
183
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.29.2/dist/monster.js';
184
184
  * Monster.DOM.getLinkedObjects();
185
185
  * </script>
186
186
  * ```
@@ -189,7 +189,7 @@ function hasObjectLink(element, symbol) {
189
189
  *
190
190
  * ```
191
191
  * <script type="module">
192
- * import {getLinkedObjects} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/dom/attributes.js';
192
+ * import {getLinkedObjects} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.29.2/dist/modules/dom/attributes.js';
193
193
  * getLinkedObjects();
194
194
  * </script>
195
195
  * ```
@@ -225,7 +225,7 @@ function getLinkedObjects(element, symbol) {
225
225
  *
226
226
  * ```
227
227
  * <script type="module">
228
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
228
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.29.2/dist/monster.js';
229
229
  * Monster.DOM.toggleAttributeToken();
230
230
  * </script>
231
231
  * ```
@@ -234,7 +234,7 @@ function getLinkedObjects(element, symbol) {
234
234
  *
235
235
  * ```
236
236
  * <script type="module">
237
- * import {toggleAttributeToken} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/dom/attributes.js';
237
+ * import {toggleAttributeToken} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.29.2/dist/modules/dom/attributes.js';
238
238
  * toggleAttributeToken();
239
239
  * </script>
240
240
  * ```
@@ -263,13 +263,13 @@ function toggleAttributeToken(element, key, token) {
263
263
  }
264
264
 
265
265
  /**
266
- * this method can be used to add a token to an attribute. Tokens are always separated by a space.
266
+ * This method can be used to add a token to an attribute. Tokens are always separated by a space.
267
267
  *
268
268
  * You can call the method via the monster namespace `new Monster.DOM.addAttributeToken()`.
269
269
  *
270
270
  * ```
271
271
  * <script type="module">
272
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
272
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.29.2/dist/monster.js';
273
273
  * Monster.DOM.addAttributeToken();
274
274
  * </script>
275
275
  * ```
@@ -278,7 +278,7 @@ function toggleAttributeToken(element, key, token) {
278
278
  *
279
279
  * ```
280
280
  * <script type="module">
281
- * import {addAttributeToken} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/dom/attributes.js';
281
+ * import {addAttributeToken} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.29.2/dist/modules/dom/attributes.js';
282
282
  * addAttributeToken();
283
283
  * </script>
284
284
  * ```
@@ -315,7 +315,7 @@ function addAttributeToken(element, key, token) {
315
315
  *
316
316
  * ```
317
317
  * <script type="module">
318
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
318
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.29.2/dist/monster.js';
319
319
  * Monster.DOM.removeAttributeToken();
320
320
  * </script>
321
321
  * ```
@@ -324,7 +324,7 @@ function addAttributeToken(element, key, token) {
324
324
  *
325
325
  * ```
326
326
  * <script type="module">
327
- * import {removeAttributeToken} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/dom/attributes.js';
327
+ * import {removeAttributeToken} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.29.2/dist/modules/dom/attributes.js';
328
328
  * removeAttributeToken();
329
329
  * </script>
330
330
  * ```
@@ -360,7 +360,7 @@ function removeAttributeToken(element, key, token) {
360
360
  *
361
361
  * ```
362
362
  * <script type="module">
363
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
363
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.29.2/dist/monster.js';
364
364
  * Monster.DOM.containsAttributeToken();
365
365
  * </script>
366
366
  * ```
@@ -369,7 +369,7 @@ function removeAttributeToken(element, key, token) {
369
369
  *
370
370
  * ```
371
371
  * <script type="module">
372
- * import {containsAttributeToken} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/dom/attributes.js';
372
+ * import {containsAttributeToken} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.29.2/dist/modules/dom/attributes.js';
373
373
  * containsAttributeToken();
374
374
  * </script>
375
375
  * ```
@@ -402,7 +402,7 @@ function containsAttributeToken(element, key, token) {
402
402
  *
403
403
  * ```
404
404
  * <script type="module">
405
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
405
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.29.2/dist/monster.js';
406
406
  * Monster.DOM.replaceAttributeToken();
407
407
  * </script>
408
408
  * ```
@@ -411,7 +411,7 @@ function containsAttributeToken(element, key, token) {
411
411
  *
412
412
  * ```
413
413
  * <script type="module">
414
- * import {replaceAttributeToken} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/dom/attributes.js';
414
+ * import {replaceAttributeToken} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.29.2/dist/modules/dom/attributes.js';
415
415
  * replaceAttributeToken();
416
416
  * </script>
417
417
  * ```
@@ -447,7 +447,7 @@ function replaceAttributeToken(element, key, from, to) {
447
447
  *
448
448
  * ```
449
449
  * <script type="module">
450
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
450
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.29.2/dist/monster.js';
451
451
  * Monster.DOM.clearAttributeTokens();
452
452
  * </script>
453
453
  * ```
@@ -456,7 +456,7 @@ function replaceAttributeToken(element, key, from, to) {
456
456
  *
457
457
  * ```
458
458
  * <script type="module">
459
- * import {clearAttributeTokens} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/dom/attributes.js';
459
+ * import {clearAttributeTokens} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.29.2/dist/modules/dom/attributes.js';
460
460
  * clearAttributeTokens();
461
461
  * </script>
462
462
  * ```
@@ -504,7 +504,7 @@ function clearAttributeTokens(element, key) {
504
504
  *
505
505
  * ```
506
506
  * <script type="module">
507
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
507
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.29.2/dist/monster.js';
508
508
  * Monster.DOM.findClosestByAttribute();
509
509
  * </script>
510
510
  * ```
@@ -513,7 +513,7 @@ function clearAttributeTokens(element, key) {
513
513
  *
514
514
  * ```
515
515
  * <script type="module">
516
- * import {findClosestByAttribute} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/dom/attributes.js';
516
+ * import {findClosestByAttribute} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.29.2/dist/modules/dom/attributes.js';
517
517
  * findClosestByAttribute();
518
518
  * </script>
519
519
  * ```
@@ -569,7 +569,7 @@ function findClosestByAttribute(element, key, value) {
569
569
  *
570
570
  * ```
571
571
  * <script type="module">
572
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
572
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.29.2/dist/monster.js';
573
573
  * Monster.DOM.findClosestByClass();
574
574
  * </script>
575
575
  * ```
@@ -578,7 +578,7 @@ function findClosestByAttribute(element, key, value) {
578
578
  *
579
579
  * ```
580
580
  * <script type="module">
581
- * import {findClosestByClass} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/dom/attributes.js';
581
+ * import {findClosestByClass} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.29.2/dist/modules/dom/attributes.js';
582
582
  * findClosestByClass();
583
583
  * </script>
584
584
  * ```
@@ -30,7 +30,7 @@ const attachedInternalSymbol = Symbol('attachedInternal');
30
30
  *
31
31
  * ```
32
32
  * <script type="module">
33
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
33
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.29.2/dist/monster.js';
34
34
  * document.createElement('monster-')
35
35
  * </script>
36
36
  * ```
@@ -3,7 +3,7 @@
3
3
  /**
4
4
  * @author schukai GmbH
5
5
  */
6
-
6
+
7
7
  import {internalSymbol} from "../constants.js";
8
8
  import {extend} from "../data/extend.js";
9
9
  import {Pathfinder} from "../data/pathfinder.js";
@@ -13,13 +13,14 @@ import {getGlobalObject} from "../types/global.js";
13
13
  import {isArray, isFunction, isObject, isString} from "../types/is.js";
14
14
  import {Observer} from "../types/observer.js";
15
15
  import {ProxyObserver} from "../types/proxyobserver.js";
16
- import {validateFunction, validateInstance, validateObject} from "../types/validate.js";
16
+ import {validateFunction, validateInstance, validateObject, validateString} from "../types/validate.js";
17
17
  import {clone} from "../util/clone.js";
18
- import {addToObjectLink, getLinkedObjects, hasObjectLink} from "./attributes.js";
19
- import {ATTRIBUTE_DISABLED, ATTRIBUTE_OPTIONS, objectUpdaterLinkSymbol} from "./constants.js";
18
+ import {addToObjectLink, addAttributeToken,getLinkedObjects, hasObjectLink} from "./attributes.js";
19
+ import {ATTRIBUTE_DISABLED, ATTRIBUTE_OPTIONS,ATTRIBUTE_ERRORMESSAGE, objectUpdaterLinkSymbol} from "./constants.js";
20
20
  import {findDocumentTemplate, Template} from "./template.js";
21
21
  import {Updater} from "./updater.js";
22
22
 
23
+
23
24
  /**
24
25
  * @memberOf Monster.DOM
25
26
  * @type {symbol}
@@ -96,7 +97,7 @@ const attributeObserverSymbol = Symbol('attributeObserver');
96
97
  *
97
98
  * ```
98
99
  * <script type="module">
99
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
100
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.29.2/dist/monster.js';
100
101
  * document.createElement('monster-')
101
102
  * </script>
102
103
  * ```
@@ -415,7 +416,7 @@ class CustomElement extends HTMLElement {
415
416
  try {
416
417
  initCSSStylesheet.call(this);
417
418
  } catch (e) {
418
-
419
+ addAttributeToken(self, ATTRIBUTE_ERRORMESSAGE, e.toString());
419
420
  }
420
421
  }
421
422
 
@@ -521,36 +522,49 @@ class CustomElement extends HTMLElement {
521
522
 
522
523
  /**
523
524
  * @private
524
- * @param {String} filter
525
+ * @param {String|undefined} query
526
+ * @param {String|undefined|null} name name of the slot (if the parameter is undefined, all slots are searched, if the parameter has the value null, all slots without a name are searched. if a string is specified, the slots with this name are searched.)
525
527
  * @return {*}
526
528
  * @this CustomElement
527
529
  * @since 1.23.0
530
+ * @throws {Error} query must be a string
528
531
  */
529
- function getSlottedElements(filter) {
532
+ function getSlottedElements(query, name) {
530
533
  const self = this;
531
534
  const result = new Set;
532
535
 
533
-
534
536
  if (!(self.shadowRoot instanceof ShadowRoot)) {
535
537
  return result;
536
538
  }
537
539
 
538
- const slots = self.shadowRoot.querySelectorAll('slot');
540
+ let selector = 'slot';
541
+ if (name !== undefined) {
542
+ if (name === null) {
543
+ selector += ':not([name])';
544
+ } else {
545
+ selector += '[name=' + validateString(name) + ']';
546
+ }
547
+
548
+ }
549
+
550
+ const slots = self.shadowRoot.querySelectorAll(selector);
539
551
 
540
552
  for (const [, slot] of Object.entries(slots)) {
541
553
  slot.assignedElements().forEach(function (node) {
542
554
 
543
555
  if (!(node instanceof HTMLElement)) return;
544
556
 
545
- if (filter !== undefined) {
546
- node.querySelectorAll(filter).forEach(function (n) {
557
+ if (isString(query)) {
558
+ node.querySelectorAll(query).forEach(function (n) {
547
559
  result.add(n);
548
560
  });
549
561
 
550
- if (node.matches(filter)) {
562
+ if (node.matches(query)) {
551
563
  result.add(node);
552
564
  }
553
565
 
566
+ } else if (query !== undefined) {
567
+ throw new Error('query must be a string')
554
568
  } else {
555
569
  result.add(node);
556
570
  }
@@ -649,7 +663,7 @@ function initOptionObserver() {
649
663
  }));
650
664
 
651
665
  // disabled
652
- self[attributeObserverSymbol][ATTRIBUTE_DISABLED] = (newVal) => {
666
+ self[attributeObserverSymbol][ATTRIBUTE_DISABLED] = () => {
653
667
  if (self.hasAttribute(ATTRIBUTE_DISABLED)) {
654
668
  self.setOption(ATTRIBUTE_DISABLED, true);
655
669
  } else {
@@ -742,6 +756,7 @@ function initHtmlContent() {
742
756
  * @memberOf Monster.DOM
743
757
  * @this CustomElement
744
758
  * @since 1.16.0
759
+ * @throws {TypeError} value is not an instance of
745
760
  */
746
761
  function initCSSStylesheet() {
747
762
  const self = this;
@@ -751,10 +766,20 @@ function initCSSStylesheet() {
751
766
  }
752
767
 
753
768
  const styleSheet = this.constructor.getCSSStyleSheet();
769
+
754
770
  if (styleSheet instanceof CSSStyleSheet) {
755
771
  this.shadowRoot.adoptedStyleSheets = [styleSheet];
756
772
  } else if (isArray(styleSheet)) {
757
- this.shadowRoot.adoptedStyleSheets = styleSheet;
773
+ const assign = [];
774
+ for (let s of styleSheet) {
775
+ validateInstance(s, CSSStyleSheet);
776
+ assign.push(s);
777
+ }
778
+
779
+ if (assign.length > 0) {
780
+ this.shadowRoot.adoptedStyleSheets = assign;
781
+ }
782
+
758
783
  } else if (isString(styleSheet)) {
759
784
  const style = self.shadowRoot.createElement('<style>')
760
785
  style.innerText = styleSheet;
@@ -836,12 +861,12 @@ function assignUpdaterToElement(elements, object) {
836
861
  ])
837
862
  }
838
863
 
839
- let result = [];
864
+ let result = [];
840
865
 
841
866
  elements.forEach((element) => {
842
867
  if (!(element instanceof HTMLElement)) return;
843
868
  if ((element instanceof HTMLTemplateElement)) return;
844
-
869
+
845
870
  const u = new Updater(element, object)
846
871
  updaters.add(u);
847
872
 
@@ -866,5 +891,6 @@ export {
866
891
  initMethodSymbol,
867
892
  assembleMethodSymbol,
868
893
  assignUpdaterToElement,
869
- attributeObserverSymbol
894
+ attributeObserverSymbol,
895
+ getSlottedElements
870
896
  }
@@ -1,10 +1,11 @@
1
1
  'use strict';
2
2
 
3
+
3
4
  /**
4
5
  * @author schukai GmbH
5
6
  */
6
7
  import {assignToNamespace, Monster} from '../namespace.js';
7
- import {isArray} from "../types/is.js";
8
+ import {isArray,isObject} from "../types/is.js";
8
9
  import {validateInstance, validateString} from "../types/validate.js";
9
10
  import {getDocument} from "./util.js";
10
11
 
@@ -13,8 +14,8 @@ import {getDocument} from "./util.js";
13
14
  *
14
15
  * ```
15
16
  * <script type="module">
16
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
17
- * console.log(new Monster.DOM.fireEvent())
17
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.29.2/dist/monster.js';
18
+ * new Monster.DOM.fireEvent()
18
19
  * </script>
19
20
  * ```
20
21
  *
@@ -22,8 +23,8 @@ import {getDocument} from "./util.js";
22
23
  *
23
24
  * ```
24
25
  * <script type="module">
25
- * import {fireEvent} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/dom/events.js';
26
- * console.log(fireEvent())
26
+ * import {fireEvent} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.29.2/dist/modules/dom/events.js';
27
+ * fireEvent()
27
28
  * </script>
28
29
  * ```
29
30
  *
@@ -64,6 +65,62 @@ function fireEvent(element, type) {
64
65
 
65
66
  }
66
67
 
68
+ /**
69
+ * You can call the function via the monster namespace `new Monster.DOM.fireCustomEvent()`.
70
+ *
71
+ * ```
72
+ * <script type="module">
73
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.29.2/dist/monster.js';
74
+ * new Monster.DOM.fireCustomEvent()
75
+ * </script>
76
+ * ```
77
+ *
78
+ * Alternatively, you can also integrate this function individually.
79
+ *
80
+ * ```
81
+ * <script type="module">
82
+ * import {fireCustomEvent} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.29.2/dist/modules/dom/events.js';
83
+ * fireCustomEvent()
84
+ * </script>
85
+ * ```
86
+ *
87
+ * @param {HTMLElement|HTMLCollection|NodeList} element
88
+ * @param {string} type
89
+ * @return {void}
90
+ * @since 1.29.0
91
+ * @copyright schukai GmbH
92
+ * @memberOf Monster.DOM
93
+ * @throws {TypeError} value is not an instance of HTMLElement or HTMLCollection
94
+ * @summary Construct and send and event
95
+ */
96
+ function fireCustomEvent(element, type, detail) {
97
+
98
+ const document = getDocument();
99
+
100
+ if (element instanceof HTMLElement) {
101
+
102
+ if (!isObject(detail)) {
103
+ detail = {detail};
104
+ }
105
+
106
+ let event = new CustomEvent(validateString(type), {
107
+ bubbles: true,
108
+ cancelable: true,
109
+ detail
110
+ });
111
+
112
+ element.dispatchEvent(event);
113
+
114
+ } else if (element instanceof HTMLCollection || element instanceof NodeList) {
115
+ for (let e of element) {
116
+ fireCustomEvent(e, type, detail);
117
+ }
118
+ } else {
119
+ throw new TypeError('value is not an instance of HTMLElement or HTMLCollection')
120
+ }
121
+
122
+ }
123
+
67
124
  /**
68
125
  * This function gets the path `Event.composedPath()` from an event and tries to find the next element
69
126
  * up the tree `element.closest()` with the attribute and value. If no value, or a value that is undefined or null,
@@ -73,7 +130,7 @@ function fireEvent(element, type) {
73
130
  *
74
131
  * ```
75
132
  * <script type="module">
76
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
133
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.29.2/dist/monster.js';
77
134
  * new Monster.DOM.findTargetElementFromEvent()
78
135
  * </script>
79
136
  * ```
@@ -82,7 +139,7 @@ function fireEvent(element, type) {
82
139
  *
83
140
  * ```
84
141
  * <script type="module">
85
- * import {findTargetElementFromEvent} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/dom/events.js';
142
+ * import {findTargetElementFromEvent} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.29.2/dist/modules/dom/events.js';
86
143
  * findTargetElementFromEvent()
87
144
  * </script>
88
145
  * ```
@@ -124,5 +181,5 @@ function findTargetElementFromEvent(event, attributeName, attributeValue) {
124
181
  }
125
182
 
126
183
 
127
- assignToNamespace('Monster.DOM', findTargetElementFromEvent, fireEvent);
128
- export {Monster, findTargetElementFromEvent, fireEvent}
184
+ assignToNamespace('Monster.DOM', findTargetElementFromEvent, fireEvent, fireCustomEvent);
185
+ export {Monster, findTargetElementFromEvent, fireEvent, fireCustomEvent}
@@ -41,7 +41,7 @@ const stackSymbol = Symbol('stack');
41
41
  *
42
42
  * ```
43
43
  * <script type="module">
44
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
44
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.29.2/dist/monster.js';
45
45
  * new Monster.DOM.FocusManager()
46
46
  * </script>
47
47
  * ```
@@ -50,7 +50,7 @@ const stackSymbol = Symbol('stack');
50
50
  *
51
51
  * ```
52
52
  * <script type="module">
53
- * import {FocusManager} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/dom/focusmanager.js';
53
+ * import {FocusManager} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.29.2/dist/modules/dom/focusmanager.js';
54
54
  * new FocusManager()
55
55
  * </script>
56
56
  * ```
@@ -26,7 +26,7 @@ const DEFAULT_LANGUAGE = 'en';
26
26
  *
27
27
  * ```
28
28
  * <script type="module">
29
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
29
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.29.2/dist/monster.js';
30
30
  * new Monster.DOM.getLocaleOfDocument()
31
31
  * </script>
32
32
  * ```
@@ -35,7 +35,7 @@ const DEFAULT_LANGUAGE = 'en';
35
35
  *
36
36
  * ```
37
37
  * <script type="module">
38
- * import {getLocaleOfDocument} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/dom/locale.js';
38
+ * import {getLocaleOfDocument} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.29.2/dist/modules/dom/locale.js';
39
39
  * new getLocaleOfDocument()
40
40
  * </script>
41
41
  * ```
@@ -27,7 +27,7 @@ import {KEY_DOCUMENT, KEY_QUERY, referenceSymbol, Resource} from "../resource.js
27
27
  *
28
28
  * ```
29
29
  * <script type="module">
30
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
30
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.29.2/dist/monster.js';
31
31
  * new Monster.DOM.Resource.Data()
32
32
  * </script>
33
33
  * ```
@@ -36,7 +36,7 @@ import {KEY_DOCUMENT, KEY_QUERY, referenceSymbol, Resource} from "../resource.js
36
36
  *
37
37
  * ```
38
38
  * <script type="module">
39
- * import {Data} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/dom/resource/data.js';
39
+ * import {Data} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.29.2/dist/modules/dom/resource/data.js';
40
40
  * new Data()
41
41
  * </script>
42
42
  * ```
@@ -16,7 +16,7 @@ import {Link} from "../link.js";
16
16
  *
17
17
  * ```
18
18
  * <script type="module">
19
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
19
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.29.2/dist/monster.js';
20
20
  * new Monster.DOM.Resource.Link.Stylesheet()
21
21
  * </script>
22
22
  * ```
@@ -25,7 +25,7 @@ import {Link} from "../link.js";
25
25
  *
26
26
  * ```
27
27
  * <script type="module">
28
- * import {Style} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/dom/resource/link/stylesheet.js';
28
+ * import {Style} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.29.2/dist/modules/dom/resource/link/stylesheet.js';
29
29
  * new Stylesheet()
30
30
  * </script>
31
31
  * ```
@@ -24,7 +24,7 @@ import {KEY_DOCUMENT, referenceSymbol, Resource} from "../resource.js";
24
24
  *
25
25
  * ```
26
26
  * <script type="module">
27
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
27
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.29.2/dist/monster.js';
28
28
  * new Monster.DOM.Resource.Link()
29
29
  * </script>
30
30
  * ```
@@ -33,7 +33,7 @@ import {KEY_DOCUMENT, referenceSymbol, Resource} from "../resource.js";
33
33
  *
34
34
  * ```
35
35
  * <script type="module">
36
- * import {Link} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/dom/resource/link.js';
36
+ * import {Link} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.29.2/dist/modules/dom/resource/link.js';
37
37
  * new Link()
38
38
  * </script>
39
39
  * ```
@@ -25,7 +25,7 @@ import {KEY_DOCUMENT, referenceSymbol, Resource} from "../resource.js";
25
25
  *
26
26
  * ```
27
27
  * <script type="module">
28
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
28
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.29.2/dist/monster.js';
29
29
  * new Monster.DOM.Resource.Script()
30
30
  * </script>
31
31
  * ```
@@ -34,7 +34,7 @@ import {KEY_DOCUMENT, referenceSymbol, Resource} from "../resource.js";
34
34
  *
35
35
  * ```
36
36
  * <script type="module">
37
- * import {Script} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/dom/resource/script.js';
37
+ * import {Script} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.29.2/dist/modules/dom/resource/script.js';
38
38
  * new Script()
39
39
  * </script>
40
40
  * ```
@@ -47,7 +47,7 @@ export const referenceSymbol = Symbol('reference');
47
47
  *
48
48
  * ```
49
49
  * <script type="module">
50
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
50
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.29.2/dist/monster.js';
51
51
  * new Monster.DOM.Resource()
52
52
  * </script>
53
53
  * ```
@@ -56,7 +56,7 @@ export const referenceSymbol = Symbol('reference');
56
56
  *
57
57
  * ```
58
58
  * <script type="module">
59
- * import {Resource} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/dom/resource.js';
59
+ * import {Resource} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.29.2/dist/modules/dom/resource.js';
60
60
  * new Resource()
61
61
  * </script>
62
62
  * ```