@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
@@ -37,112 +37,112 @@ export { Comparator };
37
37
  * @memberOf Monster.Util
38
38
  */
39
39
  class Comparator extends Base {
40
- /**
41
- * create new comparator
42
- *
43
- * @param {Monster.Util~exampleCallback} [callback] Comparator callback
44
- * @throw {TypeError} unsupported type
45
- * @throw {TypeError} impractical comparison
46
- */
47
- constructor(callback) {
48
- super();
40
+ /**
41
+ * create new comparator
42
+ *
43
+ * @param {Monster.Util~exampleCallback} [callback] Comparator callback
44
+ * @throw {TypeError} unsupported type
45
+ * @throw {TypeError} impractical comparison
46
+ */
47
+ constructor(callback) {
48
+ super();
49
49
 
50
- if (isFunction(callback)) {
51
- this.compare = callback;
52
- } else if (callback !== undefined) {
53
- throw new TypeError("unsupported type");
54
- } else {
55
- // default compare function
50
+ if (isFunction(callback)) {
51
+ this.compare = callback;
52
+ } else if (callback !== undefined) {
53
+ throw new TypeError("unsupported type");
54
+ } else {
55
+ // default compare function
56
56
 
57
- /**
58
- *
59
- * @param {*} a
60
- * @param {*} b
61
- * @return {integer} -1, 0 or 1
62
- */
63
- this.compare = function (a, b) {
64
- if (typeof a !== typeof b) {
65
- throw new TypeError("impractical comparison", "types/comparator.mjs");
66
- }
57
+ /**
58
+ *
59
+ * @param {*} a
60
+ * @param {*} b
61
+ * @return {integer} -1, 0 or 1
62
+ */
63
+ this.compare = function (a, b) {
64
+ if (typeof a !== typeof b) {
65
+ throw new TypeError("impractical comparison", "types/comparator.mjs");
66
+ }
67
67
 
68
- if (a === b) {
69
- return 0;
70
- }
71
- return a < b ? -1 : 1;
72
- };
73
- }
74
- }
68
+ if (a === b) {
69
+ return 0;
70
+ }
71
+ return a < b ? -1 : 1;
72
+ };
73
+ }
74
+ }
75
75
 
76
- /**
77
- * changes the order of the operators
78
- *
79
- * @return {Comparator}
80
- */
81
- reverse() {
82
- const original = this.compare;
83
- this.compare = (a, b) => original(b, a);
84
- return this;
85
- }
76
+ /**
77
+ * changes the order of the operators
78
+ *
79
+ * @return {Comparator}
80
+ */
81
+ reverse() {
82
+ const original = this.compare;
83
+ this.compare = (a, b) => original(b, a);
84
+ return this;
85
+ }
86
86
 
87
- /**
88
- * Checks if two variables are equal.
89
- *
90
- * @param {*} a
91
- * @param {*} b
92
- *
93
- * @return {boolean}
94
- */
95
- equal(a, b) {
96
- return this.compare(a, b) === 0;
97
- }
87
+ /**
88
+ * Checks if two variables are equal.
89
+ *
90
+ * @param {*} a
91
+ * @param {*} b
92
+ *
93
+ * @return {boolean}
94
+ */
95
+ equal(a, b) {
96
+ return this.compare(a, b) === 0;
97
+ }
98
98
 
99
- /**
100
- * Checks if variable `a` is greater than `b`
101
- *
102
- * @param {*} a
103
- * @param {*} b
104
- *
105
- * @return {boolean}
106
- */
107
- greaterThan(a, b) {
108
- return this.compare(a, b) > 0;
109
- }
99
+ /**
100
+ * Checks if variable `a` is greater than `b`
101
+ *
102
+ * @param {*} a
103
+ * @param {*} b
104
+ *
105
+ * @return {boolean}
106
+ */
107
+ greaterThan(a, b) {
108
+ return this.compare(a, b) > 0;
109
+ }
110
110
 
111
- /**
112
- * Checks if variable `a` is greater than or equal to `b`
113
- *
114
- * @param {*} a
115
- * @param {*} b
116
- *
117
- * @return {boolean}
118
- */
119
- greaterThanOrEqual(a, b) {
120
- return this.greaterThan(a, b) || this.equal(a, b);
121
- }
111
+ /**
112
+ * Checks if variable `a` is greater than or equal to `b`
113
+ *
114
+ * @param {*} a
115
+ * @param {*} b
116
+ *
117
+ * @return {boolean}
118
+ */
119
+ greaterThanOrEqual(a, b) {
120
+ return this.greaterThan(a, b) || this.equal(a, b);
121
+ }
122
122
 
123
- /**
124
- * Checks if variable `a` is less than or equal to `b`
125
- *
126
- * @param {*} a
127
- * @param {*} b
128
- *
129
- * @return {boolean}
130
- */
131
- lessThanOrEqual(a, b) {
132
- return this.lessThan(a, b) || this.equal(a, b);
133
- }
123
+ /**
124
+ * Checks if variable `a` is less than or equal to `b`
125
+ *
126
+ * @param {*} a
127
+ * @param {*} b
128
+ *
129
+ * @return {boolean}
130
+ */
131
+ lessThanOrEqual(a, b) {
132
+ return this.lessThan(a, b) || this.equal(a, b);
133
+ }
134
134
 
135
- /**
136
- * Checks if variable a is less than b
137
- *
138
- * @param {*} a
139
- * @param {*} b
140
- *
141
- * @return {boolean}
142
- */
143
- lessThan(a, b) {
144
- return this.compare(a, b) < 0;
145
- }
135
+ /**
136
+ * Checks if variable a is less than b
137
+ *
138
+ * @param {*} a
139
+ * @param {*} b
140
+ *
141
+ * @return {boolean}
142
+ */
143
+ lessThan(a, b) {
144
+ return this.compare(a, b) < 0;
145
+ }
146
146
  }
147
147
 
148
148
  /**
@@ -24,53 +24,51 @@ export { DeadMansSwitch };
24
24
  * @summary Class to be able to execute function chains
25
25
  */
26
26
  class DeadMansSwitch extends Base {
27
- /**
28
- * Create new dead man's switch
29
- *
30
- * @param {Integer} delay
31
- * @param {function} callback
32
- * @throw {TypeError} the arguments must be either integer or functions
33
- * @throws {TypeError} value is not an integer
34
- */
35
- constructor(delay, callback) {
36
- super();
27
+ /**
28
+ * Create new dead man's switch
29
+ *
30
+ * @param {Integer} delay
31
+ * @param {function} callback
32
+ * @throw {TypeError} the arguments must be either integer or functions
33
+ * @throws {TypeError} value is not an integer
34
+ */
35
+ constructor(delay, callback) {
36
+ super();
37
37
 
38
- init.call(this, validateInteger(delay), validateFunction(callback));
39
- }
38
+ init.call(this, validateInteger(delay), validateFunction(callback));
39
+ }
40
40
 
41
- /**
42
- *
43
- * @param {Integer|undefined} [delay]
44
- */
45
- touch(delay) {
46
- if (this[internalSymbol]["isAlreadyRun"] === true) {
47
- throw new Error("has already run");
48
- }
41
+ /**
42
+ *
43
+ * @param {Integer|undefined} [delay]
44
+ */
45
+ touch(delay) {
46
+ if (this[internalSymbol]["isAlreadyRun"] === true) {
47
+ throw new Error("has already run");
48
+ }
49
49
 
50
- if (isInteger(delay)) {
51
- this[internalSymbol]["delay"] = delay;
52
- } else if (delay !== undefined) {
53
- throw new Error("unsupported argument");
54
- }
50
+ if (isInteger(delay)) {
51
+ this[internalSymbol]["delay"] = delay;
52
+ } else if (delay !== undefined) {
53
+ throw new Error("unsupported argument");
54
+ }
55
55
 
56
- clearTimeout(this[internalSymbol]["timer"]);
56
+ clearTimeout(this[internalSymbol]["timer"]);
57
57
 
58
- initCallback.call(this);
58
+ initCallback.call(this);
59
59
 
60
- return this;
61
- }
60
+ return this;
61
+ }
62
62
  }
63
63
 
64
64
  /**
65
65
  * @private
66
66
  */
67
67
  function initCallback() {
68
- const self = this;
69
-
70
- self[internalSymbol]["timer"] = setTimeout(() => {
71
- self[internalSymbol]["isAlreadyRun"] = true;
72
- self[internalSymbol]["callback"]();
73
- }, self[internalSymbol]["delay"]);
68
+ this[internalSymbol]["timer"] = setTimeout(() => {
69
+ this[internalSymbol]["isAlreadyRun"] = true;
70
+ this[internalSymbol]["callback"]();
71
+ }, this[internalSymbol]["delay"]);
74
72
  }
75
73
 
76
74
  /**
@@ -79,14 +77,12 @@ function initCallback() {
79
77
  * @param {function} callback
80
78
  */
81
79
  function init(delay, callback) {
82
- const self = this;
83
-
84
- self[internalSymbol] = {
85
- callback,
86
- delay,
87
- isAlreadyRun: false,
88
- timer: undefined,
89
- };
80
+ this[internalSymbol] = {
81
+ callback,
82
+ delay,
83
+ isAlreadyRun: false,
84
+ timer: undefined,
85
+ };
90
86
 
91
- initCallback.call(self);
87
+ initCallback.call(this);
92
88
  }
@@ -21,17 +21,18 @@ export { deepFreeze };
21
21
  * @throws {TypeError} value is not a object
22
22
  */
23
23
  function deepFreeze(object) {
24
- validateObject(object);
24
+ validateObject(object);
25
25
 
26
- // Retrieve the defined property names of the object
27
- var propNames = Object.getOwnPropertyNames(object);
26
+ // Retrieve the defined property names of the object
27
+ var propNames = Object.getOwnPropertyNames(object);
28
28
 
29
- // Freeze properties before freezing yourself
30
- for (let name of propNames) {
31
- let value = object[name];
29
+ // Freeze properties before freezing yourself
30
+ for (const name of propNames) {
31
+ const value = object[name];
32
32
 
33
- object[name] = value && typeof value === "object" ? deepFreeze(value) : value;
34
- }
33
+ object[name] =
34
+ value && typeof value === "object" ? deepFreeze(value) : value;
35
+ }
35
36
 
36
- return Object.freeze(object);
37
+ return Object.freeze(object);
37
38
  }
@@ -4,7 +4,7 @@
4
4
  */
5
5
 
6
6
  /**
7
- * Namespace for utilities.
7
+ * Namespace for all util related functions.
8
8
  *
9
9
  * @namespace Monster.Util
10
10
  * @memberOf Monster
@@ -5,51 +5,50 @@
5
5
  * License text available at https://www.gnu.org/licenses/agpl-3.0.en.html
6
6
  */
7
7
 
8
- import {internalSymbol} from "../constants.mjs";
9
- import {Base} from "../types/base.mjs";
10
- import {getGlobalFunction} from "../types/global.mjs";
11
- import {isFunction, isInteger} from "../types/is.mjs";
12
- import {Queue} from "../types/queue.mjs";
13
- import {validateFunction, validateInteger} from "../types/validate.mjs";
8
+ import { internalSymbol } from "../constants.mjs";
9
+ import { Base } from "../types/base.mjs";
10
+ import { getGlobalFunction } from "../types/global.mjs";
11
+ import { isFunction, isInteger } from "../types/is.mjs";
12
+ import { Queue } from "../types/queue.mjs";
13
+ import { validateFunction, validateInteger } from "../types/validate.mjs";
14
14
 
15
- export {Processing};
15
+ export { Processing };
16
16
 
17
17
  /**
18
18
  * @private
19
19
  */
20
20
  class Callback {
21
- /**
22
- *
23
- * @param {function} callback
24
- * @param {int|undefined} time
25
- * @throws {TypeError} value is not a function
26
- * @throws {TypeError} value is not an integer
27
- * @private
28
- */
29
- constructor(callback, time) {
30
- this[internalSymbol] = {
31
- callback: validateFunction(callback),
32
- time: validateInteger(time ?? 0),
33
- };
34
- }
21
+ /**
22
+ *
23
+ * @param {function} callback
24
+ * @param {int|undefined} time
25
+ * @throws {TypeError} value is not a function
26
+ * @throws {TypeError} value is not an integer
27
+ * @private
28
+ */
29
+ constructor(callback, time) {
30
+ this[internalSymbol] = {
31
+ callback: validateFunction(callback),
32
+ time: validateInteger(time ?? 0),
33
+ };
34
+ }
35
35
 
36
- /**
37
- * @private
38
- * @param {*} data
39
- * @return {Promise}
40
- */
41
- run(data) {
42
- const self = this;
43
- return new Promise((resolve, reject) => {
44
- getGlobalFunction("setTimeout")(() => {
45
- try {
46
- resolve(self[internalSymbol].callback(data));
47
- } catch (e) {
48
- reject(e);
49
- }
50
- }, self[internalSymbol].time);
51
- });
52
- }
36
+ /**
37
+ * @private
38
+ * @param {*} data
39
+ * @return {Promise}
40
+ */
41
+ run(data) {
42
+ return new Promise((resolve, reject) => {
43
+ getGlobalFunction("setTimeout")(() => {
44
+ try {
45
+ resolve(this[internalSymbol].callback(data));
46
+ } catch (e) {
47
+ reject(e);
48
+ }
49
+ }, this[internalSymbol].time);
50
+ });
51
+ }
53
52
  }
54
53
 
55
54
  /**
@@ -74,80 +73,80 @@ class Callback {
74
73
  * @summary Class to be able to execute function chains
75
74
  */
76
75
  class Processing extends Base {
77
- /**
78
- * Create new Processing
79
- *
80
- * Functions and timeouts can be passed. If a timeout is passed, it applies to all further functions.
81
- * In the example
82
- *
83
- * `timeout1, function1, function2, function3, timeout2, function4`
84
- *
85
- * the timeout1 is valid for the functions 1, 2 and 3 and the timeout2 for the function4.
86
- *
87
- * So the execution time is timeout1+timeout1+timeout1+timeout2
88
- *
89
- * @throw {TypeError} the arguments must be either integer or functions
90
- * @param {...(int|function)} args
91
- */
92
- constructor(...args) {
93
- super();
76
+ /**
77
+ * Create new Processing
78
+ *
79
+ * Functions and timeouts can be passed. If a timeout is passed, it applies to all further functions.
80
+ * In the example
81
+ *
82
+ * `timeout1, function1, function2, function3, timeout2, function4`
83
+ *
84
+ * the timeout1 is valid for the functions 1, 2 and 3 and the timeout2 for the function4.
85
+ *
86
+ * So the execution time is timeout1+timeout1+timeout1+timeout2
87
+ *
88
+ * @throw {TypeError} the arguments must be either integer or functions
89
+ * @param {...(int|function)} args
90
+ */
91
+ constructor(...args) {
92
+ super();
94
93
 
95
- this[internalSymbol] = {
96
- queue: new Queue(),
97
- };
94
+ this[internalSymbol] = {
95
+ queue: new Queue(),
96
+ };
98
97
 
99
- let time = 0;
98
+ let time = 0;
100
99
 
101
- if (typeof args !== "object" || args[0] === null) {
102
- throw new TypeError("the arguments must be either integer or functions");
103
- }
100
+ if (typeof args !== "object" || args[0] === null) {
101
+ throw new TypeError("the arguments must be either integer or functions");
102
+ }
104
103
 
105
- for (const [, arg] of Object.entries(args)) {
106
- if (isInteger(arg) && arg >= 0) {
107
- time = arg;
108
- } else if (isFunction(arg)) {
109
- this[internalSymbol].queue.add(new Callback(arg, time));
110
- } else {
111
- throw new TypeError("the arguments must be either integer or functions");
112
- }
113
- }
114
- }
104
+ for (const [, arg] of Object.entries(args)) {
105
+ if (isInteger(arg) && arg >= 0) {
106
+ time = arg;
107
+ } else if (isFunction(arg)) {
108
+ this[internalSymbol].queue.add(new Callback(arg, time));
109
+ } else {
110
+ throw new TypeError(
111
+ "the arguments must be either integer or functions",
112
+ );
113
+ }
114
+ }
115
+ }
115
116
 
116
- /**
117
- * Adds a function with the desired timeout
118
- * If no timeout is specified, the timeout of the previous function is used.
119
- *
120
- * @param {function} callback
121
- * @param {int|undefined} time
122
- * @throws {TypeError} value is not a function
123
- * @throws {TypeError} value is not an integer
124
- */
125
- add(callback, time) {
126
- this[internalSymbol].queue.add(new Callback(callback, time));
127
- return this;
128
- }
117
+ /**
118
+ * Adds a function with the desired timeout
119
+ * If no timeout is specified, the timeout of the previous function is used.
120
+ *
121
+ * @param {function} callback
122
+ * @param {int|undefined} time
123
+ * @throws {TypeError} value is not a function
124
+ * @throws {TypeError} value is not an integer
125
+ */
126
+ add(callback, time) {
127
+ this[internalSymbol].queue.add(new Callback(callback, time));
128
+ return this;
129
+ }
129
130
 
130
- /**
131
- * Executes the defined functions in order.
132
- *
133
- * @param {*} data
134
- * @return {Promise}
135
- */
136
- run(data) {
137
- const self = this;
138
- if (self[internalSymbol].queue.isEmpty()) {
139
- return Promise.resolve(data);
140
- }
131
+ /**
132
+ * Executes the defined functions in order.
133
+ *
134
+ * @param {*} data
135
+ * @return {Promise}
136
+ */
137
+ run(data) {
138
+ if (this[internalSymbol].queue.isEmpty()) {
139
+ return Promise.resolve(data);
140
+ }
141
141
 
142
- const callback = self[internalSymbol].queue.poll();
142
+ const callback = this[internalSymbol].queue.poll();
143
143
 
144
- if (callback === null || callback === undefined) {
145
- return Promise.resolve(data);
146
- }
144
+ if (callback === null || callback === undefined) {
145
+ return Promise.resolve(data);
146
+ }
147
147
 
148
- return callback.run(data)
149
- .then((result) => {
150
- return self.run(result);
151
- });
152
- }
148
+ return callback.run(data).then((result) => {
149
+ return this.run(result);
150
+ });
151
+ }
153
152
  }