@angular/material 13.2.2 → 13.2.5

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 (104) hide show
  1. package/autocomplete/autocomplete-trigger.d.ts +1 -0
  2. package/button-toggle/_button-toggle-theme.scss +14 -2
  3. package/checkbox/_checkbox-theme.scss +7 -1
  4. package/core/datetime/index.d.ts +1 -2
  5. package/core/ripple/index.d.ts +1 -2
  6. package/core/theming/_theming.scss +9 -0
  7. package/esm2020/autocomplete/autocomplete-trigger.mjs +19 -6
  8. package/esm2020/button-toggle/button-toggle.mjs +2 -2
  9. package/esm2020/checkbox/checkbox.mjs +4 -2
  10. package/esm2020/core/datetime/index.mjs +3 -5
  11. package/esm2020/core/ripple/index.mjs +4 -5
  12. package/esm2020/core/version.mjs +1 -1
  13. package/esm2020/datepicker/calendar.mjs +9 -9
  14. package/esm2020/datepicker/datepicker-input-base.mjs +9 -4
  15. package/esm2020/dialog/dialog.mjs +2 -2
  16. package/esm2020/form-field/form-field.mjs +3 -3
  17. package/esm2020/menu/menu-item.mjs +5 -1
  18. package/esm2020/menu/menu-trigger.mjs +15 -6
  19. package/esm2020/menu/menu.mjs +30 -9
  20. package/esm2020/progress-spinner/progress-spinner-module.mjs +5 -5
  21. package/esm2020/progress-spinner/progress-spinner.mjs +8 -48
  22. package/esm2020/progress-spinner/public-api.mjs +10 -2
  23. package/esm2020/radio/radio.mjs +3 -3
  24. package/esm2020/select/select.mjs +3 -3
  25. package/esm2020/sidenav/drawer.mjs +3 -3
  26. package/esm2020/sidenav/sidenav-module.mjs +4 -5
  27. package/esm2020/sidenav/sidenav.mjs +3 -3
  28. package/esm2020/sort/sort-header.mjs +4 -4
  29. package/esm2020/tabs/tab-body.mjs +3 -3
  30. package/esm2020/tabs/tab-header.mjs +3 -3
  31. package/esm2020/tooltip/tooltip.mjs +30 -7
  32. package/fesm2015/autocomplete.mjs +19 -6
  33. package/fesm2015/autocomplete.mjs.map +1 -1
  34. package/fesm2015/button-toggle.mjs +2 -2
  35. package/fesm2015/checkbox.mjs +3 -1
  36. package/fesm2015/checkbox.mjs.map +1 -1
  37. package/fesm2015/core.mjs +7 -8
  38. package/fesm2015/core.mjs.map +1 -1
  39. package/fesm2015/datepicker.mjs +15 -10
  40. package/fesm2015/datepicker.mjs.map +1 -1
  41. package/fesm2015/dialog.mjs +1 -1
  42. package/fesm2015/dialog.mjs.map +1 -1
  43. package/fesm2015/form-field.mjs +2 -2
  44. package/fesm2015/form-field.mjs.map +1 -1
  45. package/fesm2015/menu.mjs +47 -11
  46. package/fesm2015/menu.mjs.map +1 -1
  47. package/fesm2015/progress-spinner.mjs +22 -57
  48. package/fesm2015/progress-spinner.mjs.map +1 -1
  49. package/fesm2015/radio.mjs +2 -2
  50. package/fesm2015/radio.mjs.map +1 -1
  51. package/fesm2015/select.mjs +2 -2
  52. package/fesm2015/select.mjs.map +1 -1
  53. package/fesm2015/sidenav.mjs +8 -9
  54. package/fesm2015/sidenav.mjs.map +1 -1
  55. package/fesm2015/sort.mjs +3 -3
  56. package/fesm2015/sort.mjs.map +1 -1
  57. package/fesm2015/tabs.mjs +4 -4
  58. package/fesm2015/tabs.mjs.map +1 -1
  59. package/fesm2015/tooltip.mjs +31 -6
  60. package/fesm2015/tooltip.mjs.map +1 -1
  61. package/fesm2020/autocomplete.mjs +19 -6
  62. package/fesm2020/autocomplete.mjs.map +1 -1
  63. package/fesm2020/button-toggle.mjs +2 -2
  64. package/fesm2020/checkbox.mjs +3 -1
  65. package/fesm2020/checkbox.mjs.map +1 -1
  66. package/fesm2020/core.mjs +7 -8
  67. package/fesm2020/core.mjs.map +1 -1
  68. package/fesm2020/datepicker.mjs +15 -10
  69. package/fesm2020/datepicker.mjs.map +1 -1
  70. package/fesm2020/dialog.mjs +1 -1
  71. package/fesm2020/dialog.mjs.map +1 -1
  72. package/fesm2020/form-field.mjs +2 -2
  73. package/fesm2020/form-field.mjs.map +1 -1
  74. package/fesm2020/menu.mjs +45 -11
  75. package/fesm2020/menu.mjs.map +1 -1
  76. package/fesm2020/progress-spinner.mjs +22 -55
  77. package/fesm2020/progress-spinner.mjs.map +1 -1
  78. package/fesm2020/radio.mjs +2 -2
  79. package/fesm2020/radio.mjs.map +1 -1
  80. package/fesm2020/select.mjs +2 -2
  81. package/fesm2020/select.mjs.map +1 -1
  82. package/fesm2020/sidenav.mjs +8 -9
  83. package/fesm2020/sidenav.mjs.map +1 -1
  84. package/fesm2020/sort.mjs +3 -3
  85. package/fesm2020/sort.mjs.map +1 -1
  86. package/fesm2020/tabs.mjs +4 -4
  87. package/fesm2020/tabs.mjs.map +1 -1
  88. package/fesm2020/tooltip.mjs +29 -6
  89. package/fesm2020/tooltip.mjs.map +1 -1
  90. package/menu/menu-item.d.ts +3 -2
  91. package/menu/menu-trigger.d.ts +7 -1
  92. package/menu/menu.d.ts +7 -2
  93. package/package.json +2 -2
  94. package/prebuilt-themes/deeppurple-amber.css +1 -1
  95. package/prebuilt-themes/indigo-pink.css +1 -1
  96. package/prebuilt-themes/pink-bluegrey.css +1 -1
  97. package/prebuilt-themes/purple-green.css +1 -1
  98. package/progress-spinner/progress-spinner-module.d.ts +1 -1
  99. package/progress-spinner/progress-spinner.d.ts +1 -18
  100. package/progress-spinner/public-api.d.ts +8 -1
  101. package/schematics/ng-add/index.js +1 -1
  102. package/schematics/ng-add/index.mjs +1 -1
  103. package/sidenav/sidenav-module.d.ts +2 -3
  104. package/tooltip/tooltip.d.ts +13 -1
package/fesm2020/menu.mjs CHANGED
@@ -245,6 +245,7 @@ class MatMenuItem extends _MatMenuItemBase {
245
245
  constructor(_elementRef, _document, _focusMonitor, _parentMenu, _changeDetectorRef) {
246
246
  super();
247
247
  this._elementRef = _elementRef;
248
+ this._document = _document;
248
249
  this._focusMonitor = _focusMonitor;
249
250
  this._parentMenu = _parentMenu;
250
251
  this._changeDetectorRef = _changeDetectorRef;
@@ -325,6 +326,9 @@ class MatMenuItem extends _MatMenuItemBase {
325
326
  this._highlighted = isHighlighted;
326
327
  this._changeDetectorRef?.markForCheck();
327
328
  }
329
+ _hasFocus() {
330
+ return this._document && this._document.activeElement === this._getHostElement();
331
+ }
328
332
  }
329
333
  MatMenuItem.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: MatMenuItem, deps: [{ token: i0.ElementRef }, { token: DOCUMENT }, { token: i1.FocusMonitor }, { token: MAT_MENU_PANEL, optional: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
330
334
  MatMenuItem.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.0", type: MatMenuItem, selector: "[mat-menu-item]", inputs: { disabled: "disabled", disableRipple: "disableRipple", role: "role" }, host: { listeners: { "click": "_checkDisabled($event)", "mouseenter": "_handleMouseEnter()" }, properties: { "attr.role": "role", "class.mat-menu-item": "true", "class.mat-menu-item-highlighted": "_highlighted", "class.mat-menu-item-submenu-trigger": "_triggersSubmenu", "attr.tabindex": "_getTabIndex()", "attr.aria-disabled": "disabled.toString()", "attr.disabled": "disabled || null" }, classAttribute: "mat-focus-indicator" }, exportAs: ["matMenuItem"], usesInheritance: true, ngImport: i0, template: "<ng-content></ng-content>\n<div class=\"mat-menu-ripple\" matRipple\n [matRippleDisabled]=\"disableRipple || disabled\"\n [matRippleTrigger]=\"_getHostElement()\">\n</div>\n\n<svg\n *ngIf=\"_triggersSubmenu\"\n class=\"mat-menu-submenu-icon\"\n viewBox=\"0 0 5 10\"\n focusable=\"false\"><polygon points=\"0,0 5,5 0,10\"/></svg>\n", directives: [{ type: i2.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
@@ -378,10 +382,13 @@ function MAT_MENU_DEFAULT_OPTIONS_FACTORY() {
378
382
  let menuPanelUid = 0;
379
383
  /** Base class with all of the `MatMenu` functionality. */
380
384
  class _MatMenuBase {
381
- constructor(_elementRef, _ngZone, _defaultOptions) {
385
+ constructor(_elementRef, _ngZone, _defaultOptions,
386
+ // @breaking-change 15.0.0 `_changeDetectorRef` to become a required parameter.
387
+ _changeDetectorRef) {
382
388
  this._elementRef = _elementRef;
383
389
  this._ngZone = _ngZone;
384
390
  this._defaultOptions = _defaultOptions;
391
+ this._changeDetectorRef = _changeDetectorRef;
385
392
  this._xPosition = this._defaultOptions.xPosition;
386
393
  this._yPosition = this._defaultOptions.yPosition;
387
394
  /** Only the direct descendant menu items. */
@@ -498,6 +505,22 @@ class _MatMenuBase {
498
505
  this._directDescendantItems.changes
499
506
  .pipe(startWith(this._directDescendantItems), switchMap(items => merge(...items.map((item) => item._focused))))
500
507
  .subscribe(focusedItem => this._keyManager.updateActiveItem(focusedItem));
508
+ this._directDescendantItems.changes.subscribe((itemsList) => {
509
+ // Move focus to another item, if the active item is removed from the list.
510
+ // We need to debounce the callback, because multiple items might be removed
511
+ // in quick succession.
512
+ const manager = this._keyManager;
513
+ if (this._panelAnimationState === 'enter' && manager.activeItem?._hasFocus()) {
514
+ const items = itemsList.toArray();
515
+ const index = Math.max(0, Math.min(items.length - 1, manager.activeItemIndex || 0));
516
+ if (items[index] && !items[index].disabled) {
517
+ manager.setActiveItem(index);
518
+ }
519
+ else {
520
+ manager.setNextItemActive();
521
+ }
522
+ }
523
+ });
501
524
  }
502
525
  ngOnDestroy() {
503
526
  this._directDescendantItems.destroy();
@@ -636,6 +659,8 @@ class _MatMenuBase {
636
659
  classes['mat-menu-after'] = posX === 'after';
637
660
  classes['mat-menu-above'] = posY === 'above';
638
661
  classes['mat-menu-below'] = posY === 'below';
662
+ // @breaking-change 15.0.0 Remove null check for `_changeDetectorRef`.
663
+ this._changeDetectorRef?.markForCheck();
639
664
  }
640
665
  /** Starts the enter animation. */
641
666
  _startAnimation() {
@@ -679,14 +704,14 @@ class _MatMenuBase {
679
704
  });
680
705
  }
681
706
  }
682
- _MatMenuBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: _MatMenuBase, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: MAT_MENU_DEFAULT_OPTIONS }], target: i0.ɵɵFactoryTarget.Directive });
707
+ _MatMenuBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: _MatMenuBase, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: MAT_MENU_DEFAULT_OPTIONS }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
683
708
  _MatMenuBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.0", type: _MatMenuBase, inputs: { backdropClass: "backdropClass", ariaLabel: ["aria-label", "ariaLabel"], ariaLabelledby: ["aria-labelledby", "ariaLabelledby"], ariaDescribedby: ["aria-describedby", "ariaDescribedby"], xPosition: "xPosition", yPosition: "yPosition", overlapTrigger: "overlapTrigger", hasBackdrop: "hasBackdrop", panelClass: ["class", "panelClass"], classList: "classList" }, outputs: { closed: "closed", close: "close" }, queries: [{ propertyName: "lazyContent", first: true, predicate: MAT_MENU_CONTENT, descendants: true }, { propertyName: "_allItems", predicate: MatMenuItem, descendants: true }, { propertyName: "items", predicate: MatMenuItem }], viewQueries: [{ propertyName: "templateRef", first: true, predicate: TemplateRef, descendants: true }], ngImport: i0 });
684
709
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: _MatMenuBase, decorators: [{
685
710
  type: Directive
686
711
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: undefined, decorators: [{
687
712
  type: Inject,
688
713
  args: [MAT_MENU_DEFAULT_OPTIONS]
689
- }] }]; }, propDecorators: { _allItems: [{
714
+ }] }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { _allItems: [{
690
715
  type: ContentChildren,
691
716
  args: [MatMenuItem, { descendants: true }]
692
717
  }], backdropClass: [{
@@ -729,13 +754,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImpor
729
754
  }] } });
730
755
  /** @docs-public MatMenu */
731
756
  class MatMenu extends _MatMenuBase {
732
- constructor(elementRef, ngZone, defaultOptions) {
733
- super(elementRef, ngZone, defaultOptions);
757
+ constructor(elementRef, ngZone, defaultOptions, changeDetectorRef) {
758
+ super(elementRef, ngZone, defaultOptions, changeDetectorRef);
734
759
  this._elevationPrefix = 'mat-elevation-z';
735
760
  this._baseElevation = 4;
736
761
  }
737
762
  }
738
- MatMenu.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: MatMenu, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: MAT_MENU_DEFAULT_OPTIONS }], target: i0.ɵɵFactoryTarget.Component });
763
+ MatMenu.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: MatMenu, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: MAT_MENU_DEFAULT_OPTIONS }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
739
764
  MatMenu.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.0", type: MatMenu, selector: "mat-menu", host: { properties: { "attr.aria-label": "null", "attr.aria-labelledby": "null", "attr.aria-describedby": "null" } }, providers: [{ provide: MAT_MENU_PANEL, useExisting: MatMenu }], exportAs: ["matMenu"], usesInheritance: true, ngImport: i0, template: "<ng-template>\n <div\n class=\"mat-menu-panel\"\n [id]=\"panelId\"\n [ngClass]=\"_classList\"\n (keydown)=\"_handleKeydown($event)\"\n (click)=\"closed.emit('click')\"\n [@transformMenu]=\"_panelAnimationState\"\n (@transformMenu.start)=\"_onAnimationStart($event)\"\n (@transformMenu.done)=\"_onAnimationDone($event)\"\n tabindex=\"-1\"\n role=\"menu\"\n [attr.aria-label]=\"ariaLabel || null\"\n [attr.aria-labelledby]=\"ariaLabelledby || null\"\n [attr.aria-describedby]=\"ariaDescribedby || null\">\n <div class=\"mat-menu-content\">\n <ng-content></ng-content>\n </div>\n </div>\n</ng-template>\n", styles: ["mat-menu{display:none}.mat-menu-panel{min-width:112px;max-width:280px;overflow:auto;-webkit-overflow-scrolling:touch;max-height:calc(100vh - 48px);border-radius:4px;outline:0;min-height:64px}.mat-menu-panel.ng-animating{pointer-events:none}.cdk-high-contrast-active .mat-menu-panel{outline:solid 1px}.mat-menu-content:not(:empty){padding-top:8px;padding-bottom:8px}.mat-menu-item{-webkit-user-select:none;-moz-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:transparent;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;line-height:48px;height:48px;padding:0 16px;text-align:left;text-decoration:none;max-width:100%;position:relative}.mat-menu-item::-moz-focus-inner{border:0}.mat-menu-item[disabled]{cursor:default}[dir=rtl] .mat-menu-item{text-align:right}.mat-menu-item .mat-icon{margin-right:16px;vertical-align:middle}.mat-menu-item .mat-icon svg{vertical-align:top}[dir=rtl] .mat-menu-item .mat-icon{margin-left:16px;margin-right:0}.mat-menu-item[disabled]{pointer-events:none}.cdk-high-contrast-active .mat-menu-item{margin-top:1px}.cdk-high-contrast-active .mat-menu-item.cdk-program-focused,.cdk-high-contrast-active .mat-menu-item.cdk-keyboard-focused,.cdk-high-contrast-active .mat-menu-item-highlighted{outline:dotted 1px}.mat-menu-item-submenu-trigger{padding-right:32px}[dir=rtl] .mat-menu-item-submenu-trigger{padding-right:16px;padding-left:32px}.mat-menu-submenu-icon{position:absolute;top:50%;right:16px;transform:translateY(-50%);width:5px;height:10px;fill:currentColor}[dir=rtl] .mat-menu-submenu-icon{right:auto;left:16px;transform:translateY(-50%) scaleX(-1)}.cdk-high-contrast-active .mat-menu-submenu-icon{fill:CanvasText}button.mat-menu-item{width:100%}.mat-menu-item .mat-menu-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}\n"], directives: [{ type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], animations: [matMenuAnimations.transformMenu, matMenuAnimations.fadeInItems], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
740
765
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: MatMenu, decorators: [{
741
766
  type: Component,
@@ -747,7 +772,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImpor
747
772
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: undefined, decorators: [{
748
773
  type: Inject,
749
774
  args: [MAT_MENU_DEFAULT_OPTIONS]
750
- }] }]; } });
775
+ }] }, { type: i0.ChangeDetectorRef }]; } });
751
776
 
752
777
  /**
753
778
  * @license
@@ -777,13 +802,14 @@ class _MatMenuTriggerBase {
777
802
  constructor(_overlay, _element, _viewContainerRef, scrollStrategy, parentMenu,
778
803
  // `MatMenuTrigger` is commonly used in combination with a `MatMenuItem`.
779
804
  // tslint:disable-next-line: lightweight-tokens
780
- _menuItemInstance, _dir, _focusMonitor) {
805
+ _menuItemInstance, _dir, _focusMonitor, _ngZone) {
781
806
  this._overlay = _overlay;
782
807
  this._element = _element;
783
808
  this._viewContainerRef = _viewContainerRef;
784
809
  this._menuItemInstance = _menuItemInstance;
785
810
  this._dir = _dir;
786
811
  this._focusMonitor = _focusMonitor;
812
+ this._ngZone = _ngZone;
787
813
  this._overlayRef = null;
788
814
  this._menuOpen = false;
789
815
  this._closingActionsSubscription = Subscription.EMPTY;
@@ -1070,7 +1096,15 @@ class _MatMenuTriggerBase {
1070
1096
  position.positionChanges.subscribe(change => {
1071
1097
  const posX = change.connectionPair.overlayX === 'start' ? 'after' : 'before';
1072
1098
  const posY = change.connectionPair.overlayY === 'top' ? 'below' : 'above';
1073
- this.menu.setPositionClasses(posX, posY);
1099
+ // @breaking-change 15.0.0 Remove null check for `ngZone`.
1100
+ // `positionChanges` fires outside of the `ngZone` and `setPositionClasses` might be
1101
+ // updating something in the view so we need to bring it back in.
1102
+ if (this._ngZone) {
1103
+ this._ngZone.run(() => this.menu.setPositionClasses(posX, posY));
1104
+ }
1105
+ else {
1106
+ this.menu.setPositionClasses(posX, posY);
1107
+ }
1074
1108
  });
1075
1109
  }
1076
1110
  }
@@ -1204,7 +1238,7 @@ class _MatMenuTriggerBase {
1204
1238
  return this._portal;
1205
1239
  }
1206
1240
  }
1207
- _MatMenuTriggerBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: _MatMenuTriggerBase, deps: [{ token: i1$1.Overlay }, { token: i0.ElementRef }, { token: i0.ViewContainerRef }, { token: MAT_MENU_SCROLL_STRATEGY }, { token: MAT_MENU_PANEL, optional: true }, { token: MatMenuItem, optional: true, self: true }, { token: i3$1.Directionality, optional: true }, { token: i1.FocusMonitor }], target: i0.ɵɵFactoryTarget.Directive });
1241
+ _MatMenuTriggerBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: _MatMenuTriggerBase, deps: [{ token: i1$1.Overlay }, { token: i0.ElementRef }, { token: i0.ViewContainerRef }, { token: MAT_MENU_SCROLL_STRATEGY }, { token: MAT_MENU_PANEL, optional: true }, { token: MatMenuItem, optional: true, self: true }, { token: i3$1.Directionality, optional: true }, { token: i1.FocusMonitor }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });
1208
1242
  _MatMenuTriggerBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.0", type: _MatMenuTriggerBase, inputs: { _deprecatedMatMenuTriggerFor: ["mat-menu-trigger-for", "_deprecatedMatMenuTriggerFor"], menu: ["matMenuTriggerFor", "menu"], menuData: ["matMenuTriggerData", "menuData"], restoreFocus: ["matMenuTriggerRestoreFocus", "restoreFocus"] }, outputs: { menuOpened: "menuOpened", onMenuOpen: "onMenuOpen", menuClosed: "menuClosed", onMenuClose: "onMenuClose" }, host: { attributes: { "aria-haspopup": "true" }, listeners: { "click": "_handleClick($event)", "mousedown": "_handleMousedown($event)", "keydown": "_handleKeydown($event)" }, properties: { "attr.aria-expanded": "menuOpen || null", "attr.aria-controls": "menuOpen ? menu.panelId : null" } }, ngImport: i0 });
1209
1243
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: _MatMenuTriggerBase, decorators: [{
1210
1244
  type: Directive,
@@ -1232,7 +1266,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImpor
1232
1266
  type: Self
1233
1267
  }] }, { type: i3$1.Directionality, decorators: [{
1234
1268
  type: Optional
1235
- }] }, { type: i1.FocusMonitor }]; }, propDecorators: { _deprecatedMatMenuTriggerFor: [{
1269
+ }] }, { type: i1.FocusMonitor }, { type: i0.NgZone }]; }, propDecorators: { _deprecatedMatMenuTriggerFor: [{
1236
1270
  type: Input,
1237
1271
  args: ['mat-menu-trigger-for']
1238
1272
  }], menu: [{