@waaelg/dga-design-system 0.5.3 → 0.5.7
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 +3 -3
- package/dist/index.js +18 -24
- package/dist/index.js.map +1 -1
- package/dist/style.css +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -178,15 +178,15 @@ Load the package straight from **jsDelivr** or **unpkg** — no install, no bund
|
|
|
178
178
|
```html
|
|
179
179
|
<link
|
|
180
180
|
rel="stylesheet"
|
|
181
|
-
href="https://cdn.jsdelivr.net/npm/@waaelg/dga-design-system@0.5.
|
|
181
|
+
href="https://cdn.jsdelivr.net/npm/@waaelg/dga-design-system@0.5.7/dist/style.css"
|
|
182
182
|
/>
|
|
183
183
|
|
|
184
184
|
<script type="module">
|
|
185
|
-
import 'https://cdn.jsdelivr.net/npm/@waaelg/dga-design-system@0.5.
|
|
185
|
+
import 'https://cdn.jsdelivr.net/npm/@waaelg/dga-design-system@0.5.7/dist/index.js';
|
|
186
186
|
</script>
|
|
187
187
|
```
|
|
188
188
|
|
|
189
|
-
Same files are on unpkg (`https://unpkg.com/@waaelg/dga-design-system@0.5.
|
|
189
|
+
Same files are on unpkg (`https://unpkg.com/@waaelg/dga-design-system@0.5.7/dist/…`). Pin a version for reproducible builds, or use `@latest` to always fetch the newest release. See the [installation docs](./docs/getting-started/installation.md#cdn-no-build-step) for a full example.
|
|
190
190
|
|
|
191
191
|
---
|
|
192
192
|
|
package/dist/index.js
CHANGED
|
@@ -95,7 +95,9 @@ function A(i) {
|
|
|
95
95
|
}
|
|
96
96
|
}
|
|
97
97
|
function p(i, t = [], { hole: e = !1 } = {}) {
|
|
98
|
-
i && (i.classList.add("dga-pie-chart"), i.setAttribute("data-hole", e ? "true" : "false"), i.style.background =
|
|
98
|
+
i && (i.classList.add("dga-pie-chart"), i.setAttribute("data-hole", e ? "true" : "false"), i.style.background = "", i.innerHTML = `<span class="dga-pie-chart__disc" style="background: ${u(
|
|
99
|
+
t
|
|
100
|
+
)}"></span>${g(t)}`);
|
|
99
101
|
}
|
|
100
102
|
class H {
|
|
101
103
|
constructor(t, e = []) {
|
|
@@ -264,27 +266,16 @@ class k extends HTMLElement {
|
|
|
264
266
|
return ["variant", "title", "dismissible"];
|
|
265
267
|
}
|
|
266
268
|
constructor() {
|
|
267
|
-
super(), this._boundDismiss = this._handleDismiss.bind(this);
|
|
269
|
+
super(), this._bodyContent = null, this._boundDismiss = this._handleDismiss.bind(this);
|
|
268
270
|
}
|
|
269
271
|
connectedCallback() {
|
|
270
|
-
this.
|
|
271
|
-
}
|
|
272
|
-
_scheduleInitialRender() {
|
|
273
|
-
requestAnimationFrame(() => {
|
|
274
|
-
this._captureBodyContent(), this._render();
|
|
275
|
-
});
|
|
276
|
-
}
|
|
277
|
-
_captureBodyContent() {
|
|
278
|
-
if (this._bodyContent || this.querySelector(".dga-alert-content"))
|
|
279
|
-
return;
|
|
280
|
-
const t = this.innerHTML.trim();
|
|
281
|
-
t && (this._bodyContent = t);
|
|
272
|
+
this._bodyContent == null && (this._bodyContent = this.innerHTML.trim()), this._render();
|
|
282
273
|
}
|
|
283
274
|
disconnectedCallback() {
|
|
284
275
|
this._closeButton?.removeEventListener("click", this._boundDismiss);
|
|
285
276
|
}
|
|
286
277
|
attributeChangedCallback() {
|
|
287
|
-
this.isConnected && this._render();
|
|
278
|
+
this._bodyContent != null && this.isConnected && this._render();
|
|
288
279
|
}
|
|
289
280
|
_render() {
|
|
290
281
|
const t = this.getAttribute("variant") || C, e = this.getAttribute("title") || "", s = this.hasAttribute("dismissible"), n = this._bodyContent || "";
|
|
@@ -310,11 +301,14 @@ class w extends HTMLElement {
|
|
|
310
301
|
static get observedAttributes() {
|
|
311
302
|
return ["title", "size", "open"];
|
|
312
303
|
}
|
|
304
|
+
constructor() {
|
|
305
|
+
super(), this._bodyContent = null;
|
|
306
|
+
}
|
|
313
307
|
connectedCallback() {
|
|
314
|
-
this._bodyContent
|
|
308
|
+
this._bodyContent == null && (this._bodyContent = this.innerHTML.trim()), this._render();
|
|
315
309
|
}
|
|
316
310
|
attributeChangedCallback() {
|
|
317
|
-
this.isConnected && this._render();
|
|
311
|
+
this._bodyContent != null && this.isConnected && this._render();
|
|
318
312
|
}
|
|
319
313
|
_render() {
|
|
320
314
|
const t = this.getAttribute("title") || "", e = this.getAttribute("size") || "md", s = this.hasAttribute("open"), n = this._bodyContent || "";
|
|
@@ -348,16 +342,16 @@ class E extends HTMLElement {
|
|
|
348
342
|
return ["code", "multiline"];
|
|
349
343
|
}
|
|
350
344
|
constructor() {
|
|
351
|
-
super(), this._boundCopy = this._handleCopy.bind(this);
|
|
345
|
+
super(), this._codeContent = null, this._boundCopy = this._handleCopy.bind(this);
|
|
352
346
|
}
|
|
353
347
|
connectedCallback() {
|
|
354
|
-
this._codeContent
|
|
348
|
+
this._codeContent == null && (this._codeContent = this.getAttribute("code")?.trim() || this.textContent?.trim() || ""), this._render();
|
|
355
349
|
}
|
|
356
350
|
disconnectedCallback() {
|
|
357
351
|
this._copyButton?.removeEventListener("click", this._boundCopy);
|
|
358
352
|
}
|
|
359
353
|
attributeChangedCallback() {
|
|
360
|
-
this.isConnected && this._render();
|
|
354
|
+
this._codeContent != null && this.isConnected && this._render();
|
|
361
355
|
}
|
|
362
356
|
_render() {
|
|
363
357
|
const t = this.hasAttribute("multiline"), e = this.getAttribute("code")?.trim() || this._codeContent || "";
|
|
@@ -403,12 +397,12 @@ class x extends HTMLElement {
|
|
|
403
397
|
}
|
|
404
398
|
}
|
|
405
399
|
customElements.define("dga-pie-chart", x);
|
|
406
|
-
const
|
|
400
|
+
const D = {
|
|
407
401
|
"flag-src": "saudiFlag.svg",
|
|
408
402
|
"link-icon-src": "link-icon.svg",
|
|
409
403
|
"lock-icon-src": "square-lock-password.svg",
|
|
410
404
|
"logo-src": "DGA-logo-icon.svg"
|
|
411
|
-
},
|
|
405
|
+
}, S = {
|
|
412
406
|
ar: {
|
|
413
407
|
flagAlt: "علم المملكة العربية السعودية",
|
|
414
408
|
banner: "موقع حكومي رسمي تابع لحكومة المملكة العربية السعودية",
|
|
@@ -461,7 +455,7 @@ class T extends HTMLElement {
|
|
|
461
455
|
this.isConnected && this._render();
|
|
462
456
|
}
|
|
463
457
|
_render() {
|
|
464
|
-
const t = this.getAttribute("lang") === "en" ? "en" : "ar", e = t === "en" ? "ltr" : "rtl", s =
|
|
458
|
+
const t = this.getAttribute("lang") === "en" ? "en" : "ar", e = t === "en" ? "ltr" : "rtl", s = S[t], n = a(
|
|
465
459
|
this.getAttribute("registration-number") || "20250105758"
|
|
466
460
|
), o = this.getAttribute("registration-link") || "https://raqmi.dga.gov.sa/platforms/platforms/9ebc5e60-9081-4653-bfb9-08dd2a2f8633/platform-license", r = a(this._normalizeLink(o)), l = a(this.getAttribute("domain") || ".edu.sa"), v = a(this._imageSrc("flag-src")), y = a(this._imageSrc("link-icon-src")), f = a(this._imageSrc("lock-icon-src")), _ = a(this._imageSrc("logo-src"));
|
|
467
461
|
this.innerHTML = `
|
|
@@ -527,7 +521,7 @@ class T extends HTMLElement {
|
|
|
527
521
|
_imageSrc(t) {
|
|
528
522
|
const e = this.getAttribute(t);
|
|
529
523
|
if (e) return e;
|
|
530
|
-
const s =
|
|
524
|
+
const s = D[t], n = this.getAttribute("assets-base") || "/";
|
|
531
525
|
return `${n.endsWith("/") ? n : `${n}/`}${s}`;
|
|
532
526
|
}
|
|
533
527
|
_open() {
|
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 this.btn?.setAttribute(\"aria-expanded\", \"true\");\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 this.btn?.setAttribute(\"aria-expanded\", \"false\");\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.classList.add(\"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\nconst STRINGS = {\r\n ar: {\r\n flagAlt: \"علم المملكة العربية السعودية\",\r\n banner: \"موقع حكومي رسمي تابع لحكومة المملكة العربية السعودية\",\r\n cta: \"كيف تتحقق\",\r\n domainHeading: \"روابط المواقع الالكترونية الرسمية السعودية تنتهي بـ\",\r\n domainBody:\r\n \"جميع روابط المواقع الرسمية التابعة للجهات الحكومية في المملكة العربية السعودية تنتهي بـ\",\r\n httpsHeading: \"المواقع الالكترونية الحكومية تستخدم بروتوكول\",\r\n httpsHeadingSuffix: \"للتشفير و الأمان.\",\r\n httpsBody:\r\n \"المواقع الالكترونية الآمنة في المملكة العربية السعودية تستخدم بروتوكول HTTPS للتشفير.\",\r\n logoAlt: \"شعار هيئة الحكومة الرقمية\",\r\n registeredWith: \"مسجل لدى هيئة الحكومة الرقمية برقم :\",\r\n },\r\n en: {\r\n flagAlt: \"Flag of the Kingdom of Saudi Arabia\",\r\n banner: \"This is an official government website of the Kingdom of Saudi Arabia\",\r\n cta: \"How to verify\",\r\n domainHeading: \"Official Saudi government website links end with\",\r\n domainBody:\r\n \"All official website links belonging to government entities in the Kingdom of Saudi Arabia end with\",\r\n httpsHeading: \"Government websites use the\",\r\n httpsHeadingSuffix: \"protocol for encryption and security.\",\r\n httpsBody:\r\n \"Secure websites in the Kingdom of Saudi Arabia use the HTTPS protocol for encryption.\",\r\n logoAlt: \"Digital Government Authority logo\",\r\n registeredWith: \"Registered with the Digital Government Authority under number:\",\r\n },\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 \"lang\",\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 lang = this.getAttribute(\"lang\") === \"en\" ? \"en\" : \"ar\";\r\n const dir = lang === \"en\" ? \"ltr\" : \"rtl\";\r\n const t = STRINGS[lang];\r\n\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\" dir=\"${dir}\" 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=\"${t.flagAlt}\" /></span>\r\n <span class=\"dga-text-sm\">${t.banner}</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 ${t.cta}\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 ${t.domainHeading}\r\n <span class=\"dga-text-primary-500\">${domain}</span>\r\n </h3>\r\n <p>\r\n ${t.domainBody} ${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 ${t.httpsHeading}\r\n <span class=\"dga-text-primary-500\">HTTPS</span> ${t.httpsHeadingSuffix}\r\n </h3>\r\n <p>\r\n ${t.httpsBody}\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=\"${t.logoAlt}\" />\r\n ${t.registeredWith}\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","STRINGS","DGAVerifyBarElement","lang","dir","t","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,CAAC,MAAM,KAAK,eAAe,CAAC,GACvD,KAAK,wBAAwB,CAAC,MAAM,KAAK,iBAAiB,CAAC,GAC3D,KAAK,yBAAyB,CAAC,MAAM,KAAK,kBAAkB,CAAC,GAC7D,KAAK,oBAAoB,MAAM,KAAK,aAAY,GAChD,KAAK,sBAAsB,CAAC,MAAM,KAAK,eAAe,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,CAAChC,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,eAAeiC,GAAG;AAChB,IAAAA,EAAE,eAAc,GAChBA,EAAE,gBAAe,GAGb,KAAK,aAAa,KAAK,UAAU,UACnC,KAAK,UAAU;AAGjB,UAAMC,IAAWD,EAAE,eACbE,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,iBAAiBF,GAAG;AAClB,IAAAA,EAAE,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,UAAMI,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,kBAAkBJ,GAAG;AAEnB,QAAIA,KAAKA,EAAE,OAAO,QAAQ,uBAAuB;AAC/C;AAIF,IADoB,KAAK,OAAO,iBAAiB,uBAAuB,EAC5D,QAAQ,CAACjC,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,eAAeD,GAAG;AAEhB,IAAIA,EAAE,QAAQ,aACZ,KAAK,kBAAiB,GACtBA,EAAE,cAAc,WAIdA,EAAE,QAAQ,WAAWA,EAAE,QAAQ,SACjCA,EAAE,eAAc,GAChB,KAAK,eAAeA,CAAC;AAAA,EAEzB;AAAA,EAEA,eAAe;AACb,UAAMK,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,GACxC,KAAK,KAAK,aAAa,iBAAiB,MAAM;AAAA,EAChD;AAAA,EAEA,aAAa;AACX,SAAK,QAAQ,MAAM,UAAU,QAC7B,KAAK,SAAS,IACd,KAAK,UAAU,UAAU,IAAI,QAAQ,GACrC,KAAK,UAAU,UAAU,OAAO,OAAO,GACvC,KAAK,KAAK,aAAa,iBAAiB,OAAO;AAAA,EACjD;AAAA,EAEA,UAAU;AACR,SAAK,KAAK,oBAAoB,SAAS,KAAK,WAAW;AAAA,EACzD;AACF;ACpDO,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,UAAU,IAAI,WAAW,GAC9B,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,GAEMC,IAAU;AAAA,EACd,IAAI;AAAA,IACF,SAAS;AAAA,IACT,QAAQ;AAAA,IACR,KAAK;AAAA,IACL,eAAe;AAAA,IACf,YACE;AAAA,IACF,cAAc;AAAA,IACd,oBAAoB;AAAA,IACpB,WACE;AAAA,IACF,SAAS;AAAA,IACT,gBAAgB;AAAA,EACpB;AAAA,EACE,IAAI;AAAA,IACF,SAAS;AAAA,IACT,QAAQ;AAAA,IACR,KAAK;AAAA,IACL,eAAe;AAAA,IACf,YACE;AAAA,IACF,cAAc;AAAA,IACd,oBAAoB;AAAA,IACpB,WACE;AAAA,IACF,SAAS;AAAA,IACT,gBAAgB;AAAA,EACpB;AACA;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,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,IAAO,KAAK,aAAa,MAAM,MAAM,OAAO,OAAO,MACnDC,IAAMD,MAAS,OAAO,QAAQ,OAC9BE,IAAIJ,EAAQE,CAAI,GAEhBG,IAAYxB;AAAA,MAChB,KAAK,aAAa,qBAAqB,KAAK;AAAA,IAClD,GACUyB,IACJ,KAAK,aAAa,mBAAmB,KACrC,sGACIC,IAAU1B,EAAW,KAAK,eAAeyB,CAAU,CAAC,GACpDE,IAAS3B,EAAW,KAAK,aAAa,QAAQ,KAAK,SAAS,GAE5D4B,IAAU5B,EAAW,KAAK,UAAU,UAAU,CAAC,GAC/C6B,IAAc7B,EAAW,KAAK,UAAU,eAAe,CAAC,GACxD8B,IAAc9B,EAAW,KAAK,UAAU,eAAe,CAAC,GACxD+B,IAAU/B,EAAW,KAAK,UAAU,UAAU,CAAC;AAErD,SAAK,YAAY;AAAA,sCACiBsB,CAAG;AAAA;AAAA;AAAA;AAAA;AAAA,gCAKTM,CAAO,UAAUL,EAAE,OAAO;AAAA,0CAChBA,EAAE,MAAM;AAAA;AAAA;AAAA,oBAG9BA,EAAE,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kHAOyF,KAAK,SAAS,SAAS,MAAM;AAAA;AAAA;AAAA,+BAGhHM,CAAW;AAAA;AAAA;AAAA,oBAGtBN,EAAE,aAAa;AAAA,uDACoBI,CAAM;AAAA;AAAA;AAAA,oBAGzCJ,EAAE,UAAU,IAAII,CAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,+BAQXG,CAAW;AAAA;AAAA;AAAA,oBAGtBP,EAAE,YAAY;AAAA,oEACkCA,EAAE,kBAAkB;AAAA;AAAA;AAAA,oBAGpEA,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,0BAQLQ,CAAO,UAAUR,EAAE,OAAO;AAAA,gBACpCA,EAAE,cAAc;AAAA,yBACPG,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,IAAchB,EAAec,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,eAAe7D,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,kBAAkB+C,CAAmB;AC9L/C,MAACgB,IAAgC;"}
|
|
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 // The gradient now lives on an inner disc so the host can be a normal-flow\r\n // column (disc + labels), reserving its own space instead of relying on\r\n // absolutely-positioned labels.\r\n element.style.background = \"\";\r\n element.innerHTML = `<span class=\"dga-pie-chart__disc\" style=\"background: ${generateChartGradient(\r\n data\r\n )}\"></span>${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 this.btn?.setAttribute(\"aria-expanded\", \"true\");\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 this.btn?.setAttribute(\"aria-expanded\", \"false\");\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._bodyContent = null;\r\n this._boundDismiss = this._handleDismiss.bind(this);\r\n }\r\n\r\n connectedCallback() {\r\n if (this._bodyContent == null) {\r\n this._bodyContent = this.innerHTML.trim();\r\n }\r\n this._render();\r\n }\r\n\r\n disconnectedCallback() {\r\n this._closeButton?.removeEventListener(\"click\", this._boundDismiss);\r\n }\r\n\r\n attributeChangedCallback() {\r\n // On upgrade, attributeChangedCallback can fire before connectedCallback.\r\n // Don't render until the original slotted content has been captured,\r\n // otherwise _render() would overwrite it with an empty body.\r\n if (this._bodyContent == null) return;\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.classList.add(\"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 constructor() {\r\n super();\r\n this._bodyContent = null;\r\n }\r\n\r\n connectedCallback() {\r\n if (this._bodyContent == null) {\r\n this._bodyContent = this.innerHTML.trim();\r\n }\r\n this._render();\r\n }\r\n\r\n attributeChangedCallback() {\r\n // On upgrade, attributeChangedCallback can fire before connectedCallback.\r\n // Don't render until the original slotted content has been captured,\r\n // otherwise _render() would overwrite it with an empty body.\r\n if (this._bodyContent == null) return;\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._codeContent = null;\r\n this._boundCopy = this._handleCopy.bind(this);\r\n }\r\n\r\n connectedCallback() {\r\n if (this._codeContent == null) {\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 // On upgrade, attributeChangedCallback can fire before connectedCallback.\r\n // Don't render until the slotted code has been captured, otherwise\r\n // _render() would overwrite it (e.g. slotted code + a `multiline` attr).\r\n if (this._codeContent == null) return;\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\nconst STRINGS = {\r\n ar: {\r\n flagAlt: \"علم المملكة العربية السعودية\",\r\n banner: \"موقع حكومي رسمي تابع لحكومة المملكة العربية السعودية\",\r\n cta: \"كيف تتحقق\",\r\n domainHeading: \"روابط المواقع الالكترونية الرسمية السعودية تنتهي بـ\",\r\n domainBody:\r\n \"جميع روابط المواقع الرسمية التابعة للجهات الحكومية في المملكة العربية السعودية تنتهي بـ\",\r\n httpsHeading: \"المواقع الالكترونية الحكومية تستخدم بروتوكول\",\r\n httpsHeadingSuffix: \"للتشفير و الأمان.\",\r\n httpsBody:\r\n \"المواقع الالكترونية الآمنة في المملكة العربية السعودية تستخدم بروتوكول HTTPS للتشفير.\",\r\n logoAlt: \"شعار هيئة الحكومة الرقمية\",\r\n registeredWith: \"مسجل لدى هيئة الحكومة الرقمية برقم :\",\r\n },\r\n en: {\r\n flagAlt: \"Flag of the Kingdom of Saudi Arabia\",\r\n banner: \"This is an official government website of the Kingdom of Saudi Arabia\",\r\n cta: \"How to verify\",\r\n domainHeading: \"Official Saudi government website links end with\",\r\n domainBody:\r\n \"All official website links belonging to government entities in the Kingdom of Saudi Arabia end with\",\r\n httpsHeading: \"Government websites use the\",\r\n httpsHeadingSuffix: \"protocol for encryption and security.\",\r\n httpsBody:\r\n \"Secure websites in the Kingdom of Saudi Arabia use the HTTPS protocol for encryption.\",\r\n logoAlt: \"Digital Government Authority logo\",\r\n registeredWith: \"Registered with the Digital Government Authority under number:\",\r\n },\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 \"lang\",\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 lang = this.getAttribute(\"lang\") === \"en\" ? \"en\" : \"ar\";\r\n const dir = lang === \"en\" ? \"ltr\" : \"rtl\";\r\n const t = STRINGS[lang];\r\n\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\" dir=\"${dir}\" 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=\"${t.flagAlt}\" /></span>\r\n <span class=\"dga-text-sm\">${t.banner}</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 ${t.cta}\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 ${t.domainHeading}\r\n <span class=\"dga-text-primary-500\">${domain}</span>\r\n </h3>\r\n <p>\r\n ${t.domainBody} ${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 ${t.httpsHeading}\r\n <span class=\"dga-text-primary-500\">HTTPS</span> ${t.httpsHeadingSuffix}\r\n </h3>\r\n <p>\r\n ${t.httpsBody}\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=\"${t.logoAlt}\" />\r\n ${t.registeredWith}\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","variant","title","dismissible","body","titleHtml","closeHtml","DGAAccordionItemElement","size","DGAAccordionElement","DGACodeSnippetElement","isMultiline","code","DGAPieChartElement","chartData","DEFAULT_ASSETS","STRINGS","DGAVerifyBarElement","lang","dir","t","regNumber","regLinkRaw","regLink","domain","flagSrc","linkIconSrc","lockIconSrc","logoSrc","attributeName","override","defaultFile","base","DGA_WEB_COMPONENTS_REGISTERED"],"mappings":"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"}
|