@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,9 +1,17 @@
1
1
  /**
2
- * Copyright schukai GmbH and contributors 2023. All Rights Reserved.
2
+ * Copyright © schukai GmbH and all contributing authors, {{copyRightYear}}. All rights reserved.
3
3
  * Node module: @schukai/monster
4
- * This file is licensed under the AGPLv3 License.
5
- * License text available at https://www.gnu.org/licenses/agpl-3.0.en.html
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
  */
14
+
7
15
  import { instanceSymbol } from "../../constants.mjs";
8
16
  import { createPopper } from "@popperjs/core";
9
17
  import { extend } from "../../data/extend.mjs";
@@ -225,7 +233,7 @@ class Tabs extends CustomElement {
225
233
  accept: "text/html",
226
234
  },
227
235
  },
228
-
236
+
229
237
  features: {
230
238
  openDelay: null,
231
239
  },
@@ -296,40 +304,47 @@ class Tabs extends CustomElement {
296
304
 
297
305
  /**
298
306
  * A function that activates a tab based on the provided name.
299
- *
307
+ *
300
308
  * The tabs have to be named with the `data-monster-name` attribute.
301
309
  *
302
310
  * @param {type} idOrName - the name or id of the tab to activate
303
311
  * @return {Tabs} - The current instance
304
312
  */
305
313
  activeTab(idOrName) {
306
-
307
314
  let found = false;
308
-
315
+
309
316
  getSlottedElements.call(this).forEach((node) => {
310
317
  if (found === true) {
311
- return
318
+ return;
312
319
  }
313
-
320
+
314
321
  if (node.getAttribute("data-monster-name") === idOrName) {
315
- this.shadowRoot.querySelector(`[data-monster-tab-reference="${node.getAttribute("id")}"]`).click();
322
+ this.shadowRoot
323
+ .querySelector(
324
+ `[data-monster-tab-reference="${node.getAttribute("id")}"]`,
325
+ )
326
+ .click();
316
327
  found = true;
317
328
  }
318
-
329
+
319
330
  if (node.getAttribute("id") === idOrName) {
320
- this.shadowRoot.querySelector(`[data-monster-tab-reference="${node.getAttribute("id")}"]`).click();
331
+ this.shadowRoot
332
+ .querySelector(
333
+ `[data-monster-tab-reference="${node.getAttribute("id")}"]`,
334
+ )
335
+ .click();
321
336
  found = true;
322
337
  }
323
- })
324
-
325
- return this
338
+ });
339
+
340
+ return this;
326
341
  }
327
342
 
328
343
  /**
329
344
  * A function that returns the name or id of the currently active tab.
330
- *
345
+ *
331
346
  * The tabs have to be named with the `data-monster-name` attribute.
332
- *
347
+ *
333
348
  * @returns {string|null}
334
349
  */
335
350
  getActiveTab() {
@@ -338,8 +353,8 @@ class Tabs extends CustomElement {
338
353
  if (node.matches(".active") === true) {
339
354
  if (node.hasAttribute("data-monster-name")) {
340
355
  return node.getAttribute("data-monster-name");
341
- }
342
-
356
+ }
357
+
343
358
  return node.getAttribute("id");
344
359
  }
345
360
  }
@@ -583,17 +598,17 @@ function show(element) {
583
598
 
584
599
  if (id === reference) {
585
600
  node.classList.add("active");
586
-
601
+
587
602
  const openDelay = parseInt(this.getOption("features.openDelay"), 10);
588
-
589
- if(!isNaN(openDelay) && openDelay>0) {
603
+
604
+ if (!isNaN(openDelay) && openDelay > 0) {
590
605
  node.style.visibility = "hidden";
591
606
 
592
607
  setTimeout(() => {
593
608
  node.style.visibility = "visible";
594
609
  }, openDelay);
595
- }
596
-
610
+ }
611
+
597
612
  // get all data- from button and filter out data-monster-attributes and data-monster-insert
598
613
  const data = {};
599
614
  const mask = [
@@ -1,22 +1,31 @@
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
- import {addAttributeToken} from "../../dom/attributes.mjs";
7
- import {ATTRIBUTE_ERRORMESSAGE} from "../../dom/constants.mjs";
15
+ import { addAttributeToken } from "../../dom/attributes.mjs";
16
+ import { ATTRIBUTE_ERRORMESSAGE } from "../../dom/constants.mjs";
8
17
  import {
9
- assembleMethodSymbol,
10
- CustomElement,
11
- registerCustomElement,
18
+ assembleMethodSymbol,
19
+ CustomElement,
20
+ registerCustomElement,
12
21
  } from "../../dom/customelement.mjs";
13
- import {fireCustomEvent} from "../../dom/events.mjs";
14
- import {Observer} from "../../types/observer.mjs";
15
- import {WidthToggleStyleSheet} from "./stylesheet/width-toggle.mjs";
16
- import {instanceSymbol} from "../../constants.mjs";
17
- import {internalSymbol} from "../../constants.mjs";
22
+ import { fireCustomEvent } from "../../dom/events.mjs";
23
+ import { Observer } from "../../types/observer.mjs";
24
+ import { WidthToggleStyleSheet } from "./stylesheet/width-toggle.mjs";
25
+ import { instanceSymbol } from "../../constants.mjs";
26
+ import { internalSymbol } from "../../constants.mjs";
18
27
 
19
- export {WidthToggle, MODE_SMALL, MODE_WIDE};
28
+ export { WidthToggle, MODE_SMALL, MODE_WIDE };
20
29
 
21
30
  /**
22
31
  * @private
@@ -79,152 +88,153 @@ const MODE_WIDE = "wide";
79
88
  * @fires Monster.Components.Layout.event:monster-dimension-changed
80
89
  */
81
90
  class WidthToggle extends CustomElement {
82
-
83
- /**
84
- * This method is called by the `instanceof` operator.
85
- * @returns {symbol}
86
- */
87
- static get [instanceSymbol]() {
88
- return Symbol.for("@schukai/monster/components/layout/width-toggle@@instance");
89
- }
90
-
91
- /**
92
- * To set the options via the html tag the attribute `data-monster-options` must be used.
93
- * @see {@link https://monsterjs.org/en/doc/#configurate-a-monster-control}
94
- *
95
- * The individual configuration values can be found in the table.
96
- *
97
- * @property {Object} templates Template definitions
98
- * @property {string} templates.main Main template
99
- * @property {string} splitType Split type (vertical or horizontal)
100
- * @property {string} dimension Dimension
101
- * @property {string} dimension.initial Initial dimension of the start panel
102
- * @property {string} dimension.max Maximum dimension of the start panel (in percentage)
103
- * @property {string} dimension.min Minimum dimension of the start panel (in percentage)
104
- */
105
- get defaults() {
106
- return Object.assign({}, super.defaults, {
107
- templates: {
108
- main: getTemplate(),
109
- },
110
- width: {
111
- small: "40%",
112
- wide: "95%",
113
- },
114
- default: MODE_SMALL,
115
- });
116
- }
117
-
118
- /**
119
- *
120
- * @returns {Monster.Components.Host.Viewer}
121
- */
122
- [assembleMethodSymbol]() {
123
- super[assembleMethodSymbol]();
124
-
125
- initControlReferences.call(this);
126
- initEventHandler.call(this);
127
- applyContainerWidth.call(this, this.getOption("default"));
128
-
129
- }
130
-
131
- /**
132
- * Check if the dimension is a percentage and within a valid range, then set the dimension option.
133
- *
134
- * @param {string} mode - The mode of the panel. Possible values are "wide" or "small".
135
- * @return {Object} - Returns the current object instance for chaining.
136
- * @throws {Error} - If the mode is not supported.
137
- */
138
- setWidth(mode) {
139
- applyContainerWidth.call(this, mode);
140
- return this;
141
- }
142
-
143
-
144
- /**
145
- *
146
- * @return {string}
147
- */
148
- static getTag() {
149
- return "monster-width-toggle";
150
- }
151
-
152
- /**
153
- * @return {CSSStyleSheet[]}
154
- */
155
- static getCSSStyleSheet() {
156
- return [WidthToggleStyleSheet];
157
- }
91
+ /**
92
+ * This method is called by the `instanceof` operator.
93
+ * @returns {symbol}
94
+ */
95
+ static get [instanceSymbol]() {
96
+ return Symbol.for(
97
+ "@schukai/monster/components/layout/width-toggle@@instance",
98
+ );
99
+ }
100
+
101
+ /**
102
+ * To set the options via the html tag the attribute `data-monster-options` must be used.
103
+ * @see {@link https://monsterjs.org/en/doc/#configurate-a-monster-control}
104
+ *
105
+ * The individual configuration values can be found in the table.
106
+ *
107
+ * @property {Object} templates Template definitions
108
+ * @property {string} templates.main Main template
109
+ * @property {string} splitType Split type (vertical or horizontal)
110
+ * @property {string} dimension Dimension
111
+ * @property {string} dimension.initial Initial dimension of the start panel
112
+ * @property {string} dimension.max Maximum dimension of the start panel (in percentage)
113
+ * @property {string} dimension.min Minimum dimension of the start panel (in percentage)
114
+ */
115
+ get defaults() {
116
+ return Object.assign({}, super.defaults, {
117
+ templates: {
118
+ main: getTemplate(),
119
+ },
120
+ width: {
121
+ small: "40%",
122
+ wide: "95%",
123
+ },
124
+ default: MODE_SMALL,
125
+ });
126
+ }
127
+
128
+ /**
129
+ *
130
+ * @returns {Monster.Components.Host.Viewer}
131
+ */
132
+ [assembleMethodSymbol]() {
133
+ super[assembleMethodSymbol]();
134
+
135
+ initControlReferences.call(this);
136
+ initEventHandler.call(this);
137
+ applyContainerWidth.call(this, this.getOption("default"));
138
+ }
139
+
140
+ /**
141
+ * Check if the dimension is a percentage and within a valid range, then set the dimension option.
142
+ *
143
+ * @param {string} mode - The mode of the panel. Possible values are "wide" or "small".
144
+ * @return {Object} - Returns the current object instance for chaining.
145
+ * @throws {Error} - If the mode is not supported.
146
+ */
147
+ setWidth(mode) {
148
+ applyContainerWidth.call(this, mode);
149
+ return this;
150
+ }
151
+
152
+ /**
153
+ *
154
+ * @return {string}
155
+ */
156
+ static getTag() {
157
+ return "monster-width-toggle";
158
+ }
159
+
160
+ /**
161
+ * @return {CSSStyleSheet[]}
162
+ */
163
+ static getCSSStyleSheet() {
164
+ return [WidthToggleStyleSheet];
165
+ }
158
166
  }
159
167
 
160
-
161
168
  /**
162
169
  * Set the dimensions of the panel based on the split type.
163
170
  * @param {string} mode - The mode of the panel. Possible values are "wide" or "small".
164
171
  * @fires Monster.Components.Layout.event:monster-dimension-changed
165
172
  */
166
173
  function applyContainerWidth(mode) {
167
-
168
- const width = this.getOption("width." + mode)
169
- if (!width) {
170
- addAttributeToken(this, ATTRIBUTE_ERRORMESSAGE, e.message);
171
- throw new Error("unsupported mode");
172
- }
173
-
174
- switch (mode) {
175
- case MODE_SMALL:
176
- case MODE_WIDE:
177
-
178
- this[toggleElementSymbol].style.right = "calc( 50% - (" + width + " / 2) + 1rem)"
179
- this[toggleElementSymbol].setAttribute("data-monster-state", mode);
180
- this[insideElementSymbol].style.width = width;
181
-
182
- fireCustomEvent(this, "monster-dimension-changed", {
183
- controller: this,
184
- dimension: width
185
- });
186
- break;
187
-
188
- default:
189
- const error = new Error("unsupported mode")
190
- addAttributeToken(this, ATTRIBUTE_ERRORMESSAGE, error.message);
191
- throw error;
192
- }
193
-
174
+ const width = this.getOption("width." + mode);
175
+ if (!width) {
176
+ addAttributeToken(this, ATTRIBUTE_ERRORMESSAGE, e.message);
177
+ throw new Error("unsupported mode");
178
+ }
179
+
180
+ switch (mode) {
181
+ case MODE_SMALL:
182
+ case MODE_WIDE:
183
+ this[toggleElementSymbol].style.right =
184
+ "calc( 50% - (" + width + " / 2) + 1rem)";
185
+ this[toggleElementSymbol].setAttribute("data-monster-state", mode);
186
+ this[insideElementSymbol].style.width = width;
187
+
188
+ fireCustomEvent(this, "monster-dimension-changed", {
189
+ controller: this,
190
+ dimension: width,
191
+ });
192
+ break;
193
+
194
+ default:
195
+ const error = new Error("unsupported mode");
196
+ addAttributeToken(this, ATTRIBUTE_ERRORMESSAGE, error.message);
197
+ throw error;
198
+ }
194
199
  }
195
200
 
196
-
197
201
  /**
198
202
  * @private
199
203
  * @return {Select}
200
204
  * @throws {Error} no shadow-root is defined
201
205
  */
202
206
  function initControlReferences() {
203
- if (!this.shadowRoot) {
204
- throw new Error("no shadow-root is defined");
205
- }
206
-
207
- this[widthToggleElementSymbol] = this.shadowRoot.querySelector("[data-monster-role=control]");
208
- this[toggleElementSymbol] = this.shadowRoot.querySelector("[data-monster-role=toggle]");
209
- this[insideElementSymbol] = this.shadowRoot.querySelector("[data-monster-role=inside]");
210
-
211
-
207
+ if (!this.shadowRoot) {
208
+ throw new Error("no shadow-root is defined");
209
+ }
210
+
211
+ this[widthToggleElementSymbol] = this.shadowRoot.querySelector(
212
+ "[data-monster-role=control]",
213
+ );
214
+ this[toggleElementSymbol] = this.shadowRoot.querySelector(
215
+ "[data-monster-role=toggle]",
216
+ );
217
+ this[insideElementSymbol] = this.shadowRoot.querySelector(
218
+ "[data-monster-role=inside]",
219
+ );
212
220
  }
213
221
 
214
222
  /**
215
223
  * @private
216
224
  */
217
225
  function initEventHandler() {
218
- const self = this;
219
-
220
- this[toggleElementSymbol].addEventListener("click", function () {
221
- const mode = self[toggleElementSymbol].getAttribute("data-monster-state") === MODE_SMALL ? MODE_WIDE : MODE_SMALL;
222
- applyContainerWidth.call(self, mode);
223
- });
224
-
225
-
226
- return this;
227
-
226
+ const self = this;
227
+
228
+ this[toggleElementSymbol].addEventListener("click", function () {
229
+ const mode =
230
+ self[toggleElementSymbol].getAttribute("data-monster-state") ===
231
+ MODE_SMALL
232
+ ? MODE_WIDE
233
+ : MODE_SMALL;
234
+ applyContainerWidth.call(self, mode);
235
+ });
236
+
237
+ return this;
228
238
  }
229
239
 
230
240
  /**
@@ -232,8 +242,8 @@ function initEventHandler() {
232
242
  * @return {string}
233
243
  */
234
244
  function getTemplate() {
235
- // language=HTML
236
- return `
245
+ // language=HTML
246
+ return `
237
247
  <div data-monster-role="control" part="control">
238
248
  <div part="container" data-monster-role="container">
239
249
  <div part="toggle" data-monster-role="toggle" data-monster-state="wide"></div>
@@ -9,15 +9,23 @@
9
9
  }
10
10
 
11
11
  .navigation {
12
+
13
+ &.left {
14
+ left: 0;
15
+ }
16
+
17
+ &.right {
18
+ right: 40px;
19
+ }
12
20
 
13
21
  box-sizing: border-box;
14
22
  position: absolute;
15
23
  top: 0;
16
24
  display: block;
17
- cursor: pointer;
18
- width: 20px;
25
+ cursor: pointer;
26
+ width: 20px;
19
27
 
20
- transition: top 0.2s ease, visibility 0.1s ease;
28
+ transition: top 0.2s ease, visibility 0.3s ease;
21
29
 
22
30
  & [data-monster-role="navigation-list"] {
23
31
 
@@ -42,6 +50,13 @@
42
50
  border-left: 1px dotted var(--monster-color-primary-2);
43
51
  margin-top: 0;
44
52
  }
53
+
54
+ & div.footer {
55
+ display: flex;
56
+ gap: 5px;
57
+ padding: 5px 0;
58
+ }
59
+
45
60
  }
46
61
 
47
62
  & [data-monster-role=navigation-control] {
@@ -52,8 +67,8 @@
52
67
  display: flex;
53
68
  height: 0;
54
69
 
55
- background-color: var(--monster-bg-color-primary-3);
56
- margin-bottom: 10px;
70
+ background-color: var(--monster-color-primary-1);
71
+ margin-bottom: 3px;
57
72
 
58
73
  &.level-h1 {
59
74
  height: 6px;