@i-cell/ids-angular 0.1.0 → 0.1.1

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.
@@ -1,9 +1,9 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Injectable, signal, Component, ViewEncapsulation, ChangeDetectionStrategy, InjectionToken, Directive, input, contentChildren, computed, Input, inject, Injector, ChangeDetectorRef, viewChild, contentChild, isDevMode, ElementRef, effect, output } from '@angular/core';
2
+ import { Injectable, signal, Component, ViewEncapsulation, ChangeDetectionStrategy, InjectionToken, Directive, input, contentChildren, computed, Input, inject, ElementRef, ChangeDetectorRef, viewChild, contentChild, isDevMode, effect, output } from '@angular/core';
3
3
  import { ComponentBase, IdsSize, ComponentBaseWithDefaults, coerceBooleanAttribute } from '@i-cell/ids-angular/core';
4
- import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
4
+ import { toObservable, takeUntilDestroyed } from '@angular/core/rxjs-interop';
5
5
  import { IdsIconComponent } from '@i-cell/ids-angular/icon';
6
- import { startWith, Subject } from 'rxjs';
6
+ import { tap, map, of, switchMap, Subject } from 'rxjs';
7
7
  import { Validators, FormGroupDirective, NgForm, NgControl } from '@angular/forms';
8
8
  import { hasModifierKey } from '@angular/cdk/keycodes';
9
9
 
@@ -246,6 +246,71 @@ function requiredFalseValidator(control) {
246
246
  return control.value === false ? null : { requiredFalse: true };
247
247
  }
248
248
 
249
+ /**
250
+ * Directive to map an error message to an error code for a form field.
251
+ * Mappings must be defined between the directive element's tags ordered by priority (descending from top to bottom).
252
+ * The error code is provided as an attribute, while the error message will be this directive's text content.
253
+ * The latter can be a plain string literal or even an interpolated string value.
254
+ *
255
+ * @example
256
+ * ```html
257
+ * <ids-form-field>
258
+ * <ids-label>Input field</ids-label>
259
+ * <input
260
+ * idsInput
261
+ * ngModel
262
+ * customValidator
263
+ * required
264
+ * [minlength]="3"
265
+ * [maxlength]="10"
266
+ * [pattern]="validPattern"
267
+ * >
268
+ * <ids-error-message>
269
+ * <ids-error-def code="required">{{ 'ERROR.REQUIRED.CUSTOM' | translate }}</ids-error-def>
270
+ * <ids-error-def code="minlength">'minLength' error message</ids-error-def>
271
+ * <ids-error-def code="maxlength">'maxLength' error message</ids-error-def>
272
+ * <ids-error-def code="pattern">'pattern' error message with interpolation: {{ model.value }}</ids-error-def>
273
+ * <ids-error-def code="custom">Custom validator error message</ids-error-def>
274
+ * </ids-error-message>
275
+ * </ids-form-field>
276
+ * ```
277
+ */
278
+ class IdsErrorDefinitionDirective {
279
+ constructor() {
280
+ /**
281
+ * The validation error's identifier code
282
+ */
283
+ this.code = input.required();
284
+ this._elementRef = inject(ElementRef);
285
+ }
286
+ /**
287
+ * The validation error's message that will be presented to the user
288
+ */
289
+ get errorMessage() {
290
+ return this._elementRef.nativeElement.innerText;
291
+ }
292
+ /**
293
+ * Creates a IdsErrorMessageMapping instance based on this directive's state (code, errorMessage)
294
+ * @returns A IdsErrorMessageMapping instance
295
+ */
296
+ toErrorMessageMapping() {
297
+ // eslint-disable-next-line @typescript-eslint/no-this-alias
298
+ const self = this;
299
+ return {
300
+ code: this.code(),
301
+ message: () => self.errorMessage,
302
+ };
303
+ }
304
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.2", ngImport: i0, type: IdsErrorDefinitionDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
305
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.1.2", type: IdsErrorDefinitionDirective, isStandalone: true, selector: "ids-error-def", inputs: { code: { classPropertyName: "code", publicName: "code", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0 }); }
306
+ }
307
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.2", ngImport: i0, type: IdsErrorDefinitionDirective, decorators: [{
308
+ type: Directive,
309
+ args: [{
310
+ selector: 'ids-error-def',
311
+ }]
312
+ }] });
313
+
249
314
  class IdsMessageSuffixDirective {
250
315
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.2", ngImport: i0, type: IdsMessageSuffixDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
251
316
  static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.2", type: IdsMessageSuffixDirective, isStandalone: true, selector: "[idsMessageSuffix]", ngImport: i0 }); }
@@ -310,32 +375,47 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.2", ngImpor
310
375
  }] });
311
376
 
312
377
  class IdsErrorMessageComponent extends ComponentBase {
378
+ get _hostName() {
379
+ return 'error-message';
380
+ }
313
381
  constructor() {
314
- super(...arguments);
315
- this._injector = inject(Injector);
316
- this._errors = signal(null);
382
+ super();
383
+ this._parent = inject(IdsFormFieldComponent, { skipSelf: true });
384
+ this._control = signal(null);
385
+ this._errorDefDirs = contentChildren(IdsErrorDefinitionDirective);
386
+ this._errorDefs = computed(() => this._errorDefDirs().map((errorDefDir) => errorDefDir.toErrorMessageMapping()));
387
+ this._validationError = signal(null);
317
388
  this._hostClasses = computed(() => this._getHostClasses([]));
318
389
  this.suffixes = contentChildren(IdsMessageSuffixDirective);
390
+ toObservable(this._parent.control).pipe(tap((controlDir) => this._control.set(controlDir?.control ?? null)), map((controlDir) => controlDir?.statusChanges ?? of(null)), switchMap((statusChanges) => statusChanges), takeUntilDestroyed(this._destroyRef)).subscribe((status) => {
391
+ if (status === 'INVALID') {
392
+ const nextError = this._selectMostImportantValidationError();
393
+ this._validationError.set(nextError);
394
+ }
395
+ else {
396
+ this._validationError.set(null);
397
+ }
398
+ });
319
399
  }
320
- get _hostName() {
321
- return 'error-message';
322
- }
323
- ngOnInit() {
324
- const parent = this._injector.get(IdsFormFieldComponent, null, { skipSelf: true, optional: true });
325
- if (parent) {
326
- const control = parent.control();
327
- control?.statusChanges?.pipe(startWith(control.errors), takeUntilDestroyed(this._destroyRef)).subscribe(() => {
328
- this._errors.set(control.errors);
329
- });
400
+ _selectMostImportantValidationError() {
401
+ const errorDefs = this._errorDefs();
402
+ const control = this._control();
403
+ if (!errorDefs?.length || !control?.errors || Object.keys(control.errors).length === 0) {
404
+ return null;
330
405
  }
406
+ const errorCodes = new Set(Object.keys(control.errors));
407
+ return errorDefs.find((errorDef) => errorCodes.has(errorDef.code)) ?? null;
331
408
  }
332
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.2", ngImport: i0, type: IdsErrorMessageComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
333
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.2", type: IdsErrorMessageComponent, isStandalone: true, selector: "ids-error-message", queries: [{ propertyName: "suffixes", predicate: IdsMessageSuffixDirective, isSignal: true }], usesInheritance: true, hostDirectives: [{ directive: IdsMessageDirective }], ngImport: i0, template: "<div class=\"ids-message__prefix\">\n <ng-content select=\"[idsMessagePrefix]\">\n <ids-icon aria-hidden=\"true\" fontIcon=\"exclamation-circle\" />\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", dependencies: [{ kind: "component", type: IdsIconComponent, selector: "ids-icon", inputs: ["size", "sizeCollection", "variant", "fontIcon", "svgIcon", "aria-hidden"] }], encapsulation: i0.ViewEncapsulation.None }); }
409
+ _getValidationErrorMessage(messageOrFn) {
410
+ return messageOrFn instanceof Function ? messageOrFn() : messageOrFn;
411
+ }
412
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.2", ngImport: i0, type: IdsErrorMessageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
413
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.2", type: IdsErrorMessageComponent, isStandalone: true, selector: "ids-error-message", queries: [{ propertyName: "_errorDefDirs", predicate: IdsErrorDefinitionDirective, isSignal: true }, { propertyName: "suffixes", predicate: IdsMessageSuffixDirective, isSignal: true }], usesInheritance: true, hostDirectives: [{ directive: IdsMessageDirective }], ngImport: i0, template: "<div class=\"ids-message__prefix\">\n <ng-content select=\"[idsMessagePrefix]\">\n <ids-icon aria-hidden=\"true\" fontIcon=\"exclamation-circle\" variant=\"error\" />\n </ng-content>\n</div>\n<div class=\"ids-message__text\">\n @let validationError = _validationError();\n @if (validationError) {\n @let messageString = _getValidationErrorMessage(validationError.message);\n {{ messageString }}\n }\n</div>\n@if (suffixes().length) {\n <div class=\"ids-message__suffix\">\n <ng-content select=\"[idsMessageSuffix]\" />\n </div>\n}\n", dependencies: [{ kind: "component", type: IdsIconComponent, selector: "ids-icon", inputs: ["size", "sizeCollection", "variant", "fontIcon", "svgIcon", "aria-hidden"] }], encapsulation: i0.ViewEncapsulation.None }); }
334
414
  }
335
415
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.2", ngImport: i0, type: IdsErrorMessageComponent, decorators: [{
336
416
  type: Component,
337
- args: [{ selector: 'ids-error-message', imports: [IdsIconComponent], hostDirectives: [IdsMessageDirective], encapsulation: ViewEncapsulation.None, template: "<div class=\"ids-message__prefix\">\n <ng-content select=\"[idsMessagePrefix]\">\n <ids-icon aria-hidden=\"true\" fontIcon=\"exclamation-circle\" />\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" }]
338
- }] });
417
+ args: [{ selector: 'ids-error-message', imports: [IdsIconComponent], hostDirectives: [IdsMessageDirective], encapsulation: ViewEncapsulation.None, template: "<div class=\"ids-message__prefix\">\n <ng-content select=\"[idsMessagePrefix]\">\n <ids-icon aria-hidden=\"true\" fontIcon=\"exclamation-circle\" variant=\"error\" />\n </ng-content>\n</div>\n<div class=\"ids-message__text\">\n @let validationError = _validationError();\n @if (validationError) {\n @let messageString = _getValidationErrorMessage(validationError.message);\n {{ messageString }}\n }\n</div>\n@if (suffixes().length) {\n <div class=\"ids-message__suffix\">\n <ng-content select=\"[idsMessageSuffix]\" />\n </div>\n}\n" }]
418
+ }], ctorParameters: () => [] });
339
419
 
340
420
  class IdsMessagePrefixDirective {
341
421
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.2", ngImport: i0, type: IdsMessagePrefixDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
@@ -382,11 +462,11 @@ class IdsSuccessMessageComponent extends ComponentBase {
382
462
  return 'success-message';
383
463
  }
384
464
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.2", ngImport: i0, type: IdsSuccessMessageComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
385
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.2", type: IdsSuccessMessageComponent, isStandalone: true, selector: "ids-success-message", queries: [{ propertyName: "suffixes", predicate: IdsMessageSuffixDirective, isSignal: true }], usesInheritance: true, hostDirectives: [{ directive: IdsMessageDirective }], ngImport: i0, template: "<div class=\"ids-message__prefix\">\n <ng-content select=\"[idsMessagePrefix]\">\n <ids-icon aria-hidden=\"true\" fontIcon=\"check\" />\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", dependencies: [{ kind: "component", type: IdsIconComponent, selector: "ids-icon", inputs: ["size", "sizeCollection", "variant", "fontIcon", "svgIcon", "aria-hidden"] }], encapsulation: i0.ViewEncapsulation.None }); }
465
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.2", type: IdsSuccessMessageComponent, isStandalone: true, selector: "ids-success-message", queries: [{ propertyName: "suffixes", predicate: IdsMessageSuffixDirective, isSignal: true }], usesInheritance: true, hostDirectives: [{ directive: IdsMessageDirective }], ngImport: i0, template: "<div class=\"ids-message__prefix\">\n <ng-content select=\"[idsMessagePrefix]\">\n <ids-icon aria-hidden=\"true\" fontIcon=\"check\" variant=\"success\" />\n </ng-content>\n</div>\n<div class=\"ids-message__text\">\n <ng-content />\n</div>\n@if (suffixes().length) {\n <div class=\"ids-message__suffix\">\n <ng-content select=\"[idsMessageSuffix]\" />\n </div>\n}\n", dependencies: [{ kind: "component", type: IdsIconComponent, selector: "ids-icon", inputs: ["size", "sizeCollection", "variant", "fontIcon", "svgIcon", "aria-hidden"] }], encapsulation: i0.ViewEncapsulation.None }); }
386
466
  }
387
467
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.2", ngImport: i0, type: IdsSuccessMessageComponent, decorators: [{
388
468
  type: Component,
389
- args: [{ selector: 'ids-success-message', imports: [IdsIconComponent], hostDirectives: [IdsMessageDirective], encapsulation: ViewEncapsulation.None, template: "<div class=\"ids-message__prefix\">\n <ng-content select=\"[idsMessagePrefix]\">\n <ids-icon aria-hidden=\"true\" fontIcon=\"check\" />\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" }]
469
+ args: [{ selector: 'ids-success-message', imports: [IdsIconComponent], hostDirectives: [IdsMessageDirective], encapsulation: ViewEncapsulation.None, template: "<div class=\"ids-message__prefix\">\n <ng-content select=\"[idsMessagePrefix]\">\n <ids-icon aria-hidden=\"true\" fontIcon=\"check\" variant=\"success\" />\n </ng-content>\n</div>\n<div class=\"ids-message__text\">\n <ng-content />\n</div>\n@if (suffixes().length) {\n <div class=\"ids-message__suffix\">\n <ng-content select=\"[idsMessageSuffix]\" />\n </div>\n}\n" }]
390
470
  }] });
391
471
 
392
472
  const defaultConfig$1 = IDS_FORM_FIELD_DEFAULT_CONFIG_FACTORY();
@@ -509,7 +589,7 @@ class IdsInputDirective extends ComponentBaseWithDefaults {
509
589
  this._defaultConfig = this._getDefaultConfig(defaultConfig, IDS_INPUT_DEFAULT_CONFIG);
510
590
  this.errorStateChanges = new Subject();
511
591
  this.successStateChanges = new Subject();
512
- this.ngControl = inject(NgControl, { optional: true });
592
+ this.ngControl = inject(NgControl);
513
593
  this._focused = false;
514
594
  this.placeholder = input('');
515
595
  this.name = input();
@@ -556,12 +636,12 @@ class IdsInputDirective extends ComponentBaseWithDefaults {
556
636
  }
557
637
  _initErrorStateTracker() {
558
638
  this._errorStateTracker = new ErrorStateTracker(this.errorStateMatcher(), this.ngControl, this._parentFormGroup, this._parentForm, this.errorStateChanges);
559
- this._successStateSubscription = this.errorStateChanges.pipe(takeUntilDestroyed(this._destroyRef)).subscribe(() => this.hasErrorState.set(this._errorStateTracker.hasErrorState));
639
+ this.errorStateChanges.pipe(takeUntilDestroyed(this._destroyRef)).subscribe(() => this.hasErrorState.set(this._errorStateTracker.hasErrorState));
560
640
  }
561
641
  _setSuccessStateTracker(canHandleSuccessState) {
562
642
  if (canHandleSuccessState) {
563
643
  this._successStateTracker = new SuccessStateTracker(this.successStateMatcher(), this.ngControl, this._parentFormGroup, this._parentForm, this.successStateChanges);
564
- this.successStateChanges.pipe(takeUntilDestroyed(this._destroyRef)).subscribe(() => this.hasSuccessState.set(this._successStateTracker.hasSuccessState));
644
+ this._successStateSubscription = this.successStateChanges.pipe(takeUntilDestroyed(this._destroyRef)).subscribe(() => this.hasSuccessState.set(this._successStateTracker.hasSuccessState));
565
645
  }
566
646
  else {
567
647
  this._successStateTracker = undefined;
@@ -867,5 +947,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.2", ngImpor
867
947
  * Generated bundle index. Do not edit.
868
948
  */
869
949
 
870
- export { AbstractErrorStateMatcher, AbstractSuccessStateMatcher, ErrorStateMatcher, ErrorStateTracker, IDS_FIELDSET_DEFAULT_CONFIG, IDS_FIELDSET_DEFAULT_CONFIG_FACTORY, IDS_FORM_FIELD_CONTROL, IDS_FORM_FIELD_DEFAULT_CONFIG, IDS_FORM_FIELD_DEFAULT_CONFIG_FACTORY, IDS_INPUT_DEFAULT_CONFIG, IDS_INPUT_DEFAULT_CONFIG_FACTORY, IDS_MESSAGE_DEFAULT_CONFIG, IDS_MESSAGE_DEFAULT_CONFIG_FACTORY, IDS_OPTION_GROUP, IDS_OPTION_PARENT_COMPONENT, IDS_PSEUDO_CHECKBOX_PARENT, IdsErrorMessageComponent, IdsFieldsetComponent, IdsFieldsetMessageDirective, IdsFieldsetRowComponent, IdsFormFieldActionDirective, IdsFormFieldComponent, IdsFormFieldControl, IdsFormFieldVariant, IdsHintMessageComponent, IdsInputDirective, IdsLabelDirective, IdsMessageDirective, IdsMessagePrefixDirective, IdsMessageSuffixDirective, IdsMessageVariant, IdsOptionComponent, IdsOptionGroupComponent, IdsOptionSelectionChange, IdsPrefixDirective, IdsPseudoCheckboxState, IdsSuccessMessageComponent, IdsSuffixDirective, IdsValidators, Message, PseudoCheckboxComponent, SuccessStateMatcher, SuccessStateTracker, _countGroupLabelsBeforeOption, _getOptionScrollPosition, formFieldControlClass, requiredFalseValidator, requiredTrueValidator, requiredValidator };
950
+ export { AbstractErrorStateMatcher, AbstractSuccessStateMatcher, ErrorStateMatcher, ErrorStateTracker, IDS_FIELDSET_DEFAULT_CONFIG, IDS_FIELDSET_DEFAULT_CONFIG_FACTORY, IDS_FORM_FIELD_CONTROL, IDS_FORM_FIELD_DEFAULT_CONFIG, IDS_FORM_FIELD_DEFAULT_CONFIG_FACTORY, IDS_INPUT_DEFAULT_CONFIG, IDS_INPUT_DEFAULT_CONFIG_FACTORY, IDS_MESSAGE_DEFAULT_CONFIG, IDS_MESSAGE_DEFAULT_CONFIG_FACTORY, IDS_OPTION_GROUP, IDS_OPTION_PARENT_COMPONENT, IDS_PSEUDO_CHECKBOX_PARENT, IdsErrorDefinitionDirective, IdsErrorMessageComponent, IdsFieldsetComponent, IdsFieldsetMessageDirective, IdsFieldsetRowComponent, IdsFormFieldActionDirective, IdsFormFieldComponent, IdsFormFieldControl, IdsFormFieldVariant, IdsHintMessageComponent, IdsInputDirective, IdsLabelDirective, IdsMessageDirective, IdsMessagePrefixDirective, IdsMessageSuffixDirective, IdsMessageVariant, IdsOptionComponent, IdsOptionGroupComponent, IdsOptionSelectionChange, IdsPrefixDirective, IdsPseudoCheckboxState, IdsSuccessMessageComponent, IdsSuffixDirective, IdsValidators, Message, PseudoCheckboxComponent, SuccessStateMatcher, SuccessStateTracker, _countGroupLabelsBeforeOption, _getOptionScrollPosition, formFieldControlClass, requiredFalseValidator, requiredTrueValidator, requiredValidator };
871
951
  //# sourceMappingURL=i-cell-ids-angular-forms.mjs.map
@@ -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/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 { Signal } from '@angular/core';\nimport { NgControl } from '@angular/forms';\nimport { Observable } from 'rxjs';\n\nexport const formFieldControlClass = 'ids-form-field-control';\n\nexport abstract class IdsFormFieldControl {\n public readonly errorStateChanges!: Observable<void>;\n public readonly successStateChanges!: Observable<void>;\n public readonly id!: Signal<string>;\n public readonly placeholder!: Signal<string>;\n public readonly ngControl!: NgControl | null;\n public readonly disabled!: Signal<boolean>;\n public readonly required!: Signal<boolean>;\n public readonly hasErrorState!: Signal<boolean>;\n public readonly hasSuccessState!: Signal<boolean>;\n public readonly controlType?: Signal<string>;\n public readonly autofilled?: Signal<boolean>;\n public readonly userAriaDescribedBy?: Signal<string>;\n public readonly disableAutomaticLabeling?: Signal<boolean>;\n public abstract setDescribedByIds(ids: string[]): void;\n public abstract onContainerClick(event: MouseEvent): void;\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 { 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 { IdsMessageSuffixDirective } from '../../../directives/message-suffix.directive';\nimport { IdsMessageDirective } from '../../../directives/message.directive';\nimport { IdsFormFieldComponent } from '../../form-field/form-field.component';\n\nimport { Component, Injector, OnInit, ViewEncapsulation, computed, contentChildren, inject, signal } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ValidationErrors } from '@angular/forms';\nimport { ComponentBase } from '@i-cell/ids-angular/core';\nimport { IdsIconComponent } from '@i-cell/ids-angular/icon';\nimport { startWith } 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 implements OnInit {\n protected override get _hostName(): string {\n return 'error-message';\n }\n\n private _injector = inject(Injector);\n\n private _errors = signal<ValidationErrors | null>(null);\n protected _hostClasses = computed(() => this._getHostClasses([]));\n\n public suffixes = contentChildren(IdsMessageSuffixDirective);\n\n public ngOnInit(): void {\n const parent = this._injector.get<IdsFormFieldComponent>(IdsFormFieldComponent, null, { skipSelf: true, optional: true });\n if (parent) {\n const control = parent.control();\n control?.statusChanges?.pipe(startWith(control.errors), takeUntilDestroyed(this._destroyRef)).subscribe(() => {\n this._errors.set(control.errors);\n });\n }\n }\n}\n","<div class=\"ids-message__prefix\">\n <ng-content select=\"[idsMessagePrefix]\">\n <ids-icon aria-hidden=\"true\" fontIcon=\"exclamation-circle\" />\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 { Directive } from '@angular/core';\n\n@Directive({\n selector: '[idsMessagePrefix]',\n standalone: true,\n})\nexport class IdsMessagePrefixDirective {\n}\n","import { IdsMessagePrefixDirective } from '../../../directives/message-prefix.directive';\nimport { IdsMessageSuffixDirective } from '../../../directives/message-suffix.directive';\nimport { IdsMessageDirective } from '../../../directives/message.directive';\n\nimport { Component, contentChildren, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'ids-hint-message',\n imports: [],\n templateUrl: './hint-message.component.html',\n host: {\n class: 'ids-hint-message',\n },\n hostDirectives: [\n {\n directive: IdsMessageDirective,\n inputs: [\n 'size: size',\n 'variant: variant',\n ],\n },\n ],\n encapsulation: ViewEncapsulation.None,\n})\nexport class IdsHintMessageComponent {\n public prefixes = contentChildren(IdsMessagePrefixDirective);\n public suffixes = contentChildren(IdsMessageSuffixDirective);\n}\n","@if (prefixes().length) {\n <div class=\"ids-message__prefix\">\n <ng-content select=\"[idsMessagePrefix]\" />\n </div>\n}\n<div class=\"ids-message__text\">\n <ng-content />\n</div>\n@if (suffixes().length) {\n <div class=\"ids-message__suffix\">\n <ng-content select=\"[idsMessageSuffix]\" />\n </div>\n}\n","import { IdsMessageSuffixDirective } from '../../../directives/message-suffix.directive';\nimport { IdsMessageDirective } from '../../../directives/message.directive';\n\nimport { Component, ViewEncapsulation, computed, contentChildren } from '@angular/core';\nimport { ComponentBase } from '@i-cell/ids-angular/core';\nimport { IdsIconComponent } from '@i-cell/ids-angular/icon';\n\n@Component({\n selector: 'ids-success-message',\n imports: [IdsIconComponent],\n templateUrl: './success-message.component.html',\n hostDirectives: [IdsMessageDirective],\n encapsulation: ViewEncapsulation.None,\n})\nexport class IdsSuccessMessageComponent extends ComponentBase {\n protected override get _hostName(): string {\n return 'success-message';\n }\n\n protected _hostClasses = computed(() => this._getHostClasses([]));\n\n public suffixes = contentChildren(IdsMessageSuffixDirective);\n}\n","<div class=\"ids-message__prefix\">\n <ng-content select=\"[idsMessagePrefix]\">\n <ids-icon aria-hidden=\"true\" fontIcon=\"check\" />\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 { AfterContentInit, ChangeDetectionStrategy, ChangeDetectorRef, Component, computed, contentChild, contentChildren, ElementRef, inject, input, isDevMode, viewChild, ViewEncapsulation } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\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> implements AfterContentInit {\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(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 public hasActions = computed(() => Boolean(this._actions().length));\n public hasLeadingIcon = computed(() => Boolean(this._prefixes().filter((prefix) => prefix.isLeadingIcon).length));\n public hasPrefix = computed(() => Boolean(this._prefixes().filter((prefix) => !prefix.isLeadingIcon).length));\n public hasSuffix = computed(() => Boolean(this._suffixes().filter((suffix) => !suffix.isTrailingIcon).length));\n public hasTrailingIcon = computed(() => Boolean(this._suffixes().filter((suffix) => suffix.isTrailingIcon).length));\n public 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 control = computed(() => this._child()?.ngControl);\n public disabled = computed(() => Boolean(this._child()?.disabled()));\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 public 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 ngAfterContentInit(): void {\n if (isDevMode() && !this._child()) {\n throw this._createHostError('no form element was provided');\n }\n this._child()?.ngControl?.statusChanges?.pipe(takeUntilDestroyed(this._destroyRef)).subscribe(() => {\n this._changeDetectorRef.markForCheck();\n });\n }\n\n public get hasRequiredValidator(): boolean {\n const control = this.control()?.control;\n if (!control) {\n return Boolean(this._child()?.required());\n }\n return 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 <ng-content select=\"ids-label\" />\n @if (hasRequiredValidator) {\n <span class=\"ids-form-field__required-marker\"></span>\n }\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, ErrorStateTracker } from '../../common/error/error-state';\nimport { AbstractSuccessStateMatcher, SuccessStateTracker } 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 { computed, Directive, effect, ElementRef, inject, input, isDevMode, DoCheck, signal, OnInit } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { FormGroupDirective, NgControl, NgForm } from '@angular/forms';\nimport { coerceBooleanAttribute, ComponentBaseWithDefaults } from '@i-cell/ids-angular/core';\nimport { Subject, Subscription } from 'rxjs';\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]': 'isDisabled() ? \"\" : null',\n '[attr.readonly]': 'readonly() ? \"\" : null',\n '(focus)': '_focusChanged(true)',\n '(blur)': '_focusChanged(false)',\n },\n})\nexport class IdsInputDirective\n extends ComponentBaseWithDefaults<IdsInputDefaultConfig>\n implements IdsFormFieldControl, OnInit, DoCheck {\n protected override get _hostName(): string {\n return 'input';\n }\n\n private readonly _elementRef = inject<ElementRef<HTMLInputElement> | ElementRef<HTMLTextAreaElement>>(ElementRef);\n private readonly _parentFormGroup = inject(FormGroupDirective, { optional: true });\n private readonly _parentForm = inject(NgForm, { optional: true });\n\n protected readonly _defaultConfig = this._getDefaultConfig(defaultConfig, IDS_INPUT_DEFAULT_CONFIG);\n\n public readonly errorStateChanges = new Subject<void>();\n public readonly successStateChanges = new Subject<void>();\n public readonly ngControl = inject(NgControl, { optional: true });\n\n private _focused = false;\n private _errorStateTracker?: ErrorStateTracker;\n private _successStateTracker?: SuccessStateTracker;\n private _successStateSubscription?: Subscription;\n\n public placeholder = input<string>('');\n public name = input<string>();\n public type = input<IdsInputType>('text');\n public required = input<boolean, unknown>(false, { transform: coerceBooleanAttribute });\n public readonly = input<boolean, unknown>(false, { transform: coerceBooleanAttribute });\n public disabled = input<boolean, unknown>(false, { transform: coerceBooleanAttribute });\n private _controlDisabled = signal(false);\n public isDisabled = computed(() => this.disabled() || this._controlDisabled());\n public canHandleSuccessState = input<boolean>(false);\n public errorStateMatcher = input<AbstractErrorStateMatcher>(inject(this._defaultConfig.errorStateMatcher));\n public successStateMatcher = input<AbstractSuccessStateMatcher>(inject(this._defaultConfig.successStateMatcher));\n\n protected _hostClasses = computed(() => this._getHostClasses([], [formFieldControlClass]),\n );\n\n public hasErrorState = signal<boolean>(false);\n public hasSuccessState = signal<boolean>(false);\n\n private _validateTypeEffect = effect(() => {\n this._validateType(this.type());\n });\n\n private _canHandleSuccessStateEffect = effect(() => {\n this._setSuccessStateTracker(this.canHandleSuccessState());\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 public ngOnInit(): void {\n this._initErrorStateTracker();\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._successStateSubscription = this.errorStateChanges.pipe(\n takeUntilDestroyed(this._destroyRef),\n ).subscribe(() => this.hasErrorState.set(this._errorStateTracker!.hasErrorState));\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.successStateChanges.pipe(\n takeUntilDestroyed(this._destroyRef),\n ).subscribe(() => this.hasSuccessState.set(this._successStateTracker!.hasSuccessState));\n } else {\n this._successStateTracker = undefined;\n this._successStateSubscription?.unsubscribe();\n }\n }\n\n public ngDoCheck(): void {\n if (this.ngControl) {\n this.updateErrorAndSuccessState();\n\n if (this.ngControl.disabled !== null && this.ngControl.disabled !== this.disabled()) {\n this._controlDisabled.set(this.ngControl.disabled);\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 updateErrorAndSuccessState(): void {\n this._errorStateTracker?.updateErrorState();\n this._successStateTracker?.updateSuccessState();\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.isDisabled()) {\n this.focus();\n }\n };\n}\n","export const Message = {\n HINT: 'hint',\n ERROR: 'error',\n SUCCESS: 'success',\n} as const;\n\nexport type MessageType = (typeof Message)[keyof typeof Message];\n","import { IdsOptionGroupComponent } from '../option-group.component';\n\nimport { InjectionToken } from '@angular/core';\n\nexport const IDS_OPTION_GROUP = new InjectionToken<IdsOptionGroupComponent>('IdsOptionGroup');\n","import { IdsFormFieldVariantType } from '../../form-field/types/form-field-variant.type';\n\nimport { InjectionToken, Signal } from '@angular/core';\nimport { IdsSizeType } from '@i-cell/ids-angular/core';\n\nexport interface IdsOptionParentComponent {\n multiSelect: Signal<boolean>\n inertGroups?: boolean\n parentSize: Signal<IdsSizeType>\n parentVariant: Signal<IdsFormFieldVariantType>\n isOptionPreSelectedByValue(optionValue: unknown): boolean\n}\n\nexport const IDS_OPTION_PARENT_COMPONENT = new InjectionToken<IdsOptionParentComponent>(\n 'IDS_OPTION_PARENT_COMPONENT',\n);\n","import { IdsOptionComponent } from '../option.component';\n\nexport class IdsOptionSelectionChange<T = unknown> {\n constructor(\n public source: IdsOptionComponent<T>,\n public selected: boolean,\n public isUserInput = false,\n ) {}\n}\n","import { IDS_OPTION_GROUP } from './tokens/option-group';\nimport { IDS_OPTION_PARENT_COMPONENT } from './tokens/option-parent';\n\nimport { ChangeDetectionStrategy, Component, computed, inject, input, ViewEncapsulation } from '@angular/core';\nimport { coerceBooleanAttribute, ComponentBase } from '@i-cell/ids-angular/core';\n\n@Component({\n selector: 'ids-option-group',\n imports: [],\n templateUrl: './option-group.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{ provide: IDS_OPTION_GROUP, useExisting: IdsOptionGroupComponent }],\n host: {\n '[attr.role]': '_inert ? null : \"group\"',\n '[attr.aria-disabled]': '_inert ? null : disabled().toString()',\n '[attr.aria-labelledby]': '_inert ? null : _labelId()',\n },\n})\nexport class IdsOptionGroupComponent extends ComponentBase {\n protected override get _hostName(): string {\n return 'option-group';\n }\n\n private readonly _parent = inject(IDS_OPTION_PARENT_COMPONENT);\n protected readonly _inert = this._parent?.inertGroups ?? false;\n\n public label = input<string>();\n public disabled = input<boolean, unknown>(false, { transform: coerceBooleanAttribute });\n\n protected readonly _labelId = computed(() => `${this.id()}-label`);\n protected readonly _hostClasses = computed(() => this._getHostClasses([\n this.disabled() ? 'disabled' : null,\n this._parent.parentSize(),\n this._parent.parentVariant(),\n ]));\n}\n","<div role=\"presentation\" class=\"ids-option-group__label\" [id]=\"_labelId()\">\n <div class=\"ids-option-group__text\">{{ label() }}</div>\n</div>\n<ng-content select=\"ids-option, ng-container\" />\n","import { InjectionToken, Signal } from '@angular/core';\nimport { IdsSizeType } from '@i-cell/ids-angular/core';\n\nexport interface IdsPseudoCheckboxParent<T extends string> {\n embeddedPseudoCheckboxSize: Signal<IdsSizeType>\n embeddedPseudoCheckboxVariant: Signal<T>\n}\n\nexport const IDS_PSEUDO_CHECKBOX_PARENT = new InjectionToken<IdsPseudoCheckboxParent<string>>(\n 'IDS_PSEUDO_CHECKBOX_PARENT',\n);\n","export const IdsPseudoCheckboxState = {\n UNCHECKED: 'unchecked',\n CHECKED: 'checked',\n INDETERMINATE: 'indeterminate',\n} as const;\n\nexport type IdsPseudoCheckboxStateType = (typeof IdsPseudoCheckboxState)[keyof typeof IdsPseudoCheckboxState];\n","import { IDS_PSEUDO_CHECKBOX_PARENT } from './tokens/pseudo-checkbox-parent';\nimport { IdsPseudoCheckboxState, IdsPseudoCheckboxStateType } from './types/pseudo-checkbox-state.type';\n\nimport { ChangeDetectionStrategy, Component, computed, inject, input, ViewEncapsulation } from '@angular/core';\nimport { coerceBooleanAttribute, ComponentBase } from '@i-cell/ids-angular/core';\nimport { IdsIconComponent } from '@i-cell/ids-angular/icon';\n\n@Component({\n selector: 'ids-pseudo-checkbox',\n imports: [IdsIconComponent],\n templateUrl: './pseudo-checkbox.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class PseudoCheckboxComponent extends ComponentBase {\n protected override get _hostName(): string {\n return 'pseudo-checkbox';\n }\n\n private readonly _parent = inject(IDS_PSEUDO_CHECKBOX_PARENT, { optional: true });\n public checkboxState = input<IdsPseudoCheckboxStateType>(IdsPseudoCheckboxState.UNCHECKED);\n public disabled = input<boolean, unknown>(false, { transform: coerceBooleanAttribute });\n\n protected _isChecked = computed(() => this.checkboxState() === IdsPseudoCheckboxState.CHECKED);\n protected _isIndeterminate = computed(() => this.checkboxState() === IdsPseudoCheckboxState.INDETERMINATE);\n\n protected _hostClasses = computed(() => this._getHostClasses([\n this._parent?.embeddedPseudoCheckboxSize(),\n this._parent?.embeddedPseudoCheckboxVariant(),\n this.disabled() ? 'disabled' : null,\n ]),\n );\n}\n","<div class=\"ids-pseudo-checkbox__input-wrapper\">\n <input\n type=\"checkbox\"\n [disabled]=\"disabled()\"\n [attr.aria-checked]=\"_isIndeterminate() ? 'mixed' : null\"\n [checked]=\"_isChecked()\"\n [indeterminate]=\"_isIndeterminate()\"\n (change)=\"$event.stopPropagation()\"\n />\n <div class=\"ids-pseudo-checkbox__icon\" aria-hidden=\"true\">\n @if (_isIndeterminate()) {\n <ids-icon fontIcon=\"minus\" aria-hidden=\"true\" />\n }\n @if (_isChecked()) {\n <ids-icon fontIcon=\"check\" aria-hidden=\"true\" />\n }\n </div>\n</div>\n","import { IdsOptionGroupComponent } from './option-group.component';\nimport { IDS_OPTION_GROUP } from './tokens/option-group';\nimport { IDS_OPTION_PARENT_COMPONENT } from './tokens/option-parent';\nimport { IdsOptionSelectionChange } from './types/option-events.class';\n\nimport { IdsFormFieldVariant, IdsFormFieldVariantType } from '../form-field/types/form-field-variant.type';\nimport { PseudoCheckboxComponent } from '../pseudo-checkbox/pseudo-checkbox.component';\nimport { IDS_PSEUDO_CHECKBOX_PARENT, IdsPseudoCheckboxParent } from '../pseudo-checkbox/tokens/pseudo-checkbox-parent';\nimport { IdsPseudoCheckboxState } from '../pseudo-checkbox/types/pseudo-checkbox-state.type';\n\nimport { FocusOrigin } from '@angular/cdk/a11y';\nimport { hasModifierKey } from '@angular/cdk/keycodes';\nimport { ChangeDetectionStrategy, Component, computed, effect, ElementRef, inject, input, OnInit, output, signal, viewChild, ViewEncapsulation } from '@angular/core';\nimport { coerceBooleanAttribute, ComponentBase } from '@i-cell/ids-angular/core';\nimport { IdsIconComponent } from '@i-cell/ids-angular/icon';\n\n@Component({\n selector: 'ids-option',\n imports: [\n IdsIconComponent,\n PseudoCheckboxComponent,\n ],\n templateUrl: './option.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: IDS_PSEUDO_CHECKBOX_PARENT,\n useExisting: IdsOptionComponent,\n },\n ],\n host: {\n 'role': 'option',\n '[attr.aria-selected]': 'selected()',\n '[attr.aria-disabled]': 'disabled.toString()',\n '(click)': 'selectViaInteraction()',\n '(keydown)': '_handleKeydown($event)',\n },\n})\nexport class IdsOptionComponent<T = unknown>\n extends ComponentBase\n implements OnInit, IdsPseudoCheckboxParent<IdsFormFieldVariantType> {\n protected override get _hostName(): string {\n return 'option';\n }\n\n private readonly _parent = inject(IDS_OPTION_PARENT_COMPONENT);\n private readonly _element = inject<ElementRef<HTMLElement>>(ElementRef);\n public readonly group = inject(IDS_OPTION_GROUP, { optional: true });\n\n private _textElement = viewChild.required<ElementRef<HTMLElement>>('text');\n\n public selected = signal<boolean>(false);\n private _active = signal<boolean>(false);\n public size = computed(() => this._parent.parentSize());\n public variant = computed(() => this._parent.parentVariant());\n\n public value = input<T>();\n public explicitViewValue = input<string | null>(null, { alias: 'viewValue' });\n public disabledInput = input<boolean, unknown>(false, { alias: 'disabled', transform: coerceBooleanAttribute });\n\n public disabled = false; // Do not delete this class member, until ListKeyManagerOption requires: `disabled: boolean`\n\n protected _groupOrOptionIsDisabled = computed(() => this.group?.disabled() || this.disabledInput());\n\n protected readonly _multiSelect = Boolean(this._parent?.multiSelect());\n\n public onSelectionChange = output<IdsOptionSelectionChange<T>>();\n\n public viewValue = computed(() => this._textElement().nativeElement.textContent || this.explicitViewValue() || '');\n protected readonly _hostClasses = computed(() => this._getHostClasses([\n this.selected() ? 'selected' : null,\n this._active() ? 'active' : null,\n this._groupOrOptionIsDisabled() ? 'disabled' : null,\n this._multiSelect ? 'multiselect' : null,\n this.size(),\n this.variant(),\n ]));\n\n protected _pseudoCheckboxState = computed(() => (this.selected() ? IdsPseudoCheckboxState.CHECKED : IdsPseudoCheckboxState.UNCHECKED));\n public embeddedPseudoCheckboxSize = computed(() => this.size());\n public embeddedPseudoCheckboxVariant = signal(IdsFormFieldVariant.SURFACE);\n\n constructor() {\n super();\n effect(() => { // Do not delete this effect, until ListKeyManagerOption requires: `disabled: boolean`\n this.disabled = this.disabledInput();\n });\n }\n\n public ngOnInit(): void {\n const parent = this._parent;\n\n if (parent.isOptionPreSelectedByValue(this.value())) {\n this.selected.set(true);\n }\n }\n\n private _handleKeydown(event: KeyboardEvent): void {\n if ((event.key === 'ENTER' || event.key === ' ') && !hasModifierKey(event)) {\n this.selectViaInteraction();\n event.preventDefault();\n }\n }\n\n public selectViaInteraction(): void {\n if (!this._groupOrOptionIsDisabled()) {\n this._emitSelectionChangeEvent(!this.selected(), true);\n }\n }\n\n public getHostElement(): HTMLElement {\n return this._element.nativeElement;\n }\n\n public select(emitEvent = true): void {\n if (!this.selected()) {\n if (emitEvent) {\n this._emitSelectionChangeEvent(true);\n }\n }\n }\n\n public deselect(emitEvent = true): void {\n if (this.selected()) {\n if (emitEvent) {\n this._emitSelectionChangeEvent(false);\n }\n }\n }\n\n public focus(_origin?: FocusOrigin, options?: FocusOptions): void {\n const element = this._element.nativeElement;\n\n if (typeof element.focus === 'function') {\n element.focus(options);\n }\n }\n\n public setActiveStyles(): void {\n if (!this._active()) {\n this._active.set(true);\n }\n }\n\n public setInactiveStyles(): void {\n if (this._active()) {\n this._active.set(false);\n }\n }\n\n public getLabel(): string {\n return this.viewValue();\n }\n\n private _emitSelectionChangeEvent(selected: boolean, isUserInput = false): void {\n if (this._multiSelect || !this.selected()) {\n this.onSelectionChange.emit(new IdsOptionSelectionChange<T>(this, selected, isUserInput));\n }\n }\n}\n\nexport function _countGroupLabelsBeforeOption(\n optionIndex: number,\n options: Readonly<IdsOptionComponent[]>,\n optionGroups: Readonly<IdsOptionGroupComponent[]>,\n): number {\n if (optionGroups.length) {\n let groupCounter = 0;\n\n for (let i = 0; i < optionIndex + 1; i++) {\n if (options[i].group && options[i].group === optionGroups[groupCounter]) {\n groupCounter++;\n }\n }\n\n return groupCounter;\n }\n\n return 0;\n}\n\nexport function _getOptionScrollPosition(\n optionOffset: number,\n optionHeight: number,\n currentScrollPosition: number,\n panelHeight: number,\n): number {\n if (optionOffset < currentScrollPosition) {\n return optionOffset;\n }\n\n if (optionOffset + optionHeight > currentScrollPosition + panelHeight) {\n return Math.max(0, optionOffset - panelHeight + optionHeight);\n }\n\n return currentScrollPosition;\n}\n","@if (_multiSelect) {\n <ids-pseudo-checkbox aria-hidden=\"true\" [disabled]=\"_groupOrOptionIsDisabled()\" [checkboxState]=\"_pseudoCheckboxState()\" />\n}\n\n<div #text class=\"ids-option__text\"><ng-content /></div>\n\n@if (!_multiSelect && selected()) {\n <ids-icon fontIcon=\"check\" />\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: 'ids-label',\n standalone: true,\n})\nexport class IdsLabelDirective {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["defaultConfig","i1.IdsMessageDirective"],"mappings":"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"}
1
+ {"version":3,"file":"i-cell-ids-angular-forms.mjs","sources":["../../../projects/widgets/forms/common/error/error-state.ts","../../../projects/widgets/forms/common/success/success-state.ts","../../../projects/widgets/forms/components/fieldset/fieldset-row/fieldset-row.component.ts","../../../projects/widgets/forms/components/fieldset/fieldset-row/fieldset-row.component.html","../../../projects/widgets/forms/components/form-field/types/form-field-variant.type.ts","../../../projects/widgets/forms/components/fieldset/fieldset-defaults.ts","../../../projects/widgets/forms/components/fieldset/fieldset-message.directive.ts","../../../projects/widgets/forms/components/fieldset/fieldset.component.ts","../../../projects/widgets/forms/components/fieldset/fieldset.component.html","../../../projects/widgets/forms/components/form-field/tokens/form-field-control.ts","../../../projects/widgets/forms/components/form-field/form-field-control.ts","../../../projects/widgets/forms/components/form-field/form-field-defaults.ts","../../../projects/widgets/forms/directives/form-field-action.directive.ts","../../../projects/widgets/forms/directives/prefix.directive.ts","../../../projects/widgets/forms/directives/suffix.directive.ts","../../../projects/widgets/forms/validators.ts","../../../projects/widgets/forms/components/message/error-message/error-definition.directive.ts","../../../projects/widgets/forms/directives/message-suffix.directive.ts","../../../projects/widgets/forms/components/message/types/message-variant.type.ts","../../../projects/widgets/forms/components/message/message-defaults.ts","../../../projects/widgets/forms/components/message/types/message-parent-form-field.ts","../../../projects/widgets/forms/directives/message.directive.ts","../../../projects/widgets/forms/components/message/error-message/error-message.component.ts","../../../projects/widgets/forms/components/message/error-message/error-message.component.html","../../../projects/widgets/forms/directives/message-prefix.directive.ts","../../../projects/widgets/forms/components/message/hint-message/hint-message.component.ts","../../../projects/widgets/forms/components/message/hint-message/hint-message.component.html","../../../projects/widgets/forms/components/message/success-message/success-message.component.ts","../../../projects/widgets/forms/components/message/success-message/success-message.component.html","../../../projects/widgets/forms/components/form-field/form-field.component.ts","../../../projects/widgets/forms/components/form-field/form-field.component.html","../../../projects/widgets/forms/components/input/input-defaults.ts","../../../projects/widgets/forms/components/input/input.directive.ts","../../../projects/widgets/forms/components/message/types/message.type.ts","../../../projects/widgets/forms/components/option/tokens/option-group.ts","../../../projects/widgets/forms/components/option/tokens/option-parent.ts","../../../projects/widgets/forms/components/option/types/option-events.class.ts","../../../projects/widgets/forms/components/option/option-group.component.ts","../../../projects/widgets/forms/components/option/option-group.component.html","../../../projects/widgets/forms/components/pseudo-checkbox/tokens/pseudo-checkbox-parent.ts","../../../projects/widgets/forms/components/pseudo-checkbox/types/pseudo-checkbox-state.type.ts","../../../projects/widgets/forms/components/pseudo-checkbox/pseudo-checkbox.component.ts","../../../projects/widgets/forms/components/pseudo-checkbox/pseudo-checkbox.component.html","../../../projects/widgets/forms/components/option/option.component.ts","../../../projects/widgets/forms/components/option/option.component.html","../../../projects/widgets/forms/directives/label.directive.ts","../../../projects/widgets/forms/i-cell-ids-angular-forms.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { AbstractControl, FormGroupDirective, NgControl, NgForm } from '@angular/forms';\nimport { Subject } from 'rxjs';\n\nexport abstract class AbstractErrorStateMatcher {\n public abstract isErrorState(control: AbstractControl | null, form: FormGroupDirective | NgForm | null): boolean;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class ErrorStateMatcher extends AbstractErrorStateMatcher {\n public isErrorState(control: AbstractControl | null, form: FormGroupDirective | NgForm | null): boolean {\n return !!(control && control.invalid && (control.touched || (form && form.submitted)));\n }\n}\n\nexport class ErrorStateTracker {\n /** Whether the tracker is currently in an error state. */\n public hasErrorState = false;\n\n constructor(\n private _matcher: ErrorStateMatcher | null,\n private _ngControl: NgControl | null,\n private _parentFormGroup: FormGroupDirective | null,\n private _parentForm: NgForm | null,\n private _stateChanges?: Subject<void>,\n ) {}\n\n /** Updates the error state based on the provided error state matcher. */\n public updateErrorState(): void {\n const oldState = this.hasErrorState;\n const parent = this._parentFormGroup || this._parentForm;\n const matcher = this._matcher;\n const control = this._ngControl ? (this._ngControl.control) : null;\n const newState = matcher?.isErrorState(control, parent) ?? false;\n\n if (newState !== oldState) {\n this.hasErrorState = newState;\n this._stateChanges?.next();\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { AbstractControl, FormGroupDirective, NgControl, NgForm } from '@angular/forms';\nimport { Subject } from 'rxjs';\n\nexport abstract class AbstractSuccessStateMatcher {\n public abstract isSuccessState(control: AbstractControl | null, form: FormGroupDirective | NgForm | null): boolean;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class SuccessStateMatcher extends AbstractSuccessStateMatcher {\n public isSuccessState(control: AbstractControl | null, form: FormGroupDirective | NgForm | null): boolean {\n return !!(control && control.valid && (control.touched || (form && form.submitted)));\n }\n}\n\nexport class SuccessStateTracker {\n /** Whether the tracker is currently in an success state. */\n public hasSuccessState = false;\n\n constructor(\n private _matcher: SuccessStateMatcher | null,\n private _ngControl: NgControl | null,\n private _parentFormGroup: FormGroupDirective | null,\n private _parentForm: NgForm | null,\n private _stateChanges?: Subject<void>,\n ) {}\n\n /** Updates the success state based on the provided success state matcher. */\n public updateSuccessState(): void {\n const oldState = this.hasSuccessState;\n const parent = this._parentFormGroup || this._parentForm;\n const matcher = this._matcher;\n const control = this._ngControl ? (this._ngControl.control) : null;\n const newState = matcher?.isSuccessState(control, parent) ?? false;\n\n if (newState !== oldState) {\n this.hasSuccessState = newState;\n this._stateChanges?.next();\n }\n }\n}\n","import { ChangeDetectionStrategy, Component, signal, ViewEncapsulation } from '@angular/core';\nimport { ComponentBase } from '@i-cell/ids-angular/core';\n\n@Component({\n selector: 'ids-fieldset-row',\n imports: [],\n templateUrl: './fieldset-row.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class IdsFieldsetRowComponent extends ComponentBase {\n protected override get _hostName(): string {\n return 'fieldset-row';\n }\n\n protected _hostClasses = signal(this._getHostClasses([]));\n}\n","<ng-content />\n","export const IdsFormFieldVariant = {\n SURFACE: 'surface',\n LIGHT: 'light',\n} as const;\n\nexport type IdsFormFieldVariantType = (typeof IdsFormFieldVariant)[keyof typeof IdsFormFieldVariant];\n","import { IdsFormFieldVariant, IdsFormFieldVariantType } from '../form-field/types/form-field-variant.type';\n\nimport { InjectionToken } from '@angular/core';\nimport { IdsSize, IdsSizeType } from '@i-cell/ids-angular/core';\n\nexport interface IdsFieldsetDefaultConfig {\n size?: IdsSizeType\n variant?: IdsFormFieldVariantType,\n}\n\nexport const IDS_FIELDSET_DEFAULT_CONFIG = new InjectionToken<IdsFieldsetDefaultConfig>(\n 'IDS_FIELDSET_DEFAULT_CONFIG',\n {\n providedIn: 'root',\n factory: IDS_FIELDSET_DEFAULT_CONFIG_FACTORY,\n },\n);\n\nexport function IDS_FIELDSET_DEFAULT_CONFIG_FACTORY(): Required<IdsFieldsetDefaultConfig> {\n return {\n size: IdsSize.COMPACT,\n variant: IdsFormFieldVariant.SURFACE,\n };\n}\n\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[idsFieldsetMessage]',\n standalone: true,\n})\nexport class IdsFieldsetMessageDirective {}\n","import { IDS_FIELDSET_DEFAULT_CONFIG, IDS_FIELDSET_DEFAULT_CONFIG_FACTORY, IdsFieldsetDefaultConfig } from './fieldset-defaults';\nimport { IdsFieldsetMessageDirective } from './fieldset-message.directive';\n\nimport { IdsFormFieldVariantType } from '../form-field/types/form-field-variant.type';\n\nimport { ChangeDetectionStrategy, Component, computed, contentChildren, input, ViewEncapsulation } from '@angular/core';\nimport { ComponentBaseWithDefaults, IdsSizeType } from '@i-cell/ids-angular/core';\n\nconst defaultConfig = IDS_FIELDSET_DEFAULT_CONFIG_FACTORY();\n\n@Component({\n selector: 'fieldset[idsFieldset]',\n imports: [],\n templateUrl: './fieldset.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class IdsFieldsetComponent extends ComponentBaseWithDefaults<IdsFieldsetDefaultConfig> {\n protected override get _hostName(): string {\n return 'fieldset';\n }\n\n protected readonly _defaultConfig = this._getDefaultConfig(defaultConfig, IDS_FIELDSET_DEFAULT_CONFIG);\n\n public size = input<IdsSizeType>(this._defaultConfig.size);\n public variant = input<IdsFormFieldVariantType>(this._defaultConfig.variant);\n public legend = input<string>('');\n\n private _fieldsetMessage = contentChildren<IdsFieldsetMessageDirective>(IdsFieldsetMessageDirective);\n\n protected _hasMessage = computed(() => this._fieldsetMessage().length > 0);\n\n protected _hostClasses = computed(() => this._getHostClasses([\n this.size(),\n this.variant(),\n ]));\n}\n","<legend class=\"ids-fieldset-legend\">{{ legend() }}</legend>\n@if (_hasMessage()) {\n <div class=\"ids-fieldset-message\">\n <ng-content select=\"[idsFieldsetMessage]\" />\n </div>\n}\n<ng-content select=\"ids-fieldset-row\" />\n","import { IdsFormFieldControl } from '../form-field-control';\n\nimport { InjectionToken } from '@angular/core';\n\nexport const IDS_FORM_FIELD_CONTROL = new InjectionToken<IdsFormFieldControl>('IDS_FORM_FIELD_CONTROL');\n","import { Signal } from '@angular/core';\nimport { NgControl } from '@angular/forms';\nimport { Observable } from 'rxjs';\n\nexport const formFieldControlClass = 'ids-form-field-control';\n\nexport abstract class IdsFormFieldControl {\n public readonly errorStateChanges!: Observable<void>;\n public readonly successStateChanges!: Observable<void>;\n public readonly id!: Signal<string>;\n public readonly placeholder!: Signal<string>;\n public readonly ngControl!: NgControl | null;\n public readonly disabled!: Signal<boolean>;\n public readonly required!: Signal<boolean>;\n public readonly hasErrorState!: Signal<boolean>;\n public readonly hasSuccessState!: Signal<boolean>;\n public readonly controlType?: Signal<string>;\n public readonly autofilled?: Signal<boolean>;\n public readonly userAriaDescribedBy?: Signal<string>;\n public readonly disableAutomaticLabeling?: Signal<boolean>;\n public abstract setDescribedByIds(ids: string[]): void;\n public abstract onContainerClick(event: MouseEvent): void;\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, FormControlStatus } from '@angular/forms';\nimport { ComponentBase } from '@i-cell/ids-angular/core';\nimport { IdsIconComponent } from '@i-cell/ids-angular/icon';\nimport { map, Observable, of, 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.control).pipe(\n tap((controlDir) => this._control.set(controlDir?.control ?? null)),\n map((controlDir) => controlDir?.statusChanges ?? of(null)),\n switchMap((statusChanges: Observable<FormControlStatus | null>) => statusChanges),\n takeUntilDestroyed(this._destroyRef),\n ).subscribe((status) => {\n if (status === 'INVALID') {\n const nextError = this._selectMostImportantValidationError();\n this._validationError.set(nextError);\n } else {\n this._validationError.set(null);\n }\n });\n }\n\n private _selectMostImportantValidationError(): IdsErrorMessageMapping | null {\n const errorDefs = this._errorDefs();\n const control = this._control();\n\n if (!errorDefs?.length || !control?.errors || Object.keys(control.errors).length === 0) {\n return null;\n }\n\n const errorCodes = new Set(Object.keys(control.errors));\n\n return errorDefs.find((errorDef) => errorCodes.has(errorDef.code)) ?? null;\n }\n\n protected _getValidationErrorMessage(messageOrFn: IdsErrorMessageMapping['message']): string {\n return messageOrFn instanceof Function ? messageOrFn() : messageOrFn;\n }\n}\n","<div class=\"ids-message__prefix\">\n <ng-content select=\"[idsMessagePrefix]\">\n <ids-icon aria-hidden=\"true\" fontIcon=\"exclamation-circle\" variant=\"error\" />\n </ng-content>\n</div>\n<div class=\"ids-message__text\">\n @let validationError = _validationError();\n @if (validationError) {\n @let messageString = _getValidationErrorMessage(validationError.message);\n {{ messageString }}\n }\n</div>\n@if (suffixes().length) {\n <div class=\"ids-message__suffix\">\n <ng-content select=\"[idsMessageSuffix]\" />\n </div>\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[idsMessagePrefix]',\n standalone: true,\n})\nexport class IdsMessagePrefixDirective {\n}\n","import { IdsMessagePrefixDirective } from '../../../directives/message-prefix.directive';\nimport { IdsMessageSuffixDirective } from '../../../directives/message-suffix.directive';\nimport { IdsMessageDirective } from '../../../directives/message.directive';\n\nimport { Component, contentChildren, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'ids-hint-message',\n imports: [],\n templateUrl: './hint-message.component.html',\n host: {\n class: 'ids-hint-message',\n },\n hostDirectives: [\n {\n directive: IdsMessageDirective,\n inputs: [\n 'size: size',\n 'variant: variant',\n ],\n },\n ],\n encapsulation: ViewEncapsulation.None,\n})\nexport class IdsHintMessageComponent {\n public prefixes = contentChildren(IdsMessagePrefixDirective);\n public suffixes = contentChildren(IdsMessageSuffixDirective);\n}\n","@if (prefixes().length) {\n <div class=\"ids-message__prefix\">\n <ng-content select=\"[idsMessagePrefix]\" />\n </div>\n}\n<div class=\"ids-message__text\">\n <ng-content />\n</div>\n@if (suffixes().length) {\n <div class=\"ids-message__suffix\">\n <ng-content select=\"[idsMessageSuffix]\" />\n </div>\n}\n","import { IdsMessageSuffixDirective } from '../../../directives/message-suffix.directive';\nimport { IdsMessageDirective } from '../../../directives/message.directive';\n\nimport { Component, ViewEncapsulation, computed, contentChildren } from '@angular/core';\nimport { ComponentBase } from '@i-cell/ids-angular/core';\nimport { IdsIconComponent } from '@i-cell/ids-angular/icon';\n\n@Component({\n selector: 'ids-success-message',\n imports: [IdsIconComponent],\n templateUrl: './success-message.component.html',\n hostDirectives: [IdsMessageDirective],\n encapsulation: ViewEncapsulation.None,\n})\nexport class IdsSuccessMessageComponent extends ComponentBase {\n protected override get _hostName(): string {\n return 'success-message';\n }\n\n protected _hostClasses = computed(() => this._getHostClasses([]));\n\n public suffixes = contentChildren(IdsMessageSuffixDirective);\n}\n","<div class=\"ids-message__prefix\">\n <ng-content select=\"[idsMessagePrefix]\">\n <ids-icon aria-hidden=\"true\" fontIcon=\"check\" variant=\"success\" />\n </ng-content>\n</div>\n<div class=\"ids-message__text\">\n <ng-content />\n</div>\n@if (suffixes().length) {\n <div class=\"ids-message__suffix\">\n <ng-content select=\"[idsMessageSuffix]\" />\n </div>\n}\n","import { IDS_FORM_FIELD_DEFAULT_CONFIG, IDS_FORM_FIELD_DEFAULT_CONFIG_FACTORY, IdsFormFieldDefaultConfig } from './form-field-defaults';\nimport { IDS_FORM_FIELD_CONTROL } from './tokens/form-field-control';\nimport { IdsFormFieldVariantType } from './types/form-field-variant.type';\n\nimport { IdsFormFieldActionDirective } from '../../directives/form-field-action.directive';\nimport { IdsPrefixDirective } from '../../directives/prefix.directive';\nimport { IdsSuffixDirective } from '../../directives/suffix.directive';\nimport { IdsValidators } from '../../validators';\nimport { IdsFieldsetComponent } from '../fieldset/fieldset.component';\nimport { IdsErrorMessageComponent } from '../message/error-message/error-message.component';\nimport { IdsHintMessageComponent } from '../message/hint-message/hint-message.component';\nimport { IdsSuccessMessageComponent } from '../message/success-message/success-message.component';\n\nimport { AfterContentInit, ChangeDetectionStrategy, ChangeDetectorRef, Component, computed, contentChild, contentChildren, ElementRef, inject, input, isDevMode, viewChild, ViewEncapsulation } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\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> implements AfterContentInit {\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(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 public hasActions = computed(() => Boolean(this._actions().length));\n public hasLeadingIcon = computed(() => Boolean(this._prefixes().filter((prefix) => prefix.isLeadingIcon).length));\n public hasPrefix = computed(() => Boolean(this._prefixes().filter((prefix) => !prefix.isLeadingIcon).length));\n public hasSuffix = computed(() => Boolean(this._suffixes().filter((suffix) => !suffix.isTrailingIcon).length));\n public hasTrailingIcon = computed(() => Boolean(this._suffixes().filter((suffix) => suffix.isTrailingIcon).length));\n public 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 control = computed(() => this._child()?.ngControl);\n public disabled = computed(() => Boolean(this._child()?.disabled()));\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 public 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 ngAfterContentInit(): void {\n if (isDevMode() && !this._child()) {\n throw this._createHostError('no form element was provided');\n }\n this._child()?.ngControl?.statusChanges?.pipe(takeUntilDestroyed(this._destroyRef)).subscribe(() => {\n this._changeDetectorRef.markForCheck();\n });\n }\n\n public get hasRequiredValidator(): boolean {\n const control = this.control()?.control;\n if (!control) {\n return Boolean(this._child()?.required());\n }\n return 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 <ng-content select=\"ids-label\" />\n @if (hasRequiredValidator) {\n <span class=\"ids-form-field__required-marker\"></span>\n }\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, ErrorStateTracker } from '../../common/error/error-state';\nimport { AbstractSuccessStateMatcher, SuccessStateTracker } 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 { computed, Directive, effect, ElementRef, inject, input, isDevMode, DoCheck, signal, OnInit } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { FormGroupDirective, NgControl, NgForm } from '@angular/forms';\nimport { coerceBooleanAttribute, ComponentBaseWithDefaults } from '@i-cell/ids-angular/core';\nimport { Subject, Subscription } from 'rxjs';\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]': 'isDisabled() ? \"\" : null',\n '[attr.readonly]': 'readonly() ? \"\" : null',\n '(focus)': '_focusChanged(true)',\n '(blur)': '_focusChanged(false)',\n },\n})\nexport class IdsInputDirective\n extends ComponentBaseWithDefaults<IdsInputDefaultConfig>\n implements IdsFormFieldControl, OnInit, DoCheck {\n protected override get _hostName(): string {\n return 'input';\n }\n\n private readonly _elementRef = inject<ElementRef<HTMLInputElement> | ElementRef<HTMLTextAreaElement>>(ElementRef);\n private readonly _parentFormGroup = inject(FormGroupDirective, { optional: true });\n private readonly _parentForm = inject(NgForm, { optional: true });\n\n protected readonly _defaultConfig = this._getDefaultConfig(defaultConfig, IDS_INPUT_DEFAULT_CONFIG);\n\n public readonly errorStateChanges = new Subject<void>();\n public readonly successStateChanges = new Subject<void>();\n public readonly ngControl = inject(NgControl);\n\n private _focused = false;\n private _errorStateTracker?: ErrorStateTracker;\n private _successStateTracker?: SuccessStateTracker;\n private _successStateSubscription?: Subscription;\n\n public placeholder = input<string>('');\n public name = input<string>();\n public type = input<IdsInputType>('text');\n public required = input<boolean, unknown>(false, { transform: coerceBooleanAttribute });\n public readonly = input<boolean, unknown>(false, { transform: coerceBooleanAttribute });\n public disabled = input<boolean, unknown>(false, { transform: coerceBooleanAttribute });\n private _controlDisabled = signal(false);\n public isDisabled = computed(() => this.disabled() || this._controlDisabled());\n public canHandleSuccessState = input<boolean>(false);\n public errorStateMatcher = input<AbstractErrorStateMatcher>(inject(this._defaultConfig.errorStateMatcher));\n public successStateMatcher = input<AbstractSuccessStateMatcher>(inject(this._defaultConfig.successStateMatcher));\n\n protected _hostClasses = computed(() => this._getHostClasses([], [formFieldControlClass]),\n );\n\n public hasErrorState = signal<boolean>(false);\n public hasSuccessState = signal<boolean>(false);\n\n private _validateTypeEffect = effect(() => {\n this._validateType(this.type());\n });\n\n private _canHandleSuccessStateEffect = effect(() => {\n this._setSuccessStateTracker(this.canHandleSuccessState());\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 public ngOnInit(): void {\n this._initErrorStateTracker();\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\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 } else {\n this._successStateTracker = undefined;\n this._successStateSubscription?.unsubscribe();\n }\n }\n\n public ngDoCheck(): void {\n if (this.ngControl) {\n this.updateErrorAndSuccessState();\n\n if (this.ngControl.disabled !== null && this.ngControl.disabled !== this.disabled()) {\n this._controlDisabled.set(this.ngControl.disabled);\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 updateErrorAndSuccessState(): void {\n this._errorStateTracker?.updateErrorState();\n this._successStateTracker?.updateSuccessState();\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.isDisabled()) {\n this.focus();\n }\n };\n}\n","export const Message = {\n HINT: 'hint',\n ERROR: 'error',\n SUCCESS: 'success',\n} as const;\n\nexport type MessageType = (typeof Message)[keyof typeof Message];\n","import { IdsOptionGroupComponent } from '../option-group.component';\n\nimport { InjectionToken } from '@angular/core';\n\nexport const IDS_OPTION_GROUP = new InjectionToken<IdsOptionGroupComponent>('IdsOptionGroup');\n","import { IdsFormFieldVariantType } from '../../form-field/types/form-field-variant.type';\n\nimport { InjectionToken, Signal } from '@angular/core';\nimport { IdsSizeType } from '@i-cell/ids-angular/core';\n\nexport interface IdsOptionParentComponent {\n multiSelect: Signal<boolean>\n inertGroups?: boolean\n parentSize: Signal<IdsSizeType>\n parentVariant: Signal<IdsFormFieldVariantType>\n isOptionPreSelectedByValue(optionValue: unknown): boolean\n}\n\nexport const IDS_OPTION_PARENT_COMPONENT = new InjectionToken<IdsOptionParentComponent>(\n 'IDS_OPTION_PARENT_COMPONENT',\n);\n","import { IdsOptionComponent } from '../option.component';\n\nexport class IdsOptionSelectionChange<T = unknown> {\n constructor(\n public source: IdsOptionComponent<T>,\n public selected: boolean,\n public isUserInput = false,\n ) {}\n}\n","import { IDS_OPTION_GROUP } from './tokens/option-group';\nimport { IDS_OPTION_PARENT_COMPONENT } from './tokens/option-parent';\n\nimport { ChangeDetectionStrategy, Component, computed, inject, input, ViewEncapsulation } from '@angular/core';\nimport { coerceBooleanAttribute, ComponentBase } from '@i-cell/ids-angular/core';\n\n@Component({\n selector: 'ids-option-group',\n imports: [],\n templateUrl: './option-group.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{ provide: IDS_OPTION_GROUP, useExisting: IdsOptionGroupComponent }],\n host: {\n '[attr.role]': '_inert ? null : \"group\"',\n '[attr.aria-disabled]': '_inert ? null : disabled().toString()',\n '[attr.aria-labelledby]': '_inert ? null : _labelId()',\n },\n})\nexport class IdsOptionGroupComponent extends ComponentBase {\n protected override get _hostName(): string {\n return 'option-group';\n }\n\n private readonly _parent = inject(IDS_OPTION_PARENT_COMPONENT);\n protected readonly _inert = this._parent?.inertGroups ?? false;\n\n public label = input<string>();\n public disabled = input<boolean, unknown>(false, { transform: coerceBooleanAttribute });\n\n protected readonly _labelId = computed(() => `${this.id()}-label`);\n protected readonly _hostClasses = computed(() => this._getHostClasses([\n this.disabled() ? 'disabled' : null,\n this._parent.parentSize(),\n this._parent.parentVariant(),\n ]));\n}\n","<div role=\"presentation\" class=\"ids-option-group__label\" [id]=\"_labelId()\">\n <div class=\"ids-option-group__text\">{{ label() }}</div>\n</div>\n<ng-content select=\"ids-option, ng-container\" />\n","import { InjectionToken, Signal } from '@angular/core';\nimport { IdsSizeType } from '@i-cell/ids-angular/core';\n\nexport interface IdsPseudoCheckboxParent<T extends string> {\n embeddedPseudoCheckboxSize: Signal<IdsSizeType>\n embeddedPseudoCheckboxVariant: Signal<T>\n}\n\nexport const IDS_PSEUDO_CHECKBOX_PARENT = new InjectionToken<IdsPseudoCheckboxParent<string>>(\n 'IDS_PSEUDO_CHECKBOX_PARENT',\n);\n","export const IdsPseudoCheckboxState = {\n UNCHECKED: 'unchecked',\n CHECKED: 'checked',\n INDETERMINATE: 'indeterminate',\n} as const;\n\nexport type IdsPseudoCheckboxStateType = (typeof IdsPseudoCheckboxState)[keyof typeof IdsPseudoCheckboxState];\n","import { IDS_PSEUDO_CHECKBOX_PARENT } from './tokens/pseudo-checkbox-parent';\nimport { IdsPseudoCheckboxState, IdsPseudoCheckboxStateType } from './types/pseudo-checkbox-state.type';\n\nimport { ChangeDetectionStrategy, Component, computed, inject, input, ViewEncapsulation } from '@angular/core';\nimport { coerceBooleanAttribute, ComponentBase } from '@i-cell/ids-angular/core';\nimport { IdsIconComponent } from '@i-cell/ids-angular/icon';\n\n@Component({\n selector: 'ids-pseudo-checkbox',\n imports: [IdsIconComponent],\n templateUrl: './pseudo-checkbox.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class PseudoCheckboxComponent extends ComponentBase {\n protected override get _hostName(): string {\n return 'pseudo-checkbox';\n }\n\n private readonly _parent = inject(IDS_PSEUDO_CHECKBOX_PARENT, { optional: true });\n public checkboxState = input<IdsPseudoCheckboxStateType>(IdsPseudoCheckboxState.UNCHECKED);\n public disabled = input<boolean, unknown>(false, { transform: coerceBooleanAttribute });\n\n protected _isChecked = computed(() => this.checkboxState() === IdsPseudoCheckboxState.CHECKED);\n protected _isIndeterminate = computed(() => this.checkboxState() === IdsPseudoCheckboxState.INDETERMINATE);\n\n protected _hostClasses = computed(() => this._getHostClasses([\n this._parent?.embeddedPseudoCheckboxSize(),\n this._parent?.embeddedPseudoCheckboxVariant(),\n this.disabled() ? 'disabled' : null,\n ]),\n );\n}\n","<div class=\"ids-pseudo-checkbox__input-wrapper\">\n <input\n type=\"checkbox\"\n [disabled]=\"disabled()\"\n [attr.aria-checked]=\"_isIndeterminate() ? 'mixed' : null\"\n [checked]=\"_isChecked()\"\n [indeterminate]=\"_isIndeterminate()\"\n (change)=\"$event.stopPropagation()\"\n />\n <div class=\"ids-pseudo-checkbox__icon\" aria-hidden=\"true\">\n @if (_isIndeterminate()) {\n <ids-icon fontIcon=\"minus\" aria-hidden=\"true\" />\n }\n @if (_isChecked()) {\n <ids-icon fontIcon=\"check\" aria-hidden=\"true\" />\n }\n </div>\n</div>\n","import { IdsOptionGroupComponent } from './option-group.component';\nimport { IDS_OPTION_GROUP } from './tokens/option-group';\nimport { IDS_OPTION_PARENT_COMPONENT } from './tokens/option-parent';\nimport { IdsOptionSelectionChange } from './types/option-events.class';\n\nimport { IdsFormFieldVariant, IdsFormFieldVariantType } from '../form-field/types/form-field-variant.type';\nimport { PseudoCheckboxComponent } from '../pseudo-checkbox/pseudo-checkbox.component';\nimport { IDS_PSEUDO_CHECKBOX_PARENT, IdsPseudoCheckboxParent } from '../pseudo-checkbox/tokens/pseudo-checkbox-parent';\nimport { IdsPseudoCheckboxState } from '../pseudo-checkbox/types/pseudo-checkbox-state.type';\n\nimport { FocusOrigin } from '@angular/cdk/a11y';\nimport { hasModifierKey } from '@angular/cdk/keycodes';\nimport { ChangeDetectionStrategy, Component, computed, effect, ElementRef, inject, input, OnInit, output, signal, viewChild, ViewEncapsulation } from '@angular/core';\nimport { coerceBooleanAttribute, ComponentBase } from '@i-cell/ids-angular/core';\nimport { IdsIconComponent } from '@i-cell/ids-angular/icon';\n\n@Component({\n selector: 'ids-option',\n imports: [\n IdsIconComponent,\n PseudoCheckboxComponent,\n ],\n templateUrl: './option.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: IDS_PSEUDO_CHECKBOX_PARENT,\n useExisting: IdsOptionComponent,\n },\n ],\n host: {\n 'role': 'option',\n '[attr.aria-selected]': 'selected()',\n '[attr.aria-disabled]': 'disabled.toString()',\n '(click)': 'selectViaInteraction()',\n '(keydown)': '_handleKeydown($event)',\n },\n})\nexport class IdsOptionComponent<T = unknown>\n extends ComponentBase\n implements OnInit, IdsPseudoCheckboxParent<IdsFormFieldVariantType> {\n protected override get _hostName(): string {\n return 'option';\n }\n\n private readonly _parent = inject(IDS_OPTION_PARENT_COMPONENT);\n private readonly _element = inject<ElementRef<HTMLElement>>(ElementRef);\n public readonly group = inject(IDS_OPTION_GROUP, { optional: true });\n\n private _textElement = viewChild.required<ElementRef<HTMLElement>>('text');\n\n public selected = signal<boolean>(false);\n private _active = signal<boolean>(false);\n public size = computed(() => this._parent.parentSize());\n public variant = computed(() => this._parent.parentVariant());\n\n public value = input<T>();\n public explicitViewValue = input<string | null>(null, { alias: 'viewValue' });\n public disabledInput = input<boolean, unknown>(false, { alias: 'disabled', transform: coerceBooleanAttribute });\n\n public disabled = false; // Do not delete this class member, until ListKeyManagerOption requires: `disabled: boolean`\n\n protected _groupOrOptionIsDisabled = computed(() => this.group?.disabled() || this.disabledInput());\n\n protected readonly _multiSelect = Boolean(this._parent?.multiSelect());\n\n public onSelectionChange = output<IdsOptionSelectionChange<T>>();\n\n public viewValue = computed(() => this._textElement().nativeElement.textContent || this.explicitViewValue() || '');\n protected readonly _hostClasses = computed(() => this._getHostClasses([\n this.selected() ? 'selected' : null,\n this._active() ? 'active' : null,\n this._groupOrOptionIsDisabled() ? 'disabled' : null,\n this._multiSelect ? 'multiselect' : null,\n this.size(),\n this.variant(),\n ]));\n\n protected _pseudoCheckboxState = computed(() => (this.selected() ? IdsPseudoCheckboxState.CHECKED : IdsPseudoCheckboxState.UNCHECKED));\n public embeddedPseudoCheckboxSize = computed(() => this.size());\n public embeddedPseudoCheckboxVariant = signal(IdsFormFieldVariant.SURFACE);\n\n constructor() {\n super();\n effect(() => { // Do not delete this effect, until ListKeyManagerOption requires: `disabled: boolean`\n this.disabled = this.disabledInput();\n });\n }\n\n public ngOnInit(): void {\n const parent = this._parent;\n\n if (parent.isOptionPreSelectedByValue(this.value())) {\n this.selected.set(true);\n }\n }\n\n private _handleKeydown(event: KeyboardEvent): void {\n if ((event.key === 'ENTER' || event.key === ' ') && !hasModifierKey(event)) {\n this.selectViaInteraction();\n event.preventDefault();\n }\n }\n\n public selectViaInteraction(): void {\n if (!this._groupOrOptionIsDisabled()) {\n this._emitSelectionChangeEvent(!this.selected(), true);\n }\n }\n\n public getHostElement(): HTMLElement {\n return this._element.nativeElement;\n }\n\n public select(emitEvent = true): void {\n if (!this.selected()) {\n if (emitEvent) {\n this._emitSelectionChangeEvent(true);\n }\n }\n }\n\n public deselect(emitEvent = true): void {\n if (this.selected()) {\n if (emitEvent) {\n this._emitSelectionChangeEvent(false);\n }\n }\n }\n\n public focus(_origin?: FocusOrigin, options?: FocusOptions): void {\n const element = this._element.nativeElement;\n\n if (typeof element.focus === 'function') {\n element.focus(options);\n }\n }\n\n public setActiveStyles(): void {\n if (!this._active()) {\n this._active.set(true);\n }\n }\n\n public setInactiveStyles(): void {\n if (this._active()) {\n this._active.set(false);\n }\n }\n\n public getLabel(): string {\n return this.viewValue();\n }\n\n private _emitSelectionChangeEvent(selected: boolean, isUserInput = false): void {\n if (this._multiSelect || !this.selected()) {\n this.onSelectionChange.emit(new IdsOptionSelectionChange<T>(this, selected, isUserInput));\n }\n }\n}\n\nexport function _countGroupLabelsBeforeOption(\n optionIndex: number,\n options: Readonly<IdsOptionComponent[]>,\n optionGroups: Readonly<IdsOptionGroupComponent[]>,\n): number {\n if (optionGroups.length) {\n let groupCounter = 0;\n\n for (let i = 0; i < optionIndex + 1; i++) {\n if (options[i].group && options[i].group === optionGroups[groupCounter]) {\n groupCounter++;\n }\n }\n\n return groupCounter;\n }\n\n return 0;\n}\n\nexport function _getOptionScrollPosition(\n optionOffset: number,\n optionHeight: number,\n currentScrollPosition: number,\n panelHeight: number,\n): number {\n if (optionOffset < currentScrollPosition) {\n return optionOffset;\n }\n\n if (optionOffset + optionHeight > currentScrollPosition + panelHeight) {\n return Math.max(0, optionOffset - panelHeight + optionHeight);\n }\n\n return currentScrollPosition;\n}\n","@if (_multiSelect) {\n <ids-pseudo-checkbox aria-hidden=\"true\" [disabled]=\"_groupOrOptionIsDisabled()\" [checkboxState]=\"_pseudoCheckboxState()\" />\n}\n\n<div #text class=\"ids-option__text\"><ng-content /></div>\n\n@if (!_multiSelect && selected()) {\n <ids-icon fontIcon=\"check\" />\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: 'ids-label',\n standalone: true,\n})\nexport class IdsLabelDirective {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["defaultConfig","i1.IdsMessageDirective"],"mappings":"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"}
@@ -16,7 +16,7 @@ export declare class IdsInputDirective extends ComponentBaseWithDefaults<IdsInpu
16
16
  protected readonly _defaultConfig: Required<IdsInputDefaultConfig>;
17
17
  readonly errorStateChanges: Subject<void>;
18
18
  readonly successStateChanges: Subject<void>;
19
- readonly ngControl: NgControl | null;
19
+ readonly ngControl: NgControl;
20
20
  private _focused;
21
21
  private _errorStateTracker?;
22
22
  private _successStateTracker?;
@@ -0,0 +1,49 @@
1
+ import { IdsErrorMessageMapping } from '../types/error-message-mapping';
2
+ import * as i0 from "@angular/core";
3
+ /**
4
+ * Directive to map an error message to an error code for a form field.
5
+ * Mappings must be defined between the directive element's tags ordered by priority (descending from top to bottom).
6
+ * The error code is provided as an attribute, while the error message will be this directive's text content.
7
+ * The latter can be a plain string literal or even an interpolated string value.
8
+ *
9
+ * @example
10
+ * ```html
11
+ * <ids-form-field>
12
+ * <ids-label>Input field</ids-label>
13
+ * <input
14
+ * idsInput
15
+ * ngModel
16
+ * customValidator
17
+ * required
18
+ * [minlength]="3"
19
+ * [maxlength]="10"
20
+ * [pattern]="validPattern"
21
+ * >
22
+ * <ids-error-message>
23
+ * <ids-error-def code="required">{{ 'ERROR.REQUIRED.CUSTOM' | translate }}</ids-error-def>
24
+ * <ids-error-def code="minlength">'minLength' error message</ids-error-def>
25
+ * <ids-error-def code="maxlength">'maxLength' error message</ids-error-def>
26
+ * <ids-error-def code="pattern">'pattern' error message with interpolation: {{ model.value }}</ids-error-def>
27
+ * <ids-error-def code="custom">Custom validator error message</ids-error-def>
28
+ * </ids-error-message>
29
+ * </ids-form-field>
30
+ * ```
31
+ */
32
+ export declare class IdsErrorDefinitionDirective {
33
+ /**
34
+ * The validation error's identifier code
35
+ */
36
+ code: import("@angular/core").InputSignal<string>;
37
+ private _elementRef;
38
+ /**
39
+ * The validation error's message that will be presented to the user
40
+ */
41
+ get errorMessage(): string;
42
+ /**
43
+ * Creates a IdsErrorMessageMapping instance based on this directive's state (code, errorMessage)
44
+ * @returns A IdsErrorMessageMapping instance
45
+ */
46
+ toErrorMessageMapping(): IdsErrorMessageMapping;
47
+ static ɵfac: i0.ɵɵFactoryDeclaration<IdsErrorDefinitionDirective, never>;
48
+ static ɵdir: i0.ɵɵDirectiveDeclaration<IdsErrorDefinitionDirective, "ids-error-def", never, { "code": { "alias": "code"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
49
+ }
@@ -1,15 +1,20 @@
1
1
  import { IdsMessageSuffixDirective } from '../../../directives/message-suffix.directive';
2
- import { OnInit } from '@angular/core';
2
+ import { IdsErrorMessageMapping } from '../types/error-message-mapping';
3
3
  import { ComponentBase } from '@i-cell/ids-angular/core';
4
4
  import * as i0 from "@angular/core";
5
5
  import * as i1 from "../../../directives/message.directive";
6
- export declare class IdsErrorMessageComponent extends ComponentBase implements OnInit {
6
+ export declare class IdsErrorMessageComponent extends ComponentBase {
7
7
  protected get _hostName(): string;
8
- private _injector;
9
- private _errors;
8
+ private _parent;
9
+ private _control;
10
+ private _errorDefDirs;
11
+ private _errorDefs;
12
+ protected _validationError: import("@angular/core").WritableSignal<IdsErrorMessageMapping | null>;
10
13
  protected _hostClasses: import("@angular/core").Signal<string>;
11
14
  suffixes: import("@angular/core").Signal<readonly IdsMessageSuffixDirective[]>;
12
- ngOnInit(): void;
15
+ constructor();
16
+ private _selectMostImportantValidationError;
17
+ protected _getValidationErrorMessage(messageOrFn: IdsErrorMessageMapping['message']): string;
13
18
  static ɵfac: i0.ɵɵFactoryDeclaration<IdsErrorMessageComponent, never>;
14
- static ɵcmp: i0.ɵɵComponentDeclaration<IdsErrorMessageComponent, "ids-error-message", never, {}, {}, ["suffixes"], ["[idsMessagePrefix]", "*", "[idsMessageSuffix]"], true, [{ directive: typeof i1.IdsMessageDirective; inputs: {}; outputs: {}; }]>;
19
+ static ɵcmp: i0.ɵɵComponentDeclaration<IdsErrorMessageComponent, "ids-error-message", never, {}, {}, ["_errorDefDirs", "suffixes"], ["[idsMessagePrefix]", "[idsMessageSuffix]"], true, [{ directive: typeof i1.IdsMessageDirective; inputs: {}; outputs: {}; }]>;
15
20
  }
@@ -0,0 +1,9 @@
1
+ /**
2
+ * A validation error's representation that maps an error message (or a function returning a message) to an error code.
3
+ */
4
+ export interface IdsErrorMessageMapping {
5
+ /** The code of the error (usually the error key returned by a {@link ValidatorFn}) */
6
+ code: string;
7
+ /** The error's message (either a string literal or a function that returns a literal) */
8
+ message: string | (() => string);
9
+ }
@@ -11,9 +11,11 @@ export * from './components/form-field/form-field-defaults';
11
11
  export * from './components/form-field/form-field.component';
12
12
  export * from './components/input/input-defaults';
13
13
  export * from './components/input/input.directive';
14
+ export * from './components/message/error-message/error-definition.directive';
14
15
  export * from './components/message/error-message/error-message.component';
15
16
  export * from './components/message/hint-message/hint-message.component';
16
17
  export * from './components/message/success-message/success-message.component';
18
+ export * from './components/message/types/error-message-mapping';
17
19
  export * from './components/message/types/message-variant.type';
18
20
  export * from './components/message/types/message.type';
19
21
  export * from './components/message/message-defaults';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@i-cell/ids-angular",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "private": false,
5
5
  "description": "i-Cell Design System UI Kit components for Angular",
6
6
  "publishConfig": {
@@ -15,6 +15,7 @@
15
15
  "Barsi Balázs",
16
16
  "Bátori László",
17
17
  "Nagy Gábor",
18
+ "Onofer Dávid",
18
19
  "Soós Árpád"
19
20
  ],
20
21
  "license": "MIT",
@@ -49,10 +50,6 @@
49
50
  "types": "./accordion/index.d.ts",
50
51
  "default": "./fesm2022/i-cell-ids-angular-accordion.mjs"
51
52
  },
52
- "./card": {
53
- "types": "./card/index.d.ts",
54
- "default": "./fesm2022/i-cell-ids-angular-card.mjs"
55
- },
56
53
  "./avatar": {
57
54
  "types": "./avatar/index.d.ts",
58
55
  "default": "./fesm2022/i-cell-ids-angular-avatar.mjs"
@@ -61,17 +58,21 @@
61
58
  "types": "./button/index.d.ts",
62
59
  "default": "./fesm2022/i-cell-ids-angular-button.mjs"
63
60
  },
64
- "./chip": {
65
- "types": "./chip/index.d.ts",
66
- "default": "./fesm2022/i-cell-ids-angular-chip.mjs"
61
+ "./checkbox": {
62
+ "types": "./checkbox/index.d.ts",
63
+ "default": "./fesm2022/i-cell-ids-angular-checkbox.mjs"
64
+ },
65
+ "./card": {
66
+ "types": "./card/index.d.ts",
67
+ "default": "./fesm2022/i-cell-ids-angular-card.mjs"
67
68
  },
68
69
  "./core": {
69
70
  "types": "./core/index.d.ts",
70
71
  "default": "./fesm2022/i-cell-ids-angular-core.mjs"
71
72
  },
72
- "./checkbox": {
73
- "types": "./checkbox/index.d.ts",
74
- "default": "./fesm2022/i-cell-ids-angular-checkbox.mjs"
73
+ "./chip": {
74
+ "types": "./chip/index.d.ts",
75
+ "default": "./fesm2022/i-cell-ids-angular-chip.mjs"
75
76
  },
76
77
  "./dialog": {
77
78
  "types": "./dialog/index.d.ts",