@i-cell/ids-angular 0.2.3 → 0.2.5

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.
package/dialog/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import * as _angular_core from '@angular/core';
2
- import { InjectionToken, TemplateRef, AfterViewInit, OnDestroy, Type, Provider, StaticProvider, Signal } from '@angular/core';
2
+ import { InjectionToken, TemplateRef, OnDestroy, AfterViewInit, Type, Provider, StaticProvider, Signal } from '@angular/core';
3
3
  import { IdsSizeType, ComponentBaseWithDefaults } from '@i-cell/ids-angular/core';
4
4
  import { Subject, Observable } from 'rxjs';
5
5
 
@@ -17,10 +17,13 @@ declare class IdsDialogHeaderDirective {
17
17
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<IdsDialogHeaderDirective, "[idsDialogHeader]", never, {}, {}, never, never, true, never>;
18
18
  }
19
19
 
20
- declare class IdsDialogComponent extends ComponentBaseWithDefaults<IdsDialogDefaultConfig> {
20
+ declare class IdsDialogComponent extends ComponentBaseWithDefaults<IdsDialogDefaultConfig> implements OnDestroy {
21
21
  protected get _hostName(): string;
22
22
  protected readonly _defaultConfig: Required<IdsDialogDefaultConfig>;
23
23
  dialog: HTMLDialogElement;
24
+ private readonly _overlay;
25
+ private _overlayRoot?;
26
+ private _overlayPrevParent?;
24
27
  protected _titleId: _angular_core.Signal<string>;
25
28
  size: _angular_core.InputSignal<IdsSizeType>;
26
29
  mainTitle: _angular_core.InputSignal<string>;
@@ -29,9 +32,12 @@ declare class IdsDialogComponent extends ComponentBaseWithDefaults<IdsDialogDefa
29
32
  showBackdrop: _angular_core.InputSignal<boolean>;
30
33
  protected _customHeader: _angular_core.Signal<IdsDialogHeaderDirective | undefined>;
31
34
  protected _hostClasses: _angular_core.Signal<string>;
32
- private _onCancel;
35
+ protected _onCancel(event: Event): void;
33
36
  open(): void;
34
37
  close(): void;
38
+ protected _onNativeClose(): void;
39
+ ngOnDestroy(): void;
40
+ private _restoreOverlay;
35
41
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<IdsDialogComponent, never>;
36
42
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<IdsDialogComponent, "dialog[idsDialog]", ["idsDialog"], { "size": { "alias": "size"; "required": false; "isSignal": true; }; "mainTitle": { "alias": "mainTitle"; "required": true; "isSignal": true; }; "subTitle": { "alias": "subTitle"; "required": false; "isSignal": true; }; "showCloseButton": { "alias": "showCloseButton"; "required": false; "isSignal": true; }; "showBackdrop": { "alias": "showBackdrop"; "required": false; "isSignal": true; }; }, {}, ["_customHeader"], ["[idsDialogContent]", "[idsDialogActions]"], true, never>;
37
43
  }
@@ -90,6 +90,7 @@ class IdsCheckboxComponent extends ComponentBaseWithDefaults {
90
90
  this._onChange = () => { };
91
91
  this._onTouched = () => { };
92
92
  this.controlDir = null;
93
+ // eslint-disable-next-line @angular-eslint/no-output-native
93
94
  this.change = output();
94
95
  this.indeterminateChange = output();
95
96
  this._inputElement = viewChild.required('inputEl');
@@ -222,10 +223,12 @@ class IdsCheckboxComponent extends ComponentBaseWithDefaults {
222
223
  }
223
224
  get _hasRequiredValidator() {
224
225
  const control = this.controlDir?.control;
226
+ const attrRequired = this.required();
225
227
  if (!control) {
226
- return this.required();
228
+ return attrRequired;
227
229
  }
228
- return control.hasValidator(Validators.required)
230
+ return attrRequired
231
+ || control.hasValidator(Validators.required)
229
232
  || control.hasValidator(Validators.requiredTrue)
230
233
  || control.hasValidator(IdsValidators.required)
231
234
  || control.hasValidator(IdsValidators.requiredTrue)
@@ -1 +1 @@
1
- {"version":3,"file":"i-cell-ids-angular-checkbox.mjs","sources":["../../../projects/widgets/checkbox/types/checkbox-events.class.ts","../../../projects/widgets/checkbox/types/checkbox-state.type.ts","../../../projects/widgets/checkbox/types/checkbox-variant.type.ts","../../../projects/widgets/checkbox/checkbox-defaults.ts","../../../projects/widgets/checkbox/checkbox-group-defaults.ts","../../../projects/widgets/checkbox/types/checkbox-group-child.ts","../../../projects/widgets/checkbox/types/checkbox-parent.ts","../../../projects/widgets/checkbox/checkbox.component.ts","../../../projects/widgets/checkbox/checkbox.component.html","../../../projects/widgets/checkbox/checkbox-group.component.ts","../../../projects/widgets/checkbox/checkbox-group.component.html","../../../projects/widgets/checkbox/i-cell-ids-angular-checkbox.ts"],"sourcesContent":["import { IdsCheckboxComponent } from '../checkbox.component';\n\nexport class IdsCheckBoxChangeEvent {\n public source!: IdsCheckboxComponent;\n public checked!: boolean;\n public value?: unknown;\n}\n","export const IdsCheckboxState = {\n UNCHECKED: 'unchecked',\n CHECKED: 'checked',\n INDETERMINATE: 'indeterminate',\n} as const;\n\nexport type IdsCheckboxStateType = (typeof IdsCheckboxState)[keyof typeof IdsCheckboxState];\n","export const IdsCheckboxVariant = {\n SURFACE: 'surface',\n LIGHT: 'light',\n DARK: 'dark',\n} as const;\n\nexport type IdsCheckboxVariantType = (typeof IdsCheckboxVariant)[keyof typeof IdsCheckboxVariant];\n","import { IdsCheckboxVariant, IdsCheckboxVariantType } from './types/checkbox-variant.type';\n\nimport { InjectionToken } from '@angular/core';\nimport { IdsSize, IdsSizeType } from '@i-cell/ids-angular/core';\n\nexport interface IdsCheckboxDefaultConfig {\n size?: IdsSizeType\n variant?: IdsCheckboxVariantType\n}\n\nexport const IDS_CHECKBOX_DEFAULT_CONFIG = new InjectionToken<IdsCheckboxDefaultConfig>(\n 'IDS_CHECKBOX_DEFAULT_CONFIG',\n {\n providedIn: 'root',\n factory: IDS_CHECKBOX_DEFAULT_CONFIG_FACTORY,\n },\n);\n\nexport function IDS_CHECKBOX_DEFAULT_CONFIG_FACTORY(): Required<IdsCheckboxDefaultConfig> {\n return {\n size: IdsSize.COMPACT,\n variant: IdsCheckboxVariant.SURFACE,\n };\n}\n","import { IDS_CHECKBOX_DEFAULT_CONFIG_FACTORY, IdsCheckboxDefaultConfig } from './checkbox-defaults';\n\nimport { InjectionToken } from '@angular/core';\nimport { IdsOrientation, IdsOrientationType } from '@i-cell/ids-angular/core';\n\nexport interface IdsCheckboxGroupDefaultConfig extends IdsCheckboxDefaultConfig {\n orientation: IdsOrientationType,\n allowParent: boolean,\n}\n\nexport const IDS_CHECKBOX_GROUP_DEFAULT_CONFIG = new InjectionToken<IdsCheckboxGroupDefaultConfig>(\n 'IDS_CHECKBOX_GROUP_DEFAULT_CONFIG',\n {\n providedIn: 'root',\n factory: IDS_CHECKBOX_GROUP_DEFAULT_CONFIG_FACTORY,\n },\n);\n\nexport function IDS_CHECKBOX_GROUP_DEFAULT_CONFIG_FACTORY(): Required<IdsCheckboxGroupDefaultConfig> {\n return {\n ...IDS_CHECKBOX_DEFAULT_CONFIG_FACTORY(),\n orientation: IdsOrientation.VERTICAL,\n allowParent: true,\n };\n}\n","import { IdsCheckboxStateType } from './checkbox-state.type';\n\nimport { InjectionToken } from '@angular/core';\n\nexport interface IdsCheckboxGroupChild {\n checkboxState(): IdsCheckboxStateType;\n deselect(): void;\n select(): void;\n}\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport const IDS_CHECKBOX_GROUP_CHILD = new InjectionToken<IdsCheckboxGroupChild>('IDS_CHECKBOX_GROUP_CHILD');\n","import { IdsCheckboxVariantType } from './checkbox-variant.type';\n\nimport { InjectionToken, Signal } from '@angular/core';\nimport { IdsSizeType } from '@i-cell/ids-angular/core';\n\nexport interface IdsCheckboxParent {\n size: Signal<IdsSizeType | null>;\n variant: Signal<IdsCheckboxVariantType | null>;\n}\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport const IDS_CHECKBOX_PARENT = new InjectionToken<IdsCheckboxParent>('IDS_CHECKBOX_PARENT');\n","import { IDS_CHECKBOX_DEFAULT_CONFIG, IDS_CHECKBOX_DEFAULT_CONFIG_FACTORY, IdsCheckboxDefaultConfig } from './checkbox-defaults';\nimport { IdsCheckBoxChangeEvent } from './types/checkbox-events.class';\nimport { IDS_CHECKBOX_GROUP_CHILD, IdsCheckboxGroupChild } from './types/checkbox-group-child';\nimport { IDS_CHECKBOX_PARENT } from './types/checkbox-parent';\nimport { IdsCheckboxState, IdsCheckboxStateType } from './types/checkbox-state.type';\nimport { IdsCheckboxVariantType } from './types/checkbox-variant.type';\n\nimport { AfterViewInit, ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, Injector, OnChanges, OnInit, SimpleChange, SimpleChanges, ViewEncapsulation, computed, contentChildren, inject, input, model, output, signal, viewChild } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR, NgControl, Validators } from '@angular/forms';\nimport { ComponentBaseWithDefaults, IdsSizeType, coerceBooleanAttribute, coerceNumberAttribute, isString } from '@i-cell/ids-angular/core';\nimport { IDS_FORM_FIELD_CONTROL, IdsErrorMessageComponent, IdsHintMessageComponent, IdsValidators } from '@i-cell/ids-angular/forms';\nimport { IdsIconComponent } from '@i-cell/ids-angular/icon';\n\nconst defaultConfig = IDS_CHECKBOX_DEFAULT_CONFIG_FACTORY();\n\n@Component({\n selector: 'ids-checkbox',\n imports: [IdsIconComponent],\n templateUrl: './checkbox.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: IdsCheckboxComponent,\n multi: true,\n },\n {\n provide: IDS_FORM_FIELD_CONTROL,\n useExisting: IdsCheckboxComponent,\n },\n {\n provide: IDS_CHECKBOX_GROUP_CHILD,\n useExisting: IdsCheckboxComponent,\n },\n ],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[attr.aria-label]': 'null',\n '[attr.aria-labelledby]': 'null',\n },\n})\nexport class IdsCheckboxComponent\n extends ComponentBaseWithDefaults<IdsCheckboxDefaultConfig>\n implements OnInit, OnChanges, AfterViewInit, ControlValueAccessor, IdsCheckboxGroupChild {\n protected override get _hostName(): string {\n return 'checkbox';\n }\n\n private readonly _injector = inject(Injector);\n private readonly _changeDetectorRef = inject(ChangeDetectorRef);\n protected readonly _defaultConfig = this._getDefaultConfig(defaultConfig, IDS_CHECKBOX_DEFAULT_CONFIG);\n\n private _checkboxGroup = inject(IDS_CHECKBOX_PARENT, { optional: true });\n\n private _checkboxState = signal<IdsCheckboxStateType>(IdsCheckboxState.UNCHECKED);\n public checkboxState = this._checkboxState.asReadonly();\n\n protected _inputId = computed(() => `${this.id()}-input`);\n public name = input<string | null>();\n public required = input(false, { transform: coerceBooleanAttribute });\n public readonly = input(false, { transform: coerceBooleanAttribute });\n public size = input<IdsSizeType>(this._defaultConfig.size);\n public tabIndex = input(0, { transform: coerceNumberAttribute });\n public value = input<unknown>();\n public variant = input<IdsCheckboxVariantType>(this._defaultConfig.variant);\n public checked = input<boolean, unknown>(false, { transform: coerceBooleanAttribute });\n public indeterminate = input<boolean, unknown>(false, { transform: coerceBooleanAttribute });\n public ariaLabel = input<string>('', { alias: 'aria-label' });\n public ariaLabelledby = input<string | null>(null, { alias: 'aria-labelledby' });\n public ariaDescribedby = input<string>('', { alias: 'aria-describedby' });\n\n public disabled = model(false);\n\n protected _isChecked = computed(() => this._checkboxState() === IdsCheckboxState.CHECKED);\n protected _isIndeterminate = computed(() => this._checkboxState() === IdsCheckboxState.INDETERMINATE);\n protected _isFocusable = computed(() => !this.disabled() && !this.readonly());\n protected _hostClasses = computed(() => this._getHostClasses([\n this._parentOrSelfSize(),\n this._parentOrSelfVariant(),\n this.disabled() ? 'disabled' : null,\n ]),\n );\n\n protected _nativeValue = computed(() => {\n const value = this.value();\n return isString(value) ? value : undefined;\n });\n\n private _parentOrSelfSize = computed(() => this._checkboxGroup?.size() ?? this.size());\n private _parentOrSelfVariant = computed(() => this._checkboxGroup?.variant() ?? this.variant());\n\n private _onChange: (value: unknown) => void = () => { };\n private _onTouched: () => unknown = () => { };\n\n public controlDir: NgControl | null = null;\n\n public readonly change = output<IdsCheckBoxChangeEvent>();\n public readonly indeterminateChange = output<boolean>();\n\n private _inputElement = viewChild.required<ElementRef<HTMLInputElement>>('inputEl');\n\n private _hintMessages = contentChildren(IdsHintMessageComponent, { descendants: true });\n private _errorMessages = contentChildren(IdsErrorMessageComponent, { descendants: true });\n\n public ngOnChanges(changes: SimpleChanges): void {\n const checkedChange = changes['checked'] as SimpleChange | undefined;\n const indeterminateChange = changes['indeterminate'] as SimpleChange | undefined;\n if (indeterminateChange || checkedChange) {\n const currentChecked = checkedChange?.currentValue;\n const currentIndeterminate = indeterminateChange?.currentValue;\n if (currentIndeterminate === true) {\n this._checkboxState.set(IdsCheckboxState.INDETERMINATE);\n } else if (currentChecked === true) {\n this._checkboxState.set(IdsCheckboxState.CHECKED);\n } else {\n this._checkboxState.set(IdsCheckboxState.UNCHECKED);\n }\n }\n }\n\n public ngOnInit(): void {\n this.controlDir = this._injector.get(NgControl, null, { self: true, optional: true });\n }\n\n public ngAfterViewInit(): void {\n if (this.indeterminate !== undefined) {\n this._syncIndeterminate(this.indeterminate());\n }\n }\n\n public focus(): void {\n this._inputElement().nativeElement.focus();\n }\n\n public writeValue(value: boolean): void {\n if (this._isIndeterminate()) {\n this._checkboxState.set(IdsCheckboxState.INDETERMINATE);\n } else {\n this._checkboxState.set(value ? IdsCheckboxState.CHECKED : IdsCheckboxState.UNCHECKED);\n }\n }\n\n public registerOnChange(fn: () => void): void {\n this._onChange = fn;\n }\n\n public registerOnTouched(fn: () => unknown): void {\n this._onTouched = fn;\n }\n\n public setDisabledState?(isDisabled: boolean): void {\n this.disabled.set(isDisabled);\n }\n\n protected _createChangeEvent(isChecked: boolean, value: unknown): IdsCheckBoxChangeEvent {\n const event = new IdsCheckBoxChangeEvent();\n event.source = this;\n event.checked = isChecked;\n event.value = value;\n return event;\n }\n\n private _emitChangeEvent(): void {\n this._onChange(this._isChecked());\n this.change.emit(this._createChangeEvent(this._isChecked(), this.value()));\n this._syncChecked(this._isChecked());\n }\n\n public toggle(): void {\n if (this._isIndeterminate()) {\n this._checkboxState.set(IdsCheckboxState.CHECKED);\n } else {\n this._checkboxState.set(this._checkboxState() === IdsCheckboxState.CHECKED ? IdsCheckboxState.UNCHECKED : IdsCheckboxState.CHECKED);\n }\n this._onChange(this._isChecked());\n }\n\n public select(): void {\n this._checkboxState.set(IdsCheckboxState.CHECKED);\n this._onChange(this._isChecked());\n }\n\n public deselect(): void {\n this._checkboxState.set(IdsCheckboxState.UNCHECKED);\n this._onChange(this._isChecked());\n }\n\n private _handleInputClick(): void {\n if (this._isIndeterminate()) {\n this._checkboxState.set(IdsCheckboxState.CHECKED);\n this.indeterminateChange.emit(this._isIndeterminate());\n } else {\n this._checkboxState.set(this._checkboxState() === IdsCheckboxState.CHECKED ? IdsCheckboxState.UNCHECKED : IdsCheckboxState.CHECKED);\n }\n\n this._emitChangeEvent();\n this._syncIndeterminate(this._isIndeterminate());\n }\n\n public onBlur(): void {\n Promise.resolve().then(() => {\n this._onTouched();\n this._changeDetectorRef.markForCheck();\n });\n }\n\n private _syncChecked(value: boolean): void {\n const nativeCheckbox = this._inputElement();\n nativeCheckbox.nativeElement.checked = value;\n }\n\n private _syncIndeterminate(value: boolean): void {\n const nativeCheckbox = this._inputElement();\n nativeCheckbox.nativeElement.indeterminate = value;\n }\n\n public onInputClick(): void {\n if (!this.readonly() && !this.disabled()) {\n this._handleInputClick();\n }\n }\n\n public onTouchTargetClick(): void {\n if (!this.readonly() && !this.disabled()) {\n this._handleInputClick();\n }\n\n if (!this.disabled()) {\n this._inputElement().nativeElement.focus();\n }\n }\n\n public get displayedMessages(): 'error' | 'hint' | undefined {\n if (this._errorMessages().length > 0 && this.controlDir?.errors) {\n return 'error';\n }\n if (this._hintMessages().length > 0) {\n return 'hint';\n }\n return undefined;\n }\n\n protected get _hasRequiredValidator(): boolean {\n const control = this.controlDir?.control;\n if (!control) {\n return this.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","<div class=\"ids-checkbox__input-wrapper\">\n <div class=\"ids-checkbox__touch-target\" (click)=\"onTouchTargetClick()\"></div>\n <input\n #inputEl\n type=\"checkbox\"\n [class.ids-checkbox--selected]=\"_isChecked()\"\n [id]=\"_inputId()\"\n [disabled]=\"disabled()\"\n [attr.aria-checked]=\"_isIndeterminate() ? 'mixed' : null\"\n [attr.aria-label]=\"ariaLabel() || null\"\n [attr.aria-labelledby]=\"ariaLabelledby()\"\n [attr.aria-describedby]=\"ariaDescribedby()\"\n [checked]=\"_isChecked()\"\n [indeterminate]=\"_isIndeterminate()\"\n [name]=\"name()\"\n [required]=\"required()\"\n [tabIndex]=\"!_isFocusable() ? -1 : tabIndex()\"\n [value]=\"_nativeValue()\"\n (blur)=\"onBlur()\"\n (click)=\"onInputClick()\"\n (change)=\"$event.stopPropagation()\"\n />\n <div class=\"ids-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\n<div class=\"ids-checkbox__label-wrapper\">\n <div class=\"ids-checkbox__label-container\">\n <label class=\"ids-checkbox__label\" [for]=\"_inputId()\">\n <ng-content />\n @if (_hasRequiredValidator) {\n <span class=\"ids-form-field__required-marker\"></span>\n }\n </label>\n </div>\n @let messages = displayedMessages;\n @if (messages) {\n <div class=\"ids-checkbox__message-container\">\n @switch (messages) {\n @case (\"error\") {\n <ng-content select=\"ids-error-message\" />\n }\n @case (\"hint\") {\n <ng-content select=\"ids-hint-message\" />\n }\n }\n </div>\n }\n</div>\n","import { IDS_CHECKBOX_GROUP_DEFAULT_CONFIG, IDS_CHECKBOX_GROUP_DEFAULT_CONFIG_FACTORY, IdsCheckboxGroupDefaultConfig } from './checkbox-group-defaults';\nimport { IdsCheckboxComponent } from './checkbox.component';\nimport { IdsCheckBoxChangeEvent } from './types/checkbox-events.class';\nimport { IDS_CHECKBOX_GROUP_CHILD } from './types/checkbox-group-child';\nimport { IDS_CHECKBOX_PARENT, IdsCheckboxParent } from './types/checkbox-parent';\nimport { IdsCheckboxState } from './types/checkbox-state.type';\nimport { IdsCheckboxVariantType } from './types/checkbox-variant.type';\n\nimport { ChangeDetectionStrategy, Component, computed, contentChildren, effect, input, ViewEncapsulation } from '@angular/core';\nimport { ComponentBaseWithDefaults, IdsOrientation, IdsOrientationType, IdsSizeType } from '@i-cell/ids-angular/core';\n\nconst defaultConfig = IDS_CHECKBOX_GROUP_DEFAULT_CONFIG_FACTORY();\n\n@Component({\n selector: 'ids-checkbox-group',\n imports: [IdsCheckboxComponent],\n templateUrl: './checkbox-group.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'role': 'group',\n '[attr.aria-labelledby]': '_groupLabelId()',\n },\n providers: [\n {\n provide: IDS_CHECKBOX_PARENT,\n useExisting: IdsCheckboxGroupComponent,\n },\n ],\n})\nexport class IdsCheckboxGroupComponent extends ComponentBaseWithDefaults<IdsCheckboxGroupDefaultConfig> implements IdsCheckboxParent {\n protected override get _hostName(): string {\n return 'checkbox-group';\n }\n\n protected readonly _defaultConfig = this._getDefaultConfig(defaultConfig, IDS_CHECKBOX_GROUP_DEFAULT_CONFIG);\n\n private _childCheckboxes = contentChildren(IDS_CHECKBOX_GROUP_CHILD);\n\n public groupLabel = input<string>('', { alias: 'label' });\n public allowParent = input<boolean>(this._defaultConfig.allowParent);\n public parentCheckboxLabel = input<string>('', { alias: 'parentLabel' });\n public name = input<string>();\n public size = input<IdsSizeType | null>(this._defaultConfig.size);\n public variant = input<IdsCheckboxVariantType | null>(this._defaultConfig.variant);\n public orientation = input<IdsOrientationType | null>(this._defaultConfig.orientation);\n\n protected _groupLabelId = computed(() => `${this.id()}-label`);\n protected _hostClasses = computed(() => this._getHostClasses([\n this.size(),\n this.variant(),\n this.orientation(),\n ]));\n\n protected _parentCheckboxChecked = computed(() =>\n this._childCheckboxes().every((child) =>\n child.checkboxState() === IdsCheckboxState.CHECKED));\n\n protected _parentCheckboxIndeterminate = computed(() =>\n !this._parentCheckboxChecked() && this._childCheckboxes().some((child) =>\n child.checkboxState() === IdsCheckboxState.CHECKED),\n );\n\n private _invalidParentOrientation = effect(() => {\n if (this.allowParent() && this.orientation() === IdsOrientation.HORIZONTAL) {\n throw this._createHostError('Parent checkbox can be used only in vertical orientation');\n }\n });\n\n public selectAllChild(): void {\n this._childCheckboxes().forEach((child) => {\n child.select();\n });\n }\n\n public deselectAllChild(): void {\n this._childCheckboxes().forEach((child) => {\n child.deselect();\n });\n }\n\n protected _handleParentChange(event: IdsCheckBoxChangeEvent): void {\n if (event.checked) {\n this.selectAllChild();\n } else {\n this.deselectAllChild();\n }\n }\n}\n","<label class=\"ids-checkbox-group__label\" [for]=\"id()\" [id]=\"_groupLabelId()\">{{ groupLabel() }}</label>\n\n@if (allowParent()) {\n <ids-checkbox\n [checked]=\"_parentCheckboxChecked()\"\n [indeterminate]=\"_parentCheckboxIndeterminate()\"\n (change)=\"_handleParentChange($event)\"\n >{{ parentCheckboxLabel() }}</ids-checkbox\n >\n}\n\n<div class=\"ids-checkbox-group__list\">\n <ng-content select=\"ids-checkbox\" />\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["defaultConfig"],"mappings":"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"}
1
+ {"version":3,"file":"i-cell-ids-angular-checkbox.mjs","sources":["../../../projects/widgets/checkbox/types/checkbox-events.class.ts","../../../projects/widgets/checkbox/types/checkbox-state.type.ts","../../../projects/widgets/checkbox/types/checkbox-variant.type.ts","../../../projects/widgets/checkbox/checkbox-defaults.ts","../../../projects/widgets/checkbox/checkbox-group-defaults.ts","../../../projects/widgets/checkbox/types/checkbox-group-child.ts","../../../projects/widgets/checkbox/types/checkbox-parent.ts","../../../projects/widgets/checkbox/checkbox.component.ts","../../../projects/widgets/checkbox/checkbox.component.html","../../../projects/widgets/checkbox/checkbox-group.component.ts","../../../projects/widgets/checkbox/checkbox-group.component.html","../../../projects/widgets/checkbox/i-cell-ids-angular-checkbox.ts"],"sourcesContent":["import { IdsCheckboxComponent } from '../checkbox.component';\n\nexport class IdsCheckBoxChangeEvent {\n public source!: IdsCheckboxComponent;\n public checked!: boolean;\n public value?: unknown;\n}\n","export const IdsCheckboxState = {\n UNCHECKED: 'unchecked',\n CHECKED: 'checked',\n INDETERMINATE: 'indeterminate',\n} as const;\n\nexport type IdsCheckboxStateType = (typeof IdsCheckboxState)[keyof typeof IdsCheckboxState];\n","export const IdsCheckboxVariant = {\n SURFACE: 'surface',\n LIGHT: 'light',\n DARK: 'dark',\n} as const;\n\nexport type IdsCheckboxVariantType = (typeof IdsCheckboxVariant)[keyof typeof IdsCheckboxVariant];\n","import { IdsCheckboxVariant, IdsCheckboxVariantType } from './types/checkbox-variant.type';\n\nimport { InjectionToken } from '@angular/core';\nimport { IdsSize, IdsSizeType } from '@i-cell/ids-angular/core';\n\nexport interface IdsCheckboxDefaultConfig {\n size?: IdsSizeType\n variant?: IdsCheckboxVariantType\n}\n\nexport const IDS_CHECKBOX_DEFAULT_CONFIG = new InjectionToken<IdsCheckboxDefaultConfig>(\n 'IDS_CHECKBOX_DEFAULT_CONFIG',\n {\n providedIn: 'root',\n factory: IDS_CHECKBOX_DEFAULT_CONFIG_FACTORY,\n },\n);\n\nexport function IDS_CHECKBOX_DEFAULT_CONFIG_FACTORY(): Required<IdsCheckboxDefaultConfig> {\n return {\n size: IdsSize.COMPACT,\n variant: IdsCheckboxVariant.SURFACE,\n };\n}\n","import { IDS_CHECKBOX_DEFAULT_CONFIG_FACTORY, IdsCheckboxDefaultConfig } from './checkbox-defaults';\n\nimport { InjectionToken } from '@angular/core';\nimport { IdsOrientation, IdsOrientationType } from '@i-cell/ids-angular/core';\n\nexport interface IdsCheckboxGroupDefaultConfig extends IdsCheckboxDefaultConfig {\n orientation: IdsOrientationType,\n allowParent: boolean,\n}\n\nexport const IDS_CHECKBOX_GROUP_DEFAULT_CONFIG = new InjectionToken<IdsCheckboxGroupDefaultConfig>(\n 'IDS_CHECKBOX_GROUP_DEFAULT_CONFIG',\n {\n providedIn: 'root',\n factory: IDS_CHECKBOX_GROUP_DEFAULT_CONFIG_FACTORY,\n },\n);\n\nexport function IDS_CHECKBOX_GROUP_DEFAULT_CONFIG_FACTORY(): Required<IdsCheckboxGroupDefaultConfig> {\n return {\n ...IDS_CHECKBOX_DEFAULT_CONFIG_FACTORY(),\n orientation: IdsOrientation.VERTICAL,\n allowParent: true,\n };\n}\n","import { IdsCheckboxStateType } from './checkbox-state.type';\n\nimport { InjectionToken } from '@angular/core';\n\nexport interface IdsCheckboxGroupChild {\n checkboxState(): IdsCheckboxStateType;\n deselect(): void;\n select(): void;\n}\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport const IDS_CHECKBOX_GROUP_CHILD = new InjectionToken<IdsCheckboxGroupChild>('IDS_CHECKBOX_GROUP_CHILD');\n","import { IdsCheckboxVariantType } from './checkbox-variant.type';\n\nimport { InjectionToken, Signal } from '@angular/core';\nimport { IdsSizeType } from '@i-cell/ids-angular/core';\n\nexport interface IdsCheckboxParent {\n size: Signal<IdsSizeType | null>;\n variant: Signal<IdsCheckboxVariantType | null>;\n}\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport const IDS_CHECKBOX_PARENT = new InjectionToken<IdsCheckboxParent>('IDS_CHECKBOX_PARENT');\n","import { IDS_CHECKBOX_DEFAULT_CONFIG, IDS_CHECKBOX_DEFAULT_CONFIG_FACTORY, IdsCheckboxDefaultConfig } from './checkbox-defaults';\nimport { IdsCheckBoxChangeEvent } from './types/checkbox-events.class';\nimport { IDS_CHECKBOX_GROUP_CHILD, IdsCheckboxGroupChild } from './types/checkbox-group-child';\nimport { IDS_CHECKBOX_PARENT } from './types/checkbox-parent';\nimport { IdsCheckboxState, IdsCheckboxStateType } from './types/checkbox-state.type';\nimport { IdsCheckboxVariantType } from './types/checkbox-variant.type';\n\nimport { AfterViewInit, ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, Injector, OnChanges, OnInit, SimpleChange, SimpleChanges, ViewEncapsulation, computed, contentChildren, inject, input, model, output, signal, viewChild } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR, NgControl, Validators } from '@angular/forms';\nimport { ComponentBaseWithDefaults, IdsSizeType, coerceBooleanAttribute, coerceNumberAttribute, isString } from '@i-cell/ids-angular/core';\nimport { IDS_FORM_FIELD_CONTROL, IdsErrorMessageComponent, IdsHintMessageComponent, IdsValidators } from '@i-cell/ids-angular/forms';\nimport { IdsIconComponent } from '@i-cell/ids-angular/icon';\n\nconst defaultConfig = IDS_CHECKBOX_DEFAULT_CONFIG_FACTORY();\n\n@Component({\n selector: 'ids-checkbox',\n imports: [IdsIconComponent],\n templateUrl: './checkbox.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: IdsCheckboxComponent,\n multi: true,\n },\n {\n provide: IDS_FORM_FIELD_CONTROL,\n useExisting: IdsCheckboxComponent,\n },\n {\n provide: IDS_CHECKBOX_GROUP_CHILD,\n useExisting: IdsCheckboxComponent,\n },\n ],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[attr.aria-label]': 'null',\n '[attr.aria-labelledby]': 'null',\n },\n})\nexport class IdsCheckboxComponent\n extends ComponentBaseWithDefaults<IdsCheckboxDefaultConfig>\n implements OnInit, OnChanges, AfterViewInit, ControlValueAccessor, IdsCheckboxGroupChild {\n protected override get _hostName(): string {\n return 'checkbox';\n }\n\n private readonly _injector = inject(Injector);\n private readonly _changeDetectorRef = inject(ChangeDetectorRef);\n protected readonly _defaultConfig = this._getDefaultConfig(defaultConfig, IDS_CHECKBOX_DEFAULT_CONFIG);\n\n private _checkboxGroup = inject(IDS_CHECKBOX_PARENT, { optional: true });\n\n private _checkboxState = signal<IdsCheckboxStateType>(IdsCheckboxState.UNCHECKED);\n public checkboxState = this._checkboxState.asReadonly();\n\n protected _inputId = computed(() => `${this.id()}-input`);\n public name = input<string | null>();\n public required = input(false, { transform: coerceBooleanAttribute });\n public readonly = input(false, { transform: coerceBooleanAttribute });\n public size = input<IdsSizeType>(this._defaultConfig.size);\n public tabIndex = input(0, { transform: coerceNumberAttribute });\n public value = input<unknown>();\n public variant = input<IdsCheckboxVariantType>(this._defaultConfig.variant);\n public checked = input<boolean, unknown>(false, { transform: coerceBooleanAttribute });\n public indeterminate = input<boolean, unknown>(false, { transform: coerceBooleanAttribute });\n public ariaLabel = input<string>('', { alias: 'aria-label' });\n public ariaLabelledby = input<string | null>(null, { alias: 'aria-labelledby' });\n public ariaDescribedby = input<string>('', { alias: 'aria-describedby' });\n\n public disabled = model(false);\n\n protected _isChecked = computed(() => this._checkboxState() === IdsCheckboxState.CHECKED);\n protected _isIndeterminate = computed(() => this._checkboxState() === IdsCheckboxState.INDETERMINATE);\n protected _isFocusable = computed(() => !this.disabled() && !this.readonly());\n protected _hostClasses = computed(() => this._getHostClasses([\n this._parentOrSelfSize(),\n this._parentOrSelfVariant(),\n this.disabled() ? 'disabled' : null,\n ]),\n );\n\n protected _nativeValue = computed(() => {\n const value = this.value();\n return isString(value) ? value : undefined;\n });\n\n private _parentOrSelfSize = computed(() => this._checkboxGroup?.size() ?? this.size());\n private _parentOrSelfVariant = computed(() => this._checkboxGroup?.variant() ?? this.variant());\n\n private _onChange: (value: unknown) => void = () => { };\n private _onTouched: () => unknown = () => { };\n\n public controlDir: NgControl | null = null;\n\n // eslint-disable-next-line @angular-eslint/no-output-native\n public readonly change = output<IdsCheckBoxChangeEvent>();\n public readonly indeterminateChange = output<boolean>();\n\n private _inputElement = viewChild.required<ElementRef<HTMLInputElement>>('inputEl');\n\n private _hintMessages = contentChildren(IdsHintMessageComponent, { descendants: true });\n private _errorMessages = contentChildren(IdsErrorMessageComponent, { descendants: true });\n\n public ngOnChanges(changes: SimpleChanges): void {\n const checkedChange = changes['checked'] as SimpleChange | undefined;\n const indeterminateChange = changes['indeterminate'] as SimpleChange | undefined;\n if (indeterminateChange || checkedChange) {\n const currentChecked = checkedChange?.currentValue;\n const currentIndeterminate = indeterminateChange?.currentValue;\n if (currentIndeterminate === true) {\n this._checkboxState.set(IdsCheckboxState.INDETERMINATE);\n } else if (currentChecked === true) {\n this._checkboxState.set(IdsCheckboxState.CHECKED);\n } else {\n this._checkboxState.set(IdsCheckboxState.UNCHECKED);\n }\n }\n }\n\n public ngOnInit(): void {\n this.controlDir = this._injector.get(NgControl, null, { self: true, optional: true });\n }\n\n public ngAfterViewInit(): void {\n if (this.indeterminate !== undefined) {\n this._syncIndeterminate(this.indeterminate());\n }\n }\n\n public focus(): void {\n this._inputElement().nativeElement.focus();\n }\n\n public writeValue(value: boolean): void {\n if (this._isIndeterminate()) {\n this._checkboxState.set(IdsCheckboxState.INDETERMINATE);\n } else {\n this._checkboxState.set(value ? IdsCheckboxState.CHECKED : IdsCheckboxState.UNCHECKED);\n }\n }\n\n public registerOnChange(fn: () => void): void {\n this._onChange = fn;\n }\n\n public registerOnTouched(fn: () => unknown): void {\n this._onTouched = fn;\n }\n\n public setDisabledState?(isDisabled: boolean): void {\n this.disabled.set(isDisabled);\n }\n\n protected _createChangeEvent(isChecked: boolean, value: unknown): IdsCheckBoxChangeEvent {\n const event = new IdsCheckBoxChangeEvent();\n event.source = this;\n event.checked = isChecked;\n event.value = value;\n return event;\n }\n\n private _emitChangeEvent(): void {\n this._onChange(this._isChecked());\n this.change.emit(this._createChangeEvent(this._isChecked(), this.value()));\n this._syncChecked(this._isChecked());\n }\n\n public toggle(): void {\n if (this._isIndeterminate()) {\n this._checkboxState.set(IdsCheckboxState.CHECKED);\n } else {\n this._checkboxState.set(this._checkboxState() === IdsCheckboxState.CHECKED ? IdsCheckboxState.UNCHECKED : IdsCheckboxState.CHECKED);\n }\n this._onChange(this._isChecked());\n }\n\n public select(): void {\n this._checkboxState.set(IdsCheckboxState.CHECKED);\n this._onChange(this._isChecked());\n }\n\n public deselect(): void {\n this._checkboxState.set(IdsCheckboxState.UNCHECKED);\n this._onChange(this._isChecked());\n }\n\n private _handleInputClick(): void {\n if (this._isIndeterminate()) {\n this._checkboxState.set(IdsCheckboxState.CHECKED);\n this.indeterminateChange.emit(this._isIndeterminate());\n } else {\n this._checkboxState.set(this._checkboxState() === IdsCheckboxState.CHECKED ? IdsCheckboxState.UNCHECKED : IdsCheckboxState.CHECKED);\n }\n\n this._emitChangeEvent();\n this._syncIndeterminate(this._isIndeterminate());\n }\n\n public onBlur(): void {\n Promise.resolve().then(() => {\n this._onTouched();\n this._changeDetectorRef.markForCheck();\n });\n }\n\n private _syncChecked(value: boolean): void {\n const nativeCheckbox = this._inputElement();\n nativeCheckbox.nativeElement.checked = value;\n }\n\n private _syncIndeterminate(value: boolean): void {\n const nativeCheckbox = this._inputElement();\n nativeCheckbox.nativeElement.indeterminate = value;\n }\n\n public onInputClick(): void {\n if (!this.readonly() && !this.disabled()) {\n this._handleInputClick();\n }\n }\n\n public onTouchTargetClick(): void {\n if (!this.readonly() && !this.disabled()) {\n this._handleInputClick();\n }\n\n if (!this.disabled()) {\n this._inputElement().nativeElement.focus();\n }\n }\n\n public get displayedMessages(): 'error' | 'hint' | undefined {\n if (this._errorMessages().length > 0 && this.controlDir?.errors) {\n return 'error';\n }\n if (this._hintMessages().length > 0) {\n return 'hint';\n }\n return undefined;\n }\n\n protected get _hasRequiredValidator(): boolean {\n const control = this.controlDir?.control;\n const attrRequired = this.required();\n\n if (!control) {\n return attrRequired;\n }\n\n return attrRequired\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","<div class=\"ids-checkbox__input-wrapper\">\n <div class=\"ids-checkbox__touch-target\" (click)=\"onTouchTargetClick()\"></div>\n <input\n #inputEl\n type=\"checkbox\"\n [class.ids-checkbox--selected]=\"_isChecked()\"\n [id]=\"_inputId()\"\n [disabled]=\"disabled()\"\n [attr.aria-checked]=\"_isIndeterminate() ? 'mixed' : null\"\n [attr.aria-label]=\"ariaLabel() || null\"\n [attr.aria-labelledby]=\"ariaLabelledby()\"\n [attr.aria-describedby]=\"ariaDescribedby()\"\n [checked]=\"_isChecked()\"\n [indeterminate]=\"_isIndeterminate()\"\n [name]=\"name()\"\n [required]=\"required()\"\n [tabIndex]=\"!_isFocusable() ? -1 : tabIndex()\"\n [value]=\"_nativeValue()\"\n (blur)=\"onBlur()\"\n (click)=\"onInputClick()\"\n (change)=\"$event.stopPropagation()\"\n />\n <div class=\"ids-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\n<div class=\"ids-checkbox__label-wrapper\">\n <div class=\"ids-checkbox__label-container\">\n <label class=\"ids-checkbox__label\" [for]=\"_inputId()\">\n <ng-content />\n @if (_hasRequiredValidator) {\n <span class=\"ids-form-field__required-marker\"></span>\n }\n </label>\n </div>\n @let messages = displayedMessages;\n @if (messages) {\n <div class=\"ids-checkbox__message-container\">\n @switch (messages) {\n @case (\"error\") {\n <ng-content select=\"ids-error-message\" />\n }\n @case (\"hint\") {\n <ng-content select=\"ids-hint-message\" />\n }\n }\n </div>\n }\n</div>\n","import { IDS_CHECKBOX_GROUP_DEFAULT_CONFIG, IDS_CHECKBOX_GROUP_DEFAULT_CONFIG_FACTORY, IdsCheckboxGroupDefaultConfig } from './checkbox-group-defaults';\nimport { IdsCheckboxComponent } from './checkbox.component';\nimport { IdsCheckBoxChangeEvent } from './types/checkbox-events.class';\nimport { IDS_CHECKBOX_GROUP_CHILD } from './types/checkbox-group-child';\nimport { IDS_CHECKBOX_PARENT, IdsCheckboxParent } from './types/checkbox-parent';\nimport { IdsCheckboxState } from './types/checkbox-state.type';\nimport { IdsCheckboxVariantType } from './types/checkbox-variant.type';\n\nimport { ChangeDetectionStrategy, Component, computed, contentChildren, effect, input, ViewEncapsulation } from '@angular/core';\nimport { ComponentBaseWithDefaults, IdsOrientation, IdsOrientationType, IdsSizeType } from '@i-cell/ids-angular/core';\n\nconst defaultConfig = IDS_CHECKBOX_GROUP_DEFAULT_CONFIG_FACTORY();\n\n@Component({\n selector: 'ids-checkbox-group',\n imports: [IdsCheckboxComponent],\n templateUrl: './checkbox-group.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'role': 'group',\n '[attr.aria-labelledby]': '_groupLabelId()',\n },\n providers: [\n {\n provide: IDS_CHECKBOX_PARENT,\n useExisting: IdsCheckboxGroupComponent,\n },\n ],\n})\nexport class IdsCheckboxGroupComponent extends ComponentBaseWithDefaults<IdsCheckboxGroupDefaultConfig> implements IdsCheckboxParent {\n protected override get _hostName(): string {\n return 'checkbox-group';\n }\n\n protected readonly _defaultConfig = this._getDefaultConfig(defaultConfig, IDS_CHECKBOX_GROUP_DEFAULT_CONFIG);\n\n private _childCheckboxes = contentChildren(IDS_CHECKBOX_GROUP_CHILD);\n\n public groupLabel = input<string>('', { alias: 'label' });\n public allowParent = input<boolean>(this._defaultConfig.allowParent);\n public parentCheckboxLabel = input<string>('', { alias: 'parentLabel' });\n public name = input<string>();\n public size = input<IdsSizeType | null>(this._defaultConfig.size);\n public variant = input<IdsCheckboxVariantType | null>(this._defaultConfig.variant);\n public orientation = input<IdsOrientationType | null>(this._defaultConfig.orientation);\n\n protected _groupLabelId = computed(() => `${this.id()}-label`);\n protected _hostClasses = computed(() => this._getHostClasses([\n this.size(),\n this.variant(),\n this.orientation(),\n ]));\n\n protected _parentCheckboxChecked = computed(() =>\n this._childCheckboxes().every((child) =>\n child.checkboxState() === IdsCheckboxState.CHECKED));\n\n protected _parentCheckboxIndeterminate = computed(() =>\n !this._parentCheckboxChecked() && this._childCheckboxes().some((child) =>\n child.checkboxState() === IdsCheckboxState.CHECKED),\n );\n\n private _invalidParentOrientation = effect(() => {\n if (this.allowParent() && this.orientation() === IdsOrientation.HORIZONTAL) {\n throw this._createHostError('Parent checkbox can be used only in vertical orientation');\n }\n });\n\n public selectAllChild(): void {\n this._childCheckboxes().forEach((child) => {\n child.select();\n });\n }\n\n public deselectAllChild(): void {\n this._childCheckboxes().forEach((child) => {\n child.deselect();\n });\n }\n\n protected _handleParentChange(event: IdsCheckBoxChangeEvent): void {\n if (event.checked) {\n this.selectAllChild();\n } else {\n this.deselectAllChild();\n }\n }\n}\n","<label class=\"ids-checkbox-group__label\" [for]=\"id()\" [id]=\"_groupLabelId()\">{{ groupLabel() }}</label>\n\n@if (allowParent()) {\n <ids-checkbox\n [checked]=\"_parentCheckboxChecked()\"\n [indeterminate]=\"_parentCheckboxIndeterminate()\"\n (change)=\"_handleParentChange($event)\"\n >{{ parentCheckboxLabel() }}</ids-checkbox\n >\n}\n\n<div class=\"ids-checkbox-group__list\">\n <ng-content select=\"ids-checkbox\" />\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["defaultConfig"],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { InjectionToken, inject, TemplateRef, Directive, ElementRef, computed, input, contentChild, ChangeDetectionStrategy, ViewEncapsulation, Component, viewChild, ApplicationRef, DOCUMENT, EnvironmentInjector, Injector, createComponent, Injectable } from '@angular/core';
3
3
  import { IdsSize, ComponentBaseWithDefaults, IdsDetectScrollableDirective } from '@i-cell/ids-angular/core';
4
+ import { OverlayContainer } from '@angular/cdk/overlay';
4
5
  import { NgTemplateOutlet } from '@angular/common';
5
6
  import { IdsIconComponent } from '@i-cell/ids-angular/icon';
6
7
  import { IdsIconButtonComponent } from '@i-cell/ids-angular/icon-button';
@@ -39,6 +40,7 @@ class IdsDialogComponent extends ComponentBaseWithDefaults {
39
40
  super(...arguments);
40
41
  this._defaultConfig = this._getDefaultConfig(defaultConfig, IDS_DIALOG_DEFAULT_CONFIG);
41
42
  this.dialog = inject(ElementRef).nativeElement;
43
+ this._overlay = inject(OverlayContainer);
42
44
  this._titleId = computed(() => `${this.id()}-title`, ...(ngDevMode ? [{ debugName: "_titleId" }] : []));
43
45
  this.size = input(this._defaultConfig.size, ...(ngDevMode ? [{ debugName: "size" }] : []));
44
46
  this.mainTitle = input.required(...(ngDevMode ? [{ debugName: "mainTitle" }] : []));
@@ -59,12 +61,35 @@ class IdsDialogComponent extends ComponentBaseWithDefaults {
59
61
  }
60
62
  open() {
61
63
  this.dialog.showModal();
64
+ const root = this._overlay.getContainerElement();
65
+ if (root && root.parentNode !== this.dialog) {
66
+ this._overlayRoot = root;
67
+ this._overlayPrevParent = root.parentNode;
68
+ this.dialog.appendChild(root);
69
+ }
62
70
  }
63
71
  close() {
64
72
  this.dialog.close();
73
+ this._restoreOverlay();
74
+ }
75
+ _onNativeClose() {
76
+ this._restoreOverlay();
77
+ }
78
+ ngOnDestroy() {
79
+ this._restoreOverlay();
80
+ }
81
+ _restoreOverlay() {
82
+ if (this._overlayRoot && this._overlayPrevParent) {
83
+ try {
84
+ this._overlayPrevParent.appendChild(this._overlayRoot);
85
+ }
86
+ catch { /* empty */ }
87
+ }
88
+ this._overlayRoot = null;
89
+ this._overlayPrevParent = null;
65
90
  }
66
91
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: IdsDialogComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
67
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.7", type: IdsDialogComponent, isStandalone: true, selector: "dialog[idsDialog]", inputs: { size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, mainTitle: { classPropertyName: "mainTitle", publicName: "mainTitle", isSignal: true, isRequired: true, transformFunction: null }, subTitle: { classPropertyName: "subTitle", publicName: "subTitle", isSignal: true, isRequired: false, transformFunction: null }, showCloseButton: { classPropertyName: "showCloseButton", publicName: "showCloseButton", isSignal: true, isRequired: false, transformFunction: null }, showBackdrop: { classPropertyName: "showBackdrop", publicName: "showBackdrop", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "cancel": "_onCancel($event)" }, properties: { "attr.aria-labelledby": "_titleId()" } }, queries: [{ propertyName: "_customHeader", first: true, predicate: IdsDialogHeaderDirective, descendants: true, isSignal: true }], exportAs: ["idsDialog"], usesInheritance: true, ngImport: i0, template: "<section class=\"ids-dialog-container\">\n <header class=\"ids-dialog-header\">\n @if (_customHeader()) {\n <ng-container [ngTemplateOutlet]=\"_customHeader()!.template\" />\n } @else {\n <div class=\"ids-dialog-header-default-content\">\n <h2 class=\"ids-dialog-title\" [id]=\"_titleId()\">{{ mainTitle() }}</h2>\n @if (subTitle()) {\n <h3 class=\"ids-dialog-subtitle\">{{ subTitle() }}</h3>\n }\n </div>\n }\n\n @if (showCloseButton()) {\n <button\n type=\"button\"\n class=\"ids-dialog-close-button\"\n idsIconButton\n appearance=\"standard\"\n size=\"compact\"\n variant=\"surface\"\n (click)=\"close()\"\n >\n <ids-icon aria-hidden=\"true\" alt=\"\" fontIcon=\"close\" />\n </button>\n }\n </header>\n <div class=\"ids-dialog-content\" [class.ids-dialog-content-scrollable]=\"scrollDetector.isScrollable()\">\n <div #scrollDetector=\"idsDetectScrollable\" idsDetectScrollable class=\"ids-dialog-content-overflow\">\n <ng-content select=\"[idsDialogContent]\" />\n </div>\n </div>\n <footer class=\"ids-dialog-actions\">\n <ng-content select=\"[idsDialogActions]\" />\n </footer>\n</section>\n", dependencies: [{ kind: "directive", type: IdsDetectScrollableDirective, selector: "[idsDetectScrollable]", exportAs: ["idsDetectScrollable"] }, { kind: "component", type: IdsIconComponent, selector: "ids-icon", inputs: ["size", "sizeCollection", "variant", "fontIcon", "svgIcon", "aria-hidden"] }, { kind: "component", type: IdsIconButtonComponent, selector: "button[idsIconButton], a[idsIconButton]", inputs: ["appearance", "size", "variant", "disabled"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
92
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.7", type: IdsDialogComponent, isStandalone: true, selector: "dialog[idsDialog]", inputs: { size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, mainTitle: { classPropertyName: "mainTitle", publicName: "mainTitle", isSignal: true, isRequired: true, transformFunction: null }, subTitle: { classPropertyName: "subTitle", publicName: "subTitle", isSignal: true, isRequired: false, transformFunction: null }, showCloseButton: { classPropertyName: "showCloseButton", publicName: "showCloseButton", isSignal: true, isRequired: false, transformFunction: null }, showBackdrop: { classPropertyName: "showBackdrop", publicName: "showBackdrop", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "cancel": "_onCancel($event)", "close": "_onNativeClose()" }, properties: { "attr.aria-labelledby": "_titleId()" } }, queries: [{ propertyName: "_customHeader", first: true, predicate: IdsDialogHeaderDirective, descendants: true, isSignal: true }], exportAs: ["idsDialog"], usesInheritance: true, ngImport: i0, template: "<section class=\"ids-dialog-container\">\n <header class=\"ids-dialog-header\">\n @if (_customHeader()) {\n <ng-container [ngTemplateOutlet]=\"_customHeader()!.template\" />\n } @else {\n <div class=\"ids-dialog-header-default-content\">\n <h2 class=\"ids-dialog-title\" [id]=\"_titleId()\">{{ mainTitle() }}</h2>\n @if (subTitle()) {\n <h3 class=\"ids-dialog-subtitle\">{{ subTitle() }}</h3>\n }\n </div>\n }\n\n @if (showCloseButton()) {\n <button\n type=\"button\"\n class=\"ids-dialog-close-button\"\n idsIconButton\n appearance=\"standard\"\n size=\"compact\"\n variant=\"surface\"\n (click)=\"close()\"\n >\n <ids-icon aria-hidden=\"true\" alt=\"\" fontIcon=\"close\" />\n </button>\n }\n </header>\n <div class=\"ids-dialog-content\" [class.ids-dialog-content-scrollable]=\"scrollDetector.isScrollable()\">\n <div #scrollDetector=\"idsDetectScrollable\" idsDetectScrollable class=\"ids-dialog-content-overflow\">\n <ng-content select=\"[idsDialogContent]\" />\n </div>\n </div>\n <footer class=\"ids-dialog-actions\">\n <ng-content select=\"[idsDialogActions]\" />\n </footer>\n</section>\n", dependencies: [{ kind: "directive", type: IdsDetectScrollableDirective, selector: "[idsDetectScrollable]", exportAs: ["idsDetectScrollable"] }, { kind: "component", type: IdsIconComponent, selector: "ids-icon", inputs: ["size", "sizeCollection", "variant", "fontIcon", "svgIcon", "aria-hidden"] }, { kind: "component", type: IdsIconButtonComponent, selector: "button[idsIconButton], a[idsIconButton]", inputs: ["appearance", "size", "variant", "disabled"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
68
93
  }
69
94
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: IdsDialogComponent, decorators: [{
70
95
  type: Component,
@@ -76,6 +101,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImpor
76
101
  ], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: 'idsDialog', host: {
77
102
  '[attr.aria-labelledby]': '_titleId()',
78
103
  '(cancel)': '_onCancel($event)',
104
+ '(close)': '_onNativeClose()',
79
105
  }, template: "<section class=\"ids-dialog-container\">\n <header class=\"ids-dialog-header\">\n @if (_customHeader()) {\n <ng-container [ngTemplateOutlet]=\"_customHeader()!.template\" />\n } @else {\n <div class=\"ids-dialog-header-default-content\">\n <h2 class=\"ids-dialog-title\" [id]=\"_titleId()\">{{ mainTitle() }}</h2>\n @if (subTitle()) {\n <h3 class=\"ids-dialog-subtitle\">{{ subTitle() }}</h3>\n }\n </div>\n }\n\n @if (showCloseButton()) {\n <button\n type=\"button\"\n class=\"ids-dialog-close-button\"\n idsIconButton\n appearance=\"standard\"\n size=\"compact\"\n variant=\"surface\"\n (click)=\"close()\"\n >\n <ids-icon aria-hidden=\"true\" alt=\"\" fontIcon=\"close\" />\n </button>\n }\n </header>\n <div class=\"ids-dialog-content\" [class.ids-dialog-content-scrollable]=\"scrollDetector.isScrollable()\">\n <div #scrollDetector=\"idsDetectScrollable\" idsDetectScrollable class=\"ids-dialog-content-overflow\">\n <ng-content select=\"[idsDialogContent]\" />\n </div>\n </div>\n <footer class=\"ids-dialog-actions\">\n <ng-content select=\"[idsDialogActions]\" />\n </footer>\n</section>\n" }]
80
106
  }] });
81
107
 
@@ -1 +1 @@
1
- {"version":3,"file":"i-cell-ids-angular-dialog.mjs","sources":["../../../projects/widgets/dialog/dialog-defaults.ts","../../../projects/widgets/dialog/dialog-header.directive.ts","../../../projects/widgets/dialog/dialog.component.ts","../../../projects/widgets/dialog/dialog.component.html","../../../projects/widgets/dialog/custom-dialog-base.ts","../../../projects/widgets/dialog/dialog.service.ts","../../../projects/widgets/dialog/i-cell-ids-angular-dialog.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { IdsSize, IdsSizeType } from '@i-cell/ids-angular/core';\n\nexport interface IdsDialogDefaultConfig {\n size?: IdsSizeType,\n showCloseButton?: boolean,\n showBackdrop?: boolean,\n}\n\nexport const IDS_DIALOG_DEFAULT_CONFIG = new InjectionToken<IdsDialogDefaultConfig>(\n 'IDS_DIALOG_DEFAULT_CONFIG',\n {\n providedIn: 'root',\n factory: IDS_DIALOG_DEFAULT_CONFIG_FACTORY,\n },\n);\n\nexport function IDS_DIALOG_DEFAULT_CONFIG_FACTORY(): Required<IdsDialogDefaultConfig> {\n return {\n size: IdsSize.COMPACT,\n showCloseButton: false,\n showBackdrop: true,\n };\n}\n\n","import { Directive, TemplateRef, inject } from '@angular/core';\n\n@Directive({\n selector: '[idsDialogHeader]',\n standalone: true,\n})\nexport class IdsDialogHeaderDirective {\n public template = inject(TemplateRef);\n}\n","import { IDS_DIALOG_DEFAULT_CONFIG, IDS_DIALOG_DEFAULT_CONFIG_FACTORY, IdsDialogDefaultConfig } from './dialog-defaults';\nimport { IdsDialogHeaderDirective } from './dialog-header.directive';\n\nimport { NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ElementRef, ViewEncapsulation, computed, contentChild, inject, input } from '@angular/core';\nimport { ComponentBaseWithDefaults, IdsDetectScrollableDirective, IdsSizeType } from '@i-cell/ids-angular/core';\nimport { IdsIconComponent } from '@i-cell/ids-angular/icon';\nimport { IdsIconButtonComponent } from '@i-cell/ids-angular/icon-button';\n\nconst defaultConfig = IDS_DIALOG_DEFAULT_CONFIG_FACTORY();\n\n@Component({\n selector: 'dialog[idsDialog]',\n imports: [\n IdsDetectScrollableDirective,\n IdsIconComponent,\n IdsIconButtonComponent,\n NgTemplateOutlet,\n ],\n templateUrl: './dialog.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n exportAs: 'idsDialog',\n host: {\n '[attr.aria-labelledby]': '_titleId()',\n '(cancel)': '_onCancel($event)',\n },\n})\nexport class IdsDialogComponent extends ComponentBaseWithDefaults<IdsDialogDefaultConfig> {\n protected override get _hostName(): string {\n return 'dialog';\n }\n\n protected readonly _defaultConfig = this._getDefaultConfig(defaultConfig, IDS_DIALOG_DEFAULT_CONFIG);\n\n public dialog = inject<ElementRef<HTMLDialogElement>>(ElementRef).nativeElement;\n\n protected _titleId = computed(() => `${this.id()}-title`);\n public size = input<IdsSizeType>(this._defaultConfig.size);\n public mainTitle = input.required<string>();\n public subTitle = input<string>();\n public showCloseButton = input<boolean>(this._defaultConfig.showCloseButton);\n public showBackdrop = input<boolean>(this._defaultConfig.showBackdrop);\n\n protected _customHeader = contentChild(IdsDialogHeaderDirective);\n\n protected _hostClasses = computed(() => this._getHostClasses([\n this.size(),\n this.showBackdrop() ? 'with-backdrop' : null,\n ]));\n\n private _onCancel(event: Event): void {\n event.preventDefault();\n }\n\n public open(): void {\n this.dialog.showModal();\n }\n\n public close(): void {\n this.dialog.close();\n }\n}\n","<section class=\"ids-dialog-container\">\n <header class=\"ids-dialog-header\">\n @if (_customHeader()) {\n <ng-container [ngTemplateOutlet]=\"_customHeader()!.template\" />\n } @else {\n <div class=\"ids-dialog-header-default-content\">\n <h2 class=\"ids-dialog-title\" [id]=\"_titleId()\">{{ mainTitle() }}</h2>\n @if (subTitle()) {\n <h3 class=\"ids-dialog-subtitle\">{{ subTitle() }}</h3>\n }\n </div>\n }\n\n @if (showCloseButton()) {\n <button\n type=\"button\"\n class=\"ids-dialog-close-button\"\n idsIconButton\n appearance=\"standard\"\n size=\"compact\"\n variant=\"surface\"\n (click)=\"close()\"\n >\n <ids-icon aria-hidden=\"true\" alt=\"\" fontIcon=\"close\" />\n </button>\n }\n </header>\n <div class=\"ids-dialog-content\" [class.ids-dialog-content-scrollable]=\"scrollDetector.isScrollable()\">\n <div #scrollDetector=\"idsDetectScrollable\" idsDetectScrollable class=\"ids-dialog-content-overflow\">\n <ng-content select=\"[idsDialogContent]\" />\n </div>\n </div>\n <footer class=\"ids-dialog-actions\">\n <ng-content select=\"[idsDialogActions]\" />\n </footer>\n</section>\n","import { IdsDialogComponent } from './dialog.component';\n\nimport { AfterViewInit, Directive, OnDestroy, viewChild } from '@angular/core';\nimport { Subject, Subscription, fromEvent } from 'rxjs';\n\n@Directive({ standalone: true })\nexport abstract class IdsCustomDialogBase<ResultType = unknown> implements AfterViewInit, OnDestroy {\n public dialogResult = new Subject<ResultType | undefined>();\n\n protected _dialog = viewChild.required(IdsDialogComponent);\n\n private _closeSub?: Subscription;\n\n public ngAfterViewInit(): void {\n this._dialog().open();\n this._closeSub = fromEvent(this._dialog().dialog, 'close').subscribe(() => {\n this._setDialogResult();\n });\n }\n\n public ngOnDestroy(): void {\n this._closeSub?.unsubscribe();\n }\n\n public close(payload?: ResultType): void {\n this._closeSub?.unsubscribe();\n this._dialog().close();\n this._setDialogResult(payload);\n }\n\n private _setDialogResult(payload?: ResultType): void {\n this.dialogResult.next(payload);\n this.dialogResult.complete();\n }\n}\n","import { IdsCustomDialogBase } from './custom-dialog-base';\n\nimport { ApplicationRef, EnvironmentInjector, Injectable, Injector, Provider, Signal, StaticProvider, Type, createComponent, inject, DOCUMENT } from '@angular/core';\nimport { Observable } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class IdsDialogService {\n private _appRef = inject(ApplicationRef);\n private _document = inject(DOCUMENT);\n private _injector = inject(EnvironmentInjector);\n\n public open<C extends IdsCustomDialogBase<R>, R = unknown>(\n component: Type<C>,\n options?: { providers?: (Provider | StaticProvider)[], inputs?: { [P in keyof C]?: C[P] extends Signal<infer T> ? T : C[P] } },\n ): Observable<R | undefined> {\n let elementInjector = undefined;\n\n if (options?.providers) {\n elementInjector = Injector.create({\n parent: this._injector,\n providers: options.providers,\n });\n }\n\n const createOptions = {\n environmentInjector: this._injector,\n ...(elementInjector && { elementInjector }),\n };\n const dialogRef = createComponent(component, createOptions);\n\n if (options?.inputs) {\n Object.keys(options.inputs).forEach((key) => dialogRef.setInput(key, options.inputs![key as keyof C]));\n }\n\n this._document.body.appendChild(dialogRef.location.nativeElement);\n\n this._appRef.attachView(dialogRef.hostView);\n\n const onClose = dialogRef.instance.dialogResult.asObservable();\n\n onClose.subscribe(() => {\n this._document.body.removeChild(dialogRef.location.nativeElement);\n dialogRef.destroy();\n },\n );\n\n return onClose;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"i-cell-ids-angular-dialog.mjs","sources":["../../../projects/widgets/dialog/dialog-defaults.ts","../../../projects/widgets/dialog/dialog-header.directive.ts","../../../projects/widgets/dialog/dialog.component.ts","../../../projects/widgets/dialog/dialog.component.html","../../../projects/widgets/dialog/custom-dialog-base.ts","../../../projects/widgets/dialog/dialog.service.ts","../../../projects/widgets/dialog/i-cell-ids-angular-dialog.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { IdsSize, IdsSizeType } from '@i-cell/ids-angular/core';\n\nexport interface IdsDialogDefaultConfig {\n size?: IdsSizeType,\n showCloseButton?: boolean,\n showBackdrop?: boolean,\n}\n\nexport const IDS_DIALOG_DEFAULT_CONFIG = new InjectionToken<IdsDialogDefaultConfig>(\n 'IDS_DIALOG_DEFAULT_CONFIG',\n {\n providedIn: 'root',\n factory: IDS_DIALOG_DEFAULT_CONFIG_FACTORY,\n },\n);\n\nexport function IDS_DIALOG_DEFAULT_CONFIG_FACTORY(): Required<IdsDialogDefaultConfig> {\n return {\n size: IdsSize.COMPACT,\n showCloseButton: false,\n showBackdrop: true,\n };\n}\n\n","import { Directive, TemplateRef, inject } from '@angular/core';\n\n@Directive({\n selector: '[idsDialogHeader]',\n standalone: true,\n})\nexport class IdsDialogHeaderDirective {\n public template = inject(TemplateRef);\n}\n","import { IDS_DIALOG_DEFAULT_CONFIG, IDS_DIALOG_DEFAULT_CONFIG_FACTORY, IdsDialogDefaultConfig } from './dialog-defaults';\nimport { IdsDialogHeaderDirective } from './dialog-header.directive';\n\nimport { OverlayContainer } from '@angular/cdk/overlay';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n ViewEncapsulation,\n computed,\n contentChild,\n inject,\n input,\n OnDestroy,\n} from '@angular/core';\nimport { ComponentBaseWithDefaults, IdsDetectScrollableDirective, IdsSizeType } from '@i-cell/ids-angular/core';\nimport { IdsIconComponent } from '@i-cell/ids-angular/icon';\nimport { IdsIconButtonComponent } from '@i-cell/ids-angular/icon-button';\n\nconst defaultConfig = IDS_DIALOG_DEFAULT_CONFIG_FACTORY();\n\n@Component({\n selector: 'dialog[idsDialog]',\n imports: [\n IdsDetectScrollableDirective,\n IdsIconComponent,\n IdsIconButtonComponent,\n NgTemplateOutlet,\n ],\n templateUrl: './dialog.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n exportAs: 'idsDialog',\n host: {\n '[attr.aria-labelledby]': '_titleId()',\n '(cancel)': '_onCancel($event)',\n '(close)': '_onNativeClose()',\n },\n})\nexport class IdsDialogComponent extends ComponentBaseWithDefaults<IdsDialogDefaultConfig> implements OnDestroy {\n protected override get _hostName(): string {\n return 'dialog';\n }\n\n protected readonly _defaultConfig = this._getDefaultConfig(defaultConfig, IDS_DIALOG_DEFAULT_CONFIG);\n\n public dialog = inject<ElementRef<HTMLDialogElement>>(ElementRef).nativeElement;\n\n private readonly _overlay = inject(OverlayContainer);\n private _overlayRoot?: HTMLElement | null;\n private _overlayPrevParent?: Node | null;\n\n protected _titleId = computed(() => `${this.id()}-title`);\n public size = input<IdsSizeType>(this._defaultConfig.size);\n public mainTitle = input.required<string>();\n public subTitle = input<string>();\n public showCloseButton = input<boolean>(this._defaultConfig.showCloseButton);\n public showBackdrop = input<boolean>(this._defaultConfig.showBackdrop);\n\n protected _customHeader = contentChild(IdsDialogHeaderDirective);\n\n protected _hostClasses = computed(() => this._getHostClasses([\n this.size(),\n this.showBackdrop() ? 'with-backdrop' : null,\n ]));\n\n protected _onCancel(event: Event): void {\n event.preventDefault();\n }\n\n public open(): void {\n this.dialog.showModal();\n\n const root = this._overlay.getContainerElement();\n if (root && root.parentNode !== this.dialog) {\n this._overlayRoot = root;\n this._overlayPrevParent = root.parentNode;\n this.dialog.appendChild(root);\n }\n }\n\n public close(): void {\n this.dialog.close();\n this._restoreOverlay();\n }\n\n protected _onNativeClose(): void {\n this._restoreOverlay();\n }\n\n public ngOnDestroy(): void {\n this._restoreOverlay();\n }\n\n private _restoreOverlay(): void {\n if (this._overlayRoot && this._overlayPrevParent) {\n try {\n this._overlayPrevParent.appendChild(this._overlayRoot);\n } catch { /* empty */ }\n }\n this._overlayRoot = null;\n this._overlayPrevParent = null;\n }\n}\n","<section class=\"ids-dialog-container\">\n <header class=\"ids-dialog-header\">\n @if (_customHeader()) {\n <ng-container [ngTemplateOutlet]=\"_customHeader()!.template\" />\n } @else {\n <div class=\"ids-dialog-header-default-content\">\n <h2 class=\"ids-dialog-title\" [id]=\"_titleId()\">{{ mainTitle() }}</h2>\n @if (subTitle()) {\n <h3 class=\"ids-dialog-subtitle\">{{ subTitle() }}</h3>\n }\n </div>\n }\n\n @if (showCloseButton()) {\n <button\n type=\"button\"\n class=\"ids-dialog-close-button\"\n idsIconButton\n appearance=\"standard\"\n size=\"compact\"\n variant=\"surface\"\n (click)=\"close()\"\n >\n <ids-icon aria-hidden=\"true\" alt=\"\" fontIcon=\"close\" />\n </button>\n }\n </header>\n <div class=\"ids-dialog-content\" [class.ids-dialog-content-scrollable]=\"scrollDetector.isScrollable()\">\n <div #scrollDetector=\"idsDetectScrollable\" idsDetectScrollable class=\"ids-dialog-content-overflow\">\n <ng-content select=\"[idsDialogContent]\" />\n </div>\n </div>\n <footer class=\"ids-dialog-actions\">\n <ng-content select=\"[idsDialogActions]\" />\n </footer>\n</section>\n","import { IdsDialogComponent } from './dialog.component';\n\nimport { AfterViewInit, Directive, OnDestroy, viewChild } from '@angular/core';\nimport { Subject, Subscription, fromEvent } from 'rxjs';\n\n@Directive({ standalone: true })\nexport abstract class IdsCustomDialogBase<ResultType = unknown> implements AfterViewInit, OnDestroy {\n public dialogResult = new Subject<ResultType | undefined>();\n\n protected _dialog = viewChild.required(IdsDialogComponent);\n\n private _closeSub?: Subscription;\n\n public ngAfterViewInit(): void {\n this._dialog().open();\n this._closeSub = fromEvent(this._dialog().dialog, 'close').subscribe(() => {\n this._setDialogResult();\n });\n }\n\n public ngOnDestroy(): void {\n this._closeSub?.unsubscribe();\n }\n\n public close(payload?: ResultType): void {\n this._closeSub?.unsubscribe();\n this._dialog().close();\n this._setDialogResult(payload);\n }\n\n private _setDialogResult(payload?: ResultType): void {\n this.dialogResult.next(payload);\n this.dialogResult.complete();\n }\n}\n","import { IdsCustomDialogBase } from './custom-dialog-base';\n\nimport { ApplicationRef, EnvironmentInjector, Injectable, Injector, Provider, Signal, StaticProvider, Type, createComponent, inject, DOCUMENT } from '@angular/core';\nimport { Observable } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class IdsDialogService {\n private _appRef = inject(ApplicationRef);\n private _document = inject(DOCUMENT);\n private _injector = inject(EnvironmentInjector);\n\n public open<C extends IdsCustomDialogBase<R>, R = unknown>(\n component: Type<C>,\n options?: { providers?: (Provider | StaticProvider)[], inputs?: { [P in keyof C]?: C[P] extends Signal<infer T> ? T : C[P] } },\n ): Observable<R | undefined> {\n let elementInjector = undefined;\n\n if (options?.providers) {\n elementInjector = Injector.create({\n parent: this._injector,\n providers: options.providers,\n });\n }\n\n const createOptions = {\n environmentInjector: this._injector,\n ...(elementInjector && { elementInjector }),\n };\n const dialogRef = createComponent(component, createOptions);\n\n if (options?.inputs) {\n Object.keys(options.inputs).forEach((key) => dialogRef.setInput(key, options.inputs![key as keyof C]));\n }\n\n this._document.body.appendChild(dialogRef.location.nativeElement);\n\n this._appRef.attachView(dialogRef.hostView);\n\n const onClose = dialogRef.instance.dialogResult.asObservable();\n\n onClose.subscribe(() => {\n this._document.body.removeChild(dialogRef.location.nativeElement);\n dialogRef.destroy();\n },\n );\n\n return onClose;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -46,6 +46,7 @@ class IdsRadioComponent extends ComponentBase {
46
46
  this._name = computed(() => this._group?.name(), ...(ngDevMode ? [{ debugName: "_name" }] : []));
47
47
  this._required = computed(() => this._group?.required(), ...(ngDevMode ? [{ debugName: "_required" }] : []));
48
48
  this._ariaChecked = computed(() => this.selected(), ...(ngDevMode ? [{ debugName: "_ariaChecked" }] : []));
49
+ this._inputId = computed(() => (this.inputId() === this._uniqueId ? `${this._uniqueId}-native` : this.inputId()), ...(ngDevMode ? [{ debugName: "_inputId" }] : []));
49
50
  this._hostClasses = computed(() => this._getHostClasses([
50
51
  this._group?.variant() ?? null,
51
52
  this._group?.labelPosition() ?? null,
@@ -84,11 +85,11 @@ class IdsRadioComponent extends ComponentBase {
84
85
  this._inputElement().nativeElement.focus(options);
85
86
  }
86
87
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: IdsRadioComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
87
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "20.1.7", type: IdsRadioComponent, isStandalone: true, selector: "ids-radio", inputs: { inputId: { classPropertyName: "inputId", publicName: "inputId", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: true, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "aria-label", isSignal: true, isRequired: false, transformFunction: null }, ariaLabelledBy: { classPropertyName: "ariaLabelledBy", publicName: "aria-labelledby", isSignal: true, isRequired: false, transformFunction: null }, ariaDescribedBy: { classPropertyName: "ariaDescribedBy", publicName: "aria-describedby", isSignal: true, isRequired: false, transformFunction: null }, tabIndex: { classPropertyName: "tabIndex", publicName: "tabIndex", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { changes: "changes" }, viewQueries: [{ propertyName: "_inputElement", first: true, predicate: ["input"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"ids-radio__input-wrapper\">\n <div class=\"ids-radio__touch-target\" (click)=\"_touchTargetClick()\"></div>\n <input\n #input\n class=\"ids-radio__native-control\"\n type=\"radio\"\n [id]=\"inputId()\"\n [checked]=\"selected()\"\n [disabled]=\"_isDisabled()\"\n [attr.name]=\"_name()\"\n [attr.value]=\"value()\"\n [required]=\"_required()\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-labelledby]=\"ariaLabelledBy()\"\n [attr.aria-describedby]=\"ariaDescribedBy()\"\n [attr.aria-checked]=\"_ariaChecked()\"\n (change)=\"onChange()\"\n />\n <div class=\"ids-radio__inner-circle\" (click)=\"_innerCircleClick()\"></div>\n</div>\n<label class=\"ids-radio__label\" [for]=\"inputId()\">\n <ng-content />\n</label>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
88
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "20.1.7", type: IdsRadioComponent, isStandalone: true, selector: "ids-radio", inputs: { inputId: { classPropertyName: "inputId", publicName: "inputId", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: true, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "aria-label", isSignal: true, isRequired: false, transformFunction: null }, ariaLabelledBy: { classPropertyName: "ariaLabelledBy", publicName: "aria-labelledby", isSignal: true, isRequired: false, transformFunction: null }, ariaDescribedBy: { classPropertyName: "ariaDescribedBy", publicName: "aria-describedby", isSignal: true, isRequired: false, transformFunction: null }, tabIndex: { classPropertyName: "tabIndex", publicName: "tabIndex", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { changes: "changes" }, viewQueries: [{ propertyName: "_inputElement", first: true, predicate: ["input"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"ids-radio__input-wrapper\">\n <div class=\"ids-radio__touch-target\" (click)=\"_touchTargetClick()\"></div>\n <input\n #input\n class=\"ids-radio__native-control\"\n type=\"radio\"\n [id]=\"_inputId()\"\n [checked]=\"selected()\"\n [disabled]=\"_isDisabled()\"\n [attr.name]=\"_name()\"\n [attr.value]=\"value()\"\n [required]=\"_required()\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-labelledby]=\"ariaLabelledBy()\"\n [attr.aria-describedby]=\"ariaDescribedBy()\"\n [attr.aria-checked]=\"_ariaChecked()\"\n (change)=\"onChange()\"\n />\n <div class=\"ids-radio__inner-circle\" (click)=\"_innerCircleClick()\"></div>\n</div>\n<label class=\"ids-radio__label\" [for]=\"_inputId()\">\n <ng-content />\n</label>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
88
89
  }
89
90
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: IdsRadioComponent, decorators: [{
90
91
  type: Component,
91
- args: [{ selector: 'ids-radio', imports: [], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"ids-radio__input-wrapper\">\n <div class=\"ids-radio__touch-target\" (click)=\"_touchTargetClick()\"></div>\n <input\n #input\n class=\"ids-radio__native-control\"\n type=\"radio\"\n [id]=\"inputId()\"\n [checked]=\"selected()\"\n [disabled]=\"_isDisabled()\"\n [attr.name]=\"_name()\"\n [attr.value]=\"value()\"\n [required]=\"_required()\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-labelledby]=\"ariaLabelledBy()\"\n [attr.aria-describedby]=\"ariaDescribedBy()\"\n [attr.aria-checked]=\"_ariaChecked()\"\n (change)=\"onChange()\"\n />\n <div class=\"ids-radio__inner-circle\" (click)=\"_innerCircleClick()\"></div>\n</div>\n<label class=\"ids-radio__label\" [for]=\"inputId()\">\n <ng-content />\n</label>\n" }]
92
+ args: [{ selector: 'ids-radio', imports: [], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"ids-radio__input-wrapper\">\n <div class=\"ids-radio__touch-target\" (click)=\"_touchTargetClick()\"></div>\n <input\n #input\n class=\"ids-radio__native-control\"\n type=\"radio\"\n [id]=\"_inputId()\"\n [checked]=\"selected()\"\n [disabled]=\"_isDisabled()\"\n [attr.name]=\"_name()\"\n [attr.value]=\"value()\"\n [required]=\"_required()\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-labelledby]=\"ariaLabelledBy()\"\n [attr.aria-describedby]=\"ariaDescribedBy()\"\n [attr.aria-checked]=\"_ariaChecked()\"\n (change)=\"onChange()\"\n />\n <div class=\"ids-radio__inner-circle\" (click)=\"_innerCircleClick()\"></div>\n</div>\n<label class=\"ids-radio__label\" [for]=\"_inputId()\">\n <ng-content />\n</label>\n" }]
92
93
  }] });
93
94
 
94
95
  const defaultConfig = IDS_RADIO_DEFAULT_CONFIG_FACTORY();
@@ -1 +1 @@
1
- {"version":3,"file":"i-cell-ids-angular-radio.mjs","sources":["../../../projects/widgets/radio/types/radio-variant.type.ts","../../../projects/widgets/radio/types/radio-events.class.ts","../../../projects/widgets/radio/radio-defaults.ts","../../../projects/widgets/radio/radio.component.ts","../../../projects/widgets/radio/radio.component.html","../../../projects/widgets/radio/radio-group.directive.ts","../../../projects/widgets/radio/i-cell-ids-angular-radio.ts"],"sourcesContent":["export const IdsRadioVariant = {\n SURFACE: 'surface',\n LIGHT: 'light',\n DARK: 'dark',\n} as const;\n\nexport type IdsRadioVariantType = (typeof IdsRadioVariant)[keyof typeof IdsRadioVariant];\n","import { IdsRadioComponent } from '../radio.component';\n\nexport class IdsRadioChangeEvent {\n constructor(\n public source: IdsRadioComponent,\n public value: unknown,\n ) {}\n}\n","import { IdsRadioVariant, IdsRadioVariantType } from './types/radio-variant.type';\n\nimport { InjectionToken } from '@angular/core';\nimport { IdsOrientation, IdsOrientationType, IdsPosition, IdsPositionType, IdsSize, IdsSizeType } from '@i-cell/ids-angular/core';\n\nexport interface IdsRadioDefaultConfig {\n size?: IdsSizeType\n variant?: IdsRadioVariantType\n orientation?: IdsOrientationType\n labelPosition?: IdsPositionType\n}\n\nexport const IDS_RADIO_DEFAULT_CONFIG = new InjectionToken<IdsRadioDefaultConfig>(\n 'IDS_RADIO_DEFAULT_CONFIG',\n {\n providedIn: 'root',\n factory: IDS_RADIO_DEFAULT_CONFIG_FACTORY,\n },\n);\n\nexport function IDS_RADIO_DEFAULT_CONFIG_FACTORY(): Required<IdsRadioDefaultConfig> {\n return {\n size: IdsSize.COMPACT,\n variant: IdsRadioVariant.SURFACE,\n orientation: IdsOrientation.VERTICAL,\n labelPosition: IdsPosition.RIGHT,\n };\n}\n","import { IdsRadioGroupDirective } from './radio-group.directive';\nimport { IdsRadioChangeEvent } from './types/radio-events.class';\n\nimport { ChangeDetectionStrategy, Component, computed, ElementRef, inject, input, OnInit, output, signal, viewChild, ViewEncapsulation } from '@angular/core';\nimport { coerceNumberAttribute, ComponentBase } from '@i-cell/ids-angular/core';\n\n@Component({\n selector: 'ids-radio',\n imports: [],\n templateUrl: './radio.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class IdsRadioComponent extends ComponentBase implements OnInit {\n protected override get _hostName(): string {\n return 'radio';\n }\n\n private _group = inject(IdsRadioGroupDirective, { optional: true, skipSelf: true });\n\n public selected = signal<boolean>(false);\n\n public inputId = input<string>(this._uniqueId);\n public value = input.required<unknown>();\n public ariaLabel = input<string>('', { alias: 'aria-label' });\n public ariaLabelledBy = input<string>('', { alias: 'aria-labelledby' });\n public ariaDescribedBy = input<string>('', { alias: 'aria-describedby' });\n public tabIndex = input<number, unknown>(0, { transform: coerceNumberAttribute });\n public disabled = input<boolean>(false);\n\n protected _isDisabled = computed(() => this.disabled() || this._group?.isDisabled());\n protected _name = computed(() => this._group?.name());\n protected _required = computed(() => this._group?.required());\n protected _ariaChecked = computed(() => this.selected());\n protected _hostClasses = computed(() => this._getHostClasses([\n this._group?.variant() ?? null,\n this._group?.labelPosition() ?? null,\n this._isDisabled() ? 'disabled' : null,\n ]));\n\n private _inputElement = viewChild.required<ElementRef<HTMLButtonElement>>('input');\n\n public readonly changes = output<IdsRadioChangeEvent>();\n\n public ngOnInit(): void {\n if (!this._group) {\n throw this._createHostError('component must be direct child of a radio group');\n }\n if (this._group.isItemPreSelectedByValue(this.value())) {\n this.selected.set(true);\n }\n }\n\n public onChange(): void {\n this.changes.emit(new IdsRadioChangeEvent(this, this.value()));\n }\n\n protected _touchTargetClick(): void {\n if (!this.selected() && !this._isDisabled()) {\n this._inputElement().nativeElement.focus();\n this.onChange();\n }\n }\n\n protected _innerCircleClick(): void {\n if (!this.selected() && !this._isDisabled()) {\n this._inputElement().nativeElement.focus();\n this.onChange();\n }\n }\n\n public focus(options?: FocusOptions): void {\n this._inputElement().nativeElement.focus(options);\n }\n}\n","<div class=\"ids-radio__input-wrapper\">\n <div class=\"ids-radio__touch-target\" (click)=\"_touchTargetClick()\"></div>\n <input\n #input\n class=\"ids-radio__native-control\"\n type=\"radio\"\n [id]=\"inputId()\"\n [checked]=\"selected()\"\n [disabled]=\"_isDisabled()\"\n [attr.name]=\"_name()\"\n [attr.value]=\"value()\"\n [required]=\"_required()\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-labelledby]=\"ariaLabelledBy()\"\n [attr.aria-describedby]=\"ariaDescribedBy()\"\n [attr.aria-checked]=\"_ariaChecked()\"\n (change)=\"onChange()\"\n />\n <div class=\"ids-radio__inner-circle\" (click)=\"_innerCircleClick()\"></div>\n</div>\n<label class=\"ids-radio__label\" [for]=\"inputId()\">\n <ng-content />\n</label>\n","import { IDS_RADIO_DEFAULT_CONFIG, IDS_RADIO_DEFAULT_CONFIG_FACTORY, IdsRadioDefaultConfig } from './radio-defaults';\nimport { IdsRadioComponent } from './radio.component';\nimport { IdsRadioChangeEvent } from './types/radio-events.class';\nimport { IdsRadioVariantType } from './types/radio-variant.type';\n\nimport { SelectionModel } from '@angular/cdk/collections';\nimport { AfterContentChecked, computed, contentChildren, Directive, forwardRef, Input, input, isDevMode, OnInit, output, signal } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { coerceBooleanAttribute, IdsOrientation, IdsOrientationType, IdsPositionType, IdsSizeType, IdsVerticalPosition, ComponentBaseWithDefaults } from '@i-cell/ids-angular/core';\n\nconst defaultConfig = IDS_RADIO_DEFAULT_CONFIG_FACTORY();\n\n@Directive({\n selector: 'ids-radio-group',\n standalone: true,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => IdsRadioGroupDirective),\n multi: true,\n },\n ],\n host: {\n '(keydown)': '_handleKeyDown($event)',\n },\n})\nexport class IdsRadioGroupDirective\n extends ComponentBaseWithDefaults<IdsRadioDefaultConfig>\n implements OnInit, AfterContentChecked, ControlValueAccessor {\n protected override get _hostName(): string {\n return 'radio-group';\n }\n\n protected readonly _defaultConfig = this._getDefaultConfig(defaultConfig, IDS_RADIO_DEFAULT_CONFIG);\n\n private _selectionModel?: SelectionModel<IdsRadioComponent>;\n private _rawValue: unknown;\n private _items = contentChildren<IdsRadioComponent>(IdsRadioComponent, { descendants: true });\n\n public name = input.required<string>();\n public required = input<boolean, unknown>(false, { transform: coerceBooleanAttribute });\n public size = input<IdsSizeType>(this._defaultConfig.size);\n public variant = input<IdsRadioVariantType>(this._defaultConfig.variant);\n public orientation = input<IdsOrientationType>(this._defaultConfig.orientation);\n public labelPosition = input<IdsPositionType>(this._defaultConfig.labelPosition);\n public isDisabled = signal<boolean>(false);\n\n protected _hostClasses = computed(() => this._getHostClasses([\n this.size(),\n this.orientation(),\n this.labelPosition(),\n ]));\n\n private _onChange: (value: unknown) => void = () => {};\n private _onTouched: () => unknown = () => {};\n\n @Input() public valueCompareFn?: (o1: IdsRadioComponent, o2: IdsRadioComponent) => boolean;\n @Input({ transform: coerceBooleanAttribute })\n set disabled(value: boolean) {\n if (value !== this.disabled) {\n this.isDisabled.set(value);\n }\n }\n\n public readonly itemChanges = output<IdsRadioChangeEvent>();\n\n private _handleKeyDown(event: KeyboardEvent): void {\n const navigationKeys: Record<IdsOrientationType, Set<string>> = {\n // eslint-disable-next-line @stylistic/js/array-bracket-newline, @stylistic/js/array-element-newline\n horizontal: new Set(['ArrowLeft', 'ArrowRight', 'Enter', ' ']),\n // eslint-disable-next-line @stylistic/js/array-bracket-newline, @stylistic/js/array-element-newline\n vertical: new Set(['ArrowUp', 'ArrowDown', 'Enter', ' ']),\n };\n\n const orientation = this.orientation();\n\n if (navigationKeys.horizontal.has(event.key) || navigationKeys.vertical.has(event.key)) {\n event.preventDefault();\n }\n if (!navigationKeys[orientation].has(event.key)) {\n return;\n }\n\n const items = this._items();\n const target = event.target as HTMLButtonElement;\n const inputId = target.id;\n const index = items.findIndex((item) => item.inputId() === inputId);\n\n switch (event.key) {\n case 'ArrowUp': {\n if (orientation === IdsOrientation.HORIZONTAL) {\n return;\n }\n if (index === 0) {\n return;\n }\n const prevItem = items[index - 1];\n prevItem.focus();\n break;\n }\n case 'ArrowLeft': {\n if (orientation === IdsOrientation.VERTICAL) {\n return;\n }\n if (index === 0) {\n return;\n }\n const prevItem = items[index - 1];\n prevItem.focus();\n break;\n }\n case 'ArrowDown': {\n if (orientation === IdsOrientation.HORIZONTAL) {\n return;\n }\n if (index === (items.length - 1)) {\n return;\n }\n const nextItem = items[index + 1];\n nextItem.focus();\n break;\n }\n case 'ArrowRight': {\n if (orientation === IdsOrientation.VERTICAL) {\n return;\n }\n if (index === (items.length - 1)) {\n return;\n }\n const nextItem = items[index + 1];\n nextItem.focus();\n break;\n }\n case 'Enter':\n case ' ': {\n items[index].onChange();\n break;\n }\n default:\n return;\n }\n }\n\n public ngOnInit(): void {\n this._selectionModel = new SelectionModel<IdsRadioComponent>(false, undefined, false, this.valueCompareFn);\n\n if (this._hasInvalidLabelPosition()) {\n throw this._createHostError('invalid `orientation` + `labelPosition` combination.');\n }\n }\n\n public ngAfterContentChecked(): void {\n const items = this._items();\n const minItemCount = 2;\n\n if (isDevMode() && (items.length < minItemCount)) {\n throw this._createHostError('invalid count of radio items. Minimum item count is 2.');\n }\n\n this._selectionModel?.select(...this._items().filter((item) => item.selected()));\n this._subscribeItemChanges();\n }\n\n public writeValue(value: unknown | unknown[]): void {\n this._setSelectionByValue(value);\n }\n\n public registerOnChange(fn: () => void): void {\n this._onChange = fn;\n }\n\n public registerOnTouched(fn: () => unknown): void {\n this._onTouched = fn;\n }\n\n public setDisabledState?(isDisabled: boolean): void {\n this.isDisabled.set(isDisabled);\n }\n\n private _subscribeItemChanges(): void {\n this._items().forEach((item) => {\n item.changes.subscribe(\n (change) => {\n this._handleItemChanges(change);\n },\n );\n });\n }\n\n private _handleItemChanges(change: IdsRadioChangeEvent): void {\n const { source } = change;\n this._clearSelection();\n source.selected.set(true);\n this._selectionModel?.select(source);\n this.itemChanges.emit(change);\n this._handleChange();\n this._onTouched();\n }\n\n private _setSelectionByValue(value: unknown | unknown[]): void {\n this._rawValue = value;\n\n if (this._items().length === 0) {\n return;\n }\n\n this._clearSelection();\n this._selectValue(value);\n }\n\n private _selectValue(value: unknown): void {\n const correspondingItem = this._items().find((item) => item.value() != null && item.value() === value);\n if (correspondingItem) {\n correspondingItem.selected.set(true);\n this._selectionModel?.select(correspondingItem);\n }\n }\n\n private _clearSelection(): void {\n this._selectionModel?.clear();\n this._items().forEach((item) => {\n item.selected.set(false);\n });\n }\n\n private _handleChange(): void {\n const selectionModelValues = this._selectionModel?.selected?.map((item) => item.value());\n this._onChange(selectionModelValues?.[0]);\n }\n\n public isItemPreSelectedByValue(itemValue: unknown): boolean {\n if (this._rawValue === undefined) {\n return false;\n }\n\n return itemValue === this._rawValue;\n }\n\n private _hasInvalidLabelPosition(): boolean {\n const orientation = this.orientation();\n const labelPosition = this.labelPosition();\n\n return (orientation === IdsOrientation.VERTICAL && Object.values(IdsVerticalPosition).some((pos) => pos === labelPosition));\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"i-cell-ids-angular-radio.mjs","sources":["../../../projects/widgets/radio/types/radio-variant.type.ts","../../../projects/widgets/radio/types/radio-events.class.ts","../../../projects/widgets/radio/radio-defaults.ts","../../../projects/widgets/radio/radio.component.ts","../../../projects/widgets/radio/radio.component.html","../../../projects/widgets/radio/radio-group.directive.ts","../../../projects/widgets/radio/i-cell-ids-angular-radio.ts"],"sourcesContent":["export const IdsRadioVariant = {\n SURFACE: 'surface',\n LIGHT: 'light',\n DARK: 'dark',\n} as const;\n\nexport type IdsRadioVariantType = (typeof IdsRadioVariant)[keyof typeof IdsRadioVariant];\n","import { IdsRadioComponent } from '../radio.component';\n\nexport class IdsRadioChangeEvent {\n constructor(\n public source: IdsRadioComponent,\n public value: unknown,\n ) {}\n}\n","import { IdsRadioVariant, IdsRadioVariantType } from './types/radio-variant.type';\n\nimport { InjectionToken } from '@angular/core';\nimport { IdsOrientation, IdsOrientationType, IdsPosition, IdsPositionType, IdsSize, IdsSizeType } from '@i-cell/ids-angular/core';\n\nexport interface IdsRadioDefaultConfig {\n size?: IdsSizeType\n variant?: IdsRadioVariantType\n orientation?: IdsOrientationType\n labelPosition?: IdsPositionType\n}\n\nexport const IDS_RADIO_DEFAULT_CONFIG = new InjectionToken<IdsRadioDefaultConfig>(\n 'IDS_RADIO_DEFAULT_CONFIG',\n {\n providedIn: 'root',\n factory: IDS_RADIO_DEFAULT_CONFIG_FACTORY,\n },\n);\n\nexport function IDS_RADIO_DEFAULT_CONFIG_FACTORY(): Required<IdsRadioDefaultConfig> {\n return {\n size: IdsSize.COMPACT,\n variant: IdsRadioVariant.SURFACE,\n orientation: IdsOrientation.VERTICAL,\n labelPosition: IdsPosition.RIGHT,\n };\n}\n","import { IdsRadioGroupDirective } from './radio-group.directive';\nimport { IdsRadioChangeEvent } from './types/radio-events.class';\n\nimport { ChangeDetectionStrategy, Component, computed, ElementRef, inject, input, OnInit, output, signal, viewChild, ViewEncapsulation } from '@angular/core';\nimport { coerceNumberAttribute, ComponentBase } from '@i-cell/ids-angular/core';\n\n@Component({\n selector: 'ids-radio',\n imports: [],\n templateUrl: './radio.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class IdsRadioComponent extends ComponentBase implements OnInit {\n protected override get _hostName(): string {\n return 'radio';\n }\n\n private _group = inject(IdsRadioGroupDirective, { optional: true, skipSelf: true });\n\n public selected = signal<boolean>(false);\n\n public inputId = input<string>(this._uniqueId);\n public value = input.required<unknown>();\n public ariaLabel = input<string>('', { alias: 'aria-label' });\n public ariaLabelledBy = input<string>('', { alias: 'aria-labelledby' });\n public ariaDescribedBy = input<string>('', { alias: 'aria-describedby' });\n public tabIndex = input<number, unknown>(0, { transform: coerceNumberAttribute });\n public disabled = input<boolean>(false);\n\n protected _isDisabled = computed(() => this.disabled() || this._group?.isDisabled());\n protected _name = computed(() => this._group?.name());\n protected _required = computed(() => this._group?.required());\n protected _ariaChecked = computed(() => this.selected());\n protected _inputId = computed(() => (this.inputId() === this._uniqueId ? `${this._uniqueId}-native` : this.inputId()));\n protected _hostClasses = computed(() => this._getHostClasses([\n this._group?.variant() ?? null,\n this._group?.labelPosition() ?? null,\n this._isDisabled() ? 'disabled' : null,\n ]));\n\n private _inputElement = viewChild.required<ElementRef<HTMLButtonElement>>('input');\n\n public readonly changes = output<IdsRadioChangeEvent>();\n\n public ngOnInit(): void {\n if (!this._group) {\n throw this._createHostError('component must be direct child of a radio group');\n }\n if (this._group.isItemPreSelectedByValue(this.value())) {\n this.selected.set(true);\n }\n }\n\n public onChange(): void {\n this.changes.emit(new IdsRadioChangeEvent(this, this.value()));\n }\n\n protected _touchTargetClick(): void {\n if (!this.selected() && !this._isDisabled()) {\n this._inputElement().nativeElement.focus();\n this.onChange();\n }\n }\n\n protected _innerCircleClick(): void {\n if (!this.selected() && !this._isDisabled()) {\n this._inputElement().nativeElement.focus();\n this.onChange();\n }\n }\n\n public focus(options?: FocusOptions): void {\n this._inputElement().nativeElement.focus(options);\n }\n}\n","<div class=\"ids-radio__input-wrapper\">\n <div class=\"ids-radio__touch-target\" (click)=\"_touchTargetClick()\"></div>\n <input\n #input\n class=\"ids-radio__native-control\"\n type=\"radio\"\n [id]=\"_inputId()\"\n [checked]=\"selected()\"\n [disabled]=\"_isDisabled()\"\n [attr.name]=\"_name()\"\n [attr.value]=\"value()\"\n [required]=\"_required()\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-labelledby]=\"ariaLabelledBy()\"\n [attr.aria-describedby]=\"ariaDescribedBy()\"\n [attr.aria-checked]=\"_ariaChecked()\"\n (change)=\"onChange()\"\n />\n <div class=\"ids-radio__inner-circle\" (click)=\"_innerCircleClick()\"></div>\n</div>\n<label class=\"ids-radio__label\" [for]=\"_inputId()\">\n <ng-content />\n</label>\n","import { IDS_RADIO_DEFAULT_CONFIG, IDS_RADIO_DEFAULT_CONFIG_FACTORY, IdsRadioDefaultConfig } from './radio-defaults';\nimport { IdsRadioComponent } from './radio.component';\nimport { IdsRadioChangeEvent } from './types/radio-events.class';\nimport { IdsRadioVariantType } from './types/radio-variant.type';\n\nimport { SelectionModel } from '@angular/cdk/collections';\nimport { AfterContentChecked, computed, contentChildren, Directive, forwardRef, Input, input, isDevMode, OnInit, output, signal } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { coerceBooleanAttribute, IdsOrientation, IdsOrientationType, IdsPositionType, IdsSizeType, IdsVerticalPosition, ComponentBaseWithDefaults } from '@i-cell/ids-angular/core';\n\nconst defaultConfig = IDS_RADIO_DEFAULT_CONFIG_FACTORY();\n\n@Directive({\n selector: 'ids-radio-group',\n standalone: true,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => IdsRadioGroupDirective),\n multi: true,\n },\n ],\n host: {\n '(keydown)': '_handleKeyDown($event)',\n },\n})\nexport class IdsRadioGroupDirective\n extends ComponentBaseWithDefaults<IdsRadioDefaultConfig>\n implements OnInit, AfterContentChecked, ControlValueAccessor {\n protected override get _hostName(): string {\n return 'radio-group';\n }\n\n protected readonly _defaultConfig = this._getDefaultConfig(defaultConfig, IDS_RADIO_DEFAULT_CONFIG);\n\n private _selectionModel?: SelectionModel<IdsRadioComponent>;\n private _rawValue: unknown;\n private _items = contentChildren<IdsRadioComponent>(IdsRadioComponent, { descendants: true });\n\n public name = input.required<string>();\n public required = input<boolean, unknown>(false, { transform: coerceBooleanAttribute });\n public size = input<IdsSizeType>(this._defaultConfig.size);\n public variant = input<IdsRadioVariantType>(this._defaultConfig.variant);\n public orientation = input<IdsOrientationType>(this._defaultConfig.orientation);\n public labelPosition = input<IdsPositionType>(this._defaultConfig.labelPosition);\n public isDisabled = signal<boolean>(false);\n\n protected _hostClasses = computed(() => this._getHostClasses([\n this.size(),\n this.orientation(),\n this.labelPosition(),\n ]));\n\n private _onChange: (value: unknown) => void = () => {};\n private _onTouched: () => unknown = () => {};\n\n @Input() public valueCompareFn?: (o1: IdsRadioComponent, o2: IdsRadioComponent) => boolean;\n @Input({ transform: coerceBooleanAttribute })\n set disabled(value: boolean) {\n if (value !== this.disabled) {\n this.isDisabled.set(value);\n }\n }\n\n public readonly itemChanges = output<IdsRadioChangeEvent>();\n\n private _handleKeyDown(event: KeyboardEvent): void {\n const navigationKeys: Record<IdsOrientationType, Set<string>> = {\n // eslint-disable-next-line @stylistic/js/array-bracket-newline, @stylistic/js/array-element-newline\n horizontal: new Set(['ArrowLeft', 'ArrowRight', 'Enter', ' ']),\n // eslint-disable-next-line @stylistic/js/array-bracket-newline, @stylistic/js/array-element-newline\n vertical: new Set(['ArrowUp', 'ArrowDown', 'Enter', ' ']),\n };\n\n const orientation = this.orientation();\n\n if (navigationKeys.horizontal.has(event.key) || navigationKeys.vertical.has(event.key)) {\n event.preventDefault();\n }\n if (!navigationKeys[orientation].has(event.key)) {\n return;\n }\n\n const items = this._items();\n const target = event.target as HTMLButtonElement;\n const inputId = target.id;\n const index = items.findIndex((item) => item.inputId() === inputId);\n\n switch (event.key) {\n case 'ArrowUp': {\n if (orientation === IdsOrientation.HORIZONTAL) {\n return;\n }\n if (index === 0) {\n return;\n }\n const prevItem = items[index - 1];\n prevItem.focus();\n break;\n }\n case 'ArrowLeft': {\n if (orientation === IdsOrientation.VERTICAL) {\n return;\n }\n if (index === 0) {\n return;\n }\n const prevItem = items[index - 1];\n prevItem.focus();\n break;\n }\n case 'ArrowDown': {\n if (orientation === IdsOrientation.HORIZONTAL) {\n return;\n }\n if (index === (items.length - 1)) {\n return;\n }\n const nextItem = items[index + 1];\n nextItem.focus();\n break;\n }\n case 'ArrowRight': {\n if (orientation === IdsOrientation.VERTICAL) {\n return;\n }\n if (index === (items.length - 1)) {\n return;\n }\n const nextItem = items[index + 1];\n nextItem.focus();\n break;\n }\n case 'Enter':\n case ' ': {\n items[index].onChange();\n break;\n }\n default:\n return;\n }\n }\n\n public ngOnInit(): void {\n this._selectionModel = new SelectionModel<IdsRadioComponent>(false, undefined, false, this.valueCompareFn);\n\n if (this._hasInvalidLabelPosition()) {\n throw this._createHostError('invalid `orientation` + `labelPosition` combination.');\n }\n }\n\n public ngAfterContentChecked(): void {\n const items = this._items();\n const minItemCount = 2;\n\n if (isDevMode() && (items.length < minItemCount)) {\n throw this._createHostError('invalid count of radio items. Minimum item count is 2.');\n }\n\n this._selectionModel?.select(...this._items().filter((item) => item.selected()));\n this._subscribeItemChanges();\n }\n\n public writeValue(value: unknown | unknown[]): void {\n this._setSelectionByValue(value);\n }\n\n public registerOnChange(fn: () => void): void {\n this._onChange = fn;\n }\n\n public registerOnTouched(fn: () => unknown): void {\n this._onTouched = fn;\n }\n\n public setDisabledState?(isDisabled: boolean): void {\n this.isDisabled.set(isDisabled);\n }\n\n private _subscribeItemChanges(): void {\n this._items().forEach((item) => {\n item.changes.subscribe(\n (change) => {\n this._handleItemChanges(change);\n },\n );\n });\n }\n\n private _handleItemChanges(change: IdsRadioChangeEvent): void {\n const { source } = change;\n this._clearSelection();\n source.selected.set(true);\n this._selectionModel?.select(source);\n this.itemChanges.emit(change);\n this._handleChange();\n this._onTouched();\n }\n\n private _setSelectionByValue(value: unknown | unknown[]): void {\n this._rawValue = value;\n\n if (this._items().length === 0) {\n return;\n }\n\n this._clearSelection();\n this._selectValue(value);\n }\n\n private _selectValue(value: unknown): void {\n const correspondingItem = this._items().find((item) => item.value() != null && item.value() === value);\n if (correspondingItem) {\n correspondingItem.selected.set(true);\n this._selectionModel?.select(correspondingItem);\n }\n }\n\n private _clearSelection(): void {\n this._selectionModel?.clear();\n this._items().forEach((item) => {\n item.selected.set(false);\n });\n }\n\n private _handleChange(): void {\n const selectionModelValues = this._selectionModel?.selected?.map((item) => item.value());\n this._onChange(selectionModelValues?.[0]);\n }\n\n public isItemPreSelectedByValue(itemValue: unknown): boolean {\n if (this._rawValue === undefined) {\n return false;\n }\n\n return itemValue === this._rawValue;\n }\n\n private _hasInvalidLabelPosition(): boolean {\n const orientation = this.orientation();\n const labelPosition = this.labelPosition();\n\n return (orientation === IdsOrientation.VERTICAL && Object.values(IdsVerticalPosition).some((pos) => pos === labelPosition));\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -1,7 +1,6 @@
1
1
  import * as i0 from '@angular/core';
2
- import { InjectionToken, input, computed, contentChildren, inject, contentChild, TemplateRef, Component } from '@angular/core';
2
+ import { InjectionToken, input, computed, contentChildren, inject, contentChild, TemplateRef, effect, untracked, Component } from '@angular/core';
3
3
  import { IdsSize, coerceBooleanAttribute, ComponentBaseWithDefaults } from '@i-cell/ids-angular/core';
4
- import { trigger, transition, style, animate } from '@angular/animations';
5
4
  import { NgTemplateOutlet } from '@angular/common';
6
5
  import { Router } from '@angular/router';
7
6
  import { IdsIconComponent } from '@i-cell/ids-angular/icon';
@@ -46,7 +45,7 @@ class IdsSideNavItemComponent {
46
45
  this.label = input.required(...(ngDevMode ? [{ debugName: "label" }] : []));
47
46
  this.target = input('', ...(ngDevMode ? [{ debugName: "target" }] : []));
48
47
  this.templateChildren = input(...(ngDevMode ? [undefined, { debugName: "templateChildren" }] : []));
49
- this._active = computed(() => this._router.isActive(this.target(), { paths: 'exact', queryParams: 'exact', fragment: 'ignored', matrixParams: 'ignored' }), ...(ngDevMode ? [{ debugName: "_active" }] : []));
48
+ this.active = computed(() => this._router.isActive(this.target(), { paths: 'exact', queryParams: 'exact', fragment: 'ignored', matrixParams: 'ignored' }), ...(ngDevMode ? [{ debugName: "active" }] : []));
50
49
  this._expandable = computed(() => this._contentChildren().length > 0 || this._contentTemplate(), ...(ngDevMode ? [{ debugName: "_expandable" }] : []));
51
50
  this._expanded = false;
52
51
  this._iconLeading = contentChildren('[icon-leading]', ...(ngDevMode ? [{ debugName: "_iconLeading" }] : []));
@@ -54,16 +53,28 @@ class IdsSideNavItemComponent {
54
53
  this._parent = inject(IDS_SIDE_NAV_PARENT, { optional: true });
55
54
  this._contentTemplate = contentChild('idsSideNavItemChildren', ...(ngDevMode ? [{ debugName: "_contentTemplate", read: TemplateRef }] : [{ read: TemplateRef }]));
56
55
  this._contentChildren = contentChildren(IdsSideNavItemComponent, ...(ngDevMode ? [{ debugName: "_contentChildren" }] : []));
57
- this._router = inject(Router);
56
+ this._router = inject(Router, { skipSelf: true });
57
+ effect(() => {
58
+ const sideNavChildren = this._contentChildren();
59
+ untracked(() => {
60
+ sideNavChildren.forEach((child) => {
61
+ if (child.active()) {
62
+ this._expanded = true;
63
+ }
64
+ });
65
+ });
66
+ });
58
67
  }
59
68
  _onClick(event) {
60
69
  if (this.disabled()) {
61
70
  return;
62
71
  }
63
- if ([
64
- 'button',
65
- 'ids-icon',
66
- ].includes(event.target.localName)) {
72
+ const eventTarget = event.target;
73
+ if (!this.target()) {
74
+ this._toggle();
75
+ }
76
+ else if (eventTarget.localName === 'button' ||
77
+ (eventTarget.localName === 'ids-icon' && !eventTarget.hasAttribute('icon-leading') && !eventTarget.hasAttribute('icon-trailing'))) {
67
78
  this._toggle();
68
79
  }
69
80
  else {
@@ -114,10 +125,10 @@ class IdsSideNavItemComponent {
114
125
  [class.ids-side-nav-item-expandable-summary]="_expandable()"
115
126
  [attr.tabindex]="!disabled() ? 0 : null"
116
127
  [attr.disabled]="disabled() ? '' : null"
117
- [attr.is-active]="_active() ? '' : null"
118
- [attr.is-active-indicator]="_active() && _parent?.hasActiveIndicator() ? '' : null"
128
+ [attr.is-active]="active() ? '' : null"
129
+ [attr.is-active-indicator]="active() && _parent?.hasActiveIndicator() ? '' : null"
119
130
  [attr.aria-disabled]="disabled() ? '' : null"
120
- [attr.aria-current]="_active()"
131
+ [attr.aria-current]="active()"
121
132
  [attr.aria-expanded]="!_expandable() ? null : _expanded ? 'true' : 'false'"
122
133
  [attr.aria-label]="label()"
123
134
  (keydown)="_onKeyDown($event)"
@@ -138,26 +149,14 @@ class IdsSideNavItemComponent {
138
149
  </button>
139
150
  }
140
151
  </a>
141
- @if (_expandable() && _expanded) {
142
- <ul @enterLeave class="ids-side-nav-item-expandable-submenu">
152
+ @if (_expandable()) {
153
+ <ul class="ids-side-nav-item-expandable-submenu" [class.expanded]="_expanded">
143
154
  <ng-content select="ids-side-nav-item,[idsSideNavItem]" />
144
155
  <ng-container *ngTemplateOutlet="_contentTemplate()" />
145
156
  </ul>
146
157
  }
147
- <ng-content select="ng-template"/>
148
- `, isInline: true, dependencies: [{ kind: "component", type: IdsIconComponent, selector: "ids-icon", inputs: ["size", "sizeCollection", "variant", "fontIcon", "svgIcon", "aria-hidden"] }, { kind: "component", type: IdsIconButtonComponent, selector: "button[idsIconButton], a[idsIconButton]", inputs: ["appearance", "size", "variant", "disabled"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], animations: [
149
- trigger('enterLeave', [
150
- transition(':enter', [
151
- style({ height: 0, opacity: 0 }),
152
- animate('150ms ease-out', style({ height: '*' })),
153
- animate('150ms ease-in', style({ opacity: 1 })),
154
- ]),
155
- transition(':leave', [
156
- animate('150ms ease-out', style({ opacity: 0 })),
157
- animate('150ms ease-in', style({ height: 0 })),
158
- ]),
159
- ]),
160
- ] }); }
158
+ <ng-content select="ng-template" />
159
+ `, isInline: true, dependencies: [{ kind: "component", type: IdsIconComponent, selector: "ids-icon", inputs: ["size", "sizeCollection", "variant", "fontIcon", "svgIcon", "aria-hidden"] }, { kind: "component", type: IdsIconButtonComponent, selector: "button[idsIconButton], a[idsIconButton]", inputs: ["appearance", "size", "variant", "disabled"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
161
160
  }
162
161
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: IdsSideNavItemComponent, decorators: [{
163
162
  type: Component,
@@ -174,10 +173,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImpor
174
173
  [class.ids-side-nav-item-expandable-summary]="_expandable()"
175
174
  [attr.tabindex]="!disabled() ? 0 : null"
176
175
  [attr.disabled]="disabled() ? '' : null"
177
- [attr.is-active]="_active() ? '' : null"
178
- [attr.is-active-indicator]="_active() && _parent?.hasActiveIndicator() ? '' : null"
176
+ [attr.is-active]="active() ? '' : null"
177
+ [attr.is-active-indicator]="active() && _parent?.hasActiveIndicator() ? '' : null"
179
178
  [attr.aria-disabled]="disabled() ? '' : null"
180
- [attr.aria-current]="_active()"
179
+ [attr.aria-current]="active()"
181
180
  [attr.aria-expanded]="!_expandable() ? null : _expanded ? 'true' : 'false'"
182
181
  [attr.aria-label]="label()"
183
182
  (keydown)="_onKeyDown($event)"
@@ -198,34 +197,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImpor
198
197
  </button>
199
198
  }
200
199
  </a>
201
- @if (_expandable() && _expanded) {
202
- <ul @enterLeave class="ids-side-nav-item-expandable-submenu">
200
+ @if (_expandable()) {
201
+ <ul class="ids-side-nav-item-expandable-submenu" [class.expanded]="_expanded">
203
202
  <ng-content select="ids-side-nav-item,[idsSideNavItem]" />
204
203
  <ng-container *ngTemplateOutlet="_contentTemplate()" />
205
204
  </ul>
206
205
  }
207
- <ng-content select="ng-template"/>
206
+ <ng-content select="ng-template" />
208
207
  `,
209
208
  host: {
210
209
  class: 'ids-side-nav-item',
211
210
  '[class.ids-side-nav-item-expandable]': '_expandable()',
212
211
  '[role]': '_expandable() ? "group" : "treeitem"',
213
212
  },
214
- animations: [
215
- trigger('enterLeave', [
216
- transition(':enter', [
217
- style({ height: 0, opacity: 0 }),
218
- animate('150ms ease-out', style({ height: '*' })),
219
- animate('150ms ease-in', style({ opacity: 1 })),
220
- ]),
221
- transition(':leave', [
222
- animate('150ms ease-out', style({ opacity: 0 })),
223
- animate('150ms ease-in', style({ height: 0 })),
224
- ]),
225
- ]),
226
- ],
227
213
  }]
228
- }] });
214
+ }], ctorParameters: () => [] });
229
215
 
230
216
  /**
231
217
  * Side navigation (section) title
@@ -1 +1 @@
1
- {"version":3,"file":"i-cell-ids-angular-side-nav.mjs","sources":["../../../projects/widgets/side-nav/types/side-nav-variant.type.ts","../../../projects/widgets/side-nav/types/side-nav-appearance.type.ts","../../../projects/widgets/side-nav/side-nav-defaults.ts","../../../projects/widgets/side-nav/tokens/ids-side-nav-parent.ts","../../../projects/widgets/side-nav/side-nav-item.component.ts","../../../projects/widgets/side-nav/side-nav-title.component.ts","../../../projects/widgets/side-nav/side-nav-section.component.ts","../../../projects/widgets/side-nav/side-nav.component.ts","../../../projects/widgets/side-nav/i-cell-ids-angular-side-nav.ts"],"sourcesContent":["export const IdsSideNavVariant = {\n SURFACE: 'surface',\n LIGHT: 'light',\n} as const;\n\nexport type IdsSideNavVariantType = (typeof IdsSideNavVariant)[keyof typeof IdsSideNavVariant];\n","export const IdsSideNavAppearance = {\n STANDARD: 'standard',\n} as const;\n\nexport type IdsSideNavAppearanceType = (typeof IdsSideNavAppearance)[keyof typeof IdsSideNavAppearance];\n","import { IdsSideNavAppearance, IdsSideNavAppearanceType } from './types/side-nav-appearance.type';\nimport { IdsSideNavVariant, IdsSideNavVariantType } from './types/side-nav-variant.type';\n\nimport { InjectionToken } from '@angular/core';\nimport { IdsSize, IdsSizeType } from '@i-cell/ids-angular/core';\n\nexport interface IdsSideNavDefaultConfig {\n appearance?: IdsSideNavAppearanceType,\n size?: IdsSizeType,\n variant?: IdsSideNavVariantType,\n hasActiveIndicator?: boolean,\n hasLabel?: boolean,\n}\n\nexport const IDS_SIDE_NAV_DEFAULT_CONFIG = new InjectionToken<IdsSideNavDefaultConfig>(\n 'IDS_SIDE_NAV_DEFAULT_CONFIG',\n {\n providedIn: 'root',\n factory: IDS_SIDE_NAV_DEFAULT_CONFIG_FACTORY,\n },\n);\n\nexport function IDS_SIDE_NAV_DEFAULT_CONFIG_FACTORY(): Required<IdsSideNavDefaultConfig> {\n return {\n appearance: IdsSideNavAppearance.STANDARD,\n size: IdsSize.COMPACT,\n variant: IdsSideNavVariant.SURFACE,\n hasActiveIndicator: false,\n hasLabel: true,\n };\n}\n\n","import { IdsSideNavComponent } from '../side-nav.component';\n\nimport { InjectionToken } from '@angular/core';\n\nexport const IDS_SIDE_NAV_PARENT = new InjectionToken<IdsSideNavComponent>(\n 'IDS_SIDE_NAV_PARENT',\n);\n","import { IDS_SIDE_NAV_PARENT } from './tokens/ids-side-nav-parent';\n\nimport { animate, style, transition, trigger } from '@angular/animations';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { Component, computed, contentChild, contentChildren, inject, input, TemplateRef } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { coerceBooleanAttribute } from '@i-cell/ids-angular/core';\nimport { IdsIconComponent } from '@i-cell/ids-angular/icon';\nimport { IdsIconButtonComponent } from '@i-cell/ids-angular/icon-button';\n\n/**\n * Side navigation item\n * - it can be a single list element or an expandable list element, containing another list of elements\n * - it can be used with selectors like `ids-side-nav-item` or `li[idsSideNavItem]`\n * - children can be provided with content projection:\n * - either project `ids-side-nav-item` elements\n * - or list elements as `<li>` elements in an ng-template, marked with `idsSideNavItemChildren` variable\n */\n@Component({\n selector: 'ids-side-nav-item, li[idsSideNavItem]',\n imports: [\n IdsIconComponent,\n IdsIconButtonComponent,\n NgTemplateOutlet,\n ],\n template: `\n <a\n [class.ids-side-nav-item-single]=\"!_expandable()\"\n [class.ids-side-nav-item-expandable-summary]=\"_expandable()\"\n [attr.tabindex]=\"!disabled() ? 0 : null\"\n [attr.disabled]=\"disabled() ? '' : null\"\n [attr.is-active]=\"_active() ? '' : null\"\n [attr.is-active-indicator]=\"_active() && _parent?.hasActiveIndicator() ? '' : null\"\n [attr.aria-disabled]=\"disabled() ? '' : null\"\n [attr.aria-current]=\"_active()\"\n [attr.aria-expanded]=\"!_expandable() ? null : _expanded ? 'true' : 'false'\"\n [attr.aria-label]=\"label()\"\n (keydown)=\"_onKeyDown($event)\"\n (click)=\"_onClick($event)\"\n >\n @if (_iconLeading()) {\n <ng-content select=\"[icon-leading]\" />\n }\n @if (_parent?.hasLabel()) {\n <span class=\"ids-side-nav-item-label\">{{ label() }}</span>\n }\n @if (_iconTrailing()) {\n <ng-content select=\"[icon-trailing]\" />\n }\n @if (_expandable()) {\n <button idsIconButton type=\"button\" [disabled]=\"disabled()\">\n <ids-icon aria-hidden=\"true\" alt=\"\" [fontIcon]=\"_expanded ? 'chevron-up' : 'chevron-down'\" />\n </button>\n }\n </a>\n @if (_expandable() && _expanded) {\n <ul @enterLeave class=\"ids-side-nav-item-expandable-submenu\">\n <ng-content select=\"ids-side-nav-item,[idsSideNavItem]\" />\n <ng-container *ngTemplateOutlet=\"_contentTemplate()\" />\n </ul>\n }\n <ng-content select=\"ng-template\"/>\n `,\n host: {\n class: 'ids-side-nav-item',\n '[class.ids-side-nav-item-expandable]': '_expandable()',\n '[role]': '_expandable() ? \"group\" : \"treeitem\"',\n },\n animations: [\n trigger('enterLeave', [\n transition(':enter', [\n style({ height: 0, opacity: 0 }),\n animate('150ms ease-out', style({ height: '*' })),\n animate('150ms ease-in', style({ opacity: 1 })),\n ]),\n transition(':leave', [\n animate('150ms ease-out', style({ opacity: 0 })),\n animate('150ms ease-in', style({ height: 0 })),\n ]),\n ]),\n ],\n})\nexport class IdsSideNavItemComponent {\n public disabled = input(false, { transform: (value: boolean | string) => coerceBooleanAttribute(value) });\n public label = input.required<string>();\n public target = input<string>('');\n public templateChildren = input<TemplateRef<HTMLElement>>();\n protected _active = computed(() =>\n this._router.isActive(this.target(), { paths: 'exact', queryParams: 'exact', fragment: 'ignored', matrixParams: 'ignored' }),\n );\n\n protected _expandable = computed(() => this._contentChildren().length > 0 || this._contentTemplate());\n protected _expanded = false;\n protected _iconLeading = contentChildren<IdsIconComponent>('[icon-leading]');\n protected _iconTrailing = contentChildren<IdsIconComponent>('[icon-trailing]');\n protected readonly _parent = inject(IDS_SIDE_NAV_PARENT, { optional: true });\n protected readonly _contentTemplate = contentChild('idsSideNavItemChildren', { read: TemplateRef });\n private readonly _contentChildren = contentChildren(IdsSideNavItemComponent);\n private readonly _router = inject(Router);\n\n protected _onClick(event: MouseEvent): void {\n if (this.disabled()) {\n return;\n }\n if ([\n 'button',\n 'ids-icon',\n ].includes((event.target as Element).localName)) {\n this._toggle();\n } else {\n this._navigate();\n }\n }\n\n protected _onKeyDown(event: KeyboardEvent): void {\n if (this.disabled()) {\n return;\n }\n if ([\n 'Enter',\n 'Space',\n ].includes(event.code)) {\n event.preventDefault();\n if ((event.target as Element).localName === 'button') {\n this._toggle();\n } else {\n this._navigate();\n }\n } else if ([\n 'ArrowUp',\n 'ArrowDown',\n 'Escape',\n ].includes(event.code)) {\n event.preventDefault();\n event.stopImmediatePropagation();\n this._toggle();\n }\n }\n\n protected _toggle(): void {\n if (this._expandable()) {\n this._expanded = !this._expanded;\n }\n }\n\n protected _navigate(): void {\n const target = this.target();\n if (target) {\n this._router.navigateByUrl(target);\n }\n }\n}\n","import { IDS_SIDE_NAV_PARENT } from './tokens/ids-side-nav-parent';\n\nimport { Component, contentChildren, inject, input } from '@angular/core';\nimport { IdsIconComponent } from '@i-cell/ids-angular/icon';\n\n/**\n * Side navigation (section) title\n * - title of the navigation section\n * - it can be used with selectors like `ids-side-nav-title` or `li[idsSideNavTitle]`\n * - leading and trailing icons should be projected, label is bound by input\n */\n@Component({\n selector: 'ids-side-nav-title, li[idsSideNavTitle]',\n imports: [],\n template: `\n @if (_iconLeading()) {\n <ng-content select=\"[icon-leading]\" />\n }\n @if (_parent?.hasLabel()) {\n <span class=\"ids-side-nav-title-label\">{{ label() }}</span>\n }\n @if (_iconTrailing()) {\n <ng-content select=\"[icon-trailing]\" />\n }\n `,\n host: {\n class: 'ids-side-nav-title',\n role: 'treeitem',\n },\n})\nexport class IdsSideNavTitleComponent {\n public label = input.required<string>();\n protected _iconLeading = contentChildren<IdsIconComponent>('[icon-leading]');\n protected _iconTrailing = contentChildren<IdsIconComponent>('[icon-trailing]');\n protected readonly _parent = inject(IDS_SIDE_NAV_PARENT, { optional: true });\n}\n","import { Component } from '@angular/core';\n\n/**\n * Side navigation section\n * - section wrapper inside the navigation\n * - it can be used with selectors like `ids-side-nav-section` or `li[idsSideNavSection]`\n * - content should be projected\n */\n@Component({\n selector: 'ids-side-nav-section, ul[idsSideNavSection]',\n imports: [],\n template: '<ng-content />',\n host: {\n class: 'ids-side-nav-section',\n role: 'tree',\n },\n})\nexport class IdsSideNavSectionComponent {}\n","import { IDS_SIDE_NAV_DEFAULT_CONFIG, IDS_SIDE_NAV_DEFAULT_CONFIG_FACTORY, IdsSideNavDefaultConfig } from './side-nav-defaults';\nimport { IDS_SIDE_NAV_PARENT } from './tokens/ids-side-nav-parent';\nimport { IdsSideNavAppearanceType } from './types/side-nav-appearance.type';\nimport { IdsSideNavVariantType } from './types/side-nav-variant.type';\n\nimport { Component, computed, input } from '@angular/core';\nimport { coerceBooleanAttribute, ComponentBaseWithDefaults, IdsSize, IdsSizeType } from '@i-cell/ids-angular/core';\nimport { IDS_ICON_BUTTON_PARENT, IdsIconButtonAppearanceType, IdsIconButtonVariantType, IdsIconButtonParent } from '@i-cell/ids-angular/icon-button';\n\nconst defaultConfig = IDS_SIDE_NAV_DEFAULT_CONFIG_FACTORY();\n\n/**\n * Side navigation\n * - wrapper element for side navigation elements (sections, then title and items as part of section)\n * - content should be projected\n */\n@Component({\n selector: 'nav[idsSideNav]',\n template: '<ng-content/>',\n host: {\n class: 'ids-side-nav',\n },\n providers: [\n {\n provide: IDS_ICON_BUTTON_PARENT,\n useExisting: IdsSideNavComponent,\n },\n {\n provide: IDS_SIDE_NAV_PARENT,\n useExisting: IdsSideNavComponent,\n },\n ],\n})\nexport class IdsSideNavComponent extends ComponentBaseWithDefaults<IdsSideNavDefaultConfig> implements IdsIconButtonParent {\n protected override get _hostName(): string {\n return 'side-nav';\n }\n\n protected readonly _defaultConfig = this._getDefaultConfig(defaultConfig, IDS_SIDE_NAV_DEFAULT_CONFIG);\n\n public appearance = input<IdsSideNavAppearanceType>(this._defaultConfig.appearance);\n public size = input<IdsSizeType>(this._defaultConfig.size);\n public variant = input<IdsSideNavVariantType>(this._defaultConfig.variant);\n public hasLabel = input<boolean>(coerceBooleanAttribute(this._defaultConfig.hasLabel));\n public hasActiveIndicator = input<boolean>(coerceBooleanAttribute(this._defaultConfig.hasActiveIndicator));\n\n public embeddedIconButtonAppearance = computed<IdsIconButtonAppearanceType>(() => this.appearance());\n public embeddedIconButtonVariant = computed<IdsIconButtonVariantType>(() => this.variant());\n public embeddedIconButtonSize = computed<IdsSizeType>(() => {\n switch (this.size()) {\n // NOTE: SPACIOUS icon button size sticks out of side-nav item, size need to be adjusted\n case IdsSize.SPACIOUS:\n return IdsSize.COMFORTABLE;\n default:\n return this.size();\n }\n });\n\n protected _hostClasses = computed(() => this._getHostClasses([\n this.appearance(),\n this.variant(),\n this.size(),\n ]));\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"i-cell-ids-angular-side-nav.mjs","sources":["../../../projects/widgets/side-nav/types/side-nav-variant.type.ts","../../../projects/widgets/side-nav/types/side-nav-appearance.type.ts","../../../projects/widgets/side-nav/side-nav-defaults.ts","../../../projects/widgets/side-nav/tokens/ids-side-nav-parent.ts","../../../projects/widgets/side-nav/side-nav-item.component.ts","../../../projects/widgets/side-nav/side-nav-title.component.ts","../../../projects/widgets/side-nav/side-nav-section.component.ts","../../../projects/widgets/side-nav/side-nav.component.ts","../../../projects/widgets/side-nav/i-cell-ids-angular-side-nav.ts"],"sourcesContent":["export const IdsSideNavVariant = {\n SURFACE: 'surface',\n LIGHT: 'light',\n} as const;\n\nexport type IdsSideNavVariantType = (typeof IdsSideNavVariant)[keyof typeof IdsSideNavVariant];\n","export const IdsSideNavAppearance = {\n STANDARD: 'standard',\n} as const;\n\nexport type IdsSideNavAppearanceType = (typeof IdsSideNavAppearance)[keyof typeof IdsSideNavAppearance];\n","import { IdsSideNavAppearance, IdsSideNavAppearanceType } from './types/side-nav-appearance.type';\nimport { IdsSideNavVariant, IdsSideNavVariantType } from './types/side-nav-variant.type';\n\nimport { InjectionToken } from '@angular/core';\nimport { IdsSize, IdsSizeType } from '@i-cell/ids-angular/core';\n\nexport interface IdsSideNavDefaultConfig {\n appearance?: IdsSideNavAppearanceType,\n size?: IdsSizeType,\n variant?: IdsSideNavVariantType,\n hasActiveIndicator?: boolean,\n hasLabel?: boolean,\n}\n\nexport const IDS_SIDE_NAV_DEFAULT_CONFIG = new InjectionToken<IdsSideNavDefaultConfig>(\n 'IDS_SIDE_NAV_DEFAULT_CONFIG',\n {\n providedIn: 'root',\n factory: IDS_SIDE_NAV_DEFAULT_CONFIG_FACTORY,\n },\n);\n\nexport function IDS_SIDE_NAV_DEFAULT_CONFIG_FACTORY(): Required<IdsSideNavDefaultConfig> {\n return {\n appearance: IdsSideNavAppearance.STANDARD,\n size: IdsSize.COMPACT,\n variant: IdsSideNavVariant.SURFACE,\n hasActiveIndicator: false,\n hasLabel: true,\n };\n}\n\n","import { IdsSideNavComponent } from '../side-nav.component';\n\nimport { InjectionToken } from '@angular/core';\n\nexport const IDS_SIDE_NAV_PARENT = new InjectionToken<IdsSideNavComponent>(\n 'IDS_SIDE_NAV_PARENT',\n);\n","import { IDS_SIDE_NAV_PARENT } from './tokens/ids-side-nav-parent';\n\nimport { NgTemplateOutlet } from '@angular/common';\nimport { Component, computed, contentChild, contentChildren, effect, inject, input, TemplateRef, untracked } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { coerceBooleanAttribute } from '@i-cell/ids-angular/core';\nimport { IdsIconComponent } from '@i-cell/ids-angular/icon';\nimport { IdsIconButtonComponent } from '@i-cell/ids-angular/icon-button';\n\n/**\n * Side navigation item\n * - it can be a single list element or an expandable list element, containing another list of elements\n * - it can be used with selectors like `ids-side-nav-item` or `li[idsSideNavItem]`\n * - children can be provided with content projection:\n * - either project `ids-side-nav-item` elements\n * - or list elements as `<li>` elements in an ng-template, marked with `idsSideNavItemChildren` variable\n */\n@Component({\n selector: 'ids-side-nav-item, li[idsSideNavItem]',\n imports: [\n IdsIconComponent,\n IdsIconButtonComponent,\n NgTemplateOutlet,\n ],\n template: `\n <a\n [class.ids-side-nav-item-single]=\"!_expandable()\"\n [class.ids-side-nav-item-expandable-summary]=\"_expandable()\"\n [attr.tabindex]=\"!disabled() ? 0 : null\"\n [attr.disabled]=\"disabled() ? '' : null\"\n [attr.is-active]=\"active() ? '' : null\"\n [attr.is-active-indicator]=\"active() && _parent?.hasActiveIndicator() ? '' : null\"\n [attr.aria-disabled]=\"disabled() ? '' : null\"\n [attr.aria-current]=\"active()\"\n [attr.aria-expanded]=\"!_expandable() ? null : _expanded ? 'true' : 'false'\"\n [attr.aria-label]=\"label()\"\n (keydown)=\"_onKeyDown($event)\"\n (click)=\"_onClick($event)\"\n >\n @if (_iconLeading()) {\n <ng-content select=\"[icon-leading]\" />\n }\n @if (_parent?.hasLabel()) {\n <span class=\"ids-side-nav-item-label\">{{ label() }}</span>\n }\n @if (_iconTrailing()) {\n <ng-content select=\"[icon-trailing]\" />\n }\n @if (_expandable()) {\n <button idsIconButton type=\"button\" [disabled]=\"disabled()\">\n <ids-icon aria-hidden=\"true\" alt=\"\" [fontIcon]=\"_expanded ? 'chevron-up' : 'chevron-down'\" />\n </button>\n }\n </a>\n @if (_expandable()) {\n <ul class=\"ids-side-nav-item-expandable-submenu\" [class.expanded]=\"_expanded\">\n <ng-content select=\"ids-side-nav-item,[idsSideNavItem]\" />\n <ng-container *ngTemplateOutlet=\"_contentTemplate()\" />\n </ul>\n }\n <ng-content select=\"ng-template\" />\n `,\n host: {\n class: 'ids-side-nav-item',\n '[class.ids-side-nav-item-expandable]': '_expandable()',\n '[role]': '_expandable() ? \"group\" : \"treeitem\"',\n },\n})\nexport class IdsSideNavItemComponent {\n public disabled = input(false, { transform: (value: boolean | string) => coerceBooleanAttribute(value) });\n public label = input.required<string>();\n public target = input<string>('');\n public templateChildren = input<TemplateRef<HTMLElement>>();\n public active = computed(() =>\n this._router.isActive(this.target(), { paths: 'exact', queryParams: 'exact', fragment: 'ignored', matrixParams: 'ignored' }),\n );\n\n protected _expandable = computed(() => this._contentChildren().length > 0 || this._contentTemplate());\n protected _expanded = false;\n protected _iconLeading = contentChildren<IdsIconComponent>('[icon-leading]');\n protected _iconTrailing = contentChildren<IdsIconComponent>('[icon-trailing]');\n protected readonly _parent = inject(IDS_SIDE_NAV_PARENT, { optional: true });\n protected readonly _contentTemplate = contentChild('idsSideNavItemChildren', { read: TemplateRef });\n private readonly _contentChildren = contentChildren(IdsSideNavItemComponent);\n private readonly _router = inject(Router, { skipSelf: true });\n\n constructor() {\n effect(() => {\n const sideNavChildren = this._contentChildren();\n\n untracked(() => {\n sideNavChildren.forEach((child) => {\n if (child.active()) {\n this._expanded = true;\n }\n });\n });\n });\n }\n\n protected _onClick(event: MouseEvent): void {\n if (this.disabled()) {\n return;\n }\n const eventTarget = event.target as Element;\n\n if (!this.target()) {\n this._toggle();\n } else if (\n eventTarget.localName === 'button' ||\n (eventTarget.localName === 'ids-icon' && !eventTarget.hasAttribute('icon-leading') && !eventTarget.hasAttribute('icon-trailing'))\n ) {\n this._toggle();\n } else {\n this._navigate();\n }\n }\n\n protected _onKeyDown(event: KeyboardEvent): void {\n if (this.disabled()) {\n return;\n }\n if ([\n 'Enter',\n 'Space',\n ].includes(event.code)) {\n event.preventDefault();\n if ((event.target as Element).localName === 'button') {\n this._toggle();\n } else {\n this._navigate();\n }\n } else if ([\n 'ArrowUp',\n 'ArrowDown',\n 'Escape',\n ].includes(event.code)) {\n event.preventDefault();\n event.stopImmediatePropagation();\n this._toggle();\n }\n }\n\n protected _toggle(): void {\n if (this._expandable()) {\n this._expanded = !this._expanded;\n }\n }\n\n protected _navigate(): void {\n const target = this.target();\n if (target) {\n this._router.navigateByUrl(target);\n }\n }\n}\n","import { IDS_SIDE_NAV_PARENT } from './tokens/ids-side-nav-parent';\n\nimport { Component, contentChildren, inject, input } from '@angular/core';\nimport { IdsIconComponent } from '@i-cell/ids-angular/icon';\n\n/**\n * Side navigation (section) title\n * - title of the navigation section\n * - it can be used with selectors like `ids-side-nav-title` or `li[idsSideNavTitle]`\n * - leading and trailing icons should be projected, label is bound by input\n */\n@Component({\n selector: 'ids-side-nav-title, li[idsSideNavTitle]',\n imports: [],\n template: `\n @if (_iconLeading()) {\n <ng-content select=\"[icon-leading]\" />\n }\n @if (_parent?.hasLabel()) {\n <span class=\"ids-side-nav-title-label\">{{ label() }}</span>\n }\n @if (_iconTrailing()) {\n <ng-content select=\"[icon-trailing]\" />\n }\n `,\n host: {\n class: 'ids-side-nav-title',\n role: 'treeitem',\n },\n})\nexport class IdsSideNavTitleComponent {\n public label = input.required<string>();\n protected _iconLeading = contentChildren<IdsIconComponent>('[icon-leading]');\n protected _iconTrailing = contentChildren<IdsIconComponent>('[icon-trailing]');\n protected readonly _parent = inject(IDS_SIDE_NAV_PARENT, { optional: true });\n}\n","import { Component } from '@angular/core';\n\n/**\n * Side navigation section\n * - section wrapper inside the navigation\n * - it can be used with selectors like `ids-side-nav-section` or `li[idsSideNavSection]`\n * - content should be projected\n */\n@Component({\n selector: 'ids-side-nav-section, ul[idsSideNavSection]',\n imports: [],\n template: '<ng-content />',\n host: {\n class: 'ids-side-nav-section',\n role: 'tree',\n },\n})\nexport class IdsSideNavSectionComponent {}\n","import { IDS_SIDE_NAV_DEFAULT_CONFIG, IDS_SIDE_NAV_DEFAULT_CONFIG_FACTORY, IdsSideNavDefaultConfig } from './side-nav-defaults';\nimport { IDS_SIDE_NAV_PARENT } from './tokens/ids-side-nav-parent';\nimport { IdsSideNavAppearanceType } from './types/side-nav-appearance.type';\nimport { IdsSideNavVariantType } from './types/side-nav-variant.type';\n\nimport { Component, computed, input } from '@angular/core';\nimport { coerceBooleanAttribute, ComponentBaseWithDefaults, IdsSize, IdsSizeType } from '@i-cell/ids-angular/core';\nimport { IDS_ICON_BUTTON_PARENT, IdsIconButtonAppearanceType, IdsIconButtonVariantType, IdsIconButtonParent } from '@i-cell/ids-angular/icon-button';\n\nconst defaultConfig = IDS_SIDE_NAV_DEFAULT_CONFIG_FACTORY();\n\n/**\n * Side navigation\n * - wrapper element for side navigation elements (sections, then title and items as part of section)\n * - content should be projected\n */\n@Component({\n selector: 'nav[idsSideNav]',\n template: '<ng-content/>',\n host: {\n class: 'ids-side-nav',\n },\n providers: [\n {\n provide: IDS_ICON_BUTTON_PARENT,\n useExisting: IdsSideNavComponent,\n },\n {\n provide: IDS_SIDE_NAV_PARENT,\n useExisting: IdsSideNavComponent,\n },\n ],\n})\nexport class IdsSideNavComponent extends ComponentBaseWithDefaults<IdsSideNavDefaultConfig> implements IdsIconButtonParent {\n protected override get _hostName(): string {\n return 'side-nav';\n }\n\n protected readonly _defaultConfig = this._getDefaultConfig(defaultConfig, IDS_SIDE_NAV_DEFAULT_CONFIG);\n\n public appearance = input<IdsSideNavAppearanceType>(this._defaultConfig.appearance);\n public size = input<IdsSizeType>(this._defaultConfig.size);\n public variant = input<IdsSideNavVariantType>(this._defaultConfig.variant);\n public hasLabel = input<boolean>(coerceBooleanAttribute(this._defaultConfig.hasLabel));\n public hasActiveIndicator = input<boolean>(coerceBooleanAttribute(this._defaultConfig.hasActiveIndicator));\n\n public embeddedIconButtonAppearance = computed<IdsIconButtonAppearanceType>(() => this.appearance());\n public embeddedIconButtonVariant = computed<IdsIconButtonVariantType>(() => this.variant());\n public embeddedIconButtonSize = computed<IdsSizeType>(() => {\n switch (this.size()) {\n // NOTE: SPACIOUS icon button size sticks out of side-nav item, size need to be adjusted\n case IdsSize.SPACIOUS:\n return IdsSize.COMFORTABLE;\n default:\n return this.size();\n }\n });\n\n protected _hostClasses = computed(() => this._getHostClasses([\n this.appearance(),\n this.variant(),\n this.size(),\n ]));\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@i-cell/ids-angular",
3
- "version": "0.2.3",
3
+ "version": "0.2.5",
4
4
  "private": false,
5
5
  "description": "i-Cell Design System UI Kit components for Angular",
6
6
  "publishConfig": {
@@ -32,7 +32,7 @@
32
32
  "@angular/forms": "^20.1.7",
33
33
  "@angular/platform-browser": "^20.1.7",
34
34
  "@angular/router": "^20.1.7",
35
- "@i-cell/ids-styles": "^0.0.48"
35
+ "@i-cell/ids-styles": "^0.0.49"
36
36
  },
37
37
  "dependencies": {
38
38
  "tslib": "^2.3.0"
@@ -64,14 +64,14 @@
64
64
  "types": "./badge/index.d.ts",
65
65
  "default": "./fesm2022/i-cell-ids-angular-badge.mjs"
66
66
  },
67
- "./card": {
68
- "types": "./card/index.d.ts",
69
- "default": "./fesm2022/i-cell-ids-angular-card.mjs"
70
- },
71
67
  "./button": {
72
68
  "types": "./button/index.d.ts",
73
69
  "default": "./fesm2022/i-cell-ids-angular-button.mjs"
74
70
  },
71
+ "./card": {
72
+ "types": "./card/index.d.ts",
73
+ "default": "./fesm2022/i-cell-ids-angular-card.mjs"
74
+ },
75
75
  "./checkbox": {
76
76
  "types": "./checkbox/index.d.ts",
77
77
  "default": "./fesm2022/i-cell-ids-angular-checkbox.mjs"
@@ -88,6 +88,10 @@
88
88
  "types": "./datepicker/index.d.ts",
89
89
  "default": "./fesm2022/i-cell-ids-angular-datepicker.mjs"
90
90
  },
91
+ "./dialog": {
92
+ "types": "./dialog/index.d.ts",
93
+ "default": "./fesm2022/i-cell-ids-angular-dialog.mjs"
94
+ },
91
95
  "./divider": {
92
96
  "types": "./divider/index.d.ts",
93
97
  "default": "./fesm2022/i-cell-ids-angular-divider.mjs"
@@ -152,18 +156,14 @@
152
156
  "types": "./spinner/index.d.ts",
153
157
  "default": "./fesm2022/i-cell-ids-angular-spinner.mjs"
154
158
  },
155
- "./dialog": {
156
- "types": "./dialog/index.d.ts",
157
- "default": "./fesm2022/i-cell-ids-angular-dialog.mjs"
159
+ "./switch": {
160
+ "types": "./switch/index.d.ts",
161
+ "default": "./fesm2022/i-cell-ids-angular-switch.mjs"
158
162
  },
159
163
  "./tab": {
160
164
  "types": "./tab/index.d.ts",
161
165
  "default": "./fesm2022/i-cell-ids-angular-tab.mjs"
162
166
  },
163
- "./switch": {
164
- "types": "./switch/index.d.ts",
165
- "default": "./fesm2022/i-cell-ids-angular-switch.mjs"
166
- },
167
167
  "./table": {
168
168
  "types": "./table/index.d.ts",
169
169
  "default": "./fesm2022/i-cell-ids-angular-table.mjs"
package/radio/index.d.ts CHANGED
@@ -25,6 +25,7 @@ declare class IdsRadioComponent extends ComponentBase implements OnInit {
25
25
  protected _name: _angular_core.Signal<string | undefined>;
26
26
  protected _required: _angular_core.Signal<boolean | undefined>;
27
27
  protected _ariaChecked: _angular_core.Signal<boolean>;
28
+ protected _inputId: _angular_core.Signal<string>;
28
29
  protected _hostClasses: _angular_core.Signal<string>;
29
30
  private _inputElement;
30
31
  readonly changes: _angular_core.OutputEmitterRef<IdsRadioChangeEvent>;
@@ -39,7 +39,7 @@ declare class IdsSideNavItemComponent {
39
39
  label: _angular_core.InputSignal<string>;
40
40
  target: _angular_core.InputSignal<string>;
41
41
  templateChildren: _angular_core.InputSignal<TemplateRef<HTMLElement> | undefined>;
42
- protected _active: _angular_core.Signal<boolean>;
42
+ active: _angular_core.Signal<boolean>;
43
43
  protected _expandable: _angular_core.Signal<true | TemplateRef<any> | undefined>;
44
44
  protected _expanded: boolean;
45
45
  protected _iconLeading: _angular_core.Signal<readonly IdsIconComponent[]>;
@@ -48,6 +48,7 @@ declare class IdsSideNavItemComponent {
48
48
  protected readonly _contentTemplate: _angular_core.Signal<TemplateRef<any> | undefined>;
49
49
  private readonly _contentChildren;
50
50
  private readonly _router;
51
+ constructor();
51
52
  protected _onClick(event: MouseEvent): void;
52
53
  protected _onKeyDown(event: KeyboardEvent): void;
53
54
  protected _toggle(): void;
package/table/index.d.ts CHANGED
@@ -12,6 +12,7 @@ interface IdsTablePaginationParams {
12
12
  /** The total number of items in the result list */
13
13
  totalRows: number;
14
14
  /** The highest page index number */
15
+ maxPage?: number;
15
16
  /** The number of items per page */
16
17
  rows: number;
17
18
  /** The index number of the current page */