@schukai/monster 3.51.5 → 3.52.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (360) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/README.md +15 -12
  3. package/example/components/form/button.mjs +10 -0
  4. package/example/components/form/select.mjs +25 -0
  5. package/example/components/form/tree-select.mjs +27 -0
  6. package/example/components/host/host.mjs +0 -0
  7. package/example/components/notify/message.mjs +4 -0
  8. package/example/components/notify/notify.mjs +4 -0
  9. package/example/components/state/log.mjs +0 -0
  10. package/example/components/state/state.mjs +0 -0
  11. package/package.json +6 -2
  12. package/source/components/constants.mjs +132 -0
  13. package/source/components/datatable/columnbar.mjs +310 -0
  14. package/source/components/datatable/constants.mjs +121 -0
  15. package/source/components/datatable/dataset.mjs +219 -0
  16. package/source/components/datatable/datasource/dom.mjs +186 -0
  17. package/source/components/datatable/datasource/namespace.mjs +13 -0
  18. package/source/components/datatable/datasource/rest.mjs +400 -0
  19. package/source/components/datatable/datasource.mjs +102 -0
  20. package/source/components/datatable/datatable/header.mjs +268 -0
  21. package/source/components/datatable/datatable/namespace.mjs +13 -0
  22. package/source/components/datatable/datatable.mjs +789 -0
  23. package/source/components/datatable/embedded-pagination.mjs +113 -0
  24. package/source/components/datatable/filter/abstract-base.mjs +31 -0
  25. package/source/components/datatable/filter/date-range.mjs +1041 -0
  26. package/source/components/datatable/filter/input.mjs +175 -0
  27. package/source/components/datatable/filter/namespace.mjs +13 -0
  28. package/source/components/datatable/filter/range.mjs +671 -0
  29. package/source/components/datatable/filter/select.mjs +65 -0
  30. package/source/components/datatable/filter/settings.mjs +116 -0
  31. package/source/components/datatable/filter-button.mjs +98 -0
  32. package/source/components/datatable/filter.mjs +929 -0
  33. package/source/components/datatable/namespace.mjs +11 -0
  34. package/source/components/datatable/pagination.mjs +456 -0
  35. package/source/components/datatable/style/column-bar.pcss +123 -0
  36. package/source/components/datatable/style/dataset.pcss +13 -0
  37. package/source/components/datatable/style/datasource.pcss +16 -0
  38. package/source/components/datatable/style/datatable.pcss +239 -0
  39. package/source/components/datatable/style/embedded-pagination.pcss +101 -0
  40. package/source/components/datatable/style/filter-button.pcss +22 -0
  41. package/source/components/datatable/style/filter-controls-defaults.pcss +46 -0
  42. package/source/components/datatable/style/filter-date-range.pcss +9 -0
  43. package/source/components/datatable/style/filter-range.pcss +5 -0
  44. package/source/components/datatable/style/filter.pcss +156 -0
  45. package/source/components/datatable/style/pagination.pcss +59 -0
  46. package/source/components/datatable/style/select-filter.pcss +27 -0
  47. package/source/components/datatable/stylesheet/column-bar.mjs +33 -0
  48. package/source/components/datatable/stylesheet/dataset.mjs +33 -0
  49. package/source/components/datatable/stylesheet/datasource.mjs +33 -0
  50. package/source/components/datatable/stylesheet/datatable.mjs +33 -0
  51. package/source/components/datatable/stylesheet/embedded-pagination.mjs +33 -0
  52. package/source/components/datatable/stylesheet/filter-button.mjs +33 -0
  53. package/source/components/datatable/stylesheet/filter-controls-defaults.mjs +33 -0
  54. package/source/components/datatable/stylesheet/filter-date-range.mjs +33 -0
  55. package/source/components/datatable/stylesheet/filter-range.mjs +33 -0
  56. package/source/components/datatable/stylesheet/filter.mjs +33 -0
  57. package/source/components/datatable/stylesheet/namespace.mjs +13 -0
  58. package/source/components/datatable/stylesheet/pagination.mjs +33 -0
  59. package/source/components/datatable/stylesheet/select-filter.mjs +33 -0
  60. package/source/components/datatable/util.mjs +60 -0
  61. package/source/components/form/action-button.mjs +262 -0
  62. package/source/components/form/api-button.mjs +515 -0
  63. package/source/components/form/button-bar.mjs +739 -0
  64. package/source/components/form/button.mjs +350 -0
  65. package/source/components/form/confirm-button.mjs +330 -0
  66. package/source/components/form/constants.mjs +111 -0
  67. package/source/components/form/context-help.mjs +123 -0
  68. package/source/components/form/events.mjs +84 -0
  69. package/source/components/form/form.mjs +601 -0
  70. package/source/components/form/message-state-button.mjs +396 -0
  71. package/source/components/form/namespace.mjs +13 -0
  72. package/source/components/form/popper-button.mjs +435 -0
  73. package/source/components/form/popper.mjs +487 -0
  74. package/source/components/form/reload.mjs +360 -0
  75. package/source/components/form/select.mjs +2314 -0
  76. package/source/components/form/shadow-reload.mjs +137 -0
  77. package/source/components/form/state-button.mjs +182 -0
  78. package/source/components/form/style/action-button.pcss +41 -0
  79. package/source/components/form/style/api-button.pcss +0 -0
  80. package/source/components/form/style/button-bar.pcss +51 -0
  81. package/source/components/form/style/button.pcss +8 -0
  82. package/source/components/form/style/confirm-button.pcss +17 -0
  83. package/source/components/form/style/context-help.pcss +16 -0
  84. package/source/components/form/style/form.pcss +10 -0
  85. package/source/components/form/style/message-state-button.pcss +10 -0
  86. package/source/components/form/style/popper-button.pcss +16 -0
  87. package/source/components/form/style/popper.pcss +8 -0
  88. package/source/components/form/style/select.pcss +265 -0
  89. package/source/components/form/style/state-button.pcss +116 -0
  90. package/source/components/form/style/tabs.pcss +170 -0
  91. package/source/components/form/style/tree-select.pcss +81 -0
  92. package/source/components/form/stylesheet/action-button.mjs +33 -0
  93. package/source/components/form/stylesheet/api-button.mjs +33 -0
  94. package/source/components/form/stylesheet/button-bar.mjs +33 -0
  95. package/source/components/form/stylesheet/button.mjs +33 -0
  96. package/source/components/form/stylesheet/confirm-button.mjs +33 -0
  97. package/source/components/form/stylesheet/context-help.mjs +33 -0
  98. package/source/components/form/stylesheet/form.mjs +33 -0
  99. package/source/components/form/stylesheet/message-state-button.mjs +33 -0
  100. package/source/components/form/stylesheet/namespace.mjs +13 -0
  101. package/source/components/form/stylesheet/popper-button.mjs +33 -0
  102. package/source/components/form/stylesheet/popper.mjs +33 -0
  103. package/source/components/form/stylesheet/select.mjs +33 -0
  104. package/source/components/form/stylesheet/state-button.mjs +33 -0
  105. package/source/components/form/stylesheet/tabs.mjs +33 -0
  106. package/source/components/form/stylesheet/tree-select.mjs +33 -0
  107. package/source/components/form/tabs.mjs +1011 -0
  108. package/source/components/form/template.mjs +373 -0
  109. package/source/components/form/tree-select.mjs +527 -0
  110. package/source/components/form/types/namespace.mjs +13 -0
  111. package/source/components/form/types/state.mjs +93 -0
  112. package/source/components/form/util/fetch.mjs +133 -0
  113. package/source/components/form/util/floating-ui.mjs +245 -0
  114. package/source/components/form/util/namespace.mjs +13 -0
  115. package/source/components/form/util/popper.mjs +49 -0
  116. package/source/components/host/call-button.mjs +236 -0
  117. package/source/components/host/collapse.mjs +526 -0
  118. package/source/components/host/config-manager.mjs +304 -0
  119. package/source/components/host/constants.mjs +18 -0
  120. package/source/components/host/details.mjs +268 -0
  121. package/source/components/host/events.mjs +131 -0
  122. package/source/components/host/host.mjs +420 -0
  123. package/source/components/host/namespace.mjs +13 -0
  124. package/source/components/host/overlay.mjs +339 -0
  125. package/source/components/host/style/call-button.pcss +36 -0
  126. package/source/components/host/style/collapse.pcss +67 -0
  127. package/source/components/host/style/config-manager.pcss +5 -0
  128. package/source/components/host/style/details.pcss +68 -0
  129. package/source/components/host/style/host.pcss +43 -0
  130. package/source/components/host/style/overlay.pcss +73 -0
  131. package/source/components/host/style/toggle-button.pcss +36 -0
  132. package/source/components/host/style/viewer.pcss +13 -0
  133. package/source/components/host/stylesheet/call-button.mjs +33 -0
  134. package/source/components/host/stylesheet/collapse.mjs +33 -0
  135. package/source/components/host/stylesheet/config-manager.mjs +33 -0
  136. package/source/components/host/stylesheet/details.mjs +33 -0
  137. package/source/components/host/stylesheet/host.mjs +33 -0
  138. package/source/components/host/stylesheet/namespace.mjs +13 -0
  139. package/source/components/host/stylesheet/overlay.mjs +33 -0
  140. package/source/components/host/stylesheet/toggle-button.mjs +33 -0
  141. package/source/components/host/stylesheet/viewer.mjs +33 -0
  142. package/source/components/host/toggle-button.mjs +88 -0
  143. package/source/components/host/util.mjs +23 -0
  144. package/source/components/host/viewer.mjs +309 -0
  145. package/source/components/namespace.mjs +14 -0
  146. package/source/components/notify/constants.mjs +15 -0
  147. package/source/components/notify/events.mjs +15 -0
  148. package/source/components/notify/message.mjs +374 -0
  149. package/source/components/notify/namespace.mjs +15 -0
  150. package/source/components/notify/notify.mjs +236 -0
  151. package/source/components/notify/style/message.pcss +57 -0
  152. package/source/components/notify/style/notify.pcss +118 -0
  153. package/source/components/notify/stylesheet/message.mjs +33 -0
  154. package/source/components/notify/stylesheet/namespace.mjs +15 -0
  155. package/source/components/notify/stylesheet/notify.mjs +33 -0
  156. package/source/components/state/log/entry.mjs +126 -0
  157. package/source/components/state/log/namespace.mjs +13 -0
  158. package/source/components/state/log.mjs +275 -0
  159. package/source/components/state/namespace.mjs +13 -0
  160. package/source/components/state/state.mjs +131 -0
  161. package/source/components/state/style/log.pcss +111 -0
  162. package/source/components/state/style/state.pcss +113 -0
  163. package/source/components/state/stylesheet/log.mjs +33 -0
  164. package/source/components/state/stylesheet/state.mjs +33 -0
  165. package/source/components/style/badge.pcss +92 -0
  166. package/source/components/style/border.pcss +77 -0
  167. package/source/components/style/button.pcss +105 -0
  168. package/source/components/style/card.pcss +108 -0
  169. package/source/components/style/color.pcss +257 -0
  170. package/source/components/style/common.pcss +103 -0
  171. package/source/components/style/control.pcss +11 -0
  172. package/source/components/style/data-grid.pcss +43 -0
  173. package/source/components/style/display.pcss +42 -0
  174. package/source/components/style/floating-ui.pcss +33 -0
  175. package/source/components/style/form.pcss +5 -0
  176. package/source/components/style/host.pcss +15 -0
  177. package/source/components/style/link.pcss +63 -0
  178. package/source/components/style/mixin/badge.pcss +18 -0
  179. package/source/components/style/mixin/button.pcss +54 -0
  180. package/source/components/style/mixin/form.pcss +247 -0
  181. package/source/components/style/mixin/hover.pcss +8 -0
  182. package/source/components/style/mixin/media.pcss +107 -0
  183. package/source/components/style/mixin/property.pcss +288 -0
  184. package/source/components/style/mixin/skeleton.pcss +26 -0
  185. package/source/components/style/mixin/spinner.pcss +24 -0
  186. package/source/components/style/mixin/typography.pcss +52 -0
  187. package/source/components/style/normalize.pcss +14 -0
  188. package/source/components/style/popper.pcss +78 -0
  189. package/source/components/style/property.pcss +17 -0
  190. package/source/components/style/ripple.pcss +14 -0
  191. package/source/components/style/skeleton.pcss +28 -0
  192. package/source/components/style/space.pcss +47 -0
  193. package/source/components/style/spinner.pcss +6 -0
  194. package/source/components/style/table.pcss +46 -0
  195. package/source/components/style/theme.pcss +119 -0
  196. package/source/components/style/typography.pcss +131 -0
  197. package/source/components/stylesheet/badge.mjs +33 -0
  198. package/source/components/stylesheet/border.mjs +33 -0
  199. package/source/components/stylesheet/button.mjs +33 -0
  200. package/source/components/stylesheet/card.mjs +33 -0
  201. package/source/components/stylesheet/color.mjs +33 -0
  202. package/source/components/stylesheet/common.mjs +33 -0
  203. package/source/components/stylesheet/control.mjs +33 -0
  204. package/source/components/stylesheet/data-grid.mjs +33 -0
  205. package/source/components/stylesheet/display.mjs +33 -0
  206. package/source/components/stylesheet/floating-ui.mjs +33 -0
  207. package/source/components/stylesheet/form.mjs +33 -0
  208. package/source/components/stylesheet/host.mjs +33 -0
  209. package/source/components/stylesheet/link.mjs +33 -0
  210. package/source/components/stylesheet/namespace.mjs +13 -0
  211. package/source/components/stylesheet/normalize.mjs +33 -0
  212. package/source/components/stylesheet/popper.mjs +33 -0
  213. package/source/components/stylesheet/property.mjs +33 -0
  214. package/source/components/stylesheet/ripple.mjs +33 -0
  215. package/source/components/stylesheet/skeleton.mjs +33 -0
  216. package/source/components/stylesheet/space.mjs +33 -0
  217. package/source/components/stylesheet/spinner.mjs +33 -0
  218. package/source/components/stylesheet/table.mjs +33 -0
  219. package/source/components/stylesheet/theme.mjs +33 -0
  220. package/source/components/stylesheet/tree-menu.mjs +33 -0
  221. package/source/components/stylesheet/typography.mjs +33 -0
  222. package/source/components/tree-menu/namespace.mjs +13 -0
  223. package/source/components/tree-menu/style/tree-menu.pcss +107 -0
  224. package/source/components/tree-menu/stylesheet/namespace.mjs +13 -0
  225. package/source/components/tree-menu/stylesheet/tree-menu.mjs +33 -0
  226. package/source/components/tree-menu/tree-menu.mjs +660 -0
  227. package/source/constraints/abstract.mjs +17 -24
  228. package/source/constraints/abstractoperator.mjs +27 -22
  229. package/source/constraints/andoperator.mjs +20 -17
  230. package/source/constraints/invalid.mjs +17 -17
  231. package/source/constraints/isarray.mjs +20 -20
  232. package/source/constraints/isobject.mjs +20 -20
  233. package/source/constraints/oroperator.mjs +45 -45
  234. package/source/constraints/valid.mjs +17 -17
  235. package/source/data/buildmap.mjs +108 -103
  236. package/source/data/buildtree.mjs +59 -57
  237. package/source/data/datasource/dom.mjs +80 -84
  238. package/source/data/datasource/namespace.mjs +1 -1
  239. package/source/data/datasource/server/restapi/data-fetch-error.mjs +27 -25
  240. package/source/data/datasource/server/restapi/writeerror.mjs +34 -32
  241. package/source/data/datasource/server/restapi.mjs +176 -177
  242. package/source/data/datasource/server/webconnect.mjs +150 -156
  243. package/source/data/datasource/server.mjs +58 -59
  244. package/source/data/datasource/storage/localstorage.mjs +25 -24
  245. package/source/data/datasource/storage/sessionstorage.mjs +28 -25
  246. package/source/data/datasource/storage.mjs +74 -73
  247. package/source/data/datasource.mjs +176 -167
  248. package/source/data/diff.mjs +98 -97
  249. package/source/data/extend.mjs +42 -42
  250. package/source/data/pathfinder.mjs +301 -288
  251. package/source/data/pipe.mjs +36 -36
  252. package/source/data/transformer.mjs +742 -726
  253. package/source/dom/assembler.mjs +44 -44
  254. package/source/dom/attributes.mjs +142 -122
  255. package/source/dom/constants.mjs +62 -58
  256. package/source/dom/customcontrol.mjs +299 -299
  257. package/source/dom/customelement.mjs +843 -806
  258. package/source/dom/dimension.mjs +56 -46
  259. package/source/dom/events.mjs +74 -69
  260. package/source/dom/focusmanager.mjs +175 -175
  261. package/source/dom/locale.mjs +28 -28
  262. package/source/dom/ready.mjs +13 -13
  263. package/source/dom/resource/data.mjs +117 -111
  264. package/source/dom/resource/link/stylesheet.mjs +16 -16
  265. package/source/dom/resource/link.mjs +94 -96
  266. package/source/dom/resource/script.mjs +72 -74
  267. package/source/dom/resource.mjs +174 -172
  268. package/source/dom/resourcemanager.mjs +152 -156
  269. package/source/dom/slotted.mjs +78 -80
  270. package/source/dom/template.mjs +126 -112
  271. package/source/dom/theme.mjs +35 -35
  272. package/source/dom/updater.mjs +673 -651
  273. package/source/dom/util/extract-keys.mjs +34 -22
  274. package/source/dom/util/init-options-from-attributes.mjs +46 -38
  275. package/source/dom/util/namespace.mjs +13 -0
  276. package/source/dom/util/set-option-from-attribute.mjs +35 -29
  277. package/source/dom/util.mjs +112 -81
  278. package/source/dom/worker/factory.mjs +83 -83
  279. package/source/i18n/formatter.mjs +75 -73
  280. package/source/i18n/locale.mjs +146 -144
  281. package/source/i18n/provider.mjs +70 -64
  282. package/source/i18n/providers/embed.mjs +136 -127
  283. package/source/i18n/providers/fetch.mjs +84 -76
  284. package/source/i18n/translations.mjs +205 -195
  285. package/source/logging/handler/console.mjs +36 -36
  286. package/source/logging/handler.mjs +140 -140
  287. package/source/logging/logentry.mjs +25 -25
  288. package/source/logging/logger.mjs +177 -175
  289. package/source/math/random.mjs +63 -59
  290. package/source/monster.mjs +223 -103
  291. package/source/net/webconnect/message.mjs +31 -31
  292. package/source/net/webconnect.mjs +278 -271
  293. package/source/text/bracketed-key-value-hash.mjs +182 -179
  294. package/source/text/formatter.mjs +235 -210
  295. package/source/text/generate-range-comparison-expression.mjs +56 -34
  296. package/source/text/namespace.mjs +1 -1
  297. package/source/types/base.mjs +69 -61
  298. package/source/types/basewithoptions.mjs +46 -46
  299. package/source/types/binary.mjs +20 -20
  300. package/source/types/dataurl.mjs +96 -90
  301. package/source/types/global.mjs +45 -39
  302. package/source/types/id.mjs +25 -25
  303. package/source/types/internal.mjs +115 -114
  304. package/source/types/is.mjs +56 -40
  305. package/source/types/mediatype.mjs +119 -119
  306. package/source/types/namespace.mjs +1 -1
  307. package/source/types/node.mjs +160 -150
  308. package/source/types/nodelist.mjs +94 -96
  309. package/source/types/noderecursiveiterator.mjs +50 -50
  310. package/source/types/observablequeue.mjs +73 -73
  311. package/source/types/observer.mjs +104 -104
  312. package/source/types/observerlist.mjs +66 -66
  313. package/source/types/proxyobserver.mjs +210 -210
  314. package/source/types/queue.mjs +63 -63
  315. package/source/types/randomid.mjs +13 -13
  316. package/source/types/regex.mjs +3 -1
  317. package/source/types/stack.mjs +64 -64
  318. package/source/types/tokenlist.mjs +206 -205
  319. package/source/types/typeof.mjs +12 -10
  320. package/source/types/uniquequeue.mjs +48 -48
  321. package/source/types/uuid.mjs +32 -32
  322. package/source/types/validate.mjs +67 -67
  323. package/source/types/version.mjs +115 -105
  324. package/source/util/clone.mjs +103 -91
  325. package/source/util/comparator.mjs +97 -97
  326. package/source/util/deadmansswitch.mjs +40 -44
  327. package/source/util/freeze.mjs +10 -9
  328. package/source/util/namespace.mjs +1 -1
  329. package/source/util/processing.mjs +104 -105
  330. package/source/util/runtime.mjs +56 -44
  331. package/source/util/trimspaces.mjs +24 -24
  332. package/test/cases/components/form/button.mjs +122 -0
  333. package/test/cases/components/form/confirm-button.mjs +127 -0
  334. package/test/cases/components/form/form.mjs +317 -0
  335. package/test/cases/components/form/reload.mjs +188 -0
  336. package/test/cases/components/form/select.mjs +229 -0
  337. package/test/cases/components/form/state-button.mjs +130 -0
  338. package/test/cases/components/form/tabs.mjs +98 -0
  339. package/test/cases/components/form/template.mjs +189 -0
  340. package/test/cases/components/form/tree-select.mjs +216 -0
  341. package/test/cases/components/host/details.mjs +68 -0
  342. package/test/cases/components/host/host.mjs +70 -0
  343. package/test/cases/components/host/overlay.mjs +60 -0
  344. package/test/cases/components/host/util.mjs +79 -0
  345. package/test/cases/components/notify/message.mjs +39 -0
  346. package/test/cases/components/notify/notify.mjs +89 -0
  347. package/test/cases/dom/customcontrol.mjs +5 -4
  348. package/test/cases/math/random.mjs +0 -1
  349. package/test/cases/monster.mjs +1 -1
  350. package/test/cases/net/webconnect/message.mjs +0 -1
  351. package/test/cases/types/node.mjs +1 -1
  352. package/test/util/chai-dom.mjs +2 -2
  353. package/test/util/intersection-mock.mjs +69 -0
  354. package/test/util/jsdom.mjs +41 -25
  355. package/test/util/localstorage.mjs +1 -0
  356. package/test/util/resize-observer.mjs +29 -0
  357. package/test/util/websocket.mjs +4 -1
  358. package/test/web/import.js +16 -1
  359. package/test/web/test.html +28 -5
  360. package/test/web/tests.js +30398 -17879
@@ -24,29 +24,34 @@ export { AbstractOperator };
24
24
  * @summary The abstract operator constraint
25
25
  */
26
26
  class AbstractOperator extends AbstractConstraint {
27
- /**
28
- *
29
- * @param {AbstractConstraint} operantA
30
- * @param {AbstractConstraint} operantB
31
- * @throws {TypeError} "parameters must be from type AbstractConstraint"
32
- */
33
- constructor(operantA, operantB) {
34
- super();
27
+ /**
28
+ *
29
+ * @param {AbstractConstraint} operantA
30
+ * @param {AbstractConstraint} operantB
31
+ * @throws {TypeError} "parameters must be from type AbstractConstraint"
32
+ */
33
+ constructor(operantA, operantB) {
34
+ super();
35
35
 
36
- if (!(operantA instanceof AbstractConstraint && operantB instanceof AbstractConstraint)) {
37
- throw new TypeError("parameters must be from type AbstractConstraint");
38
- }
36
+ if (
37
+ !(
38
+ operantA instanceof AbstractConstraint &&
39
+ operantB instanceof AbstractConstraint
40
+ )
41
+ ) {
42
+ throw new TypeError("parameters must be from type AbstractConstraint");
43
+ }
39
44
 
40
- this.operantA = operantA;
41
- this.operantB = operantB;
42
- }
45
+ this.operantA = operantA;
46
+ this.operantB = operantB;
47
+ }
43
48
 
44
- /**
45
- * This method is called by the `instanceof` operator.
46
- * @returns {symbol}
47
- * @since 2.1.0
48
- */
49
- static get [instanceSymbol]() {
50
- return Symbol.for("@schukai/monster/constraints/abstract-operator");
51
- }
49
+ /**
50
+ * This method is called by the `instanceof` operator.
51
+ * @returns {symbol}
52
+ * @since 2.1.0
53
+ */
54
+ static get [instanceSymbol]() {
55
+ return Symbol.for("@schukai/monster/constraints/abstract-operator");
56
+ }
52
57
  }
@@ -24,22 +24,25 @@ export { AndOperator };
24
24
  * @summary A and operator constraint
25
25
  */
26
26
  class AndOperator extends AbstractOperator {
27
- /**
28
- * this method return a promise containing the result of the check.
29
- *
30
- * @param {*} value
31
- * @returns {Promise}
32
- */
33
- isValid(value) {
34
- return Promise.all([this.operantA.isValid(value), this.operantB.isValid(value)]);
35
- }
27
+ /**
28
+ * this method return a promise containing the result of the check.
29
+ *
30
+ * @param {*} value
31
+ * @returns {Promise}
32
+ */
33
+ isValid(value) {
34
+ return Promise.all([
35
+ this.operantA.isValid(value),
36
+ this.operantB.isValid(value),
37
+ ]);
38
+ }
36
39
 
37
- /**
38
- * This method is called by the `instanceof` operator.
39
- * @returns {symbol}
40
- * @since 2.1.0
41
- */
42
- static get [instanceSymbol]() {
43
- return Symbol.for("@schukai/monster/constraints/and-operator");
44
- }
40
+ /**
41
+ * This method is called by the `instanceof` operator.
42
+ * @returns {symbol}
43
+ * @since 2.1.0
44
+ */
45
+ static get [instanceSymbol]() {
46
+ return Symbol.for("@schukai/monster/constraints/and-operator");
47
+ }
45
48
  }
@@ -24,22 +24,22 @@ export { Invalid };
24
24
  * @summary A constraint that always invalid
25
25
  */
26
26
  class Invalid extends AbstractConstraint {
27
- /**
28
- * this method return a rejected promise
29
- *
30
- * @param {*} value
31
- * @returns {Promise}
32
- */
33
- isValid(value) {
34
- return Promise.reject(value);
35
- }
27
+ /**
28
+ * this method return a rejected promise
29
+ *
30
+ * @param {*} value
31
+ * @returns {Promise}
32
+ */
33
+ isValid(value) {
34
+ return Promise.reject(value);
35
+ }
36
36
 
37
- /**
38
- * This method is called by the `instanceof` operator.
39
- * @returns {symbol}
40
- * @since 2.1.0
41
- */
42
- static get [instanceSymbol]() {
43
- return Symbol.for("@schukai/monster/constraints/invalid");
44
- }
37
+ /**
38
+ * This method is called by the `instanceof` operator.
39
+ * @returns {symbol}
40
+ * @since 2.1.0
41
+ */
42
+ static get [instanceSymbol]() {
43
+ return Symbol.for("@schukai/monster/constraints/invalid");
44
+ }
45
45
  }
@@ -23,26 +23,26 @@ export { IsArray };
23
23
  * @summary A constraint to check if a value is an array
24
24
  */
25
25
  class IsArray extends AbstractConstraint {
26
- /**
27
- * this method return a promise containing the result of the check.
28
- *
29
- * @param {*} value
30
- * @returns {Promise}
31
- */
32
- isValid(value) {
33
- if (isArray(value)) {
34
- return Promise.resolve(value);
35
- }
26
+ /**
27
+ * this method return a promise containing the result of the check.
28
+ *
29
+ * @param {*} value
30
+ * @returns {Promise}
31
+ */
32
+ isValid(value) {
33
+ if (isArray(value)) {
34
+ return Promise.resolve(value);
35
+ }
36
36
 
37
- return Promise.reject(value);
38
- }
37
+ return Promise.reject(value);
38
+ }
39
39
 
40
- /**
41
- * This method is called by the `instanceof` operator.
42
- * @returns {symbol}
43
- * @since 2.1.0
44
- */
45
- static get [instanceSymbol]() {
46
- return Symbol.for("@schukai/monster/constraint/is-array");
47
- }
40
+ /**
41
+ * This method is called by the `instanceof` operator.
42
+ * @returns {symbol}
43
+ * @since 2.1.0
44
+ */
45
+ static get [instanceSymbol]() {
46
+ return Symbol.for("@schukai/monster/constraint/is-array");
47
+ }
48
48
  }
@@ -23,26 +23,26 @@ export { IsObject };
23
23
  * @summary A constraint to check if a value is an object
24
24
  */
25
25
  class IsObject extends AbstractConstraint {
26
- /**
27
- * this method return a promise containing the result of the check.
28
- *
29
- * @param {*} value
30
- * @returns {Promise}
31
- */
32
- isValid(value) {
33
- if (isObject(value)) {
34
- return Promise.resolve(value);
35
- }
26
+ /**
27
+ * this method return a promise containing the result of the check.
28
+ *
29
+ * @param {*} value
30
+ * @returns {Promise}
31
+ */
32
+ isValid(value) {
33
+ if (isObject(value)) {
34
+ return Promise.resolve(value);
35
+ }
36
36
 
37
- return Promise.reject(value);
38
- }
37
+ return Promise.reject(value);
38
+ }
39
39
 
40
- /**
41
- * This method is called by the `instanceof` operator.
42
- * @returns {symbol}
43
- * @since 2.1.0
44
- */
45
- static get [instanceSymbol]() {
46
- return Symbol.for("@schukai/monster/constraint/is-object");
47
- }
40
+ /**
41
+ * This method is called by the `instanceof` operator.
42
+ * @returns {symbol}
43
+ * @since 2.1.0
44
+ */
45
+ static get [instanceSymbol]() {
46
+ return Symbol.for("@schukai/monster/constraint/is-object");
47
+ }
48
48
  }
@@ -24,53 +24,53 @@ export { OrOperator };
24
24
  * @summary A or operator
25
25
  */
26
26
  class OrOperator extends AbstractOperator {
27
- /**
28
- * this method return a promise containing the result of the check.
29
- *
30
- * @param {*} value
31
- * @returns {Promise}
32
- */
33
- isValid(value) {
34
- var self = this;
27
+ /**
28
+ * this method return a promise containing the result of the check.
29
+ *
30
+ * @param {*} value
31
+ * @returns {Promise}
32
+ */
33
+ isValid(value) {
34
+ var self = this;
35
35
 
36
- return new Promise(function (resolve, reject) {
37
- let a;
38
- let b;
36
+ return new Promise(function (resolve, reject) {
37
+ let a;
38
+ let b;
39
39
 
40
- self.operantA
41
- .isValid(value)
42
- .then(function () {
43
- resolve();
44
- })
45
- .catch(function () {
46
- a = false;
47
- /** b has already been evaluated and was not true */
48
- if (b === false) {
49
- reject();
50
- }
51
- });
40
+ self.operantA
41
+ .isValid(value)
42
+ .then(function () {
43
+ resolve();
44
+ })
45
+ .catch(function () {
46
+ a = false;
47
+ /** b has already been evaluated and was not true */
48
+ if (b === false) {
49
+ reject();
50
+ }
51
+ });
52
52
 
53
- self.operantB
54
- .isValid(value)
55
- .then(function () {
56
- resolve();
57
- })
58
- .catch(function () {
59
- b = false;
60
- /** b has already been evaluated and was not true */
61
- if (a === false) {
62
- reject();
63
- }
64
- });
65
- });
66
- }
53
+ self.operantB
54
+ .isValid(value)
55
+ .then(function () {
56
+ resolve();
57
+ })
58
+ .catch(function () {
59
+ b = false;
60
+ /** b has already been evaluated and was not true */
61
+ if (a === false) {
62
+ reject();
63
+ }
64
+ });
65
+ });
66
+ }
67
67
 
68
- /**
69
- * This method is called by the `instanceof` operator.
70
- * @returns {symbol}
71
- * @since 2.1.0
72
- */
73
- static get [instanceSymbol]() {
74
- return Symbol.for("@schukai/monster/constraints/or-operator");
75
- }
68
+ /**
69
+ * This method is called by the `instanceof` operator.
70
+ * @returns {symbol}
71
+ * @since 2.1.0
72
+ */
73
+ static get [instanceSymbol]() {
74
+ return Symbol.for("@schukai/monster/constraints/or-operator");
75
+ }
76
76
  }
@@ -24,22 +24,22 @@ export { Valid };
24
24
  * @summary A constraint that always valid
25
25
  */
26
26
  class Valid extends AbstractConstraint {
27
- /**
28
- * this method return a promise containing the result of the check.
29
- *
30
- * @param {*} value
31
- * @returns {Promise}
32
- */
33
- isValid(value) {
34
- return Promise.resolve(value);
35
- }
27
+ /**
28
+ * this method return a promise containing the result of the check.
29
+ *
30
+ * @param {*} value
31
+ * @returns {Promise}
32
+ */
33
+ isValid(value) {
34
+ return Promise.resolve(value);
35
+ }
36
36
 
37
- /**
38
- * This method is called by the `instanceof` operator.
39
- * @returns {symbol}
40
- * @since 2.1.0
41
- */
42
- static get [instanceSymbol]() {
43
- return Symbol.for("@schukai/monster/constraints/valid");
44
- }
37
+ /**
38
+ * This method is called by the `instanceof` operator.
39
+ * @returns {symbol}
40
+ * @since 2.1.0
41
+ */
42
+ static get [instanceSymbol]() {
43
+ return Symbol.for("@schukai/monster/constraints/valid");
44
+ }
45
45
  }
@@ -40,11 +40,11 @@ const PARENT = "^";
40
40
  * @throws {TypeError} - If the selector callback does not return a map.
41
41
  **/
42
42
  function buildMap(subject, selector, valueTemplate, keyTemplate, filter) {
43
- return assembleParts(subject, selector, filter, function (v, k, m) {
44
- k = build(v, keyTemplate, k);
45
- v = build(v, valueTemplate);
46
- this.set(k, v);
47
- });
43
+ return assembleParts(subject, selector, filter, function (v, k, m) {
44
+ k = build(v, keyTemplate, k);
45
+ v = build(v, valueTemplate);
46
+ this.set(k, v);
47
+ });
48
48
  }
49
49
 
50
50
  /**
@@ -110,34 +110,34 @@ function buildMap(subject, selector, valueTemplate, keyTemplate, filter) {
110
110
  * @memberOf Monster.Data
111
111
  */
112
112
  function assembleParts(subject, selector, filter, callback) {
113
- const result = new Map();
114
-
115
- let map;
116
- if (isFunction(selector)) {
117
- map = selector(subject);
118
- if (!(map instanceof Map)) {
119
- throw new TypeError("the selector callback must return a map");
120
- }
121
- } else if (isString(selector)) {
122
- map = new Map();
123
- buildFlatMap.call(map, subject, selector);
124
- } else {
125
- throw new TypeError("selector is neither a string nor a function");
126
- }
127
-
128
- if (!(map instanceof Map)) {
129
- return result;
130
- }
131
-
132
- map.forEach((v, k, m) => {
133
- if (isFunction(filter)) {
134
- if (filter.call(m, v, k) !== true) return;
135
- }
136
-
137
- callback.call(result, v, k, m);
138
- });
139
-
140
- return result;
113
+ const result = new Map();
114
+
115
+ let map;
116
+ if (isFunction(selector)) {
117
+ map = selector(subject);
118
+ if (!(map instanceof Map)) {
119
+ throw new TypeError("the selector callback must return a map");
120
+ }
121
+ } else if (isString(selector)) {
122
+ map = new Map();
123
+ buildFlatMap.call(map, subject, selector);
124
+ } else {
125
+ throw new TypeError("selector is neither a string nor a function");
126
+ }
127
+
128
+ if (!(map instanceof Map)) {
129
+ return result;
130
+ }
131
+
132
+ map.forEach((v, k, m) => {
133
+ if (isFunction(filter)) {
134
+ if (filter.call(m, v, k) !== true) return;
135
+ }
136
+
137
+ callback.call(result, v, k, m);
138
+ });
139
+
140
+ return result;
141
141
  }
142
142
 
143
143
  /**
@@ -149,58 +149,63 @@ function assembleParts(subject, selector, filter, callback) {
149
149
  * @return {*}
150
150
  */
151
151
  function buildFlatMap(subject, selector, key, parentMap) {
152
- const result = this;
153
- const currentMap = new Map();
154
-
155
- const resultLength = result.size;
156
-
157
- if (key === undefined) key = [];
158
-
159
- let parts = selector.split(DELIMITER);
160
- let current = "";
161
- let currentPath = [];
162
- do {
163
- current = parts.shift();
164
- currentPath.push(current);
165
-
166
- if (current === WILDCARD) {
167
- let finder = new Pathfinder(subject);
168
- let map;
169
-
170
- try {
171
- map = finder.getVia(currentPath.join(DELIMITER));
172
- } catch (e) {
173
- let a = e;
174
- map = new Map();
175
- }
176
-
177
- for (const [k, o] of map) {
178
- let copyKey = clone(key);
179
-
180
- currentPath.map((a) => {
181
- copyKey.push(a === WILDCARD ? k : a);
182
- });
183
-
184
- let kk = copyKey.join(DELIMITER);
185
- let sub = buildFlatMap.call(result, o, parts.join(DELIMITER), copyKey, o);
186
-
187
- if (isObject(sub) && parentMap !== undefined) {
188
- sub[PARENT] = parentMap;
189
- }
190
-
191
- currentMap.set(kk, sub);
192
- }
193
- }
194
- } while (parts.length > 0);
195
-
196
- // no set in child run
197
- if (resultLength === result.size) {
198
- for (const [k, o] of currentMap) {
199
- result.set(k, o);
200
- }
201
- }
202
-
203
- return subject;
152
+ const currentMap = new Map();
153
+
154
+ const resultLength = this.size;
155
+
156
+ if (key === undefined) key = [];
157
+
158
+ const parts = selector.split(DELIMITER);
159
+ let current = "";
160
+ const currentPath = [];
161
+ do {
162
+ current = parts.shift();
163
+ currentPath.push(current);
164
+
165
+ if (current === WILDCARD) {
166
+ const finder = new Pathfinder(subject);
167
+ let map;
168
+
169
+ try {
170
+ map = finder.getVia(currentPath.join(DELIMITER));
171
+ } catch (e) {
172
+ const a = e;
173
+ map = new Map();
174
+ }
175
+
176
+ for (const [k, o] of map) {
177
+ const copyKey = clone(key);
178
+
179
+ currentPath.map((a) => {
180
+ copyKey.push(a === WILDCARD ? k : a);
181
+ });
182
+
183
+ const kk = copyKey.join(DELIMITER);
184
+ const sub = buildFlatMap.call(
185
+ this,
186
+ o,
187
+ parts.join(DELIMITER),
188
+ copyKey,
189
+ o,
190
+ );
191
+
192
+ if (isObject(sub) && parentMap !== undefined) {
193
+ sub[PARENT] = parentMap;
194
+ }
195
+
196
+ currentMap.set(kk, sub);
197
+ }
198
+ }
199
+ } while (parts.length > 0);
200
+
201
+ // no set in child run
202
+ if (resultLength === this.size) {
203
+ for (const [k, o] of currentMap) {
204
+ this.set(k, o);
205
+ }
206
+ }
207
+
208
+ return subject;
204
209
  }
205
210
 
206
211
  /**
@@ -354,30 +359,30 @@ function buildFlatMap(subject, selector, key, parentMap) {
354
359
  * @return {*}
355
360
  */
356
361
  function build(subject, definition, defaultValue) {
357
- if (definition === undefined) return defaultValue ? defaultValue : subject;
358
- validateString(definition);
362
+ if (definition === undefined) return defaultValue ? defaultValue : subject;
363
+ validateString(definition);
359
364
 
360
- const regexp = /(?<placeholder>\${(?<path>[a-z\^A-Z.\-_0-9]*)})/gm;
361
- const array = [...definition.matchAll(regexp)];
365
+ const regexp = /(?<placeholder>\${(?<path>[a-z\^A-Z.\-_0-9]*)})/gm;
366
+ const array = [...definition.matchAll(regexp)];
362
367
 
363
- let finder = new Pathfinder(subject);
368
+ const finder = new Pathfinder(subject);
364
369
 
365
- if (array.length === 0) {
366
- return finder.getVia(definition);
367
- }
370
+ if (array.length === 0) {
371
+ return finder.getVia(definition);
372
+ }
368
373
 
369
- array.forEach((a) => {
370
- let groups = a?.["groups"];
371
- let placeholder = groups?.["placeholder"];
372
- if (placeholder === undefined) return;
374
+ array.forEach((a) => {
375
+ const groups = a?.["groups"];
376
+ const placeholder = groups?.["placeholder"];
377
+ if (placeholder === undefined) return;
373
378
 
374
- let path = groups?.["path"];
379
+ const path = groups?.["path"];
375
380
 
376
- let v = finder.getVia(path);
377
- if (v === undefined) v = defaultValue;
381
+ let v = finder.getVia(path);
382
+ if (v === undefined) v = defaultValue;
378
383
 
379
- definition = definition.replaceAll(placeholder, v);
380
- });
384
+ definition = definition.replaceAll(placeholder, v);
385
+ });
381
386
 
382
- return definition;
387
+ return definition;
383
388
  }