@angular/material 7.0.3 → 7.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 (447) hide show
  1. package/_theming.scss +57 -49
  2. package/autocomplete/typings/index.d.ts +1 -1
  3. package/autocomplete/typings/index.metadata.json +1 -1
  4. package/badge/typings/index.metadata.json +1 -1
  5. package/bottom-sheet/typings/bottom-sheet-config.d.ts +5 -0
  6. package/bottom-sheet/typings/bottom-sheet-container.d.ts +1 -1
  7. package/bottom-sheet/typings/index.metadata.json +1 -1
  8. package/bundles/material-autocomplete.umd.js +124 -30
  9. package/bundles/material-autocomplete.umd.js.map +1 -1
  10. package/bundles/material-autocomplete.umd.min.js +1 -1
  11. package/bundles/material-autocomplete.umd.min.js.map +1 -1
  12. package/bundles/material-badge.umd.js +38 -5
  13. package/bundles/material-badge.umd.js.map +1 -1
  14. package/bundles/material-badge.umd.min.js +1 -1
  15. package/bundles/material-badge.umd.min.js.map +1 -1
  16. package/bundles/material-bottom-sheet.umd.js +68 -25
  17. package/bundles/material-bottom-sheet.umd.js.map +1 -1
  18. package/bundles/material-bottom-sheet.umd.min.js +1 -1
  19. package/bundles/material-bottom-sheet.umd.min.js.map +1 -1
  20. package/bundles/material-button-toggle.umd.js +40 -15
  21. package/bundles/material-button-toggle.umd.js.map +1 -1
  22. package/bundles/material-button-toggle.umd.min.js +1 -1
  23. package/bundles/material-button-toggle.umd.min.js.map +1 -1
  24. package/bundles/material-button.umd.js +19 -12
  25. package/bundles/material-button.umd.js.map +1 -1
  26. package/bundles/material-button.umd.min.js +1 -1
  27. package/bundles/material-button.umd.min.js.map +1 -1
  28. package/bundles/material-card.umd.js +2 -2
  29. package/bundles/material-card.umd.js.map +1 -1
  30. package/bundles/material-card.umd.min.js.map +1 -1
  31. package/bundles/material-checkbox.umd.js +56 -15
  32. package/bundles/material-checkbox.umd.js.map +1 -1
  33. package/bundles/material-checkbox.umd.min.js +1 -1
  34. package/bundles/material-checkbox.umd.min.js.map +1 -1
  35. package/bundles/material-chips.umd.js +124 -34
  36. package/bundles/material-chips.umd.js.map +1 -1
  37. package/bundles/material-chips.umd.min.js +1 -1
  38. package/bundles/material-chips.umd.min.js.map +1 -1
  39. package/bundles/material-core.umd.js +186 -123
  40. package/bundles/material-core.umd.js.map +1 -1
  41. package/bundles/material-core.umd.min.js +2 -1
  42. package/bundles/material-core.umd.min.js.map +1 -1
  43. package/bundles/material-datepicker.umd.js +241 -59
  44. package/bundles/material-datepicker.umd.js.map +1 -1
  45. package/bundles/material-datepicker.umd.min.js +2 -2
  46. package/bundles/material-datepicker.umd.min.js.map +1 -1
  47. package/bundles/material-dialog.umd.js +136 -44
  48. package/bundles/material-dialog.umd.js.map +1 -1
  49. package/bundles/material-dialog.umd.min.js +1 -1
  50. package/bundles/material-dialog.umd.min.js.map +1 -1
  51. package/bundles/material-divider.umd.js +2 -2
  52. package/bundles/material-divider.umd.js.map +1 -1
  53. package/bundles/material-divider.umd.min.js.map +1 -1
  54. package/bundles/material-expansion.umd.js +32 -22
  55. package/bundles/material-expansion.umd.js.map +1 -1
  56. package/bundles/material-expansion.umd.min.js +1 -1
  57. package/bundles/material-expansion.umd.min.js.map +1 -1
  58. package/bundles/material-form-field.umd.js +120 -32
  59. package/bundles/material-form-field.umd.js.map +1 -1
  60. package/bundles/material-form-field.umd.min.js +1 -1
  61. package/bundles/material-form-field.umd.min.js.map +1 -1
  62. package/bundles/material-grid-list.umd.js +66 -15
  63. package/bundles/material-grid-list.umd.js.map +1 -1
  64. package/bundles/material-grid-list.umd.min.js +1 -1
  65. package/bundles/material-grid-list.umd.min.js.map +1 -1
  66. package/bundles/material-icon.umd.js +280 -79
  67. package/bundles/material-icon.umd.js.map +1 -1
  68. package/bundles/material-icon.umd.min.js +1 -1
  69. package/bundles/material-icon.umd.min.js.map +1 -1
  70. package/bundles/material-input.umd.js +46 -24
  71. package/bundles/material-input.umd.js.map +1 -1
  72. package/bundles/material-input.umd.min.js +1 -1
  73. package/bundles/material-input.umd.min.js.map +1 -1
  74. package/bundles/material-list.umd.js +71 -22
  75. package/bundles/material-list.umd.js.map +1 -1
  76. package/bundles/material-list.umd.min.js +2 -6
  77. package/bundles/material-list.umd.min.js.map +1 -1
  78. package/bundles/material-menu.umd.js +157 -55
  79. package/bundles/material-menu.umd.js.map +1 -1
  80. package/bundles/material-menu.umd.min.js +1 -1
  81. package/bundles/material-menu.umd.min.js.map +1 -1
  82. package/bundles/material-paginator.umd.js +52 -10
  83. package/bundles/material-paginator.umd.js.map +1 -1
  84. package/bundles/material-paginator.umd.min.js +1 -1
  85. package/bundles/material-paginator.umd.min.js.map +1 -1
  86. package/bundles/material-progress-bar.umd.js +35 -14
  87. package/bundles/material-progress-bar.umd.js.map +1 -1
  88. package/bundles/material-progress-bar.umd.min.js +1 -1
  89. package/bundles/material-progress-bar.umd.min.js.map +1 -1
  90. package/bundles/material-progress-spinner.umd.js +29 -13
  91. package/bundles/material-progress-spinner.umd.js.map +1 -1
  92. package/bundles/material-progress-spinner.umd.min.js.map +1 -1
  93. package/bundles/material-radio.umd.js +26 -7
  94. package/bundles/material-radio.umd.js.map +1 -1
  95. package/bundles/material-radio.umd.min.js.map +1 -1
  96. package/bundles/material-select.umd.js +178 -49
  97. package/bundles/material-select.umd.js.map +1 -1
  98. package/bundles/material-select.umd.min.js +1 -1
  99. package/bundles/material-select.umd.min.js.map +1 -1
  100. package/bundles/material-sidenav.umd.js +102 -23
  101. package/bundles/material-sidenav.umd.js.map +1 -1
  102. package/bundles/material-sidenav.umd.min.js +1 -1
  103. package/bundles/material-sidenav.umd.min.js.map +1 -1
  104. package/bundles/material-slide-toggle.umd.js +33 -15
  105. package/bundles/material-slide-toggle.umd.js.map +1 -1
  106. package/bundles/material-slide-toggle.umd.min.js +1 -1
  107. package/bundles/material-slide-toggle.umd.min.js.map +1 -1
  108. package/bundles/material-slider.umd.js +89 -19
  109. package/bundles/material-slider.umd.js.map +1 -1
  110. package/bundles/material-slider.umd.min.js +1 -1
  111. package/bundles/material-slider.umd.min.js.map +1 -1
  112. package/bundles/material-snack-bar.umd.js +74 -22
  113. package/bundles/material-snack-bar.umd.js.map +1 -1
  114. package/bundles/material-snack-bar.umd.min.js +1 -1
  115. package/bundles/material-snack-bar.umd.min.js.map +1 -1
  116. package/bundles/material-sort.umd.js +45 -23
  117. package/bundles/material-sort.umd.js.map +1 -1
  118. package/bundles/material-sort.umd.min.js.map +1 -1
  119. package/bundles/material-stepper.umd.js +37 -44
  120. package/bundles/material-stepper.umd.js.map +1 -1
  121. package/bundles/material-stepper.umd.min.js +1 -1
  122. package/bundles/material-stepper.umd.min.js.map +1 -1
  123. package/bundles/material-table.umd.js +29 -19
  124. package/bundles/material-table.umd.js.map +1 -1
  125. package/bundles/material-table.umd.min.js +1 -1
  126. package/bundles/material-table.umd.min.js.map +1 -1
  127. package/bundles/material-tabs.umd.js +156 -56
  128. package/bundles/material-tabs.umd.js.map +1 -1
  129. package/bundles/material-tabs.umd.min.js +2 -2
  130. package/bundles/material-tabs.umd.min.js.map +1 -1
  131. package/bundles/material-toolbar.umd.js +13 -3
  132. package/bundles/material-toolbar.umd.js.map +1 -1
  133. package/bundles/material-toolbar.umd.min.js.map +1 -1
  134. package/bundles/material-tooltip.umd.js +52 -25
  135. package/bundles/material-tooltip.umd.js.map +1 -1
  136. package/bundles/material-tooltip.umd.min.js.map +1 -1
  137. package/bundles/material-tree.umd.js +25 -26
  138. package/bundles/material-tree.umd.js.map +1 -1
  139. package/bundles/material-tree.umd.min.js +1 -1
  140. package/bundles/material-tree.umd.min.js.map +1 -1
  141. package/bundles/material.umd.js +2780 -979
  142. package/bundles/material.umd.js.map +1 -1
  143. package/bundles/material.umd.min.js +19 -21
  144. package/bundles/material.umd.min.js.map +1 -1
  145. package/button/typings/button.d.ts +0 -5
  146. package/button/typings/index.metadata.json +1 -1
  147. package/button-toggle/typings/index.metadata.json +1 -1
  148. package/checkbox/typings/index.metadata.json +1 -1
  149. package/chips/typings/chip-list.d.ts +1 -1
  150. package/chips/typings/chip.d.ts +2 -2
  151. package/chips/typings/index.metadata.json +1 -1
  152. package/core/typings/index.metadata.json +1 -1
  153. package/core/typings/{testing/month-constants.d.ts → month-constants.d.ts} +2 -0
  154. package/core/typings/public-api.d.ts +1 -1
  155. package/datepicker/typings/calendar-body.d.ts +21 -5
  156. package/datepicker/typings/calendar.d.ts +4 -1
  157. package/datepicker/typings/datepicker-toggle.d.ts +5 -0
  158. package/datepicker/typings/datepicker.d.ts +3 -0
  159. package/datepicker/typings/index.metadata.json +1 -1
  160. package/datepicker/typings/month-view.d.ts +4 -2
  161. package/dialog/typings/index.metadata.json +1 -1
  162. package/esm2015/autocomplete.js +58 -27
  163. package/esm2015/autocomplete.js.map +1 -1
  164. package/esm2015/badge.js +29 -6
  165. package/esm2015/badge.js.map +1 -1
  166. package/esm2015/bottom-sheet.js +46 -27
  167. package/esm2015/bottom-sheet.js.map +1 -1
  168. package/esm2015/button-toggle.js +24 -13
  169. package/esm2015/button-toggle.js.map +1 -1
  170. package/esm2015/button.js +18 -13
  171. package/esm2015/button.js.map +1 -1
  172. package/esm2015/card.js +4 -4
  173. package/esm2015/card.js.map +1 -1
  174. package/esm2015/checkbox.js +30 -12
  175. package/esm2015/checkbox.js.map +1 -1
  176. package/esm2015/chips.js +64 -28
  177. package/esm2015/chips.js.map +1 -1
  178. package/esm2015/core.js +145 -126
  179. package/esm2015/core.js.map +1 -1
  180. package/esm2015/datepicker.js +131 -44
  181. package/esm2015/datepicker.js.map +1 -1
  182. package/esm2015/dialog.js +76 -45
  183. package/esm2015/dialog.js.map +1 -1
  184. package/esm2015/divider.js +4 -4
  185. package/esm2015/divider.js.map +1 -1
  186. package/esm2015/expansion.js +35 -25
  187. package/esm2015/expansion.js.map +1 -1
  188. package/esm2015/form-field.js +93 -34
  189. package/esm2015/form-field.js.map +1 -1
  190. package/esm2015/grid-list.js +45 -17
  191. package/esm2015/grid-list.js.map +1 -1
  192. package/esm2015/icon.js +139 -68
  193. package/esm2015/icon.js.map +1 -1
  194. package/esm2015/input.js +40 -23
  195. package/esm2015/input.js.map +1 -1
  196. package/esm2015/list.js +49 -23
  197. package/esm2015/list.js.map +1 -1
  198. package/esm2015/material.js +10 -9
  199. package/esm2015/material.js.map +1 -1
  200. package/esm2015/menu.js +100 -53
  201. package/esm2015/menu.js.map +1 -1
  202. package/esm2015/paginator.js +35 -12
  203. package/esm2015/paginator.js.map +1 -1
  204. package/esm2015/progress-bar.js +30 -15
  205. package/esm2015/progress-bar.js.map +1 -1
  206. package/esm2015/progress-spinner.js +24 -14
  207. package/esm2015/progress-spinner.js.map +1 -1
  208. package/esm2015/radio.js +17 -7
  209. package/esm2015/radio.js.map +1 -1
  210. package/esm2015/select.js +103 -50
  211. package/esm2015/select.js.map +1 -1
  212. package/esm2015/sidenav.js +73 -26
  213. package/esm2015/sidenav.js.map +1 -1
  214. package/esm2015/slide-toggle.js +26 -16
  215. package/esm2015/slide-toggle.js.map +1 -1
  216. package/esm2015/slider.js +50 -20
  217. package/esm2015/slider.js.map +1 -1
  218. package/esm2015/snack-bar.js +44 -24
  219. package/esm2015/snack-bar.js.map +1 -1
  220. package/esm2015/sort.js +46 -23
  221. package/esm2015/sort.js.map +1 -1
  222. package/esm2015/stepper.js +35 -39
  223. package/esm2015/stepper.js.map +1 -1
  224. package/esm2015/table.js +31 -21
  225. package/esm2015/table.js.map +1 -1
  226. package/esm2015/tabs.js +110 -52
  227. package/esm2015/tabs.js.map +1 -1
  228. package/esm2015/toolbar.js +8 -4
  229. package/esm2015/toolbar.js.map +1 -1
  230. package/esm2015/tooltip.js +42 -27
  231. package/esm2015/tooltip.js.map +1 -1
  232. package/esm2015/tree.js +22 -25
  233. package/esm2015/tree.js.map +1 -1
  234. package/esm5/autocomplete.es5.js +126 -32
  235. package/esm5/autocomplete.es5.js.map +1 -1
  236. package/esm5/badge.es5.js +40 -7
  237. package/esm5/badge.es5.js.map +1 -1
  238. package/esm5/bottom-sheet.es5.js +71 -28
  239. package/esm5/bottom-sheet.es5.js.map +1 -1
  240. package/esm5/button-toggle.es5.js +42 -17
  241. package/esm5/button-toggle.es5.js.map +1 -1
  242. package/esm5/button.es5.js +21 -14
  243. package/esm5/button.es5.js.map +1 -1
  244. package/esm5/card.es5.js +4 -4
  245. package/esm5/card.es5.js.map +1 -1
  246. package/esm5/checkbox.es5.js +58 -17
  247. package/esm5/checkbox.es5.js.map +1 -1
  248. package/esm5/chips.es5.js +127 -37
  249. package/esm5/chips.es5.js.map +1 -1
  250. package/esm5/core.es5.js +189 -126
  251. package/esm5/core.es5.js.map +1 -1
  252. package/esm5/datepicker.es5.js +240 -58
  253. package/esm5/datepicker.es5.js.map +1 -1
  254. package/esm5/dialog.es5.js +139 -47
  255. package/esm5/dialog.es5.js.map +1 -1
  256. package/esm5/divider.es5.js +4 -4
  257. package/esm5/divider.es5.js.map +1 -1
  258. package/esm5/expansion.es5.js +35 -25
  259. package/esm5/expansion.es5.js.map +1 -1
  260. package/esm5/form-field.es5.js +124 -36
  261. package/esm5/form-field.es5.js.map +1 -1
  262. package/esm5/grid-list.es5.js +68 -17
  263. package/esm5/grid-list.es5.js.map +1 -1
  264. package/esm5/icon.es5.js +282 -81
  265. package/esm5/icon.es5.js.map +1 -1
  266. package/esm5/input.es5.js +48 -26
  267. package/esm5/input.es5.js.map +1 -1
  268. package/esm5/list.es5.js +74 -25
  269. package/esm5/list.es5.js.map +1 -1
  270. package/esm5/material.es5.js +10 -9
  271. package/esm5/material.es5.js.map +1 -1
  272. package/esm5/menu.es5.js +158 -55
  273. package/esm5/menu.es5.js.map +1 -1
  274. package/esm5/paginator.es5.js +55 -13
  275. package/esm5/paginator.es5.js.map +1 -1
  276. package/esm5/progress-bar.es5.js +37 -16
  277. package/esm5/progress-bar.es5.js.map +1 -1
  278. package/esm5/progress-spinner.es5.js +31 -15
  279. package/esm5/progress-spinner.es5.js.map +1 -1
  280. package/esm5/radio.es5.js +28 -9
  281. package/esm5/radio.es5.js.map +1 -1
  282. package/esm5/select.es5.js +181 -52
  283. package/esm5/select.es5.js.map +1 -1
  284. package/esm5/sidenav.es5.js +105 -26
  285. package/esm5/sidenav.es5.js.map +1 -1
  286. package/esm5/slide-toggle.es5.js +35 -17
  287. package/esm5/slide-toggle.es5.js.map +1 -1
  288. package/esm5/slider.es5.js +91 -21
  289. package/esm5/slider.es5.js.map +1 -1
  290. package/esm5/snack-bar.es5.js +76 -24
  291. package/esm5/snack-bar.es5.js.map +1 -1
  292. package/esm5/sort.es5.js +52 -25
  293. package/esm5/sort.es5.js.map +1 -1
  294. package/esm5/stepper.es5.js +40 -47
  295. package/esm5/stepper.es5.js.map +1 -1
  296. package/esm5/table.es5.js +31 -21
  297. package/esm5/table.es5.js.map +1 -1
  298. package/esm5/tabs.es5.js +159 -60
  299. package/esm5/tabs.es5.js.map +1 -1
  300. package/esm5/toolbar.es5.js +15 -5
  301. package/esm5/toolbar.es5.js.map +1 -1
  302. package/esm5/tooltip.es5.js +54 -27
  303. package/esm5/tooltip.es5.js.map +1 -1
  304. package/esm5/tree.es5.js +27 -28
  305. package/esm5/tree.es5.js.map +1 -1
  306. package/form-field/typings/form-field.d.ts +15 -4
  307. package/form-field/typings/index.metadata.json +1 -1
  308. package/grid-list/typings/index.d.ts +1 -1
  309. package/grid-list/typings/index.metadata.json +1 -1
  310. package/icon/typings/index.metadata.json +1 -1
  311. package/list/typings/index.metadata.json +1 -1
  312. package/material.d.ts +1 -1
  313. package/material.metadata.json +3 -3
  314. package/menu/typings/index.metadata.json +1 -1
  315. package/menu/typings/menu-item.d.ts +2 -0
  316. package/menu/typings/menu-trigger.d.ts +5 -0
  317. package/package.json +5 -5
  318. package/paginator/typings/index.metadata.json +1 -1
  319. package/paginator/typings/paginator.d.ts +7 -3
  320. package/prebuilt-themes/deeppurple-amber.css +1 -1
  321. package/prebuilt-themes/indigo-pink.css +1 -1
  322. package/prebuilt-themes/pink-bluegrey.css +1 -1
  323. package/prebuilt-themes/purple-green.css +1 -1
  324. package/progress-bar/typings/index.metadata.json +1 -1
  325. package/schematics/ng-add/theming/{custom-theme.d.ts → create-custom-theme.d.ts} +0 -0
  326. package/schematics/ng-add/theming/{custom-theme.js → create-custom-theme.js} +1 -1
  327. package/schematics/ng-add/theming/create-custom-theme.js.map +1 -0
  328. package/schematics/ng-add/theming/theming.js +35 -19
  329. package/schematics/ng-add/theming/theming.js.map +1 -1
  330. package/schematics/ng-generate/address-form/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.ts +2 -2
  331. package/schematics/ng-generate/dashboard/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.ts +2 -2
  332. package/schematics/ng-generate/nav/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.ts +2 -2
  333. package/schematics/ng-generate/table/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.ts +2 -2
  334. package/schematics/ng-generate/tree/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.ts +2 -2
  335. package/select/typings/index.metadata.json +1 -1
  336. package/sidenav/typings/drawer.d.ts +9 -2
  337. package/sidenav/typings/index.metadata.json +1 -1
  338. package/slide-toggle/typings/index.metadata.json +1 -1
  339. package/stepper/typings/index.metadata.json +1 -1
  340. package/stepper/typings/step-header.d.ts +3 -5
  341. package/table/typings/index.metadata.json +1 -1
  342. package/tabs/typings/index.metadata.json +1 -1
  343. package/tabs/typings/tab-body.d.ts +2 -0
  344. package/tabs/typings/tab-group.d.ts +11 -2
  345. package/tabs/typings/tab-header.d.ts +9 -3
  346. package/tree/typings/data-source/flat-data-source.d.ts +2 -2
  347. package/tree/typings/index.metadata.json +1 -1
  348. package/typings/autocomplete/index.d.ts +1 -1
  349. package/typings/autocomplete/index.metadata.json +1 -1
  350. package/typings/badge/index.metadata.json +1 -1
  351. package/typings/bottom-sheet/bottom-sheet-config.d.ts +5 -0
  352. package/typings/bottom-sheet/bottom-sheet-container.d.ts +1 -1
  353. package/typings/bottom-sheet/index.metadata.json +1 -1
  354. package/typings/button/button.d.ts +0 -5
  355. package/typings/button/index.metadata.json +1 -1
  356. package/typings/button-toggle/index.metadata.json +1 -1
  357. package/typings/checkbox/index.metadata.json +1 -1
  358. package/typings/chips/chip-list.d.ts +1 -1
  359. package/typings/chips/chip.d.ts +2 -2
  360. package/typings/chips/index.metadata.json +1 -1
  361. package/typings/core/index.metadata.json +1 -1
  362. package/typings/core/{testing/month-constants.d.ts → month-constants.d.ts} +2 -0
  363. package/typings/core/public-api.d.ts +1 -1
  364. package/typings/datepicker/calendar-body.d.ts +21 -5
  365. package/typings/datepicker/calendar.d.ts +4 -1
  366. package/typings/datepicker/datepicker-toggle.d.ts +5 -0
  367. package/typings/datepicker/datepicker.d.ts +3 -0
  368. package/typings/datepicker/index.metadata.json +1 -1
  369. package/typings/datepicker/month-view.d.ts +4 -2
  370. package/typings/dialog/index.metadata.json +1 -1
  371. package/typings/esm5/autocomplete/index.d.ts +1 -1
  372. package/typings/esm5/autocomplete/index.metadata.json +1 -1
  373. package/typings/esm5/badge/index.metadata.json +1 -1
  374. package/typings/esm5/bottom-sheet/bottom-sheet-config.d.ts +5 -0
  375. package/typings/esm5/bottom-sheet/bottom-sheet-container.d.ts +1 -1
  376. package/typings/esm5/bottom-sheet/index.metadata.json +1 -1
  377. package/typings/esm5/button/button.d.ts +0 -5
  378. package/typings/esm5/button/index.metadata.json +1 -1
  379. package/typings/esm5/button-toggle/index.metadata.json +1 -1
  380. package/typings/esm5/checkbox/index.metadata.json +1 -1
  381. package/typings/esm5/chips/chip-list.d.ts +1 -1
  382. package/typings/esm5/chips/chip.d.ts +2 -2
  383. package/typings/esm5/chips/index.metadata.json +1 -1
  384. package/typings/esm5/core/index.metadata.json +1 -1
  385. package/typings/esm5/core/{testing/month-constants.d.ts → month-constants.d.ts} +2 -0
  386. package/typings/esm5/core/public-api.d.ts +1 -1
  387. package/typings/esm5/datepicker/calendar-body.d.ts +21 -5
  388. package/typings/esm5/datepicker/calendar.d.ts +4 -1
  389. package/typings/esm5/datepicker/datepicker-toggle.d.ts +5 -0
  390. package/typings/esm5/datepicker/datepicker.d.ts +3 -0
  391. package/typings/esm5/datepicker/index.metadata.json +1 -1
  392. package/typings/esm5/datepicker/month-view.d.ts +4 -2
  393. package/typings/esm5/dialog/index.metadata.json +1 -1
  394. package/typings/esm5/form-field/form-field.d.ts +15 -4
  395. package/typings/esm5/form-field/index.metadata.json +1 -1
  396. package/typings/esm5/grid-list/index.d.ts +1 -1
  397. package/typings/esm5/grid-list/index.metadata.json +1 -1
  398. package/typings/esm5/icon/index.metadata.json +1 -1
  399. package/typings/esm5/index.metadata.json +1 -1
  400. package/typings/esm5/list/index.metadata.json +1 -1
  401. package/typings/esm5/menu/index.metadata.json +1 -1
  402. package/typings/esm5/menu/menu-item.d.ts +2 -0
  403. package/typings/esm5/menu/menu-trigger.d.ts +5 -0
  404. package/typings/esm5/paginator/index.metadata.json +1 -1
  405. package/typings/esm5/paginator/paginator.d.ts +7 -3
  406. package/typings/esm5/progress-bar/index.metadata.json +1 -1
  407. package/typings/esm5/select/index.metadata.json +1 -1
  408. package/typings/esm5/sidenav/drawer.d.ts +9 -2
  409. package/typings/esm5/sidenav/index.metadata.json +1 -1
  410. package/typings/esm5/slide-toggle/index.metadata.json +1 -1
  411. package/typings/esm5/stepper/index.metadata.json +1 -1
  412. package/typings/esm5/stepper/step-header.d.ts +3 -5
  413. package/typings/esm5/table/index.metadata.json +1 -1
  414. package/typings/esm5/tabs/index.metadata.json +1 -1
  415. package/typings/esm5/tabs/tab-body.d.ts +2 -0
  416. package/typings/esm5/tabs/tab-group.d.ts +11 -2
  417. package/typings/esm5/tabs/tab-header.d.ts +9 -3
  418. package/typings/esm5/tree/data-source/flat-data-source.d.ts +2 -2
  419. package/typings/esm5/tree/index.metadata.json +1 -1
  420. package/typings/form-field/form-field.d.ts +15 -4
  421. package/typings/form-field/index.metadata.json +1 -1
  422. package/typings/grid-list/index.d.ts +1 -1
  423. package/typings/grid-list/index.metadata.json +1 -1
  424. package/typings/icon/index.metadata.json +1 -1
  425. package/typings/index.metadata.json +1 -1
  426. package/typings/list/index.metadata.json +1 -1
  427. package/typings/menu/index.metadata.json +1 -1
  428. package/typings/menu/menu-item.d.ts +2 -0
  429. package/typings/menu/menu-trigger.d.ts +5 -0
  430. package/typings/paginator/index.metadata.json +1 -1
  431. package/typings/paginator/paginator.d.ts +7 -3
  432. package/typings/progress-bar/index.metadata.json +1 -1
  433. package/typings/schematics/ng-add/theming/{custom-theme.d.ts → create-custom-theme.d.ts} +0 -0
  434. package/typings/select/index.metadata.json +1 -1
  435. package/typings/sidenav/drawer.d.ts +9 -2
  436. package/typings/sidenav/index.metadata.json +1 -1
  437. package/typings/slide-toggle/index.metadata.json +1 -1
  438. package/typings/stepper/index.metadata.json +1 -1
  439. package/typings/stepper/step-header.d.ts +3 -5
  440. package/typings/table/index.metadata.json +1 -1
  441. package/typings/tabs/index.metadata.json +1 -1
  442. package/typings/tabs/tab-body.d.ts +2 -0
  443. package/typings/tabs/tab-group.d.ts +11 -2
  444. package/typings/tabs/tab-header.d.ts +9 -3
  445. package/typings/tree/data-source/flat-data-source.d.ts +2 -2
  446. package/typings/tree/index.metadata.json +1 -1
  447. package/schematics/ng-add/theming/custom-theme.js.map +0 -1
@@ -42,7 +42,7 @@ function __extends(d, b) {
42
42
 
43
43
  /**
44
44
  * @fileoverview added by tsickle
45
- * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
45
+ * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
46
46
  */
47
47
  /**
48
48
  * Returns an exception to be thrown in the case when attempting to
@@ -97,11 +97,11 @@ SvgIconConfig = /** @class */ (function () {
97
97
  function SvgIconConfig(data) {
98
98
  // Note that we can't use `instanceof SVGElement` here,
99
99
  // because it'll break during server-side rendering.
100
- if (!!(/** @type {?} */ (data)).nodeName) {
101
- this.svgElement = /** @type {?} */ (data);
100
+ if (!!((/** @type {?} */ (data))).nodeName) {
101
+ this.svgElement = (/** @type {?} */ (data));
102
102
  }
103
103
  else {
104
- this.url = /** @type {?} */ (data);
104
+ this.url = (/** @type {?} */ (data));
105
105
  }
106
106
  }
107
107
  return SvgIconConfig;
@@ -153,18 +153,22 @@ var MatIconRegistry = /** @class */ (function () {
153
153
  */
154
154
  /**
155
155
  * Registers an icon by URL in the default namespace.
156
+ * @template THIS
157
+ * @this {THIS}
156
158
  * @param {?} iconName Name under which the icon should be registered.
157
159
  * @param {?} url
158
- * @return {?}
160
+ * @return {THIS}
159
161
  */
160
162
  MatIconRegistry.prototype.addSvgIcon = /**
161
163
  * Registers an icon by URL in the default namespace.
164
+ * @template THIS
165
+ * @this {THIS}
162
166
  * @param {?} iconName Name under which the icon should be registered.
163
167
  * @param {?} url
164
- * @return {?}
168
+ * @return {THIS}
165
169
  */
166
170
  function (iconName, url) {
167
- return this.addSvgIconInNamespace('', iconName, url);
171
+ return (/** @type {?} */ (this)).addSvgIconInNamespace('', iconName, url);
168
172
  };
169
173
  /**
170
174
  * Registers an icon using an HTML string in the default namespace.
@@ -173,18 +177,22 @@ var MatIconRegistry = /** @class */ (function () {
173
177
  */
174
178
  /**
175
179
  * Registers an icon using an HTML string in the default namespace.
180
+ * @template THIS
181
+ * @this {THIS}
176
182
  * @param {?} iconName Name under which the icon should be registered.
177
183
  * @param {?} literal SVG source of the icon.
178
- * @return {?}
184
+ * @return {THIS}
179
185
  */
180
186
  MatIconRegistry.prototype.addSvgIconLiteral = /**
181
187
  * Registers an icon using an HTML string in the default namespace.
188
+ * @template THIS
189
+ * @this {THIS}
182
190
  * @param {?} iconName Name under which the icon should be registered.
183
191
  * @param {?} literal SVG source of the icon.
184
- * @return {?}
192
+ * @return {THIS}
185
193
  */
186
194
  function (iconName, literal) {
187
- return this.addSvgIconLiteralInNamespace('', iconName, literal);
195
+ return (/** @type {?} */ (this)).addSvgIconLiteralInNamespace('', iconName, literal);
188
196
  };
189
197
  /**
190
198
  * Registers an icon by URL in the specified namespace.
@@ -194,20 +202,24 @@ var MatIconRegistry = /** @class */ (function () {
194
202
  */
195
203
  /**
196
204
  * Registers an icon by URL in the specified namespace.
205
+ * @template THIS
206
+ * @this {THIS}
197
207
  * @param {?} namespace Namespace in which the icon should be registered.
198
208
  * @param {?} iconName Name under which the icon should be registered.
199
209
  * @param {?} url
200
- * @return {?}
210
+ * @return {THIS}
201
211
  */
202
212
  MatIconRegistry.prototype.addSvgIconInNamespace = /**
203
213
  * Registers an icon by URL in the specified namespace.
214
+ * @template THIS
215
+ * @this {THIS}
204
216
  * @param {?} namespace Namespace in which the icon should be registered.
205
217
  * @param {?} iconName Name under which the icon should be registered.
206
218
  * @param {?} url
207
- * @return {?}
219
+ * @return {THIS}
208
220
  */
209
221
  function (namespace, iconName, url) {
210
- return this._addSvgIconConfig(namespace, iconName, new SvgIconConfig(url));
222
+ return (/** @type {?} */ (this))._addSvgIconConfig(namespace, iconName, new SvgIconConfig(url));
211
223
  };
212
224
  /**
213
225
  * Registers an icon using an HTML string in the specified namespace.
@@ -217,27 +229,31 @@ var MatIconRegistry = /** @class */ (function () {
217
229
  */
218
230
  /**
219
231
  * Registers an icon using an HTML string in the specified namespace.
232
+ * @template THIS
233
+ * @this {THIS}
220
234
  * @param {?} namespace Namespace in which the icon should be registered.
221
235
  * @param {?} iconName Name under which the icon should be registered.
222
236
  * @param {?} literal SVG source of the icon.
223
- * @return {?}
237
+ * @return {THIS}
224
238
  */
225
239
  MatIconRegistry.prototype.addSvgIconLiteralInNamespace = /**
226
240
  * Registers an icon using an HTML string in the specified namespace.
241
+ * @template THIS
242
+ * @this {THIS}
227
243
  * @param {?} namespace Namespace in which the icon should be registered.
228
244
  * @param {?} iconName Name under which the icon should be registered.
229
245
  * @param {?} literal SVG source of the icon.
230
- * @return {?}
246
+ * @return {THIS}
231
247
  */
232
248
  function (namespace, iconName, literal) {
233
249
  /** @type {?} */
234
- var sanitizedLiteral = this._sanitizer.sanitize(core.SecurityContext.HTML, literal);
250
+ var sanitizedLiteral = (/** @type {?} */ (this))._sanitizer.sanitize(core.SecurityContext.HTML, literal);
235
251
  if (!sanitizedLiteral) {
236
252
  throw getMatIconFailedToSanitizeLiteralError(literal);
237
253
  }
238
254
  /** @type {?} */
239
- var svgElement = this._createSvgElementForSingleIcon(sanitizedLiteral);
240
- return this._addSvgIconConfig(namespace, iconName, new SvgIconConfig(svgElement));
255
+ var svgElement = (/** @type {?} */ (this))._createSvgElementForSingleIcon(sanitizedLiteral);
256
+ return (/** @type {?} */ (this))._addSvgIconConfig(namespace, iconName, new SvgIconConfig(svgElement));
241
257
  };
242
258
  /**
243
259
  * Registers an icon set by URL in the default namespace.
@@ -245,16 +261,20 @@ var MatIconRegistry = /** @class */ (function () {
245
261
  */
246
262
  /**
247
263
  * Registers an icon set by URL in the default namespace.
264
+ * @template THIS
265
+ * @this {THIS}
248
266
  * @param {?} url
249
- * @return {?}
267
+ * @return {THIS}
250
268
  */
251
269
  MatIconRegistry.prototype.addSvgIconSet = /**
252
270
  * Registers an icon set by URL in the default namespace.
271
+ * @template THIS
272
+ * @this {THIS}
253
273
  * @param {?} url
254
- * @return {?}
274
+ * @return {THIS}
255
275
  */
256
276
  function (url) {
257
- return this.addSvgIconSetInNamespace('', url);
277
+ return (/** @type {?} */ (this)).addSvgIconSetInNamespace('', url);
258
278
  };
259
279
  /**
260
280
  * Registers an icon set using an HTML string in the default namespace.
@@ -262,16 +282,20 @@ var MatIconRegistry = /** @class */ (function () {
262
282
  */
263
283
  /**
264
284
  * Registers an icon set using an HTML string in the default namespace.
285
+ * @template THIS
286
+ * @this {THIS}
265
287
  * @param {?} literal SVG source of the icon set.
266
- * @return {?}
288
+ * @return {THIS}
267
289
  */
268
290
  MatIconRegistry.prototype.addSvgIconSetLiteral = /**
269
291
  * Registers an icon set using an HTML string in the default namespace.
292
+ * @template THIS
293
+ * @this {THIS}
270
294
  * @param {?} literal SVG source of the icon set.
271
- * @return {?}
295
+ * @return {THIS}
272
296
  */
273
297
  function (literal) {
274
- return this.addSvgIconSetLiteralInNamespace('', literal);
298
+ return (/** @type {?} */ (this)).addSvgIconSetLiteralInNamespace('', literal);
275
299
  };
276
300
  /**
277
301
  * Registers an icon set by URL in the specified namespace.
@@ -280,18 +304,22 @@ var MatIconRegistry = /** @class */ (function () {
280
304
  */
281
305
  /**
282
306
  * Registers an icon set by URL in the specified namespace.
307
+ * @template THIS
308
+ * @this {THIS}
283
309
  * @param {?} namespace Namespace in which to register the icon set.
284
310
  * @param {?} url
285
- * @return {?}
311
+ * @return {THIS}
286
312
  */
287
313
  MatIconRegistry.prototype.addSvgIconSetInNamespace = /**
288
314
  * Registers an icon set by URL in the specified namespace.
315
+ * @template THIS
316
+ * @this {THIS}
289
317
  * @param {?} namespace Namespace in which to register the icon set.
290
318
  * @param {?} url
291
- * @return {?}
319
+ * @return {THIS}
292
320
  */
293
321
  function (namespace, url) {
294
- return this._addSvgIconSetConfig(namespace, new SvgIconConfig(url));
322
+ return (/** @type {?} */ (this))._addSvgIconSetConfig(namespace, new SvgIconConfig(url));
295
323
  };
296
324
  /**
297
325
  * Registers an icon set using an HTML string in the specified namespace.
@@ -300,25 +328,29 @@ var MatIconRegistry = /** @class */ (function () {
300
328
  */
301
329
  /**
302
330
  * Registers an icon set using an HTML string in the specified namespace.
331
+ * @template THIS
332
+ * @this {THIS}
303
333
  * @param {?} namespace Namespace in which to register the icon set.
304
334
  * @param {?} literal SVG source of the icon set.
305
- * @return {?}
335
+ * @return {THIS}
306
336
  */
307
337
  MatIconRegistry.prototype.addSvgIconSetLiteralInNamespace = /**
308
338
  * Registers an icon set using an HTML string in the specified namespace.
339
+ * @template THIS
340
+ * @this {THIS}
309
341
  * @param {?} namespace Namespace in which to register the icon set.
310
342
  * @param {?} literal SVG source of the icon set.
311
- * @return {?}
343
+ * @return {THIS}
312
344
  */
313
345
  function (namespace, literal) {
314
346
  /** @type {?} */
315
- var sanitizedLiteral = this._sanitizer.sanitize(core.SecurityContext.HTML, literal);
347
+ var sanitizedLiteral = (/** @type {?} */ (this))._sanitizer.sanitize(core.SecurityContext.HTML, literal);
316
348
  if (!sanitizedLiteral) {
317
349
  throw getMatIconFailedToSanitizeLiteralError(literal);
318
350
  }
319
351
  /** @type {?} */
320
- var svgElement = this._svgElementFromString(sanitizedLiteral);
321
- return this._addSvgIconSetConfig(namespace, new SvgIconConfig(svgElement));
352
+ var svgElement = (/** @type {?} */ (this))._svgElementFromString(sanitizedLiteral);
353
+ return (/** @type {?} */ (this))._addSvgIconSetConfig(namespace, new SvgIconConfig(svgElement));
322
354
  };
323
355
  /**
324
356
  * Defines an alias for a CSS class name to be used for icon fonts. Creating an matIcon
@@ -333,23 +365,27 @@ var MatIconRegistry = /** @class */ (function () {
333
365
  * component with the alias as the fontSet input will cause the class name to be applied
334
366
  * to the `<mat-icon>` element.
335
367
  *
368
+ * @template THIS
369
+ * @this {THIS}
336
370
  * @param {?} alias Alias for the font.
337
371
  * @param {?=} className Class name override to be used instead of the alias.
338
- * @return {?}
372
+ * @return {THIS}
339
373
  */
340
374
  MatIconRegistry.prototype.registerFontClassAlias = /**
341
375
  * Defines an alias for a CSS class name to be used for icon fonts. Creating an matIcon
342
376
  * component with the alias as the fontSet input will cause the class name to be applied
343
377
  * to the `<mat-icon>` element.
344
378
  *
379
+ * @template THIS
380
+ * @this {THIS}
345
381
  * @param {?} alias Alias for the font.
346
382
  * @param {?=} className Class name override to be used instead of the alias.
347
- * @return {?}
383
+ * @return {THIS}
348
384
  */
349
385
  function (alias, className) {
350
386
  if (className === void 0) { className = alias; }
351
- this._fontCssClassesByAlias.set(alias, className);
352
- return this;
387
+ (/** @type {?} */ (this))._fontCssClassesByAlias.set(alias, className);
388
+ return (/** @type {?} */ (this));
353
389
  };
354
390
  /**
355
391
  * Returns the CSS class name associated with the alias by a previous call to
@@ -380,19 +416,23 @@ var MatIconRegistry = /** @class */ (function () {
380
416
  * Sets the CSS class name to be used for icon fonts when an `<mat-icon>` component does not
381
417
  * have a fontSet input value, and is not loading an icon by name or URL.
382
418
  *
419
+ * @template THIS
420
+ * @this {THIS}
383
421
  * @param {?} className
384
- * @return {?}
422
+ * @return {THIS}
385
423
  */
386
424
  MatIconRegistry.prototype.setDefaultFontSetClass = /**
387
425
  * Sets the CSS class name to be used for icon fonts when an `<mat-icon>` component does not
388
426
  * have a fontSet input value, and is not loading an icon by name or URL.
389
427
  *
428
+ * @template THIS
429
+ * @this {THIS}
390
430
  * @param {?} className
391
- * @return {?}
431
+ * @return {THIS}
392
432
  */
393
433
  function (className) {
394
- this._defaultFontSetClass = className;
395
- return this;
434
+ (/** @type {?} */ (this))._defaultFontSetClass = className;
435
+ return (/** @type {?} */ (this));
396
436
  };
397
437
  /**
398
438
  * Returns the CSS class name to be used for icon fonts when an `<mat-icon>` component does not
@@ -449,7 +489,7 @@ var MatIconRegistry = /** @class */ (function () {
449
489
  if (cachedIcon) {
450
490
  return rxjs.of(cloneSvg(cachedIcon));
451
491
  }
452
- return this._loadSvgIconFromConfig(new SvgIconConfig(safeUrl)).pipe(operators.tap(function (svg) { return _this._cachedIconsByUrl.set(/** @type {?} */ ((url)), svg); }), operators.map(function (svg) { return cloneSvg(svg); }));
492
+ return this._loadSvgIconFromConfig(new SvgIconConfig(safeUrl)).pipe(operators.tap(function (svg) { return _this._cachedIconsByUrl.set((/** @type {?} */ (url)), svg); }), operators.map(function (svg) { return cloneSvg(svg); }));
453
493
  };
454
494
  /**
455
495
  * Returns an Observable that produces the icon (as an `<svg>` DOM element) with the given name
@@ -479,6 +519,7 @@ var MatIconRegistry = /** @class */ (function () {
479
519
  */
480
520
  function (name, namespace) {
481
521
  if (namespace === void 0) { namespace = ''; }
522
+ // Return (copy of) cached icon if possible.
482
523
  /** @type {?} */
483
524
  var key = iconKey(namespace, name);
484
525
  /** @type {?} */
@@ -486,6 +527,7 @@ var MatIconRegistry = /** @class */ (function () {
486
527
  if (config) {
487
528
  return this._getSvgFromConfig(config);
488
529
  }
530
+ // See if we have any icon sets registered for the namespace.
489
531
  /** @type {?} */
490
532
  var iconSetConfigs = this._iconSetConfigs.get(namespace);
491
533
  if (iconSetConfigs) {
@@ -495,11 +537,16 @@ var MatIconRegistry = /** @class */ (function () {
495
537
  };
496
538
  /**
497
539
  * Returns the cached icon for a SvgIconConfig if available, or fetches it from its URL if not.
540
+ */
541
+ /**
542
+ * Returns the cached icon for a SvgIconConfig if available, or fetches it from its URL if not.
543
+ * @private
498
544
  * @param {?} config
499
545
  * @return {?}
500
546
  */
501
547
  MatIconRegistry.prototype._getSvgFromConfig = /**
502
548
  * Returns the cached icon for a SvgIconConfig if available, or fetches it from its URL if not.
549
+ * @private
503
550
  * @param {?} config
504
551
  * @return {?}
505
552
  */
@@ -520,6 +567,15 @@ var MatIconRegistry = /** @class */ (function () {
520
567
  * that have not been cached, and searches again after all fetches are completed.
521
568
  * The returned Observable produces the SVG element if possible, and throws
522
569
  * an error if no icon with the specified name can be found.
570
+ */
571
+ /**
572
+ * Attempts to find an icon with the specified name in any of the SVG icon sets.
573
+ * First searches the available cached icons for a nested element with a matching name, and
574
+ * if found copies the element to a new `<svg>` element. If not found, fetches all icon sets
575
+ * that have not been cached, and searches again after all fetches are completed.
576
+ * The returned Observable produces the SVG element if possible, and throws
577
+ * an error if no icon with the specified name can be found.
578
+ * @private
523
579
  * @param {?} name
524
580
  * @param {?} iconSetConfigs
525
581
  * @return {?}
@@ -531,12 +587,15 @@ var MatIconRegistry = /** @class */ (function () {
531
587
  * that have not been cached, and searches again after all fetches are completed.
532
588
  * The returned Observable produces the SVG element if possible, and throws
533
589
  * an error if no icon with the specified name can be found.
590
+ * @private
534
591
  * @param {?} name
535
592
  * @param {?} iconSetConfigs
536
593
  * @return {?}
537
594
  */
538
595
  function (name, iconSetConfigs) {
539
596
  var _this = this;
597
+ // For all the icon set SVG elements we've fetched, see if any contain an icon with the
598
+ // requested name.
540
599
  /** @type {?} */
541
600
  var namedIcon = this._extractIconWithNameFromAnySet(name, iconSetConfigs);
542
601
  if (namedIcon) {
@@ -545,6 +604,8 @@ var MatIconRegistry = /** @class */ (function () {
545
604
  // it from the icon set.
546
605
  return rxjs.of(namedIcon);
547
606
  }
607
+ // Not found in any cached icon sets. If there are icon sets with URLs that we haven't
608
+ // fetched, fetch them now and look for iconName in the results.
548
609
  /** @type {?} */
549
610
  var iconSetFetchRequests = iconSetConfigs
550
611
  .filter(function (iconSetConfig) { return !iconSetConfig.svgElement; })
@@ -573,6 +634,12 @@ var MatIconRegistry = /** @class */ (function () {
573
634
  * Searches the cached SVG elements for the given icon sets for a nested icon element whose "id"
574
635
  * tag matches the specified name. If found, copies the nested element to a new SVG element and
575
636
  * returns it. Returns null if no matching element is found.
637
+ */
638
+ /**
639
+ * Searches the cached SVG elements for the given icon sets for a nested icon element whose "id"
640
+ * tag matches the specified name. If found, copies the nested element to a new SVG element and
641
+ * returns it. Returns null if no matching element is found.
642
+ * @private
576
643
  * @param {?} iconName
577
644
  * @param {?} iconSetConfigs
578
645
  * @return {?}
@@ -581,6 +648,7 @@ var MatIconRegistry = /** @class */ (function () {
581
648
  * Searches the cached SVG elements for the given icon sets for a nested icon element whose "id"
582
649
  * tag matches the specified name. If found, copies the nested element to a new SVG element and
583
650
  * returns it. Returns null if no matching element is found.
651
+ * @private
584
652
  * @param {?} iconName
585
653
  * @param {?} iconSetConfigs
586
654
  * @return {?}
@@ -603,12 +671,18 @@ var MatIconRegistry = /** @class */ (function () {
603
671
  /**
604
672
  * Loads the content of the icon URL specified in the SvgIconConfig and creates an SVG element
605
673
  * from it.
674
+ */
675
+ /**
676
+ * Loads the content of the icon URL specified in the SvgIconConfig and creates an SVG element
677
+ * from it.
678
+ * @private
606
679
  * @param {?} config
607
680
  * @return {?}
608
681
  */
609
682
  MatIconRegistry.prototype._loadSvgIconFromConfig = /**
610
683
  * Loads the content of the icon URL specified in the SvgIconConfig and creates an SVG element
611
684
  * from it.
685
+ * @private
612
686
  * @param {?} config
613
687
  * @return {?}
614
688
  */
@@ -620,12 +694,18 @@ var MatIconRegistry = /** @class */ (function () {
620
694
  /**
621
695
  * Loads the content of the icon set URL specified in the SvgIconConfig and creates an SVG element
622
696
  * from it.
697
+ */
698
+ /**
699
+ * Loads the content of the icon set URL specified in the SvgIconConfig and creates an SVG element
700
+ * from it.
701
+ * @private
623
702
  * @param {?} config
624
703
  * @return {?}
625
704
  */
626
705
  MatIconRegistry.prototype._loadSvgIconSetFromConfig = /**
627
706
  * Loads the content of the icon set URL specified in the SvgIconConfig and creates an SVG element
628
707
  * from it.
708
+ * @private
629
709
  * @param {?} config
630
710
  * @return {?}
631
711
  */
@@ -646,11 +726,16 @@ var MatIconRegistry = /** @class */ (function () {
646
726
  };
647
727
  /**
648
728
  * Creates a DOM element from the given SVG string, and adds default attributes.
729
+ */
730
+ /**
731
+ * Creates a DOM element from the given SVG string, and adds default attributes.
732
+ * @private
649
733
  * @param {?} responseText
650
734
  * @return {?}
651
735
  */
652
736
  MatIconRegistry.prototype._createSvgElementForSingleIcon = /**
653
737
  * Creates a DOM element from the given SVG string, and adds default attributes.
738
+ * @private
654
739
  * @param {?} responseText
655
740
  * @return {?}
656
741
  */
@@ -664,6 +749,12 @@ var MatIconRegistry = /** @class */ (function () {
664
749
  * Searches the cached element of the given SvgIconConfig for a nested icon element whose "id"
665
750
  * tag matches the specified name. If found, copies the nested element to a new SVG element and
666
751
  * returns it. Returns null if no matching element is found.
752
+ */
753
+ /**
754
+ * Searches the cached element of the given SvgIconConfig for a nested icon element whose "id"
755
+ * tag matches the specified name. If found, copies the nested element to a new SVG element and
756
+ * returns it. Returns null if no matching element is found.
757
+ * @private
667
758
  * @param {?} iconSet
668
759
  * @param {?} iconName
669
760
  * @return {?}
@@ -672,6 +763,7 @@ var MatIconRegistry = /** @class */ (function () {
672
763
  * Searches the cached element of the given SvgIconConfig for a nested icon element whose "id"
673
764
  * tag matches the specified name. If found, copies the nested element to a new SVG element and
674
765
  * returns it. Returns null if no matching element is found.
766
+ * @private
675
767
  * @param {?} iconSet
676
768
  * @param {?} iconName
677
769
  * @return {?}
@@ -682,13 +774,15 @@ var MatIconRegistry = /** @class */ (function () {
682
774
  if (!iconSource) {
683
775
  return null;
684
776
  }
777
+ // Clone the element and remove the ID to prevent multiple elements from being added
778
+ // to the page with the same ID.
685
779
  /** @type {?} */
686
- var iconElement = /** @type {?} */ (iconSource.cloneNode(true));
780
+ var iconElement = (/** @type {?} */ (iconSource.cloneNode(true)));
687
781
  iconElement.removeAttribute('id');
688
782
  // If the icon node is itself an <svg> node, clone and return it directly. If not, set it as
689
783
  // the content of a new <svg> node.
690
784
  if (iconElement.nodeName.toLowerCase() === 'svg') {
691
- return this._setSvgAttributes(/** @type {?} */ (iconElement));
785
+ return this._setSvgAttributes((/** @type {?} */ (iconElement)));
692
786
  }
693
787
  // If the node is a <symbol>, it won't be rendered so we have to convert it into <svg>. Note
694
788
  // that the same could be achieved by referring to it via <use href="#id">, however the <use>
@@ -696,6 +790,11 @@ var MatIconRegistry = /** @class */ (function () {
696
790
  if (iconElement.nodeName.toLowerCase() === 'symbol') {
697
791
  return this._setSvgAttributes(this._toSvgElement(iconElement));
698
792
  }
793
+ // createElement('SVG') doesn't work as expected; the DOM ends up with
794
+ // the correct nodes, but the SVG content doesn't render. Instead we
795
+ // have to create an empty SVG node using innerHTML and append its content.
796
+ // Elements created using DOMParser.parseFromString have the same problem.
797
+ // http://stackoverflow.com/questions/23003278/svg-innerhtml-in-firefox-can-not-display
699
798
  /** @type {?} */
700
799
  var svg = this._svgElementFromString('<svg></svg>');
701
800
  // Clone the node so we don't remove it from the parent icon set element.
@@ -704,11 +803,16 @@ var MatIconRegistry = /** @class */ (function () {
704
803
  };
705
804
  /**
706
805
  * Creates a DOM element from the given SVG string.
806
+ */
807
+ /**
808
+ * Creates a DOM element from the given SVG string.
809
+ * @private
707
810
  * @param {?} str
708
811
  * @return {?}
709
812
  */
710
813
  MatIconRegistry.prototype._svgElementFromString = /**
711
814
  * Creates a DOM element from the given SVG string.
815
+ * @private
712
816
  * @param {?} str
713
817
  * @return {?}
714
818
  */
@@ -717,7 +821,7 @@ var MatIconRegistry = /** @class */ (function () {
717
821
  var div = this._document.createElement('DIV');
718
822
  div.innerHTML = str;
719
823
  /** @type {?} */
720
- var svg = /** @type {?} */ (div.querySelector('svg'));
824
+ var svg = (/** @type {?} */ (div.querySelector('svg')));
721
825
  if (!svg) {
722
826
  throw Error('<svg> tag not found');
723
827
  }
@@ -725,11 +829,16 @@ var MatIconRegistry = /** @class */ (function () {
725
829
  };
726
830
  /**
727
831
  * Converts an element into an SVG node by cloning all of its children.
832
+ */
833
+ /**
834
+ * Converts an element into an SVG node by cloning all of its children.
835
+ * @private
728
836
  * @param {?} element
729
837
  * @return {?}
730
838
  */
731
839
  MatIconRegistry.prototype._toSvgElement = /**
732
840
  * Converts an element into an SVG node by cloning all of its children.
841
+ * @private
733
842
  * @param {?} element
734
843
  * @return {?}
735
844
  */
@@ -745,11 +854,16 @@ var MatIconRegistry = /** @class */ (function () {
745
854
  };
746
855
  /**
747
856
  * Sets the default attributes for an SVG element to be used as an icon.
857
+ */
858
+ /**
859
+ * Sets the default attributes for an SVG element to be used as an icon.
860
+ * @private
748
861
  * @param {?} svg
749
862
  * @return {?}
750
863
  */
751
864
  MatIconRegistry.prototype._setSvgAttributes = /**
752
865
  * Sets the default attributes for an SVG element to be used as an icon.
866
+ * @private
753
867
  * @param {?} svg
754
868
  * @return {?}
755
869
  */
@@ -764,12 +878,18 @@ var MatIconRegistry = /** @class */ (function () {
764
878
  /**
765
879
  * Returns an Observable which produces the string contents of the given URL. Results may be
766
880
  * cached, so future calls with the same URL may not cause another HTTP request.
881
+ */
882
+ /**
883
+ * Returns an Observable which produces the string contents of the given URL. Results may be
884
+ * cached, so future calls with the same URL may not cause another HTTP request.
885
+ * @private
767
886
  * @param {?} safeUrl
768
887
  * @return {?}
769
888
  */
770
889
  MatIconRegistry.prototype._fetchUrl = /**
771
890
  * Returns an Observable which produces the string contents of the given URL. Results may be
772
891
  * cached, so future calls with the same URL may not cause another HTTP request.
892
+ * @private
773
893
  * @param {?} safeUrl
774
894
  * @return {?}
775
895
  */
@@ -786,11 +906,16 @@ var MatIconRegistry = /** @class */ (function () {
786
906
  if (!url) {
787
907
  throw getMatIconFailedToSanitizeUrlError(safeUrl);
788
908
  }
909
+ // Store in-progress fetches to avoid sending a duplicate request for a URL when there is
910
+ // already a request in progress for that URL. It's necessary to call share() on the
911
+ // Observable returned by http.get() so that multiple subscribers don't cause multiple XHRs.
789
912
  /** @type {?} */
790
913
  var inProgressFetch = this._inProgressUrlFetches.get(url);
791
914
  if (inProgressFetch) {
792
915
  return inProgressFetch;
793
916
  }
917
+ // TODO(jelbourn): for some reason, the `finalize` operator "loses" the generic type on the
918
+ // Observable. Figure out why and fix it.
794
919
  /** @type {?} */
795
920
  var req = this._httpClient.get(url, { responseType: 'text' }).pipe(operators.finalize(function () { return _this._inProgressUrlFetches.delete(url); }), operators.share());
796
921
  this._inProgressUrlFetches.set(url, req);
@@ -798,44 +923,67 @@ var MatIconRegistry = /** @class */ (function () {
798
923
  };
799
924
  /**
800
925
  * Registers an icon config by name in the specified namespace.
926
+ * @param namespace Namespace in which to register the icon config.
927
+ * @param iconName Name under which to register the config.
928
+ * @param config Config to be registered.
929
+ */
930
+ /**
931
+ * Registers an icon config by name in the specified namespace.
932
+ * @private
933
+ * @template THIS
934
+ * @this {THIS}
801
935
  * @param {?} namespace Namespace in which to register the icon config.
802
936
  * @param {?} iconName Name under which to register the config.
803
937
  * @param {?} config Config to be registered.
804
- * @return {?}
938
+ * @return {THIS}
805
939
  */
806
940
  MatIconRegistry.prototype._addSvgIconConfig = /**
807
941
  * Registers an icon config by name in the specified namespace.
942
+ * @private
943
+ * @template THIS
944
+ * @this {THIS}
808
945
  * @param {?} namespace Namespace in which to register the icon config.
809
946
  * @param {?} iconName Name under which to register the config.
810
947
  * @param {?} config Config to be registered.
811
- * @return {?}
948
+ * @return {THIS}
812
949
  */
813
950
  function (namespace, iconName, config) {
814
- this._svgIconConfigs.set(iconKey(namespace, iconName), config);
815
- return this;
951
+ (/** @type {?} */ (this))._svgIconConfigs.set(iconKey(namespace, iconName), config);
952
+ return (/** @type {?} */ (this));
816
953
  };
817
954
  /**
818
955
  * Registers an icon set config in the specified namespace.
956
+ * @param namespace Namespace in which to register the icon config.
957
+ * @param config Config to be registered.
958
+ */
959
+ /**
960
+ * Registers an icon set config in the specified namespace.
961
+ * @private
962
+ * @template THIS
963
+ * @this {THIS}
819
964
  * @param {?} namespace Namespace in which to register the icon config.
820
965
  * @param {?} config Config to be registered.
821
- * @return {?}
966
+ * @return {THIS}
822
967
  */
823
968
  MatIconRegistry.prototype._addSvgIconSetConfig = /**
824
969
  * Registers an icon set config in the specified namespace.
970
+ * @private
971
+ * @template THIS
972
+ * @this {THIS}
825
973
  * @param {?} namespace Namespace in which to register the icon config.
826
974
  * @param {?} config Config to be registered.
827
- * @return {?}
975
+ * @return {THIS}
828
976
  */
829
977
  function (namespace, config) {
830
978
  /** @type {?} */
831
- var configNamespace = this._iconSetConfigs.get(namespace);
979
+ var configNamespace = (/** @type {?} */ (this))._iconSetConfigs.get(namespace);
832
980
  if (configNamespace) {
833
981
  configNamespace.push(config);
834
982
  }
835
983
  else {
836
- this._iconSetConfigs.set(namespace, [config]);
984
+ (/** @type {?} */ (this))._iconSetConfigs.set(namespace, [config]);
837
985
  }
838
- return this;
986
+ return (/** @type {?} */ (this));
839
987
  };
840
988
  MatIconRegistry.decorators = [
841
989
  { type: core.Injectable, args: [{ providedIn: 'root' },] },
@@ -860,9 +1008,10 @@ var MatIconRegistry = /** @class */ (function () {
860
1008
  function ICON_REGISTRY_PROVIDER_FACTORY(parentRegistry, httpClient, sanitizer, document) {
861
1009
  return parentRegistry || new MatIconRegistry(httpClient, sanitizer, document);
862
1010
  }
863
- /** *
1011
+ /**
864
1012
  * \@docs-private
865
- @type {?} */
1013
+ * @type {?}
1014
+ */
866
1015
  var ICON_REGISTRY_PROVIDER = {
867
1016
  // If there is already an MatIconRegistry available, use that. Otherwise, provide a new one.
868
1017
  provide: MatIconRegistry,
@@ -870,7 +1019,7 @@ var ICON_REGISTRY_PROVIDER = {
870
1019
  [new core.Optional(), new core.SkipSelf(), MatIconRegistry],
871
1020
  [new core.Optional(), http.HttpClient],
872
1021
  platformBrowser.DomSanitizer,
873
- [new core.Optional(), /** @type {?} */ (common.DOCUMENT)],
1022
+ [new core.Optional(), (/** @type {?} */ (common.DOCUMENT))],
874
1023
  ],
875
1024
  useFactory: ICON_REGISTRY_PROVIDER_FACTORY,
876
1025
  };
@@ -880,7 +1029,7 @@ var ICON_REGISTRY_PROVIDER = {
880
1029
  * @return {?}
881
1030
  */
882
1031
  function cloneSvg(svg) {
883
- return /** @type {?} */ (svg.cloneNode(true));
1032
+ return (/** @type {?} */ (svg.cloneNode(true)));
884
1033
  }
885
1034
  /**
886
1035
  * Returns the cache key to use for an icon namespace and name.
@@ -894,12 +1043,15 @@ function iconKey(namespace, name) {
894
1043
 
895
1044
  /**
896
1045
  * @fileoverview added by tsickle
897
- * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
1046
+ * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
898
1047
  */
1048
+ // Boilerplate for applying mixins to MatIcon.
899
1049
  /**
900
1050
  * \@docs-private
901
1051
  */
902
- var /**
1052
+ var
1053
+ // Boilerplate for applying mixins to MatIcon.
1054
+ /**
903
1055
  * \@docs-private
904
1056
  */
905
1057
  MatIconBase = /** @class */ (function () {
@@ -910,11 +1062,12 @@ MatIconBase = /** @class */ (function () {
910
1062
  }());
911
1063
  /** @type {?} */
912
1064
  var _MatIconMixinBase = core$1.mixinColor(MatIconBase);
913
- /** *
1065
+ /**
914
1066
  * Injection token used to provide the current location to `MatIcon`.
915
1067
  * Used to handle server-side rendering and to stub out during unit tests.
916
1068
  * \@docs-private
917
- @type {?} */
1069
+ * @type {?}
1070
+ */
918
1071
  var MAT_ICON_LOCATION = new core.InjectionToken('mat-icon-location', {
919
1072
  providedIn: 'root',
920
1073
  factory: MAT_ICON_LOCATION_FACTORY
@@ -926,15 +1079,18 @@ var MAT_ICON_LOCATION = new core.InjectionToken('mat-icon-location', {
926
1079
  function MAT_ICON_LOCATION_FACTORY() {
927
1080
  /** @type {?} */
928
1081
  var _document = core.inject(common.DOCUMENT);
1082
+ /** @type {?} */
1083
+ var _location = _document ? _document.location : null;
929
1084
  return {
930
1085
  // Note that this needs to be a function, rather than a property, because Angular
931
1086
  // will only resolve it once, but we want the current path on each call.
932
- getPathname: function () { return (_document && _document.location && _document.location.pathname) || ''; }
1087
+ getPathname: function () { return _location ? (_location.pathname + _location.search) : ''; }
933
1088
  };
934
1089
  }
935
- /** *
1090
+ /**
936
1091
  * SVG attributes that accept a FuncIRI (e.g. `url(<something>)`).
937
- @type {?} */
1092
+ * @type {?}
1093
+ */
938
1094
  var funcIriAttributes = [
939
1095
  'clip-path',
940
1096
  'color-profile',
@@ -950,13 +1106,15 @@ var funcIriAttributes = [
950
1106
  'stroke'
951
1107
  ];
952
1108
  var ɵ0 = function (attr) { return "[" + attr + "]"; };
953
- /** *
1109
+ /**
954
1110
  * Selector that can be used to find all elements that are using a `FuncIRI`.
955
- @type {?} */
1111
+ * @type {?}
1112
+ */
956
1113
  var funcIriAttributeSelector = funcIriAttributes.map(ɵ0).join(', ');
957
- /** *
1114
+ /**
958
1115
  * Regex that can be used to extract the id out of a FuncIRI.
959
- @type {?} */
1116
+ * @type {?}
1117
+ */
960
1118
  var funcIriPattern = /^url\(['"]?#(.*?)['"]?\)$/;
961
1119
  /**
962
1120
  * Component to display an icon. It can be used in the following ways:
@@ -987,11 +1145,7 @@ var funcIriPattern = /^url\(['"]?#(.*?)['"]?\)$/;
987
1145
  */
988
1146
  var MatIcon = /** @class */ (function (_super) {
989
1147
  __extends(MatIcon, _super);
990
- function MatIcon(elementRef, _iconRegistry, ariaHidden, /**
991
- * @deprecated `location` parameter to be made required.
992
- * @breaking-change 8.0.0
993
- */
994
- _location) {
1148
+ function MatIcon(elementRef, _iconRegistry, ariaHidden, _location) {
995
1149
  var _this = _super.call(this, elementRef) || this;
996
1150
  _this._iconRegistry = _iconRegistry;
997
1151
  _this._location = _location;
@@ -1072,6 +1226,20 @@ var MatIcon = /** @class */ (function (_super) {
1072
1226
  * 'penguin' -> ['', 'penguin']
1073
1227
  * null -> ['', '']
1074
1228
  * 'a:b:c' -> (throws Error)`
1229
+ */
1230
+ /**
1231
+ * Splits an svgIcon binding value into its icon set and icon name components.
1232
+ * Returns a 2-element array of [(icon set), (icon name)].
1233
+ * The separator for the two fields is ':'. If there is no separator, an empty
1234
+ * string is returned for the icon set and the entire value is returned for
1235
+ * the icon name. If the argument is falsy, returns an array of two empty strings.
1236
+ * Throws an error if the name contains two or more ':' separators.
1237
+ * Examples:
1238
+ * `'social:cake' -> ['social', 'cake']
1239
+ * 'penguin' -> ['', 'penguin']
1240
+ * null -> ['', '']
1241
+ * 'a:b:c' -> (throws Error)`
1242
+ * @private
1075
1243
  * @param {?} iconName
1076
1244
  * @return {?}
1077
1245
  */
@@ -1087,6 +1255,7 @@ var MatIcon = /** @class */ (function (_super) {
1087
1255
  * 'penguin' -> ['', 'penguin']
1088
1256
  * null -> ['', '']
1089
1257
  * 'a:b:c' -> (throws Error)`
1258
+ * @private
1090
1259
  * @param {?} iconName
1091
1260
  * @return {?}
1092
1261
  */
@@ -1098,7 +1267,7 @@ var MatIcon = /** @class */ (function (_super) {
1098
1267
  var parts = iconName.split(':');
1099
1268
  switch (parts.length) {
1100
1269
  case 1: return ['', parts[0]]; // Use default namespace.
1101
- case 2: return /** @type {?} */ (parts);
1270
+ case 2: return (/** @type {?} */ (parts));
1102
1271
  default: throw Error("Invalid icon name: \"" + iconName + "\"");
1103
1272
  }
1104
1273
  };
@@ -1113,7 +1282,7 @@ var MatIcon = /** @class */ (function (_super) {
1113
1282
  function (changes) {
1114
1283
  var _this = this;
1115
1284
  // Only update the inline SVG icon if the inputs changed, to avoid unnecessary DOM operations.
1116
- if (changes["svgIcon"]) {
1285
+ if (changes.svgIcon) {
1117
1286
  if (this.svgIcon) {
1118
1287
  var _a = this._splitIconName(this.svgIcon), namespace = _a[0], iconName = _a[1];
1119
1288
  this._iconRegistry.getNamedSvgIcon(iconName, namespace).pipe(operators.take(1)).subscribe(function (svg) { return _this._setSvgElement(svg); }, function (err) { return console.log("Error retrieving icon: " + err.message); });
@@ -1175,26 +1344,33 @@ var MatIcon = /** @class */ (function (_super) {
1175
1344
  }
1176
1345
  };
1177
1346
  /**
1347
+ * @private
1178
1348
  * @return {?}
1179
1349
  */
1180
1350
  MatIcon.prototype._usingFontIcon = /**
1351
+ * @private
1181
1352
  * @return {?}
1182
1353
  */
1183
1354
  function () {
1184
1355
  return !this.svgIcon;
1185
1356
  };
1186
1357
  /**
1358
+ * @private
1187
1359
  * @param {?} svg
1188
1360
  * @return {?}
1189
1361
  */
1190
1362
  MatIcon.prototype._setSvgElement = /**
1363
+ * @private
1191
1364
  * @param {?} svg
1192
1365
  * @return {?}
1193
1366
  */
1194
1367
  function (svg) {
1195
1368
  this._clearSvgElement();
1369
+ // Workaround for IE11 and Edge ignoring `style` tags inside dynamically-created SVGs.
1370
+ // See: https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/10898469/
1371
+ // Do this before inserting the element into the DOM, in order to avoid a style recalculation.
1196
1372
  /** @type {?} */
1197
- var styleTags = /** @type {?} */ (svg.querySelectorAll('style'));
1373
+ var styleTags = (/** @type {?} */ (svg.querySelectorAll('style')));
1198
1374
  for (var i = 0; i < styleTags.length; i++) {
1199
1375
  styleTags[i].textContent += ' ';
1200
1376
  }
@@ -1210,9 +1386,11 @@ var MatIcon = /** @class */ (function (_super) {
1210
1386
  this._elementRef.nativeElement.appendChild(svg);
1211
1387
  };
1212
1388
  /**
1389
+ * @private
1213
1390
  * @return {?}
1214
1391
  */
1215
1392
  MatIcon.prototype._clearSvgElement = /**
1393
+ * @private
1216
1394
  * @return {?}
1217
1395
  */
1218
1396
  function () {
@@ -1236,9 +1414,11 @@ var MatIcon = /** @class */ (function (_super) {
1236
1414
  }
1237
1415
  };
1238
1416
  /**
1417
+ * @private
1239
1418
  * @return {?}
1240
1419
  */
1241
1420
  MatIcon.prototype._updateFontIconClasses = /**
1421
+ * @private
1242
1422
  * @return {?}
1243
1423
  */
1244
1424
  function () {
@@ -1274,6 +1454,12 @@ var MatIcon = /** @class */ (function (_super) {
1274
1454
  * Cleans up a value to be used as a fontIcon or fontSet.
1275
1455
  * Since the value ends up being assigned as a CSS class, we
1276
1456
  * have to trim the value and omit space-separated values.
1457
+ */
1458
+ /**
1459
+ * Cleans up a value to be used as a fontIcon or fontSet.
1460
+ * Since the value ends up being assigned as a CSS class, we
1461
+ * have to trim the value and omit space-separated values.
1462
+ * @private
1277
1463
  * @param {?} value
1278
1464
  * @return {?}
1279
1465
  */
@@ -1281,6 +1467,7 @@ var MatIcon = /** @class */ (function (_super) {
1281
1467
  * Cleans up a value to be used as a fontIcon or fontSet.
1282
1468
  * Since the value ends up being assigned as a CSS class, we
1283
1469
  * have to trim the value and omit space-separated values.
1470
+ * @private
1284
1471
  * @param {?} value
1285
1472
  * @return {?}
1286
1473
  */
@@ -1291,6 +1478,12 @@ var MatIcon = /** @class */ (function (_super) {
1291
1478
  * Prepends the current path to all elements that have an attribute pointing to a `FuncIRI`
1292
1479
  * reference. This is required because WebKit browsers require references to be prefixed with
1293
1480
  * the current path, if the page has a `base` tag.
1481
+ */
1482
+ /**
1483
+ * Prepends the current path to all elements that have an attribute pointing to a `FuncIRI`
1484
+ * reference. This is required because WebKit browsers require references to be prefixed with
1485
+ * the current path, if the page has a `base` tag.
1486
+ * @private
1294
1487
  * @param {?} path
1295
1488
  * @return {?}
1296
1489
  */
@@ -1298,6 +1491,7 @@ var MatIcon = /** @class */ (function (_super) {
1298
1491
  * Prepends the current path to all elements that have an attribute pointing to a `FuncIRI`
1299
1492
  * reference. This is required because WebKit browsers require references to be prefixed with
1300
1493
  * the current path, if the page has a `base` tag.
1494
+ * @private
1301
1495
  * @param {?} path
1302
1496
  * @return {?}
1303
1497
  */
@@ -1315,12 +1509,18 @@ var MatIcon = /** @class */ (function (_super) {
1315
1509
  /**
1316
1510
  * Caches the children of an SVG element that have `url()`
1317
1511
  * references that we need to prefix with the current path.
1512
+ */
1513
+ /**
1514
+ * Caches the children of an SVG element that have `url()`
1515
+ * references that we need to prefix with the current path.
1516
+ * @private
1318
1517
  * @param {?} element
1319
1518
  * @return {?}
1320
1519
  */
1321
1520
  MatIcon.prototype._cacheChildrenWithExternalReferences = /**
1322
1521
  * Caches the children of an SVG element that have `url()`
1323
1522
  * references that we need to prefix with the current path.
1523
+ * @private
1324
1524
  * @param {?} element
1325
1525
  * @return {?}
1326
1526
  */
@@ -1344,8 +1544,8 @@ var MatIcon = /** @class */ (function (_super) {
1344
1544
  if (!attributes) {
1345
1545
  attributes = [];
1346
1546
  elements.set(elementWithReference, attributes);
1347
- } /** @type {?} */
1348
- ((attributes)).push({ name: attr, value: match[1] });
1547
+ }
1548
+ (/** @type {?} */ (attributes)).push({ name: attr, value: match[1] });
1349
1549
  }
1350
1550
  });
1351
1551
  };
@@ -1363,6 +1563,7 @@ var MatIcon = /** @class */ (function (_super) {
1363
1563
  'role': 'img',
1364
1564
  'class': 'mat-icon',
1365
1565
  '[class.mat-icon-inline]': 'inline',
1566
+ '[class.mat-icon-no-color]': 'color !== "primary" && color !== "accent" && color !== "warn"',
1366
1567
  },
1367
1568
  encapsulation: core.ViewEncapsulation.None,
1368
1569
  changeDetection: core.ChangeDetectionStrategy.OnPush,
@@ -1386,7 +1587,7 @@ var MatIcon = /** @class */ (function (_super) {
1386
1587
 
1387
1588
  /**
1388
1589
  * @fileoverview added by tsickle
1389
- * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
1590
+ * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
1390
1591
  */
1391
1592
  var MatIconModule = /** @class */ (function () {
1392
1593
  function MatIconModule() {