@schukai/monster 3.51.5 → 3.52.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (360) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/README.md +15 -12
  3. package/example/components/form/button.mjs +10 -0
  4. package/example/components/form/select.mjs +25 -0
  5. package/example/components/form/tree-select.mjs +27 -0
  6. package/example/components/host/host.mjs +0 -0
  7. package/example/components/notify/message.mjs +4 -0
  8. package/example/components/notify/notify.mjs +4 -0
  9. package/example/components/state/log.mjs +0 -0
  10. package/example/components/state/state.mjs +0 -0
  11. package/package.json +6 -2
  12. package/source/components/constants.mjs +132 -0
  13. package/source/components/datatable/columnbar.mjs +310 -0
  14. package/source/components/datatable/constants.mjs +121 -0
  15. package/source/components/datatable/dataset.mjs +219 -0
  16. package/source/components/datatable/datasource/dom.mjs +186 -0
  17. package/source/components/datatable/datasource/namespace.mjs +13 -0
  18. package/source/components/datatable/datasource/rest.mjs +400 -0
  19. package/source/components/datatable/datasource.mjs +102 -0
  20. package/source/components/datatable/datatable/header.mjs +268 -0
  21. package/source/components/datatable/datatable/namespace.mjs +13 -0
  22. package/source/components/datatable/datatable.mjs +789 -0
  23. package/source/components/datatable/embedded-pagination.mjs +113 -0
  24. package/source/components/datatable/filter/abstract-base.mjs +31 -0
  25. package/source/components/datatable/filter/date-range.mjs +1041 -0
  26. package/source/components/datatable/filter/input.mjs +175 -0
  27. package/source/components/datatable/filter/namespace.mjs +13 -0
  28. package/source/components/datatable/filter/range.mjs +671 -0
  29. package/source/components/datatable/filter/select.mjs +65 -0
  30. package/source/components/datatable/filter/settings.mjs +116 -0
  31. package/source/components/datatable/filter-button.mjs +98 -0
  32. package/source/components/datatable/filter.mjs +929 -0
  33. package/source/components/datatable/namespace.mjs +11 -0
  34. package/source/components/datatable/pagination.mjs +456 -0
  35. package/source/components/datatable/style/column-bar.pcss +123 -0
  36. package/source/components/datatable/style/dataset.pcss +13 -0
  37. package/source/components/datatable/style/datasource.pcss +16 -0
  38. package/source/components/datatable/style/datatable.pcss +239 -0
  39. package/source/components/datatable/style/embedded-pagination.pcss +101 -0
  40. package/source/components/datatable/style/filter-button.pcss +22 -0
  41. package/source/components/datatable/style/filter-controls-defaults.pcss +46 -0
  42. package/source/components/datatable/style/filter-date-range.pcss +9 -0
  43. package/source/components/datatable/style/filter-range.pcss +5 -0
  44. package/source/components/datatable/style/filter.pcss +156 -0
  45. package/source/components/datatable/style/pagination.pcss +59 -0
  46. package/source/components/datatable/style/select-filter.pcss +27 -0
  47. package/source/components/datatable/stylesheet/column-bar.mjs +33 -0
  48. package/source/components/datatable/stylesheet/dataset.mjs +33 -0
  49. package/source/components/datatable/stylesheet/datasource.mjs +33 -0
  50. package/source/components/datatable/stylesheet/datatable.mjs +33 -0
  51. package/source/components/datatable/stylesheet/embedded-pagination.mjs +33 -0
  52. package/source/components/datatable/stylesheet/filter-button.mjs +33 -0
  53. package/source/components/datatable/stylesheet/filter-controls-defaults.mjs +33 -0
  54. package/source/components/datatable/stylesheet/filter-date-range.mjs +33 -0
  55. package/source/components/datatable/stylesheet/filter-range.mjs +33 -0
  56. package/source/components/datatable/stylesheet/filter.mjs +33 -0
  57. package/source/components/datatable/stylesheet/namespace.mjs +13 -0
  58. package/source/components/datatable/stylesheet/pagination.mjs +33 -0
  59. package/source/components/datatable/stylesheet/select-filter.mjs +33 -0
  60. package/source/components/datatable/util.mjs +60 -0
  61. package/source/components/form/action-button.mjs +262 -0
  62. package/source/components/form/api-button.mjs +515 -0
  63. package/source/components/form/button-bar.mjs +739 -0
  64. package/source/components/form/button.mjs +350 -0
  65. package/source/components/form/confirm-button.mjs +330 -0
  66. package/source/components/form/constants.mjs +111 -0
  67. package/source/components/form/context-help.mjs +123 -0
  68. package/source/components/form/events.mjs +84 -0
  69. package/source/components/form/form.mjs +601 -0
  70. package/source/components/form/message-state-button.mjs +396 -0
  71. package/source/components/form/namespace.mjs +13 -0
  72. package/source/components/form/popper-button.mjs +435 -0
  73. package/source/components/form/popper.mjs +487 -0
  74. package/source/components/form/reload.mjs +360 -0
  75. package/source/components/form/select.mjs +2314 -0
  76. package/source/components/form/shadow-reload.mjs +137 -0
  77. package/source/components/form/state-button.mjs +182 -0
  78. package/source/components/form/style/action-button.pcss +41 -0
  79. package/source/components/form/style/api-button.pcss +0 -0
  80. package/source/components/form/style/button-bar.pcss +51 -0
  81. package/source/components/form/style/button.pcss +8 -0
  82. package/source/components/form/style/confirm-button.pcss +17 -0
  83. package/source/components/form/style/context-help.pcss +16 -0
  84. package/source/components/form/style/form.pcss +10 -0
  85. package/source/components/form/style/message-state-button.pcss +10 -0
  86. package/source/components/form/style/popper-button.pcss +16 -0
  87. package/source/components/form/style/popper.pcss +8 -0
  88. package/source/components/form/style/select.pcss +265 -0
  89. package/source/components/form/style/state-button.pcss +116 -0
  90. package/source/components/form/style/tabs.pcss +170 -0
  91. package/source/components/form/style/tree-select.pcss +81 -0
  92. package/source/components/form/stylesheet/action-button.mjs +33 -0
  93. package/source/components/form/stylesheet/api-button.mjs +33 -0
  94. package/source/components/form/stylesheet/button-bar.mjs +33 -0
  95. package/source/components/form/stylesheet/button.mjs +33 -0
  96. package/source/components/form/stylesheet/confirm-button.mjs +33 -0
  97. package/source/components/form/stylesheet/context-help.mjs +33 -0
  98. package/source/components/form/stylesheet/form.mjs +33 -0
  99. package/source/components/form/stylesheet/message-state-button.mjs +33 -0
  100. package/source/components/form/stylesheet/namespace.mjs +13 -0
  101. package/source/components/form/stylesheet/popper-button.mjs +33 -0
  102. package/source/components/form/stylesheet/popper.mjs +33 -0
  103. package/source/components/form/stylesheet/select.mjs +33 -0
  104. package/source/components/form/stylesheet/state-button.mjs +33 -0
  105. package/source/components/form/stylesheet/tabs.mjs +33 -0
  106. package/source/components/form/stylesheet/tree-select.mjs +33 -0
  107. package/source/components/form/tabs.mjs +1011 -0
  108. package/source/components/form/template.mjs +373 -0
  109. package/source/components/form/tree-select.mjs +527 -0
  110. package/source/components/form/types/namespace.mjs +13 -0
  111. package/source/components/form/types/state.mjs +93 -0
  112. package/source/components/form/util/fetch.mjs +133 -0
  113. package/source/components/form/util/floating-ui.mjs +245 -0
  114. package/source/components/form/util/namespace.mjs +13 -0
  115. package/source/components/form/util/popper.mjs +49 -0
  116. package/source/components/host/call-button.mjs +236 -0
  117. package/source/components/host/collapse.mjs +526 -0
  118. package/source/components/host/config-manager.mjs +304 -0
  119. package/source/components/host/constants.mjs +18 -0
  120. package/source/components/host/details.mjs +268 -0
  121. package/source/components/host/events.mjs +131 -0
  122. package/source/components/host/host.mjs +420 -0
  123. package/source/components/host/namespace.mjs +13 -0
  124. package/source/components/host/overlay.mjs +339 -0
  125. package/source/components/host/style/call-button.pcss +36 -0
  126. package/source/components/host/style/collapse.pcss +67 -0
  127. package/source/components/host/style/config-manager.pcss +5 -0
  128. package/source/components/host/style/details.pcss +68 -0
  129. package/source/components/host/style/host.pcss +43 -0
  130. package/source/components/host/style/overlay.pcss +73 -0
  131. package/source/components/host/style/toggle-button.pcss +36 -0
  132. package/source/components/host/style/viewer.pcss +13 -0
  133. package/source/components/host/stylesheet/call-button.mjs +33 -0
  134. package/source/components/host/stylesheet/collapse.mjs +33 -0
  135. package/source/components/host/stylesheet/config-manager.mjs +33 -0
  136. package/source/components/host/stylesheet/details.mjs +33 -0
  137. package/source/components/host/stylesheet/host.mjs +33 -0
  138. package/source/components/host/stylesheet/namespace.mjs +13 -0
  139. package/source/components/host/stylesheet/overlay.mjs +33 -0
  140. package/source/components/host/stylesheet/toggle-button.mjs +33 -0
  141. package/source/components/host/stylesheet/viewer.mjs +33 -0
  142. package/source/components/host/toggle-button.mjs +88 -0
  143. package/source/components/host/util.mjs +23 -0
  144. package/source/components/host/viewer.mjs +309 -0
  145. package/source/components/namespace.mjs +14 -0
  146. package/source/components/notify/constants.mjs +15 -0
  147. package/source/components/notify/events.mjs +15 -0
  148. package/source/components/notify/message.mjs +374 -0
  149. package/source/components/notify/namespace.mjs +15 -0
  150. package/source/components/notify/notify.mjs +236 -0
  151. package/source/components/notify/style/message.pcss +57 -0
  152. package/source/components/notify/style/notify.pcss +118 -0
  153. package/source/components/notify/stylesheet/message.mjs +33 -0
  154. package/source/components/notify/stylesheet/namespace.mjs +15 -0
  155. package/source/components/notify/stylesheet/notify.mjs +33 -0
  156. package/source/components/state/log/entry.mjs +126 -0
  157. package/source/components/state/log/namespace.mjs +13 -0
  158. package/source/components/state/log.mjs +275 -0
  159. package/source/components/state/namespace.mjs +13 -0
  160. package/source/components/state/state.mjs +131 -0
  161. package/source/components/state/style/log.pcss +111 -0
  162. package/source/components/state/style/state.pcss +113 -0
  163. package/source/components/state/stylesheet/log.mjs +33 -0
  164. package/source/components/state/stylesheet/state.mjs +33 -0
  165. package/source/components/style/badge.pcss +92 -0
  166. package/source/components/style/border.pcss +77 -0
  167. package/source/components/style/button.pcss +105 -0
  168. package/source/components/style/card.pcss +108 -0
  169. package/source/components/style/color.pcss +257 -0
  170. package/source/components/style/common.pcss +103 -0
  171. package/source/components/style/control.pcss +11 -0
  172. package/source/components/style/data-grid.pcss +43 -0
  173. package/source/components/style/display.pcss +42 -0
  174. package/source/components/style/floating-ui.pcss +33 -0
  175. package/source/components/style/form.pcss +5 -0
  176. package/source/components/style/host.pcss +15 -0
  177. package/source/components/style/link.pcss +63 -0
  178. package/source/components/style/mixin/badge.pcss +18 -0
  179. package/source/components/style/mixin/button.pcss +54 -0
  180. package/source/components/style/mixin/form.pcss +247 -0
  181. package/source/components/style/mixin/hover.pcss +8 -0
  182. package/source/components/style/mixin/media.pcss +107 -0
  183. package/source/components/style/mixin/property.pcss +288 -0
  184. package/source/components/style/mixin/skeleton.pcss +26 -0
  185. package/source/components/style/mixin/spinner.pcss +24 -0
  186. package/source/components/style/mixin/typography.pcss +52 -0
  187. package/source/components/style/normalize.pcss +14 -0
  188. package/source/components/style/popper.pcss +78 -0
  189. package/source/components/style/property.pcss +17 -0
  190. package/source/components/style/ripple.pcss +14 -0
  191. package/source/components/style/skeleton.pcss +28 -0
  192. package/source/components/style/space.pcss +47 -0
  193. package/source/components/style/spinner.pcss +6 -0
  194. package/source/components/style/table.pcss +46 -0
  195. package/source/components/style/theme.pcss +119 -0
  196. package/source/components/style/typography.pcss +131 -0
  197. package/source/components/stylesheet/badge.mjs +33 -0
  198. package/source/components/stylesheet/border.mjs +33 -0
  199. package/source/components/stylesheet/button.mjs +33 -0
  200. package/source/components/stylesheet/card.mjs +33 -0
  201. package/source/components/stylesheet/color.mjs +33 -0
  202. package/source/components/stylesheet/common.mjs +33 -0
  203. package/source/components/stylesheet/control.mjs +33 -0
  204. package/source/components/stylesheet/data-grid.mjs +33 -0
  205. package/source/components/stylesheet/display.mjs +33 -0
  206. package/source/components/stylesheet/floating-ui.mjs +33 -0
  207. package/source/components/stylesheet/form.mjs +33 -0
  208. package/source/components/stylesheet/host.mjs +33 -0
  209. package/source/components/stylesheet/link.mjs +33 -0
  210. package/source/components/stylesheet/namespace.mjs +13 -0
  211. package/source/components/stylesheet/normalize.mjs +33 -0
  212. package/source/components/stylesheet/popper.mjs +33 -0
  213. package/source/components/stylesheet/property.mjs +33 -0
  214. package/source/components/stylesheet/ripple.mjs +33 -0
  215. package/source/components/stylesheet/skeleton.mjs +33 -0
  216. package/source/components/stylesheet/space.mjs +33 -0
  217. package/source/components/stylesheet/spinner.mjs +33 -0
  218. package/source/components/stylesheet/table.mjs +33 -0
  219. package/source/components/stylesheet/theme.mjs +33 -0
  220. package/source/components/stylesheet/tree-menu.mjs +33 -0
  221. package/source/components/stylesheet/typography.mjs +33 -0
  222. package/source/components/tree-menu/namespace.mjs +13 -0
  223. package/source/components/tree-menu/style/tree-menu.pcss +107 -0
  224. package/source/components/tree-menu/stylesheet/namespace.mjs +13 -0
  225. package/source/components/tree-menu/stylesheet/tree-menu.mjs +33 -0
  226. package/source/components/tree-menu/tree-menu.mjs +660 -0
  227. package/source/constraints/abstract.mjs +17 -24
  228. package/source/constraints/abstractoperator.mjs +27 -22
  229. package/source/constraints/andoperator.mjs +20 -17
  230. package/source/constraints/invalid.mjs +17 -17
  231. package/source/constraints/isarray.mjs +20 -20
  232. package/source/constraints/isobject.mjs +20 -20
  233. package/source/constraints/oroperator.mjs +45 -45
  234. package/source/constraints/valid.mjs +17 -17
  235. package/source/data/buildmap.mjs +108 -103
  236. package/source/data/buildtree.mjs +59 -57
  237. package/source/data/datasource/dom.mjs +80 -84
  238. package/source/data/datasource/namespace.mjs +1 -1
  239. package/source/data/datasource/server/restapi/data-fetch-error.mjs +27 -25
  240. package/source/data/datasource/server/restapi/writeerror.mjs +34 -32
  241. package/source/data/datasource/server/restapi.mjs +176 -177
  242. package/source/data/datasource/server/webconnect.mjs +150 -156
  243. package/source/data/datasource/server.mjs +58 -59
  244. package/source/data/datasource/storage/localstorage.mjs +25 -24
  245. package/source/data/datasource/storage/sessionstorage.mjs +28 -25
  246. package/source/data/datasource/storage.mjs +74 -73
  247. package/source/data/datasource.mjs +176 -167
  248. package/source/data/diff.mjs +98 -97
  249. package/source/data/extend.mjs +42 -42
  250. package/source/data/pathfinder.mjs +301 -288
  251. package/source/data/pipe.mjs +36 -36
  252. package/source/data/transformer.mjs +742 -726
  253. package/source/dom/assembler.mjs +44 -44
  254. package/source/dom/attributes.mjs +142 -122
  255. package/source/dom/constants.mjs +62 -58
  256. package/source/dom/customcontrol.mjs +299 -299
  257. package/source/dom/customelement.mjs +843 -806
  258. package/source/dom/dimension.mjs +56 -46
  259. package/source/dom/events.mjs +74 -69
  260. package/source/dom/focusmanager.mjs +175 -175
  261. package/source/dom/locale.mjs +28 -28
  262. package/source/dom/ready.mjs +13 -13
  263. package/source/dom/resource/data.mjs +117 -111
  264. package/source/dom/resource/link/stylesheet.mjs +16 -16
  265. package/source/dom/resource/link.mjs +94 -96
  266. package/source/dom/resource/script.mjs +72 -74
  267. package/source/dom/resource.mjs +174 -172
  268. package/source/dom/resourcemanager.mjs +152 -156
  269. package/source/dom/slotted.mjs +78 -80
  270. package/source/dom/template.mjs +126 -112
  271. package/source/dom/theme.mjs +35 -35
  272. package/source/dom/updater.mjs +673 -651
  273. package/source/dom/util/extract-keys.mjs +34 -22
  274. package/source/dom/util/init-options-from-attributes.mjs +46 -38
  275. package/source/dom/util/namespace.mjs +13 -0
  276. package/source/dom/util/set-option-from-attribute.mjs +35 -29
  277. package/source/dom/util.mjs +112 -81
  278. package/source/dom/worker/factory.mjs +83 -83
  279. package/source/i18n/formatter.mjs +75 -73
  280. package/source/i18n/locale.mjs +146 -144
  281. package/source/i18n/provider.mjs +70 -64
  282. package/source/i18n/providers/embed.mjs +136 -127
  283. package/source/i18n/providers/fetch.mjs +84 -76
  284. package/source/i18n/translations.mjs +205 -195
  285. package/source/logging/handler/console.mjs +36 -36
  286. package/source/logging/handler.mjs +140 -140
  287. package/source/logging/logentry.mjs +25 -25
  288. package/source/logging/logger.mjs +177 -175
  289. package/source/math/random.mjs +63 -59
  290. package/source/monster.mjs +223 -103
  291. package/source/net/webconnect/message.mjs +31 -31
  292. package/source/net/webconnect.mjs +278 -271
  293. package/source/text/bracketed-key-value-hash.mjs +182 -179
  294. package/source/text/formatter.mjs +235 -210
  295. package/source/text/generate-range-comparison-expression.mjs +56 -34
  296. package/source/text/namespace.mjs +1 -1
  297. package/source/types/base.mjs +69 -61
  298. package/source/types/basewithoptions.mjs +46 -46
  299. package/source/types/binary.mjs +20 -20
  300. package/source/types/dataurl.mjs +96 -90
  301. package/source/types/global.mjs +45 -39
  302. package/source/types/id.mjs +25 -25
  303. package/source/types/internal.mjs +115 -114
  304. package/source/types/is.mjs +56 -40
  305. package/source/types/mediatype.mjs +119 -119
  306. package/source/types/namespace.mjs +1 -1
  307. package/source/types/node.mjs +160 -150
  308. package/source/types/nodelist.mjs +94 -96
  309. package/source/types/noderecursiveiterator.mjs +50 -50
  310. package/source/types/observablequeue.mjs +73 -73
  311. package/source/types/observer.mjs +104 -104
  312. package/source/types/observerlist.mjs +66 -66
  313. package/source/types/proxyobserver.mjs +210 -210
  314. package/source/types/queue.mjs +63 -63
  315. package/source/types/randomid.mjs +13 -13
  316. package/source/types/regex.mjs +3 -1
  317. package/source/types/stack.mjs +64 -64
  318. package/source/types/tokenlist.mjs +206 -205
  319. package/source/types/typeof.mjs +12 -10
  320. package/source/types/uniquequeue.mjs +48 -48
  321. package/source/types/uuid.mjs +32 -32
  322. package/source/types/validate.mjs +67 -67
  323. package/source/types/version.mjs +115 -105
  324. package/source/util/clone.mjs +103 -91
  325. package/source/util/comparator.mjs +97 -97
  326. package/source/util/deadmansswitch.mjs +40 -44
  327. package/source/util/freeze.mjs +10 -9
  328. package/source/util/namespace.mjs +1 -1
  329. package/source/util/processing.mjs +104 -105
  330. package/source/util/runtime.mjs +56 -44
  331. package/source/util/trimspaces.mjs +24 -24
  332. package/test/cases/components/form/button.mjs +122 -0
  333. package/test/cases/components/form/confirm-button.mjs +127 -0
  334. package/test/cases/components/form/form.mjs +317 -0
  335. package/test/cases/components/form/reload.mjs +188 -0
  336. package/test/cases/components/form/select.mjs +229 -0
  337. package/test/cases/components/form/state-button.mjs +130 -0
  338. package/test/cases/components/form/tabs.mjs +98 -0
  339. package/test/cases/components/form/template.mjs +189 -0
  340. package/test/cases/components/form/tree-select.mjs +216 -0
  341. package/test/cases/components/host/details.mjs +68 -0
  342. package/test/cases/components/host/host.mjs +70 -0
  343. package/test/cases/components/host/overlay.mjs +60 -0
  344. package/test/cases/components/host/util.mjs +79 -0
  345. package/test/cases/components/notify/message.mjs +39 -0
  346. package/test/cases/components/notify/notify.mjs +89 -0
  347. package/test/cases/dom/customcontrol.mjs +5 -4
  348. package/test/cases/math/random.mjs +0 -1
  349. package/test/cases/monster.mjs +1 -1
  350. package/test/cases/net/webconnect/message.mjs +0 -1
  351. package/test/cases/types/node.mjs +1 -1
  352. package/test/util/chai-dom.mjs +2 -2
  353. package/test/util/intersection-mock.mjs +69 -0
  354. package/test/util/jsdom.mjs +41 -25
  355. package/test/util/localstorage.mjs +1 -0
  356. package/test/util/resize-observer.mjs +29 -0
  357. package/test/util/websocket.mjs +4 -1
  358. package/test/web/import.js +16 -1
  359. package/test/web/test.html +28 -5
  360. package/test/web/tests.js +30398 -17879
@@ -28,121 +28,121 @@ export { ResourceManager };
28
28
  * @summary A Resource class
29
29
  */
30
30
  class ResourceManager extends Base {
31
- /**
32
- *
33
- * @param {Object} options
34
- * throw {Error} unsupported document type
35
- */
36
- constructor(options) {
37
- super(options);
38
- equipWithInternal.call(this);
39
-
40
- if (!(this.getOption("document") instanceof Document)) {
41
- throw new Error("unsupported document type");
42
- }
43
- }
44
-
45
- /**
46
- * @deprecated since 3.15.0 use getInternal instead
47
- * @property {string} baseurl
48
- */
49
- getOption(key) {
50
- return this.getInternal(key);
51
- }
52
-
53
- /**
54
- * @property {string} baseurl
55
- */
56
- getBaseURL() {
57
- this.getOption("document")?.baseURL;
58
- }
59
-
60
- /**
61
- * @property {string} baseurl
62
- * @deprecated since 3.15.0 use internalDefaults instead
63
- */
64
- get defaults() {
65
- return this.internalDefaults;
66
- }
67
-
68
- /**
69
- *
70
- * @property {HTMLDocument} document=document Document
71
- * @property {Object} resources
72
- * @property {Array} resources.scripts=[] array with {@link Monster.DOM.Resource.Script} objects
73
- * @property {Array} resources.stylesheets=[] array with {@link Monster.DOM.Resource.Link.Stylesheet} objects
74
- * @property {Array} resources.data=[] array with {@link Monster.DOM.Resource.Data} objects
75
- */
76
- get internalDefaults() {
77
- return Object.assign(
78
- {},
79
- {
80
- document: getGlobalObject("document"),
81
- resources: {
82
- scripts: [],
83
- stylesheets: [],
84
- data: [],
85
- },
86
- },
87
- );
88
- }
89
-
90
- /**
91
- * Append Tags to DOM
92
- *
93
- * @return {Monster.DOM.ResourceManager}
94
- * @throws {Error} unsupported resource definition
95
- */
96
- connect() {
97
- runResourceMethod.call(this, "connect");
98
- return this;
99
- }
100
-
101
- /**
102
- * Check if available
103
- *
104
- * @return {Promise}
105
- * @throws {Error} unsupported resource definition
106
- */
107
- available() {
108
- return Promise.all(runResourceMethod.call(this, "available"));
109
- }
110
-
111
- /**
112
- * Add a script
113
- *
114
- * @param {string|URL} url
115
- * @param [Object|undefined} options
116
- * @return {Monster.DOM.ResourceManager}
117
- * @see Monster.DOM.Resource.Script
118
- */
119
- addScript(url, options) {
120
- return addResource.call(this, "scripts", url, options);
121
- }
122
-
123
- /**
124
- * Add Stylesheet
125
- *
126
- * @param {string|URL} url
127
- * @param [Object|undefined} options
128
- * @return {Monster.DOM.ResourceManager}
129
- * @see Monster.DOM.Resource.Link.Stylesheet
130
- */
131
- addStylesheet(url, options) {
132
- return addResource.call(this, "stylesheets", url, options);
133
- }
134
-
135
- /**
136
- * Add Data Tag
137
- *
138
- * @param {string|URL} url
139
- * @param [Object|undefined} options
140
- * @return {Monster.DOM.ResourceManager}
141
- * @see Monster.DOM.Resource.Data
142
- */
143
- addData(url, options) {
144
- return addResource.call(this, "data", url, options);
145
- }
31
+ /**
32
+ *
33
+ * @param {Object} options
34
+ * throw {Error} unsupported document type
35
+ */
36
+ constructor(options) {
37
+ super(options);
38
+ equipWithInternal.call(this);
39
+
40
+ if (!(this.getOption("document") instanceof Document)) {
41
+ throw new Error("unsupported document type");
42
+ }
43
+ }
44
+
45
+ /**
46
+ * @deprecated since 3.15.0 use getInternal instead
47
+ * @property {string} baseurl
48
+ */
49
+ getOption(key) {
50
+ return this.getInternal(key);
51
+ }
52
+
53
+ /**
54
+ * @property {string} baseurl
55
+ */
56
+ getBaseURL() {
57
+ this.getOption("document")?.baseURL;
58
+ }
59
+
60
+ /**
61
+ * @property {string} baseurl
62
+ * @deprecated since 3.15.0 use internalDefaults instead
63
+ */
64
+ get defaults() {
65
+ return this.internalDefaults;
66
+ }
67
+
68
+ /**
69
+ *
70
+ * @property {HTMLDocument} document=document Document
71
+ * @property {Object} resources
72
+ * @property {Array} resources.scripts=[] array with {@link Monster.DOM.Resource.Script} objects
73
+ * @property {Array} resources.stylesheets=[] array with {@link Monster.DOM.Resource.Link.Stylesheet} objects
74
+ * @property {Array} resources.data=[] array with {@link Monster.DOM.Resource.Data} objects
75
+ */
76
+ get internalDefaults() {
77
+ return Object.assign(
78
+ {},
79
+ {
80
+ document: getGlobalObject("document"),
81
+ resources: {
82
+ scripts: [],
83
+ stylesheets: [],
84
+ data: [],
85
+ },
86
+ },
87
+ );
88
+ }
89
+
90
+ /**
91
+ * Append Tags to DOM
92
+ *
93
+ * @return {Monster.DOM.ResourceManager}
94
+ * @throws {Error} unsupported resource definition
95
+ */
96
+ connect() {
97
+ runResourceMethod.call(this, "connect");
98
+ return this;
99
+ }
100
+
101
+ /**
102
+ * Check if available
103
+ *
104
+ * @return {Promise}
105
+ * @throws {Error} unsupported resource definition
106
+ */
107
+ available() {
108
+ return Promise.all(runResourceMethod.call(this, "available"));
109
+ }
110
+
111
+ /**
112
+ * Add a script
113
+ *
114
+ * @param {string|URL} url
115
+ * @param [Object|undefined} options
116
+ * @return {Monster.DOM.ResourceManager}
117
+ * @see Monster.DOM.Resource.Script
118
+ */
119
+ addScript(url, options) {
120
+ return addResource.call(this, "scripts", url, options);
121
+ }
122
+
123
+ /**
124
+ * Add Stylesheet
125
+ *
126
+ * @param {string|URL} url
127
+ * @param [Object|undefined} options
128
+ * @return {Monster.DOM.ResourceManager}
129
+ * @see Monster.DOM.Resource.Link.Stylesheet
130
+ */
131
+ addStylesheet(url, options) {
132
+ return addResource.call(this, "stylesheets", url, options);
133
+ }
134
+
135
+ /**
136
+ * Add Data Tag
137
+ *
138
+ * @param {string|URL} url
139
+ * @param [Object|undefined} options
140
+ * @return {Monster.DOM.ResourceManager}
141
+ * @see Monster.DOM.Resource.Data
142
+ */
143
+ addData(url, options) {
144
+ return addResource.call(this, "data", url, options);
145
+ }
146
146
  }
147
147
 
148
148
  /**
@@ -151,26 +151,24 @@ class ResourceManager extends Base {
151
151
  * @return {Array}
152
152
  */
153
153
  function runResourceMethod(method) {
154
- const self = this;
154
+ const result = [];
155
155
 
156
- const result = [];
156
+ for (const type of ["scripts", "stylesheets", "data"]) {
157
+ const resources = this.getOption(`resources.${type}`);
158
+ if (!isArray(resources)) {
159
+ continue;
160
+ }
157
161
 
158
- for (const type of ["scripts", "stylesheets", "data"]) {
159
- const resources = self.getOption(`resources.${type}`);
160
- if (!isArray(resources)) {
161
- continue;
162
- }
162
+ for (const resource of resources) {
163
+ if (!(resource instanceof Resource)) {
164
+ throw new Error("unsupported resource definition");
165
+ }
163
166
 
164
- for (const resource of resources) {
165
- if (!(resource instanceof Resource)) {
166
- throw new Error("unsupported resource definition");
167
- }
167
+ result.push(resource[method]());
168
+ }
169
+ }
168
170
 
169
- result.push(resource[method]());
170
- }
171
- }
172
-
173
- return result;
171
+ return result;
174
172
  }
175
173
 
176
174
  /**
@@ -182,29 +180,27 @@ function runResourceMethod(method) {
182
180
  * @private
183
181
  */
184
182
  function addResource(type, url, options) {
185
- const self = this;
186
-
187
- if (url instanceof URL) {
188
- url = url.toString();
189
- }
190
-
191
- options = options || {};
192
-
193
- let resource;
194
- switch (type) {
195
- case "scripts":
196
- resource = new Script(extend({}, options, { [ATTRIBUTE_SRC]: url }));
197
- break;
198
- case "stylesheets":
199
- resource = new Stylesheet(extend({}, options, { [ATTRIBUTE_HREF]: url }));
200
- break;
201
- case "data":
202
- resource = new Data(extend({}, options, { [ATTRIBUTE_SRC]: url }));
203
- break;
204
- default:
205
- throw new Error(`unsupported type ${type}`);
206
- }
207
-
208
- self.getOption("resources")?.[type].push(resource);
209
- return self;
183
+ if (url instanceof URL) {
184
+ url = url.toString();
185
+ }
186
+
187
+ options = options || {};
188
+
189
+ let resource;
190
+ switch (type) {
191
+ case "scripts":
192
+ resource = new Script(extend({}, options, { [ATTRIBUTE_SRC]: url }));
193
+ break;
194
+ case "stylesheets":
195
+ resource = new Stylesheet(extend({}, options, { [ATTRIBUTE_HREF]: url }));
196
+ break;
197
+ case "data":
198
+ resource = new Data(extend({}, options, { [ATTRIBUTE_SRC]: url }));
199
+ break;
200
+ default:
201
+ throw new Error(`unsupported type ${type}`);
202
+ }
203
+
204
+ this.getOption("resources")?.[type].push(resource);
205
+ return this;
210
206
  }
@@ -14,47 +14,46 @@ export { getSlottedElements, getSlottedNodes };
14
14
  * @throws {Error} query must be a string
15
15
  */
16
16
  function getSlottedNodes(query, name) {
17
- const self = this;
18
- const result = new Set();
19
-
20
- if (!self.shadowRoot) {
21
- return result;
22
- }
23
-
24
- let selector = "slot";
25
- if (name !== undefined) {
26
- if (name === null) {
27
- selector += ":not([name])";
28
- } else {
29
- selector += `[name=${validateString(name)}]`;
30
- }
31
- }
32
-
33
- const slots = self.shadowRoot.querySelectorAll(selector);
34
-
35
- for (const [, slot] of Object.entries(slots)) {
36
- slot.assignedNodes().forEach(function (node) {
37
- if (node === null || node === undefined) {
38
- return;
39
- }
40
-
41
- if (isString(query)) {
42
- node.querySelectorAll(query).forEach(function (n) {
43
- result.add(n);
44
- });
45
-
46
- if (node.matches(query)) {
47
- result.add(node);
48
- }
49
- } else if (query !== undefined) {
50
- throw new Error("query must be a string");
51
- } else {
52
- result.add(node);
53
- }
54
- });
55
- }
56
-
57
- return result;
17
+ const result = new Set();
18
+
19
+ if (!this.shadowRoot) {
20
+ return result;
21
+ }
22
+
23
+ let selector = "slot";
24
+ if (name !== undefined) {
25
+ if (name === null) {
26
+ selector += ":not([name])";
27
+ } else {
28
+ selector += `[name=${validateString(name)}]`;
29
+ }
30
+ }
31
+
32
+ const slots = this.shadowRoot.querySelectorAll(selector);
33
+
34
+ for (const [, slot] of Object.entries(slots)) {
35
+ slot.assignedNodes().forEach(function (node) {
36
+ if (node === null || node === undefined) {
37
+ return;
38
+ }
39
+
40
+ if (isString(query)) {
41
+ node.querySelectorAll(query).forEach(function (n) {
42
+ result.add(n);
43
+ });
44
+
45
+ if (node.matches(query)) {
46
+ result.add(node);
47
+ }
48
+ } else if (query !== undefined) {
49
+ throw new Error("query must be a string");
50
+ } else {
51
+ result.add(node);
52
+ }
53
+ });
54
+ }
55
+
56
+ return result;
58
57
  }
59
58
 
60
59
  /**
@@ -68,43 +67,42 @@ function getSlottedNodes(query, name) {
68
67
  * @throws {Error} query must be a string
69
68
  */
70
69
  function getSlottedElements(query, name) {
71
- const self = this;
72
- const result = new Set();
73
-
74
- if (!(self.shadowRoot instanceof ShadowRoot)) {
75
- return result;
76
- }
77
-
78
- let selector = "slot";
79
- if (name !== undefined) {
80
- if (name === null) {
81
- selector += ":not([name])";
82
- } else {
83
- selector += `[name=${validateString(name)}]`;
84
- }
85
- }
86
-
87
- const slots = self.shadowRoot.querySelectorAll(selector);
88
-
89
- for (const [, slot] of Object.entries(slots)) {
90
- slot.assignedElements().forEach(function (node) {
91
- if (!(node instanceof HTMLElement)) return;
92
-
93
- if (isString(query)) {
94
- node.querySelectorAll(query).forEach(function (n) {
95
- result.add(n);
96
- });
97
-
98
- if (node.matches(query)) {
99
- result.add(node);
100
- }
101
- } else if (query !== undefined) {
102
- throw new Error("query must be a string");
103
- } else {
104
- result.add(node);
105
- }
106
- });
107
- }
108
-
109
- return result;
70
+ const result = new Set();
71
+
72
+ if (!(this.shadowRoot instanceof ShadowRoot)) {
73
+ return result;
74
+ }
75
+
76
+ let selector = "slot";
77
+ if (name !== undefined) {
78
+ if (name === null) {
79
+ selector += ":not([name])";
80
+ } else {
81
+ selector += `[name=${validateString(name)}]`;
82
+ }
83
+ }
84
+
85
+ const slots = this.shadowRoot.querySelectorAll(selector);
86
+
87
+ for (const [, slot] of Object.entries(slots)) {
88
+ slot.assignedElements().forEach(function (node) {
89
+ if (!(node instanceof HTMLElement)) return;
90
+
91
+ if (isString(query)) {
92
+ node.querySelectorAll(query).forEach(function (n) {
93
+ result.add(n);
94
+ });
95
+
96
+ if (node.matches(query)) {
97
+ result.add(node);
98
+ }
99
+ } else if (query !== undefined) {
100
+ throw new Error("query must be a string");
101
+ } else {
102
+ result.add(node);
103
+ }
104
+ });
105
+ }
106
+
107
+ return result;
110
108
  }