@angular/material 7.0.4 → 7.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (488) hide show
  1. package/LICENSE +1 -1
  2. package/_theming.scss +61 -44
  3. package/autocomplete/typings/index.d.ts +1 -1
  4. package/autocomplete/typings/index.metadata.json +1 -1
  5. package/badge/typings/index.metadata.json +1 -1
  6. package/bottom-sheet/typings/bottom-sheet-config.d.ts +5 -0
  7. package/bottom-sheet/typings/bottom-sheet-container.d.ts +1 -1
  8. package/bottom-sheet/typings/index.metadata.json +1 -1
  9. package/bundles/material-autocomplete.umd.js +126 -32
  10. package/bundles/material-autocomplete.umd.js.map +1 -1
  11. package/bundles/material-autocomplete.umd.min.js +1 -1
  12. package/bundles/material-autocomplete.umd.min.js.map +1 -1
  13. package/bundles/material-badge.umd.js +38 -5
  14. package/bundles/material-badge.umd.js.map +1 -1
  15. package/bundles/material-badge.umd.min.js +1 -1
  16. package/bundles/material-badge.umd.min.js.map +1 -1
  17. package/bundles/material-bottom-sheet.umd.js +68 -21
  18. package/bundles/material-bottom-sheet.umd.js.map +1 -1
  19. package/bundles/material-bottom-sheet.umd.min.js +1 -1
  20. package/bundles/material-bottom-sheet.umd.min.js.map +1 -1
  21. package/bundles/material-button-toggle.umd.js +36 -13
  22. package/bundles/material-button-toggle.umd.js.map +1 -1
  23. package/bundles/material-button-toggle.umd.min.js +1 -1
  24. package/bundles/material-button-toggle.umd.min.js.map +1 -1
  25. package/bundles/material-button.umd.js +21 -14
  26. package/bundles/material-button.umd.js.map +1 -1
  27. package/bundles/material-button.umd.min.js +1 -1
  28. package/bundles/material-button.umd.min.js.map +1 -1
  29. package/bundles/material-card.umd.js +3 -3
  30. package/bundles/material-card.umd.js.map +1 -1
  31. package/bundles/material-card.umd.min.js +1 -1
  32. package/bundles/material-card.umd.min.js.map +1 -1
  33. package/bundles/material-checkbox.umd.js +56 -15
  34. package/bundles/material-checkbox.umd.js.map +1 -1
  35. package/bundles/material-checkbox.umd.min.js +1 -1
  36. package/bundles/material-checkbox.umd.min.js.map +1 -1
  37. package/bundles/material-chips.umd.js +124 -34
  38. package/bundles/material-chips.umd.js.map +1 -1
  39. package/bundles/material-chips.umd.min.js +1 -1
  40. package/bundles/material-chips.umd.min.js.map +1 -1
  41. package/bundles/material-core.umd.js +189 -126
  42. package/bundles/material-core.umd.js.map +1 -1
  43. package/bundles/material-core.umd.min.js +1 -1
  44. package/bundles/material-core.umd.min.js.map +1 -1
  45. package/bundles/material-datepicker.umd.js +231 -53
  46. package/bundles/material-datepicker.umd.js.map +1 -1
  47. package/bundles/material-datepicker.umd.min.js +2 -2
  48. package/bundles/material-datepicker.umd.min.js.map +1 -1
  49. package/bundles/material-dialog.umd.js +138 -40
  50. package/bundles/material-dialog.umd.js.map +1 -1
  51. package/bundles/material-dialog.umd.min.js +1 -1
  52. package/bundles/material-dialog.umd.min.js.map +1 -1
  53. package/bundles/material-divider.umd.js +2 -2
  54. package/bundles/material-divider.umd.js.map +1 -1
  55. package/bundles/material-divider.umd.min.js.map +1 -1
  56. package/bundles/material-expansion.umd.js +53 -27
  57. package/bundles/material-expansion.umd.js.map +1 -1
  58. package/bundles/material-expansion.umd.min.js +1 -1
  59. package/bundles/material-expansion.umd.min.js.map +1 -1
  60. package/bundles/material-form-field.umd.js +121 -32
  61. package/bundles/material-form-field.umd.js.map +1 -1
  62. package/bundles/material-form-field.umd.min.js +1 -1
  63. package/bundles/material-form-field.umd.min.js.map +1 -1
  64. package/bundles/material-grid-list.umd.js +66 -15
  65. package/bundles/material-grid-list.umd.js.map +1 -1
  66. package/bundles/material-grid-list.umd.min.js +1 -1
  67. package/bundles/material-grid-list.umd.min.js.map +1 -1
  68. package/bundles/material-icon.umd.js +277 -78
  69. package/bundles/material-icon.umd.js.map +1 -1
  70. package/bundles/material-icon.umd.min.js +1 -1
  71. package/bundles/material-icon.umd.min.js.map +1 -1
  72. package/bundles/material-input.umd.js +50 -22
  73. package/bundles/material-input.umd.js.map +1 -1
  74. package/bundles/material-input.umd.min.js +1 -1
  75. package/bundles/material-input.umd.min.js.map +1 -1
  76. package/bundles/material-list.umd.js +69 -21
  77. package/bundles/material-list.umd.js.map +1 -1
  78. package/bundles/material-list.umd.min.js +2 -6
  79. package/bundles/material-list.umd.min.js.map +1 -1
  80. package/bundles/material-menu.umd.js +171 -66
  81. package/bundles/material-menu.umd.js.map +1 -1
  82. package/bundles/material-menu.umd.min.js +1 -1
  83. package/bundles/material-menu.umd.min.js.map +1 -1
  84. package/bundles/material-paginator.umd.js +52 -10
  85. package/bundles/material-paginator.umd.js.map +1 -1
  86. package/bundles/material-paginator.umd.min.js +1 -1
  87. package/bundles/material-paginator.umd.min.js.map +1 -1
  88. package/bundles/material-progress-bar.umd.js +31 -12
  89. package/bundles/material-progress-bar.umd.js.map +1 -1
  90. package/bundles/material-progress-bar.umd.min.js +1 -1
  91. package/bundles/material-progress-bar.umd.min.js.map +1 -1
  92. package/bundles/material-progress-spinner.umd.js +29 -13
  93. package/bundles/material-progress-spinner.umd.js.map +1 -1
  94. package/bundles/material-progress-spinner.umd.min.js.map +1 -1
  95. package/bundles/material-radio.umd.js +38 -40
  96. package/bundles/material-radio.umd.js.map +1 -1
  97. package/bundles/material-radio.umd.min.js +1 -1
  98. package/bundles/material-radio.umd.min.js.map +1 -1
  99. package/bundles/material-select.umd.js +189 -51
  100. package/bundles/material-select.umd.js.map +1 -1
  101. package/bundles/material-select.umd.min.js +1 -1
  102. package/bundles/material-select.umd.min.js.map +1 -1
  103. package/bundles/material-sidenav.umd.js +104 -25
  104. package/bundles/material-sidenav.umd.js.map +1 -1
  105. package/bundles/material-sidenav.umd.min.js +1 -1
  106. package/bundles/material-sidenav.umd.min.js.map +1 -1
  107. package/bundles/material-slide-toggle.umd.js +30 -14
  108. package/bundles/material-slide-toggle.umd.js.map +1 -1
  109. package/bundles/material-slide-toggle.umd.min.js +1 -1
  110. package/bundles/material-slide-toggle.umd.min.js.map +1 -1
  111. package/bundles/material-slider.umd.js +91 -21
  112. package/bundles/material-slider.umd.js.map +1 -1
  113. package/bundles/material-slider.umd.min.js +1 -1
  114. package/bundles/material-slider.umd.min.js.map +1 -1
  115. package/bundles/material-snack-bar.umd.js +71 -19
  116. package/bundles/material-snack-bar.umd.js.map +1 -1
  117. package/bundles/material-snack-bar.umd.min.js +1 -1
  118. package/bundles/material-snack-bar.umd.min.js.map +1 -1
  119. package/bundles/material-sort.umd.js +46 -24
  120. package/bundles/material-sort.umd.js.map +1 -1
  121. package/bundles/material-sort.umd.min.js +1 -1
  122. package/bundles/material-sort.umd.min.js.map +1 -1
  123. package/bundles/material-stepper.umd.js +37 -35
  124. package/bundles/material-stepper.umd.js.map +1 -1
  125. package/bundles/material-stepper.umd.min.js +1 -1
  126. package/bundles/material-stepper.umd.min.js.map +1 -1
  127. package/bundles/material-table.umd.js +29 -9
  128. package/bundles/material-table.umd.js.map +1 -1
  129. package/bundles/material-table.umd.min.js.map +1 -1
  130. package/bundles/material-tabs.umd.js +170 -68
  131. package/bundles/material-tabs.umd.js.map +1 -1
  132. package/bundles/material-tabs.umd.min.js +2 -2
  133. package/bundles/material-tabs.umd.min.js.map +1 -1
  134. package/bundles/material-toolbar.umd.js +14 -4
  135. package/bundles/material-toolbar.umd.js.map +1 -1
  136. package/bundles/material-toolbar.umd.min.js +1 -1
  137. package/bundles/material-toolbar.umd.min.js.map +1 -1
  138. package/bundles/material-tooltip.umd.js +53 -26
  139. package/bundles/material-tooltip.umd.js.map +1 -1
  140. package/bundles/material-tooltip.umd.min.js +1 -1
  141. package/bundles/material-tooltip.umd.min.js.map +1 -1
  142. package/bundles/material-tree.umd.js +25 -16
  143. package/bundles/material-tree.umd.js.map +1 -1
  144. package/bundles/material-tree.umd.min.js +1 -1
  145. package/bundles/material-tree.umd.min.js.map +1 -1
  146. package/bundles/material.umd.js +2853 -1010
  147. package/bundles/material.umd.js.map +1 -1
  148. package/bundles/material.umd.min.js +19 -21
  149. package/bundles/material.umd.min.js.map +1 -1
  150. package/button/typings/button.d.ts +0 -5
  151. package/button/typings/index.metadata.json +1 -1
  152. package/button-toggle/typings/index.metadata.json +1 -1
  153. package/card/typings/index.metadata.json +1 -1
  154. package/checkbox/typings/index.metadata.json +1 -1
  155. package/chips/typings/chip-list.d.ts +1 -1
  156. package/chips/typings/chip.d.ts +2 -2
  157. package/chips/typings/index.metadata.json +1 -1
  158. package/core/typings/index.metadata.json +1 -1
  159. package/core/typings/{testing/month-constants.d.ts → month-constants.d.ts} +2 -0
  160. package/core/typings/public-api.d.ts +1 -1
  161. package/datepicker/typings/calendar-body.d.ts +21 -5
  162. package/datepicker/typings/calendar.d.ts +4 -1
  163. package/datepicker/typings/datepicker.d.ts +3 -0
  164. package/datepicker/typings/index.metadata.json +1 -1
  165. package/datepicker/typings/month-view.d.ts +4 -2
  166. package/dialog/typings/index.metadata.json +1 -1
  167. package/esm2015/autocomplete.js +60 -29
  168. package/esm2015/autocomplete.js.map +1 -1
  169. package/esm2015/badge.js +29 -6
  170. package/esm2015/badge.js.map +1 -1
  171. package/esm2015/bottom-sheet.js +45 -22
  172. package/esm2015/bottom-sheet.js.map +1 -1
  173. package/esm2015/button-toggle.js +20 -11
  174. package/esm2015/button-toggle.js.map +1 -1
  175. package/esm2015/button.js +20 -15
  176. package/esm2015/button.js.map +1 -1
  177. package/esm2015/card.js +5 -5
  178. package/esm2015/card.js.map +1 -1
  179. package/esm2015/checkbox.js +30 -12
  180. package/esm2015/checkbox.js.map +1 -1
  181. package/esm2015/chips.js +64 -28
  182. package/esm2015/chips.js.map +1 -1
  183. package/esm2015/core.js +148 -129
  184. package/esm2015/core.js.map +1 -1
  185. package/esm2015/datepicker.js +124 -41
  186. package/esm2015/datepicker.js.map +1 -1
  187. package/esm2015/dialog.js +77 -40
  188. package/esm2015/dialog.js.map +1 -1
  189. package/esm2015/divider.js +4 -4
  190. package/esm2015/divider.js.map +1 -1
  191. package/esm2015/expansion.js +58 -31
  192. package/esm2015/expansion.js.map +1 -1
  193. package/esm2015/form-field.js +94 -34
  194. package/esm2015/form-field.js.map +1 -1
  195. package/esm2015/grid-list.js +45 -17
  196. package/esm2015/grid-list.js.map +1 -1
  197. package/esm2015/icon.js +136 -67
  198. package/esm2015/icon.js.map +1 -1
  199. package/esm2015/input.js +44 -23
  200. package/esm2015/input.js.map +1 -1
  201. package/esm2015/list.js +47 -22
  202. package/esm2015/list.js.map +1 -1
  203. package/esm2015/material.js +13 -12
  204. package/esm2015/material.js.map +1 -1
  205. package/esm2015/menu.js +109 -63
  206. package/esm2015/menu.js.map +1 -1
  207. package/esm2015/paginator.js +35 -12
  208. package/esm2015/paginator.js.map +1 -1
  209. package/esm2015/progress-bar.js +26 -13
  210. package/esm2015/progress-bar.js.map +1 -1
  211. package/esm2015/progress-spinner.js +24 -14
  212. package/esm2015/progress-spinner.js.map +1 -1
  213. package/esm2015/radio.js +22 -21
  214. package/esm2015/radio.js.map +1 -1
  215. package/esm2015/select.js +116 -53
  216. package/esm2015/select.js.map +1 -1
  217. package/esm2015/sidenav.js +75 -28
  218. package/esm2015/sidenav.js.map +1 -1
  219. package/esm2015/slide-toggle.js +23 -15
  220. package/esm2015/slide-toggle.js.map +1 -1
  221. package/esm2015/slider.js +54 -24
  222. package/esm2015/slider.js.map +1 -1
  223. package/esm2015/snack-bar.js +41 -21
  224. package/esm2015/snack-bar.js.map +1 -1
  225. package/esm2015/sort.js +47 -24
  226. package/esm2015/sort.js.map +1 -1
  227. package/esm2015/stepper.js +35 -32
  228. package/esm2015/stepper.js.map +1 -1
  229. package/esm2015/table.js +31 -11
  230. package/esm2015/table.js.map +1 -1
  231. package/esm2015/tabs.js +113 -53
  232. package/esm2015/tabs.js.map +1 -1
  233. package/esm2015/toolbar.js +9 -5
  234. package/esm2015/toolbar.js.map +1 -1
  235. package/esm2015/tooltip.js +43 -28
  236. package/esm2015/tooltip.js.map +1 -1
  237. package/esm2015/tree.js +22 -17
  238. package/esm2015/tree.js.map +1 -1
  239. package/esm5/autocomplete.es5.js +128 -34
  240. package/esm5/autocomplete.es5.js.map +1 -1
  241. package/esm5/badge.es5.js +40 -7
  242. package/esm5/badge.es5.js.map +1 -1
  243. package/esm5/bottom-sheet.es5.js +70 -23
  244. package/esm5/bottom-sheet.es5.js.map +1 -1
  245. package/esm5/button-toggle.es5.js +38 -15
  246. package/esm5/button-toggle.es5.js.map +1 -1
  247. package/esm5/button.es5.js +23 -16
  248. package/esm5/button.es5.js.map +1 -1
  249. package/esm5/card.es5.js +5 -5
  250. package/esm5/card.es5.js.map +1 -1
  251. package/esm5/checkbox.es5.js +58 -17
  252. package/esm5/checkbox.es5.js.map +1 -1
  253. package/esm5/chips.es5.js +127 -37
  254. package/esm5/chips.es5.js.map +1 -1
  255. package/esm5/core.es5.js +192 -129
  256. package/esm5/core.es5.js.map +1 -1
  257. package/esm5/datepicker.es5.js +233 -55
  258. package/esm5/datepicker.es5.js.map +1 -1
  259. package/esm5/dialog.es5.js +140 -42
  260. package/esm5/dialog.es5.js.map +1 -1
  261. package/esm5/divider.es5.js +4 -4
  262. package/esm5/divider.es5.js.map +1 -1
  263. package/esm5/expansion.es5.js +56 -31
  264. package/esm5/expansion.es5.js.map +1 -1
  265. package/esm5/form-field.es5.js +125 -36
  266. package/esm5/form-field.es5.js.map +1 -1
  267. package/esm5/grid-list.es5.js +68 -17
  268. package/esm5/grid-list.es5.js.map +1 -1
  269. package/esm5/icon.es5.js +279 -80
  270. package/esm5/icon.es5.js.map +1 -1
  271. package/esm5/input.es5.js +52 -24
  272. package/esm5/input.es5.js.map +1 -1
  273. package/esm5/list.es5.js +72 -24
  274. package/esm5/list.es5.js.map +1 -1
  275. package/esm5/material.es5.js +13 -12
  276. package/esm5/material.es5.js.map +1 -1
  277. package/esm5/menu.es5.js +170 -65
  278. package/esm5/menu.es5.js.map +1 -1
  279. package/esm5/paginator.es5.js +55 -13
  280. package/esm5/paginator.es5.js.map +1 -1
  281. package/esm5/progress-bar.es5.js +33 -14
  282. package/esm5/progress-bar.es5.js.map +1 -1
  283. package/esm5/progress-spinner.es5.js +31 -15
  284. package/esm5/progress-spinner.es5.js.map +1 -1
  285. package/esm5/radio.es5.js +42 -42
  286. package/esm5/radio.es5.js.map +1 -1
  287. package/esm5/select.es5.js +193 -55
  288. package/esm5/select.es5.js.map +1 -1
  289. package/esm5/sidenav.es5.js +107 -28
  290. package/esm5/sidenav.es5.js.map +1 -1
  291. package/esm5/slide-toggle.es5.js +32 -16
  292. package/esm5/slide-toggle.es5.js.map +1 -1
  293. package/esm5/slider.es5.js +94 -24
  294. package/esm5/slider.es5.js.map +1 -1
  295. package/esm5/snack-bar.es5.js +73 -21
  296. package/esm5/snack-bar.es5.js.map +1 -1
  297. package/esm5/sort.es5.js +53 -26
  298. package/esm5/sort.es5.js.map +1 -1
  299. package/esm5/stepper.es5.js +40 -38
  300. package/esm5/stepper.es5.js.map +1 -1
  301. package/esm5/table.es5.js +31 -11
  302. package/esm5/table.es5.js.map +1 -1
  303. package/esm5/tabs.es5.js +162 -61
  304. package/esm5/tabs.es5.js.map +1 -1
  305. package/esm5/toolbar.es5.js +16 -6
  306. package/esm5/toolbar.es5.js.map +1 -1
  307. package/esm5/tooltip.es5.js +55 -28
  308. package/esm5/tooltip.es5.js.map +1 -1
  309. package/esm5/tree.es5.js +27 -18
  310. package/esm5/tree.es5.js.map +1 -1
  311. package/expansion/typings/expansion-panel-header.d.ts +2 -2
  312. package/expansion/typings/expansion-panel.d.ts +19 -2
  313. package/expansion/typings/index.metadata.json +1 -1
  314. package/form-field/typings/form-field.d.ts +15 -4
  315. package/form-field/typings/index.metadata.json +1 -1
  316. package/grid-list/typings/index.d.ts +1 -1
  317. package/grid-list/typings/index.metadata.json +1 -1
  318. package/icon/typings/index.metadata.json +1 -1
  319. package/list/typings/index.metadata.json +1 -1
  320. package/material.d.ts +1 -1
  321. package/material.metadata.json +3 -3
  322. package/menu/typings/index.d.ts +4 -4
  323. package/menu/typings/index.metadata.json +1 -1
  324. package/menu/typings/menu-directive.d.ts +1 -0
  325. package/menu/typings/menu-item.d.ts +2 -0
  326. package/package.json +5 -5
  327. package/paginator/typings/index.metadata.json +1 -1
  328. package/paginator/typings/paginator.d.ts +7 -3
  329. package/prebuilt-themes/deeppurple-amber.css +1 -1
  330. package/prebuilt-themes/indigo-pink.css +1 -1
  331. package/prebuilt-themes/pink-bluegrey.css +1 -1
  332. package/prebuilt-themes/purple-green.css +1 -1
  333. package/progress-bar/typings/index.metadata.json +1 -1
  334. package/radio/typings/index.metadata.json +1 -1
  335. package/radio/typings/radio.d.ts +2 -6
  336. package/schematics/ng-add/theming/{custom-theme.d.ts → create-custom-theme.d.ts} +0 -0
  337. package/schematics/ng-add/theming/{custom-theme.js → create-custom-theme.js} +1 -1
  338. package/schematics/ng-add/theming/create-custom-theme.js.map +1 -0
  339. package/schematics/ng-add/theming/theming.js +35 -19
  340. package/schematics/ng-add/theming/theming.js.map +1 -1
  341. package/schematics/ng-generate/address-form/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.ts +2 -2
  342. package/schematics/ng-generate/dashboard/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.ts +2 -2
  343. package/schematics/ng-generate/nav/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.ts +2 -2
  344. package/schematics/ng-generate/table/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.ts +2 -2
  345. package/schematics/ng-generate/tree/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.ts +2 -2
  346. package/select/typings/index.metadata.json +1 -1
  347. package/select/typings/select.d.ts +12 -2
  348. package/sidenav/typings/drawer.d.ts +9 -2
  349. package/sidenav/typings/index.metadata.json +1 -1
  350. package/slide-toggle/typings/index.metadata.json +1 -1
  351. package/slider/typings/index.metadata.json +1 -1
  352. package/snack-bar/typings/index.metadata.json +1 -1
  353. package/sort/typings/index.metadata.json +1 -1
  354. package/stepper/typings/index.metadata.json +1 -1
  355. package/stepper/typings/step-header.d.ts +3 -5
  356. package/tabs/typings/index.d.ts +5 -5
  357. package/tabs/typings/index.metadata.json +1 -1
  358. package/tabs/typings/tab-body.d.ts +2 -0
  359. package/tabs/typings/tab-group.d.ts +11 -2
  360. package/tabs/typings/tab-header.d.ts +9 -3
  361. package/toolbar/typings/index.metadata.json +1 -1
  362. package/tooltip/typings/index.metadata.json +1 -1
  363. package/tree/typings/data-source/flat-data-source.d.ts +2 -2
  364. package/tree/typings/index.metadata.json +1 -1
  365. package/typings/autocomplete/index.d.ts +1 -1
  366. package/typings/autocomplete/index.metadata.json +1 -1
  367. package/typings/badge/index.metadata.json +1 -1
  368. package/typings/bottom-sheet/bottom-sheet-config.d.ts +5 -0
  369. package/typings/bottom-sheet/bottom-sheet-container.d.ts +1 -1
  370. package/typings/bottom-sheet/index.metadata.json +1 -1
  371. package/typings/button/button.d.ts +0 -5
  372. package/typings/button/index.metadata.json +1 -1
  373. package/typings/button-toggle/index.metadata.json +1 -1
  374. package/typings/card/index.metadata.json +1 -1
  375. package/typings/checkbox/index.metadata.json +1 -1
  376. package/typings/chips/chip-list.d.ts +1 -1
  377. package/typings/chips/chip.d.ts +2 -2
  378. package/typings/chips/index.metadata.json +1 -1
  379. package/typings/core/index.metadata.json +1 -1
  380. package/typings/core/{testing/month-constants.d.ts → month-constants.d.ts} +2 -0
  381. package/typings/core/public-api.d.ts +1 -1
  382. package/typings/datepicker/calendar-body.d.ts +21 -5
  383. package/typings/datepicker/calendar.d.ts +4 -1
  384. package/typings/datepicker/datepicker.d.ts +3 -0
  385. package/typings/datepicker/index.metadata.json +1 -1
  386. package/typings/datepicker/month-view.d.ts +4 -2
  387. package/typings/dialog/index.metadata.json +1 -1
  388. package/typings/esm5/autocomplete/index.d.ts +1 -1
  389. package/typings/esm5/autocomplete/index.metadata.json +1 -1
  390. package/typings/esm5/badge/index.metadata.json +1 -1
  391. package/typings/esm5/bottom-sheet/bottom-sheet-config.d.ts +5 -0
  392. package/typings/esm5/bottom-sheet/bottom-sheet-container.d.ts +1 -1
  393. package/typings/esm5/bottom-sheet/index.metadata.json +1 -1
  394. package/typings/esm5/button/button.d.ts +0 -5
  395. package/typings/esm5/button/index.metadata.json +1 -1
  396. package/typings/esm5/button-toggle/index.metadata.json +1 -1
  397. package/typings/esm5/card/index.metadata.json +1 -1
  398. package/typings/esm5/checkbox/index.metadata.json +1 -1
  399. package/typings/esm5/chips/chip-list.d.ts +1 -1
  400. package/typings/esm5/chips/chip.d.ts +2 -2
  401. package/typings/esm5/chips/index.metadata.json +1 -1
  402. package/typings/esm5/core/index.metadata.json +1 -1
  403. package/typings/esm5/core/{testing/month-constants.d.ts → month-constants.d.ts} +2 -0
  404. package/typings/esm5/core/public-api.d.ts +1 -1
  405. package/typings/esm5/datepicker/calendar-body.d.ts +21 -5
  406. package/typings/esm5/datepicker/calendar.d.ts +4 -1
  407. package/typings/esm5/datepicker/datepicker.d.ts +3 -0
  408. package/typings/esm5/datepicker/index.metadata.json +1 -1
  409. package/typings/esm5/datepicker/month-view.d.ts +4 -2
  410. package/typings/esm5/dialog/index.metadata.json +1 -1
  411. package/typings/esm5/expansion/expansion-panel-header.d.ts +2 -2
  412. package/typings/esm5/expansion/expansion-panel.d.ts +19 -2
  413. package/typings/esm5/expansion/index.metadata.json +1 -1
  414. package/typings/esm5/form-field/form-field.d.ts +15 -4
  415. package/typings/esm5/form-field/index.metadata.json +1 -1
  416. package/typings/esm5/grid-list/index.d.ts +1 -1
  417. package/typings/esm5/grid-list/index.metadata.json +1 -1
  418. package/typings/esm5/icon/index.metadata.json +1 -1
  419. package/typings/esm5/index.metadata.json +1 -1
  420. package/typings/esm5/list/index.metadata.json +1 -1
  421. package/typings/esm5/menu/index.d.ts +4 -4
  422. package/typings/esm5/menu/index.metadata.json +1 -1
  423. package/typings/esm5/menu/menu-directive.d.ts +1 -0
  424. package/typings/esm5/menu/menu-item.d.ts +2 -0
  425. package/typings/esm5/paginator/index.metadata.json +1 -1
  426. package/typings/esm5/paginator/paginator.d.ts +7 -3
  427. package/typings/esm5/progress-bar/index.metadata.json +1 -1
  428. package/typings/esm5/radio/index.metadata.json +1 -1
  429. package/typings/esm5/radio/radio.d.ts +2 -6
  430. package/typings/esm5/select/index.metadata.json +1 -1
  431. package/typings/esm5/select/select.d.ts +12 -2
  432. package/typings/esm5/sidenav/drawer.d.ts +9 -2
  433. package/typings/esm5/sidenav/index.metadata.json +1 -1
  434. package/typings/esm5/slide-toggle/index.metadata.json +1 -1
  435. package/typings/esm5/slider/index.metadata.json +1 -1
  436. package/typings/esm5/snack-bar/index.metadata.json +1 -1
  437. package/typings/esm5/sort/index.metadata.json +1 -1
  438. package/typings/esm5/stepper/index.metadata.json +1 -1
  439. package/typings/esm5/stepper/step-header.d.ts +3 -5
  440. package/typings/esm5/tabs/index.d.ts +5 -5
  441. package/typings/esm5/tabs/index.metadata.json +1 -1
  442. package/typings/esm5/tabs/tab-body.d.ts +2 -0
  443. package/typings/esm5/tabs/tab-group.d.ts +11 -2
  444. package/typings/esm5/tabs/tab-header.d.ts +9 -3
  445. package/typings/esm5/toolbar/index.metadata.json +1 -1
  446. package/typings/esm5/tooltip/index.metadata.json +1 -1
  447. package/typings/esm5/tree/data-source/flat-data-source.d.ts +2 -2
  448. package/typings/esm5/tree/index.metadata.json +1 -1
  449. package/typings/expansion/expansion-panel-header.d.ts +2 -2
  450. package/typings/expansion/expansion-panel.d.ts +19 -2
  451. package/typings/expansion/index.metadata.json +1 -1
  452. package/typings/form-field/form-field.d.ts +15 -4
  453. package/typings/form-field/index.metadata.json +1 -1
  454. package/typings/grid-list/index.d.ts +1 -1
  455. package/typings/grid-list/index.metadata.json +1 -1
  456. package/typings/icon/index.metadata.json +1 -1
  457. package/typings/index.metadata.json +1 -1
  458. package/typings/list/index.metadata.json +1 -1
  459. package/typings/menu/index.d.ts +4 -4
  460. package/typings/menu/index.metadata.json +1 -1
  461. package/typings/menu/menu-directive.d.ts +1 -0
  462. package/typings/menu/menu-item.d.ts +2 -0
  463. package/typings/paginator/index.metadata.json +1 -1
  464. package/typings/paginator/paginator.d.ts +7 -3
  465. package/typings/progress-bar/index.metadata.json +1 -1
  466. package/typings/radio/index.metadata.json +1 -1
  467. package/typings/radio/radio.d.ts +2 -6
  468. package/typings/schematics/ng-add/theming/{custom-theme.d.ts → create-custom-theme.d.ts} +0 -0
  469. package/typings/select/index.metadata.json +1 -1
  470. package/typings/select/select.d.ts +12 -2
  471. package/typings/sidenav/drawer.d.ts +9 -2
  472. package/typings/sidenav/index.metadata.json +1 -1
  473. package/typings/slide-toggle/index.metadata.json +1 -1
  474. package/typings/slider/index.metadata.json +1 -1
  475. package/typings/snack-bar/index.metadata.json +1 -1
  476. package/typings/sort/index.metadata.json +1 -1
  477. package/typings/stepper/index.metadata.json +1 -1
  478. package/typings/stepper/step-header.d.ts +3 -5
  479. package/typings/tabs/index.d.ts +5 -5
  480. package/typings/tabs/index.metadata.json +1 -1
  481. package/typings/tabs/tab-body.d.ts +2 -0
  482. package/typings/tabs/tab-group.d.ts +11 -2
  483. package/typings/tabs/tab-header.d.ts +9 -3
  484. package/typings/toolbar/index.metadata.json +1 -1
  485. package/typings/tooltip/index.metadata.json +1 -1
  486. package/typings/tree/data-source/flat-data-source.d.ts +2 -2
  487. package/typings/tree/index.metadata.json +1 -1
  488. package/schematics/ng-add/theming/custom-theme.js.map +0 -1
@@ -25,14 +25,17 @@ import { GestureConfig, MatCommonModule } from '@angular/material/core';
25
25
 
26
26
  /**
27
27
  * @fileoverview added by tsickle
28
- * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
28
+ * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
29
29
  */
30
- /** *
30
+ /**
31
31
  * Animations used by MatTooltip.
32
32
  * \@docs-private
33
- @type {?} */
33
+ * @type {?}
34
+ */
34
35
  var matTooltipAnimations = {
35
- /** Animation that transitions a tooltip in and out. */
36
+ /**
37
+ * Animation that transitions a tooltip in and out.
38
+ */
36
39
  tooltipState: trigger('state', [
37
40
  state('initial, void, hidden', style({ opacity: 0, transform: 'scale(0)' })),
38
41
  state('visible', style({ transform: 'scale(1)' })),
@@ -47,15 +50,17 @@ var matTooltipAnimations = {
47
50
 
48
51
  /**
49
52
  * @fileoverview added by tsickle
50
- * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
53
+ * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
51
54
  */
52
- /** *
55
+ /**
53
56
  * Time in ms to throttle repositioning after scroll events.
54
- @type {?} */
57
+ * @type {?}
58
+ */
55
59
  var SCROLL_THROTTLE_MS = 20;
56
- /** *
60
+ /**
57
61
  * CSS class that will be attached to the overlay panel.
58
- @type {?} */
62
+ * @type {?}
63
+ */
59
64
  var TOOLTIP_PANEL_CLASS = 'mat-tooltip-panel';
60
65
  /**
61
66
  * Creates an error to be thrown if the user supplied an invalid tooltip position.
@@ -66,9 +71,10 @@ var TOOLTIP_PANEL_CLASS = 'mat-tooltip-panel';
66
71
  function getMatTooltipInvalidPositionError(position) {
67
72
  return Error("Tooltip position \"" + position + "\" is invalid.");
68
73
  }
69
- /** *
74
+ /**
70
75
  * Injection token that determines the scroll handling while a tooltip is visible.
71
- @type {?} */
76
+ * @type {?}
77
+ */
72
78
  var MAT_TOOLTIP_SCROLL_STRATEGY = new InjectionToken('mat-tooltip-scroll-strategy');
73
79
  /**
74
80
  * \@docs-private
@@ -78,17 +84,19 @@ var MAT_TOOLTIP_SCROLL_STRATEGY = new InjectionToken('mat-tooltip-scroll-strateg
78
84
  function MAT_TOOLTIP_SCROLL_STRATEGY_FACTORY(overlay) {
79
85
  return function () { return overlay.scrollStrategies.reposition({ scrollThrottle: SCROLL_THROTTLE_MS }); };
80
86
  }
81
- /** *
87
+ /**
82
88
  * \@docs-private
83
- @type {?} */
89
+ * @type {?}
90
+ */
84
91
  var MAT_TOOLTIP_SCROLL_STRATEGY_FACTORY_PROVIDER = {
85
92
  provide: MAT_TOOLTIP_SCROLL_STRATEGY,
86
93
  deps: [Overlay],
87
94
  useFactory: MAT_TOOLTIP_SCROLL_STRATEGY_FACTORY,
88
95
  };
89
- /** *
96
+ /**
90
97
  * Injection token to be used to override the default options for `matTooltip`.
91
- @type {?} */
98
+ * @type {?}
99
+ */
92
100
  var MAT_TOOLTIP_DEFAULT_OPTIONS = new InjectionToken('mat-tooltip-default-options', {
93
101
  providedIn: 'root',
94
102
  factory: MAT_TOOLTIP_DEFAULT_OPTIONS_FACTORY
@@ -142,9 +150,9 @@ var MatTooltip = /** @class */ (function () {
142
150
  /** @type {?} */
143
151
  var element = _elementRef.nativeElement;
144
152
  /** @type {?} */
145
- var elementStyle = /** @type {?} */ (element.style);
153
+ var elementStyle = (/** @type {?} */ (element.style));
146
154
  /** @type {?} */
147
- var hasGestures = typeof window === 'undefined' || (/** @type {?} */ (window)).Hammer || hammerLoader;
155
+ var hasGestures = typeof window === 'undefined' || ((/** @type {?} */ (window))).Hammer || hammerLoader;
148
156
  // The mouse events shouldn't be bound on mobile devices, because they can prevent the
149
157
  // first tap from firing its click event or can cause the tooltip to open for clicks.
150
158
  if (!platform.IOS && !platform.ANDROID) {
@@ -199,7 +207,7 @@ var MatTooltip = /** @class */ (function () {
199
207
  if (this._overlayRef) {
200
208
  this._updatePosition();
201
209
  if (this._tooltipInstance) {
202
- /** @type {?} */ ((this._tooltipInstance)).show(0);
210
+ (/** @type {?} */ (this._tooltipInstance)).show(0);
203
211
  }
204
212
  this._overlayRef.updatePosition();
205
213
  }
@@ -317,7 +325,7 @@ var MatTooltip = /** @class */ (function () {
317
325
  var _this = this;
318
326
  if (delay === void 0) { delay = this.showDelay; }
319
327
  if (this.disabled || !this.message || (this._isTooltipVisible() &&
320
- !/** @type {?} */ ((this._tooltipInstance))._showTimeoutId && !/** @type {?} */ ((this._tooltipInstance))._hideTimeoutId)) {
328
+ !(/** @type {?} */ (this._tooltipInstance))._showTimeoutId && !(/** @type {?} */ (this._tooltipInstance))._hideTimeoutId)) {
321
329
  return;
322
330
  }
323
331
  /** @type {?} */
@@ -329,8 +337,8 @@ var MatTooltip = /** @class */ (function () {
329
337
  .pipe(takeUntil(this._destroyed))
330
338
  .subscribe(function () { return _this._detach(); });
331
339
  this._setTooltipClass(this._tooltipClass);
332
- this._updateTooltipMessage(); /** @type {?} */
333
- ((this._tooltipInstance)).show(delay);
340
+ this._updateTooltipMessage();
341
+ (/** @type {?} */ (this._tooltipInstance)).show(delay);
334
342
  };
335
343
  /** Hides the tooltip after the delay in ms, defaults to tooltip-delay-hide or 0ms if no input */
336
344
  /**
@@ -402,12 +410,15 @@ var MatTooltip = /** @class */ (function () {
402
410
  function () {
403
411
  this.hide(this._defaultOptions.touchendHideDelay);
404
412
  };
413
+ /** Create the overlay config and position strategy */
405
414
  /**
406
415
  * Create the overlay config and position strategy
416
+ * @private
407
417
  * @return {?}
408
418
  */
409
419
  MatTooltip.prototype._createOverlay = /**
410
420
  * Create the overlay config and position strategy
421
+ * @private
411
422
  * @return {?}
412
423
  */
413
424
  function () {
@@ -415,6 +426,7 @@ var MatTooltip = /** @class */ (function () {
415
426
  if (this._overlayRef) {
416
427
  return this._overlayRef;
417
428
  }
429
+ // Create connected position strategy that listens for scroll events to reposition.
418
430
  /** @type {?} */
419
431
  var strategy = this._overlay.position()
420
432
  .flexibleConnectedTo(this._elementRef)
@@ -446,12 +458,15 @@ var MatTooltip = /** @class */ (function () {
446
458
  .subscribe(function () { return _this._detach(); });
447
459
  return this._overlayRef;
448
460
  };
461
+ /** Detaches the currently-attached tooltip. */
449
462
  /**
450
463
  * Detaches the currently-attached tooltip.
464
+ * @private
451
465
  * @return {?}
452
466
  */
453
467
  MatTooltip.prototype._detach = /**
454
468
  * Detaches the currently-attached tooltip.
469
+ * @private
455
470
  * @return {?}
456
471
  */
457
472
  function () {
@@ -460,17 +475,20 @@ var MatTooltip = /** @class */ (function () {
460
475
  }
461
476
  this._tooltipInstance = null;
462
477
  };
478
+ /** Updates the position of the current tooltip. */
463
479
  /**
464
480
  * Updates the position of the current tooltip.
481
+ * @private
465
482
  * @return {?}
466
483
  */
467
484
  MatTooltip.prototype._updatePosition = /**
468
485
  * Updates the position of the current tooltip.
486
+ * @private
469
487
  * @return {?}
470
488
  */
471
489
  function () {
472
490
  /** @type {?} */
473
- var position = /** @type {?} */ (((this._overlayRef)).getConfig().positionStrategy);
491
+ var position = (/** @type {?} */ ((/** @type {?} */ (this._overlayRef)).getConfig().positionStrategy));
474
492
  /** @type {?} */
475
493
  var origin = this._getOrigin();
476
494
  /** @type {?} */
@@ -564,12 +582,15 @@ var MatTooltip = /** @class */ (function () {
564
582
  fallback: { overlayX: x, overlayY: y }
565
583
  };
566
584
  };
585
+ /** Updates the tooltip message and repositions the overlay according to the new message length */
567
586
  /**
568
587
  * Updates the tooltip message and repositions the overlay according to the new message length
588
+ * @private
569
589
  * @return {?}
570
590
  */
571
591
  MatTooltip.prototype._updateTooltipMessage = /**
572
592
  * Updates the tooltip message and repositions the overlay according to the new message length
593
+ * @private
573
594
  * @return {?}
574
595
  */
575
596
  function () {
@@ -581,18 +602,21 @@ var MatTooltip = /** @class */ (function () {
581
602
  this._tooltipInstance._markForCheck();
582
603
  this._ngZone.onMicrotaskEmpty.asObservable().pipe(take(1), takeUntil(this._destroyed)).subscribe(function () {
583
604
  if (_this._tooltipInstance) {
584
- /** @type {?} */ ((_this._overlayRef)).updatePosition();
605
+ (/** @type {?} */ (_this._overlayRef)).updatePosition();
585
606
  }
586
607
  });
587
608
  }
588
609
  };
610
+ /** Updates the tooltip class */
589
611
  /**
590
612
  * Updates the tooltip class
613
+ * @private
591
614
  * @param {?} tooltipClass
592
615
  * @return {?}
593
616
  */
594
617
  MatTooltip.prototype._setTooltipClass = /**
595
618
  * Updates the tooltip class
619
+ * @private
596
620
  * @param {?} tooltipClass
597
621
  * @return {?}
598
622
  */
@@ -602,14 +626,17 @@ var MatTooltip = /** @class */ (function () {
602
626
  this._tooltipInstance._markForCheck();
603
627
  }
604
628
  };
629
+ /** Inverts an overlay position. */
605
630
  /**
606
631
  * Inverts an overlay position.
632
+ * @private
607
633
  * @param {?} x
608
634
  * @param {?} y
609
635
  * @return {?}
610
636
  */
611
637
  MatTooltip.prototype._invertPosition = /**
612
638
  * Inverts an overlay position.
639
+ * @private
613
640
  * @param {?} x
614
641
  * @param {?} y
615
642
  * @return {?}
@@ -797,7 +824,7 @@ var TooltipComponent = /** @class */ (function () {
797
824
  */
798
825
  function (event) {
799
826
  /** @type {?} */
800
- var toState = /** @type {?} */ (event.toState);
827
+ var toState = (/** @type {?} */ (event.toState));
801
828
  if (toState === 'hidden' && !this.isVisible()) {
802
829
  this._onHide.next();
803
830
  }
@@ -850,7 +877,7 @@ var TooltipComponent = /** @class */ (function () {
850
877
  TooltipComponent.decorators = [
851
878
  { type: Component, args: [{selector: 'mat-tooltip-component',
852
879
  template: "<div class=\"mat-tooltip\" [ngClass]=\"tooltipClass\" [class.mat-tooltip-handset]=\"(_isHandset | async)?.matches\" [@state]=\"_visibility\" (@state.start)=\"_animationStart()\" (@state.done)=\"_animationDone($event)\">{{message}}</div>",
853
- styles: [".mat-tooltip-panel{pointer-events:none!important}.mat-tooltip{color:#fff;border-radius:4px;margin:14px;max-width:250px;padding-left:8px;padding-right:8px;overflow:hidden;text-overflow:ellipsis}@media screen and (-ms-high-contrast:active){.mat-tooltip{outline:solid 1px}}.mat-tooltip-handset{margin:24px;padding-left:16px;padding-right:16px}"],
880
+ styles: [".mat-tooltip-panel{pointer-events:none!important}.mat-tooltip{color:#fff;border-radius:4px;margin:14px;max-width:250px;padding-left:8px;padding-right:8px;overflow:hidden;text-overflow:ellipsis}@media (-ms-high-contrast:active){.mat-tooltip{outline:solid 1px}}.mat-tooltip-handset{margin:24px;padding-left:16px;padding-right:16px}"],
854
881
  encapsulation: ViewEncapsulation.None,
855
882
  changeDetection: ChangeDetectionStrategy.OnPush,
856
883
  animations: [matTooltipAnimations.tooltipState],
@@ -873,7 +900,7 @@ var TooltipComponent = /** @class */ (function () {
873
900
 
874
901
  /**
875
902
  * @fileoverview added by tsickle
876
- * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
903
+ * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
877
904
  */
878
905
  var MatTooltipModule = /** @class */ (function () {
879
906
  function MatTooltipModule() {
@@ -900,12 +927,12 @@ var MatTooltipModule = /** @class */ (function () {
900
927
 
901
928
  /**
902
929
  * @fileoverview added by tsickle
903
- * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
930
+ * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
904
931
  */
905
932
 
906
933
  /**
907
934
  * @fileoverview added by tsickle
908
- * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
935
+ * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
909
936
  */
910
937
 
911
938
  export { MatTooltipModule, getMatTooltipInvalidPositionError, MAT_TOOLTIP_SCROLL_STRATEGY_FACTORY, MAT_TOOLTIP_DEFAULT_OPTIONS_FACTORY, SCROLL_THROTTLE_MS, TOOLTIP_PANEL_CLASS, MAT_TOOLTIP_SCROLL_STRATEGY, MAT_TOOLTIP_SCROLL_STRATEGY_FACTORY_PROVIDER, MAT_TOOLTIP_DEFAULT_OPTIONS, MatTooltip, TooltipComponent, matTooltipAnimations };
@@ -1 +1 @@
1
- {"version":3,"file":"tooltip.es5.js","sources":["../../../src/lib/tooltip/tooltip-module.ts","../../../src/lib/tooltip/tooltip.ts","../../../src/lib/tooltip/tooltip-animations.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {OverlayModule} from '@angular/cdk/overlay';\nimport {A11yModule} from '@angular/cdk/a11y';\nimport {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {GestureConfig, MatCommonModule} from '@angular/material/core';\nimport {HAMMER_GESTURE_CONFIG} from '@angular/platform-browser';\nimport {\n MatTooltip,\n TooltipComponent,\n MAT_TOOLTIP_SCROLL_STRATEGY_FACTORY_PROVIDER,\n} from './tooltip';\n\n@NgModule({\n imports: [\n A11yModule,\n CommonModule,\n OverlayModule,\n MatCommonModule,\n ],\n exports: [MatTooltip, TooltipComponent, MatCommonModule],\n declarations: [MatTooltip, TooltipComponent],\n entryComponents: [TooltipComponent],\n providers: [\n MAT_TOOLTIP_SCROLL_STRATEGY_FACTORY_PROVIDER,\n {provide: HAMMER_GESTURE_CONFIG, useClass: GestureConfig},\n ]\n})\nexport class MatTooltipModule {}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport {AnimationEvent} from '@angular/animations';\nimport {AriaDescriber, FocusMonitor} from '@angular/cdk/a11y';\nimport {Directionality} from '@angular/cdk/bidi';\nimport {coerceBooleanProperty} from '@angular/cdk/coercion';\nimport {ESCAPE} from '@angular/cdk/keycodes';\nimport {BreakpointObserver, Breakpoints, BreakpointState} from '@angular/cdk/layout';\nimport {HammerLoader, HAMMER_LOADER} from '@angular/platform-browser';\nimport {\n FlexibleConnectedPositionStrategy,\n HorizontalConnectionPos,\n OriginConnectionPosition,\n Overlay,\n OverlayConnectionPosition,\n OverlayRef,\n VerticalConnectionPos,\n ScrollStrategy,\n} from '@angular/cdk/overlay';\nimport {ScrollDispatcher} from '@angular/cdk/scrolling';\nimport {Platform} from '@angular/cdk/platform';\nimport {ComponentPortal} from '@angular/cdk/portal';\nimport {take, takeUntil} from 'rxjs/operators';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Directive,\n ElementRef,\n Inject,\n InjectionToken,\n Input,\n NgZone,\n OnDestroy,\n Optional,\n ViewContainerRef,\n ViewEncapsulation,\n} from '@angular/core';\nimport {Subject, Observable} from 'rxjs';\nimport {matTooltipAnimations} from './tooltip-animations';\n\n\nexport type TooltipPosition = 'left' | 'right' | 'above' | 'below' | 'before' | 'after';\n\n/** Time in ms to throttle repositioning after scroll events. */\nexport const SCROLL_THROTTLE_MS = 20;\n\n/** CSS class that will be attached to the overlay panel. */\nexport const TOOLTIP_PANEL_CLASS = 'mat-tooltip-panel';\n\n/**\n * Creates an error to be thrown if the user supplied an invalid tooltip position.\n * @docs-private\n */\nexport function getMatTooltipInvalidPositionError(position: string) {\n return Error(`Tooltip position \"${position}\" is invalid.`);\n}\n\n/** Injection token that determines the scroll handling while a tooltip is visible. */\nexport const MAT_TOOLTIP_SCROLL_STRATEGY =\n new InjectionToken<() => ScrollStrategy>('mat-tooltip-scroll-strategy');\n\n/** @docs-private */\nexport function MAT_TOOLTIP_SCROLL_STRATEGY_FACTORY(overlay: Overlay): () => ScrollStrategy {\n return () => overlay.scrollStrategies.reposition({scrollThrottle: SCROLL_THROTTLE_MS});\n}\n\n/** @docs-private */\nexport const MAT_TOOLTIP_SCROLL_STRATEGY_FACTORY_PROVIDER = {\n provide: MAT_TOOLTIP_SCROLL_STRATEGY,\n deps: [Overlay],\n useFactory: MAT_TOOLTIP_SCROLL_STRATEGY_FACTORY,\n};\n\n/** Default `matTooltip` options that can be overridden. */\nexport interface MatTooltipDefaultOptions {\n showDelay: number;\n hideDelay: number;\n touchendHideDelay: number;\n}\n\n/** Injection token to be used to override the default options for `matTooltip`. */\nexport const MAT_TOOLTIP_DEFAULT_OPTIONS =\n new InjectionToken<MatTooltipDefaultOptions>('mat-tooltip-default-options', {\n providedIn: 'root',\n factory: MAT_TOOLTIP_DEFAULT_OPTIONS_FACTORY\n });\n\n/** @docs-private */\nexport function MAT_TOOLTIP_DEFAULT_OPTIONS_FACTORY(): MatTooltipDefaultOptions {\n return {\n showDelay: 0,\n hideDelay: 0,\n touchendHideDelay: 1500,\n };\n}\n\n/**\n * Directive that attaches a material design tooltip to the host element. Animates the showing and\n * hiding of a tooltip provided position (defaults to below the element).\n *\n * https://material.io/design/components/tooltips.html\n */\n@Directive({\n selector: '[matTooltip]',\n exportAs: 'matTooltip',\n host: {\n '(longpress)': 'show()',\n '(keydown)': '_handleKeydown($event)',\n '(touchend)': '_handleTouchend()',\n },\n})\nexport class MatTooltip implements OnDestroy {\n _overlayRef: OverlayRef | null;\n _tooltipInstance: TooltipComponent | null;\n\n private _portal: ComponentPortal<TooltipComponent>;\n private _position: TooltipPosition = 'below';\n private _disabled: boolean = false;\n private _tooltipClass: string|string[]|Set<string>|{[key: string]: any};\n private _scrollStrategy: () => ScrollStrategy;\n\n /** Allows the user to define the position of the tooltip relative to the parent element */\n @Input('matTooltipPosition')\n get position(): TooltipPosition { return this._position; }\n set position(value: TooltipPosition) {\n if (value !== this._position) {\n this._position = value;\n\n if (this._overlayRef) {\n this._updatePosition();\n\n if (this._tooltipInstance) {\n this._tooltipInstance!.show(0);\n }\n\n this._overlayRef.updatePosition();\n }\n }\n }\n\n /** Disables the display of the tooltip. */\n @Input('matTooltipDisabled')\n get disabled(): boolean { return this._disabled; }\n set disabled(value) {\n this._disabled = coerceBooleanProperty(value);\n\n // If tooltip is disabled, hide immediately.\n if (this._disabled) {\n this.hide(0);\n }\n }\n\n /** The default delay in ms before showing the tooltip after show is called */\n @Input('matTooltipShowDelay') showDelay = this._defaultOptions.showDelay;\n\n /** The default delay in ms before hiding the tooltip after hide is called */\n @Input('matTooltipHideDelay') hideDelay = this._defaultOptions.hideDelay;\n\n private _message = '';\n\n /** The message to be displayed in the tooltip */\n @Input('matTooltip')\n get message() { return this._message; }\n set message(value: string) {\n this._ariaDescriber.removeDescription(this._elementRef.nativeElement, this._message);\n\n // If the message is not a string (e.g. number), convert it to a string and trim it.\n this._message = value != null ? `${value}`.trim() : '';\n\n if (!this._message && this._isTooltipVisible()) {\n this.hide(0);\n } else {\n this._updateTooltipMessage();\n this._ariaDescriber.describe(this._elementRef.nativeElement, this.message);\n }\n }\n\n /** Classes to be passed to the tooltip. Supports the same syntax as `ngClass`. */\n @Input('matTooltipClass')\n get tooltipClass() { return this._tooltipClass; }\n set tooltipClass(value: string|string[]|Set<string>|{[key: string]: any}) {\n this._tooltipClass = value;\n if (this._tooltipInstance) {\n this._setTooltipClass(this._tooltipClass);\n }\n }\n\n private _manualListeners = new Map<string, EventListenerOrEventListenerObject>();\n\n /** Emits when the component is destroyed. */\n private readonly _destroyed = new Subject<void>();\n\n constructor(\n private _overlay: Overlay,\n private _elementRef: ElementRef<HTMLElement>,\n private _scrollDispatcher: ScrollDispatcher,\n private _viewContainerRef: ViewContainerRef,\n private _ngZone: NgZone,\n platform: Platform,\n private _ariaDescriber: AriaDescriber,\n private _focusMonitor: FocusMonitor,\n @Inject(MAT_TOOLTIP_SCROLL_STRATEGY) scrollStrategy: any,\n @Optional() private _dir: Directionality,\n @Optional() @Inject(MAT_TOOLTIP_DEFAULT_OPTIONS)\n private _defaultOptions: MatTooltipDefaultOptions,\n @Optional() @Inject(HAMMER_LOADER) hammerLoader?: HammerLoader) {\n\n this._scrollStrategy = scrollStrategy;\n const element: HTMLElement = _elementRef.nativeElement;\n const elementStyle = element.style as CSSStyleDeclaration & {webkitUserDrag: string};\n const hasGestures = typeof window === 'undefined' || (window as any).Hammer || hammerLoader;\n\n // The mouse events shouldn't be bound on mobile devices, because they can prevent the\n // first tap from firing its click event or can cause the tooltip to open for clicks.\n if (!platform.IOS && !platform.ANDROID) {\n this._manualListeners\n .set('mouseenter', () => this.show())\n .set('mouseleave', () => this.hide());\n } else if (!hasGestures) {\n // If Hammerjs isn't loaded, fall back to showing on `touchstart`, otherwise\n // there's no way for the user to trigger the tooltip on a touch device.\n this._manualListeners.set('touchstart', () => this.show());\n }\n\n this._manualListeners.forEach((listener, event) => element.addEventListener(event, listener));\n\n if (element.nodeName === 'INPUT' || element.nodeName === 'TEXTAREA') {\n // When we bind a gesture event on an element (in this case `longpress`), HammerJS\n // will add some inline styles by default, including `user-select: none`. This is\n // problematic on iOS and in Safari, because it will prevent users from typing in inputs.\n // Since `user-select: none` is not needed for the `longpress` event and can cause unexpected\n // behavior for text fields, we always clear the `user-select` to avoid such issues.\n elementStyle.webkitUserSelect = elementStyle.userSelect = elementStyle.msUserSelect = '';\n }\n\n // Hammer applies `-webkit-user-drag: none` on all elements by default,\n // which breaks the native drag&drop. If the consumer explicitly made\n // the element draggable, clear the `-webkit-user-drag`.\n if (element.draggable && elementStyle.webkitUserDrag === 'none') {\n elementStyle.webkitUserDrag = '';\n }\n\n _focusMonitor.monitor(_elementRef).pipe(takeUntil(this._destroyed)).subscribe(origin => {\n // Note that the focus monitor runs outside the Angular zone.\n if (!origin) {\n _ngZone.run(() => this.hide(0));\n } else if (origin === 'keyboard') {\n _ngZone.run(() => this.show());\n }\n });\n }\n\n /**\n * Dispose the tooltip when destroyed.\n */\n ngOnDestroy() {\n if (this._overlayRef) {\n this._overlayRef.dispose();\n this._tooltipInstance = null;\n }\n\n // Clean up the event listeners set in the constructor\n this._manualListeners.forEach((listener, event) => {\n this._elementRef.nativeElement.removeEventListener(event, listener);\n });\n this._manualListeners.clear();\n\n this._destroyed.next();\n this._destroyed.complete();\n\n this._ariaDescriber.removeDescription(this._elementRef.nativeElement, this.message);\n this._focusMonitor.stopMonitoring(this._elementRef);\n }\n\n /** Shows the tooltip after the delay in ms, defaults to tooltip-delay-show or 0ms if no input */\n show(delay: number = this.showDelay): void {\n if (this.disabled || !this.message || (this._isTooltipVisible() &&\n !this._tooltipInstance!._showTimeoutId && !this._tooltipInstance!._hideTimeoutId)) {\n return;\n }\n\n const overlayRef = this._createOverlay();\n\n this._detach();\n this._portal = this._portal || new ComponentPortal(TooltipComponent, this._viewContainerRef);\n this._tooltipInstance = overlayRef.attach(this._portal).instance;\n this._tooltipInstance.afterHidden()\n .pipe(takeUntil(this._destroyed))\n .subscribe(() => this._detach());\n this._setTooltipClass(this._tooltipClass);\n this._updateTooltipMessage();\n this._tooltipInstance!.show(delay);\n }\n\n /** Hides the tooltip after the delay in ms, defaults to tooltip-delay-hide or 0ms if no input */\n hide(delay: number = this.hideDelay): void {\n if (this._tooltipInstance) {\n this._tooltipInstance.hide(delay);\n }\n }\n\n /** Shows/hides the tooltip */\n toggle(): void {\n this._isTooltipVisible() ? this.hide() : this.show();\n }\n\n /** Returns true if the tooltip is currently visible to the user */\n _isTooltipVisible(): boolean {\n return !!this._tooltipInstance && this._tooltipInstance.isVisible();\n }\n\n /** Handles the keydown events on the host element. */\n _handleKeydown(e: KeyboardEvent) {\n if (this._isTooltipVisible() && e.keyCode === ESCAPE) {\n e.stopPropagation();\n this.hide(0);\n }\n }\n\n /** Handles the touchend events on the host element. */\n _handleTouchend() {\n this.hide(this._defaultOptions.touchendHideDelay);\n }\n\n /** Create the overlay config and position strategy */\n private _createOverlay(): OverlayRef {\n if (this._overlayRef) {\n return this._overlayRef;\n }\n\n // Create connected position strategy that listens for scroll events to reposition.\n const strategy = this._overlay.position()\n .flexibleConnectedTo(this._elementRef)\n .withTransformOriginOn('.mat-tooltip')\n .withFlexibleDimensions(false)\n .withViewportMargin(8);\n\n const scrollableAncestors = this._scrollDispatcher\n .getAncestorScrollContainers(this._elementRef);\n\n strategy.withScrollableContainers(scrollableAncestors);\n\n strategy.positionChanges.pipe(takeUntil(this._destroyed)).subscribe(change => {\n if (this._tooltipInstance) {\n if (change.scrollableViewProperties.isOverlayClipped && this._tooltipInstance.isVisible()) {\n // After position changes occur and the overlay is clipped by\n // a parent scrollable then close the tooltip.\n this._ngZone.run(() => this.hide(0));\n }\n }\n });\n\n this._overlayRef = this._overlay.create({\n direction: this._dir,\n positionStrategy: strategy,\n panelClass: TOOLTIP_PANEL_CLASS,\n scrollStrategy: this._scrollStrategy()\n });\n\n this._updatePosition();\n\n this._overlayRef.detachments()\n .pipe(takeUntil(this._destroyed))\n .subscribe(() => this._detach());\n\n return this._overlayRef;\n }\n\n /** Detaches the currently-attached tooltip. */\n private _detach() {\n if (this._overlayRef && this._overlayRef.hasAttached()) {\n this._overlayRef.detach();\n }\n\n this._tooltipInstance = null;\n }\n\n /** Updates the position of the current tooltip. */\n private _updatePosition() {\n const position =\n this._overlayRef!.getConfig().positionStrategy as FlexibleConnectedPositionStrategy;\n const origin = this._getOrigin();\n const overlay = this._getOverlayPosition();\n\n position.withPositions([\n {...origin.main, ...overlay.main},\n {...origin.fallback, ...overlay.fallback}\n ]);\n }\n\n /**\n * Returns the origin position and a fallback position based on the user's position preference.\n * The fallback position is the inverse of the origin (e.g. `'below' -> 'above'`).\n */\n _getOrigin(): {main: OriginConnectionPosition, fallback: OriginConnectionPosition} {\n const isLtr = !this._dir || this._dir.value == 'ltr';\n const position = this.position;\n let originPosition: OriginConnectionPosition;\n\n if (position == 'above' || position == 'below') {\n originPosition = {originX: 'center', originY: position == 'above' ? 'top' : 'bottom'};\n } else if (\n position == 'before' ||\n (position == 'left' && isLtr) ||\n (position == 'right' && !isLtr)) {\n originPosition = {originX: 'start', originY: 'center'};\n } else if (\n position == 'after' ||\n (position == 'right' && isLtr) ||\n (position == 'left' && !isLtr)) {\n originPosition = {originX: 'end', originY: 'center'};\n } else {\n throw getMatTooltipInvalidPositionError(position);\n }\n\n const {x, y} = this._invertPosition(originPosition.originX, originPosition.originY);\n\n return {\n main: originPosition,\n fallback: {originX: x, originY: y}\n };\n }\n\n /** Returns the overlay position and a fallback position based on the user's preference */\n _getOverlayPosition(): {main: OverlayConnectionPosition, fallback: OverlayConnectionPosition} {\n const isLtr = !this._dir || this._dir.value == 'ltr';\n const position = this.position;\n let overlayPosition: OverlayConnectionPosition;\n\n if (position == 'above') {\n overlayPosition = {overlayX: 'center', overlayY: 'bottom'};\n } else if (position == 'below') {\n overlayPosition = {overlayX: 'center', overlayY: 'top'};\n } else if (\n position == 'before' ||\n (position == 'left' && isLtr) ||\n (position == 'right' && !isLtr)) {\n overlayPosition = {overlayX: 'end', overlayY: 'center'};\n } else if (\n position == 'after' ||\n (position == 'right' && isLtr) ||\n (position == 'left' && !isLtr)) {\n overlayPosition = {overlayX: 'start', overlayY: 'center'};\n } else {\n throw getMatTooltipInvalidPositionError(position);\n }\n\n const {x, y} = this._invertPosition(overlayPosition.overlayX, overlayPosition.overlayY);\n\n return {\n main: overlayPosition,\n fallback: {overlayX: x, overlayY: y}\n };\n }\n\n /** Updates the tooltip message and repositions the overlay according to the new message length */\n private _updateTooltipMessage() {\n // Must wait for the message to be painted to the tooltip so that the overlay can properly\n // calculate the correct positioning based on the size of the text.\n if (this._tooltipInstance) {\n this._tooltipInstance.message = this.message;\n this._tooltipInstance._markForCheck();\n\n this._ngZone.onMicrotaskEmpty.asObservable().pipe(\n take(1),\n takeUntil(this._destroyed)\n ).subscribe(() => {\n if (this._tooltipInstance) {\n this._overlayRef!.updatePosition();\n }\n });\n }\n }\n\n /** Updates the tooltip class */\n private _setTooltipClass(tooltipClass: string|string[]|Set<string>|{[key: string]: any}) {\n if (this._tooltipInstance) {\n this._tooltipInstance.tooltipClass = tooltipClass;\n this._tooltipInstance._markForCheck();\n }\n }\n\n /** Inverts an overlay position. */\n private _invertPosition(x: HorizontalConnectionPos, y: VerticalConnectionPos) {\n if (this.position === 'above' || this.position === 'below') {\n if (y === 'top') {\n y = 'bottom';\n } else if (y === 'bottom') {\n y = 'top';\n }\n } else {\n if (x === 'end') {\n x = 'start';\n } else if (x === 'start') {\n x = 'end';\n }\n }\n\n return {x, y};\n }\n}\n\nexport type TooltipVisibility = 'initial' | 'visible' | 'hidden';\n\n/**\n * Internal component that wraps the tooltip's content.\n * @docs-private\n */\n@Component({\n moduleId: module.id,\n selector: 'mat-tooltip-component',\n templateUrl: 'tooltip.html',\n styleUrls: ['tooltip.css'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [matTooltipAnimations.tooltipState],\n host: {\n // Forces the element to have a layout in IE and Edge. This fixes issues where the element\n // won't be rendered if the animations are disabled or there is no web animations polyfill.\n '[style.zoom]': '_visibility === \"visible\" ? 1 : null',\n '(body:click)': 'this._handleBodyInteraction()',\n 'aria-hidden': 'true',\n }\n})\nexport class TooltipComponent {\n /** Message to display in the tooltip */\n message: string;\n\n /** Classes to be added to the tooltip. Supports the same syntax as `ngClass`. */\n tooltipClass: string|string[]|Set<string>|{[key: string]: any};\n\n /** The timeout ID of any current timer set to show the tooltip */\n _showTimeoutId: number | null;\n\n /** The timeout ID of any current timer set to hide the tooltip */\n _hideTimeoutId: number | null;\n\n /** Property watched by the animation framework to show or hide the tooltip */\n _visibility: TooltipVisibility = 'initial';\n\n /** Whether interactions on the page should close the tooltip */\n private _closeOnInteraction: boolean = false;\n\n /** Subject for notifying that the tooltip has been hidden from the view */\n private readonly _onHide: Subject<any> = new Subject();\n\n /** Stream that emits whether the user has a handset-sized display. */\n _isHandset: Observable<BreakpointState> = this._breakpointObserver.observe(Breakpoints.Handset);\n\n constructor(\n private _changeDetectorRef: ChangeDetectorRef,\n private _breakpointObserver: BreakpointObserver) {}\n\n /**\n * Shows the tooltip with an animation originating from the provided origin\n * @param delay Amount of milliseconds to the delay showing the tooltip.\n */\n show(delay: number): void {\n // Cancel the delayed hide if it is scheduled\n if (this._hideTimeoutId) {\n clearTimeout(this._hideTimeoutId);\n this._hideTimeoutId = null;\n }\n\n // Body interactions should cancel the tooltip if there is a delay in showing.\n this._closeOnInteraction = true;\n this._showTimeoutId = setTimeout(() => {\n this._visibility = 'visible';\n this._showTimeoutId = null;\n\n // Mark for check so if any parent component has set the\n // ChangeDetectionStrategy to OnPush it will be checked anyways\n this._markForCheck();\n }, delay);\n }\n\n /**\n * Begins the animation to hide the tooltip after the provided delay in ms.\n * @param delay Amount of milliseconds to delay showing the tooltip.\n */\n hide(delay: number): void {\n // Cancel the delayed show if it is scheduled\n if (this._showTimeoutId) {\n clearTimeout(this._showTimeoutId);\n this._showTimeoutId = null;\n }\n\n this._hideTimeoutId = setTimeout(() => {\n this._visibility = 'hidden';\n this._hideTimeoutId = null;\n\n // Mark for check so if any parent component has set the\n // ChangeDetectionStrategy to OnPush it will be checked anyways\n this._markForCheck();\n }, delay);\n }\n\n /** Returns an observable that notifies when the tooltip has been hidden from view. */\n afterHidden(): Observable<void> {\n return this._onHide.asObservable();\n }\n\n /** Whether the tooltip is being displayed. */\n isVisible(): boolean {\n return this._visibility === 'visible';\n }\n\n _animationStart() {\n this._closeOnInteraction = false;\n }\n\n _animationDone(event: AnimationEvent): void {\n const toState = event.toState as TooltipVisibility;\n\n if (toState === 'hidden' && !this.isVisible()) {\n this._onHide.next();\n }\n\n if (toState === 'visible' || toState === 'hidden') {\n this._closeOnInteraction = true;\n }\n }\n\n /**\n * Interactions on the HTML body should close the tooltip immediately as defined in the\n * material design spec.\n * https://material.io/design/components/tooltips.html#behavior\n */\n _handleBodyInteraction(): void {\n if (this._closeOnInteraction) {\n this.hide(0);\n }\n }\n\n /**\n * Marks that the tooltip needs to be checked in the next change detection run.\n * Mainly used for rendering the initial text before positioning a tooltip, which\n * can be problematic in components with OnPush change detection.\n */\n _markForCheck(): void {\n this._changeDetectorRef.markForCheck();\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport {\n animate,\n AnimationTriggerMetadata,\n keyframes,\n state,\n style,\n transition,\n trigger,\n} from '@angular/animations';\n\n/**\n * Animations used by MatTooltip.\n * @docs-private\n */\nexport const matTooltipAnimations: {\n readonly tooltipState: AnimationTriggerMetadata;\n} = {\n /** Animation that transitions a tooltip in and out. */\n tooltipState: trigger('state', [\n state('initial, void, hidden', style({opacity: 0, transform: 'scale(0)'})),\n state('visible', style({transform: 'scale(1)'})),\n transition('* => visible', animate('200ms cubic-bezier(0, 0, 0.2, 1)', keyframes([\n style({opacity: 0, transform: 'scale(0)', offset: 0}),\n style({opacity: 0.5, transform: 'scale(0.99)', offset: 0.5}),\n style({opacity: 1, transform: 'scale(1)', offset: 1})\n ]))),\n transition('* => hidden', animate('100ms cubic-bezier(0, 0, 0.2, 1)', style({opacity: 0}))),\n ])\n};\n"],"names":["tslib_1.__assign"],"mappings":"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"}
1
+ {"version":3,"file":"tooltip.es5.js","sources":["../../../src/lib/tooltip/tooltip-module.ts","../../../src/lib/tooltip/tooltip.ts","../../../src/lib/tooltip/tooltip-animations.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {OverlayModule} from '@angular/cdk/overlay';\nimport {A11yModule} from '@angular/cdk/a11y';\nimport {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {GestureConfig, MatCommonModule} from '@angular/material/core';\nimport {HAMMER_GESTURE_CONFIG} from '@angular/platform-browser';\nimport {\n MatTooltip,\n TooltipComponent,\n MAT_TOOLTIP_SCROLL_STRATEGY_FACTORY_PROVIDER,\n} from './tooltip';\n\n@NgModule({\n imports: [\n A11yModule,\n CommonModule,\n OverlayModule,\n MatCommonModule,\n ],\n exports: [MatTooltip, TooltipComponent, MatCommonModule],\n declarations: [MatTooltip, TooltipComponent],\n entryComponents: [TooltipComponent],\n providers: [\n MAT_TOOLTIP_SCROLL_STRATEGY_FACTORY_PROVIDER,\n {provide: HAMMER_GESTURE_CONFIG, useClass: GestureConfig},\n ]\n})\nexport class MatTooltipModule {}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport {AnimationEvent} from '@angular/animations';\nimport {AriaDescriber, FocusMonitor} from '@angular/cdk/a11y';\nimport {Directionality} from '@angular/cdk/bidi';\nimport {coerceBooleanProperty} from '@angular/cdk/coercion';\nimport {ESCAPE} from '@angular/cdk/keycodes';\nimport {BreakpointObserver, Breakpoints, BreakpointState} from '@angular/cdk/layout';\nimport {HammerLoader, HAMMER_LOADER} from '@angular/platform-browser';\nimport {\n FlexibleConnectedPositionStrategy,\n HorizontalConnectionPos,\n OriginConnectionPosition,\n Overlay,\n OverlayConnectionPosition,\n OverlayRef,\n VerticalConnectionPos,\n ScrollStrategy,\n} from '@angular/cdk/overlay';\nimport {ScrollDispatcher} from '@angular/cdk/scrolling';\nimport {Platform} from '@angular/cdk/platform';\nimport {ComponentPortal} from '@angular/cdk/portal';\nimport {take, takeUntil} from 'rxjs/operators';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Directive,\n ElementRef,\n Inject,\n InjectionToken,\n Input,\n NgZone,\n OnDestroy,\n Optional,\n ViewContainerRef,\n ViewEncapsulation,\n} from '@angular/core';\nimport {Subject, Observable} from 'rxjs';\nimport {matTooltipAnimations} from './tooltip-animations';\n\n\nexport type TooltipPosition = 'left' | 'right' | 'above' | 'below' | 'before' | 'after';\n\n/** Time in ms to throttle repositioning after scroll events. */\nexport const SCROLL_THROTTLE_MS = 20;\n\n/** CSS class that will be attached to the overlay panel. */\nexport const TOOLTIP_PANEL_CLASS = 'mat-tooltip-panel';\n\n/**\n * Creates an error to be thrown if the user supplied an invalid tooltip position.\n * @docs-private\n */\nexport function getMatTooltipInvalidPositionError(position: string) {\n return Error(`Tooltip position \"${position}\" is invalid.`);\n}\n\n/** Injection token that determines the scroll handling while a tooltip is visible. */\nexport const MAT_TOOLTIP_SCROLL_STRATEGY =\n new InjectionToken<() => ScrollStrategy>('mat-tooltip-scroll-strategy');\n\n/** @docs-private */\nexport function MAT_TOOLTIP_SCROLL_STRATEGY_FACTORY(overlay: Overlay): () => ScrollStrategy {\n return () => overlay.scrollStrategies.reposition({scrollThrottle: SCROLL_THROTTLE_MS});\n}\n\n/** @docs-private */\nexport const MAT_TOOLTIP_SCROLL_STRATEGY_FACTORY_PROVIDER = {\n provide: MAT_TOOLTIP_SCROLL_STRATEGY,\n deps: [Overlay],\n useFactory: MAT_TOOLTIP_SCROLL_STRATEGY_FACTORY,\n};\n\n/** Default `matTooltip` options that can be overridden. */\nexport interface MatTooltipDefaultOptions {\n showDelay: number;\n hideDelay: number;\n touchendHideDelay: number;\n}\n\n/** Injection token to be used to override the default options for `matTooltip`. */\nexport const MAT_TOOLTIP_DEFAULT_OPTIONS =\n new InjectionToken<MatTooltipDefaultOptions>('mat-tooltip-default-options', {\n providedIn: 'root',\n factory: MAT_TOOLTIP_DEFAULT_OPTIONS_FACTORY\n });\n\n/** @docs-private */\nexport function MAT_TOOLTIP_DEFAULT_OPTIONS_FACTORY(): MatTooltipDefaultOptions {\n return {\n showDelay: 0,\n hideDelay: 0,\n touchendHideDelay: 1500,\n };\n}\n\n/**\n * Directive that attaches a material design tooltip to the host element. Animates the showing and\n * hiding of a tooltip provided position (defaults to below the element).\n *\n * https://material.io/design/components/tooltips.html\n */\n@Directive({\n selector: '[matTooltip]',\n exportAs: 'matTooltip',\n host: {\n '(longpress)': 'show()',\n '(keydown)': '_handleKeydown($event)',\n '(touchend)': '_handleTouchend()',\n },\n})\nexport class MatTooltip implements OnDestroy {\n _overlayRef: OverlayRef | null;\n _tooltipInstance: TooltipComponent | null;\n\n private _portal: ComponentPortal<TooltipComponent>;\n private _position: TooltipPosition = 'below';\n private _disabled: boolean = false;\n private _tooltipClass: string|string[]|Set<string>|{[key: string]: any};\n private _scrollStrategy: () => ScrollStrategy;\n\n /** Allows the user to define the position of the tooltip relative to the parent element */\n @Input('matTooltipPosition')\n get position(): TooltipPosition { return this._position; }\n set position(value: TooltipPosition) {\n if (value !== this._position) {\n this._position = value;\n\n if (this._overlayRef) {\n this._updatePosition();\n\n if (this._tooltipInstance) {\n this._tooltipInstance!.show(0);\n }\n\n this._overlayRef.updatePosition();\n }\n }\n }\n\n /** Disables the display of the tooltip. */\n @Input('matTooltipDisabled')\n get disabled(): boolean { return this._disabled; }\n set disabled(value) {\n this._disabled = coerceBooleanProperty(value);\n\n // If tooltip is disabled, hide immediately.\n if (this._disabled) {\n this.hide(0);\n }\n }\n\n /** The default delay in ms before showing the tooltip after show is called */\n @Input('matTooltipShowDelay') showDelay = this._defaultOptions.showDelay;\n\n /** The default delay in ms before hiding the tooltip after hide is called */\n @Input('matTooltipHideDelay') hideDelay = this._defaultOptions.hideDelay;\n\n private _message = '';\n\n /** The message to be displayed in the tooltip */\n @Input('matTooltip')\n get message() { return this._message; }\n set message(value: string) {\n this._ariaDescriber.removeDescription(this._elementRef.nativeElement, this._message);\n\n // If the message is not a string (e.g. number), convert it to a string and trim it.\n this._message = value != null ? `${value}`.trim() : '';\n\n if (!this._message && this._isTooltipVisible()) {\n this.hide(0);\n } else {\n this._updateTooltipMessage();\n this._ariaDescriber.describe(this._elementRef.nativeElement, this.message);\n }\n }\n\n /** Classes to be passed to the tooltip. Supports the same syntax as `ngClass`. */\n @Input('matTooltipClass')\n get tooltipClass() { return this._tooltipClass; }\n set tooltipClass(value: string|string[]|Set<string>|{[key: string]: any}) {\n this._tooltipClass = value;\n if (this._tooltipInstance) {\n this._setTooltipClass(this._tooltipClass);\n }\n }\n\n private _manualListeners = new Map<string, EventListenerOrEventListenerObject>();\n\n /** Emits when the component is destroyed. */\n private readonly _destroyed = new Subject<void>();\n\n constructor(\n private _overlay: Overlay,\n private _elementRef: ElementRef<HTMLElement>,\n private _scrollDispatcher: ScrollDispatcher,\n private _viewContainerRef: ViewContainerRef,\n private _ngZone: NgZone,\n platform: Platform,\n private _ariaDescriber: AriaDescriber,\n private _focusMonitor: FocusMonitor,\n @Inject(MAT_TOOLTIP_SCROLL_STRATEGY) scrollStrategy: any,\n @Optional() private _dir: Directionality,\n @Optional() @Inject(MAT_TOOLTIP_DEFAULT_OPTIONS)\n private _defaultOptions: MatTooltipDefaultOptions,\n @Optional() @Inject(HAMMER_LOADER) hammerLoader?: HammerLoader) {\n\n this._scrollStrategy = scrollStrategy;\n const element: HTMLElement = _elementRef.nativeElement;\n const elementStyle = element.style as CSSStyleDeclaration & {webkitUserDrag: string};\n const hasGestures = typeof window === 'undefined' || (window as any).Hammer || hammerLoader;\n\n // The mouse events shouldn't be bound on mobile devices, because they can prevent the\n // first tap from firing its click event or can cause the tooltip to open for clicks.\n if (!platform.IOS && !platform.ANDROID) {\n this._manualListeners\n .set('mouseenter', () => this.show())\n .set('mouseleave', () => this.hide());\n } else if (!hasGestures) {\n // If Hammerjs isn't loaded, fall back to showing on `touchstart`, otherwise\n // there's no way for the user to trigger the tooltip on a touch device.\n this._manualListeners.set('touchstart', () => this.show());\n }\n\n this._manualListeners.forEach((listener, event) => element.addEventListener(event, listener));\n\n if (element.nodeName === 'INPUT' || element.nodeName === 'TEXTAREA') {\n // When we bind a gesture event on an element (in this case `longpress`), HammerJS\n // will add some inline styles by default, including `user-select: none`. This is\n // problematic on iOS and in Safari, because it will prevent users from typing in inputs.\n // Since `user-select: none` is not needed for the `longpress` event and can cause unexpected\n // behavior for text fields, we always clear the `user-select` to avoid such issues.\n elementStyle.webkitUserSelect = elementStyle.userSelect = elementStyle.msUserSelect = '';\n }\n\n // Hammer applies `-webkit-user-drag: none` on all elements by default,\n // which breaks the native drag&drop. If the consumer explicitly made\n // the element draggable, clear the `-webkit-user-drag`.\n if (element.draggable && elementStyle.webkitUserDrag === 'none') {\n elementStyle.webkitUserDrag = '';\n }\n\n _focusMonitor.monitor(_elementRef).pipe(takeUntil(this._destroyed)).subscribe(origin => {\n // Note that the focus monitor runs outside the Angular zone.\n if (!origin) {\n _ngZone.run(() => this.hide(0));\n } else if (origin === 'keyboard') {\n _ngZone.run(() => this.show());\n }\n });\n }\n\n /**\n * Dispose the tooltip when destroyed.\n */\n ngOnDestroy() {\n if (this._overlayRef) {\n this._overlayRef.dispose();\n this._tooltipInstance = null;\n }\n\n // Clean up the event listeners set in the constructor\n this._manualListeners.forEach((listener, event) => {\n this._elementRef.nativeElement.removeEventListener(event, listener);\n });\n this._manualListeners.clear();\n\n this._destroyed.next();\n this._destroyed.complete();\n\n this._ariaDescriber.removeDescription(this._elementRef.nativeElement, this.message);\n this._focusMonitor.stopMonitoring(this._elementRef);\n }\n\n /** Shows the tooltip after the delay in ms, defaults to tooltip-delay-show or 0ms if no input */\n show(delay: number = this.showDelay): void {\n if (this.disabled || !this.message || (this._isTooltipVisible() &&\n !this._tooltipInstance!._showTimeoutId && !this._tooltipInstance!._hideTimeoutId)) {\n return;\n }\n\n const overlayRef = this._createOverlay();\n\n this._detach();\n this._portal = this._portal || new ComponentPortal(TooltipComponent, this._viewContainerRef);\n this._tooltipInstance = overlayRef.attach(this._portal).instance;\n this._tooltipInstance.afterHidden()\n .pipe(takeUntil(this._destroyed))\n .subscribe(() => this._detach());\n this._setTooltipClass(this._tooltipClass);\n this._updateTooltipMessage();\n this._tooltipInstance!.show(delay);\n }\n\n /** Hides the tooltip after the delay in ms, defaults to tooltip-delay-hide or 0ms if no input */\n hide(delay: number = this.hideDelay): void {\n if (this._tooltipInstance) {\n this._tooltipInstance.hide(delay);\n }\n }\n\n /** Shows/hides the tooltip */\n toggle(): void {\n this._isTooltipVisible() ? this.hide() : this.show();\n }\n\n /** Returns true if the tooltip is currently visible to the user */\n _isTooltipVisible(): boolean {\n return !!this._tooltipInstance && this._tooltipInstance.isVisible();\n }\n\n /** Handles the keydown events on the host element. */\n _handleKeydown(e: KeyboardEvent) {\n if (this._isTooltipVisible() && e.keyCode === ESCAPE) {\n e.stopPropagation();\n this.hide(0);\n }\n }\n\n /** Handles the touchend events on the host element. */\n _handleTouchend() {\n this.hide(this._defaultOptions.touchendHideDelay);\n }\n\n /** Create the overlay config and position strategy */\n private _createOverlay(): OverlayRef {\n if (this._overlayRef) {\n return this._overlayRef;\n }\n\n // Create connected position strategy that listens for scroll events to reposition.\n const strategy = this._overlay.position()\n .flexibleConnectedTo(this._elementRef)\n .withTransformOriginOn('.mat-tooltip')\n .withFlexibleDimensions(false)\n .withViewportMargin(8);\n\n const scrollableAncestors = this._scrollDispatcher\n .getAncestorScrollContainers(this._elementRef);\n\n strategy.withScrollableContainers(scrollableAncestors);\n\n strategy.positionChanges.pipe(takeUntil(this._destroyed)).subscribe(change => {\n if (this._tooltipInstance) {\n if (change.scrollableViewProperties.isOverlayClipped && this._tooltipInstance.isVisible()) {\n // After position changes occur and the overlay is clipped by\n // a parent scrollable then close the tooltip.\n this._ngZone.run(() => this.hide(0));\n }\n }\n });\n\n this._overlayRef = this._overlay.create({\n direction: this._dir,\n positionStrategy: strategy,\n panelClass: TOOLTIP_PANEL_CLASS,\n scrollStrategy: this._scrollStrategy()\n });\n\n this._updatePosition();\n\n this._overlayRef.detachments()\n .pipe(takeUntil(this._destroyed))\n .subscribe(() => this._detach());\n\n return this._overlayRef;\n }\n\n /** Detaches the currently-attached tooltip. */\n private _detach() {\n if (this._overlayRef && this._overlayRef.hasAttached()) {\n this._overlayRef.detach();\n }\n\n this._tooltipInstance = null;\n }\n\n /** Updates the position of the current tooltip. */\n private _updatePosition() {\n const position =\n this._overlayRef!.getConfig().positionStrategy as FlexibleConnectedPositionStrategy;\n const origin = this._getOrigin();\n const overlay = this._getOverlayPosition();\n\n position.withPositions([\n {...origin.main, ...overlay.main},\n {...origin.fallback, ...overlay.fallback}\n ]);\n }\n\n /**\n * Returns the origin position and a fallback position based on the user's position preference.\n * The fallback position is the inverse of the origin (e.g. `'below' -> 'above'`).\n */\n _getOrigin(): {main: OriginConnectionPosition, fallback: OriginConnectionPosition} {\n const isLtr = !this._dir || this._dir.value == 'ltr';\n const position = this.position;\n let originPosition: OriginConnectionPosition;\n\n if (position == 'above' || position == 'below') {\n originPosition = {originX: 'center', originY: position == 'above' ? 'top' : 'bottom'};\n } else if (\n position == 'before' ||\n (position == 'left' && isLtr) ||\n (position == 'right' && !isLtr)) {\n originPosition = {originX: 'start', originY: 'center'};\n } else if (\n position == 'after' ||\n (position == 'right' && isLtr) ||\n (position == 'left' && !isLtr)) {\n originPosition = {originX: 'end', originY: 'center'};\n } else {\n throw getMatTooltipInvalidPositionError(position);\n }\n\n const {x, y} = this._invertPosition(originPosition.originX, originPosition.originY);\n\n return {\n main: originPosition,\n fallback: {originX: x, originY: y}\n };\n }\n\n /** Returns the overlay position and a fallback position based on the user's preference */\n _getOverlayPosition(): {main: OverlayConnectionPosition, fallback: OverlayConnectionPosition} {\n const isLtr = !this._dir || this._dir.value == 'ltr';\n const position = this.position;\n let overlayPosition: OverlayConnectionPosition;\n\n if (position == 'above') {\n overlayPosition = {overlayX: 'center', overlayY: 'bottom'};\n } else if (position == 'below') {\n overlayPosition = {overlayX: 'center', overlayY: 'top'};\n } else if (\n position == 'before' ||\n (position == 'left' && isLtr) ||\n (position == 'right' && !isLtr)) {\n overlayPosition = {overlayX: 'end', overlayY: 'center'};\n } else if (\n position == 'after' ||\n (position == 'right' && isLtr) ||\n (position == 'left' && !isLtr)) {\n overlayPosition = {overlayX: 'start', overlayY: 'center'};\n } else {\n throw getMatTooltipInvalidPositionError(position);\n }\n\n const {x, y} = this._invertPosition(overlayPosition.overlayX, overlayPosition.overlayY);\n\n return {\n main: overlayPosition,\n fallback: {overlayX: x, overlayY: y}\n };\n }\n\n /** Updates the tooltip message and repositions the overlay according to the new message length */\n private _updateTooltipMessage() {\n // Must wait for the message to be painted to the tooltip so that the overlay can properly\n // calculate the correct positioning based on the size of the text.\n if (this._tooltipInstance) {\n this._tooltipInstance.message = this.message;\n this._tooltipInstance._markForCheck();\n\n this._ngZone.onMicrotaskEmpty.asObservable().pipe(\n take(1),\n takeUntil(this._destroyed)\n ).subscribe(() => {\n if (this._tooltipInstance) {\n this._overlayRef!.updatePosition();\n }\n });\n }\n }\n\n /** Updates the tooltip class */\n private _setTooltipClass(tooltipClass: string|string[]|Set<string>|{[key: string]: any}) {\n if (this._tooltipInstance) {\n this._tooltipInstance.tooltipClass = tooltipClass;\n this._tooltipInstance._markForCheck();\n }\n }\n\n /** Inverts an overlay position. */\n private _invertPosition(x: HorizontalConnectionPos, y: VerticalConnectionPos) {\n if (this.position === 'above' || this.position === 'below') {\n if (y === 'top') {\n y = 'bottom';\n } else if (y === 'bottom') {\n y = 'top';\n }\n } else {\n if (x === 'end') {\n x = 'start';\n } else if (x === 'start') {\n x = 'end';\n }\n }\n\n return {x, y};\n }\n}\n\nexport type TooltipVisibility = 'initial' | 'visible' | 'hidden';\n\n/**\n * Internal component that wraps the tooltip's content.\n * @docs-private\n */\n@Component({\n moduleId: module.id,\n selector: 'mat-tooltip-component',\n templateUrl: 'tooltip.html',\n styleUrls: ['tooltip.css'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [matTooltipAnimations.tooltipState],\n host: {\n // Forces the element to have a layout in IE and Edge. This fixes issues where the element\n // won't be rendered if the animations are disabled or there is no web animations polyfill.\n '[style.zoom]': '_visibility === \"visible\" ? 1 : null',\n '(body:click)': 'this._handleBodyInteraction()',\n 'aria-hidden': 'true',\n }\n})\nexport class TooltipComponent {\n /** Message to display in the tooltip */\n message: string;\n\n /** Classes to be added to the tooltip. Supports the same syntax as `ngClass`. */\n tooltipClass: string|string[]|Set<string>|{[key: string]: any};\n\n /** The timeout ID of any current timer set to show the tooltip */\n _showTimeoutId: number | null;\n\n /** The timeout ID of any current timer set to hide the tooltip */\n _hideTimeoutId: number | null;\n\n /** Property watched by the animation framework to show or hide the tooltip */\n _visibility: TooltipVisibility = 'initial';\n\n /** Whether interactions on the page should close the tooltip */\n private _closeOnInteraction: boolean = false;\n\n /** Subject for notifying that the tooltip has been hidden from the view */\n private readonly _onHide: Subject<any> = new Subject();\n\n /** Stream that emits whether the user has a handset-sized display. */\n _isHandset: Observable<BreakpointState> = this._breakpointObserver.observe(Breakpoints.Handset);\n\n constructor(\n private _changeDetectorRef: ChangeDetectorRef,\n private _breakpointObserver: BreakpointObserver) {}\n\n /**\n * Shows the tooltip with an animation originating from the provided origin\n * @param delay Amount of milliseconds to the delay showing the tooltip.\n */\n show(delay: number): void {\n // Cancel the delayed hide if it is scheduled\n if (this._hideTimeoutId) {\n clearTimeout(this._hideTimeoutId);\n this._hideTimeoutId = null;\n }\n\n // Body interactions should cancel the tooltip if there is a delay in showing.\n this._closeOnInteraction = true;\n this._showTimeoutId = setTimeout(() => {\n this._visibility = 'visible';\n this._showTimeoutId = null;\n\n // Mark for check so if any parent component has set the\n // ChangeDetectionStrategy to OnPush it will be checked anyways\n this._markForCheck();\n }, delay);\n }\n\n /**\n * Begins the animation to hide the tooltip after the provided delay in ms.\n * @param delay Amount of milliseconds to delay showing the tooltip.\n */\n hide(delay: number): void {\n // Cancel the delayed show if it is scheduled\n if (this._showTimeoutId) {\n clearTimeout(this._showTimeoutId);\n this._showTimeoutId = null;\n }\n\n this._hideTimeoutId = setTimeout(() => {\n this._visibility = 'hidden';\n this._hideTimeoutId = null;\n\n // Mark for check so if any parent component has set the\n // ChangeDetectionStrategy to OnPush it will be checked anyways\n this._markForCheck();\n }, delay);\n }\n\n /** Returns an observable that notifies when the tooltip has been hidden from view. */\n afterHidden(): Observable<void> {\n return this._onHide.asObservable();\n }\n\n /** Whether the tooltip is being displayed. */\n isVisible(): boolean {\n return this._visibility === 'visible';\n }\n\n _animationStart() {\n this._closeOnInteraction = false;\n }\n\n _animationDone(event: AnimationEvent): void {\n const toState = event.toState as TooltipVisibility;\n\n if (toState === 'hidden' && !this.isVisible()) {\n this._onHide.next();\n }\n\n if (toState === 'visible' || toState === 'hidden') {\n this._closeOnInteraction = true;\n }\n }\n\n /**\n * Interactions on the HTML body should close the tooltip immediately as defined in the\n * material design spec.\n * https://material.io/design/components/tooltips.html#behavior\n */\n _handleBodyInteraction(): void {\n if (this._closeOnInteraction) {\n this.hide(0);\n }\n }\n\n /**\n * Marks that the tooltip needs to be checked in the next change detection run.\n * Mainly used for rendering the initial text before positioning a tooltip, which\n * can be problematic in components with OnPush change detection.\n */\n _markForCheck(): void {\n this._changeDetectorRef.markForCheck();\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport {\n animate,\n AnimationTriggerMetadata,\n keyframes,\n state,\n style,\n transition,\n trigger,\n} from '@angular/animations';\n\n/**\n * Animations used by MatTooltip.\n * @docs-private\n */\nexport const matTooltipAnimations: {\n readonly tooltipState: AnimationTriggerMetadata;\n} = {\n /** Animation that transitions a tooltip in and out. */\n tooltipState: trigger('state', [\n state('initial, void, hidden', style({opacity: 0, transform: 'scale(0)'})),\n state('visible', style({transform: 'scale(1)'})),\n transition('* => visible', animate('200ms cubic-bezier(0, 0, 0.2, 1)', keyframes([\n style({opacity: 0, transform: 'scale(0)', offset: 0}),\n style({opacity: 0.5, transform: 'scale(0.99)', offset: 0.5}),\n style({opacity: 1, transform: 'scale(1)', offset: 1})\n ]))),\n transition('* => hidden', animate('100ms cubic-bezier(0, 0, 0.2, 1)', style({opacity: 0}))),\n ])\n};\n"],"names":["tslib_1.__assign"],"mappings":"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"}
package/esm5/tree.es5.js CHANGED
@@ -16,7 +16,7 @@ import { map, take } from 'rxjs/operators';
16
16
 
17
17
  /**
18
18
  * @fileoverview added by tsickle
19
- * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
19
+ * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
20
20
  */
21
21
  /**
22
22
  * Outlet for nested CdkNode. Put `[matTreeNodeOutlet]` on a tag to place children dataNodes
@@ -40,7 +40,7 @@ var MatTreeNodeOutlet = /** @class */ (function () {
40
40
 
41
41
  /**
42
42
  * @fileoverview added by tsickle
43
- * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
43
+ * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
44
44
  */
45
45
  /** @type {?} */
46
46
  var _MatTreeNodeMixinBase = mixinTabIndex(mixinDisabled(CdkTreeNode));
@@ -125,10 +125,17 @@ var MatNestedTreeNode = /** @class */ (function (_super) {
125
125
  // This is a workaround for https://github.com/angular/angular/issues/23091
126
126
  // In aot mode, the lifecycle hooks from parent class are not called.
127
127
  // TODO(tinayuangao): Remove when the angular issue #23091 is fixed
128
+ // This is a workaround for https://github.com/angular/angular/issues/23091
129
+ // In aot mode, the lifecycle hooks from parent class are not called.
130
+ // TODO(tinayuangao): Remove when the angular issue #23091 is fixed
128
131
  /**
129
132
  * @return {?}
130
133
  */
131
- MatNestedTreeNode.prototype.ngAfterContentInit = /**
134
+ MatNestedTreeNode.prototype.ngAfterContentInit =
135
+ // This is a workaround for https://github.com/angular/angular/issues/23091
136
+ // In aot mode, the lifecycle hooks from parent class are not called.
137
+ // TODO(tinayuangao): Remove when the angular issue #23091 is fixed
138
+ /**
132
139
  * @return {?}
133
140
  */
134
141
  function () {
@@ -175,7 +182,7 @@ var MatNestedTreeNode = /** @class */ (function (_super) {
175
182
 
176
183
  /**
177
184
  * @fileoverview added by tsickle
178
- * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
185
+ * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
179
186
  */
180
187
  /**
181
188
  * Wrapper for the CdkTree padding with Material design styles.
@@ -201,7 +208,7 @@ var MatTreeNodePadding = /** @class */ (function (_super) {
201
208
 
202
209
  /**
203
210
  * @fileoverview added by tsickle
204
- * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
211
+ * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
205
212
  */
206
213
  /**
207
214
  * Wrapper for the CdkTable with Material design styles.
@@ -234,7 +241,7 @@ var MatTree = /** @class */ (function (_super) {
234
241
 
235
242
  /**
236
243
  * @fileoverview added by tsickle
237
- * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
244
+ * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
238
245
  */
239
246
  /**
240
247
  * Wrapper for the CdkTree's toggle with Material design styles.
@@ -264,7 +271,7 @@ var MatTreeNodeToggle = /** @class */ (function (_super) {
264
271
 
265
272
  /**
266
273
  * @fileoverview added by tsickle
267
- * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
274
+ * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
268
275
  */
269
276
  /** @type {?} */
270
277
  var MAT_TREE_DIRECTIVES = [
@@ -291,7 +298,7 @@ var MatTreeModule = /** @class */ (function () {
291
298
 
292
299
  /**
293
300
  * @fileoverview added by tsickle
294
- * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
301
+ * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
295
302
  */
296
303
  /**
297
304
  * Tree flattener to convert a normal type of node to node with children & level information.
@@ -392,13 +399,15 @@ MatTreeFlattener = /** @class */ (function () {
392
399
  if (this.isExpandable(flatNode)) {
393
400
  /** @type {?} */
394
401
  var childrenNodes = this.getChildren(node);
395
- if (Array.isArray(childrenNodes)) {
396
- this._flattenChildren(childrenNodes, level, resultNodes, parentMap);
397
- }
398
- else {
399
- childrenNodes.pipe(take(1)).subscribe(function (children) {
400
- _this._flattenChildren(children, level, resultNodes, parentMap);
401
- });
402
+ if (childrenNodes) {
403
+ if (Array.isArray(childrenNodes)) {
404
+ this._flattenChildren(childrenNodes, level, resultNodes, parentMap);
405
+ }
406
+ else {
407
+ childrenNodes.pipe(take(1)).subscribe(function (children) {
408
+ _this._flattenChildren(children, level, resultNodes, parentMap);
409
+ });
410
+ }
402
411
  }
403
412
  }
404
413
  return resultNodes;
@@ -574,7 +583,7 @@ MatTreeFlatDataSource = /** @class */ (function (_super) {
574
583
 
575
584
  /**
576
585
  * @fileoverview added by tsickle
577
- * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
586
+ * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
578
587
  */
579
588
  /**
580
589
  * Data source for nested tree.
@@ -642,12 +651,12 @@ MatTreeNestedDataSource = /** @class */ (function (_super) {
642
651
 
643
652
  /**
644
653
  * @fileoverview added by tsickle
645
- * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
654
+ * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
646
655
  */
647
656
 
648
657
  /**
649
658
  * @fileoverview added by tsickle
650
- * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
659
+ * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
651
660
  */
652
661
 
653
662
  export { _MatTreeNodeMixinBase, _MatNestedTreeNodeMixinBase, MatTreeNode, MatTreeNodeDef, MatNestedTreeNode, MatTreeNodePadding, MatTree, MatTreeModule, MatTreeNodeToggle, MatTreeNodeOutlet, MatTreeFlattener, MatTreeFlatDataSource, MatTreeNestedDataSource };