@angular/material 7.0.3 → 7.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (447) hide show
  1. package/_theming.scss +57 -49
  2. package/autocomplete/typings/index.d.ts +1 -1
  3. package/autocomplete/typings/index.metadata.json +1 -1
  4. package/badge/typings/index.metadata.json +1 -1
  5. package/bottom-sheet/typings/bottom-sheet-config.d.ts +5 -0
  6. package/bottom-sheet/typings/bottom-sheet-container.d.ts +1 -1
  7. package/bottom-sheet/typings/index.metadata.json +1 -1
  8. package/bundles/material-autocomplete.umd.js +124 -30
  9. package/bundles/material-autocomplete.umd.js.map +1 -1
  10. package/bundles/material-autocomplete.umd.min.js +1 -1
  11. package/bundles/material-autocomplete.umd.min.js.map +1 -1
  12. package/bundles/material-badge.umd.js +38 -5
  13. package/bundles/material-badge.umd.js.map +1 -1
  14. package/bundles/material-badge.umd.min.js +1 -1
  15. package/bundles/material-badge.umd.min.js.map +1 -1
  16. package/bundles/material-bottom-sheet.umd.js +68 -25
  17. package/bundles/material-bottom-sheet.umd.js.map +1 -1
  18. package/bundles/material-bottom-sheet.umd.min.js +1 -1
  19. package/bundles/material-bottom-sheet.umd.min.js.map +1 -1
  20. package/bundles/material-button-toggle.umd.js +40 -15
  21. package/bundles/material-button-toggle.umd.js.map +1 -1
  22. package/bundles/material-button-toggle.umd.min.js +1 -1
  23. package/bundles/material-button-toggle.umd.min.js.map +1 -1
  24. package/bundles/material-button.umd.js +19 -12
  25. package/bundles/material-button.umd.js.map +1 -1
  26. package/bundles/material-button.umd.min.js +1 -1
  27. package/bundles/material-button.umd.min.js.map +1 -1
  28. package/bundles/material-card.umd.js +2 -2
  29. package/bundles/material-card.umd.js.map +1 -1
  30. package/bundles/material-card.umd.min.js.map +1 -1
  31. package/bundles/material-checkbox.umd.js +56 -15
  32. package/bundles/material-checkbox.umd.js.map +1 -1
  33. package/bundles/material-checkbox.umd.min.js +1 -1
  34. package/bundles/material-checkbox.umd.min.js.map +1 -1
  35. package/bundles/material-chips.umd.js +124 -34
  36. package/bundles/material-chips.umd.js.map +1 -1
  37. package/bundles/material-chips.umd.min.js +1 -1
  38. package/bundles/material-chips.umd.min.js.map +1 -1
  39. package/bundles/material-core.umd.js +186 -123
  40. package/bundles/material-core.umd.js.map +1 -1
  41. package/bundles/material-core.umd.min.js +2 -1
  42. package/bundles/material-core.umd.min.js.map +1 -1
  43. package/bundles/material-datepicker.umd.js +241 -59
  44. package/bundles/material-datepicker.umd.js.map +1 -1
  45. package/bundles/material-datepicker.umd.min.js +2 -2
  46. package/bundles/material-datepicker.umd.min.js.map +1 -1
  47. package/bundles/material-dialog.umd.js +136 -44
  48. package/bundles/material-dialog.umd.js.map +1 -1
  49. package/bundles/material-dialog.umd.min.js +1 -1
  50. package/bundles/material-dialog.umd.min.js.map +1 -1
  51. package/bundles/material-divider.umd.js +2 -2
  52. package/bundles/material-divider.umd.js.map +1 -1
  53. package/bundles/material-divider.umd.min.js.map +1 -1
  54. package/bundles/material-expansion.umd.js +32 -22
  55. package/bundles/material-expansion.umd.js.map +1 -1
  56. package/bundles/material-expansion.umd.min.js +1 -1
  57. package/bundles/material-expansion.umd.min.js.map +1 -1
  58. package/bundles/material-form-field.umd.js +120 -32
  59. package/bundles/material-form-field.umd.js.map +1 -1
  60. package/bundles/material-form-field.umd.min.js +1 -1
  61. package/bundles/material-form-field.umd.min.js.map +1 -1
  62. package/bundles/material-grid-list.umd.js +66 -15
  63. package/bundles/material-grid-list.umd.js.map +1 -1
  64. package/bundles/material-grid-list.umd.min.js +1 -1
  65. package/bundles/material-grid-list.umd.min.js.map +1 -1
  66. package/bundles/material-icon.umd.js +280 -79
  67. package/bundles/material-icon.umd.js.map +1 -1
  68. package/bundles/material-icon.umd.min.js +1 -1
  69. package/bundles/material-icon.umd.min.js.map +1 -1
  70. package/bundles/material-input.umd.js +46 -24
  71. package/bundles/material-input.umd.js.map +1 -1
  72. package/bundles/material-input.umd.min.js +1 -1
  73. package/bundles/material-input.umd.min.js.map +1 -1
  74. package/bundles/material-list.umd.js +71 -22
  75. package/bundles/material-list.umd.js.map +1 -1
  76. package/bundles/material-list.umd.min.js +2 -6
  77. package/bundles/material-list.umd.min.js.map +1 -1
  78. package/bundles/material-menu.umd.js +157 -55
  79. package/bundles/material-menu.umd.js.map +1 -1
  80. package/bundles/material-menu.umd.min.js +1 -1
  81. package/bundles/material-menu.umd.min.js.map +1 -1
  82. package/bundles/material-paginator.umd.js +52 -10
  83. package/bundles/material-paginator.umd.js.map +1 -1
  84. package/bundles/material-paginator.umd.min.js +1 -1
  85. package/bundles/material-paginator.umd.min.js.map +1 -1
  86. package/bundles/material-progress-bar.umd.js +35 -14
  87. package/bundles/material-progress-bar.umd.js.map +1 -1
  88. package/bundles/material-progress-bar.umd.min.js +1 -1
  89. package/bundles/material-progress-bar.umd.min.js.map +1 -1
  90. package/bundles/material-progress-spinner.umd.js +29 -13
  91. package/bundles/material-progress-spinner.umd.js.map +1 -1
  92. package/bundles/material-progress-spinner.umd.min.js.map +1 -1
  93. package/bundles/material-radio.umd.js +26 -7
  94. package/bundles/material-radio.umd.js.map +1 -1
  95. package/bundles/material-radio.umd.min.js.map +1 -1
  96. package/bundles/material-select.umd.js +178 -49
  97. package/bundles/material-select.umd.js.map +1 -1
  98. package/bundles/material-select.umd.min.js +1 -1
  99. package/bundles/material-select.umd.min.js.map +1 -1
  100. package/bundles/material-sidenav.umd.js +102 -23
  101. package/bundles/material-sidenav.umd.js.map +1 -1
  102. package/bundles/material-sidenav.umd.min.js +1 -1
  103. package/bundles/material-sidenav.umd.min.js.map +1 -1
  104. package/bundles/material-slide-toggle.umd.js +33 -15
  105. package/bundles/material-slide-toggle.umd.js.map +1 -1
  106. package/bundles/material-slide-toggle.umd.min.js +1 -1
  107. package/bundles/material-slide-toggle.umd.min.js.map +1 -1
  108. package/bundles/material-slider.umd.js +89 -19
  109. package/bundles/material-slider.umd.js.map +1 -1
  110. package/bundles/material-slider.umd.min.js +1 -1
  111. package/bundles/material-slider.umd.min.js.map +1 -1
  112. package/bundles/material-snack-bar.umd.js +74 -22
  113. package/bundles/material-snack-bar.umd.js.map +1 -1
  114. package/bundles/material-snack-bar.umd.min.js +1 -1
  115. package/bundles/material-snack-bar.umd.min.js.map +1 -1
  116. package/bundles/material-sort.umd.js +45 -23
  117. package/bundles/material-sort.umd.js.map +1 -1
  118. package/bundles/material-sort.umd.min.js.map +1 -1
  119. package/bundles/material-stepper.umd.js +37 -44
  120. package/bundles/material-stepper.umd.js.map +1 -1
  121. package/bundles/material-stepper.umd.min.js +1 -1
  122. package/bundles/material-stepper.umd.min.js.map +1 -1
  123. package/bundles/material-table.umd.js +29 -19
  124. package/bundles/material-table.umd.js.map +1 -1
  125. package/bundles/material-table.umd.min.js +1 -1
  126. package/bundles/material-table.umd.min.js.map +1 -1
  127. package/bundles/material-tabs.umd.js +156 -56
  128. package/bundles/material-tabs.umd.js.map +1 -1
  129. package/bundles/material-tabs.umd.min.js +2 -2
  130. package/bundles/material-tabs.umd.min.js.map +1 -1
  131. package/bundles/material-toolbar.umd.js +13 -3
  132. package/bundles/material-toolbar.umd.js.map +1 -1
  133. package/bundles/material-toolbar.umd.min.js.map +1 -1
  134. package/bundles/material-tooltip.umd.js +52 -25
  135. package/bundles/material-tooltip.umd.js.map +1 -1
  136. package/bundles/material-tooltip.umd.min.js.map +1 -1
  137. package/bundles/material-tree.umd.js +25 -26
  138. package/bundles/material-tree.umd.js.map +1 -1
  139. package/bundles/material-tree.umd.min.js +1 -1
  140. package/bundles/material-tree.umd.min.js.map +1 -1
  141. package/bundles/material.umd.js +2780 -979
  142. package/bundles/material.umd.js.map +1 -1
  143. package/bundles/material.umd.min.js +19 -21
  144. package/bundles/material.umd.min.js.map +1 -1
  145. package/button/typings/button.d.ts +0 -5
  146. package/button/typings/index.metadata.json +1 -1
  147. package/button-toggle/typings/index.metadata.json +1 -1
  148. package/checkbox/typings/index.metadata.json +1 -1
  149. package/chips/typings/chip-list.d.ts +1 -1
  150. package/chips/typings/chip.d.ts +2 -2
  151. package/chips/typings/index.metadata.json +1 -1
  152. package/core/typings/index.metadata.json +1 -1
  153. package/core/typings/{testing/month-constants.d.ts → month-constants.d.ts} +2 -0
  154. package/core/typings/public-api.d.ts +1 -1
  155. package/datepicker/typings/calendar-body.d.ts +21 -5
  156. package/datepicker/typings/calendar.d.ts +4 -1
  157. package/datepicker/typings/datepicker-toggle.d.ts +5 -0
  158. package/datepicker/typings/datepicker.d.ts +3 -0
  159. package/datepicker/typings/index.metadata.json +1 -1
  160. package/datepicker/typings/month-view.d.ts +4 -2
  161. package/dialog/typings/index.metadata.json +1 -1
  162. package/esm2015/autocomplete.js +58 -27
  163. package/esm2015/autocomplete.js.map +1 -1
  164. package/esm2015/badge.js +29 -6
  165. package/esm2015/badge.js.map +1 -1
  166. package/esm2015/bottom-sheet.js +46 -27
  167. package/esm2015/bottom-sheet.js.map +1 -1
  168. package/esm2015/button-toggle.js +24 -13
  169. package/esm2015/button-toggle.js.map +1 -1
  170. package/esm2015/button.js +18 -13
  171. package/esm2015/button.js.map +1 -1
  172. package/esm2015/card.js +4 -4
  173. package/esm2015/card.js.map +1 -1
  174. package/esm2015/checkbox.js +30 -12
  175. package/esm2015/checkbox.js.map +1 -1
  176. package/esm2015/chips.js +64 -28
  177. package/esm2015/chips.js.map +1 -1
  178. package/esm2015/core.js +145 -126
  179. package/esm2015/core.js.map +1 -1
  180. package/esm2015/datepicker.js +131 -44
  181. package/esm2015/datepicker.js.map +1 -1
  182. package/esm2015/dialog.js +76 -45
  183. package/esm2015/dialog.js.map +1 -1
  184. package/esm2015/divider.js +4 -4
  185. package/esm2015/divider.js.map +1 -1
  186. package/esm2015/expansion.js +35 -25
  187. package/esm2015/expansion.js.map +1 -1
  188. package/esm2015/form-field.js +93 -34
  189. package/esm2015/form-field.js.map +1 -1
  190. package/esm2015/grid-list.js +45 -17
  191. package/esm2015/grid-list.js.map +1 -1
  192. package/esm2015/icon.js +139 -68
  193. package/esm2015/icon.js.map +1 -1
  194. package/esm2015/input.js +40 -23
  195. package/esm2015/input.js.map +1 -1
  196. package/esm2015/list.js +49 -23
  197. package/esm2015/list.js.map +1 -1
  198. package/esm2015/material.js +10 -9
  199. package/esm2015/material.js.map +1 -1
  200. package/esm2015/menu.js +100 -53
  201. package/esm2015/menu.js.map +1 -1
  202. package/esm2015/paginator.js +35 -12
  203. package/esm2015/paginator.js.map +1 -1
  204. package/esm2015/progress-bar.js +30 -15
  205. package/esm2015/progress-bar.js.map +1 -1
  206. package/esm2015/progress-spinner.js +24 -14
  207. package/esm2015/progress-spinner.js.map +1 -1
  208. package/esm2015/radio.js +17 -7
  209. package/esm2015/radio.js.map +1 -1
  210. package/esm2015/select.js +103 -50
  211. package/esm2015/select.js.map +1 -1
  212. package/esm2015/sidenav.js +73 -26
  213. package/esm2015/sidenav.js.map +1 -1
  214. package/esm2015/slide-toggle.js +26 -16
  215. package/esm2015/slide-toggle.js.map +1 -1
  216. package/esm2015/slider.js +50 -20
  217. package/esm2015/slider.js.map +1 -1
  218. package/esm2015/snack-bar.js +44 -24
  219. package/esm2015/snack-bar.js.map +1 -1
  220. package/esm2015/sort.js +46 -23
  221. package/esm2015/sort.js.map +1 -1
  222. package/esm2015/stepper.js +35 -39
  223. package/esm2015/stepper.js.map +1 -1
  224. package/esm2015/table.js +31 -21
  225. package/esm2015/table.js.map +1 -1
  226. package/esm2015/tabs.js +110 -52
  227. package/esm2015/tabs.js.map +1 -1
  228. package/esm2015/toolbar.js +8 -4
  229. package/esm2015/toolbar.js.map +1 -1
  230. package/esm2015/tooltip.js +42 -27
  231. package/esm2015/tooltip.js.map +1 -1
  232. package/esm2015/tree.js +22 -25
  233. package/esm2015/tree.js.map +1 -1
  234. package/esm5/autocomplete.es5.js +126 -32
  235. package/esm5/autocomplete.es5.js.map +1 -1
  236. package/esm5/badge.es5.js +40 -7
  237. package/esm5/badge.es5.js.map +1 -1
  238. package/esm5/bottom-sheet.es5.js +71 -28
  239. package/esm5/bottom-sheet.es5.js.map +1 -1
  240. package/esm5/button-toggle.es5.js +42 -17
  241. package/esm5/button-toggle.es5.js.map +1 -1
  242. package/esm5/button.es5.js +21 -14
  243. package/esm5/button.es5.js.map +1 -1
  244. package/esm5/card.es5.js +4 -4
  245. package/esm5/card.es5.js.map +1 -1
  246. package/esm5/checkbox.es5.js +58 -17
  247. package/esm5/checkbox.es5.js.map +1 -1
  248. package/esm5/chips.es5.js +127 -37
  249. package/esm5/chips.es5.js.map +1 -1
  250. package/esm5/core.es5.js +189 -126
  251. package/esm5/core.es5.js.map +1 -1
  252. package/esm5/datepicker.es5.js +240 -58
  253. package/esm5/datepicker.es5.js.map +1 -1
  254. package/esm5/dialog.es5.js +139 -47
  255. package/esm5/dialog.es5.js.map +1 -1
  256. package/esm5/divider.es5.js +4 -4
  257. package/esm5/divider.es5.js.map +1 -1
  258. package/esm5/expansion.es5.js +35 -25
  259. package/esm5/expansion.es5.js.map +1 -1
  260. package/esm5/form-field.es5.js +124 -36
  261. package/esm5/form-field.es5.js.map +1 -1
  262. package/esm5/grid-list.es5.js +68 -17
  263. package/esm5/grid-list.es5.js.map +1 -1
  264. package/esm5/icon.es5.js +282 -81
  265. package/esm5/icon.es5.js.map +1 -1
  266. package/esm5/input.es5.js +48 -26
  267. package/esm5/input.es5.js.map +1 -1
  268. package/esm5/list.es5.js +74 -25
  269. package/esm5/list.es5.js.map +1 -1
  270. package/esm5/material.es5.js +10 -9
  271. package/esm5/material.es5.js.map +1 -1
  272. package/esm5/menu.es5.js +158 -55
  273. package/esm5/menu.es5.js.map +1 -1
  274. package/esm5/paginator.es5.js +55 -13
  275. package/esm5/paginator.es5.js.map +1 -1
  276. package/esm5/progress-bar.es5.js +37 -16
  277. package/esm5/progress-bar.es5.js.map +1 -1
  278. package/esm5/progress-spinner.es5.js +31 -15
  279. package/esm5/progress-spinner.es5.js.map +1 -1
  280. package/esm5/radio.es5.js +28 -9
  281. package/esm5/radio.es5.js.map +1 -1
  282. package/esm5/select.es5.js +181 -52
  283. package/esm5/select.es5.js.map +1 -1
  284. package/esm5/sidenav.es5.js +105 -26
  285. package/esm5/sidenav.es5.js.map +1 -1
  286. package/esm5/slide-toggle.es5.js +35 -17
  287. package/esm5/slide-toggle.es5.js.map +1 -1
  288. package/esm5/slider.es5.js +91 -21
  289. package/esm5/slider.es5.js.map +1 -1
  290. package/esm5/snack-bar.es5.js +76 -24
  291. package/esm5/snack-bar.es5.js.map +1 -1
  292. package/esm5/sort.es5.js +52 -25
  293. package/esm5/sort.es5.js.map +1 -1
  294. package/esm5/stepper.es5.js +40 -47
  295. package/esm5/stepper.es5.js.map +1 -1
  296. package/esm5/table.es5.js +31 -21
  297. package/esm5/table.es5.js.map +1 -1
  298. package/esm5/tabs.es5.js +159 -60
  299. package/esm5/tabs.es5.js.map +1 -1
  300. package/esm5/toolbar.es5.js +15 -5
  301. package/esm5/toolbar.es5.js.map +1 -1
  302. package/esm5/tooltip.es5.js +54 -27
  303. package/esm5/tooltip.es5.js.map +1 -1
  304. package/esm5/tree.es5.js +27 -28
  305. package/esm5/tree.es5.js.map +1 -1
  306. package/form-field/typings/form-field.d.ts +15 -4
  307. package/form-field/typings/index.metadata.json +1 -1
  308. package/grid-list/typings/index.d.ts +1 -1
  309. package/grid-list/typings/index.metadata.json +1 -1
  310. package/icon/typings/index.metadata.json +1 -1
  311. package/list/typings/index.metadata.json +1 -1
  312. package/material.d.ts +1 -1
  313. package/material.metadata.json +3 -3
  314. package/menu/typings/index.metadata.json +1 -1
  315. package/menu/typings/menu-item.d.ts +2 -0
  316. package/menu/typings/menu-trigger.d.ts +5 -0
  317. package/package.json +5 -5
  318. package/paginator/typings/index.metadata.json +1 -1
  319. package/paginator/typings/paginator.d.ts +7 -3
  320. package/prebuilt-themes/deeppurple-amber.css +1 -1
  321. package/prebuilt-themes/indigo-pink.css +1 -1
  322. package/prebuilt-themes/pink-bluegrey.css +1 -1
  323. package/prebuilt-themes/purple-green.css +1 -1
  324. package/progress-bar/typings/index.metadata.json +1 -1
  325. package/schematics/ng-add/theming/{custom-theme.d.ts → create-custom-theme.d.ts} +0 -0
  326. package/schematics/ng-add/theming/{custom-theme.js → create-custom-theme.js} +1 -1
  327. package/schematics/ng-add/theming/create-custom-theme.js.map +1 -0
  328. package/schematics/ng-add/theming/theming.js +35 -19
  329. package/schematics/ng-add/theming/theming.js.map +1 -1
  330. package/schematics/ng-generate/address-form/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.ts +2 -2
  331. package/schematics/ng-generate/dashboard/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.ts +2 -2
  332. package/schematics/ng-generate/nav/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.ts +2 -2
  333. package/schematics/ng-generate/table/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.ts +2 -2
  334. package/schematics/ng-generate/tree/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.ts +2 -2
  335. package/select/typings/index.metadata.json +1 -1
  336. package/sidenav/typings/drawer.d.ts +9 -2
  337. package/sidenav/typings/index.metadata.json +1 -1
  338. package/slide-toggle/typings/index.metadata.json +1 -1
  339. package/stepper/typings/index.metadata.json +1 -1
  340. package/stepper/typings/step-header.d.ts +3 -5
  341. package/table/typings/index.metadata.json +1 -1
  342. package/tabs/typings/index.metadata.json +1 -1
  343. package/tabs/typings/tab-body.d.ts +2 -0
  344. package/tabs/typings/tab-group.d.ts +11 -2
  345. package/tabs/typings/tab-header.d.ts +9 -3
  346. package/tree/typings/data-source/flat-data-source.d.ts +2 -2
  347. package/tree/typings/index.metadata.json +1 -1
  348. package/typings/autocomplete/index.d.ts +1 -1
  349. package/typings/autocomplete/index.metadata.json +1 -1
  350. package/typings/badge/index.metadata.json +1 -1
  351. package/typings/bottom-sheet/bottom-sheet-config.d.ts +5 -0
  352. package/typings/bottom-sheet/bottom-sheet-container.d.ts +1 -1
  353. package/typings/bottom-sheet/index.metadata.json +1 -1
  354. package/typings/button/button.d.ts +0 -5
  355. package/typings/button/index.metadata.json +1 -1
  356. package/typings/button-toggle/index.metadata.json +1 -1
  357. package/typings/checkbox/index.metadata.json +1 -1
  358. package/typings/chips/chip-list.d.ts +1 -1
  359. package/typings/chips/chip.d.ts +2 -2
  360. package/typings/chips/index.metadata.json +1 -1
  361. package/typings/core/index.metadata.json +1 -1
  362. package/typings/core/{testing/month-constants.d.ts → month-constants.d.ts} +2 -0
  363. package/typings/core/public-api.d.ts +1 -1
  364. package/typings/datepicker/calendar-body.d.ts +21 -5
  365. package/typings/datepicker/calendar.d.ts +4 -1
  366. package/typings/datepicker/datepicker-toggle.d.ts +5 -0
  367. package/typings/datepicker/datepicker.d.ts +3 -0
  368. package/typings/datepicker/index.metadata.json +1 -1
  369. package/typings/datepicker/month-view.d.ts +4 -2
  370. package/typings/dialog/index.metadata.json +1 -1
  371. package/typings/esm5/autocomplete/index.d.ts +1 -1
  372. package/typings/esm5/autocomplete/index.metadata.json +1 -1
  373. package/typings/esm5/badge/index.metadata.json +1 -1
  374. package/typings/esm5/bottom-sheet/bottom-sheet-config.d.ts +5 -0
  375. package/typings/esm5/bottom-sheet/bottom-sheet-container.d.ts +1 -1
  376. package/typings/esm5/bottom-sheet/index.metadata.json +1 -1
  377. package/typings/esm5/button/button.d.ts +0 -5
  378. package/typings/esm5/button/index.metadata.json +1 -1
  379. package/typings/esm5/button-toggle/index.metadata.json +1 -1
  380. package/typings/esm5/checkbox/index.metadata.json +1 -1
  381. package/typings/esm5/chips/chip-list.d.ts +1 -1
  382. package/typings/esm5/chips/chip.d.ts +2 -2
  383. package/typings/esm5/chips/index.metadata.json +1 -1
  384. package/typings/esm5/core/index.metadata.json +1 -1
  385. package/typings/esm5/core/{testing/month-constants.d.ts → month-constants.d.ts} +2 -0
  386. package/typings/esm5/core/public-api.d.ts +1 -1
  387. package/typings/esm5/datepicker/calendar-body.d.ts +21 -5
  388. package/typings/esm5/datepicker/calendar.d.ts +4 -1
  389. package/typings/esm5/datepicker/datepicker-toggle.d.ts +5 -0
  390. package/typings/esm5/datepicker/datepicker.d.ts +3 -0
  391. package/typings/esm5/datepicker/index.metadata.json +1 -1
  392. package/typings/esm5/datepicker/month-view.d.ts +4 -2
  393. package/typings/esm5/dialog/index.metadata.json +1 -1
  394. package/typings/esm5/form-field/form-field.d.ts +15 -4
  395. package/typings/esm5/form-field/index.metadata.json +1 -1
  396. package/typings/esm5/grid-list/index.d.ts +1 -1
  397. package/typings/esm5/grid-list/index.metadata.json +1 -1
  398. package/typings/esm5/icon/index.metadata.json +1 -1
  399. package/typings/esm5/index.metadata.json +1 -1
  400. package/typings/esm5/list/index.metadata.json +1 -1
  401. package/typings/esm5/menu/index.metadata.json +1 -1
  402. package/typings/esm5/menu/menu-item.d.ts +2 -0
  403. package/typings/esm5/menu/menu-trigger.d.ts +5 -0
  404. package/typings/esm5/paginator/index.metadata.json +1 -1
  405. package/typings/esm5/paginator/paginator.d.ts +7 -3
  406. package/typings/esm5/progress-bar/index.metadata.json +1 -1
  407. package/typings/esm5/select/index.metadata.json +1 -1
  408. package/typings/esm5/sidenav/drawer.d.ts +9 -2
  409. package/typings/esm5/sidenav/index.metadata.json +1 -1
  410. package/typings/esm5/slide-toggle/index.metadata.json +1 -1
  411. package/typings/esm5/stepper/index.metadata.json +1 -1
  412. package/typings/esm5/stepper/step-header.d.ts +3 -5
  413. package/typings/esm5/table/index.metadata.json +1 -1
  414. package/typings/esm5/tabs/index.metadata.json +1 -1
  415. package/typings/esm5/tabs/tab-body.d.ts +2 -0
  416. package/typings/esm5/tabs/tab-group.d.ts +11 -2
  417. package/typings/esm5/tabs/tab-header.d.ts +9 -3
  418. package/typings/esm5/tree/data-source/flat-data-source.d.ts +2 -2
  419. package/typings/esm5/tree/index.metadata.json +1 -1
  420. package/typings/form-field/form-field.d.ts +15 -4
  421. package/typings/form-field/index.metadata.json +1 -1
  422. package/typings/grid-list/index.d.ts +1 -1
  423. package/typings/grid-list/index.metadata.json +1 -1
  424. package/typings/icon/index.metadata.json +1 -1
  425. package/typings/index.metadata.json +1 -1
  426. package/typings/list/index.metadata.json +1 -1
  427. package/typings/menu/index.metadata.json +1 -1
  428. package/typings/menu/menu-item.d.ts +2 -0
  429. package/typings/menu/menu-trigger.d.ts +5 -0
  430. package/typings/paginator/index.metadata.json +1 -1
  431. package/typings/paginator/paginator.d.ts +7 -3
  432. package/typings/progress-bar/index.metadata.json +1 -1
  433. package/typings/schematics/ng-add/theming/{custom-theme.d.ts → create-custom-theme.d.ts} +0 -0
  434. package/typings/select/index.metadata.json +1 -1
  435. package/typings/sidenav/drawer.d.ts +9 -2
  436. package/typings/sidenav/index.metadata.json +1 -1
  437. package/typings/slide-toggle/index.metadata.json +1 -1
  438. package/typings/stepper/index.metadata.json +1 -1
  439. package/typings/stepper/step-header.d.ts +3 -5
  440. package/typings/table/index.metadata.json +1 -1
  441. package/typings/tabs/index.metadata.json +1 -1
  442. package/typings/tabs/tab-body.d.ts +2 -0
  443. package/typings/tabs/tab-group.d.ts +11 -2
  444. package/typings/tabs/tab-header.d.ts +9 -3
  445. package/typings/tree/data-source/flat-data-source.d.ts +2 -2
  446. package/typings/tree/index.metadata.json +1 -1
  447. package/schematics/ng-add/theming/custom-theme.js.map +0 -1
@@ -42,25 +42,26 @@ function __extends(d, b) {
42
42
 
43
43
  /**
44
44
  * @fileoverview added by tsickle
45
- * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
45
+ * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
46
46
  */
47
- /** *
47
+ /**
48
48
  * The following are all the animations for the mat-select component, with each
49
49
  * const containing the metadata for one animation.
50
50
  *
51
51
  * The values below match the implementation of the AngularJS Material mat-select animation.
52
52
  * \@docs-private
53
- @type {?} */
53
+ * @type {?}
54
+ */
54
55
  var matSelectAnimations = {
55
56
  /**
56
- * This animation transforms the select's overlay panel on and off the page.
57
- *
58
- * When the panel is attached to the DOM, it expands its width by the amount of padding, scales it
59
- * up to 100% on the Y axis, fades in its border, and translates slightly up and to the
60
- * side to ensure the option text correctly overlaps the trigger text.
61
- *
62
- * When the panel is removed from the DOM, it simply fades out linearly.
63
- */
57
+ * This animation transforms the select's overlay panel on and off the page.
58
+ *
59
+ * When the panel is attached to the DOM, it expands its width by the amount of padding, scales it
60
+ * up to 100% on the Y axis, fades in its border, and translates slightly up and to the
61
+ * side to ensure the option text correctly overlaps the trigger text.
62
+ *
63
+ * When the panel is removed from the DOM, it simply fades out linearly.
64
+ */
64
65
  transformPanel: animations.trigger('transformPanel', [
65
66
  animations.state('void', animations.style({
66
67
  transform: 'scaleY(0.8)',
@@ -83,12 +84,12 @@ var matSelectAnimations = {
83
84
  animations.transition('* => void', animations.animate('100ms 25ms linear', animations.style({ opacity: 0 })))
84
85
  ]),
85
86
  /**
86
- * This animation fades in the background color and text content of the
87
- * select's options. It is time delayed to occur 100ms after the overlay
88
- * panel has transformed in.
89
- * @deprecated Not used anymore. To be removed.
90
- * @breaking-change 8.0.0
91
- */
87
+ * This animation fades in the background color and text content of the
88
+ * select's options. It is time delayed to occur 100ms after the overlay
89
+ * panel has transformed in.
90
+ * @deprecated Not used anymore. To be removed.
91
+ * \@breaking-change 8.0.0
92
+ */
92
93
  fadeInContent: animations.trigger('fadeInContent', [
93
94
  animations.state('showing', animations.style({ opacity: 1 })),
94
95
  animations.transition('void => showing', [
@@ -97,22 +98,24 @@ var matSelectAnimations = {
97
98
  ])
98
99
  ])
99
100
  };
100
- /** *
101
+ /**
101
102
  * @deprecated
102
103
  * \@breaking-change 8.0.0
103
104
  * \@docs-private
104
- @type {?} */
105
+ * @type {?}
106
+ */
105
107
  var transformPanel = matSelectAnimations.transformPanel;
106
- /** *
108
+ /**
107
109
  * @deprecated
108
110
  * \@breaking-change 8.0.0
109
111
  * \@docs-private
110
- @type {?} */
112
+ * @type {?}
113
+ */
111
114
  var fadeInContent = matSelectAnimations.fadeInContent;
112
115
 
113
116
  /**
114
117
  * @fileoverview added by tsickle
115
- * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
118
+ * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
116
119
  */
117
120
 
118
121
  /**
@@ -146,27 +149,32 @@ function getMatSelectNonFunctionValueError() {
146
149
 
147
150
  /**
148
151
  * @fileoverview added by tsickle
149
- * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
152
+ * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
150
153
  */
151
154
  /** @type {?} */
152
155
  var nextUniqueId = 0;
153
- /** *
156
+ /**
154
157
  * The max height of the select's overlay panel
155
- @type {?} */
158
+ * @type {?}
159
+ */
156
160
  var SELECT_PANEL_MAX_HEIGHT = 256;
157
- /** *
161
+ /**
158
162
  * The panel's padding on the x-axis
159
- @type {?} */
163
+ * @type {?}
164
+ */
160
165
  var SELECT_PANEL_PADDING_X = 16;
161
- /** *
166
+ /**
162
167
  * The panel's x axis padding if it is indented (e.g. there is an option group).
163
- @type {?} */
168
+ * @type {?}
169
+ */
164
170
  var SELECT_PANEL_INDENT_PADDING_X = SELECT_PANEL_PADDING_X * 2;
165
- /** *
171
+ /**
166
172
  * The height of the select items in `em` units.
167
- @type {?} */
173
+ * @type {?}
174
+ */
168
175
  var SELECT_ITEM_HEIGHT_EM = 3;
169
- /** *
176
+ // TODO(josephperrott): Revert to a constant after 2018 spec updates are fully merged.
177
+ /**
170
178
  * Distance between the panel edge and the option text in
171
179
  * multi-selection mode.
172
180
  *
@@ -174,16 +182,19 @@ var SELECT_ITEM_HEIGHT_EM = 3;
174
182
  * (SELECT_PANEL_PADDING_X * 1.5) + 20 = 44
175
183
  * The padding is multiplied by 1.5 because the checkbox's margin is half the padding.
176
184
  * The checkbox width is 16px.
177
- @type {?} */
185
+ * @type {?}
186
+ */
178
187
  exports.SELECT_MULTIPLE_PANEL_PADDING_X = 0;
179
- /** *
188
+ /**
180
189
  * The select panel will only "fit" inside the viewport if it is positioned at
181
190
  * this value or more away from the viewport boundary.
182
- @type {?} */
191
+ * @type {?}
192
+ */
183
193
  var SELECT_PANEL_VIEWPORT_PADDING = 8;
184
- /** *
194
+ /**
185
195
  * Injection token that determines the scroll handling while a select is open.
186
- @type {?} */
196
+ * @type {?}
197
+ */
187
198
  var MAT_SELECT_SCROLL_STRATEGY = new core.InjectionToken('mat-select-scroll-strategy');
188
199
  /**
189
200
  * \@docs-private
@@ -193,9 +204,10 @@ var MAT_SELECT_SCROLL_STRATEGY = new core.InjectionToken('mat-select-scroll-stra
193
204
  function MAT_SELECT_SCROLL_STRATEGY_PROVIDER_FACTORY(overlay$$1) {
194
205
  return function () { return overlay$$1.scrollStrategies.reposition(); };
195
206
  }
196
- /** *
207
+ /**
197
208
  * \@docs-private
198
- @type {?} */
209
+ * @type {?}
210
+ */
199
211
  var MAT_SELECT_SCROLL_STRATEGY_PROVIDER = {
200
212
  provide: MAT_SELECT_SCROLL_STRATEGY,
201
213
  deps: [overlay.Overlay],
@@ -214,10 +226,13 @@ MatSelectChange = /** @class */ (function () {
214
226
  }
215
227
  return MatSelectChange;
216
228
  }());
229
+ // Boilerplate for applying mixins to MatSelect.
217
230
  /**
218
231
  * \@docs-private
219
232
  */
220
- var /**
233
+ var
234
+ // Boilerplate for applying mixins to MatSelect.
235
+ /**
221
236
  * \@docs-private
222
237
  */
223
238
  MatSelectBase = /** @class */ (function () {
@@ -624,7 +639,7 @@ var MatSelect = /** @class */ (function (_super) {
624
639
  function (changes) {
625
640
  // Updating the disabled state is handled by `mixinDisabled`, but we need to additionally let
626
641
  // the parent form field know to run change detection when the disabled state changes.
627
- if (changes["disabled"]) {
642
+ if (changes.disabled) {
628
643
  this.stateChanges.next();
629
644
  }
630
645
  };
@@ -877,13 +892,16 @@ var MatSelect = /** @class */ (function (_super) {
877
892
  this.panelOpen ? this._handleOpenKeydown(event) : this._handleClosedKeydown(event);
878
893
  }
879
894
  };
895
+ /** Handles keyboard events while the select is closed. */
880
896
  /**
881
897
  * Handles keyboard events while the select is closed.
898
+ * @private
882
899
  * @param {?} event
883
900
  * @return {?}
884
901
  */
885
902
  MatSelect.prototype._handleClosedKeydown = /**
886
903
  * Handles keyboard events while the select is closed.
904
+ * @private
887
905
  * @param {?} event
888
906
  * @return {?}
889
907
  */
@@ -898,7 +916,7 @@ var MatSelect = /** @class */ (function (_super) {
898
916
  /** @type {?} */
899
917
  var manager = this._keyManager;
900
918
  // Open the select on ALT + arrow key to match the native <select>
901
- if (isOpenKey || ((this.multiple || event.altKey) && isArrowKey)) {
919
+ if ((isOpenKey && !keycodes.hasModifierKey(event)) || ((this.multiple || event.altKey) && isArrowKey)) {
902
920
  event.preventDefault(); // prevents the page from scrolling down when pressing space
903
921
  this.open();
904
922
  }
@@ -912,13 +930,16 @@ var MatSelect = /** @class */ (function (_super) {
912
930
  }
913
931
  }
914
932
  };
933
+ /** Handles keyboard events when the selected is open. */
915
934
  /**
916
935
  * Handles keyboard events when the selected is open.
936
+ * @private
917
937
  * @param {?} event
918
938
  * @return {?}
919
939
  */
920
940
  MatSelect.prototype._handleOpenKeydown = /**
921
941
  * Handles keyboard events when the selected is open.
942
+ * @private
922
943
  * @param {?} event
923
944
  * @return {?}
924
945
  */
@@ -938,7 +959,8 @@ var MatSelect = /** @class */ (function (_super) {
938
959
  event.preventDefault();
939
960
  this.close();
940
961
  }
941
- else if ((keyCode === keycodes.ENTER || keyCode === keycodes.SPACE) && manager.activeItem) {
962
+ else if ((keyCode === keycodes.ENTER || keyCode === keycodes.SPACE) && manager.activeItem &&
963
+ !keycodes.hasModifierKey(event)) {
942
964
  event.preventDefault();
943
965
  manager.activeItem._selectViaInteraction();
944
966
  }
@@ -1028,12 +1050,19 @@ var MatSelect = /** @class */ (function (_super) {
1028
1050
  function () {
1029
1051
  return this._parentFormField ? "mat-" + this._parentFormField.color : '';
1030
1052
  };
1053
+ // TODO(josephperrott): Remove after 2018 spec updates are fully merged.
1054
+ /** Sets the pseudo checkbox padding size based on the width of the pseudo checkbox. */
1055
+ // TODO(josephperrott): Remove after 2018 spec updates are fully merged.
1031
1056
  /**
1032
1057
  * Sets the pseudo checkbox padding size based on the width of the pseudo checkbox.
1058
+ * @private
1033
1059
  * @return {?}
1034
1060
  */
1035
- MatSelect.prototype._setPseudoCheckboxPaddingSize = /**
1061
+ MatSelect.prototype._setPseudoCheckboxPaddingSize =
1062
+ // TODO(josephperrott): Remove after 2018 spec updates are fully merged.
1063
+ /**
1036
1064
  * Sets the pseudo checkbox padding size based on the width of the pseudo checkbox.
1065
+ * @private
1037
1066
  * @return {?}
1038
1067
  */
1039
1068
  function () {
@@ -1058,9 +1087,11 @@ var MatSelect = /** @class */ (function (_super) {
1058
1087
  configurable: true
1059
1088
  });
1060
1089
  /**
1090
+ * @private
1061
1091
  * @return {?}
1062
1092
  */
1063
1093
  MatSelect.prototype._initializeSelection = /**
1094
+ * @private
1064
1095
  * @return {?}
1065
1096
  */
1066
1097
  function () {
@@ -1074,12 +1105,18 @@ var MatSelect = /** @class */ (function (_super) {
1074
1105
  /**
1075
1106
  * Sets the selected option based on a value. If no option can be
1076
1107
  * found with the designated value, the select trigger is cleared.
1108
+ */
1109
+ /**
1110
+ * Sets the selected option based on a value. If no option can be
1111
+ * found with the designated value, the select trigger is cleared.
1112
+ * @private
1077
1113
  * @param {?} value
1078
1114
  * @return {?}
1079
1115
  */
1080
1116
  MatSelect.prototype._setSelectionByValue = /**
1081
1117
  * Sets the selected option based on a value. If no option can be
1082
1118
  * found with the designated value, the select trigger is cleared.
1119
+ * @private
1083
1120
  * @param {?} value
1084
1121
  * @return {?}
1085
1122
  */
@@ -1107,11 +1144,17 @@ var MatSelect = /** @class */ (function (_super) {
1107
1144
  };
1108
1145
  /**
1109
1146
  * Finds and selects and option based on its value.
1147
+ * @returns Option that has the corresponding value.
1148
+ */
1149
+ /**
1150
+ * Finds and selects and option based on its value.
1151
+ * @private
1110
1152
  * @param {?} value
1111
1153
  * @return {?} Option that has the corresponding value.
1112
1154
  */
1113
1155
  MatSelect.prototype._selectValue = /**
1114
1156
  * Finds and selects and option based on its value.
1157
+ * @private
1115
1158
  * @param {?} value
1116
1159
  * @return {?} Option that has the corresponding value.
1117
1160
  */
@@ -1136,12 +1179,15 @@ var MatSelect = /** @class */ (function (_super) {
1136
1179
  }
1137
1180
  return correspondingOption;
1138
1181
  };
1182
+ /** Sets up a key manager to listen to keyboard events on the overlay panel. */
1139
1183
  /**
1140
1184
  * Sets up a key manager to listen to keyboard events on the overlay panel.
1185
+ * @private
1141
1186
  * @return {?}
1142
1187
  */
1143
1188
  MatSelect.prototype._initKeyManager = /**
1144
1189
  * Sets up a key manager to listen to keyboard events on the overlay panel.
1190
+ * @private
1145
1191
  * @return {?}
1146
1192
  */
1147
1193
  function () {
@@ -1149,7 +1195,8 @@ var MatSelect = /** @class */ (function (_super) {
1149
1195
  this._keyManager = new a11y.ActiveDescendantKeyManager(this.options)
1150
1196
  .withTypeAhead()
1151
1197
  .withVerticalOrientation()
1152
- .withHorizontalOrientation(this._isRtl() ? 'rtl' : 'ltr');
1198
+ .withHorizontalOrientation(this._isRtl() ? 'rtl' : 'ltr')
1199
+ .withAllowedModifierKeys(['shiftKey']);
1153
1200
  this._keyManager.tabOut.pipe(operators.takeUntil(this._destroy)).subscribe(function () {
1154
1201
  // Restore focus to the trigger before closing. Ensures that the focus
1155
1202
  // position won't be lost if the user got focus into the overlay.
@@ -1165,12 +1212,15 @@ var MatSelect = /** @class */ (function (_super) {
1165
1212
  }
1166
1213
  });
1167
1214
  };
1215
+ /** Drops current option subscriptions and IDs and resets from scratch. */
1168
1216
  /**
1169
1217
  * Drops current option subscriptions and IDs and resets from scratch.
1218
+ * @private
1170
1219
  * @return {?}
1171
1220
  */
1172
1221
  MatSelect.prototype._resetOptions = /**
1173
1222
  * Drops current option subscriptions and IDs and resets from scratch.
1223
+ * @private
1174
1224
  * @return {?}
1175
1225
  */
1176
1226
  function () {
@@ -1193,14 +1243,17 @@ var MatSelect = /** @class */ (function (_super) {
1193
1243
  });
1194
1244
  this._setOptionIds();
1195
1245
  };
1246
+ /** Invoked when an option is clicked. */
1196
1247
  /**
1197
1248
  * Invoked when an option is clicked.
1249
+ * @private
1198
1250
  * @param {?} option
1199
1251
  * @param {?} isUserInput
1200
1252
  * @return {?}
1201
1253
  */
1202
1254
  MatSelect.prototype._onSelect = /**
1203
1255
  * Invoked when an option is clicked.
1256
+ * @private
1204
1257
  * @param {?} option
1205
1258
  * @param {?} isUserInput
1206
1259
  * @return {?}
@@ -1234,12 +1287,15 @@ var MatSelect = /** @class */ (function (_super) {
1234
1287
  }
1235
1288
  this.stateChanges.next();
1236
1289
  };
1290
+ /** Sorts the selected values in the selected based on their order in the panel. */
1237
1291
  /**
1238
1292
  * Sorts the selected values in the selected based on their order in the panel.
1293
+ * @private
1239
1294
  * @return {?}
1240
1295
  */
1241
1296
  MatSelect.prototype._sortValues = /**
1242
1297
  * Sorts the selected values in the selected based on their order in the panel.
1298
+ * @private
1243
1299
  * @return {?}
1244
1300
  */
1245
1301
  function () {
@@ -1254,13 +1310,16 @@ var MatSelect = /** @class */ (function (_super) {
1254
1310
  this.stateChanges.next();
1255
1311
  }
1256
1312
  };
1313
+ /** Emits change event to set the model value. */
1257
1314
  /**
1258
1315
  * Emits change event to set the model value.
1316
+ * @private
1259
1317
  * @param {?=} fallbackValue
1260
1318
  * @return {?}
1261
1319
  */
1262
1320
  MatSelect.prototype._propagateChanges = /**
1263
1321
  * Emits change event to set the model value.
1322
+ * @private
1264
1323
  * @param {?=} fallbackValue
1265
1324
  * @return {?}
1266
1325
  */
@@ -1268,10 +1327,10 @@ var MatSelect = /** @class */ (function (_super) {
1268
1327
  /** @type {?} */
1269
1328
  var valueToEmit = null;
1270
1329
  if (this.multiple) {
1271
- valueToEmit = (/** @type {?} */ (this.selected)).map(function (option) { return option.value; });
1330
+ valueToEmit = ((/** @type {?} */ (this.selected))).map(function (option) { return option.value; });
1272
1331
  }
1273
1332
  else {
1274
- valueToEmit = this.selected ? (/** @type {?} */ (this.selected)).value : fallbackValue;
1333
+ valueToEmit = this.selected ? ((/** @type {?} */ (this.selected))).value : fallbackValue;
1275
1334
  }
1276
1335
  this._value = valueToEmit;
1277
1336
  this.valueChange.emit(valueToEmit);
@@ -1279,12 +1338,15 @@ var MatSelect = /** @class */ (function (_super) {
1279
1338
  this.selectionChange.emit(new MatSelectChange(this, valueToEmit));
1280
1339
  this._changeDetectorRef.markForCheck();
1281
1340
  };
1341
+ /** Records option IDs to pass to the aria-owns property. */
1282
1342
  /**
1283
1343
  * Records option IDs to pass to the aria-owns property.
1344
+ * @private
1284
1345
  * @return {?}
1285
1346
  */
1286
1347
  MatSelect.prototype._setOptionIds = /**
1287
1348
  * Records option IDs to pass to the aria-owns property.
1349
+ * @private
1288
1350
  * @return {?}
1289
1351
  */
1290
1352
  function () {
@@ -1293,11 +1355,17 @@ var MatSelect = /** @class */ (function (_super) {
1293
1355
  /**
1294
1356
  * Highlights the selected item. If no option is selected, it will highlight
1295
1357
  * the first item instead.
1358
+ */
1359
+ /**
1360
+ * Highlights the selected item. If no option is selected, it will highlight
1361
+ * the first item instead.
1362
+ * @private
1296
1363
  * @return {?}
1297
1364
  */
1298
1365
  MatSelect.prototype._highlightCorrectOption = /**
1299
1366
  * Highlights the selected item. If no option is selected, it will highlight
1300
1367
  * the first item instead.
1368
+ * @private
1301
1369
  * @return {?}
1302
1370
  */
1303
1371
  function () {
@@ -1310,12 +1378,15 @@ var MatSelect = /** @class */ (function (_super) {
1310
1378
  }
1311
1379
  }
1312
1380
  };
1381
+ /** Scrolls the active option into view. */
1313
1382
  /**
1314
1383
  * Scrolls the active option into view.
1384
+ * @private
1315
1385
  * @return {?}
1316
1386
  */
1317
1387
  MatSelect.prototype._scrollActiveOptionIntoView = /**
1318
1388
  * Scrolls the active option into view.
1389
+ * @private
1319
1390
  * @return {?}
1320
1391
  */
1321
1392
  function () {
@@ -1337,13 +1408,16 @@ var MatSelect = /** @class */ (function (_super) {
1337
1408
  function () {
1338
1409
  this._elementRef.nativeElement.focus();
1339
1410
  };
1411
+ /** Gets the index of the provided option in the option list. */
1340
1412
  /**
1341
1413
  * Gets the index of the provided option in the option list.
1414
+ * @private
1342
1415
  * @param {?} option
1343
1416
  * @return {?}
1344
1417
  */
1345
1418
  MatSelect.prototype._getOptionIndex = /**
1346
1419
  * Gets the index of the provided option in the option list.
1420
+ * @private
1347
1421
  * @param {?} option
1348
1422
  * @return {?}
1349
1423
  */
@@ -1352,12 +1426,15 @@ var MatSelect = /** @class */ (function (_super) {
1352
1426
  return result === undefined ? (option === current ? index : undefined) : result;
1353
1427
  }, undefined);
1354
1428
  };
1429
+ /** Calculates the scroll position and x- and y-offsets of the overlay panel. */
1355
1430
  /**
1356
1431
  * Calculates the scroll position and x- and y-offsets of the overlay panel.
1432
+ * @private
1357
1433
  * @return {?}
1358
1434
  */
1359
1435
  MatSelect.prototype._calculateOverlayPosition = /**
1360
1436
  * Calculates the scroll position and x- and y-offsets of the overlay panel.
1437
+ * @private
1361
1438
  * @return {?}
1362
1439
  */
1363
1440
  function () {
@@ -1369,11 +1446,15 @@ var MatSelect = /** @class */ (function (_super) {
1369
1446
  var panelHeight = Math.min(items * itemHeight, SELECT_PANEL_MAX_HEIGHT);
1370
1447
  /** @type {?} */
1371
1448
  var scrollContainerHeight = items * itemHeight;
1449
+ // The farthest the panel can be scrolled before it hits the bottom
1372
1450
  /** @type {?} */
1373
1451
  var maxScroll = scrollContainerHeight - panelHeight;
1452
+ // If no value is selected we open the popup to the first item.
1374
1453
  /** @type {?} */
1375
- var selectedOptionOffset = this.empty ? 0 : /** @type {?} */ ((this._getOptionIndex(this._selectionModel.selected[0])));
1454
+ var selectedOptionOffset = this.empty ? 0 : (/** @type {?} */ (this._getOptionIndex(this._selectionModel.selected[0])));
1376
1455
  selectedOptionOffset += core$1._countGroupLabelsBeforeOption(selectedOptionOffset, this.options, this.optionGroups);
1456
+ // We must maintain a scroll buffer so the selected option will be scrolled to the
1457
+ // center of the overlay panel rather than the top.
1377
1458
  /** @type {?} */
1378
1459
  var scrollBuffer = panelHeight / 2;
1379
1460
  this._scrollTop = this._calculateOverlayScroll(selectedOptionOffset, scrollBuffer, maxScroll);
@@ -1416,6 +1497,10 @@ var MatSelect = /** @class */ (function (_super) {
1416
1497
  var optionOffsetFromScrollTop = itemHeight * selectedIndex;
1417
1498
  /** @type {?} */
1418
1499
  var halfOptionHeight = itemHeight / 2;
1500
+ // Starts at the optionOffsetFromScrollTop, which scrolls the option to the top of the
1501
+ // scroll container, then subtracts the scroll buffer to scroll the option down to
1502
+ // the center of the overlay panel. Half the option height must be re-added to the
1503
+ // scrollTop so the option is centered based on its middle, not its top edge.
1419
1504
  /** @type {?} */
1420
1505
  var optimalScrollPosition = optionOffsetFromScrollTop - scrollBuffer + halfOptionHeight;
1421
1506
  return Math.min(Math.max(0, optimalScrollPosition), maxScroll);
@@ -1476,6 +1561,14 @@ var MatSelect = /** @class */ (function (_super) {
1476
1561
  * the panel opens. Will change based on LTR or RTL text direction. Note that the offset
1477
1562
  * can't be calculated until the panel has been attached, because we need to know the
1478
1563
  * content width in order to constrain the panel within the viewport.
1564
+ */
1565
+ /**
1566
+ * Sets the x-offset of the overlay panel in relation to the trigger's top start corner.
1567
+ * This must be adjusted to align the selected option text over the trigger text when
1568
+ * the panel opens. Will change based on LTR or RTL text direction. Note that the offset
1569
+ * can't be calculated until the panel has been attached, because we need to know the
1570
+ * content width in order to constrain the panel within the viewport.
1571
+ * @private
1479
1572
  * @return {?}
1480
1573
  */
1481
1574
  MatSelect.prototype._calculateOverlayOffsetX = /**
@@ -1484,6 +1577,7 @@ var MatSelect = /** @class */ (function (_super) {
1484
1577
  * the panel opens. Will change based on LTR or RTL text direction. Note that the offset
1485
1578
  * can't be calculated until the panel has been attached, because we need to know the
1486
1579
  * content width in order to constrain the panel within the viewport.
1580
+ * @private
1487
1581
  * @return {?}
1488
1582
  */
1489
1583
  function () {
@@ -1511,6 +1605,7 @@ var MatSelect = /** @class */ (function (_super) {
1511
1605
  if (!isRtl) {
1512
1606
  offsetX *= -1;
1513
1607
  }
1608
+ // Determine how much the select overflows on each side.
1514
1609
  /** @type {?} */
1515
1610
  var leftOverflow = 0 - (overlayRect.left + offsetX - (isRtl ? paddingWidth : 0));
1516
1611
  /** @type {?} */
@@ -1533,6 +1628,12 @@ var MatSelect = /** @class */ (function (_super) {
1533
1628
  * Calculates the y-offset of the select's overlay panel in relation to the
1534
1629
  * top start corner of the trigger. It has to be adjusted in order for the
1535
1630
  * selected option to be aligned over the trigger when the panel opens.
1631
+ */
1632
+ /**
1633
+ * Calculates the y-offset of the select's overlay panel in relation to the
1634
+ * top start corner of the trigger. It has to be adjusted in order for the
1635
+ * selected option to be aligned over the trigger when the panel opens.
1636
+ * @private
1536
1637
  * @param {?} selectedIndex
1537
1638
  * @param {?} scrollBuffer
1538
1639
  * @param {?} maxScroll
@@ -1542,6 +1643,7 @@ var MatSelect = /** @class */ (function (_super) {
1542
1643
  * Calculates the y-offset of the select's overlay panel in relation to the
1543
1644
  * top start corner of the trigger. It has to be adjusted in order for the
1544
1645
  * selected option to be aligned over the trigger when the panel opens.
1646
+ * @private
1545
1647
  * @param {?} selectedIndex
1546
1648
  * @param {?} scrollBuffer
1547
1649
  * @param {?} maxScroll
@@ -1568,6 +1670,8 @@ var MatSelect = /** @class */ (function (_super) {
1568
1670
  var firstDisplayedIndex = this._getItemCount() - maxOptionsDisplayed;
1569
1671
  /** @type {?} */
1570
1672
  var selectedDisplayIndex = selectedIndex - firstDisplayedIndex;
1673
+ // The first item is partially out of the viewport. Therefore we need to calculate what
1674
+ // portion of it is shown in the viewport and account for it in our offset.
1571
1675
  /** @type {?} */
1572
1676
  var partialItemHeight = itemHeight - (this._getItemCount() * itemHeight - SELECT_PANEL_MAX_HEIGHT) % itemHeight;
1573
1677
  // Because the panel height is longer than the height of the options alone,
@@ -1592,6 +1696,13 @@ var MatSelect = /** @class */ (function (_super) {
1592
1696
  * If it will not fit, tries to adjust the scroll position and the associated
1593
1697
  * y-offset so the panel can open fully on-screen. If it still won't fit,
1594
1698
  * sets the offset back to 0 to allow the fallback position to take over.
1699
+ */
1700
+ /**
1701
+ * Checks that the attempted overlay position will fit within the viewport.
1702
+ * If it will not fit, tries to adjust the scroll position and the associated
1703
+ * y-offset so the panel can open fully on-screen. If it still won't fit,
1704
+ * sets the offset back to 0 to allow the fallback position to take over.
1705
+ * @private
1595
1706
  * @param {?} maxScroll
1596
1707
  * @return {?}
1597
1708
  */
@@ -1600,6 +1711,7 @@ var MatSelect = /** @class */ (function (_super) {
1600
1711
  * If it will not fit, tries to adjust the scroll position and the associated
1601
1712
  * y-offset so the panel can open fully on-screen. If it still won't fit,
1602
1713
  * sets the offset back to 0 to allow the fallback position to take over.
1714
+ * @private
1603
1715
  * @param {?} maxScroll
1604
1716
  * @return {?}
1605
1717
  */
@@ -1628,19 +1740,23 @@ var MatSelect = /** @class */ (function (_super) {
1628
1740
  this._transformOrigin = this._getOriginBasedOnOption();
1629
1741
  }
1630
1742
  };
1743
+ /** Adjusts the overlay panel up to fit in the viewport. */
1631
1744
  /**
1632
1745
  * Adjusts the overlay panel up to fit in the viewport.
1746
+ * @private
1633
1747
  * @param {?} panelHeightBottom
1634
1748
  * @param {?} bottomSpaceAvailable
1635
1749
  * @return {?}
1636
1750
  */
1637
1751
  MatSelect.prototype._adjustPanelUp = /**
1638
1752
  * Adjusts the overlay panel up to fit in the viewport.
1753
+ * @private
1639
1754
  * @param {?} panelHeightBottom
1640
1755
  * @param {?} bottomSpaceAvailable
1641
1756
  * @return {?}
1642
1757
  */
1643
1758
  function (panelHeightBottom, bottomSpaceAvailable) {
1759
+ // Browsers ignore fractional scroll offsets, so we need to round.
1644
1760
  /** @type {?} */
1645
1761
  var distanceBelowViewport = Math.round(panelHeightBottom - bottomSpaceAvailable);
1646
1762
  // Scrolls the panel up by the distance it was extending past the boundary, then
@@ -1657,8 +1773,10 @@ var MatSelect = /** @class */ (function (_super) {
1657
1773
  this._transformOrigin = "50% bottom 0px";
1658
1774
  }
1659
1775
  };
1776
+ /** Adjusts the overlay panel down to fit in the viewport. */
1660
1777
  /**
1661
1778
  * Adjusts the overlay panel down to fit in the viewport.
1779
+ * @private
1662
1780
  * @param {?} panelHeightTop
1663
1781
  * @param {?} topSpaceAvailable
1664
1782
  * @param {?} maxScroll
@@ -1666,12 +1784,14 @@ var MatSelect = /** @class */ (function (_super) {
1666
1784
  */
1667
1785
  MatSelect.prototype._adjustPanelDown = /**
1668
1786
  * Adjusts the overlay panel down to fit in the viewport.
1787
+ * @private
1669
1788
  * @param {?} panelHeightTop
1670
1789
  * @param {?} topSpaceAvailable
1671
1790
  * @param {?} maxScroll
1672
1791
  * @return {?}
1673
1792
  */
1674
1793
  function (panelHeightTop, topSpaceAvailable, maxScroll) {
1794
+ // Browsers ignore fractional scroll offsets, so we need to round.
1675
1795
  /** @type {?} */
1676
1796
  var distanceAboveViewport = Math.round(panelHeightTop - topSpaceAvailable);
1677
1797
  // Scrolls the panel down by the distance it was extending past the boundary, then
@@ -1689,12 +1809,15 @@ var MatSelect = /** @class */ (function (_super) {
1689
1809
  return;
1690
1810
  }
1691
1811
  };
1812
+ /** Sets the transform origin point based on the selected option. */
1692
1813
  /**
1693
1814
  * Sets the transform origin point based on the selected option.
1815
+ * @private
1694
1816
  * @return {?}
1695
1817
  */
1696
1818
  MatSelect.prototype._getOriginBasedOnOption = /**
1697
1819
  * Sets the transform origin point based on the selected option.
1820
+ * @private
1698
1821
  * @return {?}
1699
1822
  */
1700
1823
  function () {
@@ -1706,23 +1829,29 @@ var MatSelect = /** @class */ (function (_super) {
1706
1829
  var originY = Math.abs(this._offsetY) - optionHeightAdjustment + itemHeight / 2;
1707
1830
  return "50% " + originY + "px 0px";
1708
1831
  };
1832
+ /** Calculates the amount of items in the select. This includes options and group labels. */
1709
1833
  /**
1710
1834
  * Calculates the amount of items in the select. This includes options and group labels.
1835
+ * @private
1711
1836
  * @return {?}
1712
1837
  */
1713
1838
  MatSelect.prototype._getItemCount = /**
1714
1839
  * Calculates the amount of items in the select. This includes options and group labels.
1840
+ * @private
1715
1841
  * @return {?}
1716
1842
  */
1717
1843
  function () {
1718
1844
  return this.options.length + this.optionGroups.length;
1719
1845
  };
1846
+ /** Calculates the height of the select's options. */
1720
1847
  /**
1721
1848
  * Calculates the height of the select's options.
1849
+ * @private
1722
1850
  * @return {?}
1723
1851
  */
1724
1852
  MatSelect.prototype._getItemHeight = /**
1725
1853
  * Calculates the height of the select's options.
1854
+ * @private
1726
1855
  * @return {?}
1727
1856
  */
1728
1857
  function () {
@@ -1865,7 +1994,7 @@ var MatSelect = /** @class */ (function (_super) {
1865
1994
 
1866
1995
  /**
1867
1996
  * @fileoverview added by tsickle
1868
- * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
1997
+ * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
1869
1998
  */
1870
1999
  var MatSelectModule = /** @class */ (function () {
1871
2000
  function MatSelectModule() {