@schukai/monster 1.26.0 → 1.28.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (193) hide show
  1. package/CHANGELOG +36 -1
  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 +2 -2
  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 +2 -2
  31. package/dist/modules/dom/constants.js +2 -2
  32. package/dist/modules/dom/customcontrol.js +1 -1
  33. package/dist/modules/dom/customelement.js +1 -1
  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 +2 -2
  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 +2 -2
  78. package/dist/modules/types/nodelist.js +2 -2
  79. package/dist/modules/types/noderecursiveiterator.js +2 -2
  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/freeze.js +1 -1
  96. package/dist/modules/util/namespace.js +1 -1
  97. package/dist/modules/util/processing.js +1 -1
  98. package/dist/modules/util/trimspaces.js +1 -1
  99. package/dist/monster.dev.js +883 -604
  100. package/dist/monster.dev.js.map +1 -1
  101. package/dist/monster.js +2 -2
  102. package/package.json +1 -1
  103. package/source/constraints/andoperator.js +5 -5
  104. package/source/constraints/invalid.js +3 -3
  105. package/source/constraints/isarray.js +3 -3
  106. package/source/constraints/isobject.js +3 -3
  107. package/source/constraints/oroperator.js +5 -5
  108. package/source/constraints/valid.js +3 -3
  109. package/source/data/buildmap.js +8 -10
  110. package/source/data/buildtree.js +51 -17
  111. package/source/data/datasource/restapi.js +3 -3
  112. package/source/data/datasource/storage/localstorage.js +2 -2
  113. package/source/data/datasource/storage/sessionstorage.js +2 -2
  114. package/source/data/datasource/storage.js +3 -3
  115. package/source/data/datasource.js +3 -3
  116. package/source/data/diff.js +3 -3
  117. package/source/data/extend.js +2 -2
  118. package/source/data/pathfinder.js +4 -4
  119. package/source/data/pipe.js +3 -3
  120. package/source/data/transformer.js +3 -3
  121. package/source/dom/assembler.js +2 -2
  122. package/source/dom/attributes.js +111 -28
  123. package/source/dom/constants.js +17 -1
  124. package/source/dom/customcontrol.js +1 -1
  125. package/source/dom/customelement.js +1 -1
  126. package/source/dom/events.js +68 -12
  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 +55 -15
  136. package/source/dom/theme.js +3 -3
  137. package/source/dom/updater.js +156 -96
  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 +2 -2
  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 +33 -2
  161. package/source/types/nodelist.js +9 -5
  162. package/source/types/noderecursiveiterator.js +29 -7
  163. package/source/types/observer.js +3 -3
  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/freeze.js +2 -2
  179. package/source/util/processing.js +3 -3
  180. package/source/util/trimspaces.js +2 -2
  181. package/test/cases/data/buildtree.js +84 -21
  182. package/test/cases/dom/attributes.js +29 -6
  183. package/test/cases/dom/events.js +66 -1
  184. package/test/cases/dom/template.js +72 -14
  185. package/test/cases/dom/updater.js +102 -75
  186. package/test/cases/monster.js +1 -1
  187. package/test/cases/types/node.js +57 -1
  188. package/test/cases/types/nodelist.js +7 -0
  189. package/test/cases/types/noderecursiveiterator.js +21 -0
  190. package/test/web/monster-dev.html +3 -3
  191. package/test/web/monster.html +2 -2
  192. package/test/web/test.html +3 -3
  193. package/test/web/tests.js +2 -2
@@ -1,4 +1,4 @@
1
- /** Monster 1.26.0, © 2021 schukai GmbH, Released under the AGPL 3.0 License. */
1
+ /** Monster 1.28.1, © 2021 schukai GmbH, Released under the AGPL 3.0 License. */
2
2
  (function webpackUniversalModuleDefinition(root, factory) {
3
3
  if(typeof exports === 'object' && typeof module === 'object')
4
4
  module.exports = factory();
@@ -140,7 +140,7 @@ var Monster = new Namespace("Monster");
140
140
  *
141
141
  * ```
142
142
  * <script type="module">
143
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/monster.js';
143
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/monster.js';
144
144
  * function hello() {
145
145
  * console.log('Hello World!');
146
146
  * }
@@ -387,7 +387,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
387
387
  *
388
388
  * ```
389
389
  * <script type="module">
390
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/monster.js';
390
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/monster.js';
391
391
  * new Monster.Types.Base()
392
392
  * </script>
393
393
  * ```
@@ -396,7 +396,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
396
396
  *
397
397
  * ```
398
398
  * <script type="module">
399
- * import {Base} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/types/base.js';
399
+ * import {Base} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/types/base.js';
400
400
  * new Base()
401
401
  * </script>
402
402
  * ```
@@ -568,7 +568,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
568
568
  *
569
569
  * ```
570
570
  * <script type="module">
571
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/monster.js';
571
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/monster.js';
572
572
  * new Monster.Constraint.AndOperator();
573
573
  * </script>
574
574
  * ```
@@ -577,16 +577,16 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
577
577
  *
578
578
  * ```
579
579
  * <script type="module">
580
- * import {AndOperator} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/constraints/andoperator.js';
580
+ * import {AndOperator} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/constraints/andoperator.js';
581
581
  * new AndOperator();
582
582
  * </script>
583
583
  * ```
584
584
  *
585
585
  * @example
586
586
  *
587
- * import {Valid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/constraints/valid.js';
588
- * import {Invalid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/constraints/invalid.js';
589
- * import {AndOperator} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/constraints/andoperator.js';
587
+ * import {Valid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/constraints/valid.js';
588
+ * import {Invalid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/constraints/invalid.js';
589
+ * import {AndOperator} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/constraints/andoperator.js';
590
590
  *
591
591
  * new AndOperator(
592
592
  * new Valid(), new Valid()).isValid()
@@ -688,7 +688,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
688
688
  *
689
689
  * ```
690
690
  * <script type="module">
691
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/monster.js';
691
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/monster.js';
692
692
  * new Monster.Constraint.Invalid();
693
693
  * </script>
694
694
  * ```
@@ -697,14 +697,14 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
697
697
  *
698
698
  * ```
699
699
  * <script type="module">
700
- * import {Invalid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/constraints/invalid.js';
700
+ * import {Invalid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/constraints/invalid.js';
701
701
  * new Invalid();
702
702
  * </script>
703
703
  * ```
704
704
  *
705
705
  * @example
706
706
  *
707
- * import {Invalid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/constraints/invalid.js';
707
+ * import {Invalid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/constraints/invalid.js';
708
708
  *
709
709
  * new Invalid().isValid()
710
710
  * .then(()=>console.log(true))
@@ -799,7 +799,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
799
799
  *
800
800
  * ```
801
801
  * <script type="module">
802
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/monster.js';
802
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/monster.js';
803
803
  * new Monster.Constraint.IsArray()
804
804
  * </script>
805
805
  * ```
@@ -808,14 +808,14 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
808
808
  *
809
809
  * ```
810
810
  * <script type="module">
811
- * import {IsArray} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/constraints/isarray.js';
811
+ * import {IsArray} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/constraints/isarray.js';
812
812
  * console.log(new IsArray())
813
813
  * </script>
814
814
  * ```
815
815
  *
816
816
  * @example
817
817
  *
818
- * import {IsArray} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/constraints/isarray.js';
818
+ * import {IsArray} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/constraints/isarray.js';
819
819
  *
820
820
  * new IsArray()
821
821
  * .isValid([])
@@ -904,7 +904,7 @@ function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "functi
904
904
  *
905
905
  * ```
906
906
  * <script type="module">
907
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/monster.js';
907
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/monster.js';
908
908
  * Monster.Types.isIterable(null) // ↦ false
909
909
  * Monster.Types.isIterable('hello') // ↦ true
910
910
  * Monster.Types.isIterable([]) // ↦ true
@@ -915,7 +915,7 @@ function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "functi
915
915
  *
916
916
  * ```
917
917
  * <script type="module">
918
- * import {isIterable} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/types/is.js';
918
+ * import {isIterable} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/types/is.js';
919
919
  * isIterable(null) // ↦ false
920
920
  * isIterable('hello') // ↦ true
921
921
  * isIterable([]) // ↦ true
@@ -943,7 +943,7 @@ function isIterable(value) {
943
943
  *
944
944
  * ```
945
945
  * <script type="module">
946
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/monster.js';
946
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/monster.js';
947
947
  * Monster.Types.isPrimitive('2') // ↦ false
948
948
  * Monster.Types.isPrimitive([]) // ↦ true
949
949
  * </script>
@@ -953,7 +953,7 @@ function isIterable(value) {
953
953
  *
954
954
  * ```
955
955
  * <script type="module">
956
- * import {isPrimitive} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/types/is.js';
956
+ * import {isPrimitive} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/types/is.js';
957
957
  * isPrimitive('2')) // ↦ true
958
958
  * isPrimitive([])) // ↦ false
959
959
  * </script>
@@ -991,7 +991,7 @@ function isPrimitive(value) {
991
991
  *
992
992
  * ```
993
993
  * <script type="module">
994
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/monster.js';
994
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/monster.js';
995
995
  * Monster.Types.isSymbol('2') // ↦ false
996
996
  * Monster.Types.isSymbol(Symbol('test') // ↦ true
997
997
  * </script>
@@ -1001,7 +1001,7 @@ function isPrimitive(value) {
1001
1001
  *
1002
1002
  * ```
1003
1003
  * <script type="module">
1004
- * import {isSymbol} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/types/is.js';
1004
+ * import {isSymbol} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/types/is.js';
1005
1005
  * isSymbol(Symbol('a'))) // ↦ true
1006
1006
  * isSymbol([]) // ↦ false
1007
1007
  * </script>
@@ -1027,7 +1027,7 @@ function isSymbol(value) {
1027
1027
  *
1028
1028
  * ```
1029
1029
  * <script type="module">
1030
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/monster.js';
1030
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/monster.js';
1031
1031
  * Monster.Types.isBoolean('2') // ↦ false
1032
1032
  * Monster.Types.isBoolean([]) // ↦ false
1033
1033
  * Monster.Types.isBoolean(true) // ↦ true
@@ -1038,7 +1038,7 @@ function isSymbol(value) {
1038
1038
  *
1039
1039
  * ```
1040
1040
  * <script type="module">
1041
- * import {isBoolean} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/types/is.js';
1041
+ * import {isBoolean} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/types/is.js';
1042
1042
  * isBoolean('2')) // ↦ false
1043
1043
  * isBoolean([])) // ↦ false
1044
1044
  * isBoolean(2>4)) // ↦ true
@@ -1069,7 +1069,7 @@ function isBoolean(value) {
1069
1069
  *
1070
1070
  * ```
1071
1071
  * <script type="module">
1072
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/monster.js';
1072
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/monster.js';
1073
1073
  * Monster.Types.isString('2') // ↦ true
1074
1074
  * Monster.Types.isString([]) // ↦ false
1075
1075
  * </script>
@@ -1079,7 +1079,7 @@ function isBoolean(value) {
1079
1079
  *
1080
1080
  * ```
1081
1081
  * <script type="module">
1082
- * import {isString} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/types/is.js';
1082
+ * import {isString} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/types/is.js';
1083
1083
  * isString('2')) // ↦ true
1084
1084
  * isString([])) // ↦ false
1085
1085
  * </script>
@@ -1109,7 +1109,7 @@ function isString(value) {
1109
1109
  *
1110
1110
  * ```
1111
1111
  * <script type="module">
1112
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/monster.js';
1112
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/monster.js';
1113
1113
  * Monster.Types.isObject('2') // ↦ false
1114
1114
  * Monster.Types.isObject([]) // ↦ false
1115
1115
  * Monster.Types.isObject({}) // ↦ true
@@ -1120,7 +1120,7 @@ function isString(value) {
1120
1120
  *
1121
1121
  * ```
1122
1122
  * <script type="module">
1123
- * import {isObject} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/types/is.js';
1123
+ * import {isObject} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/types/is.js';
1124
1124
  * isObject('2')) // ↦ false
1125
1125
  * isObject([])) // ↦ false
1126
1126
  * </script>
@@ -1153,7 +1153,7 @@ function isObject(value) {
1153
1153
  *
1154
1154
  * ```
1155
1155
  * <script type="module">
1156
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/monster.js';
1156
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/monster.js';
1157
1157
  * Monster.Types.isInstance('2') // ↦ false
1158
1158
  * Monster.Types.isInstance([]) // ↦ false
1159
1159
  * Monster.Types.isInstance({}) // ↦ true
@@ -1164,7 +1164,7 @@ function isObject(value) {
1164
1164
  *
1165
1165
  * ```
1166
1166
  * <script type="module">
1167
- * import {isInstance} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/types/is.js';
1167
+ * import {isInstance} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/types/is.js';
1168
1168
  * isInstance('2')) // ↦ false
1169
1169
  * isInstance([])) // ↦ false
1170
1170
  * </script>
@@ -1194,7 +1194,7 @@ function isInstance(value, instance) {
1194
1194
  *
1195
1195
  * ```
1196
1196
  * <script type="module">
1197
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/monster.js';
1197
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/monster.js';
1198
1198
  * Monster.Types.isArray('2') // ↦ false
1199
1199
  * Monster.Types.isArray([]) // ↦ true
1200
1200
  * </script>
@@ -1204,7 +1204,7 @@ function isInstance(value, instance) {
1204
1204
  *
1205
1205
  * ```
1206
1206
  * <script type="module">
1207
- * import {isArray} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/types/is.js';
1207
+ * import {isArray} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/types/is.js';
1208
1208
  * isArray('2')) // ↦ false
1209
1209
  * isArray([])) // ↦ true
1210
1210
  * </script>
@@ -1231,7 +1231,7 @@ function isArray(value) {
1231
1231
  *
1232
1232
  * ```
1233
1233
  * <script type="module">
1234
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/monster.js';
1234
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/monster.js';
1235
1235
  * Monster.Types.isFunction(()=>{}) // ↦ true
1236
1236
  * Monster.Types.isFunction('2') // ↦ false
1237
1237
  * Monster.Types.isFunction([]) // ↦ false
@@ -1242,7 +1242,7 @@ function isArray(value) {
1242
1242
  *
1243
1243
  * ```
1244
1244
  * <script type="module">
1245
- * import {isFunction} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/types/is.js';
1245
+ * import {isFunction} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/types/is.js';
1246
1246
  * isFunction(()=>{}) // ↦ true
1247
1247
  * isFunction('2')) // ↦ false
1248
1248
  * isFunction([])) // ↦ false
@@ -1276,7 +1276,7 @@ function isFunction(value) {
1276
1276
  *
1277
1277
  * ```
1278
1278
  * <script type="module">
1279
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/monster.js';
1279
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/monster.js';
1280
1280
  * Monster.Types.isInteger(()=>{}) // ↦ true
1281
1281
  * Monster.Types.isInteger('2') // ↦ false
1282
1282
  * Monster.Types.isInteger(2) // ↦ true
@@ -1287,7 +1287,7 @@ function isFunction(value) {
1287
1287
  *
1288
1288
  * ```
1289
1289
  * <script type="module">
1290
- * import {isInteger} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/types/is.js';
1290
+ * import {isInteger} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/types/is.js';
1291
1291
  * isInteger(()=>{}) // ↦ true
1292
1292
  * isInteger('2')) // ↦ false
1293
1293
  * isInteger(2)) // ↦ true
@@ -1360,7 +1360,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
1360
1360
  *
1361
1361
  * ```
1362
1362
  * <script type="module">
1363
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/monster.js';
1363
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/monster.js';
1364
1364
  * console.log(new Monster.Constraint.IsObject())
1365
1365
  * </script>
1366
1366
  * ```
@@ -1369,14 +1369,14 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
1369
1369
  *
1370
1370
  * ```
1371
1371
  * <script type="module">
1372
- * import {IsObject} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/constraints/isobject.js';
1372
+ * import {IsObject} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/constraints/isobject.js';
1373
1373
  * console.log(new IsObject())
1374
1374
  * </script>
1375
1375
  * ```
1376
1376
  *
1377
1377
  * @example
1378
1378
  *
1379
- * import {IsObject} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/constraints/isobject.js';
1379
+ * import {IsObject} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/constraints/isobject.js';
1380
1380
  *
1381
1381
  * new IsObject()
1382
1382
  * .isValid({})
@@ -1479,7 +1479,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
1479
1479
  *
1480
1480
  * ```
1481
1481
  * <script type="module">
1482
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/monster.js';
1482
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/monster.js';
1483
1483
  * new Monster.Constraint.OrOperator();
1484
1484
  * </script>
1485
1485
  * ```
@@ -1488,16 +1488,16 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
1488
1488
  *
1489
1489
  * ```
1490
1490
  * <script type="module">
1491
- * import {OrOperator} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/constraint/oroperator.js';
1491
+ * import {OrOperator} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/constraint/oroperator.js';
1492
1492
  * new OrOperator();
1493
1493
  * </script>
1494
1494
  * ```
1495
1495
  *
1496
1496
  * @example
1497
1497
  *
1498
- * import {Valid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/constraints/valid.js';
1499
- * import {Invalid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/constraints/invalid.js';
1500
- * import {OrOperator} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/constraints/oroperator.js';
1498
+ * import {Valid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/constraints/valid.js';
1499
+ * import {Invalid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/constraints/invalid.js';
1500
+ * import {OrOperator} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/constraints/oroperator.js';
1501
1501
  *
1502
1502
  * new OrOperator(
1503
1503
  * new Valid(), new Invalid()).isValid()
@@ -1622,7 +1622,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
1622
1622
  *
1623
1623
  * ```
1624
1624
  * <script type="module">
1625
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/monster.js';
1625
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/monster.js';
1626
1626
  * new Monster.Constraint.Valid();
1627
1627
  * </script>
1628
1628
  * ```
@@ -1631,14 +1631,14 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
1631
1631
  *
1632
1632
  * ```
1633
1633
  * <script type="module">
1634
- * import {Valid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/constraints/valid.js';
1634
+ * import {Valid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/constraints/valid.js';
1635
1635
  * new Valid();
1636
1636
  * </script>
1637
1637
  * ```
1638
1638
  *
1639
1639
  * @example
1640
1640
  *
1641
- * import {Valid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/constraints/valid.js';
1641
+ * import {Valid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/constraints/valid.js';
1642
1642
  *
1643
1643
  * new Valid().isValid()
1644
1644
  * .then(()=>console.log(true))
@@ -1747,7 +1747,7 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
1747
1747
  *
1748
1748
  * ```
1749
1749
  * <script type="module">
1750
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/monster.js';
1750
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/monster.js';
1751
1751
  * console.log(Monster.Data.buildMap())
1752
1752
  * </script>
1753
1753
  * ```
@@ -1756,7 +1756,7 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
1756
1756
  *
1757
1757
  * ```
1758
1758
  * <script type="module">
1759
- * import {buildMap} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/data/buildmap.js';
1759
+ * import {buildMap} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/data/buildmap.js';
1760
1760
  * console.log(buildMap())
1761
1761
  * </script>
1762
1762
  * ```
@@ -1767,7 +1767,7 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
1767
1767
  *
1768
1768
  * @example
1769
1769
  *
1770
- * import {buildMap} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/data/buildmap.js';
1770
+ * import {buildMap} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/data/buildmap.js';
1771
1771
  * // a typical data structure as reported by an api
1772
1772
  *
1773
1773
  * let map;
@@ -1859,7 +1859,7 @@ function buildMap(subject, selector, valueTemplate, keyTemplate, filter) {
1859
1859
  * @param {string|Monster.Data~exampleSelectorCallback} selector
1860
1860
  * @param {Monster.Data~exampleFilterCallback} [filter]
1861
1861
  * @param {function} callback
1862
- * @return {*}
1862
+ * @return {Map}
1863
1863
  */
1864
1864
 
1865
1865
 
@@ -1943,7 +1943,7 @@ function buildFlatMap(subject, selector, key, parentMap) {
1943
1943
  var kk = copyKey.join(_pathfinder_js__WEBPACK_IMPORTED_MODULE_4__.DELIMITER);
1944
1944
  var sub = buildFlatMap.call(result, o, parts.join(_pathfinder_js__WEBPACK_IMPORTED_MODULE_4__.DELIMITER), copyKey, o);
1945
1945
 
1946
- if ((0,_types_is_js__WEBPACK_IMPORTED_MODULE_1__.isObject)(sub)) {
1946
+ if ((0,_types_is_js__WEBPACK_IMPORTED_MODULE_1__.isObject)(sub) && parentMap !== undefined) {
1947
1947
  sub['^'] = parentMap;
1948
1948
  }
1949
1949
 
@@ -1997,7 +1997,7 @@ function buildFlatMap(subject, selector, key, parentMap) {
1997
1997
  * Alternatively to a string selector a callback can be specified. this must return a map.
1998
1998
  *
1999
1999
  * @example
2000
- * import {buildMap} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/data/buildmap.js';
2000
+ * import {buildMap} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/data/buildmap.js';
2001
2001
  *
2002
2002
  * let obj = {
2003
2003
  * "data": [
@@ -2200,7 +2200,7 @@ __webpack_require__.r(__webpack_exports__);
2200
2200
  *
2201
2201
  * ```
2202
2202
  * <script type="module">
2203
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/monster.js';
2203
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/monster.js';
2204
2204
  * console.log(Monster.Types.validateIterable('2')) // ↦ TypeError
2205
2205
  * console.log(Monster.Types.validateIterable([])) // ↦ value
2206
2206
  * </script>
@@ -2210,7 +2210,7 @@ __webpack_require__.r(__webpack_exports__);
2210
2210
  *
2211
2211
  * ```
2212
2212
  * <script type="module">
2213
- * import {validateIterable} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/types/validate.js';
2213
+ * import {validateIterable} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/types/validate.js';
2214
2214
  * console.log(validateIterable('2')) // ↦ TypeError
2215
2215
  * console.log(validateIterable([])) // ↦ value
2216
2216
  * </script>
@@ -2241,7 +2241,7 @@ function validateIterable(value) {
2241
2241
  *
2242
2242
  * ```
2243
2243
  * <script type="module">
2244
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/monster.js';
2244
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/monster.js';
2245
2245
  * console.log(Monster.Types.validatePrimitive('2')) // ↦ value
2246
2246
  * console.log(Monster.Types.validatePrimitive([])) // ↦ TypeError
2247
2247
  * </script>
@@ -2251,7 +2251,7 @@ function validateIterable(value) {
2251
2251
  *
2252
2252
  * ```
2253
2253
  * <script type="module">
2254
- * import {validatePrimitive} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/types/validate.js';
2254
+ * import {validatePrimitive} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/types/validate.js';
2255
2255
  * console.log(validatePrimitive('2')) // ↦ value
2256
2256
  * console.log(validatePrimitive([])) // ↦ TypeError
2257
2257
  * </script>
@@ -2283,7 +2283,7 @@ function validatePrimitive(value) {
2283
2283
  *
2284
2284
  * ```
2285
2285
  * <script type="module">
2286
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/monster.js';
2286
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/monster.js';
2287
2287
  * console.log(Monster.Types.validateBoolean(true)) // ↦ value
2288
2288
  * console.log(Monster.Types.validateBoolean('2')) // ↦ TypeError
2289
2289
  * console.log(Monster.Types.validateBoolean([])) // ↦ TypeError
@@ -2294,7 +2294,7 @@ function validatePrimitive(value) {
2294
2294
  *
2295
2295
  * ```
2296
2296
  * <script type="module">
2297
- * import {validateBoolean} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/types/validate.js';
2297
+ * import {validateBoolean} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/types/validate.js';
2298
2298
  * console.log(validateBoolean(false)) // ↦ value
2299
2299
  * console.log(validateBoolean('2')) // ↦ TypeError
2300
2300
  * console.log(validateBoolean([])) // ↦ TypeError
@@ -2325,7 +2325,7 @@ function validateBoolean(value) {
2325
2325
  *
2326
2326
  * ```
2327
2327
  * <script type="module">
2328
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/monster.js';
2328
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/monster.js';
2329
2329
  * console.log(Monster.Types.validateString('2')) // ↦ value
2330
2330
  * console.log(Monster.Types.validateString([])) // ↦ TypeError
2331
2331
  * </script>
@@ -2335,7 +2335,7 @@ function validateBoolean(value) {
2335
2335
  *
2336
2336
  * ```
2337
2337
  * <script type="module">
2338
- * import {validateString} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/types/validate.js';
2338
+ * import {validateString} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/types/validate.js';
2339
2339
  * console.log(validateString('2')) // ↦ value
2340
2340
  * console.log(validateString([])) // ↦ TypeError
2341
2341
  * </script>
@@ -2364,7 +2364,7 @@ function validateString(value) {
2364
2364
  *
2365
2365
  * ```
2366
2366
  * <script type="module">
2367
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/monster.js';
2367
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/monster.js';
2368
2368
  * console.log(Monster.Types.validateObject({})) // ↦ value
2369
2369
  * console.log(Monster.Types.validateObject('2')) // ↦ TypeError
2370
2370
  * console.log(Monster.Types.validateObject([])) // ↦ TypeError
@@ -2375,7 +2375,7 @@ function validateString(value) {
2375
2375
  *
2376
2376
  * ```
2377
2377
  * <script type="module">
2378
- * import {validateObject} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/types/validate.js';
2378
+ * import {validateObject} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/types/validate.js';
2379
2379
  * console.log(validateObject({})) // ↦ value
2380
2380
  * console.log(validateObject('2')) // ↦ TypeError
2381
2381
  * console.log(validateObject([])) // ↦ TypeError
@@ -2405,7 +2405,7 @@ function validateObject(value) {
2405
2405
  *
2406
2406
  * ```
2407
2407
  * <script type="module">
2408
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/monster.js';
2408
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/monster.js';
2409
2409
  * console.log(Monster.Types.validateInstance({}, Object)) // ↦ value
2410
2410
  * console.log(Monster.Types.validateInstance('2', Object)) // ↦ TypeError
2411
2411
  * console.log(Monster.Types.validateInstance([], Object)) // ↦ TypeError
@@ -2416,7 +2416,7 @@ function validateObject(value) {
2416
2416
  *
2417
2417
  * ```
2418
2418
  * <script type="module">
2419
- * import {validateInstance} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/types/validate.js';
2419
+ * import {validateInstance} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/types/validate.js';
2420
2420
  * console.log(validateInstance({}, Object)) // ↦ value
2421
2421
  * console.log(validateInstance('2', Object)) // ↦ TypeError
2422
2422
  * console.log(validateInstance([], Object)) // ↦ TypeError
@@ -2456,7 +2456,7 @@ function validateInstance(value, instance) {
2456
2456
  *
2457
2457
  * ```
2458
2458
  * <script type="module">
2459
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/monster.js';
2459
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/monster.js';
2460
2460
  * console.log(Monster.Types.validateArray('2')) // ↦ TypeError
2461
2461
  * console.log(Monster.Types.validateArray([])) // ↦ value
2462
2462
  * </script>
@@ -2466,7 +2466,7 @@ function validateInstance(value, instance) {
2466
2466
  *
2467
2467
  * ```
2468
2468
  * <script type="module">
2469
- * import {validateArray} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/types/validate.js';
2469
+ * import {validateArray} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/types/validate.js';
2470
2470
  * console.log(validateArray('2')) // ↦ TypeError
2471
2471
  * console.log(validateArray([])) // ↦ value
2472
2472
  * </script>
@@ -2495,7 +2495,7 @@ function validateArray(value) {
2495
2495
  *
2496
2496
  * ```
2497
2497
  * <script type="module">
2498
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/monster.js';
2498
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/monster.js';
2499
2499
  * console.log(Monster.Types.validateSymbol('2')) // ↦ TypeError
2500
2500
  * console.log(Monster.Types.validateSymbol([])) // ↦ value
2501
2501
  * </script>
@@ -2505,7 +2505,7 @@ function validateArray(value) {
2505
2505
  *
2506
2506
  * ```
2507
2507
  * <script type="module">
2508
- * import {validateSymbol} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/types/validate.js';
2508
+ * import {validateSymbol} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/types/validate.js';
2509
2509
  * console.log(validateSymbol('2')) // ↦ TypeError
2510
2510
  * console.log(validateSymbol()) // ↦ value
2511
2511
  * </script>
@@ -2534,7 +2534,7 @@ function validateSymbol(value) {
2534
2534
  *
2535
2535
  * ```
2536
2536
  * <script type="module">
2537
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/monster.js';
2537
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/monster.js';
2538
2538
  * console.log(Monster.Types.validateFunction(()=>{})) // ↦ value
2539
2539
  * console.log(Monster.Types.validateFunction('2')) // ↦ TypeError
2540
2540
  * console.log(Monster.Types.validateFunction([])) // ↦ TypeError
@@ -2545,7 +2545,7 @@ function validateSymbol(value) {
2545
2545
  *
2546
2546
  * ```
2547
2547
  * <script type="module">
2548
- * import {validateFunction} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/types/validate.js';
2548
+ * import {validateFunction} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/types/validate.js';
2549
2549
  * console.log(validateFunction(()=>{})) // ↦ value
2550
2550
  * console.log(validateFunction('2')) // ↦ TypeError
2551
2551
  * console.log(validateFunction([])) // ↦ TypeError
@@ -2575,7 +2575,7 @@ function validateFunction(value) {
2575
2575
  *
2576
2576
  * ```
2577
2577
  * <script type="module">
2578
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/monster.js';
2578
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/monster.js';
2579
2579
  * console.log(Monster.Types.validateInteger(true)) // ↦ TypeError
2580
2580
  * console.log(Monster.Types.validateInteger('2')) // ↦ TypeError
2581
2581
  * console.log(Monster.Types.validateInteger(2)) // ↦ value
@@ -2586,7 +2586,7 @@ function validateFunction(value) {
2586
2586
  *
2587
2587
  * ```
2588
2588
  * <script type="module">
2589
- * import {validateFunction} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/types/validate.js';
2589
+ * import {validateFunction} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/types/validate.js';
2590
2590
  * console.log(validateInteger(true)) // ↦ TypeError
2591
2591
  * console.log(validateInteger('2')) // ↦ TypeError
2592
2592
  * console.log(validateInteger(2)) // ↦ value
@@ -2652,7 +2652,7 @@ function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "functi
2652
2652
  *
2653
2653
  * ```
2654
2654
  * <script type="module">
2655
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/monster.js';
2655
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/monster.js';
2656
2656
  * Monster.Util.clone({})
2657
2657
  * </script>
2658
2658
  * ```
@@ -2661,7 +2661,7 @@ function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "functi
2661
2661
  *
2662
2662
  * ```
2663
2663
  * <script type="module">
2664
- * import {clone} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/util/clone.js';
2664
+ * import {clone} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/util/clone.js';
2665
2665
  * clone({})
2666
2666
  * </script>
2667
2667
  * ```
@@ -2873,7 +2873,7 @@ function getGlobal() {
2873
2873
  *
2874
2874
  * ```
2875
2875
  * <script type="module">
2876
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/monster.js';
2876
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/monster.js';
2877
2877
  * Monster.Types.getGlobalObject('document')
2878
2878
  * // ↦ { }
2879
2879
  * </script>
@@ -2883,7 +2883,7 @@ function getGlobal() {
2883
2883
  *
2884
2884
  * ```
2885
2885
  * <script type="module">
2886
- * import {getGlobalObject} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/types/global.js';
2886
+ * import {getGlobalObject} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/types/global.js';
2887
2887
  * getGlobalObject('document')
2888
2888
  * // ↦ { }
2889
2889
  * </script>
@@ -2915,7 +2915,7 @@ function getGlobalObject(name) {
2915
2915
  *
2916
2916
  * ```
2917
2917
  * <script type="module">
2918
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/monster.js';
2918
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/monster.js';
2919
2919
  * console.log(Monster.Types.getGlobalFunction('parseInt')) // ↦ f parseInt() { }
2920
2920
  * </script>
2921
2921
  * ```
@@ -2924,7 +2924,7 @@ function getGlobalObject(name) {
2924
2924
  *
2925
2925
  * ```
2926
2926
  * <script type="module">
2927
- * import {getGlobalFunction} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/types/global.js';
2927
+ * import {getGlobalFunction} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/types/global.js';
2928
2928
  * console.log(getGlobalFunction('parseInt')) // ↦ f parseInt() { }
2929
2929
  * </script>
2930
2930
  * ```
@@ -2975,7 +2975,7 @@ __webpack_require__.r(__webpack_exports__);
2975
2975
  *
2976
2976
  * ```
2977
2977
  * <script type="module">
2978
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/monster.js';
2978
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/monster.js';
2979
2979
  * console.log(Monster.Types.typeOf())
2980
2980
  * </script>
2981
2981
  * ```
@@ -2984,14 +2984,14 @@ __webpack_require__.r(__webpack_exports__);
2984
2984
  *
2985
2985
  * ```
2986
2986
  * <script type="module">
2987
- * import {typeOf} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/types/typeof.js';
2987
+ * import {typeOf} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/types/typeof.js';
2988
2988
  * console.log(typeOf())
2989
2989
  * </script>
2990
2990
  * ```
2991
2991
  *
2992
2992
  * @example
2993
2993
  *
2994
- * import {typeOf} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/types/typeof.js';
2994
+ * import {typeOf} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/types/typeof.js';
2995
2995
  *
2996
2996
  * console.log(typeOf(undefined)); // ↦ undefined
2997
2997
  * console.log(typeOf("")); // ↦ string
@@ -3110,7 +3110,7 @@ var WILDCARD = '*';
3110
3110
  *
3111
3111
  * ```
3112
3112
  * <script type="module">
3113
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/monster.js';
3113
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/monster.js';
3114
3114
  * console.log(new Monster.Data.Pathfinder())
3115
3115
  * </script>
3116
3116
  * ```
@@ -3119,7 +3119,7 @@ var WILDCARD = '*';
3119
3119
  *
3120
3120
  * ```
3121
3121
  * <script type="module">
3122
- * import {Pathfinder} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/data/pathfinder.js';
3122
+ * import {Pathfinder} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/data/pathfinder.js';
3123
3123
  * console.log(new Pathfinder())
3124
3124
  * </script>
3125
3125
  * ```
@@ -3161,7 +3161,7 @@ var WILDCARD = '*';
3161
3161
  *
3162
3162
  * @example
3163
3163
  *
3164
- * import {Pathfinder} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/data/pathfinder.js';
3164
+ * import {Pathfinder} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/data/pathfinder.js';
3165
3165
  *
3166
3166
  * let value = new Pathfinder({
3167
3167
  * a: {
@@ -3187,7 +3187,7 @@ var WILDCARD = '*';
3187
3187
  *
3188
3188
  * @example
3189
3189
  *
3190
- * import {Pathfinder} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/data/pathfinder.js';
3190
+ * import {Pathfinder} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/data/pathfinder.js';
3191
3191
  *
3192
3192
  * let p = new Pathfinder({
3193
3193
  * a: {
@@ -3602,7 +3602,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
3602
3602
  *
3603
3603
  * ```
3604
3604
  * <script type="module">
3605
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/monster.js';
3605
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/monster.js';
3606
3606
  * console.log(new Monster.Types.Stack())
3607
3607
  * </script>
3608
3608
  * ```
@@ -3611,7 +3611,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
3611
3611
  *
3612
3612
  * ```
3613
3613
  * <script type="module">
3614
- * import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/types/stack.js';
3614
+ * import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/types/stack.js';
3615
3615
  * console.log(new Stack())
3616
3616
  * </script>
3617
3617
  * ```
@@ -3746,7 +3746,7 @@ function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "functi
3746
3746
  *
3747
3747
  * ```
3748
3748
  * <script type="module">
3749
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/monster.js';
3749
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/monster.js';
3750
3750
  * Monster.Data.Diff(a, b)
3751
3751
  * </script>
3752
3752
  * ```
@@ -3755,14 +3755,14 @@ function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "functi
3755
3755
  *
3756
3756
  * ```
3757
3757
  * <script type="module">
3758
- * import {Diff} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/data/diff.js';
3758
+ * import {Diff} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/data/diff.js';
3759
3759
  * Diff(a, b)
3760
3760
  * </script>
3761
3761
  * ```
3762
3762
  *
3763
3763
  * @example
3764
3764
  *
3765
- * import {Diff} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/data/diff.js';
3765
+ * import {Diff} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/data/diff.js';
3766
3766
  *
3767
3767
  * // given are two objects x and y.
3768
3768
  *
@@ -4008,7 +4008,7 @@ __webpack_require__.r(__webpack_exports__);
4008
4008
  *
4009
4009
  * ```
4010
4010
  * <script type="module">
4011
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/monster.js';
4011
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/monster.js';
4012
4012
  * Monster.Data.extend(a, b)
4013
4013
  * </script>
4014
4014
  * ```
@@ -4017,7 +4017,7 @@ __webpack_require__.r(__webpack_exports__);
4017
4017
  *
4018
4018
  * ```
4019
4019
  * <script type="module">
4020
- * import {extend} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/data/extend.js';
4020
+ * import {extend} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/data/extend.js';
4021
4021
  * extend(a, b)
4022
4022
  * </script>
4023
4023
  * ```
@@ -4146,7 +4146,7 @@ var DELIMITER = '|';
4146
4146
  *
4147
4147
  * ```
4148
4148
  * <script type="module">
4149
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/monster.js';
4149
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/monster.js';
4150
4150
  * new Monster.Data.Pipe()
4151
4151
  * </script>
4152
4152
  * ```
@@ -4155,7 +4155,7 @@ var DELIMITER = '|';
4155
4155
  *
4156
4156
  * ```
4157
4157
  * <script type="module">
4158
- * import {Pipe} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/data/pipe.js';
4158
+ * import {Pipe} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/data/pipe.js';
4159
4159
  * new Pipe()
4160
4160
  * </script>
4161
4161
  * ```
@@ -4166,7 +4166,7 @@ var DELIMITER = '|';
4166
4166
  * the word is then converted to uppercase letters and a prefix Hello is added. the two backslash safe the space char.
4167
4167
  *
4168
4168
  * @example
4169
- * import {Pipe} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/data/pipe.js';
4169
+ * import {Pipe} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/data/pipe.js';
4170
4170
  *
4171
4171
  * let obj = {
4172
4172
  * a: {
@@ -4328,7 +4328,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
4328
4328
  *
4329
4329
  * ```
4330
4330
  * <script type="module">
4331
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/monster.js';
4331
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/monster.js';
4332
4332
  * new Monster.Data.Transformer()
4333
4333
  * </script>
4334
4334
  * ```
@@ -4337,7 +4337,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
4337
4337
  *
4338
4338
  * ```
4339
4339
  * <script type="module">
4340
- * import {Transformer} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/data/transformer.js';
4340
+ * import {Transformer} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/data/transformer.js';
4341
4341
  * new Transformer()
4342
4342
  * </script>
4343
4343
  * ```
@@ -4423,7 +4423,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
4423
4423
  *
4424
4424
  * @example
4425
4425
  *
4426
- * import {Transformer} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/data/transformer.js';
4426
+ * import {Transformer} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/data/transformer.js';
4427
4427
  *
4428
4428
  * const transformer = new Transformer("tolower")
4429
4429
  *
@@ -4956,7 +4956,7 @@ var internalCounter = new Map();
4956
4956
  *
4957
4957
  * ```
4958
4958
  * <script type="module">
4959
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/monster.js';
4959
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/monster.js';
4960
4960
  * console.log(new Monster.Types.ID())
4961
4961
  * </script>
4962
4962
  * ```
@@ -4965,7 +4965,7 @@ var internalCounter = new Map();
4965
4965
  *
4966
4966
  * ```
4967
4967
  * <script type="module">
4968
- * import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/types/id.js';
4968
+ * import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/types/id.js';
4969
4969
  * console.log(new ID())
4970
4970
  * </script>
4971
4971
  * ```
@@ -5088,7 +5088,7 @@ var ATTRIBUTEPREFIX = "data-monster-";
5088
5088
  *
5089
5089
  * ```
5090
5090
  * <script type="module">
5091
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/monster.js';
5091
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/monster.js';
5092
5092
  * console.log(new Monster.DOM.Assembler())
5093
5093
  * </script>
5094
5094
  * ```
@@ -5097,7 +5097,7 @@ var ATTRIBUTEPREFIX = "data-monster-";
5097
5097
  *
5098
5098
  * ```
5099
5099
  * <script type="module">
5100
- * import {Assembler} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/dom/assembler.js';
5100
+ * import {Assembler} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/dom/assembler.js';
5101
5101
  * console.log(new Assembler())
5102
5102
  * </script>
5103
5103
  * ```
@@ -5238,7 +5238,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
5238
5238
  *
5239
5239
  * ```
5240
5240
  * <script type="module">
5241
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/monster.js';
5241
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/monster.js';
5242
5242
  * new Monster.Types.ProxyObserver()
5243
5243
  * </script>
5244
5244
  * ```
@@ -5247,7 +5247,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
5247
5247
  *
5248
5248
  * ```
5249
5249
  * <script type="module">
5250
- * import {ProxyObserver} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/types/proxyobserver.js';
5250
+ * import {ProxyObserver} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/types/proxyobserver.js';
5251
5251
  * new ProxyObserver()
5252
5252
  * </script>
5253
5253
  * ```
@@ -5258,9 +5258,9 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
5258
5258
  *
5259
5259
  * @example
5260
5260
  *
5261
- * import {ProxyObserver} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/types/proxyobserver.js';
5262
- * import {Observer} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/types/observer.js';
5263
- * import {isObject} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/types/is.js';
5261
+ * import {ProxyObserver} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/types/proxyobserver.js';
5262
+ * import {Observer} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/types/observer.js';
5263
+ * import {isObject} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/types/is.js';
5264
5264
  *
5265
5265
  * const o = new Observer(function () {
5266
5266
  * if (isObject(this) && this instanceof ProxyObserver) {
@@ -5586,7 +5586,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
5586
5586
  *
5587
5587
  * ```
5588
5588
  * <script type="module">
5589
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/monster.js';
5589
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/monster.js';
5590
5590
  * console.log(new Monster.Types.Observer())
5591
5591
  * </script>
5592
5592
  * ```
@@ -5595,7 +5595,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
5595
5595
  *
5596
5596
  * ```
5597
5597
  * <script type="module">
5598
- * import {Observer} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/types/observer.js';
5598
+ * import {Observer} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/types/observer.js';
5599
5599
  * console.log(new Observer())
5600
5600
  * </script>
5601
5601
  * ```
@@ -5629,7 +5629,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
5629
5629
  *
5630
5630
  * @example
5631
5631
  *
5632
- * import {Observer} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/types/observer.js';
5632
+ * import {Observer} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/types/observer.js';
5633
5633
  *
5634
5634
  * const observer = new Observer(function(a, b, c) {
5635
5635
  * console.log(this, a, b, c); // ↦ "a", 2, true
@@ -5829,7 +5829,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
5829
5829
  *
5830
5830
  * ```
5831
5831
  * <script type="module">
5832
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/monster.js';
5832
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/monster.js';
5833
5833
  * new Monster.Types.TokenList("myclass row")
5834
5834
  * </script>
5835
5835
  * ```
@@ -5838,7 +5838,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
5838
5838
  *
5839
5839
  * ```
5840
5840
  * <script type="module">
5841
- * import {TokenList} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/types/tokenlist.js';
5841
+ * import {TokenList} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/types/tokenlist.js';
5842
5842
  * new TokenList("myclass row")
5843
5843
  * </script>
5844
5844
  * ```
@@ -6261,7 +6261,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
6261
6261
  *
6262
6262
  * ```
6263
6263
  * <script type="module">
6264
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/monster.js';
6264
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/monster.js';
6265
6265
  * new Monster.Types.UniqueQueue()
6266
6266
  * </script>
6267
6267
  * ```
@@ -6270,7 +6270,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
6270
6270
  *
6271
6271
  * ```
6272
6272
  * <script type="module">
6273
- * import {UniqueQueue} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/types/uniquequeue.js';
6273
+ * import {UniqueQueue} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/types/uniquequeue.js';
6274
6274
  * new UniqueQueue()
6275
6275
  * </script>
6276
6276
  * ```
@@ -6405,7 +6405,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
6405
6405
  *
6406
6406
  * ```
6407
6407
  * <script type="module">
6408
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/monster.js';
6408
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/monster.js';
6409
6409
  * new Monster.Types.Queue()
6410
6410
  * </script>
6411
6411
  * ```
@@ -6414,14 +6414,14 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
6414
6414
  *
6415
6415
  * ```
6416
6416
  * <script type="module">
6417
- * import {Queue} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/types/queue.js';
6417
+ * import {Queue} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/types/queue.js';
6418
6418
  * new Queue()
6419
6419
  * </script>
6420
6420
  * ```
6421
6421
  *
6422
6422
  * @example
6423
6423
  *
6424
- * import {Queue} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/types/queue.js';
6424
+ * import {Queue} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/types/queue.js';
6425
6425
  *
6426
6426
  * const queue = new Queue;
6427
6427
  *
@@ -6590,7 +6590,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
6590
6590
  *
6591
6591
  * ```
6592
6592
  * <script type="module">
6593
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/monster.js';
6593
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/monster.js';
6594
6594
  * console.log(new Monster.Types.ObserverList())
6595
6595
  * console.log(new Monster.Types.ObserverList())
6596
6596
  * </script>
@@ -6600,7 +6600,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
6600
6600
  *
6601
6601
  * ```
6602
6602
  * <script type="module">
6603
- * import {ObserverList} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/types/observerlist.js';
6603
+ * import {ObserverList} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/types/observerlist.js';
6604
6604
  * console.log(ObserverList())
6605
6605
  * console.log(ObserverList())
6606
6606
  * </script>
@@ -6732,7 +6732,8 @@ __webpack_require__.r(__webpack_exports__);
6732
6732
  /* harmony export */ "addAttributeToken": function() { return /* binding */ addAttributeToken; },
6733
6733
  /* harmony export */ "toggleAttributeToken": function() { return /* binding */ toggleAttributeToken; },
6734
6734
  /* harmony export */ "getLinkedObjects": function() { return /* binding */ getLinkedObjects; },
6735
- /* harmony export */ "findClosestObjectLink": function() { return /* binding */ findClosestObjectLink; }
6735
+ /* harmony export */ "findClosestObjectLink": function() { return /* binding */ findClosestObjectLink; },
6736
+ /* harmony export */ "findClosestByClass": function() { return /* binding */ findClosestByClass; }
6736
6737
  /* harmony export */ });
6737
6738
  /* harmony import */ var _namespace_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);
6738
6739
  /* harmony import */ var _types_global_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(16);
@@ -6759,7 +6760,7 @@ __webpack_require__.r(__webpack_exports__);
6759
6760
  *
6760
6761
  * ```
6761
6762
  * <script type="module">
6762
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/monster.js';
6763
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/monster.js';
6763
6764
  * console.log(Monster.DOM.findClosestObjectLink())
6764
6765
  * </script>
6765
6766
  * ```
@@ -6768,7 +6769,7 @@ __webpack_require__.r(__webpack_exports__);
6768
6769
  *
6769
6770
  * ```
6770
6771
  * <script type="module">
6771
- * import {getUpdaterFromNode} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/dom/updater.js';
6772
+ * import {getUpdaterFromNode} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/dom/updater.js';
6772
6773
  * console.log(findClosestObjectLink())
6773
6774
  * </script>
6774
6775
  * ```
@@ -6789,7 +6790,7 @@ function findClosestObjectLink(element) {
6789
6790
  *
6790
6791
  * ```
6791
6792
  * <script type="module">
6792
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/monster.js';
6793
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/monster.js';
6793
6794
  * Monster.DOM.addToObjectLink();
6794
6795
  * </script>
6795
6796
  * ```
@@ -6798,7 +6799,7 @@ function findClosestObjectLink(element) {
6798
6799
  *
6799
6800
  * ```
6800
6801
  * <script type="module">
6801
- * import {addToObjectLink} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/dom/attributes.js';
6802
+ * import {addToObjectLink} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/dom/attributes.js';
6802
6803
  * addToObjectLink();
6803
6804
  * </script>
6804
6805
  * ```
@@ -6830,7 +6831,7 @@ function addToObjectLink(element, symbol, object) {
6830
6831
  *
6831
6832
  * ```
6832
6833
  * <script type="module">
6833
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/monster.js';
6834
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/monster.js';
6834
6835
  * Monster.DOM.removeObjectLink();
6835
6836
  * </script>
6836
6837
  * ```
@@ -6839,7 +6840,7 @@ function addToObjectLink(element, symbol, object) {
6839
6840
  *
6840
6841
  * ```
6841
6842
  * <script type="module">
6842
- * import {removeObjectLink} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/dom/attributes.js';
6843
+ * import {removeObjectLink} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/dom/attributes.js';
6843
6844
  * removeObjectLink();
6844
6845
  * </script>
6845
6846
  * ```
@@ -6870,7 +6871,7 @@ function removeObjectLink(element, symbol) {
6870
6871
  *
6871
6872
  * ```
6872
6873
  * <script type="module">
6873
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/monster.js';
6874
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/monster.js';
6874
6875
  * Monster.DOM.hasObjectLink();
6875
6876
  * </script>
6876
6877
  * ```
@@ -6879,7 +6880,7 @@ function removeObjectLink(element, symbol) {
6879
6880
  *
6880
6881
  * ```
6881
6882
  * <script type="module">
6882
- * import {hasObjectLink} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/dom/attributes.js';
6883
+ * import {hasObjectLink} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/dom/attributes.js';
6883
6884
  * hasObjectLink();
6884
6885
  * </script>
6885
6886
  * ```
@@ -6915,7 +6916,7 @@ function hasObjectLink(element, symbol) {
6915
6916
  *
6916
6917
  * ```
6917
6918
  * <script type="module">
6918
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/monster.js';
6919
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/monster.js';
6919
6920
  * Monster.DOM.getLinkedObjects();
6920
6921
  * </script>
6921
6922
  * ```
@@ -6924,7 +6925,7 @@ function hasObjectLink(element, symbol) {
6924
6925
  *
6925
6926
  * ```
6926
6927
  * <script type="module">
6927
- * import {getLinkedObjects} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/dom/attributes.js';
6928
+ * import {getLinkedObjects} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/dom/attributes.js';
6928
6929
  * getLinkedObjects();
6929
6930
  * </script>
6930
6931
  * ```
@@ -6958,7 +6959,7 @@ function getLinkedObjects(element, symbol) {
6958
6959
  *
6959
6960
  * ```
6960
6961
  * <script type="module">
6961
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/monster.js';
6962
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/monster.js';
6962
6963
  * Monster.DOM.toggleAttributeToken();
6963
6964
  * </script>
6964
6965
  * ```
@@ -6967,7 +6968,7 @@ function getLinkedObjects(element, symbol) {
6967
6968
  *
6968
6969
  * ```
6969
6970
  * <script type="module">
6970
- * import {toggleAttributeToken} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/dom/attributes.js';
6971
+ * import {toggleAttributeToken} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/dom/attributes.js';
6971
6972
  * toggleAttributeToken();
6972
6973
  * </script>
6973
6974
  * ```
@@ -7002,7 +7003,7 @@ function toggleAttributeToken(element, key, token) {
7002
7003
  *
7003
7004
  * ```
7004
7005
  * <script type="module">
7005
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/monster.js';
7006
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/monster.js';
7006
7007
  * Monster.DOM.addAttributeToken();
7007
7008
  * </script>
7008
7009
  * ```
@@ -7011,7 +7012,7 @@ function toggleAttributeToken(element, key, token) {
7011
7012
  *
7012
7013
  * ```
7013
7014
  * <script type="module">
7014
- * import {addAttributeToken} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/dom/attributes.js';
7015
+ * import {addAttributeToken} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/dom/attributes.js';
7015
7016
  * addAttributeToken();
7016
7017
  * </script>
7017
7018
  * ```
@@ -7048,7 +7049,7 @@ function addAttributeToken(element, key, token) {
7048
7049
  *
7049
7050
  * ```
7050
7051
  * <script type="module">
7051
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/monster.js';
7052
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/monster.js';
7052
7053
  * Monster.DOM.removeAttributeToken();
7053
7054
  * </script>
7054
7055
  * ```
@@ -7057,7 +7058,7 @@ function addAttributeToken(element, key, token) {
7057
7058
  *
7058
7059
  * ```
7059
7060
  * <script type="module">
7060
- * import {removeAttributeToken} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/dom/attributes.js';
7061
+ * import {removeAttributeToken} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/dom/attributes.js';
7061
7062
  * removeAttributeToken();
7062
7063
  * </script>
7063
7064
  * ```
@@ -7093,7 +7094,7 @@ function removeAttributeToken(element, key, token) {
7093
7094
  *
7094
7095
  * ```
7095
7096
  * <script type="module">
7096
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/monster.js';
7097
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/monster.js';
7097
7098
  * Monster.DOM.containsAttributeToken();
7098
7099
  * </script>
7099
7100
  * ```
@@ -7102,7 +7103,7 @@ function removeAttributeToken(element, key, token) {
7102
7103
  *
7103
7104
  * ```
7104
7105
  * <script type="module">
7105
- * import {containsAttributeToken} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/dom/attributes.js';
7106
+ * import {containsAttributeToken} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/dom/attributes.js';
7106
7107
  * containsAttributeToken();
7107
7108
  * </script>
7108
7109
  * ```
@@ -7135,7 +7136,7 @@ function containsAttributeToken(element, key, token) {
7135
7136
  *
7136
7137
  * ```
7137
7138
  * <script type="module">
7138
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/monster.js';
7139
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/monster.js';
7139
7140
  * Monster.DOM.replaceAttributeToken();
7140
7141
  * </script>
7141
7142
  * ```
@@ -7144,7 +7145,7 @@ function containsAttributeToken(element, key, token) {
7144
7145
  *
7145
7146
  * ```
7146
7147
  * <script type="module">
7147
- * import {replaceAttributeToken} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/dom/attributes.js';
7148
+ * import {replaceAttributeToken} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/dom/attributes.js';
7148
7149
  * replaceAttributeToken();
7149
7150
  * </script>
7150
7151
  * ```
@@ -7180,7 +7181,7 @@ function replaceAttributeToken(element, key, from, to) {
7180
7181
  *
7181
7182
  * ```
7182
7183
  * <script type="module">
7183
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/monster.js';
7184
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/monster.js';
7184
7185
  * Monster.DOM.clearAttributeTokens();
7185
7186
  * </script>
7186
7187
  * ```
@@ -7189,7 +7190,7 @@ function replaceAttributeToken(element, key, from, to) {
7189
7190
  *
7190
7191
  * ```
7191
7192
  * <script type="module">
7192
- * import {clearAttributeTokens} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/dom/attributes.js';
7193
+ * import {clearAttributeTokens} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/dom/attributes.js';
7193
7194
  * clearAttributeTokens();
7194
7195
  * </script>
7195
7196
  * ```
@@ -7215,11 +7216,29 @@ function clearAttributeTokens(element, key) {
7215
7216
  return element;
7216
7217
  }
7217
7218
  /**
7219
+ * This function searches, starting from an `HTMLElemement`, for the next element that has a certain attribute.
7220
+ *
7221
+ * ```html
7222
+ * <div data-my-attribute="2" id="2">
7223
+ * <div id="1"></div>
7224
+ * </div>
7225
+ * ```
7226
+ *
7227
+ * ```javascript
7228
+ * // if no value is specified (undefined), then only the attribute is checked.
7229
+ * findClosestByAttribute(document.getElementById('1'),'data-my-attribute'); // ↦ node with id 2
7230
+ * findClosestByAttribute(document.getElementById('2'),'data-my-attribute'); // ↦ node with id 2
7231
+ *
7232
+ * // if a value is specified, for example an empty string, then the name and the value are checked.
7233
+ * findClosestByAttribute(document.getElementById('1'),'data-my-attribute', ''); // ↦ undefined
7234
+ * findClosestByAttribute(document.getElementById('1'),'data-my-attribute', '2'); // ↦ node with id 2
7235
+ * ```
7236
+ *
7218
7237
  * You can call the method via the monster namespace `new Monster.DOM.findClosestByAttribute()`.
7219
7238
  *
7220
7239
  * ```
7221
7240
  * <script type="module">
7222
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/monster.js';
7241
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/monster.js';
7223
7242
  * Monster.DOM.findClosestByAttribute();
7224
7243
  * </script>
7225
7244
  * ```
@@ -7228,7 +7247,7 @@ function clearAttributeTokens(element, key) {
7228
7247
  *
7229
7248
  * ```
7230
7249
  * <script type="module">
7231
- * import {findClosestByAttribute} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/dom/attributes.js';
7250
+ * import {findClosestByAttribute} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/dom/attributes.js';
7232
7251
  * findClosestByAttribute();
7233
7252
  * </script>
7234
7253
  * ```
@@ -7240,14 +7259,21 @@ function clearAttributeTokens(element, key) {
7240
7259
  * @param {string} key
7241
7260
  * @param {string|undefined} value
7242
7261
  * @return {HTMLElement|undefined}
7262
+ * @summary find closest node
7243
7263
  */
7244
7264
 
7245
7265
 
7246
7266
  function findClosestByAttribute(element, key, value) {
7247
7267
  (0,_types_validate_js__WEBPACK_IMPORTED_MODULE_3__.validateInstance)(element, (0,_types_global_js__WEBPACK_IMPORTED_MODULE_1__.getGlobalFunction)('HTMLElement'));
7248
7268
 
7249
- if (element.hasAttribute(key) && element.getAttribute(key) === value) {
7250
- return element;
7269
+ if (element.hasAttribute(key)) {
7270
+ if (value === undefined) {
7271
+ return element;
7272
+ }
7273
+
7274
+ if (element.getAttribute(key) === value) {
7275
+ return element;
7276
+ }
7251
7277
  }
7252
7278
 
7253
7279
  var selector = (0,_types_validate_js__WEBPACK_IMPORTED_MODULE_3__.validateString)(key);
@@ -7258,11 +7284,71 @@ function findClosestByAttribute(element, key, value) {
7258
7284
  return result;
7259
7285
  }
7260
7286
 
7287
+ return undefined;
7288
+ }
7289
+ /**
7290
+ * This function searches, starting from an `HTMLElemement`, for the next element that has a certain attribute.
7291
+ *
7292
+ * ```html
7293
+ * <div class="myclass" id="2">
7294
+ * <div id="1"></div>
7295
+ * </div>
7296
+ * ```
7297
+ *
7298
+ * ```javascript
7299
+ * // if no value is specified (undefined), then only the attribute is checked.
7300
+ * findClosestByClass(document.getElementById('1'),'myclass'); // ↦ node with id 2
7301
+ * findClosestByClass(document.getElementById('2'),'myclass'); // ↦ node with id 2
7302
+ * ```
7303
+ *
7304
+ * You can call the method via the monster namespace `new Monster.DOM.findClosestByClass()`.
7305
+ *
7306
+ * ```
7307
+ * <script type="module">
7308
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/monster.js';
7309
+ * Monster.DOM.findClosestByClass();
7310
+ * </script>
7311
+ * ```
7312
+ *
7313
+ * Alternatively, you can also integrate this function individually.
7314
+ *
7315
+ * ```
7316
+ * <script type="module">
7317
+ * import {findClosestByClass} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/dom/attributes.js';
7318
+ * findClosestByClass();
7319
+ * </script>
7320
+ * ```
7321
+ *
7322
+ * @since 1.27.0
7323
+ * @copyright schukai GmbH
7324
+ * @memberOf Monster.DOM
7325
+ * @param {HTMLElement} element
7326
+ * @param {string} className
7327
+ * @return {HTMLElement|undefined}
7328
+ * @summary find closest node
7329
+ */
7330
+
7331
+
7332
+ function findClosestByClass(element, className) {
7333
+ var _element$classList;
7334
+
7335
+ (0,_types_validate_js__WEBPACK_IMPORTED_MODULE_3__.validateInstance)(element, (0,_types_global_js__WEBPACK_IMPORTED_MODULE_1__.getGlobalFunction)('HTMLElement'));
7336
+
7337
+ if (element !== null && element !== void 0 && (_element$classList = element.classList) !== null && _element$classList !== void 0 && _element$classList.contains((0,_types_validate_js__WEBPACK_IMPORTED_MODULE_3__.validateString)(className))) {
7338
+ return element;
7339
+ }
7340
+
7341
+ var result = element.closest('.' + className);
7342
+
7343
+ if (result instanceof HTMLElement) {
7344
+ return result;
7345
+ }
7346
+
7261
7347
  return undefined;
7262
7348
  } // exports
7263
7349
 
7264
7350
 
7265
- (0,_namespace_js__WEBPACK_IMPORTED_MODULE_0__.assignToNamespace)('Monster.DOM', getLinkedObjects, addToObjectLink, removeObjectLink, findClosestByAttribute, hasObjectLink, clearAttributeTokens, replaceAttributeToken, containsAttributeToken, removeAttributeToken, addAttributeToken, toggleAttributeToken);
7351
+ (0,_namespace_js__WEBPACK_IMPORTED_MODULE_0__.assignToNamespace)('Monster.DOM', findClosestByClass, getLinkedObjects, addToObjectLink, removeObjectLink, findClosestByAttribute, hasObjectLink, clearAttributeTokens, replaceAttributeToken, containsAttributeToken, removeAttributeToken, addAttributeToken, toggleAttributeToken);
7266
7352
 
7267
7353
 
7268
7354
  /***/ }),
@@ -7320,7 +7406,9 @@ __webpack_require__.r(__webpack_exports__);
7320
7406
  /* harmony export */ "ATTRIBUTE_DISABLED": function() { return /* binding */ ATTRIBUTE_DISABLED; },
7321
7407
  /* harmony export */ "ATTRIBUTE_ERRORMESSAGE": function() { return /* binding */ ATTRIBUTE_ERRORMESSAGE; },
7322
7408
  /* harmony export */ "ATTRIBUTE_VALUE": function() { return /* binding */ ATTRIBUTE_VALUE; },
7323
- /* harmony export */ "objectUpdaterLinkSymbol": function() { return /* binding */ objectUpdaterLinkSymbol; }
7409
+ /* harmony export */ "objectUpdaterLinkSymbol": function() { return /* binding */ objectUpdaterLinkSymbol; },
7410
+ /* harmony export */ "ATTRIBUTE_TEMPLATE_PREFIX": function() { return /* binding */ ATTRIBUTE_TEMPLATE_PREFIX; },
7411
+ /* harmony export */ "ATTRIBUTE_UPDATER_SELECT_THIS": function() { return /* binding */ ATTRIBUTE_UPDATER_SELECT_THIS; }
7324
7412
  /* harmony export */ });
7325
7413
  /* harmony import */ var _namespace_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);
7326
7414
 
@@ -7373,6 +7461,13 @@ var ATTRIBUTE_THEME_NAME = ATTRIBUTE_THEME_PREFIX + 'name';
7373
7461
  */
7374
7462
 
7375
7463
  var ATTRIBUTE_UPDATER_ATTRIBUTES = ATTRIBUTE_PREFIX + 'attributes';
7464
+ /**
7465
+ * @memberOf Monster.DOM
7466
+ * @type {string}
7467
+ * @since 1.27.1
7468
+ */
7469
+
7470
+ var ATTRIBUTE_UPDATER_SELECT_THIS = ATTRIBUTE_PREFIX + 'select-this';
7376
7471
  /**
7377
7472
  * @memberOf Monster.DOM
7378
7473
  * @type {string}
@@ -7408,6 +7503,13 @@ var ATTRIBUTE_UPDATER_REMOVE = ATTRIBUTE_PREFIX + 'remove';
7408
7503
  */
7409
7504
 
7410
7505
  var ATTRIBUTE_UPDATER_BIND = ATTRIBUTE_PREFIX + 'bind';
7506
+ /**
7507
+ * @memberOf Monster.DOM
7508
+ * @type {string}
7509
+ * @since 1.27.0
7510
+ */
7511
+
7512
+ var ATTRIBUTE_TEMPLATE_PREFIX = ATTRIBUTE_PREFIX + 'template-prefix';
7411
7513
  /**
7412
7514
  * @memberOf Monster.DOM
7413
7515
  * @type {string}
@@ -7746,7 +7848,7 @@ var attachedInternalSymbol = Symbol('attachedInternal');
7746
7848
  *
7747
7849
  * ```
7748
7850
  * <script type="module">
7749
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/monster.js';
7851
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/monster.js';
7750
7852
  * document.createElement('monster-')
7751
7853
  * </script>
7752
7854
  * ```
@@ -8281,7 +8383,7 @@ var attributeObserverSymbol = Symbol('attributeObserver');
8281
8383
  *
8282
8384
  * ```
8283
8385
  * <script type="module">
8284
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/monster.js';
8386
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/monster.js';
8285
8387
  * document.createElement('monster-')
8286
8388
  * </script>
8287
8389
  * ```
@@ -9147,7 +9249,7 @@ var internal = Symbol('internal');
9147
9249
  *
9148
9250
  * ```
9149
9251
  * <script type="module">
9150
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/monster.js';
9252
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/monster.js';
9151
9253
  * new Monster.Types.DataUrl()
9152
9254
  * </script>
9153
9255
  * ```
@@ -9156,7 +9258,7 @@ var internal = Symbol('internal');
9156
9258
  *
9157
9259
  * ```
9158
9260
  * <script type="module">
9159
- * import {DataUrl} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/types/dataurl.js';
9261
+ * import {DataUrl} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/types/dataurl.js';
9160
9262
  * new DataUrl()
9161
9263
  * </script>
9162
9264
  * ```
@@ -9236,7 +9338,7 @@ var DataUrl = /*#__PURE__*/function (_Base) {
9236
9338
  *
9237
9339
  * ```
9238
9340
  * <script type="module">
9239
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/monster.js';
9341
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/monster.js';
9240
9342
  * console.log(Monster.Types.parseDataURL())
9241
9343
  * </script>
9242
9344
  * ```
@@ -9245,7 +9347,7 @@ var DataUrl = /*#__PURE__*/function (_Base) {
9245
9347
  *
9246
9348
  * ```
9247
9349
  * <script type="module">
9248
- * import {parseDataURL} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/types/dataurl.js';
9350
+ * import {parseDataURL} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/types/dataurl.js';
9249
9351
  * console.log(parseDataURL())
9250
9352
  * </script>
9251
9353
  * ```
@@ -9383,7 +9485,7 @@ var internal = Symbol('internal');
9383
9485
  *
9384
9486
  * ```
9385
9487
  * <script type="module">
9386
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/monster.js';
9488
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/monster.js';
9387
9489
  * console.log(new Monster.Types.MediaType())
9388
9490
  * </script>
9389
9491
  * ```
@@ -9392,7 +9494,7 @@ var internal = Symbol('internal');
9392
9494
  *
9393
9495
  * ```
9394
9496
  * <script type="module">
9395
- * import {MediaType} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/types/mediatype.js';
9497
+ * import {MediaType} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/types/mediatype.js';
9396
9498
  * console.log(new MediaType())
9397
9499
  * </script>
9398
9500
  * ```
@@ -9510,7 +9612,7 @@ var MediaType = /*#__PURE__*/function (_Base) {
9510
9612
  *
9511
9613
  * ```
9512
9614
  * <script type="module">
9513
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/monster.js';
9615
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/monster.js';
9514
9616
  * console.log(Monster.Types.parseMediaType())
9515
9617
  * </script>
9516
9618
  * ```
@@ -9519,7 +9621,7 @@ var MediaType = /*#__PURE__*/function (_Base) {
9519
9621
  *
9520
9622
  * ```
9521
9623
  * <script type="module">
9522
- * import {parseMediaType} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/types/dataurl.js';
9624
+ * import {parseMediaType} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/types/dataurl.js';
9523
9625
  * console.log(parseMediaType())
9524
9626
  * </script>
9525
9627
  * ```
@@ -9618,7 +9720,8 @@ __webpack_require__.r(__webpack_exports__);
9618
9720
  /* harmony import */ var _types_base_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(4);
9619
9721
  /* harmony import */ var _types_global_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(16);
9620
9722
  /* harmony import */ var _types_validate_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(14);
9621
- /* harmony import */ var _theme_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(39);
9723
+ /* harmony import */ var _constants_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(33);
9724
+ /* harmony import */ var _theme_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(39);
9622
9725
 
9623
9726
  /**
9624
9727
  * @author schukai GmbH
@@ -9651,12 +9754,13 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
9651
9754
 
9652
9755
 
9653
9756
 
9757
+
9654
9758
  /**
9655
9759
  * you can call the method via the monster namespace `new Monster.DOM.Template()`.
9656
9760
  *
9657
9761
  * ```
9658
9762
  * <script type="module">
9659
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/monster.js';
9763
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/monster.js';
9660
9764
  * new Monster.DOM.Template()
9661
9765
  * </script>
9662
9766
  * ```
@@ -9665,7 +9769,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
9665
9769
  *
9666
9770
  * ```
9667
9771
  * <script type="module">
9668
- * import {Template} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/dom/template.js';
9772
+ * import {Template} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/dom/template.js';
9669
9773
  * new Template()
9670
9774
  * </script>
9671
9775
  * ```
@@ -9736,14 +9840,14 @@ var Template = /*#__PURE__*/function (_Base) {
9736
9840
  *
9737
9841
  * If no theme was specified, the default theme is `monster`.
9738
9842
  *
9739
- * Now it is looked if there is a template with the given ID and theme `id-theme` and if yes it is returned.
9843
+ * Now it is looked if there is a template with the given ID and theme `id-theme` and if yes it is returned.
9740
9844
  * If there is no template a search for a template with the given ID `id` is done. If this is also not found, an error is thrown.
9741
- *
9845
+ *
9742
9846
  * You can call the method via the monster namespace `Monster.DOM.findDocumentTemplate()`.
9743
9847
  *
9744
9848
  * ```
9745
9849
  * <script type="module">
9746
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/monster.js';
9850
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/monster.js';
9747
9851
  * Monster.DOM.findDocumentTemplate()
9748
9852
  * </script>
9749
9853
  * ```
@@ -9752,14 +9856,14 @@ var Template = /*#__PURE__*/function (_Base) {
9752
9856
  *
9753
9857
  * ```
9754
9858
  * <script type="module">
9755
- * import {findTemplate} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/dom/template.js';
9859
+ * import {findTemplate} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/dom/template.js';
9756
9860
  * findDocumentTemplate()
9757
9861
  * </script>
9758
9862
  * ```
9759
9863
  *
9760
9864
  * @example
9761
9865
  *
9762
- * import { findDocumentTemplate } from "https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/dom/template.js";
9866
+ * import { findDocumentTemplate } from "https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/dom/template.js";
9763
9867
  *
9764
9868
  * const template = document.createElement("template");
9765
9869
  * template.id = "myTemplate";
@@ -9780,8 +9884,8 @@ var Template = /*#__PURE__*/function (_Base) {
9780
9884
  * document
9781
9885
  * .querySelector("html")
9782
9886
  * .setAttribute("data-monster-theme-name", "myTheme");
9783
- *
9784
- * // now we don't get the default template,
9887
+ *
9888
+ * // now we don't get the default template,
9785
9889
  * // but the template with the theme in the id
9786
9890
  * const template2 = findDocumentTemplate("myTemplate");
9787
9891
  * console.log(template2.createDocumentFragment());
@@ -9800,9 +9904,18 @@ var Template = /*#__PURE__*/function (_Base) {
9800
9904
 
9801
9905
  function findDocumentTemplate(id, currentNode) {
9802
9906
  (0,_types_validate_js__WEBPACK_IMPORTED_MODULE_3__.validateString)(id);
9907
+ var document = (0,_types_global_js__WEBPACK_IMPORTED_MODULE_2__.getGlobalObject)('document');
9908
+ var HTMLTemplateElement = (0,_types_global_js__WEBPACK_IMPORTED_MODULE_2__.getGlobalFunction)('HTMLTemplateElement');
9909
+ var DocumentFragment = (0,_types_global_js__WEBPACK_IMPORTED_MODULE_2__.getGlobalFunction)('DocumentFragment');
9910
+ var Document = (0,_types_global_js__WEBPACK_IMPORTED_MODULE_2__.getGlobalFunction)('Document');
9911
+ var prefixID;
9803
9912
 
9804
9913
  if (!(currentNode instanceof Document || currentNode instanceof DocumentFragment)) {
9805
9914
  if (currentNode instanceof Node) {
9915
+ if (currentNode.hasAttribute(_constants_js__WEBPACK_IMPORTED_MODULE_4__.ATTRIBUTE_TEMPLATE_PREFIX)) {
9916
+ prefixID = currentNode.getAttribute(_constants_js__WEBPACK_IMPORTED_MODULE_4__.ATTRIBUTE_TEMPLATE_PREFIX);
9917
+ }
9918
+
9806
9919
  currentNode = currentNode.getRootNode();
9807
9920
 
9808
9921
  if (!(currentNode instanceof Document || currentNode instanceof DocumentFragment)) {
@@ -9811,27 +9924,57 @@ function findDocumentTemplate(id, currentNode) {
9811
9924
  }
9812
9925
 
9813
9926
  if (!(currentNode instanceof Document || currentNode instanceof DocumentFragment)) {
9814
- currentNode = (0,_types_global_js__WEBPACK_IMPORTED_MODULE_2__.getGlobalObject)('document');
9927
+ currentNode = document;
9815
9928
  }
9816
9929
  }
9817
9930
 
9818
- var HTMLTemplateElement = (0,_types_global_js__WEBPACK_IMPORTED_MODULE_2__.getGlobalFunction)('HTMLTemplateElement');
9819
- var theme = (0,_theme_js__WEBPACK_IMPORTED_MODULE_4__.getDocumentTheme)();
9820
- var themedID = id + '-' + theme.getName();
9821
- var template = currentNode.getElementById(themedID);
9931
+ var template;
9932
+ var theme = (0,_theme_js__WEBPACK_IMPORTED_MODULE_5__.getDocumentTheme)();
9933
+
9934
+ if (prefixID) {
9935
+ var themedPrefixID = prefixID + '-' + id + '-' + theme.getName(); // current + themedPrefixID
9936
+
9937
+ template = currentNode.getElementById(themedPrefixID);
9938
+
9939
+ if (template instanceof HTMLTemplateElement) {
9940
+ return new Template(template);
9941
+ } // document + themedPrefixID
9942
+
9943
+
9944
+ template = document.getElementById(themedPrefixID);
9945
+
9946
+ if (template instanceof HTMLTemplateElement) {
9947
+ return new Template(template);
9948
+ }
9949
+ }
9950
+
9951
+ var themedID = id + '-' + theme.getName(); // current + themedID
9952
+
9953
+ template = currentNode.getElementById(themedID);
9822
9954
 
9823
9955
  if (template instanceof HTMLTemplateElement) {
9824
9956
  return new Template(template);
9825
- }
9957
+ } // document + themedID
9958
+
9959
+
9960
+ template = document.getElementById(themedID);
9961
+
9962
+ if (template instanceof HTMLTemplateElement) {
9963
+ return new Template(template);
9964
+ } // current + ID
9965
+
9826
9966
 
9827
9967
  template = currentNode.getElementById(id);
9828
9968
 
9829
9969
  if (template instanceof HTMLTemplateElement) {
9830
9970
  return new Template(template);
9831
- }
9971
+ } // document + ID
9832
9972
 
9833
- if (currentNode !== (0,_types_global_js__WEBPACK_IMPORTED_MODULE_2__.getGlobalObject)('document')) {
9834
- return findDocumentTemplate(id);
9973
+
9974
+ template = document.getElementById(id);
9975
+
9976
+ if (template instanceof HTMLTemplateElement) {
9977
+ return new Template(template);
9835
9978
  }
9836
9979
 
9837
9980
  throw new Error("template " + id + " not found.");
@@ -9892,7 +10035,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
9892
10035
  *
9893
10036
  * ```
9894
10037
  * <script type="module">
9895
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/monster.js';
10038
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/monster.js';
9896
10039
  * console.log(new Monster.DOM.Theme())
9897
10040
  * </script>
9898
10041
  * ```
@@ -9901,14 +10044,14 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
9901
10044
  *
9902
10045
  * ```
9903
10046
  * <script type="module">
9904
- * import {Theme} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/dom/theme.js';
10047
+ * import {Theme} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/dom/theme.js';
9905
10048
  * console.log(new Theme())
9906
10049
  * </script>
9907
10050
  * ```
9908
10051
  *
9909
10052
  * @example
9910
10053
  *
9911
- * import {getDocumentTheme} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/dom/theme.js';
10054
+ * import {getDocumentTheme} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/dom/theme.js';
9912
10055
  *
9913
10056
  * const theme = getDocumentTheme();
9914
10057
  * console.log(theme.getName());
@@ -9998,23 +10141,25 @@ function getDocumentTheme() {
9998
10141
 
9999
10142
  __webpack_require__.r(__webpack_exports__);
10000
10143
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
10001
- /* harmony export */ "Monster": function() { return /* reexport safe */ _namespace_js__WEBPACK_IMPORTED_MODULE_4__.Monster; },
10144
+ /* harmony export */ "Monster": function() { return /* reexport safe */ _namespace_js__WEBPACK_IMPORTED_MODULE_5__.Monster; },
10002
10145
  /* harmony export */ "Updater": function() { return /* binding */ Updater; }
10003
10146
  /* harmony export */ });
10004
- /* harmony import */ var _data_diff_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20);
10005
- /* harmony import */ var _data_pathfinder_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(18);
10006
- /* harmony import */ var _data_pipe_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(22);
10007
- /* harmony import */ var _dom_constants_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(33);
10008
- /* harmony import */ var _namespace_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(2);
10009
- /* harmony import */ var _types_base_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(4);
10010
- /* harmony import */ var _types_is_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(9);
10011
- /* harmony import */ var _types_observer_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(27);
10012
- /* harmony import */ var _types_proxyobserver_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(26);
10013
- /* harmony import */ var _types_validate_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(14);
10014
- /* harmony import */ var _util_clone_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(15);
10015
- /* harmony import */ var _util_trimspaces_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(41);
10016
- /* harmony import */ var _template_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(38);
10017
- /* harmony import */ var _util_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(42);
10147
+ /* harmony import */ var _constants_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1);
10148
+ /* harmony import */ var _data_diff_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(20);
10149
+ /* harmony import */ var _data_pathfinder_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(18);
10150
+ /* harmony import */ var _data_pipe_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(22);
10151
+ /* harmony import */ var _dom_constants_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(33);
10152
+ /* harmony import */ var _namespace_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(2);
10153
+ /* harmony import */ var _types_base_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(4);
10154
+ /* harmony import */ var _types_is_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(9);
10155
+ /* harmony import */ var _types_observer_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(27);
10156
+ /* harmony import */ var _types_proxyobserver_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(26);
10157
+ /* harmony import */ var _types_validate_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(14);
10158
+ /* harmony import */ var _util_clone_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(15);
10159
+ /* harmony import */ var _util_trimspaces_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(41);
10160
+ /* harmony import */ var _events_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(42);
10161
+ /* harmony import */ var _template_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(38);
10162
+ /* harmony import */ var _util_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(43);
10018
10163
 
10019
10164
  /**
10020
10165
  * @author schukai GmbH
@@ -10078,17 +10223,22 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
10078
10223
 
10079
10224
 
10080
10225
 
10226
+
10227
+
10081
10228
  /**
10082
10229
  * The updater class connects an object with the dom. In this way, structures and contents in the DOM can be programmatically adapted via attributes.
10083
10230
  *
10084
10231
  * For example, to include a string from an object, the attribute `data-monster-replace` can be used.
10085
10232
  * a further explanation can be found under {@tutorial dom-based-templating-implementation}.
10086
10233
  *
10234
+ * Changes to attributes are made only when the direct values are changed. If you want to assign changes to other values
10235
+ * as well, you have to insert the attribute `data-monster-select-this`. This should be done with care, as it can reduce performance.
10236
+ *
10087
10237
  * You can create an object of this class using the monster namespace `new Monster.DOM.Updater()`.
10088
10238
  *
10089
10239
  * ```
10090
10240
  * <script type="module">
10091
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/monster.js';
10241
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/monster.js';
10092
10242
  * new Monster.DOM.Updater()
10093
10243
  * </script>
10094
10244
  * ```
@@ -10097,14 +10247,14 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
10097
10247
  *
10098
10248
  * ```
10099
10249
  * <script type="module">
10100
- * import {Updater} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/dom/updater.js';
10250
+ * import {Updater} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/dom/updater.js';
10101
10251
  * new Updater()
10102
10252
  * </script>
10103
10253
  * ```
10104
10254
  *
10105
10255
  * @example
10106
10256
  *
10107
- * import {Updater} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/dom/updater.js';
10257
+ * import {Updater} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/dom/updater.js';
10108
10258
  *
10109
10259
  * // First we prepare the html document.
10110
10260
  * // This is done here via script, but can also be inserted into the document as pure html.
@@ -10118,7 +10268,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
10118
10268
  * let obj = {
10119
10269
  * headline: "Hello World",
10120
10270
  * };
10121
- *
10271
+ *
10122
10272
  * // Now comes the real magic. we pass the updater the parent HTMLElement
10123
10273
  * // and the desired data structure.
10124
10274
  * const updater = new Updater(body, obj);
@@ -10163,28 +10313,27 @@ var Updater = /*#__PURE__*/function (_Base) {
10163
10313
  * @type {HTMLElement}
10164
10314
  */
10165
10315
 
10166
- _this.element = (0,_types_validate_js__WEBPACK_IMPORTED_MODULE_9__.validateInstance)(element, HTMLElement);
10167
10316
  if (subject === undefined) subject = {};
10168
- var a = subject;
10169
10317
 
10170
- if (!(0,_types_is_js__WEBPACK_IMPORTED_MODULE_6__.isInstance)(subject, _types_proxyobserver_js__WEBPACK_IMPORTED_MODULE_8__.ProxyObserver)) {
10171
- subject = new _types_proxyobserver_js__WEBPACK_IMPORTED_MODULE_8__.ProxyObserver(subject);
10318
+ if (!(0,_types_is_js__WEBPACK_IMPORTED_MODULE_7__.isInstance)(subject, _types_proxyobserver_js__WEBPACK_IMPORTED_MODULE_9__.ProxyObserver)) {
10319
+ subject = new _types_proxyobserver_js__WEBPACK_IMPORTED_MODULE_9__.ProxyObserver(subject);
10172
10320
  }
10173
10321
 
10174
- _this.last = {};
10175
- _this.callbacks = new Map();
10176
-
10177
- _this.callbacks.set('checkstate', getCheckStateCallback.call(_assertThisInitialized(_this)));
10178
- /**
10179
- * @type {object}
10180
- */
10322
+ _this[_constants_js__WEBPACK_IMPORTED_MODULE_0__.internalSymbol] = {
10323
+ element: (0,_types_validate_js__WEBPACK_IMPORTED_MODULE_10__.validateInstance)(element, HTMLElement),
10324
+ last: {},
10325
+ callbacks: new Map(),
10326
+ eventTypes: ['keyup', 'click', 'change', 'drop', 'touchend', 'input'],
10327
+ subject: subject
10328
+ };
10181
10329
 
10330
+ _this[_constants_js__WEBPACK_IMPORTED_MODULE_0__.internalSymbol].callbacks.set('checkstate', getCheckStateCallback.call(_assertThisInitialized(_this)));
10182
10331
 
10183
- _this.subject = subject.attachObserver(new _types_observer_js__WEBPACK_IMPORTED_MODULE_7__.Observer(function () {
10184
- var s = _this.subject.getRealSubject();
10332
+ _this[_constants_js__WEBPACK_IMPORTED_MODULE_0__.internalSymbol].subject.attachObserver(new _types_observer_js__WEBPACK_IMPORTED_MODULE_8__.Observer(function () {
10333
+ var s = _this[_constants_js__WEBPACK_IMPORTED_MODULE_0__.internalSymbol].subject.getRealSubject();
10185
10334
 
10186
- var diffResult = (0,_data_diff_js__WEBPACK_IMPORTED_MODULE_0__.diff)(_this.last, s);
10187
- _this.last = (0,_util_clone_js__WEBPACK_IMPORTED_MODULE_10__.clone)(s);
10335
+ var diffResult = (0,_data_diff_js__WEBPACK_IMPORTED_MODULE_1__.diff)(_this[_constants_js__WEBPACK_IMPORTED_MODULE_0__.internalSymbol].last, s);
10336
+ _this[_constants_js__WEBPACK_IMPORTED_MODULE_0__.internalSymbol].last = (0,_util_clone_js__WEBPACK_IMPORTED_MODULE_11__.clone)(s);
10188
10337
 
10189
10338
  for (var _i = 0, _Object$entries = Object.entries(diffResult); _i < _Object$entries.length; _i++) {
10190
10339
  var _Object$entries$_i = _slicedToArray(_Object$entries[_i], 2),
@@ -10196,7 +10345,7 @@ var Updater = /*#__PURE__*/function (_Base) {
10196
10345
  updateAttributes.call(_assertThisInitialized(_this), change);
10197
10346
  }
10198
10347
  }));
10199
- _this.eventTypes = ['keyup', 'click', 'change', 'drop', 'touchend', 'input'];
10348
+
10200
10349
  return _this;
10201
10350
  }
10202
10351
  /**
@@ -10212,7 +10361,7 @@ var Updater = /*#__PURE__*/function (_Base) {
10212
10361
  _createClass(Updater, [{
10213
10362
  key: "setEventTypes",
10214
10363
  value: function setEventTypes(types) {
10215
- this.eventTypes = (0,_types_validate_js__WEBPACK_IMPORTED_MODULE_9__.validateArray)(types);
10364
+ this[_constants_js__WEBPACK_IMPORTED_MODULE_0__.internalSymbol].eventTypes = (0,_types_validate_js__WEBPACK_IMPORTED_MODULE_10__.validateArray)(types);
10216
10365
  return this;
10217
10366
  }
10218
10367
  /**
@@ -10226,6 +10375,7 @@ var Updater = /*#__PURE__*/function (_Base) {
10226
10375
  *
10227
10376
  * @since 1.9.0
10228
10377
  * @return {Updater}
10378
+ * @throws {Error} the bind argument must start as a value with a path
10229
10379
  */
10230
10380
 
10231
10381
  }, {
@@ -10233,13 +10383,17 @@ var Updater = /*#__PURE__*/function (_Base) {
10233
10383
  value: function enableEventProcessing() {
10234
10384
  this.disableEventProcessing();
10235
10385
 
10236
- var _iterator = _createForOfIteratorHelper(this.eventTypes),
10386
+ var _iterator = _createForOfIteratorHelper(this[_constants_js__WEBPACK_IMPORTED_MODULE_0__.internalSymbol].eventTypes),
10237
10387
  _step;
10238
10388
 
10239
10389
  try {
10240
10390
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
10241
10391
  var type = _step.value;
10242
- this.element.addEventListener(type, getControlEventHandler.call(this));
10392
+ // @see https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener
10393
+ this[_constants_js__WEBPACK_IMPORTED_MODULE_0__.internalSymbol].element.addEventListener(type, getControlEventHandler.call(this), {
10394
+ capture: true,
10395
+ passive: true
10396
+ });
10243
10397
  }
10244
10398
  } catch (err) {
10245
10399
  _iterator.e(err);
@@ -10259,13 +10413,13 @@ var Updater = /*#__PURE__*/function (_Base) {
10259
10413
  }, {
10260
10414
  key: "disableEventProcessing",
10261
10415
  value: function disableEventProcessing() {
10262
- var _iterator2 = _createForOfIteratorHelper(this.eventTypes),
10416
+ var _iterator2 = _createForOfIteratorHelper(this[_constants_js__WEBPACK_IMPORTED_MODULE_0__.internalSymbol].eventTypes),
10263
10417
  _step2;
10264
10418
 
10265
10419
  try {
10266
10420
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
10267
10421
  var type = _step2.value;
10268
- this.element.removeEventListener(type, getControlEventHandler.call(this));
10422
+ this[_constants_js__WEBPACK_IMPORTED_MODULE_0__.internalSymbol].element.removeEventListener(type, getControlEventHandler.call(this));
10269
10423
  }
10270
10424
  } catch (err) {
10271
10425
  _iterator2.e(err);
@@ -10294,10 +10448,23 @@ var Updater = /*#__PURE__*/function (_Base) {
10294
10448
  value: function run() {
10295
10449
  // the key __init__has no further meaning and is only
10296
10450
  // used to create the diff for empty objects.
10297
- this.last = {
10451
+ this[_constants_js__WEBPACK_IMPORTED_MODULE_0__.internalSymbol].last = {
10298
10452
  '__init__': true
10299
10453
  };
10300
- return this.subject.notifyObservers();
10454
+ return this[_constants_js__WEBPACK_IMPORTED_MODULE_0__.internalSymbol].subject.notifyObservers();
10455
+ }
10456
+ /**
10457
+ * Gets the values of bound elements and changes them in subject
10458
+ *
10459
+ * @since 1.27.0
10460
+ * @return {Monster.DOM.Updater}
10461
+ */
10462
+
10463
+ }, {
10464
+ key: "retrieve",
10465
+ value: function retrieve() {
10466
+ retrieveFromBindings.call(this);
10467
+ return this;
10301
10468
  }
10302
10469
  /**
10303
10470
  * If you have passed a ProxyObserver in the constructor, you will get the object that the ProxyObserver manages here.
@@ -10312,7 +10479,7 @@ var Updater = /*#__PURE__*/function (_Base) {
10312
10479
  }, {
10313
10480
  key: "getSubject",
10314
10481
  value: function getSubject() {
10315
- return this.subject.getSubject();
10482
+ return this[_constants_js__WEBPACK_IMPORTED_MODULE_0__.internalSymbol].subject.getSubject();
10316
10483
  }
10317
10484
  /**
10318
10485
  * This method can be used to register commands that can be called via call: instruction.
@@ -10328,13 +10495,13 @@ var Updater = /*#__PURE__*/function (_Base) {
10328
10495
  }, {
10329
10496
  key: "setCallback",
10330
10497
  value: function setCallback(name, callback) {
10331
- this.callbacks.set(name, callback);
10498
+ this[_constants_js__WEBPACK_IMPORTED_MODULE_0__.internalSymbol].callbacks.set(name, callback);
10332
10499
  return this;
10333
10500
  }
10334
10501
  }]);
10335
10502
 
10336
10503
  return Updater;
10337
- }(_types_base_js__WEBPACK_IMPORTED_MODULE_5__.Base);
10504
+ }(_types_base_js__WEBPACK_IMPORTED_MODULE_6__.Base);
10338
10505
  /**
10339
10506
  * @private
10340
10507
  * @since 1.9.0
@@ -10346,12 +10513,13 @@ var Updater = /*#__PURE__*/function (_Base) {
10346
10513
  function getCheckStateCallback() {
10347
10514
  var self = this;
10348
10515
  return function (current) {
10516
+ // this is a reference to the current object (therefore no array function here)
10349
10517
  if (this instanceof HTMLInputElement) {
10350
10518
  if (['radio', 'checkbox'].indexOf(this.type) !== -1) {
10351
10519
  return this.value + "" === current + "" ? 'true' : undefined;
10352
10520
  }
10353
10521
  } else if (this instanceof HTMLOptionElement) {
10354
- if ((0,_types_is_js__WEBPACK_IMPORTED_MODULE_6__.isArray)(current) && current.indexOf(this.value) !== -1) {
10522
+ if ((0,_types_is_js__WEBPACK_IMPORTED_MODULE_7__.isArray)(current) && current.indexOf(this.value) !== -1) {
10355
10523
  return 'true';
10356
10524
  }
10357
10525
 
@@ -10369,6 +10537,7 @@ var symbol = Symbol('EventHandler');
10369
10537
  * @private
10370
10538
  * @return {function}
10371
10539
  * @this Updater
10540
+ * @throws {Error} the bind argument must start as a value with a path
10372
10541
  */
10373
10542
 
10374
10543
  function getControlEventHandler() {
@@ -10377,97 +10546,112 @@ function getControlEventHandler() {
10377
10546
  if (self[symbol]) {
10378
10547
  return self[symbol];
10379
10548
  }
10380
-
10381
- var pathfinder = new _data_pathfinder_js__WEBPACK_IMPORTED_MODULE_1__.Pathfinder(this.subject.getSubject());
10382
10549
  /**
10383
10550
  * @throws {Error} the bind argument must start as a value with a path.
10384
10551
  * @throws {Error} unsupported object
10385
10552
  * @param {Event} event
10386
10553
  */
10387
10554
 
10388
- self[symbol] = function (event) {
10389
- var _element$constructor, _Object$getOwnPropert;
10390
10555
 
10391
- var element = event.target;
10556
+ self[symbol] = function (event) {
10557
+ var element = (0,_events_js__WEBPACK_IMPORTED_MODULE_13__.findTargetElementFromEvent)(event, _dom_constants_js__WEBPACK_IMPORTED_MODULE_4__.ATTRIBUTE_UPDATER_BIND);
10392
10558
 
10393
- if (!element.hasAttribute(_dom_constants_js__WEBPACK_IMPORTED_MODULE_3__.ATTRIBUTE_UPDATER_BIND)) {
10559
+ if (element === undefined) {
10394
10560
  return;
10395
10561
  }
10396
10562
 
10397
- var path = element.getAttribute(_dom_constants_js__WEBPACK_IMPORTED_MODULE_3__.ATTRIBUTE_UPDATER_BIND);
10563
+ retrieveAndSetValue.call(self, element);
10564
+ };
10398
10565
 
10399
- if (path.indexOf('path:') !== 0) {
10400
- throw new Error('the bind argument must start as a value with a path.');
10401
- }
10566
+ return self[symbol];
10567
+ }
10568
+ /**
10569
+ * @throws {Error} the bind argument must start as a value with a path
10570
+ * @param {HTMLElement} element
10571
+ * @return void
10572
+ */
10402
10573
 
10403
- path = path.substr(5);
10404
- var value;
10405
10574
 
10406
- if (element instanceof HTMLInputElement) {
10407
- switch (element.type) {
10408
- case 'checkbox':
10409
- value = element.checked ? element.value : undefined;
10410
- break;
10575
+ function retrieveAndSetValue(element) {
10576
+ var _element$constructor, _Object$getOwnPropert;
10411
10577
 
10412
- default:
10413
- value = element.value;
10414
- break;
10415
- }
10416
- } else if (element instanceof HTMLTextAreaElement) {
10417
- value = element.value;
10418
- } else if (element instanceof HTMLSelectElement) {
10419
- switch (element.type) {
10420
- case 'select-one':
10421
- value = element.value;
10422
- break;
10423
-
10424
- case 'select-multiple':
10425
- value = element.value;
10426
- var options = element === null || element === void 0 ? void 0 : element.selectedOptions;
10427
- if (options === undefined) options = element.querySelectorAll(":scope option:checked");
10428
- value = Array.from(options).map(function (_ref) {
10429
- var value = _ref.value;
10430
- return value;
10431
- });
10432
- break;
10433
- } // values from customelements
10578
+ var self = this;
10579
+ var pathfinder = new _data_pathfinder_js__WEBPACK_IMPORTED_MODULE_2__.Pathfinder(self[_constants_js__WEBPACK_IMPORTED_MODULE_0__.internalSymbol].subject.getSubject());
10580
+ var path = element.getAttribute(_dom_constants_js__WEBPACK_IMPORTED_MODULE_4__.ATTRIBUTE_UPDATER_BIND);
10434
10581
 
10435
- } else if (element !== null && element !== void 0 && (_element$constructor = element.constructor) !== null && _element$constructor !== void 0 && _element$constructor.prototype && !!((_Object$getOwnPropert = Object.getOwnPropertyDescriptor(element.constructor.prototype, 'value')) !== null && _Object$getOwnPropert !== void 0 && _Object$getOwnPropert['get']) || element.hasOwnProperty('value')) {
10436
- value = element === null || element === void 0 ? void 0 : element['value'];
10437
- } else {
10438
- throw new Error("unsupported object");
10439
- }
10582
+ if (path.indexOf('path:') !== 0) {
10583
+ throw new Error('the bind argument must start as a value with a path');
10584
+ }
10585
+
10586
+ path = path.substr(5);
10587
+ var value;
10440
10588
 
10441
- var copy = (0,_util_clone_js__WEBPACK_IMPORTED_MODULE_10__.clone)(self.subject.getRealSubject());
10442
- var pf = new _data_pathfinder_js__WEBPACK_IMPORTED_MODULE_1__.Pathfinder(copy);
10443
- pf.setVia(path, value);
10444
- var diffResult = (0,_data_diff_js__WEBPACK_IMPORTED_MODULE_0__.diff)(copy, self.subject.getRealSubject());
10589
+ if (element instanceof HTMLInputElement) {
10590
+ switch (element.type) {
10591
+ case 'checkbox':
10592
+ value = element.checked ? element.value : undefined;
10593
+ break;
10445
10594
 
10446
- if (diffResult.length > 0) {
10447
- pathfinder.setVia(path, value);
10595
+ default:
10596
+ value = element.value;
10597
+ break;
10448
10598
  }
10449
- };
10599
+ } else if (element instanceof HTMLTextAreaElement) {
10600
+ value = element.value;
10601
+ } else if (element instanceof HTMLSelectElement) {
10602
+ switch (element.type) {
10603
+ case 'select-one':
10604
+ value = element.value;
10605
+ break;
10450
10606
 
10451
- return self[symbol];
10607
+ case 'select-multiple':
10608
+ value = element.value;
10609
+ var options = element === null || element === void 0 ? void 0 : element.selectedOptions;
10610
+ if (options === undefined) options = element.querySelectorAll(":scope option:checked");
10611
+ value = Array.from(options).map(function (_ref) {
10612
+ var value = _ref.value;
10613
+ return value;
10614
+ });
10615
+ break;
10616
+ } // values from customelements
10617
+
10618
+ } else if (element !== null && element !== void 0 && (_element$constructor = element.constructor) !== null && _element$constructor !== void 0 && _element$constructor.prototype && !!((_Object$getOwnPropert = Object.getOwnPropertyDescriptor(element.constructor.prototype, 'value')) !== null && _Object$getOwnPropert !== void 0 && _Object$getOwnPropert['get']) || element.hasOwnProperty('value')) {
10619
+ value = element === null || element === void 0 ? void 0 : element['value'];
10620
+ } else {
10621
+ throw new Error("unsupported object");
10622
+ }
10623
+
10624
+ var copy = (0,_util_clone_js__WEBPACK_IMPORTED_MODULE_11__.clone)(self[_constants_js__WEBPACK_IMPORTED_MODULE_0__.internalSymbol].subject.getRealSubject());
10625
+ var pf = new _data_pathfinder_js__WEBPACK_IMPORTED_MODULE_2__.Pathfinder(copy);
10626
+ pf.setVia(path, value);
10627
+ var diffResult = (0,_data_diff_js__WEBPACK_IMPORTED_MODULE_1__.diff)(copy, self[_constants_js__WEBPACK_IMPORTED_MODULE_0__.internalSymbol].subject.getRealSubject());
10628
+
10629
+ if (diffResult.length > 0) {
10630
+ pathfinder.setVia(path, value);
10631
+ }
10452
10632
  }
10453
10633
  /**
10454
- * @private
10455
- * @since 1.8.0
10456
- * @param {object} change
10457
- * @return {void}
10634
+ * @since 1.27.0
10635
+ * @return void
10458
10636
  */
10459
10637
 
10460
10638
 
10461
- function removeElement(change) {
10462
- var _iterator3 = _createForOfIteratorHelper(this.element.querySelectorAll(':scope [' + _dom_constants_js__WEBPACK_IMPORTED_MODULE_3__.ATTRIBUTE_UPDATER_REMOVE + ']').entries()),
10639
+ function retrieveFromBindings() {
10640
+ var self = this;
10641
+
10642
+ if (self[_constants_js__WEBPACK_IMPORTED_MODULE_0__.internalSymbol].element.matches('[' + _dom_constants_js__WEBPACK_IMPORTED_MODULE_4__.ATTRIBUTE_UPDATER_BIND + ']')) {
10643
+ retrieveAndSetValue.call(self, element);
10644
+ }
10645
+
10646
+ var _iterator3 = _createForOfIteratorHelper(self[_constants_js__WEBPACK_IMPORTED_MODULE_0__.internalSymbol].element.querySelectorAll('[' + _dom_constants_js__WEBPACK_IMPORTED_MODULE_4__.ATTRIBUTE_UPDATER_BIND + ']').entries()),
10463
10647
  _step3;
10464
10648
 
10465
10649
  try {
10466
10650
  for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
10467
10651
  var _step3$value = _slicedToArray(_step3.value, 2),
10468
- element = _step3$value[1];
10652
+ _element = _step3$value[1];
10469
10653
 
10470
- element.parentNode.removeChild(element);
10654
+ retrieveAndSetValue.call(self, _element);
10471
10655
  }
10472
10656
  } catch (err) {
10473
10657
  _iterator3.e(err);
@@ -10475,6 +10659,33 @@ function removeElement(change) {
10475
10659
  _iterator3.f();
10476
10660
  }
10477
10661
  }
10662
+ /**
10663
+ * @private
10664
+ * @since 1.8.0
10665
+ * @param {object} change
10666
+ * @return {void}
10667
+ */
10668
+
10669
+
10670
+ function removeElement(change) {
10671
+ var self = this;
10672
+
10673
+ var _iterator4 = _createForOfIteratorHelper(self[_constants_js__WEBPACK_IMPORTED_MODULE_0__.internalSymbol].element.querySelectorAll(':scope [' + _dom_constants_js__WEBPACK_IMPORTED_MODULE_4__.ATTRIBUTE_UPDATER_REMOVE + ']').entries()),
10674
+ _step4;
10675
+
10676
+ try {
10677
+ for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
10678
+ var _step4$value = _slicedToArray(_step4.value, 2),
10679
+ _element2 = _step4$value[1];
10680
+
10681
+ _element2.parentNode.removeChild(_element2);
10682
+ }
10683
+ } catch (err) {
10684
+ _iterator4.e(err);
10685
+ } finally {
10686
+ _iterator4.f();
10687
+ }
10688
+ }
10478
10689
  /**
10479
10690
  * @private
10480
10691
  * @since 1.8.0
@@ -10492,56 +10703,56 @@ function insertElement(change) {
10492
10703
  var _this2 = this;
10493
10704
 
10494
10705
  var self = this;
10495
- var subject = self.subject.getRealSubject();
10496
- var document = (0,_util_js__WEBPACK_IMPORTED_MODULE_13__.getDocument)();
10706
+ var subject = self[_constants_js__WEBPACK_IMPORTED_MODULE_0__.internalSymbol].subject.getRealSubject();
10707
+ var document = (0,_util_js__WEBPACK_IMPORTED_MODULE_15__.getDocument)();
10497
10708
  var mem = new WeakSet();
10498
10709
  var wd = 0;
10499
10710
 
10500
10711
  while (true) {
10501
10712
  var found = false;
10502
10713
  wd++;
10503
- var p = (0,_util_clone_js__WEBPACK_IMPORTED_MODULE_10__.clone)(change === null || change === void 0 ? void 0 : change['path']);
10504
- if (!(0,_types_is_js__WEBPACK_IMPORTED_MODULE_6__.isArray)(p)) return this;
10714
+ var p = (0,_util_clone_js__WEBPACK_IMPORTED_MODULE_11__.clone)(change === null || change === void 0 ? void 0 : change['path']);
10715
+ if (!(0,_types_is_js__WEBPACK_IMPORTED_MODULE_7__.isArray)(p)) return this;
10505
10716
 
10506
10717
  while (p.length > 0) {
10507
10718
  var current = p.join('.');
10508
- var list = this.element.querySelectorAll(':scope [' + _dom_constants_js__WEBPACK_IMPORTED_MODULE_3__.ATTRIBUTE_UPDATER_INSERT + '*="path:' + current + '"]').entries();
10719
+ var list = this[_constants_js__WEBPACK_IMPORTED_MODULE_0__.internalSymbol].element.querySelectorAll(':scope [' + _dom_constants_js__WEBPACK_IMPORTED_MODULE_4__.ATTRIBUTE_UPDATER_INSERT + '*="path:' + current + '"]').entries();
10509
10720
 
10510
- var _iterator4 = _createForOfIteratorHelper(list),
10511
- _step4;
10721
+ var _iterator5 = _createForOfIteratorHelper(list),
10722
+ _step5;
10512
10723
 
10513
10724
  try {
10514
10725
  var _loop = function _loop() {
10515
- var _step4$value = _slicedToArray(_step4.value, 2),
10516
- containerElement = _step4$value[1];
10726
+ var _step5$value = _slicedToArray(_step5.value, 2),
10727
+ containerElement = _step5$value[1];
10517
10728
 
10518
10729
  if (mem.has(containerElement)) return "continue";
10519
10730
  mem.add(containerElement);
10520
10731
  found = true;
10521
- var attributes = containerElement.getAttribute(_dom_constants_js__WEBPACK_IMPORTED_MODULE_3__.ATTRIBUTE_UPDATER_INSERT);
10522
- var def = (0,_util_trimspaces_js__WEBPACK_IMPORTED_MODULE_11__.trimSpaces)(attributes);
10732
+ var attributes = containerElement.getAttribute(_dom_constants_js__WEBPACK_IMPORTED_MODULE_4__.ATTRIBUTE_UPDATER_INSERT);
10733
+ var def = (0,_util_trimspaces_js__WEBPACK_IMPORTED_MODULE_12__.trimSpaces)(attributes);
10523
10734
  var i = def.indexOf(' ');
10524
- var key = (0,_util_trimspaces_js__WEBPACK_IMPORTED_MODULE_11__.trimSpaces)(def.substr(0, i));
10735
+ var key = (0,_util_trimspaces_js__WEBPACK_IMPORTED_MODULE_12__.trimSpaces)(def.substr(0, i));
10525
10736
  var refPrefix = key + '-';
10526
- var cmd = (0,_util_trimspaces_js__WEBPACK_IMPORTED_MODULE_11__.trimSpaces)(def.substr(i)); // this case is actually excluded by the query but is nevertheless checked again here
10737
+ var cmd = (0,_util_trimspaces_js__WEBPACK_IMPORTED_MODULE_12__.trimSpaces)(def.substr(i)); // this case is actually excluded by the query but is nevertheless checked again here
10527
10738
 
10528
10739
  if (cmd.indexOf('|') > 0) {
10529
10740
  throw new Error("pipes are not allowed when cloning a node.");
10530
10741
  }
10531
10742
 
10532
- var pipe = new _data_pipe_js__WEBPACK_IMPORTED_MODULE_2__.Pipe(cmd);
10743
+ var pipe = new _data_pipe_js__WEBPACK_IMPORTED_MODULE_3__.Pipe(cmd);
10533
10744
 
10534
- _this2.callbacks.forEach(function (f, n) {
10745
+ _this2[_constants_js__WEBPACK_IMPORTED_MODULE_0__.internalSymbol].callbacks.forEach(function (f, n) {
10535
10746
  pipe.setCallback(n, f);
10536
10747
  });
10537
10748
 
10538
10749
  var value = void 0;
10539
10750
 
10540
10751
  try {
10541
- containerElement.removeAttribute(_dom_constants_js__WEBPACK_IMPORTED_MODULE_3__.ATTRIBUTE_ERRORMESSAGE);
10752
+ containerElement.removeAttribute(_dom_constants_js__WEBPACK_IMPORTED_MODULE_4__.ATTRIBUTE_ERRORMESSAGE);
10542
10753
  value = pipe.run(subject);
10543
10754
  } catch (e) {
10544
- containerElement.setAttribute(_dom_constants_js__WEBPACK_IMPORTED_MODULE_3__.ATTRIBUTE_ERRORMESSAGE, e.message);
10755
+ containerElement.setAttribute(_dom_constants_js__WEBPACK_IMPORTED_MODULE_4__.ATTRIBUTE_ERRORMESSAGE, e.message);
10545
10756
  }
10546
10757
 
10547
10758
  var dataPath = cmd.split(':').pop();
@@ -10551,7 +10762,7 @@ function insertElement(change) {
10551
10762
  insertPoint = containerElement.lastChild;
10552
10763
  }
10553
10764
 
10554
- if (!(0,_types_is_js__WEBPACK_IMPORTED_MODULE_6__.isIterable)(value)) {
10765
+ if (!(0,_types_is_js__WEBPACK_IMPORTED_MODULE_7__.isIterable)(value)) {
10555
10766
  throw new Error('the value is not iterable');
10556
10767
  }
10557
10768
 
@@ -10565,7 +10776,7 @@ function insertElement(change) {
10565
10776
  var ref = refPrefix + _i3;
10566
10777
  var currentPath = dataPath + "." + _i3;
10567
10778
  available.add(ref);
10568
- var refElement = containerElement.querySelector('[' + _dom_constants_js__WEBPACK_IMPORTED_MODULE_3__.ATTRIBUTE_UPDATER_INSERT_REFERENCE + '="' + ref + '"]');
10779
+ var refElement = containerElement.querySelector('[' + _dom_constants_js__WEBPACK_IMPORTED_MODULE_4__.ATTRIBUTE_UPDATER_INSERT_REFERENCE + '="' + ref + '"]');
10569
10780
 
10570
10781
  if (refElement instanceof HTMLElement) {
10571
10782
  insertPoint = refElement;
@@ -10575,27 +10786,27 @@ function insertElement(change) {
10575
10786
  appendNewDocumentFragment(containerElement, key, ref, currentPath);
10576
10787
  }
10577
10788
 
10578
- var nodes = containerElement.querySelectorAll('[' + _dom_constants_js__WEBPACK_IMPORTED_MODULE_3__.ATTRIBUTE_UPDATER_INSERT_REFERENCE + '*="' + refPrefix + '"]');
10789
+ var nodes = containerElement.querySelectorAll('[' + _dom_constants_js__WEBPACK_IMPORTED_MODULE_4__.ATTRIBUTE_UPDATER_INSERT_REFERENCE + '*="' + refPrefix + '"]');
10579
10790
 
10580
10791
  for (var _i4 = 0, _Object$entries3 = Object.entries(nodes); _i4 < _Object$entries3.length; _i4++) {
10581
10792
  var _Object$entries3$_i = _slicedToArray(_Object$entries3[_i4], 2),
10582
10793
  node = _Object$entries3$_i[1];
10583
10794
 
10584
- if (!available.has(node.getAttribute(_dom_constants_js__WEBPACK_IMPORTED_MODULE_3__.ATTRIBUTE_UPDATER_INSERT_REFERENCE))) {
10795
+ if (!available.has(node.getAttribute(_dom_constants_js__WEBPACK_IMPORTED_MODULE_4__.ATTRIBUTE_UPDATER_INSERT_REFERENCE))) {
10585
10796
  containerElement.removeChild(node);
10586
10797
  }
10587
10798
  }
10588
10799
  };
10589
10800
 
10590
- for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
10801
+ for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
10591
10802
  var _ret = _loop();
10592
10803
 
10593
10804
  if (_ret === "continue") continue;
10594
10805
  }
10595
10806
  } catch (err) {
10596
- _iterator4.e(err);
10807
+ _iterator5.e(err);
10597
10808
  } finally {
10598
- _iterator4.f();
10809
+ _iterator5.f();
10599
10810
  }
10600
10811
 
10601
10812
  p.pop();
@@ -10621,7 +10832,7 @@ function insertElement(change) {
10621
10832
 
10622
10833
 
10623
10834
  function appendNewDocumentFragment(container, key, ref, path) {
10624
- var template = (0,_template_js__WEBPACK_IMPORTED_MODULE_12__.findDocumentTemplate)(key, container);
10835
+ var template = (0,_template_js__WEBPACK_IMPORTED_MODULE_14__.findDocumentTemplate)(key, container);
10625
10836
  var nodes = template.createDocumentFragment();
10626
10837
 
10627
10838
  for (var _i5 = 0, _Object$entries4 = Object.entries(nodes.childNodes); _i5 < _Object$entries4.length; _i5++) {
@@ -10630,7 +10841,7 @@ function appendNewDocumentFragment(container, key, ref, path) {
10630
10841
 
10631
10842
  if (node instanceof HTMLElement) {
10632
10843
  applyRecursive(node, key, path);
10633
- node.setAttribute(_dom_constants_js__WEBPACK_IMPORTED_MODULE_3__.ATTRIBUTE_UPDATER_INSERT_REFERENCE, ref);
10844
+ node.setAttribute(_dom_constants_js__WEBPACK_IMPORTED_MODULE_4__.ATTRIBUTE_UPDATER_INSERT_REFERENCE, ref);
10634
10845
  }
10635
10846
 
10636
10847
  container.appendChild(node);
@@ -10648,15 +10859,15 @@ function appendNewDocumentFragment(container, key, ref, path) {
10648
10859
 
10649
10860
  function applyRecursive(node, key, path) {
10650
10861
  if (node instanceof HTMLElement) {
10651
- if (node.hasAttribute(_dom_constants_js__WEBPACK_IMPORTED_MODULE_3__.ATTRIBUTE_UPDATER_REPLACE)) {
10652
- var value = node.getAttribute(_dom_constants_js__WEBPACK_IMPORTED_MODULE_3__.ATTRIBUTE_UPDATER_REPLACE);
10653
- node.setAttribute(_dom_constants_js__WEBPACK_IMPORTED_MODULE_3__.ATTRIBUTE_UPDATER_REPLACE, value.replaceAll("path:" + key, "path:" + path));
10862
+ if (node.hasAttribute(_dom_constants_js__WEBPACK_IMPORTED_MODULE_4__.ATTRIBUTE_UPDATER_REPLACE)) {
10863
+ var value = node.getAttribute(_dom_constants_js__WEBPACK_IMPORTED_MODULE_4__.ATTRIBUTE_UPDATER_REPLACE);
10864
+ node.setAttribute(_dom_constants_js__WEBPACK_IMPORTED_MODULE_4__.ATTRIBUTE_UPDATER_REPLACE, value.replaceAll("path:" + key, "path:" + path));
10654
10865
  }
10655
10866
 
10656
- if (node.hasAttribute(_dom_constants_js__WEBPACK_IMPORTED_MODULE_3__.ATTRIBUTE_UPDATER_ATTRIBUTES)) {
10657
- var _value = node.getAttribute(_dom_constants_js__WEBPACK_IMPORTED_MODULE_3__.ATTRIBUTE_UPDATER_ATTRIBUTES);
10867
+ if (node.hasAttribute(_dom_constants_js__WEBPACK_IMPORTED_MODULE_4__.ATTRIBUTE_UPDATER_ATTRIBUTES)) {
10868
+ var _value = node.getAttribute(_dom_constants_js__WEBPACK_IMPORTED_MODULE_4__.ATTRIBUTE_UPDATER_ATTRIBUTES);
10658
10869
 
10659
- node.setAttribute(_dom_constants_js__WEBPACK_IMPORTED_MODULE_3__.ATTRIBUTE_UPDATER_ATTRIBUTES, _value.replaceAll("path:" + key, "path:" + path));
10870
+ node.setAttribute(_dom_constants_js__WEBPACK_IMPORTED_MODULE_4__.ATTRIBUTE_UPDATER_ATTRIBUTES, _value.replaceAll("path:" + key, "path:" + path));
10660
10871
  }
10661
10872
 
10662
10873
  for (var _i6 = 0, _Object$entries5 = Object.entries(node.childNodes); _i6 < _Object$entries5.length; _i6++) {
@@ -10678,10 +10889,10 @@ function applyRecursive(node, key, path) {
10678
10889
 
10679
10890
  function updateContent(change) {
10680
10891
  var self = this;
10681
- var subject = self.subject.getRealSubject();
10682
- var p = (0,_util_clone_js__WEBPACK_IMPORTED_MODULE_10__.clone)(change === null || change === void 0 ? void 0 : change['path']);
10683
- runUpdateContent.call(this, this.element, p, subject);
10684
- var slots = this.element.querySelectorAll('slot');
10892
+ var subject = self[_constants_js__WEBPACK_IMPORTED_MODULE_0__.internalSymbol].subject.getRealSubject();
10893
+ var p = (0,_util_clone_js__WEBPACK_IMPORTED_MODULE_11__.clone)(change === null || change === void 0 ? void 0 : change['path']);
10894
+ runUpdateContent.call(this, this[_constants_js__WEBPACK_IMPORTED_MODULE_0__.internalSymbol].element, p, subject);
10895
+ var slots = this[_constants_js__WEBPACK_IMPORTED_MODULE_0__.internalSymbol].element.querySelectorAll('slot');
10685
10896
 
10686
10897
  if (slots.length > 0) {
10687
10898
  for (var _i7 = 0, _Object$entries6 = Object.entries(slots); _i7 < _Object$entries6.length; _i7++) {
@@ -10690,9 +10901,9 @@ function updateContent(change) {
10690
10901
 
10691
10902
  for (var _i8 = 0, _Object$entries7 = Object.entries(slot.assignedNodes()); _i8 < _Object$entries7.length; _i8++) {
10692
10903
  var _Object$entries7$_i = _slicedToArray(_Object$entries7[_i8], 2),
10693
- element = _Object$entries7$_i[1];
10904
+ _element3 = _Object$entries7$_i[1];
10694
10905
 
10695
- runUpdateContent.call(this, element, p, subject);
10906
+ runUpdateContent.call(this, _element3, p, subject);
10696
10907
  }
10697
10908
  }
10698
10909
  }
@@ -10710,16 +10921,16 @@ function updateContent(change) {
10710
10921
  function runUpdateContent(container, parts, subject) {
10711
10922
  var _this3 = this;
10712
10923
 
10713
- if (!(0,_types_is_js__WEBPACK_IMPORTED_MODULE_6__.isArray)(parts)) return;
10924
+ if (!(0,_types_is_js__WEBPACK_IMPORTED_MODULE_7__.isArray)(parts)) return;
10714
10925
  if (!(container instanceof HTMLElement)) return;
10715
- parts = (0,_util_clone_js__WEBPACK_IMPORTED_MODULE_10__.clone)(parts);
10926
+ parts = (0,_util_clone_js__WEBPACK_IMPORTED_MODULE_11__.clone)(parts);
10716
10927
  var mem = new WeakSet();
10717
10928
 
10718
10929
  while (parts.length > 0) {
10719
10930
  var current = parts.join('.');
10720
10931
  parts.pop(); // Unfortunately, static data is always changed as well, since it is not possible to react to changes here.
10721
10932
 
10722
- var query = '[' + _dom_constants_js__WEBPACK_IMPORTED_MODULE_3__.ATTRIBUTE_UPDATER_REPLACE + '^="path:' + current + '"], [' + _dom_constants_js__WEBPACK_IMPORTED_MODULE_3__.ATTRIBUTE_UPDATER_REPLACE + '^="static:"]';
10933
+ var query = '[' + _dom_constants_js__WEBPACK_IMPORTED_MODULE_4__.ATTRIBUTE_UPDATER_REPLACE + '^="path:' + current + '"], [' + _dom_constants_js__WEBPACK_IMPORTED_MODULE_4__.ATTRIBUTE_UPDATER_REPLACE + '^="static:"]';
10723
10934
  var e = container.querySelectorAll('' + query);
10724
10935
  var iterator = new Set(_toConsumableArray(e));
10725
10936
 
@@ -10730,21 +10941,21 @@ function runUpdateContent(container, parts, subject) {
10730
10941
  iterator.forEach(function (key, element) {
10731
10942
  if (mem.has(element)) return;
10732
10943
  mem.add(element);
10733
- var attributes = element.getAttribute(_dom_constants_js__WEBPACK_IMPORTED_MODULE_3__.ATTRIBUTE_UPDATER_REPLACE);
10734
- var cmd = (0,_util_trimspaces_js__WEBPACK_IMPORTED_MODULE_11__.trimSpaces)(attributes);
10735
- var pipe = new _data_pipe_js__WEBPACK_IMPORTED_MODULE_2__.Pipe(cmd);
10944
+ var attributes = element.getAttribute(_dom_constants_js__WEBPACK_IMPORTED_MODULE_4__.ATTRIBUTE_UPDATER_REPLACE);
10945
+ var cmd = (0,_util_trimspaces_js__WEBPACK_IMPORTED_MODULE_12__.trimSpaces)(attributes);
10946
+ var pipe = new _data_pipe_js__WEBPACK_IMPORTED_MODULE_3__.Pipe(cmd);
10736
10947
 
10737
- _this3.callbacks.forEach(function (f, n) {
10948
+ _this3[_constants_js__WEBPACK_IMPORTED_MODULE_0__.internalSymbol].callbacks.forEach(function (f, n) {
10738
10949
  pipe.setCallback(n, f);
10739
10950
  });
10740
10951
 
10741
10952
  var value;
10742
10953
 
10743
10954
  try {
10744
- element.removeAttribute(_dom_constants_js__WEBPACK_IMPORTED_MODULE_3__.ATTRIBUTE_ERRORMESSAGE);
10955
+ element.removeAttribute(_dom_constants_js__WEBPACK_IMPORTED_MODULE_4__.ATTRIBUTE_ERRORMESSAGE);
10745
10956
  value = pipe.run(subject);
10746
10957
  } catch (e) {
10747
- element.setAttribute(_dom_constants_js__WEBPACK_IMPORTED_MODULE_3__.ATTRIBUTE_ERRORMESSAGE, e.message);
10958
+ element.setAttribute(_dom_constants_js__WEBPACK_IMPORTED_MODULE_4__.ATTRIBUTE_ERRORMESSAGE, e.message);
10748
10959
  }
10749
10960
 
10750
10961
  if (value instanceof HTMLElement) {
@@ -10769,9 +10980,9 @@ function runUpdateContent(container, parts, subject) {
10769
10980
 
10770
10981
 
10771
10982
  function updateAttributes(change) {
10772
- var subject = this.subject.getRealSubject();
10773
- var p = (0,_util_clone_js__WEBPACK_IMPORTED_MODULE_10__.clone)(change === null || change === void 0 ? void 0 : change['path']);
10774
- runUpdateAttributes.call(this, this.element, p, subject);
10983
+ var subject = this[_constants_js__WEBPACK_IMPORTED_MODULE_0__.internalSymbol].subject.getRealSubject();
10984
+ var p = (0,_util_clone_js__WEBPACK_IMPORTED_MODULE_11__.clone)(change === null || change === void 0 ? void 0 : change['path']);
10985
+ runUpdateAttributes.call(this, this[_constants_js__WEBPACK_IMPORTED_MODULE_0__.internalSymbol].element, p, subject);
10775
10986
  }
10776
10987
  /**
10777
10988
  * @private
@@ -10787,15 +10998,15 @@ function runUpdateAttributes(container, parts, subject) {
10787
10998
  var _this4 = this;
10788
10999
 
10789
11000
  var self = this;
10790
- if (!(0,_types_is_js__WEBPACK_IMPORTED_MODULE_6__.isArray)(parts)) return;
10791
- parts = (0,_util_clone_js__WEBPACK_IMPORTED_MODULE_10__.clone)(parts);
11001
+ if (!(0,_types_is_js__WEBPACK_IMPORTED_MODULE_7__.isArray)(parts)) return;
11002
+ parts = (0,_util_clone_js__WEBPACK_IMPORTED_MODULE_11__.clone)(parts);
10792
11003
  var mem = new WeakSet();
10793
11004
 
10794
11005
  while (parts.length > 0) {
10795
11006
  var current = parts.join('.');
10796
11007
  parts.pop();
10797
11008
  var iterator = new Set();
10798
- var query = '[' + _dom_constants_js__WEBPACK_IMPORTED_MODULE_3__.ATTRIBUTE_UPDATER_ATTRIBUTES + '*="path:' + current + '"], [' + _dom_constants_js__WEBPACK_IMPORTED_MODULE_3__.ATTRIBUTE_UPDATER_ATTRIBUTES + '^="static:"]';
11009
+ var query = '[' + _dom_constants_js__WEBPACK_IMPORTED_MODULE_4__.ATTRIBUTE_UPDATER_SELECT_THIS + '], [' + _dom_constants_js__WEBPACK_IMPORTED_MODULE_4__.ATTRIBUTE_UPDATER_ATTRIBUTES + '*="path:' + current + '"], [' + _dom_constants_js__WEBPACK_IMPORTED_MODULE_4__.ATTRIBUTE_UPDATER_ATTRIBUTES + '^="static:"]';
10799
11010
  var e = container.querySelectorAll(query);
10800
11011
 
10801
11012
  if (e.length > 0) {
@@ -10809,27 +11020,27 @@ function runUpdateAttributes(container, parts, subject) {
10809
11020
  iterator.forEach(function (key, element) {
10810
11021
  if (mem.has(element)) return;
10811
11022
  mem.add(element);
10812
- var attributes = element.getAttribute(_dom_constants_js__WEBPACK_IMPORTED_MODULE_3__.ATTRIBUTE_UPDATER_ATTRIBUTES);
11023
+ var attributes = element.getAttribute(_dom_constants_js__WEBPACK_IMPORTED_MODULE_4__.ATTRIBUTE_UPDATER_ATTRIBUTES);
10813
11024
 
10814
11025
  var _loop2 = function _loop2() {
10815
11026
  var _Object$entries8$_i = _slicedToArray(_Object$entries8[_i9], 2),
10816
11027
  def = _Object$entries8$_i[1];
10817
11028
 
10818
- def = (0,_util_trimspaces_js__WEBPACK_IMPORTED_MODULE_11__.trimSpaces)(def);
11029
+ def = (0,_util_trimspaces_js__WEBPACK_IMPORTED_MODULE_12__.trimSpaces)(def);
10819
11030
  var i = def.indexOf(' ');
10820
- var name = (0,_util_trimspaces_js__WEBPACK_IMPORTED_MODULE_11__.trimSpaces)(def.substr(0, i));
10821
- var cmd = (0,_util_trimspaces_js__WEBPACK_IMPORTED_MODULE_11__.trimSpaces)(def.substr(i));
10822
- var pipe = new _data_pipe_js__WEBPACK_IMPORTED_MODULE_2__.Pipe(cmd);
10823
- self.callbacks.forEach(function (f, n) {
11031
+ var name = (0,_util_trimspaces_js__WEBPACK_IMPORTED_MODULE_12__.trimSpaces)(def.substr(0, i));
11032
+ var cmd = (0,_util_trimspaces_js__WEBPACK_IMPORTED_MODULE_12__.trimSpaces)(def.substr(i));
11033
+ var pipe = new _data_pipe_js__WEBPACK_IMPORTED_MODULE_3__.Pipe(cmd);
11034
+ self[_constants_js__WEBPACK_IMPORTED_MODULE_0__.internalSymbol].callbacks.forEach(function (f, n) {
10824
11035
  pipe.setCallback(n, f, element);
10825
11036
  });
10826
11037
  var value = void 0;
10827
11038
 
10828
11039
  try {
10829
- element.removeAttribute(_dom_constants_js__WEBPACK_IMPORTED_MODULE_3__.ATTRIBUTE_ERRORMESSAGE);
11040
+ element.removeAttribute(_dom_constants_js__WEBPACK_IMPORTED_MODULE_4__.ATTRIBUTE_ERRORMESSAGE);
10830
11041
  value = pipe.run(subject);
10831
11042
  } catch (e) {
10832
- element.setAttribute(_dom_constants_js__WEBPACK_IMPORTED_MODULE_3__.ATTRIBUTE_ERRORMESSAGE, e.message);
11043
+ element.setAttribute(_dom_constants_js__WEBPACK_IMPORTED_MODULE_4__.ATTRIBUTE_ERRORMESSAGE, e.message);
10833
11044
  }
10834
11045
 
10835
11046
  if (value === undefined) {
@@ -10895,19 +11106,23 @@ function handleInputControlAttributeUpdate(element, name, value) {
10895
11106
  } else if (element instanceof HTMLInputElement) {
10896
11107
  switch (element.type) {
10897
11108
  case 'radio':
10898
- if (name === 'checked' && value !== undefined) {
10899
- element.checked = true;
10900
- } else {
10901
- element.checked = false;
11109
+ if (name === 'checked') {
11110
+ if (value !== undefined) {
11111
+ element.checked = true;
11112
+ } else {
11113
+ element.checked = false;
11114
+ }
10902
11115
  }
10903
11116
 
10904
11117
  break;
10905
11118
 
10906
11119
  case 'checkbox':
10907
- if (name === 'checked' && value !== undefined) {
10908
- element.checked = true;
10909
- } else {
10910
- element.checked = false;
11120
+ if (name === 'checked') {
11121
+ if (value !== undefined) {
11122
+ element.checked = true;
11123
+ } else {
11124
+ element.checked = false;
11125
+ }
10911
11126
  }
10912
11127
 
10913
11128
  break;
@@ -10927,7 +11142,7 @@ function handleInputControlAttributeUpdate(element, name, value) {
10927
11142
  }
10928
11143
  }
10929
11144
 
10930
- (0,_namespace_js__WEBPACK_IMPORTED_MODULE_4__.assignToNamespace)('Monster.DOM', Updater);
11145
+ (0,_namespace_js__WEBPACK_IMPORTED_MODULE_5__.assignToNamespace)('Monster.DOM', Updater);
10931
11146
 
10932
11147
 
10933
11148
  /***/ }),
@@ -10973,7 +11188,7 @@ function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || func
10973
11188
  *
10974
11189
  * ```
10975
11190
  * <script type="module">
10976
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/monster.js';
11191
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/monster.js';
10977
11192
  * Monster.Util.trimSpaces(" hello ")
10978
11193
  * </script>
10979
11194
  * ```
@@ -10982,7 +11197,7 @@ function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || func
10982
11197
  *
10983
11198
  * ```
10984
11199
  * <script type="module">
10985
- * import {trimSpaces} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/util/trimspaces.js';
11200
+ * import {trimSpaces} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/util/trimspaces.js';
10986
11201
  * trimSpaces(' hello \\ ')
10987
11202
  * </script>
10988
11203
  * ```
@@ -11059,30 +11274,36 @@ function trimSpaces(value) {
11059
11274
  __webpack_require__.r(__webpack_exports__);
11060
11275
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
11061
11276
  /* harmony export */ "Monster": function() { return /* reexport safe */ _namespace_js__WEBPACK_IMPORTED_MODULE_0__.Monster; },
11062
- /* harmony export */ "getWindow": function() { return /* binding */ getWindow; },
11063
- /* harmony export */ "getDocument": function() { return /* binding */ getDocument; },
11064
- /* harmony export */ "getDocumentFragmentFromString": function() { return /* binding */ getDocumentFragmentFromString; }
11277
+ /* harmony export */ "findTargetElementFromEvent": function() { return /* binding */ findTargetElementFromEvent; },
11278
+ /* harmony export */ "fireEvent": function() { return /* binding */ fireEvent; },
11279
+ /* harmony export */ "fireCustomEvent": function() { return /* binding */ fireCustomEvent; }
11065
11280
  /* harmony export */ });
11066
11281
  /* harmony import */ var _namespace_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);
11067
- /* harmony import */ var _types_global_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(16);
11282
+ /* harmony import */ var _types_is_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(9);
11068
11283
  /* harmony import */ var _types_validate_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(14);
11284
+ /* harmony import */ var _util_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(43);
11069
11285
 
11070
11286
  /**
11071
11287
  * @author schukai GmbH
11072
11288
  */
11073
11289
 
11074
- function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
11290
+ function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
11291
+
11292
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
11293
+
11294
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
11295
+
11075
11296
 
11076
11297
 
11077
11298
 
11078
11299
 
11079
11300
  /**
11080
- * this method fetches the document object
11301
+ * You can call the function via the monster namespace `new Monster.DOM.fireEvent()`.
11081
11302
  *
11082
11303
  * ```
11083
11304
  * <script type="module">
11084
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/monster.js';
11085
- * console.log(Monster.DOM.getDocument())
11305
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/monster.js';
11306
+ * new Monster.DOM.fireEvent()
11086
11307
  * </script>
11087
11308
  * ```
11088
11309
  *
@@ -11090,63 +11311,128 @@ function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "functi
11090
11311
  *
11091
11312
  * ```
11092
11313
  * <script type="module">
11093
- * import {getDocument} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/dom/util.js';
11094
- * console.log(getDocument())
11314
+ * import {fireEvent} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/dom/events.js';
11315
+ * fireEvent()
11095
11316
  * </script>
11096
11317
  * ```
11097
11318
  *
11098
- * in nodejs this functionality can be performed with [jsdom](https://www.npmjs.com/package/jsdom).
11099
- *
11100
- * ```
11101
- * import {JSDOM} from "jsdom"
11102
- * if (typeof window !== "object") {
11103
- * const {window} = new JSDOM('', {
11104
- * url: 'http://example.com/',
11105
- * pretendToBeVisual: true
11106
- * });
11107
- *
11108
- * [
11109
- * 'self',
11110
- * 'document',
11111
- * 'Document',
11112
- * 'Node',
11113
- * 'Element',
11114
- * 'HTMLElement',
11115
- * 'DocumentFragment',
11116
- * 'DOMParser',
11117
- * 'XMLSerializer',
11118
- * 'NodeFilter',
11119
- * 'InputEvent',
11120
- * 'CustomEvent'
11121
- * ].forEach(key => (getGlobal()[key] = window[key]));
11122
- * }
11123
- * ```
11124
- *
11125
- * @returns {object}
11126
- * @since 1.6.0
11319
+ * @param {HTMLElement|HTMLCollection|NodeList} element
11320
+ * @param {string} type
11321
+ * @return {void}
11322
+ * @since 1.10.0
11127
11323
  * @copyright schukai GmbH
11128
11324
  * @memberOf Monster.DOM
11129
- * @throws {Error} not supported environment
11325
+ * @throws {TypeError} value is not an instance of HTMLElement or HTMLCollection
11326
+ * @summary Construct and send and event
11130
11327
  */
11131
11328
 
11132
- function getDocument() {
11133
- var _getGlobal;
11134
-
11135
- var document = (_getGlobal = (0,_types_global_js__WEBPACK_IMPORTED_MODULE_1__.getGlobal)()) === null || _getGlobal === void 0 ? void 0 : _getGlobal['document'];
11329
+ function fireEvent(element, type) {
11330
+ var document = (0,_util_js__WEBPACK_IMPORTED_MODULE_3__.getDocument)();
11136
11331
 
11137
- if (_typeof(document) !== 'object') {
11138
- throw new Error("not supported environment");
11332
+ if (element instanceof HTMLElement) {
11333
+ if (type === 'click') {
11334
+ element.click();
11335
+ return;
11336
+ }
11337
+
11338
+ var event = new Event((0,_types_validate_js__WEBPACK_IMPORTED_MODULE_2__.validateString)(type), {
11339
+ bubbles: true,
11340
+ cancelable: true
11341
+ });
11342
+ element.dispatchEvent(event);
11343
+ } else if (element instanceof HTMLCollection || element instanceof NodeList) {
11344
+ var _iterator = _createForOfIteratorHelper(element),
11345
+ _step;
11346
+
11347
+ try {
11348
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
11349
+ var e = _step.value;
11350
+ fireEvent(e, type);
11351
+ }
11352
+ } catch (err) {
11353
+ _iterator.e(err);
11354
+ } finally {
11355
+ _iterator.f();
11356
+ }
11357
+ } else {
11358
+ throw new TypeError('value is not an instance of HTMLElement or HTMLCollection');
11139
11359
  }
11360
+ }
11361
+ /**
11362
+ * You can call the function via the monster namespace `new Monster.DOM.fireCustomEvent()`.
11363
+ *
11364
+ * ```
11365
+ * <script type="module">
11366
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/monster.js';
11367
+ * new Monster.DOM.fireCustomEvent()
11368
+ * </script>
11369
+ * ```
11370
+ *
11371
+ * Alternatively, you can also integrate this function individually.
11372
+ *
11373
+ * ```
11374
+ * <script type="module">
11375
+ * import {fireCustomEvent} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/dom/events.js';
11376
+ * fireCustomEvent()
11377
+ * </script>
11378
+ * ```
11379
+ *
11380
+ * @param {HTMLElement|HTMLCollection|NodeList} element
11381
+ * @param {string} type
11382
+ * @return {void}
11383
+ * @since 1.19.0
11384
+ * @copyright schukai GmbH
11385
+ * @memberOf Monster.DOM
11386
+ * @throws {TypeError} value is not an instance of HTMLElement or HTMLCollection
11387
+ * @summary Construct and send and event
11388
+ */
11140
11389
 
11141
- return document;
11390
+
11391
+ function fireCustomEvent(element, type, detail) {
11392
+ var document = (0,_util_js__WEBPACK_IMPORTED_MODULE_3__.getDocument)();
11393
+
11394
+ if (element instanceof HTMLElement) {
11395
+ if (!(0,_types_is_js__WEBPACK_IMPORTED_MODULE_1__.isObject)(detail)) {
11396
+ detail = {
11397
+ detail: detail
11398
+ };
11399
+ }
11400
+
11401
+ var event = new CustomEvent((0,_types_validate_js__WEBPACK_IMPORTED_MODULE_2__.validateString)(type), {
11402
+ bubbles: true,
11403
+ cancelable: true,
11404
+ detail: detail
11405
+ });
11406
+ element.dispatchEvent(event);
11407
+ } else if (element instanceof HTMLCollection || element instanceof NodeList) {
11408
+ var _iterator2 = _createForOfIteratorHelper(element),
11409
+ _step2;
11410
+
11411
+ try {
11412
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
11413
+ var e = _step2.value;
11414
+ fireCustomEvent(e, type, detail);
11415
+ }
11416
+ } catch (err) {
11417
+ _iterator2.e(err);
11418
+ } finally {
11419
+ _iterator2.f();
11420
+ }
11421
+ } else {
11422
+ throw new TypeError('value is not an instance of HTMLElement or HTMLCollection');
11423
+ }
11142
11424
  }
11143
11425
  /**
11144
- * this method fetches the window object
11426
+ * This function gets the path `Event.composedPath()` from an event and tries to find the next element
11427
+ * up the tree `element.closest()` with the attribute and value. If no value, or a value that is undefined or null,
11428
+ * is specified, only the attribute is searched.
11429
+ *
11430
+ * You can call the function via the monster namespace `new Monster.DOM.findTargetElementFromEvent()`.
11145
11431
  *
11146
11432
  * ```
11147
11433
  * <script type="module">
11148
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/monster.js';
11149
- * console.log(Monster.DOM.getWindow())
11434
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/monster.js';
11435
+ * new Monster.DOM.findTargetElementFromEvent()
11150
11436
  * </script>
11151
11437
  * ```
11152
11438
  *
@@ -11154,8 +11440,88 @@ function getDocument() {
11154
11440
  *
11155
11441
  * ```
11156
11442
  * <script type="module">
11157
- * import {getWindow} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/dom/util.js';
11158
- * console.log(getWindow(null))
11443
+ * import {findTargetElementFromEvent} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/dom/events.js';
11444
+ * findTargetElementFromEvent()
11445
+ * </script>
11446
+ * ```
11447
+ *
11448
+ * @since 1.14.0
11449
+ * @param {Event} event
11450
+ * @param {string} attributeName
11451
+ * @param {string|null|undefined} attributeValue
11452
+ * @throws {Error} unsupported event
11453
+ * @memberOf Monster.DOM
11454
+ * @throws {TypeError} value is not a string
11455
+ * @throws {TypeError} value is not an instance of HTMLElement
11456
+ * @summary Help function to find the appropriate control
11457
+ */
11458
+
11459
+
11460
+ function findTargetElementFromEvent(event, attributeName, attributeValue) {
11461
+ (0,_types_validate_js__WEBPACK_IMPORTED_MODULE_2__.validateInstance)(event, Event);
11462
+
11463
+ if (typeof event.composedPath !== 'function') {
11464
+ throw new Error('unsupported event');
11465
+ }
11466
+
11467
+ var path = event.composedPath(); // closest cannot be used here, because closest is not correct for slotted elements
11468
+
11469
+ if ((0,_types_is_js__WEBPACK_IMPORTED_MODULE_1__.isArray)(path)) {
11470
+ for (var i = 0; i < path.length; i++) {
11471
+ var o = path[i];
11472
+
11473
+ if (o instanceof HTMLElement && o.hasAttribute(attributeName) && (attributeValue === undefined || o.getAttribute(attributeName) === attributeValue)) {
11474
+ return o;
11475
+ }
11476
+ }
11477
+ }
11478
+
11479
+ return undefined;
11480
+ }
11481
+
11482
+ (0,_namespace_js__WEBPACK_IMPORTED_MODULE_0__.assignToNamespace)('Monster.DOM', findTargetElementFromEvent, fireEvent, fireCustomEvent);
11483
+
11484
+
11485
+ /***/ }),
11486
+ /* 43 */
11487
+ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
11488
+
11489
+ __webpack_require__.r(__webpack_exports__);
11490
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
11491
+ /* harmony export */ "Monster": function() { return /* reexport safe */ _namespace_js__WEBPACK_IMPORTED_MODULE_0__.Monster; },
11492
+ /* harmony export */ "getWindow": function() { return /* binding */ getWindow; },
11493
+ /* harmony export */ "getDocument": function() { return /* binding */ getDocument; },
11494
+ /* harmony export */ "getDocumentFragmentFromString": function() { return /* binding */ getDocumentFragmentFromString; }
11495
+ /* harmony export */ });
11496
+ /* harmony import */ var _namespace_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);
11497
+ /* harmony import */ var _types_global_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(16);
11498
+ /* harmony import */ var _types_validate_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(14);
11499
+
11500
+ /**
11501
+ * @author schukai GmbH
11502
+ */
11503
+
11504
+ function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
11505
+
11506
+
11507
+
11508
+
11509
+ /**
11510
+ * this method fetches the document object
11511
+ *
11512
+ * ```
11513
+ * <script type="module">
11514
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/monster.js';
11515
+ * console.log(Monster.DOM.getDocument())
11516
+ * </script>
11517
+ * ```
11518
+ *
11519
+ * Alternatively, you can also integrate this function individually.
11520
+ *
11521
+ * ```
11522
+ * <script type="module">
11523
+ * import {getDocument} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/dom/util.js';
11524
+ * console.log(getDocument())
11159
11525
  * </script>
11160
11526
  * ```
11161
11527
  *
@@ -11169,8 +11535,6 @@ function getDocument() {
11169
11535
  * pretendToBeVisual: true
11170
11536
  * });
11171
11537
  *
11172
- * getGlobal()['window']=window;
11173
- *
11174
11538
  * [
11175
11539
  * 'self',
11176
11540
  * 'document',
@@ -11195,27 +11559,24 @@ function getDocument() {
11195
11559
  * @throws {Error} not supported environment
11196
11560
  */
11197
11561
 
11562
+ function getDocument() {
11563
+ var _getGlobal;
11198
11564
 
11199
- function getWindow() {
11200
- var _getGlobal2;
11201
-
11202
- var window = (_getGlobal2 = (0,_types_global_js__WEBPACK_IMPORTED_MODULE_1__.getGlobal)()) === null || _getGlobal2 === void 0 ? void 0 : _getGlobal2['window'];
11565
+ var document = (_getGlobal = (0,_types_global_js__WEBPACK_IMPORTED_MODULE_1__.getGlobal)()) === null || _getGlobal === void 0 ? void 0 : _getGlobal['document'];
11203
11566
 
11204
- if (_typeof(window) !== 'object') {
11567
+ if (_typeof(document) !== 'object') {
11205
11568
  throw new Error("not supported environment");
11206
11569
  }
11207
11570
 
11208
- return window;
11571
+ return document;
11209
11572
  }
11210
11573
  /**
11211
- *
11212
- *
11213
- * this method fetches the document object
11574
+ * this method fetches the window object
11214
11575
  *
11215
11576
  * ```
11216
11577
  * <script type="module">
11217
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/monster.js';
11218
- * console.log(Monster.DOM.getDocumentFragmentFromString())
11578
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/monster.js';
11579
+ * console.log(Monster.DOM.getWindow())
11219
11580
  * </script>
11220
11581
  * ```
11221
11582
  *
@@ -11223,8 +11584,8 @@ function getWindow() {
11223
11584
  *
11224
11585
  * ```
11225
11586
  * <script type="module">
11226
- * import {getDocumentFragmentFromString} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/dom/util.js';
11227
- * console.log(getDocumentFragmentFromString('<div></div>'))
11587
+ * import {getWindow} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/dom/util.js';
11588
+ * console.log(getWindow(null))
11228
11589
  * </script>
11229
11590
  * ```
11230
11591
  *
@@ -11238,6 +11599,8 @@ function getWindow() {
11238
11599
  * pretendToBeVisual: true
11239
11600
  * });
11240
11601
  *
11602
+ * getGlobal()['window']=window;
11603
+ *
11241
11604
  * [
11242
11605
  * 'self',
11243
11606
  * 'document',
@@ -11255,175 +11618,91 @@ function getWindow() {
11255
11618
  * }
11256
11619
  * ```
11257
11620
  *
11258
- * @returns {DocumentFragment}
11621
+ * @returns {object}
11259
11622
  * @since 1.6.0
11260
11623
  * @copyright schukai GmbH
11261
11624
  * @memberOf Monster.DOM
11262
11625
  * @throws {Error} not supported environment
11263
- * @throws {TypeError} value is not a string
11264
- */
11265
-
11266
-
11267
- function getDocumentFragmentFromString(html) {
11268
- (0,_types_validate_js__WEBPACK_IMPORTED_MODULE_2__.validateString)(html);
11269
- var document = getDocument();
11270
- var template = document.createElement('template');
11271
- template.innerHTML = html;
11272
- return template.content;
11273
- }
11274
-
11275
- (0,_namespace_js__WEBPACK_IMPORTED_MODULE_0__.assignToNamespace)('Monster.DOM', getWindow, getDocument, getDocumentFragmentFromString);
11276
-
11277
-
11278
- /***/ }),
11279
- /* 43 */
11280
- /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
11281
-
11282
- __webpack_require__.r(__webpack_exports__);
11283
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
11284
- /* harmony export */ "Monster": function() { return /* reexport safe */ _namespace_js__WEBPACK_IMPORTED_MODULE_0__.Monster; },
11285
- /* harmony export */ "findTargetElementFromEvent": function() { return /* binding */ findTargetElementFromEvent; },
11286
- /* harmony export */ "fireEvent": function() { return /* binding */ fireEvent; }
11287
- /* harmony export */ });
11288
- /* harmony import */ var _namespace_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);
11289
- /* harmony import */ var _types_is_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(9);
11290
- /* harmony import */ var _types_validate_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(14);
11291
- /* harmony import */ var _util_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(42);
11292
-
11293
- /**
11294
- * @author schukai GmbH
11295
11626
  */
11296
11627
 
11297
- function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
11298
-
11299
- function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
11300
-
11301
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
11302
-
11303
11628
 
11629
+ function getWindow() {
11630
+ var _getGlobal2;
11304
11631
 
11632
+ var window = (_getGlobal2 = (0,_types_global_js__WEBPACK_IMPORTED_MODULE_1__.getGlobal)()) === null || _getGlobal2 === void 0 ? void 0 : _getGlobal2['window'];
11305
11633
 
11634
+ if (_typeof(window) !== 'object') {
11635
+ throw new Error("not supported environment");
11636
+ }
11306
11637
 
11638
+ return window;
11639
+ }
11307
11640
  /**
11308
- * You can call the function via the monster namespace `new Monster.DOM.fireEvent()`.
11309
11641
  *
11310
- * ```
11311
- * <script type="module">
11312
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/monster.js';
11313
- * console.log(new Monster.DOM.fireEvent())
11314
- * </script>
11315
- * ```
11316
11642
  *
11317
- * Alternatively, you can also integrate this function individually.
11643
+ * this method fetches the document object
11318
11644
  *
11319
11645
  * ```
11320
11646
  * <script type="module">
11321
- * import {fireEvent} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/dom/events.js';
11322
- * console.log(fireEvent())
11647
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/monster.js';
11648
+ * console.log(Monster.DOM.getDocumentFragmentFromString())
11323
11649
  * </script>
11324
11650
  * ```
11325
11651
  *
11326
- * @param {HTMLElement|HTMLCollection|NodeList} element
11327
- * @param {string} type
11328
- * @return {void}
11329
- * @since 1.10.0
11330
- * @copyright schukai GmbH
11331
- * @memberOf Monster.DOM
11332
- * @throws {TypeError} value is not an instance of HTMLElement or HTMLCollection
11333
- * @summary Construct and send and event
11334
- */
11335
-
11336
- function fireEvent(element, type) {
11337
- var document = (0,_util_js__WEBPACK_IMPORTED_MODULE_3__.getDocument)();
11338
-
11339
- if (element instanceof HTMLElement) {
11340
- if (type === 'click') {
11341
- element.click();
11342
- return;
11343
- }
11344
-
11345
- var event = new Event((0,_types_validate_js__WEBPACK_IMPORTED_MODULE_2__.validateString)(type), {
11346
- bubbles: true,
11347
- cancelable: true
11348
- });
11349
- element.dispatchEvent(event);
11350
- } else if (element instanceof HTMLCollection || element instanceof NodeList) {
11351
- var _iterator = _createForOfIteratorHelper(element),
11352
- _step;
11353
-
11354
- try {
11355
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
11356
- var e = _step.value;
11357
- fireEvent(e, type);
11358
- }
11359
- } catch (err) {
11360
- _iterator.e(err);
11361
- } finally {
11362
- _iterator.f();
11363
- }
11364
- } else {
11365
- throw new TypeError('value is not an instance of HTMLElement or HTMLCollection');
11366
- }
11367
- }
11368
- /**
11369
- * This function gets the path `Event.composedPath()` from an event and tries to find the next element
11370
- * up the tree `element.closest()` with the attribute and value. If no value, or a value that is undefined or null,
11371
- * is specified, only the attribute is searched.
11372
- *
11373
- * You can call the function via the monster namespace `new Monster.DOM.findTargetElementFromEvent()`.
11652
+ * Alternatively, you can also integrate this function individually.
11374
11653
  *
11375
11654
  * ```
11376
11655
  * <script type="module">
11377
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/monster.js';
11378
- * console.log(new Monster.DOM.findTargetElementFromEvent())
11656
+ * import {getDocumentFragmentFromString} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/dom/util.js';
11657
+ * console.log(getDocumentFragmentFromString('<div></div>'))
11379
11658
  * </script>
11380
11659
  * ```
11381
11660
  *
11382
- * Alternatively, you can also integrate this function individually.
11661
+ * in nodejs this functionality can be performed with [jsdom](https://www.npmjs.com/package/jsdom).
11383
11662
  *
11384
11663
  * ```
11385
- * <script type="module">
11386
- * import {findTargetElementFromEvent} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/dom/events.js';
11387
- * console.log(findTargetElementFromEvent())
11388
- * </script>
11664
+ * import {JSDOM} from "jsdom"
11665
+ * if (typeof window !== "object") {
11666
+ * const {window} = new JSDOM('', {
11667
+ * url: 'http://example.com/',
11668
+ * pretendToBeVisual: true
11669
+ * });
11670
+ *
11671
+ * [
11672
+ * 'self',
11673
+ * 'document',
11674
+ * 'Document',
11675
+ * 'Node',
11676
+ * 'Element',
11677
+ * 'HTMLElement',
11678
+ * 'DocumentFragment',
11679
+ * 'DOMParser',
11680
+ * 'XMLSerializer',
11681
+ * 'NodeFilter',
11682
+ * 'InputEvent',
11683
+ * 'CustomEvent'
11684
+ * ].forEach(key => (getGlobal()[key] = window[key]));
11685
+ * }
11389
11686
  * ```
11390
11687
  *
11391
- * @since 1.14.0
11392
- * @param {Event} event
11393
- * @param {string} attributeName
11394
- * @param {string|null|undefined} attributeValue
11395
- * @throws {Error} unsupported event
11688
+ * @returns {DocumentFragment}
11689
+ * @since 1.6.0
11690
+ * @copyright schukai GmbH
11396
11691
  * @memberOf Monster.DOM
11692
+ * @throws {Error} not supported environment
11397
11693
  * @throws {TypeError} value is not a string
11398
- * @throws {TypeError} value is not an instance of HTMLElement
11399
- * @summary Help function to find the appropriate control
11400
11694
  */
11401
11695
 
11402
11696
 
11403
- function findTargetElementFromEvent(event, attributeName, attributeValue) {
11404
- (0,_types_validate_js__WEBPACK_IMPORTED_MODULE_2__.validateInstance)(event, Event);
11405
-
11406
- if (typeof event.composedPath !== 'function') {
11407
- throw new Error('unsupported event');
11408
- }
11409
-
11410
- var path = event.composedPath();
11411
- var element = path === null || path === void 0 ? void 0 : path[0]; // closest cannot be used here, because closest is not correct for slotted elements
11412
-
11413
- if ((0,_types_is_js__WEBPACK_IMPORTED_MODULE_1__.isArray)(path)) {
11414
- for (var i = 0; i < path.length; i++) {
11415
- var o = path[i];
11416
-
11417
- if (o instanceof HTMLElement && o.hasAttribute(attributeName) && (attributeValue === undefined || o.getAttribute(attributeName) === attributeValue)) {
11418
- return o;
11419
- }
11420
- }
11421
- }
11422
-
11423
- return undefined;
11697
+ function getDocumentFragmentFromString(html) {
11698
+ (0,_types_validate_js__WEBPACK_IMPORTED_MODULE_2__.validateString)(html);
11699
+ var document = getDocument();
11700
+ var template = document.createElement('template');
11701
+ template.innerHTML = html;
11702
+ return template.content;
11424
11703
  }
11425
11704
 
11426
- (0,_namespace_js__WEBPACK_IMPORTED_MODULE_0__.assignToNamespace)('Monster.DOM', findTargetElementFromEvent, fireEvent);
11705
+ (0,_namespace_js__WEBPACK_IMPORTED_MODULE_0__.assignToNamespace)('Monster.DOM', getWindow, getDocument, getDocumentFragmentFromString);
11427
11706
 
11428
11707
 
11429
11708
  /***/ }),
@@ -11437,7 +11716,7 @@ __webpack_require__.r(__webpack_exports__);
11437
11716
  /* harmony export */ });
11438
11717
  /* harmony import */ var _i18n_locale_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(45);
11439
11718
  /* harmony import */ var _namespace_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2);
11440
- /* harmony import */ var _util_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(42);
11719
+ /* harmony import */ var _util_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(43);
11441
11720
 
11442
11721
  /**
11443
11722
  * @author schukai GmbH
@@ -11464,7 +11743,7 @@ var DEFAULT_LANGUAGE = 'en';
11464
11743
  *
11465
11744
  * ```
11466
11745
  * <script type="module">
11467
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/monster.js';
11746
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/monster.js';
11468
11747
  * new Monster.DOM.getLocaleOfDocument()
11469
11748
  * </script>
11470
11749
  * ```
@@ -11473,7 +11752,7 @@ var DEFAULT_LANGUAGE = 'en';
11473
11752
  *
11474
11753
  * ```
11475
11754
  * <script type="module">
11476
- * import {getLocaleOfDocument} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/dom/locale.js';
11755
+ * import {getLocaleOfDocument} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/dom/locale.js';
11477
11756
  * new getLocaleOfDocument()
11478
11757
  * </script>
11479
11758
  * ```
@@ -11566,7 +11845,7 @@ var localeStringSymbol = Symbol('localeString');
11566
11845
  *
11567
11846
  * ```
11568
11847
  * <script type="module">
11569
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/monster.js';
11848
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/monster.js';
11570
11849
  * new Monster.I18n.Locale()
11571
11850
  * </script>
11572
11851
  * ```
@@ -11575,7 +11854,7 @@ var localeStringSymbol = Symbol('localeString');
11575
11854
  *
11576
11855
  * ```
11577
11856
  * <script type="module">
11578
- * import {Locale} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/i18n/locale.js';
11857
+ * import {Locale} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/i18n/locale.js';
11579
11858
  * new Locale()
11580
11859
  * </script>
11581
11860
  * ```
@@ -11768,7 +12047,7 @@ var Locale = /*#__PURE__*/function (_Base) {
11768
12047
  *
11769
12048
  * ```
11770
12049
  * <script type="module">
11771
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/monster.js';
12050
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/monster.js';
11772
12051
  * new Monster.I18n.createLocale()
11773
12052
  * </script>
11774
12053
  * ```
@@ -11777,7 +12056,7 @@ var Locale = /*#__PURE__*/function (_Base) {
11777
12056
  *
11778
12057
  * ```
11779
12058
  * <script type="module">
11780
- * import {createLocale} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/i18n/locale.js';
12059
+ * import {createLocale} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/i18n/locale.js';
11781
12060
  * createLocale()
11782
12061
  * </script>
11783
12062
  * ```
@@ -11953,7 +12232,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
11953
12232
  *
11954
12233
  * ```
11955
12234
  * <script type="module">
11956
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/monster.js';
12235
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/monster.js';
11957
12236
  * new Monster.I18n.Provider()
11958
12237
  * </script>
11959
12238
  * ```
@@ -11962,7 +12241,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
11962
12241
  *
11963
12242
  * ```
11964
12243
  * <script type="module">
11965
- * import {Provider} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/i18n/provider.js';
12244
+ * import {Provider} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/i18n/provider.js';
11966
12245
  * new Provider()
11967
12246
  * </script>
11968
12247
  * ```
@@ -12063,7 +12342,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
12063
12342
  *
12064
12343
  * ```
12065
12344
  * <script type="module">
12066
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/monster.js';
12345
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/monster.js';
12067
12346
  * new Monster.Types.BaseWithOptions()
12068
12347
  * </script>
12069
12348
  * ```
@@ -12072,7 +12351,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
12072
12351
  *
12073
12352
  * ```
12074
12353
  * <script type="module">
12075
- * import {BaseWithOptions} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/types/basewithoptions.js';
12354
+ * import {BaseWithOptions} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/types/basewithoptions.js';
12076
12355
  * new BaseWithOptions()
12077
12356
  * </script>
12078
12357
  * ```
@@ -12213,7 +12492,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
12213
12492
  *
12214
12493
  * ```
12215
12494
  * <script type="module">
12216
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/monster.js';
12495
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/monster.js';
12217
12496
  * new Monster.I18n.Translations()
12218
12497
  * </script>
12219
12498
  * ```
@@ -12222,15 +12501,15 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
12222
12501
  *
12223
12502
  * ```
12224
12503
  * <script type="module">
12225
- * import {Translations} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/i18n/translations.js';
12504
+ * import {Translations} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/i18n/translations.js';
12226
12505
  * new Translations()
12227
12506
  * </script>
12228
12507
  * ```
12229
12508
  *
12230
12509
  * @example
12231
12510
  *
12232
- * import {Translations} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/i18n/translations.js';
12233
- * import {parseLocale} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/i18n/locale.js';
12511
+ * import {Translations} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/i18n/translations.js';
12512
+ * import {parseLocale} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/i18n/locale.js';
12234
12513
  *
12235
12514
  * const translation = new Translations(parseLocale('en-GB'));
12236
12515
  *
@@ -12502,7 +12781,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
12502
12781
  *
12503
12782
  * ```
12504
12783
  * <script type="module">
12505
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/monster.js';
12784
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/monster.js';
12506
12785
  * new Monster.I18n.Providers.Fetch()
12507
12786
  * </script>
12508
12787
  * ```
@@ -12511,14 +12790,14 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
12511
12790
  *
12512
12791
  * ```
12513
12792
  * <script type="module">
12514
- * import {Fetch} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/i18n/providers/fetch.js';
12793
+ * import {Fetch} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/i18n/providers/fetch.js';
12515
12794
  * new Fetch()
12516
12795
  * </script>
12517
12796
  * ```
12518
12797
  *
12519
12798
  * @example <caption>das ist ein test</caption>
12520
12799
  *
12521
- * import {Fetch} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/i18n/providers/fetch.js';
12800
+ * import {Fetch} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/i18n/providers/fetch.js';
12522
12801
  *
12523
12802
  * // fetch from API
12524
12803
  * const translation = new Fetch('https://example.com/${language}.json').getTranslation('en-GB');
@@ -12748,7 +13027,7 @@ var workingDataSymbol = Symbol('workingData');
12748
13027
  *
12749
13028
  * ```
12750
13029
  * <script type="module">
12751
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/monster.js';
13030
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/monster.js';
12752
13031
  * new Monster.Text.Formatter()
12753
13032
  * </script>
12754
13033
  * ```
@@ -12757,7 +13036,7 @@ var workingDataSymbol = Symbol('workingData');
12757
13036
  *
12758
13037
  * ```
12759
13038
  * <script type="module">
12760
- * import {Formatter} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/text/formatter.js';
13039
+ * import {Formatter} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/text/formatter.js';
12761
13040
  * new Formatter()
12762
13041
  * </script>
12763
13042
  * ```
@@ -12802,7 +13081,7 @@ var workingDataSymbol = Symbol('workingData');
12802
13081
  *
12803
13082
  * @example
12804
13083
  *
12805
- * import {Formatter} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/text/formatter.js';
13084
+ * import {Formatter} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/text/formatter.js';
12806
13085
  *
12807
13086
  * new Formatter({
12808
13087
  * a: {
@@ -13147,7 +13426,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
13147
13426
  *
13148
13427
  * ```
13149
13428
  * <script type="module">
13150
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/monster.js';
13429
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/monster.js';
13151
13430
  * console.log(new Monster.Logging.Handler())
13152
13431
  * </script>
13153
13432
  * ```
@@ -13156,7 +13435,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
13156
13435
  *
13157
13436
  * ```
13158
13437
  * <script type="module">
13159
- * import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/logging/handler.js';
13438
+ * import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/logging/handler.js';
13160
13439
  * console.log(new Handler())
13161
13440
  * </script>
13162
13441
  * ```
@@ -13394,7 +13673,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
13394
13673
  *
13395
13674
  * ```
13396
13675
  * <script type="module">
13397
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/monster.js';
13676
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/monster.js';
13398
13677
  * console.log(new Monster.Logging.LogEntry())
13399
13678
  * </script>
13400
13679
  * ```
@@ -13403,7 +13682,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
13403
13682
  *
13404
13683
  * ```
13405
13684
  * <script type="module">
13406
- * import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/logging/logentry.js';
13685
+ * import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/logging/logentry.js';
13407
13686
  * console.log(new LogEntry())
13408
13687
  * </script>
13409
13688
  * ```
@@ -13589,7 +13868,7 @@ var OFF = 0;
13589
13868
  *
13590
13869
  * ```
13591
13870
  * <script type="module">
13592
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/monster.js';
13871
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/monster.js';
13593
13872
  * new Monster.Logging.Logger()
13594
13873
  * </script>
13595
13874
  * ```
@@ -13598,7 +13877,7 @@ var OFF = 0;
13598
13877
  *
13599
13878
  * ```
13600
13879
  * <script type="module">
13601
- * import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/logging/logger.js';
13880
+ * import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/logging/logger.js';
13602
13881
  * new Logger()
13603
13882
  * </script>
13604
13883
  * ```
@@ -13898,7 +14177,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
13898
14177
  *
13899
14178
  * ```
13900
14179
  * <script type="module">
13901
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/monster.js';
14180
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/monster.js';
13902
14181
  * console.log(new Monster.Logging.Handler.ConsoleHandler())
13903
14182
  * </script>
13904
14183
  * ```
@@ -13907,7 +14186,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
13907
14186
  *
13908
14187
  * ```
13909
14188
  * <script type="module">
13910
- * import {ConsoleHandler} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/logging/handler/console.js';
14189
+ * import {ConsoleHandler} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/logging/handler/console.js';
13911
14190
  * console.log(new ConsoleHandler())
13912
14191
  * </script>
13913
14192
  * ```
@@ -13983,7 +14262,7 @@ __webpack_require__.r(__webpack_exports__);
13983
14262
  *
13984
14263
  * ```
13985
14264
  * <script type="module">
13986
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/monster.js';
14265
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/monster.js';
13987
14266
  * Monster.Math.random(1,10)
13988
14267
  * // ↦ 5
13989
14268
  * </script>
@@ -13993,7 +14272,7 @@ __webpack_require__.r(__webpack_exports__);
13993
14272
  *
13994
14273
  * ```
13995
14274
  * <script type="module">
13996
- * import {random} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/math/random.js';
14275
+ * import {random} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/math/random.js';
13997
14276
  * random(1,10)
13998
14277
  * // ↦ 5
13999
14278
  * </script>
@@ -14150,7 +14429,7 @@ var internalCounter = 0;
14150
14429
  *
14151
14430
  * ```
14152
14431
  * <script type="module">
14153
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/monster.js';
14432
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/monster.js';
14154
14433
  * console.log(new Monster.Types.RandomID())
14155
14434
  * </script>
14156
14435
  * ```
@@ -14159,7 +14438,7 @@ var internalCounter = 0;
14159
14438
  *
14160
14439
  * ```
14161
14440
  * <script type="module">
14162
- * import {RandomID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/types/randomid.js';
14441
+ * import {RandomID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/types/randomid.js';
14163
14442
  * console.log(new RandomID())
14164
14443
  * </script>
14165
14444
  * ```
@@ -14242,7 +14521,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
14242
14521
  *
14243
14522
  * ```
14244
14523
  * <script type="module">
14245
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/monster.js';
14524
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/monster.js';
14246
14525
  * console.log(new Monster.Types.Version('1.2.3')) // ↦ 1.2.3
14247
14526
  * console.log(new Monster.Types.Version('1')) // ↦ 1.0.0
14248
14527
  * </script>
@@ -14252,7 +14531,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
14252
14531
  *
14253
14532
  * ```
14254
14533
  * <script type="module">
14255
- * import {Version} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/types/version.js';
14534
+ * import {Version} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/types/version.js';
14256
14535
  * console.log(new Version('1.2.3')) // ↦ 1.2.3
14257
14536
  * console.log(new Version('1')) // ↦ 1.0.0
14258
14537
  * </script>
@@ -14260,7 +14539,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
14260
14539
  *
14261
14540
  * @example
14262
14541
  *
14263
- * import {Version} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/types/version.js';
14542
+ * import {Version} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/types/version.js';
14264
14543
  *
14265
14544
  * new Version('1.0.0') // ↦ 1.0.0
14266
14545
  * new Version(1) // ↦ 1.0.0
@@ -14394,7 +14673,7 @@ var monsterVersion;
14394
14673
  *
14395
14674
  * ```
14396
14675
  * <script type="module">
14397
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/monster.js';
14676
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/monster.js';
14398
14677
  * console.log(Monster.getVersion())
14399
14678
  * </script>
14400
14679
  * ```
@@ -14403,7 +14682,7 @@ var monsterVersion;
14403
14682
  *
14404
14683
  * ```
14405
14684
  * <script type="module">
14406
- * import {getVersion} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/types/version.js';
14685
+ * import {getVersion} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/types/version.js';
14407
14686
  * console.log(getVersion())
14408
14687
  * </script>
14409
14688
  * ```
@@ -14422,7 +14701,7 @@ function getVersion() {
14422
14701
  /**#@+ dont touch, replaced by make with package.json version */
14423
14702
 
14424
14703
 
14425
- monsterVersion = new Version('1.26.0');
14704
+ monsterVersion = new Version('1.28.1');
14426
14705
  /**#@-*/
14427
14706
 
14428
14707
  return monsterVersion;
@@ -14478,7 +14757,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
14478
14757
  *
14479
14758
  * ```
14480
14759
  * <script type="module">
14481
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/monster.js';
14760
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/monster.js';
14482
14761
  * new Monster.Util.Comparator()
14483
14762
  * </script>
14484
14763
  * ```
@@ -14487,7 +14766,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
14487
14766
  *
14488
14767
  * ```
14489
14768
  * <script type="module">
14490
- * import {Comparator} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/util/comparator.js';
14769
+ * import {Comparator} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/util/comparator.js';
14491
14770
  * console.log(new Comparator())
14492
14771
  * </script>
14493
14772
  * ```
@@ -14512,7 +14791,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
14512
14791
  *
14513
14792
  * @example
14514
14793
  *
14515
- * import {Comparator} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/util/comparator.js';
14794
+ * import {Comparator} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/util/comparator.js';
14516
14795
  *
14517
14796
  * console.log(new Comparator().lessThanOrEqual(2, 5))
14518
14797
  * // ↦ true
@@ -14725,7 +15004,7 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
14725
15004
  *
14726
15005
  * ```
14727
15006
  * <script type="module">
14728
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/monster.js';
15007
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/monster.js';
14729
15008
  * Monster.Util.deepFreeze({})
14730
15009
  * </script>
14731
15010
  * ```
@@ -14734,7 +15013,7 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
14734
15013
  *
14735
15014
  * ```
14736
15015
  * <script type="module">
14737
- * import {deepFreeze} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.26.0/dist/modules/util/freeze.js';
15016
+ * import {deepFreeze} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.1/dist/modules/util/freeze.js';
14738
15017
  * deepFreeze({})
14739
15018
  * </script>
14740
15019
  * ```
@@ -14857,12 +15136,12 @@ __webpack_require__.r(__webpack_exports__);
14857
15136
  /* harmony import */ var _dom_constants_js__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(33);
14858
15137
  /* harmony import */ var _dom_customcontrol_js__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(34);
14859
15138
  /* harmony import */ var _dom_customelement_js__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(35);
14860
- /* harmony import */ var _dom_events_js__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(43);
15139
+ /* harmony import */ var _dom_events_js__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(42);
14861
15140
  /* harmony import */ var _dom_locale_js__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(44);
14862
15141
  /* harmony import */ var _dom_template_js__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(38);
14863
15142
  /* harmony import */ var _dom_theme_js__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(39);
14864
15143
  /* harmony import */ var _dom_updater_js__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(40);
14865
- /* harmony import */ var _dom_util_js__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(42);
15144
+ /* harmony import */ var _dom_util_js__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(43);
14866
15145
  /* harmony import */ var _i18n_locale_js__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(45);
14867
15146
  /* harmony import */ var _i18n_provider_js__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(46);
14868
15147
  /* harmony import */ var _i18n_providers_fetch_js__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(49);