@angelscmf/front 1.0.29 → 1.0.31

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 (103) hide show
  1. package/dist/AngelsFrontAnimationLibrary.d.ts +1 -1
  2. package/dist/AngelsFrontAnimationLibrary.js +81 -33
  3. package/dist/AngelsFrontAnimationLibrary.js.map +1 -1
  4. package/dist/{AngelsFrontLoader.cjs → AngelsFrontAnimationLibrary.mjs} +57 -64
  5. package/dist/AngelsFrontAnimationLibrary.mjs.map +1 -0
  6. package/dist/AngelsFrontApplication.d.mts +11 -0
  7. package/dist/AngelsFrontApplication.d.ts +3 -2
  8. package/dist/AngelsFrontApplication.js +283 -28
  9. package/dist/AngelsFrontApplication.js.map +1 -1
  10. package/dist/AngelsFrontApplication.mjs +365 -0
  11. package/dist/AngelsFrontApplication.mjs.map +1 -0
  12. package/dist/AngelsFrontDOMLibrary.d.mts +13 -0
  13. package/dist/AngelsFrontDOMLibrary.d.ts +11 -7
  14. package/dist/AngelsFrontDOMLibrary.js +345 -21
  15. package/dist/AngelsFrontDOMLibrary.js.map +1 -1
  16. package/dist/AngelsFrontDOMLibrary.mjs +391 -0
  17. package/dist/AngelsFrontDOMLibrary.mjs.map +1 -0
  18. package/dist/AngelsFrontElement.d.mts +15 -0
  19. package/dist/AngelsFrontElement.d.ts +15 -0
  20. package/dist/{AngelsFrontAnimationLibrary.cjs → AngelsFrontElement.js} +80 -68
  21. package/dist/AngelsFrontElement.js.map +1 -0
  22. package/dist/AngelsFrontElement.mjs +195 -0
  23. package/dist/AngelsFrontElement.mjs.map +1 -0
  24. package/dist/AngelsFrontLoader.js +613 -32
  25. package/dist/AngelsFrontLoader.js.map +1 -1
  26. package/dist/AngelsFrontLoader.mjs +789 -0
  27. package/dist/AngelsFrontLoader.mjs.map +1 -0
  28. package/dist/{AngelsFrontMod.d.cts → AngelsFrontMod.d.mts} +4 -3
  29. package/dist/AngelsFrontMod.d.ts +4 -3
  30. package/dist/AngelsFrontMod.js +40 -17
  31. package/dist/AngelsFrontMod.js.map +1 -1
  32. package/dist/{AngelsFrontComponent.js → AngelsFrontMod.mjs} +18 -37
  33. package/dist/AngelsFrontMod.mjs.map +1 -0
  34. package/dist/AngelsFrontPage.d.mts +11 -0
  35. package/dist/AngelsFrontPage.d.ts +3 -2
  36. package/dist/AngelsFrontPage.js +283 -28
  37. package/dist/AngelsFrontPage.js.map +1 -1
  38. package/dist/AngelsFrontPage.mjs +365 -0
  39. package/dist/AngelsFrontPage.mjs.map +1 -0
  40. package/dist/AngelsFrontWidgetClass.d.mts +15 -0
  41. package/dist/AngelsFrontWidgetClass.d.ts +15 -0
  42. package/dist/AngelsFrontWidgetClass.js +383 -0
  43. package/dist/AngelsFrontWidgetClass.js.map +1 -0
  44. package/dist/AngelsFrontWidgetClass.mjs +361 -0
  45. package/dist/AngelsFrontWidgetClass.mjs.map +1 -0
  46. package/dist/index.js +1 -0
  47. package/dist/index.mjs +1 -0
  48. package/package.json +13 -2
  49. package/sass/AngelsDesign.scss +5 -0
  50. package/sass/_AngelsHTMLElements.scss +244 -244
  51. package/sass/_AngelsPageLayout.scss +0 -4
  52. package/sass/_AngelsTheme.scss +47 -15
  53. package/sass/_AngelsVariables.scss +1 -4
  54. package/sass/angelsMessages/_AngelsAlert.scss +3 -2
  55. package/sass/angelsMessages/_AngelsDebug.scss +3 -2
  56. package/sass/angelsMessages/_AngelsDone.scss +3 -2
  57. package/sass/angelsMessages/_AngelsError.scss +3 -2
  58. package/sass/angelsMessages/_AngelsInfo.scss +3 -2
  59. package/sass/angelsMessages/_AngelsTip.scss +3 -2
  60. package/sass/angelsMessages/_AngelsWarn.scss +3 -2
  61. package/sass/angelsTags/_a-alpha.scss +29 -0
  62. package/sass/angelsTags/_a-center.scss +15 -0
  63. package/sass/angelsTags/_a-float.scss +42 -0
  64. package/sass/angelsTags/_a-icenter.scss +15 -0
  65. package/sass/angelsTags/_a-page.scss +13 -4
  66. package/sass/angelsTags/_a-state.scss +2 -1
  67. package/sass/angelsTags/_a-table.scss +9 -35
  68. package/sass/angelsTags/_a-text-transform.scss +29 -0
  69. package/dist/AngelsCore.cjs +0 -246
  70. package/dist/AngelsCore.cjs.map +0 -1
  71. package/dist/AngelsCore.js +0 -245
  72. package/dist/AngelsCore.js.map +0 -1
  73. package/dist/AngelsElement.cjs +0 -67
  74. package/dist/AngelsElement.cjs.map +0 -1
  75. package/dist/AngelsElement.d.cts +0 -11
  76. package/dist/AngelsElement.d.ts +0 -11
  77. package/dist/AngelsElement.js +0 -42
  78. package/dist/AngelsElement.js.map +0 -1
  79. package/dist/AngelsFrontAnimationLibrary.cjs.map +0 -1
  80. package/dist/AngelsFrontApplication.cjs +0 -155
  81. package/dist/AngelsFrontApplication.cjs.map +0 -1
  82. package/dist/AngelsFrontApplication.d.cts +0 -10
  83. package/dist/AngelsFrontComponent.cjs +0 -151
  84. package/dist/AngelsFrontComponent.cjs.map +0 -1
  85. package/dist/AngelsFrontComponent.d.cts +0 -11
  86. package/dist/AngelsFrontComponent.d.ts +0 -11
  87. package/dist/AngelsFrontComponent.js.map +0 -1
  88. package/dist/AngelsFrontDOMLibrary.cjs +0 -130
  89. package/dist/AngelsFrontDOMLibrary.cjs.map +0 -1
  90. package/dist/AngelsFrontDOMLibrary.d.cts +0 -9
  91. package/dist/AngelsFrontLoader.cjs.map +0 -1
  92. package/dist/AngelsFrontLoader.d.cts +0 -2
  93. package/dist/AngelsFrontMod.cjs +0 -128
  94. package/dist/AngelsFrontMod.cjs.map +0 -1
  95. package/dist/AngelsFrontPage.cjs +0 -155
  96. package/dist/AngelsFrontPage.cjs.map +0 -1
  97. package/dist/AngelsFrontPage.d.cts +0 -10
  98. package/dist/index.cjs +0 -2
  99. package/dist/index.d.cts +0 -2
  100. package/dist/{AngelsFrontAnimationLibrary.d.cts → AngelsFrontAnimationLibrary.d.mts} +1 -1
  101. /package/dist/{AngelsCore.d.cts → AngelsFrontLoader.d.mts} +0 -0
  102. /package/dist/{AngelsCore.d.ts → index.d.mts} +0 -0
  103. /package/dist/{index.cjs.map → index.mjs.map} +0 -0
@@ -1,3 +1,4 @@
1
+ "use strict";
1
2
  var __async = (__this, __arguments, generator) => {
2
3
  return new Promise((resolve, reject) => {
3
4
  var fulfilled = (value) => {
@@ -19,46 +20,224 @@ var __async = (__this, __arguments, generator) => {
19
20
  });
20
21
  };
21
22
 
22
- // src/AngelsElement.ts
23
- var AngelsElementClass = class {
23
+ // src/AngelsFrontElement.ts
24
+ var AngelsFrontElementClass = class _AngelsFrontElementClass {
24
25
  constructor(element) {
25
- this.originalElement = element;
26
+ this.aProxyBaseClass = _AngelsFrontElementClass;
27
+ this.elementBase = element;
26
28
  return new Proxy(this, {
27
29
  get(target, prop, receiver) {
28
30
  if (prop in target) {
29
- return target[prop];
31
+ return Reflect.get(target, prop);
30
32
  }
31
- return target.originalElement[prop];
33
+ const valueOfProperty = Reflect.get(target.elementBase, prop);
34
+ if (typeof valueOfProperty === "function") {
35
+ return valueOfProperty.bind(target.elementBase);
36
+ }
37
+ return valueOfProperty;
32
38
  },
33
39
  set(target, prop, newValue, receiver) {
34
- if (prop in target) {
35
- target[prop] = newValue;
40
+ if (prop in target.elementBase) {
41
+ target.elementBase[prop] = newValue;
36
42
  } else {
37
- target.originalElement[prop] = newValue;
43
+ target[prop] = newValue;
38
44
  }
39
45
  return true;
40
46
  }
41
47
  });
42
48
  }
49
+ aConcealElement() {
50
+ aLibConcealElement(this.elementBase);
51
+ return this;
52
+ }
53
+ aEngageElement(switcher = void 0) {
54
+ aLibEngageElement(this.elementBase, switcher);
55
+ return this;
56
+ }
43
57
  aHideElement() {
44
- this.originalElement.hidden = true;
58
+ this.elementBase.hidden = true;
59
+ return this;
60
+ }
61
+ aRevealElement() {
62
+ aLibRevealElement(this.elementBase);
45
63
  return this;
46
64
  }
47
65
  aShowElement() {
48
- this.originalElement.hidden = false;
66
+ this.elementBase.hidden = false;
49
67
  return this;
50
68
  }
51
- aTextContent(content = void 0) {
52
- var _a;
53
- if (content === void 0) {
54
- return (_a = this.originalElement.textContent) != null ? _a : ``;
55
- }
56
- this.originalElement.textContent = content.toString();
69
+ aSetTextContent(content) {
70
+ const contentToSet = content.toString();
71
+ this.elementBase.textContent = contentToSet;
57
72
  return this;
58
73
  }
74
+ aTextContent() {
75
+ if (this.elementBase.textContent === null) {
76
+ return ``;
77
+ }
78
+ return this.elementBase.textContent;
79
+ }
80
+ };
81
+
82
+ // src/AngelsFrontMod.ts
83
+ var AngelsFrontMod = class {
84
+ constructor() {
85
+ this.modWaitStartTimeout = 1e3;
86
+ this.modSubMods = new Array();
87
+ }
88
+ /**
89
+ * Starts AngelsFrontMod.
90
+ */
91
+ modStart() {
92
+ this.modInit();
93
+ this.modBind();
94
+ this.modLink();
95
+ this.modRun();
96
+ setTimeout(() => {
97
+ this.modWait();
98
+ }, this.modWaitStartTimeout);
99
+ }
100
+ /**
101
+ * Finishes AngelsFrontMod.
102
+ */
103
+ modFinish() {
104
+ this.modDeWait();
105
+ this.modDeRun();
106
+ this.modDeLink();
107
+ this.modDeBind();
108
+ this.modDeInit();
109
+ }
110
+ /**
111
+ * Inits AngelsFrontMod and its sub-modules AngelsFrontMod.
112
+ */
113
+ modInit() {
114
+ this.modSubMods.forEach((mod) => mod.modInit());
115
+ }
116
+ /**
117
+ * Binds AngelsFrontMod and its sub-modules AngelsFrontMod.
118
+ */
119
+ modBind() {
120
+ this.modSubMods.forEach((mod) => mod.modBind());
121
+ }
122
+ /**
123
+ * Links AngelsFrontMod and its sub-modules AngelsFrontMod.
124
+ */
125
+ modLink() {
126
+ this.modSubMods.forEach((mod) => mod.modLink());
127
+ }
128
+ /**
129
+ * Runs AngelsFrontMod and its sub-modules AngelsFrontMod.
130
+ */
131
+ modRun() {
132
+ this.modSubMods.forEach((mod) => mod.modRun());
133
+ }
134
+ /**
135
+ * Waits AngelsFrontMod and its sub-modules AngelsFrontMod.
136
+ */
137
+ modWait() {
138
+ this.modSubMods.forEach((mod) => mod.modWait());
139
+ }
140
+ /**
141
+ * DeInits AngelsFrontMod and its sub-modules AngelsFrontMod.
142
+ */
143
+ modDeInit() {
144
+ this.modSubMods.forEach((mod) => mod.modDeInit());
145
+ }
146
+ /**
147
+ * DeBinds AngelsFrontMod and its sub-modules AngelsFrontMod.
148
+ */
149
+ modDeBind() {
150
+ this.modSubMods.forEach((mod) => mod.modDeBind());
151
+ }
152
+ /**
153
+ * DeLinks AngelsFrontMod and its sub-modules AngelsFrontMod.
154
+ */
155
+ modDeLink() {
156
+ this.modSubMods.forEach((mod) => mod.modDeLink());
157
+ }
158
+ /**
159
+ * DeRuns AngelsFrontMod and its sub-modules AngelsFrontMod.
160
+ */
161
+ modDeRun() {
162
+ this.modSubMods.forEach((mod) => mod.modDeRun());
163
+ }
164
+ /**
165
+ * DeWaits AngelsFrontMod and its sub-modules AngelsFrontMod.
166
+ */
167
+ modDeWait() {
168
+ this.modSubMods.forEach((mod) => mod.modDeWait());
169
+ }
170
+ modDestructor() {
171
+ this.modSubMods.forEach((mod) => mod.modDestructor());
172
+ }
173
+ modAddSubMod(mod) {
174
+ if (mod) {
175
+ this.modSubMods.push(mod);
176
+ mod.modInit();
177
+ return mod;
178
+ }
179
+ return null;
180
+ }
181
+ modRequireSubMod(mod) {
182
+ this.modSubMods.push(mod);
183
+ mod.modInit();
184
+ return mod;
185
+ }
186
+ };
187
+
188
+ // src/AngelsFrontWidgetClass.ts
189
+ var AngelsFrontWidgetClass = class extends AngelsFrontMod {
190
+ constructor(element) {
191
+ super();
192
+ this.widElement = aLibPrepareElement(element);
193
+ return new Proxy(this, {
194
+ get(target, prop, receiver) {
195
+ if (prop in target) {
196
+ const valueOfProperty2 = target[prop];
197
+ if (typeof valueOfProperty2 === "function") {
198
+ return Reflect.get(target, prop);
199
+ }
200
+ return valueOfProperty2;
201
+ }
202
+ const valueOfProperty = target.widElement[prop];
203
+ if (typeof valueOfProperty === "function") {
204
+ return valueOfProperty.bind(target.widElement);
205
+ }
206
+ return valueOfProperty;
207
+ },
208
+ set(target, prop, newValue, receiver) {
209
+ if (prop in target) {
210
+ target[prop] = newValue;
211
+ } else {
212
+ target.widElement[prop] = newValue;
213
+ }
214
+ return true;
215
+ }
216
+ });
217
+ }
218
+ widFindElement(selector) {
219
+ const findElement = this.widElement.querySelector(selector);
220
+ if (findElement) {
221
+ return aFindElement(findElement);
222
+ }
223
+ return null;
224
+ }
225
+ widFindElements(selector) {
226
+ return Array.from(this.widElement.querySelectorAll(selector)).map(aFindElement);
227
+ }
228
+ widRequireElement(selector) {
229
+ const element = this.widElement.querySelector(selector);
230
+ if (element) {
231
+ return aFindElement(element);
232
+ }
233
+ throw Error(`Element '${selector}' is not found.`);
234
+ }
59
235
  };
60
236
 
61
237
  // src/AngelsFrontDOMLibrary.ts
238
+ function aLibCreateWidget(element) {
239
+ return new AngelsFrontWidgetClass(element);
240
+ }
62
241
  function aLibFindElement(selector) {
63
242
  let element;
64
243
  if (typeof selector === "undefined") {
@@ -75,12 +254,12 @@ function aLibFindElement(selector) {
75
254
  element = selector;
76
255
  } else if (selector instanceof Element) {
77
256
  element = selector;
78
- } else if (selector instanceof AngelsElementClass) {
257
+ } else if (selector instanceof AngelsFrontElementClass) {
79
258
  return selector;
80
259
  } else {
81
260
  element = selector;
82
261
  }
83
- return new AngelsElementClass(element);
262
+ return new AngelsFrontElementClass(element);
84
263
  }
85
264
  function aLibRequireElement(selector) {
86
265
  const element = aLibFindElement(selector);
@@ -94,6 +273,17 @@ function aLibHideElement(selector) {
94
273
  element.hidden = true;
95
274
  return element;
96
275
  }
276
+ function aLibPrepareElement(element) {
277
+ let angelsFrontElement;
278
+ if ("aProxyBaseClass" in element && element.aProxyBaseClass === AngelsFrontElementClass) {
279
+ angelsFrontElement = element;
280
+ } else if (element instanceof HTMLElement) {
281
+ angelsFrontElement = new AngelsFrontElementClass(element);
282
+ } else {
283
+ throw Error("Cannot prepare element: invalid element type.");
284
+ }
285
+ return angelsFrontElement;
286
+ }
97
287
  function aLibShowElement(selector) {
98
288
  const element = aLibRequireElement(selector);
99
289
  element.hidden = false;
@@ -102,7 +292,7 @@ function aLibShowElement(selector) {
102
292
  function aLibToggleElement(originalElement, switcher = void 0) {
103
293
  const innerElement = aLibRequireElement(originalElement);
104
294
  if (switcher === void 0) {
105
- switcher = !innerElement.hidden;
295
+ switcher = innerElement.hidden;
106
296
  }
107
297
  if (switcher) {
108
298
  return aLibShowElement(innerElement);
@@ -112,19 +302,6 @@ function aLibToggleElement(originalElement, switcher = void 0) {
112
302
  }
113
303
 
114
304
  // src/AngelsFrontAnimationLibrary.ts
115
- function aLibEngageElement(originalElement, switcher = void 0) {
116
- return __async(this, null, function* () {
117
- const innerElement = aLibRequireElement(originalElement);
118
- if (switcher === void 0) {
119
- switcher = !innerElement.hidden;
120
- }
121
- if (switcher) {
122
- return yield aLibRevealElement(innerElement);
123
- } else {
124
- return yield aLibConcealElement(innerElement);
125
- }
126
- });
127
- }
128
305
  function aLibConcealElement(originalElement) {
129
306
  return __async(this, null, function* () {
130
307
  const innerElement = aLibRequireElement(originalElement);
@@ -160,6 +337,19 @@ function aLibConcealElement(originalElement) {
160
337
  return promise;
161
338
  });
162
339
  }
340
+ function aLibEngageElement(originalElement, switcher = void 0) {
341
+ return __async(this, null, function* () {
342
+ const innerElement = aLibRequireElement(originalElement);
343
+ if (switcher === void 0) {
344
+ switcher = innerElement.hidden;
345
+ }
346
+ if (switcher) {
347
+ return yield aLibRevealElement(innerElement);
348
+ } else {
349
+ return yield aLibConcealElement(innerElement);
350
+ }
351
+ });
352
+ }
163
353
  function aLibRevealElement(originalElement) {
164
354
  return __async(this, null, function* () {
165
355
  const innerElement = aLibRequireElement(originalElement);
@@ -191,13 +381,404 @@ function aLibRevealElement(originalElement) {
191
381
  });
192
382
  }
193
383
 
384
+ // src/AngelsFrontWebComponents/AngelsFrontBoardWebComponent.ts
385
+ var AngelsFrontBoardWebComponent = class _AngelsFrontBoardWebComponent extends HTMLElement {
386
+ /**
387
+ * Use the global displayHandler if set
388
+ */
389
+ get displayHandler() {
390
+ return _AngelsFrontBoardWebComponent.globalDisplayHandler;
391
+ }
392
+ /**
393
+ * Switch the visible child by key
394
+ */
395
+ aBoardSwitch(aBoardItemKey) {
396
+ this.setAttribute("a-board-show", aBoardItemKey);
397
+ }
398
+ /**
399
+ * Update visibility based on children/text
400
+ */
401
+ aBoardUpdateDisplaying() {
402
+ const children = Array.from(this.children);
403
+ const hasVisibleChildren = children.some((el) => !el.hidden);
404
+ const hasNonWhitespaceText = Array.from(this.childNodes).some(
405
+ (node) => node.nodeType === Node.TEXT_NODE && node.textContent.trim() !== ""
406
+ );
407
+ this.hidden = !hasVisibleChildren && !hasNonWhitespaceText;
408
+ this.toggleAttribute("a-board-auto-hidden", this.hidden);
409
+ }
410
+ aBoardShowKey() {
411
+ return this.getAttribute("a-board-show") || "";
412
+ }
413
+ connectedCallback() {
414
+ this.initContent();
415
+ this.observeMutations();
416
+ }
417
+ disconnectedCallback() {
418
+ var _a;
419
+ (_a = this.mutationObserver) == null ? void 0 : _a.disconnect();
420
+ }
421
+ static get observedAttributes() {
422
+ return ["a-board-show"];
423
+ }
424
+ attributeChangedCallback(name, oldValue, newValue) {
425
+ switch (name) {
426
+ case "a-board-show":
427
+ if (oldValue !== newValue) {
428
+ this.updateContent();
429
+ }
430
+ }
431
+ }
432
+ /**
433
+ * Update which child is visible
434
+ */
435
+ initContent() {
436
+ return __async(this, null, function* () {
437
+ const key = this.aBoardShowKey();
438
+ const items = Array.from(this.querySelectorAll(`:scope > [a-board-key]`));
439
+ const activeItem = items.find((el) => el.getAttribute("a-board-key") === key);
440
+ items.filter((el) => el !== activeItem).forEach((el) => {
441
+ const show = el === activeItem;
442
+ el.hidden = true;
443
+ });
444
+ if (activeItem) {
445
+ activeItem.hidden = false;
446
+ }
447
+ this.aBoardUpdateDisplaying();
448
+ });
449
+ }
450
+ /**
451
+ * Update which child is visible
452
+ */
453
+ updateContent() {
454
+ return __async(this, null, function* () {
455
+ var _a;
456
+ (_a = this.mutationObserver) == null ? void 0 : _a.disconnect();
457
+ const key = this.aBoardShowKey();
458
+ const items = Array.from(this.querySelectorAll(`:scope > [a-board-key]`));
459
+ const activeItem = items.find((el) => el.getAttribute("a-board-key") === key);
460
+ const rect = this.getBoundingClientRect();
461
+ const prevWidth = this.style.width;
462
+ const prevHeight = this.style.height;
463
+ const prevOverflow = this.style.overflow;
464
+ this.style.width = rect.width + "px";
465
+ this.style.height = rect.height + "px";
466
+ this.style.overflow = "hidden";
467
+ if (this.displayHandler) {
468
+ const promises = [];
469
+ items.filter((el) => el !== activeItem).forEach((el) => {
470
+ const displayHandlerResult = this.displayHandler(el, false);
471
+ if (displayHandlerResult instanceof Promise) {
472
+ promises.push(displayHandlerResult);
473
+ }
474
+ });
475
+ yield Promise.all(promises);
476
+ let targetHeight = 0;
477
+ console.log("targetHeight", targetHeight);
478
+ if (activeItem) {
479
+ activeItem.classList.add("a-technical-transparent");
480
+ targetHeight = activeItem.scrollHeight;
481
+ activeItem.classList.remove("a-technical-transparent");
482
+ }
483
+ console.log("targetHeight", targetHeight);
484
+ const heightAnimation = this.animate([
485
+ { height: rect.height + "px" },
486
+ { height: targetHeight + "px" }
487
+ ], {
488
+ duration: 300,
489
+ easing: "ease-in-out"
490
+ });
491
+ yield new Promise((resolve) => {
492
+ heightAnimation.addEventListener("finish", resolve);
493
+ });
494
+ this.style.height = targetHeight + "px";
495
+ if (activeItem) {
496
+ yield this.displayHandler(activeItem, true);
497
+ }
498
+ } else {
499
+ items.filter((el) => el !== activeItem).forEach((el) => {
500
+ const show = el === activeItem;
501
+ el.hidden = true;
502
+ });
503
+ let targetHeight = 0;
504
+ if (activeItem) {
505
+ activeItem.classList.add("a-technical-transparent");
506
+ targetHeight = activeItem.scrollHeight;
507
+ ;
508
+ activeItem.classList.remove("a-technical-transparent");
509
+ }
510
+ this.style.height = targetHeight + "px";
511
+ if (activeItem) {
512
+ activeItem.hidden = false;
513
+ }
514
+ }
515
+ this.style.height = "";
516
+ this.style.width = prevWidth;
517
+ this.style.overflow = prevOverflow;
518
+ this.aBoardUpdateDisplaying();
519
+ this.observeMutations();
520
+ });
521
+ }
522
+ /**
523
+ * Observe direct children and text nodes only, with debounce
524
+ */
525
+ observeMutations() {
526
+ if (this.mutationObserver) this.mutationObserver.disconnect();
527
+ this.mutationObserver = new MutationObserver(() => {
528
+ clearTimeout(this.mutationTimeout);
529
+ this.mutationTimeout = window.setTimeout(() => {
530
+ this.aBoardUpdateDisplaying();
531
+ }, 50);
532
+ });
533
+ this.mutationObserver.observe(this, {
534
+ childList: true,
535
+ characterData: true,
536
+ attributes: true,
537
+ subtree: false,
538
+ attributeFilter: ["hidden", "style", "class"]
539
+ });
540
+ }
541
+ /**
542
+ * Set global display handler for all <a-board> instances
543
+ */
544
+ static setGlobalDisplayHandler(handler) {
545
+ _AngelsFrontBoardWebComponent.globalDisplayHandler = handler;
546
+ }
547
+ };
548
+ function angelsBoardDefine(options) {
549
+ if (!customElements.get("a-board")) {
550
+ if (options == null ? void 0 : options.displayHandler) {
551
+ AngelsFrontBoardWebComponent.setGlobalDisplayHandler(options.displayHandler);
552
+ }
553
+ customElements.define("a-board", AngelsFrontBoardWebComponent);
554
+ } else if (options == null ? void 0 : options.displayHandler) {
555
+ AngelsFrontBoardWebComponent.setGlobalDisplayHandler(options.displayHandler);
556
+ }
557
+ return customElements.get("a-board");
558
+ }
559
+
560
+ // src/AngelsFrontWebComponents/AngelsFrontStateWebComponent.ts
561
+ var _AngelsFrontStateWebComponent = class _AngelsFrontStateWebComponent extends HTMLElement {
562
+ connectedCallback() {
563
+ this.hidden = this.textContent.trim().length === 0;
564
+ }
565
+ aStateAlert(message) {
566
+ this.aStateSet("a-alert" /* ALERT */, message);
567
+ }
568
+ aStateClear() {
569
+ this.classList.remove(..._AngelsFrontStateWebComponent.aStateClasses);
570
+ this.aStateSetMessage("");
571
+ }
572
+ aStateDebug(message) {
573
+ this.aStateSet("a-debug" /* DEBUG */, message);
574
+ }
575
+ aStateDone(message) {
576
+ this.aStateSet("a-done" /* DONE */, message);
577
+ }
578
+ aStateError(message) {
579
+ this.aStateSet("a-error" /* ERROR */, message);
580
+ }
581
+ aStateInfo(message) {
582
+ this.aStateSet("a-info" /* INFO */, message);
583
+ }
584
+ aStateSet(className, message) {
585
+ this.aStateSetType(className);
586
+ this.aStateSetMessage(message);
587
+ }
588
+ aStateSetMessage(message) {
589
+ this.textContent = message;
590
+ this.hidden = this.textContent.trim().length === 0;
591
+ }
592
+ aStateSetType(className) {
593
+ const classesToRemove = _AngelsFrontStateWebComponent.aStateClasses.filter((c) => c !== className);
594
+ this.classList.remove(...classesToRemove);
595
+ this.classList.add(className);
596
+ }
597
+ aStateTip(message) {
598
+ this.aStateSet("a-tip" /* TIP */, message);
599
+ }
600
+ aStateWarn(message) {
601
+ this.aStateSet("a-warn" /* WARN */, message);
602
+ }
603
+ };
604
+ _AngelsFrontStateWebComponent.aStateClasses = [
605
+ "a-alert" /* ALERT */,
606
+ "a-debug" /* DEBUG */,
607
+ "a-done" /* DONE */,
608
+ "a-error" /* ERROR */,
609
+ "a-info" /* INFO */,
610
+ "a-tip" /* TIP */,
611
+ "a-warn" /* WARN */
612
+ ];
613
+ var AngelsFrontStateWebComponent = _AngelsFrontStateWebComponent;
614
+ function angelsStateDefine() {
615
+ if (!customElements.get("a-state")) {
616
+ customElements.define("a-state", AngelsFrontStateWebComponent);
617
+ }
618
+ return customElements.get("a-state");
619
+ }
620
+
621
+ // src/AngelsFrontWebComponents/AngelsFrontDemoWebComponent.ts
622
+ var pretty = require("pretty");
623
+ var AngelsFrontDemoWebComponent = class extends HTMLElement {
624
+ constructor() {
625
+ super();
626
+ this.awcRoot = this.attachShadow({ mode: "open" });
627
+ this.awcRoot.innerHTML = this.awcTemplate() + this.awcStyles();
628
+ this.awcReDraw();
629
+ }
630
+ connectedCallback() {
631
+ this.addEventListener("slotchange", this.awcReDraw.bind(this));
632
+ }
633
+ awcReDraw() {
634
+ const headerPart = this.awcRoot.querySelector('[part="a-demo-header"]');
635
+ const headerSlot = headerPart.querySelector("slot");
636
+ headerPart.hidden = !headerSlot.assignedNodes({ flatten: true }).length;
637
+ const resultSlot = this.awcRoot.querySelector('[part="a-demo-result"] slot');
638
+ const codePart = this.awcRoot.querySelector('[part="a-demo-code"]');
639
+ let code = resultSlot.assignedNodes({ flatten: true }).map((n) => n.outerHTML || n.textContent).join("");
640
+ code = pretty(code, { ocd: true });
641
+ console.log("code", code);
642
+ codePart.textContent = code.trim();
643
+ }
644
+ awcTemplate() {
645
+ return `
646
+ <div part="a-demo-header"><slot name="a-demo-header"></slot></div>
647
+ <div part="a-demo-result"><slot></slot></div>
648
+ <pre part="a-demo-code"></pre>
649
+ `;
650
+ }
651
+ awcStyles() {
652
+ return `
653
+ <style>
654
+ :host {
655
+ --a-demo-borderColor: darkmagenta;
656
+ --a-demo-borderRadius: var(--a-borderRadius, 4px);
657
+ --a-demo-backgroundColor: #fffbf3;
658
+ }
659
+ :host {
660
+ background: var(--a-demo-borderColor);
661
+ border: 1px solid var(--a-demo-borderColor);
662
+ border-radius: var(--a-demo-borderRadius);
663
+ display: grid;
664
+ gap: 1px;
665
+ font-family: Arial, sans-serif;
666
+ overflow: hidden;
667
+ }
668
+ :host > * {
669
+ background: var(--a-demo-backgroundColor);
670
+ padding: .5em;
671
+ }
672
+ [part="a-demo-header"] {
673
+ }
674
+ [part="a-demo-result"] slot {
675
+ }
676
+ [part="a-demo-code"] {
677
+ margin: 0;
678
+ overflow: auto;
679
+ }
680
+ </style>
681
+ `;
682
+ }
683
+ };
684
+ function angelsDemoDefine() {
685
+ if (!customElements.get("a-demo")) {
686
+ customElements.define("a-demo", AngelsFrontDemoWebComponent);
687
+ }
688
+ return customElements.get("a-demo");
689
+ }
690
+
691
+ // src/AngelsFrontWebComponents/AngelsFrontListWebComponent.ts
692
+ var _AngelsFrontListWebComponent = class _AngelsFrontListWebComponent extends HTMLElement {
693
+ constructor() {
694
+ super();
695
+ this.awcAppendStyles();
696
+ }
697
+ connectedCallback() {
698
+ this.awcRender();
699
+ }
700
+ attributeChangedCallback(name, oldValue, newValue) {
701
+ this.awcRender();
702
+ }
703
+ awcAppendStyles() {
704
+ if (_AngelsFrontListWebComponent.awcStylesAppended) {
705
+ return;
706
+ }
707
+ _AngelsFrontListWebComponent.awcStylesAppended = true;
708
+ const style = document.createElement("style");
709
+ style.textContent = `
710
+ a-list {
711
+ --a-list-space: var(--a-halfSize, 0.5em);
712
+ display: inline;
713
+ }
714
+ a-list::before {
715
+ content: attr(a-list-prefix);
716
+ display: inline;
717
+ }
718
+ a-list::after {
719
+ content: attr(a-list-suffix);
720
+ display: inline;
721
+ }
722
+ a-list .a-list-item:not(:last-child)::after {
723
+ content: attr(a-list-separator);
724
+ display: inline;
725
+ margin-right: var(--a-list-space);
726
+ }
727
+ `;
728
+ document.head.appendChild(style);
729
+ }
730
+ awcRender() {
731
+ const itemsAttr = this.getAttribute("a-list");
732
+ const separator = this.getAttribute("a-list-separator") || " ";
733
+ if (itemsAttr) {
734
+ try {
735
+ const items = JSON.parse(itemsAttr);
736
+ const children = [];
737
+ if (Array.isArray(items)) {
738
+ items.forEach((item, index) => {
739
+ const span = document.createElement("a-list-item");
740
+ span.textContent = item;
741
+ span.classList.add("a-list-item");
742
+ span.setAttribute("a-list-separator", this.getAttribute("a-list-separator") || " ");
743
+ children.push(span);
744
+ });
745
+ } else {
746
+ console.error('Attribute "a-list" must be an array of strings.');
747
+ }
748
+ this.replaceChildren(...children);
749
+ } catch (error) {
750
+ console.error(`Error parsing "a-list" attribute of "${itemsAttr}"`, error);
751
+ this.replaceChildren();
752
+ }
753
+ } else {
754
+ this.replaceChildren();
755
+ }
756
+ }
757
+ };
758
+ _AngelsFrontListWebComponent.awcStylesAppended = false;
759
+ _AngelsFrontListWebComponent.observedAttributes = ["a-list", "a-list-separator"];
760
+ var AngelsFrontListWebComponent = _AngelsFrontListWebComponent;
761
+ function angelsListDefine() {
762
+ if (!customElements.get("a-list")) {
763
+ customElements.define("a-list", AngelsFrontListWebComponent);
764
+ }
765
+ return customElements.get("a-list");
766
+ }
767
+
194
768
  // src/AngelsFrontLoader.ts
195
769
  window.aEngageElement = aLibEngageElement;
196
770
  window.aConcealElement = aLibConcealElement;
197
771
  window.aRevealElement = aLibRevealElement;
772
+ window.aCreateWidget = aLibCreateWidget;
198
773
  window.aFindElement = aLibFindElement;
199
774
  window.aHideElement = aLibHideElement;
200
775
  window.aRequireElement = aLibRequireElement;
201
776
  window.aShowElement = aLibShowElement;
202
777
  window.aToggleElement = aLibToggleElement;
778
+ angelsBoardDefine({
779
+ displayHandler: aEngageElement
780
+ });
781
+ angelsStateDefine();
782
+ angelsDemoDefine();
783
+ angelsListDefine();
203
784
  //# sourceMappingURL=AngelsFrontLoader.js.map