@i-cell/ids-angular 0.2.17 → 0.2.19

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,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { InjectionToken, input, output, linkedSignal, computed, contentChild, viewChild, effect, untracked, ChangeDetectionStrategy, ViewEncapsulation, Component } from '@angular/core';
2
+ import { InjectionToken, model, input, computed, contentChild, viewChild, effect, untracked, 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
5
  import { CdkTrapFocus, A11yModule } from '@angular/cdk/a11y';
@@ -64,22 +64,17 @@ class IdsOverlayPanelComponent extends ComponentBaseWithDefaults {
64
64
  get _hostName() {
65
65
  return 'overlay-panel';
66
66
  }
67
- get isOpen() {
68
- return this._open();
69
- }
70
67
  constructor() {
71
68
  super();
72
69
  this._defaultConfig = this._getDefaultConfig(defaultConfig, IDS_OVERLAY_PANEL_DEFAULT_CONFIG);
73
- this.open = input(false, ...(ngDevMode ? [{ debugName: "open" }] : []));
70
+ this.open = model(false, ...(ngDevMode ? [{ debugName: "open" }] : []));
74
71
  this.origin = input.required(...(ngDevMode ? [{ debugName: "origin" }] : []));
75
- this.closed = output();
76
72
  this.positions = input(this._defaultConfig.positions, ...(ngDevMode ? [{ debugName: "positions" }] : []));
77
73
  this.appearance = input(this._defaultConfig.appearance, ...(ngDevMode ? [{ debugName: "appearance" }] : []));
78
74
  this.size = input(this._defaultConfig.size, ...(ngDevMode ? [{ debugName: "size" }] : []));
79
75
  this.variant = input(this._defaultConfig.variant, ...(ngDevMode ? [{ debugName: "variant" }] : []));
80
76
  this.panelClasses = input('', ...(ngDevMode ? [{ debugName: "panelClasses" }] : []));
81
77
  this.width = input(...(ngDevMode ? [undefined, { debugName: "width" }] : []));
82
- this._open = linkedSignal(() => this.open());
83
78
  this._hasCdkMenu = computed(() => !!this._cdkMenu(), ...(ngDevMode ? [{ debugName: "_hasCdkMenu" }] : []));
84
79
  this._cdkMenu = contentChild(CdkMenu, ...(ngDevMode ? [{ debugName: "_cdkMenu", descendants: true }] : [{ descendants: true }]));
85
80
  this._overlayRef = viewChild(CdkConnectedOverlay, ...(ngDevMode ? [{ debugName: "_overlayRef" }] : []));
@@ -108,19 +103,15 @@ class IdsOverlayPanelComponent extends ComponentBaseWithDefaults {
108
103
  });
109
104
  }
110
105
  toggle() {
111
- this._open.set(!this._open());
106
+ this.open.update((open) => !open);
112
107
  }
113
- _handleOverlayOutsideClick() {
114
- if (this._open()) {
115
- this._open.set(false);
116
- this.closed.emit();
108
+ _close() {
109
+ if (this.open()) {
110
+ this.open.set(false);
117
111
  }
118
112
  }
119
- _handleDetach() {
120
- this.closed.emit();
121
- }
122
113
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: IdsOverlayPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
123
- 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 }, panelClasses: { classPropertyName: "panelClasses", publicName: "panelClasses", isSignal: true, isRequired: false, transformFunction: null }, width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { closed: "closed" }, queries: [{ propertyName: "_cdkMenu", first: true, predicate: CdkMenu, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "_overlayRef", first: true, predicate: CdkConnectedOverlay, descendants: true, isSignal: true }, { 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(), _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 }); }
114
+ 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 }, panelClasses: { classPropertyName: "panelClasses", publicName: "panelClasses", isSignal: true, isRequired: false, transformFunction: null }, width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { open: "openChange" }, queries: [{ propertyName: "_cdkMenu", first: true, predicate: CdkMenu, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "_overlayRef", first: true, predicate: CdkConnectedOverlay, descendants: true, isSignal: true }, { 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)=\"_close()\"\n (detach)=\"_close()\"\n>\n <div\n cdkTrapFocus\n [ngClass]=\"[panelClasses(), _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 }); }
124
115
  }
125
116
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: IdsOverlayPanelComponent, decorators: [{
126
117
  type: Component,
@@ -128,7 +119,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImpor
128
119
  OverlayModule,
129
120
  A11yModule,
130
121
  NgClass,
131
- ], 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(), _panelClasses()]\"\n >\n <ng-content/>\n </div>\n</ng-template>\n" }]
122
+ ], 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)=\"_close()\"\n (detach)=\"_close()\"\n>\n <div\n cdkTrapFocus\n [ngClass]=\"[panelClasses(), _panelClasses()]\"\n >\n <ng-content/>\n </div>\n</ng-template>\n" }]
132
123
  }], ctorParameters: () => [] });
133
124
 
134
125
  /**
@@ -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-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, CdkConnectedOverlay, ConnectedPosition } from '@angular/cdk/overlay';\nimport { NgClass } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n input, output, computed, contentChild,\n ElementRef,\n viewChild,\n untracked,\n effect,\n linkedSignal,\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 | ElementRef>();\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 public panelClasses = input<string>('');\n public width = input<string | number>();\n\n protected _open = linkedSignal(() => this.open());\n protected _hasCdkMenu = computed(() => !!this._cdkMenu());\n\n private _cdkMenu = contentChild(CdkMenu, { descendants: true });\n private _overlayRef = viewChild(CdkConnectedOverlay);\n\n private _focusTrap = viewChild(CdkTrapFocus);\n\n public get isOpen(): boolean {\n return this._open();\n }\n\n constructor() {\n super();\n\n effect(() => {\n if (this._focusTrap()) {\n this._focusTrap()?.focusTrap.focusInitialElementWhenReady({ preventScroll: true });\n }\n });\n\n effect(() => {\n const overlayRef = this._overlayRef();\n const overlayWidth = this.width();\n\n // apply width after the overlay has been rendered\n untracked(() => {\n if (overlayRef && overlayWidth) {\n overlayRef.width = overlayWidth;\n }\n });\n });\n }\n\n public toggle(): void {\n this._open.set(!this._open());\n }\n\n protected _handleOverlayOutsideClick(): void {\n if (this._open()) {\n this._open.set(false);\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(), _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":";;;;;;;;;;AAAO,MAAM,yBAAyB,GAAG;AACvC,IAAA,MAAM,EAAE,QAAQ;AAChB,IAAA,QAAQ,EAAE,UAAU;AACpB,IAAA,QAAQ,EAAE,UAAU;;;ACHf,MAAM,sBAAsB,GAAG;AACpC,IAAA,OAAO,EAAE,SAAS;AAClB,IAAA,KAAK,EAAE,OAAO;;;ACAT,MAAM,yBAAyB,GAAwB;AAC5D,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;AACnB,KAAA;AACD,IAAA;AACE,QAAA,OAAO,EAAE,KAAK;AACd,QAAA,OAAO,EAAE,KAAK;AACd,QAAA,QAAQ,EAAE,KAAK;AACf,QAAA,QAAQ,EAAE,QAAQ;AACnB,KAAA;CACF;;MCZY,gCAAgC,GAAG,IAAI,cAAc,CAChE,kCAAkC,EAClC;AACE,IAAA,UAAU,EAAE,MAAM;AAClB,IAAA,OAAO,EAAE,wCAAwC;AAClD,CAAA;SAGa,wCAAwC,GAAA;IACtD,OAAO;QACL,UAAU,EAAE,yBAAyB,CAAC,MAAM;QAC5C,IAAI,EAAE,OAAO,CAAC,OAAO;QACrB,OAAO,EAAE,sBAAsB,CAAC,KAAK;AACrC,QAAA,SAAS,EAAE,yBAAyB;KACrC;AACH;;ACLA,MAAM,aAAa,GAAG,wCAAwC,EAAE;AAc1D,MAAO,wBAAyB,SAAQ,yBAAuD,CAAA;AACnG,IAAA,IAAuB,SAAS,GAAA;AAC9B,QAAA,OAAO,eAAe;IACxB;AAuBA,IAAA,IAAW,MAAM,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,KAAK,EAAE;IACrB;AAEA,IAAA,WAAA,GAAA;AACE,QAAA,KAAK,EAAE;QA1BU,IAAA,CAAA,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,gCAAgC,CAAC;AAEpG,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAAU,KAAK,gDAAC;AAC5B,QAAA,IAAA,CAAA,MAAM,GAAG,KAAK,CAAC,QAAQ,iDAAiC;QACxD,IAAA,CAAA,MAAM,GAAG,MAAM,EAAQ;QACvB,IAAA,CAAA,SAAS,GAAG,KAAK,CAAsB,IAAI,CAAC,cAAc,CAAC,SAAS,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,WAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAC;QAErE,IAAA,CAAA,UAAU,GAAG,KAAK,CAAgC,IAAI,CAAC,cAAc,CAAC,UAAU,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,YAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAC;QACjF,IAAA,CAAA,IAAI,GAAG,KAAK,CAAc,IAAI,CAAC,cAAc,CAAC,IAAI,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAC;QACnD,IAAA,CAAA,OAAO,GAAG,KAAK,CAA6B,IAAI,CAAC,cAAc,CAAC,OAAO,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,SAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAC;AACxE,QAAA,IAAA,CAAA,YAAY,GAAG,KAAK,CAAS,EAAE,wDAAC;QAChC,IAAA,CAAA,KAAK,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,OAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAmB;QAE7B,IAAA,CAAA,KAAK,GAAG,YAAY,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;AACvC,QAAA,IAAA,CAAA,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,uDAAC;AAEjD,QAAA,IAAA,CAAA,QAAQ,GAAG,YAAY,CAAC,OAAO,4CAAI,WAAW,EAAE,IAAI,EAAA,CAAA,GAAA,CAAnB,EAAE,WAAW,EAAE,IAAI,EAAE,GAAC;AACvD,QAAA,IAAA,CAAA,WAAW,GAAG,SAAS,CAAC,mBAAmB,uDAAC;AAE5C,QAAA,IAAA,CAAA,UAAU,GAAG,SAAS,CAAC,YAAY,sDAAC;QA2ClC,IAAA,CAAA,aAAa,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,eAAe,CAAC;YAC5D,IAAI,CAAC,UAAU,EAAE;YACjB,IAAI,CAAC,IAAI,EAAE;YACX,IAAI,CAAC,OAAO,EAAE;YACd,IAAI,CAAC,WAAW,EAAE,GAAG,UAAU,GAAG,IAAI;AACvC,SAAA,CAAC,yDACD;QAES,IAAA,CAAA,YAAY,GAAG,QAAQ,CAAC,MAAM,EAAE,wDAAC;QA1CzC,MAAM,CAAC,MAAK;AACV,YAAA,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE;AACrB,gBAAA,IAAI,CAAC,UAAU,EAAE,EAAE,SAAS,CAAC,4BAA4B,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;YACpF;AACF,QAAA,CAAC,CAAC;QAEF,MAAM,CAAC,MAAK;AACV,YAAA,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE;AACrC,YAAA,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,EAAE;;YAGjC,SAAS,CAAC,MAAK;AACb,gBAAA,IAAI,UAAU,IAAI,YAAY,EAAE;AAC9B,oBAAA,UAAU,CAAC,KAAK,GAAG,YAAY;gBACjC;AACF,YAAA,CAAC,CAAC;AACJ,QAAA,CAAC,CAAC;IACJ;IAEO,MAAM,GAAA;QACX,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;IAC/B;IAEU,0BAA0B,GAAA;AAClC,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE,EAAE;AAChB,YAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;AACrB,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;QACpB;IACF;IAEU,aAAa,GAAA;AACrB,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;IACpB;8GAjEW,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,wBAAwB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAqBH,OAAO,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,aAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EACP,mBAAmB,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAEpB,YAAY,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC/D7C,kcAgBA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDcI,aAAa,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,qEAAA,EAAA,MAAA,EAAA,CAAA,2BAAA,EAAA,8BAAA,EAAA,qCAAA,EAAA,4BAAA,EAAA,4BAAA,EAAA,0BAAA,EAAA,2BAAA,EAAA,6BAAA,EAAA,8BAAA,EAAA,kCAAA,EAAA,+BAAA,EAAA,mCAAA,EAAA,mCAAA,EAAA,yBAAA,EAAA,iCAAA,EAAA,sCAAA,EAAA,gCAAA,EAAA,iCAAA,EAAA,uCAAA,EAAA,kCAAA,EAAA,yBAAA,EAAA,wCAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,qBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACb,UAAU,0LACV,OAAO,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAOE,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAZpC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,mBAAmB,EAAA,OAAA,EACpB;wBACP,aAAa;wBACb,UAAU;wBACV,OAAO;qBACR,EAAA,aAAA,EAEc,iBAAiB,CAAC,IAAI,EAAA,eAAA,EACpB,uBAAuB,CAAC,MAAM,cACnC,IAAI,EAAA,QAAA,EAAA,kcAAA,EAAA;;;AErClB;;AAEG;;;;"}
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, CdkConnectedOverlay, ConnectedPosition } from '@angular/cdk/overlay';\nimport { NgClass } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n input, computed, contentChild,\n ElementRef,\n viewChild,\n untracked,\n effect,\n model,\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 = model<boolean>(false);\n public origin = input.required<CdkOverlayOrigin | ElementRef>();\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 public panelClasses = input<string>('');\n public width = input<string | number>();\n\n protected _hasCdkMenu = computed(() => !!this._cdkMenu());\n\n private _cdkMenu = contentChild(CdkMenu, { descendants: true });\n private _overlayRef = viewChild(CdkConnectedOverlay);\n\n private _focusTrap = viewChild(CdkTrapFocus);\n\n constructor() {\n super();\n\n effect(() => {\n if (this._focusTrap()) {\n this._focusTrap()?.focusTrap.focusInitialElementWhenReady({ preventScroll: true });\n }\n });\n\n effect(() => {\n const overlayRef = this._overlayRef();\n const overlayWidth = this.width();\n\n // apply width after the overlay has been rendered\n untracked(() => {\n if (overlayRef && overlayWidth) {\n overlayRef.width = overlayWidth;\n }\n });\n });\n }\n\n public toggle(): void {\n this.open.update((open) => !open);\n }\n\n protected _close(): void {\n if (this.open()) {\n this.open.set(false);\n }\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)=\"_close()\"\n (detach)=\"_close()\"\n>\n <div\n cdkTrapFocus\n [ngClass]=\"[panelClasses(), _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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"}
package/forms/index.d.ts CHANGED
@@ -1,11 +1,14 @@
1
1
  import * as _angular_forms from '@angular/forms';
2
- import { AbstractControl, FormGroupDirective, NgForm, NgControl, ControlEvent, ValidationErrors } from '@angular/forms';
3
- import { Subject } from 'rxjs';
2
+ import { AbstractControl, FormGroupDirective, NgForm, NgControl, ControlValueAccessor, ControlEvent, ValidationErrors } from '@angular/forms';
3
+ import { Subject, Observable } from 'rxjs';
4
4
  import * as _angular_core from '@angular/core';
5
- import { InjectionToken, Injector, ElementRef, Signal, AfterViewInit, OnInit } from '@angular/core';
5
+ import { InjectionToken, Signal, OnInit, Injector, ElementRef, AfterViewInit, OnDestroy, ResourceLoaderParams } from '@angular/core';
6
+ import * as _i_cell_ids_angular_forms from '@i-cell/ids-angular/forms';
6
7
  import * as _i_cell_ids_angular_core from '@i-cell/ids-angular/core';
7
8
  import { ComponentBase, IdsSizeType, ComponentBaseWithDefaults } from '@i-cell/ids-angular/core';
8
9
  import { FocusOrigin } from '@angular/cdk/a11y';
10
+ import { CdkOverlayOrigin } from '@angular/cdk/overlay';
11
+ import { IdsOverlayPanelComponent } from '@i-cell/ids-angular/overlay-panel';
9
12
 
10
13
  declare abstract class AbstractErrorStateMatcher {
11
14
  abstract isErrorState(control: AbstractControl | null, form: FormGroupDirective | NgForm | null): boolean;
@@ -49,11 +52,34 @@ declare class SuccessStateTracker {
49
52
  updateSuccessState(): void;
50
53
  }
51
54
 
52
- declare class IdsFieldsetRowComponent extends ComponentBase {
55
+ interface IdsAutocompleteDefaultConfig {
56
+ minChars?: number;
57
+ hintLoading: string;
58
+ hintNoResults: string;
59
+ hintMinChars: string;
60
+ hintMaxLength: string;
61
+ typeaheadDebounceInterval?: number;
62
+ }
63
+ declare const IDS_AUTOCOMPLETE_DEFAULT_CONFIG: InjectionToken<IdsAutocompleteDefaultConfig>;
64
+ declare function IDS_AUTOCOMPLETE_DEFAULT_CONFIG_FACTORY(): Required<IdsAutocompleteDefaultConfig>;
65
+
66
+ declare class IdsOptionGroupComponent extends ComponentBase {
53
67
  protected get _hostName(): string;
54
- protected _hostClasses: _angular_core.WritableSignal<string>;
55
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<IdsFieldsetRowComponent, never>;
56
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<IdsFieldsetRowComponent, "ids-fieldset-row", never, {}, {}, never, ["*"], true, never>;
68
+ private readonly _parent;
69
+ protected readonly _inert: boolean;
70
+ label: _angular_core.InputSignal<string | undefined>;
71
+ disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
72
+ protected readonly _labelId: _angular_core.Signal<string>;
73
+ protected readonly _hostClasses: _angular_core.Signal<string>;
74
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<IdsOptionGroupComponent, never>;
75
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<IdsOptionGroupComponent, "ids-option-group", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, {}, never, ["ids-option, ng-container"], true, never>;
76
+ }
77
+
78
+ declare class IdsOptionSelectionChange<T = unknown> {
79
+ source: IdsOptionComponent<T>;
80
+ selected: boolean;
81
+ isUserInput: boolean;
82
+ constructor(source: IdsOptionComponent<T>, selected: boolean, isUserInput?: boolean);
57
83
  }
58
84
 
59
85
  declare const IdsFormFieldVariant: {
@@ -62,30 +88,51 @@ declare const IdsFormFieldVariant: {
62
88
  };
63
89
  type IdsFormFieldVariantType = (typeof IdsFormFieldVariant)[keyof typeof IdsFormFieldVariant];
64
90
 
65
- interface IdsFieldsetDefaultConfig {
66
- size?: IdsSizeType;
67
- variant?: IdsFormFieldVariantType;
68
- }
69
- declare const IDS_FIELDSET_DEFAULT_CONFIG: InjectionToken<IdsFieldsetDefaultConfig>;
70
- declare function IDS_FIELDSET_DEFAULT_CONFIG_FACTORY(): Required<IdsFieldsetDefaultConfig>;
71
-
72
- declare class IdsFieldsetMessageDirective {
73
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<IdsFieldsetMessageDirective, never>;
74
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<IdsFieldsetMessageDirective, "[idsFieldsetMessage]", never, {}, {}, never, never, true, never>;
91
+ interface IdsPseudoCheckboxParent<T extends string> {
92
+ embeddedPseudoCheckboxSize: Signal<IdsSizeType>;
93
+ embeddedPseudoCheckboxVariant: Signal<T>;
75
94
  }
95
+ declare const IDS_PSEUDO_CHECKBOX_PARENT: InjectionToken<IdsPseudoCheckboxParent<string>>;
76
96
 
77
- declare class IdsFieldsetComponent extends ComponentBaseWithDefaults<IdsFieldsetDefaultConfig> {
97
+ declare class IdsOptionComponent<T = unknown> extends ComponentBase implements OnInit, IdsPseudoCheckboxParent<IdsFormFieldVariantType> {
78
98
  protected get _hostName(): string;
79
- protected readonly _defaultConfig: Required<IdsFieldsetDefaultConfig>;
80
- size: _angular_core.InputSignal<IdsSizeType>;
81
- variant: _angular_core.InputSignal<IdsFormFieldVariantType>;
82
- legend: _angular_core.InputSignal<string>;
83
- private _fieldsetMessage;
84
- protected _hasMessage: _angular_core.Signal<boolean>;
85
- protected _hostClasses: _angular_core.Signal<string>;
86
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<IdsFieldsetComponent, never>;
87
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<IdsFieldsetComponent, "fieldset[idsFieldset]", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "legend": { "alias": "legend"; "required": false; "isSignal": true; }; }, {}, ["_fieldsetMessage"], ["[idsFieldsetMessage]", "ids-fieldset-row"], true, never>;
99
+ private readonly _parent;
100
+ private readonly _element;
101
+ readonly group: IdsOptionGroupComponent | null;
102
+ private _textElement;
103
+ selected: _angular_core.WritableSignal<boolean>;
104
+ private _active;
105
+ size: _angular_core.Signal<_i_cell_ids_angular_core.IdsSizeType>;
106
+ variant: _angular_core.Signal<IdsFormFieldVariantType>;
107
+ value: _angular_core.InputSignal<T | undefined>;
108
+ explicitViewValue: _angular_core.InputSignal<string | null>;
109
+ disabledInput: _angular_core.InputSignalWithTransform<boolean, unknown>;
110
+ disabled: boolean;
111
+ protected _groupOrOptionIsDisabled: _angular_core.Signal<boolean>;
112
+ protected readonly _multiSelect: boolean;
113
+ onSelectionChange: _angular_core.OutputEmitterRef<IdsOptionSelectionChange<T>>;
114
+ viewValue: _angular_core.Signal<string>;
115
+ protected readonly _hostClasses: _angular_core.Signal<string>;
116
+ protected _pseudoCheckboxState: _angular_core.Signal<"unchecked" | "checked">;
117
+ embeddedPseudoCheckboxSize: _angular_core.Signal<_i_cell_ids_angular_core.IdsSizeType>;
118
+ embeddedPseudoCheckboxVariant: _angular_core.WritableSignal<"surface">;
119
+ constructor();
120
+ ngOnInit(): void;
121
+ protected _handleKeydown(event: KeyboardEvent): void;
122
+ selectViaInteraction(): void;
123
+ getHostElement(): HTMLElement;
124
+ select(emitEvent?: boolean): void;
125
+ deselect(emitEvent?: boolean): void;
126
+ focus(_origin?: FocusOrigin, options?: FocusOptions): void;
127
+ setActiveStyles(): void;
128
+ setInactiveStyles(): void;
129
+ getLabel(): string;
130
+ private _emitSelectionChangeEvent;
131
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<IdsOptionComponent<any>, never>;
132
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<IdsOptionComponent<any>, "ids-option", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "explicitViewValue": { "alias": "viewValue"; "required": false; "isSignal": true; }; "disabledInput": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "onSelectionChange": "onSelectionChange"; }, never, ["*"], true, never>;
88
133
  }
134
+ declare function _countGroupLabelsBeforeOption(optionIndex: number, options: Readonly<IdsOptionComponent[]>, optionGroups: Readonly<IdsOptionGroupComponent[]>): number;
135
+ declare function _getOptionScrollPosition(optionOffset: number, optionHeight: number, currentScrollPosition: number, panelHeight: number): number;
89
136
 
90
137
  declare const formFieldControlClass = "ids-form-field-control";
91
138
  declare abstract class IdsFormFieldControl<D = unknown> extends ComponentBaseWithDefaults<D> {
@@ -125,6 +172,136 @@ declare abstract class IdsFormFieldControl<D = unknown> extends ComponentBaseWit
125
172
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<IdsFormFieldControl<any>, never, never, { "canHandleSuccessState": { "alias": "canHandleSuccessState"; "required": false; "isSignal": true; }; "disabledInput": { "alias": "disabled"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
126
173
  }
127
174
 
175
+ declare class IdsAutocompleteComponent extends IdsFormFieldControl<IdsAutocompleteDefaultConfig> implements ControlValueAccessor, OnInit, AfterViewInit, OnDestroy {
176
+ protected get _hostName(): string;
177
+ protected readonly _defaultConfig: Required<IdsAutocompleteDefaultConfig>;
178
+ protected readonly _elementRef: ElementRef<any>;
179
+ private readonly _changeDetectorRef;
180
+ private readonly _liveAnnouncer;
181
+ private readonly _parentFormField;
182
+ protected _preferredOverlayOrigin: CdkOverlayOrigin | ElementRef | undefined;
183
+ protected _overlayWidth: string | number;
184
+ /**
185
+ * Minimum number of characters to initiate actual search.
186
+ * Warning is shown when input length is not met.
187
+ * (Resource loader/stream function needs to be adjusted accordingly!)
188
+ */
189
+ minChars: _angular_core.InputSignalWithTransform<number, unknown>;
190
+ /** Max length of options allowed to show. Warning is shown when available options is higher than this number */
191
+ maxLength: _angular_core.InputSignalWithTransform<number | null, number>;
192
+ multiSelect: _angular_core.InputSignal<boolean>;
193
+ ariaLabel: _angular_core.InputSignal<string>;
194
+ ariaLabelledby: _angular_core.InputSignal<string>;
195
+ ariaLabelClearButton: _angular_core.InputSignal<string>;
196
+ ariaLabelToggleButton: _angular_core.InputSignal<string>;
197
+ valueCompareFn: _angular_core.InputSignal<(o1: unknown, o2: unknown) => boolean>;
198
+ sortCompareFn: _angular_core.InputSignal<((a: string, b: string, options: Readonly<string[]>) => number) | undefined>;
199
+ tabIndex: _angular_core.InputSignalWithTransform<number, unknown>;
200
+ typeaheadDebounceInterval: _angular_core.InputSignalWithTransform<number, unknown>;
201
+ hintLoading: _angular_core.InputSignal<string>;
202
+ hintNoResults: _angular_core.InputSignal<string>;
203
+ hintMinChars: _angular_core.InputSignal<string>;
204
+ hintMaxLength: _angular_core.InputSignal<string>;
205
+ panelClasses: _angular_core.InputSignal<string>;
206
+ parentSize: _angular_core.Signal<_i_cell_ids_angular_core.IdsSizeType>;
207
+ parentVariant: _angular_core.Signal<_i_cell_ids_angular_forms.IdsFormFieldVariantType>;
208
+ readonly errorStateMatcher: _angular_core.WritableSignal<ErrorStateMatcher>;
209
+ readonly successStateMatcher: _angular_core.WritableSignal<SuccessStateMatcher>;
210
+ options: _angular_core.Signal<readonly IdsOptionComponent<unknown>[]>;
211
+ overlayPanel: _angular_core.Signal<IdsOverlayPanelComponent>;
212
+ onContainerClick: () => void;
213
+ protected _hostClasses: _angular_core.Signal<string>;
214
+ protected _panelClasses: _angular_core.Signal<string>;
215
+ private _focused;
216
+ private _canOpen;
217
+ private _panel;
218
+ private _keyManager?;
219
+ private _inputElemment;
220
+ protected _resource: _angular_core.ResourceRef<string[]>;
221
+ private _rawValue;
222
+ private _selectionModel?;
223
+ private _onChange;
224
+ private _onTouched;
225
+ protected get _empty(): boolean;
226
+ get selected(): string | string[] | undefined;
227
+ protected _searchText: _angular_core.ModelSignal<string>;
228
+ protected get _triggerValue(): string;
229
+ constructor();
230
+ ngOnInit(): void;
231
+ ngAfterViewInit(): void;
232
+ updateErrorAndSuccessState(): void;
233
+ ngOnDestroy(): void;
234
+ private _initKeyManager;
235
+ private _subscribeOptionChanges;
236
+ private _handleOptionChange;
237
+ protected _handleKeydown(event: KeyboardEvent): void;
238
+ private _handleClosedPanelKeydown;
239
+ private _handleOpenedPanelKeydown;
240
+ private _scrollOptionIntoView;
241
+ private _sortValues;
242
+ private _getOverlayWidth;
243
+ toggle(): void;
244
+ open(): void;
245
+ close(): void;
246
+ clear(): void;
247
+ writeValue(value: unknown | unknown[]): void;
248
+ registerOnChange(fn: () => void): void;
249
+ registerOnTouched(fn: () => unknown): void;
250
+ setDisabledState(isDisabled: boolean): void;
251
+ private _setSelectionByValue;
252
+ private _selectValue;
253
+ private _clearSelection;
254
+ private _handleChange;
255
+ private _skipPredicate;
256
+ private _highlightCorrectOption;
257
+ isOptionPreSelectedByValue(optionValue: unknown): boolean;
258
+ protected _onFocus(): void;
259
+ protected _onBlur(): void;
260
+ protected _getAriaActiveDescendant(): string | null;
261
+ focus(options?: FocusOptions): void;
262
+ protected _onInputClick(): void;
263
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<IdsAutocompleteComponent, never>;
264
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<IdsAutocompleteComponent, "ids-autocomplete[ngModel]:not([formControl]):not([formControlName]), ids-autocomplete[formControl]:not([ngModel]):not([formControlName]), ids-autocomplete[formControlName]:not([ngModel]):not([formControl])", never, { "minChars": { "alias": "minChars"; "required": false; "isSignal": true; }; "maxLength": { "alias": "maxLength"; "required": false; "isSignal": true; }; "multiSelect": { "alias": "multiSelect"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "aria-label"; "required": false; "isSignal": true; }; "ariaLabelledby": { "alias": "aria-labelledby"; "required": false; "isSignal": true; }; "ariaLabelClearButton": { "alias": "ariaLabelClearButton"; "required": false; "isSignal": true; }; "ariaLabelToggleButton": { "alias": "ariaLabelToggleButton"; "required": false; "isSignal": true; }; "valueCompareFn": { "alias": "valueCompareFn"; "required": false; "isSignal": true; }; "sortCompareFn": { "alias": "sortCompareFn"; "required": false; "isSignal": true; }; "tabIndex": { "alias": "tabIndex"; "required": false; "isSignal": true; }; "typeaheadDebounceInterval": { "alias": "typeaheadDebounceInterval"; "required": false; "isSignal": true; }; "hintLoading": { "alias": "hintLoading"; "required": false; "isSignal": true; }; "hintNoResults": { "alias": "hintNoResults"; "required": false; "isSignal": true; }; "hintMinChars": { "alias": "hintMinChars"; "required": false; "isSignal": true; }; "hintMaxLength": { "alias": "hintMaxLength"; "required": false; "isSignal": true; }; "panelClasses": { "alias": "panelClasses"; "required": false; "isSignal": true; }; "_searchText": { "alias": "_searchText"; "required": false; "isSignal": true; }; }, { "_searchText": "_searchTextChange"; }, never, never, true, never>;
265
+ }
266
+
267
+ type IdsAutocompleteLoader = (params: ResourceLoaderParams<{
268
+ search: string | null;
269
+ }>) => Observable<string[]>;
270
+
271
+ declare const IDS_AUTOCOMPLETE_LOADER: InjectionToken<IdsAutocompleteLoader>;
272
+
273
+ declare class IdsFieldsetRowComponent extends ComponentBase {
274
+ protected get _hostName(): string;
275
+ protected _hostClasses: _angular_core.WritableSignal<string>;
276
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<IdsFieldsetRowComponent, never>;
277
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<IdsFieldsetRowComponent, "ids-fieldset-row", never, {}, {}, never, ["*"], true, never>;
278
+ }
279
+
280
+ interface IdsFieldsetDefaultConfig {
281
+ size?: IdsSizeType;
282
+ variant?: IdsFormFieldVariantType;
283
+ }
284
+ declare const IDS_FIELDSET_DEFAULT_CONFIG: InjectionToken<IdsFieldsetDefaultConfig>;
285
+ declare function IDS_FIELDSET_DEFAULT_CONFIG_FACTORY(): Required<IdsFieldsetDefaultConfig>;
286
+
287
+ declare class IdsFieldsetMessageDirective {
288
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<IdsFieldsetMessageDirective, never>;
289
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<IdsFieldsetMessageDirective, "[idsFieldsetMessage]", never, {}, {}, never, never, true, never>;
290
+ }
291
+
292
+ declare class IdsFieldsetComponent extends ComponentBaseWithDefaults<IdsFieldsetDefaultConfig> {
293
+ protected get _hostName(): string;
294
+ protected readonly _defaultConfig: Required<IdsFieldsetDefaultConfig>;
295
+ size: _angular_core.InputSignal<IdsSizeType>;
296
+ variant: _angular_core.InputSignal<IdsFormFieldVariantType>;
297
+ legend: _angular_core.InputSignal<string>;
298
+ private _fieldsetMessage;
299
+ protected _hasMessage: _angular_core.Signal<boolean>;
300
+ protected _hostClasses: _angular_core.Signal<string>;
301
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<IdsFieldsetComponent, never>;
302
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<IdsFieldsetComponent, "fieldset[idsFieldset]", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "legend": { "alias": "legend"; "required": false; "isSignal": true; }; }, {}, ["_fieldsetMessage"], ["[idsFieldsetMessage]", "ids-fieldset-row"], true, never>;
303
+ }
304
+
128
305
  declare const IDS_FORM_FIELD_CONTROL: InjectionToken<IdsFormFieldControl<unknown>>;
129
306
 
130
307
  interface IdsFormFieldDefaultConfig {
@@ -340,18 +517,6 @@ declare const Message: {
340
517
  };
341
518
  type MessageType = (typeof Message)[keyof typeof Message];
342
519
 
343
- declare class IdsOptionGroupComponent extends ComponentBase {
344
- protected get _hostName(): string;
345
- private readonly _parent;
346
- protected readonly _inert: boolean;
347
- label: _angular_core.InputSignal<string | undefined>;
348
- disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
349
- protected readonly _labelId: _angular_core.Signal<string>;
350
- protected readonly _hostClasses: _angular_core.Signal<string>;
351
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<IdsOptionGroupComponent, never>;
352
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<IdsOptionGroupComponent, "ids-option-group", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, {}, never, ["ids-option, ng-container"], true, never>;
353
- }
354
-
355
520
  declare const IDS_OPTION_GROUP: InjectionToken<IdsOptionGroupComponent>;
356
521
 
357
522
  interface IdsOptionParentComponent {
@@ -363,59 +528,6 @@ interface IdsOptionParentComponent {
363
528
  }
364
529
  declare const IDS_OPTION_PARENT_COMPONENT: InjectionToken<IdsOptionParentComponent>;
365
530
 
366
- interface IdsPseudoCheckboxParent<T extends string> {
367
- embeddedPseudoCheckboxSize: Signal<IdsSizeType>;
368
- embeddedPseudoCheckboxVariant: Signal<T>;
369
- }
370
- declare const IDS_PSEUDO_CHECKBOX_PARENT: InjectionToken<IdsPseudoCheckboxParent<string>>;
371
-
372
- declare class IdsOptionComponent<T = unknown> extends ComponentBase implements OnInit, IdsPseudoCheckboxParent<IdsFormFieldVariantType> {
373
- protected get _hostName(): string;
374
- private readonly _parent;
375
- private readonly _element;
376
- readonly group: IdsOptionGroupComponent | null;
377
- private _textElement;
378
- selected: _angular_core.WritableSignal<boolean>;
379
- private _active;
380
- size: _angular_core.Signal<_i_cell_ids_angular_core.IdsSizeType>;
381
- variant: _angular_core.Signal<IdsFormFieldVariantType>;
382
- value: _angular_core.InputSignal<T | undefined>;
383
- explicitViewValue: _angular_core.InputSignal<string | null>;
384
- disabledInput: _angular_core.InputSignalWithTransform<boolean, unknown>;
385
- disabled: boolean;
386
- protected _groupOrOptionIsDisabled: _angular_core.Signal<boolean>;
387
- protected readonly _multiSelect: boolean;
388
- onSelectionChange: _angular_core.OutputEmitterRef<IdsOptionSelectionChange<T>>;
389
- viewValue: _angular_core.Signal<string>;
390
- protected readonly _hostClasses: _angular_core.Signal<string>;
391
- protected _pseudoCheckboxState: _angular_core.Signal<"unchecked" | "checked">;
392
- embeddedPseudoCheckboxSize: _angular_core.Signal<_i_cell_ids_angular_core.IdsSizeType>;
393
- embeddedPseudoCheckboxVariant: _angular_core.WritableSignal<"surface">;
394
- constructor();
395
- ngOnInit(): void;
396
- protected _handleKeydown(event: KeyboardEvent): void;
397
- selectViaInteraction(): void;
398
- getHostElement(): HTMLElement;
399
- select(emitEvent?: boolean): void;
400
- deselect(emitEvent?: boolean): void;
401
- focus(_origin?: FocusOrigin, options?: FocusOptions): void;
402
- setActiveStyles(): void;
403
- setInactiveStyles(): void;
404
- getLabel(): string;
405
- private _emitSelectionChangeEvent;
406
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<IdsOptionComponent<any>, never>;
407
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<IdsOptionComponent<any>, "ids-option", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "explicitViewValue": { "alias": "viewValue"; "required": false; "isSignal": true; }; "disabledInput": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "onSelectionChange": "onSelectionChange"; }, never, ["*"], true, never>;
408
- }
409
- declare function _countGroupLabelsBeforeOption(optionIndex: number, options: Readonly<IdsOptionComponent[]>, optionGroups: Readonly<IdsOptionGroupComponent[]>): number;
410
- declare function _getOptionScrollPosition(optionOffset: number, optionHeight: number, currentScrollPosition: number, panelHeight: number): number;
411
-
412
- declare class IdsOptionSelectionChange<T = unknown> {
413
- source: IdsOptionComponent<T>;
414
- selected: boolean;
415
- isUserInput: boolean;
416
- constructor(source: IdsOptionComponent<T>, selected: boolean, isUserInput?: boolean);
417
- }
418
-
419
531
  declare const IdsPseudoCheckboxState: {
420
532
  readonly UNCHECKED: "unchecked";
421
533
  readonly CHECKED: "checked";
@@ -468,5 +580,5 @@ declare function requiredValidator(control: AbstractControl): ValidationErrors |
468
580
  declare function requiredTrueValidator(control: AbstractControl): ValidationErrors | null;
469
581
  declare function requiredFalseValidator(control: AbstractControl): ValidationErrors | null;
470
582
 
471
- export { AbstractErrorStateMatcher, AbstractSuccessStateMatcher, ErrorStateMatcher, ErrorStateTracker, IDS_FIELDSET_DEFAULT_CONFIG, IDS_FIELDSET_DEFAULT_CONFIG_FACTORY, IDS_FORM_FIELD_CONTROL, IDS_FORM_FIELD_DEFAULT_CONFIG, IDS_FORM_FIELD_DEFAULT_CONFIG_FACTORY, IDS_INPUT_DEFAULT_CONFIG, IDS_INPUT_DEFAULT_CONFIG_FACTORY, IDS_MESSAGE_DEFAULT_CONFIG, IDS_MESSAGE_DEFAULT_CONFIG_FACTORY, IDS_OPTION_GROUP, IDS_OPTION_PARENT_COMPONENT, IDS_PSEUDO_CHECKBOX_PARENT, IdsErrorDefinitionDirective, IdsErrorMessageComponent, IdsFieldsetComponent, IdsFieldsetMessageDirective, IdsFieldsetRowComponent, IdsFormFieldActionDirective, IdsFormFieldComponent, IdsFormFieldControl, IdsFormFieldVariant, IdsHintMessageComponent, IdsInputDirective, IdsLabelDirective, IdsMessageDirective, IdsMessagePrefixDirective, IdsMessageSuffixDirective, IdsMessageVariant, IdsOptionComponent, IdsOptionGroupComponent, IdsOptionSelectionChange, IdsPrefixDirective, IdsPseudoCheckboxState, IdsSuccessMessageComponent, IdsSuffixDirective, IdsValidators, Message, PseudoCheckboxComponent, SuccessStateMatcher, SuccessStateTracker, _countGroupLabelsBeforeOption, _getOptionScrollPosition, formFieldControlClass, requiredFalseValidator, requiredTrueValidator, requiredValidator };
472
- export type { IdsErrorMessageMapping, IdsFieldsetDefaultConfig, IdsFormFieldDefaultConfig, IdsFormFieldVariantType, IdsInputDefaultConfig, IdsMessageDefaultConfig, IdsMessageVariantType, IdsOptionParentComponent, IdsPseudoCheckboxParent, IdsPseudoCheckboxStateType, MessageType };
583
+ export { AbstractErrorStateMatcher, AbstractSuccessStateMatcher, ErrorStateMatcher, ErrorStateTracker, IDS_AUTOCOMPLETE_DEFAULT_CONFIG, IDS_AUTOCOMPLETE_DEFAULT_CONFIG_FACTORY, IDS_AUTOCOMPLETE_LOADER, IDS_FIELDSET_DEFAULT_CONFIG, IDS_FIELDSET_DEFAULT_CONFIG_FACTORY, IDS_FORM_FIELD_CONTROL, IDS_FORM_FIELD_DEFAULT_CONFIG, IDS_FORM_FIELD_DEFAULT_CONFIG_FACTORY, IDS_INPUT_DEFAULT_CONFIG, IDS_INPUT_DEFAULT_CONFIG_FACTORY, IDS_MESSAGE_DEFAULT_CONFIG, IDS_MESSAGE_DEFAULT_CONFIG_FACTORY, IDS_OPTION_GROUP, IDS_OPTION_PARENT_COMPONENT, IDS_PSEUDO_CHECKBOX_PARENT, IdsAutocompleteComponent, IdsErrorDefinitionDirective, IdsErrorMessageComponent, IdsFieldsetComponent, IdsFieldsetMessageDirective, IdsFieldsetRowComponent, IdsFormFieldActionDirective, IdsFormFieldComponent, IdsFormFieldControl, IdsFormFieldVariant, IdsHintMessageComponent, IdsInputDirective, IdsLabelDirective, IdsMessageDirective, IdsMessagePrefixDirective, IdsMessageSuffixDirective, IdsMessageVariant, IdsOptionComponent, IdsOptionGroupComponent, IdsOptionSelectionChange, IdsPrefixDirective, IdsPseudoCheckboxState, IdsSuccessMessageComponent, IdsSuffixDirective, IdsValidators, Message, PseudoCheckboxComponent, SuccessStateMatcher, SuccessStateTracker, _countGroupLabelsBeforeOption, _getOptionScrollPosition, formFieldControlClass, requiredFalseValidator, requiredTrueValidator, requiredValidator };
584
+ export type { IdsAutocompleteDefaultConfig, IdsAutocompleteLoader, IdsErrorMessageMapping, IdsFieldsetDefaultConfig, IdsFormFieldDefaultConfig, IdsFormFieldVariantType, IdsInputDefaultConfig, IdsMessageDefaultConfig, IdsMessageVariantType, IdsOptionParentComponent, IdsPseudoCheckboxParent, IdsPseudoCheckboxStateType, MessageType };
@@ -28,29 +28,25 @@ declare function IDS_OVERLAY_PANEL_DEFAULT_CONFIG_FACTORY(): Required<IdsOverlay
28
28
  declare class IdsOverlayPanelComponent extends ComponentBaseWithDefaults<IdsOverlayPanelDefaultConfig> {
29
29
  protected get _hostName(): string;
30
30
  protected readonly _defaultConfig: Required<IdsOverlayPanelDefaultConfig>;
31
- open: _angular_core.InputSignal<boolean>;
31
+ open: _angular_core.ModelSignal<boolean>;
32
32
  origin: _angular_core.InputSignal<CdkOverlayOrigin | ElementRef<any>>;
33
- closed: _angular_core.OutputEmitterRef<void>;
34
33
  positions: _angular_core.InputSignal<ConnectedPosition[]>;
35
34
  appearance: _angular_core.InputSignal<IdsOverlayPanelAppearanceType>;
36
35
  size: _angular_core.InputSignal<IdsSizeType>;
37
36
  variant: _angular_core.InputSignal<IdsOverlayPanelVariantType>;
38
37
  panelClasses: _angular_core.InputSignal<string>;
39
38
  width: _angular_core.InputSignal<string | number | undefined>;
40
- protected _open: _angular_core.WritableSignal<boolean>;
41
39
  protected _hasCdkMenu: _angular_core.Signal<boolean>;
42
40
  private _cdkMenu;
43
41
  private _overlayRef;
44
42
  private _focusTrap;
45
- get isOpen(): boolean;
46
43
  constructor();
47
44
  toggle(): void;
48
- protected _handleOverlayOutsideClick(): void;
49
- protected _handleDetach(): void;
45
+ protected _close(): void;
50
46
  protected _panelClasses: _angular_core.Signal<string>;
51
47
  protected _hostClasses: _angular_core.Signal<string>;
52
48
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<IdsOverlayPanelComponent, never>;
53
- 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; }; "panelClasses": { "alias": "panelClasses"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; }, { "closed": "closed"; }, ["_cdkMenu"], ["*"], true, never>;
49
+ 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; }; "panelClasses": { "alias": "panelClasses"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; }, { "open": "openChange"; }, ["_cdkMenu"], ["*"], true, never>;
54
50
  }
55
51
 
56
52
  export { IDS_OVERLAY_PANEL_DEFAULT_CONFIG, IDS_OVERLAY_PANEL_DEFAULT_CONFIG_FACTORY, IdsOverlayPanelAppearance, IdsOverlayPanelComponent, IdsOverlayPanelVariant };