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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (338) hide show
  1. package/autocomplete/autocomplete-trigger.d.ts +14 -3
  2. package/autocomplete/autocomplete.d.ts +7 -1
  3. package/button-toggle/_button-toggle-theme.scss +10 -0
  4. package/checkbox/_checkbox-theme.scss +7 -1
  5. package/chips/chip-list.d.ts +3 -1
  6. package/chips/chip.d.ts +3 -1
  7. package/core/theming/_theming.scss +9 -0
  8. package/esm2020/autocomplete/autocomplete-module.mjs +5 -5
  9. package/esm2020/autocomplete/autocomplete-origin.mjs +7 -7
  10. package/esm2020/autocomplete/autocomplete-trigger.mjs +66 -37
  11. package/esm2020/autocomplete/autocomplete.mjs +18 -8
  12. package/esm2020/badge/badge-module.mjs +5 -5
  13. package/esm2020/badge/badge.mjs +4 -4
  14. package/esm2020/bottom-sheet/bottom-sheet-container.mjs +4 -4
  15. package/esm2020/bottom-sheet/bottom-sheet-module.mjs +5 -5
  16. package/esm2020/bottom-sheet/bottom-sheet.mjs +4 -4
  17. package/esm2020/button/button-module.mjs +5 -5
  18. package/esm2020/button/button.mjs +7 -7
  19. package/esm2020/button-toggle/button-toggle-module.mjs +5 -5
  20. package/esm2020/button-toggle/button-toggle.mjs +7 -7
  21. package/esm2020/card/card-module.mjs +5 -5
  22. package/esm2020/card/card.mjs +43 -43
  23. package/esm2020/checkbox/checkbox-module.mjs +9 -9
  24. package/esm2020/checkbox/checkbox-required-validator.mjs +4 -4
  25. package/esm2020/checkbox/checkbox.mjs +4 -4
  26. package/esm2020/chips/chip-input.mjs +4 -4
  27. package/esm2020/chips/chip-list.mjs +13 -5
  28. package/esm2020/chips/chip.mjs +18 -14
  29. package/esm2020/chips/chips-module.mjs +5 -5
  30. package/esm2020/core/common-behaviors/common-module.mjs +5 -5
  31. package/esm2020/core/datetime/index.mjs +9 -9
  32. package/esm2020/core/datetime/native-date-adapter.mjs +4 -4
  33. package/esm2020/core/error/error-options.mjs +7 -7
  34. package/esm2020/core/line/line.mjs +8 -8
  35. package/esm2020/core/option/index.mjs +5 -5
  36. package/esm2020/core/option/optgroup.mjs +7 -7
  37. package/esm2020/core/option/option.mjs +7 -7
  38. package/esm2020/core/ripple/index.mjs +5 -5
  39. package/esm2020/core/ripple/ripple-renderer.mjs +17 -11
  40. package/esm2020/core/ripple/ripple.mjs +4 -4
  41. package/esm2020/core/selection/pseudo-checkbox/pseudo-checkbox-module.mjs +5 -5
  42. package/esm2020/core/selection/pseudo-checkbox/pseudo-checkbox.mjs +4 -4
  43. package/esm2020/core/version.mjs +1 -1
  44. package/esm2020/datepicker/calendar-body.mjs +4 -4
  45. package/esm2020/datepicker/calendar.mjs +13 -13
  46. package/esm2020/datepicker/date-range-input-parts.mjs +10 -10
  47. package/esm2020/datepicker/date-range-input.mjs +4 -4
  48. package/esm2020/datepicker/date-range-picker.mjs +4 -4
  49. package/esm2020/datepicker/date-range-selection-strategy.mjs +4 -4
  50. package/esm2020/datepicker/date-selection-model.mjs +10 -10
  51. package/esm2020/datepicker/datepicker-actions.mjs +10 -10
  52. package/esm2020/datepicker/datepicker-base.mjs +7 -7
  53. package/esm2020/datepicker/datepicker-input-base.mjs +12 -7
  54. package/esm2020/datepicker/datepicker-input.mjs +4 -4
  55. package/esm2020/datepicker/datepicker-intl.mjs +4 -4
  56. package/esm2020/datepicker/datepicker-module.mjs +5 -5
  57. package/esm2020/datepicker/datepicker-toggle.mjs +7 -7
  58. package/esm2020/datepicker/datepicker.mjs +4 -4
  59. package/esm2020/datepicker/month-view.mjs +4 -4
  60. package/esm2020/datepicker/multi-year-view.mjs +4 -4
  61. package/esm2020/datepicker/year-view.mjs +4 -4
  62. package/esm2020/dialog/dialog-container.mjs +7 -7
  63. package/esm2020/dialog/dialog-content-directives.mjs +13 -13
  64. package/esm2020/dialog/dialog-module.mjs +5 -5
  65. package/esm2020/dialog/dialog.mjs +8 -8
  66. package/esm2020/divider/divider-module.mjs +5 -5
  67. package/esm2020/divider/divider.mjs +4 -4
  68. package/esm2020/expansion/accordion.mjs +4 -4
  69. package/esm2020/expansion/expansion-module.mjs +5 -5
  70. package/esm2020/expansion/expansion-panel-base.mjs +14 -0
  71. package/esm2020/expansion/expansion-panel-content.mjs +14 -7
  72. package/esm2020/expansion/expansion-panel-header.mjs +10 -10
  73. package/esm2020/expansion/expansion-panel.mjs +11 -8
  74. package/esm2020/expansion/public-api.mjs +2 -1
  75. package/esm2020/form-field/error.mjs +4 -4
  76. package/esm2020/form-field/form-field-control.mjs +4 -4
  77. package/esm2020/form-field/form-field-module.mjs +5 -5
  78. package/esm2020/form-field/form-field.mjs +4 -4
  79. package/esm2020/form-field/hint.mjs +4 -4
  80. package/esm2020/form-field/label.mjs +4 -4
  81. package/esm2020/form-field/placeholder.mjs +4 -4
  82. package/esm2020/form-field/prefix.mjs +4 -4
  83. package/esm2020/form-field/suffix.mjs +4 -4
  84. package/esm2020/grid-list/grid-list-module.mjs +5 -5
  85. package/esm2020/grid-list/grid-list.mjs +4 -4
  86. package/esm2020/grid-list/grid-tile.mjs +16 -16
  87. package/esm2020/icon/icon-module.mjs +5 -5
  88. package/esm2020/icon/icon-registry.mjs +12 -14
  89. package/esm2020/icon/icon.mjs +30 -20
  90. package/esm2020/icon/testing/fake-icon-registry.mjs +9 -9
  91. package/esm2020/input/input-module.mjs +5 -5
  92. package/esm2020/input/input.mjs +4 -4
  93. package/esm2020/list/list-module.mjs +5 -5
  94. package/esm2020/list/list.mjs +19 -19
  95. package/esm2020/list/selection-list.mjs +7 -7
  96. package/esm2020/menu/menu-content.mjs +7 -7
  97. package/esm2020/menu/menu-errors.mjs +1 -12
  98. package/esm2020/menu/menu-item.mjs +8 -4
  99. package/esm2020/menu/menu-module.mjs +5 -5
  100. package/esm2020/menu/menu-trigger.mjs +62 -64
  101. package/esm2020/menu/menu.mjs +24 -8
  102. package/esm2020/paginator/paginator-intl.mjs +4 -4
  103. package/esm2020/paginator/paginator-module.mjs +5 -5
  104. package/esm2020/paginator/paginator.mjs +12 -8
  105. package/esm2020/progress-bar/progress-bar-module.mjs +5 -5
  106. package/esm2020/progress-bar/progress-bar.mjs +4 -4
  107. package/esm2020/progress-spinner/progress-spinner-module.mjs +8 -8
  108. package/esm2020/progress-spinner/progress-spinner.mjs +10 -50
  109. package/esm2020/progress-spinner/public-api.mjs +10 -2
  110. package/esm2020/radio/radio-module.mjs +5 -5
  111. package/esm2020/radio/radio.mjs +13 -13
  112. package/esm2020/select/select-module.mjs +5 -5
  113. package/esm2020/select/select.mjs +10 -10
  114. package/esm2020/sidenav/drawer.mjs +10 -10
  115. package/esm2020/sidenav/sidenav-module.mjs +5 -5
  116. package/esm2020/sidenav/sidenav.mjs +10 -10
  117. package/esm2020/slide-toggle/slide-toggle-module.mjs +9 -9
  118. package/esm2020/slide-toggle/slide-toggle-required-validator.mjs +4 -4
  119. package/esm2020/slide-toggle/slide-toggle.mjs +4 -4
  120. package/esm2020/slider/slider-module.mjs +5 -5
  121. package/esm2020/slider/slider.mjs +4 -4
  122. package/esm2020/snack-bar/simple-snack-bar.mjs +4 -4
  123. package/esm2020/snack-bar/snack-bar-container.mjs +4 -4
  124. package/esm2020/snack-bar/snack-bar-module.mjs +5 -5
  125. package/esm2020/snack-bar/snack-bar.mjs +7 -7
  126. package/esm2020/sort/sort-header-intl.mjs +4 -4
  127. package/esm2020/sort/sort-header.mjs +6 -6
  128. package/esm2020/sort/sort-module.mjs +5 -5
  129. package/esm2020/sort/sort.mjs +4 -4
  130. package/esm2020/stepper/step-content.mjs +4 -4
  131. package/esm2020/stepper/step-header.mjs +4 -4
  132. package/esm2020/stepper/step-label.mjs +4 -4
  133. package/esm2020/stepper/stepper-button.mjs +7 -7
  134. package/esm2020/stepper/stepper-icon.mjs +4 -4
  135. package/esm2020/stepper/stepper-intl.mjs +4 -4
  136. package/esm2020/stepper/stepper-module.mjs +5 -5
  137. package/esm2020/stepper/stepper.mjs +7 -7
  138. package/esm2020/table/cell.mjs +22 -22
  139. package/esm2020/table/row.mjs +22 -22
  140. package/esm2020/table/table-module.mjs +5 -5
  141. package/esm2020/table/table.mjs +7 -7
  142. package/esm2020/table/text-column.mjs +4 -4
  143. package/esm2020/tabs/ink-bar.mjs +4 -4
  144. package/esm2020/tabs/paginated-tab-header.mjs +4 -4
  145. package/esm2020/tabs/tab-body.mjs +10 -10
  146. package/esm2020/tabs/tab-content.mjs +4 -4
  147. package/esm2020/tabs/tab-group.mjs +7 -7
  148. package/esm2020/tabs/tab-header.mjs +7 -7
  149. package/esm2020/tabs/tab-label-wrapper.mjs +4 -4
  150. package/esm2020/tabs/tab-label.mjs +4 -4
  151. package/esm2020/tabs/tab-nav-bar/tab-nav-bar.mjs +16 -16
  152. package/esm2020/tabs/tab.mjs +4 -4
  153. package/esm2020/tabs/tabs-module.mjs +5 -5
  154. package/esm2020/toolbar/toolbar-module.mjs +5 -5
  155. package/esm2020/toolbar/toolbar.mjs +7 -7
  156. package/esm2020/tooltip/tooltip-module.mjs +5 -5
  157. package/esm2020/tooltip/tooltip.mjs +41 -18
  158. package/esm2020/tree/node.mjs +10 -10
  159. package/esm2020/tree/outlet.mjs +4 -4
  160. package/esm2020/tree/padding.mjs +4 -4
  161. package/esm2020/tree/toggle.mjs +4 -4
  162. package/esm2020/tree/tree-module.mjs +5 -5
  163. package/esm2020/tree/tree.mjs +4 -4
  164. package/expansion/expansion-panel-base.d.ts +22 -0
  165. package/expansion/expansion-panel-content.d.ts +4 -2
  166. package/expansion/public-api.d.ts +1 -0
  167. package/fesm2015/autocomplete.mjs +94 -54
  168. package/fesm2015/autocomplete.mjs.map +1 -1
  169. package/fesm2015/badge.mjs +7 -7
  170. package/fesm2015/badge.mjs.map +1 -1
  171. package/fesm2015/bottom-sheet.mjs +10 -10
  172. package/fesm2015/bottom-sheet.mjs.map +1 -1
  173. package/fesm2015/button-toggle.mjs +10 -10
  174. package/fesm2015/button-toggle.mjs.map +1 -1
  175. package/fesm2015/button.mjs +10 -10
  176. package/fesm2015/button.mjs.map +1 -1
  177. package/fesm2015/card.mjs +46 -46
  178. package/fesm2015/card.mjs.map +1 -1
  179. package/fesm2015/checkbox.mjs +14 -14
  180. package/fesm2015/checkbox.mjs.map +1 -1
  181. package/fesm2015/chips.mjs +36 -24
  182. package/fesm2015/chips.mjs.map +1 -1
  183. package/fesm2015/core.mjs +75 -69
  184. package/fesm2015/core.mjs.map +1 -1
  185. package/fesm2015/datepicker.mjs +94 -89
  186. package/fesm2015/datepicker.mjs.map +1 -1
  187. package/fesm2015/dialog.mjs +29 -29
  188. package/fesm2015/dialog.mjs.map +1 -1
  189. package/fesm2015/divider.mjs +7 -7
  190. package/fesm2015/divider.mjs.map +1 -1
  191. package/fesm2015/expansion.mjs +53 -30
  192. package/fesm2015/expansion.mjs.map +1 -1
  193. package/fesm2015/form-field.mjs +28 -28
  194. package/fesm2015/form-field.mjs.map +1 -1
  195. package/fesm2015/grid-list.mjs +22 -22
  196. package/fesm2015/grid-list.mjs.map +1 -1
  197. package/fesm2015/icon/testing.mjs +8 -8
  198. package/fesm2015/icon/testing.mjs.map +1 -1
  199. package/fesm2015/icon.mjs +44 -36
  200. package/fesm2015/icon.mjs.map +1 -1
  201. package/fesm2015/input.mjs +7 -7
  202. package/fesm2015/input.mjs.map +1 -1
  203. package/fesm2015/list.mjs +28 -28
  204. package/fesm2015/list.mjs.map +1 -1
  205. package/fesm2015/menu.mjs +103 -93
  206. package/fesm2015/menu.mjs.map +1 -1
  207. package/fesm2015/paginator.mjs +18 -14
  208. package/fesm2015/paginator.mjs.map +1 -1
  209. package/fesm2015/progress-bar.mjs +7 -7
  210. package/fesm2015/progress-bar.mjs.map +1 -1
  211. package/fesm2015/progress-spinner.mjs +27 -62
  212. package/fesm2015/progress-spinner.mjs.map +1 -1
  213. package/fesm2015/radio.mjs +16 -16
  214. package/fesm2015/radio.mjs.map +1 -1
  215. package/fesm2015/select.mjs +13 -13
  216. package/fesm2015/select.mjs.map +1 -1
  217. package/fesm2015/sidenav.mjs +22 -22
  218. package/fesm2015/sidenav.mjs.map +1 -1
  219. package/fesm2015/slide-toggle.mjs +14 -14
  220. package/fesm2015/slide-toggle.mjs.map +1 -1
  221. package/fesm2015/slider.mjs +7 -7
  222. package/fesm2015/slider.mjs.map +1 -1
  223. package/fesm2015/snack-bar.mjs +16 -16
  224. package/fesm2015/snack-bar.mjs.map +1 -1
  225. package/fesm2015/sort.mjs +15 -15
  226. package/fesm2015/sort.mjs.map +1 -1
  227. package/fesm2015/stepper.mjs +31 -31
  228. package/fesm2015/stepper.mjs.map +1 -1
  229. package/fesm2015/table.mjs +55 -55
  230. package/fesm2015/table.mjs.map +1 -1
  231. package/fesm2015/tabs.mjs +58 -58
  232. package/fesm2015/tabs.mjs.map +1 -1
  233. package/fesm2015/toolbar.mjs +10 -10
  234. package/fesm2015/toolbar.mjs.map +1 -1
  235. package/fesm2015/tooltip.mjs +46 -21
  236. package/fesm2015/tooltip.mjs.map +1 -1
  237. package/fesm2015/tree.mjs +25 -25
  238. package/fesm2015/tree.mjs.map +1 -1
  239. package/fesm2020/autocomplete.mjs +93 -54
  240. package/fesm2020/autocomplete.mjs.map +1 -1
  241. package/fesm2020/badge.mjs +7 -7
  242. package/fesm2020/badge.mjs.map +1 -1
  243. package/fesm2020/bottom-sheet.mjs +10 -10
  244. package/fesm2020/bottom-sheet.mjs.map +1 -1
  245. package/fesm2020/button-toggle.mjs +10 -10
  246. package/fesm2020/button-toggle.mjs.map +1 -1
  247. package/fesm2020/button.mjs +10 -10
  248. package/fesm2020/button.mjs.map +1 -1
  249. package/fesm2020/card.mjs +46 -46
  250. package/fesm2020/card.mjs.map +1 -1
  251. package/fesm2020/checkbox.mjs +14 -14
  252. package/fesm2020/checkbox.mjs.map +1 -1
  253. package/fesm2020/chips.mjs +36 -24
  254. package/fesm2020/chips.mjs.map +1 -1
  255. package/fesm2020/core.mjs +75 -69
  256. package/fesm2020/core.mjs.map +1 -1
  257. package/fesm2020/datepicker.mjs +94 -89
  258. package/fesm2020/datepicker.mjs.map +1 -1
  259. package/fesm2020/dialog.mjs +29 -29
  260. package/fesm2020/dialog.mjs.map +1 -1
  261. package/fesm2020/divider.mjs +7 -7
  262. package/fesm2020/divider.mjs.map +1 -1
  263. package/fesm2020/expansion.mjs +51 -30
  264. package/fesm2020/expansion.mjs.map +1 -1
  265. package/fesm2020/form-field.mjs +28 -28
  266. package/fesm2020/form-field.mjs.map +1 -1
  267. package/fesm2020/grid-list.mjs +22 -22
  268. package/fesm2020/grid-list.mjs.map +1 -1
  269. package/fesm2020/icon/testing.mjs +8 -8
  270. package/fesm2020/icon/testing.mjs.map +1 -1
  271. package/fesm2020/icon.mjs +44 -36
  272. package/fesm2020/icon.mjs.map +1 -1
  273. package/fesm2020/input.mjs +7 -7
  274. package/fesm2020/input.mjs.map +1 -1
  275. package/fesm2020/list.mjs +28 -28
  276. package/fesm2020/list.mjs.map +1 -1
  277. package/fesm2020/menu.mjs +100 -93
  278. package/fesm2020/menu.mjs.map +1 -1
  279. package/fesm2020/paginator.mjs +18 -14
  280. package/fesm2020/paginator.mjs.map +1 -1
  281. package/fesm2020/progress-bar.mjs +7 -7
  282. package/fesm2020/progress-bar.mjs.map +1 -1
  283. package/fesm2020/progress-spinner.mjs +27 -60
  284. package/fesm2020/progress-spinner.mjs.map +1 -1
  285. package/fesm2020/radio.mjs +16 -16
  286. package/fesm2020/radio.mjs.map +1 -1
  287. package/fesm2020/select.mjs +13 -13
  288. package/fesm2020/select.mjs.map +1 -1
  289. package/fesm2020/sidenav.mjs +22 -22
  290. package/fesm2020/sidenav.mjs.map +1 -1
  291. package/fesm2020/slide-toggle.mjs +14 -14
  292. package/fesm2020/slide-toggle.mjs.map +1 -1
  293. package/fesm2020/slider.mjs +7 -7
  294. package/fesm2020/slider.mjs.map +1 -1
  295. package/fesm2020/snack-bar.mjs +16 -16
  296. package/fesm2020/snack-bar.mjs.map +1 -1
  297. package/fesm2020/sort.mjs +15 -15
  298. package/fesm2020/sort.mjs.map +1 -1
  299. package/fesm2020/stepper.mjs +31 -31
  300. package/fesm2020/stepper.mjs.map +1 -1
  301. package/fesm2020/table.mjs +55 -55
  302. package/fesm2020/table.mjs.map +1 -1
  303. package/fesm2020/tabs.mjs +58 -58
  304. package/fesm2020/tabs.mjs.map +1 -1
  305. package/fesm2020/toolbar.mjs +10 -10
  306. package/fesm2020/toolbar.mjs.map +1 -1
  307. package/fesm2020/tooltip.mjs +44 -21
  308. package/fesm2020/tooltip.mjs.map +1 -1
  309. package/fesm2020/tree.mjs +25 -25
  310. package/fesm2020/tree.mjs.map +1 -1
  311. package/icon/icon-registry.d.ts +7 -9
  312. package/icon/icon.d.ts +12 -3
  313. package/icon/testing/fake-icon-registry.d.ts +1 -1
  314. package/menu/menu-errors.d.ts +0 -5
  315. package/menu/menu-item.d.ts +3 -2
  316. package/menu/menu-trigger.d.ts +14 -10
  317. package/package.json +7 -7
  318. package/paginator/paginator.d.ts +12 -1
  319. package/prebuilt-themes/deeppurple-amber.css +1 -1
  320. package/prebuilt-themes/indigo-pink.css +1 -1
  321. package/prebuilt-themes/pink-bluegrey.css +1 -1
  322. package/prebuilt-themes/purple-green.css +1 -1
  323. package/progress-spinner/progress-spinner-module.d.ts +1 -1
  324. package/progress-spinner/progress-spinner.d.ts +1 -18
  325. package/progress-spinner/public-api.d.ts +8 -1
  326. package/schematics/migration.json +5 -0
  327. package/schematics/ng-add/index.js +2 -2
  328. package/schematics/ng-add/index.mjs +2 -2
  329. package/schematics/ng-add/schema.d.ts +2 -2
  330. package/schematics/ng-add/schema.js +1 -1
  331. package/schematics/ng-add/schema.json +12 -4
  332. package/schematics/ng-add/schema.mjs +1 -1
  333. package/schematics/ng-add/setup-project.js +7 -5
  334. package/schematics/ng-add/setup-project.mjs +7 -5
  335. package/schematics/ng-update/index.d.ts +2 -0
  336. package/schematics/ng-update/index.js +7 -2
  337. package/schematics/ng-update/index.mjs +7 -2
  338. package/tooltip/tooltip.d.ts +13 -1
@@ -13,7 +13,7 @@ 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
15
  import * as i2$1 from '@angular/cdk/bidi';
16
- import { ESCAPE, hasModifierKey, ENTER, UP_ARROW, DOWN_ARROW, TAB } from '@angular/cdk/keycodes';
16
+ import { hasModifierKey, ESCAPE, ENTER, UP_ARROW, DOWN_ARROW, TAB } from '@angular/cdk/keycodes';
17
17
  import { TemplatePortal } from '@angular/cdk/portal';
18
18
  import { NG_VALUE_ACCESSOR } from '@angular/forms';
19
19
  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?.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.4", 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.4", 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.4", ngImport: i0, type: _MatAutocompleteBase, decorators: [{
174
182
  type: Directive
175
183
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: undefined, decorators: [{
176
184
  type: Inject,
@@ -191,6 +199,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImpor
191
199
  type: Input
192
200
  }], autoActiveFirstOption: [{
193
201
  type: Input
202
+ }], autoSelectActiveOption: [{
203
+ type: Input
194
204
  }], panelWidth: [{
195
205
  type: Input
196
206
  }], optionSelected: [{
@@ -212,9 +222,9 @@ class MatAutocomplete extends _MatAutocompleteBase {
212
222
  this._hiddenClass = 'mat-autocomplete-hidden';
213
223
  }
214
224
  }
215
- MatAutocomplete.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: MatAutocomplete, deps: null, target: i0.ɵɵFactoryTarget.Component });
216
- 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 });
217
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: MatAutocomplete, decorators: [{
225
+ MatAutocomplete.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0-next.4", ngImport: i0, type: MatAutocomplete, deps: null, target: i0.ɵɵFactoryTarget.Component });
226
+ MatAutocomplete.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "14.0.0-next.4", 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 });
227
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.4", ngImport: i0, type: MatAutocomplete, decorators: [{
218
228
  type: Component,
219
229
  args: [{ selector: 'mat-autocomplete', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: 'matAutocomplete', inputs: ['disableRipple'], host: {
220
230
  'class': 'mat-autocomplete',
@@ -242,9 +252,9 @@ class _MatAutocompleteOriginBase {
242
252
  this.elementRef = elementRef;
243
253
  }
244
254
  }
245
- _MatAutocompleteOriginBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: _MatAutocompleteOriginBase, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
246
- _MatAutocompleteOriginBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.0", type: _MatAutocompleteOriginBase, ngImport: i0 });
247
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: _MatAutocompleteOriginBase, decorators: [{
255
+ _MatAutocompleteOriginBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0-next.4", ngImport: i0, type: _MatAutocompleteOriginBase, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
256
+ _MatAutocompleteOriginBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "14.0.0-next.4", type: _MatAutocompleteOriginBase, ngImport: i0 });
257
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.4", ngImport: i0, type: _MatAutocompleteOriginBase, decorators: [{
248
258
  type: Directive
249
259
  }], ctorParameters: function () { return [{ type: i0.ElementRef }]; } });
250
260
  /**
@@ -253,9 +263,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImpor
253
263
  */
254
264
  class MatAutocompleteOrigin extends _MatAutocompleteOriginBase {
255
265
  }
256
- MatAutocompleteOrigin.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: MatAutocompleteOrigin, deps: null, target: i0.ɵɵFactoryTarget.Directive });
257
- MatAutocompleteOrigin.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.0", type: MatAutocompleteOrigin, selector: "[matAutocompleteOrigin]", exportAs: ["matAutocompleteOrigin"], usesInheritance: true, ngImport: i0 });
258
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: MatAutocompleteOrigin, decorators: [{
266
+ MatAutocompleteOrigin.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0-next.4", ngImport: i0, type: MatAutocompleteOrigin, deps: null, target: i0.ɵɵFactoryTarget.Directive });
267
+ MatAutocompleteOrigin.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "14.0.0-next.4", type: MatAutocompleteOrigin, selector: "[matAutocompleteOrigin]", exportAs: ["matAutocompleteOrigin"], usesInheritance: true, ngImport: i0 });
268
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.4", ngImport: i0, type: MatAutocompleteOrigin, decorators: [{
259
269
  type: Directive,
260
270
  args: [{
261
271
  selector: '[matAutocompleteOrigin]',
@@ -422,6 +432,7 @@ class _MatAutocompleteTriggerBase {
422
432
  this.autocomplete.closed.emit();
423
433
  }
424
434
  this.autocomplete._isOpen = this._overlayAttached = false;
435
+ this._pendingAutoselectedOption = null;
425
436
  if (this._overlayRef && this._overlayRef.hasAttached()) {
426
437
  this._overlayRef.detach();
427
438
  this._closingActionsSubscription.unsubscribe();
@@ -486,7 +497,7 @@ class _MatAutocompleteTriggerBase {
486
497
  }
487
498
  // Implemented as part of ControlValueAccessor.
488
499
  writeValue(value) {
489
- Promise.resolve().then(() => this._setTriggerValue(value));
500
+ Promise.resolve(null).then(() => this._assignOptionValue(value));
490
501
  }
491
502
  // Implemented as part of ControlValueAccessor.
492
503
  registerOnChange(fn) {
@@ -502,14 +513,15 @@ class _MatAutocompleteTriggerBase {
502
513
  }
503
514
  _handleKeydown(event) {
504
515
  const keyCode = event.keyCode;
516
+ const hasModifier = hasModifierKey(event);
505
517
  // Prevent the default action on all escape key presses. This is here primarily to bring IE
506
518
  // in line with other browsers. By default, pressing escape on IE will cause it to revert
507
519
  // the input value to the one that it had on focus, however it won't dispatch any events
508
520
  // which means that the model value will be out of sync with the view.
509
- if (keyCode === ESCAPE && !hasModifierKey(event)) {
521
+ if (keyCode === ESCAPE && !hasModifier) {
510
522
  event.preventDefault();
511
523
  }
512
- if (this.activeOption && keyCode === ENTER && this.panelOpen && !hasModifierKey(event)) {
524
+ if (this.activeOption && keyCode === ENTER && this.panelOpen && !hasModifier) {
513
525
  this.activeOption._selectViaInteraction();
514
526
  this._resetActiveItem();
515
527
  event.preventDefault();
@@ -517,7 +529,7 @@ class _MatAutocompleteTriggerBase {
517
529
  else if (this.autocomplete) {
518
530
  const prevActiveItem = this.autocomplete._keyManager.activeItem;
519
531
  const isArrowKey = keyCode === UP_ARROW || keyCode === DOWN_ARROW;
520
- if (this.panelOpen || keyCode === TAB) {
532
+ if (keyCode === TAB || (isArrowKey && !hasModifier && this.panelOpen)) {
521
533
  this.autocomplete._keyManager.onKeydown(event);
522
534
  }
523
535
  else if (isArrowKey && this._canOpen()) {
@@ -525,6 +537,13 @@ class _MatAutocompleteTriggerBase {
525
537
  }
526
538
  if (isArrowKey || this.autocomplete._keyManager.activeItem !== prevActiveItem) {
527
539
  this._scrollToOption(this.autocomplete._keyManager.activeItemIndex || 0);
540
+ if (this.autocomplete.autoSelectActiveOption && this.activeOption) {
541
+ if (!this._pendingAutoselectedOption) {
542
+ this._valueBeforeAutoSelection = this._element.nativeElement.value;
543
+ }
544
+ this._pendingAutoselectedOption = this.activeOption;
545
+ this._assignOptionValue(this.activeOption.value);
546
+ }
528
547
  }
529
548
  }
530
549
  }
@@ -542,6 +561,7 @@ class _MatAutocompleteTriggerBase {
542
561
  // See: https://connect.microsoft.com/IE/feedback/details/885747/
543
562
  if (this._previousValue !== value) {
544
563
  this._previousValue = value;
564
+ this._pendingAutoselectedOption = null;
545
565
  this._onChange(value);
546
566
  if (this._canOpen() && this._document.activeElement === event.target) {
547
567
  this.openPanel();
@@ -558,6 +578,11 @@ class _MatAutocompleteTriggerBase {
558
578
  this._floatLabel(true);
559
579
  }
560
580
  }
581
+ _handleClick() {
582
+ if (this._canOpen() && !this.panelOpen) {
583
+ this.openPanel();
584
+ }
585
+ }
561
586
  /**
562
587
  * In "auto" mode, the label will animate down as soon as focus is lost.
563
588
  * This causes the value to jump when selecting an option with the mouse.
@@ -601,6 +626,7 @@ class _MatAutocompleteTriggerBase {
601
626
  const wasOpen = this.panelOpen;
602
627
  this._resetActiveItem();
603
628
  this.autocomplete._setVisibility();
629
+ this._changeDetectorRef.detectChanges();
604
630
  if (this.panelOpen) {
605
631
  this._overlayRef.updatePosition();
606
632
  // If the `panelOpen` state changed, we need to make sure to emit the `opened`
@@ -626,22 +652,24 @@ class _MatAutocompleteTriggerBase {
626
652
  this._overlayRef = null;
627
653
  }
628
654
  }
629
- _setTriggerValue(value) {
655
+ _assignOptionValue(value) {
630
656
  const toDisplay = this.autocomplete && this.autocomplete.displayWith
631
657
  ? this.autocomplete.displayWith(value)
632
658
  : value;
633
659
  // Simply falling back to an empty string if the display value is falsy does not work properly.
634
660
  // The display value can also be the number zero and shouldn't fall back to an empty string.
635
- const inputValue = toDisplay != null ? toDisplay : '';
661
+ this._updateNativeInputValue(toDisplay != null ? toDisplay : '');
662
+ }
663
+ _updateNativeInputValue(value) {
636
664
  // If it's used within a `MatFormField`, we should set it through the property so it can go
637
665
  // through change detection.
638
666
  if (this._formField) {
639
- this._formField._control.value = inputValue;
667
+ this._formField._control.value = value;
640
668
  }
641
669
  else {
642
- this._element.nativeElement.value = inputValue;
670
+ this._element.nativeElement.value = value;
643
671
  }
644
- this._previousValue = inputValue;
672
+ this._previousValue = value;
645
673
  }
646
674
  /**
647
675
  * This method closes the panel, and if a value is specified, also sets the associated
@@ -649,12 +677,12 @@ class _MatAutocompleteTriggerBase {
649
677
  * stemmed from the user.
650
678
  */
651
679
  _setValueAndClose(event) {
652
- const source = event && event.source;
653
- if (source) {
654
- this._clearPreviousSelectedOption(source);
655
- this._setTriggerValue(source.value);
656
- this._onChange(source.value);
657
- this.autocomplete._emitSelectEvent(source);
680
+ const toSelect = event ? event.source : this._pendingAutoselectedOption;
681
+ if (toSelect) {
682
+ this._clearPreviousSelectedOption(toSelect);
683
+ this._assignOptionValue(toSelect.value);
684
+ this._onChange(toSelect.value);
685
+ this.autocomplete._emitSelectEvent(toSelect);
658
686
  this._element.nativeElement.focus();
659
687
  }
660
688
  this.closePanel();
@@ -680,21 +708,7 @@ class _MatAutocompleteTriggerBase {
680
708
  });
681
709
  overlayRef = this._overlay.create(this._getOverlayConfig());
682
710
  this._overlayRef = overlayRef;
683
- // Use the `keydownEvents` in order to take advantage of
684
- // the overlay event targeting provided by the CDK overlay.
685
- overlayRef.keydownEvents().subscribe(event => {
686
- // Close when pressing ESCAPE or ALT + UP_ARROW, based on the a11y guidelines.
687
- // See: https://www.w3.org/TR/wai-aria-practices-1.1/#textbox-keyboard-interaction
688
- if ((event.keyCode === ESCAPE && !hasModifierKey(event)) ||
689
- (event.keyCode === UP_ARROW && hasModifierKey(event, 'altKey'))) {
690
- this._closeKeyEventStream.next();
691
- this._resetActiveItem();
692
- // We need to stop propagation, otherwise the event will eventually
693
- // reach the input itself and cause the overlay to be reopened.
694
- event.stopPropagation();
695
- event.preventDefault();
696
- }
697
- });
711
+ this._handleOverlayEvents(overlayRef);
698
712
  this._viewportSubscription = this._viewportRuler.change().subscribe(() => {
699
713
  if (this.panelOpen && overlayRef) {
700
714
  overlayRef.updateSize({ width: this._getPanelWidth() });
@@ -829,10 +843,34 @@ class _MatAutocompleteTriggerBase {
829
843
  }
830
844
  }
831
845
  }
846
+ /** Handles keyboard events coming from the overlay panel. */
847
+ _handleOverlayEvents(overlayRef) {
848
+ // Use the `keydownEvents` in order to take advantage of
849
+ // the overlay event targeting provided by the CDK overlay.
850
+ overlayRef.keydownEvents().subscribe(event => {
851
+ // Close when pressing ESCAPE or ALT + UP_ARROW, based on the a11y guidelines.
852
+ // See: https://www.w3.org/TR/wai-aria-practices-1.1/#textbox-keyboard-interaction
853
+ if ((event.keyCode === ESCAPE && !hasModifierKey(event)) ||
854
+ (event.keyCode === UP_ARROW && hasModifierKey(event, 'altKey'))) {
855
+ // If the user had typed something in before we autoselected an option, and they decided
856
+ // to cancel the selection, restore the input value to the one they had typed in.
857
+ if (this._pendingAutoselectedOption) {
858
+ this._updateNativeInputValue(this._valueBeforeAutoSelection ?? '');
859
+ this._pendingAutoselectedOption = null;
860
+ }
861
+ this._closeKeyEventStream.next();
862
+ this._resetActiveItem();
863
+ // We need to stop propagation, otherwise the event will eventually
864
+ // reach the input itself and cause the overlay to be reopened.
865
+ event.stopPropagation();
866
+ event.preventDefault();
867
+ }
868
+ });
869
+ }
832
870
  }
833
- _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 });
834
- _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 });
835
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: _MatAutocompleteTriggerBase, decorators: [{
871
+ _MatAutocompleteTriggerBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0-next.4", 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 });
872
+ _MatAutocompleteTriggerBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "14.0.0-next.4", type: _MatAutocompleteTriggerBase, inputs: { autocomplete: ["matAutocomplete", "autocomplete"], position: ["matAutocompletePosition", "position"], connectedTo: ["matAutocompleteConnectedTo", "connectedTo"], autocompleteAttribute: ["autocomplete", "autocompleteAttribute"], autocompleteDisabled: ["matAutocompleteDisabled", "autocompleteDisabled"] }, usesOnChanges: true, ngImport: i0 });
873
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.4", ngImport: i0, type: _MatAutocompleteTriggerBase, decorators: [{
836
874
  type: Directive
837
875
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1$1.Overlay }, { type: i0.ViewContainerRef }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }, { type: undefined, decorators: [{
838
876
  type: Inject,
@@ -878,9 +916,9 @@ class MatAutocompleteTrigger extends _MatAutocompleteTriggerBase {
878
916
  this._aboveClass = 'mat-autocomplete-panel-above';
879
917
  }
880
918
  }
881
- MatAutocompleteTrigger.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: MatAutocompleteTrigger, deps: null, target: i0.ɵɵFactoryTarget.Directive });
882
- 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 });
883
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: MatAutocompleteTrigger, decorators: [{
919
+ MatAutocompleteTrigger.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0-next.4", ngImport: i0, type: MatAutocompleteTrigger, deps: null, target: i0.ɵɵFactoryTarget.Directive });
920
+ MatAutocompleteTrigger.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "14.0.0-next.4", 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 });
921
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.4", ngImport: i0, type: MatAutocompleteTrigger, decorators: [{
884
922
  type: Directive,
885
923
  args: [{
886
924
  selector: `input[matAutocomplete], textarea[matAutocomplete]`,
@@ -899,6 +937,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImpor
899
937
  '(blur)': '_onTouched()',
900
938
  '(input)': '_handleInput($event)',
901
939
  '(keydown)': '_handleKeydown($event)',
940
+ '(click)': '_handleClick()',
902
941
  },
903
942
  exportAs: 'matAutocompleteTrigger',
904
943
  providers: [MAT_AUTOCOMPLETE_VALUE_ACCESSOR],
@@ -914,17 +953,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImpor
914
953
  */
915
954
  class MatAutocompleteModule {
916
955
  }
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,
956
+ MatAutocompleteModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0-next.4", ngImport: i0, type: MatAutocompleteModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
957
+ MatAutocompleteModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "14.0.0-next.4", ngImport: i0, type: MatAutocompleteModule, declarations: [MatAutocomplete, MatAutocompleteTrigger, MatAutocompleteOrigin], imports: [OverlayModule, MatOptionModule, MatCommonModule, CommonModule], exports: [MatAutocomplete,
919
958
  MatAutocompleteTrigger,
920
959
  MatAutocompleteOrigin,
921
960
  CdkScrollableModule,
922
961
  MatOptionModule,
923
962
  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,
963
+ MatAutocompleteModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.0-next.4", ngImport: i0, type: MatAutocompleteModule, providers: [MAT_AUTOCOMPLETE_SCROLL_STRATEGY_FACTORY_PROVIDER], imports: [[OverlayModule, MatOptionModule, MatCommonModule, CommonModule], CdkScrollableModule,
925
964
  MatOptionModule,
926
965
  MatCommonModule] });
927
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: MatAutocompleteModule, decorators: [{
966
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.4", ngImport: i0, type: MatAutocompleteModule, decorators: [{
928
967
  type: NgModule,
929
968
  args: [{
930
969
  imports: [OverlayModule, MatOptionModule, MatCommonModule, CommonModule],