@angular/material 7.0.3 → 7.2.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 (447) hide show
  1. package/_theming.scss +57 -49
  2. package/autocomplete/typings/index.d.ts +1 -1
  3. package/autocomplete/typings/index.metadata.json +1 -1
  4. package/badge/typings/index.metadata.json +1 -1
  5. package/bottom-sheet/typings/bottom-sheet-config.d.ts +5 -0
  6. package/bottom-sheet/typings/bottom-sheet-container.d.ts +1 -1
  7. package/bottom-sheet/typings/index.metadata.json +1 -1
  8. package/bundles/material-autocomplete.umd.js +124 -30
  9. package/bundles/material-autocomplete.umd.js.map +1 -1
  10. package/bundles/material-autocomplete.umd.min.js +1 -1
  11. package/bundles/material-autocomplete.umd.min.js.map +1 -1
  12. package/bundles/material-badge.umd.js +38 -5
  13. package/bundles/material-badge.umd.js.map +1 -1
  14. package/bundles/material-badge.umd.min.js +1 -1
  15. package/bundles/material-badge.umd.min.js.map +1 -1
  16. package/bundles/material-bottom-sheet.umd.js +68 -25
  17. package/bundles/material-bottom-sheet.umd.js.map +1 -1
  18. package/bundles/material-bottom-sheet.umd.min.js +1 -1
  19. package/bundles/material-bottom-sheet.umd.min.js.map +1 -1
  20. package/bundles/material-button-toggle.umd.js +40 -15
  21. package/bundles/material-button-toggle.umd.js.map +1 -1
  22. package/bundles/material-button-toggle.umd.min.js +1 -1
  23. package/bundles/material-button-toggle.umd.min.js.map +1 -1
  24. package/bundles/material-button.umd.js +19 -12
  25. package/bundles/material-button.umd.js.map +1 -1
  26. package/bundles/material-button.umd.min.js +1 -1
  27. package/bundles/material-button.umd.min.js.map +1 -1
  28. package/bundles/material-card.umd.js +2 -2
  29. package/bundles/material-card.umd.js.map +1 -1
  30. package/bundles/material-card.umd.min.js.map +1 -1
  31. package/bundles/material-checkbox.umd.js +56 -15
  32. package/bundles/material-checkbox.umd.js.map +1 -1
  33. package/bundles/material-checkbox.umd.min.js +1 -1
  34. package/bundles/material-checkbox.umd.min.js.map +1 -1
  35. package/bundles/material-chips.umd.js +124 -34
  36. package/bundles/material-chips.umd.js.map +1 -1
  37. package/bundles/material-chips.umd.min.js +1 -1
  38. package/bundles/material-chips.umd.min.js.map +1 -1
  39. package/bundles/material-core.umd.js +186 -123
  40. package/bundles/material-core.umd.js.map +1 -1
  41. package/bundles/material-core.umd.min.js +2 -1
  42. package/bundles/material-core.umd.min.js.map +1 -1
  43. package/bundles/material-datepicker.umd.js +241 -59
  44. package/bundles/material-datepicker.umd.js.map +1 -1
  45. package/bundles/material-datepicker.umd.min.js +2 -2
  46. package/bundles/material-datepicker.umd.min.js.map +1 -1
  47. package/bundles/material-dialog.umd.js +136 -44
  48. package/bundles/material-dialog.umd.js.map +1 -1
  49. package/bundles/material-dialog.umd.min.js +1 -1
  50. package/bundles/material-dialog.umd.min.js.map +1 -1
  51. package/bundles/material-divider.umd.js +2 -2
  52. package/bundles/material-divider.umd.js.map +1 -1
  53. package/bundles/material-divider.umd.min.js.map +1 -1
  54. package/bundles/material-expansion.umd.js +32 -22
  55. package/bundles/material-expansion.umd.js.map +1 -1
  56. package/bundles/material-expansion.umd.min.js +1 -1
  57. package/bundles/material-expansion.umd.min.js.map +1 -1
  58. package/bundles/material-form-field.umd.js +120 -32
  59. package/bundles/material-form-field.umd.js.map +1 -1
  60. package/bundles/material-form-field.umd.min.js +1 -1
  61. package/bundles/material-form-field.umd.min.js.map +1 -1
  62. package/bundles/material-grid-list.umd.js +66 -15
  63. package/bundles/material-grid-list.umd.js.map +1 -1
  64. package/bundles/material-grid-list.umd.min.js +1 -1
  65. package/bundles/material-grid-list.umd.min.js.map +1 -1
  66. package/bundles/material-icon.umd.js +280 -79
  67. package/bundles/material-icon.umd.js.map +1 -1
  68. package/bundles/material-icon.umd.min.js +1 -1
  69. package/bundles/material-icon.umd.min.js.map +1 -1
  70. package/bundles/material-input.umd.js +46 -24
  71. package/bundles/material-input.umd.js.map +1 -1
  72. package/bundles/material-input.umd.min.js +1 -1
  73. package/bundles/material-input.umd.min.js.map +1 -1
  74. package/bundles/material-list.umd.js +71 -22
  75. package/bundles/material-list.umd.js.map +1 -1
  76. package/bundles/material-list.umd.min.js +2 -6
  77. package/bundles/material-list.umd.min.js.map +1 -1
  78. package/bundles/material-menu.umd.js +157 -55
  79. package/bundles/material-menu.umd.js.map +1 -1
  80. package/bundles/material-menu.umd.min.js +1 -1
  81. package/bundles/material-menu.umd.min.js.map +1 -1
  82. package/bundles/material-paginator.umd.js +52 -10
  83. package/bundles/material-paginator.umd.js.map +1 -1
  84. package/bundles/material-paginator.umd.min.js +1 -1
  85. package/bundles/material-paginator.umd.min.js.map +1 -1
  86. package/bundles/material-progress-bar.umd.js +35 -14
  87. package/bundles/material-progress-bar.umd.js.map +1 -1
  88. package/bundles/material-progress-bar.umd.min.js +1 -1
  89. package/bundles/material-progress-bar.umd.min.js.map +1 -1
  90. package/bundles/material-progress-spinner.umd.js +29 -13
  91. package/bundles/material-progress-spinner.umd.js.map +1 -1
  92. package/bundles/material-progress-spinner.umd.min.js.map +1 -1
  93. package/bundles/material-radio.umd.js +26 -7
  94. package/bundles/material-radio.umd.js.map +1 -1
  95. package/bundles/material-radio.umd.min.js.map +1 -1
  96. package/bundles/material-select.umd.js +178 -49
  97. package/bundles/material-select.umd.js.map +1 -1
  98. package/bundles/material-select.umd.min.js +1 -1
  99. package/bundles/material-select.umd.min.js.map +1 -1
  100. package/bundles/material-sidenav.umd.js +102 -23
  101. package/bundles/material-sidenav.umd.js.map +1 -1
  102. package/bundles/material-sidenav.umd.min.js +1 -1
  103. package/bundles/material-sidenav.umd.min.js.map +1 -1
  104. package/bundles/material-slide-toggle.umd.js +33 -15
  105. package/bundles/material-slide-toggle.umd.js.map +1 -1
  106. package/bundles/material-slide-toggle.umd.min.js +1 -1
  107. package/bundles/material-slide-toggle.umd.min.js.map +1 -1
  108. package/bundles/material-slider.umd.js +89 -19
  109. package/bundles/material-slider.umd.js.map +1 -1
  110. package/bundles/material-slider.umd.min.js +1 -1
  111. package/bundles/material-slider.umd.min.js.map +1 -1
  112. package/bundles/material-snack-bar.umd.js +74 -22
  113. package/bundles/material-snack-bar.umd.js.map +1 -1
  114. package/bundles/material-snack-bar.umd.min.js +1 -1
  115. package/bundles/material-snack-bar.umd.min.js.map +1 -1
  116. package/bundles/material-sort.umd.js +45 -23
  117. package/bundles/material-sort.umd.js.map +1 -1
  118. package/bundles/material-sort.umd.min.js.map +1 -1
  119. package/bundles/material-stepper.umd.js +37 -44
  120. package/bundles/material-stepper.umd.js.map +1 -1
  121. package/bundles/material-stepper.umd.min.js +1 -1
  122. package/bundles/material-stepper.umd.min.js.map +1 -1
  123. package/bundles/material-table.umd.js +29 -19
  124. package/bundles/material-table.umd.js.map +1 -1
  125. package/bundles/material-table.umd.min.js +1 -1
  126. package/bundles/material-table.umd.min.js.map +1 -1
  127. package/bundles/material-tabs.umd.js +156 -56
  128. package/bundles/material-tabs.umd.js.map +1 -1
  129. package/bundles/material-tabs.umd.min.js +2 -2
  130. package/bundles/material-tabs.umd.min.js.map +1 -1
  131. package/bundles/material-toolbar.umd.js +13 -3
  132. package/bundles/material-toolbar.umd.js.map +1 -1
  133. package/bundles/material-toolbar.umd.min.js.map +1 -1
  134. package/bundles/material-tooltip.umd.js +52 -25
  135. package/bundles/material-tooltip.umd.js.map +1 -1
  136. package/bundles/material-tooltip.umd.min.js.map +1 -1
  137. package/bundles/material-tree.umd.js +25 -26
  138. package/bundles/material-tree.umd.js.map +1 -1
  139. package/bundles/material-tree.umd.min.js +1 -1
  140. package/bundles/material-tree.umd.min.js.map +1 -1
  141. package/bundles/material.umd.js +2780 -979
  142. package/bundles/material.umd.js.map +1 -1
  143. package/bundles/material.umd.min.js +19 -21
  144. package/bundles/material.umd.min.js.map +1 -1
  145. package/button/typings/button.d.ts +0 -5
  146. package/button/typings/index.metadata.json +1 -1
  147. package/button-toggle/typings/index.metadata.json +1 -1
  148. package/checkbox/typings/index.metadata.json +1 -1
  149. package/chips/typings/chip-list.d.ts +1 -1
  150. package/chips/typings/chip.d.ts +2 -2
  151. package/chips/typings/index.metadata.json +1 -1
  152. package/core/typings/index.metadata.json +1 -1
  153. package/core/typings/{testing/month-constants.d.ts → month-constants.d.ts} +2 -0
  154. package/core/typings/public-api.d.ts +1 -1
  155. package/datepicker/typings/calendar-body.d.ts +21 -5
  156. package/datepicker/typings/calendar.d.ts +4 -1
  157. package/datepicker/typings/datepicker-toggle.d.ts +5 -0
  158. package/datepicker/typings/datepicker.d.ts +3 -0
  159. package/datepicker/typings/index.metadata.json +1 -1
  160. package/datepicker/typings/month-view.d.ts +4 -2
  161. package/dialog/typings/index.metadata.json +1 -1
  162. package/esm2015/autocomplete.js +58 -27
  163. package/esm2015/autocomplete.js.map +1 -1
  164. package/esm2015/badge.js +29 -6
  165. package/esm2015/badge.js.map +1 -1
  166. package/esm2015/bottom-sheet.js +46 -27
  167. package/esm2015/bottom-sheet.js.map +1 -1
  168. package/esm2015/button-toggle.js +24 -13
  169. package/esm2015/button-toggle.js.map +1 -1
  170. package/esm2015/button.js +18 -13
  171. package/esm2015/button.js.map +1 -1
  172. package/esm2015/card.js +4 -4
  173. package/esm2015/card.js.map +1 -1
  174. package/esm2015/checkbox.js +30 -12
  175. package/esm2015/checkbox.js.map +1 -1
  176. package/esm2015/chips.js +64 -28
  177. package/esm2015/chips.js.map +1 -1
  178. package/esm2015/core.js +145 -126
  179. package/esm2015/core.js.map +1 -1
  180. package/esm2015/datepicker.js +131 -44
  181. package/esm2015/datepicker.js.map +1 -1
  182. package/esm2015/dialog.js +76 -45
  183. package/esm2015/dialog.js.map +1 -1
  184. package/esm2015/divider.js +4 -4
  185. package/esm2015/divider.js.map +1 -1
  186. package/esm2015/expansion.js +35 -25
  187. package/esm2015/expansion.js.map +1 -1
  188. package/esm2015/form-field.js +93 -34
  189. package/esm2015/form-field.js.map +1 -1
  190. package/esm2015/grid-list.js +45 -17
  191. package/esm2015/grid-list.js.map +1 -1
  192. package/esm2015/icon.js +139 -68
  193. package/esm2015/icon.js.map +1 -1
  194. package/esm2015/input.js +40 -23
  195. package/esm2015/input.js.map +1 -1
  196. package/esm2015/list.js +49 -23
  197. package/esm2015/list.js.map +1 -1
  198. package/esm2015/material.js +10 -9
  199. package/esm2015/material.js.map +1 -1
  200. package/esm2015/menu.js +100 -53
  201. package/esm2015/menu.js.map +1 -1
  202. package/esm2015/paginator.js +35 -12
  203. package/esm2015/paginator.js.map +1 -1
  204. package/esm2015/progress-bar.js +30 -15
  205. package/esm2015/progress-bar.js.map +1 -1
  206. package/esm2015/progress-spinner.js +24 -14
  207. package/esm2015/progress-spinner.js.map +1 -1
  208. package/esm2015/radio.js +17 -7
  209. package/esm2015/radio.js.map +1 -1
  210. package/esm2015/select.js +103 -50
  211. package/esm2015/select.js.map +1 -1
  212. package/esm2015/sidenav.js +73 -26
  213. package/esm2015/sidenav.js.map +1 -1
  214. package/esm2015/slide-toggle.js +26 -16
  215. package/esm2015/slide-toggle.js.map +1 -1
  216. package/esm2015/slider.js +50 -20
  217. package/esm2015/slider.js.map +1 -1
  218. package/esm2015/snack-bar.js +44 -24
  219. package/esm2015/snack-bar.js.map +1 -1
  220. package/esm2015/sort.js +46 -23
  221. package/esm2015/sort.js.map +1 -1
  222. package/esm2015/stepper.js +35 -39
  223. package/esm2015/stepper.js.map +1 -1
  224. package/esm2015/table.js +31 -21
  225. package/esm2015/table.js.map +1 -1
  226. package/esm2015/tabs.js +110 -52
  227. package/esm2015/tabs.js.map +1 -1
  228. package/esm2015/toolbar.js +8 -4
  229. package/esm2015/toolbar.js.map +1 -1
  230. package/esm2015/tooltip.js +42 -27
  231. package/esm2015/tooltip.js.map +1 -1
  232. package/esm2015/tree.js +22 -25
  233. package/esm2015/tree.js.map +1 -1
  234. package/esm5/autocomplete.es5.js +126 -32
  235. package/esm5/autocomplete.es5.js.map +1 -1
  236. package/esm5/badge.es5.js +40 -7
  237. package/esm5/badge.es5.js.map +1 -1
  238. package/esm5/bottom-sheet.es5.js +71 -28
  239. package/esm5/bottom-sheet.es5.js.map +1 -1
  240. package/esm5/button-toggle.es5.js +42 -17
  241. package/esm5/button-toggle.es5.js.map +1 -1
  242. package/esm5/button.es5.js +21 -14
  243. package/esm5/button.es5.js.map +1 -1
  244. package/esm5/card.es5.js +4 -4
  245. package/esm5/card.es5.js.map +1 -1
  246. package/esm5/checkbox.es5.js +58 -17
  247. package/esm5/checkbox.es5.js.map +1 -1
  248. package/esm5/chips.es5.js +127 -37
  249. package/esm5/chips.es5.js.map +1 -1
  250. package/esm5/core.es5.js +189 -126
  251. package/esm5/core.es5.js.map +1 -1
  252. package/esm5/datepicker.es5.js +240 -58
  253. package/esm5/datepicker.es5.js.map +1 -1
  254. package/esm5/dialog.es5.js +139 -47
  255. package/esm5/dialog.es5.js.map +1 -1
  256. package/esm5/divider.es5.js +4 -4
  257. package/esm5/divider.es5.js.map +1 -1
  258. package/esm5/expansion.es5.js +35 -25
  259. package/esm5/expansion.es5.js.map +1 -1
  260. package/esm5/form-field.es5.js +124 -36
  261. package/esm5/form-field.es5.js.map +1 -1
  262. package/esm5/grid-list.es5.js +68 -17
  263. package/esm5/grid-list.es5.js.map +1 -1
  264. package/esm5/icon.es5.js +282 -81
  265. package/esm5/icon.es5.js.map +1 -1
  266. package/esm5/input.es5.js +48 -26
  267. package/esm5/input.es5.js.map +1 -1
  268. package/esm5/list.es5.js +74 -25
  269. package/esm5/list.es5.js.map +1 -1
  270. package/esm5/material.es5.js +10 -9
  271. package/esm5/material.es5.js.map +1 -1
  272. package/esm5/menu.es5.js +158 -55
  273. package/esm5/menu.es5.js.map +1 -1
  274. package/esm5/paginator.es5.js +55 -13
  275. package/esm5/paginator.es5.js.map +1 -1
  276. package/esm5/progress-bar.es5.js +37 -16
  277. package/esm5/progress-bar.es5.js.map +1 -1
  278. package/esm5/progress-spinner.es5.js +31 -15
  279. package/esm5/progress-spinner.es5.js.map +1 -1
  280. package/esm5/radio.es5.js +28 -9
  281. package/esm5/radio.es5.js.map +1 -1
  282. package/esm5/select.es5.js +181 -52
  283. package/esm5/select.es5.js.map +1 -1
  284. package/esm5/sidenav.es5.js +105 -26
  285. package/esm5/sidenav.es5.js.map +1 -1
  286. package/esm5/slide-toggle.es5.js +35 -17
  287. package/esm5/slide-toggle.es5.js.map +1 -1
  288. package/esm5/slider.es5.js +91 -21
  289. package/esm5/slider.es5.js.map +1 -1
  290. package/esm5/snack-bar.es5.js +76 -24
  291. package/esm5/snack-bar.es5.js.map +1 -1
  292. package/esm5/sort.es5.js +52 -25
  293. package/esm5/sort.es5.js.map +1 -1
  294. package/esm5/stepper.es5.js +40 -47
  295. package/esm5/stepper.es5.js.map +1 -1
  296. package/esm5/table.es5.js +31 -21
  297. package/esm5/table.es5.js.map +1 -1
  298. package/esm5/tabs.es5.js +159 -60
  299. package/esm5/tabs.es5.js.map +1 -1
  300. package/esm5/toolbar.es5.js +15 -5
  301. package/esm5/toolbar.es5.js.map +1 -1
  302. package/esm5/tooltip.es5.js +54 -27
  303. package/esm5/tooltip.es5.js.map +1 -1
  304. package/esm5/tree.es5.js +27 -28
  305. package/esm5/tree.es5.js.map +1 -1
  306. package/form-field/typings/form-field.d.ts +15 -4
  307. package/form-field/typings/index.metadata.json +1 -1
  308. package/grid-list/typings/index.d.ts +1 -1
  309. package/grid-list/typings/index.metadata.json +1 -1
  310. package/icon/typings/index.metadata.json +1 -1
  311. package/list/typings/index.metadata.json +1 -1
  312. package/material.d.ts +1 -1
  313. package/material.metadata.json +3 -3
  314. package/menu/typings/index.metadata.json +1 -1
  315. package/menu/typings/menu-item.d.ts +2 -0
  316. package/menu/typings/menu-trigger.d.ts +5 -0
  317. package/package.json +5 -5
  318. package/paginator/typings/index.metadata.json +1 -1
  319. package/paginator/typings/paginator.d.ts +7 -3
  320. package/prebuilt-themes/deeppurple-amber.css +1 -1
  321. package/prebuilt-themes/indigo-pink.css +1 -1
  322. package/prebuilt-themes/pink-bluegrey.css +1 -1
  323. package/prebuilt-themes/purple-green.css +1 -1
  324. package/progress-bar/typings/index.metadata.json +1 -1
  325. package/schematics/ng-add/theming/{custom-theme.d.ts → create-custom-theme.d.ts} +0 -0
  326. package/schematics/ng-add/theming/{custom-theme.js → create-custom-theme.js} +1 -1
  327. package/schematics/ng-add/theming/create-custom-theme.js.map +1 -0
  328. package/schematics/ng-add/theming/theming.js +35 -19
  329. package/schematics/ng-add/theming/theming.js.map +1 -1
  330. package/schematics/ng-generate/address-form/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.ts +2 -2
  331. package/schematics/ng-generate/dashboard/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.ts +2 -2
  332. package/schematics/ng-generate/nav/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.ts +2 -2
  333. package/schematics/ng-generate/table/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.ts +2 -2
  334. package/schematics/ng-generate/tree/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.ts +2 -2
  335. package/select/typings/index.metadata.json +1 -1
  336. package/sidenav/typings/drawer.d.ts +9 -2
  337. package/sidenav/typings/index.metadata.json +1 -1
  338. package/slide-toggle/typings/index.metadata.json +1 -1
  339. package/stepper/typings/index.metadata.json +1 -1
  340. package/stepper/typings/step-header.d.ts +3 -5
  341. package/table/typings/index.metadata.json +1 -1
  342. package/tabs/typings/index.metadata.json +1 -1
  343. package/tabs/typings/tab-body.d.ts +2 -0
  344. package/tabs/typings/tab-group.d.ts +11 -2
  345. package/tabs/typings/tab-header.d.ts +9 -3
  346. package/tree/typings/data-source/flat-data-source.d.ts +2 -2
  347. package/tree/typings/index.metadata.json +1 -1
  348. package/typings/autocomplete/index.d.ts +1 -1
  349. package/typings/autocomplete/index.metadata.json +1 -1
  350. package/typings/badge/index.metadata.json +1 -1
  351. package/typings/bottom-sheet/bottom-sheet-config.d.ts +5 -0
  352. package/typings/bottom-sheet/bottom-sheet-container.d.ts +1 -1
  353. package/typings/bottom-sheet/index.metadata.json +1 -1
  354. package/typings/button/button.d.ts +0 -5
  355. package/typings/button/index.metadata.json +1 -1
  356. package/typings/button-toggle/index.metadata.json +1 -1
  357. package/typings/checkbox/index.metadata.json +1 -1
  358. package/typings/chips/chip-list.d.ts +1 -1
  359. package/typings/chips/chip.d.ts +2 -2
  360. package/typings/chips/index.metadata.json +1 -1
  361. package/typings/core/index.metadata.json +1 -1
  362. package/typings/core/{testing/month-constants.d.ts → month-constants.d.ts} +2 -0
  363. package/typings/core/public-api.d.ts +1 -1
  364. package/typings/datepicker/calendar-body.d.ts +21 -5
  365. package/typings/datepicker/calendar.d.ts +4 -1
  366. package/typings/datepicker/datepicker-toggle.d.ts +5 -0
  367. package/typings/datepicker/datepicker.d.ts +3 -0
  368. package/typings/datepicker/index.metadata.json +1 -1
  369. package/typings/datepicker/month-view.d.ts +4 -2
  370. package/typings/dialog/index.metadata.json +1 -1
  371. package/typings/esm5/autocomplete/index.d.ts +1 -1
  372. package/typings/esm5/autocomplete/index.metadata.json +1 -1
  373. package/typings/esm5/badge/index.metadata.json +1 -1
  374. package/typings/esm5/bottom-sheet/bottom-sheet-config.d.ts +5 -0
  375. package/typings/esm5/bottom-sheet/bottom-sheet-container.d.ts +1 -1
  376. package/typings/esm5/bottom-sheet/index.metadata.json +1 -1
  377. package/typings/esm5/button/button.d.ts +0 -5
  378. package/typings/esm5/button/index.metadata.json +1 -1
  379. package/typings/esm5/button-toggle/index.metadata.json +1 -1
  380. package/typings/esm5/checkbox/index.metadata.json +1 -1
  381. package/typings/esm5/chips/chip-list.d.ts +1 -1
  382. package/typings/esm5/chips/chip.d.ts +2 -2
  383. package/typings/esm5/chips/index.metadata.json +1 -1
  384. package/typings/esm5/core/index.metadata.json +1 -1
  385. package/typings/esm5/core/{testing/month-constants.d.ts → month-constants.d.ts} +2 -0
  386. package/typings/esm5/core/public-api.d.ts +1 -1
  387. package/typings/esm5/datepicker/calendar-body.d.ts +21 -5
  388. package/typings/esm5/datepicker/calendar.d.ts +4 -1
  389. package/typings/esm5/datepicker/datepicker-toggle.d.ts +5 -0
  390. package/typings/esm5/datepicker/datepicker.d.ts +3 -0
  391. package/typings/esm5/datepicker/index.metadata.json +1 -1
  392. package/typings/esm5/datepicker/month-view.d.ts +4 -2
  393. package/typings/esm5/dialog/index.metadata.json +1 -1
  394. package/typings/esm5/form-field/form-field.d.ts +15 -4
  395. package/typings/esm5/form-field/index.metadata.json +1 -1
  396. package/typings/esm5/grid-list/index.d.ts +1 -1
  397. package/typings/esm5/grid-list/index.metadata.json +1 -1
  398. package/typings/esm5/icon/index.metadata.json +1 -1
  399. package/typings/esm5/index.metadata.json +1 -1
  400. package/typings/esm5/list/index.metadata.json +1 -1
  401. package/typings/esm5/menu/index.metadata.json +1 -1
  402. package/typings/esm5/menu/menu-item.d.ts +2 -0
  403. package/typings/esm5/menu/menu-trigger.d.ts +5 -0
  404. package/typings/esm5/paginator/index.metadata.json +1 -1
  405. package/typings/esm5/paginator/paginator.d.ts +7 -3
  406. package/typings/esm5/progress-bar/index.metadata.json +1 -1
  407. package/typings/esm5/select/index.metadata.json +1 -1
  408. package/typings/esm5/sidenav/drawer.d.ts +9 -2
  409. package/typings/esm5/sidenav/index.metadata.json +1 -1
  410. package/typings/esm5/slide-toggle/index.metadata.json +1 -1
  411. package/typings/esm5/stepper/index.metadata.json +1 -1
  412. package/typings/esm5/stepper/step-header.d.ts +3 -5
  413. package/typings/esm5/table/index.metadata.json +1 -1
  414. package/typings/esm5/tabs/index.metadata.json +1 -1
  415. package/typings/esm5/tabs/tab-body.d.ts +2 -0
  416. package/typings/esm5/tabs/tab-group.d.ts +11 -2
  417. package/typings/esm5/tabs/tab-header.d.ts +9 -3
  418. package/typings/esm5/tree/data-source/flat-data-source.d.ts +2 -2
  419. package/typings/esm5/tree/index.metadata.json +1 -1
  420. package/typings/form-field/form-field.d.ts +15 -4
  421. package/typings/form-field/index.metadata.json +1 -1
  422. package/typings/grid-list/index.d.ts +1 -1
  423. package/typings/grid-list/index.metadata.json +1 -1
  424. package/typings/icon/index.metadata.json +1 -1
  425. package/typings/index.metadata.json +1 -1
  426. package/typings/list/index.metadata.json +1 -1
  427. package/typings/menu/index.metadata.json +1 -1
  428. package/typings/menu/menu-item.d.ts +2 -0
  429. package/typings/menu/menu-trigger.d.ts +5 -0
  430. package/typings/paginator/index.metadata.json +1 -1
  431. package/typings/paginator/paginator.d.ts +7 -3
  432. package/typings/progress-bar/index.metadata.json +1 -1
  433. package/typings/schematics/ng-add/theming/{custom-theme.d.ts → create-custom-theme.d.ts} +0 -0
  434. package/typings/select/index.metadata.json +1 -1
  435. package/typings/sidenav/drawer.d.ts +9 -2
  436. package/typings/sidenav/index.metadata.json +1 -1
  437. package/typings/slide-toggle/index.metadata.json +1 -1
  438. package/typings/stepper/index.metadata.json +1 -1
  439. package/typings/stepper/step-header.d.ts +3 -5
  440. package/typings/table/index.metadata.json +1 -1
  441. package/typings/tabs/index.metadata.json +1 -1
  442. package/typings/tabs/tab-body.d.ts +2 -0
  443. package/typings/tabs/tab-group.d.ts +11 -2
  444. package/typings/tabs/tab-header.d.ts +9 -3
  445. package/typings/tree/data-source/flat-data-source.d.ts +2 -2
  446. package/typings/tree/index.metadata.json +1 -1
  447. package/schematics/ng-add/theming/custom-theme.js.map +0 -1
package/esm5/tabs.es5.js CHANGED
@@ -23,11 +23,12 @@ import { CommonModule } from '@angular/common';
23
23
 
24
24
  /**
25
25
  * @fileoverview added by tsickle
26
- * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
26
+ * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
27
27
  */
28
- /** *
28
+ /**
29
29
  * Injection token for the MatInkBar's Positioner.
30
- @type {?} */
30
+ * @type {?}
31
+ */
31
32
  var _MAT_INK_BAR_POSITIONER = new InjectionToken('MatInkBarPositioner', {
32
33
  providedIn: 'root',
33
34
  factory: _MAT_INK_BAR_POSITIONER_FACTORY
@@ -110,11 +111,17 @@ var MatInkBar = /** @class */ (function () {
110
111
  };
111
112
  /**
112
113
  * Sets the proper styles to the ink bar element.
114
+ * @param element
115
+ */
116
+ /**
117
+ * Sets the proper styles to the ink bar element.
118
+ * @private
113
119
  * @param {?} element
114
120
  * @return {?}
115
121
  */
116
122
  MatInkBar.prototype._setStyles = /**
117
123
  * Sets the proper styles to the ink bar element.
124
+ * @private
118
125
  * @param {?} element
119
126
  * @return {?}
120
127
  */
@@ -145,7 +152,7 @@ var MatInkBar = /** @class */ (function () {
145
152
 
146
153
  /**
147
154
  * @fileoverview added by tsickle
148
- * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
155
+ * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
149
156
  */
150
157
  /**
151
158
  * Decorates the `ng-template` tags and reads out the template from it.
@@ -166,7 +173,7 @@ var MatTabContent = /** @class */ (function () {
166
173
 
167
174
  /**
168
175
  * @fileoverview added by tsickle
169
- * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
176
+ * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
170
177
  */
171
178
  /**
172
179
  * Used to flag tab labels for use with the portal directive
@@ -183,17 +190,18 @@ var MatTabLabel = /** @class */ (function (_super) {
183
190
  ];
184
191
  return MatTabLabel;
185
192
  }(CdkPortal));
186
- // TODO(devversion): workaround for https://github.com/angular/material2/issues/12760
187
- (/** @type {?} */ (MatTabLabel))['ctorParameters'] = function () { return (/** @type {?} */ (CdkPortal))['ctorParameters']; };
188
193
 
189
194
  /**
190
195
  * @fileoverview added by tsickle
191
- * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
196
+ * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
192
197
  */
198
+ // Boilerplate for applying mixins to MatTab.
193
199
  /**
194
200
  * \@docs-private
195
201
  */
196
- var /**
202
+ var
203
+ // Boilerplate for applying mixins to MatTab.
204
+ /**
197
205
  * \@docs-private
198
206
  */
199
207
  MatTabBase = /** @class */ (function () {
@@ -305,14 +313,17 @@ var MatTab = /** @class */ (function (_super) {
305
313
 
306
314
  /**
307
315
  * @fileoverview added by tsickle
308
- * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
316
+ * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
309
317
  */
310
- /** *
318
+ /**
311
319
  * Animations used by the Material tabs.
312
320
  * \@docs-private
313
- @type {?} */
321
+ * @type {?}
322
+ */
314
323
  var matTabsAnimations = {
315
- /** Animation translates a tab along the X axis. */
324
+ /**
325
+ * Animation translates a tab along the X axis.
326
+ */
316
327
  translateTab: trigger('translateTab', [
317
328
  // Note: transitions to `none` instead of 0, because some browsers might blur the content.
318
329
  state('center, void, left-origin-center, right-origin-center', style({ transform: 'none' })),
@@ -322,21 +333,21 @@ var matTabsAnimations = {
322
333
  // not have a static height and is not rendered. See related issue: #9465
323
334
  state('left', style({ transform: 'translate3d(-100%, 0, 0)', minHeight: '1px' })),
324
335
  state('right', style({ transform: 'translate3d(100%, 0, 0)', minHeight: '1px' })),
325
- transition('* => left, * => right, left => center, right => center', animate('500ms cubic-bezier(0.35, 0, 0.25, 1)')),
336
+ transition('* => left, * => right, left => center, right => center', animate('{{animationDuration}} cubic-bezier(0.35, 0, 0.25, 1)')),
326
337
  transition('void => left-origin-center', [
327
338
  style({ transform: 'translate3d(-100%, 0, 0)' }),
328
- animate('500ms cubic-bezier(0.35, 0, 0.25, 1)')
339
+ animate('{{animationDuration}} cubic-bezier(0.35, 0, 0.25, 1)')
329
340
  ]),
330
341
  transition('void => right-origin-center', [
331
342
  style({ transform: 'translate3d(100%, 0, 0)' }),
332
- animate('500ms cubic-bezier(0.35, 0, 0.25, 1)')
343
+ animate('{{animationDuration}} cubic-bezier(0.35, 0, 0.25, 1)')
333
344
  ])
334
345
  ])
335
346
  };
336
347
 
337
348
  /**
338
349
  * @fileoverview added by tsickle
339
- * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
350
+ * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
340
351
  */
341
352
  /**
342
353
  * The portal host directive for the contents of the tab.
@@ -412,9 +423,10 @@ var MatTabBodyPortal = /** @class */ (function (_super) {
412
423
  * \@docs-private
413
424
  */
414
425
  var MatTabBody = /** @class */ (function () {
415
- function MatTabBody(_elementRef, _dir, /**
416
- * @breaking-change 8.0.0 changeDetectorRef to be made required.
417
- */
426
+ function MatTabBody(_elementRef, _dir,
427
+ /**
428
+ * @breaking-change 8.0.0 changeDetectorRef to be made required.
429
+ */
418
430
  changeDetectorRef) {
419
431
  var _this = this;
420
432
  this._elementRef = _elementRef;
@@ -443,6 +455,12 @@ var MatTabBody = /** @class */ (function () {
443
455
  * Event emitted when the tab completes its animation towards the center.
444
456
  */
445
457
  this._onCentered = new EventEmitter(true);
458
+ // Note that the default value will always be overwritten by `MatTabBody`, but we need one
459
+ // anyway to prevent the animations module from throwing an error if the body is used on its own.
460
+ /**
461
+ * Duration for the tab's animation.
462
+ */
463
+ this.animationDuration = '500ms';
446
464
  if (this._dir && changeDetectorRef) {
447
465
  this._dirChangeSubscription = this._dir.change.subscribe(function (dir) {
448
466
  _this._computePositionAnimationState(dir);
@@ -550,13 +568,16 @@ var MatTabBody = /** @class */ (function () {
550
568
  position == 'left-origin-center' ||
551
569
  position == 'right-origin-center';
552
570
  };
571
+ /** Computes the position state that will be used for the tab-body animation trigger. */
553
572
  /**
554
573
  * Computes the position state that will be used for the tab-body animation trigger.
574
+ * @private
555
575
  * @param {?=} dir
556
576
  * @return {?}
557
577
  */
558
578
  MatTabBody.prototype._computePositionAnimationState = /**
559
579
  * Computes the position state that will be used for the tab-body animation trigger.
580
+ * @private
560
581
  * @param {?=} dir
561
582
  * @return {?}
562
583
  */
@@ -575,11 +596,17 @@ var MatTabBody = /** @class */ (function () {
575
596
  /**
576
597
  * Computes the position state based on the specified origin position. This is used if the
577
598
  * tab is becoming visible immediately after creation.
599
+ */
600
+ /**
601
+ * Computes the position state based on the specified origin position. This is used if the
602
+ * tab is becoming visible immediately after creation.
603
+ * @private
578
604
  * @return {?}
579
605
  */
580
606
  MatTabBody.prototype._computePositionFromOrigin = /**
581
607
  * Computes the position state based on the specified origin position. This is used if the
582
608
  * tab is becoming visible immediately after creation.
609
+ * @private
583
610
  * @return {?}
584
611
  */
585
612
  function () {
@@ -592,7 +619,7 @@ var MatTabBody = /** @class */ (function () {
592
619
  };
593
620
  MatTabBody.decorators = [
594
621
  { type: Component, args: [{selector: 'mat-tab-body',
595
- template: "<div class=\"mat-tab-body-content\" #content [@translateTab]=\"_position\" (@translateTab.start)=\"_onTranslateTabStarted($event)\" (@translateTab.done)=\"_translateTabComplete.next($event)\"><ng-template matTabBodyHost></ng-template></div>",
622
+ template: "<div class=\"mat-tab-body-content\" #content [@translateTab]=\"{ value: _position, params: {animationDuration: animationDuration} }\" (@translateTab.start)=\"_onTranslateTabStarted($event)\" (@translateTab.done)=\"_translateTabComplete.next($event)\"><ng-template matTabBodyHost></ng-template></div>",
596
623
  styles: [".mat-tab-body-content{height:100%;overflow:auto}.mat-tab-group-dynamic-height .mat-tab-body-content{overflow:hidden}"],
597
624
  encapsulation: ViewEncapsulation.None,
598
625
  changeDetection: ChangeDetectionStrategy.OnPush,
@@ -616,6 +643,7 @@ var MatTabBody = /** @class */ (function () {
616
643
  _portalHost: [{ type: ViewChild, args: [PortalHostDirective,] }],
617
644
  _content: [{ type: Input, args: ['content',] }],
618
645
  origin: [{ type: Input }],
646
+ animationDuration: [{ type: Input }],
619
647
  position: [{ type: Input }]
620
648
  };
621
649
  return MatTabBody;
@@ -623,12 +651,15 @@ var MatTabBody = /** @class */ (function () {
623
651
 
624
652
  /**
625
653
  * @fileoverview added by tsickle
626
- * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
654
+ * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
627
655
  */
656
+ // Boilerplate for applying mixins to MatTabLabelWrapper.
628
657
  /**
629
658
  * \@docs-private
630
659
  */
631
- var /**
660
+ var
661
+ // Boilerplate for applying mixins to MatTabLabelWrapper.
662
+ /**
632
663
  * \@docs-private
633
664
  */
634
665
  MatTabLabelWrapperBase = /** @class */ (function () {
@@ -698,17 +729,21 @@ var MatTabLabelWrapper = /** @class */ (function (_super) {
698
729
 
699
730
  /**
700
731
  * @fileoverview added by tsickle
701
- * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
732
+ * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
702
733
  */
703
- /** *
734
+ /**
704
735
  * The distance in pixels that will be overshot when scrolling a tab label into view. This helps
705
736
  * provide a small affordance to the label next to it.
706
- @type {?} */
737
+ * @type {?}
738
+ */
707
739
  var EXAGGERATED_OVERSCROLL = 60;
740
+ // Boilerplate for applying mixins to MatTabHeader.
708
741
  /**
709
742
  * \@docs-private
710
743
  */
711
- var /**
744
+ var
745
+ // Boilerplate for applying mixins to MatTabHeader.
746
+ /**
712
747
  * \@docs-private
713
748
  */
714
749
  MatTabHeaderBase = /** @class */ (function () {
@@ -800,7 +835,7 @@ var MatTabHeader = /** @class */ (function (_super) {
800
835
  function () {
801
836
  // If the number of tab labels have changed, check if scrolling should be enabled
802
837
  if (this._tabLabelCount != this._labelWrappers.length) {
803
- this._updatePagination();
838
+ this.updatePagination();
804
839
  this._tabLabelCount = this._labelWrappers.length;
805
840
  this._changeDetectorRef.markForCheck();
806
841
  }
@@ -867,7 +902,7 @@ var MatTabHeader = /** @class */ (function (_super) {
867
902
  var resize = this._viewportRuler.change(150);
868
903
  /** @type {?} */
869
904
  var realign = function () {
870
- _this._updatePagination();
905
+ _this.updatePagination();
871
906
  _this._alignInkBarToSelectedTab();
872
907
  };
873
908
  this._keyManager = new FocusKeyManager(this._labelWrappers)
@@ -915,25 +950,45 @@ var MatTabHeader = /** @class */ (function (_super) {
915
950
  function () {
916
951
  var _this = this;
917
952
  /** @type {?} */
918
- var zoneCallback = function () {
919
- _this._updatePagination();
920
- _this._alignInkBarToSelectedTab();
921
- _this._changeDetectorRef.markForCheck();
922
- };
923
- // The content observer runs outside the `NgZone` by default, which
924
- // means that we need to bring the callback back in ourselves.
925
- // @breaking-change 8.0.0 Remove null check for `_ngZone` once it's a required parameter.
926
- this._ngZone ? this._ngZone.run(zoneCallback) : zoneCallback();
953
+ var textContent = this._elementRef.nativeElement.textContent;
954
+ // We need to diff the text content of the header, because the MutationObserver callback
955
+ // will fire even if the text content didn't change which is inefficient and is prone
956
+ // to infinite loops if a poorly constructed expression is passed in (see #14249).
957
+ if (textContent !== this._currentTextContent) {
958
+ this._currentTextContent = textContent;
959
+ /** @type {?} */
960
+ var zoneCallback = function () {
961
+ _this.updatePagination();
962
+ _this._alignInkBarToSelectedTab();
963
+ _this._changeDetectorRef.markForCheck();
964
+ };
965
+ // The content observer runs outside the `NgZone` by default, which
966
+ // means that we need to bring the callback back in ourselves.
967
+ // @breaking-change 8.0.0 Remove null check for `_ngZone` once it's a required parameter.
968
+ this._ngZone ? this._ngZone.run(zoneCallback) : zoneCallback();
969
+ }
927
970
  };
928
971
  /**
929
- * Updating the view whether pagination should be enabled or not
972
+ * Updates the view whether pagination should be enabled or not.
973
+ *
974
+ * WARNING: Calling this method can be very costly in terms of performance. It should be called
975
+ * as infrequently as possible from outside of the Tabs component as it causes a reflow of the
976
+ * page.
930
977
  */
931
978
  /**
932
- * Updating the view whether pagination should be enabled or not
979
+ * Updates the view whether pagination should be enabled or not.
980
+ *
981
+ * WARNING: Calling this method can be very costly in terms of performance. It should be called
982
+ * as infrequently as possible from outside of the Tabs component as it causes a reflow of the
983
+ * page.
933
984
  * @return {?}
934
985
  */
935
- MatTabHeader.prototype._updatePagination = /**
936
- * Updating the view whether pagination should be enabled or not
986
+ MatTabHeader.prototype.updatePagination = /**
987
+ * Updates the view whether pagination should be enabled or not.
988
+ *
989
+ * WARNING: Calling this method can be very costly in terms of performance. It should be called
990
+ * as infrequently as possible from outside of the Tabs component as it causes a reflow of the
991
+ * page.
937
992
  * @return {?}
938
993
  */
939
994
  function () {
@@ -948,7 +1003,7 @@ var MatTabHeader = /** @class */ (function (_super) {
948
1003
  * @return {?}
949
1004
  */
950
1005
  function () {
951
- return this._keyManager ? /** @type {?} */ ((this._keyManager.activeItemIndex)) : 0;
1006
+ return this._keyManager ? (/** @type {?} */ (this._keyManager.activeItemIndex)) : 0;
952
1007
  },
953
1008
  /** When the focus index is set, we must manually send focus to the correct label */
954
1009
  set: /**
@@ -1011,6 +1066,9 @@ var MatTabHeader = /** @class */ (function (_super) {
1011
1066
  }
1012
1067
  if (this._labelWrappers && this._labelWrappers.length) {
1013
1068
  this._labelWrappers.toArray()[tabIndex].focus();
1069
+ // Do not let the browser manage scrolling to focus the element, this will be handled
1070
+ // by using translation. In LTR, the scroll left should be 0. In RTL, the scroll width
1071
+ // should be the full width minus the offset width.
1014
1072
  /** @type {?} */
1015
1073
  var containerEl = this._tabListContainer.nativeElement;
1016
1074
  /** @type {?} */
@@ -1053,7 +1111,13 @@ var MatTabHeader = /** @class */ (function (_super) {
1053
1111
  // seems to cause flickering and overflow in Internet Explorer. For example, the ink bar
1054
1112
  // and ripples will exceed the boundaries of the visible tab bar.
1055
1113
  // See: https://github.com/angular/material2/issues/10276
1056
- this._tabList.nativeElement.style.transform = "translateX(" + translateX + "px)";
1114
+ // We round the `transform` here, because transforms with sub-pixel precision cause some
1115
+ // browsers to blur the content of the element.
1116
+ this._tabList.nativeElement.style.transform = "translateX(" + Math.round(translateX) + "px)";
1117
+ // Setting the `transform` on IE will change the scroll offset of the parent, causing the
1118
+ // position to be thrown off in some cases. We have to reset it ourselves to ensure that
1119
+ // it doesn't get thrown off.
1120
+ this._tabListContainer.nativeElement.scrollLeft = 0;
1057
1121
  };
1058
1122
  Object.defineProperty(MatTabHeader.prototype, "scrollDistance", {
1059
1123
  /** Sets the distance in pixels that the tab header should be transformed in the X-axis. */
@@ -1138,6 +1202,7 @@ var MatTabHeader = /** @class */ (function (_super) {
1138
1202
  if (!selectedLabel) {
1139
1203
  return;
1140
1204
  }
1205
+ // The view length is the visible width of the tab labels.
1141
1206
  /** @type {?} */
1142
1207
  var viewLength = this._tabListContainer.nativeElement.offsetWidth;
1143
1208
  /** @type {?} */
@@ -1281,7 +1346,7 @@ var MatTabHeader = /** @class */ (function (_super) {
1281
1346
  var selectedLabelWrapper = this._labelWrappers && this._labelWrappers.length ?
1282
1347
  this._labelWrappers.toArray()[this.selectedIndex].elementRef.nativeElement :
1283
1348
  null;
1284
- this._inkBar.alignToElement(/** @type {?} */ ((selectedLabelWrapper)));
1349
+ this._inkBar.alignToElement((/** @type {?} */ (selectedLabelWrapper)));
1285
1350
  };
1286
1351
  MatTabHeader.decorators = [
1287
1352
  { type: Component, args: [{selector: 'mat-tab-header',
@@ -1319,11 +1384,12 @@ var MatTabHeader = /** @class */ (function (_super) {
1319
1384
 
1320
1385
  /**
1321
1386
  * @fileoverview added by tsickle
1322
- * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
1387
+ * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
1323
1388
  */
1324
- /** *
1389
+ /**
1325
1390
  * Used to generate unique ID's for each tab component
1326
- @type {?} */
1391
+ * @type {?}
1392
+ */
1327
1393
  var nextId = 0;
1328
1394
  /**
1329
1395
  * A simple change event emitted on focus or selection changes.
@@ -1336,10 +1402,18 @@ MatTabChangeEvent = /** @class */ (function () {
1336
1402
  }
1337
1403
  return MatTabChangeEvent;
1338
1404
  }());
1405
+ /**
1406
+ * Injection token that can be used to provide the default options the tabs module.
1407
+ * @type {?}
1408
+ */
1409
+ var MAT_TABS_CONFIG = new InjectionToken('MAT_TABS_CONFIG');
1410
+ // Boilerplate for applying mixins to MatTabGroup.
1339
1411
  /**
1340
1412
  * \@docs-private
1341
1413
  */
1342
- var /**
1414
+ var
1415
+ // Boilerplate for applying mixins to MatTabGroup.
1416
+ /**
1343
1417
  * \@docs-private
1344
1418
  */
1345
1419
  MatTabGroupBase = /** @class */ (function () {
@@ -1357,7 +1431,7 @@ var _MatTabGroupMixinBase = mixinColor(mixinDisableRipple(MatTabGroupBase), 'pri
1357
1431
  */
1358
1432
  var MatTabGroup = /** @class */ (function (_super) {
1359
1433
  __extends(MatTabGroup, _super);
1360
- function MatTabGroup(elementRef, _changeDetectorRef) {
1434
+ function MatTabGroup(elementRef, _changeDetectorRef, defaultConfig) {
1361
1435
  var _this = _super.call(this, elementRef) || this;
1362
1436
  _this._changeDetectorRef = _changeDetectorRef;
1363
1437
  /**
@@ -1399,6 +1473,8 @@ var MatTabGroup = /** @class */ (function (_super) {
1399
1473
  */
1400
1474
  _this.selectedTabChange = new EventEmitter(true);
1401
1475
  _this._groupId = nextId++;
1476
+ _this.animationDuration = defaultConfig && defaultConfig.animationDuration ?
1477
+ defaultConfig.animationDuration : '500ms';
1402
1478
  return _this;
1403
1479
  }
1404
1480
  Object.defineProperty(MatTabGroup.prototype, "dynamicHeight", {
@@ -1478,6 +1554,8 @@ var MatTabGroup = /** @class */ (function (_super) {
1478
1554
  */
1479
1555
  function () {
1480
1556
  var _this = this;
1557
+ // Don't clamp the `indexToSelect` immediately in the setter because it can happen that
1558
+ // the amount of tabs changes before the actual change detection runs.
1481
1559
  /** @type {?} */
1482
1560
  var indexToSelect = this._indexToSelect = this._clampTabIndex(this._indexToSelect);
1483
1561
  // If there is a change in selected index, emit a change event. Should not trigger if
@@ -1580,10 +1658,12 @@ var MatTabGroup = /** @class */ (function (_super) {
1580
1658
  this.focusChange.emit(this._createChangeEvent(index));
1581
1659
  };
1582
1660
  /**
1661
+ * @private
1583
1662
  * @param {?} index
1584
1663
  * @return {?}
1585
1664
  */
1586
1665
  MatTabGroup.prototype._createChangeEvent = /**
1666
+ * @private
1587
1667
  * @param {?} index
1588
1668
  * @return {?}
1589
1669
  */
@@ -1596,11 +1676,18 @@ var MatTabGroup = /** @class */ (function (_super) {
1596
1676
  }
1597
1677
  return event;
1598
1678
  };
1679
+ /**
1680
+ * Subscribes to changes in the tab labels. This is needed, because the @Input for the label is
1681
+ * on the MatTab component, whereas the data binding is inside the MatTabGroup. In order for the
1682
+ * binding to be updated, we need to subscribe to changes in it and trigger change detection
1683
+ * manually.
1684
+ */
1599
1685
  /**
1600
1686
  * Subscribes to changes in the tab labels. This is needed, because the \@Input for the label is
1601
1687
  * on the MatTab component, whereas the data binding is inside the MatTabGroup. In order for the
1602
1688
  * binding to be updated, we need to subscribe to changes in it and trigger change detection
1603
1689
  * manually.
1690
+ * @private
1604
1691
  * @return {?}
1605
1692
  */
1606
1693
  MatTabGroup.prototype._subscribeToTabLabels = /**
@@ -1608,6 +1695,7 @@ var MatTabGroup = /** @class */ (function (_super) {
1608
1695
  * on the MatTab component, whereas the data binding is inside the MatTabGroup. In order for the
1609
1696
  * binding to be updated, we need to subscribe to changes in it and trigger change detection
1610
1697
  * manually.
1698
+ * @private
1611
1699
  * @return {?}
1612
1700
  */
1613
1701
  function () {
@@ -1617,13 +1705,16 @@ var MatTabGroup = /** @class */ (function (_super) {
1617
1705
  }
1618
1706
  this._tabLabelSubscription = merge.apply(void 0, this._tabs.map(function (tab) { return tab._stateChanges; })).subscribe(function () { return _this._changeDetectorRef.markForCheck(); });
1619
1707
  };
1708
+ /** Clamps the given index to the bounds of 0 and the tabs length. */
1620
1709
  /**
1621
1710
  * Clamps the given index to the bounds of 0 and the tabs length.
1711
+ * @private
1622
1712
  * @param {?} index
1623
1713
  * @return {?}
1624
1714
  */
1625
1715
  MatTabGroup.prototype._clampTabIndex = /**
1626
1716
  * Clamps the given index to the bounds of 0 and the tabs length.
1717
+ * @private
1627
1718
  * @param {?} index
1628
1719
  * @return {?}
1629
1720
  */
@@ -1748,7 +1839,7 @@ var MatTabGroup = /** @class */ (function (_super) {
1748
1839
  MatTabGroup.decorators = [
1749
1840
  { type: Component, args: [{selector: 'mat-tab-group',
1750
1841
  exportAs: 'matTabGroup',
1751
- template: "<mat-tab-header #tabHeader [selectedIndex]=\"selectedIndex\" [disableRipple]=\"disableRipple\" (indexFocused)=\"_focusChanged($event)\" (selectFocusedIndex)=\"selectedIndex = $event\"><div class=\"mat-tab-label\" role=\"tab\" matTabLabelWrapper mat-ripple cdkMonitorElementFocus *ngFor=\"let tab of _tabs; let i = index\" [id]=\"_getTabLabelId(i)\" [attr.tabIndex]=\"_getTabIndex(tab, i)\" [attr.aria-posinset]=\"i + 1\" [attr.aria-setsize]=\"_tabs.length\" [attr.aria-controls]=\"_getTabContentId(i)\" [attr.aria-selected]=\"selectedIndex == i\" [attr.aria-label]=\"tab.ariaLabel || null\" [attr.aria-labelledby]=\"(!tab.ariaLabel && tab.ariaLabelledby) ? tab.ariaLabelledby : null\" [class.mat-tab-label-active]=\"selectedIndex == i\" [disabled]=\"tab.disabled\" [matRippleDisabled]=\"tab.disabled || disableRipple\" (click)=\"_handleClick(tab, tabHeader, i)\"><div class=\"mat-tab-label-content\"><ng-template [ngIf]=\"tab.templateLabel\"><ng-template [cdkPortalOutlet]=\"tab.templateLabel\"></ng-template></ng-template><ng-template [ngIf]=\"!tab.templateLabel\">{{tab.textLabel}}</ng-template></div></div></mat-tab-header><div class=\"mat-tab-body-wrapper\" #tabBodyWrapper><mat-tab-body role=\"tabpanel\" *ngFor=\"let tab of _tabs; let i = index\" [id]=\"_getTabContentId(i)\" [attr.aria-labelledby]=\"_getTabLabelId(i)\" [class.mat-tab-body-active]=\"selectedIndex == i\" [content]=\"tab.content\" [position]=\"tab.position\" [origin]=\"tab.origin\" (_onCentered)=\"_removeTabBodyWrapperHeight()\" (_onCentering)=\"_setTabBodyWrapperHeight($event)\"></mat-tab-body></div>",
1842
+ template: "<mat-tab-header #tabHeader [selectedIndex]=\"selectedIndex\" [disableRipple]=\"disableRipple\" (indexFocused)=\"_focusChanged($event)\" (selectFocusedIndex)=\"selectedIndex = $event\"><div class=\"mat-tab-label\" role=\"tab\" matTabLabelWrapper mat-ripple cdkMonitorElementFocus *ngFor=\"let tab of _tabs; let i = index\" [id]=\"_getTabLabelId(i)\" [attr.tabIndex]=\"_getTabIndex(tab, i)\" [attr.aria-posinset]=\"i + 1\" [attr.aria-setsize]=\"_tabs.length\" [attr.aria-controls]=\"_getTabContentId(i)\" [attr.aria-selected]=\"selectedIndex == i\" [attr.aria-label]=\"tab.ariaLabel || null\" [attr.aria-labelledby]=\"(!tab.ariaLabel && tab.ariaLabelledby) ? tab.ariaLabelledby : null\" [class.mat-tab-label-active]=\"selectedIndex == i\" [disabled]=\"tab.disabled\" [matRippleDisabled]=\"tab.disabled || disableRipple\" (click)=\"_handleClick(tab, tabHeader, i)\"><div class=\"mat-tab-label-content\"><ng-template [ngIf]=\"tab.templateLabel\"><ng-template [cdkPortalOutlet]=\"tab.templateLabel\"></ng-template></ng-template><ng-template [ngIf]=\"!tab.templateLabel\">{{tab.textLabel}}</ng-template></div></div></mat-tab-header><div class=\"mat-tab-body-wrapper\" #tabBodyWrapper><mat-tab-body role=\"tabpanel\" *ngFor=\"let tab of _tabs; let i = index\" [id]=\"_getTabContentId(i)\" [attr.aria-labelledby]=\"_getTabLabelId(i)\" [class.mat-tab-body-active]=\"selectedIndex == i\" [content]=\"tab.content\" [position]=\"tab.position\" [origin]=\"tab.origin\" [animationDuration]=\"animationDuration\" (_onCentered)=\"_removeTabBodyWrapperHeight()\" (_onCentering)=\"_setTabBodyWrapperHeight($event)\"></mat-tab-body></div>",
1752
1843
  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:0}.mat-tab-label:focus:not(.mat-tab-disabled){opacity:1}@media screen and (-ms-high-contrast:active){.mat-tab-label:focus{outline:dotted 2px}}.mat-tab-label.mat-tab-disabled{cursor:default}@media screen and (-ms-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}@media screen and (-ms-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 .5s cubic-bezier(.35,0,.25,1)}.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}"],
1753
1844
  encapsulation: ViewEncapsulation.None,
1754
1845
  changeDetection: ChangeDetectionStrategy.OnPush,
@@ -1763,7 +1854,8 @@ var MatTabGroup = /** @class */ (function (_super) {
1763
1854
  /** @nocollapse */
1764
1855
  MatTabGroup.ctorParameters = function () { return [
1765
1856
  { type: ElementRef },
1766
- { type: ChangeDetectorRef }
1857
+ { type: ChangeDetectorRef },
1858
+ { type: undefined, decorators: [{ type: Inject, args: [MAT_TABS_CONFIG,] }, { type: Optional }] }
1767
1859
  ]; };
1768
1860
  MatTabGroup.propDecorators = {
1769
1861
  _tabs: [{ type: ContentChildren, args: [MatTab,] }],
@@ -1772,6 +1864,7 @@ var MatTabGroup = /** @class */ (function (_super) {
1772
1864
  dynamicHeight: [{ type: Input }],
1773
1865
  selectedIndex: [{ type: Input }],
1774
1866
  headerPosition: [{ type: Input }],
1867
+ animationDuration: [{ type: Input }],
1775
1868
  backgroundColor: [{ type: Input }],
1776
1869
  selectedIndexChange: [{ type: Output }],
1777
1870
  focusChange: [{ type: Output }],
@@ -1783,12 +1876,15 @@ var MatTabGroup = /** @class */ (function (_super) {
1783
1876
 
1784
1877
  /**
1785
1878
  * @fileoverview added by tsickle
1786
- * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
1879
+ * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
1787
1880
  */
1881
+ // Boilerplate for applying mixins to MatTabNav.
1788
1882
  /**
1789
1883
  * \@docs-private
1790
1884
  */
1791
- var /**
1885
+ var
1886
+ // Boilerplate for applying mixins to MatTabNav.
1887
+ /**
1792
1888
  * \@docs-private
1793
1889
  */
1794
1890
  MatTabNavBase = /** @class */ (function () {
@@ -1950,7 +2046,10 @@ var MatTabNav = /** @class */ (function (_super) {
1950
2046
  };
1951
2047
  return MatTabNav;
1952
2048
  }(_MatTabNavMixinBase));
1953
- var MatTabLinkBase = /** @class */ (function () {
2049
+ // Boilerplate for applying mixins to MatTabLink.
2050
+ var
2051
+ // Boilerplate for applying mixins to MatTabLink.
2052
+ MatTabLinkBase = /** @class */ (function () {
1954
2053
  function MatTabLinkBase() {
1955
2054
  }
1956
2055
  return MatTabLinkBase;
@@ -2078,7 +2177,7 @@ var MatTabLink = /** @class */ (function (_super) {
2078
2177
 
2079
2178
  /**
2080
2179
  * @fileoverview added by tsickle
2081
- * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
2180
+ * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
2082
2181
  */
2083
2182
  var MatTabsModule = /** @class */ (function () {
2084
2183
  function MatTabsModule() {
@@ -2123,18 +2222,18 @@ var MatTabsModule = /** @class */ (function () {
2123
2222
 
2124
2223
  /**
2125
2224
  * @fileoverview added by tsickle
2126
- * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
2225
+ * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
2127
2226
  */
2128
2227
 
2129
2228
  /**
2130
2229
  * @fileoverview added by tsickle
2131
- * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
2230
+ * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
2132
2231
  */
2133
2232
 
2134
2233
  /**
2135
2234
  * @fileoverview added by tsickle
2136
- * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
2235
+ * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
2137
2236
  */
2138
2237
 
2139
- export { MatInkBar, _MAT_INK_BAR_POSITIONER, MatTabBody, MatTabBodyPortal, MatTabHeader, MatTabLabelWrapper, MatTab, MatTabLabel, MatTabNav, MatTabLink, MatTabContent, MatTabsModule, MatTabChangeEvent, MatTabGroupBase, _MatTabGroupMixinBase, MatTabGroup, matTabsAnimations, _MAT_INK_BAR_POSITIONER_FACTORY as ɵa23, MatTabBase as ɵf23, _MatTabMixinBase as ɵg23, MatTabHeaderBase as ɵb23, _MatTabHeaderMixinBase as ɵc23, MatTabLabelWrapperBase as ɵd23, _MatTabLabelWrapperMixinBase as ɵe23, MatTabLinkBase as ɵj23, MatTabNavBase as ɵh23, _MatTabLinkMixinBase as ɵk23, _MatTabNavMixinBase as ɵi23 };
2238
+ export { MatInkBar, _MAT_INK_BAR_POSITIONER, MatTabBody, MatTabBodyPortal, MatTabHeader, MatTabLabelWrapper, MatTab, MatTabLabel, MatTabNav, MatTabLink, MatTabContent, MatTabsModule, MatTabChangeEvent, MAT_TABS_CONFIG, MatTabGroupBase, _MatTabGroupMixinBase, MatTabGroup, matTabsAnimations, _MAT_INK_BAR_POSITIONER_FACTORY as ɵa23, MatTabBase as ɵf23, _MatTabMixinBase as ɵg23, MatTabHeaderBase as ɵb23, _MatTabHeaderMixinBase as ɵc23, MatTabLabelWrapperBase as ɵd23, _MatTabLabelWrapperMixinBase as ɵe23, MatTabLinkBase as ɵj23, MatTabNavBase as ɵh23, _MatTabLinkMixinBase as ɵk23, _MatTabNavMixinBase as ɵi23 };
2140
2239
  //# sourceMappingURL=tabs.es5.js.map