@i-cell/ids-angular 0.2.0 → 0.2.2

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.
@@ -60,11 +60,18 @@ class IdsIconButtonComponent extends ComponentBaseWithDefaults {
60
60
  this.disabled = input(false, ...(ngDevMode ? [{ debugName: "disabled", transform: coerceBooleanAttribute }] : [{ transform: coerceBooleanAttribute }]));
61
61
  this._icons = contentChildren(IdsIconComponent, ...(ngDevMode ? [{ debugName: "_icons" }] : []));
62
62
  this._parentOrSelfAppearance = computed(() => this._parent?.embeddedIconButtonAppearance() ?? this.appearance(), ...(ngDevMode ? [{ debugName: "_parentOrSelfAppearance" }] : []));
63
+ this._parentOrSelfSize = computed(() => {
64
+ const embeddedIconButtonSize = this._parent?.embeddedIconButtonSize;
65
+ return embeddedIconButtonSize ? embeddedIconButtonSize() : this.size();
66
+ }, ...(ngDevMode ? [{ debugName: "_parentOrSelfSize" }] : []));
63
67
  this._parentOrSelfVariant = computed(() => this._parent?.embeddedIconButtonVariant() ?? this.variant(), ...(ngDevMode ? [{ debugName: "_parentOrSelfVariant" }] : []));
64
- this._parentOrSelfDisabled = computed(() => this._parent?.disabled() ?? this.disabled(), ...(ngDevMode ? [{ debugName: "_parentOrSelfDisabled" }] : []));
68
+ this._parentOrSelfDisabled = computed(() => {
69
+ const parentDisabled = this._parent?.disabled;
70
+ return parentDisabled ? parentDisabled() : this.disabled();
71
+ }, ...(ngDevMode ? [{ debugName: "_parentOrSelfDisabled" }] : []));
65
72
  this._hostClasses = computed(() => this._getHostClasses([
66
73
  this._parentOrSelfAppearance(),
67
- this.size(),
74
+ this._parentOrSelfSize(),
68
75
  this._parentOrSelfVariant(),
69
76
  this.disabled() ? 'disabled' : null,
70
77
  ]), ...(ngDevMode ? [{ debugName: "_hostClasses" }] : []));
@@ -1 +1 @@
1
- {"version":3,"file":"i-cell-ids-angular-icon-button.mjs","sources":["../../../projects/widgets/icon-button/tokens/icon-button-parent.ts","../../../projects/widgets/icon-button/types/icon-button-appearance.type.ts","../../../projects/widgets/icon-button/types/icon-button-variant.type.ts","../../../projects/widgets/icon-button/icon-button-defaults.ts","../../../projects/widgets/icon-button/icon-button.component.ts","../../../projects/widgets/icon-button/icon-button.component.html","../../../projects/widgets/icon-button/i-cell-ids-angular-icon-button.ts"],"sourcesContent":["import { IdsIconButtonAppearanceType } from '../types/icon-button-appearance.type';\nimport { IdsIconButtonVariantType } from '../types/icon-button-variant.type';\n\nimport { InjectionToken, Signal } from '@angular/core';\n\nexport abstract class IdsIconButtonParent {\n public readonly embeddedIconButtonVariant!: Signal<IdsIconButtonVariantType>;\n public readonly embeddedIconButtonAppearance!: Signal<IdsIconButtonAppearanceType>;\n public readonly disabled!: Signal<boolean>;\n};\n\nexport const IDS_ICON_BUTTON_PARENT = new InjectionToken<IdsIconButtonParent>(\n 'IDS_ICON_BUTTON_PARENT',\n);\n","export const IdsIconButtonAppearance = {\n FILLED: 'filled',\n OUTLINED: 'outlined',\n STANDARD: 'standard',\n} as const;\n\nexport type IdsIconButtonAppearanceType = (typeof IdsIconButtonAppearance)[keyof typeof IdsIconButtonAppearance];\n","export const IdsIconButtonVariant = {\n PRIMARY: 'primary',\n SECONDARY: 'secondary',\n SURFACE: 'surface',\n BRAND: 'brand',\n LIGHT: 'light',\n DARK: 'dark',\n INFO: 'info',\n SUCCESS: 'success',\n WARNING: 'warning',\n ERROR: 'error',\n} as const;\n\nexport type IdsIconButtonVariantType = (typeof IdsIconButtonVariant)[keyof typeof IdsIconButtonVariant];\n\n","import { IdsIconButtonAppearance, IdsIconButtonAppearanceType } from './types/icon-button-appearance.type';\nimport { IdsIconButtonVariant, IdsIconButtonVariantType } from './types/icon-button-variant.type';\n\nimport { InjectionToken } from '@angular/core';\nimport { IdsSize, IdsSizeType } from '@i-cell/ids-angular/core';\n\nexport interface IdsIconButtonDefaultConfig {\n appearance?: IdsIconButtonAppearanceType,\n size?: IdsSizeType,\n variant?: IdsIconButtonVariantType,\n}\n\nexport const IDS_ICON_BUTTON_DEFAULT_CONFIG = new InjectionToken<IdsIconButtonDefaultConfig>(\n 'IDS_ICON_BUTTON_DEFAULT_CONFIG',\n {\n providedIn: 'root',\n factory: IDS_ICON_BUTTON_DEFAULT_CONFIG_FACTORY,\n },\n);\n\nexport function IDS_ICON_BUTTON_DEFAULT_CONFIG_FACTORY(): Required<IdsIconButtonDefaultConfig> {\n return {\n appearance: IdsIconButtonAppearance.FILLED,\n size: IdsSize.COMPACT,\n variant: IdsIconButtonVariant.PRIMARY,\n };\n}\n\n","import { IDS_ICON_BUTTON_DEFAULT_CONFIG, IDS_ICON_BUTTON_DEFAULT_CONFIG_FACTORY, IdsIconButtonDefaultConfig } from './icon-button-defaults';\nimport { IDS_ICON_BUTTON_PARENT } from './tokens/icon-button-parent';\nimport { IdsIconButtonAppearanceType } from './types/icon-button-appearance.type';\nimport { IdsIconButtonVariantType } from './types/icon-button-variant.type';\n\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n ViewEncapsulation,\n computed,\n contentChildren,\n effect,\n inject,\n input,\n} from '@angular/core';\nimport { RouterLink } from '@angular/router';\nimport {\n ComponentBaseWithDefaults,\n IdsSizeType,\n coerceBooleanAttribute,\n} from '@i-cell/ids-angular/core';\nimport { IdsIconComponent } from '@i-cell/ids-angular/icon';\n\nconst defaultConfig = IDS_ICON_BUTTON_DEFAULT_CONFIG_FACTORY();\n\n@Component({\n selector: 'button[idsIconButton], a[idsIconButton]',\n imports: [],\n templateUrl: './icon-button.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[attr.disabled]': '_parentOrSelfDisabled() ? \"\" : null',\n '[attr.aria-disabled]': '_parentOrSelfDisabled()',\n },\n})\nexport class IdsIconButtonComponent extends ComponentBaseWithDefaults<IdsIconButtonDefaultConfig> {\n protected override get _hostName(): string {\n return 'icon-button';\n }\n\n private readonly _parent = inject(IDS_ICON_BUTTON_PARENT, { optional: true });\n private _hostElement = inject<ElementRef<HTMLElement>>(ElementRef<HTMLElement>).nativeElement;\n private _routerLink = inject(RouterLink, { optional: true, self: true });\n\n protected readonly _defaultConfig = this._getDefaultConfig(defaultConfig, IDS_ICON_BUTTON_DEFAULT_CONFIG);\n\n public appearance = input<IdsIconButtonAppearanceType>(this._defaultConfig.appearance);\n public size = input<IdsSizeType>(this._defaultConfig.size);\n public variant = input<IdsIconButtonVariantType>(this._defaultConfig.variant);\n public disabled = input(false, { transform: coerceBooleanAttribute });\n\n protected _icons = contentChildren(IdsIconComponent);\n\n private _parentOrSelfAppearance = computed(() => this._parent?.embeddedIconButtonAppearance() ?? this.appearance());\n private _parentOrSelfVariant = computed(() => this._parent?.embeddedIconButtonVariant() ?? this.variant());\n private _parentOrSelfDisabled = computed(() => this._parent?.disabled() ?? this.disabled());\n protected _hostClasses = computed(() => this._getHostClasses([\n this._parentOrSelfAppearance(),\n this.size(),\n this._parentOrSelfVariant(),\n this.disabled() ? 'disabled' : null,\n ]));\n\n private get _buttonType(): string | null {\n return this._hostElement.tagName === 'BUTTON' ? 'button' : null;\n }\n\n constructor() {\n super();\n\n effect(() => {\n if (this._buttonType) {\n return;\n }\n\n const link = this._hostElement as HTMLAnchorElement;\n\n if (this.disabled()) {\n this._disableLink(link);\n } else {\n this._enableLink(link);\n }\n });\n }\n\n private _disableLink(link: HTMLAnchorElement): void {\n if (!this._routerLink) {\n link.setAttribute('data-href', link.href);\n }\n link.removeAttribute('href');\n }\n\n private _enableLink(link: HTMLAnchorElement): void {\n const prevHref = this._routerLink?.href ?? link.getAttribute('data-href') ?? '';\n\n if (prevHref) {\n link.href = prevHref;\n link.removeAttribute('data-href');\n }\n }\n}\n","@if (_icons().length) {\n <ng-content select=\"ids-icon\" />\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"i-cell-ids-angular-icon-button.mjs","sources":["../../../projects/widgets/icon-button/tokens/icon-button-parent.ts","../../../projects/widgets/icon-button/types/icon-button-appearance.type.ts","../../../projects/widgets/icon-button/types/icon-button-variant.type.ts","../../../projects/widgets/icon-button/icon-button-defaults.ts","../../../projects/widgets/icon-button/icon-button.component.ts","../../../projects/widgets/icon-button/icon-button.component.html","../../../projects/widgets/icon-button/i-cell-ids-angular-icon-button.ts"],"sourcesContent":["import { IdsIconButtonAppearanceType } from '../types/icon-button-appearance.type';\nimport { IdsIconButtonVariantType } from '../types/icon-button-variant.type';\n\nimport { InjectionToken, Signal } from '@angular/core';\n\nexport abstract class IdsIconButtonParent {\n public readonly embeddedIconButtonVariant!: Signal<IdsIconButtonVariantType>;\n public readonly embeddedIconButtonAppearance!: Signal<IdsIconButtonAppearanceType>;\n public readonly disabled!: Signal<boolean>;\n};\n\nexport const IDS_ICON_BUTTON_PARENT = new InjectionToken<IdsIconButtonParent>(\n 'IDS_ICON_BUTTON_PARENT',\n);\n","export const IdsIconButtonAppearance = {\n FILLED: 'filled',\n OUTLINED: 'outlined',\n STANDARD: 'standard',\n} as const;\n\nexport type IdsIconButtonAppearanceType = (typeof IdsIconButtonAppearance)[keyof typeof IdsIconButtonAppearance];\n","export const IdsIconButtonVariant = {\n PRIMARY: 'primary',\n SECONDARY: 'secondary',\n SURFACE: 'surface',\n BRAND: 'brand',\n LIGHT: 'light',\n DARK: 'dark',\n INFO: 'info',\n SUCCESS: 'success',\n WARNING: 'warning',\n ERROR: 'error',\n} as const;\n\nexport type IdsIconButtonVariantType = (typeof IdsIconButtonVariant)[keyof typeof IdsIconButtonVariant];\n\n","import { IdsIconButtonAppearance, IdsIconButtonAppearanceType } from './types/icon-button-appearance.type';\nimport { IdsIconButtonVariant, IdsIconButtonVariantType } from './types/icon-button-variant.type';\n\nimport { InjectionToken } from '@angular/core';\nimport { IdsSize, IdsSizeType } from '@i-cell/ids-angular/core';\n\nexport interface IdsIconButtonDefaultConfig {\n appearance?: IdsIconButtonAppearanceType,\n size?: IdsSizeType,\n variant?: IdsIconButtonVariantType,\n}\n\nexport const IDS_ICON_BUTTON_DEFAULT_CONFIG = new InjectionToken<IdsIconButtonDefaultConfig>(\n 'IDS_ICON_BUTTON_DEFAULT_CONFIG',\n {\n providedIn: 'root',\n factory: IDS_ICON_BUTTON_DEFAULT_CONFIG_FACTORY,\n },\n);\n\nexport function IDS_ICON_BUTTON_DEFAULT_CONFIG_FACTORY(): Required<IdsIconButtonDefaultConfig> {\n return {\n appearance: IdsIconButtonAppearance.FILLED,\n size: IdsSize.COMPACT,\n variant: IdsIconButtonVariant.PRIMARY,\n };\n}\n\n","import { IDS_ICON_BUTTON_DEFAULT_CONFIG, IDS_ICON_BUTTON_DEFAULT_CONFIG_FACTORY, IdsIconButtonDefaultConfig } from './icon-button-defaults';\nimport { IDS_ICON_BUTTON_PARENT } from './tokens/icon-button-parent';\nimport { IdsIconButtonAppearanceType } from './types/icon-button-appearance.type';\nimport { IdsIconButtonVariantType } from './types/icon-button-variant.type';\n\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n ViewEncapsulation,\n computed,\n contentChildren,\n effect,\n inject,\n input,\n} from '@angular/core';\nimport { RouterLink } from '@angular/router';\nimport {\n ComponentBaseWithDefaults,\n IdsSizeType,\n coerceBooleanAttribute,\n} from '@i-cell/ids-angular/core';\nimport { IdsIconComponent } from '@i-cell/ids-angular/icon';\n\nconst defaultConfig = IDS_ICON_BUTTON_DEFAULT_CONFIG_FACTORY();\n\n@Component({\n selector: 'button[idsIconButton], a[idsIconButton]',\n imports: [],\n templateUrl: './icon-button.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[attr.disabled]': '_parentOrSelfDisabled() ? \"\" : null',\n '[attr.aria-disabled]': '_parentOrSelfDisabled()',\n },\n})\nexport class IdsIconButtonComponent extends ComponentBaseWithDefaults<IdsIconButtonDefaultConfig> {\n protected override get _hostName(): string {\n return 'icon-button';\n }\n\n private readonly _parent = inject(IDS_ICON_BUTTON_PARENT, { optional: true });\n private _hostElement = inject<ElementRef<HTMLElement>>(ElementRef<HTMLElement>).nativeElement;\n private _routerLink = inject(RouterLink, { optional: true, self: true });\n\n protected readonly _defaultConfig = this._getDefaultConfig(defaultConfig, IDS_ICON_BUTTON_DEFAULT_CONFIG);\n\n public appearance = input<IdsIconButtonAppearanceType>(this._defaultConfig.appearance);\n public size = input<IdsSizeType>(this._defaultConfig.size);\n public variant = input<IdsIconButtonVariantType>(this._defaultConfig.variant);\n public disabled = input(false, { transform: coerceBooleanAttribute });\n\n protected _icons = contentChildren(IdsIconComponent);\n\n private _parentOrSelfAppearance = computed(() => this._parent?.embeddedIconButtonAppearance() ?? this.appearance());\n private _parentOrSelfSize = computed(() => {\n const embeddedIconButtonSize = this._parent?.embeddedIconButtonSize;\n return embeddedIconButtonSize ? embeddedIconButtonSize() : this.size();\n });\n\n private _parentOrSelfVariant = computed(() => this._parent?.embeddedIconButtonVariant() ?? this.variant());\n private _parentOrSelfDisabled = computed(() => {\n const parentDisabled = this._parent?.disabled;\n return parentDisabled ? parentDisabled() : this.disabled();\n });\n\n protected _hostClasses = computed(() => this._getHostClasses([\n this._parentOrSelfAppearance(),\n this._parentOrSelfSize(),\n this._parentOrSelfVariant(),\n this.disabled() ? 'disabled' : null,\n ]));\n\n private get _buttonType(): string | null {\n return this._hostElement.tagName === 'BUTTON' ? 'button' : null;\n }\n\n constructor() {\n super();\n\n effect(() => {\n if (this._buttonType) {\n return;\n }\n\n const link = this._hostElement as HTMLAnchorElement;\n\n if (this.disabled()) {\n this._disableLink(link);\n } else {\n this._enableLink(link);\n }\n });\n }\n\n private _disableLink(link: HTMLAnchorElement): void {\n if (!this._routerLink) {\n link.setAttribute('data-href', link.href);\n }\n link.removeAttribute('href');\n }\n\n private _enableLink(link: HTMLAnchorElement): void {\n const prevHref = this._routerLink?.href ?? link.getAttribute('data-href') ?? '';\n\n if (prevHref) {\n link.href = prevHref;\n link.removeAttribute('data-href');\n }\n }\n}\n","@if (_icons().length) {\n <ng-content select=\"ids-icon\" />\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -132,7 +132,7 @@ class IdsSelectComponent extends IdsFormFieldControl {
132
132
  return option.disabledInput();
133
133
  };
134
134
  this.onContainerClick = () => {
135
- if (!this._focused && !this.readonly() && !this.disabled()) {
135
+ if (!this._focused() && !this.readonly() && !this.disabled()) {
136
136
  this.focus();
137
137
  this.open();
138
138
  }
@@ -503,7 +503,7 @@ class IdsSelectComponent extends IdsFormFieldControl {
503
503
  useExisting: forwardRef(() => IdsSelectComponent),
504
504
  multi: true,
505
505
  },
506
- ], queries: [{ propertyName: "options", predicate: IdsOptionComponent, descendants: true, isSignal: true }, { propertyName: "optionGroups", predicate: IDS_OPTION_GROUP, descendants: true, isSignal: true }, { propertyName: "_customTrigger", first: true, predicate: IdsSelectTriggerDirective, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "_panel", first: true, predicate: ["panel"], descendants: true, isSignal: true }, { propertyName: "_overlayDir", first: true, predicate: CdkConnectedOverlay, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div #trigger #fallbackOverlayOrigin=\"cdkOverlayOrigin\" cdk-overlay-origin class=\"ids-select__trigger\" (click)=\"open()\">\n <div class=\"ids-select__value\">\n @if (_empty) {\n <span class=\"ids-select__placeholder\">{{ placeholder() }}</span>\n } @else {\n <span class=\"ids-select__value-text\">\n @if (_customTrigger()) {\n <ng-content select=\"ids-select-trigger\" />\n } @else {\n {{ _triggerValue }}\n }\n </span>\n }\n </div>\n\n <div class=\"ids-select__arrow\">\n <ids-icon fontIcon=\"chevron-down\" />\n </div>\n</div>\n\n<ng-template\n cdk-connected-overlay\n cdkConnectedOverlayLockPosition\n [cdkConnectedOverlayOrigin]=\"_preferredOverlayOrigin || fallbackOverlayOrigin\"\n [cdkConnectedOverlayOpen]=\"isPanelOpen()\"\n [cdkConnectedOverlayPositions]=\"_connectedPositions\"\n [cdkConnectedOverlayWidth]=\"_overlayWidth\"\n [cdkConnectedOverlayPush]=\"true\"\n (overlayOutsideClick)=\"close()\"\n (attach)=\"_panelAttached()\"\n (detach)=\"close()\"\n>\n <div\n #panel\n role=\"listbox\"\n tabindex=\"-1\"\n [attr.id]=\"id() + '-panel'\"\n [attr.aria-multiselectable]=\"multiSelect()\"\n [attr.aria-label]=\"ariaLabel() || null\"\n [attr.aria-labelledby]=\"ariaLabelledby()\"\n [class]=\"_panelClasses()\"\n (keydown)=\"_handleKeydown($event)\"\n >\n <ng-content />\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "directive", type: CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "component", type: IdsIconComponent, selector: "ids-icon", inputs: ["size", "sizeCollection", "variant", "fontIcon", "svgIcon", "aria-hidden"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
506
+ ], queries: [{ propertyName: "options", predicate: IdsOptionComponent, descendants: true, isSignal: true }, { propertyName: "optionGroups", predicate: IDS_OPTION_GROUP, descendants: true, isSignal: true }, { propertyName: "_customTrigger", first: true, predicate: IdsSelectTriggerDirective, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "_panel", first: true, predicate: ["panel"], descendants: true, isSignal: true }, { propertyName: "_overlayDir", first: true, predicate: CdkConnectedOverlay, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div #trigger #fallbackOverlayOrigin=\"cdkOverlayOrigin\" cdk-overlay-origin class=\"ids-select__trigger\" (click)=\"open()\">\n <div class=\"ids-select__value\">\n @if (_empty) {\n <span class=\"ids-select__placeholder\">{{ placeholder() }}</span>\n } @else {\n <span class=\"ids-select__value-text\">\n @if (_customTrigger()) {\n <ng-content select=\"ids-select-trigger\" />\n } @else {\n {{ _triggerValue }}\n }\n </span>\n }\n </div>\n\n <div class=\"ids-select__arrow\">\n <ids-icon fontIcon=\"chevron-down\" />\n </div>\n</div>\n<ng-template\n cdk-connected-overlay\n cdkConnectedOverlayLockPosition\n [cdkConnectedOverlayOrigin]=\"_preferredOverlayOrigin || fallbackOverlayOrigin\"\n [cdkConnectedOverlayOpen]=\"isPanelOpen()\"\n [cdkConnectedOverlayPositions]=\"_connectedPositions\"\n [cdkConnectedOverlayWidth]=\"_overlayWidth\"\n (overlayOutsideClick)=\"close()\"\n (attach)=\"_panelAttached()\"\n (detach)=\"close()\"\n>\n <div\n #panel\n role=\"listbox\"\n tabindex=\"-1\"\n [attr.id]=\"id() + '-panel'\"\n [attr.aria-multiselectable]=\"multiSelect()\"\n [attr.aria-label]=\"ariaLabel() || null\"\n [attr.aria-labelledby]=\"ariaLabelledby()\"\n [class]=\"_panelClasses()\"\n (keydown)=\"_handleKeydown($event)\"\n >\n <ng-content />\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "directive", type: CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "component", type: IdsIconComponent, selector: "ids-icon", inputs: ["size", "sizeCollection", "variant", "fontIcon", "svgIcon", "aria-hidden"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
507
507
  }
508
508
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: IdsSelectComponent, decorators: [{
509
509
  type: Component,
@@ -538,7 +538,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImpor
538
538
  '(keydown)': '_handleKeydown($event)',
539
539
  '(focus)': 'focus()',
540
540
  '(blur)': '_onBlur()',
541
- }, template: "<div #trigger #fallbackOverlayOrigin=\"cdkOverlayOrigin\" cdk-overlay-origin class=\"ids-select__trigger\" (click)=\"open()\">\n <div class=\"ids-select__value\">\n @if (_empty) {\n <span class=\"ids-select__placeholder\">{{ placeholder() }}</span>\n } @else {\n <span class=\"ids-select__value-text\">\n @if (_customTrigger()) {\n <ng-content select=\"ids-select-trigger\" />\n } @else {\n {{ _triggerValue }}\n }\n </span>\n }\n </div>\n\n <div class=\"ids-select__arrow\">\n <ids-icon fontIcon=\"chevron-down\" />\n </div>\n</div>\n\n<ng-template\n cdk-connected-overlay\n cdkConnectedOverlayLockPosition\n [cdkConnectedOverlayOrigin]=\"_preferredOverlayOrigin || fallbackOverlayOrigin\"\n [cdkConnectedOverlayOpen]=\"isPanelOpen()\"\n [cdkConnectedOverlayPositions]=\"_connectedPositions\"\n [cdkConnectedOverlayWidth]=\"_overlayWidth\"\n [cdkConnectedOverlayPush]=\"true\"\n (overlayOutsideClick)=\"close()\"\n (attach)=\"_panelAttached()\"\n (detach)=\"close()\"\n>\n <div\n #panel\n role=\"listbox\"\n tabindex=\"-1\"\n [attr.id]=\"id() + '-panel'\"\n [attr.aria-multiselectable]=\"multiSelect()\"\n [attr.aria-label]=\"ariaLabel() || null\"\n [attr.aria-labelledby]=\"ariaLabelledby()\"\n [class]=\"_panelClasses()\"\n (keydown)=\"_handleKeydown($event)\"\n >\n <ng-content />\n </div>\n</ng-template>\n" }]
541
+ }, template: "<div #trigger #fallbackOverlayOrigin=\"cdkOverlayOrigin\" cdk-overlay-origin class=\"ids-select__trigger\" (click)=\"open()\">\n <div class=\"ids-select__value\">\n @if (_empty) {\n <span class=\"ids-select__placeholder\">{{ placeholder() }}</span>\n } @else {\n <span class=\"ids-select__value-text\">\n @if (_customTrigger()) {\n <ng-content select=\"ids-select-trigger\" />\n } @else {\n {{ _triggerValue }}\n }\n </span>\n }\n </div>\n\n <div class=\"ids-select__arrow\">\n <ids-icon fontIcon=\"chevron-down\" />\n </div>\n</div>\n<ng-template\n cdk-connected-overlay\n cdkConnectedOverlayLockPosition\n [cdkConnectedOverlayOrigin]=\"_preferredOverlayOrigin || fallbackOverlayOrigin\"\n [cdkConnectedOverlayOpen]=\"isPanelOpen()\"\n [cdkConnectedOverlayPositions]=\"_connectedPositions\"\n [cdkConnectedOverlayWidth]=\"_overlayWidth\"\n (overlayOutsideClick)=\"close()\"\n (attach)=\"_panelAttached()\"\n (detach)=\"close()\"\n>\n <div\n #panel\n role=\"listbox\"\n tabindex=\"-1\"\n [attr.id]=\"id() + '-panel'\"\n [attr.aria-multiselectable]=\"multiSelect()\"\n [attr.aria-label]=\"ariaLabel() || null\"\n [attr.aria-labelledby]=\"ariaLabelledby()\"\n [class]=\"_panelClasses()\"\n (keydown)=\"_handleKeydown($event)\"\n >\n <ng-content />\n </div>\n</ng-template>\n" }]
542
542
  }], ctorParameters: () => [] });
543
543
 
544
544
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"i-cell-ids-angular-select.mjs","sources":["../../../projects/widgets/select/select-defaults.ts","../../../projects/widgets/select/select-trigger.directive.ts","../../../projects/widgets/select/select-positions.ts","../../../projects/widgets/select/select.component.ts","../../../projects/widgets/select/select.component.html","../../../projects/widgets/select/i-cell-ids-angular-select.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { AbstractErrorStateMatcher, AbstractSuccessStateMatcher, ErrorStateMatcher, SuccessStateMatcher } from '@i-cell/ids-angular/forms';\n\nexport interface IdsSelectDefaultConfig {\n errorStateMatcher?: typeof AbstractErrorStateMatcher\n successStateMatcher?: typeof AbstractSuccessStateMatcher\n typeaheadDebounceInterval: number\n}\n\nexport const IDS_SELECT_DEFAULT_CONFIG = new InjectionToken<IdsSelectDefaultConfig>(\n 'IDS_SELECT_DEFAULT_CONFIG',\n {\n providedIn: 'root',\n factory: IDS_SELECT_DEFAULT_CONFIG_FACTORY,\n },\n);\n\nexport function IDS_SELECT_DEFAULT_CONFIG_FACTORY(): Required<IdsSelectDefaultConfig> {\n return {\n errorStateMatcher: ErrorStateMatcher,\n successStateMatcher: SuccessStateMatcher,\n typeaheadDebounceInterval: 200,\n };\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: 'ids-select-trigger',\n standalone: true,\n})\nexport class IdsSelectTriggerDirective {\n}\n","import { ConnectedPosition } from '@angular/cdk/overlay';\n\nexport const selectConnectedPositions: ConnectedPosition[] = [\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n },\n {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top',\n },\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n panelClass: 'ids-select-panel-above',\n },\n {\n originX: 'end',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'bottom',\n panelClass: 'ids-select-panel-above',\n },\n];\n","import { IDS_SELECT_DEFAULT_CONFIG, IDS_SELECT_DEFAULT_CONFIG_FACTORY, IdsSelectDefaultConfig } from './select-defaults';\nimport { selectConnectedPositions } from './select-positions';\nimport { IdsSelectTriggerDirective } from './select-trigger.directive';\n\nimport { ActiveDescendantKeyManager, LiveAnnouncer } from '@angular/cdk/a11y';\nimport { SelectionModel } from '@angular/cdk/collections';\nimport { hasModifierKey } from '@angular/cdk/keycodes';\nimport { CdkConnectedOverlay, CdkOverlayOrigin } from '@angular/cdk/overlay';\nimport { AfterContentInit, AfterViewInit, ChangeDetectionStrategy, ChangeDetectorRef, Component, computed, contentChild, contentChildren, effect, ElementRef, forwardRef, inject, input, isDevMode, OnDestroy, OnInit, signal, viewChild, ViewEncapsulation } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR, ValueChangeEvent } from '@angular/forms';\nimport { coerceNumberAttribute, createClassList } from '@i-cell/ids-angular/core';\nimport { _countGroupLabelsBeforeOption, _getOptionScrollPosition, AbstractErrorStateMatcher, AbstractSuccessStateMatcher, formFieldControlClass, IDS_FORM_FIELD_CONTROL, IDS_OPTION_GROUP, IDS_OPTION_PARENT_COMPONENT, IdsFormFieldComponent, IdsFormFieldControl, IdsOptionComponent, IdsOptionGroupComponent, IdsOptionSelectionChange } from '@i-cell/ids-angular/forms';\nimport { IdsIconComponent } from '@i-cell/ids-angular/icon';\nimport { filter, first } from 'rxjs';\n\nconst defaultConfig = IDS_SELECT_DEFAULT_CONFIG_FACTORY();\n\n@Component({\n selector: `ids-select[ngModel]:not([formControl]):not([formControlName]),\n ids-select[formControl]:not([ngModel]):not([formControlName]),\n ids-select[formControlName]:not([ngModel]):not([formControl])`,\n imports: [\n CdkOverlayOrigin,\n CdkConnectedOverlay,\n IdsIconComponent,\n ],\n templateUrl: './select.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n { provide: IDS_FORM_FIELD_CONTROL, useExisting: IdsSelectComponent },\n { provide: IDS_OPTION_PARENT_COMPONENT, useExisting: IdsSelectComponent },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => IdsSelectComponent),\n multi: true,\n },\n ],\n host: {\n 'role': 'select',\n 'aria-autocomplete': 'none',\n 'aria-haspopup': 'listbox',\n '[attr.tabindex]': 'disabled() ? -1 : tabIndex()',\n '[attr.aria-controls]': 'isPanelOpen() ? id() + \"-panel\" : null',\n '[attr.aria-owns]': 'isPanelOpen() ? id() + \"-panel\" : null',\n '[attr.aria-expanded]': 'isPanelOpen()',\n '[attr.aria-label]': 'ariaLabel() || null',\n '[attr.aria-labelledby]': 'ariaLabelledby() || null',\n '[attr.aria-required]': 'required().toString()',\n '[attr.aria-disabled]': 'disabled().toString()',\n '[attr.aria-invalid]': 'hasErrorState()',\n '[attr.aria-activedescendant]': '_getAriaActiveDescendant()',\n '(keydown)': '_handleKeydown($event)',\n '(focus)': 'focus()',\n '(blur)': '_onBlur()',\n },\n})\nexport class IdsSelectComponent\n extends IdsFormFieldControl<IdsSelectDefaultConfig>\n implements ControlValueAccessor, OnInit, AfterContentInit, AfterViewInit, OnDestroy {\n protected override get _hostName(): string {\n return 'select';\n }\n\n protected readonly _defaultConfig = this._getDefaultConfig(defaultConfig, IDS_SELECT_DEFAULT_CONFIG);\n protected readonly _elementRef = inject(ElementRef);\n private readonly _changeDetectorRef = inject(ChangeDetectorRef);\n private readonly _liveAnnouncer = inject(LiveAnnouncer);\n private readonly _parentFormField = inject(IdsFormFieldComponent);\n\n protected readonly _connectedPositions = selectConnectedPositions;\n\n protected _preferredOverlayOrigin: CdkOverlayOrigin | ElementRef | undefined;\n protected _overlayWidth: string | number = 0;\n\n public multiSelect = input<boolean>(false);\n public readonly errorStateMatcher = input<AbstractErrorStateMatcher>(inject(this._defaultConfig.errorStateMatcher));\n public readonly successStateMatcher = input<AbstractSuccessStateMatcher>(inject(this._defaultConfig.successStateMatcher));\n public ariaLabel = input<string>('', { alias: 'aria-label' });\n public ariaLabelledby = input<string>('', { alias: 'aria-labelledby' });\n public valueCompareFn = input<(o1: unknown, o2: unknown) => boolean>((o1: unknown, o2: unknown) => o1 === o2);\n public sortCompareFn = input<(a: IdsOptionComponent, b: IdsOptionComponent, options: Readonly<IdsOptionComponent[]>) => number>();\n public tabIndex = input<number, unknown>(0, { transform: coerceNumberAttribute });\n public typeaheadDebounceInterval = input<number, unknown>(\n this._defaultConfig.typeaheadDebounceInterval, { transform: coerceNumberAttribute },\n );\n\n public isPanelOpen = signal<boolean>(false);\n public parentSize = computed(() => this._parentFormField.parentOrSelfSize());\n public parentVariant = computed(() => this._parentFormField.parentOrSelfVariant());\n private _focused = signal<boolean>(false);\n\n private _canOpen = computed(() => !this.isPanelOpen() && !this.disabled() && !this.readonly() && this.options().length > 0);\n protected _hostClasses = computed(() => this._getHostClasses([\n this.parentSize(),\n this.parentVariant(),\n this.disabled() ? 'disabled' : null,\n this.readonly() ? 'readonly' : null,\n ], [formFieldControlClass]));\n\n protected _panelClasses = computed(() => createClassList(`${this._hostClassName}-panel`, [\n this.parentSize(),\n this.parentVariant(),\n ]));\n\n private _panel = viewChild<ElementRef<HTMLElement>>('panel');\n private _overlayDir = viewChild(CdkConnectedOverlay);\n public options = contentChildren<IdsOptionComponent>(IdsOptionComponent, { descendants: true });\n public optionGroups = contentChildren<IdsOptionGroupComponent>(IDS_OPTION_GROUP, { descendants: true });\n protected _customTrigger = contentChild(IdsSelectTriggerDirective);\n\n private _keyManager?: ActiveDescendantKeyManager<IdsOptionComponent>;\n private _rawValue: unknown | unknown[];\n private _selectionModel?: SelectionModel<IdsOptionComponent>;\n private _onChange: (value: unknown) => void = () => {};\n private _onTouched: () => unknown = () => { };\n\n protected get _empty(): boolean {\n return Boolean(this._selectionModel?.isEmpty());\n }\n\n public get selected(): IdsOptionComponent | IdsOptionComponent[] | undefined {\n return this.multiSelect() ? this._selectionModel?.selected : this._selectionModel?.selected?.[0];\n }\n\n protected get _triggerValue(): string {\n if (this._empty) {\n return '';\n }\n\n if (this.multiSelect()) {\n const selectedOptions = this._selectionModel?.selected?.map((option) => option.viewValue());\n return selectedOptions?.join(', ') || '';\n }\n\n return this._selectionModel?.selected?.[0].viewValue() || '';\n }\n\n constructor() {\n super();\n effect(() => {\n this._keyManager?.withTypeAhead(this.typeaheadDebounceInterval());\n });\n }\n\n public ngOnInit(): void {\n if (!this._parentFormField) {\n throw this._createHostError('Select must be in a form field');\n }\n this._selectionModel = new SelectionModel<IdsOptionComponent>(this.multiSelect(), undefined, false, this.valueCompareFn());\n queueMicrotask(() => {\n const control = this.ngControl()?.control;\n if (control) {\n control.events\n .pipe(\n filter((event) => event instanceof ValueChangeEvent),\n takeUntilDestroyed(this._destroyRef),\n )\n .subscribe(() => {\n this._changeDetectorRef.markForCheck();\n });\n }\n });\n this._initErrorStateTracker();\n }\n\n public ngAfterContentInit(): void {\n this._initKeyManager();\n this._selectionModel?.select(...this.options().filter((item) => item.selected()));\n this._subscribeOptionChanges();\n }\n\n public ngAfterViewInit(): void {\n queueMicrotask(() => {\n const controlDir = this.ngControl();\n if (controlDir?.control) {\n controlDir.control.events.pipe(takeUntilDestroyed(this._destroyRef)).subscribe(() => this.updateErrorAndSuccessState());\n }\n });\n }\n\n public updateErrorAndSuccessState(): void {\n this._errorStateTracker?.updateErrorState();\n this._successStateTracker?.updateSuccessState();\n }\n\n public ngOnDestroy(): void {\n this._keyManager?.destroy();\n }\n\n private _initKeyManager(): void {\n this._keyManager = new ActiveDescendantKeyManager<IdsOptionComponent>(this.options())\n .withTypeAhead(this.typeaheadDebounceInterval())\n .withVerticalOrientation()\n .withHorizontalOrientation('ltr')\n .withHomeAndEnd()\n .withPageUpDown()\n .withAllowedModifierKeys(['shiftKey'])\n .skipPredicate(this._skipPredicate);\n\n this._keyManager.tabOut.subscribe(() => {\n if (this.isPanelOpen()) {\n if (!this.multiSelect() && this._keyManager?.activeItem) {\n this._keyManager.activeItem.selectViaInteraction();\n }\n this.focus();\n this.close();\n }\n });\n\n this._keyManager.change.subscribe(() => {\n if (this.isPanelOpen() && this._panel()) {\n this._scrollOptionIntoView(this._keyManager?.activeItemIndex || 0);\n }\n });\n }\n\n private _subscribeOptionChanges(): void {\n this.options().forEach((option) => {\n option.onSelectionChange.subscribe(\n (change) => {\n this._handleOptionChange(change);\n },\n );\n });\n }\n\n private _handleOptionChange(change: IdsOptionSelectionChange): void {\n const { source, selected, isUserInput } = change;\n if (!this.multiSelect()) {\n this._clearSelection();\n }\n source.selected.set(selected);\n\n if (isUserInput) {\n this._keyManager?.setActiveItem(source);\n }\n\n if (isUserInput && !this.multiSelect() && this.isPanelOpen()) {\n this.close();\n this.focus();\n }\n\n if (this.multiSelect()) {\n this._sortValues();\n\n if (isUserInput) {\n this.focus();\n }\n }\n\n if (selected) {\n this._selectionModel?.select(source);\n } else {\n this._selectionModel?.deselect(source);\n }\n this._handleChange();\n this._onTouched();\n }\n\n protected _handleKeydown(event: KeyboardEvent): void {\n if (!this.disabled() && !this.readonly()) {\n this.isPanelOpen() ? this._handleOpenedPanelKeydown(event) : this._handleClosedPanelKeydown(event);\n }\n }\n\n private _handleClosedPanelKeydown(event: KeyboardEvent): void {\n const manager = this._keyManager;\n const key = event.key;\n const isArrowKey =\n key === 'ArrowDown' ||\n key === 'ArrowUp' ||\n key === 'ArrowLeft' ||\n key === 'ArrowRight';\n const isOpenKey = key === 'Enter' || key === ' ';\n\n if ((!manager?.isTyping() && isOpenKey && !hasModifierKey(event)) || isArrowKey) {\n event.preventDefault();\n this.open();\n } else if (!this.multiSelect()) {\n const previouslySelectedOption = this.selected;\n manager?.onKeydown(event);\n const selectedOption = this.selected as IdsOptionComponent;\n\n if (selectedOption?.viewValue() && previouslySelectedOption !== selectedOption) {\n // eslint-disable-next-line no-magic-numbers\n this._liveAnnouncer.announce(selectedOption.viewValue(), 10000);\n }\n }\n }\n\n private _handleOpenedPanelKeydown(event: KeyboardEvent): void {\n const manager = this._keyManager;\n const key = event.key;\n const isArrowKey = key === 'ArrowDown' || key === 'ArrowUp';\n const isTyping = manager?.isTyping();\n\n if (isArrowKey && event.altKey) {\n event.preventDefault();\n this.close();\n } else if (\n !isTyping &&\n (key === 'Enter' || key === ' ') &&\n manager?.activeItem &&\n !hasModifierKey(event)\n ) {\n event.preventDefault();\n manager.activeItem.selectViaInteraction();\n } else if (!isTyping && this.multiSelect() && key === 'a' && event.ctrlKey) {\n event.preventDefault();\n const hasDeselectedOptions = this.options().some((opt) => !opt.disabled && !opt.selected());\n\n this.options().forEach((option) => {\n if (!option.disabled) {\n hasDeselectedOptions ? option.select() : option.deselect();\n }\n });\n } else {\n const previouslyFocusedIndex = manager?.activeItemIndex;\n\n manager?.onKeydown(event);\n\n if (\n this.multiSelect() &&\n isArrowKey &&\n event.shiftKey &&\n manager?.activeItem &&\n manager?.activeItemIndex !== previouslyFocusedIndex\n ) {\n manager?.activeItem.selectViaInteraction();\n }\n }\n }\n\n private _positioningSettled(): void {\n this._scrollOptionIntoView(this._keyManager?.activeItemIndex || 0);\n }\n\n private _scrollOptionIntoView(index: number): void {\n const option = this.options()[index];\n\n if (option) {\n const panel: HTMLElement | undefined = this._panel()!.nativeElement;\n const labelCount = _countGroupLabelsBeforeOption(index, this.options(), this.optionGroups());\n const element = option.getHostElement();\n\n if (index === 0 && labelCount === 1) {\n panel.scrollTop = 0;\n } else {\n panel.scrollTop = _getOptionScrollPosition(\n element.offsetTop,\n element.offsetHeight,\n panel.scrollTop,\n panel.offsetHeight,\n );\n }\n }\n }\n\n private _sortValues(): void {\n if (this.multiSelect()) {\n const options = this.options();\n\n const sortComparator = this.sortCompareFn();\n this._selectionModel?.sort((a, b) => (sortComparator\n ? sortComparator(a, b, options)\n : options.indexOf(a) - options.indexOf(b)));\n }\n }\n\n private _getOverlayWidth(\n preferredOrigin: ElementRef<ElementRef> | CdkOverlayOrigin | undefined,\n ): string | number {\n const refToMeasure\n = preferredOrigin instanceof CdkOverlayOrigin\n ? preferredOrigin.elementRef\n : preferredOrigin || this._elementRef;\n return refToMeasure.nativeElement.getBoundingClientRect().width;\n }\n\n protected _panelAttached(): void {\n this._overlayDir()?.positionChange.pipe(first()).subscribe(() => {\n this._changeDetectorRef.detectChanges();\n this._positioningSettled();\n });\n }\n\n public toggle(): void {\n this.isPanelOpen() ? this.close() : this.open();\n }\n\n public open(): void {\n if (!this._canOpen()) {\n return;\n }\n\n if (this._parentFormField) {\n this._preferredOverlayOrigin = this._parentFormField?.getConnectedOverlayOrigin();\n }\n\n this._overlayWidth = this._getOverlayWidth(this._preferredOverlayOrigin);\n this.isPanelOpen.set(true);\n this._keyManager?.withHorizontalOrientation(null);\n this._highlightCorrectOption();\n this._changeDetectorRef.markForCheck();\n }\n\n public close(): void {\n if (this.isPanelOpen()) {\n this.isPanelOpen.set(false);\n this._keyManager?.withHorizontalOrientation('ltr');\n this._changeDetectorRef.markForCheck();\n this._onTouched();\n }\n }\n\n // #region ControlValueAccessor implementation\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 this._changeDetectorRef.markForCheck();\n }\n // #endregion\n\n private _setSelectionByValue(value: unknown | unknown[]): void {\n this.options().forEach((option) => {\n option.setInactiveStyles();\n option.selected.set(false);\n });\n this._selectionModel?.clear();\n this._rawValue = value;\n\n if (this.options().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 value.forEach((currentValue: unknown) => this._selectValue(currentValue));\n this._sortValues();\n } else {\n const correspondingOption = this._selectValue(value);\n if (correspondingOption) {\n this._keyManager?.updateActiveItem(correspondingOption);\n } else if (!this.isPanelOpen()) {\n this._keyManager?.updateActiveItem(-1);\n }\n }\n }\n\n private _selectValue(value: unknown): IdsOptionComponent | undefined {\n const valueCompareFn = this.valueCompareFn();\n const correspondingOption = this.options().find((option) => {\n if (this._selectionModel?.isSelected(option)) {\n return false;\n }\n\n try {\n return valueCompareFn?.(option.value(), value);\n } catch (error) {\n if (isDevMode()) {\n console.warn(error);\n }\n return false;\n }\n });\n\n if (correspondingOption) {\n correspondingOption.selected.set(true);\n this._selectionModel?.select(correspondingOption);\n }\n\n return correspondingOption;\n }\n\n private _clearSelection(): void {\n this._selectionModel?.clear();\n this.options().forEach((option) => {\n option.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 this._changeDetectorRef.markForCheck();\n }\n\n private _skipPredicate = (option: IdsOptionComponent): boolean => {\n if (this.isPanelOpen()) {\n return false;\n }\n\n return option.disabledInput();\n };\n\n private _highlightCorrectOption(): void {\n if (this._keyManager) {\n if (this._empty) {\n let firstEnabledOptionIndex = -1;\n for (let index = 0; index < this.options().length; index++) {\n const option = this.options()[index]!;\n if (!option.disabled) {\n firstEnabledOptionIndex = index;\n break;\n }\n }\n\n this._keyManager.setActiveItem(firstEnabledOptionIndex);\n } else {\n if (this._selectionModel) {\n this._keyManager.setActiveItem(this._selectionModel.selected[0]);\n }\n }\n }\n }\n\n public isOptionPreSelectedByValue(optionValue: 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) => optionValue != null && value === optionValue);\n }\n return optionValue === this._rawValue;\n }\n\n private _onFocus(): void {\n if (!this.disabled()) {\n this._focused.set(true);\n }\n }\n\n private _onBlur(): void {\n this._focused.set(false);\n this._keyManager?.cancelTypeahead();\n\n if (!this.disabled() && !this.isPanelOpen()) {\n this._onTouched();\n this._changeDetectorRef.markForCheck();\n }\n }\n\n private _getAriaActiveDescendant(): string | null {\n if (this.isPanelOpen() && this._keyManager?.activeItem) {\n return this._keyManager.activeItem.id();\n }\n\n return null;\n }\n\n public focus(options?: FocusOptions): void {\n this._elementRef.nativeElement.focus(options);\n }\n\n public onContainerClick = (): void => {\n if (!this._focused && !this.readonly() && !this.disabled()) {\n this.focus();\n this.open();\n }\n };\n}\n","<div #trigger #fallbackOverlayOrigin=\"cdkOverlayOrigin\" cdk-overlay-origin class=\"ids-select__trigger\" (click)=\"open()\">\n <div class=\"ids-select__value\">\n @if (_empty) {\n <span class=\"ids-select__placeholder\">{{ placeholder() }}</span>\n } @else {\n <span class=\"ids-select__value-text\">\n @if (_customTrigger()) {\n <ng-content select=\"ids-select-trigger\" />\n } @else {\n {{ _triggerValue }}\n }\n </span>\n }\n </div>\n\n <div class=\"ids-select__arrow\">\n <ids-icon fontIcon=\"chevron-down\" />\n </div>\n</div>\n\n<ng-template\n cdk-connected-overlay\n cdkConnectedOverlayLockPosition\n [cdkConnectedOverlayOrigin]=\"_preferredOverlayOrigin || fallbackOverlayOrigin\"\n [cdkConnectedOverlayOpen]=\"isPanelOpen()\"\n [cdkConnectedOverlayPositions]=\"_connectedPositions\"\n [cdkConnectedOverlayWidth]=\"_overlayWidth\"\n [cdkConnectedOverlayPush]=\"true\"\n (overlayOutsideClick)=\"close()\"\n (attach)=\"_panelAttached()\"\n (detach)=\"close()\"\n>\n <div\n #panel\n role=\"listbox\"\n tabindex=\"-1\"\n [attr.id]=\"id() + '-panel'\"\n [attr.aria-multiselectable]=\"multiSelect()\"\n [attr.aria-label]=\"ariaLabel() || null\"\n [attr.aria-labelledby]=\"ariaLabelledby()\"\n [class]=\"_panelClasses()\"\n (keydown)=\"_handleKeydown($event)\"\n >\n <ng-content />\n </div>\n</ng-template>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"i-cell-ids-angular-select.mjs","sources":["../../../projects/widgets/select/select-defaults.ts","../../../projects/widgets/select/select-trigger.directive.ts","../../../projects/widgets/select/select-positions.ts","../../../projects/widgets/select/select.component.ts","../../../projects/widgets/select/select.component.html","../../../projects/widgets/select/i-cell-ids-angular-select.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { AbstractErrorStateMatcher, AbstractSuccessStateMatcher, ErrorStateMatcher, SuccessStateMatcher } from '@i-cell/ids-angular/forms';\n\nexport interface IdsSelectDefaultConfig {\n errorStateMatcher?: typeof AbstractErrorStateMatcher\n successStateMatcher?: typeof AbstractSuccessStateMatcher\n typeaheadDebounceInterval: number\n}\n\nexport const IDS_SELECT_DEFAULT_CONFIG = new InjectionToken<IdsSelectDefaultConfig>(\n 'IDS_SELECT_DEFAULT_CONFIG',\n {\n providedIn: 'root',\n factory: IDS_SELECT_DEFAULT_CONFIG_FACTORY,\n },\n);\n\nexport function IDS_SELECT_DEFAULT_CONFIG_FACTORY(): Required<IdsSelectDefaultConfig> {\n return {\n errorStateMatcher: ErrorStateMatcher,\n successStateMatcher: SuccessStateMatcher,\n typeaheadDebounceInterval: 200,\n };\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: 'ids-select-trigger',\n standalone: true,\n})\nexport class IdsSelectTriggerDirective {\n}\n","import { ConnectedPosition } from '@angular/cdk/overlay';\n\nexport const selectConnectedPositions: ConnectedPosition[] = [\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n },\n {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top',\n },\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n panelClass: 'ids-select-panel-above',\n },\n {\n originX: 'end',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'bottom',\n panelClass: 'ids-select-panel-above',\n },\n];\n","import { IDS_SELECT_DEFAULT_CONFIG, IDS_SELECT_DEFAULT_CONFIG_FACTORY, IdsSelectDefaultConfig } from './select-defaults';\nimport { selectConnectedPositions } from './select-positions';\nimport { IdsSelectTriggerDirective } from './select-trigger.directive';\n\nimport { ActiveDescendantKeyManager, LiveAnnouncer } from '@angular/cdk/a11y';\nimport { SelectionModel } from '@angular/cdk/collections';\nimport { hasModifierKey } from '@angular/cdk/keycodes';\nimport { CdkConnectedOverlay, CdkOverlayOrigin } from '@angular/cdk/overlay';\nimport { AfterContentInit, AfterViewInit, ChangeDetectionStrategy, ChangeDetectorRef, Component, computed, contentChild, contentChildren, effect, ElementRef, forwardRef, inject, input, isDevMode, OnDestroy, OnInit, signal, viewChild, ViewEncapsulation } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR, ValueChangeEvent } from '@angular/forms';\nimport { coerceNumberAttribute, createClassList } from '@i-cell/ids-angular/core';\nimport { _countGroupLabelsBeforeOption, _getOptionScrollPosition, AbstractErrorStateMatcher, AbstractSuccessStateMatcher, formFieldControlClass, IDS_FORM_FIELD_CONTROL, IDS_OPTION_GROUP, IDS_OPTION_PARENT_COMPONENT, IdsFormFieldComponent, IdsFormFieldControl, IdsOptionComponent, IdsOptionGroupComponent, IdsOptionSelectionChange } from '@i-cell/ids-angular/forms';\nimport { IdsIconComponent } from '@i-cell/ids-angular/icon';\nimport { filter, first } from 'rxjs';\n\nconst defaultConfig = IDS_SELECT_DEFAULT_CONFIG_FACTORY();\n\n@Component({\n selector: `ids-select[ngModel]:not([formControl]):not([formControlName]),\n ids-select[formControl]:not([ngModel]):not([formControlName]),\n ids-select[formControlName]:not([ngModel]):not([formControl])`,\n imports: [\n CdkOverlayOrigin,\n CdkConnectedOverlay,\n IdsIconComponent,\n ],\n templateUrl: './select.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n { provide: IDS_FORM_FIELD_CONTROL, useExisting: IdsSelectComponent },\n { provide: IDS_OPTION_PARENT_COMPONENT, useExisting: IdsSelectComponent },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => IdsSelectComponent),\n multi: true,\n },\n ],\n host: {\n 'role': 'select',\n 'aria-autocomplete': 'none',\n 'aria-haspopup': 'listbox',\n '[attr.tabindex]': 'disabled() ? -1 : tabIndex()',\n '[attr.aria-controls]': 'isPanelOpen() ? id() + \"-panel\" : null',\n '[attr.aria-owns]': 'isPanelOpen() ? id() + \"-panel\" : null',\n '[attr.aria-expanded]': 'isPanelOpen()',\n '[attr.aria-label]': 'ariaLabel() || null',\n '[attr.aria-labelledby]': 'ariaLabelledby() || null',\n '[attr.aria-required]': 'required().toString()',\n '[attr.aria-disabled]': 'disabled().toString()',\n '[attr.aria-invalid]': 'hasErrorState()',\n '[attr.aria-activedescendant]': '_getAriaActiveDescendant()',\n '(keydown)': '_handleKeydown($event)',\n '(focus)': 'focus()',\n '(blur)': '_onBlur()',\n },\n})\nexport class IdsSelectComponent\n extends IdsFormFieldControl<IdsSelectDefaultConfig>\n implements ControlValueAccessor, OnInit, AfterContentInit, AfterViewInit, OnDestroy {\n protected override get _hostName(): string {\n return 'select';\n }\n\n protected readonly _defaultConfig = this._getDefaultConfig(defaultConfig, IDS_SELECT_DEFAULT_CONFIG);\n protected readonly _elementRef = inject(ElementRef);\n private readonly _changeDetectorRef = inject(ChangeDetectorRef);\n private readonly _liveAnnouncer = inject(LiveAnnouncer);\n private readonly _parentFormField = inject(IdsFormFieldComponent);\n\n protected readonly _connectedPositions = selectConnectedPositions;\n\n protected _preferredOverlayOrigin: CdkOverlayOrigin | ElementRef | undefined;\n protected _overlayWidth: string | number = 0;\n\n public multiSelect = input<boolean>(false);\n public readonly errorStateMatcher = input<AbstractErrorStateMatcher>(inject(this._defaultConfig.errorStateMatcher));\n public readonly successStateMatcher = input<AbstractSuccessStateMatcher>(inject(this._defaultConfig.successStateMatcher));\n public ariaLabel = input<string>('', { alias: 'aria-label' });\n public ariaLabelledby = input<string>('', { alias: 'aria-labelledby' });\n public valueCompareFn = input<(o1: unknown, o2: unknown) => boolean>((o1: unknown, o2: unknown) => o1 === o2);\n public sortCompareFn = input<(a: IdsOptionComponent, b: IdsOptionComponent, options: Readonly<IdsOptionComponent[]>) => number>();\n public tabIndex = input<number, unknown>(0, { transform: coerceNumberAttribute });\n public typeaheadDebounceInterval = input<number, unknown>(\n this._defaultConfig.typeaheadDebounceInterval, { transform: coerceNumberAttribute },\n );\n\n public isPanelOpen = signal<boolean>(false);\n public parentSize = computed(() => this._parentFormField.parentOrSelfSize());\n public parentVariant = computed(() => this._parentFormField.parentOrSelfVariant());\n private _focused = signal<boolean>(false);\n\n private _canOpen = computed(() => !this.isPanelOpen() && !this.disabled() && !this.readonly() && this.options().length > 0);\n protected _hostClasses = computed(() => this._getHostClasses([\n this.parentSize(),\n this.parentVariant(),\n this.disabled() ? 'disabled' : null,\n this.readonly() ? 'readonly' : null,\n ], [formFieldControlClass]));\n\n protected _panelClasses = computed(() => createClassList(`${this._hostClassName}-panel`, [\n this.parentSize(),\n this.parentVariant(),\n ]));\n\n private _panel = viewChild<ElementRef<HTMLElement>>('panel');\n private _overlayDir = viewChild(CdkConnectedOverlay);\n public options = contentChildren<IdsOptionComponent>(IdsOptionComponent, { descendants: true });\n public optionGroups = contentChildren<IdsOptionGroupComponent>(IDS_OPTION_GROUP, { descendants: true });\n protected _customTrigger = contentChild(IdsSelectTriggerDirective);\n\n private _keyManager?: ActiveDescendantKeyManager<IdsOptionComponent>;\n private _rawValue: unknown | unknown[];\n private _selectionModel?: SelectionModel<IdsOptionComponent>;\n private _onChange: (value: unknown) => void = () => {};\n private _onTouched: () => unknown = () => { };\n\n protected get _empty(): boolean {\n return Boolean(this._selectionModel?.isEmpty());\n }\n\n public get selected(): IdsOptionComponent | IdsOptionComponent[] | undefined {\n return this.multiSelect() ? this._selectionModel?.selected : this._selectionModel?.selected?.[0];\n }\n\n protected get _triggerValue(): string {\n if (this._empty) {\n return '';\n }\n\n if (this.multiSelect()) {\n const selectedOptions = this._selectionModel?.selected?.map((option) => option.viewValue());\n return selectedOptions?.join(', ') || '';\n }\n\n return this._selectionModel?.selected?.[0].viewValue() || '';\n }\n\n constructor() {\n super();\n effect(() => {\n this._keyManager?.withTypeAhead(this.typeaheadDebounceInterval());\n });\n }\n\n public ngOnInit(): void {\n if (!this._parentFormField) {\n throw this._createHostError('Select must be in a form field');\n }\n this._selectionModel = new SelectionModel<IdsOptionComponent>(this.multiSelect(), undefined, false, this.valueCompareFn());\n queueMicrotask(() => {\n const control = this.ngControl()?.control;\n if (control) {\n control.events\n .pipe(\n filter((event) => event instanceof ValueChangeEvent),\n takeUntilDestroyed(this._destroyRef),\n )\n .subscribe(() => {\n this._changeDetectorRef.markForCheck();\n });\n }\n });\n this._initErrorStateTracker();\n }\n\n public ngAfterContentInit(): void {\n this._initKeyManager();\n this._selectionModel?.select(...this.options().filter((item) => item.selected()));\n this._subscribeOptionChanges();\n }\n\n public ngAfterViewInit(): void {\n queueMicrotask(() => {\n const controlDir = this.ngControl();\n if (controlDir?.control) {\n controlDir.control.events.pipe(takeUntilDestroyed(this._destroyRef)).subscribe(() => this.updateErrorAndSuccessState());\n }\n });\n }\n\n public updateErrorAndSuccessState(): void {\n this._errorStateTracker?.updateErrorState();\n this._successStateTracker?.updateSuccessState();\n }\n\n public ngOnDestroy(): void {\n this._keyManager?.destroy();\n }\n\n private _initKeyManager(): void {\n this._keyManager = new ActiveDescendantKeyManager<IdsOptionComponent>(this.options())\n .withTypeAhead(this.typeaheadDebounceInterval())\n .withVerticalOrientation()\n .withHorizontalOrientation('ltr')\n .withHomeAndEnd()\n .withPageUpDown()\n .withAllowedModifierKeys(['shiftKey'])\n .skipPredicate(this._skipPredicate);\n\n this._keyManager.tabOut.subscribe(() => {\n if (this.isPanelOpen()) {\n if (!this.multiSelect() && this._keyManager?.activeItem) {\n this._keyManager.activeItem.selectViaInteraction();\n }\n this.focus();\n this.close();\n }\n });\n\n this._keyManager.change.subscribe(() => {\n if (this.isPanelOpen() && this._panel()) {\n this._scrollOptionIntoView(this._keyManager?.activeItemIndex || 0);\n }\n });\n }\n\n private _subscribeOptionChanges(): void {\n this.options().forEach((option) => {\n option.onSelectionChange.subscribe(\n (change) => {\n this._handleOptionChange(change);\n },\n );\n });\n }\n\n private _handleOptionChange(change: IdsOptionSelectionChange): void {\n const { source, selected, isUserInput } = change;\n if (!this.multiSelect()) {\n this._clearSelection();\n }\n source.selected.set(selected);\n\n if (isUserInput) {\n this._keyManager?.setActiveItem(source);\n }\n\n if (isUserInput && !this.multiSelect() && this.isPanelOpen()) {\n this.close();\n this.focus();\n }\n\n if (this.multiSelect()) {\n this._sortValues();\n\n if (isUserInput) {\n this.focus();\n }\n }\n\n if (selected) {\n this._selectionModel?.select(source);\n } else {\n this._selectionModel?.deselect(source);\n }\n this._handleChange();\n this._onTouched();\n }\n\n protected _handleKeydown(event: KeyboardEvent): void {\n if (!this.disabled() && !this.readonly()) {\n this.isPanelOpen() ? this._handleOpenedPanelKeydown(event) : this._handleClosedPanelKeydown(event);\n }\n }\n\n private _handleClosedPanelKeydown(event: KeyboardEvent): void {\n const manager = this._keyManager;\n const key = event.key;\n const isArrowKey =\n key === 'ArrowDown' ||\n key === 'ArrowUp' ||\n key === 'ArrowLeft' ||\n key === 'ArrowRight';\n const isOpenKey = key === 'Enter' || key === ' ';\n\n if ((!manager?.isTyping() && isOpenKey && !hasModifierKey(event)) || isArrowKey) {\n event.preventDefault();\n this.open();\n } else if (!this.multiSelect()) {\n const previouslySelectedOption = this.selected;\n manager?.onKeydown(event);\n const selectedOption = this.selected as IdsOptionComponent;\n\n if (selectedOption?.viewValue() && previouslySelectedOption !== selectedOption) {\n // eslint-disable-next-line no-magic-numbers\n this._liveAnnouncer.announce(selectedOption.viewValue(), 10000);\n }\n }\n }\n\n private _handleOpenedPanelKeydown(event: KeyboardEvent): void {\n const manager = this._keyManager;\n const key = event.key;\n const isArrowKey = key === 'ArrowDown' || key === 'ArrowUp';\n const isTyping = manager?.isTyping();\n\n if (isArrowKey && event.altKey) {\n event.preventDefault();\n this.close();\n } else if (\n !isTyping &&\n (key === 'Enter' || key === ' ') &&\n manager?.activeItem &&\n !hasModifierKey(event)\n ) {\n event.preventDefault();\n manager.activeItem.selectViaInteraction();\n } else if (!isTyping && this.multiSelect() && key === 'a' && event.ctrlKey) {\n event.preventDefault();\n const hasDeselectedOptions = this.options().some((opt) => !opt.disabled && !opt.selected());\n\n this.options().forEach((option) => {\n if (!option.disabled) {\n hasDeselectedOptions ? option.select() : option.deselect();\n }\n });\n } else {\n const previouslyFocusedIndex = manager?.activeItemIndex;\n\n manager?.onKeydown(event);\n\n if (\n this.multiSelect() &&\n isArrowKey &&\n event.shiftKey &&\n manager?.activeItem &&\n manager?.activeItemIndex !== previouslyFocusedIndex\n ) {\n manager?.activeItem.selectViaInteraction();\n }\n }\n }\n\n private _positioningSettled(): void {\n this._scrollOptionIntoView(this._keyManager?.activeItemIndex || 0);\n }\n\n private _scrollOptionIntoView(index: number): void {\n const option = this.options()[index];\n\n if (option) {\n const panel: HTMLElement | undefined = this._panel()!.nativeElement;\n const labelCount = _countGroupLabelsBeforeOption(index, this.options(), this.optionGroups());\n const element = option.getHostElement();\n\n if (index === 0 && labelCount === 1) {\n panel.scrollTop = 0;\n } else {\n panel.scrollTop = _getOptionScrollPosition(\n element.offsetTop,\n element.offsetHeight,\n panel.scrollTop,\n panel.offsetHeight,\n );\n }\n }\n }\n\n private _sortValues(): void {\n if (this.multiSelect()) {\n const options = this.options();\n\n const sortComparator = this.sortCompareFn();\n this._selectionModel?.sort((a, b) => (sortComparator\n ? sortComparator(a, b, options)\n : options.indexOf(a) - options.indexOf(b)));\n }\n }\n\n private _getOverlayWidth(\n preferredOrigin: ElementRef<ElementRef> | CdkOverlayOrigin | undefined,\n ): string | number {\n const refToMeasure\n = preferredOrigin instanceof CdkOverlayOrigin\n ? preferredOrigin.elementRef\n : preferredOrigin || this._elementRef;\n return refToMeasure.nativeElement.getBoundingClientRect().width;\n }\n\n protected _panelAttached(): void {\n this._overlayDir()?.positionChange.pipe(first()).subscribe(() => {\n this._changeDetectorRef.detectChanges();\n this._positioningSettled();\n });\n }\n\n public toggle(): void {\n this.isPanelOpen() ? this.close() : this.open();\n }\n\n public open(): void {\n if (!this._canOpen()) {\n return;\n }\n\n if (this._parentFormField) {\n this._preferredOverlayOrigin = this._parentFormField?.getConnectedOverlayOrigin();\n }\n\n this._overlayWidth = this._getOverlayWidth(this._preferredOverlayOrigin);\n this.isPanelOpen.set(true);\n this._keyManager?.withHorizontalOrientation(null);\n this._highlightCorrectOption();\n this._changeDetectorRef.markForCheck();\n }\n\n public close(): void {\n if (this.isPanelOpen()) {\n this.isPanelOpen.set(false);\n this._keyManager?.withHorizontalOrientation('ltr');\n this._changeDetectorRef.markForCheck();\n this._onTouched();\n }\n }\n\n // #region ControlValueAccessor implementation\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 this._changeDetectorRef.markForCheck();\n }\n // #endregion\n\n private _setSelectionByValue(value: unknown | unknown[]): void {\n this.options().forEach((option) => {\n option.setInactiveStyles();\n option.selected.set(false);\n });\n this._selectionModel?.clear();\n this._rawValue = value;\n\n if (this.options().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 value.forEach((currentValue: unknown) => this._selectValue(currentValue));\n this._sortValues();\n } else {\n const correspondingOption = this._selectValue(value);\n if (correspondingOption) {\n this._keyManager?.updateActiveItem(correspondingOption);\n } else if (!this.isPanelOpen()) {\n this._keyManager?.updateActiveItem(-1);\n }\n }\n }\n\n private _selectValue(value: unknown): IdsOptionComponent | undefined {\n const valueCompareFn = this.valueCompareFn();\n const correspondingOption = this.options().find((option) => {\n if (this._selectionModel?.isSelected(option)) {\n return false;\n }\n\n try {\n return valueCompareFn?.(option.value(), value);\n } catch(error) {\n if (isDevMode()) {\n console.warn(error);\n }\n return false;\n }\n });\n\n if (correspondingOption) {\n correspondingOption.selected.set(true);\n this._selectionModel?.select(correspondingOption);\n }\n\n return correspondingOption;\n }\n\n private _clearSelection(): void {\n this._selectionModel?.clear();\n this.options().forEach((option) => {\n option.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 this._changeDetectorRef.markForCheck();\n }\n\n private _skipPredicate = (option: IdsOptionComponent): boolean => {\n if (this.isPanelOpen()) {\n return false;\n }\n\n return option.disabledInput();\n };\n\n private _highlightCorrectOption(): void {\n if (this._keyManager) {\n if (this._empty) {\n let firstEnabledOptionIndex = -1;\n for (let index = 0; index < this.options().length; index++) {\n const option = this.options()[index]!;\n if (!option.disabled) {\n firstEnabledOptionIndex = index;\n break;\n }\n }\n\n this._keyManager.setActiveItem(firstEnabledOptionIndex);\n } else {\n if (this._selectionModel) {\n this._keyManager.setActiveItem(this._selectionModel.selected[0]);\n }\n }\n }\n }\n\n public isOptionPreSelectedByValue(optionValue: 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) => optionValue != null && value === optionValue);\n }\n return optionValue === this._rawValue;\n }\n\n private _onFocus(): void {\n if (!this.disabled()) {\n this._focused.set(true);\n }\n }\n\n private _onBlur(): void {\n this._focused.set(false);\n this._keyManager?.cancelTypeahead();\n\n if (!this.disabled() && !this.isPanelOpen()) {\n this._onTouched();\n this._changeDetectorRef.markForCheck();\n }\n }\n\n private _getAriaActiveDescendant(): string | null {\n if (this.isPanelOpen() && this._keyManager?.activeItem) {\n return this._keyManager.activeItem.id();\n }\n\n return null;\n }\n\n public focus(options?: FocusOptions): void {\n this._elementRef.nativeElement.focus(options);\n }\n\n public onContainerClick = (): void => {\n if (!this._focused() && !this.readonly() && !this.disabled()) {\n this.focus();\n this.open();\n }\n };\n}\n","<div #trigger #fallbackOverlayOrigin=\"cdkOverlayOrigin\" cdk-overlay-origin class=\"ids-select__trigger\" (click)=\"open()\">\n <div class=\"ids-select__value\">\n @if (_empty) {\n <span class=\"ids-select__placeholder\">{{ placeholder() }}</span>\n } @else {\n <span class=\"ids-select__value-text\">\n @if (_customTrigger()) {\n <ng-content select=\"ids-select-trigger\" />\n } @else {\n {{ _triggerValue }}\n }\n </span>\n }\n </div>\n\n <div class=\"ids-select__arrow\">\n <ids-icon fontIcon=\"chevron-down\" />\n </div>\n</div>\n<ng-template\n cdk-connected-overlay\n cdkConnectedOverlayLockPosition\n [cdkConnectedOverlayOrigin]=\"_preferredOverlayOrigin || fallbackOverlayOrigin\"\n [cdkConnectedOverlayOpen]=\"isPanelOpen()\"\n [cdkConnectedOverlayPositions]=\"_connectedPositions\"\n [cdkConnectedOverlayWidth]=\"_overlayWidth\"\n (overlayOutsideClick)=\"close()\"\n (attach)=\"_panelAttached()\"\n (detach)=\"close()\"\n>\n <div\n #panel\n role=\"listbox\"\n tabindex=\"-1\"\n [attr.id]=\"id() + '-panel'\"\n [attr.aria-multiselectable]=\"multiSelect()\"\n [attr.aria-label]=\"ariaLabel() || null\"\n [attr.aria-labelledby]=\"ariaLabelledby()\"\n [class]=\"_panelClasses()\"\n (keydown)=\"_handleKeydown($event)\"\n >\n <ng-content />\n </div>\n</ng-template>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,375 @@
1
+ import * as i0 from '@angular/core';
2
+ import { InjectionToken, input, computed, contentChildren, inject, contentChild, TemplateRef, Component } from '@angular/core';
3
+ import { IdsSize, coerceBooleanAttribute, ComponentBaseWithDefaults } from '@i-cell/ids-angular/core';
4
+ import { trigger, transition, style, animate } from '@angular/animations';
5
+ import { NgTemplateOutlet } from '@angular/common';
6
+ import { Router } from '@angular/router';
7
+ import { IdsIconComponent } from '@i-cell/ids-angular/icon';
8
+ import { IdsIconButtonComponent, IDS_ICON_BUTTON_PARENT } from '@i-cell/ids-angular/icon-button';
9
+
10
+ const IdsSideNavVariant = {
11
+ SURFACE: 'surface',
12
+ LIGHT: 'light',
13
+ };
14
+
15
+ const IdsSideNavAppearance = {
16
+ STANDARD: 'standard',
17
+ };
18
+
19
+ const IDS_SIDE_NAV_DEFAULT_CONFIG = new InjectionToken('IDS_SIDE_NAV_DEFAULT_CONFIG', {
20
+ providedIn: 'root',
21
+ factory: IDS_SIDE_NAV_DEFAULT_CONFIG_FACTORY,
22
+ });
23
+ function IDS_SIDE_NAV_DEFAULT_CONFIG_FACTORY() {
24
+ return {
25
+ appearance: IdsSideNavAppearance.STANDARD,
26
+ size: IdsSize.COMPACT,
27
+ variant: IdsSideNavVariant.SURFACE,
28
+ hasActiveIndicator: false,
29
+ hasLabel: true,
30
+ };
31
+ }
32
+
33
+ const IDS_SIDE_NAV_PARENT = new InjectionToken('IDS_SIDE_NAV_PARENT');
34
+
35
+ /**
36
+ * Side navigation item
37
+ * - it can be a single list element or an expandable list element, containing another list of elements
38
+ * - it can be used with selectors like `ids-side-nav-item` or `li[idsSideNavItem]`
39
+ * - children can be provided with content projection:
40
+ * - either project `ids-side-nav-item` elements
41
+ * - or list elements as `<li>` elements in an ng-template, marked with `idsSideNavItemChildren` variable
42
+ */
43
+ class IdsSideNavItemComponent {
44
+ constructor() {
45
+ this.disabled = input(false, ...(ngDevMode ? [{ debugName: "disabled", transform: (value) => coerceBooleanAttribute(value) }] : [{ transform: (value) => coerceBooleanAttribute(value) }]));
46
+ this.label = input.required(...(ngDevMode ? [{ debugName: "label" }] : []));
47
+ this.target = input('', ...(ngDevMode ? [{ debugName: "target" }] : []));
48
+ 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" }] : []));
50
+ this._expandable = computed(() => this._contentChildren().length > 0 || this._contentTemplate(), ...(ngDevMode ? [{ debugName: "_expandable" }] : []));
51
+ this._expanded = false;
52
+ this._iconLeading = contentChildren('[icon-leading]', ...(ngDevMode ? [{ debugName: "_iconLeading" }] : []));
53
+ this._iconTrailing = contentChildren('[icon-trailing]', ...(ngDevMode ? [{ debugName: "_iconTrailing" }] : []));
54
+ this._parent = inject(IDS_SIDE_NAV_PARENT, { optional: true });
55
+ this._contentTemplate = contentChild('idsSideNavItemChildren', ...(ngDevMode ? [{ debugName: "_contentTemplate", read: TemplateRef }] : [{ read: TemplateRef }]));
56
+ this._contentChildren = contentChildren(IdsSideNavItemComponent, ...(ngDevMode ? [{ debugName: "_contentChildren" }] : []));
57
+ this._router = inject(Router);
58
+ }
59
+ _onClick(event) {
60
+ if (this.disabled()) {
61
+ return;
62
+ }
63
+ if ([
64
+ 'button',
65
+ 'ids-icon',
66
+ ].includes(event.target.localName)) {
67
+ this._toggle();
68
+ }
69
+ else {
70
+ this._navigate();
71
+ }
72
+ }
73
+ _onKeyDown(event) {
74
+ if (this.disabled()) {
75
+ return;
76
+ }
77
+ if ([
78
+ 'Enter',
79
+ 'Space',
80
+ ].includes(event.code)) {
81
+ event.preventDefault();
82
+ if (event.target.localName === 'button') {
83
+ this._toggle();
84
+ }
85
+ else {
86
+ this._navigate();
87
+ }
88
+ }
89
+ else if ([
90
+ 'ArrowUp',
91
+ 'ArrowDown',
92
+ 'Escape',
93
+ ].includes(event.code)) {
94
+ event.preventDefault();
95
+ event.stopImmediatePropagation();
96
+ this._toggle();
97
+ }
98
+ }
99
+ _toggle() {
100
+ if (this._expandable()) {
101
+ this._expanded = !this._expanded;
102
+ }
103
+ }
104
+ _navigate() {
105
+ const target = this.target();
106
+ if (target) {
107
+ this._router.navigateByUrl(target);
108
+ }
109
+ }
110
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: IdsSideNavItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
111
+ 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: `
112
+ <a
113
+ [class.ids-side-nav-item-single]="!_expandable()"
114
+ [class.ids-side-nav-item-expandable-summary]="_expandable()"
115
+ [attr.tabindex]="!disabled() ? 0 : null"
116
+ [attr.disabled]="disabled() ? '' : null"
117
+ [attr.is-active]="_active() ? '' : null"
118
+ [attr.is-active-indicator]="_active() && _parent?.hasActiveIndicator() ? '' : null"
119
+ [attr.aria-disabled]="disabled() ? '' : null"
120
+ [attr.aria-current]="_active()"
121
+ [attr.aria-expanded]="!_expandable() ? null : _expanded ? 'true' : 'false'"
122
+ [attr.aria-label]="label()"
123
+ (keydown)="_onKeyDown($event)"
124
+ (click)="_onClick($event)"
125
+ >
126
+ @if (_iconLeading()) {
127
+ <ng-content select="[icon-leading]" />
128
+ }
129
+ @if (_parent?.hasLabel()) {
130
+ <span class="ids-side-nav-item-label">{{ label() }}</span>
131
+ }
132
+ @if (_iconTrailing()) {
133
+ <ng-content select="[icon-trailing]" />
134
+ }
135
+ @if (_expandable()) {
136
+ <button idsIconButton type="button" [disabled]="disabled()">
137
+ <ids-icon aria-hidden="true" alt="" [fontIcon]="_expanded ? 'chevron-up' : 'chevron-down'" />
138
+ </button>
139
+ }
140
+ </a>
141
+ @if (_expandable() && _expanded) {
142
+ <ul @enterLeave class="ids-side-nav-item-expandable-submenu">
143
+ <ng-content select="ids-side-nav-item,[idsSideNavItem]" />
144
+ <ng-container *ngTemplateOutlet="_contentTemplate()" />
145
+ </ul>
146
+ }
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
+ ] }); }
161
+ }
162
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: IdsSideNavItemComponent, decorators: [{
163
+ type: Component,
164
+ args: [{
165
+ selector: 'ids-side-nav-item, li[idsSideNavItem]',
166
+ imports: [
167
+ IdsIconComponent,
168
+ IdsIconButtonComponent,
169
+ NgTemplateOutlet,
170
+ ],
171
+ template: `
172
+ <a
173
+ [class.ids-side-nav-item-single]="!_expandable()"
174
+ [class.ids-side-nav-item-expandable-summary]="_expandable()"
175
+ [attr.tabindex]="!disabled() ? 0 : null"
176
+ [attr.disabled]="disabled() ? '' : null"
177
+ [attr.is-active]="_active() ? '' : null"
178
+ [attr.is-active-indicator]="_active() && _parent?.hasActiveIndicator() ? '' : null"
179
+ [attr.aria-disabled]="disabled() ? '' : null"
180
+ [attr.aria-current]="_active()"
181
+ [attr.aria-expanded]="!_expandable() ? null : _expanded ? 'true' : 'false'"
182
+ [attr.aria-label]="label()"
183
+ (keydown)="_onKeyDown($event)"
184
+ (click)="_onClick($event)"
185
+ >
186
+ @if (_iconLeading()) {
187
+ <ng-content select="[icon-leading]" />
188
+ }
189
+ @if (_parent?.hasLabel()) {
190
+ <span class="ids-side-nav-item-label">{{ label() }}</span>
191
+ }
192
+ @if (_iconTrailing()) {
193
+ <ng-content select="[icon-trailing]" />
194
+ }
195
+ @if (_expandable()) {
196
+ <button idsIconButton type="button" [disabled]="disabled()">
197
+ <ids-icon aria-hidden="true" alt="" [fontIcon]="_expanded ? 'chevron-up' : 'chevron-down'" />
198
+ </button>
199
+ }
200
+ </a>
201
+ @if (_expandable() && _expanded) {
202
+ <ul @enterLeave class="ids-side-nav-item-expandable-submenu">
203
+ <ng-content select="ids-side-nav-item,[idsSideNavItem]" />
204
+ <ng-container *ngTemplateOutlet="_contentTemplate()" />
205
+ </ul>
206
+ }
207
+ <ng-content select="ng-template"/>
208
+ `,
209
+ host: {
210
+ class: 'ids-side-nav-item',
211
+ '[class.ids-side-nav-item-expandable]': '_expandable()',
212
+ '[role]': '_expandable() ? "group" : "treeitem"',
213
+ },
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
+ }]
228
+ }] });
229
+
230
+ /**
231
+ * Side navigation (section) title
232
+ * - title of the navigation section
233
+ * - it can be used with selectors like `ids-side-nav-title` or `li[idsSideNavTitle]`
234
+ * - leading and trailing icons should be projected, label is bound by input
235
+ */
236
+ class IdsSideNavTitleComponent {
237
+ constructor() {
238
+ this.label = input.required(...(ngDevMode ? [{ debugName: "label" }] : []));
239
+ this._iconLeading = contentChildren('[icon-leading]', ...(ngDevMode ? [{ debugName: "_iconLeading" }] : []));
240
+ this._iconTrailing = contentChildren('[icon-trailing]', ...(ngDevMode ? [{ debugName: "_iconTrailing" }] : []));
241
+ this._parent = inject(IDS_SIDE_NAV_PARENT, { optional: true });
242
+ }
243
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: IdsSideNavTitleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
244
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.7", type: IdsSideNavTitleComponent, isStandalone: true, selector: "ids-side-nav-title, li[idsSideNavTitle]", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: true, transformFunction: null } }, host: { attributes: { "role": "treeitem" }, classAttribute: "ids-side-nav-title" }, queries: [{ propertyName: "_iconLeading", predicate: ["[icon-leading]"], isSignal: true }, { propertyName: "_iconTrailing", predicate: ["[icon-trailing]"], isSignal: true }], ngImport: i0, template: `
245
+ @if (_iconLeading()) {
246
+ <ng-content select="[icon-leading]" />
247
+ }
248
+ @if (_parent?.hasLabel()) {
249
+ <span class="ids-side-nav-title-label">{{ label() }}</span>
250
+ }
251
+ @if (_iconTrailing()) {
252
+ <ng-content select="[icon-trailing]" />
253
+ }
254
+ `, isInline: true }); }
255
+ }
256
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: IdsSideNavTitleComponent, decorators: [{
257
+ type: Component,
258
+ args: [{
259
+ selector: 'ids-side-nav-title, li[idsSideNavTitle]',
260
+ imports: [],
261
+ template: `
262
+ @if (_iconLeading()) {
263
+ <ng-content select="[icon-leading]" />
264
+ }
265
+ @if (_parent?.hasLabel()) {
266
+ <span class="ids-side-nav-title-label">{{ label() }}</span>
267
+ }
268
+ @if (_iconTrailing()) {
269
+ <ng-content select="[icon-trailing]" />
270
+ }
271
+ `,
272
+ host: {
273
+ class: 'ids-side-nav-title',
274
+ role: 'treeitem',
275
+ },
276
+ }]
277
+ }] });
278
+
279
+ /**
280
+ * Side navigation section
281
+ * - section wrapper inside the navigation
282
+ * - it can be used with selectors like `ids-side-nav-section` or `li[idsSideNavSection]`
283
+ * - content should be projected
284
+ */
285
+ class IdsSideNavSectionComponent {
286
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: IdsSideNavSectionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
287
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.7", type: IdsSideNavSectionComponent, isStandalone: true, selector: "ids-side-nav-section, ul[idsSideNavSection]", host: { attributes: { "role": "tree" }, classAttribute: "ids-side-nav-section" }, ngImport: i0, template: '<ng-content />', isInline: true }); }
288
+ }
289
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: IdsSideNavSectionComponent, decorators: [{
290
+ type: Component,
291
+ args: [{
292
+ selector: 'ids-side-nav-section, ul[idsSideNavSection]',
293
+ imports: [],
294
+ template: '<ng-content />',
295
+ host: {
296
+ class: 'ids-side-nav-section',
297
+ role: 'tree',
298
+ },
299
+ }]
300
+ }] });
301
+
302
+ const defaultConfig = IDS_SIDE_NAV_DEFAULT_CONFIG_FACTORY();
303
+ /**
304
+ * Side navigation
305
+ * - wrapper element for side navigation elements (sections, then title and items as part of section)
306
+ * - content should be projected
307
+ */
308
+ class IdsSideNavComponent extends ComponentBaseWithDefaults {
309
+ constructor() {
310
+ super(...arguments);
311
+ this._defaultConfig = this._getDefaultConfig(defaultConfig, IDS_SIDE_NAV_DEFAULT_CONFIG);
312
+ this.appearance = input(this._defaultConfig.appearance, ...(ngDevMode ? [{ debugName: "appearance" }] : []));
313
+ this.size = input(this._defaultConfig.size, ...(ngDevMode ? [{ debugName: "size" }] : []));
314
+ this.variant = input(this._defaultConfig.variant, ...(ngDevMode ? [{ debugName: "variant" }] : []));
315
+ this.hasLabel = input(coerceBooleanAttribute(this._defaultConfig.hasLabel), ...(ngDevMode ? [{ debugName: "hasLabel" }] : []));
316
+ this.hasActiveIndicator = input(coerceBooleanAttribute(this._defaultConfig.hasActiveIndicator), ...(ngDevMode ? [{ debugName: "hasActiveIndicator" }] : []));
317
+ this.embeddedIconButtonAppearance = computed(() => this.appearance(), ...(ngDevMode ? [{ debugName: "embeddedIconButtonAppearance" }] : []));
318
+ this.embeddedIconButtonVariant = computed(() => this.variant(), ...(ngDevMode ? [{ debugName: "embeddedIconButtonVariant" }] : []));
319
+ this.embeddedIconButtonSize = computed(() => {
320
+ switch (this.size()) {
321
+ // NOTE: SPACIOUS icon button size sticks out of side-nav item, size need to be adjusted
322
+ case IdsSize.SPACIOUS:
323
+ return IdsSize.COMFORTABLE;
324
+ default:
325
+ return this.size();
326
+ }
327
+ }, ...(ngDevMode ? [{ debugName: "embeddedIconButtonSize" }] : []));
328
+ this._hostClasses = computed(() => this._getHostClasses([
329
+ this.appearance(),
330
+ this.variant(),
331
+ this.size(),
332
+ ]), ...(ngDevMode ? [{ debugName: "_hostClasses" }] : []));
333
+ }
334
+ get _hostName() {
335
+ return 'side-nav';
336
+ }
337
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: IdsSideNavComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
338
+ 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: [
339
+ {
340
+ provide: IDS_ICON_BUTTON_PARENT,
341
+ useExisting: IdsSideNavComponent,
342
+ },
343
+ {
344
+ provide: IDS_SIDE_NAV_PARENT,
345
+ useExisting: IdsSideNavComponent,
346
+ },
347
+ ], usesInheritance: true, ngImport: i0, template: '<ng-content/>', isInline: true }); }
348
+ }
349
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: IdsSideNavComponent, decorators: [{
350
+ type: Component,
351
+ args: [{
352
+ selector: 'nav[idsSideNav]',
353
+ template: '<ng-content/>',
354
+ host: {
355
+ class: 'ids-side-nav',
356
+ },
357
+ providers: [
358
+ {
359
+ provide: IDS_ICON_BUTTON_PARENT,
360
+ useExisting: IdsSideNavComponent,
361
+ },
362
+ {
363
+ provide: IDS_SIDE_NAV_PARENT,
364
+ useExisting: IdsSideNavComponent,
365
+ },
366
+ ],
367
+ }]
368
+ }] });
369
+
370
+ /**
371
+ * Generated bundle index. Do not edit.
372
+ */
373
+
374
+ export { IDS_SIDE_NAV_DEFAULT_CONFIG, IDS_SIDE_NAV_DEFAULT_CONFIG_FACTORY, IdsSideNavAppearance, IdsSideNavComponent, IdsSideNavItemComponent, IdsSideNavSectionComponent, IdsSideNavTitleComponent, IdsSideNavVariant };
375
+ //# sourceMappingURL=i-cell-ids-angular-side-nav.mjs.map
@@ -0,0 +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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"}
@@ -27,7 +27,8 @@ type IdsIconButtonVariantType = (typeof IdsIconButtonVariant)[keyof typeof IdsIc
27
27
  declare abstract class IdsIconButtonParent {
28
28
  readonly embeddedIconButtonVariant: Signal<IdsIconButtonVariantType>;
29
29
  readonly embeddedIconButtonAppearance: Signal<IdsIconButtonAppearanceType>;
30
- readonly disabled: Signal<boolean>;
30
+ readonly embeddedIconButtonSize?: Signal<IdsSizeType>;
31
+ readonly disabled?: Signal<boolean>;
31
32
  }
32
33
  declare const IDS_ICON_BUTTON_PARENT: InjectionToken<IdsIconButtonParent>;
33
34
 
@@ -51,6 +52,7 @@ declare class IdsIconButtonComponent extends ComponentBaseWithDefaults<IdsIconBu
51
52
  disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
52
53
  protected _icons: _angular_core.Signal<readonly IdsIconComponent[]>;
53
54
  private _parentOrSelfAppearance;
55
+ private _parentOrSelfSize;
54
56
  private _parentOrSelfVariant;
55
57
  private _parentOrSelfDisabled;
56
58
  protected _hostClasses: _angular_core.Signal<string>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@i-cell/ids-angular",
3
- "version": "0.2.0",
3
+ "version": "0.2.2",
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": "^19.1.2",
33
33
  "@angular/platform-browser": "^19.1.2",
34
34
  "@angular/router": "^19.1.2",
35
- "@i-cell/ids-styles": "^0.0.45"
35
+ "@i-cell/ids-styles": "^0.0.47"
36
36
  },
37
37
  "dependencies": {
38
38
  "tslib": "^2.3.0"
@@ -48,14 +48,14 @@
48
48
  "types": "./index.d.ts",
49
49
  "default": "./fesm2022/i-cell-ids-angular.mjs"
50
50
  },
51
+ "./accordion": {
52
+ "types": "./accordion/index.d.ts",
53
+ "default": "./fesm2022/i-cell-ids-angular-accordion.mjs"
54
+ },
51
55
  "./badge": {
52
56
  "types": "./badge/index.d.ts",
53
57
  "default": "./fesm2022/i-cell-ids-angular-badge.mjs"
54
58
  },
55
- "./avatar": {
56
- "types": "./avatar/index.d.ts",
57
- "default": "./fesm2022/i-cell-ids-angular-avatar.mjs"
58
- },
59
59
  "./breadcrumb": {
60
60
  "types": "./breadcrumb/index.d.ts",
61
61
  "default": "./fesm2022/i-cell-ids-angular-breadcrumb.mjs"
@@ -64,22 +64,18 @@
64
64
  "types": "./button/index.d.ts",
65
65
  "default": "./fesm2022/i-cell-ids-angular-button.mjs"
66
66
  },
67
- "./card": {
68
- "types": "./card/index.d.ts",
69
- "default": "./fesm2022/i-cell-ids-angular-card.mjs"
67
+ "./avatar": {
68
+ "types": "./avatar/index.d.ts",
69
+ "default": "./fesm2022/i-cell-ids-angular-avatar.mjs"
70
70
  },
71
- "./accordion": {
72
- "types": "./accordion/index.d.ts",
73
- "default": "./fesm2022/i-cell-ids-angular-accordion.mjs"
71
+ "./chip": {
72
+ "types": "./chip/index.d.ts",
73
+ "default": "./fesm2022/i-cell-ids-angular-chip.mjs"
74
74
  },
75
75
  "./checkbox": {
76
76
  "types": "./checkbox/index.d.ts",
77
77
  "default": "./fesm2022/i-cell-ids-angular-checkbox.mjs"
78
78
  },
79
- "./chip": {
80
- "types": "./chip/index.d.ts",
81
- "default": "./fesm2022/i-cell-ids-angular-chip.mjs"
82
- },
83
79
  "./core": {
84
80
  "types": "./core/index.d.ts",
85
81
  "default": "./fesm2022/i-cell-ids-angular-core.mjs"
@@ -88,14 +84,14 @@
88
84
  "types": "./datepicker/index.d.ts",
89
85
  "default": "./fesm2022/i-cell-ids-angular-datepicker.mjs"
90
86
  },
91
- "./dialog": {
92
- "types": "./dialog/index.d.ts",
93
- "default": "./fesm2022/i-cell-ids-angular-dialog.mjs"
94
- },
95
87
  "./divider": {
96
88
  "types": "./divider/index.d.ts",
97
89
  "default": "./fesm2022/i-cell-ids-angular-divider.mjs"
98
90
  },
91
+ "./dialog": {
92
+ "types": "./dialog/index.d.ts",
93
+ "default": "./fesm2022/i-cell-ids-angular-dialog.mjs"
94
+ },
99
95
  "./forms": {
100
96
  "types": "./forms/index.d.ts",
101
97
  "default": "./fesm2022/i-cell-ids-angular-forms.mjs"
@@ -112,26 +108,22 @@
112
108
  "types": "./menu/index.d.ts",
113
109
  "default": "./fesm2022/i-cell-ids-angular-menu.mjs"
114
110
  },
115
- "./notification": {
116
- "types": "./notification/index.d.ts",
117
- "default": "./fesm2022/i-cell-ids-angular-notification.mjs"
111
+ "./card": {
112
+ "types": "./card/index.d.ts",
113
+ "default": "./fesm2022/i-cell-ids-angular-card.mjs"
118
114
  },
119
115
  "./overlay-panel": {
120
116
  "types": "./overlay-panel/index.d.ts",
121
117
  "default": "./fesm2022/i-cell-ids-angular-overlay-panel.mjs"
122
118
  },
119
+ "./notification": {
120
+ "types": "./notification/index.d.ts",
121
+ "default": "./fesm2022/i-cell-ids-angular-notification.mjs"
122
+ },
123
123
  "./paginator": {
124
124
  "types": "./paginator/index.d.ts",
125
125
  "default": "./fesm2022/i-cell-ids-angular-paginator.mjs"
126
126
  },
127
- "./radio": {
128
- "types": "./radio/index.d.ts",
129
- "default": "./fesm2022/i-cell-ids-angular-radio.mjs"
130
- },
131
- "./segmented-control": {
132
- "types": "./segmented-control/index.d.ts",
133
- "default": "./fesm2022/i-cell-ids-angular-segmented-control.mjs"
134
- },
135
127
  "./segmented-control-toggle": {
136
128
  "types": "./segmented-control-toggle/index.d.ts",
137
129
  "default": "./fesm2022/i-cell-ids-angular-segmented-control-toggle.mjs"
@@ -140,10 +132,18 @@
140
132
  "types": "./select/index.d.ts",
141
133
  "default": "./fesm2022/i-cell-ids-angular-select.mjs"
142
134
  },
135
+ "./segmented-control": {
136
+ "types": "./segmented-control/index.d.ts",
137
+ "default": "./fesm2022/i-cell-ids-angular-segmented-control.mjs"
138
+ },
143
139
  "./side-sheet": {
144
140
  "types": "./side-sheet/index.d.ts",
145
141
  "default": "./fesm2022/i-cell-ids-angular-side-sheet.mjs"
146
142
  },
143
+ "./side-nav": {
144
+ "types": "./side-nav/index.d.ts",
145
+ "default": "./fesm2022/i-cell-ids-angular-side-nav.mjs"
146
+ },
147
147
  "./snackbar": {
148
148
  "types": "./snackbar/index.d.ts",
149
149
  "default": "./fesm2022/i-cell-ids-angular-snackbar.mjs"
@@ -164,6 +164,10 @@
164
164
  "types": "./table/index.d.ts",
165
165
  "default": "./fesm2022/i-cell-ids-angular-table.mjs"
166
166
  },
167
+ "./radio": {
168
+ "types": "./radio/index.d.ts",
169
+ "default": "./fesm2022/i-cell-ids-angular-radio.mjs"
170
+ },
167
171
  "./tag": {
168
172
  "types": "./tag/index.d.ts",
169
173
  "default": "./fesm2022/i-cell-ids-angular-tag.mjs"
@@ -0,0 +1,107 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { InjectionToken, TemplateRef } from '@angular/core';
3
+ import { IdsSizeType, ComponentBaseWithDefaults } from '@i-cell/ids-angular/core';
4
+ import * as _i_cell_ids_angular_side_nav from '@i-cell/ids-angular/side-nav';
5
+ import { IdsIconComponent } from '@i-cell/ids-angular/icon';
6
+ import { IdsIconButtonParent, IdsIconButtonAppearanceType, IdsIconButtonVariantType } from '@i-cell/ids-angular/icon-button';
7
+
8
+ declare const IdsSideNavVariant: {
9
+ readonly SURFACE: "surface";
10
+ readonly LIGHT: "light";
11
+ };
12
+ type IdsSideNavVariantType = (typeof IdsSideNavVariant)[keyof typeof IdsSideNavVariant];
13
+
14
+ declare const IdsSideNavAppearance: {
15
+ readonly STANDARD: "standard";
16
+ };
17
+ type IdsSideNavAppearanceType = (typeof IdsSideNavAppearance)[keyof typeof IdsSideNavAppearance];
18
+
19
+ interface IdsSideNavDefaultConfig {
20
+ appearance?: IdsSideNavAppearanceType;
21
+ size?: IdsSizeType;
22
+ variant?: IdsSideNavVariantType;
23
+ hasActiveIndicator?: boolean;
24
+ hasLabel?: boolean;
25
+ }
26
+ declare const IDS_SIDE_NAV_DEFAULT_CONFIG: InjectionToken<IdsSideNavDefaultConfig>;
27
+ declare function IDS_SIDE_NAV_DEFAULT_CONFIG_FACTORY(): Required<IdsSideNavDefaultConfig>;
28
+
29
+ /**
30
+ * Side navigation item
31
+ * - it can be a single list element or an expandable list element, containing another list of elements
32
+ * - it can be used with selectors like `ids-side-nav-item` or `li[idsSideNavItem]`
33
+ * - children can be provided with content projection:
34
+ * - either project `ids-side-nav-item` elements
35
+ * - or list elements as `<li>` elements in an ng-template, marked with `idsSideNavItemChildren` variable
36
+ */
37
+ declare class IdsSideNavItemComponent {
38
+ disabled: _angular_core.InputSignalWithTransform<boolean, string | boolean>;
39
+ label: _angular_core.InputSignal<string>;
40
+ target: _angular_core.InputSignal<string>;
41
+ templateChildren: _angular_core.InputSignal<TemplateRef<HTMLElement> | undefined>;
42
+ protected _active: _angular_core.Signal<boolean>;
43
+ protected _expandable: _angular_core.Signal<true | TemplateRef<any> | undefined>;
44
+ protected _expanded: boolean;
45
+ protected _iconLeading: _angular_core.Signal<readonly IdsIconComponent[]>;
46
+ protected _iconTrailing: _angular_core.Signal<readonly IdsIconComponent[]>;
47
+ protected readonly _parent: _i_cell_ids_angular_side_nav.IdsSideNavComponent | null;
48
+ protected readonly _contentTemplate: _angular_core.Signal<TemplateRef<any> | undefined>;
49
+ private readonly _contentChildren;
50
+ private readonly _router;
51
+ protected _onClick(event: MouseEvent): void;
52
+ protected _onKeyDown(event: KeyboardEvent): void;
53
+ protected _toggle(): void;
54
+ protected _navigate(): void;
55
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<IdsSideNavItemComponent, never>;
56
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<IdsSideNavItemComponent, "ids-side-nav-item, li[idsSideNavItem]", never, { "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": true; "isSignal": true; }; "target": { "alias": "target"; "required": false; "isSignal": true; }; "templateChildren": { "alias": "templateChildren"; "required": false; "isSignal": true; }; }, {}, ["_iconLeading", "_iconTrailing", "_contentTemplate", "_contentChildren"], ["[icon-leading]", "[icon-trailing]", "ids-side-nav-item,[idsSideNavItem]", "ng-template"], true, never>;
57
+ }
58
+
59
+ /**
60
+ * Side navigation (section) title
61
+ * - title of the navigation section
62
+ * - it can be used with selectors like `ids-side-nav-title` or `li[idsSideNavTitle]`
63
+ * - leading and trailing icons should be projected, label is bound by input
64
+ */
65
+ declare class IdsSideNavTitleComponent {
66
+ label: _angular_core.InputSignal<string>;
67
+ protected _iconLeading: _angular_core.Signal<readonly IdsIconComponent[]>;
68
+ protected _iconTrailing: _angular_core.Signal<readonly IdsIconComponent[]>;
69
+ protected readonly _parent: _i_cell_ids_angular_side_nav.IdsSideNavComponent | null;
70
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<IdsSideNavTitleComponent, never>;
71
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<IdsSideNavTitleComponent, "ids-side-nav-title, li[idsSideNavTitle]", never, { "label": { "alias": "label"; "required": true; "isSignal": true; }; }, {}, ["_iconLeading", "_iconTrailing"], ["[icon-leading]", "[icon-trailing]"], true, never>;
72
+ }
73
+
74
+ /**
75
+ * Side navigation section
76
+ * - section wrapper inside the navigation
77
+ * - it can be used with selectors like `ids-side-nav-section` or `li[idsSideNavSection]`
78
+ * - content should be projected
79
+ */
80
+ declare class IdsSideNavSectionComponent {
81
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<IdsSideNavSectionComponent, never>;
82
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<IdsSideNavSectionComponent, "ids-side-nav-section, ul[idsSideNavSection]", never, {}, {}, never, ["*"], true, never>;
83
+ }
84
+
85
+ /**
86
+ * Side navigation
87
+ * - wrapper element for side navigation elements (sections, then title and items as part of section)
88
+ * - content should be projected
89
+ */
90
+ declare class IdsSideNavComponent extends ComponentBaseWithDefaults<IdsSideNavDefaultConfig> implements IdsIconButtonParent {
91
+ protected get _hostName(): string;
92
+ protected readonly _defaultConfig: Required<IdsSideNavDefaultConfig>;
93
+ appearance: _angular_core.InputSignal<"standard">;
94
+ size: _angular_core.InputSignal<IdsSizeType>;
95
+ variant: _angular_core.InputSignal<IdsSideNavVariantType>;
96
+ hasLabel: _angular_core.InputSignal<boolean>;
97
+ hasActiveIndicator: _angular_core.InputSignal<boolean>;
98
+ embeddedIconButtonAppearance: _angular_core.Signal<IdsIconButtonAppearanceType>;
99
+ embeddedIconButtonVariant: _angular_core.Signal<IdsIconButtonVariantType>;
100
+ embeddedIconButtonSize: _angular_core.Signal<IdsSizeType>;
101
+ protected _hostClasses: _angular_core.Signal<string>;
102
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<IdsSideNavComponent, never>;
103
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<IdsSideNavComponent, "nav[idsSideNav]", never, { "appearance": { "alias": "appearance"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "hasLabel": { "alias": "hasLabel"; "required": false; "isSignal": true; }; "hasActiveIndicator": { "alias": "hasActiveIndicator"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
104
+ }
105
+
106
+ export { IDS_SIDE_NAV_DEFAULT_CONFIG, IDS_SIDE_NAV_DEFAULT_CONFIG_FACTORY, IdsSideNavAppearance, IdsSideNavComponent, IdsSideNavItemComponent, IdsSideNavSectionComponent, IdsSideNavTitleComponent, IdsSideNavVariant };
107
+ export type { IdsSideNavAppearanceType, IdsSideNavDefaultConfig, IdsSideNavVariantType };