@angular/material 7.1.0 → 7.2.2

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 (495) hide show
  1. package/LICENSE +1 -1
  2. package/_theming.scss +50 -19
  3. package/autocomplete/typings/index.d.ts +0 -1
  4. package/autocomplete/typings/index.metadata.json +1 -1
  5. package/autocomplete/typings/public-api.d.ts +1 -0
  6. package/badge/typings/index.metadata.json +1 -1
  7. package/bottom-sheet/typings/bottom-sheet-ref.d.ts +2 -0
  8. package/bottom-sheet/typings/index.metadata.json +1 -1
  9. package/bundles/material-autocomplete.umd.js +139 -39
  10. package/bundles/material-autocomplete.umd.js.map +1 -1
  11. package/bundles/material-autocomplete.umd.min.js +1 -1
  12. package/bundles/material-autocomplete.umd.min.js.map +1 -1
  13. package/bundles/material-badge.umd.js +38 -5
  14. package/bundles/material-badge.umd.js.map +1 -1
  15. package/bundles/material-badge.umd.min.js +1 -1
  16. package/bundles/material-badge.umd.min.js.map +1 -1
  17. package/bundles/material-bottom-sheet.umd.js +67 -22
  18. package/bundles/material-bottom-sheet.umd.js.map +1 -1
  19. package/bundles/material-bottom-sheet.umd.min.js +1 -1
  20. package/bundles/material-bottom-sheet.umd.min.js.map +1 -1
  21. package/bundles/material-button-toggle.umd.js +45 -14
  22. package/bundles/material-button-toggle.umd.js.map +1 -1
  23. package/bundles/material-button-toggle.umd.min.js +1 -1
  24. package/bundles/material-button-toggle.umd.min.js.map +1 -1
  25. package/bundles/material-button.umd.js +21 -14
  26. package/bundles/material-button.umd.js.map +1 -1
  27. package/bundles/material-button.umd.min.js +1 -1
  28. package/bundles/material-button.umd.min.js.map +1 -1
  29. package/bundles/material-card.umd.js +3 -3
  30. package/bundles/material-card.umd.js.map +1 -1
  31. package/bundles/material-card.umd.min.js +1 -1
  32. package/bundles/material-card.umd.min.js.map +1 -1
  33. package/bundles/material-checkbox.umd.js +56 -15
  34. package/bundles/material-checkbox.umd.js.map +1 -1
  35. package/bundles/material-checkbox.umd.min.js +1 -1
  36. package/bundles/material-checkbox.umd.min.js.map +1 -1
  37. package/bundles/material-chips.umd.js +126 -38
  38. package/bundles/material-chips.umd.js.map +1 -1
  39. package/bundles/material-chips.umd.min.js +1 -1
  40. package/bundles/material-chips.umd.min.js.map +1 -1
  41. package/bundles/material-core.umd.js +190 -127
  42. package/bundles/material-core.umd.js.map +1 -1
  43. package/bundles/material-core.umd.min.js +1 -2
  44. package/bundles/material-core.umd.min.js.map +1 -1
  45. package/bundles/material-datepicker.umd.js +205 -42
  46. package/bundles/material-datepicker.umd.js.map +1 -1
  47. package/bundles/material-datepicker.umd.min.js +2 -2
  48. package/bundles/material-datepicker.umd.min.js.map +1 -1
  49. package/bundles/material-dialog.umd.js +138 -40
  50. package/bundles/material-dialog.umd.js.map +1 -1
  51. package/bundles/material-dialog.umd.min.js +1 -1
  52. package/bundles/material-dialog.umd.min.js.map +1 -1
  53. package/bundles/material-divider.umd.js +2 -2
  54. package/bundles/material-divider.umd.js.map +1 -1
  55. package/bundles/material-divider.umd.min.js.map +1 -1
  56. package/bundles/material-expansion.umd.js +52 -26
  57. package/bundles/material-expansion.umd.js.map +1 -1
  58. package/bundles/material-expansion.umd.min.js +1 -1
  59. package/bundles/material-expansion.umd.min.js.map +1 -1
  60. package/bundles/material-form-field.umd.js +123 -34
  61. package/bundles/material-form-field.umd.js.map +1 -1
  62. package/bundles/material-form-field.umd.min.js +1 -1
  63. package/bundles/material-form-field.umd.min.js.map +1 -1
  64. package/bundles/material-grid-list.umd.js +67 -16
  65. package/bundles/material-grid-list.umd.js.map +1 -1
  66. package/bundles/material-grid-list.umd.min.js +1 -1
  67. package/bundles/material-grid-list.umd.min.js.map +1 -1
  68. package/bundles/material-icon.umd.js +288 -78
  69. package/bundles/material-icon.umd.js.map +1 -1
  70. package/bundles/material-icon.umd.min.js +1 -1
  71. package/bundles/material-icon.umd.min.js.map +1 -1
  72. package/bundles/material-input.umd.js +50 -22
  73. package/bundles/material-input.umd.js.map +1 -1
  74. package/bundles/material-input.umd.min.js +1 -1
  75. package/bundles/material-input.umd.min.js.map +1 -1
  76. package/bundles/material-list.umd.js +159 -26
  77. package/bundles/material-list.umd.js.map +1 -1
  78. package/bundles/material-list.umd.min.js +2 -2
  79. package/bundles/material-list.umd.min.js.map +1 -1
  80. package/bundles/material-menu.umd.js +176 -70
  81. package/bundles/material-menu.umd.js.map +1 -1
  82. package/bundles/material-menu.umd.min.js +1 -1
  83. package/bundles/material-menu.umd.min.js.map +1 -1
  84. package/bundles/material-paginator.umd.js +25 -8
  85. package/bundles/material-paginator.umd.js.map +1 -1
  86. package/bundles/material-paginator.umd.min.js.map +1 -1
  87. package/bundles/material-progress-bar.umd.js +32 -13
  88. package/bundles/material-progress-bar.umd.js.map +1 -1
  89. package/bundles/material-progress-bar.umd.min.js +1 -1
  90. package/bundles/material-progress-bar.umd.min.js.map +1 -1
  91. package/bundles/material-progress-spinner.umd.js +30 -14
  92. package/bundles/material-progress-spinner.umd.js.map +1 -1
  93. package/bundles/material-progress-spinner.umd.min.js +1 -1
  94. package/bundles/material-progress-spinner.umd.min.js.map +1 -1
  95. package/bundles/material-radio.umd.js +38 -40
  96. package/bundles/material-radio.umd.js.map +1 -1
  97. package/bundles/material-radio.umd.min.js +1 -1
  98. package/bundles/material-radio.umd.min.js.map +1 -1
  99. package/bundles/material-select.umd.js +186 -49
  100. package/bundles/material-select.umd.js.map +1 -1
  101. package/bundles/material-select.umd.min.js +1 -1
  102. package/bundles/material-select.umd.min.js.map +1 -1
  103. package/bundles/material-sidenav.umd.js +104 -25
  104. package/bundles/material-sidenav.umd.js.map +1 -1
  105. package/bundles/material-sidenav.umd.min.js +1 -1
  106. package/bundles/material-sidenav.umd.min.js.map +1 -1
  107. package/bundles/material-slide-toggle.umd.js +31 -15
  108. package/bundles/material-slide-toggle.umd.js.map +1 -1
  109. package/bundles/material-slide-toggle.umd.min.js +1 -1
  110. package/bundles/material-slide-toggle.umd.min.js.map +1 -1
  111. package/bundles/material-slider.umd.js +88 -20
  112. package/bundles/material-slider.umd.js.map +1 -1
  113. package/bundles/material-slider.umd.min.js +1 -1
  114. package/bundles/material-slider.umd.min.js.map +1 -1
  115. package/bundles/material-snack-bar.umd.js +69 -20
  116. package/bundles/material-snack-bar.umd.js.map +1 -1
  117. package/bundles/material-snack-bar.umd.min.js +1 -1
  118. package/bundles/material-snack-bar.umd.min.js.map +1 -1
  119. package/bundles/material-sort.umd.js +46 -24
  120. package/bundles/material-sort.umd.js.map +1 -1
  121. package/bundles/material-sort.umd.min.js +1 -1
  122. package/bundles/material-sort.umd.min.js.map +1 -1
  123. package/bundles/material-stepper.umd.js +29 -20
  124. package/bundles/material-stepper.umd.js.map +1 -1
  125. package/bundles/material-stepper.umd.min.js +1 -1
  126. package/bundles/material-stepper.umd.min.js.map +1 -1
  127. package/bundles/material-table.umd.js +48 -15
  128. package/bundles/material-table.umd.js.map +1 -1
  129. package/bundles/material-table.umd.min.js +1 -1
  130. package/bundles/material-table.umd.min.js.map +1 -1
  131. package/bundles/material-tabs.umd.js +162 -61
  132. package/bundles/material-tabs.umd.js.map +1 -1
  133. package/bundles/material-tabs.umd.min.js +2 -2
  134. package/bundles/material-tabs.umd.min.js.map +1 -1
  135. package/bundles/material-toolbar.umd.js +14 -4
  136. package/bundles/material-toolbar.umd.js.map +1 -1
  137. package/bundles/material-toolbar.umd.min.js +1 -1
  138. package/bundles/material-toolbar.umd.min.js.map +1 -1
  139. package/bundles/material-tooltip.umd.js +62 -26
  140. package/bundles/material-tooltip.umd.js.map +1 -1
  141. package/bundles/material-tooltip.umd.min.js +1 -1
  142. package/bundles/material-tooltip.umd.min.js.map +1 -1
  143. package/bundles/material-tree.umd.js +25 -16
  144. package/bundles/material-tree.umd.js.map +1 -1
  145. package/bundles/material-tree.umd.min.js +1 -1
  146. package/bundles/material-tree.umd.min.js.map +1 -1
  147. package/bundles/material.umd.js +2927 -995
  148. package/bundles/material.umd.js.map +1 -1
  149. package/bundles/material.umd.min.js +18 -18
  150. package/bundles/material.umd.min.js.map +1 -1
  151. package/button/typings/button.d.ts +0 -5
  152. package/button/typings/index.metadata.json +1 -1
  153. package/button-toggle/typings/index.metadata.json +1 -1
  154. package/card/typings/index.metadata.json +1 -1
  155. package/checkbox/typings/index.metadata.json +1 -1
  156. package/chips/typings/chip-list.d.ts +2 -2
  157. package/chips/typings/chip.d.ts +2 -2
  158. package/chips/typings/index.metadata.json +1 -1
  159. package/core/typings/index.metadata.json +1 -1
  160. package/core/typings/{testing/month-constants.d.ts → month-constants.d.ts} +2 -0
  161. package/core/typings/public-api.d.ts +1 -1
  162. package/core/typings/ripple/ripple.d.ts +1 -1
  163. package/datepicker/typings/calendar.d.ts +2 -2
  164. package/datepicker/typings/index.metadata.json +1 -1
  165. package/dialog/typings/index.metadata.json +1 -1
  166. package/esm2015/autocomplete.js +73 -36
  167. package/esm2015/autocomplete.js.map +1 -1
  168. package/esm2015/badge.js +29 -6
  169. package/esm2015/badge.js.map +1 -1
  170. package/esm2015/bottom-sheet.js +44 -23
  171. package/esm2015/bottom-sheet.js.map +1 -1
  172. package/esm2015/button-toggle.js +27 -11
  173. package/esm2015/button-toggle.js.map +1 -1
  174. package/esm2015/button.js +20 -15
  175. package/esm2015/button.js.map +1 -1
  176. package/esm2015/card.js +5 -5
  177. package/esm2015/card.js.map +1 -1
  178. package/esm2015/checkbox.js +30 -12
  179. package/esm2015/checkbox.js.map +1 -1
  180. package/esm2015/chips.js +64 -30
  181. package/esm2015/chips.js.map +1 -1
  182. package/esm2015/core.js +147 -128
  183. package/esm2015/core.js.map +1 -1
  184. package/esm2015/datepicker.js +103 -37
  185. package/esm2015/datepicker.js.map +1 -1
  186. package/esm2015/dialog.js +77 -40
  187. package/esm2015/dialog.js.map +1 -1
  188. package/esm2015/divider.js +4 -4
  189. package/esm2015/divider.js.map +1 -1
  190. package/esm2015/expansion.js +56 -29
  191. package/esm2015/expansion.js.map +1 -1
  192. package/esm2015/form-field.js +95 -35
  193. package/esm2015/form-field.js.map +1 -1
  194. package/esm2015/grid-list.js +45 -17
  195. package/esm2015/grid-list.js.map +1 -1
  196. package/esm2015/icon.js +144 -67
  197. package/esm2015/icon.js.map +1 -1
  198. package/esm2015/input.js +44 -23
  199. package/esm2015/input.js.map +1 -1
  200. package/esm2015/list.js +118 -24
  201. package/esm2015/list.js.map +1 -1
  202. package/esm2015/material.js +13 -12
  203. package/esm2015/material.js.map +1 -1
  204. package/esm2015/menu.js +114 -67
  205. package/esm2015/menu.js.map +1 -1
  206. package/esm2015/paginator.js +17 -9
  207. package/esm2015/paginator.js.map +1 -1
  208. package/esm2015/progress-bar.js +26 -13
  209. package/esm2015/progress-bar.js.map +1 -1
  210. package/esm2015/progress-spinner.js +24 -14
  211. package/esm2015/progress-spinner.js.map +1 -1
  212. package/esm2015/radio.js +22 -21
  213. package/esm2015/radio.js.map +1 -1
  214. package/esm2015/select.js +112 -50
  215. package/esm2015/select.js.map +1 -1
  216. package/esm2015/sidenav.js +75 -28
  217. package/esm2015/sidenav.js.map +1 -1
  218. package/esm2015/slide-toggle.js +23 -15
  219. package/esm2015/slide-toggle.js.map +1 -1
  220. package/esm2015/slider.js +51 -23
  221. package/esm2015/slider.js.map +1 -1
  222. package/esm2015/snack-bar.js +38 -21
  223. package/esm2015/snack-bar.js.map +1 -1
  224. package/esm2015/sort.js +47 -24
  225. package/esm2015/sort.js.map +1 -1
  226. package/esm2015/stepper.js +32 -23
  227. package/esm2015/stepper.js.map +1 -1
  228. package/esm2015/table.js +51 -18
  229. package/esm2015/table.js.map +1 -1
  230. package/esm2015/tabs.js +112 -49
  231. package/esm2015/tabs.js.map +1 -1
  232. package/esm2015/toolbar.js +9 -5
  233. package/esm2015/toolbar.js.map +1 -1
  234. package/esm2015/tooltip.js +49 -28
  235. package/esm2015/tooltip.js.map +1 -1
  236. package/esm2015/tree.js +22 -17
  237. package/esm2015/tree.js.map +1 -1
  238. package/esm5/autocomplete.es5.js +141 -41
  239. package/esm5/autocomplete.es5.js.map +1 -1
  240. package/esm5/badge.es5.js +40 -7
  241. package/esm5/badge.es5.js.map +1 -1
  242. package/esm5/bottom-sheet.es5.js +68 -23
  243. package/esm5/bottom-sheet.es5.js.map +1 -1
  244. package/esm5/button-toggle.es5.js +46 -15
  245. package/esm5/button-toggle.es5.js.map +1 -1
  246. package/esm5/button.es5.js +23 -16
  247. package/esm5/button.es5.js.map +1 -1
  248. package/esm5/card.es5.js +5 -5
  249. package/esm5/card.es5.js.map +1 -1
  250. package/esm5/checkbox.es5.js +58 -17
  251. package/esm5/checkbox.es5.js.map +1 -1
  252. package/esm5/chips.es5.js +129 -41
  253. package/esm5/chips.es5.js.map +1 -1
  254. package/esm5/core.es5.js +192 -129
  255. package/esm5/core.es5.js.map +1 -1
  256. package/esm5/datepicker.es5.js +207 -44
  257. package/esm5/datepicker.es5.js.map +1 -1
  258. package/esm5/dialog.es5.js +140 -42
  259. package/esm5/dialog.es5.js.map +1 -1
  260. package/esm5/divider.es5.js +4 -4
  261. package/esm5/divider.es5.js.map +1 -1
  262. package/esm5/expansion.es5.js +54 -29
  263. package/esm5/expansion.es5.js.map +1 -1
  264. package/esm5/form-field.es5.js +126 -37
  265. package/esm5/form-field.es5.js.map +1 -1
  266. package/esm5/grid-list.es5.js +68 -17
  267. package/esm5/grid-list.es5.js.map +1 -1
  268. package/esm5/icon.es5.js +290 -80
  269. package/esm5/icon.es5.js.map +1 -1
  270. package/esm5/input.es5.js +52 -24
  271. package/esm5/input.es5.js.map +1 -1
  272. package/esm5/list.es5.js +161 -27
  273. package/esm5/list.es5.js.map +1 -1
  274. package/esm5/material.es5.js +13 -12
  275. package/esm5/material.es5.js.map +1 -1
  276. package/esm5/menu.es5.js +175 -69
  277. package/esm5/menu.es5.js.map +1 -1
  278. package/esm5/paginator.es5.js +27 -10
  279. package/esm5/paginator.es5.js.map +1 -1
  280. package/esm5/progress-bar.es5.js +33 -14
  281. package/esm5/progress-bar.es5.js.map +1 -1
  282. package/esm5/progress-spinner.es5.js +31 -15
  283. package/esm5/progress-spinner.es5.js.map +1 -1
  284. package/esm5/radio.es5.js +42 -42
  285. package/esm5/radio.es5.js.map +1 -1
  286. package/esm5/select.es5.js +189 -52
  287. package/esm5/select.es5.js.map +1 -1
  288. package/esm5/sidenav.es5.js +107 -28
  289. package/esm5/sidenav.es5.js.map +1 -1
  290. package/esm5/slide-toggle.es5.js +32 -16
  291. package/esm5/slide-toggle.es5.js.map +1 -1
  292. package/esm5/slider.es5.js +91 -23
  293. package/esm5/slider.es5.js.map +1 -1
  294. package/esm5/snack-bar.es5.js +70 -21
  295. package/esm5/snack-bar.es5.js.map +1 -1
  296. package/esm5/sort.es5.js +53 -26
  297. package/esm5/sort.es5.js.map +1 -1
  298. package/esm5/stepper.es5.js +32 -23
  299. package/esm5/stepper.es5.js.map +1 -1
  300. package/esm5/table.es5.js +51 -18
  301. package/esm5/table.es5.js.map +1 -1
  302. package/esm5/tabs.es5.js +156 -55
  303. package/esm5/tabs.es5.js.map +1 -1
  304. package/esm5/toolbar.es5.js +16 -6
  305. package/esm5/toolbar.es5.js.map +1 -1
  306. package/esm5/tooltip.es5.js +64 -28
  307. package/esm5/tooltip.es5.js.map +1 -1
  308. package/esm5/tree.es5.js +27 -18
  309. package/esm5/tree.es5.js.map +1 -1
  310. package/expansion/typings/expansion-panel-header.d.ts +2 -2
  311. package/expansion/typings/expansion-panel.d.ts +19 -2
  312. package/expansion/typings/index.metadata.json +1 -1
  313. package/form-field/typings/form-field.d.ts +15 -4
  314. package/form-field/typings/index.metadata.json +1 -1
  315. package/form-field/typings/prefix.d.ts +1 -1
  316. package/grid-list/typings/index.d.ts +1 -1
  317. package/grid-list/typings/index.metadata.json +1 -1
  318. package/icon/typings/icon-registry.d.ts +3 -2
  319. package/icon/typings/index.metadata.json +1 -1
  320. package/list/typings/index.metadata.json +1 -1
  321. package/list/typings/list.d.ts +16 -5
  322. package/list/typings/selection-list.d.ts +1 -0
  323. package/material.d.ts +1 -1
  324. package/material.metadata.json +3 -3
  325. package/menu/typings/index.d.ts +4 -4
  326. package/menu/typings/index.metadata.json +1 -1
  327. package/menu/typings/menu-directive.d.ts +1 -0
  328. package/menu/typings/menu-item.d.ts +2 -0
  329. package/menu/typings/menu-trigger.d.ts +1 -1
  330. package/package.json +5 -5
  331. package/prebuilt-themes/deeppurple-amber.css +1 -1
  332. package/prebuilt-themes/indigo-pink.css +1 -1
  333. package/prebuilt-themes/pink-bluegrey.css +1 -1
  334. package/prebuilt-themes/purple-green.css +1 -1
  335. package/progress-bar/typings/index.metadata.json +1 -1
  336. package/radio/typings/index.metadata.json +1 -1
  337. package/radio/typings/radio.d.ts +2 -6
  338. package/schematics/ng-add/theming/{custom-theme.d.ts → create-custom-theme.d.ts} +0 -0
  339. package/schematics/ng-add/theming/{custom-theme.js → create-custom-theme.js} +1 -1
  340. package/schematics/ng-add/theming/create-custom-theme.js.map +1 -0
  341. package/schematics/ng-add/theming/theming.js +35 -19
  342. package/schematics/ng-add/theming/theming.js.map +1 -1
  343. package/schematics/ng-generate/address-form/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.ts +2 -2
  344. package/schematics/ng-generate/dashboard/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.ts +2 -2
  345. package/schematics/ng-generate/nav/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.ts +2 -2
  346. package/schematics/ng-generate/table/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.ts +2 -2
  347. package/schematics/ng-generate/tree/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.ts +2 -2
  348. package/select/typings/index.metadata.json +1 -1
  349. package/select/typings/select.d.ts +12 -2
  350. package/sidenav/typings/drawer.d.ts +9 -2
  351. package/sidenav/typings/index.metadata.json +1 -1
  352. package/slide-toggle/typings/index.metadata.json +1 -1
  353. package/slider/typings/index.metadata.json +1 -1
  354. package/snack-bar/typings/index.metadata.json +1 -1
  355. package/sort/typings/index.metadata.json +1 -1
  356. package/stepper/typings/index.metadata.json +1 -1
  357. package/table/typings/index.metadata.json +1 -1
  358. package/table/typings/table-data-source.d.ts +2 -0
  359. package/tabs/typings/index.d.ts +5 -5
  360. package/tabs/typings/index.metadata.json +1 -1
  361. package/tabs/typings/tab-group.d.ts +2 -1
  362. package/tabs/typings/tab-header.d.ts +8 -4
  363. package/toolbar/typings/index.metadata.json +1 -1
  364. package/tooltip/typings/index.metadata.json +1 -1
  365. package/tooltip/typings/tooltip.d.ts +2 -1
  366. package/tree/typings/data-source/flat-data-source.d.ts +2 -2
  367. package/tree/typings/index.metadata.json +1 -1
  368. package/typings/autocomplete/index.d.ts +0 -1
  369. package/typings/autocomplete/index.metadata.json +1 -1
  370. package/typings/autocomplete/public-api.d.ts +1 -0
  371. package/typings/badge/index.metadata.json +1 -1
  372. package/typings/bottom-sheet/bottom-sheet-ref.d.ts +2 -0
  373. package/typings/bottom-sheet/index.metadata.json +1 -1
  374. package/typings/button/button.d.ts +0 -5
  375. package/typings/button/index.metadata.json +1 -1
  376. package/typings/button-toggle/index.metadata.json +1 -1
  377. package/typings/card/index.metadata.json +1 -1
  378. package/typings/checkbox/index.metadata.json +1 -1
  379. package/typings/chips/chip-list.d.ts +2 -2
  380. package/typings/chips/chip.d.ts +2 -2
  381. package/typings/chips/index.metadata.json +1 -1
  382. package/typings/core/index.metadata.json +1 -1
  383. package/typings/core/{testing/month-constants.d.ts → month-constants.d.ts} +2 -0
  384. package/typings/core/public-api.d.ts +1 -1
  385. package/typings/core/ripple/ripple.d.ts +1 -1
  386. package/typings/datepicker/calendar.d.ts +2 -2
  387. package/typings/datepicker/index.metadata.json +1 -1
  388. package/typings/dialog/index.metadata.json +1 -1
  389. package/typings/esm5/autocomplete/index.d.ts +0 -1
  390. package/typings/esm5/autocomplete/index.metadata.json +1 -1
  391. package/typings/esm5/autocomplete/public-api.d.ts +1 -0
  392. package/typings/esm5/badge/index.metadata.json +1 -1
  393. package/typings/esm5/bottom-sheet/bottom-sheet-ref.d.ts +2 -0
  394. package/typings/esm5/bottom-sheet/index.metadata.json +1 -1
  395. package/typings/esm5/button/button.d.ts +0 -5
  396. package/typings/esm5/button/index.metadata.json +1 -1
  397. package/typings/esm5/button-toggle/index.metadata.json +1 -1
  398. package/typings/esm5/card/index.metadata.json +1 -1
  399. package/typings/esm5/checkbox/index.metadata.json +1 -1
  400. package/typings/esm5/chips/chip-list.d.ts +2 -2
  401. package/typings/esm5/chips/chip.d.ts +2 -2
  402. package/typings/esm5/chips/index.metadata.json +1 -1
  403. package/typings/esm5/core/index.metadata.json +1 -1
  404. package/typings/esm5/core/{testing/month-constants.d.ts → month-constants.d.ts} +2 -0
  405. package/typings/esm5/core/public-api.d.ts +1 -1
  406. package/typings/esm5/core/ripple/ripple.d.ts +1 -1
  407. package/typings/esm5/datepicker/calendar.d.ts +2 -2
  408. package/typings/esm5/datepicker/index.metadata.json +1 -1
  409. package/typings/esm5/dialog/index.metadata.json +1 -1
  410. package/typings/esm5/expansion/expansion-panel-header.d.ts +2 -2
  411. package/typings/esm5/expansion/expansion-panel.d.ts +19 -2
  412. package/typings/esm5/expansion/index.metadata.json +1 -1
  413. package/typings/esm5/form-field/form-field.d.ts +15 -4
  414. package/typings/esm5/form-field/index.metadata.json +1 -1
  415. package/typings/esm5/form-field/prefix.d.ts +1 -1
  416. package/typings/esm5/grid-list/index.d.ts +1 -1
  417. package/typings/esm5/grid-list/index.metadata.json +1 -1
  418. package/typings/esm5/icon/icon-registry.d.ts +3 -2
  419. package/typings/esm5/icon/index.metadata.json +1 -1
  420. package/typings/esm5/index.metadata.json +1 -1
  421. package/typings/esm5/list/index.metadata.json +1 -1
  422. package/typings/esm5/list/list.d.ts +16 -5
  423. package/typings/esm5/list/selection-list.d.ts +1 -0
  424. package/typings/esm5/menu/index.d.ts +4 -4
  425. package/typings/esm5/menu/index.metadata.json +1 -1
  426. package/typings/esm5/menu/menu-directive.d.ts +1 -0
  427. package/typings/esm5/menu/menu-item.d.ts +2 -0
  428. package/typings/esm5/menu/menu-trigger.d.ts +1 -1
  429. package/typings/esm5/progress-bar/index.metadata.json +1 -1
  430. package/typings/esm5/radio/index.metadata.json +1 -1
  431. package/typings/esm5/radio/radio.d.ts +2 -6
  432. package/typings/esm5/select/index.metadata.json +1 -1
  433. package/typings/esm5/select/select.d.ts +12 -2
  434. package/typings/esm5/sidenav/drawer.d.ts +9 -2
  435. package/typings/esm5/sidenav/index.metadata.json +1 -1
  436. package/typings/esm5/slide-toggle/index.metadata.json +1 -1
  437. package/typings/esm5/slider/index.metadata.json +1 -1
  438. package/typings/esm5/snack-bar/index.metadata.json +1 -1
  439. package/typings/esm5/sort/index.metadata.json +1 -1
  440. package/typings/esm5/stepper/index.metadata.json +1 -1
  441. package/typings/esm5/table/index.metadata.json +1 -1
  442. package/typings/esm5/table/table-data-source.d.ts +2 -0
  443. package/typings/esm5/tabs/index.d.ts +5 -5
  444. package/typings/esm5/tabs/index.metadata.json +1 -1
  445. package/typings/esm5/tabs/tab-group.d.ts +2 -1
  446. package/typings/esm5/tabs/tab-header.d.ts +8 -4
  447. package/typings/esm5/toolbar/index.metadata.json +1 -1
  448. package/typings/esm5/tooltip/index.metadata.json +1 -1
  449. package/typings/esm5/tooltip/tooltip.d.ts +2 -1
  450. package/typings/esm5/tree/data-source/flat-data-source.d.ts +2 -2
  451. package/typings/esm5/tree/index.metadata.json +1 -1
  452. package/typings/expansion/expansion-panel-header.d.ts +2 -2
  453. package/typings/expansion/expansion-panel.d.ts +19 -2
  454. package/typings/expansion/index.metadata.json +1 -1
  455. package/typings/form-field/form-field.d.ts +15 -4
  456. package/typings/form-field/index.metadata.json +1 -1
  457. package/typings/form-field/prefix.d.ts +1 -1
  458. package/typings/grid-list/index.d.ts +1 -1
  459. package/typings/grid-list/index.metadata.json +1 -1
  460. package/typings/icon/icon-registry.d.ts +3 -2
  461. package/typings/icon/index.metadata.json +1 -1
  462. package/typings/index.metadata.json +1 -1
  463. package/typings/list/index.metadata.json +1 -1
  464. package/typings/list/list.d.ts +16 -5
  465. package/typings/list/selection-list.d.ts +1 -0
  466. package/typings/menu/index.d.ts +4 -4
  467. package/typings/menu/index.metadata.json +1 -1
  468. package/typings/menu/menu-directive.d.ts +1 -0
  469. package/typings/menu/menu-item.d.ts +2 -0
  470. package/typings/menu/menu-trigger.d.ts +1 -1
  471. package/typings/progress-bar/index.metadata.json +1 -1
  472. package/typings/radio/index.metadata.json +1 -1
  473. package/typings/radio/radio.d.ts +2 -6
  474. package/typings/schematics/ng-add/theming/{custom-theme.d.ts → create-custom-theme.d.ts} +0 -0
  475. package/typings/select/index.metadata.json +1 -1
  476. package/typings/select/select.d.ts +12 -2
  477. package/typings/sidenav/drawer.d.ts +9 -2
  478. package/typings/sidenav/index.metadata.json +1 -1
  479. package/typings/slide-toggle/index.metadata.json +1 -1
  480. package/typings/slider/index.metadata.json +1 -1
  481. package/typings/snack-bar/index.metadata.json +1 -1
  482. package/typings/sort/index.metadata.json +1 -1
  483. package/typings/stepper/index.metadata.json +1 -1
  484. package/typings/table/index.metadata.json +1 -1
  485. package/typings/table/table-data-source.d.ts +2 -0
  486. package/typings/tabs/index.d.ts +5 -5
  487. package/typings/tabs/index.metadata.json +1 -1
  488. package/typings/tabs/tab-group.d.ts +2 -1
  489. package/typings/tabs/tab-header.d.ts +8 -4
  490. package/typings/toolbar/index.metadata.json +1 -1
  491. package/typings/tooltip/index.metadata.json +1 -1
  492. package/typings/tooltip/tooltip.d.ts +2 -1
  493. package/typings/tree/data-source/flat-data-source.d.ts +2 -2
  494. package/typings/tree/index.metadata.json +1 -1
  495. 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) {
@@ -468,13 +510,29 @@ var MatIconRegistry = /** @class */ (function () {
468
510
  }
469
511
  return throwError(getMatIconNameNotFoundError(key));
470
512
  };
513
+ /**
514
+ * @return {?}
515
+ */
516
+ MatIconRegistry.prototype.ngOnDestroy = /**
517
+ * @return {?}
518
+ */
519
+ function () {
520
+ this._svgIconConfigs.clear();
521
+ this._iconSetConfigs.clear();
522
+ this._cachedIconsByUrl.clear();
523
+ };
524
+ /**
525
+ * Returns the cached icon for a SvgIconConfig if available, or fetches it from its URL if not.
526
+ */
471
527
  /**
472
528
  * Returns the cached icon for a SvgIconConfig if available, or fetches it from its URL if not.
529
+ * @private
473
530
  * @param {?} config
474
531
  * @return {?}
475
532
  */
476
533
  MatIconRegistry.prototype._getSvgFromConfig = /**
477
534
  * Returns the cached icon for a SvgIconConfig if available, or fetches it from its URL if not.
535
+ * @private
478
536
  * @param {?} config
479
537
  * @return {?}
480
538
  */
@@ -495,6 +553,15 @@ var MatIconRegistry = /** @class */ (function () {
495
553
  * that have not been cached, and searches again after all fetches are completed.
496
554
  * The returned Observable produces the SVG element if possible, and throws
497
555
  * an error if no icon with the specified name can be found.
556
+ */
557
+ /**
558
+ * Attempts to find an icon with the specified name in any of the SVG icon sets.
559
+ * First searches the available cached icons for a nested element with a matching name, and
560
+ * if found copies the element to a new `<svg>` element. If not found, fetches all icon sets
561
+ * that have not been cached, and searches again after all fetches are completed.
562
+ * The returned Observable produces the SVG element if possible, and throws
563
+ * an error if no icon with the specified name can be found.
564
+ * @private
498
565
  * @param {?} name
499
566
  * @param {?} iconSetConfigs
500
567
  * @return {?}
@@ -506,12 +573,15 @@ var MatIconRegistry = /** @class */ (function () {
506
573
  * that have not been cached, and searches again after all fetches are completed.
507
574
  * The returned Observable produces the SVG element if possible, and throws
508
575
  * an error if no icon with the specified name can be found.
576
+ * @private
509
577
  * @param {?} name
510
578
  * @param {?} iconSetConfigs
511
579
  * @return {?}
512
580
  */
513
581
  function (name, iconSetConfigs) {
514
582
  var _this = this;
583
+ // For all the icon set SVG elements we've fetched, see if any contain an icon with the
584
+ // requested name.
515
585
  /** @type {?} */
516
586
  var namedIcon = this._extractIconWithNameFromAnySet(name, iconSetConfigs);
517
587
  if (namedIcon) {
@@ -520,6 +590,8 @@ var MatIconRegistry = /** @class */ (function () {
520
590
  // it from the icon set.
521
591
  return of(namedIcon);
522
592
  }
593
+ // Not found in any cached icon sets. If there are icon sets with URLs that we haven't
594
+ // fetched, fetch them now and look for iconName in the results.
523
595
  /** @type {?} */
524
596
  var iconSetFetchRequests = iconSetConfigs
525
597
  .filter(function (iconSetConfig) { return !iconSetConfig.svgElement; })
@@ -548,6 +620,12 @@ var MatIconRegistry = /** @class */ (function () {
548
620
  * Searches the cached SVG elements for the given icon sets for a nested icon element whose "id"
549
621
  * tag matches the specified name. If found, copies the nested element to a new SVG element and
550
622
  * returns it. Returns null if no matching element is found.
623
+ */
624
+ /**
625
+ * Searches the cached SVG elements for the given icon sets for a nested icon element whose "id"
626
+ * tag matches the specified name. If found, copies the nested element to a new SVG element and
627
+ * returns it. Returns null if no matching element is found.
628
+ * @private
551
629
  * @param {?} iconName
552
630
  * @param {?} iconSetConfigs
553
631
  * @return {?}
@@ -556,6 +634,7 @@ var MatIconRegistry = /** @class */ (function () {
556
634
  * Searches the cached SVG elements for the given icon sets for a nested icon element whose "id"
557
635
  * tag matches the specified name. If found, copies the nested element to a new SVG element and
558
636
  * returns it. Returns null if no matching element is found.
637
+ * @private
559
638
  * @param {?} iconName
560
639
  * @param {?} iconSetConfigs
561
640
  * @return {?}
@@ -578,12 +657,18 @@ var MatIconRegistry = /** @class */ (function () {
578
657
  /**
579
658
  * Loads the content of the icon URL specified in the SvgIconConfig and creates an SVG element
580
659
  * from it.
660
+ */
661
+ /**
662
+ * Loads the content of the icon URL specified in the SvgIconConfig and creates an SVG element
663
+ * from it.
664
+ * @private
581
665
  * @param {?} config
582
666
  * @return {?}
583
667
  */
584
668
  MatIconRegistry.prototype._loadSvgIconFromConfig = /**
585
669
  * Loads the content of the icon URL specified in the SvgIconConfig and creates an SVG element
586
670
  * from it.
671
+ * @private
587
672
  * @param {?} config
588
673
  * @return {?}
589
674
  */
@@ -595,12 +680,18 @@ var MatIconRegistry = /** @class */ (function () {
595
680
  /**
596
681
  * Loads the content of the icon set URL specified in the SvgIconConfig and creates an SVG element
597
682
  * from it.
683
+ */
684
+ /**
685
+ * Loads the content of the icon set URL specified in the SvgIconConfig and creates an SVG element
686
+ * from it.
687
+ * @private
598
688
  * @param {?} config
599
689
  * @return {?}
600
690
  */
601
691
  MatIconRegistry.prototype._loadSvgIconSetFromConfig = /**
602
692
  * Loads the content of the icon set URL specified in the SvgIconConfig and creates an SVG element
603
693
  * from it.
694
+ * @private
604
695
  * @param {?} config
605
696
  * @return {?}
606
697
  */
@@ -621,11 +712,16 @@ var MatIconRegistry = /** @class */ (function () {
621
712
  };
622
713
  /**
623
714
  * Creates a DOM element from the given SVG string, and adds default attributes.
715
+ */
716
+ /**
717
+ * Creates a DOM element from the given SVG string, and adds default attributes.
718
+ * @private
624
719
  * @param {?} responseText
625
720
  * @return {?}
626
721
  */
627
722
  MatIconRegistry.prototype._createSvgElementForSingleIcon = /**
628
723
  * Creates a DOM element from the given SVG string, and adds default attributes.
724
+ * @private
629
725
  * @param {?} responseText
630
726
  * @return {?}
631
727
  */
@@ -639,6 +735,12 @@ var MatIconRegistry = /** @class */ (function () {
639
735
  * Searches the cached element of the given SvgIconConfig for a nested icon element whose "id"
640
736
  * tag matches the specified name. If found, copies the nested element to a new SVG element and
641
737
  * returns it. Returns null if no matching element is found.
738
+ */
739
+ /**
740
+ * Searches the cached element of the given SvgIconConfig for a nested icon element whose "id"
741
+ * tag matches the specified name. If found, copies the nested element to a new SVG element and
742
+ * returns it. Returns null if no matching element is found.
743
+ * @private
642
744
  * @param {?} iconSet
643
745
  * @param {?} iconName
644
746
  * @return {?}
@@ -647,6 +749,7 @@ var MatIconRegistry = /** @class */ (function () {
647
749
  * Searches the cached element of the given SvgIconConfig for a nested icon element whose "id"
648
750
  * tag matches the specified name. If found, copies the nested element to a new SVG element and
649
751
  * returns it. Returns null if no matching element is found.
752
+ * @private
650
753
  * @param {?} iconSet
651
754
  * @param {?} iconName
652
755
  * @return {?}
@@ -657,13 +760,15 @@ var MatIconRegistry = /** @class */ (function () {
657
760
  if (!iconSource) {
658
761
  return null;
659
762
  }
763
+ // Clone the element and remove the ID to prevent multiple elements from being added
764
+ // to the page with the same ID.
660
765
  /** @type {?} */
661
- var iconElement = /** @type {?} */ (iconSource.cloneNode(true));
766
+ var iconElement = (/** @type {?} */ (iconSource.cloneNode(true)));
662
767
  iconElement.removeAttribute('id');
663
768
  // If the icon node is itself an <svg> node, clone and return it directly. If not, set it as
664
769
  // the content of a new <svg> node.
665
770
  if (iconElement.nodeName.toLowerCase() === 'svg') {
666
- return this._setSvgAttributes(/** @type {?} */ (iconElement));
771
+ return this._setSvgAttributes((/** @type {?} */ (iconElement)));
667
772
  }
668
773
  // If the node is a <symbol>, it won't be rendered so we have to convert it into <svg>. Note
669
774
  // that the same could be achieved by referring to it via <use href="#id">, however the <use>
@@ -671,6 +776,11 @@ var MatIconRegistry = /** @class */ (function () {
671
776
  if (iconElement.nodeName.toLowerCase() === 'symbol') {
672
777
  return this._setSvgAttributes(this._toSvgElement(iconElement));
673
778
  }
779
+ // createElement('SVG') doesn't work as expected; the DOM ends up with
780
+ // the correct nodes, but the SVG content doesn't render. Instead we
781
+ // have to create an empty SVG node using innerHTML and append its content.
782
+ // Elements created using DOMParser.parseFromString have the same problem.
783
+ // http://stackoverflow.com/questions/23003278/svg-innerhtml-in-firefox-can-not-display
674
784
  /** @type {?} */
675
785
  var svg = this._svgElementFromString('<svg></svg>');
676
786
  // Clone the node so we don't remove it from the parent icon set element.
@@ -679,11 +789,16 @@ var MatIconRegistry = /** @class */ (function () {
679
789
  };
680
790
  /**
681
791
  * Creates a DOM element from the given SVG string.
792
+ */
793
+ /**
794
+ * Creates a DOM element from the given SVG string.
795
+ * @private
682
796
  * @param {?} str
683
797
  * @return {?}
684
798
  */
685
799
  MatIconRegistry.prototype._svgElementFromString = /**
686
800
  * Creates a DOM element from the given SVG string.
801
+ * @private
687
802
  * @param {?} str
688
803
  * @return {?}
689
804
  */
@@ -692,7 +807,7 @@ var MatIconRegistry = /** @class */ (function () {
692
807
  var div = this._document.createElement('DIV');
693
808
  div.innerHTML = str;
694
809
  /** @type {?} */
695
- var svg = /** @type {?} */ (div.querySelector('svg'));
810
+ var svg = (/** @type {?} */ (div.querySelector('svg')));
696
811
  if (!svg) {
697
812
  throw Error('<svg> tag not found');
698
813
  }
@@ -700,11 +815,16 @@ var MatIconRegistry = /** @class */ (function () {
700
815
  };
701
816
  /**
702
817
  * Converts an element into an SVG node by cloning all of its children.
818
+ */
819
+ /**
820
+ * Converts an element into an SVG node by cloning all of its children.
821
+ * @private
703
822
  * @param {?} element
704
823
  * @return {?}
705
824
  */
706
825
  MatIconRegistry.prototype._toSvgElement = /**
707
826
  * Converts an element into an SVG node by cloning all of its children.
827
+ * @private
708
828
  * @param {?} element
709
829
  * @return {?}
710
830
  */
@@ -720,11 +840,16 @@ var MatIconRegistry = /** @class */ (function () {
720
840
  };
721
841
  /**
722
842
  * Sets the default attributes for an SVG element to be used as an icon.
843
+ */
844
+ /**
845
+ * Sets the default attributes for an SVG element to be used as an icon.
846
+ * @private
723
847
  * @param {?} svg
724
848
  * @return {?}
725
849
  */
726
850
  MatIconRegistry.prototype._setSvgAttributes = /**
727
851
  * Sets the default attributes for an SVG element to be used as an icon.
852
+ * @private
728
853
  * @param {?} svg
729
854
  * @return {?}
730
855
  */
@@ -739,12 +864,18 @@ var MatIconRegistry = /** @class */ (function () {
739
864
  /**
740
865
  * Returns an Observable which produces the string contents of the given URL. Results may be
741
866
  * cached, so future calls with the same URL may not cause another HTTP request.
867
+ */
868
+ /**
869
+ * Returns an Observable which produces the string contents of the given URL. Results may be
870
+ * cached, so future calls with the same URL may not cause another HTTP request.
871
+ * @private
742
872
  * @param {?} safeUrl
743
873
  * @return {?}
744
874
  */
745
875
  MatIconRegistry.prototype._fetchUrl = /**
746
876
  * Returns an Observable which produces the string contents of the given URL. Results may be
747
877
  * cached, so future calls with the same URL may not cause another HTTP request.
878
+ * @private
748
879
  * @param {?} safeUrl
749
880
  * @return {?}
750
881
  */
@@ -761,11 +892,16 @@ var MatIconRegistry = /** @class */ (function () {
761
892
  if (!url) {
762
893
  throw getMatIconFailedToSanitizeUrlError(safeUrl);
763
894
  }
895
+ // Store in-progress fetches to avoid sending a duplicate request for a URL when there is
896
+ // already a request in progress for that URL. It's necessary to call share() on the
897
+ // Observable returned by http.get() so that multiple subscribers don't cause multiple XHRs.
764
898
  /** @type {?} */
765
899
  var inProgressFetch = this._inProgressUrlFetches.get(url);
766
900
  if (inProgressFetch) {
767
901
  return inProgressFetch;
768
902
  }
903
+ // TODO(jelbourn): for some reason, the `finalize` operator "loses" the generic type on the
904
+ // Observable. Figure out why and fix it.
769
905
  /** @type {?} */
770
906
  var req = this._httpClient.get(url, { responseType: 'text' }).pipe(finalize(function () { return _this._inProgressUrlFetches.delete(url); }), share());
771
907
  this._inProgressUrlFetches.set(url, req);
@@ -773,44 +909,67 @@ var MatIconRegistry = /** @class */ (function () {
773
909
  };
774
910
  /**
775
911
  * Registers an icon config by name in the specified namespace.
912
+ * @param namespace Namespace in which to register the icon config.
913
+ * @param iconName Name under which to register the config.
914
+ * @param config Config to be registered.
915
+ */
916
+ /**
917
+ * Registers an icon config by name in the specified namespace.
918
+ * @private
919
+ * @template THIS
920
+ * @this {THIS}
776
921
  * @param {?} namespace Namespace in which to register the icon config.
777
922
  * @param {?} iconName Name under which to register the config.
778
923
  * @param {?} config Config to be registered.
779
- * @return {?}
924
+ * @return {THIS}
780
925
  */
781
926
  MatIconRegistry.prototype._addSvgIconConfig = /**
782
927
  * Registers an icon config by name in the specified namespace.
928
+ * @private
929
+ * @template THIS
930
+ * @this {THIS}
783
931
  * @param {?} namespace Namespace in which to register the icon config.
784
932
  * @param {?} iconName Name under which to register the config.
785
933
  * @param {?} config Config to be registered.
786
- * @return {?}
934
+ * @return {THIS}
787
935
  */
788
936
  function (namespace, iconName, config) {
789
- this._svgIconConfigs.set(iconKey(namespace, iconName), config);
790
- return this;
937
+ (/** @type {?} */ (this))._svgIconConfigs.set(iconKey(namespace, iconName), config);
938
+ return (/** @type {?} */ (this));
791
939
  };
792
940
  /**
793
941
  * Registers an icon set config in the specified namespace.
942
+ * @param namespace Namespace in which to register the icon config.
943
+ * @param config Config to be registered.
944
+ */
945
+ /**
946
+ * Registers an icon set config in the specified namespace.
947
+ * @private
948
+ * @template THIS
949
+ * @this {THIS}
794
950
  * @param {?} namespace Namespace in which to register the icon config.
795
951
  * @param {?} config Config to be registered.
796
- * @return {?}
952
+ * @return {THIS}
797
953
  */
798
954
  MatIconRegistry.prototype._addSvgIconSetConfig = /**
799
955
  * Registers an icon set config in the specified namespace.
956
+ * @private
957
+ * @template THIS
958
+ * @this {THIS}
800
959
  * @param {?} namespace Namespace in which to register the icon config.
801
960
  * @param {?} config Config to be registered.
802
- * @return {?}
961
+ * @return {THIS}
803
962
  */
804
963
  function (namespace, config) {
805
964
  /** @type {?} */
806
- var configNamespace = this._iconSetConfigs.get(namespace);
965
+ var configNamespace = (/** @type {?} */ (this))._iconSetConfigs.get(namespace);
807
966
  if (configNamespace) {
808
967
  configNamespace.push(config);
809
968
  }
810
969
  else {
811
- this._iconSetConfigs.set(namespace, [config]);
970
+ (/** @type {?} */ (this))._iconSetConfigs.set(namespace, [config]);
812
971
  }
813
- return this;
972
+ return (/** @type {?} */ (this));
814
973
  };
815
974
  MatIconRegistry.decorators = [
816
975
  { type: Injectable, args: [{ providedIn: 'root' },] },
@@ -835,9 +994,10 @@ var MatIconRegistry = /** @class */ (function () {
835
994
  function ICON_REGISTRY_PROVIDER_FACTORY(parentRegistry, httpClient, sanitizer, document) {
836
995
  return parentRegistry || new MatIconRegistry(httpClient, sanitizer, document);
837
996
  }
838
- /** *
997
+ /**
839
998
  * \@docs-private
840
- @type {?} */
999
+ * @type {?}
1000
+ */
841
1001
  var ICON_REGISTRY_PROVIDER = {
842
1002
  // If there is already an MatIconRegistry available, use that. Otherwise, provide a new one.
843
1003
  provide: MatIconRegistry,
@@ -845,7 +1005,7 @@ var ICON_REGISTRY_PROVIDER = {
845
1005
  [new Optional(), new SkipSelf(), MatIconRegistry],
846
1006
  [new Optional(), HttpClient],
847
1007
  DomSanitizer,
848
- [new Optional(), /** @type {?} */ (DOCUMENT)],
1008
+ [new Optional(), (/** @type {?} */ (DOCUMENT))],
849
1009
  ],
850
1010
  useFactory: ICON_REGISTRY_PROVIDER_FACTORY,
851
1011
  };
@@ -855,7 +1015,7 @@ var ICON_REGISTRY_PROVIDER = {
855
1015
  * @return {?}
856
1016
  */
857
1017
  function cloneSvg(svg) {
858
- return /** @type {?} */ (svg.cloneNode(true));
1018
+ return (/** @type {?} */ (svg.cloneNode(true)));
859
1019
  }
860
1020
  /**
861
1021
  * Returns the cache key to use for an icon namespace and name.
@@ -869,12 +1029,15 @@ function iconKey(namespace, name) {
869
1029
 
870
1030
  /**
871
1031
  * @fileoverview added by tsickle
872
- * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
1032
+ * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
873
1033
  */
1034
+ // Boilerplate for applying mixins to MatIcon.
874
1035
  /**
875
1036
  * \@docs-private
876
1037
  */
877
- var /**
1038
+ var
1039
+ // Boilerplate for applying mixins to MatIcon.
1040
+ /**
878
1041
  * \@docs-private
879
1042
  */
880
1043
  MatIconBase = /** @class */ (function () {
@@ -885,11 +1048,12 @@ MatIconBase = /** @class */ (function () {
885
1048
  }());
886
1049
  /** @type {?} */
887
1050
  var _MatIconMixinBase = mixinColor(MatIconBase);
888
- /** *
1051
+ /**
889
1052
  * Injection token used to provide the current location to `MatIcon`.
890
1053
  * Used to handle server-side rendering and to stub out during unit tests.
891
1054
  * \@docs-private
892
- @type {?} */
1055
+ * @type {?}
1056
+ */
893
1057
  var MAT_ICON_LOCATION = new InjectionToken('mat-icon-location', {
894
1058
  providedIn: 'root',
895
1059
  factory: MAT_ICON_LOCATION_FACTORY
@@ -909,9 +1073,10 @@ function MAT_ICON_LOCATION_FACTORY() {
909
1073
  getPathname: function () { return _location ? (_location.pathname + _location.search) : ''; }
910
1074
  };
911
1075
  }
912
- /** *
1076
+ /**
913
1077
  * SVG attributes that accept a FuncIRI (e.g. `url(<something>)`).
914
- @type {?} */
1078
+ * @type {?}
1079
+ */
915
1080
  var funcIriAttributes = [
916
1081
  'clip-path',
917
1082
  'color-profile',
@@ -927,13 +1092,15 @@ var funcIriAttributes = [
927
1092
  'stroke'
928
1093
  ];
929
1094
  var ɵ0 = function (attr) { return "[" + attr + "]"; };
930
- /** *
1095
+ /**
931
1096
  * Selector that can be used to find all elements that are using a `FuncIRI`.
932
- @type {?} */
1097
+ * @type {?}
1098
+ */
933
1099
  var funcIriAttributeSelector = funcIriAttributes.map(ɵ0).join(', ');
934
- /** *
1100
+ /**
935
1101
  * Regex that can be used to extract the id out of a FuncIRI.
936
- @type {?} */
1102
+ * @type {?}
1103
+ */
937
1104
  var funcIriPattern = /^url\(['"]?#(.*?)['"]?\)$/;
938
1105
  /**
939
1106
  * Component to display an icon. It can be used in the following ways:
@@ -964,11 +1131,7 @@ var funcIriPattern = /^url\(['"]?#(.*?)['"]?\)$/;
964
1131
  */
965
1132
  var MatIcon = /** @class */ (function (_super) {
966
1133
  __extends(MatIcon, _super);
967
- function MatIcon(elementRef, _iconRegistry, ariaHidden, /**
968
- * @deprecated `location` parameter to be made required.
969
- * @breaking-change 8.0.0
970
- */
971
- _location) {
1134
+ function MatIcon(elementRef, _iconRegistry, ariaHidden, _location) {
972
1135
  var _this = _super.call(this, elementRef) || this;
973
1136
  _this._iconRegistry = _iconRegistry;
974
1137
  _this._location = _location;
@@ -1049,6 +1212,20 @@ var MatIcon = /** @class */ (function (_super) {
1049
1212
  * 'penguin' -> ['', 'penguin']
1050
1213
  * null -> ['', '']
1051
1214
  * 'a:b:c' -> (throws Error)`
1215
+ */
1216
+ /**
1217
+ * Splits an svgIcon binding value into its icon set and icon name components.
1218
+ * Returns a 2-element array of [(icon set), (icon name)].
1219
+ * The separator for the two fields is ':'. If there is no separator, an empty
1220
+ * string is returned for the icon set and the entire value is returned for
1221
+ * the icon name. If the argument is falsy, returns an array of two empty strings.
1222
+ * Throws an error if the name contains two or more ':' separators.
1223
+ * Examples:
1224
+ * `'social:cake' -> ['social', 'cake']
1225
+ * 'penguin' -> ['', 'penguin']
1226
+ * null -> ['', '']
1227
+ * 'a:b:c' -> (throws Error)`
1228
+ * @private
1052
1229
  * @param {?} iconName
1053
1230
  * @return {?}
1054
1231
  */
@@ -1064,6 +1241,7 @@ var MatIcon = /** @class */ (function (_super) {
1064
1241
  * 'penguin' -> ['', 'penguin']
1065
1242
  * null -> ['', '']
1066
1243
  * 'a:b:c' -> (throws Error)`
1244
+ * @private
1067
1245
  * @param {?} iconName
1068
1246
  * @return {?}
1069
1247
  */
@@ -1075,7 +1253,7 @@ var MatIcon = /** @class */ (function (_super) {
1075
1253
  var parts = iconName.split(':');
1076
1254
  switch (parts.length) {
1077
1255
  case 1: return ['', parts[0]]; // Use default namespace.
1078
- case 2: return /** @type {?} */ (parts);
1256
+ case 2: return (/** @type {?} */ (parts));
1079
1257
  default: throw Error("Invalid icon name: \"" + iconName + "\"");
1080
1258
  }
1081
1259
  };
@@ -1090,7 +1268,7 @@ var MatIcon = /** @class */ (function (_super) {
1090
1268
  function (changes) {
1091
1269
  var _this = this;
1092
1270
  // Only update the inline SVG icon if the inputs changed, to avoid unnecessary DOM operations.
1093
- if (changes["svgIcon"]) {
1271
+ if (changes.svgIcon) {
1094
1272
  if (this.svgIcon) {
1095
1273
  var _a = this._splitIconName(this.svgIcon), namespace = _a[0], iconName = _a[1];
1096
1274
  this._iconRegistry.getNamedSvgIcon(iconName, namespace).pipe(take(1)).subscribe(function (svg) { return _this._setSvgElement(svg); }, function (err) { return console.log("Error retrieving icon: " + err.message); });
@@ -1152,26 +1330,33 @@ var MatIcon = /** @class */ (function (_super) {
1152
1330
  }
1153
1331
  };
1154
1332
  /**
1333
+ * @private
1155
1334
  * @return {?}
1156
1335
  */
1157
1336
  MatIcon.prototype._usingFontIcon = /**
1337
+ * @private
1158
1338
  * @return {?}
1159
1339
  */
1160
1340
  function () {
1161
1341
  return !this.svgIcon;
1162
1342
  };
1163
1343
  /**
1344
+ * @private
1164
1345
  * @param {?} svg
1165
1346
  * @return {?}
1166
1347
  */
1167
1348
  MatIcon.prototype._setSvgElement = /**
1349
+ * @private
1168
1350
  * @param {?} svg
1169
1351
  * @return {?}
1170
1352
  */
1171
1353
  function (svg) {
1172
1354
  this._clearSvgElement();
1355
+ // Workaround for IE11 and Edge ignoring `style` tags inside dynamically-created SVGs.
1356
+ // See: https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/10898469/
1357
+ // Do this before inserting the element into the DOM, in order to avoid a style recalculation.
1173
1358
  /** @type {?} */
1174
- var styleTags = /** @type {?} */ (svg.querySelectorAll('style'));
1359
+ var styleTags = (/** @type {?} */ (svg.querySelectorAll('style')));
1175
1360
  for (var i = 0; i < styleTags.length; i++) {
1176
1361
  styleTags[i].textContent += ' ';
1177
1362
  }
@@ -1187,9 +1372,11 @@ var MatIcon = /** @class */ (function (_super) {
1187
1372
  this._elementRef.nativeElement.appendChild(svg);
1188
1373
  };
1189
1374
  /**
1375
+ * @private
1190
1376
  * @return {?}
1191
1377
  */
1192
1378
  MatIcon.prototype._clearSvgElement = /**
1379
+ * @private
1193
1380
  * @return {?}
1194
1381
  */
1195
1382
  function () {
@@ -1213,9 +1400,11 @@ var MatIcon = /** @class */ (function (_super) {
1213
1400
  }
1214
1401
  };
1215
1402
  /**
1403
+ * @private
1216
1404
  * @return {?}
1217
1405
  */
1218
1406
  MatIcon.prototype._updateFontIconClasses = /**
1407
+ * @private
1219
1408
  * @return {?}
1220
1409
  */
1221
1410
  function () {
@@ -1251,6 +1440,12 @@ var MatIcon = /** @class */ (function (_super) {
1251
1440
  * Cleans up a value to be used as a fontIcon or fontSet.
1252
1441
  * Since the value ends up being assigned as a CSS class, we
1253
1442
  * have to trim the value and omit space-separated values.
1443
+ */
1444
+ /**
1445
+ * Cleans up a value to be used as a fontIcon or fontSet.
1446
+ * Since the value ends up being assigned as a CSS class, we
1447
+ * have to trim the value and omit space-separated values.
1448
+ * @private
1254
1449
  * @param {?} value
1255
1450
  * @return {?}
1256
1451
  */
@@ -1258,6 +1453,7 @@ var MatIcon = /** @class */ (function (_super) {
1258
1453
  * Cleans up a value to be used as a fontIcon or fontSet.
1259
1454
  * Since the value ends up being assigned as a CSS class, we
1260
1455
  * have to trim the value and omit space-separated values.
1456
+ * @private
1261
1457
  * @param {?} value
1262
1458
  * @return {?}
1263
1459
  */
@@ -1268,6 +1464,12 @@ var MatIcon = /** @class */ (function (_super) {
1268
1464
  * Prepends the current path to all elements that have an attribute pointing to a `FuncIRI`
1269
1465
  * reference. This is required because WebKit browsers require references to be prefixed with
1270
1466
  * the current path, if the page has a `base` tag.
1467
+ */
1468
+ /**
1469
+ * Prepends the current path to all elements that have an attribute pointing to a `FuncIRI`
1470
+ * reference. This is required because WebKit browsers require references to be prefixed with
1471
+ * the current path, if the page has a `base` tag.
1472
+ * @private
1271
1473
  * @param {?} path
1272
1474
  * @return {?}
1273
1475
  */
@@ -1275,6 +1477,7 @@ var MatIcon = /** @class */ (function (_super) {
1275
1477
  * Prepends the current path to all elements that have an attribute pointing to a `FuncIRI`
1276
1478
  * reference. This is required because WebKit browsers require references to be prefixed with
1277
1479
  * the current path, if the page has a `base` tag.
1480
+ * @private
1278
1481
  * @param {?} path
1279
1482
  * @return {?}
1280
1483
  */
@@ -1292,12 +1495,18 @@ var MatIcon = /** @class */ (function (_super) {
1292
1495
  /**
1293
1496
  * Caches the children of an SVG element that have `url()`
1294
1497
  * references that we need to prefix with the current path.
1498
+ */
1499
+ /**
1500
+ * Caches the children of an SVG element that have `url()`
1501
+ * references that we need to prefix with the current path.
1502
+ * @private
1295
1503
  * @param {?} element
1296
1504
  * @return {?}
1297
1505
  */
1298
1506
  MatIcon.prototype._cacheChildrenWithExternalReferences = /**
1299
1507
  * Caches the children of an SVG element that have `url()`
1300
1508
  * references that we need to prefix with the current path.
1509
+ * @private
1301
1510
  * @param {?} element
1302
1511
  * @return {?}
1303
1512
  */
@@ -1321,8 +1530,8 @@ var MatIcon = /** @class */ (function (_super) {
1321
1530
  if (!attributes) {
1322
1531
  attributes = [];
1323
1532
  elements.set(elementWithReference, attributes);
1324
- } /** @type {?} */
1325
- ((attributes)).push({ name: attr, value: match[1] });
1533
+ }
1534
+ (/** @type {?} */ (attributes)).push({ name: attr, value: match[1] });
1326
1535
  }
1327
1536
  });
1328
1537
  };
@@ -1340,6 +1549,7 @@ var MatIcon = /** @class */ (function (_super) {
1340
1549
  'role': 'img',
1341
1550
  'class': 'mat-icon',
1342
1551
  '[class.mat-icon-inline]': 'inline',
1552
+ '[class.mat-icon-no-color]': 'color !== "primary" && color !== "accent" && color !== "warn"',
1343
1553
  },
1344
1554
  encapsulation: ViewEncapsulation.None,
1345
1555
  changeDetection: ChangeDetectionStrategy.OnPush,
@@ -1363,7 +1573,7 @@ var MatIcon = /** @class */ (function (_super) {
1363
1573
 
1364
1574
  /**
1365
1575
  * @fileoverview added by tsickle
1366
- * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
1576
+ * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
1367
1577
  */
1368
1578
  var MatIconModule = /** @class */ (function () {
1369
1579
  function MatIconModule() {
@@ -1380,12 +1590,12 @@ var MatIconModule = /** @class */ (function () {
1380
1590
 
1381
1591
  /**
1382
1592
  * @fileoverview added by tsickle
1383
- * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
1593
+ * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
1384
1594
  */
1385
1595
 
1386
1596
  /**
1387
1597
  * @fileoverview added by tsickle
1388
- * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
1598
+ * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
1389
1599
  */
1390
1600
 
1391
1601
  export { MatIconModule, MAT_ICON_LOCATION_FACTORY, MatIconBase, _MatIconMixinBase, MAT_ICON_LOCATION, MatIcon, getMatIconNameNotFoundError, getMatIconNoHttpProviderError, getMatIconFailedToSanitizeUrlError, getMatIconFailedToSanitizeLiteralError, ICON_REGISTRY_PROVIDER_FACTORY, MatIconRegistry, ICON_REGISTRY_PROVIDER };