@eui/eds 22.0.0-alpha.16 → 22.0.0-alpha.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. package/docs/changelog.html +28 -0
  2. package/docs/components/EdsLanguageSelectorDialog.html +1 -1
  3. package/docs/js/search/search_index.js +2 -2
  4. package/docs/json/documentation.json +42 -42
  5. package/docs/llms.txt +1 -1
  6. package/docs/properties.html +1 -1
  7. package/fesm2022/eui-eds-charts-eds-chart-legend.mjs +2 -2
  8. package/fesm2022/eui-eds-charts-eds-chart-legend.mjs.map +1 -1
  9. package/fesm2022/eui-eds-eds-accordion.mjs +2 -2
  10. package/fesm2022/eui-eds-eds-accordion.mjs.map +1 -1
  11. package/fesm2022/eui-eds-eds-alert.mjs +2 -2
  12. package/fesm2022/eui-eds-eds-alert.mjs.map +1 -1
  13. package/fesm2022/eui-eds-eds-autocomplete.mjs +2 -2
  14. package/fesm2022/eui-eds-eds-autocomplete.mjs.map +1 -1
  15. package/fesm2022/eui-eds-eds-avatar.mjs +4 -4
  16. package/fesm2022/eui-eds-eds-avatar.mjs.map +1 -1
  17. package/fesm2022/eui-eds-eds-blockquote.mjs +2 -2
  18. package/fesm2022/eui-eds-eds-blockquote.mjs.map +1 -1
  19. package/fesm2022/eui-eds-eds-calendar.mjs +4 -4
  20. package/fesm2022/eui-eds-eds-calendar.mjs.map +1 -1
  21. package/fesm2022/eui-eds-eds-card.mjs +2 -2
  22. package/fesm2022/eui-eds-eds-card.mjs.map +1 -1
  23. package/fesm2022/eui-eds-eds-date-block.mjs +2 -2
  24. package/fesm2022/eui-eds-eds-date-block.mjs.map +1 -1
  25. package/fesm2022/eui-eds-eds-datepicker.mjs +2 -2
  26. package/fesm2022/eui-eds-eds-datepicker.mjs.map +1 -1
  27. package/fesm2022/eui-eds-eds-discussion-thread.mjs +4 -4
  28. package/fesm2022/eui-eds-eds-discussion-thread.mjs.map +1 -1
  29. package/fesm2022/eui-eds-eds-empty-state.mjs +2 -2
  30. package/fesm2022/eui-eds-eds-empty-state.mjs.map +1 -1
  31. package/fesm2022/eui-eds-eds-fieldset.mjs +2 -2
  32. package/fesm2022/eui-eds-eds-fieldset.mjs.map +1 -1
  33. package/fesm2022/eui-eds-eds-file-upload.mjs +2 -2
  34. package/fesm2022/eui-eds-eds-file-upload.mjs.map +1 -1
  35. package/fesm2022/eui-eds-eds-growl.mjs +2 -2
  36. package/fesm2022/eui-eds-eds-growl.mjs.map +1 -1
  37. package/fesm2022/eui-eds-eds-language-selector.mjs +4 -4
  38. package/fesm2022/eui-eds-eds-language-selector.mjs.map +1 -1
  39. package/fesm2022/eui-eds-eds-list.mjs +2 -2
  40. package/fesm2022/eui-eds-eds-list.mjs.map +1 -1
  41. package/fesm2022/eui-eds-eds-menu.mjs +2 -2
  42. package/fesm2022/eui-eds-eds-menu.mjs.map +1 -1
  43. package/fesm2022/eui-eds-eds-multiselect.mjs +2 -2
  44. package/fesm2022/eui-eds-eds-multiselect.mjs.map +1 -1
  45. package/fesm2022/eui-eds-eds-page.mjs +2 -2
  46. package/fesm2022/eui-eds-eds-page.mjs.map +1 -1
  47. package/fesm2022/eui-eds-eds-popover.mjs +2 -2
  48. package/fesm2022/eui-eds-eds-popover.mjs.map +1 -1
  49. package/fesm2022/eui-eds-eds-progress-bar.mjs +2 -2
  50. package/fesm2022/eui-eds-eds-progress-bar.mjs.map +1 -1
  51. package/fesm2022/eui-eds-eds-progress-circle.mjs +2 -2
  52. package/fesm2022/eui-eds-eds-progress-circle.mjs.map +1 -1
  53. package/fesm2022/eui-eds-eds-select.mjs +2 -2
  54. package/fesm2022/eui-eds-eds-select.mjs.map +1 -1
  55. package/fesm2022/eui-eds-eds-shell.mjs +4 -4
  56. package/fesm2022/eui-eds-eds-shell.mjs.map +1 -1
  57. package/fesm2022/eui-eds-eds-table.mjs +2 -2
  58. package/fesm2022/eui-eds-eds-table.mjs.map +1 -1
  59. package/fesm2022/eui-eds-eds-tabs.mjs +2 -2
  60. package/fesm2022/eui-eds-eds-tabs.mjs.map +1 -1
  61. package/fesm2022/eui-eds-eds-timeline.mjs +2 -2
  62. package/fesm2022/eui-eds-eds-timeline.mjs.map +1 -1
  63. package/fesm2022/eui-eds-eds-timepicker.mjs +2 -2
  64. package/fesm2022/eui-eds-eds-timepicker.mjs.map +1 -1
  65. package/fesm2022/eui-eds-eds-user-profile.mjs +2 -2
  66. package/fesm2022/eui-eds-eds-user-profile.mjs.map +1 -1
  67. package/fesm2022/eui-eds-eds-wizard.mjs +2 -2
  68. package/fesm2022/eui-eds-utilities-eds-label.mjs +2 -2
  69. package/fesm2022/eui-eds-utilities-eds-label.mjs.map +1 -1
  70. package/fesm2022/eui-eds-utilities-eds-trend.mjs +2 -2
  71. package/fesm2022/eui-eds-utilities-eds-trend.mjs.map +1 -1
  72. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"eui-eds-eds-progress-circle.mjs","sources":["../../eds-progress-circle/eds-progress-circle.ts","../../eds-progress-circle/eds-progress-circle.html","../../eds-progress-circle/index.ts","../../eds-progress-circle/eui-eds-eds-progress-circle.ts"],"sourcesContent":["import {\n Component,\n ChangeDetectionStrategy,\n input,\n computed,\n booleanAttribute,\n numberAttribute,\n inject,\n} from '@angular/core';\n\nimport { EdsColorDirective } from '@eui/eds/shared';\nimport { EdsSizeDirective } from '@eui/eds/shared';\n\n/** Supported color types for automatic color step transitions. */\nexport type EdsProgressCircleColorType = 'info' | 'success' | 'warning' | 'critical';\n\n/**\n * Transforms a value into a clamped number between 0 and 100.\n */\nconst clampValue = (value: number): number => {\n return Math.max(0, Math.min(100, isNaN(value) ? 0 : value));\n};\n\n/**\n * @description\n * Circular progress indicator component that displays progress as an SVG ring\n * with customizable colors, sizes, and labels. Supports automatic color transitions\n * based on value thresholds.\n *\n * Uses SVG stroke-dasharray/stroke-dashoffset technique for smooth rendering\n * at any size without CSS rotation hacks.\n *\n * @usageNotes\n * ### Basic usage\n * ```html\n * <eds-progress-circle [value]=\"65\"></eds-progress-circle>\n * ```\n *\n * ### With custom label\n * ```html\n * <eds-progress-circle [value]=\"80\" valueLabel=\"4/5\"></eds-progress-circle>\n * ```\n *\n * ### With color variant\n * ```html\n * <eds-progress-circle [value]=\"100\" edsSuccess></eds-progress-circle>\n * ```\n *\n * ### With automatic color steps\n * ```html\n * <eds-progress-circle [value]=\"45\" [useColorSteps]=\"true\" colorSteps=\"25 75\"></eds-progress-circle>\n * ```\n */\n@Component({\n templateUrl: './eds-progress-circle.html',\n selector: 'eds-progress-circle',\n styleUrl: './eds-progress-circle.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [\n {\n directive: EdsColorDirective,\n inputs: [\n 'edsInfo',\n 'edsSuccess',\n 'edsWarning',\n 'edsCritical',\n 'edsColorVariant',\n ],\n },\n {\n directive: EdsSizeDirective,\n inputs: [\n 'edsSizeS',\n 'edsSizeM',\n 'edsSizeL',\n 'edsSizeVariant',\n ],\n },\n ],\n host: {\n '[class]': 'hostClasses()',\n '[attr.data-e2e]': 'e2eAttr()',\n '[attr.role]': 'role()',\n '[attr.aria-valuenow]': 'value()',\n 'aria-valuemin': '0',\n 'aria-valuemax': '100',\n '[attr.aria-valuetext]': 'ariaValueText()',\n '[attr.aria-label]': 'ariaLabel()',\n },\n})\nexport class EdsProgressCircle {\n /**\n * Data attribute value for end-to-end testing identification.\n * @default 'eds-progress-circle'\n */\n e2eAttr = input('eds-progress-circle');\n\n /**\n * ARIA role for the component. Use 'progressbar' for task completion progress,\n * or 'meter' for scalar measurements within a known range.\n * @default 'progressbar'\n */\n role = input<'progressbar' | 'meter'>('progressbar');\n\n /**\n * Accessibility label for the progress circle.\n * Provides an accessible name as required by WAI-ARIA APG.\n * @default 'Progress'\n */\n ariaLabel = input('Progress');\n\n /**\n * Current progress value (0-100). Values outside range are clamped.\n * @default 0\n */\n value = input(0, { transform: (v: number | string) => clampValue(numberAttribute(v, 0)) });\n\n /**\n * Custom label to display inside the circle instead of the default percentage.\n * When not set, displays `{value}%`.\n */\n valueLabel = input<string>();\n\n /**\n * Label to display when value is 0.\n * @default 'N/A'\n */\n emptyLabel = input('N/A');\n\n /**\n * Whether to show the value label inside the circle.\n * @default true\n */\n showValue = input(true, { transform: booleanAttribute });\n\n /**\n * Whether to use automatic color step transitions based on value thresholds.\n * When enabled, color changes automatically: success → warning → critical.\n * @default false\n */\n useColorSteps = input(false, { transform: booleanAttribute });\n\n /**\n * Custom color step thresholds as space-separated values.\n * Defines boundaries between success/warning/critical zones.\n * @default '33 66' (0-33: success, 34-66: warning, 67-100: critical)\n */\n colorSteps = input('33 66');\n\n /**\n * Stroke width of the progress ring (in SVG units).\n * @default 8\n */\n strokeWidth = input(8, { transform: numberAttribute });\n\n protected colorDirective = inject(EdsColorDirective);\n protected sizeDirective = inject(EdsSizeDirective);\n\n /** Radius of the SVG circle (adjusted for stroke width). */\n protected radius = computed(() => 50 - this.strokeWidth() / 2);\n\n /** Circumference of the progress circle. */\n protected circumference = computed(() => 2 * Math.PI * this.radius());\n\n /** Stroke dashoffset representing the unfilled portion. */\n protected dashOffset = computed(() => {\n const circ = this.circumference();\n return circ - (this.value() / 100) * circ;\n });\n\n /** The resolved color based on color steps or explicit color directive. */\n protected resolvedColorClass = computed(() => {\n if (this.useColorSteps()) {\n const steps = this.colorSteps()\n .split(/[ ,]+/g)\n .map(s => parseInt(s, 10));\n const val = this.value();\n const step1 = steps[0] ?? 33;\n const step2 = steps[1] ?? 66;\n\n if (val <= step1) return 'eds-progress-circle--success';\n if (val <= step2) return 'eds-progress-circle--warning';\n return 'eds-progress-circle--critical';\n }\n return this.colorDirective.getCssClass('eds-progress-circle');\n });\n\n /** Display label computed from value and inputs. */\n protected displayLabel = computed(() => {\n if (!this.showValue()) return '';\n if (this.value() === 0) return this.emptyLabel();\n return this.valueLabel() ?? `${Math.round(this.value())}%`;\n });\n\n /**\n * ARIA value text for assistive technologies.\n * When a custom valueLabel is provided, it is exposed as aria-valuetext\n * so screen readers announce a meaningful description instead of just the number.\n * Returns null (attribute not rendered) when the default percentage is sufficient.\n */\n protected ariaValueText = computed(() => {\n const label = this.valueLabel();\n if (label) return label;\n if (this.value() === 0) return this.emptyLabel();\n return null;\n });\n\n /** Computed host CSS classes. */\n hostClasses = computed(() => {\n const sizeClass = this.sizeDirective.getCssClass('eds-progress-circle');\n const colorClass = this.resolvedColorClass();\n return [\n 'eds-progress-circle',\n sizeClass,\n colorClass || 'eds-progress-circle--info',\n ]\n .join(' ')\n .trim();\n });\n}\n","<svg viewBox=\"0 0 100 100\" class=\"eds-progress-circle__svg\">\n <!-- Background track circle -->\n <circle\n class=\"eds-progress-circle__track\"\n [attr.cx]=\"50\"\n [attr.cy]=\"50\"\n [attr.r]=\"radius()\"\n [attr.stroke-width]=\"strokeWidth()\"\n fill=\"none\"\n />\n <!-- Progress arc -->\n @if (value() > 0) {\n <circle\n class=\"eds-progress-circle__progress\"\n [attr.cx]=\"50\"\n [attr.cy]=\"50\"\n [attr.r]=\"radius()\"\n [attr.stroke-width]=\"strokeWidth()\"\n [attr.stroke-dasharray]=\"circumference()\"\n [attr.stroke-dashoffset]=\"dashOffset()\"\n fill=\"none\"\n stroke-linecap=\"round\"\n />\n }\n</svg>\n@if (showValue()) {\n <span class=\"eds-progress-circle__label\">{{ displayLabel() }}</span>\n}\n","import { EdsProgressCircle } from './eds-progress-circle';\n\nexport { EdsProgressCircle };\nexport type { EdsProgressCircleColorType } from './eds-progress-circle';\n\n/** Convenience array for importing the eds-progress-circle component. */\nexport const EDS_PROGRESS_CIRCLE = [\n EdsProgressCircle,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"eui-eds-eds-progress-circle.mjs","sources":["../../eds-progress-circle/eds-progress-circle.ts","../../eds-progress-circle/eds-progress-circle.html","../../eds-progress-circle/index.ts","../../eds-progress-circle/eui-eds-eds-progress-circle.ts"],"sourcesContent":["import {\n Component,\n ChangeDetectionStrategy,\n input,\n computed,\n booleanAttribute,\n numberAttribute,\n inject,\n} from '@angular/core';\n\nimport { EdsColorDirective } from '@eui/eds/shared';\nimport { EdsSizeDirective } from '@eui/eds/shared';\n\n/** Supported color types for automatic color step transitions. */\nexport type EdsProgressCircleColorType = 'info' | 'success' | 'warning' | 'critical';\n\n/**\n * Transforms a value into a clamped number between 0 and 100.\n */\nconst clampValue = (value: number): number => {\n return Math.max(0, Math.min(100, isNaN(value) ? 0 : value));\n};\n\n/**\n * @description\n * Circular progress indicator component that displays progress as an SVG ring\n * with customizable colors, sizes, and labels. Supports automatic color transitions\n * based on value thresholds.\n *\n * Uses SVG stroke-dasharray/stroke-dashoffset technique for smooth rendering\n * at any size without CSS rotation hacks.\n *\n * @usageNotes\n * ### Basic usage\n * ```html\n * <eds-progress-circle [value]=\"65\"></eds-progress-circle>\n * ```\n *\n * ### With custom label\n * ```html\n * <eds-progress-circle [value]=\"80\" valueLabel=\"4/5\"></eds-progress-circle>\n * ```\n *\n * ### With color variant\n * ```html\n * <eds-progress-circle [value]=\"100\" edsSuccess></eds-progress-circle>\n * ```\n *\n * ### With automatic color steps\n * ```html\n * <eds-progress-circle [value]=\"45\" [useColorSteps]=\"true\" colorSteps=\"25 75\"></eds-progress-circle>\n * ```\n */\n@Component({\n templateUrl: './eds-progress-circle.html',\n selector: 'eds-progress-circle',\n styleUrl: './eds-progress-circle.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [\n {\n directive: EdsColorDirective,\n inputs: [\n 'edsInfo',\n 'edsSuccess',\n 'edsWarning',\n 'edsCritical',\n 'edsColorVariant',\n ],\n },\n {\n directive: EdsSizeDirective,\n inputs: [\n 'edsSizeS',\n 'edsSizeM',\n 'edsSizeL',\n 'edsSizeVariant',\n ],\n },\n ],\n host: {\n '[class]': 'hostClasses()',\n '[attr.data-e2e]': 'e2eAttr()',\n '[attr.role]': 'role()',\n '[attr.aria-valuenow]': 'value()',\n 'aria-valuemin': '0',\n 'aria-valuemax': '100',\n '[attr.aria-valuetext]': 'ariaValueText()',\n '[attr.aria-label]': 'ariaLabel()',\n },\n})\nexport class EdsProgressCircle {\n /**\n * Data attribute value for end-to-end testing identification.\n * @default 'eds-progress-circle'\n */\n e2eAttr = input('eds-progress-circle');\n\n /**\n * ARIA role for the component. Use 'progressbar' for task completion progress,\n * or 'meter' for scalar measurements within a known range.\n * @default 'progressbar'\n */\n role = input<'progressbar' | 'meter'>('progressbar');\n\n /**\n * Accessibility label for the progress circle.\n * Provides an accessible name as required by WAI-ARIA APG.\n * @default 'Progress'\n */\n ariaLabel = input('Progress');\n\n /**\n * Current progress value (0-100). Values outside range are clamped.\n * @default 0\n */\n value = input(0, { transform: (v: number | string) => clampValue(numberAttribute(v, 0)) });\n\n /**\n * Custom label to display inside the circle instead of the default percentage.\n * When not set, displays `{value}%`.\n */\n valueLabel = input<string>();\n\n /**\n * Label to display when value is 0.\n * @default 'N/A'\n */\n emptyLabel = input('N/A');\n\n /**\n * Whether to show the value label inside the circle.\n * @default true\n */\n showValue = input(true, { transform: booleanAttribute });\n\n /**\n * Whether to use automatic color step transitions based on value thresholds.\n * When enabled, color changes automatically: success → warning → critical.\n * @default false\n */\n useColorSteps = input(false, { transform: booleanAttribute });\n\n /**\n * Custom color step thresholds as space-separated values.\n * Defines boundaries between success/warning/critical zones.\n * @default '33 66' (0-33: success, 34-66: warning, 67-100: critical)\n */\n colorSteps = input('33 66');\n\n /**\n * Stroke width of the progress ring (in SVG units).\n * @default 8\n */\n strokeWidth = input(8, { transform: numberAttribute });\n\n protected colorDirective = inject(EdsColorDirective);\n protected sizeDirective = inject(EdsSizeDirective);\n\n /** Radius of the SVG circle (adjusted for stroke width). */\n protected radius = computed(() => 50 - this.strokeWidth() / 2);\n\n /** Circumference of the progress circle. */\n protected circumference = computed(() => 2 * Math.PI * this.radius());\n\n /** Stroke dashoffset representing the unfilled portion. */\n protected dashOffset = computed(() => {\n const circ = this.circumference();\n return circ - (this.value() / 100) * circ;\n });\n\n /** The resolved color based on color steps or explicit color directive. */\n protected resolvedColorClass = computed(() => {\n if (this.useColorSteps()) {\n const steps = this.colorSteps()\n .split(/[ ,]+/g)\n .map(s => parseInt(s, 10));\n const val = this.value();\n const step1 = steps[0] ?? 33;\n const step2 = steps[1] ?? 66;\n\n if (val <= step1) return 'eds-progress-circle--success';\n if (val <= step2) return 'eds-progress-circle--warning';\n return 'eds-progress-circle--critical';\n }\n return this.colorDirective.getCssClass('eds-progress-circle');\n });\n\n /** Display label computed from value and inputs. */\n protected displayLabel = computed(() => {\n if (!this.showValue()) return '';\n if (this.value() === 0) return this.emptyLabel();\n return this.valueLabel() ?? `${Math.round(this.value())}%`;\n });\n\n /**\n * ARIA value text for assistive technologies.\n * When a custom valueLabel is provided, it is exposed as aria-valuetext\n * so screen readers announce a meaningful description instead of just the number.\n * Returns null (attribute not rendered) when the default percentage is sufficient.\n */\n protected ariaValueText = computed(() => {\n const label = this.valueLabel();\n if (label) return label;\n if (this.value() === 0) return this.emptyLabel();\n return null;\n });\n\n /** Computed host CSS classes. */\n hostClasses = computed(() => {\n const sizeClass = this.sizeDirective.getCssClass('eds-progress-circle');\n const colorClass = this.resolvedColorClass();\n return [\n 'eds-progress-circle',\n sizeClass,\n colorClass || 'eds-progress-circle--info',\n ]\n .join(' ')\n .trim();\n });\n}\n","<svg viewBox=\"0 0 100 100\" class=\"eds-progress-circle__svg\">\n <!-- Background track circle -->\n <circle\n class=\"eds-progress-circle__track\"\n [attr.cx]=\"50\"\n [attr.cy]=\"50\"\n [attr.r]=\"radius()\"\n [attr.stroke-width]=\"strokeWidth()\"\n fill=\"none\"\n />\n <!-- Progress arc -->\n @if (value() > 0) {\n <circle\n class=\"eds-progress-circle__progress\"\n [attr.cx]=\"50\"\n [attr.cy]=\"50\"\n [attr.r]=\"radius()\"\n [attr.stroke-width]=\"strokeWidth()\"\n [attr.stroke-dasharray]=\"circumference()\"\n [attr.stroke-dashoffset]=\"dashOffset()\"\n fill=\"none\"\n stroke-linecap=\"round\"\n />\n }\n</svg>\n@if (showValue()) {\n <span class=\"eds-progress-circle__label\">{{ displayLabel() }}</span>\n}\n","import { EdsProgressCircle } from './eds-progress-circle';\n\nexport { EdsProgressCircle };\nexport type { EdsProgressCircleColorType } from './eds-progress-circle';\n\n/** Convenience array for importing the eds-progress-circle component. */\nexport const EDS_PROGRESS_CIRCLE = [\n EdsProgressCircle,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -204,7 +204,7 @@ class EdsSelect {
204
204
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EdsSelect, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
205
205
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.2", type: EdsSelect, isStandalone: true, selector: "select[edsSelect]", inputs: { e2eAttr: { classPropertyName: "e2eAttr", publicName: "e2eAttr", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, isInvalid: { classPropertyName: "isInvalid", publicName: "isInvalid", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "change": "onHostChange($event)" }, properties: { "class": "hostClasses()", "attr.data-e2e": "e2eAttr()" } }, providers: [
206
206
  { provide: EDS_SELECT_COMPONENT, useExisting: EdsSelect },
207
- ], usesOnChanges: true, ngImport: i0, template: '<ng-content/>', isInline: true, styles: [".eui-21 :host.eds-select{font:var(--eds-f-paragraph-m);appearance:none;background-color:var(--eds-c-surface-elevation);border:var(--eds-bw-xs) solid var(--eds-c-border-neutral);border-radius:var(--eds-br-s);box-shadow:none;color:var(--eds-c-foreground-default);min-height:var(--eds-si-3xl);padding:var(--eds-sp-xs) var(--eds-sp-s);width:100%}.eui-21 :host.eds-select:focus-visible:not([readonly]){outline:2px solid var(--eds-c-border-primary)!important;outline-offset:-2px!important;transition:none}.eui-21 :host.eds-select:not([hidden]){display:block}.eui-21 :host.eds-select::placeholder{color:var(--eds-c-foreground-subtler);opacity:1}.eui-21 :host.eds-select[readonly]{background-color:transparent;border-color:transparent;box-shadow:none;padding-left:0;padding-right:0;pointer-events:none}.eui-21 :host.eds-select:disabled:not([readonly]),.eui-21 :host.eds-select--disabled:not([readonly]){background-color:var(--eds-c-suface-disabled);border-color:var(--eds-c-border-disabled);color:var(--eds-c-foreground-subtler);pointer-events:none}.eui-21 :host.eds-select--invalid{border-color:var(--eds-c-border-critical)}.eui-21 :host.eds-select--loading{padding-right:var(--eds-sp-7xl)}.eui-21 :host.eds-select--loading-icon{align-items:center;display:flex}.eui-21 :host.eds-select--loading-icon:after,.eui-21 :host.eds-select--loading-icon:before{content:\"\";height:var(--eds-sp-l);position:absolute;right:var(--eds-sp-s);width:var(--eds-sp-l)}.eui-21 :host.eds-select--loading-icon:before{border:var(--eds-sp-3xs) solid rgba(0,0,0,.35);border-radius:100%}.eui-21 :host.eds-select--loading-icon:after{animation:loading .6s linear;animation-iteration-count:infinite;border-color:var(--eui-c-white) transparent transparent;border-radius:100%;border-style:solid;border-width:var(--eds-sp-3xs);box-shadow:0 0 0 1px transparent}.eui-21 :host.eds-select--loading-icon--sm:after,.eui-21 :host.eds-select--loading-icon--sm:before{height:var(--eds-sp-m);width:var(--eds-sp-m)}@keyframes loading{to{transform:rotate(360deg)}}.eui-21 :host.eds-select{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--eds-c-foreground-default);overflow-y:auto}.eui-21 :host.eds-select[hidden],.eui-21 :host.eds-select--readonly{display:none}.eui-21 :host.eds-select[readonly][multiple=true] option:checked{background:none}.eui-21 :host.eds-select[readonly][multiple=true] :not(option:checked){display:none}.eui-21 :host.eds-select[multiple=true],.eui-21 :host.eds-select[size]:not([size=\"1\"]):not([size=\"0\"]){background-image:none;height:auto;overflow:auto;padding:var(--eds-sp-3xs) 0}.eui-21 :host.eds-select--placeholder{color:var(--eds-c-foreground-subtler)}.eui-21 :host.eds-select optgroup{font:var(--eds-f-label-m-semi-bold)}.eui-21 :host.eds-select optgroup,.eui-21 :host.eds-select option{appearance:none;color:var(--eds-c-foreground-default);display:block;padding:var(--eds-sp-3xs);white-space:pre}.eui-21 :host.eds-select optgroup:disabled,.eui-21 :host.eds-select option:disabled{color:var(--eds-c-foreground-subtler)}.eui-21 :host.eds-select optgroup.eds-select__placeholder,.eui-21 :host.eds-select option.eds-select__placeholder{color:var(--eds-c-foreground-subtler)!important}.eui-21 :host.eds-select:not([readonly]):not([multiple]),.eui-21 :host.eds-select[size=\"1\"],.eui-21 :host.eds-select[size=\"0\"]{appearance:none;background-color:var(--eds-c-surface-elevation);background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256' fill='%23404040'%3E%3Cpath d='M213.66,101.66l-80,80a8,8,0,0,1-11.32,0l-80-80A8,8,0,0,1,53.66,90.34L128,164.69l74.34-74.35a8,8,0,0,1,11.32,11.32Z'/%3E%3C/svg%3E\");background-position:calc(100% - var(--eds-sp-s)) center;background-repeat:no-repeat;background-size:var(--eds-sp-l);padding-right:var(--eds-sp-3xl)}.eds-select__readonly-display{font:var(--eds-f-paragraph-m);background-color:transparent;border:none;box-shadow:none;color:var(--eds-c-foreground-default);padding:var(--eds-sp-xs) 0;width:100%;pointer-events:none;outline:none}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
207
+ ], usesOnChanges: true, ngImport: i0, template: '<ng-content/>', isInline: true, styles: [".eui-21 :host.eds-select{font:var(--eds-f-paragraph-m);appearance:none;background-color:var(--eds-c-surface-elevation);border:var(--eds-bw-xs) solid var(--eds-c-border-neutral);border-radius:var(--eds-br-s);box-shadow:none;color:var(--eds-c-foreground-default);min-height:var(--eds-si-3xl);padding:var(--eds-sp-xs) var(--eds-sp-s);width:100%}.eui-21 :host.eds-select:focus-visible:not([readonly]){outline:2px solid var(--eds-c-border-primary)!important;outline-offset:-2px!important;transition:none}.eui-21 :host.eds-select:not([hidden]){display:block}.eui-21 :host.eds-select::placeholder{color:var(--eds-c-foreground-subtler);opacity:1}.eui-21 :host.eds-select[readonly]{background-color:transparent;border-color:transparent;box-shadow:none;padding-left:0;padding-right:0;pointer-events:none}.eui-21 :host.eds-select:disabled:not([readonly]),.eui-21 :host.eds-select--disabled:not([readonly]){background-color:var(--eds-c-suface-disabled);border-color:var(--eds-c-border-disabled);color:var(--eds-c-foreground-subtler);pointer-events:none}.eui-21 :host.eds-select--invalid{border-color:var(--eds-c-border-critical)}.eui-21 :host.eds-select--loading{padding-right:var(--eds-sp-7xl)}.eui-21 :host.eds-select--loading-icon{align-items:center;display:flex}.eui-21 :host.eds-select--loading-icon:after,.eui-21 :host.eds-select--loading-icon:before{content:\"\";height:var(--eds-sp-l);position:absolute;right:var(--eds-sp-s);width:var(--eds-sp-l)}.eui-21 :host.eds-select--loading-icon:before{border:var(--eds-sp-3xs) solid rgba(0,0,0,.35);border-radius:100%}.eui-21 :host.eds-select--loading-icon:after{animation:loading .6s linear;animation-iteration-count:infinite;border-color:var(--eui-c-white) transparent transparent;border-radius:100%;border-style:solid;border-width:var(--eds-sp-3xs);box-shadow:0 0 0 1px transparent}.eui-21 :host.eds-select--loading-icon--sm:after,.eui-21 :host.eds-select--loading-icon--sm:before{height:var(--eds-sp-m);width:var(--eds-sp-m)}@keyframes loading{to{transform:rotate(360deg)}}.eui-21 :host.eds-select{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--eds-c-foreground-default);overflow-y:auto}.eui-21 :host.eds-select[hidden],.eui-21 :host.eds-select--readonly{display:none}.eui-21 :host.eds-select[readonly][multiple=true] option:checked{background:none}.eui-21 :host.eds-select[readonly][multiple=true] :not(option:checked){display:none}.eui-21 :host.eds-select[multiple=true],.eui-21 :host.eds-select[size]:not([size=\"1\"]):not([size=\"0\"]){background-image:none;height:auto;overflow:auto;padding:var(--eds-sp-3xs) 0}.eui-21 :host.eds-select--placeholder{color:var(--eds-c-foreground-subtler)}.eui-21 :host.eds-select optgroup{font:var(--eds-f-label-m-semibold)}.eui-21 :host.eds-select optgroup,.eui-21 :host.eds-select option{appearance:none;color:var(--eds-c-foreground-default);display:block;padding:var(--eds-sp-3xs);white-space:pre}.eui-21 :host.eds-select optgroup:disabled,.eui-21 :host.eds-select option:disabled{color:var(--eds-c-foreground-subtler)}.eui-21 :host.eds-select optgroup.eds-select__placeholder,.eui-21 :host.eds-select option.eds-select__placeholder{color:var(--eds-c-foreground-subtler)!important}.eui-21 :host.eds-select:not([readonly]):not([multiple]),.eui-21 :host.eds-select[size=\"1\"],.eui-21 :host.eds-select[size=\"0\"]{appearance:none;background-color:var(--eds-c-surface-elevation);background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256' fill='%23404040'%3E%3Cpath d='M213.66,101.66l-80,80a8,8,0,0,1-11.32,0l-80-80A8,8,0,0,1,53.66,90.34L128,164.69l74.34-74.35a8,8,0,0,1,11.32,11.32Z'/%3E%3C/svg%3E\");background-position:calc(100% - var(--eds-sp-s)) center;background-repeat:no-repeat;background-size:var(--eds-sp-l);padding-right:var(--eds-sp-3xl)}.eds-select__readonly-display{font:var(--eds-f-paragraph-m);background-color:transparent;border:none;box-shadow:none;color:var(--eds-c-foreground-default);padding:var(--eds-sp-xs) 0;width:100%;pointer-events:none;outline:none}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
208
208
  }
209
209
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EdsSelect, decorators: [{
210
210
  type: Component,
@@ -214,7 +214,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImpor
214
214
  '[class]': 'hostClasses()',
215
215
  '[attr.data-e2e]': 'e2eAttr()',
216
216
  '(change)': 'onHostChange($event)',
217
- }, styles: [".eui-21 :host.eds-select{font:var(--eds-f-paragraph-m);appearance:none;background-color:var(--eds-c-surface-elevation);border:var(--eds-bw-xs) solid var(--eds-c-border-neutral);border-radius:var(--eds-br-s);box-shadow:none;color:var(--eds-c-foreground-default);min-height:var(--eds-si-3xl);padding:var(--eds-sp-xs) var(--eds-sp-s);width:100%}.eui-21 :host.eds-select:focus-visible:not([readonly]){outline:2px solid var(--eds-c-border-primary)!important;outline-offset:-2px!important;transition:none}.eui-21 :host.eds-select:not([hidden]){display:block}.eui-21 :host.eds-select::placeholder{color:var(--eds-c-foreground-subtler);opacity:1}.eui-21 :host.eds-select[readonly]{background-color:transparent;border-color:transparent;box-shadow:none;padding-left:0;padding-right:0;pointer-events:none}.eui-21 :host.eds-select:disabled:not([readonly]),.eui-21 :host.eds-select--disabled:not([readonly]){background-color:var(--eds-c-suface-disabled);border-color:var(--eds-c-border-disabled);color:var(--eds-c-foreground-subtler);pointer-events:none}.eui-21 :host.eds-select--invalid{border-color:var(--eds-c-border-critical)}.eui-21 :host.eds-select--loading{padding-right:var(--eds-sp-7xl)}.eui-21 :host.eds-select--loading-icon{align-items:center;display:flex}.eui-21 :host.eds-select--loading-icon:after,.eui-21 :host.eds-select--loading-icon:before{content:\"\";height:var(--eds-sp-l);position:absolute;right:var(--eds-sp-s);width:var(--eds-sp-l)}.eui-21 :host.eds-select--loading-icon:before{border:var(--eds-sp-3xs) solid rgba(0,0,0,.35);border-radius:100%}.eui-21 :host.eds-select--loading-icon:after{animation:loading .6s linear;animation-iteration-count:infinite;border-color:var(--eui-c-white) transparent transparent;border-radius:100%;border-style:solid;border-width:var(--eds-sp-3xs);box-shadow:0 0 0 1px transparent}.eui-21 :host.eds-select--loading-icon--sm:after,.eui-21 :host.eds-select--loading-icon--sm:before{height:var(--eds-sp-m);width:var(--eds-sp-m)}@keyframes loading{to{transform:rotate(360deg)}}.eui-21 :host.eds-select{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--eds-c-foreground-default);overflow-y:auto}.eui-21 :host.eds-select[hidden],.eui-21 :host.eds-select--readonly{display:none}.eui-21 :host.eds-select[readonly][multiple=true] option:checked{background:none}.eui-21 :host.eds-select[readonly][multiple=true] :not(option:checked){display:none}.eui-21 :host.eds-select[multiple=true],.eui-21 :host.eds-select[size]:not([size=\"1\"]):not([size=\"0\"]){background-image:none;height:auto;overflow:auto;padding:var(--eds-sp-3xs) 0}.eui-21 :host.eds-select--placeholder{color:var(--eds-c-foreground-subtler)}.eui-21 :host.eds-select optgroup{font:var(--eds-f-label-m-semi-bold)}.eui-21 :host.eds-select optgroup,.eui-21 :host.eds-select option{appearance:none;color:var(--eds-c-foreground-default);display:block;padding:var(--eds-sp-3xs);white-space:pre}.eui-21 :host.eds-select optgroup:disabled,.eui-21 :host.eds-select option:disabled{color:var(--eds-c-foreground-subtler)}.eui-21 :host.eds-select optgroup.eds-select__placeholder,.eui-21 :host.eds-select option.eds-select__placeholder{color:var(--eds-c-foreground-subtler)!important}.eui-21 :host.eds-select:not([readonly]):not([multiple]),.eui-21 :host.eds-select[size=\"1\"],.eui-21 :host.eds-select[size=\"0\"]{appearance:none;background-color:var(--eds-c-surface-elevation);background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256' fill='%23404040'%3E%3Cpath d='M213.66,101.66l-80,80a8,8,0,0,1-11.32,0l-80-80A8,8,0,0,1,53.66,90.34L128,164.69l74.34-74.35a8,8,0,0,1,11.32,11.32Z'/%3E%3C/svg%3E\");background-position:calc(100% - var(--eds-sp-s)) center;background-repeat:no-repeat;background-size:var(--eds-sp-l);padding-right:var(--eds-sp-3xl)}.eds-select__readonly-display{font:var(--eds-f-paragraph-m);background-color:transparent;border:none;box-shadow:none;color:var(--eds-c-foreground-default);padding:var(--eds-sp-xs) 0;width:100%;pointer-events:none;outline:none}\n"] }]
217
+ }, styles: [".eui-21 :host.eds-select{font:var(--eds-f-paragraph-m);appearance:none;background-color:var(--eds-c-surface-elevation);border:var(--eds-bw-xs) solid var(--eds-c-border-neutral);border-radius:var(--eds-br-s);box-shadow:none;color:var(--eds-c-foreground-default);min-height:var(--eds-si-3xl);padding:var(--eds-sp-xs) var(--eds-sp-s);width:100%}.eui-21 :host.eds-select:focus-visible:not([readonly]){outline:2px solid var(--eds-c-border-primary)!important;outline-offset:-2px!important;transition:none}.eui-21 :host.eds-select:not([hidden]){display:block}.eui-21 :host.eds-select::placeholder{color:var(--eds-c-foreground-subtler);opacity:1}.eui-21 :host.eds-select[readonly]{background-color:transparent;border-color:transparent;box-shadow:none;padding-left:0;padding-right:0;pointer-events:none}.eui-21 :host.eds-select:disabled:not([readonly]),.eui-21 :host.eds-select--disabled:not([readonly]){background-color:var(--eds-c-suface-disabled);border-color:var(--eds-c-border-disabled);color:var(--eds-c-foreground-subtler);pointer-events:none}.eui-21 :host.eds-select--invalid{border-color:var(--eds-c-border-critical)}.eui-21 :host.eds-select--loading{padding-right:var(--eds-sp-7xl)}.eui-21 :host.eds-select--loading-icon{align-items:center;display:flex}.eui-21 :host.eds-select--loading-icon:after,.eui-21 :host.eds-select--loading-icon:before{content:\"\";height:var(--eds-sp-l);position:absolute;right:var(--eds-sp-s);width:var(--eds-sp-l)}.eui-21 :host.eds-select--loading-icon:before{border:var(--eds-sp-3xs) solid rgba(0,0,0,.35);border-radius:100%}.eui-21 :host.eds-select--loading-icon:after{animation:loading .6s linear;animation-iteration-count:infinite;border-color:var(--eui-c-white) transparent transparent;border-radius:100%;border-style:solid;border-width:var(--eds-sp-3xs);box-shadow:0 0 0 1px transparent}.eui-21 :host.eds-select--loading-icon--sm:after,.eui-21 :host.eds-select--loading-icon--sm:before{height:var(--eds-sp-m);width:var(--eds-sp-m)}@keyframes loading{to{transform:rotate(360deg)}}.eui-21 :host.eds-select{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--eds-c-foreground-default);overflow-y:auto}.eui-21 :host.eds-select[hidden],.eui-21 :host.eds-select--readonly{display:none}.eui-21 :host.eds-select[readonly][multiple=true] option:checked{background:none}.eui-21 :host.eds-select[readonly][multiple=true] :not(option:checked){display:none}.eui-21 :host.eds-select[multiple=true],.eui-21 :host.eds-select[size]:not([size=\"1\"]):not([size=\"0\"]){background-image:none;height:auto;overflow:auto;padding:var(--eds-sp-3xs) 0}.eui-21 :host.eds-select--placeholder{color:var(--eds-c-foreground-subtler)}.eui-21 :host.eds-select optgroup{font:var(--eds-f-label-m-semibold)}.eui-21 :host.eds-select optgroup,.eui-21 :host.eds-select option{appearance:none;color:var(--eds-c-foreground-default);display:block;padding:var(--eds-sp-3xs);white-space:pre}.eui-21 :host.eds-select optgroup:disabled,.eui-21 :host.eds-select option:disabled{color:var(--eds-c-foreground-subtler)}.eui-21 :host.eds-select optgroup.eds-select__placeholder,.eui-21 :host.eds-select option.eds-select__placeholder{color:var(--eds-c-foreground-subtler)!important}.eui-21 :host.eds-select:not([readonly]):not([multiple]),.eui-21 :host.eds-select[size=\"1\"],.eui-21 :host.eds-select[size=\"0\"]{appearance:none;background-color:var(--eds-c-surface-elevation);background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256' fill='%23404040'%3E%3Cpath d='M213.66,101.66l-80,80a8,8,0,0,1-11.32,0l-80-80A8,8,0,0,1,53.66,90.34L128,164.69l74.34-74.35a8,8,0,0,1,11.32,11.32Z'/%3E%3C/svg%3E\");background-position:calc(100% - var(--eds-sp-s)) center;background-repeat:no-repeat;background-size:var(--eds-sp-l);padding-right:var(--eds-sp-3xl)}.eds-select__readonly-display{font:var(--eds-f-paragraph-m);background-color:transparent;border:none;box-shadow:none;color:var(--eds-c-foreground-default);padding:var(--eds-sp-xs) 0;width:100%;pointer-events:none;outline:none}\n"] }]
218
218
  }], propDecorators: { e2eAttr: [{ type: i0.Input, args: [{ isSignal: true, alias: "e2eAttr", required: false }] }], placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: false }] }], readonly: [{ type: i0.Input, args: [{ isSignal: true, alias: "readonly", required: false }] }], isInvalid: [{ type: i0.Input, args: [{ isSignal: true, alias: "isInvalid", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }] } });
219
219
 
220
220
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
@@ -1 +1 @@
1
- {"version":3,"file":"eui-eds-eds-select.mjs","sources":["../../eds-select/eds-select-token.ts","../../eds-select/eds-select.ts","../../eds-select/utils.ts","../../eds-select/eds-select-control.directive.ts","../../eds-select/eds-select-option.directive.ts","../../eds-select/eds-select-multiple.directive.ts","../../eds-select/eds-select-multiple-option.directive.ts","../../eds-select/index.ts","../../eds-select/eui-eds-eds-select.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\n/**\n * Injection token for the EdsSelect component.\n * Used to break circular dependency between EdsSelect and its CVA directives.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const EDS_SELECT_COMPONENT = new InjectionToken<any>('EdsSelectComponent');\n","import {\n Component,\n ChangeDetectionStrategy,\n ElementRef,\n inject,\n input,\n signal,\n computed,\n booleanAttribute,\n DoCheck,\n Renderer2,\n OnChanges,\n OnDestroy,\n SimpleChanges,\n effect,\n} from '@angular/core';\nimport { NgControl } from '@angular/forms';\nimport { EDS_SELECT_COMPONENT } from './eds-select-token';\n\n/**\n * @description\n * EDS Select component — a styled native `<select>` element.\n * Integrates with Angular forms and supports placeholder, readonly, and validation states.\n *\n * @usageNotes\n * ### Basic usage\n * ```html\n * <select edsSelect [(ngModel)]=\"selectedValue\">\n * <option value=\"1\">Option 1</option>\n * <option value=\"2\">Option 2</option>\n * </select>\n * ```\n *\n * ### With placeholder\n * ```html\n * <select edsSelect placeholder=\"Select an option\" [formControl]=\"control\">\n * <option *ngFor=\"let item of items\" [value]=\"item.id\">{{item.name}}</option>\n * </select>\n * ```\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'select[edsSelect]',\n template: '<ng-content/>',\n styleUrl: './eds-select.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n { provide: EDS_SELECT_COMPONENT, useExisting: EdsSelect },\n ],\n host: {\n '[class]': 'hostClasses()',\n '[attr.data-e2e]': 'e2eAttr()',\n '(change)': 'onHostChange($event)',\n },\n})\nexport class EdsSelect implements OnChanges, OnDestroy, DoCheck {\n /**\n * Data attribute value for end-to-end testing identification.\n * @default 'eds-select'\n */\n e2eAttr = input('eds-select');\n\n /**\n * Text displayed as the first, unselectable option when no value is chosen.\n * The placeholder is only visible when the bound control value is null/undefined.\n */\n placeholder = input<string>(undefined);\n\n /**\n * Controls whether the select is in readonly mode.\n * When readonly, the select is hidden and a plain text input displays the selected value.\n * @default false\n */\n readonly = input(false, { transform: booleanAttribute });\n\n /**\n * Controls whether the select shows an invalid/error state.\n * @default false\n */\n isInvalid = input(false, { transform: booleanAttribute });\n\n /**\n * Aria-label for accessibility.\n * @default 'Select an option'\n */\n ariaLabel = input('Select an option');\n\n /**\n * Computed host CSS classes based on current state.\n */\n hostClasses = computed(() => {\n return [\n 'eds-select',\n this.readonly() ? 'eds-select--readonly' : '',\n this._isPlaceholderSelected ? 'eds-select--placeholder' : '',\n this._isInvalid() ? 'eds-select--invalid' : '',\n ]\n .join(' ')\n .trim();\n });\n\n /** Whether the placeholder option is currently selected. */\n _isPlaceholderSelected = false;\n\n private _elementRef = inject<ElementRef<HTMLSelectElement>>(ElementRef);\n private _renderer = inject(Renderer2);\n private _ngControl = inject(NgControl, { optional: true, self: true });\n private _isInvalid = signal(false);\n private _placeholderOption: HTMLOptionElement;\n private _readonlyInput: HTMLInputElement;\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n private _readonlyEffect = effect(() => {\n const isReadonly = this.readonly();\n if (isReadonly) {\n this._showReadonlyInput();\n } else {\n this._hideReadonlyInput();\n }\n });\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['placeholder']) {\n this._updatePlaceholder();\n }\n }\n\n ngOnDestroy(): void {\n this._readonlyInput?.remove();\n }\n\n ngDoCheck(): void {\n if (this._ngControl) {\n this._isInvalid.set(this._ngControl.invalid && this._ngControl.touched);\n } else {\n this._isInvalid.set(this.isInvalid());\n }\n\n if (this.placeholder() !== undefined) {\n const el = this._elementRef.nativeElement;\n this._isPlaceholderSelected = el.selectedIndex === 0 || el.value === '' || el.value === this.placeholder();\n } else {\n this._isPlaceholderSelected = false;\n }\n }\n\n /**\n * Sync readonly value when selection changes.\n */\n syncReadOnlyValue(): void {\n this._syncReadonlyValue();\n }\n\n protected onHostChange(_event: Event): void {\n this._syncReadonlyValue();\n if (!this._ngControl) {\n const value = this._elementRef.nativeElement.value;\n this._setPlaceholderClass(this.placeholder() === value ? undefined : value);\n }\n }\n\n private _showReadonlyInput(): void {\n const el = this._elementRef.nativeElement;\n el.style.display = 'none';\n\n if (!this._readonlyInput) {\n this._readonlyInput = this._renderer.createElement('input') as HTMLInputElement;\n this._renderer.setAttribute(this._readonlyInput, 'type', 'text');\n this._renderer.setAttribute(this._readonlyInput, 'readonly', '');\n this._renderer.setAttribute(this._readonlyInput, 'tabindex', '-1');\n this._renderer.addClass(this._readonlyInput, 'eds-select__readonly-display');\n this._renderer.insertBefore(el.parentElement, this._readonlyInput, el);\n }\n this._syncReadonlyValue();\n }\n\n private _hideReadonlyInput(): void {\n this._elementRef.nativeElement.style.display = '';\n if (this._readonlyInput) {\n this._readonlyInput.remove();\n this._readonlyInput = undefined;\n }\n }\n\n private _updatePlaceholder(): void {\n const placeholderValue = this.placeholder();\n if (this._ngControl) {\n // CVA handles placeholder\n return;\n }\n\n if (placeholderValue === undefined) {\n this._isPlaceholderSelected = false;\n if (this._placeholderOption) {\n this._renderer.removeChild(this._elementRef.nativeElement, this._placeholderOption);\n this._placeholderOption = undefined;\n }\n } else if (this._placeholderOption) {\n this._renderer.setProperty(this._placeholderOption, 'innerText', placeholderValue);\n } else {\n this._placeholderOption = this._renderer.createElement('option');\n this._renderer.addClass(this._placeholderOption, 'eds-select__placeholder');\n this._renderer.setProperty(this._placeholderOption, 'innerText', placeholderValue);\n this._renderer.setAttribute(this._placeholderOption, 'selected', '');\n this._renderer.setProperty(this._placeholderOption, 'selected', true);\n this._elementRef.nativeElement.insertBefore(this._placeholderOption, this._elementRef.nativeElement.firstChild);\n this._elementRef.nativeElement.selectedIndex = 0;\n this._isPlaceholderSelected = true;\n }\n }\n\n private _syncReadonlyValue(): void {\n if (this._readonlyInput) {\n // eslint-disable-next-line prefer-spread\n const selectedOptions = Array.apply(null, this._elementRef.nativeElement.selectedOptions)\n .map((i: HTMLOptionElement) => i.text)\n .filter((i: string) => i !== this.placeholder())\n .join(', ');\n this._readonlyInput.value = selectedOptions;\n this._renderer.setAttribute(this._readonlyInput, 'aria-label', selectedOptions || 'No selection');\n }\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _setPlaceholderClass(value: any): void {\n const placeholderOption = this._elementRef.nativeElement.options[0];\n if (!!this.placeholder() && (value === undefined || value === null || value === '')) {\n this._renderer.setAttribute(placeholderOption, 'selected', '');\n this._isPlaceholderSelected = true;\n } else {\n this._isPlaceholderSelected = false;\n this._renderer.removeAttribute(placeholderOption, 'selected');\n }\n }\n}\n","// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function _buildValueString(id: string, value: any): string {\n if (id == null) {\n return `${value}`;\n }\n if (typeof value === 'string') {\n value = `'${value}'`;\n }\n if (value && typeof value === 'object') {\n value = 'Object';\n }\n return `${id}: ${value}`.slice(0, 50);\n}\n\nexport function _extractId(valueString: string): string {\n return valueString.split(':')[0];\n}\n","import { Directive, DoCheck, ElementRef, forwardRef, Injector, Input, OnChanges, Renderer2, SimpleChanges, inject } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR, SelectControlValueAccessor } from '@angular/forms';\nimport { _buildValueString } from './utils';\nimport { EDS_SELECT_COMPONENT } from './eds-select-token';\n\n/**\n * @description\n * Control value accessor for single-select dropdowns with EDS styling.\n * Extends Angular's SelectControlValueAccessor to handle placeholder behavior and readonly state synchronization.\n *\n * @usageNotes\n * Automatically applied when using edsSelect with form directives:\n * ```html\n * <select edsSelect [formControl]=\"myControl\">\n * <option edsOption [ngValue]=\"item\" *ngFor=\"let item of items\">{{item.label}}</option>\n * </select>\n * ```\n */\n@Directive({\n selector:\n // eslint-disable-next-line @angular-eslint/directive-selector\n 'select:not([multiple])[formControlName][edsSelect],select:not([multiple])[formControl][edsSelect],select:not([multiple])[ngModel][edsSelect]',\n host: { '(blur)': 'onTouched()' },\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => EdsSelectControlValueAccessor),\n multi: true,\n },\n ],\n})\n// eslint-disable-next-line @angular-eslint/directive-class-suffix\nexport class EdsSelectControlValueAccessor extends SelectControlValueAccessor implements ControlValueAccessor, OnChanges, DoCheck {\n @Input() placeholder: string;\n\n private elementRef: ElementRef;\n private renderer: Renderer2;\n private placeholderOption: HTMLOptionElement;\n private injector = inject(Injector);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _selectComponentRef: any = undefined;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private get selectComponent(): any {\n if (this._selectComponentRef === undefined) {\n this._selectComponentRef = this.injector.get(EDS_SELECT_COMPONENT, null);\n }\n return this._selectComponentRef;\n }\n\n constructor() {\n const _renderer = inject(Renderer2);\n const _elementRef = inject(ElementRef);\n\n super(_renderer, _elementRef);\n this.elementRef = _elementRef;\n this.renderer = _renderer;\n this.onChange = (valueString: string): void => {\n this.value = this['_getOptionValue'](valueString);\n this.setPlaceholderClass(this.value);\n };\n }\n\n ngDoCheck(): void {\n if (this.placeholder && this.elementRef.nativeElement.selectedIndex === 0) {\n this.renderer.addClass(this.placeholderOption, 'eds-select__placeholder');\n }\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n override writeValue(value: any): void {\n super.writeValue(value);\n this.setPlaceholderClass(value);\n this.selectComponent?.syncReadOnlyValue();\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n override registerOnChange(fn: (value: any) => any): void {\n this.onChange = (valueString: string): void => {\n this.value = this['_getOptionValue'](valueString);\n this.setPlaceholderClass(this.value);\n fn(this.value);\n };\n }\n\n setDisabledState(isDisabled: boolean): void {\n if (isDisabled) {\n this.renderer.setAttribute(this.elementRef.nativeElement, 'disabled', '');\n } else {\n this.renderer.removeAttribute(this.elementRef.nativeElement, 'disabled');\n }\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['placeholder']) {\n if (changes['placeholder'].currentValue === undefined) {\n if (this.selectComponent) {\n this.selectComponent._isPlaceholderSelected = false;\n }\n if (this.placeholderOption) {\n this.renderer.removeChild(this.elementRef.nativeElement, this.placeholderOption);\n this.placeholderOption = undefined;\n }\n } else if (this.placeholderOption) {\n this.renderer.setProperty(this.placeholderOption, 'innerText', changes['placeholder'].currentValue);\n } else {\n this.placeholderOption = this.renderer.createElement('option');\n const id = this['_registerOption']();\n this['_optionMap'].set(id, null);\n const selectControlValueAccessor = this.injector.get(SelectControlValueAccessor, undefined);\n selectControlValueAccessor['_idCounter'] = this['_idCounter'];\n selectControlValueAccessor['_optionMap'] = this['_optionMap'];\n this.renderer.setValue(this.placeholderOption, _buildValueString(id, null));\n this.renderer.setProperty(this.placeholderOption, 'value', _buildValueString(id, null));\n this.renderer.addClass(this.placeholderOption, 'eds-select__placeholder');\n this.renderer.setProperty(this.placeholderOption, 'innerText', changes['placeholder'].currentValue);\n if (!this.elementRef.nativeElement.value) {\n this.renderer.setAttribute(this.placeholderOption, 'selected', '');\n }\n this.elementRef.nativeElement.insertBefore(this.placeholderOption, this.elementRef.nativeElement.firstChild);\n if (this.elementRef.nativeElement.value === changes['placeholder'].currentValue && this.selectComponent) {\n this.selectComponent._isPlaceholderSelected = true;\n }\n if (!this.value) {\n this.writeValue(undefined);\n }\n }\n }\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private setPlaceholderClass(value: any): void {\n if (!!this.placeholder && (value === undefined || value === null || value === '')) {\n try {\n this.elementRef.nativeElement.options[0].selected = true;\n } catch (e) {\n /* empty */\n }\n if (this.selectComponent) {\n this.selectComponent._isPlaceholderSelected = true;\n }\n } else {\n if (this.selectComponent) {\n this.selectComponent._isPlaceholderSelected = false;\n }\n }\n }\n}\n","import {\n AfterViewInit,\n booleanAttribute,\n Directive,\n ElementRef,\n forwardRef,\n Input,\n Injector,\n OnChanges,\n OnDestroy,\n Renderer2,\n SimpleChanges,\n inject,\n} from '@angular/core';\nimport { NgSelectOption, SelectControlValueAccessor } from '@angular/forms';\nimport { EdsSelectControlValueAccessor } from './eds-select-control.directive';\nimport { EDS_SELECT_COMPONENT } from './eds-select-token';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _buildValueString(id: string, value: any): string {\n if (id == null) {\n return `${value}`;\n }\n if (value && typeof value === 'object') {\n value = 'Object';\n }\n return `${id}: ${value}`.slice(0, 50);\n}\n\n/**\n * @description\n * Marks `<option>` as dynamic within an `edsSelect`, so Angular is notified when options change.\n * Supports object values via ngValue and synchronizes with readonly mode.\n *\n * @usageNotes\n * ```html\n * <option edsOption [ngValue]=\"user\" [label]=\"user.name\">{{user.name}}</option>\n * ```\n */\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'option[edsOption]',\n})\nexport class EdsSelectOptionDirective extends NgSelectOption implements OnDestroy, OnChanges, AfterViewInit {\n @Input({ transform: booleanAttribute }) selected: boolean;\n @Input() label: string;\n\n private readonly _selectCva: EdsSelectControlValueAccessor;\n private readonly _selectNativeCva: SelectControlValueAccessor;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private readonly _selectComponent: any;\n private _elementRef: ElementRef<HTMLOptionElement>;\n private _rendererRef: Renderer2;\n\n constructor() {\n const _element = inject(ElementRef);\n const _renderer = inject(Renderer2);\n const _select = inject(EdsSelectControlValueAccessor, { optional: true, host: true })!;\n const _selectNative = inject(SelectControlValueAccessor, { optional: true, host: true })!;\n const _injector = inject(Injector);\n const _selectComponent = _injector.get(EDS_SELECT_COMPONENT, null);\n\n super(_element, _renderer, _select);\n this._selectCva = _select;\n this._selectNativeCva = _selectNative;\n this._selectComponent = _selectComponent;\n this._elementRef = _element;\n this._rendererRef = _renderer;\n }\n\n ngAfterViewInit(): void {\n this._selectComponent?.syncReadOnlyValue();\n }\n\n /**\n * Tracks the value bound to the option element.\n * Unlike value binding, ngValue supports binding to objects.\n */\n @Input()\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n override set ngValue(value: any) {\n if (this._selectCva == null) return;\n this._selectNativeCva['_idCounter'] = this._selectCva['_idCounter'];\n this._selectCva['_optionMap'].set(this.id, value);\n this._selectNativeCva['_optionMap'] = this._selectCva['_optionMap'];\n super['_setElementValue'](_buildValueString(this.id, value));\n this._selectCva.writeValue(this._selectCva.value);\n this._selectNativeCva.writeValue(this._selectCva.value);\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['selected']) {\n switch (this.selected) {\n case true:\n this._rendererRef.setAttribute(this._elementRef.nativeElement, 'selected', '');\n break;\n default:\n this._rendererRef.removeAttribute(this._elementRef.nativeElement, 'selected');\n }\n this._selectComponent?.syncReadOnlyValue();\n }\n\n if (changes['label']) {\n this._rendererRef.setProperty(this._elementRef.nativeElement, 'innerText', changes['label'].currentValue);\n this._selectComponent?.syncReadOnlyValue();\n }\n }\n}\n","import { Directive, DoCheck, ElementRef, forwardRef, Injector, Input, Provider, Renderer2, inject } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR, NgControl, SelectMultipleControlValueAccessor } from '@angular/forms';\nimport { EdsSelectMultipleOption } from './eds-select-multiple-option.directive';\nimport { _extractId } from './utils';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { EDS_SELECT_COMPONENT } from './eds-select-token';\n\nconst SELECT_MULTIPLE_VALUE_ACCESSOR: Provider = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => EdsSelectMultipleControlValueAccessor),\n multi: true,\n};\n\n/**\n * @description\n * Control value accessor for multi-select dropdowns with EDS styling.\n * Extends Angular's SelectMultipleControlValueAccessor for EDS integration.\n *\n * @usageNotes\n * ```html\n * <select edsSelect multiple [formControl]=\"countriesControl\">\n * <option edsOption *ngFor=\"let country of countries\" [ngValue]=\"country\">\n * {{ country.name }}\n * </option>\n * </select>\n * ```\n */\n@Directive({\n selector:\n // eslint-disable-next-line @angular-eslint/directive-selector\n 'select[multiple][formControlName][edsSelect],select[multiple][formControl][edsSelect],select[multiple][ngModel][edsSelect]',\n host: { '(change)': 'onChange($event.target)', '(blur)': 'onTouched()' },\n providers: [SELECT_MULTIPLE_VALUE_ACCESSOR],\n})\n// eslint-disable-next-line @angular-eslint/directive-class-suffix\nexport class EdsSelectMultipleControlValueAccessor extends SelectMultipleControlValueAccessor implements ControlValueAccessor, DoCheck {\n @Input()\n public get isInvalid(): boolean {\n return this._isInvalid || null;\n }\n public set isInvalid(state: BooleanInput) {\n this._isInvalid = coerceBooleanProperty(state);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n value: any;\n\n /** @internal */\n _optionMap: Map<string, EdsSelectMultipleOption> = new Map<string, EdsSelectMultipleOption>();\n\n /** @internal */\n _idCounter = 0;\n\n protected _isInvalid: boolean;\n private elementRef: ElementRef;\n private renderer: Renderer2;\n private control: NgControl;\n private injector = inject(Injector);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _selectComponentRef: any = undefined;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private get selectComponent(): any {\n if (this._selectComponentRef === undefined) {\n this._selectComponentRef = this.injector.get(EDS_SELECT_COMPONENT, null);\n }\n return this._selectComponentRef;\n }\n\n constructor() {\n const _renderer = inject(Renderer2);\n const _elementRef = inject(ElementRef);\n\n super(_renderer, _elementRef);\n this.elementRef = _elementRef;\n this.renderer = _renderer;\n }\n\n ngDoCheck(): void {\n if (!this.control) {\n this.control = this.injector.get(NgControl, undefined, { optional: true });\n }\n this._isInvalid = this.control ? this.control.invalid && this.control.touched : this._isInvalid;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n writeValue(value: any): void {\n this.value = value;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let optionSelectedStateSetter: (opt: EdsSelectMultipleOption, o: any) => void;\n if (Array.isArray(value)) {\n const ids = value.map((v) => this._getOptionId(v));\n optionSelectedStateSetter = (opt, o): void => {\n opt._setSelected(ids.indexOf(o.toString()) > -1);\n };\n } else {\n optionSelectedStateSetter = (opt): void => {\n opt._setSelected(false);\n };\n }\n this._optionMap.forEach(optionSelectedStateSetter);\n this.selectComponent?.syncReadOnlyValue();\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n override registerOnChange(fn: (value: any) => any): void {\n this.onChange = (element: HTMLSelectElement): void => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const selected: Array<any> = [];\n const selectedOptions = element.selectedOptions;\n if (selectedOptions !== undefined) {\n const options = selectedOptions;\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (let i = 0; i < options.length; i++) {\n const opt = options[i];\n const val = this._getOptionValue(opt.value);\n selected.push(val);\n }\n } else {\n const options = element.options;\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (let i = 0; i < options.length; i++) {\n const opt = options[i];\n if (opt.selected) {\n const val = this._getOptionValue(opt.value);\n selected.push(val);\n }\n }\n }\n this.value = selected;\n fn(selected);\n };\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n registerOnTouched(fn: any): void {\n this.onTouched = (): void => {\n const control = this.injector.get(NgControl, undefined, { optional: true });\n this.isInvalid = control.invalid;\n if (this.isInvalid) {\n this.renderer.addClass(this.elementRef.nativeElement, 'eds-select--invalid');\n }\n fn();\n };\n }\n\n /** @internal */\n _registerOption(value: EdsSelectMultipleOption): string {\n const id: string = (this._idCounter++).toString();\n this._optionMap.set(id, value);\n return id;\n }\n\n /** @internal */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n _getOptionId(value: any): string | null {\n for (const id of Array.from(this._optionMap.keys())) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n if (this['_compareWith'](this._optionMap.get(id)!._value, value)) {\n return id;\n }\n }\n return null;\n }\n\n /** @internal */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n _getOptionValue(valueString: string): any {\n const id: string = _extractId(valueString);\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n return this._optionMap.has(id) ? this._optionMap.get(id)!._value : valueString;\n }\n}\n","import { Directive, ElementRef, Input, OnDestroy, Renderer2, inject } from '@angular/core';\nimport { ɵNgSelectMultipleOption as NgSelectMultipleOption } from '@angular/forms';\nimport { EdsSelectMultipleControlValueAccessor } from './eds-select-multiple.directive';\nimport { _buildValueString } from './utils';\n\n/**\n * @description\n * Marks `<option>` as dynamic within a multi-select `edsSelect`.\n * Supports object values via ngValue.\n *\n * @usageNotes\n * ```html\n * <option edsOption [ngValue]=\"item\">{{ item.name }}</option>\n * ```\n */\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'option[edsOption]',\n})\n// eslint-disable-next-line @angular-eslint/directive-class-suffix\nexport class EdsSelectMultipleOption extends NgSelectMultipleOption implements OnDestroy {\n id!: string;\n /** @internal */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n _value: any;\n\n private element: ElementRef;\n private renderer: Renderer2;\n private select: EdsSelectMultipleControlValueAccessor;\n\n constructor() {\n const _element = inject(ElementRef);\n const _renderer = inject(Renderer2);\n const _select = inject(EdsSelectMultipleControlValueAccessor, { optional: true, host: true })!;\n\n super(_element, _renderer, _select);\n this.element = _element;\n this.renderer = _renderer;\n this.select = _select;\n }\n\n /**\n * Tracks the value bound to the option element.\n * Unlike value binding, ngValue supports binding to objects.\n */\n @Input()\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n set ngValue(value: any) {\n if (this.select == null) {\n return;\n }\n this._value = value;\n this._setElementValue(_buildValueString(this.id, value));\n this.select.writeValue(this.select.value);\n }\n\n /**\n * Tracks simple string values bound to the option element.\n */\n @Input()\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n set value(value: any) {\n if (this.select) {\n this._value = value;\n this._setElementValue(_buildValueString(this.id, value));\n this.select.writeValue(this.select.value);\n } else {\n this._setElementValue(value);\n }\n }\n\n /** @internal */\n _setElementValue(value: string): void {\n this.renderer.setProperty(this.element.nativeElement, 'value', value);\n }\n\n /** @internal */\n _setSelected(selected: boolean): void {\n this.renderer.setProperty(this.element.nativeElement, 'selected', selected);\n }\n\n /** @nodoc */\n ngOnDestroy(): void {\n if (this.select) {\n this.select._optionMap.delete(this.id);\n this.select.writeValue(this.select.value);\n }\n }\n}\n","import { EdsSelect } from './eds-select';\nimport { EdsSelectControlValueAccessor } from './eds-select-control.directive';\nimport { EdsSelectOptionDirective } from './eds-select-option.directive';\nimport { EdsSelectMultipleControlValueAccessor } from './eds-select-multiple.directive';\nimport { EdsSelectMultipleOption } from './eds-select-multiple-option.directive';\n\nexport {\n EdsSelect,\n EdsSelectControlValueAccessor,\n EdsSelectOptionDirective,\n EdsSelectMultipleControlValueAccessor,\n EdsSelectMultipleOption,\n};\n\nexport * from './utils';\n\n/** Convenience array for importing all eds-select components. */\nexport const EDS_SELECT = [\n EdsSelect,\n EdsSelectControlValueAccessor,\n EdsSelectOptionDirective,\n EdsSelectMultipleControlValueAccessor,\n EdsSelectMultipleOption,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["_buildValueString","NgSelectMultipleOption"],"mappings":";;;;;AAEA;;;AAGG;AACH;AACO,MAAM,oBAAoB,GAAG,IAAI,cAAc,CAAM,oBAAoB,CAAC;;ACYjF;;;;;;;;;;;;;;;;;;;;AAoBG;MAgBU,SAAS,CAAA;AAftB,IAAA,WAAA,GAAA;AAgBI;;;AAGG;QACH,IAAA,CAAA,OAAO,GAAG,KAAK,CAAC,YAAY;oFAAC;AAE7B;;;AAGG;QACH,IAAA,CAAA,WAAW,GAAG,KAAK,CAAS,SAAS;wFAAC;AAEtC;;;;AAIG;QACH,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAC,KAAK,gFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAExD;;;AAGG;QACH,IAAA,CAAA,SAAS,GAAG,KAAK,CAAC,KAAK,iFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAEzD;;;AAGG;QACH,IAAA,CAAA,SAAS,GAAG,KAAK,CAAC,kBAAkB;sFAAC;AAErC;;AAEG;AACH,QAAA,IAAA,CAAA,WAAW,GAAG,QAAQ,CAAC,MAAK;YACxB,OAAO;gBACH,YAAY;gBACZ,IAAI,CAAC,QAAQ,EAAE,GAAG,sBAAsB,GAAG,EAAE;gBAC7C,IAAI,CAAC,sBAAsB,GAAG,yBAAyB,GAAG,EAAE;gBAC5D,IAAI,CAAC,UAAU,EAAE,GAAG,qBAAqB,GAAG,EAAE;AACjD;iBACI,IAAI,CAAC,GAAG;AACR,iBAAA,IAAI,EAAE;QACf,CAAC;wFAAC;;QAGF,IAAA,CAAA,sBAAsB,GAAG,KAAK;AAEtB,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAgC,UAAU,CAAC;AAC/D,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;AAC7B,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,SAAS,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QAC9D,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,KAAK;uFAAC;;AAK1B,QAAA,IAAA,CAAA,eAAe,GAAG,MAAM,CAAC,MAAK;AAClC,YAAA,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,EAAE;YAClC,IAAI,UAAU,EAAE;gBACZ,IAAI,CAAC,kBAAkB,EAAE;YAC7B;iBAAO;gBACH,IAAI,CAAC,kBAAkB,EAAE;YAC7B;QACJ,CAAC;4FAAC;AAmHL,IAAA;AAjHG,IAAA,WAAW,CAAC,OAAsB,EAAA;AAC9B,QAAA,IAAI,OAAO,CAAC,aAAa,CAAC,EAAE;YACxB,IAAI,CAAC,kBAAkB,EAAE;QAC7B;IACJ;IAEA,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,cAAc,EAAE,MAAM,EAAE;IACjC;IAEA,SAAS,GAAA;AACL,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;AACjB,YAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;QAC3E;aAAO;YACH,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;QACzC;AAEA,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE,KAAK,SAAS,EAAE;AAClC,YAAA,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa;YACzC,IAAI,CAAC,sBAAsB,GAAG,EAAE,CAAC,aAAa,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,KAAK,EAAE,IAAI,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,WAAW,EAAE;QAC9G;aAAO;AACH,YAAA,IAAI,CAAC,sBAAsB,GAAG,KAAK;QACvC;IACJ;AAEA;;AAEG;IACH,iBAAiB,GAAA;QACb,IAAI,CAAC,kBAAkB,EAAE;IAC7B;AAEU,IAAA,YAAY,CAAC,MAAa,EAAA;QAChC,IAAI,CAAC,kBAAkB,EAAE;AACzB,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YAClB,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK;AAClD,YAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,KAAK,GAAG,SAAS,GAAG,KAAK,CAAC;QAC/E;IACJ;IAEQ,kBAAkB,GAAA;AACtB,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa;AACzC,QAAA,EAAE,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM;AAEzB,QAAA,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;YACtB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,OAAO,CAAqB;AAC/E,YAAA,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,cAAc,EAAE,MAAM,EAAE,MAAM,CAAC;AAChE,YAAA,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,cAAc,EAAE,UAAU,EAAE,EAAE,CAAC;AAChE,YAAA,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,cAAc,EAAE,UAAU,EAAE,IAAI,CAAC;YAClE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE,8BAA8B,CAAC;AAC5E,YAAA,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,CAAC,aAAa,EAAE,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC;QAC1E;QACA,IAAI,CAAC,kBAAkB,EAAE;IAC7B;IAEQ,kBAAkB,GAAA;QACtB,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE;AACjD,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE;AACrB,YAAA,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE;AAC5B,YAAA,IAAI,CAAC,cAAc,GAAG,SAAS;QACnC;IACJ;IAEQ,kBAAkB,GAAA;AACtB,QAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,WAAW,EAAE;AAC3C,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;;YAEjB;QACJ;AAEA,QAAA,IAAI,gBAAgB,KAAK,SAAS,EAAE;AAChC,YAAA,IAAI,CAAC,sBAAsB,GAAG,KAAK;AACnC,YAAA,IAAI,IAAI,CAAC,kBAAkB,EAAE;AACzB,gBAAA,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,IAAI,CAAC,kBAAkB,CAAC;AACnF,gBAAA,IAAI,CAAC,kBAAkB,GAAG,SAAS;YACvC;QACJ;AAAO,aAAA,IAAI,IAAI,CAAC,kBAAkB,EAAE;AAChC,YAAA,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,kBAAkB,EAAE,WAAW,EAAE,gBAAgB,CAAC;QACtF;aAAO;YACH,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,QAAQ,CAAC;YAChE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,kBAAkB,EAAE,yBAAyB,CAAC;AAC3E,YAAA,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,kBAAkB,EAAE,WAAW,EAAE,gBAAgB,CAAC;AAClF,YAAA,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,kBAAkB,EAAE,UAAU,EAAE,EAAE,CAAC;AACpE,YAAA,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,kBAAkB,EAAE,UAAU,EAAE,IAAI,CAAC;AACrE,YAAA,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,UAAU,CAAC;YAC/G,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,aAAa,GAAG,CAAC;AAChD,YAAA,IAAI,CAAC,sBAAsB,GAAG,IAAI;QACtC;IACJ;IAEQ,kBAAkB,GAAA;AACtB,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE;;AAErB,YAAA,MAAM,eAAe,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,eAAe;iBACnF,GAAG,CAAC,CAAC,CAAoB,KAAK,CAAC,CAAC,IAAI;AACpC,iBAAA,MAAM,CAAC,CAAC,CAAS,KAAK,CAAC,KAAK,IAAI,CAAC,WAAW,EAAE;iBAC9C,IAAI,CAAC,IAAI,CAAC;AACf,YAAA,IAAI,CAAC,cAAc,CAAC,KAAK,GAAG,eAAe;AAC3C,YAAA,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,cAAc,EAAE,YAAY,EAAE,eAAe,IAAI,cAAc,CAAC;QACrG;IACJ;;AAGQ,IAAA,oBAAoB,CAAC,KAAU,EAAA;AACnC,QAAA,MAAM,iBAAiB,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;QACnE,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC,EAAE;YACjF,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,iBAAiB,EAAE,UAAU,EAAE,EAAE,CAAC;AAC9D,YAAA,IAAI,CAAC,sBAAsB,GAAG,IAAI;QACtC;aAAO;AACH,YAAA,IAAI,CAAC,sBAAsB,GAAG,KAAK;YACnC,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,iBAAiB,EAAE,UAAU,CAAC;QACjE;IACJ;8GAlLS,SAAS,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAT,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,SAAS,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,eAAA,EAAA,eAAA,EAAA,WAAA,EAAA,EAAA,EAAA,SAAA,EATP;AACP,YAAA,EAAE,OAAO,EAAE,oBAAoB,EAAE,WAAW,EAAE,SAAS,EAAE;AAC5D,SAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EALS,eAAe,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,47HAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAYhB,SAAS,EAAA,UAAA,EAAA,CAAA;kBAfrB,SAAS;AAEI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,mBAAmB,YACnB,eAAe,EAAA,eAAA,EAER,uBAAuB,CAAC,MAAM,EAAA,SAAA,EACpC;AACP,wBAAA,EAAE,OAAO,EAAE,oBAAoB,EAAE,WAAW,WAAW,EAAE;qBAC5D,EAAA,IAAA,EACK;AACF,wBAAA,SAAS,EAAE,eAAe;AAC1B,wBAAA,iBAAiB,EAAE,WAAW;AAC9B,wBAAA,UAAU,EAAE,sBAAsB;AACrC,qBAAA,EAAA,MAAA,EAAA,CAAA,47HAAA,CAAA,EAAA;;;ACrDL;AACM,SAAUA,mBAAiB,CAAC,EAAU,EAAE,KAAU,EAAA;AACpD,IAAA,IAAI,EAAE,IAAI,IAAI,EAAE;QACZ,OAAO,CAAA,EAAG,KAAK,CAAA,CAAE;IACrB;AACA,IAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAC3B,QAAA,KAAK,GAAG,CAAA,CAAA,EAAI,KAAK,CAAA,CAAA,CAAG;IACxB;AACA,IAAA,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QACpC,KAAK,GAAG,QAAQ;IACpB;AACA,IAAA,OAAO,CAAA,EAAG,EAAE,CAAA,EAAA,EAAK,KAAK,CAAA,CAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;AACzC;AAEM,SAAU,UAAU,CAAC,WAAmB,EAAA;IAC1C,OAAO,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACpC;;ACXA;;;;;;;;;;;;AAYG;AAcH;AACM,MAAO,6BAA8B,SAAQ,0BAA0B,CAAA;;AAWzE,IAAA,IAAY,eAAe,GAAA;AACvB,QAAA,IAAI,IAAI,CAAC,mBAAmB,KAAK,SAAS,EAAE;AACxC,YAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,oBAAoB,EAAE,IAAI,CAAC;QAC5E;QACA,OAAO,IAAI,CAAC,mBAAmB;IACnC;AAEA,IAAA,WAAA,GAAA;AACI,QAAA,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;AACnC,QAAA,MAAM,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC;AAEtC,QAAA,KAAK,CAAC,SAAS,EAAE,WAAW,CAAC;AAhBzB,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;;QAE3B,IAAA,CAAA,mBAAmB,GAAQ,SAAS;AAexC,QAAA,IAAI,CAAC,UAAU,GAAG,WAAW;AAC7B,QAAA,IAAI,CAAC,QAAQ,GAAG,SAAS;AACzB,QAAA,IAAI,CAAC,QAAQ,GAAG,CAAC,WAAmB,KAAU;YAC1C,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC,WAAW,CAAC;AACjD,YAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC;AACxC,QAAA,CAAC;IACL;IAEA,SAAS,GAAA;AACL,QAAA,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,aAAa,KAAK,CAAC,EAAE;YACvE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,iBAAiB,EAAE,yBAAyB,CAAC;QAC7E;IACJ;;AAGS,IAAA,UAAU,CAAC,KAAU,EAAA;AAC1B,QAAA,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC;AACvB,QAAA,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC;AAC/B,QAAA,IAAI,CAAC,eAAe,EAAE,iBAAiB,EAAE;IAC7C;;AAGS,IAAA,gBAAgB,CAAC,EAAuB,EAAA;AAC7C,QAAA,IAAI,CAAC,QAAQ,GAAG,CAAC,WAAmB,KAAU;YAC1C,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC,WAAW,CAAC;AACjD,YAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC;AACpC,YAAA,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;AAClB,QAAA,CAAC;IACL;AAEA,IAAA,gBAAgB,CAAC,UAAmB,EAAA;QAChC,IAAI,UAAU,EAAE;AACZ,YAAA,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,UAAU,EAAE,EAAE,CAAC;QAC7E;aAAO;AACH,YAAA,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,UAAU,CAAC;QAC5E;IACJ;AAEA,IAAA,WAAW,CAAC,OAAsB,EAAA;AAC9B,QAAA,IAAI,OAAO,CAAC,aAAa,CAAC,EAAE;YACxB,IAAI,OAAO,CAAC,aAAa,CAAC,CAAC,YAAY,KAAK,SAAS,EAAE;AACnD,gBAAA,IAAI,IAAI,CAAC,eAAe,EAAE;AACtB,oBAAA,IAAI,CAAC,eAAe,CAAC,sBAAsB,GAAG,KAAK;gBACvD;AACA,gBAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE;AACxB,oBAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,IAAI,CAAC,iBAAiB,CAAC;AAChF,oBAAA,IAAI,CAAC,iBAAiB,GAAG,SAAS;gBACtC;YACJ;AAAO,iBAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE;AAC/B,gBAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,iBAAiB,EAAE,WAAW,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC,YAAY,CAAC;YACvG;iBAAO;gBACH,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC;AAC9D,gBAAA,MAAM,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,EAAE;gBACpC,IAAI,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC;AAChC,gBAAA,MAAM,0BAA0B,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,0BAA0B,EAAE,SAAS,CAAC;gBAC3F,0BAA0B,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC;gBAC7D,0BAA0B,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC;AAC7D,gBAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,iBAAiB,EAAEA,mBAAiB,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;AAC3E,gBAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,iBAAiB,EAAE,OAAO,EAAEA,mBAAiB,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;gBACvF,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,iBAAiB,EAAE,yBAAyB,CAAC;AACzE,gBAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,iBAAiB,EAAE,WAAW,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC,YAAY,CAAC;gBACnG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,EAAE;AACtC,oBAAA,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,iBAAiB,EAAE,UAAU,EAAE,EAAE,CAAC;gBACtE;AACA,gBAAA,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,UAAU,CAAC;AAC5G,gBAAA,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,KAAK,OAAO,CAAC,aAAa,CAAC,CAAC,YAAY,IAAI,IAAI,CAAC,eAAe,EAAE;AACrG,oBAAA,IAAI,CAAC,eAAe,CAAC,sBAAsB,GAAG,IAAI;gBACtD;AACA,gBAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AACb,oBAAA,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;gBAC9B;YACJ;QACJ;IACJ;;AAGQ,IAAA,mBAAmB,CAAC,KAAU,EAAA;QAClC,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,KAAK,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC,EAAE;AAC/E,YAAA,IAAI;AACA,gBAAA,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI;YAC5D;YAAE,OAAO,CAAC,EAAE;;YAEZ;AACA,YAAA,IAAI,IAAI,CAAC,eAAe,EAAE;AACtB,gBAAA,IAAI,CAAC,eAAe,CAAC,sBAAsB,GAAG,IAAI;YACtD;QACJ;aAAO;AACH,YAAA,IAAI,IAAI,CAAC,eAAe,EAAE;AACtB,gBAAA,IAAI,CAAC,eAAe,CAAC,sBAAsB,GAAG,KAAK;YACvD;QACJ;IACJ;8GAlHS,6BAA6B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA7B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,6BAA6B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,8IAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,MAAA,EAAA,aAAA,EAAA,EAAA,EAAA,SAAA,EAT3B;AACP,YAAA;AACI,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,6BAA6B,CAAC;AAC5D,gBAAA,KAAK,EAAE,IAAI;AACd,aAAA;AACJ,SAAA,EAAA,eAAA,EAAA,IAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAGQ,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBAdzC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;oBACP,QAAQ;;oBAEJ,8IAA8I;AAClJ,oBAAA,IAAI,EAAE,EAAE,QAAQ,EAAE,aAAa,EAAE;AACjC,oBAAA,SAAS,EAAE;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,mCAAmC,CAAC;AAC5D,4BAAA,KAAK,EAAE,IAAI;AACd,yBAAA;AACJ,qBAAA;AACJ,iBAAA;;sBAGI;;;ACfL;AACA,SAAS,iBAAiB,CAAC,EAAU,EAAE,KAAU,EAAA;AAC7C,IAAA,IAAI,EAAE,IAAI,IAAI,EAAE;QACZ,OAAO,CAAA,EAAG,KAAK,CAAA,CAAE;IACrB;AACA,IAAA,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QACpC,KAAK,GAAG,QAAQ;IACpB;AACA,IAAA,OAAO,CAAA,EAAG,EAAE,CAAA,EAAA,EAAK,KAAK,CAAA,CAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;AACzC;AAEA;;;;;;;;;AASG;AAKG,MAAO,wBAAyB,SAAQ,cAAc,CAAA;AAWxD,IAAA,WAAA,GAAA;AACI,QAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC;AACnC,QAAA,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;AACnC,QAAA,MAAM,OAAO,GAAG,MAAM,CAAC,6BAA6B,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAE;AACtF,QAAA,MAAM,aAAa,GAAG,MAAM,CAAC,0BAA0B,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAE;AACzF,QAAA,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC;QAClC,MAAM,gBAAgB,GAAG,SAAS,CAAC,GAAG,CAAC,oBAAoB,EAAE,IAAI,CAAC;AAElE,QAAA,KAAK,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC;AACnC,QAAA,IAAI,CAAC,UAAU,GAAG,OAAO;AACzB,QAAA,IAAI,CAAC,gBAAgB,GAAG,aAAa;AACrC,QAAA,IAAI,CAAC,gBAAgB,GAAG,gBAAgB;AACxC,QAAA,IAAI,CAAC,WAAW,GAAG,QAAQ;AAC3B,QAAA,IAAI,CAAC,YAAY,GAAG,SAAS;IACjC;IAEA,eAAe,GAAA;AACX,QAAA,IAAI,CAAC,gBAAgB,EAAE,iBAAiB,EAAE;IAC9C;AAEA;;;AAGG;IACH,IAEa,OAAO,CAAC,KAAU,EAAA;AAC3B,QAAA,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI;YAAE;AAC7B,QAAA,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;AACnE,QAAA,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC;AACjD,QAAA,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;AACnE,QAAA,KAAK,CAAC,kBAAkB,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QAC5D,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;QACjD,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;IAC3D;AAEA,IAAA,WAAW,CAAC,OAAsB,EAAA;AAC9B,QAAA,IAAI,OAAO,CAAC,UAAU,CAAC,EAAE;AACrB,YAAA,QAAQ,IAAI,CAAC,QAAQ;AACjB,gBAAA,KAAK,IAAI;AACL,oBAAA,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,UAAU,EAAE,EAAE,CAAC;oBAC9E;AACJ,gBAAA;AACI,oBAAA,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,UAAU,CAAC;;AAErF,YAAA,IAAI,CAAC,gBAAgB,EAAE,iBAAiB,EAAE;QAC9C;AAEA,QAAA,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;YAClB,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,WAAW,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC;AACzG,YAAA,IAAI,CAAC,gBAAgB,EAAE,iBAAiB,EAAE;QAC9C;IACJ;8GA/DS,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,wBAAwB,kGACb,gBAAgB,CAAA,EAAA,KAAA,EAAA,OAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAD3B,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAJpC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;;AAEP,oBAAA,QAAQ,EAAE,mBAAmB;AAChC,iBAAA;;sBAEI,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;;sBACrC;;sBAiCA;;;ACvEL,MAAM,8BAA8B,GAAa;AAC7C,IAAA,OAAO,EAAE,iBAAiB;AAC1B,IAAA,WAAW,EAAE,UAAU,CAAC,MAAM,qCAAqC,CAAC;AACpE,IAAA,KAAK,EAAE,IAAI;CACd;AAED;;;;;;;;;;;;;AAaG;AAQH;AACM,MAAO,qCAAsC,SAAQ,kCAAkC,CAAA;AACzF,IAAA,IACW,SAAS,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,UAAU,IAAI,IAAI;IAClC;IACA,IAAW,SAAS,CAAC,KAAmB,EAAA;AACpC,QAAA,IAAI,CAAC,UAAU,GAAG,qBAAqB,CAAC,KAAK,CAAC;IAClD;;AAoBA,IAAA,IAAY,eAAe,GAAA;AACvB,QAAA,IAAI,IAAI,CAAC,mBAAmB,KAAK,SAAS,EAAE;AACxC,YAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,oBAAoB,EAAE,IAAI,CAAC;QAC5E;QACA,OAAO,IAAI,CAAC,mBAAmB;IACnC;AAEA,IAAA,WAAA,GAAA;AACI,QAAA,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;AACnC,QAAA,MAAM,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC;AAEtC,QAAA,KAAK,CAAC,SAAS,EAAE,WAAW,CAAC;;AAzBjC,QAAA,IAAA,CAAA,UAAU,GAAyC,IAAI,GAAG,EAAmC;;QAG7F,IAAA,CAAA,UAAU,GAAG,CAAC;AAMN,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;;QAE3B,IAAA,CAAA,mBAAmB,GAAQ,SAAS;AAexC,QAAA,IAAI,CAAC,UAAU,GAAG,WAAW;AAC7B,QAAA,IAAI,CAAC,QAAQ,GAAG,SAAS;IAC7B;IAEA,SAAS,GAAA;AACL,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;AACf,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QAC9E;QACA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU;IACnG;;AAGA,IAAA,UAAU,CAAC,KAAU,EAAA;AACjB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;;AAElB,QAAA,IAAI,yBAAyE;AAC7E,QAAA,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AACtB,YAAA,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;AAClD,YAAA,yBAAyB,GAAG,CAAC,GAAG,EAAE,CAAC,KAAU;AACzC,gBAAA,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;AACpD,YAAA,CAAC;QACL;aAAO;AACH,YAAA,yBAAyB,GAAG,CAAC,GAAG,KAAU;AACtC,gBAAA,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC;AAC3B,YAAA,CAAC;QACL;AACA,QAAA,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,yBAAyB,CAAC;AAClD,QAAA,IAAI,CAAC,eAAe,EAAE,iBAAiB,EAAE;IAC7C;;AAGS,IAAA,gBAAgB,CAAC,EAAuB,EAAA;AAC7C,QAAA,IAAI,CAAC,QAAQ,GAAG,CAAC,OAA0B,KAAU;;YAEjD,MAAM,QAAQ,GAAe,EAAE;AAC/B,YAAA,MAAM,eAAe,GAAG,OAAO,CAAC,eAAe;AAC/C,YAAA,IAAI,eAAe,KAAK,SAAS,EAAE;gBAC/B,MAAM,OAAO,GAAG,eAAe;;AAE/B,gBAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACrC,oBAAA,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC;oBACtB,MAAM,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC;AAC3C,oBAAA,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC;gBACtB;YACJ;iBAAO;AACH,gBAAA,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO;;AAE/B,gBAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACrC,oBAAA,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC;AACtB,oBAAA,IAAI,GAAG,CAAC,QAAQ,EAAE;wBACd,MAAM,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC;AAC3C,wBAAA,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC;oBACtB;gBACJ;YACJ;AACA,YAAA,IAAI,CAAC,KAAK,GAAG,QAAQ;YACrB,EAAE,CAAC,QAAQ,CAAC;AAChB,QAAA,CAAC;IACL;;AAGA,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACrB,QAAA,IAAI,CAAC,SAAS,GAAG,MAAW;AACxB,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAC3E,YAAA,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,OAAO;AAChC,YAAA,IAAI,IAAI,CAAC,SAAS,EAAE;AAChB,gBAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,qBAAqB,CAAC;YAChF;AACA,YAAA,EAAE,EAAE;AACR,QAAA,CAAC;IACL;;AAGA,IAAA,eAAe,CAAC,KAA8B,EAAA;QAC1C,MAAM,EAAE,GAAW,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,QAAQ,EAAE;QACjD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC;AAC9B,QAAA,OAAO,EAAE;IACb;;;AAIA,IAAA,YAAY,CAAC,KAAU,EAAA;AACnB,QAAA,KAAK,MAAM,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,EAAE;;AAEjD,YAAA,IAAI,IAAI,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAE,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE;AAC9D,gBAAA,OAAO,EAAE;YACb;QACJ;AACA,QAAA,OAAO,IAAI;IACf;;;AAIA,IAAA,eAAe,CAAC,WAAmB,EAAA;AAC/B,QAAA,MAAM,EAAE,GAAW,UAAU,CAAC,WAAW,CAAC;;QAE1C,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAE,CAAC,MAAM,GAAG,WAAW;IAClF;8GAxIS,qCAAqC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAArC,qCAAqC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,4HAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,aAAA,EAAA,EAAA,EAAA,SAAA,EAHnC,CAAC,8BAA8B,CAAC,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAGlC,qCAAqC,EAAA,UAAA,EAAA,CAAA;kBARjD,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;oBACP,QAAQ;;oBAEJ,4HAA4H;oBAChI,IAAI,EAAE,EAAE,UAAU,EAAE,yBAAyB,EAAE,QAAQ,EAAE,aAAa,EAAE;oBACxE,SAAS,EAAE,CAAC,8BAA8B,CAAC;AAC9C,iBAAA;;sBAGI;;;AC/BL;;;;;;;;;AASG;AAKH;AACM,MAAO,uBAAwB,SAAQC,uBAAsB,CAAA;AAU/D,IAAA,WAAA,GAAA;AACI,QAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC;AACnC,QAAA,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;AACnC,QAAA,MAAM,OAAO,GAAG,MAAM,CAAC,qCAAqC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAE;AAE9F,QAAA,KAAK,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC;AACnC,QAAA,IAAI,CAAC,OAAO,GAAG,QAAQ;AACvB,QAAA,IAAI,CAAC,QAAQ,GAAG,SAAS;AACzB,QAAA,IAAI,CAAC,MAAM,GAAG,OAAO;IACzB;AAEA;;;AAGG;IACH,IAEI,OAAO,CAAC,KAAU,EAAA;AAClB,QAAA,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE;YACrB;QACJ;AACA,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK;AACnB,QAAA,IAAI,CAAC,gBAAgB,CAACD,mBAAiB,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QACxD,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;IAC7C;AAEA;;AAEG;IACH,IAEI,KAAK,CAAC,KAAU,EAAA;AAChB,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE;AACb,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK;AACnB,YAAA,IAAI,CAAC,gBAAgB,CAACA,mBAAiB,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;YACxD,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;QAC7C;aAAO;AACH,YAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC;QAChC;IACJ;;AAGA,IAAA,gBAAgB,CAAC,KAAa,EAAA;AAC1B,QAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,OAAO,EAAE,KAAK,CAAC;IACzE;;AAGA,IAAA,YAAY,CAAC,QAAiB,EAAA;AAC1B,QAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,UAAU,EAAE,QAAQ,CAAC;IAC/E;;IAGA,WAAW,GAAA;AACP,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE;YACb,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;YACtC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;QAC7C;IACJ;8GAnES,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAvB,uBAAuB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAvB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBALnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;;AAEP,oBAAA,QAAQ,EAAE,mBAAmB;AAChC,iBAAA;;sBA2BI;;sBAcA;;;AC3CL;AACO,MAAM,UAAU,GAAG;IACtB,SAAS;IACT,6BAA6B;IAC7B,wBAAwB;IACxB,qCAAqC;IACrC,uBAAuB;;;ACtB3B;;AAEG;;;;"}
1
+ {"version":3,"file":"eui-eds-eds-select.mjs","sources":["../../eds-select/eds-select-token.ts","../../eds-select/eds-select.ts","../../eds-select/utils.ts","../../eds-select/eds-select-control.directive.ts","../../eds-select/eds-select-option.directive.ts","../../eds-select/eds-select-multiple.directive.ts","../../eds-select/eds-select-multiple-option.directive.ts","../../eds-select/index.ts","../../eds-select/eui-eds-eds-select.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\n/**\n * Injection token for the EdsSelect component.\n * Used to break circular dependency between EdsSelect and its CVA directives.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const EDS_SELECT_COMPONENT = new InjectionToken<any>('EdsSelectComponent');\n","import {\n Component,\n ChangeDetectionStrategy,\n ElementRef,\n inject,\n input,\n signal,\n computed,\n booleanAttribute,\n DoCheck,\n Renderer2,\n OnChanges,\n OnDestroy,\n SimpleChanges,\n effect,\n} from '@angular/core';\nimport { NgControl } from '@angular/forms';\nimport { EDS_SELECT_COMPONENT } from './eds-select-token';\n\n/**\n * @description\n * EDS Select component — a styled native `<select>` element.\n * Integrates with Angular forms and supports placeholder, readonly, and validation states.\n *\n * @usageNotes\n * ### Basic usage\n * ```html\n * <select edsSelect [(ngModel)]=\"selectedValue\">\n * <option value=\"1\">Option 1</option>\n * <option value=\"2\">Option 2</option>\n * </select>\n * ```\n *\n * ### With placeholder\n * ```html\n * <select edsSelect placeholder=\"Select an option\" [formControl]=\"control\">\n * <option *ngFor=\"let item of items\" [value]=\"item.id\">{{item.name}}</option>\n * </select>\n * ```\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'select[edsSelect]',\n template: '<ng-content/>',\n styleUrl: './eds-select.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n { provide: EDS_SELECT_COMPONENT, useExisting: EdsSelect },\n ],\n host: {\n '[class]': 'hostClasses()',\n '[attr.data-e2e]': 'e2eAttr()',\n '(change)': 'onHostChange($event)',\n },\n})\nexport class EdsSelect implements OnChanges, OnDestroy, DoCheck {\n /**\n * Data attribute value for end-to-end testing identification.\n * @default 'eds-select'\n */\n e2eAttr = input('eds-select');\n\n /**\n * Text displayed as the first, unselectable option when no value is chosen.\n * The placeholder is only visible when the bound control value is null/undefined.\n */\n placeholder = input<string>(undefined);\n\n /**\n * Controls whether the select is in readonly mode.\n * When readonly, the select is hidden and a plain text input displays the selected value.\n * @default false\n */\n readonly = input(false, { transform: booleanAttribute });\n\n /**\n * Controls whether the select shows an invalid/error state.\n * @default false\n */\n isInvalid = input(false, { transform: booleanAttribute });\n\n /**\n * Aria-label for accessibility.\n * @default 'Select an option'\n */\n ariaLabel = input('Select an option');\n\n /**\n * Computed host CSS classes based on current state.\n */\n hostClasses = computed(() => {\n return [\n 'eds-select',\n this.readonly() ? 'eds-select--readonly' : '',\n this._isPlaceholderSelected ? 'eds-select--placeholder' : '',\n this._isInvalid() ? 'eds-select--invalid' : '',\n ]\n .join(' ')\n .trim();\n });\n\n /** Whether the placeholder option is currently selected. */\n _isPlaceholderSelected = false;\n\n private _elementRef = inject<ElementRef<HTMLSelectElement>>(ElementRef);\n private _renderer = inject(Renderer2);\n private _ngControl = inject(NgControl, { optional: true, self: true });\n private _isInvalid = signal(false);\n private _placeholderOption: HTMLOptionElement;\n private _readonlyInput: HTMLInputElement;\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n private _readonlyEffect = effect(() => {\n const isReadonly = this.readonly();\n if (isReadonly) {\n this._showReadonlyInput();\n } else {\n this._hideReadonlyInput();\n }\n });\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['placeholder']) {\n this._updatePlaceholder();\n }\n }\n\n ngOnDestroy(): void {\n this._readonlyInput?.remove();\n }\n\n ngDoCheck(): void {\n if (this._ngControl) {\n this._isInvalid.set(this._ngControl.invalid && this._ngControl.touched);\n } else {\n this._isInvalid.set(this.isInvalid());\n }\n\n if (this.placeholder() !== undefined) {\n const el = this._elementRef.nativeElement;\n this._isPlaceholderSelected = el.selectedIndex === 0 || el.value === '' || el.value === this.placeholder();\n } else {\n this._isPlaceholderSelected = false;\n }\n }\n\n /**\n * Sync readonly value when selection changes.\n */\n syncReadOnlyValue(): void {\n this._syncReadonlyValue();\n }\n\n protected onHostChange(_event: Event): void {\n this._syncReadonlyValue();\n if (!this._ngControl) {\n const value = this._elementRef.nativeElement.value;\n this._setPlaceholderClass(this.placeholder() === value ? undefined : value);\n }\n }\n\n private _showReadonlyInput(): void {\n const el = this._elementRef.nativeElement;\n el.style.display = 'none';\n\n if (!this._readonlyInput) {\n this._readonlyInput = this._renderer.createElement('input') as HTMLInputElement;\n this._renderer.setAttribute(this._readonlyInput, 'type', 'text');\n this._renderer.setAttribute(this._readonlyInput, 'readonly', '');\n this._renderer.setAttribute(this._readonlyInput, 'tabindex', '-1');\n this._renderer.addClass(this._readonlyInput, 'eds-select__readonly-display');\n this._renderer.insertBefore(el.parentElement, this._readonlyInput, el);\n }\n this._syncReadonlyValue();\n }\n\n private _hideReadonlyInput(): void {\n this._elementRef.nativeElement.style.display = '';\n if (this._readonlyInput) {\n this._readonlyInput.remove();\n this._readonlyInput = undefined;\n }\n }\n\n private _updatePlaceholder(): void {\n const placeholderValue = this.placeholder();\n if (this._ngControl) {\n // CVA handles placeholder\n return;\n }\n\n if (placeholderValue === undefined) {\n this._isPlaceholderSelected = false;\n if (this._placeholderOption) {\n this._renderer.removeChild(this._elementRef.nativeElement, this._placeholderOption);\n this._placeholderOption = undefined;\n }\n } else if (this._placeholderOption) {\n this._renderer.setProperty(this._placeholderOption, 'innerText', placeholderValue);\n } else {\n this._placeholderOption = this._renderer.createElement('option');\n this._renderer.addClass(this._placeholderOption, 'eds-select__placeholder');\n this._renderer.setProperty(this._placeholderOption, 'innerText', placeholderValue);\n this._renderer.setAttribute(this._placeholderOption, 'selected', '');\n this._renderer.setProperty(this._placeholderOption, 'selected', true);\n this._elementRef.nativeElement.insertBefore(this._placeholderOption, this._elementRef.nativeElement.firstChild);\n this._elementRef.nativeElement.selectedIndex = 0;\n this._isPlaceholderSelected = true;\n }\n }\n\n private _syncReadonlyValue(): void {\n if (this._readonlyInput) {\n // eslint-disable-next-line prefer-spread\n const selectedOptions = Array.apply(null, this._elementRef.nativeElement.selectedOptions)\n .map((i: HTMLOptionElement) => i.text)\n .filter((i: string) => i !== this.placeholder())\n .join(', ');\n this._readonlyInput.value = selectedOptions;\n this._renderer.setAttribute(this._readonlyInput, 'aria-label', selectedOptions || 'No selection');\n }\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _setPlaceholderClass(value: any): void {\n const placeholderOption = this._elementRef.nativeElement.options[0];\n if (!!this.placeholder() && (value === undefined || value === null || value === '')) {\n this._renderer.setAttribute(placeholderOption, 'selected', '');\n this._isPlaceholderSelected = true;\n } else {\n this._isPlaceholderSelected = false;\n this._renderer.removeAttribute(placeholderOption, 'selected');\n }\n }\n}\n","// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function _buildValueString(id: string, value: any): string {\n if (id == null) {\n return `${value}`;\n }\n if (typeof value === 'string') {\n value = `'${value}'`;\n }\n if (value && typeof value === 'object') {\n value = 'Object';\n }\n return `${id}: ${value}`.slice(0, 50);\n}\n\nexport function _extractId(valueString: string): string {\n return valueString.split(':')[0];\n}\n","import { Directive, DoCheck, ElementRef, forwardRef, Injector, Input, OnChanges, Renderer2, SimpleChanges, inject } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR, SelectControlValueAccessor } from '@angular/forms';\nimport { _buildValueString } from './utils';\nimport { EDS_SELECT_COMPONENT } from './eds-select-token';\n\n/**\n * @description\n * Control value accessor for single-select dropdowns with EDS styling.\n * Extends Angular's SelectControlValueAccessor to handle placeholder behavior and readonly state synchronization.\n *\n * @usageNotes\n * Automatically applied when using edsSelect with form directives:\n * ```html\n * <select edsSelect [formControl]=\"myControl\">\n * <option edsOption [ngValue]=\"item\" *ngFor=\"let item of items\">{{item.label}}</option>\n * </select>\n * ```\n */\n@Directive({\n selector:\n // eslint-disable-next-line @angular-eslint/directive-selector\n 'select:not([multiple])[formControlName][edsSelect],select:not([multiple])[formControl][edsSelect],select:not([multiple])[ngModel][edsSelect]',\n host: { '(blur)': 'onTouched()' },\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => EdsSelectControlValueAccessor),\n multi: true,\n },\n ],\n})\n// eslint-disable-next-line @angular-eslint/directive-class-suffix\nexport class EdsSelectControlValueAccessor extends SelectControlValueAccessor implements ControlValueAccessor, OnChanges, DoCheck {\n @Input() placeholder: string;\n\n private elementRef: ElementRef;\n private renderer: Renderer2;\n private placeholderOption: HTMLOptionElement;\n private injector = inject(Injector);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _selectComponentRef: any = undefined;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private get selectComponent(): any {\n if (this._selectComponentRef === undefined) {\n this._selectComponentRef = this.injector.get(EDS_SELECT_COMPONENT, null);\n }\n return this._selectComponentRef;\n }\n\n constructor() {\n const _renderer = inject(Renderer2);\n const _elementRef = inject(ElementRef);\n\n super(_renderer, _elementRef);\n this.elementRef = _elementRef;\n this.renderer = _renderer;\n this.onChange = (valueString: string): void => {\n this.value = this['_getOptionValue'](valueString);\n this.setPlaceholderClass(this.value);\n };\n }\n\n ngDoCheck(): void {\n if (this.placeholder && this.elementRef.nativeElement.selectedIndex === 0) {\n this.renderer.addClass(this.placeholderOption, 'eds-select__placeholder');\n }\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n override writeValue(value: any): void {\n super.writeValue(value);\n this.setPlaceholderClass(value);\n this.selectComponent?.syncReadOnlyValue();\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n override registerOnChange(fn: (value: any) => any): void {\n this.onChange = (valueString: string): void => {\n this.value = this['_getOptionValue'](valueString);\n this.setPlaceholderClass(this.value);\n fn(this.value);\n };\n }\n\n setDisabledState(isDisabled: boolean): void {\n if (isDisabled) {\n this.renderer.setAttribute(this.elementRef.nativeElement, 'disabled', '');\n } else {\n this.renderer.removeAttribute(this.elementRef.nativeElement, 'disabled');\n }\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['placeholder']) {\n if (changes['placeholder'].currentValue === undefined) {\n if (this.selectComponent) {\n this.selectComponent._isPlaceholderSelected = false;\n }\n if (this.placeholderOption) {\n this.renderer.removeChild(this.elementRef.nativeElement, this.placeholderOption);\n this.placeholderOption = undefined;\n }\n } else if (this.placeholderOption) {\n this.renderer.setProperty(this.placeholderOption, 'innerText', changes['placeholder'].currentValue);\n } else {\n this.placeholderOption = this.renderer.createElement('option');\n const id = this['_registerOption']();\n this['_optionMap'].set(id, null);\n const selectControlValueAccessor = this.injector.get(SelectControlValueAccessor, undefined);\n selectControlValueAccessor['_idCounter'] = this['_idCounter'];\n selectControlValueAccessor['_optionMap'] = this['_optionMap'];\n this.renderer.setValue(this.placeholderOption, _buildValueString(id, null));\n this.renderer.setProperty(this.placeholderOption, 'value', _buildValueString(id, null));\n this.renderer.addClass(this.placeholderOption, 'eds-select__placeholder');\n this.renderer.setProperty(this.placeholderOption, 'innerText', changes['placeholder'].currentValue);\n if (!this.elementRef.nativeElement.value) {\n this.renderer.setAttribute(this.placeholderOption, 'selected', '');\n }\n this.elementRef.nativeElement.insertBefore(this.placeholderOption, this.elementRef.nativeElement.firstChild);\n if (this.elementRef.nativeElement.value === changes['placeholder'].currentValue && this.selectComponent) {\n this.selectComponent._isPlaceholderSelected = true;\n }\n if (!this.value) {\n this.writeValue(undefined);\n }\n }\n }\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private setPlaceholderClass(value: any): void {\n if (!!this.placeholder && (value === undefined || value === null || value === '')) {\n try {\n this.elementRef.nativeElement.options[0].selected = true;\n } catch (e) {\n /* empty */\n }\n if (this.selectComponent) {\n this.selectComponent._isPlaceholderSelected = true;\n }\n } else {\n if (this.selectComponent) {\n this.selectComponent._isPlaceholderSelected = false;\n }\n }\n }\n}\n","import {\n AfterViewInit,\n booleanAttribute,\n Directive,\n ElementRef,\n forwardRef,\n Input,\n Injector,\n OnChanges,\n OnDestroy,\n Renderer2,\n SimpleChanges,\n inject,\n} from '@angular/core';\nimport { NgSelectOption, SelectControlValueAccessor } from '@angular/forms';\nimport { EdsSelectControlValueAccessor } from './eds-select-control.directive';\nimport { EDS_SELECT_COMPONENT } from './eds-select-token';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _buildValueString(id: string, value: any): string {\n if (id == null) {\n return `${value}`;\n }\n if (value && typeof value === 'object') {\n value = 'Object';\n }\n return `${id}: ${value}`.slice(0, 50);\n}\n\n/**\n * @description\n * Marks `<option>` as dynamic within an `edsSelect`, so Angular is notified when options change.\n * Supports object values via ngValue and synchronizes with readonly mode.\n *\n * @usageNotes\n * ```html\n * <option edsOption [ngValue]=\"user\" [label]=\"user.name\">{{user.name}}</option>\n * ```\n */\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'option[edsOption]',\n})\nexport class EdsSelectOptionDirective extends NgSelectOption implements OnDestroy, OnChanges, AfterViewInit {\n @Input({ transform: booleanAttribute }) selected: boolean;\n @Input() label: string;\n\n private readonly _selectCva: EdsSelectControlValueAccessor;\n private readonly _selectNativeCva: SelectControlValueAccessor;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private readonly _selectComponent: any;\n private _elementRef: ElementRef<HTMLOptionElement>;\n private _rendererRef: Renderer2;\n\n constructor() {\n const _element = inject(ElementRef);\n const _renderer = inject(Renderer2);\n const _select = inject(EdsSelectControlValueAccessor, { optional: true, host: true })!;\n const _selectNative = inject(SelectControlValueAccessor, { optional: true, host: true })!;\n const _injector = inject(Injector);\n const _selectComponent = _injector.get(EDS_SELECT_COMPONENT, null);\n\n super(_element, _renderer, _select);\n this._selectCva = _select;\n this._selectNativeCva = _selectNative;\n this._selectComponent = _selectComponent;\n this._elementRef = _element;\n this._rendererRef = _renderer;\n }\n\n ngAfterViewInit(): void {\n this._selectComponent?.syncReadOnlyValue();\n }\n\n /**\n * Tracks the value bound to the option element.\n * Unlike value binding, ngValue supports binding to objects.\n */\n @Input()\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n override set ngValue(value: any) {\n if (this._selectCva == null) return;\n this._selectNativeCva['_idCounter'] = this._selectCva['_idCounter'];\n this._selectCva['_optionMap'].set(this.id, value);\n this._selectNativeCva['_optionMap'] = this._selectCva['_optionMap'];\n super['_setElementValue'](_buildValueString(this.id, value));\n this._selectCva.writeValue(this._selectCva.value);\n this._selectNativeCva.writeValue(this._selectCva.value);\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['selected']) {\n switch (this.selected) {\n case true:\n this._rendererRef.setAttribute(this._elementRef.nativeElement, 'selected', '');\n break;\n default:\n this._rendererRef.removeAttribute(this._elementRef.nativeElement, 'selected');\n }\n this._selectComponent?.syncReadOnlyValue();\n }\n\n if (changes['label']) {\n this._rendererRef.setProperty(this._elementRef.nativeElement, 'innerText', changes['label'].currentValue);\n this._selectComponent?.syncReadOnlyValue();\n }\n }\n}\n","import { Directive, DoCheck, ElementRef, forwardRef, Injector, Input, Provider, Renderer2, inject } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR, NgControl, SelectMultipleControlValueAccessor } from '@angular/forms';\nimport { EdsSelectMultipleOption } from './eds-select-multiple-option.directive';\nimport { _extractId } from './utils';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { EDS_SELECT_COMPONENT } from './eds-select-token';\n\nconst SELECT_MULTIPLE_VALUE_ACCESSOR: Provider = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => EdsSelectMultipleControlValueAccessor),\n multi: true,\n};\n\n/**\n * @description\n * Control value accessor for multi-select dropdowns with EDS styling.\n * Extends Angular's SelectMultipleControlValueAccessor for EDS integration.\n *\n * @usageNotes\n * ```html\n * <select edsSelect multiple [formControl]=\"countriesControl\">\n * <option edsOption *ngFor=\"let country of countries\" [ngValue]=\"country\">\n * {{ country.name }}\n * </option>\n * </select>\n * ```\n */\n@Directive({\n selector:\n // eslint-disable-next-line @angular-eslint/directive-selector\n 'select[multiple][formControlName][edsSelect],select[multiple][formControl][edsSelect],select[multiple][ngModel][edsSelect]',\n host: { '(change)': 'onChange($event.target)', '(blur)': 'onTouched()' },\n providers: [SELECT_MULTIPLE_VALUE_ACCESSOR],\n})\n// eslint-disable-next-line @angular-eslint/directive-class-suffix\nexport class EdsSelectMultipleControlValueAccessor extends SelectMultipleControlValueAccessor implements ControlValueAccessor, DoCheck {\n @Input()\n public get isInvalid(): boolean {\n return this._isInvalid || null;\n }\n public set isInvalid(state: BooleanInput) {\n this._isInvalid = coerceBooleanProperty(state);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n value: any;\n\n /** @internal */\n _optionMap: Map<string, EdsSelectMultipleOption> = new Map<string, EdsSelectMultipleOption>();\n\n /** @internal */\n _idCounter = 0;\n\n protected _isInvalid: boolean;\n private elementRef: ElementRef;\n private renderer: Renderer2;\n private control: NgControl;\n private injector = inject(Injector);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _selectComponentRef: any = undefined;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private get selectComponent(): any {\n if (this._selectComponentRef === undefined) {\n this._selectComponentRef = this.injector.get(EDS_SELECT_COMPONENT, null);\n }\n return this._selectComponentRef;\n }\n\n constructor() {\n const _renderer = inject(Renderer2);\n const _elementRef = inject(ElementRef);\n\n super(_renderer, _elementRef);\n this.elementRef = _elementRef;\n this.renderer = _renderer;\n }\n\n ngDoCheck(): void {\n if (!this.control) {\n this.control = this.injector.get(NgControl, undefined, { optional: true });\n }\n this._isInvalid = this.control ? this.control.invalid && this.control.touched : this._isInvalid;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n writeValue(value: any): void {\n this.value = value;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let optionSelectedStateSetter: (opt: EdsSelectMultipleOption, o: any) => void;\n if (Array.isArray(value)) {\n const ids = value.map((v) => this._getOptionId(v));\n optionSelectedStateSetter = (opt, o): void => {\n opt._setSelected(ids.indexOf(o.toString()) > -1);\n };\n } else {\n optionSelectedStateSetter = (opt): void => {\n opt._setSelected(false);\n };\n }\n this._optionMap.forEach(optionSelectedStateSetter);\n this.selectComponent?.syncReadOnlyValue();\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n override registerOnChange(fn: (value: any) => any): void {\n this.onChange = (element: HTMLSelectElement): void => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const selected: Array<any> = [];\n const selectedOptions = element.selectedOptions;\n if (selectedOptions !== undefined) {\n const options = selectedOptions;\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (let i = 0; i < options.length; i++) {\n const opt = options[i];\n const val = this._getOptionValue(opt.value);\n selected.push(val);\n }\n } else {\n const options = element.options;\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (let i = 0; i < options.length; i++) {\n const opt = options[i];\n if (opt.selected) {\n const val = this._getOptionValue(opt.value);\n selected.push(val);\n }\n }\n }\n this.value = selected;\n fn(selected);\n };\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n registerOnTouched(fn: any): void {\n this.onTouched = (): void => {\n const control = this.injector.get(NgControl, undefined, { optional: true });\n this.isInvalid = control.invalid;\n if (this.isInvalid) {\n this.renderer.addClass(this.elementRef.nativeElement, 'eds-select--invalid');\n }\n fn();\n };\n }\n\n /** @internal */\n _registerOption(value: EdsSelectMultipleOption): string {\n const id: string = (this._idCounter++).toString();\n this._optionMap.set(id, value);\n return id;\n }\n\n /** @internal */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n _getOptionId(value: any): string | null {\n for (const id of Array.from(this._optionMap.keys())) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n if (this['_compareWith'](this._optionMap.get(id)!._value, value)) {\n return id;\n }\n }\n return null;\n }\n\n /** @internal */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n _getOptionValue(valueString: string): any {\n const id: string = _extractId(valueString);\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n return this._optionMap.has(id) ? this._optionMap.get(id)!._value : valueString;\n }\n}\n","import { Directive, ElementRef, Input, OnDestroy, Renderer2, inject } from '@angular/core';\nimport { ɵNgSelectMultipleOption as NgSelectMultipleOption } from '@angular/forms';\nimport { EdsSelectMultipleControlValueAccessor } from './eds-select-multiple.directive';\nimport { _buildValueString } from './utils';\n\n/**\n * @description\n * Marks `<option>` as dynamic within a multi-select `edsSelect`.\n * Supports object values via ngValue.\n *\n * @usageNotes\n * ```html\n * <option edsOption [ngValue]=\"item\">{{ item.name }}</option>\n * ```\n */\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'option[edsOption]',\n})\n// eslint-disable-next-line @angular-eslint/directive-class-suffix\nexport class EdsSelectMultipleOption extends NgSelectMultipleOption implements OnDestroy {\n id!: string;\n /** @internal */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n _value: any;\n\n private element: ElementRef;\n private renderer: Renderer2;\n private select: EdsSelectMultipleControlValueAccessor;\n\n constructor() {\n const _element = inject(ElementRef);\n const _renderer = inject(Renderer2);\n const _select = inject(EdsSelectMultipleControlValueAccessor, { optional: true, host: true })!;\n\n super(_element, _renderer, _select);\n this.element = _element;\n this.renderer = _renderer;\n this.select = _select;\n }\n\n /**\n * Tracks the value bound to the option element.\n * Unlike value binding, ngValue supports binding to objects.\n */\n @Input()\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n set ngValue(value: any) {\n if (this.select == null) {\n return;\n }\n this._value = value;\n this._setElementValue(_buildValueString(this.id, value));\n this.select.writeValue(this.select.value);\n }\n\n /**\n * Tracks simple string values bound to the option element.\n */\n @Input()\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n set value(value: any) {\n if (this.select) {\n this._value = value;\n this._setElementValue(_buildValueString(this.id, value));\n this.select.writeValue(this.select.value);\n } else {\n this._setElementValue(value);\n }\n }\n\n /** @internal */\n _setElementValue(value: string): void {\n this.renderer.setProperty(this.element.nativeElement, 'value', value);\n }\n\n /** @internal */\n _setSelected(selected: boolean): void {\n this.renderer.setProperty(this.element.nativeElement, 'selected', selected);\n }\n\n /** @nodoc */\n ngOnDestroy(): void {\n if (this.select) {\n this.select._optionMap.delete(this.id);\n this.select.writeValue(this.select.value);\n }\n }\n}\n","import { EdsSelect } from './eds-select';\nimport { EdsSelectControlValueAccessor } from './eds-select-control.directive';\nimport { EdsSelectOptionDirective } from './eds-select-option.directive';\nimport { EdsSelectMultipleControlValueAccessor } from './eds-select-multiple.directive';\nimport { EdsSelectMultipleOption } from './eds-select-multiple-option.directive';\n\nexport {\n EdsSelect,\n EdsSelectControlValueAccessor,\n EdsSelectOptionDirective,\n EdsSelectMultipleControlValueAccessor,\n EdsSelectMultipleOption,\n};\n\nexport * from './utils';\n\n/** Convenience array for importing all eds-select components. */\nexport const EDS_SELECT = [\n EdsSelect,\n EdsSelectControlValueAccessor,\n EdsSelectOptionDirective,\n EdsSelectMultipleControlValueAccessor,\n EdsSelectMultipleOption,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["_buildValueString","NgSelectMultipleOption"],"mappings":"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"}
@@ -292,11 +292,11 @@ class EdsShellToolbarApp {
292
292
  ...(ngDevMode ? [{ debugName: "appSubTitle" }] : /* istanbul ignore next */ []));
293
293
  }
294
294
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EdsShellToolbarApp, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
295
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.2", type: EdsShellToolbarApp, isStandalone: true, selector: "eds-shell-toolbar-app", inputs: { appName: { classPropertyName: "appName", publicName: "appName", isSignal: true, isRequired: false, transformFunction: null }, appShortName: { classPropertyName: "appShortName", publicName: "appShortName", isSignal: true, isRequired: false, transformFunction: null }, appSubTitle: { classPropertyName: "appSubTitle", publicName: "appSubTitle", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "@if (appName()) {\n <span class=\"app-name\">{{ appName() }}</span>\n}\n@if (appSubTitle()) {\n <span class=\"app-subtitle\">{{ appSubTitle() }}</span>\n}\n<ng-content></ng-content>\n", styles: [".eui-21 :host{display:flex;flex-direction:column;justify-content:center;gap:var(--eds-sp-4xs);min-width:0}.eui-21 :host .app-name{font:var(--eds-f-label-m-semi-bold);color:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.eui-21 :host .app-subtitle{font:var(--eds-f-microcopy-xs);opacity:.8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n"] }); }
295
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.2", type: EdsShellToolbarApp, isStandalone: true, selector: "eds-shell-toolbar-app", inputs: { appName: { classPropertyName: "appName", publicName: "appName", isSignal: true, isRequired: false, transformFunction: null }, appShortName: { classPropertyName: "appShortName", publicName: "appShortName", isSignal: true, isRequired: false, transformFunction: null }, appSubTitle: { classPropertyName: "appSubTitle", publicName: "appSubTitle", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "@if (appName()) {\n <span class=\"app-name\">{{ appName() }}</span>\n}\n@if (appSubTitle()) {\n <span class=\"app-subtitle\">{{ appSubTitle() }}</span>\n}\n<ng-content></ng-content>\n", styles: [".eui-21 :host{display:flex;flex-direction:column;justify-content:center;gap:var(--eds-sp-4xs);min-width:0}.eui-21 :host .app-name{font:var(--eds-f-label-m-semibold);color:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.eui-21 :host .app-subtitle{font:var(--eds-f-microcopy-xs);opacity:.8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n"] }); }
296
296
  }
297
297
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EdsShellToolbarApp, decorators: [{
298
298
  type: Component,
299
- args: [{ selector: 'eds-shell-toolbar-app', template: "@if (appName()) {\n <span class=\"app-name\">{{ appName() }}</span>\n}\n@if (appSubTitle()) {\n <span class=\"app-subtitle\">{{ appSubTitle() }}</span>\n}\n<ng-content></ng-content>\n", styles: [".eui-21 :host{display:flex;flex-direction:column;justify-content:center;gap:var(--eds-sp-4xs);min-width:0}.eui-21 :host .app-name{font:var(--eds-f-label-m-semi-bold);color:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.eui-21 :host .app-subtitle{font:var(--eds-f-microcopy-xs);opacity:.8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n"] }]
299
+ args: [{ selector: 'eds-shell-toolbar-app', template: "@if (appName()) {\n <span class=\"app-name\">{{ appName() }}</span>\n}\n@if (appSubTitle()) {\n <span class=\"app-subtitle\">{{ appSubTitle() }}</span>\n}\n<ng-content></ng-content>\n", styles: [".eui-21 :host{display:flex;flex-direction:column;justify-content:center;gap:var(--eds-sp-4xs);min-width:0}.eui-21 :host .app-name{font:var(--eds-f-label-m-semibold);color:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.eui-21 :host .app-subtitle{font:var(--eds-f-microcopy-xs);opacity:.8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n"] }]
300
300
  }], propDecorators: { appName: [{ type: i0.Input, args: [{ isSignal: true, alias: "appName", required: false }] }], appShortName: [{ type: i0.Input, args: [{ isSignal: true, alias: "appShortName", required: false }] }], appSubTitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "appSubTitle", required: false }] }] } });
301
301
 
302
302
  class EdsShellSidebarHeader {
@@ -314,11 +314,11 @@ class EdsShellSidebarHeader {
314
314
  this.closeClick.emit();
315
315
  }
316
316
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EdsShellSidebarHeader, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
317
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.2", type: EdsShellSidebarHeader, isStandalone: true, selector: "eds-shell-sidebar-header", inputs: { brand: { classPropertyName: "brand", publicName: "brand", isSignal: true, isRequired: false, transformFunction: null }, showClose: { classPropertyName: "showClose", publicName: "showClose", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { closeClick: "closeClick" }, ngImport: i0, template: "@if (brand()) {\n <span class=\"sidebar-brand\">{{ brand() }}</span>\n}\n<ng-content></ng-content>\n@if (showClose()) {\n <button\n class=\"sidebar-close-btn\"\n (click)=\"onClose()\"\n aria-label=\"Close sidebar\">\n &times;\n </button>\n}\n", styles: [".eui-21 :host{display:flex;align-items:center;justify-content:space-between;padding:var(--eds-sp-m) var(--eds-sp-l);border-bottom:var(--eds-bw-xs) solid var(--eds-c-border-divider);min-height:var(--eds-si-7xl);white-space:nowrap}.eui-21 :host .sidebar-brand{font:var(--eds-f-label-m-semi-bold);color:var(--eds-c-foreground-primary)}.eui-21 :host .sidebar-close-btn{display:flex;align-items:center;justify-content:center;font-size:var(--eds-f-s-xl);width:var(--eds-is-l);height:var(--eds-is-l);border:none;background:none;border-radius:var(--eds-br-s);cursor:pointer;color:var(--eds-c-foreground)}.eui-21 :host .sidebar-close-btn:hover{background:var(--eds-c-surface-elevation-sunken)}\n"] }); }
317
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.2", type: EdsShellSidebarHeader, isStandalone: true, selector: "eds-shell-sidebar-header", inputs: { brand: { classPropertyName: "brand", publicName: "brand", isSignal: true, isRequired: false, transformFunction: null }, showClose: { classPropertyName: "showClose", publicName: "showClose", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { closeClick: "closeClick" }, ngImport: i0, template: "@if (brand()) {\n <span class=\"sidebar-brand\">{{ brand() }}</span>\n}\n<ng-content></ng-content>\n@if (showClose()) {\n <button\n class=\"sidebar-close-btn\"\n (click)=\"onClose()\"\n aria-label=\"Close sidebar\">\n &times;\n </button>\n}\n", styles: [".eui-21 :host{display:flex;align-items:center;justify-content:space-between;padding:var(--eds-sp-m) var(--eds-sp-l);border-bottom:var(--eds-bw-xs) solid var(--eds-c-border-divider);min-height:var(--eds-si-7xl);white-space:nowrap}.eui-21 :host .sidebar-brand{font:var(--eds-f-label-m-semibold);color:var(--eds-c-foreground-primary)}.eui-21 :host .sidebar-close-btn{display:flex;align-items:center;justify-content:center;font-size:var(--eds-f-s-xl);width:var(--eds-is-l);height:var(--eds-is-l);border:none;background:none;border-radius:var(--eds-br-s);cursor:pointer;color:var(--eds-c-foreground)}.eui-21 :host .sidebar-close-btn:hover{background:var(--eds-c-surface-elevation-sunken)}\n"] }); }
318
318
  }
319
319
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EdsShellSidebarHeader, decorators: [{
320
320
  type: Component,
321
- args: [{ selector: 'eds-shell-sidebar-header', template: "@if (brand()) {\n <span class=\"sidebar-brand\">{{ brand() }}</span>\n}\n<ng-content></ng-content>\n@if (showClose()) {\n <button\n class=\"sidebar-close-btn\"\n (click)=\"onClose()\"\n aria-label=\"Close sidebar\">\n &times;\n </button>\n}\n", styles: [".eui-21 :host{display:flex;align-items:center;justify-content:space-between;padding:var(--eds-sp-m) var(--eds-sp-l);border-bottom:var(--eds-bw-xs) solid var(--eds-c-border-divider);min-height:var(--eds-si-7xl);white-space:nowrap}.eui-21 :host .sidebar-brand{font:var(--eds-f-label-m-semi-bold);color:var(--eds-c-foreground-primary)}.eui-21 :host .sidebar-close-btn{display:flex;align-items:center;justify-content:center;font-size:var(--eds-f-s-xl);width:var(--eds-is-l);height:var(--eds-is-l);border:none;background:none;border-radius:var(--eds-br-s);cursor:pointer;color:var(--eds-c-foreground)}.eui-21 :host .sidebar-close-btn:hover{background:var(--eds-c-surface-elevation-sunken)}\n"] }]
321
+ args: [{ selector: 'eds-shell-sidebar-header', template: "@if (brand()) {\n <span class=\"sidebar-brand\">{{ brand() }}</span>\n}\n<ng-content></ng-content>\n@if (showClose()) {\n <button\n class=\"sidebar-close-btn\"\n (click)=\"onClose()\"\n aria-label=\"Close sidebar\">\n &times;\n </button>\n}\n", styles: [".eui-21 :host{display:flex;align-items:center;justify-content:space-between;padding:var(--eds-sp-m) var(--eds-sp-l);border-bottom:var(--eds-bw-xs) solid var(--eds-c-border-divider);min-height:var(--eds-si-7xl);white-space:nowrap}.eui-21 :host .sidebar-brand{font:var(--eds-f-label-m-semibold);color:var(--eds-c-foreground-primary)}.eui-21 :host .sidebar-close-btn{display:flex;align-items:center;justify-content:center;font-size:var(--eds-f-s-xl);width:var(--eds-is-l);height:var(--eds-is-l);border:none;background:none;border-radius:var(--eds-br-s);cursor:pointer;color:var(--eds-c-foreground)}.eui-21 :host .sidebar-close-btn:hover{background:var(--eds-c-surface-elevation-sunken)}\n"] }]
322
322
  }], propDecorators: { brand: [{ type: i0.Input, args: [{ isSignal: true, alias: "brand", required: false }] }], showClose: [{ type: i0.Input, args: [{ isSignal: true, alias: "showClose", required: false }] }], closeClick: [{ type: i0.Output, args: ["closeClick"] }] } });
323
323
 
324
324
  class EdsShellSidebarNav {