@i-cell/ids-angular 0.2.12 → 0.2.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,8 +1,8 @@
1
1
  import * as i0 from '@angular/core';
2
- import { InjectionToken, inject, TemplateRef, Directive, ElementRef, computed, input, contentChild, ChangeDetectionStrategy, ViewEncapsulation, Component, viewChild, ApplicationRef, DOCUMENT, EnvironmentInjector, Injector, createComponent, Injectable } from '@angular/core';
2
+ import { InjectionToken, inject, TemplateRef, Directive, ElementRef, computed, input, contentChild, ChangeDetectionStrategy, ViewEncapsulation, Component, viewChild, ApplicationRef, EnvironmentInjector, Injector, createComponent, Injectable } from '@angular/core';
3
3
  import { IdsSize, ComponentBaseWithDefaults, IdsDetectScrollableDirective } from '@i-cell/ids-angular/core';
4
4
  import { OverlayContainer } from '@angular/cdk/overlay';
5
- import { NgTemplateOutlet } from '@angular/common';
5
+ import { NgTemplateOutlet, DOCUMENT } from '@angular/common';
6
6
  import { IdsIconComponent } from '@i-cell/ids-angular/icon';
7
7
  import { IdsIconButtonComponent } from '@i-cell/ids-angular/icon-button';
8
8
  import { Subject, fromEvent } from 'rxjs';
@@ -1 +1 @@
1
- {"version":3,"file":"i-cell-ids-angular-dialog.mjs","sources":["../../../projects/widgets/dialog/dialog-defaults.ts","../../../projects/widgets/dialog/dialog-header.directive.ts","../../../projects/widgets/dialog/dialog.component.ts","../../../projects/widgets/dialog/dialog.component.html","../../../projects/widgets/dialog/custom-dialog-base.ts","../../../projects/widgets/dialog/dialog.service.ts","../../../projects/widgets/dialog/i-cell-ids-angular-dialog.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { IdsSize, IdsSizeType } from '@i-cell/ids-angular/core';\n\nexport interface IdsDialogDefaultConfig {\n size?: IdsSizeType,\n showCloseButton?: boolean,\n showBackdrop?: boolean,\n}\n\nexport const IDS_DIALOG_DEFAULT_CONFIG = new InjectionToken<IdsDialogDefaultConfig>(\n 'IDS_DIALOG_DEFAULT_CONFIG',\n {\n providedIn: 'root',\n factory: IDS_DIALOG_DEFAULT_CONFIG_FACTORY,\n },\n);\n\nexport function IDS_DIALOG_DEFAULT_CONFIG_FACTORY(): Required<IdsDialogDefaultConfig> {\n return {\n size: IdsSize.COMPACT,\n showCloseButton: false,\n showBackdrop: true,\n };\n}\n\n","import { Directive, TemplateRef, inject } from '@angular/core';\n\n@Directive({\n selector: '[idsDialogHeader]',\n standalone: true,\n})\nexport class IdsDialogHeaderDirective {\n public template = inject(TemplateRef);\n}\n","import { IDS_DIALOG_DEFAULT_CONFIG, IDS_DIALOG_DEFAULT_CONFIG_FACTORY, IdsDialogDefaultConfig } from './dialog-defaults';\nimport { IdsDialogHeaderDirective } from './dialog-header.directive';\n\nimport { OverlayContainer } from '@angular/cdk/overlay';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n ViewEncapsulation,\n computed,\n contentChild,\n inject,\n input,\n OnDestroy,\n} from '@angular/core';\nimport { ComponentBaseWithDefaults, IdsDetectScrollableDirective, IdsSizeType } from '@i-cell/ids-angular/core';\nimport { IdsIconComponent } from '@i-cell/ids-angular/icon';\nimport { IdsIconButtonComponent } from '@i-cell/ids-angular/icon-button';\n\nconst defaultConfig = IDS_DIALOG_DEFAULT_CONFIG_FACTORY();\n\n@Component({\n selector: 'dialog[idsDialog]',\n imports: [\n IdsDetectScrollableDirective,\n IdsIconComponent,\n IdsIconButtonComponent,\n NgTemplateOutlet,\n ],\n templateUrl: './dialog.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n exportAs: 'idsDialog',\n host: {\n '[attr.aria-labelledby]': '_titleId()',\n '(cancel)': '_onCancel($event)',\n '(close)': '_onNativeClose()',\n },\n})\nexport class IdsDialogComponent extends ComponentBaseWithDefaults<IdsDialogDefaultConfig> implements OnDestroy {\n protected override get _hostName(): string {\n return 'dialog';\n }\n\n protected readonly _defaultConfig = this._getDefaultConfig(defaultConfig, IDS_DIALOG_DEFAULT_CONFIG);\n\n public dialog = inject<ElementRef<HTMLDialogElement>>(ElementRef).nativeElement;\n\n private readonly _overlay = inject(OverlayContainer);\n private _overlayRoot?: HTMLElement | null;\n private _overlayPrevParent?: Node | null;\n\n protected _titleId = computed(() => `${this.id()}-title`);\n public size = input<IdsSizeType>(this._defaultConfig.size);\n public mainTitle = input.required<string>();\n public subTitle = input<string>();\n public showCloseButton = input<boolean>(this._defaultConfig.showCloseButton);\n public showBackdrop = input<boolean>(this._defaultConfig.showBackdrop);\n\n protected _customHeader = contentChild(IdsDialogHeaderDirective);\n\n protected _hostClasses = computed(() => this._getHostClasses([\n this.size(),\n this.showBackdrop() ? 'with-backdrop' : null,\n ]));\n\n protected _onCancel(event: Event): void {\n event.preventDefault();\n }\n\n public open(): void {\n this.dialog.showModal();\n\n const root = this._overlay.getContainerElement();\n if (root && root.parentNode !== this.dialog) {\n this._overlayRoot = root;\n this._overlayPrevParent = root.parentNode;\n this.dialog.appendChild(root);\n }\n }\n\n public close(): void {\n this.dialog.close();\n this._restoreOverlay();\n }\n\n protected _onNativeClose(): void {\n this._restoreOverlay();\n }\n\n public ngOnDestroy(): void {\n this._restoreOverlay();\n }\n\n private _restoreOverlay(): void {\n if (this._overlayRoot && this._overlayPrevParent) {\n try {\n this._overlayPrevParent.appendChild(this._overlayRoot);\n } catch { /* empty */ }\n }\n this._overlayRoot = null;\n this._overlayPrevParent = null;\n }\n}\n","<section class=\"ids-dialog-container\">\n <header class=\"ids-dialog-header\">\n @if (_customHeader()) {\n <ng-container [ngTemplateOutlet]=\"_customHeader()!.template\" />\n } @else {\n <div class=\"ids-dialog-header-default-content\">\n <h2 class=\"ids-dialog-title\" [id]=\"_titleId()\">{{ mainTitle() }}</h2>\n @if (subTitle()) {\n <h3 class=\"ids-dialog-subtitle\">{{ subTitle() }}</h3>\n }\n </div>\n }\n\n @if (showCloseButton()) {\n <button\n type=\"button\"\n class=\"ids-dialog-close-button\"\n idsIconButton\n appearance=\"standard\"\n size=\"compact\"\n variant=\"surface\"\n (click)=\"close()\"\n >\n <ids-icon aria-hidden=\"true\" alt=\"\" fontIcon=\"close\" />\n </button>\n }\n </header>\n <div class=\"ids-dialog-content\" [class.ids-dialog-content-scrollable]=\"scrollDetector.isScrollable()\">\n <div #scrollDetector=\"idsDetectScrollable\" idsDetectScrollable class=\"ids-dialog-content-overflow\">\n <ng-content select=\"[idsDialogContent]\" />\n </div>\n </div>\n <footer class=\"ids-dialog-actions\">\n <ng-content select=\"[idsDialogActions]\" />\n </footer>\n</section>\n","import { IdsDialogComponent } from './dialog.component';\n\nimport { AfterViewInit, Directive, OnDestroy, viewChild } from '@angular/core';\nimport { Subject, Subscription, fromEvent } from 'rxjs';\n\n@Directive({ standalone: true })\nexport abstract class IdsCustomDialogBase<ResultType = unknown> implements AfterViewInit, OnDestroy {\n public dialogResult = new Subject<ResultType | undefined>();\n\n protected _dialog = viewChild.required(IdsDialogComponent);\n\n private _closeSub?: Subscription;\n\n public ngAfterViewInit(): void {\n this._dialog().open();\n this._closeSub = fromEvent(this._dialog().dialog, 'close').subscribe(() => {\n this._setDialogResult();\n });\n }\n\n public ngOnDestroy(): void {\n this._closeSub?.unsubscribe();\n }\n\n public close(payload?: ResultType): void {\n this._closeSub?.unsubscribe();\n this._dialog().close();\n this._setDialogResult(payload);\n }\n\n private _setDialogResult(payload?: ResultType): void {\n this.dialogResult.next(payload);\n this.dialogResult.complete();\n }\n}\n","import { IdsCustomDialogBase } from './custom-dialog-base';\n\nimport { ApplicationRef, EnvironmentInjector, Injectable, Injector, Provider, Signal, StaticProvider, Type, createComponent, inject, DOCUMENT } from '@angular/core';\nimport { Observable } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class IdsDialogService {\n private _appRef = inject(ApplicationRef);\n private _document = inject(DOCUMENT);\n private _injector = inject(EnvironmentInjector);\n\n public open<C extends IdsCustomDialogBase<R>, R = unknown>(\n component: Type<C>,\n options?: { providers?: (Provider | StaticProvider)[], inputs?: { [P in keyof C]?: C[P] extends Signal<infer T> ? T : C[P] } },\n ): Observable<R | undefined> {\n let elementInjector = undefined;\n\n if (options?.providers) {\n elementInjector = Injector.create({\n parent: this._injector,\n providers: options.providers,\n });\n }\n\n const createOptions = {\n environmentInjector: this._injector,\n ...(elementInjector && { elementInjector }),\n };\n const dialogRef = createComponent(component, createOptions);\n\n if (options?.inputs) {\n Object.keys(options.inputs).forEach((key) => dialogRef.setInput(key, options.inputs![key as keyof C]));\n }\n\n this._document.body.appendChild(dialogRef.location.nativeElement);\n\n this._appRef.attachView(dialogRef.hostView);\n\n const onClose = dialogRef.instance.dialogResult.asObservable();\n\n onClose.subscribe(() => {\n this._document.body.removeChild(dialogRef.location.nativeElement);\n dialogRef.destroy();\n },\n );\n\n return onClose;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"i-cell-ids-angular-dialog.mjs","sources":["../../../projects/widgets/dialog/dialog-defaults.ts","../../../projects/widgets/dialog/dialog-header.directive.ts","../../../projects/widgets/dialog/dialog.component.ts","../../../projects/widgets/dialog/dialog.component.html","../../../projects/widgets/dialog/custom-dialog-base.ts","../../../projects/widgets/dialog/dialog.service.ts","../../../projects/widgets/dialog/i-cell-ids-angular-dialog.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { IdsSize, IdsSizeType } from '@i-cell/ids-angular/core';\n\nexport interface IdsDialogDefaultConfig {\n size?: IdsSizeType,\n showCloseButton?: boolean,\n showBackdrop?: boolean,\n}\n\nexport const IDS_DIALOG_DEFAULT_CONFIG = new InjectionToken<IdsDialogDefaultConfig>(\n 'IDS_DIALOG_DEFAULT_CONFIG',\n {\n providedIn: 'root',\n factory: IDS_DIALOG_DEFAULT_CONFIG_FACTORY,\n },\n);\n\nexport function IDS_DIALOG_DEFAULT_CONFIG_FACTORY(): Required<IdsDialogDefaultConfig> {\n return {\n size: IdsSize.COMPACT,\n showCloseButton: false,\n showBackdrop: true,\n };\n}\n\n","import { Directive, TemplateRef, inject } from '@angular/core';\n\n@Directive({\n selector: '[idsDialogHeader]',\n standalone: true,\n})\nexport class IdsDialogHeaderDirective {\n public template = inject(TemplateRef);\n}\n","import { IDS_DIALOG_DEFAULT_CONFIG, IDS_DIALOG_DEFAULT_CONFIG_FACTORY, IdsDialogDefaultConfig } from './dialog-defaults';\nimport { IdsDialogHeaderDirective } from './dialog-header.directive';\n\nimport { OverlayContainer } from '@angular/cdk/overlay';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n ViewEncapsulation,\n computed,\n contentChild,\n inject,\n input,\n OnDestroy,\n} from '@angular/core';\nimport { ComponentBaseWithDefaults, IdsDetectScrollableDirective, IdsSizeType } from '@i-cell/ids-angular/core';\nimport { IdsIconComponent } from '@i-cell/ids-angular/icon';\nimport { IdsIconButtonComponent } from '@i-cell/ids-angular/icon-button';\n\nconst defaultConfig = IDS_DIALOG_DEFAULT_CONFIG_FACTORY();\n\n@Component({\n selector: 'dialog[idsDialog]',\n imports: [\n IdsDetectScrollableDirective,\n IdsIconComponent,\n IdsIconButtonComponent,\n NgTemplateOutlet,\n ],\n templateUrl: './dialog.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n exportAs: 'idsDialog',\n host: {\n '[attr.aria-labelledby]': '_titleId()',\n '(cancel)': '_onCancel($event)',\n '(close)': '_onNativeClose()',\n },\n})\nexport class IdsDialogComponent extends ComponentBaseWithDefaults<IdsDialogDefaultConfig> implements OnDestroy {\n protected override get _hostName(): string {\n return 'dialog';\n }\n\n protected readonly _defaultConfig = this._getDefaultConfig(defaultConfig, IDS_DIALOG_DEFAULT_CONFIG);\n\n public dialog = inject<ElementRef<HTMLDialogElement>>(ElementRef).nativeElement;\n\n private readonly _overlay = inject(OverlayContainer);\n private _overlayRoot?: HTMLElement | null;\n private _overlayPrevParent?: Node | null;\n\n protected _titleId = computed(() => `${this.id()}-title`);\n public size = input<IdsSizeType>(this._defaultConfig.size);\n public mainTitle = input.required<string>();\n public subTitle = input<string>();\n public showCloseButton = input<boolean>(this._defaultConfig.showCloseButton);\n public showBackdrop = input<boolean>(this._defaultConfig.showBackdrop);\n\n protected _customHeader = contentChild(IdsDialogHeaderDirective);\n\n protected _hostClasses = computed(() => this._getHostClasses([\n this.size(),\n this.showBackdrop() ? 'with-backdrop' : null,\n ]));\n\n protected _onCancel(event: Event): void {\n event.preventDefault();\n }\n\n public open(): void {\n this.dialog.showModal();\n\n const root = this._overlay.getContainerElement();\n if (root && root.parentNode !== this.dialog) {\n this._overlayRoot = root;\n this._overlayPrevParent = root.parentNode;\n this.dialog.appendChild(root);\n }\n }\n\n public close(): void {\n this.dialog.close();\n this._restoreOverlay();\n }\n\n protected _onNativeClose(): void {\n this._restoreOverlay();\n }\n\n public ngOnDestroy(): void {\n this._restoreOverlay();\n }\n\n private _restoreOverlay(): void {\n if (this._overlayRoot && this._overlayPrevParent) {\n try {\n this._overlayPrevParent.appendChild(this._overlayRoot);\n } catch { /* empty */ }\n }\n this._overlayRoot = null;\n this._overlayPrevParent = null;\n }\n}\n","<section class=\"ids-dialog-container\">\n <header class=\"ids-dialog-header\">\n @if (_customHeader()) {\n <ng-container [ngTemplateOutlet]=\"_customHeader()!.template\" />\n } @else {\n <div class=\"ids-dialog-header-default-content\">\n <h2 class=\"ids-dialog-title\" [id]=\"_titleId()\">{{ mainTitle() }}</h2>\n @if (subTitle()) {\n <h3 class=\"ids-dialog-subtitle\">{{ subTitle() }}</h3>\n }\n </div>\n }\n\n @if (showCloseButton()) {\n <button\n type=\"button\"\n class=\"ids-dialog-close-button\"\n idsIconButton\n appearance=\"standard\"\n size=\"compact\"\n variant=\"surface\"\n (click)=\"close()\"\n >\n <ids-icon aria-hidden=\"true\" alt=\"\" fontIcon=\"close\" />\n </button>\n }\n </header>\n <div class=\"ids-dialog-content\" [class.ids-dialog-content-scrollable]=\"scrollDetector.isScrollable()\">\n <div #scrollDetector=\"idsDetectScrollable\" idsDetectScrollable class=\"ids-dialog-content-overflow\">\n <ng-content select=\"[idsDialogContent]\" />\n </div>\n </div>\n <footer class=\"ids-dialog-actions\">\n <ng-content select=\"[idsDialogActions]\" />\n </footer>\n</section>\n","import { IdsDialogComponent } from './dialog.component';\n\nimport { AfterViewInit, Directive, OnDestroy, viewChild } from '@angular/core';\nimport { Subject, Subscription, fromEvent } from 'rxjs';\n\n@Directive({ standalone: true })\nexport abstract class IdsCustomDialogBase<ResultType = unknown> implements AfterViewInit, OnDestroy {\n public dialogResult = new Subject<ResultType | undefined>();\n\n protected _dialog = viewChild.required(IdsDialogComponent);\n\n private _closeSub?: Subscription;\n\n public ngAfterViewInit(): void {\n this._dialog().open();\n this._closeSub = fromEvent(this._dialog().dialog, 'close').subscribe(() => {\n this._setDialogResult();\n });\n }\n\n public ngOnDestroy(): void {\n this._closeSub?.unsubscribe();\n }\n\n public close(payload?: ResultType): void {\n this._closeSub?.unsubscribe();\n this._dialog().close();\n this._setDialogResult(payload);\n }\n\n private _setDialogResult(payload?: ResultType): void {\n this.dialogResult.next(payload);\n this.dialogResult.complete();\n }\n}\n","import { IdsCustomDialogBase } from './custom-dialog-base';\n\nimport { DOCUMENT } from '@angular/common';\nimport { ApplicationRef, EnvironmentInjector, Injectable, Injector, Provider, Signal, StaticProvider, Type, createComponent, inject } from '@angular/core';\nimport { Observable } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class IdsDialogService {\n private _appRef = inject(ApplicationRef);\n private _document = inject(DOCUMENT) as Document;\n private _injector = inject(EnvironmentInjector);\n\n public open<C extends IdsCustomDialogBase<R>, R = unknown>(\n component: Type<C>,\n options?: { providers?: (Provider | StaticProvider)[], inputs?: { [P in keyof C]?: C[P] extends Signal<infer T> ? T : C[P] } },\n ): Observable<R | undefined> {\n let elementInjector = undefined;\n\n if (options?.providers) {\n elementInjector = Injector.create({\n parent: this._injector,\n providers: options.providers,\n });\n }\n\n const createOptions = {\n environmentInjector: this._injector,\n ...(elementInjector && { elementInjector }),\n };\n const dialogRef = createComponent(component, createOptions);\n\n if (options?.inputs) {\n Object.keys(options.inputs).forEach((key) => dialogRef.setInput(key, options.inputs![key as keyof C]));\n }\n\n this._document.body.appendChild(dialogRef.location.nativeElement);\n\n this._appRef.attachView(dialogRef.hostView);\n\n const onClose = dialogRef.instance.dialogResult.asObservable();\n\n onClose.subscribe(() => {\n this._document.body.removeChild(dialogRef.location.nativeElement);\n dialogRef.destroy();\n },\n );\n\n return onClose;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import * as i0 from '@angular/core';
2
- import { InjectionToken, inject, ElementRef, DOCUMENT, input, computed, effect, SecurityContext, ViewEncapsulation, ChangeDetectionStrategy, Component } from '@angular/core';
2
+ import { InjectionToken, inject, ElementRef, input, computed, effect, SecurityContext, ViewEncapsulation, ChangeDetectionStrategy, Component } from '@angular/core';
3
3
  import { IdsSizeCollection, IdsSize, ComponentBaseWithDefaults, coerceStringAttribute, coerceBooleanAttribute } from '@i-cell/ids-angular/core';
4
+ import { DOCUMENT } from '@angular/common';
4
5
  import { HttpClient } from '@angular/common/http';
5
6
  import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
6
7
  import { DomSanitizer } from '@angular/platform-browser';
@@ -1 +1 @@
1
- {"version":3,"file":"i-cell-ids-angular-icon.mjs","sources":["../../../projects/widgets/icon/tokens/icon-parent.ts","../../../projects/widgets/icon/types/icon-source.type.ts","../../../projects/widgets/icon/types/icon-variant.type.ts","../../../projects/widgets/icon/icon-defaults.ts","../../../projects/widgets/icon/icon.component.ts","../../../projects/widgets/icon/i-cell-ids-angular-icon.ts"],"sourcesContent":["import { IdsIconVariantType } from '../types/icon-variant.type';\n\nimport { InjectionToken, Signal } from '@angular/core';\n\nexport abstract class IdsIconParent {\n public readonly embeddedIconVariant!: Signal<IdsIconVariantType>;\n};\n\nexport const IDS_ICON_PARENT = new InjectionToken<IdsIconParent>(\n 'IDS_ICON_PARENT',\n);\n","export const IdsIconSource = {\n SVG: 'svg',\n FONT: 'font',\n} as const;\n\nexport type IdsIconSourceType = (typeof IdsIconSource)[keyof typeof IdsIconSource];\n","export const IdsIconVariant = {\n PRIMARY: 'primary',\n SECONDARY: 'secondary',\n SURFACE: 'surface',\n BRAND: 'brand',\n LIGHT: 'light',\n DARK: 'dark',\n SUCCESS: 'success',\n WARNING: 'warning',\n ERROR: 'error',\n} as const;\n\nexport type IdsIconVariantType = (typeof IdsIconVariant)[keyof typeof IdsIconVariant];\n","import { IdsIconVariant, IdsIconVariantType } from './types/icon-variant.type';\n\nimport { InjectionToken } from '@angular/core';\nimport { IdsSize, IdsSizeCollection, IdsSizeCollectionType, IdsSizeType } from '@i-cell/ids-angular/core';\n\nexport interface IdsIconDefaultConfig {\n size?: IdsSizeType\n sizeCollection?: IdsSizeCollectionType\n variant?: IdsIconVariantType\n iconAssetsPath: string\n fontNameMappings?: Record<string, string>\n}\n\nexport const IDS_ICON_DEFAULT_CONFIG = new InjectionToken<IdsIconDefaultConfig>(\n 'IDS_ICON_DEFAULT_CONFIG',\n {\n providedIn: 'root',\n factory: IDS_ICON_DEFAULT_CONFIG_FACTORY,\n },\n);\n\nexport function IDS_ICON_DEFAULT_CONFIG_FACTORY(): Required<IdsIconDefaultConfig> {\n return {\n size: IdsSize.COMPACT,\n sizeCollection: IdsSizeCollection.SMALL,\n variant: IdsIconVariant.SURFACE,\n iconAssetsPath: '',\n fontNameMappings: {},\n };\n}\n","import { IDS_ICON_DEFAULT_CONFIG, IDS_ICON_DEFAULT_CONFIG_FACTORY, IdsIconDefaultConfig } from './icon-defaults';\nimport { IDS_ICON_PARENT } from './tokens/icon-parent';\nimport { IdsIconSource } from './types/icon-source.type';\nimport { IdsIconVariantType } from './types/icon-variant.type';\n\nimport { HttpClient } from '@angular/common/http';\nimport { ChangeDetectionStrategy, Component, computed, effect, ElementRef, inject, input, OnInit, SecurityContext, ViewEncapsulation, DOCUMENT } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport { coerceBooleanAttribute, coerceStringAttribute, ComponentBaseWithDefaults, IdsSizeCollectionType, IdsSizeType } from '@i-cell/ids-angular/core';\n\nconst defaultConfig = IDS_ICON_DEFAULT_CONFIG_FACTORY();\n\n@Component({\n selector: 'ids-icon',\n standalone: true,\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[attr.aria-hidden]': 'ariaHidden().toString()',\n '[attr.fontIcon]': 'this._safeFontIcon()',\n 'role': 'img',\n },\n})\nexport class IdsIconComponent extends ComponentBaseWithDefaults<IdsIconDefaultConfig> implements OnInit {\n protected override get _hostName(): string {\n return 'icon';\n }\n\n private readonly _parent = inject(IDS_ICON_PARENT, { optional: true });\n protected readonly _defaultConfig = this._getDefaultConfig(defaultConfig, IDS_ICON_DEFAULT_CONFIG);\n\n private readonly _elementRef = inject(ElementRef<HTMLElement>);\n private readonly _document = inject(DOCUMENT);\n private readonly _httpClient = inject(HttpClient);\n private readonly _sanitizer = inject(DomSanitizer);\n\n public size = input<IdsSizeType>(this._defaultConfig.size);\n public sizeCollection = input<IdsSizeCollectionType>(this._defaultConfig.sizeCollection);\n public variant = input<IdsIconVariantType>(this._defaultConfig.variant);\n public fontIcon = input<string | null, string>(null, { transform: coerceStringAttribute });\n public svgIconName = input<string | null, string>(null, { alias: 'svgIcon', transform: coerceStringAttribute });\n public ariaHidden = input<boolean, unknown>(true, { alias: 'aria-hidden', transform: coerceBooleanAttribute });\n\n protected _svgIcon: SVGElement | null = null;\n\n protected _safeFontIcon = computed(() => {\n const iconName = this.fontIcon();\n if (!iconName) {\n return iconName;\n }\n const fontNameMappings = this._defaultConfig.fontNameMappings;\n const mappedIconName = fontNameMappings?.[iconName];\n return mappedIconName ?? iconName;\n });\n\n protected _iconSourceType = computed(() => (this.fontIcon() ? IdsIconSource.FONT : IdsIconSource.SVG));\n\n private _parentOrSelfVariant = computed(() => this._parent?.embeddedIconVariant() ?? this.variant());\n protected _hostClasses = computed(() => this._getHostClasses([\n [\n `${this.sizeCollection()}collection`,\n this.size(),\n ],\n this._parentOrSelfVariant(),\n this._iconSourceType(),\n ]));\n\n private _sanitizeSvgIconEffect = effect(() => {\n const svgIconName = this.svgIconName();\n if (!svgIconName) {\n this._svgIcon = null;\n return;\n }\n\n const svgIconSafeUrl = this._sanitizer.sanitize(\n SecurityContext.RESOURCE_URL,\n this._sanitizer.bypassSecurityTrustResourceUrl(`${this._defaultConfig.iconAssetsPath}/${svgIconName}.svg`),\n );\n\n if (!svgIconSafeUrl) {\n this._svgIcon = null;\n return;\n }\n\n this._getSvgElementSource(svgIconSafeUrl);\n });\n\n public ngOnInit(): void {\n if (this.fontIcon() && this.svgIconName()) {\n throw this._createHostError('Font icon and svg icon can not be used together!');\n }\n }\n\n private _getSvgElementSource(url: string): void {\n this._httpClient\n .get(url, { responseType: 'text' })\n .pipe(\n takeUntilDestroyed(this._destroyRef),\n )\n .subscribe((svg) => {\n this._svgIcon = this._getSvgElement(this._sanitizer.bypassSecurityTrustHtml(svg));\n this._setSvgElement(this._svgIcon);\n });\n }\n\n private _setSvgElement(svg: SVGElement): void {\n this._clearSvgElement();\n\n this._elementRef.nativeElement.appendChild(svg);\n }\n\n private _clearSvgElement(): void {\n const layoutElement: HTMLElement = this._elementRef.nativeElement;\n let childCount = layoutElement.childNodes.length;\n\n while (childCount--) {\n const child = layoutElement.childNodes[childCount];\n\n if (child.nodeType !== 1 || child.nodeName.toLowerCase() === 'svg') {\n child.remove();\n }\n }\n }\n\n private _getSvgElement(safeHtml: SafeHtml): SVGElement {\n const div = this._document.createElement('div');\n div.innerHTML = safeHtml as unknown as string;\n const svg = div.querySelector('svg');\n\n if (!svg) {\n throw this._createHostError('Svg element creation failed!');\n }\n\n return svg;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"i-cell-ids-angular-icon.mjs","sources":["../../../projects/widgets/icon/tokens/icon-parent.ts","../../../projects/widgets/icon/types/icon-source.type.ts","../../../projects/widgets/icon/types/icon-variant.type.ts","../../../projects/widgets/icon/icon-defaults.ts","../../../projects/widgets/icon/icon.component.ts","../../../projects/widgets/icon/i-cell-ids-angular-icon.ts"],"sourcesContent":["import { IdsIconVariantType } from '../types/icon-variant.type';\n\nimport { InjectionToken, Signal } from '@angular/core';\n\nexport abstract class IdsIconParent {\n public readonly embeddedIconVariant!: Signal<IdsIconVariantType>;\n};\n\nexport const IDS_ICON_PARENT = new InjectionToken<IdsIconParent>(\n 'IDS_ICON_PARENT',\n);\n","export const IdsIconSource = {\n SVG: 'svg',\n FONT: 'font',\n} as const;\n\nexport type IdsIconSourceType = (typeof IdsIconSource)[keyof typeof IdsIconSource];\n","export const IdsIconVariant = {\n PRIMARY: 'primary',\n SECONDARY: 'secondary',\n SURFACE: 'surface',\n BRAND: 'brand',\n LIGHT: 'light',\n DARK: 'dark',\n SUCCESS: 'success',\n WARNING: 'warning',\n ERROR: 'error',\n} as const;\n\nexport type IdsIconVariantType = (typeof IdsIconVariant)[keyof typeof IdsIconVariant];\n","import { IdsIconVariant, IdsIconVariantType } from './types/icon-variant.type';\n\nimport { InjectionToken } from '@angular/core';\nimport { IdsSize, IdsSizeCollection, IdsSizeCollectionType, IdsSizeType } from '@i-cell/ids-angular/core';\n\nexport interface IdsIconDefaultConfig {\n size?: IdsSizeType\n sizeCollection?: IdsSizeCollectionType\n variant?: IdsIconVariantType\n iconAssetsPath: string\n fontNameMappings?: Record<string, string>\n}\n\nexport const IDS_ICON_DEFAULT_CONFIG = new InjectionToken<IdsIconDefaultConfig>(\n 'IDS_ICON_DEFAULT_CONFIG',\n {\n providedIn: 'root',\n factory: IDS_ICON_DEFAULT_CONFIG_FACTORY,\n },\n);\n\nexport function IDS_ICON_DEFAULT_CONFIG_FACTORY(): Required<IdsIconDefaultConfig> {\n return {\n size: IdsSize.COMPACT,\n sizeCollection: IdsSizeCollection.SMALL,\n variant: IdsIconVariant.SURFACE,\n iconAssetsPath: '',\n fontNameMappings: {},\n };\n}\n","import { IDS_ICON_DEFAULT_CONFIG, IDS_ICON_DEFAULT_CONFIG_FACTORY, IdsIconDefaultConfig } from './icon-defaults';\nimport { IDS_ICON_PARENT } from './tokens/icon-parent';\nimport { IdsIconSource } from './types/icon-source.type';\nimport { IdsIconVariantType } from './types/icon-variant.type';\n\nimport { DOCUMENT } from '@angular/common';\nimport { HttpClient } from '@angular/common/http';\nimport { ChangeDetectionStrategy, Component, computed, effect, ElementRef, inject, input, OnInit, SecurityContext, ViewEncapsulation } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport { coerceBooleanAttribute, coerceStringAttribute, ComponentBaseWithDefaults, IdsSizeCollectionType, IdsSizeType } from '@i-cell/ids-angular/core';\n\nconst defaultConfig = IDS_ICON_DEFAULT_CONFIG_FACTORY();\n\n@Component({\n selector: 'ids-icon',\n standalone: true,\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[attr.aria-hidden]': 'ariaHidden().toString()',\n '[attr.fontIcon]': 'this._safeFontIcon()',\n 'role': 'img',\n },\n})\nexport class IdsIconComponent extends ComponentBaseWithDefaults<IdsIconDefaultConfig> implements OnInit {\n protected override get _hostName(): string {\n return 'icon';\n }\n\n private readonly _parent = inject(IDS_ICON_PARENT, { optional: true });\n protected readonly _defaultConfig = this._getDefaultConfig(defaultConfig, IDS_ICON_DEFAULT_CONFIG);\n\n private readonly _elementRef = inject(ElementRef<HTMLElement>);\n private readonly _document = inject(DOCUMENT) as Document;\n private readonly _httpClient = inject(HttpClient);\n private readonly _sanitizer = inject(DomSanitizer);\n\n public size = input<IdsSizeType>(this._defaultConfig.size);\n public sizeCollection = input<IdsSizeCollectionType>(this._defaultConfig.sizeCollection);\n public variant = input<IdsIconVariantType>(this._defaultConfig.variant);\n public fontIcon = input<string | null, string>(null, { transform: coerceStringAttribute });\n public svgIconName = input<string | null, string>(null, { alias: 'svgIcon', transform: coerceStringAttribute });\n public ariaHidden = input<boolean, unknown>(true, { alias: 'aria-hidden', transform: coerceBooleanAttribute });\n\n protected _svgIcon: SVGElement | null = null;\n\n protected _safeFontIcon = computed(() => {\n const iconName = this.fontIcon();\n if (!iconName) {\n return iconName;\n }\n const fontNameMappings = this._defaultConfig.fontNameMappings;\n const mappedIconName = fontNameMappings?.[iconName];\n return mappedIconName ?? iconName;\n });\n\n protected _iconSourceType = computed(() => (this.fontIcon() ? IdsIconSource.FONT : IdsIconSource.SVG));\n\n private _parentOrSelfVariant = computed(() => this._parent?.embeddedIconVariant() ?? this.variant());\n protected _hostClasses = computed(() => this._getHostClasses([\n [\n `${this.sizeCollection()}collection`,\n this.size(),\n ],\n this._parentOrSelfVariant(),\n this._iconSourceType(),\n ]));\n\n private _sanitizeSvgIconEffect = effect(() => {\n const svgIconName = this.svgIconName();\n if (!svgIconName) {\n this._svgIcon = null;\n return;\n }\n\n const svgIconSafeUrl = this._sanitizer.sanitize(\n SecurityContext.RESOURCE_URL,\n this._sanitizer.bypassSecurityTrustResourceUrl(`${this._defaultConfig.iconAssetsPath}/${svgIconName}.svg`),\n );\n\n if (!svgIconSafeUrl) {\n this._svgIcon = null;\n return;\n }\n\n this._getSvgElementSource(svgIconSafeUrl);\n });\n\n public ngOnInit(): void {\n if (this.fontIcon() && this.svgIconName()) {\n throw this._createHostError('Font icon and svg icon can not be used together!');\n }\n }\n\n private _getSvgElementSource(url: string): void {\n this._httpClient\n .get(url, { responseType: 'text' })\n .pipe(\n takeUntilDestroyed(this._destroyRef),\n )\n .subscribe((svg) => {\n this._svgIcon = this._getSvgElement(this._sanitizer.bypassSecurityTrustHtml(svg));\n this._setSvgElement(this._svgIcon);\n });\n }\n\n private _setSvgElement(svg: SVGElement): void {\n this._clearSvgElement();\n\n this._elementRef.nativeElement.appendChild(svg);\n }\n\n private _clearSvgElement(): void {\n const layoutElement: HTMLElement = this._elementRef.nativeElement;\n let childCount = layoutElement.childNodes.length;\n\n while (childCount--) {\n const child = layoutElement.childNodes[childCount];\n\n if (child.nodeType !== 1 || child.nodeName.toLowerCase() === 'svg') {\n child.remove();\n }\n }\n }\n\n private _getSvgElement(safeHtml: SafeHtml): SVGElement {\n const div = this._document.createElement('div');\n div.innerHTML = safeHtml as unknown as string;\n const svg = div.querySelector('svg');\n\n if (!svg) {\n throw this._createHostError('Svg element creation failed!');\n }\n\n return svg;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  import * as i0 from '@angular/core';
2
- import { InjectionToken, input, output, contentChild, computed, ChangeDetectionStrategy, ViewEncapsulation, Component } from '@angular/core';
2
+ import { InjectionToken, input, output, contentChild, viewChild, computed, effect, ChangeDetectionStrategy, ViewEncapsulation, Component } from '@angular/core';
3
3
  import { IdsSize, ComponentBaseWithDefaults } from '@i-cell/ids-angular/core';
4
4
  import * as i2 from '@angular/cdk/a11y';
5
- import { A11yModule } from '@angular/cdk/a11y';
5
+ import { CdkTrapFocus, A11yModule } from '@angular/cdk/a11y';
6
6
  import { CdkMenu } from '@angular/cdk/menu';
7
7
  import * as i1 from '@angular/cdk/overlay';
8
8
  import { OverlayModule } from '@angular/cdk/overlay';
@@ -19,6 +19,33 @@ const IdsOverlayPanelVariant = {
19
19
  LIGHT: 'light',
20
20
  };
21
21
 
22
+ const overlayConnectedPositions = [
23
+ {
24
+ originX: 'start',
25
+ originY: 'bottom',
26
+ overlayX: 'start',
27
+ overlayY: 'top',
28
+ },
29
+ {
30
+ originX: 'end',
31
+ originY: 'bottom',
32
+ overlayX: 'end',
33
+ overlayY: 'top',
34
+ },
35
+ {
36
+ originX: 'start',
37
+ originY: 'top',
38
+ overlayX: 'start',
39
+ overlayY: 'bottom',
40
+ },
41
+ {
42
+ originX: 'end',
43
+ originY: 'top',
44
+ overlayX: 'end',
45
+ overlayY: 'bottom',
46
+ },
47
+ ];
48
+
22
49
  const IDS_OVERLAY_PANEL_DEFAULT_CONFIG = new InjectionToken('IDS_OVERLAY_PANEL_DEFAULT_CONFIG', {
23
50
  providedIn: 'root',
24
51
  factory: IDS_OVERLAY_PANEL_DEFAULT_CONFIG_FACTORY,
@@ -28,21 +55,27 @@ function IDS_OVERLAY_PANEL_DEFAULT_CONFIG_FACTORY() {
28
55
  appearance: IdsOverlayPanelAppearance.FILLED,
29
56
  size: IdsSize.COMPACT,
30
57
  variant: IdsOverlayPanelVariant.LIGHT,
58
+ positions: overlayConnectedPositions,
31
59
  };
32
60
  }
33
61
 
34
62
  const defaultConfig = IDS_OVERLAY_PANEL_DEFAULT_CONFIG_FACTORY();
35
63
  class IdsOverlayPanelComponent extends ComponentBaseWithDefaults {
64
+ get _hostName() {
65
+ return 'overlay-panel';
66
+ }
36
67
  constructor() {
37
- super(...arguments);
68
+ super();
38
69
  this._defaultConfig = this._getDefaultConfig(defaultConfig, IDS_OVERLAY_PANEL_DEFAULT_CONFIG);
39
70
  this.open = input(false, ...(ngDevMode ? [{ debugName: "open" }] : []));
40
71
  this.origin = input.required(...(ngDevMode ? [{ debugName: "origin" }] : []));
41
72
  this.closed = output();
73
+ this.positions = input(this._defaultConfig.positions, ...(ngDevMode ? [{ debugName: "positions" }] : []));
42
74
  this.appearance = input(this._defaultConfig.appearance, ...(ngDevMode ? [{ debugName: "appearance" }] : []));
43
75
  this.size = input(this._defaultConfig.size, ...(ngDevMode ? [{ debugName: "size" }] : []));
44
76
  this.variant = input(this._defaultConfig.variant, ...(ngDevMode ? [{ debugName: "variant" }] : []));
45
77
  this._cdkMenu = contentChild(CdkMenu, ...(ngDevMode ? [{ debugName: "_cdkMenu", descendants: true }] : [{ descendants: true }]));
78
+ this._focusTrap = viewChild(CdkTrapFocus, ...(ngDevMode ? [{ debugName: "_focusTrap" }] : []));
46
79
  this._hasCdkMenu = computed(() => !!this._cdkMenu(), ...(ngDevMode ? [{ debugName: "_hasCdkMenu" }] : []));
47
80
  this._panelClasses = computed(() => this._getHostClasses([
48
81
  this.appearance(),
@@ -51,9 +84,11 @@ class IdsOverlayPanelComponent extends ComponentBaseWithDefaults {
51
84
  this._hasCdkMenu() ? 'has-menu' : null,
52
85
  ]), ...(ngDevMode ? [{ debugName: "_panelClasses" }] : []));
53
86
  this._hostClasses = computed(() => '', ...(ngDevMode ? [{ debugName: "_hostClasses" }] : []));
54
- }
55
- get _hostName() {
56
- return 'overlay-panel';
87
+ effect(() => {
88
+ if (this._focusTrap()) {
89
+ this._focusTrap()?.focusTrap.focusInitialElementWhenReady({ preventScroll: true });
90
+ }
91
+ });
57
92
  }
58
93
  _handleOverlayOutsideClick() {
59
94
  if (this.open()) {
@@ -63,8 +98,8 @@ class IdsOverlayPanelComponent extends ComponentBaseWithDefaults {
63
98
  _handleDetach() {
64
99
  this.closed.emit();
65
100
  }
66
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: IdsOverlayPanelComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
67
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "20.1.7", type: IdsOverlayPanelComponent, isStandalone: true, selector: "ids-overlay-panel", inputs: { open: { classPropertyName: "open", publicName: "open", isSignal: true, isRequired: false, transformFunction: null }, origin: { classPropertyName: "origin", publicName: "origin", isSignal: true, isRequired: true, transformFunction: null }, 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 } }, outputs: { closed: "closed" }, queries: [{ propertyName: "_cdkMenu", first: true, predicate: CdkMenu, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"origin()\"\n [cdkConnectedOverlayOpen]=\"open()\"\n [cdkConnectedOverlayPanelClass]=\"_hostClasses()\"\n (overlayOutsideClick)=\"_handleOverlayOutsideClick()\"\n (detach)=\"_handleDetach()\"\n>\n <div\n cdkTrapFocus\n [cdkTrapFocusAutoCapture]=\"true\"\n [ngClass]=\"_panelClasses()\"\n >\n <ng-content/>\n </div>\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: OverlayModule }, { kind: "directive", type: i1.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: "ngmodule", type: A11yModule }, { kind: "directive", type: i2.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
101
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: IdsOverlayPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
102
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "20.1.7", type: IdsOverlayPanelComponent, isStandalone: true, selector: "ids-overlay-panel", inputs: { open: { classPropertyName: "open", publicName: "open", isSignal: true, isRequired: false, transformFunction: null }, origin: { classPropertyName: "origin", publicName: "origin", isSignal: true, isRequired: true, transformFunction: null }, positions: { classPropertyName: "positions", publicName: "positions", isSignal: true, isRequired: false, transformFunction: null }, 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 } }, outputs: { closed: "closed" }, queries: [{ propertyName: "_cdkMenu", first: true, predicate: CdkMenu, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "_focusTrap", first: true, predicate: CdkTrapFocus, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayPositions]=\"positions()\"\n [cdkConnectedOverlayOrigin]=\"origin()\"\n [cdkConnectedOverlayOpen]=\"open()\"\n [cdkConnectedOverlayPanelClass]=\"_hostClasses()\"\n (overlayOutsideClick)=\"_handleOverlayOutsideClick()\"\n (detach)=\"_handleDetach()\"\n>\n <div\n cdkTrapFocus\n [ngClass]=\"_panelClasses()\"\n >\n <ng-content/>\n </div>\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: OverlayModule }, { kind: "directive", type: i1.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: "ngmodule", type: A11yModule }, { kind: "directive", type: i2.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
68
103
  }
69
104
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: IdsOverlayPanelComponent, decorators: [{
70
105
  type: Component,
@@ -72,8 +107,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImpor
72
107
  OverlayModule,
73
108
  A11yModule,
74
109
  NgClass,
75
- ], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"origin()\"\n [cdkConnectedOverlayOpen]=\"open()\"\n [cdkConnectedOverlayPanelClass]=\"_hostClasses()\"\n (overlayOutsideClick)=\"_handleOverlayOutsideClick()\"\n (detach)=\"_handleDetach()\"\n>\n <div\n cdkTrapFocus\n [cdkTrapFocusAutoCapture]=\"true\"\n [ngClass]=\"_panelClasses()\"\n >\n <ng-content/>\n </div>\n</ng-template>\n" }]
76
- }] });
110
+ ], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayPositions]=\"positions()\"\n [cdkConnectedOverlayOrigin]=\"origin()\"\n [cdkConnectedOverlayOpen]=\"open()\"\n [cdkConnectedOverlayPanelClass]=\"_hostClasses()\"\n (overlayOutsideClick)=\"_handleOverlayOutsideClick()\"\n (detach)=\"_handleDetach()\"\n>\n <div\n cdkTrapFocus\n [ngClass]=\"_panelClasses()\"\n >\n <ng-content/>\n </div>\n</ng-template>\n" }]
111
+ }], ctorParameters: () => [] });
77
112
 
78
113
  /**
79
114
  * Generated bundle index. Do not edit.
@@ -1 +1 @@
1
- {"version":3,"file":"i-cell-ids-angular-overlay-panel.mjs","sources":["../../../projects/widgets/overlay-panel/types/overlay-panel-appearance.type.ts","../../../projects/widgets/overlay-panel/types/overlay-panel-variant.type.ts","../../../projects/widgets/overlay-panel/overlay-panel-defaults.ts","../../../projects/widgets/overlay-panel/overlay-panel.component.ts","../../../projects/widgets/overlay-panel/overlay-panel.component.html","../../../projects/widgets/overlay-panel/i-cell-ids-angular-overlay-panel.ts"],"sourcesContent":["export const IdsOverlayPanelAppearance = {\n FILLED: 'filled',\n OUTLINED: 'outlined',\n ELEVATED: 'elevated',\n} as const;\n\nexport type IdsOverlayPanelAppearanceType = (typeof IdsOverlayPanelAppearance)[keyof typeof IdsOverlayPanelAppearance];\n","export const IdsOverlayPanelVariant = {\n SURFACE: 'surface',\n LIGHT: 'light',\n} as const;\n\nexport type IdsOverlayPanelVariantType = (typeof IdsOverlayPanelVariant)[keyof typeof IdsOverlayPanelVariant];\n","import { IdsOverlayPanelAppearance, IdsOverlayPanelAppearanceType } from './types/overlay-panel-appearance.type';\nimport { IdsOverlayPanelVariant, IdsOverlayPanelVariantType } from './types/overlay-panel-variant.type';\n\nimport { InjectionToken } from '@angular/core';\nimport { IdsSize, IdsSizeType } from '@i-cell/ids-angular/core';\n\nexport interface IdsOverlayPanelDefaultConfig {\n appearance?: IdsOverlayPanelAppearanceType,\n size?: IdsSizeType,\n variant?: IdsOverlayPanelVariantType,\n}\n\nexport const IDS_OVERLAY_PANEL_DEFAULT_CONFIG = new InjectionToken<IdsOverlayPanelDefaultConfig>(\n 'IDS_OVERLAY_PANEL_DEFAULT_CONFIG',\n {\n providedIn: 'root',\n factory: IDS_OVERLAY_PANEL_DEFAULT_CONFIG_FACTORY,\n },\n);\n\nexport function IDS_OVERLAY_PANEL_DEFAULT_CONFIG_FACTORY(): Required<IdsOverlayPanelDefaultConfig> {\n return {\n appearance: IdsOverlayPanelAppearance.FILLED,\n size: IdsSize.COMPACT,\n variant: IdsOverlayPanelVariant.LIGHT,\n };\n}\n\n","import {\n IDS_OVERLAY_PANEL_DEFAULT_CONFIG,\n IDS_OVERLAY_PANEL_DEFAULT_CONFIG_FACTORY,\n IdsOverlayPanelDefaultConfig,\n} from './overlay-panel-defaults';\nimport { IdsOverlayPanelAppearanceType } from './types/overlay-panel-appearance.type';\nimport { IdsOverlayPanelVariantType } from './types/overlay-panel-variant.type';\n\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { CdkMenu } from '@angular/cdk/menu';\nimport { OverlayModule, CdkOverlayOrigin } from '@angular/cdk/overlay';\nimport { NgClass } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n input, output, computed, contentChild,\n} from '@angular/core';\nimport { IdsSizeType, ComponentBaseWithDefaults } from '@i-cell/ids-angular/core';\n\nconst defaultConfig = IDS_OVERLAY_PANEL_DEFAULT_CONFIG_FACTORY();\n\n@Component({\n selector: 'ids-overlay-panel',\n imports: [\n OverlayModule,\n A11yModule,\n NgClass,\n ],\n templateUrl: './overlay-panel.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n})\nexport class IdsOverlayPanelComponent extends ComponentBaseWithDefaults<IdsOverlayPanelDefaultConfig> {\n protected override get _hostName(): string {\n return 'overlay-panel';\n }\n\n protected readonly _defaultConfig = this._getDefaultConfig(defaultConfig, IDS_OVERLAY_PANEL_DEFAULT_CONFIG);\n\n public open = input<boolean>(false);\n public origin = input.required<CdkOverlayOrigin>();\n public closed = output<void>();\n\n public appearance = input<IdsOverlayPanelAppearanceType>(this._defaultConfig.appearance);\n public size = input<IdsSizeType>(this._defaultConfig.size);\n public variant = input<IdsOverlayPanelVariantType>(this._defaultConfig.variant);\n\n private _cdkMenu = contentChild(CdkMenu, { descendants: true });\n\n protected _hasCdkMenu = computed(() => !!this._cdkMenu());\n\n protected _handleOverlayOutsideClick(): void {\n if (this.open()) {\n this.closed.emit();\n }\n }\n\n protected _handleDetach(): void {\n this.closed.emit();\n }\n\n protected _panelClasses = computed(() => this._getHostClasses([\n this.appearance(),\n this.size(),\n this.variant(),\n this._hasCdkMenu() ? 'has-menu' : null,\n ]),\n );\n\n protected _hostClasses = computed(() => '');\n}\n","<ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"origin()\"\n [cdkConnectedOverlayOpen]=\"open()\"\n [cdkConnectedOverlayPanelClass]=\"_hostClasses()\"\n (overlayOutsideClick)=\"_handleOverlayOutsideClick()\"\n (detach)=\"_handleDetach()\"\n>\n <div\n cdkTrapFocus\n [cdkTrapFocusAutoCapture]=\"true\"\n [ngClass]=\"_panelClasses()\"\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-overlay-panel.mjs","sources":["../../../projects/widgets/overlay-panel/types/overlay-panel-appearance.type.ts","../../../projects/widgets/overlay-panel/types/overlay-panel-variant.type.ts","../../../projects/widgets/overlay-panel/overlay-positions.ts","../../../projects/widgets/overlay-panel/overlay-panel-defaults.ts","../../../projects/widgets/overlay-panel/overlay-panel.component.ts","../../../projects/widgets/overlay-panel/overlay-panel.component.html","../../../projects/widgets/overlay-panel/i-cell-ids-angular-overlay-panel.ts"],"sourcesContent":["export const IdsOverlayPanelAppearance = {\n FILLED: 'filled',\n OUTLINED: 'outlined',\n ELEVATED: 'elevated',\n} as const;\n\nexport type IdsOverlayPanelAppearanceType = (typeof IdsOverlayPanelAppearance)[keyof typeof IdsOverlayPanelAppearance];\n","export const IdsOverlayPanelVariant = {\n SURFACE: 'surface',\n LIGHT: 'light',\n} as const;\n\nexport type IdsOverlayPanelVariantType = (typeof IdsOverlayPanelVariant)[keyof typeof IdsOverlayPanelVariant];\n","import { ConnectedPosition } from '@angular/cdk/overlay';\n\nexport const overlayConnectedPositions: 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 },\n {\n originX: 'end',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'bottom',\n },\n];\n","import { overlayConnectedPositions } from './overlay-positions';\nimport { IdsOverlayPanelAppearance, IdsOverlayPanelAppearanceType } from './types/overlay-panel-appearance.type';\nimport { IdsOverlayPanelVariant, IdsOverlayPanelVariantType } from './types/overlay-panel-variant.type';\n\nimport { ConnectedPosition } from '@angular/cdk/overlay';\nimport { InjectionToken } from '@angular/core';\nimport { IdsSize, IdsSizeType } from '@i-cell/ids-angular/core';\n\nexport interface IdsOverlayPanelDefaultConfig {\n appearance?: IdsOverlayPanelAppearanceType,\n size?: IdsSizeType,\n variant?: IdsOverlayPanelVariantType,\n positions?: ConnectedPosition[],\n}\n\nexport const IDS_OVERLAY_PANEL_DEFAULT_CONFIG = new InjectionToken<IdsOverlayPanelDefaultConfig>(\n 'IDS_OVERLAY_PANEL_DEFAULT_CONFIG',\n {\n providedIn: 'root',\n factory: IDS_OVERLAY_PANEL_DEFAULT_CONFIG_FACTORY,\n },\n);\n\nexport function IDS_OVERLAY_PANEL_DEFAULT_CONFIG_FACTORY(): Required<IdsOverlayPanelDefaultConfig> {\n return {\n appearance: IdsOverlayPanelAppearance.FILLED,\n size: IdsSize.COMPACT,\n variant: IdsOverlayPanelVariant.LIGHT,\n positions: overlayConnectedPositions,\n };\n}\n\n","import {\n IDS_OVERLAY_PANEL_DEFAULT_CONFIG,\n IDS_OVERLAY_PANEL_DEFAULT_CONFIG_FACTORY,\n IdsOverlayPanelDefaultConfig,\n} from './overlay-panel-defaults';\nimport { IdsOverlayPanelAppearanceType } from './types/overlay-panel-appearance.type';\nimport { IdsOverlayPanelVariantType } from './types/overlay-panel-variant.type';\n\nimport { A11yModule, CdkTrapFocus } from '@angular/cdk/a11y';\nimport { CdkMenu } from '@angular/cdk/menu';\nimport { OverlayModule, CdkOverlayOrigin, ConnectedPosition } from '@angular/cdk/overlay';\nimport { NgClass } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n input, output, computed, contentChild,\n viewChild,\n effect,\n} from '@angular/core';\nimport { IdsSizeType, ComponentBaseWithDefaults } from '@i-cell/ids-angular/core';\n\nconst defaultConfig = IDS_OVERLAY_PANEL_DEFAULT_CONFIG_FACTORY();\n\n@Component({\n selector: 'ids-overlay-panel',\n imports: [\n OverlayModule,\n A11yModule,\n NgClass,\n ],\n templateUrl: './overlay-panel.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n})\nexport class IdsOverlayPanelComponent extends ComponentBaseWithDefaults<IdsOverlayPanelDefaultConfig> {\n protected override get _hostName(): string {\n return 'overlay-panel';\n }\n\n protected readonly _defaultConfig = this._getDefaultConfig(defaultConfig, IDS_OVERLAY_PANEL_DEFAULT_CONFIG);\n\n public open = input<boolean>(false);\n public origin = input.required<CdkOverlayOrigin>();\n public closed = output<void>();\n public positions = input<ConnectedPosition[]>(this._defaultConfig.positions);\n\n public appearance = input<IdsOverlayPanelAppearanceType>(this._defaultConfig.appearance);\n public size = input<IdsSizeType>(this._defaultConfig.size);\n public variant = input<IdsOverlayPanelVariantType>(this._defaultConfig.variant);\n\n private _cdkMenu = contentChild(CdkMenu, { descendants: true });\n\n private _focusTrap = viewChild(CdkTrapFocus);\n\n protected _hasCdkMenu = computed(() => !!this._cdkMenu());\n\n constructor() {\n super();\n\n effect(() => {\n if (this._focusTrap()) {\n this._focusTrap()?.focusTrap.focusInitialElementWhenReady({ preventScroll: true });\n }\n });\n }\n\n protected _handleOverlayOutsideClick(): void {\n if (this.open()) {\n this.closed.emit();\n }\n }\n\n protected _handleDetach(): void {\n this.closed.emit();\n }\n\n protected _panelClasses = computed(() => this._getHostClasses([\n this.appearance(),\n this.size(),\n this.variant(),\n this._hasCdkMenu() ? 'has-menu' : null,\n ]),\n );\n\n protected _hostClasses = computed(() => '');\n}\n","<ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayPositions]=\"positions()\"\n [cdkConnectedOverlayOrigin]=\"origin()\"\n [cdkConnectedOverlayOpen]=\"open()\"\n [cdkConnectedOverlayPanelClass]=\"_hostClasses()\"\n (overlayOutsideClick)=\"_handleOverlayOutsideClick()\"\n (detach)=\"_handleDetach()\"\n>\n <div\n cdkTrapFocus\n [ngClass]=\"_panelClasses()\"\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 +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 { 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, 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 effect(\n () => {\n const options = this.options();\n\n if (options.length > 0) {\n this._initKeyManager();\n this._selectionModel?.select(...this.options().filter((item) => item.selected()));\n this._subscribeOptionChanges();\n }\n },\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 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":";;;;;;;;;;;;;MASa,yBAAyB,GAAG,IAAI,cAAc,CACzD,2BAA2B,EAC3B;AACE,IAAA,UAAU,EAAE,MAAM;AAClB,IAAA,OAAO,EAAE,iCAAiC;AAC3C,CAAA;SAGa,iCAAiC,GAAA;IAC/C,OAAO;AACL,QAAA,iBAAiB,EAAE,iBAAiB;AACpC,QAAA,mBAAmB,EAAE,mBAAmB;AACxC,QAAA,yBAAyB,EAAE,GAAG;KAC/B;AACH;;MCjBa,yBAAyB,CAAA;8GAAzB,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAzB,yBAAyB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAzB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAJrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,oBAAoB;AAC9B,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA;;;ACHM,MAAM,wBAAwB,GAAwB;AAC3D,IAAA;AACE,QAAA,OAAO,EAAE,OAAO;AAChB,QAAA,OAAO,EAAE,QAAQ;AACjB,QAAA,QAAQ,EAAE,OAAO;AACjB,QAAA,QAAQ,EAAE,KAAK;AAChB,KAAA;AACD,IAAA;AACE,QAAA,OAAO,EAAE,KAAK;AACd,QAAA,OAAO,EAAE,QAAQ;AACjB,QAAA,QAAQ,EAAE,KAAK;AACf,QAAA,QAAQ,EAAE,KAAK;AAChB,KAAA;AACD,IAAA;AACE,QAAA,OAAO,EAAE,OAAO;AAChB,QAAA,OAAO,EAAE,KAAK;AACd,QAAA,QAAQ,EAAE,OAAO;AACjB,QAAA,QAAQ,EAAE,QAAQ;AAClB,QAAA,UAAU,EAAE,wBAAwB;AACrC,KAAA;AACD,IAAA;AACE,QAAA,OAAO,EAAE,KAAK;AACd,QAAA,OAAO,EAAE,KAAK;AACd,QAAA,QAAQ,EAAE,KAAK;AACf,QAAA,QAAQ,EAAE,QAAQ;AAClB,QAAA,UAAU,EAAE,wBAAwB;AACrC,KAAA;CACF;;ACbD,MAAM,aAAa,GAAG,iCAAiC,EAAE;AA0CnD,MAAO,kBACX,SAAQ,mBAA2C,CAAA;AAEnD,IAAA,IAAuB,SAAS,GAAA;AAC9B,QAAA,OAAO,QAAQ;IACjB;AAuDA,IAAA,IAAc,MAAM,GAAA;QAClB,OAAO,OAAO,CAAC,IAAI,CAAC,eAAe,EAAE,OAAO,EAAE,CAAC;IACjD;AAEA,IAAA,IAAW,QAAQ,GAAA;QACjB,OAAO,IAAI,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,eAAe,EAAE,QAAQ,GAAG,IAAI,CAAC,eAAe,EAAE,QAAQ,GAAG,CAAC,CAAC;IAClG;AAEA,IAAA,IAAc,aAAa,GAAA;AACzB,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE;AACf,YAAA,OAAO,EAAE;QACX;AAEA,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE;YACtB,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,SAAS,EAAE,CAAC;YAC3F,OAAO,eAAe,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;QAC1C;AAEA,QAAA,OAAO,IAAI,CAAC,eAAe,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,IAAI,EAAE;IAC9D;AAEA,IAAA,WAAA,GAAA;AACE,QAAA,KAAK,EAAE;QA3EU,IAAA,CAAA,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,yBAAyB,CAAC;AACjF,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC;AAClC,QAAA,IAAA,CAAA,kBAAkB,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAC9C,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,aAAa,CAAC;AACtC,QAAA,IAAA,CAAA,gBAAgB,GAAG,MAAM,CAAC,qBAAqB,CAAC;QAE9C,IAAA,CAAA,mBAAmB,GAAG,wBAAwB;QAGvD,IAAA,CAAA,aAAa,GAAoB,CAAC;AAErC,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAAU,KAAK,uDAAC;AAC1B,QAAA,IAAA,CAAA,iBAAiB,GAAG,KAAK,CAA4B,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,mBAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAC;AACnG,QAAA,IAAA,CAAA,mBAAmB,GAAG,KAAK,CAA8B,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,qBAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAC;AAClH,QAAA,IAAA,CAAA,SAAS,GAAG,KAAK,CAAS,EAAE,6CAAI,KAAK,EAAE,YAAY,EAAA,CAAA,GAAA,CAArB,EAAE,KAAK,EAAE,YAAY,EAAE,GAAC;AACtD,QAAA,IAAA,CAAA,cAAc,GAAG,KAAK,CAAS,EAAE,kDAAI,KAAK,EAAE,iBAAiB,EAAA,CAAA,GAAA,CAA1B,EAAE,KAAK,EAAE,iBAAiB,EAAE,GAAC;AAChE,QAAA,IAAA,CAAA,cAAc,GAAG,KAAK,CAAwC,CAAC,EAAW,EAAE,EAAW,KAAK,EAAE,KAAK,EAAE,0DAAC;QACtG,IAAA,CAAA,aAAa,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,eAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAqG;AAC1H,QAAA,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAkB,CAAC,4CAAI,SAAS,EAAE,qBAAqB,EAAA,CAAA,GAAA,CAAlC,EAAE,SAAS,EAAE,qBAAqB,EAAE,GAAC;AAC1E,QAAA,IAAA,CAAA,yBAAyB,GAAG,KAAK,CACtC,IAAI,CAAC,cAAc,CAAC,yBAAyB,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,2BAAA,EAAI,SAAS,EAAE,qBAAqB,OAAlC,EAAE,SAAS,EAAE,qBAAqB,EAAE,GACpF;AAEM,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAU,KAAK,uDAAC;AACpC,QAAA,IAAA,CAAA,UAAU,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,sDAAC;AACrE,QAAA,IAAA,CAAA,aAAa,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,EAAE,yDAAC;AAC1E,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAU,KAAK,oDAAC;AAEjC,QAAA,IAAA,CAAA,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC,MAAM,GAAG,CAAC,oDAAC;QACjH,IAAA,CAAA,YAAY,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,eAAe,CAAC;YAC3D,IAAI,CAAC,UAAU,EAAE;YACjB,IAAI,CAAC,aAAa,EAAE;YACpB,IAAI,CAAC,QAAQ,EAAE,GAAG,UAAU,GAAG,IAAI;YACnC,IAAI,CAAC,QAAQ,EAAE,GAAG,UAAU,GAAG,IAAI;AACpC,SAAA,EAAE,CAAC,qBAAqB,CAAC,CAAC,wDAAC;AAElB,QAAA,IAAA,CAAA,aAAa,GAAG,QAAQ,CAAC,MAAM,eAAe,CAAC,CAAA,EAAG,IAAI,CAAC,cAAc,QAAQ,EAAE;YACvF,IAAI,CAAC,UAAU,EAAE;YACjB,IAAI,CAAC,aAAa,EAAE;AACrB,SAAA,CAAC,yDAAC;AAEK,QAAA,IAAA,CAAA,MAAM,GAAG,SAAS,CAA0B,OAAO,kDAAC;AACpD,QAAA,IAAA,CAAA,WAAW,GAAG,SAAS,CAAC,mBAAmB,uDAAC;AAC7C,QAAA,IAAA,CAAA,OAAO,GAAG,eAAe,CAAqB,kBAAkB,2CAAI,WAAW,EAAE,IAAI,EAAA,CAAA,GAAA,CAAnB,EAAE,WAAW,EAAE,IAAI,EAAE,GAAC;AACxF,QAAA,IAAA,CAAA,YAAY,GAAG,eAAe,CAA0B,gBAAgB,gDAAI,WAAW,EAAE,IAAI,EAAA,CAAA,GAAA,CAAnB,EAAE,WAAW,EAAE,IAAI,EAAE,GAAC;AAC7F,QAAA,IAAA,CAAA,cAAc,GAAG,YAAY,CAAC,yBAAyB,0DAAC;AAK1D,QAAA,IAAA,CAAA,SAAS,GAA6B,MAAK,EAAE,CAAC;AAC9C,QAAA,IAAA,CAAA,UAAU,GAAkB,MAAK,EAAG,CAAC;AA6YrC,QAAA,IAAA,CAAA,cAAc,GAAG,CAAC,MAA0B,KAAa;AAC/D,YAAA,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE;AACtB,gBAAA,OAAO,KAAK;YACd;AAEA,YAAA,OAAO,MAAM,CAAC,aAAa,EAAE;AAC/B,QAAA,CAAC;QA8DM,IAAA,CAAA,gBAAgB,GAAG,MAAW;AACnC,YAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE;gBAC5D,IAAI,CAAC,KAAK,EAAE;gBACZ,IAAI,CAAC,IAAI,EAAE;YACb;AACF,QAAA,CAAC;QA7bC,MAAM,CAAC,MAAK;YACV,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,IAAI,CAAC,yBAAyB,EAAE,CAAC;AACnE,QAAA,CAAC,CAAC;QAEF,MAAM,CACJ,MAAK;AACH,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE;AAE9B,YAAA,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;gBACtB,IAAI,CAAC,eAAe,EAAE;gBACtB,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;gBACjF,IAAI,CAAC,uBAAuB,EAAE;YAChC;AACF,QAAA,CAAC,CACF;IACH;IAEO,QAAQ,GAAA;AACb,QAAA,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;AAC1B,YAAA,MAAM,IAAI,CAAC,gBAAgB,CAAC,gCAAgC,CAAC;QAC/D;QACA,IAAI,CAAC,eAAe,GAAG,IAAI,cAAc,CAAqB,IAAI,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC;QAC1H,cAAc,CAAC,MAAK;YAClB,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,EAAE,EAAE,OAAO;YACzC,IAAI,OAAO,EAAE;AACX,gBAAA,OAAO,CAAC;AACL,qBAAA,IAAI,CACH,MAAM,CAAC,CAAC,KAAK,KAAK,KAAK,YAAY,gBAAgB,CAAC,EACpD,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC;qBAErC,SAAS,CAAC,MAAK;AACd,oBAAA,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE;AACxC,gBAAA,CAAC,CAAC;YACN;AACF,QAAA,CAAC,CAAC;QACF,IAAI,CAAC,sBAAsB,EAAE;IAC/B;IAEO,eAAe,GAAA;QACpB,cAAc,CAAC,MAAK;AAClB,YAAA,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE;AACnC,YAAA,IAAI,UAAU,EAAE,OAAO,EAAE;gBACvB,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,0BAA0B,EAAE,CAAC;YACzH;AACF,QAAA,CAAC,CAAC;IACJ;IAEO,0BAA0B,GAAA;AAC/B,QAAA,IAAI,CAAC,kBAAkB,EAAE,gBAAgB,EAAE;AAC3C,QAAA,IAAI,CAAC,oBAAoB,EAAE,kBAAkB,EAAE;IACjD;IAEO,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE;IAC7B;IAEQ,eAAe,GAAA;QACrB,IAAI,CAAC,WAAW,GAAG,IAAI,0BAA0B,CAAqB,IAAI,CAAC,OAAO,EAAE;AACjF,aAAA,aAAa,CAAC,IAAI,CAAC,yBAAyB,EAAE;AAC9C,aAAA,uBAAuB;aACvB,yBAAyB,CAAC,KAAK;AAC/B,aAAA,cAAc;AACd,aAAA,cAAc;AACd,aAAA,uBAAuB,CAAC,CAAC,UAAU,CAAC;AACpC,aAAA,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC;QAErC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,MAAK;AACrC,YAAA,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE;AACtB,gBAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,WAAW,EAAE,UAAU,EAAE;AACvD,oBAAA,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,oBAAoB,EAAE;gBACpD;gBACA,IAAI,CAAC,KAAK,EAAE;gBACZ,IAAI,CAAC,KAAK,EAAE;YACd;AACF,QAAA,CAAC,CAAC;QAEF,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,MAAK;YACrC,IAAI,IAAI,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE;gBACvC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,WAAW,EAAE,eAAe,IAAI,CAAC,CAAC;YACpE;AACF,QAAA,CAAC,CAAC;IACJ;IAEQ,uBAAuB,GAAA;QAC7B,IAAI,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,MAAM,KAAI;YAChC,MAAM,CAAC,iBAAiB,CAAC,SAAS,CAChC,CAAC,MAAM,KAAI;AACT,gBAAA,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC;AAClC,YAAA,CAAC,CACF;AACH,QAAA,CAAC,CAAC;IACJ;AAEQ,IAAA,mBAAmB,CAAC,MAAgC,EAAA;QAC1D,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,MAAM;AAChD,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE;YACvB,IAAI,CAAC,eAAe,EAAE;QACxB;AACA,QAAA,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC;QAE7B,IAAI,WAAW,EAAE;AACf,YAAA,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,MAAM,CAAC;QACzC;AAEA,QAAA,IAAI,WAAW,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE;YAC5D,IAAI,CAAC,KAAK,EAAE;YACZ,IAAI,CAAC,KAAK,EAAE;QACd;AAEA,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE;YACtB,IAAI,CAAC,WAAW,EAAE;YAElB,IAAI,WAAW,EAAE;gBACf,IAAI,CAAC,KAAK,EAAE;YACd;QACF;QAEA,IAAI,QAAQ,EAAE;AACZ,YAAA,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC;QACtC;aAAO;AACL,YAAA,IAAI,CAAC,eAAe,EAAE,QAAQ,CAAC,MAAM,CAAC;QACxC;QACA,IAAI,CAAC,aAAa,EAAE;QACpB,IAAI,CAAC,UAAU,EAAE;IACnB;AAEU,IAAA,cAAc,CAAC,KAAoB,EAAA;AAC3C,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE;YACxC,IAAI,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,yBAAyB,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,yBAAyB,CAAC,KAAK,CAAC;QACpG;IACF;AAEQ,IAAA,yBAAyB,CAAC,KAAoB,EAAA;AACpD,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW;AAChC,QAAA,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG;AACrB,QAAA,MAAM,UAAU,GACd,GAAG,KAAK,WAAW;AACnB,YAAA,GAAG,KAAK,SAAS;AACjB,YAAA,GAAG,KAAK,WAAW;YACnB,GAAG,KAAK,YAAY;QACtB,MAAM,SAAS,GAAG,GAAG,KAAK,OAAO,IAAI,GAAG,KAAK,GAAG;AAEhD,QAAA,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,SAAS,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,UAAU,EAAE;YAC/E,KAAK,CAAC,cAAc,EAAE;YACtB,IAAI,CAAC,IAAI,EAAE;QACb;AAAO,aAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE;AAC9B,YAAA,MAAM,wBAAwB,GAAG,IAAI,CAAC,QAAQ;AAC9C,YAAA,OAAO,EAAE,SAAS,CAAC,KAAK,CAAC;AACzB,YAAA,MAAM,cAAc,GAAG,IAAI,CAAC,QAA8B;YAE1D,IAAI,cAAc,EAAE,SAAS,EAAE,IAAI,wBAAwB,KAAK,cAAc,EAAE;;AAE9E,gBAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,EAAE,EAAE,KAAK,CAAC;YACjE;QACF;IACF;AAEQ,IAAA,yBAAyB,CAAC,KAAoB,EAAA;AACpD,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW;AAChC,QAAA,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG;QACrB,MAAM,UAAU,GAAG,GAAG,KAAK,WAAW,IAAI,GAAG,KAAK,SAAS;AAC3D,QAAA,MAAM,QAAQ,GAAG,OAAO,EAAE,QAAQ,EAAE;AAEpC,QAAA,IAAI,UAAU,IAAI,KAAK,CAAC,MAAM,EAAE;YAC9B,KAAK,CAAC,cAAc,EAAE;YACtB,IAAI,CAAC,KAAK,EAAE;QACd;AAAO,aAAA,IACL,CAAC,QAAQ;AACT,aAAC,GAAG,KAAK,OAAO,IAAI,GAAG,KAAK,GAAG,CAAC;AAChC,YAAA,OAAO,EAAE,UAAU;AACnB,YAAA,CAAC,cAAc,CAAC,KAAK,CAAC,EACtB;YACA,KAAK,CAAC,cAAc,EAAE;AACtB,YAAA,OAAO,CAAC,UAAU,CAAC,oBAAoB,EAAE;QAC3C;AAAO,aAAA,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,WAAW,EAAE,IAAI,GAAG,KAAK,GAAG,IAAI,KAAK,CAAC,OAAO,EAAE;YAC1E,KAAK,CAAC,cAAc,EAAE;YACtB,MAAM,oBAAoB,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;YAE3F,IAAI,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,MAAM,KAAI;AAChC,gBAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;AACpB,oBAAA,oBAAoB,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,MAAM,CAAC,QAAQ,EAAE;gBAC5D;AACF,YAAA,CAAC,CAAC;QACJ;aAAO;AACL,YAAA,MAAM,sBAAsB,GAAG,OAAO,EAAE,eAAe;AAEvD,YAAA,OAAO,EAAE,SAAS,CAAC,KAAK,CAAC;YAEzB,IACE,IAAI,CAAC,WAAW,EAAE;gBAClB,UAAU;AACV,gBAAA,KAAK,CAAC,QAAQ;AACd,gBAAA,OAAO,EAAE,UAAU;AACnB,gBAAA,OAAO,EAAE,eAAe,KAAK,sBAAsB,EACnD;AACA,gBAAA,OAAO,EAAE,UAAU,CAAC,oBAAoB,EAAE;YAC5C;QACF;IACF;IAEQ,mBAAmB,GAAA;QACzB,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,WAAW,EAAE,eAAe,IAAI,CAAC,CAAC;IACpE;AAEQ,IAAA,qBAAqB,CAAC,KAAa,EAAA;QACzC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC;QAEpC,IAAI,MAAM,EAAE;YACV,MAAM,KAAK,GAA4B,IAAI,CAAC,MAAM,EAAG,CAAC,aAAa;AACnE,YAAA,MAAM,UAAU,GAAG,6BAA6B,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC;AAC5F,YAAA,MAAM,OAAO,GAAG,MAAM,CAAC,cAAc,EAAE;YAEvC,IAAI,KAAK,KAAK,CAAC,IAAI,UAAU,KAAK,CAAC,EAAE;AACnC,gBAAA,KAAK,CAAC,SAAS,GAAG,CAAC;YACrB;iBAAO;gBACL,KAAK,CAAC,SAAS,GAAG,wBAAwB,CACxC,OAAO,CAAC,SAAS,EACjB,OAAO,CAAC,YAAY,EACpB,KAAK,CAAC,SAAS,EACf,KAAK,CAAC,YAAY,CACnB;YACH;QACF;IACF;IAEQ,WAAW,GAAA;AACjB,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE;AACtB,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE;AAE9B,YAAA,MAAM,cAAc,GAAG,IAAI,CAAC,aAAa,EAAE;AAC3C,YAAA,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM;kBAClC,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO;AAC9B,kBAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/C;IACF;AAEQ,IAAA,gBAAgB,CACtB,eAAsE,EAAA;AAEtE,QAAA,MAAM,YAAY,GACZ,eAAe,YAAY;cACzB,eAAe,CAAC;AAClB,cAAE,eAAe,IAAI,IAAI,CAAC,WAAW;QAC3C,OAAO,YAAY,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC,KAAK;IACjE;IAEU,cAAc,GAAA;AACtB,QAAA,IAAI,CAAC,WAAW,EAAE,EAAE,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,SAAS,CAAC,MAAK;AAC9D,YAAA,IAAI,CAAC,kBAAkB,CAAC,aAAa,EAAE;YACvC,IAAI,CAAC,mBAAmB,EAAE;AAC5B,QAAA,CAAC,CAAC;IACJ;IAEO,MAAM,GAAA;AACX,QAAA,IAAI,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE;IACjD;IAEO,IAAI,GAAA;AACT,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE;YACpB;QACF;AAEA,QAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACzB,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,gBAAgB,EAAE,yBAAyB,EAAE;QACnF;QAEA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,uBAAuB,CAAC;AACxE,QAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC;AAC1B,QAAA,IAAI,CAAC,WAAW,EAAE,yBAAyB,CAAC,IAAI,CAAC;QACjD,IAAI,CAAC,uBAAuB,EAAE;AAC9B,QAAA,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE;IACxC;IAEO,KAAK,GAAA;AACV,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE;AACtB,YAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC;AAC3B,YAAA,IAAI,CAAC,WAAW,EAAE,yBAAyB,CAAC,KAAK,CAAC;AAClD,YAAA,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE;YACtC,IAAI,CAAC,UAAU,EAAE;QACnB;IACF;;AAGO,IAAA,UAAU,CAAC,KAA0B,EAAA;AAC1C,QAAA,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC;IAClC;AAEO,IAAA,gBAAgB,CAAC,EAAc,EAAA;AACpC,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE;IACrB;AAEO,IAAA,iBAAiB,CAAC,EAAiB,EAAA;AACxC,QAAA,IAAI,CAAC,UAAU,GAAG,EAAE;IACtB;AAEO,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AACzC,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC;AAC9B,QAAA,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE;IACxC;;AAGQ,IAAA,oBAAoB,CAAC,KAA0B,EAAA;QACrD,IAAI,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,MAAM,KAAI;YAChC,MAAM,CAAC,iBAAiB,EAAE;AAC1B,YAAA,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC;AAC5B,QAAA,CAAC,CAAC;AACF,QAAA,IAAI,CAAC,eAAe,EAAE,KAAK,EAAE;AAC7B,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK;QAEtB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE;YAC/B;QACF;AAEA,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE,IAAI,KAAK,EAAE;YAC/B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AACzB,gBAAA,MAAM,IAAI,CAAC,gBAAgB,CAAC,mDAAmD,CAAC;YAClF;AAEA,YAAA,KAAK,CAAC,OAAO,CAAC,CAAC,YAAqB,KAAK,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;YACzE,IAAI,CAAC,WAAW,EAAE;QACpB;aAAO;YACL,MAAM,mBAAmB,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;YACpD,IAAI,mBAAmB,EAAE;AACvB,gBAAA,IAAI,CAAC,WAAW,EAAE,gBAAgB,CAAC,mBAAmB,CAAC;YACzD;AAAO,iBAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE;gBAC9B,IAAI,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC;YACxC;QACF;IACF;AAEQ,IAAA,YAAY,CAAC,KAAc,EAAA;AACjC,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,EAAE;AAC5C,QAAA,MAAM,mBAAmB,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,KAAI;YACzD,IAAI,IAAI,CAAC,eAAe,EAAE,UAAU,CAAC,MAAM,CAAC,EAAE;AAC5C,gBAAA,OAAO,KAAK;YACd;AAEA,YAAA,IAAI;gBACF,OAAO,cAAc,GAAG,MAAM,CAAC,KAAK,EAAE,EAAE,KAAK,CAAC;YAChD;YAAE,OAAM,KAAK,EAAE;gBACb,IAAI,SAAS,EAAE,EAAE;AACf,oBAAA,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;gBACrB;AACA,gBAAA,OAAO,KAAK;YACd;AACF,QAAA,CAAC,CAAC;QAEF,IAAI,mBAAmB,EAAE;AACvB,YAAA,mBAAmB,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;AACtC,YAAA,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,mBAAmB,CAAC;QACnD;AAEA,QAAA,OAAO,mBAAmB;IAC5B;IAEQ,eAAe,GAAA;AACrB,QAAA,IAAI,CAAC,eAAe,EAAE,KAAK,EAAE;QAC7B,IAAI,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,MAAM,KAAI;AAChC,YAAA,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC;AAC5B,QAAA,CAAC,CAAC;IACJ;IAEQ,aAAa,GAAA;QACnB,MAAM,oBAAoB,GAAG,IAAI,CAAC,eAAe,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC;AACxF,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE;AACtB,YAAA,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC;QACtC;aAAO;YACL,IAAI,CAAC,SAAS,CAAC,oBAAoB,GAAG,CAAC,CAAC,CAAC;QAC3C;AACA,QAAA,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE;IACxC;IAUQ,uBAAuB,GAAA;AAC7B,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;AACpB,YAAA,IAAI,IAAI,CAAC,MAAM,EAAE;AACf,gBAAA,IAAI,uBAAuB,GAAG,CAAC,CAAC;AAChC,gBAAA,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;oBAC1D,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,CAAE;AACrC,oBAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;wBACpB,uBAAuB,GAAG,KAAK;wBAC/B;oBACF;gBACF;AAEA,gBAAA,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,uBAAuB,CAAC;YACzD;iBAAO;AACL,gBAAA,IAAI,IAAI,CAAC,eAAe,EAAE;AACxB,oBAAA,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gBAClE;YACF;QACF;IACF;AAEO,IAAA,0BAA0B,CAAC,WAAoB,EAAA;AACpD,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE;AAChC,YAAA,OAAO,KAAK;QACd;AAEA,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;AACvD,YAAA,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,WAAW,IAAI,IAAI,IAAI,KAAK,KAAK,WAAW,CAAC;QACrF;AACA,QAAA,OAAO,WAAW,KAAK,IAAI,CAAC,SAAS;IACvC;IAEQ,QAAQ,GAAA;AACd,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE;AACpB,YAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;QACzB;IACF;IAEQ,OAAO,GAAA;AACb,QAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC;AACxB,QAAA,IAAI,CAAC,WAAW,EAAE,eAAe,EAAE;AAEnC,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE;YAC3C,IAAI,CAAC,UAAU,EAAE;AACjB,YAAA,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE;QACxC;IACF;IAEQ,wBAAwB,GAAA;QAC9B,IAAI,IAAI,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,WAAW,EAAE,UAAU,EAAE;YACtD,OAAO,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE,EAAE;QACzC;AAEA,QAAA,OAAO,IAAI;IACb;AAEO,IAAA,KAAK,CAAC,OAAsB,EAAA;QACjC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC;IAC/C;8GAzgBW,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,2NAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,mBAAA,EAAA,EAAA,iBAAA,EAAA,qBAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,yBAAA,EAAA,EAAA,iBAAA,EAAA,2BAAA,EAAA,UAAA,EAAA,2BAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,eAAA,EAAA,SAAA,EAAA,EAAA,SAAA,EAAA,EAAA,SAAA,EAAA,wBAAA,EAAA,OAAA,EAAA,SAAA,EAAA,MAAA,EAAA,WAAA,EAAA,EAAA,UAAA,EAAA,EAAA,eAAA,EAAA,8BAAA,EAAA,oBAAA,EAAA,0CAAA,EAAA,gBAAA,EAAA,0CAAA,EAAA,oBAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,qBAAA,EAAA,sBAAA,EAAA,0BAAA,EAAA,oBAAA,EAAA,uBAAA,EAAA,oBAAA,EAAA,uBAAA,EAAA,mBAAA,EAAA,iBAAA,EAAA,4BAAA,EAAA,4BAAA,EAAA,EAAA,EAAA,SAAA,EA5BlB;AACT,YAAA,EAAE,OAAO,EAAE,sBAAsB,EAAE,WAAW,EAAE,kBAAkB,EAAE;AACpE,YAAA,EAAE,OAAO,EAAE,2BAA2B,EAAE,WAAW,EAAE,kBAAkB,EAAE;AACzE,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,kBAAkB,CAAC;AACjD,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;AACF,SAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,EAAA,SAAA,EAsEoD,kBAAkB,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,SAAA,EACR,gBAAgB,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EACvC,yBAAyB,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,QAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,OAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,aAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAHjC,mBAAmB,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC3GrD,02CA4CA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDrBI,gBAAgB,EAAA,QAAA,EAAA,4DAAA,EAAA,QAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAChB,mBAAmB,4+BACnB,gBAAgB,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,gBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,aAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAiCP,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAxC9B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA;;4EAEgE,EAAA,OAAA,EACjE;wBACP,gBAAgB;wBAChB,mBAAmB;wBACnB,gBAAgB;AACjB,qBAAA,EAAA,aAAA,EAEc,iBAAiB,CAAC,IAAI,mBACpB,uBAAuB,CAAC,MAAM,EAAA,SAAA,EACpC;AACT,wBAAA,EAAE,OAAO,EAAE,sBAAsB,EAAE,WAAW,oBAAoB,EAAE;AACpE,wBAAA,EAAE,OAAO,EAAE,2BAA2B,EAAE,WAAW,oBAAoB,EAAE;AACzE,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,wBAAwB,CAAC;AACjD,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;qBACF,EAAA,IAAA,EACK;AACJ,wBAAA,MAAM,EAAE,QAAQ;AAChB,wBAAA,mBAAmB,EAAE,MAAM;AAC3B,wBAAA,eAAe,EAAE,SAAS;AAC1B,wBAAA,iBAAiB,EAAE,8BAA8B;AACjD,wBAAA,sBAAsB,EAAE,wCAAwC;AAChE,wBAAA,kBAAkB,EAAE,wCAAwC;AAC5D,wBAAA,sBAAsB,EAAE,eAAe;AACvC,wBAAA,mBAAmB,EAAE,qBAAqB;AAC1C,wBAAA,wBAAwB,EAAE,0BAA0B;AACpD,wBAAA,sBAAsB,EAAE,uBAAuB;AAC/C,wBAAA,sBAAsB,EAAE,uBAAuB;AAC/C,wBAAA,qBAAqB,EAAE,iBAAiB;AACxC,wBAAA,8BAA8B,EAAE,4BAA4B;AAC5D,wBAAA,WAAW,EAAE,wBAAwB;AACrC,wBAAA,SAAS,EAAE,SAAS;AACpB,wBAAA,QAAQ,EAAE,WAAW;AACtB,qBAAA,EAAA,QAAA,EAAA,02CAAA,EAAA;;;AExDH;;AAEG;;;;"}
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 { 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, 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 effect(\n () => {\n const options = this.options();\n\n if (options.length > 0) {\n this._initKeyManager();\n this._selectionModel?.select(...this.options().filter((item) => item.selected()));\n this._subscribeOptionChanges();\n }\n },\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 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 protected _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 protected _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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"}
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { InjectionToken, input, computed, ChangeDetectionStrategy, ViewEncapsulation, Component, inject, NgZone, ElementRef, ViewContainerRef, DOCUMENT, signal, effect, Directive } from '@angular/core';
2
+ import { InjectionToken, input, computed, ChangeDetectionStrategy, ViewEncapsulation, Component, inject, NgZone, ElementRef, ViewContainerRef, signal, effect, Directive } from '@angular/core';
3
3
  import { IdsSize, ComponentBase, DirectiveBaseWithDefaults, coerceStringAttribute } from '@i-cell/ids-angular/core';
4
4
  import { Subject } from 'rxjs';
5
5
  import { FocusMonitor } from '@angular/cdk/a11y';
@@ -8,6 +8,7 @@ import { Overlay } from '@angular/cdk/overlay';
8
8
  import { normalizePassiveListenerOptions, Platform } from '@angular/cdk/platform';
9
9
  import { ComponentPortal } from '@angular/cdk/portal';
10
10
  import { ScrollDispatcher } from '@angular/cdk/scrolling';
11
+ import { DOCUMENT } from '@angular/common';
11
12
  import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
12
13
 
13
14
  const IdsTooltipPosition = {
@@ -1 +1 @@
1
- {"version":3,"file":"i-cell-ids-angular-tooltip.mjs","sources":["../../../projects/widgets/tooltip/types/tooltip-position.type.ts","../../../projects/widgets/tooltip/types/tooltip-variant.type.ts","../../../projects/widgets/tooltip/tooltip-defaults.ts","../../../projects/widgets/tooltip/tooltip-position-strategies.ts","../../../projects/widgets/tooltip/tooltip.component.ts","../../../projects/widgets/tooltip/tooltip.component.html","../../../projects/widgets/tooltip/utils/tooltip-converters.ts","../../../projects/widgets/tooltip/tooltip.directive.ts","../../../projects/widgets/tooltip/i-cell-ids-angular-tooltip.ts"],"sourcesContent":["export const IdsTooltipPosition = {\n NORTH: 'north',\n NORTHEAST: 'northeast',\n EAST: 'east',\n SOUTHEAST: 'southeast',\n SOUTH: 'south',\n SOUTHWEST: 'southwest',\n WEST: 'west',\n NORTHWEST: 'northwest',\n} as const;\n\nexport type IdsTooltipPositionType = (typeof IdsTooltipPosition)[keyof typeof IdsTooltipPosition];\n","export const IdsTooltipVariant = {\n LIGHT: 'light',\n DARK: 'dark',\n} as const;\n\nexport type IdsTooltipVariantType = (typeof IdsTooltipVariant)[keyof typeof IdsTooltipVariant];\n","import { IdsTooltipPosition, IdsTooltipPositionType } from './types/tooltip-position.type';\nimport { IdsTooltipVariant, IdsTooltipVariantType } from './types/tooltip-variant.type';\n\nimport { InjectionToken } from '@angular/core';\nimport { IdsSizeType, IdsSize } from '@i-cell/ids-angular/core';\n\nconst DEFAULT_SHOW_DELAY = 1_000;\nconst DEFAULT_HIDE_DELAY = 1_000;\nconst DEFAULT_VIEWPORT_MARGIN = 8;\nconst DEFAULT_LONGPRESS_DELAY = 500;\nconst DEFAULT_TOUCHEND_HIDE_DELAY = 1500;\nconst DEFAULT_SCROLL_DEBOUNCE_TIME = 20;\n\nexport interface IdsTooltipDefaultConfig {\n position?: IdsTooltipPositionType\n size?: IdsSizeType\n variant?: IdsTooltipVariantType\n showPointer?: boolean\n showDelay?: number\n hideDelay?: number\n touchLongPressShowDelay?: number\n viewPortMargin?: number\n touchendHideDelay?: number\n scrollDebounceTime?: number\n}\n\nexport const IDS_TOOLTIP_DEFAULT_CONFIG = new InjectionToken<IdsTooltipDefaultConfig>(\n 'IDS_TOOLTIP_DEFAULT_CONFIG',\n {\n providedIn: 'root',\n factory: IDS_TOOLTIP_DEFAULT_CONFIG_FACTORY,\n },\n);\n\nexport function IDS_TOOLTIP_DEFAULT_CONFIG_FACTORY(): Required<IdsTooltipDefaultConfig> {\n return {\n position: IdsTooltipPosition.NORTH,\n size: IdsSize.COMPACT,\n variant: IdsTooltipVariant.DARK,\n showPointer: true,\n showDelay: DEFAULT_SHOW_DELAY,\n hideDelay: DEFAULT_HIDE_DELAY,\n touchLongPressShowDelay: DEFAULT_LONGPRESS_DELAY,\n viewPortMargin: DEFAULT_VIEWPORT_MARGIN,\n touchendHideDelay: DEFAULT_TOUCHEND_HIDE_DELAY,\n scrollDebounceTime: DEFAULT_SCROLL_DEBOUNCE_TIME,\n };\n}\n","import { IdsTooltipPosition, IdsTooltipPositionType } from './types/tooltip-position.type';\n\nimport { ConnectedPosition, FlexibleConnectedPositionStrategy } from '@angular/cdk/overlay';\n\nexport function setTooltipFlexibleConnectedPositionStrategy(\n connectedTo: FlexibleConnectedPositionStrategy,\n tooltipPosition: IdsTooltipPositionType,\n): FlexibleConnectedPositionStrategy {\n switch (tooltipPosition) {\n case IdsTooltipPosition.NORTH:\n return connectedTo.withPositions([\n connectedPosition.north,\n connectedPosition.northwest,\n connectedPosition.northeast,\n connectedPosition.south,\n connectedPosition.southwest,\n connectedPosition.southeast,\n ]);\n case IdsTooltipPosition.NORTHEAST:\n return connectedTo.withPositions([\n connectedPosition.northeast,\n connectedPosition.southeast,\n connectedPosition.northwest,\n connectedPosition.southwest,\n ]);\n case IdsTooltipPosition.EAST:\n return connectedTo.withPositions([\n connectedPosition.east,\n connectedPosition.northeast,\n connectedPosition.southeast,\n connectedPosition.west,\n connectedPosition.northwest,\n connectedPosition.southwest,\n ]);\n case IdsTooltipPosition.SOUTHEAST:\n return connectedTo.withPositions([\n connectedPosition.southeast,\n connectedPosition.southwest,\n connectedPosition.northeast,\n connectedPosition.northwest,\n ]);\n case IdsTooltipPosition.SOUTH:\n return connectedTo.withPositions([\n connectedPosition.south,\n connectedPosition.southwest,\n connectedPosition.southeast,\n connectedPosition.north,\n connectedPosition.northwest,\n connectedPosition.northeast,\n ]);\n case IdsTooltipPosition.SOUTHWEST:\n return connectedTo.withPositions([\n connectedPosition.southwest,\n connectedPosition.northwest,\n connectedPosition.southeast,\n connectedPosition.northeast,\n ]);\n case IdsTooltipPosition.WEST:\n return connectedTo.withPositions([\n connectedPosition.west,\n connectedPosition.northwest,\n connectedPosition.southwest,\n connectedPosition.east,\n connectedPosition.northeast,\n connectedPosition.southeast,\n ]);\n case IdsTooltipPosition.NORTHWEST:\n return connectedTo.withPositions([\n connectedPosition.northwest,\n connectedPosition.southwest,\n connectedPosition.northeast,\n connectedPosition.southeast,\n ]);\n }\n}\n\nconst connectedPosition: Record<IdsTooltipPositionType, ConnectedPosition> = {\n north: {\n originX: 'center',\n originY: 'top',\n overlayX: 'center',\n overlayY: 'bottom',\n },\n northeast: {\n originX: 'end',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n },\n east: {\n originX: 'end',\n originY: 'center',\n overlayX: 'start',\n overlayY: 'center',\n },\n southeast: {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n },\n south: {\n originX: 'center',\n originY: 'bottom',\n overlayX: 'center',\n overlayY: 'top',\n },\n southwest: {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top',\n },\n west: {\n originX: 'start',\n originY: 'center',\n overlayX: 'end',\n overlayY: 'center',\n },\n northwest: {\n originX: 'start',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'bottom',\n },\n};\n","import { IdsTooltipPositionType } from './types/tooltip-position.type';\nimport { IdsTooltipVariantType } from './types/tooltip-variant.type';\nimport { IdsTooltipTextAlign } from './types/tooltip.type';\n\nimport { ChangeDetectionStrategy, Component, computed, input, OnDestroy, ViewEncapsulation } from '@angular/core';\nimport { IdsSizeType, ComponentBase } from '@i-cell/ids-angular/core';\nimport { Observable, Subject } from 'rxjs';\n\n@Component({\n selector: 'ids-tooltip',\n imports: [],\n templateUrl: './tooltip.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '(mouseenter)': '_handleMouseEnter()',\n '(mouseleave)': '_handleMouseLeave($event)',\n 'aria-hidden': 'true',\n '[class]': 'tooltipClass()',\n },\n})\nexport class IdsTooltipComponent extends ComponentBase implements OnDestroy {\n protected override get _hostName(): string {\n return 'tooltip';\n }\n\n private readonly _onHide = new Subject<void>();\n\n public message = input<string>();\n public position = input<IdsTooltipPositionType>();\n public size = input<IdsSizeType>();\n public variant = input<IdsTooltipVariantType>();\n public textAlign = input<IdsTooltipTextAlign>();\n public mouseLeaveHideDelay = input<number>(0);\n public tooltipClass = input<string>();\n public showPointer = input<boolean>();\n\n public triggerElement?: HTMLElement;\n private _hideTimeout?: ReturnType<typeof setTimeout>;\n\n protected _hostClasses = computed(() => this._getHostClasses([\n this.size(),\n this.variant(),\n [\n 'position',\n this.position(),\n ],\n [\n 'text-align',\n this.textAlign(),\n ],\n this.showPointer() ? 'pointered' : null,\n ]));\n\n public get isHideTimerTicking(): boolean {\n return Boolean(this._hideTimeout);\n }\n\n public hide(delay: number): void {\n this._hideTimeout = setTimeout(() => {\n this._hideTimeout = undefined;\n this._onHide.next();\n }, delay);\n }\n\n public afterHidden(): Observable<void> {\n return this._onHide;\n }\n\n public abortHide(): void {\n clearTimeout(this._hideTimeout);\n this._hideTimeout = undefined;\n }\n\n private _handleMouseEnter(): void {\n if (this._hideTimeout) {\n this.abortHide();\n }\n }\n\n private _handleMouseLeave({ relatedTarget }: MouseEvent): void {\n if (!relatedTarget || !this.triggerElement?.contains(relatedTarget as Node)) {\n this.hide(this.mouseLeaveHideDelay());\n }\n }\n\n public ngOnDestroy(): void {\n this._onHide.complete();\n }\n}\n","<div class=\"ids-tooltip__content\">\n <span>{{ message() }}</span>\n</div>\n","import { IdsTooltipPosition, IdsTooltipPositionType } from '../types/tooltip-position.type';\n\nimport { ConnectionPositionPair } from '@angular/cdk/overlay';\n\nexport function connectedPositionPairToTooltipPosition(positionPair: ConnectionPositionPair): IdsTooltipPositionType {\n const { originX, originY, overlayX, overlayY } = positionPair;\n\n if (\n originX=== 'center' &&\n originY === 'top' &&\n overlayX === 'center' &&\n overlayY === 'bottom'\n ) {\n return IdsTooltipPosition.NORTH;\n }\n if (\n originX === 'end' &&\n originY === 'top' &&\n overlayX === 'start' &&\n overlayY === 'bottom'\n ) {\n return IdsTooltipPosition.NORTHEAST;\n }\n if (\n originX === 'end' &&\n originY === 'center' &&\n overlayX === 'start' &&\n overlayY === 'center'\n ) {\n return IdsTooltipPosition.EAST;\n }\n if (\n originX === 'end' &&\n originY === 'bottom' &&\n overlayX === 'start' &&\n overlayY === 'top'\n ) {\n return IdsTooltipPosition.SOUTHEAST;\n }\n if (\n originX === 'center' &&\n originY === 'bottom' &&\n overlayX === 'center' &&\n overlayY === 'top'\n ) {\n return IdsTooltipPosition.SOUTH;\n }\n if (\n originX === 'start' &&\n originY === 'bottom' &&\n overlayX === 'end' &&\n overlayY === 'top'\n ) {\n return IdsTooltipPosition.SOUTHWEST;\n }\n if (\n originX === 'start' &&\n originY === 'center' &&\n overlayX === 'end' &&\n overlayY === 'center'\n ) {\n return IdsTooltipPosition.WEST;\n }\n if (\n originX === 'start' &&\n originY === 'top' &&\n overlayX === 'end' &&\n overlayY === 'bottom'\n ) {\n return IdsTooltipPosition.NORTHWEST;\n }\n\n return IdsTooltipPosition.EAST;\n}\n","import { IDS_TOOLTIP_DEFAULT_CONFIG, IDS_TOOLTIP_DEFAULT_CONFIG_FACTORY, IdsTooltipDefaultConfig } from './tooltip-defaults';\nimport { setTooltipFlexibleConnectedPositionStrategy } from './tooltip-position-strategies';\nimport { IdsTooltipComponent } from './tooltip.component';\nimport { IdsTooltipPositionType } from './types/tooltip-position.type';\nimport { IdsTooltipVariantType } from './types/tooltip-variant.type';\nimport { IdsTooltipTextAlign, IdsTooltipTouchGestures } from './types/tooltip.type';\nimport { connectedPositionPairToTooltipPosition } from './utils/tooltip-converters';\n\nimport { FocusMonitor } from '@angular/cdk/a11y';\nimport { hasModifierKey } from '@angular/cdk/keycodes';\nimport { ConnectionPositionPair, FlexibleConnectedPositionStrategy, Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { normalizePassiveListenerOptions, Platform } from '@angular/cdk/platform';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { ScrollDispatcher } from '@angular/cdk/scrolling';\nimport { AfterViewInit, ComponentRef, computed, Directive, effect, ElementRef, inject, input, NgZone, OnDestroy, signal, ViewContainerRef, DOCUMENT } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { coerceStringAttribute, DirectiveBaseWithDefaults, IdsSizeType } from '@i-cell/ids-angular/core';\n\nconst defaultConfig = IDS_TOOLTIP_DEFAULT_CONFIG_FACTORY();\nconst passiveListenerOptions = normalizePassiveListenerOptions({ passive: true });\n\n@Directive({\n selector: '[idsTooltip]',\n standalone: true,\n})\nexport class IdsTooltipDirective extends DirectiveBaseWithDefaults<IdsTooltipDefaultConfig> implements AfterViewInit, OnDestroy {\n protected override get _hostName(): string {\n return 'tooltip-trigger';\n }\n\n private readonly _focusMonitor = inject(FocusMonitor);\n private readonly _platform = inject(Platform);\n private readonly _ngZone = inject(NgZone);\n private readonly _elementRef: ElementRef<HTMLElement> = inject(ElementRef<HTMLElement>);\n private readonly _viewContainerRef = inject(ViewContainerRef);\n private readonly _scrollDispatcher = inject(ScrollDispatcher);\n private readonly _overlay = inject(Overlay);\n private readonly _document = inject(DOCUMENT);\n protected readonly _defaultConfig = this._getDefaultConfig(defaultConfig, IDS_TOOLTIP_DEFAULT_CONFIG);\n\n private readonly _passiveListeners: (readonly [string, EventListenerOrEventListenerObject])[] = [];\n\n private _overlayRef: OverlayRef | null = null;\n private _portal?: ComponentPortal<IdsTooltipComponent>;\n private _componentRef?: ComponentRef<IdsTooltipComponent> | null;\n private _tooltipInstance: IdsTooltipComponent | null = null;\n private _touchstartTimeout?: ReturnType<typeof setTimeout>;\n private _showTimeout?: ReturnType<typeof setTimeout>;\n private _pointerExitEventsInitialized = false;\n private _viewportMargin = this._defaultConfig.viewPortMargin;\n private _currentPosition = signal<IdsTooltipPositionType | null>(null);\n\n public message = input<string, string>('', { alias: 'idsTooltip', transform: coerceStringAttribute });\n public position = input<IdsTooltipPositionType>(this._defaultConfig.position, { alias: 'idsTooltipPosition' });\n public size = input<IdsSizeType>(this._defaultConfig.size, { alias: 'idsTooltipSize' });\n public variant = input<IdsTooltipVariantType>(this._defaultConfig.variant, { alias: 'idsTooltipVariant' });\n public showDelay = input<number>(this._defaultConfig.showDelay, { alias: 'idsTooltipShowDelay' });\n public hideDelay = input<number>(this._defaultConfig.hideDelay, { alias: 'idsTooltipHideDelay' });\n public disabled = input<boolean>(false, { alias: 'idsTooltipDisabled' });\n public touchGestures = input<IdsTooltipTouchGestures>('auto', { alias: 'idsTooltipTouchGestures' });\n public textAlign = input<IdsTooltipTextAlign>('auto', { alias: 'idsTooltipTextAlign' });\n public tooltipClass = input<string | undefined>(undefined, { alias: 'idsTooltipClass' });\n public showPointer = input<boolean>(this._defaultConfig.showPointer, { alias: 'idsTooltipShowPointer' });\n public ignoreClipped = input<boolean>(false, { alias: 'idsTooltipIgnoreClipped' });\n\n protected _hostClasses = computed(() => this._getHostClasses([]));\n\n private _tooltipClassEffect = effect(() => {\n this._setTooltipInputs(\n this.message(),\n this._currentPosition() ?? this.position(),\n this.size(),\n this.variant(),\n this.textAlign(),\n this.hideDelay(),\n this.tooltipClass(),\n this.showPointer(),\n );\n });\n\n public ngAfterViewInit(): void {\n this._setupPointerEnterEventsIfNeeded();\n\n this._focusMonitor\n .monitor(this._elementRef)\n .pipe(takeUntilDestroyed(this._destroyRef))\n .subscribe((origin) => {\n if (!origin) {\n this._ngZone.run(() => this.hide(0));\n } else if (origin === 'keyboard') {\n this._ngZone.run(() => this.show());\n }\n });\n }\n\n public show(): void {\n if (this.disabled() || !this.message() || this._tooltipInstance) {\n this._tooltipInstance?.abortHide();\n return;\n }\n\n const overlayRef = this._createOverlay();\n this._portal =\n this._portal || new ComponentPortal(IdsTooltipComponent, this._viewContainerRef);\n this._componentRef = overlayRef.attach(this._portal);\n this._tooltipInstance = this._componentRef.instance;\n const instance = this._tooltipInstance;\n instance.triggerElement = this._elementRef.nativeElement;\n this._setTooltipInputs(\n this.message(),\n this._currentPosition() ?? this.position(),\n this.size(),\n this.variant(),\n this.textAlign(),\n this.hideDelay(),\n this.tooltipClass(),\n this.showPointer(),\n );\n instance\n .afterHidden()\n .pipe(takeUntilDestroyed(this._destroyRef))\n .subscribe(() => {\n this._detach();\n });\n }\n\n public hide(delay: number = this.hideDelay()): void {\n if (this._showTimeout) {\n clearTimeout(this._showTimeout);\n this._showTimeout = undefined;\n return;\n }\n\n const instance = this._tooltipInstance;\n if (instance?.isHideTimerTicking) {\n return;\n }\n\n if (instance) {\n instance.hide(delay);\n }\n }\n\n public toggle(): void {\n this._tooltipInstance ? this.hide() : this.show();\n }\n\n private _createOverlay(): OverlayRef {\n if (this._overlayRef) {\n this._detach();\n }\n\n const scrollableAncestors = this._scrollDispatcher.getAncestorScrollContainers(\n this._elementRef,\n );\n\n const strategy = this._overlay\n .position()\n .flexibleConnectedTo(this._elementRef)\n .withFlexibleDimensions(false)\n .withViewportMargin(this._viewportMargin)\n .withScrollableContainers(scrollableAncestors);\n\n strategy.positionChanges.pipe(takeUntilDestroyed(this._destroyRef)).subscribe((change) => {\n this._updateCurrentPositionClass(change.connectionPair);\n\n if (!this.ignoreClipped() &&\n change.scrollableViewProperties.isOverlayClipped &&\n this._tooltipInstance\n ) {\n this._ngZone.run(() => this.hide(0));\n }\n });\n\n this._overlayRef = this._overlay.create({\n positionStrategy: strategy,\n panelClass: 'ids-tooltip-panel',\n scrollStrategy: this._overlay.scrollStrategies.reposition({ scrollThrottle: this._defaultConfig.scrollDebounceTime }),\n });\n\n this._updatePosition(this._overlayRef);\n\n this._overlayRef\n .detachments()\n .pipe(takeUntilDestroyed(this._destroyRef))\n .subscribe(() => this._detach());\n\n this._overlayRef\n .outsidePointerEvents()\n .pipe(takeUntilDestroyed(this._destroyRef))\n .subscribe(() => this._tooltipInstance?.hide(0));\n\n this._overlayRef\n .keydownEvents()\n .pipe(takeUntilDestroyed(this._destroyRef))\n .subscribe((event) => {\n if (this._tooltipInstance && event.key === 'Escape' && !hasModifierKey(event)) {\n event.preventDefault();\n event.stopPropagation();\n this._ngZone.run(() => this.hide(0));\n }\n });\n\n return this._overlayRef;\n }\n\n private _detach(): void {\n if (this._overlayRef && this._overlayRef.hasAttached()) {\n this._overlayRef.detach();\n }\n this._componentRef?.destroy();\n this._tooltipInstance = null;\n }\n\n private _updatePosition(overlayRef: OverlayRef): void {\n const position = overlayRef.getConfig().positionStrategy as FlexibleConnectedPositionStrategy;\n setTooltipFlexibleConnectedPositionStrategy(position, this.position());\n }\n\n private _updateCurrentPositionClass(connectionPair: ConnectionPositionPair): void {\n const newPosition: IdsTooltipPositionType = connectedPositionPairToTooltipPosition(connectionPair);\n\n if (newPosition !== this._currentPosition()) {\n const overlayRef = this._overlayRef;\n\n if (overlayRef) {\n const positionClassPrefix = 'is-tooltip-panel-position-';\n overlayRef.removePanelClass(positionClassPrefix + this._currentPosition());\n overlayRef.addPanelClass(positionClassPrefix + newPosition);\n }\n\n this._currentPosition.set(newPosition);\n }\n }\n\n private _setTooltipInputs(\n message: string,\n position: IdsTooltipPositionType,\n size: IdsSizeType,\n variant: IdsTooltipVariantType,\n textAlign: IdsTooltipTextAlign,\n hideDelay: number,\n tooltipClass: string | undefined,\n showPointer: boolean,\n ): void {\n if (this._tooltipInstance) {\n this._componentRef?.setInput('message', message);\n this._componentRef?.setInput('position', position);\n this._componentRef?.setInput('size', size);\n this._componentRef?.setInput('variant', variant);\n this._componentRef?.setInput('textAlign', textAlign);\n this._componentRef?.setInput('mouseLeaveHideDelay', hideDelay);\n this._componentRef?.setInput('tooltipClass', tooltipClass);\n this._componentRef?.setInput('showPointer', showPointer);\n }\n }\n\n private _setupPointerEnterEventsIfNeeded(): void {\n if (!this.message() || this._passiveListeners.length) {\n return;\n }\n\n if (this._platformSupportsMouseEvents()) {\n this._passiveListeners.push([\n 'mouseenter',\n (): void => {\n this._setupPointerExitEventsIfNeeded();\n this._showTimeout = setTimeout(() => {\n this._showTimeout = undefined;\n this.show();\n }, this.showDelay());\n },\n ]);\n } else if (this.touchGestures() !== 'off') {\n this._disableNativeGesturesIfNecessary();\n\n this._passiveListeners.push([\n 'touchstart',\n (): void => {\n this._setupPointerExitEventsIfNeeded();\n clearTimeout(this._touchstartTimeout);\n\n this._touchstartTimeout = setTimeout(\n () => this.show(),\n this._defaultConfig.touchLongPressShowDelay,\n );\n },\n ]);\n }\n\n this._addListeners(this._passiveListeners);\n }\n\n private _wheelListener(event: WheelEvent): void {\n if (this._tooltipInstance) {\n const elementUnderPointer = this._document.elementFromPoint(event.clientX, event.clientY);\n const element = this._elementRef.nativeElement;\n\n if (elementUnderPointer !== element && !element.contains(elementUnderPointer)) {\n this.hide();\n }\n }\n }\n\n private _setupPointerExitEventsIfNeeded(): void {\n if (this._pointerExitEventsInitialized) {\n return;\n }\n this._pointerExitEventsInitialized = true;\n\n const exitListeners: (readonly [string, EventListenerOrEventListenerObject])[] = [];\n if (this._platformSupportsMouseEvents()) {\n exitListeners.push(\n [\n 'mouseleave',\n (): void => {\n this.hide();\n },\n ],\n [\n 'wheel',\n (event): void => {\n this._wheelListener(event as WheelEvent);\n },\n ],\n );\n } else if (this.touchGestures() !== 'off') {\n this._disableNativeGesturesIfNecessary();\n const touchendListener = (): void => {\n clearTimeout(this._touchstartTimeout);\n this.hide(this._defaultConfig.touchendHideDelay);\n };\n\n exitListeners.push([\n 'touchend',\n touchendListener,\n ], [\n 'touchcancel',\n touchendListener,\n ]);\n }\n\n this._addListeners(exitListeners);\n this._passiveListeners.push(...exitListeners);\n }\n\n private _addListeners(listeners: (readonly [string, EventListenerOrEventListenerObject])[]): void {\n listeners.forEach(([\n event,\n listener,\n ]) => {\n this._elementRef.nativeElement.addEventListener(event, listener, passiveListenerOptions);\n });\n }\n\n private _disableNativeGesturesIfNecessary(): void {\n const gestures = this.touchGestures();\n\n if (gestures !== 'off') {\n const element = this._elementRef.nativeElement;\n const style = element.style;\n\n if (gestures === 'on' || (element.nodeName !== 'INPUT' && element.nodeName !== 'TEXTAREA')) {\n style.userSelect = 'none';\n }\n\n style.touchAction = 'none';\n }\n }\n\n private _platformSupportsMouseEvents(): boolean {\n return !this._platform.IOS && !this._platform.ANDROID;\n }\n\n public ngOnDestroy(): void {\n const nativeElement = this._elementRef.nativeElement;\n\n clearTimeout(this._touchstartTimeout);\n\n if (this._componentRef) {\n this._tooltipInstance = null;\n }\n\n this._passiveListeners.forEach(([\n event,\n listener,\n ]) => {\n nativeElement.removeEventListener(event, listener, passiveListenerOptions);\n });\n this._passiveListeners.length = 0;\n\n this._focusMonitor.stopMonitoring(nativeElement);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"i-cell-ids-angular-tooltip.mjs","sources":["../../../projects/widgets/tooltip/types/tooltip-position.type.ts","../../../projects/widgets/tooltip/types/tooltip-variant.type.ts","../../../projects/widgets/tooltip/tooltip-defaults.ts","../../../projects/widgets/tooltip/tooltip-position-strategies.ts","../../../projects/widgets/tooltip/tooltip.component.ts","../../../projects/widgets/tooltip/tooltip.component.html","../../../projects/widgets/tooltip/utils/tooltip-converters.ts","../../../projects/widgets/tooltip/tooltip.directive.ts","../../../projects/widgets/tooltip/i-cell-ids-angular-tooltip.ts"],"sourcesContent":["export const IdsTooltipPosition = {\n NORTH: 'north',\n NORTHEAST: 'northeast',\n EAST: 'east',\n SOUTHEAST: 'southeast',\n SOUTH: 'south',\n SOUTHWEST: 'southwest',\n WEST: 'west',\n NORTHWEST: 'northwest',\n} as const;\n\nexport type IdsTooltipPositionType = (typeof IdsTooltipPosition)[keyof typeof IdsTooltipPosition];\n","export const IdsTooltipVariant = {\n LIGHT: 'light',\n DARK: 'dark',\n} as const;\n\nexport type IdsTooltipVariantType = (typeof IdsTooltipVariant)[keyof typeof IdsTooltipVariant];\n","import { IdsTooltipPosition, IdsTooltipPositionType } from './types/tooltip-position.type';\nimport { IdsTooltipVariant, IdsTooltipVariantType } from './types/tooltip-variant.type';\n\nimport { InjectionToken } from '@angular/core';\nimport { IdsSizeType, IdsSize } from '@i-cell/ids-angular/core';\n\nconst DEFAULT_SHOW_DELAY = 1_000;\nconst DEFAULT_HIDE_DELAY = 1_000;\nconst DEFAULT_VIEWPORT_MARGIN = 8;\nconst DEFAULT_LONGPRESS_DELAY = 500;\nconst DEFAULT_TOUCHEND_HIDE_DELAY = 1500;\nconst DEFAULT_SCROLL_DEBOUNCE_TIME = 20;\n\nexport interface IdsTooltipDefaultConfig {\n position?: IdsTooltipPositionType\n size?: IdsSizeType\n variant?: IdsTooltipVariantType\n showPointer?: boolean\n showDelay?: number\n hideDelay?: number\n touchLongPressShowDelay?: number\n viewPortMargin?: number\n touchendHideDelay?: number\n scrollDebounceTime?: number\n}\n\nexport const IDS_TOOLTIP_DEFAULT_CONFIG = new InjectionToken<IdsTooltipDefaultConfig>(\n 'IDS_TOOLTIP_DEFAULT_CONFIG',\n {\n providedIn: 'root',\n factory: IDS_TOOLTIP_DEFAULT_CONFIG_FACTORY,\n },\n);\n\nexport function IDS_TOOLTIP_DEFAULT_CONFIG_FACTORY(): Required<IdsTooltipDefaultConfig> {\n return {\n position: IdsTooltipPosition.NORTH,\n size: IdsSize.COMPACT,\n variant: IdsTooltipVariant.DARK,\n showPointer: true,\n showDelay: DEFAULT_SHOW_DELAY,\n hideDelay: DEFAULT_HIDE_DELAY,\n touchLongPressShowDelay: DEFAULT_LONGPRESS_DELAY,\n viewPortMargin: DEFAULT_VIEWPORT_MARGIN,\n touchendHideDelay: DEFAULT_TOUCHEND_HIDE_DELAY,\n scrollDebounceTime: DEFAULT_SCROLL_DEBOUNCE_TIME,\n };\n}\n","import { IdsTooltipPosition, IdsTooltipPositionType } from './types/tooltip-position.type';\n\nimport { ConnectedPosition, FlexibleConnectedPositionStrategy } from '@angular/cdk/overlay';\n\nexport function setTooltipFlexibleConnectedPositionStrategy(\n connectedTo: FlexibleConnectedPositionStrategy,\n tooltipPosition: IdsTooltipPositionType,\n): FlexibleConnectedPositionStrategy {\n switch (tooltipPosition) {\n case IdsTooltipPosition.NORTH:\n return connectedTo.withPositions([\n connectedPosition.north,\n connectedPosition.northwest,\n connectedPosition.northeast,\n connectedPosition.south,\n connectedPosition.southwest,\n connectedPosition.southeast,\n ]);\n case IdsTooltipPosition.NORTHEAST:\n return connectedTo.withPositions([\n connectedPosition.northeast,\n connectedPosition.southeast,\n connectedPosition.northwest,\n connectedPosition.southwest,\n ]);\n case IdsTooltipPosition.EAST:\n return connectedTo.withPositions([\n connectedPosition.east,\n connectedPosition.northeast,\n connectedPosition.southeast,\n connectedPosition.west,\n connectedPosition.northwest,\n connectedPosition.southwest,\n ]);\n case IdsTooltipPosition.SOUTHEAST:\n return connectedTo.withPositions([\n connectedPosition.southeast,\n connectedPosition.southwest,\n connectedPosition.northeast,\n connectedPosition.northwest,\n ]);\n case IdsTooltipPosition.SOUTH:\n return connectedTo.withPositions([\n connectedPosition.south,\n connectedPosition.southwest,\n connectedPosition.southeast,\n connectedPosition.north,\n connectedPosition.northwest,\n connectedPosition.northeast,\n ]);\n case IdsTooltipPosition.SOUTHWEST:\n return connectedTo.withPositions([\n connectedPosition.southwest,\n connectedPosition.northwest,\n connectedPosition.southeast,\n connectedPosition.northeast,\n ]);\n case IdsTooltipPosition.WEST:\n return connectedTo.withPositions([\n connectedPosition.west,\n connectedPosition.northwest,\n connectedPosition.southwest,\n connectedPosition.east,\n connectedPosition.northeast,\n connectedPosition.southeast,\n ]);\n case IdsTooltipPosition.NORTHWEST:\n return connectedTo.withPositions([\n connectedPosition.northwest,\n connectedPosition.southwest,\n connectedPosition.northeast,\n connectedPosition.southeast,\n ]);\n }\n}\n\nconst connectedPosition: Record<IdsTooltipPositionType, ConnectedPosition> = {\n north: {\n originX: 'center',\n originY: 'top',\n overlayX: 'center',\n overlayY: 'bottom',\n },\n northeast: {\n originX: 'end',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n },\n east: {\n originX: 'end',\n originY: 'center',\n overlayX: 'start',\n overlayY: 'center',\n },\n southeast: {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n },\n south: {\n originX: 'center',\n originY: 'bottom',\n overlayX: 'center',\n overlayY: 'top',\n },\n southwest: {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top',\n },\n west: {\n originX: 'start',\n originY: 'center',\n overlayX: 'end',\n overlayY: 'center',\n },\n northwest: {\n originX: 'start',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'bottom',\n },\n};\n","import { IdsTooltipPositionType } from './types/tooltip-position.type';\nimport { IdsTooltipVariantType } from './types/tooltip-variant.type';\nimport { IdsTooltipTextAlign } from './types/tooltip.type';\n\nimport { ChangeDetectionStrategy, Component, computed, input, OnDestroy, ViewEncapsulation } from '@angular/core';\nimport { IdsSizeType, ComponentBase } from '@i-cell/ids-angular/core';\nimport { Observable, Subject } from 'rxjs';\n\n@Component({\n selector: 'ids-tooltip',\n imports: [],\n templateUrl: './tooltip.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '(mouseenter)': '_handleMouseEnter()',\n '(mouseleave)': '_handleMouseLeave($event)',\n 'aria-hidden': 'true',\n '[class]': 'tooltipClass()',\n },\n})\nexport class IdsTooltipComponent extends ComponentBase implements OnDestroy {\n protected override get _hostName(): string {\n return 'tooltip';\n }\n\n private readonly _onHide = new Subject<void>();\n\n public message = input<string>();\n public position = input<IdsTooltipPositionType>();\n public size = input<IdsSizeType>();\n public variant = input<IdsTooltipVariantType>();\n public textAlign = input<IdsTooltipTextAlign>();\n public mouseLeaveHideDelay = input<number>(0);\n public tooltipClass = input<string>();\n public showPointer = input<boolean>();\n\n public triggerElement?: HTMLElement;\n private _hideTimeout?: ReturnType<typeof setTimeout>;\n\n protected _hostClasses = computed(() => this._getHostClasses([\n this.size(),\n this.variant(),\n [\n 'position',\n this.position(),\n ],\n [\n 'text-align',\n this.textAlign(),\n ],\n this.showPointer() ? 'pointered' : null,\n ]));\n\n public get isHideTimerTicking(): boolean {\n return Boolean(this._hideTimeout);\n }\n\n public hide(delay: number): void {\n this._hideTimeout = setTimeout(() => {\n this._hideTimeout = undefined;\n this._onHide.next();\n }, delay);\n }\n\n public afterHidden(): Observable<void> {\n return this._onHide;\n }\n\n public abortHide(): void {\n clearTimeout(this._hideTimeout);\n this._hideTimeout = undefined;\n }\n\n private _handleMouseEnter(): void {\n if (this._hideTimeout) {\n this.abortHide();\n }\n }\n\n private _handleMouseLeave({ relatedTarget }: MouseEvent): void {\n if (!relatedTarget || !this.triggerElement?.contains(relatedTarget as Node)) {\n this.hide(this.mouseLeaveHideDelay());\n }\n }\n\n public ngOnDestroy(): void {\n this._onHide.complete();\n }\n}\n","<div class=\"ids-tooltip__content\">\n <span>{{ message() }}</span>\n</div>\n","import { IdsTooltipPosition, IdsTooltipPositionType } from '../types/tooltip-position.type';\n\nimport { ConnectionPositionPair } from '@angular/cdk/overlay';\n\nexport function connectedPositionPairToTooltipPosition(positionPair: ConnectionPositionPair): IdsTooltipPositionType {\n const { originX, originY, overlayX, overlayY } = positionPair;\n\n if (\n originX=== 'center' &&\n originY === 'top' &&\n overlayX === 'center' &&\n overlayY === 'bottom'\n ) {\n return IdsTooltipPosition.NORTH;\n }\n if (\n originX === 'end' &&\n originY === 'top' &&\n overlayX === 'start' &&\n overlayY === 'bottom'\n ) {\n return IdsTooltipPosition.NORTHEAST;\n }\n if (\n originX === 'end' &&\n originY === 'center' &&\n overlayX === 'start' &&\n overlayY === 'center'\n ) {\n return IdsTooltipPosition.EAST;\n }\n if (\n originX === 'end' &&\n originY === 'bottom' &&\n overlayX === 'start' &&\n overlayY === 'top'\n ) {\n return IdsTooltipPosition.SOUTHEAST;\n }\n if (\n originX === 'center' &&\n originY === 'bottom' &&\n overlayX === 'center' &&\n overlayY === 'top'\n ) {\n return IdsTooltipPosition.SOUTH;\n }\n if (\n originX === 'start' &&\n originY === 'bottom' &&\n overlayX === 'end' &&\n overlayY === 'top'\n ) {\n return IdsTooltipPosition.SOUTHWEST;\n }\n if (\n originX === 'start' &&\n originY === 'center' &&\n overlayX === 'end' &&\n overlayY === 'center'\n ) {\n return IdsTooltipPosition.WEST;\n }\n if (\n originX === 'start' &&\n originY === 'top' &&\n overlayX === 'end' &&\n overlayY === 'bottom'\n ) {\n return IdsTooltipPosition.NORTHWEST;\n }\n\n return IdsTooltipPosition.EAST;\n}\n","import { IDS_TOOLTIP_DEFAULT_CONFIG, IDS_TOOLTIP_DEFAULT_CONFIG_FACTORY, IdsTooltipDefaultConfig } from './tooltip-defaults';\nimport { setTooltipFlexibleConnectedPositionStrategy } from './tooltip-position-strategies';\nimport { IdsTooltipComponent } from './tooltip.component';\nimport { IdsTooltipPositionType } from './types/tooltip-position.type';\nimport { IdsTooltipVariantType } from './types/tooltip-variant.type';\nimport { IdsTooltipTextAlign, IdsTooltipTouchGestures } from './types/tooltip.type';\nimport { connectedPositionPairToTooltipPosition } from './utils/tooltip-converters';\n\nimport { FocusMonitor } from '@angular/cdk/a11y';\nimport { hasModifierKey } from '@angular/cdk/keycodes';\nimport { ConnectionPositionPair, FlexibleConnectedPositionStrategy, Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { normalizePassiveListenerOptions, Platform } from '@angular/cdk/platform';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { ScrollDispatcher } from '@angular/cdk/scrolling';\nimport { DOCUMENT } from '@angular/common';\nimport { AfterViewInit, ComponentRef, computed, Directive, effect, ElementRef, inject, input, NgZone, OnDestroy, signal, ViewContainerRef } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { coerceStringAttribute, DirectiveBaseWithDefaults, IdsSizeType } from '@i-cell/ids-angular/core';\n\nconst defaultConfig = IDS_TOOLTIP_DEFAULT_CONFIG_FACTORY();\nconst passiveListenerOptions = normalizePassiveListenerOptions({ passive: true });\n\n@Directive({\n selector: '[idsTooltip]',\n standalone: true,\n})\nexport class IdsTooltipDirective extends DirectiveBaseWithDefaults<IdsTooltipDefaultConfig> implements AfterViewInit, OnDestroy {\n protected override get _hostName(): string {\n return 'tooltip-trigger';\n }\n\n private readonly _focusMonitor = inject(FocusMonitor);\n private readonly _platform = inject(Platform);\n private readonly _ngZone = inject(NgZone);\n private readonly _elementRef: ElementRef<HTMLElement> = inject(ElementRef<HTMLElement>);\n private readonly _viewContainerRef = inject(ViewContainerRef);\n private readonly _scrollDispatcher = inject(ScrollDispatcher);\n private readonly _overlay = inject(Overlay);\n private readonly _document = inject(DOCUMENT) as Document;\n protected readonly _defaultConfig = this._getDefaultConfig(defaultConfig, IDS_TOOLTIP_DEFAULT_CONFIG);\n\n private readonly _passiveListeners: (readonly [string, EventListenerOrEventListenerObject])[] = [];\n\n private _overlayRef: OverlayRef | null = null;\n private _portal?: ComponentPortal<IdsTooltipComponent>;\n private _componentRef?: ComponentRef<IdsTooltipComponent> | null;\n private _tooltipInstance: IdsTooltipComponent | null = null;\n private _touchstartTimeout?: ReturnType<typeof setTimeout>;\n private _showTimeout?: ReturnType<typeof setTimeout>;\n private _pointerExitEventsInitialized = false;\n private _viewportMargin = this._defaultConfig.viewPortMargin;\n private _currentPosition = signal<IdsTooltipPositionType | null>(null);\n\n public message = input<string, string>('', { alias: 'idsTooltip', transform: coerceStringAttribute });\n public position = input<IdsTooltipPositionType>(this._defaultConfig.position, { alias: 'idsTooltipPosition' });\n public size = input<IdsSizeType>(this._defaultConfig.size, { alias: 'idsTooltipSize' });\n public variant = input<IdsTooltipVariantType>(this._defaultConfig.variant, { alias: 'idsTooltipVariant' });\n public showDelay = input<number>(this._defaultConfig.showDelay, { alias: 'idsTooltipShowDelay' });\n public hideDelay = input<number>(this._defaultConfig.hideDelay, { alias: 'idsTooltipHideDelay' });\n public disabled = input<boolean>(false, { alias: 'idsTooltipDisabled' });\n public touchGestures = input<IdsTooltipTouchGestures>('auto', { alias: 'idsTooltipTouchGestures' });\n public textAlign = input<IdsTooltipTextAlign>('auto', { alias: 'idsTooltipTextAlign' });\n public tooltipClass = input<string | undefined>(undefined, { alias: 'idsTooltipClass' });\n public showPointer = input<boolean>(this._defaultConfig.showPointer, { alias: 'idsTooltipShowPointer' });\n public ignoreClipped = input<boolean>(false, { alias: 'idsTooltipIgnoreClipped' });\n\n protected _hostClasses = computed(() => this._getHostClasses([]));\n\n private _tooltipClassEffect = effect(() => {\n this._setTooltipInputs(\n this.message(),\n this._currentPosition() ?? this.position(),\n this.size(),\n this.variant(),\n this.textAlign(),\n this.hideDelay(),\n this.tooltipClass(),\n this.showPointer(),\n );\n });\n\n public ngAfterViewInit(): void {\n this._setupPointerEnterEventsIfNeeded();\n\n this._focusMonitor\n .monitor(this._elementRef)\n .pipe(takeUntilDestroyed(this._destroyRef))\n .subscribe((origin) => {\n if (!origin) {\n this._ngZone.run(() => this.hide(0));\n } else if (origin === 'keyboard') {\n this._ngZone.run(() => this.show());\n }\n });\n }\n\n public show(): void {\n if (this.disabled() || !this.message() || this._tooltipInstance) {\n this._tooltipInstance?.abortHide();\n return;\n }\n\n const overlayRef = this._createOverlay();\n this._portal =\n this._portal || new ComponentPortal(IdsTooltipComponent, this._viewContainerRef);\n this._componentRef = overlayRef.attach(this._portal);\n this._tooltipInstance = this._componentRef.instance;\n const instance = this._tooltipInstance;\n instance.triggerElement = this._elementRef.nativeElement;\n this._setTooltipInputs(\n this.message(),\n this._currentPosition() ?? this.position(),\n this.size(),\n this.variant(),\n this.textAlign(),\n this.hideDelay(),\n this.tooltipClass(),\n this.showPointer(),\n );\n instance\n .afterHidden()\n .pipe(takeUntilDestroyed(this._destroyRef))\n .subscribe(() => {\n this._detach();\n });\n }\n\n public hide(delay: number = this.hideDelay()): void {\n if (this._showTimeout) {\n clearTimeout(this._showTimeout);\n this._showTimeout = undefined;\n return;\n }\n\n const instance = this._tooltipInstance;\n if (instance?.isHideTimerTicking) {\n return;\n }\n\n if (instance) {\n instance.hide(delay);\n }\n }\n\n public toggle(): void {\n this._tooltipInstance ? this.hide() : this.show();\n }\n\n private _createOverlay(): OverlayRef {\n if (this._overlayRef) {\n this._detach();\n }\n\n const scrollableAncestors = this._scrollDispatcher.getAncestorScrollContainers(\n this._elementRef,\n );\n\n const strategy = this._overlay\n .position()\n .flexibleConnectedTo(this._elementRef)\n .withFlexibleDimensions(false)\n .withViewportMargin(this._viewportMargin)\n .withScrollableContainers(scrollableAncestors);\n\n strategy.positionChanges.pipe(takeUntilDestroyed(this._destroyRef)).subscribe((change) => {\n this._updateCurrentPositionClass(change.connectionPair);\n\n if (!this.ignoreClipped() &&\n change.scrollableViewProperties.isOverlayClipped &&\n this._tooltipInstance\n ) {\n this._ngZone.run(() => this.hide(0));\n }\n });\n\n this._overlayRef = this._overlay.create({\n positionStrategy: strategy,\n panelClass: 'ids-tooltip-panel',\n scrollStrategy: this._overlay.scrollStrategies.reposition({ scrollThrottle: this._defaultConfig.scrollDebounceTime }),\n });\n\n this._updatePosition(this._overlayRef);\n\n this._overlayRef\n .detachments()\n .pipe(takeUntilDestroyed(this._destroyRef))\n .subscribe(() => this._detach());\n\n this._overlayRef\n .outsidePointerEvents()\n .pipe(takeUntilDestroyed(this._destroyRef))\n .subscribe(() => this._tooltipInstance?.hide(0));\n\n this._overlayRef\n .keydownEvents()\n .pipe(takeUntilDestroyed(this._destroyRef))\n .subscribe((event) => {\n if (this._tooltipInstance && event.key === 'Escape' && !hasModifierKey(event)) {\n event.preventDefault();\n event.stopPropagation();\n this._ngZone.run(() => this.hide(0));\n }\n });\n\n return this._overlayRef;\n }\n\n private _detach(): void {\n if (this._overlayRef && this._overlayRef.hasAttached()) {\n this._overlayRef.detach();\n }\n this._componentRef?.destroy();\n this._tooltipInstance = null;\n }\n\n private _updatePosition(overlayRef: OverlayRef): void {\n const position = overlayRef.getConfig().positionStrategy as FlexibleConnectedPositionStrategy;\n setTooltipFlexibleConnectedPositionStrategy(position, this.position());\n }\n\n private _updateCurrentPositionClass(connectionPair: ConnectionPositionPair): void {\n const newPosition: IdsTooltipPositionType = connectedPositionPairToTooltipPosition(connectionPair);\n\n if (newPosition !== this._currentPosition()) {\n const overlayRef = this._overlayRef;\n\n if (overlayRef) {\n const positionClassPrefix = 'is-tooltip-panel-position-';\n overlayRef.removePanelClass(positionClassPrefix + this._currentPosition());\n overlayRef.addPanelClass(positionClassPrefix + newPosition);\n }\n\n this._currentPosition.set(newPosition);\n }\n }\n\n private _setTooltipInputs(\n message: string,\n position: IdsTooltipPositionType,\n size: IdsSizeType,\n variant: IdsTooltipVariantType,\n textAlign: IdsTooltipTextAlign,\n hideDelay: number,\n tooltipClass: string | undefined,\n showPointer: boolean,\n ): void {\n if (this._tooltipInstance) {\n this._componentRef?.setInput('message', message);\n this._componentRef?.setInput('position', position);\n this._componentRef?.setInput('size', size);\n this._componentRef?.setInput('variant', variant);\n this._componentRef?.setInput('textAlign', textAlign);\n this._componentRef?.setInput('mouseLeaveHideDelay', hideDelay);\n this._componentRef?.setInput('tooltipClass', tooltipClass);\n this._componentRef?.setInput('showPointer', showPointer);\n }\n }\n\n private _setupPointerEnterEventsIfNeeded(): void {\n if (!this.message() || this._passiveListeners.length) {\n return;\n }\n\n if (this._platformSupportsMouseEvents()) {\n this._passiveListeners.push([\n 'mouseenter',\n (): void => {\n this._setupPointerExitEventsIfNeeded();\n this._showTimeout = setTimeout(() => {\n this._showTimeout = undefined;\n this.show();\n }, this.showDelay());\n },\n ]);\n } else if (this.touchGestures() !== 'off') {\n this._disableNativeGesturesIfNecessary();\n\n this._passiveListeners.push([\n 'touchstart',\n (): void => {\n this._setupPointerExitEventsIfNeeded();\n clearTimeout(this._touchstartTimeout);\n\n this._touchstartTimeout = setTimeout(\n () => this.show(),\n this._defaultConfig.touchLongPressShowDelay,\n );\n },\n ]);\n }\n\n this._addListeners(this._passiveListeners);\n }\n\n private _wheelListener(event: WheelEvent): void {\n if (this._tooltipInstance) {\n const elementUnderPointer = this._document.elementFromPoint(event.clientX, event.clientY);\n const element = this._elementRef.nativeElement;\n\n if (elementUnderPointer !== element && !element.contains(elementUnderPointer)) {\n this.hide();\n }\n }\n }\n\n private _setupPointerExitEventsIfNeeded(): void {\n if (this._pointerExitEventsInitialized) {\n return;\n }\n this._pointerExitEventsInitialized = true;\n\n const exitListeners: (readonly [string, EventListenerOrEventListenerObject])[] = [];\n if (this._platformSupportsMouseEvents()) {\n exitListeners.push(\n [\n 'mouseleave',\n (): void => {\n this.hide();\n },\n ],\n [\n 'wheel',\n (event): void => {\n this._wheelListener(event as WheelEvent);\n },\n ],\n );\n } else if (this.touchGestures() !== 'off') {\n this._disableNativeGesturesIfNecessary();\n const touchendListener = (): void => {\n clearTimeout(this._touchstartTimeout);\n this.hide(this._defaultConfig.touchendHideDelay);\n };\n\n exitListeners.push([\n 'touchend',\n touchendListener,\n ], [\n 'touchcancel',\n touchendListener,\n ]);\n }\n\n this._addListeners(exitListeners);\n this._passiveListeners.push(...exitListeners);\n }\n\n private _addListeners(listeners: (readonly [string, EventListenerOrEventListenerObject])[]): void {\n listeners.forEach(([\n event,\n listener,\n ]) => {\n this._elementRef.nativeElement.addEventListener(event, listener, passiveListenerOptions);\n });\n }\n\n private _disableNativeGesturesIfNecessary(): void {\n const gestures = this.touchGestures();\n\n if (gestures !== 'off') {\n const element = this._elementRef.nativeElement;\n const style = element.style;\n\n if (gestures === 'on' || (element.nodeName !== 'INPUT' && element.nodeName !== 'TEXTAREA')) {\n style.userSelect = 'none';\n }\n\n style.touchAction = 'none';\n }\n }\n\n private _platformSupportsMouseEvents(): boolean {\n return !this._platform.IOS && !this._platform.ANDROID;\n }\n\n public ngOnDestroy(): void {\n const nativeElement = this._elementRef.nativeElement;\n\n clearTimeout(this._touchstartTimeout);\n\n if (this._componentRef) {\n this._tooltipInstance = null;\n }\n\n this._passiveListeners.forEach(([\n event,\n listener,\n ]) => {\n nativeElement.removeEventListener(event, listener, passiveListenerOptions);\n });\n this._passiveListeners.length = 0;\n\n this._focusMonitor.stopMonitoring(nativeElement);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
+ import { ConnectedPosition, CdkOverlayOrigin } from '@angular/cdk/overlay';
1
2
  import * as _angular_core from '@angular/core';
2
3
  import { InjectionToken } from '@angular/core';
3
4
  import { IdsSizeType, ComponentBaseWithDefaults } from '@i-cell/ids-angular/core';
4
- import { CdkOverlayOrigin } from '@angular/cdk/overlay';
5
5
 
6
6
  declare const IdsOverlayPanelAppearance: {
7
7
  readonly FILLED: "filled";
@@ -20,6 +20,7 @@ interface IdsOverlayPanelDefaultConfig {
20
20
  appearance?: IdsOverlayPanelAppearanceType;
21
21
  size?: IdsSizeType;
22
22
  variant?: IdsOverlayPanelVariantType;
23
+ positions?: ConnectedPosition[];
23
24
  }
24
25
  declare const IDS_OVERLAY_PANEL_DEFAULT_CONFIG: InjectionToken<IdsOverlayPanelDefaultConfig>;
25
26
  declare function IDS_OVERLAY_PANEL_DEFAULT_CONFIG_FACTORY(): Required<IdsOverlayPanelDefaultConfig>;
@@ -30,17 +31,20 @@ declare class IdsOverlayPanelComponent extends ComponentBaseWithDefaults<IdsOver
30
31
  open: _angular_core.InputSignal<boolean>;
31
32
  origin: _angular_core.InputSignal<CdkOverlayOrigin>;
32
33
  closed: _angular_core.OutputEmitterRef<void>;
34
+ positions: _angular_core.InputSignal<ConnectedPosition[]>;
33
35
  appearance: _angular_core.InputSignal<IdsOverlayPanelAppearanceType>;
34
36
  size: _angular_core.InputSignal<IdsSizeType>;
35
37
  variant: _angular_core.InputSignal<IdsOverlayPanelVariantType>;
36
38
  private _cdkMenu;
39
+ private _focusTrap;
37
40
  protected _hasCdkMenu: _angular_core.Signal<boolean>;
41
+ constructor();
38
42
  protected _handleOverlayOutsideClick(): void;
39
43
  protected _handleDetach(): void;
40
44
  protected _panelClasses: _angular_core.Signal<string>;
41
45
  protected _hostClasses: _angular_core.Signal<string>;
42
46
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<IdsOverlayPanelComponent, never>;
43
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<IdsOverlayPanelComponent, "ids-overlay-panel", never, { "open": { "alias": "open"; "required": false; "isSignal": true; }; "origin": { "alias": "origin"; "required": true; "isSignal": true; }; "appearance": { "alias": "appearance"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; }, { "closed": "closed"; }, ["_cdkMenu"], ["*"], true, never>;
47
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<IdsOverlayPanelComponent, "ids-overlay-panel", never, { "open": { "alias": "open"; "required": false; "isSignal": true; }; "origin": { "alias": "origin"; "required": true; "isSignal": true; }; "positions": { "alias": "positions"; "required": false; "isSignal": true; }; "appearance": { "alias": "appearance"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; }, { "closed": "closed"; }, ["_cdkMenu"], ["*"], true, never>;
44
48
  }
45
49
 
46
50
  export { IDS_OVERLAY_PANEL_DEFAULT_CONFIG, IDS_OVERLAY_PANEL_DEFAULT_CONFIG_FACTORY, IdsOverlayPanelAppearance, IdsOverlayPanelComponent, IdsOverlayPanelVariant };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@i-cell/ids-angular",
3
- "version": "0.2.12",
3
+ "version": "0.2.14",
4
4
  "private": false,
5
5
  "description": "i-Cell Design System UI Kit components for Angular",
6
6
  "publishConfig": {
@@ -48,6 +48,10 @@
48
48
  "types": "./index.d.ts",
49
49
  "default": "./fesm2022/i-cell-ids-angular.mjs"
50
50
  },
51
+ "./avatar": {
52
+ "types": "./avatar/index.d.ts",
53
+ "default": "./fesm2022/i-cell-ids-angular-avatar.mjs"
54
+ },
51
55
  "./accordion": {
52
56
  "types": "./accordion/index.d.ts",
53
57
  "default": "./fesm2022/i-cell-ids-angular-accordion.mjs"
@@ -56,10 +60,6 @@
56
60
  "types": "./badge/index.d.ts",
57
61
  "default": "./fesm2022/i-cell-ids-angular-badge.mjs"
58
62
  },
59
- "./avatar": {
60
- "types": "./avatar/index.d.ts",
61
- "default": "./fesm2022/i-cell-ids-angular-avatar.mjs"
62
- },
63
63
  "./breadcrumb": {
64
64
  "types": "./breadcrumb/index.d.ts",
65
65
  "default": "./fesm2022/i-cell-ids-angular-breadcrumb.mjs"
@@ -76,14 +76,14 @@
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"
86
82
  },
83
+ "./chip": {
84
+ "types": "./chip/index.d.ts",
85
+ "default": "./fesm2022/i-cell-ids-angular-chip.mjs"
86
+ },
87
87
  "./datepicker": {
88
88
  "types": "./datepicker/index.d.ts",
89
89
  "default": "./fesm2022/i-cell-ids-angular-datepicker.mjs"
@@ -140,14 +140,14 @@
140
140
  "types": "./select/index.d.ts",
141
141
  "default": "./fesm2022/i-cell-ids-angular-select.mjs"
142
142
  },
143
- "./side-nav": {
144
- "types": "./side-nav/index.d.ts",
145
- "default": "./fesm2022/i-cell-ids-angular-side-nav.mjs"
146
- },
147
143
  "./side-sheet": {
148
144
  "types": "./side-sheet/index.d.ts",
149
145
  "default": "./fesm2022/i-cell-ids-angular-side-sheet.mjs"
150
146
  },
147
+ "./side-nav": {
148
+ "types": "./side-nav/index.d.ts",
149
+ "default": "./fesm2022/i-cell-ids-angular-side-nav.mjs"
150
+ },
151
151
  "./snackbar": {
152
152
  "types": "./snackbar/index.d.ts",
153
153
  "default": "./fesm2022/i-cell-ids-angular-snackbar.mjs"
@@ -160,14 +160,14 @@
160
160
  "types": "./switch/index.d.ts",
161
161
  "default": "./fesm2022/i-cell-ids-angular-switch.mjs"
162
162
  },
163
- "./tab": {
164
- "types": "./tab/index.d.ts",
165
- "default": "./fesm2022/i-cell-ids-angular-tab.mjs"
166
- },
167
163
  "./table": {
168
164
  "types": "./table/index.d.ts",
169
165
  "default": "./fesm2022/i-cell-ids-angular-table.mjs"
170
166
  },
167
+ "./tab": {
168
+ "types": "./tab/index.d.ts",
169
+ "default": "./fesm2022/i-cell-ids-angular-tab.mjs"
170
+ },
171
171
  "./tag": {
172
172
  "types": "./tag/index.d.ts",
173
173
  "default": "./fesm2022/i-cell-ids-angular-tag.mjs"
package/select/index.d.ts CHANGED
@@ -90,8 +90,8 @@ declare class IdsSelectComponent extends IdsFormFieldControl<IdsSelectDefaultCon
90
90
  private _highlightCorrectOption;
91
91
  isOptionPreSelectedByValue(optionValue: unknown): boolean;
92
92
  private _onFocus;
93
- private _onBlur;
94
- private _getAriaActiveDescendant;
93
+ protected _onBlur(): void;
94
+ protected _getAriaActiveDescendant(): string | null;
95
95
  focus(options?: FocusOptions): void;
96
96
  onContainerClick: () => void;
97
97
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<IdsSelectComponent, never>;