@schukai/monster 3.64.1 → 3.65.20

Sign up to get free protection for your applications and to get access to all the features.
Files changed (395) hide show
  1. package/CHANGELOG.md +92 -318
  2. package/README.md +44 -40
  3. package/package.json +1 -47
  4. package/source/components/constants.mjs +10 -3
  5. package/source/components/datatable/change-button.mjs +12 -5
  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 +10 -1
  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 +12 -3
  13. package/source/components/datatable/datatable.mjs +757 -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 +11 -3
  24. package/source/components/datatable/pagination.mjs +14 -5
  25. package/source/components/datatable/save-button.mjs +279 -270
  26. package/source/components/datatable/status.mjs +10 -1
  27. package/source/components/datatable/style/dataset.pcss +1 -0
  28. package/source/components/datatable/style/datatable.pcss +1 -0
  29. package/source/components/datatable/stylesheet/change-button.mjs +16 -7
  30. package/source/components/datatable/stylesheet/column-bar.mjs +16 -7
  31. package/source/components/datatable/stylesheet/dataset.mjs +17 -8
  32. package/source/components/datatable/stylesheet/datasource.mjs +16 -7
  33. package/source/components/datatable/stylesheet/datatable.mjs +17 -8
  34. package/source/components/datatable/stylesheet/embedded-pagination.mjs +16 -7
  35. package/source/components/datatable/stylesheet/filter-button.mjs +16 -7
  36. package/source/components/datatable/stylesheet/filter-controls-defaults.mjs +16 -7
  37. package/source/components/datatable/stylesheet/filter-date-range.mjs +16 -7
  38. package/source/components/datatable/stylesheet/filter-range.mjs +16 -7
  39. package/source/components/datatable/stylesheet/filter.mjs +16 -7
  40. package/source/components/datatable/stylesheet/pagination.mjs +16 -7
  41. package/source/components/datatable/stylesheet/save-button.mjs +16 -7
  42. package/source/components/datatable/stylesheet/select-filter.mjs +16 -7
  43. package/source/components/datatable/stylesheet/status.mjs +16 -7
  44. package/source/components/datatable/util.mjs +16 -8
  45. package/source/components/form/action-button.mjs +11 -3
  46. package/source/components/form/api-button.mjs +11 -3
  47. package/source/components/form/button-bar.mjs +11 -3
  48. package/source/components/form/button.mjs +37 -50
  49. package/source/components/form/confirm-button.mjs +11 -3
  50. package/source/components/form/constants.mjs +10 -3
  51. package/source/components/form/context-error.mjs +69 -52
  52. package/source/components/form/context-help.mjs +11 -3
  53. package/source/components/form/field-set.mjs +295 -0
  54. package/source/components/form/form.mjs +12 -4
  55. package/source/components/form/message-state-button.mjs +11 -3
  56. package/source/components/form/popper-button.mjs +11 -3
  57. package/source/components/form/popper.mjs +13 -480
  58. package/source/components/form/reload.mjs +12 -4
  59. package/source/components/form/select.mjs +44 -33
  60. package/source/components/form/shadow-reload.mjs +11 -3
  61. package/source/components/form/state-button.mjs +11 -3
  62. package/source/components/form/style/field-set.pcss +13 -0
  63. package/source/components/form/stylesheet/action-button.mjs +16 -7
  64. package/source/components/form/stylesheet/api-button.mjs +16 -7
  65. package/source/components/form/stylesheet/button-bar.mjs +17 -8
  66. package/source/components/form/stylesheet/button.mjs +16 -7
  67. package/source/components/form/stylesheet/confirm-button.mjs +17 -8
  68. package/source/components/form/stylesheet/context-error.mjs +16 -7
  69. package/source/components/form/stylesheet/context-help.mjs +16 -7
  70. package/source/components/form/stylesheet/field-set.mjs +40 -0
  71. package/source/components/form/stylesheet/form.mjs +17 -8
  72. package/source/components/form/stylesheet/message-state-button.mjs +16 -7
  73. package/source/components/form/stylesheet/popper-button.mjs +16 -7
  74. package/source/components/form/stylesheet/select.mjs +16 -7
  75. package/source/components/form/stylesheet/state-button.mjs +16 -7
  76. package/source/components/form/stylesheet/toggle-switch.mjs +16 -7
  77. package/source/components/form/stylesheet/tree-select.mjs +16 -7
  78. package/source/components/form/tabs.mjs +12 -8
  79. package/source/components/form/template.mjs +11 -3
  80. package/source/components/form/toggle-switch.mjs +12 -8
  81. package/source/components/form/tree-select.mjs +10 -3
  82. package/source/components/form/types/state.mjs +10 -3
  83. package/source/components/form/util/fetch.mjs +10 -3
  84. package/source/components/form/util/floating-ui.mjs +10 -3
  85. package/source/components/form/util/popper.mjs +10 -3
  86. package/source/components/host/call-button.mjs +10 -1
  87. package/source/components/host/collapse.mjs +15 -519
  88. package/source/components/host/config-manager.mjs +10 -1
  89. package/source/components/host/constants.mjs +11 -4
  90. package/source/components/host/details.mjs +14 -256
  91. package/source/components/host/host.mjs +10 -1
  92. package/source/components/host/overlay.mjs +10 -1
  93. package/source/components/host/stylesheet/call-button.mjs +16 -7
  94. package/source/components/host/stylesheet/config-manager.mjs +16 -7
  95. package/source/components/host/stylesheet/host.mjs +17 -8
  96. package/source/components/host/stylesheet/overlay.mjs +17 -8
  97. package/source/components/host/stylesheet/toggle-button.mjs +16 -7
  98. package/source/components/host/stylesheet/viewer.mjs +16 -7
  99. package/source/components/host/toggle-button.mjs +10 -1
  100. package/source/components/host/util.mjs +14 -0
  101. package/source/components/host/viewer.mjs +10 -1
  102. package/source/components/layout/collapse.mjs +543 -0
  103. package/source/components/layout/details.mjs +273 -0
  104. package/source/components/layout/panel.mjs +179 -169
  105. package/source/components/layout/popper.mjs +480 -0
  106. package/source/components/layout/split-panel.mjs +329 -303
  107. package/source/components/{host → layout}/stylesheet/collapse.mjs +16 -7
  108. package/source/components/{host → layout}/stylesheet/details.mjs +16 -7
  109. package/source/components/layout/stylesheet/panel.mjs +16 -7
  110. package/source/components/{form → layout}/stylesheet/popper.mjs +16 -7
  111. package/source/components/layout/stylesheet/split-panel.mjs +16 -7
  112. package/source/components/layout/stylesheet/tabs.mjs +16 -7
  113. package/source/components/layout/stylesheet/width-toggle.mjs +16 -7
  114. package/source/components/layout/tabs.mjs +38 -23
  115. package/source/components/layout/width-toggle.mjs +150 -140
  116. package/source/components/navigation/style/table-of-content.pcss +99 -0
  117. package/source/components/navigation/stylesheet/table-of-content.mjs +40 -0
  118. package/source/components/navigation/table-of-content.mjs +546 -0
  119. package/source/components/notify/constants.mjs +10 -3
  120. package/source/components/notify/message.mjs +16 -9
  121. package/source/components/notify/notify.mjs +11 -4
  122. package/source/components/notify/stylesheet/message.mjs +16 -7
  123. package/source/components/notify/stylesheet/notify.mjs +16 -7
  124. package/source/components/state/log/entry.mjs +10 -1
  125. package/source/components/state/log.mjs +10 -1
  126. package/source/components/state/state.mjs +10 -1
  127. package/source/components/state/stylesheet/log.mjs +16 -7
  128. package/source/components/state/stylesheet/state.mjs +17 -8
  129. package/source/components/style/link.pcss +0 -1
  130. package/source/components/style/mixin/form.pcss +0 -1
  131. package/source/components/style/mixin/typography.pcss +7 -7
  132. package/source/components/style/typography.pcss +1 -1
  133. package/source/components/stylesheet/badge.mjs +16 -7
  134. package/source/components/stylesheet/border.mjs +16 -7
  135. package/source/components/stylesheet/button.mjs +16 -7
  136. package/source/components/stylesheet/card.mjs +16 -7
  137. package/source/components/stylesheet/color.mjs +16 -7
  138. package/source/components/stylesheet/common.mjs +16 -7
  139. package/source/components/stylesheet/control.mjs +16 -7
  140. package/source/components/stylesheet/data-grid.mjs +16 -7
  141. package/source/components/stylesheet/display.mjs +16 -7
  142. package/source/components/stylesheet/floating-ui.mjs +16 -7
  143. package/source/components/stylesheet/form.mjs +16 -7
  144. package/source/components/stylesheet/host.mjs +16 -7
  145. package/source/components/stylesheet/icons.mjs +16 -7
  146. package/source/components/stylesheet/link.mjs +16 -7
  147. package/source/components/stylesheet/mixin/badge.mjs +16 -7
  148. package/source/components/stylesheet/mixin/button.mjs +16 -7
  149. package/source/components/stylesheet/mixin/form.mjs +16 -7
  150. package/source/components/stylesheet/mixin/hover.mjs +16 -7
  151. package/source/components/stylesheet/mixin/icon.mjs +16 -7
  152. package/source/components/stylesheet/mixin/media.mjs +16 -7
  153. package/source/components/stylesheet/mixin/property.mjs +16 -7
  154. package/source/components/stylesheet/mixin/skeleton.mjs +16 -7
  155. package/source/components/stylesheet/mixin/spinner.mjs +16 -7
  156. package/source/components/stylesheet/mixin/typography.mjs +16 -7
  157. package/source/components/stylesheet/normalize.mjs +16 -7
  158. package/source/components/stylesheet/popper.mjs +16 -7
  159. package/source/components/stylesheet/property.mjs +16 -7
  160. package/source/components/stylesheet/ripple.mjs +16 -7
  161. package/source/components/stylesheet/skeleton.mjs +16 -7
  162. package/source/components/stylesheet/space.mjs +16 -7
  163. package/source/components/stylesheet/spinner.mjs +16 -7
  164. package/source/components/stylesheet/table.mjs +16 -7
  165. package/source/components/stylesheet/theme.mjs +16 -7
  166. package/source/components/stylesheet/tree-menu.mjs +10 -3
  167. package/source/components/stylesheet/typography.mjs +17 -8
  168. package/source/components/tree-menu/stylesheet/tree-menu.mjs +16 -7
  169. package/source/components/tree-menu/tree-menu.mjs +19 -8
  170. package/source/constants.mjs +10 -6
  171. package/source/constraints/abstract.mjs +10 -3
  172. package/source/constraints/abstractoperator.mjs +10 -3
  173. package/source/constraints/andoperator.mjs +10 -3
  174. package/source/constraints/invalid.mjs +10 -3
  175. package/source/constraints/isarray.mjs +10 -3
  176. package/source/constraints/isobject.mjs +10 -3
  177. package/source/constraints/oroperator.mjs +10 -3
  178. package/source/constraints/valid.mjs +10 -3
  179. package/source/data/buildmap.mjs +10 -3
  180. package/source/data/buildtree.mjs +10 -3
  181. package/source/data/datasource/dom.mjs +10 -3
  182. package/source/data/datasource/server/restapi/data-fetch-error.mjs +10 -3
  183. package/source/data/datasource/server/restapi/writeerror.mjs +10 -3
  184. package/source/data/datasource/server/restapi.mjs +10 -3
  185. package/source/data/datasource/server/webconnect.mjs +10 -3
  186. package/source/data/datasource/server.mjs +10 -3
  187. package/source/data/datasource/storage/localstorage.mjs +10 -3
  188. package/source/data/datasource/storage/sessionstorage.mjs +10 -3
  189. package/source/data/datasource/storage.mjs +10 -3
  190. package/source/data/datasource.mjs +10 -3
  191. package/source/data/diff.mjs +10 -3
  192. package/source/data/extend.mjs +10 -3
  193. package/source/data/pathfinder.mjs +10 -3
  194. package/source/data/pipe.mjs +10 -3
  195. package/source/data/transformer.mjs +34 -10
  196. package/source/dom/assembler.mjs +10 -3
  197. package/source/dom/attributes.mjs +10 -3
  198. package/source/dom/constants.mjs +10 -3
  199. package/source/dom/customcontrol.mjs +11 -4
  200. package/source/dom/customelement.mjs +31 -17
  201. package/source/dom/dimension.mjs +10 -3
  202. package/source/dom/events.mjs +10 -3
  203. package/source/dom/focusmanager.mjs +10 -3
  204. package/source/dom/locale.mjs +10 -3
  205. package/source/dom/ready.mjs +11 -4
  206. package/source/dom/resource/data.mjs +10 -3
  207. package/source/dom/resource/link/stylesheet.mjs +10 -3
  208. package/source/dom/resource/link.mjs +10 -3
  209. package/source/dom/resource/script.mjs +10 -3
  210. package/source/dom/resource.mjs +10 -3
  211. package/source/dom/resourcemanager.mjs +10 -3
  212. package/source/dom/slotted.mjs +14 -0
  213. package/source/dom/template.mjs +124 -136
  214. package/source/dom/theme.mjs +10 -3
  215. package/source/dom/updater.mjs +10 -3
  216. package/source/dom/util/extract-keys.mjs +10 -3
  217. package/source/dom/util/init-options-from-attributes.mjs +68 -61
  218. package/source/dom/util/set-option-from-attribute.mjs +10 -3
  219. package/source/dom/util.mjs +11 -4
  220. package/source/dom/worker/factory.mjs +10 -3
  221. package/source/i18n/formatter.mjs +10 -3
  222. package/source/i18n/locale.mjs +10 -3
  223. package/source/i18n/provider.mjs +10 -3
  224. package/source/i18n/providers/embed.mjs +10 -3
  225. package/source/i18n/providers/fetch.mjs +10 -3
  226. package/source/i18n/translations.mjs +10 -3
  227. package/source/logging/handler/console.mjs +10 -3
  228. package/source/logging/handler.mjs +10 -3
  229. package/source/logging/logentry.mjs +10 -3
  230. package/source/logging/logger.mjs +10 -3
  231. package/source/math/random.mjs +10 -3
  232. package/source/monster.mjs +8 -93
  233. package/source/net/webconnect/message.mjs +10 -3
  234. package/source/net/webconnect.mjs +20 -5
  235. package/source/text/bracketed-key-value-hash.mjs +10 -3
  236. package/source/text/formatter.mjs +10 -3
  237. package/source/text/generate-range-comparison-expression.mjs +10 -3
  238. package/source/text/util.mjs +14 -0
  239. package/source/types/base.mjs +10 -3
  240. package/source/types/basewithoptions.mjs +10 -3
  241. package/source/types/binary.mjs +10 -3
  242. package/source/types/dataurl.mjs +10 -3
  243. package/source/types/global.mjs +14 -7
  244. package/source/types/id.mjs +10 -3
  245. package/source/types/internal.mjs +11 -3
  246. package/source/types/is.mjs +10 -3
  247. package/source/types/mediatype.mjs +10 -3
  248. package/source/types/node.mjs +10 -3
  249. package/source/types/nodelist.mjs +10 -3
  250. package/source/types/noderecursiveiterator.mjs +10 -3
  251. package/source/types/observablequeue.mjs +10 -3
  252. package/source/types/observer.mjs +10 -3
  253. package/source/types/observerlist.mjs +10 -3
  254. package/source/types/proxyobserver.mjs +14 -5
  255. package/source/types/queue.mjs +10 -3
  256. package/source/types/randomid.mjs +10 -3
  257. package/source/types/regex.mjs +10 -3
  258. package/source/types/stack.mjs +10 -3
  259. package/source/types/tokenlist.mjs +10 -3
  260. package/source/types/typeof.mjs +10 -3
  261. package/source/types/uniquequeue.mjs +10 -3
  262. package/source/types/uuid.mjs +10 -3
  263. package/source/types/validate.mjs +10 -3
  264. package/source/types/version.mjs +11 -4
  265. package/source/util/clone.mjs +10 -3
  266. package/source/util/comparator.mjs +10 -3
  267. package/source/util/deadmansswitch.mjs +10 -3
  268. package/source/util/freeze.mjs +10 -3
  269. package/source/util/processing.mjs +10 -3
  270. package/source/util/runtime.mjs +10 -7
  271. package/source/util/sleep.mjs +10 -10
  272. package/source/util/trimspaces.mjs +10 -3
  273. package/test/cases/data/datasource/server/websocket.mjs +7 -9
  274. package/test/cases/data/transformer.mjs +47 -15
  275. package/test/cases/dom/customcontrol.mjs +0 -1
  276. package/test/cases/dom/customelement.mjs +1 -3
  277. package/test/cases/dom/template.mjs +3 -1
  278. package/test/cases/monster.mjs +1 -1
  279. package/test/util/jsdom.mjs +8 -7
  280. package/test/util/websocket.mjs +5 -1
  281. package/test/web/import.js +2 -1
  282. package/test/web/puppeteer.mjs +111 -0
  283. package/test/web/test.html +2 -2
  284. package/test/web/tests.js +2039 -1192
  285. package/example/components/form/button.mjs +0 -10
  286. package/example/components/form/select.mjs +0 -25
  287. package/example/components/form/toggle-switch.mjs +0 -7
  288. package/example/components/form/tree-select.mjs +0 -27
  289. package/example/components/host/host.mjs +0 -0
  290. package/example/components/notify/message.mjs +0 -4
  291. package/example/components/notify/notify.mjs +0 -4
  292. package/example/components/state/log.mjs +0 -0
  293. package/example/components/state/state.mjs +0 -0
  294. package/example/constraints/andoperator.mjs +0 -17
  295. package/example/constraints/invalid.mjs +0 -6
  296. package/example/constraints/isarray.mjs +0 -11
  297. package/example/constraints/isobject.mjs +0 -12
  298. package/example/constraints/oroperator.mjs +0 -15
  299. package/example/constraints/valid.mjs +0 -6
  300. package/example/data/buildmap.mjs +0 -67
  301. package/example/data/datasource/server/restapi.mjs +0 -20
  302. package/example/data/datasource/server/webconnect.mjs +0 -9
  303. package/example/data/datasource.mjs +0 -7
  304. package/example/data/diff.mjs +0 -39
  305. package/example/data/pathfinder-1.mjs +0 -23
  306. package/example/data/pathfinder-2.mjs +0 -19
  307. package/example/data/pipe.mjs +0 -14
  308. package/example/data/transformer.mjs +0 -9
  309. package/example/dom/customelement.mjs +0 -14
  310. package/example/dom/theme.mjs +0 -5
  311. package/example/dom/updater.mjs +0 -23
  312. package/example/i18n/formatter.mjs +0 -10
  313. package/example/i18n/providers/embed.mjs +0 -5
  314. package/example/i18n/providers/fetch.mjs +0 -5
  315. package/example/i18n/translations.mjs +0 -20
  316. package/example/net/webconnect.mjs +0 -16
  317. package/example/types/basewithoptions.mjs +0 -10
  318. package/example/types/is-1.mjs +0 -5
  319. package/example/types/is-10.mjs +0 -6
  320. package/example/types/is-2.mjs +0 -4
  321. package/example/types/is-3.mjs +0 -4
  322. package/example/types/is-4.mjs +0 -5
  323. package/example/types/is-5.mjs +0 -4
  324. package/example/types/is-6.mjs +0 -4
  325. package/example/types/is-7.mjs +0 -4
  326. package/example/types/is-8.mjs +0 -4
  327. package/example/types/is-9.mjs +0 -6
  328. package/example/types/noderecursiveiterator.mjs +0 -32
  329. package/example/types/observer.mjs +0 -9
  330. package/example/types/proxyobserver.mjs +0 -25
  331. package/example/types/queue.mjs +0 -20
  332. package/example/types/tokenlist-1.mjs +0 -4
  333. package/example/types/tokenlist-2.mjs +0 -7
  334. package/example/types/tokenlist-3.mjs +0 -5
  335. package/example/types/tokenlist-4.mjs +0 -5
  336. package/example/types/tokenlist-5.mjs +0 -5
  337. package/example/types/typeof.mjs +0 -9
  338. package/example/types/version-1.mjs +0 -6
  339. package/example/types/version-2.mjs +0 -3
  340. package/example/util/comparator.mjs +0 -10
  341. package/example/util/deadmansswitch.mjs +0 -9
  342. package/example/util/processing.mjs +0 -17
  343. package/source/components/datatable/datasource/namespace.mjs +0 -13
  344. package/source/components/datatable/datatable/namespace.mjs +0 -13
  345. package/source/components/datatable/events.mjs +0 -24
  346. package/source/components/datatable/filter/namespace.mjs +0 -13
  347. package/source/components/datatable/namespace.mjs +0 -11
  348. package/source/components/datatable/stylesheet/namespace.mjs +0 -13
  349. package/source/components/events.mjs +0 -17
  350. package/source/components/form/events.mjs +0 -108
  351. package/source/components/form/form-field.mjs +0 -341
  352. package/source/components/form/namespace.mjs +0 -13
  353. package/source/components/form/style/form-field.pcss +0 -4
  354. package/source/components/form/stylesheet/form-field.mjs +0 -31
  355. package/source/components/form/stylesheet/namespace.mjs +0 -13
  356. package/source/components/form/types/namespace.mjs +0 -13
  357. package/source/components/form/util/namespace.mjs +0 -13
  358. package/source/components/host/events.mjs +0 -131
  359. package/source/components/host/namespace.mjs +0 -13
  360. package/source/components/host/stylesheet/namespace.mjs +0 -13
  361. package/source/components/layout/events.mjs +0 -30
  362. package/source/components/layout/namespace.mjs +0 -13
  363. package/source/components/namespace.mjs +0 -14
  364. package/source/components/notify/events.mjs +0 -15
  365. package/source/components/notify/namespace.mjs +0 -15
  366. package/source/components/notify/stylesheet/namespace.mjs +0 -15
  367. package/source/components/state/log/namespace.mjs +0 -13
  368. package/source/components/state/namespace.mjs +0 -13
  369. package/source/components/stylesheet/namespace.mjs +0 -13
  370. package/source/components/tree-menu/namespace.mjs +0 -13
  371. package/source/components/tree-menu/stylesheet/namespace.mjs +0 -13
  372. package/source/constraints/namespace.mjs +0 -13
  373. package/source/data/datasource/namespace.mjs +0 -13
  374. package/source/data/datasource/server/namespace.mjs +0 -13
  375. package/source/data/datasource/server/restapi/namespace.mjs +0 -13
  376. package/source/data/datasource/storage/namespace.mjs +0 -13
  377. package/source/data/namespace.mjs +0 -13
  378. package/source/dom/namespace.mjs +0 -13
  379. package/source/dom/resource/link/namespace.mjs +0 -13
  380. package/source/dom/resource/namespace.mjs +0 -13
  381. package/source/dom/util/namespace.mjs +0 -13
  382. package/source/dom/worker/namespace.mjs +0 -13
  383. package/source/i18n/namespace.mjs +0 -13
  384. package/source/i18n/providers/namespace.mjs +0 -13
  385. package/source/logging/handler/namespace.mjs +0 -11
  386. package/source/logging/namespace.mjs +0 -13
  387. package/source/math/namespace.mjs +0 -13
  388. package/source/net/namespace.mjs +0 -13
  389. package/source/net/webconnect/namespace.mjs +0 -13
  390. package/source/text/namespace.mjs +0 -13
  391. package/source/types/namespace.mjs +0 -13
  392. package/source/util/namespace.mjs +0 -13
  393. /package/source/components/{host → layout}/style/collapse.pcss +0 -0
  394. /package/source/components/{host → layout}/style/details.pcss +0 -0
  395. /package/source/components/{form → layout}/style/popper.pcss +0 -0
@@ -1,528 +1,24 @@
1
1
  /**
2
- * Copyright 2023 schukai GmbH
3
- * SPDX-License-Identifier: AGPL-3.0
4
- */
5
-
6
- import {
7
- assembleMethodSymbol,
8
- CustomElement,
9
- getSlottedElements,
10
- registerCustomElement,
11
- } from "../../dom/customelement.mjs";
12
- import { CollapseStyleSheet } from "./stylesheet/collapse.mjs";
13
- import { fireCustomEvent } from "../../dom/events.mjs";
14
- import { getDocument } from "../../dom/util.mjs";
15
- import { addAttributeToken } from "../../dom/attributes.mjs";
16
- import { ATTRIBUTE_ERRORMESSAGE } from "../../dom/constants.mjs";
17
- import { Host } from "./host.mjs";
18
- import { generateUniqueConfigKey } from "./util.mjs";
19
- import { DeadMansSwitch } from "../../util/deadmansswitch.mjs";
20
- import { instanceSymbol } from "../../constants.mjs";
21
-
22
- export { Collapse, nameSymbol };
23
-
24
- /**
25
- * @private
26
- * @type {symbol}
27
- */
28
- const timerCallbackSymbol = Symbol("timerCallback");
29
-
30
- /**
31
- * @private
32
- * @type {symbol}
33
- */
34
- const detailsElementSymbol = Symbol("detailsElement");
35
-
36
- /**
37
- * @private
38
- * @type {symbol}
39
- */
40
- const controlElementSymbol = Symbol("controlElement");
41
-
42
- /**
43
- * local symbol
44
- * @private
45
- * @type {symbol}
46
- */
47
- const resizeObserverSymbol = Symbol("resizeObserver");
48
-
49
- /**
50
- * @private
51
- * @type {symbol}
52
- */
53
- const detailsSlotElementSymbol = Symbol("detailsSlotElement");
54
-
55
- /**
56
- * @private
57
- * @type {symbol}
58
- */
59
- const detailsContainerElementSymbol = Symbol("detailsContainerElement");
60
- /**
61
-
62
- * @private
63
- * @type {symbol}
64
- */
65
- const detailsDecoElementSymbol = Symbol("detailsDecoElement");
66
-
67
- /**
68
- * @private
69
- * @type {symbol}
70
- */
71
- const nameSymbol = Symbol("name");
72
-
73
- /**
74
- * The Collapse component is used to show a details.
75
- *
76
- * <img src="./images/collapse.png">
77
- *
78
- * Dependencies: the system uses functions of the [monsterjs](https://monsterjs.org/) library
79
- *
80
- * You can create this control either by specifying the HTML tag <monster-collapse />` directly in the HTML or using
81
- * Javascript via the `document.createElement('monster-collapse');` method.
2
+ * Copyright © schukai GmbH and all contributing authors, {{copyRightYear}}. All rights reserved.
3
+ * Node module: @schukai/monster
82
4
  *
83
- * ```html
84
- * <monster-collapse></monster-collapse>
85
- * ```
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
86
7
  *
87
- * Or you can create this CustomControl directly in Javascript:
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.
88
11
  *
89
- * ```js
90
- * import '@schukai/monster/source/components/host/collapse.mjs';
91
- * document.createElement('monster-collapse');
92
- * ```
93
- *
94
- * The Body should have a class "hidden" to ensure that the styles are applied correctly.
95
- *
96
- * ```css
97
- * body.hidden {
98
- * visibility: hidden;
99
- * }
100
- * ```
101
- *
102
- * @startuml collapse.png
103
- * skinparam monochrome true
104
- * skinparam shadowing false
105
- * HTMLElement <|-- CustomElement
106
- * CustomElement <|-- Collapse
107
- * @enduml
108
- *
109
- * @copyright schukai GmbH
110
- * @memberOf Monster.Components.Host
111
- * @summary A simple collapse component
112
- * @fires Monster.Components.Host.Collapse.event:monster-collapse-before-open
113
- * @fires Monster.Components.Host.Collapse.event:monster-collapse-open
114
- * @fires Monster.Components.Host.Collapse.event:monster-collapse-before-close
115
- * @fires Monster.Components.Host.Collapse.event:monster-collapse-closed
116
- * @fires Monster.Components.Host.Collapse.event:monster-collapse-adjust-height
117
- */
118
- class Collapse extends CustomElement {
119
- /**
120
- * This method is called by the `instanceof` operator.
121
- * @returns {symbol}
122
- */
123
- static get [instanceSymbol]() {
124
- return Symbol.for("@schukai/component-host/collapse@@instance");
125
- }
126
-
127
- /**
128
- *
129
- */
130
- constructor() {
131
- super();
132
- // the name is only used for the host config and the event name
133
- this[nameSymbol] = "collapse";
134
- }
135
-
136
- /**
137
- * To set the options via the html tag the attribute `data-monster-options` must be used.
138
- * @see {@link https://monsterjs.org/en/doc/#configurate-a-monster-control}
139
- *
140
- * The individual configuration values can be found in the table.
141
- *
142
- * @property {Object} templates Template definitions
143
- * @property {string} templates.main Main template
144
- * @property {Object} classes CSS classes
145
- * @property {string} classes.container CSS class for the container
146
- * @property {Object} features Feature configuration
147
- * @property {boolean} features.accordion Enable accordion mode
148
- * @property {boolean} features.persistState Enable persist state (Host and Config-Manager required)
149
- * @property {boolean} features.useScrollValues Use scroll values (scrollHeight) instead of clientHeight for the height calculation
150
- */
151
- get defaults() {
152
- return Object.assign({}, super.defaults, {
153
- templates: {
154
- main: getTemplate(),
155
- },
156
- classes: {
157
- container: "padding",
158
- },
159
- features: {
160
- accordion: true,
161
- persistState: true,
162
- useScrollValues: false,
163
- },
164
- });
165
- }
166
-
167
- /**
168
- *
169
- * @returns {Monster.Components.Host.Collapse}
170
- */
171
- [assembleMethodSymbol]() {
172
- super[assembleMethodSymbol]();
173
- initControlReferences.call(this);
174
- initStateFromHostConfig.call(this);
175
- initResizeObserver.call(this);
176
- initEventHandler.call(this);
177
- }
178
-
179
- /**
180
- *
181
- */
182
- connectedCallback() {
183
- super.connectedCallback();
184
- updateResizeObserverObservation.call(this);
185
- // this[resizeObserverSymbol].observe(getDocument().body);
186
- }
187
-
188
- /**
189
- *
190
- */
191
- disconnectedCallback() {
192
- super.disconnectedCallback();
193
- //this[resizeObserverSymbol].disconnect();
194
- }
195
-
196
- /**
197
- *
198
- * @returns {Monster.Components.Host.Collapse}
199
- */
200
- toggle() {
201
- if (this[detailsElementSymbol].classList.contains("active")) {
202
- this.close();
203
- } else {
204
- this.open();
205
- }
206
- return this;
207
- }
208
-
209
- /**
210
- *
211
- * @returns {boolean}
212
- */
213
- isClosed() {
214
- return !this[detailsElementSymbol].classList.contains("active");
215
- }
216
-
217
- /**
218
- *
219
- * @returns {boolean}
220
- */
221
- isOpen() {
222
- return !this.isClosed();
223
- }
224
-
225
- /**
226
- *
227
- * @returns {Monster.Components.Host.Collapse}
228
- * @fires Monster.Components.Host.Collapse.event:monster-collapse-before-open
229
- * @fires Monster.Components.Host.Collapse.event:monster-collapse-open
230
- */
231
- open() {
232
- let node;
233
- if (this[detailsElementSymbol].classList.contains("active")) {
234
- return this;
235
- }
236
-
237
- fireCustomEvent(this, "monster-" + this[nameSymbol] + "-before-open", {});
238
-
239
- adjustHeight.call(this);
240
- this[detailsElementSymbol].classList.add("active");
241
-
242
- if (this.getOption("features.accordion") === true) {
243
- node = this;
244
- while (node.nextElementSibling instanceof Collapse) {
245
- node = node.nextElementSibling;
246
- node.close();
247
- }
248
-
249
- node = this;
250
- while (node.previousElementSibling instanceof Collapse) {
251
- node = node.previousElementSibling;
252
- node.close();
253
- }
254
- }
255
-
256
- setTimeout(() => {
257
- setTimeout(() => {
258
- updateStateConfig.call(this);
259
- fireCustomEvent(this, "monster-" + this[nameSymbol] + "-open", {});
260
- setTimeout(() => {
261
- this[controlElementSymbol].classList.remove("overflow-hidden");
262
- }, 500);
263
- }, 0);
264
- }, 0);
265
-
266
- return this;
267
- }
268
-
269
- /**
270
- *
271
- * @returns {Monster.Components.Host.Collapse}
272
- * @fires Monster.Components.Host.Collapse.event:monster-collapse-before-close
273
- * @fires Monster.Components.Host.Collapse.event:monster-collapse-closed
274
- */
275
- close() {
276
- if (!this[detailsElementSymbol].classList.contains("active")) {
277
- return this;
278
- }
279
-
280
- fireCustomEvent(this, "monster-" + this[nameSymbol] + "-before-close", {});
281
- this[controlElementSymbol].classList.add("overflow-hidden");
282
-
283
- setTimeout(() => {
284
- this[detailsElementSymbol].classList.remove("active");
285
- setTimeout(() => {
286
- updateStateConfig.call(this);
287
- fireCustomEvent(this, "monster-" + this[nameSymbol] + "-closed", {});
288
- }, 0);
289
- }, 0);
290
-
291
- return this;
292
- }
293
-
294
- /**
295
- *
296
- * @return {string}
297
- */
298
- static getTag() {
299
- return "monster-collapse";
300
- }
301
-
302
- /**
303
- * @return {Array<CSSStyleSheet>}
304
- */
305
- static getCSSStyleSheet() {
306
- return [CollapseStyleSheet];
307
- }
308
-
309
- /**
310
- * This method is called when the element is inserted into a document, including into a shadow tree.
311
- * @return {Monster.Components.Host.Collapse}
312
- * @fires Monster.Components.Host.Collapse.event:monster-collapse-adjust-height
313
- */
314
- adjustHeight() {
315
- adjustHeight.call(this);
316
- return this;
317
- }
318
- }
319
-
320
- function adjustHeight() {
321
- let height = 0;
322
-
323
- if (this[detailsContainerElementSymbol]) {
324
- if (this.getOption("features.useScrollValues")) {
325
- height += this[detailsContainerElementSymbol].scrollHeight;
326
- } else {
327
- height += this[detailsContainerElementSymbol].clientHeight;
328
- }
329
- }
330
-
331
- if (this[detailsDecoElementSymbol]) {
332
- if (this.getOption("features.useScrollValues")) {
333
- height += this[detailsDecoElementSymbol].scrollHeight;
334
- } else {
335
- height += this[detailsDecoElementSymbol].clientHeight + 1;
336
- }
337
- }
338
-
339
- if (height === 0) {
340
- if (this.getOption("features.useScrollValues")) {
341
- height = this[detailsElementSymbol].scrollHeight;
342
- } else {
343
- height = this[detailsElementSymbol].clientHeight;
344
- }
345
-
346
- if (height === 0) {
347
- height = "auto";
348
- }
349
- } else {
350
- height += "px";
351
- }
352
-
353
- this[detailsElementSymbol].style.setProperty(
354
- "--monster-height",
355
- height,
356
- "important",
357
- );
358
- fireCustomEvent(this, "monster-" + this[nameSymbol] + "-adjust-height", {});
359
- }
360
-
361
- function updateResizeObserverObservation() {
362
- this[resizeObserverSymbol].disconnect();
363
-
364
- const slottedNodes = getSlottedElements.call(this);
365
- slottedNodes.forEach((node) => {
366
- this[resizeObserverSymbol].observe(node);
367
- });
368
-
369
- if (this[detailsContainerElementSymbol]) {
370
- this[resizeObserverSymbol].observe(this[detailsContainerElementSymbol]);
371
- }
372
-
373
- this.adjustHeight();
374
- }
375
-
376
- /**
377
- * @private
378
- */
379
- function initEventHandler() {
380
- if (!this.shadowRoot) {
381
- throw new Error("no shadow-root is defined");
382
- }
383
-
384
- initSlotChangedHandler.call(this);
385
- return this;
386
- }
387
-
388
- function initSlotChangedHandler() {
389
- this[detailsSlotElementSymbol].addEventListener("slotchange", () => {
390
- updateResizeObserverObservation.call(this);
391
- });
392
- }
393
-
394
- /**
395
- * @private
396
- * @return {Select}
397
- * @throws {Error} no shadow-root is defined
398
- */
399
- function initControlReferences() {
400
- if (!this.shadowRoot) {
401
- throw new Error("no shadow-root is defined");
402
- }
403
-
404
- this[controlElementSymbol] = this.shadowRoot.querySelector(
405
- "[data-monster-role=control]",
406
- );
407
- this[detailsElementSymbol] = this.shadowRoot.querySelector(
408
- "[data-monster-role=detail]",
409
- );
410
- this[detailsSlotElementSymbol] = this.shadowRoot.querySelector("slot");
411
- this[detailsContainerElementSymbol] = this.shadowRoot.querySelector(
412
- "[data-monster-role=container]",
413
- );
414
- this[detailsDecoElementSymbol] = this.shadowRoot.querySelector(
415
- "[data-monster-role=deco]",
416
- );
417
- }
418
-
419
- /**
420
- * @private
421
- * @returns {string}
422
- */
423
- function getConfigKey() {
424
- return generateUniqueConfigKey(this[nameSymbol], this.id, "state");
425
- }
426
-
427
- /**
428
- * @private
429
- */
430
- function updateStateConfig() {
431
- if (!this.getOption("features.persistState")) {
432
- return;
433
- }
434
-
435
- if (!this[detailsElementSymbol]) {
436
- return;
437
- }
438
-
439
- const document = getDocument();
440
- const host = document.querySelector("monster-host");
441
- if (!(host && this.id)) {
442
- return;
443
- }
444
-
445
- const configKey = getConfigKey.call(this);
446
-
447
- try {
448
- host.setConfig(configKey, this.isOpen());
449
- } catch (error) {
450
- addAttributeToken(this, ATTRIBUTE_ERRORMESSAGE, String(error));
451
- }
452
- }
453
-
454
- /**
455
- * @private
456
- * @returns {Promise}
457
- */
458
- function initStateFromHostConfig() {
459
- if (!this.getOption("features.persistState")) {
460
- return Promise.resolve({});
461
- }
462
-
463
- const document = getDocument();
464
- const host = document.querySelector("monster-host");
465
-
466
- if (!(host && this.id)) {
467
- return Promise.resolve({});
468
- }
469
-
470
- const configKey = getConfigKey.call(this);
471
- return host
472
- .getConfig(configKey)
473
- .then((state) => {
474
- if (state === true) {
475
- this.open();
476
- } else {
477
- this.close();
478
- }
479
- })
480
- .catch((error) => {
481
- addAttributeToken(this, ATTRIBUTE_ERRORMESSAGE, error.toString());
482
- });
483
- }
484
-
485
- /**
486
- * @private
12
+ * SPDX-License-Identifier: AGPL-3.0
487
13
  */
488
- function initResizeObserver() {
489
- // against flickering
490
- this[resizeObserverSymbol] = new ResizeObserver((entries) => {
491
- if (this[timerCallbackSymbol] instanceof DeadMansSwitch) {
492
- try {
493
- this[timerCallbackSymbol].touch();
494
- return;
495
- } catch (e) {
496
- delete this[timerCallbackSymbol];
497
- }
498
- }
499
14
 
500
- this[timerCallbackSymbol] = new DeadMansSwitch(200, () => {
501
- checkAndRearrangeContent.call(this);
502
- });
503
- });
504
- }
505
-
506
- function checkAndRearrangeContent() {
507
- this.adjustHeight();
508
- }
15
+ import { Collapse as NewCollapse } from "../layout/collapse.mjs";
16
+ export { Collapse };
509
17
 
510
18
  /**
511
- * @private
512
- * @return {string}
19
+ * @since 1.10.0
20
+ * @copyright schukai GmbH
21
+ * @memberOf Monster.Components.Form
22
+ * @deprecated since 3.64.0 use {@link Monster.Components.Layout.Collapse}
513
23
  */
514
- function getTemplate() {
515
- // language=HTML
516
- return `
517
- <div data-monster-role="control" part="control" class="overflow-hidden">
518
- <div data-monster-role="detail">
519
- <div data-monster-attributes="class path:classes.container" part="container"
520
- data-monster-role="container">
521
- <slot></slot>
522
- </div>
523
- <div class="deco-line" data-monster-role="deco"></div>
524
- </div>
525
- </div>`;
526
- }
527
-
528
- registerCustomElement(Collapse);
24
+ class Collapse extends NewCollapse {}
@@ -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,8 +1,15 @@
1
1
  /**
2
- * Copyright schukai GmbH and contributors 2022. All Rights Reserved.
3
- * Node module: @schukai/component-form
4
- * This file is licensed under the AGPLv3 License.
5
- * License text available at https://www.gnu.org/licenses/agpl-3.0.en.html
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
6
13
  */
7
14
 
8
15
  import { ATTRIBUTE_PREFIX } from "../../dom/constants.mjs";