@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,3598 @@
1
+ /**
2
+ * @license
3
+ * Copyright Google Inc. All Rights Reserved.
4
+ *
5
+ * Use of this source code is governed by an MIT-style license that can be
6
+ * found in the LICENSE file at https://angular.io/license
7
+ */
8
+ (function (global, factory) {
9
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/cdk/portal'), require('@angular/cdk/stepper'), require('@angular/common'), require('@angular/core'), require('@angular/cdk/a11y'), require('@angular/cdk/bidi'), require('@angular/platform-browser'), require('@angular/cdk/coercion'), require('rxjs/Subject'), require('@angular/cdk/keycodes'), require('@angular/cdk/scrolling'), require('@angular/cdk/platform'), require('@angular/cdk/overlay'), require('@angular/cdk/rxjs'), require('@angular/http'), require('rxjs/Observable'), require('rxjs/observable/forkJoin'), require('rxjs/observable/of'), require('rxjs/observable/throw'), require('@angular/animations')) :
10
+ typeof define === 'function' && define.amd ? define(['exports', '@angular/cdk/portal', '@angular/cdk/stepper', '@angular/common', '@angular/core', '@angular/cdk/a11y', '@angular/cdk/bidi', '@angular/platform-browser', '@angular/cdk/coercion', 'rxjs/Subject', '@angular/cdk/keycodes', '@angular/cdk/scrolling', '@angular/cdk/platform', '@angular/cdk/overlay', '@angular/cdk/rxjs', '@angular/http', 'rxjs/Observable', 'rxjs/observable/forkJoin', 'rxjs/observable/of', 'rxjs/observable/throw', '@angular/animations'], factory) :
11
+ (factory((global.ng = global.ng || {}, global.ng.material = global.ng.material || {}, global.ng.material.stepper = global.ng.material.stepper || {}),global.ng.cdk.portal,global.ng.cdk.stepper,global.ng.common,global.ng.core,global.ng.cdk.a11y,global.ng.cdk.bidi,global.ng.platformBrowser,global.ng.cdk.coercion,global.Rx,global.ng.cdk.keycodes,global.ng.cdk.scrolling,global.ng.cdk.platform,global.ng.cdk.overlay,global.ng.cdk.rxjs,global.ng.http,global.Rx,global.Rx.Observable,global.Rx.Observable,global.Rx.Observable,global.ng.animations));
12
+ }(this, (function (exports,_angular_cdk_portal,_angular_cdk_stepper,_angular_common,_angular_core,_angular_cdk_a11y,_angular_cdk_bidi,_angular_platformBrowser,_angular_cdk_coercion,rxjs_Subject,_angular_cdk_keycodes,_angular_cdk_scrolling,_angular_cdk_platform,_angular_cdk_overlay,_angular_cdk_rxjs,_angular_http,rxjs_Observable,rxjs_observable_forkJoin,rxjs_observable_of,rxjs_observable_throw,_angular_animations) { 'use strict';
13
+
14
+ /*! *****************************************************************************
15
+ Copyright (c) Microsoft Corporation. All rights reserved.
16
+ Licensed under the Apache License, Version 2.0 (the "License"); you may not use
17
+ this file except in compliance with the License. You may obtain a copy of the
18
+ License at http://www.apache.org/licenses/LICENSE-2.0
19
+
20
+ THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
21
+ KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
22
+ WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
23
+ MERCHANTABLITY OR NON-INFRINGEMENT.
24
+
25
+ See the Apache Version 2.0 License for specific language governing permissions
26
+ and limitations under the License.
27
+ ***************************************************************************** */
28
+ /* global Reflect, Promise */
29
+
30
+ var extendStatics = Object.setPrototypeOf ||
31
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
32
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
33
+
34
+ function __extends(d, b) {
35
+ extendStatics(d, b);
36
+ function __() { this.constructor = d; }
37
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
38
+ }
39
+
40
+ /**
41
+ * \@docs-private
42
+ */
43
+ var AnimationCurves = (function () {
44
+ function AnimationCurves() {
45
+ }
46
+ return AnimationCurves;
47
+ }());
48
+ AnimationCurves.STANDARD_CURVE = 'cubic-bezier(0.4,0.0,0.2,1)';
49
+ AnimationCurves.DECELERATION_CURVE = 'cubic-bezier(0.0,0.0,0.2,1)';
50
+ AnimationCurves.ACCELERATION_CURVE = 'cubic-bezier(0.4,0.0,1,1)';
51
+ AnimationCurves.SHARP_CURVE = 'cubic-bezier(0.4,0.0,0.6,1)';
52
+ /**
53
+ * \@docs-private
54
+ */
55
+ var AnimationDurations = (function () {
56
+ function AnimationDurations() {
57
+ }
58
+ return AnimationDurations;
59
+ }());
60
+ AnimationDurations.COMPLEX = '375ms';
61
+ AnimationDurations.ENTERING = '225ms';
62
+ AnimationDurations.EXITING = '195ms';
63
+ var MATERIAL_COMPATIBILITY_MODE = new _angular_core.InjectionToken('md-compatibility-mode');
64
+ /**
65
+ * Returns an exception to be thrown if the consumer has used
66
+ * an invalid Material prefix on a component.
67
+ * \@docs-private
68
+ * @param {?} prefix
69
+ * @param {?} nodeName
70
+ * @return {?}
71
+ */
72
+ function getMdCompatibilityInvalidPrefixError(prefix, nodeName) {
73
+ return Error("The \"" + prefix + "-\" prefix cannot be used in ng-material v1 compatibility mode. " +
74
+ ("It was used on an \"" + nodeName.toLowerCase() + "\" element."));
75
+ }
76
+ /**
77
+ * Selector that matches all elements that may have style collisions with AngularJS Material.
78
+ */
79
+ var 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";
80
+ /**
81
+ * Selector that matches all elements that may have style collisions with AngularJS Material.
82
+ */
83
+ var 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";
84
+ /**
85
+ * Directive that enforces that the `mat-` prefix cannot be used.
86
+ */
87
+ var MatPrefixRejector = (function () {
88
+ /**
89
+ * @param {?} isCompatibilityMode
90
+ * @param {?} elementRef
91
+ */
92
+ function MatPrefixRejector(isCompatibilityMode, elementRef) {
93
+ if (!isCompatibilityMode) {
94
+ throw getMdCompatibilityInvalidPrefixError('mat', elementRef.nativeElement.nodeName);
95
+ }
96
+ }
97
+ return MatPrefixRejector;
98
+ }());
99
+ MatPrefixRejector.decorators = [
100
+ { type: _angular_core.Directive, args: [{ selector: MAT_ELEMENTS_SELECTOR },] },
101
+ ];
102
+ /**
103
+ * @nocollapse
104
+ */
105
+ MatPrefixRejector.ctorParameters = function () { return [
106
+ { type: undefined, decorators: [{ type: _angular_core.Optional }, { type: _angular_core.Inject, args: [MATERIAL_COMPATIBILITY_MODE,] },] },
107
+ { type: _angular_core.ElementRef, },
108
+ ]; };
109
+ /**
110
+ * Directive that enforces that the `md-` prefix cannot be used.
111
+ */
112
+ var MdPrefixRejector = (function () {
113
+ /**
114
+ * @param {?} isCompatibilityMode
115
+ * @param {?} elementRef
116
+ */
117
+ function MdPrefixRejector(isCompatibilityMode, elementRef) {
118
+ if (isCompatibilityMode) {
119
+ throw getMdCompatibilityInvalidPrefixError('md', elementRef.nativeElement.nodeName);
120
+ }
121
+ }
122
+ return MdPrefixRejector;
123
+ }());
124
+ MdPrefixRejector.decorators = [
125
+ { type: _angular_core.Directive, args: [{ selector: MD_ELEMENTS_SELECTOR },] },
126
+ ];
127
+ /**
128
+ * @nocollapse
129
+ */
130
+ MdPrefixRejector.ctorParameters = function () { return [
131
+ { type: undefined, decorators: [{ type: _angular_core.Optional }, { type: _angular_core.Inject, args: [MATERIAL_COMPATIBILITY_MODE,] },] },
132
+ { type: _angular_core.ElementRef, },
133
+ ]; };
134
+ /**
135
+ * Module that enforces the default compatibility mode settings. When this module is loaded
136
+ * without NoConflictStyleCompatibilityMode also being imported, it will throw an error if
137
+ * there are any uses of the `mat-` prefix.
138
+ */
139
+ var CompatibilityModule = (function () {
140
+ function CompatibilityModule() {
141
+ }
142
+ return CompatibilityModule;
143
+ }());
144
+ CompatibilityModule.decorators = [
145
+ { type: _angular_core.NgModule, args: [{
146
+ declarations: [MatPrefixRejector, MdPrefixRejector],
147
+ exports: [MatPrefixRejector, MdPrefixRejector],
148
+ },] },
149
+ ];
150
+ /**
151
+ * @nocollapse
152
+ */
153
+ CompatibilityModule.ctorParameters = function () { return []; };
154
+ /**
155
+ * Module that enforces "no-conflict" compatibility mode settings. When this module is loaded,
156
+ * it will throw an error if there are any uses of the `md-` prefix.
157
+ */
158
+ var NoConflictStyleCompatibilityMode = (function () {
159
+ function NoConflictStyleCompatibilityMode() {
160
+ }
161
+ return NoConflictStyleCompatibilityMode;
162
+ }());
163
+ NoConflictStyleCompatibilityMode.decorators = [
164
+ { type: _angular_core.NgModule, args: [{
165
+ providers: [{
166
+ provide: MATERIAL_COMPATIBILITY_MODE, useValue: true,
167
+ }],
168
+ },] },
169
+ ];
170
+ /**
171
+ * @nocollapse
172
+ */
173
+ NoConflictStyleCompatibilityMode.ctorParameters = function () { return []; };
174
+ /**
175
+ * Injection token that configures whether the Material sanity checks are enabled.
176
+ */
177
+ var MATERIAL_SANITY_CHECKS = new _angular_core.InjectionToken('md-sanity-checks');
178
+ /**
179
+ * Module that captures anything that should be loaded and/or run for *all* Angular Material
180
+ * components. This includes Bidi, compatibility mode, etc.
181
+ *
182
+ * This module should be imported to each top-level component module (e.g., MdTabsModule).
183
+ */
184
+ var MdCommonModule = (function () {
185
+ /**
186
+ * @param {?} _document
187
+ * @param {?} _sanityChecksEnabled
188
+ */
189
+ function MdCommonModule(_document, _sanityChecksEnabled) {
190
+ this._document = _document;
191
+ /**
192
+ * Whether we've done the global sanity checks (e.g. a theme is loaded, there is a doctype).
193
+ */
194
+ this._hasDoneGlobalChecks = false;
195
+ if (_sanityChecksEnabled && !this._hasDoneGlobalChecks && _document && _angular_core.isDevMode()) {
196
+ this._checkDoctype();
197
+ this._checkTheme();
198
+ this._hasDoneGlobalChecks = true;
199
+ }
200
+ }
201
+ /**
202
+ * @return {?}
203
+ */
204
+ MdCommonModule.prototype._checkDoctype = function () {
205
+ if (!this._document.doctype) {
206
+ console.warn('Current document does not have a doctype. This may cause ' +
207
+ 'some Angular Material components not to behave as expected.');
208
+ }
209
+ };
210
+ /**
211
+ * @return {?}
212
+ */
213
+ MdCommonModule.prototype._checkTheme = function () {
214
+ if (typeof getComputedStyle === 'function') {
215
+ var /** @type {?} */ testElement = this._document.createElement('div');
216
+ testElement.classList.add('mat-theme-loaded-marker');
217
+ this._document.body.appendChild(testElement);
218
+ if (getComputedStyle(testElement).display !== 'none') {
219
+ console.warn('Could not find Angular Material core theme. Most Material ' +
220
+ 'components may not work as expected. For more info refer ' +
221
+ 'to the theming guide: https://material.angular.io/guide/theming');
222
+ }
223
+ this._document.body.removeChild(testElement);
224
+ }
225
+ };
226
+ return MdCommonModule;
227
+ }());
228
+ MdCommonModule.decorators = [
229
+ { type: _angular_core.NgModule, args: [{
230
+ imports: [CompatibilityModule, _angular_cdk_bidi.BidiModule],
231
+ exports: [CompatibilityModule, _angular_cdk_bidi.BidiModule],
232
+ providers: [{
233
+ provide: MATERIAL_SANITY_CHECKS, useValue: true,
234
+ }],
235
+ },] },
236
+ ];
237
+ /**
238
+ * @nocollapse
239
+ */
240
+ MdCommonModule.ctorParameters = function () { return [
241
+ { type: undefined, decorators: [{ type: _angular_core.Optional }, { type: _angular_core.Inject, args: [_angular_platformBrowser.DOCUMENT,] },] },
242
+ { type: undefined, decorators: [{ type: _angular_core.Optional }, { type: _angular_core.Inject, args: [MATERIAL_SANITY_CHECKS,] },] },
243
+ ]; };
244
+ /**
245
+ * Mixin to augment a directive with a `disabled` property.
246
+ * @template T
247
+ * @param {?} base
248
+ * @return {?}
249
+ */
250
+ function mixinDisabled(base) {
251
+ return (function (_super) {
252
+ __extends(class_1, _super);
253
+ /**
254
+ * @param {...?} args
255
+ */
256
+ function class_1() {
257
+ var args = [];
258
+ for (var _i = 0; _i < arguments.length; _i++) {
259
+ args[_i] = arguments[_i];
260
+ }
261
+ var _this = _super.apply(this, args) || this;
262
+ _this._disabled = false;
263
+ return _this;
264
+ }
265
+ Object.defineProperty(class_1.prototype, "disabled", {
266
+ /**
267
+ * @return {?}
268
+ */
269
+ get: function () { return this._disabled; },
270
+ /**
271
+ * @param {?} value
272
+ * @return {?}
273
+ */
274
+ set: function (value) { this._disabled = _angular_cdk_coercion.coerceBooleanProperty(value); },
275
+ enumerable: true,
276
+ configurable: true
277
+ });
278
+ return class_1;
279
+ }(base));
280
+ }
281
+ /**
282
+ * Mixin to augment a directive with a `color` property.
283
+ * @template T
284
+ * @param {?} base
285
+ * @param {?=} defaultColor
286
+ * @return {?}
287
+ */
288
+ function mixinColor(base, defaultColor) {
289
+ return (function (_super) {
290
+ __extends(class_2, _super);
291
+ /**
292
+ * @param {...?} args
293
+ */
294
+ function class_2() {
295
+ var args = [];
296
+ for (var _i = 0; _i < arguments.length; _i++) {
297
+ args[_i] = arguments[_i];
298
+ }
299
+ var _this = _super.apply(this, args) || this;
300
+ // Set the default color that can be specified from the mixin.
301
+ _this.color = defaultColor;
302
+ return _this;
303
+ }
304
+ Object.defineProperty(class_2.prototype, "color", {
305
+ /**
306
+ * @return {?}
307
+ */
308
+ get: function () { return this._color; },
309
+ /**
310
+ * @param {?} value
311
+ * @return {?}
312
+ */
313
+ set: function (value) {
314
+ var /** @type {?} */ colorPalette = value || defaultColor;
315
+ if (colorPalette !== this._color) {
316
+ if (this._color) {
317
+ this._renderer.removeClass(this._elementRef.nativeElement, "mat-" + this._color);
318
+ }
319
+ if (colorPalette) {
320
+ this._renderer.addClass(this._elementRef.nativeElement, "mat-" + colorPalette);
321
+ }
322
+ this._color = colorPalette;
323
+ }
324
+ },
325
+ enumerable: true,
326
+ configurable: true
327
+ });
328
+ return class_2;
329
+ }(base));
330
+ }
331
+ /**
332
+ * Mixin to augment a directive with a `disableRipple` property.
333
+ * @template T
334
+ * @param {?} base
335
+ * @return {?}
336
+ */
337
+ function mixinDisableRipple(base) {
338
+ return (function (_super) {
339
+ __extends(class_3, _super);
340
+ /**
341
+ * @param {...?} args
342
+ */
343
+ function class_3() {
344
+ var args = [];
345
+ for (var _i = 0; _i < arguments.length; _i++) {
346
+ args[_i] = arguments[_i];
347
+ }
348
+ var _this = _super.apply(this, args) || this;
349
+ _this._disableRipple = false;
350
+ return _this;
351
+ }
352
+ Object.defineProperty(class_3.prototype, "disableRipple", {
353
+ /**
354
+ * Whether the ripple effect is disabled or not.
355
+ * @return {?}
356
+ */
357
+ get: function () { return this._disableRipple; },
358
+ /**
359
+ * @param {?} value
360
+ * @return {?}
361
+ */
362
+ set: function (value) { this._disableRipple = _angular_cdk_coercion.coerceBooleanProperty(value); },
363
+ enumerable: true,
364
+ configurable: true
365
+ });
366
+ return class_3;
367
+ }(base));
368
+ }
369
+ /**
370
+ * Class to coordinate unique selection based on name.
371
+ * Intended to be consumed as an Angular service.
372
+ * This service is needed because native radio change events are only fired on the item currently
373
+ * being selected, and we still need to uncheck the previous selection.
374
+ *
375
+ * This service does not *store* any IDs and names because they may change at any time, so it is
376
+ * less error-prone if they are simply passed through when the events occur.
377
+ */
378
+ var UniqueSelectionDispatcher = (function () {
379
+ function UniqueSelectionDispatcher() {
380
+ this._listeners = [];
381
+ }
382
+ /**
383
+ * Notify other items that selection for the given name has been set.
384
+ * @param {?} id ID of the item.
385
+ * @param {?} name Name of the item.
386
+ * @return {?}
387
+ */
388
+ UniqueSelectionDispatcher.prototype.notify = function (id, name) {
389
+ for (var _i = 0, _a = this._listeners; _i < _a.length; _i++) {
390
+ var listener = _a[_i];
391
+ listener(id, name);
392
+ }
393
+ };
394
+ /**
395
+ * Listen for future changes to item selection.
396
+ * @param {?} listener
397
+ * @return {?} Function used to deregister listener
398
+ *
399
+ */
400
+ UniqueSelectionDispatcher.prototype.listen = function (listener) {
401
+ var _this = this;
402
+ this._listeners.push(listener);
403
+ return function () {
404
+ _this._listeners = _this._listeners.filter(function (registered) {
405
+ return listener !== registered;
406
+ });
407
+ };
408
+ };
409
+ return UniqueSelectionDispatcher;
410
+ }());
411
+ UniqueSelectionDispatcher.decorators = [
412
+ { type: _angular_core.Injectable },
413
+ ];
414
+ /**
415
+ * @nocollapse
416
+ */
417
+ UniqueSelectionDispatcher.ctorParameters = function () { return []; };
418
+ /**
419
+ * \@docs-private
420
+ * @param {?} parentDispatcher
421
+ * @return {?}
422
+ */
423
+ function UNIQUE_SELECTION_DISPATCHER_PROVIDER_FACTORY(parentDispatcher) {
424
+ return parentDispatcher || new UniqueSelectionDispatcher();
425
+ }
426
+ /**
427
+ * \@docs-private
428
+ */
429
+ var UNIQUE_SELECTION_DISPATCHER_PROVIDER = {
430
+ // If there is already a dispatcher available, use that. Otherwise, provide a new one.
431
+ provide: UniqueSelectionDispatcher,
432
+ deps: [[new _angular_core.Optional(), new _angular_core.SkipSelf(), UniqueSelectionDispatcher]],
433
+ useFactory: UNIQUE_SELECTION_DISPATCHER_PROVIDER_FACTORY
434
+ };
435
+ /**
436
+ * InjectionToken for datepicker that can be used to override default locale code.
437
+ */
438
+ var MAT_DATE_LOCALE = new _angular_core.InjectionToken('MAT_DATE_LOCALE');
439
+ /**
440
+ * Provider for MAT_DATE_LOCALE injection token.
441
+ */
442
+ var MAT_DATE_LOCALE_PROVIDER = { provide: MAT_DATE_LOCALE, useExisting: _angular_core.LOCALE_ID };
443
+ /**
444
+ * Adapts type `D` to be usable as a date by cdk-based components that work with dates.
445
+ * @abstract
446
+ */
447
+ var DateAdapter = (function () {
448
+ function DateAdapter() {
449
+ this._localeChanges = new rxjs_Subject.Subject();
450
+ }
451
+ Object.defineProperty(DateAdapter.prototype, "localeChanges", {
452
+ /**
453
+ * A stream that emits when the locale changes.
454
+ * @return {?}
455
+ */
456
+ get: function () { return this._localeChanges; },
457
+ enumerable: true,
458
+ configurable: true
459
+ });
460
+ /**
461
+ * Gets the year component of the given date.
462
+ * @abstract
463
+ * @param {?} date The date to extract the year from.
464
+ * @return {?} The year component.
465
+ */
466
+ DateAdapter.prototype.getYear = function (date) { };
467
+ /**
468
+ * Gets the month component of the given date.
469
+ * @abstract
470
+ * @param {?} date The date to extract the month from.
471
+ * @return {?} The month component (0-indexed, 0 = January).
472
+ */
473
+ DateAdapter.prototype.getMonth = function (date) { };
474
+ /**
475
+ * Gets the date of the month component of the given date.
476
+ * @abstract
477
+ * @param {?} date The date to extract the date of the month from.
478
+ * @return {?} The month component (1-indexed, 1 = first of month).
479
+ */
480
+ DateAdapter.prototype.getDate = function (date) { };
481
+ /**
482
+ * Gets the day of the week component of the given date.
483
+ * @abstract
484
+ * @param {?} date The date to extract the day of the week from.
485
+ * @return {?} The month component (0-indexed, 0 = Sunday).
486
+ */
487
+ DateAdapter.prototype.getDayOfWeek = function (date) { };
488
+ /**
489
+ * Gets a list of names for the months.
490
+ * @abstract
491
+ * @param {?} style The naming style (e.g. long = 'January', short = 'Jan', narrow = 'J').
492
+ * @return {?} An ordered list of all month names, starting with January.
493
+ */
494
+ DateAdapter.prototype.getMonthNames = function (style$$1) { };
495
+ /**
496
+ * Gets a list of names for the dates of the month.
497
+ * @abstract
498
+ * @return {?} An ordered list of all date of the month names, starting with '1'.
499
+ */
500
+ DateAdapter.prototype.getDateNames = function () { };
501
+ /**
502
+ * Gets a list of names for the days of the week.
503
+ * @abstract
504
+ * @param {?} style The naming style (e.g. long = 'Sunday', short = 'Sun', narrow = 'S').
505
+ * @return {?} An ordered list of all weekday names, starting with Sunday.
506
+ */
507
+ DateAdapter.prototype.getDayOfWeekNames = function (style$$1) { };
508
+ /**
509
+ * Gets the name for the year of the given date.
510
+ * @abstract
511
+ * @param {?} date The date to get the year name for.
512
+ * @return {?} The name of the given year (e.g. '2017').
513
+ */
514
+ DateAdapter.prototype.getYearName = function (date) { };
515
+ /**
516
+ * Gets the first day of the week.
517
+ * @abstract
518
+ * @return {?} The first day of the week (0-indexed, 0 = Sunday).
519
+ */
520
+ DateAdapter.prototype.getFirstDayOfWeek = function () { };
521
+ /**
522
+ * Gets the number of days in the month of the given date.
523
+ * @abstract
524
+ * @param {?} date The date whose month should be checked.
525
+ * @return {?} The number of days in the month of the given date.
526
+ */
527
+ DateAdapter.prototype.getNumDaysInMonth = function (date) { };
528
+ /**
529
+ * Clones the given date.
530
+ * @abstract
531
+ * @param {?} date The date to clone
532
+ * @return {?} A new date equal to the given date.
533
+ */
534
+ DateAdapter.prototype.clone = function (date) { };
535
+ /**
536
+ * Creates a date with the given year, month, and date. Does not allow over/under-flow of the
537
+ * month and date.
538
+ * @abstract
539
+ * @param {?} year The full year of the date. (e.g. 89 means the year 89, not the year 1989).
540
+ * @param {?} month The month of the date (0-indexed, 0 = January). Must be an integer 0 - 11.
541
+ * @param {?} date The date of month of the date. Must be an integer 1 - length of the given month.
542
+ * @return {?} The new date, or null if invalid.
543
+ */
544
+ DateAdapter.prototype.createDate = function (year, month, date) { };
545
+ /**
546
+ * Gets today's date.
547
+ * @abstract
548
+ * @return {?} Today's date.
549
+ */
550
+ DateAdapter.prototype.today = function () { };
551
+ /**
552
+ * Parses a date from a value.
553
+ * @abstract
554
+ * @param {?} value The value to parse.
555
+ * @param {?} parseFormat The expected format of the value being parsed
556
+ * (type is implementation-dependent).
557
+ * @return {?} The parsed date.
558
+ */
559
+ DateAdapter.prototype.parse = function (value, parseFormat) { };
560
+ /**
561
+ * Formats a date as a string.
562
+ * @abstract
563
+ * @param {?} date The value to format.
564
+ * @param {?} displayFormat The format to use to display the date as a string.
565
+ * @return {?} The formatted date string.
566
+ */
567
+ DateAdapter.prototype.format = function (date, displayFormat) { };
568
+ /**
569
+ * Adds the given number of years to the date. Years are counted as if flipping 12 pages on the
570
+ * calendar for each year and then finding the closest date in the new month. For example when
571
+ * adding 1 year to Feb 29, 2016, the resulting date will be Feb 28, 2017.
572
+ * @abstract
573
+ * @param {?} date The date to add years to.
574
+ * @param {?} years The number of years to add (may be negative).
575
+ * @return {?} A new date equal to the given one with the specified number of years added.
576
+ */
577
+ DateAdapter.prototype.addCalendarYears = function (date, years) { };
578
+ /**
579
+ * Adds the given number of months to the date. Months are counted as if flipping a page on the
580
+ * calendar for each month and then finding the closest date in the new month. For example when
581
+ * adding 1 month to Jan 31, 2017, the resulting date will be Feb 28, 2017.
582
+ * @abstract
583
+ * @param {?} date The date to add months to.
584
+ * @param {?} months The number of months to add (may be negative).
585
+ * @return {?} A new date equal to the given one with the specified number of months added.
586
+ */
587
+ DateAdapter.prototype.addCalendarMonths = function (date, months) { };
588
+ /**
589
+ * Adds the given number of days to the date. Days are counted as if moving one cell on the
590
+ * calendar for each day.
591
+ * @abstract
592
+ * @param {?} date The date to add days to.
593
+ * @param {?} days The number of days to add (may be negative).
594
+ * @return {?} A new date equal to the given one with the specified number of days added.
595
+ */
596
+ DateAdapter.prototype.addCalendarDays = function (date, days) { };
597
+ /**
598
+ * Gets the RFC 3339 compatible string (https://tools.ietf.org/html/rfc3339) for the given date.
599
+ * @abstract
600
+ * @param {?} date The date to get the ISO date string for.
601
+ * @return {?} The ISO date string date string.
602
+ */
603
+ DateAdapter.prototype.toIso8601 = function (date) { };
604
+ /**
605
+ * Creates a date from an RFC 3339 compatible string (https://tools.ietf.org/html/rfc3339).
606
+ * @abstract
607
+ * @param {?} iso8601String The ISO date string to create a date from
608
+ * @return {?} The date created from the ISO date string.
609
+ */
610
+ DateAdapter.prototype.fromIso8601 = function (iso8601String) { };
611
+ /**
612
+ * Checks whether the given object is considered a date instance by this DateAdapter.
613
+ * @abstract
614
+ * @param {?} obj The object to check
615
+ * @return {?} Whether the object is a date instance.
616
+ */
617
+ DateAdapter.prototype.isDateInstance = function (obj) { };
618
+ /**
619
+ * Checks whether the given date is valid.
620
+ * @abstract
621
+ * @param {?} date The date to check.
622
+ * @return {?} Whether the date is valid.
623
+ */
624
+ DateAdapter.prototype.isValid = function (date) { };
625
+ /**
626
+ * Sets the locale used for all dates.
627
+ * @param {?} locale The new locale.
628
+ * @return {?}
629
+ */
630
+ DateAdapter.prototype.setLocale = function (locale) {
631
+ this.locale = locale;
632
+ this._localeChanges.next();
633
+ };
634
+ /**
635
+ * Compares two dates.
636
+ * @param {?} first The first date to compare.
637
+ * @param {?} second The second date to compare.
638
+ * @return {?} 0 if the dates are equal, a number less than 0 if the first date is earlier,
639
+ * a number greater than 0 if the first date is later.
640
+ */
641
+ DateAdapter.prototype.compareDate = function (first$$1, second) {
642
+ return this.getYear(first$$1) - this.getYear(second) ||
643
+ this.getMonth(first$$1) - this.getMonth(second) ||
644
+ this.getDate(first$$1) - this.getDate(second);
645
+ };
646
+ /**
647
+ * Checks if two dates are equal.
648
+ * @param {?} first The first date to check.
649
+ * @param {?} second The second date to check.
650
+ * Null dates are considered equal to other null dates.
651
+ * @return {?}
652
+ */
653
+ DateAdapter.prototype.sameDate = function (first$$1, second) {
654
+ return first$$1 && second ? !this.compareDate(first$$1, second) : first$$1 == second;
655
+ };
656
+ /**
657
+ * Clamp the given date between min and max dates.
658
+ * @param {?} date The date to clamp.
659
+ * @param {?=} min The minimum value to allow. If null or omitted no min is enforced.
660
+ * @param {?=} max The maximum value to allow. If null or omitted no max is enforced.
661
+ * @return {?} `min` if `date` is less than `min`, `max` if date is greater than `max`,
662
+ * otherwise `date`.
663
+ */
664
+ DateAdapter.prototype.clampDate = function (date, min, max) {
665
+ if (min && this.compareDate(date, min) < 0) {
666
+ return min;
667
+ }
668
+ if (max && this.compareDate(date, max) > 0) {
669
+ return max;
670
+ }
671
+ return date;
672
+ };
673
+ return DateAdapter;
674
+ }());
675
+ /**
676
+ * Extends an object with the *enumerable* and *own* properties of one or more source objects,
677
+ * similar to Object.assign.
678
+ *
679
+ * @param {?} dest The object which will have properties copied to it.
680
+ * @param {...?} sources The source objects from which properties will be copied.
681
+ * @return {?}
682
+ */
683
+ function extendObject(dest) {
684
+ var sources = [];
685
+ for (var _i = 1; _i < arguments.length; _i++) {
686
+ sources[_i - 1] = arguments[_i];
687
+ }
688
+ if (dest == null) {
689
+ throw TypeError('Cannot convert undefined or null to object');
690
+ }
691
+ for (var _a = 0, sources_1 = sources; _a < sources_1.length; _a++) {
692
+ var source = sources_1[_a];
693
+ if (source != null) {
694
+ for (var /** @type {?} */ key in source) {
695
+ if (source.hasOwnProperty(key)) {
696
+ dest[key] = source[key];
697
+ }
698
+ }
699
+ }
700
+ }
701
+ return dest;
702
+ }
703
+ /**
704
+ * Whether the browser supports the Intl API.
705
+ */
706
+ var SUPPORTS_INTL_API = typeof Intl != 'undefined';
707
+ /**
708
+ * The default month names to use if Intl API is not available.
709
+ */
710
+ var DEFAULT_MONTH_NAMES = {
711
+ 'long': [
712
+ 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September',
713
+ 'October', 'November', 'December'
714
+ ],
715
+ 'short': ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
716
+ 'narrow': ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D']
717
+ };
718
+ /**
719
+ * The default date names to use if Intl API is not available.
720
+ */
721
+ var DEFAULT_DATE_NAMES = range(31, function (i) { return String(i + 1); });
722
+ /**
723
+ * The default day of the week names to use if Intl API is not available.
724
+ */
725
+ var DEFAULT_DAY_OF_WEEK_NAMES = {
726
+ 'long': ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],
727
+ 'short': ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],
728
+ 'narrow': ['S', 'M', 'T', 'W', 'T', 'F', 'S']
729
+ };
730
+ /**
731
+ * Matches strings that have the form of a valid RFC 3339 string
732
+ * (https://tools.ietf.org/html/rfc3339). Note that the string may not actually be a valid date
733
+ * because the regex will match strings an with out of bounds month, date, etc.
734
+ */
735
+ var ISO_8601_REGEX = /^\d{4}-\d{2}-\d{2}(?:T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|(?:(?:\+|-)\d{2}:\d{2}))?)?$/;
736
+ /**
737
+ * Creates an array and fills it with values.
738
+ * @template T
739
+ * @param {?} length
740
+ * @param {?} valueFunction
741
+ * @return {?}
742
+ */
743
+ function range(length, valueFunction) {
744
+ var /** @type {?} */ valuesArray = Array(length);
745
+ for (var /** @type {?} */ i = 0; i < length; i++) {
746
+ valuesArray[i] = valueFunction(i);
747
+ }
748
+ return valuesArray;
749
+ }
750
+ /**
751
+ * Adapts the native JS Date for use with cdk-based components that work with dates.
752
+ */
753
+ var NativeDateAdapter = (function (_super) {
754
+ __extends(NativeDateAdapter, _super);
755
+ /**
756
+ * @param {?} matDateLocale
757
+ */
758
+ function NativeDateAdapter(matDateLocale) {
759
+ var _this = _super.call(this) || this;
760
+ /**
761
+ * Whether to use `timeZone: 'utc'` with `Intl.DateTimeFormat` when formatting dates.
762
+ * Without this `Intl.DateTimeFormat` sometimes chooses the wrong timeZone, which can throw off
763
+ * the result. (e.g. in the en-US locale `new Date(1800, 7, 14).toLocaleDateString()`
764
+ * will produce `'8/13/1800'`.
765
+ */
766
+ _this.useUtcForDisplay = true;
767
+ _super.prototype.setLocale.call(_this, matDateLocale);
768
+ return _this;
769
+ }
770
+ /**
771
+ * @param {?} date
772
+ * @return {?}
773
+ */
774
+ NativeDateAdapter.prototype.getYear = function (date) {
775
+ return date.getFullYear();
776
+ };
777
+ /**
778
+ * @param {?} date
779
+ * @return {?}
780
+ */
781
+ NativeDateAdapter.prototype.getMonth = function (date) {
782
+ return date.getMonth();
783
+ };
784
+ /**
785
+ * @param {?} date
786
+ * @return {?}
787
+ */
788
+ NativeDateAdapter.prototype.getDate = function (date) {
789
+ return date.getDate();
790
+ };
791
+ /**
792
+ * @param {?} date
793
+ * @return {?}
794
+ */
795
+ NativeDateAdapter.prototype.getDayOfWeek = function (date) {
796
+ return date.getDay();
797
+ };
798
+ /**
799
+ * @param {?} style
800
+ * @return {?}
801
+ */
802
+ NativeDateAdapter.prototype.getMonthNames = function (style$$1) {
803
+ var _this = this;
804
+ if (SUPPORTS_INTL_API) {
805
+ var /** @type {?} */ dtf_1 = new Intl.DateTimeFormat(this.locale, { month: style$$1 });
806
+ return range(12, function (i) { return _this._stripDirectionalityCharacters(dtf_1.format(new Date(2017, i, 1))); });
807
+ }
808
+ return DEFAULT_MONTH_NAMES[style$$1];
809
+ };
810
+ /**
811
+ * @return {?}
812
+ */
813
+ NativeDateAdapter.prototype.getDateNames = function () {
814
+ var _this = this;
815
+ if (SUPPORTS_INTL_API) {
816
+ var /** @type {?} */ dtf_2 = new Intl.DateTimeFormat(this.locale, { day: 'numeric' });
817
+ return range(31, function (i) { return _this._stripDirectionalityCharacters(dtf_2.format(new Date(2017, 0, i + 1))); });
818
+ }
819
+ return DEFAULT_DATE_NAMES;
820
+ };
821
+ /**
822
+ * @param {?} style
823
+ * @return {?}
824
+ */
825
+ NativeDateAdapter.prototype.getDayOfWeekNames = function (style$$1) {
826
+ var _this = this;
827
+ if (SUPPORTS_INTL_API) {
828
+ var /** @type {?} */ dtf_3 = new Intl.DateTimeFormat(this.locale, { weekday: style$$1 });
829
+ return range(7, function (i) { return _this._stripDirectionalityCharacters(dtf_3.format(new Date(2017, 0, i + 1))); });
830
+ }
831
+ return DEFAULT_DAY_OF_WEEK_NAMES[style$$1];
832
+ };
833
+ /**
834
+ * @param {?} date
835
+ * @return {?}
836
+ */
837
+ NativeDateAdapter.prototype.getYearName = function (date) {
838
+ if (SUPPORTS_INTL_API) {
839
+ var /** @type {?} */ dtf = new Intl.DateTimeFormat(this.locale, { year: 'numeric' });
840
+ return this._stripDirectionalityCharacters(dtf.format(date));
841
+ }
842
+ return String(this.getYear(date));
843
+ };
844
+ /**
845
+ * @return {?}
846
+ */
847
+ NativeDateAdapter.prototype.getFirstDayOfWeek = function () {
848
+ // We can't tell using native JS Date what the first day of the week is, we default to Sunday.
849
+ return 0;
850
+ };
851
+ /**
852
+ * @param {?} date
853
+ * @return {?}
854
+ */
855
+ NativeDateAdapter.prototype.getNumDaysInMonth = function (date) {
856
+ return this.getDate(this._createDateWithOverflow(this.getYear(date), this.getMonth(date) + 1, 0));
857
+ };
858
+ /**
859
+ * @param {?} date
860
+ * @return {?}
861
+ */
862
+ NativeDateAdapter.prototype.clone = function (date) {
863
+ return this.createDate(this.getYear(date), this.getMonth(date), this.getDate(date));
864
+ };
865
+ /**
866
+ * @param {?} year
867
+ * @param {?} month
868
+ * @param {?} date
869
+ * @return {?}
870
+ */
871
+ NativeDateAdapter.prototype.createDate = function (year, month, date) {
872
+ // Check for invalid month and date (except upper bound on date which we have to check after
873
+ // creating the Date).
874
+ if (month < 0 || month > 11) {
875
+ throw Error("Invalid month index \"" + month + "\". Month index has to be between 0 and 11.");
876
+ }
877
+ if (date < 1) {
878
+ throw Error("Invalid date \"" + date + "\". Date has to be greater than 0.");
879
+ }
880
+ var /** @type {?} */ result = this._createDateWithOverflow(year, month, date);
881
+ // Check that the date wasn't above the upper bound for the month, causing the month to overflow
882
+ if (result.getMonth() != month) {
883
+ throw Error("Invalid date \"" + date + "\" for month with index \"" + month + "\".");
884
+ }
885
+ return result;
886
+ };
887
+ /**
888
+ * @return {?}
889
+ */
890
+ NativeDateAdapter.prototype.today = function () {
891
+ return new Date();
892
+ };
893
+ /**
894
+ * @param {?} value
895
+ * @return {?}
896
+ */
897
+ NativeDateAdapter.prototype.parse = function (value) {
898
+ // We have no way using the native JS Date to set the parse format or locale, so we ignore these
899
+ // parameters.
900
+ if (typeof value == 'number') {
901
+ return new Date(value);
902
+ }
903
+ return value ? new Date(Date.parse(value)) : null;
904
+ };
905
+ /**
906
+ * @param {?} date
907
+ * @param {?} displayFormat
908
+ * @return {?}
909
+ */
910
+ NativeDateAdapter.prototype.format = function (date, displayFormat) {
911
+ if (!this.isValid(date)) {
912
+ throw Error('NativeDateAdapter: Cannot format invalid date.');
913
+ }
914
+ if (SUPPORTS_INTL_API) {
915
+ if (this.useUtcForDisplay) {
916
+ date = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()));
917
+ displayFormat = extendObject({}, displayFormat, { timeZone: 'utc' });
918
+ }
919
+ var /** @type {?} */ dtf = new Intl.DateTimeFormat(this.locale, displayFormat);
920
+ return this._stripDirectionalityCharacters(dtf.format(date));
921
+ }
922
+ return this._stripDirectionalityCharacters(date.toDateString());
923
+ };
924
+ /**
925
+ * @param {?} date
926
+ * @param {?} years
927
+ * @return {?}
928
+ */
929
+ NativeDateAdapter.prototype.addCalendarYears = function (date, years) {
930
+ return this.addCalendarMonths(date, years * 12);
931
+ };
932
+ /**
933
+ * @param {?} date
934
+ * @param {?} months
935
+ * @return {?}
936
+ */
937
+ NativeDateAdapter.prototype.addCalendarMonths = function (date, months) {
938
+ var /** @type {?} */ newDate = this._createDateWithOverflow(this.getYear(date), this.getMonth(date) + months, this.getDate(date));
939
+ // It's possible to wind up in the wrong month if the original month has more days than the new
940
+ // month. In this case we want to go to the last day of the desired month.
941
+ // Note: the additional + 12 % 12 ensures we end up with a positive number, since JS % doesn't
942
+ // guarantee this.
943
+ if (this.getMonth(newDate) != ((this.getMonth(date) + months) % 12 + 12) % 12) {
944
+ newDate = this._createDateWithOverflow(this.getYear(newDate), this.getMonth(newDate), 0);
945
+ }
946
+ return newDate;
947
+ };
948
+ /**
949
+ * @param {?} date
950
+ * @param {?} days
951
+ * @return {?}
952
+ */
953
+ NativeDateAdapter.prototype.addCalendarDays = function (date, days) {
954
+ return this._createDateWithOverflow(this.getYear(date), this.getMonth(date), this.getDate(date) + days);
955
+ };
956
+ /**
957
+ * @param {?} date
958
+ * @return {?}
959
+ */
960
+ NativeDateAdapter.prototype.toIso8601 = function (date) {
961
+ return [
962
+ date.getUTCFullYear(),
963
+ this._2digit(date.getUTCMonth() + 1),
964
+ this._2digit(date.getUTCDate())
965
+ ].join('-');
966
+ };
967
+ /**
968
+ * @param {?} iso8601String
969
+ * @return {?}
970
+ */
971
+ NativeDateAdapter.prototype.fromIso8601 = function (iso8601String) {
972
+ // The `Date` constructor accepts formats other than ISO 8601, so we need to make sure the
973
+ // string is the right format first.
974
+ if (ISO_8601_REGEX.test(iso8601String)) {
975
+ var /** @type {?} */ d = new Date(iso8601String);
976
+ if (this.isValid(d)) {
977
+ return d;
978
+ }
979
+ }
980
+ return null;
981
+ };
982
+ /**
983
+ * @param {?} obj
984
+ * @return {?}
985
+ */
986
+ NativeDateAdapter.prototype.isDateInstance = function (obj) {
987
+ return obj instanceof Date;
988
+ };
989
+ /**
990
+ * @param {?} date
991
+ * @return {?}
992
+ */
993
+ NativeDateAdapter.prototype.isValid = function (date) {
994
+ return !isNaN(date.getTime());
995
+ };
996
+ /**
997
+ * Creates a date but allows the month and date to overflow.
998
+ * @param {?} year
999
+ * @param {?} month
1000
+ * @param {?} date
1001
+ * @return {?}
1002
+ */
1003
+ NativeDateAdapter.prototype._createDateWithOverflow = function (year, month, date) {
1004
+ var /** @type {?} */ result = new Date(year, month, date);
1005
+ // We need to correct for the fact that JS native Date treats years in range [0, 99] as
1006
+ // abbreviations for 19xx.
1007
+ if (year >= 0 && year < 100) {
1008
+ result.setFullYear(this.getYear(result) - 1900);
1009
+ }
1010
+ return result;
1011
+ };
1012
+ /**
1013
+ * Pads a number to make it two digits.
1014
+ * @param {?} n The number to pad.
1015
+ * @return {?} The padded number.
1016
+ */
1017
+ NativeDateAdapter.prototype._2digit = function (n) {
1018
+ return ('00' + n).slice(-2);
1019
+ };
1020
+ /**
1021
+ * Strip out unicode LTR and RTL characters. Edge and IE insert these into formatted dates while
1022
+ * other browsers do not. We remove them to make output consistent and because they interfere with
1023
+ * date parsing.
1024
+ * @param {?} str The string to strip direction characters from.
1025
+ * @return {?} The stripped string.
1026
+ */
1027
+ NativeDateAdapter.prototype._stripDirectionalityCharacters = function (str) {
1028
+ return str.replace(/[\u200e\u200f]/g, '');
1029
+ };
1030
+ return NativeDateAdapter;
1031
+ }(DateAdapter));
1032
+ NativeDateAdapter.decorators = [
1033
+ { type: _angular_core.Injectable },
1034
+ ];
1035
+ /**
1036
+ * @nocollapse
1037
+ */
1038
+ NativeDateAdapter.ctorParameters = function () { return [
1039
+ { type: undefined, decorators: [{ type: _angular_core.Optional }, { type: _angular_core.Inject, args: [MAT_DATE_LOCALE,] },] },
1040
+ ]; };
1041
+ var MD_DATE_FORMATS = new _angular_core.InjectionToken('md-date-formats');
1042
+ var MD_NATIVE_DATE_FORMATS = {
1043
+ parse: {
1044
+ dateInput: null,
1045
+ },
1046
+ display: {
1047
+ dateInput: { year: 'numeric', month: 'numeric', day: 'numeric' },
1048
+ monthYearLabel: { year: 'numeric', month: 'short' },
1049
+ dateA11yLabel: { year: 'numeric', month: 'long', day: 'numeric' },
1050
+ monthYearA11yLabel: { year: 'numeric', month: 'long' },
1051
+ }
1052
+ };
1053
+ var NativeDateModule = (function () {
1054
+ function NativeDateModule() {
1055
+ }
1056
+ return NativeDateModule;
1057
+ }());
1058
+ NativeDateModule.decorators = [
1059
+ { type: _angular_core.NgModule, args: [{
1060
+ providers: [
1061
+ { provide: DateAdapter, useClass: NativeDateAdapter },
1062
+ MAT_DATE_LOCALE_PROVIDER
1063
+ ],
1064
+ },] },
1065
+ ];
1066
+ /**
1067
+ * @nocollapse
1068
+ */
1069
+ NativeDateModule.ctorParameters = function () { return []; };
1070
+ var MdNativeDateModule = (function () {
1071
+ function MdNativeDateModule() {
1072
+ }
1073
+ return MdNativeDateModule;
1074
+ }());
1075
+ MdNativeDateModule.decorators = [
1076
+ { type: _angular_core.NgModule, args: [{
1077
+ imports: [NativeDateModule],
1078
+ providers: [{ provide: MD_DATE_FORMATS, useValue: MD_NATIVE_DATE_FORMATS }],
1079
+ },] },
1080
+ ];
1081
+ /**
1082
+ * @nocollapse
1083
+ */
1084
+ MdNativeDateModule.ctorParameters = function () { return []; };
1085
+ /**
1086
+ * Injection token that can be used to specify the global error options.
1087
+ */
1088
+ var MD_ERROR_GLOBAL_OPTIONS = new _angular_core.InjectionToken('md-error-global-options');
1089
+ /**
1090
+ * Returns whether control is invalid and is either touched or is a part of a submitted form.
1091
+ * @param {?} control
1092
+ * @param {?} form
1093
+ * @return {?}
1094
+ */
1095
+ function defaultErrorStateMatcher(control, form) {
1096
+ var /** @type {?} */ isSubmitted = form && form.submitted;
1097
+ return !!(control.invalid && (control.touched || isSubmitted));
1098
+ }
1099
+ var GestureConfig = (function (_super) {
1100
+ __extends(GestureConfig, _super);
1101
+ function GestureConfig() {
1102
+ var _this = _super.call(this) || this;
1103
+ _this._hammer = typeof window !== 'undefined' ? ((window)).Hammer : null;
1104
+ /* List of new event names to add to the gesture support list */
1105
+ _this.events = _this._hammer ? [
1106
+ 'longpress',
1107
+ 'slide',
1108
+ 'slidestart',
1109
+ 'slideend',
1110
+ 'slideright',
1111
+ 'slideleft'
1112
+ ] : [];
1113
+ if (!_this._hammer && _angular_core.isDevMode()) {
1114
+ console.warn('Could not find HammerJS. Certain Angular Material ' +
1115
+ 'components may not work correctly.');
1116
+ }
1117
+ return _this;
1118
+ }
1119
+ /**
1120
+ * Builds Hammer instance manually to add custom recognizers that match the Material Design spec.
1121
+ *
1122
+ * Our gesture names come from the Material Design gestures spec:
1123
+ * https://www.google.com/design/spec/patterns/gestures.html#gestures-touch-mechanics
1124
+ *
1125
+ * More information on default recognizers can be found in Hammer docs:
1126
+ * http://hammerjs.github.io/recognizer-pan/
1127
+ * http://hammerjs.github.io/recognizer-press/
1128
+ *
1129
+ * @param {?} element Element to which to assign the new HammerJS gestures.
1130
+ * @return {?} Newly-created HammerJS instance.
1131
+ */
1132
+ GestureConfig.prototype.buildHammer = function (element) {
1133
+ var /** @type {?} */ mc = new this._hammer(element);
1134
+ // Default Hammer Recognizers.
1135
+ var /** @type {?} */ pan = new this._hammer.Pan();
1136
+ var /** @type {?} */ swipe = new this._hammer.Swipe();
1137
+ var /** @type {?} */ press = new this._hammer.Press();
1138
+ // Notice that a HammerJS recognizer can only depend on one other recognizer once.
1139
+ // Otherwise the previous `recognizeWith` will be dropped.
1140
+ // TODO: Confirm threshold numbers with Material Design UX Team
1141
+ var /** @type {?} */ slide = this._createRecognizer(pan, { event: 'slide', threshold: 0 }, swipe);
1142
+ var /** @type {?} */ longpress = this._createRecognizer(press, { event: 'longpress', time: 500 });
1143
+ // Overwrite the default `pan` event to use the swipe event.
1144
+ pan.recognizeWith(swipe);
1145
+ // Add customized gestures to Hammer manager
1146
+ mc.add([swipe, press, pan, slide, longpress]);
1147
+ return (mc);
1148
+ };
1149
+ /**
1150
+ * Creates a new recognizer, without affecting the default recognizers of HammerJS
1151
+ * @param {?} base
1152
+ * @param {?} options
1153
+ * @param {...?} inheritances
1154
+ * @return {?}
1155
+ */
1156
+ GestureConfig.prototype._createRecognizer = function (base, options) {
1157
+ var inheritances = [];
1158
+ for (var _i = 2; _i < arguments.length; _i++) {
1159
+ inheritances[_i - 2] = arguments[_i];
1160
+ }
1161
+ var /** @type {?} */ recognizer = new ((base.constructor))(options);
1162
+ inheritances.push(base);
1163
+ inheritances.forEach(function (item) { return recognizer.recognizeWith(item); });
1164
+ return recognizer;
1165
+ };
1166
+ return GestureConfig;
1167
+ }(_angular_platformBrowser.HammerGestureConfig));
1168
+ GestureConfig.decorators = [
1169
+ { type: _angular_core.Injectable },
1170
+ ];
1171
+ /**
1172
+ * @nocollapse
1173
+ */
1174
+ GestureConfig.ctorParameters = function () { return []; };
1175
+ /**
1176
+ * Shared directive to count lines inside a text area, such as a list item.
1177
+ * Line elements can be extracted with a \@ContentChildren(MdLine) query, then
1178
+ * counted by checking the query list's length.
1179
+ */
1180
+ var MdLine = (function () {
1181
+ function MdLine() {
1182
+ }
1183
+ return MdLine;
1184
+ }());
1185
+ MdLine.decorators = [
1186
+ { type: _angular_core.Directive, args: [{
1187
+ selector: '[md-line], [mat-line], [mdLine], [matLine]',
1188
+ host: { 'class': 'mat-line' }
1189
+ },] },
1190
+ ];
1191
+ /**
1192
+ * @nocollapse
1193
+ */
1194
+ MdLine.ctorParameters = function () { return []; };
1195
+ var MdLineModule = (function () {
1196
+ function MdLineModule() {
1197
+ }
1198
+ return MdLineModule;
1199
+ }());
1200
+ MdLineModule.decorators = [
1201
+ { type: _angular_core.NgModule, args: [{
1202
+ imports: [MdCommonModule],
1203
+ exports: [MdLine, MdCommonModule],
1204
+ declarations: [MdLine],
1205
+ },] },
1206
+ ];
1207
+ /**
1208
+ * @nocollapse
1209
+ */
1210
+ MdLineModule.ctorParameters = function () { return []; };
1211
+ var RippleState = {};
1212
+ RippleState.FADING_IN = 0;
1213
+ RippleState.VISIBLE = 1;
1214
+ RippleState.FADING_OUT = 2;
1215
+ RippleState.HIDDEN = 3;
1216
+ RippleState[RippleState.FADING_IN] = "FADING_IN";
1217
+ RippleState[RippleState.VISIBLE] = "VISIBLE";
1218
+ RippleState[RippleState.FADING_OUT] = "FADING_OUT";
1219
+ RippleState[RippleState.HIDDEN] = "HIDDEN";
1220
+ /**
1221
+ * Reference to a previously launched ripple element.
1222
+ */
1223
+ var RippleRef = (function () {
1224
+ /**
1225
+ * @param {?} _renderer
1226
+ * @param {?} element
1227
+ * @param {?} config
1228
+ */
1229
+ function RippleRef(_renderer, element, config) {
1230
+ this._renderer = _renderer;
1231
+ this.element = element;
1232
+ this.config = config;
1233
+ /**
1234
+ * Current state of the ripple reference.
1235
+ */
1236
+ this.state = RippleState.HIDDEN;
1237
+ }
1238
+ /**
1239
+ * Fades out the ripple element.
1240
+ * @return {?}
1241
+ */
1242
+ RippleRef.prototype.fadeOut = function () {
1243
+ this._renderer.fadeOutRipple(this);
1244
+ };
1245
+ return RippleRef;
1246
+ }());
1247
+ /**
1248
+ * Fade-in duration for the ripples. Can be modified with the speedFactor option.
1249
+ */
1250
+ var RIPPLE_FADE_IN_DURATION = 450;
1251
+ /**
1252
+ * Fade-out duration for the ripples in milliseconds. This can't be modified by the speedFactor.
1253
+ */
1254
+ var RIPPLE_FADE_OUT_DURATION = 400;
1255
+ /**
1256
+ * Helper service that performs DOM manipulations. Not intended to be used outside this module.
1257
+ * The constructor takes a reference to the ripple directive's host element and a map of DOM
1258
+ * event handlers to be installed on the element that triggers ripple animations.
1259
+ * This will eventually become a custom renderer once Angular support exists.
1260
+ * \@docs-private
1261
+ */
1262
+ var RippleRenderer = (function () {
1263
+ /**
1264
+ * @param {?} elementRef
1265
+ * @param {?} _ngZone
1266
+ * @param {?} _ruler
1267
+ * @param {?} platform
1268
+ */
1269
+ function RippleRenderer(elementRef, _ngZone, _ruler, platform) {
1270
+ this._ngZone = _ngZone;
1271
+ this._ruler = _ruler;
1272
+ /**
1273
+ * Whether the mouse is currently down or not.
1274
+ */
1275
+ this._isMousedown = false;
1276
+ /**
1277
+ * Events to be registered on the trigger element.
1278
+ */
1279
+ this._triggerEvents = new Map();
1280
+ /**
1281
+ * Set of currently active ripple references.
1282
+ */
1283
+ this._activeRipples = new Set();
1284
+ /**
1285
+ * Ripple config for all ripples created by events.
1286
+ */
1287
+ this.rippleConfig = {};
1288
+ /**
1289
+ * Whether mouse ripples should be created or not.
1290
+ */
1291
+ this.rippleDisabled = false;
1292
+ // Only do anything if we're on the browser.
1293
+ if (platform.isBrowser) {
1294
+ this._containerElement = elementRef.nativeElement;
1295
+ // Specify events which need to be registered on the trigger.
1296
+ this._triggerEvents.set('mousedown', this.onMousedown.bind(this));
1297
+ this._triggerEvents.set('mouseup', this.onMouseup.bind(this));
1298
+ this._triggerEvents.set('mouseleave', this.onMouseLeave.bind(this));
1299
+ // By default use the host element as trigger element.
1300
+ this.setTriggerElement(this._containerElement);
1301
+ }
1302
+ }
1303
+ /**
1304
+ * Fades in a ripple at the given coordinates.
1305
+ * @param {?} pageX
1306
+ * @param {?} pageY
1307
+ * @param {?=} config
1308
+ * @return {?}
1309
+ */
1310
+ RippleRenderer.prototype.fadeInRipple = function (pageX, pageY, config) {
1311
+ var _this = this;
1312
+ if (config === void 0) { config = {}; }
1313
+ var /** @type {?} */ containerRect = this._containerElement.getBoundingClientRect();
1314
+ if (config.centered) {
1315
+ pageX = containerRect.left + containerRect.width / 2;
1316
+ pageY = containerRect.top + containerRect.height / 2;
1317
+ }
1318
+ else {
1319
+ // Subtract scroll values from the coordinates because calculations below
1320
+ // are always relative to the viewport rectangle.
1321
+ var /** @type {?} */ scrollPosition = this._ruler.getViewportScrollPosition();
1322
+ pageX -= scrollPosition.left;
1323
+ pageY -= scrollPosition.top;
1324
+ }
1325
+ var /** @type {?} */ radius = config.radius || distanceToFurthestCorner(pageX, pageY, containerRect);
1326
+ var /** @type {?} */ duration = RIPPLE_FADE_IN_DURATION * (1 / (config.speedFactor || 1));
1327
+ var /** @type {?} */ offsetX = pageX - containerRect.left;
1328
+ var /** @type {?} */ offsetY = pageY - containerRect.top;
1329
+ var /** @type {?} */ ripple = document.createElement('div');
1330
+ ripple.classList.add('mat-ripple-element');
1331
+ ripple.style.left = offsetX - radius + "px";
1332
+ ripple.style.top = offsetY - radius + "px";
1333
+ ripple.style.height = radius * 2 + "px";
1334
+ ripple.style.width = radius * 2 + "px";
1335
+ // If the color is not set, the default CSS color will be used.
1336
+ ripple.style.backgroundColor = config.color || null;
1337
+ ripple.style.transitionDuration = duration + "ms";
1338
+ this._containerElement.appendChild(ripple);
1339
+ // By default the browser does not recalculate the styles of dynamically created
1340
+ // ripple elements. This is critical because then the `scale` would not animate properly.
1341
+ enforceStyleRecalculation(ripple);
1342
+ ripple.style.transform = 'scale(1)';
1343
+ // Exposed reference to the ripple that will be returned.
1344
+ var /** @type {?} */ rippleRef = new RippleRef(this, ripple, config);
1345
+ rippleRef.state = RippleState.FADING_IN;
1346
+ // Add the ripple reference to the list of all active ripples.
1347
+ this._activeRipples.add(rippleRef);
1348
+ // Wait for the ripple element to be completely faded in.
1349
+ // Once it's faded in, the ripple can be hidden immediately if the mouse is released.
1350
+ this.runTimeoutOutsideZone(function () {
1351
+ rippleRef.state = RippleState.VISIBLE;
1352
+ if (!config.persistent && !_this._isMousedown) {
1353
+ rippleRef.fadeOut();
1354
+ }
1355
+ }, duration);
1356
+ return rippleRef;
1357
+ };
1358
+ /**
1359
+ * Fades out a ripple reference.
1360
+ * @param {?} rippleRef
1361
+ * @return {?}
1362
+ */
1363
+ RippleRenderer.prototype.fadeOutRipple = function (rippleRef) {
1364
+ // For ripples that are not active anymore, don't re-un the fade-out animation.
1365
+ if (!this._activeRipples.delete(rippleRef)) {
1366
+ return;
1367
+ }
1368
+ var /** @type {?} */ rippleEl = rippleRef.element;
1369
+ rippleEl.style.transitionDuration = RIPPLE_FADE_OUT_DURATION + "ms";
1370
+ rippleEl.style.opacity = '0';
1371
+ rippleRef.state = RippleState.FADING_OUT;
1372
+ // Once the ripple faded out, the ripple can be safely removed from the DOM.
1373
+ this.runTimeoutOutsideZone(function () {
1374
+ rippleRef.state = RippleState.HIDDEN; /** @type {?} */
1375
+ ((rippleEl.parentNode)).removeChild(rippleEl);
1376
+ }, RIPPLE_FADE_OUT_DURATION);
1377
+ };
1378
+ /**
1379
+ * Fades out all currently active ripples.
1380
+ * @return {?}
1381
+ */
1382
+ RippleRenderer.prototype.fadeOutAll = function () {
1383
+ this._activeRipples.forEach(function (ripple) { return ripple.fadeOut(); });
1384
+ };
1385
+ /**
1386
+ * Sets the trigger element and registers the mouse events.
1387
+ * @param {?} element
1388
+ * @return {?}
1389
+ */
1390
+ RippleRenderer.prototype.setTriggerElement = function (element) {
1391
+ var _this = this;
1392
+ // Remove all previously register event listeners from the trigger element.
1393
+ if (this._triggerElement) {
1394
+ this._triggerEvents.forEach(function (fn, type) {
1395
+ ((_this._triggerElement)).removeEventListener(type, fn);
1396
+ });
1397
+ }
1398
+ if (element) {
1399
+ // If the element is not null, register all event listeners on the trigger element.
1400
+ this._ngZone.runOutsideAngular(function () {
1401
+ _this._triggerEvents.forEach(function (fn, type) { return element.addEventListener(type, fn); });
1402
+ });
1403
+ }
1404
+ this._triggerElement = element;
1405
+ };
1406
+ /**
1407
+ * Listener being called on mousedown event.
1408
+ * @param {?} event
1409
+ * @return {?}
1410
+ */
1411
+ RippleRenderer.prototype.onMousedown = function (event) {
1412
+ if (!this.rippleDisabled) {
1413
+ this._isMousedown = true;
1414
+ this.fadeInRipple(event.pageX, event.pageY, this.rippleConfig);
1415
+ }
1416
+ };
1417
+ /**
1418
+ * Listener being called on mouseup event.
1419
+ * @return {?}
1420
+ */
1421
+ RippleRenderer.prototype.onMouseup = function () {
1422
+ this._isMousedown = false;
1423
+ // Fade-out all ripples that are completely visible and not persistent.
1424
+ this._activeRipples.forEach(function (ripple) {
1425
+ if (!ripple.config.persistent && ripple.state === RippleState.VISIBLE) {
1426
+ ripple.fadeOut();
1427
+ }
1428
+ });
1429
+ };
1430
+ /**
1431
+ * Listener being called on mouseleave event.
1432
+ * @return {?}
1433
+ */
1434
+ RippleRenderer.prototype.onMouseLeave = function () {
1435
+ if (this._isMousedown) {
1436
+ this.onMouseup();
1437
+ }
1438
+ };
1439
+ /**
1440
+ * Runs a timeout outside of the Angular zone to avoid triggering the change detection.
1441
+ * @param {?} fn
1442
+ * @param {?=} delay
1443
+ * @return {?}
1444
+ */
1445
+ RippleRenderer.prototype.runTimeoutOutsideZone = function (fn, delay) {
1446
+ if (delay === void 0) { delay = 0; }
1447
+ this._ngZone.runOutsideAngular(function () { return setTimeout(fn, delay); });
1448
+ };
1449
+ return RippleRenderer;
1450
+ }());
1451
+ /**
1452
+ * @param {?} element
1453
+ * @return {?}
1454
+ */
1455
+ function enforceStyleRecalculation(element) {
1456
+ // Enforce a style recalculation by calling `getComputedStyle` and accessing any property.
1457
+ // Calling `getPropertyValue` is important to let optimizers know that this is not a noop.
1458
+ // See: https://gist.github.com/paulirish/5d52fb081b3570c81e3a
1459
+ window.getComputedStyle(element).getPropertyValue('opacity');
1460
+ }
1461
+ /**
1462
+ * Returns the distance from the point (x, y) to the furthest corner of a rectangle.
1463
+ * @param {?} x
1464
+ * @param {?} y
1465
+ * @param {?} rect
1466
+ * @return {?}
1467
+ */
1468
+ function distanceToFurthestCorner(x, y, rect) {
1469
+ var /** @type {?} */ distX = Math.max(Math.abs(x - rect.left), Math.abs(x - rect.right));
1470
+ var /** @type {?} */ distY = Math.max(Math.abs(y - rect.top), Math.abs(y - rect.bottom));
1471
+ return Math.sqrt(distX * distX + distY * distY);
1472
+ }
1473
+ /**
1474
+ * Injection token that can be used to specify the global ripple options.
1475
+ */
1476
+ var MD_RIPPLE_GLOBAL_OPTIONS = new _angular_core.InjectionToken('md-ripple-global-options');
1477
+ var MdRipple = (function () {
1478
+ /**
1479
+ * @param {?} elementRef
1480
+ * @param {?} ngZone
1481
+ * @param {?} ruler
1482
+ * @param {?} platform
1483
+ * @param {?} globalOptions
1484
+ */
1485
+ function MdRipple(elementRef, ngZone, ruler, platform, globalOptions) {
1486
+ /**
1487
+ * If set, the radius in pixels of foreground ripples when fully expanded. If unset, the radius
1488
+ * will be the distance from the center of the ripple to the furthest corner of the host element's
1489
+ * bounding rectangle.
1490
+ */
1491
+ this.radius = 0;
1492
+ /**
1493
+ * If set, the normal duration of ripple animations is divided by this value. For example,
1494
+ * setting it to 0.5 will cause the animations to take twice as long.
1495
+ * A changed speedFactor will not modify the fade-out duration of the ripples.
1496
+ */
1497
+ this.speedFactor = 1;
1498
+ this._rippleRenderer = new RippleRenderer(elementRef, ngZone, ruler, platform);
1499
+ this._globalOptions = globalOptions ? globalOptions : {};
1500
+ this._updateRippleRenderer();
1501
+ }
1502
+ Object.defineProperty(MdRipple.prototype, "_matRippleTrigger", {
1503
+ /**
1504
+ * @return {?}
1505
+ */
1506
+ get: function () { return this.trigger; },
1507
+ /**
1508
+ * @param {?} v
1509
+ * @return {?}
1510
+ */
1511
+ set: function (v) { this.trigger = v; },
1512
+ enumerable: true,
1513
+ configurable: true
1514
+ });
1515
+ Object.defineProperty(MdRipple.prototype, "_matRippleCentered", {
1516
+ /**
1517
+ * @return {?}
1518
+ */
1519
+ get: function () { return this.centered; },
1520
+ /**
1521
+ * @param {?} v
1522
+ * @return {?}
1523
+ */
1524
+ set: function (v) { this.centered = v; },
1525
+ enumerable: true,
1526
+ configurable: true
1527
+ });
1528
+ Object.defineProperty(MdRipple.prototype, "_matRippleDisabled", {
1529
+ /**
1530
+ * @return {?}
1531
+ */
1532
+ get: function () { return this.disabled; },
1533
+ /**
1534
+ * @param {?} v
1535
+ * @return {?}
1536
+ */
1537
+ set: function (v) { this.disabled = v; },
1538
+ enumerable: true,
1539
+ configurable: true
1540
+ });
1541
+ Object.defineProperty(MdRipple.prototype, "_matRippleRadius", {
1542
+ /**
1543
+ * @return {?}
1544
+ */
1545
+ get: function () { return this.radius; },
1546
+ /**
1547
+ * @param {?} v
1548
+ * @return {?}
1549
+ */
1550
+ set: function (v) { this.radius = v; },
1551
+ enumerable: true,
1552
+ configurable: true
1553
+ });
1554
+ Object.defineProperty(MdRipple.prototype, "_matRippleSpeedFactor", {
1555
+ /**
1556
+ * @return {?}
1557
+ */
1558
+ get: function () { return this.speedFactor; },
1559
+ /**
1560
+ * @param {?} v
1561
+ * @return {?}
1562
+ */
1563
+ set: function (v) { this.speedFactor = v; },
1564
+ enumerable: true,
1565
+ configurable: true
1566
+ });
1567
+ Object.defineProperty(MdRipple.prototype, "_matRippleColor", {
1568
+ /**
1569
+ * @return {?}
1570
+ */
1571
+ get: function () { return this.color; },
1572
+ /**
1573
+ * @param {?} v
1574
+ * @return {?}
1575
+ */
1576
+ set: function (v) { this.color = v; },
1577
+ enumerable: true,
1578
+ configurable: true
1579
+ });
1580
+ Object.defineProperty(MdRipple.prototype, "_matRippleUnbounded", {
1581
+ /**
1582
+ * @return {?}
1583
+ */
1584
+ get: function () { return this.unbounded; },
1585
+ /**
1586
+ * @param {?} v
1587
+ * @return {?}
1588
+ */
1589
+ set: function (v) { this.unbounded = v; },
1590
+ enumerable: true,
1591
+ configurable: true
1592
+ });
1593
+ /**
1594
+ * @param {?} changes
1595
+ * @return {?}
1596
+ */
1597
+ MdRipple.prototype.ngOnChanges = function (changes) {
1598
+ if ((changes['trigger'] || changes['_matRippleTrigger']) && this.trigger) {
1599
+ this._rippleRenderer.setTriggerElement(this.trigger);
1600
+ }
1601
+ this._updateRippleRenderer();
1602
+ };
1603
+ /**
1604
+ * @return {?}
1605
+ */
1606
+ MdRipple.prototype.ngOnDestroy = function () {
1607
+ // Set the trigger element to null to cleanup all listeners.
1608
+ this._rippleRenderer.setTriggerElement(null);
1609
+ };
1610
+ /**
1611
+ * Launches a manual ripple at the specified position.
1612
+ * @param {?} pageX
1613
+ * @param {?} pageY
1614
+ * @param {?=} config
1615
+ * @return {?}
1616
+ */
1617
+ MdRipple.prototype.launch = function (pageX, pageY, config) {
1618
+ if (config === void 0) { config = this.rippleConfig; }
1619
+ return this._rippleRenderer.fadeInRipple(pageX, pageY, config);
1620
+ };
1621
+ /**
1622
+ * Fades out all currently showing ripple elements.
1623
+ * @return {?}
1624
+ */
1625
+ MdRipple.prototype.fadeOutAll = function () {
1626
+ this._rippleRenderer.fadeOutAll();
1627
+ };
1628
+ Object.defineProperty(MdRipple.prototype, "rippleConfig", {
1629
+ /**
1630
+ * Ripple configuration from the directive's input values.
1631
+ * @return {?}
1632
+ */
1633
+ get: function () {
1634
+ return {
1635
+ centered: this.centered,
1636
+ speedFactor: this.speedFactor * (this._globalOptions.baseSpeedFactor || 1),
1637
+ radius: this.radius,
1638
+ color: this.color
1639
+ };
1640
+ },
1641
+ enumerable: true,
1642
+ configurable: true
1643
+ });
1644
+ /**
1645
+ * Updates the ripple renderer with the latest ripple configuration.
1646
+ * @return {?}
1647
+ */
1648
+ MdRipple.prototype._updateRippleRenderer = function () {
1649
+ this._rippleRenderer.rippleDisabled = this._globalOptions.disabled || this.disabled;
1650
+ this._rippleRenderer.rippleConfig = this.rippleConfig;
1651
+ };
1652
+ return MdRipple;
1653
+ }());
1654
+ MdRipple.decorators = [
1655
+ { type: _angular_core.Directive, args: [{
1656
+ selector: '[md-ripple], [mat-ripple], [mdRipple], [matRipple]',
1657
+ exportAs: 'mdRipple, matRipple',
1658
+ host: {
1659
+ 'class': 'mat-ripple',
1660
+ '[class.mat-ripple-unbounded]': 'unbounded'
1661
+ }
1662
+ },] },
1663
+ ];
1664
+ /**
1665
+ * @nocollapse
1666
+ */
1667
+ MdRipple.ctorParameters = function () { return [
1668
+ { type: _angular_core.ElementRef, },
1669
+ { type: _angular_core.NgZone, },
1670
+ { type: _angular_cdk_scrolling.ViewportRuler, },
1671
+ { type: _angular_cdk_platform.Platform, },
1672
+ { type: undefined, decorators: [{ type: _angular_core.Optional }, { type: _angular_core.Inject, args: [MD_RIPPLE_GLOBAL_OPTIONS,] },] },
1673
+ ]; };
1674
+ MdRipple.propDecorators = {
1675
+ 'trigger': [{ type: _angular_core.Input, args: ['mdRippleTrigger',] },],
1676
+ 'centered': [{ type: _angular_core.Input, args: ['mdRippleCentered',] },],
1677
+ 'disabled': [{ type: _angular_core.Input, args: ['mdRippleDisabled',] },],
1678
+ 'radius': [{ type: _angular_core.Input, args: ['mdRippleRadius',] },],
1679
+ 'speedFactor': [{ type: _angular_core.Input, args: ['mdRippleSpeedFactor',] },],
1680
+ 'color': [{ type: _angular_core.Input, args: ['mdRippleColor',] },],
1681
+ 'unbounded': [{ type: _angular_core.Input, args: ['mdRippleUnbounded',] },],
1682
+ '_matRippleTrigger': [{ type: _angular_core.Input, args: ['matRippleTrigger',] },],
1683
+ '_matRippleCentered': [{ type: _angular_core.Input, args: ['matRippleCentered',] },],
1684
+ '_matRippleDisabled': [{ type: _angular_core.Input, args: ['matRippleDisabled',] },],
1685
+ '_matRippleRadius': [{ type: _angular_core.Input, args: ['matRippleRadius',] },],
1686
+ '_matRippleSpeedFactor': [{ type: _angular_core.Input, args: ['matRippleSpeedFactor',] },],
1687
+ '_matRippleColor': [{ type: _angular_core.Input, args: ['matRippleColor',] },],
1688
+ '_matRippleUnbounded': [{ type: _angular_core.Input, args: ['matRippleUnbounded',] },],
1689
+ };
1690
+ var MdRippleModule = (function () {
1691
+ function MdRippleModule() {
1692
+ }
1693
+ return MdRippleModule;
1694
+ }());
1695
+ MdRippleModule.decorators = [
1696
+ { type: _angular_core.NgModule, args: [{
1697
+ imports: [MdCommonModule, _angular_cdk_platform.PlatformModule, _angular_cdk_scrolling.ScrollDispatchModule],
1698
+ exports: [MdRipple, MdCommonModule],
1699
+ declarations: [MdRipple],
1700
+ providers: [_angular_cdk_scrolling.VIEWPORT_RULER_PROVIDER],
1701
+ },] },
1702
+ ];
1703
+ /**
1704
+ * @nocollapse
1705
+ */
1706
+ MdRippleModule.ctorParameters = function () { return []; };
1707
+ /**
1708
+ * Component that shows a simplified checkbox without including any kind of "real" checkbox.
1709
+ * Meant to be used when the checkbox is purely decorative and a large number of them will be
1710
+ * included, such as for the options in a multi-select. Uses no SVGs or complex animations.
1711
+ * Note that theming is meant to be handled by the parent element, e.g.
1712
+ * `mat-primary .mat-pseudo-checkbox`.
1713
+ *
1714
+ * Note that this component will be completely invisible to screen-reader users. This is *not*
1715
+ * interchangeable with <md-checkbox> and should *not* be used if the user would directly interact
1716
+ * with the checkbox. The pseudo-checkbox should only be used as an implementation detail of
1717
+ * more complex components that appropriately handle selected / checked state.
1718
+ * \@docs-private
1719
+ */
1720
+ var MdPseudoCheckbox = (function () {
1721
+ function MdPseudoCheckbox() {
1722
+ /**
1723
+ * Display state of the checkbox.
1724
+ */
1725
+ this.state = 'unchecked';
1726
+ /**
1727
+ * Whether the checkbox is disabled.
1728
+ */
1729
+ this.disabled = false;
1730
+ }
1731
+ return MdPseudoCheckbox;
1732
+ }());
1733
+ MdPseudoCheckbox.decorators = [
1734
+ { type: _angular_core.Component, args: [{ encapsulation: _angular_core.ViewEncapsulation.None,
1735
+ preserveWhitespaces: false,
1736
+ changeDetection: _angular_core.ChangeDetectionStrategy.OnPush,
1737
+ selector: 'md-pseudo-checkbox, mat-pseudo-checkbox',
1738
+ styles: [".mat-pseudo-checkbox{width:20px;height:20px;border:2px solid;border-radius:2px;cursor:pointer;display:inline-block;vertical-align:middle;box-sizing:border-box;position:relative;flex-shrink:0;transition:border-color 90ms cubic-bezier(0,0,.2,.1),background-color 90ms cubic-bezier(0,0,.2,.1)}.mat-pseudo-checkbox::after{position:absolute;opacity:0;content:'';border-bottom:2px solid currentColor;transition:opacity 90ms cubic-bezier(0,0,.2,.1)}.mat-pseudo-checkbox.mat-pseudo-checkbox-checked,.mat-pseudo-checkbox.mat-pseudo-checkbox-indeterminate{border:none}.mat-pseudo-checkbox-disabled{cursor:default}.mat-pseudo-checkbox-indeterminate::after{top:9px;left:2px;width:16px;opacity:1}.mat-pseudo-checkbox-checked::after{top:5px;left:3px;width:12px;height:5px;border-left:2px solid currentColor;transform:rotate(-45deg);opacity:1}"],
1739
+ template: '',
1740
+ host: {
1741
+ 'class': 'mat-pseudo-checkbox',
1742
+ '[class.mat-pseudo-checkbox-indeterminate]': 'state === "indeterminate"',
1743
+ '[class.mat-pseudo-checkbox-checked]': 'state === "checked"',
1744
+ '[class.mat-pseudo-checkbox-disabled]': 'disabled',
1745
+ },
1746
+ },] },
1747
+ ];
1748
+ /**
1749
+ * @nocollapse
1750
+ */
1751
+ MdPseudoCheckbox.ctorParameters = function () { return []; };
1752
+ MdPseudoCheckbox.propDecorators = {
1753
+ 'state': [{ type: _angular_core.Input },],
1754
+ 'disabled': [{ type: _angular_core.Input },],
1755
+ };
1756
+ var MdPseudoCheckboxModule = (function () {
1757
+ function MdPseudoCheckboxModule() {
1758
+ }
1759
+ return MdPseudoCheckboxModule;
1760
+ }());
1761
+ MdPseudoCheckboxModule.decorators = [
1762
+ { type: _angular_core.NgModule, args: [{
1763
+ exports: [MdPseudoCheckbox],
1764
+ declarations: [MdPseudoCheckbox]
1765
+ },] },
1766
+ ];
1767
+ /**
1768
+ * @nocollapse
1769
+ */
1770
+ MdPseudoCheckboxModule.ctorParameters = function () { return []; };
1771
+ /**
1772
+ * \@docs-private
1773
+ */
1774
+ var MdOptgroupBase = (function () {
1775
+ function MdOptgroupBase() {
1776
+ }
1777
+ return MdOptgroupBase;
1778
+ }());
1779
+ var _MdOptgroupMixinBase = mixinDisabled(MdOptgroupBase);
1780
+ // Counter for unique group ids.
1781
+ var _uniqueOptgroupIdCounter = 0;
1782
+ /**
1783
+ * Component that is used to group instances of `md-option`.
1784
+ */
1785
+ var MdOptgroup = (function (_super) {
1786
+ __extends(MdOptgroup, _super);
1787
+ function MdOptgroup() {
1788
+ var _this = _super.apply(this, arguments) || this;
1789
+ /**
1790
+ * Unique id for the underlying label.
1791
+ */
1792
+ _this._labelId = "mat-optgroup-label-" + _uniqueOptgroupIdCounter++;
1793
+ return _this;
1794
+ }
1795
+ return MdOptgroup;
1796
+ }(_MdOptgroupMixinBase));
1797
+ MdOptgroup.decorators = [
1798
+ { type: _angular_core.Component, args: [{ selector: 'md-optgroup, mat-optgroup',
1799
+ template: "<label class=\"mat-optgroup-label\" [id]=\"_labelId\">{{ label }}</label><ng-content select=\"md-option, mat-option\"></ng-content>",
1800
+ encapsulation: _angular_core.ViewEncapsulation.None,
1801
+ preserveWhitespaces: false,
1802
+ changeDetection: _angular_core.ChangeDetectionStrategy.OnPush,
1803
+ inputs: ['disabled'],
1804
+ host: {
1805
+ 'class': 'mat-optgroup',
1806
+ 'role': 'group',
1807
+ '[class.mat-optgroup-disabled]': 'disabled',
1808
+ '[attr.aria-disabled]': 'disabled.toString()',
1809
+ '[attr.aria-labelledby]': '_labelId',
1810
+ }
1811
+ },] },
1812
+ ];
1813
+ /**
1814
+ * @nocollapse
1815
+ */
1816
+ MdOptgroup.ctorParameters = function () { return []; };
1817
+ MdOptgroup.propDecorators = {
1818
+ 'label': [{ type: _angular_core.Input },],
1819
+ };
1820
+ /**
1821
+ * Option IDs need to be unique across components, so this counter exists outside of
1822
+ * the component definition.
1823
+ */
1824
+ var _uniqueIdCounter = 0;
1825
+ /**
1826
+ * Event object emitted by MdOption when selected or deselected.
1827
+ */
1828
+ var MdOptionSelectionChange = (function () {
1829
+ /**
1830
+ * @param {?} source
1831
+ * @param {?=} isUserInput
1832
+ */
1833
+ function MdOptionSelectionChange(source, isUserInput) {
1834
+ if (isUserInput === void 0) { isUserInput = false; }
1835
+ this.source = source;
1836
+ this.isUserInput = isUserInput;
1837
+ }
1838
+ return MdOptionSelectionChange;
1839
+ }());
1840
+ /**
1841
+ * Single option inside of a `<md-select>` element.
1842
+ */
1843
+ var MdOption = (function () {
1844
+ /**
1845
+ * @param {?} _element
1846
+ * @param {?} _changeDetectorRef
1847
+ * @param {?} group
1848
+ */
1849
+ function MdOption(_element, _changeDetectorRef, group) {
1850
+ this._element = _element;
1851
+ this._changeDetectorRef = _changeDetectorRef;
1852
+ this.group = group;
1853
+ this._selected = false;
1854
+ this._active = false;
1855
+ this._multiple = false;
1856
+ this._disableRipple = false;
1857
+ /**
1858
+ * Whether the option is disabled.
1859
+ */
1860
+ this._disabled = false;
1861
+ this._id = "md-option-" + _uniqueIdCounter++;
1862
+ /**
1863
+ * Event emitted when the option is selected or deselected.
1864
+ */
1865
+ this.onSelectionChange = new _angular_core.EventEmitter();
1866
+ }
1867
+ Object.defineProperty(MdOption.prototype, "multiple", {
1868
+ /**
1869
+ * Whether the wrapping component is in multiple selection mode.
1870
+ * @return {?}
1871
+ */
1872
+ get: function () { return this._multiple; },
1873
+ /**
1874
+ * @param {?} value
1875
+ * @return {?}
1876
+ */
1877
+ set: function (value) {
1878
+ if (value !== this._multiple) {
1879
+ this._multiple = value;
1880
+ this._changeDetectorRef.markForCheck();
1881
+ }
1882
+ },
1883
+ enumerable: true,
1884
+ configurable: true
1885
+ });
1886
+ Object.defineProperty(MdOption.prototype, "id", {
1887
+ /**
1888
+ * The unique ID of the option.
1889
+ * @return {?}
1890
+ */
1891
+ get: function () { return this._id; },
1892
+ enumerable: true,
1893
+ configurable: true
1894
+ });
1895
+ Object.defineProperty(MdOption.prototype, "selected", {
1896
+ /**
1897
+ * Whether or not the option is currently selected.
1898
+ * @return {?}
1899
+ */
1900
+ get: function () { return this._selected; },
1901
+ enumerable: true,
1902
+ configurable: true
1903
+ });
1904
+ Object.defineProperty(MdOption.prototype, "disabled", {
1905
+ /**
1906
+ * Whether the option is disabled.
1907
+ * @return {?}
1908
+ */
1909
+ get: function () { return (this.group && this.group.disabled) || this._disabled; },
1910
+ /**
1911
+ * @param {?} value
1912
+ * @return {?}
1913
+ */
1914
+ set: function (value) { this._disabled = _angular_cdk_coercion.coerceBooleanProperty(value); },
1915
+ enumerable: true,
1916
+ configurable: true
1917
+ });
1918
+ Object.defineProperty(MdOption.prototype, "disableRipple", {
1919
+ /**
1920
+ * Whether ripples for the option are disabled.
1921
+ * @return {?}
1922
+ */
1923
+ get: function () { return this._disableRipple; },
1924
+ /**
1925
+ * @param {?} value
1926
+ * @return {?}
1927
+ */
1928
+ set: function (value) {
1929
+ this._disableRipple = value;
1930
+ this._changeDetectorRef.markForCheck();
1931
+ },
1932
+ enumerable: true,
1933
+ configurable: true
1934
+ });
1935
+ Object.defineProperty(MdOption.prototype, "active", {
1936
+ /**
1937
+ * Whether or not the option is currently active and ready to be selected.
1938
+ * An active option displays styles as if it is focused, but the
1939
+ * focus is actually retained somewhere else. This comes in handy
1940
+ * for components like autocomplete where focus must remain on the input.
1941
+ * @return {?}
1942
+ */
1943
+ get: function () {
1944
+ return this._active;
1945
+ },
1946
+ enumerable: true,
1947
+ configurable: true
1948
+ });
1949
+ Object.defineProperty(MdOption.prototype, "viewValue", {
1950
+ /**
1951
+ * The displayed value of the option. It is necessary to show the selected option in the
1952
+ * select's trigger.
1953
+ * @return {?}
1954
+ */
1955
+ get: function () {
1956
+ // TODO(kara): Add input property alternative for node envs.
1957
+ return (this._getHostElement().textContent || '').trim();
1958
+ },
1959
+ enumerable: true,
1960
+ configurable: true
1961
+ });
1962
+ /**
1963
+ * Selects the option.
1964
+ * @return {?}
1965
+ */
1966
+ MdOption.prototype.select = function () {
1967
+ this._selected = true;
1968
+ this._changeDetectorRef.markForCheck();
1969
+ this._emitSelectionChangeEvent();
1970
+ };
1971
+ /**
1972
+ * Deselects the option.
1973
+ * @return {?}
1974
+ */
1975
+ MdOption.prototype.deselect = function () {
1976
+ this._selected = false;
1977
+ this._changeDetectorRef.markForCheck();
1978
+ this._emitSelectionChangeEvent();
1979
+ };
1980
+ /**
1981
+ * Sets focus onto this option.
1982
+ * @return {?}
1983
+ */
1984
+ MdOption.prototype.focus = function () {
1985
+ var /** @type {?} */ element = this._getHostElement();
1986
+ if (typeof element.focus === 'function') {
1987
+ element.focus();
1988
+ }
1989
+ };
1990
+ /**
1991
+ * This method sets display styles on the option to make it appear
1992
+ * active. This is used by the ActiveDescendantKeyManager so key
1993
+ * events will display the proper options as active on arrow key events.
1994
+ * @return {?}
1995
+ */
1996
+ MdOption.prototype.setActiveStyles = function () {
1997
+ if (!this._active) {
1998
+ this._active = true;
1999
+ this._changeDetectorRef.markForCheck();
2000
+ }
2001
+ };
2002
+ /**
2003
+ * This method removes display styles on the option that made it appear
2004
+ * active. This is used by the ActiveDescendantKeyManager so key
2005
+ * events will display the proper options as active on arrow key events.
2006
+ * @return {?}
2007
+ */
2008
+ MdOption.prototype.setInactiveStyles = function () {
2009
+ if (this._active) {
2010
+ this._active = false;
2011
+ this._changeDetectorRef.markForCheck();
2012
+ }
2013
+ };
2014
+ /**
2015
+ * Gets the label to be used when determining whether the option should be focused.
2016
+ * @return {?}
2017
+ */
2018
+ MdOption.prototype.getLabel = function () {
2019
+ return this.viewValue;
2020
+ };
2021
+ /**
2022
+ * Ensures the option is selected when activated from the keyboard.
2023
+ * @param {?} event
2024
+ * @return {?}
2025
+ */
2026
+ MdOption.prototype._handleKeydown = function (event) {
2027
+ if (event.keyCode === _angular_cdk_keycodes.ENTER || event.keyCode === _angular_cdk_keycodes.SPACE) {
2028
+ this._selectViaInteraction();
2029
+ // Prevent the page from scrolling down and form submits.
2030
+ event.preventDefault();
2031
+ }
2032
+ };
2033
+ /**
2034
+ * Selects the option while indicating the selection came from the user. Used to
2035
+ * determine if the select's view -> model callback should be invoked.
2036
+ * @return {?}
2037
+ */
2038
+ MdOption.prototype._selectViaInteraction = function () {
2039
+ if (!this.disabled) {
2040
+ this._selected = this.multiple ? !this._selected : true;
2041
+ this._changeDetectorRef.markForCheck();
2042
+ this._emitSelectionChangeEvent(true);
2043
+ }
2044
+ };
2045
+ /**
2046
+ * Returns the correct tabindex for the option depending on disabled state.
2047
+ * @return {?}
2048
+ */
2049
+ MdOption.prototype._getTabIndex = function () {
2050
+ return this.disabled ? '-1' : '0';
2051
+ };
2052
+ /**
2053
+ * Gets the host DOM element.
2054
+ * @return {?}
2055
+ */
2056
+ MdOption.prototype._getHostElement = function () {
2057
+ return this._element.nativeElement;
2058
+ };
2059
+ /**
2060
+ * Emits the selection change event.
2061
+ * @param {?=} isUserInput
2062
+ * @return {?}
2063
+ */
2064
+ MdOption.prototype._emitSelectionChangeEvent = function (isUserInput) {
2065
+ if (isUserInput === void 0) { isUserInput = false; }
2066
+ this.onSelectionChange.emit(new MdOptionSelectionChange(this, isUserInput));
2067
+ };
2068
+ /**
2069
+ * Counts the amount of option group labels that precede the specified option.
2070
+ * @param {?} optionIndex Index of the option at which to start counting.
2071
+ * @param {?} options Flat list of all of the options.
2072
+ * @param {?} optionGroups Flat list of all of the option groups.
2073
+ * @return {?}
2074
+ */
2075
+ MdOption.countGroupLabelsBeforeOption = function (optionIndex, options, optionGroups) {
2076
+ if (optionGroups.length) {
2077
+ var /** @type {?} */ optionsArray = options.toArray();
2078
+ var /** @type {?} */ groups = optionGroups.toArray();
2079
+ var /** @type {?} */ groupCounter = 0;
2080
+ for (var /** @type {?} */ i = 0; i < optionIndex + 1; i++) {
2081
+ if (optionsArray[i].group && optionsArray[i].group === groups[groupCounter]) {
2082
+ groupCounter++;
2083
+ }
2084
+ }
2085
+ return groupCounter;
2086
+ }
2087
+ return 0;
2088
+ };
2089
+ return MdOption;
2090
+ }());
2091
+ MdOption.decorators = [
2092
+ { type: _angular_core.Component, args: [{ selector: 'md-option, mat-option',
2093
+ host: {
2094
+ 'role': 'option',
2095
+ '[attr.tabindex]': '_getTabIndex()',
2096
+ '[class.mat-selected]': 'selected',
2097
+ '[class.mat-option-multiple]': 'multiple',
2098
+ '[class.mat-active]': 'active',
2099
+ '[id]': 'id',
2100
+ '[attr.aria-selected]': 'selected.toString()',
2101
+ '[attr.aria-disabled]': 'disabled.toString()',
2102
+ '[class.mat-option-disabled]': 'disabled',
2103
+ '(click)': '_selectViaInteraction()',
2104
+ '(keydown)': '_handleKeydown($event)',
2105
+ 'class': 'mat-option',
2106
+ },
2107
+ template: "<span *ngIf=\"multiple\"><mat-pseudo-checkbox class=\"mat-option-pseudo-checkbox\" [state]=\"selected ? 'checked' : ''\" [disabled]=\"disabled\"></mat-pseudo-checkbox></span><ng-content></ng-content><div class=\"mat-option-ripple\" mat-ripple [matRippleTrigger]=\"_getHostElement()\" [matRippleDisabled]=\"disabled || disableRipple\"></div>",
2108
+ encapsulation: _angular_core.ViewEncapsulation.None,
2109
+ preserveWhitespaces: false,
2110
+ changeDetection: _angular_core.ChangeDetectionStrategy.OnPush,
2111
+ viewProviders: [{ provide: MATERIAL_COMPATIBILITY_MODE, useValue: true }],
2112
+ },] },
2113
+ ];
2114
+ /**
2115
+ * @nocollapse
2116
+ */
2117
+ MdOption.ctorParameters = function () { return [
2118
+ { type: _angular_core.ElementRef, },
2119
+ { type: _angular_core.ChangeDetectorRef, },
2120
+ { type: MdOptgroup, decorators: [{ type: _angular_core.Optional },] },
2121
+ ]; };
2122
+ MdOption.propDecorators = {
2123
+ 'value': [{ type: _angular_core.Input },],
2124
+ 'disabled': [{ type: _angular_core.Input },],
2125
+ 'onSelectionChange': [{ type: _angular_core.Output },],
2126
+ };
2127
+ var MdOptionModule = (function () {
2128
+ function MdOptionModule() {
2129
+ }
2130
+ return MdOptionModule;
2131
+ }());
2132
+ MdOptionModule.decorators = [
2133
+ { type: _angular_core.NgModule, args: [{
2134
+ imports: [MdRippleModule, _angular_common.CommonModule, MdPseudoCheckboxModule],
2135
+ exports: [MdOption, MdOptgroup],
2136
+ declarations: [MdOption, MdOptgroup]
2137
+ },] },
2138
+ ];
2139
+ /**
2140
+ * @nocollapse
2141
+ */
2142
+ MdOptionModule.ctorParameters = function () { return []; };
2143
+ /**
2144
+ * InjectionToken that can be used to specify the global placeholder options.
2145
+ */
2146
+ var MD_PLACEHOLDER_GLOBAL_OPTIONS = new _angular_core.InjectionToken('md-placeholder-global-options');
2147
+ /**
2148
+ * @deprecated
2149
+ */
2150
+ var StyleModule = (function () {
2151
+ function StyleModule() {
2152
+ }
2153
+ return StyleModule;
2154
+ }());
2155
+ StyleModule.decorators = [
2156
+ { type: _angular_core.NgModule, args: [{
2157
+ imports: [_angular_cdk_a11y.A11yModule],
2158
+ exports: [_angular_cdk_a11y.A11yModule],
2159
+ },] },
2160
+ ];
2161
+ /**
2162
+ * @nocollapse
2163
+ */
2164
+ StyleModule.ctorParameters = function () { return []; };
2165
+
2166
+ /**
2167
+ * Default color palette for round buttons (md-fab and md-mini-fab)
2168
+ */
2169
+ var DEFAULT_ROUND_BUTTON_COLOR = 'accent';
2170
+ /**
2171
+ * Directive whose purpose is to add the mat- CSS styling to this selector.
2172
+ * \@docs-private
2173
+ */
2174
+ var MdButtonCssMatStyler = (function () {
2175
+ function MdButtonCssMatStyler() {
2176
+ }
2177
+ return MdButtonCssMatStyler;
2178
+ }());
2179
+ MdButtonCssMatStyler.decorators = [
2180
+ { type: _angular_core.Directive, args: [{
2181
+ selector: 'button[md-button], button[mat-button], a[md-button], a[mat-button]',
2182
+ host: { 'class': 'mat-button' }
2183
+ },] },
2184
+ ];
2185
+ /**
2186
+ * @nocollapse
2187
+ */
2188
+ MdButtonCssMatStyler.ctorParameters = function () { return []; };
2189
+ /**
2190
+ * Directive whose purpose is to add the mat- CSS styling to this selector.
2191
+ * \@docs-private
2192
+ */
2193
+ var MdRaisedButtonCssMatStyler = (function () {
2194
+ function MdRaisedButtonCssMatStyler() {
2195
+ }
2196
+ return MdRaisedButtonCssMatStyler;
2197
+ }());
2198
+ MdRaisedButtonCssMatStyler.decorators = [
2199
+ { type: _angular_core.Directive, args: [{
2200
+ selector: 'button[md-raised-button], button[mat-raised-button], ' +
2201
+ 'a[md-raised-button], a[mat-raised-button]',
2202
+ host: { 'class': 'mat-raised-button' }
2203
+ },] },
2204
+ ];
2205
+ /**
2206
+ * @nocollapse
2207
+ */
2208
+ MdRaisedButtonCssMatStyler.ctorParameters = function () { return []; };
2209
+ /**
2210
+ * Directive whose purpose is to add the mat- CSS styling to this selector.
2211
+ * \@docs-private
2212
+ */
2213
+ var MdIconButtonCssMatStyler = (function () {
2214
+ function MdIconButtonCssMatStyler() {
2215
+ }
2216
+ return MdIconButtonCssMatStyler;
2217
+ }());
2218
+ MdIconButtonCssMatStyler.decorators = [
2219
+ { type: _angular_core.Directive, args: [{
2220
+ selector: 'button[md-icon-button], button[mat-icon-button], a[md-icon-button], a[mat-icon-button]',
2221
+ host: { 'class': 'mat-icon-button' }
2222
+ },] },
2223
+ ];
2224
+ /**
2225
+ * @nocollapse
2226
+ */
2227
+ MdIconButtonCssMatStyler.ctorParameters = function () { return []; };
2228
+ /**
2229
+ * Directive whose purpose is to add the mat- CSS styling to this selector.
2230
+ * \@docs-private
2231
+ */
2232
+ var MdFab = (function () {
2233
+ /**
2234
+ * @param {?} button
2235
+ * @param {?} anchor
2236
+ */
2237
+ function MdFab(button, anchor) {
2238
+ // Set the default color palette for the md-fab components.
2239
+ (button || anchor).color = DEFAULT_ROUND_BUTTON_COLOR;
2240
+ }
2241
+ return MdFab;
2242
+ }());
2243
+ MdFab.decorators = [
2244
+ { type: _angular_core.Directive, args: [{
2245
+ selector: 'button[md-fab], button[mat-fab], a[md-fab], a[mat-fab]',
2246
+ host: { 'class': 'mat-fab' }
2247
+ },] },
2248
+ ];
2249
+ /**
2250
+ * @nocollapse
2251
+ */
2252
+ MdFab.ctorParameters = function () { return [
2253
+ { type: MdButton, decorators: [{ type: _angular_core.Self }, { type: _angular_core.Optional }, { type: _angular_core.Inject, args: [_angular_core.forwardRef(function () { return MdButton; }),] },] },
2254
+ { type: MdAnchor, decorators: [{ type: _angular_core.Self }, { type: _angular_core.Optional }, { type: _angular_core.Inject, args: [_angular_core.forwardRef(function () { return MdAnchor; }),] },] },
2255
+ ]; };
2256
+ /**
2257
+ * Directive that targets mini-fab buttons and anchors. It's used to apply the `mat-` class
2258
+ * to all mini-fab buttons and also is responsible for setting the default color palette.
2259
+ * \@docs-private
2260
+ */
2261
+ var MdMiniFab = (function () {
2262
+ /**
2263
+ * @param {?} button
2264
+ * @param {?} anchor
2265
+ */
2266
+ function MdMiniFab(button, anchor) {
2267
+ // Set the default color palette for the md-mini-fab components.
2268
+ (button || anchor).color = DEFAULT_ROUND_BUTTON_COLOR;
2269
+ }
2270
+ return MdMiniFab;
2271
+ }());
2272
+ MdMiniFab.decorators = [
2273
+ { type: _angular_core.Directive, args: [{
2274
+ selector: 'button[md-mini-fab], button[mat-mini-fab], a[md-mini-fab], a[mat-mini-fab]',
2275
+ host: { 'class': 'mat-mini-fab' }
2276
+ },] },
2277
+ ];
2278
+ /**
2279
+ * @nocollapse
2280
+ */
2281
+ MdMiniFab.ctorParameters = function () { return [
2282
+ { type: MdButton, decorators: [{ type: _angular_core.Self }, { type: _angular_core.Optional }, { type: _angular_core.Inject, args: [_angular_core.forwardRef(function () { return MdButton; }),] },] },
2283
+ { type: MdAnchor, decorators: [{ type: _angular_core.Self }, { type: _angular_core.Optional }, { type: _angular_core.Inject, args: [_angular_core.forwardRef(function () { return MdAnchor; }),] },] },
2284
+ ]; };
2285
+ /**
2286
+ * \@docs-private
2287
+ */
2288
+ var MdButtonBase = (function () {
2289
+ /**
2290
+ * @param {?} _renderer
2291
+ * @param {?} _elementRef
2292
+ */
2293
+ function MdButtonBase(_renderer, _elementRef) {
2294
+ this._renderer = _renderer;
2295
+ this._elementRef = _elementRef;
2296
+ }
2297
+ return MdButtonBase;
2298
+ }());
2299
+ var _MdButtonMixinBase = mixinColor(mixinDisabled(mixinDisableRipple(MdButtonBase)));
2300
+ /**
2301
+ * Material design button.
2302
+ */
2303
+ var MdButton = (function (_super) {
2304
+ __extends(MdButton, _super);
2305
+ /**
2306
+ * @param {?} renderer
2307
+ * @param {?} elementRef
2308
+ * @param {?} _platform
2309
+ * @param {?} _focusMonitor
2310
+ */
2311
+ function MdButton(renderer, elementRef, _platform, _focusMonitor) {
2312
+ var _this = _super.call(this, renderer, elementRef) || this;
2313
+ _this._platform = _platform;
2314
+ _this._focusMonitor = _focusMonitor;
2315
+ /**
2316
+ * Whether the button is round.
2317
+ */
2318
+ _this._isRoundButton = _this._hasAttributeWithPrefix('fab', 'mini-fab');
2319
+ /**
2320
+ * Whether the button is icon button.
2321
+ */
2322
+ _this._isIconButton = _this._hasAttributeWithPrefix('icon-button');
2323
+ _this._focusMonitor.monitor(_this._elementRef.nativeElement, _this._renderer, true);
2324
+ return _this;
2325
+ }
2326
+ /**
2327
+ * @return {?}
2328
+ */
2329
+ MdButton.prototype.ngOnDestroy = function () {
2330
+ this._focusMonitor.stopMonitoring(this._elementRef.nativeElement);
2331
+ };
2332
+ /**
2333
+ * Focuses the button.
2334
+ * @return {?}
2335
+ */
2336
+ MdButton.prototype.focus = function () {
2337
+ this._getHostElement().focus();
2338
+ };
2339
+ /**
2340
+ * @return {?}
2341
+ */
2342
+ MdButton.prototype._getHostElement = function () {
2343
+ return this._elementRef.nativeElement;
2344
+ };
2345
+ /**
2346
+ * @return {?}
2347
+ */
2348
+ MdButton.prototype._isRippleDisabled = function () {
2349
+ return this.disableRipple || this.disabled;
2350
+ };
2351
+ /**
2352
+ * Gets whether the button has one of the given attributes
2353
+ * with either an 'md-' or 'mat-' prefix.
2354
+ * @param {...?} unprefixedAttributeNames
2355
+ * @return {?}
2356
+ */
2357
+ MdButton.prototype._hasAttributeWithPrefix = function () {
2358
+ var _this = this;
2359
+ var unprefixedAttributeNames = [];
2360
+ for (var _i = 0; _i < arguments.length; _i++) {
2361
+ unprefixedAttributeNames[_i] = arguments[_i];
2362
+ }
2363
+ // If not on the browser, say that there are none of the attributes present.
2364
+ // Since these only affect how the ripple displays (and ripples only happen on the client),
2365
+ // detecting these attributes isn't necessary when not on the browser.
2366
+ if (!this._platform.isBrowser) {
2367
+ return false;
2368
+ }
2369
+ return unprefixedAttributeNames.some(function (suffix) {
2370
+ var /** @type {?} */ el = _this._getHostElement();
2371
+ return el.hasAttribute('md-' + suffix) || el.hasAttribute('mat-' + suffix);
2372
+ });
2373
+ };
2374
+ return MdButton;
2375
+ }(_MdButtonMixinBase));
2376
+ MdButton.decorators = [
2377
+ { type: _angular_core.Component, args: [{ selector: "button[md-button], button[md-raised-button], button[md-icon-button],\n button[md-fab], button[md-mini-fab],\n button[mat-button], button[mat-raised-button], button[mat-icon-button],\n button[mat-fab], button[mat-mini-fab]",
2378
+ host: {
2379
+ '[disabled]': 'disabled || null',
2380
+ },
2381
+ template: "<span class=\"mat-button-wrapper\"><ng-content></ng-content></span><div mat-ripple class=\"mat-button-ripple\" [class.mat-button-ripple-round]=\"_isRoundButton || _isIconButton\" [matRippleDisabled]=\"_isRippleDisabled()\" [matRippleCentered]=\"_isIconButton\" [matRippleTrigger]=\"_getHostElement()\"></div><div class=\"mat-button-focus-overlay\"></div>",
2382
+ styles: [".mat-button,.mat-fab,.mat-icon-button,.mat-mini-fab,.mat-raised-button{box-sizing:border-box;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;outline:0;border:none;-webkit-tap-highlight-color:transparent;display:inline-block;white-space:nowrap;text-decoration:none;vertical-align:baseline;text-align:center;margin:0;min-width:88px;line-height:36px;padding:0 16px;border-radius:2px}[disabled].mat-button,[disabled].mat-fab,[disabled].mat-icon-button,[disabled].mat-mini-fab,[disabled].mat-raised-button{cursor:default}.cdk-keyboard-focused.mat-button .mat-button-focus-overlay,.cdk-keyboard-focused.mat-fab .mat-button-focus-overlay,.cdk-keyboard-focused.mat-icon-button .mat-button-focus-overlay,.cdk-keyboard-focused.mat-mini-fab .mat-button-focus-overlay,.cdk-keyboard-focused.mat-raised-button .mat-button-focus-overlay{opacity:1}.mat-button::-moz-focus-inner,.mat-fab::-moz-focus-inner,.mat-icon-button::-moz-focus-inner,.mat-mini-fab::-moz-focus-inner,.mat-raised-button::-moz-focus-inner{border:0}.mat-fab,.mat-mini-fab,.mat-raised-button{box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12);transform:translate3d(0,0,0);transition:background .4s cubic-bezier(.25,.8,.25,1),box-shadow 280ms cubic-bezier(.4,0,.2,1)}.mat-fab:not([disabled]):active,.mat-mini-fab:not([disabled]):active,.mat-raised-button:not([disabled]):active{box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}[disabled].mat-fab,[disabled].mat-mini-fab,[disabled].mat-raised-button{box-shadow:none}.mat-button .mat-button-focus-overlay,.mat-icon-button .mat-button-focus-overlay{transition:none;opacity:0}.mat-button:hover .mat-button-focus-overlay{opacity:1}.mat-fab{box-shadow:0 3px 5px -1px rgba(0,0,0,.2),0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12);min-width:0;border-radius:50%;width:56px;height:56px;padding:0;flex-shrink:0}.mat-fab:not([disabled]):active{box-shadow:0 7px 8px -4px rgba(0,0,0,.2),0 12px 17px 2px rgba(0,0,0,.14),0 5px 22px 4px rgba(0,0,0,.12)}.mat-fab .mat-button-wrapper{padding:16px 0;display:inline-block;line-height:24px}.mat-mini-fab{box-shadow:0 3px 5px -1px rgba(0,0,0,.2),0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12);min-width:0;border-radius:50%;width:40px;height:40px;padding:0;flex-shrink:0}.mat-mini-fab:not([disabled]):active{box-shadow:0 7px 8px -4px rgba(0,0,0,.2),0 12px 17px 2px rgba(0,0,0,.14),0 5px 22px 4px rgba(0,0,0,.12)}.mat-mini-fab .mat-button-wrapper{padding:8px 0;display:inline-block;line-height:24px}.mat-icon-button{padding:0;min-width:0;width:40px;height:40px;flex-shrink:0;line-height:40px;border-radius:50%}.mat-icon-button .mat-icon,.mat-icon-button i{line-height:24px}.mat-button,.mat-icon-button,.mat-raised-button{color:currentColor}.mat-button .mat-button-wrapper>*,.mat-icon-button .mat-button-wrapper>*,.mat-raised-button .mat-button-wrapper>*{vertical-align:middle}.mat-button-focus-overlay,.mat-button-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-button-focus-overlay{background-color:rgba(0,0,0,.12);border-radius:inherit;opacity:0;transition:opacity .2s cubic-bezier(.35,0,.25,1),background-color .2s cubic-bezier(.35,0,.25,1)}@media screen and (-ms-high-contrast:active){.mat-button-focus-overlay{background-color:rgba(255,255,255,.5)}}.mat-button-ripple-round{border-radius:50%;z-index:1}@media screen and (-ms-high-contrast:active){.mat-button,.mat-fab,.mat-icon-button,.mat-mini-fab,.mat-raised-button{outline:solid 1px}}"],
2383
+ inputs: ['disabled', 'disableRipple', 'color'],
2384
+ encapsulation: _angular_core.ViewEncapsulation.None,
2385
+ preserveWhitespaces: false,
2386
+ changeDetection: _angular_core.ChangeDetectionStrategy.OnPush,
2387
+ viewProviders: [{ provide: MATERIAL_COMPATIBILITY_MODE, useValue: true }],
2388
+ },] },
2389
+ ];
2390
+ /**
2391
+ * @nocollapse
2392
+ */
2393
+ MdButton.ctorParameters = function () { return [
2394
+ { type: _angular_core.Renderer2, },
2395
+ { type: _angular_core.ElementRef, },
2396
+ { type: _angular_cdk_platform.Platform, },
2397
+ { type: _angular_cdk_a11y.FocusMonitor, },
2398
+ ]; };
2399
+ /**
2400
+ * Raised Material design button.
2401
+ */
2402
+ var MdAnchor = (function (_super) {
2403
+ __extends(MdAnchor, _super);
2404
+ /**
2405
+ * @param {?} platform
2406
+ * @param {?} focusMonitor
2407
+ * @param {?} elementRef
2408
+ * @param {?} renderer
2409
+ */
2410
+ function MdAnchor(platform, focusMonitor, elementRef, renderer) {
2411
+ return _super.call(this, renderer, elementRef, platform, focusMonitor) || this;
2412
+ }
2413
+ /**
2414
+ * @param {?} event
2415
+ * @return {?}
2416
+ */
2417
+ MdAnchor.prototype._haltDisabledEvents = function (event) {
2418
+ // A disabled button shouldn't apply any actions
2419
+ if (this.disabled) {
2420
+ event.preventDefault();
2421
+ event.stopImmediatePropagation();
2422
+ }
2423
+ };
2424
+ return MdAnchor;
2425
+ }(MdButton));
2426
+ MdAnchor.decorators = [
2427
+ { type: _angular_core.Component, args: [{ selector: "a[md-button], a[md-raised-button], a[md-icon-button], a[md-fab], a[md-mini-fab],\n a[mat-button], a[mat-raised-button], a[mat-icon-button], a[mat-fab], a[mat-mini-fab]",
2428
+ host: {
2429
+ '[attr.tabindex]': 'disabled ? -1 : 0',
2430
+ '[attr.disabled]': 'disabled || null',
2431
+ '[attr.aria-disabled]': 'disabled.toString()',
2432
+ '(click)': '_haltDisabledEvents($event)',
2433
+ },
2434
+ inputs: ['disabled', 'disableRipple', 'color'],
2435
+ template: "<span class=\"mat-button-wrapper\"><ng-content></ng-content></span><div mat-ripple class=\"mat-button-ripple\" [class.mat-button-ripple-round]=\"_isRoundButton || _isIconButton\" [matRippleDisabled]=\"_isRippleDisabled()\" [matRippleCentered]=\"_isIconButton\" [matRippleTrigger]=\"_getHostElement()\"></div><div class=\"mat-button-focus-overlay\"></div>",
2436
+ styles: [".mat-button,.mat-fab,.mat-icon-button,.mat-mini-fab,.mat-raised-button{box-sizing:border-box;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;outline:0;border:none;-webkit-tap-highlight-color:transparent;display:inline-block;white-space:nowrap;text-decoration:none;vertical-align:baseline;text-align:center;margin:0;min-width:88px;line-height:36px;padding:0 16px;border-radius:2px}[disabled].mat-button,[disabled].mat-fab,[disabled].mat-icon-button,[disabled].mat-mini-fab,[disabled].mat-raised-button{cursor:default}.cdk-keyboard-focused.mat-button .mat-button-focus-overlay,.cdk-keyboard-focused.mat-fab .mat-button-focus-overlay,.cdk-keyboard-focused.mat-icon-button .mat-button-focus-overlay,.cdk-keyboard-focused.mat-mini-fab .mat-button-focus-overlay,.cdk-keyboard-focused.mat-raised-button .mat-button-focus-overlay{opacity:1}.mat-button::-moz-focus-inner,.mat-fab::-moz-focus-inner,.mat-icon-button::-moz-focus-inner,.mat-mini-fab::-moz-focus-inner,.mat-raised-button::-moz-focus-inner{border:0}.mat-fab,.mat-mini-fab,.mat-raised-button{box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12);transform:translate3d(0,0,0);transition:background .4s cubic-bezier(.25,.8,.25,1),box-shadow 280ms cubic-bezier(.4,0,.2,1)}.mat-fab:not([disabled]):active,.mat-mini-fab:not([disabled]):active,.mat-raised-button:not([disabled]):active{box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}[disabled].mat-fab,[disabled].mat-mini-fab,[disabled].mat-raised-button{box-shadow:none}.mat-button .mat-button-focus-overlay,.mat-icon-button .mat-button-focus-overlay{transition:none;opacity:0}.mat-button:hover .mat-button-focus-overlay{opacity:1}.mat-fab{box-shadow:0 3px 5px -1px rgba(0,0,0,.2),0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12);min-width:0;border-radius:50%;width:56px;height:56px;padding:0;flex-shrink:0}.mat-fab:not([disabled]):active{box-shadow:0 7px 8px -4px rgba(0,0,0,.2),0 12px 17px 2px rgba(0,0,0,.14),0 5px 22px 4px rgba(0,0,0,.12)}.mat-fab .mat-button-wrapper{padding:16px 0;display:inline-block;line-height:24px}.mat-mini-fab{box-shadow:0 3px 5px -1px rgba(0,0,0,.2),0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12);min-width:0;border-radius:50%;width:40px;height:40px;padding:0;flex-shrink:0}.mat-mini-fab:not([disabled]):active{box-shadow:0 7px 8px -4px rgba(0,0,0,.2),0 12px 17px 2px rgba(0,0,0,.14),0 5px 22px 4px rgba(0,0,0,.12)}.mat-mini-fab .mat-button-wrapper{padding:8px 0;display:inline-block;line-height:24px}.mat-icon-button{padding:0;min-width:0;width:40px;height:40px;flex-shrink:0;line-height:40px;border-radius:50%}.mat-icon-button .mat-icon,.mat-icon-button i{line-height:24px}.mat-button,.mat-icon-button,.mat-raised-button{color:currentColor}.mat-button .mat-button-wrapper>*,.mat-icon-button .mat-button-wrapper>*,.mat-raised-button .mat-button-wrapper>*{vertical-align:middle}.mat-button-focus-overlay,.mat-button-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-button-focus-overlay{background-color:rgba(0,0,0,.12);border-radius:inherit;opacity:0;transition:opacity .2s cubic-bezier(.35,0,.25,1),background-color .2s cubic-bezier(.35,0,.25,1)}@media screen and (-ms-high-contrast:active){.mat-button-focus-overlay{background-color:rgba(255,255,255,.5)}}.mat-button-ripple-round{border-radius:50%;z-index:1}@media screen and (-ms-high-contrast:active){.mat-button,.mat-fab,.mat-icon-button,.mat-mini-fab,.mat-raised-button{outline:solid 1px}}"],
2437
+ encapsulation: _angular_core.ViewEncapsulation.None,
2438
+ preserveWhitespaces: false,
2439
+ changeDetection: _angular_core.ChangeDetectionStrategy.OnPush,
2440
+ },] },
2441
+ ];
2442
+ /**
2443
+ * @nocollapse
2444
+ */
2445
+ MdAnchor.ctorParameters = function () { return [
2446
+ { type: _angular_cdk_platform.Platform, },
2447
+ { type: _angular_cdk_a11y.FocusMonitor, },
2448
+ { type: _angular_core.ElementRef, },
2449
+ { type: _angular_core.Renderer2, },
2450
+ ]; };
2451
+ var MdButtonModule = (function () {
2452
+ function MdButtonModule() {
2453
+ }
2454
+ return MdButtonModule;
2455
+ }());
2456
+ MdButtonModule.decorators = [
2457
+ { type: _angular_core.NgModule, args: [{
2458
+ imports: [
2459
+ _angular_common.CommonModule,
2460
+ MdRippleModule,
2461
+ MdCommonModule,
2462
+ _angular_cdk_a11y.A11yModule,
2463
+ ],
2464
+ exports: [
2465
+ MdButton,
2466
+ MdAnchor,
2467
+ MdMiniFab,
2468
+ MdFab,
2469
+ MdCommonModule,
2470
+ MdButtonCssMatStyler,
2471
+ MdRaisedButtonCssMatStyler,
2472
+ MdIconButtonCssMatStyler,
2473
+ ],
2474
+ declarations: [
2475
+ MdButton,
2476
+ MdAnchor,
2477
+ MdMiniFab,
2478
+ MdFab,
2479
+ MdButtonCssMatStyler,
2480
+ MdRaisedButtonCssMatStyler,
2481
+ MdIconButtonCssMatStyler,
2482
+ ],
2483
+ },] },
2484
+ ];
2485
+ /**
2486
+ * @nocollapse
2487
+ */
2488
+ MdButtonModule.ctorParameters = function () { return []; };
2489
+
2490
+ /**
2491
+ * Returns an exception to be thrown in the case when attempting to
2492
+ * load an icon with a name that cannot be found.
2493
+ * \@docs-private
2494
+ * @param {?} iconName
2495
+ * @return {?}
2496
+ */
2497
+ function getMdIconNameNotFoundError(iconName) {
2498
+ return Error("Unable to find icon with the name \"" + iconName + "\"");
2499
+ }
2500
+ /**
2501
+ * Returns an exception to be thrown when the consumer attempts to use
2502
+ * `<md-icon>` without including \@angular/http.
2503
+ * \@docs-private
2504
+ * @return {?}
2505
+ */
2506
+ function getMdIconNoHttpProviderError() {
2507
+ return Error('Could not find Http provider for use with Angular Material icons. ' +
2508
+ 'Please include the HttpModule from @angular/http in your app imports.');
2509
+ }
2510
+ /**
2511
+ * Returns an exception to be thrown when a URL couldn't be sanitized.
2512
+ * \@docs-private
2513
+ * @param {?} url URL that was attempted to be sanitized.
2514
+ * @return {?}
2515
+ */
2516
+ function getMdIconFailedToSanitizeError(url) {
2517
+ return Error("The URL provided to MdIconRegistry was not trusted as a resource URL " +
2518
+ ("via Angular's DomSanitizer. Attempted URL was \"" + url + "\"."));
2519
+ }
2520
+ /**
2521
+ * Configuration for an icon, including the URL and possibly the cached SVG element.
2522
+ * \@docs-private
2523
+ */
2524
+ var SvgIconConfig = (function () {
2525
+ /**
2526
+ * @param {?} url
2527
+ */
2528
+ function SvgIconConfig(url) {
2529
+ this.url = url;
2530
+ this.svgElement = null;
2531
+ }
2532
+ return SvgIconConfig;
2533
+ }());
2534
+ /**
2535
+ * Service to register and display icons used by the <md-icon> component.
2536
+ * - Registers icon URLs by namespace and name.
2537
+ * - Registers icon set URLs by namespace.
2538
+ * - Registers aliases for CSS classes, for use with icon fonts.
2539
+ * - Loads icons from URLs and extracts individual icons from icon sets.
2540
+ */
2541
+ var MdIconRegistry = (function () {
2542
+ /**
2543
+ * @param {?} _http
2544
+ * @param {?} _sanitizer
2545
+ */
2546
+ function MdIconRegistry(_http, _sanitizer) {
2547
+ this._http = _http;
2548
+ this._sanitizer = _sanitizer;
2549
+ /**
2550
+ * URLs and cached SVG elements for individual icons. Keys are of the format "[namespace]:[icon]".
2551
+ */
2552
+ this._svgIconConfigs = new Map();
2553
+ /**
2554
+ * SvgIconConfig objects and cached SVG elements for icon sets, keyed by namespace.
2555
+ * Multiple icon sets can be registered under the same namespace.
2556
+ */
2557
+ this._iconSetConfigs = new Map();
2558
+ /**
2559
+ * Cache for icons loaded by direct URLs.
2560
+ */
2561
+ this._cachedIconsByUrl = new Map();
2562
+ /**
2563
+ * In-progress icon fetches. Used to coalesce multiple requests to the same URL.
2564
+ */
2565
+ this._inProgressUrlFetches = new Map();
2566
+ /**
2567
+ * Map from font identifiers to their CSS class names. Used for icon fonts.
2568
+ */
2569
+ this._fontCssClassesByAlias = new Map();
2570
+ /**
2571
+ * The CSS class to apply when an <md-icon> component has no icon name, url, or font specified.
2572
+ * The default 'material-icons' value assumes that the material icon font has been loaded as
2573
+ * described at http://google.github.io/material-design-icons/#icon-font-for-the-web
2574
+ */
2575
+ this._defaultFontSetClass = 'material-icons';
2576
+ }
2577
+ /**
2578
+ * Registers an icon by URL in the default namespace.
2579
+ * @param {?} iconName Name under which the icon should be registered.
2580
+ * @param {?} url
2581
+ * @return {?}
2582
+ */
2583
+ MdIconRegistry.prototype.addSvgIcon = function (iconName, url) {
2584
+ return this.addSvgIconInNamespace('', iconName, url);
2585
+ };
2586
+ /**
2587
+ * Registers an icon by URL in the specified namespace.
2588
+ * @param {?} namespace Namespace in which the icon should be registered.
2589
+ * @param {?} iconName Name under which the icon should be registered.
2590
+ * @param {?} url
2591
+ * @return {?}
2592
+ */
2593
+ MdIconRegistry.prototype.addSvgIconInNamespace = function (namespace, iconName, url) {
2594
+ var /** @type {?} */ key = iconKey(namespace, iconName);
2595
+ this._svgIconConfigs.set(key, new SvgIconConfig(url));
2596
+ return this;
2597
+ };
2598
+ /**
2599
+ * Registers an icon set by URL in the default namespace.
2600
+ * @param {?} url
2601
+ * @return {?}
2602
+ */
2603
+ MdIconRegistry.prototype.addSvgIconSet = function (url) {
2604
+ return this.addSvgIconSetInNamespace('', url);
2605
+ };
2606
+ /**
2607
+ * Registers an icon set by URL in the specified namespace.
2608
+ * @param {?} namespace Namespace in which to register the icon set.
2609
+ * @param {?} url
2610
+ * @return {?}
2611
+ */
2612
+ MdIconRegistry.prototype.addSvgIconSetInNamespace = function (namespace, url) {
2613
+ var /** @type {?} */ config = new SvgIconConfig(url);
2614
+ var /** @type {?} */ configNamespace = this._iconSetConfigs.get(namespace);
2615
+ if (configNamespace) {
2616
+ configNamespace.push(config);
2617
+ }
2618
+ else {
2619
+ this._iconSetConfigs.set(namespace, [config]);
2620
+ }
2621
+ return this;
2622
+ };
2623
+ /**
2624
+ * Defines an alias for a CSS class name to be used for icon fonts. Creating an mdIcon
2625
+ * component with the alias as the fontSet input will cause the class name to be applied
2626
+ * to the <md-icon> element.
2627
+ *
2628
+ * @param {?} alias Alias for the font.
2629
+ * @param {?=} className Class name override to be used instead of the alias.
2630
+ * @return {?}
2631
+ */
2632
+ MdIconRegistry.prototype.registerFontClassAlias = function (alias, className) {
2633
+ if (className === void 0) { className = alias; }
2634
+ this._fontCssClassesByAlias.set(alias, className);
2635
+ return this;
2636
+ };
2637
+ /**
2638
+ * Returns the CSS class name associated with the alias by a previous call to
2639
+ * registerFontClassAlias. If no CSS class has been associated, returns the alias unmodified.
2640
+ * @param {?} alias
2641
+ * @return {?}
2642
+ */
2643
+ MdIconRegistry.prototype.classNameForFontAlias = function (alias) {
2644
+ return this._fontCssClassesByAlias.get(alias) || alias;
2645
+ };
2646
+ /**
2647
+ * Sets the CSS class name to be used for icon fonts when an <md-icon> component does not
2648
+ * have a fontSet input value, and is not loading an icon by name or URL.
2649
+ *
2650
+ * @param {?} className
2651
+ * @return {?}
2652
+ */
2653
+ MdIconRegistry.prototype.setDefaultFontSetClass = function (className) {
2654
+ this._defaultFontSetClass = className;
2655
+ return this;
2656
+ };
2657
+ /**
2658
+ * Returns the CSS class name to be used for icon fonts when an <md-icon> component does not
2659
+ * have a fontSet input value, and is not loading an icon by name or URL.
2660
+ * @return {?}
2661
+ */
2662
+ MdIconRegistry.prototype.getDefaultFontSetClass = function () {
2663
+ return this._defaultFontSetClass;
2664
+ };
2665
+ /**
2666
+ * Returns an Observable that produces the icon (as an <svg> DOM element) from the given URL.
2667
+ * The response from the URL may be cached so this will not always cause an HTTP request, but
2668
+ * the produced element will always be a new copy of the originally fetched icon. (That is,
2669
+ * it will not contain any modifications made to elements previously returned).
2670
+ *
2671
+ * @param {?} safeUrl URL from which to fetch the SVG icon.
2672
+ * @return {?}
2673
+ */
2674
+ MdIconRegistry.prototype.getSvgIconFromUrl = function (safeUrl) {
2675
+ var _this = this;
2676
+ var /** @type {?} */ url = this._sanitizer.sanitize(_angular_core.SecurityContext.RESOURCE_URL, safeUrl);
2677
+ if (!url) {
2678
+ throw getMdIconFailedToSanitizeError(safeUrl);
2679
+ }
2680
+ var /** @type {?} */ cachedIcon = this._cachedIconsByUrl.get(url);
2681
+ if (cachedIcon) {
2682
+ return rxjs_observable_of.of(cloneSvg(cachedIcon));
2683
+ }
2684
+ return _angular_cdk_rxjs.RxChain.from(this._loadSvgIconFromConfig(new SvgIconConfig(url)))
2685
+ .call(_angular_cdk_rxjs.doOperator, function (svg) { return _this._cachedIconsByUrl.set(/** @type {?} */ ((url)), svg); })
2686
+ .call(_angular_cdk_rxjs.map, function (svg) { return cloneSvg(svg); })
2687
+ .result();
2688
+ };
2689
+ /**
2690
+ * Returns an Observable that produces the icon (as an <svg> DOM element) with the given name
2691
+ * and namespace. The icon must have been previously registered with addIcon or addIconSet;
2692
+ * if not, the Observable will throw an error.
2693
+ *
2694
+ * @param {?} name Name of the icon to be retrieved.
2695
+ * @param {?=} namespace Namespace in which to look for the icon.
2696
+ * @return {?}
2697
+ */
2698
+ MdIconRegistry.prototype.getNamedSvgIcon = function (name, namespace) {
2699
+ if (namespace === void 0) { namespace = ''; }
2700
+ // Return (copy of) cached icon if possible.
2701
+ var /** @type {?} */ key = iconKey(namespace, name);
2702
+ var /** @type {?} */ config = this._svgIconConfigs.get(key);
2703
+ if (config) {
2704
+ return this._getSvgFromConfig(config);
2705
+ }
2706
+ // See if we have any icon sets registered for the namespace.
2707
+ var /** @type {?} */ iconSetConfigs = this._iconSetConfigs.get(namespace);
2708
+ if (iconSetConfigs) {
2709
+ return this._getSvgFromIconSetConfigs(name, iconSetConfigs);
2710
+ }
2711
+ return rxjs_observable_throw._throw(getMdIconNameNotFoundError(key));
2712
+ };
2713
+ /**
2714
+ * Returns the cached icon for a SvgIconConfig if available, or fetches it from its URL if not.
2715
+ * @param {?} config
2716
+ * @return {?}
2717
+ */
2718
+ MdIconRegistry.prototype._getSvgFromConfig = function (config) {
2719
+ if (config.svgElement) {
2720
+ // We already have the SVG element for this icon, return a copy.
2721
+ return rxjs_observable_of.of(cloneSvg(config.svgElement));
2722
+ }
2723
+ else {
2724
+ // Fetch the icon from the config's URL, cache it, and return a copy.
2725
+ return _angular_cdk_rxjs.RxChain.from(this._loadSvgIconFromConfig(config))
2726
+ .call(_angular_cdk_rxjs.doOperator, function (svg) { return config.svgElement = svg; })
2727
+ .call(_angular_cdk_rxjs.map, function (svg) { return cloneSvg(svg); })
2728
+ .result();
2729
+ }
2730
+ };
2731
+ /**
2732
+ * Attempts to find an icon with the specified name in any of the SVG icon sets.
2733
+ * First searches the available cached icons for a nested element with a matching name, and
2734
+ * if found copies the element to a new <svg> element. If not found, fetches all icon sets
2735
+ * that have not been cached, and searches again after all fetches are completed.
2736
+ * The returned Observable produces the SVG element if possible, and throws
2737
+ * an error if no icon with the specified name can be found.
2738
+ * @param {?} name
2739
+ * @param {?} iconSetConfigs
2740
+ * @return {?}
2741
+ */
2742
+ MdIconRegistry.prototype._getSvgFromIconSetConfigs = function (name, iconSetConfigs) {
2743
+ var _this = this;
2744
+ // For all the icon set SVG elements we've fetched, see if any contain an icon with the
2745
+ // requested name.
2746
+ var /** @type {?} */ namedIcon = this._extractIconWithNameFromAnySet(name, iconSetConfigs);
2747
+ if (namedIcon) {
2748
+ // We could cache namedIcon in _svgIconConfigs, but since we have to make a copy every
2749
+ // time anyway, there's probably not much advantage compared to just always extracting
2750
+ // it from the icon set.
2751
+ return rxjs_observable_of.of(namedIcon);
2752
+ }
2753
+ // Not found in any cached icon sets. If there are icon sets with URLs that we haven't
2754
+ // fetched, fetch them now and look for iconName in the results.
2755
+ var /** @type {?} */ iconSetFetchRequests = iconSetConfigs
2756
+ .filter(function (iconSetConfig) { return !iconSetConfig.svgElement; })
2757
+ .map(function (iconSetConfig) {
2758
+ return _angular_cdk_rxjs.RxChain.from(_this._loadSvgIconSetFromConfig(iconSetConfig))
2759
+ .call(_angular_cdk_rxjs.catchOperator, function (err) {
2760
+ var /** @type {?} */ url = _this._sanitizer.sanitize(_angular_core.SecurityContext.RESOURCE_URL, iconSetConfig.url);
2761
+ // Swallow errors fetching individual URLs so the combined Observable won't
2762
+ // necessarily fail.
2763
+ console.log("Loading icon set URL: " + url + " failed: " + err);
2764
+ return rxjs_observable_of.of(null);
2765
+ })
2766
+ .call(_angular_cdk_rxjs.doOperator, function (svg) {
2767
+ // Cache the SVG element.
2768
+ if (svg) {
2769
+ iconSetConfig.svgElement = svg;
2770
+ }
2771
+ })
2772
+ .result();
2773
+ });
2774
+ // Fetch all the icon set URLs. When the requests complete, every IconSet should have a
2775
+ // cached SVG element (unless the request failed), and we can check again for the icon.
2776
+ return _angular_cdk_rxjs.map.call(rxjs_observable_forkJoin.forkJoin.call(rxjs_Observable.Observable, iconSetFetchRequests), function () {
2777
+ var /** @type {?} */ foundIcon = _this._extractIconWithNameFromAnySet(name, iconSetConfigs);
2778
+ if (!foundIcon) {
2779
+ throw getMdIconNameNotFoundError(name);
2780
+ }
2781
+ return foundIcon;
2782
+ });
2783
+ };
2784
+ /**
2785
+ * Searches the cached SVG elements for the given icon sets for a nested icon element whose "id"
2786
+ * tag matches the specified name. If found, copies the nested element to a new SVG element and
2787
+ * returns it. Returns null if no matching element is found.
2788
+ * @param {?} iconName
2789
+ * @param {?} iconSetConfigs
2790
+ * @return {?}
2791
+ */
2792
+ MdIconRegistry.prototype._extractIconWithNameFromAnySet = function (iconName, iconSetConfigs) {
2793
+ // Iterate backwards, so icon sets added later have precedence.
2794
+ for (var /** @type {?} */ i = iconSetConfigs.length - 1; i >= 0; i--) {
2795
+ var /** @type {?} */ config = iconSetConfigs[i];
2796
+ if (config.svgElement) {
2797
+ var /** @type {?} */ foundIcon = this._extractSvgIconFromSet(config.svgElement, iconName);
2798
+ if (foundIcon) {
2799
+ return foundIcon;
2800
+ }
2801
+ }
2802
+ }
2803
+ return null;
2804
+ };
2805
+ /**
2806
+ * Loads the content of the icon URL specified in the SvgIconConfig and creates an SVG element
2807
+ * from it.
2808
+ * @param {?} config
2809
+ * @return {?}
2810
+ */
2811
+ MdIconRegistry.prototype._loadSvgIconFromConfig = function (config) {
2812
+ var _this = this;
2813
+ return _angular_cdk_rxjs.map.call(this._fetchUrl(config.url), function (svgText) { return _this._createSvgElementForSingleIcon(svgText); });
2814
+ };
2815
+ /**
2816
+ * Loads the content of the icon set URL specified in the SvgIconConfig and creates an SVG element
2817
+ * from it.
2818
+ * @param {?} config
2819
+ * @return {?}
2820
+ */
2821
+ MdIconRegistry.prototype._loadSvgIconSetFromConfig = function (config) {
2822
+ var _this = this;
2823
+ // TODO: Document that icons should only be loaded from trusted sources.
2824
+ return _angular_cdk_rxjs.map.call(this._fetchUrl(config.url), function (svgText) { return _this._svgElementFromString(svgText); });
2825
+ };
2826
+ /**
2827
+ * Creates a DOM element from the given SVG string, and adds default attributes.
2828
+ * @param {?} responseText
2829
+ * @return {?}
2830
+ */
2831
+ MdIconRegistry.prototype._createSvgElementForSingleIcon = function (responseText) {
2832
+ var /** @type {?} */ svg = this._svgElementFromString(responseText);
2833
+ this._setSvgAttributes(svg);
2834
+ return svg;
2835
+ };
2836
+ /**
2837
+ * Searches the cached element of the given SvgIconConfig for a nested icon element whose "id"
2838
+ * tag matches the specified name. If found, copies the nested element to a new SVG element and
2839
+ * returns it. Returns null if no matching element is found.
2840
+ * @param {?} iconSet
2841
+ * @param {?} iconName
2842
+ * @return {?}
2843
+ */
2844
+ MdIconRegistry.prototype._extractSvgIconFromSet = function (iconSet, iconName) {
2845
+ var /** @type {?} */ iconNode = iconSet.querySelector('#' + iconName);
2846
+ if (!iconNode) {
2847
+ return null;
2848
+ }
2849
+ // If the icon node is itself an <svg> node, clone and return it directly. If not, set it as
2850
+ // the content of a new <svg> node.
2851
+ if (iconNode.tagName.toLowerCase() === 'svg') {
2852
+ return this._setSvgAttributes(/** @type {?} */ (iconNode.cloneNode(true)));
2853
+ }
2854
+ // If the node is a <symbol>, it won't be rendered so we have to convert it into <svg>. Note
2855
+ // that the same could be achieved by referring to it via <use href="#id">, however the <use>
2856
+ // tag is problematic on Firefox, because it needs to include the current page path.
2857
+ if (iconNode.nodeName.toLowerCase() === 'symbol') {
2858
+ return this._setSvgAttributes(this._toSvgElement(iconNode));
2859
+ }
2860
+ // createElement('SVG') doesn't work as expected; the DOM ends up with
2861
+ // the correct nodes, but the SVG content doesn't render. Instead we
2862
+ // have to create an empty SVG node using innerHTML and append its content.
2863
+ // Elements created using DOMParser.parseFromString have the same problem.
2864
+ // http://stackoverflow.com/questions/23003278/svg-innerhtml-in-firefox-can-not-display
2865
+ var /** @type {?} */ svg = this._svgElementFromString('<svg></svg>');
2866
+ // Clone the node so we don't remove it from the parent icon set element.
2867
+ svg.appendChild(iconNode.cloneNode(true));
2868
+ return this._setSvgAttributes(svg);
2869
+ };
2870
+ /**
2871
+ * Creates a DOM element from the given SVG string.
2872
+ * @param {?} str
2873
+ * @return {?}
2874
+ */
2875
+ MdIconRegistry.prototype._svgElementFromString = function (str) {
2876
+ // TODO: Is there a better way than innerHTML? Renderer doesn't appear to have a method for
2877
+ // creating an element from an HTML string.
2878
+ var /** @type {?} */ div = document.createElement('DIV');
2879
+ div.innerHTML = str;
2880
+ var /** @type {?} */ svg = (div.querySelector('svg'));
2881
+ if (!svg) {
2882
+ throw Error('<svg> tag not found');
2883
+ }
2884
+ return svg;
2885
+ };
2886
+ /**
2887
+ * Converts an element into an SVG node by cloning all of its children.
2888
+ * @param {?} element
2889
+ * @return {?}
2890
+ */
2891
+ MdIconRegistry.prototype._toSvgElement = function (element) {
2892
+ var /** @type {?} */ svg = this._svgElementFromString('<svg></svg>');
2893
+ for (var /** @type {?} */ i = 0; i < element.childNodes.length; i++) {
2894
+ if (element.childNodes[i].nodeType === Node.ELEMENT_NODE) {
2895
+ svg.appendChild(element.childNodes[i].cloneNode(true));
2896
+ }
2897
+ }
2898
+ return svg;
2899
+ };
2900
+ /**
2901
+ * Sets the default attributes for an SVG element to be used as an icon.
2902
+ * @param {?} svg
2903
+ * @return {?}
2904
+ */
2905
+ MdIconRegistry.prototype._setSvgAttributes = function (svg) {
2906
+ if (!svg.getAttribute('xmlns')) {
2907
+ svg.setAttribute('xmlns', 'http://www.w3.org/2000/svg');
2908
+ }
2909
+ svg.setAttribute('fit', '');
2910
+ svg.setAttribute('height', '100%');
2911
+ svg.setAttribute('width', '100%');
2912
+ svg.setAttribute('preserveAspectRatio', 'xMidYMid meet');
2913
+ svg.setAttribute('focusable', 'false'); // Disable IE11 default behavior to make SVGs focusable.
2914
+ return svg;
2915
+ };
2916
+ /**
2917
+ * Returns an Observable which produces the string contents of the given URL. Results may be
2918
+ * cached, so future calls with the same URL may not cause another HTTP request.
2919
+ * @param {?} safeUrl
2920
+ * @return {?}
2921
+ */
2922
+ MdIconRegistry.prototype._fetchUrl = function (safeUrl) {
2923
+ var _this = this;
2924
+ if (!this._http) {
2925
+ throw getMdIconNoHttpProviderError();
2926
+ }
2927
+ var /** @type {?} */ url = this._sanitizer.sanitize(_angular_core.SecurityContext.RESOURCE_URL, safeUrl);
2928
+ if (!url) {
2929
+ throw getMdIconFailedToSanitizeError(safeUrl);
2930
+ }
2931
+ // Store in-progress fetches to avoid sending a duplicate request for a URL when there is
2932
+ // already a request in progress for that URL. It's necessary to call share() on the
2933
+ // Observable returned by http.get() so that multiple subscribers don't cause multiple XHRs.
2934
+ var /** @type {?} */ inProgressFetch = this._inProgressUrlFetches.get(url);
2935
+ if (inProgressFetch) {
2936
+ return inProgressFetch;
2937
+ }
2938
+ // TODO(jelbourn): for some reason, the `finally` operator "loses" the generic type on the
2939
+ // Observable. Figure out why and fix it.
2940
+ var /** @type {?} */ req = _angular_cdk_rxjs.RxChain.from(this._http.get(url))
2941
+ .call(_angular_cdk_rxjs.map, function (response) { return response.text(); })
2942
+ .call(_angular_cdk_rxjs.finallyOperator, function () { return _this._inProgressUrlFetches.delete(url); })
2943
+ .call(_angular_cdk_rxjs.share)
2944
+ .result();
2945
+ this._inProgressUrlFetches.set(url, req);
2946
+ return req;
2947
+ };
2948
+ return MdIconRegistry;
2949
+ }());
2950
+ MdIconRegistry.decorators = [
2951
+ { type: _angular_core.Injectable },
2952
+ ];
2953
+ /**
2954
+ * @nocollapse
2955
+ */
2956
+ MdIconRegistry.ctorParameters = function () { return [
2957
+ { type: _angular_http.Http, decorators: [{ type: _angular_core.Optional },] },
2958
+ { type: _angular_platformBrowser.DomSanitizer, },
2959
+ ]; };
2960
+ /**
2961
+ * \@docs-private
2962
+ * @param {?} parentRegistry
2963
+ * @param {?} http
2964
+ * @param {?} sanitizer
2965
+ * @return {?}
2966
+ */
2967
+ function ICON_REGISTRY_PROVIDER_FACTORY(parentRegistry, http, sanitizer) {
2968
+ return parentRegistry || new MdIconRegistry(http, sanitizer);
2969
+ }
2970
+ /**
2971
+ * \@docs-private
2972
+ */
2973
+ var ICON_REGISTRY_PROVIDER = {
2974
+ // If there is already an MdIconRegistry available, use that. Otherwise, provide a new one.
2975
+ provide: MdIconRegistry,
2976
+ deps: [[new _angular_core.Optional(), new _angular_core.SkipSelf(), MdIconRegistry], [new _angular_core.Optional(), _angular_http.Http], _angular_platformBrowser.DomSanitizer],
2977
+ useFactory: ICON_REGISTRY_PROVIDER_FACTORY
2978
+ };
2979
+ /**
2980
+ * Clones an SVGElement while preserving type information.
2981
+ * @param {?} svg
2982
+ * @return {?}
2983
+ */
2984
+ function cloneSvg(svg) {
2985
+ return (svg.cloneNode(true));
2986
+ }
2987
+ /**
2988
+ * Returns the cache key to use for an icon namespace and name.
2989
+ * @param {?} namespace
2990
+ * @param {?} name
2991
+ * @return {?}
2992
+ */
2993
+ function iconKey(namespace, name) {
2994
+ return namespace + ':' + name;
2995
+ }
2996
+ /**
2997
+ * \@docs-private
2998
+ */
2999
+ var MdIconBase = (function () {
3000
+ /**
3001
+ * @param {?} _renderer
3002
+ * @param {?} _elementRef
3003
+ */
3004
+ function MdIconBase(_renderer, _elementRef) {
3005
+ this._renderer = _renderer;
3006
+ this._elementRef = _elementRef;
3007
+ }
3008
+ return MdIconBase;
3009
+ }());
3010
+ var _MdIconMixinBase = mixinColor(MdIconBase);
3011
+ /**
3012
+ * Component to display an icon. It can be used in the following ways:
3013
+ *
3014
+ * - Specify the svgIcon input to load an SVG icon from a URL previously registered with the
3015
+ * addSvgIcon, addSvgIconInNamespace, addSvgIconSet, or addSvgIconSetInNamespace methods of
3016
+ * MdIconRegistry. If the svgIcon value contains a colon it is assumed to be in the format
3017
+ * "[namespace]:[name]", if not the value will be the name of an icon in the default namespace.
3018
+ * Examples:
3019
+ * <md-icon svgIcon="left-arrow"></md-icon>
3020
+ * <md-icon svgIcon="animals:cat"></md-icon>
3021
+ *
3022
+ * - Use a font ligature as an icon by putting the ligature text in the content of the <md-icon>
3023
+ * component. By default the Material icons font is used as described at
3024
+ * http://google.github.io/material-design-icons/#icon-font-for-the-web. You can specify an
3025
+ * alternate font by setting the fontSet input to either the CSS class to apply to use the
3026
+ * desired font, or to an alias previously registered with MdIconRegistry.registerFontClassAlias.
3027
+ * Examples:
3028
+ * <md-icon>home</md-icon>
3029
+ * <md-icon fontSet="myfont">sun</md-icon>
3030
+ *
3031
+ * - Specify a font glyph to be included via CSS rules by setting the fontSet input to specify the
3032
+ * font, and the fontIcon input to specify the icon. Typically the fontIcon will specify a
3033
+ * CSS class which causes the glyph to be displayed via a :before selector, as in
3034
+ * https://fortawesome.github.io/Font-Awesome/examples/
3035
+ * Example:
3036
+ * <md-icon fontSet="fa" fontIcon="alarm"></md-icon>
3037
+ */
3038
+ var MdIcon = (function (_super) {
3039
+ __extends(MdIcon, _super);
3040
+ /**
3041
+ * @param {?} renderer
3042
+ * @param {?} elementRef
3043
+ * @param {?} _mdIconRegistry
3044
+ * @param {?} ariaHidden
3045
+ */
3046
+ function MdIcon(renderer, elementRef, _mdIconRegistry, ariaHidden) {
3047
+ var _this = _super.call(this, renderer, elementRef) || this;
3048
+ _this._mdIconRegistry = _mdIconRegistry;
3049
+ // If the user has not explicitly set aria-hidden, mark the icon as hidden, as this is
3050
+ // the right thing to do for the majority of icon use-cases.
3051
+ if (!ariaHidden) {
3052
+ renderer.setAttribute(elementRef.nativeElement, 'aria-hidden', 'true');
3053
+ }
3054
+ return _this;
3055
+ }
3056
+ /**
3057
+ * Splits an svgIcon binding value into its icon set and icon name components.
3058
+ * Returns a 2-element array of [(icon set), (icon name)].
3059
+ * The separator for the two fields is ':'. If there is no separator, an empty
3060
+ * string is returned for the icon set and the entire value is returned for
3061
+ * the icon name. If the argument is falsy, returns an array of two empty strings.
3062
+ * Throws an error if the name contains two or more ':' separators.
3063
+ * Examples:
3064
+ * 'social:cake' -> ['social', 'cake']
3065
+ * 'penguin' -> ['', 'penguin']
3066
+ * null -> ['', '']
3067
+ * 'a:b:c' -> (throws Error)
3068
+ * @param {?} iconName
3069
+ * @return {?}
3070
+ */
3071
+ MdIcon.prototype._splitIconName = function (iconName) {
3072
+ if (!iconName) {
3073
+ return ['', ''];
3074
+ }
3075
+ var /** @type {?} */ parts = iconName.split(':');
3076
+ switch (parts.length) {
3077
+ case 1: return ['', parts[0]]; // Use default namespace.
3078
+ case 2: return (parts);
3079
+ default: throw Error("Invalid icon name: \"" + iconName + "\"");
3080
+ }
3081
+ };
3082
+ /**
3083
+ * @param {?} changes
3084
+ * @return {?}
3085
+ */
3086
+ MdIcon.prototype.ngOnChanges = function (changes) {
3087
+ var _this = this;
3088
+ // Only update the inline SVG icon if the inputs changed, to avoid unnecessary DOM operations.
3089
+ if (changes.svgIcon) {
3090
+ if (this.svgIcon) {
3091
+ var _a = this._splitIconName(this.svgIcon), namespace = _a[0], iconName = _a[1];
3092
+ _angular_cdk_rxjs.first.call(this._mdIconRegistry.getNamedSvgIcon(iconName, namespace)).subscribe(function (svg) { return _this._setSvgElement(svg); }, function (err) { return console.log("Error retrieving icon: " + err.message); });
3093
+ }
3094
+ else {
3095
+ this._clearSvgElement();
3096
+ }
3097
+ }
3098
+ if (this._usingFontIcon()) {
3099
+ this._updateFontIconClasses();
3100
+ }
3101
+ };
3102
+ /**
3103
+ * @return {?}
3104
+ */
3105
+ MdIcon.prototype.ngOnInit = function () {
3106
+ // Update font classes because ngOnChanges won't be called if none of the inputs are present,
3107
+ // e.g. <md-icon>arrow</md-icon>. In this case we need to add a CSS class for the default font.
3108
+ if (this._usingFontIcon()) {
3109
+ this._updateFontIconClasses();
3110
+ }
3111
+ };
3112
+ /**
3113
+ * @return {?}
3114
+ */
3115
+ MdIcon.prototype._usingFontIcon = function () {
3116
+ return !this.svgIcon;
3117
+ };
3118
+ /**
3119
+ * @param {?} svg
3120
+ * @return {?}
3121
+ */
3122
+ MdIcon.prototype._setSvgElement = function (svg) {
3123
+ this._clearSvgElement();
3124
+ this._renderer.appendChild(this._elementRef.nativeElement, svg);
3125
+ };
3126
+ /**
3127
+ * @return {?}
3128
+ */
3129
+ MdIcon.prototype._clearSvgElement = function () {
3130
+ var /** @type {?} */ layoutElement = this._elementRef.nativeElement;
3131
+ var /** @type {?} */ childCount = layoutElement.childNodes.length;
3132
+ // Remove existing child nodes and add the new SVG element. Note that we can't
3133
+ // use innerHTML, because IE will throw if the element has a data binding.
3134
+ for (var /** @type {?} */ i = 0; i < childCount; i++) {
3135
+ this._renderer.removeChild(layoutElement, layoutElement.childNodes[i]);
3136
+ }
3137
+ };
3138
+ /**
3139
+ * @return {?}
3140
+ */
3141
+ MdIcon.prototype._updateFontIconClasses = function () {
3142
+ if (!this._usingFontIcon()) {
3143
+ return;
3144
+ }
3145
+ var /** @type {?} */ elem = this._elementRef.nativeElement;
3146
+ var /** @type {?} */ fontSetClass = this.fontSet ?
3147
+ this._mdIconRegistry.classNameForFontAlias(this.fontSet) :
3148
+ this._mdIconRegistry.getDefaultFontSetClass();
3149
+ if (fontSetClass != this._previousFontSetClass) {
3150
+ if (this._previousFontSetClass) {
3151
+ this._renderer.removeClass(elem, this._previousFontSetClass);
3152
+ }
3153
+ if (fontSetClass) {
3154
+ this._renderer.addClass(elem, fontSetClass);
3155
+ }
3156
+ this._previousFontSetClass = fontSetClass;
3157
+ }
3158
+ if (this.fontIcon != this._previousFontIconClass) {
3159
+ if (this._previousFontIconClass) {
3160
+ this._renderer.removeClass(elem, this._previousFontIconClass);
3161
+ }
3162
+ if (this.fontIcon) {
3163
+ this._renderer.addClass(elem, this.fontIcon);
3164
+ }
3165
+ this._previousFontIconClass = this.fontIcon;
3166
+ }
3167
+ };
3168
+ return MdIcon;
3169
+ }(_MdIconMixinBase));
3170
+ MdIcon.decorators = [
3171
+ { type: _angular_core.Component, args: [{ template: '<ng-content></ng-content>',
3172
+ selector: 'md-icon, mat-icon',
3173
+ styles: [".mat-icon{background-repeat:no-repeat;display:inline-block;fill:currentColor;height:24px;width:24px}"],
3174
+ inputs: ['color'],
3175
+ host: {
3176
+ 'role': 'img',
3177
+ 'class': 'mat-icon',
3178
+ },
3179
+ encapsulation: _angular_core.ViewEncapsulation.None,
3180
+ preserveWhitespaces: false,
3181
+ changeDetection: _angular_core.ChangeDetectionStrategy.OnPush,
3182
+ },] },
3183
+ ];
3184
+ /**
3185
+ * @nocollapse
3186
+ */
3187
+ MdIcon.ctorParameters = function () { return [
3188
+ { type: _angular_core.Renderer2, },
3189
+ { type: _angular_core.ElementRef, },
3190
+ { type: MdIconRegistry, },
3191
+ { type: undefined, decorators: [{ type: _angular_core.Attribute, args: ['aria-hidden',] },] },
3192
+ ]; };
3193
+ MdIcon.propDecorators = {
3194
+ 'svgIcon': [{ type: _angular_core.Input },],
3195
+ 'fontSet': [{ type: _angular_core.Input },],
3196
+ 'fontIcon': [{ type: _angular_core.Input },],
3197
+ };
3198
+ var MdIconModule = (function () {
3199
+ function MdIconModule() {
3200
+ }
3201
+ return MdIconModule;
3202
+ }());
3203
+ MdIconModule.decorators = [
3204
+ { type: _angular_core.NgModule, args: [{
3205
+ imports: [MdCommonModule],
3206
+ exports: [MdIcon, MdCommonModule],
3207
+ declarations: [MdIcon],
3208
+ providers: [ICON_REGISTRY_PROVIDER],
3209
+ },] },
3210
+ ];
3211
+ /**
3212
+ * @nocollapse
3213
+ */
3214
+ MdIconModule.ctorParameters = function () { return []; };
3215
+
3216
+ /**
3217
+ * Workaround for https://github.com/angular/angular/issues/17849
3218
+ */
3219
+ var _MdStepLabel = _angular_cdk_stepper.CdkStepLabel;
3220
+ var MdStepLabel = (function (_super) {
3221
+ __extends(MdStepLabel, _super);
3222
+ /**
3223
+ * @param {?} template
3224
+ */
3225
+ function MdStepLabel(template) {
3226
+ return _super.call(this, template) || this;
3227
+ }
3228
+ return MdStepLabel;
3229
+ }(_MdStepLabel));
3230
+ MdStepLabel.decorators = [
3231
+ { type: _angular_core.Directive, args: [{
3232
+ selector: '[mdStepLabel], [matStepLabel]',
3233
+ },] },
3234
+ ];
3235
+ /**
3236
+ * @nocollapse
3237
+ */
3238
+ MdStepLabel.ctorParameters = function () { return [
3239
+ { type: _angular_core.TemplateRef, },
3240
+ ]; };
3241
+ var MdStepHeader = (function () {
3242
+ function MdStepHeader() {
3243
+ }
3244
+ Object.defineProperty(MdStepHeader.prototype, "index", {
3245
+ /**
3246
+ * Index of the given step.
3247
+ * @return {?}
3248
+ */
3249
+ get: function () { return this._index; },
3250
+ /**
3251
+ * @param {?} value
3252
+ * @return {?}
3253
+ */
3254
+ set: function (value) {
3255
+ this._index = _angular_cdk_coercion.coerceNumberProperty(value);
3256
+ },
3257
+ enumerable: true,
3258
+ configurable: true
3259
+ });
3260
+ Object.defineProperty(MdStepHeader.prototype, "selected", {
3261
+ /**
3262
+ * Whether the given step is selected.
3263
+ * @return {?}
3264
+ */
3265
+ get: function () { return this._selected; },
3266
+ /**
3267
+ * @param {?} value
3268
+ * @return {?}
3269
+ */
3270
+ set: function (value) {
3271
+ this._selected = _angular_cdk_coercion.coerceBooleanProperty(value);
3272
+ },
3273
+ enumerable: true,
3274
+ configurable: true
3275
+ });
3276
+ Object.defineProperty(MdStepHeader.prototype, "active", {
3277
+ /**
3278
+ * Whether the given step label is active.
3279
+ * @return {?}
3280
+ */
3281
+ get: function () { return this._active; },
3282
+ /**
3283
+ * @param {?} value
3284
+ * @return {?}
3285
+ */
3286
+ set: function (value) {
3287
+ this._active = _angular_cdk_coercion.coerceBooleanProperty(value);
3288
+ },
3289
+ enumerable: true,
3290
+ configurable: true
3291
+ });
3292
+ Object.defineProperty(MdStepHeader.prototype, "optional", {
3293
+ /**
3294
+ * Whether the given step is optional.
3295
+ * @return {?}
3296
+ */
3297
+ get: function () { return this._optional; },
3298
+ /**
3299
+ * @param {?} value
3300
+ * @return {?}
3301
+ */
3302
+ set: function (value) {
3303
+ this._optional = _angular_cdk_coercion.coerceBooleanProperty(value);
3304
+ },
3305
+ enumerable: true,
3306
+ configurable: true
3307
+ });
3308
+ /**
3309
+ * Returns string label of given step if it is a text label.
3310
+ * @return {?}
3311
+ */
3312
+ MdStepHeader.prototype._stringLabel = function () {
3313
+ return this.label instanceof MdStepLabel ? null : this.label;
3314
+ };
3315
+ /**
3316
+ * Returns MdStepLabel if the label of given step is a template label.
3317
+ * @return {?}
3318
+ */
3319
+ MdStepHeader.prototype._templateLabel = function () {
3320
+ return this.label instanceof MdStepLabel ? this.label : null;
3321
+ };
3322
+ return MdStepHeader;
3323
+ }());
3324
+ MdStepHeader.decorators = [
3325
+ { type: _angular_core.Component, args: [{ selector: 'md-step-header, mat-step-header',
3326
+ template: "<div [class.mat-step-icon]=\"icon !== 'number' || selected\" [class.mat-step-icon-not-touched]=\"icon == 'number' && !selected\" [ngSwitch]=\"icon\"><span *ngSwitchCase=\"'number'\">{{index + 1}}</span><mat-icon *ngSwitchCase=\"'edit'\">create</mat-icon><mat-icon *ngSwitchCase=\"'done'\">done</mat-icon></div><div class=\"mat-step-label\" [class.mat-step-label-active]=\"active\"><ng-container *ngIf=\"_templateLabel()\" [ngTemplateOutlet]=\"label.template\"></ng-container><div class=\"mat-step-text-label\" *ngIf=\"_stringLabel()\">{{label}}</div><div class=\"mat-step-optional\" *ngIf=\"optional\">Optional</div></div>",
3327
+ styles: [".mat-step-optional{font-size:12px}.mat-step-icon,.mat-step-icon-not-touched{border-radius:50%;height:24px;width:24px;align-items:center;justify-content:center;display:flex}.mat-step-icon .mat-icon{font-size:16px;height:16px;width:16px}.mat-step-label{display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:50px;vertical-align:middle}.mat-step-text-label{text-overflow:ellipsis;overflow:hidden}"],
3328
+ host: {
3329
+ 'class': 'mat-step-header',
3330
+ 'role': 'tab',
3331
+ },
3332
+ encapsulation: _angular_core.ViewEncapsulation.None,
3333
+ preserveWhitespaces: false,
3334
+ viewProviders: [{ provide: MATERIAL_COMPATIBILITY_MODE, useValue: true }],
3335
+ },] },
3336
+ ];
3337
+ /**
3338
+ * @nocollapse
3339
+ */
3340
+ MdStepHeader.ctorParameters = function () { return []; };
3341
+ MdStepHeader.propDecorators = {
3342
+ 'icon': [{ type: _angular_core.Input },],
3343
+ 'label': [{ type: _angular_core.Input },],
3344
+ 'index': [{ type: _angular_core.Input },],
3345
+ 'selected': [{ type: _angular_core.Input },],
3346
+ 'active': [{ type: _angular_core.Input },],
3347
+ 'optional': [{ type: _angular_core.Input },],
3348
+ };
3349
+ /**
3350
+ * Workaround for https://github.com/angular/angular/issues/17849
3351
+ */
3352
+ var _MdStep = _angular_cdk_stepper.CdkStep;
3353
+ var _MdStepper = _angular_cdk_stepper.CdkStepper;
3354
+ var MdStep = (function (_super) {
3355
+ __extends(MdStep, _super);
3356
+ /**
3357
+ * @param {?} mdStepper
3358
+ * @param {?} errorOptions
3359
+ */
3360
+ function MdStep(mdStepper, errorOptions) {
3361
+ var _this = _super.call(this, mdStepper) || this;
3362
+ /**
3363
+ * Custom error state matcher that additionally checks for validity of interacted form.
3364
+ */
3365
+ _this.errorStateMatcher = function (control, form) {
3366
+ var originalErrorState = _this._originalErrorStateMatcher(control, form);
3367
+ // Custom error state checks for the validity of form that is not submitted or touched
3368
+ // since user can trigger a form change by calling for another step without directly
3369
+ // interacting with the current form.
3370
+ var customErrorState = control.invalid && _this.interacted;
3371
+ return originalErrorState || customErrorState;
3372
+ };
3373
+ if (errorOptions && errorOptions.errorStateMatcher) {
3374
+ _this._originalErrorStateMatcher = errorOptions.errorStateMatcher;
3375
+ }
3376
+ else {
3377
+ _this._originalErrorStateMatcher = defaultErrorStateMatcher;
3378
+ }
3379
+ return _this;
3380
+ }
3381
+ return MdStep;
3382
+ }(_MdStep));
3383
+ MdStep.decorators = [
3384
+ { type: _angular_core.Component, args: [{ selector: 'md-step, mat-step',
3385
+ template: "<ng-template><ng-content></ng-content></ng-template>",
3386
+ providers: [{ provide: MD_ERROR_GLOBAL_OPTIONS, useExisting: MdStep }],
3387
+ encapsulation: _angular_core.ViewEncapsulation.None,
3388
+ preserveWhitespaces: false,
3389
+ },] },
3390
+ ];
3391
+ /**
3392
+ * @nocollapse
3393
+ */
3394
+ MdStep.ctorParameters = function () { return [
3395
+ { type: MdStepper, decorators: [{ type: _angular_core.Inject, args: [_angular_core.forwardRef(function () { return MdStepper; }),] },] },
3396
+ { type: undefined, decorators: [{ type: _angular_core.Optional }, { type: _angular_core.SkipSelf }, { type: _angular_core.Inject, args: [MD_ERROR_GLOBAL_OPTIONS,] },] },
3397
+ ]; };
3398
+ MdStep.propDecorators = {
3399
+ 'stepLabel': [{ type: _angular_core.ContentChild, args: [MdStepLabel,] },],
3400
+ };
3401
+ var MdStepper = (function (_super) {
3402
+ __extends(MdStepper, _super);
3403
+ function MdStepper() {
3404
+ return _super !== null && _super.apply(this, arguments) || this;
3405
+ }
3406
+ return MdStepper;
3407
+ }(_MdStepper));
3408
+ MdStepper.decorators = [
3409
+ { type: _angular_core.Directive, args: [{
3410
+ selector: '[mdStepper]'
3411
+ },] },
3412
+ ];
3413
+ /**
3414
+ * @nocollapse
3415
+ */
3416
+ MdStepper.ctorParameters = function () { return []; };
3417
+ MdStepper.propDecorators = {
3418
+ '_stepHeader': [{ type: _angular_core.ViewChildren, args: [MdStepHeader, { read: _angular_core.ElementRef },] },],
3419
+ '_steps': [{ type: _angular_core.ContentChildren, args: [MdStep,] },],
3420
+ };
3421
+ var MdHorizontalStepper = (function (_super) {
3422
+ __extends(MdHorizontalStepper, _super);
3423
+ function MdHorizontalStepper() {
3424
+ return _super !== null && _super.apply(this, arguments) || this;
3425
+ }
3426
+ return MdHorizontalStepper;
3427
+ }(MdStepper));
3428
+ MdHorizontalStepper.decorators = [
3429
+ { type: _angular_core.Component, args: [{ selector: 'md-horizontal-stepper, mat-horizontal-stepper',
3430
+ template: "<div class=\"mat-horizontal-stepper-header-container\"><ng-container *ngFor=\"let step of _steps; let i = index; let isLast = last\"><mat-step-header class=\"mat-horizontal-stepper-header\" (click)=\"step.select()\" (keydown)=\"_onKeydown($event)\" [tabIndex]=\"_focusIndex === i ? 0 : -1\" [id]=\"_getStepLabelId(i)\" [attr.aria-controls]=\"_getStepContentId(i)\" [attr.aria-selected]=\"selectedIndex == i\" [index]=\"i\" [icon]=\"_getIndicatorType(i)\" [label]=\"step.stepLabel || step.label\" [selected]=\"selectedIndex === i\" [active]=\"step.completed || selectedIndex === i\" [optional]=\"step.optional\"></mat-step-header><div *ngIf=\"!isLast\" class=\"mat-stepper-horizontal-line\"></div></ng-container></div><div class=\"mat-horizontal-content-container\"><div *ngFor=\"let step of _steps; let i = index\" class=\"mat-horizontal-stepper-content\" role=\"tabpanel\" [@stepTransition]=\"_getAnimationDirection(i)\" [id]=\"_getStepContentId(i)\" [attr.aria-labelledby]=\"_getStepLabelId(i)\" [attr.aria-expanded]=\"selectedIndex === i\"><ng-container [ngTemplateOutlet]=\"step.content\"></ng-container></div></div>",
3431
+ styles: [".mat-stepper-horizontal,.mat-stepper-vertical{display:block}.mat-step-header{overflow:hidden;outline:0}.mat-horizontal-stepper-header-container{white-space:nowrap;display:flex;align-items:center}.mat-stepper-horizontal-line{border-top-width:1px;border-top-style:solid;flex:auto;height:0;margin:0 -16px;min-width:32px}.mat-horizontal-stepper-header{display:flex;height:72px;overflow:hidden;align-items:center;padding:0 24px}.mat-horizontal-stepper-header .mat-step-icon,.mat-horizontal-stepper-header .mat-step-icon-not-touched{margin-right:8px;flex:none}[dir=rtl] .mat-horizontal-stepper-header .mat-step-icon,[dir=rtl] .mat-horizontal-stepper-header .mat-step-icon-not-touched{margin-right:0;margin-left:8px}.mat-vertical-stepper-header{display:flex;align-items:center;padding:24px;max-height:24px}.mat-vertical-stepper-header .mat-step-icon,.mat-vertical-stepper-header .mat-step-icon-not-touched{margin-right:12px}[dir=rtl] .mat-vertical-stepper-header .mat-step-icon,[dir=rtl] .mat-vertical-stepper-header .mat-step-icon-not-touched{margin-right:0;margin-left:12px}.mat-horizontal-stepper-content{overflow:hidden}.mat-horizontal-stepper-content[aria-expanded=false]{height:0}.mat-horizontal-content-container{overflow:hidden;padding:0 24px 24px 24px}.mat-vertical-content-container{margin-left:36px;border:0;position:relative}[dir=rtl] .mat-vertical-content-container{margin-left:0;margin-right:36px}.mat-stepper-vertical-line::before{content:'';position:absolute;top:-16px;bottom:-16px;left:0;border-left-width:1px;border-left-style:solid}[dir=rtl] .mat-stepper-vertical-line::before{left:auto;right:0}.mat-vertical-stepper-content{overflow:hidden}.mat-vertical-content{padding:0 24px 24px 24px}.mat-step:last-child .mat-vertical-content-container{border:none}"],
3432
+ inputs: ['selectedIndex'],
3433
+ host: {
3434
+ 'class': 'mat-stepper-horizontal',
3435
+ 'role': 'tablist',
3436
+ },
3437
+ animations: [
3438
+ _angular_animations.trigger('stepTransition', [
3439
+ _angular_animations.state('previous', _angular_animations.style({ transform: 'translate3d(-100%, 0, 0)', visibility: 'hidden' })),
3440
+ _angular_animations.state('current', _angular_animations.style({ transform: 'translate3d(0%, 0, 0)', visibility: 'visible' })),
3441
+ _angular_animations.state('next', _angular_animations.style({ transform: 'translate3d(100%, 0, 0)', visibility: 'hidden' })),
3442
+ _angular_animations.transition('* => *', _angular_animations.animate('500ms cubic-bezier(0.35, 0, 0.25, 1)'))
3443
+ ])
3444
+ ],
3445
+ providers: [{ provide: MdStepper, useExisting: MdHorizontalStepper }],
3446
+ encapsulation: _angular_core.ViewEncapsulation.None,
3447
+ preserveWhitespaces: false,
3448
+ viewProviders: [{ provide: MATERIAL_COMPATIBILITY_MODE, useValue: true }],
3449
+ },] },
3450
+ ];
3451
+ /**
3452
+ * @nocollapse
3453
+ */
3454
+ MdHorizontalStepper.ctorParameters = function () { return []; };
3455
+ var MdVerticalStepper = (function (_super) {
3456
+ __extends(MdVerticalStepper, _super);
3457
+ function MdVerticalStepper() {
3458
+ return _super !== null && _super.apply(this, arguments) || this;
3459
+ }
3460
+ return MdVerticalStepper;
3461
+ }(MdStepper));
3462
+ MdVerticalStepper.decorators = [
3463
+ { type: _angular_core.Component, args: [{ selector: 'md-vertical-stepper, mat-vertical-stepper',
3464
+ template: "<div class=\"mat-step\" *ngFor=\"let step of _steps; let i = index; let isLast = last\"><mat-step-header class=\"mat-vertical-stepper-header\" (click)=\"step.select()\" (keydown)=\"_onKeydown($event)\" [tabIndex]=\"_focusIndex == i ? 0 : -1\" [id]=\"_getStepLabelId(i)\" [attr.aria-controls]=\"_getStepContentId(i)\" [attr.aria-selected]=\"selectedIndex === i\" [index]=\"i\" [icon]=\"_getIndicatorType(i)\" [label]=\"step.stepLabel || step.label\" [selected]=\"selectedIndex === i\" [active]=\"step.completed || selectedIndex === i\" [optional]=\"step.optional\"></mat-step-header><div class=\"mat-vertical-content-container\" [class.mat-stepper-vertical-line]=\"!isLast\"><div class=\"mat-vertical-stepper-content\" role=\"tabpanel\" [@stepTransition]=\"_getAnimationDirection(i)\" [id]=\"_getStepContentId(i)\" [attr.aria-labelledby]=\"_getStepLabelId(i)\" [attr.aria-expanded]=\"selectedIndex === i\"><div class=\"mat-vertical-content\"><ng-container [ngTemplateOutlet]=\"step.content\"></ng-container></div></div></div></div>",
3465
+ styles: [".mat-stepper-horizontal,.mat-stepper-vertical{display:block}.mat-step-header{overflow:hidden;outline:0}.mat-horizontal-stepper-header-container{white-space:nowrap;display:flex;align-items:center}.mat-stepper-horizontal-line{border-top-width:1px;border-top-style:solid;flex:auto;height:0;margin:0 -16px;min-width:32px}.mat-horizontal-stepper-header{display:flex;height:72px;overflow:hidden;align-items:center;padding:0 24px}.mat-horizontal-stepper-header .mat-step-icon,.mat-horizontal-stepper-header .mat-step-icon-not-touched{margin-right:8px;flex:none}[dir=rtl] .mat-horizontal-stepper-header .mat-step-icon,[dir=rtl] .mat-horizontal-stepper-header .mat-step-icon-not-touched{margin-right:0;margin-left:8px}.mat-vertical-stepper-header{display:flex;align-items:center;padding:24px;max-height:24px}.mat-vertical-stepper-header .mat-step-icon,.mat-vertical-stepper-header .mat-step-icon-not-touched{margin-right:12px}[dir=rtl] .mat-vertical-stepper-header .mat-step-icon,[dir=rtl] .mat-vertical-stepper-header .mat-step-icon-not-touched{margin-right:0;margin-left:12px}.mat-horizontal-stepper-content{overflow:hidden}.mat-horizontal-stepper-content[aria-expanded=false]{height:0}.mat-horizontal-content-container{overflow:hidden;padding:0 24px 24px 24px}.mat-vertical-content-container{margin-left:36px;border:0;position:relative}[dir=rtl] .mat-vertical-content-container{margin-left:0;margin-right:36px}.mat-stepper-vertical-line::before{content:'';position:absolute;top:-16px;bottom:-16px;left:0;border-left-width:1px;border-left-style:solid}[dir=rtl] .mat-stepper-vertical-line::before{left:auto;right:0}.mat-vertical-stepper-content{overflow:hidden}.mat-vertical-content{padding:0 24px 24px 24px}.mat-step:last-child .mat-vertical-content-container{border:none}"],
3466
+ inputs: ['selectedIndex'],
3467
+ host: {
3468
+ 'class': 'mat-stepper-vertical',
3469
+ 'role': 'tablist',
3470
+ },
3471
+ animations: [
3472
+ _angular_animations.trigger('stepTransition', [
3473
+ _angular_animations.state('previous', _angular_animations.style({ height: '0px', visibility: 'hidden' })),
3474
+ _angular_animations.state('next', _angular_animations.style({ height: '0px', visibility: 'hidden' })),
3475
+ _angular_animations.state('current', _angular_animations.style({ height: '*', visibility: 'visible' })),
3476
+ _angular_animations.transition('* <=> current', _angular_animations.animate('225ms cubic-bezier(0.4, 0.0, 0.2, 1)'))
3477
+ ])
3478
+ ],
3479
+ providers: [{ provide: MdStepper, useExisting: MdVerticalStepper }],
3480
+ viewProviders: [{ provide: MATERIAL_COMPATIBILITY_MODE, useValue: true }],
3481
+ encapsulation: _angular_core.ViewEncapsulation.None,
3482
+ preserveWhitespaces: false,
3483
+ },] },
3484
+ ];
3485
+ /**
3486
+ * @nocollapse
3487
+ */
3488
+ MdVerticalStepper.ctorParameters = function () { return []; };
3489
+ /**
3490
+ * Workaround for https://github.com/angular/angular/issues/17849
3491
+ */
3492
+ var _MdStepperNext = _angular_cdk_stepper.CdkStepperNext;
3493
+ var _MdStepperPrevious = _angular_cdk_stepper.CdkStepperPrevious;
3494
+ /**
3495
+ * Button that moves to the next step in a stepper workflow.
3496
+ */
3497
+ var MdStepperNext = (function (_super) {
3498
+ __extends(MdStepperNext, _super);
3499
+ function MdStepperNext() {
3500
+ return _super !== null && _super.apply(this, arguments) || this;
3501
+ }
3502
+ return MdStepperNext;
3503
+ }(_MdStepperNext));
3504
+ MdStepperNext.decorators = [
3505
+ { type: _angular_core.Directive, args: [{
3506
+ selector: 'button[mdStepperNext], button[matStepperNext]',
3507
+ host: { '(click)': '_stepper.next()' },
3508
+ providers: [{ provide: _angular_cdk_stepper.CdkStepper, useExisting: MdStepper }]
3509
+ },] },
3510
+ ];
3511
+ /**
3512
+ * @nocollapse
3513
+ */
3514
+ MdStepperNext.ctorParameters = function () { return []; };
3515
+ /**
3516
+ * Button that moves to the previous step in a stepper workflow.
3517
+ */
3518
+ var MdStepperPrevious = (function (_super) {
3519
+ __extends(MdStepperPrevious, _super);
3520
+ function MdStepperPrevious() {
3521
+ return _super !== null && _super.apply(this, arguments) || this;
3522
+ }
3523
+ return MdStepperPrevious;
3524
+ }(_MdStepperPrevious));
3525
+ MdStepperPrevious.decorators = [
3526
+ { type: _angular_core.Directive, args: [{
3527
+ selector: 'button[mdStepperPrevious], button[matStepperPrevious]',
3528
+ host: { '(click)': '_stepper.previous()' },
3529
+ providers: [{ provide: _angular_cdk_stepper.CdkStepper, useExisting: MdStepper }]
3530
+ },] },
3531
+ ];
3532
+ /**
3533
+ * @nocollapse
3534
+ */
3535
+ MdStepperPrevious.ctorParameters = function () { return []; };
3536
+ var MdStepperModule = (function () {
3537
+ function MdStepperModule() {
3538
+ }
3539
+ return MdStepperModule;
3540
+ }());
3541
+ MdStepperModule.decorators = [
3542
+ { type: _angular_core.NgModule, args: [{
3543
+ imports: [
3544
+ MdCommonModule,
3545
+ _angular_common.CommonModule,
3546
+ _angular_cdk_portal.PortalModule,
3547
+ MdButtonModule,
3548
+ _angular_cdk_stepper.CdkStepperModule,
3549
+ MdIconModule
3550
+ ],
3551
+ exports: [
3552
+ MdCommonModule,
3553
+ MdHorizontalStepper,
3554
+ MdVerticalStepper,
3555
+ MdStep,
3556
+ MdStepLabel,
3557
+ MdStepper,
3558
+ MdStepperNext,
3559
+ MdStepperPrevious,
3560
+ MdStepHeader
3561
+ ],
3562
+ declarations: [MdHorizontalStepper, MdVerticalStepper, MdStep, MdStepLabel, MdStepper,
3563
+ MdStepperNext, MdStepperPrevious, MdStepHeader],
3564
+ },] },
3565
+ ];
3566
+ /**
3567
+ * @nocollapse
3568
+ */
3569
+ MdStepperModule.ctorParameters = function () { return []; };
3570
+
3571
+ exports.MdStepperModule = MdStepperModule;
3572
+ exports._MdStepLabel = _MdStepLabel;
3573
+ exports.MdStepLabel = MdStepLabel;
3574
+ exports._MdStep = _MdStep;
3575
+ exports._MdStepper = _MdStepper;
3576
+ exports.MdStep = MdStep;
3577
+ exports.MdStepper = MdStepper;
3578
+ exports.MdHorizontalStepper = MdHorizontalStepper;
3579
+ exports.MdVerticalStepper = MdVerticalStepper;
3580
+ exports._MdStepperNext = _MdStepperNext;
3581
+ exports._MdStepperPrevious = _MdStepperPrevious;
3582
+ exports.MdStepperNext = MdStepperNext;
3583
+ exports.MdStepperPrevious = MdStepperPrevious;
3584
+ exports.MdStepHeader = MdStepHeader;
3585
+ exports.MatStep = MdStep;
3586
+ exports.MatStepHeader = MdStepHeader;
3587
+ exports.MatStepLabel = MdStepLabel;
3588
+ exports.MatStepper = MdStepper;
3589
+ exports.MatHorizontalStepper = MdHorizontalStepper;
3590
+ exports.MatStepperModule = MdStepperModule;
3591
+ exports.MatVerticalStepper = MdVerticalStepper;
3592
+ exports.MatStepperPrevious = MdStepperPrevious;
3593
+ exports.MatStepperNext = MdStepperNext;
3594
+
3595
+ Object.defineProperty(exports, '__esModule', { value: true });
3596
+
3597
+ })));
3598
+ //# sourceMappingURL=material-stepper.umd.js.map