@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
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
@@ -901,15 +1054,18 @@ var MAT_ICON_LOCATION = new InjectionToken('mat-icon-location', {
901
1054
  function MAT_ICON_LOCATION_FACTORY() {
902
1055
  /** @type {?} */
903
1056
  var _document = inject(DOCUMENT);
1057
+ /** @type {?} */
1058
+ var _location = _document ? _document.location : null;
904
1059
  return {
905
1060
  // Note that this needs to be a function, rather than a property, because Angular
906
1061
  // will only resolve it once, but we want the current path on each call.
907
- getPathname: function () { return (_document && _document.location && _document.location.pathname) || ''; }
1062
+ getPathname: function () { return _location ? (_location.pathname + _location.search) : ''; }
908
1063
  };
909
1064
  }
910
- /** *
1065
+ /**
911
1066
  * SVG attributes that accept a FuncIRI (e.g. `url(<something>)`).
912
- @type {?} */
1067
+ * @type {?}
1068
+ */
913
1069
  var funcIriAttributes = [
914
1070
  'clip-path',
915
1071
  'color-profile',
@@ -925,13 +1081,15 @@ var funcIriAttributes = [
925
1081
  'stroke'
926
1082
  ];
927
1083
  var ɵ0 = function (attr) { return "[" + attr + "]"; };
928
- /** *
1084
+ /**
929
1085
  * Selector that can be used to find all elements that are using a `FuncIRI`.
930
- @type {?} */
1086
+ * @type {?}
1087
+ */
931
1088
  var funcIriAttributeSelector = funcIriAttributes.map(ɵ0).join(', ');
932
- /** *
1089
+ /**
933
1090
  * Regex that can be used to extract the id out of a FuncIRI.
934
- @type {?} */
1091
+ * @type {?}
1092
+ */
935
1093
  var funcIriPattern = /^url\(['"]?#(.*?)['"]?\)$/;
936
1094
  /**
937
1095
  * Component to display an icon. It can be used in the following ways:
@@ -962,11 +1120,7 @@ var funcIriPattern = /^url\(['"]?#(.*?)['"]?\)$/;
962
1120
  */
963
1121
  var MatIcon = /** @class */ (function (_super) {
964
1122
  __extends(MatIcon, _super);
965
- function MatIcon(elementRef, _iconRegistry, ariaHidden, /**
966
- * @deprecated `location` parameter to be made required.
967
- * @breaking-change 8.0.0
968
- */
969
- _location) {
1123
+ function MatIcon(elementRef, _iconRegistry, ariaHidden, _location) {
970
1124
  var _this = _super.call(this, elementRef) || this;
971
1125
  _this._iconRegistry = _iconRegistry;
972
1126
  _this._location = _location;
@@ -1047,6 +1201,20 @@ var MatIcon = /** @class */ (function (_super) {
1047
1201
  * 'penguin' -> ['', 'penguin']
1048
1202
  * null -> ['', '']
1049
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
1050
1218
  * @param {?} iconName
1051
1219
  * @return {?}
1052
1220
  */
@@ -1062,6 +1230,7 @@ var MatIcon = /** @class */ (function (_super) {
1062
1230
  * 'penguin' -> ['', 'penguin']
1063
1231
  * null -> ['', '']
1064
1232
  * 'a:b:c' -> (throws Error)`
1233
+ * @private
1065
1234
  * @param {?} iconName
1066
1235
  * @return {?}
1067
1236
  */
@@ -1073,7 +1242,7 @@ var MatIcon = /** @class */ (function (_super) {
1073
1242
  var parts = iconName.split(':');
1074
1243
  switch (parts.length) {
1075
1244
  case 1: return ['', parts[0]]; // Use default namespace.
1076
- case 2: return /** @type {?} */ (parts);
1245
+ case 2: return (/** @type {?} */ (parts));
1077
1246
  default: throw Error("Invalid icon name: \"" + iconName + "\"");
1078
1247
  }
1079
1248
  };
@@ -1088,7 +1257,7 @@ var MatIcon = /** @class */ (function (_super) {
1088
1257
  function (changes) {
1089
1258
  var _this = this;
1090
1259
  // Only update the inline SVG icon if the inputs changed, to avoid unnecessary DOM operations.
1091
- if (changes["svgIcon"]) {
1260
+ if (changes.svgIcon) {
1092
1261
  if (this.svgIcon) {
1093
1262
  var _a = this._splitIconName(this.svgIcon), namespace = _a[0], iconName = _a[1];
1094
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); });
@@ -1150,26 +1319,33 @@ var MatIcon = /** @class */ (function (_super) {
1150
1319
  }
1151
1320
  };
1152
1321
  /**
1322
+ * @private
1153
1323
  * @return {?}
1154
1324
  */
1155
1325
  MatIcon.prototype._usingFontIcon = /**
1326
+ * @private
1156
1327
  * @return {?}
1157
1328
  */
1158
1329
  function () {
1159
1330
  return !this.svgIcon;
1160
1331
  };
1161
1332
  /**
1333
+ * @private
1162
1334
  * @param {?} svg
1163
1335
  * @return {?}
1164
1336
  */
1165
1337
  MatIcon.prototype._setSvgElement = /**
1338
+ * @private
1166
1339
  * @param {?} svg
1167
1340
  * @return {?}
1168
1341
  */
1169
1342
  function (svg) {
1170
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.
1171
1347
  /** @type {?} */
1172
- var styleTags = /** @type {?} */ (svg.querySelectorAll('style'));
1348
+ var styleTags = (/** @type {?} */ (svg.querySelectorAll('style')));
1173
1349
  for (var i = 0; i < styleTags.length; i++) {
1174
1350
  styleTags[i].textContent += ' ';
1175
1351
  }
@@ -1185,9 +1361,11 @@ var MatIcon = /** @class */ (function (_super) {
1185
1361
  this._elementRef.nativeElement.appendChild(svg);
1186
1362
  };
1187
1363
  /**
1364
+ * @private
1188
1365
  * @return {?}
1189
1366
  */
1190
1367
  MatIcon.prototype._clearSvgElement = /**
1368
+ * @private
1191
1369
  * @return {?}
1192
1370
  */
1193
1371
  function () {
@@ -1211,9 +1389,11 @@ var MatIcon = /** @class */ (function (_super) {
1211
1389
  }
1212
1390
  };
1213
1391
  /**
1392
+ * @private
1214
1393
  * @return {?}
1215
1394
  */
1216
1395
  MatIcon.prototype._updateFontIconClasses = /**
1396
+ * @private
1217
1397
  * @return {?}
1218
1398
  */
1219
1399
  function () {
@@ -1249,6 +1429,12 @@ var MatIcon = /** @class */ (function (_super) {
1249
1429
  * Cleans up a value to be used as a fontIcon or fontSet.
1250
1430
  * Since the value ends up being assigned as a CSS class, we
1251
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
1252
1438
  * @param {?} value
1253
1439
  * @return {?}
1254
1440
  */
@@ -1256,6 +1442,7 @@ var MatIcon = /** @class */ (function (_super) {
1256
1442
  * Cleans up a value to be used as a fontIcon or fontSet.
1257
1443
  * Since the value ends up being assigned as a CSS class, we
1258
1444
  * have to trim the value and omit space-separated values.
1445
+ * @private
1259
1446
  * @param {?} value
1260
1447
  * @return {?}
1261
1448
  */
@@ -1266,6 +1453,12 @@ var MatIcon = /** @class */ (function (_super) {
1266
1453
  * Prepends the current path to all elements that have an attribute pointing to a `FuncIRI`
1267
1454
  * reference. This is required because WebKit browsers require references to be prefixed with
1268
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
1269
1462
  * @param {?} path
1270
1463
  * @return {?}
1271
1464
  */
@@ -1273,6 +1466,7 @@ var MatIcon = /** @class */ (function (_super) {
1273
1466
  * Prepends the current path to all elements that have an attribute pointing to a `FuncIRI`
1274
1467
  * reference. This is required because WebKit browsers require references to be prefixed with
1275
1468
  * the current path, if the page has a `base` tag.
1469
+ * @private
1276
1470
  * @param {?} path
1277
1471
  * @return {?}
1278
1472
  */
@@ -1290,12 +1484,18 @@ var MatIcon = /** @class */ (function (_super) {
1290
1484
  /**
1291
1485
  * Caches the children of an SVG element that have `url()`
1292
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
1293
1492
  * @param {?} element
1294
1493
  * @return {?}
1295
1494
  */
1296
1495
  MatIcon.prototype._cacheChildrenWithExternalReferences = /**
1297
1496
  * Caches the children of an SVG element that have `url()`
1298
1497
  * references that we need to prefix with the current path.
1498
+ * @private
1299
1499
  * @param {?} element
1300
1500
  * @return {?}
1301
1501
  */
@@ -1319,8 +1519,8 @@ var MatIcon = /** @class */ (function (_super) {
1319
1519
  if (!attributes) {
1320
1520
  attributes = [];
1321
1521
  elements.set(elementWithReference, attributes);
1322
- } /** @type {?} */
1323
- ((attributes)).push({ name: attr, value: match[1] });
1522
+ }
1523
+ (/** @type {?} */ (attributes)).push({ name: attr, value: match[1] });
1324
1524
  }
1325
1525
  });
1326
1526
  };
@@ -1338,6 +1538,7 @@ var MatIcon = /** @class */ (function (_super) {
1338
1538
  'role': 'img',
1339
1539
  'class': 'mat-icon',
1340
1540
  '[class.mat-icon-inline]': 'inline',
1541
+ '[class.mat-icon-no-color]': 'color !== "primary" && color !== "accent" && color !== "warn"',
1341
1542
  },
1342
1543
  encapsulation: ViewEncapsulation.None,
1343
1544
  changeDetection: ChangeDetectionStrategy.OnPush,
@@ -1361,7 +1562,7 @@ var MatIcon = /** @class */ (function (_super) {
1361
1562
 
1362
1563
  /**
1363
1564
  * @fileoverview added by tsickle
1364
- * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
1565
+ * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
1365
1566
  */
1366
1567
  var MatIconModule = /** @class */ (function () {
1367
1568
  function MatIconModule() {
@@ -1378,12 +1579,12 @@ var MatIconModule = /** @class */ (function () {
1378
1579
 
1379
1580
  /**
1380
1581
  * @fileoverview added by tsickle
1381
- * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
1582
+ * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
1382
1583
  */
1383
1584
 
1384
1585
  /**
1385
1586
  * @fileoverview added by tsickle
1386
- * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
1587
+ * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
1387
1588
  */
1388
1589
 
1389
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 };