@schukai/monster 3.51.5 → 3.52.0

Sign up to get free protection for your applications and to get access to all the features.
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
@@ -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
  }