@schukai/monster 1.25.0 → 1.28.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (200) hide show
  1. package/CHANGELOG +43 -0
  2. package/README.md +4 -4
  3. package/dist/modules/constants.js +1 -1
  4. package/dist/modules/constraints/abstract.js +1 -1
  5. package/dist/modules/constraints/abstractoperator.js +1 -1
  6. package/dist/modules/constraints/andoperator.js +1 -1
  7. package/dist/modules/constraints/invalid.js +1 -1
  8. package/dist/modules/constraints/isarray.js +1 -1
  9. package/dist/modules/constraints/isobject.js +1 -1
  10. package/dist/modules/constraints/namespace.js +1 -1
  11. package/dist/modules/constraints/oroperator.js +1 -1
  12. package/dist/modules/constraints/valid.js +1 -1
  13. package/dist/modules/data/buildmap.js +2 -2
  14. package/dist/modules/data/buildtree.js +2 -0
  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 +1 -1
  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 +2 -0
  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 +2 -2
  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 +2 -2
  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 -0
  78. package/dist/modules/types/nodelist.js +2 -0
  79. package/dist/modules/types/noderecursiveiterator.js +2 -0
  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 +2 -0
  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 +1181 -708
  100. package/dist/monster.dev.js.map +1 -1
  101. package/dist/monster.js +2 -2
  102. package/package.json +13 -2
  103. package/source/constraints/abstract.js +5 -0
  104. package/source/constraints/abstractoperator.js +5 -0
  105. package/source/constraints/andoperator.js +10 -5
  106. package/source/constraints/invalid.js +8 -3
  107. package/source/constraints/isarray.js +9 -4
  108. package/source/constraints/isobject.js +8 -3
  109. package/source/constraints/oroperator.js +10 -5
  110. package/source/constraints/valid.js +8 -3
  111. package/source/data/buildmap.js +27 -13
  112. package/source/data/buildtree.js +129 -0
  113. package/source/data/datasource/restapi.js +3 -3
  114. package/source/data/datasource/storage/localstorage.js +2 -2
  115. package/source/data/datasource/storage/sessionstorage.js +2 -2
  116. package/source/data/datasource/storage.js +3 -3
  117. package/source/data/datasource.js +3 -3
  118. package/source/data/diff.js +3 -3
  119. package/source/data/extend.js +2 -2
  120. package/source/data/pathfinder.js +4 -4
  121. package/source/data/pipe.js +3 -3
  122. package/source/data/transformer.js +3 -3
  123. package/source/dom/assembler.js +2 -2
  124. package/source/dom/attributes.js +111 -28
  125. package/source/dom/constants.js +17 -1
  126. package/source/dom/customcontrol.js +1 -1
  127. package/source/dom/customelement.js +1 -1
  128. package/source/dom/events.js +6 -7
  129. package/source/dom/focusmanager.js +6 -7
  130. package/source/dom/locale.js +8 -4
  131. package/source/dom/resource/data.js +2 -2
  132. package/source/dom/resource/link/stylesheet.js +2 -2
  133. package/source/dom/resource/link.js +2 -2
  134. package/source/dom/resource/script.js +2 -2
  135. package/source/dom/resource.js +2 -2
  136. package/source/dom/resourcemanager.js +2 -2
  137. package/source/dom/template.js +55 -15
  138. package/source/dom/theme.js +3 -3
  139. package/source/dom/updater.js +158 -98
  140. package/source/dom/util.js +6 -6
  141. package/source/dom/worker/factory.js +2 -2
  142. package/source/i18n/formatter.js +140 -0
  143. package/source/i18n/locale.js +6 -4
  144. package/source/i18n/provider.js +2 -2
  145. package/source/i18n/providers/fetch.js +18 -3
  146. package/source/i18n/translations.js +18 -9
  147. package/source/logging/handler/console.js +2 -2
  148. package/source/logging/handler.js +2 -2
  149. package/source/logging/logentry.js +2 -2
  150. package/source/logging/logger.js +2 -2
  151. package/source/math/random.js +2 -2
  152. package/source/namespace.js +1 -1
  153. package/source/text/formatter.js +190 -48
  154. package/source/types/base.js +2 -2
  155. package/source/types/basewithoptions.js +2 -2
  156. package/source/types/binary.js +4 -4
  157. package/source/types/dataurl.js +4 -4
  158. package/source/types/global.js +4 -4
  159. package/source/types/id.js +6 -3
  160. package/source/types/is.js +100 -82
  161. package/source/types/mediatype.js +4 -4
  162. package/source/types/node.js +210 -0
  163. package/source/types/nodelist.js +129 -0
  164. package/source/types/noderecursiveiterator.js +148 -0
  165. package/source/types/observer.js +3 -3
  166. package/source/types/observerlist.js +2 -2
  167. package/source/types/proxyobserver.js +5 -5
  168. package/source/types/queue.js +4 -4
  169. package/source/types/randomid.js +2 -2
  170. package/source/types/regex.js +49 -0
  171. package/source/types/stack.js +2 -2
  172. package/source/types/tokenlist.js +2 -2
  173. package/source/types/typeof.js +3 -3
  174. package/source/types/uniquequeue.js +2 -2
  175. package/source/types/uuid.js +2 -2
  176. package/source/types/validate.js +20 -20
  177. package/source/types/version.js +6 -6
  178. package/source/util/clone.js +2 -2
  179. package/source/util/comparator.js +3 -3
  180. package/source/util/freeze.js +2 -2
  181. package/source/util/processing.js +3 -3
  182. package/source/util/trimspaces.js +2 -2
  183. package/test/cases/data/buildtree.js +212 -0
  184. package/test/cases/dom/attributes.js +46 -19
  185. package/test/cases/dom/resource/link/stylesheet.js +1 -1
  186. package/test/cases/dom/template.js +72 -14
  187. package/test/cases/dom/updater.js +102 -75
  188. package/test/cases/i18n/formatter.js +66 -0
  189. package/test/cases/monster.js +1 -1
  190. package/test/cases/text/formatter.js +36 -5
  191. package/test/cases/types/node.js +252 -0
  192. package/test/cases/types/nodelist.js +71 -0
  193. package/test/cases/types/noderecursiveiterator.js +75 -0
  194. package/test/cases/types/regex.js +32 -0
  195. package/test/util/jsdom.js +0 -1
  196. package/test/web/import.js +6 -0
  197. package/test/web/monster-dev.html +3 -3
  198. package/test/web/monster.html +2 -2
  199. package/test/web/test.html +3 -3
  200. package/test/web/tests.js +3 -3
@@ -1,4 +1,4 @@
1
- /** Monster 1.25.0, © 2021 schukai GmbH, Released under the AGPL 3.0 License. */
1
+ /** Monster 1.28.0, © 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.25.0/dist/modules/namespace.js';
143
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
144
144
  * function hello() {
145
145
  * console.log('Hello World!');
146
146
  * }
@@ -288,6 +288,10 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
288
288
 
289
289
 
290
290
  /**
291
+ * Constraints are used to define conditions that must be met by the value of a variable.
292
+ *
293
+ * The uniform API of the constraints allows chains to be formed.
294
+ *
291
295
  * The abstract constraint defines the api for all constraints. mainly the method isValid() is defined.
292
296
  *
293
297
  * derived classes must implement the method isValid().
@@ -295,6 +299,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
295
299
  * @since 1.3.0
296
300
  * @copyright schukai GmbH
297
301
  * @memberOf Monster.Constraints
302
+ * @summary The abstract constraint
298
303
  */
299
304
 
300
305
  var AbstractConstraint = /*#__PURE__*/function (_Base) {
@@ -382,7 +387,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
382
387
  *
383
388
  * ```
384
389
  * <script type="module">
385
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/types/base.js';
390
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
386
391
  * new Monster.Types.Base()
387
392
  * </script>
388
393
  * ```
@@ -391,7 +396,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
391
396
  *
392
397
  * ```
393
398
  * <script type="module">
394
- * import {Base} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/types/base.js';
399
+ * import {Base} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/types/base.js';
395
400
  * new Base()
396
401
  * </script>
397
402
  * ```
@@ -469,11 +474,16 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
469
474
 
470
475
 
471
476
  /**
477
+ * Constraints are used to define conditions that must be met by the value of a variable.
478
+ *
479
+ * The uniform API of the constraints allows chains to be formed.
480
+ *
472
481
  * Operators allow you to link constraints together. for example, you can check whether a value is an object or an array. each operator has two operands that are linked together.
473
482
  *
474
483
  * @since 1.3.0
475
484
  * @copyright schukai GmbH
476
485
  * @memberOf Monster.Constraints
486
+ * @summary The abstract operator constraint
477
487
  */
478
488
 
479
489
  var AbstractOperator = /*#__PURE__*/function (_AbstractConstraint) {
@@ -550,11 +560,15 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
550
560
 
551
561
 
552
562
  /**
563
+ * Constraints are used to define conditions that must be met by the value of a variable.
564
+ *
565
+ * The uniform API of the constraints allows chains to be formed.
566
+ *
553
567
  * The AndOperator is used to link several contraints. The constraint is fulfilled if all constraints of the operators are fulfilled.
554
568
  *
555
569
  * ```
556
570
  * <script type="module">
557
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/constraints/andoperator.js';
571
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
558
572
  * new Monster.Constraint.AndOperator();
559
573
  * </script>
560
574
  * ```
@@ -563,16 +577,16 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
563
577
  *
564
578
  * ```
565
579
  * <script type="module">
566
- * import {AndOperator} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/constraints/andoperator.js';
580
+ * import {AndOperator} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/constraints/andoperator.js';
567
581
  * new AndOperator();
568
582
  * </script>
569
583
  * ```
570
584
  *
571
585
  * @example
572
586
  *
573
- * import {Valid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/constraints/valid.js';
574
- * import {Invalid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/constraints/invalid.js';
575
- * import {AndOperator} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/constraints/andoperator.js';
587
+ * import {Valid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/constraints/valid.js';
588
+ * import {Invalid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/constraints/invalid.js';
589
+ * import {AndOperator} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/constraints/andoperator.js';
576
590
  *
577
591
  * new AndOperator(
578
592
  * new Valid(), new Valid()).isValid()
@@ -589,6 +603,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
589
603
  * @since 1.3.0
590
604
  * @copyright schukai GmbH
591
605
  * @memberOf Monster.Constraints
606
+ * @summary A and operator constraint
592
607
  */
593
608
 
594
609
  var AndOperator = /*#__PURE__*/function (_AbstractOperator) {
@@ -663,13 +678,17 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
663
678
 
664
679
 
665
680
  /**
681
+ * Constraints are used to define conditions that must be met by the value of a variable.
682
+ *
683
+ * The uniform API of the constraints allows chains to be formed.
684
+ *
666
685
  * The invalid constraint allows an always invalid query to be performed. this constraint is mainly intended for testing.
667
686
  *
668
687
  * You can call the method via the monster namespace `new Monster.Constraint.Invalid()`.
669
688
  *
670
689
  * ```
671
690
  * <script type="module">
672
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/constraints/invalid.js';
691
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
673
692
  * new Monster.Constraint.Invalid();
674
693
  * </script>
675
694
  * ```
@@ -678,14 +697,14 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
678
697
  *
679
698
  * ```
680
699
  * <script type="module">
681
- * import {Invalid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/constraints/invalid.js';
700
+ * import {Invalid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/constraints/invalid.js';
682
701
  * new Invalid();
683
702
  * </script>
684
703
  * ```
685
704
  *
686
705
  * @example
687
706
  *
688
- * import {Invalid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/constraints/invalid.js';
707
+ * import {Invalid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/constraints/invalid.js';
689
708
  *
690
709
  * new Invalid().isValid()
691
710
  * .then(()=>console.log(true))
@@ -695,6 +714,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
695
714
  * @since 1.3.0
696
715
  * @copyright schukai GmbH
697
716
  * @memberOf Monster.Constraints
717
+ * @summary A constraint that always invalid
698
718
  */
699
719
 
700
720
  var Invalid = /*#__PURE__*/function (_AbstractConstraint) {
@@ -771,12 +791,16 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
771
791
 
772
792
 
773
793
  /**
794
+ * Constraints are used to define conditions that must be met by the value of a variable.
795
+ *
796
+ * The uniform API of the constraints allows chains to be formed.
797
+ *
774
798
  * You can call the method via the monster namespace `new Monster.Constraint.IsObject()`.
775
799
  *
776
800
  * ```
777
801
  * <script type="module">
778
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/constraints/isarray.js';
779
- * console.log(new Monster.Constraint.IsArray())
802
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
803
+ * new Monster.Constraint.IsArray()
780
804
  * </script>
781
805
  * ```
782
806
  *
@@ -784,14 +808,14 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
784
808
  *
785
809
  * ```
786
810
  * <script type="module">
787
- * import {IsArray} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/constraints/isarray.js';
811
+ * import {IsArray} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/constraints/isarray.js';
788
812
  * console.log(new IsArray())
789
813
  * </script>
790
814
  * ```
791
815
  *
792
816
  * @example
793
817
  *
794
- * import {IsArray} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/constraints/isarray.js';
818
+ * import {IsArray} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/constraints/isarray.js';
795
819
  *
796
820
  * new IsArray()
797
821
  * .isValid([])
@@ -806,6 +830,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
806
830
  * @since 1.3.0
807
831
  * @copyright schukai GmbH
808
832
  * @memberOf Monster.Constraints
833
+ * @summary A constraint to check if a value is an array
809
834
  */
810
835
 
811
836
  var IsArray = /*#__PURE__*/function (_AbstractConstraint) {
@@ -871,16 +896,18 @@ function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "functi
871
896
 
872
897
 
873
898
  /**
874
- * With this function you can check if a value is iterable
899
+ * With this function you can check if a value is iterable.
900
+ *
901
+ * This method is used in the library to have consistent names.
875
902
  *
876
903
  * You can call the method via the monster namespace `Monster.Types.isPrimitive()`.
877
904
  *
878
905
  * ```
879
906
  * <script type="module">
880
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/types/is.js';
881
- * console.log(Monster.Types.isIterable(null)) // ↦ false
882
- * console.log(Monster.Types.isIterable('hello')) // ↦ true
883
- * console.log(Monster.Types.isIterable([])) // ↦ true
907
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
908
+ * Monster.Types.isIterable(null) // ↦ false
909
+ * Monster.Types.isIterable('hello') // ↦ true
910
+ * Monster.Types.isIterable([]) // ↦ true
884
911
  * </script>
885
912
  * ```
886
913
  *
@@ -888,7 +915,7 @@ function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "functi
888
915
  *
889
916
  * ```
890
917
  * <script type="module">
891
- * import {isIterable} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/types/is.js';
918
+ * import {isIterable} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/types/is.js';
892
919
  * isIterable(null) // ↦ false
893
920
  * isIterable('hello') // ↦ true
894
921
  * isIterable([]) // ↦ true
@@ -909,14 +936,16 @@ function isIterable(value) {
909
936
  }
910
937
  /**
911
938
  * Checks whether the value passed is a primitive (string, number, boolean, NaN, undefined, null or symbol)
939
+ *
940
+ * This method is used in the library to have consistent names.
912
941
  *
913
942
  * You can call the method via the monster namespace `Monster.Types.isPrimitive()`.
914
943
  *
915
944
  * ```
916
945
  * <script type="module">
917
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/types/is.js';
918
- * console.log(Monster.Types.isPrimitive('2')) // ↦ false
919
- * console.log(Monster.Types.isPrimitive([])) // ↦ true
946
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
947
+ * Monster.Types.isPrimitive('2') // ↦ false
948
+ * Monster.Types.isPrimitive([]) // ↦ true
920
949
  * </script>
921
950
  * ```
922
951
  *
@@ -924,9 +953,9 @@ function isIterable(value) {
924
953
  *
925
954
  * ```
926
955
  * <script type="module">
927
- * import {isPrimitive} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/types/is.js';
928
- * console.log(isPrimitive('2')) // ↦ true
929
- * console.log(isPrimitive([])) // ↦ false
956
+ * import {isPrimitive} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/types/is.js';
957
+ * isPrimitive('2')) // ↦ true
958
+ * isPrimitive([])) // ↦ false
930
959
  * </script>
931
960
  * ```
932
961
  *
@@ -955,14 +984,16 @@ function isPrimitive(value) {
955
984
  }
956
985
  /**
957
986
  * Checks whether the value passed is a symbol
987
+ *
988
+ * This method is used in the library to have consistent names.
958
989
  *
959
990
  * You can call the method via the monster namespace `Monster.Types.isSymbol()`.
960
991
  *
961
992
  * ```
962
993
  * <script type="module">
963
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/types/is.js';
964
- * console.log(Monster.Types.isSymbol('2')) // ↦ false
965
- * console.log(Monster.Types.isSymbol(Symbol('test')) // ↦ true
994
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
995
+ * Monster.Types.isSymbol('2') // ↦ false
996
+ * Monster.Types.isSymbol(Symbol('test') // ↦ true
966
997
  * </script>
967
998
  * ```
968
999
  *
@@ -970,9 +1001,9 @@ function isPrimitive(value) {
970
1001
  *
971
1002
  * ```
972
1003
  * <script type="module">
973
- * import {isSymbol} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/types/is.js';
974
- * console.log(isSymbol(Symbol('a'))) // ↦ true
975
- * console.log(isSymbol([]) // ↦ false
1004
+ * import {isSymbol} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/types/is.js';
1005
+ * isSymbol(Symbol('a'))) // ↦ true
1006
+ * isSymbol([]) // ↦ false
976
1007
  * </script>
977
1008
  * ```
978
1009
  *
@@ -988,16 +1019,18 @@ function isSymbol(value) {
988
1019
  return 'symbol' === _typeof(value) ? true : false;
989
1020
  }
990
1021
  /**
991
- * Checks whether the value passed is a boolean
1022
+ * Checks whether the value passed is a boolean.
1023
+ *
1024
+ * This method is used in the library to have consistent names.
992
1025
  *
993
1026
  * You can call the method via the monster namespace `Monster.Types.isBoolean()`.
994
1027
  *
995
1028
  * ```
996
1029
  * <script type="module">
997
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/types/is.js';
998
- * console.log(Monster.Types.isBoolean('2')) // ↦ false
999
- * console.log(Monster.Types.isBoolean([])) // ↦ false
1000
- * console.log(Monster.Types.isBoolean(true)) // ↦ true
1030
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
1031
+ * Monster.Types.isBoolean('2') // ↦ false
1032
+ * Monster.Types.isBoolean([]) // ↦ false
1033
+ * Monster.Types.isBoolean(true) // ↦ true
1001
1034
  * </script>
1002
1035
  * ```
1003
1036
  *
@@ -1005,10 +1038,10 @@ function isSymbol(value) {
1005
1038
  *
1006
1039
  * ```
1007
1040
  * <script type="module">
1008
- * import {isBoolean} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/types/is.js';
1009
- * console.log(isBoolean('2')) // ↦ false
1010
- * console.log(isBoolean([])) // ↦ false
1011
- * console.log(isBoolean(2>4)) // ↦ true
1041
+ * import {isBoolean} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/types/is.js';
1042
+ * isBoolean('2')) // ↦ false
1043
+ * isBoolean([])) // ↦ false
1044
+ * isBoolean(2>4)) // ↦ true
1012
1045
  * </script>
1013
1046
  * ```
1014
1047
  *
@@ -1028,15 +1061,17 @@ function isBoolean(value) {
1028
1061
  return false;
1029
1062
  }
1030
1063
  /**
1031
- * checks whether the value passed is a string
1064
+ * Checks whether the value passed is a string
1065
+ *
1066
+ * This method is used in the library to have consistent names.
1032
1067
  *
1033
- * you can call the method via the monster namespace `Monster.Types.isString()`.
1068
+ * You can call the method via the monster namespace `Monster.Types.isString()`.
1034
1069
  *
1035
1070
  * ```
1036
1071
  * <script type="module">
1037
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/types/is.js';
1038
- * console.log(Monster.Types.isString('2')) // ↦ true
1039
- * console.log(Monster.Types.isString([])) // ↦ false
1072
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
1073
+ * Monster.Types.isString('2') // ↦ true
1074
+ * Monster.Types.isString([]) // ↦ false
1040
1075
  * </script>
1041
1076
  * ```
1042
1077
  *
@@ -1044,9 +1079,9 @@ function isBoolean(value) {
1044
1079
  *
1045
1080
  * ```
1046
1081
  * <script type="module">
1047
- * import {isString} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/types/is.js';
1048
- * console.log(isString('2')) // ↦ true
1049
- * console.log(isString([])) // ↦ false
1082
+ * import {isString} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/types/is.js';
1083
+ * isString('2')) // ↦ true
1084
+ * isString([])) // ↦ false
1050
1085
  * </script>
1051
1086
  * ```
1052
1087
  *
@@ -1066,16 +1101,18 @@ function isString(value) {
1066
1101
  return true;
1067
1102
  }
1068
1103
  /**
1069
- * checks whether the value passed is a object
1104
+ * Checks whether the value passed is a object
1105
+ *
1106
+ * This method is used in the library to have consistent names.
1070
1107
  *
1071
- * you can call the method via the monster namespace `Monster.Types.isObject()`.
1108
+ * You can call the method via the monster namespace `Monster.Types.isObject()`.
1072
1109
  *
1073
1110
  * ```
1074
1111
  * <script type="module">
1075
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/types/is.js';
1076
- * console.log(Monster.Types.isObject('2')) // ↦ false
1077
- * console.log(Monster.Types.isObject([])) // ↦ false
1078
- * console.log(Monster.Types.isObject({})) // ↦ true
1112
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
1113
+ * Monster.Types.isObject('2') // ↦ false
1114
+ * Monster.Types.isObject([]) // ↦ false
1115
+ * Monster.Types.isObject({}) // ↦ true
1079
1116
  * </script>
1080
1117
  * ```
1081
1118
  *
@@ -1083,9 +1120,9 @@ function isString(value) {
1083
1120
  *
1084
1121
  * ```
1085
1122
  * <script type="module">
1086
- * import {isObject} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/types/is.js';
1087
- * console.log(isObject('2')) // ↦ false
1088
- * console.log(isObject([])) // ↦ false
1123
+ * import {isObject} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/types/is.js';
1124
+ * isObject('2')) // ↦ false
1125
+ * isObject([])) // ↦ false
1089
1126
  * </script>
1090
1127
  * ```
1091
1128
  *
@@ -1108,16 +1145,18 @@ function isObject(value) {
1108
1145
  return false;
1109
1146
  }
1110
1147
  /**
1111
- * checks whether the value passed is a object and instance of instance
1148
+ * Checks whether the value passed is a object and instance of instance.
1149
+ *
1150
+ * This method is used in the library to have consistent names.
1112
1151
  *
1113
1152
  * you can call the method via the monster namespace `Monster.Types.isInstance()`.
1114
1153
  *
1115
1154
  * ```
1116
1155
  * <script type="module">
1117
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/types/is.js';
1118
- * console.log(Monster.Types.isInstance('2')) // ↦ false
1119
- * console.log(Monster.Types.isInstance([])) // ↦ false
1120
- * console.log(Monster.Types.isInstance({})) // ↦ true
1156
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
1157
+ * Monster.Types.isInstance('2') // ↦ false
1158
+ * Monster.Types.isInstance([]) // ↦ false
1159
+ * Monster.Types.isInstance({}) // ↦ true
1121
1160
  * </script>
1122
1161
  * ```
1123
1162
  *
@@ -1125,9 +1164,9 @@ function isObject(value) {
1125
1164
  *
1126
1165
  * ```
1127
1166
  * <script type="module">
1128
- * import {isInstance} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/types/is.js';
1129
- * console.log(isInstance('2')) // ↦ false
1130
- * console.log(isInstance([])) // ↦ false
1167
+ * import {isInstance} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/types/is.js';
1168
+ * isInstance('2')) // ↦ false
1169
+ * isInstance([])) // ↦ false
1131
1170
  * </script>
1132
1171
  * ```
1133
1172
  *
@@ -1147,15 +1186,17 @@ function isInstance(value, instance) {
1147
1186
  return value instanceof instance ? true : false;
1148
1187
  }
1149
1188
  /**
1150
- * checks whether the value passed is a array
1189
+ * Checks whether the value passed is a array
1190
+ *
1191
+ * This method is used in the library to have consistent names.
1151
1192
  *
1152
1193
  * you can call the method via the monster namespace `Monster.Types.isArray()`.
1153
1194
  *
1154
1195
  * ```
1155
1196
  * <script type="module">
1156
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/types/is.js';
1157
- * console.log(Monster.Types.isArray('2')) // ↦ false
1158
- * console.log(Monster.Types.isArray([])) // ↦ true
1197
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
1198
+ * Monster.Types.isArray('2') // ↦ false
1199
+ * Monster.Types.isArray([]) // ↦ true
1159
1200
  * </script>
1160
1201
  * ```
1161
1202
  *
@@ -1163,9 +1204,9 @@ function isInstance(value, instance) {
1163
1204
  *
1164
1205
  * ```
1165
1206
  * <script type="module">
1166
- * import {isArray} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/types/is.js';
1167
- * console.log(isArray('2')) // ↦ false
1168
- * console.log(isArray([])) // ↦ true
1207
+ * import {isArray} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/types/is.js';
1208
+ * isArray('2')) // ↦ false
1209
+ * isArray([])) // ↦ true
1169
1210
  * </script>
1170
1211
  * ```
1171
1212
  *
@@ -1174,27 +1215,26 @@ function isInstance(value, instance) {
1174
1215
  * @since 1.0.0
1175
1216
  * @copyright schukai GmbH
1176
1217
  * @memberOf Monster.Types
1218
+ * @see https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Array/isArray
1177
1219
  */
1178
1220
 
1179
1221
 
1180
1222
  function isArray(value) {
1181
- if (Array.isArray(value)) {
1182
- return true;
1183
- }
1184
-
1185
- return false;
1223
+ return Array.isArray(value);
1186
1224
  }
1187
1225
  /**
1188
- * checks whether the value passed is a function
1226
+ * Checks whether the value passed is a function
1227
+ *
1228
+ * This method is used in the library to have consistent names.
1189
1229
  *
1190
1230
  * you can call the method via the monster namespace `Monster.Types.isFunction()`.
1191
1231
  *
1192
1232
  * ```
1193
1233
  * <script type="module">
1194
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/types/is.js';
1195
- * console.log(Monster.Types.isFunction(()=>{})) // ↦ true
1196
- * console.log(Monster.Types.isFunction('2')) // ↦ false
1197
- * console.log(Monster.Types.isFunction([])) // ↦ false
1234
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
1235
+ * Monster.Types.isFunction(()=>{}) // ↦ true
1236
+ * Monster.Types.isFunction('2') // ↦ false
1237
+ * Monster.Types.isFunction([]) // ↦ false
1198
1238
  * </script>
1199
1239
  * ```
1200
1240
  *
@@ -1202,10 +1242,10 @@ function isArray(value) {
1202
1242
  *
1203
1243
  * ```
1204
1244
  * <script type="module">
1205
- * import {isFunction} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/types/is.js';
1206
- * console.log(isFunction(()=>{})) // ↦ true
1207
- * console.log(isFunction('2')) // ↦ false
1208
- * console.log(isFunction([])) // ↦ false
1245
+ * import {isFunction} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/types/is.js';
1246
+ * isFunction(()=>{}) // ↦ true
1247
+ * isFunction('2')) // ↦ false
1248
+ * isFunction([])) // ↦ false
1209
1249
  * </script>
1210
1250
  * ```
1211
1251
  *
@@ -1228,16 +1268,18 @@ function isFunction(value) {
1228
1268
  return false;
1229
1269
  }
1230
1270
  /**
1231
- * checks whether the value passed is an integer
1271
+ * Checks whether the value passed is an integer.
1272
+ *
1273
+ * This method is used in the library to have consistent names.
1232
1274
  *
1233
- * you can call the method via the monster namespace `Monster.Types.isFunction()`.
1275
+ * You can call the method via the monster namespace `Monster.Types.isFunction()`.
1234
1276
  *
1235
1277
  * ```
1236
1278
  * <script type="module">
1237
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/types/is.js';
1238
- * console.log(Monster.Types.isInteger(()=>{})) // ↦ true
1239
- * console.log(Monster.Types.isInteger('2')) // ↦ false
1240
- * console.log(Monster.Types.isInteger(2)) // ↦ true
1279
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
1280
+ * Monster.Types.isInteger(()=>{}) // ↦ true
1281
+ * Monster.Types.isInteger('2') // ↦ false
1282
+ * Monster.Types.isInteger(2) // ↦ true
1241
1283
  * </script>
1242
1284
  * ```
1243
1285
  *
@@ -1245,10 +1287,10 @@ function isFunction(value) {
1245
1287
  *
1246
1288
  * ```
1247
1289
  * <script type="module">
1248
- * import {isInteger} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/types/is.js';
1249
- * console.log(isInteger(()=>{})) // ↦ true
1250
- * console.log(isInteger('2')) // ↦ false
1251
- * console.log(isInteger(2)) // ↦ true
1290
+ * import {isInteger} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/types/is.js';
1291
+ * isInteger(()=>{}) // ↦ true
1292
+ * isInteger('2')) // ↦ false
1293
+ * isInteger(2)) // ↦ true
1252
1294
  * </script>
1253
1295
  * ```
1254
1296
  *
@@ -1310,11 +1352,15 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
1310
1352
 
1311
1353
 
1312
1354
  /**
1355
+ * Constraints are used to define conditions that must be met by the value of a variable.
1356
+ *
1357
+ * The uniform API of the constraints allows chains to be formed.
1358
+ *
1313
1359
  * You can call the method via the monster namespace `new Monster.Constraint.IsObject()`.
1314
1360
  *
1315
1361
  * ```
1316
1362
  * <script type="module">
1317
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/constraints/isobject.js';
1363
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
1318
1364
  * console.log(new Monster.Constraint.IsObject())
1319
1365
  * </script>
1320
1366
  * ```
@@ -1323,14 +1369,14 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
1323
1369
  *
1324
1370
  * ```
1325
1371
  * <script type="module">
1326
- * import {IsObject} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/constraints/isobject.js';
1372
+ * import {IsObject} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/constraints/isobject.js';
1327
1373
  * console.log(new IsObject())
1328
1374
  * </script>
1329
1375
  * ```
1330
1376
  *
1331
1377
  * @example
1332
1378
  *
1333
- * import {IsObject} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/constraints/isobject.js';
1379
+ * import {IsObject} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/constraints/isobject.js';
1334
1380
  *
1335
1381
  * new IsObject()
1336
1382
  * .isValid({})
@@ -1346,6 +1392,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
1346
1392
  * @since 1.3.0
1347
1393
  * @copyright schukai GmbH
1348
1394
  * @memberOf Monster.Constraints
1395
+ * @summary A constraint to check if a value is an object
1349
1396
  */
1350
1397
 
1351
1398
  var IsObject = /*#__PURE__*/function (_AbstractConstraint) {
@@ -1424,11 +1471,15 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
1424
1471
 
1425
1472
 
1426
1473
  /**
1474
+ * Constraints are used to define conditions that must be met by the value of a variable.
1475
+ *
1476
+ * The uniform API of the constraints allows chains to be formed.
1477
+ *
1427
1478
  * The OrOperator is used to link several constraints. The constraint is fulfilled if one of the constraints is fulfilled.
1428
1479
  *
1429
1480
  * ```
1430
1481
  * <script type="module">
1431
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/constraint/oroperator.js';
1482
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
1432
1483
  * new Monster.Constraint.OrOperator();
1433
1484
  * </script>
1434
1485
  * ```
@@ -1437,16 +1488,16 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
1437
1488
  *
1438
1489
  * ```
1439
1490
  * <script type="module">
1440
- * import {OrOperator} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/constraint/oroperator.js';
1491
+ * import {OrOperator} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/constraint/oroperator.js';
1441
1492
  * new OrOperator();
1442
1493
  * </script>
1443
1494
  * ```
1444
1495
  *
1445
1496
  * @example
1446
1497
  *
1447
- * import {Valid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/constraints/valid.js';
1448
- * import {Invalid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/constraints/invalid.js';
1449
- * import {OrOperator} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/constraints/oroperator.js';
1498
+ * import {Valid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/constraints/valid.js';
1499
+ * import {Invalid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/constraints/invalid.js';
1500
+ * import {OrOperator} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/constraints/oroperator.js';
1450
1501
  *
1451
1502
  * new OrOperator(
1452
1503
  * new Valid(), new Invalid()).isValid()
@@ -1463,6 +1514,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
1463
1514
  * @since 1.3.0
1464
1515
  * @copyright schukai GmbH
1465
1516
  * @memberOf Monster.Constraints
1517
+ * @summary A or operator
1466
1518
  */
1467
1519
 
1468
1520
  var OrOperator = /*#__PURE__*/function (_AbstractOperator) {
@@ -1560,13 +1612,17 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
1560
1612
 
1561
1613
 
1562
1614
  /**
1615
+ * Constraints are used to define conditions that must be met by the value of a variable.
1616
+ *
1617
+ * The uniform API of the constraints allows chains to be formed.
1618
+ *
1563
1619
  * The valid constraint allows an always valid query to be performed. this constraint is mainly intended for testing.
1564
1620
  *
1565
1621
  * You can call the method via the monster namespace `new Monster.Constraint.Valid()`.
1566
1622
  *
1567
1623
  * ```
1568
1624
  * <script type="module">
1569
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/constraints/valid.js';
1625
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
1570
1626
  * new Monster.Constraint.Valid();
1571
1627
  * </script>
1572
1628
  * ```
@@ -1575,14 +1631,14 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
1575
1631
  *
1576
1632
  * ```
1577
1633
  * <script type="module">
1578
- * import {Valid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/constraints/valid.js';
1634
+ * import {Valid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/constraints/valid.js';
1579
1635
  * new Valid();
1580
1636
  * </script>
1581
1637
  * ```
1582
1638
  *
1583
1639
  * @example
1584
1640
  *
1585
- * import {Valid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/constraints/valid.js';
1641
+ * import {Valid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/constraints/valid.js';
1586
1642
  *
1587
1643
  * new Valid().isValid()
1588
1644
  * .then(()=>console.log(true))
@@ -1592,6 +1648,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
1592
1648
  * @since 1.3.0
1593
1649
  * @copyright schukai GmbH
1594
1650
  * @memberOf Monster.Constraints
1651
+ * @summary A constraint that always valid
1595
1652
  */
1596
1653
 
1597
1654
  var Valid = /*#__PURE__*/function (_AbstractConstraint) {
@@ -1632,7 +1689,8 @@ var Valid = /*#__PURE__*/function (_AbstractConstraint) {
1632
1689
  __webpack_require__.r(__webpack_exports__);
1633
1690
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1634
1691
  /* harmony export */ "Monster": function() { return /* reexport safe */ _namespace_js__WEBPACK_IMPORTED_MODULE_0__.Monster; },
1635
- /* harmony export */ "buildMap": function() { return /* binding */ buildMap; }
1692
+ /* harmony export */ "buildMap": function() { return /* binding */ buildMap; },
1693
+ /* harmony export */ "assembleParts": function() { return /* binding */ assembleParts; }
1636
1694
  /* harmony export */ });
1637
1695
  /* harmony import */ var _namespace_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);
1638
1696
  /* harmony import */ var _types_is_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(9);
@@ -1689,7 +1747,7 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
1689
1747
  *
1690
1748
  * ```
1691
1749
  * <script type="module">
1692
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/data/buildmap.js';
1750
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
1693
1751
  * console.log(Monster.Data.buildMap())
1694
1752
  * </script>
1695
1753
  * ```
@@ -1698,7 +1756,7 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
1698
1756
  *
1699
1757
  * ```
1700
1758
  * <script type="module">
1701
- * import {buildMap} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/data/buildmap.js';
1759
+ * import {buildMap} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/data/buildmap.js';
1702
1760
  * console.log(buildMap())
1703
1761
  * </script>
1704
1762
  * ```
@@ -1709,7 +1767,7 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
1709
1767
  *
1710
1768
  * @example
1711
1769
  *
1712
- * import {buildMap} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/data/buildmap.js';
1770
+ * import {buildMap} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/data/buildmap.js';
1713
1771
  * // a typical data structure as reported by an api
1714
1772
  *
1715
1773
  * let map;
@@ -1789,6 +1847,23 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
1789
1847
  */
1790
1848
 
1791
1849
  function buildMap(subject, selector, valueTemplate, keyTemplate, filter) {
1850
+ return assembleParts(subject, selector, filter, function (v, k, m) {
1851
+ k = build(v, keyTemplate, k);
1852
+ v = build(v, valueTemplate);
1853
+ this.set(k, v);
1854
+ });
1855
+ }
1856
+ /**
1857
+ * @private
1858
+ * @param {*} subject
1859
+ * @param {string|Monster.Data~exampleSelectorCallback} selector
1860
+ * @param {Monster.Data~exampleFilterCallback} [filter]
1861
+ * @param {function} callback
1862
+ * @return {Map}
1863
+ */
1864
+
1865
+
1866
+ function assembleParts(subject, selector, filter, callback) {
1792
1867
  var result = new Map();
1793
1868
  var map;
1794
1869
 
@@ -1814,9 +1889,7 @@ function buildMap(subject, selector, valueTemplate, keyTemplate, filter) {
1814
1889
  if (filter.call(m, v, k) !== true) return;
1815
1890
  }
1816
1891
 
1817
- k = build(v, keyTemplate, k);
1818
- v = build(v, valueTemplate);
1819
- result.set(k, v);
1892
+ callback.call(result, v, k, m);
1820
1893
  });
1821
1894
  return result;
1822
1895
  }
@@ -1870,7 +1943,7 @@ function buildFlatMap(subject, selector, key, parentMap) {
1870
1943
  var kk = copyKey.join(_pathfinder_js__WEBPACK_IMPORTED_MODULE_4__.DELIMITER);
1871
1944
  var sub = buildFlatMap.call(result, o, parts.join(_pathfinder_js__WEBPACK_IMPORTED_MODULE_4__.DELIMITER), copyKey, o);
1872
1945
 
1873
- 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) {
1874
1947
  sub['^'] = parentMap;
1875
1948
  }
1876
1949
 
@@ -1924,7 +1997,7 @@ function buildFlatMap(subject, selector, key, parentMap) {
1924
1997
  * Alternatively to a string selector a callback can be specified. this must return a map.
1925
1998
  *
1926
1999
  * @example
1927
- * import {buildMap} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/data/buildmap.js';
2000
+ * import {buildMap} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/data/buildmap.js';
1928
2001
  *
1929
2002
  * let obj = {
1930
2003
  * "data": [
@@ -2127,7 +2200,7 @@ __webpack_require__.r(__webpack_exports__);
2127
2200
  *
2128
2201
  * ```
2129
2202
  * <script type="module">
2130
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/types/validate.js';
2203
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
2131
2204
  * console.log(Monster.Types.validateIterable('2')) // ↦ TypeError
2132
2205
  * console.log(Monster.Types.validateIterable([])) // ↦ value
2133
2206
  * </script>
@@ -2137,7 +2210,7 @@ __webpack_require__.r(__webpack_exports__);
2137
2210
  *
2138
2211
  * ```
2139
2212
  * <script type="module">
2140
- * import {validateIterable} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/types/validate.js';
2213
+ * import {validateIterable} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/types/validate.js';
2141
2214
  * console.log(validateIterable('2')) // ↦ TypeError
2142
2215
  * console.log(validateIterable([])) // ↦ value
2143
2216
  * </script>
@@ -2168,7 +2241,7 @@ function validateIterable(value) {
2168
2241
  *
2169
2242
  * ```
2170
2243
  * <script type="module">
2171
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/types/validate.js';
2244
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
2172
2245
  * console.log(Monster.Types.validatePrimitive('2')) // ↦ value
2173
2246
  * console.log(Monster.Types.validatePrimitive([])) // ↦ TypeError
2174
2247
  * </script>
@@ -2178,7 +2251,7 @@ function validateIterable(value) {
2178
2251
  *
2179
2252
  * ```
2180
2253
  * <script type="module">
2181
- * import {validatePrimitive} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/types/validate.js';
2254
+ * import {validatePrimitive} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/types/validate.js';
2182
2255
  * console.log(validatePrimitive('2')) // ↦ value
2183
2256
  * console.log(validatePrimitive([])) // ↦ TypeError
2184
2257
  * </script>
@@ -2210,7 +2283,7 @@ function validatePrimitive(value) {
2210
2283
  *
2211
2284
  * ```
2212
2285
  * <script type="module">
2213
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/types/validate.js';
2286
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
2214
2287
  * console.log(Monster.Types.validateBoolean(true)) // ↦ value
2215
2288
  * console.log(Monster.Types.validateBoolean('2')) // ↦ TypeError
2216
2289
  * console.log(Monster.Types.validateBoolean([])) // ↦ TypeError
@@ -2221,7 +2294,7 @@ function validatePrimitive(value) {
2221
2294
  *
2222
2295
  * ```
2223
2296
  * <script type="module">
2224
- * import {validateBoolean} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/types/validate.js';
2297
+ * import {validateBoolean} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/types/validate.js';
2225
2298
  * console.log(validateBoolean(false)) // ↦ value
2226
2299
  * console.log(validateBoolean('2')) // ↦ TypeError
2227
2300
  * console.log(validateBoolean([])) // ↦ TypeError
@@ -2252,7 +2325,7 @@ function validateBoolean(value) {
2252
2325
  *
2253
2326
  * ```
2254
2327
  * <script type="module">
2255
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/types/validate.js';
2328
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
2256
2329
  * console.log(Monster.Types.validateString('2')) // ↦ value
2257
2330
  * console.log(Monster.Types.validateString([])) // ↦ TypeError
2258
2331
  * </script>
@@ -2262,7 +2335,7 @@ function validateBoolean(value) {
2262
2335
  *
2263
2336
  * ```
2264
2337
  * <script type="module">
2265
- * import {validateString} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/types/validate.js';
2338
+ * import {validateString} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/types/validate.js';
2266
2339
  * console.log(validateString('2')) // ↦ value
2267
2340
  * console.log(validateString([])) // ↦ TypeError
2268
2341
  * </script>
@@ -2291,7 +2364,7 @@ function validateString(value) {
2291
2364
  *
2292
2365
  * ```
2293
2366
  * <script type="module">
2294
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/types/validate.js';
2367
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
2295
2368
  * console.log(Monster.Types.validateObject({})) // ↦ value
2296
2369
  * console.log(Monster.Types.validateObject('2')) // ↦ TypeError
2297
2370
  * console.log(Monster.Types.validateObject([])) // ↦ TypeError
@@ -2302,7 +2375,7 @@ function validateString(value) {
2302
2375
  *
2303
2376
  * ```
2304
2377
  * <script type="module">
2305
- * import {validateObject} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/types/validate.js';
2378
+ * import {validateObject} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/types/validate.js';
2306
2379
  * console.log(validateObject({})) // ↦ value
2307
2380
  * console.log(validateObject('2')) // ↦ TypeError
2308
2381
  * console.log(validateObject([])) // ↦ TypeError
@@ -2332,7 +2405,7 @@ function validateObject(value) {
2332
2405
  *
2333
2406
  * ```
2334
2407
  * <script type="module">
2335
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/types/validate.js';
2408
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
2336
2409
  * console.log(Monster.Types.validateInstance({}, Object)) // ↦ value
2337
2410
  * console.log(Monster.Types.validateInstance('2', Object)) // ↦ TypeError
2338
2411
  * console.log(Monster.Types.validateInstance([], Object)) // ↦ TypeError
@@ -2343,7 +2416,7 @@ function validateObject(value) {
2343
2416
  *
2344
2417
  * ```
2345
2418
  * <script type="module">
2346
- * import {validateInstance} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/types/validate.js';
2419
+ * import {validateInstance} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/types/validate.js';
2347
2420
  * console.log(validateInstance({}, Object)) // ↦ value
2348
2421
  * console.log(validateInstance('2', Object)) // ↦ TypeError
2349
2422
  * console.log(validateInstance([], Object)) // ↦ TypeError
@@ -2383,7 +2456,7 @@ function validateInstance(value, instance) {
2383
2456
  *
2384
2457
  * ```
2385
2458
  * <script type="module">
2386
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/types/validate.js';
2459
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
2387
2460
  * console.log(Monster.Types.validateArray('2')) // ↦ TypeError
2388
2461
  * console.log(Monster.Types.validateArray([])) // ↦ value
2389
2462
  * </script>
@@ -2393,7 +2466,7 @@ function validateInstance(value, instance) {
2393
2466
  *
2394
2467
  * ```
2395
2468
  * <script type="module">
2396
- * import {validateArray} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/types/validate.js';
2469
+ * import {validateArray} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/types/validate.js';
2397
2470
  * console.log(validateArray('2')) // ↦ TypeError
2398
2471
  * console.log(validateArray([])) // ↦ value
2399
2472
  * </script>
@@ -2422,7 +2495,7 @@ function validateArray(value) {
2422
2495
  *
2423
2496
  * ```
2424
2497
  * <script type="module">
2425
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/types/validate.js';
2498
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
2426
2499
  * console.log(Monster.Types.validateSymbol('2')) // ↦ TypeError
2427
2500
  * console.log(Monster.Types.validateSymbol([])) // ↦ value
2428
2501
  * </script>
@@ -2432,7 +2505,7 @@ function validateArray(value) {
2432
2505
  *
2433
2506
  * ```
2434
2507
  * <script type="module">
2435
- * import {validateSymbol} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/types/validate.js';
2508
+ * import {validateSymbol} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/types/validate.js';
2436
2509
  * console.log(validateSymbol('2')) // ↦ TypeError
2437
2510
  * console.log(validateSymbol()) // ↦ value
2438
2511
  * </script>
@@ -2461,7 +2534,7 @@ function validateSymbol(value) {
2461
2534
  *
2462
2535
  * ```
2463
2536
  * <script type="module">
2464
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/types/validate.js';
2537
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
2465
2538
  * console.log(Monster.Types.validateFunction(()=>{})) // ↦ value
2466
2539
  * console.log(Monster.Types.validateFunction('2')) // ↦ TypeError
2467
2540
  * console.log(Monster.Types.validateFunction([])) // ↦ TypeError
@@ -2472,7 +2545,7 @@ function validateSymbol(value) {
2472
2545
  *
2473
2546
  * ```
2474
2547
  * <script type="module">
2475
- * import {validateFunction} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/types/validate.js';
2548
+ * import {validateFunction} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/types/validate.js';
2476
2549
  * console.log(validateFunction(()=>{})) // ↦ value
2477
2550
  * console.log(validateFunction('2')) // ↦ TypeError
2478
2551
  * console.log(validateFunction([])) // ↦ TypeError
@@ -2502,7 +2575,7 @@ function validateFunction(value) {
2502
2575
  *
2503
2576
  * ```
2504
2577
  * <script type="module">
2505
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/types/validate.js';
2578
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
2506
2579
  * console.log(Monster.Types.validateInteger(true)) // ↦ TypeError
2507
2580
  * console.log(Monster.Types.validateInteger('2')) // ↦ TypeError
2508
2581
  * console.log(Monster.Types.validateInteger(2)) // ↦ value
@@ -2513,7 +2586,7 @@ function validateFunction(value) {
2513
2586
  *
2514
2587
  * ```
2515
2588
  * <script type="module">
2516
- * import {validateFunction} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/types/validate.js';
2589
+ * import {validateFunction} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/types/validate.js';
2517
2590
  * console.log(validateInteger(true)) // ↦ TypeError
2518
2591
  * console.log(validateInteger('2')) // ↦ TypeError
2519
2592
  * console.log(validateInteger(2)) // ↦ value
@@ -2579,7 +2652,7 @@ function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "functi
2579
2652
  *
2580
2653
  * ```
2581
2654
  * <script type="module">
2582
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/util/clone.js';
2655
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
2583
2656
  * Monster.Util.clone({})
2584
2657
  * </script>
2585
2658
  * ```
@@ -2588,7 +2661,7 @@ function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "functi
2588
2661
  *
2589
2662
  * ```
2590
2663
  * <script type="module">
2591
- * import {clone} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/util/clone.js';
2664
+ * import {clone} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/util/clone.js';
2592
2665
  * clone({})
2593
2666
  * </script>
2594
2667
  * ```
@@ -2800,7 +2873,7 @@ function getGlobal() {
2800
2873
  *
2801
2874
  * ```
2802
2875
  * <script type="module">
2803
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/types/global.js';
2876
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
2804
2877
  * Monster.Types.getGlobalObject('document')
2805
2878
  * // ↦ { }
2806
2879
  * </script>
@@ -2810,7 +2883,7 @@ function getGlobal() {
2810
2883
  *
2811
2884
  * ```
2812
2885
  * <script type="module">
2813
- * import {getGlobalObject} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/types/global.js';
2886
+ * import {getGlobalObject} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/types/global.js';
2814
2887
  * getGlobalObject('document')
2815
2888
  * // ↦ { }
2816
2889
  * </script>
@@ -2842,7 +2915,7 @@ function getGlobalObject(name) {
2842
2915
  *
2843
2916
  * ```
2844
2917
  * <script type="module">
2845
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/types/global.js';
2918
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
2846
2919
  * console.log(Monster.Types.getGlobalFunction('parseInt')) // ↦ f parseInt() { }
2847
2920
  * </script>
2848
2921
  * ```
@@ -2851,7 +2924,7 @@ function getGlobalObject(name) {
2851
2924
  *
2852
2925
  * ```
2853
2926
  * <script type="module">
2854
- * import {getGlobalFunction} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/types/global.js';
2927
+ * import {getGlobalFunction} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/types/global.js';
2855
2928
  * console.log(getGlobalFunction('parseInt')) // ↦ f parseInt() { }
2856
2929
  * </script>
2857
2930
  * ```
@@ -2902,7 +2975,7 @@ __webpack_require__.r(__webpack_exports__);
2902
2975
  *
2903
2976
  * ```
2904
2977
  * <script type="module">
2905
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/types/typeof.js';
2978
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
2906
2979
  * console.log(Monster.Types.typeOf())
2907
2980
  * </script>
2908
2981
  * ```
@@ -2911,14 +2984,14 @@ __webpack_require__.r(__webpack_exports__);
2911
2984
  *
2912
2985
  * ```
2913
2986
  * <script type="module">
2914
- * import {typeOf} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/types/typeof.js';
2987
+ * import {typeOf} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/types/typeof.js';
2915
2988
  * console.log(typeOf())
2916
2989
  * </script>
2917
2990
  * ```
2918
2991
  *
2919
2992
  * @example
2920
2993
  *
2921
- * import {typeOf} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/types/typeof.js';
2994
+ * import {typeOf} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/types/typeof.js';
2922
2995
  *
2923
2996
  * console.log(typeOf(undefined)); // ↦ undefined
2924
2997
  * console.log(typeOf("")); // ↦ string
@@ -3037,7 +3110,7 @@ var WILDCARD = '*';
3037
3110
  *
3038
3111
  * ```
3039
3112
  * <script type="module">
3040
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/data/pathfinder.js';
3113
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
3041
3114
  * console.log(new Monster.Data.Pathfinder())
3042
3115
  * </script>
3043
3116
  * ```
@@ -3046,7 +3119,7 @@ var WILDCARD = '*';
3046
3119
  *
3047
3120
  * ```
3048
3121
  * <script type="module">
3049
- * import {Pathfinder} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/data/pathfinder.js';
3122
+ * import {Pathfinder} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/data/pathfinder.js';
3050
3123
  * console.log(new Pathfinder())
3051
3124
  * </script>
3052
3125
  * ```
@@ -3088,7 +3161,7 @@ var WILDCARD = '*';
3088
3161
  *
3089
3162
  * @example
3090
3163
  *
3091
- * import {Pathfinder} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/data/pathfinder.js';
3164
+ * import {Pathfinder} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/data/pathfinder.js';
3092
3165
  *
3093
3166
  * let value = new Pathfinder({
3094
3167
  * a: {
@@ -3114,7 +3187,7 @@ var WILDCARD = '*';
3114
3187
  *
3115
3188
  * @example
3116
3189
  *
3117
- * import {Pathfinder} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/data/pathfinder.js';
3190
+ * import {Pathfinder} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/data/pathfinder.js';
3118
3191
  *
3119
3192
  * let p = new Pathfinder({
3120
3193
  * a: {
@@ -3529,7 +3602,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
3529
3602
  *
3530
3603
  * ```
3531
3604
  * <script type="module">
3532
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/types/stack.js';
3605
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
3533
3606
  * console.log(new Monster.Types.Stack())
3534
3607
  * </script>
3535
3608
  * ```
@@ -3538,7 +3611,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
3538
3611
  *
3539
3612
  * ```
3540
3613
  * <script type="module">
3541
- * import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/types/stack.js';
3614
+ * import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/types/stack.js';
3542
3615
  * console.log(new Stack())
3543
3616
  * </script>
3544
3617
  * ```
@@ -3673,7 +3746,7 @@ function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "functi
3673
3746
  *
3674
3747
  * ```
3675
3748
  * <script type="module">
3676
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/data/diff.js';
3749
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
3677
3750
  * Monster.Data.Diff(a, b)
3678
3751
  * </script>
3679
3752
  * ```
@@ -3682,14 +3755,14 @@ function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "functi
3682
3755
  *
3683
3756
  * ```
3684
3757
  * <script type="module">
3685
- * import {Diff} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/data/diff.js';
3758
+ * import {Diff} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/data/diff.js';
3686
3759
  * Diff(a, b)
3687
3760
  * </script>
3688
3761
  * ```
3689
3762
  *
3690
3763
  * @example
3691
3764
  *
3692
- * import {Diff} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/data/diff.js';
3765
+ * import {Diff} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/data/diff.js';
3693
3766
  *
3694
3767
  * // given are two objects x and y.
3695
3768
  *
@@ -3935,7 +4008,7 @@ __webpack_require__.r(__webpack_exports__);
3935
4008
  *
3936
4009
  * ```
3937
4010
  * <script type="module">
3938
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/data/extend.js';
4011
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
3939
4012
  * Monster.Data.extend(a, b)
3940
4013
  * </script>
3941
4014
  * ```
@@ -3944,7 +4017,7 @@ __webpack_require__.r(__webpack_exports__);
3944
4017
  *
3945
4018
  * ```
3946
4019
  * <script type="module">
3947
- * import {extend} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/data/extend.js';
4020
+ * import {extend} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/data/extend.js';
3948
4021
  * extend(a, b)
3949
4022
  * </script>
3950
4023
  * ```
@@ -4073,7 +4146,7 @@ var DELIMITER = '|';
4073
4146
  *
4074
4147
  * ```
4075
4148
  * <script type="module">
4076
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/data/pipe.js';
4149
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
4077
4150
  * new Monster.Data.Pipe()
4078
4151
  * </script>
4079
4152
  * ```
@@ -4082,7 +4155,7 @@ var DELIMITER = '|';
4082
4155
  *
4083
4156
  * ```
4084
4157
  * <script type="module">
4085
- * import {Pipe} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/data/pipe.js';
4158
+ * import {Pipe} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/data/pipe.js';
4086
4159
  * new Pipe()
4087
4160
  * </script>
4088
4161
  * ```
@@ -4093,7 +4166,7 @@ var DELIMITER = '|';
4093
4166
  * the word is then converted to uppercase letters and a prefix Hello is added. the two backslash safe the space char.
4094
4167
  *
4095
4168
  * @example
4096
- * import {Pipe} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/data/pipe.js';
4169
+ * import {Pipe} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/data/pipe.js';
4097
4170
  *
4098
4171
  * let obj = {
4099
4172
  * a: {
@@ -4255,7 +4328,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
4255
4328
  *
4256
4329
  * ```
4257
4330
  * <script type="module">
4258
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/data/transformer.js';
4331
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
4259
4332
  * new Monster.Data.Transformer()
4260
4333
  * </script>
4261
4334
  * ```
@@ -4264,7 +4337,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
4264
4337
  *
4265
4338
  * ```
4266
4339
  * <script type="module">
4267
- * import {Transformer} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/data/transformer.js';
4340
+ * import {Transformer} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/data/transformer.js';
4268
4341
  * new Transformer()
4269
4342
  * </script>
4270
4343
  * ```
@@ -4350,7 +4423,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
4350
4423
  *
4351
4424
  * @example
4352
4425
  *
4353
- * import {Transformer} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/data/transformer.js';
4426
+ * import {Transformer} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/data/transformer.js';
4354
4427
  *
4355
4428
  * const transformer = new Transformer("tolower")
4356
4429
  *
@@ -4883,7 +4956,7 @@ var internalCounter = new Map();
4883
4956
  *
4884
4957
  * ```
4885
4958
  * <script type="module">
4886
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/types/id.js';
4959
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
4887
4960
  * console.log(new Monster.Types.ID())
4888
4961
  * </script>
4889
4962
  * ```
@@ -4892,7 +4965,7 @@ var internalCounter = new Map();
4892
4965
  *
4893
4966
  * ```
4894
4967
  * <script type="module">
4895
- * import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/types/id.js';
4968
+ * import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/types/id.js';
4896
4969
  * console.log(new ID())
4897
4970
  * </script>
4898
4971
  * ```
@@ -4902,6 +4975,7 @@ var internalCounter = new Map();
4902
4975
  * @since 1.0.0
4903
4976
  * @copyright schukai GmbH
4904
4977
  * @memberOf Monster.Types
4978
+ * @summary Automatic generation of ids
4905
4979
  */
4906
4980
 
4907
4981
  var ID = /*#__PURE__*/function (_Base) {
@@ -4910,7 +4984,9 @@ var ID = /*#__PURE__*/function (_Base) {
4910
4984
  var _super = _createSuper(ID);
4911
4985
 
4912
4986
  /**
4913
- * create new object
4987
+ * create new id with prefix
4988
+ *
4989
+ * @param {string} prefix
4914
4990
  */
4915
4991
  function ID(prefix) {
4916
4992
  var _this;
@@ -5012,7 +5088,7 @@ var ATTRIBUTEPREFIX = "data-monster-";
5012
5088
  *
5013
5089
  * ```
5014
5090
  * <script type="module">
5015
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/dom/assembler.js';
5091
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
5016
5092
  * console.log(new Monster.DOM.Assembler())
5017
5093
  * </script>
5018
5094
  * ```
@@ -5021,7 +5097,7 @@ var ATTRIBUTEPREFIX = "data-monster-";
5021
5097
  *
5022
5098
  * ```
5023
5099
  * <script type="module">
5024
- * import {Assembler} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/dom/assembler.js';
5100
+ * import {Assembler} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/dom/assembler.js';
5025
5101
  * console.log(new Assembler())
5026
5102
  * </script>
5027
5103
  * ```
@@ -5162,7 +5238,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
5162
5238
  *
5163
5239
  * ```
5164
5240
  * <script type="module">
5165
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/types/proxyobserver.js';
5241
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
5166
5242
  * new Monster.Types.ProxyObserver()
5167
5243
  * </script>
5168
5244
  * ```
@@ -5171,7 +5247,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
5171
5247
  *
5172
5248
  * ```
5173
5249
  * <script type="module">
5174
- * import {ProxyObserver} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/types/proxyobserver.js';
5250
+ * import {ProxyObserver} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/types/proxyobserver.js';
5175
5251
  * new ProxyObserver()
5176
5252
  * </script>
5177
5253
  * ```
@@ -5182,9 +5258,9 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
5182
5258
  *
5183
5259
  * @example
5184
5260
  *
5185
- * import {ProxyObserver} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/types/proxyobserver.js';
5186
- * import {Observer} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/types/observer.js';
5187
- * import {isObject} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/types/is.js';
5261
+ * import {ProxyObserver} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/types/proxyobserver.js';
5262
+ * import {Observer} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/types/observer.js';
5263
+ * import {isObject} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/types/is.js';
5188
5264
  *
5189
5265
  * const o = new Observer(function () {
5190
5266
  * if (isObject(this) && this instanceof ProxyObserver) {
@@ -5510,7 +5586,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
5510
5586
  *
5511
5587
  * ```
5512
5588
  * <script type="module">
5513
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/types/observer.js';
5589
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
5514
5590
  * console.log(new Monster.Types.Observer())
5515
5591
  * </script>
5516
5592
  * ```
@@ -5519,7 +5595,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
5519
5595
  *
5520
5596
  * ```
5521
5597
  * <script type="module">
5522
- * import {Observer} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/types/observer.js';
5598
+ * import {Observer} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/types/observer.js';
5523
5599
  * console.log(new Observer())
5524
5600
  * </script>
5525
5601
  * ```
@@ -5553,7 +5629,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
5553
5629
  *
5554
5630
  * @example
5555
5631
  *
5556
- * import {Observer} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/types/observer.js';
5632
+ * import {Observer} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/types/observer.js';
5557
5633
  *
5558
5634
  * const observer = new Observer(function(a, b, c) {
5559
5635
  * console.log(this, a, b, c); // ↦ "a", 2, true
@@ -5753,7 +5829,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
5753
5829
  *
5754
5830
  * ```
5755
5831
  * <script type="module">
5756
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/types/tokenlist.js';
5832
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
5757
5833
  * new Monster.Types.TokenList("myclass row")
5758
5834
  * </script>
5759
5835
  * ```
@@ -5762,7 +5838,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
5762
5838
  *
5763
5839
  * ```
5764
5840
  * <script type="module">
5765
- * import {TokenList} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/types/tokenlist.js';
5841
+ * import {TokenList} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/types/tokenlist.js';
5766
5842
  * new TokenList("myclass row")
5767
5843
  * </script>
5768
5844
  * ```
@@ -6185,7 +6261,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
6185
6261
  *
6186
6262
  * ```
6187
6263
  * <script type="module">
6188
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/types/uniquequeue.js';
6264
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
6189
6265
  * new Monster.Types.UniqueQueue()
6190
6266
  * </script>
6191
6267
  * ```
@@ -6194,7 +6270,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
6194
6270
  *
6195
6271
  * ```
6196
6272
  * <script type="module">
6197
- * import {UniqueQueue} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/types/uniquequeue.js';
6273
+ * import {UniqueQueue} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/types/uniquequeue.js';
6198
6274
  * new UniqueQueue()
6199
6275
  * </script>
6200
6276
  * ```
@@ -6325,11 +6401,11 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
6325
6401
 
6326
6402
 
6327
6403
  /**
6328
- * You can call the method via the monster namespace `new Monster.Types.Queue()`.
6404
+ * You can create the instance via the monster namespace `new Monster.Types.Queue()`.
6329
6405
  *
6330
6406
  * ```
6331
6407
  * <script type="module">
6332
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/types/queue.js';
6408
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
6333
6409
  * new Monster.Types.Queue()
6334
6410
  * </script>
6335
6411
  * ```
@@ -6338,14 +6414,14 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
6338
6414
  *
6339
6415
  * ```
6340
6416
  * <script type="module">
6341
- * import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/types/queue.js';
6417
+ * import {Queue} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/types/queue.js';
6342
6418
  * new Queue()
6343
6419
  * </script>
6344
6420
  * ```
6345
6421
  *
6346
6422
  * @example
6347
6423
  *
6348
- * import {Queue} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/types/queue.js';
6424
+ * import {Queue} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/types/queue.js';
6349
6425
  *
6350
6426
  * const queue = new Queue;
6351
6427
  *
@@ -6514,7 +6590,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
6514
6590
  *
6515
6591
  * ```
6516
6592
  * <script type="module">
6517
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/types/observerlist.js';
6593
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
6518
6594
  * console.log(new Monster.Types.ObserverList())
6519
6595
  * console.log(new Monster.Types.ObserverList())
6520
6596
  * </script>
@@ -6524,7 +6600,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
6524
6600
  *
6525
6601
  * ```
6526
6602
  * <script type="module">
6527
- * import {ObserverList} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/types/observerlist.js';
6603
+ * import {ObserverList} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/types/observerlist.js';
6528
6604
  * console.log(ObserverList())
6529
6605
  * console.log(ObserverList())
6530
6606
  * </script>
@@ -6656,7 +6732,8 @@ __webpack_require__.r(__webpack_exports__);
6656
6732
  /* harmony export */ "addAttributeToken": function() { return /* binding */ addAttributeToken; },
6657
6733
  /* harmony export */ "toggleAttributeToken": function() { return /* binding */ toggleAttributeToken; },
6658
6734
  /* harmony export */ "getLinkedObjects": function() { return /* binding */ getLinkedObjects; },
6659
- /* harmony export */ "findClosestObjectLink": function() { return /* binding */ findClosestObjectLink; }
6735
+ /* harmony export */ "findClosestObjectLink": function() { return /* binding */ findClosestObjectLink; },
6736
+ /* harmony export */ "findClosestByClass": function() { return /* binding */ findClosestByClass; }
6660
6737
  /* harmony export */ });
6661
6738
  /* harmony import */ var _namespace_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);
6662
6739
  /* harmony import */ var _types_global_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(16);
@@ -6683,7 +6760,7 @@ __webpack_require__.r(__webpack_exports__);
6683
6760
  *
6684
6761
  * ```
6685
6762
  * <script type="module">
6686
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/dom/updater.js';
6763
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
6687
6764
  * console.log(Monster.DOM.findClosestObjectLink())
6688
6765
  * </script>
6689
6766
  * ```
@@ -6692,7 +6769,7 @@ __webpack_require__.r(__webpack_exports__);
6692
6769
  *
6693
6770
  * ```
6694
6771
  * <script type="module">
6695
- * import {getUpdaterFromNode} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/dom/updater.js';
6772
+ * import {getUpdaterFromNode} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/dom/updater.js';
6696
6773
  * console.log(findClosestObjectLink())
6697
6774
  * </script>
6698
6775
  * ```
@@ -6713,7 +6790,7 @@ function findClosestObjectLink(element) {
6713
6790
  *
6714
6791
  * ```
6715
6792
  * <script type="module">
6716
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/dom/attributes.js';
6793
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
6717
6794
  * Monster.DOM.addToObjectLink();
6718
6795
  * </script>
6719
6796
  * ```
@@ -6722,7 +6799,7 @@ function findClosestObjectLink(element) {
6722
6799
  *
6723
6800
  * ```
6724
6801
  * <script type="module">
6725
- * import {addToObjectLink} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/dom/attributes.js';
6802
+ * import {addToObjectLink} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/dom/attributes.js';
6726
6803
  * addToObjectLink();
6727
6804
  * </script>
6728
6805
  * ```
@@ -6754,7 +6831,7 @@ function addToObjectLink(element, symbol, object) {
6754
6831
  *
6755
6832
  * ```
6756
6833
  * <script type="module">
6757
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/dom/attributes.js';
6834
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
6758
6835
  * Monster.DOM.removeObjectLink();
6759
6836
  * </script>
6760
6837
  * ```
@@ -6763,7 +6840,7 @@ function addToObjectLink(element, symbol, object) {
6763
6840
  *
6764
6841
  * ```
6765
6842
  * <script type="module">
6766
- * import {removeObjectLink} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/dom/attributes.js';
6843
+ * import {removeObjectLink} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/dom/attributes.js';
6767
6844
  * removeObjectLink();
6768
6845
  * </script>
6769
6846
  * ```
@@ -6794,7 +6871,7 @@ function removeObjectLink(element, symbol) {
6794
6871
  *
6795
6872
  * ```
6796
6873
  * <script type="module">
6797
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/dom/attributes.js';
6874
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
6798
6875
  * Monster.DOM.hasObjectLink();
6799
6876
  * </script>
6800
6877
  * ```
@@ -6803,7 +6880,7 @@ function removeObjectLink(element, symbol) {
6803
6880
  *
6804
6881
  * ```
6805
6882
  * <script type="module">
6806
- * import {hasObjectLink} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/dom/attributes.js';
6883
+ * import {hasObjectLink} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/dom/attributes.js';
6807
6884
  * hasObjectLink();
6808
6885
  * </script>
6809
6886
  * ```
@@ -6839,7 +6916,7 @@ function hasObjectLink(element, symbol) {
6839
6916
  *
6840
6917
  * ```
6841
6918
  * <script type="module">
6842
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/dom/attributes.js';
6919
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
6843
6920
  * Monster.DOM.getLinkedObjects();
6844
6921
  * </script>
6845
6922
  * ```
@@ -6848,7 +6925,7 @@ function hasObjectLink(element, symbol) {
6848
6925
  *
6849
6926
  * ```
6850
6927
  * <script type="module">
6851
- * import {getLinkedObjects} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/dom/attributes.js';
6928
+ * import {getLinkedObjects} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/dom/attributes.js';
6852
6929
  * getLinkedObjects();
6853
6930
  * </script>
6854
6931
  * ```
@@ -6882,7 +6959,7 @@ function getLinkedObjects(element, symbol) {
6882
6959
  *
6883
6960
  * ```
6884
6961
  * <script type="module">
6885
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/dom/attributes.js';
6962
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
6886
6963
  * Monster.DOM.toggleAttributeToken();
6887
6964
  * </script>
6888
6965
  * ```
@@ -6891,7 +6968,7 @@ function getLinkedObjects(element, symbol) {
6891
6968
  *
6892
6969
  * ```
6893
6970
  * <script type="module">
6894
- * import {toggleAttributeToken} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/dom/attributes.js';
6971
+ * import {toggleAttributeToken} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/dom/attributes.js';
6895
6972
  * toggleAttributeToken();
6896
6973
  * </script>
6897
6974
  * ```
@@ -6926,7 +7003,7 @@ function toggleAttributeToken(element, key, token) {
6926
7003
  *
6927
7004
  * ```
6928
7005
  * <script type="module">
6929
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/dom/attributes.js';
7006
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
6930
7007
  * Monster.DOM.addAttributeToken();
6931
7008
  * </script>
6932
7009
  * ```
@@ -6935,7 +7012,7 @@ function toggleAttributeToken(element, key, token) {
6935
7012
  *
6936
7013
  * ```
6937
7014
  * <script type="module">
6938
- * import {addAttributeToken} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/dom/attributes.js';
7015
+ * import {addAttributeToken} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/dom/attributes.js';
6939
7016
  * addAttributeToken();
6940
7017
  * </script>
6941
7018
  * ```
@@ -6972,7 +7049,7 @@ function addAttributeToken(element, key, token) {
6972
7049
  *
6973
7050
  * ```
6974
7051
  * <script type="module">
6975
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/dom/attributes.js';
7052
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
6976
7053
  * Monster.DOM.removeAttributeToken();
6977
7054
  * </script>
6978
7055
  * ```
@@ -6981,7 +7058,7 @@ function addAttributeToken(element, key, token) {
6981
7058
  *
6982
7059
  * ```
6983
7060
  * <script type="module">
6984
- * import {removeAttributeToken} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/dom/attributes.js';
7061
+ * import {removeAttributeToken} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/dom/attributes.js';
6985
7062
  * removeAttributeToken();
6986
7063
  * </script>
6987
7064
  * ```
@@ -7017,7 +7094,7 @@ function removeAttributeToken(element, key, token) {
7017
7094
  *
7018
7095
  * ```
7019
7096
  * <script type="module">
7020
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/dom/attributes.js';
7097
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
7021
7098
  * Monster.DOM.containsAttributeToken();
7022
7099
  * </script>
7023
7100
  * ```
@@ -7026,7 +7103,7 @@ function removeAttributeToken(element, key, token) {
7026
7103
  *
7027
7104
  * ```
7028
7105
  * <script type="module">
7029
- * import {containsAttributeToken} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/dom/attributes.js';
7106
+ * import {containsAttributeToken} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/dom/attributes.js';
7030
7107
  * containsAttributeToken();
7031
7108
  * </script>
7032
7109
  * ```
@@ -7059,7 +7136,7 @@ function containsAttributeToken(element, key, token) {
7059
7136
  *
7060
7137
  * ```
7061
7138
  * <script type="module">
7062
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/dom/attributes.js';
7139
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
7063
7140
  * Monster.DOM.replaceAttributeToken();
7064
7141
  * </script>
7065
7142
  * ```
@@ -7068,7 +7145,7 @@ function containsAttributeToken(element, key, token) {
7068
7145
  *
7069
7146
  * ```
7070
7147
  * <script type="module">
7071
- * import {replaceAttributeToken} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/dom/attributes.js';
7148
+ * import {replaceAttributeToken} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/dom/attributes.js';
7072
7149
  * replaceAttributeToken();
7073
7150
  * </script>
7074
7151
  * ```
@@ -7104,7 +7181,7 @@ function replaceAttributeToken(element, key, from, to) {
7104
7181
  *
7105
7182
  * ```
7106
7183
  * <script type="module">
7107
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/dom/attributes.js';
7184
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
7108
7185
  * Monster.DOM.clearAttributeTokens();
7109
7186
  * </script>
7110
7187
  * ```
@@ -7113,7 +7190,7 @@ function replaceAttributeToken(element, key, from, to) {
7113
7190
  *
7114
7191
  * ```
7115
7192
  * <script type="module">
7116
- * import {clearAttributeTokens} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/dom/attributes.js';
7193
+ * import {clearAttributeTokens} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/dom/attributes.js';
7117
7194
  * clearAttributeTokens();
7118
7195
  * </script>
7119
7196
  * ```
@@ -7139,11 +7216,29 @@ function clearAttributeTokens(element, key) {
7139
7216
  return element;
7140
7217
  }
7141
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
+ *
7142
7237
  * You can call the method via the monster namespace `new Monster.DOM.findClosestByAttribute()`.
7143
7238
  *
7144
7239
  * ```
7145
7240
  * <script type="module">
7146
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/dom/attributes.js';
7241
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
7147
7242
  * Monster.DOM.findClosestByAttribute();
7148
7243
  * </script>
7149
7244
  * ```
@@ -7152,7 +7247,7 @@ function clearAttributeTokens(element, key) {
7152
7247
  *
7153
7248
  * ```
7154
7249
  * <script type="module">
7155
- * import {findClosestByAttribute} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/dom/attributes.js';
7250
+ * import {findClosestByAttribute} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/dom/attributes.js';
7156
7251
  * findClosestByAttribute();
7157
7252
  * </script>
7158
7253
  * ```
@@ -7164,14 +7259,21 @@ function clearAttributeTokens(element, key) {
7164
7259
  * @param {string} key
7165
7260
  * @param {string|undefined} value
7166
7261
  * @return {HTMLElement|undefined}
7262
+ * @summary find closest node
7167
7263
  */
7168
7264
 
7169
7265
 
7170
7266
  function findClosestByAttribute(element, key, value) {
7171
7267
  (0,_types_validate_js__WEBPACK_IMPORTED_MODULE_3__.validateInstance)(element, (0,_types_global_js__WEBPACK_IMPORTED_MODULE_1__.getGlobalFunction)('HTMLElement'));
7172
7268
 
7173
- if (element.hasAttribute(key) && element.getAttribute(key) === value) {
7174
- 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
+ }
7175
7277
  }
7176
7278
 
7177
7279
  var selector = (0,_types_validate_js__WEBPACK_IMPORTED_MODULE_3__.validateString)(key);
@@ -7182,11 +7284,71 @@ function findClosestByAttribute(element, key, value) {
7182
7284
  return result;
7183
7285
  }
7184
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.0/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.0/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
+
7185
7347
  return undefined;
7186
7348
  } // exports
7187
7349
 
7188
7350
 
7189
- (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);
7190
7352
 
7191
7353
 
7192
7354
  /***/ }),
@@ -7244,7 +7406,9 @@ __webpack_require__.r(__webpack_exports__);
7244
7406
  /* harmony export */ "ATTRIBUTE_DISABLED": function() { return /* binding */ ATTRIBUTE_DISABLED; },
7245
7407
  /* harmony export */ "ATTRIBUTE_ERRORMESSAGE": function() { return /* binding */ ATTRIBUTE_ERRORMESSAGE; },
7246
7408
  /* harmony export */ "ATTRIBUTE_VALUE": function() { return /* binding */ ATTRIBUTE_VALUE; },
7247
- /* 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; }
7248
7412
  /* harmony export */ });
7249
7413
  /* harmony import */ var _namespace_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);
7250
7414
 
@@ -7297,6 +7461,13 @@ var ATTRIBUTE_THEME_NAME = ATTRIBUTE_THEME_PREFIX + 'name';
7297
7461
  */
7298
7462
 
7299
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';
7300
7471
  /**
7301
7472
  * @memberOf Monster.DOM
7302
7473
  * @type {string}
@@ -7332,6 +7503,13 @@ var ATTRIBUTE_UPDATER_REMOVE = ATTRIBUTE_PREFIX + 'remove';
7332
7503
  */
7333
7504
 
7334
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';
7335
7513
  /**
7336
7514
  * @memberOf Monster.DOM
7337
7515
  * @type {string}
@@ -7670,7 +7848,7 @@ var attachedInternalSymbol = Symbol('attachedInternal');
7670
7848
  *
7671
7849
  * ```
7672
7850
  * <script type="module">
7673
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/dom/customcontrol.js';
7851
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
7674
7852
  * document.createElement('monster-')
7675
7853
  * </script>
7676
7854
  * ```
@@ -8205,7 +8383,7 @@ var attributeObserverSymbol = Symbol('attributeObserver');
8205
8383
  *
8206
8384
  * ```
8207
8385
  * <script type="module">
8208
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/dom/customelement.js';
8386
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
8209
8387
  * document.createElement('monster-')
8210
8388
  * </script>
8211
8389
  * ```
@@ -9071,7 +9249,7 @@ var internal = Symbol('internal');
9071
9249
  *
9072
9250
  * ```
9073
9251
  * <script type="module">
9074
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/types/dataurl.js';
9252
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
9075
9253
  * new Monster.Types.DataUrl()
9076
9254
  * </script>
9077
9255
  * ```
@@ -9080,7 +9258,7 @@ var internal = Symbol('internal');
9080
9258
  *
9081
9259
  * ```
9082
9260
  * <script type="module">
9083
- * import {DataUrl} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/types/dataurl.js';
9261
+ * import {DataUrl} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/types/dataurl.js';
9084
9262
  * new DataUrl()
9085
9263
  * </script>
9086
9264
  * ```
@@ -9160,7 +9338,7 @@ var DataUrl = /*#__PURE__*/function (_Base) {
9160
9338
  *
9161
9339
  * ```
9162
9340
  * <script type="module">
9163
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/types/dataurl.js';
9341
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
9164
9342
  * console.log(Monster.Types.parseDataURL())
9165
9343
  * </script>
9166
9344
  * ```
@@ -9169,7 +9347,7 @@ var DataUrl = /*#__PURE__*/function (_Base) {
9169
9347
  *
9170
9348
  * ```
9171
9349
  * <script type="module">
9172
- * import {parseDataURL} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/types/dataurl.js';
9350
+ * import {parseDataURL} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/types/dataurl.js';
9173
9351
  * console.log(parseDataURL())
9174
9352
  * </script>
9175
9353
  * ```
@@ -9307,7 +9485,7 @@ var internal = Symbol('internal');
9307
9485
  *
9308
9486
  * ```
9309
9487
  * <script type="module">
9310
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/types/mediatype.js';
9488
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
9311
9489
  * console.log(new Monster.Types.MediaType())
9312
9490
  * </script>
9313
9491
  * ```
@@ -9316,7 +9494,7 @@ var internal = Symbol('internal');
9316
9494
  *
9317
9495
  * ```
9318
9496
  * <script type="module">
9319
- * import {MediaType} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/types/mediatype.js';
9497
+ * import {MediaType} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/types/mediatype.js';
9320
9498
  * console.log(new MediaType())
9321
9499
  * </script>
9322
9500
  * ```
@@ -9434,7 +9612,7 @@ var MediaType = /*#__PURE__*/function (_Base) {
9434
9612
  *
9435
9613
  * ```
9436
9614
  * <script type="module">
9437
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/types/dataurl.js';
9615
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
9438
9616
  * console.log(Monster.Types.parseMediaType())
9439
9617
  * </script>
9440
9618
  * ```
@@ -9443,7 +9621,7 @@ var MediaType = /*#__PURE__*/function (_Base) {
9443
9621
  *
9444
9622
  * ```
9445
9623
  * <script type="module">
9446
- * import {parseMediaType} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/types/dataurl.js';
9624
+ * import {parseMediaType} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/types/dataurl.js';
9447
9625
  * console.log(parseMediaType())
9448
9626
  * </script>
9449
9627
  * ```
@@ -9542,7 +9720,8 @@ __webpack_require__.r(__webpack_exports__);
9542
9720
  /* harmony import */ var _types_base_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(4);
9543
9721
  /* harmony import */ var _types_global_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(16);
9544
9722
  /* harmony import */ var _types_validate_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(14);
9545
- /* 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);
9546
9725
 
9547
9726
  /**
9548
9727
  * @author schukai GmbH
@@ -9575,12 +9754,13 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
9575
9754
 
9576
9755
 
9577
9756
 
9757
+
9578
9758
  /**
9579
9759
  * you can call the method via the monster namespace `new Monster.DOM.Template()`.
9580
9760
  *
9581
9761
  * ```
9582
9762
  * <script type="module">
9583
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/dom/template.js';
9763
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
9584
9764
  * new Monster.DOM.Template()
9585
9765
  * </script>
9586
9766
  * ```
@@ -9589,7 +9769,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
9589
9769
  *
9590
9770
  * ```
9591
9771
  * <script type="module">
9592
- * import {Template} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/dom/template.js';
9772
+ * import {Template} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/dom/template.js';
9593
9773
  * new Template()
9594
9774
  * </script>
9595
9775
  * ```
@@ -9660,14 +9840,14 @@ var Template = /*#__PURE__*/function (_Base) {
9660
9840
  *
9661
9841
  * If no theme was specified, the default theme is `monster`.
9662
9842
  *
9663
- * 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.
9664
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.
9665
- *
9845
+ *
9666
9846
  * You can call the method via the monster namespace `Monster.DOM.findDocumentTemplate()`.
9667
9847
  *
9668
9848
  * ```
9669
9849
  * <script type="module">
9670
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/dom/template.js';
9850
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
9671
9851
  * Monster.DOM.findDocumentTemplate()
9672
9852
  * </script>
9673
9853
  * ```
@@ -9676,14 +9856,14 @@ var Template = /*#__PURE__*/function (_Base) {
9676
9856
  *
9677
9857
  * ```
9678
9858
  * <script type="module">
9679
- * import {findTemplate} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/dom/template.js';
9859
+ * import {findTemplate} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/dom/template.js';
9680
9860
  * findDocumentTemplate()
9681
9861
  * </script>
9682
9862
  * ```
9683
9863
  *
9684
9864
  * @example
9685
9865
  *
9686
- * import { findDocumentTemplate } from "https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/dom/template.js";
9866
+ * import { findDocumentTemplate } from "https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/dom/template.js";
9687
9867
  *
9688
9868
  * const template = document.createElement("template");
9689
9869
  * template.id = "myTemplate";
@@ -9704,8 +9884,8 @@ var Template = /*#__PURE__*/function (_Base) {
9704
9884
  * document
9705
9885
  * .querySelector("html")
9706
9886
  * .setAttribute("data-monster-theme-name", "myTheme");
9707
- *
9708
- * // now we don't get the default template,
9887
+ *
9888
+ * // now we don't get the default template,
9709
9889
  * // but the template with the theme in the id
9710
9890
  * const template2 = findDocumentTemplate("myTemplate");
9711
9891
  * console.log(template2.createDocumentFragment());
@@ -9724,9 +9904,18 @@ var Template = /*#__PURE__*/function (_Base) {
9724
9904
 
9725
9905
  function findDocumentTemplate(id, currentNode) {
9726
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;
9727
9912
 
9728
9913
  if (!(currentNode instanceof Document || currentNode instanceof DocumentFragment)) {
9729
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
+
9730
9919
  currentNode = currentNode.getRootNode();
9731
9920
 
9732
9921
  if (!(currentNode instanceof Document || currentNode instanceof DocumentFragment)) {
@@ -9735,27 +9924,57 @@ function findDocumentTemplate(id, currentNode) {
9735
9924
  }
9736
9925
 
9737
9926
  if (!(currentNode instanceof Document || currentNode instanceof DocumentFragment)) {
9738
- currentNode = (0,_types_global_js__WEBPACK_IMPORTED_MODULE_2__.getGlobalObject)('document');
9927
+ currentNode = document;
9739
9928
  }
9740
9929
  }
9741
9930
 
9742
- var HTMLTemplateElement = (0,_types_global_js__WEBPACK_IMPORTED_MODULE_2__.getGlobalFunction)('HTMLTemplateElement');
9743
- var theme = (0,_theme_js__WEBPACK_IMPORTED_MODULE_4__.getDocumentTheme)();
9744
- var themedID = id + '-' + theme.getName();
9745
- 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);
9746
9954
 
9747
9955
  if (template instanceof HTMLTemplateElement) {
9748
9956
  return new Template(template);
9749
- }
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
+
9750
9966
 
9751
9967
  template = currentNode.getElementById(id);
9752
9968
 
9753
9969
  if (template instanceof HTMLTemplateElement) {
9754
9970
  return new Template(template);
9755
- }
9971
+ } // document + ID
9972
+
9973
+
9974
+ template = document.getElementById(id);
9756
9975
 
9757
- if (currentNode !== (0,_types_global_js__WEBPACK_IMPORTED_MODULE_2__.getGlobalObject)('document')) {
9758
- return findDocumentTemplate(id);
9976
+ if (template instanceof HTMLTemplateElement) {
9977
+ return new Template(template);
9759
9978
  }
9760
9979
 
9761
9980
  throw new Error("template " + id + " not found.");
@@ -9816,7 +10035,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
9816
10035
  *
9817
10036
  * ```
9818
10037
  * <script type="module">
9819
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/dom/theme.js';
10038
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
9820
10039
  * console.log(new Monster.DOM.Theme())
9821
10040
  * </script>
9822
10041
  * ```
@@ -9825,14 +10044,14 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
9825
10044
  *
9826
10045
  * ```
9827
10046
  * <script type="module">
9828
- * import {Theme} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/dom/theme.js';
10047
+ * import {Theme} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/dom/theme.js';
9829
10048
  * console.log(new Theme())
9830
10049
  * </script>
9831
10050
  * ```
9832
10051
  *
9833
10052
  * @example
9834
10053
  *
9835
- * import {getDocumentTheme} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/dom/theme.js';
10054
+ * import {getDocumentTheme} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/dom/theme.js';
9836
10055
  *
9837
10056
  * const theme = getDocumentTheme();
9838
10057
  * console.log(theme.getName());
@@ -9922,23 +10141,25 @@ function getDocumentTheme() {
9922
10141
 
9923
10142
  __webpack_require__.r(__webpack_exports__);
9924
10143
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
9925
- /* 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; },
9926
10145
  /* harmony export */ "Updater": function() { return /* binding */ Updater; }
9927
10146
  /* harmony export */ });
9928
- /* harmony import */ var _data_diff_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20);
9929
- /* harmony import */ var _data_pathfinder_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(18);
9930
- /* harmony import */ var _data_pipe_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(22);
9931
- /* harmony import */ var _dom_constants_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(33);
9932
- /* harmony import */ var _namespace_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(2);
9933
- /* harmony import */ var _types_base_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(4);
9934
- /* harmony import */ var _types_is_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(9);
9935
- /* harmony import */ var _types_observer_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(27);
9936
- /* harmony import */ var _types_proxyobserver_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(26);
9937
- /* harmony import */ var _types_validate_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(14);
9938
- /* harmony import */ var _util_clone_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(15);
9939
- /* harmony import */ var _util_trimspaces_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(41);
9940
- /* harmony import */ var _template_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(38);
9941
- /* 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);
9942
10163
 
9943
10164
  /**
9944
10165
  * @author schukai GmbH
@@ -10002,17 +10223,22 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
10002
10223
 
10003
10224
 
10004
10225
 
10226
+
10227
+
10005
10228
  /**
10006
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.
10007
10230
  *
10008
10231
  * For example, to include a string from an object, the attribute `data-monster-replace` can be used.
10009
10232
  * a further explanation can be found under {@tutorial dom-based-templating-implementation}.
10010
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
+ *
10011
10237
  * You can create an object of this class using the monster namespace `new Monster.DOM.Updater()`.
10012
10238
  *
10013
10239
  * ```
10014
10240
  * <script type="module">
10015
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/dom/updater.js';
10241
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
10016
10242
  * new Monster.DOM.Updater()
10017
10243
  * </script>
10018
10244
  * ```
@@ -10021,14 +10247,14 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
10021
10247
  *
10022
10248
  * ```
10023
10249
  * <script type="module">
10024
- * import {Updater} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/dom/updater.js';
10250
+ * import {Updater} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/dom/updater.js';
10025
10251
  * new Updater()
10026
10252
  * </script>
10027
10253
  * ```
10028
10254
  *
10029
10255
  * @example
10030
10256
  *
10031
- * import {Updater} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/dom/updater.js';
10257
+ * import {Updater} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/dom/updater.js';
10032
10258
  *
10033
10259
  * // First we prepare the html document.
10034
10260
  * // This is done here via script, but can also be inserted into the document as pure html.
@@ -10042,7 +10268,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
10042
10268
  * let obj = {
10043
10269
  * headline: "Hello World",
10044
10270
  * };
10045
- *
10271
+ *
10046
10272
  * // Now comes the real magic. we pass the updater the parent HTMLElement
10047
10273
  * // and the desired data structure.
10048
10274
  * const updater = new Updater(body, obj);
@@ -10087,28 +10313,27 @@ var Updater = /*#__PURE__*/function (_Base) {
10087
10313
  * @type {HTMLElement}
10088
10314
  */
10089
10315
 
10090
- _this.element = (0,_types_validate_js__WEBPACK_IMPORTED_MODULE_9__.validateInstance)(element, HTMLElement);
10091
10316
  if (subject === undefined) subject = {};
10092
- var a = subject;
10093
10317
 
10094
- if (!(0,_types_is_js__WEBPACK_IMPORTED_MODULE_6__.isInstance)(subject, _types_proxyobserver_js__WEBPACK_IMPORTED_MODULE_8__.ProxyObserver)) {
10095
- 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);
10096
10320
  }
10097
10321
 
10098
- _this.last = {};
10099
- _this.callbacks = new Map();
10100
-
10101
- _this.callbacks.set('checkstate', getCheckStateCallback.call(_assertThisInitialized(_this)));
10102
- /**
10103
- * @type {object}
10104
- */
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
+ };
10105
10329
 
10330
+ _this[_constants_js__WEBPACK_IMPORTED_MODULE_0__.internalSymbol].callbacks.set('checkstate', getCheckStateCallback.call(_assertThisInitialized(_this)));
10106
10331
 
10107
- _this.subject = subject.attachObserver(new _types_observer_js__WEBPACK_IMPORTED_MODULE_7__.Observer(function () {
10108
- 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();
10109
10334
 
10110
- var diffResult = (0,_data_diff_js__WEBPACK_IMPORTED_MODULE_0__.diff)(_this.last, s);
10111
- _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);
10112
10337
 
10113
10338
  for (var _i = 0, _Object$entries = Object.entries(diffResult); _i < _Object$entries.length; _i++) {
10114
10339
  var _Object$entries$_i = _slicedToArray(_Object$entries[_i], 2),
@@ -10120,7 +10345,7 @@ var Updater = /*#__PURE__*/function (_Base) {
10120
10345
  updateAttributes.call(_assertThisInitialized(_this), change);
10121
10346
  }
10122
10347
  }));
10123
- _this.eventTypes = ['keyup', 'click', 'change', 'drop', 'touchend', 'input'];
10348
+
10124
10349
  return _this;
10125
10350
  }
10126
10351
  /**
@@ -10136,7 +10361,7 @@ var Updater = /*#__PURE__*/function (_Base) {
10136
10361
  _createClass(Updater, [{
10137
10362
  key: "setEventTypes",
10138
10363
  value: function setEventTypes(types) {
10139
- 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);
10140
10365
  return this;
10141
10366
  }
10142
10367
  /**
@@ -10150,6 +10375,7 @@ var Updater = /*#__PURE__*/function (_Base) {
10150
10375
  *
10151
10376
  * @since 1.9.0
10152
10377
  * @return {Updater}
10378
+ * @throws {Error} the bind argument must start as a value with a path
10153
10379
  */
10154
10380
 
10155
10381
  }, {
@@ -10157,13 +10383,17 @@ var Updater = /*#__PURE__*/function (_Base) {
10157
10383
  value: function enableEventProcessing() {
10158
10384
  this.disableEventProcessing();
10159
10385
 
10160
- var _iterator = _createForOfIteratorHelper(this.eventTypes),
10386
+ var _iterator = _createForOfIteratorHelper(this[_constants_js__WEBPACK_IMPORTED_MODULE_0__.internalSymbol].eventTypes),
10161
10387
  _step;
10162
10388
 
10163
10389
  try {
10164
10390
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
10165
10391
  var type = _step.value;
10166
- 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
+ });
10167
10397
  }
10168
10398
  } catch (err) {
10169
10399
  _iterator.e(err);
@@ -10183,13 +10413,13 @@ var Updater = /*#__PURE__*/function (_Base) {
10183
10413
  }, {
10184
10414
  key: "disableEventProcessing",
10185
10415
  value: function disableEventProcessing() {
10186
- var _iterator2 = _createForOfIteratorHelper(this.eventTypes),
10416
+ var _iterator2 = _createForOfIteratorHelper(this[_constants_js__WEBPACK_IMPORTED_MODULE_0__.internalSymbol].eventTypes),
10187
10417
  _step2;
10188
10418
 
10189
10419
  try {
10190
10420
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
10191
10421
  var type = _step2.value;
10192
- this.element.removeEventListener(type, getControlEventHandler.call(this));
10422
+ this[_constants_js__WEBPACK_IMPORTED_MODULE_0__.internalSymbol].element.removeEventListener(type, getControlEventHandler.call(this));
10193
10423
  }
10194
10424
  } catch (err) {
10195
10425
  _iterator2.e(err);
@@ -10218,10 +10448,23 @@ var Updater = /*#__PURE__*/function (_Base) {
10218
10448
  value: function run() {
10219
10449
  // the key __init__has no further meaning and is only
10220
10450
  // used to create the diff for empty objects.
10221
- this.last = {
10451
+ this[_constants_js__WEBPACK_IMPORTED_MODULE_0__.internalSymbol].last = {
10222
10452
  '__init__': true
10223
10453
  };
10224
- 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;
10225
10468
  }
10226
10469
  /**
10227
10470
  * If you have passed a ProxyObserver in the constructor, you will get the object that the ProxyObserver manages here.
@@ -10236,7 +10479,7 @@ var Updater = /*#__PURE__*/function (_Base) {
10236
10479
  }, {
10237
10480
  key: "getSubject",
10238
10481
  value: function getSubject() {
10239
- return this.subject.getSubject();
10482
+ return this[_constants_js__WEBPACK_IMPORTED_MODULE_0__.internalSymbol].subject.getSubject();
10240
10483
  }
10241
10484
  /**
10242
10485
  * This method can be used to register commands that can be called via call: instruction.
@@ -10252,13 +10495,13 @@ var Updater = /*#__PURE__*/function (_Base) {
10252
10495
  }, {
10253
10496
  key: "setCallback",
10254
10497
  value: function setCallback(name, callback) {
10255
- this.callbacks.set(name, callback);
10498
+ this[_constants_js__WEBPACK_IMPORTED_MODULE_0__.internalSymbol].callbacks.set(name, callback);
10256
10499
  return this;
10257
10500
  }
10258
10501
  }]);
10259
10502
 
10260
10503
  return Updater;
10261
- }(_types_base_js__WEBPACK_IMPORTED_MODULE_5__.Base);
10504
+ }(_types_base_js__WEBPACK_IMPORTED_MODULE_6__.Base);
10262
10505
  /**
10263
10506
  * @private
10264
10507
  * @since 1.9.0
@@ -10270,12 +10513,13 @@ var Updater = /*#__PURE__*/function (_Base) {
10270
10513
  function getCheckStateCallback() {
10271
10514
  var self = this;
10272
10515
  return function (current) {
10516
+ // this is a reference to the current object (therefore no array function here)
10273
10517
  if (this instanceof HTMLInputElement) {
10274
10518
  if (['radio', 'checkbox'].indexOf(this.type) !== -1) {
10275
10519
  return this.value + "" === current + "" ? 'true' : undefined;
10276
10520
  }
10277
10521
  } else if (this instanceof HTMLOptionElement) {
10278
- 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) {
10279
10523
  return 'true';
10280
10524
  }
10281
10525
 
@@ -10293,6 +10537,7 @@ var symbol = Symbol('EventHandler');
10293
10537
  * @private
10294
10538
  * @return {function}
10295
10539
  * @this Updater
10540
+ * @throws {Error} the bind argument must start as a value with a path
10296
10541
  */
10297
10542
 
10298
10543
  function getControlEventHandler() {
@@ -10301,97 +10546,112 @@ function getControlEventHandler() {
10301
10546
  if (self[symbol]) {
10302
10547
  return self[symbol];
10303
10548
  }
10304
-
10305
- var pathfinder = new _data_pathfinder_js__WEBPACK_IMPORTED_MODULE_1__.Pathfinder(this.subject.getSubject());
10306
10549
  /**
10307
10550
  * @throws {Error} the bind argument must start as a value with a path.
10308
10551
  * @throws {Error} unsupported object
10309
10552
  * @param {Event} event
10310
10553
  */
10311
10554
 
10312
- self[symbol] = function (event) {
10313
- var _element$constructor, _Object$getOwnPropert;
10314
10555
 
10315
- 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);
10316
10558
 
10317
- if (!element.hasAttribute(_dom_constants_js__WEBPACK_IMPORTED_MODULE_3__.ATTRIBUTE_UPDATER_BIND)) {
10559
+ if (element === undefined) {
10318
10560
  return;
10319
10561
  }
10320
10562
 
10321
- var path = element.getAttribute(_dom_constants_js__WEBPACK_IMPORTED_MODULE_3__.ATTRIBUTE_UPDATER_BIND);
10563
+ retrieveAndSetValue.call(self, element);
10564
+ };
10322
10565
 
10323
- if (path.indexOf('path:') !== 0) {
10324
- throw new Error('the bind argument must start as a value with a path.');
10325
- }
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
+ */
10326
10573
 
10327
- path = path.substr(5);
10328
- var value;
10329
10574
 
10330
- if (element instanceof HTMLInputElement) {
10331
- switch (element.type) {
10332
- case 'checkbox':
10333
- value = element.checked ? element.value : undefined;
10334
- break;
10575
+ function retrieveAndSetValue(element) {
10576
+ var _element$constructor, _Object$getOwnPropert;
10335
10577
 
10336
- default:
10337
- value = element.value;
10338
- break;
10339
- }
10340
- } else if (element instanceof HTMLTextAreaElement) {
10341
- value = element.value;
10342
- } else if (element instanceof HTMLSelectElement) {
10343
- switch (element.type) {
10344
- case 'select-one':
10345
- value = element.value;
10346
- break;
10347
-
10348
- case 'select-multiple':
10349
- value = element.value;
10350
- var options = element === null || element === void 0 ? void 0 : element.selectedOptions;
10351
- if (options === undefined) options = element.querySelectorAll(":scope option:checked");
10352
- value = Array.from(options).map(function (_ref) {
10353
- var value = _ref.value;
10354
- return value;
10355
- });
10356
- break;
10357
- } // 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);
10358
10581
 
10359
- } 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')) {
10360
- value = element === null || element === void 0 ? void 0 : element['value'];
10361
- } else {
10362
- throw new Error("unsupported object");
10363
- }
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;
10364
10588
 
10365
- var copy = (0,_util_clone_js__WEBPACK_IMPORTED_MODULE_10__.clone)(self.subject.getRealSubject());
10366
- var pf = new _data_pathfinder_js__WEBPACK_IMPORTED_MODULE_1__.Pathfinder(copy);
10367
- pf.setVia(path, value);
10368
- 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;
10369
10594
 
10370
- if (diffResult.length > 0) {
10371
- pathfinder.setVia(path, value);
10595
+ default:
10596
+ value = element.value;
10597
+ break;
10372
10598
  }
10373
- };
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;
10374
10606
 
10375
- 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
+ }
10376
10632
  }
10377
10633
  /**
10378
- * @private
10379
- * @since 1.8.0
10380
- * @param {object} change
10381
- * @return {void}
10634
+ * @since 1.27.0
10635
+ * @return void
10382
10636
  */
10383
10637
 
10384
10638
 
10385
- function removeElement(change) {
10386
- 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()),
10387
10647
  _step3;
10388
10648
 
10389
10649
  try {
10390
10650
  for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
10391
10651
  var _step3$value = _slicedToArray(_step3.value, 2),
10392
- element = _step3$value[1];
10652
+ _element = _step3$value[1];
10393
10653
 
10394
- element.parentNode.removeChild(element);
10654
+ retrieveAndSetValue.call(self, _element);
10395
10655
  }
10396
10656
  } catch (err) {
10397
10657
  _iterator3.e(err);
@@ -10399,6 +10659,33 @@ function removeElement(change) {
10399
10659
  _iterator3.f();
10400
10660
  }
10401
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
+ }
10402
10689
  /**
10403
10690
  * @private
10404
10691
  * @since 1.8.0
@@ -10416,56 +10703,56 @@ function insertElement(change) {
10416
10703
  var _this2 = this;
10417
10704
 
10418
10705
  var self = this;
10419
- var subject = self.subject.getRealSubject();
10420
- 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)();
10421
10708
  var mem = new WeakSet();
10422
10709
  var wd = 0;
10423
10710
 
10424
10711
  while (true) {
10425
10712
  var found = false;
10426
10713
  wd++;
10427
- var p = (0,_util_clone_js__WEBPACK_IMPORTED_MODULE_10__.clone)(change === null || change === void 0 ? void 0 : change['path']);
10428
- 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;
10429
10716
 
10430
10717
  while (p.length > 0) {
10431
10718
  var current = p.join('.');
10432
- 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();
10433
10720
 
10434
- var _iterator4 = _createForOfIteratorHelper(list),
10435
- _step4;
10721
+ var _iterator5 = _createForOfIteratorHelper(list),
10722
+ _step5;
10436
10723
 
10437
10724
  try {
10438
10725
  var _loop = function _loop() {
10439
- var _step4$value = _slicedToArray(_step4.value, 2),
10440
- containerElement = _step4$value[1];
10726
+ var _step5$value = _slicedToArray(_step5.value, 2),
10727
+ containerElement = _step5$value[1];
10441
10728
 
10442
10729
  if (mem.has(containerElement)) return "continue";
10443
10730
  mem.add(containerElement);
10444
10731
  found = true;
10445
- var attributes = containerElement.getAttribute(_dom_constants_js__WEBPACK_IMPORTED_MODULE_3__.ATTRIBUTE_UPDATER_INSERT);
10446
- 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);
10447
10734
  var i = def.indexOf(' ');
10448
- 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));
10449
10736
  var refPrefix = key + '-';
10450
- 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
10451
10738
 
10452
10739
  if (cmd.indexOf('|') > 0) {
10453
10740
  throw new Error("pipes are not allowed when cloning a node.");
10454
10741
  }
10455
10742
 
10456
- 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);
10457
10744
 
10458
- _this2.callbacks.forEach(function (f, n) {
10745
+ _this2[_constants_js__WEBPACK_IMPORTED_MODULE_0__.internalSymbol].callbacks.forEach(function (f, n) {
10459
10746
  pipe.setCallback(n, f);
10460
10747
  });
10461
10748
 
10462
10749
  var value = void 0;
10463
10750
 
10464
10751
  try {
10465
- containerElement.removeAttribute(_dom_constants_js__WEBPACK_IMPORTED_MODULE_3__.ATTRIBUTE_ERRORMESSAGE);
10752
+ containerElement.removeAttribute(_dom_constants_js__WEBPACK_IMPORTED_MODULE_4__.ATTRIBUTE_ERRORMESSAGE);
10466
10753
  value = pipe.run(subject);
10467
10754
  } catch (e) {
10468
- 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);
10469
10756
  }
10470
10757
 
10471
10758
  var dataPath = cmd.split(':').pop();
@@ -10475,7 +10762,7 @@ function insertElement(change) {
10475
10762
  insertPoint = containerElement.lastChild;
10476
10763
  }
10477
10764
 
10478
- if (!(0,_types_is_js__WEBPACK_IMPORTED_MODULE_6__.isIterable)(value)) {
10765
+ if (!(0,_types_is_js__WEBPACK_IMPORTED_MODULE_7__.isIterable)(value)) {
10479
10766
  throw new Error('the value is not iterable');
10480
10767
  }
10481
10768
 
@@ -10489,7 +10776,7 @@ function insertElement(change) {
10489
10776
  var ref = refPrefix + _i3;
10490
10777
  var currentPath = dataPath + "." + _i3;
10491
10778
  available.add(ref);
10492
- 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 + '"]');
10493
10780
 
10494
10781
  if (refElement instanceof HTMLElement) {
10495
10782
  insertPoint = refElement;
@@ -10499,27 +10786,27 @@ function insertElement(change) {
10499
10786
  appendNewDocumentFragment(containerElement, key, ref, currentPath);
10500
10787
  }
10501
10788
 
10502
- 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 + '"]');
10503
10790
 
10504
10791
  for (var _i4 = 0, _Object$entries3 = Object.entries(nodes); _i4 < _Object$entries3.length; _i4++) {
10505
10792
  var _Object$entries3$_i = _slicedToArray(_Object$entries3[_i4], 2),
10506
10793
  node = _Object$entries3$_i[1];
10507
10794
 
10508
- 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))) {
10509
10796
  containerElement.removeChild(node);
10510
10797
  }
10511
10798
  }
10512
10799
  };
10513
10800
 
10514
- for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
10801
+ for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
10515
10802
  var _ret = _loop();
10516
10803
 
10517
10804
  if (_ret === "continue") continue;
10518
10805
  }
10519
10806
  } catch (err) {
10520
- _iterator4.e(err);
10807
+ _iterator5.e(err);
10521
10808
  } finally {
10522
- _iterator4.f();
10809
+ _iterator5.f();
10523
10810
  }
10524
10811
 
10525
10812
  p.pop();
@@ -10545,7 +10832,7 @@ function insertElement(change) {
10545
10832
 
10546
10833
 
10547
10834
  function appendNewDocumentFragment(container, key, ref, path) {
10548
- 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);
10549
10836
  var nodes = template.createDocumentFragment();
10550
10837
 
10551
10838
  for (var _i5 = 0, _Object$entries4 = Object.entries(nodes.childNodes); _i5 < _Object$entries4.length; _i5++) {
@@ -10554,7 +10841,7 @@ function appendNewDocumentFragment(container, key, ref, path) {
10554
10841
 
10555
10842
  if (node instanceof HTMLElement) {
10556
10843
  applyRecursive(node, key, path);
10557
- 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);
10558
10845
  }
10559
10846
 
10560
10847
  container.appendChild(node);
@@ -10572,15 +10859,15 @@ function appendNewDocumentFragment(container, key, ref, path) {
10572
10859
 
10573
10860
  function applyRecursive(node, key, path) {
10574
10861
  if (node instanceof HTMLElement) {
10575
- if (node.hasAttribute(_dom_constants_js__WEBPACK_IMPORTED_MODULE_3__.ATTRIBUTE_UPDATER_REPLACE)) {
10576
- var value = node.getAttribute(_dom_constants_js__WEBPACK_IMPORTED_MODULE_3__.ATTRIBUTE_UPDATER_REPLACE);
10577
- node.setAttribute(_dom_constants_js__WEBPACK_IMPORTED_MODULE_3__.ATTRIBUTE_UPDATER_REPLACE, value.replace("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));
10578
10865
  }
10579
10866
 
10580
- if (node.hasAttribute(_dom_constants_js__WEBPACK_IMPORTED_MODULE_3__.ATTRIBUTE_UPDATER_ATTRIBUTES)) {
10581
- 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);
10582
10869
 
10583
- node.setAttribute(_dom_constants_js__WEBPACK_IMPORTED_MODULE_3__.ATTRIBUTE_UPDATER_ATTRIBUTES, _value.replace("path:" + key, "path:" + path));
10870
+ node.setAttribute(_dom_constants_js__WEBPACK_IMPORTED_MODULE_4__.ATTRIBUTE_UPDATER_ATTRIBUTES, _value.replaceAll("path:" + key, "path:" + path));
10584
10871
  }
10585
10872
 
10586
10873
  for (var _i6 = 0, _Object$entries5 = Object.entries(node.childNodes); _i6 < _Object$entries5.length; _i6++) {
@@ -10602,10 +10889,10 @@ function applyRecursive(node, key, path) {
10602
10889
 
10603
10890
  function updateContent(change) {
10604
10891
  var self = this;
10605
- var subject = self.subject.getRealSubject();
10606
- var p = (0,_util_clone_js__WEBPACK_IMPORTED_MODULE_10__.clone)(change === null || change === void 0 ? void 0 : change['path']);
10607
- runUpdateContent.call(this, this.element, p, subject);
10608
- 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');
10609
10896
 
10610
10897
  if (slots.length > 0) {
10611
10898
  for (var _i7 = 0, _Object$entries6 = Object.entries(slots); _i7 < _Object$entries6.length; _i7++) {
@@ -10614,9 +10901,9 @@ function updateContent(change) {
10614
10901
 
10615
10902
  for (var _i8 = 0, _Object$entries7 = Object.entries(slot.assignedNodes()); _i8 < _Object$entries7.length; _i8++) {
10616
10903
  var _Object$entries7$_i = _slicedToArray(_Object$entries7[_i8], 2),
10617
- element = _Object$entries7$_i[1];
10904
+ _element3 = _Object$entries7$_i[1];
10618
10905
 
10619
- runUpdateContent.call(this, element, p, subject);
10906
+ runUpdateContent.call(this, _element3, p, subject);
10620
10907
  }
10621
10908
  }
10622
10909
  }
@@ -10634,16 +10921,16 @@ function updateContent(change) {
10634
10921
  function runUpdateContent(container, parts, subject) {
10635
10922
  var _this3 = this;
10636
10923
 
10637
- 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;
10638
10925
  if (!(container instanceof HTMLElement)) return;
10639
- parts = (0,_util_clone_js__WEBPACK_IMPORTED_MODULE_10__.clone)(parts);
10926
+ parts = (0,_util_clone_js__WEBPACK_IMPORTED_MODULE_11__.clone)(parts);
10640
10927
  var mem = new WeakSet();
10641
10928
 
10642
10929
  while (parts.length > 0) {
10643
10930
  var current = parts.join('.');
10644
10931
  parts.pop(); // Unfortunately, static data is always changed as well, since it is not possible to react to changes here.
10645
10932
 
10646
- 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:"]';
10647
10934
  var e = container.querySelectorAll('' + query);
10648
10935
  var iterator = new Set(_toConsumableArray(e));
10649
10936
 
@@ -10654,21 +10941,21 @@ function runUpdateContent(container, parts, subject) {
10654
10941
  iterator.forEach(function (key, element) {
10655
10942
  if (mem.has(element)) return;
10656
10943
  mem.add(element);
10657
- var attributes = element.getAttribute(_dom_constants_js__WEBPACK_IMPORTED_MODULE_3__.ATTRIBUTE_UPDATER_REPLACE);
10658
- var cmd = (0,_util_trimspaces_js__WEBPACK_IMPORTED_MODULE_11__.trimSpaces)(attributes);
10659
- 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);
10660
10947
 
10661
- _this3.callbacks.forEach(function (f, n) {
10948
+ _this3[_constants_js__WEBPACK_IMPORTED_MODULE_0__.internalSymbol].callbacks.forEach(function (f, n) {
10662
10949
  pipe.setCallback(n, f);
10663
10950
  });
10664
10951
 
10665
10952
  var value;
10666
10953
 
10667
10954
  try {
10668
- element.removeAttribute(_dom_constants_js__WEBPACK_IMPORTED_MODULE_3__.ATTRIBUTE_ERRORMESSAGE);
10955
+ element.removeAttribute(_dom_constants_js__WEBPACK_IMPORTED_MODULE_4__.ATTRIBUTE_ERRORMESSAGE);
10669
10956
  value = pipe.run(subject);
10670
10957
  } catch (e) {
10671
- 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);
10672
10959
  }
10673
10960
 
10674
10961
  if (value instanceof HTMLElement) {
@@ -10693,9 +10980,9 @@ function runUpdateContent(container, parts, subject) {
10693
10980
 
10694
10981
 
10695
10982
  function updateAttributes(change) {
10696
- var subject = this.subject.getRealSubject();
10697
- var p = (0,_util_clone_js__WEBPACK_IMPORTED_MODULE_10__.clone)(change === null || change === void 0 ? void 0 : change['path']);
10698
- 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);
10699
10986
  }
10700
10987
  /**
10701
10988
  * @private
@@ -10711,15 +10998,15 @@ function runUpdateAttributes(container, parts, subject) {
10711
10998
  var _this4 = this;
10712
10999
 
10713
11000
  var self = this;
10714
- if (!(0,_types_is_js__WEBPACK_IMPORTED_MODULE_6__.isArray)(parts)) return;
10715
- 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);
10716
11003
  var mem = new WeakSet();
10717
11004
 
10718
11005
  while (parts.length > 0) {
10719
11006
  var current = parts.join('.');
10720
11007
  parts.pop();
10721
11008
  var iterator = new Set();
10722
- 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:"]';
10723
11010
  var e = container.querySelectorAll(query);
10724
11011
 
10725
11012
  if (e.length > 0) {
@@ -10733,27 +11020,27 @@ function runUpdateAttributes(container, parts, subject) {
10733
11020
  iterator.forEach(function (key, element) {
10734
11021
  if (mem.has(element)) return;
10735
11022
  mem.add(element);
10736
- 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);
10737
11024
 
10738
11025
  var _loop2 = function _loop2() {
10739
11026
  var _Object$entries8$_i = _slicedToArray(_Object$entries8[_i9], 2),
10740
11027
  def = _Object$entries8$_i[1];
10741
11028
 
10742
- def = (0,_util_trimspaces_js__WEBPACK_IMPORTED_MODULE_11__.trimSpaces)(def);
11029
+ def = (0,_util_trimspaces_js__WEBPACK_IMPORTED_MODULE_12__.trimSpaces)(def);
10743
11030
  var i = def.indexOf(' ');
10744
- var name = (0,_util_trimspaces_js__WEBPACK_IMPORTED_MODULE_11__.trimSpaces)(def.substr(0, i));
10745
- var cmd = (0,_util_trimspaces_js__WEBPACK_IMPORTED_MODULE_11__.trimSpaces)(def.substr(i));
10746
- var pipe = new _data_pipe_js__WEBPACK_IMPORTED_MODULE_2__.Pipe(cmd);
10747
- 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) {
10748
11035
  pipe.setCallback(n, f, element);
10749
11036
  });
10750
11037
  var value = void 0;
10751
11038
 
10752
11039
  try {
10753
- element.removeAttribute(_dom_constants_js__WEBPACK_IMPORTED_MODULE_3__.ATTRIBUTE_ERRORMESSAGE);
11040
+ element.removeAttribute(_dom_constants_js__WEBPACK_IMPORTED_MODULE_4__.ATTRIBUTE_ERRORMESSAGE);
10754
11041
  value = pipe.run(subject);
10755
11042
  } catch (e) {
10756
- 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);
10757
11044
  }
10758
11045
 
10759
11046
  if (value === undefined) {
@@ -10819,19 +11106,23 @@ function handleInputControlAttributeUpdate(element, name, value) {
10819
11106
  } else if (element instanceof HTMLInputElement) {
10820
11107
  switch (element.type) {
10821
11108
  case 'radio':
10822
- if (name === 'checked' && value !== undefined) {
10823
- element.checked = true;
10824
- } else {
10825
- element.checked = false;
11109
+ if (name === 'checked') {
11110
+ if (value !== undefined) {
11111
+ element.checked = true;
11112
+ } else {
11113
+ element.checked = false;
11114
+ }
10826
11115
  }
10827
11116
 
10828
11117
  break;
10829
11118
 
10830
11119
  case 'checkbox':
10831
- if (name === 'checked' && value !== undefined) {
10832
- element.checked = true;
10833
- } else {
10834
- element.checked = false;
11120
+ if (name === 'checked') {
11121
+ if (value !== undefined) {
11122
+ element.checked = true;
11123
+ } else {
11124
+ element.checked = false;
11125
+ }
10835
11126
  }
10836
11127
 
10837
11128
  break;
@@ -10851,7 +11142,7 @@ function handleInputControlAttributeUpdate(element, name, value) {
10851
11142
  }
10852
11143
  }
10853
11144
 
10854
- (0,_namespace_js__WEBPACK_IMPORTED_MODULE_4__.assignToNamespace)('Monster.DOM', Updater);
11145
+ (0,_namespace_js__WEBPACK_IMPORTED_MODULE_5__.assignToNamespace)('Monster.DOM', Updater);
10855
11146
 
10856
11147
 
10857
11148
  /***/ }),
@@ -10897,7 +11188,7 @@ function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || func
10897
11188
  *
10898
11189
  * ```
10899
11190
  * <script type="module">
10900
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/util/trimspaces.js';
11191
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
10901
11192
  * Monster.Util.trimSpaces(" hello ")
10902
11193
  * </script>
10903
11194
  * ```
@@ -10906,7 +11197,7 @@ function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || func
10906
11197
  *
10907
11198
  * ```
10908
11199
  * <script type="module">
10909
- * import {trimSpaces} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/util/trimspaces.js';
11200
+ * import {trimSpaces} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/util/trimspaces.js';
10910
11201
  * trimSpaces(' hello \\ ')
10911
11202
  * </script>
10912
11203
  * ```
@@ -10983,29 +11274,179 @@ function trimSpaces(value) {
10983
11274
  __webpack_require__.r(__webpack_exports__);
10984
11275
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
10985
11276
  /* harmony export */ "Monster": function() { return /* reexport safe */ _namespace_js__WEBPACK_IMPORTED_MODULE_0__.Monster; },
10986
- /* harmony export */ "getWindow": function() { return /* binding */ getWindow; },
10987
- /* harmony export */ "getDocument": function() { return /* binding */ getDocument; },
10988
- /* harmony export */ "getDocumentFragmentFromString": function() { return /* binding */ getDocumentFragmentFromString; }
11277
+ /* harmony export */ "findTargetElementFromEvent": function() { return /* binding */ findTargetElementFromEvent; },
11278
+ /* harmony export */ "fireEvent": function() { return /* binding */ fireEvent; }
10989
11279
  /* harmony export */ });
10990
11280
  /* harmony import */ var _namespace_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);
10991
- /* harmony import */ var _types_global_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(16);
11281
+ /* harmony import */ var _types_is_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(9);
10992
11282
  /* harmony import */ var _types_validate_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(14);
11283
+ /* harmony import */ var _util_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(43);
10993
11284
 
10994
11285
  /**
10995
11286
  * @author schukai GmbH
10996
11287
  */
10997
11288
 
10998
- 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); }
11289
+ 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; } } }; }
11290
+
11291
+ 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); }
11292
+
11293
+ 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; }
11294
+
10999
11295
 
11000
11296
 
11001
11297
 
11002
11298
 
11003
11299
  /**
11004
- * this method fetches the document object
11300
+ * You can call the function via the monster namespace `new Monster.DOM.fireEvent()`.
11301
+ *
11302
+ * ```
11303
+ * <script type="module">
11304
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
11305
+ * console.log(new Monster.DOM.fireEvent())
11306
+ * </script>
11307
+ * ```
11308
+ *
11309
+ * Alternatively, you can also integrate this function individually.
11310
+ *
11311
+ * ```
11312
+ * <script type="module">
11313
+ * import {fireEvent} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/dom/events.js';
11314
+ * console.log(fireEvent())
11315
+ * </script>
11316
+ * ```
11317
+ *
11318
+ * @param {HTMLElement|HTMLCollection|NodeList} element
11319
+ * @param {string} type
11320
+ * @return {void}
11321
+ * @since 1.10.0
11322
+ * @copyright schukai GmbH
11323
+ * @memberOf Monster.DOM
11324
+ * @throws {TypeError} value is not an instance of HTMLElement or HTMLCollection
11325
+ * @summary Construct and send and event
11326
+ */
11327
+
11328
+ function fireEvent(element, type) {
11329
+ var document = (0,_util_js__WEBPACK_IMPORTED_MODULE_3__.getDocument)();
11330
+
11331
+ if (element instanceof HTMLElement) {
11332
+ if (type === 'click') {
11333
+ element.click();
11334
+ return;
11335
+ }
11336
+
11337
+ var event = new Event((0,_types_validate_js__WEBPACK_IMPORTED_MODULE_2__.validateString)(type), {
11338
+ bubbles: true,
11339
+ cancelable: true
11340
+ });
11341
+ element.dispatchEvent(event);
11342
+ } else if (element instanceof HTMLCollection || element instanceof NodeList) {
11343
+ var _iterator = _createForOfIteratorHelper(element),
11344
+ _step;
11345
+
11346
+ try {
11347
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
11348
+ var e = _step.value;
11349
+ fireEvent(e, type);
11350
+ }
11351
+ } catch (err) {
11352
+ _iterator.e(err);
11353
+ } finally {
11354
+ _iterator.f();
11355
+ }
11356
+ } else {
11357
+ throw new TypeError('value is not an instance of HTMLElement or HTMLCollection');
11358
+ }
11359
+ }
11360
+ /**
11361
+ * This function gets the path `Event.composedPath()` from an event and tries to find the next element
11362
+ * up the tree `element.closest()` with the attribute and value. If no value, or a value that is undefined or null,
11363
+ * is specified, only the attribute is searched.
11364
+ *
11365
+ * You can call the function via the monster namespace `new Monster.DOM.findTargetElementFromEvent()`.
11005
11366
  *
11006
11367
  * ```
11007
11368
  * <script type="module">
11008
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/dom/util.js';
11369
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
11370
+ * new Monster.DOM.findTargetElementFromEvent()
11371
+ * </script>
11372
+ * ```
11373
+ *
11374
+ * Alternatively, you can also integrate this function individually.
11375
+ *
11376
+ * ```
11377
+ * <script type="module">
11378
+ * import {findTargetElementFromEvent} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/dom/events.js';
11379
+ * findTargetElementFromEvent()
11380
+ * </script>
11381
+ * ```
11382
+ *
11383
+ * @since 1.14.0
11384
+ * @param {Event} event
11385
+ * @param {string} attributeName
11386
+ * @param {string|null|undefined} attributeValue
11387
+ * @throws {Error} unsupported event
11388
+ * @memberOf Monster.DOM
11389
+ * @throws {TypeError} value is not a string
11390
+ * @throws {TypeError} value is not an instance of HTMLElement
11391
+ * @summary Help function to find the appropriate control
11392
+ */
11393
+
11394
+
11395
+ function findTargetElementFromEvent(event, attributeName, attributeValue) {
11396
+ (0,_types_validate_js__WEBPACK_IMPORTED_MODULE_2__.validateInstance)(event, Event);
11397
+
11398
+ if (typeof event.composedPath !== 'function') {
11399
+ throw new Error('unsupported event');
11400
+ }
11401
+
11402
+ var path = event.composedPath(); // closest cannot be used here, because closest is not correct for slotted elements
11403
+
11404
+ if ((0,_types_is_js__WEBPACK_IMPORTED_MODULE_1__.isArray)(path)) {
11405
+ for (var i = 0; i < path.length; i++) {
11406
+ var o = path[i];
11407
+
11408
+ if (o instanceof HTMLElement && o.hasAttribute(attributeName) && (attributeValue === undefined || o.getAttribute(attributeName) === attributeValue)) {
11409
+ return o;
11410
+ }
11411
+ }
11412
+ }
11413
+
11414
+ return undefined;
11415
+ }
11416
+
11417
+ (0,_namespace_js__WEBPACK_IMPORTED_MODULE_0__.assignToNamespace)('Monster.DOM', findTargetElementFromEvent, fireEvent);
11418
+
11419
+
11420
+ /***/ }),
11421
+ /* 43 */
11422
+ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
11423
+
11424
+ __webpack_require__.r(__webpack_exports__);
11425
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
11426
+ /* harmony export */ "Monster": function() { return /* reexport safe */ _namespace_js__WEBPACK_IMPORTED_MODULE_0__.Monster; },
11427
+ /* harmony export */ "getWindow": function() { return /* binding */ getWindow; },
11428
+ /* harmony export */ "getDocument": function() { return /* binding */ getDocument; },
11429
+ /* harmony export */ "getDocumentFragmentFromString": function() { return /* binding */ getDocumentFragmentFromString; }
11430
+ /* harmony export */ });
11431
+ /* harmony import */ var _namespace_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);
11432
+ /* harmony import */ var _types_global_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(16);
11433
+ /* harmony import */ var _types_validate_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(14);
11434
+
11435
+ /**
11436
+ * @author schukai GmbH
11437
+ */
11438
+
11439
+ 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); }
11440
+
11441
+
11442
+
11443
+
11444
+ /**
11445
+ * this method fetches the document object
11446
+ *
11447
+ * ```
11448
+ * <script type="module">
11449
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
11009
11450
  * console.log(Monster.DOM.getDocument())
11010
11451
  * </script>
11011
11452
  * ```
@@ -11014,7 +11455,7 @@ function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "functi
11014
11455
  *
11015
11456
  * ```
11016
11457
  * <script type="module">
11017
- * import {getDocument} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/dom/util.js';
11458
+ * import {getDocument} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/dom/util.js';
11018
11459
  * console.log(getDocument())
11019
11460
  * </script>
11020
11461
  * ```
@@ -11069,7 +11510,7 @@ function getDocument() {
11069
11510
  *
11070
11511
  * ```
11071
11512
  * <script type="module">
11072
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/dom/util.js';
11513
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
11073
11514
  * console.log(Monster.DOM.getWindow())
11074
11515
  * </script>
11075
11516
  * ```
@@ -11078,7 +11519,7 @@ function getDocument() {
11078
11519
  *
11079
11520
  * ```
11080
11521
  * <script type="module">
11081
- * import {getWindow} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/dom/util.js';
11522
+ * import {getWindow} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/dom/util.js';
11082
11523
  * console.log(getWindow(null))
11083
11524
  * </script>
11084
11525
  * ```
@@ -11138,7 +11579,7 @@ function getWindow() {
11138
11579
  *
11139
11580
  * ```
11140
11581
  * <script type="module">
11141
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/dom/util.js';
11582
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
11142
11583
  * console.log(Monster.DOM.getDocumentFragmentFromString())
11143
11584
  * </script>
11144
11585
  * ```
@@ -11147,7 +11588,7 @@ function getWindow() {
11147
11588
  *
11148
11589
  * ```
11149
11590
  * <script type="module">
11150
- * import {getDocumentFragmentFromString} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/dom/util.js';
11591
+ * import {getDocumentFragmentFromString} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/dom/util.js';
11151
11592
  * console.log(getDocumentFragmentFromString('<div></div>'))
11152
11593
  * </script>
11153
11594
  * ```
@@ -11199,157 +11640,6 @@ function getDocumentFragmentFromString(html) {
11199
11640
  (0,_namespace_js__WEBPACK_IMPORTED_MODULE_0__.assignToNamespace)('Monster.DOM', getWindow, getDocument, getDocumentFragmentFromString);
11200
11641
 
11201
11642
 
11202
- /***/ }),
11203
- /* 43 */
11204
- /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
11205
-
11206
- __webpack_require__.r(__webpack_exports__);
11207
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
11208
- /* harmony export */ "Monster": function() { return /* reexport safe */ _namespace_js__WEBPACK_IMPORTED_MODULE_0__.Monster; },
11209
- /* harmony export */ "findTargetElementFromEvent": function() { return /* binding */ findTargetElementFromEvent; },
11210
- /* harmony export */ "fireEvent": function() { return /* binding */ fireEvent; }
11211
- /* harmony export */ });
11212
- /* harmony import */ var _namespace_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);
11213
- /* harmony import */ var _types_is_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(9);
11214
- /* harmony import */ var _types_validate_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(14);
11215
- /* harmony import */ var _util_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(42);
11216
-
11217
- /**
11218
- * @author schukai GmbH
11219
- */
11220
-
11221
- 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; } } }; }
11222
-
11223
- 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); }
11224
-
11225
- 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; }
11226
-
11227
-
11228
-
11229
-
11230
-
11231
- /**
11232
- * You can call the function via the monster namespace `new Monster.DOM.fireEvent()`.
11233
- *
11234
- * ```
11235
- * <script type="module">
11236
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/dom/events.js';
11237
- * console.log(new Monster.DOM.fireEvent())
11238
- * </script>
11239
- * ```
11240
- *
11241
- * Alternatively, you can also integrate this function individually.
11242
- *
11243
- * ```
11244
- * <script type="module">
11245
- * import {fireEvent} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/dom/events.js';
11246
- * console.log(fireEvent())
11247
- * </script>
11248
- * ```
11249
- *
11250
- * @param {HTMLElement|HTMLCollection|NodeList} element
11251
- * @param {string} type
11252
- * @return {void}
11253
- * @since 1.10.0
11254
- * @copyright schukai GmbH
11255
- * @memberOf Monster.DOM
11256
- * @throws {TypeError} value is not an instance of HTMLElement or HTMLCollection
11257
- * @summary Construct and send and event
11258
- */
11259
-
11260
- function fireEvent(element, type) {
11261
- var document = (0,_util_js__WEBPACK_IMPORTED_MODULE_3__.getDocument)();
11262
-
11263
- if (element instanceof HTMLElement) {
11264
- if (type === 'click') {
11265
- element.click();
11266
- return;
11267
- }
11268
-
11269
- var event = new Event((0,_types_validate_js__WEBPACK_IMPORTED_MODULE_2__.validateString)(type), {
11270
- bubbles: true,
11271
- cancelable: true
11272
- });
11273
- element.dispatchEvent(event);
11274
- } else if (element instanceof HTMLCollection || element instanceof NodeList) {
11275
- var _iterator = _createForOfIteratorHelper(element),
11276
- _step;
11277
-
11278
- try {
11279
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
11280
- var e = _step.value;
11281
- fireEvent(e, type);
11282
- }
11283
- } catch (err) {
11284
- _iterator.e(err);
11285
- } finally {
11286
- _iterator.f();
11287
- }
11288
- } else {
11289
- throw new TypeError('value is not an instance of HTMLElement or HTMLCollection');
11290
- }
11291
- }
11292
- /**
11293
- * This function gets the path `Event.composedPath()` from an event and tries to find the next element
11294
- * up the tree `element.closest()` with the attribute and value. If no value, or a value that is undefined or null,
11295
- * is specified, only the attribute is searched.
11296
- *
11297
- * You can call the function via the monster namespace `new Monster.DOM.findTargetElementFromEvent()`.
11298
- *
11299
- * ```
11300
- * <script type="module">
11301
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/dom/events.js';
11302
- * console.log(new Monster.DOM.findTargetElementFromEvent())
11303
- * </script>
11304
- * ```
11305
- *
11306
- * Alternatively, you can also integrate this function individually.
11307
- *
11308
- * ```
11309
- * <script type="module">
11310
- * import {findTargetElementFromEvent} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/dom/events.js';
11311
- * console.log(findTargetElementFromEvent())
11312
- * </script>
11313
- * ```
11314
- *
11315
- * @since 1.14.0
11316
- * @param {Event} event
11317
- * @param {string} attributeName
11318
- * @param {string|null|undefined} attributeValue
11319
- * @throws {Error} unsupported event
11320
- * @memberOf Monster.DOM
11321
- * @throws {TypeError} value is not a string
11322
- * @throws {TypeError} value is not an instance of HTMLElement
11323
- * @summary Help function to find the appropriate control
11324
- */
11325
-
11326
-
11327
- function findTargetElementFromEvent(event, attributeName, attributeValue) {
11328
- (0,_types_validate_js__WEBPACK_IMPORTED_MODULE_2__.validateInstance)(event, Event);
11329
-
11330
- if (typeof event.composedPath !== 'function') {
11331
- throw new Error('unsupported event');
11332
- }
11333
-
11334
- var path = event.composedPath();
11335
- var element = path === null || path === void 0 ? void 0 : path[0]; // closest cannot be used here, because closest is not correct for slotted elements
11336
-
11337
- if ((0,_types_is_js__WEBPACK_IMPORTED_MODULE_1__.isArray)(path)) {
11338
- for (var i = 0; i < path.length; i++) {
11339
- var o = path[i];
11340
-
11341
- if (o instanceof HTMLElement && o.hasAttribute(attributeName) && (attributeValue === undefined || o.getAttribute(attributeName) === attributeValue)) {
11342
- return o;
11343
- }
11344
- }
11345
- }
11346
-
11347
- return undefined;
11348
- }
11349
-
11350
- (0,_namespace_js__WEBPACK_IMPORTED_MODULE_0__.assignToNamespace)('Monster.DOM', findTargetElementFromEvent, fireEvent);
11351
-
11352
-
11353
11643
  /***/ }),
11354
11644
  /* 44 */
11355
11645
  /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
@@ -11361,7 +11651,7 @@ __webpack_require__.r(__webpack_exports__);
11361
11651
  /* harmony export */ });
11362
11652
  /* harmony import */ var _i18n_locale_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(45);
11363
11653
  /* harmony import */ var _namespace_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2);
11364
- /* harmony import */ var _util_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(42);
11654
+ /* harmony import */ var _util_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(43);
11365
11655
 
11366
11656
  /**
11367
11657
  * @author schukai GmbH
@@ -11379,13 +11669,17 @@ var DEFAULT_LANGUAGE = 'en';
11379
11669
  /**
11380
11670
  * With this function you can read the language version set by the document.
11381
11671
  * For this the attribute `lang` in the html tag is read. If no attribute is set, `en` is used as default.
11672
+ *
11673
+ * ```html
11674
+ * <html lang="en">
11675
+ * ```
11382
11676
  *
11383
11677
  * You can call the function via the monster namespace `new Monster.DOM.getLocaleOfDocument()`.
11384
11678
  *
11385
11679
  * ```
11386
11680
  * <script type="module">
11387
- * import {getLocaleOfDocument} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/dom/locale.js';
11388
- * console.log(new Monster.DOM.getLocaleOfDocument())
11681
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
11682
+ * new Monster.DOM.getLocaleOfDocument()
11389
11683
  * </script>
11390
11684
  * ```
11391
11685
  *
@@ -11393,8 +11687,8 @@ var DEFAULT_LANGUAGE = 'en';
11393
11687
  *
11394
11688
  * ```
11395
11689
  * <script type="module">
11396
- * import {getLocaleOfDocument} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/dom/locale.js';
11397
- * console.log(new getLocaleOfDocument())
11690
+ * import {getLocaleOfDocument} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/dom/locale.js';
11691
+ * new getLocaleOfDocument()
11398
11692
  * </script>
11399
11693
  * ```
11400
11694
  *
@@ -11486,7 +11780,7 @@ var localeStringSymbol = Symbol('localeString');
11486
11780
  *
11487
11781
  * ```
11488
11782
  * <script type="module">
11489
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/i18n/locale.js';
11783
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
11490
11784
  * new Monster.I18n.Locale()
11491
11785
  * </script>
11492
11786
  * ```
@@ -11495,7 +11789,7 @@ var localeStringSymbol = Symbol('localeString');
11495
11789
  *
11496
11790
  * ```
11497
11791
  * <script type="module">
11498
- * import {Locale} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/i18n/locale.js';
11792
+ * import {Locale} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/i18n/locale.js';
11499
11793
  * new Locale()
11500
11794
  * </script>
11501
11795
  * ```
@@ -11654,6 +11948,8 @@ var Locale = /*#__PURE__*/function (_Base) {
11654
11948
  return "" + this.localeString;
11655
11949
  }
11656
11950
  /**
11951
+ * The structure has the following: language, script, region, variants, extlang, privateUse
11952
+ *
11657
11953
  * @return {Monster.I18n.LocaleMap}
11658
11954
  */
11659
11955
 
@@ -11686,7 +11982,7 @@ var Locale = /*#__PURE__*/function (_Base) {
11686
11982
  *
11687
11983
  * ```
11688
11984
  * <script type="module">
11689
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/i18n/locale.js';
11985
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
11690
11986
  * new Monster.I18n.createLocale()
11691
11987
  * </script>
11692
11988
  * ```
@@ -11695,7 +11991,7 @@ var Locale = /*#__PURE__*/function (_Base) {
11695
11991
  *
11696
11992
  * ```
11697
11993
  * <script type="module">
11698
- * import {createLocale} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/i18n/locale.js';
11994
+ * import {createLocale} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/i18n/locale.js';
11699
11995
  * createLocale()
11700
11996
  * </script>
11701
11997
  * ```
@@ -11871,7 +12167,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
11871
12167
  *
11872
12168
  * ```
11873
12169
  * <script type="module">
11874
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/i18n/provider.js';
12170
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
11875
12171
  * new Monster.I18n.Provider()
11876
12172
  * </script>
11877
12173
  * ```
@@ -11880,7 +12176,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
11880
12176
  *
11881
12177
  * ```
11882
12178
  * <script type="module">
11883
- * import {Provider} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/i18n/provider.js';
12179
+ * import {Provider} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/i18n/provider.js';
11884
12180
  * new Provider()
11885
12181
  * </script>
11886
12182
  * ```
@@ -11981,7 +12277,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
11981
12277
  *
11982
12278
  * ```
11983
12279
  * <script type="module">
11984
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/types/basewithoptions.js';
12280
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
11985
12281
  * new Monster.Types.BaseWithOptions()
11986
12282
  * </script>
11987
12283
  * ```
@@ -11990,7 +12286,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
11990
12286
  *
11991
12287
  * ```
11992
12288
  * <script type="module">
11993
- * import {BaseWithOptions} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/types/basewithoptions.js';
12289
+ * import {BaseWithOptions} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/types/basewithoptions.js';
11994
12290
  * new BaseWithOptions()
11995
12291
  * </script>
11996
12292
  * ```
@@ -12131,7 +12427,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
12131
12427
  *
12132
12428
  * ```
12133
12429
  * <script type="module">
12134
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/i18n/translations.js';
12430
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
12135
12431
  * new Monster.I18n.Translations()
12136
12432
  * </script>
12137
12433
  * ```
@@ -12140,23 +12436,33 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
12140
12436
  *
12141
12437
  * ```
12142
12438
  * <script type="module">
12143
- * import {Translations} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/i18n/translations.js';
12439
+ * import {Translations} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/i18n/translations.js';
12144
12440
  * new Translations()
12145
12441
  * </script>
12146
12442
  * ```
12147
12443
  *
12148
12444
  * @example
12149
12445
  *
12150
- * import {Translations} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/i18n/translations.js';
12446
+ * import {Translations} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/i18n/translations.js';
12447
+ * import {parseLocale} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/i18n/locale.js';
12448
+ *
12151
12449
  * const translation = new Translations(parseLocale('en-GB'));
12152
12450
  *
12153
12451
  * translation.assignTranslations({
12154
- * text1: "abc",
12155
- * text2: {'other': 'xyz'}
12156
- * });
12452
+ * text1: "click",
12453
+ * text2: {
12454
+ * 'one': 'click once',
12455
+ * 'other': 'click n times'
12456
+ * }
12457
+ * });
12458
+ *
12459
+ * console.log(translation.getText('text1'));
12460
+ * // ↦ click
12157
12461
  *
12158
- * translation.getText('text1);
12159
- * translation.getPluralRuleText('text2',2);
12462
+ * console.log(translation.getPluralRuleText('text2',1));
12463
+ * // -> click once
12464
+ * console.log(translation.getPluralRuleText('text2',2));
12465
+ * // -> click n times
12160
12466
  *
12161
12467
  * @since 1.13.0
12162
12468
  * @copyright schukai GmbH
@@ -12410,7 +12716,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
12410
12716
  *
12411
12717
  * ```
12412
12718
  * <script type="module">
12413
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/i18n/providers/fetch.js';
12719
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
12414
12720
  * new Monster.I18n.Providers.Fetch()
12415
12721
  * </script>
12416
12722
  * ```
@@ -12419,15 +12725,24 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
12419
12725
  *
12420
12726
  * ```
12421
12727
  * <script type="module">
12422
- * import {Fetch} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/i18n/providers/fetch.js';
12728
+ * import {Fetch} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/i18n/providers/fetch.js';
12423
12729
  * new Fetch()
12424
12730
  * </script>
12425
12731
  * ```
12732
+ *
12733
+ * @example <caption>das ist ein test</caption>
12734
+ *
12735
+ * import {Fetch} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/i18n/providers/fetch.js';
12736
+ *
12737
+ * // fetch from API
12738
+ * const translation = new Fetch('https://example.com/${language}.json').getTranslation('en-GB');
12739
+ * // ↦ https://example.com/en.json
12426
12740
  *
12427
12741
  * @since 1.13.0
12428
12742
  * @copyright schukai GmbH
12429
12743
  * @memberOf Monster.I18n.Providers
12430
12744
  * @see {@link https://datatracker.ietf.org/doc/html/rfc3066}
12745
+ * @tutorial i18n-locale-and-formatter
12431
12746
  */
12432
12747
 
12433
12748
  var Fetch = /*#__PURE__*/function (_Provider) {
@@ -12437,7 +12752,13 @@ var Fetch = /*#__PURE__*/function (_Provider) {
12437
12752
 
12438
12753
  /**
12439
12754
  * As options the key `fetch` can be passed. This config object is passed to the fetch method as init.
12440
- *
12755
+ *
12756
+ * The url may contain placeholders (language, script, region, variants, extlang, privateUse), so you can specify one url for all translations.
12757
+ *
12758
+ * ```
12759
+ * new Fetch('https://www.example.com/assets/${language}.json')
12760
+ * ```
12761
+ *
12441
12762
  * @param {string|URL} url
12442
12763
  * @param {Object} options see {@link Monster.I18n.Providers.Fetch#defaults}
12443
12764
  * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/fetch}
@@ -12540,14 +12861,20 @@ var Fetch = /*#__PURE__*/function (_Provider) {
12540
12861
 
12541
12862
  __webpack_require__.r(__webpack_exports__);
12542
12863
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
12543
- /* harmony export */ "Monster": function() { return /* reexport safe */ _namespace_js__WEBPACK_IMPORTED_MODULE_1__.Monster; },
12864
+ /* harmony export */ "Monster": function() { return /* reexport safe */ _namespace_js__WEBPACK_IMPORTED_MODULE_3__.Monster; },
12544
12865
  /* harmony export */ "Formatter": function() { return /* binding */ Formatter; }
12545
12866
  /* harmony export */ });
12546
- /* harmony import */ var _data_pipe_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(22);
12547
- /* harmony import */ var _namespace_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2);
12548
- /* harmony import */ var _types_base_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(4);
12549
- /* harmony import */ var _types_validate_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(14);
12867
+ /* harmony import */ var _constants_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1);
12868
+ /* harmony import */ var _data_extend_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(21);
12869
+ /* harmony import */ var _data_pipe_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(22);
12870
+ /* harmony import */ var _namespace_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(2);
12871
+ /* harmony import */ var _types_basewithoptions_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(47);
12872
+ /* harmony import */ var _types_is_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(9);
12873
+ /* harmony import */ var _types_validate_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(14);
12550
12874
 
12875
+ /**
12876
+ * @author schukai GmbH
12877
+ */
12551
12878
 
12552
12879
  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); }
12553
12880
 
@@ -12571,6 +12898,10 @@ function _defineProperties(target, props) { for (var i = 0; i < props.length; i+
12571
12898
 
12572
12899
  function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
12573
12900
 
12901
+ function _get(target, property, receiver) { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); }
12902
+
12903
+ function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }
12904
+
12574
12905
  function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
12575
12906
 
12576
12907
  function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
@@ -12586,23 +12917,52 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re
12586
12917
  function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
12587
12918
 
12588
12919
 
12920
+
12921
+
12922
+
12923
+
12924
+
12925
+
12589
12926
  /**
12590
- * @author schukai GmbH
12927
+ * @private
12928
+ * @type {symbol}
12591
12929
  */
12592
12930
 
12931
+ var internalObjectSymbol = Symbol('internalObject');
12932
+ /**
12933
+ * @private
12934
+ * @type {symbol}
12935
+ */
12593
12936
 
12937
+ var watchdogSymbol = Symbol('watchdog');
12938
+ /**
12939
+ * @private
12940
+ * @type {symbol}
12941
+ */
12594
12942
 
12943
+ var markerOpenIndexSymbol = Symbol('markerOpenIndex');
12944
+ /**
12945
+ * @private
12946
+ * @type {symbol}
12947
+ */
12595
12948
 
12949
+ var markerCloseIndexSymbol = Symbol('markercloseIndex');
12950
+ /**
12951
+ * @private
12952
+ * @type {symbol}
12953
+ */
12954
+
12955
+ var workingDataSymbol = Symbol('workingData');
12596
12956
  /**
12597
12957
  * Messages can be formatted with the formatter. To do this, an object with the values must be passed to the formatter. The message can then contain placeholders.
12598
12958
  *
12599
12959
  * Look at the example below. The placeholders use the logic of Pipe.
12600
12960
  *
12601
- * You can call the method via the monster namespace `new Monster.Text.Formatter()`.
12961
+ * You can create an instance via the monster namespace `new Monster.Text.Formatter()`.
12602
12962
  *
12603
12963
  * ```
12604
12964
  * <script type="module">
12605
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/text/formatter.js';
12965
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
12606
12966
  * new Monster.Text.Formatter()
12607
12967
  * </script>
12608
12968
  * ```
@@ -12611,19 +12971,42 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
12611
12971
  *
12612
12972
  * ```
12613
12973
  * <script type="module">
12614
- * import {Formatter} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/text/formatter.js';
12974
+ * import {Formatter} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/text/formatter.js';
12615
12975
  * new Formatter()
12616
12976
  * </script>
12617
12977
  * ```
12618
12978
  *
12619
12979
  * ## Marker in marker
12620
12980
  *
12621
- * Markers can be nested. Here, the inner marker is resolved first and then the outer marker.
12981
+ * Markers can be nested. Here, the inner marker is resolved first `${subkey} ↦ 1 = ${mykey2}` and then the outer marker `${mykey2}`.
12622
12982
  *
12623
12983
  * ```
12984
+ * const text = '${mykey${subkey}}';
12985
+ * let obj = {
12986
+ * mykey2: "1",
12987
+ * subkey: "2"
12988
+ * };
12624
12989
  *
12990
+ * new Formatter(obj).format(text);
12991
+ * // ↦ 1
12625
12992
  * ```
12626
12993
  *
12994
+ * ## Callbacks
12995
+ *
12996
+ * The values in a formatter can be adjusted via the commands of the `Transformer` or the`Pipe`.
12997
+ * There is also the possibility to use callbacks.
12998
+ *
12999
+ * const formatter = new Formatter({x: '1'}, {
13000
+ * callbacks: {
13001
+ * quote: (value) => {
13002
+ * return '"' + value + '"'
13003
+ * }
13004
+ * }
13005
+ * });
13006
+ *
13007
+ * formatter.format('${x | call:quote}'))
13008
+ * // ↦ "1"
13009
+ *
12627
13010
  * ## Marker with parameter
12628
13011
  *
12629
13012
  * A string can also bring its own values. These must then be separated from the key by a separator `::`.
@@ -12633,7 +13016,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
12633
13016
  *
12634
13017
  * @example
12635
13018
  *
12636
- * import {Formatter} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/text/formatter.js';
13019
+ * import {Formatter} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/text/formatter.js';
12637
13020
  *
12638
13021
  * new Formatter({
12639
13022
  * a: {
@@ -12642,7 +13025,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
12642
13025
  * },
12643
13026
  * d: "world",
12644
13027
  * }
12645
- * }).format("${a.b.c} ${a.d | ucfirst}!");
13028
+ * }).format("${a.b.c} ${a.d | ucfirst}!"); // with pipe
12646
13029
  *
12647
13030
  * // ↦ Hello World!
12648
13031
  *
@@ -12651,8 +13034,8 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
12651
13034
  * @memberOf Monster.Text
12652
13035
  */
12653
13036
 
12654
- var Formatter = /*#__PURE__*/function (_Base) {
12655
- _inherits(Formatter, _Base);
13037
+ var Formatter = /*#__PURE__*/function (_BaseWithOptions) {
13038
+ _inherits(Formatter, _BaseWithOptions);
12656
13039
 
12657
13040
  var _super = _createSuper(Formatter);
12658
13041
 
@@ -12662,52 +13045,70 @@ var Formatter = /*#__PURE__*/function (_Base) {
12662
13045
  * @param {object} object
12663
13046
  * @throws {TypeError} value is not a object
12664
13047
  */
12665
- function Formatter(object) {
13048
+ function Formatter(object, options) {
12666
13049
  var _this;
12667
13050
 
12668
13051
  _classCallCheck(this, Formatter);
12669
13052
 
12670
- _this = _super.call(this);
12671
-
12672
- if (object === undefined) {
12673
- object = {};
12674
- }
12675
-
12676
- _this.object = (0,_types_validate_js__WEBPACK_IMPORTED_MODULE_3__.validateObject)(object);
12677
- _this.openMarker = '${';
12678
- _this.closeMarker = '}';
12679
- _this.parameterDelimiter = '::';
12680
- _this.parameterAssignment = '=';
13053
+ _this = _super.call(this, options);
13054
+ _this[internalObjectSymbol] = object || {};
13055
+ _this[markerOpenIndexSymbol] = 0;
13056
+ _this[markerCloseIndexSymbol] = 0;
12681
13057
  return _this;
12682
13058
  }
12683
13059
  /**
12684
- * Set new Parameter Character
12685
- *
12686
- * Default values for the chars are `::` and `=`
12687
- *
12688
- * ```
12689
- * formatter.setParameterChars('#');
12690
- * formatter.setParameterChars('[',']');
12691
- * formatter.setParameterChars('i18n{','}');
12692
- * ```
12693
- *
12694
- * @param {string} delimiter
12695
- * @param {string} assignment
12696
- * @return {Formatter}
12697
- * @since 1.24.0
12698
- * @throws {TypeError} value is not a string
13060
+ * @property {object} marker
13061
+ * @property {array} marker.open=["${"]
13062
+ * @property {array} marker.close=["${"]
13063
+ * @property {object} parameter
13064
+ * @property {string} parameter.delimiter="::"
13065
+ * @property {string} parameter.assignment="="
13066
+ * @property {object} callbacks={}
12699
13067
  */
12700
13068
 
12701
13069
 
12702
13070
  _createClass(Formatter, [{
13071
+ key: "defaults",
13072
+ get: function get() {
13073
+ return (0,_data_extend_js__WEBPACK_IMPORTED_MODULE_1__.extend)({}, _get(_getPrototypeOf(Formatter.prototype), "defaults", this), {
13074
+ marker: {
13075
+ open: ['${'],
13076
+ close: ['}']
13077
+ },
13078
+ parameter: {
13079
+ delimiter: '::',
13080
+ assignment: '='
13081
+ },
13082
+ callbacks: {}
13083
+ });
13084
+ }
13085
+ /**
13086
+ * Set new Parameter Character
13087
+ *
13088
+ * Default values for the chars are `::` and `=`
13089
+ *
13090
+ * ```
13091
+ * formatter.setParameterChars('#');
13092
+ * formatter.setParameterChars('[',']');
13093
+ * formatter.setParameterChars('i18n{','}');
13094
+ * ```
13095
+ *
13096
+ * @param {string} delimiter
13097
+ * @param {string} assignment
13098
+ * @return {Formatter}
13099
+ * @since 1.24.0
13100
+ * @throws {TypeError} value is not a string
13101
+ */
13102
+
13103
+ }, {
12703
13104
  key: "setParameterChars",
12704
13105
  value: function setParameterChars(delimiter, assignment) {
12705
13106
  if (delimiter !== undefined) {
12706
- this.parameterDelimiter = (0,_types_validate_js__WEBPACK_IMPORTED_MODULE_3__.validateString)(delimiter);
13107
+ this[_constants_js__WEBPACK_IMPORTED_MODULE_0__.internalSymbol]['parameter']['delimiter'] = (0,_types_validate_js__WEBPACK_IMPORTED_MODULE_6__.validateString)(delimiter);
12707
13108
  }
12708
13109
 
12709
13110
  if (assignment !== undefined) {
12710
- this.parameterAssignment = (0,_types_validate_js__WEBPACK_IMPORTED_MODULE_3__.validateString)(assignment);
13111
+ this[_constants_js__WEBPACK_IMPORTED_MODULE_0__.internalSymbol]['parameter']['assignment'] = (0,_types_validate_js__WEBPACK_IMPORTED_MODULE_6__.validateString)(assignment);
12711
13112
  }
12712
13113
 
12713
13114
  return this;
@@ -12723,8 +13124,8 @@ var Formatter = /*#__PURE__*/function (_Base) {
12723
13124
  * formatter.setMarker('i18n{','}');
12724
13125
  * ```
12725
13126
  *
12726
- * @param {string} open
12727
- * @param {string} close
13127
+ * @param {array|string} open
13128
+ * @param {array|string|undefined} close
12728
13129
  * @return {Formatter}
12729
13130
  * @since 1.12.0
12730
13131
  * @throws {TypeError} value is not a string
@@ -12737,8 +13138,10 @@ var Formatter = /*#__PURE__*/function (_Base) {
12737
13138
  close = open;
12738
13139
  }
12739
13140
 
12740
- this.openMarker = (0,_types_validate_js__WEBPACK_IMPORTED_MODULE_3__.validateString)(open);
12741
- this.closeMarker = (0,_types_validate_js__WEBPACK_IMPORTED_MODULE_3__.validateString)(close);
13141
+ if ((0,_types_is_js__WEBPACK_IMPORTED_MODULE_5__.isString)(open)) open = [open];
13142
+ if ((0,_types_is_js__WEBPACK_IMPORTED_MODULE_5__.isString)(close)) close = [close];
13143
+ this[_constants_js__WEBPACK_IMPORTED_MODULE_0__.internalSymbol]['marker']['open'] = (0,_types_validate_js__WEBPACK_IMPORTED_MODULE_6__.validateArray)(open);
13144
+ this[_constants_js__WEBPACK_IMPORTED_MODULE_0__.internalSymbol]['marker']['close'] = (0,_types_validate_js__WEBPACK_IMPORTED_MODULE_6__.validateArray)(close);
12742
13145
  return this;
12743
13146
  }
12744
13147
  /**
@@ -12746,17 +13149,58 @@ var Formatter = /*#__PURE__*/function (_Base) {
12746
13149
  * @param {string} text
12747
13150
  * @return {string}
12748
13151
  * @throws {TypeError} value is not a string
13152
+ * @throws {Error} too deep nesting
12749
13153
  */
12750
13154
 
12751
13155
  }, {
12752
13156
  key: "format",
12753
13157
  value: function format(text) {
12754
- return tokenizer.call(this, (0,_types_validate_js__WEBPACK_IMPORTED_MODULE_3__.validateString)(text));
13158
+ this[watchdogSymbol] = 0;
13159
+ this[markerOpenIndexSymbol] = 0;
13160
+ this[markerCloseIndexSymbol] = 0;
13161
+ this[workingDataSymbol] = {};
13162
+ return _format.call(this, text);
12755
13163
  }
12756
13164
  }]);
12757
13165
 
12758
13166
  return Formatter;
12759
- }(_types_base_js__WEBPACK_IMPORTED_MODULE_2__.Base);
13167
+ }(_types_basewithoptions_js__WEBPACK_IMPORTED_MODULE_4__.BaseWithOptions);
13168
+ /**
13169
+ * @private
13170
+ * @return {string}
13171
+ */
13172
+
13173
+
13174
+ function _format(text) {
13175
+ var _self$internalSymbol$, _self$internalSymbol$2, _self$internalSymbol$3, _self$internalSymbol$4;
13176
+
13177
+ var self = this;
13178
+ self[watchdogSymbol]++;
13179
+
13180
+ if (this[watchdogSymbol] > 20) {
13181
+ throw new Error('too deep nesting');
13182
+ }
13183
+
13184
+ var openMarker = (_self$internalSymbol$ = self[_constants_js__WEBPACK_IMPORTED_MODULE_0__.internalSymbol]['marker']['open']) === null || _self$internalSymbol$ === void 0 ? void 0 : _self$internalSymbol$[this[markerOpenIndexSymbol]];
13185
+ var closeMarker = (_self$internalSymbol$2 = self[_constants_js__WEBPACK_IMPORTED_MODULE_0__.internalSymbol]['marker']['close']) === null || _self$internalSymbol$2 === void 0 ? void 0 : _self$internalSymbol$2[this[markerCloseIndexSymbol]]; // contains no placeholders
13186
+
13187
+ if (text.indexOf(openMarker) === -1 || text.indexOf(closeMarker) === -1) {
13188
+ return text;
13189
+ }
13190
+
13191
+ var result = tokenize.call(this, (0,_types_validate_js__WEBPACK_IMPORTED_MODULE_6__.validateString)(text), openMarker, closeMarker);
13192
+
13193
+ if ((_self$internalSymbol$3 = self[_constants_js__WEBPACK_IMPORTED_MODULE_0__.internalSymbol]['marker']['open']) !== null && _self$internalSymbol$3 !== void 0 && _self$internalSymbol$3[this[markerOpenIndexSymbol] + 1]) {
13194
+ this[markerOpenIndexSymbol]++;
13195
+ }
13196
+
13197
+ if ((_self$internalSymbol$4 = self[_constants_js__WEBPACK_IMPORTED_MODULE_0__.internalSymbol]['marker']['close']) !== null && _self$internalSymbol$4 !== void 0 && _self$internalSymbol$4[this[markerCloseIndexSymbol] + 1]) {
13198
+ this[markerCloseIndexSymbol]++;
13199
+ }
13200
+
13201
+ result = _format.call(self, result);
13202
+ return result;
13203
+ }
12760
13204
  /**
12761
13205
  * @private
12762
13206
  * @since 1.12.0
@@ -12765,12 +13209,17 @@ var Formatter = /*#__PURE__*/function (_Base) {
12765
13209
  */
12766
13210
 
12767
13211
 
12768
- function tokenizer(text) {
13212
+ function tokenize(text, openMarker, closeMarker) {
12769
13213
  var self = this;
12770
13214
  var formatted = [];
13215
+ var parameterAssignment = self[_constants_js__WEBPACK_IMPORTED_MODULE_0__.internalSymbol]['parameter']['assignment'];
13216
+ var parameterDelimiter = self[_constants_js__WEBPACK_IMPORTED_MODULE_0__.internalSymbol]['parameter']['delimiter'];
13217
+ var callbacks = self[_constants_js__WEBPACK_IMPORTED_MODULE_0__.internalSymbol]['callbacks'];
12771
13218
 
12772
13219
  while (true) {
12773
- var startIndex = text.indexOf(self.openMarker); // no marker
13220
+ var _self$workingDataSymb;
13221
+
13222
+ var startIndex = text.indexOf(openMarker); // no marker
12774
13223
 
12775
13224
  if (startIndex === -1) {
12776
13225
  formatted.push(text);
@@ -12780,19 +13229,18 @@ function tokenizer(text) {
12780
13229
  text = text.substring(startIndex);
12781
13230
  }
12782
13231
 
12783
- var endIndex = text.substring(self.openMarker.length).indexOf(self.closeMarker);
12784
- if (endIndex !== -1) endIndex += self.openMarker.length;
12785
- var insideStartIndex = text.substring(self.openMarker.length).indexOf(self.openMarker);
13232
+ var endIndex = text.substring(openMarker.length).indexOf(closeMarker);
13233
+ if (endIndex !== -1) endIndex += openMarker.length;
13234
+ var insideStartIndex = text.substring(openMarker.length).indexOf(openMarker);
12786
13235
 
12787
13236
  if (insideStartIndex !== -1) {
12788
- insideStartIndex += self.openMarker.length;
13237
+ insideStartIndex += openMarker.length;
12789
13238
 
12790
13239
  if (insideStartIndex < endIndex) {
12791
- var sub = text.substring(insideStartIndex);
12792
- var result = tokenizer.call(self, text.substring(insideStartIndex));
13240
+ var result = tokenize.call(self, text.substring(insideStartIndex), openMarker, closeMarker);
12793
13241
  text = text.substring(0, insideStartIndex) + result;
12794
- endIndex = text.substring(self.openMarker.length).indexOf(self.closeMarker);
12795
- if (endIndex !== -1) endIndex += self.openMarker.length;
13242
+ endIndex = text.substring(openMarker.length).indexOf(closeMarker);
13243
+ if (endIndex !== -1) endIndex += openMarker.length;
12796
13244
  }
12797
13245
  }
12798
13246
 
@@ -12801,11 +13249,10 @@ function tokenizer(text) {
12801
13249
  return;
12802
13250
  }
12803
13251
 
12804
- var command = "path:";
12805
- var key = text.substring(self.openMarker.length, endIndex);
12806
- var parts = key.split(self.parameterDelimiter);
12807
- command += parts.shift();
12808
- var temp = self.object;
13252
+ var key = text.substring(openMarker.length, endIndex);
13253
+ var parts = key.split(parameterDelimiter);
13254
+ var currentPipe = parts.shift();
13255
+ self[workingDataSymbol] = (0,_data_extend_js__WEBPACK_IMPORTED_MODULE_1__.extend)({}, self[internalObjectSymbol], self[workingDataSymbol]);
12809
13256
 
12810
13257
  var _iterator = _createForOfIteratorHelper(parts),
12811
13258
  _step;
@@ -12814,12 +13261,12 @@ function tokenizer(text) {
12814
13261
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
12815
13262
  var kv = _step.value;
12816
13263
 
12817
- var _kv$split = kv.split(self.parameterAssignment),
13264
+ var _kv$split = kv.split(parameterAssignment),
12818
13265
  _kv$split2 = _slicedToArray(_kv$split, 2),
12819
13266
  k = _kv$split2[0],
12820
13267
  v = _kv$split2[1];
12821
13268
 
12822
- temp[k] = v;
13269
+ self[workingDataSymbol][k] = v;
12823
13270
  }
12824
13271
  } catch (err) {
12825
13272
  _iterator.e(err);
@@ -12827,14 +13274,40 @@ function tokenizer(text) {
12827
13274
  _iterator.f();
12828
13275
  }
12829
13276
 
12830
- formatted.push((0,_types_validate_js__WEBPACK_IMPORTED_MODULE_3__.validateString)(new _data_pipe_js__WEBPACK_IMPORTED_MODULE_0__.Pipe(command).run(temp)));
12831
- text = text.substring(endIndex + self.closeMarker.length);
13277
+ var t1 = key.split('|').shift().trim(); // pipe symbol
13278
+
13279
+ var t2 = t1.split('::').shift().trim(); // key value delimiter
13280
+
13281
+ var t3 = t2.split('.').shift().trim(); // path delimiter
13282
+
13283
+ var prefix = (_self$workingDataSymb = self[workingDataSymbol]) !== null && _self$workingDataSymb !== void 0 && _self$workingDataSymb[t3] ? 'path:' : 'static:';
13284
+ var command = "";
13285
+
13286
+ if (prefix && key.indexOf(prefix) !== 0 && key.indexOf('path:') !== 0 && key.indexOf('static:') !== 0) {
13287
+ command = prefix;
13288
+ }
13289
+
13290
+ command += currentPipe;
13291
+ var pipe = new _data_pipe_js__WEBPACK_IMPORTED_MODULE_2__.Pipe(command);
13292
+
13293
+ if ((0,_types_is_js__WEBPACK_IMPORTED_MODULE_5__.isObject)(callbacks)) {
13294
+ for (var _i = 0, _Object$entries = Object.entries(callbacks); _i < _Object$entries.length; _i++) {
13295
+ var _Object$entries$_i = _slicedToArray(_Object$entries[_i], 2),
13296
+ name = _Object$entries$_i[0],
13297
+ callback = _Object$entries$_i[1];
13298
+
13299
+ pipe.setCallback(name, callback);
13300
+ }
13301
+ }
13302
+
13303
+ formatted.push((0,_types_validate_js__WEBPACK_IMPORTED_MODULE_6__.validateString)(pipe.run(self[workingDataSymbol])));
13304
+ text = text.substring(endIndex + closeMarker.length);
12832
13305
  }
12833
13306
 
12834
13307
  return formatted.join('');
12835
13308
  }
12836
13309
 
12837
- (0,_namespace_js__WEBPACK_IMPORTED_MODULE_1__.assignToNamespace)('Monster.Text', Formatter);
13310
+ (0,_namespace_js__WEBPACK_IMPORTED_MODULE_3__.assignToNamespace)('Monster.Text', Formatter);
12838
13311
 
12839
13312
 
12840
13313
  /***/ }),
@@ -12888,7 +13361,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
12888
13361
  *
12889
13362
  * ```
12890
13363
  * <script type="module">
12891
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/logging/handler.js';
13364
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
12892
13365
  * console.log(new Monster.Logging.Handler())
12893
13366
  * </script>
12894
13367
  * ```
@@ -12897,7 +13370,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
12897
13370
  *
12898
13371
  * ```
12899
13372
  * <script type="module">
12900
- * import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/logging/handler.js';
13373
+ * import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/logging/handler.js';
12901
13374
  * console.log(new Handler())
12902
13375
  * </script>
12903
13376
  * ```
@@ -13135,7 +13608,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
13135
13608
  *
13136
13609
  * ```
13137
13610
  * <script type="module">
13138
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/logging/logentry.js';
13611
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
13139
13612
  * console.log(new Monster.Logging.LogEntry())
13140
13613
  * </script>
13141
13614
  * ```
@@ -13144,7 +13617,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
13144
13617
  *
13145
13618
  * ```
13146
13619
  * <script type="module">
13147
- * import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/logging/logentry.js';
13620
+ * import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/logging/logentry.js';
13148
13621
  * console.log(new LogEntry())
13149
13622
  * </script>
13150
13623
  * ```
@@ -13330,7 +13803,7 @@ var OFF = 0;
13330
13803
  *
13331
13804
  * ```
13332
13805
  * <script type="module">
13333
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/logging/logger.js';
13806
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
13334
13807
  * new Monster.Logging.Logger()
13335
13808
  * </script>
13336
13809
  * ```
@@ -13339,7 +13812,7 @@ var OFF = 0;
13339
13812
  *
13340
13813
  * ```
13341
13814
  * <script type="module">
13342
- * import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/logging/logger.js';
13815
+ * import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/logging/logger.js';
13343
13816
  * new Logger()
13344
13817
  * </script>
13345
13818
  * ```
@@ -13639,7 +14112,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
13639
14112
  *
13640
14113
  * ```
13641
14114
  * <script type="module">
13642
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/logging/handler/console.js';
14115
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
13643
14116
  * console.log(new Monster.Logging.Handler.ConsoleHandler())
13644
14117
  * </script>
13645
14118
  * ```
@@ -13648,7 +14121,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
13648
14121
  *
13649
14122
  * ```
13650
14123
  * <script type="module">
13651
- * import {ConsoleHandler} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/logging/handler/console.js';
14124
+ * import {ConsoleHandler} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/logging/handler/console.js';
13652
14125
  * console.log(new ConsoleHandler())
13653
14126
  * </script>
13654
14127
  * ```
@@ -13724,7 +14197,7 @@ __webpack_require__.r(__webpack_exports__);
13724
14197
  *
13725
14198
  * ```
13726
14199
  * <script type="module">
13727
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/math/random.js';
14200
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
13728
14201
  * Monster.Math.random(1,10)
13729
14202
  * // ↦ 5
13730
14203
  * </script>
@@ -13734,7 +14207,7 @@ __webpack_require__.r(__webpack_exports__);
13734
14207
  *
13735
14208
  * ```
13736
14209
  * <script type="module">
13737
- * import {random} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/math/random.js';
14210
+ * import {random} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/math/random.js';
13738
14211
  * random(1,10)
13739
14212
  * // ↦ 5
13740
14213
  * </script>
@@ -13891,7 +14364,7 @@ var internalCounter = 0;
13891
14364
  *
13892
14365
  * ```
13893
14366
  * <script type="module">
13894
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/types/randomid.js';
14367
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
13895
14368
  * console.log(new Monster.Types.RandomID())
13896
14369
  * </script>
13897
14370
  * ```
@@ -13900,7 +14373,7 @@ var internalCounter = 0;
13900
14373
  *
13901
14374
  * ```
13902
14375
  * <script type="module">
13903
- * import {RandomID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/types/randomid.js';
14376
+ * import {RandomID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/types/randomid.js';
13904
14377
  * console.log(new RandomID())
13905
14378
  * </script>
13906
14379
  * ```
@@ -13983,7 +14456,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
13983
14456
  *
13984
14457
  * ```
13985
14458
  * <script type="module">
13986
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/types/version.js';
14459
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
13987
14460
  * console.log(new Monster.Types.Version('1.2.3')) // ↦ 1.2.3
13988
14461
  * console.log(new Monster.Types.Version('1')) // ↦ 1.0.0
13989
14462
  * </script>
@@ -13993,7 +14466,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
13993
14466
  *
13994
14467
  * ```
13995
14468
  * <script type="module">
13996
- * import {Version} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/types/version.js';
14469
+ * import {Version} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/types/version.js';
13997
14470
  * console.log(new Version('1.2.3')) // ↦ 1.2.3
13998
14471
  * console.log(new Version('1')) // ↦ 1.0.0
13999
14472
  * </script>
@@ -14001,7 +14474,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
14001
14474
  *
14002
14475
  * @example
14003
14476
  *
14004
- * import {Version} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/types/version.js';
14477
+ * import {Version} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/types/version.js';
14005
14478
  *
14006
14479
  * new Version('1.0.0') // ↦ 1.0.0
14007
14480
  * new Version(1) // ↦ 1.0.0
@@ -14135,7 +14608,7 @@ var monsterVersion;
14135
14608
  *
14136
14609
  * ```
14137
14610
  * <script type="module">
14138
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/types/version.js';
14611
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
14139
14612
  * console.log(Monster.getVersion())
14140
14613
  * </script>
14141
14614
  * ```
@@ -14144,7 +14617,7 @@ var monsterVersion;
14144
14617
  *
14145
14618
  * ```
14146
14619
  * <script type="module">
14147
- * import {getVersion} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/types/version.js';
14620
+ * import {getVersion} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/types/version.js';
14148
14621
  * console.log(getVersion())
14149
14622
  * </script>
14150
14623
  * ```
@@ -14163,7 +14636,7 @@ function getVersion() {
14163
14636
  /**#@+ dont touch, replaced by make with package.json version */
14164
14637
 
14165
14638
 
14166
- monsterVersion = new Version('1.25.0');
14639
+ monsterVersion = new Version('1.28.0');
14167
14640
  /**#@-*/
14168
14641
 
14169
14642
  return monsterVersion;
@@ -14219,7 +14692,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
14219
14692
  *
14220
14693
  * ```
14221
14694
  * <script type="module">
14222
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/util/comparator.js';
14695
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
14223
14696
  * new Monster.Util.Comparator()
14224
14697
  * </script>
14225
14698
  * ```
@@ -14228,7 +14701,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
14228
14701
  *
14229
14702
  * ```
14230
14703
  * <script type="module">
14231
- * import {Comparator} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/util/comparator.js';
14704
+ * import {Comparator} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/util/comparator.js';
14232
14705
  * console.log(new Comparator())
14233
14706
  * </script>
14234
14707
  * ```
@@ -14253,7 +14726,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
14253
14726
  *
14254
14727
  * @example
14255
14728
  *
14256
- * import {Comparator} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/util/comparator.js';
14729
+ * import {Comparator} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/util/comparator.js';
14257
14730
  *
14258
14731
  * console.log(new Comparator().lessThanOrEqual(2, 5))
14259
14732
  * // ↦ true
@@ -14466,7 +14939,7 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
14466
14939
  *
14467
14940
  * ```
14468
14941
  * <script type="module">
14469
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/util/freeze.js';
14942
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
14470
14943
  * Monster.Util.deepFreeze({})
14471
14944
  * </script>
14472
14945
  * ```
@@ -14475,7 +14948,7 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
14475
14948
  *
14476
14949
  * ```
14477
14950
  * <script type="module">
14478
- * import {deepFreeze} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.25.0/dist/modules/util/freeze.js';
14951
+ * import {deepFreeze} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/util/freeze.js';
14479
14952
  * deepFreeze({})
14480
14953
  * </script>
14481
14954
  * ```
@@ -14598,12 +15071,12 @@ __webpack_require__.r(__webpack_exports__);
14598
15071
  /* harmony import */ var _dom_constants_js__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(33);
14599
15072
  /* harmony import */ var _dom_customcontrol_js__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(34);
14600
15073
  /* harmony import */ var _dom_customelement_js__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(35);
14601
- /* harmony import */ var _dom_events_js__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(43);
15074
+ /* harmony import */ var _dom_events_js__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(42);
14602
15075
  /* harmony import */ var _dom_locale_js__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(44);
14603
15076
  /* harmony import */ var _dom_template_js__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(38);
14604
15077
  /* harmony import */ var _dom_theme_js__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(39);
14605
15078
  /* harmony import */ var _dom_updater_js__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(40);
14606
- /* harmony import */ var _dom_util_js__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(42);
15079
+ /* harmony import */ var _dom_util_js__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(43);
14607
15080
  /* harmony import */ var _i18n_locale_js__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(45);
14608
15081
  /* harmony import */ var _i18n_provider_js__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(46);
14609
15082
  /* harmony import */ var _i18n_providers_fetch_js__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(49);