@eui/eds 22.0.0-alpha.22 → 22.0.0-alpha.24

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 (200) hide show
  1. package/docs/changelog.html +62 -0
  2. package/docs/components/EdsButton.html +77 -203
  3. package/docs/components/EdsCalendarDay.html +1 -1
  4. package/docs/components/EdsCalendarHeader.html +1 -1
  5. package/docs/components/EdsDatepicker.html +1 -1
  6. package/docs/components/EdsDialogContainer.html +1 -1
  7. package/docs/components/EdsFeedbackMessage.html +35 -73
  8. package/docs/components/EdsFileUpload.html +1 -1
  9. package/docs/components/EdsFlexLayout.html +1 -1
  10. package/docs/components/EdsGridLayout.html +1 -1
  11. package/docs/components/EdsGridLayoutCell.html +1 -1
  12. package/docs/components/EdsGridLayoutRow.html +1 -1
  13. package/docs/components/EdsIconState.html +38 -3
  14. package/docs/components/EdsInputButton.html +0 -57
  15. package/docs/components/EdsInputCheckbox.html +0 -62
  16. package/docs/components/EdsInputIcon.html +0 -53
  17. package/docs/components/EdsInputNumber.html +0 -60
  18. package/docs/components/EdsInputRadio.html +0 -62
  19. package/docs/components/EdsInputText.html +0 -62
  20. package/docs/components/EdsLabel.html +1 -1
  21. package/docs/components/EdsLanguageSelectorDialog.html +3 -5
  22. package/docs/components/EdsLink.html +1 -1
  23. package/docs/components/EdsLoadingIndicator.html +1 -1
  24. package/docs/components/EdsPaginator.html +1 -1
  25. package/docs/components/EdsRating.html +66 -57
  26. package/docs/components/EdsSelect.html +0 -45
  27. package/docs/components/EdsSnc.html +2 -2
  28. package/docs/components/EdsTab.html +8 -133
  29. package/docs/components/EdsTabBody.html +21 -41
  30. package/docs/components/EdsTabHeader.html +13 -25
  31. package/docs/components/EdsTabHeaderLabel.html +4 -126
  32. package/docs/components/EdsTabHeaderLeftContent.html +4 -126
  33. package/docs/components/EdsTabHeaderRightContent.html +4 -126
  34. package/docs/components/EdsTabHeaderSublabel.html +4 -126
  35. package/docs/components/EdsTabs.html +113 -140
  36. package/docs/components/EdsTextarea.html +0 -62
  37. package/docs/components/EdsTreeListToolbar.html +1 -1
  38. package/docs/components/EdsTrend.html +1 -1
  39. package/docs/directives/EdsColorDirective.html +0 -9
  40. package/docs/directives/EdsFlexColDirective.html +1 -1
  41. package/docs/directives/EdsFlexGrowDirective.html +1 -1
  42. package/docs/directives/EdsFlexNoShrinkDirective.html +1 -1
  43. package/docs/directives/EdsSizeDirective.html +0 -3
  44. package/docs/directives/EdsTooltip.html +45 -281
  45. package/docs/js/search/search_index.js +2 -2
  46. package/docs/json/EdsButton.md +15 -24
  47. package/docs/json/EdsFeedbackMessage.md +4 -10
  48. package/docs/json/EdsIconState.md +2 -1
  49. package/docs/json/EdsRating.md +2 -0
  50. package/docs/json/EdsTab.md +1 -1
  51. package/docs/json/EdsTabs.md +7 -8
  52. package/docs/json/EdsTooltip.md +3 -3
  53. package/docs/json/documentation.json +1803 -2031
  54. package/docs/llms.txt +72 -109
  55. package/docs/miscellaneous/typealiases.html +179 -16
  56. package/docs/miscellaneous/variables.html +16 -16
  57. package/docs/properties.html +1 -1
  58. package/eds-flex-layout/package.json +4 -0
  59. package/eds-grid-layout/package.json +4 -0
  60. package/eds-icon-state/package.json +4 -0
  61. package/eds-label/package.json +4 -0
  62. package/eds-link/package.json +4 -0
  63. package/eds-loading-indicator/package.json +4 -0
  64. package/eds-snc/package.json +4 -0
  65. package/eds-trend/package.json +4 -0
  66. package/fesm2022/eui-eds-eds-alert.mjs +3 -3
  67. package/fesm2022/eui-eds-eds-alert.mjs.map +1 -1
  68. package/fesm2022/eui-eds-eds-button.mjs +53 -85
  69. package/fesm2022/eui-eds-eds-button.mjs.map +1 -1
  70. package/fesm2022/eui-eds-eds-calendar.mjs +4 -4
  71. package/fesm2022/eui-eds-eds-calendar.mjs.map +1 -1
  72. package/fesm2022/eui-eds-eds-datepicker.mjs +2 -2
  73. package/fesm2022/eui-eds-eds-datepicker.mjs.map +1 -1
  74. package/fesm2022/eui-eds-eds-dialog.mjs +4 -4
  75. package/fesm2022/eui-eds-eds-dialog.mjs.map +1 -1
  76. package/fesm2022/eui-eds-eds-discussion-thread.mjs +3 -3
  77. package/fesm2022/eui-eds-eds-discussion-thread.mjs.map +1 -1
  78. package/fesm2022/eui-eds-eds-feedback-message.mjs +28 -42
  79. package/fesm2022/eui-eds-eds-feedback-message.mjs.map +1 -1
  80. package/fesm2022/eui-eds-eds-file-upload.mjs +2 -2
  81. package/fesm2022/eui-eds-eds-file-upload.mjs.map +1 -1
  82. package/fesm2022/{eui-eds-utilities-eds-flex-layout.mjs → eui-eds-eds-flex-layout.mjs} +1 -1
  83. package/fesm2022/eui-eds-eds-flex-layout.mjs.map +1 -0
  84. package/fesm2022/{eui-eds-utilities-eds-grid-layout.mjs → eui-eds-eds-grid-layout.mjs} +1 -1
  85. package/fesm2022/eui-eds-eds-grid-layout.mjs.map +1 -0
  86. package/fesm2022/eui-eds-eds-growl.mjs +3 -3
  87. package/fesm2022/eui-eds-eds-growl.mjs.map +1 -1
  88. package/fesm2022/eui-eds-eds-icon-state.mjs +56 -0
  89. package/fesm2022/eui-eds-eds-icon-state.mjs.map +1 -0
  90. package/fesm2022/eui-eds-eds-input-button.mjs +10 -13
  91. package/fesm2022/eui-eds-eds-input-button.mjs.map +1 -1
  92. package/fesm2022/eui-eds-eds-input-checkbox.mjs +6 -17
  93. package/fesm2022/eui-eds-eds-input-checkbox.mjs.map +1 -1
  94. package/fesm2022/eui-eds-eds-input-icon.mjs +10 -9
  95. package/fesm2022/eui-eds-eds-input-icon.mjs.map +1 -1
  96. package/fesm2022/eui-eds-eds-input-number.mjs +5 -14
  97. package/fesm2022/eui-eds-eds-input-number.mjs.map +1 -1
  98. package/fesm2022/eui-eds-eds-input-radio.mjs +6 -17
  99. package/fesm2022/eui-eds-eds-input-radio.mjs.map +1 -1
  100. package/fesm2022/eui-eds-eds-input-text.mjs +5 -16
  101. package/fesm2022/eui-eds-eds-input-text.mjs.map +1 -1
  102. package/fesm2022/{eui-eds-utilities-eds-label.mjs → eui-eds-eds-label.mjs} +1 -1
  103. package/fesm2022/eui-eds-eds-label.mjs.map +1 -0
  104. package/fesm2022/eui-eds-eds-language-selector.mjs +5 -9
  105. package/fesm2022/eui-eds-eds-language-selector.mjs.map +1 -1
  106. package/fesm2022/{eui-eds-utilities-eds-link.mjs → eui-eds-eds-link.mjs} +1 -1
  107. package/fesm2022/eui-eds-eds-link.mjs.map +1 -0
  108. package/fesm2022/{eui-eds-utilities-eds-loading-indicator.mjs → eui-eds-eds-loading-indicator.mjs} +1 -1
  109. package/fesm2022/eui-eds-eds-loading-indicator.mjs.map +1 -0
  110. package/fesm2022/eui-eds-eds-paginator.mjs +2 -2
  111. package/fesm2022/eui-eds-eds-paginator.mjs.map +1 -1
  112. package/fesm2022/eui-eds-eds-progress-bar.mjs +3 -3
  113. package/fesm2022/eui-eds-eds-progress-bar.mjs.map +1 -1
  114. package/fesm2022/eui-eds-eds-rating.mjs +30 -16
  115. package/fesm2022/eui-eds-eds-rating.mjs.map +1 -1
  116. package/fesm2022/eui-eds-eds-select.mjs +10 -33
  117. package/fesm2022/eui-eds-eds-select.mjs.map +1 -1
  118. package/fesm2022/{eui-eds-utilities-eds-snc.mjs → eui-eds-eds-snc.mjs} +3 -3
  119. package/fesm2022/eui-eds-eds-snc.mjs.map +1 -0
  120. package/fesm2022/eui-eds-eds-tabs.mjs +192 -259
  121. package/fesm2022/eui-eds-eds-tabs.mjs.map +1 -1
  122. package/fesm2022/eui-eds-eds-textarea.mjs +5 -16
  123. package/fesm2022/eui-eds-eds-textarea.mjs.map +1 -1
  124. package/fesm2022/eui-eds-eds-tooltip.mjs +71 -86
  125. package/fesm2022/eui-eds-eds-tooltip.mjs.map +1 -1
  126. package/fesm2022/eui-eds-eds-tree-list.mjs +2 -2
  127. package/fesm2022/eui-eds-eds-tree-list.mjs.map +1 -1
  128. package/fesm2022/eui-eds-eds-tree.mjs +2 -2
  129. package/fesm2022/eui-eds-eds-tree.mjs.map +1 -1
  130. package/fesm2022/{eui-eds-utilities-eds-trend.mjs → eui-eds-eds-trend.mjs} +1 -1
  131. package/fesm2022/eui-eds-eds-trend.mjs.map +1 -0
  132. package/package.json +33 -33
  133. package/types/eui-eds-eds-button.d.ts +47 -33
  134. package/types/eui-eds-eds-button.d.ts.map +1 -1
  135. package/types/eui-eds-eds-feedback-message.d.ts +20 -10
  136. package/types/eui-eds-eds-feedback-message.d.ts.map +1 -1
  137. package/types/{eui-eds-utilities-eds-flex-layout.d.ts → eui-eds-eds-flex-layout.d.ts} +1 -1
  138. package/types/eui-eds-eds-flex-layout.d.ts.map +1 -0
  139. package/types/{eui-eds-utilities-eds-grid-layout.d.ts → eui-eds-eds-grid-layout.d.ts} +1 -1
  140. package/types/eui-eds-eds-grid-layout.d.ts.map +1 -0
  141. package/types/{eui-eds-utilities-eds-icon-state.d.ts → eui-eds-eds-icon-state.d.ts} +8 -3
  142. package/types/eui-eds-eds-icon-state.d.ts.map +1 -0
  143. package/types/eui-eds-eds-input-button.d.ts +5 -1
  144. package/types/eui-eds-eds-input-button.d.ts.map +1 -1
  145. package/types/eui-eds-eds-input-checkbox.d.ts +0 -4
  146. package/types/eui-eds-eds-input-checkbox.d.ts.map +1 -1
  147. package/types/eui-eds-eds-input-icon.d.ts +5 -1
  148. package/types/eui-eds-eds-input-icon.d.ts.map +1 -1
  149. package/types/eui-eds-eds-input-number.d.ts +1 -5
  150. package/types/eui-eds-eds-input-number.d.ts.map +1 -1
  151. package/types/eui-eds-eds-input-radio.d.ts +0 -4
  152. package/types/eui-eds-eds-input-radio.d.ts.map +1 -1
  153. package/types/eui-eds-eds-input-text.d.ts +1 -5
  154. package/types/eui-eds-eds-input-text.d.ts.map +1 -1
  155. package/types/{eui-eds-utilities-eds-label.d.ts → eui-eds-eds-label.d.ts} +1 -1
  156. package/types/eui-eds-eds-label.d.ts.map +1 -0
  157. package/types/eui-eds-eds-language-selector.d.ts.map +1 -1
  158. package/types/{eui-eds-utilities-eds-link.d.ts → eui-eds-eds-link.d.ts} +1 -1
  159. package/types/eui-eds-eds-link.d.ts.map +1 -0
  160. package/types/{eui-eds-utilities-eds-loading-indicator.d.ts → eui-eds-eds-loading-indicator.d.ts} +1 -1
  161. package/types/eui-eds-eds-loading-indicator.d.ts.map +1 -0
  162. package/types/eui-eds-eds-rating.d.ts +19 -2
  163. package/types/eui-eds-eds-rating.d.ts.map +1 -1
  164. package/types/eui-eds-eds-select.d.ts +1 -5
  165. package/types/eui-eds-eds-select.d.ts.map +1 -1
  166. package/types/{eui-eds-utilities-eds-snc.d.ts → eui-eds-eds-snc.d.ts} +1 -1
  167. package/types/eui-eds-eds-snc.d.ts.map +1 -0
  168. package/types/eui-eds-eds-tabs.d.ts +87 -100
  169. package/types/eui-eds-eds-tabs.d.ts.map +1 -1
  170. package/types/eui-eds-eds-textarea.d.ts +1 -5
  171. package/types/eui-eds-eds-textarea.d.ts.map +1 -1
  172. package/types/eui-eds-eds-tooltip.d.ts +27 -25
  173. package/types/eui-eds-eds-tooltip.d.ts.map +1 -1
  174. package/types/{eui-eds-utilities-eds-trend.d.ts → eui-eds-eds-trend.d.ts} +1 -1
  175. package/types/eui-eds-eds-trend.d.ts.map +1 -0
  176. package/fesm2022/eui-eds-utilities-eds-flex-layout.mjs.map +0 -1
  177. package/fesm2022/eui-eds-utilities-eds-grid-layout.mjs.map +0 -1
  178. package/fesm2022/eui-eds-utilities-eds-icon-state.mjs +0 -49
  179. package/fesm2022/eui-eds-utilities-eds-icon-state.mjs.map +0 -1
  180. package/fesm2022/eui-eds-utilities-eds-label.mjs.map +0 -1
  181. package/fesm2022/eui-eds-utilities-eds-link.mjs.map +0 -1
  182. package/fesm2022/eui-eds-utilities-eds-loading-indicator.mjs.map +0 -1
  183. package/fesm2022/eui-eds-utilities-eds-snc.mjs.map +0 -1
  184. package/fesm2022/eui-eds-utilities-eds-trend.mjs.map +0 -1
  185. package/types/eui-eds-utilities-eds-flex-layout.d.ts.map +0 -1
  186. package/types/eui-eds-utilities-eds-grid-layout.d.ts.map +0 -1
  187. package/types/eui-eds-utilities-eds-icon-state.d.ts.map +0 -1
  188. package/types/eui-eds-utilities-eds-label.d.ts.map +0 -1
  189. package/types/eui-eds-utilities-eds-link.d.ts.map +0 -1
  190. package/types/eui-eds-utilities-eds-loading-indicator.d.ts.map +0 -1
  191. package/types/eui-eds-utilities-eds-snc.d.ts.map +0 -1
  192. package/types/eui-eds-utilities-eds-trend.d.ts.map +0 -1
  193. package/utilities/eds-flex-layout/package.json +0 -4
  194. package/utilities/eds-grid-layout/package.json +0 -4
  195. package/utilities/eds-icon-state/package.json +0 -4
  196. package/utilities/eds-label/package.json +0 -4
  197. package/utilities/eds-link/package.json +0 -4
  198. package/utilities/eds-loading-indicator/package.json +0 -4
  199. package/utilities/eds-snc/package.json +0 -4
  200. package/utilities/eds-trend/package.json +0 -4
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { InjectionToken, input, booleanAttribute, computed, inject, ElementRef, Renderer2, signal, effect, ChangeDetectionStrategy, Component, Injector, forwardRef, Input, Directive } from '@angular/core';
2
+ import { InjectionToken, input, booleanAttribute, inject, ElementRef, Renderer2, signal, effect, ChangeDetectionStrategy, Component, Injector, forwardRef, Input, Directive } from '@angular/core';
3
3
  import { NgControl, SelectControlValueAccessor, NG_VALUE_ACCESSOR, NgSelectOption, SelectMultipleControlValueAccessor, ɵNgSelectMultipleOption as _NgSelectMultipleOption } from '@angular/forms';
4
4
  import { coerceBooleanProperty } from '@angular/cdk/coercion';
5
5
 
@@ -62,20 +62,6 @@ class EdsSelect {
62
62
  */
63
63
  this.ariaLabel = input('Select an option', /* @ts-ignore */
64
64
  ...(ngDevMode ? [{ debugName: "ariaLabel" }] : /* istanbul ignore next */ []));
65
- /**
66
- * Computed host CSS classes based on current state.
67
- */
68
- this.hostClasses = computed(() => {
69
- return [
70
- 'eds-select',
71
- this.readonly() ? 'eds-select--readonly' : '',
72
- this._isPlaceholderSelected ? 'eds-select--placeholder' : '',
73
- this._isInvalid() ? 'eds-select--invalid' : '',
74
- ]
75
- .join(' ')
76
- .trim();
77
- }, /* @ts-ignore */
78
- ...(ngDevMode ? [{ debugName: "hostClasses" }] : /* istanbul ignore next */ []));
79
65
  /** Whether the placeholder option is currently selected. */
80
66
  this._isPlaceholderSelected = false;
81
67
  this._elementRef = inject(ElementRef);
@@ -83,7 +69,6 @@ class EdsSelect {
83
69
  this._ngControl = inject(NgControl, { optional: true, self: true });
84
70
  this._isInvalid = signal(false, /* @ts-ignore */
85
71
  ...(ngDevMode ? [{ debugName: "_isInvalid" }] : /* istanbul ignore next */ []));
86
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
87
72
  this._readonlyEffect = effect(() => {
88
73
  const isReadonly = this.readonly();
89
74
  if (isReadonly) {
@@ -202,19 +187,22 @@ class EdsSelect {
202
187
  }
203
188
  }
204
189
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EdsSelect, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
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: [
190
+ 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: { "attr.readonly": "readonly() || null", "attr.placeholder-selected": "_isPlaceholderSelected || null", "attr.invalid": "_isInvalid() || null", "attr.data-e2e": "e2eAttr()" }, classAttribute: "eds-select" }, providers: [
206
191
  { 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-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 }); }
192
+ ], 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-selected]{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)}.eui-21 :host.eds-select[invalid]{border-color:var(--eds-c-border-critical)}.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
193
  }
209
194
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EdsSelect, decorators: [{
210
195
  type: Component,
211
196
  args: [{ selector: 'select[edsSelect]', template: '<ng-content/>', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
212
197
  { provide: EDS_SELECT_COMPONENT, useExisting: EdsSelect },
213
198
  ], host: {
214
- '[class]': 'hostClasses()',
199
+ class: 'eds-select',
200
+ '[attr.readonly]': 'readonly() || null',
201
+ '[attr.placeholder-selected]': '_isPlaceholderSelected || null',
202
+ '[attr.invalid]': '_isInvalid() || null',
215
203
  '[attr.data-e2e]': 'e2eAttr()',
216
204
  '(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-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"] }]
205
+ }, 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-selected]{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)}.eui-21 :host.eds-select[invalid]{border-color:var(--eds-c-border-critical)}.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
206
  }], 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
207
 
220
208
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
@@ -247,7 +235,6 @@ function _extractId(valueString) {
247
235
  * </select>
248
236
  * ```
249
237
  */
250
- // eslint-disable-next-line @angular-eslint/directive-class-suffix
251
238
  class EdsSelectControlValueAccessor extends SelectControlValueAccessor {
252
239
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
253
240
  get selectComponent() {
@@ -366,9 +353,7 @@ class EdsSelectControlValueAccessor extends SelectControlValueAccessor {
366
353
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EdsSelectControlValueAccessor, decorators: [{
367
354
  type: Directive,
368
355
  args: [{
369
- selector:
370
- // eslint-disable-next-line @angular-eslint/directive-selector
371
- 'select:not([multiple])[formControlName][edsSelect],select:not([multiple])[formControl][edsSelect],select:not([multiple])[ngModel][edsSelect]',
356
+ selector: 'select:not([multiple])[formControlName][edsSelect],select:not([multiple])[formControl][edsSelect],select:not([multiple])[ngModel][edsSelect]',
372
357
  host: { '(blur)': 'onTouched()' },
373
358
  providers: [
374
359
  {
@@ -456,7 +441,6 @@ class EdsSelectOptionDirective extends NgSelectOption {
456
441
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EdsSelectOptionDirective, decorators: [{
457
442
  type: Directive,
458
443
  args: [{
459
- // eslint-disable-next-line @angular-eslint/directive-selector
460
444
  selector: 'option[edsOption]',
461
445
  }]
462
446
  }], ctorParameters: () => [], propDecorators: { selected: [{
@@ -487,7 +471,6 @@ const SELECT_MULTIPLE_VALUE_ACCESSOR = {
487
471
  * </select>
488
472
  * ```
489
473
  */
490
- // eslint-disable-next-line @angular-eslint/directive-class-suffix
491
474
  class EdsSelectMultipleControlValueAccessor extends SelectMultipleControlValueAccessor {
492
475
  get isInvalid() {
493
476
  return this._isInvalid || null;
@@ -592,7 +575,6 @@ class EdsSelectMultipleControlValueAccessor extends SelectMultipleControlValueAc
592
575
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
593
576
  _getOptionId(value) {
594
577
  for (const id of Array.from(this._optionMap.keys())) {
595
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
596
578
  if (this['_compareWith'](this._optionMap.get(id)._value, value)) {
597
579
  return id;
598
580
  }
@@ -603,7 +585,6 @@ class EdsSelectMultipleControlValueAccessor extends SelectMultipleControlValueAc
603
585
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
604
586
  _getOptionValue(valueString) {
605
587
  const id = _extractId(valueString);
606
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
607
588
  return this._optionMap.has(id) ? this._optionMap.get(id)._value : valueString;
608
589
  }
609
590
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EdsSelectMultipleControlValueAccessor, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
@@ -612,9 +593,7 @@ class EdsSelectMultipleControlValueAccessor extends SelectMultipleControlValueAc
612
593
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EdsSelectMultipleControlValueAccessor, decorators: [{
613
594
  type: Directive,
614
595
  args: [{
615
- selector:
616
- // eslint-disable-next-line @angular-eslint/directive-selector
617
- 'select[multiple][formControlName][edsSelect],select[multiple][formControl][edsSelect],select[multiple][ngModel][edsSelect]',
596
+ selector: 'select[multiple][formControlName][edsSelect],select[multiple][formControl][edsSelect],select[multiple][ngModel][edsSelect]',
618
597
  host: { '(change)': 'onChange($event.target)', '(blur)': 'onTouched()' },
619
598
  providers: [SELECT_MULTIPLE_VALUE_ACCESSOR],
620
599
  }]
@@ -632,7 +611,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImpor
632
611
  * <option edsOption [ngValue]="item">{{ item.name }}</option>
633
612
  * ```
634
613
  */
635
- // eslint-disable-next-line @angular-eslint/directive-class-suffix
636
614
  class EdsSelectMultipleOption extends _NgSelectMultipleOption {
637
615
  constructor() {
638
616
  const _element = inject(ElementRef);
@@ -689,7 +667,6 @@ class EdsSelectMultipleOption extends _NgSelectMultipleOption {
689
667
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EdsSelectMultipleOption, decorators: [{
690
668
  type: Directive,
691
669
  args: [{
692
- // eslint-disable-next-line @angular-eslint/directive-selector
693
670
  selector: 'option[edsOption]',
694
671
  }]
695
672
  }], ctorParameters: () => [], propDecorators: { ngValue: [{
@@ -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":"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"}
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 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: 'eds-select',\n '[attr.readonly]': 'readonly() || null',\n '[attr.placeholder-selected]': '_isPlaceholderSelected || null',\n '[attr.invalid]': '_isInvalid() || null',\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 /** 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 protected _isInvalid = signal(false);\n private _placeholderOption: HTMLOptionElement;\n private _readonlyInput: HTMLInputElement;\n\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 '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})\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 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 '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})\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: 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 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 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 selector: 'option[edsOption]',\n})\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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"}
@@ -30,14 +30,14 @@ class EdsSnc {
30
30
  this.sncToggle.emit(this.showContent());
31
31
  }
32
32
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EdsSnc, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
33
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.2", type: EdsSnc, isStandalone: true, selector: "eds-snc", inputs: { e2eAttr: { classPropertyName: "e2eAttr", publicName: "e2eAttr", isSignal: true, isRequired: false, transformFunction: null }, dotsLength: { classPropertyName: "dotsLength", publicName: "dotsLength", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { sncToggle: "sncToggle" }, host: { properties: { "class": "hostClasses()", "attr.data-e2e": "e2eAttr()" } }, ngImport: i0, template: "@if (showContent()) {\n <ng-content />\n} @else {\n <span class=\"eds-snc__hidden-content\">{{ hiddenText() }}</span>\n}\n<button edsButton edsButtonSecondary edsCritical edsSizeS\n (click)=\"toggleContent()\"\n [attr.aria-pressed]=\"showContent()\"\n aria-label=\"Toggle content visibility\">\n SNC\n</button>\n", styles: [".eui-21 :host{display:flex;flex-direction:row;align-items:center;gap:var(--eds-sp-m)}.eui-21 :host .eds-snc__hidden-content{font:var(--eds-f-paragraph-l);letter-spacing:-.04em}\n"], dependencies: [{ kind: "component", type: i1.EdsButton, selector: "button[edsButton]", inputs: ["e2eAttr", "id", "edsDisabled", "edsBlockButton", "edsIconButton", "edsAvatarButton", "edsLineWrap", "edsButtonPrimary", "edsButtonSecondary", "edsButtonTertiary", "edsButtonRounded", "edsTypeVariant", "isChecked"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
33
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.2", type: EdsSnc, isStandalone: true, selector: "eds-snc", inputs: { e2eAttr: { classPropertyName: "e2eAttr", publicName: "e2eAttr", isSignal: true, isRequired: false, transformFunction: null }, dotsLength: { classPropertyName: "dotsLength", publicName: "dotsLength", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { sncToggle: "sncToggle" }, host: { properties: { "class": "hostClasses()", "attr.data-e2e": "e2eAttr()" } }, ngImport: i0, template: "@if (showContent()) {\n <ng-content />\n} @else {\n <span class=\"eds-snc__hidden-content\">{{ hiddenText() }}</span>\n}\n<button edsButton variant=\"secondary\" color=\"critical\" size=\"s\" (click)=\"toggleContent()\" [attr.aria-pressed]=\"showContent()\" aria-label=\"Toggle content visibility\">\n SNC\n</button>\n", styles: [".eui-21 :host{display:flex;flex-direction:row;align-items:center;gap:var(--eds-sp-m)}.eui-21 :host .eds-snc__hidden-content{font:var(--eds-f-paragraph-l);letter-spacing:-.04em}\n"], dependencies: [{ kind: "component", type: i1.EdsButton, selector: "button[edsButton]", inputs: ["e2eAttr", "id", "variant", "color", "size", "disabled", "block", "iconButton", "avatarButton", "lineWrap", "rounded", "isChecked"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
34
34
  }
35
35
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EdsSnc, decorators: [{
36
36
  type: Component,
37
37
  args: [{ selector: 'eds-snc', changeDetection: ChangeDetectionStrategy.OnPush, imports: [...EDS_BUTTON], host: {
38
38
  '[class]': 'hostClasses()',
39
39
  '[attr.data-e2e]': 'e2eAttr()',
40
- }, template: "@if (showContent()) {\n <ng-content />\n} @else {\n <span class=\"eds-snc__hidden-content\">{{ hiddenText() }}</span>\n}\n<button edsButton edsButtonSecondary edsCritical edsSizeS\n (click)=\"toggleContent()\"\n [attr.aria-pressed]=\"showContent()\"\n aria-label=\"Toggle content visibility\">\n SNC\n</button>\n", styles: [".eui-21 :host{display:flex;flex-direction:row;align-items:center;gap:var(--eds-sp-m)}.eui-21 :host .eds-snc__hidden-content{font:var(--eds-f-paragraph-l);letter-spacing:-.04em}\n"] }]
40
+ }, template: "@if (showContent()) {\n <ng-content />\n} @else {\n <span class=\"eds-snc__hidden-content\">{{ hiddenText() }}</span>\n}\n<button edsButton variant=\"secondary\" color=\"critical\" size=\"s\" (click)=\"toggleContent()\" [attr.aria-pressed]=\"showContent()\" aria-label=\"Toggle content visibility\">\n SNC\n</button>\n", styles: [".eui-21 :host{display:flex;flex-direction:row;align-items:center;gap:var(--eds-sp-m)}.eui-21 :host .eds-snc__hidden-content{font:var(--eds-f-paragraph-l);letter-spacing:-.04em}\n"] }]
41
41
  }], propDecorators: { e2eAttr: [{ type: i0.Input, args: [{ isSignal: true, alias: "e2eAttr", required: false }] }], dotsLength: [{ type: i0.Input, args: [{ isSignal: true, alias: "dotsLength", required: false }] }], sncToggle: [{ type: i0.Output, args: ["sncToggle"] }] } });
42
42
 
43
43
  /** Convenience array for importing all eds-snc components. */
@@ -48,4 +48,4 @@ const EDS_SNC = [EdsSnc];
48
48
  */
49
49
 
50
50
  export { EDS_SNC, EdsSnc };
51
- //# sourceMappingURL=eui-eds-utilities-eds-snc.mjs.map
51
+ //# sourceMappingURL=eui-eds-eds-snc.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eui-eds-eds-snc.mjs","sources":["../../eds-snc/eds-snc.ts","../../eds-snc/eds-snc.html","../../eds-snc/index.ts","../../eds-snc/eui-eds-eds-snc.ts"],"sourcesContent":["import {\n Component,\n ChangeDetectionStrategy,\n input,\n output,\n signal,\n computed,\n numberAttribute,\n} from '@angular/core';\nimport { EDS_BUTTON } from '@eui/eds/eds-button';\n\n@Component({\n selector: 'eds-snc',\n templateUrl: './eds-snc.html',\n styleUrl: './eds-snc.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [...EDS_BUTTON],\n host: {\n '[class]': 'hostClasses()',\n '[attr.data-e2e]': 'e2eAttr()',\n },\n})\nexport class EdsSnc {\n /** Data attribute value for end-to-end testing identification. */\n e2eAttr = input('eds-snc');\n\n /** Number of dot characters to display when content is concealed. */\n dotsLength = input(8, { transform: (value: number) => Math.max(0, numberAttribute(value)) });\n\n /** Emitted when the content visibility state changes. Payload: new visibility state. */\n sncToggle = output<boolean>();\n\n /** Controls the visibility state of the concealed content. */\n showContent = signal(false);\n\n /** Computed dot text for the hidden state. */\n protected hiddenText = computed(() => {\n const count = this.dotsLength();\n return count > 0 ? '•'.repeat(count) : '';\n });\n\n hostClasses = computed(() => 'eds-snc');\n\n /** Toggle content visibility and emit the new state. */\n toggleContent(): void {\n this.showContent.update(v => !v);\n this.sncToggle.emit(this.showContent());\n }\n}\n","@if (showContent()) {\n <ng-content />\n} @else {\n <span class=\"eds-snc__hidden-content\">{{ hiddenText() }}</span>\n}\n<button edsButton variant=\"secondary\" color=\"critical\" size=\"s\" (click)=\"toggleContent()\" [attr.aria-pressed]=\"showContent()\" aria-label=\"Toggle content visibility\">\n SNC\n</button>\n","import { EdsSnc } from './eds-snc';\n\nexport { EdsSnc };\n\n/** Convenience array for importing all eds-snc components. */\nexport const EDS_SNC = [EdsSnc] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;MAsBa,MAAM,CAAA;AAXnB,IAAA,WAAA,GAAA;;QAaI,IAAA,CAAA,OAAO,GAAG,KAAK,CAAC,SAAS;oFAAC;;QAG1B,IAAA,CAAA,UAAU,GAAG,KAAK,CAAC,CAAC,EAAA,EAAA,IAAA,SAAA,GAAA,EAAA,SAAA,EAAA,YAAA,EAAA,8BAAA,EAAA,CAAA,EAAI,SAAS,EAAE,CAAC,KAAa,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC,EAAA,CAAG;;QAG5F,IAAA,CAAA,SAAS,GAAG,MAAM,EAAW;;QAG7B,IAAA,CAAA,WAAW,GAAG,MAAM,CAAC,KAAK;wFAAC;;AAGjB,QAAA,IAAA,CAAA,UAAU,GAAG,QAAQ,CAAC,MAAK;AACjC,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,EAAE;AAC/B,YAAA,OAAO,KAAK,GAAG,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE;QAC7C,CAAC;uFAAC;AAEF,QAAA,IAAA,CAAA,WAAW,GAAG,QAAQ,CAAC,MAAM,SAAS;wFAAC;AAO1C,IAAA;;IAJG,aAAa,GAAA;AACT,QAAA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAChC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;IAC3C;8GAzBS,MAAM,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAN,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAM,2cCtBnB,yUAQA,EAAA,MAAA,EAAA,CAAA,oLAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,SAAA,EAAA,OAAA,EAAA,MAAA,EAAA,UAAA,EAAA,OAAA,EAAA,YAAA,EAAA,cAAA,EAAA,UAAA,EAAA,SAAA,EAAA,WAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FDca,MAAM,EAAA,UAAA,EAAA,CAAA;kBAXlB,SAAS;+BACI,SAAS,EAAA,eAAA,EAGF,uBAAuB,CAAC,MAAM,WACtC,CAAC,GAAG,UAAU,CAAC,EAAA,IAAA,EAClB;AACF,wBAAA,SAAS,EAAE,eAAe;AAC1B,wBAAA,iBAAiB,EAAE,WAAW;AACjC,qBAAA,EAAA,QAAA,EAAA,yUAAA,EAAA,MAAA,EAAA,CAAA,oLAAA,CAAA,EAAA;;;AEhBL;AACO,MAAM,OAAO,GAAG,CAAC,MAAM;;ACL9B;;AAEG;;;;"}