@angelscmf/front 1.0.29 → 1.0.30
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.
- package/dist/AngelsFrontAnimationLibrary.d.ts +1 -1
- package/dist/AngelsFrontAnimationLibrary.js +77 -30
- package/dist/AngelsFrontAnimationLibrary.js.map +1 -1
- package/dist/{AngelsFrontLoader.cjs → AngelsFrontAnimationLibrary.mjs} +53 -61
- package/dist/AngelsFrontAnimationLibrary.mjs.map +1 -0
- package/dist/AngelsFrontApplication.d.mts +11 -0
- package/dist/AngelsFrontApplication.d.ts +3 -2
- package/dist/AngelsFrontApplication.js +271 -28
- package/dist/AngelsFrontApplication.js.map +1 -1
- package/dist/AngelsFrontApplication.mjs +353 -0
- package/dist/AngelsFrontApplication.mjs.map +1 -0
- package/dist/AngelsFrontDOMLibrary.d.mts +12 -0
- package/dist/AngelsFrontDOMLibrary.d.ts +10 -7
- package/dist/AngelsFrontDOMLibrary.js +327 -17
- package/dist/AngelsFrontDOMLibrary.js.map +1 -1
- package/dist/AngelsFrontDOMLibrary.mjs +378 -0
- package/dist/AngelsFrontDOMLibrary.mjs.map +1 -0
- package/dist/AngelsFrontElement.d.mts +14 -0
- package/dist/AngelsFrontElement.d.ts +14 -0
- package/dist/{AngelsFrontAnimationLibrary.cjs → AngelsFrontElement.js} +79 -68
- package/dist/AngelsFrontElement.js.map +1 -0
- package/dist/AngelsFrontElement.mjs +194 -0
- package/dist/AngelsFrontElement.mjs.map +1 -0
- package/dist/AngelsFrontLoader.js +448 -28
- package/dist/AngelsFrontLoader.js.map +1 -1
- package/dist/AngelsFrontLoader.mjs +622 -0
- package/dist/AngelsFrontLoader.mjs.map +1 -0
- package/dist/{AngelsFrontMod.d.cts → AngelsFrontMod.d.mts} +4 -3
- package/dist/AngelsFrontMod.d.ts +4 -3
- package/dist/AngelsFrontMod.js +40 -17
- package/dist/AngelsFrontMod.js.map +1 -1
- package/dist/{AngelsFrontComponent.js → AngelsFrontMod.mjs} +18 -37
- package/dist/AngelsFrontMod.mjs.map +1 -0
- package/dist/AngelsFrontPage.d.mts +11 -0
- package/dist/AngelsFrontPage.d.ts +3 -2
- package/dist/AngelsFrontPage.js +271 -28
- package/dist/AngelsFrontPage.js.map +1 -1
- package/dist/AngelsFrontPage.mjs +353 -0
- package/dist/AngelsFrontPage.mjs.map +1 -0
- package/dist/AngelsFrontWidgetClass.d.mts +15 -0
- package/dist/AngelsFrontWidgetClass.d.ts +15 -0
- package/dist/AngelsFrontWidgetClass.js +371 -0
- package/dist/AngelsFrontWidgetClass.js.map +1 -0
- package/dist/AngelsFrontWidgetClass.mjs +349 -0
- package/dist/AngelsFrontWidgetClass.mjs.map +1 -0
- package/dist/index.js +1 -0
- package/dist/index.mjs +1 -0
- package/package.json +9 -2
- package/sass/_AngelsHTMLElements.scss +244 -244
- package/sass/_AngelsPageLayout.scss +0 -4
- package/sass/_AngelsTheme.scss +47 -15
- package/sass/_AngelsVariables.scss +1 -4
- package/sass/angelsMessages/_AngelsAlert.scss +3 -2
- package/sass/angelsMessages/_AngelsDebug.scss +3 -2
- package/sass/angelsMessages/_AngelsDone.scss +3 -2
- package/sass/angelsMessages/_AngelsError.scss +3 -2
- package/sass/angelsMessages/_AngelsInfo.scss +3 -2
- package/sass/angelsMessages/_AngelsTip.scss +3 -2
- package/sass/angelsMessages/_AngelsWarn.scss +3 -2
- package/sass/angelsTags/_a-page.scss +13 -4
- package/sass/angelsTags/_a-state.scss +2 -1
- package/sass/angelsTags/_a-table.scss +9 -35
- package/dist/AngelsCore.cjs +0 -246
- package/dist/AngelsCore.cjs.map +0 -1
- package/dist/AngelsCore.js +0 -245
- package/dist/AngelsCore.js.map +0 -1
- package/dist/AngelsElement.cjs +0 -67
- package/dist/AngelsElement.cjs.map +0 -1
- package/dist/AngelsElement.d.cts +0 -11
- package/dist/AngelsElement.d.ts +0 -11
- package/dist/AngelsElement.js +0 -42
- package/dist/AngelsElement.js.map +0 -1
- package/dist/AngelsFrontAnimationLibrary.cjs.map +0 -1
- package/dist/AngelsFrontApplication.cjs +0 -155
- package/dist/AngelsFrontApplication.cjs.map +0 -1
- package/dist/AngelsFrontApplication.d.cts +0 -10
- package/dist/AngelsFrontComponent.cjs +0 -151
- package/dist/AngelsFrontComponent.cjs.map +0 -1
- package/dist/AngelsFrontComponent.d.cts +0 -11
- package/dist/AngelsFrontComponent.d.ts +0 -11
- package/dist/AngelsFrontComponent.js.map +0 -1
- package/dist/AngelsFrontDOMLibrary.cjs +0 -130
- package/dist/AngelsFrontDOMLibrary.cjs.map +0 -1
- package/dist/AngelsFrontDOMLibrary.d.cts +0 -9
- package/dist/AngelsFrontLoader.cjs.map +0 -1
- package/dist/AngelsFrontLoader.d.cts +0 -2
- package/dist/AngelsFrontMod.cjs +0 -128
- package/dist/AngelsFrontMod.cjs.map +0 -1
- package/dist/AngelsFrontPage.cjs +0 -155
- package/dist/AngelsFrontPage.cjs.map +0 -1
- package/dist/AngelsFrontPage.d.cts +0 -10
- package/dist/index.cjs +0 -2
- package/dist/index.d.cts +0 -2
- package/dist/{AngelsFrontAnimationLibrary.d.cts → AngelsFrontAnimationLibrary.d.mts} +1 -1
- /package/dist/{AngelsCore.d.cts → AngelsFrontLoader.d.mts} +0 -0
- /package/dist/{AngelsCore.d.ts → index.d.mts} +0 -0
- /package/dist/{index.cjs.map → index.mjs.map} +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
:root {
|
|
2
|
-
--a-info-space: var(--a-
|
|
3
|
-
--a-info-spaceHalf: var(--a-
|
|
2
|
+
--a-info-space: var(--a-lineSizeHalf);
|
|
3
|
+
--a-info-spaceHalf: var(--a-lineSizeQuarter);
|
|
4
4
|
--a-info-borderColor: #4dabf7;
|
|
5
5
|
--a-info-background: #f5faff;
|
|
6
6
|
--a-info-color: #1c5d99;
|
|
@@ -11,6 +11,7 @@ a-info {
|
|
|
11
11
|
}
|
|
12
12
|
|
|
13
13
|
a-info,
|
|
14
|
+
a-state.a-info,
|
|
14
15
|
div.a-info,
|
|
15
16
|
p.a-info,
|
|
16
17
|
unknown {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
:root {
|
|
2
|
-
--a-tip-space: var(--a-
|
|
3
|
-
--a-tip-spaceHalf: var(--a-
|
|
2
|
+
--a-tip-space: var(--a-lineSizeHalf);
|
|
3
|
+
--a-tip-spaceHalf: var(--a-lineSizeQuarter);
|
|
4
4
|
--a-tip-borderColor: #d0d7de;
|
|
5
5
|
--a-tip-background: #f9fafb;
|
|
6
6
|
--a-tip-color: #6c757d;
|
|
@@ -11,6 +11,7 @@ a-tip {
|
|
|
11
11
|
}
|
|
12
12
|
|
|
13
13
|
a-tip,
|
|
14
|
+
a-state.a-tip,
|
|
14
15
|
div.a-tip,
|
|
15
16
|
p.a-tip,
|
|
16
17
|
unknown {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
:root {
|
|
2
|
-
--a-warn-space: var(--a-
|
|
3
|
-
--a-warn-spaceHalf: var(--a-
|
|
2
|
+
--a-warn-space: var(--a-lineSizeHalf);
|
|
3
|
+
--a-warn-spaceHalf: var(--a-lineSizeQuarter);
|
|
4
4
|
--a-warn-borderColor: #ffc107;
|
|
5
5
|
--a-warn-background: #fffdf0;
|
|
6
6
|
--a-warn-color: #8a6d1f;
|
|
@@ -11,6 +11,7 @@ a-warn {
|
|
|
11
11
|
}
|
|
12
12
|
|
|
13
13
|
a-warn,
|
|
14
|
+
a-state.a-warn,
|
|
14
15
|
div.a-warn,
|
|
15
16
|
p.a-warn,
|
|
16
17
|
unknown {
|
|
@@ -1,3 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Angels' CMF Theme Custom Styles for a-page component
|
|
3
|
+
*
|
|
4
|
+
* @version 2025-11-16 Adds --a-page-header-backgroundColor variable as --a-backgroundColorSecondary.
|
|
5
|
+
* @version 2025-11-16 Adds --a-page-footer-backgroundColor variable as --a-backgroundColorSecondary.
|
|
6
|
+
*
|
|
7
|
+
* @version 2025-11-16 Initial version
|
|
8
|
+
*/
|
|
9
|
+
|
|
1
10
|
@use "../AngelsVariables";
|
|
2
11
|
|
|
3
12
|
:root {
|
|
@@ -14,7 +23,7 @@ a-page {
|
|
|
14
23
|
}
|
|
15
24
|
|
|
16
25
|
:root {
|
|
17
|
-
--a-page-header-backgroundColor:
|
|
26
|
+
--a-page-header-backgroundColor: var(--a-backgroundColorSecondary);
|
|
18
27
|
--a-page-header-textColor: #{AngelsVariables.$aSecondColor};
|
|
19
28
|
--a-page-header-padding: 1em;
|
|
20
29
|
}
|
|
@@ -31,8 +40,8 @@ a-page-header {
|
|
|
31
40
|
}
|
|
32
41
|
|
|
33
42
|
:root {
|
|
34
|
-
--a-page-body-gap: var(--a-
|
|
35
|
-
--a-page-body-padding: var(--a-
|
|
43
|
+
--a-page-body-gap: var(--a-fourxSize);
|
|
44
|
+
--a-page-body-padding: var(--a-fourxSize) var(--a-baseSize);
|
|
36
45
|
}
|
|
37
46
|
|
|
38
47
|
a-page-body {
|
|
@@ -44,7 +53,7 @@ a-page-body {
|
|
|
44
53
|
}
|
|
45
54
|
|
|
46
55
|
:root {
|
|
47
|
-
--a-page-footer-backgroundColor:
|
|
56
|
+
--a-page-footer-backgroundColor: var(--a-backgroundColorSecondary);
|
|
48
57
|
--a-page-footer-padding: var(--a-baseSize);
|
|
49
58
|
--a-page-footer-gap: var(--a-baseSize);
|
|
50
59
|
--a-page-footer-textColor: #{AngelsVariables.$aSecondColor};
|
|
@@ -1,20 +1,17 @@
|
|
|
1
1
|
:root {
|
|
2
2
|
--a-table-backgroundColor: var(--a-backgroundColor);
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
// --a-table-verticalGapStyle: solid;
|
|
3
|
+
--a-table-borderColor: var(--a-textColor);
|
|
4
|
+
--a-table-borderWidth: 1px;
|
|
5
|
+
--a-table-cellPadding: var(--a-lineSizeQuarter);
|
|
7
6
|
}
|
|
8
7
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
8
|
a-table,
|
|
13
9
|
.a-table {
|
|
14
10
|
background: var(--a-table-backgroundColor);
|
|
15
11
|
display: table;
|
|
16
|
-
border:
|
|
17
|
-
border-
|
|
12
|
+
border: var(--a-table-borderWidth) solid var(--a-table-borderColor);
|
|
13
|
+
border-radius: var(--a-borderRadius);
|
|
14
|
+
overflow: hidden;
|
|
18
15
|
|
|
19
16
|
a-tcaption,
|
|
20
17
|
caption {
|
|
@@ -30,30 +27,7 @@ a-table,
|
|
|
30
27
|
a-tcell,
|
|
31
28
|
td {
|
|
32
29
|
display: table-cell;
|
|
33
|
-
border:
|
|
30
|
+
border: var(--a-table-borderWidth) solid var(--a-table-borderColor);
|
|
31
|
+
padding: var(--a-table-cellPadding);
|
|
34
32
|
}
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
// .a-table {
|
|
38
|
-
// color: var(--a-table-textColor);
|
|
39
|
-
// border-collapse: collapse;
|
|
40
|
-
// background-color: #eeeeee;
|
|
41
|
-
|
|
42
|
-
// td,
|
|
43
|
-
// th {
|
|
44
|
-
// padding: .3em .5em;
|
|
45
|
-
// }
|
|
46
|
-
|
|
47
|
-
// td+td,
|
|
48
|
-
// td+th,
|
|
49
|
-
// th+td,
|
|
50
|
-
// th+th {
|
|
51
|
-
// border-left: var(--a-table-verticalGapWidth) var(--a-table-verticalGapStyle) var(--a-table-verticalGapColor);
|
|
52
|
-
// }
|
|
53
|
-
|
|
54
|
-
// tr {
|
|
55
|
-
// &:nth-child(2n) {
|
|
56
|
-
// background-color: #e7e7e7;
|
|
57
|
-
// }
|
|
58
|
-
// }
|
|
59
|
-
// }
|
|
33
|
+
}
|
package/dist/AngelsCore.cjs
DELETED
|
@@ -1,246 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __async = (__this, __arguments, generator) => {
|
|
3
|
-
return new Promise((resolve, reject) => {
|
|
4
|
-
var fulfilled = (value) => {
|
|
5
|
-
try {
|
|
6
|
-
step(generator.next(value));
|
|
7
|
-
} catch (e) {
|
|
8
|
-
reject(e);
|
|
9
|
-
}
|
|
10
|
-
};
|
|
11
|
-
var rejected = (value) => {
|
|
12
|
-
try {
|
|
13
|
-
step(generator.throw(value));
|
|
14
|
-
} catch (e) {
|
|
15
|
-
reject(e);
|
|
16
|
-
}
|
|
17
|
-
};
|
|
18
|
-
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
|
|
19
|
-
step((generator = generator.apply(__this, __arguments)).next());
|
|
20
|
-
});
|
|
21
|
-
};
|
|
22
|
-
|
|
23
|
-
// src/AngelsWebComponents/AngelsBoardWebComponent.ts
|
|
24
|
-
var AngelsBoardWebComponent = class _AngelsBoardWebComponent extends HTMLElement {
|
|
25
|
-
/**
|
|
26
|
-
* Use the global displayHandler if set
|
|
27
|
-
*/
|
|
28
|
-
get displayHandler() {
|
|
29
|
-
return _AngelsBoardWebComponent.globalDisplayHandler;
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* Switch the visible child by key
|
|
33
|
-
*/
|
|
34
|
-
aBoardSwitch(aBoardItemKey) {
|
|
35
|
-
this.setAttribute("a-board-show", aBoardItemKey);
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* Update visibility based on children/text
|
|
39
|
-
*/
|
|
40
|
-
aBoardUpdateDisplaying() {
|
|
41
|
-
const children = Array.from(this.children);
|
|
42
|
-
const hasVisibleChildren = children.some((el) => !el.hidden);
|
|
43
|
-
const hasNonWhitespaceText = Array.from(this.childNodes).some(
|
|
44
|
-
(node) => node.nodeType === Node.TEXT_NODE && node.textContent.trim() !== ""
|
|
45
|
-
);
|
|
46
|
-
this.hidden = !hasVisibleChildren && !hasNonWhitespaceText;
|
|
47
|
-
this.toggleAttribute("a-board-auto-hidden", this.hidden);
|
|
48
|
-
}
|
|
49
|
-
aBoardShowKey() {
|
|
50
|
-
return this.getAttribute("a-board-show") || "";
|
|
51
|
-
}
|
|
52
|
-
connectedCallback() {
|
|
53
|
-
this.initContent();
|
|
54
|
-
this.observeMutations();
|
|
55
|
-
}
|
|
56
|
-
disconnectedCallback() {
|
|
57
|
-
var _a;
|
|
58
|
-
(_a = this.mutationObserver) == null ? void 0 : _a.disconnect();
|
|
59
|
-
}
|
|
60
|
-
static get observedAttributes() {
|
|
61
|
-
return ["a-board-show"];
|
|
62
|
-
}
|
|
63
|
-
attributeChangedCallback(name, oldValue, newValue) {
|
|
64
|
-
switch (name) {
|
|
65
|
-
case "a-board-show":
|
|
66
|
-
if (oldValue !== newValue) {
|
|
67
|
-
this.updateContent();
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
/**
|
|
72
|
-
* Update which child is visible
|
|
73
|
-
*/
|
|
74
|
-
initContent() {
|
|
75
|
-
return __async(this, null, function* () {
|
|
76
|
-
const key = this.aBoardShowKey();
|
|
77
|
-
const items = Array.from(this.querySelectorAll(`:scope > [a-board-key]`));
|
|
78
|
-
const activeItem = items.find((el) => el.getAttribute("a-board-key") === key);
|
|
79
|
-
items.filter((el) => el !== activeItem).forEach((el) => {
|
|
80
|
-
const show = el === activeItem;
|
|
81
|
-
el.hidden = true;
|
|
82
|
-
});
|
|
83
|
-
if (activeItem) {
|
|
84
|
-
activeItem.hidden = false;
|
|
85
|
-
}
|
|
86
|
-
this.aBoardUpdateDisplaying();
|
|
87
|
-
});
|
|
88
|
-
}
|
|
89
|
-
/**
|
|
90
|
-
* Update which child is visible
|
|
91
|
-
*/
|
|
92
|
-
updateContent() {
|
|
93
|
-
return __async(this, null, function* () {
|
|
94
|
-
var _a;
|
|
95
|
-
(_a = this.mutationObserver) == null ? void 0 : _a.disconnect();
|
|
96
|
-
const key = this.aBoardShowKey();
|
|
97
|
-
const items = Array.from(this.querySelectorAll(`:scope > [a-board-key]`));
|
|
98
|
-
const activeItem = items.find((el) => el.getAttribute("a-board-key") === key);
|
|
99
|
-
const rect = this.getBoundingClientRect();
|
|
100
|
-
const prevWidth = this.style.width;
|
|
101
|
-
const prevHeight = this.style.height;
|
|
102
|
-
const prevOverflow = this.style.overflow;
|
|
103
|
-
this.style.width = rect.width + "px";
|
|
104
|
-
this.style.height = rect.height + "px";
|
|
105
|
-
this.style.overflow = "hidden";
|
|
106
|
-
if (this.displayHandler) {
|
|
107
|
-
const promises = [];
|
|
108
|
-
items.filter((el) => el !== activeItem).forEach((el) => {
|
|
109
|
-
const displayHandlerResult = this.displayHandler(el, false);
|
|
110
|
-
if (displayHandlerResult instanceof Promise) {
|
|
111
|
-
promises.push(displayHandlerResult);
|
|
112
|
-
}
|
|
113
|
-
});
|
|
114
|
-
yield Promise.all(promises);
|
|
115
|
-
let targetHeight = 0;
|
|
116
|
-
console.log("targetHeight", targetHeight);
|
|
117
|
-
if (activeItem) {
|
|
118
|
-
activeItem.classList.add("a-technical-transparent");
|
|
119
|
-
targetHeight = activeItem.scrollHeight;
|
|
120
|
-
activeItem.classList.remove("a-technical-transparent");
|
|
121
|
-
}
|
|
122
|
-
console.log("targetHeight", targetHeight);
|
|
123
|
-
const heightAnimation = this.animate([
|
|
124
|
-
{ height: rect.height + "px" },
|
|
125
|
-
{ height: targetHeight + "px" }
|
|
126
|
-
], {
|
|
127
|
-
duration: 300,
|
|
128
|
-
easing: "ease-in-out"
|
|
129
|
-
});
|
|
130
|
-
yield new Promise((resolve) => {
|
|
131
|
-
heightAnimation.addEventListener("finish", resolve);
|
|
132
|
-
});
|
|
133
|
-
this.style.height = targetHeight + "px";
|
|
134
|
-
if (activeItem) {
|
|
135
|
-
yield this.displayHandler(activeItem, true);
|
|
136
|
-
}
|
|
137
|
-
} else {
|
|
138
|
-
items.filter((el) => el !== activeItem).forEach((el) => {
|
|
139
|
-
const show = el === activeItem;
|
|
140
|
-
el.hidden = true;
|
|
141
|
-
});
|
|
142
|
-
let targetHeight = 0;
|
|
143
|
-
if (activeItem) {
|
|
144
|
-
activeItem.classList.add("a-technical-transparent");
|
|
145
|
-
targetHeight = activeItem.scrollHeight;
|
|
146
|
-
;
|
|
147
|
-
activeItem.classList.remove("a-technical-transparent");
|
|
148
|
-
}
|
|
149
|
-
this.style.height = targetHeight + "px";
|
|
150
|
-
if (activeItem) {
|
|
151
|
-
activeItem.hidden = false;
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
this.style.height = "";
|
|
155
|
-
this.style.width = prevWidth;
|
|
156
|
-
this.style.overflow = prevOverflow;
|
|
157
|
-
this.aBoardUpdateDisplaying();
|
|
158
|
-
this.observeMutations();
|
|
159
|
-
});
|
|
160
|
-
}
|
|
161
|
-
/**
|
|
162
|
-
* Observe direct children and text nodes only, with debounce
|
|
163
|
-
*/
|
|
164
|
-
observeMutations() {
|
|
165
|
-
if (this.mutationObserver) this.mutationObserver.disconnect();
|
|
166
|
-
this.mutationObserver = new MutationObserver(() => {
|
|
167
|
-
clearTimeout(this.mutationTimeout);
|
|
168
|
-
this.mutationTimeout = window.setTimeout(() => {
|
|
169
|
-
this.aBoardUpdateDisplaying();
|
|
170
|
-
}, 50);
|
|
171
|
-
});
|
|
172
|
-
this.mutationObserver.observe(this, {
|
|
173
|
-
childList: true,
|
|
174
|
-
characterData: true,
|
|
175
|
-
attributes: true,
|
|
176
|
-
subtree: false,
|
|
177
|
-
attributeFilter: ["hidden", "style", "class"]
|
|
178
|
-
});
|
|
179
|
-
}
|
|
180
|
-
/**
|
|
181
|
-
* Set global display handler for all <a-board> instances
|
|
182
|
-
*/
|
|
183
|
-
static setGlobalDisplayHandler(handler) {
|
|
184
|
-
_AngelsBoardWebComponent.globalDisplayHandler = handler;
|
|
185
|
-
}
|
|
186
|
-
};
|
|
187
|
-
function registerAngelsBoard(options) {
|
|
188
|
-
if (!customElements.get("a-board")) {
|
|
189
|
-
if (options == null ? void 0 : options.displayHandler) {
|
|
190
|
-
AngelsBoardWebComponent.setGlobalDisplayHandler(options.displayHandler);
|
|
191
|
-
}
|
|
192
|
-
customElements.define("a-board", AngelsBoardWebComponent);
|
|
193
|
-
} else if (options == null ? void 0 : options.displayHandler) {
|
|
194
|
-
AngelsBoardWebComponent.setGlobalDisplayHandler(options.displayHandler);
|
|
195
|
-
}
|
|
196
|
-
return customElements.get("a-board");
|
|
197
|
-
}
|
|
198
|
-
|
|
199
|
-
// src/AngelsWebComponents/AngelsStateWebComponent.ts
|
|
200
|
-
var AngelsStateWebComponent = class extends HTMLElement {
|
|
201
|
-
aStateAlert(message) {
|
|
202
|
-
this.aStateSet("a-alert", message);
|
|
203
|
-
}
|
|
204
|
-
aStateClear() {
|
|
205
|
-
this.classList.remove("a-alert", "a-debug", "a-done", "a-error", "a-info", "a-tip", "a-warn");
|
|
206
|
-
this.textContent = "";
|
|
207
|
-
this.hidden = true;
|
|
208
|
-
}
|
|
209
|
-
aStateDebug(message) {
|
|
210
|
-
this.aStateSet("a-debug", message);
|
|
211
|
-
}
|
|
212
|
-
aStateDone(message) {
|
|
213
|
-
this.aStateSet("a-done", message);
|
|
214
|
-
}
|
|
215
|
-
aStateError(message) {
|
|
216
|
-
this.aStateSet("a-error", message);
|
|
217
|
-
}
|
|
218
|
-
aStateInfo(message) {
|
|
219
|
-
this.aStateSet("a-info", message);
|
|
220
|
-
}
|
|
221
|
-
aStateTip(message) {
|
|
222
|
-
this.aStateSet("a-tip", message);
|
|
223
|
-
}
|
|
224
|
-
aStateWarn(message) {
|
|
225
|
-
this.aStateSet("a-info", message);
|
|
226
|
-
}
|
|
227
|
-
aStateSet(className, message) {
|
|
228
|
-
this.classList.remove("a-alert", "a-debug", "a-done", "a-error", "a-info", "a-tip", "a-warn");
|
|
229
|
-
this.classList.add(className);
|
|
230
|
-
this.textContent = message;
|
|
231
|
-
this.hidden = false;
|
|
232
|
-
}
|
|
233
|
-
};
|
|
234
|
-
function registerAngelsState() {
|
|
235
|
-
if (!customElements.get("a-state")) {
|
|
236
|
-
customElements.define("a-state", AngelsStateWebComponent);
|
|
237
|
-
}
|
|
238
|
-
return customElements.get("a-state");
|
|
239
|
-
}
|
|
240
|
-
|
|
241
|
-
// src/AngelsCore.ts
|
|
242
|
-
registerAngelsBoard({
|
|
243
|
-
displayHandler: aEngageElement
|
|
244
|
-
});
|
|
245
|
-
registerAngelsState();
|
|
246
|
-
//# sourceMappingURL=AngelsCore.cjs.map
|
package/dist/AngelsCore.cjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/AngelsWebComponents/AngelsBoardWebComponent.ts","../src/AngelsWebComponents/AngelsStateWebComponent.ts","../src/AngelsCore.ts"],"sourcesContent":["export type AngelsBoardItemKey = string;\nexport type DisplayHandler = (el: HTMLElement, show: boolean) => Promise<void> | void;\n\n/**\n * Custom web component <a-board> that automatically shows or hides itself\n * based on the visibility of its direct children and the presence of text nodes.\n * Supports a global displayHandler set during registration.\n */\nexport default class AngelsBoardWebComponent extends HTMLElement {\n private static globalDisplayHandler?: DisplayHandler;\n\n private mutationObserver?: MutationObserver;\n private mutationTimeout?: number;\n\n /**\n * Use the global displayHandler if set\n */\n private get displayHandler(): DisplayHandler | undefined {\n return AngelsBoardWebComponent.globalDisplayHandler;\n }\n\n /**\n * Switch the visible child by key\n */\n aBoardSwitch(aBoardItemKey: AngelsBoardItemKey) {\n this.setAttribute('a-board-show', aBoardItemKey);\n }\n\n /**\n * Update visibility based on children/text\n */\n aBoardUpdateDisplaying() {\n const children = Array.from(this.children) as HTMLElement[];\n const hasVisibleChildren = children.some(el => !el.hidden);\n const hasNonWhitespaceText = Array.from(this.childNodes).some(\n node => node.nodeType === Node.TEXT_NODE && node.textContent!.trim() !== ''\n );\n this.hidden = !hasVisibleChildren && !hasNonWhitespaceText;\n this.toggleAttribute('a-board-auto-hidden', this.hidden);\n }\n\n aBoardShowKey(): string {\n return this.getAttribute('a-board-show') || '';\n }\n\n connectedCallback() {\n this.initContent();\n this.observeMutations();\n }\n\n disconnectedCallback() {\n this.mutationObserver?.disconnect();\n }\n\n\n static get observedAttributes() {\n return ['a-board-show'];\n }\n\n attributeChangedCallback(name: string, oldValue: any, newValue: any) {\n switch (name) {\n case 'a-board-show':\n if (oldValue !== newValue) {\n this.updateContent();\n }\n }\n }\n\n /**\n * Update which child is visible\n */\n async initContent() {\n const key = this.aBoardShowKey();\n const items = Array.from(this.querySelectorAll<HTMLElement>(`:scope > [a-board-key]`));\n const activeItem = items.find(el => el.getAttribute('a-board-key') === key);\n\n items.filter(el => el !== activeItem).forEach(el => {\n const show = el === activeItem;\n el.hidden = true;\n });\n if (activeItem) {\n activeItem.hidden = false;\n }\n\n this.aBoardUpdateDisplaying();\n }\n\n /**\n * Update which child is visible\n */\n async updateContent() {\n this.mutationObserver?.disconnect();\n\n const key = this.aBoardShowKey();\n const items = Array.from(this.querySelectorAll<HTMLElement>(`:scope > [a-board-key]`));\n const activeItem = items.find(el => el.getAttribute('a-board-key') === key);\n\n // --- FREEZE LAYOUT START ---\n const rect = this.getBoundingClientRect();\n const prevWidth = this.style.width;\n const prevHeight = this.style.height;\n const prevOverflow = this.style.overflow;\n\n this.style.width = rect.width + 'px';\n this.style.height = rect.height + 'px';\n this.style.overflow = 'hidden';\n // --- /FREEZE LAYOUT START ---\n\n if (this.displayHandler) {\n const promises: Array<Promise<void>> = [];\n items.filter(el => el !== activeItem).forEach(el => {\n const displayHandlerResult = this.displayHandler!(el, false);\n if (displayHandlerResult instanceof Promise) {\n promises.push(displayHandlerResult);\n }\n });\n await Promise.all(promises);\n\n let targetHeight = 0;\n console.log('targetHeight', targetHeight);\n if (activeItem) {\n activeItem.classList.add('a-technical-transparent');\n targetHeight = activeItem.scrollHeight;\n activeItem.classList.remove('a-technical-transparent');\n }\n console.log('targetHeight', targetHeight);\n\n // Animate board height from old → new\n const heightAnimation = this.animate([\n { height: rect.height + 'px' },\n { height: targetHeight + 'px' }\n ], {\n duration: 300,\n easing: 'ease-in-out'\n });\n await new Promise(resolve => {\n heightAnimation.addEventListener('finish', resolve);\n });\n\n this.style.height = targetHeight + 'px';\n\n if (activeItem) {\n await this.displayHandler(activeItem, true);\n }\n } else {\n items.filter(el => el !== activeItem).forEach(el => {\n const show = el === activeItem;\n el.hidden = true;\n });\n\n let targetHeight = 0;\n if (activeItem) {\n activeItem.classList.add('a-technical-transparent');\n targetHeight = activeItem.scrollHeight;;\n activeItem.classList.remove('a-technical-transparent');\n }\n\n this.style.height = targetHeight + 'px';\n\n if (activeItem) {\n activeItem.hidden = false;\n }\n }\n\n // --- FREEZE LAYOUT END ---\n this.style.height = '';\n this.style.width = prevWidth;\n this.style.overflow = prevOverflow;\n // --- /FREEZE LAYOUT END ---\n\n this.aBoardUpdateDisplaying();\n this.observeMutations();\n }\n\n /**\n * Observe direct children and text nodes only, with debounce\n */\n private observeMutations() {\n if (this.mutationObserver) this.mutationObserver.disconnect();\n\n this.mutationObserver = new MutationObserver(() => {\n clearTimeout(this.mutationTimeout);\n this.mutationTimeout = window.setTimeout(() => {\n this.aBoardUpdateDisplaying();\n }, 50);\n });\n\n this.mutationObserver.observe(this, {\n childList: true,\n characterData: true,\n attributes: true,\n subtree: false,\n attributeFilter: ['hidden', 'style', 'class'],\n });\n }\n\n /**\n * Set global display handler for all <a-board> instances\n */\n static setGlobalDisplayHandler(handler: DisplayHandler) {\n AngelsBoardWebComponent.globalDisplayHandler = handler;\n }\n}\n\n/**\n * Options for registering a-board\n */\nexport interface AngelsBoardRegistrationOptions {\n displayHandler?: DisplayHandler;\n}\n\n/**\n * Register the <a-board> custom element and optionally set a global displayHandler\n */\nexport function registerAngelsBoard(options?: AngelsBoardRegistrationOptions) {\n if (!customElements.get('a-board')) {\n if (options?.displayHandler) {\n AngelsBoardWebComponent.setGlobalDisplayHandler(options.displayHandler);\n }\n customElements.define('a-board', AngelsBoardWebComponent);\n } else if (options?.displayHandler) {\n AngelsBoardWebComponent.setGlobalDisplayHandler(options.displayHandler);\n }\n return customElements.get('a-board')!;\n}\n\n","export type AngelsStateClassType = 'a-alert' | 'a-debug' | 'a-done' | 'a-error' | 'a-info' | 'a-tip' | 'a-warn';\n\n/**\n * Custom web component <a-state> that shows different messages.\n */\nexport default class AngelsStateWebComponent extends HTMLElement {\n\n aStateAlert(message: string) {\n this.aStateSet('a-alert', message);\n }\n\n aStateClear() {\n this.classList.remove('a-alert', 'a-debug', 'a-done', 'a-error', 'a-info', 'a-tip', 'a-warn');\n this.textContent = '';\n this.hidden = true;\n }\n\n aStateDebug(message: string) {\n this.aStateSet('a-debug', message);\n }\n\n aStateDone(message: string) {\n this.aStateSet('a-done', message);\n }\n\n aStateError(message: string) {\n this.aStateSet('a-error', message);\n }\n\n aStateInfo(message: string) {\n this.aStateSet('a-info', message);\n }\n\n aStateTip(message: string) {\n this.aStateSet('a-tip', message);\n }\n\n aStateWarn(message: string) {\n this.aStateSet('a-info', message);\n }\n\n aStateSet(className: AngelsStateClassType, message: string) {\n this.classList.remove('a-alert', 'a-debug', 'a-done', 'a-error', 'a-info', 'a-tip', 'a-warn');\n this.classList.add(className);\n this.textContent = message;\n this.hidden = false;\n }\n}\n\n/**\n * Register the <a-state> custom element and optionally set a global displayHandler\n */\nexport function registerAngelsState() {\n if (!customElements.get('a-state')) {\n customElements.define('a-state', AngelsStateWebComponent);\n }\n return customElements.get('a-state')!;\n}\n\n","import { registerAngelsBoard } from \"./AngelsWebComponents/AngelsBoardWebComponent\";\nimport { registerAngelsState } from \"./AngelsWebComponents/AngelsStateWebComponent\";\n\nregisterAngelsBoard({\n displayHandler: aEngageElement\n});\nregisterAngelsState();\n"],"mappings":"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","names":[]}
|
package/dist/AngelsCore.js
DELETED
|
@@ -1,245 +0,0 @@
|
|
|
1
|
-
var __async = (__this, __arguments, generator) => {
|
|
2
|
-
return new Promise((resolve, reject) => {
|
|
3
|
-
var fulfilled = (value) => {
|
|
4
|
-
try {
|
|
5
|
-
step(generator.next(value));
|
|
6
|
-
} catch (e) {
|
|
7
|
-
reject(e);
|
|
8
|
-
}
|
|
9
|
-
};
|
|
10
|
-
var rejected = (value) => {
|
|
11
|
-
try {
|
|
12
|
-
step(generator.throw(value));
|
|
13
|
-
} catch (e) {
|
|
14
|
-
reject(e);
|
|
15
|
-
}
|
|
16
|
-
};
|
|
17
|
-
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
|
|
18
|
-
step((generator = generator.apply(__this, __arguments)).next());
|
|
19
|
-
});
|
|
20
|
-
};
|
|
21
|
-
|
|
22
|
-
// src/AngelsWebComponents/AngelsBoardWebComponent.ts
|
|
23
|
-
var AngelsBoardWebComponent = class _AngelsBoardWebComponent extends HTMLElement {
|
|
24
|
-
/**
|
|
25
|
-
* Use the global displayHandler if set
|
|
26
|
-
*/
|
|
27
|
-
get displayHandler() {
|
|
28
|
-
return _AngelsBoardWebComponent.globalDisplayHandler;
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* Switch the visible child by key
|
|
32
|
-
*/
|
|
33
|
-
aBoardSwitch(aBoardItemKey) {
|
|
34
|
-
this.setAttribute("a-board-show", aBoardItemKey);
|
|
35
|
-
}
|
|
36
|
-
/**
|
|
37
|
-
* Update visibility based on children/text
|
|
38
|
-
*/
|
|
39
|
-
aBoardUpdateDisplaying() {
|
|
40
|
-
const children = Array.from(this.children);
|
|
41
|
-
const hasVisibleChildren = children.some((el) => !el.hidden);
|
|
42
|
-
const hasNonWhitespaceText = Array.from(this.childNodes).some(
|
|
43
|
-
(node) => node.nodeType === Node.TEXT_NODE && node.textContent.trim() !== ""
|
|
44
|
-
);
|
|
45
|
-
this.hidden = !hasVisibleChildren && !hasNonWhitespaceText;
|
|
46
|
-
this.toggleAttribute("a-board-auto-hidden", this.hidden);
|
|
47
|
-
}
|
|
48
|
-
aBoardShowKey() {
|
|
49
|
-
return this.getAttribute("a-board-show") || "";
|
|
50
|
-
}
|
|
51
|
-
connectedCallback() {
|
|
52
|
-
this.initContent();
|
|
53
|
-
this.observeMutations();
|
|
54
|
-
}
|
|
55
|
-
disconnectedCallback() {
|
|
56
|
-
var _a;
|
|
57
|
-
(_a = this.mutationObserver) == null ? void 0 : _a.disconnect();
|
|
58
|
-
}
|
|
59
|
-
static get observedAttributes() {
|
|
60
|
-
return ["a-board-show"];
|
|
61
|
-
}
|
|
62
|
-
attributeChangedCallback(name, oldValue, newValue) {
|
|
63
|
-
switch (name) {
|
|
64
|
-
case "a-board-show":
|
|
65
|
-
if (oldValue !== newValue) {
|
|
66
|
-
this.updateContent();
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
/**
|
|
71
|
-
* Update which child is visible
|
|
72
|
-
*/
|
|
73
|
-
initContent() {
|
|
74
|
-
return __async(this, null, function* () {
|
|
75
|
-
const key = this.aBoardShowKey();
|
|
76
|
-
const items = Array.from(this.querySelectorAll(`:scope > [a-board-key]`));
|
|
77
|
-
const activeItem = items.find((el) => el.getAttribute("a-board-key") === key);
|
|
78
|
-
items.filter((el) => el !== activeItem).forEach((el) => {
|
|
79
|
-
const show = el === activeItem;
|
|
80
|
-
el.hidden = true;
|
|
81
|
-
});
|
|
82
|
-
if (activeItem) {
|
|
83
|
-
activeItem.hidden = false;
|
|
84
|
-
}
|
|
85
|
-
this.aBoardUpdateDisplaying();
|
|
86
|
-
});
|
|
87
|
-
}
|
|
88
|
-
/**
|
|
89
|
-
* Update which child is visible
|
|
90
|
-
*/
|
|
91
|
-
updateContent() {
|
|
92
|
-
return __async(this, null, function* () {
|
|
93
|
-
var _a;
|
|
94
|
-
(_a = this.mutationObserver) == null ? void 0 : _a.disconnect();
|
|
95
|
-
const key = this.aBoardShowKey();
|
|
96
|
-
const items = Array.from(this.querySelectorAll(`:scope > [a-board-key]`));
|
|
97
|
-
const activeItem = items.find((el) => el.getAttribute("a-board-key") === key);
|
|
98
|
-
const rect = this.getBoundingClientRect();
|
|
99
|
-
const prevWidth = this.style.width;
|
|
100
|
-
const prevHeight = this.style.height;
|
|
101
|
-
const prevOverflow = this.style.overflow;
|
|
102
|
-
this.style.width = rect.width + "px";
|
|
103
|
-
this.style.height = rect.height + "px";
|
|
104
|
-
this.style.overflow = "hidden";
|
|
105
|
-
if (this.displayHandler) {
|
|
106
|
-
const promises = [];
|
|
107
|
-
items.filter((el) => el !== activeItem).forEach((el) => {
|
|
108
|
-
const displayHandlerResult = this.displayHandler(el, false);
|
|
109
|
-
if (displayHandlerResult instanceof Promise) {
|
|
110
|
-
promises.push(displayHandlerResult);
|
|
111
|
-
}
|
|
112
|
-
});
|
|
113
|
-
yield Promise.all(promises);
|
|
114
|
-
let targetHeight = 0;
|
|
115
|
-
console.log("targetHeight", targetHeight);
|
|
116
|
-
if (activeItem) {
|
|
117
|
-
activeItem.classList.add("a-technical-transparent");
|
|
118
|
-
targetHeight = activeItem.scrollHeight;
|
|
119
|
-
activeItem.classList.remove("a-technical-transparent");
|
|
120
|
-
}
|
|
121
|
-
console.log("targetHeight", targetHeight);
|
|
122
|
-
const heightAnimation = this.animate([
|
|
123
|
-
{ height: rect.height + "px" },
|
|
124
|
-
{ height: targetHeight + "px" }
|
|
125
|
-
], {
|
|
126
|
-
duration: 300,
|
|
127
|
-
easing: "ease-in-out"
|
|
128
|
-
});
|
|
129
|
-
yield new Promise((resolve) => {
|
|
130
|
-
heightAnimation.addEventListener("finish", resolve);
|
|
131
|
-
});
|
|
132
|
-
this.style.height = targetHeight + "px";
|
|
133
|
-
if (activeItem) {
|
|
134
|
-
yield this.displayHandler(activeItem, true);
|
|
135
|
-
}
|
|
136
|
-
} else {
|
|
137
|
-
items.filter((el) => el !== activeItem).forEach((el) => {
|
|
138
|
-
const show = el === activeItem;
|
|
139
|
-
el.hidden = true;
|
|
140
|
-
});
|
|
141
|
-
let targetHeight = 0;
|
|
142
|
-
if (activeItem) {
|
|
143
|
-
activeItem.classList.add("a-technical-transparent");
|
|
144
|
-
targetHeight = activeItem.scrollHeight;
|
|
145
|
-
;
|
|
146
|
-
activeItem.classList.remove("a-technical-transparent");
|
|
147
|
-
}
|
|
148
|
-
this.style.height = targetHeight + "px";
|
|
149
|
-
if (activeItem) {
|
|
150
|
-
activeItem.hidden = false;
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
this.style.height = "";
|
|
154
|
-
this.style.width = prevWidth;
|
|
155
|
-
this.style.overflow = prevOverflow;
|
|
156
|
-
this.aBoardUpdateDisplaying();
|
|
157
|
-
this.observeMutations();
|
|
158
|
-
});
|
|
159
|
-
}
|
|
160
|
-
/**
|
|
161
|
-
* Observe direct children and text nodes only, with debounce
|
|
162
|
-
*/
|
|
163
|
-
observeMutations() {
|
|
164
|
-
if (this.mutationObserver) this.mutationObserver.disconnect();
|
|
165
|
-
this.mutationObserver = new MutationObserver(() => {
|
|
166
|
-
clearTimeout(this.mutationTimeout);
|
|
167
|
-
this.mutationTimeout = window.setTimeout(() => {
|
|
168
|
-
this.aBoardUpdateDisplaying();
|
|
169
|
-
}, 50);
|
|
170
|
-
});
|
|
171
|
-
this.mutationObserver.observe(this, {
|
|
172
|
-
childList: true,
|
|
173
|
-
characterData: true,
|
|
174
|
-
attributes: true,
|
|
175
|
-
subtree: false,
|
|
176
|
-
attributeFilter: ["hidden", "style", "class"]
|
|
177
|
-
});
|
|
178
|
-
}
|
|
179
|
-
/**
|
|
180
|
-
* Set global display handler for all <a-board> instances
|
|
181
|
-
*/
|
|
182
|
-
static setGlobalDisplayHandler(handler) {
|
|
183
|
-
_AngelsBoardWebComponent.globalDisplayHandler = handler;
|
|
184
|
-
}
|
|
185
|
-
};
|
|
186
|
-
function registerAngelsBoard(options) {
|
|
187
|
-
if (!customElements.get("a-board")) {
|
|
188
|
-
if (options == null ? void 0 : options.displayHandler) {
|
|
189
|
-
AngelsBoardWebComponent.setGlobalDisplayHandler(options.displayHandler);
|
|
190
|
-
}
|
|
191
|
-
customElements.define("a-board", AngelsBoardWebComponent);
|
|
192
|
-
} else if (options == null ? void 0 : options.displayHandler) {
|
|
193
|
-
AngelsBoardWebComponent.setGlobalDisplayHandler(options.displayHandler);
|
|
194
|
-
}
|
|
195
|
-
return customElements.get("a-board");
|
|
196
|
-
}
|
|
197
|
-
|
|
198
|
-
// src/AngelsWebComponents/AngelsStateWebComponent.ts
|
|
199
|
-
var AngelsStateWebComponent = class extends HTMLElement {
|
|
200
|
-
aStateAlert(message) {
|
|
201
|
-
this.aStateSet("a-alert", message);
|
|
202
|
-
}
|
|
203
|
-
aStateClear() {
|
|
204
|
-
this.classList.remove("a-alert", "a-debug", "a-done", "a-error", "a-info", "a-tip", "a-warn");
|
|
205
|
-
this.textContent = "";
|
|
206
|
-
this.hidden = true;
|
|
207
|
-
}
|
|
208
|
-
aStateDebug(message) {
|
|
209
|
-
this.aStateSet("a-debug", message);
|
|
210
|
-
}
|
|
211
|
-
aStateDone(message) {
|
|
212
|
-
this.aStateSet("a-done", message);
|
|
213
|
-
}
|
|
214
|
-
aStateError(message) {
|
|
215
|
-
this.aStateSet("a-error", message);
|
|
216
|
-
}
|
|
217
|
-
aStateInfo(message) {
|
|
218
|
-
this.aStateSet("a-info", message);
|
|
219
|
-
}
|
|
220
|
-
aStateTip(message) {
|
|
221
|
-
this.aStateSet("a-tip", message);
|
|
222
|
-
}
|
|
223
|
-
aStateWarn(message) {
|
|
224
|
-
this.aStateSet("a-info", message);
|
|
225
|
-
}
|
|
226
|
-
aStateSet(className, message) {
|
|
227
|
-
this.classList.remove("a-alert", "a-debug", "a-done", "a-error", "a-info", "a-tip", "a-warn");
|
|
228
|
-
this.classList.add(className);
|
|
229
|
-
this.textContent = message;
|
|
230
|
-
this.hidden = false;
|
|
231
|
-
}
|
|
232
|
-
};
|
|
233
|
-
function registerAngelsState() {
|
|
234
|
-
if (!customElements.get("a-state")) {
|
|
235
|
-
customElements.define("a-state", AngelsStateWebComponent);
|
|
236
|
-
}
|
|
237
|
-
return customElements.get("a-state");
|
|
238
|
-
}
|
|
239
|
-
|
|
240
|
-
// src/AngelsCore.ts
|
|
241
|
-
registerAngelsBoard({
|
|
242
|
-
displayHandler: aEngageElement
|
|
243
|
-
});
|
|
244
|
-
registerAngelsState();
|
|
245
|
-
//# sourceMappingURL=AngelsCore.js.map
|