@angular/cdk 19.1.0-next.2 → 19.1.0-next.3

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 (48) hide show
  1. package/a11y/index.d.ts +4 -3
  2. package/dialog/index.d.ts +1 -0
  3. package/drag-drop/index.d.ts +34 -3
  4. package/fesm2022/a11y.mjs +82 -81
  5. package/fesm2022/a11y.mjs.map +1 -1
  6. package/fesm2022/accordion.mjs +10 -10
  7. package/fesm2022/bidi.mjs +10 -10
  8. package/fesm2022/cdk.mjs +1 -1
  9. package/fesm2022/cdk.mjs.map +1 -1
  10. package/fesm2022/clipboard.mjs +10 -10
  11. package/fesm2022/collections.mjs +3 -3
  12. package/fesm2022/dialog.mjs +16 -15
  13. package/fesm2022/dialog.mjs.map +1 -1
  14. package/fesm2022/drag-drop.mjs +153 -114
  15. package/fesm2022/drag-drop.mjs.map +1 -1
  16. package/fesm2022/layout.mjs +10 -10
  17. package/fesm2022/listbox.mjs +23 -29
  18. package/fesm2022/listbox.mjs.map +1 -1
  19. package/fesm2022/menu.mjs +131 -114
  20. package/fesm2022/menu.mjs.map +1 -1
  21. package/fesm2022/observers/private.mjs +8 -8
  22. package/fesm2022/observers/private.mjs.map +1 -1
  23. package/fesm2022/observers.mjs +13 -13
  24. package/fesm2022/overlay.mjs +89 -106
  25. package/fesm2022/overlay.mjs.map +1 -1
  26. package/fesm2022/platform.mjs +30 -9
  27. package/fesm2022/platform.mjs.map +1 -1
  28. package/fesm2022/portal.mjs +16 -16
  29. package/fesm2022/private.mjs +6 -6
  30. package/fesm2022/scrolling.mjs +64 -86
  31. package/fesm2022/scrolling.mjs.map +1 -1
  32. package/fesm2022/stepper.mjs +22 -22
  33. package/fesm2022/table.mjs +76 -76
  34. package/fesm2022/testing/testbed.mjs +83 -40
  35. package/fesm2022/testing/testbed.mjs.map +1 -1
  36. package/fesm2022/text-field.mjs +42 -52
  37. package/fesm2022/text-field.mjs.map +1 -1
  38. package/fesm2022/tree.mjs +25 -25
  39. package/listbox/index.d.ts +1 -5
  40. package/menu/index.d.ts +18 -19
  41. package/observers/private/index.d.ts +1 -0
  42. package/overlay/index.d.ts +12 -6
  43. package/package.json +1 -1
  44. package/platform/index.d.ts +10 -0
  45. package/schematics/ng-add/index.js +1 -1
  46. package/schematics/ng-add/index.mjs +1 -1
  47. package/scrolling/index.d.ts +7 -14
  48. package/text-field/index.d.ts +4 -4
package/fesm2022/menu.mjs CHANGED
@@ -1,11 +1,11 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Directive, InjectionToken, Optional, SkipSelf, Inject, inject, Injectable, Injector, ViewContainerRef, EventEmitter, NgZone, ElementRef, ChangeDetectorRef, booleanAttribute, Input, Output, signal, computed, ContentChildren, NgModule } from '@angular/core';
2
+ import { Directive, InjectionToken, Optional, SkipSelf, Inject, inject, Injectable, Injector, ViewContainerRef, EventEmitter, NgZone, RendererFactory2, ElementRef, ChangeDetectorRef, Renderer2, booleanAttribute, Input, Output, signal, computed, ContentChildren, NgModule } from '@angular/core';
3
3
  import { Overlay, OverlayConfig, STANDARD_DROPDOWN_BELOW_POSITIONS, STANDARD_DROPDOWN_ADJACENT_POSITIONS, OverlayModule } from '@angular/cdk/overlay';
4
4
  import { ENTER, SPACE, UP_ARROW, hasModifierKey, DOWN_ARROW, LEFT_ARROW, RIGHT_ARROW, TAB, ESCAPE } from '@angular/cdk/keycodes';
5
- import { startWith, debounceTime, distinctUntilChanged, filter, takeUntil, mergeMap, mapTo, mergeAll, switchMap, skipWhile, skip } from 'rxjs/operators';
5
+ import { startWith, debounceTime, distinctUntilChanged, takeUntil, mergeMap, mapTo, mergeAll, switchMap, skipWhile, skip } from 'rxjs/operators';
6
6
  import { UniqueSelectionDispatcher } from '@angular/cdk/collections';
7
7
  import { _IdGenerator, InputModalityDetector, FocusKeyManager } from '@angular/cdk/a11y';
8
- import { Subject, merge, fromEvent, defer, partition } from 'rxjs';
8
+ import { Subject, merge, partition } from 'rxjs';
9
9
  import { TemplatePortal } from '@angular/cdk/portal';
10
10
  import { Directionality } from '@angular/cdk/bidi';
11
11
  import { _getEventTarget } from '@angular/cdk/platform';
@@ -14,10 +14,10 @@ import { _getEventTarget } from '@angular/cdk/platform';
14
14
  * A grouping container for `CdkMenuItemRadio` instances, similar to a `role="radiogroup"` element.
15
15
  */
16
16
  class CdkMenuGroup {
17
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.2", ngImport: i0, type: CdkMenuGroup, deps: [], target: i0.ɵɵFactoryTarget.Directive });
18
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.0-next.2", type: CdkMenuGroup, isStandalone: true, selector: "[cdkMenuGroup]", host: { attributes: { "role": "group" }, classAttribute: "cdk-menu-group" }, providers: [{ provide: UniqueSelectionDispatcher, useClass: UniqueSelectionDispatcher }], exportAs: ["cdkMenuGroup"], ngImport: i0 });
17
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.3", ngImport: i0, type: CdkMenuGroup, deps: [], target: i0.ɵɵFactoryTarget.Directive });
18
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.0-next.3", type: CdkMenuGroup, isStandalone: true, selector: "[cdkMenuGroup]", host: { attributes: { "role": "group" }, classAttribute: "cdk-menu-group" }, providers: [{ provide: UniqueSelectionDispatcher, useClass: UniqueSelectionDispatcher }], exportAs: ["cdkMenuGroup"], ngImport: i0 });
19
19
  }
20
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.2", ngImport: i0, type: CdkMenuGroup, decorators: [{
20
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.3", ngImport: i0, type: CdkMenuGroup, decorators: [{
21
21
  type: Directive,
22
22
  args: [{
23
23
  selector: '[cdkMenuGroup]',
@@ -174,10 +174,10 @@ class MenuStack {
174
174
  setHasFocus(hasFocus) {
175
175
  this._hasFocus.next(hasFocus);
176
176
  }
177
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.2", ngImport: i0, type: MenuStack, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
178
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.0-next.2", ngImport: i0, type: MenuStack });
177
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.3", ngImport: i0, type: MenuStack, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
178
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.0-next.3", ngImport: i0, type: MenuStack });
179
179
  }
180
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.2", ngImport: i0, type: MenuStack, decorators: [{
180
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.3", ngImport: i0, type: MenuStack, decorators: [{
181
181
  type: Injectable
182
182
  }] });
183
183
 
@@ -286,10 +286,10 @@ class CdkMenuTriggerBase {
286
286
  });
287
287
  return this._childMenuInjector;
288
288
  }
289
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.2", ngImport: i0, type: CdkMenuTriggerBase, deps: [], target: i0.ɵɵFactoryTarget.Directive });
290
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.0-next.2", type: CdkMenuTriggerBase, isStandalone: true, host: { properties: { "attr.aria-controls": "childMenu?.id", "attr.data-cdk-menu-stack-id": "menuStack.id" } }, ngImport: i0 });
289
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.3", ngImport: i0, type: CdkMenuTriggerBase, deps: [], target: i0.ɵɵFactoryTarget.Directive });
290
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.0-next.3", type: CdkMenuTriggerBase, isStandalone: true, host: { properties: { "attr.aria-controls": "childMenu?.id", "attr.data-cdk-menu-stack-id": "menuStack.id" } }, ngImport: i0 });
291
291
  }
292
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.2", ngImport: i0, type: CdkMenuTriggerBase, decorators: [{
292
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.3", ngImport: i0, type: CdkMenuTriggerBase, decorators: [{
293
293
  type: Directive,
294
294
  args: [{
295
295
  host: {
@@ -362,8 +362,9 @@ function isWithinSubmenu(submenuPoints, m, b) {
362
362
  * to submenu.
363
363
  */
364
364
  class TargetMenuAim {
365
- /** The Angular zone. */
366
365
  _ngZone = inject(NgZone);
366
+ _renderer = inject(RendererFactory2).createRenderer(null, null);
367
+ _cleanupMousemove;
367
368
  /** The last NUM_POINTS mouse move events. */
368
369
  _points = [];
369
370
  /** Reference to the root menu in which we are tracking mouse moves. */
@@ -375,6 +376,7 @@ class TargetMenuAim {
375
376
  /** Emits when this service is destroyed. */
376
377
  _destroyed = new Subject();
377
378
  ngOnDestroy() {
379
+ this._cleanupMousemove?.();
378
380
  this._destroyed.next();
379
381
  this._destroyed.complete();
380
382
  }
@@ -475,21 +477,24 @@ class TargetMenuAim {
475
477
  }
476
478
  /** Subscribe to the root menus mouse move events and update the tracked mouse points. */
477
479
  _subscribeToMouseMoves() {
478
- this._ngZone.runOutsideAngular(() => {
479
- fromEvent(this._menu.nativeElement, 'mousemove')
480
- .pipe(filter((_, index) => index % MOUSE_MOVE_SAMPLE_FREQUENCY === 0), takeUntil(this._destroyed))
481
- .subscribe((event) => {
482
- this._points.push({ x: event.clientX, y: event.clientY });
483
- if (this._points.length > NUM_POINTS) {
484
- this._points.shift();
480
+ this._cleanupMousemove?.();
481
+ this._cleanupMousemove = this._ngZone.runOutsideAngular(() => {
482
+ let eventIndex = 0;
483
+ return this._renderer.listen(this._menu.nativeElement, 'mousemove', (event) => {
484
+ if (eventIndex % MOUSE_MOVE_SAMPLE_FREQUENCY === 0) {
485
+ this._points.push({ x: event.clientX, y: event.clientY });
486
+ if (this._points.length > NUM_POINTS) {
487
+ this._points.shift();
488
+ }
485
489
  }
490
+ eventIndex++;
486
491
  });
487
492
  });
488
493
  }
489
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.2", ngImport: i0, type: TargetMenuAim, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
490
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.0-next.2", ngImport: i0, type: TargetMenuAim });
494
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.3", ngImport: i0, type: TargetMenuAim, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
495
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.0-next.3", ngImport: i0, type: TargetMenuAim });
491
496
  }
492
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.2", ngImport: i0, type: TargetMenuAim, decorators: [{
497
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.3", ngImport: i0, type: TargetMenuAim, decorators: [{
493
498
  type: Injectable
494
499
  }] });
495
500
  /**
@@ -497,10 +502,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.2",
497
502
  * element with either the `cdkMenu` or `cdkMenuBar` directive and child menu items.
498
503
  */
499
504
  class CdkTargetMenuAim {
500
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.2", ngImport: i0, type: CdkTargetMenuAim, deps: [], target: i0.ɵɵFactoryTarget.Directive });
501
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.0-next.2", type: CdkTargetMenuAim, isStandalone: true, selector: "[cdkTargetMenuAim]", providers: [{ provide: MENU_AIM, useClass: TargetMenuAim }], exportAs: ["cdkTargetMenuAim"], ngImport: i0 });
505
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.3", ngImport: i0, type: CdkTargetMenuAim, deps: [], target: i0.ɵɵFactoryTarget.Directive });
506
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.0-next.3", type: CdkTargetMenuAim, isStandalone: true, selector: "[cdkTargetMenuAim]", providers: [{ provide: MENU_AIM, useClass: TargetMenuAim }], exportAs: ["cdkTargetMenuAim"], ngImport: i0 });
502
507
  }
503
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.2", ngImport: i0, type: CdkTargetMenuAim, decorators: [{
508
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.3", ngImport: i0, type: CdkTargetMenuAim, decorators: [{
504
509
  type: Directive,
505
510
  args: [{
506
511
  selector: '[cdkTargetMenuAim]',
@@ -543,6 +548,8 @@ class CdkMenuTrigger extends CdkMenuTriggerBase {
543
548
  _changeDetectorRef = inject(ChangeDetectorRef);
544
549
  _inputModalityDetector = inject(InputModalityDetector);
545
550
  _directionality = inject(Directionality, { optional: true });
551
+ _renderer = inject(Renderer2);
552
+ _cleanupMouseenter;
546
553
  /** The parent menu this trigger belongs to. */
547
554
  _parentMenu = inject(CDK_MENU, { optional: true });
548
555
  /** The menu aim service used by this menu. */
@@ -585,6 +592,10 @@ class CdkMenuTrigger extends CdkMenuTriggerBase {
585
592
  getMenu() {
586
593
  return this.childMenu;
587
594
  }
595
+ ngOnDestroy() {
596
+ this._cleanupMouseenter();
597
+ super.ngOnDestroy();
598
+ }
588
599
  /**
589
600
  * Handles keyboard events for the menu item.
590
601
  * @param event The keyboard event to handle
@@ -651,26 +662,24 @@ class CdkMenuTrigger extends CdkMenuTriggerBase {
651
662
  * into.
652
663
  */
653
664
  _subscribeToMouseEnter() {
654
- this._ngZone.runOutsideAngular(() => {
655
- fromEvent(this._elementRef.nativeElement, 'mouseenter')
656
- .pipe(filter(() => {
657
- return (
665
+ this._cleanupMouseenter = this._ngZone.runOutsideAngular(() => {
666
+ return this._renderer.listen(this._elementRef.nativeElement, 'mouseenter', () => {
667
+ if (
658
668
  // Skip fake `mouseenter` events dispatched by touch devices.
659
669
  this._inputModalityDetector.mostRecentModality !== 'touch' &&
660
670
  !this.menuStack.isEmpty() &&
661
- !this.isOpen());
662
- }), takeUntil(this.destroyed))
663
- .subscribe(() => {
664
- // Closes any sibling menu items and opens the menu associated with this trigger.
665
- const toggleMenus = () => this._ngZone.run(() => {
666
- this._closeSiblingTriggers();
667
- this.open();
668
- });
669
- if (this._menuAim) {
670
- this._menuAim.toggle(toggleMenus);
671
- }
672
- else {
673
- toggleMenus();
671
+ !this.isOpen()) {
672
+ // Closes any sibling menu items and opens the menu associated with this trigger.
673
+ const toggleMenus = () => this._ngZone.run(() => {
674
+ this._closeSiblingTriggers();
675
+ this.open();
676
+ });
677
+ if (this._menuAim) {
678
+ this._menuAim.toggle(toggleMenus);
679
+ }
680
+ else {
681
+ toggleMenus();
682
+ }
674
683
  }
675
684
  });
676
685
  });
@@ -787,13 +796,13 @@ class CdkMenuTrigger extends CdkMenuTriggerBase {
787
796
  element.setAttribute('type', 'button');
788
797
  }
789
798
  }
790
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.2", ngImport: i0, type: CdkMenuTrigger, deps: [], target: i0.ɵɵFactoryTarget.Directive });
791
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.0-next.2", type: CdkMenuTrigger, isStandalone: true, selector: "[cdkMenuTriggerFor]", inputs: { menuTemplateRef: ["cdkMenuTriggerFor", "menuTemplateRef"], menuPosition: ["cdkMenuPosition", "menuPosition"], menuData: ["cdkMenuTriggerData", "menuData"] }, outputs: { opened: "cdkMenuOpened", closed: "cdkMenuClosed" }, host: { listeners: { "focusin": "_setHasFocus(true)", "focusout": "_setHasFocus(false)", "keydown": "_toggleOnKeydown($event)", "click": "_handleClick()" }, properties: { "attr.aria-haspopup": "menuTemplateRef ? \"menu\" : null", "attr.aria-expanded": "menuTemplateRef == null ? null : isOpen()" }, classAttribute: "cdk-menu-trigger" }, providers: [
799
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.3", ngImport: i0, type: CdkMenuTrigger, deps: [], target: i0.ɵɵFactoryTarget.Directive });
800
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.0-next.3", type: CdkMenuTrigger, isStandalone: true, selector: "[cdkMenuTriggerFor]", inputs: { menuTemplateRef: ["cdkMenuTriggerFor", "menuTemplateRef"], menuPosition: ["cdkMenuPosition", "menuPosition"], menuData: ["cdkMenuTriggerData", "menuData"] }, outputs: { opened: "cdkMenuOpened", closed: "cdkMenuClosed" }, host: { listeners: { "focusin": "_setHasFocus(true)", "focusout": "_setHasFocus(false)", "keydown": "_toggleOnKeydown($event)", "click": "_handleClick()" }, properties: { "attr.aria-haspopup": "menuTemplateRef ? \"menu\" : null", "attr.aria-expanded": "menuTemplateRef == null ? null : isOpen()" }, classAttribute: "cdk-menu-trigger" }, providers: [
792
801
  { provide: MENU_TRIGGER, useExisting: CdkMenuTrigger },
793
802
  PARENT_OR_NEW_MENU_STACK_PROVIDER,
794
803
  ], exportAs: ["cdkMenuTriggerFor"], usesInheritance: true, ngImport: i0 });
795
804
  }
796
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.2", ngImport: i0, type: CdkMenuTrigger, decorators: [{
805
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.3", ngImport: i0, type: CdkMenuTrigger, decorators: [{
797
806
  type: Directive,
798
807
  args: [{
799
808
  selector: '[cdkMenuTriggerFor]',
@@ -830,6 +839,8 @@ class CdkMenuItem {
830
839
  _elementRef = inject(ElementRef);
831
840
  _ngZone = inject(NgZone);
832
841
  _inputModalityDetector = inject(InputModalityDetector);
842
+ _renderer = inject(Renderer2);
843
+ _cleanupMouseEnter;
833
844
  /** The menu aim service used by this menu. */
834
845
  _menuAim = inject(MENU_AIM, { optional: true });
835
846
  /** The stack of menus this menu belongs to. */
@@ -871,6 +882,7 @@ class CdkMenuItem {
871
882
  }
872
883
  }
873
884
  ngOnDestroy() {
885
+ this._cleanupMouseEnter?.();
874
886
  this.destroyed.next();
875
887
  this.destroyed.complete();
876
888
  }
@@ -1012,20 +1024,17 @@ class CdkMenuItem {
1012
1024
  _setupMouseEnter() {
1013
1025
  if (!this._isStandaloneItem()) {
1014
1026
  const closeOpenSiblings = () => this._ngZone.run(() => this._menuStack.closeSubMenuOf(this._parentMenu));
1015
- this._ngZone.runOutsideAngular(() => fromEvent(this._elementRef.nativeElement, 'mouseenter')
1016
- .pipe(filter(() => {
1017
- return (
1027
+ this._cleanupMouseEnter = this._ngZone.runOutsideAngular(() => this._renderer.listen(this._elementRef.nativeElement, 'mouseenter', () => {
1018
1028
  // Skip fake `mouseenter` events dispatched by touch devices.
1019
- this._inputModalityDetector.mostRecentModality !== 'touch' &&
1029
+ if (this._inputModalityDetector.mostRecentModality !== 'touch' &&
1020
1030
  !this._menuStack.isEmpty() &&
1021
- !this.hasMenu);
1022
- }), takeUntil(this.destroyed))
1023
- .subscribe(() => {
1024
- if (this._menuAim) {
1025
- this._menuAim.toggle(closeOpenSiblings);
1026
- }
1027
- else {
1028
- closeOpenSiblings();
1031
+ !this.hasMenu) {
1032
+ if (this._menuAim) {
1033
+ this._menuAim.toggle(closeOpenSiblings);
1034
+ }
1035
+ else {
1036
+ closeOpenSiblings();
1037
+ }
1029
1038
  }
1030
1039
  }));
1031
1040
  }
@@ -1045,10 +1054,10 @@ class CdkMenuItem {
1045
1054
  element.setAttribute('type', 'button');
1046
1055
  }
1047
1056
  }
1048
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.2", ngImport: i0, type: CdkMenuItem, deps: [], target: i0.ɵɵFactoryTarget.Directive });
1049
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "19.1.0-next.2", type: CdkMenuItem, isStandalone: true, selector: "[cdkMenuItem]", inputs: { disabled: ["cdkMenuItemDisabled", "disabled", booleanAttribute], typeaheadLabel: ["cdkMenuitemTypeaheadLabel", "typeaheadLabel"] }, outputs: { triggered: "cdkMenuItemTriggered" }, host: { attributes: { "role": "menuitem" }, listeners: { "blur": "_resetTabIndex()", "focus": "_setTabIndex()", "click": "trigger()", "keydown": "_onKeydown($event)" }, properties: { "tabindex": "_tabindex", "attr.aria-disabled": "disabled || null" }, classAttribute: "cdk-menu-item" }, exportAs: ["cdkMenuItem"], ngImport: i0 });
1057
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.3", ngImport: i0, type: CdkMenuItem, deps: [], target: i0.ɵɵFactoryTarget.Directive });
1058
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "19.1.0-next.3", type: CdkMenuItem, isStandalone: true, selector: "[cdkMenuItem]", inputs: { disabled: ["cdkMenuItemDisabled", "disabled", booleanAttribute], typeaheadLabel: ["cdkMenuitemTypeaheadLabel", "typeaheadLabel"] }, outputs: { triggered: "cdkMenuItemTriggered" }, host: { attributes: { "role": "menuitem" }, listeners: { "blur": "_resetTabIndex()", "focus": "_setTabIndex()", "click": "trigger()", "keydown": "_onKeydown($event)" }, properties: { "tabindex": "_tabindex", "attr.aria-disabled": "disabled || null" }, classAttribute: "cdk-menu-item" }, exportAs: ["cdkMenuItem"], ngImport: i0 });
1050
1059
  }
1051
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.2", ngImport: i0, type: CdkMenuItem, decorators: [{
1060
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.3", ngImport: i0, type: CdkMenuItem, decorators: [{
1052
1061
  type: Directive,
1053
1062
  args: [{
1054
1063
  selector: '[cdkMenuItem]',
@@ -1080,21 +1089,22 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.2",
1080
1089
  * observables which emit when the users mouse enters and leaves a tracked element.
1081
1090
  */
1082
1091
  class PointerFocusTracker {
1092
+ _renderer;
1083
1093
  _items;
1094
+ _eventCleanups;
1095
+ _itemsSubscription;
1084
1096
  /** Emits when an element is moused into. */
1085
- entered = this._getItemPointerEntries();
1097
+ entered = new Subject();
1086
1098
  /** Emits when an element is moused out. */
1087
- exited = this._getItemPointerExits();
1099
+ exited = new Subject();
1088
1100
  /** The element currently under mouse focus. */
1089
1101
  activeElement;
1090
1102
  /** The element previously under mouse focus. */
1091
1103
  previousElement;
1092
- /** Emits when this is destroyed. */
1093
- _destroyed = new Subject();
1094
- constructor(
1095
- /** The list of items being tracked. */
1096
- _items) {
1104
+ constructor(_renderer, _items) {
1105
+ this._renderer = _renderer;
1097
1106
  this._items = _items;
1107
+ this._bindEvents();
1098
1108
  this.entered.subscribe(element => (this.activeElement = element));
1099
1109
  this.exited.subscribe(() => {
1100
1110
  this.previousElement = this.activeElement;
@@ -1103,22 +1113,29 @@ class PointerFocusTracker {
1103
1113
  }
1104
1114
  /** Stop the managers listeners. */
1105
1115
  destroy() {
1106
- this._destroyed.next();
1107
- this._destroyed.complete();
1108
- }
1109
- /**
1110
- * Gets a stream of pointer (mouse) entries into the given items.
1111
- * This should typically run outside the Angular zone.
1112
- */
1113
- _getItemPointerEntries() {
1114
- return defer(() => this._items.changes.pipe(startWith(this._items), mergeMap((list) => list.map(element => fromEvent(element._elementRef.nativeElement, 'mouseenter').pipe(mapTo(element), takeUntil(this._items.changes)))), mergeAll()));
1116
+ this._cleanupEvents();
1117
+ this._itemsSubscription?.unsubscribe();
1118
+ }
1119
+ /** Binds the enter/exit events on all the items. */
1120
+ _bindEvents() {
1121
+ // TODO(crisbeto): this can probably be simplified by binding a single event on a parent node.
1122
+ this._itemsSubscription = this._items.changes.pipe(startWith(this._items)).subscribe(() => {
1123
+ this._cleanupEvents();
1124
+ this._eventCleanups = [];
1125
+ this._items.forEach(item => {
1126
+ const element = item._elementRef.nativeElement;
1127
+ this._eventCleanups.push(this._renderer.listen(element, 'mouseenter', () => {
1128
+ this.entered.next(item);
1129
+ }), this._renderer.listen(element, 'mouseout', () => {
1130
+ this.exited.next(item);
1131
+ }));
1132
+ });
1133
+ });
1115
1134
  }
1116
- /**
1117
- * Gets a stream of pointer (mouse) exits out of the given items.
1118
- * This should typically run outside the Angular zone.
1119
- */
1120
- _getItemPointerExits() {
1121
- return defer(() => this._items.changes.pipe(startWith(this._items), mergeMap((list) => list.map(element => fromEvent(element._elementRef.nativeElement, 'mouseout').pipe(mapTo(element), takeUntil(this._items.changes)))), mergeAll()));
1135
+ /** Cleans up the currently-bound events. */
1136
+ _cleanupEvents() {
1137
+ this._eventCleanups?.forEach(cleanup => cleanup());
1138
+ this._eventCleanups = undefined;
1122
1139
  }
1123
1140
  }
1124
1141
 
@@ -1127,10 +1144,10 @@ class PointerFocusTracker {
1127
1144
  * This class can be extended to create custom menu types.
1128
1145
  */
1129
1146
  class CdkMenuBase extends CdkMenuGroup {
1147
+ ngZone = inject(NgZone);
1148
+ _renderer = inject(Renderer2);
1130
1149
  /** The menu's native DOM host element. */
1131
1150
  nativeElement = inject(ElementRef).nativeElement;
1132
- /** The Angular zone. */
1133
- ngZone = inject(NgZone);
1134
1151
  /** The stack of menus this menu belongs to. */
1135
1152
  menuStack = inject(MENU_STACK);
1136
1153
  /** The menu aim service used by this menu. */
@@ -1268,15 +1285,15 @@ class CdkMenuBase extends CdkMenuGroup {
1268
1285
  _setUpPointerTracker() {
1269
1286
  if (this.menuAim) {
1270
1287
  this.ngZone.runOutsideAngular(() => {
1271
- this.pointerTracker = new PointerFocusTracker(this.items);
1288
+ this.pointerTracker = new PointerFocusTracker(this._renderer, this.items);
1272
1289
  });
1273
1290
  this.menuAim.initialize(this, this.pointerTracker);
1274
1291
  }
1275
1292
  }
1276
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.2", ngImport: i0, type: CdkMenuBase, deps: null, target: i0.ɵɵFactoryTarget.Directive });
1277
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.0-next.2", type: CdkMenuBase, isStandalone: true, inputs: { id: "id" }, host: { attributes: { "role": "menu" }, listeners: { "focus": "focusFirstItem()", "focusin": "menuStack.setHasFocus(true)", "focusout": "menuStack.setHasFocus(false)" }, properties: { "tabindex": "_getTabIndex()", "id": "id", "attr.aria-orientation": "orientation", "attr.data-cdk-menu-stack-id": "menuStack.id" } }, queries: [{ propertyName: "items", predicate: CdkMenuItem, descendants: true }], usesInheritance: true, ngImport: i0 });
1293
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.3", ngImport: i0, type: CdkMenuBase, deps: null, target: i0.ɵɵFactoryTarget.Directive });
1294
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.0-next.3", type: CdkMenuBase, isStandalone: true, inputs: { id: "id" }, host: { attributes: { "role": "menu" }, listeners: { "focus": "focusFirstItem()", "focusin": "menuStack.setHasFocus(true)", "focusout": "menuStack.setHasFocus(false)" }, properties: { "tabindex": "_getTabIndex()", "id": "id", "attr.aria-orientation": "orientation", "attr.data-cdk-menu-stack-id": "menuStack.id" } }, queries: [{ propertyName: "items", predicate: CdkMenuItem, descendants: true }], usesInheritance: true, ngImport: i0 });
1278
1295
  }
1279
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.2", ngImport: i0, type: CdkMenuBase, decorators: [{
1296
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.3", ngImport: i0, type: CdkMenuBase, decorators: [{
1280
1297
  type: Directive,
1281
1298
  args: [{
1282
1299
  host: {
@@ -1388,14 +1405,14 @@ class CdkMenu extends CdkMenuBase {
1388
1405
  .pipe(takeUntil(this.destroyed))
1389
1406
  .subscribe(event => this._toggleMenuFocus(event));
1390
1407
  }
1391
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.2", ngImport: i0, type: CdkMenu, deps: [], target: i0.ɵɵFactoryTarget.Directive });
1392
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.0-next.2", type: CdkMenu, isStandalone: true, selector: "[cdkMenu]", outputs: { closed: "closed" }, host: { attributes: { "role": "menu" }, listeners: { "keydown": "_handleKeyEvent($event)" }, properties: { "class.cdk-menu-inline": "isInline" }, classAttribute: "cdk-menu" }, providers: [
1408
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.3", ngImport: i0, type: CdkMenu, deps: [], target: i0.ɵɵFactoryTarget.Directive });
1409
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.0-next.3", type: CdkMenu, isStandalone: true, selector: "[cdkMenu]", outputs: { closed: "closed" }, host: { attributes: { "role": "menu" }, listeners: { "keydown": "_handleKeyEvent($event)" }, properties: { "class.cdk-menu-inline": "isInline" }, classAttribute: "cdk-menu" }, providers: [
1393
1410
  { provide: CdkMenuGroup, useExisting: CdkMenu },
1394
1411
  { provide: CDK_MENU, useExisting: CdkMenu },
1395
1412
  PARENT_OR_NEW_INLINE_MENU_STACK_PROVIDER('vertical'),
1396
1413
  ], exportAs: ["cdkMenu"], usesInheritance: true, ngImport: i0 });
1397
1414
  }
1398
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.2", ngImport: i0, type: CdkMenu, decorators: [{
1415
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.3", ngImport: i0, type: CdkMenu, decorators: [{
1399
1416
  type: Directive,
1400
1417
  args: [{
1401
1418
  selector: '[cdkMenu]',
@@ -1506,14 +1523,14 @@ class CdkMenuBar extends CdkMenuBase {
1506
1523
  .pipe(takeUntil(this.destroyed))
1507
1524
  .subscribe(event => this._toggleOpenMenu(event));
1508
1525
  }
1509
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.2", ngImport: i0, type: CdkMenuBar, deps: null, target: i0.ɵɵFactoryTarget.Directive });
1510
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.0-next.2", type: CdkMenuBar, isStandalone: true, selector: "[cdkMenuBar]", host: { attributes: { "role": "menubar" }, listeners: { "keydown": "_handleKeyEvent($event)" }, classAttribute: "cdk-menu-bar" }, providers: [
1526
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.3", ngImport: i0, type: CdkMenuBar, deps: null, target: i0.ɵɵFactoryTarget.Directive });
1527
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.0-next.3", type: CdkMenuBar, isStandalone: true, selector: "[cdkMenuBar]", host: { attributes: { "role": "menubar" }, listeners: { "keydown": "_handleKeyEvent($event)" }, classAttribute: "cdk-menu-bar" }, providers: [
1511
1528
  { provide: CdkMenuGroup, useExisting: CdkMenuBar },
1512
1529
  { provide: CDK_MENU, useExisting: CdkMenuBar },
1513
1530
  { provide: MENU_STACK, useFactory: () => MenuStack.inline('horizontal') },
1514
1531
  ], exportAs: ["cdkMenuBar"], usesInheritance: true, ngImport: i0 });
1515
1532
  }
1516
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.2", ngImport: i0, type: CdkMenuBar, decorators: [{
1533
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.3", ngImport: i0, type: CdkMenuBar, decorators: [{
1517
1534
  type: Directive,
1518
1535
  args: [{
1519
1536
  selector: '[cdkMenuBar]',
@@ -1537,10 +1554,10 @@ class CdkMenuItemSelectable extends CdkMenuItem {
1537
1554
  checked = false;
1538
1555
  /** Whether the item should close the menu if triggered by the spacebar. */
1539
1556
  closeOnSpacebarTrigger = false;
1540
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.2", ngImport: i0, type: CdkMenuItemSelectable, deps: null, target: i0.ɵɵFactoryTarget.Directive });
1541
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "19.1.0-next.2", type: CdkMenuItemSelectable, isStandalone: true, inputs: { checked: ["cdkMenuItemChecked", "checked", booleanAttribute] }, host: { properties: { "attr.aria-checked": "!!checked", "attr.aria-disabled": "disabled || null" } }, usesInheritance: true, ngImport: i0 });
1557
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.3", ngImport: i0, type: CdkMenuItemSelectable, deps: null, target: i0.ɵɵFactoryTarget.Directive });
1558
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "19.1.0-next.3", type: CdkMenuItemSelectable, isStandalone: true, inputs: { checked: ["cdkMenuItemChecked", "checked", booleanAttribute] }, host: { properties: { "attr.aria-checked": "!!checked", "attr.aria-disabled": "disabled || null" } }, usesInheritance: true, ngImport: i0 });
1542
1559
  }
1543
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.2", ngImport: i0, type: CdkMenuItemSelectable, decorators: [{
1560
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.3", ngImport: i0, type: CdkMenuItemSelectable, decorators: [{
1544
1561
  type: Directive,
1545
1562
  args: [{
1546
1563
  host: {
@@ -1590,13 +1607,13 @@ class CdkMenuItemRadio extends CdkMenuItemSelectable {
1590
1607
  this.checked = this._id === id;
1591
1608
  });
1592
1609
  }
1593
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.2", ngImport: i0, type: CdkMenuItemRadio, deps: [], target: i0.ɵɵFactoryTarget.Directive });
1594
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.0-next.2", type: CdkMenuItemRadio, isStandalone: true, selector: "[cdkMenuItemRadio]", host: { attributes: { "role": "menuitemradio" }, properties: { "class.cdk-menu-item-radio": "true" } }, providers: [
1610
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.3", ngImport: i0, type: CdkMenuItemRadio, deps: [], target: i0.ɵɵFactoryTarget.Directive });
1611
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.0-next.3", type: CdkMenuItemRadio, isStandalone: true, selector: "[cdkMenuItemRadio]", host: { attributes: { "role": "menuitemradio" }, properties: { "class.cdk-menu-item-radio": "true" } }, providers: [
1595
1612
  { provide: CdkMenuItemSelectable, useExisting: CdkMenuItemRadio },
1596
1613
  { provide: CdkMenuItem, useExisting: CdkMenuItemSelectable },
1597
1614
  ], exportAs: ["cdkMenuItemRadio"], usesInheritance: true, ngImport: i0 });
1598
1615
  }
1599
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.2", ngImport: i0, type: CdkMenuItemRadio, decorators: [{
1616
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.3", ngImport: i0, type: CdkMenuItemRadio, decorators: [{
1600
1617
  type: Directive,
1601
1618
  args: [{
1602
1619
  selector: '[cdkMenuItemRadio]',
@@ -1628,13 +1645,13 @@ class CdkMenuItemCheckbox extends CdkMenuItemSelectable {
1628
1645
  this.checked = !this.checked;
1629
1646
  }
1630
1647
  }
1631
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.2", ngImport: i0, type: CdkMenuItemCheckbox, deps: null, target: i0.ɵɵFactoryTarget.Directive });
1632
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.0-next.2", type: CdkMenuItemCheckbox, isStandalone: true, selector: "[cdkMenuItemCheckbox]", host: { attributes: { "role": "menuitemcheckbox" }, properties: { "class.cdk-menu-item-checkbox": "true" } }, providers: [
1648
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.3", ngImport: i0, type: CdkMenuItemCheckbox, deps: null, target: i0.ɵɵFactoryTarget.Directive });
1649
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.0-next.3", type: CdkMenuItemCheckbox, isStandalone: true, selector: "[cdkMenuItemCheckbox]", host: { attributes: { "role": "menuitemcheckbox" }, properties: { "class.cdk-menu-item-checkbox": "true" } }, providers: [
1633
1650
  { provide: CdkMenuItemSelectable, useExisting: CdkMenuItemCheckbox },
1634
1651
  { provide: CdkMenuItem, useExisting: CdkMenuItemSelectable },
1635
1652
  ], exportAs: ["cdkMenuItemCheckbox"], usesInheritance: true, ngImport: i0 });
1636
1653
  }
1637
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.2", ngImport: i0, type: CdkMenuItemCheckbox, decorators: [{
1654
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.3", ngImport: i0, type: CdkMenuItemCheckbox, decorators: [{
1638
1655
  type: Directive,
1639
1656
  args: [{
1640
1657
  selector: '[cdkMenuItemCheckbox]',
@@ -1672,10 +1689,10 @@ class ContextMenuTracker {
1672
1689
  ContextMenuTracker._openContextMenuTrigger = trigger;
1673
1690
  }
1674
1691
  }
1675
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.2", ngImport: i0, type: ContextMenuTracker, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1676
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.0-next.2", ngImport: i0, type: ContextMenuTracker, providedIn: 'root' });
1692
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.3", ngImport: i0, type: ContextMenuTracker, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1693
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.0-next.3", ngImport: i0, type: ContextMenuTracker, providedIn: 'root' });
1677
1694
  }
1678
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.2", ngImport: i0, type: ContextMenuTracker, decorators: [{
1695
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.3", ngImport: i0, type: ContextMenuTracker, decorators: [{
1679
1696
  type: Injectable,
1680
1697
  args: [{ providedIn: 'root' }]
1681
1698
  }] });
@@ -1825,13 +1842,13 @@ class CdkContextMenuTrigger extends CdkMenuTriggerBase {
1825
1842
  this._subscribeToOutsideClicks(userEvent);
1826
1843
  }
1827
1844
  }
1828
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.2", ngImport: i0, type: CdkContextMenuTrigger, deps: [], target: i0.ɵɵFactoryTarget.Directive });
1829
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "19.1.0-next.2", type: CdkContextMenuTrigger, isStandalone: true, selector: "[cdkContextMenuTriggerFor]", inputs: { menuTemplateRef: ["cdkContextMenuTriggerFor", "menuTemplateRef"], menuPosition: ["cdkContextMenuPosition", "menuPosition"], menuData: ["cdkContextMenuTriggerData", "menuData"], disabled: ["cdkContextMenuDisabled", "disabled", booleanAttribute] }, outputs: { opened: "cdkContextMenuOpened", closed: "cdkContextMenuClosed" }, host: { listeners: { "contextmenu": "_openOnContextMenu($event)" }, properties: { "attr.data-cdk-menu-stack-id": "null" } }, providers: [
1845
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.3", ngImport: i0, type: CdkContextMenuTrigger, deps: [], target: i0.ɵɵFactoryTarget.Directive });
1846
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "19.1.0-next.3", type: CdkContextMenuTrigger, isStandalone: true, selector: "[cdkContextMenuTriggerFor]", inputs: { menuTemplateRef: ["cdkContextMenuTriggerFor", "menuTemplateRef"], menuPosition: ["cdkContextMenuPosition", "menuPosition"], menuData: ["cdkContextMenuTriggerData", "menuData"], disabled: ["cdkContextMenuDisabled", "disabled", booleanAttribute] }, outputs: { opened: "cdkContextMenuOpened", closed: "cdkContextMenuClosed" }, host: { listeners: { "contextmenu": "_openOnContextMenu($event)" }, properties: { "attr.data-cdk-menu-stack-id": "null" } }, providers: [
1830
1847
  { provide: MENU_TRIGGER, useExisting: CdkContextMenuTrigger },
1831
1848
  { provide: MENU_STACK, useClass: MenuStack },
1832
1849
  ], exportAs: ["cdkContextMenuTriggerFor"], usesInheritance: true, ngImport: i0 });
1833
1850
  }
1834
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.2", ngImport: i0, type: CdkContextMenuTrigger, decorators: [{
1851
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.3", ngImport: i0, type: CdkContextMenuTrigger, decorators: [{
1835
1852
  type: Directive,
1836
1853
  args: [{
1837
1854
  selector: '[cdkContextMenuTriggerFor]',
@@ -1869,8 +1886,8 @@ const MENU_DIRECTIVES = [
1869
1886
  ];
1870
1887
  /** Module that declares components and directives for the CDK menu. */
1871
1888
  class CdkMenuModule {
1872
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.2", ngImport: i0, type: CdkMenuModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1873
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.1.0-next.2", ngImport: i0, type: CdkMenuModule, imports: [OverlayModule, CdkMenuBar,
1889
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.3", ngImport: i0, type: CdkMenuModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1890
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.1.0-next.3", ngImport: i0, type: CdkMenuModule, imports: [OverlayModule, CdkMenuBar,
1874
1891
  CdkMenu,
1875
1892
  CdkMenuItem,
1876
1893
  CdkMenuItemRadio,
@@ -1887,9 +1904,9 @@ class CdkMenuModule {
1887
1904
  CdkMenuGroup,
1888
1905
  CdkContextMenuTrigger,
1889
1906
  CdkTargetMenuAim] });
1890
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.1.0-next.2", ngImport: i0, type: CdkMenuModule, imports: [OverlayModule] });
1907
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.1.0-next.3", ngImport: i0, type: CdkMenuModule, imports: [OverlayModule] });
1891
1908
  }
1892
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.2", ngImport: i0, type: CdkMenuModule, decorators: [{
1909
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.3", ngImport: i0, type: CdkMenuModule, decorators: [{
1893
1910
  type: NgModule,
1894
1911
  args: [{
1895
1912
  imports: [OverlayModule, ...MENU_DIRECTIVES],