@angular/material 14.0.0-next.1 → 14.0.0-next.10

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 (534) hide show
  1. package/_index.scss +20 -1
  2. package/autocomplete/autocomplete-trigger.d.ts +14 -3
  3. package/autocomplete/autocomplete.d.ts +7 -1
  4. package/badge/_badge-theme.scss +11 -2
  5. package/button-toggle/_button-toggle-theme.scss +14 -2
  6. package/checkbox/_checkbox-theme.scss +1 -1
  7. package/checkbox/checkbox.d.ts +1 -1
  8. package/checkbox/testing/checkbox-harness-filters.d.ts +2 -0
  9. package/chips/chip-input.d.ts +2 -5
  10. package/chips/chip-list.d.ts +20 -5
  11. package/chips/chip.d.ts +3 -1
  12. package/core/_core.scss +5 -7
  13. package/core/common-behaviors/error-state.d.ts +1 -2
  14. package/core/datetime/index.d.ts +1 -2
  15. package/core/ripple/_ripple.scss +2 -2
  16. package/core/ripple/index.d.ts +1 -2
  17. package/core/ripple/ripple-ref.d.ts +2 -1
  18. package/core/ripple/ripple-renderer.d.ts +16 -3
  19. package/core/style/_menu-common.scss +3 -2
  20. package/core/style/_vendor-prefixes.scss +1 -17
  21. package/core/theming/_theming.scss +9 -0
  22. package/core/typography/_typography.scss +51 -14
  23. package/datepicker/calendar-body.d.ts +34 -4
  24. package/datepicker/date-range-input-parts.d.ts +4 -1
  25. package/datepicker/datepicker-base.d.ts +2 -0
  26. package/datepicker/month-view.d.ts +18 -0
  27. package/datepicker/multi-year-view.d.ts +18 -0
  28. package/datepicker/year-view.d.ts +18 -0
  29. package/dialog/dialog-animations.d.ts +10 -0
  30. package/dialog/dialog-config.d.ts +12 -1
  31. package/dialog/dialog-container.d.ts +12 -4
  32. package/dialog/dialog-content-directives.d.ts +5 -1
  33. package/dialog/dialog.d.ts +12 -6
  34. package/dialog/public-api.d.ts +1 -1
  35. package/dialog/testing/dialog-opener.d.ts +33 -0
  36. package/dialog/testing/public-api.d.ts +1 -0
  37. package/esm2020/autocomplete/autocomplete-module.mjs +5 -5
  38. package/esm2020/autocomplete/autocomplete-origin.mjs +7 -7
  39. package/esm2020/autocomplete/autocomplete-trigger.mjs +96 -49
  40. package/esm2020/autocomplete/autocomplete.mjs +19 -9
  41. package/esm2020/autocomplete/testing/autocomplete-harness.mjs +7 -1
  42. package/esm2020/badge/badge-module.mjs +5 -5
  43. package/esm2020/badge/badge.mjs +4 -4
  44. package/esm2020/bottom-sheet/bottom-sheet-animations.mjs +10 -4
  45. package/esm2020/bottom-sheet/bottom-sheet-container.mjs +12 -7
  46. package/esm2020/bottom-sheet/bottom-sheet-module.mjs +5 -5
  47. package/esm2020/bottom-sheet/bottom-sheet.mjs +4 -4
  48. package/esm2020/button/button-module.mjs +5 -5
  49. package/esm2020/button/button.mjs +10 -10
  50. package/esm2020/button-toggle/button-toggle-module.mjs +5 -5
  51. package/esm2020/button-toggle/button-toggle.mjs +8 -8
  52. package/esm2020/card/card-module.mjs +5 -5
  53. package/esm2020/card/card.mjs +44 -44
  54. package/esm2020/checkbox/checkbox-module.mjs +9 -9
  55. package/esm2020/checkbox/checkbox-required-validator.mjs +4 -4
  56. package/esm2020/checkbox/checkbox.mjs +12 -8
  57. package/esm2020/checkbox/testing/checkbox-harness-filters.mjs +1 -1
  58. package/esm2020/checkbox/testing/checkbox-harness.mjs +3 -2
  59. package/esm2020/chips/chip-input.mjs +4 -4
  60. package/esm2020/chips/chip-list.mjs +34 -9
  61. package/esm2020/chips/chip.mjs +19 -14
  62. package/esm2020/chips/chips-module.mjs +5 -5
  63. package/esm2020/core/common-behaviors/common-module.mjs +5 -5
  64. package/esm2020/core/common-behaviors/error-state.mjs +1 -8
  65. package/esm2020/core/datetime/index.mjs +9 -11
  66. package/esm2020/core/datetime/native-date-adapter.mjs +4 -4
  67. package/esm2020/core/error/error-options.mjs +7 -7
  68. package/esm2020/core/line/line.mjs +8 -8
  69. package/esm2020/core/option/index.mjs +5 -5
  70. package/esm2020/core/option/optgroup.mjs +8 -8
  71. package/esm2020/core/option/option.mjs +8 -8
  72. package/esm2020/core/ripple/index.mjs +6 -7
  73. package/esm2020/core/ripple/ripple-ref.mjs +5 -2
  74. package/esm2020/core/ripple/ripple-renderer.mjs +112 -54
  75. package/esm2020/core/ripple/ripple.mjs +4 -4
  76. package/esm2020/core/selection/pseudo-checkbox/pseudo-checkbox-module.mjs +5 -5
  77. package/esm2020/core/selection/pseudo-checkbox/pseudo-checkbox.mjs +5 -5
  78. package/esm2020/core/version.mjs +1 -1
  79. package/esm2020/datepicker/calendar-body.mjs +57 -12
  80. package/esm2020/datepicker/calendar.mjs +26 -15
  81. package/esm2020/datepicker/date-range-input-parts.mjs +10 -10
  82. package/esm2020/datepicker/date-range-input.mjs +6 -6
  83. package/esm2020/datepicker/date-range-picker.mjs +4 -4
  84. package/esm2020/datepicker/date-range-selection-strategy.mjs +4 -4
  85. package/esm2020/datepicker/date-selection-model.mjs +10 -10
  86. package/esm2020/datepicker/datepicker-actions.mjs +12 -12
  87. package/esm2020/datepicker/datepicker-base.mjs +9 -17
  88. package/esm2020/datepicker/datepicker-input-base.mjs +12 -7
  89. package/esm2020/datepicker/datepicker-input.mjs +4 -4
  90. package/esm2020/datepicker/datepicker-intl.mjs +4 -4
  91. package/esm2020/datepicker/datepicker-module.mjs +5 -5
  92. package/esm2020/datepicker/datepicker-toggle.mjs +8 -8
  93. package/esm2020/datepicker/datepicker.mjs +4 -4
  94. package/esm2020/datepicker/month-view.mjs +36 -9
  95. package/esm2020/datepicker/multi-year-view.mjs +42 -10
  96. package/esm2020/datepicker/year-view.mjs +41 -10
  97. package/esm2020/dialog/dialog-animations.mjs +17 -4
  98. package/esm2020/dialog/dialog-config.mjs +8 -1
  99. package/esm2020/dialog/dialog-container.mjs +44 -26
  100. package/esm2020/dialog/dialog-content-directives.mjs +31 -15
  101. package/esm2020/dialog/dialog-module.mjs +5 -5
  102. package/esm2020/dialog/dialog.mjs +24 -40
  103. package/esm2020/dialog/public-api.mjs +2 -2
  104. package/esm2020/dialog/testing/dialog-opener.mjs +67 -0
  105. package/esm2020/dialog/testing/public-api.mjs +2 -1
  106. package/esm2020/divider/divider-module.mjs +5 -5
  107. package/esm2020/divider/divider.mjs +5 -5
  108. package/esm2020/expansion/accordion.mjs +4 -4
  109. package/esm2020/expansion/expansion-module.mjs +5 -5
  110. package/esm2020/expansion/expansion-panel-base.mjs +14 -0
  111. package/esm2020/expansion/expansion-panel-content.mjs +14 -7
  112. package/esm2020/expansion/expansion-panel-header.mjs +11 -11
  113. package/esm2020/expansion/expansion-panel.mjs +13 -10
  114. package/esm2020/expansion/public-api.mjs +2 -1
  115. package/esm2020/form-field/error.mjs +4 -4
  116. package/esm2020/form-field/form-field-control.mjs +4 -4
  117. package/esm2020/form-field/form-field-module.mjs +5 -5
  118. package/esm2020/form-field/form-field.mjs +22 -14
  119. package/esm2020/form-field/hint.mjs +4 -4
  120. package/esm2020/form-field/label.mjs +4 -4
  121. package/esm2020/form-field/placeholder.mjs +4 -4
  122. package/esm2020/form-field/prefix.mjs +4 -4
  123. package/esm2020/form-field/suffix.mjs +4 -4
  124. package/esm2020/form-field/testing/public-api.mjs +4 -4
  125. package/esm2020/grid-list/grid-list-module.mjs +5 -5
  126. package/esm2020/grid-list/grid-list.mjs +6 -6
  127. package/esm2020/grid-list/grid-tile.mjs +17 -17
  128. package/esm2020/icon/icon-module.mjs +5 -5
  129. package/esm2020/icon/icon-registry.mjs +12 -14
  130. package/esm2020/icon/icon.mjs +31 -28
  131. package/esm2020/icon/testing/fake-icon-registry.mjs +9 -9
  132. package/esm2020/input/input-module.mjs +5 -5
  133. package/esm2020/input/input.mjs +41 -24
  134. package/esm2020/list/list-module.mjs +5 -5
  135. package/esm2020/list/list.mjs +21 -23
  136. package/esm2020/list/selection-list.mjs +15 -38
  137. package/esm2020/list/testing/list-item-harness-base.mjs +1 -9
  138. package/esm2020/menu/menu-content.mjs +7 -7
  139. package/esm2020/menu/menu-errors.mjs +1 -12
  140. package/esm2020/menu/menu-item.mjs +8 -4
  141. package/esm2020/menu/menu-module.mjs +5 -5
  142. package/esm2020/menu/menu-trigger.mjs +73 -66
  143. package/esm2020/menu/menu.mjs +35 -14
  144. package/esm2020/paginator/paginator-intl.mjs +4 -4
  145. package/esm2020/paginator/paginator-module.mjs +5 -5
  146. package/esm2020/paginator/paginator.mjs +12 -8
  147. package/esm2020/progress-bar/progress-bar-module.mjs +5 -5
  148. package/esm2020/progress-bar/progress-bar.mjs +8 -5
  149. package/esm2020/progress-spinner/progress-spinner-module.mjs +8 -8
  150. package/esm2020/progress-spinner/progress-spinner.mjs +14 -51
  151. package/esm2020/progress-spinner/public-api.mjs +10 -2
  152. package/esm2020/radio/radio-module.mjs +5 -5
  153. package/esm2020/radio/radio.mjs +42 -14
  154. package/esm2020/radio/testing/radio-harness-filters.mjs +1 -1
  155. package/esm2020/radio/testing/radio-harness.mjs +3 -2
  156. package/esm2020/select/select-module.mjs +5 -5
  157. package/esm2020/select/select.mjs +55 -24
  158. package/esm2020/sidenav/drawer.mjs +19 -14
  159. package/esm2020/sidenav/sidenav-module.mjs +7 -8
  160. package/esm2020/sidenav/sidenav.mjs +12 -12
  161. package/esm2020/slide-toggle/slide-toggle-module.mjs +9 -9
  162. package/esm2020/slide-toggle/slide-toggle-required-validator.mjs +4 -4
  163. package/esm2020/slide-toggle/slide-toggle.mjs +6 -5
  164. package/esm2020/slide-toggle/testing/slide-toggle-harness-filters.mjs +1 -1
  165. package/esm2020/slide-toggle/testing/slide-toggle-harness.mjs +4 -2
  166. package/esm2020/slider/slider-module.mjs +5 -5
  167. package/esm2020/slider/slider.mjs +5 -5
  168. package/esm2020/snack-bar/simple-snack-bar.mjs +5 -5
  169. package/esm2020/snack-bar/snack-bar-container.mjs +24 -18
  170. package/esm2020/snack-bar/snack-bar-module.mjs +5 -5
  171. package/esm2020/snack-bar/snack-bar.mjs +7 -7
  172. package/esm2020/sort/sort-header-intl.mjs +4 -4
  173. package/esm2020/sort/sort-header.mjs +16 -8
  174. package/esm2020/sort/sort-module.mjs +5 -5
  175. package/esm2020/sort/sort.mjs +4 -4
  176. package/esm2020/stepper/public-api.mjs +2 -2
  177. package/esm2020/stepper/step-content.mjs +4 -4
  178. package/esm2020/stepper/step-header.mjs +5 -5
  179. package/esm2020/stepper/step-label.mjs +4 -4
  180. package/esm2020/stepper/stepper-animations.mjs +9 -3
  181. package/esm2020/stepper/stepper-button.mjs +7 -7
  182. package/esm2020/stepper/stepper-icon.mjs +4 -4
  183. package/esm2020/stepper/stepper-intl.mjs +4 -4
  184. package/esm2020/stepper/stepper-module.mjs +6 -10
  185. package/esm2020/stepper/stepper.mjs +39 -63
  186. package/esm2020/table/cell.mjs +22 -22
  187. package/esm2020/table/row.mjs +22 -22
  188. package/esm2020/table/table-module.mjs +5 -5
  189. package/esm2020/table/table.mjs +9 -9
  190. package/esm2020/table/text-column.mjs +4 -4
  191. package/esm2020/tabs/ink-bar.mjs +11 -22
  192. package/esm2020/tabs/paginated-tab-header.mjs +27 -13
  193. package/esm2020/tabs/tab-body.mjs +11 -11
  194. package/esm2020/tabs/tab-content.mjs +4 -4
  195. package/esm2020/tabs/tab-group.mjs +52 -11
  196. package/esm2020/tabs/tab-header.mjs +8 -8
  197. package/esm2020/tabs/tab-label-wrapper.mjs +4 -4
  198. package/esm2020/tabs/tab-label.mjs +4 -4
  199. package/esm2020/tabs/tab-nav-bar/tab-nav-bar.mjs +18 -18
  200. package/esm2020/tabs/tab.mjs +4 -4
  201. package/esm2020/tabs/tabs-module.mjs +5 -5
  202. package/esm2020/toolbar/toolbar-module.mjs +5 -5
  203. package/esm2020/toolbar/toolbar.mjs +8 -8
  204. package/esm2020/tooltip/testing/tooltip-harness.mjs +12 -7
  205. package/esm2020/tooltip/tooltip-module.mjs +5 -5
  206. package/esm2020/tooltip/tooltip.mjs +126 -51
  207. package/esm2020/tree/node.mjs +10 -10
  208. package/esm2020/tree/outlet.mjs +4 -4
  209. package/esm2020/tree/padding.mjs +4 -4
  210. package/esm2020/tree/toggle.mjs +4 -4
  211. package/esm2020/tree/tree-module.mjs +5 -5
  212. package/esm2020/tree/tree.mjs +5 -5
  213. package/expansion/expansion-panel-base.d.ts +22 -0
  214. package/expansion/expansion-panel-content.d.ts +4 -2
  215. package/expansion/public-api.d.ts +1 -0
  216. package/fesm2015/autocomplete/testing.mjs +6 -0
  217. package/fesm2015/autocomplete/testing.mjs.map +1 -1
  218. package/fesm2015/autocomplete.mjs +125 -67
  219. package/fesm2015/autocomplete.mjs.map +1 -1
  220. package/fesm2015/badge/testing.mjs.map +1 -1
  221. package/fesm2015/badge.mjs +7 -7
  222. package/fesm2015/badge.mjs.map +1 -1
  223. package/fesm2015/bottom-sheet/testing.mjs.map +1 -1
  224. package/fesm2015/bottom-sheet.mjs +27 -16
  225. package/fesm2015/bottom-sheet.mjs.map +1 -1
  226. package/fesm2015/button/testing.mjs.map +1 -1
  227. package/fesm2015/button-toggle/testing.mjs.map +1 -1
  228. package/fesm2015/button-toggle.mjs +11 -11
  229. package/fesm2015/button-toggle.mjs.map +1 -1
  230. package/fesm2015/button.mjs +13 -13
  231. package/fesm2015/button.mjs.map +1 -1
  232. package/fesm2015/card/testing.mjs.map +1 -1
  233. package/fesm2015/card.mjs +47 -47
  234. package/fesm2015/card.mjs.map +1 -1
  235. package/fesm2015/checkbox/testing.mjs +2 -1
  236. package/fesm2015/checkbox/testing.mjs.map +1 -1
  237. package/fesm2015/checkbox.mjs +22 -18
  238. package/fesm2015/checkbox.mjs.map +1 -1
  239. package/fesm2015/chips/testing.mjs.map +1 -1
  240. package/fesm2015/chips.mjs +58 -28
  241. package/fesm2015/chips.mjs.map +1 -1
  242. package/fesm2015/core/testing.mjs.map +1 -1
  243. package/fesm2015/core.mjs +181 -126
  244. package/fesm2015/core.mjs.map +1 -1
  245. package/fesm2015/datepicker/testing.mjs.map +1 -1
  246. package/fesm2015/datepicker.mjs +273 -130
  247. package/fesm2015/datepicker.mjs.map +1 -1
  248. package/fesm2015/dialog/testing.mjs +65 -2
  249. package/fesm2015/dialog/testing.mjs.map +1 -1
  250. package/fesm2015/dialog.mjs +144 -106
  251. package/fesm2015/dialog.mjs.map +1 -1
  252. package/fesm2015/divider/testing.mjs.map +1 -1
  253. package/fesm2015/divider.mjs +8 -8
  254. package/fesm2015/divider.mjs.map +1 -1
  255. package/fesm2015/expansion/testing.mjs.map +1 -1
  256. package/fesm2015/expansion.mjs +56 -33
  257. package/fesm2015/expansion.mjs.map +1 -1
  258. package/fesm2015/form-field/testing/control.mjs.map +1 -1
  259. package/fesm2015/form-field/testing.mjs +1 -1
  260. package/fesm2015/form-field/testing.mjs.map +1 -1
  261. package/fesm2015/form-field.mjs +47 -38
  262. package/fesm2015/form-field.mjs.map +1 -1
  263. package/fesm2015/grid-list/testing.mjs.map +1 -1
  264. package/fesm2015/grid-list.mjs +25 -25
  265. package/fesm2015/grid-list.mjs.map +1 -1
  266. package/fesm2015/icon/testing.mjs +8 -8
  267. package/fesm2015/icon/testing.mjs.map +1 -1
  268. package/fesm2015/icon.mjs +45 -44
  269. package/fesm2015/icon.mjs.map +1 -1
  270. package/fesm2015/input/testing.mjs.map +1 -1
  271. package/fesm2015/input.mjs +45 -28
  272. package/fesm2015/input.mjs.map +1 -1
  273. package/fesm2015/list/testing.mjs +0 -10
  274. package/fesm2015/list/testing.mjs.map +1 -1
  275. package/fesm2015/list.mjs +41 -67
  276. package/fesm2015/list.mjs.map +1 -1
  277. package/fesm2015/material.mjs.map +1 -1
  278. package/fesm2015/menu/testing.mjs.map +1 -1
  279. package/fesm2015/menu.mjs +124 -99
  280. package/fesm2015/menu.mjs.map +1 -1
  281. package/fesm2015/paginator/testing.mjs.map +1 -1
  282. package/fesm2015/paginator.mjs +18 -14
  283. package/fesm2015/paginator.mjs.map +1 -1
  284. package/fesm2015/progress-bar/testing.mjs.map +1 -1
  285. package/fesm2015/progress-bar.mjs +11 -8
  286. package/fesm2015/progress-bar.mjs.map +1 -1
  287. package/fesm2015/progress-spinner/testing.mjs.map +1 -1
  288. package/fesm2015/progress-spinner.mjs +31 -63
  289. package/fesm2015/progress-spinner.mjs.map +1 -1
  290. package/fesm2015/radio/testing.mjs +2 -1
  291. package/fesm2015/radio/testing.mjs.map +1 -1
  292. package/fesm2015/radio.mjs +46 -17
  293. package/fesm2015/radio.mjs.map +1 -1
  294. package/fesm2015/select/testing.mjs.map +1 -1
  295. package/fesm2015/select.mjs +58 -27
  296. package/fesm2015/select.mjs.map +1 -1
  297. package/fesm2015/sidenav/testing.mjs.map +1 -1
  298. package/fesm2015/sidenav.mjs +36 -32
  299. package/fesm2015/sidenav.mjs.map +1 -1
  300. package/fesm2015/slide-toggle/testing.mjs +3 -1
  301. package/fesm2015/slide-toggle/testing.mjs.map +1 -1
  302. package/fesm2015/slide-toggle.mjs +16 -15
  303. package/fesm2015/slide-toggle.mjs.map +1 -1
  304. package/fesm2015/slider/testing.mjs.map +1 -1
  305. package/fesm2015/slider.mjs +8 -8
  306. package/fesm2015/slider.mjs.map +1 -1
  307. package/fesm2015/snack-bar/testing.mjs.map +1 -1
  308. package/fesm2015/snack-bar.mjs +37 -31
  309. package/fesm2015/snack-bar.mjs.map +1 -1
  310. package/fesm2015/sort/testing.mjs.map +1 -1
  311. package/fesm2015/sort.mjs +128 -120
  312. package/fesm2015/sort.mjs.map +1 -1
  313. package/fesm2015/stepper/testing.mjs.map +1 -1
  314. package/fesm2015/stepper.mjs +72 -93
  315. package/fesm2015/stepper.mjs.map +1 -1
  316. package/fesm2015/table/testing.mjs.map +1 -1
  317. package/fesm2015/table.mjs +57 -57
  318. package/fesm2015/table.mjs.map +1 -1
  319. package/fesm2015/tabs/testing.mjs.map +1 -1
  320. package/fesm2015/tabs.mjs +137 -93
  321. package/fesm2015/tabs.mjs.map +1 -1
  322. package/fesm2015/toolbar/testing.mjs.map +1 -1
  323. package/fesm2015/toolbar.mjs +11 -11
  324. package/fesm2015/toolbar.mjs.map +1 -1
  325. package/fesm2015/tooltip/testing.mjs +11 -8
  326. package/fesm2015/tooltip/testing.mjs.map +1 -1
  327. package/fesm2015/tooltip.mjs +154 -79
  328. package/fesm2015/tooltip.mjs.map +1 -1
  329. package/fesm2015/tree/testing.mjs.map +1 -1
  330. package/fesm2015/tree.mjs +26 -26
  331. package/fesm2015/tree.mjs.map +1 -1
  332. package/fesm2020/autocomplete/testing.mjs +6 -0
  333. package/fesm2020/autocomplete/testing.mjs.map +1 -1
  334. package/fesm2020/autocomplete.mjs +124 -67
  335. package/fesm2020/autocomplete.mjs.map +1 -1
  336. package/fesm2020/badge/testing.mjs.map +1 -1
  337. package/fesm2020/badge.mjs +7 -7
  338. package/fesm2020/badge.mjs.map +1 -1
  339. package/fesm2020/bottom-sheet/testing.mjs.map +1 -1
  340. package/fesm2020/bottom-sheet.mjs +27 -16
  341. package/fesm2020/bottom-sheet.mjs.map +1 -1
  342. package/fesm2020/button/testing.mjs.map +1 -1
  343. package/fesm2020/button-toggle/testing.mjs.map +1 -1
  344. package/fesm2020/button-toggle.mjs +11 -11
  345. package/fesm2020/button-toggle.mjs.map +1 -1
  346. package/fesm2020/button.mjs +13 -13
  347. package/fesm2020/button.mjs.map +1 -1
  348. package/fesm2020/card/testing.mjs.map +1 -1
  349. package/fesm2020/card.mjs +47 -47
  350. package/fesm2020/card.mjs.map +1 -1
  351. package/fesm2020/checkbox/testing.mjs +2 -1
  352. package/fesm2020/checkbox/testing.mjs.map +1 -1
  353. package/fesm2020/checkbox.mjs +22 -18
  354. package/fesm2020/checkbox.mjs.map +1 -1
  355. package/fesm2020/chips/testing.mjs.map +1 -1
  356. package/fesm2020/chips.mjs +58 -28
  357. package/fesm2020/chips.mjs.map +1 -1
  358. package/fesm2020/core/testing.mjs.map +1 -1
  359. package/fesm2020/core.mjs +180 -126
  360. package/fesm2020/core.mjs.map +1 -1
  361. package/fesm2020/datepicker/testing.mjs.map +1 -1
  362. package/fesm2020/datepicker.mjs +273 -130
  363. package/fesm2020/datepicker.mjs.map +1 -1
  364. package/fesm2020/dialog/testing.mjs +65 -1
  365. package/fesm2020/dialog/testing.mjs.map +1 -1
  366. package/fesm2020/dialog.mjs +143 -106
  367. package/fesm2020/dialog.mjs.map +1 -1
  368. package/fesm2020/divider/testing.mjs.map +1 -1
  369. package/fesm2020/divider.mjs +8 -8
  370. package/fesm2020/divider.mjs.map +1 -1
  371. package/fesm2020/expansion/testing.mjs.map +1 -1
  372. package/fesm2020/expansion.mjs +54 -33
  373. package/fesm2020/expansion.mjs.map +1 -1
  374. package/fesm2020/form-field/testing/control.mjs.map +1 -1
  375. package/fesm2020/form-field/testing.mjs +1 -1
  376. package/fesm2020/form-field/testing.mjs.map +1 -1
  377. package/fesm2020/form-field.mjs +46 -38
  378. package/fesm2020/form-field.mjs.map +1 -1
  379. package/fesm2020/grid-list/testing.mjs.map +1 -1
  380. package/fesm2020/grid-list.mjs +25 -25
  381. package/fesm2020/grid-list.mjs.map +1 -1
  382. package/fesm2020/icon/testing.mjs +8 -8
  383. package/fesm2020/icon/testing.mjs.map +1 -1
  384. package/fesm2020/icon.mjs +45 -44
  385. package/fesm2020/icon.mjs.map +1 -1
  386. package/fesm2020/input/testing.mjs.map +1 -1
  387. package/fesm2020/input.mjs +44 -27
  388. package/fesm2020/input.mjs.map +1 -1
  389. package/fesm2020/list/testing.mjs +0 -8
  390. package/fesm2020/list/testing.mjs.map +1 -1
  391. package/fesm2020/list.mjs +38 -63
  392. package/fesm2020/list.mjs.map +1 -1
  393. package/fesm2020/material.mjs.map +1 -1
  394. package/fesm2020/menu/testing.mjs.map +1 -1
  395. package/fesm2020/menu.mjs +120 -99
  396. package/fesm2020/menu.mjs.map +1 -1
  397. package/fesm2020/paginator/testing.mjs.map +1 -1
  398. package/fesm2020/paginator.mjs +18 -14
  399. package/fesm2020/paginator.mjs.map +1 -1
  400. package/fesm2020/progress-bar/testing.mjs.map +1 -1
  401. package/fesm2020/progress-bar.mjs +11 -8
  402. package/fesm2020/progress-bar.mjs.map +1 -1
  403. package/fesm2020/progress-spinner/testing.mjs.map +1 -1
  404. package/fesm2020/progress-spinner.mjs +31 -61
  405. package/fesm2020/progress-spinner.mjs.map +1 -1
  406. package/fesm2020/radio/testing.mjs +2 -1
  407. package/fesm2020/radio/testing.mjs.map +1 -1
  408. package/fesm2020/radio.mjs +45 -17
  409. package/fesm2020/radio.mjs.map +1 -1
  410. package/fesm2020/select/testing.mjs.map +1 -1
  411. package/fesm2020/select.mjs +58 -27
  412. package/fesm2020/select.mjs.map +1 -1
  413. package/fesm2020/sidenav/testing.mjs.map +1 -1
  414. package/fesm2020/sidenav.mjs +36 -32
  415. package/fesm2020/sidenav.mjs.map +1 -1
  416. package/fesm2020/slide-toggle/testing.mjs +3 -1
  417. package/fesm2020/slide-toggle/testing.mjs.map +1 -1
  418. package/fesm2020/slide-toggle.mjs +16 -15
  419. package/fesm2020/slide-toggle.mjs.map +1 -1
  420. package/fesm2020/slider/testing.mjs.map +1 -1
  421. package/fesm2020/slider.mjs +8 -8
  422. package/fesm2020/slider.mjs.map +1 -1
  423. package/fesm2020/snack-bar/testing.mjs.map +1 -1
  424. package/fesm2020/snack-bar.mjs +37 -31
  425. package/fesm2020/snack-bar.mjs.map +1 -1
  426. package/fesm2020/sort/testing.mjs.map +1 -1
  427. package/fesm2020/sort.mjs +24 -16
  428. package/fesm2020/sort.mjs.map +1 -1
  429. package/fesm2020/stepper/testing.mjs.map +1 -1
  430. package/fesm2020/stepper.mjs +72 -93
  431. package/fesm2020/stepper.mjs.map +1 -1
  432. package/fesm2020/table/testing.mjs.map +1 -1
  433. package/fesm2020/table.mjs +57 -57
  434. package/fesm2020/table.mjs.map +1 -1
  435. package/fesm2020/tabs/testing.mjs.map +1 -1
  436. package/fesm2020/tabs.mjs +136 -93
  437. package/fesm2020/tabs.mjs.map +1 -1
  438. package/fesm2020/toolbar/testing.mjs.map +1 -1
  439. package/fesm2020/toolbar.mjs +11 -11
  440. package/fesm2020/toolbar.mjs.map +1 -1
  441. package/fesm2020/tooltip/testing.mjs +11 -6
  442. package/fesm2020/tooltip/testing.mjs.map +1 -1
  443. package/fesm2020/tooltip.mjs +147 -71
  444. package/fesm2020/tooltip.mjs.map +1 -1
  445. package/fesm2020/tree/testing.mjs.map +1 -1
  446. package/fesm2020/tree.mjs +26 -26
  447. package/fesm2020/tree.mjs.map +1 -1
  448. package/form-field/form-field-control.d.ts +3 -3
  449. package/form-field/form-field.d.ts +15 -8
  450. package/form-field/testing/public-api.d.ts +1 -1
  451. package/icon/icon-registry.d.ts +7 -9
  452. package/icon/icon.d.ts +12 -3
  453. package/icon/testing/fake-icon-registry.d.ts +1 -1
  454. package/input/input.d.ts +12 -1
  455. package/list/selection-list.d.ts +4 -21
  456. package/list/testing/list-item-harness-base.d.ts +1 -7
  457. package/menu/menu-errors.d.ts +0 -5
  458. package/menu/menu-item.d.ts +3 -2
  459. package/menu/menu-trigger.d.ts +21 -11
  460. package/menu/menu.d.ts +7 -2
  461. package/package.json +7 -7
  462. package/paginator/paginator.d.ts +12 -1
  463. package/prebuilt-themes/deeppurple-amber.css +1 -1
  464. package/prebuilt-themes/indigo-pink.css +1 -1
  465. package/prebuilt-themes/pink-bluegrey.css +1 -1
  466. package/prebuilt-themes/purple-green.css +1 -1
  467. package/progress-spinner/progress-spinner-module.d.ts +1 -1
  468. package/progress-spinner/progress-spinner.d.ts +4 -19
  469. package/progress-spinner/public-api.d.ts +8 -1
  470. package/radio/radio.d.ts +7 -2
  471. package/radio/testing/radio-harness-filters.d.ts +2 -0
  472. package/schematics/collection.json +4 -2
  473. package/schematics/migration.json +5 -0
  474. package/schematics/ng-add/fonts/material-fonts.js +4 -13
  475. package/schematics/ng-add/fonts/material-fonts.mjs +4 -13
  476. package/schematics/ng-add/index.js +2 -2
  477. package/schematics/ng-add/index.mjs +2 -2
  478. package/schematics/ng-add/schema.d.ts +2 -2
  479. package/schematics/ng-add/schema.js +1 -1
  480. package/schematics/ng-add/schema.json +29 -9
  481. package/schematics/ng-add/schema.mjs +1 -1
  482. package/schematics/ng-add/setup-project.js +16 -23
  483. package/schematics/ng-add/setup-project.mjs +16 -23
  484. package/schematics/ng-add/theming/theming.js +28 -39
  485. package/schematics/ng-add/theming/theming.mjs +28 -39
  486. package/schematics/ng-generate/address-form/index.js +5 -14
  487. package/schematics/ng-generate/address-form/index.mjs +5 -14
  488. package/schematics/ng-generate/address-form/schema.json +1 -1
  489. package/schematics/ng-generate/dashboard/index.js +5 -14
  490. package/schematics/ng-generate/dashboard/index.mjs +5 -14
  491. package/schematics/ng-generate/dashboard/schema.json +1 -1
  492. package/schematics/ng-generate/navigation/index.js +5 -14
  493. package/schematics/ng-generate/navigation/index.mjs +5 -14
  494. package/schematics/ng-generate/navigation/schema.json +1 -1
  495. package/schematics/ng-generate/table/index.js +5 -14
  496. package/schematics/ng-generate/table/index.mjs +5 -14
  497. package/schematics/ng-generate/table/schema.json +1 -1
  498. package/schematics/ng-generate/tree/index.js +5 -14
  499. package/schematics/ng-generate/tree/index.mjs +5 -14
  500. package/schematics/ng-generate/tree/schema.json +1 -1
  501. package/schematics/ng-update/data/constructor-checks.js +11 -1
  502. package/schematics/ng-update/data/constructor-checks.mjs +11 -1
  503. package/schematics/ng-update/data/css-selectors.js +7 -1
  504. package/schematics/ng-update/data/css-selectors.mjs +7 -1
  505. package/schematics/ng-update/data/index.js +6 -2
  506. package/schematics/ng-update/data/index.mjs +6 -2
  507. package/schematics/ng-update/index.d.ts +2 -0
  508. package/schematics/ng-update/index.js +7 -2
  509. package/schematics/ng-update/index.mjs +7 -2
  510. package/schematics/ng-update/migrations/hammer-gestures-v9/hammer-gestures-migration.js +4 -4
  511. package/schematics/ng-update/migrations/hammer-gestures-v9/hammer-gestures-migration.mjs +4 -4
  512. package/schematics/ng-update/migrations/hammer-gestures-v9/import-manager.js +14 -23
  513. package/schematics/ng-update/migrations/hammer-gestures-v9/import-manager.mjs +14 -23
  514. package/schematics/ng-update/migrations/package-imports-v8/secondary-entry-points-migration.js +3 -15
  515. package/schematics/ng-update/migrations/package-imports-v8/secondary-entry-points-migration.mjs +3 -15
  516. package/schematics/ng-update/migrations/theming-api-v12/migration.js +5 -5
  517. package/schematics/ng-update/migrations/theming-api-v12/migration.mjs +5 -5
  518. package/schematics/tsconfig.json +1 -4
  519. package/select/select.d.ts +19 -1
  520. package/sidenav/sidenav-module.d.ts +2 -3
  521. package/slide-toggle/testing/slide-toggle-harness-filters.d.ts +4 -0
  522. package/snack-bar/snack-bar.d.ts +1 -1
  523. package/sort/sort-header.d.ts +4 -4
  524. package/sort/sort.d.ts +4 -0
  525. package/stepper/public-api.d.ts +1 -1
  526. package/stepper/stepper-animations.d.ts +2 -0
  527. package/stepper/stepper-module.d.ts +1 -1
  528. package/stepper/stepper.d.ts +15 -38
  529. package/tabs/_tabs-common.scss +6 -5
  530. package/tabs/ink-bar.d.ts +0 -5
  531. package/tabs/paginated-tab-header.d.ts +4 -2
  532. package/tabs/tab-group.d.ts +9 -3
  533. package/tooltip/testing/tooltip-harness.d.ts +6 -0
  534. package/tooltip/tooltip.d.ts +36 -8
package/fesm2015/tabs.mjs CHANGED
@@ -11,11 +11,11 @@ import { InjectionToken, Directive, Inject, Optional, TemplateRef, Component, Ch
11
11
  import * as i4 from '@angular/material/core';
12
12
  import { mixinDisabled, mixinColor, mixinDisableRipple, mixinTabIndex, MAT_RIPPLE_GLOBAL_OPTIONS, RippleRenderer, MatCommonModule, MatRippleModule } from '@angular/material/core';
13
13
  import { ANIMATION_MODULE_TYPE } from '@angular/platform-browser/animations';
14
+ import { take, startWith, distinctUntilChanged, takeUntil } from 'rxjs/operators';
14
15
  import { Subject, Subscription, fromEvent, of, merge, timer } from 'rxjs';
15
16
  import { trigger, state, style, transition, animate } from '@angular/animations';
16
- import { startWith, distinctUntilChanged, takeUntil } from 'rxjs/operators';
17
17
  import * as i1 from '@angular/cdk/bidi';
18
- import { coerceNumberProperty, coerceBooleanProperty } from '@angular/cdk/coercion';
18
+ import { coerceBooleanProperty, coerceNumberProperty } from '@angular/cdk/coercion';
19
19
  import { hasModifierKey, SPACE, ENTER } from '@angular/cdk/keycodes';
20
20
  import * as i3 from '@angular/cdk/platform';
21
21
  import { normalizePassiveListenerOptions } from '@angular/cdk/platform';
@@ -62,14 +62,12 @@ class MatInkBar {
62
62
  */
63
63
  alignToElement(element) {
64
64
  this.show();
65
- if (typeof requestAnimationFrame !== 'undefined') {
66
- this._ngZone.runOutsideAngular(() => {
67
- requestAnimationFrame(() => this._setStyles(element));
68
- });
69
- }
70
- else {
71
- this._setStyles(element);
72
- }
65
+ this._ngZone.onStable.pipe(take(1)).subscribe(() => {
66
+ const positions = this._inkBarPositioner(element);
67
+ const inkBar = this._elementRef.nativeElement;
68
+ inkBar.style.left = positions.left;
69
+ inkBar.style.width = positions.width;
70
+ });
73
71
  }
74
72
  /** Shows the ink bar. */
75
73
  show() {
@@ -79,20 +77,10 @@ class MatInkBar {
79
77
  hide() {
80
78
  this._elementRef.nativeElement.style.visibility = 'hidden';
81
79
  }
82
- /**
83
- * Sets the proper styles to the ink bar element.
84
- * @param element
85
- */
86
- _setStyles(element) {
87
- const positions = this._inkBarPositioner(element);
88
- const inkBar = this._elementRef.nativeElement;
89
- inkBar.style.left = positions.left;
90
- inkBar.style.width = positions.width;
91
- }
92
80
  }
93
- MatInkBar.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: MatInkBar, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: _MAT_INK_BAR_POSITIONER }, { token: ANIMATION_MODULE_TYPE, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
94
- MatInkBar.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.0", type: MatInkBar, selector: "mat-ink-bar", host: { properties: { "class._mat-animation-noopable": "_animationMode === 'NoopAnimations'" }, classAttribute: "mat-ink-bar" }, ngImport: i0 });
95
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: MatInkBar, decorators: [{
81
+ MatInkBar.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0-next.9", ngImport: i0, type: MatInkBar, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: _MAT_INK_BAR_POSITIONER }, { token: ANIMATION_MODULE_TYPE, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
82
+ MatInkBar.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "14.0.0-next.9", type: MatInkBar, selector: "mat-ink-bar", host: { properties: { "class._mat-animation-noopable": "_animationMode === 'NoopAnimations'" }, classAttribute: "mat-ink-bar" }, ngImport: i0 });
83
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.9", ngImport: i0, type: MatInkBar, decorators: [{
96
84
  type: Directive,
97
85
  args: [{
98
86
  selector: 'mat-ink-bar',
@@ -132,9 +120,9 @@ class MatTabContent {
132
120
  this.template = template;
133
121
  }
134
122
  }
135
- MatTabContent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: MatTabContent, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
136
- MatTabContent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.0", type: MatTabContent, selector: "[matTabContent]", providers: [{ provide: MAT_TAB_CONTENT, useExisting: MatTabContent }], ngImport: i0 });
137
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: MatTabContent, decorators: [{
123
+ MatTabContent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0-next.9", ngImport: i0, type: MatTabContent, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
124
+ MatTabContent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "14.0.0-next.9", type: MatTabContent, selector: "[matTabContent]", providers: [{ provide: MAT_TAB_CONTENT, useExisting: MatTabContent }], ngImport: i0 });
125
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.9", ngImport: i0, type: MatTabContent, decorators: [{
138
126
  type: Directive,
139
127
  args: [{
140
128
  selector: '[matTabContent]',
@@ -167,9 +155,9 @@ class MatTabLabel extends CdkPortal {
167
155
  this._closestTab = _closestTab;
168
156
  }
169
157
  }
170
- MatTabLabel.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: MatTabLabel, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }, { token: MAT_TAB, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
171
- MatTabLabel.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.0", type: MatTabLabel, selector: "[mat-tab-label], [matTabLabel]", providers: [{ provide: MAT_TAB_LABEL, useExisting: MatTabLabel }], usesInheritance: true, ngImport: i0 });
172
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: MatTabLabel, decorators: [{
158
+ MatTabLabel.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0-next.9", ngImport: i0, type: MatTabLabel, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }, { token: MAT_TAB, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
159
+ MatTabLabel.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "14.0.0-next.9", type: MatTabLabel, selector: "[mat-tab-label], [matTabLabel]", providers: [{ provide: MAT_TAB_LABEL, useExisting: MatTabLabel }], usesInheritance: true, ngImport: i0 });
160
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.9", ngImport: i0, type: MatTabLabel, decorators: [{
173
161
  type: Directive,
174
162
  args: [{
175
163
  selector: '[mat-tab-label], [matTabLabel]',
@@ -264,9 +252,9 @@ class MatTab extends _MatTabBase {
264
252
  }
265
253
  }
266
254
  }
267
- MatTab.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: MatTab, deps: [{ token: i0.ViewContainerRef }, { token: MAT_TAB_GROUP, optional: true }], target: i0.ɵɵFactoryTarget.Component });
268
- MatTab.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.0", type: MatTab, selector: "mat-tab", inputs: { disabled: "disabled", textLabel: ["label", "textLabel"], ariaLabel: ["aria-label", "ariaLabel"], ariaLabelledby: ["aria-labelledby", "ariaLabelledby"], labelClass: "labelClass", bodyClass: "bodyClass" }, providers: [{ provide: MAT_TAB, useExisting: MatTab }], queries: [{ propertyName: "templateLabel", first: true, predicate: MAT_TAB_LABEL, descendants: true }, { propertyName: "_explicitContent", first: true, predicate: MAT_TAB_CONTENT, descendants: true, read: TemplateRef, static: true }], viewQueries: [{ propertyName: "_implicitContent", first: true, predicate: TemplateRef, descendants: true, static: true }], exportAs: ["matTab"], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<!-- Create a template for the content of the <mat-tab> so that we can grab a reference to this\n TemplateRef and use it in a Portal to render the tab content in the appropriate place in the\n tab-group. -->\n<ng-template><ng-content></ng-content></ng-template>\n", changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None });
269
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: MatTab, decorators: [{
255
+ MatTab.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0-next.9", ngImport: i0, type: MatTab, deps: [{ token: i0.ViewContainerRef }, { token: MAT_TAB_GROUP, optional: true }], target: i0.ɵɵFactoryTarget.Component });
256
+ MatTab.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "14.0.0-next.9", type: MatTab, selector: "mat-tab", inputs: { disabled: "disabled", textLabel: ["label", "textLabel"], ariaLabel: ["aria-label", "ariaLabel"], ariaLabelledby: ["aria-labelledby", "ariaLabelledby"], labelClass: "labelClass", bodyClass: "bodyClass" }, providers: [{ provide: MAT_TAB, useExisting: MatTab }], queries: [{ propertyName: "templateLabel", first: true, predicate: MAT_TAB_LABEL, descendants: true }, { propertyName: "_explicitContent", first: true, predicate: MAT_TAB_CONTENT, descendants: true, read: TemplateRef, static: true }], viewQueries: [{ propertyName: "_implicitContent", first: true, predicate: TemplateRef, descendants: true, static: true }], exportAs: ["matTab"], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<!-- Create a template for the content of the <mat-tab> so that we can grab a reference to this\n TemplateRef and use it in a Portal to render the tab content in the appropriate place in the\n tab-group. -->\n<ng-template><ng-content></ng-content></ng-template>\n", changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None });
257
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.9", ngImport: i0, type: MatTab, decorators: [{
270
258
  type: Component,
271
259
  args: [{ selector: 'mat-tab', inputs: ['disabled'], changeDetection: ChangeDetectionStrategy.Default, encapsulation: ViewEncapsulation.None, exportAs: 'matTab', providers: [{ provide: MAT_TAB, useExisting: MatTab }], template: "<!-- Create a template for the content of the <mat-tab> so that we can grab a reference to this\n TemplateRef and use it in a Portal to render the tab content in the appropriate place in the\n tab-group. -->\n<ng-template><ng-content></ng-content></ng-template>\n" }]
272
260
  }], ctorParameters: function () {
@@ -387,9 +375,9 @@ class MatTabBodyPortal extends CdkPortalOutlet {
387
375
  this._leavingSub.unsubscribe();
388
376
  }
389
377
  }
390
- MatTabBodyPortal.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: MatTabBodyPortal, deps: [{ token: i0.ComponentFactoryResolver }, { token: i0.ViewContainerRef }, { token: forwardRef(() => MatTabBody) }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Directive });
391
- MatTabBodyPortal.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.0", type: MatTabBodyPortal, selector: "[matTabBodyHost]", usesInheritance: true, ngImport: i0 });
392
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: MatTabBodyPortal, decorators: [{
378
+ MatTabBodyPortal.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0-next.9", ngImport: i0, type: MatTabBodyPortal, deps: [{ token: i0.ComponentFactoryResolver }, { token: i0.ViewContainerRef }, { token: forwardRef(() => MatTabBody) }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Directive });
379
+ MatTabBodyPortal.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "14.0.0-next.9", type: MatTabBodyPortal, selector: "[matTabBodyHost]", usesInheritance: true, ngImport: i0 });
380
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.9", ngImport: i0, type: MatTabBodyPortal, decorators: [{
393
381
  type: Directive,
394
382
  args: [{
395
383
  selector: '[matTabBodyHost]',
@@ -508,9 +496,9 @@ class _MatTabBodyBase {
508
496
  return 'right-origin-center';
509
497
  }
510
498
  }
511
- _MatTabBodyBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: _MatTabBodyBase, deps: [{ token: i0.ElementRef }, { token: i1.Directionality, optional: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
512
- _MatTabBodyBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.0", type: _MatTabBodyBase, inputs: { _content: ["content", "_content"], origin: "origin", animationDuration: "animationDuration", preserveContent: "preserveContent", position: "position" }, outputs: { _onCentering: "_onCentering", _beforeCentering: "_beforeCentering", _afterLeavingCenter: "_afterLeavingCenter", _onCentered: "_onCentered" }, ngImport: i0 });
513
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: _MatTabBodyBase, decorators: [{
499
+ _MatTabBodyBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0-next.9", ngImport: i0, type: _MatTabBodyBase, deps: [{ token: i0.ElementRef }, { token: i1.Directionality, optional: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
500
+ _MatTabBodyBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "14.0.0-next.9", type: _MatTabBodyBase, inputs: { _content: ["content", "_content"], origin: "origin", animationDuration: "animationDuration", preserveContent: "preserveContent", position: "position" }, outputs: { _onCentering: "_onCentering", _beforeCentering: "_beforeCentering", _afterLeavingCenter: "_afterLeavingCenter", _onCentered: "_onCentered" }, ngImport: i0 });
501
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.9", ngImport: i0, type: _MatTabBodyBase, decorators: [{
514
502
  type: Directive
515
503
  }], ctorParameters: function () {
516
504
  return [{ type: i0.ElementRef }, { type: i1.Directionality, decorators: [{
@@ -545,13 +533,13 @@ class MatTabBody extends _MatTabBodyBase {
545
533
  super(elementRef, dir, changeDetectorRef);
546
534
  }
547
535
  }
548
- MatTabBody.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: MatTabBody, deps: [{ token: i0.ElementRef }, { token: i1.Directionality, optional: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
549
- MatTabBody.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.0", type: MatTabBody, selector: "mat-tab-body", host: { classAttribute: "mat-tab-body" }, viewQueries: [{ propertyName: "_portalHost", first: true, predicate: CdkPortalOutlet, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"mat-tab-body-content\" #content\n [@translateTab]=\"{\n value: _position,\n params: {animationDuration: animationDuration}\n }\"\n (@translateTab.start)=\"_onTranslateTabStarted($event)\"\n (@translateTab.done)=\"_translateTabComplete.next($event)\"\n cdkScrollable>\n <ng-template matTabBodyHost></ng-template>\n</div>\n", styles: [".mat-tab-body-content{height:100%;overflow:auto}.mat-tab-group-dynamic-height .mat-tab-body-content{overflow:hidden}.mat-tab-body-content[style*=\"visibility: hidden\"]{display:none}\n"], directives: [{ type: MatTabBodyPortal, selector: "[matTabBodyHost]" }], animations: [matTabsAnimations.translateTab], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None });
550
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: MatTabBody, decorators: [{
536
+ MatTabBody.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0-next.9", ngImport: i0, type: MatTabBody, deps: [{ token: i0.ElementRef }, { token: i1.Directionality, optional: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
537
+ MatTabBody.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "14.0.0-next.9", type: MatTabBody, selector: "mat-tab-body", host: { classAttribute: "mat-tab-body" }, viewQueries: [{ propertyName: "_portalHost", first: true, predicate: CdkPortalOutlet, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"mat-tab-body-content\" #content\n [@translateTab]=\"{\n value: _position,\n params: {animationDuration: animationDuration}\n }\"\n (@translateTab.start)=\"_onTranslateTabStarted($event)\"\n (@translateTab.done)=\"_translateTabComplete.next($event)\"\n cdkScrollable>\n <ng-template matTabBodyHost></ng-template>\n</div>\n", styles: [".mat-tab-body-content{height:100%;overflow:auto}.mat-tab-group-dynamic-height .mat-tab-body-content{overflow:hidden}.mat-tab-body-content[style*=\"visibility: hidden\"]{display:none}"], directives: [{ type: MatTabBodyPortal, selector: "[matTabBodyHost]" }], animations: [matTabsAnimations.translateTab], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None });
538
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.9", ngImport: i0, type: MatTabBody, decorators: [{
551
539
  type: Component,
552
540
  args: [{ selector: 'mat-tab-body', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.Default, animations: [matTabsAnimations.translateTab], host: {
553
541
  'class': 'mat-tab-body',
554
- }, template: "<div class=\"mat-tab-body-content\" #content\n [@translateTab]=\"{\n value: _position,\n params: {animationDuration: animationDuration}\n }\"\n (@translateTab.start)=\"_onTranslateTabStarted($event)\"\n (@translateTab.done)=\"_translateTabComplete.next($event)\"\n cdkScrollable>\n <ng-template matTabBodyHost></ng-template>\n</div>\n", styles: [".mat-tab-body-content{height:100%;overflow:auto}.mat-tab-group-dynamic-height .mat-tab-body-content{overflow:hidden}.mat-tab-body-content[style*=\"visibility: hidden\"]{display:none}\n"] }]
542
+ }, template: "<div class=\"mat-tab-body-content\" #content\n [@translateTab]=\"{\n value: _position,\n params: {animationDuration: animationDuration}\n }\"\n (@translateTab.start)=\"_onTranslateTabStarted($event)\"\n (@translateTab.done)=\"_translateTabComplete.next($event)\"\n cdkScrollable>\n <ng-template matTabBodyHost></ng-template>\n</div>\n", styles: [".mat-tab-body-content{height:100%;overflow:auto}.mat-tab-group-dynamic-height .mat-tab-body-content{overflow:hidden}.mat-tab-body-content[style*=\"visibility: hidden\"]{display:none}"] }]
555
543
  }], ctorParameters: function () {
556
544
  return [{ type: i0.ElementRef }, { type: i1.Directionality, decorators: [{
557
545
  type: Optional
@@ -602,9 +590,9 @@ class MatTabLabelWrapper extends _MatTabLabelWrapperBase {
602
590
  return this.elementRef.nativeElement.offsetWidth;
603
591
  }
604
592
  }
605
- MatTabLabelWrapper.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: MatTabLabelWrapper, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
606
- MatTabLabelWrapper.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.0", type: MatTabLabelWrapper, selector: "[matTabLabelWrapper]", inputs: { disabled: "disabled" }, host: { properties: { "class.mat-tab-disabled": "disabled", "attr.aria-disabled": "!!disabled" } }, usesInheritance: true, ngImport: i0 });
607
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: MatTabLabelWrapper, decorators: [{
593
+ MatTabLabelWrapper.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0-next.9", ngImport: i0, type: MatTabLabelWrapper, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
594
+ MatTabLabelWrapper.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "14.0.0-next.9", type: MatTabLabelWrapper, selector: "[matTabLabelWrapper]", inputs: { disabled: "disabled" }, host: { properties: { "class.mat-tab-disabled": "disabled", "attr.aria-disabled": "!!disabled" } }, usesInheritance: true, ngImport: i0 });
595
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.9", ngImport: i0, type: MatTabLabelWrapper, decorators: [{
608
596
  type: Directive,
609
597
  args: [{
610
598
  selector: '[matTabLabelWrapper]',
@@ -669,11 +657,7 @@ class MatPaginatedTabHeader {
669
657
  this._disableScrollBefore = true;
670
658
  /** Stream that will stop the automated scrolling. */
671
659
  this._stopScrolling = new Subject();
672
- /**
673
- * Whether pagination should be disabled. This can be used to avoid unnecessary
674
- * layout recalculations if it's known that pagination won't be required.
675
- */
676
- this.disablePagination = false;
660
+ this._disablePagination = false;
677
661
  this._selectedIndex = 0;
678
662
  /** Event emitted when the option is selected. */
679
663
  this.selectFocusedIndex = new EventEmitter();
@@ -688,6 +672,16 @@ class MatPaginatedTabHeader {
688
672
  });
689
673
  });
690
674
  }
675
+ /**
676
+ * Whether pagination should be disabled. This can be used to avoid unnecessary
677
+ * layout recalculations if it's known that pagination won't be required.
678
+ */
679
+ get disablePagination() {
680
+ return this._disablePagination;
681
+ }
682
+ set disablePagination(value) {
683
+ this._disablePagination = coerceBooleanProperty(value);
684
+ }
691
685
  /** The index of the active tab. */
692
686
  get selectedIndex() {
693
687
  return this._selectedIndex;
@@ -729,7 +723,9 @@ class MatPaginatedTabHeader {
729
723
  this._keyManager.updateActiveItem(this._selectedIndex);
730
724
  // Defer the first call in order to allow for slower browsers to lay out the elements.
731
725
  // This helps in cases where the user lands directly on a page with paginated tabs.
732
- typeof requestAnimationFrame !== 'undefined' ? requestAnimationFrame(realign) : realign();
726
+ // Note that we use `onStable` instead of `requestAnimationFrame`, because the latter
727
+ // can hold up tests that are in a background tab.
728
+ this._ngZone.onStable.pipe(take(1)).subscribe(realign);
733
729
  // On dir change or window resize, realign the ink bar and update the orientation of
734
730
  // the key manager if the direction has changed.
735
731
  merge(dirChange, resize, this._items.changes)
@@ -738,7 +734,13 @@ class MatPaginatedTabHeader {
738
734
  // We need to defer this to give the browser some time to recalculate
739
735
  // the element dimensions. The call has to be wrapped in `NgZone.run`,
740
736
  // because the viewport change handler runs outside of Angular.
741
- this._ngZone.run(() => Promise.resolve().then(realign));
737
+ this._ngZone.run(() => {
738
+ Promise.resolve().then(() => {
739
+ // Clamp the scroll distance, because it can change with the number of tabs.
740
+ this._scrollDistance = Math.max(0, Math.min(this._getMaxScrollDistance(), this._scrollDistance));
741
+ realign();
742
+ });
743
+ });
742
744
  this._keyManager.withHorizontalOrientation(this._getLayoutDirection());
743
745
  });
744
746
  // If there is a change in the focus key manager we need to emit the `indexFocused`
@@ -1074,9 +1076,9 @@ class MatPaginatedTabHeader {
1074
1076
  return { maxScrollDistance, distance: this._scrollDistance };
1075
1077
  }
1076
1078
  }
1077
- MatPaginatedTabHeader.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: MatPaginatedTabHeader, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1$1.ViewportRuler }, { token: i1.Directionality, optional: true }, { token: i0.NgZone }, { token: i3.Platform }, { token: ANIMATION_MODULE_TYPE, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
1078
- MatPaginatedTabHeader.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.0", type: MatPaginatedTabHeader, inputs: { disablePagination: "disablePagination" }, ngImport: i0 });
1079
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: MatPaginatedTabHeader, decorators: [{
1079
+ MatPaginatedTabHeader.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0-next.9", ngImport: i0, type: MatPaginatedTabHeader, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1$1.ViewportRuler }, { token: i1.Directionality, optional: true }, { token: i0.NgZone }, { token: i3.Platform }, { token: ANIMATION_MODULE_TYPE, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
1080
+ MatPaginatedTabHeader.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "14.0.0-next.9", type: MatPaginatedTabHeader, inputs: { disablePagination: "disablePagination" }, ngImport: i0 });
1081
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.9", ngImport: i0, type: MatPaginatedTabHeader, decorators: [{
1080
1082
  type: Directive
1081
1083
  }], ctorParameters: function () {
1082
1084
  return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1$1.ViewportRuler }, { type: i1.Directionality, decorators: [{
@@ -1111,9 +1113,9 @@ class _MatTabHeaderBase extends MatPaginatedTabHeader {
1111
1113
  event.preventDefault();
1112
1114
  }
1113
1115
  }
1114
- _MatTabHeaderBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: _MatTabHeaderBase, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1$1.ViewportRuler }, { token: i1.Directionality, optional: true }, { token: i0.NgZone }, { token: i3.Platform }, { token: ANIMATION_MODULE_TYPE, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
1115
- _MatTabHeaderBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.0", type: _MatTabHeaderBase, inputs: { disableRipple: "disableRipple" }, usesInheritance: true, ngImport: i0 });
1116
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: _MatTabHeaderBase, decorators: [{
1116
+ _MatTabHeaderBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0-next.9", ngImport: i0, type: _MatTabHeaderBase, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1$1.ViewportRuler }, { token: i1.Directionality, optional: true }, { token: i0.NgZone }, { token: i3.Platform }, { token: ANIMATION_MODULE_TYPE, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
1117
+ _MatTabHeaderBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "14.0.0-next.9", type: _MatTabHeaderBase, inputs: { disableRipple: "disableRipple" }, usesInheritance: true, ngImport: i0 });
1118
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.9", ngImport: i0, type: _MatTabHeaderBase, decorators: [{
1117
1119
  type: Directive
1118
1120
  }], ctorParameters: function () {
1119
1121
  return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1$1.ViewportRuler }, { type: i1.Directionality, decorators: [{
@@ -1139,15 +1141,15 @@ class MatTabHeader extends _MatTabHeaderBase {
1139
1141
  super(elementRef, changeDetectorRef, viewportRuler, dir, ngZone, platform, animationMode);
1140
1142
  }
1141
1143
  }
1142
- MatTabHeader.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: MatTabHeader, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1$1.ViewportRuler }, { token: i1.Directionality, optional: true }, { token: i0.NgZone }, { token: i3.Platform }, { token: ANIMATION_MODULE_TYPE, optional: true }], target: i0.ɵɵFactoryTarget.Component });
1143
- MatTabHeader.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.0", type: MatTabHeader, selector: "mat-tab-header", inputs: { selectedIndex: "selectedIndex" }, outputs: { selectFocusedIndex: "selectFocusedIndex", indexFocused: "indexFocused" }, host: { properties: { "class.mat-tab-header-pagination-controls-enabled": "_showPaginationControls", "class.mat-tab-header-rtl": "_getLayoutDirection() == 'rtl'" }, classAttribute: "mat-tab-header" }, queries: [{ propertyName: "_items", predicate: MatTabLabelWrapper }], viewQueries: [{ propertyName: "_inkBar", first: true, predicate: MatInkBar, descendants: true, static: true }, { propertyName: "_tabListContainer", first: true, predicate: ["tabListContainer"], descendants: true, static: true }, { propertyName: "_tabList", first: true, predicate: ["tabList"], descendants: true, static: true }, { propertyName: "_tabListInner", first: true, predicate: ["tabListInner"], descendants: true, static: true }, { propertyName: "_nextPaginator", first: true, predicate: ["nextPaginator"], descendants: true }, { propertyName: "_previousPaginator", first: true, predicate: ["previousPaginator"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"mat-tab-header-pagination mat-tab-header-pagination-before mat-elevation-z4\"\n #previousPaginator\n aria-hidden=\"true\"\n mat-ripple [matRippleDisabled]=\"_disableScrollBefore || disableRipple\"\n [class.mat-tab-header-pagination-disabled]=\"_disableScrollBefore\"\n (click)=\"_handlePaginatorClick('before')\"\n (mousedown)=\"_handlePaginatorPress('before', $event)\"\n (touchend)=\"_stopInterval()\">\n <div class=\"mat-tab-header-pagination-chevron\"></div>\n</div>\n\n<div class=\"mat-tab-label-container\" #tabListContainer (keydown)=\"_handleKeydown($event)\">\n <div\n #tabList\n class=\"mat-tab-list\"\n [class._mat-animation-noopable]=\"_animationMode === 'NoopAnimations'\"\n role=\"tablist\"\n (cdkObserveContent)=\"_onContentChanges()\">\n <div class=\"mat-tab-labels\" #tabListInner>\n <ng-content></ng-content>\n </div>\n <mat-ink-bar></mat-ink-bar>\n </div>\n</div>\n\n<div class=\"mat-tab-header-pagination mat-tab-header-pagination-after mat-elevation-z4\"\n #nextPaginator\n aria-hidden=\"true\"\n mat-ripple [matRippleDisabled]=\"_disableScrollAfter || disableRipple\"\n [class.mat-tab-header-pagination-disabled]=\"_disableScrollAfter\"\n (mousedown)=\"_handlePaginatorPress('after', $event)\"\n (click)=\"_handlePaginatorClick('after')\"\n (touchend)=\"_stopInterval()\">\n <div class=\"mat-tab-header-pagination-chevron\"></div>\n</div>\n", styles: [".mat-tab-header{display:flex;overflow:hidden;position:relative;flex-shrink:0}.mat-tab-header-pagination{-webkit-user-select:none;-moz-user-select:none;user-select:none;position:relative;display:none;justify-content:center;align-items:center;min-width:32px;cursor:pointer;z-index:2;-webkit-tap-highlight-color:transparent;touch-action:none;box-sizing:content-box;background:none;border:none;outline:0;padding:0}.mat-tab-header-pagination::-moz-focus-inner{border:0}.mat-tab-header-pagination-controls-enabled .mat-tab-header-pagination{display:flex}.mat-tab-header-pagination-before,.mat-tab-header-rtl .mat-tab-header-pagination-after{padding-left:4px}.mat-tab-header-pagination-before .mat-tab-header-pagination-chevron,.mat-tab-header-rtl .mat-tab-header-pagination-after .mat-tab-header-pagination-chevron{transform:rotate(-135deg)}.mat-tab-header-rtl .mat-tab-header-pagination-before,.mat-tab-header-pagination-after{padding-right:4px}.mat-tab-header-rtl .mat-tab-header-pagination-before .mat-tab-header-pagination-chevron,.mat-tab-header-pagination-after .mat-tab-header-pagination-chevron{transform:rotate(45deg)}.mat-tab-header-pagination-chevron{border-style:solid;border-width:2px 2px 0 0;height:8px;width:8px}.mat-tab-header-pagination-disabled{box-shadow:none;cursor:default}.mat-tab-list{flex-grow:1;position:relative;transition:transform 500ms cubic-bezier(0.35, 0, 0.25, 1)}.mat-ink-bar{position:absolute;bottom:0;height:2px;transition:500ms cubic-bezier(0.35, 0, 0.25, 1)}._mat-animation-noopable.mat-ink-bar{transition:none;animation:none}.mat-tab-group-inverted-header .mat-ink-bar{bottom:auto;top:0}.cdk-high-contrast-active .mat-ink-bar{outline:solid 2px;height:0}.mat-tab-labels{display:flex}[mat-align-tabs=center]>.mat-tab-header .mat-tab-labels{justify-content:center}[mat-align-tabs=end]>.mat-tab-header .mat-tab-labels{justify-content:flex-end}.mat-tab-label-container{display:flex;flex-grow:1;overflow:hidden;z-index:1}._mat-animation-noopable.mat-tab-list{transition:none;animation:none}.mat-tab-label{height:48px;padding:0 24px;cursor:pointer;box-sizing:border-box;opacity:.6;min-width:160px;text-align:center;display:inline-flex;justify-content:center;align-items:center;white-space:nowrap;position:relative}.mat-tab-label:focus{outline:none}.mat-tab-label:focus:not(.mat-tab-disabled){opacity:1}.cdk-high-contrast-active .mat-tab-label:focus{outline:dotted 2px;outline-offset:-2px}.mat-tab-label.mat-tab-disabled{cursor:default}.cdk-high-contrast-active .mat-tab-label.mat-tab-disabled{opacity:.5}.mat-tab-label .mat-tab-label-content{display:inline-flex;justify-content:center;align-items:center;white-space:nowrap}.cdk-high-contrast-active .mat-tab-label{opacity:1}@media(max-width: 599px){.mat-tab-label{min-width:72px}}\n"], directives: [{ type: i4.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { type: i5.CdkObserveContent, selector: "[cdkObserveContent]", inputs: ["cdkObserveContentDisabled", "debounce"], outputs: ["cdkObserveContent"], exportAs: ["cdkObserveContent"] }, { type: MatInkBar, selector: "mat-ink-bar" }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None });
1144
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: MatTabHeader, decorators: [{
1144
+ MatTabHeader.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0-next.9", ngImport: i0, type: MatTabHeader, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1$1.ViewportRuler }, { token: i1.Directionality, optional: true }, { token: i0.NgZone }, { token: i3.Platform }, { token: ANIMATION_MODULE_TYPE, optional: true }], target: i0.ɵɵFactoryTarget.Component });
1145
+ MatTabHeader.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "14.0.0-next.9", type: MatTabHeader, selector: "mat-tab-header", inputs: { selectedIndex: "selectedIndex" }, outputs: { selectFocusedIndex: "selectFocusedIndex", indexFocused: "indexFocused" }, host: { properties: { "class.mat-tab-header-pagination-controls-enabled": "_showPaginationControls", "class.mat-tab-header-rtl": "_getLayoutDirection() == 'rtl'" }, classAttribute: "mat-tab-header" }, queries: [{ propertyName: "_items", predicate: MatTabLabelWrapper }], viewQueries: [{ propertyName: "_inkBar", first: true, predicate: MatInkBar, descendants: true, static: true }, { propertyName: "_tabListContainer", first: true, predicate: ["tabListContainer"], descendants: true, static: true }, { propertyName: "_tabList", first: true, predicate: ["tabList"], descendants: true, static: true }, { propertyName: "_tabListInner", first: true, predicate: ["tabListInner"], descendants: true, static: true }, { propertyName: "_nextPaginator", first: true, predicate: ["nextPaginator"], descendants: true }, { propertyName: "_previousPaginator", first: true, predicate: ["previousPaginator"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<button class=\"mat-tab-header-pagination mat-tab-header-pagination-before mat-elevation-z4\"\n #previousPaginator\n aria-hidden=\"true\"\n type=\"button\"\n mat-ripple\n tabindex=\"-1\"\n [matRippleDisabled]=\"_disableScrollBefore || disableRipple\"\n [class.mat-tab-header-pagination-disabled]=\"_disableScrollBefore\"\n [disabled]=\"_disableScrollBefore || null\"\n (click)=\"_handlePaginatorClick('before')\"\n (mousedown)=\"_handlePaginatorPress('before', $event)\"\n (touchend)=\"_stopInterval()\">\n <div class=\"mat-tab-header-pagination-chevron\"></div>\n</button>\n\n<div class=\"mat-tab-label-container\" #tabListContainer (keydown)=\"_handleKeydown($event)\">\n <div\n #tabList\n class=\"mat-tab-list\"\n [class._mat-animation-noopable]=\"_animationMode === 'NoopAnimations'\"\n role=\"tablist\"\n (cdkObserveContent)=\"_onContentChanges()\">\n <div class=\"mat-tab-labels\" #tabListInner>\n <ng-content></ng-content>\n </div>\n <mat-ink-bar></mat-ink-bar>\n </div>\n</div>\n\n<button class=\"mat-tab-header-pagination mat-tab-header-pagination-after mat-elevation-z4\"\n #nextPaginator\n aria-hidden=\"true\"\n type=\"button\"\n mat-ripple\n [matRippleDisabled]=\"_disableScrollAfter || disableRipple\"\n [class.mat-tab-header-pagination-disabled]=\"_disableScrollAfter\"\n [disabled]=\"_disableScrollAfter || null\"\n tabindex=\"-1\"\n (mousedown)=\"_handlePaginatorPress('after', $event)\"\n (click)=\"_handlePaginatorClick('after')\"\n (touchend)=\"_stopInterval()\">\n <div class=\"mat-tab-header-pagination-chevron\"></div>\n</button>\n", styles: [".mat-tab-header{display:flex;overflow:hidden;position:relative;flex-shrink:0}.mat-tab-header-pagination{-webkit-user-select:none;user-select:none;position:relative;display:none;justify-content:center;align-items:center;min-width:32px;cursor:pointer;z-index:2;-webkit-tap-highlight-color:rgba(0,0,0,0);touch-action:none;box-sizing:content-box;background:none;border:none;outline:0;padding:0}.mat-tab-header-pagination::-moz-focus-inner{border:0}.mat-tab-header-pagination-controls-enabled .mat-tab-header-pagination{display:flex}.mat-tab-header-pagination-before,.mat-tab-header-rtl .mat-tab-header-pagination-after{padding-left:4px}.mat-tab-header-pagination-before .mat-tab-header-pagination-chevron,.mat-tab-header-rtl .mat-tab-header-pagination-after .mat-tab-header-pagination-chevron{transform:rotate(-135deg)}.mat-tab-header-rtl .mat-tab-header-pagination-before,.mat-tab-header-pagination-after{padding-right:4px}.mat-tab-header-rtl .mat-tab-header-pagination-before .mat-tab-header-pagination-chevron,.mat-tab-header-pagination-after .mat-tab-header-pagination-chevron{transform:rotate(45deg)}.mat-tab-header-pagination-chevron{border-style:solid;border-width:2px 2px 0 0;height:8px;width:8px}.mat-tab-header-pagination-disabled{box-shadow:none;cursor:default}.mat-tab-list{flex-grow:1;position:relative;transition:transform 500ms cubic-bezier(0.35, 0, 0.25, 1)}.mat-ink-bar{position:absolute;bottom:0;height:2px;transition:500ms cubic-bezier(0.35, 0, 0.25, 1)}._mat-animation-noopable.mat-ink-bar{transition:none;animation:none}.mat-tab-group-inverted-header .mat-ink-bar{bottom:auto;top:0}.cdk-high-contrast-active .mat-ink-bar{outline:solid 2px;height:0}.mat-tab-labels{display:flex}[mat-align-tabs=center]>.mat-tab-header .mat-tab-labels{justify-content:center}[mat-align-tabs=end]>.mat-tab-header .mat-tab-labels{justify-content:flex-end}.mat-tab-label-container{display:flex;flex-grow:1;overflow:hidden;z-index:1}._mat-animation-noopable.mat-tab-list{transition:none;animation:none}.mat-tab-label{height:48px;padding:0 24px;cursor:pointer;box-sizing:border-box;opacity:.6;min-width:160px;text-align:center;display:inline-flex;justify-content:center;align-items:center;white-space:nowrap;position:relative}.mat-tab-label:focus{outline:none}.mat-tab-label:focus:not(.mat-tab-disabled){opacity:1}.cdk-high-contrast-active .mat-tab-label:focus{outline:dotted 2px;outline-offset:-2px}.mat-tab-label.mat-tab-disabled{cursor:default}.cdk-high-contrast-active .mat-tab-label.mat-tab-disabled{opacity:.5}.mat-tab-label .mat-tab-label-content{display:inline-flex;justify-content:center;align-items:center;white-space:nowrap}.cdk-high-contrast-active .mat-tab-label{opacity:1}@media(max-width: 599px){.mat-tab-label{min-width:72px}}"], directives: [{ type: i4.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { type: i5.CdkObserveContent, selector: "[cdkObserveContent]", inputs: ["cdkObserveContentDisabled", "debounce"], outputs: ["cdkObserveContent"], exportAs: ["cdkObserveContent"] }, { type: MatInkBar, selector: "mat-ink-bar" }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None });
1146
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.9", ngImport: i0, type: MatTabHeader, decorators: [{
1145
1147
  type: Component,
1146
1148
  args: [{ selector: 'mat-tab-header', inputs: ['selectedIndex'], outputs: ['selectFocusedIndex', 'indexFocused'], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.Default, host: {
1147
1149
  'class': 'mat-tab-header',
1148
1150
  '[class.mat-tab-header-pagination-controls-enabled]': '_showPaginationControls',
1149
1151
  '[class.mat-tab-header-rtl]': "_getLayoutDirection() == 'rtl'",
1150
- }, template: "<div class=\"mat-tab-header-pagination mat-tab-header-pagination-before mat-elevation-z4\"\n #previousPaginator\n aria-hidden=\"true\"\n mat-ripple [matRippleDisabled]=\"_disableScrollBefore || disableRipple\"\n [class.mat-tab-header-pagination-disabled]=\"_disableScrollBefore\"\n (click)=\"_handlePaginatorClick('before')\"\n (mousedown)=\"_handlePaginatorPress('before', $event)\"\n (touchend)=\"_stopInterval()\">\n <div class=\"mat-tab-header-pagination-chevron\"></div>\n</div>\n\n<div class=\"mat-tab-label-container\" #tabListContainer (keydown)=\"_handleKeydown($event)\">\n <div\n #tabList\n class=\"mat-tab-list\"\n [class._mat-animation-noopable]=\"_animationMode === 'NoopAnimations'\"\n role=\"tablist\"\n (cdkObserveContent)=\"_onContentChanges()\">\n <div class=\"mat-tab-labels\" #tabListInner>\n <ng-content></ng-content>\n </div>\n <mat-ink-bar></mat-ink-bar>\n </div>\n</div>\n\n<div class=\"mat-tab-header-pagination mat-tab-header-pagination-after mat-elevation-z4\"\n #nextPaginator\n aria-hidden=\"true\"\n mat-ripple [matRippleDisabled]=\"_disableScrollAfter || disableRipple\"\n [class.mat-tab-header-pagination-disabled]=\"_disableScrollAfter\"\n (mousedown)=\"_handlePaginatorPress('after', $event)\"\n (click)=\"_handlePaginatorClick('after')\"\n (touchend)=\"_stopInterval()\">\n <div class=\"mat-tab-header-pagination-chevron\"></div>\n</div>\n", styles: [".mat-tab-header{display:flex;overflow:hidden;position:relative;flex-shrink:0}.mat-tab-header-pagination{-webkit-user-select:none;-moz-user-select:none;user-select:none;position:relative;display:none;justify-content:center;align-items:center;min-width:32px;cursor:pointer;z-index:2;-webkit-tap-highlight-color:transparent;touch-action:none;box-sizing:content-box;background:none;border:none;outline:0;padding:0}.mat-tab-header-pagination::-moz-focus-inner{border:0}.mat-tab-header-pagination-controls-enabled .mat-tab-header-pagination{display:flex}.mat-tab-header-pagination-before,.mat-tab-header-rtl .mat-tab-header-pagination-after{padding-left:4px}.mat-tab-header-pagination-before .mat-tab-header-pagination-chevron,.mat-tab-header-rtl .mat-tab-header-pagination-after .mat-tab-header-pagination-chevron{transform:rotate(-135deg)}.mat-tab-header-rtl .mat-tab-header-pagination-before,.mat-tab-header-pagination-after{padding-right:4px}.mat-tab-header-rtl .mat-tab-header-pagination-before .mat-tab-header-pagination-chevron,.mat-tab-header-pagination-after .mat-tab-header-pagination-chevron{transform:rotate(45deg)}.mat-tab-header-pagination-chevron{border-style:solid;border-width:2px 2px 0 0;height:8px;width:8px}.mat-tab-header-pagination-disabled{box-shadow:none;cursor:default}.mat-tab-list{flex-grow:1;position:relative;transition:transform 500ms cubic-bezier(0.35, 0, 0.25, 1)}.mat-ink-bar{position:absolute;bottom:0;height:2px;transition:500ms cubic-bezier(0.35, 0, 0.25, 1)}._mat-animation-noopable.mat-ink-bar{transition:none;animation:none}.mat-tab-group-inverted-header .mat-ink-bar{bottom:auto;top:0}.cdk-high-contrast-active .mat-ink-bar{outline:solid 2px;height:0}.mat-tab-labels{display:flex}[mat-align-tabs=center]>.mat-tab-header .mat-tab-labels{justify-content:center}[mat-align-tabs=end]>.mat-tab-header .mat-tab-labels{justify-content:flex-end}.mat-tab-label-container{display:flex;flex-grow:1;overflow:hidden;z-index:1}._mat-animation-noopable.mat-tab-list{transition:none;animation:none}.mat-tab-label{height:48px;padding:0 24px;cursor:pointer;box-sizing:border-box;opacity:.6;min-width:160px;text-align:center;display:inline-flex;justify-content:center;align-items:center;white-space:nowrap;position:relative}.mat-tab-label:focus{outline:none}.mat-tab-label:focus:not(.mat-tab-disabled){opacity:1}.cdk-high-contrast-active .mat-tab-label:focus{outline:dotted 2px;outline-offset:-2px}.mat-tab-label.mat-tab-disabled{cursor:default}.cdk-high-contrast-active .mat-tab-label.mat-tab-disabled{opacity:.5}.mat-tab-label .mat-tab-label-content{display:inline-flex;justify-content:center;align-items:center;white-space:nowrap}.cdk-high-contrast-active .mat-tab-label{opacity:1}@media(max-width: 599px){.mat-tab-label{min-width:72px}}\n"] }]
1152
+ }, template: "<button class=\"mat-tab-header-pagination mat-tab-header-pagination-before mat-elevation-z4\"\n #previousPaginator\n aria-hidden=\"true\"\n type=\"button\"\n mat-ripple\n tabindex=\"-1\"\n [matRippleDisabled]=\"_disableScrollBefore || disableRipple\"\n [class.mat-tab-header-pagination-disabled]=\"_disableScrollBefore\"\n [disabled]=\"_disableScrollBefore || null\"\n (click)=\"_handlePaginatorClick('before')\"\n (mousedown)=\"_handlePaginatorPress('before', $event)\"\n (touchend)=\"_stopInterval()\">\n <div class=\"mat-tab-header-pagination-chevron\"></div>\n</button>\n\n<div class=\"mat-tab-label-container\" #tabListContainer (keydown)=\"_handleKeydown($event)\">\n <div\n #tabList\n class=\"mat-tab-list\"\n [class._mat-animation-noopable]=\"_animationMode === 'NoopAnimations'\"\n role=\"tablist\"\n (cdkObserveContent)=\"_onContentChanges()\">\n <div class=\"mat-tab-labels\" #tabListInner>\n <ng-content></ng-content>\n </div>\n <mat-ink-bar></mat-ink-bar>\n </div>\n</div>\n\n<button class=\"mat-tab-header-pagination mat-tab-header-pagination-after mat-elevation-z4\"\n #nextPaginator\n aria-hidden=\"true\"\n type=\"button\"\n mat-ripple\n [matRippleDisabled]=\"_disableScrollAfter || disableRipple\"\n [class.mat-tab-header-pagination-disabled]=\"_disableScrollAfter\"\n [disabled]=\"_disableScrollAfter || null\"\n tabindex=\"-1\"\n (mousedown)=\"_handlePaginatorPress('after', $event)\"\n (click)=\"_handlePaginatorClick('after')\"\n (touchend)=\"_stopInterval()\">\n <div class=\"mat-tab-header-pagination-chevron\"></div>\n</button>\n", styles: [".mat-tab-header{display:flex;overflow:hidden;position:relative;flex-shrink:0}.mat-tab-header-pagination{-webkit-user-select:none;user-select:none;position:relative;display:none;justify-content:center;align-items:center;min-width:32px;cursor:pointer;z-index:2;-webkit-tap-highlight-color:rgba(0,0,0,0);touch-action:none;box-sizing:content-box;background:none;border:none;outline:0;padding:0}.mat-tab-header-pagination::-moz-focus-inner{border:0}.mat-tab-header-pagination-controls-enabled .mat-tab-header-pagination{display:flex}.mat-tab-header-pagination-before,.mat-tab-header-rtl .mat-tab-header-pagination-after{padding-left:4px}.mat-tab-header-pagination-before .mat-tab-header-pagination-chevron,.mat-tab-header-rtl .mat-tab-header-pagination-after .mat-tab-header-pagination-chevron{transform:rotate(-135deg)}.mat-tab-header-rtl .mat-tab-header-pagination-before,.mat-tab-header-pagination-after{padding-right:4px}.mat-tab-header-rtl .mat-tab-header-pagination-before .mat-tab-header-pagination-chevron,.mat-tab-header-pagination-after .mat-tab-header-pagination-chevron{transform:rotate(45deg)}.mat-tab-header-pagination-chevron{border-style:solid;border-width:2px 2px 0 0;height:8px;width:8px}.mat-tab-header-pagination-disabled{box-shadow:none;cursor:default}.mat-tab-list{flex-grow:1;position:relative;transition:transform 500ms cubic-bezier(0.35, 0, 0.25, 1)}.mat-ink-bar{position:absolute;bottom:0;height:2px;transition:500ms cubic-bezier(0.35, 0, 0.25, 1)}._mat-animation-noopable.mat-ink-bar{transition:none;animation:none}.mat-tab-group-inverted-header .mat-ink-bar{bottom:auto;top:0}.cdk-high-contrast-active .mat-ink-bar{outline:solid 2px;height:0}.mat-tab-labels{display:flex}[mat-align-tabs=center]>.mat-tab-header .mat-tab-labels{justify-content:center}[mat-align-tabs=end]>.mat-tab-header .mat-tab-labels{justify-content:flex-end}.mat-tab-label-container{display:flex;flex-grow:1;overflow:hidden;z-index:1}._mat-animation-noopable.mat-tab-list{transition:none;animation:none}.mat-tab-label{height:48px;padding:0 24px;cursor:pointer;box-sizing:border-box;opacity:.6;min-width:160px;text-align:center;display:inline-flex;justify-content:center;align-items:center;white-space:nowrap;position:relative}.mat-tab-label:focus{outline:none}.mat-tab-label:focus:not(.mat-tab-disabled){opacity:1}.cdk-high-contrast-active .mat-tab-label:focus{outline:dotted 2px;outline-offset:-2px}.mat-tab-label.mat-tab-disabled{cursor:default}.cdk-high-contrast-active .mat-tab-label.mat-tab-disabled{opacity:.5}.mat-tab-label .mat-tab-label-content{display:inline-flex;justify-content:center;align-items:center;white-space:nowrap}.cdk-high-contrast-active .mat-tab-label{opacity:1}@media(max-width: 599px){.mat-tab-label{min-width:72px}}"] }]
1151
1153
  }], ctorParameters: function () {
1152
1154
  return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1$1.ViewportRuler }, { type: i1.Directionality, decorators: [{
1153
1155
  type: Optional
@@ -1213,15 +1215,20 @@ class _MatTabGroupBase extends _MatTabGroupMixinBase {
1213
1215
  this._tabs = new QueryList();
1214
1216
  /** The tab index that should be selected after the content has been checked. */
1215
1217
  this._indexToSelect = 0;
1218
+ /** Index of the tab that was focused last. */
1219
+ this._lastFocusedTabIndex = null;
1216
1220
  /** Snapshot of the height of the tab body wrapper before another tab is activated. */
1217
1221
  this._tabBodyWrapperHeight = 0;
1218
1222
  /** Subscription to tabs being added/removed. */
1219
1223
  this._tabsSubscription = Subscription.EMPTY;
1220
1224
  /** Subscription to changes in the tab labels. */
1221
1225
  this._tabLabelSubscription = Subscription.EMPTY;
1226
+ this._dynamicHeight = false;
1222
1227
  this._selectedIndex = null;
1223
1228
  /** Position of the tab header. */
1224
1229
  this.headerPosition = 'above';
1230
+ this._disablePagination = false;
1231
+ this._preserveContent = false;
1225
1232
  /** Output to enable support for two-way binding on `[(selectedIndex)]` */
1226
1233
  this.selectedIndexChange = new EventEmitter();
1227
1234
  /** Event emitted when focus has changed within a tab group. */
@@ -1275,6 +1282,27 @@ class _MatTabGroupBase extends _MatTabGroupMixinBase {
1275
1282
  set contentTabIndex(value) {
1276
1283
  this._contentTabIndex = coerceNumberProperty(value, null);
1277
1284
  }
1285
+ /**
1286
+ * Whether pagination should be disabled. This can be used to avoid unnecessary
1287
+ * layout recalculations if it's known that pagination won't be required.
1288
+ */
1289
+ get disablePagination() {
1290
+ return this._disablePagination;
1291
+ }
1292
+ set disablePagination(value) {
1293
+ this._disablePagination = coerceBooleanProperty(value);
1294
+ }
1295
+ /**
1296
+ * By default tabs remove their content from the DOM while it's off-screen.
1297
+ * Setting this to `true` will keep it in the DOM which will prevent elements
1298
+ * like iframes and videos from reloading next time it comes back into the view.
1299
+ */
1300
+ get preserveContent() {
1301
+ return this._preserveContent;
1302
+ }
1303
+ set preserveContent(value) {
1304
+ this._preserveContent = coerceBooleanProperty(value);
1305
+ }
1278
1306
  /** Background color of the tab group. */
1279
1307
  get backgroundColor() {
1280
1308
  return this._backgroundColor;
@@ -1331,6 +1359,7 @@ class _MatTabGroupBase extends _MatTabGroupMixinBase {
1331
1359
  });
1332
1360
  if (this._selectedIndex !== indexToSelect) {
1333
1361
  this._selectedIndex = indexToSelect;
1362
+ this._lastFocusedTabIndex = null;
1334
1363
  this._changeDetectorRef.markForCheck();
1335
1364
  }
1336
1365
  }
@@ -1345,15 +1374,27 @@ class _MatTabGroupBase extends _MatTabGroupMixinBase {
1345
1374
  // explicit change that selects a different tab.
1346
1375
  if (indexToSelect === this._selectedIndex) {
1347
1376
  const tabs = this._tabs.toArray();
1377
+ let selectedTab;
1348
1378
  for (let i = 0; i < tabs.length; i++) {
1349
1379
  if (tabs[i].isActive) {
1350
1380
  // Assign both to the `_indexToSelect` and `_selectedIndex` so we don't fire a changed
1351
1381
  // event, otherwise the consumer may end up in an infinite loop in some edge cases like
1352
1382
  // adding a tab within the `selectedIndexChange` event.
1353
1383
  this._indexToSelect = this._selectedIndex = i;
1384
+ this._lastFocusedTabIndex = null;
1385
+ selectedTab = tabs[i];
1354
1386
  break;
1355
1387
  }
1356
1388
  }
1389
+ // If we haven't found an active tab and a tab exists at the selected index, it means
1390
+ // that the active tab was swapped out. Since this won't be picked up by the rendering
1391
+ // loop in `ngAfterContentChecked`, we need to sync it up manually.
1392
+ if (!selectedTab && tabs[indexToSelect]) {
1393
+ Promise.resolve().then(() => {
1394
+ tabs[indexToSelect].isActive = true;
1395
+ this.selectedTabChange.emit(this._createChangeEvent(indexToSelect));
1396
+ });
1397
+ }
1357
1398
  }
1358
1399
  this._changeDetectorRef.markForCheck();
1359
1400
  });
@@ -1404,6 +1445,7 @@ class _MatTabGroupBase extends _MatTabGroupMixinBase {
1404
1445
  }
1405
1446
  }
1406
1447
  _focusChanged(index) {
1448
+ this._lastFocusedTabIndex = index;
1407
1449
  this.focusChange.emit(this._createChangeEvent(index));
1408
1450
  }
1409
1451
  _createChangeEvent(index) {
@@ -1471,11 +1513,13 @@ class _MatTabGroupBase extends _MatTabGroupMixinBase {
1471
1513
  }
1472
1514
  }
1473
1515
  /** Retrieves the tabindex for the tab. */
1474
- _getTabIndex(tab, idx) {
1516
+ _getTabIndex(tab, index) {
1517
+ var _a;
1475
1518
  if (tab.disabled) {
1476
1519
  return null;
1477
1520
  }
1478
- return this.selectedIndex === idx ? 0 : -1;
1521
+ const targetIndex = (_a = this._lastFocusedTabIndex) !== null && _a !== void 0 ? _a : this.selectedIndex;
1522
+ return index === targetIndex ? 0 : -1;
1479
1523
  }
1480
1524
  /** Callback for when the focused state of a tab has changed. */
1481
1525
  _tabFocusChanged(focusOrigin, index) {
@@ -1488,9 +1532,9 @@ class _MatTabGroupBase extends _MatTabGroupMixinBase {
1488
1532
  }
1489
1533
  }
1490
1534
  }
1491
- _MatTabGroupBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: _MatTabGroupBase, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: MAT_TABS_CONFIG, optional: true }, { token: ANIMATION_MODULE_TYPE, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
1492
- _MatTabGroupBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.0", type: _MatTabGroupBase, inputs: { dynamicHeight: "dynamicHeight", selectedIndex: "selectedIndex", headerPosition: "headerPosition", animationDuration: "animationDuration", contentTabIndex: "contentTabIndex", disablePagination: "disablePagination", preserveContent: "preserveContent", backgroundColor: "backgroundColor" }, outputs: { selectedIndexChange: "selectedIndexChange", focusChange: "focusChange", animationDone: "animationDone", selectedTabChange: "selectedTabChange" }, usesInheritance: true, ngImport: i0 });
1493
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: _MatTabGroupBase, decorators: [{
1535
+ _MatTabGroupBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0-next.9", ngImport: i0, type: _MatTabGroupBase, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: MAT_TABS_CONFIG, optional: true }, { token: ANIMATION_MODULE_TYPE, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
1536
+ _MatTabGroupBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "14.0.0-next.9", type: _MatTabGroupBase, inputs: { dynamicHeight: "dynamicHeight", selectedIndex: "selectedIndex", headerPosition: "headerPosition", animationDuration: "animationDuration", contentTabIndex: "contentTabIndex", disablePagination: "disablePagination", preserveContent: "preserveContent", backgroundColor: "backgroundColor" }, outputs: { selectedIndexChange: "selectedIndexChange", focusChange: "focusChange", animationDone: "animationDone", selectedTabChange: "selectedTabChange" }, usesInheritance: true, ngImport: i0 });
1537
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.9", ngImport: i0, type: _MatTabGroupBase, decorators: [{
1494
1538
  type: Directive
1495
1539
  }], ctorParameters: function () {
1496
1540
  return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: undefined, decorators: [{
@@ -1539,14 +1583,14 @@ class MatTabGroup extends _MatTabGroupBase {
1539
1583
  super(elementRef, changeDetectorRef, defaultConfig, animationMode);
1540
1584
  }
1541
1585
  }
1542
- MatTabGroup.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: MatTabGroup, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: MAT_TABS_CONFIG, optional: true }, { token: ANIMATION_MODULE_TYPE, optional: true }], target: i0.ɵɵFactoryTarget.Component });
1543
- MatTabGroup.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.0", type: MatTabGroup, selector: "mat-tab-group", inputs: { color: "color", disableRipple: "disableRipple" }, host: { properties: { "class.mat-tab-group-dynamic-height": "dynamicHeight", "class.mat-tab-group-inverted-header": "headerPosition === \"below\"" }, classAttribute: "mat-tab-group" }, providers: [
1586
+ MatTabGroup.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0-next.9", ngImport: i0, type: MatTabGroup, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: MAT_TABS_CONFIG, optional: true }, { token: ANIMATION_MODULE_TYPE, optional: true }], target: i0.ɵɵFactoryTarget.Component });
1587
+ MatTabGroup.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "14.0.0-next.9", type: MatTabGroup, selector: "mat-tab-group", inputs: { color: "color", disableRipple: "disableRipple" }, host: { properties: { "class.mat-tab-group-dynamic-height": "dynamicHeight", "class.mat-tab-group-inverted-header": "headerPosition === \"below\"" }, classAttribute: "mat-tab-group" }, providers: [
1544
1588
  {
1545
1589
  provide: MAT_TAB_GROUP,
1546
1590
  useExisting: MatTabGroup,
1547
1591
  },
1548
- ], queries: [{ propertyName: "_allTabs", predicate: MatTab, descendants: true }], viewQueries: [{ propertyName: "_tabBodyWrapper", first: true, predicate: ["tabBodyWrapper"], descendants: true }, { propertyName: "_tabHeader", first: true, predicate: ["tabHeader"], descendants: true }], exportAs: ["matTabGroup"], usesInheritance: true, ngImport: i0, template: "<mat-tab-header #tabHeader\n [selectedIndex]=\"selectedIndex || 0\"\n [disableRipple]=\"disableRipple\"\n [disablePagination]=\"disablePagination\"\n (indexFocused)=\"_focusChanged($event)\"\n (selectFocusedIndex)=\"selectedIndex = $event\">\n <div class=\"mat-tab-label mat-focus-indicator\" role=\"tab\" matTabLabelWrapper mat-ripple\n cdkMonitorElementFocus\n *ngFor=\"let tab of _tabs; let i = index\"\n [id]=\"_getTabLabelId(i)\"\n [attr.tabIndex]=\"_getTabIndex(tab, i)\"\n [attr.aria-posinset]=\"i + 1\"\n [attr.aria-setsize]=\"_tabs.length\"\n [attr.aria-controls]=\"_getTabContentId(i)\"\n [attr.aria-selected]=\"selectedIndex === i\"\n [attr.aria-label]=\"tab.ariaLabel || null\"\n [attr.aria-labelledby]=\"(!tab.ariaLabel && tab.ariaLabelledby) ? tab.ariaLabelledby : null\"\n [class.mat-tab-label-active]=\"selectedIndex === i\"\n [ngClass]=\"tab.labelClass\"\n [disabled]=\"tab.disabled\"\n [matRippleDisabled]=\"tab.disabled || disableRipple\"\n (click)=\"_handleClick(tab, tabHeader, i)\"\n (cdkFocusChange)=\"_tabFocusChanged($event, i)\">\n\n\n <div class=\"mat-tab-label-content\">\n <!-- If there is a label template, use it. -->\n <ng-template [ngIf]=\"tab.templateLabel\" [ngIfElse]=\"tabTextLabel\">\n <ng-template [cdkPortalOutlet]=\"tab.templateLabel\"></ng-template>\n </ng-template>\n\n <!-- If there is not a label template, fall back to the text label. -->\n <ng-template #tabTextLabel>{{tab.textLabel}}</ng-template>\n </div>\n </div>\n</mat-tab-header>\n\n<div\n class=\"mat-tab-body-wrapper\"\n [class._mat-animation-noopable]=\"_animationMode === 'NoopAnimations'\"\n #tabBodyWrapper>\n <mat-tab-body role=\"tabpanel\"\n *ngFor=\"let tab of _tabs; let i = index\"\n [id]=\"_getTabContentId(i)\"\n [attr.tabindex]=\"(contentTabIndex != null && selectedIndex === i) ? contentTabIndex : null\"\n [attr.aria-labelledby]=\"_getTabLabelId(i)\"\n [class.mat-tab-body-active]=\"selectedIndex === i\"\n [ngClass]=\"tab.bodyClass\"\n [content]=\"tab.content!\"\n [position]=\"tab.position!\"\n [origin]=\"tab.origin\"\n [animationDuration]=\"animationDuration\"\n [preserveContent]=\"preserveContent\"\n (_onCentered)=\"_removeTabBodyWrapperHeight()\"\n (_onCentering)=\"_setTabBodyWrapperHeight($event)\">\n </mat-tab-body>\n</div>\n", styles: [".mat-tab-group{display:flex;flex-direction:column;max-width:100%}.mat-tab-group.mat-tab-group-inverted-header{flex-direction:column-reverse}.mat-tab-label{height:48px;padding:0 24px;cursor:pointer;box-sizing:border-box;opacity:.6;min-width:160px;text-align:center;display:inline-flex;justify-content:center;align-items:center;white-space:nowrap;position:relative}.mat-tab-label:focus{outline:none}.mat-tab-label:focus:not(.mat-tab-disabled){opacity:1}.cdk-high-contrast-active .mat-tab-label:focus{outline:dotted 2px;outline-offset:-2px}.mat-tab-label.mat-tab-disabled{cursor:default}.cdk-high-contrast-active .mat-tab-label.mat-tab-disabled{opacity:.5}.mat-tab-label .mat-tab-label-content{display:inline-flex;justify-content:center;align-items:center;white-space:nowrap}.cdk-high-contrast-active .mat-tab-label{opacity:1}@media(max-width: 599px){.mat-tab-label{padding:0 12px}}@media(max-width: 959px){.mat-tab-label{padding:0 12px}}.mat-tab-group[mat-stretch-tabs]>.mat-tab-header .mat-tab-label{flex-basis:0;flex-grow:1}.mat-tab-body-wrapper{position:relative;overflow:hidden;display:flex;transition:height 500ms cubic-bezier(0.35, 0, 0.25, 1)}._mat-animation-noopable.mat-tab-body-wrapper{transition:none;animation:none}.mat-tab-body{top:0;left:0;right:0;bottom:0;position:absolute;display:block;overflow:hidden;outline:0;flex-basis:100%}.mat-tab-body.mat-tab-body-active{position:relative;overflow-x:hidden;overflow-y:auto;z-index:1;flex-grow:1}.mat-tab-group.mat-tab-group-dynamic-height .mat-tab-body.mat-tab-body-active{overflow-y:hidden}\n"], components: [{ type: MatTabHeader, selector: "mat-tab-header", inputs: ["selectedIndex"], outputs: ["selectFocusedIndex", "indexFocused"] }, { type: MatTabBody, selector: "mat-tab-body" }], directives: [{ type: i3$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: MatTabLabelWrapper, selector: "[matTabLabelWrapper]", inputs: ["disabled"] }, { type: i4.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { type: i7.CdkMonitorFocus, selector: "[cdkMonitorElementFocus], [cdkMonitorSubtreeFocus]", outputs: ["cdkFocusChange"] }, { type: i3$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7$1.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None });
1549
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: MatTabGroup, decorators: [{
1592
+ ], queries: [{ propertyName: "_allTabs", predicate: MatTab, descendants: true }], viewQueries: [{ propertyName: "_tabBodyWrapper", first: true, predicate: ["tabBodyWrapper"], descendants: true }, { propertyName: "_tabHeader", first: true, predicate: ["tabHeader"], descendants: true }], exportAs: ["matTabGroup"], usesInheritance: true, ngImport: i0, template: "<mat-tab-header #tabHeader\n [selectedIndex]=\"selectedIndex || 0\"\n [disableRipple]=\"disableRipple\"\n [disablePagination]=\"disablePagination\"\n (indexFocused)=\"_focusChanged($event)\"\n (selectFocusedIndex)=\"selectedIndex = $event\">\n <div class=\"mat-tab-label mat-focus-indicator\" role=\"tab\" matTabLabelWrapper mat-ripple\n cdkMonitorElementFocus\n *ngFor=\"let tab of _tabs; let i = index\"\n [id]=\"_getTabLabelId(i)\"\n [attr.tabIndex]=\"_getTabIndex(tab, i)\"\n [attr.aria-posinset]=\"i + 1\"\n [attr.aria-setsize]=\"_tabs.length\"\n [attr.aria-controls]=\"_getTabContentId(i)\"\n [attr.aria-selected]=\"selectedIndex === i\"\n [attr.aria-label]=\"tab.ariaLabel || null\"\n [attr.aria-labelledby]=\"(!tab.ariaLabel && tab.ariaLabelledby) ? tab.ariaLabelledby : null\"\n [class.mat-tab-label-active]=\"selectedIndex === i\"\n [ngClass]=\"tab.labelClass\"\n [disabled]=\"tab.disabled\"\n [matRippleDisabled]=\"tab.disabled || disableRipple\"\n (click)=\"_handleClick(tab, tabHeader, i)\"\n (cdkFocusChange)=\"_tabFocusChanged($event, i)\">\n\n\n <div class=\"mat-tab-label-content\">\n <!-- If there is a label template, use it. -->\n <ng-template [ngIf]=\"tab.templateLabel\" [ngIfElse]=\"tabTextLabel\">\n <ng-template [cdkPortalOutlet]=\"tab.templateLabel\"></ng-template>\n </ng-template>\n\n <!-- If there is not a label template, fall back to the text label. -->\n <ng-template #tabTextLabel>{{tab.textLabel}}</ng-template>\n </div>\n </div>\n</mat-tab-header>\n\n<div\n class=\"mat-tab-body-wrapper\"\n [class._mat-animation-noopable]=\"_animationMode === 'NoopAnimations'\"\n #tabBodyWrapper>\n <mat-tab-body role=\"tabpanel\"\n *ngFor=\"let tab of _tabs; let i = index\"\n [id]=\"_getTabContentId(i)\"\n [attr.tabindex]=\"(contentTabIndex != null && selectedIndex === i) ? contentTabIndex : null\"\n [attr.aria-labelledby]=\"_getTabLabelId(i)\"\n [class.mat-tab-body-active]=\"selectedIndex === i\"\n [ngClass]=\"tab.bodyClass\"\n [content]=\"tab.content!\"\n [position]=\"tab.position!\"\n [origin]=\"tab.origin\"\n [animationDuration]=\"animationDuration\"\n [preserveContent]=\"preserveContent\"\n (_onCentered)=\"_removeTabBodyWrapperHeight()\"\n (_onCentering)=\"_setTabBodyWrapperHeight($event)\">\n </mat-tab-body>\n</div>\n", styles: [".mat-tab-group{display:flex;flex-direction:column;max-width:100%}.mat-tab-group.mat-tab-group-inverted-header{flex-direction:column-reverse}.mat-tab-label{height:48px;padding:0 24px;cursor:pointer;box-sizing:border-box;opacity:.6;min-width:160px;text-align:center;display:inline-flex;justify-content:center;align-items:center;white-space:nowrap;position:relative}.mat-tab-label:focus{outline:none}.mat-tab-label:focus:not(.mat-tab-disabled){opacity:1}.cdk-high-contrast-active .mat-tab-label:focus{outline:dotted 2px;outline-offset:-2px}.mat-tab-label.mat-tab-disabled{cursor:default}.cdk-high-contrast-active .mat-tab-label.mat-tab-disabled{opacity:.5}.mat-tab-label .mat-tab-label-content{display:inline-flex;justify-content:center;align-items:center;white-space:nowrap}.cdk-high-contrast-active .mat-tab-label{opacity:1}@media(max-width: 599px){.mat-tab-label{padding:0 12px}}@media(max-width: 959px){.mat-tab-label{padding:0 12px}}.mat-tab-group[mat-stretch-tabs]>.mat-tab-header .mat-tab-label{flex-basis:0;flex-grow:1}.mat-tab-body-wrapper{position:relative;overflow:hidden;display:flex;transition:height 500ms cubic-bezier(0.35, 0, 0.25, 1)}._mat-animation-noopable.mat-tab-body-wrapper{transition:none;animation:none}.mat-tab-body{top:0;left:0;right:0;bottom:0;position:absolute;display:block;overflow:hidden;outline:0;flex-basis:100%}.mat-tab-body.mat-tab-body-active{position:relative;overflow-x:hidden;overflow-y:auto;z-index:1;flex-grow:1}.mat-tab-group.mat-tab-group-dynamic-height .mat-tab-body.mat-tab-body-active{overflow-y:hidden}"], components: [{ type: MatTabHeader, selector: "mat-tab-header", inputs: ["selectedIndex"], outputs: ["selectFocusedIndex", "indexFocused"] }, { type: MatTabBody, selector: "mat-tab-body" }], directives: [{ type: i3$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: MatTabLabelWrapper, selector: "[matTabLabelWrapper]", inputs: ["disabled"] }, { type: i4.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { type: i7.CdkMonitorFocus, selector: "[cdkMonitorElementFocus], [cdkMonitorSubtreeFocus]", outputs: ["cdkFocusChange"] }, { type: i3$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7$1.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None });
1593
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.9", ngImport: i0, type: MatTabGroup, decorators: [{
1550
1594
  type: Component,
1551
1595
  args: [{ selector: 'mat-tab-group', exportAs: 'matTabGroup', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.Default, inputs: ['color', 'disableRipple'], providers: [
1552
1596
  {
@@ -1557,7 +1601,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImpor
1557
1601
  'class': 'mat-tab-group',
1558
1602
  '[class.mat-tab-group-dynamic-height]': 'dynamicHeight',
1559
1603
  '[class.mat-tab-group-inverted-header]': 'headerPosition === "below"',
1560
- }, template: "<mat-tab-header #tabHeader\n [selectedIndex]=\"selectedIndex || 0\"\n [disableRipple]=\"disableRipple\"\n [disablePagination]=\"disablePagination\"\n (indexFocused)=\"_focusChanged($event)\"\n (selectFocusedIndex)=\"selectedIndex = $event\">\n <div class=\"mat-tab-label mat-focus-indicator\" role=\"tab\" matTabLabelWrapper mat-ripple\n cdkMonitorElementFocus\n *ngFor=\"let tab of _tabs; let i = index\"\n [id]=\"_getTabLabelId(i)\"\n [attr.tabIndex]=\"_getTabIndex(tab, i)\"\n [attr.aria-posinset]=\"i + 1\"\n [attr.aria-setsize]=\"_tabs.length\"\n [attr.aria-controls]=\"_getTabContentId(i)\"\n [attr.aria-selected]=\"selectedIndex === i\"\n [attr.aria-label]=\"tab.ariaLabel || null\"\n [attr.aria-labelledby]=\"(!tab.ariaLabel && tab.ariaLabelledby) ? tab.ariaLabelledby : null\"\n [class.mat-tab-label-active]=\"selectedIndex === i\"\n [ngClass]=\"tab.labelClass\"\n [disabled]=\"tab.disabled\"\n [matRippleDisabled]=\"tab.disabled || disableRipple\"\n (click)=\"_handleClick(tab, tabHeader, i)\"\n (cdkFocusChange)=\"_tabFocusChanged($event, i)\">\n\n\n <div class=\"mat-tab-label-content\">\n <!-- If there is a label template, use it. -->\n <ng-template [ngIf]=\"tab.templateLabel\" [ngIfElse]=\"tabTextLabel\">\n <ng-template [cdkPortalOutlet]=\"tab.templateLabel\"></ng-template>\n </ng-template>\n\n <!-- If there is not a label template, fall back to the text label. -->\n <ng-template #tabTextLabel>{{tab.textLabel}}</ng-template>\n </div>\n </div>\n</mat-tab-header>\n\n<div\n class=\"mat-tab-body-wrapper\"\n [class._mat-animation-noopable]=\"_animationMode === 'NoopAnimations'\"\n #tabBodyWrapper>\n <mat-tab-body role=\"tabpanel\"\n *ngFor=\"let tab of _tabs; let i = index\"\n [id]=\"_getTabContentId(i)\"\n [attr.tabindex]=\"(contentTabIndex != null && selectedIndex === i) ? contentTabIndex : null\"\n [attr.aria-labelledby]=\"_getTabLabelId(i)\"\n [class.mat-tab-body-active]=\"selectedIndex === i\"\n [ngClass]=\"tab.bodyClass\"\n [content]=\"tab.content!\"\n [position]=\"tab.position!\"\n [origin]=\"tab.origin\"\n [animationDuration]=\"animationDuration\"\n [preserveContent]=\"preserveContent\"\n (_onCentered)=\"_removeTabBodyWrapperHeight()\"\n (_onCentering)=\"_setTabBodyWrapperHeight($event)\">\n </mat-tab-body>\n</div>\n", styles: [".mat-tab-group{display:flex;flex-direction:column;max-width:100%}.mat-tab-group.mat-tab-group-inverted-header{flex-direction:column-reverse}.mat-tab-label{height:48px;padding:0 24px;cursor:pointer;box-sizing:border-box;opacity:.6;min-width:160px;text-align:center;display:inline-flex;justify-content:center;align-items:center;white-space:nowrap;position:relative}.mat-tab-label:focus{outline:none}.mat-tab-label:focus:not(.mat-tab-disabled){opacity:1}.cdk-high-contrast-active .mat-tab-label:focus{outline:dotted 2px;outline-offset:-2px}.mat-tab-label.mat-tab-disabled{cursor:default}.cdk-high-contrast-active .mat-tab-label.mat-tab-disabled{opacity:.5}.mat-tab-label .mat-tab-label-content{display:inline-flex;justify-content:center;align-items:center;white-space:nowrap}.cdk-high-contrast-active .mat-tab-label{opacity:1}@media(max-width: 599px){.mat-tab-label{padding:0 12px}}@media(max-width: 959px){.mat-tab-label{padding:0 12px}}.mat-tab-group[mat-stretch-tabs]>.mat-tab-header .mat-tab-label{flex-basis:0;flex-grow:1}.mat-tab-body-wrapper{position:relative;overflow:hidden;display:flex;transition:height 500ms cubic-bezier(0.35, 0, 0.25, 1)}._mat-animation-noopable.mat-tab-body-wrapper{transition:none;animation:none}.mat-tab-body{top:0;left:0;right:0;bottom:0;position:absolute;display:block;overflow:hidden;outline:0;flex-basis:100%}.mat-tab-body.mat-tab-body-active{position:relative;overflow-x:hidden;overflow-y:auto;z-index:1;flex-grow:1}.mat-tab-group.mat-tab-group-dynamic-height .mat-tab-body.mat-tab-body-active{overflow-y:hidden}\n"] }]
1604
+ }, template: "<mat-tab-header #tabHeader\n [selectedIndex]=\"selectedIndex || 0\"\n [disableRipple]=\"disableRipple\"\n [disablePagination]=\"disablePagination\"\n (indexFocused)=\"_focusChanged($event)\"\n (selectFocusedIndex)=\"selectedIndex = $event\">\n <div class=\"mat-tab-label mat-focus-indicator\" role=\"tab\" matTabLabelWrapper mat-ripple\n cdkMonitorElementFocus\n *ngFor=\"let tab of _tabs; let i = index\"\n [id]=\"_getTabLabelId(i)\"\n [attr.tabIndex]=\"_getTabIndex(tab, i)\"\n [attr.aria-posinset]=\"i + 1\"\n [attr.aria-setsize]=\"_tabs.length\"\n [attr.aria-controls]=\"_getTabContentId(i)\"\n [attr.aria-selected]=\"selectedIndex === i\"\n [attr.aria-label]=\"tab.ariaLabel || null\"\n [attr.aria-labelledby]=\"(!tab.ariaLabel && tab.ariaLabelledby) ? tab.ariaLabelledby : null\"\n [class.mat-tab-label-active]=\"selectedIndex === i\"\n [ngClass]=\"tab.labelClass\"\n [disabled]=\"tab.disabled\"\n [matRippleDisabled]=\"tab.disabled || disableRipple\"\n (click)=\"_handleClick(tab, tabHeader, i)\"\n (cdkFocusChange)=\"_tabFocusChanged($event, i)\">\n\n\n <div class=\"mat-tab-label-content\">\n <!-- If there is a label template, use it. -->\n <ng-template [ngIf]=\"tab.templateLabel\" [ngIfElse]=\"tabTextLabel\">\n <ng-template [cdkPortalOutlet]=\"tab.templateLabel\"></ng-template>\n </ng-template>\n\n <!-- If there is not a label template, fall back to the text label. -->\n <ng-template #tabTextLabel>{{tab.textLabel}}</ng-template>\n </div>\n </div>\n</mat-tab-header>\n\n<div\n class=\"mat-tab-body-wrapper\"\n [class._mat-animation-noopable]=\"_animationMode === 'NoopAnimations'\"\n #tabBodyWrapper>\n <mat-tab-body role=\"tabpanel\"\n *ngFor=\"let tab of _tabs; let i = index\"\n [id]=\"_getTabContentId(i)\"\n [attr.tabindex]=\"(contentTabIndex != null && selectedIndex === i) ? contentTabIndex : null\"\n [attr.aria-labelledby]=\"_getTabLabelId(i)\"\n [class.mat-tab-body-active]=\"selectedIndex === i\"\n [ngClass]=\"tab.bodyClass\"\n [content]=\"tab.content!\"\n [position]=\"tab.position!\"\n [origin]=\"tab.origin\"\n [animationDuration]=\"animationDuration\"\n [preserveContent]=\"preserveContent\"\n (_onCentered)=\"_removeTabBodyWrapperHeight()\"\n (_onCentering)=\"_setTabBodyWrapperHeight($event)\">\n </mat-tab-body>\n</div>\n", styles: [".mat-tab-group{display:flex;flex-direction:column;max-width:100%}.mat-tab-group.mat-tab-group-inverted-header{flex-direction:column-reverse}.mat-tab-label{height:48px;padding:0 24px;cursor:pointer;box-sizing:border-box;opacity:.6;min-width:160px;text-align:center;display:inline-flex;justify-content:center;align-items:center;white-space:nowrap;position:relative}.mat-tab-label:focus{outline:none}.mat-tab-label:focus:not(.mat-tab-disabled){opacity:1}.cdk-high-contrast-active .mat-tab-label:focus{outline:dotted 2px;outline-offset:-2px}.mat-tab-label.mat-tab-disabled{cursor:default}.cdk-high-contrast-active .mat-tab-label.mat-tab-disabled{opacity:.5}.mat-tab-label .mat-tab-label-content{display:inline-flex;justify-content:center;align-items:center;white-space:nowrap}.cdk-high-contrast-active .mat-tab-label{opacity:1}@media(max-width: 599px){.mat-tab-label{padding:0 12px}}@media(max-width: 959px){.mat-tab-label{padding:0 12px}}.mat-tab-group[mat-stretch-tabs]>.mat-tab-header .mat-tab-label{flex-basis:0;flex-grow:1}.mat-tab-body-wrapper{position:relative;overflow:hidden;display:flex;transition:height 500ms cubic-bezier(0.35, 0, 0.25, 1)}._mat-animation-noopable.mat-tab-body-wrapper{transition:none;animation:none}.mat-tab-body{top:0;left:0;right:0;bottom:0;position:absolute;display:block;overflow:hidden;outline:0;flex-basis:100%}.mat-tab-body.mat-tab-body-active{position:relative;overflow-x:hidden;overflow-y:auto;z-index:1;flex-grow:1}.mat-tab-group.mat-tab-group-dynamic-height .mat-tab-body.mat-tab-body-active{overflow-y:hidden}"] }]
1561
1605
  }], ctorParameters: function () {
1562
1606
  return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: undefined, decorators: [{
1563
1607
  type: Inject,
@@ -1648,9 +1692,9 @@ class _MatTabNavBase extends MatPaginatedTabHeader {
1648
1692
  return this.tabPanel ? 'tablist' : this._elementRef.nativeElement.getAttribute('role');
1649
1693
  }
1650
1694
  }
1651
- _MatTabNavBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: _MatTabNavBase, deps: [{ token: i0.ElementRef }, { token: i1.Directionality, optional: true }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: i1$1.ViewportRuler }, { token: i3.Platform }, { token: ANIMATION_MODULE_TYPE, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
1652
- _MatTabNavBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.0", type: _MatTabNavBase, inputs: { backgroundColor: "backgroundColor", disableRipple: "disableRipple", color: "color", tabPanel: "tabPanel" }, usesInheritance: true, ngImport: i0 });
1653
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: _MatTabNavBase, decorators: [{
1695
+ _MatTabNavBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0-next.9", ngImport: i0, type: _MatTabNavBase, deps: [{ token: i0.ElementRef }, { token: i1.Directionality, optional: true }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: i1$1.ViewportRuler }, { token: i3.Platform }, { token: ANIMATION_MODULE_TYPE, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
1696
+ _MatTabNavBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "14.0.0-next.9", type: _MatTabNavBase, inputs: { backgroundColor: "backgroundColor", disableRipple: "disableRipple", color: "color", tabPanel: "tabPanel" }, usesInheritance: true, ngImport: i0 });
1697
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.9", ngImport: i0, type: _MatTabNavBase, decorators: [{
1654
1698
  type: Directive
1655
1699
  }], ctorParameters: function () {
1656
1700
  return [{ type: i0.ElementRef }, { type: i1.Directionality, decorators: [{
@@ -1679,9 +1723,9 @@ class MatTabNav extends _MatTabNavBase {
1679
1723
  super(elementRef, dir, ngZone, changeDetectorRef, viewportRuler, platform, animationMode);
1680
1724
  }
1681
1725
  }
1682
- MatTabNav.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: MatTabNav, deps: [{ token: i0.ElementRef }, { token: i1.Directionality, optional: true }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: i1$1.ViewportRuler }, { token: i3.Platform }, { token: ANIMATION_MODULE_TYPE, optional: true }], target: i0.ɵɵFactoryTarget.Component });
1683
- MatTabNav.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.0", type: MatTabNav, selector: "[mat-tab-nav-bar]", inputs: { color: "color" }, host: { properties: { "attr.role": "_getRole()", "class.mat-tab-header-pagination-controls-enabled": "_showPaginationControls", "class.mat-tab-header-rtl": "_getLayoutDirection() == 'rtl'", "class.mat-primary": "color !== \"warn\" && color !== \"accent\"", "class.mat-accent": "color === \"accent\"", "class.mat-warn": "color === \"warn\"" }, classAttribute: "mat-tab-nav-bar mat-tab-header" }, queries: [{ propertyName: "_items", predicate: i0.forwardRef(function () { return MatTabLink; }), descendants: true }], viewQueries: [{ propertyName: "_inkBar", first: true, predicate: MatInkBar, descendants: true, static: true }, { propertyName: "_tabListContainer", first: true, predicate: ["tabListContainer"], descendants: true, static: true }, { propertyName: "_tabList", first: true, predicate: ["tabList"], descendants: true, static: true }, { propertyName: "_tabListInner", first: true, predicate: ["tabListInner"], descendants: true, static: true }, { propertyName: "_nextPaginator", first: true, predicate: ["nextPaginator"], descendants: true }, { propertyName: "_previousPaginator", first: true, predicate: ["previousPaginator"], descendants: true }], exportAs: ["matTabNavBar", "matTabNav"], usesInheritance: true, ngImport: i0, template: "<button class=\"mat-tab-header-pagination mat-tab-header-pagination-before mat-elevation-z4\"\n #previousPaginator\n aria-hidden=\"true\"\n type=\"button\"\n mat-ripple\n tabindex=\"-1\"\n [matRippleDisabled]=\"_disableScrollBefore || disableRipple\"\n [class.mat-tab-header-pagination-disabled]=\"_disableScrollBefore\"\n [disabled]=\"_disableScrollBefore || null\"\n (click)=\"_handlePaginatorClick('before')\"\n (mousedown)=\"_handlePaginatorPress('before', $event)\"\n (touchend)=\"_stopInterval()\">\n <div class=\"mat-tab-header-pagination-chevron\"></div>\n</button>\n\n<div class=\"mat-tab-link-container\" #tabListContainer (keydown)=\"_handleKeydown($event)\">\n <div\n class=\"mat-tab-list\"\n [class._mat-animation-noopable]=\"_animationMode === 'NoopAnimations'\"\n #tabList\n (cdkObserveContent)=\"_onContentChanges()\">\n <div class=\"mat-tab-links\" #tabListInner>\n <ng-content></ng-content>\n </div>\n <mat-ink-bar></mat-ink-bar>\n </div>\n</div>\n\n<button class=\"mat-tab-header-pagination mat-tab-header-pagination-after mat-elevation-z4\"\n #nextPaginator\n aria-hidden=\"true\"\n type=\"button\"\n mat-ripple\n [matRippleDisabled]=\"_disableScrollAfter || disableRipple\"\n [class.mat-tab-header-pagination-disabled]=\"_disableScrollAfter\"\n [disabled]=\"_disableScrollAfter || null\"\n tabindex=\"-1\"\n (mousedown)=\"_handlePaginatorPress('after', $event)\"\n (click)=\"_handlePaginatorClick('after')\"\n (touchend)=\"_stopInterval()\">\n <div class=\"mat-tab-header-pagination-chevron\"></div>\n</button>\n", styles: [".mat-tab-header{display:flex;overflow:hidden;position:relative;flex-shrink:0}.mat-tab-header-pagination{-webkit-user-select:none;-moz-user-select:none;user-select:none;position:relative;display:none;justify-content:center;align-items:center;min-width:32px;cursor:pointer;z-index:2;-webkit-tap-highlight-color:transparent;touch-action:none;box-sizing:content-box;background:none;border:none;outline:0;padding:0}.mat-tab-header-pagination::-moz-focus-inner{border:0}.mat-tab-header-pagination-controls-enabled .mat-tab-header-pagination{display:flex}.mat-tab-header-pagination-before,.mat-tab-header-rtl .mat-tab-header-pagination-after{padding-left:4px}.mat-tab-header-pagination-before .mat-tab-header-pagination-chevron,.mat-tab-header-rtl .mat-tab-header-pagination-after .mat-tab-header-pagination-chevron{transform:rotate(-135deg)}.mat-tab-header-rtl .mat-tab-header-pagination-before,.mat-tab-header-pagination-after{padding-right:4px}.mat-tab-header-rtl .mat-tab-header-pagination-before .mat-tab-header-pagination-chevron,.mat-tab-header-pagination-after .mat-tab-header-pagination-chevron{transform:rotate(45deg)}.mat-tab-header-pagination-chevron{border-style:solid;border-width:2px 2px 0 0;height:8px;width:8px}.mat-tab-header-pagination-disabled{box-shadow:none;cursor:default}.mat-tab-list{flex-grow:1;position:relative;transition:transform 500ms cubic-bezier(0.35, 0, 0.25, 1)}.mat-tab-links{display:flex}[mat-align-tabs=center]>.mat-tab-link-container .mat-tab-links{justify-content:center}[mat-align-tabs=end]>.mat-tab-link-container .mat-tab-links{justify-content:flex-end}.mat-ink-bar{position:absolute;bottom:0;height:2px;transition:500ms cubic-bezier(0.35, 0, 0.25, 1)}._mat-animation-noopable.mat-ink-bar{transition:none;animation:none}.mat-tab-group-inverted-header .mat-ink-bar{bottom:auto;top:0}.cdk-high-contrast-active .mat-ink-bar{outline:solid 2px;height:0}.mat-tab-link-container{display:flex;flex-grow:1;overflow:hidden;z-index:1}.mat-tab-link{height:48px;padding:0 24px;cursor:pointer;box-sizing:border-box;opacity:.6;min-width:160px;text-align:center;display:inline-flex;justify-content:center;align-items:center;white-space:nowrap;vertical-align:top;text-decoration:none;position:relative;overflow:hidden;-webkit-tap-highlight-color:transparent}.mat-tab-link:focus{outline:none}.mat-tab-link:focus:not(.mat-tab-disabled){opacity:1}.cdk-high-contrast-active .mat-tab-link:focus{outline:dotted 2px;outline-offset:-2px}.mat-tab-link.mat-tab-disabled{cursor:default}.cdk-high-contrast-active .mat-tab-link.mat-tab-disabled{opacity:.5}.mat-tab-link .mat-tab-label-content{display:inline-flex;justify-content:center;align-items:center;white-space:nowrap}.cdk-high-contrast-active .mat-tab-link{opacity:1}[mat-stretch-tabs] .mat-tab-link{flex-basis:0;flex-grow:1}.mat-tab-link.mat-tab-disabled{pointer-events:none}@media(max-width: 599px){.mat-tab-link{min-width:72px}}\n"], directives: [{ type: i4.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { type: i5.CdkObserveContent, selector: "[cdkObserveContent]", inputs: ["cdkObserveContentDisabled", "debounce"], outputs: ["cdkObserveContent"], exportAs: ["cdkObserveContent"] }, { type: MatInkBar, selector: "mat-ink-bar" }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None });
1684
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: MatTabNav, decorators: [{
1726
+ MatTabNav.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0-next.9", ngImport: i0, type: MatTabNav, deps: [{ token: i0.ElementRef }, { token: i1.Directionality, optional: true }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: i1$1.ViewportRuler }, { token: i3.Platform }, { token: ANIMATION_MODULE_TYPE, optional: true }], target: i0.ɵɵFactoryTarget.Component });
1727
+ MatTabNav.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "14.0.0-next.9", type: MatTabNav, selector: "[mat-tab-nav-bar]", inputs: { color: "color" }, host: { properties: { "attr.role": "_getRole()", "class.mat-tab-header-pagination-controls-enabled": "_showPaginationControls", "class.mat-tab-header-rtl": "_getLayoutDirection() == 'rtl'", "class.mat-primary": "color !== \"warn\" && color !== \"accent\"", "class.mat-accent": "color === \"accent\"", "class.mat-warn": "color === \"warn\"" }, classAttribute: "mat-tab-nav-bar mat-tab-header" }, queries: [{ propertyName: "_items", predicate: i0.forwardRef(function () { return MatTabLink; }), descendants: true }], viewQueries: [{ propertyName: "_inkBar", first: true, predicate: MatInkBar, descendants: true, static: true }, { propertyName: "_tabListContainer", first: true, predicate: ["tabListContainer"], descendants: true, static: true }, { propertyName: "_tabList", first: true, predicate: ["tabList"], descendants: true, static: true }, { propertyName: "_tabListInner", first: true, predicate: ["tabListInner"], descendants: true, static: true }, { propertyName: "_nextPaginator", first: true, predicate: ["nextPaginator"], descendants: true }, { propertyName: "_previousPaginator", first: true, predicate: ["previousPaginator"], descendants: true }], exportAs: ["matTabNavBar", "matTabNav"], usesInheritance: true, ngImport: i0, template: "<button class=\"mat-tab-header-pagination mat-tab-header-pagination-before mat-elevation-z4\"\n #previousPaginator\n aria-hidden=\"true\"\n type=\"button\"\n mat-ripple\n tabindex=\"-1\"\n [matRippleDisabled]=\"_disableScrollBefore || disableRipple\"\n [class.mat-tab-header-pagination-disabled]=\"_disableScrollBefore\"\n [disabled]=\"_disableScrollBefore || null\"\n (click)=\"_handlePaginatorClick('before')\"\n (mousedown)=\"_handlePaginatorPress('before', $event)\"\n (touchend)=\"_stopInterval()\">\n <div class=\"mat-tab-header-pagination-chevron\"></div>\n</button>\n\n<div class=\"mat-tab-link-container\" #tabListContainer (keydown)=\"_handleKeydown($event)\">\n <div\n class=\"mat-tab-list\"\n [class._mat-animation-noopable]=\"_animationMode === 'NoopAnimations'\"\n #tabList\n (cdkObserveContent)=\"_onContentChanges()\">\n <div class=\"mat-tab-links\" #tabListInner>\n <ng-content></ng-content>\n </div>\n <mat-ink-bar></mat-ink-bar>\n </div>\n</div>\n\n<button class=\"mat-tab-header-pagination mat-tab-header-pagination-after mat-elevation-z4\"\n #nextPaginator\n aria-hidden=\"true\"\n type=\"button\"\n mat-ripple\n [matRippleDisabled]=\"_disableScrollAfter || disableRipple\"\n [class.mat-tab-header-pagination-disabled]=\"_disableScrollAfter\"\n [disabled]=\"_disableScrollAfter || null\"\n tabindex=\"-1\"\n (mousedown)=\"_handlePaginatorPress('after', $event)\"\n (click)=\"_handlePaginatorClick('after')\"\n (touchend)=\"_stopInterval()\">\n <div class=\"mat-tab-header-pagination-chevron\"></div>\n</button>\n", styles: [".mat-tab-header{display:flex;overflow:hidden;position:relative;flex-shrink:0}.mat-tab-header-pagination{-webkit-user-select:none;user-select:none;position:relative;display:none;justify-content:center;align-items:center;min-width:32px;cursor:pointer;z-index:2;-webkit-tap-highlight-color:rgba(0,0,0,0);touch-action:none;box-sizing:content-box;background:none;border:none;outline:0;padding:0}.mat-tab-header-pagination::-moz-focus-inner{border:0}.mat-tab-header-pagination-controls-enabled .mat-tab-header-pagination{display:flex}.mat-tab-header-pagination-before,.mat-tab-header-rtl .mat-tab-header-pagination-after{padding-left:4px}.mat-tab-header-pagination-before .mat-tab-header-pagination-chevron,.mat-tab-header-rtl .mat-tab-header-pagination-after .mat-tab-header-pagination-chevron{transform:rotate(-135deg)}.mat-tab-header-rtl .mat-tab-header-pagination-before,.mat-tab-header-pagination-after{padding-right:4px}.mat-tab-header-rtl .mat-tab-header-pagination-before .mat-tab-header-pagination-chevron,.mat-tab-header-pagination-after .mat-tab-header-pagination-chevron{transform:rotate(45deg)}.mat-tab-header-pagination-chevron{border-style:solid;border-width:2px 2px 0 0;height:8px;width:8px}.mat-tab-header-pagination-disabled{box-shadow:none;cursor:default}.mat-tab-list{flex-grow:1;position:relative;transition:transform 500ms cubic-bezier(0.35, 0, 0.25, 1)}.mat-tab-links{display:flex}[mat-align-tabs=center]>.mat-tab-link-container .mat-tab-links{justify-content:center}[mat-align-tabs=end]>.mat-tab-link-container .mat-tab-links{justify-content:flex-end}.mat-ink-bar{position:absolute;bottom:0;height:2px;transition:500ms cubic-bezier(0.35, 0, 0.25, 1)}._mat-animation-noopable.mat-ink-bar{transition:none;animation:none}.mat-tab-group-inverted-header .mat-ink-bar{bottom:auto;top:0}.cdk-high-contrast-active .mat-ink-bar{outline:solid 2px;height:0}.mat-tab-link-container{display:flex;flex-grow:1;overflow:hidden;z-index:1}.mat-tab-link{height:48px;padding:0 24px;cursor:pointer;box-sizing:border-box;opacity:.6;min-width:160px;text-align:center;display:inline-flex;justify-content:center;align-items:center;white-space:nowrap;vertical-align:top;text-decoration:none;position:relative;overflow:hidden;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-tab-link:focus{outline:none}.mat-tab-link:focus:not(.mat-tab-disabled){opacity:1}.cdk-high-contrast-active .mat-tab-link:focus{outline:dotted 2px;outline-offset:-2px}.mat-tab-link.mat-tab-disabled{cursor:default}.cdk-high-contrast-active .mat-tab-link.mat-tab-disabled{opacity:.5}.mat-tab-link .mat-tab-label-content{display:inline-flex;justify-content:center;align-items:center;white-space:nowrap}.cdk-high-contrast-active .mat-tab-link{opacity:1}[mat-stretch-tabs] .mat-tab-link{flex-basis:0;flex-grow:1}.mat-tab-link.mat-tab-disabled{pointer-events:none}@media(max-width: 599px){.mat-tab-link{min-width:72px}}"], directives: [{ type: i4.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { type: i5.CdkObserveContent, selector: "[cdkObserveContent]", inputs: ["cdkObserveContentDisabled", "debounce"], outputs: ["cdkObserveContent"], exportAs: ["cdkObserveContent"] }, { type: MatInkBar, selector: "mat-ink-bar" }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None });
1728
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.9", ngImport: i0, type: MatTabNav, decorators: [{
1685
1729
  type: Component,
1686
1730
  args: [{ selector: '[mat-tab-nav-bar]', exportAs: 'matTabNavBar, matTabNav', inputs: ['color'], host: {
1687
1731
  '[attr.role]': '_getRole()',
@@ -1691,7 +1735,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImpor
1691
1735
  '[class.mat-primary]': 'color !== "warn" && color !== "accent"',
1692
1736
  '[class.mat-accent]': 'color === "accent"',
1693
1737
  '[class.mat-warn]': 'color === "warn"',
1694
- }, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.Default, template: "<button class=\"mat-tab-header-pagination mat-tab-header-pagination-before mat-elevation-z4\"\n #previousPaginator\n aria-hidden=\"true\"\n type=\"button\"\n mat-ripple\n tabindex=\"-1\"\n [matRippleDisabled]=\"_disableScrollBefore || disableRipple\"\n [class.mat-tab-header-pagination-disabled]=\"_disableScrollBefore\"\n [disabled]=\"_disableScrollBefore || null\"\n (click)=\"_handlePaginatorClick('before')\"\n (mousedown)=\"_handlePaginatorPress('before', $event)\"\n (touchend)=\"_stopInterval()\">\n <div class=\"mat-tab-header-pagination-chevron\"></div>\n</button>\n\n<div class=\"mat-tab-link-container\" #tabListContainer (keydown)=\"_handleKeydown($event)\">\n <div\n class=\"mat-tab-list\"\n [class._mat-animation-noopable]=\"_animationMode === 'NoopAnimations'\"\n #tabList\n (cdkObserveContent)=\"_onContentChanges()\">\n <div class=\"mat-tab-links\" #tabListInner>\n <ng-content></ng-content>\n </div>\n <mat-ink-bar></mat-ink-bar>\n </div>\n</div>\n\n<button class=\"mat-tab-header-pagination mat-tab-header-pagination-after mat-elevation-z4\"\n #nextPaginator\n aria-hidden=\"true\"\n type=\"button\"\n mat-ripple\n [matRippleDisabled]=\"_disableScrollAfter || disableRipple\"\n [class.mat-tab-header-pagination-disabled]=\"_disableScrollAfter\"\n [disabled]=\"_disableScrollAfter || null\"\n tabindex=\"-1\"\n (mousedown)=\"_handlePaginatorPress('after', $event)\"\n (click)=\"_handlePaginatorClick('after')\"\n (touchend)=\"_stopInterval()\">\n <div class=\"mat-tab-header-pagination-chevron\"></div>\n</button>\n", styles: [".mat-tab-header{display:flex;overflow:hidden;position:relative;flex-shrink:0}.mat-tab-header-pagination{-webkit-user-select:none;-moz-user-select:none;user-select:none;position:relative;display:none;justify-content:center;align-items:center;min-width:32px;cursor:pointer;z-index:2;-webkit-tap-highlight-color:transparent;touch-action:none;box-sizing:content-box;background:none;border:none;outline:0;padding:0}.mat-tab-header-pagination::-moz-focus-inner{border:0}.mat-tab-header-pagination-controls-enabled .mat-tab-header-pagination{display:flex}.mat-tab-header-pagination-before,.mat-tab-header-rtl .mat-tab-header-pagination-after{padding-left:4px}.mat-tab-header-pagination-before .mat-tab-header-pagination-chevron,.mat-tab-header-rtl .mat-tab-header-pagination-after .mat-tab-header-pagination-chevron{transform:rotate(-135deg)}.mat-tab-header-rtl .mat-tab-header-pagination-before,.mat-tab-header-pagination-after{padding-right:4px}.mat-tab-header-rtl .mat-tab-header-pagination-before .mat-tab-header-pagination-chevron,.mat-tab-header-pagination-after .mat-tab-header-pagination-chevron{transform:rotate(45deg)}.mat-tab-header-pagination-chevron{border-style:solid;border-width:2px 2px 0 0;height:8px;width:8px}.mat-tab-header-pagination-disabled{box-shadow:none;cursor:default}.mat-tab-list{flex-grow:1;position:relative;transition:transform 500ms cubic-bezier(0.35, 0, 0.25, 1)}.mat-tab-links{display:flex}[mat-align-tabs=center]>.mat-tab-link-container .mat-tab-links{justify-content:center}[mat-align-tabs=end]>.mat-tab-link-container .mat-tab-links{justify-content:flex-end}.mat-ink-bar{position:absolute;bottom:0;height:2px;transition:500ms cubic-bezier(0.35, 0, 0.25, 1)}._mat-animation-noopable.mat-ink-bar{transition:none;animation:none}.mat-tab-group-inverted-header .mat-ink-bar{bottom:auto;top:0}.cdk-high-contrast-active .mat-ink-bar{outline:solid 2px;height:0}.mat-tab-link-container{display:flex;flex-grow:1;overflow:hidden;z-index:1}.mat-tab-link{height:48px;padding:0 24px;cursor:pointer;box-sizing:border-box;opacity:.6;min-width:160px;text-align:center;display:inline-flex;justify-content:center;align-items:center;white-space:nowrap;vertical-align:top;text-decoration:none;position:relative;overflow:hidden;-webkit-tap-highlight-color:transparent}.mat-tab-link:focus{outline:none}.mat-tab-link:focus:not(.mat-tab-disabled){opacity:1}.cdk-high-contrast-active .mat-tab-link:focus{outline:dotted 2px;outline-offset:-2px}.mat-tab-link.mat-tab-disabled{cursor:default}.cdk-high-contrast-active .mat-tab-link.mat-tab-disabled{opacity:.5}.mat-tab-link .mat-tab-label-content{display:inline-flex;justify-content:center;align-items:center;white-space:nowrap}.cdk-high-contrast-active .mat-tab-link{opacity:1}[mat-stretch-tabs] .mat-tab-link{flex-basis:0;flex-grow:1}.mat-tab-link.mat-tab-disabled{pointer-events:none}@media(max-width: 599px){.mat-tab-link{min-width:72px}}\n"] }]
1738
+ }, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.Default, template: "<button class=\"mat-tab-header-pagination mat-tab-header-pagination-before mat-elevation-z4\"\n #previousPaginator\n aria-hidden=\"true\"\n type=\"button\"\n mat-ripple\n tabindex=\"-1\"\n [matRippleDisabled]=\"_disableScrollBefore || disableRipple\"\n [class.mat-tab-header-pagination-disabled]=\"_disableScrollBefore\"\n [disabled]=\"_disableScrollBefore || null\"\n (click)=\"_handlePaginatorClick('before')\"\n (mousedown)=\"_handlePaginatorPress('before', $event)\"\n (touchend)=\"_stopInterval()\">\n <div class=\"mat-tab-header-pagination-chevron\"></div>\n</button>\n\n<div class=\"mat-tab-link-container\" #tabListContainer (keydown)=\"_handleKeydown($event)\">\n <div\n class=\"mat-tab-list\"\n [class._mat-animation-noopable]=\"_animationMode === 'NoopAnimations'\"\n #tabList\n (cdkObserveContent)=\"_onContentChanges()\">\n <div class=\"mat-tab-links\" #tabListInner>\n <ng-content></ng-content>\n </div>\n <mat-ink-bar></mat-ink-bar>\n </div>\n</div>\n\n<button class=\"mat-tab-header-pagination mat-tab-header-pagination-after mat-elevation-z4\"\n #nextPaginator\n aria-hidden=\"true\"\n type=\"button\"\n mat-ripple\n [matRippleDisabled]=\"_disableScrollAfter || disableRipple\"\n [class.mat-tab-header-pagination-disabled]=\"_disableScrollAfter\"\n [disabled]=\"_disableScrollAfter || null\"\n tabindex=\"-1\"\n (mousedown)=\"_handlePaginatorPress('after', $event)\"\n (click)=\"_handlePaginatorClick('after')\"\n (touchend)=\"_stopInterval()\">\n <div class=\"mat-tab-header-pagination-chevron\"></div>\n</button>\n", styles: [".mat-tab-header{display:flex;overflow:hidden;position:relative;flex-shrink:0}.mat-tab-header-pagination{-webkit-user-select:none;user-select:none;position:relative;display:none;justify-content:center;align-items:center;min-width:32px;cursor:pointer;z-index:2;-webkit-tap-highlight-color:rgba(0,0,0,0);touch-action:none;box-sizing:content-box;background:none;border:none;outline:0;padding:0}.mat-tab-header-pagination::-moz-focus-inner{border:0}.mat-tab-header-pagination-controls-enabled .mat-tab-header-pagination{display:flex}.mat-tab-header-pagination-before,.mat-tab-header-rtl .mat-tab-header-pagination-after{padding-left:4px}.mat-tab-header-pagination-before .mat-tab-header-pagination-chevron,.mat-tab-header-rtl .mat-tab-header-pagination-after .mat-tab-header-pagination-chevron{transform:rotate(-135deg)}.mat-tab-header-rtl .mat-tab-header-pagination-before,.mat-tab-header-pagination-after{padding-right:4px}.mat-tab-header-rtl .mat-tab-header-pagination-before .mat-tab-header-pagination-chevron,.mat-tab-header-pagination-after .mat-tab-header-pagination-chevron{transform:rotate(45deg)}.mat-tab-header-pagination-chevron{border-style:solid;border-width:2px 2px 0 0;height:8px;width:8px}.mat-tab-header-pagination-disabled{box-shadow:none;cursor:default}.mat-tab-list{flex-grow:1;position:relative;transition:transform 500ms cubic-bezier(0.35, 0, 0.25, 1)}.mat-tab-links{display:flex}[mat-align-tabs=center]>.mat-tab-link-container .mat-tab-links{justify-content:center}[mat-align-tabs=end]>.mat-tab-link-container .mat-tab-links{justify-content:flex-end}.mat-ink-bar{position:absolute;bottom:0;height:2px;transition:500ms cubic-bezier(0.35, 0, 0.25, 1)}._mat-animation-noopable.mat-ink-bar{transition:none;animation:none}.mat-tab-group-inverted-header .mat-ink-bar{bottom:auto;top:0}.cdk-high-contrast-active .mat-ink-bar{outline:solid 2px;height:0}.mat-tab-link-container{display:flex;flex-grow:1;overflow:hidden;z-index:1}.mat-tab-link{height:48px;padding:0 24px;cursor:pointer;box-sizing:border-box;opacity:.6;min-width:160px;text-align:center;display:inline-flex;justify-content:center;align-items:center;white-space:nowrap;vertical-align:top;text-decoration:none;position:relative;overflow:hidden;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-tab-link:focus{outline:none}.mat-tab-link:focus:not(.mat-tab-disabled){opacity:1}.cdk-high-contrast-active .mat-tab-link:focus{outline:dotted 2px;outline-offset:-2px}.mat-tab-link.mat-tab-disabled{cursor:default}.cdk-high-contrast-active .mat-tab-link.mat-tab-disabled{opacity:.5}.mat-tab-link .mat-tab-label-content{display:inline-flex;justify-content:center;align-items:center;white-space:nowrap}.cdk-high-contrast-active .mat-tab-link{opacity:1}[mat-stretch-tabs] .mat-tab-link{flex-basis:0;flex-grow:1}.mat-tab-link.mat-tab-disabled{pointer-events:none}@media(max-width: 599px){.mat-tab-link{min-width:72px}}"] }]
1695
1739
  }], ctorParameters: function () {
1696
1740
  return [{ type: i0.ElementRef }, { type: i1.Directionality, decorators: [{
1697
1741
  type: Optional
@@ -1807,16 +1851,16 @@ class _MatTabLinkBase extends _MatTabLinkMixinBase {
1807
1851
  }
1808
1852
  _getTabIndex() {
1809
1853
  if (this._tabNavBar.tabPanel) {
1810
- return this._isActive ? 0 : -1;
1854
+ return this._isActive && !this.disabled ? 0 : -1;
1811
1855
  }
1812
1856
  else {
1813
1857
  return this.tabIndex;
1814
1858
  }
1815
1859
  }
1816
1860
  }
1817
- _MatTabLinkBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: _MatTabLinkBase, deps: [{ token: _MatTabNavBase }, { token: i0.ElementRef }, { token: MAT_RIPPLE_GLOBAL_OPTIONS, optional: true }, { token: 'tabindex', attribute: true }, { token: i7.FocusMonitor }, { token: ANIMATION_MODULE_TYPE, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
1818
- _MatTabLinkBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.0", type: _MatTabLinkBase, inputs: { active: "active", id: "id" }, usesInheritance: true, ngImport: i0 });
1819
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: _MatTabLinkBase, decorators: [{
1861
+ _MatTabLinkBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0-next.9", ngImport: i0, type: _MatTabLinkBase, deps: [{ token: _MatTabNavBase }, { token: i0.ElementRef }, { token: MAT_RIPPLE_GLOBAL_OPTIONS, optional: true }, { token: 'tabindex', attribute: true }, { token: i7.FocusMonitor }, { token: ANIMATION_MODULE_TYPE, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
1862
+ _MatTabLinkBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "14.0.0-next.9", type: _MatTabLinkBase, inputs: { active: "active", id: "id" }, usesInheritance: true, ngImport: i0 });
1863
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.9", ngImport: i0, type: _MatTabLinkBase, decorators: [{
1820
1864
  type: Directive
1821
1865
  }], ctorParameters: function () {
1822
1866
  return [{ type: _MatTabNavBase }, { type: i0.ElementRef }, { type: undefined, decorators: [{
@@ -1852,9 +1896,9 @@ class MatTabLink extends _MatTabLinkBase {
1852
1896
  this._tabLinkRipple._removeTriggerEvents();
1853
1897
  }
1854
1898
  }
1855
- MatTabLink.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: MatTabLink, deps: [{ token: MatTabNav }, { token: i0.ElementRef }, { token: i0.NgZone }, { token: i3.Platform }, { token: MAT_RIPPLE_GLOBAL_OPTIONS, optional: true }, { token: 'tabindex', attribute: true }, { token: i7.FocusMonitor }, { token: ANIMATION_MODULE_TYPE, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
1856
- MatTabLink.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.0", type: MatTabLink, selector: "[mat-tab-link], [matTabLink]", inputs: { disabled: "disabled", disableRipple: "disableRipple", tabIndex: "tabIndex" }, host: { listeners: { "focus": "_handleFocus()", "keydown": "_handleKeydown($event)" }, properties: { "attr.aria-controls": "_getAriaControls()", "attr.aria-current": "_getAriaCurrent()", "attr.aria-disabled": "disabled", "attr.aria-selected": "_getAriaSelected()", "attr.id": "id", "attr.tabIndex": "_getTabIndex()", "attr.role": "_getRole()", "class.mat-tab-disabled": "disabled", "class.mat-tab-label-active": "active" }, classAttribute: "mat-tab-link mat-focus-indicator" }, exportAs: ["matTabLink"], usesInheritance: true, ngImport: i0 });
1857
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: MatTabLink, decorators: [{
1899
+ MatTabLink.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0-next.9", ngImport: i0, type: MatTabLink, deps: [{ token: MatTabNav }, { token: i0.ElementRef }, { token: i0.NgZone }, { token: i3.Platform }, { token: MAT_RIPPLE_GLOBAL_OPTIONS, optional: true }, { token: 'tabindex', attribute: true }, { token: i7.FocusMonitor }, { token: ANIMATION_MODULE_TYPE, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
1900
+ MatTabLink.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "14.0.0-next.9", type: MatTabLink, selector: "[mat-tab-link], [matTabLink]", inputs: { disabled: "disabled", disableRipple: "disableRipple", tabIndex: "tabIndex" }, host: { listeners: { "focus": "_handleFocus()", "keydown": "_handleKeydown($event)" }, properties: { "attr.aria-controls": "_getAriaControls()", "attr.aria-current": "_getAriaCurrent()", "attr.aria-disabled": "disabled", "attr.aria-selected": "_getAriaSelected()", "attr.id": "id", "attr.tabIndex": "_getTabIndex()", "attr.role": "_getRole()", "class.mat-tab-disabled": "disabled", "class.mat-tab-label-active": "active" }, classAttribute: "mat-tab-link mat-focus-indicator" }, exportAs: ["matTabLink"], usesInheritance: true, ngImport: i0 });
1901
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.9", ngImport: i0, type: MatTabLink, decorators: [{
1858
1902
  type: Directive,
1859
1903
  args: [{
1860
1904
  selector: '[mat-tab-link], [matTabLink]',
@@ -1900,9 +1944,9 @@ class MatTabNavPanel {
1900
1944
  this.id = `mat-tab-nav-panel-${nextUniqueId++}`;
1901
1945
  }
1902
1946
  }
1903
- MatTabNavPanel.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: MatTabNavPanel, deps: [], target: i0.ɵɵFactoryTarget.Component });
1904
- MatTabNavPanel.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.0", type: MatTabNavPanel, selector: "mat-tab-nav-panel", inputs: { id: "id" }, host: { attributes: { "role": "tabpanel" }, properties: { "attr.aria-labelledby": "_activeTabId", "attr.id": "id" }, classAttribute: "mat-tab-nav-panel" }, exportAs: ["matTabNavPanel"], ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
1905
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: MatTabNavPanel, decorators: [{
1947
+ MatTabNavPanel.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0-next.9", ngImport: i0, type: MatTabNavPanel, deps: [], target: i0.ɵɵFactoryTarget.Component });
1948
+ MatTabNavPanel.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "14.0.0-next.9", type: MatTabNavPanel, selector: "mat-tab-nav-panel", inputs: { id: "id" }, host: { attributes: { "role": "tabpanel" }, properties: { "attr.aria-labelledby": "_activeTabId", "attr.id": "id" }, classAttribute: "mat-tab-nav-panel" }, exportAs: ["matTabNavPanel"], ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
1949
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.9", ngImport: i0, type: MatTabNavPanel, decorators: [{
1906
1950
  type: Component,
1907
1951
  args: [{
1908
1952
  selector: 'mat-tab-nav-panel',
@@ -1930,8 +1974,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImpor
1930
1974
  */
1931
1975
  class MatTabsModule {
1932
1976
  }
1933
- MatTabsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: MatTabsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1934
- MatTabsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: MatTabsModule, declarations: [MatTabGroup,
1977
+ MatTabsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0-next.9", ngImport: i0, type: MatTabsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1978
+ MatTabsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "14.0.0-next.9", ngImport: i0, type: MatTabsModule, declarations: [MatTabGroup,
1935
1979
  MatTabLabel,
1936
1980
  MatTab,
1937
1981
  MatInkBar,
@@ -1955,7 +1999,7 @@ MatTabsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version:
1955
1999
  MatTabNavPanel,
1956
2000
  MatTabLink,
1957
2001
  MatTabContent] });
1958
- MatTabsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: MatTabsModule, imports: [[
2002
+ MatTabsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.0-next.9", ngImport: i0, type: MatTabsModule, imports: [[
1959
2003
  CommonModule,
1960
2004
  MatCommonModule,
1961
2005
  PortalModule,
@@ -1963,7 +2007,7 @@ MatTabsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version:
1963
2007
  ObserversModule,
1964
2008
  A11yModule,
1965
2009
  ], MatCommonModule] });
1966
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: MatTabsModule, decorators: [{
2010
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.9", ngImport: i0, type: MatTabsModule, decorators: [{
1967
2011
  type: NgModule,
1968
2012
  args: [{
1969
2013
  imports: [