@schukai/monster 3.65.0 → 3.65.21

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 (383) hide show
  1. package/CHANGELOG.md +48 -327
  2. package/README.md +44 -40
  3. package/package.json +1 -48
  4. package/source/components/constants.mjs +10 -3
  5. package/source/components/datatable/change-button.mjs +18 -11
  6. package/source/components/datatable/columnbar.mjs +10 -1
  7. package/source/components/datatable/constants.mjs +11 -4
  8. package/source/components/datatable/dataset.mjs +212 -203
  9. package/source/components/datatable/datasource/dom.mjs +14 -1
  10. package/source/components/datatable/datasource/rest.mjs +10 -1
  11. package/source/components/datatable/datasource.mjs +10 -1
  12. package/source/components/datatable/datatable/header.mjs +220 -218
  13. package/source/components/datatable/datatable.mjs +754 -752
  14. package/source/components/datatable/embedded-pagination.mjs +10 -1
  15. package/source/components/datatable/filter/abstract-base.mjs +10 -1
  16. package/source/components/datatable/filter/date-range.mjs +10 -1
  17. package/source/components/datatable/filter/input.mjs +10 -1
  18. package/source/components/datatable/filter/range.mjs +10 -1
  19. package/source/components/datatable/filter/select.mjs +11 -4
  20. package/source/components/datatable/filter/settings.mjs +14 -0
  21. package/source/components/datatable/filter/util.mjs +14 -0
  22. package/source/components/datatable/filter-button.mjs +10 -1
  23. package/source/components/datatable/filter.mjs +15 -11
  24. package/source/components/datatable/pagination.mjs +18 -9
  25. package/source/components/datatable/save-button.mjs +280 -270
  26. package/source/components/datatable/status.mjs +15 -5
  27. package/source/components/datatable/stylesheet/change-button.mjs +16 -7
  28. package/source/components/datatable/stylesheet/column-bar.mjs +16 -7
  29. package/source/components/datatable/stylesheet/dataset.mjs +16 -7
  30. package/source/components/datatable/stylesheet/datasource.mjs +16 -7
  31. package/source/components/datatable/stylesheet/datatable.mjs +16 -7
  32. package/source/components/datatable/stylesheet/embedded-pagination.mjs +16 -7
  33. package/source/components/datatable/stylesheet/filter-button.mjs +16 -7
  34. package/source/components/datatable/stylesheet/filter-controls-defaults.mjs +16 -7
  35. package/source/components/datatable/stylesheet/filter-date-range.mjs +16 -7
  36. package/source/components/datatable/stylesheet/filter-range.mjs +16 -7
  37. package/source/components/datatable/stylesheet/filter.mjs +16 -7
  38. package/source/components/datatable/stylesheet/pagination.mjs +16 -7
  39. package/source/components/datatable/stylesheet/save-button.mjs +16 -7
  40. package/source/components/datatable/stylesheet/select-filter.mjs +16 -7
  41. package/source/components/datatable/stylesheet/status.mjs +16 -7
  42. package/source/components/datatable/util.mjs +16 -8
  43. package/source/components/form/action-button.mjs +11 -3
  44. package/source/components/form/api-button.mjs +11 -3
  45. package/source/components/form/button-bar.mjs +11 -3
  46. package/source/components/form/button.mjs +254 -249
  47. package/source/components/form/confirm-button.mjs +11 -3
  48. package/source/components/form/constants.mjs +10 -3
  49. package/source/components/form/context-error.mjs +69 -52
  50. package/source/components/form/context-help.mjs +11 -3
  51. package/source/components/form/field-set.mjs +10 -15
  52. package/source/components/form/form.mjs +12 -4
  53. package/source/components/form/message-state-button.mjs +11 -3
  54. package/source/components/form/popper-button.mjs +11 -3
  55. package/source/components/form/popper.mjs +6 -6
  56. package/source/components/form/reload.mjs +12 -4
  57. package/source/components/form/select.mjs +44 -33
  58. package/source/components/form/shadow-reload.mjs +11 -3
  59. package/source/components/form/state-button.mjs +11 -3
  60. package/source/components/form/stylesheet/action-button.mjs +16 -7
  61. package/source/components/form/stylesheet/api-button.mjs +16 -7
  62. package/source/components/form/stylesheet/button-bar.mjs +16 -7
  63. package/source/components/form/stylesheet/button.mjs +16 -7
  64. package/source/components/form/stylesheet/confirm-button.mjs +16 -7
  65. package/source/components/form/stylesheet/context-error.mjs +16 -7
  66. package/source/components/form/stylesheet/context-help.mjs +16 -7
  67. package/source/components/form/stylesheet/field-set.mjs +16 -7
  68. package/source/components/form/stylesheet/form.mjs +16 -7
  69. package/source/components/form/stylesheet/message-state-button.mjs +16 -7
  70. package/source/components/form/stylesheet/popper-button.mjs +16 -7
  71. package/source/components/form/stylesheet/select.mjs +16 -7
  72. package/source/components/form/stylesheet/state-button.mjs +16 -7
  73. package/source/components/form/stylesheet/toggle-switch.mjs +16 -7
  74. package/source/components/form/stylesheet/tree-select.mjs +16 -7
  75. package/source/components/form/tabs.mjs +12 -8
  76. package/source/components/form/template.mjs +11 -3
  77. package/source/components/form/toggle-switch.mjs +12 -8
  78. package/source/components/form/tree-select.mjs +10 -3
  79. package/source/components/form/types/state.mjs +10 -3
  80. package/source/components/form/util/fetch.mjs +10 -3
  81. package/source/components/form/util/floating-ui.mjs +10 -3
  82. package/source/components/form/util/popper.mjs +10 -3
  83. package/source/components/host/call-button.mjs +10 -1
  84. package/source/components/host/collapse.mjs +4 -6
  85. package/source/components/host/config-manager.mjs +2 -0
  86. package/source/components/host/constants.mjs +2 -0
  87. package/source/components/host/details.mjs +5 -8
  88. package/source/components/host/host.mjs +10 -1
  89. package/source/components/host/overlay.mjs +10 -1
  90. package/source/components/host/stylesheet/call-button.mjs +16 -7
  91. package/source/components/host/stylesheet/config-manager.mjs +16 -7
  92. package/source/components/host/stylesheet/host.mjs +16 -7
  93. package/source/components/host/stylesheet/overlay.mjs +16 -7
  94. package/source/components/host/stylesheet/toggle-button.mjs +16 -7
  95. package/source/components/host/stylesheet/viewer.mjs +16 -7
  96. package/source/components/host/toggle-button.mjs +10 -1
  97. package/source/components/host/util.mjs +14 -0
  98. package/source/components/host/viewer.mjs +10 -1
  99. package/source/components/layout/collapse.mjs +4 -3
  100. package/source/components/layout/details.mjs +2 -0
  101. package/source/components/layout/panel.mjs +179 -169
  102. package/source/components/layout/popper.mjs +324 -320
  103. package/source/components/layout/split-panel.mjs +329 -303
  104. package/source/components/layout/stylesheet/collapse.mjs +16 -7
  105. package/source/components/layout/stylesheet/details.mjs +16 -7
  106. package/source/components/layout/stylesheet/panel.mjs +16 -7
  107. package/source/components/layout/stylesheet/popper.mjs +16 -7
  108. package/source/components/layout/stylesheet/split-panel.mjs +16 -7
  109. package/source/components/layout/stylesheet/tabs.mjs +16 -7
  110. package/source/components/layout/stylesheet/width-toggle.mjs +16 -7
  111. package/source/components/layout/tabs.mjs +39 -24
  112. package/source/components/layout/width-toggle.mjs +148 -138
  113. package/source/components/navigation/style/table-of-content.pcss +20 -5
  114. package/source/components/navigation/stylesheet/table-of-content.mjs +17 -8
  115. package/source/components/navigation/table-of-content.mjs +394 -266
  116. package/source/components/notify/constants.mjs +10 -3
  117. package/source/components/notify/message.mjs +16 -9
  118. package/source/components/notify/notify.mjs +11 -4
  119. package/source/components/notify/stylesheet/message.mjs +16 -7
  120. package/source/components/notify/stylesheet/notify.mjs +16 -7
  121. package/source/components/state/log/entry.mjs +10 -1
  122. package/source/components/state/log.mjs +10 -1
  123. package/source/components/state/state.mjs +10 -1
  124. package/source/components/state/stylesheet/log.mjs +16 -7
  125. package/source/components/state/stylesheet/state.mjs +16 -7
  126. package/source/components/style/mixin/form.pcss +0 -1
  127. package/source/components/stylesheet/badge.mjs +16 -7
  128. package/source/components/stylesheet/border.mjs +16 -7
  129. package/source/components/stylesheet/button.mjs +16 -7
  130. package/source/components/stylesheet/card.mjs +16 -7
  131. package/source/components/stylesheet/color.mjs +16 -7
  132. package/source/components/stylesheet/common.mjs +16 -7
  133. package/source/components/stylesheet/control.mjs +16 -7
  134. package/source/components/stylesheet/data-grid.mjs +16 -7
  135. package/source/components/stylesheet/display.mjs +16 -7
  136. package/source/components/stylesheet/floating-ui.mjs +16 -7
  137. package/source/components/stylesheet/form.mjs +16 -7
  138. package/source/components/stylesheet/host.mjs +16 -7
  139. package/source/components/stylesheet/icons.mjs +16 -7
  140. package/source/components/stylesheet/link.mjs +16 -7
  141. package/source/components/stylesheet/mixin/badge.mjs +16 -7
  142. package/source/components/stylesheet/mixin/button.mjs +16 -7
  143. package/source/components/stylesheet/mixin/form.mjs +16 -7
  144. package/source/components/stylesheet/mixin/hover.mjs +16 -7
  145. package/source/components/stylesheet/mixin/icon.mjs +16 -7
  146. package/source/components/stylesheet/mixin/media.mjs +16 -7
  147. package/source/components/stylesheet/mixin/property.mjs +16 -7
  148. package/source/components/stylesheet/mixin/skeleton.mjs +16 -7
  149. package/source/components/stylesheet/mixin/spinner.mjs +16 -7
  150. package/source/components/stylesheet/mixin/typography.mjs +16 -7
  151. package/source/components/stylesheet/normalize.mjs +16 -7
  152. package/source/components/stylesheet/popper.mjs +16 -7
  153. package/source/components/stylesheet/property.mjs +16 -7
  154. package/source/components/stylesheet/ripple.mjs +16 -7
  155. package/source/components/stylesheet/skeleton.mjs +16 -7
  156. package/source/components/stylesheet/space.mjs +16 -7
  157. package/source/components/stylesheet/spinner.mjs +16 -7
  158. package/source/components/stylesheet/table.mjs +16 -7
  159. package/source/components/stylesheet/theme.mjs +16 -7
  160. package/source/components/stylesheet/tree-menu.mjs +10 -3
  161. package/source/components/stylesheet/typography.mjs +16 -7
  162. package/source/components/tree-menu/stylesheet/tree-menu.mjs +16 -7
  163. package/source/components/tree-menu/tree-menu.mjs +19 -8
  164. package/source/constants.mjs +10 -6
  165. package/source/constraints/abstract.mjs +10 -3
  166. package/source/constraints/abstractoperator.mjs +10 -3
  167. package/source/constraints/andoperator.mjs +10 -3
  168. package/source/constraints/invalid.mjs +10 -3
  169. package/source/constraints/isarray.mjs +10 -3
  170. package/source/constraints/isobject.mjs +10 -3
  171. package/source/constraints/oroperator.mjs +10 -3
  172. package/source/constraints/valid.mjs +10 -3
  173. package/source/data/buildmap.mjs +10 -3
  174. package/source/data/buildtree.mjs +10 -3
  175. package/source/data/datasource/dom.mjs +95 -87
  176. package/source/data/datasource/server/restapi/data-fetch-error.mjs +10 -3
  177. package/source/data/datasource/server/restapi/writeerror.mjs +10 -3
  178. package/source/data/datasource/server/restapi.mjs +10 -3
  179. package/source/data/datasource/server/webconnect.mjs +10 -3
  180. package/source/data/datasource/server.mjs +10 -3
  181. package/source/data/datasource/storage/localstorage.mjs +10 -3
  182. package/source/data/datasource/storage/sessionstorage.mjs +10 -3
  183. package/source/data/datasource/storage.mjs +10 -3
  184. package/source/data/datasource.mjs +10 -3
  185. package/source/data/diff.mjs +10 -3
  186. package/source/data/extend.mjs +10 -3
  187. package/source/data/pathfinder.mjs +10 -3
  188. package/source/data/pipe.mjs +10 -3
  189. package/source/data/transformer.mjs +34 -10
  190. package/source/dom/assembler.mjs +10 -3
  191. package/source/dom/attributes.mjs +10 -3
  192. package/source/dom/constants.mjs +10 -3
  193. package/source/dom/customcontrol.mjs +11 -4
  194. package/source/dom/customelement.mjs +31 -17
  195. package/source/dom/dimension.mjs +10 -3
  196. package/source/dom/events.mjs +10 -3
  197. package/source/dom/focusmanager.mjs +10 -3
  198. package/source/dom/locale.mjs +10 -3
  199. package/source/dom/ready.mjs +2 -1
  200. package/source/dom/resource/data.mjs +133 -123
  201. package/source/dom/resource/link/stylesheet.mjs +10 -3
  202. package/source/dom/resource/link.mjs +10 -3
  203. package/source/dom/resource/script.mjs +10 -3
  204. package/source/dom/resource.mjs +10 -4
  205. package/source/dom/resourcemanager.mjs +10 -3
  206. package/source/dom/slotted.mjs +14 -0
  207. package/source/dom/template.mjs +124 -136
  208. package/source/dom/theme.mjs +10 -3
  209. package/source/dom/updater.mjs +10 -3
  210. package/source/dom/util/extract-keys.mjs +10 -3
  211. package/source/dom/util/init-options-from-attributes.mjs +68 -61
  212. package/source/dom/util/set-option-from-attribute.mjs +10 -3
  213. package/source/dom/util.mjs +11 -4
  214. package/source/dom/worker/factory.mjs +10 -3
  215. package/source/i18n/formatter.mjs +10 -3
  216. package/source/i18n/locale.mjs +10 -3
  217. package/source/i18n/provider.mjs +10 -3
  218. package/source/i18n/providers/embed.mjs +10 -3
  219. package/source/i18n/providers/fetch.mjs +10 -3
  220. package/source/i18n/translations.mjs +10 -3
  221. package/source/logging/handler/console.mjs +10 -3
  222. package/source/logging/handler.mjs +10 -3
  223. package/source/logging/logentry.mjs +10 -3
  224. package/source/logging/logger.mjs +10 -3
  225. package/source/math/random.mjs +10 -3
  226. package/source/monster.mjs +3 -9
  227. package/source/net/webconnect/message.mjs +10 -3
  228. package/source/net/webconnect.mjs +20 -5
  229. package/source/text/bracketed-key-value-hash.mjs +10 -3
  230. package/source/text/formatter.mjs +10 -3
  231. package/source/text/generate-range-comparison-expression.mjs +10 -3
  232. package/source/text/util.mjs +14 -0
  233. package/source/types/base.mjs +10 -3
  234. package/source/types/basewithoptions.mjs +10 -3
  235. package/source/types/binary.mjs +10 -3
  236. package/source/types/dataurl.mjs +10 -3
  237. package/source/types/global.mjs +14 -7
  238. package/source/types/id.mjs +10 -3
  239. package/source/types/internal.mjs +11 -3
  240. package/source/types/is.mjs +10 -3
  241. package/source/types/mediatype.mjs +10 -3
  242. package/source/types/node.mjs +10 -3
  243. package/source/types/nodelist.mjs +10 -3
  244. package/source/types/noderecursiveiterator.mjs +10 -3
  245. package/source/types/observablequeue.mjs +10 -3
  246. package/source/types/observer.mjs +10 -3
  247. package/source/types/observerlist.mjs +10 -3
  248. package/source/types/proxyobserver.mjs +10 -3
  249. package/source/types/queue.mjs +10 -3
  250. package/source/types/randomid.mjs +10 -3
  251. package/source/types/regex.mjs +10 -3
  252. package/source/types/stack.mjs +10 -3
  253. package/source/types/tokenlist.mjs +10 -3
  254. package/source/types/typeof.mjs +10 -3
  255. package/source/types/uniquequeue.mjs +10 -3
  256. package/source/types/uuid.mjs +10 -3
  257. package/source/types/validate.mjs +10 -3
  258. package/source/types/version.mjs +10 -3
  259. package/source/util/clone.mjs +10 -3
  260. package/source/util/comparator.mjs +10 -3
  261. package/source/util/deadmansswitch.mjs +10 -3
  262. package/source/util/freeze.mjs +10 -3
  263. package/source/util/processing.mjs +10 -3
  264. package/source/util/runtime.mjs +10 -7
  265. package/source/util/sleep.mjs +10 -10
  266. package/source/util/trimspaces.mjs +10 -3
  267. package/test/cases/data/datasource/server/websocket.mjs +7 -9
  268. package/test/cases/data/transformer.mjs +47 -15
  269. package/test/cases/dom/customcontrol.mjs +0 -1
  270. package/test/cases/dom/customelement.mjs +1 -3
  271. package/test/cases/dom/template.mjs +3 -1
  272. package/test/util/jsdom.mjs +8 -7
  273. package/test/util/websocket.mjs +5 -1
  274. package/test/web/import.js +2 -1
  275. package/test/web/puppeteer.mjs +111 -0
  276. package/test/web/test.html +2 -2
  277. package/test/web/tests.js +2036 -1189
  278. package/example/components/form/button.mjs +0 -10
  279. package/example/components/form/field-set.mjs +0 -4
  280. package/example/components/form/select.mjs +0 -25
  281. package/example/components/form/toggle-switch.mjs +0 -7
  282. package/example/components/form/tree-select.mjs +0 -27
  283. package/example/components/host/host.mjs +0 -0
  284. package/example/components/notify/message.mjs +0 -4
  285. package/example/components/notify/notify.mjs +0 -4
  286. package/example/components/state/log.mjs +0 -0
  287. package/example/components/state/state.mjs +0 -0
  288. package/example/constraints/andoperator.mjs +0 -17
  289. package/example/constraints/invalid.mjs +0 -6
  290. package/example/constraints/isarray.mjs +0 -11
  291. package/example/constraints/isobject.mjs +0 -12
  292. package/example/constraints/oroperator.mjs +0 -15
  293. package/example/constraints/valid.mjs +0 -6
  294. package/example/data/buildmap.mjs +0 -67
  295. package/example/data/datasource/server/restapi.mjs +0 -20
  296. package/example/data/datasource/server/webconnect.mjs +0 -9
  297. package/example/data/datasource.mjs +0 -7
  298. package/example/data/diff.mjs +0 -39
  299. package/example/data/pathfinder-1.mjs +0 -23
  300. package/example/data/pathfinder-2.mjs +0 -19
  301. package/example/data/pipe.mjs +0 -14
  302. package/example/data/transformer.mjs +0 -9
  303. package/example/dom/customelement.mjs +0 -14
  304. package/example/dom/theme.mjs +0 -5
  305. package/example/dom/updater.mjs +0 -23
  306. package/example/i18n/formatter.mjs +0 -10
  307. package/example/i18n/providers/embed.mjs +0 -5
  308. package/example/i18n/providers/fetch.mjs +0 -5
  309. package/example/i18n/translations.mjs +0 -20
  310. package/example/net/webconnect.mjs +0 -16
  311. package/example/types/basewithoptions.mjs +0 -10
  312. package/example/types/is-1.mjs +0 -5
  313. package/example/types/is-10.mjs +0 -6
  314. package/example/types/is-2.mjs +0 -4
  315. package/example/types/is-3.mjs +0 -4
  316. package/example/types/is-4.mjs +0 -5
  317. package/example/types/is-5.mjs +0 -4
  318. package/example/types/is-6.mjs +0 -4
  319. package/example/types/is-7.mjs +0 -4
  320. package/example/types/is-8.mjs +0 -4
  321. package/example/types/is-9.mjs +0 -6
  322. package/example/types/noderecursiveiterator.mjs +0 -32
  323. package/example/types/observer.mjs +0 -9
  324. package/example/types/proxyobserver.mjs +0 -25
  325. package/example/types/queue.mjs +0 -20
  326. package/example/types/tokenlist-1.mjs +0 -4
  327. package/example/types/tokenlist-2.mjs +0 -7
  328. package/example/types/tokenlist-3.mjs +0 -5
  329. package/example/types/tokenlist-4.mjs +0 -5
  330. package/example/types/tokenlist-5.mjs +0 -5
  331. package/example/types/typeof.mjs +0 -9
  332. package/example/types/version-1.mjs +0 -6
  333. package/example/types/version-2.mjs +0 -3
  334. package/example/util/comparator.mjs +0 -10
  335. package/example/util/deadmansswitch.mjs +0 -9
  336. package/example/util/processing.mjs +0 -17
  337. package/source/components/datatable/datasource/namespace.mjs +0 -13
  338. package/source/components/datatable/datatable/namespace.mjs +0 -13
  339. package/source/components/datatable/events.mjs +0 -24
  340. package/source/components/datatable/filter/namespace.mjs +0 -13
  341. package/source/components/datatable/namespace.mjs +0 -11
  342. package/source/components/datatable/stylesheet/namespace.mjs +0 -13
  343. package/source/components/events.mjs +0 -17
  344. package/source/components/form/events.mjs +0 -108
  345. package/source/components/form/namespace.mjs +0 -13
  346. package/source/components/form/stylesheet/namespace.mjs +0 -13
  347. package/source/components/form/types/namespace.mjs +0 -13
  348. package/source/components/form/util/namespace.mjs +0 -13
  349. package/source/components/host/events.mjs +0 -131
  350. package/source/components/host/namespace.mjs +0 -13
  351. package/source/components/host/stylesheet/namespace.mjs +0 -13
  352. package/source/components/layout/events.mjs +0 -30
  353. package/source/components/layout/namespace.mjs +0 -13
  354. package/source/components/namespace.mjs +0 -14
  355. package/source/components/notify/events.mjs +0 -15
  356. package/source/components/notify/namespace.mjs +0 -15
  357. package/source/components/notify/stylesheet/namespace.mjs +0 -15
  358. package/source/components/state/log/namespace.mjs +0 -13
  359. package/source/components/state/namespace.mjs +0 -13
  360. package/source/components/stylesheet/namespace.mjs +0 -13
  361. package/source/components/tree-menu/namespace.mjs +0 -13
  362. package/source/components/tree-menu/stylesheet/namespace.mjs +0 -13
  363. package/source/constraints/namespace.mjs +0 -13
  364. package/source/data/datasource/namespace.mjs +0 -13
  365. package/source/data/datasource/server/namespace.mjs +0 -13
  366. package/source/data/datasource/server/restapi/namespace.mjs +0 -13
  367. package/source/data/datasource/storage/namespace.mjs +0 -13
  368. package/source/data/namespace.mjs +0 -13
  369. package/source/dom/namespace.mjs +0 -13
  370. package/source/dom/resource/link/namespace.mjs +0 -13
  371. package/source/dom/resource/namespace.mjs +0 -13
  372. package/source/dom/util/namespace.mjs +0 -13
  373. package/source/dom/worker/namespace.mjs +0 -13
  374. package/source/i18n/namespace.mjs +0 -13
  375. package/source/i18n/providers/namespace.mjs +0 -13
  376. package/source/logging/handler/namespace.mjs +0 -11
  377. package/source/logging/namespace.mjs +0 -13
  378. package/source/math/namespace.mjs +0 -13
  379. package/source/net/namespace.mjs +0 -13
  380. package/source/net/webconnect/namespace.mjs +0 -13
  381. package/source/text/namespace.mjs +0 -13
  382. package/source/types/namespace.mjs +0 -13
  383. package/source/util/namespace.mjs +0 -13
@@ -1,5 +1,14 @@
1
1
  /**
2
- * Copyright 2023 schukai GmbH
2
+ * Copyright © schukai GmbH and all contributing authors, {{copyRightYear}}. All rights reserved.
3
+ * Node module: @schukai/monster
4
+ *
5
+ * This source code is licensed under the GNU Affero General Public License version 3 (AGPLv3).
6
+ * The full text of the license can be found at: https://www.gnu.org/licenses/agpl-3.0.en.html
7
+ *
8
+ * For those who do not wish to adhere to the AGPLv3, a commercial license is available.
9
+ * Acquiring a commercial license allows you to use this software without complying with the AGPLv3 terms.
10
+ * For more information about purchasing a commercial license, please contact schukai GmbH.
11
+ *
3
12
  * SPDX-License-Identifier: AGPL-3.0
4
13
  */
5
14
 
@@ -1,3 +1,17 @@
1
+ /**
2
+ * Copyright © schukai GmbH and all contributing authors, {{copyRightYear}}. All rights reserved.
3
+ * Node module: @schukai/monster
4
+ *
5
+ * This source code is licensed under the GNU Affero General Public License version 3 (AGPLv3).
6
+ * The full text of the license can be found at: https://www.gnu.org/licenses/agpl-3.0.en.html
7
+ *
8
+ * For those who do not wish to adhere to the AGPLv3, a commercial license is available.
9
+ * Acquiring a commercial license allows you to use this software without complying with the AGPLv3 terms.
10
+ * For more information about purchasing a commercial license, please contact schukai GmbH.
11
+ *
12
+ * SPDX-License-Identifier: AGPL-3.0
13
+ */
14
+
1
15
  import { getWindow } from "../../dom/util.mjs";
2
16
 
3
17
  export { generateUniqueConfigKey };
@@ -1,5 +1,14 @@
1
1
  /**
2
- * Copyright 2023 schukai GmbH
2
+ * Copyright © schukai GmbH and all contributing authors, {{copyRightYear}}. All rights reserved.
3
+ * Node module: @schukai/monster
4
+ *
5
+ * This source code is licensed under the GNU Affero General Public License version 3 (AGPLv3).
6
+ * The full text of the license can be found at: https://www.gnu.org/licenses/agpl-3.0.en.html
7
+ *
8
+ * For those who do not wish to adhere to the AGPLv3, a commercial license is available.
9
+ * Acquiring a commercial license allows you to use this software without complying with the AGPLv3 terms.
10
+ * For more information about purchasing a commercial license, please contact schukai GmbH.
11
+ *
3
12
  * SPDX-License-Identifier: AGPL-3.0
4
13
  */
5
14
 
@@ -8,6 +8,8 @@
8
8
  * For those who do not wish to adhere to the AGPLv3, a commercial license is available.
9
9
  * Acquiring a commercial license allows you to use this software without complying with the AGPLv3 terms.
10
10
  * For more information about purchasing a commercial license, please contact schukai GmbH.
11
+ *
12
+ * SPDX-License-Identifier: AGPL-3.0
11
13
  */
12
14
 
13
15
  import {
@@ -78,7 +80,7 @@ const detailsDecoElementSymbol = Symbol("detailsDecoElement");
78
80
  const nameSymbol = Symbol("name");
79
81
 
80
82
  /**
81
- * The Collapse component is used to show a details.
83
+ * The Collapse component is used to show the details.
82
84
  *
83
85
  * <img src="./images/collapse.png">
84
86
  *
@@ -183,11 +185,10 @@ class Collapse extends CustomElement {
183
185
  initStateFromHostConfig.call(this);
184
186
  initResizeObserver.call(this);
185
187
  initEventHandler.call(this);
186
-
188
+
187
189
  if (this.getOption("openByDefault")) {
188
190
  this.open();
189
191
  }
190
-
191
192
  }
192
193
 
193
194
  /**
@@ -8,6 +8,8 @@
8
8
  * For those who do not wish to adhere to the AGPLv3, a commercial license is available.
9
9
  * Acquiring a commercial license allows you to use this software without complying with the AGPLv3 terms.
10
10
  * For more information about purchasing a commercial license, please contact schukai GmbH.
11
+ *
12
+ * SPDX-License-Identifier: AGPL-3.0
11
13
  */
12
14
 
13
15
  import {
@@ -1,19 +1,28 @@
1
1
  /**
2
- * Copyright 2023 schukai GmbH
2
+ * Copyright © schukai GmbH and all contributing authors, {{copyRightYear}}. All rights reserved.
3
+ * Node module: @schukai/monster
4
+ *
5
+ * This source code is licensed under the GNU Affero General Public License version 3 (AGPLv3).
6
+ * The full text of the license can be found at: https://www.gnu.org/licenses/agpl-3.0.en.html
7
+ *
8
+ * For those who do not wish to adhere to the AGPLv3, a commercial license is available.
9
+ * Acquiring a commercial license allows you to use this software without complying with the AGPLv3 terms.
10
+ * For more information about purchasing a commercial license, please contact schukai GmbH.
11
+ *
3
12
  * SPDX-License-Identifier: AGPL-3.0
4
13
  */
5
14
 
6
15
  import {
7
- assembleMethodSymbol,
8
- CustomElement,
9
- registerCustomElement,
16
+ assembleMethodSymbol,
17
+ CustomElement,
18
+ registerCustomElement,
10
19
  } from "../../dom/customelement.mjs";
11
- import {DeadMansSwitch} from "../../util/deadmansswitch.mjs";
20
+ import { DeadMansSwitch } from "../../util/deadmansswitch.mjs";
12
21
 
13
- import {PanelStyleSheet} from "./stylesheet/panel.mjs";
14
- import {instanceSymbol} from "../../constants.mjs";
22
+ import { PanelStyleSheet } from "./stylesheet/panel.mjs";
23
+ import { instanceSymbol } from "../../constants.mjs";
15
24
 
16
- export {Panel};
25
+ export { Panel };
17
26
 
18
27
  /**
19
28
  * @private
@@ -66,178 +75,179 @@ const timerCallbackSymbol = Symbol("timerCallback");
66
75
  * @summary A simple panel component
67
76
  */
68
77
  class Panel extends CustomElement {
69
-
70
- /**
71
- * This method is called by the `instanceof` operator.
72
- * @returns {symbol}
73
- */
74
- static get [instanceSymbol]() {
75
- return Symbol.for("@schukai/monster/components/layout/panel");
76
- }
77
-
78
- /**
79
- * To set the options via the html tag the attribute `data-monster-options` must be used.
80
- * @see {@link https://monsterjs.org/en/doc/#configurate-a-monster-control}
81
- *
82
- * The individual configuration values can be found in the table.
83
- *
84
- * @property {Object} templates Template definitions
85
- * @property {string} templates.main Main template
86
- * @property {string} heightAdjustment Height adjustment
87
- */
88
- get defaults() {
89
- return Object.assign({}, super.defaults, {
90
- templates: {
91
- main: getTemplate(),
92
- },
93
- heightAdjustment: 4,
94
- });
95
- }
96
-
97
- /**
98
- *
99
- * @returns {Monster.Components.Host.Viewer}
100
- */
101
- [assembleMethodSymbol]() {
102
- super[assembleMethodSymbol]();
103
-
104
- initControlReferences.call(this);
105
- initEventHandler.call(this);
106
-
107
- calcHeight.call(this);
108
-
109
- }
110
-
111
- /**
112
- * This method is called by the dom and should not be called directly.
113
- *
114
- * @return {void}
115
- */
116
- connectedCallback() {
117
- super.connectedCallback();
118
- attachResizeObserver.call(this);
119
-
120
- // disable scrolling in parent node
121
- if (this.parentNode && this.parentNode instanceof HTMLElement) {
122
- this.parentNode.style.overflow = "hidden";
123
- }
124
-
125
- }
126
-
127
- /**
128
- * This method is called by the dom and should not be called directly.
129
- *
130
- * @return {void}
131
- */
132
- disconnectedCallback() {
133
- super.disconnectedCallback();
134
- disconnectResizeObserver.call(this);
135
- }
136
-
137
- /**
138
- * @return {string}
139
- */
140
- static getTag() {
141
- return "monster-panel";
142
- }
143
-
144
- /**
145
- * @return {CSSStyleSheet[]}
146
- */
147
- static getCSSStyleSheet() {
148
- return [PanelStyleSheet];
149
- }
78
+ /**
79
+ * This method is called by the `instanceof` operator.
80
+ * @returns {symbol}
81
+ */
82
+ static get [instanceSymbol]() {
83
+ return Symbol.for("@schukai/monster/components/layout/panel");
84
+ }
85
+
86
+ /**
87
+ * To set the options via the html tag the attribute `data-monster-options` must be used.
88
+ * @see {@link https://monsterjs.org/en/doc/#configurate-a-monster-control}
89
+ *
90
+ * The individual configuration values can be found in the table.
91
+ *
92
+ * @property {Object} templates Template definitions
93
+ * @property {string} templates.main Main template
94
+ * @property {string} heightAdjustment Height adjustment
95
+ */
96
+ get defaults() {
97
+ return Object.assign({}, super.defaults, {
98
+ templates: {
99
+ main: getTemplate(),
100
+ },
101
+ heightAdjustment: 4,
102
+ });
103
+ }
104
+
105
+ /**
106
+ *
107
+ * @returns {Monster.Components.Host.Viewer}
108
+ */
109
+ [assembleMethodSymbol]() {
110
+ super[assembleMethodSymbol]();
111
+
112
+ initControlReferences.call(this);
113
+ initEventHandler.call(this);
114
+
115
+ calcHeight.call(this);
116
+ }
117
+
118
+ /**
119
+ * This method is called by the dom and should not be called directly.
120
+ *
121
+ * @return {void}
122
+ */
123
+ connectedCallback() {
124
+ super.connectedCallback();
125
+ attachResizeObserver.call(this);
126
+
127
+ // disable scrolling in parent node
128
+ if (this.parentNode && this.parentNode instanceof HTMLElement) {
129
+ this.parentNode.style.overflow = "hidden";
130
+ }
131
+ }
132
+
133
+ /**
134
+ * This method is called by the dom and should not be called directly.
135
+ *
136
+ * @return {void}
137
+ */
138
+ disconnectedCallback() {
139
+ super.disconnectedCallback();
140
+ disconnectResizeObserver.call(this);
141
+ }
142
+
143
+ /**
144
+ * @return {string}
145
+ */
146
+ static getTag() {
147
+ return "monster-panel";
148
+ }
149
+
150
+ /**
151
+ * @return {CSSStyleSheet[]}
152
+ */
153
+ static getCSSStyleSheet() {
154
+ return [PanelStyleSheet];
155
+ }
150
156
  }
151
157
 
152
158
  /**
153
159
  * @private
154
160
  */
155
161
  function calcHeight() {
162
+ this.style.boxSizing = "border-box";
156
163
 
157
- this.style.boxSizing = "border-box";
158
-
159
- const height = calculateMaximumHeight.call(this, this);
160
- if (height < 0) {
161
- return;
162
- }
163
-
164
- this.style.height = `${height}px`;
164
+ const height = calculateMaximumHeight.call(this, this);
165
+ if (height < 0) {
166
+ return;
167
+ }
165
168
 
169
+ this.style.height = `${height}px`;
166
170
  }
167
171
 
168
172
  function calculateMaximumHeight(element) {
169
- let totalBottomBorder = 0;
170
- let totalBottomPadding = 0;
171
- let totalBottomMargin = 0;
172
- let totalOutlineHeight = 0;
173
- let totalBoxShadowHeight = 0;
174
- let currentElement = element;
175
-
176
- // Get the distance from the top of the element to the top of the viewport
177
- const distanceFromTop = element.getBoundingClientRect().top;
178
-
179
- // Loop through the elements up to the body to sum up the bottom borders, padding, and margin
180
- while (currentElement && currentElement !== document.body) {
181
- const style = window.getComputedStyle(currentElement);
182
-
183
- // Box sizing
184
- const boxSizing = style.boxSizing;
185
-
186
- // Borders, padding, and margin
187
- const borderBottomWidth = parseFloat(style.borderBottomWidth);
188
- const paddingBottom = parseFloat(style.paddingBottom);
189
- const marginBottom = parseFloat(style.marginBottom);
190
-
191
- // Outline and box-shadow
192
- const outlineHeight = parseFloat(style.outlineWidth);
193
- // This is a simplification; box-shadow is more complex to parse
194
- const boxShadowVertical = parseFloat(style.boxShadow.split(' ')[3] || 0);
195
-
196
- // Accumulate values
197
- totalBottomBorder += isNaN(borderBottomWidth) ? 0 : borderBottomWidth;
198
- totalBottomPadding += (isNaN(paddingBottom) || boxSizing === 'border-box') ? 0 : paddingBottom;
199
- totalBottomMargin += isNaN(marginBottom) ? 0 : marginBottom;
200
- totalOutlineHeight += isNaN(outlineHeight) ? 0 : outlineHeight;
201
- totalBoxShadowHeight += isNaN(boxShadowVertical) ? 0 : boxShadowVertical;
202
-
203
- currentElement = currentElement.parentNode || currentElement.host;
204
- }
205
-
206
- // Calculate the maximum height by subtracting the distance, borders, padding, margin, outline, and box-shadow from the window's inner height
207
- const maximumHeight = window.innerHeight - distanceFromTop - totalBottomBorder - totalBottomPadding - totalBottomMargin - totalOutlineHeight - totalBoxShadowHeight;
208
- return maximumHeight + this.getOption("heightAdjustment");
173
+ let totalBottomBorder = 0;
174
+ let totalBottomPadding = 0;
175
+ let totalBottomMargin = 0;
176
+ let totalOutlineHeight = 0;
177
+ let totalBoxShadowHeight = 0;
178
+ let currentElement = element;
179
+
180
+ // Get the distance from the top of the element to the top of the viewport
181
+ const distanceFromTop = element.getBoundingClientRect().top;
182
+
183
+ // Loop through the elements up to the body to sum up the bottom borders, padding, and margin
184
+ while (currentElement && currentElement !== document.body) {
185
+ const style = window.getComputedStyle(currentElement);
186
+
187
+ // Box sizing
188
+ const boxSizing = style.boxSizing;
189
+
190
+ // Borders, padding, and margin
191
+ const borderBottomWidth = parseFloat(style.borderBottomWidth);
192
+ const paddingBottom = parseFloat(style.paddingBottom);
193
+ const marginBottom = parseFloat(style.marginBottom);
194
+
195
+ // Outline and box-shadow
196
+ const outlineHeight = parseFloat(style.outlineWidth);
197
+ // This is a simplification; box-shadow is more complex to parse
198
+ const boxShadowVertical = parseFloat(style.boxShadow.split(" ")[3] || 0);
199
+
200
+ // Accumulate values
201
+ totalBottomBorder += isNaN(borderBottomWidth) ? 0 : borderBottomWidth;
202
+ totalBottomPadding +=
203
+ isNaN(paddingBottom) || boxSizing === "border-box" ? 0 : paddingBottom;
204
+ totalBottomMargin += isNaN(marginBottom) ? 0 : marginBottom;
205
+ totalOutlineHeight += isNaN(outlineHeight) ? 0 : outlineHeight;
206
+ totalBoxShadowHeight += isNaN(boxShadowVertical) ? 0 : boxShadowVertical;
207
+
208
+ currentElement = currentElement.parentNode || currentElement.host;
209
+ }
210
+
211
+ // Calculate the maximum height by subtracting the distance, borders, padding, margin, outline, and box-shadow from the window's inner height
212
+ const maximumHeight =
213
+ window.innerHeight -
214
+ distanceFromTop -
215
+ totalBottomBorder -
216
+ totalBottomPadding -
217
+ totalBottomMargin -
218
+ totalOutlineHeight -
219
+ totalBoxShadowHeight;
220
+ return maximumHeight + this.getOption("heightAdjustment");
209
221
  }
210
222
 
211
-
212
223
  /**
213
224
  * @private
214
225
  */
215
226
  function attachResizeObserver() {
216
- // against flickering
217
- this[resizeObserverSymbol] = new ResizeObserver(() => {
218
- if (this[timerCallbackSymbol] instanceof DeadMansSwitch) {
219
- try {
220
- this[timerCallbackSymbol].touch();
221
- return;
222
- } catch (e) {
223
- delete this[timerCallbackSymbol];
224
- }
225
- }
226
-
227
- this[timerCallbackSymbol] = new DeadMansSwitch(200, () => {
228
- calcHeight.call(this);
229
- });
230
- });
231
-
232
- this[resizeObserverSymbol].observe(this.ownerDocument.body);
233
- this[resizeObserverSymbol].observe(document.scrollingElement);
234
-
227
+ // against flickering
228
+ this[resizeObserverSymbol] = new ResizeObserver(() => {
229
+ if (this[timerCallbackSymbol] instanceof DeadMansSwitch) {
230
+ try {
231
+ this[timerCallbackSymbol].touch();
232
+ return;
233
+ } catch (e) {
234
+ delete this[timerCallbackSymbol];
235
+ }
236
+ }
237
+
238
+ this[timerCallbackSymbol] = new DeadMansSwitch(200, () => {
239
+ calcHeight.call(this);
240
+ });
241
+ });
242
+
243
+ this[resizeObserverSymbol].observe(this.ownerDocument.body);
244
+ this[resizeObserverSymbol].observe(document.scrollingElement);
235
245
  }
236
246
 
237
247
  function disconnectResizeObserver() {
238
- if (this[resizeObserverSymbol] instanceof ResizeObserver) {
239
- this[resizeObserverSymbol].disconnect();
240
- }
248
+ if (this[resizeObserverSymbol] instanceof ResizeObserver) {
249
+ this[resizeObserverSymbol].disconnect();
250
+ }
241
251
  }
242
252
 
243
253
  /**
@@ -246,20 +256,20 @@ function disconnectResizeObserver() {
246
256
  * @throws {Error} no shadow-root is defined
247
257
  */
248
258
  function initControlReferences() {
249
- if (!this.shadowRoot) {
250
- throw new Error("no shadow-root is defined");
251
- }
252
-
253
- this[PanelElementSymbol] = this.shadowRoot.querySelector("[data-monster-role=control]");
254
-
259
+ if (!this.shadowRoot) {
260
+ throw new Error("no shadow-root is defined");
261
+ }
255
262
 
263
+ this[PanelElementSymbol] = this.shadowRoot.querySelector(
264
+ "[data-monster-role=control]",
265
+ );
256
266
  }
257
267
 
258
268
  /**
259
269
  * @private
260
270
  */
261
271
  function initEventHandler() {
262
- return this;
272
+ return this;
263
273
  }
264
274
 
265
275
  /**
@@ -267,8 +277,8 @@ function initEventHandler() {
267
277
  * @return {string}
268
278
  */
269
279
  function getTemplate() {
270
- // language=HTML
271
- return `
280
+ // language=HTML
281
+ return `
272
282
  <div data-monster-role="control" part="control">
273
283
  <slot></slot>
274
284
  </div>`;