@angular/material 8.0.0 → 8.1.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 (413) hide show
  1. package/_theming.scss +29 -28
  2. package/bottom-sheet/typings/bottom-sheet-config.d.ts +4 -1
  3. package/bottom-sheet/typings/bottom-sheet-ref.d.ts +2 -0
  4. package/bottom-sheet/typings/index.metadata.json +1 -1
  5. package/bundles/material-autocomplete.umd.js +4 -0
  6. package/bundles/material-autocomplete.umd.js.map +1 -1
  7. package/bundles/material-autocomplete.umd.min.js +1 -1
  8. package/bundles/material-autocomplete.umd.min.js.map +1 -1
  9. package/bundles/material-bottom-sheet.umd.js +23 -8
  10. package/bundles/material-bottom-sheet.umd.js.map +1 -1
  11. package/bundles/material-bottom-sheet.umd.min.js +1 -1
  12. package/bundles/material-bottom-sheet.umd.min.js.map +1 -1
  13. package/bundles/material-button-toggle.umd.js.map +1 -1
  14. package/bundles/material-button-toggle.umd.min.js.map +1 -1
  15. package/bundles/material-button.umd.js +1 -1
  16. package/bundles/material-button.umd.js.map +1 -1
  17. package/bundles/material-button.umd.min.js +1 -1
  18. package/bundles/material-button.umd.min.js.map +1 -1
  19. package/bundles/material-card.umd.js +16 -7
  20. package/bundles/material-card.umd.js.map +1 -1
  21. package/bundles/material-card.umd.min.js +1 -1
  22. package/bundles/material-card.umd.min.js.map +1 -1
  23. package/bundles/material-checkbox.umd.js +2 -2
  24. package/bundles/material-checkbox.umd.js.map +1 -1
  25. package/bundles/material-checkbox.umd.min.js +1 -1
  26. package/bundles/material-checkbox.umd.min.js.map +1 -1
  27. package/bundles/material-chips.umd.js +12 -7
  28. package/bundles/material-chips.umd.js.map +1 -1
  29. package/bundles/material-chips.umd.min.js +1 -1
  30. package/bundles/material-chips.umd.min.js.map +1 -1
  31. package/bundles/material-core.umd.js +31 -6
  32. package/bundles/material-core.umd.js.map +1 -1
  33. package/bundles/material-core.umd.min.js +2 -2
  34. package/bundles/material-core.umd.min.js.map +1 -1
  35. package/bundles/material-datepicker.umd.js +94 -22
  36. package/bundles/material-datepicker.umd.js.map +1 -1
  37. package/bundles/material-datepicker.umd.min.js +2 -2
  38. package/bundles/material-datepicker.umd.min.js.map +1 -1
  39. package/bundles/material-dialog.umd.js +41 -6
  40. package/bundles/material-dialog.umd.js.map +1 -1
  41. package/bundles/material-dialog.umd.min.js +1 -1
  42. package/bundles/material-dialog.umd.min.js.map +1 -1
  43. package/bundles/material-expansion.umd.js +70 -4
  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 +1 -1
  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 +1 -1
  52. package/bundles/material-grid-list.umd.min.js +1 -1
  53. package/bundles/material-list.umd.js +39 -21
  54. package/bundles/material-list.umd.js.map +1 -1
  55. package/bundles/material-list.umd.min.js +1 -1
  56. package/bundles/material-list.umd.min.js.map +1 -1
  57. package/bundles/material-menu.umd.js +123 -73
  58. package/bundles/material-menu.umd.js.map +1 -1
  59. package/bundles/material-menu.umd.min.js +1 -1
  60. package/bundles/material-menu.umd.min.js.map +1 -1
  61. package/bundles/material-progress-spinner.umd.js +66 -22
  62. package/bundles/material-progress-spinner.umd.js.map +1 -1
  63. package/bundles/material-progress-spinner.umd.min.js +1 -1
  64. package/bundles/material-progress-spinner.umd.min.js.map +1 -1
  65. package/bundles/material-radio.umd.js +22 -3
  66. package/bundles/material-radio.umd.js.map +1 -1
  67. package/bundles/material-radio.umd.min.js +1 -1
  68. package/bundles/material-radio.umd.min.js.map +1 -1
  69. package/bundles/material-sidenav.umd.js +4 -1
  70. package/bundles/material-sidenav.umd.js.map +1 -1
  71. package/bundles/material-sidenav.umd.min.js +1 -1
  72. package/bundles/material-sidenav.umd.min.js.map +1 -1
  73. package/bundles/material-tabs.umd.js +354 -315
  74. package/bundles/material-tabs.umd.js.map +1 -1
  75. package/bundles/material-tabs.umd.min.js +2 -2
  76. package/bundles/material-tabs.umd.min.js.map +1 -1
  77. package/bundles/material-tooltip.umd.js +2 -1
  78. package/bundles/material-tooltip.umd.js.map +1 -1
  79. package/bundles/material-tooltip.umd.min.js +1 -1
  80. package/bundles/material-tooltip.umd.min.js.map +1 -1
  81. package/bundles/material.umd.js +883 -478
  82. package/bundles/material.umd.js.map +1 -1
  83. package/bundles/material.umd.min.js +19 -19
  84. package/bundles/material.umd.min.js.map +1 -1
  85. package/button-toggle/typings/button-toggle.d.ts +1 -1
  86. package/card/typings/card.d.ts +2 -0
  87. package/card/typings/index.metadata.json +1 -1
  88. package/checkbox/typings/checkbox.d.ts +1 -1
  89. package/checkbox/typings/index.metadata.json +1 -1
  90. package/chips/typings/chip.d.ts +4 -2
  91. package/chips/typings/index.metadata.json +1 -1
  92. package/core/typings/common-behaviors/common-module.d.ts +2 -0
  93. package/core/typings/index.metadata.json +1 -1
  94. package/datepicker/typings/calendar.d.ts +1 -1
  95. package/datepicker/typings/index.metadata.json +1 -1
  96. package/datepicker/typings/multi-year-view.d.ts +7 -0
  97. package/datepicker/typings/public-api.d.ts +1 -1
  98. package/dialog/typings/dialog-ref.d.ts +2 -0
  99. package/dialog/typings/index.metadata.json +1 -1
  100. package/esm2015/autocomplete.js +4 -0
  101. package/esm2015/autocomplete.js.map +1 -1
  102. package/esm2015/bottom-sheet.js +24 -9
  103. package/esm2015/bottom-sheet.js.map +1 -1
  104. package/esm2015/button-toggle.js.map +1 -1
  105. package/esm2015/button.js +1 -1
  106. package/esm2015/button.js.map +1 -1
  107. package/esm2015/card.js +18 -3
  108. package/esm2015/card.js.map +1 -1
  109. package/esm2015/checkbox.js +2 -2
  110. package/esm2015/checkbox.js.map +1 -1
  111. package/esm2015/chips.js +10 -3
  112. package/esm2015/chips.js.map +1 -1
  113. package/esm2015/core.js +22 -2
  114. package/esm2015/core.js.map +1 -1
  115. package/esm2015/datepicker.js +93 -21
  116. package/esm2015/datepicker.js.map +1 -1
  117. package/esm2015/dialog.js +42 -7
  118. package/esm2015/dialog.js.map +1 -1
  119. package/esm2015/expansion.js +57 -4
  120. package/esm2015/expansion.js.map +1 -1
  121. package/esm2015/form-field.js +1 -1
  122. package/esm2015/form-field.js.map +1 -1
  123. package/esm2015/grid-list.js +1 -1
  124. package/esm2015/list.js +40 -22
  125. package/esm2015/list.js.map +1 -1
  126. package/esm2015/material.js +6 -6
  127. package/esm2015/menu.js +74 -52
  128. package/esm2015/menu.js.map +1 -1
  129. package/esm2015/progress-spinner.js +64 -20
  130. package/esm2015/progress-spinner.js.map +1 -1
  131. package/esm2015/radio.js +23 -5
  132. package/esm2015/radio.js.map +1 -1
  133. package/esm2015/sidenav.js +5 -2
  134. package/esm2015/sidenav.js.map +1 -1
  135. package/esm2015/tabs.js +281 -222
  136. package/esm2015/tabs.js.map +1 -1
  137. package/esm2015/tooltip.js +3 -2
  138. package/esm2015/tooltip.js.map +1 -1
  139. package/esm5/autocomplete.es5.js +4 -0
  140. package/esm5/autocomplete.es5.js.map +1 -1
  141. package/esm5/bottom-sheet.es5.js +24 -9
  142. package/esm5/bottom-sheet.es5.js.map +1 -1
  143. package/esm5/button-toggle.es5.js.map +1 -1
  144. package/esm5/button.es5.js +1 -1
  145. package/esm5/button.es5.js.map +1 -1
  146. package/esm5/card.es5.js +14 -4
  147. package/esm5/card.es5.js.map +1 -1
  148. package/esm5/checkbox.es5.js +2 -2
  149. package/esm5/checkbox.es5.js.map +1 -1
  150. package/esm5/chips.es5.js +9 -3
  151. package/esm5/chips.es5.js.map +1 -1
  152. package/esm5/core.es5.js +28 -2
  153. package/esm5/core.es5.js.map +1 -1
  154. package/esm5/datepicker.es5.js +92 -20
  155. package/esm5/datepicker.es5.js.map +1 -1
  156. package/esm5/dialog.es5.js +42 -7
  157. package/esm5/dialog.es5.js.map +1 -1
  158. package/esm5/expansion.es5.js +70 -4
  159. package/esm5/expansion.es5.js.map +1 -1
  160. package/esm5/form-field.es5.js +1 -1
  161. package/esm5/form-field.es5.js.map +1 -1
  162. package/esm5/grid-list.es5.js +1 -1
  163. package/esm5/list.es5.js +40 -22
  164. package/esm5/list.es5.js.map +1 -1
  165. package/esm5/material.es5.js +6 -6
  166. package/esm5/menu.es5.js +122 -72
  167. package/esm5/menu.es5.js.map +1 -1
  168. package/esm5/progress-spinner.es5.js +64 -20
  169. package/esm5/progress-spinner.es5.js.map +1 -1
  170. package/esm5/radio.es5.js +22 -5
  171. package/esm5/radio.es5.js.map +1 -1
  172. package/esm5/sidenav.es5.js +5 -2
  173. package/esm5/sidenav.es5.js.map +1 -1
  174. package/esm5/tabs.es5.js +342 -303
  175. package/esm5/tabs.es5.js.map +1 -1
  176. package/esm5/tooltip.es5.js +3 -2
  177. package/esm5/tooltip.es5.js.map +1 -1
  178. package/expansion/typings/accordion-base.d.ts +4 -0
  179. package/expansion/typings/accordion.d.ts +3 -1
  180. package/expansion/typings/expansion-panel-header.d.ts +6 -0
  181. package/expansion/typings/expansion-panel.d.ts +5 -2
  182. package/expansion/typings/index.metadata.json +1 -1
  183. package/form-field/typings/index.metadata.json +1 -1
  184. package/grid-list/typings/index.d.ts +1 -1
  185. package/grid-list/typings/index.metadata.json +1 -1
  186. package/list/typings/index.metadata.json +1 -1
  187. package/list/typings/selection-list.d.ts +5 -5
  188. package/menu/typings/index.d.ts +2 -2
  189. package/menu/typings/index.metadata.json +1 -1
  190. package/menu/typings/menu-item.d.ts +1 -1
  191. package/menu/typings/menu-panel.d.ts +8 -0
  192. package/menu/typings/menu.d.ts +21 -14
  193. package/package.json +4 -4
  194. package/prebuilt-themes/deeppurple-amber.css +1 -1
  195. package/prebuilt-themes/indigo-pink.css +1 -1
  196. package/prebuilt-themes/pink-bluegrey.css +1 -1
  197. package/prebuilt-themes/purple-green.css +1 -1
  198. package/progress-spinner/typings/index.metadata.json +1 -1
  199. package/progress-spinner/typings/progress-spinner.d.ts +14 -6
  200. package/progress-spinner/typings/public-api.d.ts +1 -1
  201. package/radio/typings/index.metadata.json +1 -1
  202. package/radio/typings/radio.d.ts +8 -2
  203. package/schematics/ng-add/fonts/material-fonts.js +1 -1
  204. package/schematics/ng-add/fonts/material-fonts.js.map +1 -1
  205. package/schematics/ng-add/index.js.map +1 -1
  206. package/schematics/ng-generate/address-form/files/__path__/__name@dasherize@if-flat__/{__name@dasherize__.component.__style__ → __name@dasherize__.component.__style__.template} +0 -0
  207. package/schematics/ng-generate/address-form/files/__path__/__name@dasherize@if-flat__/{__name@dasherize__.component.html → __name@dasherize__.component.html.template} +0 -0
  208. package/schematics/ng-generate/address-form/files/__path__/__name@dasherize@if-flat__/{__name@dasherize__.component.spec.ts → __name@dasherize__.component.spec.ts.template} +5 -7
  209. package/schematics/ng-generate/address-form/files/__path__/__name@dasherize@if-flat__/{__name@dasherize__.component.ts → __name@dasherize__.component.ts.template} +0 -0
  210. package/schematics/ng-generate/address-form/index.js +7 -7
  211. package/schematics/ng-generate/address-form/index.js.map +1 -1
  212. package/schematics/ng-generate/dashboard/files/__path__/__name@dasherize@if-flat__/{__name@dasherize__.component.__style__ → __name@dasherize__.component.__style__.template} +0 -0
  213. package/schematics/ng-generate/dashboard/files/__path__/__name@dasherize@if-flat__/{__name@dasherize__.component.html → __name@dasherize__.component.html.template} +0 -0
  214. package/schematics/ng-generate/dashboard/files/__path__/__name@dasherize@if-flat__/{__name@dasherize__.component.spec.ts → __name@dasherize__.component.spec.ts.template} +5 -7
  215. package/schematics/ng-generate/dashboard/files/__path__/__name@dasherize@if-flat__/{__name@dasherize__.component.ts → __name@dasherize__.component.ts.template} +0 -0
  216. package/schematics/ng-generate/dashboard/index.js +7 -7
  217. package/schematics/ng-generate/dashboard/index.js.map +1 -1
  218. package/schematics/ng-generate/nav/files/__path__/__name@dasherize@if-flat__/{__name@dasherize__.component.__style__ → __name@dasherize__.component.__style__.template} +0 -0
  219. package/schematics/ng-generate/nav/files/__path__/__name@dasherize@if-flat__/{__name@dasherize__.component.html → __name@dasherize__.component.html.template} +0 -0
  220. package/schematics/ng-generate/nav/files/__path__/__name@dasherize@if-flat__/{__name@dasherize__.component.spec.ts → __name@dasherize__.component.spec.ts.template} +5 -7
  221. package/schematics/ng-generate/nav/files/__path__/__name@dasherize@if-flat__/{__name@dasherize__.component.ts → __name@dasherize__.component.ts.template} +3 -2
  222. package/schematics/ng-generate/nav/index.js +7 -7
  223. package/schematics/ng-generate/nav/index.js.map +1 -1
  224. package/schematics/ng-generate/table/files/__path__/__name@dasherize@if-flat__/{__name@dasherize__-datasource.ts → __name@dasherize__-datasource.ts.template} +2 -1
  225. package/schematics/ng-generate/table/files/__path__/__name@dasherize@if-flat__/{__name@dasherize__.component.__style__ → __name@dasherize__.component.__style__.template} +0 -0
  226. package/schematics/ng-generate/table/files/__path__/__name@dasherize@if-flat__/{__name@dasherize__.component.html → __name@dasherize__.component.html.template} +0 -0
  227. package/schematics/ng-generate/table/files/__path__/__name@dasherize@if-flat__/{__name@dasherize__.component.spec.ts → __name@dasherize__.component.spec.ts.template} +3 -1
  228. package/schematics/ng-generate/table/files/__path__/__name@dasherize@if-flat__/{__name@dasherize__.component.ts → __name@dasherize__.component.ts.template} +6 -4
  229. package/schematics/ng-generate/table/index.js +5 -5
  230. package/schematics/ng-generate/table/index.js.map +1 -1
  231. package/schematics/ng-generate/tree/files/__path__/__name@dasherize@if-flat__/{__name@dasherize__.component.__style__ → __name@dasherize__.component.__style__.template} +0 -0
  232. package/schematics/ng-generate/tree/files/__path__/__name@dasherize@if-flat__/{__name@dasherize__.component.html → __name@dasherize__.component.html.template} +0 -0
  233. package/schematics/ng-generate/tree/files/__path__/__name@dasherize@if-flat__/{__name@dasherize__.component.spec.ts → __name@dasherize__.component.spec.ts.template} +3 -1
  234. package/schematics/ng-generate/tree/files/__path__/__name@dasherize@if-flat__/{__name@dasherize__.component.ts → __name@dasherize__.component.ts.template} +0 -0
  235. package/schematics/ng-generate/tree/files/__path__/__name@dasherize@if-flat__/{example-data.ts → example-data.ts.template} +1 -1
  236. package/schematics/ng-generate/tree/index.js +5 -5
  237. package/schematics/ng-generate/tree/index.js.map +1 -1
  238. package/schematics/ng-update/data/class-names.js +3 -12
  239. package/schematics/ng-update/data/class-names.js.map +1 -1
  240. package/schematics/ng-update/data/constructor-checks.js +7 -29
  241. package/schematics/ng-update/data/constructor-checks.js.map +1 -1
  242. package/schematics/ng-update/data/css-selectors.js +19 -68
  243. package/schematics/ng-update/data/css-selectors.js.map +1 -1
  244. package/schematics/ng-update/data/element-selectors.js +3 -10
  245. package/schematics/ng-update/data/element-selectors.js.map +1 -1
  246. package/schematics/ng-update/data/input-names.js +17 -55
  247. package/schematics/ng-update/data/input-names.js.map +1 -1
  248. package/schematics/ng-update/data/property-names.js +28 -100
  249. package/schematics/ng-update/data/property-names.js.map +1 -1
  250. package/schematics/ng-update/index.d.ts +0 -2
  251. package/schematics/ng-update/index.js +27 -34
  252. package/schematics/ng-update/index.js.map +1 -1
  253. package/schematics/ng-update/typescript/module-specifiers.js.map +1 -1
  254. package/schematics/ng-update/upgrade-rules/misc-checks/misc-class-inheritance-rule.d.ts +18 -0
  255. package/schematics/ng-update/upgrade-rules/misc-checks/misc-class-inheritance-rule.js +47 -0
  256. package/schematics/ng-update/upgrade-rules/misc-checks/misc-class-inheritance-rule.js.map +1 -0
  257. package/schematics/ng-update/upgrade-rules/misc-checks/misc-class-names-rule.d.ts +18 -0
  258. package/schematics/ng-update/upgrade-rules/misc-checks/misc-class-names-rule.js +42 -0
  259. package/schematics/ng-update/upgrade-rules/misc-checks/misc-class-names-rule.js.map +1 -0
  260. package/{typings/schematics/ng-update/upgrade-rules/misc-checks/checkImportsMiscRule.d.ts → schematics/ng-update/upgrade-rules/misc-checks/misc-imports-rule.d.ts} +7 -8
  261. package/schematics/ng-update/upgrade-rules/misc-checks/{checkImportsMiscRule.js → misc-imports-rule.js} +19 -16
  262. package/schematics/ng-update/upgrade-rules/misc-checks/misc-imports-rule.js.map +1 -0
  263. package/schematics/ng-update/upgrade-rules/misc-checks/misc-property-names-rule.d.ts +18 -0
  264. package/schematics/ng-update/upgrade-rules/misc-checks/misc-property-names-rule.js +46 -0
  265. package/schematics/ng-update/upgrade-rules/misc-checks/misc-property-names-rule.js.map +1 -0
  266. package/schematics/ng-update/upgrade-rules/misc-checks/misc-template-rule.d.ts +16 -0
  267. package/schematics/ng-update/upgrade-rules/misc-checks/misc-template-rule.js +59 -0
  268. package/schematics/ng-update/upgrade-rules/misc-checks/misc-template-rule.js.map +1 -0
  269. package/schematics/ng-update/upgrade-rules/misc-ripples-v7/{rippleSpeedFactorAssignmentRule.d.ts → ripple-speed-factor-rule.d.ts} +11 -9
  270. package/schematics/ng-update/upgrade-rules/misc-ripples-v7/{rippleSpeedFactorAssignmentRule.js → ripple-speed-factor-rule.js} +57 -31
  271. package/schematics/ng-update/upgrade-rules/misc-ripples-v7/ripple-speed-factor-rule.js.map +1 -0
  272. package/schematics/ng-update/upgrade-rules/package-imports-v8/secondary-entry-points-rule.d.ts +18 -0
  273. package/schematics/ng-update/upgrade-rules/package-imports-v8/{updateAngularMaterialImportsRule.js → secondary-entry-points-rule.js} +40 -52
  274. package/schematics/ng-update/upgrade-rules/package-imports-v8/secondary-entry-points-rule.js.map +1 -0
  275. package/sidenav/typings/index.metadata.json +1 -1
  276. package/tabs/typings/index.d.ts +2 -1
  277. package/tabs/typings/index.metadata.json +1 -1
  278. package/tabs/typings/ink-bar.d.ts +2 -1
  279. package/tabs/typings/paginated-tab-header.d.ts +187 -0
  280. package/tabs/typings/public-api.d.ts +2 -1
  281. package/tabs/typings/tab-group.d.ts +2 -1
  282. package/tabs/typings/tab-header.d.ts +10 -159
  283. package/tabs/typings/tab-nav-bar/tab-nav-bar.d.ts +27 -30
  284. package/tooltip/typings/index.metadata.json +1 -1
  285. package/typings/bottom-sheet/bottom-sheet-config.d.ts +4 -1
  286. package/typings/bottom-sheet/bottom-sheet-ref.d.ts +2 -0
  287. package/typings/bottom-sheet/index.metadata.json +1 -1
  288. package/typings/button-toggle/button-toggle.d.ts +1 -1
  289. package/typings/card/card.d.ts +2 -0
  290. package/typings/card/index.metadata.json +1 -1
  291. package/typings/checkbox/checkbox.d.ts +1 -1
  292. package/typings/checkbox/index.metadata.json +1 -1
  293. package/typings/chips/chip.d.ts +4 -2
  294. package/typings/chips/index.metadata.json +1 -1
  295. package/typings/core/common-behaviors/common-module.d.ts +2 -0
  296. package/typings/core/index.metadata.json +1 -1
  297. package/typings/datepicker/calendar.d.ts +1 -1
  298. package/typings/datepicker/index.metadata.json +1 -1
  299. package/typings/datepicker/multi-year-view.d.ts +7 -0
  300. package/typings/datepicker/public-api.d.ts +1 -1
  301. package/typings/dialog/dialog-ref.d.ts +2 -0
  302. package/typings/dialog/index.metadata.json +1 -1
  303. package/typings/esm5/bottom-sheet/bottom-sheet-config.d.ts +4 -1
  304. package/typings/esm5/bottom-sheet/bottom-sheet-ref.d.ts +2 -0
  305. package/typings/esm5/bottom-sheet/index.metadata.json +1 -1
  306. package/typings/esm5/button-toggle/button-toggle.d.ts +1 -1
  307. package/typings/esm5/card/card.d.ts +2 -0
  308. package/typings/esm5/card/index.metadata.json +1 -1
  309. package/typings/esm5/checkbox/checkbox.d.ts +1 -1
  310. package/typings/esm5/checkbox/index.metadata.json +1 -1
  311. package/typings/esm5/chips/chip.d.ts +4 -2
  312. package/typings/esm5/chips/index.metadata.json +1 -1
  313. package/typings/esm5/core/common-behaviors/common-module.d.ts +2 -0
  314. package/typings/esm5/core/index.metadata.json +1 -1
  315. package/typings/esm5/datepicker/calendar.d.ts +1 -1
  316. package/typings/esm5/datepicker/index.metadata.json +1 -1
  317. package/typings/esm5/datepicker/multi-year-view.d.ts +7 -0
  318. package/typings/esm5/datepicker/public-api.d.ts +1 -1
  319. package/typings/esm5/dialog/dialog-ref.d.ts +2 -0
  320. package/typings/esm5/dialog/index.metadata.json +1 -1
  321. package/typings/esm5/expansion/accordion-base.d.ts +4 -0
  322. package/typings/esm5/expansion/accordion.d.ts +3 -1
  323. package/typings/esm5/expansion/expansion-panel-header.d.ts +6 -0
  324. package/typings/esm5/expansion/expansion-panel.d.ts +5 -2
  325. package/typings/esm5/expansion/index.metadata.json +1 -1
  326. package/typings/esm5/form-field/index.metadata.json +1 -1
  327. package/typings/esm5/grid-list/index.d.ts +1 -1
  328. package/typings/esm5/grid-list/index.metadata.json +1 -1
  329. package/typings/esm5/list/index.metadata.json +1 -1
  330. package/typings/esm5/list/selection-list.d.ts +5 -5
  331. package/typings/esm5/menu/index.d.ts +2 -2
  332. package/typings/esm5/menu/index.metadata.json +1 -1
  333. package/typings/esm5/menu/menu-item.d.ts +1 -1
  334. package/typings/esm5/menu/menu-panel.d.ts +8 -0
  335. package/typings/esm5/menu/menu.d.ts +21 -14
  336. package/typings/esm5/progress-spinner/index.metadata.json +1 -1
  337. package/typings/esm5/progress-spinner/progress-spinner.d.ts +14 -6
  338. package/typings/esm5/progress-spinner/public-api.d.ts +1 -1
  339. package/typings/esm5/radio/index.metadata.json +1 -1
  340. package/typings/esm5/radio/radio.d.ts +8 -2
  341. package/typings/esm5/sidenav/index.metadata.json +1 -1
  342. package/typings/esm5/tabs/index.d.ts +2 -1
  343. package/typings/esm5/tabs/index.metadata.json +1 -1
  344. package/typings/esm5/tabs/ink-bar.d.ts +2 -1
  345. package/typings/esm5/tabs/paginated-tab-header.d.ts +187 -0
  346. package/typings/esm5/tabs/public-api.d.ts +2 -1
  347. package/typings/esm5/tabs/tab-group.d.ts +2 -1
  348. package/typings/esm5/tabs/tab-header.d.ts +10 -159
  349. package/typings/esm5/tabs/tab-nav-bar/tab-nav-bar.d.ts +27 -30
  350. package/typings/esm5/tooltip/index.metadata.json +1 -1
  351. package/typings/expansion/accordion-base.d.ts +4 -0
  352. package/typings/expansion/accordion.d.ts +3 -1
  353. package/typings/expansion/expansion-panel-header.d.ts +6 -0
  354. package/typings/expansion/expansion-panel.d.ts +5 -2
  355. package/typings/expansion/index.metadata.json +1 -1
  356. package/typings/form-field/index.metadata.json +1 -1
  357. package/typings/grid-list/index.d.ts +1 -1
  358. package/typings/grid-list/index.metadata.json +1 -1
  359. package/typings/list/index.metadata.json +1 -1
  360. package/typings/list/selection-list.d.ts +5 -5
  361. package/typings/menu/index.d.ts +2 -2
  362. package/typings/menu/index.metadata.json +1 -1
  363. package/typings/menu/menu-item.d.ts +1 -1
  364. package/typings/menu/menu-panel.d.ts +8 -0
  365. package/typings/menu/menu.d.ts +21 -14
  366. package/typings/progress-spinner/index.metadata.json +1 -1
  367. package/typings/progress-spinner/progress-spinner.d.ts +14 -6
  368. package/typings/progress-spinner/public-api.d.ts +1 -1
  369. package/typings/radio/index.metadata.json +1 -1
  370. package/typings/radio/radio.d.ts +8 -2
  371. package/typings/schematics/ng-update/index.d.ts +0 -2
  372. package/typings/schematics/ng-update/upgrade-rules/misc-checks/misc-class-inheritance-rule.d.ts +18 -0
  373. package/typings/schematics/ng-update/upgrade-rules/misc-checks/misc-class-names-rule.d.ts +18 -0
  374. package/{schematics/ng-update/upgrade-rules/misc-checks/checkImportsMiscRule.d.ts → typings/schematics/ng-update/upgrade-rules/misc-checks/misc-imports-rule.d.ts} +7 -8
  375. package/typings/schematics/ng-update/upgrade-rules/misc-checks/misc-property-names-rule.d.ts +18 -0
  376. package/typings/schematics/ng-update/upgrade-rules/misc-checks/misc-template-rule.d.ts +16 -0
  377. package/typings/schematics/ng-update/upgrade-rules/misc-ripples-v7/{rippleSpeedFactorAssignmentRule.d.ts → ripple-speed-factor-rule.d.ts} +11 -9
  378. package/typings/schematics/ng-update/upgrade-rules/package-imports-v8/secondary-entry-points-rule.d.ts +18 -0
  379. package/typings/sidenav/index.metadata.json +1 -1
  380. package/typings/tabs/index.d.ts +2 -1
  381. package/typings/tabs/index.metadata.json +1 -1
  382. package/typings/tabs/ink-bar.d.ts +2 -1
  383. package/typings/tabs/paginated-tab-header.d.ts +187 -0
  384. package/typings/tabs/public-api.d.ts +2 -1
  385. package/typings/tabs/tab-group.d.ts +2 -1
  386. package/typings/tabs/tab-header.d.ts +10 -159
  387. package/typings/tabs/tab-nav-bar/tab-nav-bar.d.ts +27 -30
  388. package/typings/tooltip/index.metadata.json +1 -1
  389. package/schematics/ng-update/upgrade-rules/misc-checks/checkClassInheritanceMiscRule.d.ts +0 -19
  390. package/schematics/ng-update/upgrade-rules/misc-checks/checkClassInheritanceMiscRule.js +0 -43
  391. package/schematics/ng-update/upgrade-rules/misc-checks/checkClassInheritanceMiscRule.js.map +0 -1
  392. package/schematics/ng-update/upgrade-rules/misc-checks/checkClassNamesMiscRule.d.ts +0 -19
  393. package/schematics/ng-update/upgrade-rules/misc-checks/checkClassNamesMiscRule.js +0 -35
  394. package/schematics/ng-update/upgrade-rules/misc-checks/checkClassNamesMiscRule.js.map +0 -1
  395. package/schematics/ng-update/upgrade-rules/misc-checks/checkImportsMiscRule.js.map +0 -1
  396. package/schematics/ng-update/upgrade-rules/misc-checks/checkPropertyNamesMiscRule.d.ts +0 -19
  397. package/schematics/ng-update/upgrade-rules/misc-checks/checkPropertyNamesMiscRule.js +0 -40
  398. package/schematics/ng-update/upgrade-rules/misc-checks/checkPropertyNamesMiscRule.js.map +0 -1
  399. package/schematics/ng-update/upgrade-rules/misc-checks/checkTemplateMiscRule.d.ts +0 -22
  400. package/schematics/ng-update/upgrade-rules/misc-checks/checkTemplateMiscRule.js +0 -66
  401. package/schematics/ng-update/upgrade-rules/misc-checks/checkTemplateMiscRule.js.map +0 -1
  402. package/schematics/ng-update/upgrade-rules/misc-ripples-v7/rippleSpeedFactorAssignmentRule.js.map +0 -1
  403. package/schematics/ng-update/upgrade-rules/misc-ripples-v7/rippleSpeedFactorTemplateRule.d.ts +0 -22
  404. package/schematics/ng-update/upgrade-rules/misc-ripples-v7/rippleSpeedFactorTemplateRule.js +0 -66
  405. package/schematics/ng-update/upgrade-rules/misc-ripples-v7/rippleSpeedFactorTemplateRule.js.map +0 -1
  406. package/schematics/ng-update/upgrade-rules/package-imports-v8/updateAngularMaterialImportsRule.d.ts +0 -22
  407. package/schematics/ng-update/upgrade-rules/package-imports-v8/updateAngularMaterialImportsRule.js.map +0 -1
  408. package/typings/schematics/ng-update/upgrade-rules/misc-checks/checkClassInheritanceMiscRule.d.ts +0 -19
  409. package/typings/schematics/ng-update/upgrade-rules/misc-checks/checkClassNamesMiscRule.d.ts +0 -19
  410. package/typings/schematics/ng-update/upgrade-rules/misc-checks/checkPropertyNamesMiscRule.d.ts +0 -19
  411. package/typings/schematics/ng-update/upgrade-rules/misc-checks/checkTemplateMiscRule.d.ts +0 -22
  412. package/typings/schematics/ng-update/upgrade-rules/misc-ripples-v7/rippleSpeedFactorTemplateRule.d.ts +0 -22
  413. package/typings/schematics/ng-update/upgrade-rules/package-imports-v8/updateAngularMaterialImportsRule.d.ts +0 -22
@@ -1 +1 @@
1
- {"version":3,"file":"material-form-field.umd.min.js","sources":["../../node_modules/tslib/tslib.es6.js","../../src/material/form-field/form-field-errors.ts","../../src/material/form-field/error.ts","../../src/material/form-field/form-field-animations.ts","../../src/material/form-field/form-field-control.ts","../../src/material/form-field/hint.ts","../../src/material/form-field/label.ts","../../src/material/form-field/placeholder.ts","../../src/material/form-field/prefix.ts","../../src/material/form-field/suffix.ts","../../src/material/form-field/form-field.ts","../../src/material/form-field/form-field-module.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)\r\n t[p[i]] = s[p[i]];\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\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 {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","/**\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 {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 */\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\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} 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/** Prefix to be placed in 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/** 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 {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 */\nclass 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 */\nconst _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 for 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._outlineGapCalculationNeededOnStable = true;\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', {static: false}) underlineRef: ElementRef;\n\n @ViewChild('connectionContainer', {static: true}) _connectionContainerRef: ElementRef;\n @ViewChild('inputContainer', {static: false}) _inputContainerRef: ElementRef;\n @ViewChild('label', {static: false}) private _label: ElementRef;\n\n @ContentChild(MatFormFieldControl, {static: false}) _controlNonStatic: MatFormFieldControl<any>;\n @ContentChild(MatFormFieldControl, {static: true}) _controlStatic: MatFormFieldControl<any>;\n get _control() {\n // TODO(crisbeto): we need this hacky workaround in order to support both Ivy\n // and ViewEngine. We should clean this up once Ivy is the default renderer.\n return this._explicitFormFieldControl || this._controlNonStatic || this._controlStatic;\n }\n set _control(value) {\n this._explicitFormFieldControl = value;\n }\n private _explicitFormFieldControl: MatFormFieldControl<any>;\n\n @ContentChild(MatLabel, {static: false}) _labelChildNonStatic: MatLabel;\n @ContentChild(MatLabel, {static: true}) _labelChildStatic: MatLabel;\n get _labelChild() {\n return this._labelChildNonStatic || this._labelChildStatic;\n }\n\n @ContentChild(MatPlaceholder, {static: false}) _placeholderChild: MatPlaceholder;\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, 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 _defaults:\n MatFormFieldDefaultOptions, private _platform: Platform, 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(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 // Note that we have to run outside of the `NgZone` explicitly,\n // in order to avoid throwing users into an infinite loop\n // if `zone-patch-rxjs` is included.\n this._ngZone.runOutsideAngular(() => {\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._outlineGapCalculationNeededOnStable = true;\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.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 * @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"],"names":["__extends","d","b","__","this","constructor","extendStatics","prototype","Object","create","getMatFormFieldPlaceholderConflictError","Error","getMatFormFieldDuplicatedHintError","align","getMatFormFieldMissingControlError","setPrototypeOf","__proto__","Array","p","hasOwnProperty","nextUniqueId","MatError","id","type","Directive","args","selector","host","class","role","[attr.id]","Input","matFormFieldAnimations","transitionMessages","trigger","state","style","opacity","transform","transition","animate","MatFormFieldControl","MatHint","[class.mat-right]","[attr.align]","MatLabel","MatPlaceholder","MatPrefix","MatSuffix","MatFormFieldBase","_elementRef","_MatFormFieldMixinBase","mixinColor","MAT_FORM_FIELD_DEFAULT_OPTIONS","InjectionToken","MatFormField","_super","_changeDetectorRef","labelOptions","_dir","_defaults","_platform","_ngZone","_animationMode","_this","call","_outlineGapCalculationNeededImmediately","_outlineGapCalculationNeededOnStable","_destroyed","Subject","_showAlwaysAnimate","_subscriptAnimationState","_hintLabel","_hintLabelId","_labelId","_labelOptions","floatLabel","float","_animationsEnabled","appearance","tslib_1.__extends","defineProperty","_appearance","value","oldValue","_hideRequiredMarker","coerceBooleanProperty","_processHints","_floatLabel","markForCheck","_explicitFormFieldControl","_controlNonStatic","_controlStatic","_labelChildNonStatic","_labelChildStatic","getConnectedOverlayOrigin","_connectionContainerRef","ngAfterContentInit","_validateControlChild","control","_control","controlType","nativeElement","classList","add","stateChanges","pipe","startWith","subscribe","_validatePlaceholders","_syncDescribedByIds","ngControl","valueChanges","takeUntil","runOutsideAngular","onStable","asObservable","updateOutlineGap","merge","_prefixChildren","changes","_suffixChildren","_hintChildren","_errorChildren","change","ngAfterContentChecked","ngAfterViewInit","detectChanges","ngOnDestroy","next","complete","_shouldForward","prop","_hasPlaceholder","placeholder","_placeholderChild","_hasLabel","_labelChild","_shouldLabelFloat","_canLabelFloat","shouldLabelFloat","_shouldAlwaysFloat","_hideControlPlaceholder","_hasFloatingLabel","_getDisplayedMessages","length","errorState","_animateAndLockLabel","fromEvent","_label","take","_validateHints","startHint_1","endHint_1","forEach","hint","hintLabel","ids","startHint","find","endHint","push","map","error","setDescribedByIds","labelEl","children","textContent","trim","isBrowser","document","contains","startWidth","gapWidth","container","startEls","querySelectorAll","gapEls","containerRect","getBoundingClientRect","width","height","containerStart","_getStartEnd","labelStart","labelWidth","_i","_a","offsetWidth","outlineGapPadding","i","item","rect","right","left","Component","exportAs","template","[class.mat-form-field-appearance-standard]","[class.mat-form-field-appearance-fill]","[class.mat-form-field-appearance-outline]","[class.mat-form-field-appearance-legacy]","[class.mat-form-field-invalid]","[class.mat-form-field-can-float]","[class.mat-form-field-should-float]","[class.mat-form-field-has-label]","[class.mat-form-field-hide-placeholder]","[class.mat-form-field-disabled]","[class.mat-form-field-autofilled]","[class.mat-focused]","[class.mat-accent]","[class.mat-warn]","[class.ng-untouched]","[class.ng-touched]","[class.ng-pristine]","[class.ng-dirty]","[class.ng-valid]","[class.ng-invalid]","[class.ng-pending]","[class._mat-animation-noopable]","inputs","encapsulation","ViewEncapsulation","None","changeDetection","ChangeDetectionStrategy","OnPush","ctorParameters","ElementRef","ChangeDetectorRef","undefined","decorators","Optional","Inject","MAT_LABEL_GLOBAL_OPTIONS","Directionality","Platform","propDecorators","hideRequiredMarker","underlineRef","ViewChild","static","_inputContainerRef","ContentChild","ContentChildren","MatFormFieldModule","NgModule","declarations","imports","CommonModule","ObserversModule","exports"],"mappings":"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"}
1
+ {"version":3,"file":"material-form-field.umd.min.js","sources":["../../node_modules/tslib/tslib.es6.js","../../src/material/form-field/form-field-errors.ts","../../src/material/form-field/error.ts","../../src/material/form-field/form-field-animations.ts","../../src/material/form-field/form-field-control.ts","../../src/material/form-field/hint.ts","../../src/material/form-field/label.ts","../../src/material/form-field/placeholder.ts","../../src/material/form-field/prefix.ts","../../src/material/form-field/suffix.ts","../../src/material/form-field/form-field.ts","../../src/material/form-field/form-field-module.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)\r\n t[p[i]] = s[p[i]];\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\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 {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","/**\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 {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 */\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\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} 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/** Prefix to be placed in 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/** 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 {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 */\nclass 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 */\nconst _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 for 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._outlineGapCalculationNeededOnStable = true;\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', {static: false}) underlineRef: ElementRef;\n\n @ViewChild('connectionContainer', {static: true}) _connectionContainerRef: ElementRef;\n @ViewChild('inputContainer', {static: false}) _inputContainerRef: ElementRef;\n @ViewChild('label', {static: false}) private _label: ElementRef;\n\n @ContentChild(MatFormFieldControl, {static: false}) _controlNonStatic: MatFormFieldControl<any>;\n @ContentChild(MatFormFieldControl, {static: true}) _controlStatic: MatFormFieldControl<any>;\n get _control() {\n // TODO(crisbeto): we need this hacky workaround in order to support both Ivy\n // and ViewEngine. We should clean this up once Ivy is the default renderer.\n return this._explicitFormFieldControl || this._controlNonStatic || this._controlStatic;\n }\n set _control(value) {\n this._explicitFormFieldControl = value;\n }\n private _explicitFormFieldControl: MatFormFieldControl<any>;\n\n @ContentChild(MatLabel, {static: false}) _labelChildNonStatic: MatLabel;\n @ContentChild(MatLabel, {static: true}) _labelChildStatic: MatLabel;\n get _labelChild() {\n return this._labelChildNonStatic || this._labelChildStatic;\n }\n\n @ContentChild(MatPlaceholder, {static: false}) _placeholderChild: MatPlaceholder;\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, 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 _defaults:\n MatFormFieldDefaultOptions, private _platform: Platform, 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(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 // Note that we have to run outside of the `NgZone` explicitly,\n // in order to avoid throwing users into an infinite loop\n // if `zone-patch-rxjs` is included.\n this._ngZone.runOutsideAngular(() => {\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._outlineGapCalculationNeededOnStable = true;\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.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 * @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"],"names":["__extends","d","b","__","this","constructor","extendStatics","prototype","Object","create","getMatFormFieldPlaceholderConflictError","Error","getMatFormFieldDuplicatedHintError","align","getMatFormFieldMissingControlError","setPrototypeOf","__proto__","Array","p","hasOwnProperty","nextUniqueId","MatError","id","type","Directive","args","selector","host","class","role","[attr.id]","Input","matFormFieldAnimations","transitionMessages","trigger","state","style","opacity","transform","transition","animate","MatFormFieldControl","MatHint","[class.mat-right]","[attr.align]","MatLabel","MatPlaceholder","MatPrefix","MatSuffix","MatFormFieldBase","_elementRef","_MatFormFieldMixinBase","mixinColor","MAT_FORM_FIELD_DEFAULT_OPTIONS","InjectionToken","MatFormField","_super","_changeDetectorRef","labelOptions","_dir","_defaults","_platform","_ngZone","_animationMode","_this","call","_outlineGapCalculationNeededImmediately","_outlineGapCalculationNeededOnStable","_destroyed","Subject","_showAlwaysAnimate","_subscriptAnimationState","_hintLabel","_hintLabelId","_labelId","_labelOptions","floatLabel","float","_animationsEnabled","appearance","tslib_1.__extends","defineProperty","_appearance","value","oldValue","_hideRequiredMarker","coerceBooleanProperty","_processHints","_floatLabel","markForCheck","_explicitFormFieldControl","_controlNonStatic","_controlStatic","_labelChildNonStatic","_labelChildStatic","getConnectedOverlayOrigin","_connectionContainerRef","ngAfterContentInit","_validateControlChild","control","_control","controlType","nativeElement","classList","add","stateChanges","pipe","startWith","subscribe","_validatePlaceholders","_syncDescribedByIds","ngControl","valueChanges","takeUntil","runOutsideAngular","onStable","asObservable","updateOutlineGap","merge","_prefixChildren","changes","_suffixChildren","_hintChildren","_errorChildren","change","ngAfterContentChecked","ngAfterViewInit","detectChanges","ngOnDestroy","next","complete","_shouldForward","prop","_hasPlaceholder","placeholder","_placeholderChild","_hasLabel","_labelChild","_shouldLabelFloat","_canLabelFloat","shouldLabelFloat","_shouldAlwaysFloat","_hideControlPlaceholder","_hasFloatingLabel","_getDisplayedMessages","length","errorState","_animateAndLockLabel","fromEvent","_label","take","_validateHints","startHint_1","endHint_1","forEach","hint","hintLabel","ids","startHint","find","endHint","push","map","error","setDescribedByIds","labelEl","children","textContent","trim","isBrowser","document","contains","startWidth","gapWidth","container","startEls","querySelectorAll","gapEls","containerRect","getBoundingClientRect","width","height","containerStart","_getStartEnd","labelStart","labelWidth","_i","_a","offsetWidth","outlineGapPadding","i","item","rect","right","left","Component","exportAs","template","[class.mat-form-field-appearance-standard]","[class.mat-form-field-appearance-fill]","[class.mat-form-field-appearance-outline]","[class.mat-form-field-appearance-legacy]","[class.mat-form-field-invalid]","[class.mat-form-field-can-float]","[class.mat-form-field-should-float]","[class.mat-form-field-has-label]","[class.mat-form-field-hide-placeholder]","[class.mat-form-field-disabled]","[class.mat-form-field-autofilled]","[class.mat-focused]","[class.mat-accent]","[class.mat-warn]","[class.ng-untouched]","[class.ng-touched]","[class.ng-pristine]","[class.ng-dirty]","[class.ng-valid]","[class.ng-invalid]","[class.ng-pending]","[class._mat-animation-noopable]","inputs","encapsulation","ViewEncapsulation","None","changeDetection","ChangeDetectionStrategy","OnPush","ctorParameters","ElementRef","ChangeDetectorRef","undefined","decorators","Optional","Inject","MAT_LABEL_GLOBAL_OPTIONS","Directionality","Platform","propDecorators","hideRequiredMarker","underlineRef","ViewChild","static","_inputContainerRef","ContentChild","ContentChildren","MatFormFieldModule","NgModule","declarations","imports","CommonModule","ObserversModule","exports"],"mappings":"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"}
@@ -1268,7 +1268,7 @@ exports.MatGridTileText = MatGridTileText;
1268
1268
  exports.MatGridAvatarCssMatStyler = MatGridAvatarCssMatStyler;
1269
1269
  exports.MatGridTileHeaderCssMatStyler = MatGridTileHeaderCssMatStyler;
1270
1270
  exports.MatGridTileFooterCssMatStyler = MatGridTileFooterCssMatStyler;
1271
- exports.ɵa11 = MAT_GRID_LIST;
1271
+ exports.ɵa4 = MAT_GRID_LIST;
1272
1272
 
1273
1273
  Object.defineProperty(exports, '__esModule', { value: true });
1274
1274
 
@@ -5,5 +5,5 @@
5
5
  * Use of this source code is governed by an MIT-style license that can be
6
6
  * found in the LICENSE file at https://angular.io/license
7
7
  */
8
- !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@angular/core"),require("@angular/material/core"),require("@angular/cdk/coercion"),require("@angular/cdk/bidi")):"function"==typeof define&&define.amd?define("@angular/material/grid-list",["exports","@angular/core","@angular/material/core","@angular/cdk/coercion","@angular/cdk/bidi"],e):e((t.ng=t.ng||{},t.ng.material=t.ng.material||{},t.ng.material.gridList={}),t.ng.core,t.ng.material.core,t.ng.cdk.coercion,t.ng.cdk.bidi)}(this,function(t,e,i,r,n){"use strict";function o(t,e){function i(){this.constructor=t}l(t,e),t.prototype=null===e?Object.create(e):(i.prototype=e.prototype,new i)}function a(t){return"calc("+t+")"}function s(t){return t.match(/([A-Za-z%]+)$/)?t:t+"px"}var l=function(t,e){return(l=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i])})(t,e)},d=new e.InjectionToken("MAT_GRID_LIST"),h=function(){function t(t,e){this._element=t,this._gridList=e,this._rowspan=1,this._colspan=1}return Object.defineProperty(t.prototype,"rowspan",{get:function(){return this._rowspan},set:function(t){this._rowspan=Math.round(r.coerceNumberProperty(t))},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"colspan",{get:function(){return this._colspan},set:function(t){this._colspan=Math.round(r.coerceNumberProperty(t))},enumerable:!0,configurable:!0}),t.prototype._setStyle=function(t,e){this._element.nativeElement.style[t]=e},t.decorators=[{type:e.Component,args:[{selector:"mat-grid-tile",exportAs:"matGridTile",host:{class:"mat-grid-tile"},template:'<figure class="mat-figure"><ng-content></ng-content></figure>',styles:[".mat-grid-list{display:block;position:relative}.mat-grid-tile{display:block;position:absolute;overflow:hidden}.mat-grid-tile .mat-figure{top:0;left:0;right:0;bottom:0;position:absolute;display:flex;align-items:center;justify-content:center;height:100%;padding:0;margin:0}.mat-grid-tile .mat-grid-tile-footer,.mat-grid-tile .mat-grid-tile-header{display:flex;align-items:center;height:48px;color:#fff;background:rgba(0,0,0,.38);overflow:hidden;padding:0 16px;position:absolute;left:0;right:0}.mat-grid-tile .mat-grid-tile-footer>*,.mat-grid-tile .mat-grid-tile-header>*{margin:0;padding:0;font-weight:400;font-size:inherit}.mat-grid-tile .mat-grid-tile-footer.mat-2-line,.mat-grid-tile .mat-grid-tile-header.mat-2-line{height:68px}.mat-grid-tile .mat-grid-list-text{display:flex;flex-direction:column;width:100%;box-sizing:border-box;overflow:hidden}.mat-grid-tile .mat-grid-list-text>*{margin:0;padding:0;font-weight:400;font-size:inherit}.mat-grid-tile .mat-grid-list-text:empty{display:none}.mat-grid-tile .mat-grid-tile-header{top:0}.mat-grid-tile .mat-grid-tile-footer{bottom:0}.mat-grid-tile .mat-grid-avatar{padding-right:16px}[dir=rtl] .mat-grid-tile .mat-grid-avatar{padding-right:0;padding-left:16px}.mat-grid-tile .mat-grid-avatar:empty{display:none}"],encapsulation:e.ViewEncapsulation.None,changeDetection:e.ChangeDetectionStrategy.OnPush}]}],t.ctorParameters=function(){return[{type:e.ElementRef},{type:void 0,decorators:[{type:e.Optional},{type:e.Inject,args:[d]}]}]},t.propDecorators={rowspan:[{type:e.Input}],colspan:[{type:e.Input}]},t}(),c=function(){function t(t){this._element=t}return t.prototype.ngAfterContentInit=function(){i.setLines(this._lines,this._element)},t.decorators=[{type:e.Component,args:[{selector:"mat-grid-tile-header, mat-grid-tile-footer",template:'<ng-content select="[mat-grid-avatar], [matGridAvatar]"></ng-content><div class="mat-grid-list-text"><ng-content select="[mat-line], [matLine]"></ng-content></div><ng-content></ng-content>',changeDetection:e.ChangeDetectionStrategy.OnPush,encapsulation:e.ViewEncapsulation.None}]}],t.ctorParameters=function(){return[{type:e.ElementRef}]},t.propDecorators={_lines:[{type:e.ContentChildren,args:[i.MatLine]}]},t}(),g=function(){function t(){}return t.decorators=[{type:e.Directive,args:[{selector:"[mat-grid-avatar], [matGridAvatar]",host:{class:"mat-grid-avatar"}}]}],t}(),p=function(){function t(){}return t.decorators=[{type:e.Directive,args:[{selector:"mat-grid-tile-header",host:{class:"mat-grid-tile-header"}}]}],t}(),u=function(){function t(){}return t.decorators=[{type:e.Directive,args:[{selector:"mat-grid-tile-footer",host:{class:"mat-grid-tile-footer"}}]}],t}(),f=function(){function t(){this.columnIndex=0,this.rowIndex=0}return Object.defineProperty(t.prototype,"rowCount",{get:function(){return this.rowIndex+1},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"rowspan",{get:function(){var t=Math.max.apply(Math,this.tracker);return t>1?this.rowCount+t-1:this.rowCount},enumerable:!0,configurable:!0}),t.prototype.update=function(t,e){var i=this;this.columnIndex=0,this.rowIndex=0,this.tracker=new Array(t),this.tracker.fill(0,0,this.tracker.length),this.positions=e.map(function(t){return i._trackTile(t)})},t.prototype._trackTile=function(t){var e=this._findMatchingGap(t.colspan);return this._markTilePosition(e,t),this.columnIndex=e+t.colspan,new m(this.rowIndex,e)},t.prototype._findMatchingGap=function(t){if(t>this.tracker.length)throw Error("mat-grid-list: tile with colspan "+t+' is wider than grid with cols="'+this.tracker.length+'".');var e=-1,i=-1;do{this.columnIndex+t>this.tracker.length?(this._nextRow(),e=this.tracker.indexOf(0,this.columnIndex),i=this._findGapEndIndex(e)):(e=this.tracker.indexOf(0,this.columnIndex),-1!=e?(i=this._findGapEndIndex(e),this.columnIndex=e+1):(this._nextRow(),e=this.tracker.indexOf(0,this.columnIndex),i=this._findGapEndIndex(e)))}while(i-e<t||0==i);return Math.max(e,0)},t.prototype._nextRow=function(){this.columnIndex=0,this.rowIndex++;for(var t=0;t<this.tracker.length;t++)this.tracker[t]=Math.max(0,this.tracker[t]-1)},t.prototype._findGapEndIndex=function(t){for(var e=t+1;e<this.tracker.length;e++)if(0!=this.tracker[e])return e;return this.tracker.length},t.prototype._markTilePosition=function(t,e){for(var i=0;i<e.colspan;i++)this.tracker[t+i]=e.rowspan},t}(),m=function(){function t(t,e){this.row=t,this.col=e}return t}(),y=/^-?\d+((\.\d+)?[A-Za-z%$]?)+$/,_=function(){function t(){this._rows=0,this._rowspan=0}return t.prototype.init=function(t,e,i,r){this._gutterSize=s(t),this._rows=e.rowCount,this._rowspan=e.rowspan,this._cols=i,this._direction=r},t.prototype.getBaseTileSize=function(t,e){return"("+t+"% - ("+this._gutterSize+" * "+e+"))"},t.prototype.getTilePosition=function(t,e){return 0===e?"0":a("("+t+" + "+this._gutterSize+") * "+e)},t.prototype.getTileSize=function(t,e){return"("+t+" * "+e+") + ("+(e-1)+" * "+this._gutterSize+")"},t.prototype.setStyle=function(t,e,i){var r=100/this._cols,n=(this._cols-1)/this._cols;this.setColStyles(t,i,r,n),this.setRowStyles(t,e,r,n)},t.prototype.setColStyles=function(t,e,i,r){var n=this.getBaseTileSize(i,r),o="rtl"===this._direction?"right":"left";t._setStyle(o,this.getTilePosition(n,e)),t._setStyle("width",a(this.getTileSize(n,t.colspan)))},t.prototype.getGutterSpan=function(){return this._gutterSize+" * ("+this._rowspan+" - 1)"},t.prototype.getTileSpan=function(t){return this._rowspan+" * "+this.getTileSize(t,1)},t.prototype.getComputedHeight=function(){return null},t}(),w=function(t){function e(e){var i=t.call(this)||this;return i.fixedRowHeight=e,i}return o(e,t),e.prototype.init=function(e,i,r,n){if(t.prototype.init.call(this,e,i,r,n),this.fixedRowHeight=s(this.fixedRowHeight),!y.test(this.fixedRowHeight))throw Error('Invalid value "'+this.fixedRowHeight+'" set as rowHeight.')},e.prototype.setRowStyles=function(t,e){t._setStyle("top",this.getTilePosition(this.fixedRowHeight,e)),t._setStyle("height",a(this.getTileSize(this.fixedRowHeight,t.rowspan)))},e.prototype.getComputedHeight=function(){return["height",a(this.getTileSpan(this.fixedRowHeight)+" + "+this.getGutterSpan())]},e.prototype.reset=function(t){t._setListStyle(["height",null]),t._tiles&&t._tiles.forEach(function(t){t._setStyle("top",null),t._setStyle("height",null)})},e}(_),x=function(t){function e(e){var i=t.call(this)||this;return i._parseRatio(e),i}return o(e,t),e.prototype.setRowStyles=function(t,e,i,r){var n=i/this.rowHeightRatio;this.baseTileHeight=this.getBaseTileSize(n,r),t._setStyle("marginTop",this.getTilePosition(this.baseTileHeight,e)),t._setStyle("paddingTop",a(this.getTileSize(this.baseTileHeight,t.rowspan)))},e.prototype.getComputedHeight=function(){return["paddingBottom",a(this.getTileSpan(this.baseTileHeight)+" + "+this.getGutterSpan())]},e.prototype.reset=function(t){t._setListStyle(["paddingBottom",null]),t._tiles.forEach(function(t){t._setStyle("marginTop",null),t._setStyle("paddingTop",null)})},e.prototype._parseRatio=function(t){var e=t.split(":");if(2!==e.length)throw Error('mat-grid-list: invalid ratio given for row-height: "'+t+'"');this.rowHeightRatio=parseFloat(e[0])/parseFloat(e[1])},e}(_),S=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return o(e,t),e.prototype.setRowStyles=function(t,e){var i=100/this._rowspan,r=(this._rows-1)/this._rows,n=this.getBaseTileSize(i,r);t._setStyle("top",this.getTilePosition(n,e)),t._setStyle("height",a(this.getTileSize(n,t.rowspan)))},e.prototype.reset=function(t){t._tiles&&t._tiles.forEach(function(t){t._setStyle("top",null),t._setStyle("height",null)})},e}(_),b=function(){function t(t,e){this._element=t,this._dir=e,this._gutter="1px"}return Object.defineProperty(t.prototype,"cols",{get:function(){return this._cols},set:function(t){this._cols=Math.max(1,Math.round(r.coerceNumberProperty(t)))},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"gutterSize",{get:function(){return this._gutter},set:function(t){this._gutter=""+(null==t?"":t)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"rowHeight",{get:function(){return this._rowHeight},set:function(t){var e=""+(null==t?"":t);e!==this._rowHeight&&(this._rowHeight=e,this._setTileStyler(this._rowHeight))},enumerable:!0,configurable:!0}),t.prototype.ngOnInit=function(){this._checkCols(),this._checkRowHeight()},t.prototype.ngAfterContentChecked=function(){this._layoutTiles()},t.prototype._checkCols=function(){if(!this.cols)throw Error('mat-grid-list: must pass in number of columns. Example: <mat-grid-list cols="3">')},t.prototype._checkRowHeight=function(){this._rowHeight||this._setTileStyler("1:1")},t.prototype._setTileStyler=function(t){this._tileStyler&&this._tileStyler.reset(this),"fit"===t?this._tileStyler=new S:t&&t.indexOf(":")>-1?this._tileStyler=new x(t):this._tileStyler=new w(t)},t.prototype._layoutTiles=function(){var t=this;this._tileCoordinator||(this._tileCoordinator=new f);var e=this._tileCoordinator,i=this._tiles.filter(function(e){return!e._gridList||e._gridList===t}),r=this._dir?this._dir.value:"ltr";this._tileCoordinator.update(this.cols,i),this._tileStyler.init(this.gutterSize,e,this.cols,r),i.forEach(function(i,r){var n=e.positions[r];t._tileStyler.setStyle(i,n.row,n.col)}),this._setListStyle(this._tileStyler.getComputedHeight())},t.prototype._setListStyle=function(t){t&&(this._element.nativeElement.style[t[0]]=t[1])},t.decorators=[{type:e.Component,args:[{selector:"mat-grid-list",exportAs:"matGridList",template:"<div><ng-content></ng-content></div>",styles:[".mat-grid-list{display:block;position:relative}.mat-grid-tile{display:block;position:absolute;overflow:hidden}.mat-grid-tile .mat-figure{top:0;left:0;right:0;bottom:0;position:absolute;display:flex;align-items:center;justify-content:center;height:100%;padding:0;margin:0}.mat-grid-tile .mat-grid-tile-footer,.mat-grid-tile .mat-grid-tile-header{display:flex;align-items:center;height:48px;color:#fff;background:rgba(0,0,0,.38);overflow:hidden;padding:0 16px;position:absolute;left:0;right:0}.mat-grid-tile .mat-grid-tile-footer>*,.mat-grid-tile .mat-grid-tile-header>*{margin:0;padding:0;font-weight:400;font-size:inherit}.mat-grid-tile .mat-grid-tile-footer.mat-2-line,.mat-grid-tile .mat-grid-tile-header.mat-2-line{height:68px}.mat-grid-tile .mat-grid-list-text{display:flex;flex-direction:column;width:100%;box-sizing:border-box;overflow:hidden}.mat-grid-tile .mat-grid-list-text>*{margin:0;padding:0;font-weight:400;font-size:inherit}.mat-grid-tile .mat-grid-list-text:empty{display:none}.mat-grid-tile .mat-grid-tile-header{top:0}.mat-grid-tile .mat-grid-tile-footer{bottom:0}.mat-grid-tile .mat-grid-avatar{padding-right:16px}[dir=rtl] .mat-grid-tile .mat-grid-avatar{padding-right:0;padding-left:16px}.mat-grid-tile .mat-grid-avatar:empty{display:none}"],host:{class:"mat-grid-list"},providers:[{provide:d,useExisting:t}],changeDetection:e.ChangeDetectionStrategy.OnPush,encapsulation:e.ViewEncapsulation.None}]}],t.ctorParameters=function(){return[{type:e.ElementRef},{type:n.Directionality,decorators:[{type:e.Optional}]}]},t.propDecorators={_tiles:[{type:e.ContentChildren,args:[h,{descendants:!0}]}],cols:[{type:e.Input}],gutterSize:[{type:e.Input}],rowHeight:[{type:e.Input}]},t}(),v=function(){function t(){}return t.decorators=[{type:e.NgModule,args:[{imports:[i.MatLineModule,i.MatCommonModule],exports:[b,h,c,i.MatLineModule,i.MatCommonModule,p,u,g],declarations:[b,h,c,p,u,g]}]}],t}();t.MatGridListModule=v,t.MatGridList=b,t.MatGridTile=h,t.MatGridTileText=c,t.MatGridAvatarCssMatStyler=g,t.MatGridTileHeaderCssMatStyler=p,t.MatGridTileFooterCssMatStyler=u,t.ɵa11=d,Object.defineProperty(t,"__esModule",{value:!0})});
8
+ !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@angular/core"),require("@angular/material/core"),require("@angular/cdk/coercion"),require("@angular/cdk/bidi")):"function"==typeof define&&define.amd?define("@angular/material/grid-list",["exports","@angular/core","@angular/material/core","@angular/cdk/coercion","@angular/cdk/bidi"],e):e((t.ng=t.ng||{},t.ng.material=t.ng.material||{},t.ng.material.gridList={}),t.ng.core,t.ng.material.core,t.ng.cdk.coercion,t.ng.cdk.bidi)}(this,function(t,e,i,r,n){"use strict";function o(t,e){function i(){this.constructor=t}l(t,e),t.prototype=null===e?Object.create(e):(i.prototype=e.prototype,new i)}function a(t){return"calc("+t+")"}function s(t){return t.match(/([A-Za-z%]+)$/)?t:t+"px"}var l=function(t,e){return(l=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i])})(t,e)},d=new e.InjectionToken("MAT_GRID_LIST"),h=function(){function t(t,e){this._element=t,this._gridList=e,this._rowspan=1,this._colspan=1}return Object.defineProperty(t.prototype,"rowspan",{get:function(){return this._rowspan},set:function(t){this._rowspan=Math.round(r.coerceNumberProperty(t))},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"colspan",{get:function(){return this._colspan},set:function(t){this._colspan=Math.round(r.coerceNumberProperty(t))},enumerable:!0,configurable:!0}),t.prototype._setStyle=function(t,e){this._element.nativeElement.style[t]=e},t.decorators=[{type:e.Component,args:[{selector:"mat-grid-tile",exportAs:"matGridTile",host:{class:"mat-grid-tile"},template:'<figure class="mat-figure"><ng-content></ng-content></figure>',styles:[".mat-grid-list{display:block;position:relative}.mat-grid-tile{display:block;position:absolute;overflow:hidden}.mat-grid-tile .mat-figure{top:0;left:0;right:0;bottom:0;position:absolute;display:flex;align-items:center;justify-content:center;height:100%;padding:0;margin:0}.mat-grid-tile .mat-grid-tile-footer,.mat-grid-tile .mat-grid-tile-header{display:flex;align-items:center;height:48px;color:#fff;background:rgba(0,0,0,.38);overflow:hidden;padding:0 16px;position:absolute;left:0;right:0}.mat-grid-tile .mat-grid-tile-footer>*,.mat-grid-tile .mat-grid-tile-header>*{margin:0;padding:0;font-weight:400;font-size:inherit}.mat-grid-tile .mat-grid-tile-footer.mat-2-line,.mat-grid-tile .mat-grid-tile-header.mat-2-line{height:68px}.mat-grid-tile .mat-grid-list-text{display:flex;flex-direction:column;width:100%;box-sizing:border-box;overflow:hidden}.mat-grid-tile .mat-grid-list-text>*{margin:0;padding:0;font-weight:400;font-size:inherit}.mat-grid-tile .mat-grid-list-text:empty{display:none}.mat-grid-tile .mat-grid-tile-header{top:0}.mat-grid-tile .mat-grid-tile-footer{bottom:0}.mat-grid-tile .mat-grid-avatar{padding-right:16px}[dir=rtl] .mat-grid-tile .mat-grid-avatar{padding-right:0;padding-left:16px}.mat-grid-tile .mat-grid-avatar:empty{display:none}"],encapsulation:e.ViewEncapsulation.None,changeDetection:e.ChangeDetectionStrategy.OnPush}]}],t.ctorParameters=function(){return[{type:e.ElementRef},{type:void 0,decorators:[{type:e.Optional},{type:e.Inject,args:[d]}]}]},t.propDecorators={rowspan:[{type:e.Input}],colspan:[{type:e.Input}]},t}(),c=function(){function t(t){this._element=t}return t.prototype.ngAfterContentInit=function(){i.setLines(this._lines,this._element)},t.decorators=[{type:e.Component,args:[{selector:"mat-grid-tile-header, mat-grid-tile-footer",template:'<ng-content select="[mat-grid-avatar], [matGridAvatar]"></ng-content><div class="mat-grid-list-text"><ng-content select="[mat-line], [matLine]"></ng-content></div><ng-content></ng-content>',changeDetection:e.ChangeDetectionStrategy.OnPush,encapsulation:e.ViewEncapsulation.None}]}],t.ctorParameters=function(){return[{type:e.ElementRef}]},t.propDecorators={_lines:[{type:e.ContentChildren,args:[i.MatLine]}]},t}(),g=function(){function t(){}return t.decorators=[{type:e.Directive,args:[{selector:"[mat-grid-avatar], [matGridAvatar]",host:{class:"mat-grid-avatar"}}]}],t}(),p=function(){function t(){}return t.decorators=[{type:e.Directive,args:[{selector:"mat-grid-tile-header",host:{class:"mat-grid-tile-header"}}]}],t}(),u=function(){function t(){}return t.decorators=[{type:e.Directive,args:[{selector:"mat-grid-tile-footer",host:{class:"mat-grid-tile-footer"}}]}],t}(),f=function(){function t(){this.columnIndex=0,this.rowIndex=0}return Object.defineProperty(t.prototype,"rowCount",{get:function(){return this.rowIndex+1},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"rowspan",{get:function(){var t=Math.max.apply(Math,this.tracker);return t>1?this.rowCount+t-1:this.rowCount},enumerable:!0,configurable:!0}),t.prototype.update=function(t,e){var i=this;this.columnIndex=0,this.rowIndex=0,this.tracker=new Array(t),this.tracker.fill(0,0,this.tracker.length),this.positions=e.map(function(t){return i._trackTile(t)})},t.prototype._trackTile=function(t){var e=this._findMatchingGap(t.colspan);return this._markTilePosition(e,t),this.columnIndex=e+t.colspan,new m(this.rowIndex,e)},t.prototype._findMatchingGap=function(t){if(t>this.tracker.length)throw Error("mat-grid-list: tile with colspan "+t+' is wider than grid with cols="'+this.tracker.length+'".');var e=-1,i=-1;do{this.columnIndex+t>this.tracker.length?(this._nextRow(),e=this.tracker.indexOf(0,this.columnIndex),i=this._findGapEndIndex(e)):(e=this.tracker.indexOf(0,this.columnIndex),-1!=e?(i=this._findGapEndIndex(e),this.columnIndex=e+1):(this._nextRow(),e=this.tracker.indexOf(0,this.columnIndex),i=this._findGapEndIndex(e)))}while(i-e<t||0==i);return Math.max(e,0)},t.prototype._nextRow=function(){this.columnIndex=0,this.rowIndex++;for(var t=0;t<this.tracker.length;t++)this.tracker[t]=Math.max(0,this.tracker[t]-1)},t.prototype._findGapEndIndex=function(t){for(var e=t+1;e<this.tracker.length;e++)if(0!=this.tracker[e])return e;return this.tracker.length},t.prototype._markTilePosition=function(t,e){for(var i=0;i<e.colspan;i++)this.tracker[t+i]=e.rowspan},t}(),m=function(){function t(t,e){this.row=t,this.col=e}return t}(),y=/^-?\d+((\.\d+)?[A-Za-z%$]?)+$/,_=function(){function t(){this._rows=0,this._rowspan=0}return t.prototype.init=function(t,e,i,r){this._gutterSize=s(t),this._rows=e.rowCount,this._rowspan=e.rowspan,this._cols=i,this._direction=r},t.prototype.getBaseTileSize=function(t,e){return"("+t+"% - ("+this._gutterSize+" * "+e+"))"},t.prototype.getTilePosition=function(t,e){return 0===e?"0":a("("+t+" + "+this._gutterSize+") * "+e)},t.prototype.getTileSize=function(t,e){return"("+t+" * "+e+") + ("+(e-1)+" * "+this._gutterSize+")"},t.prototype.setStyle=function(t,e,i){var r=100/this._cols,n=(this._cols-1)/this._cols;this.setColStyles(t,i,r,n),this.setRowStyles(t,e,r,n)},t.prototype.setColStyles=function(t,e,i,r){var n=this.getBaseTileSize(i,r),o="rtl"===this._direction?"right":"left";t._setStyle(o,this.getTilePosition(n,e)),t._setStyle("width",a(this.getTileSize(n,t.colspan)))},t.prototype.getGutterSpan=function(){return this._gutterSize+" * ("+this._rowspan+" - 1)"},t.prototype.getTileSpan=function(t){return this._rowspan+" * "+this.getTileSize(t,1)},t.prototype.getComputedHeight=function(){return null},t}(),w=function(t){function e(e){var i=t.call(this)||this;return i.fixedRowHeight=e,i}return o(e,t),e.prototype.init=function(e,i,r,n){if(t.prototype.init.call(this,e,i,r,n),this.fixedRowHeight=s(this.fixedRowHeight),!y.test(this.fixedRowHeight))throw Error('Invalid value "'+this.fixedRowHeight+'" set as rowHeight.')},e.prototype.setRowStyles=function(t,e){t._setStyle("top",this.getTilePosition(this.fixedRowHeight,e)),t._setStyle("height",a(this.getTileSize(this.fixedRowHeight,t.rowspan)))},e.prototype.getComputedHeight=function(){return["height",a(this.getTileSpan(this.fixedRowHeight)+" + "+this.getGutterSpan())]},e.prototype.reset=function(t){t._setListStyle(["height",null]),t._tiles&&t._tiles.forEach(function(t){t._setStyle("top",null),t._setStyle("height",null)})},e}(_),x=function(t){function e(e){var i=t.call(this)||this;return i._parseRatio(e),i}return o(e,t),e.prototype.setRowStyles=function(t,e,i,r){var n=i/this.rowHeightRatio;this.baseTileHeight=this.getBaseTileSize(n,r),t._setStyle("marginTop",this.getTilePosition(this.baseTileHeight,e)),t._setStyle("paddingTop",a(this.getTileSize(this.baseTileHeight,t.rowspan)))},e.prototype.getComputedHeight=function(){return["paddingBottom",a(this.getTileSpan(this.baseTileHeight)+" + "+this.getGutterSpan())]},e.prototype.reset=function(t){t._setListStyle(["paddingBottom",null]),t._tiles.forEach(function(t){t._setStyle("marginTop",null),t._setStyle("paddingTop",null)})},e.prototype._parseRatio=function(t){var e=t.split(":");if(2!==e.length)throw Error('mat-grid-list: invalid ratio given for row-height: "'+t+'"');this.rowHeightRatio=parseFloat(e[0])/parseFloat(e[1])},e}(_),S=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return o(e,t),e.prototype.setRowStyles=function(t,e){var i=100/this._rowspan,r=(this._rows-1)/this._rows,n=this.getBaseTileSize(i,r);t._setStyle("top",this.getTilePosition(n,e)),t._setStyle("height",a(this.getTileSize(n,t.rowspan)))},e.prototype.reset=function(t){t._tiles&&t._tiles.forEach(function(t){t._setStyle("top",null),t._setStyle("height",null)})},e}(_),b=function(){function t(t,e){this._element=t,this._dir=e,this._gutter="1px"}return Object.defineProperty(t.prototype,"cols",{get:function(){return this._cols},set:function(t){this._cols=Math.max(1,Math.round(r.coerceNumberProperty(t)))},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"gutterSize",{get:function(){return this._gutter},set:function(t){this._gutter=""+(null==t?"":t)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"rowHeight",{get:function(){return this._rowHeight},set:function(t){var e=""+(null==t?"":t);e!==this._rowHeight&&(this._rowHeight=e,this._setTileStyler(this._rowHeight))},enumerable:!0,configurable:!0}),t.prototype.ngOnInit=function(){this._checkCols(),this._checkRowHeight()},t.prototype.ngAfterContentChecked=function(){this._layoutTiles()},t.prototype._checkCols=function(){if(!this.cols)throw Error('mat-grid-list: must pass in number of columns. Example: <mat-grid-list cols="3">')},t.prototype._checkRowHeight=function(){this._rowHeight||this._setTileStyler("1:1")},t.prototype._setTileStyler=function(t){this._tileStyler&&this._tileStyler.reset(this),"fit"===t?this._tileStyler=new S:t&&t.indexOf(":")>-1?this._tileStyler=new x(t):this._tileStyler=new w(t)},t.prototype._layoutTiles=function(){var t=this;this._tileCoordinator||(this._tileCoordinator=new f);var e=this._tileCoordinator,i=this._tiles.filter(function(e){return!e._gridList||e._gridList===t}),r=this._dir?this._dir.value:"ltr";this._tileCoordinator.update(this.cols,i),this._tileStyler.init(this.gutterSize,e,this.cols,r),i.forEach(function(i,r){var n=e.positions[r];t._tileStyler.setStyle(i,n.row,n.col)}),this._setListStyle(this._tileStyler.getComputedHeight())},t.prototype._setListStyle=function(t){t&&(this._element.nativeElement.style[t[0]]=t[1])},t.decorators=[{type:e.Component,args:[{selector:"mat-grid-list",exportAs:"matGridList",template:"<div><ng-content></ng-content></div>",styles:[".mat-grid-list{display:block;position:relative}.mat-grid-tile{display:block;position:absolute;overflow:hidden}.mat-grid-tile .mat-figure{top:0;left:0;right:0;bottom:0;position:absolute;display:flex;align-items:center;justify-content:center;height:100%;padding:0;margin:0}.mat-grid-tile .mat-grid-tile-footer,.mat-grid-tile .mat-grid-tile-header{display:flex;align-items:center;height:48px;color:#fff;background:rgba(0,0,0,.38);overflow:hidden;padding:0 16px;position:absolute;left:0;right:0}.mat-grid-tile .mat-grid-tile-footer>*,.mat-grid-tile .mat-grid-tile-header>*{margin:0;padding:0;font-weight:400;font-size:inherit}.mat-grid-tile .mat-grid-tile-footer.mat-2-line,.mat-grid-tile .mat-grid-tile-header.mat-2-line{height:68px}.mat-grid-tile .mat-grid-list-text{display:flex;flex-direction:column;width:100%;box-sizing:border-box;overflow:hidden}.mat-grid-tile .mat-grid-list-text>*{margin:0;padding:0;font-weight:400;font-size:inherit}.mat-grid-tile .mat-grid-list-text:empty{display:none}.mat-grid-tile .mat-grid-tile-header{top:0}.mat-grid-tile .mat-grid-tile-footer{bottom:0}.mat-grid-tile .mat-grid-avatar{padding-right:16px}[dir=rtl] .mat-grid-tile .mat-grid-avatar{padding-right:0;padding-left:16px}.mat-grid-tile .mat-grid-avatar:empty{display:none}"],host:{class:"mat-grid-list"},providers:[{provide:d,useExisting:t}],changeDetection:e.ChangeDetectionStrategy.OnPush,encapsulation:e.ViewEncapsulation.None}]}],t.ctorParameters=function(){return[{type:e.ElementRef},{type:n.Directionality,decorators:[{type:e.Optional}]}]},t.propDecorators={_tiles:[{type:e.ContentChildren,args:[h,{descendants:!0}]}],cols:[{type:e.Input}],gutterSize:[{type:e.Input}],rowHeight:[{type:e.Input}]},t}(),v=function(){function t(){}return t.decorators=[{type:e.NgModule,args:[{imports:[i.MatLineModule,i.MatCommonModule],exports:[b,h,c,i.MatLineModule,i.MatCommonModule,p,u,g],declarations:[b,h,c,p,u,g]}]}],t}();t.MatGridListModule=v,t.MatGridList=b,t.MatGridTile=h,t.MatGridTileText=c,t.MatGridAvatarCssMatStyler=g,t.MatGridTileHeaderCssMatStyler=p,t.MatGridTileFooterCssMatStyler=u,t.ɵa4=d,Object.defineProperty(t,"__esModule",{value:!0})});
9
9
  //# sourceMappingURL=material-grid-list.umd.min.js.map
@@ -501,13 +501,22 @@ var MatListOption = /** @class */ (function (_super) {
501
501
  */
502
502
  function () {
503
503
  var _this = this;
504
+ /** @type {?} */
505
+ var list = this.selectionList;
506
+ if (list._value && list._value.some((/**
507
+ * @param {?} value
508
+ * @return {?}
509
+ */
510
+ function (value) { return list.compareWith(value, _this._value); }))) {
511
+ this._setSelected(true);
512
+ }
513
+ /** @type {?} */
514
+ var wasSelected = this._selected;
504
515
  // List options that are selected at initialization can't be reported properly to the form
505
516
  // control. This is because it takes some time until the selection-list knows about all
506
517
  // available options. Also it can happen that the ControlValueAccessor has an initial value
507
518
  // that should be used instead. Deferring the value change report to the next tick ensures
508
519
  // that the form control value is not being overwritten.
509
- /** @type {?} */
510
- var wasSelected = this._selected;
511
520
  Promise.resolve().then((/**
512
521
  * @return {?}
513
522
  */
@@ -715,8 +724,8 @@ var MatListOption = /** @class */ (function (_super) {
715
724
  // its theme. The accent theme palette is the default and doesn't need to be set.
716
725
  '[class.mat-primary]': 'color === "primary"',
717
726
  '[class.mat-warn]': 'color === "warn"',
718
- '[attr.aria-selected]': 'selected.toString()',
719
- '[attr.aria-disabled]': 'disabled.toString()',
727
+ '[attr.aria-selected]': 'selected',
728
+ '[attr.aria-disabled]': 'disabled',
720
729
  },
721
730
  template: "<div class=\"mat-list-item-content\" [class.mat-list-item-content-reverse]=\"checkboxPosition == 'after'\"><div mat-ripple class=\"mat-list-item-ripple\" [matRippleTrigger]=\"_getHostElement()\" [matRippleDisabled]=\"_isRippleDisabled()\"></div><mat-pseudo-checkbox [state]=\"selected ? 'checked' : 'unchecked'\" [disabled]=\"disabled\"></mat-pseudo-checkbox><div class=\"mat-list-text\" #text><ng-content></ng-content></div><ng-content select=\"[mat-list-avatar], [mat-list-icon], [matListAvatar], [matListIcon]\"></ng-content></div>",
722
731
  encapsulation: core.ViewEncapsulation.None,
@@ -765,6 +774,17 @@ var MatSelectionList = /** @class */ (function (_super) {
765
774
  * Theme color of the selection list. This sets the checkbox color for all list options.
766
775
  */
767
776
  _this.color = 'accent';
777
+ /**
778
+ * Function used for comparing an option against the selected value when determining which
779
+ * options should appear as selected. The first argument is the value of an options. The second
780
+ * one is a value from the selected value. A boolean must be returned.
781
+ */
782
+ _this.compareWith = (/**
783
+ * @param {?} a1
784
+ * @param {?} a2
785
+ * @return {?}
786
+ */
787
+ function (a1, a2) { return a1 === a2; });
768
788
  _this._disabled = false;
769
789
  /**
770
790
  * The currently selected options.
@@ -779,9 +799,9 @@ var MatSelectionList = /** @class */ (function (_super) {
779
799
  */
780
800
  function (_) { });
781
801
  /**
782
- * Subscription to sync value changes in the SelectionModel back to the SelectionList.
802
+ * Emits when the list has been destroyed.
783
803
  */
784
- _this._modelChanges = rxjs.Subscription.EMPTY;
804
+ _this._destroyed = new rxjs.Subject();
785
805
  /**
786
806
  * View to model callback that should be called if the list or its options lost focus.
787
807
  */
@@ -831,12 +851,11 @@ var MatSelectionList = /** @class */ (function (_super) {
831
851
  */
832
852
  function () { return false; }))
833
853
  .withAllowedModifierKeys(['shiftKey']);
834
- if (this._tempValues) {
835
- this._setOptionsFromValues(this._tempValues);
836
- this._tempValues = null;
854
+ if (this._value) {
855
+ this._setOptionsFromValues(this._value);
837
856
  }
838
857
  // Sync external changes to the model back to the options.
839
- this._modelChanges = this.selectedOptions.onChange.subscribe((/**
858
+ this.selectedOptions.onChange.pipe(operators.takeUntil(this._destroyed)).subscribe((/**
840
859
  * @param {?} event
841
860
  * @return {?}
842
861
  */
@@ -880,8 +899,9 @@ var MatSelectionList = /** @class */ (function (_super) {
880
899
  * @return {?}
881
900
  */
882
901
  function () {
883
- this._destroyed = true;
884
- this._modelChanges.unsubscribe();
902
+ this._destroyed.next();
903
+ this._destroyed.complete();
904
+ this._isDestroyed = true;
885
905
  };
886
906
  /** Focuses the selection list. */
887
907
  /**
@@ -1028,8 +1048,11 @@ var MatSelectionList = /** @class */ (function (_super) {
1028
1048
  // Stop reporting value changes after the list has been destroyed. This avoids
1029
1049
  // cases where the list might wrongly reset its value once it is removed, but
1030
1050
  // the form control is still live.
1031
- if (this.options && !this._destroyed) {
1032
- this._onChange(this._getSelectedOptionValues());
1051
+ if (this.options && !this._isDestroyed) {
1052
+ /** @type {?} */
1053
+ var value = this._getSelectedOptionValues();
1054
+ this._onChange(value);
1055
+ this._value = value;
1033
1056
  }
1034
1057
  };
1035
1058
  /** Emits a change event if the selected state of an option changed. */
@@ -1058,12 +1081,10 @@ var MatSelectionList = /** @class */ (function (_super) {
1058
1081
  * @return {?}
1059
1082
  */
1060
1083
  function (values) {
1084
+ this._value = values;
1061
1085
  if (this.options) {
1062
1086
  this._setOptionsFromValues(values || []);
1063
1087
  }
1064
- else {
1065
- this._tempValues = values;
1066
- }
1067
1088
  };
1068
1089
  /** Implemented as a part of ControlValueAccessor. */
1069
1090
  /**
@@ -1140,10 +1161,7 @@ var MatSelectionList = /** @class */ (function (_super) {
1140
1161
  function (option) {
1141
1162
  // Skip options that are already in the model. This allows us to handle cases
1142
1163
  // where the same primitive value is selected multiple times.
1143
- if (option.selected) {
1144
- return false;
1145
- }
1146
- return _this.compareWith ? _this.compareWith(option.value, value) : option.value === value;
1164
+ return option.selected ? false : _this.compareWith(option.value, value);
1147
1165
  }));
1148
1166
  if (correspondingOption) {
1149
1167
  correspondingOption._setSelected(true);