@waaelg/dga-design-system 0.4.5 → 0.4.6
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/README.md +7 -9
- package/dist/index.js +174 -160
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -419,18 +419,16 @@ SCSS source files are **not** included in the npm package. To customize variable
|
|
|
419
419
|
git clone https://github.com/waaelg/dga-design-system.git
|
|
420
420
|
cd dga-design-system
|
|
421
421
|
npm install
|
|
422
|
-
npm run dev
|
|
423
|
-
npm run build
|
|
422
|
+
npm run docs:dev # documentation at http://localhost:5173
|
|
423
|
+
npm run build # outputs dist/index.js and dist/style.css
|
|
424
424
|
```
|
|
425
425
|
|
|
426
|
-
|
|
426
|
+
Documentation site (VitePress):
|
|
427
427
|
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
| `colors.html` | Color palette |
|
|
433
|
-
| `verify-bar.html` | `<dga-verify-bar>` web component |
|
|
428
|
+
```bash
|
|
429
|
+
npm run docs:dev # local docs
|
|
430
|
+
npm run docs:build # production build
|
|
431
|
+
```
|
|
434
432
|
|
|
435
433
|
Documentation:
|
|
436
434
|
|
package/dist/index.js
CHANGED
|
@@ -1,49 +1,49 @@
|
|
|
1
|
-
class
|
|
2
|
-
constructor(
|
|
3
|
-
this.root =
|
|
1
|
+
class c {
|
|
2
|
+
constructor(e) {
|
|
3
|
+
this.root = e, this.handleClick = this.handleClick.bind(this), this.handleKeydown = this.handleKeydown.bind(this), this.init();
|
|
4
4
|
}
|
|
5
5
|
init() {
|
|
6
6
|
this.root.addEventListener("click", this.handleClick), this.root.addEventListener("keydown", this.handleKeydown);
|
|
7
7
|
}
|
|
8
|
-
handleClick(
|
|
9
|
-
const
|
|
10
|
-
|
|
8
|
+
handleClick(e) {
|
|
9
|
+
const t = e.target.closest(".dga-acc-header");
|
|
10
|
+
t && this.root.contains(t) && this.toggle(t);
|
|
11
11
|
}
|
|
12
|
-
handleKeydown(
|
|
13
|
-
const
|
|
14
|
-
!
|
|
12
|
+
handleKeydown(e) {
|
|
13
|
+
const t = e.target.closest(".dga-acc-header");
|
|
14
|
+
!t || !this.root.contains(t) || (e.key === "Enter" || e.key === " ") && (e.preventDefault(), this.toggle(t));
|
|
15
15
|
}
|
|
16
|
-
toggle(
|
|
17
|
-
const
|
|
18
|
-
|
|
16
|
+
toggle(e) {
|
|
17
|
+
const t = e.parentElement;
|
|
18
|
+
t && (t.classList.contains("dga-acc-item--active") ? this.close(t) : this.open(t));
|
|
19
19
|
}
|
|
20
|
-
open(
|
|
21
|
-
|
|
20
|
+
open(e) {
|
|
21
|
+
e.classList.add("dga-acc-item--active"), e.querySelector(".dga-acc-header")?.setAttribute("aria-expanded", "true");
|
|
22
22
|
}
|
|
23
|
-
close(
|
|
24
|
-
|
|
23
|
+
close(e) {
|
|
24
|
+
e.classList.remove("dga-acc-item--active"), e.querySelector(".dga-acc-header")?.setAttribute("aria-expanded", "false");
|
|
25
25
|
}
|
|
26
26
|
closeAll() {
|
|
27
|
-
this.root.querySelectorAll(".dga-acc-item").forEach((
|
|
28
|
-
this.close(
|
|
27
|
+
this.root.querySelectorAll(".dga-acc-item").forEach((e) => {
|
|
28
|
+
this.close(e);
|
|
29
29
|
});
|
|
30
30
|
}
|
|
31
31
|
destroy() {
|
|
32
32
|
this.root.removeEventListener("click", this.handleClick), this.root.removeEventListener("keydown", this.handleKeydown);
|
|
33
33
|
}
|
|
34
34
|
}
|
|
35
|
-
class
|
|
36
|
-
constructor(
|
|
37
|
-
this.accordion =
|
|
35
|
+
class x {
|
|
36
|
+
constructor(e) {
|
|
37
|
+
this.accordion = e, this.controller = new c(e);
|
|
38
38
|
}
|
|
39
|
-
toggle(
|
|
40
|
-
this.controller.toggle(
|
|
39
|
+
toggle(e) {
|
|
40
|
+
this.controller.toggle(e);
|
|
41
41
|
}
|
|
42
|
-
open(
|
|
43
|
-
this.controller.open(
|
|
42
|
+
open(e) {
|
|
43
|
+
this.controller.open(e);
|
|
44
44
|
}
|
|
45
|
-
close(
|
|
46
|
-
this.controller.close(
|
|
45
|
+
close(e) {
|
|
46
|
+
this.controller.close(e);
|
|
47
47
|
}
|
|
48
48
|
closeAll() {
|
|
49
49
|
this.controller.closeAll();
|
|
@@ -52,114 +52,114 @@ class w {
|
|
|
52
52
|
this.controller.destroy();
|
|
53
53
|
}
|
|
54
54
|
}
|
|
55
|
-
class
|
|
56
|
-
constructor(
|
|
57
|
-
this.root =
|
|
55
|
+
class D {
|
|
56
|
+
constructor(e = document) {
|
|
57
|
+
this.root = e, this.handleCloseClick = this.handleCloseClick.bind(this), this.init();
|
|
58
58
|
}
|
|
59
59
|
init() {
|
|
60
60
|
this.root.addEventListener("click", this.handleCloseClick);
|
|
61
61
|
}
|
|
62
|
-
handleCloseClick(
|
|
63
|
-
const
|
|
64
|
-
if (!
|
|
62
|
+
handleCloseClick(e) {
|
|
63
|
+
const t = e.target.closest("[data-alert-close]");
|
|
64
|
+
if (!t)
|
|
65
65
|
return;
|
|
66
|
-
const i =
|
|
66
|
+
const i = t.closest(".dga-alert");
|
|
67
67
|
i && (i.style.display = "none");
|
|
68
68
|
}
|
|
69
69
|
destroy() {
|
|
70
70
|
this.root.removeEventListener("click", this.handleCloseClick);
|
|
71
71
|
}
|
|
72
72
|
}
|
|
73
|
-
function
|
|
73
|
+
function h(s) {
|
|
74
74
|
return s.startsWith("#") || s.startsWith("var(") ? s : `var(--${s})`;
|
|
75
75
|
}
|
|
76
|
-
function
|
|
76
|
+
function u(s = []) {
|
|
77
77
|
return `conic-gradient(${s.map(
|
|
78
|
-
(
|
|
78
|
+
(t) => `${h(t.color)} ${t.from} ${t.to}`
|
|
79
79
|
).join(", ")})`;
|
|
80
80
|
}
|
|
81
|
-
function
|
|
81
|
+
function g(s = []) {
|
|
82
82
|
return `<div class="dga-pie-chart__labels">${s.map(
|
|
83
|
-
(
|
|
84
|
-
|
|
85
|
-
)}"></span>${
|
|
83
|
+
(t) => `<span class="dga-pie-chart__label"><span class="dga-pie-chart__circle" style="background-color: ${h(
|
|
84
|
+
t.color
|
|
85
|
+
)}"></span>${t.label}</span>`
|
|
86
86
|
).join("")}</div>`;
|
|
87
87
|
}
|
|
88
|
-
function
|
|
88
|
+
function y(s) {
|
|
89
89
|
if (!s) return [];
|
|
90
90
|
try {
|
|
91
|
-
const
|
|
92
|
-
return Array.isArray(
|
|
91
|
+
const e = JSON.parse(s);
|
|
92
|
+
return Array.isArray(e) ? e : [];
|
|
93
93
|
} catch {
|
|
94
94
|
return console.warn("dga-pie-chart: invalid data attribute JSON"), [];
|
|
95
95
|
}
|
|
96
96
|
}
|
|
97
|
-
function
|
|
98
|
-
s && (s.classList.add("dga-pie-chart"), s.setAttribute("data-hole",
|
|
97
|
+
function p(s, e = [], { hole: t = !1 } = {}) {
|
|
98
|
+
s && (s.classList.add("dga-pie-chart"), s.setAttribute("data-hole", t ? "true" : "false"), s.style.background = u(e), s.innerHTML = g(e));
|
|
99
99
|
}
|
|
100
|
-
class
|
|
101
|
-
constructor(
|
|
102
|
-
this.chart =
|
|
100
|
+
class T {
|
|
101
|
+
constructor(e, t = []) {
|
|
102
|
+
this.chart = e, this.data = t, this.init();
|
|
103
103
|
}
|
|
104
104
|
init() {
|
|
105
|
-
const
|
|
106
|
-
|
|
105
|
+
const e = this.chart.getAttribute("data-hole") === "true";
|
|
106
|
+
p(this.chart, this.data, { hole: e });
|
|
107
107
|
}
|
|
108
108
|
generateGradient() {
|
|
109
|
-
return
|
|
109
|
+
return u(this.data);
|
|
110
110
|
}
|
|
111
111
|
generateLabels() {
|
|
112
|
-
return
|
|
112
|
+
return g(this.data);
|
|
113
113
|
}
|
|
114
114
|
}
|
|
115
|
-
async function
|
|
115
|
+
async function b(s) {
|
|
116
116
|
try {
|
|
117
117
|
if (navigator.clipboard?.writeText)
|
|
118
118
|
return await navigator.clipboard.writeText(s), !0;
|
|
119
119
|
} catch {
|
|
120
120
|
}
|
|
121
|
-
const
|
|
122
|
-
|
|
123
|
-
const
|
|
124
|
-
return document.body.removeChild(
|
|
121
|
+
const e = document.createElement("textarea");
|
|
122
|
+
e.value = s, e.setAttribute("readonly", ""), e.style.position = "absolute", e.style.left = "-9999px", document.body.appendChild(e), e.select();
|
|
123
|
+
const t = document.execCommand("copy");
|
|
124
|
+
return document.body.removeChild(e), t;
|
|
125
125
|
}
|
|
126
|
-
const
|
|
126
|
+
const d = `<svg viewBox="0 0 24 24" fill="none" aria-hidden="true">
|
|
127
127
|
<rect x="9" y="9" width="11" height="11" rx="2" stroke-width="1.75"></rect>
|
|
128
128
|
<path d="M6 15H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v1" stroke-width="1.75" stroke-linecap="round"></path>
|
|
129
129
|
</svg>`;
|
|
130
|
-
async function
|
|
131
|
-
const
|
|
130
|
+
async function m(s, e = 1200) {
|
|
131
|
+
const t = s.getAttribute("aria-label") || "Copy code";
|
|
132
132
|
s.setAttribute("aria-label", "Copied"), s.setAttribute("data-copied", "true"), window.setTimeout(() => {
|
|
133
|
-
s.setAttribute("aria-label",
|
|
134
|
-
},
|
|
133
|
+
s.setAttribute("aria-label", t), s.setAttribute("data-copied", "false");
|
|
134
|
+
}, e);
|
|
135
135
|
}
|
|
136
|
-
class
|
|
137
|
-
constructor(
|
|
138
|
-
this.root =
|
|
136
|
+
class S {
|
|
137
|
+
constructor(e = document) {
|
|
138
|
+
this.root = e, this.handleCopyClick = this.handleCopyClick.bind(this), this.init();
|
|
139
139
|
}
|
|
140
140
|
init() {
|
|
141
141
|
this.root.addEventListener("click", this.handleCopyClick);
|
|
142
142
|
}
|
|
143
|
-
async handleCopyClick(
|
|
144
|
-
const
|
|
143
|
+
async handleCopyClick(e) {
|
|
144
|
+
const t = e.target.closest(
|
|
145
145
|
".dga-code-snippet-inline__copy, .dga-code-snippet-multiline__copy"
|
|
146
146
|
);
|
|
147
|
-
if (!
|
|
148
|
-
const i =
|
|
149
|
-
let
|
|
150
|
-
i ?
|
|
147
|
+
if (!t) return;
|
|
148
|
+
const i = t.closest(".dga-code-snippet-inline"), n = t.closest(".dga-code-snippet-multiline");
|
|
149
|
+
let o = "";
|
|
150
|
+
i ? o = i.querySelector(
|
|
151
151
|
".dga-code-snippet-inline__content"
|
|
152
|
-
)?.textContent?.trim() || "" : n && (
|
|
152
|
+
)?.textContent?.trim() || "" : n && (o = n.querySelector(
|
|
153
153
|
".dga-code-snippet-multiline__code code"
|
|
154
|
-
)?.textContent || ""), !(!
|
|
154
|
+
)?.textContent || ""), !(!o || !await b(o)) && await m(t);
|
|
155
155
|
}
|
|
156
156
|
destroy() {
|
|
157
157
|
this.root.removeEventListener("click", this.handleCopyClick);
|
|
158
158
|
}
|
|
159
159
|
}
|
|
160
|
-
class
|
|
161
|
-
constructor(
|
|
162
|
-
if (this.navbar =
|
|
160
|
+
class B {
|
|
161
|
+
constructor(e = {}) {
|
|
162
|
+
if (this.navbar = e.navbar || document.querySelector(".dga-navbar"), this.verifyBar = e.verifyBar || null, !this.navbar) {
|
|
163
163
|
console.warn("DGA Navbar elements not found");
|
|
164
164
|
return;
|
|
165
165
|
}
|
|
@@ -167,7 +167,7 @@ class T {
|
|
|
167
167
|
console.warn("DGA Menu element not found");
|
|
168
168
|
return;
|
|
169
169
|
}
|
|
170
|
-
this.boundToggleDropdown = (
|
|
170
|
+
this.boundToggleDropdown = (t) => this.toggleDropdown(t), this.boundToggleMobileMenu = (t) => this.toggleMobileMenu(t), this.boundCloseAllDropdowns = (t) => this.closeAllDropdowns(t), this.boundHandleResize = () => this.handleResize(), this.boundHandleKeyboard = (t) => this.handleKeyboard(t), this.init();
|
|
171
171
|
}
|
|
172
172
|
get isActive() {
|
|
173
173
|
return this.isMobileMenuOpen() || this.isNormalDropdownOpen();
|
|
@@ -176,31 +176,31 @@ class T {
|
|
|
176
176
|
this.handleResize(), this.bindEvents();
|
|
177
177
|
}
|
|
178
178
|
bindEvents() {
|
|
179
|
-
this.menuItems.forEach((
|
|
180
|
-
|
|
181
|
-
}), this.toggler?.addEventListener("click", this.boundToggleMobileMenu), document.addEventListener("click", this.boundCloseAllDropdowns), window.addEventListener("resize", this.boundHandleResize), this.menuItems.forEach((
|
|
182
|
-
|
|
179
|
+
this.menuItems.forEach((e) => {
|
|
180
|
+
e.addEventListener("click", this.boundToggleDropdown);
|
|
181
|
+
}), this.toggler?.addEventListener("click", this.boundToggleMobileMenu), document.addEventListener("click", this.boundCloseAllDropdowns), window.addEventListener("resize", this.boundHandleResize), this.menuItems.forEach((e) => {
|
|
182
|
+
e.addEventListener("keydown", this.boundHandleKeyboard);
|
|
183
183
|
});
|
|
184
184
|
}
|
|
185
|
-
toggleDropdown(
|
|
186
|
-
|
|
187
|
-
const
|
|
188
|
-
this.closeAllDropdowns(), n || (i.classList.add("active"),
|
|
185
|
+
toggleDropdown(e) {
|
|
186
|
+
e.preventDefault(), e.stopPropagation(), this.verifyBar && this.verifyBar.isOpen && this.verifyBar.closePanel();
|
|
187
|
+
const t = e.currentTarget, i = t.parentElement, n = i.classList.contains("active");
|
|
188
|
+
this.closeAllDropdowns(), n || (i.classList.add("active"), t.classList.add("dga-menu-item-selected"), t.setAttribute("aria-expanded", "true"), i.querySelector(".dga-dropdown").style.top = `${this.navbarHeight + this.navbarTop}px`);
|
|
189
189
|
}
|
|
190
|
-
toggleMobileMenu(
|
|
191
|
-
|
|
192
|
-
const
|
|
193
|
-
this.toggler.setAttribute("aria-expanded",
|
|
190
|
+
toggleMobileMenu(e) {
|
|
191
|
+
e.stopPropagation(), this.verifyBar && this.verifyBar.isOpen && this.verifyBar.closePanel(), this.menu.classList.toggle("dga-menu-open"), this.menu.classList.contains("dga-menu-open") ? (document.body.classList.add("no-scroll"), this.menu.style.height = `calc(100vh - ${this.navbarHeight}px - ${this.navbarTop}px)`) : (document.body.classList.remove("no-scroll"), this.menu.style.height = "0px"), this.menu.style.top = `${this.navbarTop + this.navbarHeight}px`;
|
|
192
|
+
const t = this.menu.classList.contains("dga-menu-open");
|
|
193
|
+
this.toggler.setAttribute("aria-expanded", t), this.toggler.setAttribute(
|
|
194
194
|
"aria-label",
|
|
195
|
-
|
|
195
|
+
t ? "Close menu" : "Open menu"
|
|
196
196
|
);
|
|
197
197
|
}
|
|
198
198
|
// Public method to close menu programmatically (without event)
|
|
199
199
|
closeMenu() {
|
|
200
200
|
this.closeAllDropdowns(), this.isMobileMenuOpen() && (this.menu.classList.remove("dga-menu-open"), document.body.classList.remove("no-scroll"), this.menu.style.height = "0px", this.toggler.setAttribute("aria-expanded", "false"), this.toggler.setAttribute("aria-label", "Open menu"));
|
|
201
201
|
}
|
|
202
|
-
closeAllDropdowns(
|
|
203
|
-
if (
|
|
202
|
+
closeAllDropdowns(e) {
|
|
203
|
+
if (e && e.target.closest(".dga-dropdown-content"))
|
|
204
204
|
return;
|
|
205
205
|
this.navbar.querySelectorAll(".dga-menu > li.active").forEach((i) => {
|
|
206
206
|
i.classList.remove("active");
|
|
@@ -208,21 +208,21 @@ class T {
|
|
|
208
208
|
n?.classList.remove("dga-menu-item-selected"), n?.setAttribute("aria-expanded", "false");
|
|
209
209
|
});
|
|
210
210
|
}
|
|
211
|
-
handleKeyboard(
|
|
212
|
-
|
|
211
|
+
handleKeyboard(e) {
|
|
212
|
+
e.key === "Escape" && (this.closeAllDropdowns(), e.currentTarget.focus()), (e.key === "Enter" || e.key === " ") && (e.preventDefault(), this.toggleDropdown(e));
|
|
213
213
|
}
|
|
214
214
|
handleResize() {
|
|
215
|
-
const
|
|
215
|
+
const e = window.innerWidth;
|
|
216
216
|
document.body.classList.remove(
|
|
217
217
|
"size_desktop",
|
|
218
218
|
"size_tablet",
|
|
219
219
|
"size_mobile"
|
|
220
|
-
),
|
|
220
|
+
), e > 769 ? (document.body.classList.add("size_desktop"), this.closeAllDropdowns(), this.menu.classList.remove("dga-menu-open"), document.body.classList.remove("no-scroll")) : e <= 769 && e > 375 ? document.body.classList.add("size_tablet") : document.body.classList.add("size_mobile");
|
|
221
221
|
}
|
|
222
222
|
// Public method to destroy the component
|
|
223
223
|
destroy() {
|
|
224
|
-
this.menuItems.forEach((
|
|
225
|
-
|
|
224
|
+
this.menuItems.forEach((e) => {
|
|
225
|
+
e.removeEventListener("click", this.boundToggleDropdown), e.removeEventListener("keydown", this.boundHandleKeyboard);
|
|
226
226
|
}), this.toggler?.removeEventListener("click", this.boundToggleMobileMenu), document.removeEventListener("click", this.boundCloseAllDropdowns), window.removeEventListener("resize", this.boundHandleResize);
|
|
227
227
|
}
|
|
228
228
|
isMobileMenuOpen() {
|
|
@@ -233,8 +233,8 @@ class T {
|
|
|
233
233
|
}
|
|
234
234
|
}
|
|
235
235
|
class M {
|
|
236
|
-
constructor(
|
|
237
|
-
if (this.isOpen = !1, this.verifyBar = document.getElementById("dga-verify-bar"), this.menu =
|
|
236
|
+
constructor(e = {}) {
|
|
237
|
+
if (this.isOpen = !1, this.verifyBar = document.getElementById("dga-verify-bar"), this.menu = e.menu || null, this.btn = document.getElementById("dga-verifyBtn"), this.content = document.getElementById("dga-verify-bar_content"), this.boundToggle = () => {
|
|
238
238
|
this.isOpen ? this.closePanel() : this.openPanel();
|
|
239
239
|
}, !this.verifyBar || !this.btn || !this.content) {
|
|
240
240
|
console.warn("DGA Verify Bar elements not found");
|
|
@@ -255,11 +255,11 @@ class M {
|
|
|
255
255
|
this.btn?.removeEventListener("click", this.boundToggle);
|
|
256
256
|
}
|
|
257
257
|
}
|
|
258
|
-
function
|
|
258
|
+
function a(s = "") {
|
|
259
259
|
return String(s).replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """).replace(/'/g, "'");
|
|
260
260
|
}
|
|
261
|
-
const
|
|
262
|
-
class
|
|
261
|
+
const f = "info-color";
|
|
262
|
+
class _ extends HTMLElement {
|
|
263
263
|
static get observedAttributes() {
|
|
264
264
|
return ["variant", "title", "dismissible"];
|
|
265
265
|
}
|
|
@@ -277,8 +277,8 @@ class f extends HTMLElement {
|
|
|
277
277
|
_captureBodyContent() {
|
|
278
278
|
if (this._bodyContent || this.querySelector(".dga-alert-content"))
|
|
279
279
|
return;
|
|
280
|
-
const
|
|
281
|
-
|
|
280
|
+
const e = this.innerHTML.trim();
|
|
281
|
+
e && (this._bodyContent = e);
|
|
282
282
|
}
|
|
283
283
|
disconnectedCallback() {
|
|
284
284
|
this._closeButton?.removeEventListener("click", this._boundDismiss);
|
|
@@ -287,13 +287,13 @@ class f extends HTMLElement {
|
|
|
287
287
|
this.isConnected && this._render();
|
|
288
288
|
}
|
|
289
289
|
_render() {
|
|
290
|
-
const
|
|
291
|
-
this.className = "dga-alert", this.setAttribute("data-variant",
|
|
292
|
-
const
|
|
290
|
+
const e = this.getAttribute("variant") || f, t = this.getAttribute("title") || "", i = this.hasAttribute("dismissible"), n = this._bodyContent || "";
|
|
291
|
+
this.className = "dga-alert", this.setAttribute("data-variant", e);
|
|
292
|
+
const o = t ? `<h4 class="dga-alert-title">${a(t)}</h4>` : "", r = i ? '<button class="dga-alert-close" type="button" data-alert-close aria-label="Dismiss alert">×</button>' : "";
|
|
293
293
|
this.innerHTML = `
|
|
294
294
|
<span class="dga-alert-icon" aria-hidden="true"></span>
|
|
295
295
|
<div class="dga-alert-content">
|
|
296
|
-
${
|
|
296
|
+
${o}
|
|
297
297
|
<div class="dga-alert-body">${n}</div>
|
|
298
298
|
</div>
|
|
299
299
|
${r}
|
|
@@ -305,8 +305,8 @@ class f extends HTMLElement {
|
|
|
305
305
|
);
|
|
306
306
|
}
|
|
307
307
|
}
|
|
308
|
-
customElements.define("dga-alert",
|
|
309
|
-
class
|
|
308
|
+
customElements.define("dga-alert", _);
|
|
309
|
+
class C extends HTMLElement {
|
|
310
310
|
static get observedAttributes() {
|
|
311
311
|
return ["title", "size", "open"];
|
|
312
312
|
}
|
|
@@ -317,11 +317,11 @@ class _ extends HTMLElement {
|
|
|
317
317
|
this.isConnected && this._render();
|
|
318
318
|
}
|
|
319
319
|
_render() {
|
|
320
|
-
const
|
|
320
|
+
const e = this.getAttribute("title") || "", t = this.getAttribute("size") || "md", i = this.hasAttribute("open"), n = this._bodyContent || "";
|
|
321
321
|
this.innerHTML = `
|
|
322
322
|
<div class="dga-acc-item${i ? " dga-acc-item--active" : ""}">
|
|
323
|
-
<button class="dga-acc-header" data-size="${
|
|
324
|
-
<span>${
|
|
323
|
+
<button class="dga-acc-header" data-size="${a(t)}" aria-expanded="${i ? "true" : "false"}">
|
|
324
|
+
<span>${a(e)}</span>
|
|
325
325
|
</button>
|
|
326
326
|
<div class="dga-acc-content">
|
|
327
327
|
<div class="dga-acc-body">${n}</div>
|
|
@@ -330,20 +330,20 @@ class _ extends HTMLElement {
|
|
|
330
330
|
`;
|
|
331
331
|
}
|
|
332
332
|
}
|
|
333
|
-
class
|
|
333
|
+
class A extends HTMLElement {
|
|
334
334
|
constructor() {
|
|
335
335
|
super(), this._controller = null;
|
|
336
336
|
}
|
|
337
337
|
connectedCallback() {
|
|
338
|
-
this.classList.add("dga-acc"), this._controller?.destroy(), this._controller = new
|
|
338
|
+
this.classList.add("dga-acc"), this._controller?.destroy(), this._controller = new c(this);
|
|
339
339
|
}
|
|
340
340
|
disconnectedCallback() {
|
|
341
341
|
this._controller?.destroy(), this._controller = null;
|
|
342
342
|
}
|
|
343
343
|
}
|
|
344
|
-
customElements.define("dga-accordion-item",
|
|
345
|
-
customElements.define("dga-accordion",
|
|
346
|
-
class
|
|
344
|
+
customElements.define("dga-accordion-item", C);
|
|
345
|
+
customElements.define("dga-accordion", A);
|
|
346
|
+
class k extends HTMLElement {
|
|
347
347
|
static get observedAttributes() {
|
|
348
348
|
return ["code", "multiline"];
|
|
349
349
|
}
|
|
@@ -360,34 +360,34 @@ class A extends HTMLElement {
|
|
|
360
360
|
this.isConnected && this._render();
|
|
361
361
|
}
|
|
362
362
|
_render() {
|
|
363
|
-
const
|
|
364
|
-
|
|
363
|
+
const e = this.hasAttribute("multiline"), t = this.getAttribute("code")?.trim() || this._codeContent || "";
|
|
364
|
+
e ? (this.innerHTML = `
|
|
365
365
|
<div class="dga-code-snippet-multiline">
|
|
366
366
|
<div class="dga-code-snippet-multiline__body">
|
|
367
|
-
<pre class="dga-code-snippet-multiline__code"><code>${
|
|
367
|
+
<pre class="dga-code-snippet-multiline__code"><code>${a(t)}</code></pre>
|
|
368
368
|
<button type="button" class="dga-code-snippet-multiline__copy" aria-label="Copy code" data-copied="false">
|
|
369
|
-
${
|
|
369
|
+
${d}
|
|
370
370
|
</button>
|
|
371
371
|
</div>
|
|
372
372
|
</div>
|
|
373
373
|
`, this._copyButton = this.querySelector(".dga-code-snippet-multiline__copy")) : (this.innerHTML = `
|
|
374
374
|
<div class="dga-code-snippet-inline">
|
|
375
|
-
<div class="dga-code-snippet-inline__content">${
|
|
375
|
+
<div class="dga-code-snippet-inline__content">${a(t)}</div>
|
|
376
376
|
<button type="button" class="dga-code-snippet-inline__copy" aria-label="Copy code" data-copied="false">
|
|
377
|
-
${
|
|
377
|
+
${d}
|
|
378
378
|
</button>
|
|
379
379
|
</div>
|
|
380
380
|
`, this._copyButton = this.querySelector(".dga-code-snippet-inline__copy")), this._copyButton?.removeEventListener("click", this._boundCopy), this._copyButton?.addEventListener("click", this._boundCopy);
|
|
381
381
|
}
|
|
382
382
|
async _handleCopy() {
|
|
383
|
-
const
|
|
384
|
-
!
|
|
383
|
+
const e = this.getAttribute("code")?.trim() || this._codeContent || "";
|
|
384
|
+
!e || !this._copyButton || !await b(e) || (await m(this._copyButton), this.dispatchEvent(
|
|
385
385
|
new CustomEvent("dga-code-copy", { bubbles: !0, composed: !0 })
|
|
386
386
|
));
|
|
387
387
|
}
|
|
388
388
|
}
|
|
389
|
-
customElements.define("dga-code-snippet",
|
|
390
|
-
class
|
|
389
|
+
customElements.define("dga-code-snippet", k);
|
|
390
|
+
class L extends HTMLElement {
|
|
391
391
|
static get observedAttributes() {
|
|
392
392
|
return ["data", "hole"];
|
|
393
393
|
}
|
|
@@ -398,14 +398,29 @@ class k extends HTMLElement {
|
|
|
398
398
|
this.isConnected && this._render();
|
|
399
399
|
}
|
|
400
400
|
_render() {
|
|
401
|
-
const
|
|
402
|
-
|
|
401
|
+
const e = y(this.getAttribute("data")), t = this.hasAttribute("hole") && this.getAttribute("hole") !== "false";
|
|
402
|
+
p(this, e, { hole: t });
|
|
403
403
|
}
|
|
404
404
|
}
|
|
405
|
-
customElements.define("dga-pie-chart",
|
|
406
|
-
|
|
405
|
+
customElements.define("dga-pie-chart", L);
|
|
406
|
+
const E = {
|
|
407
|
+
"flag-src": "saudiFlag.svg",
|
|
408
|
+
"link-icon-src": "link-icon.svg",
|
|
409
|
+
"lock-icon-src": "square-lock-password.svg",
|
|
410
|
+
"logo-src": "DGA-logo-icon.svg"
|
|
411
|
+
};
|
|
412
|
+
class w extends HTMLElement {
|
|
407
413
|
static get observedAttributes() {
|
|
408
|
-
return [
|
|
414
|
+
return [
|
|
415
|
+
"registration-number",
|
|
416
|
+
"registration-link",
|
|
417
|
+
"domain",
|
|
418
|
+
"assets-base",
|
|
419
|
+
"flag-src",
|
|
420
|
+
"link-icon-src",
|
|
421
|
+
"lock-icon-src",
|
|
422
|
+
"logo-src"
|
|
423
|
+
];
|
|
409
424
|
}
|
|
410
425
|
constructor() {
|
|
411
426
|
super(), this.isOpen = !1, this._btn = null, this._content = null, this._wrapper = null, this._boundToggle = () => this.isOpen ? this._close() : this._open();
|
|
@@ -420,14 +435,16 @@ class L extends HTMLElement {
|
|
|
420
435
|
this.isConnected && this._render();
|
|
421
436
|
}
|
|
422
437
|
_render() {
|
|
423
|
-
const
|
|
438
|
+
const e = a(
|
|
439
|
+
this.getAttribute("registration-number") || "20250105758"
|
|
440
|
+
), t = this.getAttribute("registration-link") || "https://raqmi.dga.gov.sa/platforms/platforms/9ebc5e60-9081-4653-bfb9-08dd2a2f8633/platform-license", i = a(this._normalizeLink(t)), n = a(this.getAttribute("domain") || ".edu.sa"), o = a(this._imageSrc("flag-src")), r = a(this._imageSrc("link-icon-src")), l = a(this._imageSrc("lock-icon-src")), v = a(this._imageSrc("logo-src"));
|
|
424
441
|
this.innerHTML = `
|
|
425
442
|
<div id="dga-verify-bar" class="dga-bg-gray-100 closed">
|
|
426
443
|
<div class="dga-container dga-py-2">
|
|
427
444
|
<div id="dga-verify-bar_bar" class="dga-row">
|
|
428
445
|
<div class="dga-col">
|
|
429
446
|
<div class="dga-d-flex dga-align-items-center dga-gap-2">
|
|
430
|
-
<span><img src="${
|
|
447
|
+
<span><img src="${o}" alt="علم المملكة العربية السعودية" /></span>
|
|
431
448
|
<span class="dga-text-sm">موقع حكومي رسمي تابع لحكومة المملكة العربية السعودية</span>
|
|
432
449
|
<span>
|
|
433
450
|
<button id="dga-verifyBtn" class="dga-btn dga-btn-subtle dga-text-primary-500" data-verify-toggle aria-expanded="false">
|
|
@@ -441,7 +458,7 @@ class L extends HTMLElement {
|
|
|
441
458
|
<div id="dga-verify-bar_content" class="dga-row dga-pt-10 dga-pb-8" data-verify-content style="display: ${this.isOpen ? "flex" : "none"};">
|
|
442
459
|
<div class="dga-col-md-6 dga-pb-8">
|
|
443
460
|
<div class="dga-d-flex dga-gap-4">
|
|
444
|
-
<div><img src="${
|
|
461
|
+
<div><img src="${r}" alt="" /></div>
|
|
445
462
|
<div class="dga-w-full dga-d-flex dga-flex-col dga-gap-2">
|
|
446
463
|
<h3 class="dga-text-xl dga-fw-bold">
|
|
447
464
|
روابط المواقع الالكترونية الرسمية السعودية تنتهي بـ
|
|
@@ -457,7 +474,7 @@ class L extends HTMLElement {
|
|
|
457
474
|
|
|
458
475
|
<div class="dga-col-md-6 dga-pb-8">
|
|
459
476
|
<div class="dga-d-flex dga-gap-4">
|
|
460
|
-
<div><img src="${
|
|
477
|
+
<div><img src="${l}" alt="" /></div>
|
|
461
478
|
<div class="dga-w-full dga-d-flex dga-flex-col dga-gap-2">
|
|
462
479
|
<h3 class="dga-text-xl dga-fw-bold">
|
|
463
480
|
المواقع الالكترونية الحكومية تستخدم بروتوكول
|
|
@@ -473,9 +490,9 @@ class L extends HTMLElement {
|
|
|
473
490
|
|
|
474
491
|
<div class="dga-col-12">
|
|
475
492
|
<div class="dga-d-flex dga-align-items-center dga-gap-3 dga-bg-white dga-text-md dga-rounded-md dga-py-2 dga-px-7">
|
|
476
|
-
<img src="${
|
|
493
|
+
<img src="${v}" alt="شعار هيئة الحكومة الرقمية" />
|
|
477
494
|
مسجل لدى هيئة الحكومة الرقمية برقم :
|
|
478
|
-
<a href="${i}" class="dga-link">${
|
|
495
|
+
<a href="${i}" class="dga-link">${e}</a>
|
|
479
496
|
</div>
|
|
480
497
|
</div>
|
|
481
498
|
</div>
|
|
@@ -483,38 +500,35 @@ class L extends HTMLElement {
|
|
|
483
500
|
</div>
|
|
484
501
|
`, this._btn?.removeEventListener("click", this._boundToggle), this._wrapper = this.querySelector("#dga-verify-bar"), this._btn = this.querySelector("[data-verify-toggle]"), this._content = this.querySelector("[data-verify-content]"), this._btn?.addEventListener("click", this._boundToggle);
|
|
485
502
|
}
|
|
503
|
+
_imageSrc(e) {
|
|
504
|
+
const t = this.getAttribute(e);
|
|
505
|
+
if (t) return t;
|
|
506
|
+
const i = E[e], n = this.getAttribute("assets-base") || "/";
|
|
507
|
+
return `${n.endsWith("/") ? n : `${n}/`}${i}`;
|
|
508
|
+
}
|
|
486
509
|
_open() {
|
|
487
510
|
this._content.style.display = "flex", this.isOpen = !0, this._btn?.setAttribute("aria-expanded", "true"), this._wrapper?.classList.replace("closed", "opend");
|
|
488
511
|
}
|
|
489
512
|
_close() {
|
|
490
513
|
this._content.style.display = "none", this.isOpen = !1, this._btn?.setAttribute("aria-expanded", "false"), this._wrapper?.classList.replace("opend", "closed");
|
|
491
514
|
}
|
|
492
|
-
|
|
493
|
-
return {
|
|
494
|
-
// TODO: replace with the official Saudi flag asset once added to public/.
|
|
495
|
-
"saudiFlag.svg": "/marker.svg",
|
|
496
|
-
"link-icon.svg": "/link-icon.svg",
|
|
497
|
-
"square-lock-password.svg": "/square-lock-password.svg",
|
|
498
|
-
"DGA-logo-icon.svg": "/DGA-logo-icon.svg"
|
|
499
|
-
}[t] || `/${t}`;
|
|
500
|
-
}
|
|
501
|
-
_normalizeLink(t) {
|
|
515
|
+
_normalizeLink(e) {
|
|
502
516
|
try {
|
|
503
|
-
return new URL(
|
|
517
|
+
return new URL(e, window.location.href).href;
|
|
504
518
|
} catch {
|
|
505
519
|
return "#";
|
|
506
520
|
}
|
|
507
521
|
}
|
|
508
522
|
}
|
|
509
|
-
customElements.define("dga-verify-bar",
|
|
510
|
-
const
|
|
523
|
+
customElements.define("dga-verify-bar", w);
|
|
524
|
+
const $ = !0;
|
|
511
525
|
export {
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
526
|
+
x as DGAAccordion,
|
|
527
|
+
D as DGAAlert,
|
|
528
|
+
T as DGAChart,
|
|
529
|
+
S as DGACodeSnippet,
|
|
530
|
+
B as DGAMenuDropDown,
|
|
517
531
|
M as DGAVerifyBar,
|
|
518
|
-
|
|
532
|
+
$ as DGA_WEB_COMPONENTS_REGISTERED
|
|
519
533
|
};
|
|
520
534
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/scripts/shared/accordion-controller.js","../src/scripts/accordion.js","../src/scripts/alert.js","../src/scripts/shared/pie-chart.js","../src/scripts/chart.js","../src/scripts/shared/copy-text.js","../src/scripts/codeSnippet.js","../src/scripts/dropdownMenu.js","../src/scripts/verifyBar.js","../src/scripts/shared/escape-html.js","../src/scripts/dga-alert.js","../src/scripts/dga-accordion.js","../src/scripts/dga-code-snippet.js","../src/scripts/dga-pie-chart.js","../src/scripts/dga-verify-bar.js","../src/scripts/register-web-components.js"],"sourcesContent":["export class AccordionController {\r\n constructor(root) {\r\n this.root = root;\r\n this.handleClick = this.handleClick.bind(this);\r\n this.handleKeydown = this.handleKeydown.bind(this);\r\n this.init();\r\n }\r\n\r\n init() {\r\n this.root.addEventListener(\"click\", this.handleClick);\r\n this.root.addEventListener(\"keydown\", this.handleKeydown);\r\n }\r\n\r\n handleClick(event) {\r\n const header = event.target.closest(\".dga-acc-header\");\r\n if (header && this.root.contains(header)) {\r\n this.toggle(header);\r\n }\r\n }\r\n\r\n handleKeydown(event) {\r\n const header = event.target.closest(\".dga-acc-header\");\r\n if (!header || !this.root.contains(header)) return;\r\n\r\n if (event.key === \"Enter\" || event.key === \" \") {\r\n event.preventDefault();\r\n this.toggle(header);\r\n }\r\n }\r\n\r\n toggle(header) {\r\n const item = header.parentElement;\r\n if (!item) return;\r\n\r\n if (item.classList.contains(\"dga-acc-item--active\")) {\r\n this.close(item);\r\n } else {\r\n this.open(item);\r\n }\r\n }\r\n\r\n open(item) {\r\n item.classList.add(\"dga-acc-item--active\");\r\n item.querySelector(\".dga-acc-header\")?.setAttribute(\"aria-expanded\", \"true\");\r\n }\r\n\r\n close(item) {\r\n item.classList.remove(\"dga-acc-item--active\");\r\n item.querySelector(\".dga-acc-header\")?.setAttribute(\"aria-expanded\", \"false\");\r\n }\r\n\r\n closeAll() {\r\n this.root.querySelectorAll(\".dga-acc-item\").forEach((item) => {\r\n this.close(item);\r\n });\r\n }\r\n\r\n destroy() {\r\n this.root.removeEventListener(\"click\", this.handleClick);\r\n this.root.removeEventListener(\"keydown\", this.handleKeydown);\r\n }\r\n}\r\n","import { AccordionController } from \"./shared/accordion-controller.js\";\r\n\r\nexport default class DGAAccordion {\r\n constructor(element) {\r\n this.accordion = element;\r\n this.controller = new AccordionController(element);\r\n }\r\n\r\n toggle(header) {\r\n this.controller.toggle(header);\r\n }\r\n\r\n open(item) {\r\n this.controller.open(item);\r\n }\r\n\r\n close(item) {\r\n this.controller.close(item);\r\n }\r\n\r\n closeAll() {\r\n this.controller.closeAll();\r\n }\r\n\r\n destroy() {\r\n this.controller.destroy();\r\n }\r\n}\r\n","export default class DGAAlert {\r\n constructor(root = document) {\r\n this.root = root;\r\n this.handleCloseClick = this.handleCloseClick.bind(this);\r\n this.init();\r\n }\r\n\r\n init() {\r\n this.root.addEventListener(\"click\", this.handleCloseClick);\r\n }\r\n\r\n handleCloseClick(event) {\r\n const closeButton = event.target.closest(\"[data-alert-close]\");\r\n if (!closeButton) {\r\n return;\r\n }\r\n\r\n const alert = closeButton.closest(\".dga-alert\");\r\n if (alert) {\r\n alert.style.display = \"none\";\r\n }\r\n }\r\n\r\n destroy() {\r\n this.root.removeEventListener(\"click\", this.handleCloseClick);\r\n }\r\n}\r\n","export function resolveChartColor(color) {\r\n if (color.startsWith(\"#\") || color.startsWith(\"var(\")) {\r\n return color;\r\n }\r\n return `var(--${color})`;\r\n}\r\n\r\nexport function generateChartGradient(data = []) {\r\n const gradientParts = data.map(\r\n (segment) =>\r\n `${resolveChartColor(segment.color)} ${segment.from} ${segment.to}`\r\n );\r\n return `conic-gradient(${gradientParts.join(\", \")})`;\r\n}\r\n\r\nexport function generateChartLabelsHtml(data = []) {\r\n const labels = data\r\n .map(\r\n (segment) =>\r\n `<span class=\"dga-pie-chart__label\"><span class=\"dga-pie-chart__circle\" style=\"background-color: ${resolveChartColor(\r\n segment.color\r\n )}\"></span>${segment.label}</span>`\r\n )\r\n .join(\"\");\r\n\r\n return `<div class=\"dga-pie-chart__labels\">${labels}</div>`;\r\n}\r\n\r\nexport function parseChartDataAttribute(value) {\r\n if (!value) return [];\r\n\r\n try {\r\n const parsed = JSON.parse(value);\r\n return Array.isArray(parsed) ? parsed : [];\r\n } catch {\r\n console.warn(\"dga-pie-chart: invalid data attribute JSON\");\r\n return [];\r\n }\r\n}\r\n\r\nexport function renderPieChart(element, data = [], { hole = false } = {}) {\r\n if (!element) return;\r\n\r\n element.classList.add(\"dga-pie-chart\");\r\n element.setAttribute(\"data-hole\", hole ? \"true\" : \"false\");\r\n element.style.background = generateChartGradient(data);\r\n element.innerHTML = generateChartLabelsHtml(data);\r\n}\r\n","import {\r\n generateChartGradient,\r\n generateChartLabelsHtml,\r\n renderPieChart,\r\n} from \"./shared/pie-chart.js\";\r\n\r\nexport default class DGAChart {\r\n constructor(element, data = []) {\r\n this.chart = element;\r\n this.data = data;\r\n this.init();\r\n }\r\n\r\n init() {\r\n const hole = this.chart.getAttribute(\"data-hole\") === \"true\";\r\n renderPieChart(this.chart, this.data, { hole });\r\n }\r\n\r\n generateGradient() {\r\n return generateChartGradient(this.data);\r\n }\r\n\r\n generateLabels() {\r\n return generateChartLabelsHtml(this.data);\r\n }\r\n}\r\n","export async function copyText(text) {\r\n try {\r\n if (navigator.clipboard?.writeText) {\r\n await navigator.clipboard.writeText(text);\r\n return true;\r\n }\r\n } catch (_error) {\r\n // Fallback below for restricted clipboard environments.\r\n }\r\n\r\n const textarea = document.createElement(\"textarea\");\r\n textarea.value = text;\r\n textarea.setAttribute(\"readonly\", \"\");\r\n textarea.style.position = \"absolute\";\r\n textarea.style.left = \"-9999px\";\r\n document.body.appendChild(textarea);\r\n textarea.select();\r\n const success = document.execCommand(\"copy\");\r\n document.body.removeChild(textarea);\r\n return success;\r\n}\r\n\r\nexport const COPY_ICON_SVG = `<svg viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\">\r\n <rect x=\"9\" y=\"9\" width=\"11\" height=\"11\" rx=\"2\" stroke-width=\"1.75\"></rect>\r\n <path d=\"M6 15H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v1\" stroke-width=\"1.75\" stroke-linecap=\"round\"></path>\r\n</svg>`;\r\n\r\nexport async function markCopyButtonCopied(copyButton, resetMs = 1200) {\r\n const previousLabel = copyButton.getAttribute(\"aria-label\") || \"Copy code\";\r\n copyButton.setAttribute(\"aria-label\", \"Copied\");\r\n copyButton.setAttribute(\"data-copied\", \"true\");\r\n\r\n window.setTimeout(() => {\r\n copyButton.setAttribute(\"aria-label\", previousLabel);\r\n copyButton.setAttribute(\"data-copied\", \"false\");\r\n }, resetMs);\r\n}\r\n","import { copyText, markCopyButtonCopied } from \"./shared/copy-text.js\";\r\n\r\nexport default class DGACodeSnippet {\r\n constructor(root = document) {\r\n this.root = root;\r\n this.handleCopyClick = this.handleCopyClick.bind(this);\r\n this.init();\r\n }\r\n\r\n init() {\r\n this.root.addEventListener(\"click\", this.handleCopyClick);\r\n }\r\n\r\n async handleCopyClick(event) {\r\n const copyButton = event.target.closest(\r\n \".dga-code-snippet-inline__copy, .dga-code-snippet-multiline__copy\"\r\n );\r\n if (!copyButton) return;\r\n\r\n const inlineSnippet = copyButton.closest(\".dga-code-snippet-inline\");\r\n const multilineSnippet = copyButton.closest(\".dga-code-snippet-multiline\");\r\n\r\n let textToCopy = \"\";\r\n if (inlineSnippet) {\r\n const codeElement = inlineSnippet.querySelector(\r\n \".dga-code-snippet-inline__content\"\r\n );\r\n textToCopy = codeElement?.textContent?.trim() || \"\";\r\n } else if (multilineSnippet) {\r\n const codeElement = multilineSnippet.querySelector(\r\n \".dga-code-snippet-multiline__code code\"\r\n );\r\n textToCopy = codeElement?.textContent || \"\";\r\n }\r\n\r\n if (!textToCopy) return;\r\n\r\n const copied = await copyText(textToCopy);\r\n if (!copied) return;\r\n\r\n await markCopyButtonCopied(copyButton);\r\n }\r\n\r\n destroy() {\r\n this.root.removeEventListener(\"click\", this.handleCopyClick);\r\n }\r\n}\r\n","class DGAMenuDropdown {\r\n constructor(options = {}) {\r\n this.navbar = options.navbar || document.querySelector(\".dga-navbar\");\r\n this.verifyBar = options.verifyBar || null;\r\n\r\n if (!this.navbar) {\r\n console.warn(\"DGA Navbar elements not found\");\r\n return;\r\n }\r\n\r\n this.navbarTop = this.navbar.getBoundingClientRect().top + window.scrollY;\r\n this.navbarHeight = this.navbar.getBoundingClientRect().height;\r\n this.menu = this.navbar.querySelector(\".dga-menu\");\r\n this.toggler = this.navbar.querySelector(\".dga-navbar-toggler\");\r\n this.menuItems = this.navbar.querySelectorAll(\".dga-menu-item.dga-has-dropdown\");\r\n\r\n if (!this.menu) {\r\n console.warn(\"DGA Menu element not found\");\r\n return;\r\n }\r\n\r\n this.boundToggleDropdown = (e) => this.toggleDropdown(e);\r\n this.boundToggleMobileMenu = (e) => this.toggleMobileMenu(e);\r\n this.boundCloseAllDropdowns = (e) => this.closeAllDropdowns(e);\r\n this.boundHandleResize = () => this.handleResize();\r\n this.boundHandleKeyboard = (e) => this.handleKeyboard(e);\r\n\r\n this.init();\r\n }\r\n\r\n get isActive() {\r\n return this.isMobileMenuOpen() || this.isNormalDropdownOpen();\r\n }\r\n\r\n init() {\r\n this.handleResize();\r\n this.bindEvents();\r\n }\r\n\r\n bindEvents() {\r\n // Dropdown menu items\r\n this.menuItems.forEach((item) => {\r\n item.addEventListener(\"click\", this.boundToggleDropdown);\r\n });\r\n\r\n // Mobile menu toggler\r\n this.toggler?.addEventListener(\"click\", this.boundToggleMobileMenu);\r\n\r\n // Close dropdowns when clicking outside\r\n document.addEventListener(\"click\", this.boundCloseAllDropdowns);\r\n\r\n // Handle window resize\r\n window.addEventListener(\"resize\", this.boundHandleResize);\r\n\r\n // Keyboard accessibility\r\n this.menuItems.forEach((item) => {\r\n item.addEventListener(\"keydown\", this.boundHandleKeyboard);\r\n });\r\n }\r\n\r\n toggleDropdown(e) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n\r\n // Close verify bar when opening menu\r\n if (this.verifyBar && this.verifyBar.isOpen) {\r\n this.verifyBar.closePanel();\r\n }\r\n\r\n const menuItem = e.currentTarget;\r\n const listItem = menuItem.parentElement;\r\n const isActive = listItem.classList.contains(\"active\");\r\n\r\n // Close all other dropdowns\r\n this.closeAllDropdowns();\r\n\r\n // Toggle current dropdown\r\n if (!isActive) {\r\n listItem.classList.add(\"active\");\r\n menuItem.classList.add(\"dga-menu-item-selected\");\r\n menuItem.setAttribute(\"aria-expanded\", \"true\");\r\n\r\n listItem.querySelector(\".dga-dropdown\").style.top = `${this.navbarHeight + this.navbarTop\r\n }px`;\r\n }\r\n }\r\n\r\n toggleMobileMenu(e) {\r\n e.stopPropagation();\r\n\r\n // Close verify bar when opening menu\r\n if (this.verifyBar && this.verifyBar.isOpen) {\r\n this.verifyBar.closePanel();\r\n }\r\n\r\n this.menu.classList.toggle(\"dga-menu-open\");\r\n if (this.menu.classList.contains(\"dga-menu-open\")) {\r\n document.body.classList.add(\"no-scroll\");\r\n this.menu.style.height = `calc(100vh - ${this.navbarHeight}px - ${this.navbarTop}px)`;\r\n } else {\r\n document.body.classList.remove(\"no-scroll\");\r\n this.menu.style.height = `0px`;\r\n }\r\n this.menu.style.top = `${this.navbarTop + this.navbarHeight}px`;\r\n\r\n const isOpen = this.menu.classList.contains(\"dga-menu-open\");\r\n this.toggler.setAttribute(\"aria-expanded\", isOpen);\r\n this.toggler.setAttribute(\r\n \"aria-label\",\r\n isOpen ? \"Close menu\" : \"Open menu\"\r\n );\r\n }\r\n\r\n // Public method to close menu programmatically (without event)\r\n closeMenu() {\r\n // Close all dropdowns\r\n this.closeAllDropdowns();\r\n\r\n // Close mobile menu if open\r\n if (this.isMobileMenuOpen()) {\r\n this.menu.classList.remove(\"dga-menu-open\");\r\n document.body.classList.remove(\"no-scroll\");\r\n this.menu.style.height = `0px`;\r\n this.toggler.setAttribute(\"aria-expanded\", \"false\");\r\n this.toggler.setAttribute(\"aria-label\", \"Open menu\");\r\n }\r\n }\r\n\r\n closeAllDropdowns(e) {\r\n // Don't close if clicking inside dropdown content\r\n if (e && e.target.closest(\".dga-dropdown-content\")) {\r\n return;\r\n }\r\n\r\n const activeItems = this.navbar.querySelectorAll(\".dga-menu > li.active\");\r\n activeItems.forEach((item) => {\r\n item.classList.remove(\"active\");\r\n const menuItem = item.querySelector(\".dga-menu-item\");\r\n menuItem?.classList.remove(\"dga-menu-item-selected\");\r\n menuItem?.setAttribute(\"aria-expanded\", \"false\");\r\n });\r\n }\r\n\r\n handleKeyboard(e) {\r\n // Close dropdown on Escape\r\n if (e.key === \"Escape\") {\r\n this.closeAllDropdowns();\r\n e.currentTarget.focus();\r\n }\r\n\r\n // Toggle on Enter or Space\r\n if (e.key === \"Enter\" || e.key === \" \") {\r\n e.preventDefault();\r\n this.toggleDropdown(e);\r\n }\r\n }\r\n\r\n handleResize() {\r\n const width = window.innerWidth;\r\n\r\n // Remove size classes\r\n document.body.classList.remove(\r\n \"size_desktop\",\r\n \"size_tablet\",\r\n \"size_mobile\"\r\n );\r\n\r\n // Add appropriate size class\r\n if (width > 769) {\r\n document.body.classList.add(\"size_desktop\");\r\n this.closeAllDropdowns();\r\n this.menu.classList.remove(\"dga-menu-open\");\r\n document.body.classList.remove(\"no-scroll\");\r\n } else if (width <= 769 && width > 375) {\r\n document.body.classList.add(\"size_tablet\");\r\n } else {\r\n document.body.classList.add(\"size_mobile\");\r\n }\r\n }\r\n\r\n // Public method to destroy the component\r\n destroy() {\r\n this.menuItems.forEach((item) => {\r\n item.removeEventListener(\"click\", this.boundToggleDropdown);\r\n item.removeEventListener(\"keydown\", this.boundHandleKeyboard);\r\n });\r\n\r\n this.toggler?.removeEventListener(\"click\", this.boundToggleMobileMenu);\r\n document.removeEventListener(\"click\", this.boundCloseAllDropdowns);\r\n window.removeEventListener(\"resize\", this.boundHandleResize);\r\n }\r\n\r\n isMobileMenuOpen() {\r\n return this.menu?.classList.contains(\"dga-menu-open\");\r\n }\r\n\r\n isNormalDropdownOpen() {\r\n return this.navbar.querySelectorAll(\".dga-menu > li.active\").length > 0;\r\n }\r\n}\r\n\r\nexport default DGAMenuDropdown;\r\n","export default class DGAVerifyBar {\r\n constructor(options = {}) {\r\n this.isOpen = false;\r\n this.verifyBar = document.getElementById(\"dga-verify-bar\");\r\n this.menu = options.menu || null; // Fixed typo: was \"mneu\"\r\n\r\n this.btn = document.getElementById(\"dga-verifyBtn\");\r\n this.content = document.getElementById(\"dga-verify-bar_content\");\r\n this.boundToggle = () => {\r\n if (this.isOpen) {\r\n this.closePanel();\r\n } else {\r\n this.openPanel();\r\n }\r\n };\r\n\r\n if (!this.verifyBar || !this.btn || !this.content) {\r\n console.warn(\"DGA Verify Bar elements not found\");\r\n return;\r\n }\r\n\r\n this.init();\r\n }\r\n\r\n init() {\r\n this.btn.addEventListener(\"click\", this.boundToggle);\r\n }\r\n\r\n openPanel() {\r\n // Close menu if it's open\r\n if (this.menu && this.menu.isActive) {\r\n this.menu.closeMenu(); // Use the new public method\r\n }\r\n\r\n this.content.style.display = \"flex\";\r\n this.isOpen = true;\r\n this.verifyBar.classList.add(\"opend\");\r\n this.verifyBar.classList.remove(\"closed\");\r\n }\r\n\r\n closePanel() {\r\n this.content.style.display = \"none\";\r\n this.isOpen = false;\r\n this.verifyBar.classList.add(\"closed\");\r\n this.verifyBar.classList.remove(\"opend\");\r\n }\r\n\r\n destroy() {\r\n this.btn?.removeEventListener(\"click\", this.boundToggle);\r\n }\r\n}\r\n","export function escapeHtml(value = \"\") {\r\n return String(value)\r\n .replace(/&/g, \"&\")\r\n .replace(/</g, \"<\")\r\n .replace(/>/g, \">\")\r\n .replace(/\"/g, \""\")\r\n .replace(/'/g, \"'\");\r\n}\r\n","import { escapeHtml } from \"./shared/escape-html.js\";\r\n\r\nconst DEFAULT_VARIANT = \"info-color\";\r\n\r\nclass DGAAlertElement extends HTMLElement {\r\n static get observedAttributes() {\r\n return [\"variant\", \"title\", \"dismissible\"];\r\n }\r\n\r\n constructor() {\r\n super();\r\n this._boundDismiss = this._handleDismiss.bind(this);\r\n }\r\n\r\n connectedCallback() {\r\n this._scheduleInitialRender();\r\n }\r\n\r\n _scheduleInitialRender() {\r\n // Frameworks (Vue/React) may inject child content after connect.\r\n requestAnimationFrame(() => {\r\n this._captureBodyContent();\r\n this._render();\r\n });\r\n }\r\n\r\n _captureBodyContent() {\r\n if (this._bodyContent || this.querySelector(\".dga-alert-content\")) {\r\n return;\r\n }\r\n\r\n const html = this.innerHTML.trim();\r\n if (html) {\r\n this._bodyContent = html;\r\n }\r\n }\r\n\r\n disconnectedCallback() {\r\n this._closeButton?.removeEventListener(\"click\", this._boundDismiss);\r\n }\r\n\r\n attributeChangedCallback() {\r\n if (this.isConnected) this._render();\r\n }\r\n\r\n _render() {\r\n const variant = this.getAttribute(\"variant\") || DEFAULT_VARIANT;\r\n const title = this.getAttribute(\"title\") || \"\";\r\n const dismissible = this.hasAttribute(\"dismissible\");\r\n const body = this._bodyContent || \"\";\r\n\r\n this.className = \"dga-alert\";\r\n this.setAttribute(\"data-variant\", variant);\r\n\r\n const titleHtml = title\r\n ? `<h4 class=\"dga-alert-title\">${escapeHtml(title)}</h4>`\r\n : \"\";\r\n\r\n const closeHtml = dismissible\r\n ? `<button class=\"dga-alert-close\" type=\"button\" data-alert-close aria-label=\"Dismiss alert\">×</button>`\r\n : \"\";\r\n\r\n this.innerHTML = `\r\n <span class=\"dga-alert-icon\" aria-hidden=\"true\"></span>\r\n <div class=\"dga-alert-content\">\r\n ${titleHtml}\r\n <div class=\"dga-alert-body\">${body}</div>\r\n </div>\r\n ${closeHtml}\r\n `;\r\n\r\n this._closeButton = this.querySelector(\"[data-alert-close]\");\r\n this._closeButton?.removeEventListener(\"click\", this._boundDismiss);\r\n this._closeButton?.addEventListener(\"click\", this._boundDismiss);\r\n }\r\n\r\n _handleDismiss() {\r\n this.style.display = \"none\";\r\n this.dispatchEvent(\r\n new CustomEvent(\"dga-alert-dismiss\", { bubbles: true, composed: true })\r\n );\r\n }\r\n}\r\n\r\ncustomElements.define(\"dga-alert\", DGAAlertElement);\r\n","import { AccordionController } from \"./shared/accordion-controller.js\";\r\nimport { escapeHtml } from \"./shared/escape-html.js\";\r\n\r\nclass DGAAccordionItemElement extends HTMLElement {\r\n static get observedAttributes() {\r\n return [\"title\", \"size\", \"open\"];\r\n }\r\n\r\n connectedCallback() {\r\n if (!this._bodyContent) {\r\n this._bodyContent = this.innerHTML.trim();\r\n }\r\n this._render();\r\n }\r\n\r\n attributeChangedCallback() {\r\n if (this.isConnected) this._render();\r\n }\r\n\r\n _render() {\r\n const title = this.getAttribute(\"title\") || \"\";\r\n const size = this.getAttribute(\"size\") || \"md\";\r\n const isOpen = this.hasAttribute(\"open\");\r\n const body = this._bodyContent || \"\";\r\n\r\n this.innerHTML = `\r\n <div class=\"dga-acc-item${isOpen ? \" dga-acc-item--active\" : \"\"}\">\r\n <button class=\"dga-acc-header\" data-size=\"${escapeHtml(size)}\" aria-expanded=\"${isOpen ? \"true\" : \"false\"}\">\r\n <span>${escapeHtml(title)}</span>\r\n </button>\r\n <div class=\"dga-acc-content\">\r\n <div class=\"dga-acc-body\">${body}</div>\r\n </div>\r\n </div>\r\n `;\r\n }\r\n}\r\n\r\nclass DGAAccordionElement extends HTMLElement {\r\n constructor() {\r\n super();\r\n this._controller = null;\r\n }\r\n\r\n connectedCallback() {\r\n this.classList.add(\"dga-acc\");\r\n this._controller?.destroy();\r\n this._controller = new AccordionController(this);\r\n }\r\n\r\n disconnectedCallback() {\r\n this._controller?.destroy();\r\n this._controller = null;\r\n }\r\n}\r\n\r\ncustomElements.define(\"dga-accordion-item\", DGAAccordionItemElement);\r\ncustomElements.define(\"dga-accordion\", DGAAccordionElement);\r\n","import {\r\n COPY_ICON_SVG,\r\n copyText,\r\n markCopyButtonCopied,\r\n} from \"./shared/copy-text.js\";\r\nimport { escapeHtml } from \"./shared/escape-html.js\";\r\n\r\nclass DGACodeSnippetElement extends HTMLElement {\r\n static get observedAttributes() {\r\n return [\"code\", \"multiline\"];\r\n }\r\n\r\n constructor() {\r\n super();\r\n this._boundCopy = this._handleCopy.bind(this);\r\n }\r\n\r\n connectedCallback() {\r\n if (!this._codeContent) {\r\n this._codeContent =\r\n this.getAttribute(\"code\")?.trim() || this.textContent?.trim() || \"\";\r\n }\r\n this._render();\r\n }\r\n\r\n disconnectedCallback() {\r\n this._copyButton?.removeEventListener(\"click\", this._boundCopy);\r\n }\r\n\r\n attributeChangedCallback() {\r\n if (this.isConnected) this._render();\r\n }\r\n\r\n _render() {\r\n const isMultiline = this.hasAttribute(\"multiline\");\r\n const code =\r\n this.getAttribute(\"code\")?.trim() || this._codeContent || \"\";\r\n\r\n if (isMultiline) {\r\n this.innerHTML = `\r\n <div class=\"dga-code-snippet-multiline\">\r\n <div class=\"dga-code-snippet-multiline__body\">\r\n <pre class=\"dga-code-snippet-multiline__code\"><code>${escapeHtml(code)}</code></pre>\r\n <button type=\"button\" class=\"dga-code-snippet-multiline__copy\" aria-label=\"Copy code\" data-copied=\"false\">\r\n ${COPY_ICON_SVG}\r\n </button>\r\n </div>\r\n </div>\r\n `;\r\n this._copyButton = this.querySelector(\".dga-code-snippet-multiline__copy\");\r\n } else {\r\n this.innerHTML = `\r\n <div class=\"dga-code-snippet-inline\">\r\n <div class=\"dga-code-snippet-inline__content\">${escapeHtml(code)}</div>\r\n <button type=\"button\" class=\"dga-code-snippet-inline__copy\" aria-label=\"Copy code\" data-copied=\"false\">\r\n ${COPY_ICON_SVG}\r\n </button>\r\n </div>\r\n `;\r\n this._copyButton = this.querySelector(\".dga-code-snippet-inline__copy\");\r\n }\r\n\r\n this._copyButton?.removeEventListener(\"click\", this._boundCopy);\r\n this._copyButton?.addEventListener(\"click\", this._boundCopy);\r\n }\r\n\r\n async _handleCopy() {\r\n const code = this.getAttribute(\"code\")?.trim() || this._codeContent || \"\";\r\n if (!code || !this._copyButton) return;\r\n\r\n const copied = await copyText(code);\r\n if (!copied) return;\r\n\r\n await markCopyButtonCopied(this._copyButton);\r\n this.dispatchEvent(\r\n new CustomEvent(\"dga-code-copy\", { bubbles: true, composed: true })\r\n );\r\n }\r\n}\r\n\r\ncustomElements.define(\"dga-code-snippet\", DGACodeSnippetElement);\r\n","import {\r\n parseChartDataAttribute,\r\n renderPieChart,\r\n} from \"./shared/pie-chart.js\";\r\n\r\nclass DGAPieChartElement extends HTMLElement {\r\n static get observedAttributes() {\r\n return [\"data\", \"hole\"];\r\n }\r\n\r\n connectedCallback() {\r\n this._render();\r\n }\r\n\r\n attributeChangedCallback() {\r\n if (this.isConnected) this._render();\r\n }\r\n\r\n _render() {\r\n const chartData = parseChartDataAttribute(this.getAttribute(\"data\"));\r\n const hole =\r\n this.hasAttribute(\"hole\") && this.getAttribute(\"hole\") !== \"false\";\r\n\r\n renderPieChart(this, chartData, { hole });\r\n }\r\n}\r\n\r\ncustomElements.define(\"dga-pie-chart\", DGAPieChartElement);\r\n","class DGAVerifyBarElement extends HTMLElement {\r\n static get observedAttributes() {\r\n return [\"registration-number\", \"registration-link\", \"domain\"];\r\n }\r\n\r\n constructor() {\r\n super();\r\n this.isOpen = false;\r\n this._btn = null;\r\n this._content = null;\r\n this._wrapper = null;\r\n this._boundToggle = () => (this.isOpen ? this._close() : this._open());\r\n }\r\n\r\n connectedCallback() {\r\n this._render();\r\n }\r\n\r\n disconnectedCallback() {\r\n this._btn?.removeEventListener(\"click\", this._boundToggle);\r\n }\r\n\r\n attributeChangedCallback() {\r\n if (this.isConnected) this._render();\r\n }\r\n\r\n _render() {\r\n const regNumber = this.getAttribute(\"registration-number\") || \"20250105758\";\r\n const regLinkRaw =\r\n this.getAttribute(\"registration-link\") ||\r\n \"https://raqmi.dga.gov.sa/platforms/platforms/9ebc5e60-9081-4653-bfb9-08dd2a2f8633/platform-license\";\r\n const regLink = this._normalizeLink(regLinkRaw);\r\n const domain = this.getAttribute(\"domain\") || \".edu.sa\";\r\n\r\n this.innerHTML = `\r\n <div id=\"dga-verify-bar\" class=\"dga-bg-gray-100 closed\">\r\n <div class=\"dga-container dga-py-2\">\r\n <div id=\"dga-verify-bar_bar\" class=\"dga-row\">\r\n <div class=\"dga-col\">\r\n <div class=\"dga-d-flex dga-align-items-center dga-gap-2\">\r\n <span><img src=\"${this._assetUrl(\"saudiFlag.svg\")}\" alt=\"علم المملكة العربية السعودية\" /></span>\r\n <span class=\"dga-text-sm\">موقع حكومي رسمي تابع لحكومة المملكة العربية السعودية</span>\r\n <span>\r\n <button id=\"dga-verifyBtn\" class=\"dga-btn dga-btn-subtle dga-text-primary-500\" data-verify-toggle aria-expanded=\"false\">\r\n كيف تتحقق\r\n </button>\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div id=\"dga-verify-bar_content\" class=\"dga-row dga-pt-10 dga-pb-8\" data-verify-content style=\"display: ${this.isOpen ? \"flex\" : \"none\"};\">\r\n <div class=\"dga-col-md-6 dga-pb-8\">\r\n <div class=\"dga-d-flex dga-gap-4\">\r\n <div><img src=\"${this._assetUrl(\"link-icon.svg\")}\" alt=\"\" /></div>\r\n <div class=\"dga-w-full dga-d-flex dga-flex-col dga-gap-2\">\r\n <h3 class=\"dga-text-xl dga-fw-bold\">\r\n روابط المواقع الالكترونية الرسمية السعودية تنتهي بـ\r\n <span class=\"dga-text-primary-500\">${domain}</span>\r\n </h3>\r\n <p>\r\n جميع روابط المواقع الرسمية التابعة للجهات الحكومية في المملكة\r\n العربية السعودية تنتهي بـ ${domain}\r\n </p>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"dga-col-md-6 dga-pb-8\">\r\n <div class=\"dga-d-flex dga-gap-4\">\r\n <div><img src=\"${this._assetUrl(\"square-lock-password.svg\")}\" alt=\"\" /></div>\r\n <div class=\"dga-w-full dga-d-flex dga-flex-col dga-gap-2\">\r\n <h3 class=\"dga-text-xl dga-fw-bold\">\r\n المواقع الالكترونية الحكومية تستخدم بروتوكول\r\n <span class=\"dga-text-primary-500\">HTTPS</span> للتشفير و الأمان.\r\n </h3>\r\n <p>\r\n المواقع الالكترونية الآمنة في المملكة العربية السعودية تستخدم\r\n بروتوكول HTTPS للتشفير.\r\n </p>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"dga-col-12\">\r\n <div class=\"dga-d-flex dga-align-items-center dga-gap-3 dga-bg-white dga-text-md dga-rounded-md dga-py-2 dga-px-7\">\r\n <img src=\"${this._assetUrl(\"DGA-logo-icon.svg\")}\" alt=\"شعار هيئة الحكومة الرقمية\" />\r\n مسجل لدى هيئة الحكومة الرقمية برقم :\r\n <a href=\"${regLink}\" class=\"dga-link\">${regNumber}</a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n `;\r\n\r\n this._btn?.removeEventListener(\"click\", this._boundToggle);\r\n this._wrapper = this.querySelector(\"#dga-verify-bar\");\r\n this._btn = this.querySelector(\"[data-verify-toggle]\");\r\n this._content = this.querySelector(\"[data-verify-content]\");\r\n this._btn?.addEventListener(\"click\", this._boundToggle);\r\n }\r\n\r\n _open() {\r\n this._content.style.display = \"flex\";\r\n this.isOpen = true;\r\n this._btn?.setAttribute(\"aria-expanded\", \"true\");\r\n this._wrapper?.classList.replace(\"closed\", \"opend\");\r\n }\r\n\r\n _close() {\r\n this._content.style.display = \"none\";\r\n this.isOpen = false;\r\n this._btn?.setAttribute(\"aria-expanded\", \"false\");\r\n this._wrapper?.classList.replace(\"opend\", \"closed\");\r\n }\r\n\r\n _assetUrl(fileName) {\r\n const publicAssetMap = {\r\n // TODO: replace with the official Saudi flag asset once added to public/.\r\n \"saudiFlag.svg\": \"/marker.svg\",\r\n \"link-icon.svg\": \"/link-icon.svg\",\r\n \"square-lock-password.svg\": \"/square-lock-password.svg\",\r\n \"DGA-logo-icon.svg\": \"/DGA-logo-icon.svg\",\r\n };\r\n\r\n return publicAssetMap[fileName] || `/${fileName}`;\r\n }\r\n\r\n _normalizeLink(value) {\r\n try {\r\n return new URL(value, window.location.href).href;\r\n } catch {\r\n return \"#\";\r\n }\r\n }\r\n}\r\n\r\ncustomElements.define(\"dga-verify-bar\", DGAVerifyBarElement);\r\n","import \"./dga-alert.js\";\r\nimport \"./dga-accordion.js\";\r\nimport \"./dga-code-snippet.js\";\r\nimport \"./dga-pie-chart.js\";\r\nimport \"./dga-verify-bar.js\";\r\n\r\nexport const DGA_WEB_COMPONENTS_REGISTERED = true;\r\n"],"names":["AccordionController","root","event","header","item","DGAAccordion","element","DGAAlert","closeButton","alert","resolveChartColor","color","generateChartGradient","data","segment","generateChartLabelsHtml","parseChartDataAttribute","value","parsed","renderPieChart","hole","DGAChart","copyText","text","textarea","success","COPY_ICON_SVG","markCopyButtonCopied","copyButton","resetMs","previousLabel","DGACodeSnippet","inlineSnippet","multilineSnippet","textToCopy","DGAMenuDropdown","options","e","menuItem","listItem","isActive","isOpen","width","DGAVerifyBar","escapeHtml","DEFAULT_VARIANT","DGAAlertElement","html","variant","title","dismissible","body","titleHtml","closeHtml","DGAAccordionItemElement","size","DGAAccordionElement","DGACodeSnippetElement","isMultiline","code","DGAPieChartElement","chartData","DGAVerifyBarElement","regNumber","regLinkRaw","regLink","domain","fileName","DGA_WEB_COMPONENTS_REGISTERED"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/scripts/shared/accordion-controller.js","../src/scripts/accordion.js","../src/scripts/alert.js","../src/scripts/shared/pie-chart.js","../src/scripts/chart.js","../src/scripts/shared/copy-text.js","../src/scripts/codeSnippet.js","../src/scripts/dropdownMenu.js","../src/scripts/verifyBar.js","../src/scripts/shared/escape-html.js","../src/scripts/dga-alert.js","../src/scripts/dga-accordion.js","../src/scripts/dga-code-snippet.js","../src/scripts/dga-pie-chart.js","../src/scripts/dga-verify-bar.js","../src/scripts/register-web-components.js"],"sourcesContent":["export class AccordionController {\r\n constructor(root) {\r\n this.root = root;\r\n this.handleClick = this.handleClick.bind(this);\r\n this.handleKeydown = this.handleKeydown.bind(this);\r\n this.init();\r\n }\r\n\r\n init() {\r\n this.root.addEventListener(\"click\", this.handleClick);\r\n this.root.addEventListener(\"keydown\", this.handleKeydown);\r\n }\r\n\r\n handleClick(event) {\r\n const header = event.target.closest(\".dga-acc-header\");\r\n if (header && this.root.contains(header)) {\r\n this.toggle(header);\r\n }\r\n }\r\n\r\n handleKeydown(event) {\r\n const header = event.target.closest(\".dga-acc-header\");\r\n if (!header || !this.root.contains(header)) return;\r\n\r\n if (event.key === \"Enter\" || event.key === \" \") {\r\n event.preventDefault();\r\n this.toggle(header);\r\n }\r\n }\r\n\r\n toggle(header) {\r\n const item = header.parentElement;\r\n if (!item) return;\r\n\r\n if (item.classList.contains(\"dga-acc-item--active\")) {\r\n this.close(item);\r\n } else {\r\n this.open(item);\r\n }\r\n }\r\n\r\n open(item) {\r\n item.classList.add(\"dga-acc-item--active\");\r\n item.querySelector(\".dga-acc-header\")?.setAttribute(\"aria-expanded\", \"true\");\r\n }\r\n\r\n close(item) {\r\n item.classList.remove(\"dga-acc-item--active\");\r\n item.querySelector(\".dga-acc-header\")?.setAttribute(\"aria-expanded\", \"false\");\r\n }\r\n\r\n closeAll() {\r\n this.root.querySelectorAll(\".dga-acc-item\").forEach((item) => {\r\n this.close(item);\r\n });\r\n }\r\n\r\n destroy() {\r\n this.root.removeEventListener(\"click\", this.handleClick);\r\n this.root.removeEventListener(\"keydown\", this.handleKeydown);\r\n }\r\n}\r\n","import { AccordionController } from \"./shared/accordion-controller.js\";\r\n\r\nexport default class DGAAccordion {\r\n constructor(element) {\r\n this.accordion = element;\r\n this.controller = new AccordionController(element);\r\n }\r\n\r\n toggle(header) {\r\n this.controller.toggle(header);\r\n }\r\n\r\n open(item) {\r\n this.controller.open(item);\r\n }\r\n\r\n close(item) {\r\n this.controller.close(item);\r\n }\r\n\r\n closeAll() {\r\n this.controller.closeAll();\r\n }\r\n\r\n destroy() {\r\n this.controller.destroy();\r\n }\r\n}\r\n","export default class DGAAlert {\r\n constructor(root = document) {\r\n this.root = root;\r\n this.handleCloseClick = this.handleCloseClick.bind(this);\r\n this.init();\r\n }\r\n\r\n init() {\r\n this.root.addEventListener(\"click\", this.handleCloseClick);\r\n }\r\n\r\n handleCloseClick(event) {\r\n const closeButton = event.target.closest(\"[data-alert-close]\");\r\n if (!closeButton) {\r\n return;\r\n }\r\n\r\n const alert = closeButton.closest(\".dga-alert\");\r\n if (alert) {\r\n alert.style.display = \"none\";\r\n }\r\n }\r\n\r\n destroy() {\r\n this.root.removeEventListener(\"click\", this.handleCloseClick);\r\n }\r\n}\r\n","export function resolveChartColor(color) {\r\n if (color.startsWith(\"#\") || color.startsWith(\"var(\")) {\r\n return color;\r\n }\r\n return `var(--${color})`;\r\n}\r\n\r\nexport function generateChartGradient(data = []) {\r\n const gradientParts = data.map(\r\n (segment) =>\r\n `${resolveChartColor(segment.color)} ${segment.from} ${segment.to}`\r\n );\r\n return `conic-gradient(${gradientParts.join(\", \")})`;\r\n}\r\n\r\nexport function generateChartLabelsHtml(data = []) {\r\n const labels = data\r\n .map(\r\n (segment) =>\r\n `<span class=\"dga-pie-chart__label\"><span class=\"dga-pie-chart__circle\" style=\"background-color: ${resolveChartColor(\r\n segment.color\r\n )}\"></span>${segment.label}</span>`\r\n )\r\n .join(\"\");\r\n\r\n return `<div class=\"dga-pie-chart__labels\">${labels}</div>`;\r\n}\r\n\r\nexport function parseChartDataAttribute(value) {\r\n if (!value) return [];\r\n\r\n try {\r\n const parsed = JSON.parse(value);\r\n return Array.isArray(parsed) ? parsed : [];\r\n } catch {\r\n console.warn(\"dga-pie-chart: invalid data attribute JSON\");\r\n return [];\r\n }\r\n}\r\n\r\nexport function renderPieChart(element, data = [], { hole = false } = {}) {\r\n if (!element) return;\r\n\r\n element.classList.add(\"dga-pie-chart\");\r\n element.setAttribute(\"data-hole\", hole ? \"true\" : \"false\");\r\n element.style.background = generateChartGradient(data);\r\n element.innerHTML = generateChartLabelsHtml(data);\r\n}\r\n","import {\r\n generateChartGradient,\r\n generateChartLabelsHtml,\r\n renderPieChart,\r\n} from \"./shared/pie-chart.js\";\r\n\r\nexport default class DGAChart {\r\n constructor(element, data = []) {\r\n this.chart = element;\r\n this.data = data;\r\n this.init();\r\n }\r\n\r\n init() {\r\n const hole = this.chart.getAttribute(\"data-hole\") === \"true\";\r\n renderPieChart(this.chart, this.data, { hole });\r\n }\r\n\r\n generateGradient() {\r\n return generateChartGradient(this.data);\r\n }\r\n\r\n generateLabels() {\r\n return generateChartLabelsHtml(this.data);\r\n }\r\n}\r\n","export async function copyText(text) {\r\n try {\r\n if (navigator.clipboard?.writeText) {\r\n await navigator.clipboard.writeText(text);\r\n return true;\r\n }\r\n } catch (_error) {\r\n // Fallback below for restricted clipboard environments.\r\n }\r\n\r\n const textarea = document.createElement(\"textarea\");\r\n textarea.value = text;\r\n textarea.setAttribute(\"readonly\", \"\");\r\n textarea.style.position = \"absolute\";\r\n textarea.style.left = \"-9999px\";\r\n document.body.appendChild(textarea);\r\n textarea.select();\r\n const success = document.execCommand(\"copy\");\r\n document.body.removeChild(textarea);\r\n return success;\r\n}\r\n\r\nexport const COPY_ICON_SVG = `<svg viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\">\r\n <rect x=\"9\" y=\"9\" width=\"11\" height=\"11\" rx=\"2\" stroke-width=\"1.75\"></rect>\r\n <path d=\"M6 15H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v1\" stroke-width=\"1.75\" stroke-linecap=\"round\"></path>\r\n</svg>`;\r\n\r\nexport async function markCopyButtonCopied(copyButton, resetMs = 1200) {\r\n const previousLabel = copyButton.getAttribute(\"aria-label\") || \"Copy code\";\r\n copyButton.setAttribute(\"aria-label\", \"Copied\");\r\n copyButton.setAttribute(\"data-copied\", \"true\");\r\n\r\n window.setTimeout(() => {\r\n copyButton.setAttribute(\"aria-label\", previousLabel);\r\n copyButton.setAttribute(\"data-copied\", \"false\");\r\n }, resetMs);\r\n}\r\n","import { copyText, markCopyButtonCopied } from \"./shared/copy-text.js\";\r\n\r\nexport default class DGACodeSnippet {\r\n constructor(root = document) {\r\n this.root = root;\r\n this.handleCopyClick = this.handleCopyClick.bind(this);\r\n this.init();\r\n }\r\n\r\n init() {\r\n this.root.addEventListener(\"click\", this.handleCopyClick);\r\n }\r\n\r\n async handleCopyClick(event) {\r\n const copyButton = event.target.closest(\r\n \".dga-code-snippet-inline__copy, .dga-code-snippet-multiline__copy\"\r\n );\r\n if (!copyButton) return;\r\n\r\n const inlineSnippet = copyButton.closest(\".dga-code-snippet-inline\");\r\n const multilineSnippet = copyButton.closest(\".dga-code-snippet-multiline\");\r\n\r\n let textToCopy = \"\";\r\n if (inlineSnippet) {\r\n const codeElement = inlineSnippet.querySelector(\r\n \".dga-code-snippet-inline__content\"\r\n );\r\n textToCopy = codeElement?.textContent?.trim() || \"\";\r\n } else if (multilineSnippet) {\r\n const codeElement = multilineSnippet.querySelector(\r\n \".dga-code-snippet-multiline__code code\"\r\n );\r\n textToCopy = codeElement?.textContent || \"\";\r\n }\r\n\r\n if (!textToCopy) return;\r\n\r\n const copied = await copyText(textToCopy);\r\n if (!copied) return;\r\n\r\n await markCopyButtonCopied(copyButton);\r\n }\r\n\r\n destroy() {\r\n this.root.removeEventListener(\"click\", this.handleCopyClick);\r\n }\r\n}\r\n","class DGAMenuDropdown {\r\n constructor(options = {}) {\r\n this.navbar = options.navbar || document.querySelector(\".dga-navbar\");\r\n this.verifyBar = options.verifyBar || null;\r\n\r\n if (!this.navbar) {\r\n console.warn(\"DGA Navbar elements not found\");\r\n return;\r\n }\r\n\r\n this.navbarTop = this.navbar.getBoundingClientRect().top + window.scrollY;\r\n this.navbarHeight = this.navbar.getBoundingClientRect().height;\r\n this.menu = this.navbar.querySelector(\".dga-menu\");\r\n this.toggler = this.navbar.querySelector(\".dga-navbar-toggler\");\r\n this.menuItems = this.navbar.querySelectorAll(\".dga-menu-item.dga-has-dropdown\");\r\n\r\n if (!this.menu) {\r\n console.warn(\"DGA Menu element not found\");\r\n return;\r\n }\r\n\r\n this.boundToggleDropdown = (e) => this.toggleDropdown(e);\r\n this.boundToggleMobileMenu = (e) => this.toggleMobileMenu(e);\r\n this.boundCloseAllDropdowns = (e) => this.closeAllDropdowns(e);\r\n this.boundHandleResize = () => this.handleResize();\r\n this.boundHandleKeyboard = (e) => this.handleKeyboard(e);\r\n\r\n this.init();\r\n }\r\n\r\n get isActive() {\r\n return this.isMobileMenuOpen() || this.isNormalDropdownOpen();\r\n }\r\n\r\n init() {\r\n this.handleResize();\r\n this.bindEvents();\r\n }\r\n\r\n bindEvents() {\r\n // Dropdown menu items\r\n this.menuItems.forEach((item) => {\r\n item.addEventListener(\"click\", this.boundToggleDropdown);\r\n });\r\n\r\n // Mobile menu toggler\r\n this.toggler?.addEventListener(\"click\", this.boundToggleMobileMenu);\r\n\r\n // Close dropdowns when clicking outside\r\n document.addEventListener(\"click\", this.boundCloseAllDropdowns);\r\n\r\n // Handle window resize\r\n window.addEventListener(\"resize\", this.boundHandleResize);\r\n\r\n // Keyboard accessibility\r\n this.menuItems.forEach((item) => {\r\n item.addEventListener(\"keydown\", this.boundHandleKeyboard);\r\n });\r\n }\r\n\r\n toggleDropdown(e) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n\r\n // Close verify bar when opening menu\r\n if (this.verifyBar && this.verifyBar.isOpen) {\r\n this.verifyBar.closePanel();\r\n }\r\n\r\n const menuItem = e.currentTarget;\r\n const listItem = menuItem.parentElement;\r\n const isActive = listItem.classList.contains(\"active\");\r\n\r\n // Close all other dropdowns\r\n this.closeAllDropdowns();\r\n\r\n // Toggle current dropdown\r\n if (!isActive) {\r\n listItem.classList.add(\"active\");\r\n menuItem.classList.add(\"dga-menu-item-selected\");\r\n menuItem.setAttribute(\"aria-expanded\", \"true\");\r\n\r\n listItem.querySelector(\".dga-dropdown\").style.top = `${this.navbarHeight + this.navbarTop\r\n }px`;\r\n }\r\n }\r\n\r\n toggleMobileMenu(e) {\r\n e.stopPropagation();\r\n\r\n // Close verify bar when opening menu\r\n if (this.verifyBar && this.verifyBar.isOpen) {\r\n this.verifyBar.closePanel();\r\n }\r\n\r\n this.menu.classList.toggle(\"dga-menu-open\");\r\n if (this.menu.classList.contains(\"dga-menu-open\")) {\r\n document.body.classList.add(\"no-scroll\");\r\n this.menu.style.height = `calc(100vh - ${this.navbarHeight}px - ${this.navbarTop}px)`;\r\n } else {\r\n document.body.classList.remove(\"no-scroll\");\r\n this.menu.style.height = `0px`;\r\n }\r\n this.menu.style.top = `${this.navbarTop + this.navbarHeight}px`;\r\n\r\n const isOpen = this.menu.classList.contains(\"dga-menu-open\");\r\n this.toggler.setAttribute(\"aria-expanded\", isOpen);\r\n this.toggler.setAttribute(\r\n \"aria-label\",\r\n isOpen ? \"Close menu\" : \"Open menu\"\r\n );\r\n }\r\n\r\n // Public method to close menu programmatically (without event)\r\n closeMenu() {\r\n // Close all dropdowns\r\n this.closeAllDropdowns();\r\n\r\n // Close mobile menu if open\r\n if (this.isMobileMenuOpen()) {\r\n this.menu.classList.remove(\"dga-menu-open\");\r\n document.body.classList.remove(\"no-scroll\");\r\n this.menu.style.height = `0px`;\r\n this.toggler.setAttribute(\"aria-expanded\", \"false\");\r\n this.toggler.setAttribute(\"aria-label\", \"Open menu\");\r\n }\r\n }\r\n\r\n closeAllDropdowns(e) {\r\n // Don't close if clicking inside dropdown content\r\n if (e && e.target.closest(\".dga-dropdown-content\")) {\r\n return;\r\n }\r\n\r\n const activeItems = this.navbar.querySelectorAll(\".dga-menu > li.active\");\r\n activeItems.forEach((item) => {\r\n item.classList.remove(\"active\");\r\n const menuItem = item.querySelector(\".dga-menu-item\");\r\n menuItem?.classList.remove(\"dga-menu-item-selected\");\r\n menuItem?.setAttribute(\"aria-expanded\", \"false\");\r\n });\r\n }\r\n\r\n handleKeyboard(e) {\r\n // Close dropdown on Escape\r\n if (e.key === \"Escape\") {\r\n this.closeAllDropdowns();\r\n e.currentTarget.focus();\r\n }\r\n\r\n // Toggle on Enter or Space\r\n if (e.key === \"Enter\" || e.key === \" \") {\r\n e.preventDefault();\r\n this.toggleDropdown(e);\r\n }\r\n }\r\n\r\n handleResize() {\r\n const width = window.innerWidth;\r\n\r\n // Remove size classes\r\n document.body.classList.remove(\r\n \"size_desktop\",\r\n \"size_tablet\",\r\n \"size_mobile\"\r\n );\r\n\r\n // Add appropriate size class\r\n if (width > 769) {\r\n document.body.classList.add(\"size_desktop\");\r\n this.closeAllDropdowns();\r\n this.menu.classList.remove(\"dga-menu-open\");\r\n document.body.classList.remove(\"no-scroll\");\r\n } else if (width <= 769 && width > 375) {\r\n document.body.classList.add(\"size_tablet\");\r\n } else {\r\n document.body.classList.add(\"size_mobile\");\r\n }\r\n }\r\n\r\n // Public method to destroy the component\r\n destroy() {\r\n this.menuItems.forEach((item) => {\r\n item.removeEventListener(\"click\", this.boundToggleDropdown);\r\n item.removeEventListener(\"keydown\", this.boundHandleKeyboard);\r\n });\r\n\r\n this.toggler?.removeEventListener(\"click\", this.boundToggleMobileMenu);\r\n document.removeEventListener(\"click\", this.boundCloseAllDropdowns);\r\n window.removeEventListener(\"resize\", this.boundHandleResize);\r\n }\r\n\r\n isMobileMenuOpen() {\r\n return this.menu?.classList.contains(\"dga-menu-open\");\r\n }\r\n\r\n isNormalDropdownOpen() {\r\n return this.navbar.querySelectorAll(\".dga-menu > li.active\").length > 0;\r\n }\r\n}\r\n\r\nexport default DGAMenuDropdown;\r\n","export default class DGAVerifyBar {\r\n constructor(options = {}) {\r\n this.isOpen = false;\r\n this.verifyBar = document.getElementById(\"dga-verify-bar\");\r\n this.menu = options.menu || null; // Fixed typo: was \"mneu\"\r\n\r\n this.btn = document.getElementById(\"dga-verifyBtn\");\r\n this.content = document.getElementById(\"dga-verify-bar_content\");\r\n this.boundToggle = () => {\r\n if (this.isOpen) {\r\n this.closePanel();\r\n } else {\r\n this.openPanel();\r\n }\r\n };\r\n\r\n if (!this.verifyBar || !this.btn || !this.content) {\r\n console.warn(\"DGA Verify Bar elements not found\");\r\n return;\r\n }\r\n\r\n this.init();\r\n }\r\n\r\n init() {\r\n this.btn.addEventListener(\"click\", this.boundToggle);\r\n }\r\n\r\n openPanel() {\r\n // Close menu if it's open\r\n if (this.menu && this.menu.isActive) {\r\n this.menu.closeMenu(); // Use the new public method\r\n }\r\n\r\n this.content.style.display = \"flex\";\r\n this.isOpen = true;\r\n this.verifyBar.classList.add(\"opend\");\r\n this.verifyBar.classList.remove(\"closed\");\r\n }\r\n\r\n closePanel() {\r\n this.content.style.display = \"none\";\r\n this.isOpen = false;\r\n this.verifyBar.classList.add(\"closed\");\r\n this.verifyBar.classList.remove(\"opend\");\r\n }\r\n\r\n destroy() {\r\n this.btn?.removeEventListener(\"click\", this.boundToggle);\r\n }\r\n}\r\n","export function escapeHtml(value = \"\") {\r\n return String(value)\r\n .replace(/&/g, \"&\")\r\n .replace(/</g, \"<\")\r\n .replace(/>/g, \">\")\r\n .replace(/\"/g, \""\")\r\n .replace(/'/g, \"'\");\r\n}\r\n","import { escapeHtml } from \"./shared/escape-html.js\";\r\n\r\nconst DEFAULT_VARIANT = \"info-color\";\r\n\r\nclass DGAAlertElement extends HTMLElement {\r\n static get observedAttributes() {\r\n return [\"variant\", \"title\", \"dismissible\"];\r\n }\r\n\r\n constructor() {\r\n super();\r\n this._boundDismiss = this._handleDismiss.bind(this);\r\n }\r\n\r\n connectedCallback() {\r\n this._scheduleInitialRender();\r\n }\r\n\r\n _scheduleInitialRender() {\r\n // Frameworks (Vue/React) may inject child content after connect.\r\n requestAnimationFrame(() => {\r\n this._captureBodyContent();\r\n this._render();\r\n });\r\n }\r\n\r\n _captureBodyContent() {\r\n if (this._bodyContent || this.querySelector(\".dga-alert-content\")) {\r\n return;\r\n }\r\n\r\n const html = this.innerHTML.trim();\r\n if (html) {\r\n this._bodyContent = html;\r\n }\r\n }\r\n\r\n disconnectedCallback() {\r\n this._closeButton?.removeEventListener(\"click\", this._boundDismiss);\r\n }\r\n\r\n attributeChangedCallback() {\r\n if (this.isConnected) this._render();\r\n }\r\n\r\n _render() {\r\n const variant = this.getAttribute(\"variant\") || DEFAULT_VARIANT;\r\n const title = this.getAttribute(\"title\") || \"\";\r\n const dismissible = this.hasAttribute(\"dismissible\");\r\n const body = this._bodyContent || \"\";\r\n\r\n this.className = \"dga-alert\";\r\n this.setAttribute(\"data-variant\", variant);\r\n\r\n const titleHtml = title\r\n ? `<h4 class=\"dga-alert-title\">${escapeHtml(title)}</h4>`\r\n : \"\";\r\n\r\n const closeHtml = dismissible\r\n ? `<button class=\"dga-alert-close\" type=\"button\" data-alert-close aria-label=\"Dismiss alert\">×</button>`\r\n : \"\";\r\n\r\n this.innerHTML = `\r\n <span class=\"dga-alert-icon\" aria-hidden=\"true\"></span>\r\n <div class=\"dga-alert-content\">\r\n ${titleHtml}\r\n <div class=\"dga-alert-body\">${body}</div>\r\n </div>\r\n ${closeHtml}\r\n `;\r\n\r\n this._closeButton = this.querySelector(\"[data-alert-close]\");\r\n this._closeButton?.removeEventListener(\"click\", this._boundDismiss);\r\n this._closeButton?.addEventListener(\"click\", this._boundDismiss);\r\n }\r\n\r\n _handleDismiss() {\r\n this.style.display = \"none\";\r\n this.dispatchEvent(\r\n new CustomEvent(\"dga-alert-dismiss\", { bubbles: true, composed: true })\r\n );\r\n }\r\n}\r\n\r\ncustomElements.define(\"dga-alert\", DGAAlertElement);\r\n","import { AccordionController } from \"./shared/accordion-controller.js\";\r\nimport { escapeHtml } from \"./shared/escape-html.js\";\r\n\r\nclass DGAAccordionItemElement extends HTMLElement {\r\n static get observedAttributes() {\r\n return [\"title\", \"size\", \"open\"];\r\n }\r\n\r\n connectedCallback() {\r\n if (!this._bodyContent) {\r\n this._bodyContent = this.innerHTML.trim();\r\n }\r\n this._render();\r\n }\r\n\r\n attributeChangedCallback() {\r\n if (this.isConnected) this._render();\r\n }\r\n\r\n _render() {\r\n const title = this.getAttribute(\"title\") || \"\";\r\n const size = this.getAttribute(\"size\") || \"md\";\r\n const isOpen = this.hasAttribute(\"open\");\r\n const body = this._bodyContent || \"\";\r\n\r\n this.innerHTML = `\r\n <div class=\"dga-acc-item${isOpen ? \" dga-acc-item--active\" : \"\"}\">\r\n <button class=\"dga-acc-header\" data-size=\"${escapeHtml(size)}\" aria-expanded=\"${isOpen ? \"true\" : \"false\"}\">\r\n <span>${escapeHtml(title)}</span>\r\n </button>\r\n <div class=\"dga-acc-content\">\r\n <div class=\"dga-acc-body\">${body}</div>\r\n </div>\r\n </div>\r\n `;\r\n }\r\n}\r\n\r\nclass DGAAccordionElement extends HTMLElement {\r\n constructor() {\r\n super();\r\n this._controller = null;\r\n }\r\n\r\n connectedCallback() {\r\n this.classList.add(\"dga-acc\");\r\n this._controller?.destroy();\r\n this._controller = new AccordionController(this);\r\n }\r\n\r\n disconnectedCallback() {\r\n this._controller?.destroy();\r\n this._controller = null;\r\n }\r\n}\r\n\r\ncustomElements.define(\"dga-accordion-item\", DGAAccordionItemElement);\r\ncustomElements.define(\"dga-accordion\", DGAAccordionElement);\r\n","import {\r\n COPY_ICON_SVG,\r\n copyText,\r\n markCopyButtonCopied,\r\n} from \"./shared/copy-text.js\";\r\nimport { escapeHtml } from \"./shared/escape-html.js\";\r\n\r\nclass DGACodeSnippetElement extends HTMLElement {\r\n static get observedAttributes() {\r\n return [\"code\", \"multiline\"];\r\n }\r\n\r\n constructor() {\r\n super();\r\n this._boundCopy = this._handleCopy.bind(this);\r\n }\r\n\r\n connectedCallback() {\r\n if (!this._codeContent) {\r\n this._codeContent =\r\n this.getAttribute(\"code\")?.trim() || this.textContent?.trim() || \"\";\r\n }\r\n this._render();\r\n }\r\n\r\n disconnectedCallback() {\r\n this._copyButton?.removeEventListener(\"click\", this._boundCopy);\r\n }\r\n\r\n attributeChangedCallback() {\r\n if (this.isConnected) this._render();\r\n }\r\n\r\n _render() {\r\n const isMultiline = this.hasAttribute(\"multiline\");\r\n const code =\r\n this.getAttribute(\"code\")?.trim() || this._codeContent || \"\";\r\n\r\n if (isMultiline) {\r\n this.innerHTML = `\r\n <div class=\"dga-code-snippet-multiline\">\r\n <div class=\"dga-code-snippet-multiline__body\">\r\n <pre class=\"dga-code-snippet-multiline__code\"><code>${escapeHtml(code)}</code></pre>\r\n <button type=\"button\" class=\"dga-code-snippet-multiline__copy\" aria-label=\"Copy code\" data-copied=\"false\">\r\n ${COPY_ICON_SVG}\r\n </button>\r\n </div>\r\n </div>\r\n `;\r\n this._copyButton = this.querySelector(\".dga-code-snippet-multiline__copy\");\r\n } else {\r\n this.innerHTML = `\r\n <div class=\"dga-code-snippet-inline\">\r\n <div class=\"dga-code-snippet-inline__content\">${escapeHtml(code)}</div>\r\n <button type=\"button\" class=\"dga-code-snippet-inline__copy\" aria-label=\"Copy code\" data-copied=\"false\">\r\n ${COPY_ICON_SVG}\r\n </button>\r\n </div>\r\n `;\r\n this._copyButton = this.querySelector(\".dga-code-snippet-inline__copy\");\r\n }\r\n\r\n this._copyButton?.removeEventListener(\"click\", this._boundCopy);\r\n this._copyButton?.addEventListener(\"click\", this._boundCopy);\r\n }\r\n\r\n async _handleCopy() {\r\n const code = this.getAttribute(\"code\")?.trim() || this._codeContent || \"\";\r\n if (!code || !this._copyButton) return;\r\n\r\n const copied = await copyText(code);\r\n if (!copied) return;\r\n\r\n await markCopyButtonCopied(this._copyButton);\r\n this.dispatchEvent(\r\n new CustomEvent(\"dga-code-copy\", { bubbles: true, composed: true })\r\n );\r\n }\r\n}\r\n\r\ncustomElements.define(\"dga-code-snippet\", DGACodeSnippetElement);\r\n","import {\r\n parseChartDataAttribute,\r\n renderPieChart,\r\n} from \"./shared/pie-chart.js\";\r\n\r\nclass DGAPieChartElement extends HTMLElement {\r\n static get observedAttributes() {\r\n return [\"data\", \"hole\"];\r\n }\r\n\r\n connectedCallback() {\r\n this._render();\r\n }\r\n\r\n attributeChangedCallback() {\r\n if (this.isConnected) this._render();\r\n }\r\n\r\n _render() {\r\n const chartData = parseChartDataAttribute(this.getAttribute(\"data\"));\r\n const hole =\r\n this.hasAttribute(\"hole\") && this.getAttribute(\"hole\") !== \"false\";\r\n\r\n renderPieChart(this, chartData, { hole });\r\n }\r\n}\r\n\r\ncustomElements.define(\"dga-pie-chart\", DGAPieChartElement);\r\n","import { escapeHtml } from \"./shared/escape-html.js\";\r\n\r\nconst DEFAULT_ASSETS = {\r\n \"flag-src\": \"saudiFlag.svg\",\r\n \"link-icon-src\": \"link-icon.svg\",\r\n \"lock-icon-src\": \"square-lock-password.svg\",\r\n \"logo-src\": \"DGA-logo-icon.svg\",\r\n};\r\n\r\nclass DGAVerifyBarElement extends HTMLElement {\r\n static get observedAttributes() {\r\n return [\r\n \"registration-number\",\r\n \"registration-link\",\r\n \"domain\",\r\n \"assets-base\",\r\n \"flag-src\",\r\n \"link-icon-src\",\r\n \"lock-icon-src\",\r\n \"logo-src\",\r\n ];\r\n }\r\n\r\n constructor() {\r\n super();\r\n this.isOpen = false;\r\n this._btn = null;\r\n this._content = null;\r\n this._wrapper = null;\r\n this._boundToggle = () => (this.isOpen ? this._close() : this._open());\r\n }\r\n\r\n connectedCallback() {\r\n this._render();\r\n }\r\n\r\n disconnectedCallback() {\r\n this._btn?.removeEventListener(\"click\", this._boundToggle);\r\n }\r\n\r\n attributeChangedCallback() {\r\n if (this.isConnected) this._render();\r\n }\r\n\r\n _render() {\r\n const regNumber = escapeHtml(\r\n this.getAttribute(\"registration-number\") || \"20250105758\",\r\n );\r\n const regLinkRaw =\r\n this.getAttribute(\"registration-link\") ||\r\n \"https://raqmi.dga.gov.sa/platforms/platforms/9ebc5e60-9081-4653-bfb9-08dd2a2f8633/platform-license\";\r\n const regLink = escapeHtml(this._normalizeLink(regLinkRaw));\r\n const domain = escapeHtml(this.getAttribute(\"domain\") || \".edu.sa\");\r\n\r\n const flagSrc = escapeHtml(this._imageSrc(\"flag-src\"));\r\n const linkIconSrc = escapeHtml(this._imageSrc(\"link-icon-src\"));\r\n const lockIconSrc = escapeHtml(this._imageSrc(\"lock-icon-src\"));\r\n const logoSrc = escapeHtml(this._imageSrc(\"logo-src\"));\r\n\r\n this.innerHTML = `\r\n <div id=\"dga-verify-bar\" class=\"dga-bg-gray-100 closed\">\r\n <div class=\"dga-container dga-py-2\">\r\n <div id=\"dga-verify-bar_bar\" class=\"dga-row\">\r\n <div class=\"dga-col\">\r\n <div class=\"dga-d-flex dga-align-items-center dga-gap-2\">\r\n <span><img src=\"${flagSrc}\" alt=\"علم المملكة العربية السعودية\" /></span>\r\n <span class=\"dga-text-sm\">موقع حكومي رسمي تابع لحكومة المملكة العربية السعودية</span>\r\n <span>\r\n <button id=\"dga-verifyBtn\" class=\"dga-btn dga-btn-subtle dga-text-primary-500\" data-verify-toggle aria-expanded=\"false\">\r\n كيف تتحقق\r\n </button>\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div id=\"dga-verify-bar_content\" class=\"dga-row dga-pt-10 dga-pb-8\" data-verify-content style=\"display: ${this.isOpen ? \"flex\" : \"none\"};\">\r\n <div class=\"dga-col-md-6 dga-pb-8\">\r\n <div class=\"dga-d-flex dga-gap-4\">\r\n <div><img src=\"${linkIconSrc}\" alt=\"\" /></div>\r\n <div class=\"dga-w-full dga-d-flex dga-flex-col dga-gap-2\">\r\n <h3 class=\"dga-text-xl dga-fw-bold\">\r\n روابط المواقع الالكترونية الرسمية السعودية تنتهي بـ\r\n <span class=\"dga-text-primary-500\">${domain}</span>\r\n </h3>\r\n <p>\r\n جميع روابط المواقع الرسمية التابعة للجهات الحكومية في المملكة\r\n العربية السعودية تنتهي بـ ${domain}\r\n </p>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"dga-col-md-6 dga-pb-8\">\r\n <div class=\"dga-d-flex dga-gap-4\">\r\n <div><img src=\"${lockIconSrc}\" alt=\"\" /></div>\r\n <div class=\"dga-w-full dga-d-flex dga-flex-col dga-gap-2\">\r\n <h3 class=\"dga-text-xl dga-fw-bold\">\r\n المواقع الالكترونية الحكومية تستخدم بروتوكول\r\n <span class=\"dga-text-primary-500\">HTTPS</span> للتشفير و الأمان.\r\n </h3>\r\n <p>\r\n المواقع الالكترونية الآمنة في المملكة العربية السعودية تستخدم\r\n بروتوكول HTTPS للتشفير.\r\n </p>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"dga-col-12\">\r\n <div class=\"dga-d-flex dga-align-items-center dga-gap-3 dga-bg-white dga-text-md dga-rounded-md dga-py-2 dga-px-7\">\r\n <img src=\"${logoSrc}\" alt=\"شعار هيئة الحكومة الرقمية\" />\r\n مسجل لدى هيئة الحكومة الرقمية برقم :\r\n <a href=\"${regLink}\" class=\"dga-link\">${regNumber}</a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n `;\r\n\r\n this._btn?.removeEventListener(\"click\", this._boundToggle);\r\n this._wrapper = this.querySelector(\"#dga-verify-bar\");\r\n this._btn = this.querySelector(\"[data-verify-toggle]\");\r\n this._content = this.querySelector(\"[data-verify-content]\");\r\n this._btn?.addEventListener(\"click\", this._boundToggle);\r\n }\r\n\r\n _imageSrc(attributeName) {\r\n const override = this.getAttribute(attributeName);\r\n if (override) return override;\r\n\r\n const defaultFile = DEFAULT_ASSETS[attributeName];\r\n const base = this.getAttribute(\"assets-base\") || \"/\";\r\n const normalizedBase = base.endsWith(\"/\") ? base : `${base}/`;\r\n\r\n return `${normalizedBase}${defaultFile}`;\r\n }\r\n\r\n _open() {\r\n this._content.style.display = \"flex\";\r\n this.isOpen = true;\r\n this._btn?.setAttribute(\"aria-expanded\", \"true\");\r\n this._wrapper?.classList.replace(\"closed\", \"opend\");\r\n }\r\n\r\n _close() {\r\n this._content.style.display = \"none\";\r\n this.isOpen = false;\r\n this._btn?.setAttribute(\"aria-expanded\", \"false\");\r\n this._wrapper?.classList.replace(\"opend\", \"closed\");\r\n }\r\n\r\n _normalizeLink(value) {\r\n try {\r\n return new URL(value, window.location.href).href;\r\n } catch {\r\n return \"#\";\r\n }\r\n }\r\n}\r\n\r\ncustomElements.define(\"dga-verify-bar\", DGAVerifyBarElement);\r\n","import \"./dga-alert.js\";\r\nimport \"./dga-accordion.js\";\r\nimport \"./dga-code-snippet.js\";\r\nimport \"./dga-pie-chart.js\";\r\nimport \"./dga-verify-bar.js\";\r\n\r\nexport const DGA_WEB_COMPONENTS_REGISTERED = true;\r\n"],"names":["AccordionController","root","event","header","item","DGAAccordion","element","DGAAlert","closeButton","alert","resolveChartColor","color","generateChartGradient","data","segment","generateChartLabelsHtml","parseChartDataAttribute","value","parsed","renderPieChart","hole","DGAChart","copyText","text","textarea","success","COPY_ICON_SVG","markCopyButtonCopied","copyButton","resetMs","previousLabel","DGACodeSnippet","inlineSnippet","multilineSnippet","textToCopy","DGAMenuDropdown","options","e","menuItem","listItem","isActive","isOpen","width","DGAVerifyBar","escapeHtml","DEFAULT_VARIANT","DGAAlertElement","html","variant","title","dismissible","body","titleHtml","closeHtml","DGAAccordionItemElement","size","DGAAccordionElement","DGACodeSnippetElement","isMultiline","code","DGAPieChartElement","chartData","DEFAULT_ASSETS","DGAVerifyBarElement","regNumber","regLinkRaw","regLink","domain","flagSrc","linkIconSrc","lockIconSrc","logoSrc","attributeName","override","defaultFile","base","DGA_WEB_COMPONENTS_REGISTERED"],"mappings":"AAAO,MAAMA,EAAoB;AAAA,EAC/B,YAAYC,GAAM;AAChB,SAAK,OAAOA,GACZ,KAAK,cAAc,KAAK,YAAY,KAAK,IAAI,GAC7C,KAAK,gBAAgB,KAAK,cAAc,KAAK,IAAI,GACjD,KAAK,KAAI;AAAA,EACX;AAAA,EAEA,OAAO;AACL,SAAK,KAAK,iBAAiB,SAAS,KAAK,WAAW,GACpD,KAAK,KAAK,iBAAiB,WAAW,KAAK,aAAa;AAAA,EAC1D;AAAA,EAEA,YAAYC,GAAO;AACjB,UAAMC,IAASD,EAAM,OAAO,QAAQ,iBAAiB;AACrD,IAAIC,KAAU,KAAK,KAAK,SAASA,CAAM,KACrC,KAAK,OAAOA,CAAM;AAAA,EAEtB;AAAA,EAEA,cAAcD,GAAO;AACnB,UAAMC,IAASD,EAAM,OAAO,QAAQ,iBAAiB;AACrD,IAAI,CAACC,KAAU,CAAC,KAAK,KAAK,SAASA,CAAM,MAErCD,EAAM,QAAQ,WAAWA,EAAM,QAAQ,SACzCA,EAAM,eAAc,GACpB,KAAK,OAAOC,CAAM;AAAA,EAEtB;AAAA,EAEA,OAAOA,GAAQ;AACb,UAAMC,IAAOD,EAAO;AACpB,IAAKC,MAEDA,EAAK,UAAU,SAAS,sBAAsB,IAChD,KAAK,MAAMA,CAAI,IAEf,KAAK,KAAKA,CAAI;AAAA,EAElB;AAAA,EAEA,KAAKA,GAAM;AACT,IAAAA,EAAK,UAAU,IAAI,sBAAsB,GACzCA,EAAK,cAAc,iBAAiB,GAAG,aAAa,iBAAiB,MAAM;AAAA,EAC7E;AAAA,EAEA,MAAMA,GAAM;AACV,IAAAA,EAAK,UAAU,OAAO,sBAAsB,GAC5CA,EAAK,cAAc,iBAAiB,GAAG,aAAa,iBAAiB,OAAO;AAAA,EAC9E;AAAA,EAEA,WAAW;AACT,SAAK,KAAK,iBAAiB,eAAe,EAAE,QAAQ,CAACA,MAAS;AAC5D,WAAK,MAAMA,CAAI;AAAA,IACjB,CAAC;AAAA,EACH;AAAA,EAEA,UAAU;AACR,SAAK,KAAK,oBAAoB,SAAS,KAAK,WAAW,GACvD,KAAK,KAAK,oBAAoB,WAAW,KAAK,aAAa;AAAA,EAC7D;AACF;AC3De,MAAMC,EAAa;AAAA,EAChC,YAAYC,GAAS;AACnB,SAAK,YAAYA,GACjB,KAAK,aAAa,IAAIN,EAAoBM,CAAO;AAAA,EACnD;AAAA,EAEA,OAAOH,GAAQ;AACb,SAAK,WAAW,OAAOA,CAAM;AAAA,EAC/B;AAAA,EAEA,KAAKC,GAAM;AACT,SAAK,WAAW,KAAKA,CAAI;AAAA,EAC3B;AAAA,EAEA,MAAMA,GAAM;AACV,SAAK,WAAW,MAAMA,CAAI;AAAA,EAC5B;AAAA,EAEA,WAAW;AACT,SAAK,WAAW;EAClB;AAAA,EAEA,UAAU;AACR,SAAK,WAAW;EAClB;AACF;AC3Be,MAAMG,EAAS;AAAA,EAC5B,YAAYN,IAAO,UAAU;AAC3B,SAAK,OAAOA,GACZ,KAAK,mBAAmB,KAAK,iBAAiB,KAAK,IAAI,GACvD,KAAK,KAAI;AAAA,EACX;AAAA,EAEA,OAAO;AACL,SAAK,KAAK,iBAAiB,SAAS,KAAK,gBAAgB;AAAA,EAC3D;AAAA,EAEA,iBAAiBC,GAAO;AACtB,UAAMM,IAAcN,EAAM,OAAO,QAAQ,oBAAoB;AAC7D,QAAI,CAACM;AACH;AAGF,UAAMC,IAAQD,EAAY,QAAQ,YAAY;AAC9C,IAAIC,MACFA,EAAM,MAAM,UAAU;AAAA,EAE1B;AAAA,EAEA,UAAU;AACR,SAAK,KAAK,oBAAoB,SAAS,KAAK,gBAAgB;AAAA,EAC9D;AACF;AC1BO,SAASC,EAAkBC,GAAO;AACvC,SAAIA,EAAM,WAAW,GAAG,KAAKA,EAAM,WAAW,MAAM,IAC3CA,IAEF,SAASA,CAAK;AACvB;AAEO,SAASC,EAAsBC,IAAO,IAAI;AAK/C,SAAO,kBAJeA,EAAK;AAAA,IACzB,CAACC,MACC,GAAGJ,EAAkBI,EAAQ,KAAK,CAAC,IAAIA,EAAQ,IAAI,IAAIA,EAAQ,EAAE;AAAA,EACvE,EACyC,KAAK,IAAI,CAAC;AACnD;AAEO,SAASC,EAAwBF,IAAO,IAAI;AAUjD,SAAO,sCATQA,EACZ;AAAA,IACC,CAACC,MACC,mGAAmGJ;AAAA,MACjGI,EAAQ;AAAA,IAClB,CAAS,YAAYA,EAAQ,KAAK;AAAA,EAClC,EACK,KAAK,EAAE,CAEyC;AACrD;AAEO,SAASE,EAAwBC,GAAO;AAC7C,MAAI,CAACA,EAAO,QAAO;AAEnB,MAAI;AACF,UAAMC,IAAS,KAAK,MAAMD,CAAK;AAC/B,WAAO,MAAM,QAAQC,CAAM,IAAIA,IAAS,CAAA;AAAA,EAC1C,QAAQ;AACN,mBAAQ,KAAK,4CAA4C,GAClD;EACT;AACF;AAEO,SAASC,EAAeb,GAASO,IAAO,CAAA,GAAI,EAAE,MAAAO,IAAO,GAAK,IAAK,IAAI;AACxE,EAAKd,MAELA,EAAQ,UAAU,IAAI,eAAe,GACrCA,EAAQ,aAAa,aAAac,IAAO,SAAS,OAAO,GACzDd,EAAQ,MAAM,aAAaM,EAAsBC,CAAI,GACrDP,EAAQ,YAAYS,EAAwBF,CAAI;AAClD;ACzCe,MAAMQ,EAAS;AAAA,EAC5B,YAAYf,GAASO,IAAO,IAAI;AAC9B,SAAK,QAAQP,GACb,KAAK,OAAOO,GACZ,KAAK,KAAI;AAAA,EACX;AAAA,EAEA,OAAO;AACL,UAAMO,IAAO,KAAK,MAAM,aAAa,WAAW,MAAM;AACtD,IAAAD,EAAe,KAAK,OAAO,KAAK,MAAM,EAAE,MAAAC,EAAI,CAAE;AAAA,EAChD;AAAA,EAEA,mBAAmB;AACjB,WAAOR,EAAsB,KAAK,IAAI;AAAA,EACxC;AAAA,EAEA,iBAAiB;AACf,WAAOG,EAAwB,KAAK,IAAI;AAAA,EAC1C;AACF;ACzBO,eAAeO,EAASC,GAAM;AACnC,MAAI;AACF,QAAI,UAAU,WAAW;AACvB,mBAAM,UAAU,UAAU,UAAUA,CAAI,GACjC;AAAA,EAEX,QAAiB;AAAA,EAEjB;AAEA,QAAMC,IAAW,SAAS,cAAc,UAAU;AAClD,EAAAA,EAAS,QAAQD,GACjBC,EAAS,aAAa,YAAY,EAAE,GACpCA,EAAS,MAAM,WAAW,YAC1BA,EAAS,MAAM,OAAO,WACtB,SAAS,KAAK,YAAYA,CAAQ,GAClCA,EAAS,OAAM;AACf,QAAMC,IAAU,SAAS,YAAY,MAAM;AAC3C,kBAAS,KAAK,YAAYD,CAAQ,GAC3BC;AACT;AAEO,MAAMC,IAAgB;AAAA;AAAA;AAAA;AAKtB,eAAeC,EAAqBC,GAAYC,IAAU,MAAM;AACrE,QAAMC,IAAgBF,EAAW,aAAa,YAAY,KAAK;AAC/D,EAAAA,EAAW,aAAa,cAAc,QAAQ,GAC9CA,EAAW,aAAa,eAAe,MAAM,GAE7C,OAAO,WAAW,MAAM;AACtB,IAAAA,EAAW,aAAa,cAAcE,CAAa,GACnDF,EAAW,aAAa,eAAe,OAAO;AAAA,EAChD,GAAGC,CAAO;AACZ;AClCe,MAAME,EAAe;AAAA,EAClC,YAAY9B,IAAO,UAAU;AAC3B,SAAK,OAAOA,GACZ,KAAK,kBAAkB,KAAK,gBAAgB,KAAK,IAAI,GACrD,KAAK,KAAI;AAAA,EACX;AAAA,EAEA,OAAO;AACL,SAAK,KAAK,iBAAiB,SAAS,KAAK,eAAe;AAAA,EAC1D;AAAA,EAEA,MAAM,gBAAgBC,GAAO;AAC3B,UAAM0B,IAAa1B,EAAM,OAAO;AAAA,MAC9B;AAAA,IACN;AACI,QAAI,CAAC0B,EAAY;AAEjB,UAAMI,IAAgBJ,EAAW,QAAQ,0BAA0B,GAC7DK,IAAmBL,EAAW,QAAQ,6BAA6B;AAEzE,QAAIM,IAAa;AAgBjB,IAfIF,IAIFE,IAHoBF,EAAc;AAAA,MAChC;AAAA,IACR,GACgC,aAAa,KAAI,KAAM,KACxCC,MAITC,IAHoBD,EAAiB;AAAA,MACnC;AAAA,IACR,GACgC,eAAe,KAGvC,GAACC,KAGD,CADW,MAAMZ,EAASY,CAAU,MAGxC,MAAMP,EAAqBC,CAAU;AAAA,EACvC;AAAA,EAEA,UAAU;AACR,SAAK,KAAK,oBAAoB,SAAS,KAAK,eAAe;AAAA,EAC7D;AACF;AC9CA,MAAMO,EAAgB;AAAA,EACpB,YAAYC,IAAU,IAAI;AAIxB,QAHA,KAAK,SAASA,EAAQ,UAAU,SAAS,cAAc,aAAa,GACpE,KAAK,YAAYA,EAAQ,aAAa,MAElC,CAAC,KAAK,QAAQ;AAChB,cAAQ,KAAK,+BAA+B;AAC5C;AAAA,IACF;AAQA,QANA,KAAK,YAAY,KAAK,OAAO,sBAAqB,EAAG,MAAM,OAAO,SAClE,KAAK,eAAe,KAAK,OAAO,sBAAqB,EAAG,QACxD,KAAK,OAAO,KAAK,OAAO,cAAc,WAAW,GACjD,KAAK,UAAU,KAAK,OAAO,cAAc,qBAAqB,GAC9D,KAAK,YAAY,KAAK,OAAO,iBAAiB,iCAAiC,GAE3E,CAAC,KAAK,MAAM;AACd,cAAQ,KAAK,4BAA4B;AACzC;AAAA,IACF;AAEA,SAAK,sBAAsB,CAACC,MAAM,KAAK,eAAeA,CAAC,GACvD,KAAK,wBAAwB,CAACA,MAAM,KAAK,iBAAiBA,CAAC,GAC3D,KAAK,yBAAyB,CAACA,MAAM,KAAK,kBAAkBA,CAAC,GAC7D,KAAK,oBAAoB,MAAM,KAAK,aAAY,GAChD,KAAK,sBAAsB,CAACA,MAAM,KAAK,eAAeA,CAAC,GAEvD,KAAK,KAAI;AAAA,EACX;AAAA,EAEA,IAAI,WAAW;AACb,WAAO,KAAK,iBAAgB,KAAM,KAAK,qBAAoB;AAAA,EAC7D;AAAA,EAEA,OAAO;AACL,SAAK,aAAY,GACjB,KAAK,WAAU;AAAA,EACjB;AAAA,EAEA,aAAa;AAEX,SAAK,UAAU,QAAQ,CAACjC,MAAS;AAC/B,MAAAA,EAAK,iBAAiB,SAAS,KAAK,mBAAmB;AAAA,IACzD,CAAC,GAGD,KAAK,SAAS,iBAAiB,SAAS,KAAK,qBAAqB,GAGlE,SAAS,iBAAiB,SAAS,KAAK,sBAAsB,GAG9D,OAAO,iBAAiB,UAAU,KAAK,iBAAiB,GAGxD,KAAK,UAAU,QAAQ,CAACA,MAAS;AAC/B,MAAAA,EAAK,iBAAiB,WAAW,KAAK,mBAAmB;AAAA,IAC3D,CAAC;AAAA,EACH;AAAA,EAEA,eAAe,GAAG;AAChB,MAAE,eAAc,GAChB,EAAE,gBAAe,GAGb,KAAK,aAAa,KAAK,UAAU,UACnC,KAAK,UAAU;AAGjB,UAAMkC,IAAW,EAAE,eACbC,IAAWD,EAAS,eACpBE,IAAWD,EAAS,UAAU,SAAS,QAAQ;AAGrD,SAAK,kBAAiB,GAGjBC,MACHD,EAAS,UAAU,IAAI,QAAQ,GAC/BD,EAAS,UAAU,IAAI,wBAAwB,GAC/CA,EAAS,aAAa,iBAAiB,MAAM,GAE7CC,EAAS,cAAc,eAAe,EAAE,MAAM,MAAM,GAAG,KAAK,eAAe,KAAK,SACtF;AAAA,EAEE;AAAA,EAEA,iBAAiB,GAAG;AAClB,MAAE,gBAAe,GAGb,KAAK,aAAa,KAAK,UAAU,UACnC,KAAK,UAAU,cAGjB,KAAK,KAAK,UAAU,OAAO,eAAe,GACtC,KAAK,KAAK,UAAU,SAAS,eAAe,KAC9C,SAAS,KAAK,UAAU,IAAI,WAAW,GACvC,KAAK,KAAK,MAAM,SAAS,gBAAgB,KAAK,YAAY,QAAQ,KAAK,SAAS,UAEhF,SAAS,KAAK,UAAU,OAAO,WAAW,GAC1C,KAAK,KAAK,MAAM,SAAS,QAE3B,KAAK,KAAK,MAAM,MAAM,GAAG,KAAK,YAAY,KAAK,YAAY;AAE3D,UAAME,IAAS,KAAK,KAAK,UAAU,SAAS,eAAe;AAC3D,SAAK,QAAQ,aAAa,iBAAiBA,CAAM,GACjD,KAAK,QAAQ;AAAA,MACX;AAAA,MACAA,IAAS,eAAe;AAAA,IAC9B;AAAA,EACE;AAAA;AAAA,EAGA,YAAY;AAEV,SAAK,kBAAiB,GAGlB,KAAK,uBACP,KAAK,KAAK,UAAU,OAAO,eAAe,GAC1C,SAAS,KAAK,UAAU,OAAO,WAAW,GAC1C,KAAK,KAAK,MAAM,SAAS,OACzB,KAAK,QAAQ,aAAa,iBAAiB,OAAO,GAClD,KAAK,QAAQ,aAAa,cAAc,WAAW;AAAA,EAEvD;AAAA,EAEA,kBAAkB,GAAG;AAEnB,QAAI,KAAK,EAAE,OAAO,QAAQ,uBAAuB;AAC/C;AAIF,IADoB,KAAK,OAAO,iBAAiB,uBAAuB,EAC5D,QAAQ,CAACrC,MAAS;AAC5B,MAAAA,EAAK,UAAU,OAAO,QAAQ;AAC9B,YAAMkC,IAAWlC,EAAK,cAAc,gBAAgB;AACpD,MAAAkC,GAAU,UAAU,OAAO,wBAAwB,GACnDA,GAAU,aAAa,iBAAiB,OAAO;AAAA,IACjD,CAAC;AAAA,EACH;AAAA,EAEA,eAAe,GAAG;AAEhB,IAAI,EAAE,QAAQ,aACZ,KAAK,kBAAiB,GACtB,EAAE,cAAc,WAId,EAAE,QAAQ,WAAW,EAAE,QAAQ,SACjC,EAAE,eAAc,GAChB,KAAK,eAAe,CAAC;AAAA,EAEzB;AAAA,EAEA,eAAe;AACb,UAAMI,IAAQ,OAAO;AAGrB,aAAS,KAAK,UAAU;AAAA,MACtB;AAAA,MACA;AAAA,MACA;AAAA,IACN,GAGQA,IAAQ,OACV,SAAS,KAAK,UAAU,IAAI,cAAc,GAC1C,KAAK,kBAAiB,GACtB,KAAK,KAAK,UAAU,OAAO,eAAe,GAC1C,SAAS,KAAK,UAAU,OAAO,WAAW,KACjCA,KAAS,OAAOA,IAAQ,MACjC,SAAS,KAAK,UAAU,IAAI,aAAa,IAEzC,SAAS,KAAK,UAAU,IAAI,aAAa;AAAA,EAE7C;AAAA;AAAA,EAGA,UAAU;AACR,SAAK,UAAU,QAAQ,CAACtC,MAAS;AAC/B,MAAAA,EAAK,oBAAoB,SAAS,KAAK,mBAAmB,GAC1DA,EAAK,oBAAoB,WAAW,KAAK,mBAAmB;AAAA,IAC9D,CAAC,GAED,KAAK,SAAS,oBAAoB,SAAS,KAAK,qBAAqB,GACrE,SAAS,oBAAoB,SAAS,KAAK,sBAAsB,GACjE,OAAO,oBAAoB,UAAU,KAAK,iBAAiB;AAAA,EAC7D;AAAA,EAEA,mBAAmB;AACjB,WAAO,KAAK,MAAM,UAAU,SAAS,eAAe;AAAA,EACtD;AAAA,EAEA,uBAAuB;AACrB,WAAO,KAAK,OAAO,iBAAiB,uBAAuB,EAAE,SAAS;AAAA,EACxE;AACF;ACvMe,MAAMuC,EAAa;AAAA,EAChC,YAAYP,IAAU,IAAI;AAexB,QAdA,KAAK,SAAS,IACd,KAAK,YAAY,SAAS,eAAe,gBAAgB,GACzD,KAAK,OAAOA,EAAQ,QAAQ,MAE5B,KAAK,MAAM,SAAS,eAAe,eAAe,GAClD,KAAK,UAAU,SAAS,eAAe,wBAAwB,GAC/D,KAAK,cAAc,MAAM;AACvB,MAAI,KAAK,SACP,KAAK,WAAU,IAEf,KAAK,UAAS;AAAA,IAElB,GAEI,CAAC,KAAK,aAAa,CAAC,KAAK,OAAO,CAAC,KAAK,SAAS;AACjD,cAAQ,KAAK,mCAAmC;AAChD;AAAA,IACF;AAEA,SAAK,KAAI;AAAA,EACX;AAAA,EAEA,OAAO;AACL,SAAK,IAAI,iBAAiB,SAAS,KAAK,WAAW;AAAA,EACrD;AAAA,EAEA,YAAY;AAEV,IAAI,KAAK,QAAQ,KAAK,KAAK,YACzB,KAAK,KAAK,aAGZ,KAAK,QAAQ,MAAM,UAAU,QAC7B,KAAK,SAAS,IACd,KAAK,UAAU,UAAU,IAAI,OAAO,GACpC,KAAK,UAAU,UAAU,OAAO,QAAQ;AAAA,EAC1C;AAAA,EAEA,aAAa;AACX,SAAK,QAAQ,MAAM,UAAU,QAC7B,KAAK,SAAS,IACd,KAAK,UAAU,UAAU,IAAI,QAAQ,GACrC,KAAK,UAAU,UAAU,OAAO,OAAO;AAAA,EACzC;AAAA,EAEA,UAAU;AACR,SAAK,KAAK,oBAAoB,SAAS,KAAK,WAAW;AAAA,EACzD;AACF;AClDO,SAASQ,EAAW3B,IAAQ,IAAI;AACrC,SAAO,OAAOA,CAAK,EAChB,QAAQ,MAAM,OAAO,EACrB,QAAQ,MAAM,MAAM,EACpB,QAAQ,MAAM,MAAM,EACpB,QAAQ,MAAM,QAAQ,EACtB,QAAQ,MAAM,OAAO;AAC1B;ACLA,MAAM4B,IAAkB;AAExB,MAAMC,UAAwB,YAAY;AAAA,EACxC,WAAW,qBAAqB;AAC9B,WAAO,CAAC,WAAW,SAAS,aAAa;AAAA,EAC3C;AAAA,EAEA,cAAc;AACZ,aACA,KAAK,gBAAgB,KAAK,eAAe,KAAK,IAAI;AAAA,EACpD;AAAA,EAEA,oBAAoB;AAClB,SAAK,uBAAsB;AAAA,EAC7B;AAAA,EAEA,yBAAyB;AAEvB,0BAAsB,MAAM;AAC1B,WAAK,oBAAmB,GACxB,KAAK,QAAO;AAAA,IACd,CAAC;AAAA,EACH;AAAA,EAEA,sBAAsB;AACpB,QAAI,KAAK,gBAAgB,KAAK,cAAc,oBAAoB;AAC9D;AAGF,UAAMC,IAAO,KAAK,UAAU,KAAI;AAChC,IAAIA,MACF,KAAK,eAAeA;AAAA,EAExB;AAAA,EAEA,uBAAuB;AACrB,SAAK,cAAc,oBAAoB,SAAS,KAAK,aAAa;AAAA,EACpE;AAAA,EAEA,2BAA2B;AACzB,IAAI,KAAK,eAAa,KAAK,QAAO;AAAA,EACpC;AAAA,EAEA,UAAU;AACR,UAAMC,IAAU,KAAK,aAAa,SAAS,KAAKH,GAC1CI,IAAQ,KAAK,aAAa,OAAO,KAAK,IACtCC,IAAc,KAAK,aAAa,aAAa,GAC7CC,IAAO,KAAK,gBAAgB;AAElC,SAAK,YAAY,aACjB,KAAK,aAAa,gBAAgBH,CAAO;AAEzC,UAAMI,IAAYH,IACd,+BAA+BL,EAAWK,CAAK,CAAC,UAChD,IAEEI,IAAYH,IACd,yGACA;AAEJ,SAAK,YAAY;AAAA;AAAA;AAAA,UAGXE,CAAS;AAAA,sCACmBD,CAAI;AAAA;AAAA,QAElCE,CAAS;AAAA,OAGb,KAAK,eAAe,KAAK,cAAc,oBAAoB,GAC3D,KAAK,cAAc,oBAAoB,SAAS,KAAK,aAAa,GAClE,KAAK,cAAc,iBAAiB,SAAS,KAAK,aAAa;AAAA,EACjE;AAAA,EAEA,iBAAiB;AACf,SAAK,MAAM,UAAU,QACrB,KAAK;AAAA,MACH,IAAI,YAAY,qBAAqB,EAAE,SAAS,IAAM,UAAU,IAAM;AAAA,IAC5E;AAAA,EACE;AACF;AAEA,eAAe,OAAO,aAAaP,CAAe;ACjFlD,MAAMQ,UAAgC,YAAY;AAAA,EAChD,WAAW,qBAAqB;AAC9B,WAAO,CAAC,SAAS,QAAQ,MAAM;AAAA,EACjC;AAAA,EAEA,oBAAoB;AAClB,IAAK,KAAK,iBACR,KAAK,eAAe,KAAK,UAAU,KAAI,IAEzC,KAAK,QAAO;AAAA,EACd;AAAA,EAEA,2BAA2B;AACzB,IAAI,KAAK,eAAa,KAAK,QAAO;AAAA,EACpC;AAAA,EAEA,UAAU;AACR,UAAML,IAAQ,KAAK,aAAa,OAAO,KAAK,IACtCM,IAAO,KAAK,aAAa,MAAM,KAAK,MACpCd,IAAS,KAAK,aAAa,MAAM,GACjCU,IAAO,KAAK,gBAAgB;AAElC,SAAK,YAAY;AAAA,gCACWV,IAAS,0BAA0B,EAAE;AAAA,oDACjBG,EAAWW,CAAI,CAAC,oBAAoBd,IAAS,SAAS,OAAO;AAAA,kBAC/FG,EAAWK,CAAK,CAAC;AAAA;AAAA;AAAA,sCAGGE,CAAI;AAAA;AAAA;AAAA;AAAA,EAIxC;AACF;AAEA,MAAMK,UAA4B,YAAY;AAAA,EAC5C,cAAc;AACZ,aACA,KAAK,cAAc;AAAA,EACrB;AAAA,EAEA,oBAAoB;AAClB,SAAK,UAAU,IAAI,SAAS,GAC5B,KAAK,aAAa,WAClB,KAAK,cAAc,IAAIxD,EAAoB,IAAI;AAAA,EACjD;AAAA,EAEA,uBAAuB;AACrB,SAAK,aAAa,WAClB,KAAK,cAAc;AAAA,EACrB;AACF;AAEA,eAAe,OAAO,sBAAsBsD,CAAuB;AACnE,eAAe,OAAO,iBAAiBE,CAAmB;AClD1D,MAAMC,UAA8B,YAAY;AAAA,EAC9C,WAAW,qBAAqB;AAC9B,WAAO,CAAC,QAAQ,WAAW;AAAA,EAC7B;AAAA,EAEA,cAAc;AACZ,aACA,KAAK,aAAa,KAAK,YAAY,KAAK,IAAI;AAAA,EAC9C;AAAA,EAEA,oBAAoB;AAClB,IAAK,KAAK,iBACR,KAAK,eACH,KAAK,aAAa,MAAM,GAAG,KAAI,KAAM,KAAK,aAAa,KAAI,KAAM,KAErE,KAAK,QAAO;AAAA,EACd;AAAA,EAEA,uBAAuB;AACrB,SAAK,aAAa,oBAAoB,SAAS,KAAK,UAAU;AAAA,EAChE;AAAA,EAEA,2BAA2B;AACzB,IAAI,KAAK,eAAa,KAAK,QAAO;AAAA,EACpC;AAAA,EAEA,UAAU;AACR,UAAMC,IAAc,KAAK,aAAa,WAAW,GAC3CC,IACJ,KAAK,aAAa,MAAM,GAAG,KAAI,KAAM,KAAK,gBAAgB;AAE5D,IAAID,KACF,KAAK,YAAY;AAAA;AAAA;AAAA,kEAG2Cd,EAAWe,CAAI,CAAC;AAAA;AAAA,gBAElEjC,CAAa;AAAA;AAAA;AAAA;AAAA,SAKvB,KAAK,cAAc,KAAK,cAAc,mCAAmC,MAEzE,KAAK,YAAY;AAAA;AAAA,0DAEmCkB,EAAWe,CAAI,CAAC;AAAA;AAAA,cAE5DjC,CAAa;AAAA;AAAA;AAAA,SAIrB,KAAK,cAAc,KAAK,cAAc,gCAAgC,IAGxE,KAAK,aAAa,oBAAoB,SAAS,KAAK,UAAU,GAC9D,KAAK,aAAa,iBAAiB,SAAS,KAAK,UAAU;AAAA,EAC7D;AAAA,EAEA,MAAM,cAAc;AAClB,UAAMiC,IAAO,KAAK,aAAa,MAAM,GAAG,UAAU,KAAK,gBAAgB;AAIvE,IAHI,CAACA,KAAQ,CAAC,KAAK,eAGf,CADW,MAAMrC,EAASqC,CAAI,MAGlC,MAAMhC,EAAqB,KAAK,WAAW,GAC3C,KAAK;AAAA,MACH,IAAI,YAAY,iBAAiB,EAAE,SAAS,IAAM,UAAU,IAAM;AAAA,IACxE;AAAA,EACE;AACF;AAEA,eAAe,OAAO,oBAAoB8B,CAAqB;AC3E/D,MAAMG,UAA2B,YAAY;AAAA,EAC3C,WAAW,qBAAqB;AAC9B,WAAO,CAAC,QAAQ,MAAM;AAAA,EACxB;AAAA,EAEA,oBAAoB;AAClB,SAAK,QAAO;AAAA,EACd;AAAA,EAEA,2BAA2B;AACzB,IAAI,KAAK,eAAa,KAAK,QAAO;AAAA,EACpC;AAAA,EAEA,UAAU;AACR,UAAMC,IAAY7C,EAAwB,KAAK,aAAa,MAAM,CAAC,GAC7DI,IACJ,KAAK,aAAa,MAAM,KAAK,KAAK,aAAa,MAAM,MAAM;AAE7D,IAAAD,EAAe,MAAM0C,GAAW,EAAE,MAAAzC,EAAI,CAAE;AAAA,EAC1C;AACF;AAEA,eAAe,OAAO,iBAAiBwC,CAAkB;ACzBzD,MAAME,IAAiB;AAAA,EACrB,YAAY;AAAA,EACZ,iBAAiB;AAAA,EACjB,iBAAiB;AAAA,EACjB,YAAY;AACd;AAEA,MAAMC,UAA4B,YAAY;AAAA,EAC5C,WAAW,qBAAqB;AAC9B,WAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACN;AAAA,EACE;AAAA,EAEA,cAAc;AACZ,aACA,KAAK,SAAS,IACd,KAAK,OAAO,MACZ,KAAK,WAAW,MAChB,KAAK,WAAW,MAChB,KAAK,eAAe,MAAO,KAAK,SAAS,KAAK,WAAW,KAAK,MAAK;AAAA,EACrE;AAAA,EAEA,oBAAoB;AAClB,SAAK,QAAO;AAAA,EACd;AAAA,EAEA,uBAAuB;AACrB,SAAK,MAAM,oBAAoB,SAAS,KAAK,YAAY;AAAA,EAC3D;AAAA,EAEA,2BAA2B;AACzB,IAAI,KAAK,eAAa,KAAK,QAAO;AAAA,EACpC;AAAA,EAEA,UAAU;AACR,UAAMC,IAAYpB;AAAA,MAChB,KAAK,aAAa,qBAAqB,KAAK;AAAA,IAClD,GACUqB,IACJ,KAAK,aAAa,mBAAmB,KACrC,sGACIC,IAAUtB,EAAW,KAAK,eAAeqB,CAAU,CAAC,GACpDE,IAASvB,EAAW,KAAK,aAAa,QAAQ,KAAK,SAAS,GAE5DwB,IAAUxB,EAAW,KAAK,UAAU,UAAU,CAAC,GAC/CyB,IAAczB,EAAW,KAAK,UAAU,eAAe,CAAC,GACxD0B,IAAc1B,EAAW,KAAK,UAAU,eAAe,CAAC,GACxD2B,IAAU3B,EAAW,KAAK,UAAU,UAAU,CAAC;AAErD,SAAK,YAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gCAMWwB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kHAW2E,KAAK,SAAS,SAAS,MAAM;AAAA;AAAA;AAAA,+BAGhHC,CAAW;AAAA;AAAA;AAAA;AAAA,uDAIaF,CAAM;AAAA;AAAA;AAAA;AAAA,8CAIfA,CAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,+BAQrBG,CAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,0BAgBhBC,CAAO;AAAA;AAAA,yBAERL,CAAO,sBAAsBF,CAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,OAQ3D,KAAK,MAAM,oBAAoB,SAAS,KAAK,YAAY,GACzD,KAAK,WAAW,KAAK,cAAc,iBAAiB,GACpD,KAAK,OAAO,KAAK,cAAc,sBAAsB,GACrD,KAAK,WAAW,KAAK,cAAc,uBAAuB,GAC1D,KAAK,MAAM,iBAAiB,SAAS,KAAK,YAAY;AAAA,EACxD;AAAA,EAEA,UAAUQ,GAAe;AACvB,UAAMC,IAAW,KAAK,aAAaD,CAAa;AAChD,QAAIC,EAAU,QAAOA;AAErB,UAAMC,IAAcZ,EAAeU,CAAa,GAC1CG,IAAO,KAAK,aAAa,aAAa,KAAK;AAGjD,WAAO,GAFgBA,EAAK,SAAS,GAAG,IAAIA,IAAO,GAAGA,CAAI,GAElC,GAAGD,CAAW;AAAA,EACxC;AAAA,EAEA,QAAQ;AACN,SAAK,SAAS,MAAM,UAAU,QAC9B,KAAK,SAAS,IACd,KAAK,MAAM,aAAa,iBAAiB,MAAM,GAC/C,KAAK,UAAU,UAAU,QAAQ,UAAU,OAAO;AAAA,EACpD;AAAA,EAEA,SAAS;AACP,SAAK,SAAS,MAAM,UAAU,QAC9B,KAAK,SAAS,IACd,KAAK,MAAM,aAAa,iBAAiB,OAAO,GAChD,KAAK,UAAU,UAAU,QAAQ,SAAS,QAAQ;AAAA,EACpD;AAAA,EAEA,eAAezD,GAAO;AACpB,QAAI;AACF,aAAO,IAAI,IAAIA,GAAO,OAAO,SAAS,IAAI,EAAE;AAAA,IAC9C,QAAQ;AACN,aAAO;AAAA,IACT;AAAA,EACF;AACF;AAEA,eAAe,OAAO,kBAAkB8C,CAAmB;AC5J/C,MAACa,IAAgC;"}
|
package/package.json
CHANGED