@angular/cdk 15.0.0 → 15.1.0-next.0

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 (195) hide show
  1. package/a11y/index.d.ts +6 -0
  2. package/esm2020/a11y/a11y-module.mjs +5 -5
  3. package/esm2020/a11y/aria-describer/aria-describer.mjs +4 -4
  4. package/esm2020/a11y/focus-monitor/focus-monitor.mjs +7 -7
  5. package/esm2020/a11y/focus-trap/configurable-focus-trap-factory.mjs +4 -4
  6. package/esm2020/a11y/focus-trap/focus-trap-manager.mjs +4 -4
  7. package/esm2020/a11y/focus-trap/focus-trap.mjs +7 -7
  8. package/esm2020/a11y/high-contrast-mode/high-contrast-mode-detector.mjs +4 -4
  9. package/esm2020/a11y/input-modality/input-modality-detector.mjs +4 -4
  10. package/esm2020/a11y/interactivity-checker/interactivity-checker.mjs +4 -4
  11. package/esm2020/a11y/live-announcer/live-announcer.mjs +33 -7
  12. package/esm2020/accordion/accordion-item.mjs +4 -4
  13. package/esm2020/accordion/accordion-module.mjs +5 -5
  14. package/esm2020/accordion/accordion.mjs +4 -4
  15. package/esm2020/bidi/bidi-module.mjs +5 -5
  16. package/esm2020/bidi/dir.mjs +4 -4
  17. package/esm2020/bidi/directionality.mjs +4 -4
  18. package/esm2020/clipboard/clipboard-module.mjs +5 -5
  19. package/esm2020/clipboard/clipboard.mjs +4 -4
  20. package/esm2020/clipboard/copy-to-clipboard.mjs +4 -4
  21. package/esm2020/collections/unique-selection-dispatcher.mjs +4 -4
  22. package/esm2020/dialog/dialog-container.mjs +4 -4
  23. package/esm2020/dialog/dialog-module.mjs +5 -5
  24. package/esm2020/dialog/dialog.mjs +4 -4
  25. package/esm2020/drag-drop/directives/drag-handle.mjs +4 -4
  26. package/esm2020/drag-drop/directives/drag-placeholder.mjs +4 -4
  27. package/esm2020/drag-drop/directives/drag-preview.mjs +4 -4
  28. package/esm2020/drag-drop/directives/drag.mjs +4 -4
  29. package/esm2020/drag-drop/directives/drop-list-group.mjs +4 -4
  30. package/esm2020/drag-drop/directives/drop-list.mjs +4 -4
  31. package/esm2020/drag-drop/drag-drop-module.mjs +5 -5
  32. package/esm2020/drag-drop/drag-drop-registry.mjs +4 -4
  33. package/esm2020/drag-drop/drag-drop.mjs +4 -4
  34. package/esm2020/keycodes/modifiers.mjs +1 -1
  35. package/esm2020/layout/breakpoints-observer.mjs +4 -4
  36. package/esm2020/layout/layout-module.mjs +5 -5
  37. package/esm2020/layout/media-matcher.mjs +4 -4
  38. package/esm2020/listbox/listbox-module.mjs +5 -5
  39. package/esm2020/listbox/listbox.mjs +7 -7
  40. package/esm2020/menu/context-menu-trigger.mjs +9 -8
  41. package/esm2020/menu/menu-aim.mjs +7 -7
  42. package/esm2020/menu/menu-bar.mjs +4 -4
  43. package/esm2020/menu/menu-base.mjs +4 -4
  44. package/esm2020/menu/menu-group.mjs +4 -4
  45. package/esm2020/menu/menu-item-checkbox.mjs +4 -4
  46. package/esm2020/menu/menu-item-radio.mjs +4 -4
  47. package/esm2020/menu/menu-item-selectable.mjs +4 -4
  48. package/esm2020/menu/menu-item.mjs +9 -6
  49. package/esm2020/menu/menu-module.mjs +5 -5
  50. package/esm2020/menu/menu-stack.mjs +4 -4
  51. package/esm2020/menu/menu-trigger-base.mjs +4 -4
  52. package/esm2020/menu/menu-trigger.mjs +26 -22
  53. package/esm2020/menu/menu.mjs +4 -4
  54. package/esm2020/observers/observe-content.mjs +14 -14
  55. package/esm2020/overlay/dispatchers/base-overlay-dispatcher.mjs +4 -4
  56. package/esm2020/overlay/dispatchers/overlay-keyboard-dispatcher.mjs +4 -4
  57. package/esm2020/overlay/dispatchers/overlay-outside-click-dispatcher.mjs +4 -4
  58. package/esm2020/overlay/fullscreen-overlay-container.mjs +4 -4
  59. package/esm2020/overlay/overlay-container.mjs +4 -4
  60. package/esm2020/overlay/overlay-directives.mjs +7 -7
  61. package/esm2020/overlay/overlay-module.mjs +5 -5
  62. package/esm2020/overlay/overlay.mjs +4 -4
  63. package/esm2020/overlay/position/overlay-position-builder.mjs +4 -4
  64. package/esm2020/overlay/scroll/scroll-strategy-options.mjs +4 -4
  65. package/esm2020/platform/platform-module.mjs +5 -5
  66. package/esm2020/platform/platform.mjs +4 -4
  67. package/esm2020/portal/portal-directives.mjs +17 -17
  68. package/esm2020/scrolling/fixed-size-virtual-scroll.mjs +4 -4
  69. package/esm2020/scrolling/scroll-dispatcher.mjs +4 -4
  70. package/esm2020/scrolling/scrollable.mjs +4 -4
  71. package/esm2020/scrolling/scrolling-module.mjs +9 -9
  72. package/esm2020/scrolling/viewport-ruler.mjs +4 -4
  73. package/esm2020/scrolling/virtual-for-of.mjs +4 -4
  74. package/esm2020/scrolling/virtual-scroll-viewport.mjs +4 -4
  75. package/esm2020/scrolling/virtual-scrollable-element.mjs +4 -4
  76. package/esm2020/scrolling/virtual-scrollable-window.mjs +4 -4
  77. package/esm2020/scrolling/virtual-scrollable.mjs +4 -4
  78. package/esm2020/stepper/step-header.mjs +4 -4
  79. package/esm2020/stepper/step-label.mjs +4 -4
  80. package/esm2020/stepper/stepper-button.mjs +7 -7
  81. package/esm2020/stepper/stepper-module.mjs +5 -5
  82. package/esm2020/stepper/stepper.mjs +7 -7
  83. package/esm2020/table/cell.mjs +22 -22
  84. package/esm2020/table/coalesced-style-scheduler.mjs +4 -4
  85. package/esm2020/table/row.mjs +28 -28
  86. package/esm2020/table/table-module.mjs +5 -5
  87. package/esm2020/table/table.mjs +19 -19
  88. package/esm2020/table/text-column.mjs +4 -4
  89. package/esm2020/text-field/autofill.mjs +7 -7
  90. package/esm2020/text-field/autosize.mjs +4 -4
  91. package/esm2020/text-field/text-field-module.mjs +5 -5
  92. package/esm2020/tree/nested-node.mjs +4 -4
  93. package/esm2020/tree/node.mjs +4 -4
  94. package/esm2020/tree/outlet.mjs +4 -4
  95. package/esm2020/tree/padding.mjs +4 -4
  96. package/esm2020/tree/toggle.mjs +4 -4
  97. package/esm2020/tree/tree-module.mjs +5 -5
  98. package/esm2020/tree/tree.mjs +7 -7
  99. package/esm2020/version.mjs +1 -1
  100. package/fesm2015/a11y.mjs +66 -40
  101. package/fesm2015/a11y.mjs.map +1 -1
  102. package/fesm2015/accordion.mjs +10 -10
  103. package/fesm2015/accordion.mjs.map +1 -1
  104. package/fesm2015/bidi.mjs +10 -10
  105. package/fesm2015/bidi.mjs.map +1 -1
  106. package/fesm2015/cdk.mjs +1 -1
  107. package/fesm2015/cdk.mjs.map +1 -1
  108. package/fesm2015/clipboard.mjs +10 -10
  109. package/fesm2015/clipboard.mjs.map +1 -1
  110. package/fesm2015/collections.mjs +3 -3
  111. package/fesm2015/collections.mjs.map +1 -1
  112. package/fesm2015/dialog.mjs +10 -10
  113. package/fesm2015/dialog.mjs.map +1 -1
  114. package/fesm2015/drag-drop.mjs +28 -28
  115. package/fesm2015/drag-drop.mjs.map +1 -1
  116. package/fesm2015/keycodes.mjs.map +1 -1
  117. package/fesm2015/layout.mjs +10 -10
  118. package/fesm2015/layout.mjs.map +1 -1
  119. package/fesm2015/listbox.mjs +10 -10
  120. package/fesm2015/listbox.mjs.map +1 -1
  121. package/fesm2015/menu.mjs +78 -70
  122. package/fesm2015/menu.mjs.map +1 -1
  123. package/fesm2015/observers.mjs +13 -13
  124. package/fesm2015/observers.mjs.map +1 -1
  125. package/fesm2015/overlay.mjs +34 -34
  126. package/fesm2015/overlay.mjs.map +1 -1
  127. package/fesm2015/platform.mjs +7 -7
  128. package/fesm2015/platform.mjs.map +1 -1
  129. package/fesm2015/portal.mjs +16 -16
  130. package/fesm2015/portal.mjs.map +1 -1
  131. package/fesm2015/scrolling.mjs +35 -35
  132. package/fesm2015/scrolling.mjs.map +1 -1
  133. package/fesm2015/stepper.mjs +22 -22
  134. package/fesm2015/stepper.mjs.map +1 -1
  135. package/fesm2015/table.mjs +76 -76
  136. package/fesm2015/table.mjs.map +1 -1
  137. package/fesm2015/text-field.mjs +13 -13
  138. package/fesm2015/text-field.mjs.map +1 -1
  139. package/fesm2015/tree.mjs +25 -25
  140. package/fesm2015/tree.mjs.map +1 -1
  141. package/fesm2020/a11y.mjs +66 -40
  142. package/fesm2020/a11y.mjs.map +1 -1
  143. package/fesm2020/accordion.mjs +10 -10
  144. package/fesm2020/accordion.mjs.map +1 -1
  145. package/fesm2020/bidi.mjs +10 -10
  146. package/fesm2020/bidi.mjs.map +1 -1
  147. package/fesm2020/cdk.mjs +1 -1
  148. package/fesm2020/cdk.mjs.map +1 -1
  149. package/fesm2020/clipboard.mjs +10 -10
  150. package/fesm2020/clipboard.mjs.map +1 -1
  151. package/fesm2020/collections.mjs +3 -3
  152. package/fesm2020/collections.mjs.map +1 -1
  153. package/fesm2020/dialog.mjs +10 -10
  154. package/fesm2020/dialog.mjs.map +1 -1
  155. package/fesm2020/drag-drop.mjs +28 -28
  156. package/fesm2020/drag-drop.mjs.map +1 -1
  157. package/fesm2020/keycodes.mjs.map +1 -1
  158. package/fesm2020/layout.mjs +10 -10
  159. package/fesm2020/layout.mjs.map +1 -1
  160. package/fesm2020/listbox.mjs +10 -10
  161. package/fesm2020/listbox.mjs.map +1 -1
  162. package/fesm2020/menu.mjs +77 -70
  163. package/fesm2020/menu.mjs.map +1 -1
  164. package/fesm2020/observers.mjs +13 -13
  165. package/fesm2020/observers.mjs.map +1 -1
  166. package/fesm2020/overlay.mjs +34 -34
  167. package/fesm2020/overlay.mjs.map +1 -1
  168. package/fesm2020/platform.mjs +7 -7
  169. package/fesm2020/platform.mjs.map +1 -1
  170. package/fesm2020/portal.mjs +16 -16
  171. package/fesm2020/portal.mjs.map +1 -1
  172. package/fesm2020/scrolling.mjs +35 -35
  173. package/fesm2020/scrolling.mjs.map +1 -1
  174. package/fesm2020/stepper.mjs +22 -22
  175. package/fesm2020/stepper.mjs.map +1 -1
  176. package/fesm2020/table.mjs +76 -76
  177. package/fesm2020/table.mjs.map +1 -1
  178. package/fesm2020/text-field.mjs +13 -13
  179. package/fesm2020/text-field.mjs.map +1 -1
  180. package/fesm2020/tree.mjs +25 -25
  181. package/fesm2020/tree.mjs.map +1 -1
  182. package/keycodes/index.d.ts +1 -1
  183. package/menu/index.d.ts +2 -2
  184. package/package.json +2 -2
  185. package/schematics/ng-add/index.js +1 -1
  186. package/schematics/ng-add/index.mjs +1 -1
  187. package/schematics/ng-update/html-parsing/elements.d.ts +1 -2
  188. package/schematics/ng-update/html-parsing/elements.js +1 -1
  189. package/schematics/ng-update/html-parsing/elements.mjs +1 -1
  190. package/schematics/utils/html-manipulation.d.ts +1 -1
  191. package/schematics/utils/html-manipulation.js +1 -1
  192. package/schematics/utils/html-manipulation.mjs +1 -1
  193. package/schematics/utils/parse5-element.d.ts +3 -1
  194. package/schematics/utils/parse5-element.js +1 -1
  195. package/schematics/utils/parse5-element.mjs +1 -1
package/fesm2020/menu.mjs CHANGED
@@ -9,6 +9,7 @@ import { TemplatePortal } from '@angular/cdk/portal';
9
9
  import { FocusKeyManager } from '@angular/cdk/a11y';
10
10
  import { coerceBooleanProperty } from '@angular/cdk/coercion';
11
11
  import { Directionality } from '@angular/cdk/bidi';
12
+ import { _getEventTarget } from '@angular/cdk/platform';
12
13
 
13
14
  /**
14
15
  * @license
@@ -22,9 +23,9 @@ import { Directionality } from '@angular/cdk/bidi';
22
23
  */
23
24
  class CdkMenuGroup {
24
25
  }
25
- CdkMenuGroup.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0-rc.1", ngImport: i0, type: CdkMenuGroup, deps: [], target: i0.ɵɵFactoryTarget.Directive });
26
- CdkMenuGroup.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.0-rc.1", type: CdkMenuGroup, isStandalone: true, selector: "[cdkMenuGroup]", host: { attributes: { "role": "group" }, classAttribute: "cdk-menu-group" }, providers: [{ provide: UniqueSelectionDispatcher, useClass: UniqueSelectionDispatcher }], exportAs: ["cdkMenuGroup"], ngImport: i0 });
27
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0-rc.1", ngImport: i0, type: CdkMenuGroup, decorators: [{
26
+ CdkMenuGroup.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: CdkMenuGroup, deps: [], target: i0.ɵɵFactoryTarget.Directive });
27
+ CdkMenuGroup.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.0", type: CdkMenuGroup, isStandalone: true, selector: "[cdkMenuGroup]", host: { attributes: { "role": "group" }, classAttribute: "cdk-menu-group" }, providers: [{ provide: UniqueSelectionDispatcher, useClass: UniqueSelectionDispatcher }], exportAs: ["cdkMenuGroup"], ngImport: i0 });
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: CdkMenuGroup, decorators: [{
28
29
  type: Directive,
29
30
  args: [{
30
31
  selector: '[cdkMenuGroup]',
@@ -194,9 +195,9 @@ class MenuStack {
194
195
  this._hasFocus.next(hasFocus);
195
196
  }
196
197
  }
197
- MenuStack.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0-rc.1", ngImport: i0, type: MenuStack, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
198
- MenuStack.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.0-rc.1", ngImport: i0, type: MenuStack });
199
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0-rc.1", ngImport: i0, type: MenuStack, decorators: [{
198
+ MenuStack.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: MenuStack, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
199
+ MenuStack.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: MenuStack });
200
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: MenuStack, decorators: [{
200
201
  type: Injectable
201
202
  }] });
202
203
 
@@ -290,9 +291,9 @@ class CdkMenuTriggerBase {
290
291
  return this._childMenuInjector;
291
292
  }
292
293
  }
293
- CdkMenuTriggerBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0-rc.1", ngImport: i0, type: CdkMenuTriggerBase, deps: [], target: i0.ɵɵFactoryTarget.Directive });
294
- CdkMenuTriggerBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.0-rc.1", type: CdkMenuTriggerBase, host: { properties: { "attr.aria-controls": "childMenu?.id", "attr.data-cdk-menu-stack-id": "menuStack.id" } }, ngImport: i0 });
295
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0-rc.1", ngImport: i0, type: CdkMenuTriggerBase, decorators: [{
294
+ CdkMenuTriggerBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: CdkMenuTriggerBase, deps: [], target: i0.ɵɵFactoryTarget.Directive });
295
+ CdkMenuTriggerBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.0", type: CdkMenuTriggerBase, host: { properties: { "attr.aria-controls": "childMenu?.id", "attr.data-cdk-menu-stack-id": "menuStack.id" } }, ngImport: i0 });
296
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: CdkMenuTriggerBase, decorators: [{
296
297
  type: Directive,
297
298
  args: [{
298
299
  host: {
@@ -500,9 +501,9 @@ class TargetMenuAim {
500
501
  });
501
502
  }
502
503
  }
503
- TargetMenuAim.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0-rc.1", ngImport: i0, type: TargetMenuAim, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
504
- TargetMenuAim.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.0-rc.1", ngImport: i0, type: TargetMenuAim });
505
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0-rc.1", ngImport: i0, type: TargetMenuAim, decorators: [{
504
+ TargetMenuAim.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: TargetMenuAim, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
505
+ TargetMenuAim.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: TargetMenuAim });
506
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: TargetMenuAim, decorators: [{
506
507
  type: Injectable
507
508
  }] });
508
509
  /**
@@ -511,9 +512,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0-rc.1", ng
511
512
  */
512
513
  class CdkTargetMenuAim {
513
514
  }
514
- CdkTargetMenuAim.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0-rc.1", ngImport: i0, type: CdkTargetMenuAim, deps: [], target: i0.ɵɵFactoryTarget.Directive });
515
- CdkTargetMenuAim.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.0-rc.1", type: CdkTargetMenuAim, isStandalone: true, selector: "[cdkTargetMenuAim]", providers: [{ provide: MENU_AIM, useClass: TargetMenuAim }], exportAs: ["cdkTargetMenuAim"], ngImport: i0 });
516
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0-rc.1", ngImport: i0, type: CdkTargetMenuAim, decorators: [{
515
+ CdkTargetMenuAim.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: CdkTargetMenuAim, deps: [], target: i0.ɵɵFactoryTarget.Directive });
516
+ CdkTargetMenuAim.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.0", type: CdkTargetMenuAim, isStandalone: true, selector: "[cdkTargetMenuAim]", providers: [{ provide: MENU_AIM, useClass: TargetMenuAim }], exportAs: ["cdkTargetMenuAim"], ngImport: i0 });
517
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: CdkTargetMenuAim, decorators: [{
517
518
  type: Directive,
518
519
  args: [{
519
520
  selector: '[cdkTargetMenuAim]',
@@ -565,7 +566,7 @@ class CdkMenuTrigger extends CdkMenuTriggerBase {
565
566
  }
566
567
  /** Open the attached menu. */
567
568
  open() {
568
- if (!this.isOpen()) {
569
+ if (!this.isOpen() && this.menuTemplateRef != null) {
569
570
  this.opened.next();
570
571
  this.overlayRef = this.overlayRef || this._overlay.create(this._getOverlayConfig());
571
572
  this.overlayRef.attach(this.getMenuContentPortal());
@@ -592,11 +593,11 @@ class CdkMenuTrigger extends CdkMenuTriggerBase {
592
593
  */
593
594
  _toggleOnKeydown(event) {
594
595
  const isParentVertical = this._parentMenu?.orientation === 'vertical';
595
- const keyCode = event.keyCode;
596
- switch (keyCode) {
596
+ switch (event.keyCode) {
597
597
  case SPACE:
598
598
  case ENTER:
599
599
  if (!hasModifierKey(event)) {
600
+ event.preventDefault();
600
601
  this.toggle();
601
602
  this.childMenu?.focusFirstItem('keyboard');
602
603
  }
@@ -625,7 +626,7 @@ class CdkMenuTrigger extends CdkMenuTriggerBase {
625
626
  if (!isParentVertical) {
626
627
  event.preventDefault();
627
628
  this.open();
628
- keyCode === DOWN_ARROW
629
+ event.keyCode === DOWN_ARROW
629
630
  ? this.childMenu?.focusFirstItem('keyboard')
630
631
  : this.childMenu?.focusLastItem('keyboard');
631
632
  }
@@ -647,15 +648,15 @@ class CdkMenuTrigger extends CdkMenuTriggerBase {
647
648
  * into.
648
649
  */
649
650
  _subscribeToMouseEnter() {
650
- // Closes any sibling menu items and opens the menu associated with this trigger.
651
- const toggleMenus = () => this._ngZone.run(() => {
652
- this._closeSiblingTriggers();
653
- this.open();
654
- });
655
651
  this._ngZone.runOutsideAngular(() => {
656
652
  fromEvent(this._elementRef.nativeElement, 'mouseenter')
657
653
  .pipe(filter(() => !this.menuStack.isEmpty() && !this.isOpen()), takeUntil(this.destroyed))
658
654
  .subscribe(() => {
655
+ // Closes any sibling menu items and opens the menu associated with this trigger.
656
+ const toggleMenus = () => this._ngZone.run(() => {
657
+ this._closeSiblingTriggers();
658
+ this.open();
659
+ });
659
660
  if (this._menuAim) {
660
661
  this._menuAim.toggle(toggleMenus);
661
662
  }
@@ -726,14 +727,17 @@ class CdkMenuTrigger extends CdkMenuTriggerBase {
726
727
  if (this.overlayRef) {
727
728
  this.overlayRef
728
729
  .outsidePointerEvents()
729
- .pipe(filter(e => e.target != this._elementRef.nativeElement &&
730
- !this._elementRef.nativeElement.contains(e.target)), takeUntil(this.stopOutsideClicksListener))
730
+ .pipe(takeUntil(this.stopOutsideClicksListener))
731
731
  .subscribe(event => {
732
- if (!this.isElementInsideMenuStack(event.target)) {
733
- this.menuStack.closeAll();
734
- }
735
- else {
736
- this._closeSiblingTriggers();
732
+ const target = _getEventTarget(event);
733
+ const element = this._elementRef.nativeElement;
734
+ if (target !== element && !element.contains(target)) {
735
+ if (!this.isElementInsideMenuStack(target)) {
736
+ this.menuStack.closeAll();
737
+ }
738
+ else {
739
+ this._closeSiblingTriggers();
740
+ }
737
741
  }
738
742
  });
739
743
  }
@@ -775,12 +779,12 @@ class CdkMenuTrigger extends CdkMenuTriggerBase {
775
779
  }
776
780
  }
777
781
  }
778
- CdkMenuTrigger.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0-rc.1", ngImport: i0, type: CdkMenuTrigger, deps: [], target: i0.ɵɵFactoryTarget.Directive });
779
- CdkMenuTrigger.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.0-rc.1", type: CdkMenuTrigger, isStandalone: true, selector: "[cdkMenuTriggerFor]", inputs: { menuTemplateRef: ["cdkMenuTriggerFor", "menuTemplateRef"], menuPosition: ["cdkMenuPosition", "menuPosition"], menuData: ["cdkMenuTriggerData", "menuData"] }, outputs: { opened: "cdkMenuOpened", closed: "cdkMenuClosed" }, host: { attributes: { "aria-haspopup": "menu" }, listeners: { "focusin": "_setHasFocus(true)", "focusout": "_setHasFocus(false)", "keydown": "_toggleOnKeydown($event)", "click": "toggle()" }, properties: { "attr.aria-expanded": "isOpen()" }, classAttribute: "cdk-menu-trigger" }, providers: [
782
+ CdkMenuTrigger.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: CdkMenuTrigger, deps: [], target: i0.ɵɵFactoryTarget.Directive });
783
+ CdkMenuTrigger.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.0", 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": "toggle()" }, properties: { "attr.aria-haspopup": "menuTemplateRef ? \"menu\" : null", "attr.aria-expanded": "menuTemplateRef == null ? null : isOpen()" }, classAttribute: "cdk-menu-trigger" }, providers: [
780
784
  { provide: MENU_TRIGGER, useExisting: CdkMenuTrigger },
781
785
  PARENT_OR_NEW_MENU_STACK_PROVIDER,
782
786
  ], exportAs: ["cdkMenuTriggerFor"], usesInheritance: true, ngImport: i0 });
783
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0-rc.1", ngImport: i0, type: CdkMenuTrigger, decorators: [{
787
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: CdkMenuTrigger, decorators: [{
784
788
  type: Directive,
785
789
  args: [{
786
790
  selector: '[cdkMenuTriggerFor]',
@@ -788,8 +792,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0-rc.1", ng
788
792
  standalone: true,
789
793
  host: {
790
794
  'class': 'cdk-menu-trigger',
791
- 'aria-haspopup': 'menu',
792
- '[attr.aria-expanded]': 'isOpen()',
795
+ '[attr.aria-haspopup]': 'menuTemplateRef ? "menu" : null',
796
+ '[attr.aria-expanded]': 'menuTemplateRef == null ? null : isOpen()',
793
797
  '(focusin)': '_setHasFocus(true)',
794
798
  '(focusout)': '_setHasFocus(false)',
795
799
  '(keydown)': '_toggleOnKeydown($event)',
@@ -842,8 +846,6 @@ class CdkMenuItem {
842
846
  * event.
843
847
  */
844
848
  this.triggered = new EventEmitter();
845
- /** Whether the menu item opens a menu. */
846
- this.hasMenu = !!this._menuTrigger;
847
849
  /**
848
850
  * The tabindex for this menu item managed internally and used for implementing roving a
849
851
  * tab index.
@@ -866,6 +868,10 @@ class CdkMenuItem {
866
868
  set disabled(value) {
867
869
  this._disabled = coerceBooleanProperty(value);
868
870
  }
871
+ /** Whether the menu item opens a menu. */
872
+ get hasMenu() {
873
+ return this._menuTrigger?.menuTemplateRef != null;
874
+ }
869
875
  ngOnDestroy() {
870
876
  this.destroyed.next();
871
877
  this.destroyed.complete();
@@ -938,6 +944,7 @@ class CdkMenuItem {
938
944
  case SPACE:
939
945
  case ENTER:
940
946
  if (!hasModifierKey(event)) {
947
+ event.preventDefault();
941
948
  this.trigger({ keepOpen: event.keyCode === SPACE && !this.closeOnSpacebarTrigger });
942
949
  }
943
950
  break;
@@ -1035,9 +1042,9 @@ class CdkMenuItem {
1035
1042
  }
1036
1043
  }
1037
1044
  }
1038
- CdkMenuItem.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0-rc.1", ngImport: i0, type: CdkMenuItem, deps: [], target: i0.ɵɵFactoryTarget.Directive });
1039
- CdkMenuItem.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.0-rc.1", type: CdkMenuItem, isStandalone: true, selector: "[cdkMenuItem]", inputs: { disabled: ["cdkMenuItemDisabled", "disabled"], 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 });
1040
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0-rc.1", ngImport: i0, type: CdkMenuItem, decorators: [{
1045
+ CdkMenuItem.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: CdkMenuItem, deps: [], target: i0.ɵɵFactoryTarget.Directive });
1046
+ CdkMenuItem.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.0", type: CdkMenuItem, isStandalone: true, selector: "[cdkMenuItem]", inputs: { disabled: ["cdkMenuItemDisabled", "disabled"], 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 });
1047
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: CdkMenuItem, decorators: [{
1041
1048
  type: Directive,
1042
1049
  args: [{
1043
1050
  selector: '[cdkMenuItem]',
@@ -1267,9 +1274,9 @@ class CdkMenuBase extends CdkMenuGroup {
1267
1274
  }
1268
1275
  }
1269
1276
  }
1270
- CdkMenuBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0-rc.1", ngImport: i0, type: CdkMenuBase, deps: null, target: i0.ɵɵFactoryTarget.Directive });
1271
- CdkMenuBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.0-rc.1", type: CdkMenuBase, 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 });
1272
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0-rc.1", ngImport: i0, type: CdkMenuBase, decorators: [{
1277
+ CdkMenuBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: CdkMenuBase, deps: null, target: i0.ɵɵFactoryTarget.Directive });
1278
+ CdkMenuBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.0", type: CdkMenuBase, 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 });
1279
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: CdkMenuBase, decorators: [{
1273
1280
  type: Directive,
1274
1281
  args: [{
1275
1282
  host: {
@@ -1389,13 +1396,13 @@ class CdkMenu extends CdkMenuBase {
1389
1396
  .subscribe(event => this._toggleMenuFocus(event));
1390
1397
  }
1391
1398
  }
1392
- CdkMenu.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0-rc.1", ngImport: i0, type: CdkMenu, deps: [], target: i0.ɵɵFactoryTarget.Directive });
1393
- CdkMenu.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.0-rc.1", 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: [
1399
+ CdkMenu.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: CdkMenu, deps: [], target: i0.ɵɵFactoryTarget.Directive });
1400
+ CdkMenu.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.0", 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: [
1394
1401
  { provide: CdkMenuGroup, useExisting: CdkMenu },
1395
1402
  { provide: CDK_MENU, useExisting: CdkMenu },
1396
1403
  PARENT_OR_NEW_INLINE_MENU_STACK_PROVIDER('vertical'),
1397
1404
  ], exportAs: ["cdkMenu"], usesInheritance: true, ngImport: i0 });
1398
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0-rc.1", ngImport: i0, type: CdkMenu, decorators: [{
1405
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: CdkMenu, decorators: [{
1399
1406
  type: Directive,
1400
1407
  args: [{
1401
1408
  selector: '[cdkMenu]',
@@ -1518,13 +1525,13 @@ class CdkMenuBar extends CdkMenuBase {
1518
1525
  .subscribe(event => this._toggleOpenMenu(event));
1519
1526
  }
1520
1527
  }
1521
- CdkMenuBar.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0-rc.1", ngImport: i0, type: CdkMenuBar, deps: null, target: i0.ɵɵFactoryTarget.Directive });
1522
- CdkMenuBar.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.0-rc.1", type: CdkMenuBar, isStandalone: true, selector: "[cdkMenuBar]", host: { attributes: { "role": "menubar" }, listeners: { "keydown": "_handleKeyEvent($event)" }, classAttribute: "cdk-menu-bar" }, providers: [
1528
+ CdkMenuBar.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: CdkMenuBar, deps: null, target: i0.ɵɵFactoryTarget.Directive });
1529
+ CdkMenuBar.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.0", type: CdkMenuBar, isStandalone: true, selector: "[cdkMenuBar]", host: { attributes: { "role": "menubar" }, listeners: { "keydown": "_handleKeyEvent($event)" }, classAttribute: "cdk-menu-bar" }, providers: [
1523
1530
  { provide: CdkMenuGroup, useExisting: CdkMenuBar },
1524
1531
  { provide: CDK_MENU, useExisting: CdkMenuBar },
1525
1532
  { provide: MENU_STACK, useFactory: () => MenuStack.inline('horizontal') },
1526
1533
  ], exportAs: ["cdkMenuBar"], usesInheritance: true, ngImport: i0 });
1527
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0-rc.1", ngImport: i0, type: CdkMenuBar, decorators: [{
1534
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: CdkMenuBar, decorators: [{
1528
1535
  type: Directive,
1529
1536
  args: [{
1530
1537
  selector: '[cdkMenuBar]',
@@ -1566,9 +1573,9 @@ class CdkMenuItemSelectable extends CdkMenuItem {
1566
1573
  this._checked = coerceBooleanProperty(value);
1567
1574
  }
1568
1575
  }
1569
- CdkMenuItemSelectable.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0-rc.1", ngImport: i0, type: CdkMenuItemSelectable, deps: null, target: i0.ɵɵFactoryTarget.Directive });
1570
- CdkMenuItemSelectable.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.0-rc.1", type: CdkMenuItemSelectable, inputs: { checked: ["cdkMenuItemChecked", "checked"] }, host: { properties: { "attr.aria-checked": "!!checked", "attr.aria-disabled": "disabled || null" } }, usesInheritance: true, ngImport: i0 });
1571
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0-rc.1", ngImport: i0, type: CdkMenuItemSelectable, decorators: [{
1576
+ CdkMenuItemSelectable.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: CdkMenuItemSelectable, deps: null, target: i0.ɵɵFactoryTarget.Directive });
1577
+ CdkMenuItemSelectable.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.0", type: CdkMenuItemSelectable, inputs: { checked: ["cdkMenuItemChecked", "checked"] }, host: { properties: { "attr.aria-checked": "!!checked", "attr.aria-disabled": "disabled || null" } }, usesInheritance: true, ngImport: i0 });
1578
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: CdkMenuItemSelectable, decorators: [{
1572
1579
  type: Directive,
1573
1580
  args: [{
1574
1581
  host: {
@@ -1626,12 +1633,12 @@ class CdkMenuItemRadio extends CdkMenuItemSelectable {
1626
1633
  });
1627
1634
  }
1628
1635
  }
1629
- CdkMenuItemRadio.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0-rc.1", ngImport: i0, type: CdkMenuItemRadio, deps: [], target: i0.ɵɵFactoryTarget.Directive });
1630
- CdkMenuItemRadio.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.0-rc.1", type: CdkMenuItemRadio, isStandalone: true, selector: "[cdkMenuItemRadio]", host: { attributes: { "role": "menuitemradio" }, properties: { "class.cdk-menu-item-radio": "true" } }, providers: [
1636
+ CdkMenuItemRadio.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: CdkMenuItemRadio, deps: [], target: i0.ɵɵFactoryTarget.Directive });
1637
+ CdkMenuItemRadio.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.0", type: CdkMenuItemRadio, isStandalone: true, selector: "[cdkMenuItemRadio]", host: { attributes: { "role": "menuitemradio" }, properties: { "class.cdk-menu-item-radio": "true" } }, providers: [
1631
1638
  { provide: CdkMenuItemSelectable, useExisting: CdkMenuItemRadio },
1632
1639
  { provide: CdkMenuItem, useExisting: CdkMenuItemSelectable },
1633
1640
  ], exportAs: ["cdkMenuItemRadio"], usesInheritance: true, ngImport: i0 });
1634
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0-rc.1", ngImport: i0, type: CdkMenuItemRadio, decorators: [{
1641
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: CdkMenuItemRadio, decorators: [{
1635
1642
  type: Directive,
1636
1643
  args: [{
1637
1644
  selector: '[cdkMenuItemRadio]',
@@ -1672,12 +1679,12 @@ class CdkMenuItemCheckbox extends CdkMenuItemSelectable {
1672
1679
  }
1673
1680
  }
1674
1681
  }
1675
- CdkMenuItemCheckbox.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0-rc.1", ngImport: i0, type: CdkMenuItemCheckbox, deps: null, target: i0.ɵɵFactoryTarget.Directive });
1676
- CdkMenuItemCheckbox.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.0-rc.1", type: CdkMenuItemCheckbox, isStandalone: true, selector: "[cdkMenuItemCheckbox]", host: { attributes: { "role": "menuitemcheckbox" }, properties: { "class.cdk-menu-item-checkbox": "true" } }, providers: [
1682
+ CdkMenuItemCheckbox.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: CdkMenuItemCheckbox, deps: null, target: i0.ɵɵFactoryTarget.Directive });
1683
+ CdkMenuItemCheckbox.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.0", type: CdkMenuItemCheckbox, isStandalone: true, selector: "[cdkMenuItemCheckbox]", host: { attributes: { "role": "menuitemcheckbox" }, properties: { "class.cdk-menu-item-checkbox": "true" } }, providers: [
1677
1684
  { provide: CdkMenuItemSelectable, useExisting: CdkMenuItemCheckbox },
1678
1685
  { provide: CdkMenuItem, useExisting: CdkMenuItemSelectable },
1679
1686
  ], exportAs: ["cdkMenuItemCheckbox"], usesInheritance: true, ngImport: i0 });
1680
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0-rc.1", ngImport: i0, type: CdkMenuItemCheckbox, decorators: [{
1687
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: CdkMenuItemCheckbox, decorators: [{
1681
1688
  type: Directive,
1682
1689
  args: [{
1683
1690
  selector: '[cdkMenuItemCheckbox]',
@@ -1722,9 +1729,9 @@ class ContextMenuTracker {
1722
1729
  }
1723
1730
  }
1724
1731
  }
1725
- ContextMenuTracker.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0-rc.1", ngImport: i0, type: ContextMenuTracker, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1726
- ContextMenuTracker.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.0-rc.1", ngImport: i0, type: ContextMenuTracker, providedIn: 'root' });
1727
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0-rc.1", ngImport: i0, type: ContextMenuTracker, decorators: [{
1732
+ ContextMenuTracker.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: ContextMenuTracker, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1733
+ ContextMenuTracker.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: ContextMenuTracker, providedIn: 'root' });
1734
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: ContextMenuTracker, decorators: [{
1728
1735
  type: Injectable,
1729
1736
  args: [{ providedIn: 'root' }]
1730
1737
  }] });
@@ -1835,7 +1842,7 @@ class CdkContextMenuTrigger extends CdkMenuTriggerBase {
1835
1842
  outsideClicks = merge(nonAuxClicks, auxClicks.pipe(skip(1)));
1836
1843
  }
1837
1844
  outsideClicks.pipe(takeUntil(this.stopOutsideClicksListener)).subscribe(event => {
1838
- if (!this.isElementInsideMenuStack(event.target)) {
1845
+ if (!this.isElementInsideMenuStack(_getEventTarget(event))) {
1839
1846
  this.menuStack.closeAll();
1840
1847
  }
1841
1848
  });
@@ -1871,12 +1878,12 @@ class CdkContextMenuTrigger extends CdkMenuTriggerBase {
1871
1878
  }
1872
1879
  }
1873
1880
  }
1874
- CdkContextMenuTrigger.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0-rc.1", ngImport: i0, type: CdkContextMenuTrigger, deps: [], target: i0.ɵɵFactoryTarget.Directive });
1875
- CdkContextMenuTrigger.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.0-rc.1", type: CdkContextMenuTrigger, isStandalone: true, selector: "[cdkContextMenuTriggerFor]", inputs: { menuTemplateRef: ["cdkContextMenuTriggerFor", "menuTemplateRef"], menuPosition: ["cdkContextMenuPosition", "menuPosition"], menuData: ["cdkContextMenuTriggerData", "menuData"], disabled: ["cdkContextMenuDisabled", "disabled"] }, outputs: { opened: "cdkContextMenuOpened", closed: "cdkContextMenuClosed" }, host: { listeners: { "contextmenu": "_openOnContextMenu($event)" }, properties: { "attr.data-cdk-menu-stack-id": "null" } }, providers: [
1881
+ CdkContextMenuTrigger.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: CdkContextMenuTrigger, deps: [], target: i0.ɵɵFactoryTarget.Directive });
1882
+ CdkContextMenuTrigger.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.0", type: CdkContextMenuTrigger, isStandalone: true, selector: "[cdkContextMenuTriggerFor]", inputs: { menuTemplateRef: ["cdkContextMenuTriggerFor", "menuTemplateRef"], menuPosition: ["cdkContextMenuPosition", "menuPosition"], menuData: ["cdkContextMenuTriggerData", "menuData"], disabled: ["cdkContextMenuDisabled", "disabled"] }, outputs: { opened: "cdkContextMenuOpened", closed: "cdkContextMenuClosed" }, host: { listeners: { "contextmenu": "_openOnContextMenu($event)" }, properties: { "attr.data-cdk-menu-stack-id": "null" } }, providers: [
1876
1883
  { provide: MENU_TRIGGER, useExisting: CdkContextMenuTrigger },
1877
1884
  { provide: MENU_STACK, useClass: MenuStack },
1878
1885
  ], exportAs: ["cdkContextMenuTriggerFor"], usesInheritance: true, ngImport: i0 });
1879
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0-rc.1", ngImport: i0, type: CdkContextMenuTrigger, decorators: [{
1886
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: CdkContextMenuTrigger, decorators: [{
1880
1887
  type: Directive,
1881
1888
  args: [{
1882
1889
  selector: '[cdkContextMenuTriggerFor]',
@@ -1923,8 +1930,8 @@ const MENU_DIRECTIVES = [
1923
1930
  /** Module that declares components and directives for the CDK menu. */
1924
1931
  class CdkMenuModule {
1925
1932
  }
1926
- CdkMenuModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0-rc.1", ngImport: i0, type: CdkMenuModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1927
- CdkMenuModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.0.0-rc.1", ngImport: i0, type: CdkMenuModule, imports: [OverlayModule, CdkMenuBar,
1933
+ CdkMenuModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: CdkMenuModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1934
+ CdkMenuModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.0.0", ngImport: i0, type: CdkMenuModule, imports: [OverlayModule, CdkMenuBar,
1928
1935
  CdkMenu,
1929
1936
  CdkMenuItem,
1930
1937
  CdkMenuItemRadio,
@@ -1941,8 +1948,8 @@ CdkMenuModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version:
1941
1948
  CdkMenuGroup,
1942
1949
  CdkContextMenuTrigger,
1943
1950
  CdkTargetMenuAim] });
1944
- CdkMenuModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.0.0-rc.1", ngImport: i0, type: CdkMenuModule, imports: [OverlayModule] });
1945
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0-rc.1", ngImport: i0, type: CdkMenuModule, decorators: [{
1951
+ CdkMenuModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: CdkMenuModule, imports: [OverlayModule] });
1952
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: CdkMenuModule, decorators: [{
1946
1953
  type: NgModule,
1947
1954
  args: [{
1948
1955
  imports: [OverlayModule, ...MENU_DIRECTIVES],