@i-cell/ids-angular 0.1.10 → 0.1.11

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.
@@ -188,10 +188,10 @@ class IdsFormFieldControl extends ComponentBaseWithDefaults {
188
188
  this.required = input(false, { transform: booleanAttribute });
189
189
  this.placeholder = input('');
190
190
  // Get the NgControl reference as soon as we can
191
- queueMicrotask(() => this.ngControl.set(this._injector.get(NgControl, null, { self: true })));
192
- }
193
- ngOnInit() {
194
- this._initErrorStateTracker();
191
+ queueMicrotask(() => {
192
+ this.ngControl.set(this._injector.get(NgControl, null, { self: true }));
193
+ this._initErrorStateTracker();
194
+ });
195
195
  }
196
196
  setDescribedByIds(ids) {
197
197
  if (ids.length) {
@@ -666,11 +666,13 @@ class IdsInputDirective extends IdsFormFieldControl {
666
666
  return 'input';
667
667
  }
668
668
  ngAfterViewInit() {
669
- const control = this.ngControl()?.control;
670
- if (control) {
671
- this._disabled.set(control.status === 'DISABLED');
672
- control.events.pipe(takeUntilDestroyed(this._destroyRef)).subscribe((event) => this.updateControlState(event));
673
- }
669
+ queueMicrotask(() => {
670
+ const control = this.ngControl()?.control;
671
+ if (control) {
672
+ this._disabled.set(control.status === 'DISABLED');
673
+ control.events.pipe(takeUntilDestroyed(this._destroyRef)).subscribe((event) => this.updateControlState(event));
674
+ }
675
+ });
674
676
  }
675
677
  _validateType(type) {
676
678
  if (isDevMode() && IDS_INPUT_INVALID_TYPES.indexOf(type) > -1) {
@@ -1 +1 @@
1
- {"version":3,"file":"i-cell-ids-angular-forms.mjs","sources":["../../../projects/widgets/forms/common/error/error-state.ts","../../../projects/widgets/forms/common/success/success-state.ts","../../../projects/widgets/forms/components/fieldset/fieldset-row/fieldset-row.component.ts","../../../projects/widgets/forms/components/fieldset/fieldset-row/fieldset-row.component.html","../../../projects/widgets/forms/components/form-field/types/form-field-variant.type.ts","../../../projects/widgets/forms/components/fieldset/fieldset-defaults.ts","../../../projects/widgets/forms/components/fieldset/fieldset-message.directive.ts","../../../projects/widgets/forms/components/fieldset/fieldset.component.ts","../../../projects/widgets/forms/components/fieldset/fieldset.component.html","../../../projects/widgets/forms/components/form-field/tokens/form-field-control.ts","../../../projects/widgets/forms/components/form-field/form-field-control.ts","../../../projects/widgets/forms/components/form-field/form-field-defaults.ts","../../../projects/widgets/forms/directives/form-field-action.directive.ts","../../../projects/widgets/forms/directives/prefix.directive.ts","../../../projects/widgets/forms/directives/suffix.directive.ts","../../../projects/widgets/forms/validators.ts","../../../projects/widgets/forms/components/message/error-message/error-definition.directive.ts","../../../projects/widgets/forms/directives/message-suffix.directive.ts","../../../projects/widgets/forms/components/message/types/message-variant.type.ts","../../../projects/widgets/forms/components/message/message-defaults.ts","../../../projects/widgets/forms/components/message/types/message-parent-form-field.ts","../../../projects/widgets/forms/directives/message.directive.ts","../../../projects/widgets/forms/components/message/error-message/error-message.component.ts","../../../projects/widgets/forms/components/message/error-message/error-message.component.html","../../../projects/widgets/forms/directives/message-prefix.directive.ts","../../../projects/widgets/forms/components/message/hint-message/hint-message.component.ts","../../../projects/widgets/forms/components/message/hint-message/hint-message.component.html","../../../projects/widgets/forms/components/message/success-message/success-message.component.ts","../../../projects/widgets/forms/components/message/success-message/success-message.component.html","../../../projects/widgets/forms/components/form-field/form-field.component.ts","../../../projects/widgets/forms/components/form-field/form-field.component.html","../../../projects/widgets/forms/components/input/input-defaults.ts","../../../projects/widgets/forms/components/input/input.directive.ts","../../../projects/widgets/forms/components/message/types/message.type.ts","../../../projects/widgets/forms/components/option/tokens/option-group.ts","../../../projects/widgets/forms/components/option/tokens/option-parent.ts","../../../projects/widgets/forms/components/option/types/option-events.class.ts","../../../projects/widgets/forms/components/option/option-group.component.ts","../../../projects/widgets/forms/components/option/option-group.component.html","../../../projects/widgets/forms/components/pseudo-checkbox/tokens/pseudo-checkbox-parent.ts","../../../projects/widgets/forms/components/pseudo-checkbox/types/pseudo-checkbox-state.type.ts","../../../projects/widgets/forms/components/pseudo-checkbox/pseudo-checkbox.component.ts","../../../projects/widgets/forms/components/pseudo-checkbox/pseudo-checkbox.component.html","../../../projects/widgets/forms/components/option/option.component.ts","../../../projects/widgets/forms/components/option/option.component.html","../../../projects/widgets/forms/directives/label.directive.ts","../../../projects/widgets/forms/i-cell-ids-angular-forms.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { AbstractControl, FormGroupDirective, NgControl, NgForm } from '@angular/forms';\nimport { Subject } from 'rxjs';\n\nexport abstract class AbstractErrorStateMatcher {\n public abstract isErrorState(control: AbstractControl | null, form: FormGroupDirective | NgForm | null): boolean;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class ErrorStateMatcher extends AbstractErrorStateMatcher {\n public isErrorState(control: AbstractControl | null, form: FormGroupDirective | NgForm | null): boolean {\n return !!(control && control.invalid && (control.touched || (form && form.submitted)));\n }\n}\n\nexport class ErrorStateTracker {\n /** Whether the tracker is currently in an error state. */\n public hasErrorState = false;\n\n constructor(\n private _matcher: ErrorStateMatcher | null,\n private _ngControl: NgControl | null,\n private _parentFormGroup: FormGroupDirective | null,\n private _parentForm: NgForm | null,\n private _stateChanges?: Subject<void>,\n ) {}\n\n /** Updates the error state based on the provided error state matcher. */\n public updateErrorState(): void {\n const oldState = this.hasErrorState;\n const parent = this._parentFormGroup || this._parentForm;\n const matcher = this._matcher;\n const control = this._ngControl ? (this._ngControl.control) : null;\n const newState = matcher?.isErrorState(control, parent) ?? false;\n\n if (newState !== oldState) {\n this.hasErrorState = newState;\n this._stateChanges?.next();\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { AbstractControl, FormGroupDirective, NgControl, NgForm } from '@angular/forms';\nimport { Subject } from 'rxjs';\n\nexport abstract class AbstractSuccessStateMatcher {\n public abstract isSuccessState(control: AbstractControl | null, form: FormGroupDirective | NgForm | null): boolean;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class SuccessStateMatcher extends AbstractSuccessStateMatcher {\n public isSuccessState(control: AbstractControl | null, form: FormGroupDirective | NgForm | null): boolean {\n return !!(control && control.valid && (control.touched || (form && form.submitted)));\n }\n}\n\nexport class SuccessStateTracker {\n /** Whether the tracker is currently in an success state. */\n public hasSuccessState = false;\n\n constructor(\n private _matcher: SuccessStateMatcher | null,\n private _ngControl: NgControl | null,\n private _parentFormGroup: FormGroupDirective | null,\n private _parentForm: NgForm | null,\n private _stateChanges?: Subject<void>,\n ) {}\n\n /** Updates the success state based on the provided success state matcher. */\n public updateSuccessState(): void {\n const oldState = this.hasSuccessState;\n const parent = this._parentFormGroup || this._parentForm;\n const matcher = this._matcher;\n const control = this._ngControl ? (this._ngControl.control) : null;\n const newState = matcher?.isSuccessState(control, parent) ?? false;\n\n if (newState !== oldState) {\n this.hasSuccessState = newState;\n this._stateChanges?.next();\n }\n }\n}\n","import { ChangeDetectionStrategy, Component, signal, ViewEncapsulation } from '@angular/core';\nimport { ComponentBase } from '@i-cell/ids-angular/core';\n\n@Component({\n selector: 'ids-fieldset-row',\n imports: [],\n templateUrl: './fieldset-row.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class IdsFieldsetRowComponent extends ComponentBase {\n protected override get _hostName(): string {\n return 'fieldset-row';\n }\n\n protected _hostClasses = signal(this._getHostClasses([]));\n}\n","<ng-content />\n","export const IdsFormFieldVariant = {\n SURFACE: 'surface',\n LIGHT: 'light',\n} as const;\n\nexport type IdsFormFieldVariantType = (typeof IdsFormFieldVariant)[keyof typeof IdsFormFieldVariant];\n","import { IdsFormFieldVariant, IdsFormFieldVariantType } from '../form-field/types/form-field-variant.type';\n\nimport { InjectionToken } from '@angular/core';\nimport { IdsSize, IdsSizeType } from '@i-cell/ids-angular/core';\n\nexport interface IdsFieldsetDefaultConfig {\n size?: IdsSizeType\n variant?: IdsFormFieldVariantType,\n}\n\nexport const IDS_FIELDSET_DEFAULT_CONFIG = new InjectionToken<IdsFieldsetDefaultConfig>(\n 'IDS_FIELDSET_DEFAULT_CONFIG',\n {\n providedIn: 'root',\n factory: IDS_FIELDSET_DEFAULT_CONFIG_FACTORY,\n },\n);\n\nexport function IDS_FIELDSET_DEFAULT_CONFIG_FACTORY(): Required<IdsFieldsetDefaultConfig> {\n return {\n size: IdsSize.COMPACT,\n variant: IdsFormFieldVariant.SURFACE,\n };\n}\n\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[idsFieldsetMessage]',\n standalone: true,\n})\nexport class IdsFieldsetMessageDirective {}\n","import { IDS_FIELDSET_DEFAULT_CONFIG, IDS_FIELDSET_DEFAULT_CONFIG_FACTORY, IdsFieldsetDefaultConfig } from './fieldset-defaults';\nimport { IdsFieldsetMessageDirective } from './fieldset-message.directive';\n\nimport { IdsFormFieldVariantType } from '../form-field/types/form-field-variant.type';\n\nimport { ChangeDetectionStrategy, Component, computed, contentChildren, input, ViewEncapsulation } from '@angular/core';\nimport { ComponentBaseWithDefaults, IdsSizeType } from '@i-cell/ids-angular/core';\n\nconst defaultConfig = IDS_FIELDSET_DEFAULT_CONFIG_FACTORY();\n\n@Component({\n selector: 'fieldset[idsFieldset]',\n imports: [],\n templateUrl: './fieldset.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class IdsFieldsetComponent extends ComponentBaseWithDefaults<IdsFieldsetDefaultConfig> {\n protected override get _hostName(): string {\n return 'fieldset';\n }\n\n protected readonly _defaultConfig = this._getDefaultConfig(defaultConfig, IDS_FIELDSET_DEFAULT_CONFIG);\n\n public size = input<IdsSizeType>(this._defaultConfig.size);\n public variant = input<IdsFormFieldVariantType>(this._defaultConfig.variant);\n public legend = input<string>('');\n\n private _fieldsetMessage = contentChildren<IdsFieldsetMessageDirective>(IdsFieldsetMessageDirective);\n\n protected _hasMessage = computed(() => this._fieldsetMessage().length > 0);\n\n protected _hostClasses = computed(() => this._getHostClasses([\n this.size(),\n this.variant(),\n ]));\n}\n","<legend class=\"ids-fieldset-legend\">{{ legend() }}</legend>\n@if (_hasMessage()) {\n <div class=\"ids-fieldset-message\">\n <ng-content select=\"[idsFieldsetMessage]\" />\n </div>\n}\n<ng-content select=\"ids-fieldset-row\" />\n","import { IdsFormFieldControl } from '../form-field-control';\n\nimport { InjectionToken } from '@angular/core';\n\nexport const IDS_FORM_FIELD_CONTROL = new InjectionToken<IdsFormFieldControl>('IDS_FORM_FIELD_CONTROL');\n","import { AbstractErrorStateMatcher, ErrorStateTracker } from '../../common/error/error-state';\nimport { AbstractSuccessStateMatcher, SuccessStateTracker } from '../../common/success/success-state';\n\nimport { booleanAttribute, computed, Directive, effect, ElementRef, inject, Injector, input, OnInit, Signal, signal } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { FormGroupDirective, NgControl, NgForm } from '@angular/forms';\nimport { ComponentBaseWithDefaults } from '@i-cell/ids-angular/core';\nimport { Subject, Subscription } from 'rxjs';\n\nexport const formFieldControlClass = 'ids-form-field-control';\n\n@Directive()\nexport abstract class IdsFormFieldControl<D = unknown> extends ComponentBaseWithDefaults<D> implements OnInit {\n protected readonly _injector = inject(Injector);\n protected readonly _parentForm = inject(NgForm, { optional: true });\n protected readonly _parentFormGroup = inject(FormGroupDirective, { optional: true });\n\n public readonly ngControl = signal<NgControl | null>(null);\n\n public readonly errorStateChanges = new Subject<void>();\n public readonly successStateChanges = new Subject<void>();\n\n public readonly canHandleSuccessState = input<boolean>(false);\n\n public readonly hasErrorState = signal<boolean>(false);\n public readonly hasSuccessState = signal<boolean>(false);\n\n protected abstract readonly _elementRef: ElementRef;\n\n public abstract readonly errorStateMatcher: Signal<AbstractErrorStateMatcher>;\n public abstract readonly successStateMatcher: Signal<AbstractSuccessStateMatcher>;\n\n private _canHandleSuccessStateEffect = effect(() => {\n this._setSuccessStateTracker(this.canHandleSuccessState());\n });\n\n /** Handles the `disabled` input binding */\n public readonly disabledInput = input<boolean, unknown>(false, { transform: booleanAttribute, alias: 'disabled' });\n /** Stores the `disabled` state internally */\n protected readonly _disabled = signal(this.disabledInput());\n /** The input's `disabled` state as a read-only signal (to enable/disable the contol programmatically, use the FormControl's related API) */\n public readonly disabled = computed(() => this._disabled());\n\n public readonly readonly = input<boolean, unknown>(false, { transform: booleanAttribute });\n\n /** This effect is triggered if the `disabled` attribute binding changes and delegates the change to the underlying FormControl */\n private _disabledInputEffect = effect(() => {\n const enableOrDisable = this.disabledInput() ? 'disable' : 'enable';\n const controlDir = this.ngControl();\n\n // The NgControl's `control` property might not be initialized so we delay the enable/disable call\n // (the FormControl's enable/disable method call will trigger a StatusChangeEvent and/or the ControlValueAccessor's setDisabledState() callback\n // so that we can update the `disabled` signal)\n queueMicrotask(() => controlDir?.control?.[enableOrDisable]());\n });\n\n public readonly required = input<boolean, unknown>(false, { transform: booleanAttribute });\n\n public readonly placeholder = input<string>('');\n\n public abstract onContainerClick(event: MouseEvent): void;\n\n protected _errorStateTracker?: ErrorStateTracker;\n protected _successStateTracker?: SuccessStateTracker;\n private _successStateSubscription?: Subscription;\n\n constructor() {\n super();\n\n // Get the NgControl reference as soon as we can\n queueMicrotask(() => this.ngControl.set(this._injector.get(NgControl, null, { self: true })));\n }\n\n public ngOnInit(): void {\n this._initErrorStateTracker();\n }\n\n public setDescribedByIds(ids: string[]): void {\n if (ids.length) {\n this._elementRef.nativeElement.setAttribute('aria-describedby', ids.join(' '));\n } else {\n this._elementRef.nativeElement.removeAttribute('aria-describedby');\n }\n }\n\n protected _initErrorStateTracker(): void {\n this._errorStateTracker = new ErrorStateTracker(\n this.errorStateMatcher(),\n this.ngControl(),\n this._parentFormGroup,\n this._parentForm,\n this.errorStateChanges,\n );\n\n this.errorStateChanges.pipe(\n takeUntilDestroyed(this._destroyRef),\n ).subscribe(() => this.hasErrorState.set(this._errorStateTracker!.hasErrorState));\n\n this._errorStateTracker.updateErrorState();\n }\n\n protected _setSuccessStateTracker(canHandleSuccessState: boolean): void {\n if (canHandleSuccessState) {\n this._successStateTracker = new SuccessStateTracker(\n this.successStateMatcher(),\n this.ngControl(),\n this._parentFormGroup,\n this._parentForm,\n this.successStateChanges,\n );\n\n this._successStateSubscription = this.successStateChanges.pipe(\n takeUntilDestroyed(this._destroyRef),\n ).subscribe(() => this.hasSuccessState.set(this._successStateTracker!.hasSuccessState));\n\n this._successStateTracker.updateSuccessState();\n } else {\n this._successStateTracker = undefined;\n this._successStateSubscription?.unsubscribe();\n this.hasSuccessState.set(false);\n }\n }\n}\n","import { IdsFormFieldVariant, IdsFormFieldVariantType } from './types/form-field-variant.type';\n\nimport { InjectionToken } from '@angular/core';\nimport { IdsSize, IdsSizeType } from '@i-cell/ids-angular/core';\n\nexport interface IdsFormFieldDefaultConfig {\n size?: IdsSizeType\n variant?: IdsFormFieldVariantType\n}\n\nexport const IDS_FORM_FIELD_DEFAULT_CONFIG = new InjectionToken<IdsFormFieldDefaultConfig>(\n 'IDS_FORM_FIELD_DEFAULT_CONFIG',\n {\n providedIn: 'root',\n factory: IDS_FORM_FIELD_DEFAULT_CONFIG_FACTORY,\n },\n);\n\nexport function IDS_FORM_FIELD_DEFAULT_CONFIG_FACTORY(): Required<IdsFormFieldDefaultConfig> {\n return {\n size: IdsSize.COMPACT,\n variant: IdsFormFieldVariant.SURFACE,\n };\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[idsFormFieldAction]',\n standalone: true,\n})\nexport class IdsFormFieldActionDirective {\n}\n","import { Directive, Input } from '@angular/core';\n\n@Directive({\n selector: '[idsPrefix], [idsLeadingIcon]',\n standalone: true,\n})\nexport class IdsPrefixDirective {\n @Input('idsLeadingIcon')\n public set idsLeadingIcon(value: '') {\n this.isLeadingIcon = true;\n }\n\n public isLeadingIcon = false;\n}\n","import { Directive, Input } from '@angular/core';\n\n@Directive({\n selector: '[idsSuffix], [idsTrailingIcon]',\n standalone: true,\n})\nexport class IdsSuffixDirective {\n @Input('idsTrailingIcon')\n public set idsTrailingIcon(value: '') {\n this.isTrailingIcon = true;\n }\n\n public isTrailingIcon = false;\n}\n","import { AbstractControl, ValidationErrors } from '@angular/forms';\n\nfunction isEmptyInputValue(value: unknown): boolean {\n return (\n value == null || ((typeof value === 'string' || Array.isArray(value)) && value.length === 0)\n );\n}\n\nexport class IdsValidators {\n public static required(control: AbstractControl): ValidationErrors | null {\n return requiredValidator(control);\n }\n\n public static requiredTrue(control: AbstractControl): ValidationErrors | null {\n return requiredTrueValidator(control);\n }\n\n public static requiredFalse(control: AbstractControl): ValidationErrors | null {\n return requiredFalseValidator(control);\n }\n}\n\nexport function requiredValidator(control: AbstractControl): ValidationErrors | null {\n return isEmptyInputValue(control.value) ? { required: true } : null;\n}\n\nexport function requiredTrueValidator(control: AbstractControl): ValidationErrors | null {\n return control.value === true ? null : { requiredTrue: true };\n}\n\nexport function requiredFalseValidator(control: AbstractControl): ValidationErrors | null {\n return control.value === false ? null : { requiredFalse: true };\n}\n","import { IdsErrorMessageMapping } from '../types/error-message-mapping';\n\nimport { Directive, ElementRef, inject, input } from '@angular/core';\n\n/**\n * Directive to map an error message to an error code for a form field.\n * Mappings must be defined between the directive element's tags ordered by priority (descending from top to bottom).\n * The error code is provided as an attribute, while the error message will be this directive's text content.\n * The latter can be a plain string literal or even an interpolated string value.\n *\n * @example\n * ```html\n * <ids-form-field>\n * <ids-label>Input field</ids-label>\n * <input\n * idsInput\n * ngModel\n * customValidator\n * required\n * [minlength]=\"3\"\n * [maxlength]=\"10\"\n * [pattern]=\"validPattern\"\n * >\n * <ids-error-message>\n * <ids-error-def code=\"required\">{{ 'ERROR.REQUIRED.CUSTOM' | translate }}</ids-error-def>\n * <ids-error-def code=\"minlength\">'minLength' error message</ids-error-def>\n * <ids-error-def code=\"maxlength\">'maxLength' error message</ids-error-def>\n * <ids-error-def code=\"pattern\">'pattern' error message with interpolation: {{ model.value }}</ids-error-def>\n * <ids-error-def code=\"custom\">Custom validator error message</ids-error-def>\n * </ids-error-message>\n * </ids-form-field>\n * ```\n */\n@Directive({\n selector: 'ids-error-def',\n})\nexport class IdsErrorDefinitionDirective {\n /**\n * The validation error's identifier code\n */\n public code = input.required<string>();\n\n private _elementRef = inject(ElementRef);\n\n /**\n * The validation error's message that will be presented to the user\n */\n get errorMessage(): string {\n return (this._elementRef.nativeElement as HTMLElement).innerText;\n }\n\n /**\n * Creates a IdsErrorMessageMapping instance based on this directive's state (code, errorMessage)\n * @returns A IdsErrorMessageMapping instance\n */\n public toErrorMessageMapping(): IdsErrorMessageMapping {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const self = this;\n return {\n code: this.code(),\n message: () => self.errorMessage,\n };\n }\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[idsMessageSuffix]',\n standalone: true,\n})\nexport class IdsMessageSuffixDirective {\n}\n","export const IdsMessageVariant = {\n SURFACE: 'surface',\n LIGHT: 'light',\n DARK: 'dark',\n} as const;\n\nexport type IdsMessageVariantType = (typeof IdsMessageVariant)[keyof typeof IdsMessageVariant];\n","import { IdsMessageVariant, IdsMessageVariantType } from './types/message-variant.type';\n\nimport { InjectionToken } from '@angular/core';\nimport { IdsSize, IdsSizeType } from '@i-cell/ids-angular/core';\n\nexport interface IdsMessageDefaultConfig {\n size?: IdsSizeType,\n variant?: IdsMessageVariantType,\n}\n\nexport const IDS_MESSAGE_DEFAULT_CONFIG = new InjectionToken<IdsMessageDefaultConfig>(\n 'IDS_MESSAGE_DEFAULT_CONFIG',\n {\n providedIn: 'root',\n factory: IDS_MESSAGE_DEFAULT_CONFIG_FACTORY,\n },\n);\n\nexport function IDS_MESSAGE_DEFAULT_CONFIG_FACTORY(): Required<IdsMessageDefaultConfig> {\n return {\n size: IdsSize.COMPACT,\n variant: IdsMessageVariant.SURFACE,\n };\n}\n\n","import { IdsFormFieldVariantType } from '../../form-field/types/form-field-variant.type';\n\nimport { InjectionToken, Signal } from '@angular/core';\nimport { IdsSizeType } from '@i-cell/ids-angular/core';\n\nexport interface IdsMessageParentFormField {\n disabled: Signal<boolean>;\n size: Signal<IdsSizeType>;\n variant: Signal<IdsFormFieldVariantType>;\n}\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport const IDS_MESSAGE_PARENT_FORM_FIELD = new InjectionToken<IdsMessageParentFormField>('IDS_MESSAGE_PARENT_FORM_FIELD');\n","import { IDS_MESSAGE_DEFAULT_CONFIG, IDS_MESSAGE_DEFAULT_CONFIG_FACTORY, IdsMessageDefaultConfig } from '../components/message/message-defaults';\nimport { IDS_MESSAGE_PARENT_FORM_FIELD } from '../components/message/types/message-parent-form-field';\nimport { IdsMessageVariantType } from '../components/message/types/message-variant.type';\n\nimport { Directive, computed, inject, input } from '@angular/core';\nimport { ComponentBaseWithDefaults, IdsSizeType } from '@i-cell/ids-angular/core';\n\nconst defaultConfig = IDS_MESSAGE_DEFAULT_CONFIG_FACTORY();\n\n@Directive({\n selector: '[idsMessage]',\n standalone: true,\n})\nexport class IdsMessageDirective extends ComponentBaseWithDefaults<IdsMessageDefaultConfig> {\n protected override get _hostName(): string {\n return 'message';\n }\n\n private readonly _parent = inject(IDS_MESSAGE_PARENT_FORM_FIELD, { skipSelf: true, optional: true });\n protected readonly _defaultConfig = this._getDefaultConfig(defaultConfig, IDS_MESSAGE_DEFAULT_CONFIG);\n\n public size = input<IdsSizeType>(this._defaultConfig.size);\n public variant = input<IdsMessageVariantType>(this._defaultConfig.variant);\n private _parentOrSelfSize = computed(() => this._parent?.size() ?? this.size());\n private _parentOrSelfVariant = computed(() => this._parent?.variant() ?? this.variant());\n private _parentDisabled = computed(() => this._parent?.disabled());\n\n protected _hostClasses = computed(() => this._getHostClasses([\n this._parentOrSelfSize(),\n this._parentOrSelfVariant(),\n this._parentDisabled() ? 'disabled' : null,\n ]));\n}\n","import { IdsErrorDefinitionDirective } from './error-definition.directive';\n\nimport { IdsMessageSuffixDirective } from '../../../directives/message-suffix.directive';\nimport { IdsMessageDirective } from '../../../directives/message.directive';\nimport { IdsFormFieldComponent } from '../../form-field/form-field.component';\nimport { IdsErrorMessageMapping } from '../types/error-message-mapping';\n\nimport { Component, ViewEncapsulation, computed, contentChildren, inject, signal } from '@angular/core';\nimport { takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';\nimport { AbstractControl } from '@angular/forms';\nimport { ComponentBase } from '@i-cell/ids-angular/core';\nimport { IdsIconComponent } from '@i-cell/ids-angular/icon';\nimport { asapScheduler, observeOn, of, startWith, switchMap, tap } from 'rxjs';\n\n@Component({\n selector: 'ids-error-message',\n imports: [IdsIconComponent],\n templateUrl: './error-message.component.html',\n hostDirectives: [IdsMessageDirective],\n encapsulation: ViewEncapsulation.None,\n})\nexport class IdsErrorMessageComponent extends ComponentBase {\n protected override get _hostName(): string {\n return 'error-message';\n }\n\n private _parent = inject(IdsFormFieldComponent, { skipSelf: true });\n\n private _control = signal<AbstractControl | null>(null);\n private _errorDefDirs = contentChildren(IdsErrorDefinitionDirective);\n private _errorDefs = computed(() => this._errorDefDirs().map((errorDefDir) => errorDefDir.toErrorMessageMapping()));\n\n protected _validationError = signal<IdsErrorMessageMapping | null>(null);\n\n protected _hostClasses = computed(() => this._getHostClasses([]));\n\n public suffixes = contentChildren(IdsMessageSuffixDirective);\n\n constructor() {\n super();\n toObservable(this._parent.controlDir).pipe(\n observeOn(asapScheduler),\n tap((controlDir) => this._control.set(controlDir?.control ?? null)),\n switchMap(() => this._control()?.statusChanges.pipe(startWith(this._control()?.status)) ?? of(null)),\n takeUntilDestroyed(this._destroyRef),\n ).subscribe((status) => {\n if (status === 'INVALID') {\n const nextError = this._selectMostImportantValidationError();\n this._validationError.set(nextError);\n } else {\n this._validationError.set(null);\n }\n });\n }\n\n private _selectMostImportantValidationError(): IdsErrorMessageMapping | null {\n const errorDefs = this._errorDefs();\n const control = this._control();\n\n if (!errorDefs?.length || !control?.errors || Object.keys(control.errors).length === 0) {\n return null;\n }\n\n const errorCodes = new Set(Object.keys(control.errors));\n\n return errorDefs.find((errorDef) => errorCodes.has(errorDef.code)) ?? null;\n }\n\n protected _getValidationErrorMessage(messageOrFn: IdsErrorMessageMapping['message']): string {\n return messageOrFn instanceof Function ? messageOrFn() : messageOrFn;\n }\n}\n","<div class=\"ids-message__prefix\">\n <ng-content select=\"[idsMessagePrefix]\">\n <ids-icon aria-hidden=\"true\" fontIcon=\"exclamation-circle\" variant=\"error\" />\n </ng-content>\n</div>\n<div class=\"ids-message__text\">\n @let validationError = _validationError();\n @if (validationError) {\n @let messageString = _getValidationErrorMessage(validationError.message);\n {{ messageString }}\n }\n</div>\n@if (suffixes().length) {\n <div class=\"ids-message__suffix\">\n <ng-content select=\"[idsMessageSuffix]\" />\n </div>\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[idsMessagePrefix]',\n standalone: true,\n})\nexport class IdsMessagePrefixDirective {\n}\n","import { IdsMessagePrefixDirective } from '../../../directives/message-prefix.directive';\nimport { IdsMessageSuffixDirective } from '../../../directives/message-suffix.directive';\nimport { IdsMessageDirective } from '../../../directives/message.directive';\n\nimport { Component, contentChildren, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'ids-hint-message',\n imports: [],\n templateUrl: './hint-message.component.html',\n host: {\n class: 'ids-hint-message',\n },\n hostDirectives: [\n {\n directive: IdsMessageDirective,\n inputs: [\n 'size: size',\n 'variant: variant',\n ],\n },\n ],\n encapsulation: ViewEncapsulation.None,\n})\nexport class IdsHintMessageComponent {\n public prefixes = contentChildren(IdsMessagePrefixDirective);\n public suffixes = contentChildren(IdsMessageSuffixDirective);\n}\n","@if (prefixes().length) {\n <div class=\"ids-message__prefix\">\n <ng-content select=\"[idsMessagePrefix]\" />\n </div>\n}\n<div class=\"ids-message__text\">\n <ng-content />\n</div>\n@if (suffixes().length) {\n <div class=\"ids-message__suffix\">\n <ng-content select=\"[idsMessageSuffix]\" />\n </div>\n}\n","import { IdsMessageSuffixDirective } from '../../../directives/message-suffix.directive';\nimport { IdsMessageDirective } from '../../../directives/message.directive';\n\nimport { Component, ViewEncapsulation, computed, contentChildren } from '@angular/core';\nimport { ComponentBase } from '@i-cell/ids-angular/core';\nimport { IdsIconComponent } from '@i-cell/ids-angular/icon';\n\n@Component({\n selector: 'ids-success-message',\n imports: [IdsIconComponent],\n templateUrl: './success-message.component.html',\n hostDirectives: [IdsMessageDirective],\n encapsulation: ViewEncapsulation.None,\n})\nexport class IdsSuccessMessageComponent extends ComponentBase {\n protected override get _hostName(): string {\n return 'success-message';\n }\n\n protected _hostClasses = computed(() => this._getHostClasses([]));\n\n public suffixes = contentChildren(IdsMessageSuffixDirective);\n}\n","<div class=\"ids-message__prefix\">\n <ng-content select=\"[idsMessagePrefix]\">\n <ids-icon aria-hidden=\"true\" fontIcon=\"check\" variant=\"success\" />\n </ng-content>\n</div>\n<div class=\"ids-message__text\">\n <ng-content />\n</div>\n@if (suffixes().length) {\n <div class=\"ids-message__suffix\">\n <ng-content select=\"[idsMessageSuffix]\" />\n </div>\n}\n","import { IDS_FORM_FIELD_DEFAULT_CONFIG, IDS_FORM_FIELD_DEFAULT_CONFIG_FACTORY, IdsFormFieldDefaultConfig } from './form-field-defaults';\nimport { IDS_FORM_FIELD_CONTROL } from './tokens/form-field-control';\nimport { IdsFormFieldVariantType } from './types/form-field-variant.type';\n\nimport { IdsFormFieldActionDirective } from '../../directives/form-field-action.directive';\nimport { IdsPrefixDirective } from '../../directives/prefix.directive';\nimport { IdsSuffixDirective } from '../../directives/suffix.directive';\nimport { IdsValidators } from '../../validators';\nimport { IdsFieldsetComponent } from '../fieldset/fieldset.component';\nimport { IdsErrorMessageComponent } from '../message/error-message/error-message.component';\nimport { IdsHintMessageComponent } from '../message/hint-message/hint-message.component';\nimport { IdsSuccessMessageComponent } from '../message/success-message/success-message.component';\n\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, computed, contentChild, contentChildren, ElementRef, inject, input, viewChild, ViewEncapsulation } from '@angular/core';\nimport { Validators } from '@angular/forms';\nimport { ComponentBaseWithDefaults, IdsSizeType } from '@i-cell/ids-angular/core';\n\nconst defaultConfig = IDS_FORM_FIELD_DEFAULT_CONFIG_FACTORY();\n\n@Component({\n selector: 'ids-form-field',\n imports: [],\n templateUrl: './form-field.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class IdsFormFieldComponent extends ComponentBaseWithDefaults<IdsFormFieldDefaultConfig> {\n protected override get _hostName(): string {\n return 'form-field';\n }\n\n private readonly _changeDetectorRef = inject(ChangeDetectorRef);\n private readonly _parentFieldset = inject(IdsFieldsetComponent, { optional: true });\n protected readonly _defaultConfig = this._getDefaultConfig(defaultConfig, IDS_FORM_FIELD_DEFAULT_CONFIG);\n\n private _fieldWrapper = viewChild.required<ElementRef<HTMLElement>>('fieldWrapper');\n private _child = contentChild.required(IDS_FORM_FIELD_CONTROL);\n private _hintMessages = contentChildren(IdsHintMessageComponent, { descendants: true });\n private _successMessages = contentChildren(IdsSuccessMessageComponent, { descendants: true });\n private _errorMessages = contentChildren(IdsErrorMessageComponent, { descendants: true });\n private _actions = contentChildren(IdsFormFieldActionDirective);\n private _prefixes = contentChildren(IdsPrefixDirective);\n private _suffixes = contentChildren(IdsSuffixDirective);\n\n protected _hasActions = computed(() => Boolean(this._actions().length));\n protected _hasLeadingIcon = computed(() => Boolean(this._prefixes().filter((prefix) => prefix.isLeadingIcon).length));\n protected _hasPrefix = computed(() => Boolean(this._prefixes().filter((prefix) => !prefix.isLeadingIcon).length));\n protected _hasSuffix = computed(() => Boolean(this._suffixes().filter((suffix) => !suffix.isTrailingIcon).length));\n protected _hasTrailingIcon = computed(() => Boolean(this._suffixes().filter((suffix) => suffix.isTrailingIcon).length));\n protected _inputId = computed(() => this._child()?.id());\n public size = input<IdsSizeType>(this._defaultConfig.size);\n public variant = input<IdsFormFieldVariantType>(this._defaultConfig.variant);\n public parentOrSelfSize = computed(() => this._parentFieldset?.size() ?? this.size());\n public parentOrSelfVariant = computed(() => this._parentFieldset?.variant() ?? this.variant());\n public controlDir = computed(() => this._child().ngControl());\n public disabled = computed(() => Boolean(this._child().disabled()));\n public readonly = computed(() => Boolean(this._child().readonly()));\n private _hasErrorState = computed(() => Boolean(this._child().hasErrorState()));\n private _hasSuccessState = computed(() => Boolean(this._child().hasSuccessState()));\n protected _hostClasses = computed(() => this._getHostClasses([\n this.parentOrSelfSize(),\n this.parentOrSelfVariant(),\n this.disabled() ? 'disabled' : null,\n this._hasErrorState() ? 'invalid' : null,\n this._hasSuccessState() ? 'valid' : null,\n ]),\n );\n\n protected _displayedMessages = computed<'error' | 'success' | 'hint' | undefined>(() => {\n if (this._errorMessages().length > 0 && this._hasErrorState()) {\n return 'error';\n }\n if (this._successMessages().length > 0 && this._hasSuccessState()) {\n return 'success';\n }\n if (this._hintMessages().length > 0) {\n return 'hint';\n }\n return undefined;\n });\n\n public hasRequiredValidator = computed(() => {\n const control = this.controlDir()?.control;\n return this._child().required()\n || control?.hasValidator(Validators.required)\n || control?.hasValidator(Validators.requiredTrue)\n || control?.hasValidator(IdsValidators.required)\n || control?.hasValidator(IdsValidators.requiredTrue)\n || control?.hasValidator(IdsValidators.requiredFalse);\n });\n\n public getConnectedOverlayOrigin(): ElementRef {\n return this._fieldWrapper();\n }\n\n public containerClick(event: MouseEvent): void {\n const containerClick = this._child().onContainerClick;\n if (containerClick) {\n containerClick(event);\n }\n }\n}\n","<label class=\"ids-form-field__label\" [for]=\"_inputId()\">\n @if (hasRequiredValidator()) {\n <span class=\"ids-form-field__required-marker\"></span>\n }\n <ng-content select=\"ids-label\" />\n</label>\n\n<div #fieldWrapper class=\"ids-form-field__field-wrapper\">\n <div class=\"ids-form-field__field-wrapper__container\" (click)=\"containerClick($event)\">\n @if (_hasLeadingIcon()) {\n <div class=\"ids-form-field__leading-icon\">\n <ng-content select=\"ids-icon[idsLeadingIcon]\" />\n </div>\n }\n @if (_hasPrefix()) {\n <div class=\"ids-form-field__prefix\">\n <ng-content select=\"[idsPrefix]\" />\n </div>\n }\n <div class=\"ids-form-field__infix\">\n <ng-content />\n </div>\n @if (_hasSuffix()) {\n <div class=\"ids-form-field__suffix\">\n <ng-content select=\"[idsSuffix]\" />\n </div>\n }\n @if (_hasTrailingIcon()) {\n <div class=\"ids-form-field__trailing-icon\">\n <ng-content select=\"ids-icon[idsTrailingIcon]\" />\n </div>\n }\n </div>\n @if (_hasActions()) {\n <div class=\"ids-form-field__field-wrapper__action\">\n <ng-content select=\"[idsFormFieldAction]\" />\n </div>\n }\n</div>\n\n<div class=\"ids-form-field__subscript-wrapper\">\n @let messages = _displayedMessages();\n @if (messages) {\n <div class=\"ids-form-field__message-container\">\n @switch (messages) {\n @case (\"error\") {\n <ng-content select=\"ids-error-message\" />\n }\n @case (\"success\") {\n <ng-content select=\"ids-success-message\" />\n }\n @case (\"hint\") {\n <ng-content select=\"ids-hint-message\" />\n }\n }\n </div>\n }\n</div>\n","import { AbstractErrorStateMatcher, ErrorStateMatcher } from '../../common/error/error-state';\nimport { AbstractSuccessStateMatcher, SuccessStateMatcher } from '../../common/success/success-state';\n\nimport { InjectionToken } from '@angular/core';\n\nexport interface IdsInputDefaultConfig {\n errorStateMatcher?: typeof AbstractErrorStateMatcher\n successStateMatcher?: typeof AbstractSuccessStateMatcher\n}\n\nexport const IDS_INPUT_DEFAULT_CONFIG = new InjectionToken<IdsInputDefaultConfig>(\n 'IDS_INPUT_DEFAULT_CONFIG',\n {\n providedIn: 'root',\n factory: IDS_INPUT_DEFAULT_CONFIG_FACTORY,\n },\n);\n\nexport function IDS_INPUT_DEFAULT_CONFIG_FACTORY(): Required<IdsInputDefaultConfig> {\n return {\n errorStateMatcher: ErrorStateMatcher,\n successStateMatcher: SuccessStateMatcher,\n };\n}\n","import { IDS_INPUT_DEFAULT_CONFIG, IDS_INPUT_DEFAULT_CONFIG_FACTORY, IdsInputDefaultConfig } from './input-defaults';\nimport { IdsInputType } from './types/input.type';\n\nimport { AbstractErrorStateMatcher } from '../../common/error/error-state';\nimport { AbstractSuccessStateMatcher } from '../../common/success/success-state';\nimport { formFieldControlClass, IdsFormFieldControl } from '../form-field/form-field-control';\nimport { IDS_FORM_FIELD_CONTROL } from '../form-field/tokens/form-field-control';\n\nimport { AfterViewInit, computed, Directive, effect, ElementRef, inject, input, isDevMode, OnInit } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ControlEvent, StatusChangeEvent } from '@angular/forms';\n\nconst defaultConfig = IDS_INPUT_DEFAULT_CONFIG_FACTORY();\n\nconst IDS_INPUT_INVALID_TYPES: IdsInputType[] = [\n 'button',\n 'checkbox',\n 'file',\n 'hidden',\n 'image',\n 'radio',\n 'range',\n 'reset',\n 'submit',\n];\n\n@Directive({\n selector: `input[idsInput][ngModel]:not([formControl]):not([formControlName]),\n input[idsInput][formControl]:not([ngModel]):not([formControlName]),\n input[idsInput][formControlName]:not([ngModel]):not([formControl]),\n textarea[idsInput][ngModel]:not([formControl]):not([formControlName]),\n textarea[idsInput][formControl]:not([ngModel]):not([formControlName]),\n textarea[idsInput][formControlName]:not([ngModel]):not([formControl])`,\n exportAs: 'idsInput',\n standalone: true,\n providers: [\n {\n provide: IDS_FORM_FIELD_CONTROL,\n useExisting: IdsInputDirective,\n },\n ],\n host: {\n '[attr.placeholder]': 'placeholder()',\n '[attr.disabled]': 'disabled() ? \"\" : null',\n '[attr.readonly]': 'readonly() ? \"\" : null',\n '(focus)': '_focusChanged(true)',\n '(blur)': '_focusChanged(false)',\n },\n})\nexport class IdsInputDirective extends IdsFormFieldControl<IdsInputDefaultConfig> implements OnInit, AfterViewInit {\n protected override get _hostName(): string {\n return 'input';\n }\n\n protected readonly _elementRef = inject<ElementRef<HTMLInputElement> | ElementRef<HTMLTextAreaElement>>(ElementRef);\n\n protected readonly _defaultConfig = this._getDefaultConfig(defaultConfig, IDS_INPUT_DEFAULT_CONFIG);\n\n private _focused = false;\n\n public name = input<string>();\n public type = input<IdsInputType>('text');\n\n public readonly errorStateMatcher = input<AbstractErrorStateMatcher>(inject(this._defaultConfig.errorStateMatcher));\n public readonly successStateMatcher = input<AbstractSuccessStateMatcher>(inject(this._defaultConfig.successStateMatcher));\n\n protected _hostClasses = computed(() => this._getHostClasses([], [formFieldControlClass]));\n\n private _validateTypeEffect = effect(() => {\n this._validateType(this.type());\n });\n\n public ngAfterViewInit(): void {\n const control = this.ngControl()?.control;\n if (control) {\n this._disabled.set(control.status === 'DISABLED');\n control.events.pipe(takeUntilDestroyed(this._destroyRef)).subscribe((event) => this.updateControlState(event));\n }\n }\n\n private _validateType(type: IdsInputType): void {\n if (isDevMode() && IDS_INPUT_INVALID_TYPES.indexOf(type) > -1) {\n throw this._createHostError(`Input type ${type} is not supportedby idsInput`);\n }\n }\n\n public focus(options?: FocusOptions): void {\n this._elementRef.nativeElement.focus(options);\n }\n\n private _focusChanged(isFocused: boolean): void {\n if (isFocused !== this._focused) {\n this._focused = isFocused;\n }\n }\n\n public updateControlState(event: ControlEvent): void {\n this._errorStateTracker?.updateErrorState();\n this._successStateTracker?.updateSuccessState();\n\n if (event instanceof StatusChangeEvent) {\n this._disabled.set(event.status === 'DISABLED');\n }\n }\n\n /**\n * Should be an arrow function in order to handle `this` outside of this class\n */\n public onContainerClick = (): void => {\n if (!this._focused && !this.readonly() && !this.disabled) {\n this.focus();\n }\n };\n}\n","export const Message = {\n HINT: 'hint',\n ERROR: 'error',\n SUCCESS: 'success',\n} as const;\n\nexport type MessageType = (typeof Message)[keyof typeof Message];\n","import { IdsOptionGroupComponent } from '../option-group.component';\n\nimport { InjectionToken } from '@angular/core';\n\nexport const IDS_OPTION_GROUP = new InjectionToken<IdsOptionGroupComponent>('IdsOptionGroup');\n","import { IdsFormFieldVariantType } from '../../form-field/types/form-field-variant.type';\n\nimport { InjectionToken, Signal } from '@angular/core';\nimport { IdsSizeType } from '@i-cell/ids-angular/core';\n\nexport interface IdsOptionParentComponent {\n multiSelect: Signal<boolean>\n inertGroups?: boolean\n parentSize: Signal<IdsSizeType>\n parentVariant: Signal<IdsFormFieldVariantType>\n isOptionPreSelectedByValue(optionValue: unknown): boolean\n}\n\nexport const IDS_OPTION_PARENT_COMPONENT = new InjectionToken<IdsOptionParentComponent>(\n 'IDS_OPTION_PARENT_COMPONENT',\n);\n","import { IdsOptionComponent } from '../option.component';\n\nexport class IdsOptionSelectionChange<T = unknown> {\n constructor(\n public source: IdsOptionComponent<T>,\n public selected: boolean,\n public isUserInput = false,\n ) {}\n}\n","import { IDS_OPTION_GROUP } from './tokens/option-group';\nimport { IDS_OPTION_PARENT_COMPONENT } from './tokens/option-parent';\n\nimport { ChangeDetectionStrategy, Component, computed, inject, input, ViewEncapsulation } from '@angular/core';\nimport { coerceBooleanAttribute, ComponentBase } from '@i-cell/ids-angular/core';\n\n@Component({\n selector: 'ids-option-group',\n imports: [],\n templateUrl: './option-group.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{ provide: IDS_OPTION_GROUP, useExisting: IdsOptionGroupComponent }],\n host: {\n '[attr.role]': '_inert ? null : \"group\"',\n '[attr.aria-disabled]': '_inert ? null : disabled().toString()',\n '[attr.aria-labelledby]': '_inert ? null : _labelId()',\n },\n})\nexport class IdsOptionGroupComponent extends ComponentBase {\n protected override get _hostName(): string {\n return 'option-group';\n }\n\n private readonly _parent = inject(IDS_OPTION_PARENT_COMPONENT);\n protected readonly _inert = this._parent?.inertGroups ?? false;\n\n public label = input<string>();\n public disabled = input<boolean, unknown>(false, { transform: coerceBooleanAttribute });\n\n protected readonly _labelId = computed(() => `${this.id()}-label`);\n protected readonly _hostClasses = computed(() => this._getHostClasses([\n this.disabled() ? 'disabled' : null,\n this._parent.parentSize(),\n this._parent.parentVariant(),\n ]));\n}\n","<div role=\"presentation\" class=\"ids-option-group__label\" [id]=\"_labelId()\">\n <div class=\"ids-option-group__text\">{{ label() }}</div>\n</div>\n<ng-content select=\"ids-option, ng-container\" />\n","import { InjectionToken, Signal } from '@angular/core';\nimport { IdsSizeType } from '@i-cell/ids-angular/core';\n\nexport interface IdsPseudoCheckboxParent<T extends string> {\n embeddedPseudoCheckboxSize: Signal<IdsSizeType>\n embeddedPseudoCheckboxVariant: Signal<T>\n}\n\nexport const IDS_PSEUDO_CHECKBOX_PARENT = new InjectionToken<IdsPseudoCheckboxParent<string>>(\n 'IDS_PSEUDO_CHECKBOX_PARENT',\n);\n","export const IdsPseudoCheckboxState = {\n UNCHECKED: 'unchecked',\n CHECKED: 'checked',\n INDETERMINATE: 'indeterminate',\n} as const;\n\nexport type IdsPseudoCheckboxStateType = (typeof IdsPseudoCheckboxState)[keyof typeof IdsPseudoCheckboxState];\n","import { IDS_PSEUDO_CHECKBOX_PARENT } from './tokens/pseudo-checkbox-parent';\nimport { IdsPseudoCheckboxState, IdsPseudoCheckboxStateType } from './types/pseudo-checkbox-state.type';\n\nimport { ChangeDetectionStrategy, Component, computed, inject, input, ViewEncapsulation } from '@angular/core';\nimport { coerceBooleanAttribute, ComponentBase } from '@i-cell/ids-angular/core';\nimport { IdsIconComponent } from '@i-cell/ids-angular/icon';\n\n@Component({\n selector: 'ids-pseudo-checkbox',\n imports: [IdsIconComponent],\n templateUrl: './pseudo-checkbox.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class PseudoCheckboxComponent extends ComponentBase {\n protected override get _hostName(): string {\n return 'pseudo-checkbox';\n }\n\n private readonly _parent = inject(IDS_PSEUDO_CHECKBOX_PARENT, { optional: true });\n public checkboxState = input<IdsPseudoCheckboxStateType>(IdsPseudoCheckboxState.UNCHECKED);\n public disabled = input<boolean, unknown>(false, { transform: coerceBooleanAttribute });\n\n protected _isChecked = computed(() => this.checkboxState() === IdsPseudoCheckboxState.CHECKED);\n protected _isIndeterminate = computed(() => this.checkboxState() === IdsPseudoCheckboxState.INDETERMINATE);\n\n protected _hostClasses = computed(() => this._getHostClasses([\n this._parent?.embeddedPseudoCheckboxSize(),\n this._parent?.embeddedPseudoCheckboxVariant(),\n this.disabled() ? 'disabled' : null,\n ]),\n );\n}\n","<div class=\"ids-pseudo-checkbox__input-wrapper\">\n <input\n type=\"checkbox\"\n [disabled]=\"disabled()\"\n [attr.aria-checked]=\"_isIndeterminate() ? 'mixed' : null\"\n [checked]=\"_isChecked()\"\n [indeterminate]=\"_isIndeterminate()\"\n (change)=\"$event.stopPropagation()\"\n />\n <div class=\"ids-pseudo-checkbox__icon\" aria-hidden=\"true\">\n @if (_isIndeterminate()) {\n <ids-icon fontIcon=\"minus\" aria-hidden=\"true\" />\n }\n @if (_isChecked()) {\n <ids-icon fontIcon=\"check\" aria-hidden=\"true\" />\n }\n </div>\n</div>\n","import { IdsOptionGroupComponent } from './option-group.component';\nimport { IDS_OPTION_GROUP } from './tokens/option-group';\nimport { IDS_OPTION_PARENT_COMPONENT } from './tokens/option-parent';\nimport { IdsOptionSelectionChange } from './types/option-events.class';\n\nimport { IdsFormFieldVariant, IdsFormFieldVariantType } from '../form-field/types/form-field-variant.type';\nimport { PseudoCheckboxComponent } from '../pseudo-checkbox/pseudo-checkbox.component';\nimport { IDS_PSEUDO_CHECKBOX_PARENT, IdsPseudoCheckboxParent } from '../pseudo-checkbox/tokens/pseudo-checkbox-parent';\nimport { IdsPseudoCheckboxState } from '../pseudo-checkbox/types/pseudo-checkbox-state.type';\n\nimport { FocusOrigin } from '@angular/cdk/a11y';\nimport { hasModifierKey } from '@angular/cdk/keycodes';\nimport { ChangeDetectionStrategy, Component, computed, effect, ElementRef, inject, input, OnInit, output, signal, viewChild, ViewEncapsulation } from '@angular/core';\nimport { coerceBooleanAttribute, ComponentBase } from '@i-cell/ids-angular/core';\nimport { IdsIconComponent } from '@i-cell/ids-angular/icon';\n\n@Component({\n selector: 'ids-option',\n imports: [\n IdsIconComponent,\n PseudoCheckboxComponent,\n ],\n templateUrl: './option.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: IDS_PSEUDO_CHECKBOX_PARENT,\n useExisting: IdsOptionComponent,\n },\n ],\n host: {\n 'role': 'option',\n '[attr.aria-selected]': 'selected()',\n '[attr.aria-disabled]': 'disabled.toString()',\n '(click)': 'selectViaInteraction()',\n '(keydown)': '_handleKeydown($event)',\n },\n})\nexport class IdsOptionComponent<T = unknown>\n extends ComponentBase\n implements OnInit, IdsPseudoCheckboxParent<IdsFormFieldVariantType> {\n protected override get _hostName(): string {\n return 'option';\n }\n\n private readonly _parent = inject(IDS_OPTION_PARENT_COMPONENT);\n private readonly _element = inject<ElementRef<HTMLElement>>(ElementRef);\n public readonly group = inject(IDS_OPTION_GROUP, { optional: true });\n\n private _textElement = viewChild.required<ElementRef<HTMLElement>>('text');\n\n public selected = signal<boolean>(false);\n private _active = signal<boolean>(false);\n public size = computed(() => this._parent.parentSize());\n public variant = computed(() => this._parent.parentVariant());\n\n public value = input<T>();\n public explicitViewValue = input<string | null>(null, { alias: 'viewValue' });\n public disabledInput = input<boolean, unknown>(false, { alias: 'disabled', transform: coerceBooleanAttribute });\n\n public disabled = false; // Do not delete this class member, until ListKeyManagerOption requires: `disabled: boolean`\n\n protected _groupOrOptionIsDisabled = computed(() => this.group?.disabled() || this.disabledInput());\n\n protected readonly _multiSelect = Boolean(this._parent?.multiSelect());\n\n public onSelectionChange = output<IdsOptionSelectionChange<T>>();\n\n public viewValue = computed(() => this._textElement().nativeElement.textContent || this.explicitViewValue() || '');\n protected readonly _hostClasses = computed(() => this._getHostClasses([\n this.selected() ? 'selected' : null,\n this._active() ? 'active' : null,\n this._groupOrOptionIsDisabled() ? 'disabled' : null,\n this._multiSelect ? 'multiselect' : null,\n this.size(),\n this.variant(),\n ]));\n\n protected _pseudoCheckboxState = computed(() => (this.selected() ? IdsPseudoCheckboxState.CHECKED : IdsPseudoCheckboxState.UNCHECKED));\n public embeddedPseudoCheckboxSize = computed(() => this.size());\n public embeddedPseudoCheckboxVariant = signal(IdsFormFieldVariant.SURFACE);\n\n constructor() {\n super();\n effect(() => { // Do not delete this effect, until ListKeyManagerOption requires: `disabled: boolean`\n this.disabled = this.disabledInput();\n });\n }\n\n public ngOnInit(): void {\n const parent = this._parent;\n\n if (parent.isOptionPreSelectedByValue(this.value())) {\n this.selected.set(true);\n }\n }\n\n private _handleKeydown(event: KeyboardEvent): void {\n if ((event.key === 'ENTER' || event.key === ' ') && !hasModifierKey(event)) {\n this.selectViaInteraction();\n event.preventDefault();\n }\n }\n\n public selectViaInteraction(): void {\n if (!this._groupOrOptionIsDisabled()) {\n this._emitSelectionChangeEvent(!this.selected(), true);\n }\n }\n\n public getHostElement(): HTMLElement {\n return this._element.nativeElement;\n }\n\n public select(emitEvent = true): void {\n if (!this.selected()) {\n if (emitEvent) {\n this._emitSelectionChangeEvent(true);\n }\n }\n }\n\n public deselect(emitEvent = true): void {\n if (this.selected()) {\n if (emitEvent) {\n this._emitSelectionChangeEvent(false);\n }\n }\n }\n\n public focus(_origin?: FocusOrigin, options?: FocusOptions): void {\n const element = this._element.nativeElement;\n\n if (typeof element.focus === 'function') {\n element.focus(options);\n }\n }\n\n public setActiveStyles(): void {\n if (!this._active()) {\n this._active.set(true);\n }\n }\n\n public setInactiveStyles(): void {\n if (this._active()) {\n this._active.set(false);\n }\n }\n\n public getLabel(): string {\n return this.viewValue();\n }\n\n private _emitSelectionChangeEvent(selected: boolean, isUserInput = false): void {\n if (this._multiSelect || !this.selected()) {\n this.onSelectionChange.emit(new IdsOptionSelectionChange<T>(this, selected, isUserInput));\n }\n }\n}\n\nexport function _countGroupLabelsBeforeOption(\n optionIndex: number,\n options: Readonly<IdsOptionComponent[]>,\n optionGroups: Readonly<IdsOptionGroupComponent[]>,\n): number {\n if (optionGroups.length) {\n let groupCounter = 0;\n\n for (let i = 0; i < optionIndex + 1; i++) {\n if (options[i].group && options[i].group === optionGroups[groupCounter]) {\n groupCounter++;\n }\n }\n\n return groupCounter;\n }\n\n return 0;\n}\n\nexport function _getOptionScrollPosition(\n optionOffset: number,\n optionHeight: number,\n currentScrollPosition: number,\n panelHeight: number,\n): number {\n if (optionOffset < currentScrollPosition) {\n return optionOffset;\n }\n\n if (optionOffset + optionHeight > currentScrollPosition + panelHeight) {\n return Math.max(0, optionOffset - panelHeight + optionHeight);\n }\n\n return currentScrollPosition;\n}\n","@if (_multiSelect) {\n <ids-pseudo-checkbox aria-hidden=\"true\" [disabled]=\"_groupOrOptionIsDisabled()\" [checkboxState]=\"_pseudoCheckboxState()\" />\n}\n\n<div #text class=\"ids-option__text\"><ng-content /></div>\n\n@if (!_multiSelect && selected()) {\n <ids-icon fontIcon=\"check\" />\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: 'ids-label',\n standalone: true,\n})\nexport class IdsLabelDirective {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["defaultConfig","i1.IdsMessageDirective"],"mappings":"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"}
1
+ {"version":3,"file":"i-cell-ids-angular-forms.mjs","sources":["../../../projects/widgets/forms/common/error/error-state.ts","../../../projects/widgets/forms/common/success/success-state.ts","../../../projects/widgets/forms/components/fieldset/fieldset-row/fieldset-row.component.ts","../../../projects/widgets/forms/components/fieldset/fieldset-row/fieldset-row.component.html","../../../projects/widgets/forms/components/form-field/types/form-field-variant.type.ts","../../../projects/widgets/forms/components/fieldset/fieldset-defaults.ts","../../../projects/widgets/forms/components/fieldset/fieldset-message.directive.ts","../../../projects/widgets/forms/components/fieldset/fieldset.component.ts","../../../projects/widgets/forms/components/fieldset/fieldset.component.html","../../../projects/widgets/forms/components/form-field/tokens/form-field-control.ts","../../../projects/widgets/forms/components/form-field/form-field-control.ts","../../../projects/widgets/forms/components/form-field/form-field-defaults.ts","../../../projects/widgets/forms/directives/form-field-action.directive.ts","../../../projects/widgets/forms/directives/prefix.directive.ts","../../../projects/widgets/forms/directives/suffix.directive.ts","../../../projects/widgets/forms/validators.ts","../../../projects/widgets/forms/components/message/error-message/error-definition.directive.ts","../../../projects/widgets/forms/directives/message-suffix.directive.ts","../../../projects/widgets/forms/components/message/types/message-variant.type.ts","../../../projects/widgets/forms/components/message/message-defaults.ts","../../../projects/widgets/forms/components/message/types/message-parent-form-field.ts","../../../projects/widgets/forms/directives/message.directive.ts","../../../projects/widgets/forms/components/message/error-message/error-message.component.ts","../../../projects/widgets/forms/components/message/error-message/error-message.component.html","../../../projects/widgets/forms/directives/message-prefix.directive.ts","../../../projects/widgets/forms/components/message/hint-message/hint-message.component.ts","../../../projects/widgets/forms/components/message/hint-message/hint-message.component.html","../../../projects/widgets/forms/components/message/success-message/success-message.component.ts","../../../projects/widgets/forms/components/message/success-message/success-message.component.html","../../../projects/widgets/forms/components/form-field/form-field.component.ts","../../../projects/widgets/forms/components/form-field/form-field.component.html","../../../projects/widgets/forms/components/input/input-defaults.ts","../../../projects/widgets/forms/components/input/input.directive.ts","../../../projects/widgets/forms/components/message/types/message.type.ts","../../../projects/widgets/forms/components/option/tokens/option-group.ts","../../../projects/widgets/forms/components/option/tokens/option-parent.ts","../../../projects/widgets/forms/components/option/types/option-events.class.ts","../../../projects/widgets/forms/components/option/option-group.component.ts","../../../projects/widgets/forms/components/option/option-group.component.html","../../../projects/widgets/forms/components/pseudo-checkbox/tokens/pseudo-checkbox-parent.ts","../../../projects/widgets/forms/components/pseudo-checkbox/types/pseudo-checkbox-state.type.ts","../../../projects/widgets/forms/components/pseudo-checkbox/pseudo-checkbox.component.ts","../../../projects/widgets/forms/components/pseudo-checkbox/pseudo-checkbox.component.html","../../../projects/widgets/forms/components/option/option.component.ts","../../../projects/widgets/forms/components/option/option.component.html","../../../projects/widgets/forms/directives/label.directive.ts","../../../projects/widgets/forms/i-cell-ids-angular-forms.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { AbstractControl, FormGroupDirective, NgControl, NgForm } from '@angular/forms';\nimport { Subject } from 'rxjs';\n\nexport abstract class AbstractErrorStateMatcher {\n public abstract isErrorState(control: AbstractControl | null, form: FormGroupDirective | NgForm | null): boolean;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class ErrorStateMatcher extends AbstractErrorStateMatcher {\n public isErrorState(control: AbstractControl | null, form: FormGroupDirective | NgForm | null): boolean {\n return !!(control && control.invalid && (control.touched || (form && form.submitted)));\n }\n}\n\nexport class ErrorStateTracker {\n /** Whether the tracker is currently in an error state. */\n public hasErrorState = false;\n\n constructor(\n private _matcher: ErrorStateMatcher | null,\n private _ngControl: NgControl | null,\n private _parentFormGroup: FormGroupDirective | null,\n private _parentForm: NgForm | null,\n private _stateChanges?: Subject<void>,\n ) {}\n\n /** Updates the error state based on the provided error state matcher. */\n public updateErrorState(): void {\n const oldState = this.hasErrorState;\n const parent = this._parentFormGroup || this._parentForm;\n const matcher = this._matcher;\n const control = this._ngControl ? (this._ngControl.control) : null;\n const newState = matcher?.isErrorState(control, parent) ?? false;\n\n if (newState !== oldState) {\n this.hasErrorState = newState;\n this._stateChanges?.next();\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { AbstractControl, FormGroupDirective, NgControl, NgForm } from '@angular/forms';\nimport { Subject } from 'rxjs';\n\nexport abstract class AbstractSuccessStateMatcher {\n public abstract isSuccessState(control: AbstractControl | null, form: FormGroupDirective | NgForm | null): boolean;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class SuccessStateMatcher extends AbstractSuccessStateMatcher {\n public isSuccessState(control: AbstractControl | null, form: FormGroupDirective | NgForm | null): boolean {\n return !!(control && control.valid && (control.touched || (form && form.submitted)));\n }\n}\n\nexport class SuccessStateTracker {\n /** Whether the tracker is currently in an success state. */\n public hasSuccessState = false;\n\n constructor(\n private _matcher: SuccessStateMatcher | null,\n private _ngControl: NgControl | null,\n private _parentFormGroup: FormGroupDirective | null,\n private _parentForm: NgForm | null,\n private _stateChanges?: Subject<void>,\n ) {}\n\n /** Updates the success state based on the provided success state matcher. */\n public updateSuccessState(): void {\n const oldState = this.hasSuccessState;\n const parent = this._parentFormGroup || this._parentForm;\n const matcher = this._matcher;\n const control = this._ngControl ? (this._ngControl.control) : null;\n const newState = matcher?.isSuccessState(control, parent) ?? false;\n\n if (newState !== oldState) {\n this.hasSuccessState = newState;\n this._stateChanges?.next();\n }\n }\n}\n","import { ChangeDetectionStrategy, Component, signal, ViewEncapsulation } from '@angular/core';\nimport { ComponentBase } from '@i-cell/ids-angular/core';\n\n@Component({\n selector: 'ids-fieldset-row',\n imports: [],\n templateUrl: './fieldset-row.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class IdsFieldsetRowComponent extends ComponentBase {\n protected override get _hostName(): string {\n return 'fieldset-row';\n }\n\n protected _hostClasses = signal(this._getHostClasses([]));\n}\n","<ng-content />\n","export const IdsFormFieldVariant = {\n SURFACE: 'surface',\n LIGHT: 'light',\n} as const;\n\nexport type IdsFormFieldVariantType = (typeof IdsFormFieldVariant)[keyof typeof IdsFormFieldVariant];\n","import { IdsFormFieldVariant, IdsFormFieldVariantType } from '../form-field/types/form-field-variant.type';\n\nimport { InjectionToken } from '@angular/core';\nimport { IdsSize, IdsSizeType } from '@i-cell/ids-angular/core';\n\nexport interface IdsFieldsetDefaultConfig {\n size?: IdsSizeType\n variant?: IdsFormFieldVariantType,\n}\n\nexport const IDS_FIELDSET_DEFAULT_CONFIG = new InjectionToken<IdsFieldsetDefaultConfig>(\n 'IDS_FIELDSET_DEFAULT_CONFIG',\n {\n providedIn: 'root',\n factory: IDS_FIELDSET_DEFAULT_CONFIG_FACTORY,\n },\n);\n\nexport function IDS_FIELDSET_DEFAULT_CONFIG_FACTORY(): Required<IdsFieldsetDefaultConfig> {\n return {\n size: IdsSize.COMPACT,\n variant: IdsFormFieldVariant.SURFACE,\n };\n}\n\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[idsFieldsetMessage]',\n standalone: true,\n})\nexport class IdsFieldsetMessageDirective {}\n","import { IDS_FIELDSET_DEFAULT_CONFIG, IDS_FIELDSET_DEFAULT_CONFIG_FACTORY, IdsFieldsetDefaultConfig } from './fieldset-defaults';\nimport { IdsFieldsetMessageDirective } from './fieldset-message.directive';\n\nimport { IdsFormFieldVariantType } from '../form-field/types/form-field-variant.type';\n\nimport { ChangeDetectionStrategy, Component, computed, contentChildren, input, ViewEncapsulation } from '@angular/core';\nimport { ComponentBaseWithDefaults, IdsSizeType } from '@i-cell/ids-angular/core';\n\nconst defaultConfig = IDS_FIELDSET_DEFAULT_CONFIG_FACTORY();\n\n@Component({\n selector: 'fieldset[idsFieldset]',\n imports: [],\n templateUrl: './fieldset.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class IdsFieldsetComponent extends ComponentBaseWithDefaults<IdsFieldsetDefaultConfig> {\n protected override get _hostName(): string {\n return 'fieldset';\n }\n\n protected readonly _defaultConfig = this._getDefaultConfig(defaultConfig, IDS_FIELDSET_DEFAULT_CONFIG);\n\n public size = input<IdsSizeType>(this._defaultConfig.size);\n public variant = input<IdsFormFieldVariantType>(this._defaultConfig.variant);\n public legend = input<string>('');\n\n private _fieldsetMessage = contentChildren<IdsFieldsetMessageDirective>(IdsFieldsetMessageDirective);\n\n protected _hasMessage = computed(() => this._fieldsetMessage().length > 0);\n\n protected _hostClasses = computed(() => this._getHostClasses([\n this.size(),\n this.variant(),\n ]));\n}\n","<legend class=\"ids-fieldset-legend\">{{ legend() }}</legend>\n@if (_hasMessage()) {\n <div class=\"ids-fieldset-message\">\n <ng-content select=\"[idsFieldsetMessage]\" />\n </div>\n}\n<ng-content select=\"ids-fieldset-row\" />\n","import { IdsFormFieldControl } from '../form-field-control';\n\nimport { InjectionToken } from '@angular/core';\n\nexport const IDS_FORM_FIELD_CONTROL = new InjectionToken<IdsFormFieldControl>('IDS_FORM_FIELD_CONTROL');\n","import { AbstractErrorStateMatcher, ErrorStateTracker } from '../../common/error/error-state';\nimport { AbstractSuccessStateMatcher, SuccessStateTracker } from '../../common/success/success-state';\n\nimport { booleanAttribute, computed, Directive, effect, ElementRef, inject, Injector, input, Signal, signal } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { FormGroupDirective, NgControl, NgForm } from '@angular/forms';\nimport { ComponentBaseWithDefaults } from '@i-cell/ids-angular/core';\nimport { Subject, Subscription } from 'rxjs';\n\nexport const formFieldControlClass = 'ids-form-field-control';\n\n@Directive()\nexport abstract class IdsFormFieldControl<D = unknown> extends ComponentBaseWithDefaults<D> {\n protected readonly _injector = inject(Injector);\n protected readonly _parentForm = inject(NgForm, { optional: true });\n protected readonly _parentFormGroup = inject(FormGroupDirective, { optional: true });\n\n public readonly ngControl = signal<NgControl | null>(null);\n\n public readonly errorStateChanges = new Subject<void>();\n public readonly successStateChanges = new Subject<void>();\n\n public readonly canHandleSuccessState = input<boolean>(false);\n\n public readonly hasErrorState = signal<boolean>(false);\n public readonly hasSuccessState = signal<boolean>(false);\n\n protected abstract readonly _elementRef: ElementRef;\n\n public abstract readonly errorStateMatcher: Signal<AbstractErrorStateMatcher>;\n public abstract readonly successStateMatcher: Signal<AbstractSuccessStateMatcher>;\n\n private _canHandleSuccessStateEffect = effect(() => {\n this._setSuccessStateTracker(this.canHandleSuccessState());\n });\n\n /** Handles the `disabled` input binding */\n public readonly disabledInput = input<boolean, unknown>(false, { transform: booleanAttribute, alias: 'disabled' });\n /** Stores the `disabled` state internally */\n protected readonly _disabled = signal(this.disabledInput());\n /** The input's `disabled` state as a read-only signal (to enable/disable the contol programmatically, use the FormControl's related API) */\n public readonly disabled = computed(() => this._disabled());\n\n public readonly readonly = input<boolean, unknown>(false, { transform: booleanAttribute });\n\n /** This effect is triggered if the `disabled` attribute binding changes and delegates the change to the underlying FormControl */\n private _disabledInputEffect = effect(() => {\n const enableOrDisable = this.disabledInput() ? 'disable' : 'enable';\n const controlDir = this.ngControl();\n\n // The NgControl's `control` property might not be initialized so we delay the enable/disable call\n // (the FormControl's enable/disable method call will trigger a StatusChangeEvent and/or the ControlValueAccessor's setDisabledState() callback\n // so that we can update the `disabled` signal)\n queueMicrotask(() => controlDir?.control?.[enableOrDisable]());\n });\n\n public readonly required = input<boolean, unknown>(false, { transform: booleanAttribute });\n\n public readonly placeholder = input<string>('');\n\n public abstract onContainerClick(event: MouseEvent): void;\n\n protected _errorStateTracker?: ErrorStateTracker;\n protected _successStateTracker?: SuccessStateTracker;\n private _successStateSubscription?: Subscription;\n\n constructor() {\n super();\n\n // Get the NgControl reference as soon as we can\n queueMicrotask(() => {\n this.ngControl.set(this._injector.get(NgControl, null, { self: true }));\n this._initErrorStateTracker();\n });\n }\n\n public setDescribedByIds(ids: string[]): void {\n if (ids.length) {\n this._elementRef.nativeElement.setAttribute('aria-describedby', ids.join(' '));\n } else {\n this._elementRef.nativeElement.removeAttribute('aria-describedby');\n }\n }\n\n protected _initErrorStateTracker(): void {\n this._errorStateTracker = new ErrorStateTracker(\n this.errorStateMatcher(),\n this.ngControl(),\n this._parentFormGroup,\n this._parentForm,\n this.errorStateChanges,\n );\n\n this.errorStateChanges.pipe(\n takeUntilDestroyed(this._destroyRef),\n ).subscribe(() => this.hasErrorState.set(this._errorStateTracker!.hasErrorState));\n\n this._errorStateTracker.updateErrorState();\n }\n\n protected _setSuccessStateTracker(canHandleSuccessState: boolean): void {\n if (canHandleSuccessState) {\n this._successStateTracker = new SuccessStateTracker(\n this.successStateMatcher(),\n this.ngControl(),\n this._parentFormGroup,\n this._parentForm,\n this.successStateChanges,\n );\n\n this._successStateSubscription = this.successStateChanges.pipe(\n takeUntilDestroyed(this._destroyRef),\n ).subscribe(() => this.hasSuccessState.set(this._successStateTracker!.hasSuccessState));\n\n this._successStateTracker.updateSuccessState();\n } else {\n this._successStateTracker = undefined;\n this._successStateSubscription?.unsubscribe();\n this.hasSuccessState.set(false);\n }\n }\n}\n","import { IdsFormFieldVariant, IdsFormFieldVariantType } from './types/form-field-variant.type';\n\nimport { InjectionToken } from '@angular/core';\nimport { IdsSize, IdsSizeType } from '@i-cell/ids-angular/core';\n\nexport interface IdsFormFieldDefaultConfig {\n size?: IdsSizeType\n variant?: IdsFormFieldVariantType\n}\n\nexport const IDS_FORM_FIELD_DEFAULT_CONFIG = new InjectionToken<IdsFormFieldDefaultConfig>(\n 'IDS_FORM_FIELD_DEFAULT_CONFIG',\n {\n providedIn: 'root',\n factory: IDS_FORM_FIELD_DEFAULT_CONFIG_FACTORY,\n },\n);\n\nexport function IDS_FORM_FIELD_DEFAULT_CONFIG_FACTORY(): Required<IdsFormFieldDefaultConfig> {\n return {\n size: IdsSize.COMPACT,\n variant: IdsFormFieldVariant.SURFACE,\n };\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[idsFormFieldAction]',\n standalone: true,\n})\nexport class IdsFormFieldActionDirective {\n}\n","import { Directive, Input } from '@angular/core';\n\n@Directive({\n selector: '[idsPrefix], [idsLeadingIcon]',\n standalone: true,\n})\nexport class IdsPrefixDirective {\n @Input('idsLeadingIcon')\n public set idsLeadingIcon(value: '') {\n this.isLeadingIcon = true;\n }\n\n public isLeadingIcon = false;\n}\n","import { Directive, Input } from '@angular/core';\n\n@Directive({\n selector: '[idsSuffix], [idsTrailingIcon]',\n standalone: true,\n})\nexport class IdsSuffixDirective {\n @Input('idsTrailingIcon')\n public set idsTrailingIcon(value: '') {\n this.isTrailingIcon = true;\n }\n\n public isTrailingIcon = false;\n}\n","import { AbstractControl, ValidationErrors } from '@angular/forms';\n\nfunction isEmptyInputValue(value: unknown): boolean {\n return (\n value == null || ((typeof value === 'string' || Array.isArray(value)) && value.length === 0)\n );\n}\n\nexport class IdsValidators {\n public static required(control: AbstractControl): ValidationErrors | null {\n return requiredValidator(control);\n }\n\n public static requiredTrue(control: AbstractControl): ValidationErrors | null {\n return requiredTrueValidator(control);\n }\n\n public static requiredFalse(control: AbstractControl): ValidationErrors | null {\n return requiredFalseValidator(control);\n }\n}\n\nexport function requiredValidator(control: AbstractControl): ValidationErrors | null {\n return isEmptyInputValue(control.value) ? { required: true } : null;\n}\n\nexport function requiredTrueValidator(control: AbstractControl): ValidationErrors | null {\n return control.value === true ? null : { requiredTrue: true };\n}\n\nexport function requiredFalseValidator(control: AbstractControl): ValidationErrors | null {\n return control.value === false ? null : { requiredFalse: true };\n}\n","import { IdsErrorMessageMapping } from '../types/error-message-mapping';\n\nimport { Directive, ElementRef, inject, input } from '@angular/core';\n\n/**\n * Directive to map an error message to an error code for a form field.\n * Mappings must be defined between the directive element's tags ordered by priority (descending from top to bottom).\n * The error code is provided as an attribute, while the error message will be this directive's text content.\n * The latter can be a plain string literal or even an interpolated string value.\n *\n * @example\n * ```html\n * <ids-form-field>\n * <ids-label>Input field</ids-label>\n * <input\n * idsInput\n * ngModel\n * customValidator\n * required\n * [minlength]=\"3\"\n * [maxlength]=\"10\"\n * [pattern]=\"validPattern\"\n * >\n * <ids-error-message>\n * <ids-error-def code=\"required\">{{ 'ERROR.REQUIRED.CUSTOM' | translate }}</ids-error-def>\n * <ids-error-def code=\"minlength\">'minLength' error message</ids-error-def>\n * <ids-error-def code=\"maxlength\">'maxLength' error message</ids-error-def>\n * <ids-error-def code=\"pattern\">'pattern' error message with interpolation: {{ model.value }}</ids-error-def>\n * <ids-error-def code=\"custom\">Custom validator error message</ids-error-def>\n * </ids-error-message>\n * </ids-form-field>\n * ```\n */\n@Directive({\n selector: 'ids-error-def',\n})\nexport class IdsErrorDefinitionDirective {\n /**\n * The validation error's identifier code\n */\n public code = input.required<string>();\n\n private _elementRef = inject(ElementRef);\n\n /**\n * The validation error's message that will be presented to the user\n */\n get errorMessage(): string {\n return (this._elementRef.nativeElement as HTMLElement).innerText;\n }\n\n /**\n * Creates a IdsErrorMessageMapping instance based on this directive's state (code, errorMessage)\n * @returns A IdsErrorMessageMapping instance\n */\n public toErrorMessageMapping(): IdsErrorMessageMapping {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const self = this;\n return {\n code: this.code(),\n message: () => self.errorMessage,\n };\n }\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[idsMessageSuffix]',\n standalone: true,\n})\nexport class IdsMessageSuffixDirective {\n}\n","export const IdsMessageVariant = {\n SURFACE: 'surface',\n LIGHT: 'light',\n DARK: 'dark',\n} as const;\n\nexport type IdsMessageVariantType = (typeof IdsMessageVariant)[keyof typeof IdsMessageVariant];\n","import { IdsMessageVariant, IdsMessageVariantType } from './types/message-variant.type';\n\nimport { InjectionToken } from '@angular/core';\nimport { IdsSize, IdsSizeType } from '@i-cell/ids-angular/core';\n\nexport interface IdsMessageDefaultConfig {\n size?: IdsSizeType,\n variant?: IdsMessageVariantType,\n}\n\nexport const IDS_MESSAGE_DEFAULT_CONFIG = new InjectionToken<IdsMessageDefaultConfig>(\n 'IDS_MESSAGE_DEFAULT_CONFIG',\n {\n providedIn: 'root',\n factory: IDS_MESSAGE_DEFAULT_CONFIG_FACTORY,\n },\n);\n\nexport function IDS_MESSAGE_DEFAULT_CONFIG_FACTORY(): Required<IdsMessageDefaultConfig> {\n return {\n size: IdsSize.COMPACT,\n variant: IdsMessageVariant.SURFACE,\n };\n}\n\n","import { IdsFormFieldVariantType } from '../../form-field/types/form-field-variant.type';\n\nimport { InjectionToken, Signal } from '@angular/core';\nimport { IdsSizeType } from '@i-cell/ids-angular/core';\n\nexport interface IdsMessageParentFormField {\n disabled: Signal<boolean>;\n size: Signal<IdsSizeType>;\n variant: Signal<IdsFormFieldVariantType>;\n}\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport const IDS_MESSAGE_PARENT_FORM_FIELD = new InjectionToken<IdsMessageParentFormField>('IDS_MESSAGE_PARENT_FORM_FIELD');\n","import { IDS_MESSAGE_DEFAULT_CONFIG, IDS_MESSAGE_DEFAULT_CONFIG_FACTORY, IdsMessageDefaultConfig } from '../components/message/message-defaults';\nimport { IDS_MESSAGE_PARENT_FORM_FIELD } from '../components/message/types/message-parent-form-field';\nimport { IdsMessageVariantType } from '../components/message/types/message-variant.type';\n\nimport { Directive, computed, inject, input } from '@angular/core';\nimport { ComponentBaseWithDefaults, IdsSizeType } from '@i-cell/ids-angular/core';\n\nconst defaultConfig = IDS_MESSAGE_DEFAULT_CONFIG_FACTORY();\n\n@Directive({\n selector: '[idsMessage]',\n standalone: true,\n})\nexport class IdsMessageDirective extends ComponentBaseWithDefaults<IdsMessageDefaultConfig> {\n protected override get _hostName(): string {\n return 'message';\n }\n\n private readonly _parent = inject(IDS_MESSAGE_PARENT_FORM_FIELD, { skipSelf: true, optional: true });\n protected readonly _defaultConfig = this._getDefaultConfig(defaultConfig, IDS_MESSAGE_DEFAULT_CONFIG);\n\n public size = input<IdsSizeType>(this._defaultConfig.size);\n public variant = input<IdsMessageVariantType>(this._defaultConfig.variant);\n private _parentOrSelfSize = computed(() => this._parent?.size() ?? this.size());\n private _parentOrSelfVariant = computed(() => this._parent?.variant() ?? this.variant());\n private _parentDisabled = computed(() => this._parent?.disabled());\n\n protected _hostClasses = computed(() => this._getHostClasses([\n this._parentOrSelfSize(),\n this._parentOrSelfVariant(),\n this._parentDisabled() ? 'disabled' : null,\n ]));\n}\n","import { IdsErrorDefinitionDirective } from './error-definition.directive';\n\nimport { IdsMessageSuffixDirective } from '../../../directives/message-suffix.directive';\nimport { IdsMessageDirective } from '../../../directives/message.directive';\nimport { IdsFormFieldComponent } from '../../form-field/form-field.component';\nimport { IdsErrorMessageMapping } from '../types/error-message-mapping';\n\nimport { Component, ViewEncapsulation, computed, contentChildren, inject, signal } from '@angular/core';\nimport { takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';\nimport { AbstractControl } from '@angular/forms';\nimport { ComponentBase } from '@i-cell/ids-angular/core';\nimport { IdsIconComponent } from '@i-cell/ids-angular/icon';\nimport { asapScheduler, observeOn, of, startWith, switchMap, tap } from 'rxjs';\n\n@Component({\n selector: 'ids-error-message',\n imports: [IdsIconComponent],\n templateUrl: './error-message.component.html',\n hostDirectives: [IdsMessageDirective],\n encapsulation: ViewEncapsulation.None,\n})\nexport class IdsErrorMessageComponent extends ComponentBase {\n protected override get _hostName(): string {\n return 'error-message';\n }\n\n private _parent = inject(IdsFormFieldComponent, { skipSelf: true });\n\n private _control = signal<AbstractControl | null>(null);\n private _errorDefDirs = contentChildren(IdsErrorDefinitionDirective);\n private _errorDefs = computed(() => this._errorDefDirs().map((errorDefDir) => errorDefDir.toErrorMessageMapping()));\n\n protected _validationError = signal<IdsErrorMessageMapping | null>(null);\n\n protected _hostClasses = computed(() => this._getHostClasses([]));\n\n public suffixes = contentChildren(IdsMessageSuffixDirective);\n\n constructor() {\n super();\n toObservable(this._parent.controlDir).pipe(\n observeOn(asapScheduler),\n tap((controlDir) => this._control.set(controlDir?.control ?? null)),\n switchMap(() => this._control()?.statusChanges.pipe(startWith(this._control()?.status)) ?? of(null)),\n takeUntilDestroyed(this._destroyRef),\n ).subscribe((status) => {\n if (status === 'INVALID') {\n const nextError = this._selectMostImportantValidationError();\n this._validationError.set(nextError);\n } else {\n this._validationError.set(null);\n }\n });\n }\n\n private _selectMostImportantValidationError(): IdsErrorMessageMapping | null {\n const errorDefs = this._errorDefs();\n const control = this._control();\n\n if (!errorDefs?.length || !control?.errors || Object.keys(control.errors).length === 0) {\n return null;\n }\n\n const errorCodes = new Set(Object.keys(control.errors));\n\n return errorDefs.find((errorDef) => errorCodes.has(errorDef.code)) ?? null;\n }\n\n protected _getValidationErrorMessage(messageOrFn: IdsErrorMessageMapping['message']): string {\n return messageOrFn instanceof Function ? messageOrFn() : messageOrFn;\n }\n}\n","<div class=\"ids-message__prefix\">\n <ng-content select=\"[idsMessagePrefix]\">\n <ids-icon aria-hidden=\"true\" fontIcon=\"exclamation-circle\" variant=\"error\" />\n </ng-content>\n</div>\n<div class=\"ids-message__text\">\n @let validationError = _validationError();\n @if (validationError) {\n @let messageString = _getValidationErrorMessage(validationError.message);\n {{ messageString }}\n }\n</div>\n@if (suffixes().length) {\n <div class=\"ids-message__suffix\">\n <ng-content select=\"[idsMessageSuffix]\" />\n </div>\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[idsMessagePrefix]',\n standalone: true,\n})\nexport class IdsMessagePrefixDirective {\n}\n","import { IdsMessagePrefixDirective } from '../../../directives/message-prefix.directive';\nimport { IdsMessageSuffixDirective } from '../../../directives/message-suffix.directive';\nimport { IdsMessageDirective } from '../../../directives/message.directive';\n\nimport { Component, contentChildren, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'ids-hint-message',\n imports: [],\n templateUrl: './hint-message.component.html',\n host: {\n class: 'ids-hint-message',\n },\n hostDirectives: [\n {\n directive: IdsMessageDirective,\n inputs: [\n 'size: size',\n 'variant: variant',\n ],\n },\n ],\n encapsulation: ViewEncapsulation.None,\n})\nexport class IdsHintMessageComponent {\n public prefixes = contentChildren(IdsMessagePrefixDirective);\n public suffixes = contentChildren(IdsMessageSuffixDirective);\n}\n","@if (prefixes().length) {\n <div class=\"ids-message__prefix\">\n <ng-content select=\"[idsMessagePrefix]\" />\n </div>\n}\n<div class=\"ids-message__text\">\n <ng-content />\n</div>\n@if (suffixes().length) {\n <div class=\"ids-message__suffix\">\n <ng-content select=\"[idsMessageSuffix]\" />\n </div>\n}\n","import { IdsMessageSuffixDirective } from '../../../directives/message-suffix.directive';\nimport { IdsMessageDirective } from '../../../directives/message.directive';\n\nimport { Component, ViewEncapsulation, computed, contentChildren } from '@angular/core';\nimport { ComponentBase } from '@i-cell/ids-angular/core';\nimport { IdsIconComponent } from '@i-cell/ids-angular/icon';\n\n@Component({\n selector: 'ids-success-message',\n imports: [IdsIconComponent],\n templateUrl: './success-message.component.html',\n hostDirectives: [IdsMessageDirective],\n encapsulation: ViewEncapsulation.None,\n})\nexport class IdsSuccessMessageComponent extends ComponentBase {\n protected override get _hostName(): string {\n return 'success-message';\n }\n\n protected _hostClasses = computed(() => this._getHostClasses([]));\n\n public suffixes = contentChildren(IdsMessageSuffixDirective);\n}\n","<div class=\"ids-message__prefix\">\n <ng-content select=\"[idsMessagePrefix]\">\n <ids-icon aria-hidden=\"true\" fontIcon=\"check\" variant=\"success\" />\n </ng-content>\n</div>\n<div class=\"ids-message__text\">\n <ng-content />\n</div>\n@if (suffixes().length) {\n <div class=\"ids-message__suffix\">\n <ng-content select=\"[idsMessageSuffix]\" />\n </div>\n}\n","import { IDS_FORM_FIELD_DEFAULT_CONFIG, IDS_FORM_FIELD_DEFAULT_CONFIG_FACTORY, IdsFormFieldDefaultConfig } from './form-field-defaults';\nimport { IDS_FORM_FIELD_CONTROL } from './tokens/form-field-control';\nimport { IdsFormFieldVariantType } from './types/form-field-variant.type';\n\nimport { IdsFormFieldActionDirective } from '../../directives/form-field-action.directive';\nimport { IdsPrefixDirective } from '../../directives/prefix.directive';\nimport { IdsSuffixDirective } from '../../directives/suffix.directive';\nimport { IdsValidators } from '../../validators';\nimport { IdsFieldsetComponent } from '../fieldset/fieldset.component';\nimport { IdsErrorMessageComponent } from '../message/error-message/error-message.component';\nimport { IdsHintMessageComponent } from '../message/hint-message/hint-message.component';\nimport { IdsSuccessMessageComponent } from '../message/success-message/success-message.component';\n\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, computed, contentChild, contentChildren, ElementRef, inject, input, viewChild, ViewEncapsulation } from '@angular/core';\nimport { Validators } from '@angular/forms';\nimport { ComponentBaseWithDefaults, IdsSizeType } from '@i-cell/ids-angular/core';\n\nconst defaultConfig = IDS_FORM_FIELD_DEFAULT_CONFIG_FACTORY();\n\n@Component({\n selector: 'ids-form-field',\n imports: [],\n templateUrl: './form-field.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class IdsFormFieldComponent extends ComponentBaseWithDefaults<IdsFormFieldDefaultConfig> {\n protected override get _hostName(): string {\n return 'form-field';\n }\n\n private readonly _changeDetectorRef = inject(ChangeDetectorRef);\n private readonly _parentFieldset = inject(IdsFieldsetComponent, { optional: true });\n protected readonly _defaultConfig = this._getDefaultConfig(defaultConfig, IDS_FORM_FIELD_DEFAULT_CONFIG);\n\n private _fieldWrapper = viewChild.required<ElementRef<HTMLElement>>('fieldWrapper');\n private _child = contentChild.required(IDS_FORM_FIELD_CONTROL);\n private _hintMessages = contentChildren(IdsHintMessageComponent, { descendants: true });\n private _successMessages = contentChildren(IdsSuccessMessageComponent, { descendants: true });\n private _errorMessages = contentChildren(IdsErrorMessageComponent, { descendants: true });\n private _actions = contentChildren(IdsFormFieldActionDirective);\n private _prefixes = contentChildren(IdsPrefixDirective);\n private _suffixes = contentChildren(IdsSuffixDirective);\n\n protected _hasActions = computed(() => Boolean(this._actions().length));\n protected _hasLeadingIcon = computed(() => Boolean(this._prefixes().filter((prefix) => prefix.isLeadingIcon).length));\n protected _hasPrefix = computed(() => Boolean(this._prefixes().filter((prefix) => !prefix.isLeadingIcon).length));\n protected _hasSuffix = computed(() => Boolean(this._suffixes().filter((suffix) => !suffix.isTrailingIcon).length));\n protected _hasTrailingIcon = computed(() => Boolean(this._suffixes().filter((suffix) => suffix.isTrailingIcon).length));\n protected _inputId = computed(() => this._child()?.id());\n public size = input<IdsSizeType>(this._defaultConfig.size);\n public variant = input<IdsFormFieldVariantType>(this._defaultConfig.variant);\n public parentOrSelfSize = computed(() => this._parentFieldset?.size() ?? this.size());\n public parentOrSelfVariant = computed(() => this._parentFieldset?.variant() ?? this.variant());\n public controlDir = computed(() => this._child().ngControl());\n public disabled = computed(() => Boolean(this._child().disabled()));\n public readonly = computed(() => Boolean(this._child().readonly()));\n private _hasErrorState = computed(() => Boolean(this._child().hasErrorState()));\n private _hasSuccessState = computed(() => Boolean(this._child().hasSuccessState()));\n protected _hostClasses = computed(() => this._getHostClasses([\n this.parentOrSelfSize(),\n this.parentOrSelfVariant(),\n this.disabled() ? 'disabled' : null,\n this._hasErrorState() ? 'invalid' : null,\n this._hasSuccessState() ? 'valid' : null,\n ]),\n );\n\n protected _displayedMessages = computed<'error' | 'success' | 'hint' | undefined>(() => {\n if (this._errorMessages().length > 0 && this._hasErrorState()) {\n return 'error';\n }\n if (this._successMessages().length > 0 && this._hasSuccessState()) {\n return 'success';\n }\n if (this._hintMessages().length > 0) {\n return 'hint';\n }\n return undefined;\n });\n\n public hasRequiredValidator = computed(() => {\n const control = this.controlDir()?.control;\n return this._child().required()\n || control?.hasValidator(Validators.required)\n || control?.hasValidator(Validators.requiredTrue)\n || control?.hasValidator(IdsValidators.required)\n || control?.hasValidator(IdsValidators.requiredTrue)\n || control?.hasValidator(IdsValidators.requiredFalse);\n });\n\n public getConnectedOverlayOrigin(): ElementRef {\n return this._fieldWrapper();\n }\n\n public containerClick(event: MouseEvent): void {\n const containerClick = this._child().onContainerClick;\n if (containerClick) {\n containerClick(event);\n }\n }\n}\n","<label class=\"ids-form-field__label\" [for]=\"_inputId()\">\n @if (hasRequiredValidator()) {\n <span class=\"ids-form-field__required-marker\"></span>\n }\n <ng-content select=\"ids-label\" />\n</label>\n\n<div #fieldWrapper class=\"ids-form-field__field-wrapper\">\n <div class=\"ids-form-field__field-wrapper__container\" (click)=\"containerClick($event)\">\n @if (_hasLeadingIcon()) {\n <div class=\"ids-form-field__leading-icon\">\n <ng-content select=\"ids-icon[idsLeadingIcon]\" />\n </div>\n }\n @if (_hasPrefix()) {\n <div class=\"ids-form-field__prefix\">\n <ng-content select=\"[idsPrefix]\" />\n </div>\n }\n <div class=\"ids-form-field__infix\">\n <ng-content />\n </div>\n @if (_hasSuffix()) {\n <div class=\"ids-form-field__suffix\">\n <ng-content select=\"[idsSuffix]\" />\n </div>\n }\n @if (_hasTrailingIcon()) {\n <div class=\"ids-form-field__trailing-icon\">\n <ng-content select=\"ids-icon[idsTrailingIcon]\" />\n </div>\n }\n </div>\n @if (_hasActions()) {\n <div class=\"ids-form-field__field-wrapper__action\">\n <ng-content select=\"[idsFormFieldAction]\" />\n </div>\n }\n</div>\n\n<div class=\"ids-form-field__subscript-wrapper\">\n @let messages = _displayedMessages();\n @if (messages) {\n <div class=\"ids-form-field__message-container\">\n @switch (messages) {\n @case (\"error\") {\n <ng-content select=\"ids-error-message\" />\n }\n @case (\"success\") {\n <ng-content select=\"ids-success-message\" />\n }\n @case (\"hint\") {\n <ng-content select=\"ids-hint-message\" />\n }\n }\n </div>\n }\n</div>\n","import { AbstractErrorStateMatcher, ErrorStateMatcher } from '../../common/error/error-state';\nimport { AbstractSuccessStateMatcher, SuccessStateMatcher } from '../../common/success/success-state';\n\nimport { InjectionToken } from '@angular/core';\n\nexport interface IdsInputDefaultConfig {\n errorStateMatcher?: typeof AbstractErrorStateMatcher\n successStateMatcher?: typeof AbstractSuccessStateMatcher\n}\n\nexport const IDS_INPUT_DEFAULT_CONFIG = new InjectionToken<IdsInputDefaultConfig>(\n 'IDS_INPUT_DEFAULT_CONFIG',\n {\n providedIn: 'root',\n factory: IDS_INPUT_DEFAULT_CONFIG_FACTORY,\n },\n);\n\nexport function IDS_INPUT_DEFAULT_CONFIG_FACTORY(): Required<IdsInputDefaultConfig> {\n return {\n errorStateMatcher: ErrorStateMatcher,\n successStateMatcher: SuccessStateMatcher,\n };\n}\n","import { IDS_INPUT_DEFAULT_CONFIG, IDS_INPUT_DEFAULT_CONFIG_FACTORY, IdsInputDefaultConfig } from './input-defaults';\nimport { IdsInputType } from './types/input.type';\n\nimport { AbstractErrorStateMatcher } from '../../common/error/error-state';\nimport { AbstractSuccessStateMatcher } from '../../common/success/success-state';\nimport { formFieldControlClass, IdsFormFieldControl } from '../form-field/form-field-control';\nimport { IDS_FORM_FIELD_CONTROL } from '../form-field/tokens/form-field-control';\n\nimport { AfterViewInit, computed, Directive, effect, ElementRef, inject, input, isDevMode } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ControlEvent, StatusChangeEvent } from '@angular/forms';\n\nconst defaultConfig = IDS_INPUT_DEFAULT_CONFIG_FACTORY();\n\nconst IDS_INPUT_INVALID_TYPES: IdsInputType[] = [\n 'button',\n 'checkbox',\n 'file',\n 'hidden',\n 'image',\n 'radio',\n 'range',\n 'reset',\n 'submit',\n];\n\n@Directive({\n selector: `input[idsInput][ngModel]:not([formControl]):not([formControlName]),\n input[idsInput][formControl]:not([ngModel]):not([formControlName]),\n input[idsInput][formControlName]:not([ngModel]):not([formControl]),\n textarea[idsInput][ngModel]:not([formControl]):not([formControlName]),\n textarea[idsInput][formControl]:not([ngModel]):not([formControlName]),\n textarea[idsInput][formControlName]:not([ngModel]):not([formControl])`,\n exportAs: 'idsInput',\n standalone: true,\n providers: [\n {\n provide: IDS_FORM_FIELD_CONTROL,\n useExisting: IdsInputDirective,\n },\n ],\n host: {\n '[attr.placeholder]': 'placeholder()',\n '[attr.disabled]': 'disabled() ? \"\" : null',\n '[attr.readonly]': 'readonly() ? \"\" : null',\n '(focus)': '_focusChanged(true)',\n '(blur)': '_focusChanged(false)',\n },\n})\nexport class IdsInputDirective extends IdsFormFieldControl<IdsInputDefaultConfig> implements AfterViewInit {\n protected override get _hostName(): string {\n return 'input';\n }\n\n protected readonly _elementRef = inject<ElementRef<HTMLInputElement> | ElementRef<HTMLTextAreaElement>>(ElementRef);\n\n protected readonly _defaultConfig = this._getDefaultConfig(defaultConfig, IDS_INPUT_DEFAULT_CONFIG);\n\n private _focused = false;\n\n public name = input<string>();\n public type = input<IdsInputType>('text');\n\n public readonly errorStateMatcher = input<AbstractErrorStateMatcher>(inject(this._defaultConfig.errorStateMatcher));\n public readonly successStateMatcher = input<AbstractSuccessStateMatcher>(inject(this._defaultConfig.successStateMatcher));\n\n protected _hostClasses = computed(() => this._getHostClasses([], [formFieldControlClass]));\n\n private _validateTypeEffect = effect(() => {\n this._validateType(this.type());\n });\n\n public ngAfterViewInit(): void {\n queueMicrotask(() => {\n const control = this.ngControl()?.control;\n if (control) {\n this._disabled.set(control.status === 'DISABLED');\n control.events.pipe(takeUntilDestroyed(this._destroyRef)).subscribe((event) => this.updateControlState(event));\n }\n });\n }\n\n private _validateType(type: IdsInputType): void {\n if (isDevMode() && IDS_INPUT_INVALID_TYPES.indexOf(type) > -1) {\n throw this._createHostError(`Input type ${type} is not supportedby idsInput`);\n }\n }\n\n public focus(options?: FocusOptions): void {\n this._elementRef.nativeElement.focus(options);\n }\n\n private _focusChanged(isFocused: boolean): void {\n if (isFocused !== this._focused) {\n this._focused = isFocused;\n }\n }\n\n public updateControlState(event: ControlEvent): void {\n this._errorStateTracker?.updateErrorState();\n this._successStateTracker?.updateSuccessState();\n\n if (event instanceof StatusChangeEvent) {\n this._disabled.set(event.status === 'DISABLED');\n }\n }\n\n /**\n * Should be an arrow function in order to handle `this` outside of this class\n */\n public onContainerClick = (): void => {\n if (!this._focused && !this.readonly() && !this.disabled) {\n this.focus();\n }\n };\n}\n","export const Message = {\n HINT: 'hint',\n ERROR: 'error',\n SUCCESS: 'success',\n} as const;\n\nexport type MessageType = (typeof Message)[keyof typeof Message];\n","import { IdsOptionGroupComponent } from '../option-group.component';\n\nimport { InjectionToken } from '@angular/core';\n\nexport const IDS_OPTION_GROUP = new InjectionToken<IdsOptionGroupComponent>('IdsOptionGroup');\n","import { IdsFormFieldVariantType } from '../../form-field/types/form-field-variant.type';\n\nimport { InjectionToken, Signal } from '@angular/core';\nimport { IdsSizeType } from '@i-cell/ids-angular/core';\n\nexport interface IdsOptionParentComponent {\n multiSelect: Signal<boolean>\n inertGroups?: boolean\n parentSize: Signal<IdsSizeType>\n parentVariant: Signal<IdsFormFieldVariantType>\n isOptionPreSelectedByValue(optionValue: unknown): boolean\n}\n\nexport const IDS_OPTION_PARENT_COMPONENT = new InjectionToken<IdsOptionParentComponent>(\n 'IDS_OPTION_PARENT_COMPONENT',\n);\n","import { IdsOptionComponent } from '../option.component';\n\nexport class IdsOptionSelectionChange<T = unknown> {\n constructor(\n public source: IdsOptionComponent<T>,\n public selected: boolean,\n public isUserInput = false,\n ) {}\n}\n","import { IDS_OPTION_GROUP } from './tokens/option-group';\nimport { IDS_OPTION_PARENT_COMPONENT } from './tokens/option-parent';\n\nimport { ChangeDetectionStrategy, Component, computed, inject, input, ViewEncapsulation } from '@angular/core';\nimport { coerceBooleanAttribute, ComponentBase } from '@i-cell/ids-angular/core';\n\n@Component({\n selector: 'ids-option-group',\n imports: [],\n templateUrl: './option-group.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{ provide: IDS_OPTION_GROUP, useExisting: IdsOptionGroupComponent }],\n host: {\n '[attr.role]': '_inert ? null : \"group\"',\n '[attr.aria-disabled]': '_inert ? null : disabled().toString()',\n '[attr.aria-labelledby]': '_inert ? null : _labelId()',\n },\n})\nexport class IdsOptionGroupComponent extends ComponentBase {\n protected override get _hostName(): string {\n return 'option-group';\n }\n\n private readonly _parent = inject(IDS_OPTION_PARENT_COMPONENT);\n protected readonly _inert = this._parent?.inertGroups ?? false;\n\n public label = input<string>();\n public disabled = input<boolean, unknown>(false, { transform: coerceBooleanAttribute });\n\n protected readonly _labelId = computed(() => `${this.id()}-label`);\n protected readonly _hostClasses = computed(() => this._getHostClasses([\n this.disabled() ? 'disabled' : null,\n this._parent.parentSize(),\n this._parent.parentVariant(),\n ]));\n}\n","<div role=\"presentation\" class=\"ids-option-group__label\" [id]=\"_labelId()\">\n <div class=\"ids-option-group__text\">{{ label() }}</div>\n</div>\n<ng-content select=\"ids-option, ng-container\" />\n","import { InjectionToken, Signal } from '@angular/core';\nimport { IdsSizeType } from '@i-cell/ids-angular/core';\n\nexport interface IdsPseudoCheckboxParent<T extends string> {\n embeddedPseudoCheckboxSize: Signal<IdsSizeType>\n embeddedPseudoCheckboxVariant: Signal<T>\n}\n\nexport const IDS_PSEUDO_CHECKBOX_PARENT = new InjectionToken<IdsPseudoCheckboxParent<string>>(\n 'IDS_PSEUDO_CHECKBOX_PARENT',\n);\n","export const IdsPseudoCheckboxState = {\n UNCHECKED: 'unchecked',\n CHECKED: 'checked',\n INDETERMINATE: 'indeterminate',\n} as const;\n\nexport type IdsPseudoCheckboxStateType = (typeof IdsPseudoCheckboxState)[keyof typeof IdsPseudoCheckboxState];\n","import { IDS_PSEUDO_CHECKBOX_PARENT } from './tokens/pseudo-checkbox-parent';\nimport { IdsPseudoCheckboxState, IdsPseudoCheckboxStateType } from './types/pseudo-checkbox-state.type';\n\nimport { ChangeDetectionStrategy, Component, computed, inject, input, ViewEncapsulation } from '@angular/core';\nimport { coerceBooleanAttribute, ComponentBase } from '@i-cell/ids-angular/core';\nimport { IdsIconComponent } from '@i-cell/ids-angular/icon';\n\n@Component({\n selector: 'ids-pseudo-checkbox',\n imports: [IdsIconComponent],\n templateUrl: './pseudo-checkbox.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class PseudoCheckboxComponent extends ComponentBase {\n protected override get _hostName(): string {\n return 'pseudo-checkbox';\n }\n\n private readonly _parent = inject(IDS_PSEUDO_CHECKBOX_PARENT, { optional: true });\n public checkboxState = input<IdsPseudoCheckboxStateType>(IdsPseudoCheckboxState.UNCHECKED);\n public disabled = input<boolean, unknown>(false, { transform: coerceBooleanAttribute });\n\n protected _isChecked = computed(() => this.checkboxState() === IdsPseudoCheckboxState.CHECKED);\n protected _isIndeterminate = computed(() => this.checkboxState() === IdsPseudoCheckboxState.INDETERMINATE);\n\n protected _hostClasses = computed(() => this._getHostClasses([\n this._parent?.embeddedPseudoCheckboxSize(),\n this._parent?.embeddedPseudoCheckboxVariant(),\n this.disabled() ? 'disabled' : null,\n ]),\n );\n}\n","<div class=\"ids-pseudo-checkbox__input-wrapper\">\n <input\n type=\"checkbox\"\n [disabled]=\"disabled()\"\n [attr.aria-checked]=\"_isIndeterminate() ? 'mixed' : null\"\n [checked]=\"_isChecked()\"\n [indeterminate]=\"_isIndeterminate()\"\n (change)=\"$event.stopPropagation()\"\n />\n <div class=\"ids-pseudo-checkbox__icon\" aria-hidden=\"true\">\n @if (_isIndeterminate()) {\n <ids-icon fontIcon=\"minus\" aria-hidden=\"true\" />\n }\n @if (_isChecked()) {\n <ids-icon fontIcon=\"check\" aria-hidden=\"true\" />\n }\n </div>\n</div>\n","import { IdsOptionGroupComponent } from './option-group.component';\nimport { IDS_OPTION_GROUP } from './tokens/option-group';\nimport { IDS_OPTION_PARENT_COMPONENT } from './tokens/option-parent';\nimport { IdsOptionSelectionChange } from './types/option-events.class';\n\nimport { IdsFormFieldVariant, IdsFormFieldVariantType } from '../form-field/types/form-field-variant.type';\nimport { PseudoCheckboxComponent } from '../pseudo-checkbox/pseudo-checkbox.component';\nimport { IDS_PSEUDO_CHECKBOX_PARENT, IdsPseudoCheckboxParent } from '../pseudo-checkbox/tokens/pseudo-checkbox-parent';\nimport { IdsPseudoCheckboxState } from '../pseudo-checkbox/types/pseudo-checkbox-state.type';\n\nimport { FocusOrigin } from '@angular/cdk/a11y';\nimport { hasModifierKey } from '@angular/cdk/keycodes';\nimport { ChangeDetectionStrategy, Component, computed, effect, ElementRef, inject, input, OnInit, output, signal, viewChild, ViewEncapsulation } from '@angular/core';\nimport { coerceBooleanAttribute, ComponentBase } from '@i-cell/ids-angular/core';\nimport { IdsIconComponent } from '@i-cell/ids-angular/icon';\n\n@Component({\n selector: 'ids-option',\n imports: [\n IdsIconComponent,\n PseudoCheckboxComponent,\n ],\n templateUrl: './option.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: IDS_PSEUDO_CHECKBOX_PARENT,\n useExisting: IdsOptionComponent,\n },\n ],\n host: {\n 'role': 'option',\n '[attr.aria-selected]': 'selected()',\n '[attr.aria-disabled]': 'disabled.toString()',\n '(click)': 'selectViaInteraction()',\n '(keydown)': '_handleKeydown($event)',\n },\n})\nexport class IdsOptionComponent<T = unknown>\n extends ComponentBase\n implements OnInit, IdsPseudoCheckboxParent<IdsFormFieldVariantType> {\n protected override get _hostName(): string {\n return 'option';\n }\n\n private readonly _parent = inject(IDS_OPTION_PARENT_COMPONENT);\n private readonly _element = inject<ElementRef<HTMLElement>>(ElementRef);\n public readonly group = inject(IDS_OPTION_GROUP, { optional: true });\n\n private _textElement = viewChild.required<ElementRef<HTMLElement>>('text');\n\n public selected = signal<boolean>(false);\n private _active = signal<boolean>(false);\n public size = computed(() => this._parent.parentSize());\n public variant = computed(() => this._parent.parentVariant());\n\n public value = input<T>();\n public explicitViewValue = input<string | null>(null, { alias: 'viewValue' });\n public disabledInput = input<boolean, unknown>(false, { alias: 'disabled', transform: coerceBooleanAttribute });\n\n public disabled = false; // Do not delete this class member, until ListKeyManagerOption requires: `disabled: boolean`\n\n protected _groupOrOptionIsDisabled = computed(() => this.group?.disabled() || this.disabledInput());\n\n protected readonly _multiSelect = Boolean(this._parent?.multiSelect());\n\n public onSelectionChange = output<IdsOptionSelectionChange<T>>();\n\n public viewValue = computed(() => this._textElement().nativeElement.textContent || this.explicitViewValue() || '');\n protected readonly _hostClasses = computed(() => this._getHostClasses([\n this.selected() ? 'selected' : null,\n this._active() ? 'active' : null,\n this._groupOrOptionIsDisabled() ? 'disabled' : null,\n this._multiSelect ? 'multiselect' : null,\n this.size(),\n this.variant(),\n ]));\n\n protected _pseudoCheckboxState = computed(() => (this.selected() ? IdsPseudoCheckboxState.CHECKED : IdsPseudoCheckboxState.UNCHECKED));\n public embeddedPseudoCheckboxSize = computed(() => this.size());\n public embeddedPseudoCheckboxVariant = signal(IdsFormFieldVariant.SURFACE);\n\n constructor() {\n super();\n effect(() => { // Do not delete this effect, until ListKeyManagerOption requires: `disabled: boolean`\n this.disabled = this.disabledInput();\n });\n }\n\n public ngOnInit(): void {\n const parent = this._parent;\n\n if (parent.isOptionPreSelectedByValue(this.value())) {\n this.selected.set(true);\n }\n }\n\n private _handleKeydown(event: KeyboardEvent): void {\n if ((event.key === 'ENTER' || event.key === ' ') && !hasModifierKey(event)) {\n this.selectViaInteraction();\n event.preventDefault();\n }\n }\n\n public selectViaInteraction(): void {\n if (!this._groupOrOptionIsDisabled()) {\n this._emitSelectionChangeEvent(!this.selected(), true);\n }\n }\n\n public getHostElement(): HTMLElement {\n return this._element.nativeElement;\n }\n\n public select(emitEvent = true): void {\n if (!this.selected()) {\n if (emitEvent) {\n this._emitSelectionChangeEvent(true);\n }\n }\n }\n\n public deselect(emitEvent = true): void {\n if (this.selected()) {\n if (emitEvent) {\n this._emitSelectionChangeEvent(false);\n }\n }\n }\n\n public focus(_origin?: FocusOrigin, options?: FocusOptions): void {\n const element = this._element.nativeElement;\n\n if (typeof element.focus === 'function') {\n element.focus(options);\n }\n }\n\n public setActiveStyles(): void {\n if (!this._active()) {\n this._active.set(true);\n }\n }\n\n public setInactiveStyles(): void {\n if (this._active()) {\n this._active.set(false);\n }\n }\n\n public getLabel(): string {\n return this.viewValue();\n }\n\n private _emitSelectionChangeEvent(selected: boolean, isUserInput = false): void {\n if (this._multiSelect || !this.selected()) {\n this.onSelectionChange.emit(new IdsOptionSelectionChange<T>(this, selected, isUserInput));\n }\n }\n}\n\nexport function _countGroupLabelsBeforeOption(\n optionIndex: number,\n options: Readonly<IdsOptionComponent[]>,\n optionGroups: Readonly<IdsOptionGroupComponent[]>,\n): number {\n if (optionGroups.length) {\n let groupCounter = 0;\n\n for (let i = 0; i < optionIndex + 1; i++) {\n if (options[i].group && options[i].group === optionGroups[groupCounter]) {\n groupCounter++;\n }\n }\n\n return groupCounter;\n }\n\n return 0;\n}\n\nexport function _getOptionScrollPosition(\n optionOffset: number,\n optionHeight: number,\n currentScrollPosition: number,\n panelHeight: number,\n): number {\n if (optionOffset < currentScrollPosition) {\n return optionOffset;\n }\n\n if (optionOffset + optionHeight > currentScrollPosition + panelHeight) {\n return Math.max(0, optionOffset - panelHeight + optionHeight);\n }\n\n return currentScrollPosition;\n}\n","@if (_multiSelect) {\n <ids-pseudo-checkbox aria-hidden=\"true\" [disabled]=\"_groupOrOptionIsDisabled()\" [checkboxState]=\"_pseudoCheckboxState()\" />\n}\n\n<div #text class=\"ids-option__text\"><ng-content /></div>\n\n@if (!_multiSelect && selected()) {\n <ids-icon fontIcon=\"check\" />\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: 'ids-label',\n standalone: true,\n})\nexport class IdsLabelDirective {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["defaultConfig","i1.IdsMessageDirective"],"mappings":"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"}
@@ -142,7 +142,6 @@ class IdsSelectComponent extends IdsFormFieldControl {
142
142
  });
143
143
  }
144
144
  ngOnInit() {
145
- super.ngOnInit();
146
145
  if (!this._parentFormField) {
147
146
  throw this._createHostError('Select must be in a form field');
148
147
  }
@@ -165,10 +164,12 @@ class IdsSelectComponent extends IdsFormFieldControl {
165
164
  this._subscribeOptionChanges();
166
165
  }
167
166
  ngAfterViewInit() {
168
- const controlDir = this.ngControl();
169
- if (controlDir?.control) {
170
- controlDir.control.events.pipe(takeUntilDestroyed(this._destroyRef)).subscribe(() => this.updateErrorAndSuccessState());
171
- }
167
+ queueMicrotask(() => {
168
+ const controlDir = this.ngControl();
169
+ if (controlDir?.control) {
170
+ controlDir.control.events.pipe(takeUntilDestroyed(this._destroyRef)).subscribe(() => this.updateErrorAndSuccessState());
171
+ }
172
+ });
172
173
  }
173
174
  updateErrorAndSuccessState() {
174
175
  this._errorStateTracker?.updateErrorState();
@@ -1 +1 @@
1
- {"version":3,"file":"i-cell-ids-angular-select.mjs","sources":["../../../projects/widgets/select/select-defaults.ts","../../../projects/widgets/select/select-trigger.directive.ts","../../../projects/widgets/select/select-positions.ts","../../../projects/widgets/select/select.component.ts","../../../projects/widgets/select/select.component.html","../../../projects/widgets/select/i-cell-ids-angular-select.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { AbstractErrorStateMatcher, AbstractSuccessStateMatcher, ErrorStateMatcher, SuccessStateMatcher } from '@i-cell/ids-angular/forms';\n\nexport interface IdsSelectDefaultConfig {\n errorStateMatcher?: typeof AbstractErrorStateMatcher\n successStateMatcher?: typeof AbstractSuccessStateMatcher\n typeaheadDebounceInterval: number\n}\n\nexport const IDS_SELECT_DEFAULT_CONFIG = new InjectionToken<IdsSelectDefaultConfig>(\n 'IDS_SELECT_DEFAULT_CONFIG',\n {\n providedIn: 'root',\n factory: IDS_SELECT_DEFAULT_CONFIG_FACTORY,\n },\n);\n\nexport function IDS_SELECT_DEFAULT_CONFIG_FACTORY(): Required<IdsSelectDefaultConfig> {\n return {\n errorStateMatcher: ErrorStateMatcher,\n successStateMatcher: SuccessStateMatcher,\n typeaheadDebounceInterval: 200,\n };\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: 'ids-select-trigger',\n standalone: true,\n})\nexport class IdsSelectTriggerDirective {\n}\n","import { ConnectedPosition } from '@angular/cdk/overlay';\n\nexport const selectConnectedPositions: ConnectedPosition[] = [\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n },\n {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top',\n },\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n panelClass: 'ids-select-panel-above',\n },\n {\n originX: 'end',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'bottom',\n panelClass: 'ids-select-panel-above',\n },\n];\n","import { IDS_SELECT_DEFAULT_CONFIG, IDS_SELECT_DEFAULT_CONFIG_FACTORY, IdsSelectDefaultConfig } from './select-defaults';\nimport { selectConnectedPositions } from './select-positions';\nimport { IdsSelectTriggerDirective } from './select-trigger.directive';\n\nimport { ActiveDescendantKeyManager, LiveAnnouncer } from '@angular/cdk/a11y';\nimport { SelectionModel } from '@angular/cdk/collections';\nimport { hasModifierKey } from '@angular/cdk/keycodes';\nimport { CdkConnectedOverlay, CdkOverlayOrigin } from '@angular/cdk/overlay';\nimport { AfterContentInit, AfterViewInit, ChangeDetectionStrategy, ChangeDetectorRef, Component, computed, contentChild, contentChildren, effect, ElementRef, forwardRef, inject, input, isDevMode, OnDestroy, OnInit, signal, viewChild, ViewEncapsulation } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR, ValueChangeEvent } from '@angular/forms';\nimport { coerceNumberAttribute, createClassList } from '@i-cell/ids-angular/core';\nimport { _countGroupLabelsBeforeOption, _getOptionScrollPosition, AbstractErrorStateMatcher, AbstractSuccessStateMatcher, formFieldControlClass, IDS_FORM_FIELD_CONTROL, IDS_OPTION_GROUP, IDS_OPTION_PARENT_COMPONENT, IdsFormFieldComponent, IdsFormFieldControl, IdsOptionComponent, IdsOptionGroupComponent, IdsOptionSelectionChange } from '@i-cell/ids-angular/forms';\nimport { IdsIconComponent } from '@i-cell/ids-angular/icon';\nimport { filter, first } from 'rxjs';\n\nconst defaultConfig = IDS_SELECT_DEFAULT_CONFIG_FACTORY();\n\n@Component({\n selector: `ids-select[ngModel]:not([formControl]):not([formControlName]),\n ids-select[formControl]:not([ngModel]):not([formControlName]),\n ids-select[formControlName]:not([ngModel]):not([formControl])`,\n imports: [\n CdkOverlayOrigin,\n CdkConnectedOverlay,\n IdsIconComponent,\n ],\n templateUrl: './select.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n { provide: IDS_FORM_FIELD_CONTROL, useExisting: IdsSelectComponent },\n { provide: IDS_OPTION_PARENT_COMPONENT, useExisting: IdsSelectComponent },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => IdsSelectComponent),\n multi: true,\n },\n ],\n host: {\n 'role': 'select',\n 'aria-autocomplete': 'none',\n 'aria-haspopup': 'listbox',\n '[attr.tabindex]': 'disabled() ? -1 : tabIndex()',\n '[attr.aria-controls]': 'isPanelOpen() ? id() + \"-panel\" : null',\n '[attr.aria-owns]': 'isPanelOpen() ? id() + \"-panel\" : null',\n '[attr.aria-expanded]': 'isPanelOpen()',\n '[attr.aria-label]': 'ariaLabel() || null',\n '[attr.aria-labelledby]': 'ariaLabelledby() || null',\n '[attr.aria-required]': 'required().toString()',\n '[attr.aria-disabled]': 'disabled().toString()',\n '[attr.aria-invalid]': 'hasErrorState()',\n '[attr.aria-activedescendant]': '_getAriaActiveDescendant()',\n '(keydown)': '_handleKeydown($event)',\n '(focus)': 'focus()',\n '(blur)': '_onBlur()',\n },\n})\nexport class IdsSelectComponent\n extends IdsFormFieldControl<IdsSelectDefaultConfig>\n implements ControlValueAccessor, OnInit, AfterContentInit, AfterViewInit, OnDestroy {\n protected override get _hostName(): string {\n return 'select';\n }\n\n protected readonly _defaultConfig = this._getDefaultConfig(defaultConfig, IDS_SELECT_DEFAULT_CONFIG);\n protected readonly _elementRef = inject(ElementRef);\n private readonly _changeDetectorRef = inject(ChangeDetectorRef);\n private readonly _liveAnnouncer = inject(LiveAnnouncer);\n private readonly _parentFormField = inject(IdsFormFieldComponent);\n\n protected readonly _connectedPositions = selectConnectedPositions;\n\n protected _preferredOverlayOrigin: CdkOverlayOrigin | ElementRef | undefined;\n protected _overlayWidth: string | number = 0;\n\n public multiSelect = input<boolean>(false);\n public readonly errorStateMatcher = input<AbstractErrorStateMatcher>(inject(this._defaultConfig.errorStateMatcher));\n public readonly successStateMatcher = input<AbstractSuccessStateMatcher>(inject(this._defaultConfig.successStateMatcher));\n public ariaLabel = input<string>('', { alias: 'aria-label' });\n public ariaLabelledby = input<string>('', { alias: 'aria-labelledby' });\n public valueCompareFn = input<(o1: unknown, o2: unknown) => boolean>((o1: unknown, o2: unknown) => o1 === o2);\n public sortCompareFn = input<(a: IdsOptionComponent, b: IdsOptionComponent, options: Readonly<IdsOptionComponent[]>) => number>();\n public tabIndex = input<number, unknown>(0, { transform: coerceNumberAttribute });\n public typeaheadDebounceInterval = input<number, unknown>(\n this._defaultConfig.typeaheadDebounceInterval, { transform: coerceNumberAttribute },\n );\n\n public isPanelOpen = signal<boolean>(false);\n public parentSize = computed(() => this._parentFormField.parentOrSelfSize());\n public parentVariant = computed(() => this._parentFormField.parentOrSelfVariant());\n private _focused = signal<boolean>(false);\n\n private _canOpen = computed(() => !this.isPanelOpen() && !this.disabled() && !this.readonly() && this.options().length > 0);\n protected _hostClasses = computed(() => this._getHostClasses([\n this.parentSize(),\n this.parentVariant(),\n this.disabled() ? 'disabled' : null,\n this.readonly() ? 'readonly' : null,\n ], [formFieldControlClass]));\n\n protected _panelClasses = computed(() => createClassList(`${this._hostClassName}-panel`, [\n this.parentSize(),\n this.parentVariant(),\n ]));\n\n private _panel = viewChild<ElementRef<HTMLElement>>('panel');\n private _overlayDir = viewChild(CdkConnectedOverlay);\n public options = contentChildren<IdsOptionComponent>(IdsOptionComponent, { descendants: true });\n public optionGroups = contentChildren<IdsOptionGroupComponent>(IDS_OPTION_GROUP, { descendants: true });\n protected _customTrigger = contentChild(IdsSelectTriggerDirective);\n\n private _keyManager?: ActiveDescendantKeyManager<IdsOptionComponent>;\n private _rawValue: unknown | unknown[];\n private _selectionModel?: SelectionModel<IdsOptionComponent>;\n private _onChange: (value: unknown) => void = () => {};\n private _onTouched: () => unknown = () => { };\n\n protected get _empty(): boolean {\n return Boolean(this._selectionModel?.isEmpty());\n }\n\n public get selected(): IdsOptionComponent | IdsOptionComponent[] | undefined {\n return this.multiSelect() ? this._selectionModel?.selected : this._selectionModel?.selected?.[0];\n }\n\n protected get _triggerValue(): string {\n if (this._empty) {\n return '';\n }\n\n if (this.multiSelect()) {\n const selectedOptions = this._selectionModel?.selected?.map((option) => option.viewValue());\n return selectedOptions?.join(', ') || '';\n }\n\n return this._selectionModel?.selected?.[0].viewValue() || '';\n }\n\n constructor() {\n super();\n effect(() => {\n this._keyManager?.withTypeAhead(this.typeaheadDebounceInterval());\n });\n }\n\n public override ngOnInit(): void {\n super.ngOnInit();\n\n if (!this._parentFormField) {\n throw this._createHostError('Select must be in a form field');\n }\n this._selectionModel = new SelectionModel<IdsOptionComponent>(this.multiSelect(), undefined, false, this.valueCompareFn());\n queueMicrotask(() => {\n const control = this.ngControl()?.control;\n if (control) {\n control.events\n .pipe(\n filter((event) => event instanceof ValueChangeEvent),\n takeUntilDestroyed(this._destroyRef),\n )\n .subscribe(() => {\n this._changeDetectorRef.markForCheck();\n });\n }\n });\n this._initErrorStateTracker();\n }\n\n public ngAfterContentInit(): void {\n this._initKeyManager();\n this._selectionModel?.select(...this.options().filter((item) => item.selected()));\n this._subscribeOptionChanges();\n }\n\n public ngAfterViewInit(): void {\n const controlDir = this.ngControl();\n if (controlDir?.control) {\n controlDir.control.events.pipe(takeUntilDestroyed(this._destroyRef)).subscribe(() => this.updateErrorAndSuccessState());\n }\n }\n\n public updateErrorAndSuccessState(): void {\n this._errorStateTracker?.updateErrorState();\n this._successStateTracker?.updateSuccessState();\n }\n\n public ngOnDestroy(): void {\n this._keyManager?.destroy();\n }\n\n private _initKeyManager(): void {\n this._keyManager = new ActiveDescendantKeyManager<IdsOptionComponent>(this.options())\n .withTypeAhead(this.typeaheadDebounceInterval())\n .withVerticalOrientation()\n .withHorizontalOrientation('ltr')\n .withHomeAndEnd()\n .withPageUpDown()\n .withAllowedModifierKeys(['shiftKey'])\n .skipPredicate(this._skipPredicate);\n\n this._keyManager.tabOut.subscribe(() => {\n if (this.isPanelOpen()) {\n if (!this.multiSelect() && this._keyManager?.activeItem) {\n this._keyManager.activeItem.selectViaInteraction();\n }\n this.focus();\n this.close();\n }\n });\n\n this._keyManager.change.subscribe(() => {\n if (this.isPanelOpen() && this._panel()) {\n this._scrollOptionIntoView(this._keyManager?.activeItemIndex || 0);\n }\n });\n }\n\n private _subscribeOptionChanges(): void {\n this.options().forEach((option) => {\n option.onSelectionChange.subscribe(\n (change) => {\n this._handleOptionChange(change);\n },\n );\n });\n }\n\n private _handleOptionChange(change: IdsOptionSelectionChange): void {\n const { source, selected, isUserInput } = change;\n if (!this.multiSelect()) {\n this._clearSelection();\n }\n source.selected.set(selected);\n\n if (isUserInput) {\n this._keyManager?.setActiveItem(source);\n }\n\n if (isUserInput && !this.multiSelect() && this.isPanelOpen()) {\n this.close();\n this.focus();\n }\n\n if (this.multiSelect()) {\n this._sortValues();\n\n if (isUserInput) {\n this.focus();\n }\n }\n\n if (selected) {\n this._selectionModel?.select(source);\n } else {\n this._selectionModel?.deselect(source);\n }\n this._handleChange();\n this._onTouched();\n }\n\n protected _handleKeydown(event: KeyboardEvent): void {\n if (!this.disabled() && !this.readonly()) {\n this.isPanelOpen() ? this._handleOpenedPanelKeydown(event) : this._handleClosedPanelKeydown(event);\n }\n }\n\n private _handleClosedPanelKeydown(event: KeyboardEvent): void {\n const manager = this._keyManager;\n const key = event.key;\n const isArrowKey =\n key === 'ArrowDown' ||\n key === 'ArrowUp' ||\n key === 'ArrowLeft' ||\n key === 'ArrowRight';\n const isOpenKey = key === 'Enter' || key === ' ';\n\n if ((!manager?.isTyping() && isOpenKey && !hasModifierKey(event)) || isArrowKey) {\n event.preventDefault();\n this.open();\n } else if (!this.multiSelect()) {\n const previouslySelectedOption = this.selected;\n manager?.onKeydown(event);\n const selectedOption = this.selected as IdsOptionComponent;\n\n if (selectedOption?.viewValue() && previouslySelectedOption !== selectedOption) {\n // eslint-disable-next-line no-magic-numbers\n this._liveAnnouncer.announce(selectedOption.viewValue(), 10000);\n }\n }\n }\n\n private _handleOpenedPanelKeydown(event: KeyboardEvent): void {\n const manager = this._keyManager;\n const key = event.key;\n const isArrowKey = key === 'ArrowDown' || key === 'ArrowUp';\n const isTyping = manager?.isTyping();\n\n if (isArrowKey && event.altKey) {\n event.preventDefault();\n this.close();\n } else if (\n !isTyping &&\n (key === 'Enter' || key === ' ') &&\n manager?.activeItem &&\n !hasModifierKey(event)\n ) {\n event.preventDefault();\n manager.activeItem.selectViaInteraction();\n } else if (!isTyping && this.multiSelect() && key === 'a' && event.ctrlKey) {\n event.preventDefault();\n const hasDeselectedOptions = this.options().some((opt) => !opt.disabled && !opt.selected());\n\n this.options().forEach((option) => {\n if (!option.disabled) {\n hasDeselectedOptions ? option.select() : option.deselect();\n }\n });\n } else {\n const previouslyFocusedIndex = manager?.activeItemIndex;\n\n manager?.onKeydown(event);\n\n if (\n this.multiSelect() &&\n isArrowKey &&\n event.shiftKey &&\n manager?.activeItem &&\n manager?.activeItemIndex !== previouslyFocusedIndex\n ) {\n manager?.activeItem.selectViaInteraction();\n }\n }\n }\n\n private _positioningSettled(): void {\n this._scrollOptionIntoView(this._keyManager?.activeItemIndex || 0);\n }\n\n private _scrollOptionIntoView(index: number): void {\n const option = this.options()[index];\n\n if (option) {\n const panel: HTMLElement | undefined = this._panel()!.nativeElement;\n const labelCount = _countGroupLabelsBeforeOption(index, this.options(), this.optionGroups());\n const element = option.getHostElement();\n\n if (index === 0 && labelCount === 1) {\n panel.scrollTop = 0;\n } else {\n panel.scrollTop = _getOptionScrollPosition(\n element.offsetTop,\n element.offsetHeight,\n panel.scrollTop,\n panel.offsetHeight,\n );\n }\n }\n }\n\n private _sortValues(): void {\n if (this.multiSelect()) {\n const options = this.options();\n\n const sortComparator = this.sortCompareFn();\n this._selectionModel?.sort((a, b) => (sortComparator\n ? sortComparator(a, b, options)\n : options.indexOf(a) - options.indexOf(b)));\n }\n }\n\n private _getOverlayWidth(\n preferredOrigin: ElementRef<ElementRef> | CdkOverlayOrigin | undefined,\n ): string | number {\n const refToMeasure\n = preferredOrigin instanceof CdkOverlayOrigin\n ? preferredOrigin.elementRef\n : preferredOrigin || this._elementRef;\n return refToMeasure.nativeElement.getBoundingClientRect().width;\n }\n\n protected _panelAttached(): void {\n this._overlayDir()?.positionChange.pipe(first()).subscribe(() => {\n this._changeDetectorRef.detectChanges();\n this._positioningSettled();\n });\n }\n\n public toggle(): void {\n this.isPanelOpen() ? this.close() : this.open();\n }\n\n public open(): void {\n if (!this._canOpen()) {\n return;\n }\n\n if (this._parentFormField) {\n this._preferredOverlayOrigin = this._parentFormField?.getConnectedOverlayOrigin();\n }\n\n this._overlayWidth = this._getOverlayWidth(this._preferredOverlayOrigin);\n this.isPanelOpen.set(true);\n this._keyManager?.withHorizontalOrientation(null);\n this._highlightCorrectOption();\n this._changeDetectorRef.markForCheck();\n }\n\n public close(): void {\n if (this.isPanelOpen()) {\n this.isPanelOpen.set(false);\n this._keyManager?.withHorizontalOrientation('ltr');\n this._changeDetectorRef.markForCheck();\n this._onTouched();\n }\n }\n\n // #region ControlValueAccessor implementation\n public writeValue(value: unknown | unknown[]): void {\n this._setSelectionByValue(value);\n }\n\n public registerOnChange(fn: () => void): void {\n this._onChange = fn;\n }\n\n public registerOnTouched(fn: () => unknown): void {\n this._onTouched = fn;\n }\n\n public setDisabledState(isDisabled: boolean): void {\n this._disabled.set(isDisabled);\n this._changeDetectorRef.markForCheck();\n }\n // #endregion\n\n private _setSelectionByValue(value: unknown | unknown[]): void {\n this.options().forEach((option) => option.setInactiveStyles());\n this._selectionModel?.clear();\n this._rawValue = value;\n\n if (this.options().length === 0) {\n return;\n }\n\n if (this.multiSelect() && value) {\n if (!Array.isArray(value)) {\n throw this._createHostError('value must be an array in multiple-selection mode');\n }\n\n value.forEach((currentValue: unknown) => this._selectValue(currentValue));\n this._sortValues();\n } else {\n const correspondingOption = this._selectValue(value);\n if (correspondingOption) {\n this._keyManager?.updateActiveItem(correspondingOption);\n } else if (!this.isPanelOpen()) {\n this._keyManager?.updateActiveItem(-1);\n }\n }\n }\n\n private _selectValue(value: unknown): IdsOptionComponent | undefined {\n const correspondingOption = this.options().find((option) => {\n if (this._selectionModel?.isSelected(option)) {\n return false;\n }\n\n try {\n const valueCompareFn = this.valueCompareFn();\n return option.value() != null && valueCompareFn && valueCompareFn(option.value(), value);\n } catch (error) {\n if (isDevMode()) {\n console.warn(error);\n }\n return false;\n }\n });\n\n if (correspondingOption) {\n correspondingOption.selected.set(true);\n this._selectionModel?.select(correspondingOption);\n }\n\n return correspondingOption;\n }\n\n private _clearSelection(): void {\n this._selectionModel?.clear();\n this.options().forEach((option) => {\n option.selected.set(false);\n });\n }\n\n private _handleChange(): void {\n const selectionModelValues = this._selectionModel?.selected?.map((item) => item.value());\n if (this.multiSelect()) {\n this._onChange(selectionModelValues);\n } else {\n this._onChange(selectionModelValues?.[0]);\n }\n this._changeDetectorRef.markForCheck();\n }\n\n private _skipPredicate = (option: IdsOptionComponent): boolean => {\n if (this.isPanelOpen()) {\n return false;\n }\n\n return option.disabledInput();\n };\n\n private _highlightCorrectOption(): void {\n if (this._keyManager) {\n if (this._empty) {\n let firstEnabledOptionIndex = -1;\n for (let index = 0; index < this.options().length; index++) {\n const option = this.options()[index]!;\n if (!option.disabled) {\n firstEnabledOptionIndex = index;\n break;\n }\n }\n\n this._keyManager.setActiveItem(firstEnabledOptionIndex);\n } else {\n if (this._selectionModel) {\n this._keyManager.setActiveItem(this._selectionModel.selected[0]);\n }\n }\n }\n }\n\n public isOptionPreSelectedByValue(optionValue: unknown): boolean {\n if (this._rawValue === undefined) {\n return false;\n }\n\n if (this.multiSelect() && Array.isArray(this._rawValue)) {\n return this._rawValue.some((value) => optionValue != null && value === optionValue);\n }\n return optionValue === this._rawValue;\n }\n\n private _onFocus(): void {\n if (!this.disabled()) {\n this._focused.set(true);\n }\n }\n\n private _onBlur(): void {\n this._focused.set(false);\n this._keyManager?.cancelTypeahead();\n\n if (!this.disabled() && !this.isPanelOpen()) {\n this._onTouched();\n this._changeDetectorRef.markForCheck();\n }\n }\n\n private _getAriaActiveDescendant(): string | null {\n if (this.isPanelOpen() && this._keyManager?.activeItem) {\n return this._keyManager.activeItem.id();\n }\n\n return null;\n }\n\n public focus(options?: FocusOptions): void {\n this._elementRef.nativeElement.focus(options);\n }\n\n public onContainerClick = (): void => {\n if (!this._focused && !this.readonly() && !this.disabled()) {\n this.focus();\n this.open();\n }\n };\n}\n","<div #trigger #fallbackOverlayOrigin=\"cdkOverlayOrigin\" cdk-overlay-origin class=\"ids-select__trigger\" (click)=\"open()\">\n <div class=\"ids-select__value\">\n @if (_empty) {\n <span class=\"ids-select__placeholder\">{{ placeholder() }}</span>\n } @else {\n <span class=\"ids-select__value-text\">\n @if (_customTrigger()) {\n <ng-content select=\"ids-select-trigger\" />\n } @else {\n {{ _triggerValue }}\n }\n </span>\n }\n </div>\n\n <div class=\"ids-select__arrow\">\n <ids-icon fontIcon=\"chevron-down\" />\n </div>\n</div>\n\n<ng-template\n cdk-connected-overlay\n cdkConnectedOverlayLockPosition\n [cdkConnectedOverlayOrigin]=\"_preferredOverlayOrigin || fallbackOverlayOrigin\"\n [cdkConnectedOverlayOpen]=\"isPanelOpen()\"\n [cdkConnectedOverlayPositions]=\"_connectedPositions\"\n [cdkConnectedOverlayWidth]=\"_overlayWidth\"\n [cdkConnectedOverlayPush]=\"true\"\n (overlayOutsideClick)=\"close()\"\n (attach)=\"_panelAttached()\"\n (detach)=\"close()\"\n>\n <div\n #panel\n role=\"listbox\"\n tabindex=\"-1\"\n [attr.id]=\"id() + '-panel'\"\n [attr.aria-multiselectable]=\"multiSelect()\"\n [attr.aria-label]=\"ariaLabel() || null\"\n [attr.aria-labelledby]=\"ariaLabelledby()\"\n [class]=\"_panelClasses()\"\n (keydown)=\"_handleKeydown($event)\"\n >\n <ng-content />\n </div>\n</ng-template>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"i-cell-ids-angular-select.mjs","sources":["../../../projects/widgets/select/select-defaults.ts","../../../projects/widgets/select/select-trigger.directive.ts","../../../projects/widgets/select/select-positions.ts","../../../projects/widgets/select/select.component.ts","../../../projects/widgets/select/select.component.html","../../../projects/widgets/select/i-cell-ids-angular-select.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { AbstractErrorStateMatcher, AbstractSuccessStateMatcher, ErrorStateMatcher, SuccessStateMatcher } from '@i-cell/ids-angular/forms';\n\nexport interface IdsSelectDefaultConfig {\n errorStateMatcher?: typeof AbstractErrorStateMatcher\n successStateMatcher?: typeof AbstractSuccessStateMatcher\n typeaheadDebounceInterval: number\n}\n\nexport const IDS_SELECT_DEFAULT_CONFIG = new InjectionToken<IdsSelectDefaultConfig>(\n 'IDS_SELECT_DEFAULT_CONFIG',\n {\n providedIn: 'root',\n factory: IDS_SELECT_DEFAULT_CONFIG_FACTORY,\n },\n);\n\nexport function IDS_SELECT_DEFAULT_CONFIG_FACTORY(): Required<IdsSelectDefaultConfig> {\n return {\n errorStateMatcher: ErrorStateMatcher,\n successStateMatcher: SuccessStateMatcher,\n typeaheadDebounceInterval: 200,\n };\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: 'ids-select-trigger',\n standalone: true,\n})\nexport class IdsSelectTriggerDirective {\n}\n","import { ConnectedPosition } from '@angular/cdk/overlay';\n\nexport const selectConnectedPositions: ConnectedPosition[] = [\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n },\n {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top',\n },\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n panelClass: 'ids-select-panel-above',\n },\n {\n originX: 'end',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'bottom',\n panelClass: 'ids-select-panel-above',\n },\n];\n","import { IDS_SELECT_DEFAULT_CONFIG, IDS_SELECT_DEFAULT_CONFIG_FACTORY, IdsSelectDefaultConfig } from './select-defaults';\nimport { selectConnectedPositions } from './select-positions';\nimport { IdsSelectTriggerDirective } from './select-trigger.directive';\n\nimport { ActiveDescendantKeyManager, LiveAnnouncer } from '@angular/cdk/a11y';\nimport { SelectionModel } from '@angular/cdk/collections';\nimport { hasModifierKey } from '@angular/cdk/keycodes';\nimport { CdkConnectedOverlay, CdkOverlayOrigin } from '@angular/cdk/overlay';\nimport { AfterContentInit, AfterViewInit, ChangeDetectionStrategy, ChangeDetectorRef, Component, computed, contentChild, contentChildren, effect, ElementRef, forwardRef, inject, input, isDevMode, OnDestroy, OnInit, signal, viewChild, ViewEncapsulation } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR, ValueChangeEvent } from '@angular/forms';\nimport { coerceNumberAttribute, createClassList } from '@i-cell/ids-angular/core';\nimport { _countGroupLabelsBeforeOption, _getOptionScrollPosition, AbstractErrorStateMatcher, AbstractSuccessStateMatcher, formFieldControlClass, IDS_FORM_FIELD_CONTROL, IDS_OPTION_GROUP, IDS_OPTION_PARENT_COMPONENT, IdsFormFieldComponent, IdsFormFieldControl, IdsOptionComponent, IdsOptionGroupComponent, IdsOptionSelectionChange } from '@i-cell/ids-angular/forms';\nimport { IdsIconComponent } from '@i-cell/ids-angular/icon';\nimport { filter, first } from 'rxjs';\n\nconst defaultConfig = IDS_SELECT_DEFAULT_CONFIG_FACTORY();\n\n@Component({\n selector: `ids-select[ngModel]:not([formControl]):not([formControlName]),\n ids-select[formControl]:not([ngModel]):not([formControlName]),\n ids-select[formControlName]:not([ngModel]):not([formControl])`,\n imports: [\n CdkOverlayOrigin,\n CdkConnectedOverlay,\n IdsIconComponent,\n ],\n templateUrl: './select.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n { provide: IDS_FORM_FIELD_CONTROL, useExisting: IdsSelectComponent },\n { provide: IDS_OPTION_PARENT_COMPONENT, useExisting: IdsSelectComponent },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => IdsSelectComponent),\n multi: true,\n },\n ],\n host: {\n 'role': 'select',\n 'aria-autocomplete': 'none',\n 'aria-haspopup': 'listbox',\n '[attr.tabindex]': 'disabled() ? -1 : tabIndex()',\n '[attr.aria-controls]': 'isPanelOpen() ? id() + \"-panel\" : null',\n '[attr.aria-owns]': 'isPanelOpen() ? id() + \"-panel\" : null',\n '[attr.aria-expanded]': 'isPanelOpen()',\n '[attr.aria-label]': 'ariaLabel() || null',\n '[attr.aria-labelledby]': 'ariaLabelledby() || null',\n '[attr.aria-required]': 'required().toString()',\n '[attr.aria-disabled]': 'disabled().toString()',\n '[attr.aria-invalid]': 'hasErrorState()',\n '[attr.aria-activedescendant]': '_getAriaActiveDescendant()',\n '(keydown)': '_handleKeydown($event)',\n '(focus)': 'focus()',\n '(blur)': '_onBlur()',\n },\n})\nexport class IdsSelectComponent\n extends IdsFormFieldControl<IdsSelectDefaultConfig>\n implements ControlValueAccessor, OnInit, AfterContentInit, AfterViewInit, OnDestroy {\n protected override get _hostName(): string {\n return 'select';\n }\n\n protected readonly _defaultConfig = this._getDefaultConfig(defaultConfig, IDS_SELECT_DEFAULT_CONFIG);\n protected readonly _elementRef = inject(ElementRef);\n private readonly _changeDetectorRef = inject(ChangeDetectorRef);\n private readonly _liveAnnouncer = inject(LiveAnnouncer);\n private readonly _parentFormField = inject(IdsFormFieldComponent);\n\n protected readonly _connectedPositions = selectConnectedPositions;\n\n protected _preferredOverlayOrigin: CdkOverlayOrigin | ElementRef | undefined;\n protected _overlayWidth: string | number = 0;\n\n public multiSelect = input<boolean>(false);\n public readonly errorStateMatcher = input<AbstractErrorStateMatcher>(inject(this._defaultConfig.errorStateMatcher));\n public readonly successStateMatcher = input<AbstractSuccessStateMatcher>(inject(this._defaultConfig.successStateMatcher));\n public ariaLabel = input<string>('', { alias: 'aria-label' });\n public ariaLabelledby = input<string>('', { alias: 'aria-labelledby' });\n public valueCompareFn = input<(o1: unknown, o2: unknown) => boolean>((o1: unknown, o2: unknown) => o1 === o2);\n public sortCompareFn = input<(a: IdsOptionComponent, b: IdsOptionComponent, options: Readonly<IdsOptionComponent[]>) => number>();\n public tabIndex = input<number, unknown>(0, { transform: coerceNumberAttribute });\n public typeaheadDebounceInterval = input<number, unknown>(\n this._defaultConfig.typeaheadDebounceInterval, { transform: coerceNumberAttribute },\n );\n\n public isPanelOpen = signal<boolean>(false);\n public parentSize = computed(() => this._parentFormField.parentOrSelfSize());\n public parentVariant = computed(() => this._parentFormField.parentOrSelfVariant());\n private _focused = signal<boolean>(false);\n\n private _canOpen = computed(() => !this.isPanelOpen() && !this.disabled() && !this.readonly() && this.options().length > 0);\n protected _hostClasses = computed(() => this._getHostClasses([\n this.parentSize(),\n this.parentVariant(),\n this.disabled() ? 'disabled' : null,\n this.readonly() ? 'readonly' : null,\n ], [formFieldControlClass]));\n\n protected _panelClasses = computed(() => createClassList(`${this._hostClassName}-panel`, [\n this.parentSize(),\n this.parentVariant(),\n ]));\n\n private _panel = viewChild<ElementRef<HTMLElement>>('panel');\n private _overlayDir = viewChild(CdkConnectedOverlay);\n public options = contentChildren<IdsOptionComponent>(IdsOptionComponent, { descendants: true });\n public optionGroups = contentChildren<IdsOptionGroupComponent>(IDS_OPTION_GROUP, { descendants: true });\n protected _customTrigger = contentChild(IdsSelectTriggerDirective);\n\n private _keyManager?: ActiveDescendantKeyManager<IdsOptionComponent>;\n private _rawValue: unknown | unknown[];\n private _selectionModel?: SelectionModel<IdsOptionComponent>;\n private _onChange: (value: unknown) => void = () => {};\n private _onTouched: () => unknown = () => { };\n\n protected get _empty(): boolean {\n return Boolean(this._selectionModel?.isEmpty());\n }\n\n public get selected(): IdsOptionComponent | IdsOptionComponent[] | undefined {\n return this.multiSelect() ? this._selectionModel?.selected : this._selectionModel?.selected?.[0];\n }\n\n protected get _triggerValue(): string {\n if (this._empty) {\n return '';\n }\n\n if (this.multiSelect()) {\n const selectedOptions = this._selectionModel?.selected?.map((option) => option.viewValue());\n return selectedOptions?.join(', ') || '';\n }\n\n return this._selectionModel?.selected?.[0].viewValue() || '';\n }\n\n constructor() {\n super();\n effect(() => {\n this._keyManager?.withTypeAhead(this.typeaheadDebounceInterval());\n });\n }\n\n public ngOnInit(): void {\n if (!this._parentFormField) {\n throw this._createHostError('Select must be in a form field');\n }\n this._selectionModel = new SelectionModel<IdsOptionComponent>(this.multiSelect(), undefined, false, this.valueCompareFn());\n queueMicrotask(() => {\n const control = this.ngControl()?.control;\n if (control) {\n control.events\n .pipe(\n filter((event) => event instanceof ValueChangeEvent),\n takeUntilDestroyed(this._destroyRef),\n )\n .subscribe(() => {\n this._changeDetectorRef.markForCheck();\n });\n }\n });\n this._initErrorStateTracker();\n }\n\n public ngAfterContentInit(): void {\n this._initKeyManager();\n this._selectionModel?.select(...this.options().filter((item) => item.selected()));\n this._subscribeOptionChanges();\n }\n\n public ngAfterViewInit(): void {\n queueMicrotask(() => {\n const controlDir = this.ngControl();\n if (controlDir?.control) {\n controlDir.control.events.pipe(takeUntilDestroyed(this._destroyRef)).subscribe(() => this.updateErrorAndSuccessState());\n }\n });\n }\n\n public updateErrorAndSuccessState(): void {\n this._errorStateTracker?.updateErrorState();\n this._successStateTracker?.updateSuccessState();\n }\n\n public ngOnDestroy(): void {\n this._keyManager?.destroy();\n }\n\n private _initKeyManager(): void {\n this._keyManager = new ActiveDescendantKeyManager<IdsOptionComponent>(this.options())\n .withTypeAhead(this.typeaheadDebounceInterval())\n .withVerticalOrientation()\n .withHorizontalOrientation('ltr')\n .withHomeAndEnd()\n .withPageUpDown()\n .withAllowedModifierKeys(['shiftKey'])\n .skipPredicate(this._skipPredicate);\n\n this._keyManager.tabOut.subscribe(() => {\n if (this.isPanelOpen()) {\n if (!this.multiSelect() && this._keyManager?.activeItem) {\n this._keyManager.activeItem.selectViaInteraction();\n }\n this.focus();\n this.close();\n }\n });\n\n this._keyManager.change.subscribe(() => {\n if (this.isPanelOpen() && this._panel()) {\n this._scrollOptionIntoView(this._keyManager?.activeItemIndex || 0);\n }\n });\n }\n\n private _subscribeOptionChanges(): void {\n this.options().forEach((option) => {\n option.onSelectionChange.subscribe(\n (change) => {\n this._handleOptionChange(change);\n },\n );\n });\n }\n\n private _handleOptionChange(change: IdsOptionSelectionChange): void {\n const { source, selected, isUserInput } = change;\n if (!this.multiSelect()) {\n this._clearSelection();\n }\n source.selected.set(selected);\n\n if (isUserInput) {\n this._keyManager?.setActiveItem(source);\n }\n\n if (isUserInput && !this.multiSelect() && this.isPanelOpen()) {\n this.close();\n this.focus();\n }\n\n if (this.multiSelect()) {\n this._sortValues();\n\n if (isUserInput) {\n this.focus();\n }\n }\n\n if (selected) {\n this._selectionModel?.select(source);\n } else {\n this._selectionModel?.deselect(source);\n }\n this._handleChange();\n this._onTouched();\n }\n\n protected _handleKeydown(event: KeyboardEvent): void {\n if (!this.disabled() && !this.readonly()) {\n this.isPanelOpen() ? this._handleOpenedPanelKeydown(event) : this._handleClosedPanelKeydown(event);\n }\n }\n\n private _handleClosedPanelKeydown(event: KeyboardEvent): void {\n const manager = this._keyManager;\n const key = event.key;\n const isArrowKey =\n key === 'ArrowDown' ||\n key === 'ArrowUp' ||\n key === 'ArrowLeft' ||\n key === 'ArrowRight';\n const isOpenKey = key === 'Enter' || key === ' ';\n\n if ((!manager?.isTyping() && isOpenKey && !hasModifierKey(event)) || isArrowKey) {\n event.preventDefault();\n this.open();\n } else if (!this.multiSelect()) {\n const previouslySelectedOption = this.selected;\n manager?.onKeydown(event);\n const selectedOption = this.selected as IdsOptionComponent;\n\n if (selectedOption?.viewValue() && previouslySelectedOption !== selectedOption) {\n // eslint-disable-next-line no-magic-numbers\n this._liveAnnouncer.announce(selectedOption.viewValue(), 10000);\n }\n }\n }\n\n private _handleOpenedPanelKeydown(event: KeyboardEvent): void {\n const manager = this._keyManager;\n const key = event.key;\n const isArrowKey = key === 'ArrowDown' || key === 'ArrowUp';\n const isTyping = manager?.isTyping();\n\n if (isArrowKey && event.altKey) {\n event.preventDefault();\n this.close();\n } else if (\n !isTyping &&\n (key === 'Enter' || key === ' ') &&\n manager?.activeItem &&\n !hasModifierKey(event)\n ) {\n event.preventDefault();\n manager.activeItem.selectViaInteraction();\n } else if (!isTyping && this.multiSelect() && key === 'a' && event.ctrlKey) {\n event.preventDefault();\n const hasDeselectedOptions = this.options().some((opt) => !opt.disabled && !opt.selected());\n\n this.options().forEach((option) => {\n if (!option.disabled) {\n hasDeselectedOptions ? option.select() : option.deselect();\n }\n });\n } else {\n const previouslyFocusedIndex = manager?.activeItemIndex;\n\n manager?.onKeydown(event);\n\n if (\n this.multiSelect() &&\n isArrowKey &&\n event.shiftKey &&\n manager?.activeItem &&\n manager?.activeItemIndex !== previouslyFocusedIndex\n ) {\n manager?.activeItem.selectViaInteraction();\n }\n }\n }\n\n private _positioningSettled(): void {\n this._scrollOptionIntoView(this._keyManager?.activeItemIndex || 0);\n }\n\n private _scrollOptionIntoView(index: number): void {\n const option = this.options()[index];\n\n if (option) {\n const panel: HTMLElement | undefined = this._panel()!.nativeElement;\n const labelCount = _countGroupLabelsBeforeOption(index, this.options(), this.optionGroups());\n const element = option.getHostElement();\n\n if (index === 0 && labelCount === 1) {\n panel.scrollTop = 0;\n } else {\n panel.scrollTop = _getOptionScrollPosition(\n element.offsetTop,\n element.offsetHeight,\n panel.scrollTop,\n panel.offsetHeight,\n );\n }\n }\n }\n\n private _sortValues(): void {\n if (this.multiSelect()) {\n const options = this.options();\n\n const sortComparator = this.sortCompareFn();\n this._selectionModel?.sort((a, b) => (sortComparator\n ? sortComparator(a, b, options)\n : options.indexOf(a) - options.indexOf(b)));\n }\n }\n\n private _getOverlayWidth(\n preferredOrigin: ElementRef<ElementRef> | CdkOverlayOrigin | undefined,\n ): string | number {\n const refToMeasure\n = preferredOrigin instanceof CdkOverlayOrigin\n ? preferredOrigin.elementRef\n : preferredOrigin || this._elementRef;\n return refToMeasure.nativeElement.getBoundingClientRect().width;\n }\n\n protected _panelAttached(): void {\n this._overlayDir()?.positionChange.pipe(first()).subscribe(() => {\n this._changeDetectorRef.detectChanges();\n this._positioningSettled();\n });\n }\n\n public toggle(): void {\n this.isPanelOpen() ? this.close() : this.open();\n }\n\n public open(): void {\n if (!this._canOpen()) {\n return;\n }\n\n if (this._parentFormField) {\n this._preferredOverlayOrigin = this._parentFormField?.getConnectedOverlayOrigin();\n }\n\n this._overlayWidth = this._getOverlayWidth(this._preferredOverlayOrigin);\n this.isPanelOpen.set(true);\n this._keyManager?.withHorizontalOrientation(null);\n this._highlightCorrectOption();\n this._changeDetectorRef.markForCheck();\n }\n\n public close(): void {\n if (this.isPanelOpen()) {\n this.isPanelOpen.set(false);\n this._keyManager?.withHorizontalOrientation('ltr');\n this._changeDetectorRef.markForCheck();\n this._onTouched();\n }\n }\n\n // #region ControlValueAccessor implementation\n public writeValue(value: unknown | unknown[]): void {\n this._setSelectionByValue(value);\n }\n\n public registerOnChange(fn: () => void): void {\n this._onChange = fn;\n }\n\n public registerOnTouched(fn: () => unknown): void {\n this._onTouched = fn;\n }\n\n public setDisabledState(isDisabled: boolean): void {\n this._disabled.set(isDisabled);\n this._changeDetectorRef.markForCheck();\n }\n // #endregion\n\n private _setSelectionByValue(value: unknown | unknown[]): void {\n this.options().forEach((option) => option.setInactiveStyles());\n this._selectionModel?.clear();\n this._rawValue = value;\n\n if (this.options().length === 0) {\n return;\n }\n\n if (this.multiSelect() && value) {\n if (!Array.isArray(value)) {\n throw this._createHostError('value must be an array in multiple-selection mode');\n }\n\n value.forEach((currentValue: unknown) => this._selectValue(currentValue));\n this._sortValues();\n } else {\n const correspondingOption = this._selectValue(value);\n if (correspondingOption) {\n this._keyManager?.updateActiveItem(correspondingOption);\n } else if (!this.isPanelOpen()) {\n this._keyManager?.updateActiveItem(-1);\n }\n }\n }\n\n private _selectValue(value: unknown): IdsOptionComponent | undefined {\n const correspondingOption = this.options().find((option) => {\n if (this._selectionModel?.isSelected(option)) {\n return false;\n }\n\n try {\n const valueCompareFn = this.valueCompareFn();\n return option.value() != null && valueCompareFn && valueCompareFn(option.value(), value);\n } catch (error) {\n if (isDevMode()) {\n console.warn(error);\n }\n return false;\n }\n });\n\n if (correspondingOption) {\n correspondingOption.selected.set(true);\n this._selectionModel?.select(correspondingOption);\n }\n\n return correspondingOption;\n }\n\n private _clearSelection(): void {\n this._selectionModel?.clear();\n this.options().forEach((option) => {\n option.selected.set(false);\n });\n }\n\n private _handleChange(): void {\n const selectionModelValues = this._selectionModel?.selected?.map((item) => item.value());\n if (this.multiSelect()) {\n this._onChange(selectionModelValues);\n } else {\n this._onChange(selectionModelValues?.[0]);\n }\n this._changeDetectorRef.markForCheck();\n }\n\n private _skipPredicate = (option: IdsOptionComponent): boolean => {\n if (this.isPanelOpen()) {\n return false;\n }\n\n return option.disabledInput();\n };\n\n private _highlightCorrectOption(): void {\n if (this._keyManager) {\n if (this._empty) {\n let firstEnabledOptionIndex = -1;\n for (let index = 0; index < this.options().length; index++) {\n const option = this.options()[index]!;\n if (!option.disabled) {\n firstEnabledOptionIndex = index;\n break;\n }\n }\n\n this._keyManager.setActiveItem(firstEnabledOptionIndex);\n } else {\n if (this._selectionModel) {\n this._keyManager.setActiveItem(this._selectionModel.selected[0]);\n }\n }\n }\n }\n\n public isOptionPreSelectedByValue(optionValue: unknown): boolean {\n if (this._rawValue === undefined) {\n return false;\n }\n\n if (this.multiSelect() && Array.isArray(this._rawValue)) {\n return this._rawValue.some((value) => optionValue != null && value === optionValue);\n }\n return optionValue === this._rawValue;\n }\n\n private _onFocus(): void {\n if (!this.disabled()) {\n this._focused.set(true);\n }\n }\n\n private _onBlur(): void {\n this._focused.set(false);\n this._keyManager?.cancelTypeahead();\n\n if (!this.disabled() && !this.isPanelOpen()) {\n this._onTouched();\n this._changeDetectorRef.markForCheck();\n }\n }\n\n private _getAriaActiveDescendant(): string | null {\n if (this.isPanelOpen() && this._keyManager?.activeItem) {\n return this._keyManager.activeItem.id();\n }\n\n return null;\n }\n\n public focus(options?: FocusOptions): void {\n this._elementRef.nativeElement.focus(options);\n }\n\n public onContainerClick = (): void => {\n if (!this._focused && !this.readonly() && !this.disabled()) {\n this.focus();\n this.open();\n }\n };\n}\n","<div #trigger #fallbackOverlayOrigin=\"cdkOverlayOrigin\" cdk-overlay-origin class=\"ids-select__trigger\" (click)=\"open()\">\n <div class=\"ids-select__value\">\n @if (_empty) {\n <span class=\"ids-select__placeholder\">{{ placeholder() }}</span>\n } @else {\n <span class=\"ids-select__value-text\">\n @if (_customTrigger()) {\n <ng-content select=\"ids-select-trigger\" />\n } @else {\n {{ _triggerValue }}\n }\n </span>\n }\n </div>\n\n <div class=\"ids-select__arrow\">\n <ids-icon fontIcon=\"chevron-down\" />\n </div>\n</div>\n\n<ng-template\n cdk-connected-overlay\n cdkConnectedOverlayLockPosition\n [cdkConnectedOverlayOrigin]=\"_preferredOverlayOrigin || fallbackOverlayOrigin\"\n [cdkConnectedOverlayOpen]=\"isPanelOpen()\"\n [cdkConnectedOverlayPositions]=\"_connectedPositions\"\n [cdkConnectedOverlayWidth]=\"_overlayWidth\"\n [cdkConnectedOverlayPush]=\"true\"\n (overlayOutsideClick)=\"close()\"\n (attach)=\"_panelAttached()\"\n (detach)=\"close()\"\n>\n <div\n #panel\n role=\"listbox\"\n tabindex=\"-1\"\n [attr.id]=\"id() + '-panel'\"\n [attr.aria-multiselectable]=\"multiSelect()\"\n [attr.aria-label]=\"ariaLabel() || null\"\n [attr.aria-labelledby]=\"ariaLabelledby()\"\n [class]=\"_panelClasses()\"\n (keydown)=\"_handleKeydown($event)\"\n >\n <ng-content />\n </div>\n</ng-template>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -1,12 +1,12 @@
1
1
  import { AbstractErrorStateMatcher, ErrorStateTracker } from '../../common/error/error-state';
2
2
  import { AbstractSuccessStateMatcher, SuccessStateTracker } from '../../common/success/success-state';
3
- import { ElementRef, Injector, OnInit, Signal } from '@angular/core';
3
+ import { ElementRef, Injector, Signal } from '@angular/core';
4
4
  import { FormGroupDirective, NgControl, NgForm } from '@angular/forms';
5
5
  import { ComponentBaseWithDefaults } from '@i-cell/ids-angular/core';
6
6
  import { Subject } from 'rxjs';
7
7
  import * as i0 from "@angular/core";
8
8
  export declare const formFieldControlClass = "ids-form-field-control";
9
- export declare abstract class IdsFormFieldControl<D = unknown> extends ComponentBaseWithDefaults<D> implements OnInit {
9
+ export declare abstract class IdsFormFieldControl<D = unknown> extends ComponentBaseWithDefaults<D> {
10
10
  protected readonly _injector: Injector;
11
11
  protected readonly _parentForm: NgForm | null;
12
12
  protected readonly _parentFormGroup: FormGroupDirective | null;
@@ -36,7 +36,6 @@ export declare abstract class IdsFormFieldControl<D = unknown> extends Component
36
36
  protected _successStateTracker?: SuccessStateTracker;
37
37
  private _successStateSubscription?;
38
38
  constructor();
39
- ngOnInit(): void;
40
39
  setDescribedByIds(ids: string[]): void;
41
40
  protected _initErrorStateTracker(): void;
42
41
  protected _setSuccessStateTracker(canHandleSuccessState: boolean): void;
@@ -3,10 +3,10 @@ import { IdsInputType } from './types/input.type';
3
3
  import { AbstractErrorStateMatcher } from '../../common/error/error-state';
4
4
  import { AbstractSuccessStateMatcher } from '../../common/success/success-state';
5
5
  import { IdsFormFieldControl } from '../form-field/form-field-control';
6
- import { AfterViewInit, ElementRef, OnInit } from '@angular/core';
6
+ import { AfterViewInit, ElementRef } from '@angular/core';
7
7
  import { ControlEvent } from '@angular/forms';
8
8
  import * as i0 from "@angular/core";
9
- export declare class IdsInputDirective extends IdsFormFieldControl<IdsInputDefaultConfig> implements OnInit, AfterViewInit {
9
+ export declare class IdsInputDirective extends IdsFormFieldControl<IdsInputDefaultConfig> implements AfterViewInit {
10
10
  protected get _hostName(): string;
11
11
  protected readonly _elementRef: ElementRef<HTMLInputElement> | ElementRef<HTMLTextAreaElement>;
12
12
  protected readonly _defaultConfig: Required<IdsInputDefaultConfig>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@i-cell/ids-angular",
3
- "version": "0.1.10",
3
+ "version": "0.1.11",
4
4
  "private": false,
5
5
  "description": "i-Cell Design System UI Kit components for Angular",
6
6
  "publishConfig": {
@@ -52,21 +52,17 @@
52
52
  "types": "./accordion/index.d.ts",
53
53
  "default": "./fesm2022/i-cell-ids-angular-accordion.mjs"
54
54
  },
55
- "./button": {
56
- "types": "./button/index.d.ts",
57
- "default": "./fesm2022/i-cell-ids-angular-button.mjs"
55
+ "./badge": {
56
+ "types": "./badge/index.d.ts",
57
+ "default": "./fesm2022/i-cell-ids-angular-badge.mjs"
58
58
  },
59
59
  "./avatar": {
60
60
  "types": "./avatar/index.d.ts",
61
61
  "default": "./fesm2022/i-cell-ids-angular-avatar.mjs"
62
62
  },
63
- "./badge": {
64
- "types": "./badge/index.d.ts",
65
- "default": "./fesm2022/i-cell-ids-angular-badge.mjs"
66
- },
67
- "./card": {
68
- "types": "./card/index.d.ts",
69
- "default": "./fesm2022/i-cell-ids-angular-card.mjs"
63
+ "./button": {
64
+ "types": "./button/index.d.ts",
65
+ "default": "./fesm2022/i-cell-ids-angular-button.mjs"
70
66
  },
71
67
  "./chip": {
72
68
  "types": "./chip/index.d.ts",
@@ -76,6 +72,10 @@
76
72
  "types": "./checkbox/index.d.ts",
77
73
  "default": "./fesm2022/i-cell-ids-angular-checkbox.mjs"
78
74
  },
75
+ "./card": {
76
+ "types": "./card/index.d.ts",
77
+ "default": "./fesm2022/i-cell-ids-angular-card.mjs"
78
+ },
79
79
  "./core": {
80
80
  "types": "./core/index.d.ts",
81
81
  "default": "./fesm2022/i-cell-ids-angular-core.mjs"