@angular/material 10.1.1 → 10.2.0

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 (663) hide show
  1. package/_theming.scss +46 -20
  2. package/autocomplete/autocomplete-origin.d.ts +8 -5
  3. package/autocomplete/autocomplete-trigger.d.ts +23 -17
  4. package/autocomplete/autocomplete.d.ts +23 -12
  5. package/autocomplete/index.metadata.json +1 -1
  6. package/badge/badge.d.ts +3 -1
  7. package/badge/index.metadata.json +1 -1
  8. package/bottom-sheet/index.metadata.json +1 -1
  9. package/bundles/material-autocomplete-testing.umd.js +316 -256
  10. package/bundles/material-autocomplete-testing.umd.js.map +1 -1
  11. package/bundles/material-autocomplete-testing.umd.min.js +2 -16
  12. package/bundles/material-autocomplete-testing.umd.min.js.map +1 -1
  13. package/bundles/material-autocomplete.umd.js +553 -436
  14. package/bundles/material-autocomplete.umd.js.map +1 -1
  15. package/bundles/material-autocomplete.umd.min.js +3 -25
  16. package/bundles/material-autocomplete.umd.min.js.map +1 -1
  17. package/bundles/material-badge-testing.umd.js +301 -243
  18. package/bundles/material-badge-testing.umd.js.map +1 -1
  19. package/bundles/material-badge-testing.umd.min.js +2 -16
  20. package/bundles/material-badge-testing.umd.min.js.map +1 -1
  21. package/bundles/material-badge.umd.js +356 -282
  22. package/bundles/material-badge.umd.js.map +1 -1
  23. package/bundles/material-badge.umd.min.js +2 -2
  24. package/bundles/material-badge.umd.min.js.map +1 -1
  25. package/bundles/material-bottom-sheet-testing.umd.js +302 -244
  26. package/bundles/material-bottom-sheet-testing.umd.js.map +1 -1
  27. package/bundles/material-bottom-sheet-testing.umd.min.js +2 -16
  28. package/bundles/material-bottom-sheet-testing.umd.min.js.map +1 -1
  29. package/bundles/material-bottom-sheet.umd.js +376 -302
  30. package/bundles/material-bottom-sheet.umd.js.map +1 -1
  31. package/bundles/material-bottom-sheet.umd.min.js +17 -2
  32. package/bundles/material-bottom-sheet.umd.min.js.map +1 -1
  33. package/bundles/material-button-testing.umd.js +310 -252
  34. package/bundles/material-button-testing.umd.js.map +1 -1
  35. package/bundles/material-button-testing.umd.min.js +2 -16
  36. package/bundles/material-button-testing.umd.min.js.map +1 -1
  37. package/bundles/material-button-toggle-testing.umd.js +304 -261
  38. package/bundles/material-button-toggle-testing.umd.js.map +1 -1
  39. package/bundles/material-button-toggle-testing.umd.min.js +2 -31
  40. package/bundles/material-button-toggle-testing.umd.min.js.map +1 -1
  41. package/bundles/material-button-toggle.umd.js +388 -322
  42. package/bundles/material-button-toggle.umd.js.map +1 -1
  43. package/bundles/material-button-toggle.umd.min.js +2 -10
  44. package/bundles/material-button-toggle.umd.min.js.map +1 -1
  45. package/bundles/material-button.umd.js +375 -309
  46. package/bundles/material-button.umd.js.map +1 -1
  47. package/bundles/material-button.umd.min.js +2 -10
  48. package/bundles/material-button.umd.min.js.map +1 -1
  49. package/bundles/material-card-testing.umd.js +306 -250
  50. package/bundles/material-card-testing.umd.js.map +1 -1
  51. package/bundles/material-card-testing.umd.min.js +2 -16
  52. package/bundles/material-card-testing.umd.min.js.map +1 -1
  53. package/bundles/material-card.umd.js +139 -139
  54. package/bundles/material-card.umd.js.map +1 -1
  55. package/bundles/material-card.umd.min.js +2 -2
  56. package/bundles/material-card.umd.min.js.map +1 -1
  57. package/bundles/material-checkbox-testing.umd.js +302 -244
  58. package/bundles/material-checkbox-testing.umd.js.map +1 -1
  59. package/bundles/material-checkbox-testing.umd.min.js +2 -16
  60. package/bundles/material-checkbox-testing.umd.min.js.map +1 -1
  61. package/bundles/material-checkbox.umd.js +371 -312
  62. package/bundles/material-checkbox.umd.js.map +1 -1
  63. package/bundles/material-checkbox.umd.min.js +2 -9
  64. package/bundles/material-checkbox.umd.min.js.map +1 -1
  65. package/bundles/material-chips-testing.umd.js +802 -0
  66. package/bundles/material-chips-testing.umd.js.map +1 -0
  67. package/bundles/material-chips-testing.umd.min.js +30 -0
  68. package/bundles/material-chips-testing.umd.min.js.map +1 -0
  69. package/bundles/material-chips.umd.js +598 -551
  70. package/bundles/material-chips.umd.js.map +1 -1
  71. package/bundles/material-chips.umd.min.js +18 -3
  72. package/bundles/material-chips.umd.min.js.map +1 -1
  73. package/bundles/material-core-testing.umd.js +304 -261
  74. package/bundles/material-core-testing.umd.js.map +1 -1
  75. package/bundles/material-core-testing.umd.min.js +2 -31
  76. package/bundles/material-core-testing.umd.min.js.map +1 -1
  77. package/bundles/material-core.umd.js +605 -540
  78. package/bundles/material-core.umd.js.map +1 -1
  79. package/bundles/material-core.umd.min.js +37 -12
  80. package/bundles/material-core.umd.min.js.map +1 -1
  81. package/bundles/material-datepicker-testing.umd.js +1342 -0
  82. package/bundles/material-datepicker-testing.umd.js.map +1 -0
  83. package/bundles/material-datepicker-testing.umd.min.js +30 -0
  84. package/bundles/material-datepicker-testing.umd.min.js.map +1 -0
  85. package/bundles/material-datepicker.umd.js +1014 -981
  86. package/bundles/material-datepicker.umd.js.map +1 -1
  87. package/bundles/material-datepicker.umd.min.js +43 -9
  88. package/bundles/material-datepicker.umd.min.js.map +1 -1
  89. package/bundles/material-dialog-testing.umd.js +303 -245
  90. package/bundles/material-dialog-testing.umd.js.map +1 -1
  91. package/bundles/material-dialog-testing.umd.min.js +2 -16
  92. package/bundles/material-dialog-testing.umd.min.js.map +1 -1
  93. package/bundles/material-dialog.umd.js +597 -476
  94. package/bundles/material-dialog.umd.js.map +1 -1
  95. package/bundles/material-dialog.umd.min.js +10 -8
  96. package/bundles/material-dialog.umd.min.js.map +1 -1
  97. package/bundles/material-divider-testing.umd.js +300 -242
  98. package/bundles/material-divider-testing.umd.js.map +1 -1
  99. package/bundles/material-divider-testing.umd.min.js +2 -16
  100. package/bundles/material-divider-testing.umd.min.js.map +1 -1
  101. package/bundles/material-divider.umd.js +28 -28
  102. package/bundles/material-divider.umd.js.map +1 -1
  103. package/bundles/material-divider.umd.min.js +2 -9
  104. package/bundles/material-divider.umd.min.js.map +1 -1
  105. package/bundles/material-expansion-testing.umd.js +303 -254
  106. package/bundles/material-expansion-testing.umd.js.map +1 -1
  107. package/bundles/material-expansion-testing.umd.min.js +2 -17
  108. package/bundles/material-expansion-testing.umd.min.js.map +1 -1
  109. package/bundles/material-expansion.umd.js +471 -433
  110. package/bundles/material-expansion.umd.js.map +1 -1
  111. package/bundles/material-expansion.umd.min.js +12 -4
  112. package/bundles/material-expansion.umd.min.js.map +1 -1
  113. package/bundles/material-form-field-testing-control.umd.js +299 -233
  114. package/bundles/material-form-field-testing-control.umd.js.map +1 -1
  115. package/bundles/material-form-field-testing-control.umd.min.js.map +1 -1
  116. package/bundles/material-form-field-testing.umd.js +301 -243
  117. package/bundles/material-form-field-testing.umd.js.map +1 -1
  118. package/bundles/material-form-field-testing.umd.min.js +3 -17
  119. package/bundles/material-form-field-testing.umd.min.js.map +1 -1
  120. package/bundles/material-form-field.umd.js +480 -417
  121. package/bundles/material-form-field.umd.js.map +1 -1
  122. package/bundles/material-form-field.umd.min.js +51 -4
  123. package/bundles/material-form-field.umd.min.js.map +1 -1
  124. package/bundles/material-grid-list-testing.umd.js +311 -260
  125. package/bundles/material-grid-list-testing.umd.js.map +1 -1
  126. package/bundles/material-grid-list-testing.umd.min.js +2 -24
  127. package/bundles/material-grid-list-testing.umd.min.js.map +1 -1
  128. package/bundles/material-grid-list.umd.js +414 -340
  129. package/bundles/material-grid-list.umd.js.map +1 -1
  130. package/bundles/material-grid-list.umd.min.js +20 -5
  131. package/bundles/material-grid-list.umd.min.js.map +1 -1
  132. package/bundles/material-icon-testing.umd.js +409 -12
  133. package/bundles/material-icon-testing.umd.js.map +1 -1
  134. package/bundles/material-icon-testing.umd.min.js +18 -3
  135. package/bundles/material-icon-testing.umd.min.js.map +1 -1
  136. package/bundles/material-icon.umd.js +404 -336
  137. package/bundles/material-icon.umd.js.map +1 -1
  138. package/bundles/material-icon.umd.min.js +2 -9
  139. package/bundles/material-icon.umd.min.js.map +1 -1
  140. package/bundles/material-input-testing.umd.js +309 -262
  141. package/bundles/material-input-testing.umd.js.map +1 -1
  142. package/bundles/material-input-testing.umd.min.js +2 -16
  143. package/bundles/material-input-testing.umd.min.js.map +1 -1
  144. package/bundles/material-input.umd.js +399 -333
  145. package/bundles/material-input.umd.js.map +1 -1
  146. package/bundles/material-input.umd.min.js +5 -18
  147. package/bundles/material-input.umd.min.js.map +1 -1
  148. package/bundles/material-list-testing.umd.js +333 -311
  149. package/bundles/material-list-testing.umd.js.map +1 -1
  150. package/bundles/material-list-testing.umd.min.js +1 -9
  151. package/bundles/material-list-testing.umd.min.js.map +1 -1
  152. package/bundles/material-list.umd.js +527 -466
  153. package/bundles/material-list.umd.js.map +1 -1
  154. package/bundles/material-list.umd.min.js +2 -10
  155. package/bundles/material-list.umd.min.js.map +1 -1
  156. package/bundles/material-menu-testing.umd.js +305 -247
  157. package/bundles/material-menu-testing.umd.js.map +1 -1
  158. package/bundles/material-menu-testing.umd.min.js +2 -17
  159. package/bundles/material-menu-testing.umd.min.js.map +1 -1
  160. package/bundles/material-menu.umd.js +476 -429
  161. package/bundles/material-menu.umd.js.map +1 -1
  162. package/bundles/material-menu.umd.min.js +3 -17
  163. package/bundles/material-menu.umd.min.js.map +1 -1
  164. package/bundles/material-paginator-testing.umd.js +302 -244
  165. package/bundles/material-paginator-testing.umd.js.map +1 -1
  166. package/bundles/material-paginator-testing.umd.min.js +2 -16
  167. package/bundles/material-paginator-testing.umd.min.js.map +1 -1
  168. package/bundles/material-paginator.umd.js +349 -280
  169. package/bundles/material-paginator.umd.js.map +1 -1
  170. package/bundles/material-paginator.umd.min.js +2 -9
  171. package/bundles/material-paginator.umd.min.js.map +1 -1
  172. package/bundles/material-progress-bar-testing.umd.js +301 -243
  173. package/bundles/material-progress-bar-testing.umd.js.map +1 -1
  174. package/bundles/material-progress-bar-testing.umd.min.js +2 -16
  175. package/bundles/material-progress-bar-testing.umd.min.js.map +1 -1
  176. package/bundles/material-progress-bar.umd.js +339 -266
  177. package/bundles/material-progress-bar.umd.js.map +1 -1
  178. package/bundles/material-progress-bar.umd.min.js +4 -3
  179. package/bundles/material-progress-bar.umd.min.js.map +1 -1
  180. package/bundles/material-progress-spinner-testing.umd.js +301 -243
  181. package/bundles/material-progress-spinner-testing.umd.js.map +1 -1
  182. package/bundles/material-progress-spinner-testing.umd.min.js +2 -16
  183. package/bundles/material-progress-spinner-testing.umd.min.js.map +1 -1
  184. package/bundles/material-progress-spinner.umd.js +420 -365
  185. package/bundles/material-progress-spinner.umd.js.map +1 -1
  186. package/bundles/material-progress-spinner.umd.min.js +3 -11
  187. package/bundles/material-progress-spinner.umd.min.js.map +1 -1
  188. package/bundles/material-radio-testing.umd.js +304 -246
  189. package/bundles/material-radio-testing.umd.js.map +1 -1
  190. package/bundles/material-radio-testing.umd.min.js +2 -17
  191. package/bundles/material-radio-testing.umd.min.js.map +1 -1
  192. package/bundles/material-radio.umd.js +405 -339
  193. package/bundles/material-radio.umd.js.map +1 -1
  194. package/bundles/material-radio.umd.min.js +2 -10
  195. package/bundles/material-radio.umd.min.js.map +1 -1
  196. package/bundles/material-select-testing.umd.js +316 -260
  197. package/bundles/material-select-testing.umd.js.map +1 -1
  198. package/bundles/material-select-testing.umd.min.js +2 -16
  199. package/bundles/material-select-testing.umd.min.js.map +1 -1
  200. package/bundles/material-select.umd.js +469 -389
  201. package/bundles/material-select.umd.js.map +1 -1
  202. package/bundles/material-select.umd.min.js +5 -12
  203. package/bundles/material-select.umd.min.js.map +1 -1
  204. package/bundles/material-sidenav-testing.umd.js +303 -252
  205. package/bundles/material-sidenav-testing.umd.js.map +1 -1
  206. package/bundles/material-sidenav-testing.umd.min.js +1 -23
  207. package/bundles/material-sidenav-testing.umd.min.js.map +1 -1
  208. package/bundles/material-sidenav.umd.js +535 -496
  209. package/bundles/material-sidenav.umd.js.map +1 -1
  210. package/bundles/material-sidenav.umd.min.js +3 -3
  211. package/bundles/material-sidenav.umd.min.js.map +1 -1
  212. package/bundles/material-slide-toggle-testing.umd.js +302 -244
  213. package/bundles/material-slide-toggle-testing.umd.js.map +1 -1
  214. package/bundles/material-slide-toggle-testing.umd.min.js +2 -16
  215. package/bundles/material-slide-toggle-testing.umd.min.js.map +1 -1
  216. package/bundles/material-slide-toggle.umd.js +373 -314
  217. package/bundles/material-slide-toggle.umd.js.map +1 -1
  218. package/bundles/material-slide-toggle.umd.min.js +2 -9
  219. package/bundles/material-slide-toggle.umd.min.js.map +1 -1
  220. package/bundles/material-slider-testing.umd.js +302 -236
  221. package/bundles/material-slider-testing.umd.js.map +1 -1
  222. package/bundles/material-slider-testing.umd.min.js +2 -9
  223. package/bundles/material-slider-testing.umd.min.js.map +1 -1
  224. package/bundles/material-slider.umd.js +479 -448
  225. package/bundles/material-slider.umd.js.map +1 -1
  226. package/bundles/material-slider.umd.min.js +4 -3
  227. package/bundles/material-slider.umd.min.js.map +1 -1
  228. package/bundles/material-snack-bar-testing.umd.js +304 -246
  229. package/bundles/material-snack-bar-testing.umd.js.map +1 -1
  230. package/bundles/material-snack-bar-testing.umd.min.js +2 -16
  231. package/bundles/material-snack-bar-testing.umd.min.js.map +1 -1
  232. package/bundles/material-snack-bar.umd.js +394 -317
  233. package/bundles/material-snack-bar.umd.js.map +1 -1
  234. package/bundles/material-snack-bar.umd.min.js +26 -2
  235. package/bundles/material-snack-bar.umd.min.js.map +1 -1
  236. package/bundles/material-sort-testing.umd.js +302 -243
  237. package/bundles/material-sort-testing.umd.js.map +1 -1
  238. package/bundles/material-sort-testing.umd.min.js +2 -17
  239. package/bundles/material-sort-testing.umd.min.js.map +1 -1
  240. package/bundles/material-sort.umd.js +383 -326
  241. package/bundles/material-sort.umd.js.map +1 -1
  242. package/bundles/material-sort.umd.min.js +3 -33
  243. package/bundles/material-sort.umd.min.js.map +1 -1
  244. package/bundles/material-stepper-testing.umd.js +727 -0
  245. package/bundles/material-stepper-testing.umd.js.map +1 -0
  246. package/bundles/material-stepper-testing.umd.min.js +30 -0
  247. package/bundles/material-stepper-testing.umd.min.js.map +1 -0
  248. package/bundles/material-stepper.umd.js +496 -446
  249. package/bundles/material-stepper.umd.js.map +1 -1
  250. package/bundles/material-stepper.umd.min.js +4 -11
  251. package/bundles/material-stepper.umd.min.js.map +1 -1
  252. package/bundles/material-table-testing.umd.js +317 -265
  253. package/bundles/material-table-testing.umd.js.map +1 -1
  254. package/bundles/material-table-testing.umd.min.js +2 -24
  255. package/bundles/material-table-testing.umd.min.js.map +1 -1
  256. package/bundles/material-table.umd.js +521 -465
  257. package/bundles/material-table.umd.js.map +1 -1
  258. package/bundles/material-table.umd.min.js +4 -11
  259. package/bundles/material-table.umd.min.js.map +1 -1
  260. package/bundles/material-tabs-testing.umd.js +303 -244
  261. package/bundles/material-tabs-testing.umd.js.map +1 -1
  262. package/bundles/material-tabs-testing.umd.min.js +1 -16
  263. package/bundles/material-tabs-testing.umd.min.js.map +1 -1
  264. package/bundles/material-tabs.umd.js +677 -646
  265. package/bundles/material-tabs.umd.js.map +1 -1
  266. package/bundles/material-tabs.umd.min.js +29 -4
  267. package/bundles/material-tabs.umd.min.js.map +1 -1
  268. package/bundles/material-toolbar-testing.umd.js +301 -243
  269. package/bundles/material-toolbar-testing.umd.js.map +1 -1
  270. package/bundles/material-toolbar-testing.umd.min.js +2 -16
  271. package/bundles/material-toolbar-testing.umd.min.js.map +1 -1
  272. package/bundles/material-toolbar.umd.js +350 -286
  273. package/bundles/material-toolbar.umd.js.map +1 -1
  274. package/bundles/material-toolbar.umd.min.js +4 -3
  275. package/bundles/material-toolbar.umd.min.js.map +1 -1
  276. package/bundles/material-tooltip-testing.umd.js +301 -243
  277. package/bundles/material-tooltip-testing.umd.js.map +1 -1
  278. package/bundles/material-tooltip-testing.umd.min.js +2 -16
  279. package/bundles/material-tooltip-testing.umd.min.js.map +1 -1
  280. package/bundles/material-tooltip.umd.js +424 -324
  281. package/bundles/material-tooltip.umd.js.map +1 -1
  282. package/bundles/material-tooltip.umd.min.js +11 -3
  283. package/bundles/material-tooltip.umd.min.js.map +1 -1
  284. package/bundles/material-tree.umd.js +446 -385
  285. package/bundles/material-tree.umd.js.map +1 -1
  286. package/bundles/material-tree.umd.min.js +3 -3
  287. package/bundles/material-tree.umd.min.js.map +1 -1
  288. package/button/index.metadata.json +1 -1
  289. package/chips/chip-default-options.d.ts +1 -1
  290. package/chips/chip-input.d.ts +1 -1
  291. package/chips/chip.d.ts +2 -2
  292. package/chips/index.metadata.json +1 -1
  293. package/chips/testing/chip-harness-filters.d.ts +28 -0
  294. package/chips/testing/chip-harness.d.ts +41 -0
  295. package/chips/testing/chip-input-harness.d.ts +47 -0
  296. package/chips/testing/chip-list-harness.d.ts +49 -0
  297. package/chips/testing/chip-remove-harness.d.ts +22 -0
  298. package/chips/testing/index.d.ts +8 -0
  299. package/chips/testing/package.json +9 -0
  300. package/chips/testing/public-api.d.ts +12 -0
  301. package/core/common-behaviors/color.d.ts +2 -0
  302. package/core/common-behaviors/constructor.d.ts +7 -0
  303. package/core/common-behaviors/disable-ripple.d.ts +2 -2
  304. package/core/common-behaviors/tabindex.d.ts +4 -2
  305. package/core/datetime/date-adapter.d.ts +9 -2
  306. package/core/index.metadata.json +1 -1
  307. package/core/option/optgroup.d.ts +8 -6
  308. package/core/option/option.d.ts +12 -9
  309. package/core/style/_vendor-prefixes.scss +5 -0
  310. package/datepicker/_datepicker-theme.scss +42 -21
  311. package/datepicker/calendar-body.d.ts +15 -4
  312. package/datepicker/calendar.d.ts +2 -7
  313. package/datepicker/date-range-input.d.ts +0 -5
  314. package/datepicker/date-range-selection-strategy.d.ts +5 -1
  315. package/datepicker/datepicker-base.d.ts +9 -11
  316. package/datepicker/datepicker-input-base.d.ts +0 -5
  317. package/datepicker/index.d.ts +4 -3
  318. package/datepicker/index.metadata.json +1 -1
  319. package/datepicker/month-view.d.ts +5 -9
  320. package/datepicker/multi-year-view.d.ts +3 -6
  321. package/datepicker/public-api.d.ts +1 -1
  322. package/datepicker/testing/calendar-cell-harness.d.ts +64 -0
  323. package/datepicker/testing/calendar-harness.d.ts +53 -0
  324. package/datepicker/testing/date-range-input-harness.d.ts +59 -0
  325. package/datepicker/testing/datepicker-harness-filters.d.ts +45 -0
  326. package/datepicker/testing/datepicker-input-harness-base.d.ts +43 -0
  327. package/datepicker/testing/datepicker-input-harness.d.ts +36 -0
  328. package/datepicker/testing/datepicker-toggle-harness.d.ts +28 -0
  329. package/datepicker/testing/datepicker-trigger-harness-base.d.ts +44 -0
  330. package/datepicker/testing/index.d.ts +8 -0
  331. package/datepicker/testing/package.json +9 -0
  332. package/datepicker/testing/public-api.d.ts +13 -0
  333. package/datepicker/year-view.d.ts +3 -6
  334. package/dialog/dialog-config.d.ts +1 -1
  335. package/dialog/dialog-container.d.ts +39 -22
  336. package/dialog/dialog-ref.d.ts +3 -3
  337. package/dialog/dialog.d.ts +25 -14
  338. package/dialog/index.metadata.json +1 -1
  339. package/esm2015/autocomplete/autocomplete-module.js +10 -5
  340. package/esm2015/autocomplete/autocomplete-origin.js +15 -9
  341. package/esm2015/autocomplete/autocomplete-trigger.js +73 -53
  342. package/esm2015/autocomplete/autocomplete.js +35 -22
  343. package/esm2015/autocomplete/testing/autocomplete-harness-filters.js +1 -0
  344. package/esm2015/badge/badge.js +15 -7
  345. package/esm2015/badge/testing/badge-harness-filters.js +1 -0
  346. package/esm2015/bottom-sheet/bottom-sheet-container.js +2 -2
  347. package/esm2015/bottom-sheet/bottom-sheet-ref.js +3 -3
  348. package/esm2015/bottom-sheet/bottom-sheet.js +14 -13
  349. package/esm2015/bottom-sheet/testing/bottom-sheet-harness-filters.js +1 -0
  350. package/esm2015/button/button.js +3 -3
  351. package/esm2015/button/testing/button-harness-filters.js +1 -0
  352. package/esm2015/button-toggle/button-toggle.js +2 -2
  353. package/esm2015/button-toggle/testing/button-toggle-group-harness-filters.js +1 -0
  354. package/esm2015/button-toggle/testing/button-toggle-group-harness.js +2 -2
  355. package/esm2015/button-toggle/testing/button-toggle-harness-filters.js +1 -0
  356. package/esm2015/button-toggle/testing/button-toggle-harness.js +2 -2
  357. package/esm2015/card/testing/card-harness-filters.js +1 -0
  358. package/esm2015/card/testing/card-harness.js +2 -2
  359. package/esm2015/checkbox/checkbox.js +2 -2
  360. package/esm2015/checkbox/testing/checkbox-harness-filters.js +1 -0
  361. package/esm2015/checkbox/testing/checkbox-harness.js +2 -2
  362. package/esm2015/chips/chip-default-options.js +1 -1
  363. package/esm2015/chips/chip-input.js +3 -8
  364. package/esm2015/chips/chip-list.js +7 -13
  365. package/esm2015/chips/chip-text-control.js +1 -0
  366. package/esm2015/chips/chip.js +1 -2
  367. package/esm2015/chips/testing/chip-harness-filters.js +2 -0
  368. package/esm2015/chips/testing/chip-harness.js +82 -0
  369. package/esm2015/chips/testing/chip-input-harness.js +101 -0
  370. package/esm2015/chips/testing/chip-list-harness.js +94 -0
  371. package/esm2015/chips/testing/chip-remove-harness.js +29 -0
  372. package/esm2015/chips/testing/index.js +9 -0
  373. package/esm2015/chips/testing/public-api.js +13 -0
  374. package/esm2015/chips/testing/testing.externs.js +0 -0
  375. package/esm2015/core/common-behaviors/color.js +3 -2
  376. package/esm2015/core/common-behaviors/common-module.js +6 -2
  377. package/esm2015/core/common-behaviors/constructor.js +2 -1
  378. package/esm2015/core/common-behaviors/disable-ripple.js +7 -3
  379. package/esm2015/core/common-behaviors/initialized.js +2 -2
  380. package/esm2015/core/common-behaviors/tabindex.js +11 -4
  381. package/esm2015/core/datetime/date-adapter.js +12 -3
  382. package/esm2015/core/datetime/native-date-adapter.js +11 -9
  383. package/esm2015/core/option/optgroup.js +16 -11
  384. package/esm2015/core/option/option.js +29 -16
  385. package/esm2015/core/testing/optgroup-harness-filters.js +1 -0
  386. package/esm2015/core/testing/option-harness-filters.js +1 -0
  387. package/esm2015/core/version.js +1 -1
  388. package/esm2015/datepicker/calendar-body.js +20 -5
  389. package/esm2015/datepicker/calendar.js +13 -18
  390. package/esm2015/datepicker/date-range-input-parts.js +5 -5
  391. package/esm2015/datepicker/date-range-input.js +15 -16
  392. package/esm2015/datepicker/date-range-picker.js +6 -2
  393. package/esm2015/datepicker/date-range-selection-strategy.js +12 -2
  394. package/esm2015/datepicker/date-selection-model.js +2 -2
  395. package/esm2015/datepicker/datepicker-base.js +17 -19
  396. package/esm2015/datepicker/datepicker-input-base.js +13 -18
  397. package/esm2015/datepicker/datepicker-input.js +7 -3
  398. package/esm2015/datepicker/datepicker-module.js +2 -7
  399. package/esm2015/datepicker/datepicker-toggle.js +3 -1
  400. package/esm2015/datepicker/index.js +5 -4
  401. package/esm2015/datepicker/month-view.js +19 -18
  402. package/esm2015/datepicker/multi-year-view.js +12 -16
  403. package/esm2015/datepicker/public-api.js +2 -2
  404. package/esm2015/datepicker/testing/calendar-cell-harness.js +181 -0
  405. package/esm2015/datepicker/testing/calendar-harness.js +91 -0
  406. package/esm2015/datepicker/testing/date-range-input-harness.js +116 -0
  407. package/esm2015/datepicker/testing/datepicker-harness-filters.js +9 -0
  408. package/esm2015/datepicker/testing/datepicker-input-harness-base.js +100 -0
  409. package/esm2015/datepicker/testing/datepicker-input-harness.js +69 -0
  410. package/esm2015/datepicker/testing/datepicker-toggle-harness.js +48 -0
  411. package/esm2015/datepicker/testing/datepicker-trigger-harness-base.js +77 -0
  412. package/esm2015/datepicker/testing/index.js +9 -0
  413. package/esm2015/datepicker/testing/public-api.js +14 -0
  414. package/esm2015/datepicker/testing/testing.externs.js +0 -0
  415. package/esm2015/datepicker/year-view.js +18 -20
  416. package/esm2015/dialog/dialog-config.js +1 -1
  417. package/esm2015/dialog/dialog-container.js +73 -50
  418. package/esm2015/dialog/dialog-content-directives.js +9 -3
  419. package/esm2015/dialog/dialog-ref.js +8 -8
  420. package/esm2015/dialog/dialog.js +58 -29
  421. package/esm2015/dialog/testing/dialog-harness-filters.js +1 -0
  422. package/esm2015/divider/testing/divider-harness-filters.js +1 -0
  423. package/esm2015/divider/testing/divider-harness.js +2 -2
  424. package/esm2015/expansion/accordion.js +3 -20
  425. package/esm2015/expansion/expansion-panel-header.js +7 -13
  426. package/esm2015/expansion/expansion-panel.js +7 -6
  427. package/esm2015/expansion/testing/expansion-harness-filters.js +1 -0
  428. package/esm2015/form-field/form-field-control.js +1 -1
  429. package/esm2015/form-field/form-field.js +26 -17
  430. package/esm2015/form-field/testing/form-field-harness-filters.js +1 -0
  431. package/esm2015/grid-list/grid-list.js +2 -2
  432. package/esm2015/grid-list/testing/grid-list-harness-filters.js +1 -0
  433. package/esm2015/grid-list/tile-coordinator.js +2 -2
  434. package/esm2015/grid-list/tile-styler.js +4 -3
  435. package/esm2015/icon/icon-registry.js +44 -52
  436. package/esm2015/icon/icon.js +13 -2
  437. package/esm2015/icon/testing/icon-harness-filters.js +9 -0
  438. package/esm2015/icon/testing/icon-harness.js +63 -0
  439. package/esm2015/icon/testing/public-api.js +3 -1
  440. package/esm2015/input/input.js +17 -10
  441. package/esm2015/input/testing/input-harness-filters.js +1 -0
  442. package/esm2015/input/testing/input-harness.js +7 -7
  443. package/esm2015/list/list.js +2 -2
  444. package/esm2015/list/selection-list.js +33 -31
  445. package/esm2015/list/testing/action-list-harness.js +2 -2
  446. package/esm2015/list/testing/list-harness-filters.js +1 -0
  447. package/esm2015/list/testing/list-harness.js +2 -2
  448. package/esm2015/list/testing/list-item-harness-base.js +2 -2
  449. package/esm2015/list/testing/nav-list-harness.js +2 -2
  450. package/esm2015/list/testing/selection-list-harness.js +3 -3
  451. package/esm2015/menu/menu-positions.js +1 -0
  452. package/esm2015/menu/menu-trigger.js +12 -6
  453. package/esm2015/menu/menu.js +11 -14
  454. package/esm2015/menu/testing/menu-harness-filters.js +1 -0
  455. package/esm2015/paginator/paginator.js +6 -3
  456. package/esm2015/paginator/testing/paginator-harness-filters.js +1 -0
  457. package/esm2015/progress-bar/testing/progress-bar-harness-filters.js +1 -0
  458. package/esm2015/progress-bar/testing/progress-bar-harness.js +2 -2
  459. package/esm2015/progress-spinner/progress-spinner.js +25 -16
  460. package/esm2015/progress-spinner/testing/progress-spinner-harness-filters.js +1 -0
  461. package/esm2015/progress-spinner/testing/progress-spinner-harness.js +2 -2
  462. package/esm2015/radio/radio.js +1 -1
  463. package/esm2015/radio/testing/radio-harness-filters.js +1 -0
  464. package/esm2015/radio/testing/radio-harness.js +3 -3
  465. package/esm2015/select/select.js +71 -57
  466. package/esm2015/select/testing/select-harness-filters.js +1 -0
  467. package/esm2015/select/testing/select-harness.js +2 -3
  468. package/esm2015/sidenav/drawer.js +23 -28
  469. package/esm2015/sidenav/testing/drawer-harness-filters.js +1 -0
  470. package/esm2015/slide-toggle/testing/slide-toggle-harness-filters.js +1 -0
  471. package/esm2015/slide-toggle/testing/slide-toggle-harness.js +2 -2
  472. package/esm2015/slider/slider.js +28 -31
  473. package/esm2015/slider/testing/slider-harness-filters.js +1 -0
  474. package/esm2015/slider/testing/slider-harness.js +2 -2
  475. package/esm2015/snack-bar/snack-bar-container.js +3 -3
  476. package/esm2015/snack-bar/snack-bar-ref.js +3 -3
  477. package/esm2015/snack-bar/snack-bar.js +13 -9
  478. package/esm2015/snack-bar/testing/snack-bar-harness-filters.js +1 -0
  479. package/esm2015/sort/sort-direction.js +1 -0
  480. package/esm2015/sort/sort-header.js +6 -3
  481. package/esm2015/sort/sort.js +11 -8
  482. package/esm2015/sort/testing/sort-harness-filters.js +1 -0
  483. package/esm2015/stepper/step-header.js +2 -2
  484. package/esm2015/stepper/stepper-button.js +3 -1
  485. package/esm2015/stepper/stepper.js +7 -4
  486. package/esm2015/stepper/testing/index.js +9 -0
  487. package/esm2015/stepper/testing/public-api.js +12 -0
  488. package/esm2015/stepper/testing/step-harness-filters.js +2 -0
  489. package/esm2015/stepper/testing/step-harness.js +132 -0
  490. package/esm2015/stepper/testing/stepper-button-harnesses.js +55 -0
  491. package/esm2015/stepper/testing/stepper-harness.js +57 -0
  492. package/esm2015/stepper/testing/testing.externs.js +0 -0
  493. package/esm2015/table/cell.js +15 -26
  494. package/esm2015/table/table-data-source.js +14 -1
  495. package/esm2015/table/table.js +11 -4
  496. package/esm2015/table/testing/table-harness-filters.js +1 -0
  497. package/esm2015/tabs/paginated-tab-header.js +3 -10
  498. package/esm2015/tabs/tab-nav-bar/tab-nav-bar.js +3 -3
  499. package/esm2015/tabs/tab.js +17 -10
  500. package/esm2015/tabs/testing/tab-harness-filters.js +1 -0
  501. package/esm2015/toolbar/testing/toolbar-harness-filters.js +1 -0
  502. package/esm2015/toolbar/testing/toolbar-harness.js +2 -2
  503. package/esm2015/toolbar/toolbar.js +15 -17
  504. package/esm2015/tooltip/testing/tooltip-harness-filters.js +1 -0
  505. package/esm2015/tooltip/tooltip.js +53 -31
  506. package/esm2015/tree/node.js +2 -2
  507. package/esm2015/tree/padding.js +7 -1
  508. package/esm2015/tree/toggle.js +8 -4
  509. package/expansion/expansion-panel-header.d.ts +6 -12
  510. package/expansion/expansion-panel.d.ts +5 -4
  511. package/expansion/index.metadata.json +1 -1
  512. package/fesm2015/autocomplete.js +128 -84
  513. package/fesm2015/autocomplete.js.map +1 -1
  514. package/fesm2015/badge.js +14 -6
  515. package/fesm2015/badge.js.map +1 -1
  516. package/fesm2015/bottom-sheet.js +17 -16
  517. package/fesm2015/bottom-sheet.js.map +1 -1
  518. package/fesm2015/button-toggle/testing.js +2 -2
  519. package/fesm2015/button-toggle/testing.js.map +1 -1
  520. package/fesm2015/button-toggle.js +1 -1
  521. package/fesm2015/button-toggle.js.map +1 -1
  522. package/fesm2015/button.js +2 -2
  523. package/fesm2015/button.js.map +1 -1
  524. package/fesm2015/card/testing.js +1 -1
  525. package/fesm2015/card/testing.js.map +1 -1
  526. package/fesm2015/checkbox/testing.js +1 -1
  527. package/fesm2015/checkbox/testing.js.map +1 -1
  528. package/fesm2015/checkbox.js +1 -1
  529. package/fesm2015/checkbox.js.map +1 -1
  530. package/fesm2015/chips/testing.js +316 -0
  531. package/fesm2015/chips/testing.js.map +1 -0
  532. package/fesm2015/chips.js +7 -19
  533. package/fesm2015/chips.js.map +1 -1
  534. package/fesm2015/core.js +87 -42
  535. package/fesm2015/core.js.map +1 -1
  536. package/fesm2015/datepicker/testing.js +690 -0
  537. package/fesm2015/datepicker/testing.js.map +1 -0
  538. package/fesm2015/datepicker.js +146 -134
  539. package/fesm2015/datepicker.js.map +1 -1
  540. package/fesm2015/dialog.js +143 -85
  541. package/fesm2015/dialog.js.map +1 -1
  542. package/fesm2015/divider/testing.js +1 -1
  543. package/fesm2015/divider/testing.js.map +1 -1
  544. package/fesm2015/expansion.js +9 -30
  545. package/fesm2015/expansion.js.map +1 -1
  546. package/fesm2015/form-field.js +25 -16
  547. package/fesm2015/form-field.js.map +1 -1
  548. package/fesm2015/grid-list.js +5 -4
  549. package/fesm2015/grid-list.js.map +1 -1
  550. package/fesm2015/icon/testing.js +72 -1
  551. package/fesm2015/icon/testing.js.map +1 -1
  552. package/fesm2015/icon.js +56 -53
  553. package/fesm2015/icon.js.map +1 -1
  554. package/fesm2015/input/testing.js +6 -6
  555. package/fesm2015/input/testing.js.map +1 -1
  556. package/fesm2015/input.js +15 -8
  557. package/fesm2015/input.js.map +1 -1
  558. package/fesm2015/list/testing.js +6 -6
  559. package/fesm2015/list/testing.js.map +1 -1
  560. package/fesm2015/list.js +33 -31
  561. package/fesm2015/list.js.map +1 -1
  562. package/fesm2015/menu.js +20 -17
  563. package/fesm2015/menu.js.map +1 -1
  564. package/fesm2015/paginator.js +5 -2
  565. package/fesm2015/paginator.js.map +1 -1
  566. package/fesm2015/progress-bar/testing.js +1 -1
  567. package/fesm2015/progress-bar/testing.js.map +1 -1
  568. package/fesm2015/progress-spinner/testing.js +1 -1
  569. package/fesm2015/progress-spinner/testing.js.map +1 -1
  570. package/fesm2015/progress-spinner.js +24 -15
  571. package/fesm2015/progress-spinner.js.map +1 -1
  572. package/fesm2015/radio/testing.js +2 -2
  573. package/fesm2015/radio/testing.js.map +1 -1
  574. package/fesm2015/radio.js.map +1 -1
  575. package/fesm2015/select/testing.js +1 -2
  576. package/fesm2015/select/testing.js.map +1 -1
  577. package/fesm2015/select.js +70 -56
  578. package/fesm2015/select.js.map +1 -1
  579. package/fesm2015/sidenav.js +22 -27
  580. package/fesm2015/sidenav.js.map +1 -1
  581. package/fesm2015/slide-toggle/testing.js +1 -1
  582. package/fesm2015/slide-toggle/testing.js.map +1 -1
  583. package/fesm2015/slider/testing.js +1 -1
  584. package/fesm2015/slider/testing.js.map +1 -1
  585. package/fesm2015/slider.js +27 -30
  586. package/fesm2015/slider.js.map +1 -1
  587. package/fesm2015/snack-bar.js +17 -13
  588. package/fesm2015/snack-bar.js.map +1 -1
  589. package/fesm2015/sort.js +15 -9
  590. package/fesm2015/sort.js.map +1 -1
  591. package/fesm2015/stepper/testing.js +258 -0
  592. package/fesm2015/stepper/testing.js.map +1 -0
  593. package/fesm2015/stepper.js +10 -5
  594. package/fesm2015/stepper.js.map +1 -1
  595. package/fesm2015/table.js +37 -28
  596. package/fesm2015/table.js.map +1 -1
  597. package/fesm2015/tabs.js +20 -20
  598. package/fesm2015/tabs.js.map +1 -1
  599. package/fesm2015/toolbar/testing.js +1 -1
  600. package/fesm2015/toolbar/testing.js.map +1 -1
  601. package/fesm2015/toolbar.js +14 -16
  602. package/fesm2015/toolbar.js.map +1 -1
  603. package/fesm2015/tooltip.js +52 -30
  604. package/fesm2015/tooltip.js.map +1 -1
  605. package/fesm2015/tree.js +13 -4
  606. package/fesm2015/tree.js.map +1 -1
  607. package/form-field/form-field-control.d.ts +5 -0
  608. package/form-field/form-field.d.ts +8 -5
  609. package/form-field/index.metadata.json +1 -1
  610. package/icon/icon-registry.d.ts +4 -6
  611. package/icon/icon.d.ts +3 -1
  612. package/icon/index.metadata.json +1 -1
  613. package/icon/testing/icon-harness-filters.d.ts +22 -0
  614. package/icon/testing/icon-harness.d.ts +29 -0
  615. package/icon/testing/index.metadata.json +1 -1
  616. package/icon/testing/public-api.d.ts +2 -0
  617. package/input/index.metadata.json +1 -1
  618. package/input/input.d.ts +6 -3
  619. package/list/index.metadata.json +1 -1
  620. package/list/selection-list.d.ts +3 -7
  621. package/menu/index.metadata.json +1 -1
  622. package/package.json +2 -2
  623. package/paginator/index.metadata.json +1 -1
  624. package/paginator/paginator.d.ts +5 -0
  625. package/prebuilt-themes/deeppurple-amber.css +1 -1
  626. package/prebuilt-themes/indigo-pink.css +1 -1
  627. package/prebuilt-themes/pink-bluegrey.css +1 -1
  628. package/prebuilt-themes/purple-green.css +1 -1
  629. package/progress-spinner/index.metadata.json +1 -1
  630. package/progress-spinner/progress-spinner.d.ts +9 -5
  631. package/radio/index.metadata.json +1 -1
  632. package/radio/radio.d.ts +2 -2
  633. package/schematics/ng-add/index.js +1 -1
  634. package/schematics/ng-generate/tree/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.html.template +1 -1
  635. package/schematics/ng-update/data/index.js +1 -1
  636. package/select/index.metadata.json +1 -1
  637. package/select/select.d.ts +9 -8
  638. package/sidenav/drawer.d.ts +5 -5
  639. package/sidenav/index.metadata.json +1 -1
  640. package/slider/index.metadata.json +1 -1
  641. package/slider/slider.d.ts +8 -10
  642. package/snack-bar/index.metadata.json +1 -1
  643. package/sort/index.metadata.json +1 -1
  644. package/stepper/index.metadata.json +1 -1
  645. package/stepper/stepper.d.ts +3 -1
  646. package/stepper/testing/index.d.ts +8 -0
  647. package/stepper/testing/package.json +9 -0
  648. package/stepper/testing/public-api.d.ts +11 -0
  649. package/stepper/testing/step-harness-filters.d.ts +37 -0
  650. package/stepper/testing/step-harness.d.ts +57 -0
  651. package/stepper/testing/stepper-button-harnesses.d.ts +41 -0
  652. package/stepper/testing/stepper-harness.d.ts +35 -0
  653. package/table/cell.d.ts +9 -5
  654. package/table/index.metadata.json +1 -1
  655. package/table/table.d.ts +2 -0
  656. package/tabs/index.metadata.json +1 -1
  657. package/tabs/tab.d.ts +8 -1
  658. package/toolbar/index.metadata.json +1 -1
  659. package/tooltip/index.metadata.json +1 -1
  660. package/tooltip/tooltip.d.ts +6 -2
  661. package/tree/index.metadata.json +1 -1
  662. package/tree/padding.d.ts +4 -2
  663. package/tree/toggle.d.ts +2 -1
@@ -1 +1 @@
1
- {"version":3,"file":"tree.js","sources":["../../../../../../src/material/tree/node.ts","../../../../../../src/material/tree/padding.ts","../../../../../../src/material/tree/outlet.ts","../../../../../../src/material/tree/tree.ts","../../../../../../src/material/tree/toggle.ts","../../../../../../src/material/tree/tree-module.ts","../../../../../../src/material/tree/data-source/flat-data-source.ts","../../../../../../src/material/tree/data-source/nested-data-source.ts","../../../../../../src/material/tree/public-api.ts","../../../../../../src/material/tree/index.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {\n CDK_TREE_NODE_OUTLET_NODE,\n CdkNestedTreeNode,\n CdkTree,\n CdkTreeNode,\n CdkTreeNodeDef,\n} from '@angular/cdk/tree';\nimport {\n AfterContentInit,\n Attribute,\n Directive,\n ElementRef,\n Input,\n IterableDiffers,\n OnDestroy,\n} from '@angular/core';\nimport {\n CanDisable,\n CanDisableCtor,\n HasTabIndex,\n HasTabIndexCtor,\n mixinDisabled,\n mixinTabIndex,\n} from '@angular/material/core';\nimport {BooleanInput, coerceBooleanProperty, NumberInput} from '@angular/cdk/coercion';\n\nconst _MatTreeNodeMixinBase: HasTabIndexCtor & CanDisableCtor & typeof CdkTreeNode =\n mixinTabIndex(mixinDisabled(CdkTreeNode));\n\n/**\n * Wrapper for the CdkTree node with Material design styles.\n */\n@Directive({\n selector: 'mat-tree-node',\n exportAs: 'matTreeNode',\n inputs: ['disabled', 'tabIndex'],\n host: {\n '[attr.aria-expanded]': 'isExpanded',\n '[attr.aria-level]': 'role === \"treeitem\" ? level : null',\n '[attr.role]': 'role',\n 'class': 'mat-tree-node'\n },\n providers: [{provide: CdkTreeNode, useExisting: MatTreeNode}]\n})\nexport class MatTreeNode<T> extends _MatTreeNodeMixinBase<T>\n implements CanDisable, HasTabIndex {\n @Input() role: 'treeitem' | 'group' = 'treeitem';\n\n constructor(protected _elementRef: ElementRef<HTMLElement>,\n protected _tree: CdkTree<T>,\n @Attribute('tabindex') tabIndex: string) {\n super(_elementRef, _tree);\n\n this.tabIndex = Number(tabIndex) || 0;\n }\n\n static ngAcceptInputType_disabled: BooleanInput;\n static ngAcceptInputType_tabIndex: NumberInput;\n}\n\n/**\n * Wrapper for the CdkTree node definition with Material design styles.\n */\n@Directive({\n selector: '[matTreeNodeDef]',\n inputs: [\n 'when: matTreeNodeDefWhen'\n ],\n providers: [{provide: CdkTreeNodeDef, useExisting: MatTreeNodeDef}]\n})\nexport class MatTreeNodeDef<T> extends CdkTreeNodeDef<T> {\n @Input('matTreeNode') data: T;\n}\n\n/**\n * Wrapper for the CdkTree nested node with Material design styles.\n */\n@Directive({\n selector: 'mat-nested-tree-node',\n exportAs: 'matNestedTreeNode',\n host: {\n '[attr.aria-expanded]': 'isExpanded',\n '[attr.role]': 'role',\n 'class': 'mat-nested-tree-node',\n },\n providers: [\n {provide: CdkNestedTreeNode, useExisting: MatNestedTreeNode},\n {provide: CdkTreeNode, useExisting: MatNestedTreeNode},\n {provide: CDK_TREE_NODE_OUTLET_NODE, useExisting: MatNestedTreeNode}\n ]\n})\nexport class MatNestedTreeNode<T> extends CdkNestedTreeNode<T> implements AfterContentInit,\n OnDestroy {\n @Input('matNestedTreeNode') node: T;\n\n /** Whether the node is disabled. */\n @Input()\n get disabled() { return this._disabled; }\n set disabled(value: any) { this._disabled = coerceBooleanProperty(value); }\n private _disabled = false;\n\n /** Tabindex for the node. */\n @Input()\n get tabIndex(): number { return this.disabled ? -1 : this._tabIndex; }\n set tabIndex(value: number) {\n // If the specified tabIndex value is null or undefined, fall back to the default value.\n this._tabIndex = value != null ? value : 0;\n }\n private _tabIndex: number;\n\n constructor(protected _elementRef: ElementRef<HTMLElement>,\n protected _tree: CdkTree<T>,\n protected _differs: IterableDiffers,\n @Attribute('tabindex') tabIndex: string) {\n super(_elementRef, _tree, _differs);\n this.tabIndex = Number(tabIndex) || 0;\n }\n\n // This is a workaround for https://github.com/angular/angular/issues/23091\n // In aot mode, the lifecycle hooks from parent class are not called.\n // TODO(tinayuangao): Remove when the angular issue #23091 is fixed\n ngAfterContentInit() {\n super.ngAfterContentInit();\n }\n\n ngOnDestroy() {\n super.ngOnDestroy();\n }\n\n static ngAcceptInputType_disabled: BooleanInput;\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 {CdkTreeNodePadding} from '@angular/cdk/tree';\nimport {Directive, Input} from '@angular/core';\n\n/**\n * Wrapper for the CdkTree padding with Material design styles.\n */\n@Directive({\n selector: '[matTreeNodePadding]',\n providers: [{provide: CdkTreeNodePadding, useExisting: MatTreeNodePadding}]\n})\nexport class MatTreeNodePadding<T> extends CdkTreeNodePadding<T> {\n\n /** The level of depth of the tree node. The padding will be `level * indent` pixels. */\n @Input('matTreeNodePadding') level: number;\n\n /** The indent for each level. Default number 40px from material design menu sub-menu spec. */\n @Input('matTreeNodePaddingIndent') indent: number;\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 {CDK_TREE_NODE_OUTLET_NODE, CdkTreeNodeOutlet} from '@angular/cdk/tree';\nimport {\n Directive,\n Inject,\n Optional,\n ViewContainerRef,\n} from '@angular/core';\n\n/**\n * Outlet for nested CdkNode. Put `[matTreeNodeOutlet]` on a tag to place children dataNodes\n * inside the outlet.\n */\n@Directive({\n selector: '[matTreeNodeOutlet]',\n providers: [{\n provide: CdkTreeNodeOutlet,\n useExisting: MatTreeNodeOutlet\n }]\n})\nexport class MatTreeNodeOutlet implements CdkTreeNodeOutlet {\n constructor(\n public viewContainer: ViewContainerRef,\n @Inject(CDK_TREE_NODE_OUTLET_NODE) @Optional() public _node?: any) {}\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {CdkTree} from '@angular/cdk/tree';\nimport {ChangeDetectionStrategy, Component, ViewChild, ViewEncapsulation} from '@angular/core';\nimport {MatTreeNodeOutlet} from './outlet';\n\n/**\n * Wrapper for the CdkTable with Material design styles.\n */\n@Component({\n selector: 'mat-tree',\n exportAs: 'matTree',\n template: `<ng-container matTreeNodeOutlet></ng-container>`,\n host: {\n 'class': 'mat-tree',\n 'role': 'tree',\n },\n styleUrls: ['tree.css'],\n encapsulation: ViewEncapsulation.None,\n // See note on CdkTree for explanation on why this uses the default change detection strategy.\n // tslint:disable-next-line:validate-decorators\n changeDetection: ChangeDetectionStrategy.Default,\n providers: [{provide: CdkTree, useExisting: MatTree}]\n})\nexport class MatTree<T> extends CdkTree<T> {\n // Outlets within the tree's template where the dataNodes will be inserted.\n @ViewChild(MatTreeNodeOutlet, {static: true}) _nodeOutlet: MatTreeNodeOutlet;\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 {CdkTreeNodeToggle} from '@angular/cdk/tree';\nimport {Directive, Input} from '@angular/core';\n\n/**\n * Wrapper for the CdkTree's toggle with Material design styles.\n */\n@Directive({\n selector: '[matTreeNodeToggle]',\n providers: [{provide: CdkTreeNodeToggle, useExisting: MatTreeNodeToggle}]\n})\nexport class MatTreeNodeToggle<T> extends CdkTreeNodeToggle<T> {\n @Input('matTreeNodeToggleRecursive') recursive: boolean = false;\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 {NgModule} from '@angular/core';\n\nimport {CdkTreeModule} from '@angular/cdk/tree';\nimport {MatCommonModule} from '@angular/material/core';\nimport {MatNestedTreeNode, MatTreeNodeDef, MatTreeNode} from './node';\nimport {MatTree} from './tree';\nimport {MatTreeNodeToggle} from './toggle';\nimport {MatTreeNodeOutlet} from './outlet';\nimport {MatTreeNodePadding} from './padding';\n\nconst MAT_TREE_DIRECTIVES = [\n MatNestedTreeNode,\n MatTreeNodeDef,\n MatTreeNodePadding,\n MatTreeNodeToggle,\n MatTree,\n MatTreeNode,\n MatTreeNodeOutlet\n];\n\n@NgModule({\n imports: [CdkTreeModule, MatCommonModule],\n exports: [MatCommonModule, MAT_TREE_DIRECTIVES],\n declarations: MAT_TREE_DIRECTIVES,\n})\nexport class MatTreeModule {}\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 {CollectionViewer, DataSource} from '@angular/cdk/collections';\nimport {FlatTreeControl, TreeControl} from '@angular/cdk/tree';\nimport {BehaviorSubject, merge, Observable} from 'rxjs';\nimport {map, take} from 'rxjs/operators';\n\n/**\n * Tree flattener to convert a normal type of node to node with children & level information.\n * Transform nested nodes of type `T` to flattened nodes of type `F`.\n *\n * For example, the input data of type `T` is nested, and contains its children data:\n * SomeNode: {\n * key: 'Fruits',\n * children: [\n * NodeOne: {\n * key: 'Apple',\n * },\n * NodeTwo: {\n * key: 'Pear',\n * }\n * ]\n * }\n * After flattener flatten the tree, the structure will become\n * SomeNode: {\n * key: 'Fruits',\n * expandable: true,\n * level: 1\n * },\n * NodeOne: {\n * key: 'Apple',\n * expandable: false,\n * level: 2\n * },\n * NodeTwo: {\n * key: 'Pear',\n * expandable: false,\n * level: 2\n * }\n * and the output flattened type is `F` with additional information.\n */\nexport class MatTreeFlattener<T, F, K = F> {\n\n constructor(public transformFunction: (node: T, level: number) => F,\n public getLevel: (node: F) => number,\n public isExpandable: (node: F) => boolean,\n public getChildren: (node: T) =>\n Observable<T[]> | T[] | undefined | null) {}\n\n _flattenNode(node: T, level: number,\n resultNodes: F[], parentMap: boolean[]): F[] {\n const flatNode = this.transformFunction(node, level);\n resultNodes.push(flatNode);\n\n if (this.isExpandable(flatNode)) {\n const childrenNodes = this.getChildren(node);\n if (childrenNodes) {\n if (Array.isArray(childrenNodes)) {\n this._flattenChildren(childrenNodes, level, resultNodes, parentMap);\n } else {\n childrenNodes.pipe(take(1)).subscribe(children => {\n this._flattenChildren(children, level, resultNodes, parentMap);\n });\n }\n }\n }\n return resultNodes;\n }\n\n _flattenChildren(children: T[], level: number,\n resultNodes: F[], parentMap: boolean[]): void {\n children.forEach((child, index) => {\n let childParentMap: boolean[] = parentMap.slice();\n childParentMap.push(index != children.length - 1);\n this._flattenNode(child, level + 1, resultNodes, childParentMap);\n });\n }\n\n /**\n * Flatten a list of node type T to flattened version of node F.\n * Please note that type T may be nested, and the length of `structuredData` may be different\n * from that of returned list `F[]`.\n */\n flattenNodes(structuredData: T[]): F[] {\n let resultNodes: F[] = [];\n structuredData.forEach(node => this._flattenNode(node, 0, resultNodes, []));\n return resultNodes;\n }\n\n /**\n * Expand flattened node with current expansion status.\n * The returned list may have different length.\n */\n expandFlattenedNodes(nodes: F[], treeControl: TreeControl<F, K>): F[] {\n let results: F[] = [];\n let currentExpand: boolean[] = [];\n currentExpand[0] = true;\n\n nodes.forEach(node => {\n let expand = true;\n for (let i = 0; i <= this.getLevel(node); i++) {\n expand = expand && currentExpand[i];\n }\n if (expand) {\n results.push(node);\n }\n if (this.isExpandable(node)) {\n currentExpand[this.getLevel(node) + 1] = treeControl.isExpanded(node);\n }\n });\n return results;\n }\n}\n\n\n/**\n * Data source for flat tree.\n * The data source need to handle expansion/collapsion of the tree node and change the data feed\n * to `MatTree`.\n * The nested tree nodes of type `T` are flattened through `MatTreeFlattener`, and converted\n * to type `F` for `MatTree` to consume.\n */\nexport class MatTreeFlatDataSource<T, F, K = F> extends DataSource<F> {\n _flattenedData = new BehaviorSubject<F[]>([]);\n\n _expandedData = new BehaviorSubject<F[]>([]);\n\n _data: BehaviorSubject<T[]>;\n get data() { return this._data.value; }\n set data(value: T[]) {\n this._data.next(value);\n this._flattenedData.next(this._treeFlattener.flattenNodes(this.data));\n this._treeControl.dataNodes = this._flattenedData.value;\n }\n\n constructor(private _treeControl: FlatTreeControl<F, K>,\n private _treeFlattener: MatTreeFlattener<T, F, K>,\n initialData: T[] = []) {\n super();\n this._data = new BehaviorSubject<T[]>(initialData);\n }\n\n connect(collectionViewer: CollectionViewer): Observable<F[]> {\n const changes = [\n collectionViewer.viewChange,\n this._treeControl.expansionModel.changed,\n this._flattenedData\n ];\n return merge(...changes).pipe(map(() => {\n this._expandedData.next(\n this._treeFlattener.expandFlattenedNodes(this._flattenedData.value, this._treeControl));\n return this._expandedData.value;\n }));\n }\n\n disconnect() {\n // no op\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 {CollectionViewer, DataSource} from '@angular/cdk/collections';\nimport {BehaviorSubject, merge, Observable} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\n\n/**\n * Data source for nested tree.\n *\n * The data source for nested tree doesn't have to consider node flattener, or the way to expand\n * or collapse. The expansion/collapsion will be handled by TreeControl and each non-leaf node.\n */\nexport class MatTreeNestedDataSource<T> extends DataSource<T> {\n _data = new BehaviorSubject<T[]>([]);\n\n /**\n * Data for the nested tree\n */\n get data() { return this._data.value; }\n set data(value: T[]) { this._data.next(value); }\n\n connect(collectionViewer: CollectionViewer): Observable<T[]> {\n return merge(...[collectionViewer.viewChange, this._data])\n .pipe(map(() => {\n return this.data;\n }));\n }\n\n disconnect() {\n // no op\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\n\nexport * from './node';\nexport * from './padding';\nexport * from './tree';\nexport * from './tree-module';\nexport * from './toggle';\nexport * from './outlet';\nexport * from './data-source/flat-data-source';\nexport * from './data-source/nested-data-source';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;;AAAA;;;;;;;AAQA,AA0BA,MAAM,qBAAqB,GACvB,aAAa,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC;;;;AAiB9C,MAAa,WAAe,SAAQ,qBAAwB;IAI1D,YAAsB,WAAoC,EACpC,KAAiB,EACJ,QAAgB;QACjD,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QAHN,gBAAW,GAAX,WAAW,CAAyB;QACpC,UAAK,GAAL,KAAK,CAAY;QAH9B,SAAI,GAAyB,UAAU,CAAC;QAO/C,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;KACvC;;;YAtBF,SAAS,SAAC;gBACT,QAAQ,EAAE,eAAe;gBACzB,QAAQ,EAAE,aAAa;gBACvB,MAAM,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC;gBAChC,IAAI,EAAE;oBACJ,sBAAsB,EAAE,YAAY;oBACpC,mBAAmB,EAAE,oCAAoC;oBACzD,aAAa,EAAE,MAAM;oBACrB,OAAO,EAAE,eAAe;iBACzB;gBACD,SAAS,EAAE,CAAC,EAAC,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAC,CAAC;aAC9D;;;YAhCC,UAAU;YARV,OAAO;yCA+CM,SAAS,SAAC,UAAU;;;mBAJhC,KAAK;;;;;AAwBR,MAAa,cAAkB,SAAQ,cAAiB;;;YAPvD,SAAS,SAAC;gBACT,QAAQ,EAAE,kBAAkB;gBAC5B,MAAM,EAAE;oBACN,0BAA0B;iBAC3B;gBACD,SAAS,EAAE,CAAC,EAAC,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,cAAc,EAAC,CAAC;aACpE;;;mBAEE,KAAK,SAAC,aAAa;;;;;AAoBtB,MAAa,iBAAqB,SAAQ,iBAAoB;IAmB5D,YAAsB,WAAoC,EACpC,KAAiB,EACjB,QAAyB,EACZ,QAAgB;QACjD,KAAK,CAAC,WAAW,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;QAJhB,gBAAW,GAAX,WAAW,CAAyB;QACpC,UAAK,GAAL,KAAK,CAAY;QACjB,aAAQ,GAAR,QAAQ,CAAiB;QAbvC,cAAS,GAAG,KAAK,CAAC;QAgBxB,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;KACvC;;IApBD,IACI,QAAQ,KAAK,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE;IACzC,IAAI,QAAQ,CAAC,KAAU,IAAI,IAAI,CAAC,SAAS,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC,EAAE;;IAI3E,IACI,QAAQ,KAAa,OAAO,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE;IACtE,IAAI,QAAQ,CAAC,KAAa;;QAExB,IAAI,CAAC,SAAS,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,GAAG,CAAC,CAAC;KAC5C;;;;IAcD,kBAAkB;QAChB,KAAK,CAAC,kBAAkB,EAAE,CAAC;KAC5B;IAED,WAAW;QACT,KAAK,CAAC,WAAW,EAAE,CAAC;KACrB;;;YAlDF,SAAS,SAAC;gBACT,QAAQ,EAAE,sBAAsB;gBAChC,QAAQ,EAAE,mBAAmB;gBAC7B,IAAI,EAAE;oBACJ,sBAAsB,EAAE,YAAY;oBACpC,aAAa,EAAE,MAAM;oBACrB,OAAO,EAAE,sBAAsB;iBAChC;gBACD,SAAS,EAAE;oBACT,EAAC,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,iBAAiB,EAAC;oBAC5D,EAAC,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,iBAAiB,EAAC;oBACtD,EAAC,OAAO,EAAE,yBAAyB,EAAE,WAAW,EAAE,iBAAiB,EAAC;iBACrE;aACF;;;YA/EC,UAAU;YARV,OAAO;YAUP,eAAe;yCAoGF,SAAS,SAAC,UAAU;;;mBApBhC,KAAK,SAAC,mBAAmB;uBAGzB,KAAK;uBAML,KAAK;;;AC9GR;;;;;;;AAOA,AAGA;;;AAOA,MAAa,kBAAsB,SAAQ,kBAAqB;;;YAJ/D,SAAS,SAAC;gBACT,QAAQ,EAAE,sBAAsB;gBAChC,SAAS,EAAE,CAAC,EAAC,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,kBAAkB,EAAC,CAAC;aAC5E;;;oBAIE,KAAK,SAAC,oBAAoB;qBAG1B,KAAK,SAAC,0BAA0B;;;ACvBnC;;;;;;;AAOA,AAQA;;;;AAWA,MAAa,iBAAiB;IAC5B,YACW,aAA+B,EACgB,KAAW;QAD1D,kBAAa,GAAb,aAAa,CAAkB;QACgB,UAAK,GAAL,KAAK,CAAM;KAAI;;;YAV1E,SAAS,SAAC;gBACT,QAAQ,EAAE,qBAAqB;gBAC/B,SAAS,EAAE,CAAC;wBACV,OAAO,EAAE,iBAAiB;wBAC1B,WAAW,EAAE,iBAAiB;qBAC/B,CAAC;aACH;;;YAbC,gBAAgB;4CAiBX,MAAM,SAAC,yBAAyB,cAAG,QAAQ;;;AC7BlD;;;;;;;AAQA,AAIA;;;AAkBA,MAAa,OAAW,SAAQ,OAAU;;;YAfzC,SAAS,SAAC;gBACT,QAAQ,EAAE,UAAU;gBACpB,QAAQ,EAAE,SAAS;gBACnB,QAAQ,EAAE,iDAAiD;gBAC3D,IAAI,EAAE;oBACJ,OAAO,EAAE,UAAU;oBACnB,MAAM,EAAE,MAAM;iBACf;gBAED,aAAa,EAAE,iBAAiB,CAAC,IAAI;;;gBAGrC,eAAe,EAAE,uBAAuB,CAAC,OAAO;gBAChD,SAAS,EAAE,CAAC,EAAC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAC,CAAC;;aACtD;;;0BAGE,SAAS,SAAC,iBAAiB,EAAE,EAAC,MAAM,EAAE,IAAI,EAAC;;;AChC9C;;;;;;;AAQA,AAGA;;;AAOA,MAAa,iBAAqB,SAAQ,iBAAoB;IAJ9D;;QAKuC,cAAS,GAAY,KAAK,CAAC;KACjE;;;YANA,SAAS,SAAC;gBACT,QAAQ,EAAE,qBAAqB;gBAC/B,SAAS,EAAE,CAAC,EAAC,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,iBAAiB,EAAC,CAAC;aAC1E;;;wBAEE,KAAK,SAAC,4BAA4B;;;ACnBrC;;;;;;;AAQA,AAUA,MAAM,mBAAmB,GAAG;IAC1B,iBAAiB;IACjB,cAAc;IACd,kBAAkB;IAClB,iBAAiB;IACjB,OAAO;IACP,WAAW;IACX,iBAAiB;CAClB,CAAC;AAOF,MAAa,aAAa;;;YALzB,QAAQ,SAAC;gBACR,OAAO,EAAE,CAAC,aAAa,EAAE,eAAe,CAAC;gBACzC,OAAO,EAAE,CAAC,eAAe,EAAE,mBAAmB,CAAC;gBAC/C,YAAY,EAAE,mBAAmB;aAClC;;;AChCD;;;;;;;AAQA,AAKA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkCA,MAAa,gBAAgB;IAE3B,YAAmB,iBAAgD,EAChD,QAA6B,EAC7B,YAAkC,EAClC,WACqC;QAJrC,sBAAiB,GAAjB,iBAAiB,CAA+B;QAChD,aAAQ,GAAR,QAAQ,CAAqB;QAC7B,iBAAY,GAAZ,YAAY,CAAsB;QAClC,gBAAW,GAAX,WAAW,CAC0B;KAAI;IAE5D,YAAY,CAAC,IAAO,EAAE,KAAa,EACtB,WAAgB,EAAE,SAAoB;QACjD,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACrD,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAE3B,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE;YAC/B,MAAM,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YAC7C,IAAI,aAAa,EAAE;gBACjB,IAAI,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE;oBAChC,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;iBACrE;qBAAM;oBACL,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ;wBAC5C,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;qBAChE,CAAC,CAAC;iBACJ;aACF;SACF;QACD,OAAO,WAAW,CAAC;KACpB;IAED,gBAAgB,CAAC,QAAa,EAAE,KAAa,EAC5B,WAAgB,EAAE,SAAoB;QACrD,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK;YAC5B,IAAI,cAAc,GAAc,SAAS,CAAC,KAAK,EAAE,CAAC;YAClD,cAAc,CAAC,IAAI,CAAC,KAAK,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAClD,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,GAAG,CAAC,EAAE,WAAW,EAAE,cAAc,CAAC,CAAC;SAClE,CAAC,CAAC;KACJ;;;;;;IAOD,YAAY,CAAC,cAAmB;QAC9B,IAAI,WAAW,GAAQ,EAAE,CAAC;QAC1B,cAAc,CAAC,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC;QAC5E,OAAO,WAAW,CAAC;KACpB;;;;;IAMD,oBAAoB,CAAC,KAAU,EAAE,WAA8B;QAC7D,IAAI,OAAO,GAAQ,EAAE,CAAC;QACtB,IAAI,aAAa,GAAc,EAAE,CAAC;QAClC,aAAa,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;QAExB,KAAK,CAAC,OAAO,CAAC,IAAI;YAChB,IAAI,MAAM,GAAG,IAAI,CAAC;YAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;gBAC7C,MAAM,GAAG,MAAM,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC;aACrC;YACD,IAAI,MAAM,EAAE;gBACV,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACpB;YACD,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE;gBAC3B,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;aACvE;SACF,CAAC,CAAC;QACH,OAAO,OAAO,CAAC;KAChB;CACF;;;;;;;;AAUD,MAAa,qBAAmC,SAAQ,UAAa;IAanE,YAAoB,YAAmC,EACnC,cAAyC,EACjD,cAAmB,EAAE;QAC/B,KAAK,EAAE,CAAC;QAHU,iBAAY,GAAZ,YAAY,CAAuB;QACnC,mBAAc,GAAd,cAAc,CAA2B;QAb7D,mBAAc,GAAG,IAAI,eAAe,CAAM,EAAE,CAAC,CAAC;QAE9C,kBAAa,GAAG,IAAI,eAAe,CAAM,EAAE,CAAC,CAAC;QAc3C,IAAI,CAAC,KAAK,GAAG,IAAI,eAAe,CAAM,WAAW,CAAC,CAAC;KACpD;IAZD,IAAI,IAAI,KAAK,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;IACvC,IAAI,IAAI,CAAC,KAAU;QACjB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACtE,IAAI,CAAC,YAAY,CAAC,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;KACzD;IASD,OAAO,CAAC,gBAAkC;QACxC,MAAM,OAAO,GAAG;YACd,gBAAgB,CAAC,UAAU;YAC3B,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,OAAO;YACxC,IAAI,CAAC,cAAc;SACpB,CAAC;QACF,OAAO,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;YAChC,IAAI,CAAC,aAAa,CAAC,IAAI,CACrB,IAAI,CAAC,cAAc,CAAC,oBAAoB,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;YAC1F,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;SACjC,CAAC,CAAC,CAAC;KACL;IAED,UAAU;;KAET;CACF;;ACpKD;;;;;;;AAQA,AAKA;;;;;;AAMA,MAAa,uBAA2B,SAAQ,UAAa;IAA7D;;QACE,UAAK,GAAG,IAAI,eAAe,CAAM,EAAE,CAAC,CAAC;KAkBtC;;;;IAbC,IAAI,IAAI,KAAK,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;IACvC,IAAI,IAAI,CAAC,KAAU,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE;IAEhD,OAAO,CAAC,gBAAkC;QACxC,OAAO,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;aACvD,IAAI,CAAC,GAAG,CAAC;YACR,OAAO,IAAI,CAAC,IAAI,CAAC;SAClB,CAAC,CAAC,CAAC;KACP;IAED,UAAU;;KAET;CACF;;ACtCD;;;;;;GAMG;;ACNH;;GAEG;;;;"}
1
+ {"version":3,"file":"tree.js","sources":["../../../../../../src/material/tree/node.ts","../../../../../../src/material/tree/padding.ts","../../../../../../src/material/tree/outlet.ts","../../../../../../src/material/tree/tree.ts","../../../../../../src/material/tree/toggle.ts","../../../../../../src/material/tree/tree-module.ts","../../../../../../src/material/tree/data-source/flat-data-source.ts","../../../../../../src/material/tree/data-source/nested-data-source.ts","../../../../../../src/material/tree/public-api.ts","../../../../../../src/material/tree/index.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {\n CDK_TREE_NODE_OUTLET_NODE,\n CdkNestedTreeNode,\n CdkTree,\n CdkTreeNode,\n CdkTreeNodeDef,\n} from '@angular/cdk/tree';\nimport {\n AfterContentInit,\n Attribute,\n Directive,\n ElementRef,\n Input,\n IterableDiffers,\n OnDestroy,\n} from '@angular/core';\nimport {\n CanDisable,\n CanDisableCtor,\n HasTabIndex,\n HasTabIndexCtor,\n mixinDisabled,\n mixinTabIndex,\n} from '@angular/material/core';\nimport {BooleanInput, coerceBooleanProperty, NumberInput} from '@angular/cdk/coercion';\n\nconst _MatTreeNodeMixinBase: HasTabIndexCtor & CanDisableCtor & typeof CdkTreeNode =\n mixinTabIndex(mixinDisabled(CdkTreeNode));\n\n/**\n * Wrapper for the CdkTree node with Material design styles.\n */\n@Directive({\n selector: 'mat-tree-node',\n exportAs: 'matTreeNode',\n inputs: ['disabled', 'tabIndex'],\n host: {\n '[attr.aria-expanded]': 'isExpanded',\n '[attr.aria-level]': 'level + 1',\n '[attr.role]': 'role',\n 'class': 'mat-tree-node'\n },\n providers: [{provide: CdkTreeNode, useExisting: MatTreeNode}]\n})\nexport class MatTreeNode<T> extends _MatTreeNodeMixinBase<T>\n implements CanDisable, HasTabIndex {\n @Input() role: 'treeitem' | 'group' = 'treeitem';\n\n constructor(protected _elementRef: ElementRef<HTMLElement>,\n protected _tree: CdkTree<T>,\n @Attribute('tabindex') tabIndex: string) {\n super(_elementRef, _tree);\n\n this.tabIndex = Number(tabIndex) || 0;\n }\n\n static ngAcceptInputType_disabled: BooleanInput;\n static ngAcceptInputType_tabIndex: NumberInput;\n}\n\n/**\n * Wrapper for the CdkTree node definition with Material design styles.\n */\n@Directive({\n selector: '[matTreeNodeDef]',\n inputs: [\n 'when: matTreeNodeDefWhen'\n ],\n providers: [{provide: CdkTreeNodeDef, useExisting: MatTreeNodeDef}]\n})\nexport class MatTreeNodeDef<T> extends CdkTreeNodeDef<T> {\n @Input('matTreeNode') data: T;\n}\n\n/**\n * Wrapper for the CdkTree nested node with Material design styles.\n */\n@Directive({\n selector: 'mat-nested-tree-node',\n exportAs: 'matNestedTreeNode',\n host: {\n '[attr.aria-expanded]': 'isExpanded',\n '[attr.role]': 'role',\n 'class': 'mat-nested-tree-node',\n },\n providers: [\n {provide: CdkNestedTreeNode, useExisting: MatNestedTreeNode},\n {provide: CdkTreeNode, useExisting: MatNestedTreeNode},\n {provide: CDK_TREE_NODE_OUTLET_NODE, useExisting: MatNestedTreeNode}\n ]\n})\nexport class MatNestedTreeNode<T> extends CdkNestedTreeNode<T> implements AfterContentInit,\n OnDestroy {\n @Input('matNestedTreeNode') node: T;\n\n /** Whether the node is disabled. */\n @Input()\n get disabled() { return this._disabled; }\n set disabled(value: any) { this._disabled = coerceBooleanProperty(value); }\n private _disabled = false;\n\n /** Tabindex for the node. */\n @Input()\n get tabIndex(): number { return this.disabled ? -1 : this._tabIndex; }\n set tabIndex(value: number) {\n // If the specified tabIndex value is null or undefined, fall back to the default value.\n this._tabIndex = value != null ? value : 0;\n }\n private _tabIndex: number;\n\n constructor(protected _elementRef: ElementRef<HTMLElement>,\n protected _tree: CdkTree<T>,\n protected _differs: IterableDiffers,\n @Attribute('tabindex') tabIndex: string) {\n super(_elementRef, _tree, _differs);\n this.tabIndex = Number(tabIndex) || 0;\n }\n\n // This is a workaround for https://github.com/angular/angular/issues/23091\n // In aot mode, the lifecycle hooks from parent class are not called.\n // TODO(tinayuangao): Remove when the angular issue #23091 is fixed\n ngAfterContentInit() {\n super.ngAfterContentInit();\n }\n\n ngOnDestroy() {\n super.ngOnDestroy();\n }\n\n static ngAcceptInputType_disabled: BooleanInput;\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 {CdkTreeNodePadding} from '@angular/cdk/tree';\nimport {Directive, Input} from '@angular/core';\n\n/**\n * Wrapper for the CdkTree padding with Material design styles.\n */\n@Directive({\n selector: '[matTreeNodePadding]',\n providers: [{provide: CdkTreeNodePadding, useExisting: MatTreeNodePadding}]\n})\nexport class MatTreeNodePadding<T> extends CdkTreeNodePadding<T> {\n\n /** The level of depth of the tree node. The padding will be `level * indent` pixels. */\n @Input('matTreeNodePadding')\n get level(): number { return this._level; }\n set level(value: number) { this._setLevelInput(value); }\n\n /** The indent for each level. Default number 40px from material design menu sub-menu spec. */\n @Input('matTreeNodePaddingIndent')\n get indent(): number | string { return this._indent; }\n set indent(indent: number | string) { this._setIndentInput(indent); }\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 {CDK_TREE_NODE_OUTLET_NODE, CdkTreeNodeOutlet} from '@angular/cdk/tree';\nimport {\n Directive,\n Inject,\n Optional,\n ViewContainerRef,\n} from '@angular/core';\n\n/**\n * Outlet for nested CdkNode. Put `[matTreeNodeOutlet]` on a tag to place children dataNodes\n * inside the outlet.\n */\n@Directive({\n selector: '[matTreeNodeOutlet]',\n providers: [{\n provide: CdkTreeNodeOutlet,\n useExisting: MatTreeNodeOutlet\n }]\n})\nexport class MatTreeNodeOutlet implements CdkTreeNodeOutlet {\n constructor(\n public viewContainer: ViewContainerRef,\n @Inject(CDK_TREE_NODE_OUTLET_NODE) @Optional() public _node?: any) {}\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {CdkTree} from '@angular/cdk/tree';\nimport {ChangeDetectionStrategy, Component, ViewChild, ViewEncapsulation} from '@angular/core';\nimport {MatTreeNodeOutlet} from './outlet';\n\n/**\n * Wrapper for the CdkTable with Material design styles.\n */\n@Component({\n selector: 'mat-tree',\n exportAs: 'matTree',\n template: `<ng-container matTreeNodeOutlet></ng-container>`,\n host: {\n 'class': 'mat-tree',\n 'role': 'tree',\n },\n styleUrls: ['tree.css'],\n encapsulation: ViewEncapsulation.None,\n // See note on CdkTree for explanation on why this uses the default change detection strategy.\n // tslint:disable-next-line:validate-decorators\n changeDetection: ChangeDetectionStrategy.Default,\n providers: [{provide: CdkTree, useExisting: MatTree}]\n})\nexport class MatTree<T> extends CdkTree<T> {\n // Outlets within the tree's template where the dataNodes will be inserted.\n @ViewChild(MatTreeNodeOutlet, {static: true}) _nodeOutlet: MatTreeNodeOutlet;\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 {coerceBooleanProperty} from '@angular/cdk/coercion';\nimport {CdkTreeNodeToggle} from '@angular/cdk/tree';\nimport {Directive, Input} from '@angular/core';\n\n/**\n * Wrapper for the CdkTree's toggle with Material design styles.\n */\n@Directive({\n selector: '[matTreeNodeToggle]',\n providers: [{provide: CdkTreeNodeToggle, useExisting: MatTreeNodeToggle}]\n})\n// tslint:disable-next-line: coercion-types\nexport class MatTreeNodeToggle<T> extends CdkTreeNodeToggle<T> {\n @Input('matTreeNodeToggleRecursive')\n get recursive(): boolean { return this._recursive; }\n set recursive(value: boolean) {\n // TODO: when we remove support for ViewEngine, change this setter to an input\n // alias in the decorator metadata.\n this._recursive = coerceBooleanProperty(value);\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 {NgModule} from '@angular/core';\n\nimport {CdkTreeModule} from '@angular/cdk/tree';\nimport {MatCommonModule} from '@angular/material/core';\nimport {MatNestedTreeNode, MatTreeNodeDef, MatTreeNode} from './node';\nimport {MatTree} from './tree';\nimport {MatTreeNodeToggle} from './toggle';\nimport {MatTreeNodeOutlet} from './outlet';\nimport {MatTreeNodePadding} from './padding';\n\nconst MAT_TREE_DIRECTIVES = [\n MatNestedTreeNode,\n MatTreeNodeDef,\n MatTreeNodePadding,\n MatTreeNodeToggle,\n MatTree,\n MatTreeNode,\n MatTreeNodeOutlet\n];\n\n@NgModule({\n imports: [CdkTreeModule, MatCommonModule],\n exports: [MatCommonModule, MAT_TREE_DIRECTIVES],\n declarations: MAT_TREE_DIRECTIVES,\n})\nexport class MatTreeModule {}\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 {CollectionViewer, DataSource} from '@angular/cdk/collections';\nimport {FlatTreeControl, TreeControl} from '@angular/cdk/tree';\nimport {BehaviorSubject, merge, Observable} from 'rxjs';\nimport {map, take} from 'rxjs/operators';\n\n/**\n * Tree flattener to convert a normal type of node to node with children & level information.\n * Transform nested nodes of type `T` to flattened nodes of type `F`.\n *\n * For example, the input data of type `T` is nested, and contains its children data:\n * SomeNode: {\n * key: 'Fruits',\n * children: [\n * NodeOne: {\n * key: 'Apple',\n * },\n * NodeTwo: {\n * key: 'Pear',\n * }\n * ]\n * }\n * After flattener flatten the tree, the structure will become\n * SomeNode: {\n * key: 'Fruits',\n * expandable: true,\n * level: 1\n * },\n * NodeOne: {\n * key: 'Apple',\n * expandable: false,\n * level: 2\n * },\n * NodeTwo: {\n * key: 'Pear',\n * expandable: false,\n * level: 2\n * }\n * and the output flattened type is `F` with additional information.\n */\nexport class MatTreeFlattener<T, F, K = F> {\n\n constructor(public transformFunction: (node: T, level: number) => F,\n public getLevel: (node: F) => number,\n public isExpandable: (node: F) => boolean,\n public getChildren: (node: T) =>\n Observable<T[]> | T[] | undefined | null) {}\n\n _flattenNode(node: T, level: number,\n resultNodes: F[], parentMap: boolean[]): F[] {\n const flatNode = this.transformFunction(node, level);\n resultNodes.push(flatNode);\n\n if (this.isExpandable(flatNode)) {\n const childrenNodes = this.getChildren(node);\n if (childrenNodes) {\n if (Array.isArray(childrenNodes)) {\n this._flattenChildren(childrenNodes, level, resultNodes, parentMap);\n } else {\n childrenNodes.pipe(take(1)).subscribe(children => {\n this._flattenChildren(children, level, resultNodes, parentMap);\n });\n }\n }\n }\n return resultNodes;\n }\n\n _flattenChildren(children: T[], level: number,\n resultNodes: F[], parentMap: boolean[]): void {\n children.forEach((child, index) => {\n let childParentMap: boolean[] = parentMap.slice();\n childParentMap.push(index != children.length - 1);\n this._flattenNode(child, level + 1, resultNodes, childParentMap);\n });\n }\n\n /**\n * Flatten a list of node type T to flattened version of node F.\n * Please note that type T may be nested, and the length of `structuredData` may be different\n * from that of returned list `F[]`.\n */\n flattenNodes(structuredData: T[]): F[] {\n let resultNodes: F[] = [];\n structuredData.forEach(node => this._flattenNode(node, 0, resultNodes, []));\n return resultNodes;\n }\n\n /**\n * Expand flattened node with current expansion status.\n * The returned list may have different length.\n */\n expandFlattenedNodes(nodes: F[], treeControl: TreeControl<F, K>): F[] {\n let results: F[] = [];\n let currentExpand: boolean[] = [];\n currentExpand[0] = true;\n\n nodes.forEach(node => {\n let expand = true;\n for (let i = 0; i <= this.getLevel(node); i++) {\n expand = expand && currentExpand[i];\n }\n if (expand) {\n results.push(node);\n }\n if (this.isExpandable(node)) {\n currentExpand[this.getLevel(node) + 1] = treeControl.isExpanded(node);\n }\n });\n return results;\n }\n}\n\n\n/**\n * Data source for flat tree.\n * The data source need to handle expansion/collapsion of the tree node and change the data feed\n * to `MatTree`.\n * The nested tree nodes of type `T` are flattened through `MatTreeFlattener`, and converted\n * to type `F` for `MatTree` to consume.\n */\nexport class MatTreeFlatDataSource<T, F, K = F> extends DataSource<F> {\n _flattenedData = new BehaviorSubject<F[]>([]);\n\n _expandedData = new BehaviorSubject<F[]>([]);\n\n _data: BehaviorSubject<T[]>;\n get data() { return this._data.value; }\n set data(value: T[]) {\n this._data.next(value);\n this._flattenedData.next(this._treeFlattener.flattenNodes(this.data));\n this._treeControl.dataNodes = this._flattenedData.value;\n }\n\n constructor(private _treeControl: FlatTreeControl<F, K>,\n private _treeFlattener: MatTreeFlattener<T, F, K>,\n initialData: T[] = []) {\n super();\n this._data = new BehaviorSubject<T[]>(initialData);\n }\n\n connect(collectionViewer: CollectionViewer): Observable<F[]> {\n const changes = [\n collectionViewer.viewChange,\n this._treeControl.expansionModel.changed,\n this._flattenedData\n ];\n return merge(...changes).pipe(map(() => {\n this._expandedData.next(\n this._treeFlattener.expandFlattenedNodes(this._flattenedData.value, this._treeControl));\n return this._expandedData.value;\n }));\n }\n\n disconnect() {\n // no op\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 {CollectionViewer, DataSource} from '@angular/cdk/collections';\nimport {BehaviorSubject, merge, Observable} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\n\n/**\n * Data source for nested tree.\n *\n * The data source for nested tree doesn't have to consider node flattener, or the way to expand\n * or collapse. The expansion/collapsion will be handled by TreeControl and each non-leaf node.\n */\nexport class MatTreeNestedDataSource<T> extends DataSource<T> {\n _data = new BehaviorSubject<T[]>([]);\n\n /**\n * Data for the nested tree\n */\n get data() { return this._data.value; }\n set data(value: T[]) { this._data.next(value); }\n\n connect(collectionViewer: CollectionViewer): Observable<T[]> {\n return merge(...[collectionViewer.viewChange, this._data])\n .pipe(map(() => {\n return this.data;\n }));\n }\n\n disconnect() {\n // no op\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\n\nexport * from './node';\nexport * from './padding';\nexport * from './tree';\nexport * from './tree-module';\nexport * from './toggle';\nexport * from './outlet';\nexport * from './data-source/flat-data-source';\nexport * from './data-source/nested-data-source';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -45,6 +45,11 @@ export declare abstract class MatFormFieldControl<T> {
45
45
  * control it is assumed to be false.
46
46
  */
47
47
  readonly autofilled?: boolean;
48
+ /**
49
+ * Value of `aria-describedby` that should be merged with the described-by ids
50
+ * which are set by the form-field.
51
+ */
52
+ readonly userAriaDescribedBy?: string;
48
53
  /** Sets the list of element IDs that currently describe this control. */
49
54
  abstract setDescribedByIds(ids: string[]): void;
50
55
  /** Handles a click on the control's container. */
@@ -87,17 +87,17 @@ export declare class MatFormField extends _MatFormFieldMixinBase implements Afte
87
87
  /** Override for the logic that disables the label animation in certain cases. */
88
88
  private _showAlwaysAnimate;
89
89
  /** Whether the floating label should always float or not. */
90
- get _shouldAlwaysFloat(): boolean;
90
+ _shouldAlwaysFloat(): boolean;
91
91
  /** Whether the label can float or not. */
92
- get _canLabelFloat(): boolean;
92
+ _canLabelFloat(): boolean;
93
93
  /** State of the mat-hint and mat-error animations. */
94
94
  _subscriptAnimationState: string;
95
95
  /** Text for the form field hint. */
96
96
  get hintLabel(): string;
97
97
  set hintLabel(value: string);
98
98
  private _hintLabel;
99
- _hintLabelId: string;
100
- _labelId: string;
99
+ readonly _hintLabelId: string;
100
+ readonly _labelId: string;
101
101
  /**
102
102
  * Whether the label should always float, never float or float as the user types.
103
103
  *
@@ -126,13 +126,16 @@ export declare class MatFormField extends _MatFormFieldMixinBase implements Afte
126
126
  private _explicitFormFieldControl;
127
127
  _labelChildNonStatic: MatLabel;
128
128
  _labelChildStatic: MatLabel;
129
- get _labelChild(): MatLabel;
130
129
  _placeholderChild: MatPlaceholder;
131
130
  _errorChildren: QueryList<MatError>;
132
131
  _hintChildren: QueryList<MatHint>;
133
132
  _prefixChildren: QueryList<MatPrefix>;
134
133
  _suffixChildren: QueryList<MatSuffix>;
135
134
  constructor(_elementRef: ElementRef, _changeDetectorRef: ChangeDetectorRef, labelOptions: LabelOptions, _dir: Directionality, _defaults: MatFormFieldDefaultOptions, _platform: Platform, _ngZone: NgZone, _animationMode: string);
135
+ /**
136
+ * Gets the id of the label element. If no label is present, returns `null`.
137
+ */
138
+ getLabelId(): string | null;
136
139
  /**
137
140
  * Gets an ElementRef for the element that a overlay attached to the form-field should be
138
141
  * positioned relative to.
@@ -1 +1 @@
1
- {"__symbolic":"module","version":4,"metadata":{"MatFormFieldModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":20,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"MatError"},{"__symbolic":"reference","name":"MatFormField"},{"__symbolic":"reference","name":"MatHint"},{"__symbolic":"reference","name":"MatLabel"},{"__symbolic":"reference","name":"MatPlaceholder"},{"__symbolic":"reference","name":"MatPrefix"},{"__symbolic":"reference","name":"MatSuffix"}],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":31,"character":4},{"__symbolic":"reference","module":"@angular/material/core","name":"MatCommonModule","line":32,"character":4},{"__symbolic":"reference","module":"@angular/cdk/observers","name":"ObserversModule","line":33,"character":4}],"exports":[{"__symbolic":"reference","module":"@angular/material/core","name":"MatCommonModule","line":36,"character":4},{"__symbolic":"reference","name":"MatError"},{"__symbolic":"reference","name":"MatFormField"},{"__symbolic":"reference","name":"MatHint"},{"__symbolic":"reference","name":"MatLabel"},{"__symbolic":"reference","name":"MatPlaceholder"},{"__symbolic":"reference","name":"MatPrefix"},{"__symbolic":"reference","name":"MatSuffix"}]}]}],"members":{}},"MAT_ERROR":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":17,"character":29},"arguments":["MatError"]},"MatError":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":20,"character":1},"arguments":[{"selector":"mat-error","host":{"class":"mat-error","role":"alert","[attr.id]":"id","$quoted$":["class","role","[attr.id]"]},"providers":[{"provide":{"__symbolic":"reference","name":"MAT_ERROR"},"useExisting":{"__symbolic":"reference","name":"MatError"}}]}]}],"members":{"id":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":30,"character":3}}]}]}},"MatFormFieldAppearance":{"__symbolic":"interface"},"FloatLabelType":{"__symbolic":"interface"},"MatFormFieldDefaultOptions":{"__symbolic":"interface"},"MAT_FORM_FIELD_DEFAULT_OPTIONS":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":101,"character":8},"arguments":["MAT_FORM_FIELD_DEFAULT_OPTIONS"]},"MAT_FORM_FIELD":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":108,"character":34},"arguments":["MatFormField"]},"MatFormField":{"__symbolic":"class","extends":{"__symbolic":"error","message":"Symbol reference expected","line":160,"character":34,"module":"./form-field"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":111,"character":1},"arguments":[{"selector":"mat-form-field","exportAs":"matFormField","animations":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"matFormFieldAnimations"},"member":"transitionMessages"}],"host":{"class":"mat-form-field","[class.mat-form-field-appearance-standard]":"appearance == \"standard\"","[class.mat-form-field-appearance-fill]":"appearance == \"fill\"","[class.mat-form-field-appearance-outline]":"appearance == \"outline\"","[class.mat-form-field-appearance-legacy]":"appearance == \"legacy\"","[class.mat-form-field-invalid]":"_control.errorState","[class.mat-form-field-can-float]":"_canLabelFloat","[class.mat-form-field-should-float]":"_shouldLabelFloat()","[class.mat-form-field-has-label]":"_hasFloatingLabel()","[class.mat-form-field-hide-placeholder]":"_hideControlPlaceholder()","[class.mat-form-field-disabled]":"_control.disabled","[class.mat-form-field-autofilled]":"_control.autofilled","[class.mat-focused]":"_control.focused","[class.mat-accent]":"color == \"accent\"","[class.mat-warn]":"color == \"warn\"","[class.ng-untouched]":"_shouldForward(\"untouched\")","[class.ng-touched]":"_shouldForward(\"touched\")","[class.ng-pristine]":"_shouldForward(\"pristine\")","[class.ng-dirty]":"_shouldForward(\"dirty\")","[class.ng-valid]":"_shouldForward(\"valid\")","[class.ng-invalid]":"_shouldForward(\"invalid\")","[class.ng-pending]":"_shouldForward(\"pending\")","[class._mat-animation-noopable]":"!_animationsEnabled","$quoted$":["class","[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":["color"],"encapsulation":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewEncapsulation","line":153,"character":17},"member":"None"},"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":154,"character":19},"member":"OnPush"},"providers":[{"provide":{"__symbolic":"reference","name":"MAT_FORM_FIELD"},"useExisting":{"__symbolic":"reference","name":"MatFormField"}}],"template":"<div class=\"mat-form-field-wrapper\">\n <div class=\"mat-form-field-flex\" #connectionContainer\n (click)=\"_control.onContainerClick && _control.onContainerClick($event)\">\n\n <!-- Outline used for outline appearance. -->\n <ng-container *ngIf=\"appearance == 'outline'\">\n <div class=\"mat-form-field-outline\">\n <div class=\"mat-form-field-outline-start\"></div>\n <div class=\"mat-form-field-outline-gap\"></div>\n <div class=\"mat-form-field-outline-end\"></div>\n </div>\n <div class=\"mat-form-field-outline mat-form-field-outline-thick\">\n <div class=\"mat-form-field-outline-start\"></div>\n <div class=\"mat-form-field-outline-gap\"></div>\n <div class=\"mat-form-field-outline-end\"></div>\n </div>\n </ng-container>\n\n <div class=\"mat-form-field-prefix\" *ngIf=\"_prefixChildren.length\">\n <ng-content select=\"[matPrefix]\"></ng-content>\n </div>\n\n <div class=\"mat-form-field-infix\" #inputContainer>\n <ng-content></ng-content>\n\n <span class=\"mat-form-field-label-wrapper\">\n <!-- We add aria-owns as a workaround for an issue in JAWS & NVDA where the label isn't\n read if it comes before the control in the DOM. -->\n <label class=\"mat-form-field-label\"\n (cdkObserveContent)=\"updateOutlineGap()\"\n [cdkObserveContentDisabled]=\"appearance != 'outline'\"\n [id]=\"_labelId\"\n [attr.for]=\"_control.id\"\n [attr.aria-owns]=\"_control.id\"\n [class.mat-empty]=\"_control.empty && !_shouldAlwaysFloat\"\n [class.mat-form-field-empty]=\"_control.empty && !_shouldAlwaysFloat\"\n [class.mat-accent]=\"color == 'accent'\"\n [class.mat-warn]=\"color == 'warn'\"\n #label\n *ngIf=\"_hasFloatingLabel()\"\n [ngSwitch]=\"_hasLabel()\">\n\n <!-- @breaking-change 8.0.0 remove in favor of mat-label element an placeholder attr. -->\n <ng-container *ngSwitchCase=\"false\">\n <ng-content select=\"mat-placeholder\"></ng-content>\n <span>{{_control.placeholder}}</span>\n </ng-container>\n\n <ng-content select=\"mat-label\" *ngSwitchCase=\"true\"></ng-content>\n\n <!-- @breaking-change 8.0.0 remove `mat-placeholder-required` class -->\n <span\n class=\"mat-placeholder-required mat-form-field-required-marker\"\n aria-hidden=\"true\"\n *ngIf=\"!hideRequiredMarker && _control.required && !_control.disabled\">&#32;*</span>\n </label>\n </span>\n </div>\n\n <div class=\"mat-form-field-suffix\" *ngIf=\"_suffixChildren.length\">\n <ng-content select=\"[matSuffix]\"></ng-content>\n </div>\n </div>\n\n <!-- Underline used for legacy, standard, and box appearances. -->\n <div class=\"mat-form-field-underline\" #underline\n *ngIf=\"appearance != 'outline'\">\n <span class=\"mat-form-field-ripple\"\n [class.mat-accent]=\"color == 'accent'\"\n [class.mat-warn]=\"color == 'warn'\"></span>\n </div>\n\n <div class=\"mat-form-field-subscript-wrapper\"\n [ngSwitch]=\"_getDisplayedMessages()\">\n <div *ngSwitchCase=\"'error'\" [@transitionMessages]=\"_subscriptAnimationState\">\n <ng-content select=\"mat-error\"></ng-content>\n </div>\n\n <div class=\"mat-form-field-hint-wrapper\" *ngSwitchCase=\"'hint'\"\n [@transitionMessages]=\"_subscriptAnimationState\">\n <!-- TODO(mmalerba): use an actual <mat-hint> once all selectors are switched to mat-* -->\n <div *ngIf=\"hintLabel\" [id]=\"_hintLabelId\" class=\"mat-hint\">{{hintLabel}}</div>\n <ng-content select=\"mat-hint:not([align='end'])\"></ng-content>\n <div class=\"mat-form-field-hint-spacer\"></div>\n <ng-content select=\"mat-hint[align='end']\"></ng-content>\n </div>\n </div>\n</div>\n","styles":[".mat-form-field{display:inline-block;position:relative;text-align:left}[dir=rtl] .mat-form-field{text-align:right}.mat-form-field-wrapper{position:relative}.mat-form-field-flex{display:inline-flex;align-items:baseline;box-sizing:border-box;width:100%}.mat-form-field-prefix,.mat-form-field-suffix{white-space:nowrap;flex:none;position:relative}.mat-form-field-infix{display:block;position:relative;flex:auto;min-width:0;width:180px}.cdk-high-contrast-active .mat-form-field-infix{border-image:linear-gradient(transparent, transparent)}.mat-form-field-label-wrapper{position:absolute;left:0;box-sizing:content-box;width:100%;height:100%;overflow:hidden;pointer-events:none}[dir=rtl] .mat-form-field-label-wrapper{left:auto;right:0}.mat-form-field-label{position:absolute;left:0;font:inherit;pointer-events:none;width:100%;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;transform-origin:0 0;transition:transform 400ms cubic-bezier(0.25, 0.8, 0.25, 1),color 400ms cubic-bezier(0.25, 0.8, 0.25, 1),width 400ms cubic-bezier(0.25, 0.8, 0.25, 1);display:none}[dir=rtl] .mat-form-field-label{transform-origin:100% 0;left:auto;right:0}.mat-form-field-empty.mat-form-field-label,.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label{display:block}.mat-form-field-autofill-control:-webkit-autofill+.mat-form-field-label-wrapper .mat-form-field-label{display:none}.mat-form-field-can-float .mat-form-field-autofill-control:-webkit-autofill+.mat-form-field-label-wrapper .mat-form-field-label{display:block;transition:none}.mat-input-server:focus+.mat-form-field-label-wrapper .mat-form-field-label,.mat-input-server[placeholder]:not(:placeholder-shown)+.mat-form-field-label-wrapper .mat-form-field-label{display:none}.mat-form-field-can-float .mat-input-server:focus+.mat-form-field-label-wrapper .mat-form-field-label,.mat-form-field-can-float .mat-input-server[placeholder]:not(:placeholder-shown)+.mat-form-field-label-wrapper .mat-form-field-label{display:block}.mat-form-field-label:not(.mat-form-field-empty){transition:none}.mat-form-field-underline{position:absolute;width:100%;pointer-events:none;transform:scale3d(1, 1.0001, 1)}.mat-form-field-ripple{position:absolute;left:0;width:100%;transform-origin:50%;transform:scaleX(0.5);opacity:0;transition:background-color 300ms cubic-bezier(0.55, 0, 0.55, 0.2)}.mat-form-field.mat-focused .mat-form-field-ripple,.mat-form-field.mat-form-field-invalid .mat-form-field-ripple{opacity:1;transform:scaleX(1);transition:transform 300ms cubic-bezier(0.25, 0.8, 0.25, 1),opacity 100ms cubic-bezier(0.25, 0.8, 0.25, 1),background-color 300ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-form-field-subscript-wrapper{position:absolute;box-sizing:border-box;width:100%;overflow:hidden}.mat-form-field-subscript-wrapper .mat-icon,.mat-form-field-label-wrapper .mat-icon{width:1em;height:1em;font-size:inherit;vertical-align:baseline}.mat-form-field-hint-wrapper{display:flex}.mat-form-field-hint-spacer{flex:1 0 1em}.mat-error{display:block}.mat-form-field-control-wrapper{position:relative}.mat-form-field._mat-animation-noopable .mat-form-field-label,.mat-form-field._mat-animation-noopable .mat-form-field-ripple{transition:none}\n",".mat-form-field-appearance-fill .mat-form-field-flex{border-radius:4px 4px 0 0;padding:.75em .75em 0 .75em}.cdk-high-contrast-active .mat-form-field-appearance-fill .mat-form-field-flex{outline:solid 1px}.mat-form-field-appearance-fill .mat-form-field-underline::before{content:\"\";display:block;position:absolute;bottom:0;height:1px;width:100%}.mat-form-field-appearance-fill .mat-form-field-ripple{bottom:0;height:2px}.cdk-high-contrast-active .mat-form-field-appearance-fill .mat-form-field-ripple{height:0;border-top:solid 2px}.mat-form-field-appearance-fill:not(.mat-form-field-disabled) .mat-form-field-flex:hover~.mat-form-field-underline .mat-form-field-ripple{opacity:1;transform:none;transition:opacity 600ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-form-field-appearance-fill._mat-animation-noopable:not(.mat-form-field-disabled) .mat-form-field-flex:hover~.mat-form-field-underline .mat-form-field-ripple{transition:none}.mat-form-field-appearance-fill .mat-form-field-subscript-wrapper{padding:0 1em}\n",".mat-input-element{font:inherit;background:transparent;color:currentColor;border:none;outline:none;padding:0;margin:0;width:100%;max-width:100%;vertical-align:bottom;text-align:inherit}.mat-input-element:-moz-ui-invalid{box-shadow:none}.mat-input-element::-ms-clear,.mat-input-element::-ms-reveal{display:none}.mat-input-element,.mat-input-element::-webkit-search-cancel-button,.mat-input-element::-webkit-search-decoration,.mat-input-element::-webkit-search-results-button,.mat-input-element::-webkit-search-results-decoration{-webkit-appearance:none}.mat-input-element::-webkit-contacts-auto-fill-button,.mat-input-element::-webkit-caps-lock-indicator,.mat-input-element::-webkit-credentials-auto-fill-button{visibility:hidden}.mat-input-element[type=date],.mat-input-element[type=datetime],.mat-input-element[type=datetime-local],.mat-input-element[type=month],.mat-input-element[type=week],.mat-input-element[type=time]{line-height:1}.mat-input-element[type=date]::after,.mat-input-element[type=datetime]::after,.mat-input-element[type=datetime-local]::after,.mat-input-element[type=month]::after,.mat-input-element[type=week]::after,.mat-input-element[type=time]::after{content:\" \";white-space:pre;width:1px}.mat-input-element::-webkit-inner-spin-button,.mat-input-element::-webkit-calendar-picker-indicator,.mat-input-element::-webkit-clear-button{font-size:.75em}.mat-input-element::placeholder{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;transition:color 400ms 133.3333333333ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-input-element::placeholder:-ms-input-placeholder{-ms-user-select:text}.mat-input-element::-moz-placeholder{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;transition:color 400ms 133.3333333333ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-input-element::-moz-placeholder:-ms-input-placeholder{-ms-user-select:text}.mat-input-element::-webkit-input-placeholder{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;transition:color 400ms 133.3333333333ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-input-element::-webkit-input-placeholder:-ms-input-placeholder{-ms-user-select:text}.mat-input-element:-ms-input-placeholder{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;transition:color 400ms 133.3333333333ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-input-element:-ms-input-placeholder:-ms-input-placeholder{-ms-user-select:text}.mat-form-field-hide-placeholder .mat-input-element::placeholder{color:transparent !important;-webkit-text-fill-color:transparent;transition:none}.mat-form-field-hide-placeholder .mat-input-element::-moz-placeholder{color:transparent !important;-webkit-text-fill-color:transparent;transition:none}.mat-form-field-hide-placeholder .mat-input-element::-webkit-input-placeholder{color:transparent !important;-webkit-text-fill-color:transparent;transition:none}.mat-form-field-hide-placeholder .mat-input-element:-ms-input-placeholder{color:transparent !important;-webkit-text-fill-color:transparent;transition:none}textarea.mat-input-element{resize:vertical;overflow:auto}textarea.mat-input-element.cdk-textarea-autosize{resize:none}textarea.mat-input-element{padding:2px 0;margin:-2px 0}select.mat-input-element{-moz-appearance:none;-webkit-appearance:none;position:relative;background-color:transparent;display:inline-flex;box-sizing:border-box;padding-top:1em;top:-1em;margin-bottom:-1em}select.mat-input-element::-ms-expand{display:none}select.mat-input-element::-moz-focus-inner{border:0}select.mat-input-element:not(:disabled){cursor:pointer}select.mat-input-element::-ms-value{color:inherit;background:none}.mat-focused .cdk-high-contrast-active select.mat-input-element::-ms-value{color:inherit}.mat-form-field-type-mat-native-select .mat-form-field-infix::after{content:\"\";width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid;position:absolute;top:50%;right:0;margin-top:-2.5px;pointer-events:none}[dir=rtl] .mat-form-field-type-mat-native-select .mat-form-field-infix::after{right:auto;left:0}.mat-form-field-type-mat-native-select .mat-input-element{padding-right:15px}[dir=rtl] .mat-form-field-type-mat-native-select .mat-input-element{padding-right:0;padding-left:15px}.mat-form-field-type-mat-native-select .mat-form-field-label-wrapper{max-width:calc(100% - 10px)}.mat-form-field-type-mat-native-select.mat-form-field-appearance-outline .mat-form-field-infix::after{margin-top:-5px}.mat-form-field-type-mat-native-select.mat-form-field-appearance-fill .mat-form-field-infix::after{margin-top:-10px}\n",".mat-form-field-appearance-legacy .mat-form-field-label{transform:perspective(100px);-ms-transform:none}.mat-form-field-appearance-legacy .mat-form-field-prefix .mat-icon,.mat-form-field-appearance-legacy .mat-form-field-suffix .mat-icon{width:1em}.mat-form-field-appearance-legacy .mat-form-field-prefix .mat-icon-button,.mat-form-field-appearance-legacy .mat-form-field-suffix .mat-icon-button{font:inherit;vertical-align:baseline}.mat-form-field-appearance-legacy .mat-form-field-prefix .mat-icon-button .mat-icon,.mat-form-field-appearance-legacy .mat-form-field-suffix .mat-icon-button .mat-icon{font-size:inherit}.mat-form-field-appearance-legacy .mat-form-field-underline{height:1px}.cdk-high-contrast-active .mat-form-field-appearance-legacy .mat-form-field-underline{height:0;border-top:solid 1px}.mat-form-field-appearance-legacy .mat-form-field-ripple{top:0;height:2px;overflow:hidden}.cdk-high-contrast-active .mat-form-field-appearance-legacy .mat-form-field-ripple{height:0;border-top:solid 2px}.mat-form-field-appearance-legacy.mat-form-field-disabled .mat-form-field-underline{background-position:0;background-color:transparent}.cdk-high-contrast-active .mat-form-field-appearance-legacy.mat-form-field-disabled .mat-form-field-underline{border-top-style:dotted;border-top-width:2px}.mat-form-field-appearance-legacy.mat-form-field-invalid:not(.mat-focused) .mat-form-field-ripple{height:1px}\n",".mat-form-field-appearance-outline .mat-form-field-wrapper{margin:.25em 0}.mat-form-field-appearance-outline .mat-form-field-flex{padding:0 .75em 0 .75em;margin-top:-0.25em;position:relative}.mat-form-field-appearance-outline .mat-form-field-prefix,.mat-form-field-appearance-outline .mat-form-field-suffix{top:.25em}.mat-form-field-appearance-outline .mat-form-field-outline{display:flex;position:absolute;top:.25em;left:0;right:0;bottom:0;pointer-events:none}.mat-form-field-appearance-outline .mat-form-field-outline-start,.mat-form-field-appearance-outline .mat-form-field-outline-end{border:1px solid currentColor;min-width:5px}.mat-form-field-appearance-outline .mat-form-field-outline-start{border-radius:5px 0 0 5px;border-right-style:none}[dir=rtl] .mat-form-field-appearance-outline .mat-form-field-outline-start{border-right-style:solid;border-left-style:none;border-radius:0 5px 5px 0}.mat-form-field-appearance-outline .mat-form-field-outline-end{border-radius:0 5px 5px 0;border-left-style:none;flex-grow:1}[dir=rtl] .mat-form-field-appearance-outline .mat-form-field-outline-end{border-left-style:solid;border-right-style:none;border-radius:5px 0 0 5px}.mat-form-field-appearance-outline .mat-form-field-outline-gap{border-radius:.000001px;border:1px solid currentColor;border-left-style:none;border-right-style:none}.mat-form-field-appearance-outline.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-outline-gap{border-top-color:transparent}.mat-form-field-appearance-outline .mat-form-field-outline-thick{opacity:0}.mat-form-field-appearance-outline .mat-form-field-outline-thick .mat-form-field-outline-start,.mat-form-field-appearance-outline .mat-form-field-outline-thick .mat-form-field-outline-end,.mat-form-field-appearance-outline .mat-form-field-outline-thick .mat-form-field-outline-gap{border-width:2px}.mat-form-field-appearance-outline.mat-focused .mat-form-field-outline,.mat-form-field-appearance-outline.mat-form-field-invalid .mat-form-field-outline{opacity:0;transition:opacity 100ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-form-field-appearance-outline.mat-focused .mat-form-field-outline-thick,.mat-form-field-appearance-outline.mat-form-field-invalid .mat-form-field-outline-thick{opacity:1}.mat-form-field-appearance-outline:not(.mat-form-field-disabled) .mat-form-field-flex:hover .mat-form-field-outline{opacity:0;transition:opacity 600ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-form-field-appearance-outline:not(.mat-form-field-disabled) .mat-form-field-flex:hover .mat-form-field-outline-thick{opacity:1}.mat-form-field-appearance-outline .mat-form-field-subscript-wrapper{padding:0 1em}.mat-form-field-appearance-outline._mat-animation-noopable:not(.mat-form-field-disabled) .mat-form-field-flex:hover~.mat-form-field-outline,.mat-form-field-appearance-outline._mat-animation-noopable .mat-form-field-outline,.mat-form-field-appearance-outline._mat-animation-noopable .mat-form-field-outline-start,.mat-form-field-appearance-outline._mat-animation-noopable .mat-form-field-outline-end,.mat-form-field-appearance-outline._mat-animation-noopable .mat-form-field-outline-gap{transition:none}\n",".mat-form-field-appearance-standard .mat-form-field-flex{padding-top:.75em}.mat-form-field-appearance-standard .mat-form-field-underline{height:1px}.cdk-high-contrast-active .mat-form-field-appearance-standard .mat-form-field-underline{height:0;border-top:solid 1px}.mat-form-field-appearance-standard .mat-form-field-ripple{bottom:0;height:2px}.cdk-high-contrast-active .mat-form-field-appearance-standard .mat-form-field-ripple{height:0;border-top:2px}.mat-form-field-appearance-standard.mat-form-field-disabled .mat-form-field-underline{background-position:0;background-color:transparent}.cdk-high-contrast-active .mat-form-field-appearance-standard.mat-form-field-disabled .mat-form-field-underline{border-top-style:dotted;border-top-width:2px}.mat-form-field-appearance-standard:not(.mat-form-field-disabled) .mat-form-field-flex:hover~.mat-form-field-underline .mat-form-field-ripple{opacity:1;transform:none;transition:opacity 600ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-form-field-appearance-standard._mat-animation-noopable:not(.mat-form-field-disabled) .mat-form-field-flex:hover~.mat-form-field-underline .mat-form-field-ripple{transition:none}\n"]}]}],"members":{"appearance":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":176,"character":3}}]}],"hideRequiredMarker":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":190,"character":3}}]}],"hintLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":212,"character":3}}]}],"floatLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":234,"character":3}}]}],"underlineRef":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":253,"character":3},"arguments":["underline"]}]}],"_connectionContainerRef":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":255,"character":3},"arguments":["connectionContainer",{"static":true}]}]}],"_inputContainerRef":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":256,"character":3},"arguments":["inputContainer"]}]}],"_label":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":257,"character":3},"arguments":["label"]}]}],"_controlNonStatic":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":259,"character":3},"arguments":[{"__symbolic":"reference","name":"MatFormFieldControl"}]}]}],"_controlStatic":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":260,"character":3},"arguments":[{"__symbolic":"reference","name":"MatFormFieldControl"},{"static":true}]}]}],"_labelChildNonStatic":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":271,"character":3},"arguments":[{"__symbolic":"reference","name":"MatLabel"}]}]}],"_labelChildStatic":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":272,"character":3},"arguments":[{"__symbolic":"reference","name":"MatLabel"},{"static":true}]}]}],"_placeholderChild":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":277,"character":3},"arguments":[{"__symbolic":"reference","name":"MatPlaceholder"}]}]}],"_errorChildren":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChildren","line":280,"character":3},"arguments":[{"__symbolic":"reference","name":"MAT_ERROR"},{"descendants":true}]}]}],"_hintChildren":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChildren","line":282,"character":3},"arguments":[{"__symbolic":"reference","name":"_MAT_HINT"},{"descendants":true}]}]}],"_prefixChildren":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChildren","line":284,"character":3},"arguments":[{"__symbolic":"reference","name":"MAT_PREFIX"},{"descendants":true}]}]}],"_suffixChildren":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChildren","line":286,"character":3},"arguments":[{"__symbolic":"reference","name":"MAT_SUFFIX"},{"descendants":true}]}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":290,"character":7}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":290,"character":19},"arguments":[{"__symbolic":"reference","module":"@angular/material/core","name":"MAT_LABEL_GLOBAL_OPTIONS","line":290,"character":26}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":291,"character":7}}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":292,"character":7}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":292,"character":19},"arguments":[{"__symbolic":"reference","name":"MAT_FORM_FIELD_DEFAULT_OPTIONS"}]}],null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":294,"character":7}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":294,"character":19},"arguments":[{"__symbolic":"reference","module":"@angular/platform-browser/animations","name":"ANIMATION_MODULE_TYPE","line":294,"character":26}]}]],"parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":289,"character":26},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":289,"character":66},{"__symbolic":"reference","module":"@angular/material/core","name":"LabelOptions","line":290,"character":66},{"__symbolic":"reference","module":"@angular/cdk/bidi","name":"Directionality","line":291,"character":32},{"__symbolic":"reference","name":"any"},{"__symbolic":"reference","module":"@angular/cdk/platform","name":"Platform","line":293,"character":57},{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":293,"character":84},{"__symbolic":"reference","name":"string"}]}],"getConnectedOverlayOrigin":[{"__symbolic":"method"}],"ngAfterContentInit":[{"__symbolic":"method"}],"ngAfterContentChecked":[{"__symbolic":"method"}],"ngAfterViewInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"_shouldForward":[{"__symbolic":"method"}],"_hasPlaceholder":[{"__symbolic":"method"}],"_hasLabel":[{"__symbolic":"method"}],"_shouldLabelFloat":[{"__symbolic":"method"}],"_hideControlPlaceholder":[{"__symbolic":"method"}],"_hasFloatingLabel":[{"__symbolic":"method"}],"_getDisplayedMessages":[{"__symbolic":"method"}],"_animateAndLockLabel":[{"__symbolic":"method"}],"_validatePlaceholders":[{"__symbolic":"method"}],"_processHints":[{"__symbolic":"method"}],"_validateHints":[{"__symbolic":"method"}],"_getDefaultFloatLabelState":[{"__symbolic":"method"}],"_syncDescribedByIds":[{"__symbolic":"method"}],"_validateControlChild":[{"__symbolic":"method"}],"updateOutlineGap":[{"__symbolic":"method"}],"_getStartEnd":[{"__symbolic":"method"}],"_isAttachedToDOM":[{"__symbolic":"method"}]}},"MatFormFieldControl":{"__symbolic":"class","arity":1,"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":14,"character":1}}],"members":{"setDescribedByIds":[{"__symbolic":"method"}],"onContainerClick":[{"__symbolic":"method"}]}},"getMatFormFieldPlaceholderConflictError":{"__symbolic":"function","parameters":[],"value":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"Error"},"arguments":["Placeholder attribute and child element were both specified."]}},"getMatFormFieldDuplicatedHintError":{"__symbolic":"function","parameters":["align"],"value":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"Error"},"arguments":[{"__symbolic":"binop","operator":"+","left":{"__symbolic":"binop","operator":"+","left":"A hint was already declared for 'align=\"","right":{"__symbolic":"reference","name":"align"}},"right":"\"'."}]}},"getMatFormFieldMissingControlError":{"__symbolic":"function","parameters":[],"value":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"Error"},"arguments":["mat-form-field must contain a MatFormFieldControl."]}},"_MAT_HINT":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":20,"character":29},"arguments":["MatHint"]},"MatHint":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":23,"character":1},"arguments":[{"selector":"mat-hint","host":{"class":"mat-hint","[class.mat-right]":"align == \"end\"","[attr.id]":"id","[attr.align]":"null","$quoted$":["class","[class.mat-right]","[attr.id]","[attr.align]"]},"providers":[{"provide":{"__symbolic":"reference","name":"_MAT_HINT"},"useExisting":{"__symbolic":"reference","name":"MatHint"}}]}]}],"members":{"align":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":36,"character":3}}]}],"id":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":39,"character":3}}]}]}},"MatPlaceholder":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":17,"character":1},"arguments":[{"selector":"mat-placeholder"}]}],"members":{}},"MAT_PREFIX":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":15,"character":30},"arguments":["MatPrefix"]},"MatPrefix":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":18,"character":1},"arguments":[{"selector":"[matPrefix]","providers":[{"provide":{"__symbolic":"reference","name":"MAT_PREFIX"},"useExisting":{"__symbolic":"reference","name":"MatPrefix"}}]}]}],"members":{}},"MAT_SUFFIX":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":15,"character":30},"arguments":["MatSuffix"]},"MatSuffix":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":18,"character":1},"arguments":[{"selector":"[matSuffix]","providers":[{"provide":{"__symbolic":"reference","name":"MAT_SUFFIX"},"useExisting":{"__symbolic":"reference","name":"MatSuffix"}}]}]}],"members":{}},"MatLabel":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":12,"character":1},"arguments":[{"selector":"mat-label"}]}],"members":{}},"matFormFieldAnimations":{"transitionMessages":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"trigger","line":24,"character":22},"arguments":["transitionMessages",[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"state","line":26,"character":4},"arguments":["enter",{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":26,"character":19},"arguments":[{"opacity":1,"transform":"translateY(0%)"}]}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"transition","line":27,"character":4},"arguments":["void => enter",[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":28,"character":6},"arguments":[{"opacity":0,"transform":"translateY(-100%)"}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"animate","line":29,"character":6},"arguments":["300ms cubic-bezier(0.55, 0, 0.55, 0.2)"]}]]}]]}}},"origins":{"MatFormFieldModule":"./form-field-module","MAT_ERROR":"./error","MatError":"./error","MatFormFieldAppearance":"./form-field","FloatLabelType":"./form-field","MatFormFieldDefaultOptions":"./form-field","MAT_FORM_FIELD_DEFAULT_OPTIONS":"./form-field","MAT_FORM_FIELD":"./form-field","MatFormField":"./form-field","MatFormFieldControl":"./form-field-control","getMatFormFieldPlaceholderConflictError":"./form-field-errors","getMatFormFieldDuplicatedHintError":"./form-field-errors","getMatFormFieldMissingControlError":"./form-field-errors","_MAT_HINT":"./hint","MatHint":"./hint","MatPlaceholder":"./placeholder","MAT_PREFIX":"./prefix","MatPrefix":"./prefix","MAT_SUFFIX":"./suffix","MatSuffix":"./suffix","MatLabel":"./label","matFormFieldAnimations":"./form-field-animations"},"importAs":"@angular/material/form-field"}
1
+ {"__symbolic":"module","version":4,"metadata":{"MatFormFieldModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":20,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"MatError"},{"__symbolic":"reference","name":"MatFormField"},{"__symbolic":"reference","name":"MatHint"},{"__symbolic":"reference","name":"MatLabel"},{"__symbolic":"reference","name":"MatPlaceholder"},{"__symbolic":"reference","name":"MatPrefix"},{"__symbolic":"reference","name":"MatSuffix"}],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":31,"character":4},{"__symbolic":"reference","module":"@angular/material/core","name":"MatCommonModule","line":32,"character":4},{"__symbolic":"reference","module":"@angular/cdk/observers","name":"ObserversModule","line":33,"character":4}],"exports":[{"__symbolic":"reference","module":"@angular/material/core","name":"MatCommonModule","line":36,"character":4},{"__symbolic":"reference","name":"MatError"},{"__symbolic":"reference","name":"MatFormField"},{"__symbolic":"reference","name":"MatHint"},{"__symbolic":"reference","name":"MatLabel"},{"__symbolic":"reference","name":"MatPlaceholder"},{"__symbolic":"reference","name":"MatPrefix"},{"__symbolic":"reference","name":"MatSuffix"}]}]}],"members":{}},"MAT_ERROR":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":17,"character":29},"arguments":["MatError"]},"MatError":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":20,"character":1},"arguments":[{"selector":"mat-error","host":{"class":"mat-error","role":"alert","[attr.id]":"id","$quoted$":["class","role","[attr.id]"]},"providers":[{"provide":{"__symbolic":"reference","name":"MAT_ERROR"},"useExisting":{"__symbolic":"reference","name":"MatError"}}]}]}],"members":{"id":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":30,"character":3}}]}]}},"MatFormFieldAppearance":{"__symbolic":"interface"},"FloatLabelType":{"__symbolic":"interface"},"MatFormFieldDefaultOptions":{"__symbolic":"interface"},"MAT_FORM_FIELD_DEFAULT_OPTIONS":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":101,"character":8},"arguments":["MAT_FORM_FIELD_DEFAULT_OPTIONS"]},"MAT_FORM_FIELD":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":108,"character":34},"arguments":["MatFormField"]},"MatFormField":{"__symbolic":"class","extends":{"__symbolic":"error","message":"Symbol reference expected","line":160,"character":34,"module":"./form-field"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":111,"character":1},"arguments":[{"selector":"mat-form-field","exportAs":"matFormField","animations":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"matFormFieldAnimations"},"member":"transitionMessages"}],"host":{"class":"mat-form-field","[class.mat-form-field-appearance-standard]":"appearance == \"standard\"","[class.mat-form-field-appearance-fill]":"appearance == \"fill\"","[class.mat-form-field-appearance-outline]":"appearance == \"outline\"","[class.mat-form-field-appearance-legacy]":"appearance == \"legacy\"","[class.mat-form-field-invalid]":"_control.errorState","[class.mat-form-field-can-float]":"_canLabelFloat()","[class.mat-form-field-should-float]":"_shouldLabelFloat()","[class.mat-form-field-has-label]":"_hasFloatingLabel()","[class.mat-form-field-hide-placeholder]":"_hideControlPlaceholder()","[class.mat-form-field-disabled]":"_control.disabled","[class.mat-form-field-autofilled]":"_control.autofilled","[class.mat-focused]":"_control.focused","[class.mat-accent]":"color == \"accent\"","[class.mat-warn]":"color == \"warn\"","[class.ng-untouched]":"_shouldForward(\"untouched\")","[class.ng-touched]":"_shouldForward(\"touched\")","[class.ng-pristine]":"_shouldForward(\"pristine\")","[class.ng-dirty]":"_shouldForward(\"dirty\")","[class.ng-valid]":"_shouldForward(\"valid\")","[class.ng-invalid]":"_shouldForward(\"invalid\")","[class.ng-pending]":"_shouldForward(\"pending\")","[class._mat-animation-noopable]":"!_animationsEnabled","$quoted$":["class","[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":["color"],"encapsulation":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewEncapsulation","line":153,"character":17},"member":"None"},"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":154,"character":19},"member":"OnPush"},"providers":[{"provide":{"__symbolic":"reference","name":"MAT_FORM_FIELD"},"useExisting":{"__symbolic":"reference","name":"MatFormField"}}],"template":"<div class=\"mat-form-field-wrapper\">\n <div class=\"mat-form-field-flex\" #connectionContainer\n (click)=\"_control.onContainerClick && _control.onContainerClick($event)\">\n\n <!-- Outline used for outline appearance. -->\n <ng-container *ngIf=\"appearance == 'outline'\">\n <div class=\"mat-form-field-outline\">\n <div class=\"mat-form-field-outline-start\"></div>\n <div class=\"mat-form-field-outline-gap\"></div>\n <div class=\"mat-form-field-outline-end\"></div>\n </div>\n <div class=\"mat-form-field-outline mat-form-field-outline-thick\">\n <div class=\"mat-form-field-outline-start\"></div>\n <div class=\"mat-form-field-outline-gap\"></div>\n <div class=\"mat-form-field-outline-end\"></div>\n </div>\n </ng-container>\n\n <div class=\"mat-form-field-prefix\" *ngIf=\"_prefixChildren.length\">\n <ng-content select=\"[matPrefix]\"></ng-content>\n </div>\n\n <div class=\"mat-form-field-infix\" #inputContainer>\n <ng-content></ng-content>\n\n <span class=\"mat-form-field-label-wrapper\">\n <!-- We add aria-owns as a workaround for an issue in JAWS & NVDA where the label isn't\n read if it comes before the control in the DOM. -->\n <label class=\"mat-form-field-label\"\n (cdkObserveContent)=\"updateOutlineGap()\"\n [cdkObserveContentDisabled]=\"appearance != 'outline'\"\n [id]=\"_labelId\"\n [attr.for]=\"_control.id\"\n [attr.aria-owns]=\"_control.id\"\n [class.mat-empty]=\"_control.empty && !_shouldAlwaysFloat()\"\n [class.mat-form-field-empty]=\"_control.empty && !_shouldAlwaysFloat()\"\n [class.mat-accent]=\"color == 'accent'\"\n [class.mat-warn]=\"color == 'warn'\"\n #label\n *ngIf=\"_hasFloatingLabel()\"\n [ngSwitch]=\"_hasLabel()\">\n\n <!-- @breaking-change 8.0.0 remove in favor of mat-label element an placeholder attr. -->\n <ng-container *ngSwitchCase=\"false\">\n <ng-content select=\"mat-placeholder\"></ng-content>\n <span>{{_control.placeholder}}</span>\n </ng-container>\n\n <ng-content select=\"mat-label\" *ngSwitchCase=\"true\"></ng-content>\n\n <!-- @breaking-change 8.0.0 remove `mat-placeholder-required` class -->\n <span\n class=\"mat-placeholder-required mat-form-field-required-marker\"\n aria-hidden=\"true\"\n *ngIf=\"!hideRequiredMarker && _control.required && !_control.disabled\">&#32;*</span>\n </label>\n </span>\n </div>\n\n <div class=\"mat-form-field-suffix\" *ngIf=\"_suffixChildren.length\">\n <ng-content select=\"[matSuffix]\"></ng-content>\n </div>\n </div>\n\n <!-- Underline used for legacy, standard, and box appearances. -->\n <div class=\"mat-form-field-underline\" #underline\n *ngIf=\"appearance != 'outline'\">\n <span class=\"mat-form-field-ripple\"\n [class.mat-accent]=\"color == 'accent'\"\n [class.mat-warn]=\"color == 'warn'\"></span>\n </div>\n\n <div class=\"mat-form-field-subscript-wrapper\"\n [ngSwitch]=\"_getDisplayedMessages()\">\n <div *ngSwitchCase=\"'error'\" [@transitionMessages]=\"_subscriptAnimationState\">\n <ng-content select=\"mat-error\"></ng-content>\n </div>\n\n <div class=\"mat-form-field-hint-wrapper\" *ngSwitchCase=\"'hint'\"\n [@transitionMessages]=\"_subscriptAnimationState\">\n <!-- TODO(mmalerba): use an actual <mat-hint> once all selectors are switched to mat-* -->\n <div *ngIf=\"hintLabel\" [id]=\"_hintLabelId\" class=\"mat-hint\">{{hintLabel}}</div>\n <ng-content select=\"mat-hint:not([align='end'])\"></ng-content>\n <div class=\"mat-form-field-hint-spacer\"></div>\n <ng-content select=\"mat-hint[align='end']\"></ng-content>\n </div>\n </div>\n</div>\n","styles":[".mat-form-field{display:inline-block;position:relative;text-align:left}[dir=rtl] .mat-form-field{text-align:right}.mat-form-field-wrapper{position:relative}.mat-form-field-flex{display:inline-flex;align-items:baseline;box-sizing:border-box;width:100%}.mat-form-field-prefix,.mat-form-field-suffix{white-space:nowrap;flex:none;position:relative}.mat-form-field-infix{display:block;position:relative;flex:auto;min-width:0;width:180px}.cdk-high-contrast-active .mat-form-field-infix{border-image:linear-gradient(transparent, transparent)}.mat-form-field-label-wrapper{position:absolute;left:0;box-sizing:content-box;width:100%;height:100%;overflow:hidden;pointer-events:none}[dir=rtl] .mat-form-field-label-wrapper{left:auto;right:0}.mat-form-field-label{position:absolute;left:0;font:inherit;pointer-events:none;width:100%;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;transform-origin:0 0;transition:transform 400ms cubic-bezier(0.25, 0.8, 0.25, 1),color 400ms cubic-bezier(0.25, 0.8, 0.25, 1),width 400ms cubic-bezier(0.25, 0.8, 0.25, 1);display:none}[dir=rtl] .mat-form-field-label{transform-origin:100% 0;left:auto;right:0}.mat-form-field-empty.mat-form-field-label,.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label{display:block}.mat-form-field-autofill-control:-webkit-autofill+.mat-form-field-label-wrapper .mat-form-field-label{display:none}.mat-form-field-can-float .mat-form-field-autofill-control:-webkit-autofill+.mat-form-field-label-wrapper .mat-form-field-label{display:block;transition:none}.mat-input-server:focus+.mat-form-field-label-wrapper .mat-form-field-label,.mat-input-server[placeholder]:not(:placeholder-shown)+.mat-form-field-label-wrapper .mat-form-field-label{display:none}.mat-form-field-can-float .mat-input-server:focus+.mat-form-field-label-wrapper .mat-form-field-label,.mat-form-field-can-float .mat-input-server[placeholder]:not(:placeholder-shown)+.mat-form-field-label-wrapper .mat-form-field-label{display:block}.mat-form-field-label:not(.mat-form-field-empty){transition:none}.mat-form-field-underline{position:absolute;width:100%;pointer-events:none;transform:scale3d(1, 1.0001, 1)}.mat-form-field-ripple{position:absolute;left:0;width:100%;transform-origin:50%;transform:scaleX(0.5);opacity:0;transition:background-color 300ms cubic-bezier(0.55, 0, 0.55, 0.2)}.mat-form-field.mat-focused .mat-form-field-ripple,.mat-form-field.mat-form-field-invalid .mat-form-field-ripple{opacity:1;transform:scaleX(1);transition:transform 300ms cubic-bezier(0.25, 0.8, 0.25, 1),opacity 100ms cubic-bezier(0.25, 0.8, 0.25, 1),background-color 300ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-form-field-subscript-wrapper{position:absolute;box-sizing:border-box;width:100%;overflow:hidden}.mat-form-field-subscript-wrapper .mat-icon,.mat-form-field-label-wrapper .mat-icon{width:1em;height:1em;font-size:inherit;vertical-align:baseline}.mat-form-field-hint-wrapper{display:flex}.mat-form-field-hint-spacer{flex:1 0 1em}.mat-error{display:block}.mat-form-field-control-wrapper{position:relative}.mat-form-field._mat-animation-noopable .mat-form-field-label,.mat-form-field._mat-animation-noopable .mat-form-field-ripple{transition:none}\n",".mat-form-field-appearance-fill .mat-form-field-flex{border-radius:4px 4px 0 0;padding:.75em .75em 0 .75em}.cdk-high-contrast-active .mat-form-field-appearance-fill .mat-form-field-flex{outline:solid 1px}.mat-form-field-appearance-fill .mat-form-field-underline::before{content:\"\";display:block;position:absolute;bottom:0;height:1px;width:100%}.mat-form-field-appearance-fill .mat-form-field-ripple{bottom:0;height:2px}.cdk-high-contrast-active .mat-form-field-appearance-fill .mat-form-field-ripple{height:0;border-top:solid 2px}.mat-form-field-appearance-fill:not(.mat-form-field-disabled) .mat-form-field-flex:hover~.mat-form-field-underline .mat-form-field-ripple{opacity:1;transform:none;transition:opacity 600ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-form-field-appearance-fill._mat-animation-noopable:not(.mat-form-field-disabled) .mat-form-field-flex:hover~.mat-form-field-underline .mat-form-field-ripple{transition:none}.mat-form-field-appearance-fill .mat-form-field-subscript-wrapper{padding:0 1em}\n",".mat-input-element{font:inherit;background:transparent;color:currentColor;border:none;outline:none;padding:0;margin:0;width:100%;max-width:100%;vertical-align:bottom;text-align:inherit}.mat-input-element:-moz-ui-invalid{box-shadow:none}.mat-input-element::-ms-clear,.mat-input-element::-ms-reveal{display:none}.mat-input-element,.mat-input-element::-webkit-search-cancel-button,.mat-input-element::-webkit-search-decoration,.mat-input-element::-webkit-search-results-button,.mat-input-element::-webkit-search-results-decoration{-webkit-appearance:none}.mat-input-element::-webkit-contacts-auto-fill-button,.mat-input-element::-webkit-caps-lock-indicator,.mat-input-element::-webkit-credentials-auto-fill-button{visibility:hidden}.mat-input-element[type=date],.mat-input-element[type=datetime],.mat-input-element[type=datetime-local],.mat-input-element[type=month],.mat-input-element[type=week],.mat-input-element[type=time]{line-height:1}.mat-input-element[type=date]::after,.mat-input-element[type=datetime]::after,.mat-input-element[type=datetime-local]::after,.mat-input-element[type=month]::after,.mat-input-element[type=week]::after,.mat-input-element[type=time]::after{content:\" \";white-space:pre;width:1px}.mat-input-element::-webkit-inner-spin-button,.mat-input-element::-webkit-calendar-picker-indicator,.mat-input-element::-webkit-clear-button{font-size:.75em}.mat-input-element::placeholder{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;transition:color 400ms 133.3333333333ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-input-element::placeholder:-ms-input-placeholder{-ms-user-select:text}.mat-input-element::-moz-placeholder{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;transition:color 400ms 133.3333333333ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-input-element::-moz-placeholder:-ms-input-placeholder{-ms-user-select:text}.mat-input-element::-webkit-input-placeholder{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;transition:color 400ms 133.3333333333ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-input-element::-webkit-input-placeholder:-ms-input-placeholder{-ms-user-select:text}.mat-input-element:-ms-input-placeholder{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;transition:color 400ms 133.3333333333ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-input-element:-ms-input-placeholder:-ms-input-placeholder{-ms-user-select:text}.mat-form-field-hide-placeholder .mat-input-element::placeholder{color:transparent !important;-webkit-text-fill-color:transparent;transition:none}.mat-form-field-hide-placeholder .mat-input-element::-moz-placeholder{color:transparent !important;-webkit-text-fill-color:transparent;transition:none}.mat-form-field-hide-placeholder .mat-input-element::-webkit-input-placeholder{color:transparent !important;-webkit-text-fill-color:transparent;transition:none}.mat-form-field-hide-placeholder .mat-input-element:-ms-input-placeholder{color:transparent !important;-webkit-text-fill-color:transparent;transition:none}textarea.mat-input-element{resize:vertical;overflow:auto}textarea.mat-input-element.cdk-textarea-autosize{resize:none}textarea.mat-input-element{padding:2px 0;margin:-2px 0}select.mat-input-element{-moz-appearance:none;-webkit-appearance:none;position:relative;background-color:transparent;display:inline-flex;box-sizing:border-box;padding-top:1em;top:-1em;margin-bottom:-1em}select.mat-input-element::-ms-expand{display:none}select.mat-input-element::-moz-focus-inner{border:0}select.mat-input-element:not(:disabled){cursor:pointer}select.mat-input-element::-ms-value{color:inherit;background:none}.mat-focused .cdk-high-contrast-active select.mat-input-element::-ms-value{color:inherit}.mat-form-field-type-mat-native-select .mat-form-field-infix::after{content:\"\";width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid;position:absolute;top:50%;right:0;margin-top:-2.5px;pointer-events:none}[dir=rtl] .mat-form-field-type-mat-native-select .mat-form-field-infix::after{right:auto;left:0}.mat-form-field-type-mat-native-select .mat-input-element{padding-right:15px}[dir=rtl] .mat-form-field-type-mat-native-select .mat-input-element{padding-right:0;padding-left:15px}.mat-form-field-type-mat-native-select .mat-form-field-label-wrapper{max-width:calc(100% - 10px)}.mat-form-field-type-mat-native-select.mat-form-field-appearance-outline .mat-form-field-infix::after{margin-top:-5px}.mat-form-field-type-mat-native-select.mat-form-field-appearance-fill .mat-form-field-infix::after{margin-top:-10px}\n",".mat-form-field-appearance-legacy .mat-form-field-label{transform:perspective(100px);-ms-transform:none}.mat-form-field-appearance-legacy .mat-form-field-prefix .mat-icon,.mat-form-field-appearance-legacy .mat-form-field-suffix .mat-icon{width:1em}.mat-form-field-appearance-legacy .mat-form-field-prefix .mat-icon-button,.mat-form-field-appearance-legacy .mat-form-field-suffix .mat-icon-button{font:inherit;vertical-align:baseline}.mat-form-field-appearance-legacy .mat-form-field-prefix .mat-icon-button .mat-icon,.mat-form-field-appearance-legacy .mat-form-field-suffix .mat-icon-button .mat-icon{font-size:inherit}.mat-form-field-appearance-legacy .mat-form-field-underline{height:1px}.cdk-high-contrast-active .mat-form-field-appearance-legacy .mat-form-field-underline{height:0;border-top:solid 1px}.mat-form-field-appearance-legacy .mat-form-field-ripple{top:0;height:2px;overflow:hidden}.cdk-high-contrast-active .mat-form-field-appearance-legacy .mat-form-field-ripple{height:0;border-top:solid 2px}.mat-form-field-appearance-legacy.mat-form-field-disabled .mat-form-field-underline{background-position:0;background-color:transparent}.cdk-high-contrast-active .mat-form-field-appearance-legacy.mat-form-field-disabled .mat-form-field-underline{border-top-style:dotted;border-top-width:2px}.mat-form-field-appearance-legacy.mat-form-field-invalid:not(.mat-focused) .mat-form-field-ripple{height:1px}\n",".mat-form-field-appearance-outline .mat-form-field-wrapper{margin:.25em 0}.mat-form-field-appearance-outline .mat-form-field-flex{padding:0 .75em 0 .75em;margin-top:-0.25em;position:relative}.mat-form-field-appearance-outline .mat-form-field-prefix,.mat-form-field-appearance-outline .mat-form-field-suffix{top:.25em}.mat-form-field-appearance-outline .mat-form-field-outline{display:flex;position:absolute;top:.25em;left:0;right:0;bottom:0;pointer-events:none}.mat-form-field-appearance-outline .mat-form-field-outline-start,.mat-form-field-appearance-outline .mat-form-field-outline-end{border:1px solid currentColor;min-width:5px}.mat-form-field-appearance-outline .mat-form-field-outline-start{border-radius:5px 0 0 5px;border-right-style:none}[dir=rtl] .mat-form-field-appearance-outline .mat-form-field-outline-start{border-right-style:solid;border-left-style:none;border-radius:0 5px 5px 0}.mat-form-field-appearance-outline .mat-form-field-outline-end{border-radius:0 5px 5px 0;border-left-style:none;flex-grow:1}[dir=rtl] .mat-form-field-appearance-outline .mat-form-field-outline-end{border-left-style:solid;border-right-style:none;border-radius:5px 0 0 5px}.mat-form-field-appearance-outline .mat-form-field-outline-gap{border-radius:.000001px;border:1px solid currentColor;border-left-style:none;border-right-style:none}.mat-form-field-appearance-outline.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-outline-gap{border-top-color:transparent}.mat-form-field-appearance-outline .mat-form-field-outline-thick{opacity:0}.mat-form-field-appearance-outline .mat-form-field-outline-thick .mat-form-field-outline-start,.mat-form-field-appearance-outline .mat-form-field-outline-thick .mat-form-field-outline-end,.mat-form-field-appearance-outline .mat-form-field-outline-thick .mat-form-field-outline-gap{border-width:2px}.mat-form-field-appearance-outline.mat-focused .mat-form-field-outline,.mat-form-field-appearance-outline.mat-form-field-invalid .mat-form-field-outline{opacity:0;transition:opacity 100ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-form-field-appearance-outline.mat-focused .mat-form-field-outline-thick,.mat-form-field-appearance-outline.mat-form-field-invalid .mat-form-field-outline-thick{opacity:1}.mat-form-field-appearance-outline:not(.mat-form-field-disabled) .mat-form-field-flex:hover .mat-form-field-outline{opacity:0;transition:opacity 600ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-form-field-appearance-outline:not(.mat-form-field-disabled) .mat-form-field-flex:hover .mat-form-field-outline-thick{opacity:1}.mat-form-field-appearance-outline .mat-form-field-subscript-wrapper{padding:0 1em}.mat-form-field-appearance-outline._mat-animation-noopable:not(.mat-form-field-disabled) .mat-form-field-flex:hover~.mat-form-field-outline,.mat-form-field-appearance-outline._mat-animation-noopable .mat-form-field-outline,.mat-form-field-appearance-outline._mat-animation-noopable .mat-form-field-outline-start,.mat-form-field-appearance-outline._mat-animation-noopable .mat-form-field-outline-end,.mat-form-field-appearance-outline._mat-animation-noopable .mat-form-field-outline-gap{transition:none}\n",".mat-form-field-appearance-standard .mat-form-field-flex{padding-top:.75em}.mat-form-field-appearance-standard .mat-form-field-underline{height:1px}.cdk-high-contrast-active .mat-form-field-appearance-standard .mat-form-field-underline{height:0;border-top:solid 1px}.mat-form-field-appearance-standard .mat-form-field-ripple{bottom:0;height:2px}.cdk-high-contrast-active .mat-form-field-appearance-standard .mat-form-field-ripple{height:0;border-top:2px}.mat-form-field-appearance-standard.mat-form-field-disabled .mat-form-field-underline{background-position:0;background-color:transparent}.cdk-high-contrast-active .mat-form-field-appearance-standard.mat-form-field-disabled .mat-form-field-underline{border-top-style:dotted;border-top-width:2px}.mat-form-field-appearance-standard:not(.mat-form-field-disabled) .mat-form-field-flex:hover~.mat-form-field-underline .mat-form-field-ripple{opacity:1;transform:none;transition:opacity 600ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-form-field-appearance-standard._mat-animation-noopable:not(.mat-form-field-disabled) .mat-form-field-flex:hover~.mat-form-field-underline .mat-form-field-ripple{transition:none}\n"]}]}],"members":{"appearance":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":176,"character":3}}]}],"hideRequiredMarker":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":190,"character":3}}]}],"_shouldAlwaysFloat":[{"__symbolic":"method"}],"_canLabelFloat":[{"__symbolic":"method"}],"hintLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":212,"character":3}}]}],"floatLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":234,"character":3}}]}],"underlineRef":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":253,"character":3},"arguments":["underline"]}]}],"_connectionContainerRef":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":255,"character":3},"arguments":["connectionContainer",{"static":true}]}]}],"_inputContainerRef":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":256,"character":3},"arguments":["inputContainer"]}]}],"_label":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":257,"character":3},"arguments":["label"]}]}],"_controlNonStatic":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":259,"character":3},"arguments":[{"__symbolic":"reference","name":"MatFormFieldControl"}]}]}],"_controlStatic":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":260,"character":3},"arguments":[{"__symbolic":"reference","name":"MatFormFieldControl"},{"static":true}]}]}],"_labelChildNonStatic":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":271,"character":3},"arguments":[{"__symbolic":"reference","name":"MatLabel"}]}]}],"_labelChildStatic":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":272,"character":3},"arguments":[{"__symbolic":"reference","name":"MatLabel"},{"static":true}]}]}],"_placeholderChild":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":273,"character":3},"arguments":[{"__symbolic":"reference","name":"MatPlaceholder"}]}]}],"_errorChildren":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChildren","line":276,"character":3},"arguments":[{"__symbolic":"reference","name":"MAT_ERROR"},{"descendants":true}]}]}],"_hintChildren":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChildren","line":278,"character":3},"arguments":[{"__symbolic":"reference","name":"_MAT_HINT"},{"descendants":true}]}]}],"_prefixChildren":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChildren","line":280,"character":3},"arguments":[{"__symbolic":"reference","name":"MAT_PREFIX"},{"descendants":true}]}]}],"_suffixChildren":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChildren","line":282,"character":3},"arguments":[{"__symbolic":"reference","name":"MAT_SUFFIX"},{"descendants":true}]}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":286,"character":7}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":286,"character":19},"arguments":[{"__symbolic":"reference","module":"@angular/material/core","name":"MAT_LABEL_GLOBAL_OPTIONS","line":286,"character":26}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":287,"character":7}}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":288,"character":7}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":288,"character":19},"arguments":[{"__symbolic":"reference","name":"MAT_FORM_FIELD_DEFAULT_OPTIONS"}]}],null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":290,"character":7}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":290,"character":19},"arguments":[{"__symbolic":"reference","module":"@angular/platform-browser/animations","name":"ANIMATION_MODULE_TYPE","line":290,"character":26}]}]],"parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":285,"character":26},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":285,"character":66},{"__symbolic":"reference","module":"@angular/material/core","name":"LabelOptions","line":286,"character":66},{"__symbolic":"reference","module":"@angular/cdk/bidi","name":"Directionality","line":287,"character":32},{"__symbolic":"reference","name":"any"},{"__symbolic":"reference","module":"@angular/cdk/platform","name":"Platform","line":289,"character":57},{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":289,"character":84},{"__symbolic":"reference","name":"string"}]}],"getLabelId":[{"__symbolic":"method"}],"getConnectedOverlayOrigin":[{"__symbolic":"method"}],"ngAfterContentInit":[{"__symbolic":"method"}],"ngAfterContentChecked":[{"__symbolic":"method"}],"ngAfterViewInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"_shouldForward":[{"__symbolic":"method"}],"_hasPlaceholder":[{"__symbolic":"method"}],"_hasLabel":[{"__symbolic":"method"}],"_shouldLabelFloat":[{"__symbolic":"method"}],"_hideControlPlaceholder":[{"__symbolic":"method"}],"_hasFloatingLabel":[{"__symbolic":"method"}],"_getDisplayedMessages":[{"__symbolic":"method"}],"_animateAndLockLabel":[{"__symbolic":"method"}],"_validatePlaceholders":[{"__symbolic":"method"}],"_processHints":[{"__symbolic":"method"}],"_validateHints":[{"__symbolic":"method"}],"_getDefaultFloatLabelState":[{"__symbolic":"method"}],"_syncDescribedByIds":[{"__symbolic":"method"}],"_validateControlChild":[{"__symbolic":"method"}],"updateOutlineGap":[{"__symbolic":"method"}],"_getStartEnd":[{"__symbolic":"method"}],"_isAttachedToDOM":[{"__symbolic":"method"}]}},"MatFormFieldControl":{"__symbolic":"class","arity":1,"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":14,"character":1}}],"members":{"setDescribedByIds":[{"__symbolic":"method"}],"onContainerClick":[{"__symbolic":"method"}]}},"getMatFormFieldPlaceholderConflictError":{"__symbolic":"function","parameters":[],"value":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"Error"},"arguments":["Placeholder attribute and child element were both specified."]}},"getMatFormFieldDuplicatedHintError":{"__symbolic":"function","parameters":["align"],"value":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"Error"},"arguments":[{"__symbolic":"binop","operator":"+","left":{"__symbolic":"binop","operator":"+","left":"A hint was already declared for 'align=\"","right":{"__symbolic":"reference","name":"align"}},"right":"\"'."}]}},"getMatFormFieldMissingControlError":{"__symbolic":"function","parameters":[],"value":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"Error"},"arguments":["mat-form-field must contain a MatFormFieldControl."]}},"_MAT_HINT":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":20,"character":29},"arguments":["MatHint"]},"MatHint":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":23,"character":1},"arguments":[{"selector":"mat-hint","host":{"class":"mat-hint","[class.mat-right]":"align == \"end\"","[attr.id]":"id","[attr.align]":"null","$quoted$":["class","[class.mat-right]","[attr.id]","[attr.align]"]},"providers":[{"provide":{"__symbolic":"reference","name":"_MAT_HINT"},"useExisting":{"__symbolic":"reference","name":"MatHint"}}]}]}],"members":{"align":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":36,"character":3}}]}],"id":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":39,"character":3}}]}]}},"MatPlaceholder":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":17,"character":1},"arguments":[{"selector":"mat-placeholder"}]}],"members":{}},"MAT_PREFIX":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":15,"character":30},"arguments":["MatPrefix"]},"MatPrefix":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":18,"character":1},"arguments":[{"selector":"[matPrefix]","providers":[{"provide":{"__symbolic":"reference","name":"MAT_PREFIX"},"useExisting":{"__symbolic":"reference","name":"MatPrefix"}}]}]}],"members":{}},"MAT_SUFFIX":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":15,"character":30},"arguments":["MatSuffix"]},"MatSuffix":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":18,"character":1},"arguments":[{"selector":"[matSuffix]","providers":[{"provide":{"__symbolic":"reference","name":"MAT_SUFFIX"},"useExisting":{"__symbolic":"reference","name":"MatSuffix"}}]}]}],"members":{}},"MatLabel":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":12,"character":1},"arguments":[{"selector":"mat-label"}]}],"members":{}},"matFormFieldAnimations":{"transitionMessages":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"trigger","line":24,"character":22},"arguments":["transitionMessages",[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"state","line":26,"character":4},"arguments":["enter",{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":26,"character":19},"arguments":[{"opacity":1,"transform":"translateY(0%)"}]}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"transition","line":27,"character":4},"arguments":["void => enter",[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":28,"character":6},"arguments":[{"opacity":0,"transform":"translateY(-100%)"}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"animate","line":29,"character":6},"arguments":["300ms cubic-bezier(0.55, 0, 0.55, 0.2)"]}]]}]]}}},"origins":{"MatFormFieldModule":"./form-field-module","MAT_ERROR":"./error","MatError":"./error","MatFormFieldAppearance":"./form-field","FloatLabelType":"./form-field","MatFormFieldDefaultOptions":"./form-field","MAT_FORM_FIELD_DEFAULT_OPTIONS":"./form-field","MAT_FORM_FIELD":"./form-field","MatFormField":"./form-field","MatFormFieldControl":"./form-field-control","getMatFormFieldPlaceholderConflictError":"./form-field-errors","getMatFormFieldDuplicatedHintError":"./form-field-errors","getMatFormFieldMissingControlError":"./form-field-errors","_MAT_HINT":"./hint","MatHint":"./hint","MatPlaceholder":"./placeholder","MAT_PREFIX":"./prefix","MatPrefix":"./prefix","MAT_SUFFIX":"./suffix","MatSuffix":"./suffix","MatLabel":"./label","matFormFieldAnimations":"./form-field-animations"},"importAs":"@angular/material/form-field"}
@@ -192,14 +192,10 @@ export declare class MatIconRegistry implements OnDestroy {
192
192
  */
193
193
  private _loadSvgIconFromConfig;
194
194
  /**
195
- * Loads the content of the icon set URL specified in the SvgIconConfig and creates an SVG element
196
- * from it.
195
+ * Loads the content of the icon set URL specified in the
196
+ * SvgIconConfig and attaches it to the config.
197
197
  */
198
198
  private _loadSvgIconSetFromConfig;
199
- /**
200
- * Creates a DOM element from the given SVG string, and adds default attributes.
201
- */
202
- private _createSvgElementForSingleIcon;
203
199
  /**
204
200
  * Searches the cached element of the given SvgIconConfig for a nested icon element whose "id"
205
201
  * tag matches the specified name. If found, copies the nested element to a new SVG element and
@@ -236,6 +232,8 @@ export declare class MatIconRegistry implements OnDestroy {
236
232
  * @param config Config to be registered.
237
233
  */
238
234
  private _addSvgIconSetConfig;
235
+ /** Parses a config's text into an SVG element. */
236
+ private _svgElementFromConfig;
239
237
  }
240
238
  /** @docs-private */
241
239
  export declare function ICON_REGISTRY_PROVIDER_FACTORY(parentRegistry: MatIconRegistry, httpClient: HttpClient, sanitizer: DomSanitizer, errorHandler: ErrorHandler, document?: any): MatIconRegistry;
package/icon/icon.d.ts CHANGED
@@ -80,6 +80,8 @@ export declare class MatIcon extends _MatIconMixinBase implements OnChanges, OnI
80
80
  private _fontIcon;
81
81
  private _previousFontSetClass;
82
82
  private _previousFontIconClass;
83
+ _svgName: string | null;
84
+ _svgNamespace: string | null;
83
85
  /** Keeps track of the current page path. */
84
86
  private _previousPath?;
85
87
  /** Keeps track of the elements and attributes that we've prefixed with the current path. */
@@ -105,7 +107,7 @@ export declare class MatIcon extends _MatIconMixinBase implements OnChanges, OnI
105
107
  ngOnInit(): void;
106
108
  ngAfterViewChecked(): void;
107
109
  ngOnDestroy(): void;
108
- private _usingFontIcon;
110
+ _usingFontIcon(): boolean;
109
111
  private _setSvgElement;
110
112
  private _clearSvgElement;
111
113
  private _updateFontIconClasses;
@@ -1 +1 @@
1
- {"__symbolic":"module","version":4,"metadata":{"MatIconModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":13,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/material/core","name":"MatCommonModule","line":14,"character":12}],"exports":[{"__symbolic":"reference","name":"MatIcon"},{"__symbolic":"reference","module":"@angular/material/core","name":"MatCommonModule","line":15,"character":21}],"declarations":[{"__symbolic":"reference","name":"MatIcon"}]}]}],"members":{}},"MAT_ICON_LOCATION":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":46,"character":37},"arguments":["mat-icon-location",{"providedIn":"root","factory":{"__symbolic":"reference","name":"MAT_ICON_LOCATION_FACTORY"}}]},"MatIconLocation":{"__symbolic":"interface"},"MAT_ICON_LOCATION_FACTORY":{"__symbolic":"function"},"MatIcon":{"__symbolic":"class","extends":{"__symbolic":"error","message":"Symbol reference expected","line":136,"character":29,"module":"./icon"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":121,"character":1},"arguments":[{"template":"<ng-content></ng-content>","selector":"mat-icon","exportAs":"matIcon","inputs":["color"],"host":{"role":"img","class":"mat-icon notranslate","[class.mat-icon-inline]":"inline","[class.mat-icon-no-color]":"color !== \"primary\" && color !== \"accent\" && color !== \"warn\"","$quoted$":["role","class","[class.mat-icon-inline]","[class.mat-icon-no-color]"]},"encapsulation":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewEncapsulation","line":133,"character":17},"member":"None"},"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":134,"character":19},"member":"OnPush"},"styles":[".mat-icon{background-repeat:no-repeat;display:inline-block;fill:currentColor;height:24px;width:24px}.mat-icon.mat-icon-inline{font-size:inherit;height:inherit;line-height:inherit;width:inherit}[dir=rtl] .mat-icon-rtl-mirror{transform:scale(-1, 1)}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .mat-icon,.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .mat-icon{display:block}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .mat-icon-button .mat-icon,.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .mat-icon-button .mat-icon{margin:auto}\n"]}]}],"members":{"inline":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":143,"character":3}}]}],"svgIcon":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":153,"character":3}}]}],"fontSet":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":156,"character":3}}]}],"fontIcon":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":164,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Attribute","line":185,"character":7},"arguments":["aria-hidden"]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":186,"character":7},"arguments":[{"__symbolic":"reference","name":"MAT_ICON_LOCATION"}]}],null],"parameters":[{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":184,"character":29,"context":{"typeName":"HTMLElement"},"module":"./icon"}]},{"__symbolic":"reference","name":"MatIconRegistry"},{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"any"},{"__symbolic":"reference","module":"@angular/core","name":"ErrorHandler","line":187,"character":38}]}],"_splitIconName":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}],"ngOnInit":[{"__symbolic":"method"}],"ngAfterViewChecked":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"_usingFontIcon":[{"__symbolic":"method"}],"_setSvgElement":[{"__symbolic":"method"}],"_clearSvgElement":[{"__symbolic":"method"}],"_updateFontIconClasses":[{"__symbolic":"method"}],"_cleanupFontValue":[{"__symbolic":"method"}],"_prependPathToReferences":[{"__symbolic":"method"}],"_cacheChildrenWithExternalReferences":[{"__symbolic":"method"}]}},"getMatIconNameNotFoundError":{"__symbolic":"function","parameters":["iconName"],"value":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"Error"},"arguments":[{"__symbolic":"binop","operator":"+","left":{"__symbolic":"binop","operator":"+","left":"Unable to find icon with the name \"","right":{"__symbolic":"reference","name":"iconName"}},"right":"\""}]}},"getMatIconNoHttpProviderError":{"__symbolic":"function","parameters":[],"value":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"Error"},"arguments":["Could not find HttpClient provider for use with Angular Material icons. Please include the HttpClientModule from @angular/common/http in your app imports."]}},"getMatIconFailedToSanitizeUrlError":{"__symbolic":"function","parameters":["url"],"value":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"Error"},"arguments":[{"__symbolic":"binop","operator":"+","left":"The URL provided to MatIconRegistry was not trusted as a resource URL ","right":{"__symbolic":"binop","operator":"+","left":{"__symbolic":"binop","operator":"+","left":"via Angular's DomSanitizer. Attempted URL was \"","right":{"__symbolic":"reference","name":"url"}},"right":"\"."}}]}},"getMatIconFailedToSanitizeLiteralError":{"__symbolic":"function","parameters":["literal"],"value":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"Error"},"arguments":[{"__symbolic":"binop","operator":"+","left":"The literal provided to MatIconRegistry was not trusted as safe HTML by ","right":{"__symbolic":"binop","operator":"+","left":{"__symbolic":"binop","operator":"+","left":"Angular's DomSanitizer. Attempted literal was \"","right":{"__symbolic":"reference","name":"literal"}},"right":"\"."}}]}},"IconOptions":{"__symbolic":"interface"},"MatIconRegistry":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":104,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":136,"character":5}}],null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":138,"character":5}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":138,"character":17},"arguments":[{"__symbolic":"reference","module":"@angular/common","name":"DOCUMENT","line":138,"character":24}]}],null],"parameters":[{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClient","line":136,"character":37},{"__symbolic":"reference","module":"@angular/platform-browser","name":"DomSanitizer","line":137,"character":24},{"__symbolic":"reference","name":"any"},{"__symbolic":"reference","module":"@angular/core","name":"ErrorHandler","line":139,"character":36}]}],"addSvgIcon":[{"__symbolic":"method"}],"addSvgIconLiteral":[{"__symbolic":"method"}],"addSvgIconInNamespace":[{"__symbolic":"method"}],"addSvgIconLiteralInNamespace":[{"__symbolic":"method"}],"addSvgIconSet":[{"__symbolic":"method"}],"addSvgIconSetLiteral":[{"__symbolic":"method"}],"addSvgIconSetInNamespace":[{"__symbolic":"method"}],"addSvgIconSetLiteralInNamespace":[{"__symbolic":"method"}],"registerFontClassAlias":[{"__symbolic":"method"}],"classNameForFontAlias":[{"__symbolic":"method"}],"setDefaultFontSetClass":[{"__symbolic":"method"}],"getDefaultFontSetClass":[{"__symbolic":"method"}],"getSvgIconFromUrl":[{"__symbolic":"method"}],"getNamedSvgIcon":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"_getSvgFromConfig":[{"__symbolic":"method"}],"_getSvgFromIconSetConfigs":[{"__symbolic":"method"}],"_extractIconWithNameFromAnySet":[{"__symbolic":"method"}],"_loadSvgIconFromConfig":[{"__symbolic":"method"}],"_loadSvgIconSetFromConfig":[{"__symbolic":"method"}],"_createSvgElementForSingleIcon":[{"__symbolic":"method"}],"_extractSvgIconFromSet":[{"__symbolic":"method"}],"_svgElementFromString":[{"__symbolic":"method"}],"_toSvgElement":[{"__symbolic":"method"}],"_setSvgAttributes":[{"__symbolic":"method"}],"_fetchIcon":[{"__symbolic":"method"}],"_addSvgIconConfig":[{"__symbolic":"method"}],"_addSvgIconSetConfig":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"ICON_REGISTRY_PROVIDER_FACTORY":{"__symbolic":"function","parameters":["parentRegistry","httpClient","sanitizer","errorHandler","document"],"value":{"__symbolic":"binop","operator":"||","left":{"__symbolic":"reference","name":"parentRegistry"},"right":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"MatIconRegistry"},"arguments":[{"__symbolic":"reference","name":"httpClient"},{"__symbolic":"reference","name":"sanitizer"},{"__symbolic":"reference","name":"document"},{"__symbolic":"reference","name":"errorHandler"}]}}},"ICON_REGISTRY_PROVIDER":{"provide":{"__symbolic":"reference","name":"MatIconRegistry"},"deps":[[{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":647,"character":9}},{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"SkipSelf","line":647,"character":25}},{"__symbolic":"reference","name":"MatIconRegistry"}],[{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":648,"character":9}},{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClient","line":136,"character":37}],{"__symbolic":"reference","module":"@angular/platform-browser","name":"DomSanitizer","line":137,"character":24},{"__symbolic":"reference","module":"@angular/core","name":"ErrorHandler","line":139,"character":36},[{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":651,"character":9}},{"__symbolic":"reference","module":"@angular/common","name":"DOCUMENT","line":651,"character":21}]],"useFactory":{"__symbolic":"reference","name":"ICON_REGISTRY_PROVIDER_FACTORY"}}},"origins":{"MatIconModule":"./icon-module","MAT_ICON_LOCATION":"./icon","MatIconLocation":"./icon","MAT_ICON_LOCATION_FACTORY":"./icon","MatIcon":"./icon","getMatIconNameNotFoundError":"./icon-registry","getMatIconNoHttpProviderError":"./icon-registry","getMatIconFailedToSanitizeUrlError":"./icon-registry","getMatIconFailedToSanitizeLiteralError":"./icon-registry","IconOptions":"./icon-registry","MatIconRegistry":"./icon-registry","ICON_REGISTRY_PROVIDER_FACTORY":"./icon-registry","ICON_REGISTRY_PROVIDER":"./icon-registry"},"importAs":"@angular/material/icon"}
1
+ {"__symbolic":"module","version":4,"metadata":{"MatIconModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":13,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/material/core","name":"MatCommonModule","line":14,"character":12}],"exports":[{"__symbolic":"reference","name":"MatIcon"},{"__symbolic":"reference","module":"@angular/material/core","name":"MatCommonModule","line":15,"character":21}],"declarations":[{"__symbolic":"reference","name":"MatIcon"}]}]}],"members":{}},"MAT_ICON_LOCATION":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":46,"character":37},"arguments":["mat-icon-location",{"providedIn":"root","factory":{"__symbolic":"reference","name":"MAT_ICON_LOCATION_FACTORY"}}]},"MatIconLocation":{"__symbolic":"interface"},"MAT_ICON_LOCATION_FACTORY":{"__symbolic":"function"},"MatIcon":{"__symbolic":"class","extends":{"__symbolic":"error","message":"Symbol reference expected","line":139,"character":29,"module":"./icon"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":121,"character":1},"arguments":[{"template":"<ng-content></ng-content>","selector":"mat-icon","exportAs":"matIcon","inputs":["color"],"host":{"role":"img","class":"mat-icon notranslate","[attr.data-mat-icon-type]":"_usingFontIcon() ? \"font\" : \"svg\"","[attr.data-mat-icon-name]":"_svgName || fontIcon","[attr.data-mat-icon-namespace]":"_svgNamespace || fontSet","[class.mat-icon-inline]":"inline","[class.mat-icon-no-color]":"color !== \"primary\" && color !== \"accent\" && color !== \"warn\"","$quoted$":["role","class","[attr.data-mat-icon-type]","[attr.data-mat-icon-name]","[attr.data-mat-icon-namespace]","[class.mat-icon-inline]","[class.mat-icon-no-color]"]},"encapsulation":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewEncapsulation","line":136,"character":17},"member":"None"},"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":137,"character":19},"member":"OnPush"},"styles":[".mat-icon{background-repeat:no-repeat;display:inline-block;fill:currentColor;height:24px;width:24px}.mat-icon.mat-icon-inline{font-size:inherit;height:inherit;line-height:inherit;width:inherit}[dir=rtl] .mat-icon-rtl-mirror{transform:scale(-1, 1)}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .mat-icon,.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .mat-icon{display:block}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .mat-icon-button .mat-icon,.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .mat-icon-button .mat-icon{margin:auto}\n"]}]}],"members":{"inline":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":146,"character":3}}]}],"svgIcon":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":156,"character":3}}]}],"fontSet":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":159,"character":3}}]}],"fontIcon":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":167,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Attribute","line":191,"character":7},"arguments":["aria-hidden"]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":192,"character":7},"arguments":[{"__symbolic":"reference","name":"MAT_ICON_LOCATION"}]}],null],"parameters":[{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":190,"character":29,"context":{"typeName":"HTMLElement"},"module":"./icon"}]},{"__symbolic":"reference","name":"MatIconRegistry"},{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"any"},{"__symbolic":"reference","module":"@angular/core","name":"ErrorHandler","line":193,"character":38}]}],"_splitIconName":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}],"ngOnInit":[{"__symbolic":"method"}],"ngAfterViewChecked":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"_usingFontIcon":[{"__symbolic":"method"}],"_setSvgElement":[{"__symbolic":"method"}],"_clearSvgElement":[{"__symbolic":"method"}],"_updateFontIconClasses":[{"__symbolic":"method"}],"_cleanupFontValue":[{"__symbolic":"method"}],"_prependPathToReferences":[{"__symbolic":"method"}],"_cacheChildrenWithExternalReferences":[{"__symbolic":"method"}]}},"getMatIconNameNotFoundError":{"__symbolic":"function","parameters":["iconName"],"value":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"Error"},"arguments":[{"__symbolic":"binop","operator":"+","left":{"__symbolic":"binop","operator":"+","left":"Unable to find icon with the name \"","right":{"__symbolic":"reference","name":"iconName"}},"right":"\""}]}},"getMatIconNoHttpProviderError":{"__symbolic":"function","parameters":[],"value":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"Error"},"arguments":["Could not find HttpClient provider for use with Angular Material icons. Please include the HttpClientModule from @angular/common/http in your app imports."]}},"getMatIconFailedToSanitizeUrlError":{"__symbolic":"function","parameters":["url"],"value":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"Error"},"arguments":[{"__symbolic":"binop","operator":"+","left":"The URL provided to MatIconRegistry was not trusted as a resource URL ","right":{"__symbolic":"binop","operator":"+","left":{"__symbolic":"binop","operator":"+","left":"via Angular's DomSanitizer. Attempted URL was \"","right":{"__symbolic":"reference","name":"url"}},"right":"\"."}}]}},"getMatIconFailedToSanitizeLiteralError":{"__symbolic":"function","parameters":["literal"],"value":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"Error"},"arguments":[{"__symbolic":"binop","operator":"+","left":"The literal provided to MatIconRegistry was not trusted as safe HTML by ","right":{"__symbolic":"binop","operator":"+","left":{"__symbolic":"binop","operator":"+","left":"Angular's DomSanitizer. Attempted literal was \"","right":{"__symbolic":"reference","name":"literal"}},"right":"\"."}}]}},"IconOptions":{"__symbolic":"interface"},"MatIconRegistry":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":99,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":131,"character":5}}],null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":133,"character":5}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":133,"character":17},"arguments":[{"__symbolic":"reference","module":"@angular/common","name":"DOCUMENT","line":133,"character":24}]}],null],"parameters":[{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClient","line":131,"character":37},{"__symbolic":"reference","module":"@angular/platform-browser","name":"DomSanitizer","line":132,"character":24},{"__symbolic":"reference","name":"any"},{"__symbolic":"reference","module":"@angular/core","name":"ErrorHandler","line":134,"character":36}]}],"addSvgIcon":[{"__symbolic":"method"}],"addSvgIconLiteral":[{"__symbolic":"method"}],"addSvgIconInNamespace":[{"__symbolic":"method"}],"addSvgIconLiteralInNamespace":[{"__symbolic":"method"}],"addSvgIconSet":[{"__symbolic":"method"}],"addSvgIconSetLiteral":[{"__symbolic":"method"}],"addSvgIconSetInNamespace":[{"__symbolic":"method"}],"addSvgIconSetLiteralInNamespace":[{"__symbolic":"method"}],"registerFontClassAlias":[{"__symbolic":"method"}],"classNameForFontAlias":[{"__symbolic":"method"}],"setDefaultFontSetClass":[{"__symbolic":"method"}],"getDefaultFontSetClass":[{"__symbolic":"method"}],"getSvgIconFromUrl":[{"__symbolic":"method"}],"getNamedSvgIcon":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"_getSvgFromConfig":[{"__symbolic":"method"}],"_getSvgFromIconSetConfigs":[{"__symbolic":"method"}],"_extractIconWithNameFromAnySet":[{"__symbolic":"method"}],"_loadSvgIconFromConfig":[{"__symbolic":"method"}],"_loadSvgIconSetFromConfig":[{"__symbolic":"method"}],"_extractSvgIconFromSet":[{"__symbolic":"method"}],"_svgElementFromString":[{"__symbolic":"method"}],"_toSvgElement":[{"__symbolic":"method"}],"_setSvgAttributes":[{"__symbolic":"method"}],"_fetchIcon":[{"__symbolic":"method"}],"_addSvgIconConfig":[{"__symbolic":"method"}],"_addSvgIconSetConfig":[{"__symbolic":"method"}],"_svgElementFromConfig":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"ICON_REGISTRY_PROVIDER_FACTORY":{"__symbolic":"function","parameters":["parentRegistry","httpClient","sanitizer","errorHandler","document"],"value":{"__symbolic":"binop","operator":"||","left":{"__symbolic":"reference","name":"parentRegistry"},"right":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"MatIconRegistry"},"arguments":[{"__symbolic":"reference","name":"httpClient"},{"__symbolic":"reference","name":"sanitizer"},{"__symbolic":"reference","name":"document"},{"__symbolic":"reference","name":"errorHandler"}]}}},"ICON_REGISTRY_PROVIDER":{"provide":{"__symbolic":"reference","name":"MatIconRegistry"},"deps":[[{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":642,"character":9}},{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"SkipSelf","line":642,"character":25}},{"__symbolic":"reference","name":"MatIconRegistry"}],[{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":643,"character":9}},{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClient","line":131,"character":37}],{"__symbolic":"reference","module":"@angular/platform-browser","name":"DomSanitizer","line":132,"character":24},{"__symbolic":"reference","module":"@angular/core","name":"ErrorHandler","line":134,"character":36},[{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":646,"character":9}},{"__symbolic":"reference","module":"@angular/common","name":"DOCUMENT","line":646,"character":21}]],"useFactory":{"__symbolic":"reference","name":"ICON_REGISTRY_PROVIDER_FACTORY"}}},"origins":{"MatIconModule":"./icon-module","MAT_ICON_LOCATION":"./icon","MatIconLocation":"./icon","MAT_ICON_LOCATION_FACTORY":"./icon","MatIcon":"./icon","getMatIconNameNotFoundError":"./icon-registry","getMatIconNoHttpProviderError":"./icon-registry","getMatIconFailedToSanitizeUrlError":"./icon-registry","getMatIconFailedToSanitizeLiteralError":"./icon-registry","IconOptions":"./icon-registry","MatIconRegistry":"./icon-registry","ICON_REGISTRY_PROVIDER_FACTORY":"./icon-registry","ICON_REGISTRY_PROVIDER":"./icon-registry"},"importAs":"@angular/material/icon"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * @license
3
+ * Copyright Google LLC All Rights Reserved.
4
+ *
5
+ * Use of this source code is governed by an MIT-style license that can be
6
+ * found in the LICENSE file at https://angular.io/license
7
+ */
8
+ import { BaseHarnessFilters } from '@angular/cdk/testing';
9
+ /** Possible types of icons. */
10
+ export declare const enum IconType {
11
+ SVG = 0,
12
+ FONT = 1
13
+ }
14
+ /** A set of criteria that can be used to filter a list of `MatIconHarness` instances. */
15
+ export interface IconHarnessFilters extends BaseHarnessFilters {
16
+ /** Filters based on the typef of the icon. */
17
+ type?: IconType;
18
+ /** Filters based on the name of the icon. */
19
+ name?: string | RegExp;
20
+ /** Filters based on the namespace of the icon. */
21
+ namespace?: string | null | RegExp;
22
+ }