@angular/material 6.4.6 → 6.4.7

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 (479) hide show
  1. package/_theming.scss +5 -2
  2. package/autocomplete/typings/autocomplete-trigger.d.ts +12 -1
  3. package/autocomplete/typings/autocomplete.d.ts +1 -1
  4. package/autocomplete/typings/index.metadata.json +1 -1
  5. package/badge/typings/badge.d.ts +6 -2
  6. package/badge/typings/index.metadata.json +1 -1
  7. package/bottom-sheet/typings/bottom-sheet-container.d.ts +1 -1
  8. package/bottom-sheet/typings/index.metadata.json +1 -1
  9. package/bundles/material-autocomplete.umd.js +32 -1
  10. package/bundles/material-autocomplete.umd.js.map +1 -1
  11. package/bundles/material-autocomplete.umd.min.js +1 -1
  12. package/bundles/material-autocomplete.umd.min.js.map +1 -1
  13. package/bundles/material-badge.umd.js +6 -2
  14. package/bundles/material-badge.umd.js.map +1 -1
  15. package/bundles/material-badge.umd.min.js +1 -1
  16. package/bundles/material-badge.umd.min.js.map +1 -1
  17. package/bundles/material-bottom-sheet.umd.js.map +1 -1
  18. package/bundles/material-bottom-sheet.umd.min.js.map +1 -1
  19. package/bundles/material-button-toggle.umd.js +2 -1
  20. package/bundles/material-button-toggle.umd.js.map +1 -1
  21. package/bundles/material-button-toggle.umd.min.js +1 -1
  22. package/bundles/material-button-toggle.umd.min.js.map +1 -1
  23. package/bundles/material-card.umd.js +1 -1
  24. package/bundles/material-card.umd.js.map +1 -1
  25. package/bundles/material-card.umd.min.js +1 -1
  26. package/bundles/material-card.umd.min.js.map +1 -1
  27. package/bundles/material-checkbox.umd.js.map +1 -1
  28. package/bundles/material-checkbox.umd.min.js.map +1 -1
  29. package/bundles/material-chips.umd.js +104 -92
  30. package/bundles/material-chips.umd.js.map +1 -1
  31. package/bundles/material-chips.umd.min.js +1 -1
  32. package/bundles/material-chips.umd.min.js.map +1 -1
  33. package/bundles/material-core.umd.js +13 -16
  34. package/bundles/material-core.umd.js.map +1 -1
  35. package/bundles/material-core.umd.min.js +2 -2
  36. package/bundles/material-core.umd.min.js.map +1 -1
  37. package/bundles/material-datepicker.umd.js +20 -4
  38. package/bundles/material-datepicker.umd.js.map +1 -1
  39. package/bundles/material-datepicker.umd.min.js +2 -2
  40. package/bundles/material-datepicker.umd.min.js.map +1 -1
  41. package/bundles/material-dialog.umd.js.map +1 -1
  42. package/bundles/material-dialog.umd.min.js.map +1 -1
  43. package/bundles/material-expansion.umd.js +200 -74
  44. package/bundles/material-expansion.umd.js.map +1 -1
  45. package/bundles/material-expansion.umd.min.js +1 -1
  46. package/bundles/material-expansion.umd.min.js.map +1 -1
  47. package/bundles/material-form-field.umd.js +29 -18
  48. package/bundles/material-form-field.umd.js.map +1 -1
  49. package/bundles/material-form-field.umd.min.js +1 -1
  50. package/bundles/material-form-field.umd.min.js.map +1 -1
  51. package/bundles/material-grid-list.umd.js +10 -34
  52. package/bundles/material-grid-list.umd.js.map +1 -1
  53. package/bundles/material-grid-list.umd.min.js +1 -1
  54. package/bundles/material-grid-list.umd.min.js.map +1 -1
  55. package/bundles/material-icon.umd.js.map +1 -1
  56. package/bundles/material-icon.umd.min.js.map +1 -1
  57. package/bundles/material-input.umd.js +13 -6
  58. package/bundles/material-input.umd.js.map +1 -1
  59. package/bundles/material-input.umd.min.js +1 -1
  60. package/bundles/material-input.umd.min.js.map +1 -1
  61. package/bundles/material-list.umd.js +4 -4
  62. package/bundles/material-list.umd.js.map +1 -1
  63. package/bundles/material-list.umd.min.js +5 -5
  64. package/bundles/material-list.umd.min.js.map +1 -1
  65. package/bundles/material-menu.umd.js +10 -9
  66. package/bundles/material-menu.umd.js.map +1 -1
  67. package/bundles/material-menu.umd.min.js +1 -1
  68. package/bundles/material-menu.umd.min.js.map +1 -1
  69. package/bundles/material-progress-bar.umd.js +28 -10
  70. package/bundles/material-progress-bar.umd.js.map +1 -1
  71. package/bundles/material-progress-bar.umd.min.js +1 -1
  72. package/bundles/material-progress-bar.umd.min.js.map +1 -1
  73. package/bundles/material-radio.umd.js.map +1 -1
  74. package/bundles/material-radio.umd.min.js.map +1 -1
  75. package/bundles/material-select.umd.js +8 -3
  76. package/bundles/material-select.umd.js.map +1 -1
  77. package/bundles/material-select.umd.min.js +1 -1
  78. package/bundles/material-select.umd.min.js.map +1 -1
  79. package/bundles/material-sidenav.umd.js +5 -1
  80. package/bundles/material-sidenav.umd.js.map +1 -1
  81. package/bundles/material-sidenav.umd.min.js +1 -1
  82. package/bundles/material-sidenav.umd.min.js.map +1 -1
  83. package/bundles/material-slide-toggle.umd.js +1 -1
  84. package/bundles/material-slide-toggle.umd.js.map +1 -1
  85. package/bundles/material-slide-toggle.umd.min.js +1 -1
  86. package/bundles/material-slide-toggle.umd.min.js.map +1 -1
  87. package/bundles/material-slider.umd.js +1 -1
  88. package/bundles/material-slider.umd.js.map +1 -1
  89. package/bundles/material-slider.umd.min.js +1 -1
  90. package/bundles/material-slider.umd.min.js.map +1 -1
  91. package/bundles/material-snack-bar.umd.js.map +1 -1
  92. package/bundles/material-snack-bar.umd.min.js.map +1 -1
  93. package/bundles/material-stepper.umd.js +30 -18
  94. package/bundles/material-stepper.umd.js.map +1 -1
  95. package/bundles/material-stepper.umd.min.js +1 -1
  96. package/bundles/material-stepper.umd.min.js.map +1 -1
  97. package/bundles/material-table.umd.js +31 -31
  98. package/bundles/material-table.umd.js.map +1 -1
  99. package/bundles/material-table.umd.min.js +1 -1
  100. package/bundles/material-table.umd.min.js.map +1 -1
  101. package/bundles/material-tabs.umd.js +18 -21
  102. package/bundles/material-tabs.umd.js.map +1 -1
  103. package/bundles/material-tabs.umd.min.js +2 -2
  104. package/bundles/material-tabs.umd.min.js.map +1 -1
  105. package/bundles/material-tooltip.umd.js +11 -11
  106. package/bundles/material-tooltip.umd.js.map +1 -1
  107. package/bundles/material-tooltip.umd.min.js +1 -1
  108. package/bundles/material-tooltip.umd.min.js.map +1 -1
  109. package/bundles/material-tree.umd.js +28 -54
  110. package/bundles/material-tree.umd.js.map +1 -1
  111. package/bundles/material-tree.umd.min.js +1 -1
  112. package/bundles/material-tree.umd.min.js.map +1 -1
  113. package/bundles/material.umd.js +578 -386
  114. package/bundles/material.umd.js.map +1 -1
  115. package/bundles/material.umd.min.js +21 -21
  116. package/bundles/material.umd.min.js.map +1 -1
  117. package/button-toggle/typings/button-toggle.d.ts +1 -1
  118. package/button-toggle/typings/index.metadata.json +1 -1
  119. package/card/typings/index.metadata.json +1 -1
  120. package/checkbox/typings/checkbox.d.ts +2 -2
  121. package/checkbox/typings/index.metadata.json +1 -1
  122. package/chips/typings/chip-input.d.ts +5 -2
  123. package/chips/typings/chip-list.d.ts +12 -19
  124. package/chips/typings/chip.d.ts +3 -2
  125. package/chips/typings/index.metadata.json +1 -1
  126. package/core/typings/index.metadata.json +1 -1
  127. package/core/typings/line/line.d.ts +1 -1
  128. package/core/typings/option/option.d.ts +3 -4
  129. package/core/typings/ripple/ripple-renderer.d.ts +1 -1
  130. package/core/typings/ripple/ripple.d.ts +1 -1
  131. package/datepicker/typings/calendar-body.d.ts +1 -1
  132. package/datepicker/typings/datepicker-input.d.ts +1 -1
  133. package/datepicker/typings/datepicker-toggle.d.ts +3 -1
  134. package/datepicker/typings/datepicker.d.ts +1 -1
  135. package/datepicker/typings/index.metadata.json +1 -1
  136. package/dialog/typings/dialog-container.d.ts +1 -1
  137. package/dialog/typings/dialog-content-directives.d.ts +2 -2
  138. package/dialog/typings/index.metadata.json +1 -1
  139. package/esm2015/autocomplete.js +29 -1
  140. package/esm2015/autocomplete.js.map +1 -1
  141. package/esm2015/badge.js +8 -3
  142. package/esm2015/badge.js.map +1 -1
  143. package/esm2015/bottom-sheet.js.map +1 -1
  144. package/esm2015/button-toggle.js +2 -1
  145. package/esm2015/button-toggle.js.map +1 -1
  146. package/esm2015/card.js +1 -1
  147. package/esm2015/card.js.map +1 -1
  148. package/esm2015/checkbox.js.map +1 -1
  149. package/esm2015/chips.js +93 -74
  150. package/esm2015/chips.js.map +1 -1
  151. package/esm2015/core.js +10 -7
  152. package/esm2015/core.js.map +1 -1
  153. package/esm2015/datepicker.js +22 -5
  154. package/esm2015/datepicker.js.map +1 -1
  155. package/esm2015/dialog.js.map +1 -1
  156. package/esm2015/expansion.js +158 -66
  157. package/esm2015/expansion.js.map +1 -1
  158. package/esm2015/form-field.js +29 -19
  159. package/esm2015/form-field.js.map +1 -1
  160. package/esm2015/grid-list.js +7 -30
  161. package/esm2015/grid-list.js.map +1 -1
  162. package/esm2015/icon.js.map +1 -1
  163. package/esm2015/input.js +13 -7
  164. package/esm2015/input.js.map +1 -1
  165. package/esm2015/list.js +4 -4
  166. package/esm2015/list.js.map +1 -1
  167. package/esm2015/material.js +9 -9
  168. package/esm2015/material.js.map +1 -1
  169. package/esm2015/menu.js +7 -6
  170. package/esm2015/menu.js.map +1 -1
  171. package/esm2015/progress-bar.js +25 -6
  172. package/esm2015/progress-bar.js.map +1 -1
  173. package/esm2015/radio.js.map +1 -1
  174. package/esm2015/select.js +8 -3
  175. package/esm2015/select.js.map +1 -1
  176. package/esm2015/sidenav.js +5 -1
  177. package/esm2015/sidenav.js.map +1 -1
  178. package/esm2015/slide-toggle.js +1 -1
  179. package/esm2015/slide-toggle.js.map +1 -1
  180. package/esm2015/slider.js +1 -1
  181. package/esm2015/slider.js.map +1 -1
  182. package/esm2015/snack-bar.js.map +1 -1
  183. package/esm2015/stepper.js +25 -21
  184. package/esm2015/stepper.js.map +1 -1
  185. package/esm2015/table.js +22 -32
  186. package/esm2015/table.js.map +1 -1
  187. package/esm2015/tabs.js +7 -17
  188. package/esm2015/tabs.js.map +1 -1
  189. package/esm2015/tooltip.js +9 -9
  190. package/esm2015/tooltip.js.map +1 -1
  191. package/esm2015/tree.js +16 -54
  192. package/esm2015/tree.js.map +1 -1
  193. package/esm5/autocomplete.es5.js +32 -1
  194. package/esm5/autocomplete.es5.js.map +1 -1
  195. package/esm5/badge.es5.js +7 -3
  196. package/esm5/badge.es5.js.map +1 -1
  197. package/esm5/bottom-sheet.es5.js.map +1 -1
  198. package/esm5/button-toggle.es5.js +2 -1
  199. package/esm5/button-toggle.es5.js.map +1 -1
  200. package/esm5/card.es5.js +1 -1
  201. package/esm5/card.es5.js.map +1 -1
  202. package/esm5/checkbox.es5.js.map +1 -1
  203. package/esm5/chips.es5.js +103 -91
  204. package/esm5/chips.es5.js.map +1 -1
  205. package/esm5/core.es5.js +10 -12
  206. package/esm5/core.es5.js.map +1 -1
  207. package/esm5/datepicker.es5.js +21 -5
  208. package/esm5/datepicker.es5.js.map +1 -1
  209. package/esm5/dialog.es5.js.map +1 -1
  210. package/esm5/expansion.es5.js +202 -78
  211. package/esm5/expansion.es5.js.map +1 -1
  212. package/esm5/form-field.es5.js +29 -18
  213. package/esm5/form-field.es5.js.map +1 -1
  214. package/esm5/grid-list.es5.js +7 -30
  215. package/esm5/grid-list.es5.js.map +1 -1
  216. package/esm5/icon.es5.js.map +1 -1
  217. package/esm5/input.es5.js +13 -7
  218. package/esm5/input.es5.js.map +1 -1
  219. package/esm5/list.es5.js +4 -4
  220. package/esm5/list.es5.js.map +1 -1
  221. package/esm5/material.es5.js +9 -9
  222. package/esm5/material.es5.js.map +1 -1
  223. package/esm5/menu.es5.js +5 -4
  224. package/esm5/menu.es5.js.map +1 -1
  225. package/esm5/progress-bar.es5.js +25 -9
  226. package/esm5/progress-bar.es5.js.map +1 -1
  227. package/esm5/radio.es5.js.map +1 -1
  228. package/esm5/select.es5.js +8 -3
  229. package/esm5/select.es5.js.map +1 -1
  230. package/esm5/sidenav.es5.js +5 -1
  231. package/esm5/sidenav.es5.js.map +1 -1
  232. package/esm5/slide-toggle.es5.js +1 -1
  233. package/esm5/slide-toggle.es5.js.map +1 -1
  234. package/esm5/slider.es5.js +1 -1
  235. package/esm5/slider.es5.js.map +1 -1
  236. package/esm5/snack-bar.es5.js.map +1 -1
  237. package/esm5/stepper.es5.js +25 -17
  238. package/esm5/stepper.es5.js.map +1 -1
  239. package/esm5/table.es5.js +22 -30
  240. package/esm5/table.es5.js.map +1 -1
  241. package/esm5/tabs.es5.js +9 -12
  242. package/esm5/tabs.es5.js.map +1 -1
  243. package/esm5/tooltip.es5.js +11 -11
  244. package/esm5/tooltip.es5.js.map +1 -1
  245. package/esm5/tree.es5.js +22 -53
  246. package/esm5/tree.es5.js.map +1 -1
  247. package/expansion/typings/accordion-base.d.ts +30 -0
  248. package/expansion/typings/accordion.d.ts +18 -4
  249. package/expansion/typings/expansion-panel-header.d.ts +13 -2
  250. package/expansion/typings/expansion-panel.d.ts +10 -6
  251. package/expansion/typings/index.metadata.json +1 -1
  252. package/expansion/typings/public-api.d.ts +1 -0
  253. package/form-field/typings/form-field.d.ts +4 -3
  254. package/form-field/typings/index.metadata.json +1 -1
  255. package/grid-list/typings/grid-list.d.ts +1 -1
  256. package/grid-list/typings/grid-tile.d.ts +2 -2
  257. package/grid-list/typings/index.metadata.json +1 -1
  258. package/icon/typings/icon.d.ts +1 -1
  259. package/icon/typings/index.metadata.json +1 -1
  260. package/input/typings/autosize.d.ts +2 -1
  261. package/input/typings/index.metadata.json +1 -1
  262. package/input/typings/input.d.ts +2 -2
  263. package/list/typings/index.metadata.json +1 -1
  264. package/list/typings/list.d.ts +1 -1
  265. package/list/typings/selection-list.d.ts +2 -2
  266. package/menu/typings/index.d.ts +4 -4
  267. package/menu/typings/index.metadata.json +1 -1
  268. package/menu/typings/menu-directive.d.ts +1 -1
  269. package/menu/typings/menu-item.d.ts +1 -1
  270. package/menu/typings/menu-trigger.d.ts +1 -1
  271. package/package.json +4 -4
  272. package/prebuilt-themes/deeppurple-amber.css +1 -1
  273. package/prebuilt-themes/indigo-pink.css +1 -1
  274. package/prebuilt-themes/pink-bluegrey.css +1 -1
  275. package/prebuilt-themes/purple-green.css +1 -1
  276. package/progress-bar/typings/index.metadata.json +1 -1
  277. package/progress-bar/typings/progress-bar.d.ts +17 -3
  278. package/radio/typings/radio.d.ts +1 -1
  279. package/sidenav/typings/drawer.d.ts +2 -2
  280. package/sidenav/typings/index.metadata.json +1 -1
  281. package/slide-toggle/typings/index.metadata.json +1 -1
  282. package/slide-toggle/typings/slide-toggle.d.ts +3 -3
  283. package/slider/typings/index.metadata.json +1 -1
  284. package/snack-bar/typings/index.metadata.json +1 -1
  285. package/snack-bar/typings/snack-bar-container.d.ts +1 -1
  286. package/stepper/typings/index.metadata.json +1 -1
  287. package/stepper/typings/step-header.d.ts +2 -2
  288. package/stepper/typings/step-label.d.ts +2 -10
  289. package/stepper/typings/stepper-button.d.ts +4 -2
  290. package/stepper/typings/stepper.d.ts +4 -3
  291. package/table/typings/cell.d.ts +8 -5
  292. package/table/typings/index.metadata.json +1 -1
  293. package/table/typings/row.d.ts +6 -3
  294. package/table/typings/table.d.ts +2 -8
  295. package/tabs/typings/index.d.ts +5 -5
  296. package/tabs/typings/index.metadata.json +1 -1
  297. package/tabs/typings/ink-bar.d.ts +1 -1
  298. package/tabs/typings/tab-body.d.ts +1 -1
  299. package/tabs/typings/tab-label.d.ts +2 -10
  300. package/tooltip/typings/index.metadata.json +1 -1
  301. package/tooltip/typings/tooltip.d.ts +3 -3
  302. package/tree/typings/index.metadata.json +1 -1
  303. package/tree/typings/node.d.ts +7 -7
  304. package/tree/typings/padding.d.ts +3 -5
  305. package/tree/typings/toggle.d.ts +10 -3
  306. package/tree/typings/tree.d.ts +2 -3
  307. package/typings/autocomplete/autocomplete-trigger.d.ts +12 -1
  308. package/typings/autocomplete/autocomplete.d.ts +1 -1
  309. package/typings/autocomplete/index.metadata.json +1 -1
  310. package/typings/badge/badge.d.ts +6 -2
  311. package/typings/badge/index.metadata.json +1 -1
  312. package/typings/bottom-sheet/bottom-sheet-container.d.ts +1 -1
  313. package/typings/bottom-sheet/index.metadata.json +1 -1
  314. package/typings/button-toggle/button-toggle.d.ts +1 -1
  315. package/typings/button-toggle/index.metadata.json +1 -1
  316. package/typings/card/index.metadata.json +1 -1
  317. package/typings/checkbox/checkbox.d.ts +2 -2
  318. package/typings/checkbox/index.metadata.json +1 -1
  319. package/typings/chips/chip-input.d.ts +5 -2
  320. package/typings/chips/chip-list.d.ts +12 -19
  321. package/typings/chips/chip.d.ts +3 -2
  322. package/typings/chips/index.metadata.json +1 -1
  323. package/typings/core/index.metadata.json +1 -1
  324. package/typings/core/line/line.d.ts +1 -1
  325. package/typings/core/option/option.d.ts +3 -4
  326. package/typings/core/ripple/ripple-renderer.d.ts +1 -1
  327. package/typings/core/ripple/ripple.d.ts +1 -1
  328. package/typings/datepicker/calendar-body.d.ts +1 -1
  329. package/typings/datepicker/datepicker-input.d.ts +1 -1
  330. package/typings/datepicker/datepicker-toggle.d.ts +3 -1
  331. package/typings/datepicker/datepicker.d.ts +1 -1
  332. package/typings/datepicker/index.metadata.json +1 -1
  333. package/typings/dialog/dialog-container.d.ts +1 -1
  334. package/typings/dialog/dialog-content-directives.d.ts +2 -2
  335. package/typings/dialog/index.metadata.json +1 -1
  336. package/typings/esm5/autocomplete/autocomplete-trigger.d.ts +12 -1
  337. package/typings/esm5/autocomplete/autocomplete.d.ts +1 -1
  338. package/typings/esm5/autocomplete/index.metadata.json +1 -1
  339. package/typings/esm5/badge/badge.d.ts +6 -2
  340. package/typings/esm5/badge/index.metadata.json +1 -1
  341. package/typings/esm5/bottom-sheet/bottom-sheet-container.d.ts +1 -1
  342. package/typings/esm5/bottom-sheet/index.metadata.json +1 -1
  343. package/typings/esm5/button-toggle/button-toggle.d.ts +1 -1
  344. package/typings/esm5/button-toggle/index.metadata.json +1 -1
  345. package/typings/esm5/card/index.metadata.json +1 -1
  346. package/typings/esm5/checkbox/checkbox.d.ts +2 -2
  347. package/typings/esm5/checkbox/index.metadata.json +1 -1
  348. package/typings/esm5/chips/chip-input.d.ts +5 -2
  349. package/typings/esm5/chips/chip-list.d.ts +12 -19
  350. package/typings/esm5/chips/chip.d.ts +3 -2
  351. package/typings/esm5/chips/index.metadata.json +1 -1
  352. package/typings/esm5/core/index.metadata.json +1 -1
  353. package/typings/esm5/core/line/line.d.ts +1 -1
  354. package/typings/esm5/core/option/option.d.ts +3 -4
  355. package/typings/esm5/core/ripple/ripple-renderer.d.ts +1 -1
  356. package/typings/esm5/core/ripple/ripple.d.ts +1 -1
  357. package/typings/esm5/datepicker/calendar-body.d.ts +1 -1
  358. package/typings/esm5/datepicker/datepicker-input.d.ts +1 -1
  359. package/typings/esm5/datepicker/datepicker-toggle.d.ts +3 -1
  360. package/typings/esm5/datepicker/datepicker.d.ts +1 -1
  361. package/typings/esm5/datepicker/index.metadata.json +1 -1
  362. package/typings/esm5/dialog/dialog-container.d.ts +1 -1
  363. package/typings/esm5/dialog/dialog-content-directives.d.ts +2 -2
  364. package/typings/esm5/dialog/index.metadata.json +1 -1
  365. package/typings/esm5/expansion/accordion-base.d.ts +30 -0
  366. package/typings/esm5/expansion/accordion.d.ts +18 -4
  367. package/typings/esm5/expansion/expansion-panel-header.d.ts +13 -2
  368. package/typings/esm5/expansion/expansion-panel.d.ts +10 -6
  369. package/typings/esm5/expansion/index.metadata.json +1 -1
  370. package/typings/esm5/expansion/public-api.d.ts +1 -0
  371. package/typings/esm5/form-field/form-field.d.ts +4 -3
  372. package/typings/esm5/form-field/index.metadata.json +1 -1
  373. package/typings/esm5/grid-list/grid-list.d.ts +1 -1
  374. package/typings/esm5/grid-list/grid-tile.d.ts +2 -2
  375. package/typings/esm5/grid-list/index.metadata.json +1 -1
  376. package/typings/esm5/icon/icon.d.ts +1 -1
  377. package/typings/esm5/icon/index.metadata.json +1 -1
  378. package/typings/esm5/index.metadata.json +1 -1
  379. package/typings/esm5/input/autosize.d.ts +2 -1
  380. package/typings/esm5/input/index.metadata.json +1 -1
  381. package/typings/esm5/input/input.d.ts +2 -2
  382. package/typings/esm5/list/index.metadata.json +1 -1
  383. package/typings/esm5/list/list.d.ts +1 -1
  384. package/typings/esm5/list/selection-list.d.ts +2 -2
  385. package/typings/esm5/menu/index.d.ts +4 -4
  386. package/typings/esm5/menu/index.metadata.json +1 -1
  387. package/typings/esm5/menu/menu-directive.d.ts +1 -1
  388. package/typings/esm5/menu/menu-item.d.ts +1 -1
  389. package/typings/esm5/menu/menu-trigger.d.ts +1 -1
  390. package/typings/esm5/progress-bar/index.metadata.json +1 -1
  391. package/typings/esm5/progress-bar/progress-bar.d.ts +17 -3
  392. package/typings/esm5/radio/radio.d.ts +1 -1
  393. package/typings/esm5/sidenav/drawer.d.ts +2 -2
  394. package/typings/esm5/sidenav/index.metadata.json +1 -1
  395. package/typings/esm5/slide-toggle/index.metadata.json +1 -1
  396. package/typings/esm5/slide-toggle/slide-toggle.d.ts +3 -3
  397. package/typings/esm5/slider/index.metadata.json +1 -1
  398. package/typings/esm5/snack-bar/index.metadata.json +1 -1
  399. package/typings/esm5/snack-bar/snack-bar-container.d.ts +1 -1
  400. package/typings/esm5/stepper/index.metadata.json +1 -1
  401. package/typings/esm5/stepper/step-header.d.ts +2 -2
  402. package/typings/esm5/stepper/step-label.d.ts +2 -10
  403. package/typings/esm5/stepper/stepper-button.d.ts +4 -2
  404. package/typings/esm5/stepper/stepper.d.ts +4 -3
  405. package/typings/esm5/table/cell.d.ts +8 -5
  406. package/typings/esm5/table/index.metadata.json +1 -1
  407. package/typings/esm5/table/row.d.ts +6 -3
  408. package/typings/esm5/table/table.d.ts +2 -8
  409. package/typings/esm5/tabs/index.d.ts +5 -5
  410. package/typings/esm5/tabs/index.metadata.json +1 -1
  411. package/typings/esm5/tabs/ink-bar.d.ts +1 -1
  412. package/typings/esm5/tabs/tab-body.d.ts +1 -1
  413. package/typings/esm5/tabs/tab-label.d.ts +2 -10
  414. package/typings/esm5/tooltip/index.metadata.json +1 -1
  415. package/typings/esm5/tooltip/tooltip.d.ts +3 -3
  416. package/typings/esm5/tree/index.metadata.json +1 -1
  417. package/typings/esm5/tree/node.d.ts +7 -7
  418. package/typings/esm5/tree/padding.d.ts +3 -5
  419. package/typings/esm5/tree/toggle.d.ts +10 -3
  420. package/typings/esm5/tree/tree.d.ts +2 -3
  421. package/typings/expansion/accordion-base.d.ts +30 -0
  422. package/typings/expansion/accordion.d.ts +18 -4
  423. package/typings/expansion/expansion-panel-header.d.ts +13 -2
  424. package/typings/expansion/expansion-panel.d.ts +10 -6
  425. package/typings/expansion/index.metadata.json +1 -1
  426. package/typings/expansion/public-api.d.ts +1 -0
  427. package/typings/form-field/form-field.d.ts +4 -3
  428. package/typings/form-field/index.metadata.json +1 -1
  429. package/typings/grid-list/grid-list.d.ts +1 -1
  430. package/typings/grid-list/grid-tile.d.ts +2 -2
  431. package/typings/grid-list/index.metadata.json +1 -1
  432. package/typings/icon/icon.d.ts +1 -1
  433. package/typings/icon/index.metadata.json +1 -1
  434. package/typings/index.metadata.json +1 -1
  435. package/typings/input/autosize.d.ts +2 -1
  436. package/typings/input/index.metadata.json +1 -1
  437. package/typings/input/input.d.ts +2 -2
  438. package/typings/list/index.metadata.json +1 -1
  439. package/typings/list/list.d.ts +1 -1
  440. package/typings/list/selection-list.d.ts +2 -2
  441. package/typings/menu/index.d.ts +4 -4
  442. package/typings/menu/index.metadata.json +1 -1
  443. package/typings/menu/menu-directive.d.ts +1 -1
  444. package/typings/menu/menu-item.d.ts +1 -1
  445. package/typings/menu/menu-trigger.d.ts +1 -1
  446. package/typings/progress-bar/index.metadata.json +1 -1
  447. package/typings/progress-bar/progress-bar.d.ts +17 -3
  448. package/typings/radio/radio.d.ts +1 -1
  449. package/typings/sidenav/drawer.d.ts +2 -2
  450. package/typings/sidenav/index.metadata.json +1 -1
  451. package/typings/slide-toggle/index.metadata.json +1 -1
  452. package/typings/slide-toggle/slide-toggle.d.ts +3 -3
  453. package/typings/slider/index.metadata.json +1 -1
  454. package/typings/snack-bar/index.metadata.json +1 -1
  455. package/typings/snack-bar/snack-bar-container.d.ts +1 -1
  456. package/typings/stepper/index.metadata.json +1 -1
  457. package/typings/stepper/step-header.d.ts +2 -2
  458. package/typings/stepper/step-label.d.ts +2 -10
  459. package/typings/stepper/stepper-button.d.ts +4 -2
  460. package/typings/stepper/stepper.d.ts +4 -3
  461. package/typings/table/cell.d.ts +8 -5
  462. package/typings/table/index.metadata.json +1 -1
  463. package/typings/table/row.d.ts +6 -3
  464. package/typings/table/table.d.ts +2 -8
  465. package/typings/tabs/index.d.ts +5 -5
  466. package/typings/tabs/index.metadata.json +1 -1
  467. package/typings/tabs/ink-bar.d.ts +1 -1
  468. package/typings/tabs/tab-body.d.ts +1 -1
  469. package/typings/tabs/tab-label.d.ts +2 -10
  470. package/typings/tooltip/index.metadata.json +1 -1
  471. package/typings/tooltip/tooltip.d.ts +3 -3
  472. package/typings/tree/index.metadata.json +1 -1
  473. package/typings/tree/node.d.ts +7 -7
  474. package/typings/tree/padding.d.ts +3 -5
  475. package/typings/tree/toggle.d.ts +10 -3
  476. package/typings/tree/tree.d.ts +2 -3
  477. package/grid-list/typings/grid-list-measure.d.ts +0 -17
  478. package/typings/esm5/grid-list/grid-list-measure.d.ts +0 -17
  479. package/typings/grid-list/grid-list-measure.d.ts +0 -17
@@ -1 +1 @@
1
- {"version":3,"file":"expansion.js","sources":["../../../src/lib/expansion/expansion-module.ts","../../../src/lib/expansion/expansion-panel-header.ts","../../../src/lib/expansion/expansion-panel.ts","../../../src/lib/expansion/expansion-panel-content.ts","../../../src/lib/expansion/expansion-animations.ts","../../../src/lib/expansion/accordion.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {CdkAccordionModule} from '@angular/cdk/accordion';\nimport {PortalModule} from '@angular/cdk/portal';\nimport {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {MatAccordion} from './accordion';\nimport {MatExpansionPanel, MatExpansionPanelActionRow} from './expansion-panel';\nimport {MatExpansionPanelContent} from './expansion-panel-content';\nimport {\n MatExpansionPanelDescription,\n MatExpansionPanelHeader,\n MatExpansionPanelTitle,\n} from './expansion-panel-header';\n\n\n@NgModule({\n imports: [CommonModule, CdkAccordionModule, PortalModule],\n exports: [\n MatAccordion,\n MatExpansionPanel,\n MatExpansionPanelActionRow,\n MatExpansionPanelHeader,\n MatExpansionPanelTitle,\n MatExpansionPanelDescription,\n MatExpansionPanelContent,\n ],\n declarations: [\n MatAccordion,\n MatExpansionPanel,\n MatExpansionPanelActionRow,\n MatExpansionPanelHeader,\n MatExpansionPanelTitle,\n MatExpansionPanelDescription,\n MatExpansionPanelContent,\n ],\n})\nexport class MatExpansionModule {}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {FocusMonitor} from '@angular/cdk/a11y';\nimport {ENTER, SPACE} from '@angular/cdk/keycodes';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Directive,\n ElementRef,\n Host,\n Input,\n OnDestroy,\n ViewEncapsulation,\n} from '@angular/core';\nimport {merge, Subscription} from 'rxjs';\nimport {filter} from 'rxjs/operators';\nimport {matExpansionAnimations} from './expansion-animations';\nimport {MatExpansionPanel} from './expansion-panel';\n\n\n/**\n * `<mat-expansion-panel-header>`\n *\n * This component corresponds to the header element of an `<mat-expansion-panel>`.\n */\n@Component({\n moduleId: module.id,\n selector: 'mat-expansion-panel-header',\n styleUrls: ['./expansion-panel-header.css'],\n templateUrl: './expansion-panel-header.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [\n matExpansionAnimations.indicatorRotate,\n matExpansionAnimations.expansionHeaderHeight\n ],\n host: {\n 'class': 'mat-expansion-panel-header',\n 'role': 'button',\n '[attr.id]': 'panel._headerId',\n '[attr.tabindex]': 'panel.disabled ? -1 : 0',\n '[attr.aria-controls]': '_getPanelId()',\n '[attr.aria-expanded]': '_isExpanded()',\n '[attr.aria-disabled]': 'panel.disabled',\n '[class.mat-expanded]': '_isExpanded()',\n '(click)': '_toggle()',\n '(keydown)': '_keydown($event)',\n '[@expansionHeight]': `{\n value: _getExpandedState(),\n params: {\n collapsedHeight: collapsedHeight,\n expandedHeight: expandedHeight\n }\n }`,\n },\n})\nexport class MatExpansionPanelHeader implements OnDestroy {\n private _parentChangeSubscription = Subscription.EMPTY;\n\n constructor(\n @Host() public panel: MatExpansionPanel,\n private _element: ElementRef,\n private _focusMonitor: FocusMonitor,\n private _changeDetectorRef: ChangeDetectorRef) {\n\n // Since the toggle state depends on an @Input on the panel, we\n // need to subscribe and trigger change detection manually.\n this._parentChangeSubscription = merge(\n panel.opened,\n panel.closed,\n panel._inputChanges.pipe(filter(changes => !!(changes.hideToggle || changes.disabled)))\n )\n .subscribe(() => this._changeDetectorRef.markForCheck());\n\n _focusMonitor.monitor(_element.nativeElement);\n }\n\n /** Height of the header while the panel is expanded. */\n @Input() expandedHeight: string;\n\n /** Height of the header while the panel is collapsed. */\n @Input() collapsedHeight: string;\n\n /** Toggles the expanded state of the panel. */\n _toggle(): void {\n this.panel.toggle();\n }\n\n /** Gets whether the panel is expanded. */\n _isExpanded(): boolean {\n return this.panel.expanded;\n }\n\n /** Gets the expanded state string of the panel. */\n _getExpandedState(): string {\n return this.panel._getExpandedState();\n }\n\n /** Gets the panel id. */\n _getPanelId(): string {\n return this.panel.id;\n }\n\n /** Gets whether the expand indicator should be shown. */\n _showToggle(): boolean {\n return !this.panel.hideToggle && !this.panel.disabled;\n }\n\n /** Handle keydown event calling to toggle() if appropriate. */\n _keydown(event: KeyboardEvent) {\n switch (event.keyCode) {\n // Toggle for space and enter keys.\n case SPACE:\n case ENTER:\n event.preventDefault();\n this._toggle();\n break;\n default:\n return;\n }\n }\n\n ngOnDestroy() {\n this._parentChangeSubscription.unsubscribe();\n this._focusMonitor.stopMonitoring(this._element.nativeElement);\n }\n}\n\n/**\n * `<mat-panel-description>`\n *\n * This directive is to be used inside of the MatExpansionPanelHeader component.\n */\n@Directive({\n selector: 'mat-panel-description',\n host : {\n class: 'mat-expansion-panel-header-description'\n }\n})\nexport class MatExpansionPanelDescription {}\n\n/**\n * `<mat-panel-title>`\n *\n * This directive is to be used inside of the MatExpansionPanelHeader component.\n */\n@Directive({\n selector: 'mat-panel-title',\n host : {\n class: 'mat-expansion-panel-header-title'\n }\n})\nexport class MatExpansionPanelTitle {}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {AnimationEvent} from '@angular/animations';\nimport {CdkAccordionItem} from '@angular/cdk/accordion';\nimport {coerceBooleanProperty} from '@angular/cdk/coercion';\nimport {UniqueSelectionDispatcher} from '@angular/cdk/collections';\nimport {TemplatePortal} from '@angular/cdk/portal';\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n Directive,\n Input,\n OnChanges,\n OnDestroy,\n Optional,\n SimpleChanges,\n SkipSelf,\n ViewContainerRef,\n ViewEncapsulation,\n} from '@angular/core';\nimport {Subject} from 'rxjs';\nimport {filter, startWith, take} from 'rxjs/operators';\nimport {MatAccordion} from './accordion';\nimport {matExpansionAnimations} from './expansion-animations';\nimport {MatExpansionPanelContent} from './expansion-panel-content';\n\n\n/** MatExpansionPanel's states. */\nexport type MatExpansionPanelState = 'expanded' | 'collapsed';\n\n/** Counter for generating unique element ids. */\nlet uniqueId = 0;\n\n/**\n * `<mat-expansion-panel>`\n *\n * This component can be used as a single element to show expandable content, or as one of\n * multiple children of an element with the MatAccordion directive attached.\n */\n@Component({\n moduleId: module.id,\n styleUrls: ['./expansion-panel.css'],\n selector: 'mat-expansion-panel',\n exportAs: 'matExpansionPanel',\n templateUrl: './expansion-panel.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n inputs: ['disabled', 'expanded'],\n outputs: ['opened', 'closed', 'expandedChange'],\n animations: [matExpansionAnimations.bodyExpansion],\n providers: [\n // Provide MatAccordion as undefined to prevent nested expansion panels from registering\n // to the same accordion.\n {provide: MatAccordion, useValue: undefined},\n ],\n host: {\n 'class': 'mat-expansion-panel',\n '[class.mat-expanded]': 'expanded',\n '[class.mat-expansion-panel-spacing]': '_hasSpacing()',\n }\n})\nexport class MatExpansionPanel extends CdkAccordionItem\n implements AfterContentInit, OnChanges, OnDestroy {\n /** Whether the toggle indicator should be hidden. */\n @Input()\n get hideToggle(): boolean { return this._hideToggle; }\n set hideToggle(value: boolean) {\n this._hideToggle = coerceBooleanProperty(value);\n }\n private _hideToggle = false;\n\n /** Stream that emits for changes in `@Input` properties. */\n readonly _inputChanges = new Subject<SimpleChanges>();\n\n /** Optionally defined accordion the expansion panel belongs to. */\n accordion: MatAccordion;\n\n /** Content that will be rendered lazily. */\n @ContentChild(MatExpansionPanelContent) _lazyContent: MatExpansionPanelContent;\n\n /** Portal holding the user's content. */\n _portal: TemplatePortal;\n\n /** ID for the associated header element. Used for a11y labelling. */\n _headerId = `mat-expansion-panel-header-${uniqueId++}`;\n\n constructor(@Optional() @SkipSelf() accordion: MatAccordion,\n _changeDetectorRef: ChangeDetectorRef,\n _uniqueSelectionDispatcher: UniqueSelectionDispatcher,\n private _viewContainerRef: ViewContainerRef) {\n super(accordion, _changeDetectorRef, _uniqueSelectionDispatcher);\n this.accordion = accordion;\n }\n\n /** Whether the expansion indicator should be hidden. */\n _getHideToggle(): boolean {\n if (this.accordion) {\n return this.accordion.hideToggle;\n }\n return this.hideToggle;\n }\n\n /** Determines whether the expansion panel should have spacing between it and its siblings. */\n _hasSpacing(): boolean {\n if (this.accordion) {\n return (this.expanded ? this.accordion.displayMode : this._getExpandedState()) === 'default';\n }\n return false;\n }\n\n /** Gets the expanded state string. */\n _getExpandedState(): MatExpansionPanelState {\n return this.expanded ? 'expanded' : 'collapsed';\n }\n\n ngAfterContentInit() {\n if (this._lazyContent) {\n // Render the content as soon as the panel becomes open.\n this.opened.pipe(\n startWith(null!),\n filter(() => this.expanded && !this._portal),\n take(1)\n ).subscribe(() => {\n this._portal = new TemplatePortal(this._lazyContent._template, this._viewContainerRef);\n });\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n this._inputChanges.next(changes);\n }\n\n ngOnDestroy() {\n super.ngOnDestroy();\n this._inputChanges.complete();\n }\n\n _bodyAnimation(event: AnimationEvent) {\n const classList = event.element.classList;\n const cssClass = 'mat-expanded';\n const {phaseName, toState} = event;\n\n // Toggle the body's `overflow: hidden` class when closing starts or when expansion ends in\n // order to prevent the cases where switching too early would cause the animation to jump.\n // Note that we do it directly on the DOM element to avoid the slight delay that comes\n // with doing it via change detection.\n if (phaseName === 'done' && toState === 'expanded') {\n classList.add(cssClass);\n } else if (phaseName === 'start' && toState === 'collapsed') {\n classList.remove(cssClass);\n }\n }\n}\n\n@Directive({\n selector: 'mat-action-row',\n host: {\n class: 'mat-action-row'\n }\n})\nexport class MatExpansionPanelActionRow {}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Directive, TemplateRef} from '@angular/core';\n\n/**\n * Expansion panel content that will be rendered lazily\n * after the panel is opened for the first time.\n */\n@Directive({\n selector: 'ng-template[matExpansionPanelContent]'\n})\nexport class MatExpansionPanelContent {\n constructor(public _template: TemplateRef<any>) {}\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport {\n animate,\n animateChild,\n group,\n state,\n style,\n transition,\n trigger,\n query,\n AnimationTriggerMetadata,\n} from '@angular/animations';\n\n/** Time and timing curve for expansion panel animations. */\nexport const EXPANSION_PANEL_ANIMATION_TIMING = '225ms cubic-bezier(0.4,0.0,0.2,1)';\n\n/** Animations used by the Material expansion panel. */\nexport const matExpansionAnimations: {\n readonly indicatorRotate: AnimationTriggerMetadata;\n readonly expansionHeaderHeight: AnimationTriggerMetadata;\n readonly bodyExpansion: AnimationTriggerMetadata;\n} = {\n /** Animation that rotates the indicator arrow. */\n indicatorRotate: trigger('indicatorRotate', [\n state('collapsed', style({transform: 'rotate(0deg)'})),\n state('expanded', style({transform: 'rotate(180deg)'})),\n transition('expanded <=> collapsed', animate(EXPANSION_PANEL_ANIMATION_TIMING)),\n ]),\n\n /** Animation that expands and collapses the panel header height. */\n expansionHeaderHeight: trigger('expansionHeight', [\n state('collapsed', style({\n height: '{{collapsedHeight}}',\n }), {\n params: {collapsedHeight: '48px'},\n }),\n state('expanded', style({\n height: '{{expandedHeight}}'\n }), {\n params: {expandedHeight: '64px'}\n }),\n transition('expanded <=> collapsed', group([\n query('@indicatorRotate', animateChild(), {optional: true}),\n animate(EXPANSION_PANEL_ANIMATION_TIMING),\n ])),\n ]),\n\n /** Animation that expands and collapses the panel content. */\n bodyExpansion: trigger('bodyExpansion', [\n state('collapsed', style({height: '0px', visibility: 'hidden'})),\n state('expanded', style({height: '*', visibility: 'visible'})),\n transition('expanded <=> collapsed', animate(EXPANSION_PANEL_ANIMATION_TIMING)),\n ])\n};\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Directive, Input} from '@angular/core';\nimport {coerceBooleanProperty} from '@angular/cdk/coercion';\nimport {CdkAccordion} from '@angular/cdk/accordion';\n\n/** MatAccordion's display modes. */\nexport type MatAccordionDisplayMode = 'default' | 'flat';\n\n/**\n * Directive for a Material Design Accordion.\n */\n@Directive({\n selector: 'mat-accordion',\n exportAs: 'matAccordion',\n host: {\n class: 'mat-accordion'\n }\n})\nexport class MatAccordion extends CdkAccordion {\n /** Whether the expansion indicator should be hidden. */\n @Input()\n get hideToggle(): boolean { return this._hideToggle; }\n set hideToggle(show: boolean) { this._hideToggle = coerceBooleanProperty(show); }\n private _hideToggle: boolean = false;\n\n /**\n * The display mode used for all expansion panels in the accordion. Currently two display\n * modes exist:\n * default - a gutter-like spacing is placed around any expanded panel, placing the expanded\n * panel at a different elevation from the rest of the accordion.\n * flat - no spacing is placed around expanded panels, showing all panels at the same\n * elevation.\n */\n @Input() displayMode: MatAccordionDisplayMode = 'default';\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"expansion.js","sources":["../../../src/lib/expansion/expansion-module.ts","../../../src/lib/expansion/accordion.ts","../../../src/lib/expansion/expansion-panel-header.ts","../../../src/lib/expansion/expansion-panel.ts","../../../src/lib/expansion/expansion-panel-content.ts","../../../src/lib/expansion/expansion-animations.ts","../../../src/lib/expansion/accordion-base.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {CdkAccordionModule} from '@angular/cdk/accordion';\nimport {PortalModule} from '@angular/cdk/portal';\nimport {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {MatAccordion} from './accordion';\nimport {MatExpansionPanel, MatExpansionPanelActionRow} from './expansion-panel';\nimport {MatExpansionPanelContent} from './expansion-panel-content';\nimport {\n MatExpansionPanelDescription,\n MatExpansionPanelHeader,\n MatExpansionPanelTitle,\n} from './expansion-panel-header';\n\n\n@NgModule({\n imports: [CommonModule, CdkAccordionModule, PortalModule],\n exports: [\n MatAccordion,\n MatExpansionPanel,\n MatExpansionPanelActionRow,\n MatExpansionPanelHeader,\n MatExpansionPanelTitle,\n MatExpansionPanelDescription,\n MatExpansionPanelContent,\n ],\n declarations: [\n MatAccordion,\n MatExpansionPanel,\n MatExpansionPanelActionRow,\n MatExpansionPanelHeader,\n MatExpansionPanelTitle,\n MatExpansionPanelDescription,\n MatExpansionPanelContent,\n ],\n})\nexport class MatExpansionModule {}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Directive, Input, ContentChildren, QueryList, AfterContentInit} from '@angular/core';\nimport {coerceBooleanProperty} from '@angular/cdk/coercion';\nimport {CdkAccordion} from '@angular/cdk/accordion';\nimport {FocusKeyManager} from '@angular/cdk/a11y';\nimport {HOME, END} from '@angular/cdk/keycodes';\nimport {MAT_ACCORDION, MatAccordionBase, MatAccordionDisplayMode} from './accordion-base';\nimport {MatExpansionPanelHeader} from './expansion-panel-header';\n\n/**\n * Directive for a Material Design Accordion.\n */\n@Directive({\n selector: 'mat-accordion',\n exportAs: 'matAccordion',\n inputs: ['multi'],\n providers: [{\n provide: MAT_ACCORDION,\n useExisting: MatAccordion\n }],\n host: {\n class: 'mat-accordion'\n }\n})\nexport class MatAccordion extends CdkAccordion implements MatAccordionBase, AfterContentInit {\n private _keyManager: FocusKeyManager<MatExpansionPanelHeader>;\n\n @ContentChildren(MatExpansionPanelHeader, {descendants: true})\n _headers: QueryList<MatExpansionPanelHeader>;\n\n /** Whether the expansion indicator should be hidden. */\n @Input()\n get hideToggle(): boolean { return this._hideToggle; }\n set hideToggle(show: boolean) { this._hideToggle = coerceBooleanProperty(show); }\n private _hideToggle: boolean = false;\n\n /**\n * Display mode used for all expansion panels in the accordion. Currently two display\n * modes exist:\n * default - a gutter-like spacing is placed around any expanded panel, placing the expanded\n * panel at a different elevation from the rest of the accordion.\n * flat - no spacing is placed around expanded panels, showing all panels at the same\n * elevation.\n */\n @Input() displayMode: MatAccordionDisplayMode = 'default';\n\n ngAfterContentInit() {\n this._keyManager = new FocusKeyManager(this._headers).withWrap();\n }\n\n /** Handles keyboard events coming in from the panel headers. */\n _handleHeaderKeydown(event: KeyboardEvent) {\n const {keyCode} = event;\n const manager = this._keyManager;\n\n if (keyCode === HOME) {\n manager.setFirstItemActive();\n event.preventDefault();\n } else if (keyCode === END) {\n manager.setLastItemActive();\n event.preventDefault();\n } else {\n this._keyManager.onKeydown(event);\n }\n }\n\n _handleHeaderFocus(header: MatExpansionPanelHeader) {\n this._keyManager.updateActiveItem(header);\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {FocusMonitor, FocusableOption, FocusOrigin} from '@angular/cdk/a11y';\nimport {ENTER, SPACE} from '@angular/cdk/keycodes';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Directive,\n ElementRef,\n Host,\n Input,\n OnDestroy,\n ViewEncapsulation,\n} from '@angular/core';\nimport {merge, Subscription, EMPTY} from 'rxjs';\nimport {filter} from 'rxjs/operators';\nimport {matExpansionAnimations} from './expansion-animations';\nimport {MatExpansionPanel} from './expansion-panel';\n\n\n/**\n * `<mat-expansion-panel-header>`\n *\n * This component corresponds to the header element of an `<mat-expansion-panel>`.\n */\n@Component({\n moduleId: module.id,\n selector: 'mat-expansion-panel-header',\n styleUrls: ['./expansion-panel-header.css'],\n templateUrl: './expansion-panel-header.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [\n matExpansionAnimations.indicatorRotate,\n matExpansionAnimations.expansionHeaderHeight\n ],\n host: {\n 'class': 'mat-expansion-panel-header',\n 'role': 'button',\n '[attr.id]': 'panel._headerId',\n '[attr.tabindex]': 'disabled ? -1 : 0',\n '[attr.aria-controls]': '_getPanelId()',\n '[attr.aria-expanded]': '_isExpanded()',\n '[attr.aria-disabled]': 'panel.disabled',\n '[class.mat-expanded]': '_isExpanded()',\n '(click)': '_toggle()',\n '(keydown)': '_keydown($event)',\n '[@expansionHeight]': `{\n value: _getExpandedState(),\n params: {\n collapsedHeight: collapsedHeight,\n expandedHeight: expandedHeight\n }\n }`,\n },\n})\nexport class MatExpansionPanelHeader implements OnDestroy, FocusableOption {\n private _parentChangeSubscription = Subscription.EMPTY;\n\n constructor(\n @Host() public panel: MatExpansionPanel,\n private _element: ElementRef,\n private _focusMonitor: FocusMonitor,\n private _changeDetectorRef: ChangeDetectorRef) {\n\n const accordionHideToggleChange = panel.accordion ?\n panel.accordion._stateChanges.pipe(filter(changes => !!changes.hideToggle)) : EMPTY;\n\n // Since the toggle state depends on an @Input on the panel, we\n // need to subscribe and trigger change detection manually.\n this._parentChangeSubscription = merge(\n panel.opened,\n panel.closed,\n accordionHideToggleChange,\n panel._inputChanges.pipe(filter(changes => !!(changes.hideToggle || changes.disabled)))\n )\n .subscribe(() => this._changeDetectorRef.markForCheck());\n\n // Avoids focus being lost if the panel contained the focused element and was closed.\n panel.closed\n .pipe(filter(() => panel._containsFocus()))\n .subscribe(() => _focusMonitor.focusVia(_element.nativeElement, 'program'));\n\n _focusMonitor.monitor(_element.nativeElement).subscribe(origin => {\n if (origin && panel.accordion) {\n panel.accordion._handleHeaderFocus(this);\n }\n });\n }\n\n /** Height of the header while the panel is expanded. */\n @Input() expandedHeight: string;\n\n /** Height of the header while the panel is collapsed. */\n @Input() collapsedHeight: string;\n\n /**\n * Whether the associated panel is disabled. Implemented as a part of `FocusableOption`.\n * @docs-private\n */\n get disabled() {\n return this.panel.disabled;\n }\n\n /** Toggles the expanded state of the panel. */\n _toggle(): void {\n this.panel.toggle();\n }\n\n /** Gets whether the panel is expanded. */\n _isExpanded(): boolean {\n return this.panel.expanded;\n }\n\n /** Gets the expanded state string of the panel. */\n _getExpandedState(): string {\n return this.panel._getExpandedState();\n }\n\n /** Gets the panel id. */\n _getPanelId(): string {\n return this.panel.id;\n }\n\n /** Gets whether the expand indicator should be shown. */\n _showToggle(): boolean {\n return !this.panel.hideToggle && !this.panel.disabled;\n }\n\n /** Handle keydown event calling to toggle() if appropriate. */\n _keydown(event: KeyboardEvent) {\n switch (event.keyCode) {\n // Toggle for space and enter keys.\n case SPACE:\n case ENTER:\n event.preventDefault();\n this._toggle();\n break;\n default:\n if (this.panel.accordion) {\n this.panel.accordion._handleHeaderKeydown(event);\n }\n\n return;\n }\n }\n\n /**\n * Focuses the panel header. Implemented as a part of `FocusableOption`.\n * @param origin Origin of the action that triggered the focus.\n * @docs-private\n */\n focus(origin: FocusOrigin = 'program') {\n this._focusMonitor.focusVia(this._element.nativeElement, origin);\n }\n\n ngOnDestroy() {\n this._parentChangeSubscription.unsubscribe();\n this._focusMonitor.stopMonitoring(this._element.nativeElement);\n }\n}\n\n/**\n * `<mat-panel-description>`\n *\n * This directive is to be used inside of the MatExpansionPanelHeader component.\n */\n@Directive({\n selector: 'mat-panel-description',\n host: {\n class: 'mat-expansion-panel-header-description'\n }\n})\nexport class MatExpansionPanelDescription {}\n\n/**\n * `<mat-panel-title>`\n *\n * This directive is to be used inside of the MatExpansionPanelHeader component.\n */\n@Directive({\n selector: 'mat-panel-title',\n host: {\n class: 'mat-expansion-panel-header-title'\n }\n})\nexport class MatExpansionPanelTitle {}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {AnimationEvent} from '@angular/animations';\nimport {CdkAccordionItem} from '@angular/cdk/accordion';\nimport {coerceBooleanProperty} from '@angular/cdk/coercion';\nimport {UniqueSelectionDispatcher} from '@angular/cdk/collections';\nimport {TemplatePortal} from '@angular/cdk/portal';\nimport {DOCUMENT} from '@angular/common';\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n Directive,\n ElementRef,\n Inject,\n Input,\n OnChanges,\n OnDestroy,\n Optional,\n SimpleChanges,\n SkipSelf,\n ViewChild,\n ViewContainerRef,\n ViewEncapsulation,\n} from '@angular/core';\nimport {Subject} from 'rxjs';\nimport {filter, startWith, take} from 'rxjs/operators';\nimport {matExpansionAnimations} from './expansion-animations';\nimport {MatExpansionPanelContent} from './expansion-panel-content';\nimport {MAT_ACCORDION, MatAccordionBase} from './accordion-base';\n\n// TODO(devversion): workaround for https://github.com/angular/material2/issues/12760\nexport const _CdkAccordionItem = CdkAccordionItem;\n\n/** MatExpansionPanel's states. */\nexport type MatExpansionPanelState = 'expanded' | 'collapsed';\n\n/** Counter for generating unique element ids. */\nlet uniqueId = 0;\n\n/**\n * `<mat-expansion-panel>`\n *\n * This component can be used as a single element to show expandable content, or as one of\n * multiple children of an element with the MatAccordion directive attached.\n */\n@Component({\n moduleId: module.id,\n styleUrls: ['./expansion-panel.css'],\n selector: 'mat-expansion-panel',\n exportAs: 'matExpansionPanel',\n templateUrl: './expansion-panel.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n inputs: ['disabled', 'expanded'],\n outputs: ['opened', 'closed', 'expandedChange'],\n animations: [matExpansionAnimations.bodyExpansion],\n providers: [\n // Provide MatAccordion as undefined to prevent nested expansion panels from registering\n // to the same accordion.\n {provide: MAT_ACCORDION, useValue: undefined},\n ],\n host: {\n 'class': 'mat-expansion-panel',\n '[class.mat-expanded]': 'expanded',\n '[class.mat-expansion-panel-spacing]': '_hasSpacing()',\n }\n})\nexport class MatExpansionPanel extends CdkAccordionItem implements AfterContentInit, OnChanges,\n OnDestroy {\n\n // @breaking-change 8.0.0 Remove `| undefined` from here\n // when the `_document` constructor param is required.\n private _document: Document | undefined;\n\n /** Whether the toggle indicator should be hidden. */\n @Input()\n get hideToggle(): boolean {\n return this._hideToggle || (this.accordion && this.accordion.hideToggle);\n }\n set hideToggle(value: boolean) {\n this._hideToggle = coerceBooleanProperty(value);\n }\n private _hideToggle = false;\n\n /** Stream that emits for changes in `@Input` properties. */\n readonly _inputChanges = new Subject<SimpleChanges>();\n\n /** Optionally defined accordion the expansion panel belongs to. */\n accordion: MatAccordionBase;\n\n /** Content that will be rendered lazily. */\n @ContentChild(MatExpansionPanelContent) _lazyContent: MatExpansionPanelContent;\n\n /** Element containing the panel's user-provided content. */\n @ViewChild('body') _body: ElementRef<HTMLElement>;\n\n /** Portal holding the user's content. */\n _portal: TemplatePortal;\n\n /** ID for the associated header element. Used for a11y labelling. */\n _headerId = `mat-expansion-panel-header-${uniqueId++}`;\n\n constructor(@Optional() @SkipSelf() @Inject(MAT_ACCORDION) accordion: MatAccordionBase,\n _changeDetectorRef: ChangeDetectorRef,\n _uniqueSelectionDispatcher: UniqueSelectionDispatcher,\n private _viewContainerRef: ViewContainerRef,\n @Inject(DOCUMENT) _document?: any) {\n super(accordion, _changeDetectorRef, _uniqueSelectionDispatcher);\n this.accordion = accordion;\n this._document = _document;\n }\n\n /** Determines whether the expansion panel should have spacing between it and its siblings. */\n _hasSpacing(): boolean {\n if (this.accordion) {\n // We don't need to subscribe to the `stateChanges` of the parent accordion because each time\n // the [displayMode] input changes, the change detection will also cover the host bindings\n // of this expansion panel.\n return (this.expanded ? this.accordion.displayMode : this._getExpandedState()) === 'default';\n }\n return false;\n }\n\n /** Gets the expanded state string. */\n _getExpandedState(): MatExpansionPanelState {\n return this.expanded ? 'expanded' : 'collapsed';\n }\n\n ngAfterContentInit() {\n if (this._lazyContent) {\n // Render the content as soon as the panel becomes open.\n this.opened.pipe(\n startWith(null!),\n filter(() => this.expanded && !this._portal),\n take(1)\n ).subscribe(() => {\n this._portal = new TemplatePortal(this._lazyContent._template, this._viewContainerRef);\n });\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n this._inputChanges.next(changes);\n }\n\n ngOnDestroy() {\n super.ngOnDestroy();\n this._inputChanges.complete();\n }\n\n _bodyAnimation(event: AnimationEvent) {\n const classList = event.element.classList;\n const cssClass = 'mat-expanded';\n const {phaseName, toState} = event;\n\n // Toggle the body's `overflow: hidden` class when closing starts or when expansion ends in\n // order to prevent the cases where switching too early would cause the animation to jump.\n // Note that we do it directly on the DOM element to avoid the slight delay that comes\n // with doing it via change detection.\n if (phaseName === 'done' && toState === 'expanded') {\n classList.add(cssClass);\n } else if (phaseName === 'start' && toState === 'collapsed') {\n classList.remove(cssClass);\n }\n }\n\n /** Checks whether the expansion panel's content contains the currently-focused element. */\n _containsFocus(): boolean {\n if (this._body && this._document) {\n const focusedElement = this._document.activeElement;\n const bodyElement = this._body.nativeElement;\n return focusedElement === bodyElement || bodyElement.contains(focusedElement);\n }\n\n return false;\n }\n}\n\n@Directive({\n selector: 'mat-action-row',\n host: {\n class: 'mat-action-row'\n }\n})\nexport class MatExpansionPanelActionRow {}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Directive, TemplateRef} from '@angular/core';\n\n/**\n * Expansion panel content that will be rendered lazily\n * after the panel is opened for the first time.\n */\n@Directive({\n selector: 'ng-template[matExpansionPanelContent]'\n})\nexport class MatExpansionPanelContent {\n constructor(public _template: TemplateRef<any>) {}\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport {\n animate,\n animateChild,\n group,\n state,\n style,\n transition,\n trigger,\n query,\n AnimationTriggerMetadata,\n} from '@angular/animations';\n\n/** Time and timing curve for expansion panel animations. */\nexport const EXPANSION_PANEL_ANIMATION_TIMING = '225ms cubic-bezier(0.4,0.0,0.2,1)';\n\n/** Animations used by the Material expansion panel. */\nexport const matExpansionAnimations: {\n readonly indicatorRotate: AnimationTriggerMetadata;\n readonly expansionHeaderHeight: AnimationTriggerMetadata;\n readonly bodyExpansion: AnimationTriggerMetadata;\n} = {\n /** Animation that rotates the indicator arrow. */\n indicatorRotate: trigger('indicatorRotate', [\n state('collapsed', style({transform: 'rotate(0deg)'})),\n state('expanded', style({transform: 'rotate(180deg)'})),\n transition('expanded <=> collapsed', animate(EXPANSION_PANEL_ANIMATION_TIMING)),\n ]),\n\n /** Animation that expands and collapses the panel header height. */\n expansionHeaderHeight: trigger('expansionHeight', [\n state('collapsed', style({\n height: '{{collapsedHeight}}',\n }), {\n params: {collapsedHeight: '48px'},\n }),\n state('expanded', style({\n height: '{{expandedHeight}}'\n }), {\n params: {expandedHeight: '64px'}\n }),\n transition('expanded <=> collapsed', group([\n query('@indicatorRotate', animateChild(), {optional: true}),\n animate(EXPANSION_PANEL_ANIMATION_TIMING),\n ])),\n ]),\n\n /** Animation that expands and collapses the panel content. */\n bodyExpansion: trigger('bodyExpansion', [\n state('collapsed', style({height: '0px', visibility: 'hidden'})),\n state('expanded', style({height: '*', visibility: 'visible'})),\n transition('expanded <=> collapsed', animate(EXPANSION_PANEL_ANIMATION_TIMING)),\n ])\n};\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {InjectionToken} from '@angular/core';\nimport {CdkAccordion} from '@angular/cdk/accordion';\n\n/** MatAccordion's display modes. */\nexport type MatAccordionDisplayMode = 'default' | 'flat';\n\n/**\n * Base interface for a `MatAccordion`.\n * @docs-private\n */\nexport interface MatAccordionBase extends CdkAccordion {\n /** Whether the expansion indicator should be hidden. */\n hideToggle: boolean;\n\n /** Display mode used for all expansion panels in the accordion. */\n displayMode: MatAccordionDisplayMode;\n\n /** Handles keyboard events coming in from the panel headers. */\n _handleHeaderKeydown: (event: KeyboardEvent) => void;\n\n /** Handles focus events on the panel headers. */\n _handleHeaderFocus: (header: any) => void;\n}\n\n\n/**\n * Token used to provide a `MatAccordion` to `MatExpansionPanel`.\n * Used primarily to avoid circular imports between `MatAccordion` and `MatExpansionPanel`.\n */\nexport const MAT_ACCORDION = new InjectionToken<MatAccordionBase>('MAT_ACCORDION');\n"],"names":[],"mappings":"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"}
@@ -244,19 +244,20 @@ class MatFormField extends _MatFormFieldMixinBase {
244
244
  * @param {?} _changeDetectorRef
245
245
  * @param {?} labelOptions
246
246
  * @param {?} _dir
247
- * @param {?} _defaultOptions
247
+ * @param {?} _defaults
248
248
  * @param {?=} _platform
249
249
  * @param {?=} _ngZone
250
250
  * @param {?=} _animationMode
251
251
  */
252
- constructor(_elementRef, _changeDetectorRef, labelOptions, _dir, _defaultOptions, _platform, _ngZone, _animationMode) {
252
+ constructor(_elementRef, _changeDetectorRef, labelOptions, _dir, _defaults, _platform, _ngZone, _animationMode) {
253
253
  super(_elementRef);
254
254
  this._elementRef = _elementRef;
255
255
  this._changeDetectorRef = _changeDetectorRef;
256
256
  this._dir = _dir;
257
- this._defaultOptions = _defaultOptions;
257
+ this._defaults = _defaults;
258
258
  this._platform = _platform;
259
259
  this._ngZone = _ngZone;
260
+ this._outlineGapCalculationNeeded = false;
260
261
  /**
261
262
  * Override for the logic that disables the label animation in certain cases.
262
263
  */
@@ -273,21 +274,21 @@ class MatFormField extends _MatFormFieldMixinBase {
273
274
  this._labelOptions = labelOptions ? labelOptions : {};
274
275
  this.floatLabel = this._labelOptions.float || 'auto';
275
276
  this._animationsEnabled = _animationMode !== 'NoopAnimations';
277
+ // Set the default through here so we invoke the setter on the first run.
278
+ this.appearance = (_defaults && _defaults.appearance) ? _defaults.appearance : 'legacy';
276
279
  }
277
280
  /**
278
281
  * The form-field appearance style.
279
282
  * @return {?}
280
283
  */
281
- get appearance() {
282
- return this._appearance || this._defaultOptions && this._defaultOptions.appearance || 'legacy';
283
- }
284
+ get appearance() { return this._appearance; }
284
285
  /**
285
286
  * @param {?} value
286
287
  * @return {?}
287
288
  */
288
289
  set appearance(value) {
289
290
  const /** @type {?} */ oldValue = this._appearance;
290
- this._appearance = value;
291
+ this._appearance = value || (this._defaults && this._defaults.appearance) || 'legacy';
291
292
  if (this._appearance === 'outline' && oldValue !== value) {
292
293
  // @breaking-change 7.0.0 Remove this check and else block once _ngZone is required.
293
294
  if (this._ngZone) {
@@ -402,6 +403,9 @@ class MatFormField extends _MatFormFieldMixinBase {
402
403
  */
403
404
  ngAfterContentChecked() {
404
405
  this._validateControlChild();
406
+ if (this._outlineGapCalculationNeeded) {
407
+ this.updateOutlineGap();
408
+ }
405
409
  }
406
410
  /**
407
411
  * @return {?}
@@ -566,7 +570,19 @@ class MatFormField extends _MatFormFieldMixinBase {
566
570
  * @return {?}
567
571
  */
568
572
  updateOutlineGap() {
569
- if (this.appearance !== 'outline') {
573
+ const /** @type {?} */ labelEl = this._label ? this._label.nativeElement : null;
574
+ if (this.appearance !== 'outline' || !labelEl || !labelEl.children.length ||
575
+ !labelEl.textContent.trim()) {
576
+ return;
577
+ }
578
+ if (this._platform && !this._platform.isBrowser) {
579
+ // getBoundingClientRect isn't available on the server.
580
+ return;
581
+ }
582
+ // If the element is not present in the DOM, the outline gap will need to be calculated
583
+ // the next time it is checked and in the DOM.
584
+ if (!document.documentElement.contains(this._elementRef.nativeElement)) {
585
+ this._outlineGapCalculationNeeded = true;
570
586
  return;
571
587
  }
572
588
  let /** @type {?} */ startWidth = 0;
@@ -574,21 +590,14 @@ class MatFormField extends _MatFormFieldMixinBase {
574
590
  const /** @type {?} */ startEls = this._connectionContainerRef.nativeElement.querySelectorAll('.mat-form-field-outline-start');
575
591
  const /** @type {?} */ gapEls = this._connectionContainerRef.nativeElement.querySelectorAll('.mat-form-field-outline-gap');
576
592
  if (this._label && this._label.nativeElement.children.length) {
577
- if (this._platform && !this._platform.isBrowser) {
578
- // getBoundingClientRect isn't available on the server.
579
- return;
580
- }
581
- if (!document.documentElement.contains(this._elementRef.nativeElement)) {
582
- return;
583
- }
584
593
  const /** @type {?} */ containerStart = this._getStartEnd(this._connectionContainerRef.nativeElement.getBoundingClientRect());
585
- const /** @type {?} */ labelStart = this._getStartEnd(this._label.nativeElement.children[0].getBoundingClientRect());
594
+ const /** @type {?} */ labelStart = this._getStartEnd(labelEl.children[0].getBoundingClientRect());
586
595
  let /** @type {?} */ labelWidth = 0;
587
- for (const /** @type {?} */ child of this._label.nativeElement.children) {
596
+ for (const /** @type {?} */ child of labelEl.children) {
588
597
  labelWidth += child.offsetWidth;
589
598
  }
590
599
  startWidth = labelStart - containerStart - outlineGapPadding;
591
- gapWidth = labelWidth * floatingLabelScale + outlineGapPadding * 2;
600
+ gapWidth = labelWidth > 0 ? labelWidth * floatingLabelScale + outlineGapPadding * 2 : 0;
592
601
  }
593
602
  for (let /** @type {?} */ i = 0; i < startEls.length; i++) {
594
603
  startEls.item(i).style.width = `${startWidth}px`;
@@ -596,6 +605,7 @@ class MatFormField extends _MatFormFieldMixinBase {
596
605
  for (let /** @type {?} */ i = 0; i < gapEls.length; i++) {
597
606
  gapEls.item(i).style.width = `${gapWidth}px`;
598
607
  }
608
+ this._outlineGapCalculationNeeded = false;
599
609
  }
600
610
  /**
601
611
  * Gets the start end of the rect considering the current directionality.
@@ -613,7 +623,7 @@ MatFormField.decorators = [
613
623
  // MatInput is a directive and can't have styles, so we need to include its styles here.
614
624
  // The MatInput styles are fairly minimal so it shouldn't be a big deal for people who
615
625
  // aren't using MatInput.
616
- 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;box-sizing:border-box;width:100%}.mat-form-field-prefix,.mat-form-field-suffix{white-space:nowrap;flex:none;position:relative}.mat-form-field-infix{display:block;position:relative;flex:auto;min-width:0;width:180px}@media screen and (-ms-high-contrast:active){.mat-form-field-infix{border-image:linear-gradient(transparent,transparent)}}.mat-form-field-label-wrapper{position:absolute;left:0;box-sizing:content-box;width:100%;height:100%;overflow:hidden;pointer-events:none}.mat-form-field-label{position:absolute;left:0;font:inherit;pointer-events:none;width:100%;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;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}[dir=rtl] .mat-form-field-label{transform-origin:100% 0;left:auto;right:0}.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,.mat-form-field-empty.mat-form-field-label{display:block}.mat-form-field-autofill-control:-webkit-autofill+.mat-form-field-label-wrapper .mat-form-field-label{display:none}.mat-form-field-can-float .mat-form-field-autofill-control:-webkit-autofill+.mat-form-field-label-wrapper .mat-form-field-label{display:block;transition:none}.mat-input-server:focus+.mat-form-field-label-wrapper .mat-form-field-label,.mat-input-server[placeholder]:not(:placeholder-shown)+.mat-form-field-label-wrapper .mat-form-field-label{display:none}.mat-form-field-can-float .mat-input-server:focus+.mat-form-field-label-wrapper .mat-form-field-label,.mat-form-field-can-float .mat-input-server[placeholder]:not(:placeholder-shown)+.mat-form-field-label-wrapper .mat-form-field-label{display:block}.mat-form-field-label:not(.mat-form-field-empty){transition:none}.mat-form-field-underline{position:absolute;width:100%;pointer-events:none;transform:scaleY(1.0001)}.mat-form-field-ripple{position:absolute;left:0;width:100%;transform-origin:50%;transform:scaleX(.5);opacity:0;transition:background-color .3s cubic-bezier(.55,0,.55,.2)}.mat-form-field.mat-focused .mat-form-field-ripple,.mat-form-field.mat-form-field-invalid .mat-form-field-ripple{opacity:1;transform:scaleX(1);transition:transform .3s cubic-bezier(.25,.8,.25,1),opacity .1s cubic-bezier(.25,.8,.25,1),background-color .3s cubic-bezier(.25,.8,.25,1)}.mat-form-field-subscript-wrapper{position:absolute;box-sizing:border-box;width:100%;overflow:hidden}.mat-form-field-label-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-form-field._mat-animation-noopable .mat-form-field-label,.mat-form-field._mat-animation-noopable .mat-form-field-ripple{transition:none} .mat-form-field-appearance-fill .mat-form-field-flex{border-radius:4px 4px 0 0;padding:.75em .75em 0 .75em}@media screen and (-ms-high-contrast:active){.mat-form-field-appearance-fill .mat-form-field-flex{outline:solid 1px}}.mat-form-field-appearance-fill .mat-form-field-underline::before{content:'';display:block;position:absolute;bottom:0;height:1px;width:100%}.mat-form-field-appearance-fill .mat-form-field-ripple{bottom:0;height:2px}@media screen and (-ms-high-contrast:active){.mat-form-field-appearance-fill .mat-form-field-ripple{height:0;border-top:solid 2px}}.mat-form-field-appearance-fill:not(.mat-form-field-disabled) .mat-form-field-flex:hover~.mat-form-field-underline .mat-form-field-ripple{opacity:1;transform:none;transition:opacity .6s cubic-bezier(.25,.8,.25,1)}.mat-form-field-appearance-fill._mat-animation-noopable:not(.mat-form-field-disabled) .mat-form-field-flex:hover~.mat-form-field-underline .mat-form-field-ripple{transition:none}.mat-form-field-appearance-fill .mat-form-field-subscript-wrapper{padding:0 1em} .mat-form-field-appearance-legacy .mat-form-field-label{transform:perspective(100px);-ms-transform:none}.mat-form-field-appearance-legacy .mat-form-field-prefix .mat-icon,.mat-form-field-appearance-legacy .mat-form-field-suffix .mat-icon{width:1em}.mat-form-field-appearance-legacy .mat-form-field-prefix .mat-icon-button,.mat-form-field-appearance-legacy .mat-form-field-suffix .mat-icon-button{font:inherit;vertical-align:baseline}.mat-form-field-appearance-legacy .mat-form-field-prefix .mat-icon-button .mat-icon,.mat-form-field-appearance-legacy .mat-form-field-suffix .mat-icon-button .mat-icon{font-size:inherit}.mat-form-field-appearance-legacy .mat-form-field-underline{height:1px}@media screen and (-ms-high-contrast:active){.mat-form-field-appearance-legacy .mat-form-field-underline{height:0;border-top:solid 1px}}.mat-form-field-appearance-legacy .mat-form-field-ripple{top:0;height:2px}@media screen and (-ms-high-contrast:active){.mat-form-field-appearance-legacy .mat-form-field-ripple{height:0;border-top:solid 2px}}.mat-form-field-appearance-legacy.mat-form-field-disabled .mat-form-field-underline{background-position:0;background-color:transparent}@media screen and (-ms-high-contrast:active){.mat-form-field-appearance-legacy.mat-form-field-disabled .mat-form-field-underline{border-top-style:dotted;border-top-width:2px}}.mat-form-field-appearance-legacy.mat-form-field-invalid:not(.mat-focused) .mat-form-field-ripple{height:1px} .mat-form-field-appearance-outline .mat-form-field-wrapper{margin:.25em 0}.mat-form-field-appearance-outline .mat-form-field-flex{padding:0 .75em 0 .75em;margin-top:-.25em;position:relative}.mat-form-field-appearance-outline .mat-form-field-prefix,.mat-form-field-appearance-outline .mat-form-field-suffix{top:.25em}.mat-form-field-appearance-outline .mat-form-field-outline{display:flex;position:absolute;top:.25em;left:0;right:0;bottom:0;pointer-events:none}.mat-form-field-appearance-outline .mat-form-field-outline-end,.mat-form-field-appearance-outline .mat-form-field-outline-start{border:1px solid currentColor;min-width:5px}.mat-form-field-appearance-outline .mat-form-field-outline-start{border-radius:5px 0 0 5px;border-right-style:none}[dir=rtl] .mat-form-field-appearance-outline .mat-form-field-outline-start{border-right-style:solid;border-left-style:none;border-radius:0 5px 5px 0}.mat-form-field-appearance-outline .mat-form-field-outline-end{border-radius:0 5px 5px 0;border-left-style:none;flex-grow:1}[dir=rtl] .mat-form-field-appearance-outline .mat-form-field-outline-end{border-left-style:solid;border-right-style:none;border-radius:5px 0 0 5px}.mat-form-field-appearance-outline .mat-form-field-outline-gap{border-radius:.000001px;border:1px solid currentColor;border-left-style:none;border-right-style:none}.mat-form-field-appearance-outline.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-outline-gap{border-top-color:transparent}.mat-form-field-appearance-outline .mat-form-field-outline-thick{opacity:0}.mat-form-field-appearance-outline .mat-form-field-outline-thick .mat-form-field-outline-end,.mat-form-field-appearance-outline .mat-form-field-outline-thick .mat-form-field-outline-gap,.mat-form-field-appearance-outline .mat-form-field-outline-thick .mat-form-field-outline-start{border-width:2px;transition:border-color .3s cubic-bezier(.25,.8,.25,1)}.mat-form-field-appearance-outline.mat-focused .mat-form-field-outline,.mat-form-field-appearance-outline.mat-form-field-invalid .mat-form-field-outline{opacity:0;transition:opacity .1s cubic-bezier(.25,.8,.25,1)}.mat-form-field-appearance-outline.mat-focused .mat-form-field-outline-thick,.mat-form-field-appearance-outline.mat-form-field-invalid .mat-form-field-outline-thick{opacity:1}.mat-form-field-appearance-outline:not(.mat-form-field-disabled) .mat-form-field-flex:hover .mat-form-field-outline{opacity:0;transition:opacity .6s cubic-bezier(.25,.8,.25,1)}.mat-form-field-appearance-outline:not(.mat-form-field-disabled) .mat-form-field-flex:hover .mat-form-field-outline-thick{opacity:1}.mat-form-field-appearance-outline .mat-form-field-subscript-wrapper{padding:0 1em}.mat-form-field-appearance-outline._mat-animation-noopable .mat-form-field-outline,.mat-form-field-appearance-outline._mat-animation-noopable .mat-form-field-outline-end,.mat-form-field-appearance-outline._mat-animation-noopable .mat-form-field-outline-gap,.mat-form-field-appearance-outline._mat-animation-noopable .mat-form-field-outline-start,.mat-form-field-appearance-outline._mat-animation-noopable:not(.mat-form-field-disabled) .mat-form-field-flex:hover~.mat-form-field-outline{transition:none} .mat-form-field-appearance-standard .mat-form-field-flex{padding-top:.75em}.mat-form-field-appearance-standard .mat-form-field-underline{height:1px}@media screen and (-ms-high-contrast:active){.mat-form-field-appearance-standard .mat-form-field-underline{height:0;border-top:solid 1px}}.mat-form-field-appearance-standard .mat-form-field-ripple{bottom:0;height:2px}@media screen and (-ms-high-contrast:active){.mat-form-field-appearance-standard .mat-form-field-ripple{height:0;border-top:2px}}.mat-form-field-appearance-standard.mat-form-field-disabled .mat-form-field-underline{background-position:0;background-color:transparent}@media screen and (-ms-high-contrast:active){.mat-form-field-appearance-standard.mat-form-field-disabled .mat-form-field-underline{border-top-style:dotted;border-top-width:2px}}.mat-form-field-appearance-standard:not(.mat-form-field-disabled) .mat-form-field-flex:hover~.mat-form-field-underline .mat-form-field-ripple{opacity:1;transform:none;transition:opacity .6s cubic-bezier(.25,.8,.25,1)}.mat-form-field-appearance-standard._mat-animation-noopable:not(.mat-form-field-disabled) .mat-form-field-flex:hover~.mat-form-field-underline .mat-form-field-ripple{transition:none} .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;text-align:inherit}.mat-input-element:-moz-ui-invalid{box-shadow:none}.mat-input-element::-ms-clear,.mat-input-element::-ms-reveal{display:none}.mat-input-element,.mat-input-element::-webkit-search-cancel-button,.mat-input-element::-webkit-search-decoration,.mat-input-element::-webkit-search-results-button,.mat-input-element::-webkit-search-results-decoration{-webkit-appearance:none}.mat-input-element::-webkit-caps-lock-indicator,.mat-input-element::-webkit-contacts-auto-fill-button,.mat-input-element::-webkit-credentials-auto-fill-button{visibility:hidden}.mat-input-element[type=date]::after,.mat-input-element[type=datetime-local]::after,.mat-input-element[type=datetime]::after,.mat-input-element[type=month]::after,.mat-input-element[type=time]::after,.mat-input-element[type=week]::after{content:' ';white-space:pre;width:1px}.mat-input-element::placeholder{transition:color .4s .133s cubic-bezier(.25,.8,.25,1)}.mat-input-element::-moz-placeholder{transition:color .4s .133s cubic-bezier(.25,.8,.25,1)}.mat-input-element::-webkit-input-placeholder{transition:color .4s .133s cubic-bezier(.25,.8,.25,1)}.mat-input-element:-ms-input-placeholder{transition:color .4s .133s cubic-bezier(.25,.8,.25,1)}.mat-form-field-hide-placeholder .mat-input-element::placeholder{color:transparent!important;-webkit-text-fill-color:transparent;transition:none}.mat-form-field-hide-placeholder .mat-input-element::-moz-placeholder{color:transparent!important;-webkit-text-fill-color:transparent;transition:none}.mat-form-field-hide-placeholder .mat-input-element::-webkit-input-placeholder{color:transparent!important;-webkit-text-fill-color:transparent;transition:none}.mat-form-field-hide-placeholder .mat-input-element:-ms-input-placeholder{color:transparent!important;-webkit-text-fill-color:transparent;transition:none}textarea.mat-input-element{resize:vertical;overflow:auto}textarea.mat-input-element.cdk-textarea-autosize{resize:none}textarea.mat-input-element{padding:2px 0;margin:-2px 0}"],
626
+ 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;box-sizing:border-box;width:100%}.mat-form-field-prefix,.mat-form-field-suffix{white-space:nowrap;flex:none;position:relative}.mat-form-field-infix{display:block;position:relative;flex:auto;min-width:0;width:180px}@media screen and (-ms-high-contrast:active){.mat-form-field-infix{border-image:linear-gradient(transparent,transparent)}}.mat-form-field-label-wrapper{position:absolute;left:0;box-sizing:content-box;width:100%;height:100%;overflow:hidden;pointer-events:none}.mat-form-field-label{position:absolute;left:0;font:inherit;pointer-events:none;width:100%;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;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}[dir=rtl] .mat-form-field-label{transform-origin:100% 0;left:auto;right:0}.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,.mat-form-field-empty.mat-form-field-label{display:block}.mat-form-field-autofill-control:-webkit-autofill+.mat-form-field-label-wrapper .mat-form-field-label{display:none}.mat-form-field-can-float .mat-form-field-autofill-control:-webkit-autofill+.mat-form-field-label-wrapper .mat-form-field-label{display:block;transition:none}.mat-input-server:focus+.mat-form-field-label-wrapper .mat-form-field-label,.mat-input-server[placeholder]:not(:placeholder-shown)+.mat-form-field-label-wrapper .mat-form-field-label{display:none}.mat-form-field-can-float .mat-input-server:focus+.mat-form-field-label-wrapper .mat-form-field-label,.mat-form-field-can-float .mat-input-server[placeholder]:not(:placeholder-shown)+.mat-form-field-label-wrapper .mat-form-field-label{display:block}.mat-form-field-label:not(.mat-form-field-empty){transition:none}.mat-form-field-underline{position:absolute;width:100%;pointer-events:none;transform:scaleY(1.0001)}.mat-form-field-ripple{position:absolute;left:0;width:100%;transform-origin:50%;transform:scaleX(.5);opacity:0;transition:background-color .3s cubic-bezier(.55,0,.55,.2)}.mat-form-field.mat-focused .mat-form-field-ripple,.mat-form-field.mat-form-field-invalid .mat-form-field-ripple{opacity:1;transform:scaleX(1);transition:transform .3s cubic-bezier(.25,.8,.25,1),opacity .1s cubic-bezier(.25,.8,.25,1),background-color .3s cubic-bezier(.25,.8,.25,1)}.mat-form-field-subscript-wrapper{position:absolute;box-sizing:border-box;width:100%;overflow:hidden}.mat-form-field-label-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-form-field._mat-animation-noopable .mat-form-field-label,.mat-form-field._mat-animation-noopable .mat-form-field-ripple{transition:none} .mat-form-field-appearance-fill .mat-form-field-flex{border-radius:4px 4px 0 0;padding:.75em .75em 0 .75em}@media screen and (-ms-high-contrast:active){.mat-form-field-appearance-fill .mat-form-field-flex{outline:solid 1px}}.mat-form-field-appearance-fill .mat-form-field-underline::before{content:'';display:block;position:absolute;bottom:0;height:1px;width:100%}.mat-form-field-appearance-fill .mat-form-field-ripple{bottom:0;height:2px}@media screen and (-ms-high-contrast:active){.mat-form-field-appearance-fill .mat-form-field-ripple{height:0;border-top:solid 2px}}.mat-form-field-appearance-fill:not(.mat-form-field-disabled) .mat-form-field-flex:hover~.mat-form-field-underline .mat-form-field-ripple{opacity:1;transform:none;transition:opacity .6s cubic-bezier(.25,.8,.25,1)}.mat-form-field-appearance-fill._mat-animation-noopable:not(.mat-form-field-disabled) .mat-form-field-flex:hover~.mat-form-field-underline .mat-form-field-ripple{transition:none}.mat-form-field-appearance-fill .mat-form-field-subscript-wrapper{padding:0 1em} .mat-form-field-appearance-legacy .mat-form-field-label{transform:perspective(100px);-ms-transform:none}.mat-form-field-appearance-legacy .mat-form-field-prefix .mat-icon,.mat-form-field-appearance-legacy .mat-form-field-suffix .mat-icon{width:1em}.mat-form-field-appearance-legacy .mat-form-field-prefix .mat-icon-button,.mat-form-field-appearance-legacy .mat-form-field-suffix .mat-icon-button{font:inherit;vertical-align:baseline}.mat-form-field-appearance-legacy .mat-form-field-prefix .mat-icon-button .mat-icon,.mat-form-field-appearance-legacy .mat-form-field-suffix .mat-icon-button .mat-icon{font-size:inherit}.mat-form-field-appearance-legacy .mat-form-field-underline{height:1px}@media screen and (-ms-high-contrast:active){.mat-form-field-appearance-legacy .mat-form-field-underline{height:0;border-top:solid 1px}}.mat-form-field-appearance-legacy .mat-form-field-ripple{top:0;height:2px;overflow:hidden}@media screen and (-ms-high-contrast:active){.mat-form-field-appearance-legacy .mat-form-field-ripple{height:0;border-top:solid 2px}}.mat-form-field-appearance-legacy.mat-form-field-disabled .mat-form-field-underline{background-position:0;background-color:transparent}@media screen and (-ms-high-contrast:active){.mat-form-field-appearance-legacy.mat-form-field-disabled .mat-form-field-underline{border-top-style:dotted;border-top-width:2px}}.mat-form-field-appearance-legacy.mat-form-field-invalid:not(.mat-focused) .mat-form-field-ripple{height:1px} .mat-form-field-appearance-outline .mat-form-field-wrapper{margin:.25em 0}.mat-form-field-appearance-outline .mat-form-field-flex{padding:0 .75em 0 .75em;margin-top:-.25em;position:relative}.mat-form-field-appearance-outline .mat-form-field-prefix,.mat-form-field-appearance-outline .mat-form-field-suffix{top:.25em}.mat-form-field-appearance-outline .mat-form-field-outline{display:flex;position:absolute;top:.25em;left:0;right:0;bottom:0;pointer-events:none}.mat-form-field-appearance-outline .mat-form-field-outline-end,.mat-form-field-appearance-outline .mat-form-field-outline-start{border:1px solid currentColor;min-width:5px}.mat-form-field-appearance-outline .mat-form-field-outline-start{border-radius:5px 0 0 5px;border-right-style:none}[dir=rtl] .mat-form-field-appearance-outline .mat-form-field-outline-start{border-right-style:solid;border-left-style:none;border-radius:0 5px 5px 0}.mat-form-field-appearance-outline .mat-form-field-outline-end{border-radius:0 5px 5px 0;border-left-style:none;flex-grow:1}[dir=rtl] .mat-form-field-appearance-outline .mat-form-field-outline-end{border-left-style:solid;border-right-style:none;border-radius:5px 0 0 5px}.mat-form-field-appearance-outline .mat-form-field-outline-gap{border-radius:.000001px;border:1px solid currentColor;border-left-style:none;border-right-style:none}.mat-form-field-appearance-outline.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-outline-gap{border-top-color:transparent}.mat-form-field-appearance-outline .mat-form-field-outline-thick{opacity:0}.mat-form-field-appearance-outline .mat-form-field-outline-thick .mat-form-field-outline-end,.mat-form-field-appearance-outline .mat-form-field-outline-thick .mat-form-field-outline-gap,.mat-form-field-appearance-outline .mat-form-field-outline-thick .mat-form-field-outline-start{border-width:2px;transition:border-color .3s cubic-bezier(.25,.8,.25,1)}.mat-form-field-appearance-outline.mat-focused .mat-form-field-outline,.mat-form-field-appearance-outline.mat-form-field-invalid .mat-form-field-outline{opacity:0;transition:opacity .1s cubic-bezier(.25,.8,.25,1)}.mat-form-field-appearance-outline.mat-focused .mat-form-field-outline-thick,.mat-form-field-appearance-outline.mat-form-field-invalid .mat-form-field-outline-thick{opacity:1}.mat-form-field-appearance-outline:not(.mat-form-field-disabled) .mat-form-field-flex:hover .mat-form-field-outline{opacity:0;transition:opacity .6s cubic-bezier(.25,.8,.25,1)}.mat-form-field-appearance-outline:not(.mat-form-field-disabled) .mat-form-field-flex:hover .mat-form-field-outline-thick{opacity:1}.mat-form-field-appearance-outline .mat-form-field-subscript-wrapper{padding:0 1em}.mat-form-field-appearance-outline._mat-animation-noopable .mat-form-field-outline,.mat-form-field-appearance-outline._mat-animation-noopable .mat-form-field-outline-end,.mat-form-field-appearance-outline._mat-animation-noopable .mat-form-field-outline-gap,.mat-form-field-appearance-outline._mat-animation-noopable .mat-form-field-outline-start,.mat-form-field-appearance-outline._mat-animation-noopable:not(.mat-form-field-disabled) .mat-form-field-flex:hover~.mat-form-field-outline{transition:none} .mat-form-field-appearance-standard .mat-form-field-flex{padding-top:.75em}.mat-form-field-appearance-standard .mat-form-field-underline{height:1px}@media screen and (-ms-high-contrast:active){.mat-form-field-appearance-standard .mat-form-field-underline{height:0;border-top:solid 1px}}.mat-form-field-appearance-standard .mat-form-field-ripple{bottom:0;height:2px}@media screen and (-ms-high-contrast:active){.mat-form-field-appearance-standard .mat-form-field-ripple{height:0;border-top:2px}}.mat-form-field-appearance-standard.mat-form-field-disabled .mat-form-field-underline{background-position:0;background-color:transparent}@media screen and (-ms-high-contrast:active){.mat-form-field-appearance-standard.mat-form-field-disabled .mat-form-field-underline{border-top-style:dotted;border-top-width:2px}}.mat-form-field-appearance-standard:not(.mat-form-field-disabled) .mat-form-field-flex:hover~.mat-form-field-underline .mat-form-field-ripple{opacity:1;transform:none;transition:opacity .6s cubic-bezier(.25,.8,.25,1)}.mat-form-field-appearance-standard._mat-animation-noopable:not(.mat-form-field-disabled) .mat-form-field-flex:hover~.mat-form-field-underline .mat-form-field-ripple{transition:none} .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;text-align:inherit}.mat-input-element:-moz-ui-invalid{box-shadow:none}.mat-input-element::-ms-clear,.mat-input-element::-ms-reveal{display:none}.mat-input-element,.mat-input-element::-webkit-search-cancel-button,.mat-input-element::-webkit-search-decoration,.mat-input-element::-webkit-search-results-button,.mat-input-element::-webkit-search-results-decoration{-webkit-appearance:none}.mat-input-element::-webkit-caps-lock-indicator,.mat-input-element::-webkit-contacts-auto-fill-button,.mat-input-element::-webkit-credentials-auto-fill-button{visibility:hidden}.mat-input-element[type=date]::after,.mat-input-element[type=datetime-local]::after,.mat-input-element[type=datetime]::after,.mat-input-element[type=month]::after,.mat-input-element[type=time]::after,.mat-input-element[type=week]::after{content:' ';white-space:pre;width:1px}.mat-input-element::placeholder{transition:color .4s .133s cubic-bezier(.25,.8,.25,1)}.mat-input-element::-moz-placeholder{transition:color .4s .133s cubic-bezier(.25,.8,.25,1)}.mat-input-element::-webkit-input-placeholder{transition:color .4s .133s cubic-bezier(.25,.8,.25,1)}.mat-input-element:-ms-input-placeholder{transition:color .4s .133s cubic-bezier(.25,.8,.25,1)}.mat-form-field-hide-placeholder .mat-input-element::placeholder{color:transparent!important;-webkit-text-fill-color:transparent;transition:none}.mat-form-field-hide-placeholder .mat-input-element::-moz-placeholder{color:transparent!important;-webkit-text-fill-color:transparent;transition:none}.mat-form-field-hide-placeholder .mat-input-element::-webkit-input-placeholder{color:transparent!important;-webkit-text-fill-color:transparent;transition:none}.mat-form-field-hide-placeholder .mat-input-element:-ms-input-placeholder{color:transparent!important;-webkit-text-fill-color:transparent;transition:none}textarea.mat-input-element{resize:vertical;overflow:auto}textarea.mat-input-element.cdk-textarea-autosize{resize:none}textarea.mat-input-element{padding:2px 0;margin:-2px 0}"],
617
627
  animations: [matFormFieldAnimations.transitionMessages],
618
628
  host: {
619
629
  'class': 'mat-form-field',
@@ -1 +1 @@
1
- {"version":3,"file":"form-field.js","sources":["../../../src/lib/form-field/form-field-module.ts","../../../src/lib/form-field/form-field.ts","../../../src/lib/form-field/suffix.ts","../../../src/lib/form-field/prefix.ts","../../../src/lib/form-field/placeholder.ts","../../../src/lib/form-field/label.ts","../../../src/lib/form-field/hint.ts","../../../src/lib/form-field/form-field-errors.ts","../../../src/lib/form-field/form-field-control.ts","../../../src/lib/form-field/form-field-animations.ts","../../../src/lib/form-field/error.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {ObserversModule} from '@angular/cdk/observers';\nimport {MatError} from './error';\nimport {MatFormField} from './form-field';\nimport {MatHint} from './hint';\nimport {MatLabel} from './label';\nimport {MatPlaceholder} from './placeholder';\nimport {MatPrefix} from './prefix';\nimport {MatSuffix} from './suffix';\n\n\n@NgModule({\n declarations: [\n MatError,\n MatFormField,\n MatHint,\n MatLabel,\n MatPlaceholder,\n MatPrefix,\n MatSuffix,\n ],\n imports: [\n CommonModule,\n ObserversModule,\n ],\n exports: [\n MatError,\n MatFormField,\n MatHint,\n MatLabel,\n MatPlaceholder,\n MatPrefix,\n MatSuffix,\n ],\n})\nexport class MatFormFieldModule {}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Directionality} from '@angular/cdk/bidi';\nimport {coerceBooleanProperty} from '@angular/cdk/coercion';\nimport {\n AfterContentChecked,\n AfterContentInit,\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ContentChildren,\n ElementRef,\n Inject,\n InjectionToken,\n Input,\n NgZone,\n Optional,\n QueryList,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport {\n CanColor,\n FloatLabelType,\n LabelOptions,\n MAT_LABEL_GLOBAL_OPTIONS,\n mixinColor,\n} from '@angular/material/core';\nimport {EMPTY, fromEvent, merge} from 'rxjs';\nimport {startWith, take} from 'rxjs/operators';\nimport {MatError} from './error';\nimport {matFormFieldAnimations} from './form-field-animations';\nimport {MatFormFieldControl} from './form-field-control';\nimport {\n getMatFormFieldDuplicatedHintError,\n getMatFormFieldMissingControlError,\n getMatFormFieldPlaceholderConflictError,\n} from './form-field-errors';\nimport {MatHint} from './hint';\nimport {MatLabel} from './label';\nimport {MatPlaceholder} from './placeholder';\nimport {MatPrefix} from './prefix';\nimport {MatSuffix} from './suffix';\nimport {Platform} from '@angular/cdk/platform';\nimport {ANIMATION_MODULE_TYPE} from '@angular/platform-browser/animations';\n\n\nlet nextUniqueId = 0;\nconst floatingLabelScale = 0.75;\nconst outlineGapPadding = 5;\n\n\n/**\n * Boilerplate for applying mixins to MatFormField.\n * @docs-private\n */\nexport class MatFormFieldBase {\n constructor(public _elementRef: ElementRef) { }\n}\n\n/**\n * Base class to which we're applying the form field mixins.\n * @docs-private\n */\nexport const _MatFormFieldMixinBase = mixinColor(MatFormFieldBase, 'primary');\n\n/** Possible appearance styles for the form field. */\nexport type MatFormFieldAppearance = 'legacy' | 'standard' | 'fill' | 'outline';\n\n/**\n * Represents the default options form the form field that can be configured\n * using the `MAT_FORM_FIELD_DEFAULT_OPTIONS` injection token.\n */\nexport interface MatFormFieldDefaultOptions {\n appearance?: MatFormFieldAppearance;\n}\n\n/**\n * Injection token that can be used to configure the\n * default options for all form field within an app.\n */\nexport const MAT_FORM_FIELD_DEFAULT_OPTIONS =\n new InjectionToken<MatFormFieldDefaultOptions>('MAT_FORM_FIELD_DEFAULT_OPTIONS');\n\n\n/** Container for form controls that applies Material Design styling and behavior. */\n@Component({\n moduleId: module.id,\n selector: 'mat-form-field',\n exportAs: 'matFormField',\n templateUrl: 'form-field.html',\n // MatInput is a directive and can't have styles, so we need to include its styles here.\n // The MatInput styles are fairly minimal so it shouldn't be a big deal for people who\n // aren't using MatInput.\n styleUrls: [\n 'form-field.css',\n 'form-field-fill.css',\n 'form-field-legacy.css',\n 'form-field-outline.css',\n 'form-field-standard.css',\n '../input/input.css',\n ],\n animations: [matFormFieldAnimations.transitionMessages],\n host: {\n 'class': 'mat-form-field',\n '[class.mat-form-field-appearance-standard]': 'appearance == \"standard\"',\n '[class.mat-form-field-appearance-fill]': 'appearance == \"fill\"',\n '[class.mat-form-field-appearance-outline]': 'appearance == \"outline\"',\n '[class.mat-form-field-appearance-legacy]': 'appearance == \"legacy\"',\n '[class.mat-form-field-invalid]': '_control.errorState',\n '[class.mat-form-field-can-float]': '_canLabelFloat',\n '[class.mat-form-field-should-float]': '_shouldLabelFloat()',\n '[class.mat-form-field-hide-placeholder]': '_hideControlPlaceholder()',\n '[class.mat-form-field-disabled]': '_control.disabled',\n '[class.mat-form-field-autofilled]': '_control.autofilled',\n '[class.mat-focused]': '_control.focused',\n '[class.mat-accent]': 'color == \"accent\"',\n '[class.mat-warn]': 'color == \"warn\"',\n '[class.ng-untouched]': '_shouldForward(\"untouched\")',\n '[class.ng-touched]': '_shouldForward(\"touched\")',\n '[class.ng-pristine]': '_shouldForward(\"pristine\")',\n '[class.ng-dirty]': '_shouldForward(\"dirty\")',\n '[class.ng-valid]': '_shouldForward(\"valid\")',\n '[class.ng-invalid]': '_shouldForward(\"invalid\")',\n '[class.ng-pending]': '_shouldForward(\"pending\")',\n '[class._mat-animation-noopable]': '!_animationsEnabled',\n },\n inputs: ['color'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\n\nexport class MatFormField extends _MatFormFieldMixinBase\n implements AfterContentInit, AfterContentChecked, AfterViewInit, CanColor {\n private _labelOptions: LabelOptions;\n\n /** The form-field appearance style. */\n @Input()\n get appearance(): MatFormFieldAppearance {\n return this._appearance || this._defaultOptions && this._defaultOptions.appearance || 'legacy';\n }\n set appearance(value: MatFormFieldAppearance) {\n const oldValue = this._appearance;\n this._appearance = value;\n if (this._appearance === 'outline' && oldValue !== value) {\n // @breaking-change 7.0.0 Remove this check and else block once _ngZone is required.\n if (this._ngZone) {\n this._ngZone!.onStable.pipe(take(1)).subscribe(() => {\n this._ngZone!.runOutsideAngular(() => this.updateOutlineGap());\n });\n } else {\n Promise.resolve().then(() => this.updateOutlineGap());\n }\n }\n }\n _appearance: MatFormFieldAppearance;\n\n /** Whether the required marker should be hidden. */\n @Input()\n get hideRequiredMarker(): boolean { return this._hideRequiredMarker; }\n set hideRequiredMarker(value: boolean) {\n this._hideRequiredMarker = coerceBooleanProperty(value);\n }\n private _hideRequiredMarker: boolean;\n\n /** Override for the logic that disables the label animation in certain cases. */\n private _showAlwaysAnimate = false;\n\n /** Whether the floating label should always float or not. */\n get _shouldAlwaysFloat(): boolean {\n return this.floatLabel === 'always' && !this._showAlwaysAnimate;\n }\n\n /** Whether the label can float or not. */\n get _canLabelFloat(): boolean { return this.floatLabel !== 'never'; }\n\n /** State of the mat-hint and mat-error animations. */\n _subscriptAnimationState: string = '';\n\n /** Text for the form field hint. */\n @Input()\n get hintLabel(): string { return this._hintLabel; }\n set hintLabel(value: string) {\n this._hintLabel = value;\n this._processHints();\n }\n private _hintLabel = '';\n\n // Unique id for the hint label.\n _hintLabelId: string = `mat-hint-${nextUniqueId++}`;\n\n // Unique id for the internal form field label.\n _labelId = `mat-form-field-label-${nextUniqueId++}`;\n\n /**\n * Whether the label should always float, never float or float as the user types.\n *\n * Note: only the legacy appearance supports the `never` option. `never` was originally added as a\n * way to make the floating label emulate the behavior of a standard input placeholder. However\n * the form field now supports both floating labels and placeholders. Therefore in the non-legacy\n * appearances the `never` option has been disabled in favor of just using the placeholder.\n */\n @Input()\n get floatLabel(): FloatLabelType {\n return this.appearance !== 'legacy' && this._floatLabel === 'never' ? 'auto' : this._floatLabel;\n }\n set floatLabel(value: FloatLabelType) {\n if (value !== this._floatLabel) {\n this._floatLabel = value || this._labelOptions.float || 'auto';\n this._changeDetectorRef.markForCheck();\n }\n }\n private _floatLabel: FloatLabelType;\n\n /** Whether the Angular animations are enabled. */\n _animationsEnabled: boolean;\n\n /**\n * @deprecated\n * @breaking-change 7.0.0\n */\n @ViewChild('underline') underlineRef: ElementRef;\n\n @ViewChild('connectionContainer') _connectionContainerRef: ElementRef<HTMLElement>;\n @ViewChild('inputContainer') _inputContainerRef: ElementRef;\n @ViewChild('label') private _label: ElementRef;\n @ContentChild(MatFormFieldControl) _control: MatFormFieldControl<any>;\n @ContentChild(MatPlaceholder) _placeholderChild: MatPlaceholder;\n @ContentChild(MatLabel) _labelChild: MatLabel;\n @ContentChildren(MatError) _errorChildren: QueryList<MatError>;\n @ContentChildren(MatHint) _hintChildren: QueryList<MatHint>;\n @ContentChildren(MatPrefix) _prefixChildren: QueryList<MatPrefix>;\n @ContentChildren(MatSuffix) _suffixChildren: QueryList<MatSuffix>;\n\n constructor(\n public _elementRef: ElementRef,\n private _changeDetectorRef: ChangeDetectorRef,\n @Optional() @Inject(MAT_LABEL_GLOBAL_OPTIONS) labelOptions: LabelOptions,\n @Optional() private _dir: Directionality,\n @Optional() @Inject(MAT_FORM_FIELD_DEFAULT_OPTIONS) private _defaultOptions:\n MatFormFieldDefaultOptions,\n // @breaking-change 7.0.0 _platform, _ngZone and _animationMode to be made required.\n private _platform?: Platform,\n private _ngZone?: NgZone,\n @Optional() @Inject(ANIMATION_MODULE_TYPE) _animationMode?: string) {\n super(_elementRef);\n\n this._labelOptions = labelOptions ? labelOptions : {};\n this.floatLabel = this._labelOptions.float || 'auto';\n this._animationsEnabled = _animationMode !== 'NoopAnimations';\n }\n\n /**\n * Gets an ElementRef for the element that a overlay attached to the form-field should be\n * positioned relative to.\n */\n getConnectedOverlayOrigin(): ElementRef {\n return this._connectionContainerRef || this._elementRef;\n }\n\n ngAfterContentInit() {\n this._validateControlChild();\n if (this._control.controlType) {\n this._elementRef.nativeElement.classList\n .add(`mat-form-field-type-${this._control.controlType}`);\n }\n\n // Subscribe to changes in the child control state in order to update the form field UI.\n this._control.stateChanges.pipe(startWith(null!)).subscribe(() => {\n this._validatePlaceholders();\n this._syncDescribedByIds();\n this._changeDetectorRef.markForCheck();\n });\n\n // Run change detection if the value, prefix, or suffix changes.\n const valueChanges = this._control.ngControl && this._control.ngControl.valueChanges || EMPTY;\n merge(valueChanges, this._prefixChildren.changes, this._suffixChildren.changes)\n .subscribe(() => this._changeDetectorRef.markForCheck());\n\n // Re-validate when the number of hints changes.\n this._hintChildren.changes.pipe(startWith(null)).subscribe(() => {\n this._processHints();\n this._changeDetectorRef.markForCheck();\n });\n\n // Update the aria-described by when the number of errors changes.\n this._errorChildren.changes.pipe(startWith(null)).subscribe(() => {\n this._syncDescribedByIds();\n this._changeDetectorRef.markForCheck();\n });\n }\n\n ngAfterContentChecked() {\n this._validateControlChild();\n }\n\n ngAfterViewInit() {\n // Avoid animations on load.\n this._subscriptAnimationState = 'enter';\n this._changeDetectorRef.detectChanges();\n }\n\n /** Determines whether a class from the NgControl should be forwarded to the host element. */\n _shouldForward(prop: string): boolean {\n const ngControl = this._control ? this._control.ngControl : null;\n return ngControl && ngControl[prop];\n }\n\n _hasPlaceholder() {\n return !!(this._control && this._control.placeholder || this._placeholderChild);\n }\n\n _hasLabel() {\n return !!this._labelChild;\n }\n\n _shouldLabelFloat() {\n return this._canLabelFloat && (this._control.shouldLabelFloat || this._shouldAlwaysFloat);\n }\n\n _hideControlPlaceholder() {\n // In the legacy appearance the placeholder is promoted to a label if no label is given.\n return this.appearance === 'legacy' && !this._hasLabel() ||\n this._hasLabel() && !this._shouldLabelFloat();\n }\n\n _hasFloatingLabel() {\n // In the legacy appearance the placeholder is promoted to a label if no label is given.\n return this._hasLabel() || this.appearance === 'legacy' && this._hasPlaceholder();\n }\n\n /** Determines whether to display hints or errors. */\n _getDisplayedMessages(): 'error' | 'hint' {\n return (this._errorChildren && this._errorChildren.length > 0 &&\n this._control.errorState) ? 'error' : 'hint';\n }\n\n /** Animates the placeholder up and locks it in position. */\n _animateAndLockLabel(): void {\n if (this._hasFloatingLabel() && this._canLabelFloat) {\n // If animations are disabled, we shouldn't go in here,\n // because the `transitionend` will never fire.\n if (this._animationsEnabled) {\n this._showAlwaysAnimate = true;\n\n fromEvent(this._label.nativeElement, 'transitionend').pipe(take(1)).subscribe(() => {\n this._showAlwaysAnimate = false;\n });\n }\n\n this.floatLabel = 'always';\n this._changeDetectorRef.markForCheck();\n }\n }\n\n /**\n * Ensure that there is only one placeholder (either `placeholder` attribute on the child control\n * or child element with the `mat-placeholder` directive).\n */\n private _validatePlaceholders() {\n if (this._control.placeholder && this._placeholderChild) {\n throw getMatFormFieldPlaceholderConflictError();\n }\n }\n\n /** Does any extra processing that is required when handling the hints. */\n private _processHints() {\n this._validateHints();\n this._syncDescribedByIds();\n }\n\n /**\n * Ensure that there is a maximum of one of each `<mat-hint>` alignment specified, with the\n * attribute being considered as `align=\"start\"`.\n */\n private _validateHints() {\n if (this._hintChildren) {\n let startHint: MatHint;\n let endHint: MatHint;\n this._hintChildren.forEach((hint: MatHint) => {\n if (hint.align === 'start') {\n if (startHint || this.hintLabel) {\n throw getMatFormFieldDuplicatedHintError('start');\n }\n startHint = hint;\n } else if (hint.align === 'end') {\n if (endHint) {\n throw getMatFormFieldDuplicatedHintError('end');\n }\n endHint = hint;\n }\n });\n }\n }\n\n /**\n * Sets the list of element IDs that describe the child control. This allows the control to update\n * its `aria-describedby` attribute accordingly.\n */\n private _syncDescribedByIds() {\n if (this._control) {\n let ids: string[] = [];\n\n if (this._getDisplayedMessages() === 'hint') {\n const startHint = this._hintChildren ?\n this._hintChildren.find(hint => hint.align === 'start') : null;\n const endHint = this._hintChildren ?\n this._hintChildren.find(hint => hint.align === 'end') : null;\n\n if (startHint) {\n ids.push(startHint.id);\n } else if (this._hintLabel) {\n ids.push(this._hintLabelId);\n }\n\n if (endHint) {\n ids.push(endHint.id);\n }\n } else if (this._errorChildren) {\n ids = this._errorChildren.map(error => error.id);\n }\n\n this._control.setDescribedByIds(ids);\n }\n }\n\n /** Throws an error if the form field's control is missing. */\n protected _validateControlChild() {\n if (!this._control) {\n throw getMatFormFieldMissingControlError();\n }\n }\n\n /**\n * Updates the width and position of the gap in the outline. Only relevant for the outline\n * appearance.\n */\n updateOutlineGap() {\n if (this.appearance !== 'outline') {\n return;\n }\n\n let startWidth = 0;\n let gapWidth = 0;\n const startEls = this._connectionContainerRef.nativeElement.querySelectorAll<HTMLElement>(\n '.mat-form-field-outline-start');\n const gapEls = this._connectionContainerRef.nativeElement.querySelectorAll<HTMLElement>(\n '.mat-form-field-outline-gap');\n if (this._label && this._label.nativeElement.children.length) {\n if (this._platform && !this._platform.isBrowser) {\n // getBoundingClientRect isn't available on the server.\n return;\n }\n if (!document.documentElement.contains(this._elementRef.nativeElement)) {\n return;\n }\n\n const containerStart = this._getStartEnd(\n this._connectionContainerRef.nativeElement.getBoundingClientRect());\n const labelStart = this._getStartEnd(\n this._label.nativeElement.children[0].getBoundingClientRect());\n let labelWidth = 0;\n for (const child of this._label.nativeElement.children) {\n labelWidth += child.offsetWidth;\n }\n startWidth = labelStart - containerStart - outlineGapPadding;\n gapWidth = labelWidth * floatingLabelScale + outlineGapPadding * 2;\n }\n\n for (let i = 0; i < startEls.length; i++) {\n startEls.item(i).style.width = `${startWidth}px`;\n }\n for (let i = 0; i < gapEls.length; i++) {\n gapEls.item(i).style.width = `${gapWidth}px`;\n }\n }\n\n /** Gets the start end of the rect considering the current directionality. */\n private _getStartEnd(rect: ClientRect): number {\n return this._dir && this._dir.value === 'rtl' ? rect.right : rect.left;\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Directive} from '@angular/core';\n\n\n/** Suffix to be placed at the end of the form field. */\n@Directive({\n selector: '[matSuffix]',\n})\nexport class MatSuffix {}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Directive} from '@angular/core';\n\n\n/** Prefix to be placed the the front of the form field. */\n@Directive({\n selector: '[matPrefix]',\n})\nexport class MatPrefix {}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Directive} from '@angular/core';\n\n\n/**\n * The placeholder text for an `MatFormField`.\n * @deprecated Use `<mat-label>` to specify the label and the `placeholder` attribute to specify the\n * placeholder.\n * @breaking-change 8.0.0\n */\n@Directive({\n selector: 'mat-placeholder'\n})\nexport class MatPlaceholder {}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Directive} from '@angular/core';\n\n\n/** The floating label for a `mat-form-field`. */\n@Directive({\n selector: 'mat-label'\n})\nexport class MatLabel {}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Directive, Input} from '@angular/core';\n\n\nlet nextUniqueId = 0;\n\n\n/** Hint text to be shown underneath the form field control. */\n@Directive({\n selector: 'mat-hint',\n host: {\n 'class': 'mat-hint',\n '[class.mat-right]': 'align == \"end\"',\n '[attr.id]': 'id',\n // Remove align attribute to prevent it from interfering with layout.\n '[attr.align]': 'null',\n }\n})\nexport class MatHint {\n /** Whether to align the hint label at the start or end of the line. */\n @Input() align: 'start' | 'end' = 'start';\n\n /** Unique ID for the hint. Used for the aria-describedby on the form field control. */\n @Input() id: string = `mat-hint-${nextUniqueId++}`;\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/** @docs-private */\nexport function getMatFormFieldPlaceholderConflictError(): Error {\n return Error('Placeholder attribute and child element were both specified.');\n}\n\n/** @docs-private */\nexport function getMatFormFieldDuplicatedHintError(align: string): Error {\n return Error(`A hint was already declared for 'align=\"${align}\"'.`);\n}\n\n/** @docs-private */\nexport function getMatFormFieldMissingControlError(): Error {\n return Error('mat-form-field must contain a MatFormFieldControl.');\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Observable} from 'rxjs';\nimport {NgControl} from '@angular/forms';\n\n\n/** An interface which allows a control to work inside of a `MatFormField`. */\nexport abstract class MatFormFieldControl<T> {\n /** The value of the control. */\n value: T | null;\n\n /**\n * Stream that emits whenever the state of the control changes such that the parent `MatFormField`\n * needs to run change detection.\n */\n readonly stateChanges: Observable<void>;\n\n /** The element ID for this control. */\n readonly id: string;\n\n /** The placeholder for this control. */\n readonly placeholder: string;\n\n /** Gets the NgControl for this control. */\n readonly ngControl: NgControl | null;\n\n /** Whether the control is focused. */\n readonly focused: boolean;\n\n /** Whether the control is empty. */\n readonly empty: boolean;\n\n /** Whether the `MatFormField` label should try to float. */\n readonly shouldLabelFloat: boolean;\n\n /** Whether the control is required. */\n readonly required: boolean;\n\n /** Whether the control is disabled. */\n readonly disabled: boolean;\n\n /** Whether the control is in an error state. */\n readonly errorState: boolean;\n\n /**\n * An optional name for the control type that can be used to distinguish `mat-form-field` elements\n * based on their control type. The form field will add a class,\n * `mat-form-field-type-{{controlType}}` to its root element.\n */\n readonly controlType?: string;\n\n /**\n * Whether the input is currently in an autofilled state. If property is not present on the\n * control it is assumed to be false.\n */\n readonly autofilled?: boolean;\n\n /** Sets the list of element IDs that currently describe this control. */\n abstract setDescribedByIds(ids: string[]): void;\n\n /** Handles a click on the control's container. */\n abstract onContainerClick(event: MouseEvent): void;\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport {\n animate,\n state,\n style,\n transition,\n trigger,\n AnimationTriggerMetadata,\n} from '@angular/animations';\n\n/** Animations used by the MatFormField. */\nexport const matFormFieldAnimations: {\n readonly transitionMessages: AnimationTriggerMetadata\n} = {\n /** Animation that transitions the form field's error and hint messages. */\n transitionMessages: trigger('transitionMessages', [\n // TODO(mmalerba): Use angular animations for label animation as well.\n state('enter', style({ opacity: 1, transform: 'translateY(0%)' })),\n transition('void => enter', [\n style({ opacity: 0, transform: 'translateY(-100%)' }),\n animate('300ms cubic-bezier(0.55, 0, 0.55, 0.2)'),\n ]),\n ])\n};\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Directive, Input} from '@angular/core';\n\n\nlet nextUniqueId = 0;\n\n\n/** Single error message to be shown underneath the form field. */\n@Directive({\n selector: 'mat-error',\n host: {\n 'class': 'mat-error',\n 'role': 'alert',\n '[attr.id]': 'id',\n }\n})\nexport class MatError {\n @Input() id: string = `mat-error-${nextUniqueId++}`;\n}\n"],"names":["nextUniqueId"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AUWA,qBAAI,YAAY,GAAG,CAAC,CAAC;;;;AAYrB,AAAA,MAAA,QAAA,CAAA;;QACA,IAAA,CAAA,EAAA,GAAwB,CAAxB,UAAA,EAAqC,YAAY,EAAE,CAAnD,CAAqD,CAArD;;;;IATA,EAAA,IAAA,EAAC,SAAS,EAAV,IAAA,EAAA,CAAW;gBACT,QAAQ,EAAE,WAAW;gBACrB,IAAI,EAAE;oBACJ,OAAO,EAAE,WAAW;oBACpB,MAAM,EAAE,OAAO;oBACf,WAAW,EAAE,IAAI;iBAClB;aACF,EAAD,EAAA;;;;IAEA,IAAA,EAAA,CAAA,EAAA,IAAA,EAAG,KAAK,EAAR,EAAA;;;;;;;ADjBA;;;AAUA,AAAA,MAAA,iBAAa,sBAAsB,GAE/B;;IAEF,kBAAkB,EAAE,OAAO,CAAC,oBAAoB,EAAE;;QAEhD,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC,CAAC;QAClE,UAAU,CAAC,eAAe,EAAE;YAC1B,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,mBAAmB,EAAE,CAAC;YACrD,OAAO,CAAC,wCAAwC,CAAC;SAClD,CAAC;KACH,CAAC;CACH;;;;;;;;;;;;ADhBD,AAAA,MAAA,mBAAA,CAAA;CAuDC;;;;;;;;;;;AD3DD,AAAA,SAAA,uCAAA,GAAA;IACE,OAAO,KAAK,CAAC,8DAA8D,CAAC,CAAC;CAC9E;;;;;;AAGD,AAAA,SAAA,kCAAA,CAAmD,KAAa,EAAhE;IACE,OAAO,KAAK,CAAC,CAAf,wCAAA,EAA0D,KAAK,CAA/D,GAAA,CAAoE,CAAC,CAAC;CACrE;;;;;AAGD,AAAA,SAAA,kCAAA,GAAA;IACE,OAAO,KAAK,CAAC,oDAAoD,CAAC,CAAC;CACpE;;;;;;ADVD,qBAAIA,cAAY,GAAG,CAAC,CAAC;;;;AAcrB,AAAA,MAAA,OAAA,CAAA;;;;;QAEA,IAAA,CAAA,KAAA,GAAoC,OAAO,CAA3C;;;;QAGA,IAAA,CAAA,EAAA,GAAwB,CAAxB,SAAA,EAAoCA,cAAY,EAAE,CAAlD,CAAoD,CAApD;;;;IAfA,EAAA,IAAA,EAAC,SAAS,EAAV,IAAA,EAAA,CAAW;gBACT,QAAQ,EAAE,UAAU;gBACpB,IAAI,EAAE;oBACJ,OAAO,EAAE,UAAU;oBACnB,mBAAmB,EAAE,gBAAgB;oBACrC,WAAW,EAAE,IAAI;;oBAEjB,cAAc,EAAE,MAAM;iBACvB;aACF,EAAD,EAAA;;;;IAGA,OAAA,EAAA,CAAA,EAAA,IAAA,EAAG,KAAK,EAAR,EAAA;IAGA,IAAA,EAAA,CAAA,EAAA,IAAA,EAAG,KAAK,EAAR,EAAA;;;;;;;;;;ADfA,AAAA,MAAA,QAAA,CAAA;;;IAHA,EAAA,IAAA,EAAC,SAAS,EAAV,IAAA,EAAA,CAAW;gBACT,QAAQ,EAAE,WAAW;aACtB,EAAD,EAAA;;;;;;;;;;;;;ADMA,AAAA,MAAA,cAAA,CAAA;;;IAHA,EAAA,IAAA,EAAC,SAAS,EAAV,IAAA,EAAA,CAAW;gBACT,QAAQ,EAAE,iBAAiB;aAC5B,EAAD,EAAA;;;;;;;;;;ADJA,AAAA,MAAA,SAAA,CAAA;;;IAHA,EAAA,IAAA,EAAC,SAAS,EAAV,IAAA,EAAA,CAAW;gBACT,QAAQ,EAAE,aAAa;aACxB,EAAD,EAAA;;;;;;;;;;ADCA,AAAA,MAAA,SAAA,CAAA;;;IAHA,EAAA,IAAA,EAAC,SAAS,EAAV,IAAA,EAAA,CAAW;gBACT,QAAQ,EAAE,aAAa;aACxB,EAAD,EAAA;;;;;;;ADyCA,qBAAIA,cAAY,GAAG,CAAC,CAAC;AACrB,uBAAM,kBAAkB,GAAG,IAAI,CAAC;AAChC,uBAAM,iBAAiB,GAAG,CAAC,CAAC;;;;;AAO5B,AAAA,MAAA,gBAAA,CAAA;;;;IACE,WAAF,CAAqB,WAAuB,EAA5C;QAAqB,IAArB,CAAA,WAAgC,GAAX,WAAW,CAAY;KAAK;CAChD;;;;;AAMD,AAAA,MAAA,iBAAa,sBAAsB,GAAG,UAAU,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAC;;;;;AAiB9E,AAAA,MAAA,iBAAa,8BAA8B,GACvC,IAAI,cAAc,CAA6B,gCAAgC,CAAC,CAAC;;;;AAkDrF,AAAA,MAAA,YAA0B,SAAQ,sBAAsB,CAAxD;;;;;;;;;;;IAsGE,WAAF,CACa,WADb,EAEc,kBAFd,EAGoD,YAHpD,EAI0B,IAJ1B,EAKkE,eALlE,EAQc,SARd,EASc,OATd,EAUiD,cAVjD,EAAA;QAWI,KAAK,CAAC,WAAW,CAAC,CAAC;QAVV,IAAb,CAAA,WAAwB,GAAX,WAAW,CAAxB;QACc,IAAd,CAAA,kBAAgC,GAAlB,kBAAkB,CAAhC;QAE0B,IAA1B,CAAA,IAA8B,GAAJ,IAAI,CAA9B;QACkE,IAAlE,CAAA,eAAiF,GAAf,eAAe,CAAjF;QAGc,IAAd,CAAA,SAAuB,GAAT,SAAS,CAAvB;QACc,IAAd,CAAA,OAAqB,GAAP,OAAO,CAArB;;;;QA7EA,IAAA,CAAA,kBAAA,GAA+B,KAAK,CAApC;;;;QAWA,IAAA,CAAA,wBAAA,GAAqC,EAAE,CAAvC;QASA,IAAA,CAAA,UAAA,GAAuB,EAAE,CAAzB;;QAGA,IAAA,CAAA,YAAA,GAAyB,CAAzB,SAAA,EAAqCA,cAAY,EAAE,CAAnD,CAAqD,CAArD;;QAGA,IAAA,CAAA,QAAA,GAAa,CAAb,qBAAA,EAAqCA,cAAY,EAAE,CAAnD,CAAqD,CAArD;QAuDI,IAAI,CAAC,aAAa,GAAG,YAAY,GAAG,YAAY,GAAG,EAAE,CAAC;QACtD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,IAAI,MAAM,CAAC;QACrD,IAAI,CAAC,kBAAkB,GAAG,cAAc,KAAK,gBAAgB,CAAC;KAC/D;;;;;IAhHH,IAAM,UAAU,GAAhB;QACI,OAAO,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe,CAAC,UAAU,IAAI,QAAQ,CAAC;;;;;;IAEjG,IAAI,UAAU,CAAC,KAA6B,EAA9C;QACI,uBAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC;QAClC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,IAAI,QAAQ,KAAK,KAAK,EAAE;;YAExD,IAAI,IAAI,CAAC,OAAO,EAAE;iCACxB,EAAQ,IAAI,CAAC,OAAO,GAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAA3C,CAA6C,SAAS,CAAC,MAAvD;qCACA,EAAU,IAAI,CAAC,OAAO,GAAE,iBAAiB,CAAC,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAvE,CAAA;iBACS,CAAT,CAAA;aACO;iBAAM;gBACL,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;aACvD;SACF;KACF;;;;;IAKH,IAAM,kBAAkB,GAAxB,EAAsC,OAAO,IAAI,CAAC,mBAAmB,CAAC,EAAtE;;;;;IACE,IAAI,kBAAkB,CAAC,KAAc,EAAvC;QACI,IAAI,CAAC,mBAAmB,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;KACzD;;;;;IAOD,IAAI,kBAAkB,GAAxB;QACI,OAAO,IAAI,CAAC,UAAU,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC;KACjE;;;;;IAGD,IAAI,cAAc,GAApB,EAAkC,OAAO,IAAI,CAAC,UAAU,KAAK,OAAO,CAAC,EAAE;;;;;IAOvE,IAAM,SAAS,GAAf,EAA4B,OAAO,IAAI,CAAC,UAAU,CAAC,EAAnD;;;;;IACE,IAAI,SAAS,CAAC,KAAa,EAA7B;QACI,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC,aAAa,EAAE,CAAC;KACtB;;;;;;;;;;IAkBH,IAAM,UAAU,GAAhB;QACI,OAAO,IAAI,CAAC,UAAU,KAAK,QAAQ,IAAI,IAAI,CAAC,WAAW,KAAK,OAAO,GAAG,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC;;;;;;IAElG,IAAI,UAAU,CAAC,KAAqB,EAAtC;QACI,IAAI,KAAK,KAAK,IAAI,CAAC,WAAW,EAAE;YAC9B,IAAI,CAAC,WAAW,GAAG,KAAK,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,IAAI,MAAM,CAAC;YAC/D,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,CAAC;SACxC;KACF;;;;;;IA6CD,yBAAyB,GAA3B;QACI,OAAO,IAAI,CAAC,uBAAuB,IAAI,IAAI,CAAC,WAAW,CAAC;KACzD;;;;IAED,kBAAkB,GAApB;QACI,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE;YAC7B,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,SAAS;iBACnC,GAAG,CAAC,CAAf,oBAAA,EAAsC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAA/D,CAAiE,CAAC,CAAC;SAC9D;;QAGD,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,oBAAC,IAAI,GAAE,CAAC,CAAC,SAAS,CAAC,MAAhE;YACM,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC7B,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC3B,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,CAAC;SACxC,CAAC,CAAC;;QAGH,uBAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,YAAY,IAAI,KAAK,CAAC;QAC9F,KAAK,CAAC,YAAY,EAAE,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC;aAC1E,SAAS,CAAC,MAAM,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,CAAC,CAAC;;QAG7D,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,MAA/D;YACM,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,CAAC;SACxC,CAAC,CAAC;;QAGH,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,MAAhE;YACM,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC3B,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,CAAC;SACxC,CAAC,CAAC;KACJ;;;;IAED,qBAAqB,GAAvB;QACI,IAAI,CAAC,qBAAqB,EAAE,CAAC;KAC9B;;;;IAED,eAAe,GAAjB;;QAEI,IAAI,CAAC,wBAAwB,GAAG,OAAO,CAAC;QACxC,IAAI,CAAC,kBAAkB,CAAC,aAAa,EAAE,CAAC;KACzC;;;;;;IAGD,cAAc,CAAC,IAAY,EAA7B;QACI,uBAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC;QACjE,OAAO,SAAS,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC;KACrC;;;;IAED,eAAe,GAAjB;QACI,OAAO,CAAC,EAAE,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,IAAI,IAAI,CAAC,iBAAiB,CAAC,CAAC;KACjF;;;;IAED,SAAS,GAAX;QACI,OAAO,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC;KAC3B;;;;IAED,iBAAiB,GAAnB;QACI,OAAO,IAAI,CAAC,cAAc,KAAK,IAAI,CAAC,QAAQ,CAAC,gBAAgB,IAAI,IAAI,CAAC,kBAAkB,CAAC,CAAC;KAC3F;;;;IAED,uBAAuB,GAAzB;;QAEI,OAAO,IAAI,CAAC,UAAU,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACpD,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;KACnD;;;;IAED,iBAAiB,GAAnB;;QAEI,OAAO,IAAI,CAAC,SAAS,EAAE,IAAI,IAAI,CAAC,UAAU,KAAK,QAAQ,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;KACnF;;;;;IAGD,qBAAqB,GAAvB;QACI,OAAO,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC;YACzD,IAAI,CAAC,QAAQ,CAAC,UAAU,IAAI,OAAO,GAAG,MAAM,CAAC;KAClD;;;;;IAGD,oBAAoB,GAAtB;QACI,IAAI,IAAI,CAAC,iBAAiB,EAAE,IAAI,IAAI,CAAC,cAAc,EAAE;;;YAGnD,IAAI,IAAI,CAAC,kBAAkB,EAAE;gBAC3B,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;gBAE/B,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAtF;oBACU,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;iBACjC,CAAC,CAAC;aACJ;YAED,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC;YAC3B,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,CAAC;SACxC;KACF;;;;;;IAMO,qBAAqB,GAA/B;QACI,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,IAAI,IAAI,CAAC,iBAAiB,EAAE;YACvD,MAAM,uCAAuC,EAAE,CAAC;SACjD;;;;;;IAIK,aAAa,GAAvB;QACI,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,CAAC,mBAAmB,EAAE,CAAC;;;;;;;IAOrB,cAAc,GAAxB;QACI,IAAI,IAAI,CAAC,aAAa,EAAE;YACtB,qBAAI,SAAkB,CAAC;YACvB,qBAAI,OAAgB,CAAC;YACrB,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,IAAa,KAA/C;gBACQ,IAAI,IAAI,CAAC,KAAK,KAAK,OAAO,EAAE;oBAC1B,IAAI,SAAS,IAAI,IAAI,CAAC,SAAS,EAAE;wBAC/B,MAAM,kCAAkC,CAAC,OAAO,CAAC,CAAC;qBACnD;oBACD,SAAS,GAAG,IAAI,CAAC;iBAClB;qBAAM,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,EAAE;oBAC/B,IAAI,OAAO,EAAE;wBACX,MAAM,kCAAkC,CAAC,KAAK,CAAC,CAAC;qBACjD;oBACD,OAAO,GAAG,IAAI,CAAC;iBAChB;aACF,CAAC,CAAC;SACJ;;;;;;;IAOK,mBAAmB,GAA7B;QACI,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,qBAAI,GAAG,GAAa,EAAE,CAAC;YAEvB,IAAI,IAAI,CAAC,qBAAqB,EAAE,KAAK,MAAM,EAAE;gBAC3C,uBAAM,SAAS,GAAG,IAAI,CAAC,aAAa;oBAChC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,KAAK,OAAO,CAAC,GAAG,IAAI,CAAC;gBACnE,uBAAM,OAAO,GAAG,IAAI,CAAC,aAAa;oBAC9B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,GAAG,IAAI,CAAC;gBAEjE,IAAI,SAAS,EAAE;oBACb,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;iBACxB;qBAAM,IAAI,IAAI,CAAC,UAAU,EAAE;oBAC1B,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;iBAC7B;gBAED,IAAI,OAAO,EAAE;oBACX,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;iBACtB;aACF;iBAAM,IAAI,IAAI,CAAC,cAAc,EAAE;gBAC9B,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,IAAI,KAAK,CAAC,EAAE,CAAC,CAAC;aAClD;YAED,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;SACtC;;;;;;IAIO,qBAAqB,GAAjC;QACI,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClB,MAAM,kCAAkC,EAAE,CAAC;SAC5C;KACF;;;;;;IAMD,gBAAgB,GAAlB;QACI,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE;YACjC,OAAO;SACR;QAED,qBAAI,UAAU,GAAG,CAAC,CAAC;QACnB,qBAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,uBAAM,QAAQ,GAAG,IAAI,CAAC,uBAAuB,CAAC,aAAa,CAAC,gBAAgB,CAC1E,+BAA+B,CAAC,CAAC;QACnC,uBAAM,MAAM,GAAG,IAAI,CAAC,uBAAuB,CAAC,aAAa,CAAC,gBAAgB,CACtE,6BAA6B,CAAC,CAAC;QACnC,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,EAAE;YAC5D,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE;;gBAE/C,OAAO;aACR;YACD,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,EAAE;gBACtE,OAAO;aACR;YAED,uBAAM,cAAc,GAAG,IAAI,CAAC,YAAY,CACpC,IAAI,CAAC,uBAAuB,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC,CAAC;YACxE,uBAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAChC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,qBAAqB,EAAE,CAAC,CAAC;YACnE,qBAAI,UAAU,GAAG,CAAC,CAAC;YACnB,KAAK,uBAAM,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,EAAE;gBACtD,UAAU,IAAI,KAAK,CAAC,WAAW,CAAC;aACjC;YACD,UAAU,GAAG,UAAU,GAAG,cAAc,GAAG,iBAAiB,CAAC;YAC7D,QAAQ,GAAG,UAAU,GAAG,kBAAkB,GAAG,iBAAiB,GAAG,CAAC,CAAC;SACpE;QAED,KAAK,qBAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACxC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,GAAG,CAArC,EAAwC,UAAU,CAAlD,EAAA,CAAsD,CAAC;SAClD;QACD,KAAK,qBAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACtC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,GAAG,CAAnC,EAAsC,QAAQ,CAA9C,EAAA,CAAkD,CAAC;SAC9C;KACF;;;;;;IAGO,YAAY,CAAC,IAAgB,EAAvC;QACI,OAAO,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC;;;;IAzY3E,EAAA,IAAA,EAAC,SAAS,EAAV,IAAA,EAAA,CAAW,CAAX,QAAA,EAAA,gBAAA;gBACE,QAAQ,EAAE,cAAZ;gBACE,QAAQ,EAAE,qnFAAZ;;;;;;gBAME,IAAF,EAAA;oBACI,OAAJ,EAAA,gBAAA;oBACI,4CAAJ,EAAA,0BAAA;oBACI,wCAAJ,EAAA,sBAAA;oBACI,2CAAJ,EAAA,yBAAA;oBACI,0CAAJ,EAAA,wBAAA;oBACI,gCAAJ,EAAA,qBAAA;oBACA,kCAAA,EAAA,gBAAA;oBACA,qCAAA,EAAA,qBAAA;oBACM,yCAAN,EAAA,2BAAA;oBACI,iCAAJ,EAAA,mBAAA;oBACI,mCAAJ,EAAA,qBAAA;oBACI,qBAAJ,EAAA,kBAAA;oBACI,oBAAJ,EAAA,mBAAA;oBACI,kBAAJ,EAAA,iBAAA;oBACI,sBAAJ,EAAA,6BAAA;oBACI,oBAAJ,EAAA,2BAAA;oBACI,qBAAJ,EAAA,4BAAA;oBACI,kBAAJ,EAAA,yBAAA;oBACI,kBAAJ,EAAA,yBAAA;oBACI,oBAAJ,EAAA,2BAAA;oBACI,oBAAJ,EAAA,2BAAA;oBACI,iCAAJ,EAAA,qBAAA;iBACA;gBACA,MAAA,EAAA,CAAA,OAAA,CAAA;gBACA,aAAA,EAAA,iBAAA,CAAA,IAAA;gBACA,eAAA,EAAA,uBAAA,CAAA,MAAA;aACA,EAAA,EAAA;CACA,CAAA;;AAEA,YAAA,CAAA,cAAA,GAAA,MAAA;IACA,EAAA,IAAA,EAAA,UAAA,GAAA;IACA,EAAA,IAAA,EAAA,iBAAA,GAAA;IACA,EAAA,IAAA,EAAA,SAAA,EAAA,UAAmB,EAAnB,CAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,wBAAA,EAAA,EAAA,EAAA,EAAA;IACA,EAAA,IAAA,EAAA,cAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAmC,QAAnC,EAAA,EAAA,EAAA;IACA,EAAA,IAAA,EAAA,SAAA,EAAA,UAAmB,EAAnB,CAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAA0C,EAA1C,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,8BAAA,EAAA,EAAA,EAAA,EAAA;IACA,EAAA,IAAA,EAAA,QAAA,GAAA;;;;AAvHA,YAAE,CAAF,cAAA,GAAA;IAJA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,KAAA,EAAA,EAAA;IAsOA,oBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,KAAA,EAAA,EAAO;IA7OP,WAAA,EAAA,CAAA,EAAA,IAAA,EAAsB,KAAtB,EAAA,EAAA;IA+OA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,KAAA,EAAA,EAAA;IApMA,cAAA,EAAgB,CAAhB,EAAA,IAAA,EAAA,SAAA,EAAA,IAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA;IA5BA,yBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,SAAA,EAAA,IAAA,EAAA,CAAA,qBAAA,EAAA,EAAA,EAAA;IAqOA,oBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,SAAO,EAAP,IAAA,EAAe,CAAf,gBAAA,EAAA,EAAA,EAAA;;;IA3GA,mBAAA,EAAA,CAAA,EAAA,IAAQ,EAAR,YAAA,EAAA,IAAA,EAAA,CAAA,cAAA,EAAA,EAAA,EAAA;IAqBA,aAAA,EAAA,CAAA,EAAA,IAAA,EAAA,YAAQ,EAAR,IAAA,EAAA,CAAA,QAAA,EAAA,EAAA,EAAA;IAsBA,gBAAA,EAAA,CAAA,EAAA,IAAA,EAAQ,eAAR,EAAA,IAAA,EAAA,CAAA,QAAA,EAAA,EAAA,EAAA;IAsBA,eAAA,EAAA,CAAA,EAAA,IAAA,EAAA,eAAA,EAAA,IAAA,EAAA,CAAA,OAAA,EAAA,EAAA,EAAA;IAmBA,iBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,eAAa,EAAb,IAAA,EAAA,CAAA,SAAA,EAAA,EAAA,EAAA;IAEA,iBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,eAAA,EAAY,IAAZ,EAAA,CAAA,SAAA,EAAA,EAAA,EAAA;CACA,CAAA;;;;;;AD5LA,MAAA,kBAAA,CAAA;;;IAxBA,EAAA,IAAA,EAAC,QAAQ,EAAT,IAAA,EAAA,CAAU;gBACR,YAAY,EAAE;oBACZ,QAAQ;oBACR,YAAY;oBACZ,OAAO;oBACP,QAAQ;oBACR,cAAc;oBACd,SAAS;oBACT,SAAS;iBACV;gBACD,OAAO,EAAE;oBACP,YAAY;oBACZ,eAAe;iBAChB;gBACD,OAAO,EAAE;oBACP,QAAQ;oBACR,YAAY;oBACZ,OAAO;oBACP,QAAQ;oBACR,cAAc;oBACd,SAAS;oBACT,SAAS;iBACV;aACF,EAAD,EAAA;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"form-field.js","sources":["../../../src/lib/form-field/form-field-module.ts","../../../src/lib/form-field/form-field.ts","../../../src/lib/form-field/suffix.ts","../../../src/lib/form-field/prefix.ts","../../../src/lib/form-field/placeholder.ts","../../../src/lib/form-field/label.ts","../../../src/lib/form-field/hint.ts","../../../src/lib/form-field/form-field-errors.ts","../../../src/lib/form-field/form-field-control.ts","../../../src/lib/form-field/form-field-animations.ts","../../../src/lib/form-field/error.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {ObserversModule} from '@angular/cdk/observers';\nimport {MatError} from './error';\nimport {MatFormField} from './form-field';\nimport {MatHint} from './hint';\nimport {MatLabel} from './label';\nimport {MatPlaceholder} from './placeholder';\nimport {MatPrefix} from './prefix';\nimport {MatSuffix} from './suffix';\n\n\n@NgModule({\n declarations: [\n MatError,\n MatFormField,\n MatHint,\n MatLabel,\n MatPlaceholder,\n MatPrefix,\n MatSuffix,\n ],\n imports: [\n CommonModule,\n ObserversModule,\n ],\n exports: [\n MatError,\n MatFormField,\n MatHint,\n MatLabel,\n MatPlaceholder,\n MatPrefix,\n MatSuffix,\n ],\n})\nexport class MatFormFieldModule {}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Directionality} from '@angular/cdk/bidi';\nimport {coerceBooleanProperty} from '@angular/cdk/coercion';\nimport {\n AfterContentChecked,\n AfterContentInit,\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ContentChildren,\n ElementRef,\n Inject,\n InjectionToken,\n Input,\n NgZone,\n Optional,\n QueryList,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport {\n CanColor,\n FloatLabelType,\n LabelOptions,\n MAT_LABEL_GLOBAL_OPTIONS,\n mixinColor,\n} from '@angular/material/core';\nimport {EMPTY, fromEvent, merge} from 'rxjs';\nimport {startWith, take} from 'rxjs/operators';\nimport {MatError} from './error';\nimport {matFormFieldAnimations} from './form-field-animations';\nimport {MatFormFieldControl} from './form-field-control';\nimport {\n getMatFormFieldDuplicatedHintError,\n getMatFormFieldMissingControlError,\n getMatFormFieldPlaceholderConflictError,\n} from './form-field-errors';\nimport {MatHint} from './hint';\nimport {MatLabel} from './label';\nimport {MatPlaceholder} from './placeholder';\nimport {MatPrefix} from './prefix';\nimport {MatSuffix} from './suffix';\nimport {Platform} from '@angular/cdk/platform';\nimport {ANIMATION_MODULE_TYPE} from '@angular/platform-browser/animations';\n\n\nlet nextUniqueId = 0;\nconst floatingLabelScale = 0.75;\nconst outlineGapPadding = 5;\n\n\n/**\n * Boilerplate for applying mixins to MatFormField.\n * @docs-private\n */\nexport class MatFormFieldBase {\n constructor(public _elementRef: ElementRef) { }\n}\n\n/**\n * Base class to which we're applying the form field mixins.\n * @docs-private\n */\nexport const _MatFormFieldMixinBase = mixinColor(MatFormFieldBase, 'primary');\n\n/** Possible appearance styles for the form field. */\nexport type MatFormFieldAppearance = 'legacy' | 'standard' | 'fill' | 'outline';\n\n/**\n * Represents the default options form the form field that can be configured\n * using the `MAT_FORM_FIELD_DEFAULT_OPTIONS` injection token.\n */\nexport interface MatFormFieldDefaultOptions {\n appearance?: MatFormFieldAppearance;\n}\n\n/**\n * Injection token that can be used to configure the\n * default options for all form field within an app.\n */\nexport const MAT_FORM_FIELD_DEFAULT_OPTIONS =\n new InjectionToken<MatFormFieldDefaultOptions>('MAT_FORM_FIELD_DEFAULT_OPTIONS');\n\n\n/** Container for form controls that applies Material Design styling and behavior. */\n@Component({\n moduleId: module.id,\n selector: 'mat-form-field',\n exportAs: 'matFormField',\n templateUrl: 'form-field.html',\n // MatInput is a directive and can't have styles, so we need to include its styles here.\n // The MatInput styles are fairly minimal so it shouldn't be a big deal for people who\n // aren't using MatInput.\n styleUrls: [\n 'form-field.css',\n 'form-field-fill.css',\n 'form-field-legacy.css',\n 'form-field-outline.css',\n 'form-field-standard.css',\n '../input/input.css',\n ],\n animations: [matFormFieldAnimations.transitionMessages],\n host: {\n 'class': 'mat-form-field',\n '[class.mat-form-field-appearance-standard]': 'appearance == \"standard\"',\n '[class.mat-form-field-appearance-fill]': 'appearance == \"fill\"',\n '[class.mat-form-field-appearance-outline]': 'appearance == \"outline\"',\n '[class.mat-form-field-appearance-legacy]': 'appearance == \"legacy\"',\n '[class.mat-form-field-invalid]': '_control.errorState',\n '[class.mat-form-field-can-float]': '_canLabelFloat',\n '[class.mat-form-field-should-float]': '_shouldLabelFloat()',\n '[class.mat-form-field-hide-placeholder]': '_hideControlPlaceholder()',\n '[class.mat-form-field-disabled]': '_control.disabled',\n '[class.mat-form-field-autofilled]': '_control.autofilled',\n '[class.mat-focused]': '_control.focused',\n '[class.mat-accent]': 'color == \"accent\"',\n '[class.mat-warn]': 'color == \"warn\"',\n '[class.ng-untouched]': '_shouldForward(\"untouched\")',\n '[class.ng-touched]': '_shouldForward(\"touched\")',\n '[class.ng-pristine]': '_shouldForward(\"pristine\")',\n '[class.ng-dirty]': '_shouldForward(\"dirty\")',\n '[class.ng-valid]': '_shouldForward(\"valid\")',\n '[class.ng-invalid]': '_shouldForward(\"invalid\")',\n '[class.ng-pending]': '_shouldForward(\"pending\")',\n '[class._mat-animation-noopable]': '!_animationsEnabled',\n },\n inputs: ['color'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\n\nexport class MatFormField extends _MatFormFieldMixinBase\n implements AfterContentInit, AfterContentChecked, AfterViewInit, CanColor {\n private _labelOptions: LabelOptions;\n private _outlineGapCalculationNeeded = false;\n\n /** The form-field appearance style. */\n @Input()\n get appearance(): MatFormFieldAppearance { return this._appearance; }\n set appearance(value: MatFormFieldAppearance) {\n const oldValue = this._appearance;\n\n this._appearance = value || (this._defaults && this._defaults.appearance) || 'legacy';\n\n if (this._appearance === 'outline' && oldValue !== value) {\n // @breaking-change 7.0.0 Remove this check and else block once _ngZone is required.\n if (this._ngZone) {\n this._ngZone!.onStable.pipe(take(1)).subscribe(() => {\n this._ngZone!.runOutsideAngular(() => this.updateOutlineGap());\n });\n } else {\n Promise.resolve().then(() => this.updateOutlineGap());\n }\n }\n }\n _appearance: MatFormFieldAppearance;\n\n /** Whether the required marker should be hidden. */\n @Input()\n get hideRequiredMarker(): boolean { return this._hideRequiredMarker; }\n set hideRequiredMarker(value: boolean) {\n this._hideRequiredMarker = coerceBooleanProperty(value);\n }\n private _hideRequiredMarker: boolean;\n\n /** Override for the logic that disables the label animation in certain cases. */\n private _showAlwaysAnimate = false;\n\n /** Whether the floating label should always float or not. */\n get _shouldAlwaysFloat(): boolean {\n return this.floatLabel === 'always' && !this._showAlwaysAnimate;\n }\n\n /** Whether the label can float or not. */\n get _canLabelFloat(): boolean { return this.floatLabel !== 'never'; }\n\n /** State of the mat-hint and mat-error animations. */\n _subscriptAnimationState: string = '';\n\n /** Text for the form field hint. */\n @Input()\n get hintLabel(): string { return this._hintLabel; }\n set hintLabel(value: string) {\n this._hintLabel = value;\n this._processHints();\n }\n private _hintLabel = '';\n\n // Unique id for the hint label.\n _hintLabelId: string = `mat-hint-${nextUniqueId++}`;\n\n // Unique id for the internal form field label.\n _labelId = `mat-form-field-label-${nextUniqueId++}`;\n\n /**\n * Whether the label should always float, never float or float as the user types.\n *\n * Note: only the legacy appearance supports the `never` option. `never` was originally added as a\n * way to make the floating label emulate the behavior of a standard input placeholder. However\n * the form field now supports both floating labels and placeholders. Therefore in the non-legacy\n * appearances the `never` option has been disabled in favor of just using the placeholder.\n */\n @Input()\n get floatLabel(): FloatLabelType {\n return this.appearance !== 'legacy' && this._floatLabel === 'never' ? 'auto' : this._floatLabel;\n }\n set floatLabel(value: FloatLabelType) {\n if (value !== this._floatLabel) {\n this._floatLabel = value || this._labelOptions.float || 'auto';\n this._changeDetectorRef.markForCheck();\n }\n }\n private _floatLabel: FloatLabelType;\n\n /** Whether the Angular animations are enabled. */\n _animationsEnabled: boolean;\n\n /**\n * @deprecated\n * @breaking-change 7.0.0\n */\n @ViewChild('underline') underlineRef: ElementRef;\n\n @ViewChild('connectionContainer') _connectionContainerRef: ElementRef;\n @ViewChild('inputContainer') _inputContainerRef: ElementRef;\n @ViewChild('label') private _label: ElementRef;\n @ContentChild(MatFormFieldControl) _control: MatFormFieldControl<any>;\n @ContentChild(MatPlaceholder) _placeholderChild: MatPlaceholder;\n @ContentChild(MatLabel) _labelChild: MatLabel;\n @ContentChildren(MatError) _errorChildren: QueryList<MatError>;\n @ContentChildren(MatHint) _hintChildren: QueryList<MatHint>;\n @ContentChildren(MatPrefix) _prefixChildren: QueryList<MatPrefix>;\n @ContentChildren(MatSuffix) _suffixChildren: QueryList<MatSuffix>;\n\n constructor(\n public _elementRef: ElementRef,\n private _changeDetectorRef: ChangeDetectorRef,\n @Optional() @Inject(MAT_LABEL_GLOBAL_OPTIONS) labelOptions: LabelOptions,\n @Optional() private _dir: Directionality,\n @Optional() @Inject(MAT_FORM_FIELD_DEFAULT_OPTIONS)\n private _defaults: MatFormFieldDefaultOptions,\n // @breaking-change 7.0.0 _platform, _ngZone and _animationMode to be made required.\n private _platform?: Platform,\n private _ngZone?: NgZone,\n @Optional() @Inject(ANIMATION_MODULE_TYPE) _animationMode?: string) {\n super(_elementRef);\n\n this._labelOptions = labelOptions ? labelOptions : {};\n this.floatLabel = this._labelOptions.float || 'auto';\n this._animationsEnabled = _animationMode !== 'NoopAnimations';\n\n // Set the default through here so we invoke the setter on the first run.\n this.appearance = (_defaults && _defaults.appearance) ? _defaults.appearance : 'legacy';\n }\n\n /**\n * Gets an ElementRef for the element that a overlay attached to the form-field should be\n * positioned relative to.\n */\n getConnectedOverlayOrigin(): ElementRef {\n return this._connectionContainerRef || this._elementRef;\n }\n\n ngAfterContentInit() {\n this._validateControlChild();\n if (this._control.controlType) {\n this._elementRef.nativeElement.classList\n .add(`mat-form-field-type-${this._control.controlType}`);\n }\n\n // Subscribe to changes in the child control state in order to update the form field UI.\n this._control.stateChanges.pipe(startWith(null!)).subscribe(() => {\n this._validatePlaceholders();\n this._syncDescribedByIds();\n this._changeDetectorRef.markForCheck();\n });\n\n // Run change detection if the value, prefix, or suffix changes.\n const valueChanges = this._control.ngControl && this._control.ngControl.valueChanges || EMPTY;\n merge(valueChanges, this._prefixChildren.changes, this._suffixChildren.changes)\n .subscribe(() => this._changeDetectorRef.markForCheck());\n\n // Re-validate when the number of hints changes.\n this._hintChildren.changes.pipe(startWith(null)).subscribe(() => {\n this._processHints();\n this._changeDetectorRef.markForCheck();\n });\n\n // Update the aria-described by when the number of errors changes.\n this._errorChildren.changes.pipe(startWith(null)).subscribe(() => {\n this._syncDescribedByIds();\n this._changeDetectorRef.markForCheck();\n });\n }\n\n ngAfterContentChecked() {\n this._validateControlChild();\n if (this._outlineGapCalculationNeeded) {\n this.updateOutlineGap();\n }\n }\n\n ngAfterViewInit() {\n // Avoid animations on load.\n this._subscriptAnimationState = 'enter';\n this._changeDetectorRef.detectChanges();\n }\n\n /** Determines whether a class from the NgControl should be forwarded to the host element. */\n _shouldForward(prop: string): boolean {\n const ngControl = this._control ? this._control.ngControl : null;\n return ngControl && ngControl[prop];\n }\n\n _hasPlaceholder() {\n return !!(this._control && this._control.placeholder || this._placeholderChild);\n }\n\n _hasLabel() {\n return !!this._labelChild;\n }\n\n _shouldLabelFloat() {\n return this._canLabelFloat && (this._control.shouldLabelFloat || this._shouldAlwaysFloat);\n }\n\n _hideControlPlaceholder() {\n // In the legacy appearance the placeholder is promoted to a label if no label is given.\n return this.appearance === 'legacy' && !this._hasLabel() ||\n this._hasLabel() && !this._shouldLabelFloat();\n }\n\n _hasFloatingLabel() {\n // In the legacy appearance the placeholder is promoted to a label if no label is given.\n return this._hasLabel() || this.appearance === 'legacy' && this._hasPlaceholder();\n }\n\n /** Determines whether to display hints or errors. */\n _getDisplayedMessages(): 'error' | 'hint' {\n return (this._errorChildren && this._errorChildren.length > 0 &&\n this._control.errorState) ? 'error' : 'hint';\n }\n\n /** Animates the placeholder up and locks it in position. */\n _animateAndLockLabel(): void {\n if (this._hasFloatingLabel() && this._canLabelFloat) {\n // If animations are disabled, we shouldn't go in here,\n // because the `transitionend` will never fire.\n if (this._animationsEnabled) {\n this._showAlwaysAnimate = true;\n\n fromEvent(this._label.nativeElement, 'transitionend').pipe(take(1)).subscribe(() => {\n this._showAlwaysAnimate = false;\n });\n }\n\n this.floatLabel = 'always';\n this._changeDetectorRef.markForCheck();\n }\n }\n\n /**\n * Ensure that there is only one placeholder (either `placeholder` attribute on the child control\n * or child element with the `mat-placeholder` directive).\n */\n private _validatePlaceholders() {\n if (this._control.placeholder && this._placeholderChild) {\n throw getMatFormFieldPlaceholderConflictError();\n }\n }\n\n /** Does any extra processing that is required when handling the hints. */\n private _processHints() {\n this._validateHints();\n this._syncDescribedByIds();\n }\n\n /**\n * Ensure that there is a maximum of one of each `<mat-hint>` alignment specified, with the\n * attribute being considered as `align=\"start\"`.\n */\n private _validateHints() {\n if (this._hintChildren) {\n let startHint: MatHint;\n let endHint: MatHint;\n this._hintChildren.forEach((hint: MatHint) => {\n if (hint.align === 'start') {\n if (startHint || this.hintLabel) {\n throw getMatFormFieldDuplicatedHintError('start');\n }\n startHint = hint;\n } else if (hint.align === 'end') {\n if (endHint) {\n throw getMatFormFieldDuplicatedHintError('end');\n }\n endHint = hint;\n }\n });\n }\n }\n\n /**\n * Sets the list of element IDs that describe the child control. This allows the control to update\n * its `aria-describedby` attribute accordingly.\n */\n private _syncDescribedByIds() {\n if (this._control) {\n let ids: string[] = [];\n\n if (this._getDisplayedMessages() === 'hint') {\n const startHint = this._hintChildren ?\n this._hintChildren.find(hint => hint.align === 'start') : null;\n const endHint = this._hintChildren ?\n this._hintChildren.find(hint => hint.align === 'end') : null;\n\n if (startHint) {\n ids.push(startHint.id);\n } else if (this._hintLabel) {\n ids.push(this._hintLabelId);\n }\n\n if (endHint) {\n ids.push(endHint.id);\n }\n } else if (this._errorChildren) {\n ids = this._errorChildren.map(error => error.id);\n }\n\n this._control.setDescribedByIds(ids);\n }\n }\n\n /** Throws an error if the form field's control is missing. */\n protected _validateControlChild() {\n if (!this._control) {\n throw getMatFormFieldMissingControlError();\n }\n }\n\n /**\n * Updates the width and position of the gap in the outline. Only relevant for the outline\n * appearance.\n */\n updateOutlineGap() {\n const labelEl = this._label ? this._label.nativeElement : null;\n\n if (this.appearance !== 'outline' || !labelEl || !labelEl.children.length ||\n !labelEl.textContent.trim()) {\n return;\n }\n\n if (this._platform && !this._platform.isBrowser) {\n // getBoundingClientRect isn't available on the server.\n return;\n }\n // If the element is not present in the DOM, the outline gap will need to be calculated\n // the next time it is checked and in the DOM.\n if (!document.documentElement.contains(this._elementRef.nativeElement)) {\n this._outlineGapCalculationNeeded = true;\n return;\n }\n\n let startWidth = 0;\n let gapWidth = 0;\n const startEls = this._connectionContainerRef.nativeElement.querySelectorAll(\n '.mat-form-field-outline-start');\n const gapEls = this._connectionContainerRef.nativeElement.querySelectorAll(\n '.mat-form-field-outline-gap');\n if (this._label && this._label.nativeElement.children.length) {\n const containerStart = this._getStartEnd(\n this._connectionContainerRef.nativeElement.getBoundingClientRect());\n const labelStart = this._getStartEnd(labelEl.children[0].getBoundingClientRect());\n let labelWidth = 0;\n\n for (const child of labelEl.children) {\n labelWidth += child.offsetWidth;\n }\n startWidth = labelStart - containerStart - outlineGapPadding;\n gapWidth = labelWidth > 0 ? labelWidth * floatingLabelScale + outlineGapPadding * 2 : 0;\n }\n\n for (let i = 0; i < startEls.length; i++) {\n startEls.item(i).style.width = `${startWidth}px`;\n }\n for (let i = 0; i < gapEls.length; i++) {\n gapEls.item(i).style.width = `${gapWidth}px`;\n }\n\n this._outlineGapCalculationNeeded = false;\n }\n\n /** Gets the start end of the rect considering the current directionality. */\n private _getStartEnd(rect: ClientRect): number {\n return this._dir && this._dir.value === 'rtl' ? rect.right : rect.left;\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Directive} from '@angular/core';\n\n\n/** Suffix to be placed at the end of the form field. */\n@Directive({\n selector: '[matSuffix]',\n})\nexport class MatSuffix {}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Directive} from '@angular/core';\n\n\n/** Prefix to be placed the the front of the form field. */\n@Directive({\n selector: '[matPrefix]',\n})\nexport class MatPrefix {}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Directive} from '@angular/core';\n\n\n/**\n * The placeholder text for an `MatFormField`.\n * @deprecated Use `<mat-label>` to specify the label and the `placeholder` attribute to specify the\n * placeholder.\n * @breaking-change 8.0.0\n */\n@Directive({\n selector: 'mat-placeholder'\n})\nexport class MatPlaceholder {}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Directive} from '@angular/core';\n\n\n/** The floating label for a `mat-form-field`. */\n@Directive({\n selector: 'mat-label'\n})\nexport class MatLabel {}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Directive, Input} from '@angular/core';\n\n\nlet nextUniqueId = 0;\n\n\n/** Hint text to be shown underneath the form field control. */\n@Directive({\n selector: 'mat-hint',\n host: {\n 'class': 'mat-hint',\n '[class.mat-right]': 'align == \"end\"',\n '[attr.id]': 'id',\n // Remove align attribute to prevent it from interfering with layout.\n '[attr.align]': 'null',\n }\n})\nexport class MatHint {\n /** Whether to align the hint label at the start or end of the line. */\n @Input() align: 'start' | 'end' = 'start';\n\n /** Unique ID for the hint. Used for the aria-describedby on the form field control. */\n @Input() id: string = `mat-hint-${nextUniqueId++}`;\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/** @docs-private */\nexport function getMatFormFieldPlaceholderConflictError(): Error {\n return Error('Placeholder attribute and child element were both specified.');\n}\n\n/** @docs-private */\nexport function getMatFormFieldDuplicatedHintError(align: string): Error {\n return Error(`A hint was already declared for 'align=\"${align}\"'.`);\n}\n\n/** @docs-private */\nexport function getMatFormFieldMissingControlError(): Error {\n return Error('mat-form-field must contain a MatFormFieldControl.');\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Observable} from 'rxjs';\nimport {NgControl} from '@angular/forms';\n\n\n/** An interface which allows a control to work inside of a `MatFormField`. */\nexport abstract class MatFormFieldControl<T> {\n /** The value of the control. */\n value: T | null;\n\n /**\n * Stream that emits whenever the state of the control changes such that the parent `MatFormField`\n * needs to run change detection.\n */\n readonly stateChanges: Observable<void>;\n\n /** The element ID for this control. */\n readonly id: string;\n\n /** The placeholder for this control. */\n readonly placeholder: string;\n\n /** Gets the NgControl for this control. */\n readonly ngControl: NgControl | null;\n\n /** Whether the control is focused. */\n readonly focused: boolean;\n\n /** Whether the control is empty. */\n readonly empty: boolean;\n\n /** Whether the `MatFormField` label should try to float. */\n readonly shouldLabelFloat: boolean;\n\n /** Whether the control is required. */\n readonly required: boolean;\n\n /** Whether the control is disabled. */\n readonly disabled: boolean;\n\n /** Whether the control is in an error state. */\n readonly errorState: boolean;\n\n /**\n * An optional name for the control type that can be used to distinguish `mat-form-field` elements\n * based on their control type. The form field will add a class,\n * `mat-form-field-type-{{controlType}}` to its root element.\n */\n readonly controlType?: string;\n\n /**\n * Whether the input is currently in an autofilled state. If property is not present on the\n * control it is assumed to be false.\n */\n readonly autofilled?: boolean;\n\n /** Sets the list of element IDs that currently describe this control. */\n abstract setDescribedByIds(ids: string[]): void;\n\n /** Handles a click on the control's container. */\n abstract onContainerClick(event: MouseEvent): void;\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport {\n animate,\n state,\n style,\n transition,\n trigger,\n AnimationTriggerMetadata,\n} from '@angular/animations';\n\n/** Animations used by the MatFormField. */\nexport const matFormFieldAnimations: {\n readonly transitionMessages: AnimationTriggerMetadata\n} = {\n /** Animation that transitions the form field's error and hint messages. */\n transitionMessages: trigger('transitionMessages', [\n // TODO(mmalerba): Use angular animations for label animation as well.\n state('enter', style({ opacity: 1, transform: 'translateY(0%)' })),\n transition('void => enter', [\n style({ opacity: 0, transform: 'translateY(-100%)' }),\n animate('300ms cubic-bezier(0.55, 0, 0.55, 0.2)'),\n ]),\n ])\n};\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Directive, Input} from '@angular/core';\n\n\nlet nextUniqueId = 0;\n\n\n/** Single error message to be shown underneath the form field. */\n@Directive({\n selector: 'mat-error',\n host: {\n 'class': 'mat-error',\n 'role': 'alert',\n '[attr.id]': 'id',\n }\n})\nexport class MatError {\n @Input() id: string = `mat-error-${nextUniqueId++}`;\n}\n"],"names":["nextUniqueId"],"mappings":"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"}
@@ -7,32 +7,9 @@
7
7
  */
8
8
  import { Component, ViewEncapsulation, ElementRef, Input, ContentChildren, Directive, ChangeDetectionStrategy, Optional, NgModule } from '@angular/core';
9
9
  import { MatLine, MatLineSetter, MatLineModule, MatCommonModule } from '@angular/material/core';
10
+ import { coerceNumberProperty } from '@angular/cdk/coercion';
10
11
  import { Directionality } from '@angular/cdk/bidi';
11
12
 
12
- /**
13
- * @fileoverview added by tsickle
14
- * @suppress {checkTypes} checked by tsc
15
- */
16
-
17
- /**
18
- * Converts values into strings. Falsy values become empty strings.
19
- * \@docs-private
20
- * @param {?} value
21
- * @return {?}
22
- */
23
- function coerceToString(value) {
24
- return `${value || ''}`;
25
- }
26
- /**
27
- * Converts a value that might be a string into a number.
28
- * \@docs-private
29
- * @param {?} value
30
- * @return {?}
31
- */
32
- function coerceToNumber(value) {
33
- return typeof value === 'string' ? parseInt(value, 10) : value;
34
- }
35
-
36
13
  /**
37
14
  * @fileoverview added by tsickle
38
15
  * @suppress {checkTypes} checked by tsc
@@ -55,7 +32,7 @@ class MatGridTile {
55
32
  * @param {?} value
56
33
  * @return {?}
57
34
  */
58
- set rowspan(value) { this._rowspan = coerceToNumber(value); }
35
+ set rowspan(value) { this._rowspan = Math.round(coerceNumberProperty(value)); }
59
36
  /**
60
37
  * Amount of columns that the grid tile takes up.
61
38
  * @return {?}
@@ -65,7 +42,7 @@ class MatGridTile {
65
42
  * @param {?} value
66
43
  * @return {?}
67
44
  */
68
- set colspan(value) { this._colspan = coerceToNumber(value); }
45
+ set colspan(value) { this._colspan = Math.round(coerceNumberProperty(value)); }
69
46
  /**
70
47
  * Sets the style of the grid-tile element. Needs to be set manually to avoid
71
48
  * "Changed after checked" errors that would occur with HostBinding.
@@ -639,7 +616,7 @@ class MatGridList {
639
616
  * @param {?} value
640
617
  * @return {?}
641
618
  */
642
- set cols(value) { this._cols = coerceToNumber(value); }
619
+ set cols(value) { this._cols = Math.round(coerceNumberProperty(value)); }
643
620
  /**
644
621
  * Size of the grid list's gutter in pixels.
645
622
  * @return {?}
@@ -649,14 +626,14 @@ class MatGridList {
649
626
  * @param {?} value
650
627
  * @return {?}
651
628
  */
652
- set gutterSize(value) { this._gutter = coerceToString(value); }
629
+ set gutterSize(value) { this._gutter = `${value || ''}`; }
653
630
  /**
654
631
  * Set internal representation of row height from the user-provided value.
655
632
  * @param {?} value
656
633
  * @return {?}
657
634
  */
658
635
  set rowHeight(value) {
659
- const /** @type {?} */ newValue = coerceToString(value);
636
+ const /** @type {?} */ newValue = `${value || ''}`;
660
637
  if (newValue !== this._rowHeight) {
661
638
  this._rowHeight = newValue;
662
639
  this._setTileStyler(this._rowHeight);
@@ -758,7 +735,7 @@ MatGridList.ctorParameters = () => [
758
735
  { type: Directionality, decorators: [{ type: Optional },] },
759
736
  ];
760
737
  MatGridList.propDecorators = {
761
- "_tiles": [{ type: ContentChildren, args: [MatGridTile,] },],
738
+ "_tiles": [{ type: ContentChildren, args: [MatGridTile, { descendants: true },] },],
762
739
  "cols": [{ type: Input },],
763
740
  "gutterSize": [{ type: Input },],
764
741
  "rowHeight": [{ type: Input },],