@angular/cdk-experimental 20.0.0-next.3 → 20.0.0-next.4

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,7 +1,7 @@
1
1
  import { Version } from '@angular/core';
2
2
 
3
3
  /** Current version of the CDK Experimental package. */
4
- const VERSION = new Version('20.0.0-next.3');
4
+ const VERSION = new Version('20.0.0-next.4');
5
5
 
6
6
  export { VERSION };
7
7
  //# sourceMappingURL=cdk-experimental.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"cdk-experimental.mjs","sources":["../../../../../../src/cdk-experimental/version.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {Version} from '@angular/core';\n\n/** Current version of the CDK Experimental package. */\nexport const VERSION = new Version('20.0.0-next.3');\n"],"names":[],"mappings":";;AAUA;MACa,OAAO,GAAG,IAAI,OAAO,CAAC,mBAAmB;;;;"}
1
+ {"version":3,"file":"cdk-experimental.mjs","sources":["../../../../../k8-fastbuild-ST-70f2edae98f4/bin/src/cdk-experimental/version.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {Version} from '@angular/core';\n\n/** Current version of the CDK Experimental package. */\nexport const VERSION = new Version('20.0.0-next.4');\n"],"names":[],"mappings":";;AAUA;MACa,OAAO,GAAG,IAAI,OAAO,CAAC,mBAAmB;;;;"}
@@ -96,10 +96,10 @@ class ColumnResize {
96
96
  }
97
97
  });
98
98
  }
99
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: ColumnResize, deps: [], target: i0.ɵɵFactoryTarget.Directive });
100
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.0.0-next.1", type: ColumnResize, isStandalone: true, inputs: { liveResizeUpdates: "liveResizeUpdates" }, ngImport: i0 });
99
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: ColumnResize, deps: [], target: i0.ɵɵFactoryTarget.Directive });
100
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.0.0-next.3", type: ColumnResize, isStandalone: true, inputs: { liveResizeUpdates: "liveResizeUpdates" }, ngImport: i0 });
101
101
  }
102
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: ColumnResize, decorators: [{
102
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: ColumnResize, decorators: [{
103
103
  type: Directive
104
104
  }], propDecorators: { liveResizeUpdates: [{
105
105
  type: Input
@@ -116,10 +116,10 @@ class ColumnResizeNotifierSource {
116
116
  resizeCompleted = new Subject();
117
117
  /** Triggers a resize action. */
118
118
  triggerResize = new Subject();
119
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: ColumnResizeNotifierSource, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
120
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: ColumnResizeNotifierSource });
119
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: ColumnResizeNotifierSource, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
120
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: ColumnResizeNotifierSource });
121
121
  }
122
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: ColumnResizeNotifierSource, decorators: [{
122
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: ColumnResizeNotifierSource, decorators: [{
123
123
  type: Injectable
124
124
  }] });
125
125
  /** Service for triggering column resizes imperatively or being notified of them. */
@@ -136,10 +136,10 @@ class ColumnResizeNotifier {
136
136
  isStickyColumn: true,
137
137
  });
138
138
  }
139
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: ColumnResizeNotifier, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
140
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: ColumnResizeNotifier });
139
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: ColumnResizeNotifier, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
140
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: ColumnResizeNotifier });
141
141
  }
142
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: ColumnResizeNotifier, decorators: [{
142
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: ColumnResizeNotifier, decorators: [{
143
143
  type: Injectable
144
144
  }] });
145
145
 
@@ -191,10 +191,10 @@ class HeaderRowEventDispatcher {
191
191
  complete: () => observer.complete(),
192
192
  }));
193
193
  }
194
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: HeaderRowEventDispatcher, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
195
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: HeaderRowEventDispatcher });
194
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: HeaderRowEventDispatcher, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
195
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: HeaderRowEventDispatcher });
196
196
  }
197
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: HeaderRowEventDispatcher, decorators: [{
197
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: HeaderRowEventDispatcher, decorators: [{
198
198
  type: Injectable
199
199
  }] });
200
200
 
@@ -254,10 +254,10 @@ class ResizeStrategy {
254
254
  this._elemSizeCache.set(entry.target, newEntry);
255
255
  }
256
256
  }
257
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: ResizeStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
258
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: ResizeStrategy });
257
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: ResizeStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
258
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: ResizeStrategy });
259
259
  }
260
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: ResizeStrategy, decorators: [{
260
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: ResizeStrategy, decorators: [{
261
261
  type: Injectable
262
262
  }] });
263
263
  /**
@@ -291,10 +291,10 @@ class TableLayoutFixedResizeStrategy extends ResizeStrategy {
291
291
  const newWidth = Math.min(currentWidth, sizeInPx);
292
292
  this.applyColumnSize(_, columnHeader, newWidth, currentWidth);
293
293
  }
294
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: TableLayoutFixedResizeStrategy, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
295
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: TableLayoutFixedResizeStrategy });
294
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: TableLayoutFixedResizeStrategy, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
295
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: TableLayoutFixedResizeStrategy });
296
296
  }
297
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: TableLayoutFixedResizeStrategy, decorators: [{
297
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: TableLayoutFixedResizeStrategy, decorators: [{
298
298
  type: Injectable
299
299
  }] });
300
300
  /**
@@ -405,10 +405,10 @@ class CdkFlexTableResizeStrategy extends ResizeStrategy {
405
405
  const body = propertyKeys.map(key => `${key}:${properties.get(key)}`).join(';');
406
406
  this._getStyleSheet().insertRule(`${selector} {${body}}`, index);
407
407
  }
408
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: CdkFlexTableResizeStrategy, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
409
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: CdkFlexTableResizeStrategy });
408
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: CdkFlexTableResizeStrategy, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
409
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: CdkFlexTableResizeStrategy });
410
410
  }
411
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: CdkFlexTableResizeStrategy, decorators: [{
411
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: CdkFlexTableResizeStrategy, decorators: [{
412
412
  type: Injectable
413
413
  }] });
414
414
  /** Converts CSS pixel values to numbers, eg "123px" to 123. Returns NaN for non pixel values. */
@@ -453,10 +453,10 @@ class CdkColumnResize extends ColumnResize {
453
453
  ngZone = inject(NgZone);
454
454
  notifier = inject(ColumnResizeNotifierSource);
455
455
  table = inject(CdkTable);
456
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: CdkColumnResize, deps: null, target: i0.ɵɵFactoryTarget.Directive });
457
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.0.0-next.1", type: CdkColumnResize, isStandalone: true, selector: "table[cdk-table][columnResize]", providers: [...TABLE_PROVIDERS, { provide: ColumnResize, useExisting: CdkColumnResize }], usesInheritance: true, ngImport: i0 });
456
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: CdkColumnResize, deps: null, target: i0.ɵɵFactoryTarget.Directive });
457
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.0.0-next.3", type: CdkColumnResize, isStandalone: true, selector: "table[cdk-table][columnResize]", providers: [...TABLE_PROVIDERS, { provide: ColumnResize, useExisting: CdkColumnResize }], usesInheritance: true, ngImport: i0 });
458
458
  }
459
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: CdkColumnResize, decorators: [{
459
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: CdkColumnResize, decorators: [{
460
460
  type: Directive,
461
461
  args: [{
462
462
  selector: 'table[cdk-table][columnResize]',
@@ -475,10 +475,10 @@ class CdkColumnResizeFlex extends ColumnResize {
475
475
  ngZone = inject(NgZone);
476
476
  notifier = inject(ColumnResizeNotifierSource);
477
477
  table = inject(CdkTable);
478
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: CdkColumnResizeFlex, deps: null, target: i0.ɵɵFactoryTarget.Directive });
479
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.0.0-next.1", type: CdkColumnResizeFlex, isStandalone: true, selector: "cdk-table[columnResize]", providers: [...FLEX_PROVIDERS, { provide: ColumnResize, useExisting: CdkColumnResizeFlex }], usesInheritance: true, ngImport: i0 });
478
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: CdkColumnResizeFlex, deps: null, target: i0.ɵɵFactoryTarget.Directive });
479
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.0.0-next.3", type: CdkColumnResizeFlex, isStandalone: true, selector: "cdk-table[columnResize]", providers: [...FLEX_PROVIDERS, { provide: ColumnResize, useExisting: CdkColumnResizeFlex }], usesInheritance: true, ngImport: i0 });
480
480
  }
481
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: CdkColumnResizeFlex, decorators: [{
481
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: CdkColumnResizeFlex, decorators: [{
482
482
  type: Directive,
483
483
  args: [{
484
484
  selector: 'cdk-table[columnResize]',
@@ -497,13 +497,13 @@ class CdkDefaultEnabledColumnResize extends ColumnResize {
497
497
  ngZone = inject(NgZone);
498
498
  notifier = inject(ColumnResizeNotifierSource);
499
499
  table = inject(CdkTable);
500
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: CdkDefaultEnabledColumnResize, deps: null, target: i0.ɵɵFactoryTarget.Directive });
501
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.0.0-next.1", type: CdkDefaultEnabledColumnResize, isStandalone: true, selector: "table[cdk-table]", providers: [
500
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: CdkDefaultEnabledColumnResize, deps: null, target: i0.ɵɵFactoryTarget.Directive });
501
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.0.0-next.3", type: CdkDefaultEnabledColumnResize, isStandalone: true, selector: "table[cdk-table]", providers: [
502
502
  ...TABLE_PROVIDERS,
503
503
  { provide: ColumnResize, useExisting: CdkDefaultEnabledColumnResize },
504
504
  ], usesInheritance: true, ngImport: i0 });
505
505
  }
506
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: CdkDefaultEnabledColumnResize, decorators: [{
506
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: CdkDefaultEnabledColumnResize, decorators: [{
507
507
  type: Directive,
508
508
  args: [{
509
509
  selector: 'table[cdk-table]',
@@ -525,13 +525,13 @@ class CdkDefaultEnabledColumnResizeFlex extends ColumnResize {
525
525
  ngZone = inject(NgZone);
526
526
  notifier = inject(ColumnResizeNotifierSource);
527
527
  table = inject(CdkTable);
528
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: CdkDefaultEnabledColumnResizeFlex, deps: null, target: i0.ɵɵFactoryTarget.Directive });
529
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.0.0-next.1", type: CdkDefaultEnabledColumnResizeFlex, isStandalone: true, selector: "cdk-table", providers: [
528
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: CdkDefaultEnabledColumnResizeFlex, deps: null, target: i0.ɵɵFactoryTarget.Directive });
529
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.0.0-next.3", type: CdkDefaultEnabledColumnResizeFlex, isStandalone: true, selector: "cdk-table", providers: [
530
530
  ...FLEX_PROVIDERS,
531
531
  { provide: ColumnResize, useExisting: CdkDefaultEnabledColumnResizeFlex },
532
532
  ], usesInheritance: true, ngImport: i0 });
533
533
  }
534
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: CdkDefaultEnabledColumnResizeFlex, decorators: [{
534
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: CdkDefaultEnabledColumnResizeFlex, decorators: [{
535
535
  type: Directive,
536
536
  args: [{
537
537
  selector: 'cdk-table',
@@ -547,11 +547,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.1",
547
547
  * When using this module, columns are resizable by default.
548
548
  */
549
549
  class CdkColumnResizeDefaultEnabledModule {
550
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: CdkColumnResizeDefaultEnabledModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
551
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.0.0-next.1", ngImport: i0, type: CdkColumnResizeDefaultEnabledModule, imports: [CdkDefaultEnabledColumnResize, CdkDefaultEnabledColumnResizeFlex], exports: [CdkDefaultEnabledColumnResize, CdkDefaultEnabledColumnResizeFlex] });
552
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: CdkColumnResizeDefaultEnabledModule });
550
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: CdkColumnResizeDefaultEnabledModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
551
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.0.0-next.3", ngImport: i0, type: CdkColumnResizeDefaultEnabledModule, imports: [CdkDefaultEnabledColumnResize, CdkDefaultEnabledColumnResizeFlex], exports: [CdkDefaultEnabledColumnResize, CdkDefaultEnabledColumnResizeFlex] });
552
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: CdkColumnResizeDefaultEnabledModule });
553
553
  }
554
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: CdkColumnResizeDefaultEnabledModule, decorators: [{
554
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: CdkColumnResizeDefaultEnabledModule, decorators: [{
555
555
  type: NgModule,
556
556
  args: [{
557
557
  imports: [CdkDefaultEnabledColumnResize, CdkDefaultEnabledColumnResizeFlex],
@@ -563,11 +563,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.1",
563
563
  * When using this module, columns are not resizable by default.
564
564
  */
565
565
  class CdkColumnResizeModule {
566
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: CdkColumnResizeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
567
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.0.0-next.1", ngImport: i0, type: CdkColumnResizeModule, imports: [CdkColumnResize, CdkColumnResizeFlex], exports: [CdkColumnResize, CdkColumnResizeFlex] });
568
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: CdkColumnResizeModule });
566
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: CdkColumnResizeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
567
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.0.0-next.3", ngImport: i0, type: CdkColumnResizeModule, imports: [CdkColumnResize, CdkColumnResizeFlex], exports: [CdkColumnResize, CdkColumnResizeFlex] });
568
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: CdkColumnResizeModule });
569
569
  }
570
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: CdkColumnResizeModule, decorators: [{
570
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: CdkColumnResizeModule, decorators: [{
571
571
  type: NgModule,
572
572
  args: [{
573
573
  imports: [CdkColumnResize, CdkColumnResizeFlex],
@@ -579,10 +579,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.1",
579
579
  * Can be provided by the host application to enable persistence of column resize state.
580
580
  */
581
581
  class ColumnSizeStore {
582
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: ColumnSizeStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
583
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: ColumnSizeStore });
582
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: ColumnSizeStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
583
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: ColumnSizeStore });
584
584
  }
585
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: ColumnSizeStore, decorators: [{
585
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: ColumnSizeStore, decorators: [{
586
586
  type: Injectable
587
587
  }] });
588
588
 
@@ -796,10 +796,10 @@ class Resizable {
796
796
  // TODO: Apply correct aria role (probably slider) after a11y spec questions resolved.
797
797
  this.elementRef.nativeElement.appendChild(this.inlineHandle);
798
798
  }
799
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: Resizable, deps: [], target: i0.ɵɵFactoryTarget.Directive });
800
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.0.0-next.1", type: Resizable, isStandalone: true, ngImport: i0 });
799
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: Resizable, deps: [], target: i0.ɵɵFactoryTarget.Directive });
800
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.0.0-next.3", type: Resizable, isStandalone: true, ngImport: i0 });
801
801
  }
802
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: Resizable, decorators: [{
802
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: Resizable, decorators: [{
803
803
  type: Directive
804
804
  }] });
805
805
 
@@ -956,10 +956,10 @@ class ResizeOverlayHandle {
956
956
  };
957
957
  });
958
958
  }
959
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: ResizeOverlayHandle, deps: [], target: i0.ɵɵFactoryTarget.Directive });
960
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.0.0-next.1", type: ResizeOverlayHandle, isStandalone: true, ngImport: i0 });
959
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: ResizeOverlayHandle, deps: [], target: i0.ɵɵFactoryTarget.Directive });
960
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.0.0-next.3", type: ResizeOverlayHandle, isStandalone: true, ngImport: i0 });
961
961
  }
962
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: ResizeOverlayHandle, decorators: [{
962
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: ResizeOverlayHandle, decorators: [{
963
963
  type: Directive
964
964
  }] });
965
965
 
@@ -224,10 +224,10 @@ class CdkCombobox {
224
224
  this.contentId = contentId;
225
225
  this.contentType = contentType;
226
226
  }
227
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: CdkCombobox, deps: [], target: i0.ɵɵFactoryTarget.Directive });
228
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.0.0-next.1", type: CdkCombobox, isStandalone: true, selector: "[cdkCombobox]", inputs: { _panelTemplateRef: ["cdkComboboxTriggerFor", "_panelTemplateRef"], value: "value", disabled: "disabled", openActions: "openActions", autoSetText: "autoSetText" }, outputs: { opened: "comboboxPanelOpened", closed: "comboboxPanelClosed", panelValueChanged: "panelValueChanged" }, host: { attributes: { "role": "combobox" }, listeners: { "click": "_handleInteractions(\"click\")", "focus": "_handleInteractions(\"focus\")", "keydown": "_keydown($event)", "document:click": "_attemptClose($event)" }, properties: { "attr.aria-disabled": "disabled", "attr.aria-owns": "contentId", "attr.aria-haspopup": "contentType", "attr.aria-expanded": "isOpen()", "attr.tabindex": "_getTabIndex()" }, classAttribute: "cdk-combobox" }, providers: [{ provide: CDK_COMBOBOX, useExisting: CdkCombobox }], exportAs: ["cdkCombobox"], ngImport: i0 });
227
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: CdkCombobox, deps: [], target: i0.ɵɵFactoryTarget.Directive });
228
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.0.0-next.3", type: CdkCombobox, isStandalone: true, selector: "[cdkCombobox]", inputs: { _panelTemplateRef: ["cdkComboboxTriggerFor", "_panelTemplateRef"], value: "value", disabled: "disabled", openActions: "openActions", autoSetText: "autoSetText" }, outputs: { opened: "comboboxPanelOpened", closed: "comboboxPanelClosed", panelValueChanged: "panelValueChanged" }, host: { attributes: { "role": "combobox" }, listeners: { "click": "_handleInteractions(\"click\")", "focus": "_handleInteractions(\"focus\")", "keydown": "_keydown($event)", "document:click": "_attemptClose($event)" }, properties: { "attr.aria-disabled": "disabled", "attr.aria-owns": "contentId", "attr.aria-haspopup": "contentType", "attr.aria-expanded": "isOpen()", "attr.tabindex": "_getTabIndex()" }, classAttribute: "cdk-combobox" }, providers: [{ provide: CDK_COMBOBOX, useExisting: CdkCombobox }], exportAs: ["cdkCombobox"], ngImport: i0 });
229
229
  }
230
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: CdkCombobox, decorators: [{
230
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: CdkCombobox, decorators: [{
231
231
  type: Directive,
232
232
  args: [{
233
233
  selector: '[cdkCombobox]',
@@ -301,10 +301,10 @@ class CdkComboboxPopup {
301
301
  this._elementRef.nativeElement.focus();
302
302
  }
303
303
  }
304
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: CdkComboboxPopup, deps: [], target: i0.ɵɵFactoryTarget.Directive });
305
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.0.0-next.1", type: CdkComboboxPopup, isStandalone: true, selector: "[cdkComboboxPopup]", inputs: { role: "role", firstFocus: "firstFocus", id: "id" }, host: { attributes: { "tabindex": "-1" }, listeners: { "focus": "focusFirstElement()" }, properties: { "attr.role": "role", "id": "id" }, classAttribute: "cdk-combobox-popup" }, exportAs: ["cdkComboboxPopup"], ngImport: i0 });
304
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: CdkComboboxPopup, deps: [], target: i0.ɵɵFactoryTarget.Directive });
305
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.0.0-next.3", type: CdkComboboxPopup, isStandalone: true, selector: "[cdkComboboxPopup]", inputs: { role: "role", firstFocus: "firstFocus", id: "id" }, host: { attributes: { "tabindex": "-1" }, listeners: { "focus": "focusFirstElement()" }, properties: { "attr.role": "role", "id": "id" }, classAttribute: "cdk-combobox-popup" }, exportAs: ["cdkComboboxPopup"], ngImport: i0 });
306
306
  }
307
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: CdkComboboxPopup, decorators: [{
307
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: CdkComboboxPopup, decorators: [{
308
308
  type: Directive,
309
309
  args: [{
310
310
  selector: '[cdkComboboxPopup]',
@@ -327,11 +327,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.1",
327
327
 
328
328
  const EXPORTED_DECLARATIONS = [CdkCombobox, CdkComboboxPopup];
329
329
  class CdkComboboxModule {
330
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: CdkComboboxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
331
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.0.0-next.1", ngImport: i0, type: CdkComboboxModule, imports: [OverlayModule, CdkCombobox, CdkComboboxPopup], exports: [CdkCombobox, CdkComboboxPopup] });
332
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: CdkComboboxModule, imports: [OverlayModule] });
330
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: CdkComboboxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
331
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.0.0-next.3", ngImport: i0, type: CdkComboboxModule, imports: [OverlayModule, CdkCombobox, CdkComboboxPopup], exports: [CdkCombobox, CdkComboboxPopup] });
332
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: CdkComboboxModule, imports: [OverlayModule] });
333
333
  }
334
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: CdkComboboxModule, decorators: [{
334
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: CdkComboboxModule, decorators: [{
335
335
  type: NgModule,
336
336
  args: [{
337
337
  imports: [OverlayModule, ...EXPORTED_DECLARATIONS],
@@ -3,7 +3,7 @@ import { inject, contentChildren, computed, input, booleanAttribute, model, Dire
3
3
  import { Directionality } from '@angular/cdk/bidi';
4
4
  import { toSignal } from '@angular/core/rxjs-interop';
5
5
  import { _IdGenerator } from '@angular/cdk/a11y';
6
- import { L as ListboxPattern, O as OptionPattern } from './option-2e2b2e64.mjs';
6
+ import { L as ListboxPattern, O as OptionPattern } from './option-08a69e15.mjs';
7
7
 
8
8
  /**
9
9
  * A listbox container.
@@ -57,10 +57,10 @@ class CdkListbox {
57
57
  items: this.items,
58
58
  textDirection: this.textDirection,
59
59
  });
60
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: CdkListbox, deps: [], target: i0.ɵɵFactoryTarget.Directive });
61
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "20.0.0-next.1", type: CdkListbox, isStandalone: true, selector: "[cdkListbox]", inputs: { orientation: { classPropertyName: "orientation", publicName: "orientation", isSignal: true, isRequired: false, transformFunction: null }, multiselectable: { classPropertyName: "multiselectable", publicName: "multiselectable", isSignal: true, isRequired: false, transformFunction: null }, wrap: { classPropertyName: "wrap", publicName: "wrap", isSignal: true, isRequired: false, transformFunction: null }, skipDisabled: { classPropertyName: "skipDisabled", publicName: "skipDisabled", isSignal: true, isRequired: false, transformFunction: null }, focusMode: { classPropertyName: "focusMode", publicName: "focusMode", isSignal: true, isRequired: false, transformFunction: null }, selectionMode: { classPropertyName: "selectionMode", publicName: "selectionMode", isSignal: true, isRequired: false, transformFunction: null }, typeaheadDelay: { classPropertyName: "typeaheadDelay", publicName: "typeaheadDelay", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, selectedIds: { classPropertyName: "selectedIds", publicName: "selectedIds", isSignal: true, isRequired: false, transformFunction: null }, activeIndex: { classPropertyName: "activeIndex", publicName: "activeIndex", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selectedIds: "selectedIdsChange", activeIndex: "activeIndexChange" }, host: { attributes: { "role": "listbox" }, listeners: { "keydown": "pattern.onKeydown($event)", "pointerdown": "pattern.onPointerdown($event)" }, properties: { "attr.tabindex": "pattern.tabindex()", "attr.aria-disabled": "pattern.disabled()", "attr.aria-orientation": "pattern.orientation()", "attr.aria-multiselectable": "pattern.multiselectable()", "attr.aria-activedescendant": "pattern.activedescendant()" }, classAttribute: "cdk-listbox" }, queries: [{ propertyName: "_cdkOptions", predicate: CdkOption, descendants: true, isSignal: true }], exportAs: ["cdkListbox"], ngImport: i0 });
60
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: CdkListbox, deps: [], target: i0.ɵɵFactoryTarget.Directive });
61
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "20.0.0-next.3", type: CdkListbox, isStandalone: true, selector: "[cdkListbox]", inputs: { orientation: { classPropertyName: "orientation", publicName: "orientation", isSignal: true, isRequired: false, transformFunction: null }, multiselectable: { classPropertyName: "multiselectable", publicName: "multiselectable", isSignal: true, isRequired: false, transformFunction: null }, wrap: { classPropertyName: "wrap", publicName: "wrap", isSignal: true, isRequired: false, transformFunction: null }, skipDisabled: { classPropertyName: "skipDisabled", publicName: "skipDisabled", isSignal: true, isRequired: false, transformFunction: null }, focusMode: { classPropertyName: "focusMode", publicName: "focusMode", isSignal: true, isRequired: false, transformFunction: null }, selectionMode: { classPropertyName: "selectionMode", publicName: "selectionMode", isSignal: true, isRequired: false, transformFunction: null }, typeaheadDelay: { classPropertyName: "typeaheadDelay", publicName: "typeaheadDelay", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, selectedIds: { classPropertyName: "selectedIds", publicName: "selectedIds", isSignal: true, isRequired: false, transformFunction: null }, activeIndex: { classPropertyName: "activeIndex", publicName: "activeIndex", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selectedIds: "selectedIdsChange", activeIndex: "activeIndexChange" }, host: { attributes: { "role": "listbox" }, listeners: { "keydown": "pattern.onKeydown($event)", "pointerdown": "pattern.onPointerdown($event)" }, properties: { "attr.tabindex": "pattern.tabindex()", "attr.aria-disabled": "pattern.disabled()", "attr.aria-orientation": "pattern.orientation()", "attr.aria-multiselectable": "pattern.multiselectable()", "attr.aria-activedescendant": "pattern.activedescendant()" }, classAttribute: "cdk-listbox" }, queries: [{ propertyName: "_cdkOptions", predicate: CdkOption, descendants: true, isSignal: true }], exportAs: ["cdkListbox"], ngImport: i0 });
62
62
  }
63
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: CdkListbox, decorators: [{
63
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: CdkListbox, decorators: [{
64
64
  type: Directive,
65
65
  args: [{
66
66
  selector: '[cdkListbox]',
@@ -109,10 +109,10 @@ class CdkOption {
109
109
  element: this.element,
110
110
  searchTerm: this.searchTerm,
111
111
  });
112
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: CdkOption, deps: [], target: i0.ɵɵFactoryTarget.Directive });
113
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.0.0-next.1", type: CdkOption, isStandalone: true, selector: "[cdkOption]", inputs: { disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "option" }, properties: { "attr.tabindex": "pattern.tabindex()", "attr.aria-selected": "pattern.selected()", "attr.aria-disabled": "pattern.disabled()" }, classAttribute: "cdk-option" }, exportAs: ["cdkOption"], ngImport: i0 });
112
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: CdkOption, deps: [], target: i0.ɵɵFactoryTarget.Directive });
113
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.0.0-next.3", type: CdkOption, isStandalone: true, selector: "[cdkOption]", inputs: { disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "option" }, properties: { "attr.tabindex": "pattern.tabindex()", "attr.aria-selected": "pattern.selected()", "attr.aria-disabled": "pattern.disabled()" }, classAttribute: "cdk-option" }, exportAs: ["cdkOption"], ngImport: i0 });
114
114
  }
115
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: CdkOption, decorators: [{
115
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: CdkOption, decorators: [{
116
116
  type: Directive,
117
117
  args: [{
118
118
  selector: '[cdkOption]',
@@ -603,4 +603,4 @@ class OptionPattern {
603
603
  }
604
604
 
605
605
  export { ListboxPattern as L, OptionPattern as O };
606
- //# sourceMappingURL=option-2e2b2e64.mjs.map
606
+ //# sourceMappingURL=option-08a69e15.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"option-08a69e15.mjs","sources":["../../../../../k8-fastbuild-ST-70f2edae98f4/bin/src/cdk-experimental/ui-patterns/behaviors/event-manager/event-manager.ts","../../../../../k8-fastbuild-ST-70f2edae98f4/bin/src/cdk-experimental/ui-patterns/behaviors/event-manager/keyboard-event-manager.ts","../../../../../k8-fastbuild-ST-70f2edae98f4/bin/src/cdk-experimental/ui-patterns/behaviors/event-manager/pointer-event-manager.ts","../../../../../k8-fastbuild-ST-70f2edae98f4/bin/src/cdk-experimental/ui-patterns/behaviors/list-selection/list-selection.ts","../../../../../k8-fastbuild-ST-70f2edae98f4/bin/src/cdk-experimental/ui-patterns/behaviors/list-typeahead/list-typeahead.ts","../../../../../k8-fastbuild-ST-70f2edae98f4/bin/src/cdk-experimental/ui-patterns/behaviors/list-navigation/list-navigation.ts","../../../../../k8-fastbuild-ST-70f2edae98f4/bin/src/cdk-experimental/ui-patterns/behaviors/list-focus/list-focus.ts","../../../../../k8-fastbuild-ST-70f2edae98f4/bin/src/cdk-experimental/ui-patterns/listbox/listbox.ts","../../../../../k8-fastbuild-ST-70f2edae98f4/bin/src/cdk-experimental/ui-patterns/listbox/option.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\n/**\n * An event that supports modifier keys.\n *\n * Matches the native KeyboardEvent, MouseEvent, and TouchEvent.\n */\nexport interface EventWithModifiers extends Event {\n ctrlKey: boolean;\n shiftKey: boolean;\n altKey: boolean;\n metaKey: boolean;\n}\n\n/**\n * Options that are applicable to all event handlers.\n *\n * This library has not yet had a need for stopPropagationImmediate.\n */\nexport interface EventHandlerOptions {\n stopPropagation: boolean;\n preventDefault: boolean;\n}\n\n/** A basic event handler. */\nexport type EventHandler<T extends Event> = (event: T) => void;\n\n/** A function that determines whether an event is to be handled. */\nexport type EventMatcher<T extends Event> = (event: T) => boolean;\n\n/** A config that specifies how to handle a particular event. */\nexport interface EventHandlerConfig<T extends Event> extends EventHandlerOptions {\n matcher: EventMatcher<T>;\n handler: EventHandler<T>;\n}\n\n/** Bit flag representation of the possible modifier keys that can be present on an event. */\nexport enum ModifierKey {\n None = 0,\n Ctrl = 0b1,\n Shift = 0b10,\n Alt = 0b100,\n Meta = 0b1000,\n}\n\nexport type ModifierInputs = ModifierKey | ModifierKey[];\n\n/**\n * Abstract base class for all event managers.\n *\n * Event managers are designed to normalize how event handlers are authored and create a safety net\n * for common event handling gotchas like remembering to call preventDefault or stopPropagation.\n */\nexport abstract class EventManager<T extends Event> {\n protected configs: EventHandlerConfig<T>[] = [];\n abstract options: EventHandlerOptions;\n\n /** Runs the handlers that match with the given event. */\n handle(event: T): void {\n for (const config of this.configs) {\n if (config.matcher(event)) {\n config.handler(event);\n\n if (config.preventDefault) {\n event.preventDefault();\n }\n\n if (config.stopPropagation) {\n event.stopPropagation();\n }\n }\n }\n }\n\n /** Configures the event manager to handle specific events. (See subclasses for more). */\n abstract on(...args: [...unknown[]]): this;\n}\n\n/** Gets bit flag representation of the modifier keys present on the given event. */\nexport function getModifiers(event: EventWithModifiers): number {\n return (\n (+event.ctrlKey && ModifierKey.Ctrl) |\n (+event.shiftKey && ModifierKey.Shift) |\n (+event.altKey && ModifierKey.Alt) |\n (+event.metaKey && ModifierKey.Meta)\n );\n}\n\n/**\n * Checks if the given event has modifiers that are an exact match for any of the given modifier\n * flag combinations.\n */\nexport function hasModifiers(event: EventWithModifiers, modifiers: ModifierInputs): boolean {\n const eventModifiers = getModifiers(event);\n const modifiersList = Array.isArray(modifiers) ? modifiers : [modifiers];\n return modifiersList.some(modifiers => eventModifiers === modifiers);\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {SignalLike} from '../signal-like/signal-like';\nimport {\n EventHandler,\n EventHandlerOptions,\n EventManager,\n hasModifiers,\n ModifierInputs,\n ModifierKey,\n} from './event-manager';\n\n/**\n * Used to represent a keycode.\n *\n * This is used to match whether an events keycode should be handled. The ability to match using a\n * string, SignalLike, or Regexp gives us more flexibility when authoring event handlers.\n */\ntype KeyCode = string | SignalLike<string> | RegExp;\n\n/**\n * An event manager that is specialized for handling keyboard events. By default this manager stops\n * propagation and prevents default on all events it handles.\n */\nexport class KeyboardEventManager<T extends KeyboardEvent> extends EventManager<T> {\n options: EventHandlerOptions = {\n preventDefault: true,\n stopPropagation: true,\n };\n\n /** Configures this event manager to handle events with a specific key and no modifiers. */\n on(key: KeyCode, handler: EventHandler<T>): this;\n\n /** Configures this event manager to handle events with a specific modifer and key combination. */\n on(modifiers: ModifierInputs, key: KeyCode, handler: EventHandler<T>): this;\n\n on(...args: any[]) {\n const {modifiers, key, handler} = this._normalizeInputs(...args);\n\n this.configs.push({\n handler: handler,\n matcher: event => this._isMatch(event, key, modifiers),\n ...this.options,\n });\n\n return this;\n }\n\n private _normalizeInputs(...args: any[]) {\n const key = args.length === 3 ? args[1] : args[0];\n const handler = args.length === 3 ? args[2] : args[1];\n const modifiers = args.length === 3 ? args[0] : ModifierKey.None;\n\n return {\n key: key as KeyCode,\n handler: handler as EventHandler<T>,\n modifiers: modifiers as ModifierInputs,\n };\n }\n\n private _isMatch(event: T, key: KeyCode, modifiers: ModifierInputs) {\n if (key instanceof RegExp) {\n return key.test(event.key);\n }\n\n const keyStr = typeof key === 'string' ? key : key();\n return keyStr.toLowerCase() === event.key.toLowerCase() && hasModifiers(event, modifiers);\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {\n EventHandler,\n EventHandlerOptions,\n EventManager,\n hasModifiers,\n ModifierInputs,\n ModifierKey,\n} from './event-manager';\n\n/**\n * The different mouse buttons that may appear on a pointer event.\n */\nexport enum MouseButton {\n Main = 0,\n Auxiliary = 1,\n Secondary = 2,\n}\n\n/** An event manager that is specialized for handling pointer events. */\nexport class PointerEventManager<T extends PointerEvent> extends EventManager<T> {\n options: EventHandlerOptions = {\n preventDefault: false,\n stopPropagation: false,\n };\n\n /**\n * Configures this event manager to handle events with a specific modifer and mouse button\n * combination.\n */\n on(button: MouseButton, modifiers: ModifierInputs, handler: EventHandler<T>): this;\n\n /**\n * Configures this event manager to handle events with a specific mouse button and no modifiers.\n */\n on(modifiers: ModifierInputs, handler: EventHandler<T>): this;\n\n /**\n * Configures this event manager to handle events with the main mouse button and no modifiers.\n *\n * @param handler The handler function\n * @param options Options for whether to stop propagation or prevent default.\n */\n on(handler: EventHandler<T>): this;\n\n on(...args: any[]) {\n const {button, handler, modifiers} = this._normalizeInputs(...args);\n\n this.configs.push({\n handler,\n matcher: event => this._isMatch(event, button, modifiers),\n ...this.options,\n });\n return this;\n }\n\n private _normalizeInputs(...args: any[]) {\n if (args.length === 3) {\n return {\n button: args[0] as MouseButton,\n modifiers: args[1] as ModifierInputs,\n handler: args[2] as EventHandler<T>,\n };\n }\n\n if (typeof args[0] === 'number' && typeof args[1] === 'function') {\n return {\n button: MouseButton.Main,\n modifiers: args[0] as ModifierInputs,\n handler: args[1] as EventHandler<T>,\n };\n }\n\n return {\n button: MouseButton.Main,\n modifiers: ModifierKey.None,\n handler: args[0] as EventHandler<T>,\n };\n }\n\n _isMatch(event: PointerEvent, button: MouseButton, modifiers: ModifierInputs) {\n return button === (event.button ?? 0) && hasModifiers(event, modifiers);\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {signal} from '@angular/core';\nimport {SignalLike, WritableSignalLike} from '../signal-like/signal-like';\nimport {ListNavigation, ListNavigationItem} from '../list-navigation/list-navigation';\n\n/** Represents an item in a collection, such as a listbox option, than can be selected. */\nexport interface ListSelectionItem extends ListNavigationItem {\n /** A unique identifier for the item. */\n id: SignalLike<string>;\n\n /** Whether an item is disabled. */\n disabled: SignalLike<boolean>;\n}\n\n/** Represents the required inputs for a collection that contains selectable items. */\nexport interface ListSelectionInputs<T extends ListSelectionItem> {\n /** The items in the list. */\n items: SignalLike<T[]>;\n\n /** Whether multiple items in the list can be selected at once. */\n multiselectable: SignalLike<boolean>;\n\n /** The ids of the current selected items. */\n selectedIds: WritableSignalLike<string[]>;\n\n /** The selection strategy used by the list. */\n selectionMode: SignalLike<'follow' | 'explicit'>;\n}\n\n/** Controls selection for a list of items. */\nexport class ListSelection<T extends ListSelectionItem> {\n /** The id of the most recently selected item. */\n previousSelectedId = signal<string | undefined>(undefined);\n\n /** The navigation controller of the parent list. */\n navigation: ListNavigation<T>;\n\n constructor(readonly inputs: ListSelectionInputs<T> & {navigation: ListNavigation<T>}) {\n this.navigation = inputs.navigation;\n }\n\n /** Selects the item at the current active index. */\n select(item?: T) {\n item = item ?? this.inputs.items()[this.inputs.navigation.inputs.activeIndex()];\n\n if (item.disabled() || this.inputs.selectedIds().includes(item.id())) {\n return;\n }\n\n if (!this.inputs.multiselectable()) {\n this.deselectAll();\n }\n\n // TODO: Need to discuss when to drop this.\n this._anchor();\n this.inputs.selectedIds.update(ids => ids.concat(item.id()));\n }\n\n /** Deselects the item at the current active index. */\n deselect(item?: T) {\n item = item ?? this.inputs.items()[this.inputs.navigation.inputs.activeIndex()];\n\n if (!item.disabled()) {\n this.inputs.selectedIds.update(ids => ids.filter(id => id !== item.id()));\n }\n }\n\n /** Toggles the item at the current active index. */\n toggle() {\n const item = this.inputs.items()[this.inputs.navigation.inputs.activeIndex()];\n this.inputs.selectedIds().includes(item.id()) ? this.deselect() : this.select();\n }\n\n /** Toggles only the item at the current active index. */\n toggleOne() {\n const item = this.inputs.items()[this.inputs.navigation.inputs.activeIndex()];\n this.inputs.selectedIds().includes(item.id()) ? this.deselect() : this.selectOne();\n }\n\n /** Selects all items in the list. */\n selectAll() {\n if (!this.inputs.multiselectable()) {\n return; // Should we log a warning?\n }\n\n for (const item of this.inputs.items()) {\n this.select(item);\n }\n\n this._anchor();\n }\n\n /** Deselects all items in the list. */\n deselectAll() {\n for (const item of this.inputs.items()) {\n this.deselect(item);\n }\n }\n\n /** Selects the items in the list starting at the last selected item. */\n selectFromPrevSelectedItem() {\n const prevSelectedId = this.inputs.items().findIndex(i => this.previousSelectedId() === i.id());\n this._selectFromIndex(prevSelectedId);\n }\n\n /** Selects the items in the list starting at the last active item. */\n selectFromActive() {\n this._selectFromIndex(this.inputs.navigation.prevActiveIndex());\n }\n\n /** Selects the items in the list starting at the given index. */\n private _selectFromIndex(index: number) {\n if (index === -1) {\n return;\n }\n\n const upper = Math.max(this.inputs.navigation.inputs.activeIndex(), index);\n const lower = Math.min(this.inputs.navigation.inputs.activeIndex(), index);\n\n for (let i = lower; i <= upper; i++) {\n this.select(this.inputs.items()[i]);\n }\n }\n\n /** Sets the selection to only the current active item. */\n selectOne() {\n this.deselectAll();\n this.select();\n }\n\n /** Sets the anchor to the current active index. */\n private _anchor() {\n const item = this.inputs.items()[this.inputs.navigation.inputs.activeIndex()];\n this.previousSelectedId.set(item.id());\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {signal} from '@angular/core';\nimport {SignalLike} from '../signal-like/signal-like';\nimport {ListNavigationItem, ListNavigation} from '../list-navigation/list-navigation';\n\n/**\n * Represents an item in a collection, such as a listbox option, than can be navigated to by\n * typeahead.\n */\nexport interface ListTypeaheadItem extends ListNavigationItem {\n /** The text used by the typeahead search. */\n searchTerm: SignalLike<string>;\n}\n\n/**\n * Represents the required inputs for a collection that contains items that can be navigated to by\n * typeahead.\n */\nexport interface ListTypeaheadInputs {\n /** The amount of time before the typeahead search is reset. */\n typeaheadDelay: SignalLike<number>;\n}\n\n/** Controls typeahead for a list of items. */\nexport class ListTypeahead<T extends ListTypeaheadItem> {\n /** A reference to the timeout for resetting the typeahead search. */\n timeout?: ReturnType<typeof setTimeout> | undefined;\n\n /** The navigation controller of the parent list. */\n navigation: ListNavigation<T>;\n\n /** Keeps track of the characters that typeahead search is being called with. */\n private _query = signal('');\n\n /** The index where that the typeahead search was initiated from. */\n private _startIndex = signal<number | undefined>(undefined);\n\n constructor(readonly inputs: ListTypeaheadInputs & {navigation: ListNavigation<T>}) {\n this.navigation = inputs.navigation;\n }\n\n /** Performs a typeahead search, appending the given character to the search string. */\n search(char: string) {\n if (char.length !== 1) {\n return;\n }\n\n if (this._startIndex() === undefined) {\n this._startIndex.set(this.navigation.inputs.activeIndex());\n }\n\n clearTimeout(this.timeout);\n this._query.update(q => q + char.toLowerCase());\n const item = this._getItem();\n\n if (item) {\n this.navigation.goto(item);\n }\n\n this.timeout = setTimeout(() => {\n this._query.set('');\n this._startIndex.set(undefined);\n }, this.inputs.typeaheadDelay() * 1000);\n }\n\n /**\n * Returns the first item whose search term matches the\n * current query starting from the the current anchor index.\n */\n private _getItem() {\n let items = this.navigation.inputs.items();\n const after = items.slice(this._startIndex()! + 1);\n const before = items.slice(0, this._startIndex()!);\n items = this.navigation.inputs.wrap() ? after.concat(before) : after; // TODO: Always wrap?\n items.push(this.navigation.inputs.items()[this._startIndex()!]);\n\n const focusableItems = [];\n for (const item of items) {\n if (this.navigation.isFocusable(item)) {\n focusableItems.push(item);\n }\n }\n\n return focusableItems.find(i => i.searchTerm().toLowerCase().startsWith(this._query()));\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {signal} from '@angular/core';\nimport {SignalLike, WritableSignalLike} from '../signal-like/signal-like';\n\n/** Represents an item in a collection, such as a listbox option, than can be navigated to. */\nexport interface ListNavigationItem {\n /** Whether an item is disabled. */\n disabled: SignalLike<boolean>;\n}\n\n/** Represents the required inputs for a collection that has navigable items. */\nexport interface ListNavigationInputs<T extends ListNavigationItem> {\n /** Whether focus should wrap when navigating. */\n wrap: SignalLike<boolean>;\n\n /** The items in the list. */\n items: SignalLike<T[]>;\n\n /** Whether disabled items in the list should be skipped when navigating. */\n skipDisabled: SignalLike<boolean>;\n\n /** The current index that has been navigated to. */\n activeIndex: WritableSignalLike<number>;\n\n /** Whether the list is vertically or horizontally oriented. */\n orientation: SignalLike<'vertical' | 'horizontal'>;\n\n /** The direction that text is read based on the users locale. */\n textDirection: SignalLike<'rtl' | 'ltr'>;\n}\n\n/** Controls navigation for a list of items. */\nexport class ListNavigation<T extends ListNavigationItem> {\n /** The last index that was active. */\n prevActiveIndex = signal(0);\n\n constructor(readonly inputs: ListNavigationInputs<T>) {}\n\n /** Navigates to the given item. */\n goto(item: T) {\n if (this.isFocusable(item)) {\n this.prevActiveIndex.set(this.inputs.activeIndex());\n const index = this.inputs.items().indexOf(item);\n this.inputs.activeIndex.set(index);\n }\n }\n\n /** Navigates to the next item in the list. */\n next() {\n this._advance(1);\n }\n\n /** Navigates to the previous item in the list. */\n prev() {\n this._advance(-1);\n }\n\n /** Navigates to the first item in the list. */\n first() {\n const item = this.inputs.items().find(i => this.isFocusable(i));\n\n if (item) {\n this.goto(item);\n }\n }\n\n /** Navigates to the last item in the list. */\n last() {\n const items = this.inputs.items();\n for (let i = items.length - 1; i >= 0; i--) {\n if (this.isFocusable(items[i])) {\n this.goto(items[i]);\n return;\n }\n }\n }\n\n /** Returns true if the given item can be navigated to. */\n isFocusable(item: T): boolean {\n return !item.disabled() || !this.inputs.skipDisabled();\n }\n\n /** Advances to the next or previous focusable item in the list based on the given delta. */\n private _advance(delta: 1 | -1) {\n const items = this.inputs.items();\n const itemCount = items.length;\n const startIndex = this.inputs.activeIndex();\n const step = (i: number) =>\n this.inputs.wrap() ? (i + delta + itemCount) % itemCount : i + delta;\n\n // If wrapping is enabled, this loop ultimately terminates when `i` gets back to `startIndex`\n // in the case that all options are disabled. If wrapping is disabled, the loop terminates\n // when the index goes out of bounds.\n for (let i = step(startIndex); i !== startIndex && i < itemCount && i >= 0; i = step(i)) {\n if (this.isFocusable(items[i])) {\n this.goto(items[i]);\n return;\n }\n }\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {SignalLike} from '../signal-like/signal-like';\nimport {ListNavigation, ListNavigationItem} from '../list-navigation/list-navigation';\n\n/** Represents an item in a collection, such as a listbox option, than may receive focus. */\nexport interface ListFocusItem extends ListNavigationItem {\n /** A unique identifier for the item. */\n id: SignalLike<string>;\n\n /** The html element that should receive focus. */\n element: SignalLike<HTMLElement>;\n}\n\n/** Represents the required inputs for a collection that contains focusable items. */\nexport interface ListFocusInputs<T extends ListFocusItem> {\n /** The focus strategy used by the list. */\n focusMode: SignalLike<'roving' | 'activedescendant'>;\n}\n\n/** Controls focus for a list of items. */\nexport class ListFocus<T extends ListFocusItem> {\n /** The navigation controller of the parent list. */\n navigation: ListNavigation<ListFocusItem>;\n\n constructor(readonly inputs: ListFocusInputs<T> & {navigation: ListNavigation<T>}) {\n this.navigation = inputs.navigation;\n }\n\n /** The id of the current active item. */\n getActiveDescendant(): string | undefined {\n if (this.inputs.focusMode() === 'roving') {\n return undefined;\n }\n return this.navigation.inputs.items()[this.navigation.inputs.activeIndex()].id();\n }\n\n /** The tabindex for the list. */\n getListTabindex(): -1 | 0 {\n return this.inputs.focusMode() === 'activedescendant' ? 0 : -1;\n }\n\n /** Returns the tabindex for the given item. */\n getItemTabindex(item: T): -1 | 0 {\n if (this.inputs.focusMode() === 'activedescendant') {\n return -1;\n }\n const index = this.navigation.inputs.items().indexOf(item);\n return this.navigation.inputs.activeIndex() === index ? 0 : -1;\n }\n\n /** Focuses the current active item. */\n focus() {\n if (this.inputs.focusMode() === 'activedescendant') {\n return;\n }\n\n const item = this.navigation.inputs.items()[this.navigation.inputs.activeIndex()];\n item.element().focus();\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {ModifierKey as Modifier} from '../behaviors/event-manager/event-manager';\nimport {KeyboardEventManager} from '../behaviors/event-manager/keyboard-event-manager';\nimport {PointerEventManager} from '../behaviors/event-manager/pointer-event-manager';\nimport {OptionPattern} from './option';\nimport {ListSelection, ListSelectionInputs} from '../behaviors/list-selection/list-selection';\nimport {ListTypeahead, ListTypeaheadInputs} from '../behaviors/list-typeahead/list-typeahead';\nimport {ListNavigation, ListNavigationInputs} from '../behaviors/list-navigation/list-navigation';\nimport {ListFocus, ListFocusInputs} from '../behaviors/list-focus/list-focus';\nimport {computed} from '@angular/core';\nimport {SignalLike} from '../behaviors/signal-like/signal-like';\n\n/** The selection operations that the listbox can perform. */\ninterface SelectOptions {\n select?: boolean;\n toggle?: boolean;\n toggleOne?: boolean;\n selectOne?: boolean;\n selectAll?: boolean;\n selectFromAnchor?: boolean;\n selectFromActive?: boolean;\n}\n\n/** Represents the required inputs for a listbox. */\nexport type ListboxInputs = ListNavigationInputs<OptionPattern> &\n ListSelectionInputs<OptionPattern> &\n ListTypeaheadInputs &\n ListFocusInputs<OptionPattern> & {\n disabled: SignalLike<boolean>;\n };\n\n/** Controls the state of a listbox. */\nexport class ListboxPattern {\n /** Controls navigation for the listbox. */\n navigation: ListNavigation<OptionPattern>;\n\n /** Controls selection for the listbox. */\n selection: ListSelection<OptionPattern>;\n\n /** Controls typeahead for the listbox. */\n typeahead: ListTypeahead<OptionPattern>;\n\n /** Controls focus for the listbox. */\n focusManager: ListFocus<OptionPattern>;\n\n /** Whether the list is vertically or horizontally oriented. */\n orientation: SignalLike<'vertical' | 'horizontal'>;\n\n /** Whether the listbox is disabled. */\n disabled: SignalLike<boolean>;\n\n /** The tabindex of the listbox. */\n tabindex = computed(() => this.focusManager.getListTabindex());\n\n /** The id of the current active item. */\n activedescendant = computed(() => this.focusManager.getActiveDescendant());\n\n /** Whether multiple items in the list can be selected at once. */\n multiselectable: SignalLike<boolean>;\n\n /** The number of items in the listbox. */\n setsize = computed(() => this.navigation.inputs.items().length);\n\n /** Whether the listbox selection follows focus. */\n followFocus = computed(() => this.inputs.selectionMode() === 'follow');\n\n /** The key used to navigate to the previous item in the list. */\n prevKey = computed(() => {\n if (this.inputs.orientation() === 'vertical') {\n return 'ArrowUp';\n }\n return this.inputs.textDirection() === 'rtl' ? 'ArrowRight' : 'ArrowLeft';\n });\n\n /** The key used to navigate to the next item in the list. */\n nextKey = computed(() => {\n if (this.inputs.orientation() === 'vertical') {\n return 'ArrowDown';\n }\n return this.inputs.textDirection() === 'rtl' ? 'ArrowLeft' : 'ArrowRight';\n });\n\n /** The regexp used to decide if a key should trigger typeahead. */\n typeaheadRegexp = /^.$/; // TODO: Ignore spaces?\n\n /** The keydown event manager for the listbox. */\n keydown = computed(() => {\n const manager = new KeyboardEventManager();\n\n if (!this.followFocus()) {\n manager\n .on(this.prevKey, () => this.prev())\n .on(this.nextKey, () => this.next())\n .on('Home', () => this.first())\n .on('End', () => this.last())\n .on(this.typeaheadRegexp, e => this.search(e.key));\n }\n\n if (this.followFocus()) {\n manager\n .on(this.prevKey, () => this.prev({selectOne: true}))\n .on(this.nextKey, () => this.next({selectOne: true}))\n .on('Home', () => this.first({selectOne: true}))\n .on('End', () => this.last({selectOne: true}))\n .on(this.typeaheadRegexp, e => this.search(e.key, {selectOne: true}));\n }\n\n if (this.inputs.multiselectable()) {\n manager\n .on(Modifier.Shift, ' ', () => this._updateSelection({selectFromAnchor: true}))\n .on(Modifier.Shift, 'Enter', () => this._updateSelection({selectFromAnchor: true}))\n .on(Modifier.Shift, this.prevKey, () => this.prev({toggle: true}))\n .on(Modifier.Shift, this.nextKey, () => this.next({toggle: true}))\n .on(Modifier.Ctrl | Modifier.Shift, 'Home', () => this.first({selectFromActive: true}))\n .on(Modifier.Ctrl | Modifier.Shift, 'End', () => this.last({selectFromActive: true}))\n .on(Modifier.Ctrl, 'A', () => this._updateSelection({selectAll: true}));\n }\n\n if (!this.followFocus() && this.inputs.multiselectable()) {\n manager.on(' ', () => this._updateSelection({toggle: true}));\n manager.on('Enter', () => this._updateSelection({toggle: true}));\n }\n\n if (!this.followFocus() && !this.inputs.multiselectable()) {\n manager.on(' ', () => this._updateSelection({toggleOne: true}));\n manager.on('Enter', () => this._updateSelection({toggleOne: true}));\n }\n\n if (this.inputs.multiselectable() && this.followFocus()) {\n manager\n .on(Modifier.Ctrl, this.prevKey, () => this.prev())\n .on(Modifier.Ctrl, this.nextKey, () => this.next())\n .on(Modifier.Ctrl, 'Home', () => this.first()) // TODO: Not in spec but prob should be.\n .on(Modifier.Ctrl, 'End', () => this.last()); // TODO: Not in spec but prob should be.\n }\n\n return manager;\n });\n\n /** The pointerdown event manager for the listbox. */\n pointerdown = computed(() => {\n const manager = new PointerEventManager();\n\n if (this.inputs.multiselectable()) {\n manager\n .on(e => this.goto(e, {toggle: true}))\n .on(Modifier.Shift, e => this.goto(e, {selectFromActive: true}));\n } else {\n manager.on(e => this.goto(e, {toggleOne: true}));\n }\n\n return manager;\n });\n\n constructor(readonly inputs: ListboxInputs) {\n this.disabled = inputs.disabled;\n this.orientation = inputs.orientation;\n this.multiselectable = inputs.multiselectable;\n\n this.navigation = new ListNavigation(inputs);\n this.selection = new ListSelection({...inputs, navigation: this.navigation});\n this.typeahead = new ListTypeahead({...inputs, navigation: this.navigation});\n this.focusManager = new ListFocus({...inputs, navigation: this.navigation});\n }\n\n /** Handles keydown events for the listbox. */\n onKeydown(event: KeyboardEvent) {\n if (!this.disabled()) {\n this.keydown().handle(event);\n }\n }\n\n onPointerdown(event: PointerEvent) {\n if (!this.disabled()) {\n this.pointerdown().handle(event);\n }\n }\n\n /** Navigates to the first option in the listbox. */\n first(opts?: SelectOptions) {\n this.navigation.first();\n this.focusManager.focus();\n this._updateSelection(opts);\n }\n\n /** Navigates to the last option in the listbox. */\n last(opts?: SelectOptions) {\n this.navigation.last();\n this.focusManager.focus();\n this._updateSelection(opts);\n }\n\n /** Navigates to the next option in the listbox. */\n next(opts?: SelectOptions) {\n this.navigation.next();\n this.focusManager.focus();\n this._updateSelection(opts);\n }\n\n /** Navigates to the previous option in the listbox. */\n prev(opts?: SelectOptions) {\n this.navigation.prev();\n this.focusManager.focus();\n this._updateSelection(opts);\n }\n\n /** Navigates to the given item in the listbox. */\n goto(event: PointerEvent, opts?: SelectOptions) {\n const item = this._getItem(event);\n\n if (item) {\n this.navigation.goto(item);\n this.focusManager.focus();\n this._updateSelection(opts);\n }\n }\n\n /** Handles typeahead search navigation for the listbox. */\n search(char: string, opts?: SelectOptions) {\n this.typeahead.search(char);\n this.focusManager.focus();\n this._updateSelection(opts);\n }\n\n /** Handles updating selection for the listbox. */\n private _updateSelection(opts?: SelectOptions) {\n if (opts?.select) {\n this.selection.select();\n }\n if (opts?.toggle) {\n this.selection.toggle();\n }\n if (opts?.toggleOne) {\n this.selection.toggleOne();\n }\n if (opts?.selectOne) {\n this.selection.selectOne();\n }\n if (opts?.selectAll) {\n this.selection.selectAll();\n }\n if (opts?.selectFromAnchor) {\n this.selection.selectFromPrevSelectedItem();\n }\n if (opts?.selectFromActive) {\n this.selection.selectFromActive();\n }\n }\n\n private _getItem(e: PointerEvent) {\n if (!(e.target instanceof HTMLElement)) {\n return;\n }\n\n const element = e.target.closest('[role=\"option\"]'); // TODO: Use a different identifier.\n return this.inputs.items().find(i => i.element() === element);\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {computed} from '@angular/core';\nimport {ListSelection, ListSelectionItem} from '../behaviors/list-selection/list-selection';\nimport {ListTypeaheadItem} from '../behaviors/list-typeahead/list-typeahead';\nimport {ListNavigation, ListNavigationItem} from '../behaviors/list-navigation/list-navigation';\nimport {ListFocus, ListFocusItem} from '../behaviors/list-focus/list-focus';\nimport {SignalLike} from '../behaviors/signal-like/signal-like';\n\n/**\n * Represents the properties exposed by a listbox that need to be accessed by an option.\n * This exists to avoid circular dependency errors between the listbox and option.\n */\ninterface ListboxPattern {\n focusManager: ListFocus<OptionPattern>;\n selection: ListSelection<OptionPattern>;\n navigation: ListNavigation<OptionPattern>;\n}\n\n/** Represents the required inputs for an option in a listbox. */\nexport interface OptionInputs\n extends ListNavigationItem,\n ListSelectionItem,\n ListTypeaheadItem,\n ListFocusItem {\n listbox: SignalLike<ListboxPattern | undefined>;\n}\n\n/** Represents an option in a listbox. */\nexport class OptionPattern {\n /** A unique identifier for the option. */\n id: SignalLike<string>;\n\n /** The position of the option in the list. */\n index = computed(\n () =>\n this.listbox()\n ?.navigation.inputs.items()\n .findIndex(i => i.id() === this.id()) ?? -1,\n );\n\n /** Whether the option is selected. */\n selected = computed(() => this.listbox()?.selection.inputs.selectedIds().includes(this.id()));\n\n /** Whether the option is disabled. */\n disabled: SignalLike<boolean>;\n\n /** The text used by the typeahead search. */\n searchTerm: SignalLike<string>;\n\n /** A reference to the parent listbox. */\n listbox: SignalLike<ListboxPattern | undefined>;\n\n /** The tabindex of the option. */\n tabindex = computed(() => this.listbox()?.focusManager.getItemTabindex(this));\n\n /** The html element that should receive focus. */\n element: SignalLike<HTMLElement>;\n\n constructor(args: OptionInputs) {\n this.id = args.id;\n this.listbox = args.listbox;\n this.element = args.element;\n this.disabled = args.disabled;\n this.searchTerm = args.searchTerm;\n }\n}\n"],"names":["Modifier"],"mappings":"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"}
@@ -201,10 +201,10 @@ class EditEventDispatcher {
201
201
  _mapAllRowsToSingleRow(mapper) {
202
202
  return this.allRows.pipe(map(mapper), this._startWithNullDistinct);
203
203
  }
204
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: EditEventDispatcher, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
205
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: EditEventDispatcher });
204
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: EditEventDispatcher, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
205
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: EditEventDispatcher });
206
206
  }
207
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: EditEventDispatcher, decorators: [{
207
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: EditEventDispatcher, decorators: [{
208
208
  type: Injectable
209
209
  }], ctorParameters: () => [] });
210
210
  function computeHoverContentState([firstRow, lastRow, activeRow, hoverRow,]) {
@@ -303,10 +303,10 @@ class EditRef {
303
303
  reset(value) {
304
304
  this._form.reset(value || this._revertFormValue);
305
305
  }
306
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: EditRef, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
307
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: EditRef });
306
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: EditRef, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
307
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: EditRef });
308
308
  }
309
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: EditRef, decorators: [{
309
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: EditRef, decorators: [{
310
310
  type: Injectable
311
311
  }], ctorParameters: () => [] });
312
312
 
@@ -372,10 +372,10 @@ class FocusDispatcher {
372
372
  }
373
373
  event.preventDefault();
374
374
  }
375
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: FocusDispatcher, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
376
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: FocusDispatcher, providedIn: 'root' });
375
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: FocusDispatcher, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
376
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: FocusDispatcher, providedIn: 'root' });
377
377
  }
378
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: FocusDispatcher, decorators: [{
378
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: FocusDispatcher, decorators: [{
379
379
  type: Injectable,
380
380
  args: [{ providedIn: 'root' }]
381
381
  }], ctorParameters: () => [] });
@@ -493,10 +493,10 @@ class CdkEditControl {
493
493
  _triggerFormSubmit() {
494
494
  this.elementRef.nativeElement.dispatchEvent(new Event('submit'));
495
495
  }
496
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: CdkEditControl, deps: [], target: i0.ɵɵFactoryTarget.Directive });
497
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.0.0-next.1", type: CdkEditControl, isStandalone: true, selector: "form[cdkEditControl]", inputs: { clickOutBehavior: ["cdkEditControlClickOutBehavior", "clickOutBehavior"], preservedFormValue: ["cdkEditControlPreservedFormValue", "preservedFormValue"], ignoreSubmitUnlessValid: ["cdkEditControlIgnoreSubmitUnlessValid", "ignoreSubmitUnlessValid"] }, outputs: { preservedFormValueChange: "cdkEditControlPreservedFormValueChange" }, host: { listeners: { "ngSubmit": "handleFormSubmit()", "document:click": "handlePossibleClickOut($event)", "keydown": "_handleKeydown($event)" } }, providers: [EditRef], ngImport: i0 });
496
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: CdkEditControl, deps: [], target: i0.ɵɵFactoryTarget.Directive });
497
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.0.0-next.3", type: CdkEditControl, isStandalone: true, selector: "form[cdkEditControl]", inputs: { clickOutBehavior: ["cdkEditControlClickOutBehavior", "clickOutBehavior"], preservedFormValue: ["cdkEditControlPreservedFormValue", "preservedFormValue"], ignoreSubmitUnlessValid: ["cdkEditControlIgnoreSubmitUnlessValid", "ignoreSubmitUnlessValid"] }, outputs: { preservedFormValueChange: "cdkEditControlPreservedFormValueChange" }, host: { listeners: { "ngSubmit": "handleFormSubmit()", "document:click": "handlePossibleClickOut($event)", "keydown": "_handleKeydown($event)" } }, providers: [EditRef], ngImport: i0 });
498
498
  }
499
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: CdkEditControl, decorators: [{
499
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: CdkEditControl, decorators: [{
500
500
  type: Directive,
501
501
  args: [{
502
502
  selector: 'form[cdkEditControl]',
@@ -522,10 +522,10 @@ class CdkEditRevert {
522
522
  revertEdit() {
523
523
  this.editRef.reset();
524
524
  }
525
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: CdkEditRevert, deps: [], target: i0.ɵɵFactoryTarget.Directive });
526
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.0.0-next.1", type: CdkEditRevert, isStandalone: true, selector: "button[cdkEditRevert]", inputs: { type: "type" }, host: { attributes: { "type": "button" }, listeners: { "click": "revertEdit()" } }, ngImport: i0 });
525
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: CdkEditRevert, deps: [], target: i0.ɵɵFactoryTarget.Directive });
526
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.0.0-next.3", type: CdkEditRevert, isStandalone: true, selector: "button[cdkEditRevert]", inputs: { type: "type" }, host: { attributes: { "type": "button" }, listeners: { "click": "revertEdit()" } }, ngImport: i0 });
527
527
  }
528
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: CdkEditRevert, decorators: [{
528
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: CdkEditRevert, decorators: [{
529
529
  type: Directive,
530
530
  args: [{
531
531
  selector: 'button[cdkEditRevert]',
@@ -556,10 +556,10 @@ class CdkEditClose {
556
556
  // the same event sequence if focus was moved quickly.
557
557
  this.editRef.close();
558
558
  }
559
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: CdkEditClose, deps: [], target: i0.ɵɵFactoryTarget.Directive });
560
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.0.0-next.1", type: CdkEditClose, isStandalone: true, selector: "[cdkEditClose]", host: { listeners: { "click": "closeEdit()", "keydown.enter": "closeEdit()", "keydown.space": "closeEdit()" } }, ngImport: i0 });
559
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: CdkEditClose, deps: [], target: i0.ɵɵFactoryTarget.Directive });
560
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.0.0-next.3", type: CdkEditClose, isStandalone: true, selector: "[cdkEditClose]", host: { listeners: { "click": "closeEdit()", "keydown.enter": "closeEdit()", "keydown.space": "closeEdit()" } }, ngImport: i0 });
561
561
  }
562
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: CdkEditClose, decorators: [{
562
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: CdkEditClose, decorators: [{
563
563
  type: Directive,
564
564
  args: [{
565
565
  selector: '[cdkEditClose]',
@@ -586,10 +586,10 @@ class EditServices {
586
586
  overlay = inject(Overlay);
587
587
  scrollDispatcher = inject(ScrollDispatcher);
588
588
  viewportRuler = inject(ViewportRuler);
589
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: EditServices, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
590
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: EditServices });
589
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: EditServices, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
590
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: EditServices });
591
591
  }
592
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: EditServices, decorators: [{
592
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: EditServices, decorators: [{
593
593
  type: Injectable
594
594
  }] });
595
595
 
@@ -636,10 +636,10 @@ class FocusEscapeNotifierFactory {
636
636
  create(element) {
637
637
  return new FocusEscapeNotifier(element, this._checker, this._ngZone, this._document);
638
638
  }
639
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: FocusEscapeNotifierFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
640
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: FocusEscapeNotifierFactory, providedIn: 'root' });
639
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: FocusEscapeNotifierFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
640
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: FocusEscapeNotifierFactory, providedIn: 'root' });
641
641
  }
642
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: FocusEscapeNotifierFactory, decorators: [{
642
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: FocusEscapeNotifierFactory, decorators: [{
643
643
  type: Injectable,
644
644
  args: [{ providedIn: 'root' }]
645
645
  }] });
@@ -725,10 +725,10 @@ class CdkEditable {
725
725
  .subscribe(this.focusDispatcher.keyObserver);
726
726
  });
727
727
  }
728
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: CdkEditable, deps: [], target: i0.ɵɵFactoryTarget.Directive });
729
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.0.0-next.1", type: CdkEditable, isStandalone: true, selector: "table[editable], cdk-table[editable], mat-table[editable]", providers: [EditEventDispatcher, EditServices], ngImport: i0 });
728
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: CdkEditable, deps: [], target: i0.ɵɵFactoryTarget.Directive });
729
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.0.0-next.3", type: CdkEditable, isStandalone: true, selector: "table[editable], cdk-table[editable], mat-table[editable]", providers: [EditEventDispatcher, EditServices], ngImport: i0 });
730
730
  }
731
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: CdkEditable, decorators: [{
731
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: CdkEditable, decorators: [{
732
732
  type: Directive,
733
733
  args: [{
734
734
  selector: 'table[editable], cdk-table[editable], mat-table[editable]',
@@ -926,10 +926,10 @@ class CdkPopoverEdit {
926
926
  }
927
927
  return { width: lastCell.getBoundingClientRect().right - firstCell.getBoundingClientRect().left };
928
928
  }
929
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: CdkPopoverEdit, deps: [], target: i0.ɵɵFactoryTarget.Directive });
930
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.0.0-next.1", type: CdkPopoverEdit, isStandalone: true, selector: "[cdkPopoverEdit]:not([cdkPopoverEditTabOut])", inputs: { template: ["cdkPopoverEdit", "template"], context: ["cdkPopoverEditContext", "context"], colspan: ["cdkPopoverEditColspan", "colspan"], disabled: ["cdkPopoverEditDisabled", "disabled"], ariaLabel: ["cdkPopoverEditAriaLabel", "ariaLabel"] }, host: { properties: { "attr.tabindex": "disabled ? null : 0", "attr.aria-haspopup": "!disabled" }, classAttribute: "cdk-popover-edit-cell" }, ngImport: i0 });
929
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: CdkPopoverEdit, deps: [], target: i0.ɵɵFactoryTarget.Directive });
930
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.0.0-next.3", type: CdkPopoverEdit, isStandalone: true, selector: "[cdkPopoverEdit]:not([cdkPopoverEditTabOut])", inputs: { template: ["cdkPopoverEdit", "template"], context: ["cdkPopoverEditContext", "context"], colspan: ["cdkPopoverEditColspan", "colspan"], disabled: ["cdkPopoverEditDisabled", "disabled"], ariaLabel: ["cdkPopoverEditAriaLabel", "ariaLabel"] }, host: { properties: { "attr.tabindex": "disabled ? null : 0", "attr.aria-haspopup": "!disabled" }, classAttribute: "cdk-popover-edit-cell" }, ngImport: i0 });
931
931
  }
932
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: CdkPopoverEdit, decorators: [{
932
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: CdkPopoverEdit, decorators: [{
933
933
  type: Directive,
934
934
  args: [{
935
935
  selector: '[cdkPopoverEdit]:not([cdkPopoverEditTabOut])',
@@ -956,10 +956,10 @@ class CdkPopoverEditTabOut extends CdkPopoverEdit {
956
956
  this.closeEditOverlay();
957
957
  });
958
958
  }
959
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: CdkPopoverEditTabOut, deps: null, target: i0.ɵɵFactoryTarget.Directive });
960
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.0.0-next.1", type: CdkPopoverEditTabOut, isStandalone: true, selector: "[cdkPopoverEdit][cdkPopoverEditTabOut]", inputs: { template: ["cdkPopoverEdit", "template"], context: ["cdkPopoverEditContext", "context"], colspan: ["cdkPopoverEditColspan", "colspan"], disabled: ["cdkPopoverEditDisabled", "disabled"], ariaLabel: ["cdkPopoverEditAriaLabel", "ariaLabel"] }, host: { properties: { "attr.tabindex": "disabled ? null : 0", "attr.aria-haspopup": "!disabled" }, classAttribute: "cdk-popover-edit-cell" }, usesInheritance: true, ngImport: i0 });
959
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: CdkPopoverEditTabOut, deps: null, target: i0.ɵɵFactoryTarget.Directive });
960
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.0.0-next.3", type: CdkPopoverEditTabOut, isStandalone: true, selector: "[cdkPopoverEdit][cdkPopoverEditTabOut]", inputs: { template: ["cdkPopoverEdit", "template"], context: ["cdkPopoverEditContext", "context"], colspan: ["cdkPopoverEditColspan", "colspan"], disabled: ["cdkPopoverEditDisabled", "disabled"], ariaLabel: ["cdkPopoverEditAriaLabel", "ariaLabel"] }, host: { properties: { "attr.tabindex": "disabled ? null : 0", "attr.aria-haspopup": "!disabled" }, classAttribute: "cdk-popover-edit-cell" }, usesInheritance: true, ngImport: i0 });
961
961
  }
962
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: CdkPopoverEditTabOut, decorators: [{
962
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: CdkPopoverEditTabOut, decorators: [{
963
963
  type: Directive,
964
964
  args: [{
965
965
  selector: '[cdkPopoverEdit][cdkPopoverEditTabOut]',
@@ -1043,10 +1043,10 @@ class CdkRowHoverContent {
1043
1043
  }
1044
1044
  });
1045
1045
  }
1046
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: CdkRowHoverContent, deps: [], target: i0.ɵɵFactoryTarget.Directive });
1047
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.0.0-next.1", type: CdkRowHoverContent, isStandalone: true, selector: "[cdkRowHoverContent]", ngImport: i0 });
1046
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: CdkRowHoverContent, deps: [], target: i0.ɵɵFactoryTarget.Directive });
1047
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.0.0-next.3", type: CdkRowHoverContent, isStandalone: true, selector: "[cdkRowHoverContent]", ngImport: i0 });
1048
1048
  }
1049
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: CdkRowHoverContent, decorators: [{
1049
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: CdkRowHoverContent, decorators: [{
1050
1050
  type: Directive,
1051
1051
  args: [{
1052
1052
  selector: '[cdkRowHoverContent]',
@@ -1071,10 +1071,10 @@ class CdkEditOpen {
1071
1071
  this.editEventDispatcher.editing.next(closest(this.elementRef.nativeElement, CELL_SELECTOR));
1072
1072
  evt.stopPropagation();
1073
1073
  }
1074
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: CdkEditOpen, deps: [], target: i0.ɵɵFactoryTarget.Directive });
1075
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.0.0-next.1", type: CdkEditOpen, isStandalone: true, selector: "[cdkEditOpen]", host: { listeners: { "click": "openEdit($event)" } }, ngImport: i0 });
1074
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: CdkEditOpen, deps: [], target: i0.ɵɵFactoryTarget.Directive });
1075
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.0.0-next.3", type: CdkEditOpen, isStandalone: true, selector: "[cdkEditOpen]", host: { listeners: { "click": "openEdit($event)" } }, ngImport: i0 });
1076
1076
  }
1077
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: CdkEditOpen, decorators: [{
1077
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: CdkEditOpen, decorators: [{
1078
1078
  type: Directive,
1079
1079
  args: [{
1080
1080
  selector: '[cdkEditOpen]',
@@ -1095,8 +1095,8 @@ const EXPORTED_DECLARATIONS = [
1095
1095
  CdkEditOpen,
1096
1096
  ];
1097
1097
  class CdkPopoverEditModule {
1098
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: CdkPopoverEditModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1099
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.0.0-next.1", ngImport: i0, type: CdkPopoverEditModule, imports: [OverlayModule, CdkPopoverEdit,
1098
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: CdkPopoverEditModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1099
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.0.0-next.3", ngImport: i0, type: CdkPopoverEditModule, imports: [OverlayModule, CdkPopoverEdit,
1100
1100
  CdkPopoverEditTabOut,
1101
1101
  CdkRowHoverContent,
1102
1102
  CdkEditControl,
@@ -1111,9 +1111,9 @@ class CdkPopoverEditModule {
1111
1111
  CdkEditClose,
1112
1112
  CdkEditable,
1113
1113
  CdkEditOpen] });
1114
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: CdkPopoverEditModule, imports: [OverlayModule] });
1114
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: CdkPopoverEditModule, imports: [OverlayModule] });
1115
1115
  }
1116
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: CdkPopoverEditModule, decorators: [{
1116
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: CdkPopoverEditModule, decorators: [{
1117
1117
  type: NgModule,
1118
1118
  args: [{
1119
1119
  imports: [OverlayModule, ...EXPORTED_DECLARATIONS],
@@ -400,8 +400,8 @@ class CdkAutoSizeVirtualScroll {
400
400
  ngOnChanges() {
401
401
  this._scrollStrategy.updateBufferSize(this.minBufferPx, this.maxBufferPx);
402
402
  }
403
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: CdkAutoSizeVirtualScroll, deps: [], target: i0.ɵɵFactoryTarget.Directive });
404
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.0.0-next.1", type: CdkAutoSizeVirtualScroll, isStandalone: true, selector: "cdk-virtual-scroll-viewport[autosize]", inputs: { minBufferPx: "minBufferPx", maxBufferPx: "maxBufferPx" }, providers: [
403
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: CdkAutoSizeVirtualScroll, deps: [], target: i0.ɵɵFactoryTarget.Directive });
404
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.0.0-next.3", type: CdkAutoSizeVirtualScroll, isStandalone: true, selector: "cdk-virtual-scroll-viewport[autosize]", inputs: { minBufferPx: "minBufferPx", maxBufferPx: "maxBufferPx" }, providers: [
405
405
  {
406
406
  provide: VIRTUAL_SCROLL_STRATEGY,
407
407
  useFactory: _autoSizeVirtualScrollStrategyFactory,
@@ -409,7 +409,7 @@ class CdkAutoSizeVirtualScroll {
409
409
  },
410
410
  ], usesOnChanges: true, ngImport: i0 });
411
411
  }
412
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: CdkAutoSizeVirtualScroll, decorators: [{
412
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: CdkAutoSizeVirtualScroll, decorators: [{
413
413
  type: Directive,
414
414
  args: [{
415
415
  selector: 'cdk-virtual-scroll-viewport[autosize]',
@@ -428,11 +428,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.1",
428
428
  }] } });
429
429
 
430
430
  class ScrollingModule {
431
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: ScrollingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
432
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.0.0-next.1", ngImport: i0, type: ScrollingModule, imports: [CdkAutoSizeVirtualScroll], exports: [CdkAutoSizeVirtualScroll] });
433
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: ScrollingModule });
431
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: ScrollingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
432
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.0.0-next.3", ngImport: i0, type: ScrollingModule, imports: [CdkAutoSizeVirtualScroll], exports: [CdkAutoSizeVirtualScroll] });
433
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: ScrollingModule });
434
434
  }
435
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: ScrollingModule, decorators: [{
435
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: ScrollingModule, decorators: [{
436
436
  type: NgModule,
437
437
  args: [{
438
438
  imports: [CdkAutoSizeVirtualScroll],
@@ -235,10 +235,10 @@ class CdkSelection {
235
235
  }
236
236
  }
237
237
  selectAllState = 'none';
238
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: CdkSelection, deps: [], target: i0.ɵɵFactoryTarget.Directive });
239
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.0.0-next.1", type: CdkSelection, isStandalone: true, selector: "[cdkSelection]", inputs: { dataSource: "dataSource", trackByFn: ["trackBy", "trackByFn"], multiple: ["cdkSelectionMultiple", "multiple"] }, outputs: { change: "cdkSelectionChange" }, exportAs: ["cdkSelection"], ngImport: i0 });
238
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: CdkSelection, deps: [], target: i0.ɵɵFactoryTarget.Directive });
239
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.0.0-next.3", type: CdkSelection, isStandalone: true, selector: "[cdkSelection]", inputs: { dataSource: "dataSource", trackByFn: ["trackBy", "trackByFn"], multiple: ["cdkSelectionMultiple", "multiple"] }, outputs: { change: "cdkSelectionChange" }, exportAs: ["cdkSelection"], ngImport: i0 });
240
240
  }
241
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: CdkSelection, decorators: [{
241
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: CdkSelection, decorators: [{
242
242
  type: Directive,
243
243
  args: [{
244
244
  selector: '[cdkSelection]',
@@ -332,10 +332,10 @@ class CdkSelectAll {
332
332
  this._destroyed.next();
333
333
  this._destroyed.complete();
334
334
  }
335
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: CdkSelectAll, deps: [], target: i0.ɵɵFactoryTarget.Directive });
336
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.0.0-next.1", type: CdkSelectAll, isStandalone: true, selector: "[cdkSelectAll]", exportAs: ["cdkSelectAll"], ngImport: i0 });
335
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: CdkSelectAll, deps: [], target: i0.ɵɵFactoryTarget.Directive });
336
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.0.0-next.3", type: CdkSelectAll, isStandalone: true, selector: "[cdkSelectAll]", exportAs: ["cdkSelectAll"], ngImport: i0 });
337
337
  }
338
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: CdkSelectAll, decorators: [{
338
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: CdkSelectAll, decorators: [{
339
339
  type: Directive,
340
340
  args: [{
341
341
  selector: '[cdkSelectAll]',
@@ -405,10 +405,10 @@ class CdkSelectionToggle {
405
405
  _isSelected() {
406
406
  return this._selection.isSelected(this.value, this.index);
407
407
  }
408
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: CdkSelectionToggle, deps: [], target: i0.ɵɵFactoryTarget.Directive });
409
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.0.0-next.1", type: CdkSelectionToggle, isStandalone: true, selector: "[cdkSelectionToggle]", inputs: { value: ["cdkSelectionToggleValue", "value"], index: ["cdkSelectionToggleIndex", "index"] }, exportAs: ["cdkSelectionToggle"], ngImport: i0 });
408
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: CdkSelectionToggle, deps: [], target: i0.ɵɵFactoryTarget.Directive });
409
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.0.0-next.3", type: CdkSelectionToggle, isStandalone: true, selector: "[cdkSelectionToggle]", inputs: { value: ["cdkSelectionToggleValue", "value"], index: ["cdkSelectionToggleIndex", "index"] }, exportAs: ["cdkSelectionToggle"], ngImport: i0 });
410
410
  }
411
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: CdkSelectionToggle, decorators: [{
411
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: CdkSelectionToggle, decorators: [{
412
412
  type: Directive,
413
413
  args: [{
414
414
  selector: '[cdkSelectionToggle]',
@@ -467,8 +467,8 @@ class CdkSelectionColumn {
467
467
  this._columnDef.name = this._name;
468
468
  }
469
469
  }
470
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: CdkSelectionColumn, deps: [], target: i0.ɵɵFactoryTarget.Component });
471
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.0-next.1", type: CdkSelectionColumn, isStandalone: true, selector: "cdk-selection-column", inputs: { name: ["cdkSelectionColumnName", "name"] }, viewQueries: [{ propertyName: "_columnDef", first: true, predicate: CdkColumnDef, descendants: true, static: true }, { propertyName: "_cell", first: true, predicate: CdkCellDef, descendants: true, static: true }, { propertyName: "_headerCell", first: true, predicate: CdkHeaderCellDef, descendants: true, static: true }], ngImport: i0, template: `
470
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: CdkSelectionColumn, deps: [], target: i0.ɵɵFactoryTarget.Component });
471
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.0-next.3", type: CdkSelectionColumn, isStandalone: true, selector: "cdk-selection-column", inputs: { name: ["cdkSelectionColumnName", "name"] }, viewQueries: [{ propertyName: "_columnDef", first: true, predicate: CdkColumnDef, descendants: true, static: true }, { propertyName: "_cell", first: true, predicate: CdkCellDef, descendants: true, static: true }, { propertyName: "_headerCell", first: true, predicate: CdkHeaderCellDef, descendants: true, static: true }], ngImport: i0, template: `
472
472
  <ng-container cdkColumnDef>
473
473
  <th cdkHeaderCell *cdkHeaderCellDef>
474
474
  @if (selection && selection.multiple) {
@@ -492,7 +492,7 @@ class CdkSelectionColumn {
492
492
  </ng-container>
493
493
  `, isInline: true, dependencies: [{ kind: "directive", type: CdkColumnDef, selector: "[cdkColumnDef]", inputs: ["cdkColumnDef", "sticky", "stickyEnd"] }, { kind: "directive", type: CdkHeaderCellDef, selector: "[cdkHeaderCellDef]" }, { kind: "directive", type: CdkSelectAll, selector: "[cdkSelectAll]", exportAs: ["cdkSelectAll"] }, { kind: "directive", type: CdkCellDef, selector: "[cdkCellDef]" }, { kind: "directive", type: CdkSelectionToggle, selector: "[cdkSelectionToggle]", inputs: ["cdkSelectionToggleValue", "cdkSelectionToggleIndex"], exportAs: ["cdkSelectionToggle"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
494
494
  }
495
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: CdkSelectionColumn, decorators: [{
495
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: CdkSelectionColumn, decorators: [{
496
496
  type: Component,
497
497
  args: [{
498
498
  selector: 'cdk-selection-column',
@@ -562,10 +562,10 @@ class CdkRowSelection {
562
562
  this._index = coerceNumberProperty(index);
563
563
  }
564
564
  _index;
565
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: CdkRowSelection, deps: [], target: i0.ɵɵFactoryTarget.Directive });
566
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.0.0-next.1", type: CdkRowSelection, isStandalone: true, selector: "[cdkRowSelection]", inputs: { value: ["cdkRowSelectionValue", "value"], index: ["cdkRowSelectionIndex", "index"] }, host: { properties: { "class.cdk-selected": "_selection.isSelected(this.value, this.index)", "attr.aria-selected": "_selection.isSelected(this.value, this.index)" } }, ngImport: i0 });
565
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: CdkRowSelection, deps: [], target: i0.ɵɵFactoryTarget.Directive });
566
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.0.0-next.3", type: CdkRowSelection, isStandalone: true, selector: "[cdkRowSelection]", inputs: { value: ["cdkRowSelectionValue", "value"], index: ["cdkRowSelectionIndex", "index"] }, host: { properties: { "class.cdk-selected": "_selection.isSelected(this.value, this.index)", "attr.aria-selected": "_selection.isSelected(this.value, this.index)" } }, ngImport: i0 });
567
567
  }
568
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: CdkRowSelection, decorators: [{
568
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: CdkRowSelection, decorators: [{
569
569
  type: Directive,
570
570
  args: [{
571
571
  selector: '[cdkRowSelection]',
@@ -583,16 +583,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.1",
583
583
  }] } });
584
584
 
585
585
  class CdkSelectionModule {
586
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: CdkSelectionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
587
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.0.0-next.1", ngImport: i0, type: CdkSelectionModule, imports: [CdkTableModule,
586
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: CdkSelectionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
587
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.0.0-next.3", ngImport: i0, type: CdkSelectionModule, imports: [CdkTableModule,
588
588
  CdkSelection,
589
589
  CdkSelectionToggle,
590
590
  CdkSelectAll,
591
591
  CdkSelectionColumn,
592
592
  CdkRowSelection], exports: [CdkSelection, CdkSelectionToggle, CdkSelectAll, CdkSelectionColumn, CdkRowSelection] });
593
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: CdkSelectionModule, imports: [CdkTableModule] });
593
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: CdkSelectionModule, imports: [CdkTableModule] });
594
594
  }
595
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: CdkSelectionModule, decorators: [{
595
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: CdkSelectionModule, decorators: [{
596
596
  type: NgModule,
597
597
  args: [{
598
598
  imports: [
@@ -94,10 +94,10 @@ class CdkTableScrollContainer {
94
94
  styleSheet.deleteRule(0);
95
95
  }
96
96
  }
97
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: CdkTableScrollContainer, deps: [], target: i0.ɵɵFactoryTarget.Directive });
98
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.0.0-next.1", type: CdkTableScrollContainer, isStandalone: true, selector: "[cdkTableScrollContainer]", host: { classAttribute: "cdk-table-scroll-container" }, providers: [{ provide: STICKY_POSITIONING_LISTENER, useExisting: CdkTableScrollContainer }], ngImport: i0 });
97
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: CdkTableScrollContainer, deps: [], target: i0.ɵɵFactoryTarget.Directive });
98
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.0.0-next.3", type: CdkTableScrollContainer, isStandalone: true, selector: "[cdkTableScrollContainer]", host: { classAttribute: "cdk-table-scroll-container" }, providers: [{ provide: STICKY_POSITIONING_LISTENER, useExisting: CdkTableScrollContainer }], ngImport: i0 });
99
99
  }
100
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: CdkTableScrollContainer, decorators: [{
100
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: CdkTableScrollContainer, decorators: [{
101
101
  type: Directive,
102
102
  args: [{
103
103
  selector: '[cdkTableScrollContainer]',
@@ -119,11 +119,11 @@ function computeMargin(sizes) {
119
119
  }
120
120
 
121
121
  class CdkTableScrollContainerModule {
122
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: CdkTableScrollContainerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
123
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.0.0-next.1", ngImport: i0, type: CdkTableScrollContainerModule, imports: [CdkTableScrollContainer], exports: [CdkTableScrollContainer] });
124
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: CdkTableScrollContainerModule });
122
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: CdkTableScrollContainerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
123
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.0.0-next.3", ngImport: i0, type: CdkTableScrollContainerModule, imports: [CdkTableScrollContainer], exports: [CdkTableScrollContainer] });
124
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: CdkTableScrollContainerModule });
125
125
  }
126
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: CdkTableScrollContainerModule, decorators: [{
126
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: CdkTableScrollContainerModule, decorators: [{
127
127
  type: NgModule,
128
128
  args: [{
129
129
  imports: [CdkTableScrollContainer],
@@ -1,4 +1,4 @@
1
- export { L as ListboxPattern, O as OptionPattern } from './option-2e2b2e64.mjs';
1
+ export { L as ListboxPattern, O as OptionPattern } from './option-08a69e15.mjs';
2
2
  import '@angular/core';
3
3
 
4
4
  /** Converts a getter setter style signal to a WritableSignalLike. */
@@ -1 +1 @@
1
- {"version":3,"file":"ui-patterns.mjs","sources":["../../../../../../src/cdk-experimental/ui-patterns/behaviors/signal-like/signal-like.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nexport type SignalLike<T> = () => T;\n\nexport interface WritableSignalLike<T> extends SignalLike<T> {\n set(value: T): void;\n update(updateFn: (value: T) => T): void;\n}\n\n/** Converts a getter setter style signal to a WritableSignalLike. */\nexport function convertGetterSetterToWritableSignalLike<T>(\n getter: () => T,\n setter: (v: T) => void,\n): WritableSignalLike<T> {\n // tslint:disable-next-line:ban Have to use `Object.assign` to preserve the getter function.\n return Object.assign(getter, {\n set: setter,\n update: (updateCallback: (v: T) => T) => setter(updateCallback(getter())),\n });\n}\n"],"names":[],"mappings":";;;AAeA;AACgB,SAAA,uCAAuC,CACrD,MAAe,EACf,MAAsB,EAAA;;AAGtB,IAAA,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE;AAC3B,QAAA,GAAG,EAAE,MAAM;AACX,QAAA,MAAM,EAAE,CAAC,cAA2B,KAAK,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC;AAC1E,KAAA,CAAC,CAAA;AACJ;;;;"}
1
+ {"version":3,"file":"ui-patterns.mjs","sources":["../../../../../k8-fastbuild-ST-70f2edae98f4/bin/src/cdk-experimental/ui-patterns/behaviors/signal-like/signal-like.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nexport type SignalLike<T> = () => T;\n\nexport interface WritableSignalLike<T> extends SignalLike<T> {\n set(value: T): void;\n update(updateFn: (value: T) => T): void;\n}\n\n/** Converts a getter setter style signal to a WritableSignalLike. */\nexport function convertGetterSetterToWritableSignalLike<T>(\n getter: () => T,\n setter: (v: T) => void,\n): WritableSignalLike<T> {\n // tslint:disable-next-line:ban Have to use `Object.assign` to preserve the getter function.\n return Object.assign(getter, {\n set: setter,\n update: (updateCallback: (v: T) => T) => setter(updateCallback(getter())),\n });\n}\n"],"names":[],"mappings":";;;AAeA;AACgB,SAAA,uCAAuC,CACrD,MAAe,EACf,MAAsB,EAAA;;AAGtB,IAAA,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE;AAC3B,QAAA,GAAG,EAAE,MAAM;AACX,QAAA,MAAM,EAAE,CAAC,cAA2B,KAAK,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC;AAC1E,KAAA,CAAC,CAAA;AACJ;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@angular/cdk-experimental",
3
- "version": "20.0.0-next.3",
3
+ "version": "20.0.0-next.4",
4
4
  "description": "Experimental components for Angular CDK",
5
5
  "repository": {
6
6
  "type": "git",
@@ -12,7 +12,7 @@
12
12
  },
13
13
  "homepage": "https://github.com/angular/components#readme",
14
14
  "peerDependencies": {
15
- "@angular/cdk": "20.0.0-next.3",
15
+ "@angular/cdk": "20.0.0-next.4",
16
16
  "@angular/core": "^20.0.0-0 || ^20.1.0-0 || ^20.2.0-0 || ^20.3.0-0 || ^21.0.0-0"
17
17
  },
18
18
  "dependencies": {
@@ -1 +0,0 @@
1
- {"version":3,"file":"option-2e2b2e64.mjs","sources":["../../../../../../src/cdk-experimental/ui-patterns/behaviors/event-manager/event-manager.ts","../../../../../../src/cdk-experimental/ui-patterns/behaviors/event-manager/keyboard-event-manager.ts","../../../../../../src/cdk-experimental/ui-patterns/behaviors/event-manager/pointer-event-manager.ts","../../../../../../src/cdk-experimental/ui-patterns/behaviors/list-selection/list-selection.ts","../../../../../../src/cdk-experimental/ui-patterns/behaviors/list-typeahead/list-typeahead.ts","../../../../../../src/cdk-experimental/ui-patterns/behaviors/list-navigation/list-navigation.ts","../../../../../../src/cdk-experimental/ui-patterns/behaviors/list-focus/list-focus.ts","../../../../../../src/cdk-experimental/ui-patterns/listbox/listbox.ts","../../../../../../src/cdk-experimental/ui-patterns/listbox/option.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\n/**\n * An event that supports modifier keys.\n *\n * Matches the native KeyboardEvent, MouseEvent, and TouchEvent.\n */\nexport interface EventWithModifiers extends Event {\n ctrlKey: boolean;\n shiftKey: boolean;\n altKey: boolean;\n metaKey: boolean;\n}\n\n/**\n * Options that are applicable to all event handlers.\n *\n * This library has not yet had a need for stopPropagationImmediate.\n */\nexport interface EventHandlerOptions {\n stopPropagation: boolean;\n preventDefault: boolean;\n}\n\n/** A basic event handler. */\nexport type EventHandler<T extends Event> = (event: T) => void;\n\n/** A function that determines whether an event is to be handled. */\nexport type EventMatcher<T extends Event> = (event: T) => boolean;\n\n/** A config that specifies how to handle a particular event. */\nexport interface EventHandlerConfig<T extends Event> extends EventHandlerOptions {\n matcher: EventMatcher<T>;\n handler: EventHandler<T>;\n}\n\n/** Bit flag representation of the possible modifier keys that can be present on an event. */\nexport enum ModifierKey {\n None = 0,\n Ctrl = 0b1,\n Shift = 0b10,\n Alt = 0b100,\n Meta = 0b1000,\n}\n\nexport type ModifierInputs = ModifierKey | ModifierKey[];\n\n/**\n * Abstract base class for all event managers.\n *\n * Event managers are designed to normalize how event handlers are authored and create a safety net\n * for common event handling gotchas like remembering to call preventDefault or stopPropagation.\n */\nexport abstract class EventManager<T extends Event> {\n protected configs: EventHandlerConfig<T>[] = [];\n abstract options: EventHandlerOptions;\n\n /** Runs the handlers that match with the given event. */\n handle(event: T): void {\n for (const config of this.configs) {\n if (config.matcher(event)) {\n config.handler(event);\n\n if (config.preventDefault) {\n event.preventDefault();\n }\n\n if (config.stopPropagation) {\n event.stopPropagation();\n }\n }\n }\n }\n\n /** Configures the event manager to handle specific events. (See subclasses for more). */\n abstract on(...args: [...unknown[]]): this;\n}\n\n/** Gets bit flag representation of the modifier keys present on the given event. */\nexport function getModifiers(event: EventWithModifiers): number {\n return (\n (+event.ctrlKey && ModifierKey.Ctrl) |\n (+event.shiftKey && ModifierKey.Shift) |\n (+event.altKey && ModifierKey.Alt) |\n (+event.metaKey && ModifierKey.Meta)\n );\n}\n\n/**\n * Checks if the given event has modifiers that are an exact match for any of the given modifier\n * flag combinations.\n */\nexport function hasModifiers(event: EventWithModifiers, modifiers: ModifierInputs): boolean {\n const eventModifiers = getModifiers(event);\n const modifiersList = Array.isArray(modifiers) ? modifiers : [modifiers];\n return modifiersList.some(modifiers => eventModifiers === modifiers);\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {SignalLike} from '../signal-like/signal-like';\nimport {\n EventHandler,\n EventHandlerOptions,\n EventManager,\n hasModifiers,\n ModifierInputs,\n ModifierKey,\n} from './event-manager';\n\n/**\n * Used to represent a keycode.\n *\n * This is used to match whether an events keycode should be handled. The ability to match using a\n * string, SignalLike, or Regexp gives us more flexibility when authoring event handlers.\n */\ntype KeyCode = string | SignalLike<string> | RegExp;\n\n/**\n * An event manager that is specialized for handling keyboard events. By default this manager stops\n * propagation and prevents default on all events it handles.\n */\nexport class KeyboardEventManager<T extends KeyboardEvent> extends EventManager<T> {\n options: EventHandlerOptions = {\n preventDefault: true,\n stopPropagation: true,\n };\n\n /** Configures this event manager to handle events with a specific key and no modifiers. */\n on(key: KeyCode, handler: EventHandler<T>): this;\n\n /** Configures this event manager to handle events with a specific modifer and key combination. */\n on(modifiers: ModifierInputs, key: KeyCode, handler: EventHandler<T>): this;\n\n on(...args: any[]) {\n const {modifiers, key, handler} = this._normalizeInputs(...args);\n\n this.configs.push({\n handler: handler,\n matcher: event => this._isMatch(event, key, modifiers),\n ...this.options,\n });\n\n return this;\n }\n\n private _normalizeInputs(...args: any[]) {\n const key = args.length === 3 ? args[1] : args[0];\n const handler = args.length === 3 ? args[2] : args[1];\n const modifiers = args.length === 3 ? args[0] : ModifierKey.None;\n\n return {\n key: key as KeyCode,\n handler: handler as EventHandler<T>,\n modifiers: modifiers as ModifierInputs,\n };\n }\n\n private _isMatch(event: T, key: KeyCode, modifiers: ModifierInputs) {\n if (key instanceof RegExp) {\n return key.test(event.key);\n }\n\n const keyStr = typeof key === 'string' ? key : key();\n return keyStr.toLowerCase() === event.key.toLowerCase() && hasModifiers(event, modifiers);\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {\n EventHandler,\n EventHandlerOptions,\n EventManager,\n hasModifiers,\n ModifierInputs,\n ModifierKey,\n} from './event-manager';\n\n/**\n * The different mouse buttons that may appear on a pointer event.\n */\nexport enum MouseButton {\n Main = 0,\n Auxiliary = 1,\n Secondary = 2,\n}\n\n/** An event manager that is specialized for handling pointer events. */\nexport class PointerEventManager<T extends PointerEvent> extends EventManager<T> {\n options: EventHandlerOptions = {\n preventDefault: false,\n stopPropagation: false,\n };\n\n /**\n * Configures this event manager to handle events with a specific modifer and mouse button\n * combination.\n */\n on(button: MouseButton, modifiers: ModifierInputs, handler: EventHandler<T>): this;\n\n /**\n * Configures this event manager to handle events with a specific mouse button and no modifiers.\n */\n on(modifiers: ModifierInputs, handler: EventHandler<T>): this;\n\n /**\n * Configures this event manager to handle events with the main mouse button and no modifiers.\n *\n * @param handler The handler function\n * @param options Options for whether to stop propagation or prevent default.\n */\n on(handler: EventHandler<T>): this;\n\n on(...args: any[]) {\n const {button, handler, modifiers} = this._normalizeInputs(...args);\n\n this.configs.push({\n handler,\n matcher: event => this._isMatch(event, button, modifiers),\n ...this.options,\n });\n return this;\n }\n\n private _normalizeInputs(...args: any[]) {\n if (args.length === 3) {\n return {\n button: args[0] as MouseButton,\n modifiers: args[1] as ModifierInputs,\n handler: args[2] as EventHandler<T>,\n };\n }\n\n if (typeof args[0] === 'number' && typeof args[1] === 'function') {\n return {\n button: MouseButton.Main,\n modifiers: args[0] as ModifierInputs,\n handler: args[1] as EventHandler<T>,\n };\n }\n\n return {\n button: MouseButton.Main,\n modifiers: ModifierKey.None,\n handler: args[0] as EventHandler<T>,\n };\n }\n\n _isMatch(event: PointerEvent, button: MouseButton, modifiers: ModifierInputs) {\n return button === (event.button ?? 0) && hasModifiers(event, modifiers);\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {signal} from '@angular/core';\nimport {SignalLike, WritableSignalLike} from '../signal-like/signal-like';\nimport {ListNavigation, ListNavigationItem} from '../list-navigation/list-navigation';\n\n/** Represents an item in a collection, such as a listbox option, than can be selected. */\nexport interface ListSelectionItem extends ListNavigationItem {\n /** A unique identifier for the item. */\n id: SignalLike<string>;\n\n /** Whether an item is disabled. */\n disabled: SignalLike<boolean>;\n}\n\n/** Represents the required inputs for a collection that contains selectable items. */\nexport interface ListSelectionInputs<T extends ListSelectionItem> {\n /** The items in the list. */\n items: SignalLike<T[]>;\n\n /** Whether multiple items in the list can be selected at once. */\n multiselectable: SignalLike<boolean>;\n\n /** The ids of the current selected items. */\n selectedIds: WritableSignalLike<string[]>;\n\n /** The selection strategy used by the list. */\n selectionMode: SignalLike<'follow' | 'explicit'>;\n}\n\n/** Controls selection for a list of items. */\nexport class ListSelection<T extends ListSelectionItem> {\n /** The id of the most recently selected item. */\n previousSelectedId = signal<string | undefined>(undefined);\n\n /** The navigation controller of the parent list. */\n navigation: ListNavigation<T>;\n\n constructor(readonly inputs: ListSelectionInputs<T> & {navigation: ListNavigation<T>}) {\n this.navigation = inputs.navigation;\n }\n\n /** Selects the item at the current active index. */\n select(item?: T) {\n item = item ?? this.inputs.items()[this.inputs.navigation.inputs.activeIndex()];\n\n if (item.disabled() || this.inputs.selectedIds().includes(item.id())) {\n return;\n }\n\n if (!this.inputs.multiselectable()) {\n this.deselectAll();\n }\n\n // TODO: Need to discuss when to drop this.\n this._anchor();\n this.inputs.selectedIds.update(ids => ids.concat(item.id()));\n }\n\n /** Deselects the item at the current active index. */\n deselect(item?: T) {\n item = item ?? this.inputs.items()[this.inputs.navigation.inputs.activeIndex()];\n\n if (!item.disabled()) {\n this.inputs.selectedIds.update(ids => ids.filter(id => id !== item.id()));\n }\n }\n\n /** Toggles the item at the current active index. */\n toggle() {\n const item = this.inputs.items()[this.inputs.navigation.inputs.activeIndex()];\n this.inputs.selectedIds().includes(item.id()) ? this.deselect() : this.select();\n }\n\n /** Toggles only the item at the current active index. */\n toggleOne() {\n const item = this.inputs.items()[this.inputs.navigation.inputs.activeIndex()];\n this.inputs.selectedIds().includes(item.id()) ? this.deselect() : this.selectOne();\n }\n\n /** Selects all items in the list. */\n selectAll() {\n if (!this.inputs.multiselectable()) {\n return; // Should we log a warning?\n }\n\n for (const item of this.inputs.items()) {\n this.select(item);\n }\n\n this._anchor();\n }\n\n /** Deselects all items in the list. */\n deselectAll() {\n for (const item of this.inputs.items()) {\n this.deselect(item);\n }\n }\n\n /** Selects the items in the list starting at the last selected item. */\n selectFromPrevSelectedItem() {\n const prevSelectedId = this.inputs.items().findIndex(i => this.previousSelectedId() === i.id());\n this._selectFromIndex(prevSelectedId);\n }\n\n /** Selects the items in the list starting at the last active item. */\n selectFromActive() {\n this._selectFromIndex(this.inputs.navigation.prevActiveIndex());\n }\n\n /** Selects the items in the list starting at the given index. */\n private _selectFromIndex(index: number) {\n if (index === -1) {\n return;\n }\n\n const upper = Math.max(this.inputs.navigation.inputs.activeIndex(), index);\n const lower = Math.min(this.inputs.navigation.inputs.activeIndex(), index);\n\n for (let i = lower; i <= upper; i++) {\n this.select(this.inputs.items()[i]);\n }\n }\n\n /** Sets the selection to only the current active item. */\n selectOne() {\n this.deselectAll();\n this.select();\n }\n\n /** Sets the anchor to the current active index. */\n private _anchor() {\n const item = this.inputs.items()[this.inputs.navigation.inputs.activeIndex()];\n this.previousSelectedId.set(item.id());\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {signal} from '@angular/core';\nimport {SignalLike} from '../signal-like/signal-like';\nimport {ListNavigationItem, ListNavigation} from '../list-navigation/list-navigation';\n\n/**\n * Represents an item in a collection, such as a listbox option, than can be navigated to by\n * typeahead.\n */\nexport interface ListTypeaheadItem extends ListNavigationItem {\n /** The text used by the typeahead search. */\n searchTerm: SignalLike<string>;\n}\n\n/**\n * Represents the required inputs for a collection that contains items that can be navigated to by\n * typeahead.\n */\nexport interface ListTypeaheadInputs {\n /** The amount of time before the typeahead search is reset. */\n typeaheadDelay: SignalLike<number>;\n}\n\n/** Controls typeahead for a list of items. */\nexport class ListTypeahead<T extends ListTypeaheadItem> {\n /** A reference to the timeout for resetting the typeahead search. */\n timeout?: ReturnType<typeof setTimeout> | undefined;\n\n /** The navigation controller of the parent list. */\n navigation: ListNavigation<T>;\n\n /** Keeps track of the characters that typeahead search is being called with. */\n private _query = signal('');\n\n /** The index where that the typeahead search was initiated from. */\n private _startIndex = signal<number | undefined>(undefined);\n\n constructor(readonly inputs: ListTypeaheadInputs & {navigation: ListNavigation<T>}) {\n this.navigation = inputs.navigation;\n }\n\n /** Performs a typeahead search, appending the given character to the search string. */\n search(char: string) {\n if (char.length !== 1) {\n return;\n }\n\n if (this._startIndex() === undefined) {\n this._startIndex.set(this.navigation.inputs.activeIndex());\n }\n\n clearTimeout(this.timeout);\n this._query.update(q => q + char.toLowerCase());\n const item = this._getItem();\n\n if (item) {\n this.navigation.goto(item);\n }\n\n this.timeout = setTimeout(() => {\n this._query.set('');\n this._startIndex.set(undefined);\n }, this.inputs.typeaheadDelay() * 1000);\n }\n\n /**\n * Returns the first item whose search term matches the\n * current query starting from the the current anchor index.\n */\n private _getItem() {\n let items = this.navigation.inputs.items();\n const after = items.slice(this._startIndex()! + 1);\n const before = items.slice(0, this._startIndex()!);\n items = this.navigation.inputs.wrap() ? after.concat(before) : after; // TODO: Always wrap?\n items.push(this.navigation.inputs.items()[this._startIndex()!]);\n\n const focusableItems = [];\n for (const item of items) {\n if (this.navigation.isFocusable(item)) {\n focusableItems.push(item);\n }\n }\n\n return focusableItems.find(i => i.searchTerm().toLowerCase().startsWith(this._query()));\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {signal} from '@angular/core';\nimport {SignalLike, WritableSignalLike} from '../signal-like/signal-like';\n\n/** Represents an item in a collection, such as a listbox option, than can be navigated to. */\nexport interface ListNavigationItem {\n /** Whether an item is disabled. */\n disabled: SignalLike<boolean>;\n}\n\n/** Represents the required inputs for a collection that has navigable items. */\nexport interface ListNavigationInputs<T extends ListNavigationItem> {\n /** Whether focus should wrap when navigating. */\n wrap: SignalLike<boolean>;\n\n /** The items in the list. */\n items: SignalLike<T[]>;\n\n /** Whether disabled items in the list should be skipped when navigating. */\n skipDisabled: SignalLike<boolean>;\n\n /** The current index that has been navigated to. */\n activeIndex: WritableSignalLike<number>;\n\n /** Whether the list is vertically or horizontally oriented. */\n orientation: SignalLike<'vertical' | 'horizontal'>;\n\n /** The direction that text is read based on the users locale. */\n textDirection: SignalLike<'rtl' | 'ltr'>;\n}\n\n/** Controls navigation for a list of items. */\nexport class ListNavigation<T extends ListNavigationItem> {\n /** The last index that was active. */\n prevActiveIndex = signal(0);\n\n constructor(readonly inputs: ListNavigationInputs<T>) {}\n\n /** Navigates to the given item. */\n goto(item: T) {\n if (this.isFocusable(item)) {\n this.prevActiveIndex.set(this.inputs.activeIndex());\n const index = this.inputs.items().indexOf(item);\n this.inputs.activeIndex.set(index);\n }\n }\n\n /** Navigates to the next item in the list. */\n next() {\n this._advance(1);\n }\n\n /** Navigates to the previous item in the list. */\n prev() {\n this._advance(-1);\n }\n\n /** Navigates to the first item in the list. */\n first() {\n const item = this.inputs.items().find(i => this.isFocusable(i));\n\n if (item) {\n this.goto(item);\n }\n }\n\n /** Navigates to the last item in the list. */\n last() {\n const items = this.inputs.items();\n for (let i = items.length - 1; i >= 0; i--) {\n if (this.isFocusable(items[i])) {\n this.goto(items[i]);\n return;\n }\n }\n }\n\n /** Returns true if the given item can be navigated to. */\n isFocusable(item: T): boolean {\n return !item.disabled() || !this.inputs.skipDisabled();\n }\n\n /** Advances to the next or previous focusable item in the list based on the given delta. */\n private _advance(delta: 1 | -1) {\n const items = this.inputs.items();\n const itemCount = items.length;\n const startIndex = this.inputs.activeIndex();\n const step = (i: number) =>\n this.inputs.wrap() ? (i + delta + itemCount) % itemCount : i + delta;\n\n // If wrapping is enabled, this loop ultimately terminates when `i` gets back to `startIndex`\n // in the case that all options are disabled. If wrapping is disabled, the loop terminates\n // when the index goes out of bounds.\n for (let i = step(startIndex); i !== startIndex && i < itemCount && i >= 0; i = step(i)) {\n if (this.isFocusable(items[i])) {\n this.goto(items[i]);\n return;\n }\n }\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {SignalLike} from '../signal-like/signal-like';\nimport {ListNavigation, ListNavigationItem} from '../list-navigation/list-navigation';\n\n/** Represents an item in a collection, such as a listbox option, than may receive focus. */\nexport interface ListFocusItem extends ListNavigationItem {\n /** A unique identifier for the item. */\n id: SignalLike<string>;\n\n /** The html element that should receive focus. */\n element: SignalLike<HTMLElement>;\n}\n\n/** Represents the required inputs for a collection that contains focusable items. */\nexport interface ListFocusInputs<T extends ListFocusItem> {\n /** The focus strategy used by the list. */\n focusMode: SignalLike<'roving' | 'activedescendant'>;\n}\n\n/** Controls focus for a list of items. */\nexport class ListFocus<T extends ListFocusItem> {\n /** The navigation controller of the parent list. */\n navigation: ListNavigation<ListFocusItem>;\n\n constructor(readonly inputs: ListFocusInputs<T> & {navigation: ListNavigation<T>}) {\n this.navigation = inputs.navigation;\n }\n\n /** The id of the current active item. */\n getActiveDescendant(): string | undefined {\n if (this.inputs.focusMode() === 'roving') {\n return undefined;\n }\n return this.navigation.inputs.items()[this.navigation.inputs.activeIndex()].id();\n }\n\n /** The tabindex for the list. */\n getListTabindex(): -1 | 0 {\n return this.inputs.focusMode() === 'activedescendant' ? 0 : -1;\n }\n\n /** Returns the tabindex for the given item. */\n getItemTabindex(item: T): -1 | 0 {\n if (this.inputs.focusMode() === 'activedescendant') {\n return -1;\n }\n const index = this.navigation.inputs.items().indexOf(item);\n return this.navigation.inputs.activeIndex() === index ? 0 : -1;\n }\n\n /** Focuses the current active item. */\n focus() {\n if (this.inputs.focusMode() === 'activedescendant') {\n return;\n }\n\n const item = this.navigation.inputs.items()[this.navigation.inputs.activeIndex()];\n item.element().focus();\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {ModifierKey as Modifier} from '../behaviors/event-manager/event-manager';\nimport {KeyboardEventManager} from '../behaviors/event-manager/keyboard-event-manager';\nimport {PointerEventManager} from '../behaviors/event-manager/pointer-event-manager';\nimport {OptionPattern} from './option';\nimport {ListSelection, ListSelectionInputs} from '../behaviors/list-selection/list-selection';\nimport {ListTypeahead, ListTypeaheadInputs} from '../behaviors/list-typeahead/list-typeahead';\nimport {ListNavigation, ListNavigationInputs} from '../behaviors/list-navigation/list-navigation';\nimport {ListFocus, ListFocusInputs} from '../behaviors/list-focus/list-focus';\nimport {computed} from '@angular/core';\nimport {SignalLike} from '../behaviors/signal-like/signal-like';\n\n/** The selection operations that the listbox can perform. */\ninterface SelectOptions {\n select?: boolean;\n toggle?: boolean;\n toggleOne?: boolean;\n selectOne?: boolean;\n selectAll?: boolean;\n selectFromAnchor?: boolean;\n selectFromActive?: boolean;\n}\n\n/** Represents the required inputs for a listbox. */\nexport type ListboxInputs = ListNavigationInputs<OptionPattern> &\n ListSelectionInputs<OptionPattern> &\n ListTypeaheadInputs &\n ListFocusInputs<OptionPattern> & {\n disabled: SignalLike<boolean>;\n };\n\n/** Controls the state of a listbox. */\nexport class ListboxPattern {\n /** Controls navigation for the listbox. */\n navigation: ListNavigation<OptionPattern>;\n\n /** Controls selection for the listbox. */\n selection: ListSelection<OptionPattern>;\n\n /** Controls typeahead for the listbox. */\n typeahead: ListTypeahead<OptionPattern>;\n\n /** Controls focus for the listbox. */\n focusManager: ListFocus<OptionPattern>;\n\n /** Whether the list is vertically or horizontally oriented. */\n orientation: SignalLike<'vertical' | 'horizontal'>;\n\n /** Whether the listbox is disabled. */\n disabled: SignalLike<boolean>;\n\n /** The tabindex of the listbox. */\n tabindex = computed(() => this.focusManager.getListTabindex());\n\n /** The id of the current active item. */\n activedescendant = computed(() => this.focusManager.getActiveDescendant());\n\n /** Whether multiple items in the list can be selected at once. */\n multiselectable: SignalLike<boolean>;\n\n /** The number of items in the listbox. */\n setsize = computed(() => this.navigation.inputs.items().length);\n\n /** Whether the listbox selection follows focus. */\n followFocus = computed(() => this.inputs.selectionMode() === 'follow');\n\n /** The key used to navigate to the previous item in the list. */\n prevKey = computed(() => {\n if (this.inputs.orientation() === 'vertical') {\n return 'ArrowUp';\n }\n return this.inputs.textDirection() === 'rtl' ? 'ArrowRight' : 'ArrowLeft';\n });\n\n /** The key used to navigate to the next item in the list. */\n nextKey = computed(() => {\n if (this.inputs.orientation() === 'vertical') {\n return 'ArrowDown';\n }\n return this.inputs.textDirection() === 'rtl' ? 'ArrowLeft' : 'ArrowRight';\n });\n\n /** The regexp used to decide if a key should trigger typeahead. */\n typeaheadRegexp = /^.$/; // TODO: Ignore spaces?\n\n /** The keydown event manager for the listbox. */\n keydown = computed(() => {\n const manager = new KeyboardEventManager();\n\n if (!this.followFocus()) {\n manager\n .on(this.prevKey, () => this.prev())\n .on(this.nextKey, () => this.next())\n .on('Home', () => this.first())\n .on('End', () => this.last())\n .on(this.typeaheadRegexp, e => this.search(e.key));\n }\n\n if (this.followFocus()) {\n manager\n .on(this.prevKey, () => this.prev({selectOne: true}))\n .on(this.nextKey, () => this.next({selectOne: true}))\n .on('Home', () => this.first({selectOne: true}))\n .on('End', () => this.last({selectOne: true}))\n .on(this.typeaheadRegexp, e => this.search(e.key, {selectOne: true}));\n }\n\n if (this.inputs.multiselectable()) {\n manager\n .on(Modifier.Shift, ' ', () => this._updateSelection({selectFromAnchor: true}))\n .on(Modifier.Shift, 'Enter', () => this._updateSelection({selectFromAnchor: true}))\n .on(Modifier.Shift, this.prevKey, () => this.prev({toggle: true}))\n .on(Modifier.Shift, this.nextKey, () => this.next({toggle: true}))\n .on(Modifier.Ctrl | Modifier.Shift, 'Home', () => this.first({selectFromActive: true}))\n .on(Modifier.Ctrl | Modifier.Shift, 'End', () => this.last({selectFromActive: true}))\n .on(Modifier.Ctrl, 'A', () => this._updateSelection({selectAll: true}));\n }\n\n if (!this.followFocus() && this.inputs.multiselectable()) {\n manager.on(' ', () => this._updateSelection({toggle: true}));\n manager.on('Enter', () => this._updateSelection({toggle: true}));\n }\n\n if (!this.followFocus() && !this.inputs.multiselectable()) {\n manager.on(' ', () => this._updateSelection({toggleOne: true}));\n manager.on('Enter', () => this._updateSelection({toggleOne: true}));\n }\n\n if (this.inputs.multiselectable() && this.followFocus()) {\n manager\n .on(Modifier.Ctrl, this.prevKey, () => this.prev())\n .on(Modifier.Ctrl, this.nextKey, () => this.next())\n .on(Modifier.Ctrl, 'Home', () => this.first()) // TODO: Not in spec but prob should be.\n .on(Modifier.Ctrl, 'End', () => this.last()); // TODO: Not in spec but prob should be.\n }\n\n return manager;\n });\n\n /** The pointerdown event manager for the listbox. */\n pointerdown = computed(() => {\n const manager = new PointerEventManager();\n\n if (this.inputs.multiselectable()) {\n manager\n .on(e => this.goto(e, {toggle: true}))\n .on(Modifier.Shift, e => this.goto(e, {selectFromActive: true}));\n } else {\n manager.on(e => this.goto(e, {toggleOne: true}));\n }\n\n return manager;\n });\n\n constructor(readonly inputs: ListboxInputs) {\n this.disabled = inputs.disabled;\n this.orientation = inputs.orientation;\n this.multiselectable = inputs.multiselectable;\n\n this.navigation = new ListNavigation(inputs);\n this.selection = new ListSelection({...inputs, navigation: this.navigation});\n this.typeahead = new ListTypeahead({...inputs, navigation: this.navigation});\n this.focusManager = new ListFocus({...inputs, navigation: this.navigation});\n }\n\n /** Handles keydown events for the listbox. */\n onKeydown(event: KeyboardEvent) {\n if (!this.disabled()) {\n this.keydown().handle(event);\n }\n }\n\n onPointerdown(event: PointerEvent) {\n if (!this.disabled()) {\n this.pointerdown().handle(event);\n }\n }\n\n /** Navigates to the first option in the listbox. */\n first(opts?: SelectOptions) {\n this.navigation.first();\n this.focusManager.focus();\n this._updateSelection(opts);\n }\n\n /** Navigates to the last option in the listbox. */\n last(opts?: SelectOptions) {\n this.navigation.last();\n this.focusManager.focus();\n this._updateSelection(opts);\n }\n\n /** Navigates to the next option in the listbox. */\n next(opts?: SelectOptions) {\n this.navigation.next();\n this.focusManager.focus();\n this._updateSelection(opts);\n }\n\n /** Navigates to the previous option in the listbox. */\n prev(opts?: SelectOptions) {\n this.navigation.prev();\n this.focusManager.focus();\n this._updateSelection(opts);\n }\n\n /** Navigates to the given item in the listbox. */\n goto(event: PointerEvent, opts?: SelectOptions) {\n const item = this._getItem(event);\n\n if (item) {\n this.navigation.goto(item);\n this.focusManager.focus();\n this._updateSelection(opts);\n }\n }\n\n /** Handles typeahead search navigation for the listbox. */\n search(char: string, opts?: SelectOptions) {\n this.typeahead.search(char);\n this.focusManager.focus();\n this._updateSelection(opts);\n }\n\n /** Handles updating selection for the listbox. */\n private _updateSelection(opts?: SelectOptions) {\n if (opts?.select) {\n this.selection.select();\n }\n if (opts?.toggle) {\n this.selection.toggle();\n }\n if (opts?.toggleOne) {\n this.selection.toggleOne();\n }\n if (opts?.selectOne) {\n this.selection.selectOne();\n }\n if (opts?.selectAll) {\n this.selection.selectAll();\n }\n if (opts?.selectFromAnchor) {\n this.selection.selectFromPrevSelectedItem();\n }\n if (opts?.selectFromActive) {\n this.selection.selectFromActive();\n }\n }\n\n private _getItem(e: PointerEvent) {\n if (!(e.target instanceof HTMLElement)) {\n return;\n }\n\n const element = e.target.closest('[role=\"option\"]'); // TODO: Use a different identifier.\n return this.inputs.items().find(i => i.element() === element);\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {computed} from '@angular/core';\nimport {ListSelection, ListSelectionItem} from '../behaviors/list-selection/list-selection';\nimport {ListTypeaheadItem} from '../behaviors/list-typeahead/list-typeahead';\nimport {ListNavigation, ListNavigationItem} from '../behaviors/list-navigation/list-navigation';\nimport {ListFocus, ListFocusItem} from '../behaviors/list-focus/list-focus';\nimport {SignalLike} from '../behaviors/signal-like/signal-like';\n\n/**\n * Represents the properties exposed by a listbox that need to be accessed by an option.\n * This exists to avoid circular dependency errors between the listbox and option.\n */\ninterface ListboxPattern {\n focusManager: ListFocus<OptionPattern>;\n selection: ListSelection<OptionPattern>;\n navigation: ListNavigation<OptionPattern>;\n}\n\n/** Represents the required inputs for an option in a listbox. */\nexport interface OptionInputs\n extends ListNavigationItem,\n ListSelectionItem,\n ListTypeaheadItem,\n ListFocusItem {\n listbox: SignalLike<ListboxPattern | undefined>;\n}\n\n/** Represents an option in a listbox. */\nexport class OptionPattern {\n /** A unique identifier for the option. */\n id: SignalLike<string>;\n\n /** The position of the option in the list. */\n index = computed(\n () =>\n this.listbox()\n ?.navigation.inputs.items()\n .findIndex(i => i.id() === this.id()) ?? -1,\n );\n\n /** Whether the option is selected. */\n selected = computed(() => this.listbox()?.selection.inputs.selectedIds().includes(this.id()));\n\n /** Whether the option is disabled. */\n disabled: SignalLike<boolean>;\n\n /** The text used by the typeahead search. */\n searchTerm: SignalLike<string>;\n\n /** A reference to the parent listbox. */\n listbox: SignalLike<ListboxPattern | undefined>;\n\n /** The tabindex of the option. */\n tabindex = computed(() => this.listbox()?.focusManager.getItemTabindex(this));\n\n /** The html element that should receive focus. */\n element: SignalLike<HTMLElement>;\n\n constructor(args: OptionInputs) {\n this.id = args.id;\n this.listbox = args.listbox;\n this.element = args.element;\n this.disabled = args.disabled;\n this.searchTerm = args.searchTerm;\n }\n}\n"],"names":["Modifier"],"mappings":"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"}