@i-cell/ids-angular 0.0.0-watch

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (133) hide show
  1. package/README.md +24 -0
  2. package/accordion/index.d.ts +81 -0
  3. package/accordion/package.json +3 -0
  4. package/avatar/index.d.ts +66 -0
  5. package/avatar/package.json +3 -0
  6. package/badge/index.d.ts +61 -0
  7. package/badge/package.json +3 -0
  8. package/breadcrumb/index.d.ts +67 -0
  9. package/breadcrumb/package.json +3 -0
  10. package/button/index.d.ts +81 -0
  11. package/button/package.json +3 -0
  12. package/card/index.d.ts +91 -0
  13. package/card/package.json +3 -0
  14. package/checkbox/index.d.ts +137 -0
  15. package/checkbox/package.json +3 -0
  16. package/chip/index.d.ts +82 -0
  17. package/chip/package.json +3 -0
  18. package/core/index.d.ts +168 -0
  19. package/core/package.json +3 -0
  20. package/datepicker/index.d.ts +112 -0
  21. package/datepicker/package.json +3 -0
  22. package/dialog/index.d.ts +72 -0
  23. package/dialog/package.json +3 -0
  24. package/divider/index.d.ts +45 -0
  25. package/divider/package.json +3 -0
  26. package/fesm2022/i-cell-ids-angular-accordion.mjs +223 -0
  27. package/fesm2022/i-cell-ids-angular-accordion.mjs.map +1 -0
  28. package/fesm2022/i-cell-ids-angular-avatar.mjs +125 -0
  29. package/fesm2022/i-cell-ids-angular-avatar.mjs.map +1 -0
  30. package/fesm2022/i-cell-ids-angular-badge.mjs +172 -0
  31. package/fesm2022/i-cell-ids-angular-badge.mjs.map +1 -0
  32. package/fesm2022/i-cell-ids-angular-breadcrumb.mjs +313 -0
  33. package/fesm2022/i-cell-ids-angular-breadcrumb.mjs.map +1 -0
  34. package/fesm2022/i-cell-ids-angular-button.mjs +149 -0
  35. package/fesm2022/i-cell-ids-angular-button.mjs.map +1 -0
  36. package/fesm2022/i-cell-ids-angular-card.mjs +222 -0
  37. package/fesm2022/i-cell-ids-angular-card.mjs.map +1 -0
  38. package/fesm2022/i-cell-ids-angular-checkbox.mjs +350 -0
  39. package/fesm2022/i-cell-ids-angular-checkbox.mjs.map +1 -0
  40. package/fesm2022/i-cell-ids-angular-chip.mjs +166 -0
  41. package/fesm2022/i-cell-ids-angular-chip.mjs.map +1 -0
  42. package/fesm2022/i-cell-ids-angular-core.mjs +409 -0
  43. package/fesm2022/i-cell-ids-angular-core.mjs.map +1 -0
  44. package/fesm2022/i-cell-ids-angular-datepicker.mjs +860 -0
  45. package/fesm2022/i-cell-ids-angular-datepicker.mjs.map +1 -0
  46. package/fesm2022/i-cell-ids-angular-dialog.mjs +183 -0
  47. package/fesm2022/i-cell-ids-angular-dialog.mjs.map +1 -0
  48. package/fesm2022/i-cell-ids-angular-divider.mjs +76 -0
  49. package/fesm2022/i-cell-ids-angular-divider.mjs.map +1 -0
  50. package/fesm2022/i-cell-ids-angular-forms.mjs +972 -0
  51. package/fesm2022/i-cell-ids-angular-forms.mjs.map +1 -0
  52. package/fesm2022/i-cell-ids-angular-icon-button.mjs +120 -0
  53. package/fesm2022/i-cell-ids-angular-icon-button.mjs.map +1 -0
  54. package/fesm2022/i-cell-ids-angular-icon.mjs +158 -0
  55. package/fesm2022/i-cell-ids-angular-icon.mjs.map +1 -0
  56. package/fesm2022/i-cell-ids-angular-menu.mjs +154 -0
  57. package/fesm2022/i-cell-ids-angular-menu.mjs.map +1 -0
  58. package/fesm2022/i-cell-ids-angular-notification.mjs +167 -0
  59. package/fesm2022/i-cell-ids-angular-notification.mjs.map +1 -0
  60. package/fesm2022/i-cell-ids-angular-overlay-panel.mjs +72 -0
  61. package/fesm2022/i-cell-ids-angular-overlay-panel.mjs.map +1 -0
  62. package/fesm2022/i-cell-ids-angular-paginator.mjs +319 -0
  63. package/fesm2022/i-cell-ids-angular-paginator.mjs.map +1 -0
  64. package/fesm2022/i-cell-ids-angular-radio.mjs +312 -0
  65. package/fesm2022/i-cell-ids-angular-radio.mjs.map +1 -0
  66. package/fesm2022/i-cell-ids-angular-segmented-control-toggle.mjs +264 -0
  67. package/fesm2022/i-cell-ids-angular-segmented-control-toggle.mjs.map +1 -0
  68. package/fesm2022/i-cell-ids-angular-segmented-control.mjs +283 -0
  69. package/fesm2022/i-cell-ids-angular-segmented-control.mjs.map +1 -0
  70. package/fesm2022/i-cell-ids-angular-select.mjs +549 -0
  71. package/fesm2022/i-cell-ids-angular-select.mjs.map +1 -0
  72. package/fesm2022/i-cell-ids-angular-side-nav.mjs +375 -0
  73. package/fesm2022/i-cell-ids-angular-side-nav.mjs.map +1 -0
  74. package/fesm2022/i-cell-ids-angular-side-sheet.mjs +179 -0
  75. package/fesm2022/i-cell-ids-angular-side-sheet.mjs.map +1 -0
  76. package/fesm2022/i-cell-ids-angular-snackbar.mjs +440 -0
  77. package/fesm2022/i-cell-ids-angular-snackbar.mjs.map +1 -0
  78. package/fesm2022/i-cell-ids-angular-spinner.mjs +67 -0
  79. package/fesm2022/i-cell-ids-angular-spinner.mjs.map +1 -0
  80. package/fesm2022/i-cell-ids-angular-switch.mjs +181 -0
  81. package/fesm2022/i-cell-ids-angular-switch.mjs.map +1 -0
  82. package/fesm2022/i-cell-ids-angular-tab.mjs +142 -0
  83. package/fesm2022/i-cell-ids-angular-tab.mjs.map +1 -0
  84. package/fesm2022/i-cell-ids-angular-table.mjs +663 -0
  85. package/fesm2022/i-cell-ids-angular-table.mjs.map +1 -0
  86. package/fesm2022/i-cell-ids-angular-tag.mjs +116 -0
  87. package/fesm2022/i-cell-ids-angular-tag.mjs.map +1 -0
  88. package/fesm2022/i-cell-ids-angular-tooltip.mjs +586 -0
  89. package/fesm2022/i-cell-ids-angular-tooltip.mjs.map +1 -0
  90. package/fesm2022/i-cell-ids-angular.mjs +9 -0
  91. package/fesm2022/i-cell-ids-angular.mjs.map +1 -0
  92. package/forms/index.d.ts +470 -0
  93. package/forms/package.json +3 -0
  94. package/icon/index.d.ts +69 -0
  95. package/icon/package.json +3 -0
  96. package/icon-button/index.d.ts +68 -0
  97. package/icon-button/package.json +3 -0
  98. package/index.d.ts +2 -0
  99. package/menu/index.d.ts +68 -0
  100. package/menu/package.json +3 -0
  101. package/notification/index.d.ts +68 -0
  102. package/notification/package.json +3 -0
  103. package/overlay-panel/index.d.ts +41 -0
  104. package/overlay-panel/package.json +3 -0
  105. package/package.json +180 -0
  106. package/paginator/index.d.ts +122 -0
  107. package/paginator/package.json +3 -0
  108. package/radio/index.d.ts +95 -0
  109. package/radio/package.json +3 -0
  110. package/segmented-control/index.d.ts +98 -0
  111. package/segmented-control/package.json +3 -0
  112. package/segmented-control-toggle/index.d.ts +103 -0
  113. package/segmented-control-toggle/package.json +3 -0
  114. package/select/index.d.ts +103 -0
  115. package/select/package.json +3 -0
  116. package/side-nav/index.d.ts +107 -0
  117. package/side-nav/package.json +3 -0
  118. package/side-sheet/index.d.ts +84 -0
  119. package/side-sheet/package.json +3 -0
  120. package/snackbar/index.d.ts +149 -0
  121. package/snackbar/package.json +3 -0
  122. package/spinner/index.d.ts +41 -0
  123. package/spinner/package.json +3 -0
  124. package/switch/index.d.ts +89 -0
  125. package/switch/package.json +3 -0
  126. package/tab/index.d.ts +78 -0
  127. package/tab/package.json +3 -0
  128. package/table/index.d.ts +393 -0
  129. package/table/package.json +3 -0
  130. package/tag/index.d.ts +70 -0
  131. package/tag/package.json +3 -0
  132. package/tooltip/index.d.ts +96 -0
  133. package/tooltip/package.json +3 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"i-cell-ids-angular-forms.mjs","sources":["../../../projects/widgets/forms/common/error/error-state.ts","../../../projects/widgets/forms/common/success/success-state.ts","../../../projects/widgets/forms/components/fieldset/fieldset-row/fieldset-row.component.ts","../../../projects/widgets/forms/components/fieldset/fieldset-row/fieldset-row.component.html","../../../projects/widgets/forms/components/form-field/types/form-field-variant.type.ts","../../../projects/widgets/forms/components/fieldset/fieldset-defaults.ts","../../../projects/widgets/forms/components/fieldset/fieldset-message.directive.ts","../../../projects/widgets/forms/components/fieldset/fieldset.component.ts","../../../projects/widgets/forms/components/fieldset/fieldset.component.html","../../../projects/widgets/forms/components/form-field/tokens/form-field-control.ts","../../../projects/widgets/forms/components/form-field/form-field-control.ts","../../../projects/widgets/forms/components/form-field/form-field-defaults.ts","../../../projects/widgets/forms/directives/form-field-action.directive.ts","../../../projects/widgets/forms/directives/prefix.directive.ts","../../../projects/widgets/forms/directives/suffix.directive.ts","../../../projects/widgets/forms/validators.ts","../../../projects/widgets/forms/components/message/error-message/error-definition.directive.ts","../../../projects/widgets/forms/directives/message-suffix.directive.ts","../../../projects/widgets/forms/components/message/types/message-variant.type.ts","../../../projects/widgets/forms/components/message/message-defaults.ts","../../../projects/widgets/forms/components/message/types/message-parent-form-field.ts","../../../projects/widgets/forms/directives/message.directive.ts","../../../projects/widgets/forms/components/message/error-message/error-message.component.ts","../../../projects/widgets/forms/components/message/error-message/error-message.component.html","../../../projects/widgets/forms/directives/message-prefix.directive.ts","../../../projects/widgets/forms/components/message/hint-message/hint-message.component.ts","../../../projects/widgets/forms/components/message/hint-message/hint-message.component.html","../../../projects/widgets/forms/components/message/success-message/success-message.component.ts","../../../projects/widgets/forms/components/message/success-message/success-message.component.html","../../../projects/widgets/forms/components/form-field/form-field.component.ts","../../../projects/widgets/forms/components/form-field/form-field.component.html","../../../projects/widgets/forms/components/input/input-defaults.ts","../../../projects/widgets/forms/components/input/input.directive.ts","../../../projects/widgets/forms/components/message/types/message.type.ts","../../../projects/widgets/forms/components/option/tokens/option-group.ts","../../../projects/widgets/forms/components/option/tokens/option-parent.ts","../../../projects/widgets/forms/components/option/types/option-events.class.ts","../../../projects/widgets/forms/components/option/option-group.component.ts","../../../projects/widgets/forms/components/option/option-group.component.html","../../../projects/widgets/forms/components/pseudo-checkbox/tokens/pseudo-checkbox-parent.ts","../../../projects/widgets/forms/components/pseudo-checkbox/types/pseudo-checkbox-state.type.ts","../../../projects/widgets/forms/components/pseudo-checkbox/pseudo-checkbox.component.ts","../../../projects/widgets/forms/components/pseudo-checkbox/pseudo-checkbox.component.html","../../../projects/widgets/forms/components/option/option.component.ts","../../../projects/widgets/forms/components/option/option.component.html","../../../projects/widgets/forms/directives/label.directive.ts","../../../projects/widgets/forms/i-cell-ids-angular-forms.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { AbstractControl, FormGroupDirective, NgControl, NgForm } from '@angular/forms';\nimport { Subject } from 'rxjs';\n\nexport abstract class AbstractErrorStateMatcher {\n public abstract isErrorState(control: AbstractControl | null, form: FormGroupDirective | NgForm | null): boolean;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class ErrorStateMatcher extends AbstractErrorStateMatcher {\n public isErrorState(control: AbstractControl | null, form: FormGroupDirective | NgForm | null): boolean {\n return !!(control && control.invalid && (control.touched || (form && form.submitted)));\n }\n}\n\nexport class ErrorStateTracker {\n /** Whether the tracker is currently in an error state. */\n public hasErrorState = false;\n\n constructor(\n private _matcher: ErrorStateMatcher | null,\n private _ngControl: NgControl | null,\n private _parentFormGroup: FormGroupDirective | null,\n private _parentForm: NgForm | null,\n private _stateChanges?: Subject<void>,\n ) {}\n\n /** Updates the error state based on the provided error state matcher. */\n public updateErrorState(): void {\n const oldState = this.hasErrorState;\n const parent = this._parentFormGroup || this._parentForm;\n const matcher = this._matcher;\n const control = this._ngControl ? (this._ngControl.control) : null;\n const newState = matcher?.isErrorState(control, parent) ?? false;\n\n if (newState !== oldState) {\n this.hasErrorState = newState;\n this._stateChanges?.next();\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { AbstractControl, FormGroupDirective, NgControl, NgForm } from '@angular/forms';\nimport { Subject } from 'rxjs';\n\nexport abstract class AbstractSuccessStateMatcher {\n public abstract isSuccessState(control: AbstractControl | null, form: FormGroupDirective | NgForm | null): boolean;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class SuccessStateMatcher extends AbstractSuccessStateMatcher {\n public isSuccessState(control: AbstractControl | null, form: FormGroupDirective | NgForm | null): boolean {\n return !!(control && control.valid && (control.touched || (form && form.submitted)));\n }\n}\n\nexport class SuccessStateTracker {\n /** Whether the tracker is currently in an success state. */\n public hasSuccessState = false;\n\n constructor(\n private _matcher: SuccessStateMatcher | null,\n private _ngControl: NgControl | null,\n private _parentFormGroup: FormGroupDirective | null,\n private _parentForm: NgForm | null,\n private _stateChanges?: Subject<void>,\n ) {}\n\n /** Updates the success state based on the provided success state matcher. */\n public updateSuccessState(): void {\n const oldState = this.hasSuccessState;\n const parent = this._parentFormGroup || this._parentForm;\n const matcher = this._matcher;\n const control = this._ngControl ? (this._ngControl.control) : null;\n const newState = matcher?.isSuccessState(control, parent) ?? false;\n\n if (newState !== oldState) {\n this.hasSuccessState = newState;\n this._stateChanges?.next();\n }\n }\n}\n","import { ChangeDetectionStrategy, Component, signal, ViewEncapsulation } from '@angular/core';\nimport { ComponentBase } from '@i-cell/ids-angular/core';\n\n@Component({\n selector: 'ids-fieldset-row',\n imports: [],\n templateUrl: './fieldset-row.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class IdsFieldsetRowComponent extends ComponentBase {\n protected override get _hostName(): string {\n return 'fieldset-row';\n }\n\n protected _hostClasses = signal(this._getHostClasses([]));\n}\n","<ng-content />\n","export const IdsFormFieldVariant = {\n SURFACE: 'surface',\n LIGHT: 'light',\n} as const;\n\nexport type IdsFormFieldVariantType = (typeof IdsFormFieldVariant)[keyof typeof IdsFormFieldVariant];\n","import { IdsFormFieldVariant, IdsFormFieldVariantType } from '../form-field/types/form-field-variant.type';\n\nimport { InjectionToken } from '@angular/core';\nimport { IdsSize, IdsSizeType } from '@i-cell/ids-angular/core';\n\nexport interface IdsFieldsetDefaultConfig {\n size?: IdsSizeType\n variant?: IdsFormFieldVariantType,\n}\n\nexport const IDS_FIELDSET_DEFAULT_CONFIG = new InjectionToken<IdsFieldsetDefaultConfig>(\n 'IDS_FIELDSET_DEFAULT_CONFIG',\n {\n providedIn: 'root',\n factory: IDS_FIELDSET_DEFAULT_CONFIG_FACTORY,\n },\n);\n\nexport function IDS_FIELDSET_DEFAULT_CONFIG_FACTORY(): Required<IdsFieldsetDefaultConfig> {\n return {\n size: IdsSize.COMPACT,\n variant: IdsFormFieldVariant.SURFACE,\n };\n}\n\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[idsFieldsetMessage]',\n standalone: true,\n})\nexport class IdsFieldsetMessageDirective {}\n","import { IDS_FIELDSET_DEFAULT_CONFIG, IDS_FIELDSET_DEFAULT_CONFIG_FACTORY, IdsFieldsetDefaultConfig } from './fieldset-defaults';\nimport { IdsFieldsetMessageDirective } from './fieldset-message.directive';\n\nimport { IdsFormFieldVariantType } from '../form-field/types/form-field-variant.type';\n\nimport { ChangeDetectionStrategy, Component, computed, contentChildren, input, ViewEncapsulation } from '@angular/core';\nimport { ComponentBaseWithDefaults, IdsSizeType } from '@i-cell/ids-angular/core';\n\nconst defaultConfig = IDS_FIELDSET_DEFAULT_CONFIG_FACTORY();\n\n@Component({\n selector: 'fieldset[idsFieldset]',\n imports: [],\n templateUrl: './fieldset.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class IdsFieldsetComponent extends ComponentBaseWithDefaults<IdsFieldsetDefaultConfig> {\n protected override get _hostName(): string {\n return 'fieldset';\n }\n\n protected readonly _defaultConfig = this._getDefaultConfig(defaultConfig, IDS_FIELDSET_DEFAULT_CONFIG);\n\n public size = input<IdsSizeType>(this._defaultConfig.size);\n public variant = input<IdsFormFieldVariantType>(this._defaultConfig.variant);\n public legend = input<string>('');\n\n private _fieldsetMessage = contentChildren<IdsFieldsetMessageDirective>(IdsFieldsetMessageDirective);\n\n protected _hasMessage = computed(() => this._fieldsetMessage().length > 0);\n\n protected _hostClasses = computed(() => this._getHostClasses([\n this.size(),\n this.variant(),\n ]));\n}\n","<legend class=\"ids-fieldset-legend\">{{ legend() }}</legend>\n@if (_hasMessage()) {\n <div class=\"ids-fieldset-message\">\n <ng-content select=\"[idsFieldsetMessage]\" />\n </div>\n}\n<ng-content select=\"ids-fieldset-row\" />\n","import { IdsFormFieldControl } from '../form-field-control';\n\nimport { InjectionToken } from '@angular/core';\n\nexport const IDS_FORM_FIELD_CONTROL = new InjectionToken<IdsFormFieldControl>('IDS_FORM_FIELD_CONTROL');\n","import { AbstractErrorStateMatcher, ErrorStateTracker } from '../../common/error/error-state';\nimport { AbstractSuccessStateMatcher, SuccessStateTracker } from '../../common/success/success-state';\n\nimport { booleanAttribute, computed, Directive, effect, ElementRef, inject, Injector, input, Signal, signal } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { FormGroupDirective, NgControl, NgForm } from '@angular/forms';\nimport { ComponentBaseWithDefaults } from '@i-cell/ids-angular/core';\nimport { Subject, Subscription } from 'rxjs';\n\nexport const formFieldControlClass = 'ids-form-field-control';\n\n@Directive()\nexport abstract class IdsFormFieldControl<D = unknown> extends ComponentBaseWithDefaults<D> {\n protected readonly _injector = inject(Injector);\n protected readonly _parentForm = inject(NgForm, { optional: true });\n protected readonly _parentFormGroup = inject(FormGroupDirective, { optional: true });\n\n public readonly ngControl = signal<NgControl | null>(null);\n\n public readonly errorStateChanges = new Subject<void>();\n public readonly successStateChanges = new Subject<void>();\n\n public readonly canHandleSuccessState = input<boolean>(false);\n\n public readonly hasErrorState = signal<boolean>(false);\n public readonly hasSuccessState = signal<boolean>(false);\n\n protected abstract readonly _elementRef: ElementRef;\n\n public abstract readonly errorStateMatcher: Signal<AbstractErrorStateMatcher>;\n public abstract readonly successStateMatcher: Signal<AbstractSuccessStateMatcher>;\n\n private _canHandleSuccessStateEffect = effect(() => {\n this._setSuccessStateTracker(this.canHandleSuccessState());\n });\n\n /** Handles the `disabled` input binding */\n public readonly disabledInput = input<boolean, unknown>(false, { transform: booleanAttribute, alias: 'disabled' });\n /** Stores the `disabled` state internally */\n protected readonly _disabled = signal(this.disabledInput());\n /** The input's `disabled` state as a read-only signal (to enable/disable the contol programmatically, use the FormControl's related API) */\n public readonly disabled = computed(() => this._disabled());\n\n public readonly readonly = input<boolean, unknown>(false, { transform: booleanAttribute });\n\n /** This effect is triggered if the `disabled` attribute binding changes and delegates the change to the underlying FormControl */\n private _disabledInputEffect = effect(() => {\n const enableOrDisable = this.disabledInput() ? 'disable' : 'enable';\n const controlDir = this.ngControl();\n\n // The NgControl's `control` property might not be initialized so we delay the enable/disable call\n // (the FormControl's enable/disable method call will trigger a StatusChangeEvent and/or the ControlValueAccessor's setDisabledState() callback\n // so that we can update the `disabled` signal)\n queueMicrotask(() => controlDir?.control?.[enableOrDisable]());\n });\n\n public readonly required = input<boolean, unknown>(false, { transform: booleanAttribute });\n\n public readonly placeholder = input<string>('');\n\n public abstract onContainerClick(event: MouseEvent): void;\n\n protected _errorStateTracker?: ErrorStateTracker;\n protected _successStateTracker?: SuccessStateTracker;\n private _successStateSubscription?: Subscription;\n\n constructor() {\n super();\n\n // Get the NgControl reference as soon as we can\n queueMicrotask(() => {\n this.ngControl.set(this._injector.get(NgControl, null, { self: true }));\n this._initErrorStateTracker();\n });\n }\n\n public setDescribedByIds(ids: string[]): void {\n if (ids.length) {\n this._elementRef.nativeElement.setAttribute('aria-describedby', ids.join(' '));\n } else {\n this._elementRef.nativeElement.removeAttribute('aria-describedby');\n }\n }\n\n protected _initErrorStateTracker(): void {\n this._errorStateTracker = new ErrorStateTracker(\n this.errorStateMatcher(),\n this.ngControl(),\n this._parentFormGroup,\n this._parentForm,\n this.errorStateChanges,\n );\n\n this.errorStateChanges.pipe(\n takeUntilDestroyed(this._destroyRef),\n ).subscribe(() => this.hasErrorState.set(this._errorStateTracker!.hasErrorState));\n\n this._errorStateTracker.updateErrorState();\n }\n\n protected _setSuccessStateTracker(canHandleSuccessState: boolean): void {\n if (canHandleSuccessState) {\n this._successStateTracker = new SuccessStateTracker(\n this.successStateMatcher(),\n this.ngControl(),\n this._parentFormGroup,\n this._parentForm,\n this.successStateChanges,\n );\n\n this._successStateSubscription = this.successStateChanges.pipe(\n takeUntilDestroyed(this._destroyRef),\n ).subscribe(() => this.hasSuccessState.set(this._successStateTracker!.hasSuccessState));\n\n this._successStateTracker.updateSuccessState();\n } else {\n this._successStateTracker = undefined;\n this._successStateSubscription?.unsubscribe();\n this.hasSuccessState.set(false);\n }\n }\n}\n","import { IdsFormFieldVariant, IdsFormFieldVariantType } from './types/form-field-variant.type';\n\nimport { InjectionToken } from '@angular/core';\nimport { IdsSize, IdsSizeType } from '@i-cell/ids-angular/core';\n\nexport interface IdsFormFieldDefaultConfig {\n size?: IdsSizeType\n variant?: IdsFormFieldVariantType\n}\n\nexport const IDS_FORM_FIELD_DEFAULT_CONFIG = new InjectionToken<IdsFormFieldDefaultConfig>(\n 'IDS_FORM_FIELD_DEFAULT_CONFIG',\n {\n providedIn: 'root',\n factory: IDS_FORM_FIELD_DEFAULT_CONFIG_FACTORY,\n },\n);\n\nexport function IDS_FORM_FIELD_DEFAULT_CONFIG_FACTORY(): Required<IdsFormFieldDefaultConfig> {\n return {\n size: IdsSize.COMPACT,\n variant: IdsFormFieldVariant.SURFACE,\n };\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[idsFormFieldAction]',\n standalone: true,\n})\nexport class IdsFormFieldActionDirective {\n}\n","import { Directive, Input } from '@angular/core';\n\n@Directive({\n selector: '[idsPrefix], [idsLeadingIcon]',\n standalone: true,\n})\nexport class IdsPrefixDirective {\n @Input('idsLeadingIcon')\n public set idsLeadingIcon(value: '') {\n this.isLeadingIcon = true;\n }\n\n public isLeadingIcon = false;\n}\n","import { Directive, Input } from '@angular/core';\n\n@Directive({\n selector: '[idsSuffix], [idsTrailingIcon]',\n standalone: true,\n})\nexport class IdsSuffixDirective {\n @Input('idsTrailingIcon')\n public set idsTrailingIcon(value: '') {\n this.isTrailingIcon = true;\n }\n\n public isTrailingIcon = false;\n}\n","import { AbstractControl, ValidationErrors } from '@angular/forms';\n\nfunction isEmptyInputValue(value: unknown): boolean {\n return (\n value == null || ((typeof value === 'string' || Array.isArray(value)) && value.length === 0)\n );\n}\n\nexport class IdsValidators {\n public static required(control: AbstractControl): ValidationErrors | null {\n return requiredValidator(control);\n }\n\n public static requiredTrue(control: AbstractControl): ValidationErrors | null {\n return requiredTrueValidator(control);\n }\n\n public static requiredFalse(control: AbstractControl): ValidationErrors | null {\n return requiredFalseValidator(control);\n }\n}\n\nexport function requiredValidator(control: AbstractControl): ValidationErrors | null {\n return isEmptyInputValue(control.value) ? { required: true } : null;\n}\n\nexport function requiredTrueValidator(control: AbstractControl): ValidationErrors | null {\n return control.value === true ? null : { requiredTrue: true };\n}\n\nexport function requiredFalseValidator(control: AbstractControl): ValidationErrors | null {\n return control.value === false ? null : { requiredFalse: true };\n}\n","import { IdsErrorMessageMapping } from '../types/error-message-mapping';\n\nimport { Directive, ElementRef, inject, input } from '@angular/core';\n\n/**\n * Directive to map an error message to an error code for a form field.\n * Mappings must be defined between the directive element's tags ordered by priority (descending from top to bottom).\n * The error code is provided as an attribute, while the error message will be this directive's text content.\n * The latter can be a plain string literal or even an interpolated string value.\n *\n * @example\n * ```html\n * <ids-form-field>\n * <ids-label>Input field</ids-label>\n * <input\n * idsInput\n * ngModel\n * customValidator\n * required\n * [minlength]=\"3\"\n * [maxlength]=\"10\"\n * [pattern]=\"validPattern\"\n * >\n * <ids-error-message>\n * <ids-error-def code=\"required\">{{ 'ERROR.REQUIRED.CUSTOM' | translate }}</ids-error-def>\n * <ids-error-def code=\"minlength\">'minLength' error message</ids-error-def>\n * <ids-error-def code=\"maxlength\">'maxLength' error message</ids-error-def>\n * <ids-error-def code=\"pattern\">'pattern' error message with interpolation: {{ model.value }}</ids-error-def>\n * <ids-error-def code=\"custom\">Custom validator error message</ids-error-def>\n * </ids-error-message>\n * </ids-form-field>\n * ```\n */\n@Directive({\n selector: 'ids-error-def',\n})\nexport class IdsErrorDefinitionDirective {\n /**\n * The validation error's identifier code\n */\n public code = input.required<string>();\n\n private _elementRef = inject(ElementRef);\n\n /**\n * The validation error's message that will be presented to the user\n */\n get errorMessage(): string {\n return (this._elementRef.nativeElement as HTMLElement).innerText;\n }\n\n /**\n * Creates a IdsErrorMessageMapping instance based on this directive's state (code, errorMessage)\n * @returns A IdsErrorMessageMapping instance\n */\n public toErrorMessageMapping(): IdsErrorMessageMapping {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const self = this;\n return {\n code: this.code(),\n message: () => self.errorMessage,\n };\n }\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[idsMessageSuffix]',\n standalone: true,\n})\nexport class IdsMessageSuffixDirective {\n}\n","export const IdsMessageVariant = {\n SURFACE: 'surface',\n LIGHT: 'light',\n DARK: 'dark',\n} as const;\n\nexport type IdsMessageVariantType = (typeof IdsMessageVariant)[keyof typeof IdsMessageVariant];\n","import { IdsMessageVariant, IdsMessageVariantType } from './types/message-variant.type';\n\nimport { InjectionToken } from '@angular/core';\nimport { IdsSize, IdsSizeType } from '@i-cell/ids-angular/core';\n\nexport interface IdsMessageDefaultConfig {\n size?: IdsSizeType,\n variant?: IdsMessageVariantType,\n}\n\nexport const IDS_MESSAGE_DEFAULT_CONFIG = new InjectionToken<IdsMessageDefaultConfig>(\n 'IDS_MESSAGE_DEFAULT_CONFIG',\n {\n providedIn: 'root',\n factory: IDS_MESSAGE_DEFAULT_CONFIG_FACTORY,\n },\n);\n\nexport function IDS_MESSAGE_DEFAULT_CONFIG_FACTORY(): Required<IdsMessageDefaultConfig> {\n return {\n size: IdsSize.COMPACT,\n variant: IdsMessageVariant.SURFACE,\n };\n}\n\n","import { IdsFormFieldVariantType } from '../../form-field/types/form-field-variant.type';\n\nimport { InjectionToken, Signal } from '@angular/core';\nimport { IdsSizeType } from '@i-cell/ids-angular/core';\n\nexport interface IdsMessageParentFormField {\n disabled: Signal<boolean>;\n size: Signal<IdsSizeType>;\n variant: Signal<IdsFormFieldVariantType>;\n}\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport const IDS_MESSAGE_PARENT_FORM_FIELD = new InjectionToken<IdsMessageParentFormField>('IDS_MESSAGE_PARENT_FORM_FIELD');\n","import { IDS_MESSAGE_DEFAULT_CONFIG, IDS_MESSAGE_DEFAULT_CONFIG_FACTORY, IdsMessageDefaultConfig } from '../components/message/message-defaults';\nimport { IDS_MESSAGE_PARENT_FORM_FIELD } from '../components/message/types/message-parent-form-field';\nimport { IdsMessageVariantType } from '../components/message/types/message-variant.type';\n\nimport { Directive, computed, inject, input } from '@angular/core';\nimport { ComponentBaseWithDefaults, IdsSizeType } from '@i-cell/ids-angular/core';\n\nconst defaultConfig = IDS_MESSAGE_DEFAULT_CONFIG_FACTORY();\n\n@Directive({\n selector: '[idsMessage]',\n standalone: true,\n})\nexport class IdsMessageDirective extends ComponentBaseWithDefaults<IdsMessageDefaultConfig> {\n protected override get _hostName(): string {\n return 'message';\n }\n\n private readonly _parent = inject(IDS_MESSAGE_PARENT_FORM_FIELD, { skipSelf: true, optional: true });\n protected readonly _defaultConfig = this._getDefaultConfig(defaultConfig, IDS_MESSAGE_DEFAULT_CONFIG);\n\n public size = input<IdsSizeType>(this._defaultConfig.size);\n public variant = input<IdsMessageVariantType>(this._defaultConfig.variant);\n private _parentOrSelfSize = computed(() => this._parent?.size() ?? this.size());\n private _parentOrSelfVariant = computed(() => this._parent?.variant() ?? this.variant());\n private _parentDisabled = computed(() => this._parent?.disabled());\n\n protected _hostClasses = computed(() => this._getHostClasses([\n this._parentOrSelfSize(),\n this._parentOrSelfVariant(),\n this._parentDisabled() ? 'disabled' : null,\n ]));\n}\n","import { IdsErrorDefinitionDirective } from './error-definition.directive';\n\nimport { IdsMessageSuffixDirective } from '../../../directives/message-suffix.directive';\nimport { IdsMessageDirective } from '../../../directives/message.directive';\nimport { IdsFormFieldComponent } from '../../form-field/form-field.component';\nimport { IdsErrorMessageMapping } from '../types/error-message-mapping';\n\nimport { Component, ViewEncapsulation, computed, contentChildren, inject, signal } from '@angular/core';\nimport { takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';\nimport { AbstractControl } from '@angular/forms';\nimport { ComponentBase } from '@i-cell/ids-angular/core';\nimport { IdsIconComponent } from '@i-cell/ids-angular/icon';\nimport { asapScheduler, observeOn, of, startWith, switchMap, tap } from 'rxjs';\n\n@Component({\n selector: 'ids-error-message',\n imports: [IdsIconComponent],\n templateUrl: './error-message.component.html',\n hostDirectives: [IdsMessageDirective],\n encapsulation: ViewEncapsulation.None,\n})\nexport class IdsErrorMessageComponent extends ComponentBase {\n protected override get _hostName(): string {\n return 'error-message';\n }\n\n private _parent = inject(IdsFormFieldComponent, { skipSelf: true });\n\n private _control = signal<AbstractControl | null>(null);\n private _errorDefDirs = contentChildren(IdsErrorDefinitionDirective);\n private _errorDefs = computed(() => this._errorDefDirs().map((errorDefDir) => errorDefDir.toErrorMessageMapping()));\n\n protected _validationError = signal<IdsErrorMessageMapping | null>(null);\n\n protected _hostClasses = computed(() => this._getHostClasses([]));\n\n public suffixes = contentChildren(IdsMessageSuffixDirective);\n\n constructor() {\n super();\n toObservable(this._parent.controlDir).pipe(\n observeOn(asapScheduler),\n tap((controlDir) => this._control.set(controlDir?.control ?? null)),\n switchMap(() => this._control()?.statusChanges.pipe(startWith(this._control()?.status)) ?? of(null)),\n takeUntilDestroyed(this._destroyRef),\n ).subscribe((status) => {\n if (status === 'INVALID') {\n const nextError = this._selectMostImportantValidationError();\n this._validationError.set(nextError);\n } else {\n this._validationError.set(null);\n }\n });\n }\n\n private _selectMostImportantValidationError(): IdsErrorMessageMapping | null {\n const errorDefs = this._errorDefs();\n const control = this._control();\n\n if (!errorDefs?.length || !control?.errors || Object.keys(control.errors).length === 0) {\n return null;\n }\n\n const errorCodes = new Set(Object.keys(control.errors));\n\n return errorDefs.find((errorDef) => errorCodes.has(errorDef.code)) ?? null;\n }\n\n protected _getValidationErrorMessage(messageOrFn: IdsErrorMessageMapping['message']): string {\n return messageOrFn instanceof Function ? messageOrFn() : messageOrFn;\n }\n}\n","<div class=\"ids-message__prefix\">\n <ng-content select=\"[idsMessagePrefix]\">\n <ids-icon aria-hidden=\"true\" fontIcon=\"exclamation-circle\" variant=\"error\" />\n </ng-content>\n</div>\n<div class=\"ids-message__text\">\n @let validationError = _validationError();\n @if (validationError) {\n @let messageString = _getValidationErrorMessage(validationError.message);\n {{ messageString }}\n }\n</div>\n@if (suffixes().length) {\n <div class=\"ids-message__suffix\">\n <ng-content select=\"[idsMessageSuffix]\" />\n </div>\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[idsMessagePrefix]',\n standalone: true,\n})\nexport class IdsMessagePrefixDirective {\n}\n","import { IdsMessagePrefixDirective } from '../../../directives/message-prefix.directive';\nimport { IdsMessageSuffixDirective } from '../../../directives/message-suffix.directive';\nimport { IdsMessageDirective } from '../../../directives/message.directive';\n\nimport { Component, contentChildren, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'ids-hint-message',\n imports: [],\n templateUrl: './hint-message.component.html',\n host: {\n class: 'ids-hint-message',\n },\n hostDirectives: [\n {\n directive: IdsMessageDirective,\n inputs: [\n 'size: size',\n 'variant: variant',\n ],\n },\n ],\n encapsulation: ViewEncapsulation.None,\n})\nexport class IdsHintMessageComponent {\n public prefixes = contentChildren(IdsMessagePrefixDirective);\n public suffixes = contentChildren(IdsMessageSuffixDirective);\n}\n","@if (prefixes().length) {\n <div class=\"ids-message__prefix\">\n <ng-content select=\"[idsMessagePrefix]\" />\n </div>\n}\n<div class=\"ids-message__text\">\n <ng-content />\n</div>\n@if (suffixes().length) {\n <div class=\"ids-message__suffix\">\n <ng-content select=\"[idsMessageSuffix]\" />\n </div>\n}\n","import { IdsMessageSuffixDirective } from '../../../directives/message-suffix.directive';\nimport { IdsMessageDirective } from '../../../directives/message.directive';\n\nimport { Component, ViewEncapsulation, computed, contentChildren } from '@angular/core';\nimport { ComponentBase } from '@i-cell/ids-angular/core';\nimport { IdsIconComponent } from '@i-cell/ids-angular/icon';\n\n@Component({\n selector: 'ids-success-message',\n imports: [IdsIconComponent],\n templateUrl: './success-message.component.html',\n hostDirectives: [IdsMessageDirective],\n encapsulation: ViewEncapsulation.None,\n})\nexport class IdsSuccessMessageComponent extends ComponentBase {\n protected override get _hostName(): string {\n return 'success-message';\n }\n\n protected _hostClasses = computed(() => this._getHostClasses([]));\n\n public suffixes = contentChildren(IdsMessageSuffixDirective);\n}\n","<div class=\"ids-message__prefix\">\n <ng-content select=\"[idsMessagePrefix]\">\n <ids-icon aria-hidden=\"true\" fontIcon=\"check\" variant=\"success\" />\n </ng-content>\n</div>\n<div class=\"ids-message__text\">\n <ng-content />\n</div>\n@if (suffixes().length) {\n <div class=\"ids-message__suffix\">\n <ng-content select=\"[idsMessageSuffix]\" />\n </div>\n}\n","import { IDS_FORM_FIELD_DEFAULT_CONFIG, IDS_FORM_FIELD_DEFAULT_CONFIG_FACTORY, IdsFormFieldDefaultConfig } from './form-field-defaults';\nimport { IDS_FORM_FIELD_CONTROL } from './tokens/form-field-control';\nimport { IdsFormFieldVariantType } from './types/form-field-variant.type';\n\nimport { IdsFormFieldActionDirective } from '../../directives/form-field-action.directive';\nimport { IdsPrefixDirective } from '../../directives/prefix.directive';\nimport { IdsSuffixDirective } from '../../directives/suffix.directive';\nimport { IdsValidators } from '../../validators';\nimport { IdsFieldsetComponent } from '../fieldset/fieldset.component';\nimport { IdsErrorMessageComponent } from '../message/error-message/error-message.component';\nimport { IdsHintMessageComponent } from '../message/hint-message/hint-message.component';\nimport { IdsSuccessMessageComponent } from '../message/success-message/success-message.component';\n\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, computed, contentChild, contentChildren, ElementRef, inject, input, viewChild, ViewEncapsulation } from '@angular/core';\nimport { Validators } from '@angular/forms';\nimport { ComponentBaseWithDefaults, IdsSizeType } from '@i-cell/ids-angular/core';\n\nconst defaultConfig = IDS_FORM_FIELD_DEFAULT_CONFIG_FACTORY();\n\n@Component({\n selector: 'ids-form-field',\n imports: [],\n templateUrl: './form-field.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class IdsFormFieldComponent extends ComponentBaseWithDefaults<IdsFormFieldDefaultConfig> {\n protected override get _hostName(): string {\n return 'form-field';\n }\n\n private readonly _changeDetectorRef = inject(ChangeDetectorRef);\n private readonly _parentFieldset = inject(IdsFieldsetComponent, { optional: true });\n protected readonly _defaultConfig = this._getDefaultConfig(defaultConfig, IDS_FORM_FIELD_DEFAULT_CONFIG);\n\n private _fieldWrapper = viewChild.required<ElementRef<HTMLElement>>('fieldWrapper');\n private _child = contentChild.required(IDS_FORM_FIELD_CONTROL);\n private _hintMessages = contentChildren(IdsHintMessageComponent, { descendants: true });\n private _successMessages = contentChildren(IdsSuccessMessageComponent, { descendants: true });\n private _errorMessages = contentChildren(IdsErrorMessageComponent, { descendants: true });\n private _actions = contentChildren(IdsFormFieldActionDirective);\n private _prefixes = contentChildren(IdsPrefixDirective);\n private _suffixes = contentChildren(IdsSuffixDirective);\n\n protected _hasActions = computed(() => Boolean(this._actions().length));\n protected _hasLeadingIcon = computed(() => Boolean(this._prefixes().filter((prefix) => prefix.isLeadingIcon).length));\n protected _hasPrefix = computed(() => Boolean(this._prefixes().filter((prefix) => !prefix.isLeadingIcon).length));\n protected _hasSuffix = computed(() => Boolean(this._suffixes().filter((suffix) => !suffix.isTrailingIcon).length));\n protected _hasTrailingIcon = computed(() => Boolean(this._suffixes().filter((suffix) => suffix.isTrailingIcon).length));\n protected _inputId = computed(() => this._child()?.id());\n public size = input<IdsSizeType>(this._defaultConfig.size);\n public variant = input<IdsFormFieldVariantType>(this._defaultConfig.variant);\n public parentOrSelfSize = computed(() => this._parentFieldset?.size() ?? this.size());\n public parentOrSelfVariant = computed(() => this._parentFieldset?.variant() ?? this.variant());\n public controlDir = computed(() => this._child().ngControl());\n public disabled = computed(() => Boolean(this._child().disabled()));\n public readonly = computed(() => Boolean(this._child().readonly()));\n private _hasErrorState = computed(() => Boolean(this._child().hasErrorState()));\n private _hasSuccessState = computed(() => Boolean(this._child().hasSuccessState()));\n protected _hostClasses = computed(() => this._getHostClasses([\n this.parentOrSelfSize(),\n this.parentOrSelfVariant(),\n this.disabled() ? 'disabled' : null,\n this._hasErrorState() ? 'invalid' : null,\n this._hasSuccessState() ? 'valid' : null,\n ]),\n );\n\n protected _displayedMessages = computed<'error' | 'success' | 'hint' | undefined>(() => {\n if (this._errorMessages().length > 0 && this._hasErrorState()) {\n return 'error';\n }\n if (this._successMessages().length > 0 && this._hasSuccessState()) {\n return 'success';\n }\n if (this._hintMessages().length > 0) {\n return 'hint';\n }\n return undefined;\n });\n\n public hasRequiredValidator = computed(() => {\n const control = this.controlDir()?.control;\n return this._child().required()\n || control?.hasValidator(Validators.required)\n || control?.hasValidator(Validators.requiredTrue)\n || control?.hasValidator(IdsValidators.required)\n || control?.hasValidator(IdsValidators.requiredTrue)\n || control?.hasValidator(IdsValidators.requiredFalse);\n });\n\n public getConnectedOverlayOrigin(): ElementRef {\n return this._fieldWrapper();\n }\n\n public containerClick(event: MouseEvent): void {\n const containerClick = this._child().onContainerClick;\n if (containerClick) {\n containerClick(event);\n }\n }\n}\n","<label class=\"ids-form-field__label\" [for]=\"_inputId()\">\n @if (hasRequiredValidator()) {\n <span class=\"ids-form-field__required-marker\"></span>\n }\n <ng-content select=\"ids-label\" />\n</label>\n\n<div #fieldWrapper class=\"ids-form-field__field-wrapper\">\n <div class=\"ids-form-field__field-wrapper__container\" (click)=\"containerClick($event)\">\n @if (_hasLeadingIcon()) {\n <div class=\"ids-form-field__leading-icon\">\n <ng-content select=\"ids-icon[idsLeadingIcon]\" />\n </div>\n }\n @if (_hasPrefix()) {\n <div class=\"ids-form-field__prefix\">\n <ng-content select=\"[idsPrefix]\" />\n </div>\n }\n <div class=\"ids-form-field__infix\">\n <ng-content />\n </div>\n @if (_hasSuffix()) {\n <div class=\"ids-form-field__suffix\">\n <ng-content select=\"[idsSuffix]\" />\n </div>\n }\n @if (_hasTrailingIcon()) {\n <div class=\"ids-form-field__trailing-icon\">\n <ng-content select=\"ids-icon[idsTrailingIcon]\" />\n </div>\n }\n </div>\n @if (_hasActions()) {\n <div class=\"ids-form-field__field-wrapper__action\">\n <ng-content select=\"[idsFormFieldAction]\" />\n </div>\n }\n</div>\n\n<div class=\"ids-form-field__subscript-wrapper\">\n @let messages = _displayedMessages();\n @if (messages) {\n <div class=\"ids-form-field__message-container\">\n @switch (messages) {\n @case (\"error\") {\n <ng-content select=\"ids-error-message\" />\n }\n @case (\"success\") {\n <ng-content select=\"ids-success-message\" />\n }\n @case (\"hint\") {\n <ng-content select=\"ids-hint-message\" />\n }\n }\n </div>\n }\n</div>\n","import { AbstractErrorStateMatcher, ErrorStateMatcher } from '../../common/error/error-state';\nimport { AbstractSuccessStateMatcher, SuccessStateMatcher } from '../../common/success/success-state';\n\nimport { InjectionToken } from '@angular/core';\n\nexport interface IdsInputDefaultConfig {\n errorStateMatcher?: typeof AbstractErrorStateMatcher\n successStateMatcher?: typeof AbstractSuccessStateMatcher\n}\n\nexport const IDS_INPUT_DEFAULT_CONFIG = new InjectionToken<IdsInputDefaultConfig>(\n 'IDS_INPUT_DEFAULT_CONFIG',\n {\n providedIn: 'root',\n factory: IDS_INPUT_DEFAULT_CONFIG_FACTORY,\n },\n);\n\nexport function IDS_INPUT_DEFAULT_CONFIG_FACTORY(): Required<IdsInputDefaultConfig> {\n return {\n errorStateMatcher: ErrorStateMatcher,\n successStateMatcher: SuccessStateMatcher,\n };\n}\n","import { IDS_INPUT_DEFAULT_CONFIG, IDS_INPUT_DEFAULT_CONFIG_FACTORY, IdsInputDefaultConfig } from './input-defaults';\nimport { IdsInputType } from './types/input.type';\n\nimport { AbstractErrorStateMatcher } from '../../common/error/error-state';\nimport { AbstractSuccessStateMatcher } from '../../common/success/success-state';\nimport { formFieldControlClass, IdsFormFieldControl } from '../form-field/form-field-control';\nimport { IDS_FORM_FIELD_CONTROL } from '../form-field/tokens/form-field-control';\n\nimport { AfterViewInit, computed, Directive, effect, ElementRef, inject, input, isDevMode } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ControlEvent, StatusChangeEvent } from '@angular/forms';\n\nconst defaultConfig = IDS_INPUT_DEFAULT_CONFIG_FACTORY();\n\nconst IDS_INPUT_INVALID_TYPES: IdsInputType[] = [\n 'button',\n 'checkbox',\n 'file',\n 'hidden',\n 'image',\n 'radio',\n 'range',\n 'reset',\n 'submit',\n];\n\n@Directive({\n selector: `input[idsInput][ngModel]:not([formControl]):not([formControlName]),\n input[idsInput][formControl]:not([ngModel]):not([formControlName]),\n input[idsInput][formControlName]:not([ngModel]):not([formControl]),\n textarea[idsInput][ngModel]:not([formControl]):not([formControlName]),\n textarea[idsInput][formControl]:not([ngModel]):not([formControlName]),\n textarea[idsInput][formControlName]:not([ngModel]):not([formControl])`,\n exportAs: 'idsInput',\n standalone: true,\n providers: [\n {\n provide: IDS_FORM_FIELD_CONTROL,\n useExisting: IdsInputDirective,\n },\n ],\n host: {\n '[attr.placeholder]': 'placeholder()',\n '[attr.disabled]': 'disabled() ? \"\" : null',\n '[attr.readonly]': 'readonly() ? \"\" : null',\n '(focus)': '_focusChanged(true)',\n '(blur)': '_focusChanged(false)',\n },\n})\nexport class IdsInputDirective extends IdsFormFieldControl<IdsInputDefaultConfig> implements AfterViewInit {\n protected override get _hostName(): string {\n return 'input';\n }\n\n protected readonly _elementRef = inject<ElementRef<HTMLInputElement> | ElementRef<HTMLTextAreaElement>>(ElementRef);\n\n protected readonly _defaultConfig = this._getDefaultConfig(defaultConfig, IDS_INPUT_DEFAULT_CONFIG);\n\n private _focused = false;\n\n public name = input<string>();\n public type = input<IdsInputType>('text');\n\n public readonly errorStateMatcher = input<AbstractErrorStateMatcher>(inject(this._defaultConfig.errorStateMatcher));\n public readonly successStateMatcher = input<AbstractSuccessStateMatcher>(inject(this._defaultConfig.successStateMatcher));\n\n protected _hostClasses = computed(() => this._getHostClasses([], [formFieldControlClass]));\n\n private _validateTypeEffect = effect(() => {\n this._validateType(this.type());\n });\n\n public ngAfterViewInit(): void {\n queueMicrotask(() => {\n const control = this.ngControl()?.control;\n if (control) {\n this._disabled.set(control.status === 'DISABLED');\n control.events.pipe(takeUntilDestroyed(this._destroyRef)).subscribe((event) => this.updateControlState(event));\n }\n });\n }\n\n private _validateType(type: IdsInputType): void {\n if (isDevMode() && IDS_INPUT_INVALID_TYPES.indexOf(type) > -1) {\n throw this._createHostError(`Input type ${type} is not supportedby idsInput`);\n }\n }\n\n public focus(options?: FocusOptions): void {\n this._elementRef.nativeElement.focus(options);\n }\n\n private _focusChanged(isFocused: boolean): void {\n if (isFocused !== this._focused) {\n this._focused = isFocused;\n }\n }\n\n public updateControlState(event: ControlEvent): void {\n this._errorStateTracker?.updateErrorState();\n this._successStateTracker?.updateSuccessState();\n\n if (event instanceof StatusChangeEvent) {\n this._disabled.set(event.status === 'DISABLED');\n }\n }\n\n /**\n * Should be an arrow function in order to handle `this` outside of this class\n */\n public onContainerClick = (): void => {\n if (!this._focused && !this.readonly() && !this.disabled) {\n this.focus();\n }\n };\n}\n","export const Message = {\n HINT: 'hint',\n ERROR: 'error',\n SUCCESS: 'success',\n} as const;\n\nexport type MessageType = (typeof Message)[keyof typeof Message];\n","import { IdsOptionGroupComponent } from '../option-group.component';\n\nimport { InjectionToken } from '@angular/core';\n\nexport const IDS_OPTION_GROUP = new InjectionToken<IdsOptionGroupComponent>('IdsOptionGroup');\n","import { IdsFormFieldVariantType } from '../../form-field/types/form-field-variant.type';\n\nimport { InjectionToken, Signal } from '@angular/core';\nimport { IdsSizeType } from '@i-cell/ids-angular/core';\n\nexport interface IdsOptionParentComponent {\n multiSelect: Signal<boolean>\n inertGroups?: boolean\n parentSize: Signal<IdsSizeType>\n parentVariant: Signal<IdsFormFieldVariantType>\n isOptionPreSelectedByValue(optionValue: unknown): boolean\n}\n\nexport const IDS_OPTION_PARENT_COMPONENT = new InjectionToken<IdsOptionParentComponent>(\n 'IDS_OPTION_PARENT_COMPONENT',\n);\n","import { IdsOptionComponent } from '../option.component';\n\nexport class IdsOptionSelectionChange<T = unknown> {\n constructor(\n public source: IdsOptionComponent<T>,\n public selected: boolean,\n public isUserInput = false,\n ) {}\n}\n","import { IDS_OPTION_GROUP } from './tokens/option-group';\nimport { IDS_OPTION_PARENT_COMPONENT } from './tokens/option-parent';\n\nimport { ChangeDetectionStrategy, Component, computed, inject, input, ViewEncapsulation } from '@angular/core';\nimport { coerceBooleanAttribute, ComponentBase } from '@i-cell/ids-angular/core';\n\n@Component({\n selector: 'ids-option-group',\n imports: [],\n templateUrl: './option-group.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{ provide: IDS_OPTION_GROUP, useExisting: IdsOptionGroupComponent }],\n host: {\n '[attr.role]': '_inert ? null : \"group\"',\n '[attr.aria-disabled]': '_inert ? null : disabled().toString()',\n '[attr.aria-labelledby]': '_inert ? null : _labelId()',\n },\n})\nexport class IdsOptionGroupComponent extends ComponentBase {\n protected override get _hostName(): string {\n return 'option-group';\n }\n\n private readonly _parent = inject(IDS_OPTION_PARENT_COMPONENT);\n protected readonly _inert = this._parent?.inertGroups ?? false;\n\n public label = input<string>();\n public disabled = input<boolean, unknown>(false, { transform: coerceBooleanAttribute });\n\n protected readonly _labelId = computed(() => `${this.id()}-label`);\n protected readonly _hostClasses = computed(() => this._getHostClasses([\n this.disabled() ? 'disabled' : null,\n this._parent.parentSize(),\n this._parent.parentVariant(),\n ]));\n}\n","<div role=\"presentation\" class=\"ids-option-group__label\" [id]=\"_labelId()\">\n <div class=\"ids-option-group__text\">{{ label() }}</div>\n</div>\n<ng-content select=\"ids-option, ng-container\" />\n","import { InjectionToken, Signal } from '@angular/core';\nimport { IdsSizeType } from '@i-cell/ids-angular/core';\n\nexport interface IdsPseudoCheckboxParent<T extends string> {\n embeddedPseudoCheckboxSize: Signal<IdsSizeType>\n embeddedPseudoCheckboxVariant: Signal<T>\n}\n\nexport const IDS_PSEUDO_CHECKBOX_PARENT = new InjectionToken<IdsPseudoCheckboxParent<string>>(\n 'IDS_PSEUDO_CHECKBOX_PARENT',\n);\n","export const IdsPseudoCheckboxState = {\n UNCHECKED: 'unchecked',\n CHECKED: 'checked',\n INDETERMINATE: 'indeterminate',\n} as const;\n\nexport type IdsPseudoCheckboxStateType = (typeof IdsPseudoCheckboxState)[keyof typeof IdsPseudoCheckboxState];\n","import { IDS_PSEUDO_CHECKBOX_PARENT } from './tokens/pseudo-checkbox-parent';\nimport { IdsPseudoCheckboxState, IdsPseudoCheckboxStateType } from './types/pseudo-checkbox-state.type';\n\nimport { ChangeDetectionStrategy, Component, computed, inject, input, ViewEncapsulation } from '@angular/core';\nimport { coerceBooleanAttribute, ComponentBase } from '@i-cell/ids-angular/core';\nimport { IdsIconComponent } from '@i-cell/ids-angular/icon';\n\n@Component({\n selector: 'ids-pseudo-checkbox',\n imports: [IdsIconComponent],\n templateUrl: './pseudo-checkbox.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class PseudoCheckboxComponent extends ComponentBase {\n protected override get _hostName(): string {\n return 'pseudo-checkbox';\n }\n\n private readonly _parent = inject(IDS_PSEUDO_CHECKBOX_PARENT, { optional: true });\n public checkboxState = input<IdsPseudoCheckboxStateType>(IdsPseudoCheckboxState.UNCHECKED);\n public disabled = input<boolean, unknown>(false, { transform: coerceBooleanAttribute });\n\n protected _isChecked = computed(() => this.checkboxState() === IdsPseudoCheckboxState.CHECKED);\n protected _isIndeterminate = computed(() => this.checkboxState() === IdsPseudoCheckboxState.INDETERMINATE);\n\n protected _hostClasses = computed(() => this._getHostClasses([\n this._parent?.embeddedPseudoCheckboxSize(),\n this._parent?.embeddedPseudoCheckboxVariant(),\n this.disabled() ? 'disabled' : null,\n ]),\n );\n}\n","<div class=\"ids-pseudo-checkbox__input-wrapper\">\n <input\n type=\"checkbox\"\n [disabled]=\"disabled()\"\n [attr.aria-checked]=\"_isIndeterminate() ? 'mixed' : null\"\n [checked]=\"_isChecked()\"\n [indeterminate]=\"_isIndeterminate()\"\n (change)=\"$event.stopPropagation()\"\n />\n <div class=\"ids-pseudo-checkbox__icon\" aria-hidden=\"true\">\n @if (_isIndeterminate()) {\n <ids-icon fontIcon=\"minus\" aria-hidden=\"true\" />\n }\n @if (_isChecked()) {\n <ids-icon fontIcon=\"check\" aria-hidden=\"true\" />\n }\n </div>\n</div>\n","import { IdsOptionGroupComponent } from './option-group.component';\nimport { IDS_OPTION_GROUP } from './tokens/option-group';\nimport { IDS_OPTION_PARENT_COMPONENT } from './tokens/option-parent';\nimport { IdsOptionSelectionChange } from './types/option-events.class';\n\nimport { IdsFormFieldVariant, IdsFormFieldVariantType } from '../form-field/types/form-field-variant.type';\nimport { PseudoCheckboxComponent } from '../pseudo-checkbox/pseudo-checkbox.component';\nimport { IDS_PSEUDO_CHECKBOX_PARENT, IdsPseudoCheckboxParent } from '../pseudo-checkbox/tokens/pseudo-checkbox-parent';\nimport { IdsPseudoCheckboxState } from '../pseudo-checkbox/types/pseudo-checkbox-state.type';\n\nimport { FocusOrigin } from '@angular/cdk/a11y';\nimport { hasModifierKey } from '@angular/cdk/keycodes';\nimport { ChangeDetectionStrategy, Component, computed, effect, ElementRef, inject, input, OnInit, output, signal, viewChild, ViewEncapsulation } from '@angular/core';\nimport { coerceBooleanAttribute, ComponentBase } from '@i-cell/ids-angular/core';\nimport { IdsIconComponent } from '@i-cell/ids-angular/icon';\n\n@Component({\n selector: 'ids-option',\n imports: [\n IdsIconComponent,\n PseudoCheckboxComponent,\n ],\n templateUrl: './option.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: IDS_PSEUDO_CHECKBOX_PARENT,\n useExisting: IdsOptionComponent,\n },\n ],\n host: {\n 'role': 'option',\n '[attr.aria-selected]': 'selected()',\n '[attr.aria-disabled]': 'disabled.toString()',\n '(click)': 'selectViaInteraction()',\n '(keydown)': '_handleKeydown($event)',\n },\n})\nexport class IdsOptionComponent<T = unknown>\n extends ComponentBase\n implements OnInit, IdsPseudoCheckboxParent<IdsFormFieldVariantType> {\n protected override get _hostName(): string {\n return 'option';\n }\n\n private readonly _parent = inject(IDS_OPTION_PARENT_COMPONENT);\n private readonly _element = inject<ElementRef<HTMLElement>>(ElementRef);\n public readonly group = inject(IDS_OPTION_GROUP, { optional: true });\n\n private _textElement = viewChild.required<ElementRef<HTMLElement>>('text');\n\n public selected = signal<boolean>(false);\n private _active = signal<boolean>(false);\n public size = computed(() => this._parent.parentSize());\n public variant = computed(() => this._parent.parentVariant());\n\n public value = input<T>();\n public explicitViewValue = input<string | null>(null, { alias: 'viewValue' });\n public disabledInput = input<boolean, unknown>(false, { alias: 'disabled', transform: coerceBooleanAttribute });\n\n public disabled = false; // Do not delete this class member, until ListKeyManagerOption requires: `disabled: boolean`\n\n protected _groupOrOptionIsDisabled = computed(() => this.group?.disabled() || this.disabledInput());\n\n protected readonly _multiSelect = Boolean(this._parent?.multiSelect());\n\n public onSelectionChange = output<IdsOptionSelectionChange<T>>();\n\n public viewValue = computed(() => this._textElement().nativeElement.textContent || this.explicitViewValue() || '');\n protected readonly _hostClasses = computed(() => this._getHostClasses([\n this.selected() ? 'selected' : null,\n this._active() ? 'active' : null,\n this._groupOrOptionIsDisabled() ? 'disabled' : null,\n this._multiSelect ? 'multiselect' : null,\n this.size(),\n this.variant(),\n ]));\n\n protected _pseudoCheckboxState = computed(() => (this.selected() ? IdsPseudoCheckboxState.CHECKED : IdsPseudoCheckboxState.UNCHECKED));\n public embeddedPseudoCheckboxSize = computed(() => this.size());\n public embeddedPseudoCheckboxVariant = signal(IdsFormFieldVariant.SURFACE);\n\n constructor() {\n super();\n effect(() => { // Do not delete this effect, until ListKeyManagerOption requires: `disabled: boolean`\n this.disabled = this.disabledInput();\n });\n }\n\n public ngOnInit(): void {\n const parent = this._parent;\n\n if (parent.isOptionPreSelectedByValue(this.value())) {\n this.selected.set(true);\n }\n }\n\n private _handleKeydown(event: KeyboardEvent): void {\n if ((event.key === 'ENTER' || event.key === ' ') && !hasModifierKey(event)) {\n this.selectViaInteraction();\n event.preventDefault();\n }\n }\n\n public selectViaInteraction(): void {\n if (!this._groupOrOptionIsDisabled()) {\n this._emitSelectionChangeEvent(!this.selected(), true);\n }\n }\n\n public getHostElement(): HTMLElement {\n return this._element.nativeElement;\n }\n\n public select(emitEvent = true): void {\n if (!this.selected()) {\n if (emitEvent) {\n this._emitSelectionChangeEvent(true);\n }\n }\n }\n\n public deselect(emitEvent = true): void {\n if (this.selected()) {\n if (emitEvent) {\n this._emitSelectionChangeEvent(false);\n }\n }\n }\n\n public focus(_origin?: FocusOrigin, options?: FocusOptions): void {\n const element = this._element.nativeElement;\n\n if (typeof element.focus === 'function') {\n element.focus(options);\n }\n }\n\n public setActiveStyles(): void {\n if (!this._active()) {\n this._active.set(true);\n }\n }\n\n public setInactiveStyles(): void {\n if (this._active()) {\n this._active.set(false);\n }\n }\n\n public getLabel(): string {\n return this.viewValue();\n }\n\n private _emitSelectionChangeEvent(selected: boolean, isUserInput = false): void {\n if (this._multiSelect || !this.selected()) {\n this.onSelectionChange.emit(new IdsOptionSelectionChange<T>(this, selected, isUserInput));\n }\n }\n}\n\nexport function _countGroupLabelsBeforeOption(\n optionIndex: number,\n options: Readonly<IdsOptionComponent[]>,\n optionGroups: Readonly<IdsOptionGroupComponent[]>,\n): number {\n if (optionGroups.length) {\n let groupCounter = 0;\n\n for (let i = 0; i < optionIndex + 1; i++) {\n if (options[i].group && options[i].group === optionGroups[groupCounter]) {\n groupCounter++;\n }\n }\n\n return groupCounter;\n }\n\n return 0;\n}\n\nexport function _getOptionScrollPosition(\n optionOffset: number,\n optionHeight: number,\n currentScrollPosition: number,\n panelHeight: number,\n): number {\n if (optionOffset < currentScrollPosition) {\n return optionOffset;\n }\n\n if (optionOffset + optionHeight > currentScrollPosition + panelHeight) {\n return Math.max(0, optionOffset - panelHeight + optionHeight);\n }\n\n return currentScrollPosition;\n}\n","@if (_multiSelect) {\n <ids-pseudo-checkbox aria-hidden=\"true\" [disabled]=\"_groupOrOptionIsDisabled()\" [checkboxState]=\"_pseudoCheckboxState()\" />\n}\n\n<div #text class=\"ids-option__text\"><ng-content /></div>\n\n@if (!_multiSelect && selected()) {\n <ids-icon fontIcon=\"check\" />\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: 'ids-label',\n standalone: true,\n})\nexport class IdsLabelDirective {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["defaultConfig","i1.IdsMessageDirective"],"mappings":"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"}
@@ -0,0 +1,120 @@
1
+ import * as i0 from '@angular/core';
2
+ import { InjectionToken, inject, ElementRef, input, contentChildren, computed, effect, ChangeDetectionStrategy, ViewEncapsulation, Component } from '@angular/core';
3
+ import { IdsSize, ComponentBaseWithDefaults, coerceBooleanAttribute } from '@i-cell/ids-angular/core';
4
+ import { RouterLink } from '@angular/router';
5
+ import { IdsIconComponent } from '@i-cell/ids-angular/icon';
6
+
7
+ class IdsIconButtonParent {
8
+ }
9
+ ;
10
+ const IDS_ICON_BUTTON_PARENT = new InjectionToken('IDS_ICON_BUTTON_PARENT');
11
+
12
+ const IdsIconButtonAppearance = {
13
+ FILLED: 'filled',
14
+ OUTLINED: 'outlined',
15
+ STANDARD: 'standard',
16
+ };
17
+
18
+ const IdsIconButtonVariant = {
19
+ PRIMARY: 'primary',
20
+ SECONDARY: 'secondary',
21
+ SURFACE: 'surface',
22
+ BRAND: 'brand',
23
+ LIGHT: 'light',
24
+ DARK: 'dark',
25
+ INFO: 'info',
26
+ SUCCESS: 'success',
27
+ WARNING: 'warning',
28
+ ERROR: 'error',
29
+ };
30
+
31
+ const IDS_ICON_BUTTON_DEFAULT_CONFIG = new InjectionToken('IDS_ICON_BUTTON_DEFAULT_CONFIG', {
32
+ providedIn: 'root',
33
+ factory: IDS_ICON_BUTTON_DEFAULT_CONFIG_FACTORY,
34
+ });
35
+ function IDS_ICON_BUTTON_DEFAULT_CONFIG_FACTORY() {
36
+ return {
37
+ appearance: IdsIconButtonAppearance.FILLED,
38
+ size: IdsSize.COMPACT,
39
+ variant: IdsIconButtonVariant.PRIMARY,
40
+ };
41
+ }
42
+
43
+ const defaultConfig = IDS_ICON_BUTTON_DEFAULT_CONFIG_FACTORY();
44
+ class IdsIconButtonComponent extends ComponentBaseWithDefaults {
45
+ get _hostName() {
46
+ return 'icon-button';
47
+ }
48
+ get _buttonType() {
49
+ return this._hostElement.tagName === 'BUTTON' ? 'button' : null;
50
+ }
51
+ constructor() {
52
+ super();
53
+ this._parent = inject(IDS_ICON_BUTTON_PARENT, { optional: true });
54
+ this._hostElement = inject((ElementRef)).nativeElement;
55
+ this._routerLink = inject(RouterLink, { optional: true, self: true });
56
+ this._defaultConfig = this._getDefaultConfig(defaultConfig, IDS_ICON_BUTTON_DEFAULT_CONFIG);
57
+ this.appearance = input(this._defaultConfig.appearance, ...(ngDevMode ? [{ debugName: "appearance" }] : []));
58
+ this.size = input(this._defaultConfig.size, ...(ngDevMode ? [{ debugName: "size" }] : []));
59
+ this.variant = input(this._defaultConfig.variant, ...(ngDevMode ? [{ debugName: "variant" }] : []));
60
+ this.disabled = input(false, ...(ngDevMode ? [{ debugName: "disabled", transform: coerceBooleanAttribute }] : [{ transform: coerceBooleanAttribute }]));
61
+ this._icons = contentChildren(IdsIconComponent, ...(ngDevMode ? [{ debugName: "_icons" }] : []));
62
+ this._parentOrSelfAppearance = computed(() => this._parent?.embeddedIconButtonAppearance() ?? this.appearance(), ...(ngDevMode ? [{ debugName: "_parentOrSelfAppearance" }] : []));
63
+ this._parentOrSelfSize = computed(() => {
64
+ const embeddedIconButtonSize = this._parent?.embeddedIconButtonSize;
65
+ return embeddedIconButtonSize ? embeddedIconButtonSize() : this.size();
66
+ }, ...(ngDevMode ? [{ debugName: "_parentOrSelfSize" }] : []));
67
+ this._parentOrSelfVariant = computed(() => this._parent?.embeddedIconButtonVariant() ?? this.variant(), ...(ngDevMode ? [{ debugName: "_parentOrSelfVariant" }] : []));
68
+ this._parentOrSelfDisabled = computed(() => {
69
+ const parentDisabled = this._parent?.disabled;
70
+ return parentDisabled ? parentDisabled() : this.disabled();
71
+ }, ...(ngDevMode ? [{ debugName: "_parentOrSelfDisabled" }] : []));
72
+ this._hostClasses = computed(() => this._getHostClasses([
73
+ this._parentOrSelfAppearance(),
74
+ this._parentOrSelfSize(),
75
+ this._parentOrSelfVariant(),
76
+ this.disabled() ? 'disabled' : null,
77
+ ]), ...(ngDevMode ? [{ debugName: "_hostClasses" }] : []));
78
+ effect(() => {
79
+ if (this._buttonType) {
80
+ return;
81
+ }
82
+ const link = this._hostElement;
83
+ if (this.disabled()) {
84
+ this._disableLink(link);
85
+ }
86
+ else {
87
+ this._enableLink(link);
88
+ }
89
+ });
90
+ }
91
+ _disableLink(link) {
92
+ if (!this._routerLink) {
93
+ link.setAttribute('data-href', link.href);
94
+ }
95
+ link.removeAttribute('href');
96
+ }
97
+ _enableLink(link) {
98
+ const prevHref = this._routerLink?.href ?? link.getAttribute('data-href') ?? '';
99
+ if (prevHref) {
100
+ link.href = prevHref;
101
+ link.removeAttribute('data-href');
102
+ }
103
+ }
104
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: IdsIconButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
105
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.7", type: IdsIconButtonComponent, isStandalone: true, selector: "button[idsIconButton], a[idsIconButton]", inputs: { appearance: { classPropertyName: "appearance", publicName: "appearance", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.disabled": "_parentOrSelfDisabled() ? \"\" : null", "attr.aria-disabled": "_parentOrSelfDisabled()" } }, queries: [{ propertyName: "_icons", predicate: IdsIconComponent, isSignal: true }], usesInheritance: true, ngImport: i0, template: "@if (_icons().length) {\n <ng-content select=\"ids-icon\" />\n}\n", changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
106
+ }
107
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: IdsIconButtonComponent, decorators: [{
108
+ type: Component,
109
+ args: [{ selector: 'button[idsIconButton], a[idsIconButton]', imports: [], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
110
+ '[attr.disabled]': '_parentOrSelfDisabled() ? "" : null',
111
+ '[attr.aria-disabled]': '_parentOrSelfDisabled()',
112
+ }, template: "@if (_icons().length) {\n <ng-content select=\"ids-icon\" />\n}\n" }]
113
+ }], ctorParameters: () => [] });
114
+
115
+ /**
116
+ * Generated bundle index. Do not edit.
117
+ */
118
+
119
+ export { IDS_ICON_BUTTON_DEFAULT_CONFIG, IDS_ICON_BUTTON_DEFAULT_CONFIG_FACTORY, IDS_ICON_BUTTON_PARENT, IdsIconButtonAppearance, IdsIconButtonComponent, IdsIconButtonParent, IdsIconButtonVariant };
120
+ //# sourceMappingURL=i-cell-ids-angular-icon-button.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"i-cell-ids-angular-icon-button.mjs","sources":["../../../projects/widgets/icon-button/tokens/icon-button-parent.ts","../../../projects/widgets/icon-button/types/icon-button-appearance.type.ts","../../../projects/widgets/icon-button/types/icon-button-variant.type.ts","../../../projects/widgets/icon-button/icon-button-defaults.ts","../../../projects/widgets/icon-button/icon-button.component.ts","../../../projects/widgets/icon-button/icon-button.component.html","../../../projects/widgets/icon-button/i-cell-ids-angular-icon-button.ts"],"sourcesContent":["import { IdsIconButtonAppearanceType } from '../types/icon-button-appearance.type';\nimport { IdsIconButtonVariantType } from '../types/icon-button-variant.type';\n\nimport { InjectionToken, Signal } from '@angular/core';\n\nexport abstract class IdsIconButtonParent {\n public readonly embeddedIconButtonVariant!: Signal<IdsIconButtonVariantType>;\n public readonly embeddedIconButtonAppearance!: Signal<IdsIconButtonAppearanceType>;\n public readonly disabled!: Signal<boolean>;\n};\n\nexport const IDS_ICON_BUTTON_PARENT = new InjectionToken<IdsIconButtonParent>(\n 'IDS_ICON_BUTTON_PARENT',\n);\n","export const IdsIconButtonAppearance = {\n FILLED: 'filled',\n OUTLINED: 'outlined',\n STANDARD: 'standard',\n} as const;\n\nexport type IdsIconButtonAppearanceType = (typeof IdsIconButtonAppearance)[keyof typeof IdsIconButtonAppearance];\n","export const IdsIconButtonVariant = {\n PRIMARY: 'primary',\n SECONDARY: 'secondary',\n SURFACE: 'surface',\n BRAND: 'brand',\n LIGHT: 'light',\n DARK: 'dark',\n INFO: 'info',\n SUCCESS: 'success',\n WARNING: 'warning',\n ERROR: 'error',\n} as const;\n\nexport type IdsIconButtonVariantType = (typeof IdsIconButtonVariant)[keyof typeof IdsIconButtonVariant];\n\n","import { IdsIconButtonAppearance, IdsIconButtonAppearanceType } from './types/icon-button-appearance.type';\nimport { IdsIconButtonVariant, IdsIconButtonVariantType } from './types/icon-button-variant.type';\n\nimport { InjectionToken } from '@angular/core';\nimport { IdsSize, IdsSizeType } from '@i-cell/ids-angular/core';\n\nexport interface IdsIconButtonDefaultConfig {\n appearance?: IdsIconButtonAppearanceType,\n size?: IdsSizeType,\n variant?: IdsIconButtonVariantType,\n}\n\nexport const IDS_ICON_BUTTON_DEFAULT_CONFIG = new InjectionToken<IdsIconButtonDefaultConfig>(\n 'IDS_ICON_BUTTON_DEFAULT_CONFIG',\n {\n providedIn: 'root',\n factory: IDS_ICON_BUTTON_DEFAULT_CONFIG_FACTORY,\n },\n);\n\nexport function IDS_ICON_BUTTON_DEFAULT_CONFIG_FACTORY(): Required<IdsIconButtonDefaultConfig> {\n return {\n appearance: IdsIconButtonAppearance.FILLED,\n size: IdsSize.COMPACT,\n variant: IdsIconButtonVariant.PRIMARY,\n };\n}\n\n","import { IDS_ICON_BUTTON_DEFAULT_CONFIG, IDS_ICON_BUTTON_DEFAULT_CONFIG_FACTORY, IdsIconButtonDefaultConfig } from './icon-button-defaults';\nimport { IDS_ICON_BUTTON_PARENT } from './tokens/icon-button-parent';\nimport { IdsIconButtonAppearanceType } from './types/icon-button-appearance.type';\nimport { IdsIconButtonVariantType } from './types/icon-button-variant.type';\n\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n ViewEncapsulation,\n computed,\n contentChildren,\n effect,\n inject,\n input,\n} from '@angular/core';\nimport { RouterLink } from '@angular/router';\nimport {\n ComponentBaseWithDefaults,\n IdsSizeType,\n coerceBooleanAttribute,\n} from '@i-cell/ids-angular/core';\nimport { IdsIconComponent } from '@i-cell/ids-angular/icon';\n\nconst defaultConfig = IDS_ICON_BUTTON_DEFAULT_CONFIG_FACTORY();\n\n@Component({\n selector: 'button[idsIconButton], a[idsIconButton]',\n imports: [],\n templateUrl: './icon-button.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[attr.disabled]': '_parentOrSelfDisabled() ? \"\" : null',\n '[attr.aria-disabled]': '_parentOrSelfDisabled()',\n },\n})\nexport class IdsIconButtonComponent extends ComponentBaseWithDefaults<IdsIconButtonDefaultConfig> {\n protected override get _hostName(): string {\n return 'icon-button';\n }\n\n private readonly _parent = inject(IDS_ICON_BUTTON_PARENT, { optional: true });\n private _hostElement = inject<ElementRef<HTMLElement>>(ElementRef<HTMLElement>).nativeElement;\n private _routerLink = inject(RouterLink, { optional: true, self: true });\n\n protected readonly _defaultConfig = this._getDefaultConfig(defaultConfig, IDS_ICON_BUTTON_DEFAULT_CONFIG);\n\n public appearance = input<IdsIconButtonAppearanceType>(this._defaultConfig.appearance);\n public size = input<IdsSizeType>(this._defaultConfig.size);\n public variant = input<IdsIconButtonVariantType>(this._defaultConfig.variant);\n public disabled = input(false, { transform: coerceBooleanAttribute });\n\n protected _icons = contentChildren(IdsIconComponent);\n\n private _parentOrSelfAppearance = computed(() => this._parent?.embeddedIconButtonAppearance() ?? this.appearance());\n private _parentOrSelfSize = computed(() => {\n const embeddedIconButtonSize = this._parent?.embeddedIconButtonSize;\n return embeddedIconButtonSize ? embeddedIconButtonSize() : this.size();\n });\n\n private _parentOrSelfVariant = computed(() => this._parent?.embeddedIconButtonVariant() ?? this.variant());\n private _parentOrSelfDisabled = computed(() => {\n const parentDisabled = this._parent?.disabled;\n return parentDisabled ? parentDisabled() : this.disabled();\n });\n\n protected _hostClasses = computed(() => this._getHostClasses([\n this._parentOrSelfAppearance(),\n this._parentOrSelfSize(),\n this._parentOrSelfVariant(),\n this.disabled() ? 'disabled' : null,\n ]));\n\n private get _buttonType(): string | null {\n return this._hostElement.tagName === 'BUTTON' ? 'button' : null;\n }\n\n constructor() {\n super();\n\n effect(() => {\n if (this._buttonType) {\n return;\n }\n\n const link = this._hostElement as HTMLAnchorElement;\n\n if (this.disabled()) {\n this._disableLink(link);\n } else {\n this._enableLink(link);\n }\n });\n }\n\n private _disableLink(link: HTMLAnchorElement): void {\n if (!this._routerLink) {\n link.setAttribute('data-href', link.href);\n }\n link.removeAttribute('href');\n }\n\n private _enableLink(link: HTMLAnchorElement): void {\n const prevHref = this._routerLink?.href ?? link.getAttribute('data-href') ?? '';\n\n if (prevHref) {\n link.href = prevHref;\n link.removeAttribute('data-href');\n }\n }\n}\n","@if (_icons().length) {\n <ng-content select=\"ids-icon\" />\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,158 @@
1
+ import * as i0 from '@angular/core';
2
+ import { InjectionToken, inject, ElementRef, DOCUMENT, input, computed, effect, SecurityContext, ViewEncapsulation, ChangeDetectionStrategy, Component } from '@angular/core';
3
+ import { IdsSizeCollection, IdsSize, ComponentBaseWithDefaults, coerceStringAttribute, coerceBooleanAttribute } from '@i-cell/ids-angular/core';
4
+ import { HttpClient } from '@angular/common/http';
5
+ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
6
+ import { DomSanitizer } from '@angular/platform-browser';
7
+
8
+ class IdsIconParent {
9
+ }
10
+ ;
11
+ const IDS_ICON_PARENT = new InjectionToken('IDS_ICON_PARENT');
12
+
13
+ const IdsIconSource = {
14
+ SVG: 'svg',
15
+ FONT: 'font',
16
+ };
17
+
18
+ const IdsIconVariant = {
19
+ PRIMARY: 'primary',
20
+ SECONDARY: 'secondary',
21
+ SURFACE: 'surface',
22
+ BRAND: 'brand',
23
+ LIGHT: 'light',
24
+ DARK: 'dark',
25
+ SUCCESS: 'success',
26
+ WARNING: 'warning',
27
+ ERROR: 'error',
28
+ };
29
+
30
+ const IDS_ICON_DEFAULT_CONFIG = new InjectionToken('IDS_ICON_DEFAULT_CONFIG', {
31
+ providedIn: 'root',
32
+ factory: IDS_ICON_DEFAULT_CONFIG_FACTORY,
33
+ });
34
+ function IDS_ICON_DEFAULT_CONFIG_FACTORY() {
35
+ return {
36
+ size: IdsSize.COMPACT,
37
+ sizeCollection: IdsSizeCollection.SMALL,
38
+ variant: IdsIconVariant.SURFACE,
39
+ iconAssetsPath: '',
40
+ fontNameMappings: {},
41
+ };
42
+ }
43
+
44
+ const defaultConfig = IDS_ICON_DEFAULT_CONFIG_FACTORY();
45
+ class IdsIconComponent extends ComponentBaseWithDefaults {
46
+ constructor() {
47
+ super(...arguments);
48
+ this._parent = inject(IDS_ICON_PARENT, { optional: true });
49
+ this._defaultConfig = this._getDefaultConfig(defaultConfig, IDS_ICON_DEFAULT_CONFIG);
50
+ this._elementRef = inject((ElementRef));
51
+ this._document = inject(DOCUMENT);
52
+ this._httpClient = inject(HttpClient);
53
+ this._sanitizer = inject(DomSanitizer);
54
+ this.size = input(this._defaultConfig.size, ...(ngDevMode ? [{ debugName: "size" }] : []));
55
+ this.sizeCollection = input(this._defaultConfig.sizeCollection, ...(ngDevMode ? [{ debugName: "sizeCollection" }] : []));
56
+ this.variant = input(this._defaultConfig.variant, ...(ngDevMode ? [{ debugName: "variant" }] : []));
57
+ this.fontIcon = input(null, ...(ngDevMode ? [{ debugName: "fontIcon", transform: coerceStringAttribute }] : [{ transform: coerceStringAttribute }]));
58
+ this.svgIconName = input(null, ...(ngDevMode ? [{ debugName: "svgIconName", alias: 'svgIcon', transform: coerceStringAttribute }] : [{ alias: 'svgIcon', transform: coerceStringAttribute }]));
59
+ this.ariaHidden = input(true, ...(ngDevMode ? [{ debugName: "ariaHidden", alias: 'aria-hidden', transform: coerceBooleanAttribute }] : [{ alias: 'aria-hidden', transform: coerceBooleanAttribute }]));
60
+ this._svgIcon = null;
61
+ this._safeFontIcon = computed(() => {
62
+ const iconName = this.fontIcon();
63
+ if (!iconName) {
64
+ return iconName;
65
+ }
66
+ const fontNameMappings = this._defaultConfig.fontNameMappings;
67
+ const mappedIconName = fontNameMappings?.[iconName];
68
+ return mappedIconName ?? iconName;
69
+ }, ...(ngDevMode ? [{ debugName: "_safeFontIcon" }] : []));
70
+ this._iconSourceType = computed(() => (this.fontIcon() ? IdsIconSource.FONT : IdsIconSource.SVG), ...(ngDevMode ? [{ debugName: "_iconSourceType" }] : []));
71
+ this._parentOrSelfVariant = computed(() => this._parent?.embeddedIconVariant() ?? this.variant(), ...(ngDevMode ? [{ debugName: "_parentOrSelfVariant" }] : []));
72
+ this._hostClasses = computed(() => this._getHostClasses([
73
+ [
74
+ `${this.sizeCollection()}collection`,
75
+ this.size(),
76
+ ],
77
+ this._parentOrSelfVariant(),
78
+ this._iconSourceType(),
79
+ ]), ...(ngDevMode ? [{ debugName: "_hostClasses" }] : []));
80
+ this._sanitizeSvgIconEffect = effect(() => {
81
+ const svgIconName = this.svgIconName();
82
+ if (!svgIconName) {
83
+ this._svgIcon = null;
84
+ return;
85
+ }
86
+ const svgIconSafeUrl = this._sanitizer.sanitize(SecurityContext.RESOURCE_URL, this._sanitizer.bypassSecurityTrustResourceUrl(`${this._defaultConfig.iconAssetsPath}/${svgIconName}.svg`));
87
+ if (!svgIconSafeUrl) {
88
+ this._svgIcon = null;
89
+ return;
90
+ }
91
+ this._getSvgElementSource(svgIconSafeUrl);
92
+ }, ...(ngDevMode ? [{ debugName: "_sanitizeSvgIconEffect" }] : []));
93
+ }
94
+ get _hostName() {
95
+ return 'icon';
96
+ }
97
+ ngOnInit() {
98
+ if (this.fontIcon() && this.svgIconName()) {
99
+ throw this._createHostError('Font icon and svg icon can not be used together!');
100
+ }
101
+ }
102
+ _getSvgElementSource(url) {
103
+ this._httpClient
104
+ .get(url, { responseType: 'text' })
105
+ .pipe(takeUntilDestroyed(this._destroyRef))
106
+ .subscribe((svg) => {
107
+ this._svgIcon = this._getSvgElement(this._sanitizer.bypassSecurityTrustHtml(svg));
108
+ this._setSvgElement(this._svgIcon);
109
+ });
110
+ }
111
+ _setSvgElement(svg) {
112
+ this._clearSvgElement();
113
+ this._elementRef.nativeElement.appendChild(svg);
114
+ }
115
+ _clearSvgElement() {
116
+ const layoutElement = this._elementRef.nativeElement;
117
+ let childCount = layoutElement.childNodes.length;
118
+ while (childCount--) {
119
+ const child = layoutElement.childNodes[childCount];
120
+ if (child.nodeType !== 1 || child.nodeName.toLowerCase() === 'svg') {
121
+ child.remove();
122
+ }
123
+ }
124
+ }
125
+ _getSvgElement(safeHtml) {
126
+ const div = this._document.createElement('div');
127
+ div.innerHTML = safeHtml;
128
+ const svg = div.querySelector('svg');
129
+ if (!svg) {
130
+ throw this._createHostError('Svg element creation failed!');
131
+ }
132
+ return svg;
133
+ }
134
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: IdsIconComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
135
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.1.7", type: IdsIconComponent, isStandalone: true, selector: "ids-icon", inputs: { size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, sizeCollection: { classPropertyName: "sizeCollection", publicName: "sizeCollection", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, fontIcon: { classPropertyName: "fontIcon", publicName: "fontIcon", isSignal: true, isRequired: false, transformFunction: null }, svgIconName: { classPropertyName: "svgIconName", publicName: "svgIcon", isSignal: true, isRequired: false, transformFunction: null }, ariaHidden: { classPropertyName: "ariaHidden", publicName: "aria-hidden", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "img" }, properties: { "attr.aria-hidden": "ariaHidden().toString()", "attr.fontIcon": "this._safeFontIcon()" } }, usesInheritance: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
136
+ }
137
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: IdsIconComponent, decorators: [{
138
+ type: Component,
139
+ args: [{
140
+ selector: 'ids-icon',
141
+ standalone: true,
142
+ template: '',
143
+ changeDetection: ChangeDetectionStrategy.OnPush,
144
+ encapsulation: ViewEncapsulation.None,
145
+ host: {
146
+ '[attr.aria-hidden]': 'ariaHidden().toString()',
147
+ '[attr.fontIcon]': 'this._safeFontIcon()',
148
+ 'role': 'img',
149
+ },
150
+ }]
151
+ }] });
152
+
153
+ /**
154
+ * Generated bundle index. Do not edit.
155
+ */
156
+
157
+ export { IDS_ICON_DEFAULT_CONFIG, IDS_ICON_DEFAULT_CONFIG_FACTORY, IDS_ICON_PARENT, IdsIconComponent, IdsIconParent, IdsIconSource, IdsIconVariant };
158
+ //# sourceMappingURL=i-cell-ids-angular-icon.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"i-cell-ids-angular-icon.mjs","sources":["../../../projects/widgets/icon/tokens/icon-parent.ts","../../../projects/widgets/icon/types/icon-source.type.ts","../../../projects/widgets/icon/types/icon-variant.type.ts","../../../projects/widgets/icon/icon-defaults.ts","../../../projects/widgets/icon/icon.component.ts","../../../projects/widgets/icon/i-cell-ids-angular-icon.ts"],"sourcesContent":["import { IdsIconVariantType } from '../types/icon-variant.type';\n\nimport { InjectionToken, Signal } from '@angular/core';\n\nexport abstract class IdsIconParent {\n public readonly embeddedIconVariant!: Signal<IdsIconVariantType>;\n};\n\nexport const IDS_ICON_PARENT = new InjectionToken<IdsIconParent>(\n 'IDS_ICON_PARENT',\n);\n","export const IdsIconSource = {\n SVG: 'svg',\n FONT: 'font',\n} as const;\n\nexport type IdsIconSourceType = (typeof IdsIconSource)[keyof typeof IdsIconSource];\n","export const IdsIconVariant = {\n PRIMARY: 'primary',\n SECONDARY: 'secondary',\n SURFACE: 'surface',\n BRAND: 'brand',\n LIGHT: 'light',\n DARK: 'dark',\n SUCCESS: 'success',\n WARNING: 'warning',\n ERROR: 'error',\n} as const;\n\nexport type IdsIconVariantType = (typeof IdsIconVariant)[keyof typeof IdsIconVariant];\n","import { IdsIconVariant, IdsIconVariantType } from './types/icon-variant.type';\n\nimport { InjectionToken } from '@angular/core';\nimport { IdsSize, IdsSizeCollection, IdsSizeCollectionType, IdsSizeType } from '@i-cell/ids-angular/core';\n\nexport interface IdsIconDefaultConfig {\n size?: IdsSizeType\n sizeCollection?: IdsSizeCollectionType\n variant?: IdsIconVariantType\n iconAssetsPath: string\n fontNameMappings?: Record<string, string>\n}\n\nexport const IDS_ICON_DEFAULT_CONFIG = new InjectionToken<IdsIconDefaultConfig>(\n 'IDS_ICON_DEFAULT_CONFIG',\n {\n providedIn: 'root',\n factory: IDS_ICON_DEFAULT_CONFIG_FACTORY,\n },\n);\n\nexport function IDS_ICON_DEFAULT_CONFIG_FACTORY(): Required<IdsIconDefaultConfig> {\n return {\n size: IdsSize.COMPACT,\n sizeCollection: IdsSizeCollection.SMALL,\n variant: IdsIconVariant.SURFACE,\n iconAssetsPath: '',\n fontNameMappings: {},\n };\n}\n","import { IDS_ICON_DEFAULT_CONFIG, IDS_ICON_DEFAULT_CONFIG_FACTORY, IdsIconDefaultConfig } from './icon-defaults';\nimport { IDS_ICON_PARENT } from './tokens/icon-parent';\nimport { IdsIconSource } from './types/icon-source.type';\nimport { IdsIconVariantType } from './types/icon-variant.type';\n\nimport { HttpClient } from '@angular/common/http';\nimport { ChangeDetectionStrategy, Component, computed, effect, ElementRef, inject, input, OnInit, SecurityContext, ViewEncapsulation, DOCUMENT } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport { coerceBooleanAttribute, coerceStringAttribute, ComponentBaseWithDefaults, IdsSizeCollectionType, IdsSizeType } from '@i-cell/ids-angular/core';\n\nconst defaultConfig = IDS_ICON_DEFAULT_CONFIG_FACTORY();\n\n@Component({\n selector: 'ids-icon',\n standalone: true,\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[attr.aria-hidden]': 'ariaHidden().toString()',\n '[attr.fontIcon]': 'this._safeFontIcon()',\n 'role': 'img',\n },\n})\nexport class IdsIconComponent extends ComponentBaseWithDefaults<IdsIconDefaultConfig> implements OnInit {\n protected override get _hostName(): string {\n return 'icon';\n }\n\n private readonly _parent = inject(IDS_ICON_PARENT, { optional: true });\n protected readonly _defaultConfig = this._getDefaultConfig(defaultConfig, IDS_ICON_DEFAULT_CONFIG);\n\n private readonly _elementRef = inject(ElementRef<HTMLElement>);\n private readonly _document = inject(DOCUMENT);\n private readonly _httpClient = inject(HttpClient);\n private readonly _sanitizer = inject(DomSanitizer);\n\n public size = input<IdsSizeType>(this._defaultConfig.size);\n public sizeCollection = input<IdsSizeCollectionType>(this._defaultConfig.sizeCollection);\n public variant = input<IdsIconVariantType>(this._defaultConfig.variant);\n public fontIcon = input<string | null, string>(null, { transform: coerceStringAttribute });\n public svgIconName = input<string | null, string>(null, { alias: 'svgIcon', transform: coerceStringAttribute });\n public ariaHidden = input<boolean, unknown>(true, { alias: 'aria-hidden', transform: coerceBooleanAttribute });\n\n protected _svgIcon: SVGElement | null = null;\n\n protected _safeFontIcon = computed(() => {\n const iconName = this.fontIcon();\n if (!iconName) {\n return iconName;\n }\n const fontNameMappings = this._defaultConfig.fontNameMappings;\n const mappedIconName = fontNameMappings?.[iconName];\n return mappedIconName ?? iconName;\n });\n\n protected _iconSourceType = computed(() => (this.fontIcon() ? IdsIconSource.FONT : IdsIconSource.SVG));\n\n private _parentOrSelfVariant = computed(() => this._parent?.embeddedIconVariant() ?? this.variant());\n protected _hostClasses = computed(() => this._getHostClasses([\n [\n `${this.sizeCollection()}collection`,\n this.size(),\n ],\n this._parentOrSelfVariant(),\n this._iconSourceType(),\n ]));\n\n private _sanitizeSvgIconEffect = effect(() => {\n const svgIconName = this.svgIconName();\n if (!svgIconName) {\n this._svgIcon = null;\n return;\n }\n\n const svgIconSafeUrl = this._sanitizer.sanitize(\n SecurityContext.RESOURCE_URL,\n this._sanitizer.bypassSecurityTrustResourceUrl(`${this._defaultConfig.iconAssetsPath}/${svgIconName}.svg`),\n );\n\n if (!svgIconSafeUrl) {\n this._svgIcon = null;\n return;\n }\n\n this._getSvgElementSource(svgIconSafeUrl);\n });\n\n public ngOnInit(): void {\n if (this.fontIcon() && this.svgIconName()) {\n throw this._createHostError('Font icon and svg icon can not be used together!');\n }\n }\n\n private _getSvgElementSource(url: string): void {\n this._httpClient\n .get(url, { responseType: 'text' })\n .pipe(\n takeUntilDestroyed(this._destroyRef),\n )\n .subscribe((svg) => {\n this._svgIcon = this._getSvgElement(this._sanitizer.bypassSecurityTrustHtml(svg));\n this._setSvgElement(this._svgIcon);\n });\n }\n\n private _setSvgElement(svg: SVGElement): void {\n this._clearSvgElement();\n\n this._elementRef.nativeElement.appendChild(svg);\n }\n\n private _clearSvgElement(): void {\n const layoutElement: HTMLElement = this._elementRef.nativeElement;\n let childCount = layoutElement.childNodes.length;\n\n while (childCount--) {\n const child = layoutElement.childNodes[childCount];\n\n if (child.nodeType !== 1 || child.nodeName.toLowerCase() === 'svg') {\n child.remove();\n }\n }\n }\n\n private _getSvgElement(safeHtml: SafeHtml): SVGElement {\n const div = this._document.createElement('div');\n div.innerHTML = safeHtml as unknown as string;\n const svg = div.querySelector('svg');\n\n if (!svg) {\n throw this._createHostError('Svg element creation failed!');\n }\n\n return svg;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}