@angular/material 14.0.0-next.4 → 14.0.0-next.7

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 (472) hide show
  1. package/autocomplete/autocomplete-trigger.d.ts +14 -3
  2. package/autocomplete/autocomplete.d.ts +7 -1
  3. package/badge/_badge-theme.scss +8 -0
  4. package/button-toggle/_button-toggle-theme.scss +10 -0
  5. package/checkbox/_checkbox-theme.scss +1 -1
  6. package/chips/chip-list.d.ts +3 -1
  7. package/chips/chip.d.ts +3 -1
  8. package/core/theming/_theming.scss +9 -0
  9. package/datepicker/calendar-body.d.ts +22 -1
  10. package/dialog/dialog-animations.d.ts +10 -0
  11. package/dialog/dialog-config.d.ts +6 -0
  12. package/dialog/dialog-container.d.ts +8 -4
  13. package/dialog/dialog.d.ts +12 -6
  14. package/dialog/public-api.d.ts +1 -1
  15. package/dialog/testing/dialog-opener.d.ts +33 -0
  16. package/dialog/testing/public-api.d.ts +1 -0
  17. package/esm2020/autocomplete/autocomplete-module.mjs +5 -5
  18. package/esm2020/autocomplete/autocomplete-origin.mjs +7 -7
  19. package/esm2020/autocomplete/autocomplete-trigger.mjs +66 -37
  20. package/esm2020/autocomplete/autocomplete.mjs +18 -8
  21. package/esm2020/autocomplete/testing/autocomplete-harness.mjs +7 -1
  22. package/esm2020/badge/badge-module.mjs +5 -5
  23. package/esm2020/badge/badge.mjs +4 -4
  24. package/esm2020/bottom-sheet/bottom-sheet-animations.mjs +10 -4
  25. package/esm2020/bottom-sheet/bottom-sheet-container.mjs +4 -4
  26. package/esm2020/bottom-sheet/bottom-sheet-module.mjs +5 -5
  27. package/esm2020/bottom-sheet/bottom-sheet.mjs +4 -4
  28. package/esm2020/button/button-module.mjs +5 -5
  29. package/esm2020/button/button.mjs +8 -8
  30. package/esm2020/button-toggle/button-toggle-module.mjs +5 -5
  31. package/esm2020/button-toggle/button-toggle.mjs +7 -7
  32. package/esm2020/card/card-module.mjs +5 -5
  33. package/esm2020/card/card.mjs +44 -44
  34. package/esm2020/checkbox/checkbox-module.mjs +9 -9
  35. package/esm2020/checkbox/checkbox-required-validator.mjs +4 -4
  36. package/esm2020/checkbox/checkbox.mjs +4 -4
  37. package/esm2020/chips/chip-input.mjs +4 -4
  38. package/esm2020/chips/chip-list.mjs +13 -5
  39. package/esm2020/chips/chip.mjs +18 -14
  40. package/esm2020/chips/chips-module.mjs +5 -5
  41. package/esm2020/core/common-behaviors/common-module.mjs +5 -5
  42. package/esm2020/core/datetime/index.mjs +9 -9
  43. package/esm2020/core/datetime/native-date-adapter.mjs +4 -4
  44. package/esm2020/core/error/error-options.mjs +7 -7
  45. package/esm2020/core/line/line.mjs +8 -8
  46. package/esm2020/core/option/index.mjs +5 -5
  47. package/esm2020/core/option/optgroup.mjs +7 -7
  48. package/esm2020/core/option/option.mjs +7 -7
  49. package/esm2020/core/ripple/index.mjs +5 -5
  50. package/esm2020/core/ripple/ripple-renderer.mjs +17 -11
  51. package/esm2020/core/ripple/ripple.mjs +4 -4
  52. package/esm2020/core/selection/pseudo-checkbox/pseudo-checkbox-module.mjs +5 -5
  53. package/esm2020/core/selection/pseudo-checkbox/pseudo-checkbox.mjs +4 -4
  54. package/esm2020/core/version.mjs +1 -1
  55. package/esm2020/datepicker/calendar-body.mjs +34 -11
  56. package/esm2020/datepicker/calendar.mjs +13 -13
  57. package/esm2020/datepicker/date-range-input-parts.mjs +10 -10
  58. package/esm2020/datepicker/date-range-input.mjs +4 -4
  59. package/esm2020/datepicker/date-range-picker.mjs +4 -4
  60. package/esm2020/datepicker/date-range-selection-strategy.mjs +4 -4
  61. package/esm2020/datepicker/date-selection-model.mjs +10 -10
  62. package/esm2020/datepicker/datepicker-actions.mjs +10 -10
  63. package/esm2020/datepicker/datepicker-base.mjs +7 -7
  64. package/esm2020/datepicker/datepicker-input-base.mjs +12 -7
  65. package/esm2020/datepicker/datepicker-input.mjs +4 -4
  66. package/esm2020/datepicker/datepicker-intl.mjs +4 -4
  67. package/esm2020/datepicker/datepicker-module.mjs +5 -5
  68. package/esm2020/datepicker/datepicker-toggle.mjs +7 -7
  69. package/esm2020/datepicker/datepicker.mjs +4 -4
  70. package/esm2020/datepicker/month-view.mjs +5 -5
  71. package/esm2020/datepicker/multi-year-view.mjs +4 -4
  72. package/esm2020/datepicker/year-view.mjs +4 -4
  73. package/esm2020/dialog/dialog-animations.mjs +17 -4
  74. package/esm2020/dialog/dialog-config.mjs +8 -1
  75. package/esm2020/dialog/dialog-container.mjs +31 -22
  76. package/esm2020/dialog/dialog-content-directives.mjs +17 -13
  77. package/esm2020/dialog/dialog-module.mjs +5 -5
  78. package/esm2020/dialog/dialog.mjs +23 -39
  79. package/esm2020/dialog/public-api.mjs +2 -2
  80. package/esm2020/dialog/testing/dialog-opener.mjs +67 -0
  81. package/esm2020/dialog/testing/public-api.mjs +2 -1
  82. package/esm2020/divider/divider-module.mjs +5 -5
  83. package/esm2020/divider/divider.mjs +4 -4
  84. package/esm2020/expansion/accordion.mjs +4 -4
  85. package/esm2020/expansion/expansion-module.mjs +5 -5
  86. package/esm2020/expansion/expansion-panel-base.mjs +14 -0
  87. package/esm2020/expansion/expansion-panel-content.mjs +14 -7
  88. package/esm2020/expansion/expansion-panel-header.mjs +10 -10
  89. package/esm2020/expansion/expansion-panel.mjs +13 -10
  90. package/esm2020/expansion/public-api.mjs +2 -1
  91. package/esm2020/form-field/error.mjs +4 -4
  92. package/esm2020/form-field/form-field-control.mjs +4 -4
  93. package/esm2020/form-field/form-field-module.mjs +5 -5
  94. package/esm2020/form-field/form-field.mjs +4 -4
  95. package/esm2020/form-field/hint.mjs +4 -4
  96. package/esm2020/form-field/label.mjs +4 -4
  97. package/esm2020/form-field/placeholder.mjs +4 -4
  98. package/esm2020/form-field/prefix.mjs +4 -4
  99. package/esm2020/form-field/suffix.mjs +4 -4
  100. package/esm2020/grid-list/grid-list-module.mjs +5 -5
  101. package/esm2020/grid-list/grid-list.mjs +4 -4
  102. package/esm2020/grid-list/grid-tile.mjs +16 -16
  103. package/esm2020/icon/icon-module.mjs +5 -5
  104. package/esm2020/icon/icon-registry.mjs +12 -14
  105. package/esm2020/icon/icon.mjs +31 -21
  106. package/esm2020/icon/testing/fake-icon-registry.mjs +9 -9
  107. package/esm2020/input/input-module.mjs +5 -5
  108. package/esm2020/input/input.mjs +4 -4
  109. package/esm2020/list/list-module.mjs +5 -5
  110. package/esm2020/list/list.mjs +19 -21
  111. package/esm2020/list/selection-list.mjs +13 -36
  112. package/esm2020/list/testing/list-item-harness-base.mjs +1 -9
  113. package/esm2020/menu/menu-content.mjs +7 -7
  114. package/esm2020/menu/menu-errors.mjs +1 -12
  115. package/esm2020/menu/menu-item.mjs +8 -4
  116. package/esm2020/menu/menu-module.mjs +5 -5
  117. package/esm2020/menu/menu-trigger.mjs +62 -64
  118. package/esm2020/menu/menu.mjs +24 -8
  119. package/esm2020/paginator/paginator-intl.mjs +4 -4
  120. package/esm2020/paginator/paginator-module.mjs +5 -5
  121. package/esm2020/paginator/paginator.mjs +12 -8
  122. package/esm2020/progress-bar/progress-bar-module.mjs +5 -5
  123. package/esm2020/progress-bar/progress-bar.mjs +4 -4
  124. package/esm2020/progress-spinner/progress-spinner-module.mjs +8 -8
  125. package/esm2020/progress-spinner/progress-spinner.mjs +10 -50
  126. package/esm2020/progress-spinner/public-api.mjs +10 -2
  127. package/esm2020/radio/radio-module.mjs +5 -5
  128. package/esm2020/radio/radio.mjs +13 -13
  129. package/esm2020/select/select-module.mjs +5 -5
  130. package/esm2020/select/select.mjs +21 -11
  131. package/esm2020/sidenav/drawer.mjs +10 -10
  132. package/esm2020/sidenav/sidenav-module.mjs +5 -5
  133. package/esm2020/sidenav/sidenav.mjs +10 -10
  134. package/esm2020/slide-toggle/slide-toggle-module.mjs +9 -9
  135. package/esm2020/slide-toggle/slide-toggle-required-validator.mjs +4 -4
  136. package/esm2020/slide-toggle/slide-toggle.mjs +5 -4
  137. package/esm2020/slider/slider-module.mjs +5 -5
  138. package/esm2020/slider/slider.mjs +4 -4
  139. package/esm2020/snack-bar/simple-snack-bar.mjs +4 -4
  140. package/esm2020/snack-bar/snack-bar-container.mjs +4 -4
  141. package/esm2020/snack-bar/snack-bar-module.mjs +5 -5
  142. package/esm2020/snack-bar/snack-bar.mjs +7 -7
  143. package/esm2020/sort/sort-header-intl.mjs +4 -4
  144. package/esm2020/sort/sort-header.mjs +6 -6
  145. package/esm2020/sort/sort-module.mjs +5 -5
  146. package/esm2020/sort/sort.mjs +4 -4
  147. package/esm2020/stepper/public-api.mjs +2 -2
  148. package/esm2020/stepper/step-content.mjs +4 -4
  149. package/esm2020/stepper/step-header.mjs +4 -4
  150. package/esm2020/stepper/step-label.mjs +4 -4
  151. package/esm2020/stepper/stepper-animations.mjs +9 -3
  152. package/esm2020/stepper/stepper-button.mjs +7 -7
  153. package/esm2020/stepper/stepper-icon.mjs +4 -4
  154. package/esm2020/stepper/stepper-intl.mjs +4 -4
  155. package/esm2020/stepper/stepper-module.mjs +5 -5
  156. package/esm2020/stepper/stepper.mjs +35 -9
  157. package/esm2020/table/cell.mjs +22 -22
  158. package/esm2020/table/row.mjs +22 -22
  159. package/esm2020/table/table-module.mjs +5 -5
  160. package/esm2020/table/table.mjs +7 -7
  161. package/esm2020/table/text-column.mjs +4 -4
  162. package/esm2020/tabs/ink-bar.mjs +11 -22
  163. package/esm2020/tabs/paginated-tab-header.mjs +8 -6
  164. package/esm2020/tabs/tab-body.mjs +10 -10
  165. package/esm2020/tabs/tab-content.mjs +4 -4
  166. package/esm2020/tabs/tab-group.mjs +7 -7
  167. package/esm2020/tabs/tab-header.mjs +7 -7
  168. package/esm2020/tabs/tab-label-wrapper.mjs +4 -4
  169. package/esm2020/tabs/tab-label.mjs +4 -4
  170. package/esm2020/tabs/tab-nav-bar/tab-nav-bar.mjs +17 -17
  171. package/esm2020/tabs/tab.mjs +4 -4
  172. package/esm2020/tabs/tabs-module.mjs +5 -5
  173. package/esm2020/toolbar/toolbar-module.mjs +5 -5
  174. package/esm2020/toolbar/toolbar.mjs +7 -7
  175. package/esm2020/tooltip/testing/tooltip-harness.mjs +12 -7
  176. package/esm2020/tooltip/tooltip-module.mjs +5 -5
  177. package/esm2020/tooltip/tooltip.mjs +126 -51
  178. package/esm2020/tree/node.mjs +10 -10
  179. package/esm2020/tree/outlet.mjs +4 -4
  180. package/esm2020/tree/padding.mjs +4 -4
  181. package/esm2020/tree/toggle.mjs +4 -4
  182. package/esm2020/tree/tree-module.mjs +5 -5
  183. package/esm2020/tree/tree.mjs +4 -4
  184. package/expansion/expansion-panel-base.d.ts +22 -0
  185. package/expansion/expansion-panel-content.d.ts +4 -2
  186. package/expansion/public-api.d.ts +1 -0
  187. package/fesm2015/autocomplete/testing.mjs +6 -0
  188. package/fesm2015/autocomplete/testing.mjs.map +1 -1
  189. package/fesm2015/autocomplete.mjs +94 -54
  190. package/fesm2015/autocomplete.mjs.map +1 -1
  191. package/fesm2015/badge/testing.mjs.map +1 -1
  192. package/fesm2015/badge.mjs +7 -7
  193. package/fesm2015/badge.mjs.map +1 -1
  194. package/fesm2015/bottom-sheet/testing.mjs.map +1 -1
  195. package/fesm2015/bottom-sheet.mjs +19 -13
  196. package/fesm2015/bottom-sheet.mjs.map +1 -1
  197. package/fesm2015/button/testing.mjs.map +1 -1
  198. package/fesm2015/button-toggle/testing.mjs.map +1 -1
  199. package/fesm2015/button-toggle.mjs +10 -10
  200. package/fesm2015/button-toggle.mjs.map +1 -1
  201. package/fesm2015/button.mjs +11 -11
  202. package/fesm2015/button.mjs.map +1 -1
  203. package/fesm2015/card/testing.mjs.map +1 -1
  204. package/fesm2015/card.mjs +47 -47
  205. package/fesm2015/card.mjs.map +1 -1
  206. package/fesm2015/checkbox/testing.mjs.map +1 -1
  207. package/fesm2015/checkbox.mjs +14 -14
  208. package/fesm2015/checkbox.mjs.map +1 -1
  209. package/fesm2015/chips/testing.mjs.map +1 -1
  210. package/fesm2015/chips.mjs +36 -24
  211. package/fesm2015/chips.mjs.map +1 -1
  212. package/fesm2015/core/testing.mjs.map +1 -1
  213. package/fesm2015/core.mjs +75 -69
  214. package/fesm2015/core.mjs.map +1 -1
  215. package/fesm2015/datepicker/testing.mjs.map +1 -1
  216. package/fesm2015/datepicker.mjs +125 -97
  217. package/fesm2015/datepicker.mjs.map +1 -1
  218. package/fesm2015/dialog/testing.mjs +65 -2
  219. package/fesm2015/dialog/testing.mjs.map +1 -1
  220. package/fesm2015/dialog.mjs +115 -99
  221. package/fesm2015/dialog.mjs.map +1 -1
  222. package/fesm2015/divider/testing.mjs.map +1 -1
  223. package/fesm2015/divider.mjs +7 -7
  224. package/fesm2015/divider.mjs.map +1 -1
  225. package/fesm2015/expansion/testing.mjs.map +1 -1
  226. package/fesm2015/expansion.mjs +55 -32
  227. package/fesm2015/expansion.mjs.map +1 -1
  228. package/fesm2015/form-field/testing/control.mjs.map +1 -1
  229. package/fesm2015/form-field/testing.mjs.map +1 -1
  230. package/fesm2015/form-field.mjs +28 -28
  231. package/fesm2015/form-field.mjs.map +1 -1
  232. package/fesm2015/grid-list/testing.mjs.map +1 -1
  233. package/fesm2015/grid-list.mjs +22 -22
  234. package/fesm2015/grid-list.mjs.map +1 -1
  235. package/fesm2015/icon/testing.mjs +8 -8
  236. package/fesm2015/icon/testing.mjs.map +1 -1
  237. package/fesm2015/icon.mjs +45 -37
  238. package/fesm2015/icon.mjs.map +1 -1
  239. package/fesm2015/input/testing.mjs.map +1 -1
  240. package/fesm2015/input.mjs +7 -7
  241. package/fesm2015/input.mjs.map +1 -1
  242. package/fesm2015/list/testing.mjs +0 -10
  243. package/fesm2015/list/testing.mjs.map +1 -1
  244. package/fesm2015/list.mjs +37 -63
  245. package/fesm2015/list.mjs.map +1 -1
  246. package/fesm2015/material.mjs.map +1 -1
  247. package/fesm2015/menu/testing.mjs.map +1 -1
  248. package/fesm2015/menu.mjs +103 -93
  249. package/fesm2015/menu.mjs.map +1 -1
  250. package/fesm2015/paginator/testing.mjs.map +1 -1
  251. package/fesm2015/paginator.mjs +18 -14
  252. package/fesm2015/paginator.mjs.map +1 -1
  253. package/fesm2015/progress-bar/testing.mjs.map +1 -1
  254. package/fesm2015/progress-bar.mjs +7 -7
  255. package/fesm2015/progress-bar.mjs.map +1 -1
  256. package/fesm2015/progress-spinner/testing.mjs.map +1 -1
  257. package/fesm2015/progress-spinner.mjs +27 -62
  258. package/fesm2015/progress-spinner.mjs.map +1 -1
  259. package/fesm2015/radio/testing.mjs.map +1 -1
  260. package/fesm2015/radio.mjs +16 -16
  261. package/fesm2015/radio.mjs.map +1 -1
  262. package/fesm2015/select/testing.mjs.map +1 -1
  263. package/fesm2015/select.mjs +24 -14
  264. package/fesm2015/select.mjs.map +1 -1
  265. package/fesm2015/sidenav/testing.mjs.map +1 -1
  266. package/fesm2015/sidenav.mjs +22 -22
  267. package/fesm2015/sidenav.mjs.map +1 -1
  268. package/fesm2015/slide-toggle/testing.mjs.map +1 -1
  269. package/fesm2015/slide-toggle.mjs +15 -14
  270. package/fesm2015/slide-toggle.mjs.map +1 -1
  271. package/fesm2015/slider/testing.mjs.map +1 -1
  272. package/fesm2015/slider.mjs +7 -7
  273. package/fesm2015/slider.mjs.map +1 -1
  274. package/fesm2015/snack-bar/testing.mjs.map +1 -1
  275. package/fesm2015/snack-bar.mjs +16 -16
  276. package/fesm2015/snack-bar.mjs.map +1 -1
  277. package/fesm2015/sort/testing.mjs.map +1 -1
  278. package/fesm2015/sort.mjs +15 -15
  279. package/fesm2015/sort.mjs.map +1 -1
  280. package/fesm2015/stepper/testing.mjs.map +1 -1
  281. package/fesm2015/stepper.mjs +66 -34
  282. package/fesm2015/stepper.mjs.map +1 -1
  283. package/fesm2015/table/testing.mjs.map +1 -1
  284. package/fesm2015/table.mjs +55 -55
  285. package/fesm2015/table.mjs.map +1 -1
  286. package/fesm2015/tabs/testing.mjs.map +1 -1
  287. package/fesm2015/tabs.mjs +69 -79
  288. package/fesm2015/tabs.mjs.map +1 -1
  289. package/fesm2015/toolbar/testing.mjs.map +1 -1
  290. package/fesm2015/toolbar.mjs +10 -10
  291. package/fesm2015/toolbar.mjs.map +1 -1
  292. package/fesm2015/tooltip/testing.mjs +11 -8
  293. package/fesm2015/tooltip/testing.mjs.map +1 -1
  294. package/fesm2015/tooltip.mjs +154 -79
  295. package/fesm2015/tooltip.mjs.map +1 -1
  296. package/fesm2015/tree/testing.mjs.map +1 -1
  297. package/fesm2015/tree.mjs +25 -25
  298. package/fesm2015/tree.mjs.map +1 -1
  299. package/fesm2020/autocomplete/testing.mjs +6 -0
  300. package/fesm2020/autocomplete/testing.mjs.map +1 -1
  301. package/fesm2020/autocomplete.mjs +93 -54
  302. package/fesm2020/autocomplete.mjs.map +1 -1
  303. package/fesm2020/badge/testing.mjs.map +1 -1
  304. package/fesm2020/badge.mjs +7 -7
  305. package/fesm2020/badge.mjs.map +1 -1
  306. package/fesm2020/bottom-sheet/testing.mjs.map +1 -1
  307. package/fesm2020/bottom-sheet.mjs +19 -13
  308. package/fesm2020/bottom-sheet.mjs.map +1 -1
  309. package/fesm2020/button/testing.mjs.map +1 -1
  310. package/fesm2020/button-toggle/testing.mjs.map +1 -1
  311. package/fesm2020/button-toggle.mjs +10 -10
  312. package/fesm2020/button-toggle.mjs.map +1 -1
  313. package/fesm2020/button.mjs +11 -11
  314. package/fesm2020/button.mjs.map +1 -1
  315. package/fesm2020/card/testing.mjs.map +1 -1
  316. package/fesm2020/card.mjs +47 -47
  317. package/fesm2020/card.mjs.map +1 -1
  318. package/fesm2020/checkbox/testing.mjs.map +1 -1
  319. package/fesm2020/checkbox.mjs +14 -14
  320. package/fesm2020/checkbox.mjs.map +1 -1
  321. package/fesm2020/chips/testing.mjs.map +1 -1
  322. package/fesm2020/chips.mjs +36 -24
  323. package/fesm2020/chips.mjs.map +1 -1
  324. package/fesm2020/core/testing.mjs.map +1 -1
  325. package/fesm2020/core.mjs +75 -69
  326. package/fesm2020/core.mjs.map +1 -1
  327. package/fesm2020/datepicker/testing.mjs.map +1 -1
  328. package/fesm2020/datepicker.mjs +125 -97
  329. package/fesm2020/datepicker.mjs.map +1 -1
  330. package/fesm2020/dialog/testing.mjs +65 -1
  331. package/fesm2020/dialog/testing.mjs.map +1 -1
  332. package/fesm2020/dialog.mjs +115 -99
  333. package/fesm2020/dialog.mjs.map +1 -1
  334. package/fesm2020/divider/testing.mjs.map +1 -1
  335. package/fesm2020/divider.mjs +7 -7
  336. package/fesm2020/divider.mjs.map +1 -1
  337. package/fesm2020/expansion/testing.mjs.map +1 -1
  338. package/fesm2020/expansion.mjs +53 -32
  339. package/fesm2020/expansion.mjs.map +1 -1
  340. package/fesm2020/form-field/testing/control.mjs.map +1 -1
  341. package/fesm2020/form-field/testing.mjs.map +1 -1
  342. package/fesm2020/form-field.mjs +28 -28
  343. package/fesm2020/form-field.mjs.map +1 -1
  344. package/fesm2020/grid-list/testing.mjs.map +1 -1
  345. package/fesm2020/grid-list.mjs +22 -22
  346. package/fesm2020/grid-list.mjs.map +1 -1
  347. package/fesm2020/icon/testing.mjs +8 -8
  348. package/fesm2020/icon/testing.mjs.map +1 -1
  349. package/fesm2020/icon.mjs +45 -37
  350. package/fesm2020/icon.mjs.map +1 -1
  351. package/fesm2020/input/testing.mjs.map +1 -1
  352. package/fesm2020/input.mjs +7 -7
  353. package/fesm2020/input.mjs.map +1 -1
  354. package/fesm2020/list/testing.mjs +0 -8
  355. package/fesm2020/list/testing.mjs.map +1 -1
  356. package/fesm2020/list.mjs +34 -59
  357. package/fesm2020/list.mjs.map +1 -1
  358. package/fesm2020/material.mjs.map +1 -1
  359. package/fesm2020/menu/testing.mjs.map +1 -1
  360. package/fesm2020/menu.mjs +100 -93
  361. package/fesm2020/menu.mjs.map +1 -1
  362. package/fesm2020/paginator/testing.mjs.map +1 -1
  363. package/fesm2020/paginator.mjs +18 -14
  364. package/fesm2020/paginator.mjs.map +1 -1
  365. package/fesm2020/progress-bar/testing.mjs.map +1 -1
  366. package/fesm2020/progress-bar.mjs +7 -7
  367. package/fesm2020/progress-bar.mjs.map +1 -1
  368. package/fesm2020/progress-spinner/testing.mjs.map +1 -1
  369. package/fesm2020/progress-spinner.mjs +27 -60
  370. package/fesm2020/progress-spinner.mjs.map +1 -1
  371. package/fesm2020/radio/testing.mjs.map +1 -1
  372. package/fesm2020/radio.mjs +16 -16
  373. package/fesm2020/radio.mjs.map +1 -1
  374. package/fesm2020/select/testing.mjs.map +1 -1
  375. package/fesm2020/select.mjs +24 -14
  376. package/fesm2020/select.mjs.map +1 -1
  377. package/fesm2020/sidenav/testing.mjs.map +1 -1
  378. package/fesm2020/sidenav.mjs +22 -22
  379. package/fesm2020/sidenav.mjs.map +1 -1
  380. package/fesm2020/slide-toggle/testing.mjs.map +1 -1
  381. package/fesm2020/slide-toggle.mjs +15 -14
  382. package/fesm2020/slide-toggle.mjs.map +1 -1
  383. package/fesm2020/slider/testing.mjs.map +1 -1
  384. package/fesm2020/slider.mjs +7 -7
  385. package/fesm2020/slider.mjs.map +1 -1
  386. package/fesm2020/snack-bar/testing.mjs.map +1 -1
  387. package/fesm2020/snack-bar.mjs +16 -16
  388. package/fesm2020/snack-bar.mjs.map +1 -1
  389. package/fesm2020/sort/testing.mjs.map +1 -1
  390. package/fesm2020/sort.mjs +15 -15
  391. package/fesm2020/sort.mjs.map +1 -1
  392. package/fesm2020/stepper/testing.mjs.map +1 -1
  393. package/fesm2020/stepper.mjs +66 -34
  394. package/fesm2020/stepper.mjs.map +1 -1
  395. package/fesm2020/table/testing.mjs.map +1 -1
  396. package/fesm2020/table.mjs +55 -55
  397. package/fesm2020/table.mjs.map +1 -1
  398. package/fesm2020/tabs/testing.mjs.map +1 -1
  399. package/fesm2020/tabs.mjs +69 -79
  400. package/fesm2020/tabs.mjs.map +1 -1
  401. package/fesm2020/toolbar/testing.mjs.map +1 -1
  402. package/fesm2020/toolbar.mjs +10 -10
  403. package/fesm2020/toolbar.mjs.map +1 -1
  404. package/fesm2020/tooltip/testing.mjs +11 -6
  405. package/fesm2020/tooltip/testing.mjs.map +1 -1
  406. package/fesm2020/tooltip.mjs +147 -71
  407. package/fesm2020/tooltip.mjs.map +1 -1
  408. package/fesm2020/tree/testing.mjs.map +1 -1
  409. package/fesm2020/tree.mjs +25 -25
  410. package/fesm2020/tree.mjs.map +1 -1
  411. package/icon/icon-registry.d.ts +7 -9
  412. package/icon/icon.d.ts +12 -3
  413. package/icon/testing/fake-icon-registry.d.ts +1 -1
  414. package/list/selection-list.d.ts +4 -21
  415. package/list/testing/list-item-harness-base.d.ts +1 -7
  416. package/menu/menu-errors.d.ts +0 -5
  417. package/menu/menu-item.d.ts +3 -2
  418. package/menu/menu-trigger.d.ts +14 -10
  419. package/package.json +7 -7
  420. package/paginator/paginator.d.ts +12 -1
  421. package/prebuilt-themes/deeppurple-amber.css +1 -1
  422. package/prebuilt-themes/indigo-pink.css +1 -1
  423. package/prebuilt-themes/pink-bluegrey.css +1 -1
  424. package/prebuilt-themes/purple-green.css +1 -1
  425. package/progress-spinner/progress-spinner-module.d.ts +1 -1
  426. package/progress-spinner/progress-spinner.d.ts +1 -18
  427. package/progress-spinner/public-api.d.ts +8 -1
  428. package/schematics/migration.json +5 -0
  429. package/schematics/ng-add/fonts/material-fonts.js +4 -13
  430. package/schematics/ng-add/fonts/material-fonts.mjs +4 -13
  431. package/schematics/ng-add/index.js +2 -2
  432. package/schematics/ng-add/index.mjs +2 -2
  433. package/schematics/ng-add/schema.d.ts +2 -2
  434. package/schematics/ng-add/schema.js +1 -1
  435. package/schematics/ng-add/schema.json +12 -4
  436. package/schematics/ng-add/schema.mjs +1 -1
  437. package/schematics/ng-add/setup-project.js +16 -23
  438. package/schematics/ng-add/setup-project.mjs +16 -23
  439. package/schematics/ng-add/theming/theming.js +28 -39
  440. package/schematics/ng-add/theming/theming.mjs +28 -39
  441. package/schematics/ng-generate/address-form/index.js +5 -14
  442. package/schematics/ng-generate/address-form/index.mjs +5 -14
  443. package/schematics/ng-generate/dashboard/index.js +5 -14
  444. package/schematics/ng-generate/dashboard/index.mjs +5 -14
  445. package/schematics/ng-generate/navigation/index.js +5 -14
  446. package/schematics/ng-generate/navigation/index.mjs +5 -14
  447. package/schematics/ng-generate/table/index.js +5 -14
  448. package/schematics/ng-generate/table/index.mjs +5 -14
  449. package/schematics/ng-generate/tree/index.js +5 -14
  450. package/schematics/ng-generate/tree/index.mjs +5 -14
  451. package/schematics/ng-update/data/constructor-checks.js +7 -1
  452. package/schematics/ng-update/data/constructor-checks.mjs +7 -1
  453. package/schematics/ng-update/data/css-selectors.js +7 -1
  454. package/schematics/ng-update/data/css-selectors.mjs +7 -1
  455. package/schematics/ng-update/data/index.js +6 -2
  456. package/schematics/ng-update/data/index.mjs +6 -2
  457. package/schematics/ng-update/index.d.ts +2 -0
  458. package/schematics/ng-update/index.js +7 -2
  459. package/schematics/ng-update/index.mjs +7 -2
  460. package/schematics/ng-update/migrations/hammer-gestures-v9/import-manager.js +2 -2
  461. package/schematics/ng-update/migrations/hammer-gestures-v9/import-manager.mjs +2 -2
  462. package/schematics/ng-update/migrations/package-imports-v8/secondary-entry-points-migration.js +2 -3
  463. package/schematics/ng-update/migrations/package-imports-v8/secondary-entry-points-migration.mjs +2 -3
  464. package/schematics/ng-update/migrations/theming-api-v12/migration.js +5 -5
  465. package/schematics/ng-update/migrations/theming-api-v12/migration.mjs +5 -5
  466. package/select/select.d.ts +5 -0
  467. package/stepper/public-api.d.ts +1 -1
  468. package/stepper/stepper-animations.d.ts +2 -0
  469. package/stepper/stepper.d.ts +11 -1
  470. package/tabs/ink-bar.d.ts +0 -5
  471. package/tooltip/testing/tooltip-harness.d.ts +6 -0
  472. package/tooltip/tooltip.d.ts +36 -8
@@ -12,7 +12,7 @@ import * as i1$1 from '@angular/cdk/overlay';
12
12
  import { Overlay, OverlayConfig, OverlayModule } from '@angular/cdk/overlay';
13
13
  import * as i3 from '@angular/cdk/scrolling';
14
14
  import { CdkScrollableModule } from '@angular/cdk/scrolling';
15
- import { ESCAPE, hasModifierKey, ENTER, UP_ARROW, DOWN_ARROW, TAB } from '@angular/cdk/keycodes';
15
+ import { hasModifierKey, ESCAPE, ENTER, UP_ARROW, DOWN_ARROW, TAB } from '@angular/cdk/keycodes';
16
16
  import { TemplatePortal } from '@angular/cdk/portal';
17
17
  import { NG_VALUE_ACCESSOR } from '@angular/forms';
18
18
  import * as i4 from '@angular/material/form-field';
@@ -54,7 +54,7 @@ const MAT_AUTOCOMPLETE_DEFAULT_OPTIONS = new InjectionToken('mat-autocomplete-de
54
54
  });
55
55
  /** @docs-private */
56
56
  function MAT_AUTOCOMPLETE_DEFAULT_OPTIONS_FACTORY() {
57
- return { autoActiveFirstOption: false };
57
+ return { autoActiveFirstOption: false, autoSelectActiveOption: false };
58
58
  }
59
59
  /** Base class with all of the `MatAutocomplete` functionality. */
60
60
  class _MatAutocompleteBase extends _MatAutocompleteMixinBase {
@@ -85,6 +85,7 @@ class _MatAutocompleteBase extends _MatAutocompleteMixinBase {
85
85
  // option altogether.
86
86
  this.inertGroups = (platform === null || platform === void 0 ? void 0 : platform.SAFARI) || false;
87
87
  this._autoActiveFirstOption = !!defaults.autoActiveFirstOption;
88
+ this._autoSelectActiveOption = !!defaults.autoSelectActiveOption;
88
89
  }
89
90
  /** Whether the autocomplete panel is open. */
90
91
  get isOpen() {
@@ -100,6 +101,13 @@ class _MatAutocompleteBase extends _MatAutocompleteMixinBase {
100
101
  set autoActiveFirstOption(value) {
101
102
  this._autoActiveFirstOption = coerceBooleanProperty(value);
102
103
  }
104
+ /** Whether the active option should be selected as the user is navigating. */
105
+ get autoSelectActiveOption() {
106
+ return this._autoSelectActiveOption;
107
+ }
108
+ set autoSelectActiveOption(value) {
109
+ this._autoSelectActiveOption = coerceBooleanProperty(value);
110
+ }
103
111
  /**
104
112
  * Takes classes set on the host mat-autocomplete element and applies them to the panel
105
113
  * inside the overlay container to allow for easy styling.
@@ -168,9 +176,9 @@ class _MatAutocompleteBase extends _MatAutocompleteMixinBase {
168
176
  classList[this._hiddenClass] = !this.showPanel;
169
177
  }
170
178
  }
171
- _MatAutocompleteBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: _MatAutocompleteBase, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: MAT_AUTOCOMPLETE_DEFAULT_OPTIONS }, { token: i1.Platform }], target: i0.ɵɵFactoryTarget.Directive });
172
- _MatAutocompleteBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.0", type: _MatAutocompleteBase, inputs: { ariaLabel: ["aria-label", "ariaLabel"], ariaLabelledby: ["aria-labelledby", "ariaLabelledby"], displayWith: "displayWith", autoActiveFirstOption: "autoActiveFirstOption", panelWidth: "panelWidth", classList: ["class", "classList"] }, outputs: { optionSelected: "optionSelected", opened: "opened", closed: "closed", optionActivated: "optionActivated" }, viewQueries: [{ propertyName: "template", first: true, predicate: TemplateRef, descendants: true, static: true }, { propertyName: "panel", first: true, predicate: ["panel"], descendants: true }], usesInheritance: true, ngImport: i0 });
173
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: _MatAutocompleteBase, decorators: [{
179
+ _MatAutocompleteBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0-next.6", ngImport: i0, type: _MatAutocompleteBase, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: MAT_AUTOCOMPLETE_DEFAULT_OPTIONS }, { token: i1.Platform }], target: i0.ɵɵFactoryTarget.Directive });
180
+ _MatAutocompleteBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "14.0.0-next.6", type: _MatAutocompleteBase, inputs: { ariaLabel: ["aria-label", "ariaLabel"], ariaLabelledby: ["aria-labelledby", "ariaLabelledby"], displayWith: "displayWith", autoActiveFirstOption: "autoActiveFirstOption", autoSelectActiveOption: "autoSelectActiveOption", panelWidth: "panelWidth", classList: ["class", "classList"] }, outputs: { optionSelected: "optionSelected", opened: "opened", closed: "closed", optionActivated: "optionActivated" }, viewQueries: [{ propertyName: "template", first: true, predicate: TemplateRef, descendants: true, static: true }, { propertyName: "panel", first: true, predicate: ["panel"], descendants: true }], usesInheritance: true, ngImport: i0 });
181
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.6", ngImport: i0, type: _MatAutocompleteBase, decorators: [{
174
182
  type: Directive
175
183
  }], ctorParameters: function () {
176
184
  return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: undefined, decorators: [{
@@ -193,6 +201,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImpor
193
201
  type: Input
194
202
  }], autoActiveFirstOption: [{
195
203
  type: Input
204
+ }], autoSelectActiveOption: [{
205
+ type: Input
196
206
  }], panelWidth: [{
197
207
  type: Input
198
208
  }], optionSelected: [{
@@ -214,9 +224,9 @@ class MatAutocomplete extends _MatAutocompleteBase {
214
224
  this._hiddenClass = 'mat-autocomplete-hidden';
215
225
  }
216
226
  }
217
- MatAutocomplete.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: MatAutocomplete, deps: null, target: i0.ɵɵFactoryTarget.Component });
218
- MatAutocomplete.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.0", type: MatAutocomplete, selector: "mat-autocomplete", inputs: { disableRipple: "disableRipple" }, host: { classAttribute: "mat-autocomplete" }, providers: [{ provide: MAT_OPTION_PARENT_COMPONENT, useExisting: MatAutocomplete }], queries: [{ propertyName: "optionGroups", predicate: MAT_OPTGROUP, descendants: true }, { propertyName: "options", predicate: MatOption, descendants: true }], exportAs: ["matAutocomplete"], usesInheritance: true, ngImport: i0, template: "<ng-template let-formFieldId=\"id\">\n <div class=\"mat-autocomplete-panel\"\n role=\"listbox\"\n [id]=\"id\"\n [attr.aria-label]=\"ariaLabel || null\"\n [attr.aria-labelledby]=\"_getPanelAriaLabelledby(formFieldId)\"\n [ngClass]=\"_classList\"\n #panel>\n <ng-content></ng-content>\n </div>\n</ng-template>\n", styles: [".mat-autocomplete-panel{min-width:112px;max-width:280px;overflow:auto;-webkit-overflow-scrolling:touch;visibility:hidden;max-width:none;max-height:256px;position:relative;width:100%;border-bottom-left-radius:4px;border-bottom-right-radius:4px}.mat-autocomplete-panel.mat-autocomplete-visible{visibility:visible}.mat-autocomplete-panel.mat-autocomplete-hidden{visibility:hidden}.mat-autocomplete-panel-above .mat-autocomplete-panel{border-radius:0;border-top-left-radius:4px;border-top-right-radius:4px}.mat-autocomplete-panel .mat-divider-horizontal{margin-top:-1px}.cdk-high-contrast-active .mat-autocomplete-panel{outline:solid 1px}mat-autocomplete{display:none}\n"], directives: [{ type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
219
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: MatAutocomplete, decorators: [{
227
+ MatAutocomplete.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0-next.6", ngImport: i0, type: MatAutocomplete, deps: null, target: i0.ɵɵFactoryTarget.Component });
228
+ MatAutocomplete.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "14.0.0-next.6", type: MatAutocomplete, selector: "mat-autocomplete", inputs: { disableRipple: "disableRipple" }, host: { classAttribute: "mat-autocomplete" }, providers: [{ provide: MAT_OPTION_PARENT_COMPONENT, useExisting: MatAutocomplete }], queries: [{ propertyName: "optionGroups", predicate: MAT_OPTGROUP, descendants: true }, { propertyName: "options", predicate: MatOption, descendants: true }], exportAs: ["matAutocomplete"], usesInheritance: true, ngImport: i0, template: "<ng-template let-formFieldId=\"id\">\n <div class=\"mat-autocomplete-panel\"\n role=\"listbox\"\n [id]=\"id\"\n [attr.aria-label]=\"ariaLabel || null\"\n [attr.aria-labelledby]=\"_getPanelAriaLabelledby(formFieldId)\"\n [ngClass]=\"_classList\"\n #panel>\n <ng-content></ng-content>\n </div>\n</ng-template>\n", styles: [".mat-autocomplete-panel{min-width:112px;max-width:280px;overflow:auto;-webkit-overflow-scrolling:touch;visibility:hidden;max-width:none;max-height:256px;position:relative;width:100%;border-bottom-left-radius:4px;border-bottom-right-radius:4px}.mat-autocomplete-panel.mat-autocomplete-visible{visibility:visible}.mat-autocomplete-panel.mat-autocomplete-hidden{visibility:hidden}.mat-autocomplete-panel-above .mat-autocomplete-panel{border-radius:0;border-top-left-radius:4px;border-top-right-radius:4px}.mat-autocomplete-panel .mat-divider-horizontal{margin-top:-1px}.cdk-high-contrast-active .mat-autocomplete-panel{outline:solid 1px}mat-autocomplete{display:none}\n"], directives: [{ type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
229
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.6", ngImport: i0, type: MatAutocomplete, decorators: [{
220
230
  type: Component,
221
231
  args: [{ selector: 'mat-autocomplete', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: 'matAutocomplete', inputs: ['disableRipple'], host: {
222
232
  'class': 'mat-autocomplete',
@@ -381,6 +391,7 @@ class _MatAutocompleteTriggerBase {
381
391
  this.autocomplete.closed.emit();
382
392
  }
383
393
  this.autocomplete._isOpen = this._overlayAttached = false;
394
+ this._pendingAutoselectedOption = null;
384
395
  if (this._overlayRef && this._overlayRef.hasAttached()) {
385
396
  this._overlayRef.detach();
386
397
  this._closingActionsSubscription.unsubscribe();
@@ -445,7 +456,7 @@ class _MatAutocompleteTriggerBase {
445
456
  }
446
457
  // Implemented as part of ControlValueAccessor.
447
458
  writeValue(value) {
448
- Promise.resolve().then(() => this._setTriggerValue(value));
459
+ Promise.resolve(null).then(() => this._assignOptionValue(value));
449
460
  }
450
461
  // Implemented as part of ControlValueAccessor.
451
462
  registerOnChange(fn) {
@@ -461,14 +472,15 @@ class _MatAutocompleteTriggerBase {
461
472
  }
462
473
  _handleKeydown(event) {
463
474
  const keyCode = event.keyCode;
475
+ const hasModifier = hasModifierKey(event);
464
476
  // Prevent the default action on all escape key presses. This is here primarily to bring IE
465
477
  // in line with other browsers. By default, pressing escape on IE will cause it to revert
466
478
  // the input value to the one that it had on focus, however it won't dispatch any events
467
479
  // which means that the model value will be out of sync with the view.
468
- if (keyCode === ESCAPE && !hasModifierKey(event)) {
480
+ if (keyCode === ESCAPE && !hasModifier) {
469
481
  event.preventDefault();
470
482
  }
471
- if (this.activeOption && keyCode === ENTER && this.panelOpen && !hasModifierKey(event)) {
483
+ if (this.activeOption && keyCode === ENTER && this.panelOpen && !hasModifier) {
472
484
  this.activeOption._selectViaInteraction();
473
485
  this._resetActiveItem();
474
486
  event.preventDefault();
@@ -476,7 +488,7 @@ class _MatAutocompleteTriggerBase {
476
488
  else if (this.autocomplete) {
477
489
  const prevActiveItem = this.autocomplete._keyManager.activeItem;
478
490
  const isArrowKey = keyCode === UP_ARROW || keyCode === DOWN_ARROW;
479
- if (this.panelOpen || keyCode === TAB) {
491
+ if (keyCode === TAB || (isArrowKey && !hasModifier && this.panelOpen)) {
480
492
  this.autocomplete._keyManager.onKeydown(event);
481
493
  }
482
494
  else if (isArrowKey && this._canOpen()) {
@@ -484,6 +496,13 @@ class _MatAutocompleteTriggerBase {
484
496
  }
485
497
  if (isArrowKey || this.autocomplete._keyManager.activeItem !== prevActiveItem) {
486
498
  this._scrollToOption(this.autocomplete._keyManager.activeItemIndex || 0);
499
+ if (this.autocomplete.autoSelectActiveOption && this.activeOption) {
500
+ if (!this._pendingAutoselectedOption) {
501
+ this._valueBeforeAutoSelection = this._element.nativeElement.value;
502
+ }
503
+ this._pendingAutoselectedOption = this.activeOption;
504
+ this._assignOptionValue(this.activeOption.value);
505
+ }
487
506
  }
488
507
  }
489
508
  }
@@ -501,6 +520,7 @@ class _MatAutocompleteTriggerBase {
501
520
  // See: https://connect.microsoft.com/IE/feedback/details/885747/
502
521
  if (this._previousValue !== value) {
503
522
  this._previousValue = value;
523
+ this._pendingAutoselectedOption = null;
504
524
  this._onChange(value);
505
525
  if (this._canOpen() && this._document.activeElement === event.target) {
506
526
  this.openPanel();
@@ -517,6 +537,11 @@ class _MatAutocompleteTriggerBase {
517
537
  this._floatLabel(true);
518
538
  }
519
539
  }
540
+ _handleClick() {
541
+ if (this._canOpen() && !this.panelOpen) {
542
+ this.openPanel();
543
+ }
544
+ }
520
545
  /**
521
546
  * In "auto" mode, the label will animate down as soon as focus is lost.
522
547
  * This causes the value to jump when selecting an option with the mouse.
@@ -560,6 +585,7 @@ class _MatAutocompleteTriggerBase {
560
585
  const wasOpen = this.panelOpen;
561
586
  this._resetActiveItem();
562
587
  this.autocomplete._setVisibility();
588
+ this._changeDetectorRef.detectChanges();
563
589
  if (this.panelOpen) {
564
590
  this._overlayRef.updatePosition();
565
591
  // If the `panelOpen` state changed, we need to make sure to emit the `opened`
@@ -585,22 +611,24 @@ class _MatAutocompleteTriggerBase {
585
611
  this._overlayRef = null;
586
612
  }
587
613
  }
588
- _setTriggerValue(value) {
614
+ _assignOptionValue(value) {
589
615
  const toDisplay = this.autocomplete && this.autocomplete.displayWith
590
616
  ? this.autocomplete.displayWith(value)
591
617
  : value;
592
618
  // Simply falling back to an empty string if the display value is falsy does not work properly.
593
619
  // The display value can also be the number zero and shouldn't fall back to an empty string.
594
- const inputValue = toDisplay != null ? toDisplay : '';
620
+ this._updateNativeInputValue(toDisplay != null ? toDisplay : '');
621
+ }
622
+ _updateNativeInputValue(value) {
595
623
  // If it's used within a `MatFormField`, we should set it through the property so it can go
596
624
  // through change detection.
597
625
  if (this._formField) {
598
- this._formField._control.value = inputValue;
626
+ this._formField._control.value = value;
599
627
  }
600
628
  else {
601
- this._element.nativeElement.value = inputValue;
629
+ this._element.nativeElement.value = value;
602
630
  }
603
- this._previousValue = inputValue;
631
+ this._previousValue = value;
604
632
  }
605
633
  /**
606
634
  * This method closes the panel, and if a value is specified, also sets the associated
@@ -608,12 +636,12 @@ class _MatAutocompleteTriggerBase {
608
636
  * stemmed from the user.
609
637
  */
610
638
  _setValueAndClose(event) {
611
- const source = event && event.source;
612
- if (source) {
613
- this._clearPreviousSelectedOption(source);
614
- this._setTriggerValue(source.value);
615
- this._onChange(source.value);
616
- this.autocomplete._emitSelectEvent(source);
639
+ const toSelect = event ? event.source : this._pendingAutoselectedOption;
640
+ if (toSelect) {
641
+ this._clearPreviousSelectedOption(toSelect);
642
+ this._assignOptionValue(toSelect.value);
643
+ this._onChange(toSelect.value);
644
+ this.autocomplete._emitSelectEvent(toSelect);
617
645
  this._element.nativeElement.focus();
618
646
  }
619
647
  this.closePanel();
@@ -640,21 +668,7 @@ class _MatAutocompleteTriggerBase {
640
668
  });
641
669
  overlayRef = this._overlay.create(this._getOverlayConfig());
642
670
  this._overlayRef = overlayRef;
643
- // Use the `keydownEvents` in order to take advantage of
644
- // the overlay event targeting provided by the CDK overlay.
645
- overlayRef.keydownEvents().subscribe(event => {
646
- // Close when pressing ESCAPE or ALT + UP_ARROW, based on the a11y guidelines.
647
- // See: https://www.w3.org/TR/wai-aria-practices-1.1/#textbox-keyboard-interaction
648
- if ((event.keyCode === ESCAPE && !hasModifierKey(event)) ||
649
- (event.keyCode === UP_ARROW && hasModifierKey(event, 'altKey'))) {
650
- this._closeKeyEventStream.next();
651
- this._resetActiveItem();
652
- // We need to stop propagation, otherwise the event will eventually
653
- // reach the input itself and cause the overlay to be reopened.
654
- event.stopPropagation();
655
- event.preventDefault();
656
- }
657
- });
671
+ this._handleOverlayEvents(overlayRef);
658
672
  this._viewportSubscription = this._viewportRuler.change().subscribe(() => {
659
673
  if (this.panelOpen && overlayRef) {
660
674
  overlayRef.updateSize({ width: this._getPanelWidth() });
@@ -791,10 +805,35 @@ class _MatAutocompleteTriggerBase {
791
805
  }
792
806
  }
793
807
  }
808
+ /** Handles keyboard events coming from the overlay panel. */
809
+ _handleOverlayEvents(overlayRef) {
810
+ // Use the `keydownEvents` in order to take advantage of
811
+ // the overlay event targeting provided by the CDK overlay.
812
+ overlayRef.keydownEvents().subscribe(event => {
813
+ var _a;
814
+ // Close when pressing ESCAPE or ALT + UP_ARROW, based on the a11y guidelines.
815
+ // See: https://www.w3.org/TR/wai-aria-practices-1.1/#textbox-keyboard-interaction
816
+ if ((event.keyCode === ESCAPE && !hasModifierKey(event)) ||
817
+ (event.keyCode === UP_ARROW && hasModifierKey(event, 'altKey'))) {
818
+ // If the user had typed something in before we autoselected an option, and they decided
819
+ // to cancel the selection, restore the input value to the one they had typed in.
820
+ if (this._pendingAutoselectedOption) {
821
+ this._updateNativeInputValue((_a = this._valueBeforeAutoSelection) !== null && _a !== void 0 ? _a : '');
822
+ this._pendingAutoselectedOption = null;
823
+ }
824
+ this._closeKeyEventStream.next();
825
+ this._resetActiveItem();
826
+ // We need to stop propagation, otherwise the event will eventually
827
+ // reach the input itself and cause the overlay to be reopened.
828
+ event.stopPropagation();
829
+ event.preventDefault();
830
+ }
831
+ });
832
+ }
794
833
  }
795
- _MatAutocompleteTriggerBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: _MatAutocompleteTriggerBase, deps: [{ token: i0.ElementRef }, { token: i1$1.Overlay }, { token: i0.ViewContainerRef }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: MAT_AUTOCOMPLETE_SCROLL_STRATEGY }, { token: i2$1.Directionality, optional: true }, { token: MAT_FORM_FIELD, host: true, optional: true }, { token: DOCUMENT, optional: true }, { token: i3.ViewportRuler }, { token: MAT_AUTOCOMPLETE_DEFAULT_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
796
- _MatAutocompleteTriggerBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.0", type: _MatAutocompleteTriggerBase, inputs: { autocomplete: ["matAutocomplete", "autocomplete"], position: ["matAutocompletePosition", "position"], connectedTo: ["matAutocompleteConnectedTo", "connectedTo"], autocompleteAttribute: ["autocomplete", "autocompleteAttribute"], autocompleteDisabled: ["matAutocompleteDisabled", "autocompleteDisabled"] }, usesOnChanges: true, ngImport: i0 });
797
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: _MatAutocompleteTriggerBase, decorators: [{
834
+ _MatAutocompleteTriggerBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0-next.6", ngImport: i0, type: _MatAutocompleteTriggerBase, deps: [{ token: i0.ElementRef }, { token: i1$1.Overlay }, { token: i0.ViewContainerRef }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: MAT_AUTOCOMPLETE_SCROLL_STRATEGY }, { token: i2$1.Directionality, optional: true }, { token: MAT_FORM_FIELD, host: true, optional: true }, { token: DOCUMENT, optional: true }, { token: i3.ViewportRuler }, { token: MAT_AUTOCOMPLETE_DEFAULT_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
835
+ _MatAutocompleteTriggerBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "14.0.0-next.6", type: _MatAutocompleteTriggerBase, inputs: { autocomplete: ["matAutocomplete", "autocomplete"], position: ["matAutocompletePosition", "position"], connectedTo: ["matAutocompleteConnectedTo", "connectedTo"], autocompleteAttribute: ["autocomplete", "autocompleteAttribute"], autocompleteDisabled: ["matAutocompleteDisabled", "autocompleteDisabled"] }, usesOnChanges: true, ngImport: i0 });
836
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.6", ngImport: i0, type: _MatAutocompleteTriggerBase, decorators: [{
798
837
  type: Directive
799
838
  }], ctorParameters: function () {
800
839
  return [{ type: i0.ElementRef }, { type: i1$1.Overlay }, { type: i0.ViewContainerRef }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }, { type: undefined, decorators: [{
@@ -842,9 +881,9 @@ class MatAutocompleteTrigger extends _MatAutocompleteTriggerBase {
842
881
  this._aboveClass = 'mat-autocomplete-panel-above';
843
882
  }
844
883
  }
845
- MatAutocompleteTrigger.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: MatAutocompleteTrigger, deps: null, target: i0.ɵɵFactoryTarget.Directive });
846
- MatAutocompleteTrigger.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.0", type: MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", host: { listeners: { "focusin": "_handleFocus()", "blur": "_onTouched()", "input": "_handleInput($event)", "keydown": "_handleKeydown($event)" }, properties: { "attr.autocomplete": "autocompleteAttribute", "attr.role": "autocompleteDisabled ? null : \"combobox\"", "attr.aria-autocomplete": "autocompleteDisabled ? null : \"list\"", "attr.aria-activedescendant": "(panelOpen && activeOption) ? activeOption.id : null", "attr.aria-expanded": "autocompleteDisabled ? null : panelOpen.toString()", "attr.aria-owns": "(autocompleteDisabled || !panelOpen) ? null : autocomplete?.id", "attr.aria-haspopup": "autocompleteDisabled ? null : \"listbox\"" }, classAttribute: "mat-autocomplete-trigger" }, providers: [MAT_AUTOCOMPLETE_VALUE_ACCESSOR], exportAs: ["matAutocompleteTrigger"], usesInheritance: true, ngImport: i0 });
847
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: MatAutocompleteTrigger, decorators: [{
884
+ MatAutocompleteTrigger.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0-next.6", ngImport: i0, type: MatAutocompleteTrigger, deps: null, target: i0.ɵɵFactoryTarget.Directive });
885
+ MatAutocompleteTrigger.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "14.0.0-next.6", type: MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", host: { listeners: { "focusin": "_handleFocus()", "blur": "_onTouched()", "input": "_handleInput($event)", "keydown": "_handleKeydown($event)", "click": "_handleClick()" }, properties: { "attr.autocomplete": "autocompleteAttribute", "attr.role": "autocompleteDisabled ? null : \"combobox\"", "attr.aria-autocomplete": "autocompleteDisabled ? null : \"list\"", "attr.aria-activedescendant": "(panelOpen && activeOption) ? activeOption.id : null", "attr.aria-expanded": "autocompleteDisabled ? null : panelOpen.toString()", "attr.aria-owns": "(autocompleteDisabled || !panelOpen) ? null : autocomplete?.id", "attr.aria-haspopup": "autocompleteDisabled ? null : \"listbox\"" }, classAttribute: "mat-autocomplete-trigger" }, providers: [MAT_AUTOCOMPLETE_VALUE_ACCESSOR], exportAs: ["matAutocompleteTrigger"], usesInheritance: true, ngImport: i0 });
886
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.6", ngImport: i0, type: MatAutocompleteTrigger, decorators: [{
848
887
  type: Directive,
849
888
  args: [{
850
889
  selector: `input[matAutocomplete], textarea[matAutocomplete]`,
@@ -863,6 +902,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImpor
863
902
  '(blur)': '_onTouched()',
864
903
  '(input)': '_handleInput($event)',
865
904
  '(keydown)': '_handleKeydown($event)',
905
+ '(click)': '_handleClick()',
866
906
  },
867
907
  exportAs: 'matAutocompleteTrigger',
868
908
  providers: [MAT_AUTOCOMPLETE_VALUE_ACCESSOR],
@@ -884,9 +924,9 @@ class _MatAutocompleteOriginBase {
884
924
  this.elementRef = elementRef;
885
925
  }
886
926
  }
887
- _MatAutocompleteOriginBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: _MatAutocompleteOriginBase, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
888
- _MatAutocompleteOriginBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.0", type: _MatAutocompleteOriginBase, ngImport: i0 });
889
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: _MatAutocompleteOriginBase, decorators: [{
927
+ _MatAutocompleteOriginBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0-next.6", ngImport: i0, type: _MatAutocompleteOriginBase, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
928
+ _MatAutocompleteOriginBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "14.0.0-next.6", type: _MatAutocompleteOriginBase, ngImport: i0 });
929
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.6", ngImport: i0, type: _MatAutocompleteOriginBase, decorators: [{
890
930
  type: Directive
891
931
  }], ctorParameters: function () { return [{ type: i0.ElementRef }]; } });
892
932
  /**
@@ -895,9 +935,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImpor
895
935
  */
896
936
  class MatAutocompleteOrigin extends _MatAutocompleteOriginBase {
897
937
  }
898
- MatAutocompleteOrigin.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: MatAutocompleteOrigin, deps: null, target: i0.ɵɵFactoryTarget.Directive });
899
- MatAutocompleteOrigin.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.0", type: MatAutocompleteOrigin, selector: "[matAutocompleteOrigin]", exportAs: ["matAutocompleteOrigin"], usesInheritance: true, ngImport: i0 });
900
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: MatAutocompleteOrigin, decorators: [{
938
+ MatAutocompleteOrigin.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0-next.6", ngImport: i0, type: MatAutocompleteOrigin, deps: null, target: i0.ɵɵFactoryTarget.Directive });
939
+ MatAutocompleteOrigin.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "14.0.0-next.6", type: MatAutocompleteOrigin, selector: "[matAutocompleteOrigin]", exportAs: ["matAutocompleteOrigin"], usesInheritance: true, ngImport: i0 });
940
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.6", ngImport: i0, type: MatAutocompleteOrigin, decorators: [{
901
941
  type: Directive,
902
942
  args: [{
903
943
  selector: '[matAutocompleteOrigin]',
@@ -914,17 +954,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImpor
914
954
  */
915
955
  class MatAutocompleteModule {
916
956
  }
917
- MatAutocompleteModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: MatAutocompleteModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
918
- MatAutocompleteModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: MatAutocompleteModule, declarations: [MatAutocomplete, MatAutocompleteTrigger, MatAutocompleteOrigin], imports: [OverlayModule, MatOptionModule, MatCommonModule, CommonModule], exports: [MatAutocomplete,
957
+ MatAutocompleteModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0-next.6", ngImport: i0, type: MatAutocompleteModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
958
+ MatAutocompleteModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "14.0.0-next.6", ngImport: i0, type: MatAutocompleteModule, declarations: [MatAutocomplete, MatAutocompleteTrigger, MatAutocompleteOrigin], imports: [OverlayModule, MatOptionModule, MatCommonModule, CommonModule], exports: [MatAutocomplete,
919
959
  MatAutocompleteTrigger,
920
960
  MatAutocompleteOrigin,
921
961
  CdkScrollableModule,
922
962
  MatOptionModule,
923
963
  MatCommonModule] });
924
- MatAutocompleteModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: MatAutocompleteModule, providers: [MAT_AUTOCOMPLETE_SCROLL_STRATEGY_FACTORY_PROVIDER], imports: [[OverlayModule, MatOptionModule, MatCommonModule, CommonModule], CdkScrollableModule,
964
+ MatAutocompleteModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.0-next.6", ngImport: i0, type: MatAutocompleteModule, providers: [MAT_AUTOCOMPLETE_SCROLL_STRATEGY_FACTORY_PROVIDER], imports: [[OverlayModule, MatOptionModule, MatCommonModule, CommonModule], CdkScrollableModule,
925
965
  MatOptionModule,
926
966
  MatCommonModule] });
927
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: MatAutocompleteModule, decorators: [{
967
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.6", ngImport: i0, type: MatAutocompleteModule, decorators: [{
928
968
  type: NgModule,
929
969
  args: [{
930
970
  imports: [OverlayModule, MatOptionModule, MatCommonModule, CommonModule],