@angular/material 7.0.4 → 7.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (488) hide show
  1. package/LICENSE +1 -1
  2. package/_theming.scss +61 -44
  3. package/autocomplete/typings/index.d.ts +1 -1
  4. package/autocomplete/typings/index.metadata.json +1 -1
  5. package/badge/typings/index.metadata.json +1 -1
  6. package/bottom-sheet/typings/bottom-sheet-config.d.ts +5 -0
  7. package/bottom-sheet/typings/bottom-sheet-container.d.ts +1 -1
  8. package/bottom-sheet/typings/index.metadata.json +1 -1
  9. package/bundles/material-autocomplete.umd.js +126 -32
  10. package/bundles/material-autocomplete.umd.js.map +1 -1
  11. package/bundles/material-autocomplete.umd.min.js +1 -1
  12. package/bundles/material-autocomplete.umd.min.js.map +1 -1
  13. package/bundles/material-badge.umd.js +38 -5
  14. package/bundles/material-badge.umd.js.map +1 -1
  15. package/bundles/material-badge.umd.min.js +1 -1
  16. package/bundles/material-badge.umd.min.js.map +1 -1
  17. package/bundles/material-bottom-sheet.umd.js +68 -21
  18. package/bundles/material-bottom-sheet.umd.js.map +1 -1
  19. package/bundles/material-bottom-sheet.umd.min.js +1 -1
  20. package/bundles/material-bottom-sheet.umd.min.js.map +1 -1
  21. package/bundles/material-button-toggle.umd.js +36 -13
  22. package/bundles/material-button-toggle.umd.js.map +1 -1
  23. package/bundles/material-button-toggle.umd.min.js +1 -1
  24. package/bundles/material-button-toggle.umd.min.js.map +1 -1
  25. package/bundles/material-button.umd.js +21 -14
  26. package/bundles/material-button.umd.js.map +1 -1
  27. package/bundles/material-button.umd.min.js +1 -1
  28. package/bundles/material-button.umd.min.js.map +1 -1
  29. package/bundles/material-card.umd.js +3 -3
  30. package/bundles/material-card.umd.js.map +1 -1
  31. package/bundles/material-card.umd.min.js +1 -1
  32. package/bundles/material-card.umd.min.js.map +1 -1
  33. package/bundles/material-checkbox.umd.js +56 -15
  34. package/bundles/material-checkbox.umd.js.map +1 -1
  35. package/bundles/material-checkbox.umd.min.js +1 -1
  36. package/bundles/material-checkbox.umd.min.js.map +1 -1
  37. package/bundles/material-chips.umd.js +124 -34
  38. package/bundles/material-chips.umd.js.map +1 -1
  39. package/bundles/material-chips.umd.min.js +1 -1
  40. package/bundles/material-chips.umd.min.js.map +1 -1
  41. package/bundles/material-core.umd.js +189 -126
  42. package/bundles/material-core.umd.js.map +1 -1
  43. package/bundles/material-core.umd.min.js +1 -1
  44. package/bundles/material-core.umd.min.js.map +1 -1
  45. package/bundles/material-datepicker.umd.js +231 -53
  46. package/bundles/material-datepicker.umd.js.map +1 -1
  47. package/bundles/material-datepicker.umd.min.js +2 -2
  48. package/bundles/material-datepicker.umd.min.js.map +1 -1
  49. package/bundles/material-dialog.umd.js +138 -40
  50. package/bundles/material-dialog.umd.js.map +1 -1
  51. package/bundles/material-dialog.umd.min.js +1 -1
  52. package/bundles/material-dialog.umd.min.js.map +1 -1
  53. package/bundles/material-divider.umd.js +2 -2
  54. package/bundles/material-divider.umd.js.map +1 -1
  55. package/bundles/material-divider.umd.min.js.map +1 -1
  56. package/bundles/material-expansion.umd.js +53 -27
  57. package/bundles/material-expansion.umd.js.map +1 -1
  58. package/bundles/material-expansion.umd.min.js +1 -1
  59. package/bundles/material-expansion.umd.min.js.map +1 -1
  60. package/bundles/material-form-field.umd.js +121 -32
  61. package/bundles/material-form-field.umd.js.map +1 -1
  62. package/bundles/material-form-field.umd.min.js +1 -1
  63. package/bundles/material-form-field.umd.min.js.map +1 -1
  64. package/bundles/material-grid-list.umd.js +66 -15
  65. package/bundles/material-grid-list.umd.js.map +1 -1
  66. package/bundles/material-grid-list.umd.min.js +1 -1
  67. package/bundles/material-grid-list.umd.min.js.map +1 -1
  68. package/bundles/material-icon.umd.js +277 -78
  69. package/bundles/material-icon.umd.js.map +1 -1
  70. package/bundles/material-icon.umd.min.js +1 -1
  71. package/bundles/material-icon.umd.min.js.map +1 -1
  72. package/bundles/material-input.umd.js +50 -22
  73. package/bundles/material-input.umd.js.map +1 -1
  74. package/bundles/material-input.umd.min.js +1 -1
  75. package/bundles/material-input.umd.min.js.map +1 -1
  76. package/bundles/material-list.umd.js +69 -21
  77. package/bundles/material-list.umd.js.map +1 -1
  78. package/bundles/material-list.umd.min.js +2 -6
  79. package/bundles/material-list.umd.min.js.map +1 -1
  80. package/bundles/material-menu.umd.js +171 -66
  81. package/bundles/material-menu.umd.js.map +1 -1
  82. package/bundles/material-menu.umd.min.js +1 -1
  83. package/bundles/material-menu.umd.min.js.map +1 -1
  84. package/bundles/material-paginator.umd.js +52 -10
  85. package/bundles/material-paginator.umd.js.map +1 -1
  86. package/bundles/material-paginator.umd.min.js +1 -1
  87. package/bundles/material-paginator.umd.min.js.map +1 -1
  88. package/bundles/material-progress-bar.umd.js +31 -12
  89. package/bundles/material-progress-bar.umd.js.map +1 -1
  90. package/bundles/material-progress-bar.umd.min.js +1 -1
  91. package/bundles/material-progress-bar.umd.min.js.map +1 -1
  92. package/bundles/material-progress-spinner.umd.js +29 -13
  93. package/bundles/material-progress-spinner.umd.js.map +1 -1
  94. package/bundles/material-progress-spinner.umd.min.js.map +1 -1
  95. package/bundles/material-radio.umd.js +38 -40
  96. package/bundles/material-radio.umd.js.map +1 -1
  97. package/bundles/material-radio.umd.min.js +1 -1
  98. package/bundles/material-radio.umd.min.js.map +1 -1
  99. package/bundles/material-select.umd.js +189 -51
  100. package/bundles/material-select.umd.js.map +1 -1
  101. package/bundles/material-select.umd.min.js +1 -1
  102. package/bundles/material-select.umd.min.js.map +1 -1
  103. package/bundles/material-sidenav.umd.js +104 -25
  104. package/bundles/material-sidenav.umd.js.map +1 -1
  105. package/bundles/material-sidenav.umd.min.js +1 -1
  106. package/bundles/material-sidenav.umd.min.js.map +1 -1
  107. package/bundles/material-slide-toggle.umd.js +30 -14
  108. package/bundles/material-slide-toggle.umd.js.map +1 -1
  109. package/bundles/material-slide-toggle.umd.min.js +1 -1
  110. package/bundles/material-slide-toggle.umd.min.js.map +1 -1
  111. package/bundles/material-slider.umd.js +91 -21
  112. package/bundles/material-slider.umd.js.map +1 -1
  113. package/bundles/material-slider.umd.min.js +1 -1
  114. package/bundles/material-slider.umd.min.js.map +1 -1
  115. package/bundles/material-snack-bar.umd.js +71 -19
  116. package/bundles/material-snack-bar.umd.js.map +1 -1
  117. package/bundles/material-snack-bar.umd.min.js +1 -1
  118. package/bundles/material-snack-bar.umd.min.js.map +1 -1
  119. package/bundles/material-sort.umd.js +46 -24
  120. package/bundles/material-sort.umd.js.map +1 -1
  121. package/bundles/material-sort.umd.min.js +1 -1
  122. package/bundles/material-sort.umd.min.js.map +1 -1
  123. package/bundles/material-stepper.umd.js +37 -35
  124. package/bundles/material-stepper.umd.js.map +1 -1
  125. package/bundles/material-stepper.umd.min.js +1 -1
  126. package/bundles/material-stepper.umd.min.js.map +1 -1
  127. package/bundles/material-table.umd.js +29 -9
  128. package/bundles/material-table.umd.js.map +1 -1
  129. package/bundles/material-table.umd.min.js.map +1 -1
  130. package/bundles/material-tabs.umd.js +170 -68
  131. package/bundles/material-tabs.umd.js.map +1 -1
  132. package/bundles/material-tabs.umd.min.js +2 -2
  133. package/bundles/material-tabs.umd.min.js.map +1 -1
  134. package/bundles/material-toolbar.umd.js +14 -4
  135. package/bundles/material-toolbar.umd.js.map +1 -1
  136. package/bundles/material-toolbar.umd.min.js +1 -1
  137. package/bundles/material-toolbar.umd.min.js.map +1 -1
  138. package/bundles/material-tooltip.umd.js +53 -26
  139. package/bundles/material-tooltip.umd.js.map +1 -1
  140. package/bundles/material-tooltip.umd.min.js +1 -1
  141. package/bundles/material-tooltip.umd.min.js.map +1 -1
  142. package/bundles/material-tree.umd.js +25 -16
  143. package/bundles/material-tree.umd.js.map +1 -1
  144. package/bundles/material-tree.umd.min.js +1 -1
  145. package/bundles/material-tree.umd.min.js.map +1 -1
  146. package/bundles/material.umd.js +2853 -1010
  147. package/bundles/material.umd.js.map +1 -1
  148. package/bundles/material.umd.min.js +19 -21
  149. package/bundles/material.umd.min.js.map +1 -1
  150. package/button/typings/button.d.ts +0 -5
  151. package/button/typings/index.metadata.json +1 -1
  152. package/button-toggle/typings/index.metadata.json +1 -1
  153. package/card/typings/index.metadata.json +1 -1
  154. package/checkbox/typings/index.metadata.json +1 -1
  155. package/chips/typings/chip-list.d.ts +1 -1
  156. package/chips/typings/chip.d.ts +2 -2
  157. package/chips/typings/index.metadata.json +1 -1
  158. package/core/typings/index.metadata.json +1 -1
  159. package/core/typings/{testing/month-constants.d.ts → month-constants.d.ts} +2 -0
  160. package/core/typings/public-api.d.ts +1 -1
  161. package/datepicker/typings/calendar-body.d.ts +21 -5
  162. package/datepicker/typings/calendar.d.ts +4 -1
  163. package/datepicker/typings/datepicker.d.ts +3 -0
  164. package/datepicker/typings/index.metadata.json +1 -1
  165. package/datepicker/typings/month-view.d.ts +4 -2
  166. package/dialog/typings/index.metadata.json +1 -1
  167. package/esm2015/autocomplete.js +60 -29
  168. package/esm2015/autocomplete.js.map +1 -1
  169. package/esm2015/badge.js +29 -6
  170. package/esm2015/badge.js.map +1 -1
  171. package/esm2015/bottom-sheet.js +45 -22
  172. package/esm2015/bottom-sheet.js.map +1 -1
  173. package/esm2015/button-toggle.js +20 -11
  174. package/esm2015/button-toggle.js.map +1 -1
  175. package/esm2015/button.js +20 -15
  176. package/esm2015/button.js.map +1 -1
  177. package/esm2015/card.js +5 -5
  178. package/esm2015/card.js.map +1 -1
  179. package/esm2015/checkbox.js +30 -12
  180. package/esm2015/checkbox.js.map +1 -1
  181. package/esm2015/chips.js +64 -28
  182. package/esm2015/chips.js.map +1 -1
  183. package/esm2015/core.js +148 -129
  184. package/esm2015/core.js.map +1 -1
  185. package/esm2015/datepicker.js +124 -41
  186. package/esm2015/datepicker.js.map +1 -1
  187. package/esm2015/dialog.js +77 -40
  188. package/esm2015/dialog.js.map +1 -1
  189. package/esm2015/divider.js +4 -4
  190. package/esm2015/divider.js.map +1 -1
  191. package/esm2015/expansion.js +58 -31
  192. package/esm2015/expansion.js.map +1 -1
  193. package/esm2015/form-field.js +94 -34
  194. package/esm2015/form-field.js.map +1 -1
  195. package/esm2015/grid-list.js +45 -17
  196. package/esm2015/grid-list.js.map +1 -1
  197. package/esm2015/icon.js +136 -67
  198. package/esm2015/icon.js.map +1 -1
  199. package/esm2015/input.js +44 -23
  200. package/esm2015/input.js.map +1 -1
  201. package/esm2015/list.js +47 -22
  202. package/esm2015/list.js.map +1 -1
  203. package/esm2015/material.js +13 -12
  204. package/esm2015/material.js.map +1 -1
  205. package/esm2015/menu.js +109 -63
  206. package/esm2015/menu.js.map +1 -1
  207. package/esm2015/paginator.js +35 -12
  208. package/esm2015/paginator.js.map +1 -1
  209. package/esm2015/progress-bar.js +26 -13
  210. package/esm2015/progress-bar.js.map +1 -1
  211. package/esm2015/progress-spinner.js +24 -14
  212. package/esm2015/progress-spinner.js.map +1 -1
  213. package/esm2015/radio.js +22 -21
  214. package/esm2015/radio.js.map +1 -1
  215. package/esm2015/select.js +116 -53
  216. package/esm2015/select.js.map +1 -1
  217. package/esm2015/sidenav.js +75 -28
  218. package/esm2015/sidenav.js.map +1 -1
  219. package/esm2015/slide-toggle.js +23 -15
  220. package/esm2015/slide-toggle.js.map +1 -1
  221. package/esm2015/slider.js +54 -24
  222. package/esm2015/slider.js.map +1 -1
  223. package/esm2015/snack-bar.js +41 -21
  224. package/esm2015/snack-bar.js.map +1 -1
  225. package/esm2015/sort.js +47 -24
  226. package/esm2015/sort.js.map +1 -1
  227. package/esm2015/stepper.js +35 -32
  228. package/esm2015/stepper.js.map +1 -1
  229. package/esm2015/table.js +31 -11
  230. package/esm2015/table.js.map +1 -1
  231. package/esm2015/tabs.js +113 -53
  232. package/esm2015/tabs.js.map +1 -1
  233. package/esm2015/toolbar.js +9 -5
  234. package/esm2015/toolbar.js.map +1 -1
  235. package/esm2015/tooltip.js +43 -28
  236. package/esm2015/tooltip.js.map +1 -1
  237. package/esm2015/tree.js +22 -17
  238. package/esm2015/tree.js.map +1 -1
  239. package/esm5/autocomplete.es5.js +128 -34
  240. package/esm5/autocomplete.es5.js.map +1 -1
  241. package/esm5/badge.es5.js +40 -7
  242. package/esm5/badge.es5.js.map +1 -1
  243. package/esm5/bottom-sheet.es5.js +70 -23
  244. package/esm5/bottom-sheet.es5.js.map +1 -1
  245. package/esm5/button-toggle.es5.js +38 -15
  246. package/esm5/button-toggle.es5.js.map +1 -1
  247. package/esm5/button.es5.js +23 -16
  248. package/esm5/button.es5.js.map +1 -1
  249. package/esm5/card.es5.js +5 -5
  250. package/esm5/card.es5.js.map +1 -1
  251. package/esm5/checkbox.es5.js +58 -17
  252. package/esm5/checkbox.es5.js.map +1 -1
  253. package/esm5/chips.es5.js +127 -37
  254. package/esm5/chips.es5.js.map +1 -1
  255. package/esm5/core.es5.js +192 -129
  256. package/esm5/core.es5.js.map +1 -1
  257. package/esm5/datepicker.es5.js +233 -55
  258. package/esm5/datepicker.es5.js.map +1 -1
  259. package/esm5/dialog.es5.js +140 -42
  260. package/esm5/dialog.es5.js.map +1 -1
  261. package/esm5/divider.es5.js +4 -4
  262. package/esm5/divider.es5.js.map +1 -1
  263. package/esm5/expansion.es5.js +56 -31
  264. package/esm5/expansion.es5.js.map +1 -1
  265. package/esm5/form-field.es5.js +125 -36
  266. package/esm5/form-field.es5.js.map +1 -1
  267. package/esm5/grid-list.es5.js +68 -17
  268. package/esm5/grid-list.es5.js.map +1 -1
  269. package/esm5/icon.es5.js +279 -80
  270. package/esm5/icon.es5.js.map +1 -1
  271. package/esm5/input.es5.js +52 -24
  272. package/esm5/input.es5.js.map +1 -1
  273. package/esm5/list.es5.js +72 -24
  274. package/esm5/list.es5.js.map +1 -1
  275. package/esm5/material.es5.js +13 -12
  276. package/esm5/material.es5.js.map +1 -1
  277. package/esm5/menu.es5.js +170 -65
  278. package/esm5/menu.es5.js.map +1 -1
  279. package/esm5/paginator.es5.js +55 -13
  280. package/esm5/paginator.es5.js.map +1 -1
  281. package/esm5/progress-bar.es5.js +33 -14
  282. package/esm5/progress-bar.es5.js.map +1 -1
  283. package/esm5/progress-spinner.es5.js +31 -15
  284. package/esm5/progress-spinner.es5.js.map +1 -1
  285. package/esm5/radio.es5.js +42 -42
  286. package/esm5/radio.es5.js.map +1 -1
  287. package/esm5/select.es5.js +193 -55
  288. package/esm5/select.es5.js.map +1 -1
  289. package/esm5/sidenav.es5.js +107 -28
  290. package/esm5/sidenav.es5.js.map +1 -1
  291. package/esm5/slide-toggle.es5.js +32 -16
  292. package/esm5/slide-toggle.es5.js.map +1 -1
  293. package/esm5/slider.es5.js +94 -24
  294. package/esm5/slider.es5.js.map +1 -1
  295. package/esm5/snack-bar.es5.js +73 -21
  296. package/esm5/snack-bar.es5.js.map +1 -1
  297. package/esm5/sort.es5.js +53 -26
  298. package/esm5/sort.es5.js.map +1 -1
  299. package/esm5/stepper.es5.js +40 -38
  300. package/esm5/stepper.es5.js.map +1 -1
  301. package/esm5/table.es5.js +31 -11
  302. package/esm5/table.es5.js.map +1 -1
  303. package/esm5/tabs.es5.js +162 -61
  304. package/esm5/tabs.es5.js.map +1 -1
  305. package/esm5/toolbar.es5.js +16 -6
  306. package/esm5/toolbar.es5.js.map +1 -1
  307. package/esm5/tooltip.es5.js +55 -28
  308. package/esm5/tooltip.es5.js.map +1 -1
  309. package/esm5/tree.es5.js +27 -18
  310. package/esm5/tree.es5.js.map +1 -1
  311. package/expansion/typings/expansion-panel-header.d.ts +2 -2
  312. package/expansion/typings/expansion-panel.d.ts +19 -2
  313. package/expansion/typings/index.metadata.json +1 -1
  314. package/form-field/typings/form-field.d.ts +15 -4
  315. package/form-field/typings/index.metadata.json +1 -1
  316. package/grid-list/typings/index.d.ts +1 -1
  317. package/grid-list/typings/index.metadata.json +1 -1
  318. package/icon/typings/index.metadata.json +1 -1
  319. package/list/typings/index.metadata.json +1 -1
  320. package/material.d.ts +1 -1
  321. package/material.metadata.json +3 -3
  322. package/menu/typings/index.d.ts +4 -4
  323. package/menu/typings/index.metadata.json +1 -1
  324. package/menu/typings/menu-directive.d.ts +1 -0
  325. package/menu/typings/menu-item.d.ts +2 -0
  326. package/package.json +5 -5
  327. package/paginator/typings/index.metadata.json +1 -1
  328. package/paginator/typings/paginator.d.ts +7 -3
  329. package/prebuilt-themes/deeppurple-amber.css +1 -1
  330. package/prebuilt-themes/indigo-pink.css +1 -1
  331. package/prebuilt-themes/pink-bluegrey.css +1 -1
  332. package/prebuilt-themes/purple-green.css +1 -1
  333. package/progress-bar/typings/index.metadata.json +1 -1
  334. package/radio/typings/index.metadata.json +1 -1
  335. package/radio/typings/radio.d.ts +2 -6
  336. package/schematics/ng-add/theming/{custom-theme.d.ts → create-custom-theme.d.ts} +0 -0
  337. package/schematics/ng-add/theming/{custom-theme.js → create-custom-theme.js} +1 -1
  338. package/schematics/ng-add/theming/create-custom-theme.js.map +1 -0
  339. package/schematics/ng-add/theming/theming.js +35 -19
  340. package/schematics/ng-add/theming/theming.js.map +1 -1
  341. package/schematics/ng-generate/address-form/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.ts +2 -2
  342. package/schematics/ng-generate/dashboard/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.ts +2 -2
  343. package/schematics/ng-generate/nav/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.ts +2 -2
  344. package/schematics/ng-generate/table/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.ts +2 -2
  345. package/schematics/ng-generate/tree/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.ts +2 -2
  346. package/select/typings/index.metadata.json +1 -1
  347. package/select/typings/select.d.ts +12 -2
  348. package/sidenav/typings/drawer.d.ts +9 -2
  349. package/sidenav/typings/index.metadata.json +1 -1
  350. package/slide-toggle/typings/index.metadata.json +1 -1
  351. package/slider/typings/index.metadata.json +1 -1
  352. package/snack-bar/typings/index.metadata.json +1 -1
  353. package/sort/typings/index.metadata.json +1 -1
  354. package/stepper/typings/index.metadata.json +1 -1
  355. package/stepper/typings/step-header.d.ts +3 -5
  356. package/tabs/typings/index.d.ts +5 -5
  357. package/tabs/typings/index.metadata.json +1 -1
  358. package/tabs/typings/tab-body.d.ts +2 -0
  359. package/tabs/typings/tab-group.d.ts +11 -2
  360. package/tabs/typings/tab-header.d.ts +9 -3
  361. package/toolbar/typings/index.metadata.json +1 -1
  362. package/tooltip/typings/index.metadata.json +1 -1
  363. package/tree/typings/data-source/flat-data-source.d.ts +2 -2
  364. package/tree/typings/index.metadata.json +1 -1
  365. package/typings/autocomplete/index.d.ts +1 -1
  366. package/typings/autocomplete/index.metadata.json +1 -1
  367. package/typings/badge/index.metadata.json +1 -1
  368. package/typings/bottom-sheet/bottom-sheet-config.d.ts +5 -0
  369. package/typings/bottom-sheet/bottom-sheet-container.d.ts +1 -1
  370. package/typings/bottom-sheet/index.metadata.json +1 -1
  371. package/typings/button/button.d.ts +0 -5
  372. package/typings/button/index.metadata.json +1 -1
  373. package/typings/button-toggle/index.metadata.json +1 -1
  374. package/typings/card/index.metadata.json +1 -1
  375. package/typings/checkbox/index.metadata.json +1 -1
  376. package/typings/chips/chip-list.d.ts +1 -1
  377. package/typings/chips/chip.d.ts +2 -2
  378. package/typings/chips/index.metadata.json +1 -1
  379. package/typings/core/index.metadata.json +1 -1
  380. package/typings/core/{testing/month-constants.d.ts → month-constants.d.ts} +2 -0
  381. package/typings/core/public-api.d.ts +1 -1
  382. package/typings/datepicker/calendar-body.d.ts +21 -5
  383. package/typings/datepicker/calendar.d.ts +4 -1
  384. package/typings/datepicker/datepicker.d.ts +3 -0
  385. package/typings/datepicker/index.metadata.json +1 -1
  386. package/typings/datepicker/month-view.d.ts +4 -2
  387. package/typings/dialog/index.metadata.json +1 -1
  388. package/typings/esm5/autocomplete/index.d.ts +1 -1
  389. package/typings/esm5/autocomplete/index.metadata.json +1 -1
  390. package/typings/esm5/badge/index.metadata.json +1 -1
  391. package/typings/esm5/bottom-sheet/bottom-sheet-config.d.ts +5 -0
  392. package/typings/esm5/bottom-sheet/bottom-sheet-container.d.ts +1 -1
  393. package/typings/esm5/bottom-sheet/index.metadata.json +1 -1
  394. package/typings/esm5/button/button.d.ts +0 -5
  395. package/typings/esm5/button/index.metadata.json +1 -1
  396. package/typings/esm5/button-toggle/index.metadata.json +1 -1
  397. package/typings/esm5/card/index.metadata.json +1 -1
  398. package/typings/esm5/checkbox/index.metadata.json +1 -1
  399. package/typings/esm5/chips/chip-list.d.ts +1 -1
  400. package/typings/esm5/chips/chip.d.ts +2 -2
  401. package/typings/esm5/chips/index.metadata.json +1 -1
  402. package/typings/esm5/core/index.metadata.json +1 -1
  403. package/typings/esm5/core/{testing/month-constants.d.ts → month-constants.d.ts} +2 -0
  404. package/typings/esm5/core/public-api.d.ts +1 -1
  405. package/typings/esm5/datepicker/calendar-body.d.ts +21 -5
  406. package/typings/esm5/datepicker/calendar.d.ts +4 -1
  407. package/typings/esm5/datepicker/datepicker.d.ts +3 -0
  408. package/typings/esm5/datepicker/index.metadata.json +1 -1
  409. package/typings/esm5/datepicker/month-view.d.ts +4 -2
  410. package/typings/esm5/dialog/index.metadata.json +1 -1
  411. package/typings/esm5/expansion/expansion-panel-header.d.ts +2 -2
  412. package/typings/esm5/expansion/expansion-panel.d.ts +19 -2
  413. package/typings/esm5/expansion/index.metadata.json +1 -1
  414. package/typings/esm5/form-field/form-field.d.ts +15 -4
  415. package/typings/esm5/form-field/index.metadata.json +1 -1
  416. package/typings/esm5/grid-list/index.d.ts +1 -1
  417. package/typings/esm5/grid-list/index.metadata.json +1 -1
  418. package/typings/esm5/icon/index.metadata.json +1 -1
  419. package/typings/esm5/index.metadata.json +1 -1
  420. package/typings/esm5/list/index.metadata.json +1 -1
  421. package/typings/esm5/menu/index.d.ts +4 -4
  422. package/typings/esm5/menu/index.metadata.json +1 -1
  423. package/typings/esm5/menu/menu-directive.d.ts +1 -0
  424. package/typings/esm5/menu/menu-item.d.ts +2 -0
  425. package/typings/esm5/paginator/index.metadata.json +1 -1
  426. package/typings/esm5/paginator/paginator.d.ts +7 -3
  427. package/typings/esm5/progress-bar/index.metadata.json +1 -1
  428. package/typings/esm5/radio/index.metadata.json +1 -1
  429. package/typings/esm5/radio/radio.d.ts +2 -6
  430. package/typings/esm5/select/index.metadata.json +1 -1
  431. package/typings/esm5/select/select.d.ts +12 -2
  432. package/typings/esm5/sidenav/drawer.d.ts +9 -2
  433. package/typings/esm5/sidenav/index.metadata.json +1 -1
  434. package/typings/esm5/slide-toggle/index.metadata.json +1 -1
  435. package/typings/esm5/slider/index.metadata.json +1 -1
  436. package/typings/esm5/snack-bar/index.metadata.json +1 -1
  437. package/typings/esm5/sort/index.metadata.json +1 -1
  438. package/typings/esm5/stepper/index.metadata.json +1 -1
  439. package/typings/esm5/stepper/step-header.d.ts +3 -5
  440. package/typings/esm5/tabs/index.d.ts +5 -5
  441. package/typings/esm5/tabs/index.metadata.json +1 -1
  442. package/typings/esm5/tabs/tab-body.d.ts +2 -0
  443. package/typings/esm5/tabs/tab-group.d.ts +11 -2
  444. package/typings/esm5/tabs/tab-header.d.ts +9 -3
  445. package/typings/esm5/toolbar/index.metadata.json +1 -1
  446. package/typings/esm5/tooltip/index.metadata.json +1 -1
  447. package/typings/esm5/tree/data-source/flat-data-source.d.ts +2 -2
  448. package/typings/esm5/tree/index.metadata.json +1 -1
  449. package/typings/expansion/expansion-panel-header.d.ts +2 -2
  450. package/typings/expansion/expansion-panel.d.ts +19 -2
  451. package/typings/expansion/index.metadata.json +1 -1
  452. package/typings/form-field/form-field.d.ts +15 -4
  453. package/typings/form-field/index.metadata.json +1 -1
  454. package/typings/grid-list/index.d.ts +1 -1
  455. package/typings/grid-list/index.metadata.json +1 -1
  456. package/typings/icon/index.metadata.json +1 -1
  457. package/typings/index.metadata.json +1 -1
  458. package/typings/list/index.metadata.json +1 -1
  459. package/typings/menu/index.d.ts +4 -4
  460. package/typings/menu/index.metadata.json +1 -1
  461. package/typings/menu/menu-directive.d.ts +1 -0
  462. package/typings/menu/menu-item.d.ts +2 -0
  463. package/typings/paginator/index.metadata.json +1 -1
  464. package/typings/paginator/paginator.d.ts +7 -3
  465. package/typings/progress-bar/index.metadata.json +1 -1
  466. package/typings/radio/index.metadata.json +1 -1
  467. package/typings/radio/radio.d.ts +2 -6
  468. package/typings/schematics/ng-add/theming/{custom-theme.d.ts → create-custom-theme.d.ts} +0 -0
  469. package/typings/select/index.metadata.json +1 -1
  470. package/typings/select/select.d.ts +12 -2
  471. package/typings/sidenav/drawer.d.ts +9 -2
  472. package/typings/sidenav/index.metadata.json +1 -1
  473. package/typings/slide-toggle/index.metadata.json +1 -1
  474. package/typings/slider/index.metadata.json +1 -1
  475. package/typings/snack-bar/index.metadata.json +1 -1
  476. package/typings/sort/index.metadata.json +1 -1
  477. package/typings/stepper/index.metadata.json +1 -1
  478. package/typings/stepper/step-header.d.ts +3 -5
  479. package/typings/tabs/index.d.ts +5 -5
  480. package/typings/tabs/index.metadata.json +1 -1
  481. package/typings/tabs/tab-body.d.ts +2 -0
  482. package/typings/tabs/tab-group.d.ts +11 -2
  483. package/typings/tabs/tab-header.d.ts +9 -3
  484. package/typings/toolbar/index.metadata.json +1 -1
  485. package/typings/tooltip/index.metadata.json +1 -1
  486. package/typings/tree/data-source/flat-data-source.d.ts +2 -2
  487. package/typings/tree/index.metadata.json +1 -1
  488. package/schematics/ng-add/theming/custom-theme.js.map +0 -1
package/esm5/icon.es5.js CHANGED
@@ -17,7 +17,7 @@ import { coerceBooleanProperty } from '@angular/cdk/coercion';
17
17
 
18
18
  /**
19
19
  * @fileoverview added by tsickle
20
- * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
20
+ * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
21
21
  */
22
22
  /**
23
23
  * Returns an exception to be thrown in the case when attempting to
@@ -72,11 +72,11 @@ SvgIconConfig = /** @class */ (function () {
72
72
  function SvgIconConfig(data) {
73
73
  // Note that we can't use `instanceof SVGElement` here,
74
74
  // because it'll break during server-side rendering.
75
- if (!!(/** @type {?} */ (data)).nodeName) {
76
- this.svgElement = /** @type {?} */ (data);
75
+ if (!!((/** @type {?} */ (data))).nodeName) {
76
+ this.svgElement = (/** @type {?} */ (data));
77
77
  }
78
78
  else {
79
- this.url = /** @type {?} */ (data);
79
+ this.url = (/** @type {?} */ (data));
80
80
  }
81
81
  }
82
82
  return SvgIconConfig;
@@ -128,18 +128,22 @@ var MatIconRegistry = /** @class */ (function () {
128
128
  */
129
129
  /**
130
130
  * Registers an icon by URL in the default namespace.
131
+ * @template THIS
132
+ * @this {THIS}
131
133
  * @param {?} iconName Name under which the icon should be registered.
132
134
  * @param {?} url
133
- * @return {?}
135
+ * @return {THIS}
134
136
  */
135
137
  MatIconRegistry.prototype.addSvgIcon = /**
136
138
  * Registers an icon by URL in the default namespace.
139
+ * @template THIS
140
+ * @this {THIS}
137
141
  * @param {?} iconName Name under which the icon should be registered.
138
142
  * @param {?} url
139
- * @return {?}
143
+ * @return {THIS}
140
144
  */
141
145
  function (iconName, url) {
142
- return this.addSvgIconInNamespace('', iconName, url);
146
+ return (/** @type {?} */ (this)).addSvgIconInNamespace('', iconName, url);
143
147
  };
144
148
  /**
145
149
  * Registers an icon using an HTML string in the default namespace.
@@ -148,18 +152,22 @@ var MatIconRegistry = /** @class */ (function () {
148
152
  */
149
153
  /**
150
154
  * Registers an icon using an HTML string in the default namespace.
155
+ * @template THIS
156
+ * @this {THIS}
151
157
  * @param {?} iconName Name under which the icon should be registered.
152
158
  * @param {?} literal SVG source of the icon.
153
- * @return {?}
159
+ * @return {THIS}
154
160
  */
155
161
  MatIconRegistry.prototype.addSvgIconLiteral = /**
156
162
  * Registers an icon using an HTML string in the default namespace.
163
+ * @template THIS
164
+ * @this {THIS}
157
165
  * @param {?} iconName Name under which the icon should be registered.
158
166
  * @param {?} literal SVG source of the icon.
159
- * @return {?}
167
+ * @return {THIS}
160
168
  */
161
169
  function (iconName, literal) {
162
- return this.addSvgIconLiteralInNamespace('', iconName, literal);
170
+ return (/** @type {?} */ (this)).addSvgIconLiteralInNamespace('', iconName, literal);
163
171
  };
164
172
  /**
165
173
  * Registers an icon by URL in the specified namespace.
@@ -169,20 +177,24 @@ var MatIconRegistry = /** @class */ (function () {
169
177
  */
170
178
  /**
171
179
  * Registers an icon by URL in the specified namespace.
180
+ * @template THIS
181
+ * @this {THIS}
172
182
  * @param {?} namespace Namespace in which the icon should be registered.
173
183
  * @param {?} iconName Name under which the icon should be registered.
174
184
  * @param {?} url
175
- * @return {?}
185
+ * @return {THIS}
176
186
  */
177
187
  MatIconRegistry.prototype.addSvgIconInNamespace = /**
178
188
  * Registers an icon by URL in the specified namespace.
189
+ * @template THIS
190
+ * @this {THIS}
179
191
  * @param {?} namespace Namespace in which the icon should be registered.
180
192
  * @param {?} iconName Name under which the icon should be registered.
181
193
  * @param {?} url
182
- * @return {?}
194
+ * @return {THIS}
183
195
  */
184
196
  function (namespace, iconName, url) {
185
- return this._addSvgIconConfig(namespace, iconName, new SvgIconConfig(url));
197
+ return (/** @type {?} */ (this))._addSvgIconConfig(namespace, iconName, new SvgIconConfig(url));
186
198
  };
187
199
  /**
188
200
  * Registers an icon using an HTML string in the specified namespace.
@@ -192,27 +204,31 @@ var MatIconRegistry = /** @class */ (function () {
192
204
  */
193
205
  /**
194
206
  * Registers an icon using an HTML string in the specified namespace.
207
+ * @template THIS
208
+ * @this {THIS}
195
209
  * @param {?} namespace Namespace in which the icon should be registered.
196
210
  * @param {?} iconName Name under which the icon should be registered.
197
211
  * @param {?} literal SVG source of the icon.
198
- * @return {?}
212
+ * @return {THIS}
199
213
  */
200
214
  MatIconRegistry.prototype.addSvgIconLiteralInNamespace = /**
201
215
  * Registers an icon using an HTML string in the specified namespace.
216
+ * @template THIS
217
+ * @this {THIS}
202
218
  * @param {?} namespace Namespace in which the icon should be registered.
203
219
  * @param {?} iconName Name under which the icon should be registered.
204
220
  * @param {?} literal SVG source of the icon.
205
- * @return {?}
221
+ * @return {THIS}
206
222
  */
207
223
  function (namespace, iconName, literal) {
208
224
  /** @type {?} */
209
- var sanitizedLiteral = this._sanitizer.sanitize(SecurityContext.HTML, literal);
225
+ var sanitizedLiteral = (/** @type {?} */ (this))._sanitizer.sanitize(SecurityContext.HTML, literal);
210
226
  if (!sanitizedLiteral) {
211
227
  throw getMatIconFailedToSanitizeLiteralError(literal);
212
228
  }
213
229
  /** @type {?} */
214
- var svgElement = this._createSvgElementForSingleIcon(sanitizedLiteral);
215
- return this._addSvgIconConfig(namespace, iconName, new SvgIconConfig(svgElement));
230
+ var svgElement = (/** @type {?} */ (this))._createSvgElementForSingleIcon(sanitizedLiteral);
231
+ return (/** @type {?} */ (this))._addSvgIconConfig(namespace, iconName, new SvgIconConfig(svgElement));
216
232
  };
217
233
  /**
218
234
  * Registers an icon set by URL in the default namespace.
@@ -220,16 +236,20 @@ var MatIconRegistry = /** @class */ (function () {
220
236
  */
221
237
  /**
222
238
  * Registers an icon set by URL in the default namespace.
239
+ * @template THIS
240
+ * @this {THIS}
223
241
  * @param {?} url
224
- * @return {?}
242
+ * @return {THIS}
225
243
  */
226
244
  MatIconRegistry.prototype.addSvgIconSet = /**
227
245
  * Registers an icon set by URL in the default namespace.
246
+ * @template THIS
247
+ * @this {THIS}
228
248
  * @param {?} url
229
- * @return {?}
249
+ * @return {THIS}
230
250
  */
231
251
  function (url) {
232
- return this.addSvgIconSetInNamespace('', url);
252
+ return (/** @type {?} */ (this)).addSvgIconSetInNamespace('', url);
233
253
  };
234
254
  /**
235
255
  * Registers an icon set using an HTML string in the default namespace.
@@ -237,16 +257,20 @@ var MatIconRegistry = /** @class */ (function () {
237
257
  */
238
258
  /**
239
259
  * Registers an icon set using an HTML string in the default namespace.
260
+ * @template THIS
261
+ * @this {THIS}
240
262
  * @param {?} literal SVG source of the icon set.
241
- * @return {?}
263
+ * @return {THIS}
242
264
  */
243
265
  MatIconRegistry.prototype.addSvgIconSetLiteral = /**
244
266
  * Registers an icon set using an HTML string in the default namespace.
267
+ * @template THIS
268
+ * @this {THIS}
245
269
  * @param {?} literal SVG source of the icon set.
246
- * @return {?}
270
+ * @return {THIS}
247
271
  */
248
272
  function (literal) {
249
- return this.addSvgIconSetLiteralInNamespace('', literal);
273
+ return (/** @type {?} */ (this)).addSvgIconSetLiteralInNamespace('', literal);
250
274
  };
251
275
  /**
252
276
  * Registers an icon set by URL in the specified namespace.
@@ -255,18 +279,22 @@ var MatIconRegistry = /** @class */ (function () {
255
279
  */
256
280
  /**
257
281
  * Registers an icon set by URL in the specified namespace.
282
+ * @template THIS
283
+ * @this {THIS}
258
284
  * @param {?} namespace Namespace in which to register the icon set.
259
285
  * @param {?} url
260
- * @return {?}
286
+ * @return {THIS}
261
287
  */
262
288
  MatIconRegistry.prototype.addSvgIconSetInNamespace = /**
263
289
  * Registers an icon set by URL in the specified namespace.
290
+ * @template THIS
291
+ * @this {THIS}
264
292
  * @param {?} namespace Namespace in which to register the icon set.
265
293
  * @param {?} url
266
- * @return {?}
294
+ * @return {THIS}
267
295
  */
268
296
  function (namespace, url) {
269
- return this._addSvgIconSetConfig(namespace, new SvgIconConfig(url));
297
+ return (/** @type {?} */ (this))._addSvgIconSetConfig(namespace, new SvgIconConfig(url));
270
298
  };
271
299
  /**
272
300
  * Registers an icon set using an HTML string in the specified namespace.
@@ -275,25 +303,29 @@ var MatIconRegistry = /** @class */ (function () {
275
303
  */
276
304
  /**
277
305
  * Registers an icon set using an HTML string in the specified namespace.
306
+ * @template THIS
307
+ * @this {THIS}
278
308
  * @param {?} namespace Namespace in which to register the icon set.
279
309
  * @param {?} literal SVG source of the icon set.
280
- * @return {?}
310
+ * @return {THIS}
281
311
  */
282
312
  MatIconRegistry.prototype.addSvgIconSetLiteralInNamespace = /**
283
313
  * Registers an icon set using an HTML string in the specified namespace.
314
+ * @template THIS
315
+ * @this {THIS}
284
316
  * @param {?} namespace Namespace in which to register the icon set.
285
317
  * @param {?} literal SVG source of the icon set.
286
- * @return {?}
318
+ * @return {THIS}
287
319
  */
288
320
  function (namespace, literal) {
289
321
  /** @type {?} */
290
- var sanitizedLiteral = this._sanitizer.sanitize(SecurityContext.HTML, literal);
322
+ var sanitizedLiteral = (/** @type {?} */ (this))._sanitizer.sanitize(SecurityContext.HTML, literal);
291
323
  if (!sanitizedLiteral) {
292
324
  throw getMatIconFailedToSanitizeLiteralError(literal);
293
325
  }
294
326
  /** @type {?} */
295
- var svgElement = this._svgElementFromString(sanitizedLiteral);
296
- return this._addSvgIconSetConfig(namespace, new SvgIconConfig(svgElement));
327
+ var svgElement = (/** @type {?} */ (this))._svgElementFromString(sanitizedLiteral);
328
+ return (/** @type {?} */ (this))._addSvgIconSetConfig(namespace, new SvgIconConfig(svgElement));
297
329
  };
298
330
  /**
299
331
  * Defines an alias for a CSS class name to be used for icon fonts. Creating an matIcon
@@ -308,23 +340,27 @@ var MatIconRegistry = /** @class */ (function () {
308
340
  * component with the alias as the fontSet input will cause the class name to be applied
309
341
  * to the `<mat-icon>` element.
310
342
  *
343
+ * @template THIS
344
+ * @this {THIS}
311
345
  * @param {?} alias Alias for the font.
312
346
  * @param {?=} className Class name override to be used instead of the alias.
313
- * @return {?}
347
+ * @return {THIS}
314
348
  */
315
349
  MatIconRegistry.prototype.registerFontClassAlias = /**
316
350
  * Defines an alias for a CSS class name to be used for icon fonts. Creating an matIcon
317
351
  * component with the alias as the fontSet input will cause the class name to be applied
318
352
  * to the `<mat-icon>` element.
319
353
  *
354
+ * @template THIS
355
+ * @this {THIS}
320
356
  * @param {?} alias Alias for the font.
321
357
  * @param {?=} className Class name override to be used instead of the alias.
322
- * @return {?}
358
+ * @return {THIS}
323
359
  */
324
360
  function (alias, className) {
325
361
  if (className === void 0) { className = alias; }
326
- this._fontCssClassesByAlias.set(alias, className);
327
- return this;
362
+ (/** @type {?} */ (this))._fontCssClassesByAlias.set(alias, className);
363
+ return (/** @type {?} */ (this));
328
364
  };
329
365
  /**
330
366
  * Returns the CSS class name associated with the alias by a previous call to
@@ -355,19 +391,23 @@ var MatIconRegistry = /** @class */ (function () {
355
391
  * Sets the CSS class name to be used for icon fonts when an `<mat-icon>` component does not
356
392
  * have a fontSet input value, and is not loading an icon by name or URL.
357
393
  *
394
+ * @template THIS
395
+ * @this {THIS}
358
396
  * @param {?} className
359
- * @return {?}
397
+ * @return {THIS}
360
398
  */
361
399
  MatIconRegistry.prototype.setDefaultFontSetClass = /**
362
400
  * Sets the CSS class name to be used for icon fonts when an `<mat-icon>` component does not
363
401
  * have a fontSet input value, and is not loading an icon by name or URL.
364
402
  *
403
+ * @template THIS
404
+ * @this {THIS}
365
405
  * @param {?} className
366
- * @return {?}
406
+ * @return {THIS}
367
407
  */
368
408
  function (className) {
369
- this._defaultFontSetClass = className;
370
- return this;
409
+ (/** @type {?} */ (this))._defaultFontSetClass = className;
410
+ return (/** @type {?} */ (this));
371
411
  };
372
412
  /**
373
413
  * Returns the CSS class name to be used for icon fonts when an `<mat-icon>` component does not
@@ -424,7 +464,7 @@ var MatIconRegistry = /** @class */ (function () {
424
464
  if (cachedIcon) {
425
465
  return of(cloneSvg(cachedIcon));
426
466
  }
427
- return this._loadSvgIconFromConfig(new SvgIconConfig(safeUrl)).pipe(tap(function (svg) { return _this._cachedIconsByUrl.set(/** @type {?} */ ((url)), svg); }), map(function (svg) { return cloneSvg(svg); }));
467
+ return this._loadSvgIconFromConfig(new SvgIconConfig(safeUrl)).pipe(tap(function (svg) { return _this._cachedIconsByUrl.set((/** @type {?} */ (url)), svg); }), map(function (svg) { return cloneSvg(svg); }));
428
468
  };
429
469
  /**
430
470
  * Returns an Observable that produces the icon (as an `<svg>` DOM element) with the given name
@@ -454,6 +494,7 @@ var MatIconRegistry = /** @class */ (function () {
454
494
  */
455
495
  function (name, namespace) {
456
496
  if (namespace === void 0) { namespace = ''; }
497
+ // Return (copy of) cached icon if possible.
457
498
  /** @type {?} */
458
499
  var key = iconKey(namespace, name);
459
500
  /** @type {?} */
@@ -461,6 +502,7 @@ var MatIconRegistry = /** @class */ (function () {
461
502
  if (config) {
462
503
  return this._getSvgFromConfig(config);
463
504
  }
505
+ // See if we have any icon sets registered for the namespace.
464
506
  /** @type {?} */
465
507
  var iconSetConfigs = this._iconSetConfigs.get(namespace);
466
508
  if (iconSetConfigs) {
@@ -470,11 +512,16 @@ var MatIconRegistry = /** @class */ (function () {
470
512
  };
471
513
  /**
472
514
  * Returns the cached icon for a SvgIconConfig if available, or fetches it from its URL if not.
515
+ */
516
+ /**
517
+ * Returns the cached icon for a SvgIconConfig if available, or fetches it from its URL if not.
518
+ * @private
473
519
  * @param {?} config
474
520
  * @return {?}
475
521
  */
476
522
  MatIconRegistry.prototype._getSvgFromConfig = /**
477
523
  * Returns the cached icon for a SvgIconConfig if available, or fetches it from its URL if not.
524
+ * @private
478
525
  * @param {?} config
479
526
  * @return {?}
480
527
  */
@@ -495,6 +542,15 @@ var MatIconRegistry = /** @class */ (function () {
495
542
  * that have not been cached, and searches again after all fetches are completed.
496
543
  * The returned Observable produces the SVG element if possible, and throws
497
544
  * an error if no icon with the specified name can be found.
545
+ */
546
+ /**
547
+ * Attempts to find an icon with the specified name in any of the SVG icon sets.
548
+ * First searches the available cached icons for a nested element with a matching name, and
549
+ * if found copies the element to a new `<svg>` element. If not found, fetches all icon sets
550
+ * that have not been cached, and searches again after all fetches are completed.
551
+ * The returned Observable produces the SVG element if possible, and throws
552
+ * an error if no icon with the specified name can be found.
553
+ * @private
498
554
  * @param {?} name
499
555
  * @param {?} iconSetConfigs
500
556
  * @return {?}
@@ -506,12 +562,15 @@ var MatIconRegistry = /** @class */ (function () {
506
562
  * that have not been cached, and searches again after all fetches are completed.
507
563
  * The returned Observable produces the SVG element if possible, and throws
508
564
  * an error if no icon with the specified name can be found.
565
+ * @private
509
566
  * @param {?} name
510
567
  * @param {?} iconSetConfigs
511
568
  * @return {?}
512
569
  */
513
570
  function (name, iconSetConfigs) {
514
571
  var _this = this;
572
+ // For all the icon set SVG elements we've fetched, see if any contain an icon with the
573
+ // requested name.
515
574
  /** @type {?} */
516
575
  var namedIcon = this._extractIconWithNameFromAnySet(name, iconSetConfigs);
517
576
  if (namedIcon) {
@@ -520,6 +579,8 @@ var MatIconRegistry = /** @class */ (function () {
520
579
  // it from the icon set.
521
580
  return of(namedIcon);
522
581
  }
582
+ // Not found in any cached icon sets. If there are icon sets with URLs that we haven't
583
+ // fetched, fetch them now and look for iconName in the results.
523
584
  /** @type {?} */
524
585
  var iconSetFetchRequests = iconSetConfigs
525
586
  .filter(function (iconSetConfig) { return !iconSetConfig.svgElement; })
@@ -548,6 +609,12 @@ var MatIconRegistry = /** @class */ (function () {
548
609
  * Searches the cached SVG elements for the given icon sets for a nested icon element whose "id"
549
610
  * tag matches the specified name. If found, copies the nested element to a new SVG element and
550
611
  * returns it. Returns null if no matching element is found.
612
+ */
613
+ /**
614
+ * Searches the cached SVG elements for the given icon sets for a nested icon element whose "id"
615
+ * tag matches the specified name. If found, copies the nested element to a new SVG element and
616
+ * returns it. Returns null if no matching element is found.
617
+ * @private
551
618
  * @param {?} iconName
552
619
  * @param {?} iconSetConfigs
553
620
  * @return {?}
@@ -556,6 +623,7 @@ var MatIconRegistry = /** @class */ (function () {
556
623
  * Searches the cached SVG elements for the given icon sets for a nested icon element whose "id"
557
624
  * tag matches the specified name. If found, copies the nested element to a new SVG element and
558
625
  * returns it. Returns null if no matching element is found.
626
+ * @private
559
627
  * @param {?} iconName
560
628
  * @param {?} iconSetConfigs
561
629
  * @return {?}
@@ -578,12 +646,18 @@ var MatIconRegistry = /** @class */ (function () {
578
646
  /**
579
647
  * Loads the content of the icon URL specified in the SvgIconConfig and creates an SVG element
580
648
  * from it.
649
+ */
650
+ /**
651
+ * Loads the content of the icon URL specified in the SvgIconConfig and creates an SVG element
652
+ * from it.
653
+ * @private
581
654
  * @param {?} config
582
655
  * @return {?}
583
656
  */
584
657
  MatIconRegistry.prototype._loadSvgIconFromConfig = /**
585
658
  * Loads the content of the icon URL specified in the SvgIconConfig and creates an SVG element
586
659
  * from it.
660
+ * @private
587
661
  * @param {?} config
588
662
  * @return {?}
589
663
  */
@@ -595,12 +669,18 @@ var MatIconRegistry = /** @class */ (function () {
595
669
  /**
596
670
  * Loads the content of the icon set URL specified in the SvgIconConfig and creates an SVG element
597
671
  * from it.
672
+ */
673
+ /**
674
+ * Loads the content of the icon set URL specified in the SvgIconConfig and creates an SVG element
675
+ * from it.
676
+ * @private
598
677
  * @param {?} config
599
678
  * @return {?}
600
679
  */
601
680
  MatIconRegistry.prototype._loadSvgIconSetFromConfig = /**
602
681
  * Loads the content of the icon set URL specified in the SvgIconConfig and creates an SVG element
603
682
  * from it.
683
+ * @private
604
684
  * @param {?} config
605
685
  * @return {?}
606
686
  */
@@ -621,11 +701,16 @@ var MatIconRegistry = /** @class */ (function () {
621
701
  };
622
702
  /**
623
703
  * Creates a DOM element from the given SVG string, and adds default attributes.
704
+ */
705
+ /**
706
+ * Creates a DOM element from the given SVG string, and adds default attributes.
707
+ * @private
624
708
  * @param {?} responseText
625
709
  * @return {?}
626
710
  */
627
711
  MatIconRegistry.prototype._createSvgElementForSingleIcon = /**
628
712
  * Creates a DOM element from the given SVG string, and adds default attributes.
713
+ * @private
629
714
  * @param {?} responseText
630
715
  * @return {?}
631
716
  */
@@ -639,6 +724,12 @@ var MatIconRegistry = /** @class */ (function () {
639
724
  * Searches the cached element of the given SvgIconConfig for a nested icon element whose "id"
640
725
  * tag matches the specified name. If found, copies the nested element to a new SVG element and
641
726
  * returns it. Returns null if no matching element is found.
727
+ */
728
+ /**
729
+ * Searches the cached element of the given SvgIconConfig for a nested icon element whose "id"
730
+ * tag matches the specified name. If found, copies the nested element to a new SVG element and
731
+ * returns it. Returns null if no matching element is found.
732
+ * @private
642
733
  * @param {?} iconSet
643
734
  * @param {?} iconName
644
735
  * @return {?}
@@ -647,6 +738,7 @@ var MatIconRegistry = /** @class */ (function () {
647
738
  * Searches the cached element of the given SvgIconConfig for a nested icon element whose "id"
648
739
  * tag matches the specified name. If found, copies the nested element to a new SVG element and
649
740
  * returns it. Returns null if no matching element is found.
741
+ * @private
650
742
  * @param {?} iconSet
651
743
  * @param {?} iconName
652
744
  * @return {?}
@@ -657,13 +749,15 @@ var MatIconRegistry = /** @class */ (function () {
657
749
  if (!iconSource) {
658
750
  return null;
659
751
  }
752
+ // Clone the element and remove the ID to prevent multiple elements from being added
753
+ // to the page with the same ID.
660
754
  /** @type {?} */
661
- var iconElement = /** @type {?} */ (iconSource.cloneNode(true));
755
+ var iconElement = (/** @type {?} */ (iconSource.cloneNode(true)));
662
756
  iconElement.removeAttribute('id');
663
757
  // If the icon node is itself an <svg> node, clone and return it directly. If not, set it as
664
758
  // the content of a new <svg> node.
665
759
  if (iconElement.nodeName.toLowerCase() === 'svg') {
666
- return this._setSvgAttributes(/** @type {?} */ (iconElement));
760
+ return this._setSvgAttributes((/** @type {?} */ (iconElement)));
667
761
  }
668
762
  // If the node is a <symbol>, it won't be rendered so we have to convert it into <svg>. Note
669
763
  // that the same could be achieved by referring to it via <use href="#id">, however the <use>
@@ -671,6 +765,11 @@ var MatIconRegistry = /** @class */ (function () {
671
765
  if (iconElement.nodeName.toLowerCase() === 'symbol') {
672
766
  return this._setSvgAttributes(this._toSvgElement(iconElement));
673
767
  }
768
+ // createElement('SVG') doesn't work as expected; the DOM ends up with
769
+ // the correct nodes, but the SVG content doesn't render. Instead we
770
+ // have to create an empty SVG node using innerHTML and append its content.
771
+ // Elements created using DOMParser.parseFromString have the same problem.
772
+ // http://stackoverflow.com/questions/23003278/svg-innerhtml-in-firefox-can-not-display
674
773
  /** @type {?} */
675
774
  var svg = this._svgElementFromString('<svg></svg>');
676
775
  // Clone the node so we don't remove it from the parent icon set element.
@@ -679,11 +778,16 @@ var MatIconRegistry = /** @class */ (function () {
679
778
  };
680
779
  /**
681
780
  * Creates a DOM element from the given SVG string.
781
+ */
782
+ /**
783
+ * Creates a DOM element from the given SVG string.
784
+ * @private
682
785
  * @param {?} str
683
786
  * @return {?}
684
787
  */
685
788
  MatIconRegistry.prototype._svgElementFromString = /**
686
789
  * Creates a DOM element from the given SVG string.
790
+ * @private
687
791
  * @param {?} str
688
792
  * @return {?}
689
793
  */
@@ -692,7 +796,7 @@ var MatIconRegistry = /** @class */ (function () {
692
796
  var div = this._document.createElement('DIV');
693
797
  div.innerHTML = str;
694
798
  /** @type {?} */
695
- var svg = /** @type {?} */ (div.querySelector('svg'));
799
+ var svg = (/** @type {?} */ (div.querySelector('svg')));
696
800
  if (!svg) {
697
801
  throw Error('<svg> tag not found');
698
802
  }
@@ -700,11 +804,16 @@ var MatIconRegistry = /** @class */ (function () {
700
804
  };
701
805
  /**
702
806
  * Converts an element into an SVG node by cloning all of its children.
807
+ */
808
+ /**
809
+ * Converts an element into an SVG node by cloning all of its children.
810
+ * @private
703
811
  * @param {?} element
704
812
  * @return {?}
705
813
  */
706
814
  MatIconRegistry.prototype._toSvgElement = /**
707
815
  * Converts an element into an SVG node by cloning all of its children.
816
+ * @private
708
817
  * @param {?} element
709
818
  * @return {?}
710
819
  */
@@ -720,11 +829,16 @@ var MatIconRegistry = /** @class */ (function () {
720
829
  };
721
830
  /**
722
831
  * Sets the default attributes for an SVG element to be used as an icon.
832
+ */
833
+ /**
834
+ * Sets the default attributes for an SVG element to be used as an icon.
835
+ * @private
723
836
  * @param {?} svg
724
837
  * @return {?}
725
838
  */
726
839
  MatIconRegistry.prototype._setSvgAttributes = /**
727
840
  * Sets the default attributes for an SVG element to be used as an icon.
841
+ * @private
728
842
  * @param {?} svg
729
843
  * @return {?}
730
844
  */
@@ -739,12 +853,18 @@ var MatIconRegistry = /** @class */ (function () {
739
853
  /**
740
854
  * Returns an Observable which produces the string contents of the given URL. Results may be
741
855
  * cached, so future calls with the same URL may not cause another HTTP request.
856
+ */
857
+ /**
858
+ * Returns an Observable which produces the string contents of the given URL. Results may be
859
+ * cached, so future calls with the same URL may not cause another HTTP request.
860
+ * @private
742
861
  * @param {?} safeUrl
743
862
  * @return {?}
744
863
  */
745
864
  MatIconRegistry.prototype._fetchUrl = /**
746
865
  * Returns an Observable which produces the string contents of the given URL. Results may be
747
866
  * cached, so future calls with the same URL may not cause another HTTP request.
867
+ * @private
748
868
  * @param {?} safeUrl
749
869
  * @return {?}
750
870
  */
@@ -761,11 +881,16 @@ var MatIconRegistry = /** @class */ (function () {
761
881
  if (!url) {
762
882
  throw getMatIconFailedToSanitizeUrlError(safeUrl);
763
883
  }
884
+ // Store in-progress fetches to avoid sending a duplicate request for a URL when there is
885
+ // already a request in progress for that URL. It's necessary to call share() on the
886
+ // Observable returned by http.get() so that multiple subscribers don't cause multiple XHRs.
764
887
  /** @type {?} */
765
888
  var inProgressFetch = this._inProgressUrlFetches.get(url);
766
889
  if (inProgressFetch) {
767
890
  return inProgressFetch;
768
891
  }
892
+ // TODO(jelbourn): for some reason, the `finalize` operator "loses" the generic type on the
893
+ // Observable. Figure out why and fix it.
769
894
  /** @type {?} */
770
895
  var req = this._httpClient.get(url, { responseType: 'text' }).pipe(finalize(function () { return _this._inProgressUrlFetches.delete(url); }), share());
771
896
  this._inProgressUrlFetches.set(url, req);
@@ -773,44 +898,67 @@ var MatIconRegistry = /** @class */ (function () {
773
898
  };
774
899
  /**
775
900
  * Registers an icon config by name in the specified namespace.
901
+ * @param namespace Namespace in which to register the icon config.
902
+ * @param iconName Name under which to register the config.
903
+ * @param config Config to be registered.
904
+ */
905
+ /**
906
+ * Registers an icon config by name in the specified namespace.
907
+ * @private
908
+ * @template THIS
909
+ * @this {THIS}
776
910
  * @param {?} namespace Namespace in which to register the icon config.
777
911
  * @param {?} iconName Name under which to register the config.
778
912
  * @param {?} config Config to be registered.
779
- * @return {?}
913
+ * @return {THIS}
780
914
  */
781
915
  MatIconRegistry.prototype._addSvgIconConfig = /**
782
916
  * Registers an icon config by name in the specified namespace.
917
+ * @private
918
+ * @template THIS
919
+ * @this {THIS}
783
920
  * @param {?} namespace Namespace in which to register the icon config.
784
921
  * @param {?} iconName Name under which to register the config.
785
922
  * @param {?} config Config to be registered.
786
- * @return {?}
923
+ * @return {THIS}
787
924
  */
788
925
  function (namespace, iconName, config) {
789
- this._svgIconConfigs.set(iconKey(namespace, iconName), config);
790
- return this;
926
+ (/** @type {?} */ (this))._svgIconConfigs.set(iconKey(namespace, iconName), config);
927
+ return (/** @type {?} */ (this));
791
928
  };
792
929
  /**
793
930
  * Registers an icon set config in the specified namespace.
931
+ * @param namespace Namespace in which to register the icon config.
932
+ * @param config Config to be registered.
933
+ */
934
+ /**
935
+ * Registers an icon set config in the specified namespace.
936
+ * @private
937
+ * @template THIS
938
+ * @this {THIS}
794
939
  * @param {?} namespace Namespace in which to register the icon config.
795
940
  * @param {?} config Config to be registered.
796
- * @return {?}
941
+ * @return {THIS}
797
942
  */
798
943
  MatIconRegistry.prototype._addSvgIconSetConfig = /**
799
944
  * Registers an icon set config in the specified namespace.
945
+ * @private
946
+ * @template THIS
947
+ * @this {THIS}
800
948
  * @param {?} namespace Namespace in which to register the icon config.
801
949
  * @param {?} config Config to be registered.
802
- * @return {?}
950
+ * @return {THIS}
803
951
  */
804
952
  function (namespace, config) {
805
953
  /** @type {?} */
806
- var configNamespace = this._iconSetConfigs.get(namespace);
954
+ var configNamespace = (/** @type {?} */ (this))._iconSetConfigs.get(namespace);
807
955
  if (configNamespace) {
808
956
  configNamespace.push(config);
809
957
  }
810
958
  else {
811
- this._iconSetConfigs.set(namespace, [config]);
959
+ (/** @type {?} */ (this))._iconSetConfigs.set(namespace, [config]);
812
960
  }
813
- return this;
961
+ return (/** @type {?} */ (this));
814
962
  };
815
963
  MatIconRegistry.decorators = [
816
964
  { type: Injectable, args: [{ providedIn: 'root' },] },
@@ -835,9 +983,10 @@ var MatIconRegistry = /** @class */ (function () {
835
983
  function ICON_REGISTRY_PROVIDER_FACTORY(parentRegistry, httpClient, sanitizer, document) {
836
984
  return parentRegistry || new MatIconRegistry(httpClient, sanitizer, document);
837
985
  }
838
- /** *
986
+ /**
839
987
  * \@docs-private
840
- @type {?} */
988
+ * @type {?}
989
+ */
841
990
  var ICON_REGISTRY_PROVIDER = {
842
991
  // If there is already an MatIconRegistry available, use that. Otherwise, provide a new one.
843
992
  provide: MatIconRegistry,
@@ -845,7 +994,7 @@ var ICON_REGISTRY_PROVIDER = {
845
994
  [new Optional(), new SkipSelf(), MatIconRegistry],
846
995
  [new Optional(), HttpClient],
847
996
  DomSanitizer,
848
- [new Optional(), /** @type {?} */ (DOCUMENT)],
997
+ [new Optional(), (/** @type {?} */ (DOCUMENT))],
849
998
  ],
850
999
  useFactory: ICON_REGISTRY_PROVIDER_FACTORY,
851
1000
  };
@@ -855,7 +1004,7 @@ var ICON_REGISTRY_PROVIDER = {
855
1004
  * @return {?}
856
1005
  */
857
1006
  function cloneSvg(svg) {
858
- return /** @type {?} */ (svg.cloneNode(true));
1007
+ return (/** @type {?} */ (svg.cloneNode(true)));
859
1008
  }
860
1009
  /**
861
1010
  * Returns the cache key to use for an icon namespace and name.
@@ -869,12 +1018,15 @@ function iconKey(namespace, name) {
869
1018
 
870
1019
  /**
871
1020
  * @fileoverview added by tsickle
872
- * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
1021
+ * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
873
1022
  */
1023
+ // Boilerplate for applying mixins to MatIcon.
874
1024
  /**
875
1025
  * \@docs-private
876
1026
  */
877
- var /**
1027
+ var
1028
+ // Boilerplate for applying mixins to MatIcon.
1029
+ /**
878
1030
  * \@docs-private
879
1031
  */
880
1032
  MatIconBase = /** @class */ (function () {
@@ -885,11 +1037,12 @@ MatIconBase = /** @class */ (function () {
885
1037
  }());
886
1038
  /** @type {?} */
887
1039
  var _MatIconMixinBase = mixinColor(MatIconBase);
888
- /** *
1040
+ /**
889
1041
  * Injection token used to provide the current location to `MatIcon`.
890
1042
  * Used to handle server-side rendering and to stub out during unit tests.
891
1043
  * \@docs-private
892
- @type {?} */
1044
+ * @type {?}
1045
+ */
893
1046
  var MAT_ICON_LOCATION = new InjectionToken('mat-icon-location', {
894
1047
  providedIn: 'root',
895
1048
  factory: MAT_ICON_LOCATION_FACTORY
@@ -909,9 +1062,10 @@ function MAT_ICON_LOCATION_FACTORY() {
909
1062
  getPathname: function () { return _location ? (_location.pathname + _location.search) : ''; }
910
1063
  };
911
1064
  }
912
- /** *
1065
+ /**
913
1066
  * SVG attributes that accept a FuncIRI (e.g. `url(<something>)`).
914
- @type {?} */
1067
+ * @type {?}
1068
+ */
915
1069
  var funcIriAttributes = [
916
1070
  'clip-path',
917
1071
  'color-profile',
@@ -927,13 +1081,15 @@ var funcIriAttributes = [
927
1081
  'stroke'
928
1082
  ];
929
1083
  var ɵ0 = function (attr) { return "[" + attr + "]"; };
930
- /** *
1084
+ /**
931
1085
  * Selector that can be used to find all elements that are using a `FuncIRI`.
932
- @type {?} */
1086
+ * @type {?}
1087
+ */
933
1088
  var funcIriAttributeSelector = funcIriAttributes.map(ɵ0).join(', ');
934
- /** *
1089
+ /**
935
1090
  * Regex that can be used to extract the id out of a FuncIRI.
936
- @type {?} */
1091
+ * @type {?}
1092
+ */
937
1093
  var funcIriPattern = /^url\(['"]?#(.*?)['"]?\)$/;
938
1094
  /**
939
1095
  * Component to display an icon. It can be used in the following ways:
@@ -964,11 +1120,7 @@ var funcIriPattern = /^url\(['"]?#(.*?)['"]?\)$/;
964
1120
  */
965
1121
  var MatIcon = /** @class */ (function (_super) {
966
1122
  __extends(MatIcon, _super);
967
- function MatIcon(elementRef, _iconRegistry, ariaHidden, /**
968
- * @deprecated `location` parameter to be made required.
969
- * @breaking-change 8.0.0
970
- */
971
- _location) {
1123
+ function MatIcon(elementRef, _iconRegistry, ariaHidden, _location) {
972
1124
  var _this = _super.call(this, elementRef) || this;
973
1125
  _this._iconRegistry = _iconRegistry;
974
1126
  _this._location = _location;
@@ -1049,6 +1201,20 @@ var MatIcon = /** @class */ (function (_super) {
1049
1201
  * 'penguin' -> ['', 'penguin']
1050
1202
  * null -> ['', '']
1051
1203
  * 'a:b:c' -> (throws Error)`
1204
+ */
1205
+ /**
1206
+ * Splits an svgIcon binding value into its icon set and icon name components.
1207
+ * Returns a 2-element array of [(icon set), (icon name)].
1208
+ * The separator for the two fields is ':'. If there is no separator, an empty
1209
+ * string is returned for the icon set and the entire value is returned for
1210
+ * the icon name. If the argument is falsy, returns an array of two empty strings.
1211
+ * Throws an error if the name contains two or more ':' separators.
1212
+ * Examples:
1213
+ * `'social:cake' -> ['social', 'cake']
1214
+ * 'penguin' -> ['', 'penguin']
1215
+ * null -> ['', '']
1216
+ * 'a:b:c' -> (throws Error)`
1217
+ * @private
1052
1218
  * @param {?} iconName
1053
1219
  * @return {?}
1054
1220
  */
@@ -1064,6 +1230,7 @@ var MatIcon = /** @class */ (function (_super) {
1064
1230
  * 'penguin' -> ['', 'penguin']
1065
1231
  * null -> ['', '']
1066
1232
  * 'a:b:c' -> (throws Error)`
1233
+ * @private
1067
1234
  * @param {?} iconName
1068
1235
  * @return {?}
1069
1236
  */
@@ -1075,7 +1242,7 @@ var MatIcon = /** @class */ (function (_super) {
1075
1242
  var parts = iconName.split(':');
1076
1243
  switch (parts.length) {
1077
1244
  case 1: return ['', parts[0]]; // Use default namespace.
1078
- case 2: return /** @type {?} */ (parts);
1245
+ case 2: return (/** @type {?} */ (parts));
1079
1246
  default: throw Error("Invalid icon name: \"" + iconName + "\"");
1080
1247
  }
1081
1248
  };
@@ -1090,7 +1257,7 @@ var MatIcon = /** @class */ (function (_super) {
1090
1257
  function (changes) {
1091
1258
  var _this = this;
1092
1259
  // Only update the inline SVG icon if the inputs changed, to avoid unnecessary DOM operations.
1093
- if (changes["svgIcon"]) {
1260
+ if (changes.svgIcon) {
1094
1261
  if (this.svgIcon) {
1095
1262
  var _a = this._splitIconName(this.svgIcon), namespace = _a[0], iconName = _a[1];
1096
1263
  this._iconRegistry.getNamedSvgIcon(iconName, namespace).pipe(take(1)).subscribe(function (svg) { return _this._setSvgElement(svg); }, function (err) { return console.log("Error retrieving icon: " + err.message); });
@@ -1152,26 +1319,33 @@ var MatIcon = /** @class */ (function (_super) {
1152
1319
  }
1153
1320
  };
1154
1321
  /**
1322
+ * @private
1155
1323
  * @return {?}
1156
1324
  */
1157
1325
  MatIcon.prototype._usingFontIcon = /**
1326
+ * @private
1158
1327
  * @return {?}
1159
1328
  */
1160
1329
  function () {
1161
1330
  return !this.svgIcon;
1162
1331
  };
1163
1332
  /**
1333
+ * @private
1164
1334
  * @param {?} svg
1165
1335
  * @return {?}
1166
1336
  */
1167
1337
  MatIcon.prototype._setSvgElement = /**
1338
+ * @private
1168
1339
  * @param {?} svg
1169
1340
  * @return {?}
1170
1341
  */
1171
1342
  function (svg) {
1172
1343
  this._clearSvgElement();
1344
+ // Workaround for IE11 and Edge ignoring `style` tags inside dynamically-created SVGs.
1345
+ // See: https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/10898469/
1346
+ // Do this before inserting the element into the DOM, in order to avoid a style recalculation.
1173
1347
  /** @type {?} */
1174
- var styleTags = /** @type {?} */ (svg.querySelectorAll('style'));
1348
+ var styleTags = (/** @type {?} */ (svg.querySelectorAll('style')));
1175
1349
  for (var i = 0; i < styleTags.length; i++) {
1176
1350
  styleTags[i].textContent += ' ';
1177
1351
  }
@@ -1187,9 +1361,11 @@ var MatIcon = /** @class */ (function (_super) {
1187
1361
  this._elementRef.nativeElement.appendChild(svg);
1188
1362
  };
1189
1363
  /**
1364
+ * @private
1190
1365
  * @return {?}
1191
1366
  */
1192
1367
  MatIcon.prototype._clearSvgElement = /**
1368
+ * @private
1193
1369
  * @return {?}
1194
1370
  */
1195
1371
  function () {
@@ -1213,9 +1389,11 @@ var MatIcon = /** @class */ (function (_super) {
1213
1389
  }
1214
1390
  };
1215
1391
  /**
1392
+ * @private
1216
1393
  * @return {?}
1217
1394
  */
1218
1395
  MatIcon.prototype._updateFontIconClasses = /**
1396
+ * @private
1219
1397
  * @return {?}
1220
1398
  */
1221
1399
  function () {
@@ -1251,6 +1429,12 @@ var MatIcon = /** @class */ (function (_super) {
1251
1429
  * Cleans up a value to be used as a fontIcon or fontSet.
1252
1430
  * Since the value ends up being assigned as a CSS class, we
1253
1431
  * have to trim the value and omit space-separated values.
1432
+ */
1433
+ /**
1434
+ * Cleans up a value to be used as a fontIcon or fontSet.
1435
+ * Since the value ends up being assigned as a CSS class, we
1436
+ * have to trim the value and omit space-separated values.
1437
+ * @private
1254
1438
  * @param {?} value
1255
1439
  * @return {?}
1256
1440
  */
@@ -1258,6 +1442,7 @@ var MatIcon = /** @class */ (function (_super) {
1258
1442
  * Cleans up a value to be used as a fontIcon or fontSet.
1259
1443
  * Since the value ends up being assigned as a CSS class, we
1260
1444
  * have to trim the value and omit space-separated values.
1445
+ * @private
1261
1446
  * @param {?} value
1262
1447
  * @return {?}
1263
1448
  */
@@ -1268,6 +1453,12 @@ var MatIcon = /** @class */ (function (_super) {
1268
1453
  * Prepends the current path to all elements that have an attribute pointing to a `FuncIRI`
1269
1454
  * reference. This is required because WebKit browsers require references to be prefixed with
1270
1455
  * the current path, if the page has a `base` tag.
1456
+ */
1457
+ /**
1458
+ * Prepends the current path to all elements that have an attribute pointing to a `FuncIRI`
1459
+ * reference. This is required because WebKit browsers require references to be prefixed with
1460
+ * the current path, if the page has a `base` tag.
1461
+ * @private
1271
1462
  * @param {?} path
1272
1463
  * @return {?}
1273
1464
  */
@@ -1275,6 +1466,7 @@ var MatIcon = /** @class */ (function (_super) {
1275
1466
  * Prepends the current path to all elements that have an attribute pointing to a `FuncIRI`
1276
1467
  * reference. This is required because WebKit browsers require references to be prefixed with
1277
1468
  * the current path, if the page has a `base` tag.
1469
+ * @private
1278
1470
  * @param {?} path
1279
1471
  * @return {?}
1280
1472
  */
@@ -1292,12 +1484,18 @@ var MatIcon = /** @class */ (function (_super) {
1292
1484
  /**
1293
1485
  * Caches the children of an SVG element that have `url()`
1294
1486
  * references that we need to prefix with the current path.
1487
+ */
1488
+ /**
1489
+ * Caches the children of an SVG element that have `url()`
1490
+ * references that we need to prefix with the current path.
1491
+ * @private
1295
1492
  * @param {?} element
1296
1493
  * @return {?}
1297
1494
  */
1298
1495
  MatIcon.prototype._cacheChildrenWithExternalReferences = /**
1299
1496
  * Caches the children of an SVG element that have `url()`
1300
1497
  * references that we need to prefix with the current path.
1498
+ * @private
1301
1499
  * @param {?} element
1302
1500
  * @return {?}
1303
1501
  */
@@ -1321,8 +1519,8 @@ var MatIcon = /** @class */ (function (_super) {
1321
1519
  if (!attributes) {
1322
1520
  attributes = [];
1323
1521
  elements.set(elementWithReference, attributes);
1324
- } /** @type {?} */
1325
- ((attributes)).push({ name: attr, value: match[1] });
1522
+ }
1523
+ (/** @type {?} */ (attributes)).push({ name: attr, value: match[1] });
1326
1524
  }
1327
1525
  });
1328
1526
  };
@@ -1340,6 +1538,7 @@ var MatIcon = /** @class */ (function (_super) {
1340
1538
  'role': 'img',
1341
1539
  'class': 'mat-icon',
1342
1540
  '[class.mat-icon-inline]': 'inline',
1541
+ '[class.mat-icon-no-color]': 'color !== "primary" && color !== "accent" && color !== "warn"',
1343
1542
  },
1344
1543
  encapsulation: ViewEncapsulation.None,
1345
1544
  changeDetection: ChangeDetectionStrategy.OnPush,
@@ -1363,7 +1562,7 @@ var MatIcon = /** @class */ (function (_super) {
1363
1562
 
1364
1563
  /**
1365
1564
  * @fileoverview added by tsickle
1366
- * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
1565
+ * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
1367
1566
  */
1368
1567
  var MatIconModule = /** @class */ (function () {
1369
1568
  function MatIconModule() {
@@ -1380,12 +1579,12 @@ var MatIconModule = /** @class */ (function () {
1380
1579
 
1381
1580
  /**
1382
1581
  * @fileoverview added by tsickle
1383
- * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
1582
+ * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
1384
1583
  */
1385
1584
 
1386
1585
  /**
1387
1586
  * @fileoverview added by tsickle
1388
- * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
1587
+ * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
1389
1588
  */
1390
1589
 
1391
1590
  export { MatIconModule, MAT_ICON_LOCATION_FACTORY, MatIconBase, _MatIconMixinBase, MAT_ICON_LOCATION, MatIcon, getMatIconNameNotFoundError, getMatIconNoHttpProviderError, getMatIconFailedToSanitizeUrlError, getMatIconFailedToSanitizeLiteralError, ICON_REGISTRY_PROVIDER_FACTORY, MatIconRegistry, ICON_REGISTRY_PROVIDER };