@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,4121 @@
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/core'), require('@angular/cdk/a11y'), require('@angular/cdk/coercion'), require('@angular/cdk/collections'), require('@angular/cdk/rxjs'), require('@angular/forms'), require('@angular/cdk/bidi'), require('@angular/platform-browser'), require('rxjs/Subject'), require('@angular/cdk/keycodes'), require('@angular/common'), require('@angular/cdk/scrolling'), require('@angular/cdk/platform'), require('@angular/cdk/overlay'), require('@angular/cdk/portal'), require('@angular/animations'), require('rxjs/observable/fromEvent'), require('rxjs/observable/merge'), require('rxjs/Subscription')) :
10
+ typeof define === 'function' && define.amd ? define(['exports', '@angular/core', '@angular/cdk/a11y', '@angular/cdk/coercion', '@angular/cdk/collections', '@angular/cdk/rxjs', '@angular/forms', '@angular/cdk/bidi', '@angular/platform-browser', 'rxjs/Subject', '@angular/cdk/keycodes', '@angular/common', '@angular/cdk/scrolling', '@angular/cdk/platform', '@angular/cdk/overlay', '@angular/cdk/portal', '@angular/animations', 'rxjs/observable/fromEvent', 'rxjs/observable/merge', 'rxjs/Subscription'], factory) :
11
+ (factory((global.ng = global.ng || {}, global.ng.material = global.ng.material || {}, global.ng.material.chips = global.ng.material.chips || {}),global.ng.core,global.ng.cdk.a11y,global.ng.cdk.coercion,global.ng.cdk.collections,global.ng.cdk.rxjs,global.ng.forms,global.ng.cdk.bidi,global.ng.platformBrowser,global.Rx,global.ng.cdk.keycodes,global.ng.common,global.ng.cdk.scrolling,global.ng.cdk.platform,global.ng.cdk.overlay,global.ng.cdk.portal,global.ng.animations,global.Rx.Observable,global.Rx.Observable,global.Rx));
12
+ }(this, (function (exports,_angular_core,_angular_cdk_a11y,_angular_cdk_coercion,_angular_cdk_collections,_angular_cdk_rxjs,_angular_forms,_angular_cdk_bidi,_angular_platformBrowser,rxjs_Subject,_angular_cdk_keycodes,_angular_common,_angular_cdk_scrolling,_angular_cdk_platform,_angular_cdk_overlay,_angular_cdk_portal,_angular_animations,rxjs_observable_fromEvent,rxjs_observable_merge,rxjs_Subscription) { '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
+ * Class to coordinate unique selection based on name.
333
+ * Intended to be consumed as an Angular service.
334
+ * This service is needed because native radio change events are only fired on the item currently
335
+ * being selected, and we still need to uncheck the previous selection.
336
+ *
337
+ * This service does not *store* any IDs and names because they may change at any time, so it is
338
+ * less error-prone if they are simply passed through when the events occur.
339
+ */
340
+ var UniqueSelectionDispatcher = (function () {
341
+ function UniqueSelectionDispatcher() {
342
+ this._listeners = [];
343
+ }
344
+ /**
345
+ * Notify other items that selection for the given name has been set.
346
+ * @param {?} id ID of the item.
347
+ * @param {?} name Name of the item.
348
+ * @return {?}
349
+ */
350
+ UniqueSelectionDispatcher.prototype.notify = function (id, name) {
351
+ for (var _i = 0, _a = this._listeners; _i < _a.length; _i++) {
352
+ var listener = _a[_i];
353
+ listener(id, name);
354
+ }
355
+ };
356
+ /**
357
+ * Listen for future changes to item selection.
358
+ * @param {?} listener
359
+ * @return {?} Function used to deregister listener
360
+ *
361
+ */
362
+ UniqueSelectionDispatcher.prototype.listen = function (listener) {
363
+ var _this = this;
364
+ this._listeners.push(listener);
365
+ return function () {
366
+ _this._listeners = _this._listeners.filter(function (registered) {
367
+ return listener !== registered;
368
+ });
369
+ };
370
+ };
371
+ return UniqueSelectionDispatcher;
372
+ }());
373
+ UniqueSelectionDispatcher.decorators = [
374
+ { type: _angular_core.Injectable },
375
+ ];
376
+ /**
377
+ * @nocollapse
378
+ */
379
+ UniqueSelectionDispatcher.ctorParameters = function () { return []; };
380
+ /**
381
+ * \@docs-private
382
+ * @param {?} parentDispatcher
383
+ * @return {?}
384
+ */
385
+ function UNIQUE_SELECTION_DISPATCHER_PROVIDER_FACTORY(parentDispatcher) {
386
+ return parentDispatcher || new UniqueSelectionDispatcher();
387
+ }
388
+ /**
389
+ * \@docs-private
390
+ */
391
+ var UNIQUE_SELECTION_DISPATCHER_PROVIDER = {
392
+ // If there is already a dispatcher available, use that. Otherwise, provide a new one.
393
+ provide: UniqueSelectionDispatcher,
394
+ deps: [[new _angular_core.Optional(), new _angular_core.SkipSelf(), UniqueSelectionDispatcher]],
395
+ useFactory: UNIQUE_SELECTION_DISPATCHER_PROVIDER_FACTORY
396
+ };
397
+ /**
398
+ * InjectionToken for datepicker that can be used to override default locale code.
399
+ */
400
+ var MAT_DATE_LOCALE = new _angular_core.InjectionToken('MAT_DATE_LOCALE');
401
+ /**
402
+ * Provider for MAT_DATE_LOCALE injection token.
403
+ */
404
+ var MAT_DATE_LOCALE_PROVIDER = { provide: MAT_DATE_LOCALE, useExisting: _angular_core.LOCALE_ID };
405
+ /**
406
+ * Adapts type `D` to be usable as a date by cdk-based components that work with dates.
407
+ * @abstract
408
+ */
409
+ var DateAdapter = (function () {
410
+ function DateAdapter() {
411
+ this._localeChanges = new rxjs_Subject.Subject();
412
+ }
413
+ Object.defineProperty(DateAdapter.prototype, "localeChanges", {
414
+ /**
415
+ * A stream that emits when the locale changes.
416
+ * @return {?}
417
+ */
418
+ get: function () { return this._localeChanges; },
419
+ enumerable: true,
420
+ configurable: true
421
+ });
422
+ /**
423
+ * Gets the year component of the given date.
424
+ * @abstract
425
+ * @param {?} date The date to extract the year from.
426
+ * @return {?} The year component.
427
+ */
428
+ DateAdapter.prototype.getYear = function (date) { };
429
+ /**
430
+ * Gets the month component of the given date.
431
+ * @abstract
432
+ * @param {?} date The date to extract the month from.
433
+ * @return {?} The month component (0-indexed, 0 = January).
434
+ */
435
+ DateAdapter.prototype.getMonth = function (date) { };
436
+ /**
437
+ * Gets the date of the month component of the given date.
438
+ * @abstract
439
+ * @param {?} date The date to extract the date of the month from.
440
+ * @return {?} The month component (1-indexed, 1 = first of month).
441
+ */
442
+ DateAdapter.prototype.getDate = function (date) { };
443
+ /**
444
+ * Gets the day of the week component of the given date.
445
+ * @abstract
446
+ * @param {?} date The date to extract the day of the week from.
447
+ * @return {?} The month component (0-indexed, 0 = Sunday).
448
+ */
449
+ DateAdapter.prototype.getDayOfWeek = function (date) { };
450
+ /**
451
+ * Gets a list of names for the months.
452
+ * @abstract
453
+ * @param {?} style The naming style (e.g. long = 'January', short = 'Jan', narrow = 'J').
454
+ * @return {?} An ordered list of all month names, starting with January.
455
+ */
456
+ DateAdapter.prototype.getMonthNames = function (style$$1) { };
457
+ /**
458
+ * Gets a list of names for the dates of the month.
459
+ * @abstract
460
+ * @return {?} An ordered list of all date of the month names, starting with '1'.
461
+ */
462
+ DateAdapter.prototype.getDateNames = function () { };
463
+ /**
464
+ * Gets a list of names for the days of the week.
465
+ * @abstract
466
+ * @param {?} style The naming style (e.g. long = 'Sunday', short = 'Sun', narrow = 'S').
467
+ * @return {?} An ordered list of all weekday names, starting with Sunday.
468
+ */
469
+ DateAdapter.prototype.getDayOfWeekNames = function (style$$1) { };
470
+ /**
471
+ * Gets the name for the year of the given date.
472
+ * @abstract
473
+ * @param {?} date The date to get the year name for.
474
+ * @return {?} The name of the given year (e.g. '2017').
475
+ */
476
+ DateAdapter.prototype.getYearName = function (date) { };
477
+ /**
478
+ * Gets the first day of the week.
479
+ * @abstract
480
+ * @return {?} The first day of the week (0-indexed, 0 = Sunday).
481
+ */
482
+ DateAdapter.prototype.getFirstDayOfWeek = function () { };
483
+ /**
484
+ * Gets the number of days in the month of the given date.
485
+ * @abstract
486
+ * @param {?} date The date whose month should be checked.
487
+ * @return {?} The number of days in the month of the given date.
488
+ */
489
+ DateAdapter.prototype.getNumDaysInMonth = function (date) { };
490
+ /**
491
+ * Clones the given date.
492
+ * @abstract
493
+ * @param {?} date The date to clone
494
+ * @return {?} A new date equal to the given date.
495
+ */
496
+ DateAdapter.prototype.clone = function (date) { };
497
+ /**
498
+ * Creates a date with the given year, month, and date. Does not allow over/under-flow of the
499
+ * month and date.
500
+ * @abstract
501
+ * @param {?} year The full year of the date. (e.g. 89 means the year 89, not the year 1989).
502
+ * @param {?} month The month of the date (0-indexed, 0 = January). Must be an integer 0 - 11.
503
+ * @param {?} date The date of month of the date. Must be an integer 1 - length of the given month.
504
+ * @return {?} The new date, or null if invalid.
505
+ */
506
+ DateAdapter.prototype.createDate = function (year, month, date) { };
507
+ /**
508
+ * Gets today's date.
509
+ * @abstract
510
+ * @return {?} Today's date.
511
+ */
512
+ DateAdapter.prototype.today = function () { };
513
+ /**
514
+ * Parses a date from a value.
515
+ * @abstract
516
+ * @param {?} value The value to parse.
517
+ * @param {?} parseFormat The expected format of the value being parsed
518
+ * (type is implementation-dependent).
519
+ * @return {?} The parsed date.
520
+ */
521
+ DateAdapter.prototype.parse = function (value, parseFormat) { };
522
+ /**
523
+ * Formats a date as a string.
524
+ * @abstract
525
+ * @param {?} date The value to format.
526
+ * @param {?} displayFormat The format to use to display the date as a string.
527
+ * @return {?} The formatted date string.
528
+ */
529
+ DateAdapter.prototype.format = function (date, displayFormat) { };
530
+ /**
531
+ * Adds the given number of years to the date. Years are counted as if flipping 12 pages on the
532
+ * calendar for each year and then finding the closest date in the new month. For example when
533
+ * adding 1 year to Feb 29, 2016, the resulting date will be Feb 28, 2017.
534
+ * @abstract
535
+ * @param {?} date The date to add years to.
536
+ * @param {?} years The number of years to add (may be negative).
537
+ * @return {?} A new date equal to the given one with the specified number of years added.
538
+ */
539
+ DateAdapter.prototype.addCalendarYears = function (date, years) { };
540
+ /**
541
+ * Adds the given number of months to the date. Months are counted as if flipping a page on the
542
+ * calendar for each month and then finding the closest date in the new month. For example when
543
+ * adding 1 month to Jan 31, 2017, the resulting date will be Feb 28, 2017.
544
+ * @abstract
545
+ * @param {?} date The date to add months to.
546
+ * @param {?} months The number of months to add (may be negative).
547
+ * @return {?} A new date equal to the given one with the specified number of months added.
548
+ */
549
+ DateAdapter.prototype.addCalendarMonths = function (date, months) { };
550
+ /**
551
+ * Adds the given number of days to the date. Days are counted as if moving one cell on the
552
+ * calendar for each day.
553
+ * @abstract
554
+ * @param {?} date The date to add days to.
555
+ * @param {?} days The number of days to add (may be negative).
556
+ * @return {?} A new date equal to the given one with the specified number of days added.
557
+ */
558
+ DateAdapter.prototype.addCalendarDays = function (date, days) { };
559
+ /**
560
+ * Gets the RFC 3339 compatible string (https://tools.ietf.org/html/rfc3339) for the given date.
561
+ * @abstract
562
+ * @param {?} date The date to get the ISO date string for.
563
+ * @return {?} The ISO date string date string.
564
+ */
565
+ DateAdapter.prototype.toIso8601 = function (date) { };
566
+ /**
567
+ * Creates a date from an RFC 3339 compatible string (https://tools.ietf.org/html/rfc3339).
568
+ * @abstract
569
+ * @param {?} iso8601String The ISO date string to create a date from
570
+ * @return {?} The date created from the ISO date string.
571
+ */
572
+ DateAdapter.prototype.fromIso8601 = function (iso8601String) { };
573
+ /**
574
+ * Checks whether the given object is considered a date instance by this DateAdapter.
575
+ * @abstract
576
+ * @param {?} obj The object to check
577
+ * @return {?} Whether the object is a date instance.
578
+ */
579
+ DateAdapter.prototype.isDateInstance = function (obj) { };
580
+ /**
581
+ * Checks whether the given date is valid.
582
+ * @abstract
583
+ * @param {?} date The date to check.
584
+ * @return {?} Whether the date is valid.
585
+ */
586
+ DateAdapter.prototype.isValid = function (date) { };
587
+ /**
588
+ * Sets the locale used for all dates.
589
+ * @param {?} locale The new locale.
590
+ * @return {?}
591
+ */
592
+ DateAdapter.prototype.setLocale = function (locale) {
593
+ this.locale = locale;
594
+ this._localeChanges.next();
595
+ };
596
+ /**
597
+ * Compares two dates.
598
+ * @param {?} first The first date to compare.
599
+ * @param {?} second The second date to compare.
600
+ * @return {?} 0 if the dates are equal, a number less than 0 if the first date is earlier,
601
+ * a number greater than 0 if the first date is later.
602
+ */
603
+ DateAdapter.prototype.compareDate = function (first$$1, second) {
604
+ return this.getYear(first$$1) - this.getYear(second) ||
605
+ this.getMonth(first$$1) - this.getMonth(second) ||
606
+ this.getDate(first$$1) - this.getDate(second);
607
+ };
608
+ /**
609
+ * Checks if two dates are equal.
610
+ * @param {?} first The first date to check.
611
+ * @param {?} second The second date to check.
612
+ * Null dates are considered equal to other null dates.
613
+ * @return {?}
614
+ */
615
+ DateAdapter.prototype.sameDate = function (first$$1, second) {
616
+ return first$$1 && second ? !this.compareDate(first$$1, second) : first$$1 == second;
617
+ };
618
+ /**
619
+ * Clamp the given date between min and max dates.
620
+ * @param {?} date The date to clamp.
621
+ * @param {?=} min The minimum value to allow. If null or omitted no min is enforced.
622
+ * @param {?=} max The maximum value to allow. If null or omitted no max is enforced.
623
+ * @return {?} `min` if `date` is less than `min`, `max` if date is greater than `max`,
624
+ * otherwise `date`.
625
+ */
626
+ DateAdapter.prototype.clampDate = function (date, min, max) {
627
+ if (min && this.compareDate(date, min) < 0) {
628
+ return min;
629
+ }
630
+ if (max && this.compareDate(date, max) > 0) {
631
+ return max;
632
+ }
633
+ return date;
634
+ };
635
+ return DateAdapter;
636
+ }());
637
+ /**
638
+ * Extends an object with the *enumerable* and *own* properties of one or more source objects,
639
+ * similar to Object.assign.
640
+ *
641
+ * @param {?} dest The object which will have properties copied to it.
642
+ * @param {...?} sources The source objects from which properties will be copied.
643
+ * @return {?}
644
+ */
645
+ function extendObject(dest) {
646
+ var sources = [];
647
+ for (var _i = 1; _i < arguments.length; _i++) {
648
+ sources[_i - 1] = arguments[_i];
649
+ }
650
+ if (dest == null) {
651
+ throw TypeError('Cannot convert undefined or null to object');
652
+ }
653
+ for (var _a = 0, sources_1 = sources; _a < sources_1.length; _a++) {
654
+ var source = sources_1[_a];
655
+ if (source != null) {
656
+ for (var /** @type {?} */ key in source) {
657
+ if (source.hasOwnProperty(key)) {
658
+ dest[key] = source[key];
659
+ }
660
+ }
661
+ }
662
+ }
663
+ return dest;
664
+ }
665
+ /**
666
+ * Whether the browser supports the Intl API.
667
+ */
668
+ var SUPPORTS_INTL_API = typeof Intl != 'undefined';
669
+ /**
670
+ * The default month names to use if Intl API is not available.
671
+ */
672
+ var DEFAULT_MONTH_NAMES = {
673
+ 'long': [
674
+ 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September',
675
+ 'October', 'November', 'December'
676
+ ],
677
+ 'short': ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
678
+ 'narrow': ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D']
679
+ };
680
+ /**
681
+ * The default date names to use if Intl API is not available.
682
+ */
683
+ var DEFAULT_DATE_NAMES = range(31, function (i) { return String(i + 1); });
684
+ /**
685
+ * The default day of the week names to use if Intl API is not available.
686
+ */
687
+ var DEFAULT_DAY_OF_WEEK_NAMES = {
688
+ 'long': ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],
689
+ 'short': ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],
690
+ 'narrow': ['S', 'M', 'T', 'W', 'T', 'F', 'S']
691
+ };
692
+ /**
693
+ * Matches strings that have the form of a valid RFC 3339 string
694
+ * (https://tools.ietf.org/html/rfc3339). Note that the string may not actually be a valid date
695
+ * because the regex will match strings an with out of bounds month, date, etc.
696
+ */
697
+ var ISO_8601_REGEX = /^\d{4}-\d{2}-\d{2}(?:T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|(?:(?:\+|-)\d{2}:\d{2}))?)?$/;
698
+ /**
699
+ * Creates an array and fills it with values.
700
+ * @template T
701
+ * @param {?} length
702
+ * @param {?} valueFunction
703
+ * @return {?}
704
+ */
705
+ function range(length, valueFunction) {
706
+ var /** @type {?} */ valuesArray = Array(length);
707
+ for (var /** @type {?} */ i = 0; i < length; i++) {
708
+ valuesArray[i] = valueFunction(i);
709
+ }
710
+ return valuesArray;
711
+ }
712
+ /**
713
+ * Adapts the native JS Date for use with cdk-based components that work with dates.
714
+ */
715
+ var NativeDateAdapter = (function (_super) {
716
+ __extends(NativeDateAdapter, _super);
717
+ /**
718
+ * @param {?} matDateLocale
719
+ */
720
+ function NativeDateAdapter(matDateLocale) {
721
+ var _this = _super.call(this) || this;
722
+ /**
723
+ * Whether to use `timeZone: 'utc'` with `Intl.DateTimeFormat` when formatting dates.
724
+ * Without this `Intl.DateTimeFormat` sometimes chooses the wrong timeZone, which can throw off
725
+ * the result. (e.g. in the en-US locale `new Date(1800, 7, 14).toLocaleDateString()`
726
+ * will produce `'8/13/1800'`.
727
+ */
728
+ _this.useUtcForDisplay = true;
729
+ _super.prototype.setLocale.call(_this, matDateLocale);
730
+ return _this;
731
+ }
732
+ /**
733
+ * @param {?} date
734
+ * @return {?}
735
+ */
736
+ NativeDateAdapter.prototype.getYear = function (date) {
737
+ return date.getFullYear();
738
+ };
739
+ /**
740
+ * @param {?} date
741
+ * @return {?}
742
+ */
743
+ NativeDateAdapter.prototype.getMonth = function (date) {
744
+ return date.getMonth();
745
+ };
746
+ /**
747
+ * @param {?} date
748
+ * @return {?}
749
+ */
750
+ NativeDateAdapter.prototype.getDate = function (date) {
751
+ return date.getDate();
752
+ };
753
+ /**
754
+ * @param {?} date
755
+ * @return {?}
756
+ */
757
+ NativeDateAdapter.prototype.getDayOfWeek = function (date) {
758
+ return date.getDay();
759
+ };
760
+ /**
761
+ * @param {?} style
762
+ * @return {?}
763
+ */
764
+ NativeDateAdapter.prototype.getMonthNames = function (style$$1) {
765
+ var _this = this;
766
+ if (SUPPORTS_INTL_API) {
767
+ var /** @type {?} */ dtf_1 = new Intl.DateTimeFormat(this.locale, { month: style$$1 });
768
+ return range(12, function (i) { return _this._stripDirectionalityCharacters(dtf_1.format(new Date(2017, i, 1))); });
769
+ }
770
+ return DEFAULT_MONTH_NAMES[style$$1];
771
+ };
772
+ /**
773
+ * @return {?}
774
+ */
775
+ NativeDateAdapter.prototype.getDateNames = function () {
776
+ var _this = this;
777
+ if (SUPPORTS_INTL_API) {
778
+ var /** @type {?} */ dtf_2 = new Intl.DateTimeFormat(this.locale, { day: 'numeric' });
779
+ return range(31, function (i) { return _this._stripDirectionalityCharacters(dtf_2.format(new Date(2017, 0, i + 1))); });
780
+ }
781
+ return DEFAULT_DATE_NAMES;
782
+ };
783
+ /**
784
+ * @param {?} style
785
+ * @return {?}
786
+ */
787
+ NativeDateAdapter.prototype.getDayOfWeekNames = function (style$$1) {
788
+ var _this = this;
789
+ if (SUPPORTS_INTL_API) {
790
+ var /** @type {?} */ dtf_3 = new Intl.DateTimeFormat(this.locale, { weekday: style$$1 });
791
+ return range(7, function (i) { return _this._stripDirectionalityCharacters(dtf_3.format(new Date(2017, 0, i + 1))); });
792
+ }
793
+ return DEFAULT_DAY_OF_WEEK_NAMES[style$$1];
794
+ };
795
+ /**
796
+ * @param {?} date
797
+ * @return {?}
798
+ */
799
+ NativeDateAdapter.prototype.getYearName = function (date) {
800
+ if (SUPPORTS_INTL_API) {
801
+ var /** @type {?} */ dtf = new Intl.DateTimeFormat(this.locale, { year: 'numeric' });
802
+ return this._stripDirectionalityCharacters(dtf.format(date));
803
+ }
804
+ return String(this.getYear(date));
805
+ };
806
+ /**
807
+ * @return {?}
808
+ */
809
+ NativeDateAdapter.prototype.getFirstDayOfWeek = function () {
810
+ // We can't tell using native JS Date what the first day of the week is, we default to Sunday.
811
+ return 0;
812
+ };
813
+ /**
814
+ * @param {?} date
815
+ * @return {?}
816
+ */
817
+ NativeDateAdapter.prototype.getNumDaysInMonth = function (date) {
818
+ return this.getDate(this._createDateWithOverflow(this.getYear(date), this.getMonth(date) + 1, 0));
819
+ };
820
+ /**
821
+ * @param {?} date
822
+ * @return {?}
823
+ */
824
+ NativeDateAdapter.prototype.clone = function (date) {
825
+ return this.createDate(this.getYear(date), this.getMonth(date), this.getDate(date));
826
+ };
827
+ /**
828
+ * @param {?} year
829
+ * @param {?} month
830
+ * @param {?} date
831
+ * @return {?}
832
+ */
833
+ NativeDateAdapter.prototype.createDate = function (year, month, date) {
834
+ // Check for invalid month and date (except upper bound on date which we have to check after
835
+ // creating the Date).
836
+ if (month < 0 || month > 11) {
837
+ throw Error("Invalid month index \"" + month + "\". Month index has to be between 0 and 11.");
838
+ }
839
+ if (date < 1) {
840
+ throw Error("Invalid date \"" + date + "\". Date has to be greater than 0.");
841
+ }
842
+ var /** @type {?} */ result = this._createDateWithOverflow(year, month, date);
843
+ // Check that the date wasn't above the upper bound for the month, causing the month to overflow
844
+ if (result.getMonth() != month) {
845
+ throw Error("Invalid date \"" + date + "\" for month with index \"" + month + "\".");
846
+ }
847
+ return result;
848
+ };
849
+ /**
850
+ * @return {?}
851
+ */
852
+ NativeDateAdapter.prototype.today = function () {
853
+ return new Date();
854
+ };
855
+ /**
856
+ * @param {?} value
857
+ * @return {?}
858
+ */
859
+ NativeDateAdapter.prototype.parse = function (value) {
860
+ // We have no way using the native JS Date to set the parse format or locale, so we ignore these
861
+ // parameters.
862
+ if (typeof value == 'number') {
863
+ return new Date(value);
864
+ }
865
+ return value ? new Date(Date.parse(value)) : null;
866
+ };
867
+ /**
868
+ * @param {?} date
869
+ * @param {?} displayFormat
870
+ * @return {?}
871
+ */
872
+ NativeDateAdapter.prototype.format = function (date, displayFormat) {
873
+ if (!this.isValid(date)) {
874
+ throw Error('NativeDateAdapter: Cannot format invalid date.');
875
+ }
876
+ if (SUPPORTS_INTL_API) {
877
+ if (this.useUtcForDisplay) {
878
+ date = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()));
879
+ displayFormat = extendObject({}, displayFormat, { timeZone: 'utc' });
880
+ }
881
+ var /** @type {?} */ dtf = new Intl.DateTimeFormat(this.locale, displayFormat);
882
+ return this._stripDirectionalityCharacters(dtf.format(date));
883
+ }
884
+ return this._stripDirectionalityCharacters(date.toDateString());
885
+ };
886
+ /**
887
+ * @param {?} date
888
+ * @param {?} years
889
+ * @return {?}
890
+ */
891
+ NativeDateAdapter.prototype.addCalendarYears = function (date, years) {
892
+ return this.addCalendarMonths(date, years * 12);
893
+ };
894
+ /**
895
+ * @param {?} date
896
+ * @param {?} months
897
+ * @return {?}
898
+ */
899
+ NativeDateAdapter.prototype.addCalendarMonths = function (date, months) {
900
+ var /** @type {?} */ newDate = this._createDateWithOverflow(this.getYear(date), this.getMonth(date) + months, this.getDate(date));
901
+ // It's possible to wind up in the wrong month if the original month has more days than the new
902
+ // month. In this case we want to go to the last day of the desired month.
903
+ // Note: the additional + 12 % 12 ensures we end up with a positive number, since JS % doesn't
904
+ // guarantee this.
905
+ if (this.getMonth(newDate) != ((this.getMonth(date) + months) % 12 + 12) % 12) {
906
+ newDate = this._createDateWithOverflow(this.getYear(newDate), this.getMonth(newDate), 0);
907
+ }
908
+ return newDate;
909
+ };
910
+ /**
911
+ * @param {?} date
912
+ * @param {?} days
913
+ * @return {?}
914
+ */
915
+ NativeDateAdapter.prototype.addCalendarDays = function (date, days) {
916
+ return this._createDateWithOverflow(this.getYear(date), this.getMonth(date), this.getDate(date) + days);
917
+ };
918
+ /**
919
+ * @param {?} date
920
+ * @return {?}
921
+ */
922
+ NativeDateAdapter.prototype.toIso8601 = function (date) {
923
+ return [
924
+ date.getUTCFullYear(),
925
+ this._2digit(date.getUTCMonth() + 1),
926
+ this._2digit(date.getUTCDate())
927
+ ].join('-');
928
+ };
929
+ /**
930
+ * @param {?} iso8601String
931
+ * @return {?}
932
+ */
933
+ NativeDateAdapter.prototype.fromIso8601 = function (iso8601String) {
934
+ // The `Date` constructor accepts formats other than ISO 8601, so we need to make sure the
935
+ // string is the right format first.
936
+ if (ISO_8601_REGEX.test(iso8601String)) {
937
+ var /** @type {?} */ d = new Date(iso8601String);
938
+ if (this.isValid(d)) {
939
+ return d;
940
+ }
941
+ }
942
+ return null;
943
+ };
944
+ /**
945
+ * @param {?} obj
946
+ * @return {?}
947
+ */
948
+ NativeDateAdapter.prototype.isDateInstance = function (obj) {
949
+ return obj instanceof Date;
950
+ };
951
+ /**
952
+ * @param {?} date
953
+ * @return {?}
954
+ */
955
+ NativeDateAdapter.prototype.isValid = function (date) {
956
+ return !isNaN(date.getTime());
957
+ };
958
+ /**
959
+ * Creates a date but allows the month and date to overflow.
960
+ * @param {?} year
961
+ * @param {?} month
962
+ * @param {?} date
963
+ * @return {?}
964
+ */
965
+ NativeDateAdapter.prototype._createDateWithOverflow = function (year, month, date) {
966
+ var /** @type {?} */ result = new Date(year, month, date);
967
+ // We need to correct for the fact that JS native Date treats years in range [0, 99] as
968
+ // abbreviations for 19xx.
969
+ if (year >= 0 && year < 100) {
970
+ result.setFullYear(this.getYear(result) - 1900);
971
+ }
972
+ return result;
973
+ };
974
+ /**
975
+ * Pads a number to make it two digits.
976
+ * @param {?} n The number to pad.
977
+ * @return {?} The padded number.
978
+ */
979
+ NativeDateAdapter.prototype._2digit = function (n) {
980
+ return ('00' + n).slice(-2);
981
+ };
982
+ /**
983
+ * Strip out unicode LTR and RTL characters. Edge and IE insert these into formatted dates while
984
+ * other browsers do not. We remove them to make output consistent and because they interfere with
985
+ * date parsing.
986
+ * @param {?} str The string to strip direction characters from.
987
+ * @return {?} The stripped string.
988
+ */
989
+ NativeDateAdapter.prototype._stripDirectionalityCharacters = function (str) {
990
+ return str.replace(/[\u200e\u200f]/g, '');
991
+ };
992
+ return NativeDateAdapter;
993
+ }(DateAdapter));
994
+ NativeDateAdapter.decorators = [
995
+ { type: _angular_core.Injectable },
996
+ ];
997
+ /**
998
+ * @nocollapse
999
+ */
1000
+ NativeDateAdapter.ctorParameters = function () { return [
1001
+ { type: undefined, decorators: [{ type: _angular_core.Optional }, { type: _angular_core.Inject, args: [MAT_DATE_LOCALE,] },] },
1002
+ ]; };
1003
+ var MD_DATE_FORMATS = new _angular_core.InjectionToken('md-date-formats');
1004
+ var MD_NATIVE_DATE_FORMATS = {
1005
+ parse: {
1006
+ dateInput: null,
1007
+ },
1008
+ display: {
1009
+ dateInput: { year: 'numeric', month: 'numeric', day: 'numeric' },
1010
+ monthYearLabel: { year: 'numeric', month: 'short' },
1011
+ dateA11yLabel: { year: 'numeric', month: 'long', day: 'numeric' },
1012
+ monthYearA11yLabel: { year: 'numeric', month: 'long' },
1013
+ }
1014
+ };
1015
+ var NativeDateModule = (function () {
1016
+ function NativeDateModule() {
1017
+ }
1018
+ return NativeDateModule;
1019
+ }());
1020
+ NativeDateModule.decorators = [
1021
+ { type: _angular_core.NgModule, args: [{
1022
+ providers: [
1023
+ { provide: DateAdapter, useClass: NativeDateAdapter },
1024
+ MAT_DATE_LOCALE_PROVIDER
1025
+ ],
1026
+ },] },
1027
+ ];
1028
+ /**
1029
+ * @nocollapse
1030
+ */
1031
+ NativeDateModule.ctorParameters = function () { return []; };
1032
+ var MdNativeDateModule = (function () {
1033
+ function MdNativeDateModule() {
1034
+ }
1035
+ return MdNativeDateModule;
1036
+ }());
1037
+ MdNativeDateModule.decorators = [
1038
+ { type: _angular_core.NgModule, args: [{
1039
+ imports: [NativeDateModule],
1040
+ providers: [{ provide: MD_DATE_FORMATS, useValue: MD_NATIVE_DATE_FORMATS }],
1041
+ },] },
1042
+ ];
1043
+ /**
1044
+ * @nocollapse
1045
+ */
1046
+ MdNativeDateModule.ctorParameters = function () { return []; };
1047
+ /**
1048
+ * Injection token that can be used to specify the global error options.
1049
+ */
1050
+ var MD_ERROR_GLOBAL_OPTIONS = new _angular_core.InjectionToken('md-error-global-options');
1051
+ var GestureConfig = (function (_super) {
1052
+ __extends(GestureConfig, _super);
1053
+ function GestureConfig() {
1054
+ var _this = _super.call(this) || this;
1055
+ _this._hammer = typeof window !== 'undefined' ? ((window)).Hammer : null;
1056
+ /* List of new event names to add to the gesture support list */
1057
+ _this.events = _this._hammer ? [
1058
+ 'longpress',
1059
+ 'slide',
1060
+ 'slidestart',
1061
+ 'slideend',
1062
+ 'slideright',
1063
+ 'slideleft'
1064
+ ] : [];
1065
+ if (!_this._hammer && _angular_core.isDevMode()) {
1066
+ console.warn('Could not find HammerJS. Certain Angular Material ' +
1067
+ 'components may not work correctly.');
1068
+ }
1069
+ return _this;
1070
+ }
1071
+ /**
1072
+ * Builds Hammer instance manually to add custom recognizers that match the Material Design spec.
1073
+ *
1074
+ * Our gesture names come from the Material Design gestures spec:
1075
+ * https://www.google.com/design/spec/patterns/gestures.html#gestures-touch-mechanics
1076
+ *
1077
+ * More information on default recognizers can be found in Hammer docs:
1078
+ * http://hammerjs.github.io/recognizer-pan/
1079
+ * http://hammerjs.github.io/recognizer-press/
1080
+ *
1081
+ * @param {?} element Element to which to assign the new HammerJS gestures.
1082
+ * @return {?} Newly-created HammerJS instance.
1083
+ */
1084
+ GestureConfig.prototype.buildHammer = function (element) {
1085
+ var /** @type {?} */ mc = new this._hammer(element);
1086
+ // Default Hammer Recognizers.
1087
+ var /** @type {?} */ pan = new this._hammer.Pan();
1088
+ var /** @type {?} */ swipe = new this._hammer.Swipe();
1089
+ var /** @type {?} */ press = new this._hammer.Press();
1090
+ // Notice that a HammerJS recognizer can only depend on one other recognizer once.
1091
+ // Otherwise the previous `recognizeWith` will be dropped.
1092
+ // TODO: Confirm threshold numbers with Material Design UX Team
1093
+ var /** @type {?} */ slide = this._createRecognizer(pan, { event: 'slide', threshold: 0 }, swipe);
1094
+ var /** @type {?} */ longpress = this._createRecognizer(press, { event: 'longpress', time: 500 });
1095
+ // Overwrite the default `pan` event to use the swipe event.
1096
+ pan.recognizeWith(swipe);
1097
+ // Add customized gestures to Hammer manager
1098
+ mc.add([swipe, press, pan, slide, longpress]);
1099
+ return (mc);
1100
+ };
1101
+ /**
1102
+ * Creates a new recognizer, without affecting the default recognizers of HammerJS
1103
+ * @param {?} base
1104
+ * @param {?} options
1105
+ * @param {...?} inheritances
1106
+ * @return {?}
1107
+ */
1108
+ GestureConfig.prototype._createRecognizer = function (base, options) {
1109
+ var inheritances = [];
1110
+ for (var _i = 2; _i < arguments.length; _i++) {
1111
+ inheritances[_i - 2] = arguments[_i];
1112
+ }
1113
+ var /** @type {?} */ recognizer = new ((base.constructor))(options);
1114
+ inheritances.push(base);
1115
+ inheritances.forEach(function (item) { return recognizer.recognizeWith(item); });
1116
+ return recognizer;
1117
+ };
1118
+ return GestureConfig;
1119
+ }(_angular_platformBrowser.HammerGestureConfig));
1120
+ GestureConfig.decorators = [
1121
+ { type: _angular_core.Injectable },
1122
+ ];
1123
+ /**
1124
+ * @nocollapse
1125
+ */
1126
+ GestureConfig.ctorParameters = function () { return []; };
1127
+ /**
1128
+ * Shared directive to count lines inside a text area, such as a list item.
1129
+ * Line elements can be extracted with a \@ContentChildren(MdLine) query, then
1130
+ * counted by checking the query list's length.
1131
+ */
1132
+ var MdLine = (function () {
1133
+ function MdLine() {
1134
+ }
1135
+ return MdLine;
1136
+ }());
1137
+ MdLine.decorators = [
1138
+ { type: _angular_core.Directive, args: [{
1139
+ selector: '[md-line], [mat-line], [mdLine], [matLine]',
1140
+ host: { 'class': 'mat-line' }
1141
+ },] },
1142
+ ];
1143
+ /**
1144
+ * @nocollapse
1145
+ */
1146
+ MdLine.ctorParameters = function () { return []; };
1147
+ var MdLineModule = (function () {
1148
+ function MdLineModule() {
1149
+ }
1150
+ return MdLineModule;
1151
+ }());
1152
+ MdLineModule.decorators = [
1153
+ { type: _angular_core.NgModule, args: [{
1154
+ imports: [MdCommonModule],
1155
+ exports: [MdLine, MdCommonModule],
1156
+ declarations: [MdLine],
1157
+ },] },
1158
+ ];
1159
+ /**
1160
+ * @nocollapse
1161
+ */
1162
+ MdLineModule.ctorParameters = function () { return []; };
1163
+ var RippleState = {};
1164
+ RippleState.FADING_IN = 0;
1165
+ RippleState.VISIBLE = 1;
1166
+ RippleState.FADING_OUT = 2;
1167
+ RippleState.HIDDEN = 3;
1168
+ RippleState[RippleState.FADING_IN] = "FADING_IN";
1169
+ RippleState[RippleState.VISIBLE] = "VISIBLE";
1170
+ RippleState[RippleState.FADING_OUT] = "FADING_OUT";
1171
+ RippleState[RippleState.HIDDEN] = "HIDDEN";
1172
+ /**
1173
+ * Reference to a previously launched ripple element.
1174
+ */
1175
+ var RippleRef = (function () {
1176
+ /**
1177
+ * @param {?} _renderer
1178
+ * @param {?} element
1179
+ * @param {?} config
1180
+ */
1181
+ function RippleRef(_renderer, element, config) {
1182
+ this._renderer = _renderer;
1183
+ this.element = element;
1184
+ this.config = config;
1185
+ /**
1186
+ * Current state of the ripple reference.
1187
+ */
1188
+ this.state = RippleState.HIDDEN;
1189
+ }
1190
+ /**
1191
+ * Fades out the ripple element.
1192
+ * @return {?}
1193
+ */
1194
+ RippleRef.prototype.fadeOut = function () {
1195
+ this._renderer.fadeOutRipple(this);
1196
+ };
1197
+ return RippleRef;
1198
+ }());
1199
+ /**
1200
+ * Fade-in duration for the ripples. Can be modified with the speedFactor option.
1201
+ */
1202
+ var RIPPLE_FADE_IN_DURATION = 450;
1203
+ /**
1204
+ * Fade-out duration for the ripples in milliseconds. This can't be modified by the speedFactor.
1205
+ */
1206
+ var RIPPLE_FADE_OUT_DURATION = 400;
1207
+ /**
1208
+ * Helper service that performs DOM manipulations. Not intended to be used outside this module.
1209
+ * The constructor takes a reference to the ripple directive's host element and a map of DOM
1210
+ * event handlers to be installed on the element that triggers ripple animations.
1211
+ * This will eventually become a custom renderer once Angular support exists.
1212
+ * \@docs-private
1213
+ */
1214
+ var RippleRenderer = (function () {
1215
+ /**
1216
+ * @param {?} elementRef
1217
+ * @param {?} _ngZone
1218
+ * @param {?} _ruler
1219
+ * @param {?} platform
1220
+ */
1221
+ function RippleRenderer(elementRef, _ngZone, _ruler, platform) {
1222
+ this._ngZone = _ngZone;
1223
+ this._ruler = _ruler;
1224
+ /**
1225
+ * Whether the mouse is currently down or not.
1226
+ */
1227
+ this._isMousedown = false;
1228
+ /**
1229
+ * Events to be registered on the trigger element.
1230
+ */
1231
+ this._triggerEvents = new Map();
1232
+ /**
1233
+ * Set of currently active ripple references.
1234
+ */
1235
+ this._activeRipples = new Set();
1236
+ /**
1237
+ * Ripple config for all ripples created by events.
1238
+ */
1239
+ this.rippleConfig = {};
1240
+ /**
1241
+ * Whether mouse ripples should be created or not.
1242
+ */
1243
+ this.rippleDisabled = false;
1244
+ // Only do anything if we're on the browser.
1245
+ if (platform.isBrowser) {
1246
+ this._containerElement = elementRef.nativeElement;
1247
+ // Specify events which need to be registered on the trigger.
1248
+ this._triggerEvents.set('mousedown', this.onMousedown.bind(this));
1249
+ this._triggerEvents.set('mouseup', this.onMouseup.bind(this));
1250
+ this._triggerEvents.set('mouseleave', this.onMouseLeave.bind(this));
1251
+ // By default use the host element as trigger element.
1252
+ this.setTriggerElement(this._containerElement);
1253
+ }
1254
+ }
1255
+ /**
1256
+ * Fades in a ripple at the given coordinates.
1257
+ * @param {?} pageX
1258
+ * @param {?} pageY
1259
+ * @param {?=} config
1260
+ * @return {?}
1261
+ */
1262
+ RippleRenderer.prototype.fadeInRipple = function (pageX, pageY, config) {
1263
+ var _this = this;
1264
+ if (config === void 0) { config = {}; }
1265
+ var /** @type {?} */ containerRect = this._containerElement.getBoundingClientRect();
1266
+ if (config.centered) {
1267
+ pageX = containerRect.left + containerRect.width / 2;
1268
+ pageY = containerRect.top + containerRect.height / 2;
1269
+ }
1270
+ else {
1271
+ // Subtract scroll values from the coordinates because calculations below
1272
+ // are always relative to the viewport rectangle.
1273
+ var /** @type {?} */ scrollPosition = this._ruler.getViewportScrollPosition();
1274
+ pageX -= scrollPosition.left;
1275
+ pageY -= scrollPosition.top;
1276
+ }
1277
+ var /** @type {?} */ radius = config.radius || distanceToFurthestCorner(pageX, pageY, containerRect);
1278
+ var /** @type {?} */ duration = RIPPLE_FADE_IN_DURATION * (1 / (config.speedFactor || 1));
1279
+ var /** @type {?} */ offsetX = pageX - containerRect.left;
1280
+ var /** @type {?} */ offsetY = pageY - containerRect.top;
1281
+ var /** @type {?} */ ripple = document.createElement('div');
1282
+ ripple.classList.add('mat-ripple-element');
1283
+ ripple.style.left = offsetX - radius + "px";
1284
+ ripple.style.top = offsetY - radius + "px";
1285
+ ripple.style.height = radius * 2 + "px";
1286
+ ripple.style.width = radius * 2 + "px";
1287
+ // If the color is not set, the default CSS color will be used.
1288
+ ripple.style.backgroundColor = config.color || null;
1289
+ ripple.style.transitionDuration = duration + "ms";
1290
+ this._containerElement.appendChild(ripple);
1291
+ // By default the browser does not recalculate the styles of dynamically created
1292
+ // ripple elements. This is critical because then the `scale` would not animate properly.
1293
+ enforceStyleRecalculation(ripple);
1294
+ ripple.style.transform = 'scale(1)';
1295
+ // Exposed reference to the ripple that will be returned.
1296
+ var /** @type {?} */ rippleRef = new RippleRef(this, ripple, config);
1297
+ rippleRef.state = RippleState.FADING_IN;
1298
+ // Add the ripple reference to the list of all active ripples.
1299
+ this._activeRipples.add(rippleRef);
1300
+ // Wait for the ripple element to be completely faded in.
1301
+ // Once it's faded in, the ripple can be hidden immediately if the mouse is released.
1302
+ this.runTimeoutOutsideZone(function () {
1303
+ rippleRef.state = RippleState.VISIBLE;
1304
+ if (!config.persistent && !_this._isMousedown) {
1305
+ rippleRef.fadeOut();
1306
+ }
1307
+ }, duration);
1308
+ return rippleRef;
1309
+ };
1310
+ /**
1311
+ * Fades out a ripple reference.
1312
+ * @param {?} rippleRef
1313
+ * @return {?}
1314
+ */
1315
+ RippleRenderer.prototype.fadeOutRipple = function (rippleRef) {
1316
+ // For ripples that are not active anymore, don't re-un the fade-out animation.
1317
+ if (!this._activeRipples.delete(rippleRef)) {
1318
+ return;
1319
+ }
1320
+ var /** @type {?} */ rippleEl = rippleRef.element;
1321
+ rippleEl.style.transitionDuration = RIPPLE_FADE_OUT_DURATION + "ms";
1322
+ rippleEl.style.opacity = '0';
1323
+ rippleRef.state = RippleState.FADING_OUT;
1324
+ // Once the ripple faded out, the ripple can be safely removed from the DOM.
1325
+ this.runTimeoutOutsideZone(function () {
1326
+ rippleRef.state = RippleState.HIDDEN; /** @type {?} */
1327
+ ((rippleEl.parentNode)).removeChild(rippleEl);
1328
+ }, RIPPLE_FADE_OUT_DURATION);
1329
+ };
1330
+ /**
1331
+ * Fades out all currently active ripples.
1332
+ * @return {?}
1333
+ */
1334
+ RippleRenderer.prototype.fadeOutAll = function () {
1335
+ this._activeRipples.forEach(function (ripple) { return ripple.fadeOut(); });
1336
+ };
1337
+ /**
1338
+ * Sets the trigger element and registers the mouse events.
1339
+ * @param {?} element
1340
+ * @return {?}
1341
+ */
1342
+ RippleRenderer.prototype.setTriggerElement = function (element) {
1343
+ var _this = this;
1344
+ // Remove all previously register event listeners from the trigger element.
1345
+ if (this._triggerElement) {
1346
+ this._triggerEvents.forEach(function (fn, type) {
1347
+ ((_this._triggerElement)).removeEventListener(type, fn);
1348
+ });
1349
+ }
1350
+ if (element) {
1351
+ // If the element is not null, register all event listeners on the trigger element.
1352
+ this._ngZone.runOutsideAngular(function () {
1353
+ _this._triggerEvents.forEach(function (fn, type) { return element.addEventListener(type, fn); });
1354
+ });
1355
+ }
1356
+ this._triggerElement = element;
1357
+ };
1358
+ /**
1359
+ * Listener being called on mousedown event.
1360
+ * @param {?} event
1361
+ * @return {?}
1362
+ */
1363
+ RippleRenderer.prototype.onMousedown = function (event) {
1364
+ if (!this.rippleDisabled) {
1365
+ this._isMousedown = true;
1366
+ this.fadeInRipple(event.pageX, event.pageY, this.rippleConfig);
1367
+ }
1368
+ };
1369
+ /**
1370
+ * Listener being called on mouseup event.
1371
+ * @return {?}
1372
+ */
1373
+ RippleRenderer.prototype.onMouseup = function () {
1374
+ this._isMousedown = false;
1375
+ // Fade-out all ripples that are completely visible and not persistent.
1376
+ this._activeRipples.forEach(function (ripple) {
1377
+ if (!ripple.config.persistent && ripple.state === RippleState.VISIBLE) {
1378
+ ripple.fadeOut();
1379
+ }
1380
+ });
1381
+ };
1382
+ /**
1383
+ * Listener being called on mouseleave event.
1384
+ * @return {?}
1385
+ */
1386
+ RippleRenderer.prototype.onMouseLeave = function () {
1387
+ if (this._isMousedown) {
1388
+ this.onMouseup();
1389
+ }
1390
+ };
1391
+ /**
1392
+ * Runs a timeout outside of the Angular zone to avoid triggering the change detection.
1393
+ * @param {?} fn
1394
+ * @param {?=} delay
1395
+ * @return {?}
1396
+ */
1397
+ RippleRenderer.prototype.runTimeoutOutsideZone = function (fn, delay) {
1398
+ if (delay === void 0) { delay = 0; }
1399
+ this._ngZone.runOutsideAngular(function () { return setTimeout(fn, delay); });
1400
+ };
1401
+ return RippleRenderer;
1402
+ }());
1403
+ /**
1404
+ * @param {?} element
1405
+ * @return {?}
1406
+ */
1407
+ function enforceStyleRecalculation(element) {
1408
+ // Enforce a style recalculation by calling `getComputedStyle` and accessing any property.
1409
+ // Calling `getPropertyValue` is important to let optimizers know that this is not a noop.
1410
+ // See: https://gist.github.com/paulirish/5d52fb081b3570c81e3a
1411
+ window.getComputedStyle(element).getPropertyValue('opacity');
1412
+ }
1413
+ /**
1414
+ * Returns the distance from the point (x, y) to the furthest corner of a rectangle.
1415
+ * @param {?} x
1416
+ * @param {?} y
1417
+ * @param {?} rect
1418
+ * @return {?}
1419
+ */
1420
+ function distanceToFurthestCorner(x, y, rect) {
1421
+ var /** @type {?} */ distX = Math.max(Math.abs(x - rect.left), Math.abs(x - rect.right));
1422
+ var /** @type {?} */ distY = Math.max(Math.abs(y - rect.top), Math.abs(y - rect.bottom));
1423
+ return Math.sqrt(distX * distX + distY * distY);
1424
+ }
1425
+ /**
1426
+ * Injection token that can be used to specify the global ripple options.
1427
+ */
1428
+ var MD_RIPPLE_GLOBAL_OPTIONS = new _angular_core.InjectionToken('md-ripple-global-options');
1429
+ var MdRipple = (function () {
1430
+ /**
1431
+ * @param {?} elementRef
1432
+ * @param {?} ngZone
1433
+ * @param {?} ruler
1434
+ * @param {?} platform
1435
+ * @param {?} globalOptions
1436
+ */
1437
+ function MdRipple(elementRef, ngZone, ruler, platform, globalOptions) {
1438
+ /**
1439
+ * If set, the radius in pixels of foreground ripples when fully expanded. If unset, the radius
1440
+ * will be the distance from the center of the ripple to the furthest corner of the host element's
1441
+ * bounding rectangle.
1442
+ */
1443
+ this.radius = 0;
1444
+ /**
1445
+ * If set, the normal duration of ripple animations is divided by this value. For example,
1446
+ * setting it to 0.5 will cause the animations to take twice as long.
1447
+ * A changed speedFactor will not modify the fade-out duration of the ripples.
1448
+ */
1449
+ this.speedFactor = 1;
1450
+ this._rippleRenderer = new RippleRenderer(elementRef, ngZone, ruler, platform);
1451
+ this._globalOptions = globalOptions ? globalOptions : {};
1452
+ this._updateRippleRenderer();
1453
+ }
1454
+ Object.defineProperty(MdRipple.prototype, "_matRippleTrigger", {
1455
+ /**
1456
+ * @return {?}
1457
+ */
1458
+ get: function () { return this.trigger; },
1459
+ /**
1460
+ * @param {?} v
1461
+ * @return {?}
1462
+ */
1463
+ set: function (v) { this.trigger = v; },
1464
+ enumerable: true,
1465
+ configurable: true
1466
+ });
1467
+ Object.defineProperty(MdRipple.prototype, "_matRippleCentered", {
1468
+ /**
1469
+ * @return {?}
1470
+ */
1471
+ get: function () { return this.centered; },
1472
+ /**
1473
+ * @param {?} v
1474
+ * @return {?}
1475
+ */
1476
+ set: function (v) { this.centered = v; },
1477
+ enumerable: true,
1478
+ configurable: true
1479
+ });
1480
+ Object.defineProperty(MdRipple.prototype, "_matRippleDisabled", {
1481
+ /**
1482
+ * @return {?}
1483
+ */
1484
+ get: function () { return this.disabled; },
1485
+ /**
1486
+ * @param {?} v
1487
+ * @return {?}
1488
+ */
1489
+ set: function (v) { this.disabled = v; },
1490
+ enumerable: true,
1491
+ configurable: true
1492
+ });
1493
+ Object.defineProperty(MdRipple.prototype, "_matRippleRadius", {
1494
+ /**
1495
+ * @return {?}
1496
+ */
1497
+ get: function () { return this.radius; },
1498
+ /**
1499
+ * @param {?} v
1500
+ * @return {?}
1501
+ */
1502
+ set: function (v) { this.radius = v; },
1503
+ enumerable: true,
1504
+ configurable: true
1505
+ });
1506
+ Object.defineProperty(MdRipple.prototype, "_matRippleSpeedFactor", {
1507
+ /**
1508
+ * @return {?}
1509
+ */
1510
+ get: function () { return this.speedFactor; },
1511
+ /**
1512
+ * @param {?} v
1513
+ * @return {?}
1514
+ */
1515
+ set: function (v) { this.speedFactor = v; },
1516
+ enumerable: true,
1517
+ configurable: true
1518
+ });
1519
+ Object.defineProperty(MdRipple.prototype, "_matRippleColor", {
1520
+ /**
1521
+ * @return {?}
1522
+ */
1523
+ get: function () { return this.color; },
1524
+ /**
1525
+ * @param {?} v
1526
+ * @return {?}
1527
+ */
1528
+ set: function (v) { this.color = v; },
1529
+ enumerable: true,
1530
+ configurable: true
1531
+ });
1532
+ Object.defineProperty(MdRipple.prototype, "_matRippleUnbounded", {
1533
+ /**
1534
+ * @return {?}
1535
+ */
1536
+ get: function () { return this.unbounded; },
1537
+ /**
1538
+ * @param {?} v
1539
+ * @return {?}
1540
+ */
1541
+ set: function (v) { this.unbounded = v; },
1542
+ enumerable: true,
1543
+ configurable: true
1544
+ });
1545
+ /**
1546
+ * @param {?} changes
1547
+ * @return {?}
1548
+ */
1549
+ MdRipple.prototype.ngOnChanges = function (changes) {
1550
+ if ((changes['trigger'] || changes['_matRippleTrigger']) && this.trigger) {
1551
+ this._rippleRenderer.setTriggerElement(this.trigger);
1552
+ }
1553
+ this._updateRippleRenderer();
1554
+ };
1555
+ /**
1556
+ * @return {?}
1557
+ */
1558
+ MdRipple.prototype.ngOnDestroy = function () {
1559
+ // Set the trigger element to null to cleanup all listeners.
1560
+ this._rippleRenderer.setTriggerElement(null);
1561
+ };
1562
+ /**
1563
+ * Launches a manual ripple at the specified position.
1564
+ * @param {?} pageX
1565
+ * @param {?} pageY
1566
+ * @param {?=} config
1567
+ * @return {?}
1568
+ */
1569
+ MdRipple.prototype.launch = function (pageX, pageY, config) {
1570
+ if (config === void 0) { config = this.rippleConfig; }
1571
+ return this._rippleRenderer.fadeInRipple(pageX, pageY, config);
1572
+ };
1573
+ /**
1574
+ * Fades out all currently showing ripple elements.
1575
+ * @return {?}
1576
+ */
1577
+ MdRipple.prototype.fadeOutAll = function () {
1578
+ this._rippleRenderer.fadeOutAll();
1579
+ };
1580
+ Object.defineProperty(MdRipple.prototype, "rippleConfig", {
1581
+ /**
1582
+ * Ripple configuration from the directive's input values.
1583
+ * @return {?}
1584
+ */
1585
+ get: function () {
1586
+ return {
1587
+ centered: this.centered,
1588
+ speedFactor: this.speedFactor * (this._globalOptions.baseSpeedFactor || 1),
1589
+ radius: this.radius,
1590
+ color: this.color
1591
+ };
1592
+ },
1593
+ enumerable: true,
1594
+ configurable: true
1595
+ });
1596
+ /**
1597
+ * Updates the ripple renderer with the latest ripple configuration.
1598
+ * @return {?}
1599
+ */
1600
+ MdRipple.prototype._updateRippleRenderer = function () {
1601
+ this._rippleRenderer.rippleDisabled = this._globalOptions.disabled || this.disabled;
1602
+ this._rippleRenderer.rippleConfig = this.rippleConfig;
1603
+ };
1604
+ return MdRipple;
1605
+ }());
1606
+ MdRipple.decorators = [
1607
+ { type: _angular_core.Directive, args: [{
1608
+ selector: '[md-ripple], [mat-ripple], [mdRipple], [matRipple]',
1609
+ exportAs: 'mdRipple, matRipple',
1610
+ host: {
1611
+ 'class': 'mat-ripple',
1612
+ '[class.mat-ripple-unbounded]': 'unbounded'
1613
+ }
1614
+ },] },
1615
+ ];
1616
+ /**
1617
+ * @nocollapse
1618
+ */
1619
+ MdRipple.ctorParameters = function () { return [
1620
+ { type: _angular_core.ElementRef, },
1621
+ { type: _angular_core.NgZone, },
1622
+ { type: _angular_cdk_scrolling.ViewportRuler, },
1623
+ { type: _angular_cdk_platform.Platform, },
1624
+ { type: undefined, decorators: [{ type: _angular_core.Optional }, { type: _angular_core.Inject, args: [MD_RIPPLE_GLOBAL_OPTIONS,] },] },
1625
+ ]; };
1626
+ MdRipple.propDecorators = {
1627
+ 'trigger': [{ type: _angular_core.Input, args: ['mdRippleTrigger',] },],
1628
+ 'centered': [{ type: _angular_core.Input, args: ['mdRippleCentered',] },],
1629
+ 'disabled': [{ type: _angular_core.Input, args: ['mdRippleDisabled',] },],
1630
+ 'radius': [{ type: _angular_core.Input, args: ['mdRippleRadius',] },],
1631
+ 'speedFactor': [{ type: _angular_core.Input, args: ['mdRippleSpeedFactor',] },],
1632
+ 'color': [{ type: _angular_core.Input, args: ['mdRippleColor',] },],
1633
+ 'unbounded': [{ type: _angular_core.Input, args: ['mdRippleUnbounded',] },],
1634
+ '_matRippleTrigger': [{ type: _angular_core.Input, args: ['matRippleTrigger',] },],
1635
+ '_matRippleCentered': [{ type: _angular_core.Input, args: ['matRippleCentered',] },],
1636
+ '_matRippleDisabled': [{ type: _angular_core.Input, args: ['matRippleDisabled',] },],
1637
+ '_matRippleRadius': [{ type: _angular_core.Input, args: ['matRippleRadius',] },],
1638
+ '_matRippleSpeedFactor': [{ type: _angular_core.Input, args: ['matRippleSpeedFactor',] },],
1639
+ '_matRippleColor': [{ type: _angular_core.Input, args: ['matRippleColor',] },],
1640
+ '_matRippleUnbounded': [{ type: _angular_core.Input, args: ['matRippleUnbounded',] },],
1641
+ };
1642
+ var MdRippleModule = (function () {
1643
+ function MdRippleModule() {
1644
+ }
1645
+ return MdRippleModule;
1646
+ }());
1647
+ MdRippleModule.decorators = [
1648
+ { type: _angular_core.NgModule, args: [{
1649
+ imports: [MdCommonModule, _angular_cdk_platform.PlatformModule, _angular_cdk_scrolling.ScrollDispatchModule],
1650
+ exports: [MdRipple, MdCommonModule],
1651
+ declarations: [MdRipple],
1652
+ providers: [_angular_cdk_scrolling.VIEWPORT_RULER_PROVIDER],
1653
+ },] },
1654
+ ];
1655
+ /**
1656
+ * @nocollapse
1657
+ */
1658
+ MdRippleModule.ctorParameters = function () { return []; };
1659
+ /**
1660
+ * Component that shows a simplified checkbox without including any kind of "real" checkbox.
1661
+ * Meant to be used when the checkbox is purely decorative and a large number of them will be
1662
+ * included, such as for the options in a multi-select. Uses no SVGs or complex animations.
1663
+ * Note that theming is meant to be handled by the parent element, e.g.
1664
+ * `mat-primary .mat-pseudo-checkbox`.
1665
+ *
1666
+ * Note that this component will be completely invisible to screen-reader users. This is *not*
1667
+ * interchangeable with <md-checkbox> and should *not* be used if the user would directly interact
1668
+ * with the checkbox. The pseudo-checkbox should only be used as an implementation detail of
1669
+ * more complex components that appropriately handle selected / checked state.
1670
+ * \@docs-private
1671
+ */
1672
+ var MdPseudoCheckbox = (function () {
1673
+ function MdPseudoCheckbox() {
1674
+ /**
1675
+ * Display state of the checkbox.
1676
+ */
1677
+ this.state = 'unchecked';
1678
+ /**
1679
+ * Whether the checkbox is disabled.
1680
+ */
1681
+ this.disabled = false;
1682
+ }
1683
+ return MdPseudoCheckbox;
1684
+ }());
1685
+ MdPseudoCheckbox.decorators = [
1686
+ { type: _angular_core.Component, args: [{ encapsulation: _angular_core.ViewEncapsulation.None,
1687
+ preserveWhitespaces: false,
1688
+ changeDetection: _angular_core.ChangeDetectionStrategy.OnPush,
1689
+ selector: 'md-pseudo-checkbox, mat-pseudo-checkbox',
1690
+ 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}"],
1691
+ template: '',
1692
+ host: {
1693
+ 'class': 'mat-pseudo-checkbox',
1694
+ '[class.mat-pseudo-checkbox-indeterminate]': 'state === "indeterminate"',
1695
+ '[class.mat-pseudo-checkbox-checked]': 'state === "checked"',
1696
+ '[class.mat-pseudo-checkbox-disabled]': 'disabled',
1697
+ },
1698
+ },] },
1699
+ ];
1700
+ /**
1701
+ * @nocollapse
1702
+ */
1703
+ MdPseudoCheckbox.ctorParameters = function () { return []; };
1704
+ MdPseudoCheckbox.propDecorators = {
1705
+ 'state': [{ type: _angular_core.Input },],
1706
+ 'disabled': [{ type: _angular_core.Input },],
1707
+ };
1708
+ var MdPseudoCheckboxModule = (function () {
1709
+ function MdPseudoCheckboxModule() {
1710
+ }
1711
+ return MdPseudoCheckboxModule;
1712
+ }());
1713
+ MdPseudoCheckboxModule.decorators = [
1714
+ { type: _angular_core.NgModule, args: [{
1715
+ exports: [MdPseudoCheckbox],
1716
+ declarations: [MdPseudoCheckbox]
1717
+ },] },
1718
+ ];
1719
+ /**
1720
+ * @nocollapse
1721
+ */
1722
+ MdPseudoCheckboxModule.ctorParameters = function () { return []; };
1723
+ /**
1724
+ * \@docs-private
1725
+ */
1726
+ var MdOptgroupBase = (function () {
1727
+ function MdOptgroupBase() {
1728
+ }
1729
+ return MdOptgroupBase;
1730
+ }());
1731
+ var _MdOptgroupMixinBase = mixinDisabled(MdOptgroupBase);
1732
+ // Counter for unique group ids.
1733
+ var _uniqueOptgroupIdCounter = 0;
1734
+ /**
1735
+ * Component that is used to group instances of `md-option`.
1736
+ */
1737
+ var MdOptgroup = (function (_super) {
1738
+ __extends(MdOptgroup, _super);
1739
+ function MdOptgroup() {
1740
+ var _this = _super.apply(this, arguments) || this;
1741
+ /**
1742
+ * Unique id for the underlying label.
1743
+ */
1744
+ _this._labelId = "mat-optgroup-label-" + _uniqueOptgroupIdCounter++;
1745
+ return _this;
1746
+ }
1747
+ return MdOptgroup;
1748
+ }(_MdOptgroupMixinBase));
1749
+ MdOptgroup.decorators = [
1750
+ { type: _angular_core.Component, args: [{ selector: 'md-optgroup, mat-optgroup',
1751
+ template: "<label class=\"mat-optgroup-label\" [id]=\"_labelId\">{{ label }}</label><ng-content select=\"md-option, mat-option\"></ng-content>",
1752
+ encapsulation: _angular_core.ViewEncapsulation.None,
1753
+ preserveWhitespaces: false,
1754
+ changeDetection: _angular_core.ChangeDetectionStrategy.OnPush,
1755
+ inputs: ['disabled'],
1756
+ host: {
1757
+ 'class': 'mat-optgroup',
1758
+ 'role': 'group',
1759
+ '[class.mat-optgroup-disabled]': 'disabled',
1760
+ '[attr.aria-disabled]': 'disabled.toString()',
1761
+ '[attr.aria-labelledby]': '_labelId',
1762
+ }
1763
+ },] },
1764
+ ];
1765
+ /**
1766
+ * @nocollapse
1767
+ */
1768
+ MdOptgroup.ctorParameters = function () { return []; };
1769
+ MdOptgroup.propDecorators = {
1770
+ 'label': [{ type: _angular_core.Input },],
1771
+ };
1772
+ /**
1773
+ * Option IDs need to be unique across components, so this counter exists outside of
1774
+ * the component definition.
1775
+ */
1776
+ var _uniqueIdCounter = 0;
1777
+ /**
1778
+ * Event object emitted by MdOption when selected or deselected.
1779
+ */
1780
+ var MdOptionSelectionChange = (function () {
1781
+ /**
1782
+ * @param {?} source
1783
+ * @param {?=} isUserInput
1784
+ */
1785
+ function MdOptionSelectionChange(source, isUserInput) {
1786
+ if (isUserInput === void 0) { isUserInput = false; }
1787
+ this.source = source;
1788
+ this.isUserInput = isUserInput;
1789
+ }
1790
+ return MdOptionSelectionChange;
1791
+ }());
1792
+ /**
1793
+ * Single option inside of a `<md-select>` element.
1794
+ */
1795
+ var MdOption = (function () {
1796
+ /**
1797
+ * @param {?} _element
1798
+ * @param {?} _changeDetectorRef
1799
+ * @param {?} group
1800
+ */
1801
+ function MdOption(_element, _changeDetectorRef, group) {
1802
+ this._element = _element;
1803
+ this._changeDetectorRef = _changeDetectorRef;
1804
+ this.group = group;
1805
+ this._selected = false;
1806
+ this._active = false;
1807
+ this._multiple = false;
1808
+ this._disableRipple = false;
1809
+ /**
1810
+ * Whether the option is disabled.
1811
+ */
1812
+ this._disabled = false;
1813
+ this._id = "md-option-" + _uniqueIdCounter++;
1814
+ /**
1815
+ * Event emitted when the option is selected or deselected.
1816
+ */
1817
+ this.onSelectionChange = new _angular_core.EventEmitter();
1818
+ }
1819
+ Object.defineProperty(MdOption.prototype, "multiple", {
1820
+ /**
1821
+ * Whether the wrapping component is in multiple selection mode.
1822
+ * @return {?}
1823
+ */
1824
+ get: function () { return this._multiple; },
1825
+ /**
1826
+ * @param {?} value
1827
+ * @return {?}
1828
+ */
1829
+ set: function (value) {
1830
+ if (value !== this._multiple) {
1831
+ this._multiple = value;
1832
+ this._changeDetectorRef.markForCheck();
1833
+ }
1834
+ },
1835
+ enumerable: true,
1836
+ configurable: true
1837
+ });
1838
+ Object.defineProperty(MdOption.prototype, "id", {
1839
+ /**
1840
+ * The unique ID of the option.
1841
+ * @return {?}
1842
+ */
1843
+ get: function () { return this._id; },
1844
+ enumerable: true,
1845
+ configurable: true
1846
+ });
1847
+ Object.defineProperty(MdOption.prototype, "selected", {
1848
+ /**
1849
+ * Whether or not the option is currently selected.
1850
+ * @return {?}
1851
+ */
1852
+ get: function () { return this._selected; },
1853
+ enumerable: true,
1854
+ configurable: true
1855
+ });
1856
+ Object.defineProperty(MdOption.prototype, "disabled", {
1857
+ /**
1858
+ * Whether the option is disabled.
1859
+ * @return {?}
1860
+ */
1861
+ get: function () { return (this.group && this.group.disabled) || this._disabled; },
1862
+ /**
1863
+ * @param {?} value
1864
+ * @return {?}
1865
+ */
1866
+ set: function (value) { this._disabled = _angular_cdk_coercion.coerceBooleanProperty(value); },
1867
+ enumerable: true,
1868
+ configurable: true
1869
+ });
1870
+ Object.defineProperty(MdOption.prototype, "disableRipple", {
1871
+ /**
1872
+ * Whether ripples for the option are disabled.
1873
+ * @return {?}
1874
+ */
1875
+ get: function () { return this._disableRipple; },
1876
+ /**
1877
+ * @param {?} value
1878
+ * @return {?}
1879
+ */
1880
+ set: function (value) {
1881
+ this._disableRipple = value;
1882
+ this._changeDetectorRef.markForCheck();
1883
+ },
1884
+ enumerable: true,
1885
+ configurable: true
1886
+ });
1887
+ Object.defineProperty(MdOption.prototype, "active", {
1888
+ /**
1889
+ * Whether or not the option is currently active and ready to be selected.
1890
+ * An active option displays styles as if it is focused, but the
1891
+ * focus is actually retained somewhere else. This comes in handy
1892
+ * for components like autocomplete where focus must remain on the input.
1893
+ * @return {?}
1894
+ */
1895
+ get: function () {
1896
+ return this._active;
1897
+ },
1898
+ enumerable: true,
1899
+ configurable: true
1900
+ });
1901
+ Object.defineProperty(MdOption.prototype, "viewValue", {
1902
+ /**
1903
+ * The displayed value of the option. It is necessary to show the selected option in the
1904
+ * select's trigger.
1905
+ * @return {?}
1906
+ */
1907
+ get: function () {
1908
+ // TODO(kara): Add input property alternative for node envs.
1909
+ return (this._getHostElement().textContent || '').trim();
1910
+ },
1911
+ enumerable: true,
1912
+ configurable: true
1913
+ });
1914
+ /**
1915
+ * Selects the option.
1916
+ * @return {?}
1917
+ */
1918
+ MdOption.prototype.select = function () {
1919
+ this._selected = true;
1920
+ this._changeDetectorRef.markForCheck();
1921
+ this._emitSelectionChangeEvent();
1922
+ };
1923
+ /**
1924
+ * Deselects the option.
1925
+ * @return {?}
1926
+ */
1927
+ MdOption.prototype.deselect = function () {
1928
+ this._selected = false;
1929
+ this._changeDetectorRef.markForCheck();
1930
+ this._emitSelectionChangeEvent();
1931
+ };
1932
+ /**
1933
+ * Sets focus onto this option.
1934
+ * @return {?}
1935
+ */
1936
+ MdOption.prototype.focus = function () {
1937
+ var /** @type {?} */ element = this._getHostElement();
1938
+ if (typeof element.focus === 'function') {
1939
+ element.focus();
1940
+ }
1941
+ };
1942
+ /**
1943
+ * This method sets display styles on the option to make it appear
1944
+ * active. This is used by the ActiveDescendantKeyManager so key
1945
+ * events will display the proper options as active on arrow key events.
1946
+ * @return {?}
1947
+ */
1948
+ MdOption.prototype.setActiveStyles = function () {
1949
+ if (!this._active) {
1950
+ this._active = true;
1951
+ this._changeDetectorRef.markForCheck();
1952
+ }
1953
+ };
1954
+ /**
1955
+ * This method removes display styles on the option that made it appear
1956
+ * active. This is used by the ActiveDescendantKeyManager so key
1957
+ * events will display the proper options as active on arrow key events.
1958
+ * @return {?}
1959
+ */
1960
+ MdOption.prototype.setInactiveStyles = function () {
1961
+ if (this._active) {
1962
+ this._active = false;
1963
+ this._changeDetectorRef.markForCheck();
1964
+ }
1965
+ };
1966
+ /**
1967
+ * Gets the label to be used when determining whether the option should be focused.
1968
+ * @return {?}
1969
+ */
1970
+ MdOption.prototype.getLabel = function () {
1971
+ return this.viewValue;
1972
+ };
1973
+ /**
1974
+ * Ensures the option is selected when activated from the keyboard.
1975
+ * @param {?} event
1976
+ * @return {?}
1977
+ */
1978
+ MdOption.prototype._handleKeydown = function (event) {
1979
+ if (event.keyCode === _angular_cdk_keycodes.ENTER || event.keyCode === _angular_cdk_keycodes.SPACE) {
1980
+ this._selectViaInteraction();
1981
+ // Prevent the page from scrolling down and form submits.
1982
+ event.preventDefault();
1983
+ }
1984
+ };
1985
+ /**
1986
+ * Selects the option while indicating the selection came from the user. Used to
1987
+ * determine if the select's view -> model callback should be invoked.
1988
+ * @return {?}
1989
+ */
1990
+ MdOption.prototype._selectViaInteraction = function () {
1991
+ if (!this.disabled) {
1992
+ this._selected = this.multiple ? !this._selected : true;
1993
+ this._changeDetectorRef.markForCheck();
1994
+ this._emitSelectionChangeEvent(true);
1995
+ }
1996
+ };
1997
+ /**
1998
+ * Returns the correct tabindex for the option depending on disabled state.
1999
+ * @return {?}
2000
+ */
2001
+ MdOption.prototype._getTabIndex = function () {
2002
+ return this.disabled ? '-1' : '0';
2003
+ };
2004
+ /**
2005
+ * Gets the host DOM element.
2006
+ * @return {?}
2007
+ */
2008
+ MdOption.prototype._getHostElement = function () {
2009
+ return this._element.nativeElement;
2010
+ };
2011
+ /**
2012
+ * Emits the selection change event.
2013
+ * @param {?=} isUserInput
2014
+ * @return {?}
2015
+ */
2016
+ MdOption.prototype._emitSelectionChangeEvent = function (isUserInput) {
2017
+ if (isUserInput === void 0) { isUserInput = false; }
2018
+ this.onSelectionChange.emit(new MdOptionSelectionChange(this, isUserInput));
2019
+ };
2020
+ /**
2021
+ * Counts the amount of option group labels that precede the specified option.
2022
+ * @param {?} optionIndex Index of the option at which to start counting.
2023
+ * @param {?} options Flat list of all of the options.
2024
+ * @param {?} optionGroups Flat list of all of the option groups.
2025
+ * @return {?}
2026
+ */
2027
+ MdOption.countGroupLabelsBeforeOption = function (optionIndex, options, optionGroups) {
2028
+ if (optionGroups.length) {
2029
+ var /** @type {?} */ optionsArray = options.toArray();
2030
+ var /** @type {?} */ groups = optionGroups.toArray();
2031
+ var /** @type {?} */ groupCounter = 0;
2032
+ for (var /** @type {?} */ i = 0; i < optionIndex + 1; i++) {
2033
+ if (optionsArray[i].group && optionsArray[i].group === groups[groupCounter]) {
2034
+ groupCounter++;
2035
+ }
2036
+ }
2037
+ return groupCounter;
2038
+ }
2039
+ return 0;
2040
+ };
2041
+ return MdOption;
2042
+ }());
2043
+ MdOption.decorators = [
2044
+ { type: _angular_core.Component, args: [{ selector: 'md-option, mat-option',
2045
+ host: {
2046
+ 'role': 'option',
2047
+ '[attr.tabindex]': '_getTabIndex()',
2048
+ '[class.mat-selected]': 'selected',
2049
+ '[class.mat-option-multiple]': 'multiple',
2050
+ '[class.mat-active]': 'active',
2051
+ '[id]': 'id',
2052
+ '[attr.aria-selected]': 'selected.toString()',
2053
+ '[attr.aria-disabled]': 'disabled.toString()',
2054
+ '[class.mat-option-disabled]': 'disabled',
2055
+ '(click)': '_selectViaInteraction()',
2056
+ '(keydown)': '_handleKeydown($event)',
2057
+ 'class': 'mat-option',
2058
+ },
2059
+ 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>",
2060
+ encapsulation: _angular_core.ViewEncapsulation.None,
2061
+ preserveWhitespaces: false,
2062
+ changeDetection: _angular_core.ChangeDetectionStrategy.OnPush,
2063
+ viewProviders: [{ provide: MATERIAL_COMPATIBILITY_MODE, useValue: true }],
2064
+ },] },
2065
+ ];
2066
+ /**
2067
+ * @nocollapse
2068
+ */
2069
+ MdOption.ctorParameters = function () { return [
2070
+ { type: _angular_core.ElementRef, },
2071
+ { type: _angular_core.ChangeDetectorRef, },
2072
+ { type: MdOptgroup, decorators: [{ type: _angular_core.Optional },] },
2073
+ ]; };
2074
+ MdOption.propDecorators = {
2075
+ 'value': [{ type: _angular_core.Input },],
2076
+ 'disabled': [{ type: _angular_core.Input },],
2077
+ 'onSelectionChange': [{ type: _angular_core.Output },],
2078
+ };
2079
+ var MdOptionModule = (function () {
2080
+ function MdOptionModule() {
2081
+ }
2082
+ return MdOptionModule;
2083
+ }());
2084
+ MdOptionModule.decorators = [
2085
+ { type: _angular_core.NgModule, args: [{
2086
+ imports: [MdRippleModule, _angular_common.CommonModule, MdPseudoCheckboxModule],
2087
+ exports: [MdOption, MdOptgroup],
2088
+ declarations: [MdOption, MdOptgroup]
2089
+ },] },
2090
+ ];
2091
+ /**
2092
+ * @nocollapse
2093
+ */
2094
+ MdOptionModule.ctorParameters = function () { return []; };
2095
+ /**
2096
+ * InjectionToken that can be used to specify the global placeholder options.
2097
+ */
2098
+ var MD_PLACEHOLDER_GLOBAL_OPTIONS = new _angular_core.InjectionToken('md-placeholder-global-options');
2099
+ /**
2100
+ * @deprecated
2101
+ */
2102
+ var StyleModule = (function () {
2103
+ function StyleModule() {
2104
+ }
2105
+ return StyleModule;
2106
+ }());
2107
+ StyleModule.decorators = [
2108
+ { type: _angular_core.NgModule, args: [{
2109
+ imports: [_angular_cdk_a11y.A11yModule],
2110
+ exports: [_angular_cdk_a11y.A11yModule],
2111
+ },] },
2112
+ ];
2113
+ /**
2114
+ * @nocollapse
2115
+ */
2116
+ StyleModule.ctorParameters = function () { return []; };
2117
+
2118
+ var nextUniqueId$1 = 0;
2119
+ /**
2120
+ * Single error message to be shown underneath the form field.
2121
+ */
2122
+ var MdError = (function () {
2123
+ function MdError() {
2124
+ this.id = "mat-error-" + nextUniqueId$1++;
2125
+ }
2126
+ return MdError;
2127
+ }());
2128
+ MdError.decorators = [
2129
+ { type: _angular_core.Directive, args: [{
2130
+ selector: 'md-error, mat-error',
2131
+ host: {
2132
+ 'class': 'mat-error',
2133
+ 'role': 'alert',
2134
+ '[attr.id]': 'id',
2135
+ }
2136
+ },] },
2137
+ ];
2138
+ /**
2139
+ * @nocollapse
2140
+ */
2141
+ MdError.ctorParameters = function () { return []; };
2142
+ MdError.propDecorators = {
2143
+ 'id': [{ type: _angular_core.Input },],
2144
+ };
2145
+ /**
2146
+ * An interface which allows a control to work inside of a `MdFormField`.
2147
+ * @abstract
2148
+ */
2149
+ var MdFormFieldControl = (function () {
2150
+ function MdFormFieldControl() {
2151
+ }
2152
+ /**
2153
+ * Sets the list of element IDs that currently describe this control.
2154
+ * @abstract
2155
+ * @param {?} ids
2156
+ * @return {?}
2157
+ */
2158
+ MdFormFieldControl.prototype.setDescribedByIds = function (ids) { };
2159
+ /**
2160
+ * Focuses this control.
2161
+ * @abstract
2162
+ * @return {?}
2163
+ */
2164
+ MdFormFieldControl.prototype.focus = function () { };
2165
+ return MdFormFieldControl;
2166
+ }());
2167
+ /**
2168
+ * \@docs-private
2169
+ * @return {?}
2170
+ */
2171
+ function getMdFormFieldPlaceholderConflictError() {
2172
+ return Error('Placeholder attribute and child element were both specified.');
2173
+ }
2174
+ /**
2175
+ * \@docs-private
2176
+ * @param {?} align
2177
+ * @return {?}
2178
+ */
2179
+ function getMdFormFieldDuplicatedHintError(align) {
2180
+ return Error("A hint was already declared for 'align=\"" + align + "\"'.");
2181
+ }
2182
+ /**
2183
+ * \@docs-private
2184
+ * @return {?}
2185
+ */
2186
+ function getMdFormFieldMissingControlError() {
2187
+ return Error('md-form-field must contain a MdFormFieldControl. ' +
2188
+ 'Did you forget to add mdInput to the native input or textarea element?');
2189
+ }
2190
+ var nextUniqueId$2 = 0;
2191
+ /**
2192
+ * Hint text to be shown underneath the form field control.
2193
+ */
2194
+ var MdHint = (function () {
2195
+ function MdHint() {
2196
+ /**
2197
+ * Whether to align the hint label at the start or end of the line.
2198
+ */
2199
+ this.align = 'start';
2200
+ /**
2201
+ * Unique ID for the hint. Used for the aria-describedby on the form field control.
2202
+ */
2203
+ this.id = "mat-hint-" + nextUniqueId$2++;
2204
+ }
2205
+ return MdHint;
2206
+ }());
2207
+ MdHint.decorators = [
2208
+ { type: _angular_core.Directive, args: [{
2209
+ selector: 'md-hint, mat-hint',
2210
+ host: {
2211
+ 'class': 'mat-hint',
2212
+ '[class.mat-right]': 'align == "end"',
2213
+ '[attr.id]': 'id',
2214
+ // Remove align attribute to prevent it from interfering with layout.
2215
+ '[attr.align]': 'null',
2216
+ }
2217
+ },] },
2218
+ ];
2219
+ /**
2220
+ * @nocollapse
2221
+ */
2222
+ MdHint.ctorParameters = function () { return []; };
2223
+ MdHint.propDecorators = {
2224
+ 'align': [{ type: _angular_core.Input },],
2225
+ 'id': [{ type: _angular_core.Input },],
2226
+ };
2227
+ /**
2228
+ * The floating placeholder for an `MdFormField`.
2229
+ */
2230
+ var MdPlaceholder = (function () {
2231
+ function MdPlaceholder() {
2232
+ }
2233
+ return MdPlaceholder;
2234
+ }());
2235
+ MdPlaceholder.decorators = [
2236
+ { type: _angular_core.Directive, args: [{
2237
+ selector: 'md-placeholder, mat-placeholder'
2238
+ },] },
2239
+ ];
2240
+ /**
2241
+ * @nocollapse
2242
+ */
2243
+ MdPlaceholder.ctorParameters = function () { return []; };
2244
+ /**
2245
+ * Prefix to be placed the the front of the form field.
2246
+ */
2247
+ var MdPrefix = (function () {
2248
+ function MdPrefix() {
2249
+ }
2250
+ return MdPrefix;
2251
+ }());
2252
+ MdPrefix.decorators = [
2253
+ { type: _angular_core.Directive, args: [{
2254
+ selector: '[mdPrefix], [matPrefix]',
2255
+ },] },
2256
+ ];
2257
+ /**
2258
+ * @nocollapse
2259
+ */
2260
+ MdPrefix.ctorParameters = function () { return []; };
2261
+ /**
2262
+ * Suffix to be placed at the end of the form field.
2263
+ */
2264
+ var MdSuffix = (function () {
2265
+ function MdSuffix() {
2266
+ }
2267
+ return MdSuffix;
2268
+ }());
2269
+ MdSuffix.decorators = [
2270
+ { type: _angular_core.Directive, args: [{
2271
+ selector: '[mdSuffix], [matSuffix]',
2272
+ },] },
2273
+ ];
2274
+ /**
2275
+ * @nocollapse
2276
+ */
2277
+ MdSuffix.ctorParameters = function () { return []; };
2278
+ var nextUniqueId$1$1 = 0;
2279
+ /**
2280
+ * Container for form controls that applies Material Design styling and behavior.
2281
+ */
2282
+ var MdFormField = (function () {
2283
+ /**
2284
+ * @param {?} _elementRef
2285
+ * @param {?} _changeDetectorRef
2286
+ * @param {?} placeholderOptions
2287
+ */
2288
+ function MdFormField(_elementRef, _changeDetectorRef, placeholderOptions) {
2289
+ this._elementRef = _elementRef;
2290
+ this._changeDetectorRef = _changeDetectorRef;
2291
+ /**
2292
+ * Color of the form field underline, based on the theme.
2293
+ */
2294
+ this.color = 'primary';
2295
+ /**
2296
+ * Override for the logic that disables the placeholder animation in certain cases.
2297
+ */
2298
+ this._showAlwaysAnimate = false;
2299
+ /**
2300
+ * State of the md-hint and md-error animations.
2301
+ */
2302
+ this._subscriptAnimationState = '';
2303
+ this._hintLabel = '';
2304
+ // Unique id for the hint label.
2305
+ this._hintLabelId = "md-hint-" + nextUniqueId$1$1++;
2306
+ this._placeholderOptions = placeholderOptions ? placeholderOptions : {};
2307
+ this.floatPlaceholder = this._placeholderOptions.float || 'auto';
2308
+ }
2309
+ Object.defineProperty(MdFormField.prototype, "dividerColor", {
2310
+ /**
2311
+ * @deprecated Use `color` instead.
2312
+ * @return {?}
2313
+ */
2314
+ get: function () { return this.color; },
2315
+ /**
2316
+ * @param {?} value
2317
+ * @return {?}
2318
+ */
2319
+ set: function (value) { this.color = value; },
2320
+ enumerable: true,
2321
+ configurable: true
2322
+ });
2323
+ Object.defineProperty(MdFormField.prototype, "hideRequiredMarker", {
2324
+ /**
2325
+ * Whether the required marker should be hidden.
2326
+ * @return {?}
2327
+ */
2328
+ get: function () { return this._hideRequiredMarker; },
2329
+ /**
2330
+ * @param {?} value
2331
+ * @return {?}
2332
+ */
2333
+ set: function (value) {
2334
+ this._hideRequiredMarker = _angular_cdk_coercion.coerceBooleanProperty(value);
2335
+ },
2336
+ enumerable: true,
2337
+ configurable: true
2338
+ });
2339
+ Object.defineProperty(MdFormField.prototype, "_shouldAlwaysFloat", {
2340
+ /**
2341
+ * Whether the floating label should always float or not.
2342
+ * @return {?}
2343
+ */
2344
+ get: function () {
2345
+ return this._floatPlaceholder === 'always' && !this._showAlwaysAnimate;
2346
+ },
2347
+ enumerable: true,
2348
+ configurable: true
2349
+ });
2350
+ Object.defineProperty(MdFormField.prototype, "_canPlaceholderFloat", {
2351
+ /**
2352
+ * Whether the placeholder can float or not.
2353
+ * @return {?}
2354
+ */
2355
+ get: function () { return this._floatPlaceholder !== 'never'; },
2356
+ enumerable: true,
2357
+ configurable: true
2358
+ });
2359
+ Object.defineProperty(MdFormField.prototype, "hintLabel", {
2360
+ /**
2361
+ * Text for the form field hint.
2362
+ * @return {?}
2363
+ */
2364
+ get: function () { return this._hintLabel; },
2365
+ /**
2366
+ * @param {?} value
2367
+ * @return {?}
2368
+ */
2369
+ set: function (value) {
2370
+ this._hintLabel = value;
2371
+ this._processHints();
2372
+ },
2373
+ enumerable: true,
2374
+ configurable: true
2375
+ });
2376
+ Object.defineProperty(MdFormField.prototype, "floatPlaceholder", {
2377
+ /**
2378
+ * Whether the placeholder should always float, never float or float as the user types.
2379
+ * @return {?}
2380
+ */
2381
+ get: function () { return this._floatPlaceholder; },
2382
+ /**
2383
+ * @param {?} value
2384
+ * @return {?}
2385
+ */
2386
+ set: function (value) {
2387
+ if (value !== this._floatPlaceholder) {
2388
+ this._floatPlaceholder = value || this._placeholderOptions.float || 'auto';
2389
+ this._changeDetectorRef.markForCheck();
2390
+ }
2391
+ },
2392
+ enumerable: true,
2393
+ configurable: true
2394
+ });
2395
+ /**
2396
+ * @return {?}
2397
+ */
2398
+ MdFormField.prototype.ngAfterContentInit = function () {
2399
+ var _this = this;
2400
+ this._validateControlChild();
2401
+ // Subscribe to changes in the child control state in order to update the form field UI.
2402
+ _angular_cdk_rxjs.startWith.call(this._control.stateChanges, null).subscribe(function () {
2403
+ _this._validatePlaceholders();
2404
+ _this._syncDescribedByIds();
2405
+ _this._changeDetectorRef.markForCheck();
2406
+ });
2407
+ var /** @type {?} */ ngControl = this._control.ngControl;
2408
+ if (ngControl && ngControl.valueChanges) {
2409
+ ngControl.valueChanges.subscribe(function () {
2410
+ _this._changeDetectorRef.markForCheck();
2411
+ });
2412
+ }
2413
+ // Re-validate when the number of hints changes.
2414
+ _angular_cdk_rxjs.startWith.call(this._hintChildren.changes, null).subscribe(function () {
2415
+ _this._processHints();
2416
+ _this._changeDetectorRef.markForCheck();
2417
+ });
2418
+ // Update the aria-described by when the number of errors changes.
2419
+ _angular_cdk_rxjs.startWith.call(this._errorChildren.changes, null).subscribe(function () {
2420
+ _this._syncDescribedByIds();
2421
+ _this._changeDetectorRef.markForCheck();
2422
+ });
2423
+ };
2424
+ /**
2425
+ * @return {?}
2426
+ */
2427
+ MdFormField.prototype.ngAfterContentChecked = function () {
2428
+ this._validateControlChild();
2429
+ };
2430
+ /**
2431
+ * @return {?}
2432
+ */
2433
+ MdFormField.prototype.ngAfterViewInit = function () {
2434
+ // Avoid animations on load.
2435
+ this._subscriptAnimationState = 'enter';
2436
+ this._changeDetectorRef.detectChanges();
2437
+ };
2438
+ /**
2439
+ * Determines whether a class from the NgControl should be forwarded to the host element.
2440
+ * @param {?} prop
2441
+ * @return {?}
2442
+ */
2443
+ MdFormField.prototype._shouldForward = function (prop) {
2444
+ var /** @type {?} */ ngControl = this._control ? this._control.ngControl : null;
2445
+ return ngControl && ((ngControl))[prop];
2446
+ };
2447
+ /**
2448
+ * Whether the form field has a placeholder.
2449
+ * @return {?}
2450
+ */
2451
+ MdFormField.prototype._hasPlaceholder = function () {
2452
+ return !!(this._control.placeholder || this._placeholderChild);
2453
+ };
2454
+ /**
2455
+ * Determines whether to display hints or errors.
2456
+ * @return {?}
2457
+ */
2458
+ MdFormField.prototype._getDisplayedMessages = function () {
2459
+ return (this._errorChildren && this._errorChildren.length > 0 &&
2460
+ this._control.errorState) ? 'error' : 'hint';
2461
+ };
2462
+ /**
2463
+ * Animates the placeholder up and locks it in position.
2464
+ * @return {?}
2465
+ */
2466
+ MdFormField.prototype._animateAndLockPlaceholder = function () {
2467
+ var _this = this;
2468
+ if (this._placeholder && this._canPlaceholderFloat) {
2469
+ this._showAlwaysAnimate = true;
2470
+ this._floatPlaceholder = 'always';
2471
+ _angular_cdk_rxjs.first.call(rxjs_observable_fromEvent.fromEvent(this._placeholder.nativeElement, 'transitionend')).subscribe(function () {
2472
+ _this._showAlwaysAnimate = false;
2473
+ });
2474
+ this._changeDetectorRef.markForCheck();
2475
+ }
2476
+ };
2477
+ /**
2478
+ * Ensure that there is only one placeholder (either `placeholder` attribute on the child control
2479
+ * or child element with the `md-placeholder` directive).
2480
+ * @return {?}
2481
+ */
2482
+ MdFormField.prototype._validatePlaceholders = function () {
2483
+ if (this._control.placeholder && this._placeholderChild) {
2484
+ throw getMdFormFieldPlaceholderConflictError();
2485
+ }
2486
+ };
2487
+ /**
2488
+ * Does any extra processing that is required when handling the hints.
2489
+ * @return {?}
2490
+ */
2491
+ MdFormField.prototype._processHints = function () {
2492
+ this._validateHints();
2493
+ this._syncDescribedByIds();
2494
+ };
2495
+ /**
2496
+ * Ensure that there is a maximum of one of each `<md-hint>` alignment specified, with the
2497
+ * attribute being considered as `align="start"`.
2498
+ * @return {?}
2499
+ */
2500
+ MdFormField.prototype._validateHints = function () {
2501
+ var _this = this;
2502
+ if (this._hintChildren) {
2503
+ var /** @type {?} */ startHint_1;
2504
+ var /** @type {?} */ endHint_1;
2505
+ this._hintChildren.forEach(function (hint) {
2506
+ if (hint.align == 'start') {
2507
+ if (startHint_1 || _this.hintLabel) {
2508
+ throw getMdFormFieldDuplicatedHintError('start');
2509
+ }
2510
+ startHint_1 = hint;
2511
+ }
2512
+ else if (hint.align == 'end') {
2513
+ if (endHint_1) {
2514
+ throw getMdFormFieldDuplicatedHintError('end');
2515
+ }
2516
+ endHint_1 = hint;
2517
+ }
2518
+ });
2519
+ }
2520
+ };
2521
+ /**
2522
+ * Sets the list of element IDs that describe the child control. This allows the control to update
2523
+ * its `aria-describedby` attribute accordingly.
2524
+ * @return {?}
2525
+ */
2526
+ MdFormField.prototype._syncDescribedByIds = function () {
2527
+ if (this._control) {
2528
+ var /** @type {?} */ ids = [];
2529
+ if (this._getDisplayedMessages() === 'hint') {
2530
+ var /** @type {?} */ startHint = this._hintChildren ?
2531
+ this._hintChildren.find(function (hint) { return hint.align === 'start'; }) : null;
2532
+ var /** @type {?} */ endHint = this._hintChildren ?
2533
+ this._hintChildren.find(function (hint) { return hint.align === 'end'; }) : null;
2534
+ if (startHint) {
2535
+ ids.push(startHint.id);
2536
+ }
2537
+ else if (this._hintLabel) {
2538
+ ids.push(this._hintLabelId);
2539
+ }
2540
+ if (endHint) {
2541
+ ids.push(endHint.id);
2542
+ }
2543
+ }
2544
+ else if (this._errorChildren) {
2545
+ ids = this._errorChildren.map(function (mdError) { return mdError.id; });
2546
+ }
2547
+ this._control.setDescribedByIds(ids);
2548
+ }
2549
+ };
2550
+ /**
2551
+ * Throws an error if the form field's control is missing.
2552
+ * @return {?}
2553
+ */
2554
+ MdFormField.prototype._validateControlChild = function () {
2555
+ if (!this._control) {
2556
+ throw getMdFormFieldMissingControlError();
2557
+ }
2558
+ };
2559
+ return MdFormField;
2560
+ }());
2561
+ MdFormField.decorators = [
2562
+ { type: _angular_core.Component, args: [{
2563
+ selector: 'md-input-container, mat-input-container, md-form-field, mat-form-field',
2564
+ template: "<div class=\"mat-input-wrapper mat-form-field-wrapper\"><div class=\"mat-input-flex mat-form-field-flex\" #connectionContainer><div class=\"mat-input-prefix mat-form-field-prefix\" *ngIf=\"_prefixChildren.length\"><ng-content select=\"[mdPrefix], [matPrefix]\"></ng-content></div><div class=\"mat-input-infix mat-form-field-infix\"><ng-content></ng-content><span class=\"mat-input-placeholder-wrapper mat-form-field-placeholder-wrapper\"><label class=\"mat-input-placeholder mat-form-field-placeholder\" [attr.for]=\"_control.id\" [attr.aria-owns]=\"_control.id\" [class.mat-empty]=\"_control.empty && !_shouldAlwaysFloat\" [class.mat-form-field-empty]=\"_control.empty && !_shouldAlwaysFloat\" [class.mat-float]=\"_canPlaceholderFloat\" [class.mat-form-field-float]=\"_canPlaceholderFloat\" [class.mat-accent]=\"color == 'accent'\" [class.mat-warn]=\"color == 'warn'\" #placeholder *ngIf=\"_hasPlaceholder()\"><ng-content select=\"md-placeholder, mat-placeholder\"></ng-content>{{_control.placeholder}} <span class=\"mat-placeholder-required mat-form-field-required-marker\" aria-hidden=\"true\" *ngIf=\"!hideRequiredMarker && _control.required\">*</span></label></span></div><div class=\"mat-input-suffix mat-form-field-suffix\" *ngIf=\"_suffixChildren.length\"><ng-content select=\"[mdSuffix], [matSuffix]\"></ng-content></div></div><div class=\"mat-input-underline mat-form-field-underline\" #underline [class.mat-disabled]=\"_control.disabled\"><span class=\"mat-input-ripple mat-form-field-ripple\" [class.mat-accent]=\"color == 'accent'\" [class.mat-warn]=\"color == 'warn'\"></span></div><div class=\"mat-input-subscript-wrapper mat-form-field-subscript-wrapper\" [ngSwitch]=\"_getDisplayedMessages()\"><div *ngSwitchCase=\"'error'\" [@transitionMessages]=\"_subscriptAnimationState\"><ng-content select=\"md-error, mat-error\"></ng-content></div><div class=\"mat-input-hint-wrapper mat-form-field-hint-wrapper\" *ngSwitchCase=\"'hint'\" [@transitionMessages]=\"_subscriptAnimationState\"><div *ngIf=\"hintLabel\" [id]=\"_hintLabelId\" class=\"mat-hint\">{{hintLabel}}</div><ng-content select=\"md-hint:not([align='end']), mat-hint:not([align='end'])\"></ng-content><div class=\"mat-input-hint-spacer mat-form-field-hint-spacer\"></div><ng-content select=\"md-hint[align='end'], mat-hint[align='end']\"></ng-content></div></div></div>",
2565
+ // MdInput is a directive and can't have styles, so we need to include its styles here.
2566
+ // The MdInput styles are fairly minimal so it shouldn't be a big deal for people who aren't using
2567
+ // MdInput.
2568
+ styles: [".mat-form-field{display:inline-block;position:relative;text-align:left}[dir=rtl] .mat-form-field{text-align:right}.mat-form-field-wrapper{position:relative}.mat-form-field-flex{display:inline-flex;align-items:baseline;width:100%}.mat-form-field-prefix,.mat-form-field-suffix{white-space:nowrap;flex:none}.mat-form-field-prefix .mat-icon,.mat-form-field-suffix .mat-icon{width:1em}.mat-form-field-prefix .mat-icon-button,.mat-form-field-suffix .mat-icon-button{font:inherit;vertical-align:baseline}.mat-form-field-prefix .mat-icon-button .mat-icon,.mat-form-field-suffix .mat-icon-button .mat-icon{font-size:inherit}.mat-form-field-infix{display:block;position:relative;flex:auto}.mat-form-field-autofill-control:-webkit-autofill+.mat-form-field-placeholder-wrapper .mat-form-field-placeholder{display:none}.mat-form-field-autofill-control:-webkit-autofill+.mat-form-field-placeholder-wrapper .mat-form-field-float{display:block;transition:none}.mat-form-field-placeholder-wrapper{position:absolute;left:0;box-sizing:content-box;width:100%;height:100%;overflow:hidden;pointer-events:none}.mat-form-field-placeholder{position:absolute;left:0;font:inherit;pointer-events:none;width:100%;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;transform:perspective(100px);-ms-transform:none;transform-origin:0 0;transition:transform .4s cubic-bezier(.25,.8,.25,1),color .4s cubic-bezier(.25,.8,.25,1),width .4s cubic-bezier(.25,.8,.25,1);display:none}.mat-focused .mat-form-field-placeholder.mat-form-field-float,.mat-form-field-placeholder.mat-form-field-empty,.mat-form-field-placeholder.mat-form-field-float:not(.mat-form-field-empty){display:block}[dir=rtl] .mat-form-field-placeholder{transform-origin:100% 0;left:auto;right:0}.mat-form-field-placeholder:not(.mat-form-field-empty){transition:none}.mat-form-field-underline{position:absolute;height:1px;width:100%}.mat-form-field-underline.mat-disabled{background-position:0;background-color:transparent}.mat-form-field-underline .mat-form-field-ripple{position:absolute;height:1px;top:0;left:0;width:100%;transform-origin:50%;transform:scaleX(.5);visibility:hidden;transition:background-color .3s cubic-bezier(.55,0,.55,.2)}.mat-focused .mat-form-field-underline .mat-form-field-ripple{height:2px}.mat-focused .mat-form-field-underline .mat-form-field-ripple,.mat-form-field-invalid .mat-form-field-underline .mat-form-field-ripple{visibility:visible;transform:scaleX(1);transition:transform 150ms linear,background-color .3s cubic-bezier(.55,0,.55,.2)}.mat-form-field-subscript-wrapper{position:absolute;width:100%;overflow:hidden}.mat-form-field-placeholder-wrapper .mat-icon,.mat-form-field-subscript-wrapper .mat-icon{width:1em;height:1em;font-size:inherit;vertical-align:baseline}.mat-form-field-hint-wrapper{display:flex}.mat-form-field-hint-spacer{flex:1 0 1em}.mat-error{display:block} .mat-input-element{font:inherit;background:0 0;color:currentColor;border:none;outline:0;padding:0;margin:0;width:100%;max-width:100%;vertical-align:bottom}.mat-input-element:-moz-ui-invalid{box-shadow:none}.mat-input-element::placeholder{color:transparent!important}.mat-input-element::-moz-placeholder{color:transparent!important}.mat-input-element::-webkit-input-placeholder{color:transparent!important}.mat-input-element:-ms-input-placeholder{color:transparent!important}textarea.mat-input-element{resize:vertical;overflow:auto}"],
2569
+ animations: [
2570
+ // TODO(mmalerba): Use angular animations for placeholder animation as well.
2571
+ _angular_animations.trigger('transitionMessages', [
2572
+ _angular_animations.state('enter', _angular_animations.style({ opacity: 1, transform: 'translateY(0%)' })),
2573
+ _angular_animations.transition('void => enter', [
2574
+ _angular_animations.style({ opacity: 0, transform: 'translateY(-100%)' }),
2575
+ _angular_animations.animate('300ms cubic-bezier(0.55, 0, 0.55, 0.2)'),
2576
+ ]),
2577
+ ]),
2578
+ ],
2579
+ host: {
2580
+ 'class': 'mat-input-container mat-form-field',
2581
+ '[class.mat-input-invalid]': '_control.errorState',
2582
+ '[class.mat-form-field-invalid]': '_control.errorState',
2583
+ '[class.mat-focused]': '_control.focused',
2584
+ '[class.ng-untouched]': '_shouldForward("untouched")',
2585
+ '[class.ng-touched]': '_shouldForward("touched")',
2586
+ '[class.ng-pristine]': '_shouldForward("pristine")',
2587
+ '[class.ng-dirty]': '_shouldForward("dirty")',
2588
+ '[class.ng-valid]': '_shouldForward("valid")',
2589
+ '[class.ng-invalid]': '_shouldForward("invalid")',
2590
+ '[class.ng-pending]': '_shouldForward("pending")',
2591
+ '(click)': '_control.focus()',
2592
+ },
2593
+ encapsulation: _angular_core.ViewEncapsulation.None,
2594
+ preserveWhitespaces: false,
2595
+ changeDetection: _angular_core.ChangeDetectionStrategy.OnPush,
2596
+ },] },
2597
+ ];
2598
+ /**
2599
+ * @nocollapse
2600
+ */
2601
+ MdFormField.ctorParameters = function () { return [
2602
+ { type: _angular_core.ElementRef, },
2603
+ { type: _angular_core.ChangeDetectorRef, },
2604
+ { type: undefined, decorators: [{ type: _angular_core.Optional }, { type: _angular_core.Inject, args: [MD_PLACEHOLDER_GLOBAL_OPTIONS,] },] },
2605
+ ]; };
2606
+ MdFormField.propDecorators = {
2607
+ 'color': [{ type: _angular_core.Input },],
2608
+ 'dividerColor': [{ type: _angular_core.Input },],
2609
+ 'hideRequiredMarker': [{ type: _angular_core.Input },],
2610
+ 'hintLabel': [{ type: _angular_core.Input },],
2611
+ 'floatPlaceholder': [{ type: _angular_core.Input },],
2612
+ 'underlineRef': [{ type: _angular_core.ViewChild, args: ['underline',] },],
2613
+ '_connectionContainerRef': [{ type: _angular_core.ViewChild, args: ['connectionContainer',] },],
2614
+ '_placeholder': [{ type: _angular_core.ViewChild, args: ['placeholder',] },],
2615
+ '_control': [{ type: _angular_core.ContentChild, args: [MdFormFieldControl,] },],
2616
+ '_placeholderChild': [{ type: _angular_core.ContentChild, args: [MdPlaceholder,] },],
2617
+ '_errorChildren': [{ type: _angular_core.ContentChildren, args: [MdError,] },],
2618
+ '_hintChildren': [{ type: _angular_core.ContentChildren, args: [MdHint,] },],
2619
+ '_prefixChildren': [{ type: _angular_core.ContentChildren, args: [MdPrefix,] },],
2620
+ '_suffixChildren': [{ type: _angular_core.ContentChildren, args: [MdSuffix,] },],
2621
+ };
2622
+ var MdFormFieldModule = (function () {
2623
+ function MdFormFieldModule() {
2624
+ }
2625
+ return MdFormFieldModule;
2626
+ }());
2627
+ MdFormFieldModule.decorators = [
2628
+ { type: _angular_core.NgModule, args: [{
2629
+ declarations: [
2630
+ MdError,
2631
+ MdHint,
2632
+ MdFormField,
2633
+ MdPlaceholder,
2634
+ MdPrefix,
2635
+ MdSuffix,
2636
+ ],
2637
+ imports: [
2638
+ _angular_common.CommonModule,
2639
+ _angular_cdk_platform.PlatformModule,
2640
+ ],
2641
+ exports: [
2642
+ MdError,
2643
+ MdHint,
2644
+ MdFormField,
2645
+ MdPlaceholder,
2646
+ MdPrefix,
2647
+ MdSuffix,
2648
+ ],
2649
+ },] },
2650
+ ];
2651
+ /**
2652
+ * @nocollapse
2653
+ */
2654
+ MdFormFieldModule.ctorParameters = function () { return []; };
2655
+
2656
+ /**
2657
+ * Event object emitted by MdChip when selected or deselected.
2658
+ */
2659
+ var MdChipSelectionChange = (function () {
2660
+ /**
2661
+ * @param {?} source
2662
+ * @param {?} selected
2663
+ * @param {?=} isUserInput
2664
+ */
2665
+ function MdChipSelectionChange(source, selected, isUserInput) {
2666
+ if (isUserInput === void 0) { isUserInput = false; }
2667
+ this.source = source;
2668
+ this.selected = selected;
2669
+ this.isUserInput = isUserInput;
2670
+ }
2671
+ return MdChipSelectionChange;
2672
+ }());
2673
+ /**
2674
+ * \@docs-private
2675
+ */
2676
+ var MdChipBase = (function () {
2677
+ /**
2678
+ * @param {?} _renderer
2679
+ * @param {?} _elementRef
2680
+ */
2681
+ function MdChipBase(_renderer, _elementRef) {
2682
+ this._renderer = _renderer;
2683
+ this._elementRef = _elementRef;
2684
+ }
2685
+ return MdChipBase;
2686
+ }());
2687
+ var _MdChipMixinBase = mixinColor(mixinDisabled(MdChipBase), 'primary');
2688
+ /**
2689
+ * Dummy directive to add CSS class to basic chips.
2690
+ * \@docs-private
2691
+ */
2692
+ var MdBasicChip = (function () {
2693
+ function MdBasicChip() {
2694
+ }
2695
+ return MdBasicChip;
2696
+ }());
2697
+ MdBasicChip.decorators = [
2698
+ { type: _angular_core.Directive, args: [{
2699
+ selector: "md-basic-chip, [md-basic-chip], mat-basic-chip, [mat-basic-chip]",
2700
+ host: { 'class': 'mat-basic-chip' }
2701
+ },] },
2702
+ ];
2703
+ /**
2704
+ * @nocollapse
2705
+ */
2706
+ MdBasicChip.ctorParameters = function () { return []; };
2707
+ /**
2708
+ * Material design styled Chip component. Used inside the MdChipList component.
2709
+ */
2710
+ var MdChip = (function (_super) {
2711
+ __extends(MdChip, _super);
2712
+ /**
2713
+ * @param {?} renderer
2714
+ * @param {?} _elementRef
2715
+ */
2716
+ function MdChip(renderer, _elementRef) {
2717
+ var _this = _super.call(this, renderer, _elementRef) || this;
2718
+ _this._elementRef = _elementRef;
2719
+ _this._selected = false;
2720
+ _this._selectable = true;
2721
+ _this._removable = true;
2722
+ /**
2723
+ * Whether the chip has focus.
2724
+ */
2725
+ _this._hasFocus = false;
2726
+ /**
2727
+ * Emits when the chip is focused.
2728
+ */
2729
+ _this._onFocus = new rxjs_Subject.Subject();
2730
+ /**
2731
+ * Emits when the chip is blured.
2732
+ */
2733
+ _this._onBlur = new rxjs_Subject.Subject();
2734
+ /**
2735
+ * Emitted when the chip is selected or deselected.
2736
+ */
2737
+ _this.selectionChange = new _angular_core.EventEmitter();
2738
+ /**
2739
+ * Emitted when the chip is destroyed.
2740
+ */
2741
+ _this.destroyed = new _angular_core.EventEmitter();
2742
+ /**
2743
+ * Emitted when the chip is destroyed.
2744
+ * @deprecated Use 'destroyed' instead.
2745
+ */
2746
+ _this.destroy = _this.destroyed;
2747
+ /**
2748
+ * Emitted when a chip is to be removed.
2749
+ */
2750
+ _this.removed = new _angular_core.EventEmitter();
2751
+ /**
2752
+ * Emitted when a chip is to be removed.
2753
+ * @deprecated Use `removed` instead.
2754
+ */
2755
+ _this.onRemove = _this.removed;
2756
+ return _this;
2757
+ }
2758
+ Object.defineProperty(MdChip.prototype, "selected", {
2759
+ /**
2760
+ * Whether the chip is selected.
2761
+ * @return {?}
2762
+ */
2763
+ get: function () { return this._selected; },
2764
+ /**
2765
+ * @param {?} value
2766
+ * @return {?}
2767
+ */
2768
+ set: function (value) {
2769
+ this._selected = _angular_cdk_coercion.coerceBooleanProperty(value);
2770
+ this.selectionChange.emit({
2771
+ source: this,
2772
+ isUserInput: false,
2773
+ selected: value
2774
+ });
2775
+ },
2776
+ enumerable: true,
2777
+ configurable: true
2778
+ });
2779
+ Object.defineProperty(MdChip.prototype, "value", {
2780
+ /**
2781
+ * The value of the chip. Defaults to the content inside <md-chip> tags.
2782
+ * @return {?}
2783
+ */
2784
+ get: function () {
2785
+ return this._value != undefined
2786
+ ? this._value
2787
+ : this._elementRef.nativeElement.textContent;
2788
+ },
2789
+ /**
2790
+ * @param {?} newValue
2791
+ * @return {?}
2792
+ */
2793
+ set: function (newValue) { this._value = newValue; },
2794
+ enumerable: true,
2795
+ configurable: true
2796
+ });
2797
+ Object.defineProperty(MdChip.prototype, "selectable", {
2798
+ /**
2799
+ * Whether or not the chips are selectable. When a chip is not selectable,
2800
+ * changes to it's selected state are always ignored.
2801
+ * @return {?}
2802
+ */
2803
+ get: function () { return this._selectable; },
2804
+ /**
2805
+ * @param {?} value
2806
+ * @return {?}
2807
+ */
2808
+ set: function (value) { this._selectable = _angular_cdk_coercion.coerceBooleanProperty(value); },
2809
+ enumerable: true,
2810
+ configurable: true
2811
+ });
2812
+ Object.defineProperty(MdChip.prototype, "removable", {
2813
+ /**
2814
+ * Determines whether or not the chip displays the remove styling and emits (remove) events.
2815
+ * @return {?}
2816
+ */
2817
+ get: function () { return this._removable; },
2818
+ /**
2819
+ * @param {?} value
2820
+ * @return {?}
2821
+ */
2822
+ set: function (value) { this._removable = _angular_cdk_coercion.coerceBooleanProperty(value); },
2823
+ enumerable: true,
2824
+ configurable: true
2825
+ });
2826
+ Object.defineProperty(MdChip.prototype, "ariaSelected", {
2827
+ /**
2828
+ * @return {?}
2829
+ */
2830
+ get: function () {
2831
+ return this.selectable ? this.selected.toString() : null;
2832
+ },
2833
+ enumerable: true,
2834
+ configurable: true
2835
+ });
2836
+ /**
2837
+ * @return {?}
2838
+ */
2839
+ MdChip.prototype.ngOnDestroy = function () {
2840
+ this.destroyed.emit({ chip: this });
2841
+ };
2842
+ /**
2843
+ * Selects the chip.
2844
+ * @return {?}
2845
+ */
2846
+ MdChip.prototype.select = function () {
2847
+ this._selected = true;
2848
+ this.selectionChange.emit({
2849
+ source: this,
2850
+ isUserInput: false,
2851
+ selected: true
2852
+ });
2853
+ };
2854
+ /**
2855
+ * Deselects the chip.
2856
+ * @return {?}
2857
+ */
2858
+ MdChip.prototype.deselect = function () {
2859
+ this._selected = false;
2860
+ this.selectionChange.emit({
2861
+ source: this,
2862
+ isUserInput: false,
2863
+ selected: false
2864
+ });
2865
+ };
2866
+ /**
2867
+ * Select this chip and emit selected event
2868
+ * @return {?}
2869
+ */
2870
+ MdChip.prototype.selectViaInteraction = function () {
2871
+ this._selected = true;
2872
+ // Emit select event when selected changes.
2873
+ this.selectionChange.emit({
2874
+ source: this,
2875
+ isUserInput: true,
2876
+ selected: true
2877
+ });
2878
+ };
2879
+ /**
2880
+ * Toggles the current selected state of this chip.
2881
+ * @param {?=} isUserInput
2882
+ * @return {?}
2883
+ */
2884
+ MdChip.prototype.toggleSelected = function (isUserInput) {
2885
+ if (isUserInput === void 0) { isUserInput = false; }
2886
+ this._selected = !this.selected;
2887
+ this.selectionChange.emit({
2888
+ source: this,
2889
+ isUserInput: isUserInput,
2890
+ selected: this._selected
2891
+ });
2892
+ return this.selected;
2893
+ };
2894
+ /**
2895
+ * Allows for programmatic focusing of the chip.
2896
+ * @return {?}
2897
+ */
2898
+ MdChip.prototype.focus = function () {
2899
+ this._elementRef.nativeElement.focus();
2900
+ this._onFocus.next({ chip: this });
2901
+ };
2902
+ /**
2903
+ * Allows for programmatic removal of the chip. Called by the MdChipList when the DELETE or
2904
+ * BACKSPACE keys are pressed.
2905
+ *
2906
+ * Informs any listeners of the removal request. Does not remove the chip from the DOM.
2907
+ * @return {?}
2908
+ */
2909
+ MdChip.prototype.remove = function () {
2910
+ if (this.removable) {
2911
+ this.removed.emit({ chip: this });
2912
+ }
2913
+ };
2914
+ /**
2915
+ * Ensures events fire properly upon click.
2916
+ * @param {?} event
2917
+ * @return {?}
2918
+ */
2919
+ MdChip.prototype._handleClick = function (event) {
2920
+ // Check disabled
2921
+ if (this.disabled) {
2922
+ return;
2923
+ }
2924
+ event.preventDefault();
2925
+ event.stopPropagation();
2926
+ this.focus();
2927
+ };
2928
+ /**
2929
+ * Handle custom key presses.
2930
+ * @param {?} event
2931
+ * @return {?}
2932
+ */
2933
+ MdChip.prototype._handleKeydown = function (event) {
2934
+ if (this.disabled) {
2935
+ return;
2936
+ }
2937
+ switch (event.keyCode) {
2938
+ case _angular_cdk_keycodes.DELETE:
2939
+ case _angular_cdk_keycodes.BACKSPACE:
2940
+ // If we are removable, remove the focused chip
2941
+ this.remove();
2942
+ // Always prevent so page navigation does not occur
2943
+ event.preventDefault();
2944
+ break;
2945
+ case _angular_cdk_keycodes.SPACE:
2946
+ // If we are selectable, toggle the focused chip
2947
+ if (this.selectable) {
2948
+ this.toggleSelected(true);
2949
+ }
2950
+ // Always prevent space from scrolling the page since the list has focus
2951
+ event.preventDefault();
2952
+ break;
2953
+ }
2954
+ };
2955
+ /**
2956
+ * @return {?}
2957
+ */
2958
+ MdChip.prototype._blur = function () {
2959
+ this._hasFocus = false;
2960
+ this._onBlur.next({ chip: this });
2961
+ };
2962
+ return MdChip;
2963
+ }(_MdChipMixinBase));
2964
+ MdChip.decorators = [
2965
+ { type: _angular_core.Directive, args: [{
2966
+ selector: "md-basic-chip, [md-basic-chip], md-chip, [md-chip],\n mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]",
2967
+ inputs: ['color', 'disabled'],
2968
+ exportAs: 'mdChip, matChip',
2969
+ host: {
2970
+ 'class': 'mat-chip',
2971
+ 'tabindex': '-1',
2972
+ 'role': 'option',
2973
+ '[class.mat-chip-selected]': 'selected',
2974
+ '[attr.disabled]': 'disabled || null',
2975
+ '[attr.aria-disabled]': 'disabled.toString()',
2976
+ '[attr.aria-selected]': 'ariaSelected',
2977
+ '(click)': '_handleClick($event)',
2978
+ '(keydown)': '_handleKeydown($event)',
2979
+ '(focus)': '_hasFocus = true',
2980
+ '(blur)': '_blur()',
2981
+ },
2982
+ },] },
2983
+ ];
2984
+ /**
2985
+ * @nocollapse
2986
+ */
2987
+ MdChip.ctorParameters = function () { return [
2988
+ { type: _angular_core.Renderer2, },
2989
+ { type: _angular_core.ElementRef, },
2990
+ ]; };
2991
+ MdChip.propDecorators = {
2992
+ 'selected': [{ type: _angular_core.Input },],
2993
+ 'value': [{ type: _angular_core.Input },],
2994
+ 'selectable': [{ type: _angular_core.Input },],
2995
+ 'removable': [{ type: _angular_core.Input },],
2996
+ 'selectionChange': [{ type: _angular_core.Output },],
2997
+ 'destroyed': [{ type: _angular_core.Output },],
2998
+ 'destroy': [{ type: _angular_core.Output },],
2999
+ 'removed': [{ type: _angular_core.Output },],
3000
+ 'onRemove': [{ type: _angular_core.Output, args: ['remove',] },],
3001
+ };
3002
+ /**
3003
+ * Applies proper (click) support and adds styling for use with the Material Design "cancel" icon
3004
+ * available at https://material.io/icons/#ic_cancel.
3005
+ *
3006
+ * Example:
3007
+ *
3008
+ * <md-chip>
3009
+ * <md-icon mdChipRemove>cancel</md-icon>
3010
+ * </md-chip>
3011
+ *
3012
+ * You *may* use a custom icon, but you may need to override the `md-chip-remove` positioning styles
3013
+ * to properly center the icon within the chip.
3014
+ */
3015
+ var MdChipRemove = (function () {
3016
+ /**
3017
+ * @param {?} _parentChip
3018
+ */
3019
+ function MdChipRemove(_parentChip) {
3020
+ this._parentChip = _parentChip;
3021
+ }
3022
+ /**
3023
+ * Calls the parent chip's public `remove()` method if applicable.
3024
+ * @return {?}
3025
+ */
3026
+ MdChipRemove.prototype._handleClick = function () {
3027
+ if (this._parentChip.removable) {
3028
+ this._parentChip.remove();
3029
+ }
3030
+ };
3031
+ return MdChipRemove;
3032
+ }());
3033
+ MdChipRemove.decorators = [
3034
+ { type: _angular_core.Directive, args: [{
3035
+ selector: '[mdChipRemove], [matChipRemove]',
3036
+ host: {
3037
+ 'class': 'mat-chip-remove',
3038
+ '(click)': '_handleClick($event)'
3039
+ }
3040
+ },] },
3041
+ ];
3042
+ /**
3043
+ * @nocollapse
3044
+ */
3045
+ MdChipRemove.ctorParameters = function () { return [
3046
+ { type: MdChip, },
3047
+ ]; };
3048
+ // Increasing integer for generating unique ids for chip-list components.
3049
+ var nextUniqueId = 0;
3050
+ /**
3051
+ * Change event object that is emitted when the chip list value has changed.
3052
+ */
3053
+ var MdChipListChange = (function () {
3054
+ /**
3055
+ * @param {?} source
3056
+ * @param {?} value
3057
+ */
3058
+ function MdChipListChange(source, value) {
3059
+ this.source = source;
3060
+ this.value = value;
3061
+ }
3062
+ return MdChipListChange;
3063
+ }());
3064
+ /**
3065
+ * A material design chips component (named ChipList for it's similarity to the List component).
3066
+ */
3067
+ var MdChipList = (function () {
3068
+ /**
3069
+ * @param {?} _renderer
3070
+ * @param {?} _elementRef
3071
+ * @param {?} _changeDetectorRef
3072
+ * @param {?} _dir
3073
+ * @param {?} _parentForm
3074
+ * @param {?} _parentFormGroup
3075
+ * @param {?} ngControl
3076
+ */
3077
+ function MdChipList(_renderer, _elementRef, _changeDetectorRef, _dir, _parentForm, _parentFormGroup, ngControl) {
3078
+ this._renderer = _renderer;
3079
+ this._elementRef = _elementRef;
3080
+ this._changeDetectorRef = _changeDetectorRef;
3081
+ this._dir = _dir;
3082
+ this._parentForm = _parentForm;
3083
+ this._parentFormGroup = _parentFormGroup;
3084
+ this.ngControl = ngControl;
3085
+ /**
3086
+ * Stream that emits whenever the state of the input changes such that the wrapping `MdFormField`
3087
+ * needs to run change detection.
3088
+ */
3089
+ this.stateChanges = new rxjs_Subject.Subject();
3090
+ /**
3091
+ * When a chip is destroyed, we track the index so we can focus the appropriate next chip.
3092
+ */
3093
+ this._lastDestroyedIndex = null;
3094
+ /**
3095
+ * Track which chips we're listening to for focus/destruction.
3096
+ */
3097
+ this._chipSet = new WeakMap();
3098
+ /**
3099
+ * Subscription to tabbing out from the chip list.
3100
+ */
3101
+ this._tabOutSubscription = rxjs_Subscription.Subscription.EMPTY;
3102
+ /**
3103
+ * Whether or not the chip is selectable.
3104
+ */
3105
+ this._selectable = true;
3106
+ /**
3107
+ * Whether the component is in multiple selection mode.
3108
+ */
3109
+ this._multiple = false;
3110
+ /**
3111
+ * Uid of the chip list
3112
+ */
3113
+ this._uid = "md-chip-list-" + nextUniqueId++;
3114
+ /**
3115
+ * Whether this is required
3116
+ */
3117
+ this._required = false;
3118
+ /**
3119
+ * Whether this is disabled
3120
+ */
3121
+ this._disabled = false;
3122
+ /**
3123
+ * Tab index for the chip list.
3124
+ */
3125
+ this._tabIndex = 0;
3126
+ /**
3127
+ * User defined tab index.
3128
+ * When it is not null, use user defined tab index. Otherwise use _tabIndex
3129
+ */
3130
+ this._userTabIndex = null;
3131
+ /**
3132
+ * Function when touched
3133
+ */
3134
+ this._onTouched = function () { };
3135
+ /**
3136
+ * Function when changed
3137
+ */
3138
+ this._onChange = function () { };
3139
+ /**
3140
+ * Comparison function to specify which option is displayed. Defaults to object equality.
3141
+ */
3142
+ this._compareWith = function (o1, o2) { return o1 === o2; };
3143
+ /**
3144
+ * Orientation of the chip list.
3145
+ */
3146
+ this.ariaOrientation = 'horizontal';
3147
+ /**
3148
+ * Event emitted when the selected chip list value has been changed by the user.
3149
+ */
3150
+ this.change = new _angular_core.EventEmitter();
3151
+ /**
3152
+ * Event that emits whenever the raw value of the chip-list changes. This is here primarily
3153
+ * to facilitate the two-way binding for the `value` input.
3154
+ * \@docs-private
3155
+ */
3156
+ this.valueChange = new _angular_core.EventEmitter();
3157
+ if (this.ngControl) {
3158
+ this.ngControl.valueAccessor = this;
3159
+ }
3160
+ }
3161
+ Object.defineProperty(MdChipList.prototype, "selected", {
3162
+ /**
3163
+ * The array of selected chips inside chip list.
3164
+ * @return {?}
3165
+ */
3166
+ get: function () {
3167
+ return this.multiple ? this._selectionModel.selected : this._selectionModel.selected[0];
3168
+ },
3169
+ enumerable: true,
3170
+ configurable: true
3171
+ });
3172
+ Object.defineProperty(MdChipList.prototype, "multiple", {
3173
+ /**
3174
+ * Whether the user should be allowed to select multiple chips.
3175
+ * @return {?}
3176
+ */
3177
+ get: function () { return this._multiple; },
3178
+ /**
3179
+ * @param {?} value
3180
+ * @return {?}
3181
+ */
3182
+ set: function (value) {
3183
+ this._multiple = _angular_cdk_coercion.coerceBooleanProperty(value);
3184
+ },
3185
+ enumerable: true,
3186
+ configurable: true
3187
+ });
3188
+ Object.defineProperty(MdChipList.prototype, "compareWith", {
3189
+ /**
3190
+ * A function to compare the option values with the selected values. The first argument
3191
+ * is a value from an option. The second is a value from the selection. A boolean
3192
+ * should be returned.
3193
+ * @return {?}
3194
+ */
3195
+ get: function () { return this._compareWith; },
3196
+ /**
3197
+ * @param {?} fn
3198
+ * @return {?}
3199
+ */
3200
+ set: function (fn) {
3201
+ this._compareWith = fn;
3202
+ if (this._selectionModel) {
3203
+ // A different comparator means the selection could change.
3204
+ this._initializeSelection();
3205
+ }
3206
+ },
3207
+ enumerable: true,
3208
+ configurable: true
3209
+ });
3210
+ Object.defineProperty(MdChipList.prototype, "value", {
3211
+ /**
3212
+ * Required for FormFieldControl
3213
+ * @return {?}
3214
+ */
3215
+ get: function () { return this._value; },
3216
+ /**
3217
+ * @param {?} newValue
3218
+ * @return {?}
3219
+ */
3220
+ set: function (newValue) {
3221
+ this.writeValue(newValue);
3222
+ this._value = newValue;
3223
+ },
3224
+ enumerable: true,
3225
+ configurable: true
3226
+ });
3227
+ Object.defineProperty(MdChipList.prototype, "id", {
3228
+ /**
3229
+ * @return {?}
3230
+ */
3231
+ get: function () { return this._id || this._uid; },
3232
+ /**
3233
+ * Required for FormFieldControl. The ID of the chip list
3234
+ * @param {?} value
3235
+ * @return {?}
3236
+ */
3237
+ set: function (value) {
3238
+ this._id = value;
3239
+ this.stateChanges.next();
3240
+ },
3241
+ enumerable: true,
3242
+ configurable: true
3243
+ });
3244
+ Object.defineProperty(MdChipList.prototype, "required", {
3245
+ /**
3246
+ * @return {?}
3247
+ */
3248
+ get: function () {
3249
+ return this._required;
3250
+ },
3251
+ /**
3252
+ * Required for FormFieldControl. Whether the chip list is required.
3253
+ * @param {?} value
3254
+ * @return {?}
3255
+ */
3256
+ set: function (value) {
3257
+ this._required = _angular_cdk_coercion.coerceBooleanProperty(value);
3258
+ this.stateChanges.next();
3259
+ },
3260
+ enumerable: true,
3261
+ configurable: true
3262
+ });
3263
+ Object.defineProperty(MdChipList.prototype, "placeholder", {
3264
+ /**
3265
+ * @return {?}
3266
+ */
3267
+ get: function () {
3268
+ return this._chipInput ? this._chipInput.placeholder : this._placeholder;
3269
+ },
3270
+ /**
3271
+ * For FormFieldControl. Use chip input's placholder if there's a chip input
3272
+ * @param {?} value
3273
+ * @return {?}
3274
+ */
3275
+ set: function (value) {
3276
+ this._placeholder = value;
3277
+ this.stateChanges.next();
3278
+ },
3279
+ enumerable: true,
3280
+ configurable: true
3281
+ });
3282
+ Object.defineProperty(MdChipList.prototype, "focused", {
3283
+ /**
3284
+ * Whether any chips or the mdChipInput inside of this chip-list has focus.
3285
+ * @return {?}
3286
+ */
3287
+ get: function () {
3288
+ return this.chips.some(function (chip) { return chip._hasFocus; }) ||
3289
+ (this._chipInput && this._chipInput.focused);
3290
+ },
3291
+ enumerable: true,
3292
+ configurable: true
3293
+ });
3294
+ Object.defineProperty(MdChipList.prototype, "empty", {
3295
+ /**
3296
+ * Whether this chip-list contains no chips and no mdChipInput.
3297
+ * @return {?}
3298
+ */
3299
+ get: function () {
3300
+ return (!this._chipInput || this._chipInput.empty) && this.chips.length === 0;
3301
+ },
3302
+ enumerable: true,
3303
+ configurable: true
3304
+ });
3305
+ Object.defineProperty(MdChipList.prototype, "disabled", {
3306
+ /**
3307
+ * Whether this chip-list is disabled.
3308
+ * @return {?}
3309
+ */
3310
+ get: function () { return this.ngControl ? this.ngControl.disabled : this._disabled; },
3311
+ /**
3312
+ * @param {?} value
3313
+ * @return {?}
3314
+ */
3315
+ set: function (value) { this._disabled = _angular_cdk_coercion.coerceBooleanProperty(value); },
3316
+ enumerable: true,
3317
+ configurable: true
3318
+ });
3319
+ Object.defineProperty(MdChipList.prototype, "errorState", {
3320
+ /**
3321
+ * Whether the chip list is in an error state.
3322
+ * @return {?}
3323
+ */
3324
+ get: function () {
3325
+ var /** @type {?} */ isInvalid = this.ngControl && this.ngControl.invalid;
3326
+ var /** @type {?} */ isTouched = this.ngControl && this.ngControl.touched;
3327
+ var /** @type {?} */ isSubmitted = (this._parentFormGroup && this._parentFormGroup.submitted) ||
3328
+ (this._parentForm && this._parentForm.submitted);
3329
+ return !!(isInvalid && (isTouched || isSubmitted));
3330
+ },
3331
+ enumerable: true,
3332
+ configurable: true
3333
+ });
3334
+ Object.defineProperty(MdChipList.prototype, "selectable", {
3335
+ /**
3336
+ * Whether or not this chip is selectable. When a chip is not selectable,
3337
+ * its selected state is always ignored.
3338
+ * @return {?}
3339
+ */
3340
+ get: function () { return this._selectable; },
3341
+ /**
3342
+ * @param {?} value
3343
+ * @return {?}
3344
+ */
3345
+ set: function (value) { this._selectable = _angular_cdk_coercion.coerceBooleanProperty(value); },
3346
+ enumerable: true,
3347
+ configurable: true
3348
+ });
3349
+ Object.defineProperty(MdChipList.prototype, "tabIndex", {
3350
+ /**
3351
+ * @param {?} value
3352
+ * @return {?}
3353
+ */
3354
+ set: function (value) {
3355
+ this._userTabIndex = value;
3356
+ this._tabIndex = value;
3357
+ },
3358
+ enumerable: true,
3359
+ configurable: true
3360
+ });
3361
+ Object.defineProperty(MdChipList.prototype, "chipSelectionChanges", {
3362
+ /**
3363
+ * Combined stream of all of the child chips' selection change events.
3364
+ * @return {?}
3365
+ */
3366
+ get: function () {
3367
+ return rxjs_observable_merge.merge.apply(void 0, this.chips.map(function (chip) { return chip.selectionChange; }));
3368
+ },
3369
+ enumerable: true,
3370
+ configurable: true
3371
+ });
3372
+ Object.defineProperty(MdChipList.prototype, "chipFocusChanges", {
3373
+ /**
3374
+ * Combined stream of all of the child chips' focus change events.
3375
+ * @return {?}
3376
+ */
3377
+ get: function () {
3378
+ return rxjs_observable_merge.merge.apply(void 0, this.chips.map(function (chip) { return chip._onFocus; }));
3379
+ },
3380
+ enumerable: true,
3381
+ configurable: true
3382
+ });
3383
+ Object.defineProperty(MdChipList.prototype, "chipBlurChanges", {
3384
+ /**
3385
+ * Combined stream of all of the child chips' blur change events.
3386
+ * @return {?}
3387
+ */
3388
+ get: function () {
3389
+ return rxjs_observable_merge.merge.apply(void 0, this.chips.map(function (chip) { return chip._onBlur; }));
3390
+ },
3391
+ enumerable: true,
3392
+ configurable: true
3393
+ });
3394
+ Object.defineProperty(MdChipList.prototype, "chipRemoveChanges", {
3395
+ /**
3396
+ * Combined stream of all of the child chips' remove change events.
3397
+ * @return {?}
3398
+ */
3399
+ get: function () {
3400
+ return rxjs_observable_merge.merge.apply(void 0, this.chips.map(function (chip) { return chip.destroy; }));
3401
+ },
3402
+ enumerable: true,
3403
+ configurable: true
3404
+ });
3405
+ /**
3406
+ * @return {?}
3407
+ */
3408
+ MdChipList.prototype.ngAfterContentInit = function () {
3409
+ var _this = this;
3410
+ this._keyManager = new _angular_cdk_a11y.FocusKeyManager(this.chips).withWrap();
3411
+ // Prevents the chip list from capturing focus and redirecting
3412
+ // it back to the first chip when the user tabs out.
3413
+ this._tabOutSubscription = this._keyManager.tabOut.subscribe(function () {
3414
+ _this._tabIndex = -1;
3415
+ setTimeout(function () { return _this._tabIndex = _this._userTabIndex || 0; });
3416
+ });
3417
+ // When the list changes, re-subscribe
3418
+ this._changeSubscription = _angular_cdk_rxjs.startWith.call(this.chips.changes, null).subscribe(function () {
3419
+ _this._resetChips();
3420
+ // Reset chips selected/deselected status
3421
+ _this._initializeSelection();
3422
+ // Check to see if we need to update our tab index
3423
+ _this._updateTabIndex();
3424
+ // Check to see if we have a destroyed chip and need to refocus
3425
+ _this._updateFocusForDestroyedChips();
3426
+ });
3427
+ };
3428
+ /**
3429
+ * @return {?}
3430
+ */
3431
+ MdChipList.prototype.ngOnInit = function () {
3432
+ this._selectionModel = new _angular_cdk_collections.SelectionModel(this.multiple, undefined, false);
3433
+ this.stateChanges.next();
3434
+ };
3435
+ /**
3436
+ * @return {?}
3437
+ */
3438
+ MdChipList.prototype.ngOnDestroy = function () {
3439
+ this._tabOutSubscription.unsubscribe();
3440
+ if (this._changeSubscription) {
3441
+ this._changeSubscription.unsubscribe();
3442
+ }
3443
+ this._dropSubscriptions();
3444
+ };
3445
+ /**
3446
+ * Associates an HTML input element with this chip list.
3447
+ * @param {?} inputElement
3448
+ * @return {?}
3449
+ */
3450
+ MdChipList.prototype.registerInput = function (inputElement) {
3451
+ this._chipInput = inputElement;
3452
+ };
3453
+ /**
3454
+ * @param {?} ids
3455
+ * @return {?}
3456
+ */
3457
+ MdChipList.prototype.setDescribedByIds = function (ids) { this._ariaDescribedby = ids.join(' '); };
3458
+ /**
3459
+ * @param {?} value
3460
+ * @return {?}
3461
+ */
3462
+ MdChipList.prototype.writeValue = function (value) {
3463
+ if (this.chips) {
3464
+ this._setSelectionByValue(value, false);
3465
+ }
3466
+ };
3467
+ /**
3468
+ * @param {?} fn
3469
+ * @return {?}
3470
+ */
3471
+ MdChipList.prototype.registerOnChange = function (fn) {
3472
+ this._onChange = fn;
3473
+ };
3474
+ /**
3475
+ * @param {?} fn
3476
+ * @return {?}
3477
+ */
3478
+ MdChipList.prototype.registerOnTouched = function (fn) {
3479
+ this._onTouched = fn;
3480
+ };
3481
+ /**
3482
+ * @param {?} disabled
3483
+ * @return {?}
3484
+ */
3485
+ MdChipList.prototype.setDisabledState = function (disabled) {
3486
+ this.disabled = disabled;
3487
+ this._renderer.setProperty(this._elementRef.nativeElement, 'disabled', disabled);
3488
+ this.stateChanges.next();
3489
+ };
3490
+ /**
3491
+ * Focuses the the first non-disabled chip in this chip list, or the associated input when there
3492
+ * are no eligible chips.
3493
+ * @return {?}
3494
+ */
3495
+ MdChipList.prototype.focus = function () {
3496
+ // TODO: ARIA says this should focus the first `selected` chip if any are selected.
3497
+ // Focus on first element if there's no chipInput inside chip-list
3498
+ if (this._chipInput && this._chipInput.focused) {
3499
+ // do nothing
3500
+ }
3501
+ else if (this.chips.length > 0) {
3502
+ this._keyManager.setFirstItemActive();
3503
+ this.stateChanges.next();
3504
+ }
3505
+ else {
3506
+ this._focusInput();
3507
+ this.stateChanges.next();
3508
+ }
3509
+ };
3510
+ /**
3511
+ * Attempt to focus an input if we have one.
3512
+ * @return {?}
3513
+ */
3514
+ MdChipList.prototype._focusInput = function () {
3515
+ if (this._chipInput) {
3516
+ this._chipInput.focus();
3517
+ }
3518
+ };
3519
+ /**
3520
+ * Pass events to the keyboard manager. Available here for tests.
3521
+ * @param {?} event
3522
+ * @return {?}
3523
+ */
3524
+ MdChipList.prototype._keydown = function (event) {
3525
+ var /** @type {?} */ code = event.keyCode;
3526
+ var /** @type {?} */ target = (event.target);
3527
+ var /** @type {?} */ isInputEmpty = this._isInputEmpty(target);
3528
+ var /** @type {?} */ isRtl = this._dir && this._dir.value == 'rtl';
3529
+ var /** @type {?} */ isPrevKey = (code === (isRtl ? _angular_cdk_keycodes.RIGHT_ARROW : _angular_cdk_keycodes.LEFT_ARROW));
3530
+ var /** @type {?} */ isNextKey = (code === (isRtl ? _angular_cdk_keycodes.LEFT_ARROW : _angular_cdk_keycodes.RIGHT_ARROW));
3531
+ var /** @type {?} */ isBackKey = (code === _angular_cdk_keycodes.BACKSPACE || code == _angular_cdk_keycodes.DELETE || code == _angular_cdk_keycodes.UP_ARROW || isPrevKey);
3532
+ // If they are on an empty input and hit backspace/delete/left arrow, focus the last chip
3533
+ if (isInputEmpty && isBackKey) {
3534
+ this._keyManager.setLastItemActive();
3535
+ event.preventDefault();
3536
+ return;
3537
+ }
3538
+ // If they are on a chip, check for space/left/right, otherwise pass to our key manager (like
3539
+ // up/down keys)
3540
+ if (target && target.classList.contains('mat-chip')) {
3541
+ if (isPrevKey) {
3542
+ this._keyManager.setPreviousItemActive();
3543
+ event.preventDefault();
3544
+ }
3545
+ else if (isNextKey) {
3546
+ this._keyManager.setNextItemActive();
3547
+ event.preventDefault();
3548
+ }
3549
+ else {
3550
+ this._keyManager.onKeydown(event);
3551
+ }
3552
+ }
3553
+ this.stateChanges.next();
3554
+ };
3555
+ /**
3556
+ * Check the tab index as you should not be allowed to focus an empty list.
3557
+ * @return {?}
3558
+ */
3559
+ MdChipList.prototype._updateTabIndex = function () {
3560
+ // If we have 0 chips, we should not allow keyboard focus
3561
+ this._tabIndex = this._userTabIndex || (this.chips.length === 0 ? -1 : 0);
3562
+ };
3563
+ /**
3564
+ * Update key manager's active item when chip is deleted.
3565
+ * If the deleted chip is the last chip in chip list, focus the new last chip.
3566
+ * Otherwise focus the next chip in the list.
3567
+ * Save `_lastDestroyedIndex` so we can set the correct focus.
3568
+ * @param {?} chip
3569
+ * @return {?}
3570
+ */
3571
+ MdChipList.prototype._updateKeyManager = function (chip) {
3572
+ var /** @type {?} */ chipIndex = this.chips.toArray().indexOf(chip);
3573
+ if (this._isValidIndex(chipIndex)) {
3574
+ if (chip._hasFocus) {
3575
+ // Check whether the chip is not the last item
3576
+ if (chipIndex < this.chips.length - 1) {
3577
+ this._keyManager.setActiveItem(chipIndex);
3578
+ }
3579
+ else if (chipIndex - 1 >= 0) {
3580
+ this._keyManager.setActiveItem(chipIndex - 1);
3581
+ }
3582
+ }
3583
+ if (this._keyManager.activeItemIndex === chipIndex) {
3584
+ this._lastDestroyedIndex = chipIndex;
3585
+ }
3586
+ }
3587
+ };
3588
+ /**
3589
+ * Checks to see if a focus chip was recently destroyed so that we can refocus the next closest
3590
+ * one.
3591
+ * @return {?}
3592
+ */
3593
+ MdChipList.prototype._updateFocusForDestroyedChips = function () {
3594
+ var /** @type {?} */ chipsArray = this.chips;
3595
+ if (this._lastDestroyedIndex != null && chipsArray.length > 0) {
3596
+ // Check whether the destroyed chip was the last item
3597
+ var /** @type {?} */ newFocusIndex = Math.min(this._lastDestroyedIndex, chipsArray.length - 1);
3598
+ this._keyManager.setActiveItem(newFocusIndex);
3599
+ var /** @type {?} */ focusChip = this._keyManager.activeItem;
3600
+ // Focus the chip
3601
+ if (focusChip) {
3602
+ focusChip.focus();
3603
+ }
3604
+ }
3605
+ else if (chipsArray.length === 0) {
3606
+ this._focusInput();
3607
+ }
3608
+ // Reset our destroyed index
3609
+ this._lastDestroyedIndex = null;
3610
+ };
3611
+ /**
3612
+ * Utility to ensure all indexes are valid.
3613
+ *
3614
+ * @param {?} index The index to be checked.
3615
+ * @return {?} True if the index is valid for our list of chips.
3616
+ */
3617
+ MdChipList.prototype._isValidIndex = function (index) {
3618
+ return index >= 0 && index < this.chips.length;
3619
+ };
3620
+ /**
3621
+ * @param {?} element
3622
+ * @return {?}
3623
+ */
3624
+ MdChipList.prototype._isInputEmpty = function (element) {
3625
+ if (element && element.nodeName.toLowerCase() === 'input') {
3626
+ var /** @type {?} */ input = (element);
3627
+ return !input.value;
3628
+ }
3629
+ return false;
3630
+ };
3631
+ /**
3632
+ * @param {?} value
3633
+ * @param {?=} isUserInput
3634
+ * @return {?}
3635
+ */
3636
+ MdChipList.prototype._setSelectionByValue = function (value, isUserInput) {
3637
+ var _this = this;
3638
+ if (isUserInput === void 0) { isUserInput = true; }
3639
+ this._clearSelection();
3640
+ this.chips.forEach(function (chip) { return chip.deselect(); });
3641
+ if (Array.isArray(value)) {
3642
+ value.forEach(function (currentValue) { return _this._selectValue(currentValue, isUserInput); });
3643
+ this._sortValues();
3644
+ }
3645
+ else {
3646
+ var /** @type {?} */ correspondingChip = this._selectValue(value, isUserInput);
3647
+ // Shift focus to the active item. Note that we shouldn't do this in multiple
3648
+ // mode, because we don't know what chip the user interacted with last.
3649
+ if (correspondingChip) {
3650
+ this._keyManager.setActiveItem(this.chips.toArray().indexOf(correspondingChip));
3651
+ }
3652
+ }
3653
+ };
3654
+ /**
3655
+ * Finds and selects the chip based on its value.
3656
+ * @param {?} value
3657
+ * @param {?=} isUserInput
3658
+ * @return {?} Chip that has the corresponding value.
3659
+ */
3660
+ MdChipList.prototype._selectValue = function (value, isUserInput) {
3661
+ var _this = this;
3662
+ if (isUserInput === void 0) { isUserInput = true; }
3663
+ var /** @type {?} */ correspondingChip = this.chips.find(function (chip) {
3664
+ return chip.value != null && _this._compareWith(chip.value, value);
3665
+ });
3666
+ if (correspondingChip) {
3667
+ isUserInput ? correspondingChip.selectViaInteraction() : correspondingChip.select();
3668
+ this._selectionModel.select(correspondingChip);
3669
+ }
3670
+ return correspondingChip;
3671
+ };
3672
+ /**
3673
+ * @return {?}
3674
+ */
3675
+ MdChipList.prototype._initializeSelection = function () {
3676
+ var _this = this;
3677
+ // Defer setting the value in order to avoid the "Expression
3678
+ // has changed after it was checked" errors from Angular.
3679
+ Promise.resolve().then(function () {
3680
+ _this._setSelectionByValue(_this.ngControl ? _this.ngControl.value : _this._value, false);
3681
+ _this.stateChanges.next();
3682
+ });
3683
+ };
3684
+ /**
3685
+ * Deselects every chip in the list.
3686
+ * @param {?=} skip Chip that should not be deselected.
3687
+ * @return {?}
3688
+ */
3689
+ MdChipList.prototype._clearSelection = function (skip) {
3690
+ this._selectionModel.clear();
3691
+ this.chips.forEach(function (chip) {
3692
+ if (chip !== skip) {
3693
+ chip.deselect();
3694
+ }
3695
+ });
3696
+ this.stateChanges.next();
3697
+ };
3698
+ /**
3699
+ * Sorts the model values, ensuring that they keep the same
3700
+ * order that they have in the panel.
3701
+ * @return {?}
3702
+ */
3703
+ MdChipList.prototype._sortValues = function () {
3704
+ var _this = this;
3705
+ if (this._multiple) {
3706
+ this._selectionModel.clear();
3707
+ this.chips.forEach(function (chip) {
3708
+ if (chip.selected) {
3709
+ _this._selectionModel.select(chip);
3710
+ }
3711
+ });
3712
+ this.stateChanges.next();
3713
+ }
3714
+ };
3715
+ /**
3716
+ * Emits change event to set the model value.
3717
+ * @param {?=} fallbackValue
3718
+ * @return {?}
3719
+ */
3720
+ MdChipList.prototype._propagateChanges = function (fallbackValue) {
3721
+ var /** @type {?} */ valueToEmit = null;
3722
+ if (Array.isArray(this.selected)) {
3723
+ valueToEmit = this.selected.map(function (chip) { return chip.value; });
3724
+ }
3725
+ else {
3726
+ valueToEmit = this.selected ? this.selected.value : fallbackValue;
3727
+ }
3728
+ this._value = valueToEmit;
3729
+ this.change.emit(new MdChipListChange(this, valueToEmit));
3730
+ this.valueChange.emit(valueToEmit);
3731
+ this._onChange(valueToEmit);
3732
+ this._changeDetectorRef.markForCheck();
3733
+ };
3734
+ /**
3735
+ * When blurred, mark the field as touched when focus moved outside the chip list.
3736
+ * @return {?}
3737
+ */
3738
+ MdChipList.prototype._blur = function () {
3739
+ var _this = this;
3740
+ if (!this.disabled) {
3741
+ if (this._chipInput) {
3742
+ // If there's a chip input, we should check whether the focus moved to chip input.
3743
+ // If the focus is not moved to chip input, mark the field as touched. If the focus moved
3744
+ // to chip input, do nothing.
3745
+ // Timeout is needed to wait for the focus() event trigger on chip input.
3746
+ setTimeout(function () {
3747
+ if (!_this.focused) {
3748
+ _this._markAsTouched();
3749
+ }
3750
+ });
3751
+ }
3752
+ else {
3753
+ // If there's no chip input, then mark the field as touched.
3754
+ this._markAsTouched();
3755
+ }
3756
+ }
3757
+ };
3758
+ /**
3759
+ * Mark the field as touched
3760
+ * @return {?}
3761
+ */
3762
+ MdChipList.prototype._markAsTouched = function () {
3763
+ this._onTouched();
3764
+ this._changeDetectorRef.markForCheck();
3765
+ this.stateChanges.next();
3766
+ };
3767
+ /**
3768
+ * @return {?}
3769
+ */
3770
+ MdChipList.prototype._resetChips = function () {
3771
+ this._dropSubscriptions();
3772
+ this._listenToChipsFocus();
3773
+ this._listenToChipsSelection();
3774
+ this._listenToChipsRemoved();
3775
+ };
3776
+ /**
3777
+ * @return {?}
3778
+ */
3779
+ MdChipList.prototype._dropSubscriptions = function () {
3780
+ if (this._chipFocusSubscription) {
3781
+ this._chipFocusSubscription.unsubscribe();
3782
+ this._chipFocusSubscription = null;
3783
+ }
3784
+ if (this._chipBlurSubscription) {
3785
+ this._chipBlurSubscription.unsubscribe();
3786
+ this._chipBlurSubscription = null;
3787
+ }
3788
+ if (this._chipSelectionSubscription) {
3789
+ this._chipSelectionSubscription.unsubscribe();
3790
+ this._chipSelectionSubscription = null;
3791
+ }
3792
+ };
3793
+ /**
3794
+ * Listens to user-generated selection events on each chip.
3795
+ * @return {?}
3796
+ */
3797
+ MdChipList.prototype._listenToChipsSelection = function () {
3798
+ var _this = this;
3799
+ this._chipSelectionSubscription = this.chipSelectionChanges.subscribe(function (event) {
3800
+ event.source.selected
3801
+ ? _this._selectionModel.select(event.source)
3802
+ : _this._selectionModel.deselect(event.source);
3803
+ // For single selection chip list, make sure the deselected value is unselected.
3804
+ if (!_this.multiple) {
3805
+ _this.chips.forEach(function (chip) {
3806
+ if (!_this._selectionModel.isSelected(chip) && chip.selected) {
3807
+ chip.deselect();
3808
+ }
3809
+ });
3810
+ }
3811
+ if (event.isUserInput) {
3812
+ _this._propagateChanges();
3813
+ }
3814
+ });
3815
+ };
3816
+ /**
3817
+ * Listens to user-generated selection events on each chip.
3818
+ * @return {?}
3819
+ */
3820
+ MdChipList.prototype._listenToChipsFocus = function () {
3821
+ var _this = this;
3822
+ this._chipFocusSubscription = this.chipFocusChanges.subscribe(function (event) {
3823
+ var /** @type {?} */ chipIndex = _this.chips.toArray().indexOf(event.chip);
3824
+ if (_this._isValidIndex(chipIndex)) {
3825
+ _this._keyManager.updateActiveItemIndex(chipIndex);
3826
+ }
3827
+ _this.stateChanges.next();
3828
+ });
3829
+ this._chipBlurSubscription = this.chipBlurChanges.subscribe(function (_) {
3830
+ _this._blur();
3831
+ _this.stateChanges.next();
3832
+ });
3833
+ };
3834
+ /**
3835
+ * @return {?}
3836
+ */
3837
+ MdChipList.prototype._listenToChipsRemoved = function () {
3838
+ var _this = this;
3839
+ this._chipRemoveSubscription = this.chipRemoveChanges.subscribe(function (event) {
3840
+ _this._updateKeyManager(event.chip);
3841
+ });
3842
+ };
3843
+ return MdChipList;
3844
+ }());
3845
+ MdChipList.decorators = [
3846
+ { type: _angular_core.Component, args: [{ selector: 'md-chip-list, mat-chip-list',
3847
+ template: "<div class=\"mat-chip-list-wrapper\"><ng-content></ng-content></div>",
3848
+ exportAs: 'mdChipList, matChipList',
3849
+ host: {
3850
+ '[attr.tabindex]': '_tabIndex',
3851
+ '[attr.aria-describedby]': '_ariaDescribedby || null',
3852
+ '[attr.aria-required]': 'required.toString()',
3853
+ '[attr.aria-disabled]': 'disabled.toString()',
3854
+ '[attr.aria-invalid]': 'errorState',
3855
+ '[attr.aria-multiselectable]': 'multiple',
3856
+ '[class.mat-chip-list-disabled]': 'disabled',
3857
+ '[class.mat-chip-list-invalid]': 'errorState',
3858
+ '[class.mat-chip-list-required]': 'required',
3859
+ 'role': 'listbox',
3860
+ '[attr.aria-orientation]': 'ariaOrientation',
3861
+ 'class': 'mat-chip-list',
3862
+ '(focus)': 'focus()',
3863
+ '(blur)': '_blur()',
3864
+ '(keydown)': '_keydown($event)'
3865
+ },
3866
+ providers: [{ provide: MdFormFieldControl, useExisting: MdChipList }],
3867
+ styles: [".mat-chip-list-wrapper{display:flex;flex-direction:row;flex-wrap:wrap;align-items:baseline}.mat-chip:not(.mat-basic-chip){transition:box-shadow 280ms cubic-bezier(.4,0,.2,1);display:inline-flex;padding:7px 12px;border-radius:24px;align-items:center;cursor:default}.mat-chip:not(.mat-basic-chip)+.mat-chip:not(.mat-basic-chip){margin:0 0 3px 8px}[dir=rtl] .mat-chip:not(.mat-basic-chip)+.mat-chip:not(.mat-basic-chip){margin:0 8px 3px 0}.mat-form-field-prefix .mat-chip:not(.mat-basic-chip):last-child{margin-right:8px}[dir=rtl] .mat-form-field-prefix .mat-chip:not(.mat-basic-chip):last-child{margin-left:8px}.mat-chip:not(.mat-basic-chip) .mat-chip-remove.mat-icon{width:1em;height:1em}.mat-chip:not(.mat-basic-chip):focus{box-shadow:0 3px 3px -2px rgba(0,0,0,.2),0 3px 4px 0 rgba(0,0,0,.14),0 1px 8px 0 rgba(0,0,0,.12);outline:0}@media screen and (-ms-high-contrast:active){.mat-chip:not(.mat-basic-chip){outline:solid 1px}}.mat-chip-list-stacked .mat-chip-list-wrapper{display:block}.mat-chip-list-stacked .mat-chip-list-wrapper .mat-chip:not(.mat-basic-chip){display:block;margin:0;margin-bottom:8px}[dir=rtl] .mat-chip-list-stacked .mat-chip-list-wrapper .mat-chip:not(.mat-basic-chip){margin:0;margin-bottom:8px}.mat-chip-list-stacked .mat-chip-list-wrapper .mat-chip:not(.mat-basic-chip):last-child,[dir=rtl] .mat-chip-list-stacked .mat-chip-list-wrapper .mat-chip:not(.mat-basic-chip):last-child{margin-bottom:0}.mat-form-field-prefix .mat-chip-list-wrapper{margin-bottom:8px}.mat-chip-remove{margin-right:-4px;margin-left:6px;cursor:pointer}[dir=rtl] .mat-chip-remove{margin-right:6px;margin-left:-4px}input.mat-chip-input{width:150px;margin:3px}"],
3868
+ encapsulation: _angular_core.ViewEncapsulation.None,
3869
+ preserveWhitespaces: false,
3870
+ changeDetection: _angular_core.ChangeDetectionStrategy.OnPush
3871
+ },] },
3872
+ ];
3873
+ /**
3874
+ * @nocollapse
3875
+ */
3876
+ MdChipList.ctorParameters = function () { return [
3877
+ { type: _angular_core.Renderer2, },
3878
+ { type: _angular_core.ElementRef, },
3879
+ { type: _angular_core.ChangeDetectorRef, },
3880
+ { type: _angular_cdk_bidi.Directionality, decorators: [{ type: _angular_core.Optional },] },
3881
+ { type: _angular_forms.NgForm, decorators: [{ type: _angular_core.Optional },] },
3882
+ { type: _angular_forms.FormGroupDirective, decorators: [{ type: _angular_core.Optional },] },
3883
+ { type: _angular_forms.NgControl, decorators: [{ type: _angular_core.Optional }, { type: _angular_core.Self },] },
3884
+ ]; };
3885
+ MdChipList.propDecorators = {
3886
+ 'multiple': [{ type: _angular_core.Input },],
3887
+ 'compareWith': [{ type: _angular_core.Input },],
3888
+ 'value': [{ type: _angular_core.Input },],
3889
+ 'id': [{ type: _angular_core.Input },],
3890
+ 'required': [{ type: _angular_core.Input },],
3891
+ 'placeholder': [{ type: _angular_core.Input },],
3892
+ 'disabled': [{ type: _angular_core.Input },],
3893
+ 'ariaOrientation': [{ type: _angular_core.Input, args: ['aria-orientation',] },],
3894
+ 'selectable': [{ type: _angular_core.Input },],
3895
+ 'tabIndex': [{ type: _angular_core.Input },],
3896
+ 'change': [{ type: _angular_core.Output },],
3897
+ 'valueChange': [{ type: _angular_core.Output },],
3898
+ 'chips': [{ type: _angular_core.ContentChildren, args: [MdChip,] },],
3899
+ };
3900
+ /**
3901
+ * Directive that adds chip-specific behaviors to an input element inside <md-form-field>.
3902
+ * May be placed inside or outside of an <md-chip-list>.
3903
+ */
3904
+ var MdChipInput = (function () {
3905
+ /**
3906
+ * @param {?} _elementRef
3907
+ */
3908
+ function MdChipInput(_elementRef) {
3909
+ this._elementRef = _elementRef;
3910
+ this.focused = false;
3911
+ this._addOnBlur = false;
3912
+ /**
3913
+ * The list of key codes that will trigger a chipEnd event.
3914
+ *
3915
+ * Defaults to `[ENTER]`.
3916
+ */
3917
+ // TODO(tinayuangao): Support Set here
3918
+ this.separatorKeyCodes = [_angular_cdk_keycodes.ENTER];
3919
+ /**
3920
+ * Emitted when a chip is to be added.
3921
+ */
3922
+ this.chipEnd = new _angular_core.EventEmitter();
3923
+ this._matChipInputTokenEnd = this.chipEnd;
3924
+ this.placeholder = '';
3925
+ this._inputElement = this._elementRef.nativeElement;
3926
+ }
3927
+ Object.defineProperty(MdChipInput.prototype, "chipList", {
3928
+ /**
3929
+ * Register input for chip list
3930
+ * @param {?} value
3931
+ * @return {?}
3932
+ */
3933
+ set: function (value) {
3934
+ if (value) {
3935
+ this._chipList = value;
3936
+ this._chipList.registerInput(this);
3937
+ }
3938
+ },
3939
+ enumerable: true,
3940
+ configurable: true
3941
+ });
3942
+ Object.defineProperty(MdChipInput.prototype, "addOnBlur", {
3943
+ /**
3944
+ * Whether or not the chipEnd event will be emitted when the input is blurred.
3945
+ * @return {?}
3946
+ */
3947
+ get: function () { return this._addOnBlur; },
3948
+ /**
3949
+ * @param {?} value
3950
+ * @return {?}
3951
+ */
3952
+ set: function (value) { this._addOnBlur = _angular_cdk_coercion.coerceBooleanProperty(value); },
3953
+ enumerable: true,
3954
+ configurable: true
3955
+ });
3956
+ Object.defineProperty(MdChipInput.prototype, "matChipList", {
3957
+ /**
3958
+ * @param {?} value
3959
+ * @return {?}
3960
+ */
3961
+ set: function (value) { this.chipList = value; },
3962
+ enumerable: true,
3963
+ configurable: true
3964
+ });
3965
+ Object.defineProperty(MdChipInput.prototype, "matAddOnBlur", {
3966
+ /**
3967
+ * @return {?}
3968
+ */
3969
+ get: function () { return this._addOnBlur; },
3970
+ /**
3971
+ * @param {?} value
3972
+ * @return {?}
3973
+ */
3974
+ set: function (value) { this.addOnBlur = value; },
3975
+ enumerable: true,
3976
+ configurable: true
3977
+ });
3978
+ Object.defineProperty(MdChipInput.prototype, "matSeparatorKeyCodes", {
3979
+ /**
3980
+ * @return {?}
3981
+ */
3982
+ get: function () { return this.separatorKeyCodes; },
3983
+ /**
3984
+ * @param {?} v
3985
+ * @return {?}
3986
+ */
3987
+ set: function (v) { this.separatorKeyCodes = v; },
3988
+ enumerable: true,
3989
+ configurable: true
3990
+ });
3991
+ Object.defineProperty(MdChipInput.prototype, "empty", {
3992
+ /**
3993
+ * @return {?}
3994
+ */
3995
+ get: function () {
3996
+ var /** @type {?} */ value = this._inputElement.value;
3997
+ return value == null || value === '';
3998
+ },
3999
+ enumerable: true,
4000
+ configurable: true
4001
+ });
4002
+ /**
4003
+ * Utility method to make host definition/tests more clear.
4004
+ * @param {?=} event
4005
+ * @return {?}
4006
+ */
4007
+ MdChipInput.prototype._keydown = function (event) {
4008
+ this._emitChipEnd(event);
4009
+ };
4010
+ /**
4011
+ * Checks to see if the blur should emit the (chipEnd) event.
4012
+ * @return {?}
4013
+ */
4014
+ MdChipInput.prototype._blur = function () {
4015
+ if (this.addOnBlur) {
4016
+ this._emitChipEnd();
4017
+ }
4018
+ this.focused = false;
4019
+ // Blur the chip list if it is not focused
4020
+ if (!this._chipList.focused) {
4021
+ this._chipList._blur();
4022
+ }
4023
+ this._chipList.stateChanges.next();
4024
+ };
4025
+ /**
4026
+ * @return {?}
4027
+ */
4028
+ MdChipInput.prototype._focus = function () {
4029
+ this.focused = true;
4030
+ this._chipList.stateChanges.next();
4031
+ };
4032
+ /**
4033
+ * Checks to see if the (chipEnd) event needs to be emitted.
4034
+ * @param {?=} event
4035
+ * @return {?}
4036
+ */
4037
+ MdChipInput.prototype._emitChipEnd = function (event) {
4038
+ if (!this._inputElement.value && !!event) {
4039
+ this._chipList._keydown(event);
4040
+ }
4041
+ if (!event || this.separatorKeyCodes.indexOf(event.keyCode) > -1) {
4042
+ this.chipEnd.emit({ input: this._inputElement, value: this._inputElement.value });
4043
+ if (event) {
4044
+ event.preventDefault();
4045
+ }
4046
+ }
4047
+ };
4048
+ /**
4049
+ * @return {?}
4050
+ */
4051
+ MdChipInput.prototype.focus = function () { this._inputElement.focus(); };
4052
+ return MdChipInput;
4053
+ }());
4054
+ MdChipInput.decorators = [
4055
+ { type: _angular_core.Directive, args: [{
4056
+ selector: 'input[mdChipInputFor], input[matChipInputFor]',
4057
+ host: {
4058
+ 'class': 'mat-chip-input mat-input-element',
4059
+ '(keydown)': '_keydown($event)',
4060
+ '(blur)': '_blur()',
4061
+ '(focus)': '_focus()',
4062
+ }
4063
+ },] },
4064
+ ];
4065
+ /**
4066
+ * @nocollapse
4067
+ */
4068
+ MdChipInput.ctorParameters = function () { return [
4069
+ { type: _angular_core.ElementRef, },
4070
+ ]; };
4071
+ MdChipInput.propDecorators = {
4072
+ 'chipList': [{ type: _angular_core.Input, args: ['mdChipInputFor',] },],
4073
+ 'addOnBlur': [{ type: _angular_core.Input, args: ['mdChipInputAddOnBlur',] },],
4074
+ 'separatorKeyCodes': [{ type: _angular_core.Input, args: ['mdChipInputSeparatorKeyCodes',] },],
4075
+ 'chipEnd': [{ type: _angular_core.Output, args: ['mdChipInputTokenEnd',] },],
4076
+ '_matChipInputTokenEnd': [{ type: _angular_core.Output, args: ['matChipInputTokenEnd',] },],
4077
+ 'matChipList': [{ type: _angular_core.Input, args: ['matChipInputFor',] },],
4078
+ 'matAddOnBlur': [{ type: _angular_core.Input, args: ['matChipInputAddOnBlur',] },],
4079
+ 'matSeparatorKeyCodes': [{ type: _angular_core.Input, args: ['matChipInputSeparatorKeyCodes',] },],
4080
+ 'placeholder': [{ type: _angular_core.Input },],
4081
+ };
4082
+ var MdChipsModule = (function () {
4083
+ function MdChipsModule() {
4084
+ }
4085
+ return MdChipsModule;
4086
+ }());
4087
+ MdChipsModule.decorators = [
4088
+ { type: _angular_core.NgModule, args: [{
4089
+ imports: [],
4090
+ exports: [MdChipList, MdChip, MdChipInput, MdChipRemove, MdChipRemove, MdBasicChip],
4091
+ declarations: [MdChipList, MdChip, MdChipInput, MdChipRemove, MdChipRemove, MdBasicChip]
4092
+ },] },
4093
+ ];
4094
+ /**
4095
+ * @nocollapse
4096
+ */
4097
+ MdChipsModule.ctorParameters = function () { return []; };
4098
+
4099
+ exports.MdChipsModule = MdChipsModule;
4100
+ exports.MdChipListChange = MdChipListChange;
4101
+ exports.MdChipList = MdChipList;
4102
+ exports.MdChipSelectionChange = MdChipSelectionChange;
4103
+ exports.MdChipBase = MdChipBase;
4104
+ exports._MdChipMixinBase = _MdChipMixinBase;
4105
+ exports.MdBasicChip = MdBasicChip;
4106
+ exports.MdChip = MdChip;
4107
+ exports.MdChipRemove = MdChipRemove;
4108
+ exports.MdChipInput = MdChipInput;
4109
+ exports.MatBasicChip = MdBasicChip;
4110
+ exports.MatChip = MdChip;
4111
+ exports.MatChipBase = MdChipBase;
4112
+ exports.MatChipInput = MdChipInput;
4113
+ exports.MatChipListChange = MdChipListChange;
4114
+ exports.MatChipList = MdChipList;
4115
+ exports.MatChipRemove = MdChipRemove;
4116
+ exports.MatChipsModule = MdChipsModule;
4117
+
4118
+ Object.defineProperty(exports, '__esModule', { value: true });
4119
+
4120
+ })));
4121
+ //# sourceMappingURL=material-chips.umd.js.map