@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
@@ -7,13 +7,13 @@
7
7
 
8
8
  import { extend } from "../../data/extend.mjs";
9
9
  import {
10
- ATTRIBUTE_CLASS,
11
- ATTRIBUTE_ID,
12
- ATTRIBUTE_NONCE,
13
- ATTRIBUTE_SRC,
14
- ATTRIBUTE_TITLE,
15
- ATTRIBUTE_TYPE,
16
- TAG_SCRIPT,
10
+ ATTRIBUTE_CLASS,
11
+ ATTRIBUTE_ID,
12
+ ATTRIBUTE_NONCE,
13
+ ATTRIBUTE_SRC,
14
+ ATTRIBUTE_TITLE,
15
+ ATTRIBUTE_TYPE,
16
+ TAG_SCRIPT,
17
17
  } from "../constants.mjs";
18
18
  import { KEY_DOCUMENT, referenceSymbol, Resource } from "../resource.mjs";
19
19
  import { instanceSymbol } from "../../constants.mjs";
@@ -29,53 +29,53 @@ export { Script };
29
29
  * @summary A Resource class
30
30
  */
31
31
  class Script extends Resource {
32
- /**
33
- * @property {boolean} async=true {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/script#attr-async}
34
- * @property {string} crossOrigin=anonymous {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/script#attr-crossorigin}
35
- * @property {boolean} defer=false {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/script#attr-defer}
36
- * @property {string} integrity {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/script#attr-integrity}
37
- * @property {boolean} nomodule {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/script#attr-nomodule}
38
- * @property {string} nonce {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/script#attr-nonce}
39
- * @property {string} referrerpolicy {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/script#attr-referrerpolicy}
40
- * @property {string} type {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/script#attr-type}
41
- */
42
- get defaults() {
43
- return extend({}, super.defaults, {
44
- async: true,
45
- crossOrigin: "anonymous",
46
- defer: false,
47
- integrity: undefined,
48
- nomodule: false,
49
- nonce: undefined,
50
- referrerpolicy: undefined,
51
- type: "text/javascript",
52
- });
53
- }
32
+ /**
33
+ * @property {boolean} async=true {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/script#attr-async}
34
+ * @property {string} crossOrigin=anonymous {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/script#attr-crossorigin}
35
+ * @property {boolean} defer=false {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/script#attr-defer}
36
+ * @property {string} integrity {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/script#attr-integrity}
37
+ * @property {boolean} nomodule {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/script#attr-nomodule}
38
+ * @property {string} nonce {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/script#attr-nonce}
39
+ * @property {string} referrerpolicy {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/script#attr-referrerpolicy}
40
+ * @property {string} type {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/script#attr-type}
41
+ */
42
+ get defaults() {
43
+ return extend({}, super.defaults, {
44
+ async: true,
45
+ crossOrigin: "anonymous",
46
+ defer: false,
47
+ integrity: undefined,
48
+ nomodule: false,
49
+ nonce: undefined,
50
+ referrerpolicy: undefined,
51
+ type: "text/javascript",
52
+ });
53
+ }
54
54
 
55
- /**
56
- * This method is called by the `instanceof` operator.
57
- * @returns {symbol}
58
- * @since 2.1.0
59
- */
60
- static get [instanceSymbol]() {
61
- return Symbol.for("@schukai/monster/dom/resource/script");
62
- }
55
+ /**
56
+ * This method is called by the `instanceof` operator.
57
+ * @returns {symbol}
58
+ * @since 2.1.0
59
+ */
60
+ static get [instanceSymbol]() {
61
+ return Symbol.for("@schukai/monster/dom/resource/script");
62
+ }
63
63
 
64
- /**
65
- *
66
- * @return {Monster.DOM.Resource.Script}
67
- */
68
- create() {
69
- createElement.call(this);
70
- return this;
71
- }
64
+ /**
65
+ *
66
+ * @return {Monster.DOM.Resource.Script}
67
+ */
68
+ create() {
69
+ createElement.call(this);
70
+ return this;
71
+ }
72
72
 
73
- /**
74
- * @return {string}
75
- */
76
- static getURLAttribute() {
77
- return ATTRIBUTE_SRC;
78
- }
73
+ /**
74
+ * @return {string}
75
+ */
76
+ static getURLAttribute() {
77
+ return ATTRIBUTE_SRC;
78
+ }
79
79
  }
80
80
 
81
81
  /**
@@ -83,29 +83,27 @@ class Script extends Resource {
83
83
  * @return {Monster.DOM.Resource.Script}
84
84
  */
85
85
  function createElement() {
86
- const self = this;
86
+ const document = this.getOption(KEY_DOCUMENT);
87
+ this[referenceSymbol] = document.createElement(TAG_SCRIPT);
87
88
 
88
- const document = self.getOption(KEY_DOCUMENT);
89
- self[referenceSymbol] = document.createElement(TAG_SCRIPT);
89
+ for (const key of [
90
+ "crossOrigin",
91
+ "defer",
92
+ "async",
93
+ "integrity",
94
+ "nomodule",
95
+ ATTRIBUTE_NONCE,
96
+ "referrerpolicy",
97
+ ATTRIBUTE_TYPE,
98
+ ATTRIBUTE_SRC,
99
+ ATTRIBUTE_ID,
100
+ ATTRIBUTE_CLASS,
101
+ ATTRIBUTE_TITLE,
102
+ ]) {
103
+ if (this.getOption(key) !== undefined) {
104
+ this[referenceSymbol][key] = this.getOption(key);
105
+ }
106
+ }
90
107
 
91
- for (let key of [
92
- "crossOrigin",
93
- "defer",
94
- "async",
95
- "integrity",
96
- "nomodule",
97
- ATTRIBUTE_NONCE,
98
- "referrerpolicy",
99
- ATTRIBUTE_TYPE,
100
- ATTRIBUTE_SRC,
101
- ATTRIBUTE_ID,
102
- ATTRIBUTE_CLASS,
103
- ATTRIBUTE_TITLE,
104
- ]) {
105
- if (self.getOption(key) !== undefined) {
106
- self[referenceSymbol][key] = self.getOption(key);
107
- }
108
- }
109
-
110
- return self;
108
+ return this;
111
109
  }
@@ -13,7 +13,11 @@ import { ID } from "../types/id.mjs";
13
13
  import { isString } from "../types/is.mjs";
14
14
  import { Observer } from "../types/observer.mjs";
15
15
  import { ProxyObserver } from "../types/proxyobserver.mjs";
16
- import { ATTRIBUTE_CLASS, ATTRIBUTE_ID, ATTRIBUTE_TITLE } from "./constants.mjs";
16
+ import {
17
+ ATTRIBUTE_CLASS,
18
+ ATTRIBUTE_ID,
19
+ ATTRIBUTE_TITLE,
20
+ } from "./constants.mjs";
17
21
  import { instanceSymbol } from "../constants.mjs";
18
22
 
19
23
  export { Resource, KEY_DOCUMENT, KEY_QUERY, referenceSymbol };
@@ -52,143 +56,143 @@ const referenceSymbol = Symbol("reference");
52
56
  * @summary A Resource class
53
57
  */
54
58
  class Resource extends BaseWithOptions {
55
- /**
56
- *
57
- * @param {Object|undefined} options
58
- */
59
- constructor(options) {
60
- super(options);
61
-
62
- let uri = this.getOption(this.constructor.getURLAttribute());
63
-
64
- if (uri === undefined) {
65
- throw new Error("missing source");
66
- } else if (uri instanceof URL) {
67
- uri = uri.toString();
68
- } else if (!isString(uri)) {
69
- throw new Error("unsupported url type");
70
- }
71
-
72
- this[internalSymbol][this.constructor.getURLAttribute()] = uri;
73
- this[internalStateSymbol] = new ProxyObserver({
74
- loaded: false,
75
- error: undefined,
76
- });
77
-
78
- this[referenceSymbol] = undefined;
79
- }
80
-
81
- /**
82
- * @return {boolean}
83
- */
84
- isConnected() {
85
- if (this[referenceSymbol] instanceof HTMLElement) {
86
- return this[referenceSymbol].isConnected;
87
- }
88
-
89
- return false;
90
- }
91
-
92
- /**
93
- * This method is overridden by the special classes and creates the DOM object.
94
- * This method is also called implicitly, if not yet done explicitly, by calling `connect()`.
95
- *
96
- * @throws {Error} this method must be implemented by derived classes
97
- * @return {Monster.DOM.Resource}
98
- */
99
- create() {
100
- throw new Error("this method must be implemented by derived classes");
101
- }
102
-
103
- /**
104
- * This method appends the HTMLElement to the specified document.
105
- * If the element has not yet been created, `create()` is called implicitly.
106
- *
107
- * throws {Error} target not found
108
- * @return {Monster.DOM.Resource}
109
- */
110
- connect() {
111
- if (!(this[referenceSymbol] instanceof HTMLElement)) {
112
- this.create();
113
- }
114
-
115
- appendToDocument.call(this);
116
- return this;
117
- }
118
-
119
- /**
120
- * @property {Document} document the document object into which the node is to be appended
121
- * @property {string} src/href url to the corresponding resource
122
- * @property {string} query defines the location where the resource is to be hooked into the dom.
123
- * @property {string} id element attribute id
124
- * @property {string} title element attribute title
125
- * @property {string} class element attribute class
126
- * @property {int} timeout timeout
127
- */
128
- get defaults() {
129
- return extend({}, super.defaults, {
130
- [this.constructor.getURLAttribute()]: undefined,
131
- [KEY_DOCUMENT]: getGlobalObject("document"),
132
- [KEY_QUERY]: "head",
133
- [KEY_TIMEOUT]: 10000,
134
- [ATTRIBUTE_ID]: new ID("resource").toString(),
135
- [ATTRIBUTE_CLASS]: undefined,
136
- [ATTRIBUTE_TITLE]: undefined,
137
- });
138
- }
139
-
140
- /**
141
- * With `available()` you can check if a resource is available.
142
- * This is the case when the tag is included and the resource is loaded.
143
- *
144
- * @return {Promise}
145
- */
146
- available() {
147
- const self = this;
148
- if (!(self[referenceSymbol] instanceof HTMLElement)) {
149
- return Promise.reject("no element");
150
- }
151
-
152
- if (!self.isConnected()) {
153
- return Promise.reject("element not connected");
154
- }
155
-
156
- if (self[internalStateSymbol].getSubject()["loaded"] === true) {
157
- if (self[internalStateSymbol].getSubject()["error"] !== undefined) {
158
- return Promise.reject(self[internalStateSymbol].getSubject()["error"]);
159
- }
160
-
161
- return Promise.resolve();
162
- }
163
-
164
- return new Promise(function (resolve, reject) {
165
- const timeout = setTimeout(() => {
166
- reject("timeout");
167
- }, self.getOption("timeout"));
168
-
169
- const observer = new Observer(() => {
170
- clearTimeout(timeout);
171
- self[internalStateSymbol].detachObserver(observer);
172
- resolve();
173
- });
174
-
175
- self[internalStateSymbol].attachObserver(observer);
176
- });
177
- }
178
-
179
- /**
180
- * @return {string}
181
- */
182
- static getURLAttribute() {
183
- throw new Error("this method must be implemented by derived classes");
184
- }
185
-
186
- /**
187
- * @return {symbol}
188
- */
189
- static get [instanceSymbol]() {
190
- return Symbol.for("@schukai/monster/dom/resource");
191
- }
59
+ /**
60
+ *
61
+ * @param {Object|undefined} options
62
+ */
63
+ constructor(options) {
64
+ super(options);
65
+
66
+ let uri = this.getOption(this.constructor.getURLAttribute());
67
+
68
+ if (uri === undefined) {
69
+ throw new Error("missing source");
70
+ } else if (uri instanceof URL) {
71
+ uri = uri.toString();
72
+ } else if (!isString(uri)) {
73
+ throw new Error("unsupported url type");
74
+ }
75
+
76
+ this[internalSymbol][this.constructor.getURLAttribute()] = uri;
77
+ this[internalStateSymbol] = new ProxyObserver({
78
+ loaded: false,
79
+ error: undefined,
80
+ });
81
+
82
+ this[referenceSymbol] = undefined;
83
+ }
84
+
85
+ /**
86
+ * @return {boolean}
87
+ */
88
+ isConnected() {
89
+ if (this[referenceSymbol] instanceof HTMLElement) {
90
+ return this[referenceSymbol].isConnected;
91
+ }
92
+
93
+ return false;
94
+ }
95
+
96
+ /**
97
+ * This method is overridden by the special classes and creates the DOM object.
98
+ * This method is also called implicitly, if not yet done explicitly, by calling `connect()`.
99
+ *
100
+ * @throws {Error} this method must be implemented by derived classes
101
+ * @return {Monster.DOM.Resource}
102
+ */
103
+ create() {
104
+ throw new Error("this method must be implemented by derived classes");
105
+ }
106
+
107
+ /**
108
+ * This method appends the HTMLElement to the specified document.
109
+ * If the element has not yet been created, `create()` is called implicitly.
110
+ *
111
+ * throws {Error} target not found
112
+ * @return {Monster.DOM.Resource}
113
+ */
114
+ connect() {
115
+ if (!(this[referenceSymbol] instanceof HTMLElement)) {
116
+ this.create();
117
+ }
118
+
119
+ appendToDocument.call(this);
120
+ return this;
121
+ }
122
+
123
+ /**
124
+ * @property {Document} document the document object into which the node is to be appended
125
+ * @property {string} src/href url to the corresponding resource
126
+ * @property {string} query defines the location where the resource is to be hooked into the dom.
127
+ * @property {string} id element attribute id
128
+ * @property {string} title element attribute title
129
+ * @property {string} class element attribute class
130
+ * @property {int} timeout timeout
131
+ */
132
+ get defaults() {
133
+ return extend({}, super.defaults, {
134
+ [this.constructor.getURLAttribute()]: undefined,
135
+ [KEY_DOCUMENT]: getGlobalObject("document"),
136
+ [KEY_QUERY]: "head",
137
+ [KEY_TIMEOUT]: 10000,
138
+ [ATTRIBUTE_ID]: new ID("resource").toString(),
139
+ [ATTRIBUTE_CLASS]: undefined,
140
+ [ATTRIBUTE_TITLE]: undefined,
141
+ });
142
+ }
143
+
144
+ /**
145
+ * With `available()` you can check if a resource is available.
146
+ * This is the case when the tag is included and the resource is loaded.
147
+ *
148
+ * @return {Promise}
149
+ */
150
+ available() {
151
+ const self = this;
152
+ if (!(self[referenceSymbol] instanceof HTMLElement)) {
153
+ return Promise.reject("no element");
154
+ }
155
+
156
+ if (!self.isConnected()) {
157
+ return Promise.reject("element not connected");
158
+ }
159
+
160
+ if (self[internalStateSymbol].getSubject()["loaded"] === true) {
161
+ if (self[internalStateSymbol].getSubject()["error"] !== undefined) {
162
+ return Promise.reject(self[internalStateSymbol].getSubject()["error"]);
163
+ }
164
+
165
+ return Promise.resolve();
166
+ }
167
+
168
+ return new Promise(function (resolve, reject) {
169
+ const timeout = setTimeout(() => {
170
+ reject("timeout");
171
+ }, self.getOption("timeout"));
172
+
173
+ const observer = new Observer(() => {
174
+ clearTimeout(timeout);
175
+ self[internalStateSymbol].detachObserver(observer);
176
+ resolve();
177
+ });
178
+
179
+ self[internalStateSymbol].attachObserver(observer);
180
+ });
181
+ }
182
+
183
+ /**
184
+ * @return {string}
185
+ */
186
+ static getURLAttribute() {
187
+ throw new Error("this method must be implemented by derived classes");
188
+ }
189
+
190
+ /**
191
+ * @return {symbol}
192
+ */
193
+ static get [instanceSymbol]() {
194
+ return Symbol.for("@schukai/monster/dom/resource");
195
+ }
192
196
  }
193
197
 
194
198
  /**
@@ -197,17 +201,15 @@ class Resource extends BaseWithOptions {
197
201
  * throws {Error} target not found
198
202
  */
199
203
  function appendToDocument() {
200
- const self = this;
204
+ const targetNode = document.querySelector(this.getOption(KEY_QUERY, "head"));
205
+ if (!(targetNode instanceof HTMLElement)) {
206
+ throw new Error("target not found");
207
+ }
201
208
 
202
- const targetNode = document.querySelector(self.getOption(KEY_QUERY, "head"));
203
- if (!(targetNode instanceof HTMLElement)) {
204
- throw new Error("target not found");
205
- }
209
+ addEvents.call(this);
210
+ targetNode.appendChild(this[referenceSymbol]);
206
211
 
207
- addEvents.call(self);
208
- targetNode.appendChild(self[referenceSymbol]);
209
-
210
- return self;
212
+ return this;
211
213
  }
212
214
 
213
215
  /**
@@ -215,29 +217,29 @@ function appendToDocument() {
215
217
  * @return {addEvents}
216
218
  */
217
219
  function addEvents() {
218
- const self = this;
219
-
220
- const onError = () => {
221
- self[referenceSymbol].removeEventListener("error", onError);
222
- self[referenceSymbol].removeEventListener("load", onLoad);
223
-
224
- self[internalStateSymbol].setSubject({
225
- loaded: true,
226
- error: `${self[referenceSymbol][self.constructor.getURLAttribute()]} is not available`,
227
- });
228
-
229
- return;
230
- };
231
-
232
- const onLoad = () => {
233
- self[referenceSymbol].removeEventListener("error", onError);
234
- self[referenceSymbol].removeEventListener("load", onLoad);
235
- self[internalStateSymbol].getSubject()["loaded"] = true;
236
- return;
237
- };
238
-
239
- self[referenceSymbol].addEventListener("load", onLoad, false);
240
- self[referenceSymbol].addEventListener("error", onError, false);
241
-
242
- return self;
220
+ const onError = () => {
221
+ this[referenceSymbol].removeEventListener("error", onError);
222
+ this[referenceSymbol].removeEventListener("load", onLoad);
223
+
224
+ this[internalStateSymbol].setSubject({
225
+ loaded: true,
226
+ error: `${
227
+ this[referenceSymbol][this.constructor.getURLAttribute()]
228
+ } is not available`,
229
+ });
230
+
231
+ return;
232
+ };
233
+
234
+ const onLoad = () => {
235
+ this[referenceSymbol].removeEventListener("error", onError);
236
+ this[referenceSymbol].removeEventListener("load", onLoad);
237
+ this[internalStateSymbol].getSubject()["loaded"] = true;
238
+ return;
239
+ };
240
+
241
+ this[referenceSymbol].addEventListener("load", onLoad, false);
242
+ this[referenceSymbol].addEventListener("error", onError, false);
243
+
244
+ return this;
243
245
  }