@eui/eds 22.0.0-alpha.51 → 22.0.0-alpha.53

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 (32) hide show
  1. package/docs/changelog.html +29 -0
  2. package/docs/components/EdsCheckbox.html +2 -2
  3. package/docs/components/EdsRadio.html +15 -2
  4. package/docs/js/search/search_index.js +2 -2
  5. package/docs/json/documentation.json +139 -98
  6. package/docs/llms.txt +3 -3
  7. package/docs/properties.html +1 -1
  8. package/fesm2022/eui-eds-eds-button.mjs +2 -2
  9. package/fesm2022/eui-eds-eds-button.mjs.map +1 -1
  10. package/fesm2022/eui-eds-eds-checkbox.mjs +21 -7
  11. package/fesm2022/eui-eds-eds-checkbox.mjs.map +1 -1
  12. package/fesm2022/eui-eds-eds-datepicker.mjs +2 -2
  13. package/fesm2022/eui-eds-eds-datepicker.mjs.map +1 -1
  14. package/fesm2022/eui-eds-eds-feedback-message.mjs +2 -2
  15. package/fesm2022/eui-eds-eds-feedback-message.mjs.map +1 -1
  16. package/fesm2022/eui-eds-eds-input-button.mjs +2 -2
  17. package/fesm2022/eui-eds-eds-input-button.mjs.map +1 -1
  18. package/fesm2022/eui-eds-eds-input-number.mjs +2 -2
  19. package/fesm2022/eui-eds-eds-input-number.mjs.map +1 -1
  20. package/fesm2022/eui-eds-eds-input-text.mjs +2 -2
  21. package/fesm2022/eui-eds-eds-input-text.mjs.map +1 -1
  22. package/fesm2022/eui-eds-eds-radio.mjs +27 -9
  23. package/fesm2022/eui-eds-eds-radio.mjs.map +1 -1
  24. package/fesm2022/eui-eds-eds-select.mjs +2 -2
  25. package/fesm2022/eui-eds-eds-select.mjs.map +1 -1
  26. package/fesm2022/eui-eds-eds-textarea.mjs +2 -2
  27. package/fesm2022/eui-eds-eds-textarea.mjs.map +1 -1
  28. package/package.json +3 -3
  29. package/types/eui-eds-eds-checkbox.d.ts +7 -1
  30. package/types/eui-eds-eds-checkbox.d.ts.map +1 -1
  31. package/types/eui-eds-eds-radio.d.ts +8 -1
  32. package/types/eui-eds-eds-radio.d.ts.map +1 -1
@@ -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 booleanAttribute,\n numberAttribute,\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/** Size variants supported by the EDS select. */\nexport type EdsSelectSize = 's' | 'm' | 'l';\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@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.aria-invalid]': '_isInvalid() || null',\n '[attr.input-size]': 'size()',\n '[attr.aria-label]': 'ariaLabel()',\n '[attr.data-e2e]': 'e2eAttr()',\n '[attr.open]': '_isOpen() || null',\n '(change)': 'onHostChange($event)',\n // Native <select> has no open/close events, so approximate the dropdown's\n // open state: pointer/keyboard interactions that open the popup set it open;\n // selecting a value (change), losing focus (blur) or Escape close it. This\n // drives the `open` host attribute so the caret flips back on close/select.\n '(mousedown)': '_toggleOpen()',\n '(keydown)': '_onKeydown($event)',\n '(blur)': '_setOpen(false)',\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 * Size variant of the select. Reflected as the `size` host attribute.\n * @default 'm'\n */\n size = input<EdsSelectSize>('m');\n\n /**\n * Number of visible option rows — maps to the native `<select size=\"N\">`\n * attribute to render the control as a multi-row list box. Omit (or 1) for\n * the default single-row dropdown.\n *\n * Note: this replaces the former direct use of the native `size` attribute,\n * which is now reserved for the `s` / `m` / `l` size variant.\n */\n rowCount = input<number | undefined>(undefined, { transform: numberAttribute });\n\n /**\n * Aria-label for accessibility. Reflected as the host `aria-label` attribute only when set,\n * so an explicit `<label for>` association remains the primary labelling mechanism.\n * @default null\n */\n ariaLabel = input<string | null>(null);\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 /** Approximated open state of the native dropdown — reflected as the `open` host attribute. */\n protected _isOpen = 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 // Reflect `rowCount` onto the native `<select size=\"N\">` attribute (multi-row\n // list box). A missing/<=1 value removes it, keeping the single-row dropdown.\n private _rowCountEffect = effect(() => {\n const rows = this.rowCount();\n const el = this._elementRef.nativeElement;\n if (rows && rows > 1) {\n this._renderer.setAttribute(el, 'size', String(rows));\n } else {\n this._renderer.removeAttribute(el, 'size');\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 // Selecting an option closes the native popup.\n this._setOpen(false);\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 /** Sets the approximated open state (no-op when readonly/disabled). */\n protected _setOpen(open: boolean): void {\n if (open && (this.readonly() || this._elementRef.nativeElement.disabled)) {\n return;\n }\n this._isOpen.set(open);\n }\n\n /**\n * Toggles the approximated open state on pointer interaction. A native <select>\n * opens on the first click and closes on the next, so mirror that by toggling\n * rather than forcing open — this keeps the caret in sync when the user clicks\n * the trigger again to dismiss the popup without selecting an option.\n */\n protected _toggleOpen(): void {\n this._setOpen(!this._isOpen());\n }\n\n /**\n * Keyboard open/close heuristic: keys that open the native popup (Enter, Space,\n * Arrow Up/Down, Alt+Arrow) mark it open; Escape/Tab close it.\n */\n protected _onKeydown(event: KeyboardEvent): void {\n const key = event.key;\n if (key === 'Escape' || key === 'Tab') {\n this._setOpen(false);\n } else if (key === 'Enter' || key === ' ' || key === 'ArrowUp' || key === 'ArrowDown') {\n // Toggle on Enter/Space (they both open and close), open on arrows.\n if (key === 'Enter' || key === ' ') {\n this._setOpen(!this._isOpen());\n } else {\n this._setOpen(true);\n }\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@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@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@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@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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"}
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 numberAttribute,\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/** Size variants supported by the EDS select. */\nexport type EdsSelectSize = 's' | 'm' | 'l';\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@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.aria-invalid]': '_isInvalid() || null',\n '[attr.input-size]': 'size()',\n '[attr.aria-label]': 'ariaLabel()',\n '[attr.data-e2e]': 'e2eAttr()',\n '[attr.open]': '_isOpen() || null',\n '(change)': 'onHostChange($event)',\n // Native <select> has no open/close events, so approximate the dropdown's\n // open state: pointer/keyboard interactions that open the popup set it open;\n // selecting a value (change), losing focus (blur) or Escape close it. This\n // drives the `open` host attribute so the caret flips back on close/select.\n '(mousedown)': '_toggleOpen()',\n '(keydown)': '_onKeydown($event)',\n '(blur)': '_setOpen(false)',\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 * Size variant of the select. Reflected as the `size` host attribute.\n * @default 'm'\n */\n size = input<EdsSelectSize>('m');\n\n /**\n * Number of visible option rows — maps to the native `<select size=\"N\">`\n * attribute to render the control as a multi-row list box. Omit (or 1) for\n * the default single-row dropdown.\n *\n * Note: this replaces the former direct use of the native `size` attribute,\n * which is now reserved for the `s` / `m` / `l` size variant.\n */\n rowCount = input<number | undefined>(undefined, { transform: numberAttribute });\n\n /**\n * Aria-label for accessibility. Reflected as the host `aria-label` attribute only when set,\n * so an explicit `<label for>` association remains the primary labelling mechanism.\n * @default null\n */\n ariaLabel = input<string | null>(null);\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 /** Approximated open state of the native dropdown — reflected as the `open` host attribute. */\n protected _isOpen = 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 // Reflect `rowCount` onto the native `<select size=\"N\">` attribute (multi-row\n // list box). A missing/<=1 value removes it, keeping the single-row dropdown.\n private _rowCountEffect = effect(() => {\n const rows = this.rowCount();\n const el = this._elementRef.nativeElement;\n if (rows && rows > 1) {\n this._renderer.setAttribute(el, 'size', String(rows));\n } else {\n this._renderer.removeAttribute(el, 'size');\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 // Selecting an option closes the native popup.\n this._setOpen(false);\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 /** Sets the approximated open state (no-op when readonly/disabled). */\n protected _setOpen(open: boolean): void {\n if (open && (this.readonly() || this._elementRef.nativeElement.disabled)) {\n return;\n }\n this._isOpen.set(open);\n }\n\n /**\n * Toggles the approximated open state on pointer interaction. A native <select>\n * opens on the first click and closes on the next, so mirror that by toggling\n * rather than forcing open — this keeps the caret in sync when the user clicks\n * the trigger again to dismiss the popup without selecting an option.\n */\n protected _toggleOpen(): void {\n this._setOpen(!this._isOpen());\n }\n\n /**\n * Keyboard open/close heuristic: keys that open the native popup (Enter, Space,\n * Arrow Up/Down, Alt+Arrow) mark it open; Escape/Tab close it.\n */\n protected _onKeydown(event: KeyboardEvent): void {\n const key = event.key;\n if (key === 'Escape' || key === 'Tab') {\n this._setOpen(false);\n } else if (key === 'Enter' || key === ' ' || key === 'ArrowUp' || key === 'ArrowDown') {\n // Toggle on Enter/Space (they both open and close), open on arrows.\n if (key === 'Enter' || key === ' ') {\n this._setOpen(!this._isOpen());\n } else {\n this._setOpen(true);\n }\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@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@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@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@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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"}
@@ -70,7 +70,7 @@ class EdsTextarea {
70
70
  this._onChange(target.value);
71
71
  }
72
72
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EdsTextarea, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
73
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.2", type: EdsTextarea, isStandalone: true, selector: "textarea[edsTextarea]", inputs: { e2eAttr: { classPropertyName: "e2eAttr", publicName: "e2eAttr", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", 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 } }, host: { listeners: { "input": "onHostInput($event)", "blur": "onTouched()" }, properties: { "attr.invalid": "_isInvalid || null", "attr.aria-invalid": "_isInvalid || null", "attr.data-e2e": "e2eAttr()", "disabled": "disabled()", "attr.readonly": "readonly() || null" }, classAttribute: "eds-textarea" }, ngImport: i0, template: '<ng-content/>', isInline: true, styles: [".eui-21 :host.eds-textarea{--_eds-input-height: var(--eds-si-4xl);--_eds-input-pad-v: var(--eds-sp-xs);--_eds-input-pad-h: var(--eds-sp-s);--_eds-input-font: var(--eds-f-paragraph-m);--_eds-input-font-weight: var(--eds-f-w-regular);--_eds-input-placeholder-font: var(--eds-f-placeholder-m);--_eds-input-placeholder-font-weight: var(--eds-f-w-light);font:var(--_eds-input-font);font-weight:var(--_eds-input-font-weight);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);height:var(--_eds-input-height);padding:var(--_eds-input-pad-v) var(--_eds-input-pad-h);width:100%}.eui-21 :host.eds-textarea:focus-visible:not([readonly]){outline:var(--eds-bw-s) solid var(--eds-c-border-primary)!important;outline-offset:2px!important}.eui-21 :host.eds-textarea:not([hidden]){display:block}.eui-21 :host.eds-textarea::placeholder{color:var(--eds-c-foreground-placeholder);font:var(--_eds-input-placeholder-font);font-weight:var(--_eds-input-placeholder-font-weight);opacity:1}.eui-21 :host.eds-textarea[readonly]{background-color:transparent;border-color:transparent;box-shadow:none;padding-left:0;padding-right:0;pointer-events:none}.eui-21 :host.eds-textarea:disabled:not([readonly]),.eui-21 :host.eds-textarea--disabled:not([readonly]){background-color:var(--eds-c-surface-disabled-subtle);border-color:var(--eds-c-border-disabled);color:var(--eds-c-foreground-disabled);pointer-events:none}.eui-21 :host.eds-textarea[invalid]:focus-visible:not([readonly]){outline:var(--eds-bw-s) solid var(--eds-c-border-critical)!important;outline-offset:2px!important}.eui-21 :host.eds-textarea--loading{padding-right:var(--eds-sp-7xl)}.eui-21 :host.eds-textarea--loading-icon{align-items:center;display:flex}.eui-21 :host.eds-textarea--loading-icon:after,.eui-21 :host.eds-textarea--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-textarea--loading-icon:before{border:var(--eds-sp-3xs) solid rgba(0,0,0,.35);border-radius:100%}.eui-21 :host.eds-textarea--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-textarea--loading-icon--sm:after,.eui-21 :host.eds-textarea--loading-icon--sm:before{height:var(--eds-sp-m);width:var(--eds-sp-m)}@keyframes loading{to{transform:rotate(360deg)}}.eui-21 :host.eds-textarea:hover:not([aria-disabled=true]):not(:disabled):not([aria-disabled=true]):not(:checked):not(:disabled):not([readonly]):not([indeterminate=true]):not([invalid=true]){border-color:var(--eds-c-border)}.eui-21 :host.eds-textarea:hover:not([aria-disabled=true]):not(:disabled).eds-checkbox:checked:not([readonly]):not([invalid=true]),.eui-21 :host.eds-textarea:hover:not([aria-disabled=true]):not(:disabled).eds-checkbox[checked=true]:not([readonly]):not([invalid=true]),.eui-21 :host.eds-textarea:hover:not([aria-disabled=true]):not(:disabled).eds-checkbox[indeterminate=true]:not([readonly]){background-color:var(--eds-c-surface-primary--hover)}.eui-21 :host.eds-textarea:hover:not([aria-disabled=true]):not(:disabled).eds-radio:checked:not([readonly]):not([invalid=true]){background-color:var(--eds-c-surface-elevation);border-color:var(--eds-c-border-primary--hover)}.eui-21 :host.eds-textarea{height:auto;min-height:calc(var(--eds-sp-m) + var(--_eds-input-pad-v) * 2 + 10px);resize:vertical}.eui-21 :host.eds-textarea[readonly]{pointer-events:auto;resize:none}.eui-21 :host.eds-textarea[readonly]::placeholder{color:transparent}.eui-21 :host.eds-textarea[invalid]{border-color:var(--eds-c-border-critical)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
73
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.2", type: EdsTextarea, isStandalone: true, selector: "textarea[edsTextarea]", inputs: { e2eAttr: { classPropertyName: "e2eAttr", publicName: "e2eAttr", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", 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 } }, host: { listeners: { "input": "onHostInput($event)", "blur": "onTouched()" }, properties: { "attr.invalid": "_isInvalid || null", "attr.aria-invalid": "_isInvalid || null", "attr.data-e2e": "e2eAttr()", "disabled": "disabled()", "attr.readonly": "readonly() || null" }, classAttribute: "eds-textarea" }, ngImport: i0, template: '<ng-content/>', isInline: true, styles: [".eui-21 :host.eds-textarea{--_eds-input-height: var(--eds-si-4xl);--_eds-input-pad-v: var(--eds-sp-xs);--_eds-input-pad-h: var(--eds-sp-s);--_eds-input-font: var(--eds-f-paragraph-m);--_eds-input-font-weight: var(--eds-f-w-regular);--_eds-input-placeholder-font: var(--eds-f-placeholder-m);--_eds-input-placeholder-font-weight: var(--eds-f-w-light);font:var(--_eds-input-font);font-weight:var(--_eds-input-font-weight);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);height:var(--_eds-input-height);padding:var(--_eds-input-pad-v) var(--_eds-input-pad-h);width:100%}.eui-21 :host.eds-textarea:focus-visible:not([readonly]){outline:var(--eds-bw-s) solid var(--eds-c-border-primary)!important;outline-offset:2px!important}.eui-21 :host.eds-textarea:not([hidden]){display:block}.eui-21 :host.eds-textarea::placeholder{color:var(--eds-c-foreground-placeholder);font:var(--_eds-input-placeholder-font);font-weight:var(--_eds-input-placeholder-font-weight);opacity:1}.eui-21 :host.eds-textarea[readonly]{background-color:transparent;border-color:transparent;box-shadow:none;padding-left:0;padding-right:0;pointer-events:none}.eui-21 :host.eds-textarea:disabled:not([readonly]),.eui-21 :host.eds-textarea--disabled:not([readonly]){background-color:var(--eds-c-surface-disabled-subtle);border-color:var(--eds-c-border-disabled);color:var(--eds-c-foreground-disabled);pointer-events:none}.eui-21 :host.eds-textarea[invalid]:focus-visible:not([readonly]){outline:var(--eds-bw-s) solid var(--eds-c-focus-critical)!important;outline-offset:2px!important}.eui-21 :host.eds-textarea--loading{padding-right:var(--eds-sp-7xl)}.eui-21 :host.eds-textarea--loading-icon{align-items:center;display:flex}.eui-21 :host.eds-textarea--loading-icon:after,.eui-21 :host.eds-textarea--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-textarea--loading-icon:before{border:var(--eds-sp-3xs) solid rgba(0,0,0,.35);border-radius:100%}.eui-21 :host.eds-textarea--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-textarea--loading-icon--sm:after,.eui-21 :host.eds-textarea--loading-icon--sm:before{height:var(--eds-sp-m);width:var(--eds-sp-m)}@keyframes loading{to{transform:rotate(360deg)}}.eui-21 :host.eds-textarea:hover:not([aria-disabled=true]):not(:disabled):not([aria-disabled=true]):not(:checked):not(:disabled):not([readonly]):not([indeterminate=true]):not([invalid=true]){border-color:var(--eds-c-border)}.eui-21 :host.eds-textarea:hover:not([aria-disabled=true]):not(:disabled).eds-checkbox:checked:not([readonly]):not([invalid=true]),.eui-21 :host.eds-textarea:hover:not([aria-disabled=true]):not(:disabled).eds-checkbox[checked=true]:not([readonly]):not([invalid=true]),.eui-21 :host.eds-textarea:hover:not([aria-disabled=true]):not(:disabled).eds-checkbox[indeterminate=true]:not([readonly]){background-color:var(--eds-c-surface-primary--hover)}.eui-21 :host.eds-textarea:hover:not([aria-disabled=true]):not(:disabled).eds-radio:checked:not([readonly]):not([data-readonly]):not([invalid=true]):not([invalid]){background-color:var(--eds-c-surface-elevation);border-color:var(--eds-c-border-primary--hover)}.eui-21 :host.eds-textarea:hover:not([aria-disabled=true]):not(:disabled).eds-radio:checked:not([readonly]):not([data-readonly]):not([invalid=true]):not([invalid]):before{background-color:var(--eds-c-surface-primary--hover)}.eui-21 :host.eds-textarea{height:auto;min-height:calc(var(--eds-sp-m) + var(--_eds-input-pad-v) * 2 + 10px);resize:vertical}.eui-21 :host.eds-textarea[readonly]{pointer-events:auto;resize:none}.eui-21 :host.eds-textarea[readonly]::placeholder{color:transparent}.eui-21 :host.eds-textarea[invalid]{border-color:var(--eds-c-border-critical)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
74
74
  }
75
75
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EdsTextarea, decorators: [{
76
76
  type: Component,
@@ -83,7 +83,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImpor
83
83
  '[attr.readonly]': 'readonly() || null',
84
84
  '(input)': 'onHostInput($event)',
85
85
  '(blur)': 'onTouched()',
86
- }, styles: [".eui-21 :host.eds-textarea{--_eds-input-height: var(--eds-si-4xl);--_eds-input-pad-v: var(--eds-sp-xs);--_eds-input-pad-h: var(--eds-sp-s);--_eds-input-font: var(--eds-f-paragraph-m);--_eds-input-font-weight: var(--eds-f-w-regular);--_eds-input-placeholder-font: var(--eds-f-placeholder-m);--_eds-input-placeholder-font-weight: var(--eds-f-w-light);font:var(--_eds-input-font);font-weight:var(--_eds-input-font-weight);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);height:var(--_eds-input-height);padding:var(--_eds-input-pad-v) var(--_eds-input-pad-h);width:100%}.eui-21 :host.eds-textarea:focus-visible:not([readonly]){outline:var(--eds-bw-s) solid var(--eds-c-border-primary)!important;outline-offset:2px!important}.eui-21 :host.eds-textarea:not([hidden]){display:block}.eui-21 :host.eds-textarea::placeholder{color:var(--eds-c-foreground-placeholder);font:var(--_eds-input-placeholder-font);font-weight:var(--_eds-input-placeholder-font-weight);opacity:1}.eui-21 :host.eds-textarea[readonly]{background-color:transparent;border-color:transparent;box-shadow:none;padding-left:0;padding-right:0;pointer-events:none}.eui-21 :host.eds-textarea:disabled:not([readonly]),.eui-21 :host.eds-textarea--disabled:not([readonly]){background-color:var(--eds-c-surface-disabled-subtle);border-color:var(--eds-c-border-disabled);color:var(--eds-c-foreground-disabled);pointer-events:none}.eui-21 :host.eds-textarea[invalid]:focus-visible:not([readonly]){outline:var(--eds-bw-s) solid var(--eds-c-border-critical)!important;outline-offset:2px!important}.eui-21 :host.eds-textarea--loading{padding-right:var(--eds-sp-7xl)}.eui-21 :host.eds-textarea--loading-icon{align-items:center;display:flex}.eui-21 :host.eds-textarea--loading-icon:after,.eui-21 :host.eds-textarea--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-textarea--loading-icon:before{border:var(--eds-sp-3xs) solid rgba(0,0,0,.35);border-radius:100%}.eui-21 :host.eds-textarea--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-textarea--loading-icon--sm:after,.eui-21 :host.eds-textarea--loading-icon--sm:before{height:var(--eds-sp-m);width:var(--eds-sp-m)}@keyframes loading{to{transform:rotate(360deg)}}.eui-21 :host.eds-textarea:hover:not([aria-disabled=true]):not(:disabled):not([aria-disabled=true]):not(:checked):not(:disabled):not([readonly]):not([indeterminate=true]):not([invalid=true]){border-color:var(--eds-c-border)}.eui-21 :host.eds-textarea:hover:not([aria-disabled=true]):not(:disabled).eds-checkbox:checked:not([readonly]):not([invalid=true]),.eui-21 :host.eds-textarea:hover:not([aria-disabled=true]):not(:disabled).eds-checkbox[checked=true]:not([readonly]):not([invalid=true]),.eui-21 :host.eds-textarea:hover:not([aria-disabled=true]):not(:disabled).eds-checkbox[indeterminate=true]:not([readonly]){background-color:var(--eds-c-surface-primary--hover)}.eui-21 :host.eds-textarea:hover:not([aria-disabled=true]):not(:disabled).eds-radio:checked:not([readonly]):not([invalid=true]){background-color:var(--eds-c-surface-elevation);border-color:var(--eds-c-border-primary--hover)}.eui-21 :host.eds-textarea{height:auto;min-height:calc(var(--eds-sp-m) + var(--_eds-input-pad-v) * 2 + 10px);resize:vertical}.eui-21 :host.eds-textarea[readonly]{pointer-events:auto;resize:none}.eui-21 :host.eds-textarea[readonly]::placeholder{color:transparent}.eui-21 :host.eds-textarea[invalid]{border-color:var(--eds-c-border-critical)}\n"] }]
86
+ }, styles: [".eui-21 :host.eds-textarea{--_eds-input-height: var(--eds-si-4xl);--_eds-input-pad-v: var(--eds-sp-xs);--_eds-input-pad-h: var(--eds-sp-s);--_eds-input-font: var(--eds-f-paragraph-m);--_eds-input-font-weight: var(--eds-f-w-regular);--_eds-input-placeholder-font: var(--eds-f-placeholder-m);--_eds-input-placeholder-font-weight: var(--eds-f-w-light);font:var(--_eds-input-font);font-weight:var(--_eds-input-font-weight);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);height:var(--_eds-input-height);padding:var(--_eds-input-pad-v) var(--_eds-input-pad-h);width:100%}.eui-21 :host.eds-textarea:focus-visible:not([readonly]){outline:var(--eds-bw-s) solid var(--eds-c-border-primary)!important;outline-offset:2px!important}.eui-21 :host.eds-textarea:not([hidden]){display:block}.eui-21 :host.eds-textarea::placeholder{color:var(--eds-c-foreground-placeholder);font:var(--_eds-input-placeholder-font);font-weight:var(--_eds-input-placeholder-font-weight);opacity:1}.eui-21 :host.eds-textarea[readonly]{background-color:transparent;border-color:transparent;box-shadow:none;padding-left:0;padding-right:0;pointer-events:none}.eui-21 :host.eds-textarea:disabled:not([readonly]),.eui-21 :host.eds-textarea--disabled:not([readonly]){background-color:var(--eds-c-surface-disabled-subtle);border-color:var(--eds-c-border-disabled);color:var(--eds-c-foreground-disabled);pointer-events:none}.eui-21 :host.eds-textarea[invalid]:focus-visible:not([readonly]){outline:var(--eds-bw-s) solid var(--eds-c-focus-critical)!important;outline-offset:2px!important}.eui-21 :host.eds-textarea--loading{padding-right:var(--eds-sp-7xl)}.eui-21 :host.eds-textarea--loading-icon{align-items:center;display:flex}.eui-21 :host.eds-textarea--loading-icon:after,.eui-21 :host.eds-textarea--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-textarea--loading-icon:before{border:var(--eds-sp-3xs) solid rgba(0,0,0,.35);border-radius:100%}.eui-21 :host.eds-textarea--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-textarea--loading-icon--sm:after,.eui-21 :host.eds-textarea--loading-icon--sm:before{height:var(--eds-sp-m);width:var(--eds-sp-m)}@keyframes loading{to{transform:rotate(360deg)}}.eui-21 :host.eds-textarea:hover:not([aria-disabled=true]):not(:disabled):not([aria-disabled=true]):not(:checked):not(:disabled):not([readonly]):not([indeterminate=true]):not([invalid=true]){border-color:var(--eds-c-border)}.eui-21 :host.eds-textarea:hover:not([aria-disabled=true]):not(:disabled).eds-checkbox:checked:not([readonly]):not([invalid=true]),.eui-21 :host.eds-textarea:hover:not([aria-disabled=true]):not(:disabled).eds-checkbox[checked=true]:not([readonly]):not([invalid=true]),.eui-21 :host.eds-textarea:hover:not([aria-disabled=true]):not(:disabled).eds-checkbox[indeterminate=true]:not([readonly]){background-color:var(--eds-c-surface-primary--hover)}.eui-21 :host.eds-textarea:hover:not([aria-disabled=true]):not(:disabled).eds-radio:checked:not([readonly]):not([data-readonly]):not([invalid=true]):not([invalid]){background-color:var(--eds-c-surface-elevation);border-color:var(--eds-c-border-primary--hover)}.eui-21 :host.eds-textarea:hover:not([aria-disabled=true]):not(:disabled).eds-radio:checked:not([readonly]):not([data-readonly]):not([invalid=true]):not([invalid]):before{background-color:var(--eds-c-surface-primary--hover)}.eui-21 :host.eds-textarea{height:auto;min-height:calc(var(--eds-sp-m) + var(--_eds-input-pad-v) * 2 + 10px);resize:vertical}.eui-21 :host.eds-textarea[readonly]{pointer-events:auto;resize:none}.eui-21 :host.eds-textarea[readonly]::placeholder{color:transparent}.eui-21 :host.eds-textarea[invalid]{border-color:var(--eds-c-border-critical)}\n"] }]
87
87
  }], ctorParameters: () => [], propDecorators: { e2eAttr: [{ type: i0.Input, args: [{ isSignal: true, alias: "e2eAttr", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], readonly: [{ type: i0.Input, args: [{ isSignal: true, alias: "readonly", required: false }] }], isInvalid: [{ type: i0.Input, args: [{ isSignal: true, alias: "isInvalid", required: false }] }] } });
88
88
 
89
89
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"eui-eds-eds-textarea.mjs","sources":["../../eds-textarea/eds-textarea.ts","../../eds-textarea/eds-auto-resize.directive.ts","../../eds-textarea/index.ts","../../eds-textarea/eui-eds-eds-textarea.ts"],"sourcesContent":["import {\n Component,\n ChangeDetectionStrategy,\n ElementRef,\n inject,\n input,\n booleanAttribute,\n DoCheck,\n} from '@angular/core';\nimport { ControlValueAccessor, NgControl } from '@angular/forms';\n\n/**\n * @description\n * EDS Textarea component — a styled native `<textarea>` element.\n * Integrates with Angular forms and supports validation, readonly, and disabled states.\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'textarea[edsTextarea]',\n template: '<ng-content/>',\n styleUrl: './eds-textarea.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'eds-textarea',\n '[attr.invalid]': '_isInvalid || null',\n '[attr.aria-invalid]': '_isInvalid || null',\n '[attr.data-e2e]': 'e2eAttr()',\n '[disabled]': 'disabled()',\n '[attr.readonly]': 'readonly() || null',\n '(input)': 'onHostInput($event)',\n '(blur)': 'onTouched()',\n },\n})\nexport class EdsTextarea implements ControlValueAccessor, DoCheck {\n /**\n * Data attribute value for end-to-end testing identification.\n * @default 'eds-textarea'\n */\n e2eAttr = input('eds-textarea');\n\n /**\n * Controls whether the textarea is disabled.\n * @default false\n */\n disabled = input(false, { transform: booleanAttribute });\n\n /**\n * Controls whether the textarea is readonly.\n * @default false\n */\n readonly = input(false, { transform: booleanAttribute });\n\n /**\n * Controls whether the textarea shows an invalid/error state.\n * @default false\n */\n isInvalid = input(false, { transform: booleanAttribute });\n\n private _elementRef: ElementRef<HTMLTextAreaElement> = inject(ElementRef);\n private _ngControl = inject(NgControl, { optional: true, self: true });\n protected _isInvalid = false;\n\n constructor() {\n if (this._ngControl) {\n this._ngControl.valueAccessor = this;\n }\n }\n\n ngDoCheck(): void {\n if (this._ngControl) {\n this._isInvalid = this._ngControl.invalid && this._ngControl.touched;\n } else {\n this._isInvalid = this.isInvalid();\n }\n }\n\n // --- ControlValueAccessor ---\n\n writeValue(value: string): void {\n this._elementRef.nativeElement.value = value ?? '';\n }\n\n registerOnChange(fn: (value: string) => void): void {\n this._onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState(_isDisabled: boolean): void {\n // Disabled is handled via the input signal binding on the host element.\n }\n\n // --- Event handlers ---\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n protected onTouched: () => void = () => { /* noop */ };\n\n protected onHostInput(event: Event): void {\n const target = event.target as HTMLTextAreaElement;\n this._onChange(target.value);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n private _onChange: (value: string) => void = () => { /* noop */ };\n}\n","import {\n Directive,\n OnInit,\n OnDestroy,\n AfterViewInit,\n ElementRef,\n NgZone,\n Renderer2,\n inject,\n input,\n effect,\n numberAttribute,\n booleanAttribute,\n} from '@angular/core';\nimport { NgControl } from '@angular/forms';\nimport { Subject } from 'rxjs';\nimport { startWith, takeUntil } from 'rxjs/operators';\n\n/**\n * Directive that automatically adjusts the height of a textarea based on its content.\n * Supports minimum and maximum row constraints and can be enabled/disabled dynamically.\n */\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'textarea[edsAutoResize]',\n host: {\n '(input)': 'resize()',\n },\n})\nexport class EdsAutoResizeDirective implements OnInit, AfterViewInit, OnDestroy {\n /** Controls whether auto-resize is enabled. */\n edsAutoResize = input(true, { transform: booleanAttribute });\n\n /** Minimum number of rows. */\n minRows = input(1, { transform: numberAttribute });\n\n /** Maximum number of rows (0 = unlimited). */\n maxRows = input(0, { transform: numberAttribute });\n\n private _el = inject(ElementRef);\n private _renderer = inject(Renderer2);\n private _control = inject(NgControl, { optional: true });\n private _ngZone = inject(NgZone);\n private _destroy$ = new Subject<void>();\n private _observer: MutationObserver;\n private _resizeObserver: ResizeObserver;\n private _lastObservedWidth = -1;\n private _pendingResize: number | null = null;\n\n constructor() {\n effect(() => {\n const enable = this.edsAutoResize();\n this._renderer.setProperty(this._el.nativeElement, 'rows', this.minRows());\n this._renderer.setStyle(this._el.nativeElement, 'overflow', enable ? 'hidden' : '');\n this._renderer.setStyle(this._el.nativeElement, 'resize', enable ? 'none' : '');\n if (enable) {\n this.resize();\n }\n });\n }\n\n ngOnInit(): void {\n this._setupResizeObserver();\n\n this._observer = new MutationObserver((mutations) => {\n for (const mutation of mutations) {\n if (mutation.type === 'attributes' && mutation.attributeName === 'readonly') {\n this.resize();\n }\n }\n });\n this._observer.observe(this._el.nativeElement, { attributes: true });\n }\n\n ngAfterViewInit(): void {\n if (this.edsAutoResize()) {\n if (this._control) {\n this._control.valueChanges\n .pipe(takeUntil(this._destroy$), startWith(''))\n .subscribe(() => this.resize());\n } else {\n this.resize();\n }\n }\n }\n\n ngOnDestroy(): void {\n this._destroy$.next();\n this._destroy$.complete();\n this._observer?.disconnect();\n this._resizeObserver?.disconnect();\n if (this._pendingResize !== null) {\n cancelAnimationFrame(this._pendingResize);\n }\n }\n\n /** Calculates and applies the appropriate height based on content. */\n resize(): void {\n if (!this.edsAutoResize()) return;\n\n const el = this._el.nativeElement as HTMLTextAreaElement;\n const parent = el.parentNode;\n if (!parent) return;\n\n // A zero-width element (hidden panel, closed side container e.g. eui-app-side-container) cannot be measured\n // reliably; the ResizeObserver re-runs resize() once it gets a real width.\n if (el.offsetWidth === 0) return;\n\n // Clone to measure\n const clone = el.cloneNode(true) as HTMLTextAreaElement;\n clone.style.width = el.offsetWidth + 'px';\n clone.style.visibility = 'hidden';\n clone.style.position = 'absolute';\n clone.textContent = el.value;\n parent.appendChild(clone);\n clone.style.overflowY = 'hidden';\n clone.style.height = 'auto';\n\n let scrollHeight = clone.scrollHeight;\n\n // Enforce maxRows\n if (this.maxRows() > 0) {\n const lineHeight = parseInt(getComputedStyle(clone).lineHeight, 10) || 20;\n const maxHeight = lineHeight * this.maxRows();\n scrollHeight = Math.min(scrollHeight, maxHeight);\n if (scrollHeight >= maxHeight) {\n this._renderer.removeStyle(el, 'overflow');\n } else {\n this._renderer.setStyle(el, 'overflow', 'hidden');\n }\n }\n\n const height = scrollHeight <= 0 ? 'auto' : `${scrollHeight}px`;\n parent.removeChild(clone);\n this._renderer.setStyle(el, 'height', height);\n }\n\n /**\n * Observes the textarea's width and re-runs the height calculation when it changes,\n * covering cases the event-based triggers miss: a container that becomes visible after\n * the initial (zero-width) measurement, resizable panels being dragged, or any layout\n * change that reflows the textarea without a window resize.\n *\n * Only width changes are acted on: resize() itself sets the element's height, so\n * reacting to height changes would make the observer re-trigger its own work.\n * The observer runs outside the Angular zone as resize() is pure DOM manipulation,\n * and callbacks are coalesced through requestAnimationFrame.\n */\n private _setupResizeObserver(): void {\n if (typeof ResizeObserver === 'undefined') {\n return;\n }\n this._ngZone.runOutsideAngular(() => {\n this._resizeObserver = new ResizeObserver((entries) => {\n const width = entries[entries.length - 1].contentRect.width;\n if (width === this._lastObservedWidth) {\n return;\n }\n this._lastObservedWidth = width;\n if (width === 0) {\n return;\n }\n this._scheduleResize();\n });\n this._resizeObserver.observe(this._el.nativeElement);\n });\n }\n\n /** Coalesces resize requests into at most one measurement per animation frame. */\n private _scheduleResize(): void {\n if (this._pendingResize !== null) {\n return;\n }\n this._pendingResize = requestAnimationFrame(() => {\n this._pendingResize = null;\n this.resize();\n });\n }\n}\n","import { EdsTextarea } from './eds-textarea';\nimport { EdsAutoResizeDirective } from './eds-auto-resize.directive';\n\nexport { EdsTextarea, EdsAutoResizeDirective };\n\n/** Convenience array for importing eds-textarea with auto-resize. */\nexport const EDS_TEXTAREA = [\n EdsTextarea,\n EdsAutoResizeDirective,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"eui-eds-eds-textarea.mjs","sources":["../../eds-textarea/eds-textarea.ts","../../eds-textarea/eds-auto-resize.directive.ts","../../eds-textarea/index.ts","../../eds-textarea/eui-eds-eds-textarea.ts"],"sourcesContent":["import {\n Component,\n ChangeDetectionStrategy,\n ElementRef,\n inject,\n input,\n booleanAttribute,\n DoCheck,\n} from '@angular/core';\nimport { ControlValueAccessor, NgControl } from '@angular/forms';\n\n/**\n * @description\n * EDS Textarea component — a styled native `<textarea>` element.\n * Integrates with Angular forms and supports validation, readonly, and disabled states.\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'textarea[edsTextarea]',\n template: '<ng-content/>',\n styleUrl: './eds-textarea.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'eds-textarea',\n '[attr.invalid]': '_isInvalid || null',\n '[attr.aria-invalid]': '_isInvalid || null',\n '[attr.data-e2e]': 'e2eAttr()',\n '[disabled]': 'disabled()',\n '[attr.readonly]': 'readonly() || null',\n '(input)': 'onHostInput($event)',\n '(blur)': 'onTouched()',\n },\n})\nexport class EdsTextarea implements ControlValueAccessor, DoCheck {\n /**\n * Data attribute value for end-to-end testing identification.\n * @default 'eds-textarea'\n */\n e2eAttr = input('eds-textarea');\n\n /**\n * Controls whether the textarea is disabled.\n * @default false\n */\n disabled = input(false, { transform: booleanAttribute });\n\n /**\n * Controls whether the textarea is readonly.\n * @default false\n */\n readonly = input(false, { transform: booleanAttribute });\n\n /**\n * Controls whether the textarea shows an invalid/error state.\n * @default false\n */\n isInvalid = input(false, { transform: booleanAttribute });\n\n private _elementRef: ElementRef<HTMLTextAreaElement> = inject(ElementRef);\n private _ngControl = inject(NgControl, { optional: true, self: true });\n protected _isInvalid = false;\n\n constructor() {\n if (this._ngControl) {\n this._ngControl.valueAccessor = this;\n }\n }\n\n ngDoCheck(): void {\n if (this._ngControl) {\n this._isInvalid = this._ngControl.invalid && this._ngControl.touched;\n } else {\n this._isInvalid = this.isInvalid();\n }\n }\n\n // --- ControlValueAccessor ---\n\n writeValue(value: string): void {\n this._elementRef.nativeElement.value = value ?? '';\n }\n\n registerOnChange(fn: (value: string) => void): void {\n this._onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState(_isDisabled: boolean): void {\n // Disabled is handled via the input signal binding on the host element.\n }\n\n // --- Event handlers ---\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n protected onTouched: () => void = () => { /* noop */ };\n\n protected onHostInput(event: Event): void {\n const target = event.target as HTMLTextAreaElement;\n this._onChange(target.value);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n private _onChange: (value: string) => void = () => { /* noop */ };\n}\n","import {\n Directive,\n OnInit,\n OnDestroy,\n AfterViewInit,\n ElementRef,\n NgZone,\n Renderer2,\n inject,\n input,\n effect,\n numberAttribute,\n booleanAttribute,\n} from '@angular/core';\nimport { NgControl } from '@angular/forms';\nimport { Subject } from 'rxjs';\nimport { startWith, takeUntil } from 'rxjs/operators';\n\n/**\n * Directive that automatically adjusts the height of a textarea based on its content.\n * Supports minimum and maximum row constraints and can be enabled/disabled dynamically.\n */\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'textarea[edsAutoResize]',\n host: {\n '(input)': 'resize()',\n },\n})\nexport class EdsAutoResizeDirective implements OnInit, AfterViewInit, OnDestroy {\n /** Controls whether auto-resize is enabled. */\n edsAutoResize = input(true, { transform: booleanAttribute });\n\n /** Minimum number of rows. */\n minRows = input(1, { transform: numberAttribute });\n\n /** Maximum number of rows (0 = unlimited). */\n maxRows = input(0, { transform: numberAttribute });\n\n private _el = inject(ElementRef);\n private _renderer = inject(Renderer2);\n private _control = inject(NgControl, { optional: true });\n private _ngZone = inject(NgZone);\n private _destroy$ = new Subject<void>();\n private _observer: MutationObserver;\n private _resizeObserver: ResizeObserver;\n private _lastObservedWidth = -1;\n private _pendingResize: number | null = null;\n\n constructor() {\n effect(() => {\n const enable = this.edsAutoResize();\n this._renderer.setProperty(this._el.nativeElement, 'rows', this.minRows());\n this._renderer.setStyle(this._el.nativeElement, 'overflow', enable ? 'hidden' : '');\n this._renderer.setStyle(this._el.nativeElement, 'resize', enable ? 'none' : '');\n if (enable) {\n this.resize();\n }\n });\n }\n\n ngOnInit(): void {\n this._setupResizeObserver();\n\n this._observer = new MutationObserver((mutations) => {\n for (const mutation of mutations) {\n if (mutation.type === 'attributes' && mutation.attributeName === 'readonly') {\n this.resize();\n }\n }\n });\n this._observer.observe(this._el.nativeElement, { attributes: true });\n }\n\n ngAfterViewInit(): void {\n if (this.edsAutoResize()) {\n if (this._control) {\n this._control.valueChanges\n .pipe(takeUntil(this._destroy$), startWith(''))\n .subscribe(() => this.resize());\n } else {\n this.resize();\n }\n }\n }\n\n ngOnDestroy(): void {\n this._destroy$.next();\n this._destroy$.complete();\n this._observer?.disconnect();\n this._resizeObserver?.disconnect();\n if (this._pendingResize !== null) {\n cancelAnimationFrame(this._pendingResize);\n }\n }\n\n /** Calculates and applies the appropriate height based on content. */\n resize(): void {\n if (!this.edsAutoResize()) return;\n\n const el = this._el.nativeElement as HTMLTextAreaElement;\n const parent = el.parentNode;\n if (!parent) return;\n\n // A zero-width element (hidden panel, closed side container e.g. eui-app-side-container) cannot be measured\n // reliably; the ResizeObserver re-runs resize() once it gets a real width.\n if (el.offsetWidth === 0) return;\n\n // Clone to measure\n const clone = el.cloneNode(true) as HTMLTextAreaElement;\n clone.style.width = el.offsetWidth + 'px';\n clone.style.visibility = 'hidden';\n clone.style.position = 'absolute';\n clone.textContent = el.value;\n parent.appendChild(clone);\n clone.style.overflowY = 'hidden';\n clone.style.height = 'auto';\n\n let scrollHeight = clone.scrollHeight;\n\n // Enforce maxRows\n if (this.maxRows() > 0) {\n const lineHeight = parseInt(getComputedStyle(clone).lineHeight, 10) || 20;\n const maxHeight = lineHeight * this.maxRows();\n scrollHeight = Math.min(scrollHeight, maxHeight);\n if (scrollHeight >= maxHeight) {\n this._renderer.removeStyle(el, 'overflow');\n } else {\n this._renderer.setStyle(el, 'overflow', 'hidden');\n }\n }\n\n const height = scrollHeight <= 0 ? 'auto' : `${scrollHeight}px`;\n parent.removeChild(clone);\n this._renderer.setStyle(el, 'height', height);\n }\n\n /**\n * Observes the textarea's width and re-runs the height calculation when it changes,\n * covering cases the event-based triggers miss: a container that becomes visible after\n * the initial (zero-width) measurement, resizable panels being dragged, or any layout\n * change that reflows the textarea without a window resize.\n *\n * Only width changes are acted on: resize() itself sets the element's height, so\n * reacting to height changes would make the observer re-trigger its own work.\n * The observer runs outside the Angular zone as resize() is pure DOM manipulation,\n * and callbacks are coalesced through requestAnimationFrame.\n */\n private _setupResizeObserver(): void {\n if (typeof ResizeObserver === 'undefined') {\n return;\n }\n this._ngZone.runOutsideAngular(() => {\n this._resizeObserver = new ResizeObserver((entries) => {\n const width = entries[entries.length - 1].contentRect.width;\n if (width === this._lastObservedWidth) {\n return;\n }\n this._lastObservedWidth = width;\n if (width === 0) {\n return;\n }\n this._scheduleResize();\n });\n this._resizeObserver.observe(this._el.nativeElement);\n });\n }\n\n /** Coalesces resize requests into at most one measurement per animation frame. */\n private _scheduleResize(): void {\n if (this._pendingResize !== null) {\n return;\n }\n this._pendingResize = requestAnimationFrame(() => {\n this._pendingResize = null;\n this.resize();\n });\n }\n}\n","import { EdsTextarea } from './eds-textarea';\nimport { EdsAutoResizeDirective } from './eds-auto-resize.directive';\n\nexport { EdsTextarea, EdsAutoResizeDirective };\n\n/** Convenience array for importing eds-textarea with auto-resize. */\nexport const EDS_TEXTAREA = [\n EdsTextarea,\n EdsAutoResizeDirective,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eui/eds",
3
- "version": "22.0.0-alpha.51",
3
+ "version": "22.0.0-alpha.53",
4
4
  "tag": "next",
5
5
  "description": "eUI EDS components package",
6
6
  "homepage": "https://eui.ecdevops.eu",
@@ -10,8 +10,8 @@
10
10
  "url": "https://sdlc.webcloud.ec.europa.eu/csdr/eui/eui.git"
11
11
  },
12
12
  "peerDependencies": {
13
- "@eui/core": "^23.0.0",
14
- "@eui/base": "^23.0.0",
13
+ "@eui/core": "^22.0.0",
14
+ "@eui/base": "^22.0.0",
15
15
  "@angular/common": "^21.0.0 || ^22.0.0",
16
16
  "@angular/core": "^21.0.0 || ^22.0.0",
17
17
  "@angular/forms": "^21.0.0 || ^22.0.0",
@@ -42,11 +42,17 @@ declare class EdsCheckbox implements ControlValueAccessor {
42
42
  */
43
43
  isInvalid: _angular_core.InputSignalWithTransform<boolean, unknown>;
44
44
  private _elementRef;
45
+ /**
46
+ * Internal disabled state, written by both the `disabled` input (via effect)
47
+ * and the reactive-forms `setDisabledState` callback. The host `[disabled]`
48
+ * binding reads this so `form.disable()` visually disables the checkbox.
49
+ */
50
+ protected internalDisabled: _angular_core.WritableSignal<boolean>;
45
51
  constructor();
46
52
  writeValue(value: boolean): void;
47
53
  registerOnChange(fn: (value: boolean) => void): void;
48
54
  registerOnTouched(fn: () => void): void;
49
- setDisabledState(_isDisabled: boolean): void;
55
+ setDisabledState(isDisabled: boolean): void;
50
56
  protected onTouched: () => void;
51
57
  protected onHostClick(event: MouseEvent): void;
52
58
  protected onHostChange(event: Event): void;
@@ -1 +1 @@
1
- {"version":3,"file":"eui-eds-eds-checkbox.d.ts","sources":["../../eds-checkbox/eds-checkbox.ts","../../eds-checkbox/index.ts"],"mappings":";;;AAaA;KACY,eAAe;AAE3B,cA8Ba,WAAY,YAAW,oBAAoB;AACpD;;;AAGG;AACH,aAAO,aAAA,CAAA,WAAA;AAEP;;;;AAIG;AACH,UAAI,aAAA,CAAA,WAAA,CAAA,eAAA;AAEJ;;;;AAIG;AACH,aAAO,aAAA,CAAA,WAAA;AAEP;;;AAGG;AACH,mBAAa,aAAA,CAAA,WAAA;AAEb;;;AAGG;AACH,cAAQ,aAAA,CAAA,wBAAA;AAER;;;AAGG;AACH,cAAQ,aAAA,CAAA,wBAAA;AAER;;;AAGG;AACH,eAAS,aAAA,CAAA,wBAAA;;;AAcT;;AAQA;AAIA;AAQA;AAEA,iCAA6B,UAAU;AAMvC,kCAA8B,KAAK;AAanC,oCAAgC,aAAa;;oDAlGpC,WAAW;sDAAX,WAAW;AA0GvB;;ACnJD;AACA,cAAa,YAAY,mBAAA,WAAA;;","names":[]}
1
+ {"version":3,"file":"eui-eds-eds-checkbox.d.ts","sources":["../../eds-checkbox/eds-checkbox.ts","../../eds-checkbox/index.ts"],"mappings":";;;AAcA;KACY,eAAe;AAE3B,cAgCa,WAAY,YAAW,oBAAoB;AACpD;;;AAGG;AACH,aAAO,aAAA,CAAA,WAAA;AAEP;;;;AAIG;AACH,UAAI,aAAA,CAAA,WAAA,CAAA,eAAA;AAEJ;;;;AAIG;AACH,aAAO,aAAA,CAAA,WAAA;AAEP;;;AAGG;AACH,mBAAa,aAAA,CAAA,WAAA;AAEb;;;AAGG;AACH,cAAQ,aAAA,CAAA,wBAAA;AAER;;;AAGG;AACH,cAAQ,aAAA,CAAA,wBAAA;AAER;;;AAGG;AACH,eAAS,aAAA,CAAA,wBAAA;;AAIT;;;;AAIG;gCACuB,aAAA,CAAA,cAAA;;AAiB1B;;AAQA;AAIA;AASA;AAEA,iCAA6B,UAAU;AAMvC,kCAA8B,KAAK;AAanC,oCAAgC,aAAa;;oDA/GpC,WAAW;sDAAX,WAAW;AAuHvB;;ACnKD;AACA,cAAa,YAAY,mBAAA,WAAA;;","names":[]}
@@ -30,10 +30,17 @@ declare class EdsRadio implements ControlValueAccessor {
30
30
  */
31
31
  size: _angular_core.InputSignal<EdsRadioSize>;
32
32
  private _elementRef;
33
+ /**
34
+ * Internal disabled state, written by both the `disabled` input (via effect)
35
+ * and the reactive-forms `setDisabledState` callback. The host `[disabled]`
36
+ * binding reads this so `form.disable()` visually disables the radio.
37
+ */
38
+ protected internalDisabled: _angular_core.WritableSignal<boolean>;
39
+ constructor();
33
40
  writeValue(value: string): void;
34
41
  registerOnChange(fn: (value: string) => void): void;
35
42
  registerOnTouched(fn: () => void): void;
36
- setDisabledState(_isDisabled: boolean): void;
43
+ setDisabledState(isDisabled: boolean): void;
37
44
  protected onTouched: () => void;
38
45
  protected onHostClick(event: MouseEvent): void;
39
46
  protected onHostChange(event: Event): void;
@@ -1 +1 @@
1
- {"version":3,"file":"eui-eds-eds-radio.d.ts","sources":["../../eds-radio/eds-radio.ts","../../eds-radio/index.ts"],"mappings":";;;AAWA;KACY,YAAY;AAExB,cA4Ba,QAAS,YAAW,oBAAoB;AACjD;;;AAGG;AACH,aAAO,aAAA,CAAA,WAAA;AAEP;;;AAGG;AACH,cAAQ,aAAA,CAAA,wBAAA;AAER;;;AAGG;AACH,cAAQ,aAAA,CAAA,wBAAA;AAER;;;AAGG;AACH,eAAS,aAAA,CAAA,wBAAA;AAET;;;AAGG;AACH,UAAI,aAAA,CAAA,WAAA,CAAA,YAAA;;AAMJ;;AASA;AAIA;AAQA;AAEA,iCAA6B,UAAU;AAMvC,kCAA8B,KAAK;AAMnC,oCAAgC,aAAa;;oDAtEpC,QAAQ;sDAAR,QAAQ;AA+EpB;;ACpHD;AACA,cAAa,SAAS,mBAAA,QAAA;;","names":[]}
1
+ {"version":3,"file":"eui-eds-eds-radio.d.ts","sources":["../../eds-radio/eds-radio.ts","../../eds-radio/index.ts"],"mappings":";;;AAaA;KACY,YAAY;AAExB,cAkCa,QAAS,YAAW,oBAAoB;AACjD;;;AAGG;AACH,aAAO,aAAA,CAAA,WAAA;AAEP;;;AAGG;AACH,cAAQ,aAAA,CAAA,wBAAA;AAER;;;AAGG;AACH,cAAQ,aAAA,CAAA,wBAAA;AAER;;;AAGG;AACH,eAAS,aAAA,CAAA,wBAAA;AAET;;;AAGG;AACH,UAAI,aAAA,CAAA,WAAA,CAAA,YAAA;;AAIJ;;;;AAIG;gCACuB,aAAA,CAAA,cAAA;;AAW1B;;AASA;AAIA;AASA;AAEA,iCAA6B,UAAU;AAMvC,kCAA8B,KAAK;AAMnC,oCAAgC,aAAa;;oDArFpC,QAAQ;sDAAR,QAAQ;AA8FpB;;AC3ID;AACA,cAAa,SAAS,mBAAA,QAAA;;","names":[]}