@i-cell/ids-angular 0.2.15 → 0.2.16

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.
@@ -829,6 +829,7 @@ class IdsOptionComponent extends ComponentBase {
829
829
  this.disabled = false; // Do not delete this class member, until ListKeyManagerOption requires: `disabled: boolean`
830
830
  this._groupOrOptionIsDisabled = computed(() => this.group?.disabled() || this.disabledInput(), ...(ngDevMode ? [{ debugName: "_groupOrOptionIsDisabled" }] : []));
831
831
  this._multiSelect = Boolean(this._parent?.multiSelect());
832
+ // eslint-disable-next-line @angular-eslint/no-output-on-prefix
832
833
  this.onSelectionChange = output();
833
834
  this.viewValue = computed(() => this._textElement().nativeElement.textContent || this.explicitViewValue() || '', ...(ngDevMode ? [{ debugName: "viewValue" }] : []));
834
835
  this._hostClasses = computed(() => this._getHostClasses([
@@ -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, 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=\"alert-circle-outline\" 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=\"done\" 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=\"remove\" aria-hidden=\"true\" />\n }\n @if (_isChecked()) {\n <ids-icon fontIcon=\"done\" 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=\"done\" />\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=\"alert-circle-outline\" 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=\"done\" 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=\"remove\" aria-hidden=\"true\" />\n }\n @if (_isChecked()) {\n <ids-icon fontIcon=\"done\" 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 // eslint-disable-next-line @angular-eslint/no-output-on-prefix\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 protected _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=\"done\" />\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,11 +1,11 @@
1
1
  import * as i0 from '@angular/core';
2
- import { InjectionToken, input, output, linkedSignal, computed, contentChild, viewChild, effect, ChangeDetectionStrategy, ViewEncapsulation, Component } from '@angular/core';
2
+ import { InjectionToken, input, output, linkedSignal, computed, contentChild, viewChild, effect, untracked, ChangeDetectionStrategy, ViewEncapsulation, Component } from '@angular/core';
3
3
  import { IdsSize, ComponentBaseWithDefaults } from '@i-cell/ids-angular/core';
4
4
  import * as i2 from '@angular/cdk/a11y';
5
5
  import { CdkTrapFocus, A11yModule } from '@angular/cdk/a11y';
6
6
  import { CdkMenu } from '@angular/cdk/menu';
7
7
  import * as i1 from '@angular/cdk/overlay';
8
- import { OverlayModule } from '@angular/cdk/overlay';
8
+ import { CdkConnectedOverlay, OverlayModule } from '@angular/cdk/overlay';
9
9
  import { NgClass } from '@angular/common';
10
10
 
11
11
  const IdsOverlayPanelAppearance = {
@@ -77,9 +77,12 @@ class IdsOverlayPanelComponent extends ComponentBaseWithDefaults {
77
77
  this.appearance = input(this._defaultConfig.appearance, ...(ngDevMode ? [{ debugName: "appearance" }] : []));
78
78
  this.size = input(this._defaultConfig.size, ...(ngDevMode ? [{ debugName: "size" }] : []));
79
79
  this.variant = input(this._defaultConfig.variant, ...(ngDevMode ? [{ debugName: "variant" }] : []));
80
+ this.panelClasses = input('', ...(ngDevMode ? [{ debugName: "panelClasses" }] : []));
81
+ this.width = input(...(ngDevMode ? [undefined, { debugName: "width" }] : []));
80
82
  this._open = linkedSignal(() => this.open());
81
83
  this._hasCdkMenu = computed(() => !!this._cdkMenu(), ...(ngDevMode ? [{ debugName: "_hasCdkMenu" }] : []));
82
84
  this._cdkMenu = contentChild(CdkMenu, ...(ngDevMode ? [{ debugName: "_cdkMenu", descendants: true }] : [{ descendants: true }]));
85
+ this._overlayRef = viewChild(CdkConnectedOverlay, ...(ngDevMode ? [{ debugName: "_overlayRef" }] : []));
83
86
  this._focusTrap = viewChild(CdkTrapFocus, ...(ngDevMode ? [{ debugName: "_focusTrap" }] : []));
84
87
  this._panelClasses = computed(() => this._getHostClasses([
85
88
  this.appearance(),
@@ -93,6 +96,16 @@ class IdsOverlayPanelComponent extends ComponentBaseWithDefaults {
93
96
  this._focusTrap()?.focusTrap.focusInitialElementWhenReady({ preventScroll: true });
94
97
  }
95
98
  });
99
+ effect(() => {
100
+ const overlayRef = this._overlayRef();
101
+ const overlayWidth = this.width();
102
+ // apply width after the overlay has been rendered
103
+ untracked(() => {
104
+ if (overlayRef && overlayWidth) {
105
+ overlayRef.width = overlayWidth;
106
+ }
107
+ });
108
+ });
96
109
  }
97
110
  toggle() {
98
111
  this._open.set(!this._open());
@@ -107,7 +120,7 @@ class IdsOverlayPanelComponent extends ComponentBaseWithDefaults {
107
120
  this.closed.emit();
108
121
  }
109
122
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: IdsOverlayPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
110
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "20.1.7", type: IdsOverlayPanelComponent, isStandalone: true, selector: "ids-overlay-panel", inputs: { open: { classPropertyName: "open", publicName: "open", isSignal: true, isRequired: false, transformFunction: null }, origin: { classPropertyName: "origin", publicName: "origin", isSignal: true, isRequired: true, transformFunction: null }, positions: { classPropertyName: "positions", publicName: "positions", isSignal: true, isRequired: false, transformFunction: null }, appearance: { classPropertyName: "appearance", publicName: "appearance", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { closed: "closed" }, queries: [{ propertyName: "_cdkMenu", first: true, predicate: CdkMenu, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "_focusTrap", first: true, predicate: CdkTrapFocus, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayPositions]=\"positions()\"\n [cdkConnectedOverlayOrigin]=\"origin()\"\n [cdkConnectedOverlayOpen]=\"_open()\"\n [cdkConnectedOverlayPanelClass]=\"_hostClasses()\"\n (overlayOutsideClick)=\"_handleOverlayOutsideClick()\"\n (detach)=\"_handleDetach()\"\n>\n <div\n cdkTrapFocus\n [ngClass]=\"_panelClasses()\"\n >\n <ng-content/>\n </div>\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: OverlayModule }, { kind: "directive", type: i1.CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "ngmodule", type: A11yModule }, { kind: "directive", type: i2.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
123
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "20.1.7", type: IdsOverlayPanelComponent, isStandalone: true, selector: "ids-overlay-panel", inputs: { open: { classPropertyName: "open", publicName: "open", isSignal: true, isRequired: false, transformFunction: null }, origin: { classPropertyName: "origin", publicName: "origin", isSignal: true, isRequired: true, transformFunction: null }, positions: { classPropertyName: "positions", publicName: "positions", isSignal: true, isRequired: false, transformFunction: null }, appearance: { classPropertyName: "appearance", publicName: "appearance", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, panelClasses: { classPropertyName: "panelClasses", publicName: "panelClasses", isSignal: true, isRequired: false, transformFunction: null }, width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { closed: "closed" }, queries: [{ propertyName: "_cdkMenu", first: true, predicate: CdkMenu, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "_overlayRef", first: true, predicate: CdkConnectedOverlay, descendants: true, isSignal: true }, { propertyName: "_focusTrap", first: true, predicate: CdkTrapFocus, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayPositions]=\"positions()\"\n [cdkConnectedOverlayOrigin]=\"origin()\"\n [cdkConnectedOverlayOpen]=\"_open()\"\n [cdkConnectedOverlayPanelClass]=\"_hostClasses()\"\n (overlayOutsideClick)=\"_handleOverlayOutsideClick()\"\n (detach)=\"_handleDetach()\"\n>\n <div\n cdkTrapFocus\n [ngClass]=\"[panelClasses(), _panelClasses()]\"\n >\n <ng-content/>\n </div>\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: OverlayModule }, { kind: "directive", type: i1.CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "ngmodule", type: A11yModule }, { kind: "directive", type: i2.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
111
124
  }
112
125
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: IdsOverlayPanelComponent, decorators: [{
113
126
  type: Component,
@@ -115,7 +128,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImpor
115
128
  OverlayModule,
116
129
  A11yModule,
117
130
  NgClass,
118
- ], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayPositions]=\"positions()\"\n [cdkConnectedOverlayOrigin]=\"origin()\"\n [cdkConnectedOverlayOpen]=\"_open()\"\n [cdkConnectedOverlayPanelClass]=\"_hostClasses()\"\n (overlayOutsideClick)=\"_handleOverlayOutsideClick()\"\n (detach)=\"_handleDetach()\"\n>\n <div\n cdkTrapFocus\n [ngClass]=\"_panelClasses()\"\n >\n <ng-content/>\n </div>\n</ng-template>\n" }]
131
+ ], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayPositions]=\"positions()\"\n [cdkConnectedOverlayOrigin]=\"origin()\"\n [cdkConnectedOverlayOpen]=\"_open()\"\n [cdkConnectedOverlayPanelClass]=\"_hostClasses()\"\n (overlayOutsideClick)=\"_handleOverlayOutsideClick()\"\n (detach)=\"_handleDetach()\"\n>\n <div\n cdkTrapFocus\n [ngClass]=\"[panelClasses(), _panelClasses()]\"\n >\n <ng-content/>\n </div>\n</ng-template>\n" }]
119
132
  }], ctorParameters: () => [] });
120
133
 
121
134
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"i-cell-ids-angular-overlay-panel.mjs","sources":["../../../projects/widgets/overlay-panel/types/overlay-panel-appearance.type.ts","../../../projects/widgets/overlay-panel/types/overlay-panel-variant.type.ts","../../../projects/widgets/overlay-panel/overlay-positions.ts","../../../projects/widgets/overlay-panel/overlay-panel-defaults.ts","../../../projects/widgets/overlay-panel/overlay-panel.component.ts","../../../projects/widgets/overlay-panel/overlay-panel.component.html","../../../projects/widgets/overlay-panel/i-cell-ids-angular-overlay-panel.ts"],"sourcesContent":["export const IdsOverlayPanelAppearance = {\n FILLED: 'filled',\n OUTLINED: 'outlined',\n ELEVATED: 'elevated',\n} as const;\n\nexport type IdsOverlayPanelAppearanceType = (typeof IdsOverlayPanelAppearance)[keyof typeof IdsOverlayPanelAppearance];\n","export const IdsOverlayPanelVariant = {\n SURFACE: 'surface',\n LIGHT: 'light',\n} as const;\n\nexport type IdsOverlayPanelVariantType = (typeof IdsOverlayPanelVariant)[keyof typeof IdsOverlayPanelVariant];\n","import { ConnectedPosition } from '@angular/cdk/overlay';\n\nexport const overlayConnectedPositions: 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 },\n {\n originX: 'end',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'bottom',\n },\n];\n","import { overlayConnectedPositions } from './overlay-positions';\nimport { IdsOverlayPanelAppearance, IdsOverlayPanelAppearanceType } from './types/overlay-panel-appearance.type';\nimport { IdsOverlayPanelVariant, IdsOverlayPanelVariantType } from './types/overlay-panel-variant.type';\n\nimport { ConnectedPosition } from '@angular/cdk/overlay';\nimport { InjectionToken } from '@angular/core';\nimport { IdsSize, IdsSizeType } from '@i-cell/ids-angular/core';\n\nexport interface IdsOverlayPanelDefaultConfig {\n appearance?: IdsOverlayPanelAppearanceType,\n size?: IdsSizeType,\n variant?: IdsOverlayPanelVariantType,\n positions?: ConnectedPosition[],\n}\n\nexport const IDS_OVERLAY_PANEL_DEFAULT_CONFIG = new InjectionToken<IdsOverlayPanelDefaultConfig>(\n 'IDS_OVERLAY_PANEL_DEFAULT_CONFIG',\n {\n providedIn: 'root',\n factory: IDS_OVERLAY_PANEL_DEFAULT_CONFIG_FACTORY,\n },\n);\n\nexport function IDS_OVERLAY_PANEL_DEFAULT_CONFIG_FACTORY(): Required<IdsOverlayPanelDefaultConfig> {\n return {\n appearance: IdsOverlayPanelAppearance.FILLED,\n size: IdsSize.COMPACT,\n variant: IdsOverlayPanelVariant.LIGHT,\n positions: overlayConnectedPositions,\n };\n}\n\n","import {\n IDS_OVERLAY_PANEL_DEFAULT_CONFIG,\n IDS_OVERLAY_PANEL_DEFAULT_CONFIG_FACTORY,\n IdsOverlayPanelDefaultConfig,\n} from './overlay-panel-defaults';\nimport { IdsOverlayPanelAppearanceType } from './types/overlay-panel-appearance.type';\nimport { IdsOverlayPanelVariantType } from './types/overlay-panel-variant.type';\n\nimport { A11yModule, CdkTrapFocus } from '@angular/cdk/a11y';\nimport { CdkMenu } from '@angular/cdk/menu';\nimport { OverlayModule, CdkOverlayOrigin, ConnectedPosition } from '@angular/cdk/overlay';\nimport { NgClass } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n input, output, computed, contentChild,\n viewChild,\n effect,\n linkedSignal,\n} from '@angular/core';\nimport { IdsSizeType, ComponentBaseWithDefaults } from '@i-cell/ids-angular/core';\n\nconst defaultConfig = IDS_OVERLAY_PANEL_DEFAULT_CONFIG_FACTORY();\n\n@Component({\n selector: 'ids-overlay-panel',\n imports: [\n OverlayModule,\n A11yModule,\n NgClass,\n ],\n templateUrl: './overlay-panel.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n})\nexport class IdsOverlayPanelComponent extends ComponentBaseWithDefaults<IdsOverlayPanelDefaultConfig> {\n protected override get _hostName(): string {\n return 'overlay-panel';\n }\n\n protected readonly _defaultConfig = this._getDefaultConfig(defaultConfig, IDS_OVERLAY_PANEL_DEFAULT_CONFIG);\n\n public open = input<boolean>(false);\n public origin = input.required<CdkOverlayOrigin>();\n public closed = output<void>();\n public positions = input<ConnectedPosition[]>(this._defaultConfig.positions);\n\n public appearance = input<IdsOverlayPanelAppearanceType>(this._defaultConfig.appearance);\n public size = input<IdsSizeType>(this._defaultConfig.size);\n public variant = input<IdsOverlayPanelVariantType>(this._defaultConfig.variant);\n\n protected _open = linkedSignal(() => this.open());\n protected _hasCdkMenu = computed(() => !!this._cdkMenu());\n\n private _cdkMenu = contentChild(CdkMenu, { descendants: true });\n\n private _focusTrap = viewChild(CdkTrapFocus);\n\n public get isOpen(): boolean {\n return this._open();\n }\n\n constructor() {\n super();\n\n effect(() => {\n if (this._focusTrap()) {\n this._focusTrap()?.focusTrap.focusInitialElementWhenReady({ preventScroll: true });\n }\n });\n }\n\n public toggle(): void {\n this._open.set(!this._open());\n }\n\n protected _handleOverlayOutsideClick(): void {\n if (this._open()) {\n this._open.set(false);\n this.closed.emit();\n }\n }\n\n protected _handleDetach(): void {\n this.closed.emit();\n }\n\n protected _panelClasses = computed(() => this._getHostClasses([\n this.appearance(),\n this.size(),\n this.variant(),\n this._hasCdkMenu() ? 'has-menu' : null,\n ]),\n );\n\n protected _hostClasses = computed(() => '');\n}\n","<ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayPositions]=\"positions()\"\n [cdkConnectedOverlayOrigin]=\"origin()\"\n [cdkConnectedOverlayOpen]=\"_open()\"\n [cdkConnectedOverlayPanelClass]=\"_hostClasses()\"\n (overlayOutsideClick)=\"_handleOverlayOutsideClick()\"\n (detach)=\"_handleDetach()\"\n>\n <div\n cdkTrapFocus\n [ngClass]=\"_panelClasses()\"\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-overlay-panel.mjs","sources":["../../../projects/widgets/overlay-panel/types/overlay-panel-appearance.type.ts","../../../projects/widgets/overlay-panel/types/overlay-panel-variant.type.ts","../../../projects/widgets/overlay-panel/overlay-positions.ts","../../../projects/widgets/overlay-panel/overlay-panel-defaults.ts","../../../projects/widgets/overlay-panel/overlay-panel.component.ts","../../../projects/widgets/overlay-panel/overlay-panel.component.html","../../../projects/widgets/overlay-panel/i-cell-ids-angular-overlay-panel.ts"],"sourcesContent":["export const IdsOverlayPanelAppearance = {\n FILLED: 'filled',\n OUTLINED: 'outlined',\n ELEVATED: 'elevated',\n} as const;\n\nexport type IdsOverlayPanelAppearanceType = (typeof IdsOverlayPanelAppearance)[keyof typeof IdsOverlayPanelAppearance];\n","export const IdsOverlayPanelVariant = {\n SURFACE: 'surface',\n LIGHT: 'light',\n} as const;\n\nexport type IdsOverlayPanelVariantType = (typeof IdsOverlayPanelVariant)[keyof typeof IdsOverlayPanelVariant];\n","import { ConnectedPosition } from '@angular/cdk/overlay';\n\nexport const overlayConnectedPositions: 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 },\n {\n originX: 'end',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'bottom',\n },\n];\n","import { overlayConnectedPositions } from './overlay-positions';\nimport { IdsOverlayPanelAppearance, IdsOverlayPanelAppearanceType } from './types/overlay-panel-appearance.type';\nimport { IdsOverlayPanelVariant, IdsOverlayPanelVariantType } from './types/overlay-panel-variant.type';\n\nimport { ConnectedPosition } from '@angular/cdk/overlay';\nimport { InjectionToken } from '@angular/core';\nimport { IdsSize, IdsSizeType } from '@i-cell/ids-angular/core';\n\nexport interface IdsOverlayPanelDefaultConfig {\n appearance?: IdsOverlayPanelAppearanceType,\n size?: IdsSizeType,\n variant?: IdsOverlayPanelVariantType,\n positions?: ConnectedPosition[],\n}\n\nexport const IDS_OVERLAY_PANEL_DEFAULT_CONFIG = new InjectionToken<IdsOverlayPanelDefaultConfig>(\n 'IDS_OVERLAY_PANEL_DEFAULT_CONFIG',\n {\n providedIn: 'root',\n factory: IDS_OVERLAY_PANEL_DEFAULT_CONFIG_FACTORY,\n },\n);\n\nexport function IDS_OVERLAY_PANEL_DEFAULT_CONFIG_FACTORY(): Required<IdsOverlayPanelDefaultConfig> {\n return {\n appearance: IdsOverlayPanelAppearance.FILLED,\n size: IdsSize.COMPACT,\n variant: IdsOverlayPanelVariant.LIGHT,\n positions: overlayConnectedPositions,\n };\n}\n\n","import {\n IDS_OVERLAY_PANEL_DEFAULT_CONFIG,\n IDS_OVERLAY_PANEL_DEFAULT_CONFIG_FACTORY,\n IdsOverlayPanelDefaultConfig,\n} from './overlay-panel-defaults';\nimport { IdsOverlayPanelAppearanceType } from './types/overlay-panel-appearance.type';\nimport { IdsOverlayPanelVariantType } from './types/overlay-panel-variant.type';\n\nimport { A11yModule, CdkTrapFocus } from '@angular/cdk/a11y';\nimport { CdkMenu } from '@angular/cdk/menu';\nimport { OverlayModule, CdkOverlayOrigin, CdkConnectedOverlay, ConnectedPosition } from '@angular/cdk/overlay';\nimport { NgClass } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n input, output, computed, contentChild,\n ElementRef,\n viewChild,\n untracked,\n effect,\n linkedSignal,\n} from '@angular/core';\nimport { IdsSizeType, ComponentBaseWithDefaults } from '@i-cell/ids-angular/core';\n\nconst defaultConfig = IDS_OVERLAY_PANEL_DEFAULT_CONFIG_FACTORY();\n\n@Component({\n selector: 'ids-overlay-panel',\n imports: [\n OverlayModule,\n A11yModule,\n NgClass,\n ],\n templateUrl: './overlay-panel.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n})\nexport class IdsOverlayPanelComponent extends ComponentBaseWithDefaults<IdsOverlayPanelDefaultConfig> {\n protected override get _hostName(): string {\n return 'overlay-panel';\n }\n\n protected readonly _defaultConfig = this._getDefaultConfig(defaultConfig, IDS_OVERLAY_PANEL_DEFAULT_CONFIG);\n\n public open = input<boolean>(false);\n public origin = input.required<CdkOverlayOrigin | ElementRef>();\n public closed = output<void>();\n public positions = input<ConnectedPosition[]>(this._defaultConfig.positions);\n\n public appearance = input<IdsOverlayPanelAppearanceType>(this._defaultConfig.appearance);\n public size = input<IdsSizeType>(this._defaultConfig.size);\n public variant = input<IdsOverlayPanelVariantType>(this._defaultConfig.variant);\n public panelClasses = input<string>('');\n public width = input<string | number>();\n\n protected _open = linkedSignal(() => this.open());\n protected _hasCdkMenu = computed(() => !!this._cdkMenu());\n\n private _cdkMenu = contentChild(CdkMenu, { descendants: true });\n private _overlayRef = viewChild(CdkConnectedOverlay);\n\n private _focusTrap = viewChild(CdkTrapFocus);\n\n public get isOpen(): boolean {\n return this._open();\n }\n\n constructor() {\n super();\n\n effect(() => {\n if (this._focusTrap()) {\n this._focusTrap()?.focusTrap.focusInitialElementWhenReady({ preventScroll: true });\n }\n });\n\n effect(() => {\n const overlayRef = this._overlayRef();\n const overlayWidth = this.width();\n\n // apply width after the overlay has been rendered\n untracked(() => {\n if (overlayRef && overlayWidth) {\n overlayRef.width = overlayWidth;\n }\n });\n });\n }\n\n public toggle(): void {\n this._open.set(!this._open());\n }\n\n protected _handleOverlayOutsideClick(): void {\n if (this._open()) {\n this._open.set(false);\n this.closed.emit();\n }\n }\n\n protected _handleDetach(): void {\n this.closed.emit();\n }\n\n protected _panelClasses = computed(() => this._getHostClasses([\n this.appearance(),\n this.size(),\n this.variant(),\n this._hasCdkMenu() ? 'has-menu' : null,\n ]),\n );\n\n protected _hostClasses = computed(() => '');\n}\n","<ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayPositions]=\"positions()\"\n [cdkConnectedOverlayOrigin]=\"origin()\"\n [cdkConnectedOverlayOpen]=\"_open()\"\n [cdkConnectedOverlayPanelClass]=\"_hostClasses()\"\n (overlayOutsideClick)=\"_handleOverlayOutsideClick()\"\n (detach)=\"_handleDetach()\"\n>\n <div\n cdkTrapFocus\n [ngClass]=\"[panelClasses(), _panelClasses()]\"\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":";;;;;;;;;;AAAO,MAAM,yBAAyB,GAAG;AACvC,IAAA,MAAM,EAAE,QAAQ;AAChB,IAAA,QAAQ,EAAE,UAAU;AACpB,IAAA,QAAQ,EAAE,UAAU;;;ACHf,MAAM,sBAAsB,GAAG;AACpC,IAAA,OAAO,EAAE,SAAS;AAClB,IAAA,KAAK,EAAE,OAAO;;;ACAT,MAAM,yBAAyB,GAAwB;AAC5D,IAAA;AACE,QAAA,OAAO,EAAE,OAAO;AAChB,QAAA,OAAO,EAAE,QAAQ;AACjB,QAAA,QAAQ,EAAE,OAAO;AACjB,QAAA,QAAQ,EAAE,KAAK;AAChB,KAAA;AACD,IAAA;AACE,QAAA,OAAO,EAAE,KAAK;AACd,QAAA,OAAO,EAAE,QAAQ;AACjB,QAAA,QAAQ,EAAE,KAAK;AACf,QAAA,QAAQ,EAAE,KAAK;AAChB,KAAA;AACD,IAAA;AACE,QAAA,OAAO,EAAE,OAAO;AAChB,QAAA,OAAO,EAAE,KAAK;AACd,QAAA,QAAQ,EAAE,OAAO;AACjB,QAAA,QAAQ,EAAE,QAAQ;AACnB,KAAA;AACD,IAAA;AACE,QAAA,OAAO,EAAE,KAAK;AACd,QAAA,OAAO,EAAE,KAAK;AACd,QAAA,QAAQ,EAAE,KAAK;AACf,QAAA,QAAQ,EAAE,QAAQ;AACnB,KAAA;CACF;;MCZY,gCAAgC,GAAG,IAAI,cAAc,CAChE,kCAAkC,EAClC;AACE,IAAA,UAAU,EAAE,MAAM;AAClB,IAAA,OAAO,EAAE,wCAAwC;AAClD,CAAA;SAGa,wCAAwC,GAAA;IACtD,OAAO;QACL,UAAU,EAAE,yBAAyB,CAAC,MAAM;QAC5C,IAAI,EAAE,OAAO,CAAC,OAAO;QACrB,OAAO,EAAE,sBAAsB,CAAC,KAAK;AACrC,QAAA,SAAS,EAAE,yBAAyB;KACrC;AACH;;ACLA,MAAM,aAAa,GAAG,wCAAwC,EAAE;AAc1D,MAAO,wBAAyB,SAAQ,yBAAuD,CAAA;AACnG,IAAA,IAAuB,SAAS,GAAA;AAC9B,QAAA,OAAO,eAAe;IACxB;AAuBA,IAAA,IAAW,MAAM,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,KAAK,EAAE;IACrB;AAEA,IAAA,WAAA,GAAA;AACE,QAAA,KAAK,EAAE;QA1BU,IAAA,CAAA,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,gCAAgC,CAAC;AAEpG,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAAU,KAAK,gDAAC;AAC5B,QAAA,IAAA,CAAA,MAAM,GAAG,KAAK,CAAC,QAAQ,iDAAiC;QACxD,IAAA,CAAA,MAAM,GAAG,MAAM,EAAQ;QACvB,IAAA,CAAA,SAAS,GAAG,KAAK,CAAsB,IAAI,CAAC,cAAc,CAAC,SAAS,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,WAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAC;QAErE,IAAA,CAAA,UAAU,GAAG,KAAK,CAAgC,IAAI,CAAC,cAAc,CAAC,UAAU,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,YAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAC;QACjF,IAAA,CAAA,IAAI,GAAG,KAAK,CAAc,IAAI,CAAC,cAAc,CAAC,IAAI,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAC;QACnD,IAAA,CAAA,OAAO,GAAG,KAAK,CAA6B,IAAI,CAAC,cAAc,CAAC,OAAO,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,SAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAC;AACxE,QAAA,IAAA,CAAA,YAAY,GAAG,KAAK,CAAS,EAAE,wDAAC;QAChC,IAAA,CAAA,KAAK,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,OAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAmB;QAE7B,IAAA,CAAA,KAAK,GAAG,YAAY,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;AACvC,QAAA,IAAA,CAAA,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,uDAAC;AAEjD,QAAA,IAAA,CAAA,QAAQ,GAAG,YAAY,CAAC,OAAO,4CAAI,WAAW,EAAE,IAAI,EAAA,CAAA,GAAA,CAAnB,EAAE,WAAW,EAAE,IAAI,EAAE,GAAC;AACvD,QAAA,IAAA,CAAA,WAAW,GAAG,SAAS,CAAC,mBAAmB,uDAAC;AAE5C,QAAA,IAAA,CAAA,UAAU,GAAG,SAAS,CAAC,YAAY,sDAAC;QA2ClC,IAAA,CAAA,aAAa,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,eAAe,CAAC;YAC5D,IAAI,CAAC,UAAU,EAAE;YACjB,IAAI,CAAC,IAAI,EAAE;YACX,IAAI,CAAC,OAAO,EAAE;YACd,IAAI,CAAC,WAAW,EAAE,GAAG,UAAU,GAAG,IAAI;AACvC,SAAA,CAAC,yDACD;QAES,IAAA,CAAA,YAAY,GAAG,QAAQ,CAAC,MAAM,EAAE,wDAAC;QA1CzC,MAAM,CAAC,MAAK;AACV,YAAA,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE;AACrB,gBAAA,IAAI,CAAC,UAAU,EAAE,EAAE,SAAS,CAAC,4BAA4B,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;YACpF;AACF,QAAA,CAAC,CAAC;QAEF,MAAM,CAAC,MAAK;AACV,YAAA,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE;AACrC,YAAA,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,EAAE;;YAGjC,SAAS,CAAC,MAAK;AACb,gBAAA,IAAI,UAAU,IAAI,YAAY,EAAE;AAC9B,oBAAA,UAAU,CAAC,KAAK,GAAG,YAAY;gBACjC;AACF,YAAA,CAAC,CAAC;AACJ,QAAA,CAAC,CAAC;IACJ;IAEO,MAAM,GAAA;QACX,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;IAC/B;IAEU,0BAA0B,GAAA;AAClC,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE,EAAE;AAChB,YAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;AACrB,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;QACpB;IACF;IAEU,aAAa,GAAA;AACrB,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;IACpB;8GAjEW,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,wBAAwB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAqBH,OAAO,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,aAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EACP,mBAAmB,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAEpB,YAAY,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC/D7C,kcAgBA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDcI,aAAa,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,qEAAA,EAAA,MAAA,EAAA,CAAA,2BAAA,EAAA,8BAAA,EAAA,qCAAA,EAAA,4BAAA,EAAA,4BAAA,EAAA,0BAAA,EAAA,2BAAA,EAAA,6BAAA,EAAA,8BAAA,EAAA,kCAAA,EAAA,+BAAA,EAAA,mCAAA,EAAA,mCAAA,EAAA,yBAAA,EAAA,iCAAA,EAAA,sCAAA,EAAA,gCAAA,EAAA,iCAAA,EAAA,uCAAA,EAAA,kCAAA,EAAA,yBAAA,EAAA,wCAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,qBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACb,UAAU,0LACV,OAAO,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAOE,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAZpC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,mBAAmB,EAAA,OAAA,EACpB;wBACP,aAAa;wBACb,UAAU;wBACV,OAAO;qBACR,EAAA,aAAA,EAEc,iBAAiB,CAAC,IAAI,EAAA,eAAA,EACpB,uBAAuB,CAAC,MAAM,cACnC,IAAI,EAAA,QAAA,EAAA,kcAAA,EAAA;;;AErClB;;AAEG;;;;"}
package/forms/index.d.ts CHANGED
@@ -194,7 +194,7 @@ declare class IdsInputDirective extends IdsFormFieldControl<IdsInputDefaultConfi
194
194
  ngAfterViewInit(): void;
195
195
  private _validateType;
196
196
  focus(options?: FocusOptions): void;
197
- private _focusChanged;
197
+ protected _focusChanged(isFocused: boolean): void;
198
198
  updateControlState(event: ControlEvent): void;
199
199
  /**
200
200
  * Should be an arrow function in order to handle `this` outside of this class
@@ -391,7 +391,7 @@ declare class IdsOptionComponent<T = unknown> extends ComponentBase implements O
391
391
  embeddedPseudoCheckboxVariant: _angular_core.WritableSignal<"surface">;
392
392
  constructor();
393
393
  ngOnInit(): void;
394
- private _handleKeydown;
394
+ protected _handleKeydown(event: KeyboardEvent): void;
395
395
  selectViaInteraction(): void;
396
396
  getHostElement(): HTMLElement;
397
397
  select(emitEvent?: boolean): void;
@@ -1,6 +1,6 @@
1
1
  import { ConnectedPosition, CdkOverlayOrigin } from '@angular/cdk/overlay';
2
2
  import * as _angular_core from '@angular/core';
3
- import { InjectionToken } from '@angular/core';
3
+ import { InjectionToken, ElementRef } from '@angular/core';
4
4
  import { IdsSizeType, ComponentBaseWithDefaults } from '@i-cell/ids-angular/core';
5
5
 
6
6
  declare const IdsOverlayPanelAppearance: {
@@ -29,15 +29,18 @@ declare class IdsOverlayPanelComponent extends ComponentBaseWithDefaults<IdsOver
29
29
  protected get _hostName(): string;
30
30
  protected readonly _defaultConfig: Required<IdsOverlayPanelDefaultConfig>;
31
31
  open: _angular_core.InputSignal<boolean>;
32
- origin: _angular_core.InputSignal<CdkOverlayOrigin>;
32
+ origin: _angular_core.InputSignal<CdkOverlayOrigin | ElementRef<any>>;
33
33
  closed: _angular_core.OutputEmitterRef<void>;
34
34
  positions: _angular_core.InputSignal<ConnectedPosition[]>;
35
35
  appearance: _angular_core.InputSignal<IdsOverlayPanelAppearanceType>;
36
36
  size: _angular_core.InputSignal<IdsSizeType>;
37
37
  variant: _angular_core.InputSignal<IdsOverlayPanelVariantType>;
38
+ panelClasses: _angular_core.InputSignal<string>;
39
+ width: _angular_core.InputSignal<string | number | undefined>;
38
40
  protected _open: _angular_core.WritableSignal<boolean>;
39
41
  protected _hasCdkMenu: _angular_core.Signal<boolean>;
40
42
  private _cdkMenu;
43
+ private _overlayRef;
41
44
  private _focusTrap;
42
45
  get isOpen(): boolean;
43
46
  constructor();
@@ -47,7 +50,7 @@ declare class IdsOverlayPanelComponent extends ComponentBaseWithDefaults<IdsOver
47
50
  protected _panelClasses: _angular_core.Signal<string>;
48
51
  protected _hostClasses: _angular_core.Signal<string>;
49
52
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<IdsOverlayPanelComponent, never>;
50
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<IdsOverlayPanelComponent, "ids-overlay-panel", never, { "open": { "alias": "open"; "required": false; "isSignal": true; }; "origin": { "alias": "origin"; "required": true; "isSignal": true; }; "positions": { "alias": "positions"; "required": false; "isSignal": true; }; "appearance": { "alias": "appearance"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; }, { "closed": "closed"; }, ["_cdkMenu"], ["*"], true, never>;
53
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<IdsOverlayPanelComponent, "ids-overlay-panel", never, { "open": { "alias": "open"; "required": false; "isSignal": true; }; "origin": { "alias": "origin"; "required": true; "isSignal": true; }; "positions": { "alias": "positions"; "required": false; "isSignal": true; }; "appearance": { "alias": "appearance"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "panelClasses": { "alias": "panelClasses"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; }, { "closed": "closed"; }, ["_cdkMenu"], ["*"], true, never>;
51
54
  }
52
55
 
53
56
  export { IDS_OVERLAY_PANEL_DEFAULT_CONFIG, IDS_OVERLAY_PANEL_DEFAULT_CONFIG_FACTORY, IdsOverlayPanelAppearance, IdsOverlayPanelComponent, IdsOverlayPanelVariant };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@i-cell/ids-angular",
3
- "version": "0.2.15",
3
+ "version": "0.2.16",
4
4
  "private": false,
5
5
  "description": "i-Cell Design System UI Kit components for Angular",
6
6
  "publishConfig": {
@@ -17,6 +17,7 @@
17
17
  "Nagy Gábor",
18
18
  "Onofer Dávid",
19
19
  "Soós Árpád",
20
+ "Süveges Sándor",
20
21
  "Vidóczi Péter"
21
22
  ],
22
23
  "license": "MIT",
@@ -32,7 +33,7 @@
32
33
  "@angular/forms": "^20.1.7",
33
34
  "@angular/platform-browser": "^20.1.7",
34
35
  "@angular/router": "^20.1.7",
35
- "@i-cell/ids-styles": "^0.0.53"
36
+ "@i-cell/ids-styles": "^0.0.55"
36
37
  },
37
38
  "dependencies": {
38
39
  "tslib": "^2.3.0"
@@ -56,14 +57,14 @@
56
57
  "types": "./avatar/index.d.ts",
57
58
  "default": "./fesm2022/i-cell-ids-angular-avatar.mjs"
58
59
  },
59
- "./badge": {
60
- "types": "./badge/index.d.ts",
61
- "default": "./fesm2022/i-cell-ids-angular-badge.mjs"
62
- },
63
60
  "./breadcrumb": {
64
61
  "types": "./breadcrumb/index.d.ts",
65
62
  "default": "./fesm2022/i-cell-ids-angular-breadcrumb.mjs"
66
63
  },
64
+ "./badge": {
65
+ "types": "./badge/index.d.ts",
66
+ "default": "./fesm2022/i-cell-ids-angular-badge.mjs"
67
+ },
67
68
  "./button": {
68
69
  "types": "./button/index.d.ts",
69
70
  "default": "./fesm2022/i-cell-ids-angular-button.mjs"
@@ -76,30 +77,30 @@
76
77
  "types": "./checkbox/index.d.ts",
77
78
  "default": "./fesm2022/i-cell-ids-angular-checkbox.mjs"
78
79
  },
79
- "./chip": {
80
- "types": "./chip/index.d.ts",
81
- "default": "./fesm2022/i-cell-ids-angular-chip.mjs"
82
- },
83
80
  "./core": {
84
81
  "types": "./core/index.d.ts",
85
82
  "default": "./fesm2022/i-cell-ids-angular-core.mjs"
86
83
  },
87
- "./datepicker": {
88
- "types": "./datepicker/index.d.ts",
89
- "default": "./fesm2022/i-cell-ids-angular-datepicker.mjs"
84
+ "./chip": {
85
+ "types": "./chip/index.d.ts",
86
+ "default": "./fesm2022/i-cell-ids-angular-chip.mjs"
90
87
  },
91
88
  "./dialog": {
92
89
  "types": "./dialog/index.d.ts",
93
90
  "default": "./fesm2022/i-cell-ids-angular-dialog.mjs"
94
91
  },
95
- "./divider": {
96
- "types": "./divider/index.d.ts",
97
- "default": "./fesm2022/i-cell-ids-angular-divider.mjs"
92
+ "./datepicker": {
93
+ "types": "./datepicker/index.d.ts",
94
+ "default": "./fesm2022/i-cell-ids-angular-datepicker.mjs"
98
95
  },
99
96
  "./forms": {
100
97
  "types": "./forms/index.d.ts",
101
98
  "default": "./fesm2022/i-cell-ids-angular-forms.mjs"
102
99
  },
100
+ "./divider": {
101
+ "types": "./divider/index.d.ts",
102
+ "default": "./fesm2022/i-cell-ids-angular-divider.mjs"
103
+ },
103
104
  "./icon": {
104
105
  "types": "./icon/index.d.ts",
105
106
  "default": "./fesm2022/i-cell-ids-angular-icon.mjs"
@@ -140,6 +141,10 @@
140
141
  "types": "./select/index.d.ts",
141
142
  "default": "./fesm2022/i-cell-ids-angular-select.mjs"
142
143
  },
144
+ "./snackbar": {
145
+ "types": "./snackbar/index.d.ts",
146
+ "default": "./fesm2022/i-cell-ids-angular-snackbar.mjs"
147
+ },
143
148
  "./side-nav": {
144
149
  "types": "./side-nav/index.d.ts",
145
150
  "default": "./fesm2022/i-cell-ids-angular-side-nav.mjs"
@@ -148,18 +153,10 @@
148
153
  "types": "./side-sheet/index.d.ts",
149
154
  "default": "./fesm2022/i-cell-ids-angular-side-sheet.mjs"
150
155
  },
151
- "./snackbar": {
152
- "types": "./snackbar/index.d.ts",
153
- "default": "./fesm2022/i-cell-ids-angular-snackbar.mjs"
154
- },
155
156
  "./spinner": {
156
157
  "types": "./spinner/index.d.ts",
157
158
  "default": "./fesm2022/i-cell-ids-angular-spinner.mjs"
158
159
  },
159
- "./switch": {
160
- "types": "./switch/index.d.ts",
161
- "default": "./fesm2022/i-cell-ids-angular-switch.mjs"
162
- },
163
160
  "./tab": {
164
161
  "types": "./tab/index.d.ts",
165
162
  "default": "./fesm2022/i-cell-ids-angular-tab.mjs"
@@ -168,6 +165,10 @@
168
165
  "types": "./table/index.d.ts",
169
166
  "default": "./fesm2022/i-cell-ids-angular-table.mjs"
170
167
  },
168
+ "./switch": {
169
+ "types": "./switch/index.d.ts",
170
+ "default": "./fesm2022/i-cell-ids-angular-switch.mjs"
171
+ },
171
172
  "./tag": {
172
173
  "types": "./tag/index.d.ts",
173
174
  "default": "./fesm2022/i-cell-ids-angular-tag.mjs"