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

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 (460) hide show
  1. package/badge/_badge-theme.scss +8 -0
  2. package/checkbox/_checkbox-theme.scss +0 -6
  3. package/checkbox/testing/checkbox-harness-filters.d.ts +2 -0
  4. package/core/style/_vendor-prefixes.scss +0 -16
  5. package/datepicker/calendar-body.d.ts +22 -1
  6. package/dialog/dialog-animations.d.ts +10 -0
  7. package/dialog/dialog-config.d.ts +6 -0
  8. package/dialog/dialog-container.d.ts +8 -4
  9. package/dialog/dialog.d.ts +12 -6
  10. package/dialog/public-api.d.ts +1 -1
  11. package/dialog/testing/dialog-opener.d.ts +33 -0
  12. package/dialog/testing/public-api.d.ts +1 -0
  13. package/esm2020/autocomplete/autocomplete-module.mjs +4 -4
  14. package/esm2020/autocomplete/autocomplete-origin.mjs +6 -6
  15. package/esm2020/autocomplete/autocomplete-trigger.mjs +25 -20
  16. package/esm2020/autocomplete/autocomplete.mjs +6 -6
  17. package/esm2020/autocomplete/testing/autocomplete-harness.mjs +7 -1
  18. package/esm2020/badge/badge-module.mjs +4 -4
  19. package/esm2020/badge/badge.mjs +3 -3
  20. package/esm2020/bottom-sheet/bottom-sheet-animations.mjs +10 -4
  21. package/esm2020/bottom-sheet/bottom-sheet-container.mjs +11 -6
  22. package/esm2020/bottom-sheet/bottom-sheet-module.mjs +4 -4
  23. package/esm2020/bottom-sheet/bottom-sheet.mjs +3 -3
  24. package/esm2020/button/button-module.mjs +4 -4
  25. package/esm2020/button/button.mjs +10 -10
  26. package/esm2020/button-toggle/button-toggle-module.mjs +4 -4
  27. package/esm2020/button-toggle/button-toggle.mjs +7 -7
  28. package/esm2020/card/card-module.mjs +4 -4
  29. package/esm2020/card/card.mjs +43 -43
  30. package/esm2020/checkbox/checkbox-module.mjs +8 -8
  31. package/esm2020/checkbox/checkbox-required-validator.mjs +3 -3
  32. package/esm2020/checkbox/checkbox.mjs +7 -6
  33. package/esm2020/checkbox/testing/checkbox-harness-filters.mjs +1 -1
  34. package/esm2020/checkbox/testing/checkbox-harness.mjs +3 -2
  35. package/esm2020/chips/chip-input.mjs +3 -3
  36. package/esm2020/chips/chip-list.mjs +3 -3
  37. package/esm2020/chips/chip.mjs +12 -12
  38. package/esm2020/chips/chips-module.mjs +4 -4
  39. package/esm2020/core/common-behaviors/common-module.mjs +4 -4
  40. package/esm2020/core/datetime/index.mjs +8 -8
  41. package/esm2020/core/datetime/native-date-adapter.mjs +3 -3
  42. package/esm2020/core/error/error-options.mjs +6 -6
  43. package/esm2020/core/line/line.mjs +7 -7
  44. package/esm2020/core/option/index.mjs +4 -4
  45. package/esm2020/core/option/optgroup.mjs +7 -7
  46. package/esm2020/core/option/option.mjs +7 -7
  47. package/esm2020/core/ripple/index.mjs +4 -4
  48. package/esm2020/core/ripple/ripple.mjs +3 -3
  49. package/esm2020/core/selection/pseudo-checkbox/pseudo-checkbox-module.mjs +4 -4
  50. package/esm2020/core/selection/pseudo-checkbox/pseudo-checkbox.mjs +3 -3
  51. package/esm2020/core/version.mjs +1 -1
  52. package/esm2020/datepicker/calendar-body.mjs +35 -12
  53. package/esm2020/datepicker/calendar.mjs +6 -6
  54. package/esm2020/datepicker/date-range-input-parts.mjs +9 -9
  55. package/esm2020/datepicker/date-range-input.mjs +5 -5
  56. package/esm2020/datepicker/date-range-picker.mjs +3 -3
  57. package/esm2020/datepicker/date-range-selection-strategy.mjs +3 -3
  58. package/esm2020/datepicker/date-selection-model.mjs +9 -9
  59. package/esm2020/datepicker/datepicker-actions.mjs +9 -9
  60. package/esm2020/datepicker/datepicker-base.mjs +6 -6
  61. package/esm2020/datepicker/datepicker-input-base.mjs +3 -3
  62. package/esm2020/datepicker/datepicker-input.mjs +3 -3
  63. package/esm2020/datepicker/datepicker-intl.mjs +3 -3
  64. package/esm2020/datepicker/datepicker-module.mjs +4 -4
  65. package/esm2020/datepicker/datepicker-toggle.mjs +6 -6
  66. package/esm2020/datepicker/datepicker.mjs +3 -3
  67. package/esm2020/datepicker/month-view.mjs +5 -5
  68. package/esm2020/datepicker/multi-year-view.mjs +3 -3
  69. package/esm2020/datepicker/year-view.mjs +3 -3
  70. package/esm2020/dialog/dialog-animations.mjs +17 -4
  71. package/esm2020/dialog/dialog-config.mjs +8 -1
  72. package/esm2020/dialog/dialog-container.mjs +38 -24
  73. package/esm2020/dialog/dialog-content-directives.mjs +17 -13
  74. package/esm2020/dialog/dialog-module.mjs +4 -4
  75. package/esm2020/dialog/dialog.mjs +22 -38
  76. package/esm2020/dialog/public-api.mjs +2 -2
  77. package/esm2020/dialog/testing/dialog-opener.mjs +67 -0
  78. package/esm2020/dialog/testing/public-api.mjs +2 -1
  79. package/esm2020/divider/divider-module.mjs +4 -4
  80. package/esm2020/divider/divider.mjs +3 -3
  81. package/esm2020/expansion/accordion.mjs +3 -3
  82. package/esm2020/expansion/expansion-module.mjs +4 -4
  83. package/esm2020/expansion/expansion-panel-content.mjs +3 -3
  84. package/esm2020/expansion/expansion-panel-header.mjs +9 -9
  85. package/esm2020/expansion/expansion-panel.mjs +9 -9
  86. package/esm2020/form-field/error.mjs +3 -3
  87. package/esm2020/form-field/form-field-control.mjs +4 -4
  88. package/esm2020/form-field/form-field-module.mjs +4 -4
  89. package/esm2020/form-field/form-field.mjs +11 -8
  90. package/esm2020/form-field/hint.mjs +3 -3
  91. package/esm2020/form-field/label.mjs +3 -3
  92. package/esm2020/form-field/placeholder.mjs +3 -3
  93. package/esm2020/form-field/prefix.mjs +3 -3
  94. package/esm2020/form-field/suffix.mjs +3 -3
  95. package/esm2020/grid-list/grid-list-module.mjs +4 -4
  96. package/esm2020/grid-list/grid-list.mjs +3 -3
  97. package/esm2020/grid-list/grid-tile.mjs +15 -15
  98. package/esm2020/icon/icon-module.mjs +4 -4
  99. package/esm2020/icon/icon-registry.mjs +3 -3
  100. package/esm2020/icon/icon.mjs +5 -12
  101. package/esm2020/icon/testing/fake-icon-registry.mjs +7 -7
  102. package/esm2020/input/input-module.mjs +4 -4
  103. package/esm2020/input/input.mjs +29 -22
  104. package/esm2020/list/list-module.mjs +4 -4
  105. package/esm2020/list/list.mjs +19 -21
  106. package/esm2020/list/selection-list.mjs +13 -36
  107. package/esm2020/list/testing/list-item-harness-base.mjs +1 -9
  108. package/esm2020/menu/menu-content.mjs +6 -6
  109. package/esm2020/menu/menu-item.mjs +3 -3
  110. package/esm2020/menu/menu-module.mjs +4 -4
  111. package/esm2020/menu/menu-trigger.mjs +6 -6
  112. package/esm2020/menu/menu.mjs +8 -8
  113. package/esm2020/paginator/paginator-intl.mjs +3 -3
  114. package/esm2020/paginator/paginator-module.mjs +4 -4
  115. package/esm2020/paginator/paginator.mjs +6 -6
  116. package/esm2020/progress-bar/progress-bar-module.mjs +4 -4
  117. package/esm2020/progress-bar/progress-bar.mjs +3 -3
  118. package/esm2020/progress-spinner/progress-spinner-module.mjs +4 -4
  119. package/esm2020/progress-spinner/progress-spinner.mjs +3 -3
  120. package/esm2020/radio/radio-module.mjs +4 -4
  121. package/esm2020/radio/radio.mjs +13 -13
  122. package/esm2020/radio/testing/radio-harness-filters.mjs +1 -1
  123. package/esm2020/radio/testing/radio-harness.mjs +3 -2
  124. package/esm2020/select/select-module.mjs +4 -4
  125. package/esm2020/select/select.mjs +42 -23
  126. package/esm2020/sidenav/drawer.mjs +17 -12
  127. package/esm2020/sidenav/sidenav-module.mjs +4 -4
  128. package/esm2020/sidenav/sidenav.mjs +9 -9
  129. package/esm2020/slide-toggle/slide-toggle-module.mjs +8 -8
  130. package/esm2020/slide-toggle/slide-toggle-required-validator.mjs +3 -3
  131. package/esm2020/slide-toggle/slide-toggle.mjs +6 -5
  132. package/esm2020/slide-toggle/testing/slide-toggle-harness-filters.mjs +1 -1
  133. package/esm2020/slide-toggle/testing/slide-toggle-harness.mjs +3 -2
  134. package/esm2020/slider/slider-module.mjs +4 -4
  135. package/esm2020/slider/slider.mjs +4 -4
  136. package/esm2020/snack-bar/simple-snack-bar.mjs +3 -3
  137. package/esm2020/snack-bar/snack-bar-container.mjs +3 -3
  138. package/esm2020/snack-bar/snack-bar-module.mjs +4 -4
  139. package/esm2020/snack-bar/snack-bar.mjs +6 -6
  140. package/esm2020/sort/sort-header-intl.mjs +3 -3
  141. package/esm2020/sort/sort-header.mjs +3 -3
  142. package/esm2020/sort/sort-module.mjs +4 -4
  143. package/esm2020/sort/sort.mjs +3 -3
  144. package/esm2020/stepper/public-api.mjs +2 -2
  145. package/esm2020/stepper/step-content.mjs +3 -3
  146. package/esm2020/stepper/step-header.mjs +3 -3
  147. package/esm2020/stepper/step-label.mjs +3 -3
  148. package/esm2020/stepper/stepper-animations.mjs +9 -3
  149. package/esm2020/stepper/stepper-button.mjs +6 -6
  150. package/esm2020/stepper/stepper-icon.mjs +3 -3
  151. package/esm2020/stepper/stepper-intl.mjs +3 -3
  152. package/esm2020/stepper/stepper-module.mjs +4 -4
  153. package/esm2020/stepper/stepper.mjs +35 -9
  154. package/esm2020/table/cell.mjs +21 -21
  155. package/esm2020/table/row.mjs +21 -21
  156. package/esm2020/table/table-module.mjs +4 -4
  157. package/esm2020/table/table.mjs +8 -8
  158. package/esm2020/table/text-column.mjs +3 -3
  159. package/esm2020/tabs/ink-bar.mjs +11 -22
  160. package/esm2020/tabs/paginated-tab-header.mjs +8 -6
  161. package/esm2020/tabs/tab-body.mjs +9 -9
  162. package/esm2020/tabs/tab-content.mjs +3 -3
  163. package/esm2020/tabs/tab-group.mjs +6 -6
  164. package/esm2020/tabs/tab-header.mjs +7 -7
  165. package/esm2020/tabs/tab-label-wrapper.mjs +3 -3
  166. package/esm2020/tabs/tab-label.mjs +3 -3
  167. package/esm2020/tabs/tab-nav-bar/tab-nav-bar.mjs +18 -18
  168. package/esm2020/tabs/tab.mjs +3 -3
  169. package/esm2020/tabs/tabs-module.mjs +4 -4
  170. package/esm2020/toolbar/toolbar-module.mjs +4 -4
  171. package/esm2020/toolbar/toolbar.mjs +6 -6
  172. package/esm2020/tooltip/testing/tooltip-harness.mjs +12 -7
  173. package/esm2020/tooltip/tooltip-module.mjs +4 -4
  174. package/esm2020/tooltip/tooltip.mjs +99 -47
  175. package/esm2020/tree/node.mjs +9 -9
  176. package/esm2020/tree/outlet.mjs +3 -3
  177. package/esm2020/tree/padding.mjs +3 -3
  178. package/esm2020/tree/toggle.mjs +3 -3
  179. package/esm2020/tree/tree-module.mjs +4 -4
  180. package/esm2020/tree/tree.mjs +3 -3
  181. package/fesm2015/autocomplete/testing.mjs +6 -0
  182. package/fesm2015/autocomplete/testing.mjs.map +1 -1
  183. package/fesm2015/autocomplete.mjs +40 -35
  184. package/fesm2015/autocomplete.mjs.map +1 -1
  185. package/fesm2015/badge/testing.mjs.map +1 -1
  186. package/fesm2015/badge.mjs +7 -7
  187. package/fesm2015/badge.mjs.map +1 -1
  188. package/fesm2015/bottom-sheet/testing.mjs.map +1 -1
  189. package/fesm2015/bottom-sheet.mjs +26 -15
  190. package/fesm2015/bottom-sheet.mjs.map +1 -1
  191. package/fesm2015/button/testing.mjs.map +1 -1
  192. package/fesm2015/button-toggle/testing.mjs.map +1 -1
  193. package/fesm2015/button-toggle.mjs +11 -11
  194. package/fesm2015/button-toggle.mjs.map +1 -1
  195. package/fesm2015/button.mjs +13 -13
  196. package/fesm2015/button.mjs.map +1 -1
  197. package/fesm2015/card/testing.mjs.map +1 -1
  198. package/fesm2015/card.mjs +47 -47
  199. package/fesm2015/card.mjs.map +1 -1
  200. package/fesm2015/checkbox/testing.mjs +2 -1
  201. package/fesm2015/checkbox/testing.mjs.map +1 -1
  202. package/fesm2015/checkbox.mjs +17 -16
  203. package/fesm2015/checkbox.mjs.map +1 -1
  204. package/fesm2015/chips/testing.mjs.map +1 -1
  205. package/fesm2015/chips.mjs +22 -22
  206. package/fesm2015/chips.mjs.map +1 -1
  207. package/fesm2015/core/testing.mjs.map +1 -1
  208. package/fesm2015/core.mjs +61 -61
  209. package/fesm2015/core.mjs.map +1 -1
  210. package/fesm2015/datepicker/testing.mjs.map +1 -1
  211. package/fesm2015/datepicker.mjs +116 -93
  212. package/fesm2015/datepicker.mjs.map +1 -1
  213. package/fesm2015/dialog/testing.mjs +65 -2
  214. package/fesm2015/dialog/testing.mjs.map +1 -1
  215. package/fesm2015/dialog.mjs +121 -100
  216. package/fesm2015/dialog.mjs.map +1 -1
  217. package/fesm2015/divider/testing.mjs.map +1 -1
  218. package/fesm2015/divider.mjs +7 -7
  219. package/fesm2015/divider.mjs.map +1 -1
  220. package/fesm2015/expansion/testing.mjs.map +1 -1
  221. package/fesm2015/expansion.mjs +27 -27
  222. package/fesm2015/expansion.mjs.map +1 -1
  223. package/fesm2015/form-field/testing/control.mjs.map +1 -1
  224. package/fesm2015/form-field/testing.mjs.map +1 -1
  225. package/fesm2015/form-field.mjs +35 -32
  226. package/fesm2015/form-field.mjs.map +1 -1
  227. package/fesm2015/grid-list/testing.mjs.map +1 -1
  228. package/fesm2015/grid-list.mjs +22 -22
  229. package/fesm2015/grid-list.mjs.map +1 -1
  230. package/fesm2015/icon/testing.mjs +7 -7
  231. package/fesm2015/icon/testing.mjs.map +1 -1
  232. package/fesm2015/icon.mjs +11 -18
  233. package/fesm2015/icon.mjs.map +1 -1
  234. package/fesm2015/input/testing.mjs.map +1 -1
  235. package/fesm2015/input.mjs +33 -26
  236. package/fesm2015/input.mjs.map +1 -1
  237. package/fesm2015/list/testing.mjs +0 -10
  238. package/fesm2015/list/testing.mjs.map +1 -1
  239. package/fesm2015/list.mjs +37 -63
  240. package/fesm2015/list.mjs.map +1 -1
  241. package/fesm2015/material.mjs.map +1 -1
  242. package/fesm2015/menu/testing.mjs.map +1 -1
  243. package/fesm2015/menu.mjs +26 -26
  244. package/fesm2015/menu.mjs.map +1 -1
  245. package/fesm2015/paginator/testing.mjs.map +1 -1
  246. package/fesm2015/paginator.mjs +13 -13
  247. package/fesm2015/paginator.mjs.map +1 -1
  248. package/fesm2015/progress-bar/testing.mjs.map +1 -1
  249. package/fesm2015/progress-bar.mjs +7 -7
  250. package/fesm2015/progress-bar.mjs.map +1 -1
  251. package/fesm2015/progress-spinner/testing.mjs.map +1 -1
  252. package/fesm2015/progress-spinner.mjs +7 -7
  253. package/fesm2015/progress-spinner.mjs.map +1 -1
  254. package/fesm2015/radio/testing.mjs +2 -1
  255. package/fesm2015/radio/testing.mjs.map +1 -1
  256. package/fesm2015/radio.mjs +17 -17
  257. package/fesm2015/radio.mjs.map +1 -1
  258. package/fesm2015/select/testing.mjs.map +1 -1
  259. package/fesm2015/select.mjs +45 -26
  260. package/fesm2015/select.mjs.map +1 -1
  261. package/fesm2015/sidenav/testing.mjs.map +1 -1
  262. package/fesm2015/sidenav.mjs +29 -24
  263. package/fesm2015/sidenav.mjs.map +1 -1
  264. package/fesm2015/slide-toggle/testing.mjs +2 -1
  265. package/fesm2015/slide-toggle/testing.mjs.map +1 -1
  266. package/fesm2015/slide-toggle.mjs +16 -15
  267. package/fesm2015/slide-toggle.mjs.map +1 -1
  268. package/fesm2015/slider/testing.mjs.map +1 -1
  269. package/fesm2015/slider.mjs +8 -8
  270. package/fesm2015/slider.mjs.map +1 -1
  271. package/fesm2015/snack-bar/testing.mjs.map +1 -1
  272. package/fesm2015/snack-bar.mjs +16 -16
  273. package/fesm2015/snack-bar.mjs.map +1 -1
  274. package/fesm2015/sort/testing.mjs.map +1 -1
  275. package/fesm2015/sort.mjs +13 -13
  276. package/fesm2015/sort.mjs.map +1 -1
  277. package/fesm2015/stepper/testing.mjs.map +1 -1
  278. package/fesm2015/stepper.mjs +66 -34
  279. package/fesm2015/stepper.mjs.map +1 -1
  280. package/fesm2015/table/testing.mjs.map +1 -1
  281. package/fesm2015/table.mjs +57 -57
  282. package/fesm2015/table.mjs.map +1 -1
  283. package/fesm2015/tabs/testing.mjs.map +1 -1
  284. package/fesm2015/tabs.mjs +71 -81
  285. package/fesm2015/tabs.mjs.map +1 -1
  286. package/fesm2015/toolbar/testing.mjs.map +1 -1
  287. package/fesm2015/toolbar.mjs +10 -10
  288. package/fesm2015/toolbar.mjs.map +1 -1
  289. package/fesm2015/tooltip/testing.mjs +11 -8
  290. package/fesm2015/tooltip/testing.mjs.map +1 -1
  291. package/fesm2015/tooltip.mjs +125 -75
  292. package/fesm2015/tooltip.mjs.map +1 -1
  293. package/fesm2015/tree/testing.mjs.map +1 -1
  294. package/fesm2015/tree.mjs +25 -25
  295. package/fesm2015/tree.mjs.map +1 -1
  296. package/fesm2020/autocomplete/testing.mjs +6 -0
  297. package/fesm2020/autocomplete/testing.mjs.map +1 -1
  298. package/fesm2020/autocomplete.mjs +40 -35
  299. package/fesm2020/autocomplete.mjs.map +1 -1
  300. package/fesm2020/badge/testing.mjs.map +1 -1
  301. package/fesm2020/badge.mjs +7 -7
  302. package/fesm2020/badge.mjs.map +1 -1
  303. package/fesm2020/bottom-sheet/testing.mjs.map +1 -1
  304. package/fesm2020/bottom-sheet.mjs +26 -15
  305. package/fesm2020/bottom-sheet.mjs.map +1 -1
  306. package/fesm2020/button/testing.mjs.map +1 -1
  307. package/fesm2020/button-toggle/testing.mjs.map +1 -1
  308. package/fesm2020/button-toggle.mjs +11 -11
  309. package/fesm2020/button-toggle.mjs.map +1 -1
  310. package/fesm2020/button.mjs +13 -13
  311. package/fesm2020/button.mjs.map +1 -1
  312. package/fesm2020/card/testing.mjs.map +1 -1
  313. package/fesm2020/card.mjs +47 -47
  314. package/fesm2020/card.mjs.map +1 -1
  315. package/fesm2020/checkbox/testing.mjs +2 -1
  316. package/fesm2020/checkbox/testing.mjs.map +1 -1
  317. package/fesm2020/checkbox.mjs +17 -16
  318. package/fesm2020/checkbox.mjs.map +1 -1
  319. package/fesm2020/chips/testing.mjs.map +1 -1
  320. package/fesm2020/chips.mjs +22 -22
  321. package/fesm2020/chips.mjs.map +1 -1
  322. package/fesm2020/core/testing.mjs.map +1 -1
  323. package/fesm2020/core.mjs +61 -61
  324. package/fesm2020/core.mjs.map +1 -1
  325. package/fesm2020/datepicker/testing.mjs.map +1 -1
  326. package/fesm2020/datepicker.mjs +116 -93
  327. package/fesm2020/datepicker.mjs.map +1 -1
  328. package/fesm2020/dialog/testing.mjs +65 -1
  329. package/fesm2020/dialog/testing.mjs.map +1 -1
  330. package/fesm2020/dialog.mjs +121 -100
  331. package/fesm2020/dialog.mjs.map +1 -1
  332. package/fesm2020/divider/testing.mjs.map +1 -1
  333. package/fesm2020/divider.mjs +7 -7
  334. package/fesm2020/divider.mjs.map +1 -1
  335. package/fesm2020/expansion/testing.mjs.map +1 -1
  336. package/fesm2020/expansion.mjs +27 -27
  337. package/fesm2020/expansion.mjs.map +1 -1
  338. package/fesm2020/form-field/testing/control.mjs.map +1 -1
  339. package/fesm2020/form-field/testing.mjs.map +1 -1
  340. package/fesm2020/form-field.mjs +35 -32
  341. package/fesm2020/form-field.mjs.map +1 -1
  342. package/fesm2020/grid-list/testing.mjs.map +1 -1
  343. package/fesm2020/grid-list.mjs +22 -22
  344. package/fesm2020/grid-list.mjs.map +1 -1
  345. package/fesm2020/icon/testing.mjs +7 -7
  346. package/fesm2020/icon/testing.mjs.map +1 -1
  347. package/fesm2020/icon.mjs +11 -18
  348. package/fesm2020/icon.mjs.map +1 -1
  349. package/fesm2020/input/testing.mjs.map +1 -1
  350. package/fesm2020/input.mjs +32 -25
  351. package/fesm2020/input.mjs.map +1 -1
  352. package/fesm2020/list/testing.mjs +0 -8
  353. package/fesm2020/list/testing.mjs.map +1 -1
  354. package/fesm2020/list.mjs +34 -59
  355. package/fesm2020/list.mjs.map +1 -1
  356. package/fesm2020/material.mjs.map +1 -1
  357. package/fesm2020/menu/testing.mjs.map +1 -1
  358. package/fesm2020/menu.mjs +26 -26
  359. package/fesm2020/menu.mjs.map +1 -1
  360. package/fesm2020/paginator/testing.mjs.map +1 -1
  361. package/fesm2020/paginator.mjs +13 -13
  362. package/fesm2020/paginator.mjs.map +1 -1
  363. package/fesm2020/progress-bar/testing.mjs.map +1 -1
  364. package/fesm2020/progress-bar.mjs +7 -7
  365. package/fesm2020/progress-bar.mjs.map +1 -1
  366. package/fesm2020/progress-spinner/testing.mjs.map +1 -1
  367. package/fesm2020/progress-spinner.mjs +7 -7
  368. package/fesm2020/progress-spinner.mjs.map +1 -1
  369. package/fesm2020/radio/testing.mjs +2 -1
  370. package/fesm2020/radio/testing.mjs.map +1 -1
  371. package/fesm2020/radio.mjs +17 -17
  372. package/fesm2020/radio.mjs.map +1 -1
  373. package/fesm2020/select/testing.mjs.map +1 -1
  374. package/fesm2020/select.mjs +45 -26
  375. package/fesm2020/select.mjs.map +1 -1
  376. package/fesm2020/sidenav/testing.mjs.map +1 -1
  377. package/fesm2020/sidenav.mjs +29 -24
  378. package/fesm2020/sidenav.mjs.map +1 -1
  379. package/fesm2020/slide-toggle/testing.mjs +2 -1
  380. package/fesm2020/slide-toggle/testing.mjs.map +1 -1
  381. package/fesm2020/slide-toggle.mjs +16 -15
  382. package/fesm2020/slide-toggle.mjs.map +1 -1
  383. package/fesm2020/slider/testing.mjs.map +1 -1
  384. package/fesm2020/slider.mjs +8 -8
  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 +13 -13
  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 +57 -57
  397. package/fesm2020/table.mjs.map +1 -1
  398. package/fesm2020/tabs/testing.mjs.map +1 -1
  399. package/fesm2020/tabs.mjs +71 -81
  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 +120 -67
  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/form-field/form-field-control.d.ts +3 -3
  412. package/form-field/form-field.d.ts +6 -3
  413. package/input/input.d.ts +1 -0
  414. package/list/selection-list.d.ts +4 -21
  415. package/list/testing/list-item-harness-base.d.ts +1 -7
  416. package/package.json +2 -2
  417. package/prebuilt-themes/deeppurple-amber.css +1 -1
  418. package/prebuilt-themes/indigo-pink.css +1 -1
  419. package/prebuilt-themes/pink-bluegrey.css +1 -1
  420. package/prebuilt-themes/purple-green.css +1 -1
  421. package/radio/testing/radio-harness-filters.d.ts +2 -0
  422. package/schematics/collection.json +4 -2
  423. package/schematics/ng-add/fonts/material-fonts.js +4 -13
  424. package/schematics/ng-add/fonts/material-fonts.mjs +4 -13
  425. package/schematics/ng-add/index.js +1 -1
  426. package/schematics/ng-add/index.mjs +1 -1
  427. package/schematics/ng-add/setup-project.js +10 -19
  428. package/schematics/ng-add/setup-project.mjs +10 -19
  429. package/schematics/ng-add/theming/theming.js +28 -39
  430. package/schematics/ng-add/theming/theming.mjs +28 -39
  431. package/schematics/ng-generate/address-form/index.js +5 -14
  432. package/schematics/ng-generate/address-form/index.mjs +5 -14
  433. package/schematics/ng-generate/dashboard/index.js +5 -14
  434. package/schematics/ng-generate/dashboard/index.mjs +5 -14
  435. package/schematics/ng-generate/navigation/index.js +5 -14
  436. package/schematics/ng-generate/navigation/index.mjs +5 -14
  437. package/schematics/ng-generate/table/index.js +5 -14
  438. package/schematics/ng-generate/table/index.mjs +5 -14
  439. package/schematics/ng-generate/tree/index.js +5 -14
  440. package/schematics/ng-generate/tree/index.mjs +5 -14
  441. package/schematics/ng-update/data/constructor-checks.js +7 -1
  442. package/schematics/ng-update/data/constructor-checks.mjs +7 -1
  443. package/schematics/ng-update/data/css-selectors.js +7 -1
  444. package/schematics/ng-update/data/css-selectors.mjs +7 -1
  445. package/schematics/ng-update/data/index.js +6 -2
  446. package/schematics/ng-update/data/index.mjs +6 -2
  447. package/schematics/ng-update/migrations/hammer-gestures-v9/import-manager.js +3 -12
  448. package/schematics/ng-update/migrations/hammer-gestures-v9/import-manager.mjs +3 -12
  449. package/schematics/ng-update/migrations/package-imports-v8/secondary-entry-points-migration.js +2 -3
  450. package/schematics/ng-update/migrations/package-imports-v8/secondary-entry-points-migration.mjs +2 -3
  451. package/schematics/ng-update/migrations/theming-api-v12/migration.js +5 -5
  452. package/schematics/ng-update/migrations/theming-api-v12/migration.mjs +5 -5
  453. package/select/select.d.ts +8 -1
  454. package/slide-toggle/testing/slide-toggle-harness-filters.d.ts +2 -0
  455. package/stepper/public-api.d.ts +1 -1
  456. package/stepper/stepper-animations.d.ts +2 -0
  457. package/stepper/stepper.d.ts +11 -1
  458. package/tabs/ink-bar.d.ts +0 -5
  459. package/tooltip/testing/tooltip-harness.d.ts +6 -0
  460. package/tooltip/tooltip.d.ts +23 -7
@@ -1 +1 @@
1
- {"version":3,"file":"testing.mjs","sources":["../../../../../../../src/material/select/testing/select-harness.ts","../../../../../../../src/material/select/testing/public-api.ts","../../../../../../../src/material/select/testing/index.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {\n HarnessPredicate,\n parallel,\n ComponentHarness,\n BaseHarnessFilters,\n ComponentHarnessConstructor,\n} from '@angular/cdk/testing';\nimport {MatFormFieldControlHarness} from '@angular/material/form-field/testing/control';\nimport {\n MatOptionHarness,\n MatOptgroupHarness,\n OptionHarnessFilters,\n OptgroupHarnessFilters,\n} from '@angular/material/core/testing';\nimport {SelectHarnessFilters} from './select-harness-filters';\n\nexport abstract class _MatSelectHarnessBase<\n OptionType extends ComponentHarnessConstructor<Option> & {\n with: (options?: OptionFilters) => HarnessPredicate<Option>;\n },\n Option extends ComponentHarness & {click(): Promise<void>},\n OptionFilters extends BaseHarnessFilters,\n OptionGroupType extends ComponentHarnessConstructor<OptionGroup> & {\n with: (options?: OptionGroupFilters) => HarnessPredicate<OptionGroup>;\n },\n OptionGroup extends ComponentHarness,\n OptionGroupFilters extends BaseHarnessFilters,\n> extends MatFormFieldControlHarness {\n protected abstract _prefix: string;\n protected abstract _optionClass: OptionType;\n protected abstract _optionGroupClass: OptionGroupType;\n private _documentRootLocator = this.documentRootLocatorFactory();\n private _backdrop = this._documentRootLocator.locatorFor('.cdk-overlay-backdrop');\n\n /** Gets a boolean promise indicating if the select is disabled. */\n async isDisabled(): Promise<boolean> {\n return (await this.host()).hasClass(`${this._prefix}-select-disabled`);\n }\n\n /** Gets a boolean promise indicating if the select is valid. */\n async isValid(): Promise<boolean> {\n return !(await (await this.host()).hasClass('ng-invalid'));\n }\n\n /** Gets a boolean promise indicating if the select is required. */\n async isRequired(): Promise<boolean> {\n return (await this.host()).hasClass(`${this._prefix}-select-required`);\n }\n\n /** Gets a boolean promise indicating if the select is empty (no value is selected). */\n async isEmpty(): Promise<boolean> {\n return (await this.host()).hasClass(`${this._prefix}-select-empty`);\n }\n\n /** Gets a boolean promise indicating if the select is in multi-selection mode. */\n async isMultiple(): Promise<boolean> {\n return (await this.host()).hasClass(`${this._prefix}-select-multiple`);\n }\n\n /** Gets a promise for the select's value text. */\n async getValueText(): Promise<string> {\n const value = await this.locatorFor(`.${this._prefix}-select-value`)();\n return value.text();\n }\n\n /** Focuses the select and returns a void promise that indicates when the action is complete. */\n async focus(): Promise<void> {\n return (await this.host()).focus();\n }\n\n /** Blurs the select and returns a void promise that indicates when the action is complete. */\n async blur(): Promise<void> {\n return (await this.host()).blur();\n }\n\n /** Whether the select is focused. */\n async isFocused(): Promise<boolean> {\n return (await this.host()).isFocused();\n }\n\n /** Gets the options inside the select panel. */\n async getOptions(filter?: Omit<OptionFilters, 'ancestor'>): Promise<Option[]> {\n return this._documentRootLocator.locatorForAll(\n this._optionClass.with({\n ...(filter || {}),\n ancestor: await this._getPanelSelector(),\n } as OptionFilters),\n )();\n }\n\n /** Gets the groups of options inside the panel. */\n async getOptionGroups(filter?: Omit<OptionGroupFilters, 'ancestor'>): Promise<OptionGroup[]> {\n return this._documentRootLocator.locatorForAll(\n this._optionGroupClass.with({\n ...(filter || {}),\n ancestor: await this._getPanelSelector(),\n } as OptionGroupFilters),\n )() as Promise<OptionGroup[]>;\n }\n\n /** Gets whether the select is open. */\n async isOpen(): Promise<boolean> {\n return !!(await this._documentRootLocator.locatorForOptional(await this._getPanelSelector())());\n }\n\n /** Opens the select's panel. */\n async open(): Promise<void> {\n if (!(await this.isOpen())) {\n const trigger = await this.locatorFor(`.${this._prefix}-select-trigger`)();\n return trigger.click();\n }\n }\n\n /**\n * Clicks the options that match the passed-in filter. If the select is in multi-selection\n * mode all options will be clicked, otherwise the harness will pick the first matching option.\n */\n async clickOptions(filter?: OptionFilters): Promise<void> {\n await this.open();\n\n const [isMultiple, options] = await parallel(() => [\n this.isMultiple(),\n this.getOptions(filter),\n ]);\n\n if (options.length === 0) {\n throw Error('Select does not have options matching the specified filter');\n }\n\n if (isMultiple) {\n await parallel(() => options.map(option => option.click()));\n } else {\n await options[0].click();\n }\n }\n\n /** Closes the select's panel. */\n async close(): Promise<void> {\n if (await this.isOpen()) {\n // This is the most consistent way that works both in both single and multi-select modes,\n // but it assumes that only one overlay is open at a time. We should be able to make it\n // a bit more precise after #16645 where we can dispatch an ESCAPE press to the host instead.\n return (await this._backdrop()).click();\n }\n }\n\n /** Gets the selector that should be used to find this select's panel. */\n private async _getPanelSelector(): Promise<string> {\n const id = await (await this.host()).getAttribute('id');\n return `#${id}-panel`;\n }\n}\n\n/** Harness for interacting with a standard mat-select in tests. */\nexport class MatSelectHarness extends _MatSelectHarnessBase<\n typeof MatOptionHarness,\n MatOptionHarness,\n OptionHarnessFilters,\n typeof MatOptgroupHarness,\n MatOptgroupHarness,\n OptgroupHarnessFilters\n> {\n static hostSelector = '.mat-select';\n protected _prefix = 'mat';\n protected _optionClass = MatOptionHarness;\n protected _optionGroupClass = MatOptgroupHarness;\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a `MatSelectHarness` that meets\n * certain criteria.\n * @param options Options for filtering which select instances are considered a match.\n * @return a `HarnessPredicate` configured with the given options.\n */\n static with(options: SelectHarnessFilters = {}): HarnessPredicate<MatSelectHarness> {\n return new HarnessPredicate(MatSelectHarness, options);\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nexport * from './select-harness';\nexport * from './select-harness-filters';\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"testing.mjs","sources":["../../../../../../../src/material/select/testing/select-harness.ts","../../../../../../../src/material/select/testing/public-api.ts","../../../../../../../src/material/select/testing/index.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {\n HarnessPredicate,\n parallel,\n ComponentHarness,\n BaseHarnessFilters,\n ComponentHarnessConstructor,\n} from '@angular/cdk/testing';\nimport {MatFormFieldControlHarness} from '@angular/material/form-field/testing/control';\nimport {\n MatOptionHarness,\n MatOptgroupHarness,\n OptionHarnessFilters,\n OptgroupHarnessFilters,\n} from '@angular/material/core/testing';\nimport {SelectHarnessFilters} from './select-harness-filters';\n\nexport abstract class _MatSelectHarnessBase<\n OptionType extends ComponentHarnessConstructor<Option> & {\n with: (options?: OptionFilters) => HarnessPredicate<Option>;\n },\n Option extends ComponentHarness & {click(): Promise<void>},\n OptionFilters extends BaseHarnessFilters,\n OptionGroupType extends ComponentHarnessConstructor<OptionGroup> & {\n with: (options?: OptionGroupFilters) => HarnessPredicate<OptionGroup>;\n },\n OptionGroup extends ComponentHarness,\n OptionGroupFilters extends BaseHarnessFilters,\n> extends MatFormFieldControlHarness {\n protected abstract _prefix: string;\n protected abstract _optionClass: OptionType;\n protected abstract _optionGroupClass: OptionGroupType;\n private _documentRootLocator = this.documentRootLocatorFactory();\n private _backdrop = this._documentRootLocator.locatorFor('.cdk-overlay-backdrop');\n\n /** Gets a boolean promise indicating if the select is disabled. */\n async isDisabled(): Promise<boolean> {\n return (await this.host()).hasClass(`${this._prefix}-select-disabled`);\n }\n\n /** Gets a boolean promise indicating if the select is valid. */\n async isValid(): Promise<boolean> {\n return !(await (await this.host()).hasClass('ng-invalid'));\n }\n\n /** Gets a boolean promise indicating if the select is required. */\n async isRequired(): Promise<boolean> {\n return (await this.host()).hasClass(`${this._prefix}-select-required`);\n }\n\n /** Gets a boolean promise indicating if the select is empty (no value is selected). */\n async isEmpty(): Promise<boolean> {\n return (await this.host()).hasClass(`${this._prefix}-select-empty`);\n }\n\n /** Gets a boolean promise indicating if the select is in multi-selection mode. */\n async isMultiple(): Promise<boolean> {\n return (await this.host()).hasClass(`${this._prefix}-select-multiple`);\n }\n\n /** Gets a promise for the select's value text. */\n async getValueText(): Promise<string> {\n const value = await this.locatorFor(`.${this._prefix}-select-value`)();\n return value.text();\n }\n\n /** Focuses the select and returns a void promise that indicates when the action is complete. */\n async focus(): Promise<void> {\n return (await this.host()).focus();\n }\n\n /** Blurs the select and returns a void promise that indicates when the action is complete. */\n async blur(): Promise<void> {\n return (await this.host()).blur();\n }\n\n /** Whether the select is focused. */\n async isFocused(): Promise<boolean> {\n return (await this.host()).isFocused();\n }\n\n /** Gets the options inside the select panel. */\n async getOptions(filter?: Omit<OptionFilters, 'ancestor'>): Promise<Option[]> {\n return this._documentRootLocator.locatorForAll(\n this._optionClass.with({\n ...(filter || {}),\n ancestor: await this._getPanelSelector(),\n } as OptionFilters),\n )();\n }\n\n /** Gets the groups of options inside the panel. */\n async getOptionGroups(filter?: Omit<OptionGroupFilters, 'ancestor'>): Promise<OptionGroup[]> {\n return this._documentRootLocator.locatorForAll(\n this._optionGroupClass.with({\n ...(filter || {}),\n ancestor: await this._getPanelSelector(),\n } as OptionGroupFilters),\n )() as Promise<OptionGroup[]>;\n }\n\n /** Gets whether the select is open. */\n async isOpen(): Promise<boolean> {\n return !!(await this._documentRootLocator.locatorForOptional(await this._getPanelSelector())());\n }\n\n /** Opens the select's panel. */\n async open(): Promise<void> {\n if (!(await this.isOpen())) {\n const trigger = await this.locatorFor(`.${this._prefix}-select-trigger`)();\n return trigger.click();\n }\n }\n\n /**\n * Clicks the options that match the passed-in filter. If the select is in multi-selection\n * mode all options will be clicked, otherwise the harness will pick the first matching option.\n */\n async clickOptions(filter?: OptionFilters): Promise<void> {\n await this.open();\n\n const [isMultiple, options] = await parallel(() => [\n this.isMultiple(),\n this.getOptions(filter),\n ]);\n\n if (options.length === 0) {\n throw Error('Select does not have options matching the specified filter');\n }\n\n if (isMultiple) {\n await parallel(() => options.map(option => option.click()));\n } else {\n await options[0].click();\n }\n }\n\n /** Closes the select's panel. */\n async close(): Promise<void> {\n if (await this.isOpen()) {\n // This is the most consistent way that works both in both single and multi-select modes,\n // but it assumes that only one overlay is open at a time. We should be able to make it\n // a bit more precise after #16645 where we can dispatch an ESCAPE press to the host instead.\n return (await this._backdrop()).click();\n }\n }\n\n /** Gets the selector that should be used to find this select's panel. */\n private async _getPanelSelector(): Promise<string> {\n const id = await (await this.host()).getAttribute('id');\n return `#${id}-panel`;\n }\n}\n\n/** Harness for interacting with a standard mat-select in tests. */\nexport class MatSelectHarness extends _MatSelectHarnessBase<\n typeof MatOptionHarness,\n MatOptionHarness,\n OptionHarnessFilters,\n typeof MatOptgroupHarness,\n MatOptgroupHarness,\n OptgroupHarnessFilters\n> {\n static hostSelector = '.mat-select';\n protected _prefix = 'mat';\n protected _optionClass = MatOptionHarness;\n protected _optionGroupClass = MatOptgroupHarness;\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a `MatSelectHarness` that meets\n * certain criteria.\n * @param options Options for filtering which select instances are considered a match.\n * @return a `HarnessPredicate` configured with the given options.\n */\n static with(options: SelectHarnessFilters = {}): HarnessPredicate<MatSelectHarness> {\n return new HarnessPredicate(MatSelectHarness, options);\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nexport * from './select-harness';\nexport * from './select-harness-filters';\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -204,9 +204,9 @@ const MAT_SELECT_TRIGGER = new InjectionToken('MatSelectTrigger');
204
204
  */
205
205
  class MatSelectTrigger {
206
206
  }
207
- MatSelectTrigger.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0-next.4", ngImport: i0, type: MatSelectTrigger, deps: [], target: i0.ɵɵFactoryTarget.Directive });
208
- MatSelectTrigger.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "14.0.0-next.4", type: MatSelectTrigger, selector: "mat-select-trigger", providers: [{ provide: MAT_SELECT_TRIGGER, useExisting: MatSelectTrigger }], ngImport: i0 });
209
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.4", ngImport: i0, type: MatSelectTrigger, decorators: [{
207
+ MatSelectTrigger.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0-next.6", ngImport: i0, type: MatSelectTrigger, deps: [], target: i0.ɵɵFactoryTarget.Directive });
208
+ MatSelectTrigger.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "14.0.0-next.6", type: MatSelectTrigger, selector: "mat-select-trigger", providers: [{ provide: MAT_SELECT_TRIGGER, useExisting: MatSelectTrigger }], ngImport: i0 });
209
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.6", ngImport: i0, type: MatSelectTrigger, decorators: [{
210
210
  type: Directive,
211
211
  args: [{
212
212
  selector: 'mat-select-trigger',
@@ -350,12 +350,9 @@ class _MatSelectBase extends _MatSelectMixinBase {
350
350
  return this._value;
351
351
  }
352
352
  set value(newValue) {
353
- // Always re-assign an array, because it might have been mutated.
354
- if (newValue !== this._value || (this._multiple && Array.isArray(newValue))) {
355
- if (this.options) {
356
- this._setSelectionByValue(newValue);
357
- }
358
- this._value = newValue;
353
+ const hasAssigned = this._assignValue(newValue);
354
+ if (hasAssigned) {
355
+ this._onChange(newValue);
359
356
  }
360
357
  }
361
358
  /** Time to wait in milliseconds after the last keystroke before moving focus to an item. */
@@ -396,6 +393,7 @@ class _MatSelectBase extends _MatSelectMixinBase {
396
393
  }
397
394
  ngDoCheck() {
398
395
  const newAriaLabelledby = this._getTriggerAriaLabelledby();
396
+ const ngControl = this.ngControl;
399
397
  // We have to manage setting the `aria-labelledby` ourselves, because part of its value
400
398
  // is computed as a result of a content query which can cause this binding to trigger a
401
399
  // "changed after checked" error.
@@ -409,7 +407,16 @@ class _MatSelectBase extends _MatSelectMixinBase {
409
407
  element.removeAttribute('aria-labelledby');
410
408
  }
411
409
  }
412
- if (this.ngControl) {
410
+ if (ngControl) {
411
+ // The disabled state might go out of sync if the form group is swapped out. See #17860.
412
+ if (this._previousControl !== ngControl.control) {
413
+ if (this._previousControl !== undefined &&
414
+ ngControl.disabled !== null &&
415
+ ngControl.disabled !== this.disabled) {
416
+ this.disabled = ngControl.disabled;
417
+ }
418
+ this._previousControl = ngControl.control;
419
+ }
413
420
  this.updateErrorState();
414
421
  }
415
422
  }
@@ -457,7 +464,7 @@ class _MatSelectBase extends _MatSelectMixinBase {
457
464
  * @param value New value to be written to the model.
458
465
  */
459
466
  writeValue(value) {
460
- this.value = value;
467
+ this._assignValue(value);
461
468
  }
462
469
  /**
463
470
  * Saves a callback function to be invoked when the select's value
@@ -649,11 +656,11 @@ class _MatSelectBase extends _MatSelectMixinBase {
649
656
  if (!Array.isArray(value) && (typeof ngDevMode === 'undefined' || ngDevMode)) {
650
657
  throw getMatSelectNonArrayValueError();
651
658
  }
652
- value.forEach((currentValue) => this._selectValue(currentValue));
659
+ value.forEach((currentValue) => this._selectOptionByValue(currentValue));
653
660
  this._sortValues();
654
661
  }
655
662
  else {
656
- const correspondingOption = this._selectValue(value);
663
+ const correspondingOption = this._selectOptionByValue(value);
657
664
  // Shift focus to the active item. Note that we shouldn't do this in multiple
658
665
  // mode, because we don't know what option the user interacted with last.
659
666
  if (correspondingOption) {
@@ -671,7 +678,7 @@ class _MatSelectBase extends _MatSelectMixinBase {
671
678
  * Finds and selects and option based on its value.
672
679
  * @returns Option that has the corresponding value.
673
680
  */
674
- _selectValue(value) {
681
+ _selectOptionByValue(value) {
675
682
  const correspondingOption = this.options.find((option) => {
676
683
  // Skip options that are already in the model. This allows us to handle cases
677
684
  // where the same primitive value is selected multiple times.
@@ -695,6 +702,18 @@ class _MatSelectBase extends _MatSelectMixinBase {
695
702
  }
696
703
  return correspondingOption;
697
704
  }
705
+ /** Assigns a specific value to the select. Returns whether the value has changed. */
706
+ _assignValue(newValue) {
707
+ // Always re-assign an array, because it might have been mutated.
708
+ if (newValue !== this._value || (this._multiple && Array.isArray(newValue))) {
709
+ if (this.options) {
710
+ this._setSelectionByValue(newValue);
711
+ }
712
+ this._value = newValue;
713
+ return true;
714
+ }
715
+ return false;
716
+ }
698
717
  /** Sets up a key manager to listen to keyboard events on the overlay panel. */
699
718
  _initKeyManager() {
700
719
  this._keyManager = new ActiveDescendantKeyManager(this.options)
@@ -886,9 +905,9 @@ class _MatSelectBase extends _MatSelectMixinBase {
886
905
  return this._panelOpen || !this.empty || (this._focused && !!this._placeholder);
887
906
  }
888
907
  }
889
- _MatSelectBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0-next.4", ngImport: i0, type: _MatSelectBase, deps: [{ token: i1.ViewportRuler }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: i2.ErrorStateMatcher }, { token: i0.ElementRef }, { token: i3.Directionality, optional: true }, { token: i4.NgForm, optional: true }, { token: i4.FormGroupDirective, optional: true }, { token: MAT_FORM_FIELD, optional: true }, { token: i4.NgControl, optional: true, self: true }, { token: 'tabindex', attribute: true }, { token: MAT_SELECT_SCROLL_STRATEGY }, { token: i5.LiveAnnouncer }, { token: MAT_SELECT_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
890
- _MatSelectBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "14.0.0-next.4", type: _MatSelectBase, inputs: { panelClass: "panelClass", placeholder: "placeholder", required: "required", multiple: "multiple", disableOptionCentering: "disableOptionCentering", compareWith: "compareWith", value: "value", ariaLabel: ["aria-label", "ariaLabel"], ariaLabelledby: ["aria-labelledby", "ariaLabelledby"], errorStateMatcher: "errorStateMatcher", typeaheadDebounceInterval: "typeaheadDebounceInterval", sortComparator: "sortComparator", id: "id" }, outputs: { openedChange: "openedChange", _openedStream: "opened", _closedStream: "closed", selectionChange: "selectionChange", valueChange: "valueChange" }, viewQueries: [{ propertyName: "trigger", first: true, predicate: ["trigger"], descendants: true }, { propertyName: "panel", first: true, predicate: ["panel"], descendants: true }, { propertyName: "_overlayDir", first: true, predicate: CdkConnectedOverlay, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0 });
891
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.4", ngImport: i0, type: _MatSelectBase, decorators: [{
908
+ _MatSelectBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0-next.6", ngImport: i0, type: _MatSelectBase, deps: [{ token: i1.ViewportRuler }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: i2.ErrorStateMatcher }, { token: i0.ElementRef }, { token: i3.Directionality, optional: true }, { token: i4.NgForm, optional: true }, { token: i4.FormGroupDirective, optional: true }, { token: MAT_FORM_FIELD, optional: true }, { token: i4.NgControl, optional: true, self: true }, { token: 'tabindex', attribute: true }, { token: MAT_SELECT_SCROLL_STRATEGY }, { token: i5.LiveAnnouncer }, { token: MAT_SELECT_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
909
+ _MatSelectBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "14.0.0-next.6", type: _MatSelectBase, inputs: { panelClass: "panelClass", placeholder: "placeholder", required: "required", multiple: "multiple", disableOptionCentering: "disableOptionCentering", compareWith: "compareWith", value: "value", ariaLabel: ["aria-label", "ariaLabel"], ariaLabelledby: ["aria-labelledby", "ariaLabelledby"], errorStateMatcher: "errorStateMatcher", typeaheadDebounceInterval: "typeaheadDebounceInterval", sortComparator: "sortComparator", id: "id" }, outputs: { openedChange: "openedChange", _openedStream: "opened", _closedStream: "closed", selectionChange: "selectionChange", valueChange: "valueChange" }, viewQueries: [{ propertyName: "trigger", first: true, predicate: ["trigger"], descendants: true }, { propertyName: "panel", first: true, predicate: ["panel"], descendants: true }, { propertyName: "_overlayDir", first: true, predicate: CdkConnectedOverlay, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0 });
910
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.6", ngImport: i0, type: _MatSelectBase, decorators: [{
892
911
  type: Directive
893
912
  }], ctorParameters: function () {
894
913
  return [{ type: i1.ViewportRuler }, { type: i0.ChangeDetectorRef }, { type: i0.NgZone }, { type: i2.ErrorStateMatcher }, { type: i0.ElementRef }, { type: i3.Directionality, decorators: [{
@@ -1264,12 +1283,12 @@ class MatSelect extends _MatSelectBase {
1264
1283
  return this.options.length + this.optionGroups.length;
1265
1284
  }
1266
1285
  }
1267
- MatSelect.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0-next.4", ngImport: i0, type: MatSelect, deps: null, target: i0.ɵɵFactoryTarget.Component });
1268
- MatSelect.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "14.0.0-next.4", type: MatSelect, selector: "mat-select", inputs: { disabled: "disabled", disableRipple: "disableRipple", tabIndex: "tabIndex" }, host: { attributes: { "role": "combobox", "aria-autocomplete": "none", "aria-haspopup": "true" }, listeners: { "keydown": "_handleKeydown($event)", "focus": "_onFocus()", "blur": "_onBlur()" }, properties: { "attr.id": "id", "attr.tabindex": "tabIndex", "attr.aria-controls": "panelOpen ? id + \"-panel\" : null", "attr.aria-expanded": "panelOpen", "attr.aria-label": "ariaLabel || null", "attr.aria-required": "required.toString()", "attr.aria-disabled": "disabled.toString()", "attr.aria-invalid": "errorState", "attr.aria-describedby": "_ariaDescribedby || null", "attr.aria-activedescendant": "_getAriaActiveDescendant()", "class.mat-select-disabled": "disabled", "class.mat-select-invalid": "errorState", "class.mat-select-required": "required", "class.mat-select-empty": "empty", "class.mat-select-multiple": "multiple" }, classAttribute: "mat-select" }, providers: [
1286
+ MatSelect.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0-next.6", ngImport: i0, type: MatSelect, deps: null, target: i0.ɵɵFactoryTarget.Component });
1287
+ MatSelect.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "14.0.0-next.6", type: MatSelect, selector: "mat-select", inputs: { disabled: "disabled", disableRipple: "disableRipple", tabIndex: "tabIndex" }, host: { attributes: { "role": "combobox", "aria-autocomplete": "none", "aria-haspopup": "true" }, listeners: { "keydown": "_handleKeydown($event)", "focus": "_onFocus()", "blur": "_onBlur()" }, properties: { "attr.id": "id", "attr.tabindex": "tabIndex", "attr.aria-controls": "panelOpen ? id + \"-panel\" : null", "attr.aria-expanded": "panelOpen", "attr.aria-label": "ariaLabel || null", "attr.aria-required": "required.toString()", "attr.aria-disabled": "disabled.toString()", "attr.aria-invalid": "errorState", "attr.aria-describedby": "_ariaDescribedby || null", "attr.aria-activedescendant": "_getAriaActiveDescendant()", "class.mat-select-disabled": "disabled", "class.mat-select-invalid": "errorState", "class.mat-select-required": "required", "class.mat-select-empty": "empty", "class.mat-select-multiple": "multiple" }, classAttribute: "mat-select" }, providers: [
1269
1288
  { provide: MatFormFieldControl, useExisting: MatSelect },
1270
1289
  { provide: MAT_OPTION_PARENT_COMPONENT, useExisting: MatSelect },
1271
- ], queries: [{ propertyName: "customTrigger", first: true, predicate: MAT_SELECT_TRIGGER, descendants: true }, { propertyName: "options", predicate: MatOption, descendants: true }, { propertyName: "optionGroups", predicate: MAT_OPTGROUP, descendants: true }], exportAs: ["matSelect"], usesInheritance: true, ngImport: i0, template: "<!--\n Note that the select trigger element specifies `aria-owns` pointing to the listbox overlay.\n While aria-owns is not required for the ARIA 1.2 `role=\"combobox\"` interaction pattern,\n it fixes an issue with VoiceOver when the select appears inside of an `aria-model=\"true\"`\n element (e.g. a dialog). Without this `aria-owns`, the `aria-modal` on a dialog prevents\n VoiceOver from \"seeing\" the select's listbox overlay for aria-activedescendant.\n Using `aria-owns` re-parents the select overlay so that it works again.\n See https://github.com/angular/components/issues/20694\n-->\n<div cdk-overlay-origin\n [attr.aria-owns]=\"panelOpen ? id + '-panel' : null\"\n class=\"mat-select-trigger\"\n (click)=\"toggle()\"\n #origin=\"cdkOverlayOrigin\"\n #trigger>\n <div class=\"mat-select-value\" [ngSwitch]=\"empty\" [attr.id]=\"_valueId\">\n <span class=\"mat-select-placeholder mat-select-min-line\" *ngSwitchCase=\"true\">{{placeholder}}</span>\n <span class=\"mat-select-value-text\" *ngSwitchCase=\"false\" [ngSwitch]=\"!!customTrigger\">\n <span class=\"mat-select-min-line\" *ngSwitchDefault>{{triggerValue}}</span>\n <ng-content select=\"mat-select-trigger\" *ngSwitchCase=\"true\"></ng-content>\n </span>\n </div>\n\n <div class=\"mat-select-arrow-wrapper\"><div class=\"mat-select-arrow\"></div></div>\n</div>\n\n<ng-template\n cdk-connected-overlay\n cdkConnectedOverlayLockPosition\n cdkConnectedOverlayHasBackdrop\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n [cdkConnectedOverlayPanelClass]=\"_overlayPanelClass\"\n [cdkConnectedOverlayScrollStrategy]=\"_scrollStrategy\"\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayOpen]=\"panelOpen\"\n [cdkConnectedOverlayPositions]=\"_positions\"\n [cdkConnectedOverlayMinWidth]=\"_triggerRect?.width!\"\n [cdkConnectedOverlayOffsetY]=\"_offsetY\"\n (backdropClick)=\"close()\"\n (attach)=\"_onAttached()\"\n (detach)=\"close()\">\n <div class=\"mat-select-panel-wrap\" [@transformPanelWrap]>\n <div\n #panel\n role=\"listbox\"\n tabindex=\"-1\"\n class=\"mat-select-panel {{ _getPanelTheme() }}\"\n [attr.id]=\"id + '-panel'\"\n [attr.aria-multiselectable]=\"multiple\"\n [attr.aria-label]=\"ariaLabel || null\"\n [attr.aria-labelledby]=\"_getPanelAriaLabelledby()\"\n [ngClass]=\"panelClass\"\n [@transformPanel]=\"multiple ? 'showing-multiple' : 'showing'\"\n (@transformPanel.done)=\"_panelDoneAnimatingStream.next($event.toState)\"\n [style.transformOrigin]=\"_transformOrigin\"\n [style.font-size.px]=\"_triggerFontSize\"\n (keydown)=\"_handleKeydown($event)\">\n <ng-content></ng-content>\n </div>\n </div>\n</ng-template>\n", styles: [".mat-select{display:inline-block;width:100%;outline:none}.mat-select-trigger{display:inline-table;cursor:pointer;position:relative;box-sizing:border-box}.mat-select-disabled .mat-select-trigger{-webkit-user-select:none;-moz-user-select:none;user-select:none;cursor:default}.mat-select-value{display:table-cell;max-width:0;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mat-select-value-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mat-select-arrow-wrapper{display:table-cell;vertical-align:middle}.mat-form-field-appearance-fill .mat-select-arrow-wrapper{transform:translateY(-50%)}.mat-form-field-appearance-outline .mat-select-arrow-wrapper{transform:translateY(-25%)}.mat-form-field-appearance-standard.mat-form-field-has-label .mat-select:not(.mat-select-empty) .mat-select-arrow-wrapper{transform:translateY(-50%)}.mat-form-field-appearance-standard .mat-select.mat-select-empty .mat-select-arrow-wrapper{transition:transform 400ms cubic-bezier(0.25, 0.8, 0.25, 1)}._mat-animation-noopable.mat-form-field-appearance-standard .mat-select.mat-select-empty .mat-select-arrow-wrapper{transition:none}.mat-select-arrow{width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid;margin:0 4px}.mat-form-field.mat-focused .mat-select-arrow{transform:translateX(0)}.mat-select-panel-wrap{flex-basis:100%}.mat-select-panel{min-width:112px;max-width:280px;overflow:auto;-webkit-overflow-scrolling:touch;padding-top:0;padding-bottom:0;max-height:256px;min-width:100%;border-radius:4px;outline:0}.cdk-high-contrast-active .mat-select-panel{outline:solid 1px}.mat-select-panel .mat-optgroup-label,.mat-select-panel .mat-option{font-size:inherit;line-height:3em;height:3em}.mat-form-field-type-mat-select:not(.mat-form-field-disabled) .mat-form-field-flex{cursor:pointer}.mat-form-field-type-mat-select .mat-form-field-label{width:calc(100% - 18px)}.mat-select-placeholder{transition:color 400ms 133.3333333333ms cubic-bezier(0.25, 0.8, 0.25, 1)}._mat-animation-noopable .mat-select-placeholder{transition:none}.mat-form-field-hide-placeholder .mat-select-placeholder{color:transparent;-webkit-text-fill-color:transparent;transition:none;display:block}.mat-select-min-line:empty::before{content:\" \";white-space:pre;width:1px;display:inline-block;opacity:0}\n"], directives: [{ type: i7.CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { type: i8.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i8.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i8.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { type: i7.CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { type: i8.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], animations: [matSelectAnimations.transformPanelWrap, matSelectAnimations.transformPanel], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
1272
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.4", ngImport: i0, type: MatSelect, decorators: [{
1290
+ ], queries: [{ propertyName: "customTrigger", first: true, predicate: MAT_SELECT_TRIGGER, descendants: true }, { propertyName: "options", predicate: MatOption, descendants: true }, { propertyName: "optionGroups", predicate: MAT_OPTGROUP, descendants: true }], exportAs: ["matSelect"], usesInheritance: true, ngImport: i0, template: "<!--\n Note that the select trigger element specifies `aria-owns` pointing to the listbox overlay.\n While aria-owns is not required for the ARIA 1.2 `role=\"combobox\"` interaction pattern,\n it fixes an issue with VoiceOver when the select appears inside of an `aria-model=\"true\"`\n element (e.g. a dialog). Without this `aria-owns`, the `aria-modal` on a dialog prevents\n VoiceOver from \"seeing\" the select's listbox overlay for aria-activedescendant.\n Using `aria-owns` re-parents the select overlay so that it works again.\n See https://github.com/angular/components/issues/20694\n-->\n<div cdk-overlay-origin\n [attr.aria-owns]=\"panelOpen ? id + '-panel' : null\"\n class=\"mat-select-trigger\"\n (click)=\"toggle()\"\n #origin=\"cdkOverlayOrigin\"\n #trigger>\n <div class=\"mat-select-value\" [ngSwitch]=\"empty\" [attr.id]=\"_valueId\">\n <span class=\"mat-select-placeholder mat-select-min-line\" *ngSwitchCase=\"true\">{{placeholder}}</span>\n <span class=\"mat-select-value-text\" *ngSwitchCase=\"false\" [ngSwitch]=\"!!customTrigger\">\n <span class=\"mat-select-min-line\" *ngSwitchDefault>{{triggerValue}}</span>\n <ng-content select=\"mat-select-trigger\" *ngSwitchCase=\"true\"></ng-content>\n </span>\n </div>\n\n <div class=\"mat-select-arrow-wrapper\"><div class=\"mat-select-arrow\"></div></div>\n</div>\n\n<ng-template\n cdk-connected-overlay\n cdkConnectedOverlayLockPosition\n cdkConnectedOverlayHasBackdrop\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n [cdkConnectedOverlayPanelClass]=\"_overlayPanelClass\"\n [cdkConnectedOverlayScrollStrategy]=\"_scrollStrategy\"\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayOpen]=\"panelOpen\"\n [cdkConnectedOverlayPositions]=\"_positions\"\n [cdkConnectedOverlayMinWidth]=\"_triggerRect?.width!\"\n [cdkConnectedOverlayOffsetY]=\"_offsetY\"\n (backdropClick)=\"close()\"\n (attach)=\"_onAttached()\"\n (detach)=\"close()\">\n <div class=\"mat-select-panel-wrap\" [@transformPanelWrap]>\n <div\n #panel\n role=\"listbox\"\n tabindex=\"-1\"\n class=\"mat-select-panel {{ _getPanelTheme() }}\"\n [attr.id]=\"id + '-panel'\"\n [attr.aria-multiselectable]=\"multiple\"\n [attr.aria-label]=\"ariaLabel || null\"\n [attr.aria-labelledby]=\"_getPanelAriaLabelledby()\"\n [ngClass]=\"panelClass\"\n [@transformPanel]=\"multiple ? 'showing-multiple' : 'showing'\"\n (@transformPanel.done)=\"_panelDoneAnimatingStream.next($event.toState)\"\n [style.transformOrigin]=\"_transformOrigin\"\n [style.font-size.px]=\"_triggerFontSize\"\n (keydown)=\"_handleKeydown($event)\">\n <ng-content></ng-content>\n </div>\n </div>\n</ng-template>\n", styles: [".mat-select{display:inline-block;width:100%;outline:none}.mat-select-trigger{display:inline-flex;align-items:center;cursor:pointer;position:relative;box-sizing:border-box;width:100%}.mat-select-disabled .mat-select-trigger{-webkit-user-select:none;user-select:none;cursor:default}.mat-select-value{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mat-select-value-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mat-select-arrow-wrapper{height:16px;flex-shrink:0;display:inline-flex;align-items:center}.mat-form-field-appearance-fill .mat-select-arrow-wrapper{transform:translateY(-50%)}.mat-form-field-appearance-outline .mat-select-arrow-wrapper{transform:translateY(-25%)}.mat-form-field-appearance-standard.mat-form-field-has-label .mat-select:not(.mat-select-empty) .mat-select-arrow-wrapper{transform:translateY(-50%)}.mat-form-field-appearance-standard .mat-select.mat-select-empty .mat-select-arrow-wrapper{transition:transform 400ms cubic-bezier(0.25, 0.8, 0.25, 1)}._mat-animation-noopable.mat-form-field-appearance-standard .mat-select.mat-select-empty .mat-select-arrow-wrapper{transition:none}.mat-select-arrow{width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid;margin:0 4px}.mat-form-field.mat-focused .mat-select-arrow{transform:translateX(0)}.mat-select-panel-wrap{flex-basis:100%}.mat-select-panel{min-width:112px;max-width:280px;overflow:auto;-webkit-overflow-scrolling:touch;padding-top:0;padding-bottom:0;max-height:256px;min-width:100%;border-radius:4px;outline:0}.cdk-high-contrast-active .mat-select-panel{outline:solid 1px}.mat-select-panel .mat-optgroup-label,.mat-select-panel .mat-option{font-size:inherit;line-height:3em;height:3em}.mat-form-field-type-mat-select:not(.mat-form-field-disabled) .mat-form-field-flex{cursor:pointer}.mat-form-field-type-mat-select .mat-form-field-label{width:calc(100% - 18px)}.mat-select-placeholder{transition:color 400ms 133.3333333333ms cubic-bezier(0.25, 0.8, 0.25, 1)}._mat-animation-noopable .mat-select-placeholder{transition:none}.mat-form-field-hide-placeholder .mat-select-placeholder{color:transparent;-webkit-text-fill-color:transparent;transition:none;display:block}.mat-select-min-line:empty::before{content:\" \";white-space:pre;width:1px;display:inline-block;opacity:0}\n"], directives: [{ type: i7.CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { type: i8.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i8.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i8.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { type: i7.CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { type: i8.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], animations: [matSelectAnimations.transformPanelWrap, matSelectAnimations.transformPanel], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
1291
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.6", ngImport: i0, type: MatSelect, decorators: [{
1273
1292
  type: Component,
1274
1293
  args: [{ selector: 'mat-select', exportAs: 'matSelect', inputs: ['disabled', 'disableRipple', 'tabIndex'], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
1275
1294
  'role': 'combobox',
@@ -1300,7 +1319,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.4",
1300
1319
  }, animations: [matSelectAnimations.transformPanelWrap, matSelectAnimations.transformPanel], providers: [
1301
1320
  { provide: MatFormFieldControl, useExisting: MatSelect },
1302
1321
  { provide: MAT_OPTION_PARENT_COMPONENT, useExisting: MatSelect },
1303
- ], template: "<!--\n Note that the select trigger element specifies `aria-owns` pointing to the listbox overlay.\n While aria-owns is not required for the ARIA 1.2 `role=\"combobox\"` interaction pattern,\n it fixes an issue with VoiceOver when the select appears inside of an `aria-model=\"true\"`\n element (e.g. a dialog). Without this `aria-owns`, the `aria-modal` on a dialog prevents\n VoiceOver from \"seeing\" the select's listbox overlay for aria-activedescendant.\n Using `aria-owns` re-parents the select overlay so that it works again.\n See https://github.com/angular/components/issues/20694\n-->\n<div cdk-overlay-origin\n [attr.aria-owns]=\"panelOpen ? id + '-panel' : null\"\n class=\"mat-select-trigger\"\n (click)=\"toggle()\"\n #origin=\"cdkOverlayOrigin\"\n #trigger>\n <div class=\"mat-select-value\" [ngSwitch]=\"empty\" [attr.id]=\"_valueId\">\n <span class=\"mat-select-placeholder mat-select-min-line\" *ngSwitchCase=\"true\">{{placeholder}}</span>\n <span class=\"mat-select-value-text\" *ngSwitchCase=\"false\" [ngSwitch]=\"!!customTrigger\">\n <span class=\"mat-select-min-line\" *ngSwitchDefault>{{triggerValue}}</span>\n <ng-content select=\"mat-select-trigger\" *ngSwitchCase=\"true\"></ng-content>\n </span>\n </div>\n\n <div class=\"mat-select-arrow-wrapper\"><div class=\"mat-select-arrow\"></div></div>\n</div>\n\n<ng-template\n cdk-connected-overlay\n cdkConnectedOverlayLockPosition\n cdkConnectedOverlayHasBackdrop\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n [cdkConnectedOverlayPanelClass]=\"_overlayPanelClass\"\n [cdkConnectedOverlayScrollStrategy]=\"_scrollStrategy\"\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayOpen]=\"panelOpen\"\n [cdkConnectedOverlayPositions]=\"_positions\"\n [cdkConnectedOverlayMinWidth]=\"_triggerRect?.width!\"\n [cdkConnectedOverlayOffsetY]=\"_offsetY\"\n (backdropClick)=\"close()\"\n (attach)=\"_onAttached()\"\n (detach)=\"close()\">\n <div class=\"mat-select-panel-wrap\" [@transformPanelWrap]>\n <div\n #panel\n role=\"listbox\"\n tabindex=\"-1\"\n class=\"mat-select-panel {{ _getPanelTheme() }}\"\n [attr.id]=\"id + '-panel'\"\n [attr.aria-multiselectable]=\"multiple\"\n [attr.aria-label]=\"ariaLabel || null\"\n [attr.aria-labelledby]=\"_getPanelAriaLabelledby()\"\n [ngClass]=\"panelClass\"\n [@transformPanel]=\"multiple ? 'showing-multiple' : 'showing'\"\n (@transformPanel.done)=\"_panelDoneAnimatingStream.next($event.toState)\"\n [style.transformOrigin]=\"_transformOrigin\"\n [style.font-size.px]=\"_triggerFontSize\"\n (keydown)=\"_handleKeydown($event)\">\n <ng-content></ng-content>\n </div>\n </div>\n</ng-template>\n", styles: [".mat-select{display:inline-block;width:100%;outline:none}.mat-select-trigger{display:inline-table;cursor:pointer;position:relative;box-sizing:border-box}.mat-select-disabled .mat-select-trigger{-webkit-user-select:none;-moz-user-select:none;user-select:none;cursor:default}.mat-select-value{display:table-cell;max-width:0;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mat-select-value-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mat-select-arrow-wrapper{display:table-cell;vertical-align:middle}.mat-form-field-appearance-fill .mat-select-arrow-wrapper{transform:translateY(-50%)}.mat-form-field-appearance-outline .mat-select-arrow-wrapper{transform:translateY(-25%)}.mat-form-field-appearance-standard.mat-form-field-has-label .mat-select:not(.mat-select-empty) .mat-select-arrow-wrapper{transform:translateY(-50%)}.mat-form-field-appearance-standard .mat-select.mat-select-empty .mat-select-arrow-wrapper{transition:transform 400ms cubic-bezier(0.25, 0.8, 0.25, 1)}._mat-animation-noopable.mat-form-field-appearance-standard .mat-select.mat-select-empty .mat-select-arrow-wrapper{transition:none}.mat-select-arrow{width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid;margin:0 4px}.mat-form-field.mat-focused .mat-select-arrow{transform:translateX(0)}.mat-select-panel-wrap{flex-basis:100%}.mat-select-panel{min-width:112px;max-width:280px;overflow:auto;-webkit-overflow-scrolling:touch;padding-top:0;padding-bottom:0;max-height:256px;min-width:100%;border-radius:4px;outline:0}.cdk-high-contrast-active .mat-select-panel{outline:solid 1px}.mat-select-panel .mat-optgroup-label,.mat-select-panel .mat-option{font-size:inherit;line-height:3em;height:3em}.mat-form-field-type-mat-select:not(.mat-form-field-disabled) .mat-form-field-flex{cursor:pointer}.mat-form-field-type-mat-select .mat-form-field-label{width:calc(100% - 18px)}.mat-select-placeholder{transition:color 400ms 133.3333333333ms cubic-bezier(0.25, 0.8, 0.25, 1)}._mat-animation-noopable .mat-select-placeholder{transition:none}.mat-form-field-hide-placeholder .mat-select-placeholder{color:transparent;-webkit-text-fill-color:transparent;transition:none;display:block}.mat-select-min-line:empty::before{content:\" \";white-space:pre;width:1px;display:inline-block;opacity:0}\n"] }]
1322
+ ], template: "<!--\n Note that the select trigger element specifies `aria-owns` pointing to the listbox overlay.\n While aria-owns is not required for the ARIA 1.2 `role=\"combobox\"` interaction pattern,\n it fixes an issue with VoiceOver when the select appears inside of an `aria-model=\"true\"`\n element (e.g. a dialog). Without this `aria-owns`, the `aria-modal` on a dialog prevents\n VoiceOver from \"seeing\" the select's listbox overlay for aria-activedescendant.\n Using `aria-owns` re-parents the select overlay so that it works again.\n See https://github.com/angular/components/issues/20694\n-->\n<div cdk-overlay-origin\n [attr.aria-owns]=\"panelOpen ? id + '-panel' : null\"\n class=\"mat-select-trigger\"\n (click)=\"toggle()\"\n #origin=\"cdkOverlayOrigin\"\n #trigger>\n <div class=\"mat-select-value\" [ngSwitch]=\"empty\" [attr.id]=\"_valueId\">\n <span class=\"mat-select-placeholder mat-select-min-line\" *ngSwitchCase=\"true\">{{placeholder}}</span>\n <span class=\"mat-select-value-text\" *ngSwitchCase=\"false\" [ngSwitch]=\"!!customTrigger\">\n <span class=\"mat-select-min-line\" *ngSwitchDefault>{{triggerValue}}</span>\n <ng-content select=\"mat-select-trigger\" *ngSwitchCase=\"true\"></ng-content>\n </span>\n </div>\n\n <div class=\"mat-select-arrow-wrapper\"><div class=\"mat-select-arrow\"></div></div>\n</div>\n\n<ng-template\n cdk-connected-overlay\n cdkConnectedOverlayLockPosition\n cdkConnectedOverlayHasBackdrop\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n [cdkConnectedOverlayPanelClass]=\"_overlayPanelClass\"\n [cdkConnectedOverlayScrollStrategy]=\"_scrollStrategy\"\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayOpen]=\"panelOpen\"\n [cdkConnectedOverlayPositions]=\"_positions\"\n [cdkConnectedOverlayMinWidth]=\"_triggerRect?.width!\"\n [cdkConnectedOverlayOffsetY]=\"_offsetY\"\n (backdropClick)=\"close()\"\n (attach)=\"_onAttached()\"\n (detach)=\"close()\">\n <div class=\"mat-select-panel-wrap\" [@transformPanelWrap]>\n <div\n #panel\n role=\"listbox\"\n tabindex=\"-1\"\n class=\"mat-select-panel {{ _getPanelTheme() }}\"\n [attr.id]=\"id + '-panel'\"\n [attr.aria-multiselectable]=\"multiple\"\n [attr.aria-label]=\"ariaLabel || null\"\n [attr.aria-labelledby]=\"_getPanelAriaLabelledby()\"\n [ngClass]=\"panelClass\"\n [@transformPanel]=\"multiple ? 'showing-multiple' : 'showing'\"\n (@transformPanel.done)=\"_panelDoneAnimatingStream.next($event.toState)\"\n [style.transformOrigin]=\"_transformOrigin\"\n [style.font-size.px]=\"_triggerFontSize\"\n (keydown)=\"_handleKeydown($event)\">\n <ng-content></ng-content>\n </div>\n </div>\n</ng-template>\n", styles: [".mat-select{display:inline-block;width:100%;outline:none}.mat-select-trigger{display:inline-flex;align-items:center;cursor:pointer;position:relative;box-sizing:border-box;width:100%}.mat-select-disabled .mat-select-trigger{-webkit-user-select:none;user-select:none;cursor:default}.mat-select-value{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mat-select-value-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mat-select-arrow-wrapper{height:16px;flex-shrink:0;display:inline-flex;align-items:center}.mat-form-field-appearance-fill .mat-select-arrow-wrapper{transform:translateY(-50%)}.mat-form-field-appearance-outline .mat-select-arrow-wrapper{transform:translateY(-25%)}.mat-form-field-appearance-standard.mat-form-field-has-label .mat-select:not(.mat-select-empty) .mat-select-arrow-wrapper{transform:translateY(-50%)}.mat-form-field-appearance-standard .mat-select.mat-select-empty .mat-select-arrow-wrapper{transition:transform 400ms cubic-bezier(0.25, 0.8, 0.25, 1)}._mat-animation-noopable.mat-form-field-appearance-standard .mat-select.mat-select-empty .mat-select-arrow-wrapper{transition:none}.mat-select-arrow{width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid;margin:0 4px}.mat-form-field.mat-focused .mat-select-arrow{transform:translateX(0)}.mat-select-panel-wrap{flex-basis:100%}.mat-select-panel{min-width:112px;max-width:280px;overflow:auto;-webkit-overflow-scrolling:touch;padding-top:0;padding-bottom:0;max-height:256px;min-width:100%;border-radius:4px;outline:0}.cdk-high-contrast-active .mat-select-panel{outline:solid 1px}.mat-select-panel .mat-optgroup-label,.mat-select-panel .mat-option{font-size:inherit;line-height:3em;height:3em}.mat-form-field-type-mat-select:not(.mat-form-field-disabled) .mat-form-field-flex{cursor:pointer}.mat-form-field-type-mat-select .mat-form-field-label{width:calc(100% - 18px)}.mat-select-placeholder{transition:color 400ms 133.3333333333ms cubic-bezier(0.25, 0.8, 0.25, 1)}._mat-animation-noopable .mat-select-placeholder{transition:none}.mat-form-field-hide-placeholder .mat-select-placeholder{color:transparent;-webkit-text-fill-color:transparent;transition:none;display:block}.mat-select-min-line:empty::before{content:\" \";white-space:pre;width:1px;display:inline-block;opacity:0}\n"] }]
1304
1323
  }], propDecorators: { options: [{
1305
1324
  type: ContentChildren,
1306
1325
  args: [MatOption, { descendants: true }]
@@ -1321,18 +1340,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.4",
1321
1340
  */
1322
1341
  class MatSelectModule {
1323
1342
  }
1324
- MatSelectModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0-next.4", ngImport: i0, type: MatSelectModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1325
- MatSelectModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "14.0.0-next.4", ngImport: i0, type: MatSelectModule, declarations: [MatSelect, MatSelectTrigger], imports: [CommonModule, OverlayModule, MatOptionModule, MatCommonModule], exports: [CdkScrollableModule,
1343
+ MatSelectModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0-next.6", ngImport: i0, type: MatSelectModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1344
+ MatSelectModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "14.0.0-next.6", ngImport: i0, type: MatSelectModule, declarations: [MatSelect, MatSelectTrigger], imports: [CommonModule, OverlayModule, MatOptionModule, MatCommonModule], exports: [CdkScrollableModule,
1326
1345
  MatFormFieldModule,
1327
1346
  MatSelect,
1328
1347
  MatSelectTrigger,
1329
1348
  MatOptionModule,
1330
1349
  MatCommonModule] });
1331
- MatSelectModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.0-next.4", ngImport: i0, type: MatSelectModule, providers: [MAT_SELECT_SCROLL_STRATEGY_PROVIDER], imports: [[CommonModule, OverlayModule, MatOptionModule, MatCommonModule], CdkScrollableModule,
1350
+ MatSelectModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.0-next.6", ngImport: i0, type: MatSelectModule, providers: [MAT_SELECT_SCROLL_STRATEGY_PROVIDER], imports: [[CommonModule, OverlayModule, MatOptionModule, MatCommonModule], CdkScrollableModule,
1332
1351
  MatFormFieldModule,
1333
1352
  MatOptionModule,
1334
1353
  MatCommonModule] });
1335
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.4", ngImport: i0, type: MatSelectModule, decorators: [{
1354
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.6", ngImport: i0, type: MatSelectModule, decorators: [{
1336
1355
  type: NgModule,
1337
1356
  args: [{
1338
1357
  imports: [CommonModule, OverlayModule, MatOptionModule, MatCommonModule],