@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
@@ -8,28 +8,30 @@
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
- import {instanceSymbol} from "../../constants.mjs";
14
- import {addAttributeToken} from "../../dom/attributes.mjs";
15
+ import { instanceSymbol } from "../../constants.mjs";
16
+ import { addAttributeToken } from "../../dom/attributes.mjs";
15
17
  import {
16
- ATTRIBUTE_ERRORMESSAGE,
17
- ATTRIBUTE_ROLE,
18
+ ATTRIBUTE_ERRORMESSAGE,
19
+ ATTRIBUTE_ROLE,
18
20
  } from "../../dom/constants.mjs";
19
- import {CustomControl} from "../../dom/customcontrol.mjs";
21
+ import { CustomControl } from "../../dom/customcontrol.mjs";
20
22
  import {
21
- assembleMethodSymbol,
22
- attributeObserverSymbol,
23
- registerCustomElement,
23
+ assembleMethodSymbol,
24
+ attributeObserverSymbol,
25
+ registerCustomElement,
24
26
  } from "../../dom/customelement.mjs";
25
- import {findTargetElementFromEvent} from "../../dom/events.mjs";
26
- import {isFunction} from "../../types/is.mjs";
27
- import {ATTRIBUTE_BUTTON_CLASS} from "./constants.mjs";
28
- import {ButtonStyleSheet} from "./stylesheet/button.mjs";
29
- import {RippleStyleSheet} from "../stylesheet/ripple.mjs";
30
- import {fireCustomEvent} from "../../dom/events.mjs";
27
+ import { findTargetElementFromEvent } from "../../dom/events.mjs";
28
+ import { isFunction } from "../../types/is.mjs";
29
+ import { ATTRIBUTE_BUTTON_CLASS } from "./constants.mjs";
30
+ import { ButtonStyleSheet } from "./stylesheet/button.mjs";
31
+ import { RippleStyleSheet } from "../stylesheet/ripple.mjs";
32
+ import { fireCustomEvent } from "../../dom/events.mjs";
31
33
 
32
- export {Button};
34
+ export { Button };
33
35
 
34
36
  /**
35
37
  * @private
@@ -39,201 +41,203 @@ export const buttonElementSymbol = Symbol("buttonElement");
39
41
 
40
42
  /**
41
43
  * A button
42
- *
44
+ *
43
45
  * @fragments /fragments/components/form/button/
44
- *
46
+ *
45
47
  * @example /examples/components/form/button-simple
46
48
  * @example /examples/components/form/button-with-click-event
47
- *
49
+ *
48
50
  * @since 1.5.0
49
51
  * @copyright schukai GmbH
50
52
  * @summary A beautiful button that can make your life easier and also looks good.
51
53
  * @fires monster-button-clicked this event is triggered when the button is clicked. It contains the field {button} with the button instance.
52
- *
54
+ *
53
55
  */
54
56
  class Button extends CustomControl {
55
- /**
56
- * This method is called by the <code>instanceof</code> operator.
57
- * @return {symbol}
58
- * @since 2.1.0
59
- */
60
- static get [instanceSymbol]() {
61
- return Symbol.for("@schukai/monster/components/form/button@@instance");
62
- }
63
-
64
- /**
65
- *
66
- * @return {Button}
67
- */
68
- [assembleMethodSymbol]() {
69
- super[assembleMethodSymbol]();
70
- initControlReferences.call(this);
71
- initEventHandler.call(this);
72
- return this;
73
- }
74
-
75
- /**
76
- * The <code>Button.click()</code> method simulates a click on the internal button element.
77
- *
78
- * @since 3.27.0
79
- * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/click}
80
- */
81
- click() {
82
- if (this.getOption("disabled") === true) {
83
- return;
84
- }
85
-
86
- if (
87
- this[buttonElementSymbol] &&
88
- isFunction(this[buttonElementSymbol].click)
89
- ) {
90
- this[buttonElementSymbol].click();
91
- }
92
- }
93
-
94
- /**
95
- * The Button.focus() method sets focus on the internal button element.
96
- *
97
- * @since 3.27.0
98
- * @param {Object} options
99
- * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/focus}
100
- */
101
- focus(options) {
102
- if (this.getOption("disabled") === true) {
103
- return;
104
- }
105
-
106
- if (
107
- this[buttonElementSymbol] &&
108
- isFunction(this[buttonElementSymbol].focus)
109
- ) {
110
- this[buttonElementSymbol].focus(options);
111
- }
112
- }
113
-
114
- /**
115
- * The Button.blur() method removes focus from the internal button element.
116
- */
117
- blur() {
118
- if (
119
- this[buttonElementSymbol] &&
120
- isFunction(this[buttonElementSymbol].blur)
121
- ) {
122
- this[buttonElementSymbol].blur();
123
- }
124
- }
125
-
126
- /**
127
- * This method determines which attributes are to be monitored by `attributeChangedCallback()`.
128
- *
129
- * @return {string[]}
130
- */
131
- static get observedAttributes() {
132
- const attributes = super.observedAttributes;
133
- attributes.push(ATTRIBUTE_BUTTON_CLASS);
134
- return attributes;
135
- }
136
-
137
- /**
138
- * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/attachInternals}
139
- * @return {boolean}
140
- */
141
- static get formAssociated() {
142
- return true;
143
- }
144
-
145
- /**
146
- * The current value of the button.
147
- *
148
- * ```javascript
149
- * e = document.querySelector('monster-button');
150
- * console.log(e.value)
151
- * ```
152
- *
153
- * @return {string} The value of the button
154
- */
155
- get value() {
156
- return this.getOption("value");
157
- }
158
-
159
- /**
160
- * Set the value of the button.
161
- *
162
- * ```javascript
163
- * e = document.querySelector('monster-button');
164
- * e.value=1
165
- * ```
166
- *
167
- * @param {string} value
168
- * @return {void}
169
- * @throws {Error} unsupported type
170
- */
171
- set value(value) {
172
- this.setOption("value", value);
173
- try {
174
- this?.setFormValue(this.value);
175
- } catch (e) {
176
- addAttributeToken(this, ATTRIBUTE_ERRORMESSAGE, e.message);
177
- }
178
- }
179
-
180
- /**
181
- * To set the options via the html tag the attribute `data-monster-options` must be used.
182
- * @see {@link https://monsterjs.org/en/doc/#configurate-a-monster-control}
183
- *
184
- * The individual configuration values can be found in the table.
185
- *
186
- * @property {Object} templates Template definitions
187
- * @property {string} templates.main Main template
188
- * @property {Object} labels Labels
189
- * @property {string} labels.button="<slot></slot>" Button label
190
- * @property {Object} actions Callbacks
191
- * @property {string} actions.click="throw Error" Callback when clicked
192
- * @property {Object} classes CSS classes
193
- * @property {string} classes.button="monster-button-primary" CSS class for the button
194
- * @property {boolean} disabled=false Disabled state
195
- * @property {Object} effects Effects
196
- * @property {boolean} effects.ripple=true Ripple effect
197
- */
198
- get defaults() {
199
- return Object.assign({}, super.defaults, {
200
- templates: {
201
- main: getTemplate(),
202
- },
203
- labels: {
204
- button: "<slot></slot>",
205
- },
206
- classes: {
207
- button: "monster-button-primary",
208
- },
209
- disabled: false,
210
- actions: {
211
- click: () => {
212
- throw new Error("the click action is not defined");
213
- },
214
- },
215
- effects: {
216
- ripple: true,
217
- },
218
- value: null,
219
- });
220
- }
221
-
222
- /**
223
- *
224
- * @return {string}
225
- */
226
- static getTag() {
227
- return "monster-button";
228
- }
229
-
230
- /**
231
- *
232
- * @return {CSSStyleSheet[]}
233
- */
234
- static getCSSStyleSheet() {
235
- return [RippleStyleSheet, ButtonStyleSheet];
236
- }
57
+ /**
58
+ * This method is called by the <code>instanceof</code> operator.
59
+ * @return {symbol}
60
+ * @since 2.1.0
61
+ */
62
+ static get [instanceSymbol]() {
63
+ return Symbol.for("@schukai/monster/components/form/button@@instance");
64
+ }
65
+
66
+ /**
67
+ *
68
+ * @return {Button}
69
+ */
70
+ [assembleMethodSymbol]() {
71
+ super[assembleMethodSymbol]();
72
+ initControlReferences.call(this);
73
+ initEventHandler.call(this);
74
+ return this;
75
+ }
76
+
77
+ /**
78
+ * The <code>Button.click()</code> method simulates a click on the internal button element.
79
+ *
80
+ * @since 3.27.0
81
+ * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/click}
82
+ */
83
+ click() {
84
+ if (this.getOption("disabled") === true) {
85
+ return;
86
+ }
87
+
88
+ if (
89
+ this[buttonElementSymbol] &&
90
+ isFunction(this[buttonElementSymbol].click)
91
+ ) {
92
+ this[buttonElementSymbol].click();
93
+ }
94
+ }
95
+
96
+ /**
97
+ * The Button.focus() method sets focus on the internal button element.
98
+ *
99
+ * @since 3.27.0
100
+ * @param {Object} options
101
+ * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/focus}
102
+ */
103
+ focus(options) {
104
+ if (this.getOption("disabled") === true) {
105
+ return;
106
+ }
107
+
108
+ if (
109
+ this[buttonElementSymbol] &&
110
+ isFunction(this[buttonElementSymbol].focus)
111
+ ) {
112
+ this[buttonElementSymbol].focus(options);
113
+ }
114
+ }
115
+
116
+ /**
117
+ * The Button.blur() method removes focus from the internal button element.
118
+ */
119
+ blur() {
120
+ if (
121
+ this[buttonElementSymbol] &&
122
+ isFunction(this[buttonElementSymbol].blur)
123
+ ) {
124
+ this[buttonElementSymbol].blur();
125
+ }
126
+ }
127
+
128
+ /**
129
+ * This method determines which attributes are to be monitored by `attributeChangedCallback()`.
130
+ *
131
+ * @return {string[]}
132
+ */
133
+ static get observedAttributes() {
134
+ const attributes = super.observedAttributes;
135
+ attributes.push(ATTRIBUTE_BUTTON_CLASS);
136
+ return attributes;
137
+ }
138
+
139
+ /**
140
+ * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/attachInternals}
141
+ * @return {boolean}
142
+ */
143
+ static get formAssociated() {
144
+ return true;
145
+ }
146
+
147
+ /**
148
+ * The current value of the button.
149
+ *
150
+ * ```javascript
151
+ * e = document.querySelector('monster-button');
152
+ * console.log(e.value)
153
+ * ```
154
+ *
155
+ * @return {string} The value of the button
156
+ */
157
+ get value() {
158
+ return this.getOption("value");
159
+ }
160
+
161
+ /**
162
+ * Set the value of the button.
163
+ *
164
+ * ```javascript
165
+ * e = document.querySelector('monster-button');
166
+ * e.value=1
167
+ * ```
168
+ *
169
+ * @param {string} value
170
+ * @return {void}
171
+ * @throws {Error} unsupported type
172
+ */
173
+ set value(value) {
174
+ this.setOption("value", value);
175
+ try {
176
+ this?.setFormValue(this.value);
177
+ } catch (e) {
178
+ addAttributeToken(this, ATTRIBUTE_ERRORMESSAGE, e.message);
179
+ }
180
+ }
181
+
182
+ /**
183
+ * To set the options via the html tag the attribute `data-monster-options` must be used.
184
+ * @see {@link https://monsterjs.org/en/doc/#configurate-a-monster-control}
185
+ *
186
+ * The individual configuration values can be found in the table.
187
+ *
188
+ * @property {Object} templates Template definitions
189
+ * @property {string} templates.main Main template
190
+ * @property {Object} labels Labels
191
+ * @property {string} labels.button="<slot></slot>" Button label
192
+ * @property {Object} actions Callbacks
193
+ * @property {string} actions.click="throw Error" Callback when clicked
194
+ * @property {Object} classes CSS classes
195
+ * @property {string} classes.button="monster-button-primary" CSS class for the button
196
+ * @property {boolean} disabled=false Disabled state
197
+ * @property {Object} effects Effects
198
+ * @property {boolean} effects.ripple=true Ripple effect
199
+ * @property {string} type="button" The default behavior of the button. Possible values are: submit, reset, button
200
+ */
201
+ get defaults() {
202
+ return Object.assign({}, super.defaults, {
203
+ templates: {
204
+ main: getTemplate(),
205
+ },
206
+ labels: {
207
+ button: "<slot></slot>",
208
+ },
209
+ classes: {
210
+ button: "monster-button-primary",
211
+ },
212
+ disabled: false,
213
+ actions: {
214
+ click: () => {
215
+ throw new Error("the click action is not defined");
216
+ },
217
+ },
218
+ effects: {
219
+ ripple: true,
220
+ },
221
+ value: null,
222
+ type: "button",
223
+ });
224
+ }
225
+
226
+ /**
227
+ *
228
+ * @return {string}
229
+ */
230
+ static getTag() {
231
+ return "monster-button";
232
+ }
233
+
234
+ /**
235
+ *
236
+ * @return {CSSStyleSheet[]}
237
+ */
238
+ static getCSSStyleSheet() {
239
+ return [RippleStyleSheet, ButtonStyleSheet];
240
+ }
237
241
  }
238
242
 
239
243
  /**
@@ -241,54 +245,54 @@ class Button extends CustomControl {
241
245
  * @return {initEventHandler}
242
246
  */
243
247
  function initEventHandler() {
244
- const self = this;
245
- const button = this[buttonElementSymbol];
248
+ const self = this;
249
+ const button = this[buttonElementSymbol];
246
250
 
247
- const type = "click";
251
+ const type = "click";
248
252
 
249
- button.addEventListener(type, function (event) {
250
- const callback = self.getOption("actions.click");
253
+ button.addEventListener(type, function (event) {
254
+ const callback = self.getOption("actions.click");
251
255
 
252
- fireCustomEvent(self, "monster-button-clicked", {
253
- button: self,
254
- });
256
+ fireCustomEvent(self, "monster-button-clicked", {
257
+ button: self,
258
+ });
255
259
 
256
- if (!isFunction(callback)) {
257
- return;
258
- }
260
+ if (!isFunction(callback)) {
261
+ return;
262
+ }
259
263
 
260
- const element = findTargetElementFromEvent(
261
- event,
262
- ATTRIBUTE_ROLE,
263
- "control",
264
- );
264
+ const element = findTargetElementFromEvent(
265
+ event,
266
+ ATTRIBUTE_ROLE,
267
+ "control",
268
+ );
265
269
 
266
- if (!(element instanceof Node && self.hasNode(element))) {
267
- return;
268
- }
270
+ if (!(element instanceof Node && self.hasNode(element))) {
271
+ return;
272
+ }
269
273
 
270
- callback.call(self, event);
271
- });
274
+ callback.call(self, event);
275
+ });
272
276
 
273
- if (self.getOption("effects.ripple")) {
274
- button.addEventListener("click", createRipple.bind(self));
275
- }
277
+ if (self.getOption("effects.ripple")) {
278
+ button.addEventListener("click", createRipple.bind(self));
279
+ }
276
280
 
277
- // data-monster-options
278
- self[attributeObserverSymbol][ATTRIBUTE_BUTTON_CLASS] = function (value) {
279
- self.setOption("classes.button", value);
280
- };
281
+ // data-monster-options
282
+ self[attributeObserverSymbol][ATTRIBUTE_BUTTON_CLASS] = function (value) {
283
+ self.setOption("classes.button", value);
284
+ };
281
285
 
282
- return this;
286
+ return this;
283
287
  }
284
288
 
285
289
  /**
286
290
  * @private
287
291
  */
288
292
  function initControlReferences() {
289
- this[buttonElementSymbol] = this.shadowRoot.querySelector(
290
- `[${ATTRIBUTE_ROLE}=button]`,
291
- );
293
+ this[buttonElementSymbol] = this.shadowRoot.querySelector(
294
+ `[${ATTRIBUTE_ROLE}=button]`,
295
+ );
292
296
  }
293
297
 
294
298
  /**
@@ -296,10 +300,11 @@ function initControlReferences() {
296
300
  * @return {string}
297
301
  */
298
302
  function getTemplate() {
299
- // language=HTML
300
- return `
303
+ // language=HTML
304
+ return `
301
305
  <div data-monster-role="control" part="control">
302
- <button data-monster-attributes="disabled path:disabled | if:true, class path:classes.button"
306
+ <button data-monster-attributes="disabled path:disabled | if:true, class path:classes.button
307
+ type path:type"
303
308
  data-monster-role="button"
304
309
  part="button"
305
310
  data-monster-replace="path:labels.button"></button>
@@ -307,23 +312,23 @@ function getTemplate() {
307
312
  }
308
313
 
309
314
  function createRipple(event) {
310
- const button = this[buttonElementSymbol];
315
+ const button = this[buttonElementSymbol];
311
316
 
312
- const circle = document.createElement("span");
313
- const diameter = Math.max(button.clientWidth, button.clientHeight);
314
- const radius = diameter / 2;
317
+ const circle = document.createElement("span");
318
+ const diameter = Math.max(button.clientWidth, button.clientHeight);
319
+ const radius = diameter / 2;
315
320
 
316
- circle.style.width = circle.style.height = `${diameter}px`;
317
- circle.style.left = `${event.clientX - button.offsetLeft - radius}px`;
318
- circle.style.top = `${event.clientY - button.offsetTop - radius}px`;
319
- circle.classList.add("monster-fx-ripple");
321
+ circle.style.width = circle.style.height = `${diameter}px`;
322
+ circle.style.left = `${event.clientX - button.offsetLeft - radius}px`;
323
+ circle.style.top = `${event.clientY - button.offsetTop - radius}px`;
324
+ circle.classList.add("monster-fx-ripple");
320
325
 
321
- const ripples = button.getElementsByClassName("monster-fx-ripple");
322
- for (const ripple of ripples) {
323
- ripple.remove();
324
- }
326
+ const ripples = button.getElementsByClassName("monster-fx-ripple");
327
+ for (const ripple of ripples) {
328
+ ripple.remove();
329
+ }
325
330
 
326
- button.appendChild(circle);
331
+ button.appendChild(circle);
327
332
  }
328
333
 
329
334
  registerCustomElement(Button);
@@ -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 { ATTRIBUTE_ROLE } from "../../dom/constants.mjs";
9
17
  import {
@@ -1,8 +1,15 @@
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
  */
7
14
 
8
15
  import { ATTRIBUTE_PREFIX } from "../../dom/constants.mjs";