@angular/material 7.0.4 → 7.2.1

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 (488) hide show
  1. package/LICENSE +1 -1
  2. package/_theming.scss +61 -44
  3. package/autocomplete/typings/index.d.ts +1 -1
  4. package/autocomplete/typings/index.metadata.json +1 -1
  5. package/badge/typings/index.metadata.json +1 -1
  6. package/bottom-sheet/typings/bottom-sheet-config.d.ts +5 -0
  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 +126 -32
  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 +38 -5
  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 +68 -21
  18. package/bundles/material-bottom-sheet.umd.js.map +1 -1
  19. package/bundles/material-bottom-sheet.umd.min.js +1 -1
  20. package/bundles/material-bottom-sheet.umd.min.js.map +1 -1
  21. package/bundles/material-button-toggle.umd.js +36 -13
  22. package/bundles/material-button-toggle.umd.js.map +1 -1
  23. package/bundles/material-button-toggle.umd.min.js +1 -1
  24. package/bundles/material-button-toggle.umd.min.js.map +1 -1
  25. package/bundles/material-button.umd.js +21 -14
  26. package/bundles/material-button.umd.js.map +1 -1
  27. package/bundles/material-button.umd.min.js +1 -1
  28. package/bundles/material-button.umd.min.js.map +1 -1
  29. package/bundles/material-card.umd.js +3 -3
  30. package/bundles/material-card.umd.js.map +1 -1
  31. package/bundles/material-card.umd.min.js +1 -1
  32. package/bundles/material-card.umd.min.js.map +1 -1
  33. package/bundles/material-checkbox.umd.js +56 -15
  34. package/bundles/material-checkbox.umd.js.map +1 -1
  35. package/bundles/material-checkbox.umd.min.js +1 -1
  36. package/bundles/material-checkbox.umd.min.js.map +1 -1
  37. package/bundles/material-chips.umd.js +124 -34
  38. package/bundles/material-chips.umd.js.map +1 -1
  39. package/bundles/material-chips.umd.min.js +1 -1
  40. package/bundles/material-chips.umd.min.js.map +1 -1
  41. package/bundles/material-core.umd.js +189 -126
  42. package/bundles/material-core.umd.js.map +1 -1
  43. package/bundles/material-core.umd.min.js +1 -1
  44. package/bundles/material-core.umd.min.js.map +1 -1
  45. package/bundles/material-datepicker.umd.js +231 -53
  46. package/bundles/material-datepicker.umd.js.map +1 -1
  47. package/bundles/material-datepicker.umd.min.js +2 -2
  48. package/bundles/material-datepicker.umd.min.js.map +1 -1
  49. package/bundles/material-dialog.umd.js +138 -40
  50. package/bundles/material-dialog.umd.js.map +1 -1
  51. package/bundles/material-dialog.umd.min.js +1 -1
  52. package/bundles/material-dialog.umd.min.js.map +1 -1
  53. package/bundles/material-divider.umd.js +2 -2
  54. package/bundles/material-divider.umd.js.map +1 -1
  55. package/bundles/material-divider.umd.min.js.map +1 -1
  56. package/bundles/material-expansion.umd.js +53 -27
  57. package/bundles/material-expansion.umd.js.map +1 -1
  58. package/bundles/material-expansion.umd.min.js +1 -1
  59. package/bundles/material-expansion.umd.min.js.map +1 -1
  60. package/bundles/material-form-field.umd.js +121 -32
  61. package/bundles/material-form-field.umd.js.map +1 -1
  62. package/bundles/material-form-field.umd.min.js +1 -1
  63. package/bundles/material-form-field.umd.min.js.map +1 -1
  64. package/bundles/material-grid-list.umd.js +66 -15
  65. package/bundles/material-grid-list.umd.js.map +1 -1
  66. package/bundles/material-grid-list.umd.min.js +1 -1
  67. package/bundles/material-grid-list.umd.min.js.map +1 -1
  68. package/bundles/material-icon.umd.js +277 -78
  69. package/bundles/material-icon.umd.js.map +1 -1
  70. package/bundles/material-icon.umd.min.js +1 -1
  71. package/bundles/material-icon.umd.min.js.map +1 -1
  72. package/bundles/material-input.umd.js +50 -22
  73. package/bundles/material-input.umd.js.map +1 -1
  74. package/bundles/material-input.umd.min.js +1 -1
  75. package/bundles/material-input.umd.min.js.map +1 -1
  76. package/bundles/material-list.umd.js +69 -21
  77. package/bundles/material-list.umd.js.map +1 -1
  78. package/bundles/material-list.umd.min.js +2 -6
  79. package/bundles/material-list.umd.min.js.map +1 -1
  80. package/bundles/material-menu.umd.js +171 -66
  81. package/bundles/material-menu.umd.js.map +1 -1
  82. package/bundles/material-menu.umd.min.js +1 -1
  83. package/bundles/material-menu.umd.min.js.map +1 -1
  84. package/bundles/material-paginator.umd.js +52 -10
  85. package/bundles/material-paginator.umd.js.map +1 -1
  86. package/bundles/material-paginator.umd.min.js +1 -1
  87. package/bundles/material-paginator.umd.min.js.map +1 -1
  88. package/bundles/material-progress-bar.umd.js +31 -12
  89. package/bundles/material-progress-bar.umd.js.map +1 -1
  90. package/bundles/material-progress-bar.umd.min.js +1 -1
  91. package/bundles/material-progress-bar.umd.min.js.map +1 -1
  92. package/bundles/material-progress-spinner.umd.js +29 -13
  93. package/bundles/material-progress-spinner.umd.js.map +1 -1
  94. package/bundles/material-progress-spinner.umd.min.js.map +1 -1
  95. package/bundles/material-radio.umd.js +38 -40
  96. package/bundles/material-radio.umd.js.map +1 -1
  97. package/bundles/material-radio.umd.min.js +1 -1
  98. package/bundles/material-radio.umd.min.js.map +1 -1
  99. package/bundles/material-select.umd.js +189 -51
  100. package/bundles/material-select.umd.js.map +1 -1
  101. package/bundles/material-select.umd.min.js +1 -1
  102. package/bundles/material-select.umd.min.js.map +1 -1
  103. package/bundles/material-sidenav.umd.js +104 -25
  104. package/bundles/material-sidenav.umd.js.map +1 -1
  105. package/bundles/material-sidenav.umd.min.js +1 -1
  106. package/bundles/material-sidenav.umd.min.js.map +1 -1
  107. package/bundles/material-slide-toggle.umd.js +30 -14
  108. package/bundles/material-slide-toggle.umd.js.map +1 -1
  109. package/bundles/material-slide-toggle.umd.min.js +1 -1
  110. package/bundles/material-slide-toggle.umd.min.js.map +1 -1
  111. package/bundles/material-slider.umd.js +91 -21
  112. package/bundles/material-slider.umd.js.map +1 -1
  113. package/bundles/material-slider.umd.min.js +1 -1
  114. package/bundles/material-slider.umd.min.js.map +1 -1
  115. package/bundles/material-snack-bar.umd.js +71 -19
  116. package/bundles/material-snack-bar.umd.js.map +1 -1
  117. package/bundles/material-snack-bar.umd.min.js +1 -1
  118. package/bundles/material-snack-bar.umd.min.js.map +1 -1
  119. package/bundles/material-sort.umd.js +46 -24
  120. package/bundles/material-sort.umd.js.map +1 -1
  121. package/bundles/material-sort.umd.min.js +1 -1
  122. package/bundles/material-sort.umd.min.js.map +1 -1
  123. package/bundles/material-stepper.umd.js +37 -35
  124. package/bundles/material-stepper.umd.js.map +1 -1
  125. package/bundles/material-stepper.umd.min.js +1 -1
  126. package/bundles/material-stepper.umd.min.js.map +1 -1
  127. package/bundles/material-table.umd.js +29 -9
  128. package/bundles/material-table.umd.js.map +1 -1
  129. package/bundles/material-table.umd.min.js.map +1 -1
  130. package/bundles/material-tabs.umd.js +170 -68
  131. package/bundles/material-tabs.umd.js.map +1 -1
  132. package/bundles/material-tabs.umd.min.js +2 -2
  133. package/bundles/material-tabs.umd.min.js.map +1 -1
  134. package/bundles/material-toolbar.umd.js +14 -4
  135. package/bundles/material-toolbar.umd.js.map +1 -1
  136. package/bundles/material-toolbar.umd.min.js +1 -1
  137. package/bundles/material-toolbar.umd.min.js.map +1 -1
  138. package/bundles/material-tooltip.umd.js +53 -26
  139. package/bundles/material-tooltip.umd.js.map +1 -1
  140. package/bundles/material-tooltip.umd.min.js +1 -1
  141. package/bundles/material-tooltip.umd.min.js.map +1 -1
  142. package/bundles/material-tree.umd.js +25 -16
  143. package/bundles/material-tree.umd.js.map +1 -1
  144. package/bundles/material-tree.umd.min.js +1 -1
  145. package/bundles/material-tree.umd.min.js.map +1 -1
  146. package/bundles/material.umd.js +2853 -1010
  147. package/bundles/material.umd.js.map +1 -1
  148. package/bundles/material.umd.min.js +19 -21
  149. package/bundles/material.umd.min.js.map +1 -1
  150. package/button/typings/button.d.ts +0 -5
  151. package/button/typings/index.metadata.json +1 -1
  152. package/button-toggle/typings/index.metadata.json +1 -1
  153. package/card/typings/index.metadata.json +1 -1
  154. package/checkbox/typings/index.metadata.json +1 -1
  155. package/chips/typings/chip-list.d.ts +1 -1
  156. package/chips/typings/chip.d.ts +2 -2
  157. package/chips/typings/index.metadata.json +1 -1
  158. package/core/typings/index.metadata.json +1 -1
  159. package/core/typings/{testing/month-constants.d.ts → month-constants.d.ts} +2 -0
  160. package/core/typings/public-api.d.ts +1 -1
  161. package/datepicker/typings/calendar-body.d.ts +21 -5
  162. package/datepicker/typings/calendar.d.ts +4 -1
  163. package/datepicker/typings/datepicker.d.ts +3 -0
  164. package/datepicker/typings/index.metadata.json +1 -1
  165. package/datepicker/typings/month-view.d.ts +4 -2
  166. package/dialog/typings/index.metadata.json +1 -1
  167. package/esm2015/autocomplete.js +60 -29
  168. package/esm2015/autocomplete.js.map +1 -1
  169. package/esm2015/badge.js +29 -6
  170. package/esm2015/badge.js.map +1 -1
  171. package/esm2015/bottom-sheet.js +45 -22
  172. package/esm2015/bottom-sheet.js.map +1 -1
  173. package/esm2015/button-toggle.js +20 -11
  174. package/esm2015/button-toggle.js.map +1 -1
  175. package/esm2015/button.js +20 -15
  176. package/esm2015/button.js.map +1 -1
  177. package/esm2015/card.js +5 -5
  178. package/esm2015/card.js.map +1 -1
  179. package/esm2015/checkbox.js +30 -12
  180. package/esm2015/checkbox.js.map +1 -1
  181. package/esm2015/chips.js +64 -28
  182. package/esm2015/chips.js.map +1 -1
  183. package/esm2015/core.js +148 -129
  184. package/esm2015/core.js.map +1 -1
  185. package/esm2015/datepicker.js +124 -41
  186. package/esm2015/datepicker.js.map +1 -1
  187. package/esm2015/dialog.js +77 -40
  188. package/esm2015/dialog.js.map +1 -1
  189. package/esm2015/divider.js +4 -4
  190. package/esm2015/divider.js.map +1 -1
  191. package/esm2015/expansion.js +58 -31
  192. package/esm2015/expansion.js.map +1 -1
  193. package/esm2015/form-field.js +94 -34
  194. package/esm2015/form-field.js.map +1 -1
  195. package/esm2015/grid-list.js +45 -17
  196. package/esm2015/grid-list.js.map +1 -1
  197. package/esm2015/icon.js +136 -67
  198. package/esm2015/icon.js.map +1 -1
  199. package/esm2015/input.js +44 -23
  200. package/esm2015/input.js.map +1 -1
  201. package/esm2015/list.js +47 -22
  202. package/esm2015/list.js.map +1 -1
  203. package/esm2015/material.js +13 -12
  204. package/esm2015/material.js.map +1 -1
  205. package/esm2015/menu.js +109 -63
  206. package/esm2015/menu.js.map +1 -1
  207. package/esm2015/paginator.js +35 -12
  208. package/esm2015/paginator.js.map +1 -1
  209. package/esm2015/progress-bar.js +26 -13
  210. package/esm2015/progress-bar.js.map +1 -1
  211. package/esm2015/progress-spinner.js +24 -14
  212. package/esm2015/progress-spinner.js.map +1 -1
  213. package/esm2015/radio.js +22 -21
  214. package/esm2015/radio.js.map +1 -1
  215. package/esm2015/select.js +116 -53
  216. package/esm2015/select.js.map +1 -1
  217. package/esm2015/sidenav.js +75 -28
  218. package/esm2015/sidenav.js.map +1 -1
  219. package/esm2015/slide-toggle.js +23 -15
  220. package/esm2015/slide-toggle.js.map +1 -1
  221. package/esm2015/slider.js +54 -24
  222. package/esm2015/slider.js.map +1 -1
  223. package/esm2015/snack-bar.js +41 -21
  224. package/esm2015/snack-bar.js.map +1 -1
  225. package/esm2015/sort.js +47 -24
  226. package/esm2015/sort.js.map +1 -1
  227. package/esm2015/stepper.js +35 -32
  228. package/esm2015/stepper.js.map +1 -1
  229. package/esm2015/table.js +31 -11
  230. package/esm2015/table.js.map +1 -1
  231. package/esm2015/tabs.js +113 -53
  232. package/esm2015/tabs.js.map +1 -1
  233. package/esm2015/toolbar.js +9 -5
  234. package/esm2015/toolbar.js.map +1 -1
  235. package/esm2015/tooltip.js +43 -28
  236. package/esm2015/tooltip.js.map +1 -1
  237. package/esm2015/tree.js +22 -17
  238. package/esm2015/tree.js.map +1 -1
  239. package/esm5/autocomplete.es5.js +128 -34
  240. package/esm5/autocomplete.es5.js.map +1 -1
  241. package/esm5/badge.es5.js +40 -7
  242. package/esm5/badge.es5.js.map +1 -1
  243. package/esm5/bottom-sheet.es5.js +70 -23
  244. package/esm5/bottom-sheet.es5.js.map +1 -1
  245. package/esm5/button-toggle.es5.js +38 -15
  246. package/esm5/button-toggle.es5.js.map +1 -1
  247. package/esm5/button.es5.js +23 -16
  248. package/esm5/button.es5.js.map +1 -1
  249. package/esm5/card.es5.js +5 -5
  250. package/esm5/card.es5.js.map +1 -1
  251. package/esm5/checkbox.es5.js +58 -17
  252. package/esm5/checkbox.es5.js.map +1 -1
  253. package/esm5/chips.es5.js +127 -37
  254. package/esm5/chips.es5.js.map +1 -1
  255. package/esm5/core.es5.js +192 -129
  256. package/esm5/core.es5.js.map +1 -1
  257. package/esm5/datepicker.es5.js +233 -55
  258. package/esm5/datepicker.es5.js.map +1 -1
  259. package/esm5/dialog.es5.js +140 -42
  260. package/esm5/dialog.es5.js.map +1 -1
  261. package/esm5/divider.es5.js +4 -4
  262. package/esm5/divider.es5.js.map +1 -1
  263. package/esm5/expansion.es5.js +56 -31
  264. package/esm5/expansion.es5.js.map +1 -1
  265. package/esm5/form-field.es5.js +125 -36
  266. package/esm5/form-field.es5.js.map +1 -1
  267. package/esm5/grid-list.es5.js +68 -17
  268. package/esm5/grid-list.es5.js.map +1 -1
  269. package/esm5/icon.es5.js +279 -80
  270. package/esm5/icon.es5.js.map +1 -1
  271. package/esm5/input.es5.js +52 -24
  272. package/esm5/input.es5.js.map +1 -1
  273. package/esm5/list.es5.js +72 -24
  274. package/esm5/list.es5.js.map +1 -1
  275. package/esm5/material.es5.js +13 -12
  276. package/esm5/material.es5.js.map +1 -1
  277. package/esm5/menu.es5.js +170 -65
  278. package/esm5/menu.es5.js.map +1 -1
  279. package/esm5/paginator.es5.js +55 -13
  280. package/esm5/paginator.es5.js.map +1 -1
  281. package/esm5/progress-bar.es5.js +33 -14
  282. package/esm5/progress-bar.es5.js.map +1 -1
  283. package/esm5/progress-spinner.es5.js +31 -15
  284. package/esm5/progress-spinner.es5.js.map +1 -1
  285. package/esm5/radio.es5.js +42 -42
  286. package/esm5/radio.es5.js.map +1 -1
  287. package/esm5/select.es5.js +193 -55
  288. package/esm5/select.es5.js.map +1 -1
  289. package/esm5/sidenav.es5.js +107 -28
  290. package/esm5/sidenav.es5.js.map +1 -1
  291. package/esm5/slide-toggle.es5.js +32 -16
  292. package/esm5/slide-toggle.es5.js.map +1 -1
  293. package/esm5/slider.es5.js +94 -24
  294. package/esm5/slider.es5.js.map +1 -1
  295. package/esm5/snack-bar.es5.js +73 -21
  296. package/esm5/snack-bar.es5.js.map +1 -1
  297. package/esm5/sort.es5.js +53 -26
  298. package/esm5/sort.es5.js.map +1 -1
  299. package/esm5/stepper.es5.js +40 -38
  300. package/esm5/stepper.es5.js.map +1 -1
  301. package/esm5/table.es5.js +31 -11
  302. package/esm5/table.es5.js.map +1 -1
  303. package/esm5/tabs.es5.js +162 -61
  304. package/esm5/tabs.es5.js.map +1 -1
  305. package/esm5/toolbar.es5.js +16 -6
  306. package/esm5/toolbar.es5.js.map +1 -1
  307. package/esm5/tooltip.es5.js +55 -28
  308. package/esm5/tooltip.es5.js.map +1 -1
  309. package/esm5/tree.es5.js +27 -18
  310. package/esm5/tree.es5.js.map +1 -1
  311. package/expansion/typings/expansion-panel-header.d.ts +2 -2
  312. package/expansion/typings/expansion-panel.d.ts +19 -2
  313. package/expansion/typings/index.metadata.json +1 -1
  314. package/form-field/typings/form-field.d.ts +15 -4
  315. package/form-field/typings/index.metadata.json +1 -1
  316. package/grid-list/typings/index.d.ts +1 -1
  317. package/grid-list/typings/index.metadata.json +1 -1
  318. package/icon/typings/index.metadata.json +1 -1
  319. package/list/typings/index.metadata.json +1 -1
  320. package/material.d.ts +1 -1
  321. package/material.metadata.json +3 -3
  322. package/menu/typings/index.d.ts +4 -4
  323. package/menu/typings/index.metadata.json +1 -1
  324. package/menu/typings/menu-directive.d.ts +1 -0
  325. package/menu/typings/menu-item.d.ts +2 -0
  326. package/package.json +5 -5
  327. package/paginator/typings/index.metadata.json +1 -1
  328. package/paginator/typings/paginator.d.ts +7 -3
  329. package/prebuilt-themes/deeppurple-amber.css +1 -1
  330. package/prebuilt-themes/indigo-pink.css +1 -1
  331. package/prebuilt-themes/pink-bluegrey.css +1 -1
  332. package/prebuilt-themes/purple-green.css +1 -1
  333. package/progress-bar/typings/index.metadata.json +1 -1
  334. package/radio/typings/index.metadata.json +1 -1
  335. package/radio/typings/radio.d.ts +2 -6
  336. package/schematics/ng-add/theming/{custom-theme.d.ts → create-custom-theme.d.ts} +0 -0
  337. package/schematics/ng-add/theming/{custom-theme.js → create-custom-theme.js} +1 -1
  338. package/schematics/ng-add/theming/create-custom-theme.js.map +1 -0
  339. package/schematics/ng-add/theming/theming.js +35 -19
  340. package/schematics/ng-add/theming/theming.js.map +1 -1
  341. package/schematics/ng-generate/address-form/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.ts +2 -2
  342. package/schematics/ng-generate/dashboard/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.ts +2 -2
  343. package/schematics/ng-generate/nav/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.ts +2 -2
  344. package/schematics/ng-generate/table/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.ts +2 -2
  345. package/schematics/ng-generate/tree/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.ts +2 -2
  346. package/select/typings/index.metadata.json +1 -1
  347. package/select/typings/select.d.ts +12 -2
  348. package/sidenav/typings/drawer.d.ts +9 -2
  349. package/sidenav/typings/index.metadata.json +1 -1
  350. package/slide-toggle/typings/index.metadata.json +1 -1
  351. package/slider/typings/index.metadata.json +1 -1
  352. package/snack-bar/typings/index.metadata.json +1 -1
  353. package/sort/typings/index.metadata.json +1 -1
  354. package/stepper/typings/index.metadata.json +1 -1
  355. package/stepper/typings/step-header.d.ts +3 -5
  356. package/tabs/typings/index.d.ts +5 -5
  357. package/tabs/typings/index.metadata.json +1 -1
  358. package/tabs/typings/tab-body.d.ts +2 -0
  359. package/tabs/typings/tab-group.d.ts +11 -2
  360. package/tabs/typings/tab-header.d.ts +9 -3
  361. package/toolbar/typings/index.metadata.json +1 -1
  362. package/tooltip/typings/index.metadata.json +1 -1
  363. package/tree/typings/data-source/flat-data-source.d.ts +2 -2
  364. package/tree/typings/index.metadata.json +1 -1
  365. package/typings/autocomplete/index.d.ts +1 -1
  366. package/typings/autocomplete/index.metadata.json +1 -1
  367. package/typings/badge/index.metadata.json +1 -1
  368. package/typings/bottom-sheet/bottom-sheet-config.d.ts +5 -0
  369. package/typings/bottom-sheet/bottom-sheet-container.d.ts +1 -1
  370. package/typings/bottom-sheet/index.metadata.json +1 -1
  371. package/typings/button/button.d.ts +0 -5
  372. package/typings/button/index.metadata.json +1 -1
  373. package/typings/button-toggle/index.metadata.json +1 -1
  374. package/typings/card/index.metadata.json +1 -1
  375. package/typings/checkbox/index.metadata.json +1 -1
  376. package/typings/chips/chip-list.d.ts +1 -1
  377. package/typings/chips/chip.d.ts +2 -2
  378. package/typings/chips/index.metadata.json +1 -1
  379. package/typings/core/index.metadata.json +1 -1
  380. package/typings/core/{testing/month-constants.d.ts → month-constants.d.ts} +2 -0
  381. package/typings/core/public-api.d.ts +1 -1
  382. package/typings/datepicker/calendar-body.d.ts +21 -5
  383. package/typings/datepicker/calendar.d.ts +4 -1
  384. package/typings/datepicker/datepicker.d.ts +3 -0
  385. package/typings/datepicker/index.metadata.json +1 -1
  386. package/typings/datepicker/month-view.d.ts +4 -2
  387. package/typings/dialog/index.metadata.json +1 -1
  388. package/typings/esm5/autocomplete/index.d.ts +1 -1
  389. package/typings/esm5/autocomplete/index.metadata.json +1 -1
  390. package/typings/esm5/badge/index.metadata.json +1 -1
  391. package/typings/esm5/bottom-sheet/bottom-sheet-config.d.ts +5 -0
  392. package/typings/esm5/bottom-sheet/bottom-sheet-container.d.ts +1 -1
  393. package/typings/esm5/bottom-sheet/index.metadata.json +1 -1
  394. package/typings/esm5/button/button.d.ts +0 -5
  395. package/typings/esm5/button/index.metadata.json +1 -1
  396. package/typings/esm5/button-toggle/index.metadata.json +1 -1
  397. package/typings/esm5/card/index.metadata.json +1 -1
  398. package/typings/esm5/checkbox/index.metadata.json +1 -1
  399. package/typings/esm5/chips/chip-list.d.ts +1 -1
  400. package/typings/esm5/chips/chip.d.ts +2 -2
  401. package/typings/esm5/chips/index.metadata.json +1 -1
  402. package/typings/esm5/core/index.metadata.json +1 -1
  403. package/typings/esm5/core/{testing/month-constants.d.ts → month-constants.d.ts} +2 -0
  404. package/typings/esm5/core/public-api.d.ts +1 -1
  405. package/typings/esm5/datepicker/calendar-body.d.ts +21 -5
  406. package/typings/esm5/datepicker/calendar.d.ts +4 -1
  407. package/typings/esm5/datepicker/datepicker.d.ts +3 -0
  408. package/typings/esm5/datepicker/index.metadata.json +1 -1
  409. package/typings/esm5/datepicker/month-view.d.ts +4 -2
  410. package/typings/esm5/dialog/index.metadata.json +1 -1
  411. package/typings/esm5/expansion/expansion-panel-header.d.ts +2 -2
  412. package/typings/esm5/expansion/expansion-panel.d.ts +19 -2
  413. package/typings/esm5/expansion/index.metadata.json +1 -1
  414. package/typings/esm5/form-field/form-field.d.ts +15 -4
  415. package/typings/esm5/form-field/index.metadata.json +1 -1
  416. package/typings/esm5/grid-list/index.d.ts +1 -1
  417. package/typings/esm5/grid-list/index.metadata.json +1 -1
  418. package/typings/esm5/icon/index.metadata.json +1 -1
  419. package/typings/esm5/index.metadata.json +1 -1
  420. package/typings/esm5/list/index.metadata.json +1 -1
  421. package/typings/esm5/menu/index.d.ts +4 -4
  422. package/typings/esm5/menu/index.metadata.json +1 -1
  423. package/typings/esm5/menu/menu-directive.d.ts +1 -0
  424. package/typings/esm5/menu/menu-item.d.ts +2 -0
  425. package/typings/esm5/paginator/index.metadata.json +1 -1
  426. package/typings/esm5/paginator/paginator.d.ts +7 -3
  427. package/typings/esm5/progress-bar/index.metadata.json +1 -1
  428. package/typings/esm5/radio/index.metadata.json +1 -1
  429. package/typings/esm5/radio/radio.d.ts +2 -6
  430. package/typings/esm5/select/index.metadata.json +1 -1
  431. package/typings/esm5/select/select.d.ts +12 -2
  432. package/typings/esm5/sidenav/drawer.d.ts +9 -2
  433. package/typings/esm5/sidenav/index.metadata.json +1 -1
  434. package/typings/esm5/slide-toggle/index.metadata.json +1 -1
  435. package/typings/esm5/slider/index.metadata.json +1 -1
  436. package/typings/esm5/snack-bar/index.metadata.json +1 -1
  437. package/typings/esm5/sort/index.metadata.json +1 -1
  438. package/typings/esm5/stepper/index.metadata.json +1 -1
  439. package/typings/esm5/stepper/step-header.d.ts +3 -5
  440. package/typings/esm5/tabs/index.d.ts +5 -5
  441. package/typings/esm5/tabs/index.metadata.json +1 -1
  442. package/typings/esm5/tabs/tab-body.d.ts +2 -0
  443. package/typings/esm5/tabs/tab-group.d.ts +11 -2
  444. package/typings/esm5/tabs/tab-header.d.ts +9 -3
  445. package/typings/esm5/toolbar/index.metadata.json +1 -1
  446. package/typings/esm5/tooltip/index.metadata.json +1 -1
  447. package/typings/esm5/tree/data-source/flat-data-source.d.ts +2 -2
  448. package/typings/esm5/tree/index.metadata.json +1 -1
  449. package/typings/expansion/expansion-panel-header.d.ts +2 -2
  450. package/typings/expansion/expansion-panel.d.ts +19 -2
  451. package/typings/expansion/index.metadata.json +1 -1
  452. package/typings/form-field/form-field.d.ts +15 -4
  453. package/typings/form-field/index.metadata.json +1 -1
  454. package/typings/grid-list/index.d.ts +1 -1
  455. package/typings/grid-list/index.metadata.json +1 -1
  456. package/typings/icon/index.metadata.json +1 -1
  457. package/typings/index.metadata.json +1 -1
  458. package/typings/list/index.metadata.json +1 -1
  459. package/typings/menu/index.d.ts +4 -4
  460. package/typings/menu/index.metadata.json +1 -1
  461. package/typings/menu/menu-directive.d.ts +1 -0
  462. package/typings/menu/menu-item.d.ts +2 -0
  463. package/typings/paginator/index.metadata.json +1 -1
  464. package/typings/paginator/paginator.d.ts +7 -3
  465. package/typings/progress-bar/index.metadata.json +1 -1
  466. package/typings/radio/index.metadata.json +1 -1
  467. package/typings/radio/radio.d.ts +2 -6
  468. package/typings/schematics/ng-add/theming/{custom-theme.d.ts → create-custom-theme.d.ts} +0 -0
  469. package/typings/select/index.metadata.json +1 -1
  470. package/typings/select/select.d.ts +12 -2
  471. package/typings/sidenav/drawer.d.ts +9 -2
  472. package/typings/sidenav/index.metadata.json +1 -1
  473. package/typings/slide-toggle/index.metadata.json +1 -1
  474. package/typings/slider/index.metadata.json +1 -1
  475. package/typings/snack-bar/index.metadata.json +1 -1
  476. package/typings/sort/index.metadata.json +1 -1
  477. package/typings/stepper/index.metadata.json +1 -1
  478. package/typings/stepper/step-header.d.ts +3 -5
  479. package/typings/tabs/index.d.ts +5 -5
  480. package/typings/tabs/index.metadata.json +1 -1
  481. package/typings/tabs/tab-body.d.ts +2 -0
  482. package/typings/tabs/tab-group.d.ts +11 -2
  483. package/typings/tabs/tab-header.d.ts +9 -3
  484. package/typings/toolbar/index.metadata.json +1 -1
  485. package/typings/tooltip/index.metadata.json +1 -1
  486. package/typings/tree/data-source/flat-data-source.d.ts +2 -2
  487. package/typings/tree/index.metadata.json +1 -1
  488. package/schematics/ng-add/theming/custom-theme.js.map +0 -1
@@ -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, CanColorCtor,\n FloatLabelType,\n LabelOptions,\n MAT_LABEL_GLOBAL_OPTIONS,\n mixinColor,\n} from '@angular/material/core';\nimport {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 {NgControl} from '@angular/forms';\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: CanColorCtor & typeof MatFormFieldBase =\n 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 // in form-field-input.css. The MatInput styles are fairly minimal so it shouldn't be a\n // big deal for people who aren't using MatInput.\n styleUrls: [\n 'form-field.css',\n 'form-field-fill.css',\n 'form-field-input.css',\n 'form-field-legacy.css',\n 'form-field-outline.css',\n 'form-field-standard.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 this._updateOutlineGapOnStable();\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 8.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 8.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\n const control = this._control;\n\n if (control.controlType) {\n this._elementRef.nativeElement.classList.add(`mat-form-field-type-${control.controlType}`);\n }\n\n // Subscribe to changes in the child control state in order to update the form field UI.\n control.stateChanges.pipe(startWith<void>(null!)).subscribe(() => {\n this._validatePlaceholders();\n this._syncDescribedByIds();\n this._changeDetectorRef.markForCheck();\n });\n\n // Run change detection if the value changes.\n if (control.ngControl && control.ngControl.valueChanges) {\n control.ngControl.valueChanges.subscribe(() => this._changeDetectorRef.markForCheck());\n }\n\n // Run change detection and update the outline if the suffix or prefix changes.\n merge(this._prefixChildren.changes, this._suffixChildren.changes).subscribe(() => {\n this._updateOutlineGapOnStable();\n this._changeDetectorRef.markForCheck();\n });\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: keyof NgControl): 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 /** Updates the outline gap the new time the zone stabilizes. */\n private _updateOutlineGapOnStable() {\n // @breaking-change 8.0.0 Remove this check and else block once _ngZone is required.\n if (this._ngZone) {\n this._ngZone.onStable.pipe(take(1)).subscribe(() => this.updateOutlineGap());\n } else {\n Promise.resolve().then(() => this.updateOutlineGap());\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} 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/**\n * Animations used by the MatFormField.\n * @docs-private\n */\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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"}
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 OnDestroy,\n} from '@angular/core';\nimport {\n CanColor, CanColorCtor,\n FloatLabelType,\n LabelOptions,\n MAT_LABEL_GLOBAL_OPTIONS,\n mixinColor,\n} from '@angular/material/core';\nimport {fromEvent, merge, Subject} from 'rxjs';\nimport {startWith, take, takeUntil} 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 {NgControl} from '@angular/forms';\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: CanColorCtor & typeof MatFormFieldBase =\n 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 // in form-field-input.css. The MatInput styles are fairly minimal so it shouldn't be a\n // big deal for people who aren't using MatInput.\n styleUrls: [\n 'form-field.css',\n 'form-field-fill.css',\n 'form-field-input.css',\n 'form-field-legacy.css',\n 'form-field-outline.css',\n 'form-field-standard.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-has-label]': '_hasFloatingLabel()',\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, OnDestroy, CanColor {\n private _labelOptions: LabelOptions;\n\n /**\n * Whether the outline gap needs to be calculated\n * immediately on the next change detection run.\n */\n private _outlineGapCalculationNeededImmediately = false;\n\n /** Whether the outline gap needs to be calculated next time the zone has stabilized. */\n private _outlineGapCalculationNeededOnStable = false;\n\n private _destroyed = new Subject<void>();\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 this._updateOutlineGapOnStable();\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 8.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 8.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\n const control = this._control;\n\n if (control.controlType) {\n this._elementRef.nativeElement.classList.add(`mat-form-field-type-${control.controlType}`);\n }\n\n // Subscribe to changes in the child control state in order to update the form field UI.\n control.stateChanges.pipe(startWith<void>(null!)).subscribe(() => {\n this._validatePlaceholders();\n this._syncDescribedByIds();\n this._changeDetectorRef.markForCheck();\n });\n\n // Run change detection if the value changes.\n if (control.ngControl && control.ngControl.valueChanges) {\n control.ngControl.valueChanges\n .pipe(takeUntil(this._destroyed))\n .subscribe(() => this._changeDetectorRef.markForCheck());\n }\n\n // @breaking-change 7.0.0 Remove this check once _ngZone is required. Also reconsider\n // whether the `ngAfterContentChecked` below is still necessary.\n if (this._ngZone) {\n this._ngZone.onStable.asObservable().pipe(takeUntil(this._destroyed)).subscribe(() => {\n if (this._outlineGapCalculationNeededOnStable) {\n this.updateOutlineGap();\n }\n });\n }\n\n // Run change detection and update the outline if the suffix or prefix changes.\n merge(this._prefixChildren.changes, this._suffixChildren.changes).subscribe(() => {\n this._updateOutlineGapOnStable();\n this._changeDetectorRef.markForCheck();\n });\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 if (this._dir) {\n this._dir.change.pipe(takeUntil(this._destroyed)).subscribe(() => this.updateOutlineGap());\n }\n }\n\n ngAfterContentChecked() {\n this._validateControlChild();\n if (this._outlineGapCalculationNeededImmediately) {\n this.updateOutlineGap();\n }\n }\n\n ngAfterViewInit() {\n // Avoid animations on load.\n this._subscriptAnimationState = 'enter';\n this._changeDetectorRef.detectChanges();\n }\n\n ngOnDestroy() {\n this._destroyed.next();\n this._destroyed.complete();\n }\n\n /** Determines whether a class from the NgControl should be forwarded to the host element. */\n _shouldForward(prop: keyof NgControl): 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._outlineGapCalculationNeededImmediately = true;\n return;\n }\n\n let startWidth = 0;\n let gapWidth = 0;\n\n const container = this._connectionContainerRef.nativeElement;\n const startEls = container.querySelectorAll('.mat-form-field-outline-start');\n const gapEls = container.querySelectorAll('.mat-form-field-outline-gap');\n\n if (this._label && this._label.nativeElement.children.length) {\n const containerRect = container.getBoundingClientRect();\n\n // If the container's width and height are zero, it means that the element is\n // invisible and we can't calculate the outline gap. Mark the element as needing\n // to be checked the next time the zone stabilizes. We can't do this immediately\n // on the next change detection, because even if the element becomes visible,\n // the `ClientRect` won't be reclaculated immediately. We reset the\n // `_outlineGapCalculationNeededImmediately` flag some we don't run the checks twice.\n if (containerRect.width === 0 && containerRect.height === 0) {\n this._outlineGapCalculationNeededOnStable = true;\n this._outlineGapCalculationNeededImmediately = false;\n return;\n }\n\n const containerStart = this._getStartEnd(containerRect);\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._outlineGapCalculationNeededOnStable =\n this._outlineGapCalculationNeededImmediately = 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 * Updates the outline gap the new time the zone stabilizes.\n * @breaking-change 7.0.0 Remove this method and only set the property once `_ngZone` is required.\n */\n private _updateOutlineGapOnStable() {\n // @breaking-change 8.0.0 Remove this check and else block once _ngZone is required.\n if (this._ngZone) {\n this._outlineGapCalculationNeededOnStable = true;\n } else {\n Promise.resolve().then(() => this.updateOutlineGap());\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} 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/**\n * Animations used by the MatFormField.\n * @docs-private\n */\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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"}
@@ -12,17 +12,18 @@ import { Directionality } from '@angular/cdk/bidi';
12
12
 
13
13
  /**
14
14
  * @fileoverview added by tsickle
15
- * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
15
+ * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
16
16
  */
17
- /** *
17
+ /**
18
18
  * Injection token used to provide a grid list to a tile and to avoid circular imports.
19
19
  * \@docs-private
20
- @type {?} */
20
+ * @type {?}
21
+ */
21
22
  const MAT_GRID_LIST = new InjectionToken('MAT_GRID_LIST');
22
23
 
23
24
  /**
24
25
  * @fileoverview added by tsickle
25
- * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
26
+ * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
26
27
  */
27
28
  class MatGridTile {
28
29
  /**
@@ -63,7 +64,7 @@ class MatGridTile {
63
64
  * @return {?}
64
65
  */
65
66
  _setStyle(property, value) {
66
- (/** @type {?} */ (this._element.nativeElement.style))[property] = value;
67
+ ((/** @type {?} */ (this._element.nativeElement.style)))[property] = value;
67
68
  }
68
69
  }
69
70
  MatGridTile.decorators = [
@@ -154,7 +155,7 @@ MatGridTileFooterCssMatStyler.decorators = [
154
155
 
155
156
  /**
156
157
  * @fileoverview added by tsickle
157
- * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
158
+ * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
158
159
  */
159
160
 
160
161
  /**
@@ -217,10 +218,12 @@ class TileCoordinator {
217
218
  }
218
219
  /**
219
220
  * Calculates the row and col position of a tile.
221
+ * @private
220
222
  * @param {?} tile
221
223
  * @return {?}
222
224
  */
223
225
  _trackTile(tile) {
226
+ // Find a gap large enough for this tile.
224
227
  /** @type {?} */
225
228
  const gapStartIndex = this._findMatchingGap(tile.colspan);
226
229
  // Place tile in the resulting gap.
@@ -232,6 +235,7 @@ class TileCoordinator {
232
235
  }
233
236
  /**
234
237
  * Finds the next available space large enough to fit the tile.
238
+ * @private
235
239
  * @param {?} tileCols
236
240
  * @return {?}
237
241
  */
@@ -240,6 +244,7 @@ class TileCoordinator {
240
244
  throw Error(`mat-grid-list: tile with colspan ${tileCols} is wider than ` +
241
245
  `grid with cols="${this.tracker.length}".`);
242
246
  }
247
+ // Start index is inclusive, end index is exclusive.
243
248
  /** @type {?} */
244
249
  let gapStartIndex = -1;
245
250
  /** @type {?} */
@@ -274,6 +279,7 @@ class TileCoordinator {
274
279
  }
275
280
  /**
276
281
  * Move "down" to the next row.
282
+ * @private
277
283
  * @return {?}
278
284
  */
279
285
  _nextRow() {
@@ -287,6 +293,7 @@ class TileCoordinator {
287
293
  /**
288
294
  * Finds the end index (exclusive) of a gap given the index from which to start looking.
289
295
  * The gap ends when a non-zero value is found.
296
+ * @private
290
297
  * @param {?} gapStartIndex
291
298
  * @return {?}
292
299
  */
@@ -301,6 +308,7 @@ class TileCoordinator {
301
308
  }
302
309
  /**
303
310
  * Update the tile tracker to account for the given tile in the given space.
311
+ * @private
304
312
  * @param {?} start
305
313
  * @param {?} tile
306
314
  * @return {?}
@@ -328,13 +336,14 @@ class TilePosition {
328
336
 
329
337
  /**
330
338
  * @fileoverview added by tsickle
331
- * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
339
+ * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
332
340
  */
333
341
 
334
- /** *
342
+ /**
335
343
  * RegExp that can be used to check whether a value will
336
344
  * be allowed inside a CSS `calc()` expression.
337
- @type {?} */
345
+ * @type {?}
346
+ */
338
347
  const cssCalcAllowedValue = /^-?\d+((\.\d+)?[A-Za-z%$]?)+$/;
339
348
  /**
340
349
  * Sets the style properties for an individual tile, given the position calculated by the
@@ -407,8 +416,11 @@ class TileStyler {
407
416
  * @return {?}
408
417
  */
409
418
  setStyle(tile, rowIndex, colIndex) {
419
+ // Percent of the available horizontal space that one column takes up.
410
420
  /** @type {?} */
411
421
  let percentWidthPerTile = 100 / this._cols;
422
+ // Fraction of the vertical gutter size that each column takes up.
423
+ // For example, if there are 5 columns, each column uses 4/5 = 0.8 times the gutter width.
412
424
  /** @type {?} */
413
425
  let gutterWidthFractionPerTile = (this._cols - 1) / this._cols;
414
426
  this.setColStyles(tile, colIndex, percentWidthPerTile, gutterWidthFractionPerTile);
@@ -423,8 +435,11 @@ class TileStyler {
423
435
  * @return {?}
424
436
  */
425
437
  setColStyles(tile, colIndex, percentWidth, gutterWidth) {
438
+ // Base horizontal size of a column.
426
439
  /** @type {?} */
427
440
  let baseTileWidth = this.getBaseTileSize(percentWidth, gutterWidth);
441
+ // The width and horizontal position of each tile is always calculated the same way, but the
442
+ // height and vertical position depends on the rowMode.
428
443
  /** @type {?} */
429
444
  let side = this._direction === 'rtl' ? 'right' : 'left';
430
445
  tile._setStyle(side, this.getTilePosition(baseTileWidth, colIndex));
@@ -561,6 +576,7 @@ class RatioTileStyler extends TileStyler {
561
576
  });
562
577
  }
563
578
  /**
579
+ * @private
564
580
  * @param {?} value
565
581
  * @return {?}
566
582
  */
@@ -587,10 +603,13 @@ class FitTileStyler extends TileStyler {
587
603
  * @return {?}
588
604
  */
589
605
  setRowStyles(tile, rowIndex) {
606
+ // Percent of the available vertical space that one row takes up.
590
607
  /** @type {?} */
591
608
  let percentHeightPerTile = 100 / this._rowspan;
609
+ // Fraction of the horizontal gutter size that each column takes up.
592
610
  /** @type {?} */
593
611
  let gutterHeightPerTile = (this._rows - 1) / this._rows;
612
+ // Base vertical size of a column.
594
613
  /** @type {?} */
595
614
  let baseTileHeight = this.getBaseTileSize(percentHeightPerTile, gutterHeightPerTile);
596
615
  tile._setStyle('top', this.getTilePosition(baseTileHeight, rowIndex));
@@ -614,20 +633,25 @@ class FitTileStyler extends TileStyler {
614
633
  * @param {?} exp
615
634
  * @return {?}
616
635
  */
617
- function calc(exp) { return `calc(${exp})`; }
636
+ function calc(exp) {
637
+ return `calc(${exp})`;
638
+ }
618
639
  /**
619
640
  * Appends pixels to a CSS string if no units are given.
620
641
  * @param {?} value
621
642
  * @return {?}
622
643
  */
623
644
  function normalizeUnits(value) {
624
- return (value.match(/px|em|rem/)) ? value : value + 'px';
645
+ return value.match(/([A-Za-z%]+)$/) ? value : `${value}px`;
625
646
  }
626
647
 
627
648
  /**
628
649
  * @fileoverview added by tsickle
629
- * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
650
+ * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
630
651
  */
652
+ // TODO(kara): Conditional (responsive) column count / row size.
653
+ // TODO(kara): Re-layout on window resize / media change (debounced).
654
+ // TODO(kara): gridTileHeader and gridTileFooter.
631
655
  /** @type {?} */
632
656
  const MAT_FIT_MODE = 'fit';
633
657
  class MatGridList {
@@ -699,6 +723,7 @@ class MatGridList {
699
723
  }
700
724
  /**
701
725
  * Throw a friendly error if cols property is missing
726
+ * @private
702
727
  * @return {?}
703
728
  */
704
729
  _checkCols() {
@@ -709,6 +734,7 @@ class MatGridList {
709
734
  }
710
735
  /**
711
736
  * Default to equal width:height if rowHeight property is missing
737
+ * @private
712
738
  * @return {?}
713
739
  */
714
740
  _checkRowHeight() {
@@ -718,6 +744,7 @@ class MatGridList {
718
744
  }
719
745
  /**
720
746
  * Creates correct Tile Styler subtype based on rowHeight passed in by user
747
+ * @private
721
748
  * @param {?} rowHeight
722
749
  * @return {?}
723
750
  */
@@ -737,6 +764,7 @@ class MatGridList {
737
764
  }
738
765
  /**
739
766
  * Computes and applies the size and position for all children grid tiles.
767
+ * @private
740
768
  * @return {?}
741
769
  */
742
770
  _layoutTiles() {
@@ -765,7 +793,7 @@ class MatGridList {
765
793
  */
766
794
  _setListStyle(style) {
767
795
  if (style) {
768
- (/** @type {?} */ (this._element.nativeElement.style))[style[0]] = style[1];
796
+ ((/** @type {?} */ (this._element.nativeElement.style)))[style[0]] = style[1];
769
797
  }
770
798
  }
771
799
  }
@@ -799,7 +827,7 @@ MatGridList.propDecorators = {
799
827
 
800
828
  /**
801
829
  * @fileoverview added by tsickle
802
- * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
830
+ * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
803
831
  */
804
832
  class MatGridListModule {
805
833
  }
@@ -829,13 +857,13 @@ MatGridListModule.decorators = [
829
857
 
830
858
  /**
831
859
  * @fileoverview added by tsickle
832
- * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
860
+ * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
833
861
  */
834
862
 
835
863
  /**
836
864
  * @fileoverview added by tsickle
837
- * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
865
+ * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
838
866
  */
839
867
 
840
- export { MatGridListModule, MatGridList, MatGridTile, MatGridTileText, MatGridAvatarCssMatStyler, MatGridTileHeaderCssMatStyler, MatGridTileFooterCssMatStyler, MAT_GRID_LIST as ɵa6 };
868
+ export { MatGridListModule, MatGridList, MatGridTile, MatGridTileText, MatGridAvatarCssMatStyler, MatGridTileHeaderCssMatStyler, MatGridTileFooterCssMatStyler, MAT_GRID_LIST as ɵa15 };
841
869
  //# sourceMappingURL=grid-list.js.map