@angular/material 7.1.0 → 7.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (495) hide show
  1. package/LICENSE +1 -1
  2. package/_theming.scss +50 -19
  3. package/autocomplete/typings/index.d.ts +0 -1
  4. package/autocomplete/typings/index.metadata.json +1 -1
  5. package/autocomplete/typings/public-api.d.ts +1 -0
  6. package/badge/typings/index.metadata.json +1 -1
  7. package/bottom-sheet/typings/bottom-sheet-ref.d.ts +2 -0
  8. package/bottom-sheet/typings/index.metadata.json +1 -1
  9. package/bundles/material-autocomplete.umd.js +139 -39
  10. package/bundles/material-autocomplete.umd.js.map +1 -1
  11. package/bundles/material-autocomplete.umd.min.js +1 -1
  12. package/bundles/material-autocomplete.umd.min.js.map +1 -1
  13. package/bundles/material-badge.umd.js +38 -5
  14. package/bundles/material-badge.umd.js.map +1 -1
  15. package/bundles/material-badge.umd.min.js +1 -1
  16. package/bundles/material-badge.umd.min.js.map +1 -1
  17. package/bundles/material-bottom-sheet.umd.js +67 -22
  18. package/bundles/material-bottom-sheet.umd.js.map +1 -1
  19. package/bundles/material-bottom-sheet.umd.min.js +1 -1
  20. package/bundles/material-bottom-sheet.umd.min.js.map +1 -1
  21. package/bundles/material-button-toggle.umd.js +45 -14
  22. package/bundles/material-button-toggle.umd.js.map +1 -1
  23. package/bundles/material-button-toggle.umd.min.js +1 -1
  24. package/bundles/material-button-toggle.umd.min.js.map +1 -1
  25. package/bundles/material-button.umd.js +21 -14
  26. package/bundles/material-button.umd.js.map +1 -1
  27. package/bundles/material-button.umd.min.js +1 -1
  28. package/bundles/material-button.umd.min.js.map +1 -1
  29. package/bundles/material-card.umd.js +3 -3
  30. package/bundles/material-card.umd.js.map +1 -1
  31. package/bundles/material-card.umd.min.js +1 -1
  32. package/bundles/material-card.umd.min.js.map +1 -1
  33. package/bundles/material-checkbox.umd.js +56 -15
  34. package/bundles/material-checkbox.umd.js.map +1 -1
  35. package/bundles/material-checkbox.umd.min.js +1 -1
  36. package/bundles/material-checkbox.umd.min.js.map +1 -1
  37. package/bundles/material-chips.umd.js +126 -38
  38. package/bundles/material-chips.umd.js.map +1 -1
  39. package/bundles/material-chips.umd.min.js +1 -1
  40. package/bundles/material-chips.umd.min.js.map +1 -1
  41. package/bundles/material-core.umd.js +190 -127
  42. package/bundles/material-core.umd.js.map +1 -1
  43. package/bundles/material-core.umd.min.js +1 -2
  44. package/bundles/material-core.umd.min.js.map +1 -1
  45. package/bundles/material-datepicker.umd.js +205 -42
  46. package/bundles/material-datepicker.umd.js.map +1 -1
  47. package/bundles/material-datepicker.umd.min.js +2 -2
  48. package/bundles/material-datepicker.umd.min.js.map +1 -1
  49. package/bundles/material-dialog.umd.js +138 -40
  50. package/bundles/material-dialog.umd.js.map +1 -1
  51. package/bundles/material-dialog.umd.min.js +1 -1
  52. package/bundles/material-dialog.umd.min.js.map +1 -1
  53. package/bundles/material-divider.umd.js +2 -2
  54. package/bundles/material-divider.umd.js.map +1 -1
  55. package/bundles/material-divider.umd.min.js.map +1 -1
  56. package/bundles/material-expansion.umd.js +52 -26
  57. package/bundles/material-expansion.umd.js.map +1 -1
  58. package/bundles/material-expansion.umd.min.js +1 -1
  59. package/bundles/material-expansion.umd.min.js.map +1 -1
  60. package/bundles/material-form-field.umd.js +123 -34
  61. package/bundles/material-form-field.umd.js.map +1 -1
  62. package/bundles/material-form-field.umd.min.js +1 -1
  63. package/bundles/material-form-field.umd.min.js.map +1 -1
  64. package/bundles/material-grid-list.umd.js +67 -16
  65. package/bundles/material-grid-list.umd.js.map +1 -1
  66. package/bundles/material-grid-list.umd.min.js +1 -1
  67. package/bundles/material-grid-list.umd.min.js.map +1 -1
  68. package/bundles/material-icon.umd.js +288 -78
  69. package/bundles/material-icon.umd.js.map +1 -1
  70. package/bundles/material-icon.umd.min.js +1 -1
  71. package/bundles/material-icon.umd.min.js.map +1 -1
  72. package/bundles/material-input.umd.js +50 -22
  73. package/bundles/material-input.umd.js.map +1 -1
  74. package/bundles/material-input.umd.min.js +1 -1
  75. package/bundles/material-input.umd.min.js.map +1 -1
  76. package/bundles/material-list.umd.js +159 -26
  77. package/bundles/material-list.umd.js.map +1 -1
  78. package/bundles/material-list.umd.min.js +2 -2
  79. package/bundles/material-list.umd.min.js.map +1 -1
  80. package/bundles/material-menu.umd.js +176 -70
  81. package/bundles/material-menu.umd.js.map +1 -1
  82. package/bundles/material-menu.umd.min.js +1 -1
  83. package/bundles/material-menu.umd.min.js.map +1 -1
  84. package/bundles/material-paginator.umd.js +25 -8
  85. package/bundles/material-paginator.umd.js.map +1 -1
  86. package/bundles/material-paginator.umd.min.js.map +1 -1
  87. package/bundles/material-progress-bar.umd.js +32 -13
  88. package/bundles/material-progress-bar.umd.js.map +1 -1
  89. package/bundles/material-progress-bar.umd.min.js +1 -1
  90. package/bundles/material-progress-bar.umd.min.js.map +1 -1
  91. package/bundles/material-progress-spinner.umd.js +30 -14
  92. package/bundles/material-progress-spinner.umd.js.map +1 -1
  93. package/bundles/material-progress-spinner.umd.min.js +1 -1
  94. package/bundles/material-progress-spinner.umd.min.js.map +1 -1
  95. package/bundles/material-radio.umd.js +38 -40
  96. package/bundles/material-radio.umd.js.map +1 -1
  97. package/bundles/material-radio.umd.min.js +1 -1
  98. package/bundles/material-radio.umd.min.js.map +1 -1
  99. package/bundles/material-select.umd.js +186 -49
  100. package/bundles/material-select.umd.js.map +1 -1
  101. package/bundles/material-select.umd.min.js +1 -1
  102. package/bundles/material-select.umd.min.js.map +1 -1
  103. package/bundles/material-sidenav.umd.js +104 -25
  104. package/bundles/material-sidenav.umd.js.map +1 -1
  105. package/bundles/material-sidenav.umd.min.js +1 -1
  106. package/bundles/material-sidenav.umd.min.js.map +1 -1
  107. package/bundles/material-slide-toggle.umd.js +31 -15
  108. package/bundles/material-slide-toggle.umd.js.map +1 -1
  109. package/bundles/material-slide-toggle.umd.min.js +1 -1
  110. package/bundles/material-slide-toggle.umd.min.js.map +1 -1
  111. package/bundles/material-slider.umd.js +88 -20
  112. package/bundles/material-slider.umd.js.map +1 -1
  113. package/bundles/material-slider.umd.min.js +1 -1
  114. package/bundles/material-slider.umd.min.js.map +1 -1
  115. package/bundles/material-snack-bar.umd.js +69 -20
  116. package/bundles/material-snack-bar.umd.js.map +1 -1
  117. package/bundles/material-snack-bar.umd.min.js +1 -1
  118. package/bundles/material-snack-bar.umd.min.js.map +1 -1
  119. package/bundles/material-sort.umd.js +46 -24
  120. package/bundles/material-sort.umd.js.map +1 -1
  121. package/bundles/material-sort.umd.min.js +1 -1
  122. package/bundles/material-sort.umd.min.js.map +1 -1
  123. package/bundles/material-stepper.umd.js +29 -20
  124. package/bundles/material-stepper.umd.js.map +1 -1
  125. package/bundles/material-stepper.umd.min.js +1 -1
  126. package/bundles/material-stepper.umd.min.js.map +1 -1
  127. package/bundles/material-table.umd.js +48 -15
  128. package/bundles/material-table.umd.js.map +1 -1
  129. package/bundles/material-table.umd.min.js +1 -1
  130. package/bundles/material-table.umd.min.js.map +1 -1
  131. package/bundles/material-tabs.umd.js +162 -61
  132. package/bundles/material-tabs.umd.js.map +1 -1
  133. package/bundles/material-tabs.umd.min.js +2 -2
  134. package/bundles/material-tabs.umd.min.js.map +1 -1
  135. package/bundles/material-toolbar.umd.js +14 -4
  136. package/bundles/material-toolbar.umd.js.map +1 -1
  137. package/bundles/material-toolbar.umd.min.js +1 -1
  138. package/bundles/material-toolbar.umd.min.js.map +1 -1
  139. package/bundles/material-tooltip.umd.js +62 -26
  140. package/bundles/material-tooltip.umd.js.map +1 -1
  141. package/bundles/material-tooltip.umd.min.js +1 -1
  142. package/bundles/material-tooltip.umd.min.js.map +1 -1
  143. package/bundles/material-tree.umd.js +25 -16
  144. package/bundles/material-tree.umd.js.map +1 -1
  145. package/bundles/material-tree.umd.min.js +1 -1
  146. package/bundles/material-tree.umd.min.js.map +1 -1
  147. package/bundles/material.umd.js +2927 -995
  148. package/bundles/material.umd.js.map +1 -1
  149. package/bundles/material.umd.min.js +18 -18
  150. package/bundles/material.umd.min.js.map +1 -1
  151. package/button/typings/button.d.ts +0 -5
  152. package/button/typings/index.metadata.json +1 -1
  153. package/button-toggle/typings/index.metadata.json +1 -1
  154. package/card/typings/index.metadata.json +1 -1
  155. package/checkbox/typings/index.metadata.json +1 -1
  156. package/chips/typings/chip-list.d.ts +2 -2
  157. package/chips/typings/chip.d.ts +2 -2
  158. package/chips/typings/index.metadata.json +1 -1
  159. package/core/typings/index.metadata.json +1 -1
  160. package/core/typings/{testing/month-constants.d.ts → month-constants.d.ts} +2 -0
  161. package/core/typings/public-api.d.ts +1 -1
  162. package/core/typings/ripple/ripple.d.ts +1 -1
  163. package/datepicker/typings/calendar.d.ts +2 -2
  164. package/datepicker/typings/index.metadata.json +1 -1
  165. package/dialog/typings/index.metadata.json +1 -1
  166. package/esm2015/autocomplete.js +73 -36
  167. package/esm2015/autocomplete.js.map +1 -1
  168. package/esm2015/badge.js +29 -6
  169. package/esm2015/badge.js.map +1 -1
  170. package/esm2015/bottom-sheet.js +44 -23
  171. package/esm2015/bottom-sheet.js.map +1 -1
  172. package/esm2015/button-toggle.js +27 -11
  173. package/esm2015/button-toggle.js.map +1 -1
  174. package/esm2015/button.js +20 -15
  175. package/esm2015/button.js.map +1 -1
  176. package/esm2015/card.js +5 -5
  177. package/esm2015/card.js.map +1 -1
  178. package/esm2015/checkbox.js +30 -12
  179. package/esm2015/checkbox.js.map +1 -1
  180. package/esm2015/chips.js +64 -30
  181. package/esm2015/chips.js.map +1 -1
  182. package/esm2015/core.js +147 -128
  183. package/esm2015/core.js.map +1 -1
  184. package/esm2015/datepicker.js +103 -37
  185. package/esm2015/datepicker.js.map +1 -1
  186. package/esm2015/dialog.js +77 -40
  187. package/esm2015/dialog.js.map +1 -1
  188. package/esm2015/divider.js +4 -4
  189. package/esm2015/divider.js.map +1 -1
  190. package/esm2015/expansion.js +56 -29
  191. package/esm2015/expansion.js.map +1 -1
  192. package/esm2015/form-field.js +95 -35
  193. package/esm2015/form-field.js.map +1 -1
  194. package/esm2015/grid-list.js +45 -17
  195. package/esm2015/grid-list.js.map +1 -1
  196. package/esm2015/icon.js +144 -67
  197. package/esm2015/icon.js.map +1 -1
  198. package/esm2015/input.js +44 -23
  199. package/esm2015/input.js.map +1 -1
  200. package/esm2015/list.js +118 -24
  201. package/esm2015/list.js.map +1 -1
  202. package/esm2015/material.js +13 -12
  203. package/esm2015/material.js.map +1 -1
  204. package/esm2015/menu.js +114 -67
  205. package/esm2015/menu.js.map +1 -1
  206. package/esm2015/paginator.js +17 -9
  207. package/esm2015/paginator.js.map +1 -1
  208. package/esm2015/progress-bar.js +26 -13
  209. package/esm2015/progress-bar.js.map +1 -1
  210. package/esm2015/progress-spinner.js +24 -14
  211. package/esm2015/progress-spinner.js.map +1 -1
  212. package/esm2015/radio.js +22 -21
  213. package/esm2015/radio.js.map +1 -1
  214. package/esm2015/select.js +112 -50
  215. package/esm2015/select.js.map +1 -1
  216. package/esm2015/sidenav.js +75 -28
  217. package/esm2015/sidenav.js.map +1 -1
  218. package/esm2015/slide-toggle.js +23 -15
  219. package/esm2015/slide-toggle.js.map +1 -1
  220. package/esm2015/slider.js +51 -23
  221. package/esm2015/slider.js.map +1 -1
  222. package/esm2015/snack-bar.js +38 -21
  223. package/esm2015/snack-bar.js.map +1 -1
  224. package/esm2015/sort.js +47 -24
  225. package/esm2015/sort.js.map +1 -1
  226. package/esm2015/stepper.js +32 -23
  227. package/esm2015/stepper.js.map +1 -1
  228. package/esm2015/table.js +51 -18
  229. package/esm2015/table.js.map +1 -1
  230. package/esm2015/tabs.js +112 -49
  231. package/esm2015/tabs.js.map +1 -1
  232. package/esm2015/toolbar.js +9 -5
  233. package/esm2015/toolbar.js.map +1 -1
  234. package/esm2015/tooltip.js +49 -28
  235. package/esm2015/tooltip.js.map +1 -1
  236. package/esm2015/tree.js +22 -17
  237. package/esm2015/tree.js.map +1 -1
  238. package/esm5/autocomplete.es5.js +141 -41
  239. package/esm5/autocomplete.es5.js.map +1 -1
  240. package/esm5/badge.es5.js +40 -7
  241. package/esm5/badge.es5.js.map +1 -1
  242. package/esm5/bottom-sheet.es5.js +68 -23
  243. package/esm5/bottom-sheet.es5.js.map +1 -1
  244. package/esm5/button-toggle.es5.js +46 -15
  245. package/esm5/button-toggle.es5.js.map +1 -1
  246. package/esm5/button.es5.js +23 -16
  247. package/esm5/button.es5.js.map +1 -1
  248. package/esm5/card.es5.js +5 -5
  249. package/esm5/card.es5.js.map +1 -1
  250. package/esm5/checkbox.es5.js +58 -17
  251. package/esm5/checkbox.es5.js.map +1 -1
  252. package/esm5/chips.es5.js +129 -41
  253. package/esm5/chips.es5.js.map +1 -1
  254. package/esm5/core.es5.js +192 -129
  255. package/esm5/core.es5.js.map +1 -1
  256. package/esm5/datepicker.es5.js +207 -44
  257. package/esm5/datepicker.es5.js.map +1 -1
  258. package/esm5/dialog.es5.js +140 -42
  259. package/esm5/dialog.es5.js.map +1 -1
  260. package/esm5/divider.es5.js +4 -4
  261. package/esm5/divider.es5.js.map +1 -1
  262. package/esm5/expansion.es5.js +54 -29
  263. package/esm5/expansion.es5.js.map +1 -1
  264. package/esm5/form-field.es5.js +126 -37
  265. package/esm5/form-field.es5.js.map +1 -1
  266. package/esm5/grid-list.es5.js +68 -17
  267. package/esm5/grid-list.es5.js.map +1 -1
  268. package/esm5/icon.es5.js +290 -80
  269. package/esm5/icon.es5.js.map +1 -1
  270. package/esm5/input.es5.js +52 -24
  271. package/esm5/input.es5.js.map +1 -1
  272. package/esm5/list.es5.js +161 -27
  273. package/esm5/list.es5.js.map +1 -1
  274. package/esm5/material.es5.js +13 -12
  275. package/esm5/material.es5.js.map +1 -1
  276. package/esm5/menu.es5.js +175 -69
  277. package/esm5/menu.es5.js.map +1 -1
  278. package/esm5/paginator.es5.js +27 -10
  279. package/esm5/paginator.es5.js.map +1 -1
  280. package/esm5/progress-bar.es5.js +33 -14
  281. package/esm5/progress-bar.es5.js.map +1 -1
  282. package/esm5/progress-spinner.es5.js +31 -15
  283. package/esm5/progress-spinner.es5.js.map +1 -1
  284. package/esm5/radio.es5.js +42 -42
  285. package/esm5/radio.es5.js.map +1 -1
  286. package/esm5/select.es5.js +189 -52
  287. package/esm5/select.es5.js.map +1 -1
  288. package/esm5/sidenav.es5.js +107 -28
  289. package/esm5/sidenav.es5.js.map +1 -1
  290. package/esm5/slide-toggle.es5.js +32 -16
  291. package/esm5/slide-toggle.es5.js.map +1 -1
  292. package/esm5/slider.es5.js +91 -23
  293. package/esm5/slider.es5.js.map +1 -1
  294. package/esm5/snack-bar.es5.js +70 -21
  295. package/esm5/snack-bar.es5.js.map +1 -1
  296. package/esm5/sort.es5.js +53 -26
  297. package/esm5/sort.es5.js.map +1 -1
  298. package/esm5/stepper.es5.js +32 -23
  299. package/esm5/stepper.es5.js.map +1 -1
  300. package/esm5/table.es5.js +51 -18
  301. package/esm5/table.es5.js.map +1 -1
  302. package/esm5/tabs.es5.js +156 -55
  303. package/esm5/tabs.es5.js.map +1 -1
  304. package/esm5/toolbar.es5.js +16 -6
  305. package/esm5/toolbar.es5.js.map +1 -1
  306. package/esm5/tooltip.es5.js +64 -28
  307. package/esm5/tooltip.es5.js.map +1 -1
  308. package/esm5/tree.es5.js +27 -18
  309. package/esm5/tree.es5.js.map +1 -1
  310. package/expansion/typings/expansion-panel-header.d.ts +2 -2
  311. package/expansion/typings/expansion-panel.d.ts +19 -2
  312. package/expansion/typings/index.metadata.json +1 -1
  313. package/form-field/typings/form-field.d.ts +15 -4
  314. package/form-field/typings/index.metadata.json +1 -1
  315. package/form-field/typings/prefix.d.ts +1 -1
  316. package/grid-list/typings/index.d.ts +1 -1
  317. package/grid-list/typings/index.metadata.json +1 -1
  318. package/icon/typings/icon-registry.d.ts +3 -2
  319. package/icon/typings/index.metadata.json +1 -1
  320. package/list/typings/index.metadata.json +1 -1
  321. package/list/typings/list.d.ts +16 -5
  322. package/list/typings/selection-list.d.ts +1 -0
  323. package/material.d.ts +1 -1
  324. package/material.metadata.json +3 -3
  325. package/menu/typings/index.d.ts +4 -4
  326. package/menu/typings/index.metadata.json +1 -1
  327. package/menu/typings/menu-directive.d.ts +1 -0
  328. package/menu/typings/menu-item.d.ts +2 -0
  329. package/menu/typings/menu-trigger.d.ts +1 -1
  330. package/package.json +5 -5
  331. package/prebuilt-themes/deeppurple-amber.css +1 -1
  332. package/prebuilt-themes/indigo-pink.css +1 -1
  333. package/prebuilt-themes/pink-bluegrey.css +1 -1
  334. package/prebuilt-themes/purple-green.css +1 -1
  335. package/progress-bar/typings/index.metadata.json +1 -1
  336. package/radio/typings/index.metadata.json +1 -1
  337. package/radio/typings/radio.d.ts +2 -6
  338. package/schematics/ng-add/theming/{custom-theme.d.ts → create-custom-theme.d.ts} +0 -0
  339. package/schematics/ng-add/theming/{custom-theme.js → create-custom-theme.js} +1 -1
  340. package/schematics/ng-add/theming/create-custom-theme.js.map +1 -0
  341. package/schematics/ng-add/theming/theming.js +35 -19
  342. package/schematics/ng-add/theming/theming.js.map +1 -1
  343. package/schematics/ng-generate/address-form/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.ts +2 -2
  344. package/schematics/ng-generate/dashboard/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.ts +2 -2
  345. package/schematics/ng-generate/nav/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.ts +2 -2
  346. package/schematics/ng-generate/table/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.ts +2 -2
  347. package/schematics/ng-generate/tree/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.ts +2 -2
  348. package/select/typings/index.metadata.json +1 -1
  349. package/select/typings/select.d.ts +12 -2
  350. package/sidenav/typings/drawer.d.ts +9 -2
  351. package/sidenav/typings/index.metadata.json +1 -1
  352. package/slide-toggle/typings/index.metadata.json +1 -1
  353. package/slider/typings/index.metadata.json +1 -1
  354. package/snack-bar/typings/index.metadata.json +1 -1
  355. package/sort/typings/index.metadata.json +1 -1
  356. package/stepper/typings/index.metadata.json +1 -1
  357. package/table/typings/index.metadata.json +1 -1
  358. package/table/typings/table-data-source.d.ts +2 -0
  359. package/tabs/typings/index.d.ts +5 -5
  360. package/tabs/typings/index.metadata.json +1 -1
  361. package/tabs/typings/tab-group.d.ts +2 -1
  362. package/tabs/typings/tab-header.d.ts +8 -4
  363. package/toolbar/typings/index.metadata.json +1 -1
  364. package/tooltip/typings/index.metadata.json +1 -1
  365. package/tooltip/typings/tooltip.d.ts +2 -1
  366. package/tree/typings/data-source/flat-data-source.d.ts +2 -2
  367. package/tree/typings/index.metadata.json +1 -1
  368. package/typings/autocomplete/index.d.ts +0 -1
  369. package/typings/autocomplete/index.metadata.json +1 -1
  370. package/typings/autocomplete/public-api.d.ts +1 -0
  371. package/typings/badge/index.metadata.json +1 -1
  372. package/typings/bottom-sheet/bottom-sheet-ref.d.ts +2 -0
  373. package/typings/bottom-sheet/index.metadata.json +1 -1
  374. package/typings/button/button.d.ts +0 -5
  375. package/typings/button/index.metadata.json +1 -1
  376. package/typings/button-toggle/index.metadata.json +1 -1
  377. package/typings/card/index.metadata.json +1 -1
  378. package/typings/checkbox/index.metadata.json +1 -1
  379. package/typings/chips/chip-list.d.ts +2 -2
  380. package/typings/chips/chip.d.ts +2 -2
  381. package/typings/chips/index.metadata.json +1 -1
  382. package/typings/core/index.metadata.json +1 -1
  383. package/typings/core/{testing/month-constants.d.ts → month-constants.d.ts} +2 -0
  384. package/typings/core/public-api.d.ts +1 -1
  385. package/typings/core/ripple/ripple.d.ts +1 -1
  386. package/typings/datepicker/calendar.d.ts +2 -2
  387. package/typings/datepicker/index.metadata.json +1 -1
  388. package/typings/dialog/index.metadata.json +1 -1
  389. package/typings/esm5/autocomplete/index.d.ts +0 -1
  390. package/typings/esm5/autocomplete/index.metadata.json +1 -1
  391. package/typings/esm5/autocomplete/public-api.d.ts +1 -0
  392. package/typings/esm5/badge/index.metadata.json +1 -1
  393. package/typings/esm5/bottom-sheet/bottom-sheet-ref.d.ts +2 -0
  394. package/typings/esm5/bottom-sheet/index.metadata.json +1 -1
  395. package/typings/esm5/button/button.d.ts +0 -5
  396. package/typings/esm5/button/index.metadata.json +1 -1
  397. package/typings/esm5/button-toggle/index.metadata.json +1 -1
  398. package/typings/esm5/card/index.metadata.json +1 -1
  399. package/typings/esm5/checkbox/index.metadata.json +1 -1
  400. package/typings/esm5/chips/chip-list.d.ts +2 -2
  401. package/typings/esm5/chips/chip.d.ts +2 -2
  402. package/typings/esm5/chips/index.metadata.json +1 -1
  403. package/typings/esm5/core/index.metadata.json +1 -1
  404. package/typings/esm5/core/{testing/month-constants.d.ts → month-constants.d.ts} +2 -0
  405. package/typings/esm5/core/public-api.d.ts +1 -1
  406. package/typings/esm5/core/ripple/ripple.d.ts +1 -1
  407. package/typings/esm5/datepicker/calendar.d.ts +2 -2
  408. package/typings/esm5/datepicker/index.metadata.json +1 -1
  409. package/typings/esm5/dialog/index.metadata.json +1 -1
  410. package/typings/esm5/expansion/expansion-panel-header.d.ts +2 -2
  411. package/typings/esm5/expansion/expansion-panel.d.ts +19 -2
  412. package/typings/esm5/expansion/index.metadata.json +1 -1
  413. package/typings/esm5/form-field/form-field.d.ts +15 -4
  414. package/typings/esm5/form-field/index.metadata.json +1 -1
  415. package/typings/esm5/form-field/prefix.d.ts +1 -1
  416. package/typings/esm5/grid-list/index.d.ts +1 -1
  417. package/typings/esm5/grid-list/index.metadata.json +1 -1
  418. package/typings/esm5/icon/icon-registry.d.ts +3 -2
  419. package/typings/esm5/icon/index.metadata.json +1 -1
  420. package/typings/esm5/index.metadata.json +1 -1
  421. package/typings/esm5/list/index.metadata.json +1 -1
  422. package/typings/esm5/list/list.d.ts +16 -5
  423. package/typings/esm5/list/selection-list.d.ts +1 -0
  424. package/typings/esm5/menu/index.d.ts +4 -4
  425. package/typings/esm5/menu/index.metadata.json +1 -1
  426. package/typings/esm5/menu/menu-directive.d.ts +1 -0
  427. package/typings/esm5/menu/menu-item.d.ts +2 -0
  428. package/typings/esm5/menu/menu-trigger.d.ts +1 -1
  429. package/typings/esm5/progress-bar/index.metadata.json +1 -1
  430. package/typings/esm5/radio/index.metadata.json +1 -1
  431. package/typings/esm5/radio/radio.d.ts +2 -6
  432. package/typings/esm5/select/index.metadata.json +1 -1
  433. package/typings/esm5/select/select.d.ts +12 -2
  434. package/typings/esm5/sidenav/drawer.d.ts +9 -2
  435. package/typings/esm5/sidenav/index.metadata.json +1 -1
  436. package/typings/esm5/slide-toggle/index.metadata.json +1 -1
  437. package/typings/esm5/slider/index.metadata.json +1 -1
  438. package/typings/esm5/snack-bar/index.metadata.json +1 -1
  439. package/typings/esm5/sort/index.metadata.json +1 -1
  440. package/typings/esm5/stepper/index.metadata.json +1 -1
  441. package/typings/esm5/table/index.metadata.json +1 -1
  442. package/typings/esm5/table/table-data-source.d.ts +2 -0
  443. package/typings/esm5/tabs/index.d.ts +5 -5
  444. package/typings/esm5/tabs/index.metadata.json +1 -1
  445. package/typings/esm5/tabs/tab-group.d.ts +2 -1
  446. package/typings/esm5/tabs/tab-header.d.ts +8 -4
  447. package/typings/esm5/toolbar/index.metadata.json +1 -1
  448. package/typings/esm5/tooltip/index.metadata.json +1 -1
  449. package/typings/esm5/tooltip/tooltip.d.ts +2 -1
  450. package/typings/esm5/tree/data-source/flat-data-source.d.ts +2 -2
  451. package/typings/esm5/tree/index.metadata.json +1 -1
  452. package/typings/expansion/expansion-panel-header.d.ts +2 -2
  453. package/typings/expansion/expansion-panel.d.ts +19 -2
  454. package/typings/expansion/index.metadata.json +1 -1
  455. package/typings/form-field/form-field.d.ts +15 -4
  456. package/typings/form-field/index.metadata.json +1 -1
  457. package/typings/form-field/prefix.d.ts +1 -1
  458. package/typings/grid-list/index.d.ts +1 -1
  459. package/typings/grid-list/index.metadata.json +1 -1
  460. package/typings/icon/icon-registry.d.ts +3 -2
  461. package/typings/icon/index.metadata.json +1 -1
  462. package/typings/index.metadata.json +1 -1
  463. package/typings/list/index.metadata.json +1 -1
  464. package/typings/list/list.d.ts +16 -5
  465. package/typings/list/selection-list.d.ts +1 -0
  466. package/typings/menu/index.d.ts +4 -4
  467. package/typings/menu/index.metadata.json +1 -1
  468. package/typings/menu/menu-directive.d.ts +1 -0
  469. package/typings/menu/menu-item.d.ts +2 -0
  470. package/typings/menu/menu-trigger.d.ts +1 -1
  471. package/typings/progress-bar/index.metadata.json +1 -1
  472. package/typings/radio/index.metadata.json +1 -1
  473. package/typings/radio/radio.d.ts +2 -6
  474. package/typings/schematics/ng-add/theming/{custom-theme.d.ts → create-custom-theme.d.ts} +0 -0
  475. package/typings/select/index.metadata.json +1 -1
  476. package/typings/select/select.d.ts +12 -2
  477. package/typings/sidenav/drawer.d.ts +9 -2
  478. package/typings/sidenav/index.metadata.json +1 -1
  479. package/typings/slide-toggle/index.metadata.json +1 -1
  480. package/typings/slider/index.metadata.json +1 -1
  481. package/typings/snack-bar/index.metadata.json +1 -1
  482. package/typings/sort/index.metadata.json +1 -1
  483. package/typings/stepper/index.metadata.json +1 -1
  484. package/typings/table/index.metadata.json +1 -1
  485. package/typings/table/table-data-source.d.ts +2 -0
  486. package/typings/tabs/index.d.ts +5 -5
  487. package/typings/tabs/index.metadata.json +1 -1
  488. package/typings/tabs/tab-group.d.ts +2 -1
  489. package/typings/tabs/tab-header.d.ts +8 -4
  490. package/typings/toolbar/index.metadata.json +1 -1
  491. package/typings/tooltip/index.metadata.json +1 -1
  492. package/typings/tooltip/tooltip.d.ts +2 -1
  493. package/typings/tree/data-source/flat-data-source.d.ts +2 -2
  494. package/typings/tree/index.metadata.json +1 -1
  495. package/schematics/ng-add/theming/custom-theme.js.map +0 -1
@@ -20,11 +20,12 @@ import { Directionality } from '@angular/cdk/bidi';
20
20
 
21
21
  /**
22
22
  * @fileoverview added by tsickle
23
- * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
23
+ * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
24
24
  */
25
- /** *
25
+ /**
26
26
  * Injection token that can be used to access the data that was passed in to a bottom sheet.
27
- @type {?} */
27
+ * @type {?}
28
+ */
28
29
  const MAT_BOTTOM_SHEET_DATA = new InjectionToken('MatBottomSheetData');
29
30
  /**
30
31
  * Configuration used when opening a bottom sheet.
@@ -54,10 +55,13 @@ class MatBottomSheetConfig {
54
55
  * the `HashLocationStrategy`).
55
56
  */
56
57
  this.closeOnNavigation = true;
58
+ // Note that this is disabled by default, because while the a11y recommendations are to focus
59
+ // the first focusable element, doing so prevents screen readers from reading out the
60
+ // rest of the bottom sheet content.
57
61
  /**
58
62
  * Whether the bottom sheet should focus the first focusable element on open.
59
63
  */
60
- this.autoFocus = true;
64
+ this.autoFocus = false;
61
65
  /**
62
66
  * Whether the bottom sheet should restore focus to the
63
67
  * previously-focused element, after it's closed.
@@ -68,13 +72,16 @@ class MatBottomSheetConfig {
68
72
 
69
73
  /**
70
74
  * @fileoverview added by tsickle
71
- * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
75
+ * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
72
76
  */
73
- /** *
77
+ /**
74
78
  * Animations used by the Material bottom sheet.
75
- @type {?} */
79
+ * @type {?}
80
+ */
76
81
  const matBottomSheetAnimations = {
77
- /** Animation that shows and hides a bottom sheet. */
82
+ /**
83
+ * Animation that shows and hides a bottom sheet.
84
+ */
78
85
  bottomSheetState: trigger('state', [
79
86
  state('void, hidden', style({ transform: 'translateY(100%)' })),
80
87
  state('visible', style({ transform: 'translateY(0%)' })),
@@ -85,8 +92,9 @@ const matBottomSheetAnimations = {
85
92
 
86
93
  /**
87
94
  * @fileoverview added by tsickle
88
- * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
95
+ * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
89
96
  */
97
+ // TODO(crisbeto): consolidate some logic between this, MatDialog and MatSnackBar
90
98
  /**
91
99
  * Internal component that wraps user-provided bottom sheet content.
92
100
  * \@docs-private
@@ -199,6 +207,7 @@ class MatBottomSheetContainer extends BasePortalOutlet {
199
207
  this._animationStateChanged.emit(event);
200
208
  }
201
209
  /**
210
+ * @private
202
211
  * @param {?} cssClass
203
212
  * @param {?} add
204
213
  * @return {?}
@@ -209,6 +218,7 @@ class MatBottomSheetContainer extends BasePortalOutlet {
209
218
  add ? classList.add(cssClass) : classList.remove(cssClass);
210
219
  }
211
220
  /**
221
+ * @private
212
222
  * @return {?}
213
223
  */
214
224
  _validatePortalAttached() {
@@ -217,6 +227,7 @@ class MatBottomSheetContainer extends BasePortalOutlet {
217
227
  }
218
228
  }
219
229
  /**
230
+ * @private
220
231
  * @return {?}
221
232
  */
222
233
  _setPanelClass() {
@@ -234,6 +245,7 @@ class MatBottomSheetContainer extends BasePortalOutlet {
234
245
  }
235
246
  /**
236
247
  * Moves the focus inside the focus trap.
248
+ * @private
237
249
  * @return {?}
238
250
  */
239
251
  _trapFocus() {
@@ -244,6 +256,7 @@ class MatBottomSheetContainer extends BasePortalOutlet {
244
256
  }
245
257
  /**
246
258
  * Restores focus to the element that was focused before the bottom sheet was opened.
259
+ * @private
247
260
  * @return {?}
248
261
  */
249
262
  _restoreFocus() {
@@ -259,10 +272,11 @@ class MatBottomSheetContainer extends BasePortalOutlet {
259
272
  }
260
273
  /**
261
274
  * Saves a reference to the element that was focused before the bottom sheet was opened.
275
+ * @private
262
276
  * @return {?}
263
277
  */
264
278
  _savePreviouslyFocusedElement() {
265
- this._elementFocusedBeforeOpened = /** @type {?} */ (this._document.activeElement);
279
+ this._elementFocusedBeforeOpened = (/** @type {?} */ (this._document.activeElement));
266
280
  // The `focus` method isn't available during server-side rendering.
267
281
  if (this._elementRef.nativeElement.focus) {
268
282
  Promise.resolve().then(() => this._elementRef.nativeElement.focus());
@@ -272,7 +286,7 @@ class MatBottomSheetContainer extends BasePortalOutlet {
272
286
  MatBottomSheetContainer.decorators = [
273
287
  { type: Component, args: [{selector: 'mat-bottom-sheet-container',
274
288
  template: "<ng-template cdkPortalOutlet></ng-template>",
275
- styles: [".mat-bottom-sheet-container{padding:8px 16px;min-width:100vw;box-sizing:border-box;display:block;outline:0;max-height:80vh;overflow:auto}@media screen and (-ms-high-contrast:active){.mat-bottom-sheet-container{outline:1px solid}}.mat-bottom-sheet-container-large,.mat-bottom-sheet-container-medium,.mat-bottom-sheet-container-xlarge{border-top-left-radius:4px;border-top-right-radius:4px}.mat-bottom-sheet-container-medium{min-width:384px;max-width:calc(100vw - 128px)}.mat-bottom-sheet-container-large{min-width:512px;max-width:calc(100vw - 256px)}.mat-bottom-sheet-container-xlarge{min-width:576px;max-width:calc(100vw - 384px)}"],
289
+ styles: [".mat-bottom-sheet-container{padding:8px 16px;min-width:100vw;box-sizing:border-box;display:block;outline:0;max-height:80vh;overflow:auto}@media (-ms-high-contrast:active){.mat-bottom-sheet-container{outline:1px solid}}.mat-bottom-sheet-container-large,.mat-bottom-sheet-container-medium,.mat-bottom-sheet-container-xlarge{border-top-left-radius:4px;border-top-right-radius:4px}.mat-bottom-sheet-container-medium{min-width:384px;max-width:calc(100vw - 128px)}.mat-bottom-sheet-container-large{min-width:512px;max-width:calc(100vw - 256px)}.mat-bottom-sheet-container-xlarge{min-width:576px;max-width:calc(100vw - 384px)}"],
276
290
  changeDetection: ChangeDetectionStrategy.OnPush,
277
291
  encapsulation: ViewEncapsulation.None,
278
292
  animations: [matBottomSheetAnimations.bottomSheetState],
@@ -303,7 +317,7 @@ MatBottomSheetContainer.propDecorators = {
303
317
 
304
318
  /**
305
319
  * @fileoverview added by tsickle
306
- * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
320
+ * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
307
321
  */
308
322
  class MatBottomSheetModule {
309
323
  }
@@ -323,7 +337,7 @@ MatBottomSheetModule.decorators = [
323
337
 
324
338
  /**
325
339
  * @fileoverview added by tsickle
326
- * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
340
+ * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
327
341
  */
328
342
  /**
329
343
  * Reference to a bottom sheet dispatched from the bottom sheet service.
@@ -348,6 +362,7 @@ class MatBottomSheetRef {
348
362
  */
349
363
  this._afterOpened = new Subject();
350
364
  this.containerInstance = containerInstance;
365
+ this.disableClose = containerInstance.bottomSheetConfig.disableClose;
351
366
  // Emit when opening animation completes
352
367
  containerInstance._animationStateChanged.pipe(filter(event => event.phaseName === 'done' && event.toState === 'visible'), take(1))
353
368
  .subscribe(() => {
@@ -361,9 +376,11 @@ class MatBottomSheetRef {
361
376
  this._afterDismissed.next(this._result);
362
377
  this._afterDismissed.complete();
363
378
  });
364
- if (!containerInstance.bottomSheetConfig.disableClose) {
365
- merge(_overlayRef.backdropClick(), _overlayRef.keydownEvents().pipe(filter(event => event.keyCode === ESCAPE))).subscribe(() => this.dismiss());
366
- }
379
+ merge(_overlayRef.backdropClick(), _overlayRef.keydownEvents().pipe(filter(event => event.keyCode === ESCAPE))).subscribe(() => {
380
+ if (!this.disableClose) {
381
+ this.dismiss();
382
+ }
383
+ });
367
384
  }
368
385
  /**
369
386
  * Dismisses the bottom sheet.
@@ -410,11 +427,12 @@ class MatBottomSheetRef {
410
427
 
411
428
  /**
412
429
  * @fileoverview added by tsickle
413
- * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
430
+ * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
414
431
  */
415
- /** *
432
+ /**
416
433
  * Injection token that can be used to specify default bottom sheet options.
417
- @type {?} */
434
+ * @type {?}
435
+ */
418
436
  const MAT_BOTTOM_SHEET_DEFAULT_OPTIONS = new InjectionToken('mat-bottom-sheet-default-options');
419
437
  /**
420
438
  * Service to trigger Material Design bottom sheets.
@@ -472,10 +490,10 @@ class MatBottomSheet {
472
490
  /** @type {?} */
473
491
  const ref = new MatBottomSheetRef(container, overlayRef, this._location);
474
492
  if (componentOrTemplateRef instanceof TemplateRef) {
475
- container.attachTemplatePortal(new TemplatePortal(componentOrTemplateRef, /** @type {?} */ ((null)), /** @type {?} */ ({
493
+ container.attachTemplatePortal(new TemplatePortal(componentOrTemplateRef, (/** @type {?} */ (null)), (/** @type {?} */ ({
476
494
  $implicit: _config.data,
477
495
  bottomSheetRef: ref
478
- })));
496
+ }))));
479
497
  }
480
498
  else {
481
499
  /** @type {?} */
@@ -523,6 +541,7 @@ class MatBottomSheet {
523
541
  }
524
542
  /**
525
543
  * Attaches the bottom sheet container component to the overlay.
544
+ * @private
526
545
  * @param {?} overlayRef
527
546
  * @param {?} config
528
547
  * @return {?}
@@ -542,6 +561,7 @@ class MatBottomSheet {
542
561
  }
543
562
  /**
544
563
  * Creates a new overlay and places it in the correct location.
564
+ * @private
545
565
  * @param {?} config The user-specified bottom sheet config.
546
566
  * @return {?}
547
567
  */
@@ -565,6 +585,7 @@ class MatBottomSheet {
565
585
  }
566
586
  /**
567
587
  * Creates an injector to be used inside of a bottom sheet component.
588
+ * @private
568
589
  * @template T
569
590
  * @param {?} config Config that was used to create the bottom sheet.
570
591
  * @param {?} bottomSheetRef Reference to the bottom sheet.
@@ -612,12 +633,12 @@ function _applyConfigDefaults(defaults, config) {
612
633
 
613
634
  /**
614
635
  * @fileoverview added by tsickle
615
- * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
636
+ * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
616
637
  */
617
638
 
618
639
  /**
619
640
  * @fileoverview added by tsickle
620
- * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
641
+ * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
621
642
  */
622
643
 
623
644
  export { MatBottomSheetModule, MAT_BOTTOM_SHEET_DEFAULT_OPTIONS, MatBottomSheet, MAT_BOTTOM_SHEET_DATA, MatBottomSheetConfig, MatBottomSheetContainer, matBottomSheetAnimations, MatBottomSheetRef };
@@ -1 +1 @@
1
- {"version":3,"file":"bottom-sheet.js","sources":["../../../src/lib/bottom-sheet/bottom-sheet.ts","../../../src/lib/bottom-sheet/bottom-sheet-ref.ts","../../../src/lib/bottom-sheet/bottom-sheet-module.ts","../../../src/lib/bottom-sheet/bottom-sheet-container.ts","../../../src/lib/bottom-sheet/bottom-sheet-animations.ts","../../../src/lib/bottom-sheet/bottom-sheet-config.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 {Directionality} from '@angular/cdk/bidi';\nimport {Overlay, OverlayConfig, OverlayRef} from '@angular/cdk/overlay';\nimport {ComponentPortal, ComponentType, PortalInjector, TemplatePortal} from '@angular/cdk/portal';\nimport {\n ComponentRef,\n Injectable,\n Injector,\n Optional,\n SkipSelf,\n TemplateRef,\n InjectionToken,\n Inject,\n OnDestroy,\n} from '@angular/core';\nimport {Location} from '@angular/common';\nimport {of as observableOf} from 'rxjs';\nimport {MAT_BOTTOM_SHEET_DATA, MatBottomSheetConfig} from './bottom-sheet-config';\nimport {MatBottomSheetContainer} from './bottom-sheet-container';\nimport {MatBottomSheetModule} from './bottom-sheet-module';\nimport {MatBottomSheetRef} from './bottom-sheet-ref';\n\n\n/** Injection token that can be used to specify default bottom sheet options. */\nexport const MAT_BOTTOM_SHEET_DEFAULT_OPTIONS =\n new InjectionToken<MatBottomSheetConfig>('mat-bottom-sheet-default-options');\n\n/**\n * Service to trigger Material Design bottom sheets.\n */\n@Injectable({providedIn: MatBottomSheetModule})\nexport class MatBottomSheet implements OnDestroy {\n private _bottomSheetRefAtThisLevel: MatBottomSheetRef<any> | null = null;\n\n /** Reference to the currently opened bottom sheet. */\n get _openedBottomSheetRef(): MatBottomSheetRef<any> | null {\n const parent = this._parentBottomSheet;\n return parent ? parent._openedBottomSheetRef : this._bottomSheetRefAtThisLevel;\n }\n\n set _openedBottomSheetRef(value: MatBottomSheetRef<any> | null) {\n if (this._parentBottomSheet) {\n this._parentBottomSheet._openedBottomSheetRef = value;\n } else {\n this._bottomSheetRefAtThisLevel = value;\n }\n }\n\n constructor(\n private _overlay: Overlay,\n private _injector: Injector,\n @Optional() @SkipSelf() private _parentBottomSheet: MatBottomSheet,\n @Optional() private _location?: Location,\n @Optional() @Inject(MAT_BOTTOM_SHEET_DEFAULT_OPTIONS)\n private _defaultOptions?: MatBottomSheetConfig) {}\n\n open<T, D = any, R = any>(component: ComponentType<T>,\n config?: MatBottomSheetConfig<D>): MatBottomSheetRef<T, R>;\n open<T, D = any, R = any>(template: TemplateRef<T>,\n config?: MatBottomSheetConfig<D>): MatBottomSheetRef<T, R>;\n\n open<T, D = any, R = any>(componentOrTemplateRef: ComponentType<T> | TemplateRef<T>,\n config?: MatBottomSheetConfig<D>): MatBottomSheetRef<T, R> {\n\n const _config =\n _applyConfigDefaults(this._defaultOptions || new MatBottomSheetConfig(), config);\n const overlayRef = this._createOverlay(_config);\n const container = this._attachContainer(overlayRef, _config);\n const ref = new MatBottomSheetRef<T, R>(container, overlayRef, this._location);\n\n if (componentOrTemplateRef instanceof TemplateRef) {\n container.attachTemplatePortal(new TemplatePortal<T>(componentOrTemplateRef, null!, {\n $implicit: _config.data,\n bottomSheetRef: ref\n } as any));\n } else {\n const portal = new ComponentPortal(componentOrTemplateRef, undefined,\n this._createInjector(_config, ref));\n const contentRef = container.attachComponentPortal(portal);\n ref.instance = contentRef.instance;\n }\n\n // When the bottom sheet is dismissed, clear the reference to it.\n ref.afterDismissed().subscribe(() => {\n // Clear the bottom sheet ref if it hasn't already been replaced by a newer one.\n if (this._openedBottomSheetRef == ref) {\n this._openedBottomSheetRef = null;\n }\n });\n\n if (this._openedBottomSheetRef) {\n // If a bottom sheet is already in view, dismiss it and enter the\n // new bottom sheet after exit animation is complete.\n this._openedBottomSheetRef.afterDismissed().subscribe(() => ref.containerInstance.enter());\n this._openedBottomSheetRef.dismiss();\n } else {\n // If no bottom sheet is in view, enter the new bottom sheet.\n ref.containerInstance.enter();\n }\n\n this._openedBottomSheetRef = ref;\n\n return ref;\n }\n\n /**\n * Dismisses the currently-visible bottom sheet.\n */\n dismiss(): void {\n if (this._openedBottomSheetRef) {\n this._openedBottomSheetRef.dismiss();\n }\n }\n\n ngOnDestroy() {\n if (this._bottomSheetRefAtThisLevel) {\n this._bottomSheetRefAtThisLevel.dismiss();\n }\n }\n\n /**\n * Attaches the bottom sheet container component to the overlay.\n */\n private _attachContainer(overlayRef: OverlayRef,\n config: MatBottomSheetConfig): MatBottomSheetContainer {\n\n const userInjector = config && config.viewContainerRef && config.viewContainerRef.injector;\n const injector = new PortalInjector(userInjector || this._injector, new WeakMap([\n [MatBottomSheetConfig, config]\n ]));\n\n const containerPortal =\n new ComponentPortal(MatBottomSheetContainer, config.viewContainerRef, injector);\n const containerRef: ComponentRef<MatBottomSheetContainer> = overlayRef.attach(containerPortal);\n return containerRef.instance;\n }\n\n /**\n * Creates a new overlay and places it in the correct location.\n * @param config The user-specified bottom sheet config.\n */\n private _createOverlay(config: MatBottomSheetConfig): OverlayRef {\n const overlayConfig = new OverlayConfig({\n direction: config.direction,\n hasBackdrop: config.hasBackdrop,\n disposeOnNavigation: config.closeOnNavigation,\n maxWidth: '100%',\n scrollStrategy: this._overlay.scrollStrategies.block(),\n positionStrategy: this._overlay.position()\n .global()\n .centerHorizontally()\n .bottom('0')\n });\n\n if (config.backdropClass) {\n overlayConfig.backdropClass = config.backdropClass;\n }\n\n return this._overlay.create(overlayConfig);\n }\n\n /**\n * Creates an injector to be used inside of a bottom sheet component.\n * @param config Config that was used to create the bottom sheet.\n * @param bottomSheetRef Reference to the bottom sheet.\n */\n private _createInjector<T>(config: MatBottomSheetConfig,\n bottomSheetRef: MatBottomSheetRef<T>): PortalInjector {\n\n const userInjector = config && config.viewContainerRef && config.viewContainerRef.injector;\n const injectionTokens = new WeakMap<any, any>([\n [MatBottomSheetRef, bottomSheetRef],\n [MAT_BOTTOM_SHEET_DATA, config.data]\n ]);\n\n if (config.direction &&\n (!userInjector || !userInjector.get<Directionality | null>(Directionality, null))) {\n injectionTokens.set(Directionality, {\n value: config.direction,\n change: observableOf()\n });\n }\n\n return new PortalInjector(userInjector || this._injector, injectionTokens);\n }\n}\n\n/**\n * Applies default options to the bottom sheet config.\n * @param defaults Object containing the default values to which to fall back.\n * @param config The configuration to which the defaults will be applied.\n * @returns The new configuration object with defaults applied.\n */\nfunction _applyConfigDefaults(defaults: MatBottomSheetConfig,\n config?: MatBottomSheetConfig): MatBottomSheetConfig {\n return {...defaults, ...config};\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 */\n\nimport {Location} from '@angular/common';\nimport {ESCAPE} from '@angular/cdk/keycodes';\nimport {OverlayRef} from '@angular/cdk/overlay';\nimport {merge, Observable, Subject} from 'rxjs';\nimport {filter, take} from 'rxjs/operators';\nimport {MatBottomSheetContainer} from './bottom-sheet-container';\n\n\n/**\n * Reference to a bottom sheet dispatched from the bottom sheet service.\n */\nexport class MatBottomSheetRef<T = any, R = any> {\n /** Instance of the component making up the content of the bottom sheet. */\n instance: T;\n\n /**\n * Instance of the component into which the bottom sheet content is projected.\n * @docs-private\n */\n containerInstance: MatBottomSheetContainer;\n\n /** Subject for notifying the user that the bottom sheet has been dismissed. */\n private readonly _afterDismissed = new Subject<R | undefined>();\n\n /** Subject for notifying the user that the bottom sheet has opened and appeared. */\n private readonly _afterOpened = new Subject<void>();\n\n /** Result to be passed down to the `afterDismissed` stream. */\n private _result: R | undefined;\n\n constructor(\n containerInstance: MatBottomSheetContainer,\n private _overlayRef: OverlayRef,\n // @breaking-change 8.0.0 `_location` parameter to be removed.\n _location?: Location) {\n this.containerInstance = containerInstance;\n\n // Emit when opening animation completes\n containerInstance._animationStateChanged.pipe(\n filter(event => event.phaseName === 'done' && event.toState === 'visible'),\n take(1)\n )\n .subscribe(() => {\n this._afterOpened.next();\n this._afterOpened.complete();\n });\n\n // Dispose overlay when closing animation is complete\n containerInstance._animationStateChanged.pipe(\n filter(event => event.phaseName === 'done' && event.toState === 'hidden'),\n take(1)\n )\n .subscribe(() => {\n this._overlayRef.dispose();\n this._afterDismissed.next(this._result);\n this._afterDismissed.complete();\n });\n\n if (!containerInstance.bottomSheetConfig.disableClose) {\n merge(\n _overlayRef.backdropClick(),\n _overlayRef.keydownEvents().pipe(filter(event => event.keyCode === ESCAPE))\n ).subscribe(() => this.dismiss());\n }\n }\n\n /**\n * Dismisses the bottom sheet.\n * @param result Data to be passed back to the bottom sheet opener.\n */\n dismiss(result?: R): void {\n if (!this._afterDismissed.closed) {\n // Transition the backdrop in parallel to the bottom sheet.\n this.containerInstance._animationStateChanged.pipe(\n filter(event => event.phaseName === 'start'),\n take(1)\n ).subscribe(() => this._overlayRef.detachBackdrop());\n\n this._result = result;\n this.containerInstance.exit();\n }\n }\n\n /** Gets an observable that is notified when the bottom sheet is finished closing. */\n afterDismissed(): Observable<R | undefined> {\n return this._afterDismissed.asObservable();\n }\n\n /** Gets an observable that is notified when the bottom sheet has opened and appeared. */\n afterOpened(): Observable<void> {\n return this._afterOpened.asObservable();\n }\n\n /**\n * Gets an observable that emits when the overlay's backdrop has been clicked.\n */\n backdropClick(): Observable<MouseEvent> {\n return this._overlayRef.backdropClick();\n }\n\n /**\n * Gets an observable that emits when keydown events are targeted on the overlay.\n */\n keydownEvents(): Observable<KeyboardEvent> {\n return this._overlayRef.keydownEvents();\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 */\n\nimport {OverlayModule} from '@angular/cdk/overlay';\nimport {PortalModule} from '@angular/cdk/portal';\nimport {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {MatCommonModule} from '@angular/material/core';\nimport {MatBottomSheetContainer} from './bottom-sheet-container';\n\n\n@NgModule({\n imports: [\n CommonModule,\n OverlayModule,\n MatCommonModule,\n PortalModule,\n ],\n exports: [MatBottomSheetContainer, MatCommonModule],\n declarations: [MatBottomSheetContainer],\n entryComponents: [MatBottomSheetContainer],\n})\nexport class MatBottomSheetModule {}\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 */\n\nimport {\n Component,\n ComponentRef,\n EmbeddedViewRef,\n ViewChild,\n OnDestroy,\n ElementRef,\n ChangeDetectionStrategy,\n ViewEncapsulation,\n ChangeDetectorRef,\n EventEmitter,\n Inject,\n Optional,\n} from '@angular/core';\nimport {AnimationEvent} from '@angular/animations';\nimport {\n BasePortalOutlet,\n ComponentPortal,\n TemplatePortal,\n CdkPortalOutlet,\n} from '@angular/cdk/portal';\nimport {BreakpointObserver, Breakpoints} from '@angular/cdk/layout';\nimport {MatBottomSheetConfig} from './bottom-sheet-config';\nimport {matBottomSheetAnimations} from './bottom-sheet-animations';\nimport {Subscription} from 'rxjs';\nimport {DOCUMENT} from '@angular/common';\nimport {FocusTrap, FocusTrapFactory} from '@angular/cdk/a11y';\n\n// TODO(crisbeto): consolidate some logic between this, MatDialog and MatSnackBar\n\n/**\n * Internal component that wraps user-provided bottom sheet content.\n * @docs-private\n */\n@Component({\n moduleId: module.id,\n selector: 'mat-bottom-sheet-container',\n templateUrl: 'bottom-sheet-container.html',\n styleUrls: ['bottom-sheet-container.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n animations: [matBottomSheetAnimations.bottomSheetState],\n host: {\n 'class': 'mat-bottom-sheet-container',\n 'tabindex': '-1',\n 'role': 'dialog',\n 'aria-modal': 'true',\n '[attr.aria-label]': 'bottomSheetConfig?.ariaLabel',\n '[@state]': '_animationState',\n '(@state.start)': '_onAnimationStart($event)',\n '(@state.done)': '_onAnimationDone($event)'\n },\n})\nexport class MatBottomSheetContainer extends BasePortalOutlet implements OnDestroy {\n private _breakpointSubscription: Subscription;\n\n /** The portal outlet inside of this container into which the content will be loaded. */\n @ViewChild(CdkPortalOutlet) _portalOutlet: CdkPortalOutlet;\n\n /** The state of the bottom sheet animations. */\n _animationState: 'void' | 'visible' | 'hidden' = 'void';\n\n /** Emits whenever the state of the animation changes. */\n _animationStateChanged = new EventEmitter<AnimationEvent>();\n\n /** The class that traps and manages focus within the bottom sheet. */\n private _focusTrap: FocusTrap;\n\n /** Element that was focused before the bottom sheet was opened. */\n private _elementFocusedBeforeOpened: HTMLElement | null = null;\n\n /** Server-side rendering-compatible reference to the global document object. */\n private _document: Document;\n\n /** Whether the component has been destroyed. */\n private _destroyed: boolean;\n\n constructor(\n private _elementRef: ElementRef<HTMLElement>,\n private _changeDetectorRef: ChangeDetectorRef,\n private _focusTrapFactory: FocusTrapFactory,\n breakpointObserver: BreakpointObserver,\n @Optional() @Inject(DOCUMENT) document: any,\n /** The bottom sheet configuration. */\n public bottomSheetConfig: MatBottomSheetConfig) {\n super();\n\n this._document = document;\n this._breakpointSubscription = breakpointObserver\n .observe([Breakpoints.Medium, Breakpoints.Large, Breakpoints.XLarge])\n .subscribe(() => {\n this._toggleClass('mat-bottom-sheet-container-medium',\n breakpointObserver.isMatched(Breakpoints.Medium));\n this._toggleClass('mat-bottom-sheet-container-large',\n breakpointObserver.isMatched(Breakpoints.Large));\n this._toggleClass('mat-bottom-sheet-container-xlarge',\n breakpointObserver.isMatched(Breakpoints.XLarge));\n });\n }\n\n /** Attach a component portal as content to this bottom sheet container. */\n attachComponentPortal<T>(portal: ComponentPortal<T>): ComponentRef<T> {\n this._validatePortalAttached();\n this._setPanelClass();\n this._savePreviouslyFocusedElement();\n return this._portalOutlet.attachComponentPortal(portal);\n }\n\n /** Attach a template portal as content to this bottom sheet container. */\n attachTemplatePortal<C>(portal: TemplatePortal<C>): EmbeddedViewRef<C> {\n this._validatePortalAttached();\n this._setPanelClass();\n this._savePreviouslyFocusedElement();\n return this._portalOutlet.attachTemplatePortal(portal);\n }\n\n /** Begin animation of bottom sheet entrance into view. */\n enter(): void {\n if (!this._destroyed) {\n this._animationState = 'visible';\n this._changeDetectorRef.detectChanges();\n }\n }\n\n /** Begin animation of the bottom sheet exiting from view. */\n exit(): void {\n if (!this._destroyed) {\n this._animationState = 'hidden';\n this._changeDetectorRef.markForCheck();\n }\n }\n\n ngOnDestroy() {\n this._breakpointSubscription.unsubscribe();\n this._destroyed = true;\n }\n\n _onAnimationDone(event: AnimationEvent) {\n if (event.toState === 'hidden') {\n this._restoreFocus();\n } else if (event.toState === 'visible' && this.bottomSheetConfig.autoFocus) {\n this._trapFocus();\n }\n\n this._animationStateChanged.emit(event);\n }\n\n _onAnimationStart(event: AnimationEvent) {\n this._animationStateChanged.emit(event);\n }\n\n private _toggleClass(cssClass: string, add: boolean) {\n const classList = this._elementRef.nativeElement.classList;\n add ? classList.add(cssClass) : classList.remove(cssClass);\n }\n\n private _validatePortalAttached() {\n if (this._portalOutlet.hasAttached()) {\n throw Error('Attempting to attach bottom sheet content after content is already attached');\n }\n }\n\n private _setPanelClass() {\n const element: HTMLElement = this._elementRef.nativeElement;\n const panelClass = this.bottomSheetConfig.panelClass;\n\n if (Array.isArray(panelClass)) {\n // Note that we can't use a spread here, because IE doesn't support multiple arguments.\n panelClass.forEach(cssClass => element.classList.add(cssClass));\n } else if (panelClass) {\n element.classList.add(panelClass);\n }\n }\n\n\n /** Moves the focus inside the focus trap. */\n private _trapFocus() {\n if (!this._focusTrap) {\n this._focusTrap = this._focusTrapFactory.create(this._elementRef.nativeElement);\n }\n\n this._focusTrap.focusInitialElementWhenReady();\n }\n\n /** Restores focus to the element that was focused before the bottom sheet was opened. */\n private _restoreFocus() {\n const toFocus = this._elementFocusedBeforeOpened;\n\n // We need the extra check, because IE can set the `activeElement` to null in some cases.\n if (this.bottomSheetConfig.restoreFocus && toFocus && typeof toFocus.focus === 'function') {\n toFocus.focus();\n }\n\n if (this._focusTrap) {\n this._focusTrap.destroy();\n }\n }\n\n /** Saves a reference to the element that was focused before the bottom sheet was opened. */\n private _savePreviouslyFocusedElement() {\n this._elementFocusedBeforeOpened = this._document.activeElement as HTMLElement;\n\n // The `focus` method isn't available during server-side rendering.\n if (this._elementRef.nativeElement.focus) {\n Promise.resolve().then(() => this._elementRef.nativeElement.focus());\n }\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 state,\n style,\n transition,\n trigger,\n AnimationTriggerMetadata,\n} from '@angular/animations';\nimport {AnimationCurves, AnimationDurations} from '@angular/material/core';\n\n/** Animations used by the Material bottom sheet. */\nexport const matBottomSheetAnimations: {\n readonly bottomSheetState: AnimationTriggerMetadata;\n} = {\n /** Animation that shows and hides a bottom sheet. */\n bottomSheetState: trigger('state', [\n state('void, hidden', style({transform: 'translateY(100%)'})),\n state('visible', style({transform: 'translateY(0%)'})),\n transition('visible => void, visible => hidden',\n animate(`${AnimationDurations.COMPLEX} ${AnimationCurves.ACCELERATION_CURVE}`)),\n transition('void => visible',\n animate(`${AnimationDurations.EXITING} ${AnimationCurves.DECELERATION_CURVE}`)),\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 */\n\nimport {ViewContainerRef, InjectionToken} from '@angular/core';\nimport {Direction} from '@angular/cdk/bidi';\n\n/** Injection token that can be used to access the data that was passed in to a bottom sheet. */\nexport const MAT_BOTTOM_SHEET_DATA = new InjectionToken<any>('MatBottomSheetData');\n\n/**\n * Configuration used when opening a bottom sheet.\n */\nexport class MatBottomSheetConfig<D = any> {\n /** The view container to place the overlay for the bottom sheet into. */\n viewContainerRef?: ViewContainerRef;\n\n /** Extra CSS classes to be added to the bottom sheet container. */\n panelClass?: string | string[];\n\n /** Text layout direction for the bottom sheet. */\n direction?: Direction;\n\n /** Data being injected into the child component. */\n data?: D | null = null;\n\n /** Whether the bottom sheet has a backdrop. */\n hasBackdrop?: boolean = true;\n\n /** Custom class for the backdrop. */\n backdropClass?: string;\n\n /** Whether the user can use escape or clicking outside to close the bottom sheet. */\n disableClose?: boolean = false;\n\n /** Aria label to assign to the bottom sheet element. */\n ariaLabel?: string | null = null;\n\n /**\n * Whether the bottom sheet should close when the user goes backwards/forwards in history.\n * Note that this usually doesn't include clicking on links (unless the user is using\n * the `HashLocationStrategy`).\n */\n closeOnNavigation?: boolean = true;\n\n /** Whether the bottom sheet should focus the first focusable element on open. */\n autoFocus?: boolean = true;\n\n /**\n * Whether the bottom sheet should restore focus to the\n * previously-focused element, after it's closed.\n */\n restoreFocus?: boolean = true;\n}\n"],"names":["observableOf"],"mappings":"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"}
1
+ {"version":3,"file":"bottom-sheet.js","sources":["../../../src/lib/bottom-sheet/bottom-sheet.ts","../../../src/lib/bottom-sheet/bottom-sheet-ref.ts","../../../src/lib/bottom-sheet/bottom-sheet-module.ts","../../../src/lib/bottom-sheet/bottom-sheet-container.ts","../../../src/lib/bottom-sheet/bottom-sheet-animations.ts","../../../src/lib/bottom-sheet/bottom-sheet-config.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 {Directionality} from '@angular/cdk/bidi';\nimport {Overlay, OverlayConfig, OverlayRef} from '@angular/cdk/overlay';\nimport {ComponentPortal, ComponentType, PortalInjector, TemplatePortal} from '@angular/cdk/portal';\nimport {\n ComponentRef,\n Injectable,\n Injector,\n Optional,\n SkipSelf,\n TemplateRef,\n InjectionToken,\n Inject,\n OnDestroy,\n} from '@angular/core';\nimport {Location} from '@angular/common';\nimport {of as observableOf} from 'rxjs';\nimport {MAT_BOTTOM_SHEET_DATA, MatBottomSheetConfig} from './bottom-sheet-config';\nimport {MatBottomSheetContainer} from './bottom-sheet-container';\nimport {MatBottomSheetModule} from './bottom-sheet-module';\nimport {MatBottomSheetRef} from './bottom-sheet-ref';\n\n\n/** Injection token that can be used to specify default bottom sheet options. */\nexport const MAT_BOTTOM_SHEET_DEFAULT_OPTIONS =\n new InjectionToken<MatBottomSheetConfig>('mat-bottom-sheet-default-options');\n\n/**\n * Service to trigger Material Design bottom sheets.\n */\n@Injectable({providedIn: MatBottomSheetModule})\nexport class MatBottomSheet implements OnDestroy {\n private _bottomSheetRefAtThisLevel: MatBottomSheetRef<any> | null = null;\n\n /** Reference to the currently opened bottom sheet. */\n get _openedBottomSheetRef(): MatBottomSheetRef<any> | null {\n const parent = this._parentBottomSheet;\n return parent ? parent._openedBottomSheetRef : this._bottomSheetRefAtThisLevel;\n }\n\n set _openedBottomSheetRef(value: MatBottomSheetRef<any> | null) {\n if (this._parentBottomSheet) {\n this._parentBottomSheet._openedBottomSheetRef = value;\n } else {\n this._bottomSheetRefAtThisLevel = value;\n }\n }\n\n constructor(\n private _overlay: Overlay,\n private _injector: Injector,\n @Optional() @SkipSelf() private _parentBottomSheet: MatBottomSheet,\n @Optional() private _location?: Location,\n @Optional() @Inject(MAT_BOTTOM_SHEET_DEFAULT_OPTIONS)\n private _defaultOptions?: MatBottomSheetConfig) {}\n\n open<T, D = any, R = any>(component: ComponentType<T>,\n config?: MatBottomSheetConfig<D>): MatBottomSheetRef<T, R>;\n open<T, D = any, R = any>(template: TemplateRef<T>,\n config?: MatBottomSheetConfig<D>): MatBottomSheetRef<T, R>;\n\n open<T, D = any, R = any>(componentOrTemplateRef: ComponentType<T> | TemplateRef<T>,\n config?: MatBottomSheetConfig<D>): MatBottomSheetRef<T, R> {\n\n const _config =\n _applyConfigDefaults(this._defaultOptions || new MatBottomSheetConfig(), config);\n const overlayRef = this._createOverlay(_config);\n const container = this._attachContainer(overlayRef, _config);\n const ref = new MatBottomSheetRef<T, R>(container, overlayRef, this._location);\n\n if (componentOrTemplateRef instanceof TemplateRef) {\n container.attachTemplatePortal(new TemplatePortal<T>(componentOrTemplateRef, null!, {\n $implicit: _config.data,\n bottomSheetRef: ref\n } as any));\n } else {\n const portal = new ComponentPortal(componentOrTemplateRef, undefined,\n this._createInjector(_config, ref));\n const contentRef = container.attachComponentPortal(portal);\n ref.instance = contentRef.instance;\n }\n\n // When the bottom sheet is dismissed, clear the reference to it.\n ref.afterDismissed().subscribe(() => {\n // Clear the bottom sheet ref if it hasn't already been replaced by a newer one.\n if (this._openedBottomSheetRef == ref) {\n this._openedBottomSheetRef = null;\n }\n });\n\n if (this._openedBottomSheetRef) {\n // If a bottom sheet is already in view, dismiss it and enter the\n // new bottom sheet after exit animation is complete.\n this._openedBottomSheetRef.afterDismissed().subscribe(() => ref.containerInstance.enter());\n this._openedBottomSheetRef.dismiss();\n } else {\n // If no bottom sheet is in view, enter the new bottom sheet.\n ref.containerInstance.enter();\n }\n\n this._openedBottomSheetRef = ref;\n\n return ref;\n }\n\n /**\n * Dismisses the currently-visible bottom sheet.\n */\n dismiss(): void {\n if (this._openedBottomSheetRef) {\n this._openedBottomSheetRef.dismiss();\n }\n }\n\n ngOnDestroy() {\n if (this._bottomSheetRefAtThisLevel) {\n this._bottomSheetRefAtThisLevel.dismiss();\n }\n }\n\n /**\n * Attaches the bottom sheet container component to the overlay.\n */\n private _attachContainer(overlayRef: OverlayRef,\n config: MatBottomSheetConfig): MatBottomSheetContainer {\n\n const userInjector = config && config.viewContainerRef && config.viewContainerRef.injector;\n const injector = new PortalInjector(userInjector || this._injector, new WeakMap([\n [MatBottomSheetConfig, config]\n ]));\n\n const containerPortal =\n new ComponentPortal(MatBottomSheetContainer, config.viewContainerRef, injector);\n const containerRef: ComponentRef<MatBottomSheetContainer> = overlayRef.attach(containerPortal);\n return containerRef.instance;\n }\n\n /**\n * Creates a new overlay and places it in the correct location.\n * @param config The user-specified bottom sheet config.\n */\n private _createOverlay(config: MatBottomSheetConfig): OverlayRef {\n const overlayConfig = new OverlayConfig({\n direction: config.direction,\n hasBackdrop: config.hasBackdrop,\n disposeOnNavigation: config.closeOnNavigation,\n maxWidth: '100%',\n scrollStrategy: this._overlay.scrollStrategies.block(),\n positionStrategy: this._overlay.position()\n .global()\n .centerHorizontally()\n .bottom('0')\n });\n\n if (config.backdropClass) {\n overlayConfig.backdropClass = config.backdropClass;\n }\n\n return this._overlay.create(overlayConfig);\n }\n\n /**\n * Creates an injector to be used inside of a bottom sheet component.\n * @param config Config that was used to create the bottom sheet.\n * @param bottomSheetRef Reference to the bottom sheet.\n */\n private _createInjector<T>(config: MatBottomSheetConfig,\n bottomSheetRef: MatBottomSheetRef<T>): PortalInjector {\n\n const userInjector = config && config.viewContainerRef && config.viewContainerRef.injector;\n const injectionTokens = new WeakMap<any, any>([\n [MatBottomSheetRef, bottomSheetRef],\n [MAT_BOTTOM_SHEET_DATA, config.data]\n ]);\n\n if (config.direction &&\n (!userInjector || !userInjector.get<Directionality | null>(Directionality, null))) {\n injectionTokens.set(Directionality, {\n value: config.direction,\n change: observableOf()\n });\n }\n\n return new PortalInjector(userInjector || this._injector, injectionTokens);\n }\n}\n\n/**\n * Applies default options to the bottom sheet config.\n * @param defaults Object containing the default values to which to fall back.\n * @param config The configuration to which the defaults will be applied.\n * @returns The new configuration object with defaults applied.\n */\nfunction _applyConfigDefaults(defaults: MatBottomSheetConfig,\n config?: MatBottomSheetConfig): MatBottomSheetConfig {\n return {...defaults, ...config};\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 */\n\nimport {Location} from '@angular/common';\nimport {ESCAPE} from '@angular/cdk/keycodes';\nimport {OverlayRef} from '@angular/cdk/overlay';\nimport {merge, Observable, Subject} from 'rxjs';\nimport {filter, take} from 'rxjs/operators';\nimport {MatBottomSheetContainer} from './bottom-sheet-container';\n\n\n/**\n * Reference to a bottom sheet dispatched from the bottom sheet service.\n */\nexport class MatBottomSheetRef<T = any, R = any> {\n /** Instance of the component making up the content of the bottom sheet. */\n instance: T;\n\n /**\n * Instance of the component into which the bottom sheet content is projected.\n * @docs-private\n */\n containerInstance: MatBottomSheetContainer;\n\n /** Whether the user is allowed to close the bottom sheet. */\n disableClose: boolean | undefined;\n\n /** Subject for notifying the user that the bottom sheet has been dismissed. */\n private readonly _afterDismissed = new Subject<R | undefined>();\n\n /** Subject for notifying the user that the bottom sheet has opened and appeared. */\n private readonly _afterOpened = new Subject<void>();\n\n /** Result to be passed down to the `afterDismissed` stream. */\n private _result: R | undefined;\n\n constructor(\n containerInstance: MatBottomSheetContainer,\n private _overlayRef: OverlayRef,\n // @breaking-change 8.0.0 `_location` parameter to be removed.\n _location?: Location) {\n this.containerInstance = containerInstance;\n this.disableClose = containerInstance.bottomSheetConfig.disableClose;\n\n // Emit when opening animation completes\n containerInstance._animationStateChanged.pipe(\n filter(event => event.phaseName === 'done' && event.toState === 'visible'),\n take(1)\n )\n .subscribe(() => {\n this._afterOpened.next();\n this._afterOpened.complete();\n });\n\n // Dispose overlay when closing animation is complete\n containerInstance._animationStateChanged.pipe(\n filter(event => event.phaseName === 'done' && event.toState === 'hidden'),\n take(1)\n )\n .subscribe(() => {\n this._overlayRef.dispose();\n this._afterDismissed.next(this._result);\n this._afterDismissed.complete();\n });\n\n merge(\n _overlayRef.backdropClick(),\n _overlayRef.keydownEvents().pipe(filter(event => event.keyCode === ESCAPE))\n ).subscribe(() => {\n if (!this.disableClose) {\n this.dismiss();\n }\n });\n }\n\n /**\n * Dismisses the bottom sheet.\n * @param result Data to be passed back to the bottom sheet opener.\n */\n dismiss(result?: R): void {\n if (!this._afterDismissed.closed) {\n // Transition the backdrop in parallel to the bottom sheet.\n this.containerInstance._animationStateChanged.pipe(\n filter(event => event.phaseName === 'start'),\n take(1)\n ).subscribe(() => this._overlayRef.detachBackdrop());\n\n this._result = result;\n this.containerInstance.exit();\n }\n }\n\n /** Gets an observable that is notified when the bottom sheet is finished closing. */\n afterDismissed(): Observable<R | undefined> {\n return this._afterDismissed.asObservable();\n }\n\n /** Gets an observable that is notified when the bottom sheet has opened and appeared. */\n afterOpened(): Observable<void> {\n return this._afterOpened.asObservable();\n }\n\n /**\n * Gets an observable that emits when the overlay's backdrop has been clicked.\n */\n backdropClick(): Observable<MouseEvent> {\n return this._overlayRef.backdropClick();\n }\n\n /**\n * Gets an observable that emits when keydown events are targeted on the overlay.\n */\n keydownEvents(): Observable<KeyboardEvent> {\n return this._overlayRef.keydownEvents();\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 */\n\nimport {OverlayModule} from '@angular/cdk/overlay';\nimport {PortalModule} from '@angular/cdk/portal';\nimport {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {MatCommonModule} from '@angular/material/core';\nimport {MatBottomSheetContainer} from './bottom-sheet-container';\n\n\n@NgModule({\n imports: [\n CommonModule,\n OverlayModule,\n MatCommonModule,\n PortalModule,\n ],\n exports: [MatBottomSheetContainer, MatCommonModule],\n declarations: [MatBottomSheetContainer],\n entryComponents: [MatBottomSheetContainer],\n})\nexport class MatBottomSheetModule {}\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 */\n\nimport {\n Component,\n ComponentRef,\n EmbeddedViewRef,\n ViewChild,\n OnDestroy,\n ElementRef,\n ChangeDetectionStrategy,\n ViewEncapsulation,\n ChangeDetectorRef,\n EventEmitter,\n Inject,\n Optional,\n} from '@angular/core';\nimport {AnimationEvent} from '@angular/animations';\nimport {\n BasePortalOutlet,\n ComponentPortal,\n TemplatePortal,\n CdkPortalOutlet,\n} from '@angular/cdk/portal';\nimport {BreakpointObserver, Breakpoints} from '@angular/cdk/layout';\nimport {MatBottomSheetConfig} from './bottom-sheet-config';\nimport {matBottomSheetAnimations} from './bottom-sheet-animations';\nimport {Subscription} from 'rxjs';\nimport {DOCUMENT} from '@angular/common';\nimport {FocusTrap, FocusTrapFactory} from '@angular/cdk/a11y';\n\n// TODO(crisbeto): consolidate some logic between this, MatDialog and MatSnackBar\n\n/**\n * Internal component that wraps user-provided bottom sheet content.\n * @docs-private\n */\n@Component({\n moduleId: module.id,\n selector: 'mat-bottom-sheet-container',\n templateUrl: 'bottom-sheet-container.html',\n styleUrls: ['bottom-sheet-container.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n animations: [matBottomSheetAnimations.bottomSheetState],\n host: {\n 'class': 'mat-bottom-sheet-container',\n 'tabindex': '-1',\n 'role': 'dialog',\n 'aria-modal': 'true',\n '[attr.aria-label]': 'bottomSheetConfig?.ariaLabel',\n '[@state]': '_animationState',\n '(@state.start)': '_onAnimationStart($event)',\n '(@state.done)': '_onAnimationDone($event)'\n },\n})\nexport class MatBottomSheetContainer extends BasePortalOutlet implements OnDestroy {\n private _breakpointSubscription: Subscription;\n\n /** The portal outlet inside of this container into which the content will be loaded. */\n @ViewChild(CdkPortalOutlet) _portalOutlet: CdkPortalOutlet;\n\n /** The state of the bottom sheet animations. */\n _animationState: 'void' | 'visible' | 'hidden' = 'void';\n\n /** Emits whenever the state of the animation changes. */\n _animationStateChanged = new EventEmitter<AnimationEvent>();\n\n /** The class that traps and manages focus within the bottom sheet. */\n private _focusTrap: FocusTrap;\n\n /** Element that was focused before the bottom sheet was opened. */\n private _elementFocusedBeforeOpened: HTMLElement | null = null;\n\n /** Server-side rendering-compatible reference to the global document object. */\n private _document: Document;\n\n /** Whether the component has been destroyed. */\n private _destroyed: boolean;\n\n constructor(\n private _elementRef: ElementRef<HTMLElement>,\n private _changeDetectorRef: ChangeDetectorRef,\n private _focusTrapFactory: FocusTrapFactory,\n breakpointObserver: BreakpointObserver,\n @Optional() @Inject(DOCUMENT) document: any,\n /** The bottom sheet configuration. */\n public bottomSheetConfig: MatBottomSheetConfig) {\n super();\n\n this._document = document;\n this._breakpointSubscription = breakpointObserver\n .observe([Breakpoints.Medium, Breakpoints.Large, Breakpoints.XLarge])\n .subscribe(() => {\n this._toggleClass('mat-bottom-sheet-container-medium',\n breakpointObserver.isMatched(Breakpoints.Medium));\n this._toggleClass('mat-bottom-sheet-container-large',\n breakpointObserver.isMatched(Breakpoints.Large));\n this._toggleClass('mat-bottom-sheet-container-xlarge',\n breakpointObserver.isMatched(Breakpoints.XLarge));\n });\n }\n\n /** Attach a component portal as content to this bottom sheet container. */\n attachComponentPortal<T>(portal: ComponentPortal<T>): ComponentRef<T> {\n this._validatePortalAttached();\n this._setPanelClass();\n this._savePreviouslyFocusedElement();\n return this._portalOutlet.attachComponentPortal(portal);\n }\n\n /** Attach a template portal as content to this bottom sheet container. */\n attachTemplatePortal<C>(portal: TemplatePortal<C>): EmbeddedViewRef<C> {\n this._validatePortalAttached();\n this._setPanelClass();\n this._savePreviouslyFocusedElement();\n return this._portalOutlet.attachTemplatePortal(portal);\n }\n\n /** Begin animation of bottom sheet entrance into view. */\n enter(): void {\n if (!this._destroyed) {\n this._animationState = 'visible';\n this._changeDetectorRef.detectChanges();\n }\n }\n\n /** Begin animation of the bottom sheet exiting from view. */\n exit(): void {\n if (!this._destroyed) {\n this._animationState = 'hidden';\n this._changeDetectorRef.markForCheck();\n }\n }\n\n ngOnDestroy() {\n this._breakpointSubscription.unsubscribe();\n this._destroyed = true;\n }\n\n _onAnimationDone(event: AnimationEvent) {\n if (event.toState === 'hidden') {\n this._restoreFocus();\n } else if (event.toState === 'visible' && this.bottomSheetConfig.autoFocus) {\n this._trapFocus();\n }\n\n this._animationStateChanged.emit(event);\n }\n\n _onAnimationStart(event: AnimationEvent) {\n this._animationStateChanged.emit(event);\n }\n\n private _toggleClass(cssClass: string, add: boolean) {\n const classList = this._elementRef.nativeElement.classList;\n add ? classList.add(cssClass) : classList.remove(cssClass);\n }\n\n private _validatePortalAttached() {\n if (this._portalOutlet.hasAttached()) {\n throw Error('Attempting to attach bottom sheet content after content is already attached');\n }\n }\n\n private _setPanelClass() {\n const element: HTMLElement = this._elementRef.nativeElement;\n const panelClass = this.bottomSheetConfig.panelClass;\n\n if (Array.isArray(panelClass)) {\n // Note that we can't use a spread here, because IE doesn't support multiple arguments.\n panelClass.forEach(cssClass => element.classList.add(cssClass));\n } else if (panelClass) {\n element.classList.add(panelClass);\n }\n }\n\n\n /** Moves the focus inside the focus trap. */\n private _trapFocus() {\n if (!this._focusTrap) {\n this._focusTrap = this._focusTrapFactory.create(this._elementRef.nativeElement);\n }\n\n this._focusTrap.focusInitialElementWhenReady();\n }\n\n /** Restores focus to the element that was focused before the bottom sheet was opened. */\n private _restoreFocus() {\n const toFocus = this._elementFocusedBeforeOpened;\n\n // We need the extra check, because IE can set the `activeElement` to null in some cases.\n if (this.bottomSheetConfig.restoreFocus && toFocus && typeof toFocus.focus === 'function') {\n toFocus.focus();\n }\n\n if (this._focusTrap) {\n this._focusTrap.destroy();\n }\n }\n\n /** Saves a reference to the element that was focused before the bottom sheet was opened. */\n private _savePreviouslyFocusedElement() {\n this._elementFocusedBeforeOpened = this._document.activeElement as HTMLElement;\n\n // The `focus` method isn't available during server-side rendering.\n if (this._elementRef.nativeElement.focus) {\n Promise.resolve().then(() => this._elementRef.nativeElement.focus());\n }\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 state,\n style,\n transition,\n trigger,\n AnimationTriggerMetadata,\n} from '@angular/animations';\nimport {AnimationCurves, AnimationDurations} from '@angular/material/core';\n\n/** Animations used by the Material bottom sheet. */\nexport const matBottomSheetAnimations: {\n readonly bottomSheetState: AnimationTriggerMetadata;\n} = {\n /** Animation that shows and hides a bottom sheet. */\n bottomSheetState: trigger('state', [\n state('void, hidden', style({transform: 'translateY(100%)'})),\n state('visible', style({transform: 'translateY(0%)'})),\n transition('visible => void, visible => hidden',\n animate(`${AnimationDurations.COMPLEX} ${AnimationCurves.ACCELERATION_CURVE}`)),\n transition('void => visible',\n animate(`${AnimationDurations.EXITING} ${AnimationCurves.DECELERATION_CURVE}`)),\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 */\n\nimport {ViewContainerRef, InjectionToken} from '@angular/core';\nimport {Direction} from '@angular/cdk/bidi';\n\n/** Injection token that can be used to access the data that was passed in to a bottom sheet. */\nexport const MAT_BOTTOM_SHEET_DATA = new InjectionToken<any>('MatBottomSheetData');\n\n/**\n * Configuration used when opening a bottom sheet.\n */\nexport class MatBottomSheetConfig<D = any> {\n /** The view container to place the overlay for the bottom sheet into. */\n viewContainerRef?: ViewContainerRef;\n\n /** Extra CSS classes to be added to the bottom sheet container. */\n panelClass?: string | string[];\n\n /** Text layout direction for the bottom sheet. */\n direction?: Direction;\n\n /** Data being injected into the child component. */\n data?: D | null = null;\n\n /** Whether the bottom sheet has a backdrop. */\n hasBackdrop?: boolean = true;\n\n /** Custom class for the backdrop. */\n backdropClass?: string;\n\n /** Whether the user can use escape or clicking outside to close the bottom sheet. */\n disableClose?: boolean = false;\n\n /** Aria label to assign to the bottom sheet element. */\n ariaLabel?: string | null = null;\n\n /**\n * Whether the bottom sheet should close when the user goes backwards/forwards in history.\n * Note that this usually doesn't include clicking on links (unless the user is using\n * the `HashLocationStrategy`).\n */\n closeOnNavigation?: boolean = true;\n\n // Note that this is disabled by default, because while the a11y recommendations are to focus\n // the first focusable element, doing so prevents screen readers from reading out the\n // rest of the bottom sheet content.\n /** Whether the bottom sheet should focus the first focusable element on open. */\n autoFocus?: boolean = false;\n\n /**\n * Whether the bottom sheet should restore focus to the\n * previously-focused element, after it's closed.\n */\n restoreFocus?: boolean = true;\n}\n"],"names":["observableOf"],"mappings":"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"}
@@ -14,18 +14,20 @@ import { mixinDisableRipple, MatCommonModule, MatRippleModule } from '@angular/m
14
14
 
15
15
  /**
16
16
  * @fileoverview added by tsickle
17
- * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
17
+ * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
18
18
  */
19
- /** *
19
+ /**
20
20
  * Injection token that can be used to configure the
21
21
  * default options for all button toggles within an app.
22
- @type {?} */
22
+ * @type {?}
23
+ */
23
24
  const MAT_BUTTON_TOGGLE_DEFAULT_OPTIONS = new InjectionToken('MAT_BUTTON_TOGGLE_DEFAULT_OPTIONS');
24
- /** *
25
+ /**
25
26
  * Provider Expression that allows mat-button-toggle-group to register as a ControlValueAccessor.
26
27
  * This allows it to support [(ngModel)].
27
28
  * \@docs-private
28
- @type {?} */
29
+ * @type {?}
30
+ */
29
31
  const MAT_BUTTON_TOGGLE_GROUP_VALUE_ACCESSOR = {
30
32
  provide: NG_VALUE_ACCESSOR,
31
33
  useExisting: forwardRef(() => MatButtonToggleGroup),
@@ -192,6 +194,7 @@ class MatButtonToggleGroup {
192
194
  this.value = value;
193
195
  this._changeDetector.markForCheck();
194
196
  }
197
+ // Implemented as part of ControlValueAccessor.
195
198
  /**
196
199
  * @param {?} fn
197
200
  * @return {?}
@@ -199,6 +202,7 @@ class MatButtonToggleGroup {
199
202
  registerOnChange(fn) {
200
203
  this._controlValueAccessorChangeFn = fn;
201
204
  }
205
+ // Implemented as part of ControlValueAccessor.
202
206
  /**
203
207
  * @param {?} fn
204
208
  * @return {?}
@@ -206,6 +210,7 @@ class MatButtonToggleGroup {
206
210
  registerOnTouched(fn) {
207
211
  this._onTouched = fn;
208
212
  }
213
+ // Implemented as part of ControlValueAccessor.
209
214
  /**
210
215
  * @param {?} isDisabled
211
216
  * @return {?}
@@ -223,7 +228,7 @@ class MatButtonToggleGroup {
223
228
  /** @type {?} */
224
229
  const source = Array.isArray(selected) ? selected[selected.length - 1] : selected;
225
230
  /** @type {?} */
226
- const event = new MatButtonToggleChange(/** @type {?} */ ((source)), this.value);
231
+ const event = new MatButtonToggleChange((/** @type {?} */ (source)), this.value);
227
232
  this._controlValueAccessorChangeFn(event.value);
228
233
  this.change.emit(event);
229
234
  }
@@ -238,7 +243,7 @@ class MatButtonToggleGroup {
238
243
  // Deselect the currently-selected toggle, if we're in single-selection
239
244
  // mode and the button being toggled isn't selected at the moment.
240
245
  if (!this.multiple && this.selected && !toggle.checked) {
241
- (/** @type {?} */ (this.selected)).checked = false;
246
+ ((/** @type {?} */ (this.selected))).checked = false;
242
247
  }
243
248
  if (select) {
244
249
  this._selectionModel.select(toggle);
@@ -278,6 +283,7 @@ class MatButtonToggleGroup {
278
283
  }
279
284
  /**
280
285
  * Updates the selection state of the toggles in the group based on a value.
286
+ * @private
281
287
  * @param {?} value
282
288
  * @return {?}
283
289
  */
@@ -300,6 +306,7 @@ class MatButtonToggleGroup {
300
306
  }
301
307
  /**
302
308
  * Clears the selected toggles.
309
+ * @private
303
310
  * @return {?}
304
311
  */
305
312
  _clearSelection() {
@@ -308,6 +315,7 @@ class MatButtonToggleGroup {
308
315
  }
309
316
  /**
310
317
  * Selects a value if there's a toggle that corresponds to it.
318
+ * @private
311
319
  * @param {?} value
312
320
  * @return {?}
313
321
  */
@@ -355,6 +363,7 @@ MatButtonToggleGroup.propDecorators = {
355
363
  disabled: [{ type: Input }],
356
364
  change: [{ type: Output }]
357
365
  };
366
+ // Boilerplate for applying mixins to the MatButtonToggle class.
358
367
  /**
359
368
  * \@docs-private
360
369
  */
@@ -471,7 +480,14 @@ class MatButtonToggle extends _MatButtonToggleMixinBase {
471
480
  * @return {?}
472
481
  */
473
482
  ngOnDestroy() {
483
+ /** @type {?} */
484
+ const group = this.buttonToggleGroup;
474
485
  this._focusMonitor.stopMonitoring(this._elementRef);
486
+ // Remove the toggle from the selection once it's destroyed. Needs to happen
487
+ // on the next tick in order to avoid "changed after checked" errors.
488
+ if (group && group._isSelected(this)) {
489
+ Promise.resolve().then(() => group._syncButtonToggle(this, false));
490
+ }
475
491
  }
476
492
  /**
477
493
  * Focuses the button.
@@ -512,7 +528,7 @@ class MatButtonToggle extends _MatButtonToggleMixinBase {
512
528
  MatButtonToggle.decorators = [
513
529
  { type: Component, args: [{selector: 'mat-button-toggle',
514
530
  template: "<button #button class=\"mat-button-toggle-button\" type=\"button\" [id]=\"buttonId\" [attr.tabindex]=\"disabled ? -1 : tabIndex\" [attr.aria-pressed]=\"checked\" [disabled]=\"disabled || null\" [attr.name]=\"name || null\" [attr.aria-label]=\"ariaLabel\" [attr.aria-labelledby]=\"ariaLabelledby\" (click)=\"_onButtonClick()\"><div class=\"mat-button-toggle-label-content\"><ng-content></ng-content></div></button><div class=\"mat-button-toggle-focus-overlay\"></div><div class=\"mat-button-toggle-ripple\" matRipple [matRippleTrigger]=\"button\" [matRippleDisabled]=\"this.disableRipple || this.disabled\"></div>",
515
- styles: [".mat-button-toggle-group,.mat-button-toggle-standalone{position:relative;display:inline-flex;flex-direction:row;white-space:nowrap;overflow:hidden;border-radius:2px;-webkit-tap-highlight-color:transparent}@media screen and (-ms-high-contrast:active){.mat-button-toggle-group,.mat-button-toggle-standalone{outline:solid 1px}}.mat-button-toggle-group-appearance-standard,.mat-button-toggle-standalone.mat-button-toggle-appearance-standard{border-radius:4px}@media screen and (-ms-high-contrast:active){.mat-button-toggle-group-appearance-standard,.mat-button-toggle-standalone.mat-button-toggle-appearance-standard{outline:0}}.mat-button-toggle-vertical{flex-direction:column}.mat-button-toggle-vertical .mat-button-toggle-label-content{display:block}.mat-button-toggle{white-space:nowrap;position:relative}.mat-button-toggle .mat-icon svg{vertical-align:top}.mat-button-toggle.cdk-keyboard-focused .mat-button-toggle-focus-overlay{opacity:1}@media screen and (-ms-high-contrast:active){.mat-button-toggle.cdk-keyboard-focused .mat-button-toggle-focus-overlay{opacity:.5}}.mat-button-toggle-appearance-standard:not(.mat-button-toggle-disabled):hover .mat-button-toggle-focus-overlay{opacity:.04}.mat-button-toggle-appearance-standard.cdk-keyboard-focused:not(.mat-button-toggle-disabled) .mat-button-toggle-focus-overlay{opacity:.12}@media screen and (-ms-high-contrast:active){.mat-button-toggle-appearance-standard.cdk-keyboard-focused:not(.mat-button-toggle-disabled) .mat-button-toggle-focus-overlay{opacity:.5}}@media (hover:none){.mat-button-toggle-appearance-standard:not(.mat-button-toggle-disabled):hover .mat-button-toggle-focus-overlay{display:none}}.mat-button-toggle-label-content{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:inline-block;line-height:36px;padding:0 16px;position:relative}.mat-button-toggle-appearance-standard .mat-button-toggle-label-content{line-height:48px;padding:0 12px}.mat-button-toggle-label-content>*{vertical-align:middle}.mat-button-toggle-focus-overlay{border-radius:inherit;pointer-events:none;opacity:0;top:0;left:0;right:0;bottom:0;position:absolute}.mat-button-toggle-checked .mat-button-toggle-focus-overlay{border-bottom:solid 36px}@media screen and (-ms-high-contrast:active){.mat-button-toggle-checked .mat-button-toggle-focus-overlay{opacity:.5;height:0}}@media screen and (-ms-high-contrast:active){.mat-button-toggle-checked.mat-button-toggle-appearance-standard .mat-button-toggle-focus-overlay{border-bottom:solid 48px}}.mat-button-toggle .mat-button-toggle-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-button-toggle-button{border:0;background:0 0;color:inherit;padding:0;margin:0;font:inherit;outline:0;width:100%;cursor:pointer}.mat-button-toggle-disabled .mat-button-toggle-button{cursor:default}.mat-button-toggle-button::-moz-focus-inner{border:0}"],
531
+ styles: [".mat-button-toggle-group,.mat-button-toggle-standalone{position:relative;display:inline-flex;flex-direction:row;white-space:nowrap;overflow:hidden;border-radius:2px;-webkit-tap-highlight-color:transparent}@media (-ms-high-contrast:active){.mat-button-toggle-group,.mat-button-toggle-standalone{outline:solid 1px}}.mat-button-toggle-group-appearance-standard,.mat-button-toggle-standalone.mat-button-toggle-appearance-standard{border-radius:4px}@media (-ms-high-contrast:active){.mat-button-toggle-group-appearance-standard,.mat-button-toggle-standalone.mat-button-toggle-appearance-standard{outline:0}}.mat-button-toggle-vertical{flex-direction:column}.mat-button-toggle-vertical .mat-button-toggle-label-content{display:block}.mat-button-toggle{white-space:nowrap;position:relative}.mat-button-toggle .mat-icon svg{vertical-align:top}.mat-button-toggle.cdk-keyboard-focused .mat-button-toggle-focus-overlay{opacity:1}@media (-ms-high-contrast:active){.mat-button-toggle.cdk-keyboard-focused .mat-button-toggle-focus-overlay{opacity:.5}}.mat-button-toggle-appearance-standard:not(.mat-button-toggle-disabled):hover .mat-button-toggle-focus-overlay{opacity:.04}.mat-button-toggle-appearance-standard.cdk-keyboard-focused:not(.mat-button-toggle-disabled) .mat-button-toggle-focus-overlay{opacity:.12}@media (-ms-high-contrast:active){.mat-button-toggle-appearance-standard.cdk-keyboard-focused:not(.mat-button-toggle-disabled) .mat-button-toggle-focus-overlay{opacity:.5}}@media (hover:none){.mat-button-toggle-appearance-standard:not(.mat-button-toggle-disabled):hover .mat-button-toggle-focus-overlay{display:none}}.mat-button-toggle-label-content{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:inline-block;line-height:36px;padding:0 16px;position:relative}.mat-button-toggle-appearance-standard .mat-button-toggle-label-content{line-height:48px;padding:0 12px}.mat-button-toggle-label-content>*{vertical-align:middle}.mat-button-toggle-focus-overlay{border-radius:inherit;pointer-events:none;opacity:0;top:0;left:0;right:0;bottom:0;position:absolute}.mat-button-toggle-checked .mat-button-toggle-focus-overlay{border-bottom:solid 36px}@media (-ms-high-contrast:active){.mat-button-toggle-checked .mat-button-toggle-focus-overlay{opacity:.5;height:0}}@media (-ms-high-contrast:active){.mat-button-toggle-checked.mat-button-toggle-appearance-standard .mat-button-toggle-focus-overlay{border-bottom:solid 48px}}.mat-button-toggle .mat-button-toggle-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-button-toggle-button{border:0;background:0 0;color:inherit;padding:0;margin:0;font:inherit;outline:0;width:100%;cursor:pointer}.mat-button-toggle-disabled .mat-button-toggle-button{cursor:default}.mat-button-toggle-button::-moz-focus-inner{border:0}"],
516
532
  encapsulation: ViewEncapsulation.None,
517
533
  exportAs: 'matButtonToggle',
518
534
  changeDetection: ChangeDetectionStrategy.OnPush,
@@ -556,7 +572,7 @@ MatButtonToggle.propDecorators = {
556
572
 
557
573
  /**
558
574
  * @fileoverview added by tsickle
559
- * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
575
+ * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
560
576
  */
561
577
  class MatButtonToggleModule {
562
578
  }
@@ -570,12 +586,12 @@ MatButtonToggleModule.decorators = [
570
586
 
571
587
  /**
572
588
  * @fileoverview added by tsickle
573
- * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
589
+ * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
574
590
  */
575
591
 
576
592
  /**
577
593
  * @fileoverview added by tsickle
578
- * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
594
+ * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
579
595
  */
580
596
 
581
597
  export { MAT_BUTTON_TOGGLE_DEFAULT_OPTIONS, MAT_BUTTON_TOGGLE_GROUP_VALUE_ACCESSOR, MatButtonToggleGroupMultiple, MatButtonToggleChange, MatButtonToggleGroup, MatButtonToggleBase, _MatButtonToggleMixinBase, MatButtonToggle, MatButtonToggleModule };