@schukai/monster 3.64.0 → 3.65.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (122) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/example/components/form/button.mjs +1 -1
  3. package/example/components/form/field-set.mjs +4 -0
  4. package/example/components/form/select.mjs +1 -1
  5. package/package.json +2 -1
  6. package/source/components/datatable/datatable/header.mjs +228 -221
  7. package/source/components/datatable/style/dataset.pcss +1 -0
  8. package/source/components/datatable/style/datatable.pcss +1 -0
  9. package/source/components/datatable/stylesheet/change-button.mjs +8 -4
  10. package/source/components/datatable/stylesheet/column-bar.mjs +8 -4
  11. package/source/components/datatable/stylesheet/dataset.mjs +9 -5
  12. package/source/components/datatable/stylesheet/datasource.mjs +8 -4
  13. package/source/components/datatable/stylesheet/datatable.mjs +9 -5
  14. package/source/components/datatable/stylesheet/embedded-pagination.mjs +8 -4
  15. package/source/components/datatable/stylesheet/filter-button.mjs +8 -4
  16. package/source/components/datatable/stylesheet/filter-controls-defaults.mjs +8 -4
  17. package/source/components/datatable/stylesheet/filter-date-range.mjs +8 -4
  18. package/source/components/datatable/stylesheet/filter-range.mjs +8 -4
  19. package/source/components/datatable/stylesheet/filter.mjs +8 -4
  20. package/source/components/datatable/stylesheet/pagination.mjs +8 -4
  21. package/source/components/datatable/stylesheet/save-button.mjs +8 -4
  22. package/source/components/datatable/stylesheet/select-filter.mjs +8 -4
  23. package/source/components/datatable/stylesheet/status.mjs +8 -4
  24. package/source/components/form/button.mjs +263 -281
  25. package/source/components/form/field-set.mjs +300 -0
  26. package/source/components/form/popper.mjs +13 -480
  27. package/source/components/form/style/field-set.pcss +13 -0
  28. package/source/components/form/stylesheet/action-button.mjs +8 -4
  29. package/source/components/form/stylesheet/api-button.mjs +8 -4
  30. package/source/components/form/stylesheet/button-bar.mjs +9 -5
  31. package/source/components/form/stylesheet/button.mjs +8 -4
  32. package/source/components/form/stylesheet/confirm-button.mjs +9 -5
  33. package/source/components/form/stylesheet/context-error.mjs +8 -4
  34. package/source/components/form/stylesheet/context-help.mjs +8 -4
  35. package/source/components/form/stylesheet/field-set.mjs +31 -0
  36. package/source/components/form/stylesheet/form.mjs +9 -5
  37. package/source/components/form/stylesheet/message-state-button.mjs +8 -4
  38. package/source/components/form/stylesheet/popper-button.mjs +8 -4
  39. package/source/components/form/stylesheet/select.mjs +8 -4
  40. package/source/components/form/stylesheet/state-button.mjs +8 -4
  41. package/source/components/form/stylesheet/toggle-switch.mjs +8 -4
  42. package/source/components/form/stylesheet/tree-select.mjs +8 -4
  43. package/source/components/host/collapse.mjs +14 -516
  44. package/source/components/host/config-manager.mjs +9 -2
  45. package/source/components/host/constants.mjs +9 -4
  46. package/source/components/host/details.mjs +14 -253
  47. package/source/components/host/stylesheet/call-button.mjs +8 -4
  48. package/source/components/host/stylesheet/config-manager.mjs +8 -4
  49. package/source/components/host/stylesheet/host.mjs +9 -5
  50. package/source/components/host/stylesheet/overlay.mjs +9 -5
  51. package/source/components/host/stylesheet/toggle-button.mjs +8 -4
  52. package/source/components/host/stylesheet/viewer.mjs +8 -4
  53. package/source/components/layout/collapse.mjs +542 -0
  54. package/source/components/layout/details.mjs +271 -0
  55. package/source/components/layout/panel.mjs +6 -0
  56. package/source/components/layout/popper.mjs +476 -0
  57. package/source/components/{host → layout}/stylesheet/collapse.mjs +8 -4
  58. package/source/components/{host → layout}/stylesheet/details.mjs +8 -4
  59. package/source/components/layout/stylesheet/panel.mjs +8 -4
  60. package/source/components/{form → layout}/stylesheet/popper.mjs +8 -4
  61. package/source/components/layout/stylesheet/split-panel.mjs +8 -4
  62. package/source/components/layout/stylesheet/tabs.mjs +8 -4
  63. package/source/components/layout/stylesheet/width-toggle.mjs +8 -4
  64. package/source/components/layout/tabs.mjs +3 -3
  65. package/source/components/layout/width-toggle.mjs +3 -3
  66. package/source/components/navigation/style/table-of-content.pcss +84 -0
  67. package/source/components/navigation/stylesheet/table-of-content.mjs +31 -0
  68. package/source/components/navigation/table-of-content.mjs +418 -0
  69. package/source/components/notify/stylesheet/message.mjs +8 -4
  70. package/source/components/notify/stylesheet/notify.mjs +8 -4
  71. package/source/components/state/stylesheet/log.mjs +8 -4
  72. package/source/components/state/stylesheet/state.mjs +9 -5
  73. package/source/components/style/link.pcss +0 -1
  74. package/source/components/style/mixin/typography.pcss +7 -7
  75. package/source/components/style/typography.pcss +1 -1
  76. package/source/components/stylesheet/badge.mjs +8 -4
  77. package/source/components/stylesheet/border.mjs +8 -4
  78. package/source/components/stylesheet/button.mjs +8 -4
  79. package/source/components/stylesheet/card.mjs +8 -4
  80. package/source/components/stylesheet/color.mjs +8 -4
  81. package/source/components/stylesheet/common.mjs +8 -4
  82. package/source/components/stylesheet/control.mjs +8 -4
  83. package/source/components/stylesheet/data-grid.mjs +8 -4
  84. package/source/components/stylesheet/display.mjs +8 -4
  85. package/source/components/stylesheet/floating-ui.mjs +8 -4
  86. package/source/components/stylesheet/form.mjs +8 -4
  87. package/source/components/stylesheet/host.mjs +8 -4
  88. package/source/components/stylesheet/icons.mjs +8 -4
  89. package/source/components/stylesheet/link.mjs +8 -4
  90. package/source/components/stylesheet/mixin/badge.mjs +31 -0
  91. package/source/components/stylesheet/mixin/button.mjs +31 -0
  92. package/source/components/stylesheet/mixin/form.mjs +31 -0
  93. package/source/components/stylesheet/mixin/hover.mjs +31 -0
  94. package/source/components/stylesheet/mixin/icon.mjs +31 -0
  95. package/source/components/stylesheet/mixin/media.mjs +31 -0
  96. package/source/components/stylesheet/mixin/property.mjs +31 -0
  97. package/source/components/stylesheet/mixin/skeleton.mjs +31 -0
  98. package/source/components/stylesheet/mixin/spinner.mjs +31 -0
  99. package/source/components/stylesheet/mixin/typography.mjs +31 -0
  100. package/source/components/stylesheet/normalize.mjs +8 -4
  101. package/source/components/stylesheet/popper.mjs +8 -4
  102. package/source/components/stylesheet/property.mjs +8 -4
  103. package/source/components/stylesheet/ripple.mjs +8 -4
  104. package/source/components/stylesheet/skeleton.mjs +8 -4
  105. package/source/components/stylesheet/space.mjs +8 -4
  106. package/source/components/stylesheet/spinner.mjs +8 -4
  107. package/source/components/stylesheet/table.mjs +8 -4
  108. package/source/components/stylesheet/theme.mjs +8 -4
  109. package/source/components/stylesheet/typography.mjs +9 -5
  110. package/source/components/tree-menu/stylesheet/tree-menu.mjs +8 -4
  111. package/source/dom/ready.mjs +10 -4
  112. package/source/monster.mjs +17 -80
  113. package/source/types/proxyobserver.mjs +4 -2
  114. package/source/types/version.mjs +1 -1
  115. package/test/cases/monster.mjs +1 -1
  116. package/test/web/tests.js +4 -4
  117. package/source/components/form/form-field.mjs +0 -341
  118. package/source/components/form/style/form-field.pcss +0 -4
  119. package/source/components/form/stylesheet/form-field.mjs +0 -27
  120. /package/source/components/{host → layout}/style/collapse.pcss +0 -0
  121. /package/source/components/{host → layout}/style/details.pcss +0 -0
  122. /package/source/components/{form → layout}/style/popper.pcss +0 -0
@@ -0,0 +1,476 @@
1
+ /**
2
+ * Copyright © schukai GmbH and all contributing authors, {{copyRightYear}}. All rights reserved.
3
+ * Node module: @schukai/monster
4
+ *
5
+ * This source code is licensed under the GNU Affero General Public License version 3 (AGPLv3).
6
+ * The full text of the license can be found at: https://www.gnu.org/licenses/agpl-3.0.en.html
7
+ *
8
+ * For those who do not wish to adhere to the AGPLv3, a commercial license is available.
9
+ * Acquiring a commercial license allows you to use this software without complying with the AGPLv3 terms.
10
+ * For more information about purchasing a commercial license, please contact schukai GmbH.
11
+ */
12
+ import {instanceSymbol} from "../../constants.mjs";
13
+ import {
14
+ addAttributeToken,
15
+ removeAttributeToken,
16
+ } from "../../dom/attributes.mjs";
17
+ import {ATTRIBUTE_ROLE} from "../../dom/constants.mjs";
18
+ import {
19
+ assembleMethodSymbol,
20
+ registerCustomElement,
21
+ } from "../../dom/customelement.mjs";
22
+ import {fireCustomEvent} from "../../dom/events.mjs";
23
+ import {getDocument} from "../../dom/util.mjs";
24
+ import {DeadMansSwitch} from "../../util/deadmansswitch.mjs";
25
+ import {Button} from "../form/button.mjs";
26
+ import {STYLE_DISPLAY_MODE_BLOCK} from "../form/constants.mjs";
27
+ import {positionPopper} from "../form/util/floating-ui.mjs";
28
+ import {CustomControl} from "../../dom/customcontrol.mjs";
29
+ import {PopperStyleSheet} from "./stylesheet/popper.mjs";
30
+ import {isArray} from "../../types/is.mjs";
31
+
32
+ export {Popper};
33
+
34
+ /**
35
+ * @private
36
+ * @type {symbol}
37
+ */
38
+ const timerCallbackSymbol = Symbol("timerCallback");
39
+
40
+ /**
41
+ * local symbol
42
+ * @private
43
+ * @type {symbol}
44
+ */
45
+ const resizeObserverSymbol = Symbol("resizeObserver");
46
+
47
+ /**
48
+ * local symbol
49
+ * @private
50
+ * @type {symbol}
51
+ */
52
+ const closeEventHandler = Symbol("closeEventHandler");
53
+
54
+ /**
55
+ * @private
56
+ * @type {symbol}
57
+ */
58
+ const controlElementSymbol = Symbol("controlElement");
59
+
60
+ /**
61
+ * @private
62
+ * @type {symbol}
63
+ */
64
+ const buttonElementSymbol = Symbol("buttonElement");
65
+
66
+ /**
67
+ * local symbol
68
+ * @private
69
+ * @type {symbol}
70
+ */
71
+ const popperElementSymbol = Symbol("popperElement");
72
+
73
+ /**
74
+ * local symbol
75
+ * @private
76
+ * @type {symbol}
77
+ */
78
+ const arrowElementSymbol = Symbol("arrowElement");
79
+
80
+ /**
81
+ * This action callback executes the actions when a button is clicked.
82
+ *
83
+ * @callback Monster.Components.Form~exampleActionCallback
84
+ * @param {Event} e Event
85
+ * @memberOf Monster.Components.Form
86
+ * @this {CustomControl}
87
+ */
88
+
89
+ /**
90
+ * A Popper is a floating UI element that can be shown or hidden.
91
+ *
92
+ * @fragments /fragments/components/layout/popper/
93
+ *
94
+ * @example /examples/components/layout/popper-simple
95
+ * @example /examples/components/layout/popper-click
96
+ *
97
+ * @since 1.66.0
98
+ * @copyright schukai GmbH
99
+ * @summary A beautiful popper that can make your life easier and also looks good.
100
+ * @fires monster-popper-hide fired when the popper is hide.
101
+ * @fires monster-popper-hidden fired when the popper is hidden.
102
+ * @fires monster-popper-open fired when the popper is open.
103
+ * @fires monster-popper-opened fired when the popper is opened.
104
+ *
105
+ */
106
+ class Popper extends CustomControl {
107
+ /**
108
+ * This method is called by the `instanceof` operator.
109
+ * @returns {symbol}
110
+ */
111
+ static get [instanceSymbol]() {
112
+ return Symbol.for("@schukai/monster/components/layout/popper@@instance");
113
+ }
114
+
115
+ /**
116
+ * To set the options via the html tag the attribute `data-monster-options` must be used.
117
+ * @see {@link https://monsterjs.org/en/doc/#configurate-a-monster-control}
118
+ *
119
+ * The individual configuration values can be found in the table.
120
+ *
121
+ * @property {Object} templates The templates for the control.
122
+ * @property {string} templates.main The main template.
123
+ * @property {string} mode The mode of the popper. Possible values are `click`, `enter`, `manual`, `focus`, "auto" or a combination of them.
124
+ * @property {string} content The content of the popper.
125
+ * @property {object} popper The popper options.
126
+ * @property {string} popper.placement The placement of the popper. Possible values are `top`, `bottom`, `left` and `right`.
127
+ * @property {function[]} popper.middleware The middleware functions of the popper.
128
+ * @property {function[]} popper.middlewareInit The middleware init functions of the popper.
129
+ * @property {Object} features The features of the popper.
130
+ * @property {boolean} features.preventPropagateOpenEvents Prevents the open event from being sent.
131
+ */
132
+ get defaults() {
133
+ return Object.assign({}, super.defaults, {
134
+ templates: {
135
+ main: getTemplate(),
136
+ },
137
+ mode: "auto focus",
138
+ content: "<slot></slot>",
139
+ popper: {
140
+ placement: "top",
141
+ middleware: ["autoPlacement", "offset:10", "arrow"],
142
+ },
143
+ features: {
144
+ preventOpenEventSent: false,
145
+ },
146
+ });
147
+ }
148
+
149
+ /**
150
+ *
151
+ * @return {Popper}
152
+ */
153
+ [assembleMethodSymbol]() {
154
+ super[assembleMethodSymbol]();
155
+ initControlReferences.call(this);
156
+ initEventHandler.call(this);
157
+
158
+ return this;
159
+ }
160
+
161
+ /**
162
+ * @return {string}
163
+ */
164
+ static getTag() {
165
+ return "monster-popper";
166
+ }
167
+
168
+ /**
169
+ * @return {Array<CSSStyleSheet>}
170
+ */
171
+ static getCSSStyleSheet() {
172
+ return [PopperStyleSheet];
173
+ }
174
+
175
+ /**
176
+ * @return {void}
177
+ */
178
+ connectedCallback() {
179
+ super.connectedCallback();
180
+
181
+ const document = getDocument();
182
+
183
+ for (const [, type] of Object.entries(["click", "touch"])) {
184
+ // close on outside ui-events
185
+ document.addEventListener(type, this[closeEventHandler]);
186
+ }
187
+
188
+ updatePopper.call(this);
189
+ attachResizeObserver.call(this);
190
+ }
191
+
192
+ /**
193
+ * @return {void}
194
+ */
195
+ disconnectedCallback() {
196
+ super.disconnectedCallback();
197
+
198
+ // close on outside ui-events
199
+ for (const [, type] of Object.entries(["click", "touch"])) {
200
+ document.removeEventListener(type, this[closeEventHandler]);
201
+ }
202
+
203
+ disconnectResizeObserver.call(this);
204
+ }
205
+
206
+ /**
207
+ * @return {Popper}
208
+ */
209
+ showDialog() {
210
+ show.call(this);
211
+ return this;
212
+ }
213
+
214
+ /**
215
+ * @return {Popper}
216
+ */
217
+ hideDialog() {
218
+ hide.call(this);
219
+ return this;
220
+ }
221
+
222
+ /**
223
+ * @return {Popper}
224
+ */
225
+ toggleDialog() {
226
+ if (this[popperElementSymbol].style.display === STYLE_DISPLAY_MODE_BLOCK) {
227
+ this.hideDialog();
228
+ } else {
229
+ this.showDialog();
230
+ }
231
+ return this;
232
+ }
233
+ }
234
+
235
+ /**
236
+ * @private
237
+ * @return {Popper}
238
+ */
239
+ function initEventHandler() {
240
+ this[closeEventHandler] = (event) => {
241
+ const path = event.composedPath();
242
+
243
+ for (const [, element] of Object.entries(path)) {
244
+ if (element === this) {
245
+ return;
246
+ }
247
+ }
248
+ hide.call(this);
249
+ };
250
+
251
+ let modes = null;
252
+ const modeOption = this.getOption("mode");
253
+
254
+ if (typeof modeOption === "string") {
255
+ modes = modeOption.split(" ");
256
+ }
257
+
258
+ if (
259
+ modes === null ||
260
+ modes === undefined ||
261
+ isArray(modes) === false ||
262
+ modes.length === 0
263
+ ) {
264
+ modes = ["manual"];
265
+ }
266
+
267
+ for (const [, mode] of Object.entries(modes)) {
268
+ initEventHandlerByMode.call(this, mode);
269
+ }
270
+
271
+ return this;
272
+ }
273
+
274
+ /**
275
+ * @private
276
+ * @param mode
277
+ * @return {Popper}
278
+ * @throws Error
279
+ */
280
+ function initEventHandlerByMode(mode) {
281
+ switch (mode) {
282
+ case "manual":
283
+ break;
284
+
285
+ case "focus":
286
+ this[buttonElementSymbol].addEventListener("focus", (event) => {
287
+ if (this.getOption("features.preventOpenEventSent") === true) {
288
+ event.preventDefault();
289
+ }
290
+ this.showDialog();
291
+ });
292
+ this[buttonElementSymbol].addEventListener("blur", (event) => {
293
+ if (this.getOption("features.preventOpenEventSent") === true) {
294
+ event.preventDefault();
295
+ }
296
+ this.hideDialog();
297
+ });
298
+ break;
299
+
300
+ case "click":
301
+ this[buttonElementSymbol].addEventListener("click", (event) => {
302
+ if (this.getOption("features.preventOpenEventSent") === true) {
303
+ event.preventDefault();
304
+ }
305
+ this.toggleDialog();
306
+ });
307
+ break;
308
+ case "enter":
309
+ this[buttonElementSymbol].addEventListener("mouseenter", (event) => {
310
+ if (this.getOption("features.preventOpenEventSent") === true) {
311
+ event.preventDefault();
312
+ }
313
+ this.showDialog();
314
+ });
315
+ break;
316
+
317
+ case "auto": // is hover
318
+ this[buttonElementSymbol].addEventListener("mouseenter", (event) => {
319
+ if (this.getOption("features.preventOpenEventSent") === true) {
320
+ event.preventDefault();
321
+ }
322
+ this.showDialog();
323
+ });
324
+ this[buttonElementSymbol].addEventListener("mouseleave", (event) => {
325
+ if (this.getOption("features.preventOpenEventSent") === true) {
326
+ event.preventDefault();
327
+ }
328
+ this.hideDialog();
329
+ });
330
+ break;
331
+ default:
332
+ throw new Error(`Unknown mode ${mode}`);
333
+ }
334
+ }
335
+
336
+ /**
337
+ * @private
338
+ */
339
+ function attachResizeObserver() {
340
+ // against flickering
341
+ this[resizeObserverSymbol] = new ResizeObserver((entries) => {
342
+ if (this[timerCallbackSymbol] instanceof DeadMansSwitch) {
343
+ try {
344
+ this[timerCallbackSymbol].touch();
345
+ return;
346
+ } catch (e) {
347
+ delete this[timerCallbackSymbol];
348
+ }
349
+ }
350
+
351
+ this[timerCallbackSymbol] = new DeadMansSwitch(200, () => {
352
+ updatePopper.call(this);
353
+ });
354
+ });
355
+
356
+ this[resizeObserverSymbol].observe(this.parentElement);
357
+ }
358
+
359
+ function disconnectResizeObserver() {
360
+ if (this[resizeObserverSymbol] instanceof ResizeObserver) {
361
+ this[resizeObserverSymbol].disconnect();
362
+ }
363
+ }
364
+
365
+ /**
366
+ * @private
367
+ */
368
+ function hide() {
369
+ const self = this;
370
+
371
+ fireCustomEvent(self, "monster-popper-hide", {
372
+ self,
373
+ });
374
+
375
+ self[popperElementSymbol].style.display = "none";
376
+ removeAttributeToken(self[controlElementSymbol], "class", "open");
377
+
378
+ setTimeout(() => {
379
+ fireCustomEvent(self, "monster-popper-hidden", {
380
+ self,
381
+ });
382
+ }, 0);
383
+ }
384
+
385
+ /**
386
+ * @private
387
+ * @this PopperButton
388
+ */
389
+ function show() {
390
+ const self = this;
391
+
392
+ if (self.getOption("disabled", false) === true) {
393
+ return;
394
+ }
395
+
396
+ if (self[popperElementSymbol].style.display === STYLE_DISPLAY_MODE_BLOCK) {
397
+ return;
398
+ }
399
+
400
+ fireCustomEvent(self, "monster-popper-open", {
401
+ self,
402
+ });
403
+
404
+ self[popperElementSymbol].style.visibility = "hidden";
405
+ self[popperElementSymbol].style.display = STYLE_DISPLAY_MODE_BLOCK;
406
+
407
+ addAttributeToken(self[controlElementSymbol], "class", "open");
408
+ updatePopper.call(self);
409
+
410
+ setTimeout(() => {
411
+ fireCustomEvent(self, "monster-popper-opened", {
412
+ self,
413
+ });
414
+ }, 0);
415
+ }
416
+
417
+ /**
418
+ * @private
419
+ */
420
+ function updatePopper() {
421
+ if (this[popperElementSymbol].style.display !== STYLE_DISPLAY_MODE_BLOCK) {
422
+ return;
423
+ }
424
+
425
+ if (this.getOption("disabled", false) === true) {
426
+ return;
427
+ }
428
+
429
+ positionPopper.call(
430
+ this,
431
+ this[controlElementSymbol],
432
+ this[popperElementSymbol],
433
+ this.getOption("popper", {}),
434
+ );
435
+ }
436
+
437
+ /**
438
+ * @private
439
+ * @return {Popper}
440
+ */
441
+ function initControlReferences() {
442
+ this[controlElementSymbol] = this.shadowRoot.querySelector(
443
+ `[${ATTRIBUTE_ROLE}=control]`,
444
+ );
445
+ this[buttonElementSymbol] = this.shadowRoot.querySelector(
446
+ `[${ATTRIBUTE_ROLE}=button]`,
447
+ );
448
+ this[popperElementSymbol] = this.shadowRoot.querySelector(
449
+ `[${ATTRIBUTE_ROLE}=popper]`,
450
+ );
451
+ this[arrowElementSymbol] = this.shadowRoot.querySelector(
452
+ `[${ATTRIBUTE_ROLE}=arrow]`,
453
+ );
454
+ return this;
455
+ }
456
+
457
+ /**
458
+ * @private
459
+ * @return {string}
460
+ */
461
+ function getTemplate() {
462
+ // language=HTML
463
+ return `
464
+ <div data-monster-role="control" part="control">
465
+ <slot name="button" data-monster-role="button"></slot>
466
+
467
+ <div data-monster-role="popper" part="popper" tabindex="-1" class="monster-color-primary-1">
468
+ <div data-monster-role="arrow"></div>
469
+ <div part="content" class="flex" data-monster-replace="path:content">
470
+ </div>
471
+ </div>
472
+ </div>
473
+ `;
474
+ }
475
+
476
+ registerCustomElement(Popper);
@@ -1,9 +1,13 @@
1
-
2
1
  /**
3
- * Copyright schukai GmbH and contributors 2024. All Rights Reserved.
2
+ * Copyright © schukai GmbH and all contributing authors, 2024. All rights reserved.
4
3
  * Node module: @schukai/monster
5
- * This file is licensed under the AGPLv3 License.
6
- * 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.
7
11
  */
8
12
 
9
13
  import {addAttributeToken} from "../../../dom/attributes.mjs";
@@ -1,9 +1,13 @@
1
-
2
1
  /**
3
- * Copyright schukai GmbH and contributors 2024. All Rights Reserved.
2
+ * Copyright © schukai GmbH and all contributing authors, 2024. All rights reserved.
4
3
  * Node module: @schukai/monster
5
- * This file is licensed under the AGPLv3 License.
6
- * 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.
7
11
  */
8
12
 
9
13
  import {addAttributeToken} from "../../../dom/attributes.mjs";
@@ -1,9 +1,13 @@
1
-
2
1
  /**
3
- * Copyright schukai GmbH and contributors 2024. All Rights Reserved.
2
+ * Copyright © schukai GmbH and all contributing authors, 2024. All rights reserved.
4
3
  * Node module: @schukai/monster
5
- * This file is licensed under the AGPLv3 License.
6
- * 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.
7
11
  */
8
12
 
9
13
  import {addAttributeToken} from "../../../dom/attributes.mjs";
@@ -1,9 +1,13 @@
1
-
2
1
  /**
3
- * Copyright schukai GmbH and contributors 2024. All Rights Reserved.
2
+ * Copyright © schukai GmbH and all contributing authors, 2024. All rights reserved.
4
3
  * Node module: @schukai/monster
5
- * This file is licensed under the AGPLv3 License.
6
- * 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.
7
11
  */
8
12
 
9
13
  import {addAttributeToken} from "../../../dom/attributes.mjs";
@@ -1,9 +1,13 @@
1
-
2
1
  /**
3
- * Copyright schukai GmbH and contributors 2024. All Rights Reserved.
2
+ * Copyright © schukai GmbH and all contributing authors, 2024. All rights reserved.
4
3
  * Node module: @schukai/monster
5
- * This file is licensed under the AGPLv3 License.
6
- * 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.
7
11
  */
8
12
 
9
13
  import {addAttributeToken} from "../../../dom/attributes.mjs";
@@ -1,9 +1,13 @@
1
-
2
1
  /**
3
- * Copyright schukai GmbH and contributors 2024. All Rights Reserved.
2
+ * Copyright © schukai GmbH and all contributing authors, 2024. All rights reserved.
4
3
  * Node module: @schukai/monster
5
- * This file is licensed under the AGPLv3 License.
6
- * 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.
7
11
  */
8
12
 
9
13
  import {addAttributeToken} from "../../../dom/attributes.mjs";
@@ -1,9 +1,13 @@
1
-
2
1
  /**
3
- * Copyright schukai GmbH and contributors 2024. All Rights Reserved.
2
+ * Copyright © schukai GmbH and all contributing authors, 2024. All rights reserved.
4
3
  * Node module: @schukai/monster
5
- * This file is licensed under the AGPLv3 License.
6
- * 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.
7
11
  */
8
12
 
9
13
  import {addAttributeToken} from "../../../dom/attributes.mjs";
@@ -585,15 +585,15 @@ function show(element) {
585
585
  node.classList.add("active");
586
586
 
587
587
  const openDelay = parseInt(this.getOption("features.openDelay"), 10);
588
- console.log(openDelay)
588
+
589
589
  if(!isNaN(openDelay) && openDelay>0) {
590
590
  node.style.visibility = "hidden";
591
591
 
592
592
  setTimeout(() => {
593
593
  node.style.visibility = "visible";
594
594
  }, openDelay);
595
- }
596
-
595
+ }
596
+
597
597
  // get all data- from button and filter out data-monster-attributes and data-monster-insert
598
598
  const data = {};
599
599
  const mask = [
@@ -51,8 +51,8 @@ const MODE_WIDE = "wide";
51
51
  *
52
52
  * <img src="./images/widthToggle.png">
53
53
  *
54
- * You can create this control either by specifying the HTML tag <monster-WidthToggle />` directly in the HTML or using
55
- * Javascript via the `document.createElement('monster-split-screen');` method.
54
+ * You can create this control either by specifying the HTML tag <monster-width-toggle />` directly in the HTML or using
55
+ * Javascript via the `document.createElement('monster-width-toggle');` method.
56
56
  *
57
57
  * ```html
58
58
  * <monster-width-toggle></monster-width-toggle>
@@ -85,7 +85,7 @@ class WidthToggle extends CustomElement {
85
85
  * @returns {symbol}
86
86
  */
87
87
  static get [instanceSymbol]() {
88
- return Symbol.for("@schukai/monster/components/layout/WidthToggle");
88
+ return Symbol.for("@schukai/monster/components/layout/width-toggle@@instance");
89
89
  }
90
90
 
91
91
  /**