@angular/material 7.1.1 → 7.3.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 (469) hide show
  1. package/LICENSE +1 -1
  2. package/_theming.scss +32 -13
  3. package/autocomplete/typings/index.d.ts +0 -1
  4. package/autocomplete/typings/index.metadata.json +1 -1
  5. package/autocomplete/typings/public-api.d.ts +1 -0
  6. package/badge/typings/index.metadata.json +1 -1
  7. package/bottom-sheet/typings/bottom-sheet-ref.d.ts +2 -0
  8. package/bottom-sheet/typings/index.metadata.json +1 -1
  9. package/bundles/material-autocomplete.umd.js +18 -12
  10. package/bundles/material-autocomplete.umd.js.map +1 -1
  11. package/bundles/material-autocomplete.umd.min.js +1 -1
  12. package/bundles/material-autocomplete.umd.min.js.map +1 -1
  13. package/bundles/material-badge.umd.js +6 -0
  14. package/bundles/material-badge.umd.js.map +1 -1
  15. package/bundles/material-badge.umd.min.js +1 -1
  16. package/bundles/material-badge.umd.min.js.map +1 -1
  17. package/bundles/material-bottom-sheet.umd.js +12 -6
  18. package/bundles/material-bottom-sheet.umd.js.map +1 -1
  19. package/bundles/material-bottom-sheet.umd.min.js +1 -1
  20. package/bundles/material-bottom-sheet.umd.min.js.map +1 -1
  21. package/bundles/material-button-toggle.umd.js +10 -2
  22. package/bundles/material-button-toggle.umd.js.map +1 -1
  23. package/bundles/material-button-toggle.umd.min.js +1 -1
  24. package/bundles/material-button-toggle.umd.min.js.map +1 -1
  25. package/bundles/material-button.umd.js +8 -4
  26. package/bundles/material-button.umd.js.map +1 -1
  27. package/bundles/material-button.umd.min.js +1 -1
  28. package/bundles/material-button.umd.min.js.map +1 -1
  29. package/bundles/material-card.umd.js +1 -1
  30. package/bundles/material-card.umd.js.map +1 -1
  31. package/bundles/material-card.umd.min.js +1 -1
  32. package/bundles/material-card.umd.min.js.map +1 -1
  33. package/bundles/material-checkbox.umd.js +1 -1
  34. package/bundles/material-checkbox.umd.js.map +1 -1
  35. package/bundles/material-checkbox.umd.min.js +1 -1
  36. package/bundles/material-checkbox.umd.min.js.map +1 -1
  37. package/bundles/material-chips.umd.js +20 -28
  38. package/bundles/material-chips.umd.js.map +1 -1
  39. package/bundles/material-chips.umd.min.js +1 -1
  40. package/bundles/material-chips.umd.min.js.map +1 -1
  41. package/bundles/material-core.umd.js +6 -6
  42. package/bundles/material-core.umd.js.map +1 -1
  43. package/bundles/material-core.umd.min.js +1 -2
  44. package/bundles/material-core.umd.min.js.map +1 -1
  45. package/bundles/material-datepicker.umd.js +9 -6
  46. package/bundles/material-datepicker.umd.js.map +1 -1
  47. package/bundles/material-datepicker.umd.min.js +2 -2
  48. package/bundles/material-datepicker.umd.min.js.map +1 -1
  49. package/bundles/material-dialog.umd.js +41 -1
  50. package/bundles/material-dialog.umd.js.map +1 -1
  51. package/bundles/material-dialog.umd.min.js +1 -1
  52. package/bundles/material-dialog.umd.min.js.map +1 -1
  53. package/bundles/material-expansion.umd.js +21 -5
  54. package/bundles/material-expansion.umd.js.map +1 -1
  55. package/bundles/material-expansion.umd.min.js +1 -1
  56. package/bundles/material-expansion.umd.min.js.map +1 -1
  57. package/bundles/material-form-field.umd.js +68 -13
  58. package/bundles/material-form-field.umd.js.map +1 -1
  59. package/bundles/material-form-field.umd.min.js +1 -1
  60. package/bundles/material-form-field.umd.min.js.map +1 -1
  61. package/bundles/material-grid-list.umd.js +6 -4
  62. package/bundles/material-grid-list.umd.js.map +1 -1
  63. package/bundles/material-grid-list.umd.min.js +1 -1
  64. package/bundles/material-grid-list.umd.min.js.map +1 -1
  65. package/bundles/material-icon.umd.js +12 -0
  66. package/bundles/material-icon.umd.js.map +1 -1
  67. package/bundles/material-icon.umd.min.js +1 -1
  68. package/bundles/material-icon.umd.min.js.map +1 -1
  69. package/bundles/material-input.umd.js +8 -4
  70. package/bundles/material-input.umd.js.map +1 -1
  71. package/bundles/material-input.umd.min.js +1 -1
  72. package/bundles/material-input.umd.min.js.map +1 -1
  73. package/bundles/material-list.umd.js +98 -11
  74. package/bundles/material-list.umd.js.map +1 -1
  75. package/bundles/material-list.umd.min.js +2 -2
  76. package/bundles/material-list.umd.min.js.map +1 -1
  77. package/bundles/material-menu.umd.js +35 -20
  78. package/bundles/material-menu.umd.js.map +1 -1
  79. package/bundles/material-menu.umd.min.js +1 -1
  80. package/bundles/material-menu.umd.min.js.map +1 -1
  81. package/bundles/material-progress-bar.umd.js +2 -2
  82. package/bundles/material-progress-bar.umd.js.map +1 -1
  83. package/bundles/material-progress-bar.umd.min.js +1 -1
  84. package/bundles/material-progress-bar.umd.min.js.map +1 -1
  85. package/bundles/material-progress-spinner.umd.js +1 -1
  86. package/bundles/material-progress-spinner.umd.min.js +1 -1
  87. package/bundles/material-progress-spinner.umd.min.js.map +1 -1
  88. package/bundles/material-radio.umd.js +16 -37
  89. package/bundles/material-radio.umd.js.map +1 -1
  90. package/bundles/material-radio.umd.min.js +1 -1
  91. package/bundles/material-radio.umd.min.js.map +1 -1
  92. package/bundles/material-select.umd.js +13 -3
  93. package/bundles/material-select.umd.js.map +1 -1
  94. package/bundles/material-select.umd.min.js +1 -1
  95. package/bundles/material-select.umd.min.js.map +1 -1
  96. package/bundles/material-sidenav.umd.js +24 -5
  97. package/bundles/material-sidenav.umd.js.map +1 -1
  98. package/bundles/material-sidenav.umd.min.js +1 -1
  99. package/bundles/material-sidenav.umd.min.js.map +1 -1
  100. package/bundles/material-slide-toggle.umd.js +2 -2
  101. package/bundles/material-slide-toggle.umd.js.map +1 -1
  102. package/bundles/material-slide-toggle.umd.min.js +1 -1
  103. package/bundles/material-slide-toggle.umd.min.js.map +1 -1
  104. package/bundles/material-slider.umd.js +2 -2
  105. package/bundles/material-slider.umd.js.map +1 -1
  106. package/bundles/material-slider.umd.min.js +1 -1
  107. package/bundles/material-slider.umd.min.js.map +1 -1
  108. package/bundles/material-snack-bar.umd.js +2 -2
  109. package/bundles/material-snack-bar.umd.js.map +1 -1
  110. package/bundles/material-snack-bar.umd.min.js +1 -1
  111. package/bundles/material-snack-bar.umd.min.js.map +1 -1
  112. package/bundles/material-sort.umd.js +1 -1
  113. package/bundles/material-sort.umd.js.map +1 -1
  114. package/bundles/material-sort.umd.min.js +1 -1
  115. package/bundles/material-sort.umd.min.js.map +1 -1
  116. package/bundles/material-stepper.umd.js +26 -6
  117. package/bundles/material-stepper.umd.js.map +1 -1
  118. package/bundles/material-stepper.umd.min.js +1 -1
  119. package/bundles/material-stepper.umd.min.js.map +1 -1
  120. package/bundles/material-table.umd.js +20 -7
  121. package/bundles/material-table.umd.js.map +1 -1
  122. package/bundles/material-table.umd.min.js +1 -1
  123. package/bundles/material-table.umd.min.js.map +1 -1
  124. package/bundles/material-tabs.umd.js +214 -51
  125. package/bundles/material-tabs.umd.js.map +1 -1
  126. package/bundles/material-tabs.umd.min.js +2 -2
  127. package/bundles/material-tabs.umd.min.js.map +1 -1
  128. package/bundles/material-toolbar.umd.js +1 -1
  129. package/bundles/material-toolbar.umd.js.map +1 -1
  130. package/bundles/material-toolbar.umd.min.js +1 -1
  131. package/bundles/material-toolbar.umd.min.js.map +1 -1
  132. package/bundles/material-tooltip.umd.js +13 -1
  133. package/bundles/material-tooltip.umd.js.map +1 -1
  134. package/bundles/material-tooltip.umd.min.js +1 -1
  135. package/bundles/material-tooltip.umd.min.js.map +1 -1
  136. package/bundles/material-tree.umd.js +9 -7
  137. package/bundles/material-tree.umd.js.map +1 -1
  138. package/bundles/material-tree.umd.min.js +1 -1
  139. package/bundles/material-tree.umd.min.js.map +1 -1
  140. package/bundles/material.umd.js +715 -241
  141. package/bundles/material.umd.js.map +1 -1
  142. package/bundles/material.umd.min.js +19 -19
  143. package/bundles/material.umd.min.js.map +1 -1
  144. package/button/typings/button.d.ts +0 -5
  145. package/button/typings/index.metadata.json +1 -1
  146. package/button-toggle/typings/index.metadata.json +1 -1
  147. package/card/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 +5 -5
  151. package/chips/typings/index.metadata.json +1 -1
  152. package/core/typings/index.metadata.json +1 -1
  153. package/core/typings/ripple/ripple.d.ts +2 -2
  154. package/datepicker/typings/calendar.d.ts +2 -2
  155. package/datepicker/typings/index.metadata.json +1 -1
  156. package/dialog/typings/dialog-ref.d.ts +4 -0
  157. package/dialog/typings/index.metadata.json +1 -1
  158. package/esm2015/autocomplete.js +18 -12
  159. package/esm2015/autocomplete.js.map +1 -1
  160. package/esm2015/badge.js +6 -0
  161. package/esm2015/badge.js.map +1 -1
  162. package/esm2015/bottom-sheet.js +11 -5
  163. package/esm2015/bottom-sheet.js.map +1 -1
  164. package/esm2015/button-toggle.js +8 -1
  165. package/esm2015/button-toggle.js.map +1 -1
  166. package/esm2015/button.js +8 -4
  167. package/esm2015/button.js.map +1 -1
  168. package/esm2015/card.js +1 -1
  169. package/esm2015/card.js.map +1 -1
  170. package/esm2015/checkbox.js +1 -1
  171. package/esm2015/checkbox.js.map +1 -1
  172. package/esm2015/chips.js +19 -27
  173. package/esm2015/chips.js.map +1 -1
  174. package/esm2015/core.js +5 -5
  175. package/esm2015/core.js.map +1 -1
  176. package/esm2015/datepicker.js +7 -4
  177. package/esm2015/datepicker.js.map +1 -1
  178. package/esm2015/dialog.js +25 -1
  179. package/esm2015/dialog.js.map +1 -1
  180. package/esm2015/expansion.js +23 -6
  181. package/esm2015/expansion.js.map +1 -1
  182. package/esm2015/form-field.js +61 -13
  183. package/esm2015/form-field.js.map +1 -1
  184. package/esm2015/grid-list.js +5 -3
  185. package/esm2015/grid-list.js.map +1 -1
  186. package/esm2015/icon.js +9 -0
  187. package/esm2015/icon.js.map +1 -1
  188. package/esm2015/input.js +8 -4
  189. package/esm2015/input.js.map +1 -1
  190. package/esm2015/list.js +79 -8
  191. package/esm2015/list.js.map +1 -1
  192. package/esm2015/material.js +7 -7
  193. package/esm2015/material.js.map +1 -1
  194. package/esm2015/menu.js +26 -15
  195. package/esm2015/menu.js.map +1 -1
  196. package/esm2015/progress-bar.js +1 -1
  197. package/esm2015/progress-bar.js.map +1 -1
  198. package/esm2015/radio.js +6 -15
  199. package/esm2015/radio.js.map +1 -1
  200. package/esm2015/select.js +15 -4
  201. package/esm2015/select.js.map +1 -1
  202. package/esm2015/sidenav.js +26 -6
  203. package/esm2015/sidenav.js.map +1 -1
  204. package/esm2015/slide-toggle.js +1 -1
  205. package/esm2015/slide-toggle.js.map +1 -1
  206. package/esm2015/slider.js +4 -4
  207. package/esm2015/slider.js.map +1 -1
  208. package/esm2015/snack-bar.js +1 -1
  209. package/esm2015/snack-bar.js.map +1 -1
  210. package/esm2015/sort.js +1 -1
  211. package/esm2015/sort.js.map +1 -1
  212. package/esm2015/stepper.js +23 -7
  213. package/esm2015/stepper.js.map +1 -1
  214. package/esm2015/table.js +21 -8
  215. package/esm2015/table.js.map +1 -1
  216. package/esm2015/tabs.js +162 -43
  217. package/esm2015/tabs.js.map +1 -1
  218. package/esm2015/toolbar.js +1 -1
  219. package/esm2015/toolbar.js.map +1 -1
  220. package/esm2015/tooltip.js +10 -1
  221. package/esm2015/tooltip.js.map +1 -1
  222. package/esm2015/tree.js +9 -7
  223. package/esm2015/tree.js.map +1 -1
  224. package/esm5/autocomplete.es5.js +18 -12
  225. package/esm5/autocomplete.es5.js.map +1 -1
  226. package/esm5/badge.es5.js +6 -0
  227. package/esm5/badge.es5.js.map +1 -1
  228. package/esm5/bottom-sheet.es5.js +11 -5
  229. package/esm5/bottom-sheet.es5.js.map +1 -1
  230. package/esm5/button-toggle.es5.js +9 -1
  231. package/esm5/button-toggle.es5.js.map +1 -1
  232. package/esm5/button.es5.js +8 -4
  233. package/esm5/button.es5.js.map +1 -1
  234. package/esm5/card.es5.js +1 -1
  235. package/esm5/card.es5.js.map +1 -1
  236. package/esm5/checkbox.es5.js +1 -1
  237. package/esm5/checkbox.es5.js.map +1 -1
  238. package/esm5/chips.es5.js +21 -29
  239. package/esm5/chips.es5.js.map +1 -1
  240. package/esm5/core.es5.js +6 -6
  241. package/esm5/core.es5.js.map +1 -1
  242. package/esm5/datepicker.es5.js +9 -6
  243. package/esm5/datepicker.es5.js.map +1 -1
  244. package/esm5/dialog.es5.js +41 -1
  245. package/esm5/dialog.es5.js.map +1 -1
  246. package/esm5/expansion.es5.js +21 -6
  247. package/esm5/expansion.es5.js.map +1 -1
  248. package/esm5/form-field.es5.js +69 -14
  249. package/esm5/form-field.es5.js.map +1 -1
  250. package/esm5/grid-list.es5.js +5 -3
  251. package/esm5/grid-list.es5.js.map +1 -1
  252. package/esm5/icon.es5.js +12 -0
  253. package/esm5/icon.es5.js.map +1 -1
  254. package/esm5/input.es5.js +8 -4
  255. package/esm5/input.es5.js.map +1 -1
  256. package/esm5/list.es5.js +97 -9
  257. package/esm5/list.es5.js.map +1 -1
  258. package/esm5/material.es5.js +7 -7
  259. package/esm5/material.es5.js.map +1 -1
  260. package/esm5/menu.es5.js +30 -15
  261. package/esm5/menu.es5.js.map +1 -1
  262. package/esm5/progress-bar.es5.js +1 -1
  263. package/esm5/progress-bar.es5.js.map +1 -1
  264. package/esm5/radio.es5.js +18 -37
  265. package/esm5/radio.es5.js.map +1 -1
  266. package/esm5/select.es5.js +14 -4
  267. package/esm5/select.es5.js.map +1 -1
  268. package/esm5/sidenav.es5.js +25 -6
  269. package/esm5/sidenav.es5.js.map +1 -1
  270. package/esm5/slide-toggle.es5.js +1 -1
  271. package/esm5/slide-toggle.es5.js.map +1 -1
  272. package/esm5/slider.es5.js +3 -3
  273. package/esm5/slider.es5.js.map +1 -1
  274. package/esm5/snack-bar.es5.js +1 -1
  275. package/esm5/snack-bar.es5.js.map +1 -1
  276. package/esm5/sort.es5.js +1 -1
  277. package/esm5/sort.es5.js.map +1 -1
  278. package/esm5/stepper.es5.js +27 -7
  279. package/esm5/stepper.es5.js.map +1 -1
  280. package/esm5/table.es5.js +21 -8
  281. package/esm5/table.es5.js.map +1 -1
  282. package/esm5/tabs.es5.js +207 -44
  283. package/esm5/tabs.es5.js.map +1 -1
  284. package/esm5/toolbar.es5.js +1 -1
  285. package/esm5/toolbar.es5.js.map +1 -1
  286. package/esm5/tooltip.es5.js +13 -1
  287. package/esm5/tooltip.es5.js.map +1 -1
  288. package/esm5/tree.es5.js +9 -7
  289. package/esm5/tree.es5.js.map +1 -1
  290. package/expansion/typings/expansion-panel-header.d.ts +2 -2
  291. package/expansion/typings/expansion-panel.d.ts +19 -2
  292. package/expansion/typings/index.metadata.json +1 -1
  293. package/form-field/typings/form-field.d.ts +15 -4
  294. package/form-field/typings/index.metadata.json +1 -1
  295. package/form-field/typings/prefix.d.ts +1 -1
  296. package/grid-list/typings/index.d.ts +1 -1
  297. package/grid-list/typings/index.metadata.json +1 -1
  298. package/icon/typings/icon-registry.d.ts +3 -2
  299. package/icon/typings/index.metadata.json +1 -1
  300. package/list/typings/index.metadata.json +1 -1
  301. package/list/typings/list.d.ts +16 -5
  302. package/list/typings/selection-list.d.ts +1 -0
  303. package/menu/typings/index.d.ts +4 -4
  304. package/menu/typings/index.metadata.json +1 -1
  305. package/menu/typings/menu-directive.d.ts +1 -0
  306. package/menu/typings/menu-trigger.d.ts +1 -1
  307. package/package.json +5 -5
  308. package/prebuilt-themes/deeppurple-amber.css +1 -1
  309. package/prebuilt-themes/indigo-pink.css +1 -1
  310. package/prebuilt-themes/pink-bluegrey.css +1 -1
  311. package/prebuilt-themes/purple-green.css +1 -1
  312. package/progress-bar/typings/index.metadata.json +1 -1
  313. package/radio/typings/index.metadata.json +1 -1
  314. package/radio/typings/radio.d.ts +2 -6
  315. package/schematics/ng-add/theming/theming.js +10 -9
  316. package/schematics/ng-add/theming/theming.js.map +1 -1
  317. package/schematics/ng-generate/address-form/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.ts +2 -2
  318. package/schematics/ng-generate/dashboard/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.ts +2 -2
  319. package/schematics/ng-generate/nav/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.ts +2 -2
  320. package/schematics/ng-generate/table/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.ts +2 -2
  321. package/schematics/ng-generate/tree/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.ts +2 -2
  322. package/select/typings/index.metadata.json +1 -1
  323. package/select/typings/select.d.ts +12 -2
  324. package/sidenav/typings/drawer.d.ts +9 -2
  325. package/sidenav/typings/index.metadata.json +1 -1
  326. package/slide-toggle/typings/index.metadata.json +1 -1
  327. package/slider/typings/index.metadata.json +1 -1
  328. package/snack-bar/typings/index.metadata.json +1 -1
  329. package/sort/typings/index.metadata.json +1 -1
  330. package/stepper/typings/index.metadata.json +1 -1
  331. package/stepper/typings/step-header.d.ts +1 -0
  332. package/table/typings/index.metadata.json +1 -1
  333. package/table/typings/table-data-source.d.ts +2 -0
  334. package/tabs/typings/index.d.ts +5 -5
  335. package/tabs/typings/index.metadata.json +1 -1
  336. package/tabs/typings/tab-group.d.ts +2 -1
  337. package/tabs/typings/tab-header.d.ts +33 -6
  338. package/tabs/typings/tab-nav-bar/tab-nav-bar.d.ts +6 -6
  339. package/toolbar/typings/index.metadata.json +1 -1
  340. package/tooltip/typings/index.metadata.json +1 -1
  341. package/tooltip/typings/tooltip.d.ts +3 -1
  342. package/tree/typings/data-source/flat-data-source.d.ts +2 -2
  343. package/tree/typings/index.metadata.json +1 -1
  344. package/typings/autocomplete/index.d.ts +0 -1
  345. package/typings/autocomplete/index.metadata.json +1 -1
  346. package/typings/autocomplete/public-api.d.ts +1 -0
  347. package/typings/badge/index.metadata.json +1 -1
  348. package/typings/bottom-sheet/bottom-sheet-ref.d.ts +2 -0
  349. package/typings/bottom-sheet/index.metadata.json +1 -1
  350. package/typings/button/button.d.ts +0 -5
  351. package/typings/button/index.metadata.json +1 -1
  352. package/typings/button-toggle/index.metadata.json +1 -1
  353. package/typings/card/index.metadata.json +1 -1
  354. package/typings/checkbox/index.metadata.json +1 -1
  355. package/typings/chips/chip-list.d.ts +1 -1
  356. package/typings/chips/chip.d.ts +5 -5
  357. package/typings/chips/index.metadata.json +1 -1
  358. package/typings/core/index.metadata.json +1 -1
  359. package/typings/core/ripple/ripple.d.ts +2 -2
  360. package/typings/datepicker/calendar.d.ts +2 -2
  361. package/typings/datepicker/index.metadata.json +1 -1
  362. package/typings/dialog/dialog-ref.d.ts +4 -0
  363. package/typings/dialog/index.metadata.json +1 -1
  364. package/typings/esm5/autocomplete/index.d.ts +0 -1
  365. package/typings/esm5/autocomplete/index.metadata.json +1 -1
  366. package/typings/esm5/autocomplete/public-api.d.ts +1 -0
  367. package/typings/esm5/badge/index.metadata.json +1 -1
  368. package/typings/esm5/bottom-sheet/bottom-sheet-ref.d.ts +2 -0
  369. package/typings/esm5/bottom-sheet/index.metadata.json +1 -1
  370. package/typings/esm5/button/button.d.ts +0 -5
  371. package/typings/esm5/button/index.metadata.json +1 -1
  372. package/typings/esm5/button-toggle/index.metadata.json +1 -1
  373. package/typings/esm5/card/index.metadata.json +1 -1
  374. package/typings/esm5/checkbox/index.metadata.json +1 -1
  375. package/typings/esm5/chips/chip-list.d.ts +1 -1
  376. package/typings/esm5/chips/chip.d.ts +5 -5
  377. package/typings/esm5/chips/index.metadata.json +1 -1
  378. package/typings/esm5/core/index.metadata.json +1 -1
  379. package/typings/esm5/core/ripple/ripple.d.ts +2 -2
  380. package/typings/esm5/datepicker/calendar.d.ts +2 -2
  381. package/typings/esm5/datepicker/index.metadata.json +1 -1
  382. package/typings/esm5/dialog/dialog-ref.d.ts +4 -0
  383. package/typings/esm5/dialog/index.metadata.json +1 -1
  384. package/typings/esm5/expansion/expansion-panel-header.d.ts +2 -2
  385. package/typings/esm5/expansion/expansion-panel.d.ts +19 -2
  386. package/typings/esm5/expansion/index.metadata.json +1 -1
  387. package/typings/esm5/form-field/form-field.d.ts +15 -4
  388. package/typings/esm5/form-field/index.metadata.json +1 -1
  389. package/typings/esm5/form-field/prefix.d.ts +1 -1
  390. package/typings/esm5/grid-list/index.d.ts +1 -1
  391. package/typings/esm5/grid-list/index.metadata.json +1 -1
  392. package/typings/esm5/icon/icon-registry.d.ts +3 -2
  393. package/typings/esm5/icon/index.metadata.json +1 -1
  394. package/typings/esm5/index.metadata.json +1 -1
  395. package/typings/esm5/list/index.metadata.json +1 -1
  396. package/typings/esm5/list/list.d.ts +16 -5
  397. package/typings/esm5/list/selection-list.d.ts +1 -0
  398. package/typings/esm5/menu/index.d.ts +4 -4
  399. package/typings/esm5/menu/index.metadata.json +1 -1
  400. package/typings/esm5/menu/menu-directive.d.ts +1 -0
  401. package/typings/esm5/menu/menu-trigger.d.ts +1 -1
  402. package/typings/esm5/progress-bar/index.metadata.json +1 -1
  403. package/typings/esm5/radio/index.metadata.json +1 -1
  404. package/typings/esm5/radio/radio.d.ts +2 -6
  405. package/typings/esm5/select/index.metadata.json +1 -1
  406. package/typings/esm5/select/select.d.ts +12 -2
  407. package/typings/esm5/sidenav/drawer.d.ts +9 -2
  408. package/typings/esm5/sidenav/index.metadata.json +1 -1
  409. package/typings/esm5/slide-toggle/index.metadata.json +1 -1
  410. package/typings/esm5/slider/index.metadata.json +1 -1
  411. package/typings/esm5/snack-bar/index.metadata.json +1 -1
  412. package/typings/esm5/sort/index.metadata.json +1 -1
  413. package/typings/esm5/stepper/index.metadata.json +1 -1
  414. package/typings/esm5/stepper/step-header.d.ts +1 -0
  415. package/typings/esm5/table/index.metadata.json +1 -1
  416. package/typings/esm5/table/table-data-source.d.ts +2 -0
  417. package/typings/esm5/tabs/index.d.ts +5 -5
  418. package/typings/esm5/tabs/index.metadata.json +1 -1
  419. package/typings/esm5/tabs/tab-group.d.ts +2 -1
  420. package/typings/esm5/tabs/tab-header.d.ts +33 -6
  421. package/typings/esm5/tabs/tab-nav-bar/tab-nav-bar.d.ts +6 -6
  422. package/typings/esm5/toolbar/index.metadata.json +1 -1
  423. package/typings/esm5/tooltip/index.metadata.json +1 -1
  424. package/typings/esm5/tooltip/tooltip.d.ts +3 -1
  425. package/typings/esm5/tree/data-source/flat-data-source.d.ts +2 -2
  426. package/typings/esm5/tree/index.metadata.json +1 -1
  427. package/typings/expansion/expansion-panel-header.d.ts +2 -2
  428. package/typings/expansion/expansion-panel.d.ts +19 -2
  429. package/typings/expansion/index.metadata.json +1 -1
  430. package/typings/form-field/form-field.d.ts +15 -4
  431. package/typings/form-field/index.metadata.json +1 -1
  432. package/typings/form-field/prefix.d.ts +1 -1
  433. package/typings/grid-list/index.d.ts +1 -1
  434. package/typings/grid-list/index.metadata.json +1 -1
  435. package/typings/icon/icon-registry.d.ts +3 -2
  436. package/typings/icon/index.metadata.json +1 -1
  437. package/typings/index.metadata.json +1 -1
  438. package/typings/list/index.metadata.json +1 -1
  439. package/typings/list/list.d.ts +16 -5
  440. package/typings/list/selection-list.d.ts +1 -0
  441. package/typings/menu/index.d.ts +4 -4
  442. package/typings/menu/index.metadata.json +1 -1
  443. package/typings/menu/menu-directive.d.ts +1 -0
  444. package/typings/menu/menu-trigger.d.ts +1 -1
  445. package/typings/progress-bar/index.metadata.json +1 -1
  446. package/typings/radio/index.metadata.json +1 -1
  447. package/typings/radio/radio.d.ts +2 -6
  448. package/typings/select/index.metadata.json +1 -1
  449. package/typings/select/select.d.ts +12 -2
  450. package/typings/sidenav/drawer.d.ts +9 -2
  451. package/typings/sidenav/index.metadata.json +1 -1
  452. package/typings/slide-toggle/index.metadata.json +1 -1
  453. package/typings/slider/index.metadata.json +1 -1
  454. package/typings/snack-bar/index.metadata.json +1 -1
  455. package/typings/sort/index.metadata.json +1 -1
  456. package/typings/stepper/index.metadata.json +1 -1
  457. package/typings/stepper/step-header.d.ts +1 -0
  458. package/typings/table/index.metadata.json +1 -1
  459. package/typings/table/table-data-source.d.ts +2 -0
  460. package/typings/tabs/index.d.ts +5 -5
  461. package/typings/tabs/index.metadata.json +1 -1
  462. package/typings/tabs/tab-group.d.ts +2 -1
  463. package/typings/tabs/tab-header.d.ts +33 -6
  464. package/typings/tabs/tab-nav-bar/tab-nav-bar.d.ts +6 -6
  465. package/typings/toolbar/index.metadata.json +1 -1
  466. package/typings/tooltip/index.metadata.json +1 -1
  467. package/typings/tooltip/tooltip.d.ts +3 -1
  468. package/typings/tree/data-source/flat-data-source.d.ts +2 -2
  469. package/typings/tree/index.metadata.json +1 -1
package/esm5/tabs.es5.js CHANGED
@@ -9,15 +9,15 @@ import { Directive, ElementRef, Inject, InjectionToken, NgZone, TemplateRef, Cha
9
9
  import { __extends } from 'tslib';
10
10
  import { CdkPortal, TemplatePortal, CdkPortalOutlet, PortalHostDirective, PortalModule } from '@angular/cdk/portal';
11
11
  import { mixinDisabled, mixinDisableRipple, mixinColor, MAT_RIPPLE_GLOBAL_OPTIONS, mixinTabIndex, RippleRenderer, MatCommonModule, MatRippleModule } from '@angular/material/core';
12
- import { Subject, Subscription, merge, of } from 'rxjs';
12
+ import { Subject, Subscription, merge, of, timer, fromEvent } from 'rxjs';
13
13
  import { animate, state, style, transition, trigger } from '@angular/animations';
14
14
  import { Directionality } from '@angular/cdk/bidi';
15
15
  import { startWith, distinctUntilChanged, takeUntil } from 'rxjs/operators';
16
16
  import { coerceNumberProperty, coerceBooleanProperty } from '@angular/cdk/coercion';
17
- import { END, ENTER, HOME, SPACE } from '@angular/cdk/keycodes';
17
+ import { END, ENTER, HOME, SPACE, hasModifierKey } from '@angular/cdk/keycodes';
18
18
  import { ViewportRuler } from '@angular/cdk/scrolling';
19
19
  import { FocusKeyManager, FocusMonitor, A11yModule } from '@angular/cdk/a11y';
20
- import { Platform } from '@angular/cdk/platform';
20
+ import { Platform, normalizePassiveListenerOptions } from '@angular/cdk/platform';
21
21
  import { ObserversModule } from '@angular/cdk/observers';
22
22
  import { CommonModule } from '@angular/common';
23
23
 
@@ -731,12 +731,29 @@ var MatTabLabelWrapper = /** @class */ (function (_super) {
731
731
  * @fileoverview added by tsickle
732
732
  * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
733
733
  */
734
+ /**
735
+ * Config used to bind passive event listeners
736
+ * @type {?}
737
+ */
738
+ var passiveEventListenerOptions = (/** @type {?} */ (normalizePassiveListenerOptions({ passive: true })));
734
739
  /**
735
740
  * The distance in pixels that will be overshot when scrolling a tab label into view. This helps
736
741
  * provide a small affordance to the label next to it.
737
742
  * @type {?}
738
743
  */
739
744
  var EXAGGERATED_OVERSCROLL = 60;
745
+ /**
746
+ * Amount of milliseconds to wait before starting to scroll the header automatically.
747
+ * Set a little conservatively in order to handle fake events dispatched on touch devices.
748
+ * @type {?}
749
+ */
750
+ var HEADER_SCROLL_DELAY = 650;
751
+ /**
752
+ * Interval in milliseconds at which to scroll the header
753
+ * while the user is holding their pointer.
754
+ * @type {?}
755
+ */
756
+ var HEADER_SCROLL_INTERVAL = 100;
740
757
  // Boilerplate for applying mixins to MatTabHeader.
741
758
  /**
742
759
  * \@docs-private
@@ -762,13 +779,14 @@ var _MatTabHeaderMixinBase = mixinDisableRipple(MatTabHeaderBase);
762
779
  */
763
780
  var MatTabHeader = /** @class */ (function (_super) {
764
781
  __extends(MatTabHeader, _super);
765
- function MatTabHeader(_elementRef, _changeDetectorRef, _viewportRuler, _dir, _ngZone) {
782
+ function MatTabHeader(_elementRef, _changeDetectorRef, _viewportRuler, _dir, _ngZone, _platform) {
766
783
  var _this = _super.call(this) || this;
767
784
  _this._elementRef = _elementRef;
768
785
  _this._changeDetectorRef = _changeDetectorRef;
769
786
  _this._viewportRuler = _viewportRuler;
770
787
  _this._dir = _dir;
771
788
  _this._ngZone = _ngZone;
789
+ _this._platform = _platform;
772
790
  /**
773
791
  * The distance in pixels that the tab labels should be translated to the left.
774
792
  */
@@ -793,6 +811,10 @@ var MatTabHeader = /** @class */ (function (_super) {
793
811
  * Whether the tab list can be scrolled more towards the beginning of the tab label list.
794
812
  */
795
813
  _this._disableScrollBefore = true;
814
+ /**
815
+ * Stream that will stop the automated scrolling.
816
+ */
817
+ _this._stopScrolling = new Subject();
796
818
  _this._selectedIndex = 0;
797
819
  /**
798
820
  * Event emitted when the option is selected.
@@ -802,6 +824,24 @@ var MatTabHeader = /** @class */ (function (_super) {
802
824
  * Event emitted when a label is focused.
803
825
  */
804
826
  _this.indexFocused = new EventEmitter();
827
+ /** @type {?} */
828
+ var element = _elementRef.nativeElement;
829
+ /** @type {?} */
830
+ var bindEvent = function () {
831
+ fromEvent(element, 'mouseleave')
832
+ .pipe(takeUntil(_this._destroyed))
833
+ .subscribe(function () {
834
+ _this._stopInterval();
835
+ });
836
+ };
837
+ // @breaking-change 8.0.0 remove null check once _ngZone is made into a required parameter.
838
+ if (_ngZone) {
839
+ // Bind the `mouseleave` event on the outside since it doesn't change anything in the view.
840
+ _ngZone.runOutsideAngular(bindEvent);
841
+ }
842
+ else {
843
+ bindEvent();
844
+ }
805
845
  return _this;
806
846
  }
807
847
  Object.defineProperty(MatTabHeader.prototype, "selectedIndex", {
@@ -856,15 +896,22 @@ var MatTabHeader = /** @class */ (function (_super) {
856
896
  this._changeDetectorRef.markForCheck();
857
897
  }
858
898
  };
899
+ /** Handles keyboard events on the header. */
859
900
  /**
901
+ * Handles keyboard events on the header.
860
902
  * @param {?} event
861
903
  * @return {?}
862
904
  */
863
905
  MatTabHeader.prototype._handleKeydown = /**
906
+ * Handles keyboard events on the header.
864
907
  * @param {?} event
865
908
  * @return {?}
866
909
  */
867
910
  function (event) {
911
+ // We don't handle any key bindings with a modifier key.
912
+ if (hasModifierKey(event)) {
913
+ return;
914
+ }
868
915
  switch (event.keyCode) {
869
916
  case HOME:
870
917
  this._keyManager.setFirstItemActive();
@@ -926,6 +973,26 @@ var MatTabHeader = /** @class */ (function (_super) {
926
973
  _this._setTabFocus(newFocusIndex);
927
974
  });
928
975
  };
976
+ /**
977
+ * @return {?}
978
+ */
979
+ MatTabHeader.prototype.ngAfterViewInit = /**
980
+ * @return {?}
981
+ */
982
+ function () {
983
+ var _this = this;
984
+ // We need to handle these events manually, because we want to bind passive event listeners.
985
+ fromEvent(this._previousPaginator.nativeElement, 'touchstart', passiveEventListenerOptions)
986
+ .pipe(takeUntil(this._destroyed))
987
+ .subscribe(function () {
988
+ _this._handlePaginatorPress('before');
989
+ });
990
+ fromEvent(this._nextPaginator.nativeElement, 'touchstart', passiveEventListenerOptions)
991
+ .pipe(takeUntil(this._destroyed))
992
+ .subscribe(function () {
993
+ _this._handlePaginatorPress('after');
994
+ });
995
+ };
929
996
  /**
930
997
  * @return {?}
931
998
  */
@@ -935,6 +1002,7 @@ var MatTabHeader = /** @class */ (function (_super) {
935
1002
  function () {
936
1003
  this._destroyed.next();
937
1004
  this._destroyed.complete();
1005
+ this._stopScrolling.complete();
938
1006
  };
939
1007
  /**
940
1008
  * Callback for when the MutationObserver detects that the content has changed.
@@ -1106,6 +1174,8 @@ var MatTabHeader = /** @class */ (function (_super) {
1106
1174
  /** @type {?} */
1107
1175
  var scrollDistance = this.scrollDistance;
1108
1176
  /** @type {?} */
1177
+ var platform = this._platform;
1178
+ /** @type {?} */
1109
1179
  var translateX = this._getLayoutDirection() === 'ltr' ? -scrollDistance : scrollDistance;
1110
1180
  // Don't use `translate3d` here because we don't want to create a new layer. A new layer
1111
1181
  // seems to cause flickering and overflow in Internet Explorer. For example, the ink bar
@@ -1116,8 +1186,12 @@ var MatTabHeader = /** @class */ (function (_super) {
1116
1186
  this._tabList.nativeElement.style.transform = "translateX(" + Math.round(translateX) + "px)";
1117
1187
  // Setting the `transform` on IE will change the scroll offset of the parent, causing the
1118
1188
  // 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;
1189
+ // it doesn't get thrown off. Note that we scope it only to IE and Edge, because messing
1190
+ // with the scroll position throws off Chrome 71+ in RTL mode (see #14689).
1191
+ // @breaking-change 8.0.0 Remove null check for `platform`.
1192
+ if (platform && (platform.TRIDENT || platform.EDGE)) {
1193
+ this._tabListContainer.nativeElement.scrollLeft = 0;
1194
+ }
1121
1195
  };
1122
1196
  Object.defineProperty(MatTabHeader.prototype, "scrollDistance", {
1123
1197
  /** Sets the distance in pixels that the tab header should be transformed in the X-axis. */
@@ -1127,15 +1201,11 @@ var MatTabHeader = /** @class */ (function (_super) {
1127
1201
  */
1128
1202
  function () { return this._scrollDistance; },
1129
1203
  set: /**
1130
- * @param {?} v
1204
+ * @param {?} value
1131
1205
  * @return {?}
1132
1206
  */
1133
- function (v) {
1134
- this._scrollDistance = Math.max(0, Math.min(this._getMaxScrollDistance(), v));
1135
- // Mark that the scroll distance has changed so that after the view is checked, the CSS
1136
- // transformation can move the header.
1137
- this._scrollDistanceChanged = true;
1138
- this._checkScrollingControls();
1207
+ function (value) {
1208
+ this._scrollTo(value);
1139
1209
  },
1140
1210
  enumerable: true,
1141
1211
  configurable: true
@@ -1155,7 +1225,7 @@ var MatTabHeader = /** @class */ (function (_super) {
1155
1225
  *
1156
1226
  * This is an expensive call that forces a layout reflow to compute box and scroll metrics and
1157
1227
  * should be called sparingly.
1158
- * @param {?} scrollDir
1228
+ * @param {?} direction
1159
1229
  * @return {?}
1160
1230
  */
1161
1231
  MatTabHeader.prototype._scrollHeader = /**
@@ -1165,14 +1235,31 @@ var MatTabHeader = /** @class */ (function (_super) {
1165
1235
  *
1166
1236
  * This is an expensive call that forces a layout reflow to compute box and scroll metrics and
1167
1237
  * should be called sparingly.
1168
- * @param {?} scrollDir
1238
+ * @param {?} direction
1169
1239
  * @return {?}
1170
1240
  */
1171
- function (scrollDir) {
1241
+ function (direction) {
1172
1242
  /** @type {?} */
1173
1243
  var viewLength = this._tabListContainer.nativeElement.offsetWidth;
1174
1244
  // Move the scroll distance one-third the length of the tab list's viewport.
1175
- this.scrollDistance += (scrollDir == 'before' ? -1 : 1) * viewLength / 3;
1245
+ /** @type {?} */
1246
+ var scrollAmount = (direction == 'before' ? -1 : 1) * viewLength / 3;
1247
+ return this._scrollTo(this._scrollDistance + scrollAmount);
1248
+ };
1249
+ /** Handles click events on the pagination arrows. */
1250
+ /**
1251
+ * Handles click events on the pagination arrows.
1252
+ * @param {?} direction
1253
+ * @return {?}
1254
+ */
1255
+ MatTabHeader.prototype._handlePaginatorClick = /**
1256
+ * Handles click events on the pagination arrows.
1257
+ * @param {?} direction
1258
+ * @return {?}
1259
+ */
1260
+ function (direction) {
1261
+ this._stopInterval();
1262
+ this._scrollHeader(direction);
1176
1263
  };
1177
1264
  /**
1178
1265
  * Moves the tab list such that the desired tab label (marked by index) is moved into view.
@@ -1348,10 +1435,82 @@ var MatTabHeader = /** @class */ (function (_super) {
1348
1435
  null;
1349
1436
  this._inkBar.alignToElement((/** @type {?} */ (selectedLabelWrapper)));
1350
1437
  };
1438
+ /** Stops the currently-running paginator interval. */
1439
+ /**
1440
+ * Stops the currently-running paginator interval.
1441
+ * @return {?}
1442
+ */
1443
+ MatTabHeader.prototype._stopInterval = /**
1444
+ * Stops the currently-running paginator interval.
1445
+ * @return {?}
1446
+ */
1447
+ function () {
1448
+ this._stopScrolling.next();
1449
+ };
1450
+ /**
1451
+ * Handles the user pressing down on one of the paginators.
1452
+ * Starts scrolling the header after a certain amount of time.
1453
+ * @param direction In which direction the paginator should be scrolled.
1454
+ */
1455
+ /**
1456
+ * Handles the user pressing down on one of the paginators.
1457
+ * Starts scrolling the header after a certain amount of time.
1458
+ * @param {?} direction In which direction the paginator should be scrolled.
1459
+ * @return {?}
1460
+ */
1461
+ MatTabHeader.prototype._handlePaginatorPress = /**
1462
+ * Handles the user pressing down on one of the paginators.
1463
+ * Starts scrolling the header after a certain amount of time.
1464
+ * @param {?} direction In which direction the paginator should be scrolled.
1465
+ * @return {?}
1466
+ */
1467
+ function (direction) {
1468
+ var _this = this;
1469
+ // Avoid overlapping timers.
1470
+ this._stopInterval();
1471
+ // Start a timer after the delay and keep firing based on the interval.
1472
+ timer(HEADER_SCROLL_DELAY, HEADER_SCROLL_INTERVAL)
1473
+ // Keep the timer going until something tells it to stop or the component is destroyed.
1474
+ .pipe(takeUntil(merge(this._stopScrolling, this._destroyed)))
1475
+ .subscribe(function () {
1476
+ var _a = _this._scrollHeader(direction), maxScrollDistance = _a.maxScrollDistance, distance = _a.distance;
1477
+ // Stop the timer if we've reached the start or the end.
1478
+ if (distance === 0 || distance >= maxScrollDistance) {
1479
+ _this._stopInterval();
1480
+ }
1481
+ });
1482
+ };
1483
+ /**
1484
+ * Scrolls the header to a given position.
1485
+ * @param position Position to which to scroll.
1486
+ * @returns Information on the current scroll distance and the maximum.
1487
+ */
1488
+ /**
1489
+ * Scrolls the header to a given position.
1490
+ * @private
1491
+ * @param {?} position Position to which to scroll.
1492
+ * @return {?} Information on the current scroll distance and the maximum.
1493
+ */
1494
+ MatTabHeader.prototype._scrollTo = /**
1495
+ * Scrolls the header to a given position.
1496
+ * @private
1497
+ * @param {?} position Position to which to scroll.
1498
+ * @return {?} Information on the current scroll distance and the maximum.
1499
+ */
1500
+ function (position) {
1501
+ /** @type {?} */
1502
+ var maxScrollDistance = this._getMaxScrollDistance();
1503
+ this._scrollDistance = Math.max(0, Math.min(maxScrollDistance, position));
1504
+ // Mark that the scroll distance has changed so that after the view is checked, the CSS
1505
+ // transformation can move the header.
1506
+ this._scrollDistanceChanged = true;
1507
+ this._checkScrollingControls();
1508
+ return { maxScrollDistance: maxScrollDistance, distance: this._scrollDistance };
1509
+ };
1351
1510
  MatTabHeader.decorators = [
1352
1511
  { type: Component, args: [{selector: 'mat-tab-header',
1353
- template: "<div class=\"mat-tab-header-pagination mat-tab-header-pagination-before mat-elevation-z4\" aria-hidden=\"true\" mat-ripple [matRippleDisabled]=\"_disableScrollBefore || disableRipple\" [class.mat-tab-header-pagination-disabled]=\"_disableScrollBefore\" (click)=\"_scrollHeader('before')\"><div class=\"mat-tab-header-pagination-chevron\"></div></div><div class=\"mat-tab-label-container\" #tabListContainer (keydown)=\"_handleKeydown($event)\"><div class=\"mat-tab-list\" #tabList role=\"tablist\" (cdkObserveContent)=\"_onContentChanges()\"><div class=\"mat-tab-labels\"><ng-content></ng-content></div><mat-ink-bar></mat-ink-bar></div></div><div class=\"mat-tab-header-pagination mat-tab-header-pagination-after mat-elevation-z4\" aria-hidden=\"true\" mat-ripple [matRippleDisabled]=\"_disableScrollAfter || disableRipple\" [class.mat-tab-header-pagination-disabled]=\"_disableScrollAfter\" (click)=\"_scrollHeader('after')\"><div class=\"mat-tab-header-pagination-chevron\"></div></div>",
1354
- styles: [".mat-tab-header{display:flex;overflow:hidden;position:relative;flex-shrink:0}.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{min-width:72px}}.mat-ink-bar{position:absolute;bottom:0;height:2px;transition:.5s cubic-bezier(.35,0,.25,1)}.mat-tab-group-inverted-header .mat-ink-bar{bottom:auto;top:0}@media screen and (-ms-high-contrast:active){.mat-ink-bar{outline:solid 2px;height:0}}.mat-tab-header-pagination{position:relative;display:none;justify-content:center;align-items:center;min-width:32px;cursor:pointer;z-index:2}.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-pagination-after,.mat-tab-header-rtl .mat-tab-header-pagination-before{padding-right:4px}.mat-tab-header-pagination-after .mat-tab-header-pagination-chevron,.mat-tab-header-rtl .mat-tab-header-pagination-before .mat-tab-header-pagination-chevron{transform:rotate(45deg)}.mat-tab-header-pagination-chevron{border-style:solid;border-width:2px 2px 0 0;content:'';height:8px;width:8px}.mat-tab-header-pagination-disabled{box-shadow:none;cursor:default}.mat-tab-label-container{display:flex;flex-grow:1;overflow:hidden;z-index:1}.mat-tab-list{flex-grow:1;position:relative;transition:transform .5s cubic-bezier(.35,0,.25,1)}.mat-tab-labels{display:flex}[mat-align-tabs=center] .mat-tab-labels{justify-content:center}[mat-align-tabs=end] .mat-tab-labels{justify-content:flex-end}"],
1512
+ template: "<div class=\"mat-tab-header-pagination mat-tab-header-pagination-before mat-elevation-z4\" #previousPaginator aria-hidden=\"true\" mat-ripple [matRippleDisabled]=\"_disableScrollBefore || disableRipple\" [class.mat-tab-header-pagination-disabled]=\"_disableScrollBefore\" (click)=\"_handlePaginatorClick('before')\" (mousedown)=\"_handlePaginatorPress('before')\" (touchend)=\"_stopInterval()\"><div class=\"mat-tab-header-pagination-chevron\"></div></div><div class=\"mat-tab-label-container\" #tabListContainer (keydown)=\"_handleKeydown($event)\"><div class=\"mat-tab-list\" #tabList role=\"tablist\" (cdkObserveContent)=\"_onContentChanges()\"><div class=\"mat-tab-labels\"><ng-content></ng-content></div><mat-ink-bar></mat-ink-bar></div></div><div class=\"mat-tab-header-pagination mat-tab-header-pagination-after mat-elevation-z4\" #nextPaginator aria-hidden=\"true\" mat-ripple [matRippleDisabled]=\"_disableScrollAfter || disableRipple\" [class.mat-tab-header-pagination-disabled]=\"_disableScrollAfter\" (mousedown)=\"_handlePaginatorPress('after')\" (click)=\"_handlePaginatorClick('after')\" (touchend)=\"_stopInterval()\"><div class=\"mat-tab-header-pagination-chevron\"></div></div>",
1513
+ styles: [".mat-tab-header{display:flex;overflow:hidden;position:relative;flex-shrink:0}.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 (-ms-high-contrast:active){.mat-tab-label:focus{outline:dotted 2px}}.mat-tab-label.mat-tab-disabled{cursor:default}@media (-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 (-ms-high-contrast:active){.mat-tab-label{opacity:1}}@media (max-width:599px){.mat-tab-label{min-width:72px}}.mat-ink-bar{position:absolute;bottom:0;height:2px;transition:.5s cubic-bezier(.35,0,.25,1)}.mat-tab-group-inverted-header .mat-ink-bar{bottom:auto;top:0}@media (-ms-high-contrast:active){.mat-ink-bar{outline:solid 2px;height:0}}.mat-tab-header-pagination{-webkit-user-select:none;-moz-user-select:none;-ms-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}.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-pagination-after,.mat-tab-header-rtl .mat-tab-header-pagination-before{padding-right:4px}.mat-tab-header-pagination-after .mat-tab-header-pagination-chevron,.mat-tab-header-rtl .mat-tab-header-pagination-before .mat-tab-header-pagination-chevron{transform:rotate(45deg)}.mat-tab-header-pagination-chevron{border-style:solid;border-width:2px 2px 0 0;content:'';height:8px;width:8px}.mat-tab-header-pagination-disabled{box-shadow:none;cursor:default}.mat-tab-label-container{display:flex;flex-grow:1;overflow:hidden;z-index:1}.mat-tab-list{flex-grow:1;position:relative;transition:transform .5s cubic-bezier(.35,0,.25,1)}.mat-tab-labels{display:flex}[mat-align-tabs=center] .mat-tab-labels{justify-content:center}[mat-align-tabs=end] .mat-tab-labels{justify-content:flex-end}"],
1355
1514
  inputs: ['disableRipple'],
1356
1515
  encapsulation: ViewEncapsulation.None,
1357
1516
  changeDetection: ChangeDetectionStrategy.OnPush,
@@ -1368,13 +1527,16 @@ var MatTabHeader = /** @class */ (function (_super) {
1368
1527
  { type: ChangeDetectorRef },
1369
1528
  { type: ViewportRuler },
1370
1529
  { type: Directionality, decorators: [{ type: Optional }] },
1371
- { type: NgZone }
1530
+ { type: NgZone },
1531
+ { type: Platform }
1372
1532
  ]; };
1373
1533
  MatTabHeader.propDecorators = {
1374
1534
  _labelWrappers: [{ type: ContentChildren, args: [MatTabLabelWrapper,] }],
1375
1535
  _inkBar: [{ type: ViewChild, args: [MatInkBar,] }],
1376
1536
  _tabListContainer: [{ type: ViewChild, args: ['tabListContainer',] }],
1377
1537
  _tabList: [{ type: ViewChild, args: ['tabList',] }],
1538
+ _nextPaginator: [{ type: ViewChild, args: ['nextPaginator',] }],
1539
+ _previousPaginator: [{ type: ViewChild, args: ['previousPaginator',] }],
1378
1540
  selectedIndex: [{ type: Input }],
1379
1541
  selectFocusedIndex: [{ type: Output }],
1380
1542
  indexFocused: [{ type: Output }]
@@ -1509,6 +1671,23 @@ var MatTabGroup = /** @class */ (function (_super) {
1509
1671
  enumerable: true,
1510
1672
  configurable: true
1511
1673
  });
1674
+ Object.defineProperty(MatTabGroup.prototype, "animationDuration", {
1675
+ /** Duration for the tab animation. Will be normalized to milliseconds if no units are set. */
1676
+ get: /**
1677
+ * Duration for the tab animation. Will be normalized to milliseconds if no units are set.
1678
+ * @return {?}
1679
+ */
1680
+ function () { return this._animationDuration; },
1681
+ set: /**
1682
+ * @param {?} value
1683
+ * @return {?}
1684
+ */
1685
+ function (value) {
1686
+ this._animationDuration = /^\d+$/.test(value) ? value + 'ms' : value;
1687
+ },
1688
+ enumerable: true,
1689
+ configurable: true
1690
+ });
1512
1691
  Object.defineProperty(MatTabGroup.prototype, "backgroundColor", {
1513
1692
  /** Background color of the tab group. */
1514
1693
  get: /**
@@ -1840,7 +2019,7 @@ var MatTabGroup = /** @class */ (function (_super) {
1840
2019
  { type: Component, args: [{selector: 'mat-tab-group',
1841
2020
  exportAs: 'matTabGroup',
1842
2021
  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>",
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}"],
2022
+ 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 (-ms-high-contrast:active){.mat-tab-label:focus{outline:dotted 2px}}.mat-tab-label.mat-tab-disabled{cursor:default}@media (-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 (-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}"],
1844
2023
  encapsulation: ViewEncapsulation.None,
1845
2024
  changeDetection: ChangeDetectionStrategy.OnPush,
1846
2025
  inputs: ['color', 'disableRipple'],
@@ -2025,7 +2204,7 @@ var MatTabNav = /** @class */ (function (_super) {
2025
2204
  exportAs: 'matTabNavBar, matTabNav',
2026
2205
  inputs: ['color', 'disableRipple'],
2027
2206
  template: "<div class=\"mat-tab-links\" (cdkObserveContent)=\"_alignInkBar()\"><ng-content></ng-content><mat-ink-bar></mat-ink-bar></div>",
2028
- styles: [".mat-tab-nav-bar{overflow:hidden;position:relative;flex-shrink:0}.mat-tab-links{position:relative;display:flex}[mat-align-tabs=center] .mat-tab-links{justify-content:center}[mat-align-tabs=end] .mat-tab-links{justify-content:flex-end}.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:0}.mat-tab-link:focus:not(.mat-tab-disabled){opacity:1}@media screen and (-ms-high-contrast:active){.mat-tab-link:focus{outline:dotted 2px}}.mat-tab-link.mat-tab-disabled{cursor:default}@media screen and (-ms-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}@media screen and (-ms-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}}.mat-ink-bar{position:absolute;bottom:0;height:2px;transition:.5s cubic-bezier(.35,0,.25,1)}.mat-tab-group-inverted-header .mat-ink-bar{bottom:auto;top:0}@media screen and (-ms-high-contrast:active){.mat-ink-bar{outline:solid 2px;height:0}}"],
2207
+ styles: [".mat-tab-nav-bar{overflow:hidden;position:relative;flex-shrink:0}.mat-tab-links{position:relative;display:flex}[mat-align-tabs=center] .mat-tab-links{justify-content:center}[mat-align-tabs=end] .mat-tab-links{justify-content:flex-end}.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:0}.mat-tab-link:focus:not(.mat-tab-disabled){opacity:1}@media (-ms-high-contrast:active){.mat-tab-link:focus{outline:dotted 2px}}.mat-tab-link.mat-tab-disabled{cursor:default}@media (-ms-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}@media (-ms-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}}.mat-ink-bar{position:absolute;bottom:0;height:2px;transition:.5s cubic-bezier(.35,0,.25,1)}.mat-tab-group-inverted-header .mat-ink-bar{bottom:auto;top:0}@media (-ms-high-contrast:active){.mat-ink-bar{outline:solid 2px;height:0}}"],
2029
2208
  host: { 'class': 'mat-tab-nav-bar' },
2030
2209
  encapsulation: ViewEncapsulation.None,
2031
2210
  changeDetection: ChangeDetectionStrategy.OnPush,
@@ -2061,7 +2240,7 @@ var _MatTabLinkMixinBase = mixinTabIndex(mixinDisableRipple(mixinDisabled(MatTab
2061
2240
  */
2062
2241
  var MatTabLink = /** @class */ (function (_super) {
2063
2242
  __extends(MatTabLink, _super);
2064
- function MatTabLink(_tabNavBar, _elementRef, ngZone, platform, globalOptions, tabIndex, _focusMonitor) {
2243
+ function MatTabLink(_tabNavBar, _elementRef, ngZone, platform, globalRippleOptions, tabIndex, _focusMonitor) {
2065
2244
  var _this = _super.call(this) || this;
2066
2245
  _this._tabNavBar = _tabNavBar;
2067
2246
  _this._elementRef = _elementRef;
@@ -2070,26 +2249,10 @@ var MatTabLink = /** @class */ (function (_super) {
2070
2249
  * Whether the tab link is active or not.
2071
2250
  */
2072
2251
  _this._isActive = false;
2073
- /**
2074
- * Whether the ripples are globally disabled through the RippleGlobalOptions
2075
- */
2076
- _this._ripplesGloballyDisabled = false;
2077
- /**
2078
- * Ripple configuration for ripples that are launched on pointer down.
2079
- * \@docs-private
2080
- */
2081
- _this.rippleConfig = {};
2082
2252
  _this._tabLinkRipple = new RippleRenderer(_this, ngZone, _elementRef, platform);
2083
2253
  _this._tabLinkRipple.setupTriggerEvents(_elementRef.nativeElement);
2254
+ _this.rippleConfig = globalRippleOptions || {};
2084
2255
  _this.tabIndex = parseInt(tabIndex) || 0;
2085
- if (globalOptions) {
2086
- // TODO(paul): Do not copy each option manually. Allow dynamic global option changes: #9729
2087
- _this._ripplesGloballyDisabled = !!globalOptions.disabled;
2088
- _this.rippleConfig = {
2089
- terminateOnPointerUp: globalOptions.terminateOnPointerUp,
2090
- animation: globalOptions.animation,
2091
- };
2092
- }
2093
2256
  if (_focusMonitor) {
2094
2257
  _focusMonitor.monitor(_elementRef);
2095
2258
  }
@@ -2117,17 +2280,17 @@ var MatTabLink = /** @class */ (function (_super) {
2117
2280
  });
2118
2281
  Object.defineProperty(MatTabLink.prototype, "rippleDisabled", {
2119
2282
  /**
2120
- * Whether ripples are disabled on interaction
2283
+ * Whether ripples are disabled on interaction.
2121
2284
  * @docs-private
2122
2285
  */
2123
2286
  get: /**
2124
- * Whether ripples are disabled on interaction
2287
+ * Whether ripples are disabled on interaction.
2125
2288
  * \@docs-private
2126
2289
  * @return {?}
2127
2290
  */
2128
2291
  function () {
2129
2292
  return this.disabled || this.disableRipple || this._tabNavBar.disableRipple ||
2130
- this._ripplesGloballyDisabled;
2293
+ !!this.rippleConfig.disabled;
2131
2294
  },
2132
2295
  enumerable: true,
2133
2296
  configurable: true
@@ -2235,5 +2398,5 @@ var MatTabsModule = /** @class */ (function () {
2235
2398
  * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
2236
2399
  */
2237
2400
 
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 ɵa24, MatTabBase as ɵf24, _MatTabMixinBase as ɵg24, MatTabHeaderBase as ɵb24, _MatTabHeaderMixinBase as ɵc24, MatTabLabelWrapperBase as ɵd24, _MatTabLabelWrapperMixinBase as ɵe24, MatTabLinkBase as ɵj24, MatTabNavBase as ɵh24, _MatTabLinkMixinBase as ɵk24, _MatTabNavMixinBase as ɵi24 };
2401
+ 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 ɵa22, MatTabBase as ɵf22, _MatTabMixinBase as ɵg22, MatTabHeaderBase as ɵb22, _MatTabHeaderMixinBase as ɵc22, MatTabLabelWrapperBase as ɵd22, _MatTabLabelWrapperMixinBase as ɵe22, MatTabLinkBase as ɵj22, MatTabNavBase as ɵh22, _MatTabLinkMixinBase as ɵk22, _MatTabNavMixinBase as ɵi22 };
2239
2402
  //# sourceMappingURL=tabs.es5.js.map