@angular/material 12.0.6 → 12.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (333) hide show
  1. package/autocomplete/autocomplete.d.ts +4 -4
  2. package/autocomplete/index.metadata.json +1 -1
  3. package/badge/_badge-theme.scss +7 -6
  4. package/badge/badge.d.ts +5 -5
  5. package/badge/index.metadata.json +1 -1
  6. package/bundles/material-autocomplete-testing.umd.js +14 -11
  7. package/bundles/material-autocomplete-testing.umd.js.map +1 -1
  8. package/bundles/material-autocomplete.umd.js +18 -16
  9. package/bundles/material-autocomplete.umd.js.map +1 -1
  10. package/bundles/material-badge-testing.umd.js +14 -11
  11. package/bundles/material-badge-testing.umd.js.map +1 -1
  12. package/bundles/material-badge.umd.js +19 -17
  13. package/bundles/material-badge.umd.js.map +1 -1
  14. package/bundles/material-bottom-sheet-testing.umd.js +14 -11
  15. package/bundles/material-bottom-sheet-testing.umd.js.map +1 -1
  16. package/bundles/material-bottom-sheet.umd.js +14 -11
  17. package/bundles/material-bottom-sheet.umd.js.map +1 -1
  18. package/bundles/material-button-testing.umd.js +14 -11
  19. package/bundles/material-button-testing.umd.js.map +1 -1
  20. package/bundles/material-button-toggle-testing.umd.js +14 -11
  21. package/bundles/material-button-toggle-testing.umd.js.map +1 -1
  22. package/bundles/material-button-toggle.umd.js +19 -17
  23. package/bundles/material-button-toggle.umd.js.map +1 -1
  24. package/bundles/material-button.umd.js +19 -18
  25. package/bundles/material-button.umd.js.map +1 -1
  26. package/bundles/material-card-testing.umd.js +14 -11
  27. package/bundles/material-card-testing.umd.js.map +1 -1
  28. package/bundles/material-checkbox-testing.umd.js +14 -11
  29. package/bundles/material-checkbox-testing.umd.js.map +1 -1
  30. package/bundles/material-checkbox.umd.js +19 -17
  31. package/bundles/material-checkbox.umd.js.map +1 -1
  32. package/bundles/material-chips-testing.umd.js +14 -11
  33. package/bundles/material-chips-testing.umd.js.map +1 -1
  34. package/bundles/material-chips.umd.js +19 -17
  35. package/bundles/material-chips.umd.js.map +1 -1
  36. package/bundles/material-core-testing.umd.js +14 -11
  37. package/bundles/material-core-testing.umd.js.map +1 -1
  38. package/bundles/material-core.umd.js +20 -18
  39. package/bundles/material-core.umd.js.map +1 -1
  40. package/bundles/material-datepicker-testing.umd.js +14 -11
  41. package/bundles/material-datepicker-testing.umd.js.map +1 -1
  42. package/bundles/material-datepicker.umd.js +21 -21
  43. package/bundles/material-datepicker.umd.js.map +1 -1
  44. package/bundles/material-dialog-testing.umd.js +14 -11
  45. package/bundles/material-dialog-testing.umd.js.map +1 -1
  46. package/bundles/material-dialog.umd.js +23 -12
  47. package/bundles/material-dialog.umd.js.map +1 -1
  48. package/bundles/material-divider-testing.umd.js +14 -11
  49. package/bundles/material-divider-testing.umd.js.map +1 -1
  50. package/bundles/material-expansion-testing.umd.js +14 -11
  51. package/bundles/material-expansion-testing.umd.js.map +1 -1
  52. package/bundles/material-expansion.umd.js +42 -33
  53. package/bundles/material-expansion.umd.js.map +1 -1
  54. package/bundles/material-form-field-testing-control.umd.js +14 -11
  55. package/bundles/material-form-field-testing-control.umd.js.map +1 -1
  56. package/bundles/material-form-field-testing.umd.js +14 -11
  57. package/bundles/material-form-field-testing.umd.js.map +1 -1
  58. package/bundles/material-form-field.umd.js +20 -22
  59. package/bundles/material-form-field.umd.js.map +1 -1
  60. package/bundles/material-grid-list-testing.umd.js +14 -11
  61. package/bundles/material-grid-list-testing.umd.js.map +1 -1
  62. package/bundles/material-grid-list.umd.js +16 -15
  63. package/bundles/material-grid-list.umd.js.map +1 -1
  64. package/bundles/material-icon-testing.umd.js +14 -11
  65. package/bundles/material-icon-testing.umd.js.map +1 -1
  66. package/bundles/material-icon.umd.js +19 -17
  67. package/bundles/material-icon.umd.js.map +1 -1
  68. package/bundles/material-input-testing.umd.js +14 -11
  69. package/bundles/material-input-testing.umd.js.map +1 -1
  70. package/bundles/material-input.umd.js +20 -17
  71. package/bundles/material-input.umd.js.map +1 -1
  72. package/bundles/material-list-testing.umd.js +14 -11
  73. package/bundles/material-list-testing.umd.js.map +1 -1
  74. package/bundles/material-list.umd.js +34 -35
  75. package/bundles/material-list.umd.js.map +1 -1
  76. package/bundles/material-menu-testing.umd.js +14 -11
  77. package/bundles/material-menu-testing.umd.js.map +1 -1
  78. package/bundles/material-menu.umd.js +29 -26
  79. package/bundles/material-menu.umd.js.map +1 -1
  80. package/bundles/material-paginator-testing.umd.js +14 -11
  81. package/bundles/material-paginator-testing.umd.js.map +1 -1
  82. package/bundles/material-paginator.umd.js +19 -17
  83. package/bundles/material-paginator.umd.js.map +1 -1
  84. package/bundles/material-progress-bar-testing.umd.js +14 -11
  85. package/bundles/material-progress-bar-testing.umd.js.map +1 -1
  86. package/bundles/material-progress-bar.umd.js +19 -17
  87. package/bundles/material-progress-bar.umd.js.map +1 -1
  88. package/bundles/material-progress-spinner-testing.umd.js +14 -11
  89. package/bundles/material-progress-spinner-testing.umd.js.map +1 -1
  90. package/bundles/material-progress-spinner.umd.js +19 -17
  91. package/bundles/material-progress-spinner.umd.js.map +1 -1
  92. package/bundles/material-radio-testing.umd.js +14 -11
  93. package/bundles/material-radio-testing.umd.js.map +1 -1
  94. package/bundles/material-radio.umd.js +16 -13
  95. package/bundles/material-radio.umd.js.map +1 -1
  96. package/bundles/material-select-testing.umd.js +14 -11
  97. package/bundles/material-select-testing.umd.js.map +1 -1
  98. package/bundles/material-select.umd.js +18 -16
  99. package/bundles/material-select.umd.js.map +1 -1
  100. package/bundles/material-sidenav-testing.umd.js +14 -11
  101. package/bundles/material-sidenav-testing.umd.js.map +1 -1
  102. package/bundles/material-sidenav.umd.js +14 -11
  103. package/bundles/material-sidenav.umd.js.map +1 -1
  104. package/bundles/material-slide-toggle-testing.umd.js +14 -11
  105. package/bundles/material-slide-toggle-testing.umd.js.map +1 -1
  106. package/bundles/material-slide-toggle.umd.js +19 -17
  107. package/bundles/material-slide-toggle.umd.js.map +1 -1
  108. package/bundles/material-slider-testing.umd.js +14 -11
  109. package/bundles/material-slider-testing.umd.js.map +1 -1
  110. package/bundles/material-slider.umd.js +108 -57
  111. package/bundles/material-slider.umd.js.map +1 -1
  112. package/bundles/material-snack-bar-testing.umd.js +14 -11
  113. package/bundles/material-snack-bar-testing.umd.js.map +1 -1
  114. package/bundles/material-snack-bar.umd.js +14 -11
  115. package/bundles/material-snack-bar.umd.js.map +1 -1
  116. package/bundles/material-sort-testing.umd.js +14 -11
  117. package/bundles/material-sort-testing.umd.js.map +1 -1
  118. package/bundles/material-sort.umd.js +24 -23
  119. package/bundles/material-sort.umd.js.map +1 -1
  120. package/bundles/material-stepper-testing.umd.js +14 -11
  121. package/bundles/material-stepper-testing.umd.js.map +1 -1
  122. package/bundles/material-stepper.umd.js +17 -15
  123. package/bundles/material-stepper.umd.js.map +1 -1
  124. package/bundles/material-table-testing.umd.js +14 -11
  125. package/bundles/material-table-testing.umd.js.map +1 -1
  126. package/bundles/material-table.umd.js +14 -11
  127. package/bundles/material-table.umd.js.map +1 -1
  128. package/bundles/material-tabs-testing.umd.js +14 -11
  129. package/bundles/material-tabs-testing.umd.js.map +1 -1
  130. package/bundles/material-tabs.umd.js +53 -36
  131. package/bundles/material-tabs.umd.js.map +1 -1
  132. package/bundles/material-toolbar-testing.umd.js +14 -11
  133. package/bundles/material-toolbar-testing.umd.js.map +1 -1
  134. package/bundles/material-toolbar.umd.js +19 -17
  135. package/bundles/material-toolbar.umd.js.map +1 -1
  136. package/bundles/material-tooltip-testing.umd.js +14 -11
  137. package/bundles/material-tooltip-testing.umd.js.map +1 -1
  138. package/bundles/material-tooltip.umd.js +14 -11
  139. package/bundles/material-tooltip.umd.js.map +1 -1
  140. package/bundles/material-tree-testing.umd.js +14 -11
  141. package/bundles/material-tree-testing.umd.js.map +1 -1
  142. package/bundles/material-tree.umd.js +16 -13
  143. package/bundles/material-tree.umd.js.map +1 -1
  144. package/button/button.d.ts +7 -8
  145. package/button/index.metadata.json +1 -1
  146. package/button-toggle/button-toggle.d.ts +5 -5
  147. package/button-toggle/index.metadata.json +1 -1
  148. package/checkbox/checkbox.d.ts +7 -7
  149. package/checkbox/index.metadata.json +1 -1
  150. package/chips/chip-list.d.ts +11 -13
  151. package/chips/chip.d.ts +2 -2
  152. package/chips/index.metadata.json +1 -1
  153. package/core/common-behaviors/color.d.ts +5 -1
  154. package/core/common-behaviors/disable-ripple.d.ts +5 -1
  155. package/core/common-behaviors/disabled.d.ts +5 -1
  156. package/core/common-behaviors/error-state.d.ts +5 -1
  157. package/core/common-behaviors/initialized.d.ts +5 -1
  158. package/core/common-behaviors/tabindex.d.ts +5 -1
  159. package/core/focus-indicators/_focus-indicators-theme.scss +9 -35
  160. package/core/index.metadata.json +1 -1
  161. package/core/option/optgroup.d.ts +4 -4
  162. package/core/style/_menu-common.scss +2 -1
  163. package/core/style/_private.scss +27 -0
  164. package/core/style/_vendor-prefixes.scss +10 -0
  165. package/core/typography/_typography-utils.scss +4 -2
  166. package/datepicker/date-range-input-parts.d.ts +2 -2
  167. package/datepicker/datepicker-base.d.ts +7 -7
  168. package/datepicker/index.metadata.json +1 -1
  169. package/dialog/dialog-content-directives.d.ts +13 -1
  170. package/dialog/dialog-ref.d.ts +4 -1
  171. package/dialog/index.metadata.json +1 -1
  172. package/esm2015/autocomplete/autocomplete.js +3 -4
  173. package/esm2015/badge/badge.js +4 -5
  174. package/esm2015/button/button.js +4 -6
  175. package/esm2015/button-toggle/button-toggle.js +4 -5
  176. package/esm2015/checkbox/checkbox.js +4 -5
  177. package/esm2015/chips/chip-list.js +4 -5
  178. package/esm2015/chips/chip.js +1 -1
  179. package/esm2015/core/common-behaviors/color.js +1 -1
  180. package/esm2015/core/common-behaviors/common-module.js +1 -1
  181. package/esm2015/core/common-behaviors/disable-ripple.js +1 -1
  182. package/esm2015/core/common-behaviors/disabled.js +1 -1
  183. package/esm2015/core/common-behaviors/error-state.js +1 -1
  184. package/esm2015/core/common-behaviors/initialized.js +1 -1
  185. package/esm2015/core/common-behaviors/tabindex.js +1 -1
  186. package/esm2015/core/option/optgroup.js +3 -4
  187. package/esm2015/core/version.js +1 -1
  188. package/esm2015/datepicker/date-range-input-parts.js +2 -4
  189. package/esm2015/datepicker/date-range-input.js +1 -1
  190. package/esm2015/datepicker/datepicker-base.js +4 -5
  191. package/esm2015/dialog/dialog-content-directives.js +7 -1
  192. package/esm2015/dialog/dialog-ref.js +4 -2
  193. package/esm2015/expansion/expansion-panel-header.js +16 -6
  194. package/esm2015/form-field/form-field.js +5 -10
  195. package/esm2015/icon/icon.js +4 -5
  196. package/esm2015/input/input.js +5 -5
  197. package/esm2015/list/list.js +7 -9
  198. package/esm2015/list/selection-list.js +7 -9
  199. package/esm2015/menu/menu-item.js +4 -5
  200. package/esm2015/menu/menu.js +8 -9
  201. package/esm2015/paginator/paginator.js +4 -5
  202. package/esm2015/progress-bar/progress-bar.js +4 -5
  203. package/esm2015/progress-spinner/progress-spinner.js +4 -5
  204. package/esm2015/radio/radio.js +3 -3
  205. package/esm2015/select/select.js +3 -4
  206. package/esm2015/slide-toggle/slide-toggle.js +4 -5
  207. package/esm2015/slider/slider.js +93 -45
  208. package/esm2015/sort/sort-header.js +4 -5
  209. package/esm2015/sort/sort.js +4 -5
  210. package/esm2015/stepper/public-api.js +1 -1
  211. package/esm2015/stepper/step-header.js +4 -5
  212. package/esm2015/tabs/tab-config.js +1 -1
  213. package/esm2015/tabs/tab-group.js +18 -6
  214. package/esm2015/tabs/tab-label-wrapper.js +4 -5
  215. package/esm2015/tabs/tab-nav-bar/tab-nav-bar.js +3 -4
  216. package/esm2015/tabs/tab.js +4 -5
  217. package/esm2015/toolbar/toolbar.js +4 -5
  218. package/esm2015/tree/node.js +3 -3
  219. package/expansion/expansion-panel-header.d.ts +11 -2
  220. package/expansion/index.metadata.json +1 -1
  221. package/fesm2015/autocomplete.js +2 -3
  222. package/fesm2015/autocomplete.js.map +1 -1
  223. package/fesm2015/badge.js +3 -4
  224. package/fesm2015/badge.js.map +1 -1
  225. package/fesm2015/button-toggle.js +3 -4
  226. package/fesm2015/button-toggle.js.map +1 -1
  227. package/fesm2015/button.js +3 -5
  228. package/fesm2015/button.js.map +1 -1
  229. package/fesm2015/checkbox.js +3 -4
  230. package/fesm2015/checkbox.js.map +1 -1
  231. package/fesm2015/chips.js +3 -4
  232. package/fesm2015/chips.js.map +1 -1
  233. package/fesm2015/core.js +4 -5
  234. package/fesm2015/core.js.map +1 -1
  235. package/fesm2015/datepicker.js +5 -8
  236. package/fesm2015/datepicker.js.map +1 -1
  237. package/fesm2015/dialog.js +9 -1
  238. package/fesm2015/dialog.js.map +1 -1
  239. package/fesm2015/expansion.js +15 -6
  240. package/fesm2015/expansion.js.map +1 -1
  241. package/fesm2015/form-field.js +4 -9
  242. package/fesm2015/form-field.js.map +1 -1
  243. package/fesm2015/icon.js +3 -4
  244. package/fesm2015/icon.js.map +1 -1
  245. package/fesm2015/input.js +4 -4
  246. package/fesm2015/input.js.map +1 -1
  247. package/fesm2015/list.js +12 -16
  248. package/fesm2015/list.js.map +1 -1
  249. package/fesm2015/menu.js +10 -12
  250. package/fesm2015/menu.js.map +1 -1
  251. package/fesm2015/paginator.js +3 -4
  252. package/fesm2015/paginator.js.map +1 -1
  253. package/fesm2015/progress-bar.js +3 -4
  254. package/fesm2015/progress-bar.js.map +1 -1
  255. package/fesm2015/progress-spinner.js +3 -4
  256. package/fesm2015/progress-spinner.js.map +1 -1
  257. package/fesm2015/radio.js +2 -2
  258. package/fesm2015/radio.js.map +1 -1
  259. package/fesm2015/select.js +2 -3
  260. package/fesm2015/select.js.map +1 -1
  261. package/fesm2015/slide-toggle.js +3 -4
  262. package/fesm2015/slide-toggle.js.map +1 -1
  263. package/fesm2015/slider.js +92 -44
  264. package/fesm2015/slider.js.map +1 -1
  265. package/fesm2015/sort.js +6 -8
  266. package/fesm2015/sort.js.map +1 -1
  267. package/fesm2015/stepper.js +3 -4
  268. package/fesm2015/stepper.js.map +1 -1
  269. package/fesm2015/tabs.js +25 -16
  270. package/fesm2015/tabs.js.map +1 -1
  271. package/fesm2015/toolbar.js +3 -4
  272. package/fesm2015/toolbar.js.map +1 -1
  273. package/fesm2015/tree.js +2 -2
  274. package/fesm2015/tree.js.map +1 -1
  275. package/form-field/_form-field-fill-theme.scss +2 -1
  276. package/form-field/_form-field-legacy-theme.scss +5 -4
  277. package/form-field/_form-field-outline-theme.scss +3 -2
  278. package/form-field/_form-field-theme.scss +4 -3
  279. package/form-field/form-field.d.ts +7 -11
  280. package/form-field/index.metadata.json +1 -1
  281. package/icon/icon.d.ts +7 -7
  282. package/icon/index.metadata.json +1 -1
  283. package/input/_input-theme.scss +2 -1
  284. package/input/index.metadata.json +1 -1
  285. package/input/input.d.ts +13 -13
  286. package/list/index.metadata.json +1 -1
  287. package/list/list.d.ts +9 -9
  288. package/list/selection-list.d.ts +9 -9
  289. package/menu/index.metadata.json +1 -1
  290. package/menu/menu-item.d.ts +5 -5
  291. package/menu/menu.d.ts +4 -0
  292. package/package.json +3 -3
  293. package/paginator/index.metadata.json +1 -1
  294. package/paginator/paginator.d.ts +4 -4
  295. package/progress-bar/index.metadata.json +1 -1
  296. package/progress-bar/progress-bar.d.ts +7 -7
  297. package/progress-spinner/index.metadata.json +1 -1
  298. package/progress-spinner/progress-spinner.d.ts +7 -7
  299. package/radio/index.metadata.json +1 -1
  300. package/radio/radio.d.ts +2 -2
  301. package/schematics/ng-add/index.js +1 -1
  302. package/schematics/ng-add/index.mjs +1 -1
  303. package/schematics/ng-update/migrations/theming-api-v12/config.js +4 -1
  304. package/schematics/ng-update/migrations/theming-api-v12/config.mjs +4 -1
  305. package/schematics/ng-update/migrations/theming-api-v12/migration.d.ts +9 -1
  306. package/schematics/ng-update/migrations/theming-api-v12/migration.js +40 -36
  307. package/schematics/ng-update/migrations/theming-api-v12/migration.mjs +40 -36
  308. package/schematics/ng-update/migrations/theming-api-v12/theming-api-migration.js +2 -2
  309. package/schematics/ng-update/migrations/theming-api-v12/theming-api-migration.mjs +2 -2
  310. package/select/index.metadata.json +1 -1
  311. package/select/select.d.ts +10 -10
  312. package/slide-toggle/index.metadata.json +1 -1
  313. package/slide-toggle/slide-toggle.d.ts +7 -7
  314. package/slider/index.metadata.json +1 -1
  315. package/slider/slider.d.ts +17 -9
  316. package/sort/index.metadata.json +1 -1
  317. package/sort/sort-header.d.ts +5 -5
  318. package/sort/sort.d.ts +5 -5
  319. package/stepper/_stepper-theme.scss +4 -3
  320. package/stepper/index.metadata.json +1 -1
  321. package/stepper/public-api.d.ts +1 -1
  322. package/stepper/step-header.d.ts +9 -7
  323. package/tabs/index.metadata.json +1 -1
  324. package/tabs/tab-config.d.ts +2 -0
  325. package/tabs/tab-group.d.ts +16 -6
  326. package/tabs/tab-label-wrapper.d.ts +5 -5
  327. package/tabs/tab-nav-bar/tab-nav-bar.d.ts +4 -4
  328. package/tabs/tab.d.ts +5 -5
  329. package/toolbar/index.metadata.json +1 -1
  330. package/toolbar/toolbar.d.ts +7 -7
  331. package/tooltip/_tooltip-theme.scss +3 -2
  332. package/tree/index.metadata.json +1 -1
  333. package/tree/node.d.ts +3 -3
@@ -386,18 +386,21 @@
386
386
  function __importDefault(mod) {
387
387
  return (mod && mod.__esModule) ? mod : { default: mod };
388
388
  }
389
- function __classPrivateFieldGet(receiver, privateMap) {
390
- if (!privateMap.has(receiver)) {
391
- throw new TypeError("attempted to get private field on non-instance");
392
- }
393
- return privateMap.get(receiver);
389
+ function __classPrivateFieldGet(receiver, state, kind, f) {
390
+ if (kind === "a" && !f)
391
+ throw new TypeError("Private accessor was defined without a getter");
392
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver))
393
+ throw new TypeError("Cannot read private member from an object whose class did not declare it");
394
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
394
395
  }
395
- function __classPrivateFieldSet(receiver, privateMap, value) {
396
- if (!privateMap.has(receiver)) {
397
- throw new TypeError("attempted to set private field on non-instance");
398
- }
399
- privateMap.set(receiver, value);
400
- return value;
396
+ function __classPrivateFieldSet(receiver, state, value, kind, f) {
397
+ if (kind === "m")
398
+ throw new TypeError("Private method is not writable");
399
+ if (kind === "a" && !f)
400
+ throw new TypeError("Private accessor was defined without a setter");
401
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver))
402
+ throw new TypeError("Cannot write private member to an object whose class did not declare it");
403
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
401
404
  }
402
405
 
403
406
  /**
@@ -454,12 +457,11 @@
454
457
 
455
458
  // Boilerplate for applying mixins to MatTab.
456
459
  /** @docs-private */
457
- var MatTabBase = /** @class */ (function () {
458
- function MatTabBase() {
460
+ var _MatTabBase = core$1.mixinDisabled(/** @class */ (function () {
461
+ function class_1() {
459
462
  }
460
- return MatTabBase;
461
- }());
462
- var _MatTabMixinBase = core$1.mixinDisabled(MatTabBase);
463
+ return class_1;
464
+ }()));
463
465
  /**
464
466
  * Used to provide a tab group to a tab without causing a circular dependency.
465
467
  * @docs-private
@@ -535,7 +537,7 @@
535
537
  }
536
538
  };
537
539
  return MatTab;
538
- }(_MatTabMixinBase));
540
+ }(_MatTabBase));
539
541
  MatTab.decorators = [
540
542
  { type: core.Component, args: [{
541
543
  selector: 'mat-tab',
@@ -825,13 +827,12 @@
825
827
  }());
826
828
  // Boilerplate for applying mixins to MatTabGroup.
827
829
  /** @docs-private */
828
- var MatTabGroupMixinBase = /** @class */ (function () {
829
- function MatTabGroupMixinBase(_elementRef) {
830
+ var _MatTabGroupMixinBase = core$1.mixinColor(core$1.mixinDisableRipple(/** @class */ (function () {
831
+ function class_1(_elementRef) {
830
832
  this._elementRef = _elementRef;
831
833
  }
832
- return MatTabGroupMixinBase;
833
- }());
834
- var _MatTabGroupMixinBase = core$1.mixinColor(core$1.mixinDisableRipple(MatTabGroupMixinBase), 'primary');
834
+ return class_1;
835
+ }())), 'primary');
835
836
  /**
836
837
  * Base class with all of the `MatTabGroupBase` functionality.
837
838
  * @docs-private
@@ -839,7 +840,9 @@
839
840
  var _MatTabGroupBase = /** @class */ (function (_super) {
840
841
  __extends(_MatTabGroupBase, _super);
841
842
  function _MatTabGroupBase(elementRef, _changeDetectorRef, defaultConfig, _animationMode) {
842
- var _this = _super.call(this, elementRef) || this;
843
+ var _this = this;
844
+ var _a;
845
+ _this = _super.call(this, elementRef) || this;
843
846
  _this._changeDetectorRef = _changeDetectorRef;
844
847
  _this._animationMode = _animationMode;
845
848
  /** All of the tabs that belong to the group. */
@@ -870,6 +873,7 @@
870
873
  defaultConfig.disablePagination : false;
871
874
  _this.dynamicHeight = defaultConfig && defaultConfig.dynamicHeight != null ?
872
875
  defaultConfig.dynamicHeight : false;
876
+ _this.contentTabIndex = (_a = defaultConfig === null || defaultConfig === void 0 ? void 0 : defaultConfig.contentTabIndex) !== null && _a !== void 0 ? _a : null;
873
877
  return _this;
874
878
  }
875
879
  Object.defineProperty(_MatTabGroupBase.prototype, "dynamicHeight", {
@@ -897,6 +901,20 @@
897
901
  enumerable: false,
898
902
  configurable: true
899
903
  });
904
+ Object.defineProperty(_MatTabGroupBase.prototype, "contentTabIndex", {
905
+ /**
906
+ * `tabindex` to be set on the inner element that wraps the tab content. Can be used for improved
907
+ * accessibility when the tab does not have focusable elements or if it has scrollable content.
908
+ * The `tabindex` will be removed automatically for inactive tabs.
909
+ * Read more at https://www.w3.org/TR/wai-aria-practices/examples/tabs/tabs-2/tabs.html
910
+ */
911
+ get: function () { return this._contentTabIndex; },
912
+ set: function (value) {
913
+ this._contentTabIndex = coercion.coerceNumberProperty(value, null);
914
+ },
915
+ enumerable: false,
916
+ configurable: true
917
+ });
900
918
  Object.defineProperty(_MatTabGroupBase.prototype, "backgroundColor", {
901
919
  /** Background color of the tab group. */
902
920
  get: function () { return this._backgroundColor; },
@@ -1117,6 +1135,7 @@
1117
1135
  selectedIndex: [{ type: core.Input }],
1118
1136
  headerPosition: [{ type: core.Input }],
1119
1137
  animationDuration: [{ type: core.Input }],
1138
+ contentTabIndex: [{ type: core.Input }],
1120
1139
  disablePagination: [{ type: core.Input }],
1121
1140
  backgroundColor: [{ type: core.Input }],
1122
1141
  selectedIndexChange: [{ type: core.Output }],
@@ -1140,7 +1159,7 @@
1140
1159
  { type: core.Component, args: [{
1141
1160
  selector: 'mat-tab-group',
1142
1161
  exportAs: 'matTabGroup',
1143
- 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 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 [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\">\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 [ngIf]=\"!tab.templateLabel\">{{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.aria-labelledby]=\"_getTabLabelId(i)\"\n [class.mat-tab-body-active]=\"selectedIndex == i\"\n [content]=\"tab.content!\"\n [position]=\"tab.position!\"\n [origin]=\"tab.origin\"\n [animationDuration]=\"animationDuration\"\n (_onCentered)=\"_removeTabBodyWrapperHeight()\"\n (_onCentering)=\"_setTabBodyWrapperHeight($event)\">\n </mat-tab-body>\n</div>\n",
1162
+ 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 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 [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\">\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 [ngIf]=\"!tab.templateLabel\">{{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 [content]=\"tab.content!\"\n [position]=\"tab.position!\"\n [origin]=\"tab.origin\"\n [animationDuration]=\"animationDuration\"\n (_onCentered)=\"_removeTabBodyWrapperHeight()\"\n (_onCentering)=\"_setTabBodyWrapperHeight($event)\">\n </mat-tab-body>\n</div>\n",
1144
1163
  encapsulation: core.ViewEncapsulation.None,
1145
1164
  // tslint:disable-next-line:validate-decorators
1146
1165
  changeDetection: core.ChangeDetectionStrategy.Default,
@@ -1154,7 +1173,7 @@
1154
1173
  '[class.mat-tab-group-dynamic-height]': 'dynamicHeight',
1155
1174
  '[class.mat-tab-group-inverted-header]': 'headerPosition === "below"',
1156
1175
  },
1157
- styles: [".mat-tab-group{display:flex;flex-direction:column}.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;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"]
1176
+ styles: [".mat-tab-group{display:flex;flex-direction:column}.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"]
1158
1177
  },] }
1159
1178
  ];
1160
1179
  MatTabGroup.ctorParameters = function () { return [
@@ -1171,12 +1190,11 @@
1171
1190
 
1172
1191
  // Boilerplate for applying mixins to MatTabLabelWrapper.
1173
1192
  /** @docs-private */
1174
- var MatTabLabelWrapperBase = /** @class */ (function () {
1175
- function MatTabLabelWrapperBase() {
1193
+ var _MatTabLabelWrapperBase = core$1.mixinDisabled(/** @class */ (function () {
1194
+ function class_1() {
1176
1195
  }
1177
- return MatTabLabelWrapperBase;
1178
- }());
1179
- var _MatTabLabelWrapperMixinBase = core$1.mixinDisabled(MatTabLabelWrapperBase);
1196
+ return class_1;
1197
+ }()));
1180
1198
  /**
1181
1199
  * Used in the `mat-tab-group` view to display tab labels.
1182
1200
  * @docs-private
@@ -1199,7 +1217,7 @@
1199
1217
  return this.elementRef.nativeElement.offsetWidth;
1200
1218
  };
1201
1219
  return MatTabLabelWrapper;
1202
- }(_MatTabLabelWrapperMixinBase));
1220
+ }(_MatTabLabelWrapperBase));
1203
1221
  MatTabLabelWrapper.decorators = [
1204
1222
  { type: core.Directive, args: [{
1205
1223
  selector: '[matTabLabelWrapper]',
@@ -1917,12 +1935,11 @@
1917
1935
  _previousPaginator: [{ type: core.ViewChild, args: ['previousPaginator',] }]
1918
1936
  };
1919
1937
  // Boilerplate for applying mixins to MatTabLink.
1920
- var MatTabLinkMixinBase = /** @class */ (function () {
1921
- function MatTabLinkMixinBase() {
1938
+ var _MatTabLinkMixinBase = core$1.mixinTabIndex(core$1.mixinDisableRipple(core$1.mixinDisabled(/** @class */ (function () {
1939
+ function class_1() {
1922
1940
  }
1923
- return MatTabLinkMixinBase;
1924
- }());
1925
- var _MatTabLinkMixinBase = core$1.mixinTabIndex(core$1.mixinDisableRipple(core$1.mixinDisabled(MatTabLinkMixinBase)));
1941
+ return class_1;
1942
+ }()))));
1926
1943
  /** Base class with all of the `MatTabLink` functionality. */
1927
1944
  var _MatTabLinkBase = /** @class */ (function (_super) {
1928
1945
  __extends(_MatTabLinkBase, _super);