@schukai/monster 3.51.5 → 3.52.1

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 (361) hide show
  1. package/CHANGELOG.md +25 -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/example/data/datasource/server/restapi.mjs +7 -1
  12. package/package.json +6 -2
  13. package/source/components/constants.mjs +132 -0
  14. package/source/components/datatable/columnbar.mjs +310 -0
  15. package/source/components/datatable/constants.mjs +121 -0
  16. package/source/components/datatable/dataset.mjs +219 -0
  17. package/source/components/datatable/datasource/dom.mjs +186 -0
  18. package/source/components/datatable/datasource/namespace.mjs +13 -0
  19. package/source/components/datatable/datasource/rest.mjs +400 -0
  20. package/source/components/datatable/datasource.mjs +102 -0
  21. package/source/components/datatable/datatable/header.mjs +268 -0
  22. package/source/components/datatable/datatable/namespace.mjs +13 -0
  23. package/source/components/datatable/datatable.mjs +789 -0
  24. package/source/components/datatable/embedded-pagination.mjs +113 -0
  25. package/source/components/datatable/filter/abstract-base.mjs +31 -0
  26. package/source/components/datatable/filter/date-range.mjs +1041 -0
  27. package/source/components/datatable/filter/input.mjs +175 -0
  28. package/source/components/datatable/filter/namespace.mjs +13 -0
  29. package/source/components/datatable/filter/range.mjs +671 -0
  30. package/source/components/datatable/filter/select.mjs +65 -0
  31. package/source/components/datatable/filter/settings.mjs +116 -0
  32. package/source/components/datatable/filter-button.mjs +98 -0
  33. package/source/components/datatable/filter.mjs +929 -0
  34. package/source/components/datatable/namespace.mjs +11 -0
  35. package/source/components/datatable/pagination.mjs +456 -0
  36. package/source/components/datatable/style/column-bar.pcss +123 -0
  37. package/source/components/datatable/style/dataset.pcss +13 -0
  38. package/source/components/datatable/style/datasource.pcss +16 -0
  39. package/source/components/datatable/style/datatable.pcss +239 -0
  40. package/source/components/datatable/style/embedded-pagination.pcss +101 -0
  41. package/source/components/datatable/style/filter-button.pcss +22 -0
  42. package/source/components/datatable/style/filter-controls-defaults.pcss +46 -0
  43. package/source/components/datatable/style/filter-date-range.pcss +9 -0
  44. package/source/components/datatable/style/filter-range.pcss +5 -0
  45. package/source/components/datatable/style/filter.pcss +156 -0
  46. package/source/components/datatable/style/pagination.pcss +59 -0
  47. package/source/components/datatable/style/select-filter.pcss +27 -0
  48. package/source/components/datatable/stylesheet/column-bar.mjs +27 -0
  49. package/source/components/datatable/stylesheet/dataset.mjs +27 -0
  50. package/source/components/datatable/stylesheet/datasource.mjs +27 -0
  51. package/source/components/datatable/stylesheet/datatable.mjs +27 -0
  52. package/source/components/datatable/stylesheet/embedded-pagination.mjs +27 -0
  53. package/source/components/datatable/stylesheet/filter-button.mjs +27 -0
  54. package/source/components/datatable/stylesheet/filter-controls-defaults.mjs +27 -0
  55. package/source/components/datatable/stylesheet/filter-date-range.mjs +27 -0
  56. package/source/components/datatable/stylesheet/filter-range.mjs +27 -0
  57. package/source/components/datatable/stylesheet/filter.mjs +27 -0
  58. package/source/components/datatable/stylesheet/namespace.mjs +13 -0
  59. package/source/components/datatable/stylesheet/pagination.mjs +27 -0
  60. package/source/components/datatable/stylesheet/select-filter.mjs +27 -0
  61. package/source/components/datatable/util.mjs +60 -0
  62. package/source/components/form/action-button.mjs +262 -0
  63. package/source/components/form/api-button.mjs +515 -0
  64. package/source/components/form/button-bar.mjs +739 -0
  65. package/source/components/form/button.mjs +350 -0
  66. package/source/components/form/confirm-button.mjs +330 -0
  67. package/source/components/form/constants.mjs +111 -0
  68. package/source/components/form/context-help.mjs +123 -0
  69. package/source/components/form/events.mjs +84 -0
  70. package/source/components/form/form.mjs +601 -0
  71. package/source/components/form/message-state-button.mjs +396 -0
  72. package/source/components/form/namespace.mjs +13 -0
  73. package/source/components/form/popper-button.mjs +435 -0
  74. package/source/components/form/popper.mjs +487 -0
  75. package/source/components/form/reload.mjs +360 -0
  76. package/source/components/form/select.mjs +2314 -0
  77. package/source/components/form/shadow-reload.mjs +137 -0
  78. package/source/components/form/state-button.mjs +182 -0
  79. package/source/components/form/style/action-button.pcss +41 -0
  80. package/source/components/form/style/api-button.pcss +0 -0
  81. package/source/components/form/style/button-bar.pcss +51 -0
  82. package/source/components/form/style/button.pcss +8 -0
  83. package/source/components/form/style/confirm-button.pcss +17 -0
  84. package/source/components/form/style/context-help.pcss +16 -0
  85. package/source/components/form/style/form.pcss +10 -0
  86. package/source/components/form/style/message-state-button.pcss +10 -0
  87. package/source/components/form/style/popper-button.pcss +16 -0
  88. package/source/components/form/style/popper.pcss +8 -0
  89. package/source/components/form/style/select.pcss +265 -0
  90. package/source/components/form/style/state-button.pcss +116 -0
  91. package/source/components/form/style/tabs.pcss +173 -0
  92. package/source/components/form/style/tree-select.pcss +81 -0
  93. package/source/components/form/stylesheet/action-button.mjs +27 -0
  94. package/source/components/form/stylesheet/api-button.mjs +27 -0
  95. package/source/components/form/stylesheet/button-bar.mjs +27 -0
  96. package/source/components/form/stylesheet/button.mjs +27 -0
  97. package/source/components/form/stylesheet/confirm-button.mjs +27 -0
  98. package/source/components/form/stylesheet/context-help.mjs +27 -0
  99. package/source/components/form/stylesheet/form.mjs +27 -0
  100. package/source/components/form/stylesheet/message-state-button.mjs +27 -0
  101. package/source/components/form/stylesheet/namespace.mjs +13 -0
  102. package/source/components/form/stylesheet/popper-button.mjs +27 -0
  103. package/source/components/form/stylesheet/popper.mjs +27 -0
  104. package/source/components/form/stylesheet/select.mjs +27 -0
  105. package/source/components/form/stylesheet/state-button.mjs +27 -0
  106. package/source/components/form/stylesheet/tabs.mjs +27 -0
  107. package/source/components/form/stylesheet/tree-select.mjs +27 -0
  108. package/source/components/form/tabs.mjs +1029 -0
  109. package/source/components/form/template.mjs +373 -0
  110. package/source/components/form/tree-select.mjs +527 -0
  111. package/source/components/form/types/namespace.mjs +13 -0
  112. package/source/components/form/types/state.mjs +93 -0
  113. package/source/components/form/util/fetch.mjs +133 -0
  114. package/source/components/form/util/floating-ui.mjs +245 -0
  115. package/source/components/form/util/namespace.mjs +13 -0
  116. package/source/components/form/util/popper.mjs +49 -0
  117. package/source/components/host/call-button.mjs +236 -0
  118. package/source/components/host/collapse.mjs +526 -0
  119. package/source/components/host/config-manager.mjs +304 -0
  120. package/source/components/host/constants.mjs +18 -0
  121. package/source/components/host/details.mjs +268 -0
  122. package/source/components/host/events.mjs +131 -0
  123. package/source/components/host/host.mjs +420 -0
  124. package/source/components/host/namespace.mjs +13 -0
  125. package/source/components/host/overlay.mjs +339 -0
  126. package/source/components/host/style/call-button.pcss +36 -0
  127. package/source/components/host/style/collapse.pcss +67 -0
  128. package/source/components/host/style/config-manager.pcss +5 -0
  129. package/source/components/host/style/details.pcss +68 -0
  130. package/source/components/host/style/host.pcss +43 -0
  131. package/source/components/host/style/overlay.pcss +73 -0
  132. package/source/components/host/style/toggle-button.pcss +36 -0
  133. package/source/components/host/style/viewer.pcss +13 -0
  134. package/source/components/host/stylesheet/call-button.mjs +27 -0
  135. package/source/components/host/stylesheet/collapse.mjs +27 -0
  136. package/source/components/host/stylesheet/config-manager.mjs +27 -0
  137. package/source/components/host/stylesheet/details.mjs +27 -0
  138. package/source/components/host/stylesheet/host.mjs +27 -0
  139. package/source/components/host/stylesheet/namespace.mjs +13 -0
  140. package/source/components/host/stylesheet/overlay.mjs +27 -0
  141. package/source/components/host/stylesheet/toggle-button.mjs +27 -0
  142. package/source/components/host/stylesheet/viewer.mjs +27 -0
  143. package/source/components/host/toggle-button.mjs +88 -0
  144. package/source/components/host/util.mjs +23 -0
  145. package/source/components/host/viewer.mjs +309 -0
  146. package/source/components/namespace.mjs +14 -0
  147. package/source/components/notify/constants.mjs +15 -0
  148. package/source/components/notify/events.mjs +15 -0
  149. package/source/components/notify/message.mjs +374 -0
  150. package/source/components/notify/namespace.mjs +15 -0
  151. package/source/components/notify/notify.mjs +236 -0
  152. package/source/components/notify/style/message.pcss +57 -0
  153. package/source/components/notify/style/notify.pcss +118 -0
  154. package/source/components/notify/stylesheet/message.mjs +27 -0
  155. package/source/components/notify/stylesheet/namespace.mjs +15 -0
  156. package/source/components/notify/stylesheet/notify.mjs +27 -0
  157. package/source/components/state/log/entry.mjs +126 -0
  158. package/source/components/state/log/namespace.mjs +13 -0
  159. package/source/components/state/log.mjs +275 -0
  160. package/source/components/state/namespace.mjs +13 -0
  161. package/source/components/state/state.mjs +131 -0
  162. package/source/components/state/style/log.pcss +111 -0
  163. package/source/components/state/style/state.pcss +113 -0
  164. package/source/components/state/stylesheet/log.mjs +27 -0
  165. package/source/components/state/stylesheet/state.mjs +27 -0
  166. package/source/components/style/badge.pcss +92 -0
  167. package/source/components/style/border.pcss +77 -0
  168. package/source/components/style/button.pcss +105 -0
  169. package/source/components/style/card.pcss +108 -0
  170. package/source/components/style/color.pcss +257 -0
  171. package/source/components/style/common.pcss +105 -0
  172. package/source/components/style/control.pcss +11 -0
  173. package/source/components/style/data-grid.pcss +43 -0
  174. package/source/components/style/display.pcss +42 -0
  175. package/source/components/style/floating-ui.pcss +33 -0
  176. package/source/components/style/form.pcss +5 -0
  177. package/source/components/style/host.pcss +15 -0
  178. package/source/components/style/link.pcss +63 -0
  179. package/source/components/style/mixin/badge.pcss +18 -0
  180. package/source/components/style/mixin/button.pcss +52 -0
  181. package/source/components/style/mixin/form.pcss +247 -0
  182. package/source/components/style/mixin/hover.pcss +8 -0
  183. package/source/components/style/mixin/media.pcss +107 -0
  184. package/source/components/style/mixin/property.pcss +292 -0
  185. package/source/components/style/mixin/skeleton.pcss +26 -0
  186. package/source/components/style/mixin/spinner.pcss +24 -0
  187. package/source/components/style/mixin/typography.pcss +52 -0
  188. package/source/components/style/normalize.pcss +14 -0
  189. package/source/components/style/popper.pcss +78 -0
  190. package/source/components/style/property.pcss +17 -0
  191. package/source/components/style/ripple.pcss +14 -0
  192. package/source/components/style/skeleton.pcss +28 -0
  193. package/source/components/style/space.pcss +47 -0
  194. package/source/components/style/spinner.pcss +6 -0
  195. package/source/components/style/table.pcss +46 -0
  196. package/source/components/style/theme.pcss +119 -0
  197. package/source/components/style/typography.pcss +131 -0
  198. package/source/components/stylesheet/badge.mjs +27 -0
  199. package/source/components/stylesheet/border.mjs +27 -0
  200. package/source/components/stylesheet/button.mjs +27 -0
  201. package/source/components/stylesheet/card.mjs +27 -0
  202. package/source/components/stylesheet/color.mjs +27 -0
  203. package/source/components/stylesheet/common.mjs +27 -0
  204. package/source/components/stylesheet/control.mjs +27 -0
  205. package/source/components/stylesheet/data-grid.mjs +27 -0
  206. package/source/components/stylesheet/display.mjs +27 -0
  207. package/source/components/stylesheet/floating-ui.mjs +27 -0
  208. package/source/components/stylesheet/form.mjs +27 -0
  209. package/source/components/stylesheet/host.mjs +27 -0
  210. package/source/components/stylesheet/link.mjs +27 -0
  211. package/source/components/stylesheet/namespace.mjs +13 -0
  212. package/source/components/stylesheet/normalize.mjs +27 -0
  213. package/source/components/stylesheet/popper.mjs +27 -0
  214. package/source/components/stylesheet/property.mjs +27 -0
  215. package/source/components/stylesheet/ripple.mjs +27 -0
  216. package/source/components/stylesheet/skeleton.mjs +27 -0
  217. package/source/components/stylesheet/space.mjs +27 -0
  218. package/source/components/stylesheet/spinner.mjs +27 -0
  219. package/source/components/stylesheet/table.mjs +27 -0
  220. package/source/components/stylesheet/theme.mjs +27 -0
  221. package/source/components/stylesheet/tree-menu.mjs +33 -0
  222. package/source/components/stylesheet/typography.mjs +27 -0
  223. package/source/components/tree-menu/namespace.mjs +13 -0
  224. package/source/components/tree-menu/style/tree-menu.pcss +107 -0
  225. package/source/components/tree-menu/stylesheet/namespace.mjs +13 -0
  226. package/source/components/tree-menu/stylesheet/tree-menu.mjs +27 -0
  227. package/source/components/tree-menu/tree-menu.mjs +660 -0
  228. package/source/constraints/abstract.mjs +17 -24
  229. package/source/constraints/abstractoperator.mjs +27 -22
  230. package/source/constraints/andoperator.mjs +20 -17
  231. package/source/constraints/invalid.mjs +17 -17
  232. package/source/constraints/isarray.mjs +20 -20
  233. package/source/constraints/isobject.mjs +20 -20
  234. package/source/constraints/oroperator.mjs +45 -45
  235. package/source/constraints/valid.mjs +17 -17
  236. package/source/data/buildmap.mjs +108 -103
  237. package/source/data/buildtree.mjs +59 -57
  238. package/source/data/datasource/dom.mjs +80 -84
  239. package/source/data/datasource/namespace.mjs +1 -1
  240. package/source/data/datasource/server/restapi/data-fetch-error.mjs +27 -25
  241. package/source/data/datasource/server/restapi/writeerror.mjs +35 -32
  242. package/source/data/datasource/server/restapi.mjs +176 -177
  243. package/source/data/datasource/server/webconnect.mjs +150 -156
  244. package/source/data/datasource/server.mjs +62 -63
  245. package/source/data/datasource/storage/localstorage.mjs +25 -24
  246. package/source/data/datasource/storage/sessionstorage.mjs +28 -25
  247. package/source/data/datasource/storage.mjs +74 -73
  248. package/source/data/datasource.mjs +177 -168
  249. package/source/data/diff.mjs +98 -97
  250. package/source/data/extend.mjs +42 -42
  251. package/source/data/pathfinder.mjs +301 -288
  252. package/source/data/pipe.mjs +36 -36
  253. package/source/data/transformer.mjs +742 -726
  254. package/source/dom/assembler.mjs +44 -44
  255. package/source/dom/attributes.mjs +142 -122
  256. package/source/dom/constants.mjs +62 -58
  257. package/source/dom/customcontrol.mjs +299 -299
  258. package/source/dom/customelement.mjs +843 -806
  259. package/source/dom/dimension.mjs +56 -46
  260. package/source/dom/events.mjs +74 -69
  261. package/source/dom/focusmanager.mjs +175 -175
  262. package/source/dom/locale.mjs +28 -28
  263. package/source/dom/ready.mjs +13 -13
  264. package/source/dom/resource/data.mjs +117 -111
  265. package/source/dom/resource/link/stylesheet.mjs +16 -16
  266. package/source/dom/resource/link.mjs +94 -96
  267. package/source/dom/resource/script.mjs +72 -74
  268. package/source/dom/resource.mjs +174 -172
  269. package/source/dom/resourcemanager.mjs +152 -156
  270. package/source/dom/slotted.mjs +78 -80
  271. package/source/dom/template.mjs +126 -112
  272. package/source/dom/theme.mjs +35 -35
  273. package/source/dom/updater.mjs +673 -651
  274. package/source/dom/util/extract-keys.mjs +34 -22
  275. package/source/dom/util/init-options-from-attributes.mjs +46 -38
  276. package/source/dom/util/namespace.mjs +13 -0
  277. package/source/dom/util/set-option-from-attribute.mjs +35 -29
  278. package/source/dom/util.mjs +112 -81
  279. package/source/dom/worker/factory.mjs +83 -83
  280. package/source/i18n/formatter.mjs +75 -73
  281. package/source/i18n/locale.mjs +146 -144
  282. package/source/i18n/provider.mjs +70 -64
  283. package/source/i18n/providers/embed.mjs +136 -127
  284. package/source/i18n/providers/fetch.mjs +84 -76
  285. package/source/i18n/translations.mjs +205 -195
  286. package/source/logging/handler/console.mjs +36 -36
  287. package/source/logging/handler.mjs +140 -140
  288. package/source/logging/logentry.mjs +25 -25
  289. package/source/logging/logger.mjs +177 -175
  290. package/source/math/random.mjs +63 -59
  291. package/source/monster.mjs +223 -103
  292. package/source/net/webconnect/message.mjs +31 -31
  293. package/source/net/webconnect.mjs +278 -271
  294. package/source/text/bracketed-key-value-hash.mjs +182 -179
  295. package/source/text/formatter.mjs +235 -210
  296. package/source/text/generate-range-comparison-expression.mjs +56 -34
  297. package/source/text/namespace.mjs +1 -1
  298. package/source/types/base.mjs +69 -61
  299. package/source/types/basewithoptions.mjs +46 -46
  300. package/source/types/binary.mjs +20 -20
  301. package/source/types/dataurl.mjs +96 -90
  302. package/source/types/global.mjs +45 -39
  303. package/source/types/id.mjs +25 -25
  304. package/source/types/internal.mjs +115 -114
  305. package/source/types/is.mjs +56 -40
  306. package/source/types/mediatype.mjs +119 -119
  307. package/source/types/namespace.mjs +1 -1
  308. package/source/types/node.mjs +160 -150
  309. package/source/types/nodelist.mjs +94 -96
  310. package/source/types/noderecursiveiterator.mjs +50 -50
  311. package/source/types/observablequeue.mjs +73 -73
  312. package/source/types/observer.mjs +114 -106
  313. package/source/types/observerlist.mjs +66 -66
  314. package/source/types/proxyobserver.mjs +210 -210
  315. package/source/types/queue.mjs +63 -63
  316. package/source/types/randomid.mjs +13 -13
  317. package/source/types/regex.mjs +3 -1
  318. package/source/types/stack.mjs +64 -64
  319. package/source/types/tokenlist.mjs +206 -205
  320. package/source/types/typeof.mjs +12 -10
  321. package/source/types/uniquequeue.mjs +48 -48
  322. package/source/types/uuid.mjs +32 -32
  323. package/source/types/validate.mjs +67 -67
  324. package/source/types/version.mjs +115 -105
  325. package/source/util/clone.mjs +103 -91
  326. package/source/util/comparator.mjs +97 -97
  327. package/source/util/deadmansswitch.mjs +40 -44
  328. package/source/util/freeze.mjs +10 -9
  329. package/source/util/namespace.mjs +1 -1
  330. package/source/util/processing.mjs +104 -105
  331. package/source/util/runtime.mjs +56 -44
  332. package/source/util/trimspaces.mjs +24 -24
  333. package/test/cases/components/form/button.mjs +122 -0
  334. package/test/cases/components/form/confirm-button.mjs +127 -0
  335. package/test/cases/components/form/form.mjs +317 -0
  336. package/test/cases/components/form/reload.mjs +188 -0
  337. package/test/cases/components/form/select.mjs +229 -0
  338. package/test/cases/components/form/state-button.mjs +130 -0
  339. package/test/cases/components/form/tabs.mjs +98 -0
  340. package/test/cases/components/form/template.mjs +189 -0
  341. package/test/cases/components/form/tree-select.mjs +216 -0
  342. package/test/cases/components/host/details.mjs +68 -0
  343. package/test/cases/components/host/host.mjs +70 -0
  344. package/test/cases/components/host/overlay.mjs +60 -0
  345. package/test/cases/components/host/util.mjs +79 -0
  346. package/test/cases/components/notify/message.mjs +39 -0
  347. package/test/cases/components/notify/notify.mjs +89 -0
  348. package/test/cases/dom/customcontrol.mjs +5 -4
  349. package/test/cases/math/random.mjs +0 -1
  350. package/test/cases/monster.mjs +1 -1
  351. package/test/cases/net/webconnect/message.mjs +0 -1
  352. package/test/cases/types/node.mjs +1 -1
  353. package/test/util/chai-dom.mjs +2 -2
  354. package/test/util/intersection-mock.mjs +69 -0
  355. package/test/util/jsdom.mjs +41 -25
  356. package/test/util/localstorage.mjs +1 -0
  357. package/test/util/resize-observer.mjs +29 -0
  358. package/test/util/websocket.mjs +4 -1
  359. package/test/web/import.js +16 -1
  360. package/test/web/test.html +28 -5
  361. package/test/web/tests.js +30398 -17879
@@ -36,50 +36,54 @@ export { Base };
36
36
  * @memberOf Monster.Types
37
37
  */
38
38
  class Base extends Object {
39
- /**
40
- *
41
- * @returns {string}
42
- */
43
- toString() {
44
- return JSON.stringify(this);
45
- }
39
+ /**
40
+ *
41
+ * @returns {string}
42
+ */
43
+ toString() {
44
+ return JSON.stringify(this);
45
+ }
46
46
 
47
- /**
48
- * This method is called by the `instanceof` operator.
49
- * @returns {symbol}
50
- * @since 2.1.0
51
- */
52
- static get [instanceSymbol]() {
53
- return Symbol.for("@schukai/monster/types/base");
54
- }
47
+ /**
48
+ * This method is called by the `instanceof` operator.
49
+ * @returns {symbol}
50
+ * @since 2.1.0
51
+ */
52
+ static get [instanceSymbol]() {
53
+ return Symbol.for("@schukai/monster/types/base");
54
+ }
55
55
 
56
- /**
57
- * This method is called by the `instanceof` operator.
58
- * @param that
59
- * @returns {boolean}
60
- * @since 2.1.0
61
- */
62
- static [Symbol.hasInstance](that) {
63
- if (that === undefined || that === null || (typeof that !== "object" && typeof that !== "function")) {
64
- return false;
65
- }
56
+ /**
57
+ * This method is called by the `instanceof` operator.
58
+ * @param that
59
+ * @returns {boolean}
60
+ * @since 2.1.0
61
+ */
62
+ static [Symbol.hasInstance](that) {
63
+ if (
64
+ that === undefined ||
65
+ that === null ||
66
+ (typeof that !== "object" && typeof that !== "function")
67
+ ) {
68
+ return false;
69
+ }
66
70
 
67
- const thatClass = Object.getPrototypeOf(that);
68
- if (
69
- thatClass === undefined ||
70
- thatClass === null ||
71
- (typeof thatClass !== "object" && typeof thatClass !== "function")
72
- ) {
73
- return false;
74
- }
71
+ const thatClass = Object.getPrototypeOf(that);
72
+ if (
73
+ thatClass === undefined ||
74
+ thatClass === null ||
75
+ (typeof thatClass !== "object" && typeof thatClass !== "function")
76
+ ) {
77
+ return false;
78
+ }
75
79
 
76
- if (checkInstanceSymbol.apply(this, [thatClass]) === true) {
77
- return true;
78
- }
80
+ if (checkInstanceSymbol.apply(this, [thatClass]) === true) {
81
+ return true;
82
+ }
79
83
 
80
- // this call the static method of the super class, if there is one
81
- return super[Symbol.hasInstance](that);
82
- }
84
+ // this call the static method of the super class, if there is one
85
+ return super[Symbol.hasInstance](that);
86
+ }
83
87
  }
84
88
 
85
89
  /**
@@ -91,31 +95,35 @@ class Base extends Object {
91
95
  * @since 2.1.0
92
96
  */
93
97
  function checkInstanceSymbol(obj) {
94
- if (this.hasOwnProperty(instanceSymbol) === false) {
95
- return false;
96
- }
98
+ if (this.hasOwnProperty(instanceSymbol) === false) {
99
+ return false;
100
+ }
97
101
 
98
- const proto = obj?.constructor;
99
- if (proto === undefined || proto === null || (typeof proto !== "object" && typeof proto !== "function")) {
100
- return false;
101
- }
102
+ const proto = obj?.constructor;
103
+ if (
104
+ proto === undefined ||
105
+ proto === null ||
106
+ (typeof proto !== "object" && typeof proto !== "function")
107
+ ) {
108
+ return false;
109
+ }
102
110
 
103
- if (proto.hasOwnProperty(instanceSymbol) !== true) {
104
- return checkInstanceSymbol.apply(this, [obj.__proto__]);
105
- }
111
+ if (proto.hasOwnProperty(instanceSymbol) !== true) {
112
+ return checkInstanceSymbol.apply(this, [obj.__proto__]);
113
+ }
106
114
 
107
- const symbol = proto[instanceSymbol];
108
- if (symbol === undefined) {
109
- if (obj.__proto__) {
110
- return checkInstanceSymbol(obj.__proto__);
111
- } else {
112
- return false;
113
- }
114
- }
115
+ const symbol = proto[instanceSymbol];
116
+ if (symbol === undefined) {
117
+ if (obj.__proto__) {
118
+ return checkInstanceSymbol(obj.__proto__);
119
+ } else {
120
+ return false;
121
+ }
122
+ }
115
123
 
116
- if (symbol === this[instanceSymbol]) {
117
- return true;
118
- }
124
+ if (symbol === this[instanceSymbol]) {
125
+ return true;
126
+ }
119
127
 
120
- return checkInstanceSymbol.apply(this, [obj.__proto__]);
128
+ return checkInstanceSymbol.apply(this, [obj.__proto__]);
121
129
  }
@@ -29,56 +29,56 @@ export { BaseWithOptions };
29
29
  * @deprecated since 3.15.0 use {@link Monster.Types.Base} with {@link Monster.Types.equipWithInternal} instead.
30
30
  */
31
31
  class BaseWithOptions extends Base {
32
- /**
33
- *
34
- * @param {object} options
35
- */
36
- constructor(options) {
37
- super();
32
+ /**
33
+ *
34
+ * @param {object} options
35
+ */
36
+ constructor(options) {
37
+ super();
38
38
 
39
- if (options === undefined) {
40
- options = {};
41
- }
39
+ if (options === undefined) {
40
+ options = {};
41
+ }
42
42
 
43
- this[internalSymbol] = extend({}, this.defaults, validateObject(options));
44
- }
43
+ this[internalSymbol] = extend({}, this.defaults, validateObject(options));
44
+ }
45
45
 
46
- /**
47
- * This getter provides the options. Derived classes overwrite
48
- * this getter with their own values. It is good karma to always include
49
- * the values from the parent class.
50
- *
51
- * ```javascript
52
- * get defaults() {
53
- * return Object.assign({}, super.defaults, {
54
- * mykey: true
55
- * });
56
- * }
57
- *
58
- * ```
59
- *
60
- * @return {object}
61
- */
62
- get defaults() {
63
- return {};
64
- }
46
+ /**
47
+ * This getter provides the options. Derived classes overwrite
48
+ * this getter with their own values. It is good karma to always include
49
+ * the values from the parent class.
50
+ *
51
+ * ```javascript
52
+ * get defaults() {
53
+ * return Object.assign({}, super.defaults, {
54
+ * mykey: true
55
+ * });
56
+ * }
57
+ *
58
+ * ```
59
+ *
60
+ * @return {object}
61
+ */
62
+ get defaults() {
63
+ return {};
64
+ }
65
65
 
66
- /**
67
- * nested options can be specified by path `a.b.c`
68
- *
69
- * @param {string} path
70
- * @param {*} defaultValue
71
- * @return {*}
72
- * @since 1.10.0
73
- */
74
- getOption(path, defaultValue) {
75
- let value;
66
+ /**
67
+ * nested options can be specified by path `a.b.c`
68
+ *
69
+ * @param {string} path
70
+ * @param {*} defaultValue
71
+ * @return {*}
72
+ * @since 1.10.0
73
+ */
74
+ getOption(path, defaultValue) {
75
+ let value;
76
76
 
77
- try {
78
- value = new Pathfinder(this[internalSymbol]).getVia(path);
79
- } catch (e) {}
77
+ try {
78
+ value = new Pathfinder(this[internalSymbol]).getVia(path);
79
+ } catch (e) {}
80
80
 
81
- if (value === undefined) return defaultValue;
82
- return value;
83
- }
81
+ if (value === undefined) return defaultValue;
82
+ return value;
83
+ }
84
84
  }
@@ -20,19 +20,19 @@ export { toBinary, fromBinary };
20
20
  * @since 1.18.0
21
21
  */
22
22
  function toBinary(string) {
23
- const codeUnits = new Uint16Array(validateString(string).length);
24
- for (let i = 0; i < codeUnits.length; i++) {
25
- codeUnits[i] = string.charCodeAt(i);
26
- }
23
+ const codeUnits = new Uint16Array(validateString(string).length);
24
+ for (let i = 0; i < codeUnits.length; i++) {
25
+ codeUnits[i] = string.charCodeAt(i);
26
+ }
27
27
 
28
- const charCodes = new Uint8Array(codeUnits.buffer);
29
- let result = "";
28
+ const charCodes = new Uint8Array(codeUnits.buffer);
29
+ let result = "";
30
30
 
31
- for (let i = 0; i < charCodes.byteLength; i++) {
32
- result += String.fromCharCode(charCodes[i]);
33
- }
31
+ for (let i = 0; i < charCodes.byteLength; i++) {
32
+ result += String.fromCharCode(charCodes[i]);
33
+ }
34
34
 
35
- return result;
35
+ return result;
36
36
  }
37
37
 
38
38
  /**
@@ -46,14 +46,14 @@ function toBinary(string) {
46
46
  * @since 1.18.0
47
47
  */
48
48
  function fromBinary(binary) {
49
- const bytes = new Uint8Array(validateString(binary).length);
50
- for (let i = 0; i < bytes.length; i++) {
51
- bytes[i] = binary.charCodeAt(i);
52
- }
53
- const charCodes = new Uint16Array(bytes.buffer);
54
- let result = "";
55
- for (let i = 0; i < charCodes.length; i++) {
56
- result += String.fromCharCode(charCodes[i]);
57
- }
58
- return result;
49
+ const bytes = new Uint8Array(validateString(binary).length);
50
+ for (let i = 0; i < bytes.length; i++) {
51
+ bytes[i] = binary.charCodeAt(i);
52
+ }
53
+ const charCodes = new Uint16Array(bytes.buffer);
54
+ let result = "";
55
+ for (let i = 0; i < charCodes.length; i++) {
56
+ result += String.fromCharCode(charCodes[i]);
57
+ }
58
+ return result;
59
59
  }
@@ -8,7 +8,11 @@
8
8
  import { Base } from "./base.mjs";
9
9
  import { isString } from "./is.mjs";
10
10
  import { MediaType, parseMediaType } from "./mediatype.mjs";
11
- import { validateBoolean, validateInstance, validateString } from "./validate.mjs";
11
+ import {
12
+ validateBoolean,
13
+ validateInstance,
14
+ validateString,
15
+ } from "./validate.mjs";
12
16
  import { instanceSymbol } from "../constants.mjs";
13
17
  export { DataUrl, parseDataURL };
14
18
 
@@ -29,59 +33,61 @@ const internal = Symbol("internal");
29
33
  * @see https://datatracker.ietf.org/doc/html/rfc2397
30
34
  */
31
35
  class DataUrl extends Base {
32
- /**
33
- *
34
- * @param {String} content
35
- * @param {String|Monster.Types.MediaType} mediatype
36
- * @param {boolean} base64=true
37
- */
38
- constructor(content, mediatype, base64) {
39
- super();
40
-
41
- if (isString(mediatype)) {
42
- mediatype = parseMediaType(mediatype);
43
- }
44
-
45
- this[internal] = {
46
- content: validateString(content),
47
- mediatype: validateInstance(mediatype, MediaType),
48
- base64: validateBoolean(base64 === undefined ? true : base64),
49
- };
50
- }
51
-
52
- /**
53
- * This method is called by the `instanceof` operator.
54
- * @returns {symbol}
55
- * @since 2.1.0
56
- */
57
- static get [instanceSymbol]() {
58
- return Symbol.for("@schukai/monster/types/data-url");
59
- }
60
-
61
- get content() {
62
- return this[internal].base64 ? atob(this[internal].content) : this[internal].content;
63
- }
64
-
65
- get mediatype() {
66
- return this[internal].mediatype;
67
- }
68
-
69
- /**
70
- *
71
- * @return {string}
72
- * @see https://datatracker.ietf.org/doc/html/rfc2397
73
- */
74
- toString() {
75
- let content = this[internal].content;
76
-
77
- if (this[internal].base64 === true) {
78
- content = `;base64,${content}`;
79
- } else {
80
- content = `,${encodeURIComponent(content)}`;
81
- }
82
-
83
- return `data:${this[internal].mediatype.toString()}${content}`;
84
- }
36
+ /**
37
+ *
38
+ * @param {String} content
39
+ * @param {String|Monster.Types.MediaType} mediatype
40
+ * @param {boolean} base64=true
41
+ */
42
+ constructor(content, mediatype, base64) {
43
+ super();
44
+
45
+ if (isString(mediatype)) {
46
+ mediatype = parseMediaType(mediatype);
47
+ }
48
+
49
+ this[internal] = {
50
+ content: validateString(content),
51
+ mediatype: validateInstance(mediatype, MediaType),
52
+ base64: validateBoolean(base64 === undefined ? true : base64),
53
+ };
54
+ }
55
+
56
+ /**
57
+ * This method is called by the `instanceof` operator.
58
+ * @returns {symbol}
59
+ * @since 2.1.0
60
+ */
61
+ static get [instanceSymbol]() {
62
+ return Symbol.for("@schukai/monster/types/data-url");
63
+ }
64
+
65
+ get content() {
66
+ return this[internal].base64
67
+ ? atob(this[internal].content)
68
+ : this[internal].content;
69
+ }
70
+
71
+ get mediatype() {
72
+ return this[internal].mediatype;
73
+ }
74
+
75
+ /**
76
+ *
77
+ * @return {string}
78
+ * @see https://datatracker.ietf.org/doc/html/rfc2397
79
+ */
80
+ toString() {
81
+ let content = this[internal].content;
82
+
83
+ if (this[internal].base64 === true) {
84
+ content = `;base64,${content}`;
85
+ } else {
86
+ content = `,${encodeURIComponent(content)}`;
87
+ }
88
+
89
+ return `data:${this[internal].mediatype.toString()}${content}`;
90
+ }
85
91
  }
86
92
 
87
93
  /**
@@ -105,40 +111,40 @@ class DataUrl extends Base {
105
111
  * @memberOf Monster.Types
106
112
  */
107
113
  function parseDataURL(dataurl) {
108
- validateString(dataurl);
109
-
110
- dataurl = dataurl.trim();
111
-
112
- if (dataurl.substring(0, 5) !== "data:") {
113
- throw new TypeError("incorrect or missing data protocol");
114
- }
115
-
116
- dataurl = dataurl.substring(5);
117
-
118
- let p = dataurl.indexOf(",");
119
- if (p === -1) {
120
- throw new TypeError("malformed data url");
121
- }
122
-
123
- let content = dataurl.substring(p + 1);
124
- let mediatypeAndBase64 = dataurl.substring(0, p).trim();
125
- let mediatype = "text/plain;charset=US-ASCII";
126
- let base64Flag = false;
127
-
128
- if (mediatypeAndBase64 !== "") {
129
- mediatype = mediatypeAndBase64;
130
- if (mediatypeAndBase64.endsWith("base64")) {
131
- let i = mediatypeAndBase64.lastIndexOf(";");
132
- mediatype = mediatypeAndBase64.substring(0, i);
133
- base64Flag = true;
134
- } else {
135
- content = decodeURIComponent(content);
136
- }
137
-
138
- mediatype = parseMediaType(mediatype);
139
- } else {
140
- content = decodeURIComponent(content);
141
- }
142
-
143
- return new DataUrl(content, mediatype, base64Flag);
114
+ validateString(dataurl);
115
+
116
+ dataurl = dataurl.trim();
117
+
118
+ if (dataurl.substring(0, 5) !== "data:") {
119
+ throw new TypeError("incorrect or missing data protocol");
120
+ }
121
+
122
+ dataurl = dataurl.substring(5);
123
+
124
+ const p = dataurl.indexOf(",");
125
+ if (p === -1) {
126
+ throw new TypeError("malformed data url");
127
+ }
128
+
129
+ let content = dataurl.substring(p + 1);
130
+ const mediatypeAndBase64 = dataurl.substring(0, p).trim();
131
+ let mediatype = "text/plain;charset=US-ASCII";
132
+ let base64Flag = false;
133
+
134
+ if (mediatypeAndBase64 !== "") {
135
+ mediatype = mediatypeAndBase64;
136
+ if (mediatypeAndBase64.endsWith("base64")) {
137
+ const i = mediatypeAndBase64.lastIndexOf(";");
138
+ mediatype = mediatypeAndBase64.substring(0, i);
139
+ base64Flag = true;
140
+ } else {
141
+ content = decodeURIComponent(content);
142
+ }
143
+
144
+ mediatype = parseMediaType(mediatype);
145
+ } else {
146
+ content = decodeURIComponent(content);
147
+ }
148
+
149
+ return new DataUrl(content, mediatype, base64Flag);
144
150
  }
@@ -5,7 +5,11 @@
5
5
  * License text available at https://www.gnu.org/licenses/agpl-3.0.en.html
6
6
  */
7
7
 
8
- import { validateFunction, validateObject, validateString } from "./validate.mjs";
8
+ import {
9
+ validateFunction,
10
+ validateObject,
11
+ validateString,
12
+ } from "./validate.mjs";
9
13
 
10
14
  export { getGlobal, getGlobalObject, getGlobalFunction };
11
15
 
@@ -20,39 +24,39 @@ let globalReference;
20
24
  * @throws {Error} unsupported environment.
21
25
  */
22
26
  (function () {
23
- if (typeof globalThis === "object") {
24
- globalReference = globalThis;
25
- return;
26
- }
27
+ if (typeof globalThis === "object") {
28
+ globalReference = globalThis;
29
+ return;
30
+ }
27
31
 
28
- if (typeof self !== "undefined") {
29
- globalReference = self;
30
- return;
31
- } else if (typeof window !== "undefined") {
32
- globalReference = window;
33
- return;
34
- }
32
+ if (typeof self !== "undefined") {
33
+ globalReference = self;
34
+ return;
35
+ } else if (typeof window !== "undefined") {
36
+ globalReference = window;
37
+ return;
38
+ }
35
39
 
36
- Object.defineProperty(Object.prototype, "__monster__", {
37
- get: function () {
38
- return this;
39
- },
40
- configurable: true,
41
- });
40
+ Object.defineProperty(Object.prototype, "__monster__", {
41
+ get: function () {
42
+ return this;
43
+ },
44
+ configurable: true,
45
+ });
42
46
 
43
- if (typeof __monster__ === "object") {
44
- __monster__.globalThis = __monster__;
45
- delete Object.prototype.__monster__;
47
+ if (typeof __monster__ === "object") {
48
+ __monster__.globalThis = __monster__;
49
+ delete Object.prototype.__monster__;
46
50
 
47
- globalReference = globalThis;
48
- return;
49
- }
51
+ globalReference = globalThis;
52
+ return;
53
+ }
50
54
 
51
- try {
52
- globalReference = Function("return this")();
53
- } catch (e) {}
55
+ try {
56
+ globalReference = Function("return this")();
57
+ } catch (e) {}
54
58
 
55
- throw new Error("unsupported environment.");
59
+ throw new Error("unsupported environment.");
56
60
  })();
57
61
 
58
62
  /**
@@ -66,7 +70,7 @@ let globalReference;
66
70
  * @returns {objec} globalThis
67
71
  */
68
72
  function getGlobal() {
69
- return globalReference;
73
+ return globalReference;
70
74
  }
71
75
 
72
76
  /**
@@ -102,11 +106,12 @@ function getGlobal() {
102
106
  * @throws {TypeError} value is not a string
103
107
  */
104
108
  function getGlobalObject(name) {
105
- validateString(name);
106
- let o = globalReference?.[name];
107
- if (typeof o === "undefined") throw new Error(`the object ${name} is not defined`);
108
- validateObject(o);
109
- return o;
109
+ validateString(name);
110
+ const o = globalReference?.[name];
111
+ if (typeof o === "undefined")
112
+ throw new Error(`the object ${name} is not defined`);
113
+ validateObject(o);
114
+ return o;
110
115
  }
111
116
 
112
117
  /**
@@ -140,9 +145,10 @@ function getGlobalObject(name) {
140
145
  * @throws {TypeError} value is not a string
141
146
  */
142
147
  function getGlobalFunction(name) {
143
- validateString(name);
144
- let f = globalReference?.[name];
145
- if (typeof f === "undefined") throw new Error(`the function ${name} is not defined`);
146
- validateFunction(f);
147
- return f;
148
+ validateString(name);
149
+ const f = globalReference?.[name];
150
+ if (typeof f === "undefined")
151
+ throw new Error(`the function ${name} is not defined`);
152
+ validateFunction(f);
153
+ return f;
148
154
  }