@angular/material 2.0.0-alpha.9-3 → 2.0.0-beta.11

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 (1546) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +4 -145
  3. package/_theming.scss +3872 -0
  4. package/autocomplete/index.d.ts +8 -0
  5. package/autocomplete/index.metadata.json +11 -0
  6. package/autocomplete/package.json +7 -0
  7. package/autocomplete/typings/autocomplete-module.d.ts +2 -0
  8. package/autocomplete/typings/autocomplete-trigger.d.ts +159 -0
  9. package/autocomplete/typings/autocomplete.d.ts +55 -0
  10. package/autocomplete/typings/index.d.ts +4 -0
  11. package/autocomplete/typings/index.metadata.json +1 -0
  12. package/autocomplete/typings/mat-exports.d.ts +17 -0
  13. package/autocomplete/typings/public_api.d.ts +11 -0
  14. package/autocomplete.d.ts +8 -0
  15. package/autocomplete.metadata.json +11 -0
  16. package/bundles/material-autocomplete.umd.js +3293 -0
  17. package/bundles/material-autocomplete.umd.js.map +1 -0
  18. package/bundles/material-autocomplete.umd.min.js +10 -0
  19. package/bundles/material-autocomplete.umd.min.js.map +1 -0
  20. package/bundles/material-button-toggle.umd.js +2689 -0
  21. package/bundles/material-button-toggle.umd.js.map +1 -0
  22. package/bundles/material-button-toggle.umd.min.js +10 -0
  23. package/bundles/material-button-toggle.umd.min.js.map +1 -0
  24. package/bundles/material-button.umd.js +2503 -0
  25. package/bundles/material-button.umd.js.map +1 -0
  26. package/bundles/material-button.umd.min.js +10 -0
  27. package/bundles/material-button.umd.min.js.map +1 -0
  28. package/bundles/material-card.umd.js +2438 -0
  29. package/bundles/material-card.umd.js.map +1 -0
  30. package/bundles/material-card.umd.min.js +10 -0
  31. package/bundles/material-card.umd.min.js.map +1 -0
  32. package/bundles/material-checkbox.umd.js +2692 -0
  33. package/bundles/material-checkbox.umd.js.map +1 -0
  34. package/bundles/material-checkbox.umd.min.js +10 -0
  35. package/bundles/material-checkbox.umd.min.js.map +1 -0
  36. package/bundles/material-chips.umd.js +4121 -0
  37. package/bundles/material-chips.umd.js.map +1 -0
  38. package/bundles/material-chips.umd.min.js +11 -0
  39. package/bundles/material-chips.umd.min.js.map +1 -0
  40. package/bundles/material-core.umd.js +2505 -0
  41. package/bundles/material-core.umd.js.map +1 -0
  42. package/bundles/material-core.umd.min.js +10 -0
  43. package/bundles/material-core.umd.min.js.map +1 -0
  44. package/bundles/material-datepicker.umd.js +6568 -0
  45. package/bundles/material-datepicker.umd.js.map +1 -0
  46. package/bundles/material-datepicker.umd.min.js +12 -0
  47. package/bundles/material-datepicker.umd.min.js.map +1 -0
  48. package/bundles/material-dialog.umd.js +2980 -0
  49. package/bundles/material-dialog.umd.js.map +1 -0
  50. package/bundles/material-dialog.umd.min.js +10 -0
  51. package/bundles/material-dialog.umd.min.js.map +1 -0
  52. package/bundles/material-examples.umd.js +3627 -0
  53. package/bundles/material-examples.umd.js.map +1 -0
  54. package/bundles/material-examples.umd.min.js +12 -0
  55. package/bundles/material-examples.umd.min.js.map +1 -0
  56. package/bundles/material-expansion.umd.js +2678 -0
  57. package/bundles/material-expansion.umd.js.map +1 -0
  58. package/bundles/material-expansion.umd.min.js +10 -0
  59. package/bundles/material-expansion.umd.min.js.map +1 -0
  60. package/bundles/material-form-field.umd.js +2629 -0
  61. package/bundles/material-form-field.umd.js.map +1 -0
  62. package/bundles/material-form-field.umd.min.js +10 -0
  63. package/bundles/material-form-field.umd.min.js.map +1 -0
  64. package/bundles/material-grid-list.umd.js +3000 -0
  65. package/bundles/material-grid-list.umd.js.map +1 -0
  66. package/bundles/material-grid-list.umd.min.js +10 -0
  67. package/bundles/material-grid-list.umd.min.js.map +1 -0
  68. package/bundles/material-icon.umd.js +2862 -0
  69. package/bundles/material-icon.umd.js.map +1 -0
  70. package/bundles/material-icon.umd.min.js +10 -0
  71. package/bundles/material-icon.umd.min.js.map +1 -0
  72. package/bundles/material-input.umd.js +3214 -0
  73. package/bundles/material-input.umd.js.map +1 -0
  74. package/bundles/material-input.umd.min.js +10 -0
  75. package/bundles/material-input.umd.min.js.map +1 -0
  76. package/bundles/material-list.umd.js +2908 -0
  77. package/bundles/material-list.umd.js.map +1 -0
  78. package/bundles/material-list.umd.min.js +11 -0
  79. package/bundles/material-list.umd.min.js.map +1 -0
  80. package/bundles/material-menu.umd.js +3016 -0
  81. package/bundles/material-menu.umd.js.map +1 -0
  82. package/bundles/material-menu.umd.min.js +10 -0
  83. package/bundles/material-menu.umd.min.js.map +1 -0
  84. package/bundles/material-paginator.umd.js +4990 -0
  85. package/bundles/material-paginator.umd.js.map +1 -0
  86. package/bundles/material-paginator.umd.min.js +11 -0
  87. package/bundles/material-paginator.umd.min.js.map +1 -0
  88. package/bundles/material-progress-bar.umd.js +2204 -0
  89. package/bundles/material-progress-bar.umd.js.map +1 -0
  90. package/bundles/material-progress-bar.umd.min.js +10 -0
  91. package/bundles/material-progress-bar.umd.min.js.map +1 -0
  92. package/bundles/material-progress-spinner.umd.js +2594 -0
  93. package/bundles/material-progress-spinner.umd.js.map +1 -0
  94. package/bundles/material-progress-spinner.umd.min.js +10 -0
  95. package/bundles/material-progress-spinner.umd.min.js.map +1 -0
  96. package/bundles/material-radio.umd.js +2936 -0
  97. package/bundles/material-radio.umd.js.map +1 -0
  98. package/bundles/material-radio.umd.min.js +10 -0
  99. package/bundles/material-radio.umd.min.js.map +1 -0
  100. package/bundles/material-select.umd.js +3611 -0
  101. package/bundles/material-select.umd.js.map +1 -0
  102. package/bundles/material-select.umd.min.js +10 -0
  103. package/bundles/material-select.umd.min.js.map +1 -0
  104. package/bundles/material-sidenav.umd.js +2781 -0
  105. package/bundles/material-sidenav.umd.js.map +1 -0
  106. package/bundles/material-sidenav.umd.min.js +10 -0
  107. package/bundles/material-sidenav.umd.min.js.map +1 -0
  108. package/bundles/material-slide-toggle.umd.js +2657 -0
  109. package/bundles/material-slide-toggle.umd.js.map +1 -0
  110. package/bundles/material-slide-toggle.umd.min.js +10 -0
  111. package/bundles/material-slide-toggle.umd.min.js.map +1 -0
  112. package/bundles/material-slider.umd.js +3043 -0
  113. package/bundles/material-slider.umd.js.map +1 -0
  114. package/bundles/material-slider.umd.min.js +10 -0
  115. package/bundles/material-slider.umd.min.js.map +1 -0
  116. package/bundles/material-snack-bar.umd.js +2717 -0
  117. package/bundles/material-snack-bar.umd.js.map +1 -0
  118. package/bundles/material-snack-bar.umd.min.js +10 -0
  119. package/bundles/material-snack-bar.umd.min.js.map +1 -0
  120. package/bundles/material-sort.umd.js +2479 -0
  121. package/bundles/material-sort.umd.js.map +1 -0
  122. package/bundles/material-sort.umd.min.js +10 -0
  123. package/bundles/material-sort.umd.min.js.map +1 -0
  124. package/bundles/material-stepper.umd.js +3598 -0
  125. package/bundles/material-stepper.umd.js.map +1 -0
  126. package/bundles/material-stepper.umd.min.js +11 -0
  127. package/bundles/material-stepper.umd.min.js.map +1 -0
  128. package/bundles/material-table.umd.js +2458 -0
  129. package/bundles/material-table.umd.js.map +1 -0
  130. package/bundles/material-table.umd.min.js +10 -0
  131. package/bundles/material-table.umd.min.js.map +1 -0
  132. package/bundles/material-tabs.umd.js +3742 -0
  133. package/bundles/material-tabs.umd.js.map +1 -0
  134. package/bundles/material-tabs.umd.min.js +10 -0
  135. package/bundles/material-tabs.umd.min.js.map +1 -0
  136. package/bundles/material-toolbar.umd.js +2211 -0
  137. package/bundles/material-toolbar.umd.js.map +1 -0
  138. package/bundles/material-toolbar.umd.min.js +9 -0
  139. package/bundles/material-toolbar.umd.min.js.map +1 -0
  140. package/bundles/material-tooltip.umd.js +2821 -0
  141. package/bundles/material-tooltip.umd.js.map +1 -0
  142. package/bundles/material-tooltip.umd.min.js +10 -0
  143. package/bundles/material-tooltip.umd.min.js.map +1 -0
  144. package/bundles/material.umd.js +23785 -0
  145. package/bundles/material.umd.js.map +1 -0
  146. package/bundles/material.umd.min.js +23 -0
  147. package/bundles/material.umd.min.js.map +1 -0
  148. package/button/index.d.ts +8 -1
  149. package/button/index.metadata.json +11 -1
  150. package/button/package.json +7 -0
  151. package/button/typings/button-module.d.ts +2 -0
  152. package/button/typings/button.d.ts +80 -0
  153. package/button/typings/index.d.ts +4 -0
  154. package/button/typings/index.metadata.json +1 -0
  155. package/button/typings/mat-exports.d.ts +18 -0
  156. package/button/typings/public_api.d.ts +10 -0
  157. package/button-toggle/index.d.ts +8 -1
  158. package/button-toggle/index.metadata.json +11 -1
  159. package/button-toggle/package.json +7 -0
  160. package/button-toggle/typings/button-toggle-module.d.ts +2 -0
  161. package/button-toggle/typings/button-toggle.d.ts +156 -0
  162. package/button-toggle/typings/index.d.ts +4 -0
  163. package/button-toggle/typings/index.metadata.json +1 -0
  164. package/button-toggle/typings/mat-exports.d.ts +16 -0
  165. package/button-toggle/typings/public_api.d.ts +10 -0
  166. package/button-toggle.d.ts +8 -0
  167. package/button-toggle.metadata.json +11 -0
  168. package/button.d.ts +8 -0
  169. package/button.metadata.json +11 -0
  170. package/card/index.d.ts +8 -1
  171. package/card/index.metadata.json +11 -1
  172. package/card/package.json +7 -0
  173. package/card/typings/card-module.d.ts +2 -0
  174. package/card/typings/card.d.ts +95 -0
  175. package/card/typings/index.d.ts +4 -0
  176. package/card/typings/index.metadata.json +1 -0
  177. package/card/typings/mat-exports.d.ts +24 -0
  178. package/card/typings/public_api.d.ts +10 -0
  179. package/card.d.ts +8 -0
  180. package/card.metadata.json +11 -0
  181. package/checkbox/index.d.ts +8 -1
  182. package/checkbox/index.metadata.json +11 -1
  183. package/checkbox/package.json +7 -0
  184. package/checkbox/typings/checkbox-module.d.ts +2 -0
  185. package/checkbox/typings/checkbox-required-validator.d.ts +18 -0
  186. package/checkbox/typings/checkbox.d.ts +159 -0
  187. package/checkbox/typings/index.d.ts +4 -0
  188. package/checkbox/typings/index.metadata.json +1 -0
  189. package/checkbox/typings/mat-exports.d.ts +17 -0
  190. package/checkbox/typings/public_api.d.ts +11 -0
  191. package/checkbox.d.ts +8 -0
  192. package/checkbox.metadata.json +11 -0
  193. package/chips/index.d.ts +8 -0
  194. package/chips/index.metadata.json +11 -0
  195. package/chips/package.json +7 -0
  196. package/chips/typings/chip-input.d.ts +54 -0
  197. package/chips/typings/chip-list.d.ts +219 -0
  198. package/chips/typings/chip.d.ts +123 -0
  199. package/chips/typings/chips-module.d.ts +2 -0
  200. package/chips/typings/index.d.ts +4 -0
  201. package/chips/typings/index.metadata.json +1 -0
  202. package/chips/typings/mat-exports.d.ts +21 -0
  203. package/chips/typings/public_api.d.ts +12 -0
  204. package/chips.d.ts +8 -0
  205. package/chips.metadata.json +11 -0
  206. package/core/index.d.ts +8 -1
  207. package/core/index.metadata.json +11 -1
  208. package/core/package.json +7 -0
  209. package/core/typings/a11y/index.d.ts +8 -0
  210. package/core/typings/animation/animation.d.ts +20 -0
  211. package/core/typings/bidi/index.d.ts +8 -0
  212. package/core/typings/common-behaviors/color.d.ts +22 -0
  213. package/core/typings/common-behaviors/common-module.d.ts +24 -0
  214. package/core/typings/common-behaviors/constructor.d.ts +9 -0
  215. package/core/typings/common-behaviors/disable-ripple.d.ts +7 -0
  216. package/core/typings/common-behaviors/disabled.d.ts +7 -0
  217. package/core/typings/common-behaviors/index.d.ts +12 -0
  218. package/core/typings/common-behaviors/tabindex.d.ts +15 -0
  219. package/core/typings/compatibility/compatibility.d.ts +40 -0
  220. package/core/typings/coordination/unique-selection-dispatcher.d.ts +40 -0
  221. package/core/typings/datetime/date-adapter.d.ts +198 -0
  222. package/core/typings/datetime/date-formats.d.ts +20 -0
  223. package/core/typings/datetime/index.d.ts +8 -0
  224. package/core/typings/datetime/native-date-adapter.d.ts +50 -0
  225. package/core/typings/datetime/native-date-formats.d.ts +9 -0
  226. package/core/typings/error/error-options.d.ts +19 -0
  227. package/core/typings/gestures/gesture-annotations.d.ts +51 -0
  228. package/core/typings/gestures/gesture-config.d.ts +23 -0
  229. package/core/typings/index.d.ts +5 -0
  230. package/core/typings/index.metadata.json +1 -0
  231. package/core/typings/keyboard/keycodes.d.ts +8 -0
  232. package/core/typings/line/line.d.ts +30 -0
  233. package/core/typings/mat-exports.d.ts +36 -0
  234. package/core/typings/option/index.d.ts +4 -0
  235. package/core/typings/option/optgroup.d.ts +14 -0
  236. package/core/typings/option/option.d.ts +97 -0
  237. package/core/typings/overlay/index.d.ts +8 -0
  238. package/core/typings/placeholder/placeholder-options.d.ts +15 -0
  239. package/core/typings/platform/features.d.ts +8 -0
  240. package/core/typings/platform/index.d.ts +10 -0
  241. package/core/typings/platform/platform.d.ts +8 -0
  242. package/core/typings/portal/dom-portal-host.d.ts +8 -0
  243. package/core/typings/portal/portal-directives.d.ts +8 -0
  244. package/core/typings/portal/portal-injector.d.ts +19 -0
  245. package/core/typings/portal/portal.d.ts +8 -0
  246. package/core/typings/public_api.d.ts +34 -0
  247. package/core/typings/ripple/index.d.ts +5 -0
  248. package/core/typings/ripple/ripple-ref.d.ts +28 -0
  249. package/core/typings/ripple/ripple-renderer.d.ts +64 -0
  250. package/core/typings/ripple/ripple.d.ts +73 -0
  251. package/core/typings/rxjs/index.d.ts +9 -0
  252. package/core/typings/rxjs/rx-chain.d.ts +8 -0
  253. package/core/typings/rxjs/rx-operators.d.ts +8 -0
  254. package/core/typings/selection/index.d.ts +3 -0
  255. package/core/typings/selection/pseudo-checkbox/pseudo-checkbox.d.ts +20 -0
  256. package/core/typings/style/apply-transform.d.ts +13 -0
  257. package/core/typings/style/index.d.ts +5 -0
  258. package/core/typings/testing/month-constants.d.ts +12 -0
  259. package/core/typings/util/object-extend.d.ts +15 -0
  260. package/core.d.ts +7 -0
  261. package/core.metadata.json +11 -1
  262. package/datepicker/index.d.ts +8 -0
  263. package/datepicker/index.metadata.json +11 -0
  264. package/datepicker/package.json +7 -0
  265. package/datepicker/typings/calendar-body.d.ts +52 -0
  266. package/datepicker/typings/calendar.d.ts +90 -0
  267. package/datepicker/typings/coerce-date-property.d.ts +19 -0
  268. package/datepicker/typings/datepicker-errors.d.ts +9 -0
  269. package/datepicker/typings/datepicker-input.d.ts +94 -0
  270. package/datepicker/typings/datepicker-intl.d.ts +25 -0
  271. package/datepicker/typings/datepicker-module.d.ts +2 -0
  272. package/datepicker/typings/datepicker-toggle.d.ts +24 -0
  273. package/datepicker/typings/datepicker.d.ts +117 -0
  274. package/datepicker/typings/index.d.ts +4 -0
  275. package/datepicker/typings/index.metadata.json +1 -0
  276. package/datepicker/typings/mat-exports.d.ts +33 -0
  277. package/datepicker/typings/month-view.d.ts +65 -0
  278. package/datepicker/typings/public_api.d.ts +18 -0
  279. package/datepicker/typings/year-view.d.ts +54 -0
  280. package/datepicker.d.ts +8 -0
  281. package/datepicker.metadata.json +11 -0
  282. package/dialog/index.d.ts +8 -4
  283. package/dialog/index.metadata.json +11 -1
  284. package/dialog/package.json +7 -0
  285. package/dialog/typings/dialog-config.d.ts +54 -0
  286. package/dialog/typings/dialog-container.d.ts +68 -0
  287. package/dialog/typings/dialog-content-directives.d.ts +45 -0
  288. package/dialog/typings/dialog-module.d.ts +2 -0
  289. package/dialog/typings/dialog-ref.d.ts +68 -0
  290. package/dialog/typings/dialog.d.ts +108 -0
  291. package/dialog/typings/index.d.ts +4 -0
  292. package/dialog/typings/index.metadata.json +1 -0
  293. package/dialog/typings/mat-exports.d.ts +26 -0
  294. package/dialog/typings/public_api.d.ts +14 -0
  295. package/dialog.d.ts +8 -0
  296. package/dialog.metadata.json +11 -0
  297. package/esm2015/autocomplete.js +661 -0
  298. package/esm2015/autocomplete.js.map +1 -0
  299. package/esm2015/button-toggle.js +567 -0
  300. package/esm2015/button-toggle.js.map +1 -0
  301. package/esm2015/button.js +323 -0
  302. package/esm2015/button.js.map +1 -0
  303. package/esm2015/card.js +312 -0
  304. package/esm2015/card.js.map +1 -0
  305. package/esm2015/checkbox.js +504 -0
  306. package/esm2015/checkbox.js.map +1 -0
  307. package/esm2015/chips.js +1332 -0
  308. package/esm2015/chips.js.map +1 -0
  309. package/esm2015/core.js +2316 -0
  310. package/esm2015/core.js.map +1 -0
  311. package/esm2015/datepicker.js +1808 -0
  312. package/esm2015/datepicker.js.map +1 -0
  313. package/esm2015/dialog.js +849 -0
  314. package/esm2015/dialog.js.map +1 -0
  315. package/esm2015/expansion.js +581 -0
  316. package/esm2015/expansion.js.map +1 -0
  317. package/esm2015/form-field.js +522 -0
  318. package/esm2015/form-field.js.map +1 -0
  319. package/esm2015/grid-list.js +825 -0
  320. package/esm2015/grid-list.js.map +1 -0
  321. package/esm2015/icon.js +733 -0
  322. package/esm2015/icon.js.map +1 -0
  323. package/esm2015/input.js +568 -0
  324. package/esm2015/input.js.map +1 -0
  325. package/esm2015/list.js +666 -0
  326. package/esm2015/list.js.map +1 -0
  327. package/esm2015/material.js +51 -0
  328. package/esm2015/material.js.map +1 -0
  329. package/esm2015/menu.js +917 -0
  330. package/esm2015/menu.js.map +1 -0
  331. package/esm2015/paginator.js +304 -0
  332. package/esm2015/paginator.js.map +1 -0
  333. package/esm2015/progress-bar.js +132 -0
  334. package/esm2015/progress-bar.js.map +1 -0
  335. package/esm2015/progress-spinner.js +438 -0
  336. package/esm2015/progress-spinner.js.map +1 -0
  337. package/esm2015/radio.js +707 -0
  338. package/esm2015/radio.js.map +1 -0
  339. package/esm2015/select.js +1378 -0
  340. package/esm2015/select.js.map +1 -0
  341. package/esm2015/sidenav.js +666 -0
  342. package/esm2015/sidenav.js.map +1 -0
  343. package/esm2015/slide-toggle.js +429 -0
  344. package/esm2015/slide-toggle.js.map +1 -0
  345. package/esm2015/slider.js +833 -0
  346. package/esm2015/slider.js.map +1 -0
  347. package/esm2015/snack-bar.js +606 -0
  348. package/esm2015/snack-bar.js.map +1 -0
  349. package/esm2015/sort.js +387 -0
  350. package/esm2015/sort.js.map +1 -0
  351. package/esm2015/stepper.js +330 -0
  352. package/esm2015/stepper.js.map +1 -0
  353. package/esm2015/table.js +312 -0
  354. package/esm2015/table.js.map +1 -0
  355. package/esm2015/tabs.js +1477 -0
  356. package/esm2015/tabs.js.map +1 -0
  357. package/esm2015/toolbar.js +88 -0
  358. package/esm2015/toolbar.js.map +1 -0
  359. package/esm2015/tooltip.js +701 -0
  360. package/esm2015/tooltip.js.map +1 -0
  361. package/esm5/autocomplete.es5.js +691 -0
  362. package/esm5/autocomplete.es5.js.map +1 -0
  363. package/esm5/button-toggle.es5.js +619 -0
  364. package/esm5/button-toggle.es5.js.map +1 -0
  365. package/esm5/button.es5.js +341 -0
  366. package/esm5/button.es5.js.map +1 -0
  367. package/esm5/card.es5.js +349 -0
  368. package/esm5/card.es5.js.map +1 -0
  369. package/esm5/checkbox.es5.js +534 -0
  370. package/esm5/checkbox.es5.js.map +1 -0
  371. package/esm5/chips.es5.js +1466 -0
  372. package/esm5/chips.es5.js.map +1 -0
  373. package/esm5/core.es5.js +2316 -0
  374. package/esm5/core.es5.js.map +1 -0
  375. package/esm5/datepicker.es5.js +1936 -0
  376. package/esm5/datepicker.es5.js.map +1 -0
  377. package/esm5/dialog.es5.js +877 -0
  378. package/esm5/dialog.es5.js.map +1 -0
  379. package/esm5/expansion.es5.js +608 -0
  380. package/esm5/expansion.es5.js.map +1 -0
  381. package/esm5/form-field.es5.js +556 -0
  382. package/esm5/form-field.es5.js.map +1 -0
  383. package/esm5/grid-list.es5.js +877 -0
  384. package/esm5/grid-list.es5.js.map +1 -0
  385. package/esm5/icon.es5.js +746 -0
  386. package/esm5/icon.es5.js.map +1 -0
  387. package/esm5/input.es5.js +606 -0
  388. package/esm5/input.es5.js.map +1 -0
  389. package/esm5/list.es5.js +726 -0
  390. package/esm5/list.es5.js.map +1 -0
  391. package/esm5/material.es5.js +48 -0
  392. package/esm5/material.es5.js.map +1 -0
  393. package/esm5/menu.es5.js +953 -0
  394. package/esm5/menu.es5.js.map +1 -0
  395. package/esm5/paginator.es5.js +324 -0
  396. package/esm5/paginator.es5.js.map +1 -0
  397. package/esm5/progress-bar.es5.js +142 -0
  398. package/esm5/progress-bar.es5.js.map +1 -0
  399. package/esm5/progress-spinner.es5.js +474 -0
  400. package/esm5/progress-spinner.es5.js.map +1 -0
  401. package/esm5/radio.es5.js +779 -0
  402. package/esm5/radio.es5.js.map +1 -0
  403. package/esm5/select.es5.js +1444 -0
  404. package/esm5/select.es5.js.map +1 -0
  405. package/esm5/sidenav.es5.js +719 -0
  406. package/esm5/sidenav.es5.js.map +1 -0
  407. package/esm5/slide-toggle.es5.js +451 -0
  408. package/esm5/slide-toggle.es5.js.map +1 -0
  409. package/esm5/slider.es5.js +932 -0
  410. package/esm5/slider.es5.js.map +1 -0
  411. package/esm5/snack-bar.es5.js +623 -0
  412. package/esm5/snack-bar.es5.js.map +1 -0
  413. package/esm5/sort.es5.js +418 -0
  414. package/esm5/sort.es5.js.map +1 -0
  415. package/esm5/stepper.es5.js +376 -0
  416. package/esm5/stepper.es5.js.map +1 -0
  417. package/esm5/table.es5.js +370 -0
  418. package/esm5/table.es5.js.map +1 -0
  419. package/esm5/tabs.es5.js +1576 -0
  420. package/esm5/tabs.es5.js.map +1 -0
  421. package/esm5/toolbar.es5.js +94 -0
  422. package/esm5/toolbar.es5.js.map +1 -0
  423. package/esm5/tooltip.es5.js +759 -0
  424. package/esm5/tooltip.es5.js.map +1 -0
  425. package/expansion/index.d.ts +8 -0
  426. package/expansion/index.metadata.json +11 -0
  427. package/expansion/package.json +7 -0
  428. package/expansion/typings/accordion-item.d.ts +41 -0
  429. package/expansion/typings/accordion.d.ts +29 -0
  430. package/expansion/typings/expansion-module.d.ts +2 -0
  431. package/expansion/typings/expansion-panel-header.d.ts +56 -0
  432. package/expansion/typings/expansion-panel.d.ts +39 -0
  433. package/expansion/typings/index.d.ts +5 -0
  434. package/expansion/typings/index.metadata.json +1 -0
  435. package/expansion/typings/mat-exports.d.ts +20 -0
  436. package/expansion/typings/public_api.d.ts +13 -0
  437. package/expansion.d.ts +8 -0
  438. package/expansion.metadata.json +11 -0
  439. package/form-field/index.d.ts +8 -0
  440. package/form-field/index.metadata.json +11 -0
  441. package/form-field/package.json +7 -0
  442. package/form-field/typings/error.d.ts +4 -0
  443. package/form-field/typings/form-field-control.d.ts +39 -0
  444. package/form-field/typings/form-field-errors.d.ts +13 -0
  445. package/form-field/typings/form-field-module.d.ts +2 -0
  446. package/form-field/typings/form-field.d.ts +77 -0
  447. package/form-field/typings/hint.d.ts +7 -0
  448. package/form-field/typings/index.d.ts +4 -0
  449. package/form-field/typings/index.metadata.json +1 -0
  450. package/form-field/typings/mat-exports.d.ts +23 -0
  451. package/form-field/typings/placeholder.d.ts +3 -0
  452. package/form-field/typings/prefix.d.ts +3 -0
  453. package/form-field/typings/public_api.d.ts +17 -0
  454. package/form-field/typings/suffix.d.ts +3 -0
  455. package/form-field.d.ts +8 -0
  456. package/form-field.metadata.json +11 -0
  457. package/grid-list/index.d.ts +8 -1
  458. package/grid-list/index.metadata.json +11 -1
  459. package/grid-list/package.json +7 -0
  460. package/grid-list/typings/grid-list-measure.d.ts +17 -0
  461. package/grid-list/typings/grid-list-module.d.ts +2 -0
  462. package/grid-list/typings/grid-list.d.ts +53 -0
  463. package/grid-list/typings/grid-tile.d.ts +55 -0
  464. package/grid-list/typings/index.d.ts +5 -0
  465. package/grid-list/typings/index.metadata.json +1 -0
  466. package/grid-list/typings/mat-exports.d.ts +13 -0
  467. package/grid-list/typings/public_api.d.ts +11 -0
  468. package/grid-list/typings/tile-coordinator.d.ts +64 -0
  469. package/grid-list/typings/tile-styler.d.ts +129 -0
  470. package/grid-list.d.ts +8 -0
  471. package/grid-list.metadata.json +11 -0
  472. package/icon/index.d.ts +8 -1
  473. package/icon/index.metadata.json +11 -1
  474. package/icon/package.json +7 -0
  475. package/icon/typings/icon-module.d.ts +2 -0
  476. package/icon/typings/icon-registry.d.ts +194 -0
  477. package/icon/typings/icon.d.ts +76 -0
  478. package/icon/typings/index.d.ts +4 -0
  479. package/icon/typings/index.metadata.json +1 -0
  480. package/icon/typings/mat-exports.d.ts +14 -0
  481. package/icon/typings/public_api.d.ts +11 -0
  482. package/icon.d.ts +8 -0
  483. package/icon.metadata.json +11 -0
  484. package/input/index.d.ts +8 -1
  485. package/input/index.metadata.json +11 -1
  486. package/input/package.json +7 -0
  487. package/input/typings/autosize.d.ts +45 -0
  488. package/input/typings/index.d.ts +4 -0
  489. package/input/typings/index.metadata.json +1 -0
  490. package/input/typings/input-errors.d.ts +9 -0
  491. package/input/typings/input-module.d.ts +2 -0
  492. package/input/typings/input.d.ts +78 -0
  493. package/input/typings/mat-exports.d.ts +13 -0
  494. package/input/typings/public_api.d.ts +12 -0
  495. package/input.d.ts +8 -0
  496. package/input.metadata.json +11 -0
  497. package/list/index.d.ts +8 -1
  498. package/list/index.metadata.json +11 -1
  499. package/list/package.json +7 -0
  500. package/list/typings/index.d.ts +4 -0
  501. package/list/typings/index.metadata.json +1 -0
  502. package/list/typings/list-module.d.ts +2 -0
  503. package/list/typings/list.d.ts +78 -0
  504. package/list/typings/mat-exports.d.ts +27 -0
  505. package/list/typings/public_api.d.ts +11 -0
  506. package/list/typings/selection-list.d.ts +112 -0
  507. package/list.d.ts +8 -0
  508. package/list.metadata.json +11 -0
  509. package/material.d.ts +39 -0
  510. package/material.metadata.json +102 -0
  511. package/menu/index.d.ts +8 -1
  512. package/menu/index.metadata.json +11 -1
  513. package/menu/package.json +7 -0
  514. package/menu/typings/index.d.ts +6 -0
  515. package/menu/typings/index.metadata.json +1 -0
  516. package/menu/typings/mat-exports.d.ts +16 -0
  517. package/menu/typings/menu-animations.d.ts +27 -0
  518. package/menu/typings/menu-directive.d.ts +86 -0
  519. package/menu/typings/menu-errors.d.ts +24 -0
  520. package/menu/typings/menu-item.d.ts +40 -0
  521. package/menu/typings/menu-module.d.ts +2 -0
  522. package/menu/typings/menu-panel.d.ts +22 -0
  523. package/menu/typings/menu-positions.d.ts +9 -0
  524. package/menu/typings/menu-trigger.d.ts +116 -0
  525. package/menu/typings/menu.d.ts +12 -0
  526. package/menu/typings/public_api.d.ts +12 -0
  527. package/menu.d.ts +8 -0
  528. package/menu.metadata.json +11 -0
  529. package/package.json +10 -8
  530. package/paginator/index.d.ts +8 -0
  531. package/paginator/index.metadata.json +11 -0
  532. package/paginator/package.json +7 -0
  533. package/paginator/typings/index.d.ts +4 -0
  534. package/paginator/typings/index.metadata.json +1 -0
  535. package/paginator/typings/mat-exports.d.ts +13 -0
  536. package/paginator/typings/paginator-intl.d.ts +20 -0
  537. package/paginator/typings/paginator-module.d.ts +2 -0
  538. package/paginator/typings/paginator.d.ts +75 -0
  539. package/paginator/typings/public_api.d.ts +11 -0
  540. package/paginator.d.ts +8 -0
  541. package/paginator.metadata.json +11 -0
  542. package/prebuilt-themes/deeppurple-amber.css +1 -0
  543. package/prebuilt-themes/indigo-pink.css +1 -0
  544. package/prebuilt-themes/pink-bluegrey.css +1 -0
  545. package/prebuilt-themes/purple-green.css +1 -0
  546. package/progress-bar/index.d.ts +8 -1
  547. package/progress-bar/index.metadata.json +11 -1
  548. package/progress-bar/package.json +7 -0
  549. package/progress-bar/typings/index.d.ts +4 -0
  550. package/progress-bar/typings/index.metadata.json +1 -0
  551. package/progress-bar/typings/mat-exports.d.ts +11 -0
  552. package/progress-bar/typings/progress-bar-module.d.ts +2 -0
  553. package/progress-bar/typings/progress-bar.d.ts +32 -0
  554. package/progress-bar/typings/public_api.d.ts +10 -0
  555. package/progress-bar.d.ts +8 -0
  556. package/progress-bar.metadata.json +11 -0
  557. package/progress-spinner/index.d.ts +8 -0
  558. package/progress-spinner/index.metadata.json +11 -0
  559. package/progress-spinner/package.json +7 -0
  560. package/progress-spinner/typings/index.d.ts +4 -0
  561. package/progress-spinner/typings/index.metadata.json +1 -0
  562. package/progress-spinner/typings/mat-exports.d.ts +14 -0
  563. package/progress-spinner/typings/progress-spinner-module.d.ts +2 -0
  564. package/progress-spinner/typings/progress-spinner.d.ts +98 -0
  565. package/progress-spinner/typings/public_api.d.ts +10 -0
  566. package/progress-spinner.d.ts +8 -0
  567. package/progress-spinner.metadata.json +11 -0
  568. package/radio/index.d.ts +8 -1
  569. package/radio/index.metadata.json +11 -1
  570. package/radio/package.json +7 -0
  571. package/radio/typings/index.d.ts +4 -0
  572. package/radio/typings/index.metadata.json +1 -0
  573. package/radio/typings/mat-exports.d.ts +16 -0
  574. package/radio/typings/public_api.d.ts +10 -0
  575. package/radio/typings/radio-module.d.ts +2 -0
  576. package/radio/typings/radio.d.ts +217 -0
  577. package/radio.d.ts +8 -0
  578. package/radio.metadata.json +11 -0
  579. package/select/index.d.ts +8 -5
  580. package/select/index.metadata.json +11 -1
  581. package/select/package.json +7 -0
  582. package/select/typings/index.d.ts +4 -0
  583. package/select/typings/index.metadata.json +1 -0
  584. package/select/typings/mat-exports.d.ts +17 -0
  585. package/select/typings/public_api.d.ts +11 -0
  586. package/select/typings/select-animations.d.ts +36 -0
  587. package/select/typings/select-errors.d.ts +26 -0
  588. package/select/typings/select-module.d.ts +2 -0
  589. package/select/typings/select.d.ts +412 -0
  590. package/select.d.ts +8 -0
  591. package/select.metadata.json +11 -0
  592. package/sidenav/index.d.ts +8 -1
  593. package/sidenav/index.metadata.json +11 -1
  594. package/sidenav/package.json +7 -0
  595. package/sidenav/typings/drawer.d.ts +178 -0
  596. package/sidenav/typings/index.d.ts +4 -0
  597. package/sidenav/typings/index.metadata.json +1 -0
  598. package/sidenav/typings/mat-exports.d.ts +16 -0
  599. package/sidenav/typings/public_api.d.ts +11 -0
  600. package/sidenav/typings/sidenav-module.d.ts +2 -0
  601. package/sidenav/typings/sidenav.d.ts +6 -0
  602. package/sidenav.d.ts +8 -0
  603. package/sidenav.metadata.json +11 -0
  604. package/slide-toggle/index.d.ts +8 -1
  605. package/slide-toggle/index.metadata.json +11 -1
  606. package/slide-toggle/package.json +7 -0
  607. package/slide-toggle/typings/index.d.ts +4 -0
  608. package/slide-toggle/typings/index.metadata.json +1 -0
  609. package/slide-toggle/typings/mat-exports.d.ts +14 -0
  610. package/slide-toggle/typings/public_api.d.ts +10 -0
  611. package/slide-toggle/typings/slide-toggle-module.d.ts +2 -0
  612. package/slide-toggle/typings/slide-toggle.d.ts +93 -0
  613. package/slide-toggle.d.ts +8 -0
  614. package/slide-toggle.metadata.json +11 -0
  615. package/slider/index.d.ts +8 -1
  616. package/slider/index.metadata.json +11 -1
  617. package/slider/package.json +7 -0
  618. package/slider/typings/index.d.ts +4 -0
  619. package/slider/typings/index.metadata.json +1 -0
  620. package/slider/typings/mat-exports.d.ts +14 -0
  621. package/slider/typings/public_api.d.ts +10 -0
  622. package/slider/typings/slider-module.d.ts +2 -0
  623. package/slider/typings/slider.d.ts +207 -0
  624. package/slider.d.ts +8 -0
  625. package/slider.metadata.json +11 -0
  626. package/snack-bar/index.d.ts +8 -4
  627. package/snack-bar/index.metadata.json +11 -1
  628. package/snack-bar/package.json +7 -0
  629. package/snack-bar/typings/index.d.ts +4 -0
  630. package/snack-bar/typings/index.metadata.json +1 -0
  631. package/snack-bar/typings/mat-exports.d.ts +18 -0
  632. package/snack-bar/typings/public_api.d.ts +14 -0
  633. package/snack-bar/typings/simple-snack-bar.d.ts +18 -0
  634. package/snack-bar/typings/snack-bar-config.d.ts +38 -0
  635. package/snack-bar/typings/snack-bar-container.d.ts +61 -0
  636. package/snack-bar/typings/snack-bar-module.d.ts +2 -0
  637. package/snack-bar/typings/snack-bar-ref.d.ts +51 -0
  638. package/snack-bar/typings/snack-bar.d.ts +70 -0
  639. package/snack-bar.d.ts +8 -0
  640. package/snack-bar.metadata.json +11 -0
  641. package/sort/index.d.ts +8 -0
  642. package/sort/index.metadata.json +11 -0
  643. package/sort/package.json +7 -0
  644. package/sort/typings/index.d.ts +4 -0
  645. package/sort/typings/index.metadata.json +1 -0
  646. package/sort/typings/mat-exports.d.ts +16 -0
  647. package/sort/typings/public_api.d.ts +13 -0
  648. package/sort/typings/sort-direction.d.ts +8 -0
  649. package/sort/typings/sort-errors.d.ts +13 -0
  650. package/sort/typings/sort-header-intl.d.ts +17 -0
  651. package/sort/typings/sort-header.d.ts +44 -0
  652. package/sort/typings/sort-module.d.ts +2 -0
  653. package/sort/typings/sort.d.ts +59 -0
  654. package/sort.d.ts +8 -0
  655. package/sort.metadata.json +11 -0
  656. package/stepper/index.d.ts +8 -0
  657. package/stepper/index.metadata.json +11 -0
  658. package/stepper/package.json +7 -0
  659. package/stepper/typings/index.d.ts +4 -0
  660. package/stepper/typings/index.metadata.json +1 -0
  661. package/stepper/typings/mat-exports.d.ts +21 -0
  662. package/stepper/typings/public_api.d.ts +13 -0
  663. package/stepper/typings/step-header.d.ts +23 -0
  664. package/stepper/typings/step-label.d.ts +14 -0
  665. package/stepper/typings/stepper-button.d.ts +10 -0
  666. package/stepper/typings/stepper-module.d.ts +2 -0
  667. package/stepper/typings/stepper.d.ts +27 -0
  668. package/stepper.d.ts +8 -0
  669. package/stepper.metadata.json +11 -0
  670. package/table/index.d.ts +8 -0
  671. package/table/index.metadata.json +11 -0
  672. package/table/package.json +7 -0
  673. package/table/typings/cell.d.ts +44 -0
  674. package/table/typings/index.d.ts +4 -0
  675. package/table/typings/index.metadata.json +1 -0
  676. package/table/typings/mat-exports.d.ts +20 -0
  677. package/table/typings/public_api.d.ts +12 -0
  678. package/table/typings/row.d.ts +30 -0
  679. package/table/typings/table-module.d.ts +2 -0
  680. package/table/typings/table.d.ts +8 -0
  681. package/table.d.ts +8 -0
  682. package/table.metadata.json +11 -0
  683. package/tabs/index.d.ts +8 -1
  684. package/tabs/index.metadata.json +11 -1
  685. package/tabs/package.json +7 -0
  686. package/tabs/typings/index.d.ts +8 -0
  687. package/tabs/typings/index.metadata.json +1 -0
  688. package/tabs/typings/ink-bar.d.ts +33 -0
  689. package/tabs/typings/mat-exports.d.ts +31 -0
  690. package/tabs/typings/public_api.d.ts +17 -0
  691. package/tabs/typings/tab-body.d.ts +69 -0
  692. package/tabs/typings/tab-group.d.ts +100 -0
  693. package/tabs/typings/tab-header.d.ts +156 -0
  694. package/tabs/typings/tab-label-wrapper.d.ts +25 -0
  695. package/tabs/typings/tab-label.d.ts +15 -0
  696. package/tabs/typings/tab-nav-bar/index.d.ts +8 -0
  697. package/tabs/typings/tab-nav-bar/tab-nav-bar.d.ts +77 -0
  698. package/tabs/typings/tab.d.ts +50 -0
  699. package/tabs/typings/tabs-module.d.ts +2 -0
  700. package/tabs.d.ts +8 -0
  701. package/tabs.metadata.json +11 -0
  702. package/toolbar/index.d.ts +8 -1
  703. package/toolbar/index.metadata.json +11 -1
  704. package/toolbar/package.json +7 -0
  705. package/toolbar/typings/index.d.ts +4 -0
  706. package/toolbar/typings/index.metadata.json +1 -0
  707. package/toolbar/typings/mat-exports.d.ts +13 -0
  708. package/toolbar/typings/public_api.d.ts +10 -0
  709. package/toolbar/typings/toolbar-module.d.ts +2 -0
  710. package/toolbar/typings/toolbar.d.ts +21 -0
  711. package/toolbar.d.ts +8 -0
  712. package/toolbar.metadata.json +11 -0
  713. package/tooltip/index.d.ts +8 -1
  714. package/tooltip/index.metadata.json +11 -1
  715. package/tooltip/package.json +7 -0
  716. package/tooltip/typings/index.d.ts +4 -0
  717. package/tooltip/typings/index.metadata.json +1 -0
  718. package/tooltip/typings/mat-exports.d.ts +14 -0
  719. package/tooltip/typings/public_api.d.ts +10 -0
  720. package/tooltip/typings/tooltip-module.d.ts +2 -0
  721. package/tooltip/typings/tooltip.d.ts +177 -0
  722. package/tooltip.d.ts +8 -0
  723. package/tooltip.metadata.json +11 -0
  724. package/typings/autocomplete/autocomplete-module.d.ts +2 -0
  725. package/typings/autocomplete/autocomplete-trigger.d.ts +159 -0
  726. package/typings/autocomplete/autocomplete.d.ts +55 -0
  727. package/typings/autocomplete/index.d.ts +4 -0
  728. package/typings/autocomplete/index.metadata.json +1 -0
  729. package/typings/autocomplete/mat-exports.d.ts +17 -0
  730. package/typings/autocomplete/public_api.d.ts +11 -0
  731. package/typings/button/button-module.d.ts +2 -0
  732. package/typings/button/button.d.ts +80 -0
  733. package/typings/button/index.d.ts +4 -0
  734. package/typings/button/index.metadata.json +1 -0
  735. package/typings/button/mat-exports.d.ts +18 -0
  736. package/typings/button/public_api.d.ts +10 -0
  737. package/typings/button-toggle/button-toggle-module.d.ts +2 -0
  738. package/typings/button-toggle/button-toggle.d.ts +156 -0
  739. package/typings/button-toggle/index.d.ts +4 -0
  740. package/typings/button-toggle/index.metadata.json +1 -0
  741. package/typings/button-toggle/mat-exports.d.ts +16 -0
  742. package/typings/button-toggle/public_api.d.ts +10 -0
  743. package/typings/card/card-module.d.ts +2 -0
  744. package/typings/card/card.d.ts +95 -0
  745. package/typings/card/index.d.ts +4 -0
  746. package/typings/card/index.metadata.json +1 -0
  747. package/typings/card/mat-exports.d.ts +24 -0
  748. package/typings/card/public_api.d.ts +10 -0
  749. package/typings/checkbox/checkbox-module.d.ts +2 -0
  750. package/typings/checkbox/checkbox-required-validator.d.ts +18 -0
  751. package/typings/checkbox/checkbox.d.ts +159 -0
  752. package/typings/checkbox/index.d.ts +4 -0
  753. package/typings/checkbox/index.metadata.json +1 -0
  754. package/typings/checkbox/mat-exports.d.ts +17 -0
  755. package/typings/checkbox/public_api.d.ts +11 -0
  756. package/typings/chips/chip-input.d.ts +54 -0
  757. package/typings/chips/chip-list.d.ts +219 -0
  758. package/typings/chips/chip.d.ts +123 -0
  759. package/typings/chips/chips-module.d.ts +2 -0
  760. package/typings/chips/index.d.ts +4 -0
  761. package/typings/chips/index.metadata.json +1 -0
  762. package/typings/chips/mat-exports.d.ts +21 -0
  763. package/typings/chips/public_api.d.ts +12 -0
  764. package/typings/core/a11y/index.d.ts +8 -0
  765. package/typings/core/animation/animation.d.ts +20 -0
  766. package/typings/core/bidi/index.d.ts +8 -0
  767. package/typings/core/common-behaviors/color.d.ts +22 -0
  768. package/typings/core/common-behaviors/common-module.d.ts +24 -0
  769. package/typings/core/common-behaviors/constructor.d.ts +9 -0
  770. package/typings/core/common-behaviors/disable-ripple.d.ts +7 -0
  771. package/typings/core/common-behaviors/disabled.d.ts +7 -0
  772. package/typings/core/common-behaviors/index.d.ts +12 -0
  773. package/typings/core/common-behaviors/tabindex.d.ts +15 -0
  774. package/typings/core/compatibility/compatibility.d.ts +40 -0
  775. package/typings/core/coordination/unique-selection-dispatcher.d.ts +40 -0
  776. package/typings/core/datetime/date-adapter.d.ts +198 -0
  777. package/typings/core/datetime/date-formats.d.ts +20 -0
  778. package/typings/core/datetime/index.d.ts +8 -0
  779. package/typings/core/datetime/native-date-adapter.d.ts +50 -0
  780. package/typings/core/datetime/native-date-formats.d.ts +9 -0
  781. package/typings/core/error/error-options.d.ts +19 -0
  782. package/typings/core/gestures/gesture-annotations.d.ts +51 -0
  783. package/typings/core/gestures/gesture-config.d.ts +23 -0
  784. package/typings/core/index.d.ts +5 -0
  785. package/typings/core/index.metadata.json +1 -0
  786. package/typings/core/keyboard/keycodes.d.ts +8 -0
  787. package/typings/core/line/line.d.ts +30 -0
  788. package/typings/core/mat-exports.d.ts +36 -0
  789. package/typings/core/option/index.d.ts +4 -0
  790. package/typings/core/option/optgroup.d.ts +14 -0
  791. package/typings/core/option/option.d.ts +97 -0
  792. package/typings/core/overlay/index.d.ts +8 -0
  793. package/typings/core/placeholder/placeholder-options.d.ts +15 -0
  794. package/typings/core/platform/features.d.ts +8 -0
  795. package/typings/core/platform/index.d.ts +10 -0
  796. package/typings/core/platform/platform.d.ts +8 -0
  797. package/typings/core/portal/dom-portal-host.d.ts +8 -0
  798. package/typings/core/portal/portal-directives.d.ts +8 -0
  799. package/typings/core/portal/portal-injector.d.ts +19 -0
  800. package/typings/core/portal/portal.d.ts +8 -0
  801. package/typings/core/public_api.d.ts +34 -0
  802. package/typings/core/ripple/index.d.ts +5 -0
  803. package/typings/core/ripple/ripple-ref.d.ts +28 -0
  804. package/typings/core/ripple/ripple-renderer.d.ts +64 -0
  805. package/typings/core/ripple/ripple.d.ts +73 -0
  806. package/typings/core/rxjs/index.d.ts +9 -0
  807. package/typings/core/rxjs/rx-chain.d.ts +8 -0
  808. package/typings/core/rxjs/rx-operators.d.ts +8 -0
  809. package/typings/core/selection/index.d.ts +3 -0
  810. package/typings/core/selection/pseudo-checkbox/pseudo-checkbox.d.ts +20 -0
  811. package/typings/core/style/apply-transform.d.ts +13 -0
  812. package/typings/core/style/index.d.ts +5 -0
  813. package/typings/core/testing/month-constants.d.ts +12 -0
  814. package/typings/core/util/object-extend.d.ts +15 -0
  815. package/typings/datepicker/calendar-body.d.ts +52 -0
  816. package/typings/datepicker/calendar.d.ts +90 -0
  817. package/typings/datepicker/coerce-date-property.d.ts +19 -0
  818. package/typings/datepicker/datepicker-errors.d.ts +9 -0
  819. package/typings/datepicker/datepicker-input.d.ts +94 -0
  820. package/typings/datepicker/datepicker-intl.d.ts +25 -0
  821. package/typings/datepicker/datepicker-module.d.ts +2 -0
  822. package/typings/datepicker/datepicker-toggle.d.ts +24 -0
  823. package/typings/datepicker/datepicker.d.ts +117 -0
  824. package/typings/datepicker/index.d.ts +4 -0
  825. package/typings/datepicker/index.metadata.json +1 -0
  826. package/typings/datepicker/mat-exports.d.ts +33 -0
  827. package/typings/datepicker/month-view.d.ts +65 -0
  828. package/typings/datepicker/public_api.d.ts +18 -0
  829. package/typings/datepicker/year-view.d.ts +54 -0
  830. package/typings/dialog/dialog-config.d.ts +54 -0
  831. package/typings/dialog/dialog-container.d.ts +68 -0
  832. package/typings/dialog/dialog-content-directives.d.ts +45 -0
  833. package/typings/dialog/dialog-module.d.ts +2 -0
  834. package/typings/dialog/dialog-ref.d.ts +68 -0
  835. package/typings/dialog/dialog.d.ts +108 -0
  836. package/typings/dialog/index.d.ts +4 -0
  837. package/typings/dialog/index.metadata.json +1 -0
  838. package/typings/dialog/mat-exports.d.ts +26 -0
  839. package/typings/dialog/public_api.d.ts +14 -0
  840. package/typings/expansion/accordion-item.d.ts +41 -0
  841. package/typings/expansion/accordion.d.ts +29 -0
  842. package/typings/expansion/expansion-module.d.ts +2 -0
  843. package/typings/expansion/expansion-panel-header.d.ts +56 -0
  844. package/typings/expansion/expansion-panel.d.ts +39 -0
  845. package/typings/expansion/index.d.ts +5 -0
  846. package/typings/expansion/index.metadata.json +1 -0
  847. package/typings/expansion/mat-exports.d.ts +20 -0
  848. package/typings/expansion/public_api.d.ts +13 -0
  849. package/typings/form-field/error.d.ts +4 -0
  850. package/typings/form-field/form-field-control.d.ts +39 -0
  851. package/typings/form-field/form-field-errors.d.ts +13 -0
  852. package/typings/form-field/form-field-module.d.ts +2 -0
  853. package/typings/form-field/form-field.d.ts +77 -0
  854. package/typings/form-field/hint.d.ts +7 -0
  855. package/typings/form-field/index.d.ts +4 -0
  856. package/typings/form-field/index.metadata.json +1 -0
  857. package/typings/form-field/mat-exports.d.ts +23 -0
  858. package/typings/form-field/placeholder.d.ts +3 -0
  859. package/typings/form-field/prefix.d.ts +3 -0
  860. package/typings/form-field/public_api.d.ts +17 -0
  861. package/typings/form-field/suffix.d.ts +3 -0
  862. package/typings/grid-list/grid-list-measure.d.ts +17 -0
  863. package/typings/grid-list/grid-list-module.d.ts +2 -0
  864. package/typings/grid-list/grid-list.d.ts +53 -0
  865. package/typings/grid-list/grid-tile.d.ts +55 -0
  866. package/typings/grid-list/index.d.ts +5 -0
  867. package/typings/grid-list/index.metadata.json +1 -0
  868. package/typings/grid-list/mat-exports.d.ts +13 -0
  869. package/typings/grid-list/public_api.d.ts +11 -0
  870. package/typings/grid-list/tile-coordinator.d.ts +64 -0
  871. package/typings/grid-list/tile-styler.d.ts +129 -0
  872. package/typings/icon/icon-module.d.ts +2 -0
  873. package/typings/icon/icon-registry.d.ts +194 -0
  874. package/typings/icon/icon.d.ts +76 -0
  875. package/typings/icon/index.d.ts +4 -0
  876. package/typings/icon/index.metadata.json +1 -0
  877. package/typings/icon/mat-exports.d.ts +14 -0
  878. package/typings/icon/public_api.d.ts +11 -0
  879. package/typings/index.d.ts +4 -0
  880. package/typings/index.metadata.json +26 -0
  881. package/typings/input/autosize.d.ts +45 -0
  882. package/typings/input/index.d.ts +4 -0
  883. package/typings/input/index.metadata.json +1 -0
  884. package/typings/input/input-errors.d.ts +9 -0
  885. package/typings/input/input-module.d.ts +2 -0
  886. package/typings/input/input.d.ts +78 -0
  887. package/typings/input/mat-exports.d.ts +13 -0
  888. package/typings/input/public_api.d.ts +12 -0
  889. package/typings/list/index.d.ts +4 -0
  890. package/typings/list/index.metadata.json +1 -0
  891. package/typings/list/list-module.d.ts +2 -0
  892. package/typings/list/list.d.ts +78 -0
  893. package/typings/list/mat-exports.d.ts +27 -0
  894. package/typings/list/public_api.d.ts +11 -0
  895. package/typings/list/selection-list.d.ts +112 -0
  896. package/typings/menu/index.d.ts +6 -0
  897. package/typings/menu/index.metadata.json +1 -0
  898. package/typings/menu/mat-exports.d.ts +16 -0
  899. package/typings/menu/menu-animations.d.ts +27 -0
  900. package/typings/menu/menu-directive.d.ts +86 -0
  901. package/typings/menu/menu-errors.d.ts +24 -0
  902. package/typings/menu/menu-item.d.ts +40 -0
  903. package/typings/menu/menu-module.d.ts +2 -0
  904. package/typings/menu/menu-panel.d.ts +22 -0
  905. package/typings/menu/menu-positions.d.ts +9 -0
  906. package/typings/menu/menu-trigger.d.ts +116 -0
  907. package/typings/menu/menu.d.ts +12 -0
  908. package/typings/menu/public_api.d.ts +12 -0
  909. package/typings/paginator/index.d.ts +4 -0
  910. package/typings/paginator/index.metadata.json +1 -0
  911. package/typings/paginator/mat-exports.d.ts +13 -0
  912. package/typings/paginator/paginator-intl.d.ts +20 -0
  913. package/typings/paginator/paginator-module.d.ts +2 -0
  914. package/typings/paginator/paginator.d.ts +75 -0
  915. package/typings/paginator/public_api.d.ts +11 -0
  916. package/typings/progress-bar/index.d.ts +4 -0
  917. package/typings/progress-bar/index.metadata.json +1 -0
  918. package/typings/progress-bar/mat-exports.d.ts +11 -0
  919. package/typings/progress-bar/progress-bar-module.d.ts +2 -0
  920. package/typings/progress-bar/progress-bar.d.ts +32 -0
  921. package/typings/progress-bar/public_api.d.ts +10 -0
  922. package/typings/progress-spinner/index.d.ts +4 -0
  923. package/typings/progress-spinner/index.metadata.json +1 -0
  924. package/typings/progress-spinner/mat-exports.d.ts +14 -0
  925. package/typings/progress-spinner/progress-spinner-module.d.ts +2 -0
  926. package/typings/progress-spinner/progress-spinner.d.ts +98 -0
  927. package/typings/progress-spinner/public_api.d.ts +10 -0
  928. package/typings/public_api.d.ts +39 -0
  929. package/typings/radio/index.d.ts +4 -0
  930. package/typings/radio/index.metadata.json +1 -0
  931. package/typings/radio/mat-exports.d.ts +16 -0
  932. package/typings/radio/public_api.d.ts +10 -0
  933. package/typings/radio/radio-module.d.ts +2 -0
  934. package/typings/radio/radio.d.ts +217 -0
  935. package/typings/select/index.d.ts +4 -0
  936. package/typings/select/index.metadata.json +1 -0
  937. package/typings/select/mat-exports.d.ts +17 -0
  938. package/typings/select/public_api.d.ts +11 -0
  939. package/typings/select/select-animations.d.ts +36 -0
  940. package/typings/select/select-errors.d.ts +26 -0
  941. package/typings/select/select-module.d.ts +2 -0
  942. package/typings/select/select.d.ts +412 -0
  943. package/typings/sidenav/drawer.d.ts +178 -0
  944. package/typings/sidenav/index.d.ts +4 -0
  945. package/typings/sidenav/index.metadata.json +1 -0
  946. package/typings/sidenav/mat-exports.d.ts +16 -0
  947. package/typings/sidenav/public_api.d.ts +11 -0
  948. package/typings/sidenav/sidenav-module.d.ts +2 -0
  949. package/typings/sidenav/sidenav.d.ts +6 -0
  950. package/typings/slide-toggle/index.d.ts +4 -0
  951. package/typings/slide-toggle/index.metadata.json +1 -0
  952. package/typings/slide-toggle/mat-exports.d.ts +14 -0
  953. package/typings/slide-toggle/public_api.d.ts +10 -0
  954. package/typings/slide-toggle/slide-toggle-module.d.ts +2 -0
  955. package/typings/slide-toggle/slide-toggle.d.ts +93 -0
  956. package/typings/slider/index.d.ts +4 -0
  957. package/typings/slider/index.metadata.json +1 -0
  958. package/typings/slider/mat-exports.d.ts +14 -0
  959. package/typings/slider/public_api.d.ts +10 -0
  960. package/typings/slider/slider-module.d.ts +2 -0
  961. package/typings/slider/slider.d.ts +207 -0
  962. package/typings/snack-bar/index.d.ts +4 -0
  963. package/typings/snack-bar/index.metadata.json +1 -0
  964. package/typings/snack-bar/mat-exports.d.ts +18 -0
  965. package/typings/snack-bar/public_api.d.ts +14 -0
  966. package/typings/snack-bar/simple-snack-bar.d.ts +18 -0
  967. package/typings/snack-bar/snack-bar-config.d.ts +38 -0
  968. package/typings/snack-bar/snack-bar-container.d.ts +61 -0
  969. package/typings/snack-bar/snack-bar-module.d.ts +2 -0
  970. package/typings/snack-bar/snack-bar-ref.d.ts +51 -0
  971. package/typings/snack-bar/snack-bar.d.ts +70 -0
  972. package/typings/sort/index.d.ts +4 -0
  973. package/typings/sort/index.metadata.json +1 -0
  974. package/typings/sort/mat-exports.d.ts +16 -0
  975. package/typings/sort/public_api.d.ts +13 -0
  976. package/typings/sort/sort-direction.d.ts +8 -0
  977. package/typings/sort/sort-errors.d.ts +13 -0
  978. package/typings/sort/sort-header-intl.d.ts +17 -0
  979. package/typings/sort/sort-header.d.ts +44 -0
  980. package/typings/sort/sort-module.d.ts +2 -0
  981. package/typings/sort/sort.d.ts +59 -0
  982. package/typings/stepper/index.d.ts +4 -0
  983. package/typings/stepper/index.metadata.json +1 -0
  984. package/typings/stepper/mat-exports.d.ts +21 -0
  985. package/typings/stepper/public_api.d.ts +13 -0
  986. package/typings/stepper/step-header.d.ts +23 -0
  987. package/typings/stepper/step-label.d.ts +14 -0
  988. package/typings/stepper/stepper-button.d.ts +10 -0
  989. package/typings/stepper/stepper-module.d.ts +2 -0
  990. package/typings/stepper/stepper.d.ts +27 -0
  991. package/typings/table/cell.d.ts +44 -0
  992. package/typings/table/index.d.ts +4 -0
  993. package/typings/table/index.metadata.json +1 -0
  994. package/typings/table/mat-exports.d.ts +20 -0
  995. package/typings/table/public_api.d.ts +12 -0
  996. package/typings/table/row.d.ts +30 -0
  997. package/typings/table/table-module.d.ts +2 -0
  998. package/typings/table/table.d.ts +8 -0
  999. package/typings/tabs/index.d.ts +8 -0
  1000. package/typings/tabs/index.metadata.json +1 -0
  1001. package/typings/tabs/ink-bar.d.ts +33 -0
  1002. package/typings/tabs/mat-exports.d.ts +31 -0
  1003. package/typings/tabs/public_api.d.ts +17 -0
  1004. package/typings/tabs/tab-body.d.ts +69 -0
  1005. package/typings/tabs/tab-group.d.ts +100 -0
  1006. package/typings/tabs/tab-header.d.ts +156 -0
  1007. package/typings/tabs/tab-label-wrapper.d.ts +25 -0
  1008. package/typings/tabs/tab-label.d.ts +15 -0
  1009. package/typings/tabs/tab-nav-bar/index.d.ts +8 -0
  1010. package/typings/tabs/tab-nav-bar/tab-nav-bar.d.ts +77 -0
  1011. package/typings/tabs/tab.d.ts +50 -0
  1012. package/typings/tabs/tabs-module.d.ts +2 -0
  1013. package/typings/toolbar/index.d.ts +4 -0
  1014. package/typings/toolbar/index.metadata.json +1 -0
  1015. package/typings/toolbar/mat-exports.d.ts +13 -0
  1016. package/typings/toolbar/public_api.d.ts +10 -0
  1017. package/typings/toolbar/toolbar-module.d.ts +2 -0
  1018. package/typings/toolbar/toolbar.d.ts +21 -0
  1019. package/typings/tooltip/index.d.ts +4 -0
  1020. package/typings/tooltip/index.metadata.json +1 -0
  1021. package/typings/tooltip/mat-exports.d.ts +14 -0
  1022. package/typings/tooltip/public_api.d.ts +10 -0
  1023. package/typings/tooltip/tooltip-module.d.ts +2 -0
  1024. package/typings/tooltip/tooltip.d.ts +177 -0
  1025. package/typings/version.d.ts +10 -0
  1026. package/button/README.md +0 -115
  1027. package/button/_button-base.scss +0 -116
  1028. package/button/_button-theme.scss +0 -85
  1029. package/button/button.css +0 -101
  1030. package/button/button.css.map +0 -1
  1031. package/button/button.d.ts +0 -35
  1032. package/button/button.html +0 -6
  1033. package/button/button.js +0 -196
  1034. package/button/button.js.map +0 -1
  1035. package/button/button.metadata.json +0 -1
  1036. package/button/button.scss +0 -72
  1037. package/button/index.js +0 -3
  1038. package/button/index.js.map +0 -1
  1039. package/button-toggle/README.md +0 -149
  1040. package/button-toggle/_button-toggle-theme.scss +0 -14
  1041. package/button-toggle/button-toggle.css +0 -24
  1042. package/button-toggle/button-toggle.css.map +0 -1
  1043. package/button-toggle/button-toggle.d.ts +0 -110
  1044. package/button-toggle/button-toggle.html +0 -14
  1045. package/button-toggle/button-toggle.js +0 -436
  1046. package/button-toggle/button-toggle.js.map +0 -1
  1047. package/button-toggle/button-toggle.metadata.json +0 -1
  1048. package/button-toggle/button-toggle.scss +0 -34
  1049. package/button-toggle/index.js +0 -3
  1050. package/button-toggle/index.js.map +0 -1
  1051. package/card/README.md +0 -116
  1052. package/card/_card-theme.scss +0 -17
  1053. package/card/card-header.html +0 -5
  1054. package/card/card-title-group.html +0 -5
  1055. package/card/card.css +0 -140
  1056. package/card/card.css.map +0 -1
  1057. package/card/card.d.ts +0 -35
  1058. package/card/card.html +0 -1
  1059. package/card/card.js +0 -187
  1060. package/card/card.js.map +0 -1
  1061. package/card/card.metadata.json +0 -1
  1062. package/card/card.scss +0 -226
  1063. package/card/index.js +0 -3
  1064. package/card/index.js.map +0 -1
  1065. package/checkbox/README.md +0 -79
  1066. package/checkbox/_checkbox-theme.scss +0 -69
  1067. package/checkbox/checkbox.css +0 -241
  1068. package/checkbox/checkbox.css.map +0 -1
  1069. package/checkbox/checkbox.d.ts +0 -127
  1070. package/checkbox/checkbox.html +0 -37
  1071. package/checkbox/checkbox.js +0 -344
  1072. package/checkbox/checkbox.js.map +0 -1
  1073. package/checkbox/checkbox.metadata.json +0 -1
  1074. package/checkbox/checkbox.scss +0 -412
  1075. package/checkbox/index.js +0 -3
  1076. package/checkbox/index.js.map +0 -1
  1077. package/core/README.md +0 -2
  1078. package/core/_core.scss +0 -27
  1079. package/core/a11y/README.md +0 -30
  1080. package/core/a11y/_a11y.scss +0 -13
  1081. package/core/a11y/focus-trap.d.ts +0 -23
  1082. package/core/a11y/focus-trap.js +0 -82
  1083. package/core/a11y/focus-trap.js.map +0 -1
  1084. package/core/a11y/focus-trap.metadata.json +0 -1
  1085. package/core/a11y/index.d.ts +0 -10
  1086. package/core/a11y/index.js +0 -37
  1087. package/core/a11y/index.js.map +0 -1
  1088. package/core/a11y/index.metadata.json +0 -1
  1089. package/core/a11y/interactivity-checker.d.ts +0 -31
  1090. package/core/a11y/interactivity-checker.js +0 -122
  1091. package/core/a11y/interactivity-checker.js.map +0 -1
  1092. package/core/a11y/interactivity-checker.metadata.json +0 -1
  1093. package/core/a11y/live-announcer.d.ts +0 -13
  1094. package/core/a11y/live-announcer.js +0 -56
  1095. package/core/a11y/live-announcer.js.map +0 -1
  1096. package/core/a11y/live-announcer.metadata.json +0 -1
  1097. package/core/annotations/field-value.d.ts +0 -16
  1098. package/core/annotations/field-value.js +0 -30
  1099. package/core/annotations/field-value.js.map +0 -1
  1100. package/core/async/promise-completer.d.ts +0 -6
  1101. package/core/async/promise-completer.js +0 -12
  1102. package/core/async/promise-completer.js.map +0 -1
  1103. package/core/coordination/unique-selection-dispatcher.d.ts +0 -17
  1104. package/core/coordination/unique-selection-dispatcher.js +0 -42
  1105. package/core/coordination/unique-selection-dispatcher.js.map +0 -1
  1106. package/core/coordination/unique-selection-dispatcher.metadata.json +0 -1
  1107. package/core/core.d.ts +0 -28
  1108. package/core/core.js +0 -71
  1109. package/core/core.js.map +0 -1
  1110. package/core/core.metadata.json +0 -1
  1111. package/core/errors/error.d.ts +0 -6
  1112. package/core/errors/error.js +0 -19
  1113. package/core/errors/error.js.map +0 -1
  1114. package/core/gestures/MdGestureConfig.d.ts +0 -7
  1115. package/core/gestures/MdGestureConfig.js +0 -84
  1116. package/core/gestures/MdGestureConfig.js.map +0 -1
  1117. package/core/gestures/MdGestureConfig.metadata.json +0 -1
  1118. package/core/index.js +0 -3
  1119. package/core/index.js.map +0 -1
  1120. package/core/keyboard/keycodes.d.ts +0 -6
  1121. package/core/keyboard/keycodes.js +0 -12
  1122. package/core/keyboard/keycodes.js.map +0 -1
  1123. package/core/keyboard/keycodes.metadata.json +0 -1
  1124. package/core/line/line.d.ts +0 -19
  1125. package/core/line/line.js +0 -65
  1126. package/core/line/line.js.map +0 -1
  1127. package/core/line/line.metadata.json +0 -1
  1128. package/core/overlay/generic-component-type.d.ts +0 -3
  1129. package/core/overlay/generic-component-type.js +0 -3
  1130. package/core/overlay/generic-component-type.js.map +0 -1
  1131. package/core/overlay/overlay-container.d.ts +0 -19
  1132. package/core/overlay/overlay-container.js +0 -33
  1133. package/core/overlay/overlay-container.js.map +0 -1
  1134. package/core/overlay/overlay-directives.d.ts +0 -36
  1135. package/core/overlay/overlay-directives.js +0 -120
  1136. package/core/overlay/overlay-directives.js.map +0 -1
  1137. package/core/overlay/overlay-directives.metadata.json +0 -1
  1138. package/core/overlay/overlay-ref.d.ts +0 -28
  1139. package/core/overlay/overlay-ref.js +0 -82
  1140. package/core/overlay/overlay-ref.js.map +0 -1
  1141. package/core/overlay/overlay-state.d.ts +0 -11
  1142. package/core/overlay/overlay-state.js +0 -13
  1143. package/core/overlay/overlay-state.js.map +0 -1
  1144. package/core/overlay/overlay.css +0 -2
  1145. package/core/overlay/overlay.css.map +0 -1
  1146. package/core/overlay/overlay.d.ts +0 -51
  1147. package/core/overlay/overlay.js +0 -93
  1148. package/core/overlay/overlay.js.map +0 -1
  1149. package/core/overlay/overlay.metadata.json +0 -1
  1150. package/core/overlay/overlay.scss +0 -55
  1151. package/core/overlay/position/connected-position-strategy.d.ts +0 -69
  1152. package/core/overlay/position/connected-position-strategy.js +0 -164
  1153. package/core/overlay/position/connected-position-strategy.js.map +0 -1
  1154. package/core/overlay/position/connected-position.d.ts +0 -22
  1155. package/core/overlay/position/connected-position.js +0 -12
  1156. package/core/overlay/position/connected-position.js.map +0 -1
  1157. package/core/overlay/position/global-position-strategy.d.ts +0 -45
  1158. package/core/overlay/position/global-position-strategy.js +0 -102
  1159. package/core/overlay/position/global-position-strategy.js.map +0 -1
  1160. package/core/overlay/position/overlay-position-builder.d.ts +0 -14
  1161. package/core/overlay/position/overlay-position-builder.js +0 -34
  1162. package/core/overlay/position/overlay-position-builder.js.map +0 -1
  1163. package/core/overlay/position/overlay-position-builder.metadata.json +0 -1
  1164. package/core/overlay/position/position-strategy.d.ts +0 -5
  1165. package/core/overlay/position/position-strategy.js +0 -3
  1166. package/core/overlay/position/position-strategy.js.map +0 -1
  1167. package/core/overlay/position/relative-position-strategy.d.ts +0 -7
  1168. package/core/overlay/position/relative-position-strategy.js +0 -12
  1169. package/core/overlay/position/relative-position-strategy.js.map +0 -1
  1170. package/core/overlay/position/viewport-ruler.d.ts +0 -16
  1171. package/core/overlay/position/viewport-ruler.js +0 -71
  1172. package/core/overlay/position/viewport-ruler.js.map +0 -1
  1173. package/core/overlay/position/viewport-ruler.metadata.json +0 -1
  1174. package/core/portal/README.md +0 -72
  1175. package/core/portal/dom-portal-host.d.ts +0 -17
  1176. package/core/portal/dom-portal-host.js +0 -56
  1177. package/core/portal/dom-portal-host.js.map +0 -1
  1178. package/core/portal/portal-directives.d.ts +0 -38
  1179. package/core/portal/portal-directives.js +0 -124
  1180. package/core/portal/portal-directives.js.map +0 -1
  1181. package/core/portal/portal-directives.metadata.json +0 -1
  1182. package/core/portal/portal-errors.d.ts +0 -29
  1183. package/core/portal/portal-errors.js +0 -66
  1184. package/core/portal/portal-errors.js.map +0 -1
  1185. package/core/portal/portal.d.ts +0 -85
  1186. package/core/portal/portal.js +0 -155
  1187. package/core/portal/portal.js.map +0 -1
  1188. package/core/ripple/README.md +0 -27
  1189. package/core/ripple/_ripple.scss +0 -106
  1190. package/core/ripple/ripple-renderer.d.ts +0 -65
  1191. package/core/ripple/ripple-renderer.js +0 -149
  1192. package/core/ripple/ripple-renderer.js.map +0 -1
  1193. package/core/ripple/ripple-renderer.metadata.json +0 -1
  1194. package/core/ripple/ripple.d.ts +0 -75
  1195. package/core/ripple/ripple.js +0 -179
  1196. package/core/ripple/ripple.js.map +0 -1
  1197. package/core/ripple/ripple.metadata.json +0 -1
  1198. package/core/rtl/dir.d.ts +0 -17
  1199. package/core/rtl/dir.js +0 -83
  1200. package/core/rtl/dir.js.map +0 -1
  1201. package/core/rtl/dir.metadata.json +0 -1
  1202. package/core/style/_button-common.scss +0 -7
  1203. package/core/style/_elevation.scss +0 -174
  1204. package/core/style/_list-common.scss +0 -49
  1205. package/core/style/_sidenav-common.scss +0 -8
  1206. package/core/style/_variables.scss +0 -55
  1207. package/core/style/apply-transform.d.ts +0 -6
  1208. package/core/style/apply-transform.js +0 -14
  1209. package/core/style/apply-transform.js.map +0 -1
  1210. package/core/theming/_all-theme.scss +0 -46
  1211. package/core/theming/_palette.scss +0 -694
  1212. package/core/theming/_theming.scss +0 -84
  1213. package/core/theming/prebuilt/deeppurple-amber.css +0 -446
  1214. package/core/theming/prebuilt/deeppurple-amber.css.map +0 -1
  1215. package/core/theming/prebuilt/deeppurple-amber.scss +0 -14
  1216. package/core/theming/prebuilt/indigo-pink.css +0 -446
  1217. package/core/theming/prebuilt/indigo-pink.css.map +0 -1
  1218. package/core/theming/prebuilt/indigo-pink.scss +0 -14
  1219. package/core/theming/prebuilt/pink-bluegrey.css +0 -446
  1220. package/core/theming/prebuilt/pink-bluegrey.css.map +0 -1
  1221. package/core/theming/prebuilt/pink-bluegrey.scss +0 -14
  1222. package/core/theming/prebuilt/purple-green.css +0 -446
  1223. package/core/theming/prebuilt/purple-green.css.map +0 -1
  1224. package/core/theming/prebuilt/purple-green.scss +0 -14
  1225. package/core/typography/_typography.scss +0 -6
  1226. package/core.js +0 -3
  1227. package/core.js.map +0 -1
  1228. package/dialog/README.md +0 -0
  1229. package/dialog/_dialog-theme.scss +0 -11
  1230. package/dialog/dialog-config.d.ts +0 -11
  1231. package/dialog/dialog-config.js +0 -12
  1232. package/dialog/dialog-config.js.map +0 -1
  1233. package/dialog/dialog-container.css +0 -7
  1234. package/dialog/dialog-container.css.map +0 -1
  1235. package/dialog/dialog-container.d.ts +0 -29
  1236. package/dialog/dialog-container.html +0 -3
  1237. package/dialog/dialog-container.js +0 -88
  1238. package/dialog/dialog-container.js.map +0 -1
  1239. package/dialog/dialog-container.metadata.json +0 -1
  1240. package/dialog/dialog-container.scss +0 -12
  1241. package/dialog/dialog-errors.d.ts +0 -5
  1242. package/dialog/dialog-errors.js +0 -16
  1243. package/dialog/dialog-errors.js.map +0 -1
  1244. package/dialog/dialog-injector.d.ts +0 -9
  1245. package/dialog/dialog-injector.js +0 -17
  1246. package/dialog/dialog-injector.js.map +0 -1
  1247. package/dialog/dialog-ref.d.ts +0 -20
  1248. package/dialog/dialog-ref.js +0 -29
  1249. package/dialog/dialog-ref.js.map +0 -1
  1250. package/dialog/dialog.d.ts +0 -51
  1251. package/dialog/dialog.js +0 -128
  1252. package/dialog/dialog.js.map +0 -1
  1253. package/dialog/dialog.metadata.json +0 -1
  1254. package/dialog/index.js +0 -6
  1255. package/dialog/index.js.map +0 -1
  1256. package/grid-list/README.md +0 -118
  1257. package/grid-list/_grid-list-theme.scss +0 -6
  1258. package/grid-list/grid-list-errors.d.ts +0 -19
  1259. package/grid-list/grid-list-errors.js +0 -38
  1260. package/grid-list/grid-list-errors.js.map +0 -1
  1261. package/grid-list/grid-list-measure.d.ts +0 -10
  1262. package/grid-list/grid-list-measure.js +0 -16
  1263. package/grid-list/grid-list-measure.js.map +0 -1
  1264. package/grid-list/grid-list-measure.metadata.json +0 -1
  1265. package/grid-list/grid-list.css +0 -78
  1266. package/grid-list/grid-list.css.map +0 -1
  1267. package/grid-list/grid-list.d.ts +0 -49
  1268. package/grid-list/grid-list.html +0 -3
  1269. package/grid-list/grid-list.js +0 -165
  1270. package/grid-list/grid-list.js.map +0 -1
  1271. package/grid-list/grid-list.metadata.json +0 -1
  1272. package/grid-list/grid-list.scss +0 -91
  1273. package/grid-list/grid-tile-text.html +0 -3
  1274. package/grid-list/grid-tile.d.ts +0 -28
  1275. package/grid-list/grid-tile.html +0 -4
  1276. package/grid-list/grid-tile.js +0 -87
  1277. package/grid-list/grid-tile.js.map +0 -1
  1278. package/grid-list/grid-tile.metadata.json +0 -1
  1279. package/grid-list/index.js +0 -3
  1280. package/grid-list/index.js.map +0 -1
  1281. package/grid-list/tile-coordinator.d.ts +0 -51
  1282. package/grid-list/tile-coordinator.js +0 -124
  1283. package/grid-list/tile-coordinator.js.map +0 -1
  1284. package/grid-list/tile-styler.d.ts +0 -88
  1285. package/grid-list/tile-styler.js +0 -190
  1286. package/grid-list/tile-styler.js.map +0 -1
  1287. package/icon/README.md +0 -116
  1288. package/icon/_icon-theme.scss +0 -6
  1289. package/icon/fake-svgs.d.ts +0 -5
  1290. package/icon/fake-svgs.js +0 -29
  1291. package/icon/fake-svgs.js.map +0 -1
  1292. package/icon/icon-registry.d.ts +0 -148
  1293. package/icon/icon-registry.js +0 -375
  1294. package/icon/icon-registry.js.map +0 -1
  1295. package/icon/icon-registry.metadata.json +0 -1
  1296. package/icon/icon.css +0 -8
  1297. package/icon/icon.css.map +0 -1
  1298. package/icon/icon.d.ts +0 -85
  1299. package/icon/icon.js +0 -252
  1300. package/icon/icon.js.map +0 -1
  1301. package/icon/icon.metadata.json +0 -1
  1302. package/icon/icon.scss +0 -13
  1303. package/icon/index.js +0 -3
  1304. package/icon/index.js.map +0 -1
  1305. package/index.d.ts +0 -23
  1306. package/index.js +0 -25
  1307. package/index.js.map +0 -1
  1308. package/index.metadata.json +0 -1
  1309. package/input/README.md +0 -121
  1310. package/input/_input-theme.scss +0 -64
  1311. package/input/index.js +0 -3
  1312. package/input/index.js.map +0 -1
  1313. package/input/input.css +0 -109
  1314. package/input/input.css.map +0 -1
  1315. package/input/input.d.ts +0 -134
  1316. package/input/input.html +0 -65
  1317. package/input/input.js +0 -471
  1318. package/input/input.js.map +0 -1
  1319. package/input/input.metadata.json +0 -1
  1320. package/input/input.scss +0 -198
  1321. package/list/README.md +0 -167
  1322. package/list/_list-theme.scss +0 -28
  1323. package/list/index.js +0 -3
  1324. package/list/index.js.map +0 -1
  1325. package/list/list-item.html +0 -5
  1326. package/list/list.css +0 -139
  1327. package/list/list.css.map +0 -1
  1328. package/list/list.d.ts +0 -24
  1329. package/list/list.js +0 -113
  1330. package/list/list.js.map +0 -1
  1331. package/list/list.metadata.json +0 -1
  1332. package/list/list.scss +0 -168
  1333. package/material.umd.js +0 -9017
  1334. package/material.umd.js.map +0 -1
  1335. package/menu/README.md +0 -164
  1336. package/menu/_menu-theme.scss +0 -25
  1337. package/menu/index.js +0 -3
  1338. package/menu/index.js.map +0 -1
  1339. package/menu/menu-directive.d.ts +0 -54
  1340. package/menu/menu-directive.js +0 -158
  1341. package/menu/menu-directive.js.map +0 -1
  1342. package/menu/menu-directive.metadata.json +0 -1
  1343. package/menu/menu-errors.d.ts +0 -21
  1344. package/menu/menu-errors.js +0 -40
  1345. package/menu/menu-errors.js.map +0 -1
  1346. package/menu/menu-item.d.ts +0 -18
  1347. package/menu/menu-item.js +0 -74
  1348. package/menu/menu-item.js.map +0 -1
  1349. package/menu/menu-item.metadata.json +0 -1
  1350. package/menu/menu-positions.d.ts +0 -2
  1351. package/menu/menu-positions.js +0 -3
  1352. package/menu/menu-positions.js.map +0 -1
  1353. package/menu/menu-trigger.d.ts +0 -62
  1354. package/menu/menu-trigger.js +0 -169
  1355. package/menu/menu-trigger.js.map +0 -1
  1356. package/menu/menu-trigger.metadata.json +0 -1
  1357. package/menu/menu.css +0 -41
  1358. package/menu/menu.css.map +0 -1
  1359. package/menu/menu.d.ts +0 -7
  1360. package/menu/menu.html +0 -6
  1361. package/menu/menu.js +0 -39
  1362. package/menu/menu.js.map +0 -1
  1363. package/menu/menu.metadata.json +0 -1
  1364. package/menu/menu.scss +0 -59
  1365. package/module.d.ts +0 -6
  1366. package/module.js +0 -117
  1367. package/module.js.map +0 -1
  1368. package/module.metadata.json +0 -1
  1369. package/progress-bar/README.md +0 -54
  1370. package/progress-bar/_progress-bar-theme.scss +0 -78
  1371. package/progress-bar/index.js +0 -3
  1372. package/progress-bar/index.js.map +0 -1
  1373. package/progress-bar/progress-bar.css +0 -114
  1374. package/progress-bar/progress-bar.css.map +0 -1
  1375. package/progress-bar/progress-bar.d.ts +0 -34
  1376. package/progress-bar/progress-bar.html +0 -5
  1377. package/progress-bar/progress-bar.js +0 -122
  1378. package/progress-bar/progress-bar.js.map +0 -1
  1379. package/progress-bar/progress-bar.metadata.json +0 -1
  1380. package/progress-bar/progress-bar.scss +0 -229
  1381. package/progress-circle/README.md +0 -51
  1382. package/progress-circle/_progress-circle-theme.scss +0 -23
  1383. package/progress-circle/index.d.ts +0 -1
  1384. package/progress-circle/index.js +0 -3
  1385. package/progress-circle/index.js.map +0 -1
  1386. package/progress-circle/index.metadata.json +0 -1
  1387. package/progress-circle/progress-circle.css +0 -43
  1388. package/progress-circle/progress-circle.css.map +0 -1
  1389. package/progress-circle/progress-circle.d.ts +0 -76
  1390. package/progress-circle/progress-circle.html +0 -9
  1391. package/progress-circle/progress-circle.js +0 -315
  1392. package/progress-circle/progress-circle.js.map +0 -1
  1393. package/progress-circle/progress-circle.metadata.json +0 -1
  1394. package/progress-circle/progress-circle.scss +0 -67
  1395. package/radio/README.md +0 -79
  1396. package/radio/_radio-theme.scss +0 -36
  1397. package/radio/index.js +0 -3
  1398. package/radio/index.js.map +0 -1
  1399. package/radio/radio.css +0 -82
  1400. package/radio/radio.css.map +0 -1
  1401. package/radio/radio.d.ts +0 -127
  1402. package/radio/radio.html +0 -27
  1403. package/radio/radio.js +0 -445
  1404. package/radio/radio.js.map +0 -1
  1405. package/radio/radio.metadata.json +0 -1
  1406. package/radio/radio.scss +0 -92
  1407. package/select/index.js +0 -33
  1408. package/select/index.js.map +0 -1
  1409. package/select/select.css +0 -2
  1410. package/select/select.css.map +0 -1
  1411. package/select/select.d.ts +0 -2
  1412. package/select/select.html +0 -1
  1413. package/select/select.js +0 -25
  1414. package/select/select.js.map +0 -1
  1415. package/select/select.metadata.json +0 -1
  1416. package/select/select.scss +0 -0
  1417. package/sidenav/README.md +0 -83
  1418. package/sidenav/_sidenav-theme.scss +0 -37
  1419. package/sidenav/index.js +0 -3
  1420. package/sidenav/index.js.map +0 -1
  1421. package/sidenav/sidenav-transitions.css +0 -10
  1422. package/sidenav/sidenav-transitions.css.map +0 -1
  1423. package/sidenav/sidenav-transitions.scss +0 -14
  1424. package/sidenav/sidenav.css +0 -111
  1425. package/sidenav/sidenav.css.map +0 -1
  1426. package/sidenav/sidenav.d.ts +0 -141
  1427. package/sidenav/sidenav.html +0 -8
  1428. package/sidenav/sidenav.js +0 -479
  1429. package/sidenav/sidenav.js.map +0 -1
  1430. package/sidenav/sidenav.metadata.json +0 -1
  1431. package/sidenav/sidenav.scss +0 -133
  1432. package/slide-toggle/README.md +0 -66
  1433. package/slide-toggle/_slide-toggle-theme.scss +0 -77
  1434. package/slide-toggle/index.js +0 -3
  1435. package/slide-toggle/index.js.map +0 -1
  1436. package/slide-toggle/slide-toggle.css +0 -88
  1437. package/slide-toggle/slide-toggle.css.map +0 -1
  1438. package/slide-toggle/slide-toggle.d.ts +0 -74
  1439. package/slide-toggle/slide-toggle.html +0 -33
  1440. package/slide-toggle/slide-toggle.js +0 -317
  1441. package/slide-toggle/slide-toggle.js.map +0 -1
  1442. package/slide-toggle/slide-toggle.metadata.json +0 -1
  1443. package/slide-toggle/slide-toggle.scss +0 -140
  1444. package/slider/README.md +0 -97
  1445. package/slider/_slider-theme.scss +0 -33
  1446. package/slider/index.js +0 -3
  1447. package/slider/index.js.map +0 -1
  1448. package/slider/slider.css +0 -122
  1449. package/slider/slider.css.map +0 -1
  1450. package/slider/slider.d.ts +0 -155
  1451. package/slider/slider.html +0 -21
  1452. package/slider/slider.js +0 -433
  1453. package/slider/slider.js.map +0 -1
  1454. package/slider/slider.metadata.json +0 -1
  1455. package/slider/slider.scss +0 -186
  1456. package/slider/test-gesture-config.d.ts +0 -21
  1457. package/slider/test-gesture-config.js +0 -59
  1458. package/slider/test-gesture-config.js.map +0 -1
  1459. package/slider/test-gesture-config.metadata.json +0 -1
  1460. package/snack-bar/README.md +0 -38
  1461. package/snack-bar/index.js +0 -6
  1462. package/snack-bar/index.js.map +0 -1
  1463. package/snack-bar/simple-snack-bar.css +0 -27
  1464. package/snack-bar/simple-snack-bar.css.map +0 -1
  1465. package/snack-bar/simple-snack-bar.d.ts +0 -17
  1466. package/snack-bar/simple-snack-bar.html +0 -3
  1467. package/snack-bar/simple-snack-bar.js +0 -38
  1468. package/snack-bar/simple-snack-bar.js.map +0 -1
  1469. package/snack-bar/simple-snack-bar.metadata.json +0 -1
  1470. package/snack-bar/simple-snack-bar.scss +0 -28
  1471. package/snack-bar/snack-bar-config.d.ts +0 -11
  1472. package/snack-bar/snack-bar-config.js +0 -10
  1473. package/snack-bar/snack-bar-config.js.map +0 -1
  1474. package/snack-bar/snack-bar-container.css +0 -12
  1475. package/snack-bar/snack-bar-container.css.map +0 -1
  1476. package/snack-bar/snack-bar-container.d.ts +0 -15
  1477. package/snack-bar/snack-bar-container.html +0 -1
  1478. package/snack-bar/snack-bar-container.js +0 -53
  1479. package/snack-bar/snack-bar-container.js.map +0 -1
  1480. package/snack-bar/snack-bar-container.metadata.json +0 -1
  1481. package/snack-bar/snack-bar-container.scss +0 -19
  1482. package/snack-bar/snack-bar-errors.d.ts +0 -4
  1483. package/snack-bar/snack-bar-errors.js +0 -15
  1484. package/snack-bar/snack-bar-errors.js.map +0 -1
  1485. package/snack-bar/snack-bar-ref.d.ts +0 -17
  1486. package/snack-bar/snack-bar-ref.js +0 -28
  1487. package/snack-bar/snack-bar-ref.js.map +0 -1
  1488. package/snack-bar/snack-bar.d.ts +0 -41
  1489. package/snack-bar/snack-bar.js +0 -110
  1490. package/snack-bar/snack-bar.js.map +0 -1
  1491. package/snack-bar/snack-bar.metadata.json +0 -1
  1492. package/tabs/README.md +0 -47
  1493. package/tabs/_tabs-theme.scss +0 -23
  1494. package/tabs/index.js +0 -3
  1495. package/tabs/index.js.map +0 -1
  1496. package/tabs/ink-bar.d.ts +0 -24
  1497. package/tabs/ink-bar.js +0 -50
  1498. package/tabs/ink-bar.js.map +0 -1
  1499. package/tabs/ink-bar.metadata.json +0 -1
  1500. package/tabs/tab-content.d.ts +0 -6
  1501. package/tabs/tab-content.js +0 -32
  1502. package/tabs/tab-content.js.map +0 -1
  1503. package/tabs/tab-content.metadata.json +0 -1
  1504. package/tabs/tab-group.css +0 -55
  1505. package/tabs/tab-group.css.map +0 -1
  1506. package/tabs/tab-group.html +0 -27
  1507. package/tabs/tab-group.scss +0 -72
  1508. package/tabs/tab-label-wrapper.d.ts +0 -10
  1509. package/tabs/tab-label-wrapper.js +0 -31
  1510. package/tabs/tab-label-wrapper.js.map +0 -1
  1511. package/tabs/tab-label-wrapper.metadata.json +0 -1
  1512. package/tabs/tab-label.d.ts +0 -6
  1513. package/tabs/tab-label.js +0 -32
  1514. package/tabs/tab-label.js.map +0 -1
  1515. package/tabs/tab-label.metadata.json +0 -1
  1516. package/tabs/tabs.d.ts +0 -79
  1517. package/tabs/tabs.js +0 -290
  1518. package/tabs/tabs.js.map +0 -1
  1519. package/tabs/tabs.metadata.json +0 -1
  1520. package/toolbar/README.md +0 -68
  1521. package/toolbar/_toolbar-theme.scss +0 -33
  1522. package/toolbar/index.js +0 -3
  1523. package/toolbar/index.js.map +0 -1
  1524. package/toolbar/toolbar.css +0 -19
  1525. package/toolbar/toolbar.css.map +0 -1
  1526. package/toolbar/toolbar.d.ts +0 -17
  1527. package/toolbar/toolbar.html +0 -6
  1528. package/toolbar/toolbar.js +0 -83
  1529. package/toolbar/toolbar.js.map +0 -1
  1530. package/toolbar/toolbar.metadata.json +0 -1
  1531. package/toolbar/toolbar.scss +0 -36
  1532. package/tooltip/README.md +0 -32
  1533. package/tooltip/_tooltip-theme.scss +0 -9
  1534. package/tooltip/index.js +0 -3
  1535. package/tooltip/index.js.map +0 -1
  1536. package/tooltip/tooltip.css +0 -14
  1537. package/tooltip/tooltip.css.map +0 -1
  1538. package/tooltip/tooltip.d.ts +0 -67
  1539. package/tooltip/tooltip.html +0 -0
  1540. package/tooltip/tooltip.js +0 -210
  1541. package/tooltip/tooltip.js.map +0 -1
  1542. package/tooltip/tooltip.metadata.json +0 -1
  1543. package/tooltip/tooltip.scss +0 -21
  1544. package/tsconfig-spec.json +0 -33
  1545. package/tsconfig.json +0 -33
  1546. package/typings.d.ts +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"material-tabs.umd.min.js","sources":["../../src/lib/tabs/tab.ts","../../src/lib/tabs/tab-body.ts","../../src/lib/tabs/tab-group.ts","../../src/lib/tabs/tab-label-wrapper.ts","../../src/lib/tabs/tab-header.ts","../../src/lib/tabs/tab-nav-bar/tab-nav-bar.ts","../../src/lib/tabs/tabs-module.ts","../../node_modules/tslib/tslib.es6.js","../../src/lib/core/compatibility/compatibility.ts","../../src/lib/core/common-behaviors/common-module.ts","../../src/lib/core/common-behaviors/disable-ripple.ts","../../src/lib/core/datetime/date-adapter.ts","../../src/lib/core/ripple/ripple-renderer.ts","../../src/lib/core/animation/animation.ts","../../src/lib/core/common-behaviors/color.ts","../../src/lib/core/common-behaviors/tabindex.ts","../../src/lib/core/coordination/unique-selection-dispatcher.ts","../../src/lib/core/datetime/native-date-adapter.ts","../../src/lib/core/util/object-extend.ts","../../src/lib/core/datetime/native-date-formats.ts","../../src/lib/core/datetime/index.ts","../../src/lib/core/error/error-options.ts","../../src/lib/core/gestures/gesture-config.ts","../../src/lib/core/line/line.ts","../../src/lib/core/ripple/ripple-ref.ts","../../src/lib/core/ripple/ripple.ts","../../src/lib/core/ripple/index.ts","../../src/lib/core/selection/pseudo-checkbox/pseudo-checkbox.ts","../../src/lib/core/selection/index.ts","../../src/lib/core/option/optgroup.ts","../../src/lib/core/option/option.ts","../../src/lib/core/option/index.ts","../../src/lib/core/portal/portal-injector.ts","../../src/lib/core/style/index.ts","../../src/lib/core/testing/month-constants.ts","../../src/lib/tabs/ink-bar.ts","../../src/lib/tabs/tab-label.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n\nimport {TemplatePortal} from '@angular/material/core';\nimport {\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewContainerRef,\n ViewEncapsulation,\n} from '@angular/core';\nimport {CanDisable, mixinDisabled} from '@angular/material/core';\nimport {MdTabLabel} from './tab-label';\nimport {Subject} from 'rxjs/Subject';\n/**\n * \\@docs-private\n */\nexport class MdTabBase {}\nexport const /** @type {?} */ _MdTabMixinBase = mixinDisabled(MdTabBase);\nexport class MdTab extends _MdTabMixinBase implements OnInit, CanDisable, OnChanges, OnDestroy {\n/**\n * Content for the tab label given by <ng-template md-tab-label>.\n */\ntemplateLabel: MdTabLabel;\n/**\n * Template inside the MdTab view that contains an <ng-content>.\n */\n_content: TemplateRef<any>;\n/**\n * The plain text label for the tab, used when there is no template label.\n */\ntextLabel: string = '';\n/**\n * The portal that will be the hosted content of the tab\n */\nprivate _contentPortal: TemplatePortal<any> | null = null;\n/**\n * @return {?}\n */\nget content(): TemplatePortal<any> | null { return this._contentPortal; }\n/**\n * Emits whenever the label changes.\n */\n_labelChange = new Subject<void>();\n/**\n * Emits whenevfer the disable changes\n */\n_disableChange = new Subject<void>();\n/**\n * The relatively indexed position where 0 represents the center, negative is left, and positive\n * represents the right.\n */\nposition: number | null = null;\n/**\n * The initial relatively index origin of the tab if it was created and selected after there\n * was already a selected tab. Provides context of what position the tab should originate from.\n */\norigin: number | null = null;\n/**\n * Whether the tab is currently active.\n */\nisActive = false;\n/**\n * @param {?} _viewContainerRef\n */\nconstructor(private _viewContainerRef: ViewContainerRef) {\n super();\n }\n/**\n * @param {?} changes\n * @return {?}\n */\nngOnChanges(changes: SimpleChanges): void {\n if (changes.hasOwnProperty('textLabel')) {\n this._labelChange.next();\n }\n\n if (changes.hasOwnProperty('disabled')) {\n this._disableChange.next();\n }\n }\n/**\n * @return {?}\n */\nngOnDestroy(): void {\n this._disableChange.complete();\n this._labelChange.complete();\n }\n/**\n * @return {?}\n */\nngOnInit(): void {\n this._contentPortal = new TemplatePortal(this._content, this._viewContainerRef);\n }\nstatic decorators: DecoratorInvocation[] = [\n{ type: Component, args: [{\n moduleId: module.id,\n selector: 'md-tab, mat-tab',\n templateUrl: 'tab.html',\n inputs: ['disabled'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n exportAs: 'mdTab, matTab',\n}, ] },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n{type: ViewContainerRef, },\n];\nstatic propDecorators: {[key: string]: DecoratorInvocation[]} = {\n'templateLabel': [{ type: ContentChild, args: [MdTabLabel, ] },],\n'_content': [{ type: ViewChild, args: [TemplateRef, ] },],\n'textLabel': [{ type: Input, args: ['label', ] },],\n};\n}\n\nfunction MdTab_tsickle_Closure_declarations() {\n/** @type {?} */\nMdTab.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nMdTab.ctorParameters;\n/** @type {?} */\nMdTab.propDecorators;\n/**\n * Content for the tab label given by <ng-template md-tab-label>.\n * @type {?}\n */\nMdTab.prototype.templateLabel;\n/**\n * Template inside the MdTab view that contains an <ng-content>.\n * @type {?}\n */\nMdTab.prototype._content;\n/**\n * The plain text label for the tab, used when there is no template label.\n * @type {?}\n */\nMdTab.prototype.textLabel;\n/**\n * The portal that will be the hosted content of the tab\n * @type {?}\n */\nMdTab.prototype._contentPortal;\n/**\n * Emits whenever the label changes.\n * @type {?}\n */\nMdTab.prototype._labelChange;\n/**\n * Emits whenevfer the disable changes\n * @type {?}\n */\nMdTab.prototype._disableChange;\n/**\n * The relatively indexed position where 0 represents the center, negative is left, and positive\n * represents the right.\n * @type {?}\n */\nMdTab.prototype.position;\n/**\n * The initial relatively index origin of the tab if it was created and selected after there\n * was already a selected tab. Provides context of what position the tab should originate from.\n * @type {?}\n */\nMdTab.prototype.origin;\n/**\n * Whether the tab is currently active.\n * @type {?}\n */\nMdTab.prototype.isActive;\n/** @type {?} */\nMdTab.prototype._viewContainerRef;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n\nimport {\n ViewChild,\n Component,\n Input,\n Output,\n EventEmitter,\n OnInit,\n ElementRef,\n Optional,\n AfterViewChecked,\n ViewEncapsulation,\n ChangeDetectionStrategy,\n} from '@angular/core';\nimport {\n trigger,\n state,\n style,\n animate,\n transition,\n AnimationEvent,\n} from '@angular/animations';\nimport {TemplatePortal, PortalHostDirective} from '@angular/cdk/portal';\nimport {Directionality, Direction} from '@angular/cdk/bidi';\n\n\n/**\n * These position states are used internally as animation states for the tab body. Setting the\n * position state to left, right, or center will transition the tab body from its current\n * position to its respective state. If there is not current position (void, in the case of a new\n * tab body), then there will be no transition animation to its state.\n *\n * In the case of a new tab body that should immediately be centered with an animating transition,\n * then left-origin-center or right-origin-center can be used, which will use left or right as its\n * psuedo-prior state.\n */\nexport type MdTabBodyPositionState =\n 'left' | 'center' | 'right' | 'left-origin-center' | 'right-origin-center';\n\n/**\n * The origin state is an internally used state that is set on a new tab body indicating if it\n * began to the left or right of the prior selected index. For example, if the selected index was\n * set to 1, and a new tab is created and selected at index 2, then the tab body would have an\n * origin of right because its index was greater than the prior selected index.\n */\nexport type MdTabBodyOriginState = 'left' | 'right';\n/**\n * Wrapper for the contents of a tab.\n * \\@docs-private\n */\nexport class MdTabBody implements OnInit, AfterViewChecked {\n/**\n * The portal host inside of this container into which the tab body content will be loaded.\n */\n_portalHost: PortalHostDirective;\n/**\n * Event emitted when the tab begins to animate towards the center as the active tab.\n */\nonCentering: EventEmitter<number> = new EventEmitter<number>();\n/**\n * Event emitted when the tab completes its animation towards the center.\n */\nonCentered: EventEmitter<void> = new EventEmitter<void>(true);\n/**\n * The tab body content to display.\n */\n_content: TemplatePortal<any>;\n/**\n * The shifted index position of the tab body, where zero represents the active center tab.\n */\n_position: MdTabBodyPositionState;\n/**\n * @param {?} position\n * @return {?}\n */\nset position(position: number) {\n if (position < 0) {\n this._position = this._getLayoutDirection() == 'ltr' ? 'left' : 'right';\n } else if (position > 0) {\n this._position = this._getLayoutDirection() == 'ltr' ? 'right' : 'left';\n } else {\n this._position = 'center';\n }\n }\n/**\n * The origin position from which this tab should appear when it is centered into view.\n */\n_origin: MdTabBodyOriginState;\n/**\n * The origin position from which this tab should appear when it is centered into view.\n * @param {?} origin\n * @return {?}\n */\nset origin(origin: number) {\n if (origin == null) { return; }\n\n const /** @type {?} */ dir = this._getLayoutDirection();\n if ((dir == 'ltr' && origin <= 0) || (dir == 'rtl' && origin > 0)) {\n this._origin = 'left';\n } else {\n this._origin = 'right';\n }\n }\n/**\n * @param {?} _elementRef\n * @param {?} _dir\n */\nconstructor(private _elementRef: ElementRef,\nprivate _dir: Directionality) { }\n/**\n * After initialized, check if the content is centered and has an origin. If so, set the\n * special position states that transition the tab from the left or right before centering.\n * @return {?}\n */\nngOnInit() {\n if (this._position == 'center' && this._origin) {\n this._position = this._origin == 'left' ? 'left-origin-center' : 'right-origin-center';\n }\n }\n/**\n * After the view has been set, check if the tab content is set to the center and attach the\n * content if it is not already attached.\n * @return {?}\n */\nngAfterViewChecked() {\n if (this._isCenterPosition(this._position) && !this._portalHost.hasAttached()) {\n this._portalHost.attach(this._content);\n }\n }\n/**\n * @param {?} e\n * @return {?}\n */\n_onTranslateTabStarted(e: AnimationEvent) {\n if (this._isCenterPosition(e.toState)) {\n this.onCentering.emit(this._elementRef.nativeElement.clientHeight);\n }\n }\n/**\n * @param {?} e\n * @return {?}\n */\n_onTranslateTabComplete(e: AnimationEvent) {\n // If the end state is that the tab is not centered, then detach the content.\n if (!this._isCenterPosition(e.toState) && !this._isCenterPosition(this._position)) {\n this._portalHost.detach();\n }\n\n // If the transition to the center is complete, emit an event.\n if (this._isCenterPosition(e.toState) && this._isCenterPosition(this._position)) {\n this.onCentered.emit();\n }\n }\n/**\n * The text direction of the containing app.\n * @return {?}\n */\n_getLayoutDirection(): Direction {\n return this._dir && this._dir.value === 'rtl' ? 'rtl' : 'ltr';\n }\n/**\n * Whether the provided position state is considered center, regardless of origin.\n * @param {?} position\n * @return {?}\n */\nprivate _isCenterPosition(position: MdTabBodyPositionState|string): boolean {\n return position == 'center' ||\n position == 'left-origin-center' ||\n position == 'right-origin-center';\n }\nstatic decorators: DecoratorInvocation[] = [\n{ type: Component, args: [{\n moduleId: module.id,\n selector: 'md-tab-body, mat-tab-body',\n templateUrl: 'tab-body.html',\n styleUrls: ['tab-body.css'],\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'class': 'mat-tab-body',\n },\n animations: [\n trigger('translateTab', [\n state('void', style({transform: 'translate3d(0%, 0, 0)'})),\n state('left', style({transform: 'translate3d(-100%, 0, 0)'})),\n state('left-origin-center', style({transform: 'translate3d(0%, 0, 0)'})),\n state('right-origin-center', style({transform: 'translate3d(0%, 0, 0)'})),\n state('center', style({transform: 'translate3d(0%, 0, 0)'})),\n state('right', style({transform: 'translate3d(100%, 0, 0)'})),\n transition('* => left, * => right, left => center, right => center',\n animate('500ms cubic-bezier(0.35, 0, 0.25, 1)')),\n transition('void => left-origin-center', [\n style({transform: 'translate3d(-100%, 0, 0)'}),\n animate('500ms cubic-bezier(0.35, 0, 0.25, 1)')\n ]),\n transition('void => right-origin-center', [\n style({transform: 'translate3d(100%, 0, 0)'}),\n animate('500ms cubic-bezier(0.35, 0, 0.25, 1)')\n ])\n ])\n ]\n}, ] },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n{type: ElementRef, },\n{type: Directionality, decorators: [{ type: Optional }, ]},\n];\nstatic propDecorators: {[key: string]: DecoratorInvocation[]} = {\n'_portalHost': [{ type: ViewChild, args: [PortalHostDirective, ] },],\n'onCentering': [{ type: Output },],\n'onCentered': [{ type: Output },],\n'_content': [{ type: Input, args: ['content', ] },],\n'position': [{ type: Input, args: ['position', ] },],\n'origin': [{ type: Input, args: ['origin', ] },],\n};\n}\n\nfunction MdTabBody_tsickle_Closure_declarations() {\n/** @type {?} */\nMdTabBody.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nMdTabBody.ctorParameters;\n/** @type {?} */\nMdTabBody.propDecorators;\n/**\n * The portal host inside of this container into which the tab body content will be loaded.\n * @type {?}\n */\nMdTabBody.prototype._portalHost;\n/**\n * Event emitted when the tab begins to animate towards the center as the active tab.\n * @type {?}\n */\nMdTabBody.prototype.onCentering;\n/**\n * Event emitted when the tab completes its animation towards the center.\n * @type {?}\n */\nMdTabBody.prototype.onCentered;\n/**\n * The tab body content to display.\n * @type {?}\n */\nMdTabBody.prototype._content;\n/**\n * The shifted index position of the tab body, where zero represents the active center tab.\n * @type {?}\n */\nMdTabBody.prototype._position;\n/**\n * The origin position from which this tab should appear when it is centered into view.\n * @type {?}\n */\nMdTabBody.prototype._origin;\n/** @type {?} */\nMdTabBody.prototype._elementRef;\n/** @type {?} */\nMdTabBody.prototype._dir;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n\nimport {\n ViewChild,\n Component,\n Input,\n Output,\n EventEmitter,\n QueryList,\n ContentChildren,\n ElementRef,\n Renderer2,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n AfterViewChecked,\n AfterContentInit,\n AfterContentChecked,\n OnDestroy,\n ViewEncapsulation,\n} from '@angular/core';\nimport {coerceBooleanProperty} from '@angular/cdk/coercion';\nimport {Subscription} from 'rxjs/Subscription';\nimport {MdTab} from './tab';\nimport {merge} from 'rxjs/observable/merge';\nimport {\n CanDisableRipple, MATERIAL_COMPATIBILITY_MODE,\n mixinDisableRipple\n} from '@angular/material/core';\nimport {CanColor, mixinColor, ThemePalette} from '@angular/material/core';\n/**\n * Used to generate unique ID's for each tab component\n */\nlet nextId = 0;\n/**\n * A simple change event emitted on focus or selection changes.\n */\nexport class MdTabChangeEvent {\n index: number;\n tab: MdTab;\n}\n\nfunction MdTabChangeEvent_tsickle_Closure_declarations() {\n/** @type {?} */\nMdTabChangeEvent.prototype.index;\n/** @type {?} */\nMdTabChangeEvent.prototype.tab;\n}\n\n\n/** Possible positions for the tab header. */\nexport type MdTabHeaderPosition = 'above' | 'below';\n/**\n * \\@docs-private\n */\nexport class MdTabGroupBase {\n/**\n * @param {?} _renderer\n * @param {?} _elementRef\n */\nconstructor(public _renderer: Renderer2,\npublic _elementRef: ElementRef) {}\n}\n\nfunction MdTabGroupBase_tsickle_Closure_declarations() {\n/** @type {?} */\nMdTabGroupBase.prototype._renderer;\n/** @type {?} */\nMdTabGroupBase.prototype._elementRef;\n}\n\nexport const /** @type {?} */ _MdTabGroupMixinBase = mixinColor(mixinDisableRipple(MdTabGroupBase), 'primary');\n/**\n * Material design tab-group component. Supports basic tab pairs (label + content) and includes\n * animated ink-bar, keyboard navigation, and screen reader.\n * See: https://www.google.com/design/spec/components/tabs.html\n */\nexport class MdTabGroup extends _MdTabGroupMixinBase implements AfterContentInit,\n AfterContentChecked, AfterViewChecked, OnDestroy, CanColor, CanDisableRipple {\n\n _tabs: QueryList<MdTab>;\n\n _tabBodyWrapper: ElementRef;\n/**\n * Whether this component has been initialized.\n */\nprivate _isInitialized: boolean = false;\n/**\n * The tab index that should be selected after the content has been checked.\n */\nprivate _indexToSelect: number | null = 0;\n/**\n * Snapshot of the height of the tab body wrapper before another tab is activated.\n */\nprivate _tabBodyWrapperHeight: number = 0;\n/**\n * Subscription to tabs being added/removed.\n */\nprivate _tabsSubscription = Subscription.EMPTY;\n/**\n * Subscription to changes in the tab labels.\n */\nprivate _tabLabelSubscription = Subscription.EMPTY;\n/**\n * Whether the tab group should grow to the size of the active tab.\n * @return {?}\n */\nget dynamicHeight(): boolean { return this._dynamicHeight; }\n/**\n * @param {?} value\n * @return {?}\n */\nset dynamicHeight(value: boolean) { this._dynamicHeight = coerceBooleanProperty(value); }\nprivate _dynamicHeight: boolean = false;\n/**\n * @deprecated\n * @return {?}\n */\nget _dynamicHeightDeprecated(): boolean { return this._dynamicHeight; }\n/**\n * @param {?} value\n * @return {?}\n */\nset _dynamicHeightDeprecated(value: boolean) { this._dynamicHeight = value; }\n/**\n * The index of the active tab.\n * @param {?} value\n * @return {?}\n */\nset selectedIndex(value: number | null) { this._indexToSelect = value; }\n/**\n * @return {?}\n */\nget selectedIndex(): number | null { return this._selectedIndex; }\nprivate _selectedIndex: number | null = null;\n/**\n * Position of the tab header.\n */\nheaderPosition: MdTabHeaderPosition = 'above';\n/**\n * Background color of the tab group.\n * @return {?}\n */\nget backgroundColor(): ThemePalette { return this._backgroundColor; }\n/**\n * @param {?} value\n * @return {?}\n */\nset backgroundColor(value: ThemePalette) {\n let /** @type {?} */ nativeElement = this._elementRef.nativeElement;\n\n this._renderer.removeClass(nativeElement, `mat-background-${this.backgroundColor}`);\n\n if (value) {\n this._renderer.addClass(nativeElement, `mat-background-${value}`);\n }\n\n this._backgroundColor = value;\n }\nprivate _backgroundColor: ThemePalette;\n/**\n * Output to enable support for two-way binding on `[(selectedIndex)]`\n */\nselectedIndexChange: EventEmitter<number> = new EventEmitter();\n/**\n * Event emitted when focus has changed within a tab group.\n */\nfocusChange: EventEmitter<MdTabChangeEvent> = new EventEmitter<MdTabChangeEvent>();\n/**\n * Event emitted when the tab selection has changed.\n */\nselectChange: EventEmitter<MdTabChangeEvent> = new EventEmitter<MdTabChangeEvent>(true);\nprivate _groupId: number;\n/**\n * @param {?} _renderer\n * @param {?} elementRef\n * @param {?} _changeDetectorRef\n */\nconstructor(_renderer: Renderer2,\n elementRef: ElementRef,\nprivate _changeDetectorRef: ChangeDetectorRef) {\n super(_renderer, elementRef);\n this._groupId = nextId++;\n }\n/**\n * After the content is checked, this component knows what tabs have been defined\n * and what the selected index should be. This is where we can know exactly what position\n * each tab should be in according to the new selected index, and additionally we know how\n * a new selected tab should transition in (from the left or right).\n * @return {?}\n */\nngAfterContentChecked(): void {\n // Clamp the next selected index to the boundsof 0 and the tabs length.\n // Note the `|| 0`, which ensures that values like NaN can't get through\n // and which would otherwise throw the component into an infinite loop\n // (since Math.max(NaN, 0) === NaN).\n let /** @type {?} */ indexToSelect = this._indexToSelect =\n Math.min(this._tabs.length - 1, Math.max(this._indexToSelect || 0, 0));\n\n // If there is a change in selected index, emit a change event. Should not trigger if\n // the selected index has not yet been initialized.\n if (this._selectedIndex != indexToSelect && this._selectedIndex != null) {\n this.selectChange.emit(this._createChangeEvent(indexToSelect));\n // Emitting this value after change detection has run\n // since the checked content may contain this variable'\n Promise.resolve().then(() => this.selectedIndexChange.emit(indexToSelect));\n }\n\n // Setup the position for each tab and optionally setup an origin on the next selected tab.\n this._tabs.forEach((tab: MdTab, index: number) => {\n tab.position = index - indexToSelect;\n tab.isActive = index === indexToSelect;\n\n // If there is already a selected tab, then set up an origin for the next selected tab\n // if it doesn't have one already.\n if (this._selectedIndex != null && tab.position == 0 && !tab.origin) {\n tab.origin = indexToSelect - this._selectedIndex;\n }\n });\n\n if (this._selectedIndex !== indexToSelect) {\n this._selectedIndex = indexToSelect;\n this._changeDetectorRef.markForCheck();\n }\n }\n/**\n * @return {?}\n */\nngAfterContentInit() {\n this._subscribeToTabLabels();\n\n // Subscribe to changes in the amount of tabs, in order to be\n // able to re-render the content as new tabs are added or removed.\n this._tabsSubscription = this._tabs.changes.subscribe(() => {\n this._subscribeToTabLabels();\n this._changeDetectorRef.markForCheck();\n });\n }\n/**\n * @return {?}\n */\nngOnDestroy() {\n this._tabsSubscription.unsubscribe();\n this._tabLabelSubscription.unsubscribe();\n }\n/**\n * Waits one frame for the view to update, then updates the ink bar\n * Note: This must be run outside of the zone or it will create an infinite change detection loop.\n * @return {?}\n */\nngAfterViewChecked(): void {\n this._isInitialized = true;\n }\n/**\n * @param {?} index\n * @return {?}\n */\n_focusChanged(index: number) {\n this.focusChange.emit(this._createChangeEvent(index));\n }\n/**\n * @param {?} index\n * @return {?}\n */\nprivate _createChangeEvent(index: number): MdTabChangeEvent {\n const /** @type {?} */ event = new MdTabChangeEvent;\n event.index = index;\n if (this._tabs && this._tabs.length) {\n event.tab = this._tabs.toArray()[index];\n }\n return event;\n }\n/**\n * Subscribes to changes in the tab labels. This is needed, because the \\@Input for the label is\n * on the MdTab component, whereas the data binding is inside the MdTabGroup. In order for the\n * binding to be updated, we need to subscribe to changes in it and trigger change detection\n * manually.\n * @return {?}\n */\nprivate _subscribeToTabLabels() {\n if (this._tabLabelSubscription) {\n this._tabLabelSubscription.unsubscribe();\n }\n\n this._tabLabelSubscription = merge(\n ...this._tabs.map(tab => tab._disableChange),\n ...this._tabs.map(tab => tab._labelChange)).subscribe(() => {\n this._changeDetectorRef.markForCheck();\n });\n }\n/**\n * Returns a unique id for each tab label element\n * @param {?} i\n * @return {?}\n */\n_getTabLabelId(i: number): string {\n return `md-tab-label-${this._groupId}-${i}`;\n }\n/**\n * Returns a unique id for each tab content element\n * @param {?} i\n * @return {?}\n */\n_getTabContentId(i: number): string {\n return `md-tab-content-${this._groupId}-${i}`;\n }\n/**\n * Sets the height of the body wrapper to the height of the activating tab if dynamic\n * height property is true.\n * @param {?} tabHeight\n * @return {?}\n */\n_setTabBodyWrapperHeight(tabHeight: number): void {\n if (!this._dynamicHeight || !this._tabBodyWrapperHeight) { return; }\n\n this._renderer.setStyle(this._tabBodyWrapper.nativeElement, 'height',\n this._tabBodyWrapperHeight + 'px');\n\n // This conditional forces the browser to paint the height so that\n // the animation to the new height can have an origin.\n if (this._tabBodyWrapper.nativeElement.offsetHeight) {\n this._renderer.setStyle(this._tabBodyWrapper.nativeElement, 'height',\n tabHeight + 'px');\n }\n }\n/**\n * Removes the height of the tab body wrapper.\n * @return {?}\n */\n_removeTabBodyWrapperHeight(): void {\n this._tabBodyWrapperHeight = this._tabBodyWrapper.nativeElement.clientHeight;\n this._renderer.setStyle(this._tabBodyWrapper.nativeElement, 'height', '');\n }\nstatic decorators: DecoratorInvocation[] = [\n{ type: Component, args: [{\n moduleId: module.id,\n selector: 'md-tab-group, mat-tab-group',\n templateUrl: 'tab-group.html',\n styleUrls: ['tab-group.css'],\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n inputs: ['color', 'disableRipple'],\n host: {\n 'class': 'mat-tab-group',\n '[class.mat-tab-group-dynamic-height]': 'dynamicHeight',\n '[class.mat-tab-group-inverted-header]': 'headerPosition === \"below\"',\n },\n viewProviders: [{provide: MATERIAL_COMPATIBILITY_MODE, useValue: true}],\n}, ] },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n{type: Renderer2, },\n{type: ElementRef, },\n{type: ChangeDetectorRef, },\n];\nstatic propDecorators: {[key: string]: DecoratorInvocation[]} = {\n'_tabs': [{ type: ContentChildren, args: [MdTab, ] },],\n'_tabBodyWrapper': [{ type: ViewChild, args: ['tabBodyWrapper', ] },],\n'dynamicHeight': [{ type: Input },],\n'_dynamicHeightDeprecated': [{ type: Input, args: ['md-dynamic-height', ] },],\n'selectedIndex': [{ type: Input },],\n'headerPosition': [{ type: Input },],\n'backgroundColor': [{ type: Input },],\n'selectedIndexChange': [{ type: Output },],\n'focusChange': [{ type: Output },],\n'selectChange': [{ type: Output },],\n};\n}\n\nfunction MdTabGroup_tsickle_Closure_declarations() {\n/** @type {?} */\nMdTabGroup.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nMdTabGroup.ctorParameters;\n/** @type {?} */\nMdTabGroup.propDecorators;\n/** @type {?} */\nMdTabGroup.prototype._tabs;\n/** @type {?} */\nMdTabGroup.prototype._tabBodyWrapper;\n/**\n * Whether this component has been initialized.\n * @type {?}\n */\nMdTabGroup.prototype._isInitialized;\n/**\n * The tab index that should be selected after the content has been checked.\n * @type {?}\n */\nMdTabGroup.prototype._indexToSelect;\n/**\n * Snapshot of the height of the tab body wrapper before another tab is activated.\n * @type {?}\n */\nMdTabGroup.prototype._tabBodyWrapperHeight;\n/**\n * Subscription to tabs being added/removed.\n * @type {?}\n */\nMdTabGroup.prototype._tabsSubscription;\n/**\n * Subscription to changes in the tab labels.\n * @type {?}\n */\nMdTabGroup.prototype._tabLabelSubscription;\n/** @type {?} */\nMdTabGroup.prototype._dynamicHeight;\n/** @type {?} */\nMdTabGroup.prototype._selectedIndex;\n/**\n * Position of the tab header.\n * @type {?}\n */\nMdTabGroup.prototype.headerPosition;\n/** @type {?} */\nMdTabGroup.prototype._backgroundColor;\n/**\n * Output to enable support for two-way binding on `[(selectedIndex)]`\n * @type {?}\n */\nMdTabGroup.prototype.selectedIndexChange;\n/**\n * Event emitted when focus has changed within a tab group.\n * @type {?}\n */\nMdTabGroup.prototype.focusChange;\n/**\n * Event emitted when the tab selection has changed.\n * @type {?}\n */\nMdTabGroup.prototype.selectChange;\n/** @type {?} */\nMdTabGroup.prototype._groupId;\n/** @type {?} */\nMdTabGroup.prototype._changeDetectorRef;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n\nimport {Directive, ElementRef} from '@angular/core';\nimport {CanDisable, mixinDisabled} from '@angular/material/core';\n/**\n * \\@docs-private\n */\nexport class MdTabLabelWrapperBase {}\nexport const /** @type {?} */ _MdTabLabelWrapperMixinBase = mixinDisabled(MdTabLabelWrapperBase);\n/**\n * Used in the `md-tab-group` view to display tab labels.\n * \\@docs-private\n */\nexport class MdTabLabelWrapper extends _MdTabLabelWrapperMixinBase implements CanDisable {\n/**\n * @param {?} elementRef\n */\nconstructor(public elementRef: ElementRef) {\n super();\n }\n/**\n * Sets focus on the wrapper element\n * @return {?}\n */\nfocus(): void {\n this.elementRef.nativeElement.focus();\n }\n/**\n * @return {?}\n */\ngetOffsetLeft(): number {\n return this.elementRef.nativeElement.offsetLeft;\n }\n/**\n * @return {?}\n */\ngetOffsetWidth(): number {\n return this.elementRef.nativeElement.offsetWidth;\n }\nstatic decorators: DecoratorInvocation[] = [\n{ type: Directive, args: [{\n selector: '[mdTabLabelWrapper], [matTabLabelWrapper]',\n inputs: ['disabled'],\n host: {\n '[class.mat-tab-disabled]': 'disabled'\n }\n}, ] },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n{type: ElementRef, },\n];\n}\n\nfunction MdTabLabelWrapper_tsickle_Closure_declarations() {\n/** @type {?} */\nMdTabLabelWrapper.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nMdTabLabelWrapper.ctorParameters;\n/** @type {?} */\nMdTabLabelWrapper.prototype.elementRef;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n\nimport {Direction, Directionality} from '@angular/cdk/bidi';\nimport {ENTER, LEFT_ARROW, RIGHT_ARROW, SPACE} from '@angular/cdk/keycodes';\nimport {auditTime, startWith} from '@angular/cdk/rxjs';\nimport {\n AfterContentChecked,\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n Optional,\n Output,\n QueryList,\n Renderer2,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport {\n CanDisableRipple, MATERIAL_COMPATIBILITY_MODE,\n mixinDisableRipple\n} from '@angular/material/core';\nimport {fromEvent} from 'rxjs/observable/fromEvent';\nimport {merge} from 'rxjs/observable/merge';\nimport {of as observableOf} from 'rxjs/observable/of';\nimport {Subscription} from 'rxjs/Subscription';\nimport {MdInkBar} from './ink-bar';\nimport {MdTabLabelWrapper} from './tab-label-wrapper';\n\n\n/**\n * The directions that scrolling can go in when the header's tabs exceed the header width. 'After'\n * will scroll the header towards the end of the tabs list and 'before' will scroll towards the\n * beginning of the list.\n */\nexport type ScrollDirection = 'after' | 'before';\n/**\n * The distance in pixels that will be overshot when scrolling a tab label into view. This helps\n * provide a small affordance to the label next to it.\n */\nconst EXAGGERATED_OVERSCROLL = 60;\n/**\n * \\@docs-private\n */\nexport class MdTabHeaderBase {}\nexport const /** @type {?} */ _MdTabHeaderMixinBase = mixinDisableRipple(MdTabHeaderBase);\n/**\n * The header of the tab group which displays a list of all the tabs in the tab group. Includes\n * an ink bar that follows the currently selected tab. When the tabs list's width exceeds the\n * width of the header container, then arrows will be displayed to allow the user to scroll\n * left and right across the header.\n * \\@docs-private\n */\nexport class MdTabHeader extends _MdTabHeaderMixinBase\n implements AfterContentChecked, AfterContentInit, OnDestroy, CanDisableRipple {\n\n _labelWrappers: QueryList<MdTabLabelWrapper>;\n _inkBar: MdInkBar;\n _tabListContainer: ElementRef;\n _tabList: ElementRef;\n/**\n * The tab index that is focused.\n */\nprivate _focusIndex: number = 0;\n/**\n * The distance in pixels that the tab labels should be translated to the left.\n */\nprivate _scrollDistance = 0;\n/**\n * Whether the header should scroll to the selected index after the view has been checked.\n */\nprivate _selectedIndexChanged = false;\n/**\n * Combines listeners that will re-align the ink bar whenever they're invoked.\n */\nprivate _realignInkBar = Subscription.EMPTY;\n/**\n * Whether the controls for pagination should be displayed\n */\n_showPaginationControls = false;\n/**\n * Whether the tab list can be scrolled more towards the end of the tab label list.\n */\n_disableScrollAfter = true;\n/**\n * Whether the tab list can be scrolled more towards the beginning of the tab label list.\n */\n_disableScrollBefore = true;\n/**\n * The number of tab labels that are displayed on the header. When this changes, the header\n * should re-evaluate the scroll position.\n */\nprivate _tabLabelCount: number;\n/**\n * Whether the scroll distance has changed and should be applied after the view is checked.\n */\nprivate _scrollDistanceChanged: boolean;\nprivate _selectedIndex: number = 0;\n/**\n * The index of the active tab.\n * @return {?}\n */\nget selectedIndex(): number { return this._selectedIndex; }\n/**\n * @param {?} value\n * @return {?}\n */\nset selectedIndex(value: number) {\n this._selectedIndexChanged = this._selectedIndex != value;\n this._selectedIndex = value;\n this._focusIndex = value;\n }\n/**\n * Event emitted when the option is selected.\n */\nselectFocusedIndex = new EventEmitter();\n/**\n * Event emitted when a label is focused.\n */\nindexFocused = new EventEmitter();\n/**\n * @param {?} _elementRef\n * @param {?} _renderer\n * @param {?} _changeDetectorRef\n * @param {?} _dir\n */\nconstructor(private _elementRef: ElementRef,\nprivate _renderer: Renderer2,\nprivate _changeDetectorRef: ChangeDetectorRef,\nprivate _dir: Directionality) {\n super();\n }\n/**\n * @return {?}\n */\nngAfterContentChecked(): void {\n // If the number of tab labels have changed, check if scrolling should be enabled\n if (this._tabLabelCount != this._labelWrappers.length) {\n this._updatePagination();\n this._tabLabelCount = this._labelWrappers.length;\n this._changeDetectorRef.markForCheck();\n }\n\n // If the selected index has changed, scroll to the label and check if the scrolling controls\n // should be disabled.\n if (this._selectedIndexChanged) {\n this._scrollToLabel(this._selectedIndex);\n this._checkScrollingControls();\n this._alignInkBarToSelectedTab();\n this._selectedIndexChanged = false;\n this._changeDetectorRef.markForCheck();\n }\n\n // If the scroll distance has been changed (tab selected, focused, scroll controls activated),\n // then translate the header to reflect this.\n if (this._scrollDistanceChanged) {\n this._updateTabScrollPosition();\n this._scrollDistanceChanged = false;\n this._changeDetectorRef.markForCheck();\n }\n }\n/**\n * @param {?} event\n * @return {?}\n */\n_handleKeydown(event: KeyboardEvent) {\n switch (event.keyCode) {\n case RIGHT_ARROW:\n this._focusNextTab();\n break;\n case LEFT_ARROW:\n this._focusPreviousTab();\n break;\n case ENTER:\n case SPACE:\n this.selectFocusedIndex.emit(this.focusIndex);\n event.preventDefault();\n break;\n }\n }\n/**\n * Aligns the ink bar to the selected tab on load.\n * @return {?}\n */\nngAfterContentInit() {\n const /** @type {?} */ dirChange = this._dir ? this._dir.change : observableOf(null);\n const /** @type {?} */ resize = typeof window !== 'undefined' ?\n auditTime.call(fromEvent(window, 'resize'), 150) :\n observableOf(null);\n\n this._realignInkBar = startWith.call(merge(dirChange, resize), null).subscribe(() => {\n this._updatePagination();\n this._alignInkBarToSelectedTab();\n });\n }\n/**\n * @return {?}\n */\nngOnDestroy() {\n this._realignInkBar.unsubscribe();\n }\n/**\n * Callback for when the MutationObserver detects that the content has changed.\n * @return {?}\n */\n_onContentChanges() {\n this._updatePagination();\n this._alignInkBarToSelectedTab();\n this._changeDetectorRef.markForCheck();\n }\n/**\n * Updating the view whether pagination should be enabled or not\n * @return {?}\n */\n_updatePagination() {\n this._checkPaginationEnabled();\n this._checkScrollingControls();\n this._updateTabScrollPosition();\n }\n/**\n * When the focus index is set, we must manually send focus to the correct label\n * @param {?} value\n * @return {?}\n */\nset focusIndex(value: number) {\n if (!this._isValidIndex(value) || this._focusIndex == value) { return; }\n\n this._focusIndex = value;\n this.indexFocused.emit(value);\n this._setTabFocus(value);\n }\n/**\n * Tracks which element has focus; used for keyboard navigation\n * @return {?}\n */\nget focusIndex(): number { return this._focusIndex; }\n/**\n * Determines if an index is valid. If the tabs are not ready yet, we assume that the user is\n * providing a valid index and return true.\n * @param {?} index\n * @return {?}\n */\n_isValidIndex(index: number): boolean {\n if (!this._labelWrappers) { return true; }\n\n const /** @type {?} */ tab = this._labelWrappers ? this._labelWrappers.toArray()[index] : null;\n return !!tab && !tab.disabled;\n }\n/**\n * Sets focus on the HTML element for the label wrapper and scrolls it into the view if\n * scrolling is enabled.\n * @param {?} tabIndex\n * @return {?}\n */\n_setTabFocus(tabIndex: number) {\n if (this._showPaginationControls) {\n this._scrollToLabel(tabIndex);\n }\n\n if (this._labelWrappers && this._labelWrappers.length) {\n this._labelWrappers.toArray()[tabIndex].focus();\n\n // Do not let the browser manage scrolling to focus the element, this will be handled\n // by using translation. In LTR, the scroll left should be 0. In RTL, the scroll width\n // should be the full width minus the offset width.\n const /** @type {?} */ containerEl = this._tabListContainer.nativeElement;\n const /** @type {?} */ dir = this._getLayoutDirection();\n\n if (dir == 'ltr') {\n containerEl.scrollLeft = 0;\n } else {\n containerEl.scrollLeft = containerEl.scrollWidth - containerEl.offsetWidth;\n }\n }\n }\n/**\n * Moves the focus towards the beginning or the end of the list depending on the offset provided.\n * Valid offsets are 1 and -1.\n * @param {?} offset\n * @return {?}\n */\n_moveFocus(offset: number) {\n if (this._labelWrappers) {\n const /** @type {?} */ tabs: MdTabLabelWrapper[] = this._labelWrappers.toArray();\n\n for (let /** @type {?} */ i = this.focusIndex + offset; i < tabs.length && i >= 0; i += offset) {\n if (this._isValidIndex(i)) {\n this.focusIndex = i;\n return;\n }\n }\n }\n }\n/**\n * Increment the focus index by 1 until a valid tab is found.\n * @return {?}\n */\n_focusNextTab(): void {\n this._moveFocus(this._getLayoutDirection() == 'ltr' ? 1 : -1);\n }\n/**\n * Decrement the focus index by 1 until a valid tab is found.\n * @return {?}\n */\n_focusPreviousTab(): void {\n this._moveFocus(this._getLayoutDirection() == 'ltr' ? -1 : 1);\n }\n/**\n * The layout direction of the containing app.\n * @return {?}\n */\n_getLayoutDirection(): Direction {\n return this._dir && this._dir.value === 'rtl' ? 'rtl' : 'ltr';\n }\n/**\n * Performs the CSS transformation on the tab list that will cause the list to scroll.\n * @return {?}\n */\n_updateTabScrollPosition() {\n const /** @type {?} */ scrollDistance = this.scrollDistance;\n const /** @type {?} */ translateX = this._getLayoutDirection() === 'ltr' ? -scrollDistance : scrollDistance;\n\n this._renderer.setStyle(this._tabList.nativeElement, 'transform',\n `translate3d(${translateX}px, 0, 0)`);\n }\n/**\n * Sets the distance in pixels that the tab header should be transformed in the X-axis.\n * @param {?} v\n * @return {?}\n */\nset scrollDistance(v: number) {\n this._scrollDistance = Math.max(0, Math.min(this._getMaxScrollDistance(), v));\n\n // Mark that the scroll distance has changed so that after the view is checked, the CSS\n // transformation can move the header.\n this._scrollDistanceChanged = true;\n this._checkScrollingControls();\n }\n/**\n * @return {?}\n */\nget scrollDistance(): number { return this._scrollDistance; }\n/**\n * Moves the tab list in the 'before' or 'after' direction (towards the beginning of the list or\n * the end of the list, respectively). The distance to scroll is computed to be a third of the\n * length of the tab list view window.\n * \n * This is an expensive call that forces a layout reflow to compute box and scroll metrics and\n * should be called sparingly.\n * @param {?} scrollDir\n * @return {?}\n */\n_scrollHeader(scrollDir: ScrollDirection) {\n const /** @type {?} */ viewLength = this._tabListContainer.nativeElement.offsetWidth;\n\n // Move the scroll distance one-third the length of the tab list's viewport.\n this.scrollDistance += (scrollDir == 'before' ? -1 : 1) * viewLength / 3;\n }\n/**\n * Moves the tab list such that the desired tab label (marked by index) is moved into view.\n * \n * This is an expensive call that forces a layout reflow to compute box and scroll metrics and\n * should be called sparingly.\n * @param {?} labelIndex\n * @return {?}\n */\n_scrollToLabel(labelIndex: number) {\n const /** @type {?} */ selectedLabel = this._labelWrappers ? this._labelWrappers.toArray()[labelIndex] : null;\n\n if (!selectedLabel) { return; }\n\n // The view length is the visible width of the tab labels.\n const /** @type {?} */ viewLength = this._tabListContainer.nativeElement.offsetWidth;\n\n let /** @type {?} */ labelBeforePos: number, /** @type {?} */ labelAfterPos: number;\n if (this._getLayoutDirection() == 'ltr') {\n labelBeforePos = selectedLabel.getOffsetLeft();\n labelAfterPos = labelBeforePos + selectedLabel.getOffsetWidth();\n } else {\n labelAfterPos = this._tabList.nativeElement.offsetWidth - selectedLabel.getOffsetLeft();\n labelBeforePos = labelAfterPos - selectedLabel.getOffsetWidth();\n }\n\n const /** @type {?} */ beforeVisiblePos = this.scrollDistance;\n const /** @type {?} */ afterVisiblePos = this.scrollDistance + viewLength;\n\n if (labelBeforePos < beforeVisiblePos) {\n // Scroll header to move label to the before direction\n this.scrollDistance -= beforeVisiblePos - labelBeforePos + EXAGGERATED_OVERSCROLL;\n } else if (labelAfterPos > afterVisiblePos) {\n // Scroll header to move label to the after direction\n this.scrollDistance += labelAfterPos - afterVisiblePos + EXAGGERATED_OVERSCROLL;\n }\n }\n/**\n * Evaluate whether the pagination controls should be displayed. If the scroll width of the\n * tab list is wider than the size of the header container, then the pagination controls should\n * be shown.\n * \n * This is an expensive call that forces a layout reflow to compute box and scroll metrics and\n * should be called sparingly.\n * @return {?}\n */\n_checkPaginationEnabled() {\n const /** @type {?} */ isEnabled =\n this._tabList.nativeElement.scrollWidth > this._elementRef.nativeElement.offsetWidth;\n\n if (!isEnabled) {\n this.scrollDistance = 0;\n }\n\n if (isEnabled !== this._showPaginationControls) {\n this._changeDetectorRef.markForCheck();\n }\n\n this._showPaginationControls = isEnabled;\n }\n/**\n * Evaluate whether the before and after controls should be enabled or disabled.\n * If the header is at the beginning of the list (scroll distance is equal to 0) then disable the\n * before button. If the header is at the end of the list (scroll distance is equal to the\n * maximum distance we can scroll), then disable the after button.\n * \n * This is an expensive call that forces a layout reflow to compute box and scroll metrics and\n * should be called sparingly.\n * @return {?}\n */\n_checkScrollingControls() {\n // Check if the pagination arrows should be activated.\n this._disableScrollBefore = this.scrollDistance == 0;\n this._disableScrollAfter = this.scrollDistance == this._getMaxScrollDistance();\n this._changeDetectorRef.markForCheck();\n }\n/**\n * Determines what is the maximum length in pixels that can be set for the scroll distance. This\n * is equal to the difference in width between the tab list container and tab header container.\n * \n * This is an expensive call that forces a layout reflow to compute box and scroll metrics and\n * should be called sparingly.\n * @return {?}\n */\n_getMaxScrollDistance(): number {\n const /** @type {?} */ lengthOfTabList = this._tabList.nativeElement.scrollWidth;\n const /** @type {?} */ viewLength = this._tabListContainer.nativeElement.offsetWidth;\n return (lengthOfTabList - viewLength) || 0;\n }\n/**\n * Tells the ink-bar to align itself to the current label wrapper\n * @return {?}\n */\nprivate _alignInkBarToSelectedTab(): void {\n const /** @type {?} */ selectedLabelWrapper = this._labelWrappers && this._labelWrappers.length ?\n this._labelWrappers.toArray()[this.selectedIndex].elementRef.nativeElement :\n null;\n\n this._inkBar.alignToElement(selectedLabelWrapper);\n }\nstatic decorators: DecoratorInvocation[] = [\n{ type: Component, args: [{\n moduleId: module.id,\n selector: 'md-tab-header, mat-tab-header',\n templateUrl: 'tab-header.html',\n styleUrls: ['tab-header.css'],\n inputs: ['disableRipple'],\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'class': 'mat-tab-header',\n '[class.mat-tab-header-pagination-controls-enabled]': '_showPaginationControls',\n '[class.mat-tab-header-rtl]': \"_getLayoutDirection() == 'rtl'\",\n },\n viewProviders: [{provide: MATERIAL_COMPATIBILITY_MODE, useValue: true}],\n}, ] },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n{type: ElementRef, },\n{type: Renderer2, },\n{type: ChangeDetectorRef, },\n{type: Directionality, decorators: [{ type: Optional }, ]},\n];\nstatic propDecorators: {[key: string]: DecoratorInvocation[]} = {\n'_labelWrappers': [{ type: ContentChildren, args: [MdTabLabelWrapper, ] },],\n'_inkBar': [{ type: ViewChild, args: [MdInkBar, ] },],\n'_tabListContainer': [{ type: ViewChild, args: ['tabListContainer', ] },],\n'_tabList': [{ type: ViewChild, args: ['tabList', ] },],\n'selectedIndex': [{ type: Input },],\n'selectFocusedIndex': [{ type: Output },],\n'indexFocused': [{ type: Output },],\n};\n}\n\nfunction MdTabHeader_tsickle_Closure_declarations() {\n/** @type {?} */\nMdTabHeader.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nMdTabHeader.ctorParameters;\n/** @type {?} */\nMdTabHeader.propDecorators;\n/** @type {?} */\nMdTabHeader.prototype._labelWrappers;\n/** @type {?} */\nMdTabHeader.prototype._inkBar;\n/** @type {?} */\nMdTabHeader.prototype._tabListContainer;\n/** @type {?} */\nMdTabHeader.prototype._tabList;\n/**\n * The tab index that is focused.\n * @type {?}\n */\nMdTabHeader.prototype._focusIndex;\n/**\n * The distance in pixels that the tab labels should be translated to the left.\n * @type {?}\n */\nMdTabHeader.prototype._scrollDistance;\n/**\n * Whether the header should scroll to the selected index after the view has been checked.\n * @type {?}\n */\nMdTabHeader.prototype._selectedIndexChanged;\n/**\n * Combines listeners that will re-align the ink bar whenever they're invoked.\n * @type {?}\n */\nMdTabHeader.prototype._realignInkBar;\n/**\n * Whether the controls for pagination should be displayed\n * @type {?}\n */\nMdTabHeader.prototype._showPaginationControls;\n/**\n * Whether the tab list can be scrolled more towards the end of the tab label list.\n * @type {?}\n */\nMdTabHeader.prototype._disableScrollAfter;\n/**\n * Whether the tab list can be scrolled more towards the beginning of the tab label list.\n * @type {?}\n */\nMdTabHeader.prototype._disableScrollBefore;\n/**\n * The number of tab labels that are displayed on the header. When this changes, the header\n * should re-evaluate the scroll position.\n * @type {?}\n */\nMdTabHeader.prototype._tabLabelCount;\n/**\n * Whether the scroll distance has changed and should be applied after the view is checked.\n * @type {?}\n */\nMdTabHeader.prototype._scrollDistanceChanged;\n/** @type {?} */\nMdTabHeader.prototype._selectedIndex;\n/**\n * Event emitted when the option is selected.\n * @type {?}\n */\nMdTabHeader.prototype.selectFocusedIndex;\n/**\n * Event emitted when a label is focused.\n * @type {?}\n */\nMdTabHeader.prototype.indexFocused;\n/** @type {?} */\nMdTabHeader.prototype._elementRef;\n/** @type {?} */\nMdTabHeader.prototype._renderer;\n/** @type {?} */\nMdTabHeader.prototype._changeDetectorRef;\n/** @type {?} */\nMdTabHeader.prototype._dir;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n\nimport {Directionality} from '@angular/cdk/bidi';\nimport {coerceBooleanProperty} from '@angular/cdk/coercion';\nimport {Platform} from '@angular/cdk/platform';\nimport {auditTime, takeUntil} from '@angular/cdk/rxjs';\nimport {ViewportRuler} from '@angular/cdk/scrolling';\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n Directive,\n ElementRef,\n forwardRef,\n Inject,\n Input,\n NgZone,\n OnDestroy,\n Optional,\n QueryList,\n Renderer2,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport {\n CanColor,\n CanDisable,\n CanDisableRipple, MATERIAL_COMPATIBILITY_MODE,\n MD_RIPPLE_GLOBAL_OPTIONS,\n MdRipple,\n mixinColor,\n mixinDisabled,\n mixinDisableRipple,\n RippleGlobalOptions,\n ThemePalette,\n} from '@angular/material/core';\nimport {fromEvent} from 'rxjs/observable/fromEvent';\nimport {merge} from 'rxjs/observable/merge';\nimport {of as observableOf} from 'rxjs/observable/of';\nimport {Subject} from 'rxjs/Subject';\nimport {MdInkBar} from '../ink-bar';\n/**\n * \\@docs-private\n */\nexport class MdTabNavBase {\n/**\n * @param {?} _renderer\n * @param {?} _elementRef\n */\nconstructor(public _renderer: Renderer2,\npublic _elementRef: ElementRef) {}\n}\n\nfunction MdTabNavBase_tsickle_Closure_declarations() {\n/** @type {?} */\nMdTabNavBase.prototype._renderer;\n/** @type {?} */\nMdTabNavBase.prototype._elementRef;\n}\n\nexport const /** @type {?} */ _MdTabNavMixinBase = mixinDisableRipple(mixinColor(MdTabNavBase, 'primary'));\n/**\n * Navigation component matching the styles of the tab group header.\n * Provides anchored navigation with animated ink bar.\n */\nexport class MdTabNav extends _MdTabNavMixinBase implements AfterContentInit, CanColor,\n CanDisableRipple, OnDestroy {\n/**\n * Subject that emits when the component has been destroyed.\n */\nprivate _onDestroy = new Subject<void>();\n\n _activeLinkChanged: boolean;\n _activeLinkElement: ElementRef;\n\n _inkBar: MdInkBar;\n/**\n * Query list of all tab links of the tab navigation.\n */\n_tabLinks: QueryList<MdTabLink>;\n/**\n * Background color of the tab nav.\n * @return {?}\n */\nget backgroundColor(): ThemePalette { return this._backgroundColor; }\n/**\n * @param {?} value\n * @return {?}\n */\nset backgroundColor(value: ThemePalette) {\n let /** @type {?} */ nativeElement = this._elementRef.nativeElement;\n\n this._renderer.removeClass(nativeElement, `mat-background-${this.backgroundColor}`);\n\n if (value) {\n this._renderer.addClass(nativeElement, `mat-background-${value}`);\n }\n\n this._backgroundColor = value;\n }\nprivate _backgroundColor: ThemePalette;\n/**\n * Whether ripples should be disabled for all links or not.\n * @return {?}\n */\nget disableRipple() { return this._disableRipple; }\n/**\n * @param {?} value\n * @return {?}\n */\nset disableRipple(value: boolean) {\n this._disableRipple = coerceBooleanProperty(value);\n this._setLinkDisableRipple();\n }\nprivate _disableRipple: boolean = false;\n/**\n * @param {?} renderer\n * @param {?} elementRef\n * @param {?} _dir\n * @param {?} _ngZone\n * @param {?} _changeDetectorRef\n */\nconstructor(renderer: Renderer2,\n elementRef: ElementRef,\nprivate _dir: Directionality,\nprivate _ngZone: NgZone,\nprivate _changeDetectorRef: ChangeDetectorRef) {\n super(renderer, elementRef);\n }\n/**\n * Notifies the component that the active link has been changed.\n * @param {?} element\n * @return {?}\n */\nupdateActiveLink(element: ElementRef) {\n this._activeLinkChanged = this._activeLinkElement != element;\n this._activeLinkElement = element;\n\n if (this._activeLinkChanged) {\n this._changeDetectorRef.markForCheck();\n }\n }\n/**\n * @return {?}\n */\nngAfterContentInit(): void {\n this._ngZone.runOutsideAngular(() => {\n let /** @type {?} */ dirChange = this._dir ? this._dir.change : observableOf(null);\n let /** @type {?} */ resize = typeof window !== 'undefined' ?\n auditTime.call(fromEvent(window, 'resize'), 10) :\n observableOf(null);\n\n return takeUntil.call(merge(dirChange, resize), this._onDestroy).subscribe(() => {\n this._alignInkBar();\n });\n });\n\n this._setLinkDisableRipple();\n }\n/**\n * Checks if the active link has been changed and, if so, will update the ink bar.\n * @return {?}\n */\nngAfterContentChecked(): void {\n if (this._activeLinkChanged) {\n this._alignInkBar();\n this._activeLinkChanged = false;\n }\n }\n/**\n * @return {?}\n */\nngOnDestroy() {\n this._onDestroy.next();\n this._onDestroy.complete();\n }\n/**\n * Aligns the ink bar to the active link.\n * @return {?}\n */\n_alignInkBar(): void {\n if (this._activeLinkElement) {\n this._inkBar.alignToElement(this._activeLinkElement.nativeElement);\n }\n }\n/**\n * Sets the `disableRipple` property on each link of the navigation bar.\n * @return {?}\n */\nprivate _setLinkDisableRipple() {\n if (this._tabLinks) {\n this._tabLinks.forEach(link => link.disableRipple = this.disableRipple);\n }\n }\nstatic decorators: DecoratorInvocation[] = [\n{ type: Component, args: [{\n moduleId: module.id,\n selector: '[md-tab-nav-bar], [mat-tab-nav-bar]',\n inputs: ['color', 'disableRipple'],\n templateUrl: 'tab-nav-bar.html',\n styleUrls: ['tab-nav-bar.css'],\n host: {'class': 'mat-tab-nav-bar'},\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n viewProviders: [{provide: MATERIAL_COMPATIBILITY_MODE, useValue: true}],\n}, ] },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n{type: Renderer2, },\n{type: ElementRef, },\n{type: Directionality, decorators: [{ type: Optional }, ]},\n{type: NgZone, },\n{type: ChangeDetectorRef, },\n];\nstatic propDecorators: {[key: string]: DecoratorInvocation[]} = {\n'_inkBar': [{ type: ViewChild, args: [MdInkBar, ] },],\n'_tabLinks': [{ type: ContentChildren, args: [forwardRef(() => MdTabLink), {descendants: true}, ] },],\n'backgroundColor': [{ type: Input },],\n};\n}\n\nfunction MdTabNav_tsickle_Closure_declarations() {\n/** @type {?} */\nMdTabNav.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nMdTabNav.ctorParameters;\n/** @type {?} */\nMdTabNav.propDecorators;\n/**\n * Subject that emits when the component has been destroyed.\n * @type {?}\n */\nMdTabNav.prototype._onDestroy;\n/** @type {?} */\nMdTabNav.prototype._activeLinkChanged;\n/** @type {?} */\nMdTabNav.prototype._activeLinkElement;\n/** @type {?} */\nMdTabNav.prototype._inkBar;\n/**\n * Query list of all tab links of the tab navigation.\n * @type {?}\n */\nMdTabNav.prototype._tabLinks;\n/** @type {?} */\nMdTabNav.prototype._backgroundColor;\n/** @type {?} */\nMdTabNav.prototype._disableRipple;\n/** @type {?} */\nMdTabNav.prototype._dir;\n/** @type {?} */\nMdTabNav.prototype._ngZone;\n/** @type {?} */\nMdTabNav.prototype._changeDetectorRef;\n}\n\nexport class MdTabLinkBase {}\nexport const /** @type {?} */ _MdTabLinkMixinBase = mixinDisabled(MdTabLinkBase);\n/**\n * Link inside of a `md-tab-nav-bar`.\n */\nexport class MdTabLink extends _MdTabLinkMixinBase implements OnDestroy, CanDisable {\n/**\n * Whether the tab link is active or not.\n */\nprivate _isActive: boolean = false;\n/**\n * Whether the ripples for this tab should be disabled or not.\n */\nprivate _disableRipple: boolean = false;\n/**\n * Reference to the instance of the ripple for the tab link.\n */\nprivate _tabLinkRipple: MdRipple;\n/**\n * Whether the link is active.\n * @return {?}\n */\nget active(): boolean { return this._isActive; }\n/**\n * @param {?} value\n * @return {?}\n */\nset active(value: boolean) {\n this._isActive = value;\n if (value) {\n this._mdTabNavBar.updateActiveLink(this._elementRef);\n }\n }\n/**\n * Whether ripples should be disabled or not.\n * @return {?}\n */\nget disableRipple(): boolean { return this._disableRipple; }\n/**\n * @param {?} value\n * @return {?}\n */\nset disableRipple(value: boolean) {\n this._disableRipple = value;\n this._tabLinkRipple.disabled = this.disableRipple;\n this._tabLinkRipple._updateRippleRenderer();\n }\n/**\n * \\@docs-private\n * @return {?}\n */\nget tabIndex(): number {\n return this.disabled ? -1 : 0;\n }\n/**\n * @param {?} _mdTabNavBar\n * @param {?} _elementRef\n * @param {?} ngZone\n * @param {?} ruler\n * @param {?} platform\n * @param {?} globalOptions\n */\nconstructor(private _mdTabNavBar: MdTabNav,\nprivate _elementRef: ElementRef,\n ngZone: NgZone,\n ruler: ViewportRuler,\n platform: Platform,\n globalOptions: RippleGlobalOptions) {\n super();\n\n // Manually create a ripple instance that uses the tab link element as trigger element.\n // Notice that the lifecycle hooks for the ripple config won't be called anymore.\n this._tabLinkRipple = new MdRipple(_elementRef, ngZone, ruler, platform, globalOptions);\n }\n/**\n * @return {?}\n */\nngOnDestroy() {\n // Manually call the ngOnDestroy lifecycle hook of the ripple instance because it won't be\n // called automatically since its instance is not created by Angular.\n this._tabLinkRipple.ngOnDestroy();\n }\nstatic decorators: DecoratorInvocation[] = [\n{ type: Directive, args: [{\n selector: '[md-tab-link], [mat-tab-link], [mdTabLink], [matTabLink]',\n inputs: ['disabled'],\n host: {\n 'class': 'mat-tab-link',\n '[attr.aria-disabled]': 'disabled.toString()',\n '[attr.tabindex]': 'tabIndex',\n '[class.mat-tab-disabled]': 'disabled'\n }\n}, ] },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n{type: MdTabNav, },\n{type: ElementRef, },\n{type: NgZone, },\n{type: ViewportRuler, },\n{type: Platform, },\n{type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [MD_RIPPLE_GLOBAL_OPTIONS, ] }, ]},\n];\nstatic propDecorators: {[key: string]: DecoratorInvocation[]} = {\n'active': [{ type: Input },],\n};\n}\n\nfunction MdTabLink_tsickle_Closure_declarations() {\n/** @type {?} */\nMdTabLink.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nMdTabLink.ctorParameters;\n/** @type {?} */\nMdTabLink.propDecorators;\n/**\n * Whether the tab link is active or not.\n * @type {?}\n */\nMdTabLink.prototype._isActive;\n/**\n * Whether the ripples for this tab should be disabled or not.\n * @type {?}\n */\nMdTabLink.prototype._disableRipple;\n/**\n * Reference to the instance of the ripple for the tab link.\n * @type {?}\n */\nMdTabLink.prototype._tabLinkRipple;\n/** @type {?} */\nMdTabLink.prototype._mdTabNavBar;\n/** @type {?} */\nMdTabLink.prototype._elementRef;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n\nimport {ObserversModule} from '@angular/cdk/observers';\nimport {PortalModule} from '@angular/cdk/portal';\nimport {ScrollDispatchModule, VIEWPORT_RULER_PROVIDER} from '@angular/cdk/scrolling';\nimport {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {MdCommonModule, MdRippleModule} from '@angular/material/core';\nimport {MdInkBar} from './ink-bar';\nimport {MdTab} from './tab';\nimport {MdTabBody} from './tab-body';\nimport {MdTabGroup} from './tab-group';\nimport {MdTabHeader} from './tab-header';\nimport {MdTabLabel} from './tab-label';\nimport {MdTabLabelWrapper} from './tab-label-wrapper';\nimport {MdTabLink, MdTabNav} from './tab-nav-bar/tab-nav-bar';\nexport class MdTabsModule {static decorators: DecoratorInvocation[] = [\n{ type: NgModule, args: [{\n imports: [\n CommonModule,\n MdCommonModule,\n PortalModule,\n MdRippleModule,\n ObserversModule,\n ScrollDispatchModule,\n ],\n // Don't export all components because some are only to be used internally.\n exports: [\n MdCommonModule,\n MdTabGroup,\n MdTabLabel,\n MdTab,\n MdTabNav,\n MdTabLink,\n ],\n declarations: [\n MdTabGroup,\n MdTabLabel,\n MdTab,\n MdInkBar,\n MdTabLabelWrapper,\n MdTabNav,\n MdTabLink,\n MdTabBody,\n MdTabHeader\n ],\n providers: [VIEWPORT_RULER_PROVIDER],\n}, ] },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n];\n}\n\nfunction MdTabsModule_tsickle_Closure_declarations() {\n/** @type {?} */\nMdTabsModule.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nMdTabsModule.ctorParameters;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)\r\n t[p[i]] = s[p[i]];\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator.throw(value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = y[op[0] & 2 ? \"return\" : op[0] ? \"throw\" : \"next\"]) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [0, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { if (o[n]) i[n] = function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; }; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator];\r\n return m ? m.call(o) : typeof __values === \"function\" ? __values(o) : o[Symbol.iterator]();\r\n}","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n\nimport {NgModule, Directive, Inject, Optional, ElementRef, InjectionToken} from '@angular/core';\n\nexport const /** @type {?} */ MATERIAL_COMPATIBILITY_MODE = new InjectionToken<boolean>('md-compatibility-mode');\n/**\n * Returns an exception to be thrown if the consumer has used\n * an invalid Material prefix on a component.\n * \\@docs-private\n * @param {?} prefix\n * @param {?} nodeName\n * @return {?}\n */\nexport function getMdCompatibilityInvalidPrefixError(prefix: string, nodeName: string) {\n return Error(`The \"${prefix}-\" prefix cannot be used in ng-material v1 compatibility mode. ` +\n `It was used on an \"${nodeName.toLowerCase()}\" element.`);\n}\n/**\n * Selector that matches all elements that may have style collisions with AngularJS Material.\n */\nexport const MAT_ELEMENTS_SELECTOR = `\n [mat-button],\n [mat-fab],\n [mat-icon-button],\n [mat-mini-fab],\n [mat-raised-button],\n [matCardSubtitle],\n [matCardTitle],\n [matCellDef],\n [matColumnDef],\n [matDialogActions],\n [matDialogClose],\n [matDialogContent],\n [matDialogTitle],\n [matHeaderCellDef],\n [matHeaderRowDef],\n [matLine],\n [matRowDef],\n [matStepLabel],\n [matStepperNext],\n [matStepperPrevious],\n [matTabLabel],\n [matTabLink],\n [matTabNav],\n [matTooltip],\n [matInput],\n [matPrefix],\n [matSuffix],\n mat-autocomplete,\n mat-button-toggle,\n mat-button-toggle,\n mat-button-toggle-group,\n mat-card,\n mat-card-actions,\n mat-card-content,\n mat-card-footer,\n mat-card-header,\n mat-card-subtitle,\n mat-card-title,\n mat-card-title-group,\n mat-cell,\n mat-checkbox,\n mat-chip,\n mat-dialog-actions,\n mat-dialog-container,\n mat-dialog-content,\n mat-divider,\n mat-error,\n mat-grid-list,\n mat-grid-tile,\n mat-grid-tile-footer,\n mat-grid-tile-header,\n mat-header-cell,\n mat-header-row,\n mat-hint,\n mat-horizontal-stepper,\n mat-icon,\n mat-input-container,\n mat-form-field,\n mat-list,\n mat-list-item,\n mat-menu,\n mat-nav-list,\n mat-option,\n mat-placeholder,\n mat-progress-bar,\n mat-pseudo-checkbox,\n mat-radio-button,\n mat-radio-group,\n mat-row,\n mat-select,\n mat-sidenav,\n mat-sidenav-container,\n mat-slider,\n mat-spinner,\n mat-step,\n mat-tab,\n mat-table,\n mat-tab-group,\n mat-toolbar,\n mat-vertical-stepper`;\n/**\n * Selector that matches all elements that may have style collisions with AngularJS Material.\n */\nexport const MD_ELEMENTS_SELECTOR = `\n [md-button],\n [md-fab],\n [md-icon-button],\n [md-mini-fab],\n [md-raised-button],\n [mdCardSubtitle],\n [mdCardTitle],\n [mdCellDef],\n [mdColumnDef],\n [mdDialogActions],\n [mdDialogClose],\n [mdDialogContent],\n [mdDialogTitle],\n [mdHeaderCellDef],\n [mdHeaderRowDef],\n [mdLine],\n [mdRowDef],\n [mdStepLabel],\n [mdStepperNext],\n [mdStepperPrevious],\n [mdTabLabel],\n [mdTabLink],\n [mdTabNav],\n [mdTooltip],\n [mdInput],\n [mdPrefix],\n [mdSuffix],\n md-autocomplete,\n md-button-toggle,\n md-button-toggle,\n md-button-toggle-group,\n md-card,\n md-card-actions,\n md-card-content,\n md-card-footer,\n md-card-header,\n md-card-subtitle,\n md-card-title,\n md-card-title-group,\n md-cell,\n md-checkbox,\n md-chip,\n md-dialog-actions,\n md-dialog-container,\n md-dialog-content,\n md-divider,\n md-error,\n md-grid-list,\n md-grid-tile,\n md-grid-tile-footer,\n md-grid-tile-header,\n md-header-cell,\n md-header-row,\n md-hint,\n md-horizontal-stepper,\n md-icon,\n md-input-container,\n md-form-field,\n md-list,\n md-list-item,\n md-menu,\n md-nav-list,\n md-option,\n md-placeholder,\n md-progress-bar,\n md-pseudo-checkbox,\n md-radio-button,\n md-radio-group,\n md-row,\n md-select,\n md-sidenav,\n md-sidenav-container,\n md-slider,\n md-spinner,\n md-step,\n md-tab,\n md-table,\n md-tab-group,\n md-toolbar,\n md-vertical-stepper`;\n/**\n * Directive that enforces that the `mat-` prefix cannot be used.\n */\nexport class MatPrefixRejector {\n/**\n * @param {?} isCompatibilityMode\n * @param {?} elementRef\n */\nconstructor(\n isCompatibilityMode: boolean,\n elementRef: ElementRef) {\n\n if (!isCompatibilityMode) {\n throw getMdCompatibilityInvalidPrefixError('mat', elementRef.nativeElement.nodeName);\n }\n }\nstatic decorators: DecoratorInvocation[] = [\n{ type: Directive, args: [{selector: MAT_ELEMENTS_SELECTOR}, ] },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n{type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [MATERIAL_COMPATIBILITY_MODE, ] }, ]},\n{type: ElementRef, },\n];\n}\n\nfunction MatPrefixRejector_tsickle_Closure_declarations() {\n/** @type {?} */\nMatPrefixRejector.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nMatPrefixRejector.ctorParameters;\n}\n\n/**\n * Directive that enforces that the `md-` prefix cannot be used.\n */\nexport class MdPrefixRejector {\n/**\n * @param {?} isCompatibilityMode\n * @param {?} elementRef\n */\nconstructor(\n isCompatibilityMode: boolean,\n elementRef: ElementRef) {\n\n if (isCompatibilityMode) {\n throw getMdCompatibilityInvalidPrefixError('md', elementRef.nativeElement.nodeName);\n }\n }\nstatic decorators: DecoratorInvocation[] = [\n{ type: Directive, args: [{selector: MD_ELEMENTS_SELECTOR}, ] },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n{type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [MATERIAL_COMPATIBILITY_MODE, ] }, ]},\n{type: ElementRef, },\n];\n}\n\nfunction MdPrefixRejector_tsickle_Closure_declarations() {\n/** @type {?} */\nMdPrefixRejector.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nMdPrefixRejector.ctorParameters;\n}\n\n/**\n * Module that enforces the default compatibility mode settings. When this module is loaded\n * without NoConflictStyleCompatibilityMode also being imported, it will throw an error if\n * there are any uses of the `mat-` prefix.\n */\nexport class CompatibilityModule {static decorators: DecoratorInvocation[] = [\n{ type: NgModule, args: [{\n declarations: [MatPrefixRejector, MdPrefixRejector],\n exports: [MatPrefixRejector, MdPrefixRejector],\n}, ] },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n];\n}\n\nfunction CompatibilityModule_tsickle_Closure_declarations() {\n/** @type {?} */\nCompatibilityModule.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nCompatibilityModule.ctorParameters;\n}\n\n/**\n * Module that enforces \"no-conflict\" compatibility mode settings. When this module is loaded,\n * it will throw an error if there are any uses of the `md-` prefix.\n */\nexport class NoConflictStyleCompatibilityMode {static decorators: DecoratorInvocation[] = [\n{ type: NgModule, args: [{\n providers: [{\n provide: MATERIAL_COMPATIBILITY_MODE, useValue: true,\n }],\n}, ] },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n];\n}\n\nfunction NoConflictStyleCompatibilityMode_tsickle_Closure_declarations() {\n/** @type {?} */\nNoConflictStyleCompatibilityMode.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nNoConflictStyleCompatibilityMode.ctorParameters;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n\nimport {NgModule, InjectionToken, Optional, Inject, isDevMode} from '@angular/core';\nimport {DOCUMENT} from '@angular/platform-browser';\nimport {BidiModule} from '@angular/cdk/bidi';\nimport {CompatibilityModule} from '../compatibility/compatibility';\n/**\n * Injection token that configures whether the Material sanity checks are enabled.\n */\nexport const MATERIAL_SANITY_CHECKS = new InjectionToken<boolean>('md-sanity-checks');\n/**\n * Module that captures anything that should be loaded and/or run for *all* Angular Material\n * components. This includes Bidi, compatibility mode, etc.\n * \n * This module should be imported to each top-level component module (e.g., MdTabsModule).\n */\nexport class MdCommonModule {\n/**\n * Whether we've done the global sanity checks (e.g. a theme is loaded, there is a doctype).\n */\nprivate _hasDoneGlobalChecks = false;\n/**\n * @param {?} _document\n * @param {?} _sanityChecksEnabled\n */\nconstructor(\nprivate _document: any,\n _sanityChecksEnabled: boolean) {\n\n if (_sanityChecksEnabled && !this._hasDoneGlobalChecks && _document && isDevMode()) {\n this._checkDoctype();\n this._checkTheme();\n this._hasDoneGlobalChecks = true;\n }\n }\n/**\n * @return {?}\n */\nprivate _checkDoctype(): void {\n if (!this._document.doctype) {\n console.warn(\n 'Current document does not have a doctype. This may cause ' +\n 'some Angular Material components not to behave as expected.'\n );\n }\n }\n/**\n * @return {?}\n */\nprivate _checkTheme(): void {\n if (typeof getComputedStyle === 'function') {\n const /** @type {?} */ testElement = this._document.createElement('div');\n\n testElement.classList.add('mat-theme-loaded-marker');\n this._document.body.appendChild(testElement);\n\n if (getComputedStyle(testElement).display !== 'none') {\n console.warn(\n 'Could not find Angular Material core theme. Most Material ' +\n 'components may not work as expected. For more info refer ' +\n 'to the theming guide: https://material.angular.io/guide/theming'\n );\n }\n\n this._document.body.removeChild(testElement);\n }\n }\nstatic decorators: DecoratorInvocation[] = [\n{ type: NgModule, args: [{\n imports: [CompatibilityModule, BidiModule],\n exports: [CompatibilityModule, BidiModule],\n providers: [{\n provide: MATERIAL_SANITY_CHECKS, useValue: true,\n }],\n}, ] },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n{type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [DOCUMENT, ] }, ]},\n{type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [MATERIAL_SANITY_CHECKS, ] }, ]},\n];\n}\n\nfunction MdCommonModule_tsickle_Closure_declarations() {\n/** @type {?} */\nMdCommonModule.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nMdCommonModule.ctorParameters;\n/**\n * Whether we've done the global sanity checks (e.g. a theme is loaded, there is a doctype).\n * @type {?}\n */\nMdCommonModule.prototype._hasDoneGlobalChecks;\n/** @type {?} */\nMdCommonModule.prototype._document;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n\nimport {coerceBooleanProperty} from '@angular/cdk/coercion';\nimport {Constructor} from './constructor';\n\n/** @docs-private */\nexport interface CanDisableRipple {\n disableRipple: boolean;\n}\n/**\n * Mixin to augment a directive with a `disableRipple` property.\n * @template T\n * @param {?} base\n * @return {?}\n */\nexport function mixinDisableRipple<T extends Constructor<{}>>(base: T)\n : Constructor<CanDisableRipple> & T {\n return class extends base {\nprivate _disableRipple: boolean = false;\n/**\n * Whether the ripple effect is disabled or not.\n * @return {?}\n */\nget disableRipple() { return this._disableRipple; }\n/**\n * @param {?} value\n * @return {?}\n */\nset disableRipple(value: any) { this._disableRipple = coerceBooleanProperty(value); }\n/**\n * @param {...?} args\n */\nconstructor(...args: any[]) { super(...args); }\n };\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n\nimport {InjectionToken, LOCALE_ID} from '@angular/core';\nimport {Observable} from 'rxjs/Observable';\nimport {Subject} from 'rxjs/Subject';\n/**\n * InjectionToken for datepicker that can be used to override default locale code.\n */\nexport const MAT_DATE_LOCALE = new InjectionToken<string>('MAT_DATE_LOCALE');\n/**\n * Provider for MAT_DATE_LOCALE injection token.\n */\nexport const MAT_DATE_LOCALE_PROVIDER = {provide: MAT_DATE_LOCALE, useExisting: LOCALE_ID};\n/**\n * Adapts type `D` to be usable as a date by cdk-based components that work with dates.\n * @abstract\n */\nexport abstract class DateAdapter<D> {\n/**\n * The locale to use for all dates.\n */\nprotected locale: any;\n/**\n * A stream that emits when the locale changes.\n * @return {?}\n */\nget localeChanges(): Observable<void> { return this._localeChanges; }\n protected _localeChanges= new Subject<void>();\n/**\n * Gets the year component of the given date.\n * @abstract\n * @param {?} date The date to extract the year from.\n * @return {?} The year component.\n */\ngetYear(date: D) {}\n/**\n * Gets the month component of the given date.\n * @abstract\n * @param {?} date The date to extract the month from.\n * @return {?} The month component (0-indexed, 0 = January).\n */\ngetMonth(date: D) {}\n/**\n * Gets the date of the month component of the given date.\n * @abstract\n * @param {?} date The date to extract the date of the month from.\n * @return {?} The month component (1-indexed, 1 = first of month).\n */\ngetDate(date: D) {}\n/**\n * Gets the day of the week component of the given date.\n * @abstract\n * @param {?} date The date to extract the day of the week from.\n * @return {?} The month component (0-indexed, 0 = Sunday).\n */\ngetDayOfWeek(date: D) {}\n/**\n * Gets a list of names for the months.\n * @abstract\n * @param {?} style The naming style (e.g. long = 'January', short = 'Jan', narrow = 'J').\n * @return {?} An ordered list of all month names, starting with January.\n */\ngetMonthNames(style: 'long' | 'short' | 'narrow') {}\n/**\n * Gets a list of names for the dates of the month.\n * @abstract\n * @return {?} An ordered list of all date of the month names, starting with '1'.\n */\ngetDateNames() {}\n/**\n * Gets a list of names for the days of the week.\n * @abstract\n * @param {?} style The naming style (e.g. long = 'Sunday', short = 'Sun', narrow = 'S').\n * @return {?} An ordered list of all weekday names, starting with Sunday.\n */\ngetDayOfWeekNames(style: 'long' | 'short' | 'narrow') {}\n/**\n * Gets the name for the year of the given date.\n * @abstract\n * @param {?} date The date to get the year name for.\n * @return {?} The name of the given year (e.g. '2017').\n */\ngetYearName(date: D) {}\n/**\n * Gets the first day of the week.\n * @abstract\n * @return {?} The first day of the week (0-indexed, 0 = Sunday).\n */\ngetFirstDayOfWeek() {}\n/**\n * Gets the number of days in the month of the given date.\n * @abstract\n * @param {?} date The date whose month should be checked.\n * @return {?} The number of days in the month of the given date.\n */\ngetNumDaysInMonth(date: D) {}\n/**\n * Clones the given date.\n * @abstract\n * @param {?} date The date to clone\n * @return {?} A new date equal to the given date.\n */\nclone(date: D) {}\n/**\n * Creates a date with the given year, month, and date. Does not allow over/under-flow of the\n * month and date.\n * @abstract\n * @param {?} year The full year of the date. (e.g. 89 means the year 89, not the year 1989).\n * @param {?} month The month of the date (0-indexed, 0 = January). Must be an integer 0 - 11.\n * @param {?} date The date of month of the date. Must be an integer 1 - length of the given month.\n * @return {?} The new date, or null if invalid.\n */\ncreateDate(year: number, month: number, date: number) {}\n/**\n * Gets today's date.\n * @abstract\n * @return {?} Today's date.\n */\ntoday() {}\n/**\n * Parses a date from a value.\n * @abstract\n * @param {?} value The value to parse.\n * @param {?} parseFormat The expected format of the value being parsed\n * (type is implementation-dependent).\n * @return {?} The parsed date.\n */\nparse(value: any, parseFormat: any) {}\n/**\n * Formats a date as a string.\n * @abstract\n * @param {?} date The value to format.\n * @param {?} displayFormat The format to use to display the date as a string.\n * @return {?} The formatted date string.\n */\nformat(date: D, displayFormat: any) {}\n/**\n * Adds the given number of years to the date. Years are counted as if flipping 12 pages on the\n * calendar for each year and then finding the closest date in the new month. For example when\n * adding 1 year to Feb 29, 2016, the resulting date will be Feb 28, 2017.\n * @abstract\n * @param {?} date The date to add years to.\n * @param {?} years The number of years to add (may be negative).\n * @return {?} A new date equal to the given one with the specified number of years added.\n */\naddCalendarYears(date: D, years: number) {}\n/**\n * Adds the given number of months to the date. Months are counted as if flipping a page on the\n * calendar for each month and then finding the closest date in the new month. For example when\n * adding 1 month to Jan 31, 2017, the resulting date will be Feb 28, 2017.\n * @abstract\n * @param {?} date The date to add months to.\n * @param {?} months The number of months to add (may be negative).\n * @return {?} A new date equal to the given one with the specified number of months added.\n */\naddCalendarMonths(date: D, months: number) {}\n/**\n * Adds the given number of days to the date. Days are counted as if moving one cell on the\n * calendar for each day.\n * @abstract\n * @param {?} date The date to add days to.\n * @param {?} days The number of days to add (may be negative).\n * @return {?} A new date equal to the given one with the specified number of days added.\n */\naddCalendarDays(date: D, days: number) {}\n/**\n * Gets the RFC 3339 compatible string (https://tools.ietf.org/html/rfc3339) for the given date.\n * @abstract\n * @param {?} date The date to get the ISO date string for.\n * @return {?} The ISO date string date string.\n */\ntoIso8601(date: D) {}\n/**\n * Creates a date from an RFC 3339 compatible string (https://tools.ietf.org/html/rfc3339).\n * @abstract\n * @param {?} iso8601String The ISO date string to create a date from\n * @return {?} The date created from the ISO date string.\n */\nfromIso8601(iso8601String: string) {}\n/**\n * Checks whether the given object is considered a date instance by this DateAdapter.\n * @abstract\n * @param {?} obj The object to check\n * @return {?} Whether the object is a date instance.\n */\nisDateInstance(obj: any) {}\n/**\n * Checks whether the given date is valid.\n * @abstract\n * @param {?} date The date to check.\n * @return {?} Whether the date is valid.\n */\nisValid(date: D) {}\n/**\n * Sets the locale used for all dates.\n * @param {?} locale The new locale.\n * @return {?}\n */\nsetLocale(locale: any) {\n this.locale = locale;\n this._localeChanges.next();\n }\n/**\n * Compares two dates.\n * @param {?} first The first date to compare.\n * @param {?} second The second date to compare.\n * @return {?} 0 if the dates are equal, a number less than 0 if the first date is earlier,\n * a number greater than 0 if the first date is later.\n */\ncompareDate(first: D, second: D): number {\n return this.getYear(first) - this.getYear(second) ||\n this.getMonth(first) - this.getMonth(second) ||\n this.getDate(first) - this.getDate(second);\n }\n/**\n * Checks if two dates are equal.\n * @param {?} first The first date to check.\n * @param {?} second The second date to check.\n * Null dates are considered equal to other null dates.\n * @return {?}\n */\nsameDate(first: D | null, second: D | null): boolean {\n return first && second ? !this.compareDate(first, second) : first == second;\n }\n/**\n * Clamp the given date between min and max dates.\n * @param {?} date The date to clamp.\n * @param {?=} min The minimum value to allow. If null or omitted no min is enforced.\n * @param {?=} max The maximum value to allow. If null or omitted no max is enforced.\n * @return {?} `min` if `date` is less than `min`, `max` if date is greater than `max`,\n * otherwise `date`.\n */\nclampDate(date: D, min?: D | null, max?: D | null): D {\n if (min && this.compareDate(date, min) < 0) {\n return min;\n }\n if (max && this.compareDate(date, max) > 0) {\n return max;\n }\n return date;\n }\n}\n\nfunction DateAdapter_tsickle_Closure_declarations() {\n/**\n * The locale to use for all dates.\n * @type {?}\n */\nDateAdapter.prototype.locale;\n/** @type {?} */\nDateAdapter.prototype._localeChanges;\n}\n\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n\nimport {ElementRef, NgZone} from '@angular/core';\nimport {Platform} from '@angular/cdk/platform';\nimport {ViewportRuler} from '@angular/cdk/scrolling';\nimport {RippleRef, RippleState} from './ripple-ref';\n/**\n * Fade-in duration for the ripples. Can be modified with the speedFactor option.\n */\nexport const RIPPLE_FADE_IN_DURATION = 450;\n/**\n * Fade-out duration for the ripples in milliseconds. This can't be modified by the speedFactor.\n */\nexport const RIPPLE_FADE_OUT_DURATION = 400;\n\nexport type RippleConfig = {\n color?: string;\n centered?: boolean;\n radius?: number;\n speedFactor?: number;\n persistent?: boolean;\n};\n/**\n * Helper service that performs DOM manipulations. Not intended to be used outside this module.\n * The constructor takes a reference to the ripple directive's host element and a map of DOM\n * event handlers to be installed on the element that triggers ripple animations.\n * This will eventually become a custom renderer once Angular support exists.\n * \\@docs-private\n */\nexport class RippleRenderer {\n/**\n * Element where the ripples are being added to.\n */\nprivate _containerElement: HTMLElement;\n/**\n * Element which triggers the ripple elements on mouse events.\n */\nprivate _triggerElement: HTMLElement | null;\n/**\n * Whether the mouse is currently down or not.\n */\nprivate _isMousedown: boolean = false;\n/**\n * Events to be registered on the trigger element.\n */\nprivate _triggerEvents = new Map<string, any>();\n/**\n * Set of currently active ripple references.\n */\nprivate _activeRipples = new Set<RippleRef>();\n/**\n * Ripple config for all ripples created by events.\n */\nrippleConfig: RippleConfig = {};\n/**\n * Whether mouse ripples should be created or not.\n */\nrippleDisabled: boolean = false;\n/**\n * @param {?} elementRef\n * @param {?} _ngZone\n * @param {?} _ruler\n * @param {?} platform\n */\nconstructor(\n elementRef: ElementRef,\nprivate _ngZone: NgZone,\nprivate _ruler: ViewportRuler,\n platform: Platform) {\n // Only do anything if we're on the browser.\n if (platform.isBrowser) {\n this._containerElement = elementRef.nativeElement;\n\n // Specify events which need to be registered on the trigger.\n this._triggerEvents.set('mousedown', this.onMousedown.bind(this));\n this._triggerEvents.set('mouseup', this.onMouseup.bind(this));\n this._triggerEvents.set('mouseleave', this.onMouseLeave.bind(this));\n\n // By default use the host element as trigger element.\n this.setTriggerElement(this._containerElement);\n }\n }\n/**\n * Fades in a ripple at the given coordinates.\n * @param {?} pageX\n * @param {?} pageY\n * @param {?=} config\n * @return {?}\n */\nfadeInRipple(pageX: number, pageY: number, config: RippleConfig = {}): RippleRef {\n let /** @type {?} */ containerRect = this._containerElement.getBoundingClientRect();\n\n if (config.centered) {\n pageX = containerRect.left + containerRect.width / 2;\n pageY = containerRect.top + containerRect.height / 2;\n } else {\n // Subtract scroll values from the coordinates because calculations below\n // are always relative to the viewport rectangle.\n let /** @type {?} */ scrollPosition = this._ruler.getViewportScrollPosition();\n pageX -= scrollPosition.left;\n pageY -= scrollPosition.top;\n }\n\n let /** @type {?} */ radius = config.radius || distanceToFurthestCorner(pageX, pageY, containerRect);\n let /** @type {?} */ duration = RIPPLE_FADE_IN_DURATION * (1 / (config.speedFactor || 1));\n let /** @type {?} */ offsetX = pageX - containerRect.left;\n let /** @type {?} */ offsetY = pageY - containerRect.top;\n\n let /** @type {?} */ ripple = document.createElement('div');\n ripple.classList.add('mat-ripple-element');\n\n ripple.style.left = `${offsetX - radius}px`;\n ripple.style.top = `${offsetY - radius}px`;\n ripple.style.height = `${radius * 2}px`;\n ripple.style.width = `${radius * 2}px`;\n\n // If the color is not set, the default CSS color will be used.\n ripple.style.backgroundColor = config.color || null;\n ripple.style.transitionDuration = `${duration}ms`;\n\n this._containerElement.appendChild(ripple);\n\n // By default the browser does not recalculate the styles of dynamically created\n // ripple elements. This is critical because then the `scale` would not animate properly.\n enforceStyleRecalculation(ripple);\n\n ripple.style.transform = 'scale(1)';\n\n // Exposed reference to the ripple that will be returned.\n let /** @type {?} */ rippleRef = new RippleRef(this, ripple, config);\n\n rippleRef.state = RippleState.FADING_IN;\n\n // Add the ripple reference to the list of all active ripples.\n this._activeRipples.add(rippleRef);\n\n // Wait for the ripple element to be completely faded in.\n // Once it's faded in, the ripple can be hidden immediately if the mouse is released.\n this.runTimeoutOutsideZone(() => {\n rippleRef.state = RippleState.VISIBLE;\n\n if (!config.persistent && !this._isMousedown) {\n rippleRef.fadeOut();\n }\n }, duration);\n\n return rippleRef;\n }\n/**\n * Fades out a ripple reference.\n * @param {?} rippleRef\n * @return {?}\n */\nfadeOutRipple(rippleRef: RippleRef) {\n // For ripples that are not active anymore, don't re-un the fade-out animation.\n if (!this._activeRipples.delete(rippleRef)) {\n return;\n }\n\n let /** @type {?} */ rippleEl = rippleRef.element;\n\n rippleEl.style.transitionDuration = `${RIPPLE_FADE_OUT_DURATION}ms`;\n rippleEl.style.opacity = '0';\n\n rippleRef.state = RippleState.FADING_OUT;\n\n // Once the ripple faded out, the ripple can be safely removed from the DOM.\n this.runTimeoutOutsideZone(() => {\n rippleRef.state = RippleState.HIDDEN; /** @type {?} */((\n rippleEl.parentNode)).removeChild(rippleEl);\n }, RIPPLE_FADE_OUT_DURATION);\n }\n/**\n * Fades out all currently active ripples.\n * @return {?}\n */\nfadeOutAll() {\n this._activeRipples.forEach(ripple => ripple.fadeOut());\n }\n/**\n * Sets the trigger element and registers the mouse events.\n * @param {?} element\n * @return {?}\n */\nsetTriggerElement(element: HTMLElement | null) {\n // Remove all previously register event listeners from the trigger element.\n if (this._triggerElement) {\n this._triggerEvents.forEach((fn, type) => { /** @type {?} */((\n this._triggerElement)).removeEventListener(type, fn);\n });\n }\n\n if (element) {\n // If the element is not null, register all event listeners on the trigger element.\n this._ngZone.runOutsideAngular(() => {\n this._triggerEvents.forEach((fn, type) => element.addEventListener(type, fn));\n });\n }\n\n this._triggerElement = element;\n }\n/**\n * Listener being called on mousedown event.\n * @param {?} event\n * @return {?}\n */\nprivate onMousedown(event: MouseEvent) {\n if (!this.rippleDisabled) {\n this._isMousedown = true;\n this.fadeInRipple(event.pageX, event.pageY, this.rippleConfig);\n }\n }\n/**\n * Listener being called on mouseup event.\n * @return {?}\n */\nprivate onMouseup() {\n this._isMousedown = false;\n\n // Fade-out all ripples that are completely visible and not persistent.\n this._activeRipples.forEach(ripple => {\n if (!ripple.config.persistent && ripple.state === RippleState.VISIBLE) {\n ripple.fadeOut();\n }\n });\n }\n/**\n * Listener being called on mouseleave event.\n * @return {?}\n */\nprivate onMouseLeave() {\n if (this._isMousedown) {\n this.onMouseup();\n }\n }\n/**\n * Runs a timeout outside of the Angular zone to avoid triggering the change detection.\n * @param {?} fn\n * @param {?=} delay\n * @return {?}\n */\nprivate runTimeoutOutsideZone(fn: Function, delay = 0) {\n this._ngZone.runOutsideAngular(() => setTimeout(fn, delay));\n }\n\n}\n\nfunction RippleRenderer_tsickle_Closure_declarations() {\n/**\n * Element where the ripples are being added to.\n * @type {?}\n */\nRippleRenderer.prototype._containerElement;\n/**\n * Element which triggers the ripple elements on mouse events.\n * @type {?}\n */\nRippleRenderer.prototype._triggerElement;\n/**\n * Whether the mouse is currently down or not.\n * @type {?}\n */\nRippleRenderer.prototype._isMousedown;\n/**\n * Events to be registered on the trigger element.\n * @type {?}\n */\nRippleRenderer.prototype._triggerEvents;\n/**\n * Set of currently active ripple references.\n * @type {?}\n */\nRippleRenderer.prototype._activeRipples;\n/**\n * Ripple config for all ripples created by events.\n * @type {?}\n */\nRippleRenderer.prototype.rippleConfig;\n/**\n * Whether mouse ripples should be created or not.\n * @type {?}\n */\nRippleRenderer.prototype.rippleDisabled;\n/** @type {?} */\nRippleRenderer.prototype._ngZone;\n/** @type {?} */\nRippleRenderer.prototype._ruler;\n}\n\n/**\n * @param {?} element\n * @return {?}\n */\nfunction enforceStyleRecalculation(element: HTMLElement) {\n // Enforce a style recalculation by calling `getComputedStyle` and accessing any property.\n // Calling `getPropertyValue` is important to let optimizers know that this is not a noop.\n // See: https://gist.github.com/paulirish/5d52fb081b3570c81e3a\n window.getComputedStyle(element).getPropertyValue('opacity');\n}\n/**\n * Returns the distance from the point (x, y) to the furthest corner of a rectangle.\n * @param {?} x\n * @param {?} y\n * @param {?} rect\n * @return {?}\n */\nfunction distanceToFurthestCorner(x: number, y: number, rect: ClientRect) {\n const /** @type {?} */ distX = Math.max(Math.abs(x - rect.left), Math.abs(x - rect.right));\n const /** @type {?} */ distY = Math.max(Math.abs(y - rect.top), Math.abs(y - rect.bottom));\n return Math.sqrt(distX * distX + distY * distY);\n}\n","\n/**\n * \\@docs-private\n */\nexport class AnimationCurves {\n static STANDARD_CURVE = 'cubic-bezier(0.4,0.0,0.2,1)';\n static DECELERATION_CURVE = 'cubic-bezier(0.0,0.0,0.2,1)';\n static ACCELERATION_CURVE = 'cubic-bezier(0.4,0.0,1,1)';\n static SHARP_CURVE = 'cubic-bezier(0.4,0.0,0.6,1)';\n}\n\nfunction AnimationCurves_tsickle_Closure_declarations() {\n/** @type {?} */\nAnimationCurves.STANDARD_CURVE;\n/** @type {?} */\nAnimationCurves.DECELERATION_CURVE;\n/** @type {?} */\nAnimationCurves.ACCELERATION_CURVE;\n/** @type {?} */\nAnimationCurves.SHARP_CURVE;\n}\n\n/**\n * \\@docs-private\n */\nexport class AnimationDurations {\n static COMPLEX = '375ms';\n static ENTERING = '225ms';\n static EXITING = '195ms';\n}\n\nfunction AnimationDurations_tsickle_Closure_declarations() {\n/** @type {?} */\nAnimationDurations.COMPLEX;\n/** @type {?} */\nAnimationDurations.ENTERING;\n/** @type {?} */\nAnimationDurations.EXITING;\n}\n\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n\nimport {Constructor} from './constructor';\nimport {ElementRef, Renderer2} from '@angular/core';\n\n/** @docs-private */\nexport interface CanColor {\n color: ThemePalette;\n}\n\n/** @docs-private */\nexport interface HasRenderer {\n _renderer: Renderer2;\n _elementRef: ElementRef;\n}\n\n/** Possible color palette values. */\nexport type ThemePalette = 'primary' | 'accent' | 'warn' | undefined;\n/**\n * Mixin to augment a directive with a `color` property.\n * @template T\n * @param {?} base\n * @param {?=} defaultColor\n * @return {?}\n */\nexport function mixinColor<T extends Constructor<HasRenderer>>(base: T, defaultColor?: ThemePalette)\n : Constructor<CanColor> & T {\n return class extends base {\nprivate _color: ThemePalette;\n/**\n * @return {?}\n */\nget color(): ThemePalette { return this._color; }\n/**\n * @param {?} value\n * @return {?}\n */\nset color(value: ThemePalette) {\n const /** @type {?} */ colorPalette = value || defaultColor;\n\n if (colorPalette !== this._color) {\n if (this._color) {\n this._renderer.removeClass(this._elementRef.nativeElement, `mat-${this._color}`);\n }\n if (colorPalette) {\n this._renderer.addClass(this._elementRef.nativeElement, `mat-${colorPalette}`);\n }\n\n this._color = colorPalette;\n }\n }\n/**\n * @param {...?} args\n */\nconstructor(...args: any[]) {\n super(...args);\n\n // Set the default color that can be specified from the mixin.\n this.color = defaultColor;\n }\n };\n}\n\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n\nimport {Constructor} from './constructor';\nimport {CanDisable} from './disabled';\n\n/** @docs-private */\nexport interface HasTabIndex {\n tabIndex: number;\n}\n/**\n * Mixin to augment a directive with a `tabIndex` property.\n * @template T\n * @param {?} base\n * @param {?=} defaultTabIndex\n * @return {?}\n */\nexport function mixinTabIndex<T extends Constructor<CanDisable>>(base: T, defaultTabIndex = 0)\n : Constructor<HasTabIndex> & T {\n return class extends base {\nprivate _tabIndex: number = defaultTabIndex;\n/**\n * @return {?}\n */\nget tabIndex(): number { return this.disabled ? -1 : this._tabIndex; }\n/**\n * @param {?} value\n * @return {?}\n */\nset tabIndex(value: number) {\n // If the specified tabIndex value is null or undefined, fall back to the default value.\n this._tabIndex = value != null ? value : defaultTabIndex;\n }\n/**\n * @param {...?} args\n */\nconstructor(...args: any[]) {\n super(...args);\n }\n };\n}\n\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n\nimport {Injectable, Optional, SkipSelf} from '@angular/core';\n\n\n// Users of the Dispatcher never need to see this type, but TypeScript requires it to be exported.\nexport type UniqueSelectionDispatcherListener = (id: string, name: string) => void;\n/**\n * Class to coordinate unique selection based on name.\n * Intended to be consumed as an Angular service.\n * This service is needed because native radio change events are only fired on the item currently\n * being selected, and we still need to uncheck the previous selection.\n * \n * This service does not *store* any IDs and names because they may change at any time, so it is\n * less error-prone if they are simply passed through when the events occur.\n */\nexport class UniqueSelectionDispatcher {\nprivate _listeners: UniqueSelectionDispatcherListener[] = [];\n/**\n * Notify other items that selection for the given name has been set.\n * @param {?} id ID of the item.\n * @param {?} name Name of the item.\n * @return {?}\n */\nnotify(id: string, name: string) {\n for (let /** @type {?} */ listener of this._listeners) {\n listener(id, name);\n }\n }\n/**\n * Listen for future changes to item selection.\n * @param {?} listener\n * @return {?} Function used to deregister listener\n * \n */\nlisten(listener: UniqueSelectionDispatcherListener): () => void {\n this._listeners.push(listener);\n return () => {\n this._listeners = this._listeners.filter((registered: UniqueSelectionDispatcherListener) => {\n return listener !== registered;\n });\n };\n }\nstatic decorators: DecoratorInvocation[] = [\n{ type: Injectable },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n];\n}\n\nfunction UniqueSelectionDispatcher_tsickle_Closure_declarations() {\n/** @type {?} */\nUniqueSelectionDispatcher.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nUniqueSelectionDispatcher.ctorParameters;\n/** @type {?} */\nUniqueSelectionDispatcher.prototype._listeners;\n}\n\n/**\n * \\@docs-private\n * @param {?} parentDispatcher\n * @return {?}\n */\nexport function UNIQUE_SELECTION_DISPATCHER_PROVIDER_FACTORY(\n parentDispatcher: UniqueSelectionDispatcher) {\n return parentDispatcher || new UniqueSelectionDispatcher();\n}\n/**\n * \\@docs-private\n */\nexport const UNIQUE_SELECTION_DISPATCHER_PROVIDER = {\n // If there is already a dispatcher available, use that. Otherwise, provide a new one.\n provide: UniqueSelectionDispatcher,\n deps: [[new Optional(), new SkipSelf(), UniqueSelectionDispatcher]],\n useFactory: UNIQUE_SELECTION_DISPATCHER_PROVIDER_FACTORY\n};\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n\nimport {Inject, Injectable, Optional} from '@angular/core';\nimport {DateAdapter, MAT_DATE_LOCALE} from './date-adapter';\nimport {extendObject} from '../util/object-extend';\n/**\n * Whether the browser supports the Intl API.\n */\nconst SUPPORTS_INTL_API = typeof Intl != 'undefined';\n/**\n * The default month names to use if Intl API is not available.\n */\nconst DEFAULT_MONTH_NAMES = {\n 'long': [\n 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September',\n 'October', 'November', 'December'\n ],\n 'short': ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n 'narrow': ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D']\n};\n/**\n * The default date names to use if Intl API is not available.\n */\nconst DEFAULT_DATE_NAMES = range(31, i => String(i + 1));\n/**\n * The default day of the week names to use if Intl API is not available.\n */\nconst DEFAULT_DAY_OF_WEEK_NAMES = {\n 'long': ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],\n 'short': ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n 'narrow': ['S', 'M', 'T', 'W', 'T', 'F', 'S']\n};\n/**\n * Matches strings that have the form of a valid RFC 3339 string\n * (https://tools.ietf.org/html/rfc3339). Note that the string may not actually be a valid date\n * because the regex will match strings an with out of bounds month, date, etc.\n */\nconst ISO_8601_REGEX =\n /^\\d{4}-\\d{2}-\\d{2}(?:T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?(?:Z|(?:(?:\\+|-)\\d{2}:\\d{2}))?)?$/;\n/**\n * Creates an array and fills it with values.\n * @template T\n * @param {?} length\n * @param {?} valueFunction\n * @return {?}\n */\nfunction range<T>(length: number, valueFunction: (index: number) => T): T[] {\n const /** @type {?} */ valuesArray = Array(length);\n for (let /** @type {?} */ i = 0; i < length; i++) {\n valuesArray[i] = valueFunction(i);\n }\n return valuesArray;\n}\n/**\n * Adapts the native JS Date for use with cdk-based components that work with dates.\n */\nexport class NativeDateAdapter extends DateAdapter<Date> {\n/**\n * @param {?} matDateLocale\n */\nconstructor( matDateLocale: string) {\n super();\n super.setLocale(matDateLocale);\n }\n/**\n * Whether to use `timeZone: 'utc'` with `Intl.DateTimeFormat` when formatting dates.\n * Without this `Intl.DateTimeFormat` sometimes chooses the wrong timeZone, which can throw off\n * the result. (e.g. in the en-US locale `new Date(1800, 7, 14).toLocaleDateString()`\n * will produce `'8/13/1800'`.\n */\nuseUtcForDisplay = true;\n/**\n * @param {?} date\n * @return {?}\n */\ngetYear(date: Date): number {\n return date.getFullYear();\n }\n/**\n * @param {?} date\n * @return {?}\n */\ngetMonth(date: Date): number {\n return date.getMonth();\n }\n/**\n * @param {?} date\n * @return {?}\n */\ngetDate(date: Date): number {\n return date.getDate();\n }\n/**\n * @param {?} date\n * @return {?}\n */\ngetDayOfWeek(date: Date): number {\n return date.getDay();\n }\n/**\n * @param {?} style\n * @return {?}\n */\ngetMonthNames(style: 'long' | 'short' | 'narrow'): string[] {\n if (SUPPORTS_INTL_API) {\n let /** @type {?} */ dtf = new Intl.DateTimeFormat(this.locale, {month: style});\n return range(12, i => this._stripDirectionalityCharacters(dtf.format(new Date(2017, i, 1))));\n }\n return DEFAULT_MONTH_NAMES[style];\n }\n/**\n * @return {?}\n */\ngetDateNames(): string[] {\n if (SUPPORTS_INTL_API) {\n let /** @type {?} */ dtf = new Intl.DateTimeFormat(this.locale, {day: 'numeric'});\n return range(31, i => this._stripDirectionalityCharacters(\n dtf.format(new Date(2017, 0, i + 1))));\n }\n return DEFAULT_DATE_NAMES;\n }\n/**\n * @param {?} style\n * @return {?}\n */\ngetDayOfWeekNames(style: 'long' | 'short' | 'narrow'): string[] {\n if (SUPPORTS_INTL_API) {\n let /** @type {?} */ dtf = new Intl.DateTimeFormat(this.locale, {weekday: style});\n return range(7, i => this._stripDirectionalityCharacters(\n dtf.format(new Date(2017, 0, i + 1))));\n }\n return DEFAULT_DAY_OF_WEEK_NAMES[style];\n }\n/**\n * @param {?} date\n * @return {?}\n */\ngetYearName(date: Date): string {\n if (SUPPORTS_INTL_API) {\n let /** @type {?} */ dtf = new Intl.DateTimeFormat(this.locale, {year: 'numeric'});\n return this._stripDirectionalityCharacters(dtf.format(date));\n }\n return String(this.getYear(date));\n }\n/**\n * @return {?}\n */\ngetFirstDayOfWeek(): number {\n // We can't tell using native JS Date what the first day of the week is, we default to Sunday.\n return 0;\n }\n/**\n * @param {?} date\n * @return {?}\n */\ngetNumDaysInMonth(date: Date): number {\n return this.getDate(this._createDateWithOverflow(\n this.getYear(date), this.getMonth(date) + 1, 0));\n }\n/**\n * @param {?} date\n * @return {?}\n */\nclone(date: Date): Date {\n return this.createDate(this.getYear(date), this.getMonth(date), this.getDate(date));\n }\n/**\n * @param {?} year\n * @param {?} month\n * @param {?} date\n * @return {?}\n */\ncreateDate(year: number, month: number, date: number): Date {\n // Check for invalid month and date (except upper bound on date which we have to check after\n // creating the Date).\n if (month < 0 || month > 11) {\n throw Error(`Invalid month index \"${month}\". Month index has to be between 0 and 11.`);\n }\n\n if (date < 1) {\n throw Error(`Invalid date \"${date}\". Date has to be greater than 0.`);\n }\n\n let /** @type {?} */ result = this._createDateWithOverflow(year, month, date);\n\n // Check that the date wasn't above the upper bound for the month, causing the month to overflow\n if (result.getMonth() != month) {\n throw Error(`Invalid date \"${date}\" for month with index \"${month}\".`);\n }\n\n return result;\n }\n/**\n * @return {?}\n */\ntoday(): Date {\n return new Date();\n }\n/**\n * @param {?} value\n * @return {?}\n */\nparse(value: any): Date | null {\n // We have no way using the native JS Date to set the parse format or locale, so we ignore these\n // parameters.\n if (typeof value == 'number') {\n return new Date(value);\n }\n return value ? new Date(Date.parse(value)) : null;\n }\n/**\n * @param {?} date\n * @param {?} displayFormat\n * @return {?}\n */\nformat(date: Date, displayFormat: Object): string {\n if (!this.isValid(date)) {\n throw Error('NativeDateAdapter: Cannot format invalid date.');\n }\n if (SUPPORTS_INTL_API) {\n if (this.useUtcForDisplay) {\n date = new Date(Date.UTC(\n date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(),\n date.getMinutes(), date.getSeconds(), date.getMilliseconds()));\n displayFormat = extendObject({}, displayFormat, {timeZone: 'utc'});\n }\n let /** @type {?} */ dtf = new Intl.DateTimeFormat(this.locale, displayFormat);\n return this._stripDirectionalityCharacters(dtf.format(date));\n }\n return this._stripDirectionalityCharacters(date.toDateString());\n }\n/**\n * @param {?} date\n * @param {?} years\n * @return {?}\n */\naddCalendarYears(date: Date, years: number): Date {\n return this.addCalendarMonths(date, years * 12);\n }\n/**\n * @param {?} date\n * @param {?} months\n * @return {?}\n */\naddCalendarMonths(date: Date, months: number): Date {\n let /** @type {?} */ newDate = this._createDateWithOverflow(\n this.getYear(date), this.getMonth(date) + months, this.getDate(date));\n\n // It's possible to wind up in the wrong month if the original month has more days than the new\n // month. In this case we want to go to the last day of the desired month.\n // Note: the additional + 12 % 12 ensures we end up with a positive number, since JS % doesn't\n // guarantee this.\n if (this.getMonth(newDate) != ((this.getMonth(date) + months) % 12 + 12) % 12) {\n newDate = this._createDateWithOverflow(this.getYear(newDate), this.getMonth(newDate), 0);\n }\n\n return newDate;\n }\n/**\n * @param {?} date\n * @param {?} days\n * @return {?}\n */\naddCalendarDays(date: Date, days: number): Date {\n return this._createDateWithOverflow(\n this.getYear(date), this.getMonth(date), this.getDate(date) + days);\n }\n/**\n * @param {?} date\n * @return {?}\n */\ntoIso8601(date: Date): string {\n return [\n date.getUTCFullYear(),\n this._2digit(date.getUTCMonth() + 1),\n this._2digit(date.getUTCDate())\n ].join('-');\n }\n/**\n * @param {?} iso8601String\n * @return {?}\n */\nfromIso8601(iso8601String: string): Date | null {\n // The `Date` constructor accepts formats other than ISO 8601, so we need to make sure the\n // string is the right format first.\n if (ISO_8601_REGEX.test(iso8601String)) {\n let /** @type {?} */ d = new Date(iso8601String);\n if (this.isValid(d)) {\n return d;\n }\n }\n return null;\n }\n/**\n * @param {?} obj\n * @return {?}\n */\nisDateInstance(obj: any) {\n return obj instanceof Date;\n }\n/**\n * @param {?} date\n * @return {?}\n */\nisValid(date: Date) {\n return !isNaN(date.getTime());\n }\n/**\n * Creates a date but allows the month and date to overflow.\n * @param {?} year\n * @param {?} month\n * @param {?} date\n * @return {?}\n */\nprivate _createDateWithOverflow(year: number, month: number, date: number) {\n let /** @type {?} */ result = new Date(year, month, date);\n\n // We need to correct for the fact that JS native Date treats years in range [0, 99] as\n // abbreviations for 19xx.\n if (year >= 0 && year < 100) {\n result.setFullYear(this.getYear(result) - 1900);\n }\n return result;\n }\n/**\n * Pads a number to make it two digits.\n * @param {?} n The number to pad.\n * @return {?} The padded number.\n */\nprivate _2digit(n: number) {\n return ('00' + n).slice(-2);\n }\n/**\n * Strip out unicode LTR and RTL characters. Edge and IE insert these into formatted dates while\n * other browsers do not. We remove them to make output consistent and because they interfere with\n * date parsing.\n * @param {?} str The string to strip direction characters from.\n * @return {?} The stripped string.\n */\nprivate _stripDirectionalityCharacters(str: string) {\n return str.replace(/[\\u200e\\u200f]/g, '');\n }\nstatic decorators: DecoratorInvocation[] = [\n{ type: Injectable },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n{type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [MAT_DATE_LOCALE, ] }, ]},\n];\n}\n\nfunction NativeDateAdapter_tsickle_Closure_declarations() {\n/** @type {?} */\nNativeDateAdapter.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nNativeDateAdapter.ctorParameters;\n/**\n * Whether to use `timeZone: 'utc'` with `Intl.DateTimeFormat` when formatting dates.\n * Without this `Intl.DateTimeFormat` sometimes chooses the wrong timeZone, which can throw off\n * the result. (e.g. in the en-US locale `new Date(1800, 7, 14).toLocaleDateString()`\n * will produce `'8/13/1800'`.\n * @type {?}\n */\nNativeDateAdapter.prototype.useUtcForDisplay;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n","\n/**\n * Extends an object with the *enumerable* and *own* properties of one or more source objects,\n * similar to Object.assign.\n * \n * @param {?} dest The object which will have properties copied to it.\n * @param {...?} sources The source objects from which properties will be copied.\n * @return {?}\n */\nexport function extendObject(dest: any, ...sources: any[]): any {\n if (dest == null) {\n throw TypeError('Cannot convert undefined or null to object');\n }\n\n for (let /** @type {?} */ source of sources) {\n if (source != null) {\n for (let /** @type {?} */ key in source) {\n if (source.hasOwnProperty(key)) {\n dest[key] = source[key];\n }\n }\n }\n }\n\n return dest;\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n\nimport {MdDateFormats} from './date-formats';\n\n\nexport const /** @type {?} */ MD_NATIVE_DATE_FORMATS: MdDateFormats = {\n parse: {\n dateInput: null,\n },\n display: {\n dateInput: {year: 'numeric', month: 'numeric', day: 'numeric'},\n monthYearLabel: {year: 'numeric', month: 'short'},\n dateA11yLabel: {year: 'numeric', month: 'long', day: 'numeric'},\n monthYearA11yLabel: {year: 'numeric', month: 'long'},\n }\n};\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n\nimport {NgModule} from '@angular/core';\nimport {DateAdapter, MAT_DATE_LOCALE_PROVIDER} from './date-adapter';\nimport {NativeDateAdapter} from './native-date-adapter';\nimport {MD_DATE_FORMATS} from './date-formats';\nimport {MD_NATIVE_DATE_FORMATS} from './native-date-formats';\n\nexport {MAT_DATE_LOCALE,MAT_DATE_LOCALE_PROVIDER,DateAdapter} from './date-adapter';\nexport {MdDateFormats,MD_DATE_FORMATS} from './date-formats';\nexport {NativeDateAdapter} from './native-date-adapter';\nexport {MD_NATIVE_DATE_FORMATS} from './native-date-formats';\nexport class NativeDateModule {static decorators: DecoratorInvocation[] = [\n{ type: NgModule, args: [{\n providers: [\n {provide: DateAdapter, useClass: NativeDateAdapter},\n MAT_DATE_LOCALE_PROVIDER\n ],\n}, ] },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n];\n}\n\nfunction NativeDateModule_tsickle_Closure_declarations() {\n/** @type {?} */\nNativeDateModule.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nNativeDateModule.ctorParameters;\n}\n\nexport class MdNativeDateModule {static decorators: DecoratorInvocation[] = [\n{ type: NgModule, args: [{\n imports: [NativeDateModule],\n providers: [{provide: MD_DATE_FORMATS, useValue: MD_NATIVE_DATE_FORMATS}],\n}, ] },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n];\n}\n\nfunction MdNativeDateModule_tsickle_Closure_declarations() {\n/** @type {?} */\nMdNativeDateModule.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nMdNativeDateModule.ctorParameters;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n\nimport {InjectionToken} from '@angular/core';\nimport {FormControl, FormGroupDirective, NgForm} from '@angular/forms';\n/**\n * Injection token that can be used to specify the global error options.\n */\nexport const MD_ERROR_GLOBAL_OPTIONS = new InjectionToken<ErrorOptions>('md-error-global-options');\n\nexport type ErrorStateMatcher =\n (control: FormControl, form: FormGroupDirective | NgForm) => boolean;\n\nexport interface ErrorOptions {\n errorStateMatcher?: ErrorStateMatcher;\n}\n/**\n * Returns whether control is invalid and is either touched or is a part of a submitted form.\n * @param {?} control\n * @param {?} form\n * @return {?}\n */\nexport function defaultErrorStateMatcher(control: FormControl, form: FormGroupDirective | NgForm) {\n const /** @type {?} */ isSubmitted = form && form.submitted;\n return !!(control.invalid && (control.touched || isSubmitted));\n}\n/**\n * Returns whether control is invalid and is either dirty or is a part of a submitted form.\n * @param {?} control\n * @param {?} form\n * @return {?}\n */\nexport function showOnDirtyErrorStateMatcher(control: FormControl,\n form: FormGroupDirective | NgForm) {\n const /** @type {?} */ isSubmitted = form && form.submitted;\n return !!(control.invalid && (control.dirty || isSubmitted));\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n\nimport {Injectable, isDevMode} from '@angular/core';\nimport {HammerGestureConfig} from '@angular/platform-browser';\nimport {HammerStatic, HammerInstance, Recognizer, RecognizerStatic} from './gesture-annotations';\nexport class GestureConfig extends HammerGestureConfig {\nprivate _hammer: HammerStatic = typeof window !== 'undefined' ? ( /** @type {?} */((window as any))).Hammer : null;\n\n /* List of new event names to add to the gesture support list */\n events: string[] = this._hammer ? [\n 'longpress',\n 'slide',\n 'slidestart',\n 'slideend',\n 'slideright',\n 'slideleft'\n ] : [];\nconstructor() {\n super();\n\n if (!this._hammer && isDevMode()) {\n console.warn(\n 'Could not find HammerJS. Certain Angular Material ' +\n 'components may not work correctly.'\n );\n }\n }\n/**\n * Builds Hammer instance manually to add custom recognizers that match the Material Design spec.\n * \n * Our gesture names come from the Material Design gestures spec:\n * https://www.google.com/design/spec/patterns/gestures.html#gestures-touch-mechanics\n * \n * More information on default recognizers can be found in Hammer docs:\n * http://hammerjs.github.io/recognizer-pan/\n * http://hammerjs.github.io/recognizer-press/\n * \n * @param {?} element Element to which to assign the new HammerJS gestures.\n * @return {?} Newly-created HammerJS instance.\n */\nbuildHammer(element: HTMLElement): HammerInstance {\n const /** @type {?} */ mc = new this._hammer(element);\n\n // Default Hammer Recognizers.\n let /** @type {?} */ pan = new this._hammer.Pan();\n let /** @type {?} */ swipe = new this._hammer.Swipe();\n let /** @type {?} */ press = new this._hammer.Press();\n\n // Notice that a HammerJS recognizer can only depend on one other recognizer once.\n // Otherwise the previous `recognizeWith` will be dropped.\n // TODO: Confirm threshold numbers with Material Design UX Team\n let /** @type {?} */ slide = this._createRecognizer(pan, {event: 'slide', threshold: 0}, swipe);\n let /** @type {?} */ longpress = this._createRecognizer(press, {event: 'longpress', time: 500});\n\n // Overwrite the default `pan` event to use the swipe event.\n pan.recognizeWith(swipe);\n\n // Add customized gestures to Hammer manager\n mc.add([swipe, press, pan, slide, longpress]);\n\n return /** @type {?} */(( mc as HammerInstance));\n }\n/**\n * Creates a new recognizer, without affecting the default recognizers of HammerJS\n * @param {?} base\n * @param {?} options\n * @param {...?} inheritances\n * @return {?}\n */\nprivate _createRecognizer(base: Recognizer, options: any, ...inheritances: Recognizer[]) {\n let /** @type {?} */ recognizer = new ( /** @type {?} */((base.constructor as RecognizerStatic)))(options);\n\n inheritances.push(base);\n inheritances.forEach(item => recognizer.recognizeWith(item));\n\n return recognizer;\n }\n\nstatic decorators: DecoratorInvocation[] = [\n{ type: Injectable },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n];\n}\n\nfunction GestureConfig_tsickle_Closure_declarations() {\n/** @type {?} */\nGestureConfig.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nGestureConfig.ctorParameters;\n/** @type {?} */\nGestureConfig.prototype._hammer;\n/** @type {?} */\nGestureConfig.prototype.events;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n\nimport {\n NgModule,\n Directive,\n Renderer2,\n ElementRef,\n QueryList,\n} from '@angular/core';\nimport {MdCommonModule} from '../common-behaviors/common-module';\n/**\n * Shared directive to count lines inside a text area, such as a list item.\n * Line elements can be extracted with a \\@ContentChildren(MdLine) query, then\n * counted by checking the query list's length.\n */\nexport class MdLine {static decorators: DecoratorInvocation[] = [\n{ type: Directive, args: [{\n selector: '[md-line], [mat-line], [mdLine], [matLine]',\n host: {'class': 'mat-line'}\n}, ] },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n];\n}\n\nfunction MdLine_tsickle_Closure_declarations() {\n/** @type {?} */\nMdLine.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nMdLine.ctorParameters;\n}\n\n/**\n * Helper that takes a query list of lines and sets the correct class on the host.\n * \\@docs-private\n */\nexport class MdLineSetter {\n/**\n * @param {?} _lines\n * @param {?} _renderer\n * @param {?} _element\n */\nconstructor(private _lines: QueryList<MdLine>,\nprivate _renderer: Renderer2,\nprivate _element: ElementRef) {\n this._setLineClass(this._lines.length);\n\n this._lines.changes.subscribe(() => {\n this._setLineClass(this._lines.length);\n });\n }\n/**\n * @param {?} count\n * @return {?}\n */\nprivate _setLineClass(count: number): void {\n this._resetClasses();\n if (count === 2 || count === 3) {\n this._setClass(`mat-${count}-line`, true);\n } else if (count > 3) {\n this._setClass(`mat-multi-line`, true);\n }\n }\n/**\n * @return {?}\n */\nprivate _resetClasses(): void {\n this._setClass('mat-2-line', false);\n this._setClass('mat-3-line', false);\n this._setClass('mat-multi-line', false);\n }\n/**\n * @param {?} className\n * @param {?} isAdd\n * @return {?}\n */\nprivate _setClass(className: string, isAdd: boolean): void {\n if (isAdd) {\n this._renderer.addClass(this._element.nativeElement, className);\n } else {\n this._renderer.removeClass(this._element.nativeElement, className);\n }\n }\n\n}\n\nfunction MdLineSetter_tsickle_Closure_declarations() {\n/** @type {?} */\nMdLineSetter.prototype._lines;\n/** @type {?} */\nMdLineSetter.prototype._renderer;\n/** @type {?} */\nMdLineSetter.prototype._element;\n}\n\nexport class MdLineModule { static decorators: DecoratorInvocation[] = [\n{ type: NgModule, args: [{\n imports: [MdCommonModule],\n exports: [MdLine, MdCommonModule],\n declarations: [MdLine],\n}, ] },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n];\n}\n\nfunction MdLineModule_tsickle_Closure_declarations() {\n/** @type {?} */\nMdLineModule.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nMdLineModule.ctorParameters;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n\nimport {RippleConfig, RippleRenderer} from './ripple-renderer';\nexport type RippleState = number;\nexport let RippleState: any = {};\nRippleState.FADING_IN = 0;\nRippleState.VISIBLE = 1;\nRippleState.FADING_OUT = 2;\nRippleState.HIDDEN = 3;\nRippleState[RippleState.FADING_IN] = \"FADING_IN\";\nRippleState[RippleState.VISIBLE] = \"VISIBLE\";\nRippleState[RippleState.FADING_OUT] = \"FADING_OUT\";\nRippleState[RippleState.HIDDEN] = \"HIDDEN\";\n\n/**\n * Reference to a previously launched ripple element.\n */\nexport class RippleRef {\n/**\n * Current state of the ripple reference.\n */\nstate: RippleState = RippleState.HIDDEN;\n/**\n * @param {?} _renderer\n * @param {?} element\n * @param {?} config\n */\nconstructor(\nprivate _renderer: RippleRenderer,\npublic element: HTMLElement,\npublic config: RippleConfig) {\n }\n/**\n * Fades out the ripple element.\n * @return {?}\n */\nfadeOut() {\n this._renderer.fadeOutRipple(this);\n }\n}\n\nfunction RippleRef_tsickle_Closure_declarations() {\n/**\n * Current state of the ripple reference.\n * @type {?}\n */\nRippleRef.prototype.state;\n/** @type {?} */\nRippleRef.prototype._renderer;\n/** @type {?} */\nRippleRef.prototype.element;\n/** @type {?} */\nRippleRef.prototype.config;\n}\n\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n\nimport {\n Directive,\n ElementRef,\n Input,\n Inject,\n NgZone,\n OnChanges,\n SimpleChanges,\n OnDestroy,\n InjectionToken,\n Optional,\n} from '@angular/core';\nimport {ViewportRuler} from '@angular/cdk/scrolling';\nimport {Platform} from '@angular/cdk/platform';\nimport {RippleConfig, RippleRenderer} from './ripple-renderer';\nimport {RippleRef} from './ripple-ref';\n\nexport interface RippleGlobalOptions {\n disabled?: boolean;\n baseSpeedFactor?: number;\n}\n/**\n * Injection token that can be used to specify the global ripple options.\n */\nexport const MD_RIPPLE_GLOBAL_OPTIONS =\n new InjectionToken<RippleGlobalOptions>('md-ripple-global-options');\nexport class MdRipple implements OnChanges, OnDestroy {\n\n /**\n * The element that triggers the ripple when click events are received. Defaults to the\n * directive's host element.\n */\n // Prevent TS metadata emit from referencing HTMLElement in ripple.js\n // Otherwise running this code in a Node environment (e.g Universal) will not work.\n trigger: HTMLElement|HTMLElement;\n/**\n * Whether the ripple always originates from the center of the host element's bounds, rather\n * than originating from the location of the click event.\n */\ncentered: boolean;\n/**\n * Whether click events will not trigger the ripple. Ripples can be still launched manually\n * by using the `launch()` method.\n */\ndisabled: boolean;\n/**\n * If set, the radius in pixels of foreground ripples when fully expanded. If unset, the radius\n * will be the distance from the center of the ripple to the furthest corner of the host element's\n * bounding rectangle.\n */\nradius: number = 0;\n/**\n * If set, the normal duration of ripple animations is divided by this value. For example,\n * setting it to 0.5 will cause the animations to take twice as long.\n * A changed speedFactor will not modify the fade-out duration of the ripples.\n */\nspeedFactor: number = 1;\n/**\n * Custom color for ripples.\n */\ncolor: string;\n/**\n * Whether foreground ripples should be visible outside the component's bounds.\n */\nunbounded: boolean;\n/**\n * @return {?}\n */\nget _matRippleTrigger() { return this.trigger; }\n/**\n * @param {?} v\n * @return {?}\n */\nset _matRippleTrigger(v) { this.trigger = v; }\n/**\n * @return {?}\n */\nget _matRippleCentered() { return this.centered; }\n/**\n * @param {?} v\n * @return {?}\n */\nset _matRippleCentered(v) { this.centered = v; }\n/**\n * @return {?}\n */\nget _matRippleDisabled() { return this.disabled; }\n/**\n * @param {?} v\n * @return {?}\n */\nset _matRippleDisabled(v) { this.disabled = v; }\n/**\n * @return {?}\n */\nget _matRippleRadius() { return this.radius; }\n/**\n * @param {?} v\n * @return {?}\n */\nset _matRippleRadius(v) { this.radius = v; }\n/**\n * @return {?}\n */\nget _matRippleSpeedFactor() { return this.speedFactor; }\n/**\n * @param {?} v\n * @return {?}\n */\nset _matRippleSpeedFactor(v) { this.speedFactor = v; }\n/**\n * @return {?}\n */\nget _matRippleColor() { return this.color; }\n/**\n * @param {?} v\n * @return {?}\n */\nset _matRippleColor(v) { this.color = v; }\n/**\n * @return {?}\n */\nget _matRippleUnbounded() { return this.unbounded; }\n/**\n * @param {?} v\n * @return {?}\n */\nset _matRippleUnbounded(v) { this.unbounded = v; }\n/**\n * Renderer for the ripple DOM manipulations.\n */\nprivate _rippleRenderer: RippleRenderer;\n/**\n * Options that are set globally for all ripples.\n */\nprivate _globalOptions: RippleGlobalOptions;\n/**\n * @param {?} elementRef\n * @param {?} ngZone\n * @param {?} ruler\n * @param {?} platform\n * @param {?} globalOptions\n */\nconstructor(\n elementRef: ElementRef,\n ngZone: NgZone,\n ruler: ViewportRuler,\n platform: Platform,\n globalOptions: RippleGlobalOptions\n ) {\n this._rippleRenderer = new RippleRenderer(elementRef, ngZone, ruler, platform);\n this._globalOptions = globalOptions ? globalOptions : {};\n\n this._updateRippleRenderer();\n }\n/**\n * @param {?} changes\n * @return {?}\n */\nngOnChanges(changes: SimpleChanges) {\n if ((changes['trigger'] || changes['_matRippleTrigger']) && this.trigger) {\n this._rippleRenderer.setTriggerElement(this.trigger);\n }\n\n this._updateRippleRenderer();\n }\n/**\n * @return {?}\n */\nngOnDestroy() {\n // Set the trigger element to null to cleanup all listeners.\n this._rippleRenderer.setTriggerElement(null);\n }\n/**\n * Launches a manual ripple at the specified position.\n * @param {?} pageX\n * @param {?} pageY\n * @param {?=} config\n * @return {?}\n */\nlaunch(pageX: number, pageY: number, config = this.rippleConfig): RippleRef {\n return this._rippleRenderer.fadeInRipple(pageX, pageY, config);\n }\n/**\n * Fades out all currently showing ripple elements.\n * @return {?}\n */\nfadeOutAll() {\n this._rippleRenderer.fadeOutAll();\n }\n/**\n * Ripple configuration from the directive's input values.\n * @return {?}\n */\nget rippleConfig(): RippleConfig {\n return {\n centered: this.centered,\n speedFactor: this.speedFactor * (this._globalOptions.baseSpeedFactor || 1),\n radius: this.radius,\n color: this.color\n };\n }\n/**\n * Updates the ripple renderer with the latest ripple configuration.\n * @return {?}\n */\n_updateRippleRenderer() {\n this._rippleRenderer.rippleDisabled = this._globalOptions.disabled || this.disabled;\n this._rippleRenderer.rippleConfig = this.rippleConfig;\n }\nstatic decorators: DecoratorInvocation[] = [\n{ type: Directive, args: [{\n selector: '[md-ripple], [mat-ripple], [mdRipple], [matRipple]',\n exportAs: 'mdRipple, matRipple',\n host: {\n 'class': 'mat-ripple',\n '[class.mat-ripple-unbounded]': 'unbounded'\n }\n}, ] },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n{type: ElementRef, },\n{type: NgZone, },\n{type: ViewportRuler, },\n{type: Platform, },\n{type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [MD_RIPPLE_GLOBAL_OPTIONS, ] }, ]},\n];\nstatic propDecorators: {[key: string]: DecoratorInvocation[]} = {\n'trigger': [{ type: Input, args: ['mdRippleTrigger', ] },],\n'centered': [{ type: Input, args: ['mdRippleCentered', ] },],\n'disabled': [{ type: Input, args: ['mdRippleDisabled', ] },],\n'radius': [{ type: Input, args: ['mdRippleRadius', ] },],\n'speedFactor': [{ type: Input, args: ['mdRippleSpeedFactor', ] },],\n'color': [{ type: Input, args: ['mdRippleColor', ] },],\n'unbounded': [{ type: Input, args: ['mdRippleUnbounded', ] },],\n'_matRippleTrigger': [{ type: Input, args: ['matRippleTrigger', ] },],\n'_matRippleCentered': [{ type: Input, args: ['matRippleCentered', ] },],\n'_matRippleDisabled': [{ type: Input, args: ['matRippleDisabled', ] },],\n'_matRippleRadius': [{ type: Input, args: ['matRippleRadius', ] },],\n'_matRippleSpeedFactor': [{ type: Input, args: ['matRippleSpeedFactor', ] },],\n'_matRippleColor': [{ type: Input, args: ['matRippleColor', ] },],\n'_matRippleUnbounded': [{ type: Input, args: ['matRippleUnbounded', ] },],\n};\n}\n\nfunction MdRipple_tsickle_Closure_declarations() {\n/** @type {?} */\nMdRipple.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nMdRipple.ctorParameters;\n/** @type {?} */\nMdRipple.propDecorators;\n/** @type {?} */\nMdRipple.prototype.trigger;\n/**\n * Whether the ripple always originates from the center of the host element's bounds, rather\n * than originating from the location of the click event.\n * @type {?}\n */\nMdRipple.prototype.centered;\n/**\n * Whether click events will not trigger the ripple. Ripples can be still launched manually\n * by using the `launch()` method.\n * @type {?}\n */\nMdRipple.prototype.disabled;\n/**\n * If set, the radius in pixels of foreground ripples when fully expanded. If unset, the radius\n * will be the distance from the center of the ripple to the furthest corner of the host element's\n * bounding rectangle.\n * @type {?}\n */\nMdRipple.prototype.radius;\n/**\n * If set, the normal duration of ripple animations is divided by this value. For example,\n * setting it to 0.5 will cause the animations to take twice as long.\n * A changed speedFactor will not modify the fade-out duration of the ripples.\n * @type {?}\n */\nMdRipple.prototype.speedFactor;\n/**\n * Custom color for ripples.\n * @type {?}\n */\nMdRipple.prototype.color;\n/**\n * Whether foreground ripples should be visible outside the component's bounds.\n * @type {?}\n */\nMdRipple.prototype.unbounded;\n/**\n * Renderer for the ripple DOM manipulations.\n * @type {?}\n */\nMdRipple.prototype._rippleRenderer;\n/**\n * Options that are set globally for all ripples.\n * @type {?}\n */\nMdRipple.prototype._globalOptions;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n\nimport {NgModule} from '@angular/core';\nimport {ScrollDispatchModule, VIEWPORT_RULER_PROVIDER} from '@angular/cdk/scrolling';\nimport {PlatformModule} from '@angular/cdk/platform';\nimport {MdCommonModule} from '../common-behaviors/common-module';\nimport {MdRipple} from './ripple';\n\nexport {MdRipple, RippleGlobalOptions, MD_RIPPLE_GLOBAL_OPTIONS} from './ripple';\nexport {RippleRef, RippleState} from './ripple-ref';\nexport {RippleConfig, RIPPLE_FADE_IN_DURATION, RIPPLE_FADE_OUT_DURATION} from './ripple-renderer';\nexport class MdRippleModule {static decorators: DecoratorInvocation[] = [\n{ type: NgModule, args: [{\n imports: [MdCommonModule, PlatformModule, ScrollDispatchModule],\n exports: [MdRipple, MdCommonModule],\n declarations: [MdRipple],\n providers: [VIEWPORT_RULER_PROVIDER],\n}, ] },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n];\n}\n\nfunction MdRippleModule_tsickle_Closure_declarations() {\n/** @type {?} */\nMdRippleModule.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nMdRippleModule.ctorParameters;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n\nimport {Component, ViewEncapsulation, Input, ChangeDetectionStrategy} from '@angular/core';\n\nexport type MdPseudoCheckboxState = 'unchecked' | 'checked' | 'indeterminate';\n/**\n * Component that shows a simplified checkbox without including any kind of \"real\" checkbox.\n * Meant to be used when the checkbox is purely decorative and a large number of them will be\n * included, such as for the options in a multi-select. Uses no SVGs or complex animations.\n * Note that theming is meant to be handled by the parent element, e.g.\n * `mat-primary .mat-pseudo-checkbox`.\n * \n * Note that this component will be completely invisible to screen-reader users. This is *not*\n * interchangeable with <md-checkbox> and should *not* be used if the user would directly interact\n * with the checkbox. The pseudo-checkbox should only be used as an implementation detail of\n * more complex components that appropriately handle selected / checked state.\n * \\@docs-private\n */\nexport class MdPseudoCheckbox {\n/**\n * Display state of the checkbox.\n */\nstate: MdPseudoCheckboxState = 'unchecked';\n/**\n * Whether the checkbox is disabled.\n */\ndisabled: boolean = false;\nstatic decorators: DecoratorInvocation[] = [\n{ type: Component, args: [{\n moduleId: module.id,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'md-pseudo-checkbox, mat-pseudo-checkbox',\n styleUrls: ['pseudo-checkbox.css'],\n template: '',\n host: {\n 'class': 'mat-pseudo-checkbox',\n '[class.mat-pseudo-checkbox-indeterminate]': 'state === \"indeterminate\"',\n '[class.mat-pseudo-checkbox-checked]': 'state === \"checked\"',\n '[class.mat-pseudo-checkbox-disabled]': 'disabled',\n },\n}, ] },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n];\nstatic propDecorators: {[key: string]: DecoratorInvocation[]} = {\n'state': [{ type: Input },],\n'disabled': [{ type: Input },],\n};\n}\n\nfunction MdPseudoCheckbox_tsickle_Closure_declarations() {\n/** @type {?} */\nMdPseudoCheckbox.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nMdPseudoCheckbox.ctorParameters;\n/** @type {?} */\nMdPseudoCheckbox.propDecorators;\n/**\n * Display state of the checkbox.\n * @type {?}\n */\nMdPseudoCheckbox.prototype.state;\n/**\n * Whether the checkbox is disabled.\n * @type {?}\n */\nMdPseudoCheckbox.prototype.disabled;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n\nimport {NgModule} from '@angular/core';\nimport {MdPseudoCheckbox} from './pseudo-checkbox/pseudo-checkbox';\nexport class MdPseudoCheckboxModule { static decorators: DecoratorInvocation[] = [\n{ type: NgModule, args: [{\n exports: [MdPseudoCheckbox],\n declarations: [MdPseudoCheckbox]\n}, ] },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n];\n}\n\nfunction MdPseudoCheckboxModule_tsickle_Closure_declarations() {\n/** @type {?} */\nMdPseudoCheckboxModule.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nMdPseudoCheckboxModule.ctorParameters;\n}\n\n\n\nexport {MdPseudoCheckboxState,MdPseudoCheckbox} from './pseudo-checkbox/pseudo-checkbox';\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n\nimport {Component, ViewEncapsulation, Input, ChangeDetectionStrategy} from '@angular/core';\nimport {mixinDisabled, CanDisable} from '../common-behaviors/disabled';\n/**\n * \\@docs-private\n */\nexport class MdOptgroupBase { }\nexport const /** @type {?} */ _MdOptgroupMixinBase = mixinDisabled(MdOptgroupBase);\n\n// Counter for unique group ids.\nlet /** @type {?} */ _uniqueOptgroupIdCounter = 0;\n/**\n * Component that is used to group instances of `md-option`.\n */\nexport class MdOptgroup extends _MdOptgroupMixinBase implements CanDisable {\n/**\n * Label for the option group.\n */\nlabel: string;\n/**\n * Unique id for the underlying label.\n */\n_labelId: string = `mat-optgroup-label-${_uniqueOptgroupIdCounter++}`;\nstatic decorators: DecoratorInvocation[] = [\n{ type: Component, args: [{\n moduleId: module.id,\n selector: 'md-optgroup, mat-optgroup',\n templateUrl: 'optgroup.html',\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n inputs: ['disabled'],\n host: {\n 'class': 'mat-optgroup',\n 'role': 'group',\n '[class.mat-optgroup-disabled]': 'disabled',\n '[attr.aria-disabled]': 'disabled.toString()',\n '[attr.aria-labelledby]': '_labelId',\n }\n}, ] },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n];\nstatic propDecorators: {[key: string]: DecoratorInvocation[]} = {\n'label': [{ type: Input },],\n};\n}\n\nfunction MdOptgroup_tsickle_Closure_declarations() {\n/** @type {?} */\nMdOptgroup.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nMdOptgroup.ctorParameters;\n/** @type {?} */\nMdOptgroup.propDecorators;\n/**\n * Label for the option group.\n * @type {?}\n */\nMdOptgroup.prototype.label;\n/**\n * Unique id for the underlying label.\n * @type {?}\n */\nMdOptgroup.prototype._labelId;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n\nimport {\n Component,\n ElementRef,\n EventEmitter,\n Input,\n Output,\n ViewEncapsulation,\n Optional,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n QueryList,\n} from '@angular/core';\nimport {ENTER, SPACE} from '../keyboard/keycodes';\nimport {coerceBooleanProperty} from '@angular/cdk/coercion';\nimport {MATERIAL_COMPATIBILITY_MODE} from '../compatibility/compatibility';\nimport {MdOptgroup} from './optgroup';\n/**\n * Option IDs need to be unique across components, so this counter exists outside of\n * the component definition.\n */\nlet _uniqueIdCounter = 0;\n/**\n * Event object emitted by MdOption when selected or deselected.\n */\nexport class MdOptionSelectionChange {\n/**\n * @param {?} source\n * @param {?=} isUserInput\n */\nconstructor(public source: MdOption,\npublic isUserInput = false) { }\n}\n\nfunction MdOptionSelectionChange_tsickle_Closure_declarations() {\n/** @type {?} */\nMdOptionSelectionChange.prototype.source;\n/** @type {?} */\nMdOptionSelectionChange.prototype.isUserInput;\n}\n\n/**\n * Single option inside of a `<md-select>` element.\n */\nexport class MdOption {\nprivate _selected: boolean = false;\nprivate _active: boolean = false;\nprivate _multiple: boolean = false;\nprivate _disableRipple: boolean = false;\n/**\n * Whether the option is disabled.\n */\nprivate _disabled: boolean = false;\nprivate _id: string = `md-option-${_uniqueIdCounter++}`;\n/**\n * Whether the wrapping component is in multiple selection mode.\n * @return {?}\n */\nget multiple() { return this._multiple; }\n/**\n * @param {?} value\n * @return {?}\n */\nset multiple(value: boolean) {\n if (value !== this._multiple) {\n this._multiple = value;\n this._changeDetectorRef.markForCheck();\n }\n }\n/**\n * The unique ID of the option.\n * @return {?}\n */\nget id() { return this._id; }\n/**\n * Whether or not the option is currently selected.\n * @return {?}\n */\nget selected(): boolean { return this._selected; }\n/**\n * The form value of the option.\n */\nvalue: any;\n/**\n * Whether the option is disabled.\n * @return {?}\n */\nget disabled() { return (this.group && this.group.disabled) || this._disabled; }\n/**\n * @param {?} value\n * @return {?}\n */\nset disabled(value: any) { this._disabled = coerceBooleanProperty(value); }\n/**\n * Whether ripples for the option are disabled.\n * @return {?}\n */\nget disableRipple() { return this._disableRipple; }\n/**\n * @param {?} value\n * @return {?}\n */\nset disableRipple(value: boolean) {\n this._disableRipple = value;\n this._changeDetectorRef.markForCheck();\n }\n/**\n * Event emitted when the option is selected or deselected.\n */\nonSelectionChange = new EventEmitter<MdOptionSelectionChange>();\n/**\n * @param {?} _element\n * @param {?} _changeDetectorRef\n * @param {?} group\n */\nconstructor(\nprivate _element: ElementRef,\nprivate _changeDetectorRef: ChangeDetectorRef,\npublic readonly group: MdOptgroup) {}\n/**\n * Whether or not the option is currently active and ready to be selected.\n * An active option displays styles as if it is focused, but the\n * focus is actually retained somewhere else. This comes in handy\n * for components like autocomplete where focus must remain on the input.\n * @return {?}\n */\nget active(): boolean {\n return this._active;\n }\n/**\n * The displayed value of the option. It is necessary to show the selected option in the\n * select's trigger.\n * @return {?}\n */\nget viewValue(): string {\n // TODO(kara): Add input property alternative for node envs.\n return (this._getHostElement().textContent || '').trim();\n }\n/**\n * Selects the option.\n * @return {?}\n */\nselect(): void {\n this._selected = true;\n this._changeDetectorRef.markForCheck();\n this._emitSelectionChangeEvent();\n }\n/**\n * Deselects the option.\n * @return {?}\n */\ndeselect(): void {\n this._selected = false;\n this._changeDetectorRef.markForCheck();\n this._emitSelectionChangeEvent();\n }\n/**\n * Sets focus onto this option.\n * @return {?}\n */\nfocus(): void {\n const /** @type {?} */ element = this._getHostElement();\n\n if (typeof element.focus === 'function') {\n element.focus();\n }\n }\n/**\n * This method sets display styles on the option to make it appear\n * active. This is used by the ActiveDescendantKeyManager so key\n * events will display the proper options as active on arrow key events.\n * @return {?}\n */\nsetActiveStyles(): void {\n if (!this._active) {\n this._active = true;\n this._changeDetectorRef.markForCheck();\n }\n }\n/**\n * This method removes display styles on the option that made it appear\n * active. This is used by the ActiveDescendantKeyManager so key\n * events will display the proper options as active on arrow key events.\n * @return {?}\n */\nsetInactiveStyles(): void {\n if (this._active) {\n this._active = false;\n this._changeDetectorRef.markForCheck();\n }\n }\n/**\n * Gets the label to be used when determining whether the option should be focused.\n * @return {?}\n */\ngetLabel(): string {\n return this.viewValue;\n }\n/**\n * Ensures the option is selected when activated from the keyboard.\n * @param {?} event\n * @return {?}\n */\n_handleKeydown(event: KeyboardEvent): void {\n if (event.keyCode === ENTER || event.keyCode === SPACE) {\n this._selectViaInteraction();\n\n // Prevent the page from scrolling down and form submits.\n event.preventDefault();\n }\n }\n/**\n * Selects the option while indicating the selection came from the user. Used to\n * determine if the select's view -> model callback should be invoked.\n * @return {?}\n */\n_selectViaInteraction(): void {\n if (!this.disabled) {\n this._selected = this.multiple ? !this._selected : true;\n this._changeDetectorRef.markForCheck();\n this._emitSelectionChangeEvent(true);\n }\n }\n/**\n * Returns the correct tabindex for the option depending on disabled state.\n * @return {?}\n */\n_getTabIndex(): string {\n return this.disabled ? '-1' : '0';\n }\n/**\n * Gets the host DOM element.\n * @return {?}\n */\n_getHostElement(): HTMLElement {\n return this._element.nativeElement;\n }\n/**\n * Emits the selection change event.\n * @param {?=} isUserInput\n * @return {?}\n */\nprivate _emitSelectionChangeEvent(isUserInput = false): void {\n this.onSelectionChange.emit(new MdOptionSelectionChange(this, isUserInput));\n }\n/**\n * Counts the amount of option group labels that precede the specified option.\n * @param {?} optionIndex Index of the option at which to start counting.\n * @param {?} options Flat list of all of the options.\n * @param {?} optionGroups Flat list of all of the option groups.\n * @return {?}\n */\nstatic countGroupLabelsBeforeOption(optionIndex: number, options: QueryList<MdOption>,\n optionGroups: QueryList<MdOptgroup>): number {\n\n if (optionGroups.length) {\n let /** @type {?} */ optionsArray = options.toArray();\n let /** @type {?} */ groups = optionGroups.toArray();\n let /** @type {?} */ groupCounter = 0;\n\n for (let /** @type {?} */ i = 0; i < optionIndex + 1; i++) {\n if (optionsArray[i].group && optionsArray[i].group === groups[groupCounter]) {\n groupCounter++;\n }\n }\n\n return groupCounter;\n }\n\n return 0;\n }\n\nstatic decorators: DecoratorInvocation[] = [\n{ type: Component, args: [{\n moduleId: module.id,\n selector: 'md-option, mat-option',\n host: {\n 'role': 'option',\n '[attr.tabindex]': '_getTabIndex()',\n '[class.mat-selected]': 'selected',\n '[class.mat-option-multiple]': 'multiple',\n '[class.mat-active]': 'active',\n '[id]': 'id',\n '[attr.aria-selected]': 'selected.toString()',\n '[attr.aria-disabled]': 'disabled.toString()',\n '[class.mat-option-disabled]': 'disabled',\n '(click)': '_selectViaInteraction()',\n '(keydown)': '_handleKeydown($event)',\n 'class': 'mat-option',\n },\n templateUrl: 'option.html',\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n viewProviders: [{provide: MATERIAL_COMPATIBILITY_MODE, useValue: true}],\n}, ] },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n{type: ElementRef, },\n{type: ChangeDetectorRef, },\n{type: MdOptgroup, decorators: [{ type: Optional }, ]},\n];\nstatic propDecorators: {[key: string]: DecoratorInvocation[]} = {\n'value': [{ type: Input },],\n'disabled': [{ type: Input },],\n'onSelectionChange': [{ type: Output },],\n};\n}\n\nfunction MdOption_tsickle_Closure_declarations() {\n/** @type {?} */\nMdOption.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nMdOption.ctorParameters;\n/** @type {?} */\nMdOption.propDecorators;\n/** @type {?} */\nMdOption.prototype._selected;\n/** @type {?} */\nMdOption.prototype._active;\n/** @type {?} */\nMdOption.prototype._multiple;\n/** @type {?} */\nMdOption.prototype._disableRipple;\n/**\n * Whether the option is disabled.\n * @type {?}\n */\nMdOption.prototype._disabled;\n/** @type {?} */\nMdOption.prototype._id;\n/**\n * The form value of the option.\n * @type {?}\n */\nMdOption.prototype.value;\n/**\n * Event emitted when the option is selected or deselected.\n * @type {?}\n */\nMdOption.prototype.onSelectionChange;\n/** @type {?} */\nMdOption.prototype._element;\n/** @type {?} */\nMdOption.prototype._changeDetectorRef;\n/** @type {?} */\nMdOption.prototype.group;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {MdRippleModule} from '../ripple/index';\nimport {MdPseudoCheckboxModule} from '../selection/index';\nimport {MdOption} from './option';\nimport {MdOptgroup} from './optgroup';\nexport class MdOptionModule {static decorators: DecoratorInvocation[] = [\n{ type: NgModule, args: [{\n imports: [MdRippleModule, CommonModule, MdPseudoCheckboxModule],\n exports: [MdOption, MdOptgroup],\n declarations: [MdOption, MdOptgroup]\n}, ] },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n];\n}\n\nfunction MdOptionModule_tsickle_Closure_declarations() {\n/** @type {?} */\nMdOptionModule.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nMdOptionModule.ctorParameters;\n}\n\n\n\nexport {MdOptionSelectionChange,MdOption} from './option';\nexport {MdOptgroupBase,_MdOptgroupMixinBase,MdOptgroup} from './optgroup';\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n\nimport {Injector} from '@angular/core';\n/**\n * Custom injector to be used when providing custom\n * injection tokens to components inside a portal.\n * \\@docs-private\n */\nexport class PortalInjector implements Injector {\n/**\n * @param {?} _parentInjector\n * @param {?} _customTokens\n */\nconstructor(\nprivate _parentInjector: Injector,\nprivate _customTokens: WeakMap<any, any>) { }\n/**\n * @param {?} token\n * @param {?=} notFoundValue\n * @return {?}\n */\nget(token: any, notFoundValue?: any): any {\n const /** @type {?} */ value = this._customTokens.get(token);\n\n if (typeof value !== 'undefined') {\n return value;\n }\n\n return this._parentInjector.get<any>(token, notFoundValue);\n }\n}\n\nfunction PortalInjector_tsickle_Closure_declarations() {\n/** @type {?} */\nPortalInjector.prototype._parentInjector;\n/** @type {?} */\nPortalInjector.prototype._customTokens;\n}\n\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n\nimport {NgModule} from '@angular/core';\nimport {A11yModule} from '@angular/cdk/a11y';\n/**\n * @deprecated\n */\nexport class StyleModule {static decorators: DecoratorInvocation[] = [\n{ type: NgModule, args: [{\n imports: [A11yModule],\n exports: [A11yModule],\n}, ] },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n];\n}\n\nfunction StyleModule_tsickle_Closure_declarations() {\n/** @type {?} */\nStyleModule.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nStyleModule.ctorParameters;\n}\n\n\nexport {\n CdkMonitorFocus,\n FocusMonitor,\n FOCUS_MONITOR_PROVIDER,\n FocusOrigin,\n} from '@angular/cdk/a11y';\nexport {applyCssTransform} from './apply-transform';\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n","\n/**\n * When constructing a Date, the month is zero-based. This can be confusing, since people are\n * used to seeing them one-based. So we create these aliases to make writing the tests easier.\n */\nexport const JAN = 0, FEB = 1, MAR = 2, APR = 3, MAY = 4, JUN = 5, JUL = 6, AUG = 7, SEP = 8,\n OCT = 9, NOV = 10, DEC = 11;\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n\nimport {Directive, Renderer2, ElementRef, NgZone} from '@angular/core';\n/**\n * The ink-bar is used to display and animate the line underneath the current active tab label.\n * \\@docs-private\n */\nexport class MdInkBar {\n/**\n * @param {?} _renderer\n * @param {?} _elementRef\n * @param {?} _ngZone\n */\nconstructor(\nprivate _renderer: Renderer2,\nprivate _elementRef: ElementRef,\nprivate _ngZone: NgZone) {}\n/**\n * Calculates the styles from the provided element in order to align the ink-bar to that element.\n * Shows the ink bar if previously set as hidden.\n * @param {?} element\n * @return {?}\n */\nalignToElement(element: HTMLElement) {\n this.show();\n\n if (typeof requestAnimationFrame !== 'undefined') {\n this._ngZone.runOutsideAngular(() => {\n requestAnimationFrame(() => this._setStyles(element));\n });\n } else {\n this._setStyles(element);\n }\n }\n/**\n * Shows the ink bar.\n * @return {?}\n */\nshow(): void {\n this._renderer.setStyle(this._elementRef.nativeElement, 'visibility', 'visible');\n }\n/**\n * Hides the ink bar.\n * @return {?}\n */\nhide(): void {\n this._renderer.setStyle(this._elementRef.nativeElement, 'visibility', 'hidden');\n }\n/**\n * Sets the proper styles to the ink bar element.\n * @param {?} element\n * @return {?}\n */\nprivate _setStyles(element: HTMLElement) {\n const /** @type {?} */ left = element ? (element.offsetLeft || 0) + 'px' : '0';\n const /** @type {?} */ width = element ? (element.offsetWidth || 0) + 'px' : '0';\n\n this._renderer.setStyle(this._elementRef.nativeElement, 'left', left);\n this._renderer.setStyle(this._elementRef.nativeElement, 'width', width);\n }\nstatic decorators: DecoratorInvocation[] = [\n{ type: Directive, args: [{\n selector: 'md-ink-bar, mat-ink-bar',\n host: {\n 'class': 'mat-ink-bar',\n },\n}, ] },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n{type: Renderer2, },\n{type: ElementRef, },\n{type: NgZone, },\n];\n}\n\nfunction MdInkBar_tsickle_Closure_declarations() {\n/** @type {?} */\nMdInkBar.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nMdInkBar.ctorParameters;\n/** @type {?} */\nMdInkBar.prototype._renderer;\n/** @type {?} */\nMdInkBar.prototype._elementRef;\n/** @type {?} */\nMdInkBar.prototype._ngZone;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n\nimport {Directive, TemplateRef, ViewContainerRef} from '@angular/core';\nimport {TemplatePortalDirective} from '@angular/cdk/portal';\n/**\n * Workaround for https://github.com/angular/angular/issues/17849\n */\nexport const _MdTabLabelBaseClass = TemplatePortalDirective;\n/**\n * Used to flag tab labels for use with the portal directive\n */\nexport class MdTabLabel extends _MdTabLabelBaseClass {\n/**\n * @param {?} templateRef\n * @param {?} viewContainerRef\n */\nconstructor(templateRef: TemplateRef<any>, viewContainerRef: ViewContainerRef) {\n super(templateRef, viewContainerRef);\n }\nstatic decorators: DecoratorInvocation[] = [\n{ type: Directive, args: [{\n selector: '[md-tab-label], [mat-tab-label], [mdTabLabel], [matTabLabel]',\n}, ] },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n{type: TemplateRef, },\n{type: ViewContainerRef, },\n];\n}\n\nfunction MdTabLabel_tsickle_Closure_declarations() {\n/** @type {?} */\nMdTabLabel.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nMdTabLabel.ctorParameters;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n"],"names":["type","ViewContainerRef","MdTabBase","_MdTabMixinBase","mixinDisabled","MdTab","_super","_viewContainerRef","tslib_1.__extends","get","this","_contentPortal","enumerable","configurable","prototype","ngOnChanges","changes","hasOwnProperty","_labelChange","next","ngOnDestroy","_disableChange","complete","ngOnInit","TemplatePortal","_content","template","inputs","changeDetection","ChangeDetectionStrategy","OnPush","encapsulation","ViewEncapsulation","None","preserveWhitespaces","exportAs","textLabel","Input","args","MdTabBody","_elementRef","_dir","onCentering","EventEmitter","onCentered","Object","defineProperty","position","_getLayoutDirection","origin","dir","_position","_origin","_isCenterPosition","_portalHost","hasAttached","attach","detach","e","toState","emit","value","decorators","Component","selector","styles","host","class","animations","state","style","transform","transition","animate","ctorParameters","ElementRef","Directionality","Optional","ViewChild","PortalHostDirective","nextId","MdTabGroupBase","_renderer","MdTabGroup","elementRef","_changeDetectorRef","_this","_tabsSubscription","Subscription","EMPTY","_dynamicHeight","headerPosition","set","_indexToSelect","_backgroundColor","nativeElement","removeClass","backgroundColor","addClass","ngAfterContentChecked","indexToSelect","Math","min","_tabs","length","max","Promise","resolve","then","selectedIndexChange","_selectedIndex","tab","markForCheck","ngAfterContentInit","unsubscribe","_tabLabelSubscription","ngAfterViewChecked","_isInitialized","_focusChanged","index","focusChange","_createChangeEvent","event","toArray","merge","apply","map","concat","subscribe","_getTabLabelId","i","_groupId","_getTabContentId","_setTabBodyWrapperHeight","tabHeight","_tabBodyWrapperHeight","setStyle","_tabBodyWrapper","offsetHeight","clientHeight","Renderer2","ChangeDetectorRef","dynamicHeight","_dynamicHeightDeprecated","Output","selectChange","MdTabLabelWrapperBase","_MdTabLabelWrapperMixinBase","MdTabLabelWrapper","call","focus","getOffsetWidth","offsetWidth","MdTabHeaderBase","MdTabHeader","_scrollDistance","_selectedIndexChanged","_realignInkBar","_disableScrollAfter","selectFocusedIndex","indexFocused","_focusIndex","_tabLabelCount","_labelWrappers","_updatePagination","_scrollToLabel","_checkScrollingControls","_alignInkBarToSelectedTab","_scrollDistanceChanged","_updateTabScrollPosition","_handleKeydown","keyCode","RIGHT_ARROW","_focusNextTab","LEFT_ARROW","_focusPreviousTab","dirChange","change","of","resize","window","auditTime","fromEvent","startWith","_checkPaginationEnabled","_isValidIndex","disabled","_setTabFocus","tabIndex","_showPaginationControls","containerEl","_tabListContainer","scrollLeft","focusIndex","_moveFocus","scrollDistance","translateX","_tabList","labelBeforePos","labelAfterPos","viewLength","selectedLabel","getOffsetLeft","beforeVisiblePos","afterVisiblePos","isEnabled","selectedLabelWrapper","selectedIndex","_inkBar","alignToElement","viewProviders","provide","MATERIAL_COMPATIBILITY_MODE","useValue","propDecorators","MdTabNavBase","MdTabNav","_ngZone","_onDestroy","Subject","observableOf","_disableRipple","coerceBooleanProperty","_setLinkDisableRipple","updateActiveLink","element","_activeLinkChanged","_activeLinkElement","NgZone","_tabLinks","ContentChildren","forwardRef","MdTabLink","descendants","MdTabLinkBase","_MdTabLinkMixinBase","_mdTabNavBar","ngZone","ruler","platform","globalOptions","_isActive","_tabLinkRipple","MdRipple","__extends","d","b","__","constructor","extendStatics","create","nodeName","toLowerCase","base","_i","arguments","_disabled","class_1","class_2","_color","colorPalette","defaultColor","mixinDisableRipple","class_3","UNIQUE_SELECTION_DISPATCHER_PROVIDER_FACTORY","parentDispatcher","UniqueSelectionDispatcher","dest","range","valueFunction","valuesArray","Array","getComputedStyle","getPropertyValue","distanceToFurthestCorner","x","y","rect","distX","abs","left","right","distY","top","bottom","sqrt","setPrototypeOf","__proto__","p","AnimationCurves","STANDARD_CURVE","DECELERATION_CURVE","AnimationDurations","NoConflictStyleCompatibilityMode","undefined","Inject","MATERIAL_SANITY_CHECKS","_a","_listeners","listen","listener","push","filter","registered","Injectable","MAT_DATE_LOCALE_PROVIDER","MAT_DATE_LOCALE","useExisting","LOCALE_ID","DateAdapter","getMonth","date","getDayOfWeek","getDayOfWeekNames","getNumDaysInMonth","format","displayFormat","compareDate","long","DEFAULT_DAY_OF_WEEK_NAMES","useUtcForDisplay","setLocale","matDateLocale","NativeDateAdapter","getYear","getDate","getDay","DEFAULT_MONTH_NAMES","getDateNames","_stripDirectionalityCharacters","dtf","String","clone","createDate","year","month","Error","result","today","Date","parse","isValid","Intl","DateTimeFormat","locale","toDateString","addCalendarYears","years","addCalendarMonths","_createDateWithOverflow","days","_2digit","getUTCMonth","fromIso8601","iso8601String","ISO_8601_REGEX","test","isNaN","getTime","setFullYear","display","dateInput","day","NativeDateModule","MdNativeDateModule","providers","MD_DATE_FORMATS","MD_NATIVE_DATE_FORMATS","GestureConfig","_hammer","isDevMode","console","warn","buildHammer","mc","pan","Pan","press","Press","slide","_createRecognizer","threshold","swipe","longpress","time","recognizeWith","add","options","inheritances","recognizer","HammerGestureConfig","MdLine","Directive","MdLineModule","NgModule","exports","MdCommonModule","RippleState","FADING_IN","VISIBLE","FADING_OUT","HIDDEN","config","fadeOutRipple","RippleRef","RippleRenderer","_ruler","_triggerEvents","Map","rippleDisabled","isBrowser","_containerElement","onMousedown","bind","setTriggerElement","containerRect","getBoundingClientRect","centered","scrollPosition","getViewportScrollPosition","pageX","offsetX","ripple","radius","_activeRipples","rippleRef","persistent","_isMousedown","rippleEl","opacity","runTimeoutOutsideZone","removeChild","_triggerElement","runOutsideAngular","forEach","fn","addEventListener","fadeOut","delay","MD_RIPPLE_GLOBAL_OPTIONS","InjectionToken","_rippleRenderer","_globalOptions","_updateRippleRenderer","v","trigger","speedFactor","color","fadeInRipple","pageY","ViewportRuler","Platform","unbounded","_matRippleTrigger","_matRippleCentered","_matRippleUnbounded","MdRippleModule","imports","PlatformModule","ScrollDispatchModule","declarations","VIEWPORT_RULER_PROVIDER","MdPseudoCheckbox","[class.mat-pseudo-checkbox-checked]","MdPseudoCheckboxModule","MdOptgroupBase","_MdOptgroupMixinBase","_uniqueOptgroupIdCounter","_labelId","MdOptgroup","[class.mat-optgroup-disabled]","label","_uniqueIdCounter","MdOptionSelectionChange","source","isUserInput","MdOption","_element","group","_multiple","onSelectionChange","_selected","_emitSelectionChangeEvent","_getHostElement","_active","viewValue","ENTER","SPACE","_selectViaInteraction","multiple","countGroupLabelsBeforeOption","optionIndex","optionGroups","optionsArray","groups","groupCounter","role","[attr.tabindex]","[class.mat-selected]","[class.mat-option-multiple]","[class.mat-active]","[id]","[attr.aria-selected]","[attr.aria-disabled]","[class.mat-option-disabled]","(click)","(keydown)","MdOptionModule","CommonModule","StyleModule","A11yModule","MdInkBar","show","requestAnimationFrame","_setStyles","hide","offsetLeft","width","MdTabLabel","templateRef","viewContainerRef","_MdTabLabelBaseClass"],"mappings":"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"}