@schukai/monster 3.53.0 → 3.55.0

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 (72) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/package.json +1 -1
  3. package/source/components/datatable/datasource/rest.mjs +358 -309
  4. package/source/components/datatable/datatable/header.mjs +8 -0
  5. package/source/components/datatable/datatable.mjs +606 -557
  6. package/source/components/datatable/embedded-pagination.mjs +50 -62
  7. package/source/components/datatable/filter/util.mjs +122 -0
  8. package/source/components/datatable/filter.mjs +893 -708
  9. package/source/components/datatable/pagination.mjs +335 -310
  10. package/source/components/datatable/status.mjs +248 -0
  11. package/source/components/datatable/style/datatable.pcss +1 -0
  12. package/source/components/datatable/style/embedded-pagination.pcss +59 -2
  13. package/source/components/datatable/style/filter.pcss +4 -0
  14. package/source/components/datatable/style/pagination.pcss +28 -4
  15. package/source/components/datatable/style/status.pcss +42 -0
  16. package/source/components/datatable/stylesheet/column-bar.mjs +1 -1
  17. package/source/components/datatable/stylesheet/datatable.mjs +1 -1
  18. package/source/components/datatable/stylesheet/filter-button.mjs +1 -1
  19. package/source/components/datatable/stylesheet/filter.mjs +1 -1
  20. package/source/components/datatable/stylesheet/pagination.mjs +1 -1
  21. package/source/components/datatable/stylesheet/status.mjs +27 -0
  22. package/source/components/form/action-button.mjs +1 -1
  23. package/source/components/form/api-button.mjs +1 -1
  24. package/source/components/form/button-bar.mjs +1 -1
  25. package/source/components/form/button.mjs +1 -1
  26. package/source/components/form/confirm-button.mjs +1 -1
  27. package/source/components/form/context-error.mjs +275 -0
  28. package/source/components/form/context-help.mjs +5 -5
  29. package/source/components/form/form.mjs +2 -2
  30. package/source/components/form/message-state-button.mjs +2 -2
  31. package/source/components/form/popper-button.mjs +7 -4
  32. package/source/components/form/popper.mjs +317 -309
  33. package/source/components/form/reload.mjs +1 -1
  34. package/source/components/form/select.mjs +9 -3
  35. package/source/components/form/shadow-reload.mjs +1 -1
  36. package/source/components/form/state-button.mjs +2 -1
  37. package/source/components/form/style/context-error.pcss +32 -0
  38. package/source/components/form/style/context-help.pcss +22 -5
  39. package/source/components/form/stylesheet/context-error.mjs +27 -0
  40. package/source/components/form/stylesheet/context-help.mjs +1 -1
  41. package/source/components/form/stylesheet/select.mjs +1 -1
  42. package/source/components/form/stylesheet/tabs.mjs +1 -1
  43. package/source/components/form/tabs.mjs +757 -707
  44. package/source/components/form/template.mjs +1 -1
  45. package/source/components/form/tree-select.mjs +1 -1
  46. package/source/components/host/collapse.mjs +22 -5
  47. package/source/components/host/config-manager.mjs +39 -2
  48. package/source/components/host/host.mjs +14 -0
  49. package/source/components/host/stylesheet/call-button.mjs +1 -1
  50. package/source/components/host/stylesheet/overlay.mjs +1 -1
  51. package/source/components/host/stylesheet/toggle-button.mjs +1 -1
  52. package/source/components/host/util.mjs +6 -1
  53. package/source/components/notify/stylesheet/message.mjs +1 -1
  54. package/source/components/stylesheet/icons.mjs +1 -1
  55. package/source/data/transformer.mjs +39 -42
  56. package/source/dom/customelement.mjs +1 -1
  57. package/source/dom/updater.mjs +700 -688
  58. package/source/dom/util.mjs +42 -0
  59. package/source/i18n/providers/embed.mjs +3 -3
  60. package/source/monster.mjs +6 -0
  61. package/source/text/formatter.mjs +2 -2
  62. package/source/types/observer.mjs +1 -1
  63. package/source/types/version.mjs +1 -1
  64. package/source/util/sleep.mjs +18 -0
  65. package/test/cases/components/form/button.mjs +2 -1
  66. package/test/cases/components/form/select.mjs +1 -1
  67. package/test/cases/components/form/tree-select.mjs +1 -1
  68. package/test/cases/data/transformer.mjs +2 -2
  69. package/test/cases/dom/updater.mjs +67 -46
  70. package/test/cases/monster.mjs +1 -1
  71. package/test/web/test.html +2 -2
  72. package/test/web/tests.js +18 -13
@@ -4,27 +4,27 @@
4
4
  * This file is licensed under the AGPLv3 License.
5
5
  * License text available at https://www.gnu.org/licenses/agpl-3.0.en.html
6
6
  */
7
- import { instanceSymbol } from "../../constants.mjs";
7
+ import {instanceSymbol} from "../../constants.mjs";
8
8
  import {
9
- addAttributeToken,
10
- removeAttributeToken,
9
+ addAttributeToken,
10
+ removeAttributeToken,
11
11
  } from "../../dom/attributes.mjs";
12
- import { ATTRIBUTE_ROLE } from "../../dom/constants.mjs";
12
+ import {ATTRIBUTE_ROLE} from "../../dom/constants.mjs";
13
13
  import {
14
- assembleMethodSymbol,
15
- registerCustomElement,
14
+ assembleMethodSymbol,
15
+ registerCustomElement,
16
16
  } from "../../dom/customelement.mjs";
17
- import { fireCustomEvent } from "../../dom/events.mjs";
18
- import { getDocument } from "../../dom/util.mjs";
19
- import { DeadMansSwitch } from "../../util/deadmansswitch.mjs";
20
- import { Button } from "./button.mjs";
21
- import { STYLE_DISPLAY_MODE_BLOCK } from "./constants.mjs";
22
- import { positionPopper } from "./util/floating-ui.mjs";
23
- import { CustomControl } from "../../dom/customcontrol.mjs";
24
- import { PopperStyleSheet } from "./stylesheet/popper.mjs";
25
- import { isArray } from "../../types/is.mjs";
26
-
27
- export { Popper };
17
+ import {fireCustomEvent} from "../../dom/events.mjs";
18
+ import {getDocument} from "../../dom/util.mjs";
19
+ import {DeadMansSwitch} from "../../util/deadmansswitch.mjs";
20
+ import {Button} from "./button.mjs";
21
+ import {STYLE_DISPLAY_MODE_BLOCK} from "./constants.mjs";
22
+ import {positionPopper} from "./util/floating-ui.mjs";
23
+ import {CustomControl} from "../../dom/customcontrol.mjs";
24
+ import {PopperStyleSheet} from "./stylesheet/popper.mjs";
25
+ import {isArray} from "../../types/is.mjs";
26
+
27
+ export {Popper};
28
28
 
29
29
  /**
30
30
  * @private
@@ -116,277 +116,285 @@ const arrowElementSymbol = Symbol("arrowElement");
116
116
  * @summary A popper button
117
117
  */
118
118
  class Popper extends CustomControl {
119
- /**
120
- * This method is called by the `instanceof` operator.
121
- * @returns {symbol}
122
- */
123
- static get [instanceSymbol]() {
124
- return Symbol.for("@schukai/component-form/popper@@instance");
125
- }
126
-
127
- /**
128
- * To set the options via the html tag the attribute `data-monster-options` must be used.
129
- * @see {@link https://monsterjs.org/en/doc/#configurate-a-monster-control}
130
- *
131
- * The individual configuration values can be found in the table.
132
- *
133
- * @property {Object} templates - The templates for the control.
134
- * @property {string} templates.main - The main template.
135
- * @property {string} mode - The mode of the popper. Possible values are `click`, `enter` `hover`, `manual`, `focus`, "auto" or a combination of them.
136
- * @property {string} content - The content of the popper.
137
- * @property {object} popper - The popper options.
138
- * @property {string} popper.placement - The placement of the popper. Possible values are `top`, `bottom`, `left` and `right`.
139
- * @property {Array<function>} popper.middleware - The middleware functions of the popper.
140
- * @property {Array<function>} popper.middlewareInit - The middleware init functions of the popper.
141
- * @property {Object} features - The features of the popper.
142
- * @property {boolean} features.preventPropagateOpenEvents - Prevents the open event from being sent.
143
- * @extends {Button}
144
- */
145
- get defaults() {
146
- return Object.assign({}, super.defaults, {
147
- templates: {
148
- main: getTemplate(),
149
- },
150
- mode: "hover focus",
151
- content: "<slot>Should I Stay or Should I Go?</slot>",
152
- popper: {
153
- placement: "top",
154
- middleware: ["autoPlacement", "offset:10", "arrow"],
155
- },
156
- features: {
157
- preventOpenEventSent: false,
158
- },
159
- });
160
- }
161
-
162
- /**
163
- *
164
- * @return {Monster.Components.Form.Popper}
165
- */
166
- [assembleMethodSymbol]() {
167
- super[assembleMethodSymbol]();
168
- initControlReferences.call(this);
169
- initEventhandler.call(this);
170
-
171
- return this;
172
- }
173
-
174
- /**
175
- * @return {string}
176
- */
177
- static getTag() {
178
- return "monster-popper";
179
- }
180
-
181
- /**
182
- * @return {Array<CSSStyleSheet>}
183
- */
184
- static getCSSStyleSheet() {
185
- return [PopperStyleSheet];
186
- }
187
-
188
- /**
189
- * @return {void}
190
- */
191
- connectedCallback() {
192
- super.connectedCallback();
193
-
194
- const document = getDocument();
195
-
196
- for (const [, type] of Object.entries(["click", "touch"])) {
197
- // close on outside ui-events
198
- document.addEventListener(type, this[closeEventHandler]);
199
- }
200
-
201
- updatePopper.call(this);
202
- attachResizeObserver.call(this);
203
- }
204
-
205
- /**
206
- * @return {void}
207
- */
208
- disconnectedCallback() {
209
- super.disconnectedCallback();
210
-
211
- // close on outside ui-events
212
- for (const [, type] of Object.entries(["click", "touch"])) {
213
- document.removeEventListener(type, this[closeEventHandler]);
214
- }
215
-
216
- disconnectResizeObserver.call(this);
217
- }
218
-
219
- /**
220
- *
221
- * @return {Monster.Components.Form.Popper}
222
- */
223
- showDialog() {
224
- show.call(this);
225
- return this;
226
- }
227
-
228
- /**
229
- *
230
- * @return {Monster.Components.Form.Popper}
231
- */
232
- hideDialog() {
233
- hide.call(this);
234
- return this;
235
- }
236
-
237
- /**
238
- *
239
- * @return {Monster.Components.Form.Popper}
240
- */
241
- toggleDialog() {
242
- if (this[popperElementSymbol].style.display === STYLE_DISPLAY_MODE_BLOCK) {
243
- this.hideDialog();
244
- } else {
245
- this.showDialog();
246
- }
247
- return this;
248
- }
119
+ /**
120
+ * This method is called by the `instanceof` operator.
121
+ * @returns {symbol}
122
+ */
123
+ static get [instanceSymbol]() {
124
+ return Symbol.for("@schukai/monster/components/form/popper@@instance");
125
+ }
126
+
127
+ /**
128
+ * To set the options via the html tag the attribute `data-monster-options` must be used.
129
+ * @see {@link https://monsterjs.org/en/doc/#configurate-a-monster-control}
130
+ *
131
+ * The individual configuration values can be found in the table.
132
+ *
133
+ * @property {Object} templates - The templates for the control.
134
+ * @property {string} templates.main - The main template.
135
+ * @property {string} mode - The mode of the popper. Possible values are `click`, `enter` `hover`, `manual`, `focus`, "auto" or a combination of them.
136
+ * @property {string} content - The content of the popper.
137
+ * @property {object} popper - The popper options.
138
+ * @property {string} popper.placement - The placement of the popper. Possible values are `top`, `bottom`, `left` and `right`.
139
+ * @property {Array<function>} popper.middleware - The middleware functions of the popper.
140
+ * @property {Array<function>} popper.middlewareInit - The middleware init functions of the popper.
141
+ * @property {Object} features - The features of the popper.
142
+ * @property {boolean} features.preventPropagateOpenEvents - Prevents the open event from being sent.
143
+ * @extends {Button}
144
+ */
145
+ get defaults() {
146
+ return Object.assign({}, super.defaults, {
147
+ templates: {
148
+ main: getTemplate(),
149
+ },
150
+ mode: "hover focus",
151
+ content: "<slot>Should I Stay or Should I Go?</slot>",
152
+ popper: {
153
+ placement: "top",
154
+ middleware: ["autoPlacement", "offset:10", "arrow"],
155
+ },
156
+ features: {
157
+ preventOpenEventSent: false,
158
+ },
159
+ });
160
+ }
161
+
162
+ /**
163
+ *
164
+ * @return {Monster.Components.Form.Popper}
165
+ */
166
+ [assembleMethodSymbol]() {
167
+ super[assembleMethodSymbol]();
168
+ initControlReferences.call(this);
169
+ initEventHandler.call(this);
170
+
171
+ return this;
172
+ }
173
+
174
+ /**
175
+ * @return {string}
176
+ */
177
+ static getTag() {
178
+ return "monster-popper";
179
+ }
180
+
181
+ /**
182
+ * @return {Array<CSSStyleSheet>}
183
+ */
184
+ static getCSSStyleSheet() {
185
+ return [PopperStyleSheet];
186
+ }
187
+
188
+ /**
189
+ * @return {void}
190
+ */
191
+ connectedCallback() {
192
+ super.connectedCallback();
193
+
194
+ const document = getDocument();
195
+
196
+ for (const [, type] of Object.entries(["click", "touch"])) {
197
+ // close on outside ui-events
198
+ document.addEventListener(type, this[closeEventHandler]);
199
+ }
200
+
201
+ updatePopper.call(this);
202
+ attachResizeObserver.call(this);
203
+ }
204
+
205
+ /**
206
+ * @return {void}
207
+ */
208
+ disconnectedCallback() {
209
+ super.disconnectedCallback();
210
+
211
+ // close on outside ui-events
212
+ for (const [, type] of Object.entries(["click", "touch"])) {
213
+ document.removeEventListener(type, this[closeEventHandler]);
214
+ }
215
+
216
+ disconnectResizeObserver.call(this);
217
+ }
218
+
219
+ /**
220
+ *
221
+ * @return {Monster.Components.Form.Popper}
222
+ */
223
+ showDialog() {
224
+ show.call(this);
225
+ return this;
226
+ }
227
+
228
+ /**
229
+ *
230
+ * @return {Monster.Components.Form.Popper}
231
+ */
232
+ hideDialog() {
233
+ hide.call(this);
234
+ return this;
235
+ }
236
+
237
+ /**
238
+ *
239
+ * @return {Monster.Components.Form.Popper}
240
+ */
241
+ toggleDialog() {
242
+ if (this[popperElementSymbol].style.display === STYLE_DISPLAY_MODE_BLOCK) {
243
+ this.hideDialog();
244
+ } else {
245
+ this.showDialog();
246
+ }
247
+ return this;
248
+ }
249
249
  }
250
250
 
251
251
  /**
252
252
  * @private
253
253
  * @return {Monster.Components.Form.Popper}
254
254
  */
255
- function initEventhandler() {
256
- this[closeEventHandler] = (event) => {
257
- const path = event.composedPath();
258
-
259
- for (const [, element] of Object.entries(path)) {
260
- if (element === this) {
261
- return;
262
- }
263
- }
264
- hide.call(this);
265
- };
266
-
267
- let modes = null;
268
- const modeOption = this.getOption("mode");
269
- if (typeof modeOption === "string") {
270
- modes = modeOption.split(" ");
271
- }
272
-
273
- if (
274
- modes === null ||
275
- modes === undefined ||
276
- isArray(modes) === false ||
277
- modes.length === 0
278
- ) {
279
- modes = ["manual"];
280
- }
281
-
282
- for (const [, mode] of Object.entries(modes)) {
283
- initEventHandlerByMode.call(this, mode);
284
- }
285
-
286
- return this;
255
+ function initEventHandler() {
256
+ this[closeEventHandler] = (event) => {
257
+ const path = event.composedPath();
258
+
259
+ for (const [, element] of Object.entries(path)) {
260
+ if (element === this) {
261
+ return;
262
+ }
263
+ }
264
+ hide.call(this);
265
+ };
266
+
267
+ let modes = null;
268
+ const modeOption = this.getOption("mode");
269
+ if (typeof modeOption === "string") {
270
+ modes = modeOption.split(" ");
271
+ }
272
+
273
+ if (
274
+ modes === null ||
275
+ modes === undefined ||
276
+ isArray(modes) === false ||
277
+ modes.length === 0
278
+ ) {
279
+ modes = ["manual"];
280
+ }
281
+
282
+ for (const [, mode] of Object.entries(modes)) {
283
+ initEventHandlerByMode.call(this, mode);
284
+ }
285
+
286
+ return this;
287
287
  }
288
288
 
289
+ /**
290
+ * @private
291
+ * @param mode
292
+ * @return {Monster.Components.Form.Popper}
293
+ * @throws Error
294
+ */
289
295
  function initEventHandlerByMode(mode) {
290
- switch (mode) {
291
- case "manual":
292
- break;
293
-
294
- case "focus":
295
- this[buttonElementSymbol].addEventListener("focus", (event) => {
296
- if (this.getOption("features.preventOpenEventSent") === true) {
297
- event.preventDefault();
298
- }
299
- this.showDialog();
300
- });
301
- this[buttonElementSymbol].addEventListener("blur", (event) => {
302
- if (this.getOption("features.preventOpenEventSent") === true) {
303
- event.preventDefault();
304
- }
305
- this.hideDialog();
306
- });
307
- break;
308
-
309
- case "click":
310
- this[buttonElementSymbol].addEventListener("click", (event) => {
311
- if (this.getOption("features.preventOpenEventSent") === true) {
312
- event.preventDefault();
313
- }
314
- this.toggleDialog();
315
- });
316
- break;
317
- case "enter":
318
- this[buttonElementSymbol].addEventListener("mouseenter", (event) => {
319
- if (this.getOption("features.preventOpenEventSent") === true) {
320
- event.preventDefault();
321
- }
322
- this.showDialog();
323
- });
324
- break;
325
-
326
- case "auto": // is hover
327
- this[buttonElementSymbol].addEventListener("mouseenter", (event) => {
328
- if (this.getOption("features.preventOpenEventSent") === true) {
329
- event.preventDefault();
330
- }
331
- this.showDialog();
332
- });
333
- this[buttonElementSymbol].addEventListener("mouseleave", (event) => {
334
- if (this.getOption("features.preventOpenEventSent") === true) {
335
- event.preventDefault();
336
- }
337
- this.hideDialog();
338
- });
339
- break;
340
- }
296
+ switch (mode) {
297
+ case "manual":
298
+ break;
299
+
300
+ case "focus":
301
+ this[buttonElementSymbol].addEventListener("focus", (event) => {
302
+ if (this.getOption("features.preventOpenEventSent") === true) {
303
+ event.preventDefault();
304
+ }
305
+ this.showDialog();
306
+ });
307
+ this[buttonElementSymbol].addEventListener("blur", (event) => {
308
+ if (this.getOption("features.preventOpenEventSent") === true) {
309
+ event.preventDefault();
310
+ }
311
+ this.hideDialog();
312
+ });
313
+ break;
314
+
315
+ case "click":
316
+ this[buttonElementSymbol].addEventListener("click", (event) => {
317
+ if (this.getOption("features.preventOpenEventSent") === true) {
318
+ event.preventDefault();
319
+ }
320
+ this.toggleDialog();
321
+ });
322
+ break;
323
+ case "enter":
324
+ this[buttonElementSymbol].addEventListener("mouseenter", (event) => {
325
+ if (this.getOption("features.preventOpenEventSent") === true) {
326
+ event.preventDefault();
327
+ }
328
+ this.showDialog();
329
+ });
330
+ break;
331
+
332
+ case "auto": // is hover
333
+ this[buttonElementSymbol].addEventListener("mouseenter", (event) => {
334
+ if (this.getOption("features.preventOpenEventSent") === true) {
335
+ event.preventDefault();
336
+ }
337
+ this.showDialog();
338
+ });
339
+ this[buttonElementSymbol].addEventListener("mouseleave", (event) => {
340
+ if (this.getOption("features.preventOpenEventSent") === true) {
341
+ event.preventDefault();
342
+ }
343
+ this.hideDialog();
344
+ });
345
+ break;
346
+ default:
347
+ throw new Error(`Unknown mode ${mode}`);
348
+ }
341
349
  }
342
350
 
343
351
  /**
344
352
  * @private
345
353
  */
346
354
  function attachResizeObserver() {
347
- // against flickering
348
- this[resizeObserverSymbol] = new ResizeObserver((entries) => {
349
- if (this[timerCallbackSymbol] instanceof DeadMansSwitch) {
350
- try {
351
- this[timerCallbackSymbol].touch();
352
- return;
353
- } catch (e) {
354
- delete this[timerCallbackSymbol];
355
- }
356
- }
357
-
358
- this[timerCallbackSymbol] = new DeadMansSwitch(200, () => {
359
- updatePopper.call(this);
360
- });
361
- });
362
-
363
- this[resizeObserverSymbol].observe(this.parentElement);
355
+ // against flickering
356
+ this[resizeObserverSymbol] = new ResizeObserver((entries) => {
357
+ if (this[timerCallbackSymbol] instanceof DeadMansSwitch) {
358
+ try {
359
+ this[timerCallbackSymbol].touch();
360
+ return;
361
+ } catch (e) {
362
+ delete this[timerCallbackSymbol];
363
+ }
364
+ }
365
+
366
+ this[timerCallbackSymbol] = new DeadMansSwitch(200, () => {
367
+ updatePopper.call(this);
368
+ });
369
+ });
370
+
371
+ this[resizeObserverSymbol].observe(this.parentElement);
364
372
  }
365
373
 
366
374
  function disconnectResizeObserver() {
367
- if (this[resizeObserverSymbol] instanceof ResizeObserver) {
368
- this[resizeObserverSymbol].disconnect();
369
- }
375
+ if (this[resizeObserverSymbol] instanceof ResizeObserver) {
376
+ this[resizeObserverSymbol].disconnect();
377
+ }
370
378
  }
371
379
 
372
380
  /**
373
381
  * @private
374
382
  */
375
383
  function hide() {
376
- const self = this;
384
+ const self = this;
377
385
 
378
- fireCustomEvent(self, "monster-popper-hide", {
379
- self,
380
- });
386
+ fireCustomEvent(self, "monster-popper-hide", {
387
+ self,
388
+ });
381
389
 
382
- self[popperElementSymbol].style.display = "none";
383
- removeAttributeToken(self[controlElementSymbol], "class", "open");
390
+ self[popperElementSymbol].style.display = "none";
391
+ removeAttributeToken(self[controlElementSymbol], "class", "open");
384
392
 
385
- setTimeout(() => {
386
- fireCustomEvent(self, "monster-popper-hidden", {
387
- self,
388
- });
389
- }, 0);
393
+ setTimeout(() => {
394
+ fireCustomEvent(self, "monster-popper-hidden", {
395
+ self,
396
+ });
397
+ }, 0);
390
398
  }
391
399
 
392
400
  /**
@@ -394,51 +402,51 @@ function hide() {
394
402
  * @this PopperButton
395
403
  */
396
404
  function show() {
397
- const self = this;
405
+ const self = this;
398
406
 
399
- if (self.getOption("disabled", false) === true) {
400
- return;
401
- }
407
+ if (self.getOption("disabled", false) === true) {
408
+ return;
409
+ }
402
410
 
403
- if (self[popperElementSymbol].style.display === STYLE_DISPLAY_MODE_BLOCK) {
404
- return;
405
- }
411
+ if (self[popperElementSymbol].style.display === STYLE_DISPLAY_MODE_BLOCK) {
412
+ return;
413
+ }
406
414
 
407
- fireCustomEvent(self, "monster-popper-open", {
408
- self,
409
- });
415
+ fireCustomEvent(self, "monster-popper-open", {
416
+ self,
417
+ });
410
418
 
411
- self[popperElementSymbol].style.visibility = "hidden";
412
- self[popperElementSymbol].style.display = STYLE_DISPLAY_MODE_BLOCK;
419
+ self[popperElementSymbol].style.visibility = "hidden";
420
+ self[popperElementSymbol].style.display = STYLE_DISPLAY_MODE_BLOCK;
413
421
 
414
- addAttributeToken(self[controlElementSymbol], "class", "open");
415
- updatePopper.call(self);
422
+ addAttributeToken(self[controlElementSymbol], "class", "open");
423
+ updatePopper.call(self);
416
424
 
417
- setTimeout(() => {
418
- fireCustomEvent(self, "monster-popper-opened", {
419
- self,
420
- });
421
- }, 0);
425
+ setTimeout(() => {
426
+ fireCustomEvent(self, "monster-popper-opened", {
427
+ self,
428
+ });
429
+ }, 0);
422
430
  }
423
431
 
424
432
  /**
425
433
  * @private
426
434
  */
427
435
  function updatePopper() {
428
- if (this[popperElementSymbol].style.display !== STYLE_DISPLAY_MODE_BLOCK) {
429
- return;
430
- }
431
-
432
- if (this.getOption("disabled", false) === true) {
433
- return;
434
- }
435
-
436
- positionPopper.call(
437
- this,
438
- this[controlElementSymbol],
439
- this[popperElementSymbol],
440
- this.getOption("popper", {}),
441
- );
436
+ if (this[popperElementSymbol].style.display !== STYLE_DISPLAY_MODE_BLOCK) {
437
+ return;
438
+ }
439
+
440
+ if (this.getOption("disabled", false) === true) {
441
+ return;
442
+ }
443
+
444
+ positionPopper.call(
445
+ this,
446
+ this[controlElementSymbol],
447
+ this[popperElementSymbol],
448
+ this.getOption("popper", {}),
449
+ );
442
450
  }
443
451
 
444
452
  /**
@@ -446,19 +454,19 @@ function updatePopper() {
446
454
  * @return {Monster.Components.Form.Popper}
447
455
  */
448
456
  function initControlReferences() {
449
- this[controlElementSymbol] = this.shadowRoot.querySelector(
450
- `[${ATTRIBUTE_ROLE}=control]`,
451
- );
452
- this[buttonElementSymbol] = this.shadowRoot.querySelector(
453
- `[${ATTRIBUTE_ROLE}=button]`,
454
- );
455
- this[popperElementSymbol] = this.shadowRoot.querySelector(
456
- `[${ATTRIBUTE_ROLE}=popper]`,
457
- );
458
- this[arrowElementSymbol] = this.shadowRoot.querySelector(
459
- `[${ATTRIBUTE_ROLE}=arrow]`,
460
- );
461
- return this;
457
+ this[controlElementSymbol] = this.shadowRoot.querySelector(
458
+ `[${ATTRIBUTE_ROLE}=control]`,
459
+ );
460
+ this[buttonElementSymbol] = this.shadowRoot.querySelector(
461
+ `[${ATTRIBUTE_ROLE}=button]`,
462
+ );
463
+ this[popperElementSymbol] = this.shadowRoot.querySelector(
464
+ `[${ATTRIBUTE_ROLE}=popper]`,
465
+ );
466
+ this[arrowElementSymbol] = this.shadowRoot.querySelector(
467
+ `[${ATTRIBUTE_ROLE}=arrow]`,
468
+ );
469
+ return this;
462
470
  }
463
471
 
464
472
  /**
@@ -466,8 +474,8 @@ function initControlReferences() {
466
474
  * @return {string}
467
475
  */
468
476
  function getTemplate() {
469
- // language=HTML
470
- return `
477
+ // language=HTML
478
+ return `
471
479
  <div data-monster-role="control" part="control">
472
480
  <slot name="button" data-monster-role="button"></slot>
473
481