@angular/cdk 20.1.5 → 20.1.6

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.
Files changed (59) hide show
  1. package/fesm2022/a11y-module-BPzgKr79.mjs.map +1 -1
  2. package/fesm2022/a11y.mjs.map +1 -1
  3. package/fesm2022/accordion.mjs.map +1 -1
  4. package/fesm2022/activedescendant-key-manager-CZAE5aFC.mjs.map +1 -1
  5. package/fesm2022/array-I1yfCXUO.mjs.map +1 -1
  6. package/fesm2022/bidi.mjs.map +1 -1
  7. package/fesm2022/breakpoints-observer-QutrMj4x.mjs.map +1 -1
  8. package/fesm2022/cdk.mjs +1 -1
  9. package/fesm2022/cdk.mjs.map +1 -1
  10. package/fesm2022/clipboard.mjs.map +1 -1
  11. package/fesm2022/coercion/private.mjs.map +1 -1
  12. package/fesm2022/coercion.mjs.map +1 -1
  13. package/fesm2022/css-pixel-value-C_HEqLhI.mjs.map +1 -1
  14. package/fesm2022/data-source-D34wiQZj.mjs.map +1 -1
  15. package/fesm2022/dialog.mjs.map +1 -1
  16. package/fesm2022/directionality-CChdj3az.mjs.map +1 -1
  17. package/fesm2022/dispose-view-repeater-strategy-Cvpav0PR.mjs.map +1 -1
  18. package/fesm2022/drag-drop.mjs.map +1 -1
  19. package/fesm2022/element-x4z00URv.mjs.map +1 -1
  20. package/fesm2022/fake-event-detection-DWOdFTFz.mjs.map +1 -1
  21. package/fesm2022/focus-key-manager-CPmlyB_c.mjs.map +1 -1
  22. package/fesm2022/focus-monitor-DUe99AIS.mjs.map +1 -1
  23. package/fesm2022/id-generator-LuoRZSid.mjs.map +1 -1
  24. package/fesm2022/keycodes-CpHkExLC.mjs.map +1 -1
  25. package/fesm2022/keycodes.mjs.map +1 -1
  26. package/fesm2022/layout.mjs.map +1 -1
  27. package/fesm2022/list-key-manager-C7tp3RbG.mjs.map +1 -1
  28. package/fesm2022/listbox.mjs.map +1 -1
  29. package/fesm2022/menu.mjs +21 -7
  30. package/fesm2022/menu.mjs.map +1 -1
  31. package/fesm2022/observers/private.mjs.map +1 -1
  32. package/fesm2022/observers.mjs.map +1 -1
  33. package/fesm2022/overlay-module-Bd2UplUU.mjs.map +1 -1
  34. package/fesm2022/overlay.mjs.map +1 -1
  35. package/fesm2022/passive-listeners-esHZRgIN.mjs.map +1 -1
  36. package/fesm2022/platform-DNDzkVcI.mjs.map +1 -1
  37. package/fesm2022/platform.mjs.map +1 -1
  38. package/fesm2022/portal.mjs.map +1 -1
  39. package/fesm2022/private.mjs.map +1 -1
  40. package/fesm2022/recycle-view-repeater-strategy-SfuyU210.mjs.map +1 -1
  41. package/fesm2022/scrolling-BkvA05C8.mjs.map +1 -1
  42. package/fesm2022/scrolling.mjs.map +1 -1
  43. package/fesm2022/selection-model-BCgC8uEN.mjs.map +1 -1
  44. package/fesm2022/shadow-dom-B0oHn41l.mjs.map +1 -1
  45. package/fesm2022/stepper.mjs.map +1 -1
  46. package/fesm2022/style-loader-B2sGQXxD.mjs.map +1 -1
  47. package/fesm2022/table.mjs.map +1 -1
  48. package/fesm2022/test-environment-CT0XxPyp.mjs.map +1 -1
  49. package/fesm2022/testing/selenium-webdriver.mjs.map +1 -1
  50. package/fesm2022/testing/testbed.mjs.map +1 -1
  51. package/fesm2022/testing.mjs.map +1 -1
  52. package/fesm2022/text-field.mjs.map +1 -1
  53. package/fesm2022/tree-key-manager-KnCoIkIC.mjs.map +1 -1
  54. package/fesm2022/tree.mjs.map +1 -1
  55. package/fesm2022/typeahead-9ZW4Dtsf.mjs.map +1 -1
  56. package/fesm2022/unique-selection-dispatcher-Cewa_Eg3.mjs.map +1 -1
  57. package/menu/index.d.ts +7 -3
  58. package/package.json +1 -1
  59. package/schematics/ng-add/index.js +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"typeahead-9ZW4Dtsf.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-46c76129e412/bin/src/cdk/a11y/key-manager/typeahead.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 {A, NINE, Z, ZERO} from '../../keycodes';\nimport {Subject, Observable} from 'rxjs';\nimport {debounceTime, filter, map, tap} from 'rxjs/operators';\n\nconst DEFAULT_TYPEAHEAD_DEBOUNCE_INTERVAL_MS = 200;\n\ninterface TypeaheadItem {\n getLabel?(): string;\n}\n\ninterface TypeaheadConfig<T> {\n debounceInterval?: number;\n skipPredicate?: (item: T) => boolean | undefined;\n}\n\n/**\n * Selects items based on keyboard inputs. Implements the typeahead functionality of\n * `role=\"listbox\"` or `role=\"tree\"` and other related roles.\n */\nexport class Typeahead<T extends TypeaheadItem> {\n private readonly _letterKeyStream = new Subject<string>();\n private _items: readonly T[] = [];\n private _selectedItemIndex = -1;\n\n /** Buffer for the letters that the user has pressed */\n private _pressedLetters: string[] = [];\n\n private _skipPredicateFn?: (item: T) => boolean | undefined;\n\n private readonly _selectedItem = new Subject<T>();\n readonly selectedItem: Observable<T> = this._selectedItem;\n\n constructor(initialItems: readonly T[], config?: TypeaheadConfig<T>) {\n const typeAheadInterval =\n typeof config?.debounceInterval === 'number'\n ? config.debounceInterval\n : DEFAULT_TYPEAHEAD_DEBOUNCE_INTERVAL_MS;\n\n if (config?.skipPredicate) {\n this._skipPredicateFn = config.skipPredicate;\n }\n\n if (\n (typeof ngDevMode === 'undefined' || ngDevMode) &&\n initialItems.length &&\n initialItems.some(item => typeof item.getLabel !== 'function')\n ) {\n throw new Error('KeyManager items in typeahead mode must implement the `getLabel` method.');\n }\n\n this.setItems(initialItems);\n this._setupKeyHandler(typeAheadInterval);\n }\n\n destroy() {\n this._pressedLetters = [];\n this._letterKeyStream.complete();\n this._selectedItem.complete();\n }\n\n setCurrentSelectedItemIndex(index: number) {\n this._selectedItemIndex = index;\n }\n\n setItems(items: readonly T[]) {\n this._items = items;\n }\n\n handleKey(event: KeyboardEvent): void {\n const keyCode = event.keyCode;\n\n // Attempt to use the `event.key` which also maps it to the user's keyboard language,\n // otherwise fall back to resolving alphanumeric characters via the keyCode.\n if (event.key && event.key.length === 1) {\n this._letterKeyStream.next(event.key.toLocaleUpperCase());\n } else if ((keyCode >= A && keyCode <= Z) || (keyCode >= ZERO && keyCode <= NINE)) {\n this._letterKeyStream.next(String.fromCharCode(keyCode));\n }\n }\n\n /** Gets whether the user is currently typing into the manager using the typeahead feature. */\n isTyping(): boolean {\n return this._pressedLetters.length > 0;\n }\n\n /** Resets the currently stored sequence of typed letters. */\n reset(): void {\n this._pressedLetters = [];\n }\n\n private _setupKeyHandler(typeAheadInterval: number) {\n // Debounce the presses of non-navigational keys, collect the ones that correspond to letters\n // and convert those letters back into a string. Afterwards find the first item that starts\n // with that string and select it.\n this._letterKeyStream\n .pipe(\n tap(letter => this._pressedLetters.push(letter)),\n debounceTime(typeAheadInterval),\n filter(() => this._pressedLetters.length > 0),\n map(() => this._pressedLetters.join('').toLocaleUpperCase()),\n )\n .subscribe(inputString => {\n // Start at 1 because we want to start searching at the item immediately\n // following the current active item.\n for (let i = 1; i < this._items.length + 1; i++) {\n const index = (this._selectedItemIndex + i) % this._items.length;\n const item = this._items[index];\n\n if (\n !this._skipPredicateFn?.(item) &&\n item.getLabel?.().toLocaleUpperCase().trim().indexOf(inputString) === 0\n ) {\n this._selectedItem.next(item);\n break;\n }\n }\n\n this._pressedLetters = [];\n });\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"typeahead-9ZW4Dtsf.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-c646aa77115d/bin/src/cdk/a11y/key-manager/typeahead.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 {A, NINE, Z, ZERO} from '../../keycodes';\nimport {Subject, Observable} from 'rxjs';\nimport {debounceTime, filter, map, tap} from 'rxjs/operators';\n\nconst DEFAULT_TYPEAHEAD_DEBOUNCE_INTERVAL_MS = 200;\n\ninterface TypeaheadItem {\n getLabel?(): string;\n}\n\ninterface TypeaheadConfig<T> {\n debounceInterval?: number;\n skipPredicate?: (item: T) => boolean | undefined;\n}\n\n/**\n * Selects items based on keyboard inputs. Implements the typeahead functionality of\n * `role=\"listbox\"` or `role=\"tree\"` and other related roles.\n */\nexport class Typeahead<T extends TypeaheadItem> {\n private readonly _letterKeyStream = new Subject<string>();\n private _items: readonly T[] = [];\n private _selectedItemIndex = -1;\n\n /** Buffer for the letters that the user has pressed */\n private _pressedLetters: string[] = [];\n\n private _skipPredicateFn?: (item: T) => boolean | undefined;\n\n private readonly _selectedItem = new Subject<T>();\n readonly selectedItem: Observable<T> = this._selectedItem;\n\n constructor(initialItems: readonly T[], config?: TypeaheadConfig<T>) {\n const typeAheadInterval =\n typeof config?.debounceInterval === 'number'\n ? config.debounceInterval\n : DEFAULT_TYPEAHEAD_DEBOUNCE_INTERVAL_MS;\n\n if (config?.skipPredicate) {\n this._skipPredicateFn = config.skipPredicate;\n }\n\n if (\n (typeof ngDevMode === 'undefined' || ngDevMode) &&\n initialItems.length &&\n initialItems.some(item => typeof item.getLabel !== 'function')\n ) {\n throw new Error('KeyManager items in typeahead mode must implement the `getLabel` method.');\n }\n\n this.setItems(initialItems);\n this._setupKeyHandler(typeAheadInterval);\n }\n\n destroy() {\n this._pressedLetters = [];\n this._letterKeyStream.complete();\n this._selectedItem.complete();\n }\n\n setCurrentSelectedItemIndex(index: number) {\n this._selectedItemIndex = index;\n }\n\n setItems(items: readonly T[]) {\n this._items = items;\n }\n\n handleKey(event: KeyboardEvent): void {\n const keyCode = event.keyCode;\n\n // Attempt to use the `event.key` which also maps it to the user's keyboard language,\n // otherwise fall back to resolving alphanumeric characters via the keyCode.\n if (event.key && event.key.length === 1) {\n this._letterKeyStream.next(event.key.toLocaleUpperCase());\n } else if ((keyCode >= A && keyCode <= Z) || (keyCode >= ZERO && keyCode <= NINE)) {\n this._letterKeyStream.next(String.fromCharCode(keyCode));\n }\n }\n\n /** Gets whether the user is currently typing into the manager using the typeahead feature. */\n isTyping(): boolean {\n return this._pressedLetters.length > 0;\n }\n\n /** Resets the currently stored sequence of typed letters. */\n reset(): void {\n this._pressedLetters = [];\n }\n\n private _setupKeyHandler(typeAheadInterval: number) {\n // Debounce the presses of non-navigational keys, collect the ones that correspond to letters\n // and convert those letters back into a string. Afterwards find the first item that starts\n // with that string and select it.\n this._letterKeyStream\n .pipe(\n tap(letter => this._pressedLetters.push(letter)),\n debounceTime(typeAheadInterval),\n filter(() => this._pressedLetters.length > 0),\n map(() => this._pressedLetters.join('').toLocaleUpperCase()),\n )\n .subscribe(inputString => {\n // Start at 1 because we want to start searching at the item immediately\n // following the current active item.\n for (let i = 1; i < this._items.length + 1; i++) {\n const index = (this._selectedItemIndex + i) % this._items.length;\n const item = this._items[index];\n\n if (\n !this._skipPredicateFn?.(item) &&\n item.getLabel?.().toLocaleUpperCase().trim().indexOf(inputString) === 0\n ) {\n this._selectedItem.next(item);\n break;\n }\n }\n\n this._pressedLetters = [];\n });\n }\n}\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"unique-selection-dispatcher-Cewa_Eg3.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-46c76129e412/bin/src/cdk/collections/unique-selection-dispatcher.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 {Injectable, OnDestroy} from '@angular/core';\n\n// Users of the Dispatcher never need to see this type, but TypeScript requires it to be exported.\nexport type UniqueSelectionDispatcherListener = (id: string, name: string) => void;\n\n/**\n * Class to coordinate unique selection based on name.\n * Intended to be consumed as an Angular service.\n * This service is needed because native radio change events are only fired on the item currently\n * being selected, and we still need to uncheck the previous selection.\n *\n * This service does not *store* any IDs and names because they may change at any time, so it is\n * less error-prone if they are simply passed through when the events occur.\n */\n@Injectable({providedIn: 'root'})\nexport class UniqueSelectionDispatcher implements OnDestroy {\n private _listeners: UniqueSelectionDispatcherListener[] = [];\n\n /**\n * Notify other items that selection for the given name has been set.\n * @param id ID of the item.\n * @param name Name of the item.\n */\n notify(id: string, name: string) {\n for (let listener of this._listeners) {\n listener(id, name);\n }\n }\n\n /**\n * Listen for future changes to item selection.\n * @return Function used to deregister listener\n */\n listen(listener: UniqueSelectionDispatcherListener): () => void {\n this._listeners.push(listener);\n return () => {\n this._listeners = this._listeners.filter((registered: UniqueSelectionDispatcherListener) => {\n return listener !== registered;\n });\n };\n }\n\n ngOnDestroy() {\n this._listeners = [];\n }\n}\n"],"names":[],"mappings":";;;AAaA;;;;;;;;AAQG;MAEU,yBAAyB,CAAA;IAC5B,UAAU,GAAwC,EAAE;AAE5D;;;;AAIG;IACH,MAAM,CAAC,EAAU,EAAE,IAAY,EAAA;AAC7B,QAAA,KAAK,IAAI,QAAQ,IAAI,IAAI,CAAC,UAAU,EAAE;AACpC,YAAA,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;;;AAItB;;;AAGG;AACH,IAAA,MAAM,CAAC,QAA2C,EAAA;AAChD,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC9B,QAAA,OAAO,MAAK;AACV,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,UAA6C,KAAI;gBACzF,OAAO,QAAQ,KAAK,UAAU;AAChC,aAAC,CAAC;AACJ,SAAC;;IAGH,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,UAAU,GAAG,EAAE;;uGA5BX,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAzB,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,yBAAyB,cADb,MAAM,EAAA,CAAA;;2FAClB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBADrC,UAAU;mBAAC,EAAC,UAAU,EAAE,MAAM,EAAC;;;;;"}
1
+ {"version":3,"file":"unique-selection-dispatcher-Cewa_Eg3.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-c646aa77115d/bin/src/cdk/collections/unique-selection-dispatcher.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 {Injectable, OnDestroy} from '@angular/core';\n\n// Users of the Dispatcher never need to see this type, but TypeScript requires it to be exported.\nexport type UniqueSelectionDispatcherListener = (id: string, name: string) => void;\n\n/**\n * Class to coordinate unique selection based on name.\n * Intended to be consumed as an Angular service.\n * This service is needed because native radio change events are only fired on the item currently\n * being selected, and we still need to uncheck the previous selection.\n *\n * This service does not *store* any IDs and names because they may change at any time, so it is\n * less error-prone if they are simply passed through when the events occur.\n */\n@Injectable({providedIn: 'root'})\nexport class UniqueSelectionDispatcher implements OnDestroy {\n private _listeners: UniqueSelectionDispatcherListener[] = [];\n\n /**\n * Notify other items that selection for the given name has been set.\n * @param id ID of the item.\n * @param name Name of the item.\n */\n notify(id: string, name: string) {\n for (let listener of this._listeners) {\n listener(id, name);\n }\n }\n\n /**\n * Listen for future changes to item selection.\n * @return Function used to deregister listener\n */\n listen(listener: UniqueSelectionDispatcherListener): () => void {\n this._listeners.push(listener);\n return () => {\n this._listeners = this._listeners.filter((registered: UniqueSelectionDispatcherListener) => {\n return listener !== registered;\n });\n };\n }\n\n ngOnDestroy() {\n this._listeners = [];\n }\n}\n"],"names":[],"mappings":";;;AAaA;;;;;;;;AAQG;MAEU,yBAAyB,CAAA;IAC5B,UAAU,GAAwC,EAAE;AAE5D;;;;AAIG;IACH,MAAM,CAAC,EAAU,EAAE,IAAY,EAAA;AAC7B,QAAA,KAAK,IAAI,QAAQ,IAAI,IAAI,CAAC,UAAU,EAAE;AACpC,YAAA,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;;;AAItB;;;AAGG;AACH,IAAA,MAAM,CAAC,QAA2C,EAAA;AAChD,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC9B,QAAA,OAAO,MAAK;AACV,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,UAA6C,KAAI;gBACzF,OAAO,QAAQ,KAAK,UAAU;AAChC,aAAC,CAAC;AACJ,SAAC;;IAGH,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,UAAU,GAAG,EAAE;;uGA5BX,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAzB,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,yBAAyB,cADb,MAAM,EAAA,CAAA;;2FAClB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBADrC,UAAU;mBAAC,EAAC,UAAU,EAAE,MAAM,EAAC;;;;;"}
package/menu/index.d.ts CHANGED
@@ -458,7 +458,7 @@ declare class CdkMenuItem implements FocusableOption, FocusableElement, Toggler,
458
458
  /** The stack of menus this menu belongs to. */
459
459
  private readonly _menuStack;
460
460
  /** The parent menu in which this menuitem resides. */
461
- private readonly _parentMenu;
461
+ readonly _parentMenu: Menu | null;
462
462
  /** Reference to the CdkMenuItemTrigger directive if one is added to the same element */
463
463
  private readonly _menuTrigger;
464
464
  /** Whether the CdkMenuItem is disabled - defaults to false */
@@ -567,9 +567,11 @@ declare abstract class CdkMenuBase extends CdkMenuGroup implements Menu, AfterCo
567
567
  protected readonly menuAim: MenuAim | null;
568
568
  /** The directionality (text direction) of the current page. */
569
569
  protected readonly dir: Directionality | null;
570
+ /** All items inside the menu, including ones that belong to other menus. */
571
+ protected _allItems: QueryList<CdkMenuItem>;
570
572
  /** The id of the menu's host element. */
571
573
  id: string;
572
- /** All child MenuItem elements nested in this Menu. */
574
+ /** All child MenuItem elements belonging to this Menu. */
573
575
  readonly items: QueryList<CdkMenuItem>;
574
576
  /** The direction items in the menu flow. */
575
577
  orientation: 'horizontal' | 'vertical';
@@ -617,6 +619,8 @@ declare abstract class CdkMenuBase extends CdkMenuGroup implements Menu, AfterCo
617
619
  protected closeOpenMenu(menu: MenuStackItem, options?: {
618
620
  focusParentTrigger?: boolean;
619
621
  }): void;
622
+ /** Sets up the subscription that keeps the items list in sync. */
623
+ private _setItems;
620
624
  /** Setup the FocusKeyManager with the correct orientation for the menu. */
621
625
  private _setKeyManager;
622
626
  /**
@@ -636,7 +640,7 @@ declare abstract class CdkMenuBase extends CdkMenuGroup implements Menu, AfterCo
636
640
  /** Handles focus landing on the host element of the menu. */
637
641
  private _handleFocus;
638
642
  static ɵfac: i0.ɵɵFactoryDeclaration<CdkMenuBase, never>;
639
- static ɵdir: i0.ɵɵDirectiveDeclaration<CdkMenuBase, never, never, { "id": { "alias": "id"; "required": false; }; }, {}, ["items"], never, true, never>;
643
+ static ɵdir: i0.ɵɵDirectiveDeclaration<CdkMenuBase, never, never, { "id": { "alias": "id"; "required": false; }; }, {}, ["_allItems"], never, true, never>;
640
644
  }
641
645
 
642
646
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@angular/cdk",
3
- "version": "20.1.5",
3
+ "version": "20.1.6",
4
4
  "description": "Angular Material Component Development Kit",
5
5
  "repository": {
6
6
  "type": "git",
@@ -26,6 +26,6 @@ function default_1() {
26
26
  // In order to align the CDK version with other Angular dependencies that are setup by
27
27
  // `@schematics/angular`, we use tilde instead of caret. This is default for Angular
28
28
  // dependencies in new CLI projects.
29
- return (0, utility_1.addDependency)('@angular/cdk', `~20.1.5`, { existing: utility_1.ExistingBehavior.Skip });
29
+ return (0, utility_1.addDependency)('@angular/cdk', `~20.1.6`, { existing: utility_1.ExistingBehavior.Skip });
30
30
  }
31
31
  //# sourceMappingURL=index.js.map