@angular/cdk 14.0.0-next.7 → 14.0.0-rc.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 (473) hide show
  1. package/a11y/_index.scss +11 -0
  2. package/a11y/index.d.ts +1119 -5
  3. package/a11y-prebuilt.css +1 -1
  4. package/accordion/index.d.ts +108 -6
  5. package/bidi/index.d.ts +77 -5
  6. package/clipboard/index.d.ts +112 -5
  7. package/coercion/index.d.ts +64 -5
  8. package/collections/index.d.ts +348 -5
  9. package/dialog/index.d.ts +410 -0
  10. package/drag-drop/index.d.ts +1456 -5
  11. package/esm2020/a11y/a11y-module.mjs +5 -5
  12. package/esm2020/a11y/aria-describer/aria-describer.mjs +4 -4
  13. package/esm2020/a11y/focus-monitor/focus-monitor.mjs +16 -14
  14. package/esm2020/a11y/focus-trap/configurable-focus-trap-factory.mjs +4 -4
  15. package/esm2020/a11y/focus-trap/focus-trap-manager.mjs +4 -4
  16. package/esm2020/a11y/focus-trap/focus-trap.mjs +7 -7
  17. package/esm2020/a11y/high-contrast-mode/high-contrast-mode-detector.mjs +10 -10
  18. package/esm2020/a11y/input-modality/input-modality-detector.mjs +4 -4
  19. package/esm2020/a11y/interactivity-checker/interactivity-checker.mjs +4 -4
  20. package/esm2020/a11y/live-announcer/live-announcer.mjs +22 -17
  21. package/esm2020/accordion/accordion-item.mjs +4 -4
  22. package/esm2020/accordion/accordion-module.mjs +5 -5
  23. package/esm2020/accordion/accordion.mjs +4 -4
  24. package/esm2020/bidi/bidi-module.mjs +5 -5
  25. package/esm2020/bidi/dir.mjs +4 -4
  26. package/esm2020/bidi/directionality.mjs +4 -4
  27. package/esm2020/clipboard/clipboard-module.mjs +5 -5
  28. package/esm2020/clipboard/clipboard.mjs +4 -4
  29. package/esm2020/clipboard/copy-to-clipboard.mjs +4 -4
  30. package/esm2020/collections/dispose-view-repeater-strategy.mjs +4 -4
  31. package/esm2020/collections/recycle-view-repeater-strategy.mjs +4 -4
  32. package/esm2020/collections/unique-selection-dispatcher.mjs +4 -4
  33. package/esm2020/dialog/dialog-config.mjs +63 -0
  34. package/esm2020/dialog/dialog-container.mjs +278 -0
  35. package/esm2020/dialog/dialog-injectors.mjs +26 -0
  36. package/esm2020/dialog/dialog-module.mjs +42 -0
  37. package/esm2020/dialog/dialog-ref.mjs +76 -0
  38. package/esm2020/dialog/dialog.mjs +298 -0
  39. package/esm2020/dialog/dialog_public_index.mjs +5 -0
  40. package/esm2020/dialog/index.mjs +9 -0
  41. package/esm2020/dialog/public-api.mjs +14 -0
  42. package/esm2020/drag-drop/directives/drag-handle.mjs +4 -4
  43. package/esm2020/drag-drop/directives/drag-placeholder.mjs +4 -4
  44. package/esm2020/drag-drop/directives/drag-preview.mjs +4 -4
  45. package/esm2020/drag-drop/directives/drag.mjs +11 -4
  46. package/esm2020/drag-drop/directives/drop-list-group.mjs +4 -4
  47. package/esm2020/drag-drop/directives/drop-list.mjs +4 -4
  48. package/esm2020/drag-drop/drag-drop-module.mjs +5 -5
  49. package/esm2020/drag-drop/drag-drop-registry.mjs +4 -4
  50. package/esm2020/drag-drop/drag-drop.mjs +4 -4
  51. package/esm2020/drag-drop/drop-list-ref.mjs +23 -23
  52. package/esm2020/layout/breakpoints-observer.mjs +4 -4
  53. package/esm2020/layout/layout-module.mjs +5 -5
  54. package/esm2020/layout/media-matcher.mjs +4 -4
  55. package/esm2020/menu/context-menu-trigger.mjs +229 -0
  56. package/esm2020/menu/index.mjs +9 -0
  57. package/esm2020/menu/menu-aim.mjs +204 -0
  58. package/esm2020/menu/menu-bar.mjs +159 -0
  59. package/esm2020/menu/menu-base.mjs +203 -0
  60. package/esm2020/menu/menu-errors.mjs +22 -0
  61. package/esm2020/menu/menu-group.mjs +30 -0
  62. package/esm2020/menu/menu-interface.mjs +11 -0
  63. package/esm2020/menu/menu-item-checkbox.mjs +48 -0
  64. package/esm2020/menu/menu-item-radio.mjs +114 -0
  65. package/esm2020/menu/menu-item-selectable.mjs +42 -0
  66. package/esm2020/menu/menu-item.mjs +289 -0
  67. package/esm2020/menu/menu-module.mjs +62 -0
  68. package/esm2020/menu/menu-stack.mjs +156 -0
  69. package/esm2020/menu/menu-trigger-base.mjs +114 -0
  70. package/esm2020/menu/menu-trigger.mjs +304 -0
  71. package/esm2020/menu/menu.mjs +168 -0
  72. package/esm2020/menu/menu_public_index.mjs +5 -0
  73. package/esm2020/menu/pointer-focus-tracker.mjs +51 -0
  74. package/esm2020/menu/public-api.mjs +24 -0
  75. package/esm2020/observers/observe-content.mjs +14 -14
  76. package/esm2020/overlay/dispatchers/base-overlay-dispatcher.mjs +4 -4
  77. package/esm2020/overlay/dispatchers/overlay-keyboard-dispatcher.mjs +4 -4
  78. package/esm2020/overlay/dispatchers/overlay-outside-click-dispatcher.mjs +4 -4
  79. package/esm2020/overlay/fullscreen-overlay-container.mjs +4 -4
  80. package/esm2020/overlay/overlay-container.mjs +4 -4
  81. package/esm2020/overlay/overlay-directives.mjs +7 -7
  82. package/esm2020/overlay/overlay-module.mjs +5 -5
  83. package/esm2020/overlay/overlay-ref.mjs +14 -5
  84. package/esm2020/overlay/overlay.mjs +14 -8
  85. package/esm2020/overlay/position/flexible-connected-position-strategy.mjs +13 -1
  86. package/esm2020/overlay/position/overlay-position-builder.mjs +4 -4
  87. package/esm2020/overlay/public-api.mjs +2 -2
  88. package/esm2020/overlay/scroll/scroll-strategy-options.mjs +4 -4
  89. package/esm2020/platform/features/scrolling.mjs +4 -4
  90. package/esm2020/platform/platform-module.mjs +5 -5
  91. package/esm2020/platform/platform.mjs +4 -4
  92. package/esm2020/portal/dom-portal-outlet.mjs +26 -4
  93. package/esm2020/portal/portal-directives.mjs +17 -17
  94. package/esm2020/scrolling/fixed-size-virtual-scroll.mjs +4 -4
  95. package/esm2020/scrolling/scroll-dispatcher.mjs +4 -4
  96. package/esm2020/scrolling/scrollable.mjs +9 -9
  97. package/esm2020/scrolling/scrolling-module.mjs +9 -9
  98. package/esm2020/scrolling/viewport-ruler.mjs +4 -4
  99. package/esm2020/scrolling/virtual-for-of.mjs +7 -5
  100. package/esm2020/scrolling/virtual-scroll-viewport.mjs +6 -6
  101. package/esm2020/stepper/step-header.mjs +4 -4
  102. package/esm2020/stepper/step-label.mjs +4 -4
  103. package/esm2020/stepper/stepper-button.mjs +7 -7
  104. package/esm2020/stepper/stepper-module.mjs +5 -5
  105. package/esm2020/stepper/stepper.mjs +7 -7
  106. package/esm2020/table/cell.mjs +22 -22
  107. package/esm2020/table/coalesced-style-scheduler.mjs +4 -4
  108. package/esm2020/table/row.mjs +28 -28
  109. package/esm2020/table/table-module.mjs +5 -5
  110. package/esm2020/table/table.mjs +22 -22
  111. package/esm2020/table/text-column.mjs +5 -5
  112. package/esm2020/testing/selenium-webdriver/selenium-web-driver-harness-environment.mjs +1 -1
  113. package/esm2020/testing/test-element.mjs +1 -1
  114. package/esm2020/testing/testbed/fake-events/type-in-element.mjs +2 -2
  115. package/esm2020/text-field/autofill.mjs +7 -7
  116. package/esm2020/text-field/autosize.mjs +4 -4
  117. package/esm2020/text-field/text-field-module.mjs +5 -5
  118. package/esm2020/tree/nested-node.mjs +4 -4
  119. package/esm2020/tree/node.mjs +4 -4
  120. package/esm2020/tree/outlet.mjs +4 -4
  121. package/esm2020/tree/padding.mjs +4 -4
  122. package/esm2020/tree/toggle.mjs +4 -4
  123. package/esm2020/tree/tree-module.mjs +5 -5
  124. package/esm2020/tree/tree.mjs +7 -7
  125. package/esm2020/version.mjs +1 -1
  126. package/fesm2015/a11y.mjs +71 -64
  127. package/fesm2015/a11y.mjs.map +1 -1
  128. package/fesm2015/accordion.mjs +10 -10
  129. package/fesm2015/accordion.mjs.map +1 -1
  130. package/fesm2015/bidi.mjs +10 -10
  131. package/fesm2015/bidi.mjs.map +1 -1
  132. package/fesm2015/cdk.mjs +1 -1
  133. package/fesm2015/cdk.mjs.map +1 -1
  134. package/fesm2015/clipboard.mjs +10 -10
  135. package/fesm2015/clipboard.mjs.map +1 -1
  136. package/fesm2015/collections.mjs +9 -9
  137. package/fesm2015/collections.mjs.map +1 -1
  138. package/fesm2015/dialog.mjs +780 -0
  139. package/fesm2015/dialog.mjs.map +1 -0
  140. package/fesm2015/drag-drop.mjs +57 -50
  141. package/fesm2015/drag-drop.mjs.map +1 -1
  142. package/fesm2015/layout.mjs +10 -10
  143. package/fesm2015/layout.mjs.map +1 -1
  144. package/fesm2015/menu.mjs +2135 -0
  145. package/fesm2015/menu.mjs.map +1 -0
  146. package/fesm2015/observers.mjs +13 -13
  147. package/fesm2015/observers.mjs.map +1 -1
  148. package/fesm2015/overlay.mjs +70 -43
  149. package/fesm2015/overlay.mjs.map +1 -1
  150. package/fesm2015/platform.mjs +10 -10
  151. package/fesm2015/platform.mjs.map +1 -1
  152. package/fesm2015/portal.mjs +41 -20
  153. package/fesm2015/portal.mjs.map +1 -1
  154. package/fesm2015/scrolling.mjs +36 -34
  155. package/fesm2015/scrolling.mjs.map +1 -1
  156. package/fesm2015/stepper.mjs +22 -22
  157. package/fesm2015/stepper.mjs.map +1 -1
  158. package/fesm2015/table.mjs +80 -80
  159. package/fesm2015/table.mjs.map +1 -1
  160. package/fesm2015/testing/selenium-webdriver.mjs.map +1 -1
  161. package/fesm2015/testing/testbed.mjs +1 -1
  162. package/fesm2015/testing/testbed.mjs.map +1 -1
  163. package/fesm2015/testing.mjs.map +1 -1
  164. package/fesm2015/text-field.mjs +13 -13
  165. package/fesm2015/text-field.mjs.map +1 -1
  166. package/fesm2015/tree.mjs +25 -25
  167. package/fesm2015/tree.mjs.map +1 -1
  168. package/fesm2020/a11y.mjs +70 -63
  169. package/fesm2020/a11y.mjs.map +1 -1
  170. package/fesm2020/accordion.mjs +10 -10
  171. package/fesm2020/accordion.mjs.map +1 -1
  172. package/fesm2020/bidi.mjs +10 -10
  173. package/fesm2020/bidi.mjs.map +1 -1
  174. package/fesm2020/cdk.mjs +1 -1
  175. package/fesm2020/cdk.mjs.map +1 -1
  176. package/fesm2020/clipboard.mjs +10 -10
  177. package/fesm2020/clipboard.mjs.map +1 -1
  178. package/fesm2020/collections.mjs +9 -9
  179. package/fesm2020/collections.mjs.map +1 -1
  180. package/fesm2020/dialog.mjs +784 -0
  181. package/fesm2020/dialog.mjs.map +1 -0
  182. package/fesm2020/drag-drop.mjs +57 -50
  183. package/fesm2020/drag-drop.mjs.map +1 -1
  184. package/fesm2020/layout.mjs +10 -10
  185. package/fesm2020/layout.mjs.map +1 -1
  186. package/fesm2020/menu.mjs +2108 -0
  187. package/fesm2020/menu.mjs.map +1 -0
  188. package/fesm2020/observers.mjs +13 -13
  189. package/fesm2020/observers.mjs.map +1 -1
  190. package/fesm2020/overlay.mjs +70 -43
  191. package/fesm2020/overlay.mjs.map +1 -1
  192. package/fesm2020/platform.mjs +10 -10
  193. package/fesm2020/platform.mjs.map +1 -1
  194. package/fesm2020/portal.mjs +41 -20
  195. package/fesm2020/portal.mjs.map +1 -1
  196. package/fesm2020/scrolling.mjs +36 -34
  197. package/fesm2020/scrolling.mjs.map +1 -1
  198. package/fesm2020/stepper.mjs +22 -22
  199. package/fesm2020/stepper.mjs.map +1 -1
  200. package/fesm2020/table.mjs +80 -80
  201. package/fesm2020/table.mjs.map +1 -1
  202. package/fesm2020/testing/selenium-webdriver.mjs.map +1 -1
  203. package/fesm2020/testing/testbed.mjs +1 -1
  204. package/fesm2020/testing/testbed.mjs.map +1 -1
  205. package/fesm2020/testing.mjs.map +1 -1
  206. package/fesm2020/text-field.mjs +13 -13
  207. package/fesm2020/text-field.mjs.map +1 -1
  208. package/fesm2020/tree.mjs +25 -25
  209. package/fesm2020/tree.mjs.map +1 -1
  210. package/index.d.ts +6 -8
  211. package/keycodes/index.d.ts +247 -6
  212. package/layout/index.d.ts +91 -8
  213. package/menu/index.d.ts +992 -0
  214. package/observers/index.d.ts +89 -6
  215. package/overlay/_index.scss +4 -0
  216. package/overlay/index.d.ts +1202 -5
  217. package/overlay-prebuilt.css +1 -1
  218. package/package.json +34 -18
  219. package/platform/index.d.ts +104 -6
  220. package/portal/index.d.ts +325 -5
  221. package/schematics/collection.json +2 -1
  222. package/schematics/ng-add/index.js +1 -1
  223. package/schematics/ng-add/index.mjs +1 -1
  224. package/schematics/ng-update/data/constructor-checks.js +3 -3
  225. package/schematics/ng-update/data/constructor-checks.mjs +3 -3
  226. package/schematics/utils/build-component.js +2 -2
  227. package/schematics/utils/build-component.mjs +2 -2
  228. package/schematics/utils/get-project.d.ts +1 -1
  229. package/schematics/utils/get-project.js +7 -2
  230. package/schematics/utils/get-project.mjs +7 -2
  231. package/schematics/utils/schematic-options.js +2 -2
  232. package/schematics/utils/schematic-options.mjs +2 -2
  233. package/scrolling/index.d.ts +647 -6
  234. package/stepper/index.d.ts +328 -6
  235. package/table/index.d.ts +1172 -5
  236. package/testing/index.d.ts +726 -5
  237. package/testing/selenium-webdriver/index.d.ts +134 -8
  238. package/testing/testbed/index.d.ts +161 -8
  239. package/text-field/index.d.ts +175 -6
  240. package/text-field-prebuilt.css +1 -1
  241. package/tree/index.d.ts +498 -6
  242. package/a11y/a11y-module.d.ts +0 -12
  243. package/a11y/a11y_public_index.d.ts +0 -4
  244. package/a11y/aria-describer/aria-describer.d.ts +0 -101
  245. package/a11y/aria-describer/aria-reference.d.ts +0 -22
  246. package/a11y/fake-event-detection.d.ts +0 -11
  247. package/a11y/focus-monitor/focus-monitor.d.ts +0 -209
  248. package/a11y/focus-trap/configurable-focus-trap-config.d.ts +0 -16
  249. package/a11y/focus-trap/configurable-focus-trap-factory.d.ts +0 -30
  250. package/a11y/focus-trap/configurable-focus-trap.d.ts +0 -33
  251. package/a11y/focus-trap/event-listener-inert-strategy.d.ts +0 -29
  252. package/a11y/focus-trap/focus-trap-inert-strategy.d.ts +0 -21
  253. package/a11y/focus-trap/focus-trap-manager.d.ts +0 -26
  254. package/a11y/focus-trap/focus-trap.d.ts +0 -163
  255. package/a11y/high-contrast-mode/high-contrast-mode-detector.d.ts +0 -48
  256. package/a11y/input-modality/input-modality-detector.d.ts +0 -99
  257. package/a11y/interactivity-checker/interactivity-checker.d.ts +0 -60
  258. package/a11y/key-manager/activedescendant-key-manager.d.ts +0 -35
  259. package/a11y/key-manager/focus-key-manager.d.ts +0 -37
  260. package/a11y/key-manager/list-key-manager.d.ts +0 -152
  261. package/a11y/live-announcer/live-announcer-tokens.d.ts +0 -22
  262. package/a11y/live-announcer/live-announcer.d.ts +0 -83
  263. package/a11y/package.json +0 -9
  264. package/a11y/public-api.d.ts +0 -25
  265. package/accordion/accordion-item.d.ts +0 -59
  266. package/accordion/accordion-module.d.ts +0 -8
  267. package/accordion/accordion.d.ts +0 -40
  268. package/accordion/accordion_public_index.d.ts +0 -4
  269. package/accordion/package.json +0 -9
  270. package/accordion/public-api.d.ts +0 -10
  271. package/bidi/bidi-module.d.ts +0 -7
  272. package/bidi/bidi_public_index.d.ts +0 -4
  273. package/bidi/dir-document-token.d.ts +0 -26
  274. package/bidi/dir.d.ts +0 -36
  275. package/bidi/directionality.d.ts +0 -26
  276. package/bidi/package.json +0 -9
  277. package/bidi/public-api.d.ts +0 -11
  278. package/clipboard/clipboard-module.d.ts +0 -7
  279. package/clipboard/clipboard.d.ts +0 -28
  280. package/clipboard/clipboard_public_index.d.ts +0 -4
  281. package/clipboard/copy-to-clipboard.d.ts +0 -49
  282. package/clipboard/package.json +0 -9
  283. package/clipboard/pending-copy.d.ts +0 -29
  284. package/clipboard/public-api.d.ts +0 -11
  285. package/coercion/array.d.ts +0 -10
  286. package/coercion/boolean-property.d.ts +0 -14
  287. package/coercion/css-pixel-value.d.ts +0 -9
  288. package/coercion/element.d.ts +0 -13
  289. package/coercion/number-property.d.ts +0 -20
  290. package/coercion/package.json +0 -9
  291. package/coercion/public-api.d.ts +0 -13
  292. package/coercion/string-array.d.ts +0 -25
  293. package/collections/array-data-source.d.ts +0 -16
  294. package/collections/collection-viewer.d.ts +0 -24
  295. package/collections/collections_public_index.d.ts +0 -4
  296. package/collections/data-source.d.ts +0 -30
  297. package/collections/dispose-view-repeater-strategy.d.ts +0 -22
  298. package/collections/package.json +0 -9
  299. package/collections/public-api.d.ts +0 -16
  300. package/collections/recycle-view-repeater-strategy.d.ts +0 -54
  301. package/collections/selection-model.d.ts +0 -95
  302. package/collections/tree-adapter.d.ts +0 -26
  303. package/collections/unique-selection-dispatcher.d.ts +0 -36
  304. package/collections/view-repeater.d.ts +0 -92
  305. package/drag-drop/client-rect.d.ts +0 -38
  306. package/drag-drop/clone-node.d.ts +0 -9
  307. package/drag-drop/directives/assertions.d.ts +0 -13
  308. package/drag-drop/directives/config.d.ts +0 -43
  309. package/drag-drop/directives/drag-handle.d.ts +0 -33
  310. package/drag-drop/directives/drag-placeholder.d.ts +0 -27
  311. package/drag-drop/directives/drag-preview.d.ts +0 -32
  312. package/drag-drop/directives/drag.d.ts +0 -160
  313. package/drag-drop/directives/drop-list-group.d.ts +0 -33
  314. package/drag-drop/directives/drop-list.d.ts +0 -123
  315. package/drag-drop/drag-drop-module.d.ts +0 -13
  316. package/drag-drop/drag-drop-registry.d.ts +0 -89
  317. package/drag-drop/drag-drop.d.ts +0 -36
  318. package/drag-drop/drag-drop_public_index.d.ts +0 -4
  319. package/drag-drop/drag-events.d.ts +0 -124
  320. package/drag-drop/drag-parent.d.ts +0 -15
  321. package/drag-drop/drag-ref.d.ts +0 -448
  322. package/drag-drop/drag-styling.d.ts +0 -42
  323. package/drag-drop/drag-utils.d.ts +0 -32
  324. package/drag-drop/drop-list-ref.d.ts +0 -312
  325. package/drag-drop/package.json +0 -9
  326. package/drag-drop/parent-position-tracker.d.ts +0 -39
  327. package/drag-drop/public-api.d.ts +0 -22
  328. package/drag-drop/transition-duration.d.ts +0 -9
  329. package/keycodes/keycodes.d.ts +0 -126
  330. package/keycodes/keycodes_public_index.d.ts +0 -4
  331. package/keycodes/modifiers.d.ts +0 -14
  332. package/keycodes/package.json +0 -9
  333. package/keycodes/public-api.d.ts +0 -9
  334. package/layout/breakpoints-observer.d.ts +0 -45
  335. package/layout/breakpoints.d.ts +0 -23
  336. package/layout/layout-module.d.ts +0 -6
  337. package/layout/layout_public_index.d.ts +0 -4
  338. package/layout/media-matcher.d.ts +0 -18
  339. package/layout/package.json +0 -9
  340. package/layout/public-api.d.ts +0 -11
  341. package/observers/observe-content.d.ts +0 -87
  342. package/observers/observers_public_index.d.ts +0 -4
  343. package/observers/package.json +0 -9
  344. package/observers/public-api.d.ts +0 -8
  345. package/overlay/dispatchers/base-overlay-dispatcher.d.ts +0 -24
  346. package/overlay/dispatchers/index.d.ts +0 -9
  347. package/overlay/dispatchers/overlay-keyboard-dispatcher.d.ts +0 -24
  348. package/overlay/dispatchers/overlay-outside-click-dispatcher.d.ts +0 -32
  349. package/overlay/fullscreen-overlay-container.d.ts +0 -35
  350. package/overlay/overlay-config.d.ts +0 -47
  351. package/overlay/overlay-container.d.ts +0 -25
  352. package/overlay/overlay-directives.d.ts +0 -148
  353. package/overlay/overlay-module.d.ts +0 -10
  354. package/overlay/overlay-ref.d.ts +0 -144
  355. package/overlay/overlay-reference.d.ts +0 -38
  356. package/overlay/overlay.d.ts +0 -75
  357. package/overlay/overlay_public_index.d.ts +0 -4
  358. package/overlay/package.json +0 -9
  359. package/overlay/position/connected-position.d.ts +0 -102
  360. package/overlay/position/flexible-connected-position-strategy.d.ts +0 -280
  361. package/overlay/position/global-position-strategy.d.ts +0 -99
  362. package/overlay/position/overlay-position-builder.d.ts +0 -32
  363. package/overlay/position/position-strategy.d.ts +0 -19
  364. package/overlay/position/scroll-clip.d.ts +0 -26
  365. package/overlay/public-api.d.ts +0 -23
  366. package/overlay/scroll/block-scroll-strategy.d.ts +0 -27
  367. package/overlay/scroll/close-scroll-strategy.d.ts +0 -40
  368. package/overlay/scroll/index.d.ts +0 -14
  369. package/overlay/scroll/noop-scroll-strategy.d.ts +0 -17
  370. package/overlay/scroll/reposition-scroll-strategy.d.ts +0 -39
  371. package/overlay/scroll/scroll-strategy-options.d.ts +0 -44
  372. package/overlay/scroll/scroll-strategy.d.ts +0 -25
  373. package/platform/features/input-types.d.ts +0 -9
  374. package/platform/features/passive-listeners.d.ts +0 -19
  375. package/platform/features/scrolling.d.ts +0 -32
  376. package/platform/features/shadow-dom.d.ts +0 -18
  377. package/platform/features/test-environment.d.ts +0 -9
  378. package/platform/package.json +0 -9
  379. package/platform/platform-module.d.ts +0 -6
  380. package/platform/platform.d.ts +0 -29
  381. package/platform/platform_public_index.d.ts +0 -4
  382. package/platform/public-api.d.ts +0 -14
  383. package/portal/dom-portal-outlet.d.ts +0 -60
  384. package/portal/package.json +0 -9
  385. package/portal/portal-directives.d.ts +0 -99
  386. package/portal/portal-errors.d.ts +0 -37
  387. package/portal/portal-injector.d.ts +0 -21
  388. package/portal/portal.d.ts +0 -140
  389. package/portal/portal_public_index.d.ts +0 -4
  390. package/portal/public-api.d.ts +0 -11
  391. package/public-api.d.ts +0 -8
  392. package/scrolling/fixed-size-virtual-scroll.d.ts +0 -97
  393. package/scrolling/package.json +0 -9
  394. package/scrolling/public-api.d.ts +0 -16
  395. package/scrolling/scroll-dispatcher.d.ts +0 -71
  396. package/scrolling/scrollable.d.ts +0 -85
  397. package/scrolling/scrolling-module.d.ts +0 -19
  398. package/scrolling/scrolling_public_index.d.ts +0 -4
  399. package/scrolling/viewport-ruler.d.ts +0 -63
  400. package/scrolling/virtual-for-of.d.ts +0 -117
  401. package/scrolling/virtual-scroll-repeater.d.ts +0 -16
  402. package/scrolling/virtual-scroll-strategy.d.ts +0 -38
  403. package/scrolling/virtual-scroll-viewport.d.ts +0 -147
  404. package/stepper/package.json +0 -9
  405. package/stepper/public-api.d.ts +0 -12
  406. package/stepper/step-header.d.ts +0 -18
  407. package/stepper/step-label.d.ts +0 -15
  408. package/stepper/stepper-button.d.ts +0 -20
  409. package/stepper/stepper-module.d.ts +0 -11
  410. package/stepper/stepper.d.ts +0 -233
  411. package/stepper/stepper_public_index.d.ts +0 -4
  412. package/table/can-stick.d.ts +0 -34
  413. package/table/cell.d.ts +0 -126
  414. package/table/coalesced-style-scheduler.d.ts +0 -46
  415. package/table/package.json +0 -9
  416. package/table/public-api.d.ts +0 -19
  417. package/table/row.d.ts +0 -175
  418. package/table/sticky-position-listener.d.ts +0 -31
  419. package/table/sticky-styler.d.ts +0 -126
  420. package/table/table-errors.d.ts +0 -48
  421. package/table/table-module.d.ts +0 -11
  422. package/table/table.d.ts +0 -494
  423. package/table/table_public_index.d.ts +0 -4
  424. package/table/text-column.d.ts +0 -73
  425. package/table/tokens.d.ts +0 -25
  426. package/testing/change-detection.d.ts +0 -83
  427. package/testing/component-harness.d.ts +0 -426
  428. package/testing/element-dimensions.d.ts +0 -16
  429. package/testing/harness-environment.d.ts +0 -62
  430. package/testing/package.json +0 -9
  431. package/testing/public-api.d.ts +0 -14
  432. package/testing/selenium-webdriver/package.json +0 -9
  433. package/testing/selenium-webdriver/public-api.d.ts +0 -9
  434. package/testing/selenium-webdriver/selenium-web-driver-element.d.ts +0 -91
  435. package/testing/selenium-webdriver/selenium-web-driver-harness-environment.d.ts +0 -66
  436. package/testing/selenium-webdriver/selenium-webdriver-keys.d.ts +0 -46
  437. package/testing/test-element-errors.d.ts +0 -12
  438. package/testing/test-element.d.ts +0 -135
  439. package/testing/testbed/fake-events/dispatch-events.d.ts +0 -39
  440. package/testing/testbed/fake-events/element-focus.d.ts +0 -18
  441. package/testing/testbed/fake-events/event-objects.d.ts +0 -39
  442. package/testing/testbed/fake-events/index.d.ts +0 -11
  443. package/testing/testbed/fake-events/type-in-element.d.ts +0 -41
  444. package/testing/testbed/package.json +0 -9
  445. package/testing/testbed/proxy-zone-types.d.ts +0 -29
  446. package/testing/testbed/public-api.d.ts +0 -9
  447. package/testing/testbed/task-state-zone-interceptor.d.ts +0 -37
  448. package/testing/testbed/testbed-harness-environment.d.ts +0 -64
  449. package/testing/testbed/unit-test-element.d.ts +0 -98
  450. package/testing/testbed/zone-types.d.ts +0 -22
  451. package/testing/text-filtering.d.ts +0 -13
  452. package/text-field/autofill.d.ts +0 -66
  453. package/text-field/autosize.d.ts +0 -95
  454. package/text-field/package.json +0 -9
  455. package/text-field/public-api.d.ts +0 -10
  456. package/text-field/text-field-module.d.ts +0 -8
  457. package/text-field/text-field_public_index.d.ts +0 -4
  458. package/tree/control/base-tree-control.d.ts +0 -54
  459. package/tree/control/flat-tree-control.d.ts +0 -34
  460. package/tree/control/nested-tree-control.d.ts +0 -31
  461. package/tree/control/tree-control.d.ts +0 -49
  462. package/tree/nested-node.d.ts +0 -38
  463. package/tree/node.d.ts +0 -40
  464. package/tree/outlet.d.ts +0 -26
  465. package/tree/package.json +0 -9
  466. package/tree/padding.d.ts +0 -60
  467. package/tree/public-api.d.ts +0 -19
  468. package/tree/toggle.d.ts +0 -25
  469. package/tree/tree-errors.d.ts +0 -32
  470. package/tree/tree-module.d.ts +0 -12
  471. package/tree/tree.d.ts +0 -128
  472. package/tree/tree_public_index.d.ts +0 -4
  473. package/version.d.ts +0 -10
@@ -0,0 +1,159 @@
1
+ /**
2
+ * @license
3
+ * Copyright Google LLC All Rights Reserved.
4
+ *
5
+ * Use of this source code is governed by an MIT-style license that can be
6
+ * found in the LICENSE file at https://angular.io/license
7
+ */
8
+ import { Directive, ElementRef, Inject, NgZone, Optional, Self, } from '@angular/core';
9
+ import { Directionality } from '@angular/cdk/bidi';
10
+ import { DOWN_ARROW, ESCAPE, hasModifierKey, LEFT_ARROW, RIGHT_ARROW, TAB, UP_ARROW, } from '@angular/cdk/keycodes';
11
+ import { takeUntil } from 'rxjs/operators';
12
+ import { CdkMenuGroup } from './menu-group';
13
+ import { CDK_MENU } from './menu-interface';
14
+ import { MENU_STACK, MenuStack } from './menu-stack';
15
+ import { MENU_AIM } from './menu-aim';
16
+ import { CdkMenuBase } from './menu-base';
17
+ import * as i0 from "@angular/core";
18
+ import * as i1 from "@angular/cdk/bidi";
19
+ import * as i2 from "./menu-stack";
20
+ /**
21
+ * Directive applied to an element which configures it as a MenuBar by setting the appropriate
22
+ * role, aria attributes, and accessible keyboard and mouse handling logic. The component that
23
+ * this directive is applied to should contain components marked with CdkMenuItem.
24
+ *
25
+ */
26
+ export class CdkMenuBar extends CdkMenuBase {
27
+ constructor(
28
+ /** The host element. */
29
+ elementRef,
30
+ /** The Angular zone. */
31
+ ngZone,
32
+ /** The menu stack this menu is part of. */
33
+ menuStack,
34
+ /** The menu aim service used by this menu. */
35
+ menuAim,
36
+ /** The directionality of the page. */
37
+ dir) {
38
+ super(elementRef, ngZone, menuStack, menuAim, dir);
39
+ /** The direction items in the menu flow. */
40
+ this.orientation = 'horizontal';
41
+ /** Whether the menu is displayed inline (i.e. always present vs a conditional popup that the user triggers with a trigger element). */
42
+ this.isInline = true;
43
+ }
44
+ ngAfterContentInit() {
45
+ super.ngAfterContentInit();
46
+ this._subscribeToMenuStackEmptied();
47
+ }
48
+ /**
49
+ * Handle keyboard events for the Menu.
50
+ * @param event The keyboard event to be handled.
51
+ */
52
+ _handleKeyEvent(event) {
53
+ const keyManager = this.keyManager;
54
+ switch (event.keyCode) {
55
+ case UP_ARROW:
56
+ case DOWN_ARROW:
57
+ case LEFT_ARROW:
58
+ case RIGHT_ARROW:
59
+ if (!hasModifierKey(event)) {
60
+ const horizontalArrows = event.keyCode === LEFT_ARROW || event.keyCode === RIGHT_ARROW;
61
+ // For a horizontal menu if the left/right keys were clicked, or a vertical menu if the
62
+ // up/down keys were clicked: if the current menu is open, close it then focus and open the
63
+ // next menu.
64
+ if (horizontalArrows) {
65
+ event.preventDefault();
66
+ const prevIsOpen = keyManager.activeItem?.isMenuOpen();
67
+ keyManager.activeItem?.getMenuTrigger()?.close();
68
+ keyManager.setFocusOrigin('keyboard');
69
+ keyManager.onKeydown(event);
70
+ if (prevIsOpen) {
71
+ keyManager.activeItem?.getMenuTrigger()?.open();
72
+ }
73
+ }
74
+ }
75
+ break;
76
+ case ESCAPE:
77
+ if (!hasModifierKey(event)) {
78
+ event.preventDefault();
79
+ keyManager.activeItem?.getMenuTrigger()?.close();
80
+ }
81
+ break;
82
+ case TAB:
83
+ if (!hasModifierKey(event, 'altKey', 'metaKey', 'ctrlKey')) {
84
+ keyManager.activeItem?.getMenuTrigger()?.close();
85
+ }
86
+ break;
87
+ default:
88
+ keyManager.onKeydown(event);
89
+ }
90
+ }
91
+ /**
92
+ * Set focus to either the current, previous or next item based on the FocusNext event, then
93
+ * open the previous or next item.
94
+ * @param focusNext The element to focus.
95
+ */
96
+ _toggleOpenMenu(focusNext) {
97
+ const keyManager = this.keyManager;
98
+ switch (focusNext) {
99
+ case 0 /* FocusNext.nextItem */:
100
+ keyManager.setFocusOrigin('keyboard');
101
+ keyManager.setNextItemActive();
102
+ keyManager.activeItem?.getMenuTrigger()?.open();
103
+ break;
104
+ case 1 /* FocusNext.previousItem */:
105
+ keyManager.setFocusOrigin('keyboard');
106
+ keyManager.setPreviousItemActive();
107
+ keyManager.activeItem?.getMenuTrigger()?.open();
108
+ break;
109
+ case 2 /* FocusNext.currentItem */:
110
+ if (keyManager.activeItem) {
111
+ keyManager.setFocusOrigin('keyboard');
112
+ keyManager.setActiveItem(keyManager.activeItem);
113
+ }
114
+ break;
115
+ }
116
+ }
117
+ /** Subscribe to the MenuStack emptied events. */
118
+ _subscribeToMenuStackEmptied() {
119
+ this.menuStack?.emptied
120
+ .pipe(takeUntil(this.destroyed))
121
+ .subscribe(event => this._toggleOpenMenu(event));
122
+ }
123
+ }
124
+ CdkMenuBar.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0-next.16", ngImport: i0, type: CdkMenuBar, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: MENU_STACK }, { token: MENU_AIM, optional: true, self: true }, { token: i1.Directionality, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
125
+ CdkMenuBar.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.0.0-next.16", type: CdkMenuBar, selector: "[cdkMenuBar]", host: { attributes: { "role": "menubar" }, listeners: { "keydown": "_handleKeyEvent($event)" }, classAttribute: "cdk-menu-bar" }, providers: [
126
+ { provide: CdkMenuGroup, useExisting: CdkMenuBar },
127
+ { provide: CDK_MENU, useExisting: CdkMenuBar },
128
+ { provide: MENU_STACK, useFactory: () => MenuStack.inline('horizontal') },
129
+ ], exportAs: ["cdkMenuBar"], usesInheritance: true, ngImport: i0 });
130
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.16", ngImport: i0, type: CdkMenuBar, decorators: [{
131
+ type: Directive,
132
+ args: [{
133
+ selector: '[cdkMenuBar]',
134
+ exportAs: 'cdkMenuBar',
135
+ host: {
136
+ 'role': 'menubar',
137
+ 'class': 'cdk-menu-bar',
138
+ '(keydown)': '_handleKeyEvent($event)',
139
+ },
140
+ providers: [
141
+ { provide: CdkMenuGroup, useExisting: CdkMenuBar },
142
+ { provide: CDK_MENU, useExisting: CdkMenuBar },
143
+ { provide: MENU_STACK, useFactory: () => MenuStack.inline('horizontal') },
144
+ ],
145
+ }]
146
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i2.MenuStack, decorators: [{
147
+ type: Inject,
148
+ args: [MENU_STACK]
149
+ }] }, { type: undefined, decorators: [{
150
+ type: Self
151
+ }, {
152
+ type: Optional
153
+ }, {
154
+ type: Inject,
155
+ args: [MENU_AIM]
156
+ }] }, { type: i1.Directionality, decorators: [{
157
+ type: Optional
158
+ }] }]; } });
159
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS1iYXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvY2RrL21lbnUvbWVudS1iYXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsT0FBTyxFQUVMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsTUFBTSxFQUNOLE1BQU0sRUFDTixRQUFRLEVBQ1IsSUFBSSxHQUNMLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRCxPQUFPLEVBQ0wsVUFBVSxFQUNWLE1BQU0sRUFDTixjQUFjLEVBQ2QsVUFBVSxFQUNWLFdBQVcsRUFDWCxHQUFHLEVBQ0gsUUFBUSxHQUNULE1BQU0sdUJBQXVCLENBQUM7QUFDL0IsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3pDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFDMUMsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQzFDLE9BQU8sRUFBWSxVQUFVLEVBQUUsU0FBUyxFQUFDLE1BQU0sY0FBYyxDQUFDO0FBQzlELE9BQU8sRUFBQyxRQUFRLEVBQVUsTUFBTSxZQUFZLENBQUM7QUFDN0MsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGFBQWEsQ0FBQzs7OztBQUV4Qzs7Ozs7R0FLRztBQWVILE1BQU0sT0FBTyxVQUFXLFNBQVEsV0FBVztJQU96QztJQUNFLHdCQUF3QjtJQUN4QixVQUFtQztJQUNuQyx3QkFBd0I7SUFDeEIsTUFBYztJQUNkLDJDQUEyQztJQUN2QixTQUFvQjtJQUN4Qyw4Q0FBOEM7SUFDUixPQUFpQjtJQUN2RCxzQ0FBc0M7SUFDMUIsR0FBb0I7UUFFaEMsS0FBSyxDQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQztRQWxCckQsNENBQTRD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OzJCQUFDLFFBQVE7OzBCQUVuQyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7XG4gIEFmdGVyQ29udGVudEluaXQsXG4gIERpcmVjdGl2ZSxcbiAgRWxlbWVudFJlZixcbiAgSW5qZWN0LFxuICBOZ1pvbmUsXG4gIE9wdGlvbmFsLFxuICBTZWxmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7RGlyZWN0aW9uYWxpdHl9IGZyb20gJ0Bhbmd1bGFyL2Nkay9iaWRpJztcbmltcG9ydCB7XG4gIERPV05fQVJST1csXG4gIEVTQ0FQRSxcbiAgaGFzTW9kaWZpZXJLZXksXG4gIExFRlRfQVJST1csXG4gIFJJR0hUX0FSUk9XLFxuICBUQUIsXG4gIFVQX0FSUk9XLFxufSBmcm9tICdAYW5ndWxhci9jZGsva2V5Y29kZXMnO1xuaW1wb3J0IHt0YWtlVW50aWx9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7Q2RrTWVudUdyb3VwfSBmcm9tICcuL21lbnUtZ3JvdXAnO1xuaW1wb3J0IHtDREtfTUVOVX0gZnJvbSAnLi9tZW51LWludGVyZmFjZSc7XG5pbXBvcnQge0ZvY3VzTmV4dCwgTUVOVV9TVEFDSywgTWVudVN0YWNrfSBmcm9tICcuL21lbnUtc3RhY2snO1xuaW1wb3J0IHtNRU5VX0FJTSwgTWVudUFpbX0gZnJvbSAnLi9tZW51LWFpbSc7XG5pbXBvcnQge0Nka01lbnVCYXNlfSBmcm9tICcuL21lbnUtYmFzZSc7XG5cbi8qKlxuICogRGlyZWN0aXZlIGFwcGxpZWQgdG8gYW4gZWxlbWVudCB3aGljaCBjb25maWd1cmVzIGl0IGFzIGEgTWVudUJhciBieSBzZXR0aW5nIHRoZSBhcHByb3ByaWF0ZVxuICogcm9sZSwgYXJpYSBhdHRyaWJ1dGVzLCBhbmQgYWNjZXNzaWJsZSBrZXlib2FyZCBhbmQgbW91c2UgaGFuZGxpbmcgbG9naWMuIFRoZSBjb21wb25lbnQgdGhhdFxuICogdGhpcyBkaXJlY3RpdmUgaXMgYXBwbGllZCB0byBzaG91bGQgY29udGFpbiBjb21wb25lbnRzIG1hcmtlZCB3aXRoIENka01lbnVJdGVtLlxuICpcbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2Nka01lbnVCYXJdJyxcbiAgZXhwb3J0QXM6ICdjZGtNZW51QmFyJyxcbiAgaG9zdDoge1xuICAgICdyb2xlJzogJ21lbnViYXInLFxuICAgICdjbGFzcyc6ICdjZGstbWVudS1iYXInLFxuICAgICcoa2V5ZG93biknOiAnX2hhbmRsZUtleUV2ZW50KCRldmVudCknLFxuICB9LFxuICBwcm92aWRlcnM6IFtcbiAgICB7cHJvdmlkZTogQ2RrTWVudUdyb3VwLCB1c2VFeGlzdGluZzogQ2RrTWVudUJhcn0sXG4gICAge3Byb3ZpZGU6IENES19NRU5VLCB1c2VFeGlzdGluZzogQ2RrTWVudUJhcn0sXG4gICAge3Byb3ZpZGU6IE1FTlVfU1RBQ0ssIHVzZUZhY3Rvcnk6ICgpID0+IE1lbnVTdGFjay5pbmxpbmUoJ2hvcml6b250YWwnKX0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIENka01lbnVCYXIgZXh0ZW5kcyBDZGtNZW51QmFzZSBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQge1xuICAvKiogVGhlIGRpcmVjdGlvbiBpdGVtcyBpbiB0aGUgbWVudSBmbG93LiAqL1xuICBvdmVycmlkZSByZWFkb25seSBvcmllbnRhdGlvbiA9ICdob3Jpem9udGFsJztcblxuICAvKiogV2hldGhlciB0aGUgbWVudSBpcyBkaXNwbGF5ZWQgaW5saW5lIChpLmUuIGFsd2F5cyBwcmVzZW50IHZzIGEgY29uZGl0aW9uYWwgcG9wdXAgdGhhdCB0aGUgdXNlciB0cmlnZ2VycyB3aXRoIGEgdHJpZ2dlciBlbGVtZW50KS4gKi9cbiAgb3ZlcnJpZGUgcmVhZG9ubHkgaXNJbmxpbmUgPSB0cnVlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIC8qKiBUaGUgaG9zdCBlbGVtZW50LiAqL1xuICAgIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgIC8qKiBUaGUgQW5ndWxhciB6b25lLiAqL1xuICAgIG5nWm9uZTogTmdab25lLFxuICAgIC8qKiBUaGUgbWVudSBzdGFjayB0aGlzIG1lbnUgaXMgcGFydCBvZi4gKi9cbiAgICBASW5qZWN0KE1FTlVfU1RBQ0spIG1lbnVTdGFjazogTWVudVN0YWNrLFxuICAgIC8qKiBUaGUgbWVudSBhaW0gc2VydmljZSB1c2VkIGJ5IHRoaXMgbWVudS4gKi9cbiAgICBAU2VsZigpIEBPcHRpb25hbCgpIEBJbmplY3QoTUVOVV9BSU0pIG1lbnVBaW0/OiBNZW51QWltLFxuICAgIC8qKiBUaGUgZGlyZWN0aW9uYWxpdHkgb2YgdGhlIHBhZ2UuICovXG4gICAgQE9wdGlvbmFsKCkgZGlyPzogRGlyZWN0aW9uYWxpdHksXG4gICkge1xuICAgIHN1cGVyKGVsZW1lbnRSZWYsIG5nWm9uZSwgbWVudVN0YWNrLCBtZW51QWltLCBkaXIpO1xuICB9XG5cbiAgb3ZlcnJpZGUgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgIHN1cGVyLm5nQWZ0ZXJDb250ZW50SW5pdCgpO1xuICAgIHRoaXMuX3N1YnNjcmliZVRvTWVudVN0YWNrRW1wdGllZCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEhhbmRsZSBrZXlib2FyZCBldmVudHMgZm9yIHRoZSBNZW51LlxuICAgKiBAcGFyYW0gZXZlbnQgVGhlIGtleWJvYXJkIGV2ZW50IHRvIGJlIGhhbmRsZWQuXG4gICAqL1xuICBfaGFuZGxlS2V5RXZlbnQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBjb25zdCBrZXlNYW5hZ2VyID0gdGhpcy5rZXlNYW5hZ2VyO1xuICAgIHN3aXRjaCAoZXZlbnQua2V5Q29kZSkge1xuICAgICAgY2FzZSBVUF9BUlJPVzpcbiAgICAgIGNhc2UgRE9XTl9BUlJPVzpcbiAgICAgIGNhc2UgTEVGVF9BUlJPVzpcbiAgICAgIGNhc2UgUklHSFRfQVJST1c6XG4gICAgICAgIGlmICghaGFzTW9kaWZpZXJLZXkoZXZlbnQpKSB7XG4gICAgICAgICAgY29uc3QgaG9yaXpvbnRhbEFycm93cyA9IGV2ZW50LmtleUNvZGUgPT09IExFRlRfQVJST1cgfHwgZXZlbnQua2V5Q29kZSA9PT0gUklHSFRfQVJST1c7XG4gICAgICAgICAgLy8gRm9yIGEgaG9yaXpvbnRhbCBtZW51IGlmIHRoZSBsZWZ0L3JpZ2h0IGtleXMgd2VyZSBjbGlja2VkLCBvciBhIHZlcnRpY2FsIG1lbnUgaWYgdGhlXG4gICAgICAgICAgLy8gdXAvZG93biBrZXlzIHdlcmUgY2xpY2tlZDogaWYgdGhlIGN1cnJlbnQgbWVudSBpcyBvcGVuLCBjbG9zZSBpdCB0aGVuIGZvY3VzIGFuZCBvcGVuIHRoZVxuICAgICAgICAgIC8vIG5leHQgIG1lbnUuXG4gICAgICAgICAgaWYgKGhvcml6b250YWxBcnJvd3MpIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAgICAgICAgIGNvbnN0IHByZXZJc09wZW4gPSBrZXlNYW5hZ2VyLmFjdGl2ZUl0ZW0/LmlzTWVudU9wZW4oKTtcbiAgICAgICAgICAgIGtleU1hbmFnZXIuYWN0aXZlSXRlbT8uZ2V0TWVudVRyaWdnZXIoKT8uY2xvc2UoKTtcblxuICAgICAgICAgICAga2V5TWFuYWdlci5zZXRGb2N1c09yaWdpbigna2V5Ym9hcmQnKTtcbiAgICAgICAgICAgIGtleU1hbmFnZXIub25LZXlkb3duKGV2ZW50KTtcbiAgICAgICAgICAgIGlmIChwcmV2SXNPcGVuKSB7XG4gICAgICAgICAgICAgIGtleU1hbmFnZXIuYWN0aXZlSXRlbT8uZ2V0TWVudVRyaWdnZXIoKT8ub3BlbigpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBFU0NBUEU6XG4gICAgICAgIGlmICghaGFzTW9kaWZpZXJLZXkoZXZlbnQpKSB7XG4gICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICBrZXlNYW5hZ2VyLmFjdGl2ZUl0ZW0/LmdldE1lbnVUcmlnZ2VyKCk/LmNsb3NlKCk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgVEFCOlxuICAgICAgICBpZiAoIWhhc01vZGlmaWVyS2V5KGV2ZW50LCAnYWx0S2V5JywgJ21ldGFLZXknLCAnY3RybEtleScpKSB7XG4gICAgICAgICAga2V5TWFuYWdlci5hY3RpdmVJdGVtPy5nZXRNZW51VHJpZ2dlcigpPy5jbG9zZSgpO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICBrZXlNYW5hZ2VyLm9uS2V5ZG93bihldmVudCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFNldCBmb2N1cyB0byBlaXRoZXIgdGhlIGN1cnJlbnQsIHByZXZpb3VzIG9yIG5leHQgaXRlbSBiYXNlZCBvbiB0aGUgRm9jdXNOZXh0IGV2ZW50LCB0aGVuXG4gICAqIG9wZW4gdGhlIHByZXZpb3VzIG9yIG5leHQgaXRlbS5cbiAgICogQHBhcmFtIGZvY3VzTmV4dCBUaGUgZWxlbWVudCB0byBmb2N1cy5cbiAgICovXG4gIHByaXZhdGUgX3RvZ2dsZU9wZW5NZW51KGZvY3VzTmV4dDogRm9jdXNOZXh0IHwgdW5kZWZpbmVkKSB7XG4gICAgY29uc3Qga2V5TWFuYWdlciA9IHRoaXMua2V5TWFuYWdlcjtcbiAgICBzd2l0Y2ggKGZvY3VzTmV4dCkge1xuICAgICAgY2FzZSBGb2N1c05leHQubmV4dEl0ZW06XG4gICAgICAgIGtleU1hbmFnZXIuc2V0Rm9jdXNPcmlnaW4oJ2tleWJvYXJkJyk7XG4gICAgICAgIGtleU1hbmFnZXIuc2V0TmV4dEl0ZW1BY3RpdmUoKTtcbiAgICAgICAga2V5TWFuYWdlci5hY3RpdmVJdGVtPy5nZXRNZW51VHJpZ2dlcigpPy5vcGVuKCk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIEZvY3VzTmV4dC5wcmV2aW91c0l0ZW06XG4gICAgICAgIGtleU1hbmFnZXIuc2V0Rm9jdXNPcmlnaW4oJ2tleWJvYXJkJyk7XG4gICAgICAgIGtleU1hbmFnZXIuc2V0UHJldmlvdXNJdGVtQWN0aXZlKCk7XG4gICAgICAgIGtleU1hbmFnZXIuYWN0aXZlSXRlbT8uZ2V0TWVudVRyaWdnZXIoKT8ub3BlbigpO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBGb2N1c05leHQuY3VycmVudEl0ZW06XG4gICAgICAgIGlmIChrZXlNYW5hZ2VyLmFjdGl2ZUl0ZW0pIHtcbiAgICAgICAgICBrZXlNYW5hZ2VyLnNldEZvY3VzT3JpZ2luKCdrZXlib2FyZCcpO1xuICAgICAgICAgIGtleU1hbmFnZXIuc2V0QWN0aXZlSXRlbShrZXlNYW5hZ2VyLmFjdGl2ZUl0ZW0pO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBTdWJzY3JpYmUgdG8gdGhlIE1lbnVTdGFjayBlbXB0aWVkIGV2ZW50cy4gKi9cbiAgcHJpdmF0ZSBfc3Vic2NyaWJlVG9NZW51U3RhY2tFbXB0aWVkKCkge1xuICAgIHRoaXMubWVudVN0YWNrPy5lbXB0aWVkXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQpKVxuICAgICAgLnN1YnNjcmliZShldmVudCA9PiB0aGlzLl90b2dnbGVPcGVuTWVudShldmVudCkpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,203 @@
1
+ /**
2
+ * @license
3
+ * Copyright Google LLC All Rights Reserved.
4
+ *
5
+ * Use of this source code is governed by an MIT-style license that can be
6
+ * found in the LICENSE file at https://angular.io/license
7
+ */
8
+ import { CdkMenuGroup } from './menu-group';
9
+ import { ContentChildren, Directive, ElementRef, Inject, Input, NgZone, Optional, QueryList, Self, } from '@angular/core';
10
+ import { FocusKeyManager } from '@angular/cdk/a11y';
11
+ import { CdkMenuItem } from './menu-item';
12
+ import { merge, Subject } from 'rxjs';
13
+ import { Directionality } from '@angular/cdk/bidi';
14
+ import { mapTo, mergeAll, mergeMap, startWith, switchMap, takeUntil } from 'rxjs/operators';
15
+ import { MENU_STACK, MenuStack } from './menu-stack';
16
+ import { PointerFocusTracker } from './pointer-focus-tracker';
17
+ import { MENU_AIM } from './menu-aim';
18
+ import * as i0 from "@angular/core";
19
+ import * as i1 from "@angular/cdk/bidi";
20
+ import * as i2 from "./menu-stack";
21
+ /** Counter used to create unique IDs for menus. */
22
+ let nextId = 0;
23
+ /**
24
+ * Abstract directive that implements shared logic common to all menus.
25
+ * This class can be extended to create custom menu types.
26
+ */
27
+ export class CdkMenuBase extends CdkMenuGroup {
28
+ constructor(
29
+ /** The host element. */
30
+ elementRef,
31
+ /** The Angular zone. */
32
+ ngZone,
33
+ /** The stack of menus this menu belongs to. */
34
+ menuStack,
35
+ /** The menu aim service used by this menu. */
36
+ menuAim,
37
+ /** The directionality of the current page. */
38
+ dir) {
39
+ super();
40
+ this.ngZone = ngZone;
41
+ this.menuStack = menuStack;
42
+ this.menuAim = menuAim;
43
+ this.dir = dir;
44
+ /** The id of the menu's host element. */
45
+ this.id = `cdk-menu-${nextId++}`;
46
+ /** The direction items in the menu flow. */
47
+ this.orientation = 'vertical';
48
+ /** Whether the menu is displayed inline (i.e. always present vs a conditional popup that the user triggers with a trigger element). */
49
+ this.isInline = false;
50
+ /** Emits when the MenuBar is destroyed. */
51
+ this.destroyed = new Subject();
52
+ /** Whether this menu's menu stack has focus. */
53
+ this._menuStackHasFocus = false;
54
+ this.nativeElement = elementRef.nativeElement;
55
+ }
56
+ ngAfterContentInit() {
57
+ if (!this.isInline) {
58
+ this.menuStack.push(this);
59
+ }
60
+ this._setKeyManager();
61
+ this._subscribeToMenuStackHasFocus();
62
+ this._subscribeToMenuOpen();
63
+ this._subscribeToMenuStackClosed();
64
+ this._setUpPointerTracker();
65
+ }
66
+ ngOnDestroy() {
67
+ this.destroyed.next();
68
+ this.destroyed.complete();
69
+ this.pointerTracker?.destroy();
70
+ }
71
+ /**
72
+ * Place focus on the first MenuItem in the menu and set the focus origin.
73
+ * @param focusOrigin The origin input mode of the focus event.
74
+ */
75
+ focusFirstItem(focusOrigin = 'program') {
76
+ this.keyManager.setFocusOrigin(focusOrigin);
77
+ this.keyManager.setFirstItemActive();
78
+ }
79
+ /**
80
+ * Place focus on the last MenuItem in the menu and set the focus origin.
81
+ * @param focusOrigin The origin input mode of the focus event.
82
+ */
83
+ focusLastItem(focusOrigin = 'program') {
84
+ this.keyManager.setFocusOrigin(focusOrigin);
85
+ this.keyManager.setLastItemActive();
86
+ }
87
+ /** Gets the tabindex for this menu. */
88
+ _getTabIndex() {
89
+ const tabindexIfInline = this._menuStackHasFocus ? -1 : 0;
90
+ return this.isInline ? tabindexIfInline : null;
91
+ }
92
+ /**
93
+ * Close the open menu if the current active item opened the requested MenuStackItem.
94
+ * @param menu The menu requested to be closed.
95
+ * @param options Options to configure the behavior on close.
96
+ * - `focusParentTrigger` Whether to focus the parent trigger after closing the menu.
97
+ */
98
+ closeOpenMenu(menu, options) {
99
+ const { focusParentTrigger } = { ...options };
100
+ const keyManager = this.keyManager;
101
+ const trigger = this.triggerItem;
102
+ if (menu === trigger?.getMenuTrigger()?.getMenu()) {
103
+ trigger?.getMenuTrigger()?.close();
104
+ // If the user has moused over a sibling item we want to focus the element under mouse focus
105
+ // not the trigger which previously opened the now closed menu.
106
+ if (focusParentTrigger) {
107
+ if (trigger) {
108
+ keyManager.setActiveItem(trigger);
109
+ }
110
+ else {
111
+ keyManager.setFirstItemActive();
112
+ }
113
+ }
114
+ }
115
+ }
116
+ /** Setup the FocusKeyManager with the correct orientation for the menu. */
117
+ _setKeyManager() {
118
+ this.keyManager = new FocusKeyManager(this.items).withWrap().withTypeAhead().withHomeAndEnd();
119
+ if (this.orientation === 'horizontal') {
120
+ this.keyManager.withHorizontalOrientation(this.dir?.value || 'ltr');
121
+ }
122
+ else {
123
+ this.keyManager.withVerticalOrientation();
124
+ }
125
+ }
126
+ /**
127
+ * Subscribe to the menu trigger's open events in order to track the trigger which opened the menu
128
+ * and stop tracking it when the menu is closed.
129
+ */
130
+ _subscribeToMenuOpen() {
131
+ const exitCondition = merge(this.items.changes, this.destroyed);
132
+ this.items.changes
133
+ .pipe(startWith(this.items), mergeMap((list) => list
134
+ .filter(item => item.hasMenu)
135
+ .map(item => item.getMenuTrigger().opened.pipe(mapTo(item), takeUntil(exitCondition)))), mergeAll(), switchMap((item) => {
136
+ this.triggerItem = item;
137
+ return item.getMenuTrigger().closed;
138
+ }), takeUntil(this.destroyed))
139
+ .subscribe(() => (this.triggerItem = undefined));
140
+ }
141
+ /** Subscribe to the MenuStack close events. */
142
+ _subscribeToMenuStackClosed() {
143
+ this.menuStack.closed
144
+ .pipe(takeUntil(this.destroyed))
145
+ .subscribe(({ item, focusParentTrigger }) => this.closeOpenMenu(item, { focusParentTrigger }));
146
+ }
147
+ /** Subscribe to the MenuStack hasFocus events. */
148
+ _subscribeToMenuStackHasFocus() {
149
+ if (this.isInline) {
150
+ this.menuStack.hasFocus.pipe(takeUntil(this.destroyed)).subscribe(hasFocus => {
151
+ this._menuStackHasFocus = hasFocus;
152
+ });
153
+ }
154
+ }
155
+ /**
156
+ * Set the PointerFocusTracker and ensure that when mouse focus changes the key manager is updated
157
+ * with the latest menu item under mouse focus.
158
+ */
159
+ _setUpPointerTracker() {
160
+ if (this.menuAim) {
161
+ this.ngZone.runOutsideAngular(() => {
162
+ this.pointerTracker = new PointerFocusTracker(this.items);
163
+ });
164
+ this.menuAim.initialize(this, this.pointerTracker);
165
+ }
166
+ }
167
+ }
168
+ CdkMenuBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0-next.16", ngImport: i0, type: CdkMenuBase, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: MENU_STACK }, { token: MENU_AIM, optional: true, self: true }, { token: i1.Directionality, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
169
+ CdkMenuBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.0.0-next.16", 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 });
170
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.16", ngImport: i0, type: CdkMenuBase, decorators: [{
171
+ type: Directive,
172
+ args: [{
173
+ host: {
174
+ 'role': 'menu',
175
+ 'class': '',
176
+ '[tabindex]': '_getTabIndex()',
177
+ '[id]': 'id',
178
+ '[attr.aria-orientation]': 'orientation',
179
+ '[attr.data-cdk-menu-stack-id]': 'menuStack.id',
180
+ '(focus)': 'focusFirstItem()',
181
+ '(focusin)': 'menuStack.setHasFocus(true)',
182
+ '(focusout)': 'menuStack.setHasFocus(false)',
183
+ },
184
+ }]
185
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i2.MenuStack, decorators: [{
186
+ type: Inject,
187
+ args: [MENU_STACK]
188
+ }] }, { type: undefined, decorators: [{
189
+ type: Self
190
+ }, {
191
+ type: Optional
192
+ }, {
193
+ type: Inject,
194
+ args: [MENU_AIM]
195
+ }] }, { type: i1.Directionality, decorators: [{
196
+ type: Optional
197
+ }] }]; }, propDecorators: { id: [{
198
+ type: Input
199
+ }], items: [{
200
+ type: ContentChildren,
201
+ args: [CdkMenuItem, { descendants: true }]
202
+ }] } });
203
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS1iYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2Nkay9tZW51L21lbnUtYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFFSCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sY0FBYyxDQUFDO0FBQzFDLE9BQU8sRUFFTCxlQUFlLEVBQ2YsU0FBUyxFQUNULFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFFTixRQUFRLEVBQ1IsU0FBUyxFQUNULElBQUksR0FDTCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsZUFBZSxFQUFjLE1BQU0sbUJBQW1CLENBQUM7QUFDL0QsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGFBQWEsQ0FBQztBQUN4QyxPQUFPLEVBQUMsS0FBSyxFQUFFLE9BQU8sRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNwQyxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDakQsT0FBTyxFQUFDLEtBQUssRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUYsT0FBTyxFQUFDLFVBQVUsRUFBRSxTQUFTLEVBQWdCLE1BQU0sY0FBYyxDQUFDO0FBRWxFLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQzVELE9BQU8sRUFBQyxRQUFRLEVBQVUsTUFBTSxZQUFZLENBQUM7Ozs7QUFFN0MsbURBQW1EO0FBQ25ELElBQUksTUFBTSxHQUFHLENBQUMsQ0FBQztBQUVmOzs7R0FHRztBQWNILE1BQU0sT0FBZ0IsV0FDcEIsU0FBUSxZQUFZO0lBa0NwQjtJQUNFLHdCQUF3QjtJQUN4QixVQUFtQztJQUNuQyx3QkFBd0I7SUFDZCxNQUFjO0lBQ3hCLCtDQUErQztJQUNsQixTQUFvQjtJQUNqRCw4Q0FBOEM7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QUFDO1NBQ3JEO0lBQ0gsQ0FBQzs7Z0hBbExtQixXQUFXLGtFQXlDckIsVUFBVSxhQUVVLFFBQVE7b0dBM0NsQixXQUFXLG1ZQVFkLFdBQVc7bUdBUlIsV0FBVztrQkFiaEMsU0FBUzttQkFBQztvQkFDVCxJQUFJLEVBQUU7d0JBQ0osTUFBTSxFQUFFLE1BQU07d0JBQ2QsT0FBTyxFQUFFLEVBQUU7d0JBQ1gsWUFBWSxFQUFFLGdCQUFnQjt3QkFDOUIsTUFBTSxFQUFFLElBQUk7d0JBQ1oseUJBQXlCLEVBQUUsYUFBYTt3QkFDeEMsK0JBQStCLEVBQUUsY0FBYzt3QkFDL0MsU0FBUyxFQUFFLGtCQUFrQjt3QkFDN0IsV0FBVyxFQUFFLDZCQUE2Qjt3QkFDMUMsWUFBWSxFQUFFLDhCQUE4QjtxQkFDN0M7aUJBQ0Y7OzBCQTBDSSxNQUFNOzJCQUFDLFVBQVU7OzBCQUVqQixJQUFJOzswQkFBSSxRQUFROzswQkFBSSxNQUFNOzJCQUFDLFFBQVE7OzBCQUVuQyxRQUFROzRDQXhDRixFQUFFO3NCQUFWLEtBQUs7Z0JBSUcsS0FBSztzQkFEYixlQUFlO3VCQUFDLFdBQVcsRUFBRSxFQUFDLFdBQVcsRUFBRSxJQUFJLEVBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHtDZGtNZW51R3JvdXB9IGZyb20gJy4vbWVudS1ncm91cCc7XG5pbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIERpcmVjdGl2ZSxcbiAgRWxlbWVudFJlZixcbiAgSW5qZWN0LFxuICBJbnB1dCxcbiAgTmdab25lLFxuICBPbkRlc3Ryb3ksXG4gIE9wdGlvbmFsLFxuICBRdWVyeUxpc3QsXG4gIFNlbGYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtGb2N1c0tleU1hbmFnZXIsIEZvY3VzT3JpZ2lufSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQge0Nka01lbnVJdGVtfSBmcm9tICcuL21lbnUtaXRlbSc7XG5pbXBvcnQge21lcmdlLCBTdWJqZWN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7RGlyZWN0aW9uYWxpdHl9IGZyb20gJ0Bhbmd1bGFyL2Nkay9iaWRpJztcbmltcG9ydCB7bWFwVG8sIG1lcmdlQWxsLCBtZXJnZU1hcCwgc3RhcnRXaXRoLCBzd2l0Y2hNYXAsIHRha2VVbnRpbH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtNRU5VX1NUQUNLLCBNZW51U3RhY2ssIE1lbnVTdGFja0l0ZW19IGZyb20gJy4vbWVudS1zdGFjayc7XG5pbXBvcnQge01lbnV9IGZyb20gJy4vbWVudS1pbnRlcmZhY2UnO1xuaW1wb3J0IHtQb2ludGVyRm9jdXNUcmFja2VyfSBmcm9tICcuL3BvaW50ZXItZm9jdXMtdHJhY2tlcic7XG5pbXBvcnQge01FTlVfQUlNLCBNZW51QWltfSBmcm9tICcuL21lbnUtYWltJztcblxuLyoqIENvdW50ZXIgdXNlZCB0byBjcmVhdGUgdW5pcXVlIElEcyBmb3IgbWVudXMuICovXG5sZXQgbmV4dElkID0gMDtcblxuLyoqXG4gKiBBYnN0cmFjdCBkaXJlY3RpdmUgdGhhdCBpbXBsZW1lbnRzIHNoYXJlZCBsb2dpYyBjb21tb24gdG8gYWxsIG1lbnVzLlxuICogVGhpcyBjbGFzcyBjYW4gYmUgZXh0ZW5kZWQgdG8gY3JlYXRlIGN1c3RvbSBtZW51IHR5cGVzLlxuICovXG5ARGlyZWN0aXZlKHtcbiAgaG9zdDoge1xuICAgICdyb2xlJzogJ21lbnUnLFxuICAgICdjbGFzcyc6ICcnLCAvLyByZXNldCB0aGUgY3NzIGNsYXNzIGFkZGVkIGJ5IHRoZSBzdXBlci1jbGFzc1xuICAgICdbdGFiaW5kZXhdJzogJ19nZXRUYWJJbmRleCgpJyxcbiAgICAnW2lkXSc6ICdpZCcsXG4gICAgJ1thdHRyLmFyaWEtb3JpZW50YXRpb25dJzogJ29yaWVudGF0aW9uJyxcbiAgICAnW2F0dHIuZGF0YS1jZGstbWVudS1zdGFjay1pZF0nOiAnbWVudVN0YWNrLmlkJyxcbiAgICAnKGZvY3VzKSc6ICdmb2N1c0ZpcnN0SXRlbSgpJyxcbiAgICAnKGZvY3VzaW4pJzogJ21lbnVTdGFjay5zZXRIYXNGb2N1cyh0cnVlKScsXG4gICAgJyhmb2N1c291dCknOiAnbWVudVN0YWNrLnNldEhhc0ZvY3VzKGZhbHNlKScsXG4gIH0sXG59KVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIENka01lbnVCYXNlXG4gIGV4dGVuZHMgQ2RrTWVudUdyb3VwXG4gIGltcGxlbWVudHMgTWVudSwgQWZ0ZXJDb250ZW50SW5pdCwgT25EZXN0cm95XG57XG4gIC8qKiBUaGUgaWQgb2YgdGhlIG1lbnUncyBob3N0IGVsZW1lbnQuICovXG4gIEBJbnB1dCgpIGlkID0gYGNkay1tZW51LSR7bmV4dElkKyt9YDtcblxuICAvKiogQWxsIGNoaWxkIE1lbnVJdGVtIGVsZW1lbnRzIG5lc3RlZCBpbiB0aGlzIE1lbnUuICovXG4gIEBDb250ZW50Q2hpbGRyZW4oQ2RrTWVudUl0ZW0sIHtkZXNjZW5kYW50czogdHJ1ZX0pXG4gIHJlYWRvbmx5IGl0ZW1zOiBRdWVyeUxpc3Q8Q2RrTWVudUl0ZW0+O1xuXG4gIC8qKiBUaGUgZGlyZWN0aW9uIGl0ZW1zIGluIHRoZSBtZW51IGZsb3cuICovXG4gIG9yaWVudGF0aW9uOiAnaG9yaXpvbnRhbCcgfCAndmVydGljYWwnID0gJ3ZlcnRpY2FsJztcblxuICAvKiogV2hldGhlciB0aGUgbWVudSBpcyBkaXNwbGF5ZWQgaW5saW5lIChpLmUuIGFsd2F5cyBwcmVzZW50IHZzIGEgY29uZGl0aW9uYWwgcG9wdXAgdGhhdCB0aGUgdXNlciB0cmlnZ2VycyB3aXRoIGEgdHJpZ2dlciBlbGVtZW50KS4gKi9cbiAgaXNJbmxpbmUgPSBmYWxzZTtcblxuICAvKiogVGhlIG1lbnUncyBuYXRpdmUgRE9NIGhvc3QgZWxlbWVudC4gKi9cbiAgcmVhZG9ubHkgbmF0aXZlRWxlbWVudDogSFRNTEVsZW1lbnQ7XG5cbiAgLyoqIEhhbmRsZXMga2V5Ym9hcmQgZXZlbnRzIGZvciB0aGUgbWVudS4gKi9cbiAgcHJvdGVjdGVkIGtleU1hbmFnZXI6IEZvY3VzS2V5TWFuYWdlcjxDZGtNZW51SXRlbT47XG5cbiAgLyoqIEVtaXRzIHdoZW4gdGhlIE1lbnVCYXIgaXMgZGVzdHJveWVkLiAqL1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZGVzdHJveWVkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3QoKTtcblxuICAvKiogVGhlIE1lbnUgSXRlbSB3aGljaCB0cmlnZ2VyZWQgdGhlIG9wZW4gc3VibWVudS4gKi9cbiAgcHJvdGVjdGVkIHRyaWdnZXJJdGVtPzogQ2RrTWVudUl0ZW07XG5cbiAgLyoqIFRyYWNrcyB0aGUgdXNlcnMgbW91c2UgbW92ZW1lbnRzIG92ZXIgdGhlIG1lbnUuICovXG4gIHByb3RlY3RlZCBwb2ludGVyVHJhY2tlcj86IFBvaW50ZXJGb2N1c1RyYWNrZXI8Q2RrTWVudUl0ZW0+O1xuXG4gIC8qKiBXaGV0aGVyIHRoaXMgbWVudSdzIG1lbnUgc3RhY2sgaGFzIGZvY3VzLiAqL1xuICBwcml2YXRlIF9tZW51U3RhY2tIYXNGb2N1cyA9IGZhbHNlO1xuXG4gIHByb3RlY3RlZCBjb25zdHJ1Y3RvcihcbiAgICAvKiogVGhlIGhvc3QgZWxlbWVudC4gKi9cbiAgICBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICAvKiogVGhlIEFuZ3VsYXIgem9uZS4gKi9cbiAgICBwcm90ZWN0ZWQgbmdab25lOiBOZ1pvbmUsXG4gICAgLyoqIFRoZSBzdGFjayBvZiBtZW51cyB0aGlzIG1lbnUgYmVsb25ncyB0by4gKi9cbiAgICBASW5qZWN0KE1FTlVfU1RBQ0spIHJlYWRvbmx5IG1lbnVTdGFjazogTWVudVN0YWNrLFxuICAgIC8qKiBUaGUgbWVudSBhaW0gc2VydmljZSB1c2VkIGJ5IHRoaXMgbWVudS4gKi9cbiAgICBAU2VsZigpIEBPcHRpb25hbCgpIEBJbmplY3QoTUVOVV9BSU0pIHByb3RlY3RlZCByZWFkb25seSBtZW51QWltPzogTWVudUFpbSxcbiAgICAvKiogVGhlIGRpcmVjdGlvbmFsaXR5IG9mIHRoZSBjdXJyZW50IHBhZ2UuICovXG4gICAgQE9wdGlvbmFsKCkgcHJvdGVjdGVkIHJlYWRvbmx5IGRpcj86IERpcmVjdGlvbmFsaXR5LFxuICApIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMubmF0aXZlRWxlbWVudCA9IGVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgfVxuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICBpZiAoIXRoaXMuaXNJbmxpbmUpIHtcbiAgICAgIHRoaXMubWVudVN0YWNrLnB1c2godGhpcyk7XG4gICAgfVxuICAgIHRoaXMuX3NldEtleU1hbmFnZXIoKTtcbiAgICB0aGlzLl9zdWJzY3JpYmVUb01lbnVTdGFja0hhc0ZvY3VzKCk7XG4gICAgdGhpcy5fc3Vic2NyaWJlVG9NZW51T3BlbigpO1xuICAgIHRoaXMuX3N1YnNjcmliZVRvTWVudVN0YWNrQ2xvc2VkKCk7XG4gICAgdGhpcy5fc2V0VXBQb2ludGVyVHJhY2tlcigpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5kZXN0cm95ZWQubmV4dCgpO1xuICAgIHRoaXMuZGVzdHJveWVkLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5wb2ludGVyVHJhY2tlcj8uZGVzdHJveSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFBsYWNlIGZvY3VzIG9uIHRoZSBmaXJzdCBNZW51SXRlbSBpbiB0aGUgbWVudSBhbmQgc2V0IHRoZSBmb2N1cyBvcmlnaW4uXG4gICAqIEBwYXJhbSBmb2N1c09yaWdpbiBUaGUgb3JpZ2luIGlucHV0IG1vZGUgb2YgdGhlIGZvY3VzIGV2ZW50LlxuICAgKi9cbiAgZm9jdXNGaXJzdEl0ZW0oZm9jdXNPcmlnaW46IEZvY3VzT3JpZ2luID0gJ3Byb2dyYW0nKSB7XG4gICAgdGhpcy5rZXlNYW5hZ2VyLnNldEZvY3VzT3JpZ2luKGZvY3VzT3JpZ2luKTtcbiAgICB0aGlzLmtleU1hbmFnZXIuc2V0Rmlyc3RJdGVtQWN0aXZlKCk7XG4gIH1cblxuICAvKipcbiAgICogUGxhY2UgZm9jdXMgb24gdGhlIGxhc3QgTWVudUl0ZW0gaW4gdGhlIG1lbnUgYW5kIHNldCB0aGUgZm9jdXMgb3JpZ2luLlxuICAgKiBAcGFyYW0gZm9jdXNPcmlnaW4gVGhlIG9yaWdpbiBpbnB1dCBtb2RlIG9mIHRoZSBmb2N1cyBldmVudC5cbiAgICovXG4gIGZvY3VzTGFzdEl0ZW0oZm9jdXNPcmlnaW46IEZvY3VzT3JpZ2luID0gJ3Byb2dyYW0nKSB7XG4gICAgdGhpcy5rZXlNYW5hZ2VyLnNldEZvY3VzT3JpZ2luKGZvY3VzT3JpZ2luKTtcbiAgICB0aGlzLmtleU1hbmFnZXIuc2V0TGFzdEl0ZW1BY3RpdmUoKTtcbiAgfVxuXG4gIC8qKiBHZXRzIHRoZSB0YWJpbmRleCBmb3IgdGhpcyBtZW51LiAqL1xuICBfZ2V0VGFiSW5kZXgoKSB7XG4gICAgY29uc3QgdGFiaW5kZXhJZklubGluZSA9IHRoaXMuX21lbnVTdGFja0hhc0ZvY3VzID8gLTEgOiAwO1xuICAgIHJldHVybiB0aGlzLmlzSW5saW5lID8gdGFiaW5kZXhJZklubGluZSA6IG51bGw7XG4gIH1cblxuICAvKipcbiAgICogQ2xvc2UgdGhlIG9wZW4gbWVudSBpZiB0aGUgY3VycmVudCBhY3RpdmUgaXRlbSBvcGVuZWQgdGhlIHJlcXVlc3RlZCBNZW51U3RhY2tJdGVtLlxuICAgKiBAcGFyYW0gbWVudSBUaGUgbWVudSByZXF1ZXN0ZWQgdG8gYmUgY2xvc2VkLlxuICAgKiBAcGFyYW0gb3B0aW9ucyBPcHRpb25zIHRvIGNvbmZpZ3VyZSB0aGUgYmVoYXZpb3Igb24gY2xvc2UuXG4gICAqICAgLSBgZm9jdXNQYXJlbnRUcmlnZ2VyYCBXaGV0aGVyIHRvIGZvY3VzIHRoZSBwYXJlbnQgdHJpZ2dlciBhZnRlciBjbG9zaW5nIHRoZSBtZW51LlxuICAgKi9cbiAgcHJvdGVjdGVkIGNsb3NlT3Blbk1lbnUobWVudTogTWVudVN0YWNrSXRlbSwgb3B0aW9ucz86IHtmb2N1c1BhcmVudFRyaWdnZXI/OiBib29sZWFufSkge1xuICAgIGNvbnN0IHtmb2N1c1BhcmVudFRyaWdnZXJ9ID0gey4uLm9wdGlvbnN9O1xuICAgIGNvbnN0IGtleU1hbmFnZXIgPSB0aGlzLmtleU1hbmFnZXI7XG4gICAgY29uc3QgdHJpZ2dlciA9IHRoaXMudHJpZ2dlckl0ZW07XG4gICAgaWYgKG1lbnUgPT09IHRyaWdnZXI/LmdldE1lbnVUcmlnZ2VyKCk/LmdldE1lbnUoKSkge1xuICAgICAgdHJpZ2dlcj8uZ2V0TWVudVRyaWdnZXIoKT8uY2xvc2UoKTtcbiAgICAgIC8vIElmIHRoZSB1c2VyIGhhcyBtb3VzZWQgb3ZlciBhIHNpYmxpbmcgaXRlbSB3ZSB3YW50IHRvIGZvY3VzIHRoZSBlbGVtZW50IHVuZGVyIG1vdXNlIGZvY3VzXG4gICAgICAvLyBub3QgdGhlIHRyaWdnZXIgd2hpY2ggcHJldmlvdXNseSBvcGVuZWQgdGhlIG5vdyBjbG9zZWQgbWVudS5cbiAgICAgIGlmIChmb2N1c1BhcmVudFRyaWdnZXIpIHtcbiAgICAgICAgaWYgKHRyaWdnZXIpIHtcbiAgICAgICAgICBrZXlNYW5hZ2VyLnNldEFjdGl2ZUl0ZW0odHJpZ2dlcik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAga2V5TWFuYWdlci5zZXRGaXJzdEl0ZW1BY3RpdmUoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKiBTZXR1cCB0aGUgRm9jdXNLZXlNYW5hZ2VyIHdpdGggdGhlIGNvcnJlY3Qgb3JpZW50YXRpb24gZm9yIHRoZSBtZW51LiAqL1xuICBwcml2YXRlIF9zZXRLZXlNYW5hZ2VyKCkge1xuICAgIHRoaXMua2V5TWFuYWdlciA9IG5ldyBGb2N1c0tleU1hbmFnZXIodGhpcy5pdGVtcykud2l0aFdyYXAoKS53aXRoVHlwZUFoZWFkKCkud2l0aEhvbWVBbmRFbmQoKTtcblxuICAgIGlmICh0aGlzLm9yaWVudGF0aW9uID09PSAnaG9yaXpvbnRhbCcpIHtcbiAgICAgIHRoaXMua2V5TWFuYWdlci53aXRoSG9yaXpvbnRhbE9yaWVudGF0aW9uKHRoaXMuZGlyPy52YWx1ZSB8fCAnbHRyJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMua2V5TWFuYWdlci53aXRoVmVydGljYWxPcmllbnRhdGlvbigpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTdWJzY3JpYmUgdG8gdGhlIG1lbnUgdHJpZ2dlcidzIG9wZW4gZXZlbnRzIGluIG9yZGVyIHRvIHRyYWNrIHRoZSB0cmlnZ2VyIHdoaWNoIG9wZW5lZCB0aGUgbWVudVxuICAgKiBhbmQgc3RvcCB0cmFja2luZyBpdCB3aGVuIHRoZSBtZW51IGlzIGNsb3NlZC5cbiAgICovXG4gIHByaXZhdGUgX3N1YnNjcmliZVRvTWVudU9wZW4oKSB7XG4gICAgY29uc3QgZXhpdENvbmRpdGlvbiA9IG1lcmdlKHRoaXMuaXRlbXMuY2hhbmdlcywgdGhpcy5kZXN0cm95ZWQpO1xuICAgIHRoaXMuaXRlbXMuY2hhbmdlc1xuICAgICAgLnBpcGUoXG4gICAgICAgIHN0YXJ0V2l0aCh0aGlzLml0ZW1zKSxcbiAgICAgICAgbWVyZ2VNYXAoKGxpc3Q6IFF1ZXJ5TGlzdDxDZGtNZW51SXRlbT4pID0+XG4gICAgICAgICAgbGlzdFxuICAgICAgICAgICAgLmZpbHRlcihpdGVtID0+IGl0ZW0uaGFzTWVudSlcbiAgICAgICAgICAgIC5tYXAoaXRlbSA9PiBpdGVtLmdldE1lbnVUcmlnZ2VyKCkhLm9wZW5lZC5waXBlKG1hcFRvKGl0ZW0pLCB0YWtlVW50aWwoZXhpdENvbmRpdGlvbikpKSxcbiAgICAgICAgKSxcbiAgICAgICAgbWVyZ2VBbGwoKSxcbiAgICAgICAgc3dpdGNoTWFwKChpdGVtOiBDZGtNZW51SXRlbSkgPT4ge1xuICAgICAgICAgIHRoaXMudHJpZ2dlckl0ZW0gPSBpdGVtO1xuICAgICAgICAgIHJldHVybiBpdGVtLmdldE1lbnVUcmlnZ2VyKCkhLmNsb3NlZDtcbiAgICAgICAgfSksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCgpID0+ICh0aGlzLnRyaWdnZXJJdGVtID0gdW5kZWZpbmVkKSk7XG4gIH1cblxuICAvKiogU3Vic2NyaWJlIHRvIHRoZSBNZW51U3RhY2sgY2xvc2UgZXZlbnRzLiAqL1xuICBwcml2YXRlIF9zdWJzY3JpYmVUb01lbnVTdGFja0Nsb3NlZCgpIHtcbiAgICB0aGlzLm1lbnVTdGFjay5jbG9zZWRcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCkpXG4gICAgICAuc3Vic2NyaWJlKCh7aXRlbSwgZm9jdXNQYXJlbnRUcmlnZ2VyfSkgPT4gdGhpcy5jbG9zZU9wZW5NZW51KGl0ZW0sIHtmb2N1c1BhcmVudFRyaWdnZXJ9KSk7XG4gIH1cblxuICAvKiogU3Vic2NyaWJlIHRvIHRoZSBNZW51U3RhY2sgaGFzRm9jdXMgZXZlbnRzLiAqL1xuICBwcml2YXRlIF9zdWJzY3JpYmVUb01lbnVTdGFja0hhc0ZvY3VzKCkge1xuICAgIGlmICh0aGlzLmlzSW5saW5lKSB7XG4gICAgICB0aGlzLm1lbnVTdGFjay5oYXNGb2N1cy5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCkpLnN1YnNjcmliZShoYXNGb2N1cyA9PiB7XG4gICAgICAgIHRoaXMuX21lbnVTdGFja0hhc0ZvY3VzID0gaGFzRm9jdXM7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSBQb2ludGVyRm9jdXNUcmFja2VyIGFuZCBlbnN1cmUgdGhhdCB3aGVuIG1vdXNlIGZvY3VzIGNoYW5nZXMgdGhlIGtleSBtYW5hZ2VyIGlzIHVwZGF0ZWRcbiAgICogd2l0aCB0aGUgbGF0ZXN0IG1lbnUgaXRlbSB1bmRlciBtb3VzZSBmb2N1cy5cbiAgICovXG4gIHByaXZhdGUgX3NldFVwUG9pbnRlclRyYWNrZXIoKSB7XG4gICAgaWYgKHRoaXMubWVudUFpbSkge1xuICAgICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICB0aGlzLnBvaW50ZXJUcmFja2VyID0gbmV3IFBvaW50ZXJGb2N1c1RyYWNrZXIodGhpcy5pdGVtcyk7XG4gICAgICB9KTtcbiAgICAgIHRoaXMubWVudUFpbS5pbml0aWFsaXplKHRoaXMsIHRoaXMucG9pbnRlclRyYWNrZXIhKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,22 @@
1
+ /**
2
+ * @license
3
+ * Copyright Google LLC All Rights Reserved.
4
+ *
5
+ * Use of this source code is governed by an MIT-style license that can be
6
+ * found in the LICENSE file at https://angular.io/license
7
+ */
8
+ /**
9
+ * Throws an exception when an instance of the PointerFocusTracker is not provided.
10
+ * @docs-private
11
+ */
12
+ export function throwMissingPointerFocusTracker() {
13
+ throw Error('expected an instance of PointerFocusTracker to be provided');
14
+ }
15
+ /**
16
+ * Throws an exception when a reference to the parent menu is not provided.
17
+ * @docs-private
18
+ */
19
+ export function throwMissingMenuReference() {
20
+ throw Error('expected a reference to the parent menu');
21
+ }
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS1lcnJvcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvY2RrL21lbnUvbWVudS1lcnJvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUg7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLCtCQUErQjtJQUM3QyxNQUFNLEtBQUssQ0FBQyw0REFBNEQsQ0FBQyxDQUFDO0FBQzVFLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLFVBQVUseUJBQXlCO0lBQ3ZDLE1BQU0sS0FBSyxDQUFDLHlDQUF5QyxDQUFDLENBQUM7QUFDekQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG4vKipcbiAqIFRocm93cyBhbiBleGNlcHRpb24gd2hlbiBhbiBpbnN0YW5jZSBvZiB0aGUgUG9pbnRlckZvY3VzVHJhY2tlciBpcyBub3QgcHJvdmlkZWQuXG4gKiBAZG9jcy1wcml2YXRlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0aHJvd01pc3NpbmdQb2ludGVyRm9jdXNUcmFja2VyKCkge1xuICB0aHJvdyBFcnJvcignZXhwZWN0ZWQgYW4gaW5zdGFuY2Ugb2YgUG9pbnRlckZvY3VzVHJhY2tlciB0byBiZSBwcm92aWRlZCcpO1xufVxuXG4vKipcbiAqIFRocm93cyBhbiBleGNlcHRpb24gd2hlbiBhIHJlZmVyZW5jZSB0byB0aGUgcGFyZW50IG1lbnUgaXMgbm90IHByb3ZpZGVkLlxuICogQGRvY3MtcHJpdmF0ZVxuICovXG5leHBvcnQgZnVuY3Rpb24gdGhyb3dNaXNzaW5nTWVudVJlZmVyZW5jZSgpIHtcbiAgdGhyb3cgRXJyb3IoJ2V4cGVjdGVkIGEgcmVmZXJlbmNlIHRvIHRoZSBwYXJlbnQgbWVudScpO1xufVxuIl19
@@ -0,0 +1,30 @@
1
+ /**
2
+ * @license
3
+ * Copyright Google LLC All Rights Reserved.
4
+ *
5
+ * Use of this source code is governed by an MIT-style license that can be
6
+ * found in the LICENSE file at https://angular.io/license
7
+ */
8
+ import { Directive } from '@angular/core';
9
+ import { UniqueSelectionDispatcher } from '@angular/cdk/collections';
10
+ import * as i0 from "@angular/core";
11
+ /**
12
+ * A grouping container for `CdkMenuItemRadio` instances, similar to a `role="radiogroup"` element.
13
+ */
14
+ export class CdkMenuGroup {
15
+ }
16
+ CdkMenuGroup.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0-next.16", ngImport: i0, type: CdkMenuGroup, deps: [], target: i0.ɵɵFactoryTarget.Directive });
17
+ CdkMenuGroup.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.0.0-next.16", type: CdkMenuGroup, selector: "[cdkMenuGroup]", host: { attributes: { "role": "group" }, classAttribute: "cdk-menu-group" }, providers: [{ provide: UniqueSelectionDispatcher, useClass: UniqueSelectionDispatcher }], exportAs: ["cdkMenuGroup"], ngImport: i0 });
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.16", ngImport: i0, type: CdkMenuGroup, decorators: [{
19
+ type: Directive,
20
+ args: [{
21
+ selector: '[cdkMenuGroup]',
22
+ exportAs: 'cdkMenuGroup',
23
+ host: {
24
+ 'role': 'group',
25
+ 'class': 'cdk-menu-group',
26
+ },
27
+ providers: [{ provide: UniqueSelectionDispatcher, useClass: UniqueSelectionDispatcher }],
28
+ }]
29
+ }] });
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS1ncm91cC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jZGsvbWVudS9tZW51LWdyb3VwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUVILE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDeEMsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sMEJBQTBCLENBQUM7O0FBRW5FOztHQUVHO0FBVUgsTUFBTSxPQUFPLFlBQVk7O2lIQUFaLFlBQVk7cUdBQVosWUFBWSxzSEFGWixDQUFDLEVBQUMsT0FBTyxFQUFFLHlCQUF5QixFQUFFLFFBQVEsRUFBRSx5QkFBeUIsRUFBQyxDQUFDO21HQUUzRSxZQUFZO2tCQVR4QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLFFBQVEsRUFBRSxjQUFjO29CQUN4QixJQUFJLEVBQUU7d0JBQ0osTUFBTSxFQUFFLE9BQU87d0JBQ2YsT0FBTyxFQUFFLGdCQUFnQjtxQkFDMUI7b0JBQ0QsU0FBUyxFQUFFLENBQUMsRUFBQyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsUUFBUSxFQUFFLHlCQUF5QixFQUFDLENBQUM7aUJBQ3ZGIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7RGlyZWN0aXZlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7VW5pcXVlU2VsZWN0aW9uRGlzcGF0Y2hlcn0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvbGxlY3Rpb25zJztcblxuLyoqXG4gKiBBIGdyb3VwaW5nIGNvbnRhaW5lciBmb3IgYENka01lbnVJdGVtUmFkaW9gIGluc3RhbmNlcywgc2ltaWxhciB0byBhIGByb2xlPVwicmFkaW9ncm91cFwiYCBlbGVtZW50LlxuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbY2RrTWVudUdyb3VwXScsXG4gIGV4cG9ydEFzOiAnY2RrTWVudUdyb3VwJyxcbiAgaG9zdDoge1xuICAgICdyb2xlJzogJ2dyb3VwJyxcbiAgICAnY2xhc3MnOiAnY2RrLW1lbnUtZ3JvdXAnLFxuICB9LFxuICBwcm92aWRlcnM6IFt7cHJvdmlkZTogVW5pcXVlU2VsZWN0aW9uRGlzcGF0Y2hlciwgdXNlQ2xhc3M6IFVuaXF1ZVNlbGVjdGlvbkRpc3BhdGNoZXJ9XSxcbn0pXG5leHBvcnQgY2xhc3MgQ2RrTWVudUdyb3VwIHt9XG4iXX0=
@@ -0,0 +1,11 @@
1
+ /**
2
+ * @license
3
+ * Copyright Google LLC All Rights Reserved.
4
+ *
5
+ * Use of this source code is governed by an MIT-style license that can be
6
+ * found in the LICENSE file at https://angular.io/license
7
+ */
8
+ import { InjectionToken } from '@angular/core';
9
+ /** Injection token used to return classes implementing the Menu interface */
10
+ export const CDK_MENU = new InjectionToken('cdk-menu');
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS1pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvY2RrL21lbnUvbWVudS1pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUk3Qyw2RUFBNkU7QUFDN0UsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFHLElBQUksY0FBYyxDQUFPLFVBQVUsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7SW5qZWN0aW9uVG9rZW59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtNZW51U3RhY2tJdGVtfSBmcm9tICcuL21lbnUtc3RhY2snO1xuaW1wb3J0IHtGb2N1c09yaWdpbn0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuXG4vKiogSW5qZWN0aW9uIHRva2VuIHVzZWQgdG8gcmV0dXJuIGNsYXNzZXMgaW1wbGVtZW50aW5nIHRoZSBNZW51IGludGVyZmFjZSAqL1xuZXhwb3J0IGNvbnN0IENES19NRU5VID0gbmV3IEluamVjdGlvblRva2VuPE1lbnU+KCdjZGstbWVudScpO1xuXG4vKiogSW50ZXJmYWNlIHdoaWNoIHNwZWNpZmllcyBNZW51IG9wZXJhdGlvbnMgYW5kIHVzZWQgdG8gYnJlYWsgY2lyY3VsYXIgZGVwZW5kZW5jeSBpc3N1ZXMgKi9cbmV4cG9ydCBpbnRlcmZhY2UgTWVudSBleHRlbmRzIE1lbnVTdGFja0l0ZW0ge1xuICAvKiogVGhlIGlkIG9mIHRoZSBtZW51J3MgaG9zdCBlbGVtZW50LiAqL1xuICBpZDogc3RyaW5nO1xuXG4gIC8qKiBUaGUgbWVudSdzIG5hdGl2ZSBET00gaG9zdCBlbGVtZW50LiAqL1xuICBuYXRpdmVFbGVtZW50OiBIVE1MRWxlbWVudDtcblxuICAvKiogVGhlIGRpcmVjdGlvbiBpdGVtcyBpbiB0aGUgbWVudSBmbG93LiAqL1xuICByZWFkb25seSBvcmllbnRhdGlvbjogJ2hvcml6b250YWwnIHwgJ3ZlcnRpY2FsJztcblxuICAvKiogUGxhY2UgZm9jdXMgb24gdGhlIGZpcnN0IE1lbnVJdGVtIGluIHRoZSBtZW51LiAqL1xuICBmb2N1c0ZpcnN0SXRlbShmb2N1c09yaWdpbjogRm9jdXNPcmlnaW4pOiB2b2lkO1xuXG4gIC8qKiBQbGFjZSBmb2N1cyBvbiB0aGUgbGFzdCBNZW51SXRlbSBpbiB0aGUgbWVudS4gKi9cbiAgZm9jdXNMYXN0SXRlbShmb2N1c09yaWdpbjogRm9jdXNPcmlnaW4pOiB2b2lkO1xufVxuIl19
@@ -0,0 +1,48 @@
1
+ /**
2
+ * @license
3
+ * Copyright Google LLC All Rights Reserved.
4
+ *
5
+ * Use of this source code is governed by an MIT-style license that can be
6
+ * found in the LICENSE file at https://angular.io/license
7
+ */
8
+ import { Directive } from '@angular/core';
9
+ import { CdkMenuItemSelectable } from './menu-item-selectable';
10
+ import { CdkMenuItem } from './menu-item';
11
+ import * as i0 from "@angular/core";
12
+ /**
13
+ * A directive providing behavior for the "menuitemcheckbox" ARIA role, which behaves similarly to a
14
+ * conventional checkbox.
15
+ */
16
+ export class CdkMenuItemCheckbox extends CdkMenuItemSelectable {
17
+ /**
18
+ * Toggle the checked state of the checkbox.
19
+ * @param options Options the configure how the item is triggered
20
+ * - keepOpen: specifies that the menu should be kept open after triggering the item.
21
+ */
22
+ trigger(options) {
23
+ super.trigger(options);
24
+ if (!this.disabled) {
25
+ this.checked = !this.checked;
26
+ }
27
+ }
28
+ }
29
+ CdkMenuItemCheckbox.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0-next.16", ngImport: i0, type: CdkMenuItemCheckbox, deps: null, target: i0.ɵɵFactoryTarget.Directive });
30
+ CdkMenuItemCheckbox.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.0.0-next.16", type: CdkMenuItemCheckbox, selector: "[cdkMenuItemCheckbox]", host: { attributes: { "role": "menuitemcheckbox" } }, providers: [
31
+ { provide: CdkMenuItemSelectable, useExisting: CdkMenuItemCheckbox },
32
+ { provide: CdkMenuItem, useExisting: CdkMenuItemSelectable },
33
+ ], exportAs: ["cdkMenuItemCheckbox"], usesInheritance: true, ngImport: i0 });
34
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.16", ngImport: i0, type: CdkMenuItemCheckbox, decorators: [{
35
+ type: Directive,
36
+ args: [{
37
+ selector: '[cdkMenuItemCheckbox]',
38
+ exportAs: 'cdkMenuItemCheckbox',
39
+ host: {
40
+ 'role': 'menuitemcheckbox',
41
+ },
42
+ providers: [
43
+ { provide: CdkMenuItemSelectable, useExisting: CdkMenuItemCheckbox },
44
+ { provide: CdkMenuItem, useExisting: CdkMenuItemSelectable },
45
+ ],
46
+ }]
47
+ }] });
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS1pdGVtLWNoZWNrYm94LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2Nkay9tZW51L21lbnUtaXRlbS1jaGVja2JveC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFFSCxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3hDLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQzdELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxhQUFhLENBQUM7O0FBRXhDOzs7R0FHRztBQVlILE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxxQkFBcUI7SUFDNUQ7Ozs7T0FJRztJQUNNLE9BQU8sQ0FBQyxPQUE2QjtRQUM1QyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRXZCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2xCLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO1NBQzlCO0lBQ0gsQ0FBQzs7d0hBWlUsbUJBQW1COzRHQUFuQixtQkFBbUIsc0dBTG5CO1FBQ1QsRUFBQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFDO1FBQ2xFLEVBQUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUscUJBQXFCLEVBQUM7S0FDM0Q7bUdBRVUsbUJBQW1CO2tCQVgvQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx1QkFBdUI7b0JBQ2pDLFFBQVEsRUFBRSxxQkFBcUI7b0JBQy9CLElBQUksRUFBRTt3QkFDSixNQUFNLEVBQUUsa0JBQWtCO3FCQUMzQjtvQkFDRCxTQUFTLEVBQUU7d0JBQ1QsRUFBQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsV0FBVyxxQkFBcUIsRUFBQzt3QkFDbEUsRUFBQyxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxxQkFBcUIsRUFBQztxQkFDM0Q7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHtEaXJlY3RpdmV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtDZGtNZW51SXRlbVNlbGVjdGFibGV9IGZyb20gJy4vbWVudS1pdGVtLXNlbGVjdGFibGUnO1xuaW1wb3J0IHtDZGtNZW51SXRlbX0gZnJvbSAnLi9tZW51LWl0ZW0nO1xuXG4vKipcbiAqIEEgZGlyZWN0aXZlIHByb3ZpZGluZyBiZWhhdmlvciBmb3IgdGhlIFwibWVudWl0ZW1jaGVja2JveFwiIEFSSUEgcm9sZSwgd2hpY2ggYmVoYXZlcyBzaW1pbGFybHkgdG8gYVxuICogY29udmVudGlvbmFsIGNoZWNrYm94LlxuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbY2RrTWVudUl0ZW1DaGVja2JveF0nLFxuICBleHBvcnRBczogJ2Nka01lbnVJdGVtQ2hlY2tib3gnLFxuICBob3N0OiB7XG4gICAgJ3JvbGUnOiAnbWVudWl0ZW1jaGVja2JveCcsXG4gIH0sXG4gIHByb3ZpZGVyczogW1xuICAgIHtwcm92aWRlOiBDZGtNZW51SXRlbVNlbGVjdGFibGUsIHVzZUV4aXN0aW5nOiBDZGtNZW51SXRlbUNoZWNrYm94fSxcbiAgICB7cHJvdmlkZTogQ2RrTWVudUl0ZW0sIHVzZUV4aXN0aW5nOiBDZGtNZW51SXRlbVNlbGVjdGFibGV9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBDZGtNZW51SXRlbUNoZWNrYm94IGV4dGVuZHMgQ2RrTWVudUl0ZW1TZWxlY3RhYmxlIHtcbiAgLyoqXG4gICAqIFRvZ2dsZSB0aGUgY2hlY2tlZCBzdGF0ZSBvZiB0aGUgY2hlY2tib3guXG4gICAqIEBwYXJhbSBvcHRpb25zIE9wdGlvbnMgdGhlIGNvbmZpZ3VyZSBob3cgdGhlIGl0ZW0gaXMgdHJpZ2dlcmVkXG4gICAqICAgLSBrZWVwT3Blbjogc3BlY2lmaWVzIHRoYXQgdGhlIG1lbnUgc2hvdWxkIGJlIGtlcHQgb3BlbiBhZnRlciB0cmlnZ2VyaW5nIHRoZSBpdGVtLlxuICAgKi9cbiAgb3ZlcnJpZGUgdHJpZ2dlcihvcHRpb25zPzoge2tlZXBPcGVuOiBib29sZWFufSkge1xuICAgIHN1cGVyLnRyaWdnZXIob3B0aW9ucyk7XG5cbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuY2hlY2tlZCA9ICF0aGlzLmNoZWNrZWQ7XG4gICAgfVxuICB9XG59XG4iXX0=