@i-cell/ids-angular 0.2.5 → 0.2.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"i-cell-ids-angular-segmented-control-toggle.mjs","sources":["../../../projects/widgets/segmented-control-toggle/types/segmented-control-toggle-appearance.type.ts","../../../projects/widgets/segmented-control-toggle/types/segmented-control-toggle-item-change.class.ts","../../../projects/widgets/segmented-control-toggle/types/segmented-control-toggle-variant.type.ts","../../../projects/widgets/segmented-control-toggle/segmented-control-toggle-defaults.ts","../../../projects/widgets/segmented-control-toggle/segmented-control-toggle.directive.ts","../../../projects/widgets/segmented-control-toggle/segmented-control-toggle-item.component.ts","../../../projects/widgets/segmented-control-toggle/segmented-control-toggle-item.component.html","../../../projects/widgets/segmented-control-toggle/i-cell-ids-angular-segmented-control-toggle.ts"],"sourcesContent":["export const IdsSegmentedControlToggleAppearance = {\n FILLED: 'filled',\n OUTLINED: 'outlined',\n} as const;\n\nexport type IdsSegmentedControlToggleAppearanceType =\n (typeof IdsSegmentedControlToggleAppearance)[keyof typeof IdsSegmentedControlToggleAppearance];\n","import { IdsSegmentedControlToggleItemComponent } from '../segmented-control-toggle-item.component';\n\nexport class IdsSegmentedControlToggleItemChange {\n constructor(\n public source: IdsSegmentedControlToggleItemComponent,\n public value: unknown,\n ) {}\n}\n","export const IdsSegmentedControlToggleVariant = {\n SURFACE: 'surface',\n LIGHT: 'light',\n} as const;\n\nexport type IdsSegmentedControlToggleVariantType =\n (typeof IdsSegmentedControlToggleVariant)[keyof typeof IdsSegmentedControlToggleVariant];\n\nexport const IdsSegmentedControlToggleButtonVariant = {\n PRIMARY: 'primary',\n SURFACE: 'surface',\n LIGHT: 'light',\n} as const;\n\nexport type IdsSegmentedControlToggleButtonVariantType =\n (typeof IdsSegmentedControlToggleButtonVariant)[keyof typeof IdsSegmentedControlToggleButtonVariant];\n","import { IdsSegmentedControlToggleAppearance, IdsSegmentedControlToggleAppearanceType } from './types/segmented-control-toggle-appearance.type';\nimport { IdsSegmentedControlToggleButtonVariant, IdsSegmentedControlToggleButtonVariantType, IdsSegmentedControlToggleVariant, IdsSegmentedControlToggleVariantType } from './types/segmented-control-toggle-variant.type';\n\nimport { InjectionToken } from '@angular/core';\nimport { IdsSize, IdsSizeType } from '@i-cell/ids-angular/core';\n\nexport interface IdsSegmentedControlToggleDefaultConfig {\n appearance?: IdsSegmentedControlToggleAppearanceType\n size?: IdsSizeType\n variant?: IdsSegmentedControlToggleVariantType\n buttonVariant?: IdsSegmentedControlToggleButtonVariantType\n}\n\nexport const IDS_SEGMENTED_CONTROL_TOGGLE_DEFAULT_CONFIG = new InjectionToken<IdsSegmentedControlToggleDefaultConfig>(\n 'IDS_SEGMENTED_CONTROL_TOGGLE_DEFAULT_CONFIG',\n {\n providedIn: 'root',\n factory: IDS_SEGMENTED_CONTROL_TOGGLE_DEFAULT_CONFIG_FACTORY,\n },\n);\n\n// eslint-disable-next-line id-length\nexport function IDS_SEGMENTED_CONTROL_TOGGLE_DEFAULT_CONFIG_FACTORY(): Required<IdsSegmentedControlToggleDefaultConfig> {\n return {\n appearance: IdsSegmentedControlToggleAppearance.FILLED,\n size: IdsSize.COMPACT,\n variant: IdsSegmentedControlToggleVariant.SURFACE,\n buttonVariant: IdsSegmentedControlToggleButtonVariant.SURFACE,\n };\n}\n","import { IDS_SEGMENTED_CONTROL_TOGGLE_DEFAULT_CONFIG, IDS_SEGMENTED_CONTROL_TOGGLE_DEFAULT_CONFIG_FACTORY, IdsSegmentedControlToggleDefaultConfig } from './segmented-control-toggle-defaults';\nimport { IdsSegmentedControlToggleItemComponent } from './segmented-control-toggle-item.component';\nimport { IdsSegmentedControlToggleAppearanceType } from './types/segmented-control-toggle-appearance.type';\nimport { IdsSegmentedControlToggleItemChange } from './types/segmented-control-toggle-item-change.class';\nimport { IdsSegmentedControlToggleButtonVariantType, IdsSegmentedControlToggleVariantType } from './types/segmented-control-toggle-variant.type';\n\nimport { SelectionModel } from '@angular/cdk/collections';\nimport { AfterContentInit, computed, contentChildren, Directive, forwardRef, Input, input, isDevMode, OnInit, output, signal } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ComponentBaseWithDefaults, IdsSizeType } from '@i-cell/ids-angular/core';\n\nconst defaultConfig = IDS_SEGMENTED_CONTROL_TOGGLE_DEFAULT_CONFIG_FACTORY();\n\n@Directive({\n selector: `ids-segmented-control-toggle[ngModel]:not([formControl]):not([formControlName]),\n ids-segmented-control-toggle[formControl]:not([ngModel]):not([formControlName]),\n ids-segmented-control-toggle[formControlName]:not([ngModel]):not([formControl])`,\n standalone: true,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => IdsSegmentedControlToggleDirective),\n multi: true,\n },\n ],\n host: {\n '[attr.role]': 'radiogroup',\n '(keydown)': '_handleKeyDown($event)',\n },\n})\nexport class IdsSegmentedControlToggleDirective\n extends ComponentBaseWithDefaults<IdsSegmentedControlToggleDefaultConfig>\n implements\n AfterContentInit,\n OnInit,\n ControlValueAccessor {\n protected override get _hostName(): string {\n return 'segmented-control-toggle';\n }\n\n protected readonly _defaultConfig = this._getDefaultConfig(defaultConfig, IDS_SEGMENTED_CONTROL_TOGGLE_DEFAULT_CONFIG);\n\n private _selectionModel?: SelectionModel<IdsSegmentedControlToggleItemComponent>;\n private _rawValue: unknown | unknown[];\n private _items = contentChildren<IdsSegmentedControlToggleItemComponent>(IdsSegmentedControlToggleItemComponent);\n\n public name = input<string>();\n public size = input<IdsSizeType>(this._defaultConfig.size);\n public variant = input<IdsSegmentedControlToggleVariantType>(this._defaultConfig.variant);\n public buttonVariant = input<IdsSegmentedControlToggleButtonVariantType>(this._defaultConfig.buttonVariant);\n public appearance = input<IdsSegmentedControlToggleAppearanceType>(this._defaultConfig.appearance);\n public disabled = signal<boolean>(false);\n\n protected _hostClasses = computed(() => this._getHostClasses([\n this.size(),\n this.variant(),\n this.appearance(),\n this.disabled() ? 'disabled' : null,\n ]));\n\n private _onChange: (value: unknown) => void = () => {};\n private _onTouched: () => unknown = () => {};\n\n @Input() public valueCompareFn?: (o1: IdsSegmentedControlToggleItemComponent, o2: IdsSegmentedControlToggleItemComponent) => boolean;\n\n public readonly itemChanges = output<IdsSegmentedControlToggleItemChange>();\n\n private _handleKeyDown(event: KeyboardEvent): void {\n // eslint-disable-next-line @stylistic/js/array-bracket-newline, @stylistic/js/array-element-newline\n const navigationKeys = ['ArrowLeft', 'ArrowRight', 'Enter', ' '];\n\n if (!navigationKeys.includes(event.key)) {\n return;\n }\n\n event.preventDefault();\n\n const items = this._items();\n const target = event.target as HTMLButtonElement;\n const buttonId = target.id;\n const index = items.findIndex((item) => item.id() === buttonId);\n\n switch (event.key) {\n case 'ArrowLeft': {\n if (index === 0) {\n return;\n }\n const prevItem = items[index - 1];\n prevItem.focus();\n break;\n }\n case 'ArrowRight': {\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].onClick();\n break;\n }\n default:\n return;\n }\n }\n\n public ngOnInit(): void {\n this._selectionModel = new SelectionModel<IdsSegmentedControlToggleItemComponent>(false, undefined, false, this.valueCompareFn);\n }\n\n public ngAfterContentInit(): void {\n const items = this._items();\n const minItemCount = 2;\n\n if (isDevMode() && (items.length < minItemCount)) {\n throw this._createHostError('invalid count of segmented control 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.disabled.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: IdsSegmentedControlToggleItemChange): 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\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","import { IdsSegmentedControlToggleItemChange } from './types/segmented-control-toggle-item-change.class';\n\nimport { IdsSegmentedControlToggleDirective } from '../segmented-control-toggle/segmented-control-toggle.directive';\n\nimport { ChangeDetectionStrategy, Component, computed, ElementRef, inject, input, OnInit, output, signal, viewChild, ViewEncapsulation } from '@angular/core';\nimport { addClassPrefix, coerceNumberAttribute, ComponentBase } from '@i-cell/ids-angular/core';\nimport { IdsIconComponent } from '@i-cell/ids-angular/icon';\n\n@Component({\n selector: 'ids-segmented-control-toggle-item',\n imports: [IdsIconComponent],\n templateUrl: './segmented-control-toggle-item.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class IdsSegmentedControlToggleItemComponent extends ComponentBase implements OnInit {\n protected override get _hostName(): string {\n return 'segmented-control-toggle-item';\n }\n\n protected readonly _group = inject(IdsSegmentedControlToggleDirective, { optional: true, skipSelf: true });\n\n private _buttonElement = viewChild.required<ElementRef<HTMLButtonElement>>('button');\n\n public selected = signal<boolean>(false);\n\n public name = input<string>();\n public value = input.required<unknown>();\n public label = input<string>();\n public ariaLabel = input<string>('', { alias: 'aria-label' });\n public ariaLabelledBy = input<string>('', { alias: 'aria-labeledby' });\n public tabIndex = input<number, unknown>(0, { transform: coerceNumberAttribute });\n public disabled = input<boolean>(false);\n\n protected _buttonId = computed(() => `${this.id()}-button`);\n protected _parentOrSelfDisabled = computed(() => this.disabled() || this._group?.disabled());\n protected _ariaPressed = signal(null); // it is signal because of the common template\n protected _ariaChecked = computed(() => this.selected());\n protected _role = signal('radio'); // it is signal because of the common template\n protected _buttonName = computed(() => this._group?.name());\n protected _buttonClasses = computed(() => addClassPrefix(this._hostClassName, this.selected() ? 'selected' : null));\n protected _hostClasses = computed(() => this._getHostClasses([this._group?.buttonVariant()]));\n\n public readonly changes = output<IdsSegmentedControlToggleItemChange>();\n\n public ngOnInit(): void {\n if (!this._group) {\n throw this._createHostError('component must be direct child of a segmented control toggle');\n }\n\n if (this._group.isItemPreSelectedByValue(this.value())) {\n this.selected.set(true);\n }\n }\n\n public onClick(): void {\n if (!this.selected()) {\n this.changes.emit(new IdsSegmentedControlToggleItemChange(this, this.value()));\n }\n }\n\n public focus(options?: FocusOptions): void {\n this._buttonElement().nativeElement.focus(options);\n }\n}\n","<button\n #button\n type=\"button\"\n [id]=\"_buttonId()\"\n [attr.role]=\"_role()\"\n [attr.tabindex]=\"_parentOrSelfDisabled() ? -1 : tabIndex()\"\n [attr.aria-pressed]=\"_ariaPressed()\"\n [attr.aria-checked]=\"_ariaChecked()\"\n [disabled]=\"_parentOrSelfDisabled() || null\"\n [attr.name]=\"_buttonName()\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-labelledby]=\"ariaLabelledBy()\"\n [class]=\"_buttonClasses()\"\n (click)=\"onClick()\"\n>\n @if (selected()) {\n <ids-icon aria-hidden=\"true\" fontIcon=\"check\" />\n }\n @if (!selected() || !label()) {\n <ng-content select=\"ids-icon\" />\n }\n\n {{ label() }}\n\n <ng-content select=\"[suffixContent]\" />\n</button>\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-segmented-control-toggle.mjs","sources":["../../../projects/widgets/segmented-control-toggle/types/segmented-control-toggle-appearance.type.ts","../../../projects/widgets/segmented-control-toggle/types/segmented-control-toggle-item-change.class.ts","../../../projects/widgets/segmented-control-toggle/types/segmented-control-toggle-variant.type.ts","../../../projects/widgets/segmented-control-toggle/segmented-control-toggle-defaults.ts","../../../projects/widgets/segmented-control-toggle/segmented-control-toggle.directive.ts","../../../projects/widgets/segmented-control-toggle/segmented-control-toggle-item.component.ts","../../../projects/widgets/segmented-control-toggle/segmented-control-toggle-item.component.html","../../../projects/widgets/segmented-control-toggle/i-cell-ids-angular-segmented-control-toggle.ts"],"sourcesContent":["export const IdsSegmentedControlToggleAppearance = {\n FILLED: 'filled',\n OUTLINED: 'outlined',\n} as const;\n\nexport type IdsSegmentedControlToggleAppearanceType =\n (typeof IdsSegmentedControlToggleAppearance)[keyof typeof IdsSegmentedControlToggleAppearance];\n","import { IdsSegmentedControlToggleItemComponent } from '../segmented-control-toggle-item.component';\n\nexport class IdsSegmentedControlToggleItemChange {\n constructor(\n public source: IdsSegmentedControlToggleItemComponent,\n public value: unknown,\n ) {}\n}\n","export const IdsSegmentedControlToggleVariant = {\n SURFACE: 'surface',\n LIGHT: 'light',\n} as const;\n\nexport type IdsSegmentedControlToggleVariantType =\n (typeof IdsSegmentedControlToggleVariant)[keyof typeof IdsSegmentedControlToggleVariant];\n\nexport const IdsSegmentedControlToggleButtonVariant = {\n PRIMARY: 'primary',\n SURFACE: 'surface',\n LIGHT: 'light',\n} as const;\n\nexport type IdsSegmentedControlToggleButtonVariantType =\n (typeof IdsSegmentedControlToggleButtonVariant)[keyof typeof IdsSegmentedControlToggleButtonVariant];\n","import { IdsSegmentedControlToggleAppearance, IdsSegmentedControlToggleAppearanceType } from './types/segmented-control-toggle-appearance.type';\nimport { IdsSegmentedControlToggleButtonVariant, IdsSegmentedControlToggleButtonVariantType, IdsSegmentedControlToggleVariant, IdsSegmentedControlToggleVariantType } from './types/segmented-control-toggle-variant.type';\n\nimport { InjectionToken } from '@angular/core';\nimport { IdsSize, IdsSizeType } from '@i-cell/ids-angular/core';\n\nexport interface IdsSegmentedControlToggleDefaultConfig {\n appearance?: IdsSegmentedControlToggleAppearanceType\n size?: IdsSizeType\n variant?: IdsSegmentedControlToggleVariantType\n buttonVariant?: IdsSegmentedControlToggleButtonVariantType\n}\n\nexport const IDS_SEGMENTED_CONTROL_TOGGLE_DEFAULT_CONFIG = new InjectionToken<IdsSegmentedControlToggleDefaultConfig>(\n 'IDS_SEGMENTED_CONTROL_TOGGLE_DEFAULT_CONFIG',\n {\n providedIn: 'root',\n factory: IDS_SEGMENTED_CONTROL_TOGGLE_DEFAULT_CONFIG_FACTORY,\n },\n);\n\n// eslint-disable-next-line id-length\nexport function IDS_SEGMENTED_CONTROL_TOGGLE_DEFAULT_CONFIG_FACTORY(): Required<IdsSegmentedControlToggleDefaultConfig> {\n return {\n appearance: IdsSegmentedControlToggleAppearance.FILLED,\n size: IdsSize.COMPACT,\n variant: IdsSegmentedControlToggleVariant.SURFACE,\n buttonVariant: IdsSegmentedControlToggleButtonVariant.SURFACE,\n };\n}\n","import { IDS_SEGMENTED_CONTROL_TOGGLE_DEFAULT_CONFIG, IDS_SEGMENTED_CONTROL_TOGGLE_DEFAULT_CONFIG_FACTORY, IdsSegmentedControlToggleDefaultConfig } from './segmented-control-toggle-defaults';\nimport { IdsSegmentedControlToggleItemComponent } from './segmented-control-toggle-item.component';\nimport { IdsSegmentedControlToggleAppearanceType } from './types/segmented-control-toggle-appearance.type';\nimport { IdsSegmentedControlToggleItemChange } from './types/segmented-control-toggle-item-change.class';\nimport { IdsSegmentedControlToggleButtonVariantType, IdsSegmentedControlToggleVariantType } from './types/segmented-control-toggle-variant.type';\n\nimport { SelectionModel } from '@angular/cdk/collections';\nimport { AfterContentInit, computed, contentChildren, Directive, forwardRef, Input, input, isDevMode, OnInit, output, signal } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ComponentBaseWithDefaults, IdsSizeType } from '@i-cell/ids-angular/core';\n\nconst defaultConfig = IDS_SEGMENTED_CONTROL_TOGGLE_DEFAULT_CONFIG_FACTORY();\n\n@Directive({\n selector: `ids-segmented-control-toggle[ngModel]:not([formControl]):not([formControlName]),\n ids-segmented-control-toggle[formControl]:not([ngModel]):not([formControlName]),\n ids-segmented-control-toggle[formControlName]:not([ngModel]):not([formControl])`,\n standalone: true,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => IdsSegmentedControlToggleDirective),\n multi: true,\n },\n ],\n host: {\n '[attr.role]': 'radiogroup',\n '(keydown)': '_handleKeyDown($event)',\n },\n})\nexport class IdsSegmentedControlToggleDirective\n extends ComponentBaseWithDefaults<IdsSegmentedControlToggleDefaultConfig>\n implements\n AfterContentInit,\n OnInit,\n ControlValueAccessor {\n protected override get _hostName(): string {\n return 'segmented-control-toggle';\n }\n\n protected readonly _defaultConfig = this._getDefaultConfig(defaultConfig, IDS_SEGMENTED_CONTROL_TOGGLE_DEFAULT_CONFIG);\n\n private _selectionModel?: SelectionModel<IdsSegmentedControlToggleItemComponent>;\n private _rawValue: unknown | unknown[];\n private _items = contentChildren<IdsSegmentedControlToggleItemComponent>(IdsSegmentedControlToggleItemComponent);\n\n public name = input<string>();\n public size = input<IdsSizeType>(this._defaultConfig.size);\n public variant = input<IdsSegmentedControlToggleVariantType>(this._defaultConfig.variant);\n public buttonVariant = input<IdsSegmentedControlToggleButtonVariantType>(this._defaultConfig.buttonVariant);\n public appearance = input<IdsSegmentedControlToggleAppearanceType>(this._defaultConfig.appearance);\n public disabled = signal<boolean>(false);\n\n protected _hostClasses = computed(() => this._getHostClasses([\n this.size(),\n this.variant(),\n this.appearance(),\n this.disabled() ? 'disabled' : null,\n ]));\n\n private _onChange: (value: unknown) => void = () => {};\n private _onTouched: () => unknown = () => {};\n\n @Input() public valueCompareFn?: (o1: IdsSegmentedControlToggleItemComponent, o2: IdsSegmentedControlToggleItemComponent) => boolean;\n\n public readonly itemChanges = output<IdsSegmentedControlToggleItemChange>();\n\n private _handleKeyDown(event: KeyboardEvent): void {\n // eslint-disable-next-line @stylistic/js/array-bracket-newline, @stylistic/js/array-element-newline\n const navigationKeys = ['ArrowLeft', 'ArrowRight', 'Enter', ' '];\n\n if (!navigationKeys.includes(event.key)) {\n return;\n }\n\n event.preventDefault();\n\n const items = this._items();\n const target = event.target as HTMLButtonElement;\n const buttonId = target.id;\n const index = items.findIndex((item) => item.id() === buttonId);\n\n switch (event.key) {\n case 'ArrowLeft': {\n if (index === 0) {\n return;\n }\n const prevItem = items[index - 1];\n prevItem.focus();\n break;\n }\n case 'ArrowRight': {\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].onClick();\n break;\n }\n default:\n return;\n }\n }\n\n public ngOnInit(): void {\n this._selectionModel = new SelectionModel<IdsSegmentedControlToggleItemComponent>(false, undefined, false, this.valueCompareFn);\n }\n\n public ngAfterContentInit(): void {\n const items = this._items();\n const minItemCount = 2;\n\n if (isDevMode() && (items.length < minItemCount)) {\n throw this._createHostError('invalid count of segmented control 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.disabled.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: IdsSegmentedControlToggleItemChange): 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\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","import { IdsSegmentedControlToggleItemChange } from './types/segmented-control-toggle-item-change.class';\n\nimport { IdsSegmentedControlToggleDirective } from '../segmented-control-toggle/segmented-control-toggle.directive';\n\nimport { ChangeDetectionStrategy, Component, computed, ElementRef, inject, input, OnInit, output, signal, viewChild, ViewEncapsulation } from '@angular/core';\nimport { addClassPrefix, coerceNumberAttribute, ComponentBase } from '@i-cell/ids-angular/core';\nimport { IdsIconComponent } from '@i-cell/ids-angular/icon';\n\n@Component({\n selector: 'ids-segmented-control-toggle-item',\n imports: [IdsIconComponent],\n templateUrl: './segmented-control-toggle-item.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class IdsSegmentedControlToggleItemComponent extends ComponentBase implements OnInit {\n protected override get _hostName(): string {\n return 'segmented-control-toggle-item';\n }\n\n protected readonly _group = inject(IdsSegmentedControlToggleDirective, { optional: true, skipSelf: true });\n\n private _buttonElement = viewChild.required<ElementRef<HTMLButtonElement>>('button');\n\n public selected = signal<boolean>(false);\n\n public name = input<string>();\n public value = input.required<unknown>();\n public label = input<string>();\n public ariaLabel = input<string>('', { alias: 'aria-label' });\n public ariaLabelledBy = input<string>('', { alias: 'aria-labeledby' });\n public tabIndex = input<number, unknown>(0, { transform: coerceNumberAttribute });\n public disabled = input<boolean>(false);\n\n protected _buttonId = computed(() => `${this.id()}-button`);\n protected _parentOrSelfDisabled = computed(() => this.disabled() || this._group?.disabled());\n protected _ariaPressed = signal(null); // it is signal because of the common template\n protected _ariaChecked = computed(() => this.selected());\n protected _role = signal('radio'); // it is signal because of the common template\n protected _buttonName = computed(() => this._group?.name());\n protected _buttonClasses = computed(() => addClassPrefix(this._hostClassName, this.selected() ? 'selected' : null));\n protected _hostClasses = computed(() => this._getHostClasses([this._group?.buttonVariant()]));\n\n public readonly changes = output<IdsSegmentedControlToggleItemChange>();\n\n public ngOnInit(): void {\n if (!this._group) {\n throw this._createHostError('component must be direct child of a segmented control toggle');\n }\n\n if (this._group.isItemPreSelectedByValue(this.value())) {\n this.selected.set(true);\n }\n }\n\n public onClick(): void {\n if (!this.selected()) {\n this.changes.emit(new IdsSegmentedControlToggleItemChange(this, this.value()));\n }\n }\n\n public focus(options?: FocusOptions): void {\n this._buttonElement().nativeElement.focus(options);\n }\n}\n","<button\n #button\n type=\"button\"\n [id]=\"_buttonId()\"\n [attr.role]=\"_role()\"\n [attr.tabindex]=\"_parentOrSelfDisabled() ? -1 : tabIndex()\"\n [attr.aria-pressed]=\"_ariaPressed()\"\n [attr.aria-checked]=\"_ariaChecked()\"\n [disabled]=\"_parentOrSelfDisabled() || null\"\n [attr.name]=\"_buttonName()\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-labelledby]=\"ariaLabelledBy()\"\n [class]=\"_buttonClasses()\"\n (click)=\"onClick()\"\n>\n @if (selected()) {\n <ids-icon aria-hidden=\"true\" fontIcon=\"done\" />\n }\n @if (!selected() || !label()) {\n <ng-content select=\"ids-icon\" />\n }\n\n {{ label() }}\n\n <ng-content select=\"[suffixContent]\" />\n</button>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -268,11 +268,11 @@ class IdsSegmentedControlItemComponent extends ComponentBase {
268
268
  this._buttonElement().nativeElement.focus(options);
269
269
  }
270
270
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: IdsSegmentedControlItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
271
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.7", type: IdsSegmentedControlItemComponent, isStandalone: true, selector: "ids-segmented-control-item", inputs: { name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: true, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "aria-label", isSignal: true, isRequired: false, transformFunction: null }, ariaLabelledBy: { classPropertyName: "ariaLabelledBy", publicName: "aria-labeledby", 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: "_buttonElement", first: true, predicate: ["button"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<button\n #button\n type=\"button\"\n [id]=\"_buttonId()\"\n [attr.role]=\"_role()\"\n [attr.tabindex]=\"_parentOrSelfDisabled() ? -1 : tabIndex()\"\n [attr.aria-pressed]=\"_ariaPressed()\"\n [attr.aria-checked]=\"_ariaChecked()\"\n [disabled]=\"_parentOrSelfDisabled() || null\"\n [attr.name]=\"_buttonName()\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-labelledby]=\"ariaLabelledBy()\"\n [class]=\"_buttonClasses()\"\n (click)=\"onClick()\"\n>\n @if (selected()) {\n <ids-icon aria-hidden=\"true\" fontIcon=\"check\" />\n }\n @if (!selected() || !label()) {\n <ng-content select=\"ids-icon\" />\n }\n\n {{ label() }}\n\n <ng-content select=\"[suffixContent]\" />\n</button>\n", dependencies: [{ kind: "component", type: IdsIconComponent, selector: "ids-icon", inputs: ["size", "sizeCollection", "variant", "fontIcon", "svgIcon", "aria-hidden"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
271
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.7", type: IdsSegmentedControlItemComponent, isStandalone: true, selector: "ids-segmented-control-item", inputs: { name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: true, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "aria-label", isSignal: true, isRequired: false, transformFunction: null }, ariaLabelledBy: { classPropertyName: "ariaLabelledBy", publicName: "aria-labeledby", 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: "_buttonElement", first: true, predicate: ["button"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<button\n #button\n type=\"button\"\n [id]=\"_buttonId()\"\n [attr.role]=\"_role()\"\n [attr.tabindex]=\"_parentOrSelfDisabled() ? -1 : tabIndex()\"\n [attr.aria-pressed]=\"_ariaPressed()\"\n [attr.aria-checked]=\"_ariaChecked()\"\n [disabled]=\"_parentOrSelfDisabled() || null\"\n [attr.name]=\"_buttonName()\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-labelledby]=\"ariaLabelledBy()\"\n [class]=\"_buttonClasses()\"\n (click)=\"onClick()\"\n>\n @if (selected()) {\n <ids-icon aria-hidden=\"true\" fontIcon=\"done\" />\n }\n @if (!selected() || !label()) {\n <ng-content select=\"ids-icon\" />\n }\n\n {{ label() }}\n\n <ng-content select=\"[suffixContent]\" />\n</button>\n", dependencies: [{ kind: "component", type: IdsIconComponent, selector: "ids-icon", inputs: ["size", "sizeCollection", "variant", "fontIcon", "svgIcon", "aria-hidden"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
272
272
  }
273
273
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: IdsSegmentedControlItemComponent, decorators: [{
274
274
  type: Component,
275
- args: [{ selector: 'ids-segmented-control-item', imports: [IdsIconComponent], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<button\n #button\n type=\"button\"\n [id]=\"_buttonId()\"\n [attr.role]=\"_role()\"\n [attr.tabindex]=\"_parentOrSelfDisabled() ? -1 : tabIndex()\"\n [attr.aria-pressed]=\"_ariaPressed()\"\n [attr.aria-checked]=\"_ariaChecked()\"\n [disabled]=\"_parentOrSelfDisabled() || null\"\n [attr.name]=\"_buttonName()\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-labelledby]=\"ariaLabelledBy()\"\n [class]=\"_buttonClasses()\"\n (click)=\"onClick()\"\n>\n @if (selected()) {\n <ids-icon aria-hidden=\"true\" fontIcon=\"check\" />\n }\n @if (!selected() || !label()) {\n <ng-content select=\"ids-icon\" />\n }\n\n {{ label() }}\n\n <ng-content select=\"[suffixContent]\" />\n</button>\n" }]
275
+ args: [{ selector: 'ids-segmented-control-item', imports: [IdsIconComponent], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<button\n #button\n type=\"button\"\n [id]=\"_buttonId()\"\n [attr.role]=\"_role()\"\n [attr.tabindex]=\"_parentOrSelfDisabled() ? -1 : tabIndex()\"\n [attr.aria-pressed]=\"_ariaPressed()\"\n [attr.aria-checked]=\"_ariaChecked()\"\n [disabled]=\"_parentOrSelfDisabled() || null\"\n [attr.name]=\"_buttonName()\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-labelledby]=\"ariaLabelledBy()\"\n [class]=\"_buttonClasses()\"\n (click)=\"onClick()\"\n>\n @if (selected()) {\n <ids-icon aria-hidden=\"true\" fontIcon=\"done\" />\n }\n @if (!selected() || !label()) {\n <ng-content select=\"ids-icon\" />\n }\n\n {{ label() }}\n\n <ng-content select=\"[suffixContent]\" />\n</button>\n" }]
276
276
  }] });
277
277
 
278
278
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"i-cell-ids-angular-segmented-control.mjs","sources":["../../../projects/widgets/segmented-control/types/segmented-control-appearance.type.ts","../../../projects/widgets/segmented-control/types/segmented-control-item-change.class.ts","../../../projects/widgets/segmented-control/types/segmented-control-variant.type.ts","../../../projects/widgets/segmented-control/segmented-control-defaults.ts","../../../projects/widgets/segmented-control/segmented-control.directive.ts","../../../projects/widgets/segmented-control/segmented-control-item.component.ts","../../../projects/widgets/segmented-control/segmented-control-item.component.html","../../../projects/widgets/segmented-control/i-cell-ids-angular-segmented-control.ts"],"sourcesContent":["export const IdsSegmentedControlAppearance = {\n OUTLINED: 'outlined',\n} as const;\n\nexport type IdsSegmentedControlAppearanceType = (typeof IdsSegmentedControlAppearance)[keyof typeof IdsSegmentedControlAppearance];\n","import { IdsSegmentedControlItemComponent } from '../segmented-control-item.component';\nexport class IdsSegmentedControlItemChange {\n constructor(\n public source: IdsSegmentedControlItemComponent,\n public selected: boolean,\n public value: unknown,\n ) {}\n}\n","export const IdsSegmentedControlVariant = {\n PRIMARY: 'primary',\n SURFACE: 'surface',\n LIGHT: 'light',\n} as const;\n\nexport type IdsSegmentedControlVariantType = (typeof IdsSegmentedControlVariant)[keyof typeof IdsSegmentedControlVariant];\n","import { IdsSegmentedControlAppearance, IdsSegmentedControlAppearanceType } from './types/segmented-control-appearance.type';\nimport { IdsSegmentedControlVariant, IdsSegmentedControlVariantType } from './types/segmented-control-variant.type';\n\nimport { InjectionToken } from '@angular/core';\nimport { IdsSize, IdsSizeType } from '@i-cell/ids-angular/core';\n\nexport interface IdsSegmentedControlDefaultConfig {\n appearance?: IdsSegmentedControlAppearanceType\n size?: IdsSizeType\n variant?: IdsSegmentedControlVariantType\n}\n\nexport const IDS_SEGMENTED_CONTROL_DEFAULT_CONFIG = new InjectionToken<IdsSegmentedControlDefaultConfig>(\n 'IDS_SEGMENTED_CONTROL_DEFAULT_CONFIG',\n {\n providedIn: 'root',\n factory: IDS_SEGMENTED_CONTROL_DEFAULT_CONFIG_FACTORY,\n },\n);\n\nexport function IDS_SEGMENTED_CONTROL_DEFAULT_CONFIG_FACTORY(): Required<IdsSegmentedControlDefaultConfig> {\n return {\n appearance: IdsSegmentedControlAppearance.OUTLINED,\n size: IdsSize.COMPACT,\n variant: IdsSegmentedControlVariant.SURFACE,\n };\n}\n","import { IDS_SEGMENTED_CONTROL_DEFAULT_CONFIG, IDS_SEGMENTED_CONTROL_DEFAULT_CONFIG_FACTORY, IdsSegmentedControlDefaultConfig } from './segmented-control-defaults';\nimport { IdsSegmentedControlItemComponent } from './segmented-control-item.component';\nimport { IdsSegmentedControlAppearanceType } from './types/segmented-control-appearance.type';\nimport { IdsSegmentedControlItemChange } from './types/segmented-control-item-change.class';\nimport { IdsSegmentedControlVariantType } from './types/segmented-control-variant.type';\n\nimport { SelectionModel } from '@angular/cdk/collections';\nimport { AfterContentInit, computed, contentChildren, Directive, forwardRef, Input, input, isDevMode, OnInit, output, signal } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ComponentBaseWithDefaults, IdsSizeType } from '@i-cell/ids-angular/core';\n\nconst defaultConfig = IDS_SEGMENTED_CONTROL_DEFAULT_CONFIG_FACTORY();\n\n@Directive({\n selector: `ids-segmented-control[ngModel]:not([formControl]):not([formControlName]),\n ids-segmented-control[formControl]:not([ngModel]):not([formControlName]),\n ids-segmented-control[formControlName]:not([ngModel]):not([formControl])`,\n standalone: true,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => IdsSegmentedControlDirective),\n multi: true,\n },\n ],\n host: {\n '[attr.role]': 'multiSelect() ? \"group\" : \"radiogroup\"',\n '(keydown)': '_handleKeyDown($event)',\n },\n})\nexport class IdsSegmentedControlDirective\n extends ComponentBaseWithDefaults<IdsSegmentedControlDefaultConfig>\n implements\n AfterContentInit,\n OnInit,\n ControlValueAccessor {\n protected override get _hostName(): string {\n return 'segmented-control';\n }\n\n protected readonly _defaultConfig = this._getDefaultConfig(defaultConfig, IDS_SEGMENTED_CONTROL_DEFAULT_CONFIG);\n\n private _selectionModel?: SelectionModel<IdsSegmentedControlItemComponent>;\n private _rawValue: unknown | unknown[];\n private _items = contentChildren<IdsSegmentedControlItemComponent>(IdsSegmentedControlItemComponent);\n\n public name = input<string>();\n public size = input<IdsSizeType>(this._defaultConfig.size);\n public variant = input<IdsSegmentedControlVariantType>(this._defaultConfig.variant);\n public appearance = input<IdsSegmentedControlAppearanceType>(this._defaultConfig.appearance);\n public multiSelect = input<boolean>(false);\n public disabled = signal<boolean>(false);\n\n protected _hostClasses = computed(() => this._getHostClasses([\n this.size(),\n this.variant(),\n this.appearance(),\n this.disabled() ? 'disabled' : null,\n ]));\n\n private _onChange: (value: unknown) => void = () => {};\n private _onTouched: () => unknown = () => {};\n\n @Input() public valueCompareFn?: (o1: IdsSegmentedControlItemComponent, o2: IdsSegmentedControlItemComponent) => boolean;\n\n public readonly itemChanges = output<IdsSegmentedControlItemChange>();\n\n private _handleKeyDown(event: KeyboardEvent): void {\n // eslint-disable-next-line @stylistic/js/array-bracket-newline, @stylistic/js/array-element-newline\n const navigationKeys = ['ArrowLeft', 'ArrowRight', 'Enter', ' '];\n\n if (!navigationKeys.includes(event.key)) {\n return;\n }\n\n event.preventDefault();\n\n const items = this._items();\n const target = event.target as HTMLButtonElement;\n const buttonId = target.id;\n const index = items.findIndex((item) => item.id() === buttonId);\n\n switch (event.key) {\n case 'ArrowLeft': {\n if (index === 0) {\n return;\n }\n const prevItem = items[index - 1];\n prevItem.focus();\n break;\n }\n case 'ArrowRight': {\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].onClick();\n break;\n }\n default:\n return;\n }\n }\n\n public ngOnInit(): void {\n this._selectionModel = new SelectionModel<IdsSegmentedControlItemComponent>(this.multiSelect(), undefined, false, this.valueCompareFn);\n }\n\n public ngAfterContentInit(): void {\n const items = this._items();\n const minItemCount = 2;\n\n if (isDevMode() && (items.length < minItemCount)) {\n throw this._createHostError('invalid count of segmented control 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.disabled.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: IdsSegmentedControlItemChange): void {\n const { source, selected } = change;\n if (!this.multiSelect()) {\n this._clearSelection();\n }\n source.selected.set(selected);\n if (selected) {\n this._selectionModel?.select(source);\n } else {\n this._selectionModel?.deselect(source);\n }\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 if (this.multiSelect() && value) {\n if (!Array.isArray(value)) {\n throw this._createHostError('value must be an array in multiple-selection mode');\n }\n\n this._clearSelection();\n value.forEach((currentValue: unknown) => this._selectValue(currentValue));\n } else {\n this._clearSelection();\n this._selectValue(value);\n }\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 if (this.multiSelect()) {\n this._onChange(selectionModelValues);\n } else {\n this._onChange(selectionModelValues?.[0]);\n }\n }\n\n public isItemPreSelectedByValue(itemValue: unknown): boolean {\n if (this._rawValue === undefined) {\n return false;\n }\n\n if (this.multiSelect() && Array.isArray(this._rawValue)) {\n return this._rawValue.some((value) => itemValue != null && value === itemValue);\n }\n\n return itemValue === this._rawValue;\n }\n}\n","import { IdsSegmentedControlDirective } from './segmented-control.directive';\nimport { IdsSegmentedControlItemChange } from './types/segmented-control-item-change.class';\n\nimport { ChangeDetectionStrategy, Component, computed, ElementRef, inject, input, OnInit, output, signal, viewChild, ViewEncapsulation } from '@angular/core';\nimport { addClassPrefix, coerceNumberAttribute, ComponentBase } from '@i-cell/ids-angular/core';\nimport { IdsIconComponent } from '@i-cell/ids-angular/icon';\n\n@Component({\n selector: 'ids-segmented-control-item',\n imports: [IdsIconComponent],\n templateUrl: './segmented-control-item.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class IdsSegmentedControlItemComponent extends ComponentBase implements OnInit {\n protected override get _hostName(): string {\n return 'segmented-control-item';\n }\n\n protected readonly _group = inject(IdsSegmentedControlDirective, { optional: true, skipSelf: true });\n\n private _buttonElement = viewChild.required<ElementRef<HTMLButtonElement>>('button');\n\n public selected = signal<boolean>(false);\n\n public name = input<string>();\n public value = input.required<unknown>();\n public label = input<string>();\n public ariaLabel = input<string>('', { alias: 'aria-label' });\n public ariaLabelledBy = input<string>('', { alias: 'aria-labeledby' });\n public tabIndex = input<number, unknown>(0, { transform: coerceNumberAttribute });\n public disabled = input<boolean>(false);\n\n protected _buttonId = computed(() => `${this.id()}-button`);\n protected _parentOrSelfDisabled = computed(() => this.disabled() || this._group?.disabled());\n protected _multiSelect = computed(() => this._group?.multiSelect());\n protected _ariaPressed = computed(() => (this._multiSelect() ? this.selected() : null));\n protected _ariaChecked = computed(() => (!this._multiSelect() ? this.selected() : null));\n protected _role = computed(() => (this._multiSelect() ? 'button' : 'radio'));\n protected _buttonName = computed(() => (this._multiSelect() ? this.name() : this._group?.name()));\n protected _buttonClasses = computed(() => addClassPrefix(this._hostClassName, this.selected() ? 'selected' : null));\n protected _hostClasses = computed(() => this._getHostClasses([]));\n\n public readonly changes = output<IdsSegmentedControlItemChange>();\n\n public ngOnInit(): void {\n if (!this._group) {\n throw this._createHostError('component must be direct child of a segmented control');\n }\n\n if (this._group.isItemPreSelectedByValue(this.value())) {\n this.selected.set(true);\n }\n }\n\n public onClick(): void {\n if (this._multiSelect() || !this.selected()) {\n this.changes.emit(new IdsSegmentedControlItemChange(this, !this.selected(), this.value()));\n }\n }\n\n public focus(options?: FocusOptions): void {\n this._buttonElement().nativeElement.focus(options);\n }\n}\n","<button\n #button\n type=\"button\"\n [id]=\"_buttonId()\"\n [attr.role]=\"_role()\"\n [attr.tabindex]=\"_parentOrSelfDisabled() ? -1 : tabIndex()\"\n [attr.aria-pressed]=\"_ariaPressed()\"\n [attr.aria-checked]=\"_ariaChecked()\"\n [disabled]=\"_parentOrSelfDisabled() || null\"\n [attr.name]=\"_buttonName()\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-labelledby]=\"ariaLabelledBy()\"\n [class]=\"_buttonClasses()\"\n (click)=\"onClick()\"\n>\n @if (selected()) {\n <ids-icon aria-hidden=\"true\" fontIcon=\"check\" />\n }\n @if (!selected() || !label()) {\n <ng-content select=\"ids-icon\" />\n }\n\n {{ label() }}\n\n <ng-content select=\"[suffixContent]\" />\n</button>\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-segmented-control.mjs","sources":["../../../projects/widgets/segmented-control/types/segmented-control-appearance.type.ts","../../../projects/widgets/segmented-control/types/segmented-control-item-change.class.ts","../../../projects/widgets/segmented-control/types/segmented-control-variant.type.ts","../../../projects/widgets/segmented-control/segmented-control-defaults.ts","../../../projects/widgets/segmented-control/segmented-control.directive.ts","../../../projects/widgets/segmented-control/segmented-control-item.component.ts","../../../projects/widgets/segmented-control/segmented-control-item.component.html","../../../projects/widgets/segmented-control/i-cell-ids-angular-segmented-control.ts"],"sourcesContent":["export const IdsSegmentedControlAppearance = {\n OUTLINED: 'outlined',\n} as const;\n\nexport type IdsSegmentedControlAppearanceType = (typeof IdsSegmentedControlAppearance)[keyof typeof IdsSegmentedControlAppearance];\n","import { IdsSegmentedControlItemComponent } from '../segmented-control-item.component';\nexport class IdsSegmentedControlItemChange {\n constructor(\n public source: IdsSegmentedControlItemComponent,\n public selected: boolean,\n public value: unknown,\n ) {}\n}\n","export const IdsSegmentedControlVariant = {\n PRIMARY: 'primary',\n SURFACE: 'surface',\n LIGHT: 'light',\n} as const;\n\nexport type IdsSegmentedControlVariantType = (typeof IdsSegmentedControlVariant)[keyof typeof IdsSegmentedControlVariant];\n","import { IdsSegmentedControlAppearance, IdsSegmentedControlAppearanceType } from './types/segmented-control-appearance.type';\nimport { IdsSegmentedControlVariant, IdsSegmentedControlVariantType } from './types/segmented-control-variant.type';\n\nimport { InjectionToken } from '@angular/core';\nimport { IdsSize, IdsSizeType } from '@i-cell/ids-angular/core';\n\nexport interface IdsSegmentedControlDefaultConfig {\n appearance?: IdsSegmentedControlAppearanceType\n size?: IdsSizeType\n variant?: IdsSegmentedControlVariantType\n}\n\nexport const IDS_SEGMENTED_CONTROL_DEFAULT_CONFIG = new InjectionToken<IdsSegmentedControlDefaultConfig>(\n 'IDS_SEGMENTED_CONTROL_DEFAULT_CONFIG',\n {\n providedIn: 'root',\n factory: IDS_SEGMENTED_CONTROL_DEFAULT_CONFIG_FACTORY,\n },\n);\n\nexport function IDS_SEGMENTED_CONTROL_DEFAULT_CONFIG_FACTORY(): Required<IdsSegmentedControlDefaultConfig> {\n return {\n appearance: IdsSegmentedControlAppearance.OUTLINED,\n size: IdsSize.COMPACT,\n variant: IdsSegmentedControlVariant.SURFACE,\n };\n}\n","import { IDS_SEGMENTED_CONTROL_DEFAULT_CONFIG, IDS_SEGMENTED_CONTROL_DEFAULT_CONFIG_FACTORY, IdsSegmentedControlDefaultConfig } from './segmented-control-defaults';\nimport { IdsSegmentedControlItemComponent } from './segmented-control-item.component';\nimport { IdsSegmentedControlAppearanceType } from './types/segmented-control-appearance.type';\nimport { IdsSegmentedControlItemChange } from './types/segmented-control-item-change.class';\nimport { IdsSegmentedControlVariantType } from './types/segmented-control-variant.type';\n\nimport { SelectionModel } from '@angular/cdk/collections';\nimport { AfterContentInit, computed, contentChildren, Directive, forwardRef, Input, input, isDevMode, OnInit, output, signal } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ComponentBaseWithDefaults, IdsSizeType } from '@i-cell/ids-angular/core';\n\nconst defaultConfig = IDS_SEGMENTED_CONTROL_DEFAULT_CONFIG_FACTORY();\n\n@Directive({\n selector: `ids-segmented-control[ngModel]:not([formControl]):not([formControlName]),\n ids-segmented-control[formControl]:not([ngModel]):not([formControlName]),\n ids-segmented-control[formControlName]:not([ngModel]):not([formControl])`,\n standalone: true,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => IdsSegmentedControlDirective),\n multi: true,\n },\n ],\n host: {\n '[attr.role]': 'multiSelect() ? \"group\" : \"radiogroup\"',\n '(keydown)': '_handleKeyDown($event)',\n },\n})\nexport class IdsSegmentedControlDirective\n extends ComponentBaseWithDefaults<IdsSegmentedControlDefaultConfig>\n implements\n AfterContentInit,\n OnInit,\n ControlValueAccessor {\n protected override get _hostName(): string {\n return 'segmented-control';\n }\n\n protected readonly _defaultConfig = this._getDefaultConfig(defaultConfig, IDS_SEGMENTED_CONTROL_DEFAULT_CONFIG);\n\n private _selectionModel?: SelectionModel<IdsSegmentedControlItemComponent>;\n private _rawValue: unknown | unknown[];\n private _items = contentChildren<IdsSegmentedControlItemComponent>(IdsSegmentedControlItemComponent);\n\n public name = input<string>();\n public size = input<IdsSizeType>(this._defaultConfig.size);\n public variant = input<IdsSegmentedControlVariantType>(this._defaultConfig.variant);\n public appearance = input<IdsSegmentedControlAppearanceType>(this._defaultConfig.appearance);\n public multiSelect = input<boolean>(false);\n public disabled = signal<boolean>(false);\n\n protected _hostClasses = computed(() => this._getHostClasses([\n this.size(),\n this.variant(),\n this.appearance(),\n this.disabled() ? 'disabled' : null,\n ]));\n\n private _onChange: (value: unknown) => void = () => {};\n private _onTouched: () => unknown = () => {};\n\n @Input() public valueCompareFn?: (o1: IdsSegmentedControlItemComponent, o2: IdsSegmentedControlItemComponent) => boolean;\n\n public readonly itemChanges = output<IdsSegmentedControlItemChange>();\n\n private _handleKeyDown(event: KeyboardEvent): void {\n // eslint-disable-next-line @stylistic/js/array-bracket-newline, @stylistic/js/array-element-newline\n const navigationKeys = ['ArrowLeft', 'ArrowRight', 'Enter', ' '];\n\n if (!navigationKeys.includes(event.key)) {\n return;\n }\n\n event.preventDefault();\n\n const items = this._items();\n const target = event.target as HTMLButtonElement;\n const buttonId = target.id;\n const index = items.findIndex((item) => item.id() === buttonId);\n\n switch (event.key) {\n case 'ArrowLeft': {\n if (index === 0) {\n return;\n }\n const prevItem = items[index - 1];\n prevItem.focus();\n break;\n }\n case 'ArrowRight': {\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].onClick();\n break;\n }\n default:\n return;\n }\n }\n\n public ngOnInit(): void {\n this._selectionModel = new SelectionModel<IdsSegmentedControlItemComponent>(this.multiSelect(), undefined, false, this.valueCompareFn);\n }\n\n public ngAfterContentInit(): void {\n const items = this._items();\n const minItemCount = 2;\n\n if (isDevMode() && (items.length < minItemCount)) {\n throw this._createHostError('invalid count of segmented control 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.disabled.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: IdsSegmentedControlItemChange): void {\n const { source, selected } = change;\n if (!this.multiSelect()) {\n this._clearSelection();\n }\n source.selected.set(selected);\n if (selected) {\n this._selectionModel?.select(source);\n } else {\n this._selectionModel?.deselect(source);\n }\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 if (this.multiSelect() && value) {\n if (!Array.isArray(value)) {\n throw this._createHostError('value must be an array in multiple-selection mode');\n }\n\n this._clearSelection();\n value.forEach((currentValue: unknown) => this._selectValue(currentValue));\n } else {\n this._clearSelection();\n this._selectValue(value);\n }\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 if (this.multiSelect()) {\n this._onChange(selectionModelValues);\n } else {\n this._onChange(selectionModelValues?.[0]);\n }\n }\n\n public isItemPreSelectedByValue(itemValue: unknown): boolean {\n if (this._rawValue === undefined) {\n return false;\n }\n\n if (this.multiSelect() && Array.isArray(this._rawValue)) {\n return this._rawValue.some((value) => itemValue != null && value === itemValue);\n }\n\n return itemValue === this._rawValue;\n }\n}\n","import { IdsSegmentedControlDirective } from './segmented-control.directive';\nimport { IdsSegmentedControlItemChange } from './types/segmented-control-item-change.class';\n\nimport { ChangeDetectionStrategy, Component, computed, ElementRef, inject, input, OnInit, output, signal, viewChild, ViewEncapsulation } from '@angular/core';\nimport { addClassPrefix, coerceNumberAttribute, ComponentBase } from '@i-cell/ids-angular/core';\nimport { IdsIconComponent } from '@i-cell/ids-angular/icon';\n\n@Component({\n selector: 'ids-segmented-control-item',\n imports: [IdsIconComponent],\n templateUrl: './segmented-control-item.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class IdsSegmentedControlItemComponent extends ComponentBase implements OnInit {\n protected override get _hostName(): string {\n return 'segmented-control-item';\n }\n\n protected readonly _group = inject(IdsSegmentedControlDirective, { optional: true, skipSelf: true });\n\n private _buttonElement = viewChild.required<ElementRef<HTMLButtonElement>>('button');\n\n public selected = signal<boolean>(false);\n\n public name = input<string>();\n public value = input.required<unknown>();\n public label = input<string>();\n public ariaLabel = input<string>('', { alias: 'aria-label' });\n public ariaLabelledBy = input<string>('', { alias: 'aria-labeledby' });\n public tabIndex = input<number, unknown>(0, { transform: coerceNumberAttribute });\n public disabled = input<boolean>(false);\n\n protected _buttonId = computed(() => `${this.id()}-button`);\n protected _parentOrSelfDisabled = computed(() => this.disabled() || this._group?.disabled());\n protected _multiSelect = computed(() => this._group?.multiSelect());\n protected _ariaPressed = computed(() => (this._multiSelect() ? this.selected() : null));\n protected _ariaChecked = computed(() => (!this._multiSelect() ? this.selected() : null));\n protected _role = computed(() => (this._multiSelect() ? 'button' : 'radio'));\n protected _buttonName = computed(() => (this._multiSelect() ? this.name() : this._group?.name()));\n protected _buttonClasses = computed(() => addClassPrefix(this._hostClassName, this.selected() ? 'selected' : null));\n protected _hostClasses = computed(() => this._getHostClasses([]));\n\n public readonly changes = output<IdsSegmentedControlItemChange>();\n\n public ngOnInit(): void {\n if (!this._group) {\n throw this._createHostError('component must be direct child of a segmented control');\n }\n\n if (this._group.isItemPreSelectedByValue(this.value())) {\n this.selected.set(true);\n }\n }\n\n public onClick(): void {\n if (this._multiSelect() || !this.selected()) {\n this.changes.emit(new IdsSegmentedControlItemChange(this, !this.selected(), this.value()));\n }\n }\n\n public focus(options?: FocusOptions): void {\n this._buttonElement().nativeElement.focus(options);\n }\n}\n","<button\n #button\n type=\"button\"\n [id]=\"_buttonId()\"\n [attr.role]=\"_role()\"\n [attr.tabindex]=\"_parentOrSelfDisabled() ? -1 : tabIndex()\"\n [attr.aria-pressed]=\"_ariaPressed()\"\n [attr.aria-checked]=\"_ariaChecked()\"\n [disabled]=\"_parentOrSelfDisabled() || null\"\n [attr.name]=\"_buttonName()\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-labelledby]=\"ariaLabelledBy()\"\n [class]=\"_buttonClasses()\"\n (click)=\"onClick()\"\n>\n @if (selected()) {\n <ids-icon aria-hidden=\"true\" fontIcon=\"done\" />\n }\n @if (!selected() || !label()) {\n <ng-content select=\"ids-icon\" />\n }\n\n {{ label() }}\n\n <ng-content select=\"[suffixContent]\" />\n</button>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -1,10 +1,15 @@
1
1
  import * as i0 from '@angular/core';
2
- import { InjectionToken, input, computed, contentChildren, inject, contentChild, TemplateRef, effect, untracked, Component } from '@angular/core';
2
+ import { InjectionToken, input, computed, linkedSignal, contentChildren, inject, contentChild, TemplateRef, ElementRef, effect, untracked, Component, booleanAttribute } from '@angular/core';
3
3
  import { IdsSize, coerceBooleanAttribute, ComponentBaseWithDefaults } from '@i-cell/ids-angular/core';
4
4
  import { NgTemplateOutlet } from '@angular/common';
5
- import { Router } from '@angular/router';
6
5
  import { IdsIconComponent } from '@i-cell/ids-angular/icon';
7
6
  import { IdsIconButtonComponent, IDS_ICON_BUTTON_PARENT } from '@i-cell/ids-angular/icon-button';
7
+ import { IdsTooltipDirective } from '@i-cell/ids-angular/tooltip';
8
+ import { toSignal } from '@angular/core/rxjs-interop';
9
+ import { NavigationEnd, Router } from '@angular/router';
10
+ import { filter } from 'rxjs';
11
+
12
+ const IDS_SIDE_NAV_ROUTER = new InjectionToken('IDS_SIDE_NAV_ROUTER');
8
13
 
9
14
  const IdsSideNavVariant = {
10
15
  SURFACE: 'surface',
@@ -26,6 +31,7 @@ function IDS_SIDE_NAV_DEFAULT_CONFIG_FACTORY() {
26
31
  variant: IdsSideNavVariant.SURFACE,
27
32
  hasActiveIndicator: false,
28
33
  hasLabel: true,
34
+ hasTooltip: false,
29
35
  };
30
36
  }
31
37
 
@@ -45,23 +51,28 @@ class IdsSideNavItemComponent {
45
51
  this.label = input.required(...(ngDevMode ? [{ debugName: "label" }] : []));
46
52
  this.target = input('', ...(ngDevMode ? [{ debugName: "target" }] : []));
47
53
  this.templateChildren = input(...(ngDevMode ? [undefined, { debugName: "templateChildren" }] : []));
48
- this.active = computed(() => this._router.isActive(this.target(), { paths: 'exact', queryParams: 'exact', fragment: 'ignored', matrixParams: 'ignored' }), ...(ngDevMode ? [{ debugName: "active" }] : []));
54
+ this.active = computed(() => {
55
+ this._parent?.navigationChange();
56
+ return this._router.isActive(this.target(), { paths: 'exact', queryParams: 'exact', fragment: 'ignored', matrixParams: 'ignored' });
57
+ }, ...(ngDevMode ? [{ debugName: "active" }] : []));
49
58
  this._expandable = computed(() => this._contentChildren().length > 0 || this._contentTemplate(), ...(ngDevMode ? [{ debugName: "_expandable" }] : []));
50
- this._expanded = false;
59
+ this._expanded = linkedSignal(() => {
60
+ this._parent?.navigationChange();
61
+ return this._contentChildren().some((child) => child.active());
62
+ });
51
63
  this._iconLeading = contentChildren('[icon-leading]', ...(ngDevMode ? [{ debugName: "_iconLeading" }] : []));
52
64
  this._iconTrailing = contentChildren('[icon-trailing]', ...(ngDevMode ? [{ debugName: "_iconTrailing" }] : []));
53
65
  this._parent = inject(IDS_SIDE_NAV_PARENT, { optional: true });
54
66
  this._contentTemplate = contentChild('idsSideNavItemChildren', ...(ngDevMode ? [{ debugName: "_contentTemplate", read: TemplateRef }] : [{ read: TemplateRef }]));
55
67
  this._contentChildren = contentChildren(IdsSideNavItemComponent, ...(ngDevMode ? [{ debugName: "_contentChildren" }] : []));
56
- this._router = inject(Router, { skipSelf: true });
68
+ this._router = inject(IDS_SIDE_NAV_ROUTER, { skipSelf: true });
69
+ this._elementRef = inject(ElementRef);
57
70
  effect(() => {
58
- const sideNavChildren = this._contentChildren();
71
+ const contentLength = this._contentChildren().length;
59
72
  untracked(() => {
60
- sideNavChildren.forEach((child) => {
61
- if (child.active()) {
62
- this._expanded = true;
63
- }
64
- });
73
+ if (this._expandable()) {
74
+ this._elementRef.nativeElement.style.setProperty('--submenu-items-count', contentLength.toString());
75
+ }
65
76
  });
66
77
  });
67
78
  }
@@ -109,7 +120,7 @@ class IdsSideNavItemComponent {
109
120
  }
110
121
  _toggle() {
111
122
  if (this._expandable()) {
112
- this._expanded = !this._expanded;
123
+ this._expanded.set(!this._expanded());
113
124
  }
114
125
  }
115
126
  _navigate() {
@@ -121,6 +132,10 @@ class IdsSideNavItemComponent {
121
132
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: IdsSideNavItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
122
133
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.7", type: IdsSideNavItemComponent, isStandalone: true, selector: "ids-side-nav-item, li[idsSideNavItem]", inputs: { disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: true, transformFunction: null }, target: { classPropertyName: "target", publicName: "target", isSignal: true, isRequired: false, transformFunction: null }, templateChildren: { classPropertyName: "templateChildren", publicName: "templateChildren", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.ids-side-nav-item-expandable": "_expandable()", "role": "_expandable() ? \"group\" : \"treeitem\"" }, classAttribute: "ids-side-nav-item" }, queries: [{ propertyName: "_iconLeading", predicate: ["[icon-leading]"], isSignal: true }, { propertyName: "_iconTrailing", predicate: ["[icon-trailing]"], isSignal: true }, { propertyName: "_contentTemplate", first: true, predicate: ["idsSideNavItemChildren"], descendants: true, read: TemplateRef, isSignal: true }, { propertyName: "_contentChildren", predicate: IdsSideNavItemComponent, isSignal: true }], ngImport: i0, template: `
123
134
  <a
135
+ idsTooltipPosition="east"
136
+ [idsTooltip]="label()"
137
+ [idsTooltipDisabled]="!_parent?.hasTooltip() || !label() || disabled()"
138
+ [idsTooltipIgnoreClipped]="true"
124
139
  [class.ids-side-nav-item-single]="!_expandable()"
125
140
  [class.ids-side-nav-item-expandable-summary]="_expandable()"
126
141
  [attr.tabindex]="!disabled() ? 0 : null"
@@ -129,7 +144,7 @@ class IdsSideNavItemComponent {
129
144
  [attr.is-active-indicator]="active() && _parent?.hasActiveIndicator() ? '' : null"
130
145
  [attr.aria-disabled]="disabled() ? '' : null"
131
146
  [attr.aria-current]="active()"
132
- [attr.aria-expanded]="!_expandable() ? null : _expanded ? 'true' : 'false'"
147
+ [attr.aria-expanded]="!_expandable() ? null : _expanded() ? 'true' : 'false'"
133
148
  [attr.aria-label]="label()"
134
149
  (keydown)="_onKeyDown($event)"
135
150
  (click)="_onClick($event)"
@@ -145,18 +160,18 @@ class IdsSideNavItemComponent {
145
160
  }
146
161
  @if (_expandable()) {
147
162
  <button idsIconButton type="button" [disabled]="disabled()">
148
- <ids-icon aria-hidden="true" alt="" [fontIcon]="_expanded ? 'chevron-up' : 'chevron-down'" />
163
+ <ids-icon aria-hidden="true" alt="" [fontIcon]="_expanded() ? 'chevron-up' : 'chevron-down'" />
149
164
  </button>
150
165
  }
151
166
  </a>
152
167
  @if (_expandable()) {
153
- <ul class="ids-side-nav-item-expandable-submenu" [class.expanded]="_expanded">
168
+ <ul class="ids-side-nav-item-expandable-submenu" [class.expanded]="_expanded()">
154
169
  <ng-content select="ids-side-nav-item,[idsSideNavItem]" />
155
170
  <ng-container *ngTemplateOutlet="_contentTemplate()" />
156
171
  </ul>
157
172
  }
158
173
  <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"] }] }); }
174
+ `, 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: IdsTooltipDirective, selector: "[idsTooltip]", inputs: ["idsTooltip", "idsTooltipPosition", "idsTooltipSize", "idsTooltipVariant", "idsTooltipShowDelay", "idsTooltipHideDelay", "idsTooltipDisabled", "idsTooltipTouchGestures", "idsTooltipTextAlign", "idsTooltipClass", "idsTooltipShowPointer", "idsTooltipIgnoreClipped"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
160
175
  }
161
176
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: IdsSideNavItemComponent, decorators: [{
162
177
  type: Component,
@@ -165,10 +180,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImpor
165
180
  imports: [
166
181
  IdsIconComponent,
167
182
  IdsIconButtonComponent,
183
+ IdsTooltipDirective,
168
184
  NgTemplateOutlet,
169
185
  ],
170
186
  template: `
171
187
  <a
188
+ idsTooltipPosition="east"
189
+ [idsTooltip]="label()"
190
+ [idsTooltipDisabled]="!_parent?.hasTooltip() || !label() || disabled()"
191
+ [idsTooltipIgnoreClipped]="true"
172
192
  [class.ids-side-nav-item-single]="!_expandable()"
173
193
  [class.ids-side-nav-item-expandable-summary]="_expandable()"
174
194
  [attr.tabindex]="!disabled() ? 0 : null"
@@ -177,7 +197,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImpor
177
197
  [attr.is-active-indicator]="active() && _parent?.hasActiveIndicator() ? '' : null"
178
198
  [attr.aria-disabled]="disabled() ? '' : null"
179
199
  [attr.aria-current]="active()"
180
- [attr.aria-expanded]="!_expandable() ? null : _expanded ? 'true' : 'false'"
200
+ [attr.aria-expanded]="!_expandable() ? null : _expanded() ? 'true' : 'false'"
181
201
  [attr.aria-label]="label()"
182
202
  (keydown)="_onKeyDown($event)"
183
203
  (click)="_onClick($event)"
@@ -193,12 +213,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImpor
193
213
  }
194
214
  @if (_expandable()) {
195
215
  <button idsIconButton type="button" [disabled]="disabled()">
196
- <ids-icon aria-hidden="true" alt="" [fontIcon]="_expanded ? 'chevron-up' : 'chevron-down'" />
216
+ <ids-icon aria-hidden="true" alt="" [fontIcon]="_expanded() ? 'chevron-up' : 'chevron-down'" />
197
217
  </button>
198
218
  }
199
219
  </a>
200
220
  @if (_expandable()) {
201
- <ul class="ids-side-nav-item-expandable-submenu" [class.expanded]="_expanded">
221
+ <ul class="ids-side-nav-item-expandable-submenu" [class.expanded]="_expanded()">
202
222
  <ng-content select="ids-side-nav-item,[idsSideNavItem]" />
203
223
  <ng-container *ngTemplateOutlet="_contentTemplate()" />
204
224
  </ul>
@@ -295,11 +315,14 @@ class IdsSideNavComponent extends ComponentBaseWithDefaults {
295
315
  constructor() {
296
316
  super(...arguments);
297
317
  this._defaultConfig = this._getDefaultConfig(defaultConfig, IDS_SIDE_NAV_DEFAULT_CONFIG);
318
+ this._router = inject(IDS_SIDE_NAV_ROUTER);
298
319
  this.appearance = input(this._defaultConfig.appearance, ...(ngDevMode ? [{ debugName: "appearance" }] : []));
299
320
  this.size = input(this._defaultConfig.size, ...(ngDevMode ? [{ debugName: "size" }] : []));
300
321
  this.variant = input(this._defaultConfig.variant, ...(ngDevMode ? [{ debugName: "variant" }] : []));
301
- this.hasLabel = input(coerceBooleanAttribute(this._defaultConfig.hasLabel), ...(ngDevMode ? [{ debugName: "hasLabel" }] : []));
302
- this.hasActiveIndicator = input(coerceBooleanAttribute(this._defaultConfig.hasActiveIndicator), ...(ngDevMode ? [{ debugName: "hasActiveIndicator" }] : []));
322
+ this.hasActiveIndicator = input(this._defaultConfig.hasActiveIndicator, ...(ngDevMode ? [{ debugName: "hasActiveIndicator", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));
323
+ this.hasLabel = input(this._defaultConfig.hasLabel, ...(ngDevMode ? [{ debugName: "hasLabel", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));
324
+ this.hasTooltip = input(this._defaultConfig.hasTooltip, ...(ngDevMode ? [{ debugName: "hasTooltip", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));
325
+ this.navigationChange = toSignal(this._router.events.pipe(filter((event) => event instanceof NavigationEnd)));
303
326
  this.embeddedIconButtonAppearance = computed(() => this.appearance(), ...(ngDevMode ? [{ debugName: "embeddedIconButtonAppearance" }] : []));
304
327
  this.embeddedIconButtonVariant = computed(() => this.variant(), ...(ngDevMode ? [{ debugName: "embeddedIconButtonVariant" }] : []));
305
328
  this.embeddedIconButtonSize = computed(() => {
@@ -321,7 +344,7 @@ class IdsSideNavComponent extends ComponentBaseWithDefaults {
321
344
  return 'side-nav';
322
345
  }
323
346
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: IdsSideNavComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
324
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.1.7", type: IdsSideNavComponent, isStandalone: true, selector: "nav[idsSideNav]", inputs: { appearance: { classPropertyName: "appearance", publicName: "appearance", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, hasLabel: { classPropertyName: "hasLabel", publicName: "hasLabel", isSignal: true, isRequired: false, transformFunction: null }, hasActiveIndicator: { classPropertyName: "hasActiveIndicator", publicName: "hasActiveIndicator", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "ids-side-nav" }, providers: [
347
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.1.7", type: IdsSideNavComponent, isStandalone: true, selector: "nav[idsSideNav]", inputs: { appearance: { classPropertyName: "appearance", publicName: "appearance", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, hasActiveIndicator: { classPropertyName: "hasActiveIndicator", publicName: "hasActiveIndicator", isSignal: true, isRequired: false, transformFunction: null }, hasLabel: { classPropertyName: "hasLabel", publicName: "hasLabel", isSignal: true, isRequired: false, transformFunction: null }, hasTooltip: { classPropertyName: "hasTooltip", publicName: "hasTooltip", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "ids-side-nav" }, providers: [
325
348
  {
326
349
  provide: IDS_ICON_BUTTON_PARENT,
327
350
  useExisting: IdsSideNavComponent,
@@ -330,6 +353,10 @@ class IdsSideNavComponent extends ComponentBaseWithDefaults {
330
353
  provide: IDS_SIDE_NAV_PARENT,
331
354
  useExisting: IdsSideNavComponent,
332
355
  },
356
+ {
357
+ provide: IDS_SIDE_NAV_ROUTER,
358
+ useExisting: Router,
359
+ },
333
360
  ], usesInheritance: true, ngImport: i0, template: '<ng-content/>', isInline: true }); }
334
361
  }
335
362
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: IdsSideNavComponent, decorators: [{
@@ -349,6 +376,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImpor
349
376
  provide: IDS_SIDE_NAV_PARENT,
350
377
  useExisting: IdsSideNavComponent,
351
378
  },
379
+ {
380
+ provide: IDS_SIDE_NAV_ROUTER,
381
+ useExisting: Router,
382
+ },
352
383
  ],
353
384
  }]
354
385
  }] });
@@ -357,5 +388,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImpor
357
388
  * Generated bundle index. Do not edit.
358
389
  */
359
390
 
360
- export { IDS_SIDE_NAV_DEFAULT_CONFIG, IDS_SIDE_NAV_DEFAULT_CONFIG_FACTORY, IdsSideNavAppearance, IdsSideNavComponent, IdsSideNavItemComponent, IdsSideNavSectionComponent, IdsSideNavTitleComponent, IdsSideNavVariant };
391
+ export { IDS_SIDE_NAV_DEFAULT_CONFIG, IDS_SIDE_NAV_DEFAULT_CONFIG_FACTORY, IDS_SIDE_NAV_ROUTER, IdsSideNavAppearance, IdsSideNavComponent, IdsSideNavItemComponent, IdsSideNavSectionComponent, IdsSideNavTitleComponent, IdsSideNavVariant };
361
392
  //# sourceMappingURL=i-cell-ids-angular-side-nav.mjs.map