@angular/material 10.0.0-rc.3 → 10.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (627) hide show
  1. package/_theming.scss +17 -17
  2. package/autocomplete/index.metadata.json +1 -1
  3. package/autocomplete/testing/autocomplete-harness.d.ts +2 -0
  4. package/bundles/material-autocomplete-testing.umd.js +11 -0
  5. package/bundles/material-autocomplete-testing.umd.js.map +1 -1
  6. package/bundles/material-autocomplete-testing.umd.min.js +2 -2
  7. package/bundles/material-autocomplete-testing.umd.min.js.map +1 -1
  8. package/bundles/material-autocomplete.umd.js +3 -1
  9. package/bundles/material-autocomplete.umd.js.map +1 -1
  10. package/bundles/material-autocomplete.umd.min.js +5 -5
  11. package/bundles/material-autocomplete.umd.min.js.map +1 -1
  12. package/bundles/material-badge-testing.umd.min.js +1 -1
  13. package/bundles/material-badge-testing.umd.min.js.map +1 -1
  14. package/bundles/material-bottom-sheet-testing.umd.min.js +1 -1
  15. package/bundles/material-bottom-sheet-testing.umd.min.js.map +1 -1
  16. package/bundles/material-button-testing.umd.js +11 -0
  17. package/bundles/material-button-testing.umd.js.map +1 -1
  18. package/bundles/material-button-testing.umd.min.js +2 -2
  19. package/bundles/material-button-testing.umd.min.js.map +1 -1
  20. package/bundles/material-button-toggle-testing.umd.js +11 -0
  21. package/bundles/material-button-toggle-testing.umd.js.map +1 -1
  22. package/bundles/material-button-toggle-testing.umd.min.js +3 -3
  23. package/bundles/material-button-toggle-testing.umd.min.js.map +1 -1
  24. package/bundles/material-button-toggle.umd.js +12 -3
  25. package/bundles/material-button-toggle.umd.js.map +1 -1
  26. package/bundles/material-button-toggle.umd.min.js +2 -2
  27. package/bundles/material-button-toggle.umd.min.js.map +1 -1
  28. package/bundles/material-button.umd.js +7 -2
  29. package/bundles/material-button.umd.js.map +1 -1
  30. package/bundles/material-button.umd.min.js +4 -4
  31. package/bundles/material-button.umd.min.js.map +1 -1
  32. package/bundles/material-card-testing.umd.js +335 -0
  33. package/bundles/material-card-testing.umd.js.map +1 -0
  34. package/bundles/material-card-testing.umd.min.js +44 -0
  35. package/bundles/material-card-testing.umd.min.js.map +1 -0
  36. package/bundles/material-checkbox-testing.umd.js +11 -0
  37. package/bundles/material-checkbox-testing.umd.js.map +1 -1
  38. package/bundles/material-checkbox-testing.umd.min.js +3 -3
  39. package/bundles/material-checkbox-testing.umd.min.js.map +1 -1
  40. package/bundles/material-checkbox.umd.js.map +1 -1
  41. package/bundles/material-chips.umd.js +36 -12
  42. package/bundles/material-chips.umd.js.map +1 -1
  43. package/bundles/material-chips.umd.min.js +4 -4
  44. package/bundles/material-chips.umd.min.js.map +1 -1
  45. package/bundles/material-core-testing.umd.min.js +1 -1
  46. package/bundles/material-core-testing.umd.min.js.map +1 -1
  47. package/bundles/material-core.umd.js +11 -3
  48. package/bundles/material-core.umd.js.map +1 -1
  49. package/bundles/material-core.umd.min.js +11 -11
  50. package/bundles/material-core.umd.min.js.map +1 -1
  51. package/bundles/material-datepicker.umd.js +20 -11
  52. package/bundles/material-datepicker.umd.js.map +1 -1
  53. package/bundles/material-datepicker.umd.min.js +5 -5
  54. package/bundles/material-datepicker.umd.min.js.map +1 -1
  55. package/bundles/material-dialog-testing.umd.min.js +1 -1
  56. package/bundles/material-dialog-testing.umd.min.js.map +1 -1
  57. package/bundles/material-dialog.umd.js +45 -8
  58. package/bundles/material-dialog.umd.js.map +1 -1
  59. package/bundles/material-dialog.umd.min.js +14 -7
  60. package/bundles/material-dialog.umd.min.js.map +1 -1
  61. package/bundles/material-divider-testing.umd.min.js +1 -1
  62. package/bundles/material-divider-testing.umd.min.js.map +1 -1
  63. package/bundles/material-expansion-testing.umd.js +11 -0
  64. package/bundles/material-expansion-testing.umd.js.map +1 -1
  65. package/bundles/material-expansion-testing.umd.min.js +3 -3
  66. package/bundles/material-expansion-testing.umd.min.js.map +1 -1
  67. package/bundles/material-form-field-testing.umd.js +32 -0
  68. package/bundles/material-form-field-testing.umd.js.map +1 -1
  69. package/bundles/material-form-field-testing.umd.min.js +4 -4
  70. package/bundles/material-form-field-testing.umd.min.js.map +1 -1
  71. package/bundles/material-form-field.umd.js +47 -21
  72. package/bundles/material-form-field.umd.js.map +1 -1
  73. package/bundles/material-form-field.umd.min.js +5 -5
  74. package/bundles/material-form-field.umd.min.js.map +1 -1
  75. package/bundles/material-grid-list-testing.umd.min.js +1 -1
  76. package/bundles/material-grid-list-testing.umd.min.js.map +1 -1
  77. package/bundles/material-grid-list.umd.js +2 -2
  78. package/bundles/material-grid-list.umd.js.map +1 -1
  79. package/bundles/material-grid-list.umd.min.js +2 -2
  80. package/bundles/material-grid-list.umd.min.js.map +1 -1
  81. package/bundles/material-input-testing.umd.js +23 -6
  82. package/bundles/material-input-testing.umd.js.map +1 -1
  83. package/bundles/material-input-testing.umd.min.js +3 -3
  84. package/bundles/material-input-testing.umd.min.js.map +1 -1
  85. package/bundles/material-input.umd.js +28 -3
  86. package/bundles/material-input.umd.js.map +1 -1
  87. package/bundles/material-input.umd.min.js +3 -3
  88. package/bundles/material-input.umd.min.js.map +1 -1
  89. package/bundles/material-list-testing.umd.js +33 -0
  90. package/bundles/material-list-testing.umd.js.map +1 -1
  91. package/bundles/material-list-testing.umd.min.js +2 -2
  92. package/bundles/material-list-testing.umd.min.js.map +1 -1
  93. package/bundles/material-list.umd.js +3 -3
  94. package/bundles/material-list.umd.min.js +1 -1
  95. package/bundles/material-list.umd.min.js.map +1 -1
  96. package/bundles/material-menu-testing.umd.js +22 -0
  97. package/bundles/material-menu-testing.umd.js.map +1 -1
  98. package/bundles/material-menu-testing.umd.min.js +2 -2
  99. package/bundles/material-menu-testing.umd.min.js.map +1 -1
  100. package/bundles/material-menu.umd.js +13 -2
  101. package/bundles/material-menu.umd.js.map +1 -1
  102. package/bundles/material-menu.umd.min.js +4 -4
  103. package/bundles/material-menu.umd.min.js.map +1 -1
  104. package/bundles/material-paginator-testing.umd.min.js +1 -1
  105. package/bundles/material-paginator-testing.umd.min.js.map +1 -1
  106. package/bundles/material-progress-bar-testing.umd.min.js +1 -1
  107. package/bundles/material-progress-bar-testing.umd.min.js.map +1 -1
  108. package/bundles/material-progress-spinner-testing.umd.js +1 -1
  109. package/bundles/material-progress-spinner-testing.umd.js.map +1 -1
  110. package/bundles/material-progress-spinner-testing.umd.min.js +2 -2
  111. package/bundles/material-progress-spinner-testing.umd.min.js.map +1 -1
  112. package/bundles/material-progress-spinner.umd.js +2 -2
  113. package/bundles/material-progress-spinner.umd.min.js +3 -3
  114. package/bundles/material-progress-spinner.umd.min.js.map +1 -1
  115. package/bundles/material-radio-testing.umd.js +11 -0
  116. package/bundles/material-radio-testing.umd.js.map +1 -1
  117. package/bundles/material-radio-testing.umd.min.js +3 -3
  118. package/bundles/material-radio-testing.umd.min.js.map +1 -1
  119. package/bundles/material-radio.umd.js +15 -5
  120. package/bundles/material-radio.umd.js.map +1 -1
  121. package/bundles/material-radio.umd.min.js +2 -2
  122. package/bundles/material-radio.umd.min.js.map +1 -1
  123. package/bundles/material-select-testing.umd.js +11 -0
  124. package/bundles/material-select-testing.umd.js.map +1 -1
  125. package/bundles/material-select-testing.umd.min.js +2 -2
  126. package/bundles/material-select-testing.umd.min.js.map +1 -1
  127. package/bundles/material-select.umd.js +11 -3
  128. package/bundles/material-select.umd.js.map +1 -1
  129. package/bundles/material-select.umd.min.js +4 -4
  130. package/bundles/material-select.umd.min.js.map +1 -1
  131. package/bundles/material-sidenav-testing.umd.min.js +1 -1
  132. package/bundles/material-sidenav-testing.umd.min.js.map +1 -1
  133. package/bundles/material-sidenav.umd.js +41 -17
  134. package/bundles/material-sidenav.umd.js.map +1 -1
  135. package/bundles/material-sidenav.umd.min.js +2 -2
  136. package/bundles/material-sidenav.umd.min.js.map +1 -1
  137. package/bundles/material-slide-toggle-testing.umd.js +11 -0
  138. package/bundles/material-slide-toggle-testing.umd.js.map +1 -1
  139. package/bundles/material-slide-toggle-testing.umd.min.js +2 -2
  140. package/bundles/material-slide-toggle-testing.umd.min.js.map +1 -1
  141. package/bundles/material-slide-toggle.umd.js.map +1 -1
  142. package/bundles/material-slider-testing.umd.js +11 -0
  143. package/bundles/material-slider-testing.umd.js.map +1 -1
  144. package/bundles/material-slider-testing.umd.min.js +2 -2
  145. package/bundles/material-slider-testing.umd.min.js.map +1 -1
  146. package/bundles/material-snack-bar-testing.umd.min.js +1 -1
  147. package/bundles/material-snack-bar-testing.umd.min.js.map +1 -1
  148. package/bundles/material-snack-bar.umd.js +47 -39
  149. package/bundles/material-snack-bar.umd.js.map +1 -1
  150. package/bundles/material-snack-bar.umd.min.js +2 -2
  151. package/bundles/material-snack-bar.umd.min.js.map +1 -1
  152. package/bundles/material-sort-testing.umd.js +10 -10
  153. package/bundles/material-sort-testing.umd.js.map +1 -1
  154. package/bundles/material-sort-testing.umd.min.js +3 -3
  155. package/bundles/material-sort-testing.umd.min.js.map +1 -1
  156. package/bundles/material-sort.umd.js +25 -12
  157. package/bundles/material-sort.umd.js.map +1 -1
  158. package/bundles/material-sort.umd.min.js +5 -5
  159. package/bundles/material-sort.umd.min.js.map +1 -1
  160. package/bundles/material-table-testing.umd.min.js +1 -1
  161. package/bundles/material-table-testing.umd.min.js.map +1 -1
  162. package/bundles/material-table.umd.min.js +2 -2
  163. package/bundles/material-table.umd.min.js.map +1 -1
  164. package/bundles/material-tabs-testing.umd.min.js +1 -1
  165. package/bundles/material-tabs-testing.umd.min.js.map +1 -1
  166. package/bundles/material-tabs.umd.js +23 -4
  167. package/bundles/material-tabs.umd.js.map +1 -1
  168. package/bundles/material-tabs.umd.min.js +5 -12
  169. package/bundles/material-tabs.umd.min.js.map +1 -1
  170. package/bundles/material-toolbar-testing.umd.js +330 -0
  171. package/bundles/material-toolbar-testing.umd.js.map +1 -0
  172. package/bundles/material-toolbar-testing.umd.min.js +44 -0
  173. package/bundles/material-toolbar-testing.umd.min.js.map +1 -0
  174. package/bundles/material-tooltip-testing.umd.min.js +1 -1
  175. package/bundles/material-tooltip-testing.umd.min.js.map +1 -1
  176. package/bundles/material-tooltip.umd.js +14 -1
  177. package/bundles/material-tooltip.umd.js.map +1 -1
  178. package/bundles/material-tooltip.umd.min.js +3 -3
  179. package/bundles/material-tooltip.umd.min.js.map +1 -1
  180. package/bundles/material-tree.umd.js.map +1 -1
  181. package/button/_button-base.scss +1 -1
  182. package/button/_button-theme.scss +8 -8
  183. package/button/index.metadata.json +1 -1
  184. package/button/testing/button-harness.d.ts +2 -0
  185. package/button-toggle/button-toggle.d.ts +10 -3
  186. package/button-toggle/index.metadata.json +1 -1
  187. package/button-toggle/testing/button-toggle-harness.d.ts +2 -0
  188. package/card/testing/card-harness-filters.d.ts +17 -0
  189. package/card/testing/card-harness.d.ts +36 -0
  190. package/card/testing/index.d.ts +8 -0
  191. package/card/testing/package.json +9 -0
  192. package/card/testing/public-api.d.ts +9 -0
  193. package/checkbox/index.metadata.json +1 -1
  194. package/checkbox/testing/checkbox-harness.d.ts +2 -0
  195. package/chips/chip.d.ts +19 -1
  196. package/chips/index.metadata.json +1 -1
  197. package/core/focus-indicators/_focus-indicators.scss +6 -6
  198. package/core/index.metadata.json +1 -1
  199. package/core/option/optgroup.d.ts +7 -0
  200. package/core/ripple/ripple-ref.d.ts +21 -2
  201. package/core/ripple/ripple-renderer.d.ts +1 -19
  202. package/core/ripple/ripple.d.ts +2 -2
  203. package/core/style/_list-common.scss +1 -1
  204. package/datepicker/date-range-input-parts.d.ts +2 -4
  205. package/datepicker/date-range-input.d.ts +4 -4
  206. package/datepicker/date-range-picker.d.ts +10 -3
  207. package/datepicker/datepicker.d.ts +2 -3
  208. package/datepicker/index.metadata.json +1 -1
  209. package/datepicker/public-api.d.ts +1 -1
  210. package/dialog/dialog-container.d.ts +9 -2
  211. package/dialog/dialog-content-directives.d.ts +1 -0
  212. package/dialog/dialog-ref.d.ts +7 -0
  213. package/dialog/index.metadata.json +1 -1
  214. package/esm2015/autocomplete/autocomplete-module.js +18 -22
  215. package/esm2015/autocomplete/autocomplete-origin.js +16 -20
  216. package/esm2015/autocomplete/autocomplete-trigger.js +519 -521
  217. package/esm2015/autocomplete/autocomplete.js +126 -130
  218. package/esm2015/autocomplete/testing/autocomplete-harness.js +99 -97
  219. package/esm2015/badge/badge-module.js +13 -17
  220. package/esm2015/badge/badge.js +184 -188
  221. package/esm2015/badge/testing/badge-harness.js +74 -78
  222. package/esm2015/bottom-sheet/bottom-sheet-container.js +161 -165
  223. package/esm2015/bottom-sheet/bottom-sheet-module.js +15 -19
  224. package/esm2015/bottom-sheet/bottom-sheet.js +124 -128
  225. package/esm2015/bottom-sheet/testing/bottom-sheet-harness.js +29 -33
  226. package/esm2015/button/button-module.js +20 -24
  227. package/esm2015/button/button.js +111 -114
  228. package/esm2015/button/testing/button-harness.js +60 -58
  229. package/esm2015/button-toggle/button-toggle-module.js +10 -14
  230. package/esm2015/button-toggle/button-toggle.js +368 -368
  231. package/esm2015/button-toggle/testing/button-toggle-group-harness.js +42 -46
  232. package/esm2015/button-toggle/testing/button-toggle-harness.js +113 -111
  233. package/esm2015/card/card-module.js +30 -34
  234. package/esm2015/card/card.js +147 -203
  235. package/esm2015/card/testing/card-harness-filters.js +8 -0
  236. package/esm2015/card/testing/card-harness.js +52 -0
  237. package/esm2015/card/testing/index.js +9 -0
  238. package/esm2015/card/testing/public-api.js +10 -0
  239. package/esm2015/card/testing/testing.externs.js +0 -0
  240. package/esm2015/checkbox/checkbox-module.js +21 -29
  241. package/esm2015/checkbox/checkbox-required-validator.js +9 -13
  242. package/esm2015/checkbox/checkbox.js +315 -319
  243. package/esm2015/checkbox/testing/checkbox-harness.js +150 -148
  244. package/esm2015/chips/chip-input.js +119 -123
  245. package/esm2015/chips/chip-list.js +572 -576
  246. package/esm2015/chips/chip.js +333 -328
  247. package/esm2015/chips/chips-module.js +16 -20
  248. package/esm2015/core/animation/animation.js +12 -20
  249. package/esm2015/core/common-behaviors/common-module.js +91 -95
  250. package/esm2015/core/datetime/index.js +19 -27
  251. package/esm2015/core/datetime/native-date-adapter.js +202 -206
  252. package/esm2015/core/error/error-options.js +16 -24
  253. package/esm2015/core/line/line.js +18 -26
  254. package/esm2015/core/option/index.js +10 -14
  255. package/esm2015/core/option/optgroup.js +36 -33
  256. package/esm2015/core/option/option.js +181 -185
  257. package/esm2015/core/ripple/index.js +10 -14
  258. package/esm2015/core/ripple/ripple-ref.js +1 -1
  259. package/esm2015/core/ripple/ripple-renderer.js +1 -1
  260. package/esm2015/core/ripple/ripple.js +102 -106
  261. package/esm2015/core/selection/index.js +9 -13
  262. package/esm2015/core/selection/pseudo-checkbox/pseudo-checkbox.js +32 -36
  263. package/esm2015/core/testing/optgroup-harness.js +39 -43
  264. package/esm2015/core/testing/option-harness.js +51 -55
  265. package/esm2015/core/version.js +1 -1
  266. package/esm2015/datepicker/calendar-body.js +214 -218
  267. package/esm2015/datepicker/calendar.js +295 -303
  268. package/esm2015/datepicker/date-range-input-parts.js +214 -229
  269. package/esm2015/datepicker/date-range-input.js +244 -242
  270. package/esm2015/datepicker/date-range-picker.js +19 -23
  271. package/esm2015/datepicker/date-range-selection-strategy.js +31 -35
  272. package/esm2015/datepicker/date-selection-model.js +110 -122
  273. package/esm2015/datepicker/datepicker-base.js +418 -426
  274. package/esm2015/datepicker/datepicker-input-base.js +227 -224
  275. package/esm2015/datepicker/datepicker-input.js +111 -115
  276. package/esm2015/datepicker/datepicker-intl.js +37 -41
  277. package/esm2015/datepicker/datepicker-module.js +62 -66
  278. package/esm2015/datepicker/datepicker-toggle.js +81 -89
  279. package/esm2015/datepicker/datepicker.js +13 -17
  280. package/esm2015/datepicker/month-view.js +283 -287
  281. package/esm2015/datepicker/multi-year-view.js +198 -202
  282. package/esm2015/datepicker/public-api.js +2 -2
  283. package/esm2015/datepicker/year-view.js +220 -224
  284. package/esm2015/dialog/dialog-container.js +175 -164
  285. package/esm2015/dialog/dialog-content-directives.js +105 -114
  286. package/esm2015/dialog/dialog-module.js +32 -36
  287. package/esm2015/dialog/dialog-ref.js +17 -3
  288. package/esm2015/dialog/dialog.js +236 -240
  289. package/esm2015/dialog/testing/dialog-harness.js +58 -62
  290. package/esm2015/divider/divider-module.js +10 -14
  291. package/esm2015/divider/divider.js +33 -37
  292. package/esm2015/divider/testing/divider-harness.js +16 -20
  293. package/esm2015/expansion/accordion.js +73 -77
  294. package/esm2015/expansion/expansion-module.js +26 -30
  295. package/esm2015/expansion/expansion-panel-content.js +13 -17
  296. package/esm2015/expansion/expansion-panel-header.js +168 -180
  297. package/esm2015/expansion/expansion-panel.js +144 -152
  298. package/esm2015/expansion/testing/accordion-harness.js +24 -28
  299. package/esm2015/expansion/testing/expansion-harness.js +136 -134
  300. package/esm2015/form-field/error.js +26 -23
  301. package/esm2015/form-field/form-field-control.js +6 -10
  302. package/esm2015/form-field/form-field-module.js +31 -35
  303. package/esm2015/form-field/form-field.js +407 -409
  304. package/esm2015/form-field/hint.js +35 -29
  305. package/esm2015/form-field/label.js +8 -12
  306. package/esm2015/form-field/placeholder.js +8 -12
  307. package/esm2015/form-field/prefix.js +16 -13
  308. package/esm2015/form-field/suffix.js +16 -13
  309. package/esm2015/form-field/testing/form-field-harness.js +220 -206
  310. package/esm2015/grid-list/grid-list-module.js +26 -30
  311. package/esm2015/grid-list/grid-list.js +108 -112
  312. package/esm2015/grid-list/grid-tile.js +91 -111
  313. package/esm2015/grid-list/testing/grid-list-harness.js +62 -66
  314. package/esm2015/grid-list/testing/grid-tile-harness.js +69 -73
  315. package/esm2015/grid-list/tile-styler.js +1 -1
  316. package/esm2015/icon/icon-module.js +10 -14
  317. package/esm2015/icon/icon-registry.js +406 -410
  318. package/esm2015/icon/icon.js +228 -232
  319. package/esm2015/icon/testing/fake-icon-registry.js +66 -74
  320. package/esm2015/input/autosize.js +30 -34
  321. package/esm2015/input/input-module.js +21 -25
  322. package/esm2015/input/input.js +305 -284
  323. package/esm2015/input/testing/input-harness.js +129 -123
  324. package/esm2015/list/list-module.js +32 -36
  325. package/esm2015/list/list.js +165 -189
  326. package/esm2015/list/selection-list.js +503 -511
  327. package/esm2015/list/testing/action-list-harness.js +55 -57
  328. package/esm2015/list/testing/list-harness.js +31 -39
  329. package/esm2015/list/testing/list-item-harness-base.js +13 -17
  330. package/esm2015/list/testing/nav-list-harness.js +62 -64
  331. package/esm2015/list/testing/selection-list-harness.js +136 -138
  332. package/esm2015/menu/menu-content.js +74 -71
  333. package/esm2015/menu/menu-item.js +119 -123
  334. package/esm2015/menu/menu-module.js +29 -37
  335. package/esm2015/menu/menu-panel.js +1 -1
  336. package/esm2015/menu/menu-trigger.js +402 -405
  337. package/esm2015/menu/menu.js +329 -339
  338. package/esm2015/menu/testing/menu-harness.js +193 -189
  339. package/esm2015/paginator/paginator-intl.js +36 -40
  340. package/esm2015/paginator/paginator-module.js +16 -20
  341. package/esm2015/paginator/paginator.js +205 -209
  342. package/esm2015/paginator/testing/paginator-harness.js +91 -95
  343. package/esm2015/progress-bar/progress-bar-module.js +10 -14
  344. package/esm2015/progress-bar/progress-bar.js +114 -118
  345. package/esm2015/progress-bar/testing/progress-bar-harness.js +27 -31
  346. package/esm2015/progress-spinner/progress-spinner-module.js +17 -21
  347. package/esm2015/progress-spinner/progress-spinner.js +181 -189
  348. package/esm2015/progress-spinner/testing/progress-spinner-harness.js +28 -32
  349. package/esm2015/radio/radio-module.js +10 -14
  350. package/esm2015/radio/radio.js +437 -444
  351. package/esm2015/radio/testing/radio-harness.js +241 -243
  352. package/esm2015/select/select-module.js +23 -27
  353. package/esm2015/select/select.js +917 -918
  354. package/esm2015/select/testing/select-harness.js +138 -136
  355. package/esm2015/sidenav/drawer.js +632 -620
  356. package/esm2015/sidenav/sidenav-module.js +31 -35
  357. package/esm2015/sidenav/sidenav.js +104 -116
  358. package/esm2015/sidenav/testing/drawer-harness.js +40 -44
  359. package/esm2015/sidenav/testing/sidenav-harness.js +20 -24
  360. package/esm2015/slide-toggle/slide-toggle-module.js +27 -35
  361. package/esm2015/slide-toggle/slide-toggle-required-validator.js +9 -13
  362. package/esm2015/slide-toggle/slide-toggle.js +184 -188
  363. package/esm2015/slide-toggle/testing/slide-toggle-harness.js +123 -121
  364. package/esm2015/slider/slider-module.js +10 -14
  365. package/esm2015/slider/slider.js +640 -644
  366. package/esm2015/slider/testing/slider-harness.js +129 -127
  367. package/esm2015/snack-bar/simple-snack-bar.js +32 -36
  368. package/esm2015/snack-bar/snack-bar-container.js +144 -148
  369. package/esm2015/snack-bar/snack-bar-module.js +17 -21
  370. package/esm2015/snack-bar/snack-bar-ref.js +1 -1
  371. package/esm2015/snack-bar/snack-bar.js +208 -205
  372. package/esm2015/snack-bar/testing/snack-bar-harness.js +112 -116
  373. package/esm2015/sort/sort-header-intl.js +21 -21
  374. package/esm2015/sort/sort-header.js +200 -194
  375. package/esm2015/sort/sort-module.js +11 -15
  376. package/esm2015/sort/sort.js +92 -96
  377. package/esm2015/sort/testing/sort-harness.js +28 -32
  378. package/esm2015/sort/testing/sort-header-harness.js +66 -67
  379. package/esm2015/stepper/step-header.js +78 -82
  380. package/esm2015/stepper/step-label.js +8 -12
  381. package/esm2015/stepper/stepper-button.js +23 -31
  382. package/esm2015/stepper/stepper-icon.js +16 -20
  383. package/esm2015/stepper/stepper-intl.js +15 -19
  384. package/esm2015/stepper/stepper-module.js +40 -44
  385. package/esm2015/stepper/stepper.js +139 -155
  386. package/esm2015/table/cell.js +94 -122
  387. package/esm2015/table/row.js +90 -118
  388. package/esm2015/table/table-module.js +13 -17
  389. package/esm2015/table/table.js +26 -30
  390. package/esm2015/table/testing/cell-harness.js +56 -68
  391. package/esm2015/table/testing/row-harness.js +90 -102
  392. package/esm2015/table/testing/table-harness.js +65 -69
  393. package/esm2015/table/text-column.js +17 -21
  394. package/esm2015/tabs/index.js +4 -2
  395. package/esm2015/tabs/ink-bar.js +55 -59
  396. package/esm2015/tabs/paginated-tab-header.js +415 -419
  397. package/esm2015/tabs/tab-body.js +179 -191
  398. package/esm2015/tabs/tab-content.js +21 -16
  399. package/esm2015/tabs/tab-group.js +263 -271
  400. package/esm2015/tabs/tab-header.js +69 -77
  401. package/esm2015/tabs/tab-label-wrapper.js +29 -33
  402. package/esm2015/tabs/tab-label.js +16 -13
  403. package/esm2015/tabs/tab-nav-bar/tab-nav-bar.js +199 -215
  404. package/esm2015/tabs/tab.js +80 -83
  405. package/esm2015/tabs/tabs-module.js +38 -42
  406. package/esm2015/tabs/testing/tab-group-harness.js +52 -56
  407. package/esm2015/tabs/testing/tab-harness.js +78 -82
  408. package/esm2015/toolbar/testing/index.js +9 -0
  409. package/esm2015/toolbar/testing/public-api.js +10 -0
  410. package/esm2015/toolbar/testing/testing.externs.js +0 -0
  411. package/esm2015/toolbar/testing/toolbar-harness-filters.js +8 -0
  412. package/esm2015/toolbar/testing/toolbar-harness.js +47 -0
  413. package/esm2015/toolbar/toolbar-module.js +10 -14
  414. package/esm2015/toolbar/toolbar.js +61 -69
  415. package/esm2015/tooltip/testing/tooltip-harness.js +43 -47
  416. package/esm2015/tooltip/tooltip-module.js +17 -21
  417. package/esm2015/tooltip/tooltip.js +502 -497
  418. package/esm2015/tree/data-source/flat-data-source.js +1 -1
  419. package/esm2015/tree/node.js +99 -111
  420. package/esm2015/tree/outlet.js +19 -23
  421. package/esm2015/tree/padding.js +13 -17
  422. package/esm2015/tree/toggle.js +15 -19
  423. package/esm2015/tree/tree-module.js +10 -14
  424. package/esm2015/tree/tree.js +23 -27
  425. package/expansion/testing/expansion-harness.d.ts +2 -0
  426. package/fesm2015/autocomplete/testing.js +98 -95
  427. package/fesm2015/autocomplete/testing.js.map +1 -1
  428. package/fesm2015/autocomplete.js +677 -687
  429. package/fesm2015/autocomplete.js.map +1 -1
  430. package/fesm2015/badge/testing.js +73 -76
  431. package/fesm2015/badge/testing.js.map +1 -1
  432. package/fesm2015/badge.js +195 -201
  433. package/fesm2015/badge.js.map +1 -1
  434. package/fesm2015/bottom-sheet/testing.js +28 -31
  435. package/fesm2015/bottom-sheet/testing.js.map +1 -1
  436. package/fesm2015/bottom-sheet.js +297 -306
  437. package/fesm2015/bottom-sheet.js.map +1 -1
  438. package/fesm2015/button/testing.js +59 -56
  439. package/fesm2015/button/testing.js.map +1 -1
  440. package/fesm2015/button-toggle/testing.js +155 -155
  441. package/fesm2015/button-toggle/testing.js.map +1 -1
  442. package/fesm2015/button-toggle.js +377 -378
  443. package/fesm2015/button-toggle.js.map +1 -1
  444. package/fesm2015/button.js +129 -133
  445. package/fesm2015/button.js.map +1 -1
  446. package/fesm2015/card/testing.js +79 -0
  447. package/fesm2015/card/testing.js.map +1 -0
  448. package/fesm2015/card.js +175 -220
  449. package/fesm2015/card.js.map +1 -1
  450. package/fesm2015/checkbox/testing.js +149 -146
  451. package/fesm2015/checkbox/testing.js.map +1 -1
  452. package/fesm2015/checkbox.js +342 -354
  453. package/fesm2015/checkbox.js.map +1 -1
  454. package/fesm2015/chips.js +1039 -1039
  455. package/fesm2015/chips.js.map +1 -1
  456. package/fesm2015/core/testing.js +88 -94
  457. package/fesm2015/core/testing.js.map +1 -1
  458. package/fesm2015/core.js +729 -773
  459. package/fesm2015/core.js.map +1 -1
  460. package/fesm2015/datepicker.js +2821 -2884
  461. package/fesm2015/datepicker.js.map +1 -1
  462. package/fesm2015/dialog/testing.js +57 -60
  463. package/fesm2015/dialog/testing.js.map +1 -1
  464. package/fesm2015/dialog.js +564 -549
  465. package/fesm2015/dialog.js.map +1 -1
  466. package/fesm2015/divider/testing.js +15 -18
  467. package/fesm2015/divider/testing.js.map +1 -1
  468. package/fesm2015/divider.js +41 -47
  469. package/fesm2015/divider.js.map +1 -1
  470. package/fesm2015/expansion/testing.js +159 -159
  471. package/fesm2015/expansion/testing.js.map +1 -1
  472. package/fesm2015/expansion.js +422 -446
  473. package/fesm2015/expansion.js.map +1 -1
  474. package/fesm2015/form-field/testing.js +219 -204
  475. package/fesm2015/form-field/testing.js.map +1 -1
  476. package/fesm2015/form-field.js +538 -532
  477. package/fesm2015/form-field.js.map +1 -1
  478. package/fesm2015/grid-list/testing.js +129 -135
  479. package/fesm2015/grid-list/testing.js.map +1 -1
  480. package/fesm2015/grid-list.js +221 -242
  481. package/fesm2015/grid-list.js.map +1 -1
  482. package/fesm2015/icon/testing.js +65 -71
  483. package/fesm2015/icon/testing.js.map +1 -1
  484. package/fesm2015/icon.js +660 -669
  485. package/fesm2015/icon.js.map +1 -1
  486. package/fesm2015/input/testing.js +128 -121
  487. package/fesm2015/input/testing.js.map +1 -1
  488. package/fesm2015/input.js +353 -337
  489. package/fesm2015/input.js.map +1 -1
  490. package/fesm2015/list/testing.js +298 -307
  491. package/fesm2015/list/testing.js.map +1 -1
  492. package/fesm2015/list.js +698 -725
  493. package/fesm2015/list.js.map +1 -1
  494. package/fesm2015/menu/testing.js +192 -186
  495. package/fesm2015/menu/testing.js.map +1 -1
  496. package/fesm2015/menu.js +948 -962
  497. package/fesm2015/menu.js.map +1 -1
  498. package/fesm2015/paginator/testing.js +90 -93
  499. package/fesm2015/paginator/testing.js.map +1 -1
  500. package/fesm2015/paginator.js +247 -256
  501. package/fesm2015/paginator.js.map +1 -1
  502. package/fesm2015/progress-bar/testing.js +26 -29
  503. package/fesm2015/progress-bar/testing.js.map +1 -1
  504. package/fesm2015/progress-bar.js +122 -128
  505. package/fesm2015/progress-bar.js.map +1 -1
  506. package/fesm2015/progress-spinner/testing.js +27 -30
  507. package/fesm2015/progress-spinner/testing.js.map +1 -1
  508. package/fesm2015/progress-spinner.js +196 -205
  509. package/fesm2015/progress-spinner.js.map +1 -1
  510. package/fesm2015/radio/testing.js +240 -240
  511. package/fesm2015/radio/testing.js.map +1 -1
  512. package/fesm2015/radio.js +447 -453
  513. package/fesm2015/radio.js.map +1 -1
  514. package/fesm2015/select/testing.js +137 -134
  515. package/fesm2015/select/testing.js.map +1 -1
  516. package/fesm2015/select.js +939 -941
  517. package/fesm2015/select.js.map +1 -1
  518. package/fesm2015/sidenav/testing.js +58 -64
  519. package/fesm2015/sidenav/testing.js.map +1 -1
  520. package/fesm2015/sidenav.js +765 -762
  521. package/fesm2015/sidenav.js.map +1 -1
  522. package/fesm2015/slide-toggle/testing.js +122 -119
  523. package/fesm2015/slide-toggle/testing.js.map +1 -1
  524. package/fesm2015/slide-toggle.js +217 -229
  525. package/fesm2015/slide-toggle.js.map +1 -1
  526. package/fesm2015/slider/testing.js +128 -125
  527. package/fesm2015/slider/testing.js.map +1 -1
  528. package/fesm2015/slider.js +648 -654
  529. package/fesm2015/slider.js.map +1 -1
  530. package/fesm2015/snack-bar/testing.js +111 -114
  531. package/fesm2015/snack-bar/testing.js.map +1 -1
  532. package/fesm2015/snack-bar.js +426 -431
  533. package/fesm2015/snack-bar.js.map +1 -1
  534. package/fesm2015/sort/testing.js +92 -95
  535. package/fesm2015/sort/testing.js.map +1 -1
  536. package/fesm2015/sort.js +320 -318
  537. package/fesm2015/sort.js.map +1 -1
  538. package/fesm2015/stepper.js +312 -345
  539. package/fesm2015/stepper.js.map +1 -1
  540. package/fesm2015/table/testing.js +208 -229
  541. package/fesm2015/table/testing.js.map +1 -1
  542. package/fesm2015/table.js +235 -286
  543. package/fesm2015/table.js.map +1 -1
  544. package/fesm2015/tabs/testing.js +128 -134
  545. package/fesm2015/tabs/testing.js.map +1 -1
  546. package/fesm2015/tabs.js +1362 -1399
  547. package/fesm2015/tabs.js.map +1 -1
  548. package/fesm2015/toolbar/testing.js +74 -0
  549. package/fesm2015/toolbar/testing.js.map +1 -0
  550. package/fesm2015/toolbar.js +69 -78
  551. package/fesm2015/toolbar.js.map +1 -1
  552. package/fesm2015/tooltip/testing.js +42 -45
  553. package/fesm2015/tooltip/testing.js.map +1 -1
  554. package/fesm2015/tooltip.js +517 -513
  555. package/fesm2015/tooltip.js.map +1 -1
  556. package/fesm2015/tree.js +173 -197
  557. package/fesm2015/tree.js.map +1 -1
  558. package/form-field/error.d.ts +7 -0
  559. package/form-field/hint.d.ts +10 -0
  560. package/form-field/index.metadata.json +1 -1
  561. package/form-field/prefix.d.ts +7 -0
  562. package/form-field/suffix.d.ts +7 -0
  563. package/form-field/testing/form-field-harness.d.ts +8 -0
  564. package/grid-list/grid-list.d.ts +2 -1
  565. package/grid-list/index.metadata.json +1 -1
  566. package/grid-list/tile-styler.d.ts +10 -5
  567. package/input/_input-theme.scss +2 -2
  568. package/input/index.metadata.json +1 -1
  569. package/input/input.d.ts +6 -2
  570. package/input/testing/input-harness.d.ts +2 -0
  571. package/list/index.metadata.json +1 -1
  572. package/list/testing/action-list-harness.d.ts +2 -0
  573. package/list/testing/nav-list-harness.d.ts +2 -0
  574. package/list/testing/selection-list-harness.d.ts +2 -0
  575. package/menu/index.metadata.json +1 -1
  576. package/menu/menu-content.d.ts +7 -1
  577. package/menu/menu-panel.d.ts +1 -0
  578. package/menu/menu.d.ts +4 -0
  579. package/menu/testing/menu-harness.d.ts +4 -0
  580. package/package.json +6 -6
  581. package/prebuilt-themes/deeppurple-amber.css +1 -1
  582. package/prebuilt-themes/indigo-pink.css +1 -1
  583. package/prebuilt-themes/pink-bluegrey.css +1 -1
  584. package/prebuilt-themes/purple-green.css +1 -1
  585. package/progress-spinner/index.metadata.json +1 -1
  586. package/radio/index.metadata.json +1 -1
  587. package/radio/radio.d.ts +6 -0
  588. package/radio/testing/radio-harness.d.ts +2 -0
  589. package/schematics/migration.json +5 -0
  590. package/schematics/ng-add/index.js +2 -2
  591. package/schematics/ng-generate/navigation/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.html.template +3 -3
  592. package/schematics/ng-generate/navigation/schema.json +5 -0
  593. package/schematics/ng-update/data/index.js +1 -1
  594. package/schematics/ng-update/index.d.ts +2 -0
  595. package/schematics/ng-update/index.js +7 -2
  596. package/schematics/ng-update/migrations/hammer-gestures-v9/hammer-gestures-migration.js +639 -639
  597. package/schematics/ng-update/migrations/misc-ripples-v7/ripple-speed-factor-migration.js +1 -1
  598. package/select/index.metadata.json +1 -1
  599. package/select/select.d.ts +6 -0
  600. package/select/testing/select-harness.d.ts +2 -0
  601. package/sidenav/drawer.d.ts +15 -3
  602. package/sidenav/index.metadata.json +1 -1
  603. package/slide-toggle/index.metadata.json +1 -1
  604. package/slide-toggle/testing/slide-toggle-harness.d.ts +2 -0
  605. package/slider/testing/slider-harness.d.ts +2 -0
  606. package/snack-bar/index.metadata.json +1 -1
  607. package/snack-bar/simple-snack-bar.d.ts +13 -1
  608. package/snack-bar/snack-bar-container.d.ts +16 -3
  609. package/snack-bar/snack-bar-ref.d.ts +3 -3
  610. package/snack-bar/snack-bar.d.ts +10 -3
  611. package/sort/index.metadata.json +1 -1
  612. package/sort/sort-header-intl.d.ts +5 -1
  613. package/sort/sort-header.d.ts +3 -1
  614. package/sort/testing/sort-header-harness.d.ts +6 -2
  615. package/tabs/index.d.ts +3 -1
  616. package/tabs/index.metadata.json +1 -1
  617. package/tabs/tab-content.d.ts +7 -1
  618. package/tabs/tab-label.d.ts +7 -0
  619. package/toolbar/testing/index.d.ts +8 -0
  620. package/toolbar/testing/package.json +9 -0
  621. package/toolbar/testing/public-api.d.ts +9 -0
  622. package/toolbar/testing/toolbar-harness-filters.d.ts +13 -0
  623. package/toolbar/testing/toolbar-harness.d.ts +31 -0
  624. package/tooltip/index.metadata.json +1 -1
  625. package/tooltip/tooltip.d.ts +1 -0
  626. package/tree/data-source/flat-data-source.d.ts +4 -4
  627. package/tree/index.metadata.json +1 -1
package/fesm2015/core.js CHANGED
@@ -18,7 +18,7 @@ import { ENTER, SPACE, hasModifierKey } from '@angular/cdk/keycodes';
18
18
  * found in the LICENSE file at https://angular.io/license
19
19
  */
20
20
  /** Current version of Angular Material. */
21
- const VERSION = new Version('10.0.0-rc.3');
21
+ const VERSION = new Version('10.1.0');
22
22
 
23
23
  /**
24
24
  * @license
@@ -28,24 +28,18 @@ const VERSION = new Version('10.0.0-rc.3');
28
28
  * found in the LICENSE file at https://angular.io/license
29
29
  */
30
30
  /** @docs-private */
31
- let AnimationCurves = /** @class */ (() => {
32
- class AnimationCurves {
33
- }
34
- AnimationCurves.STANDARD_CURVE = 'cubic-bezier(0.4,0.0,0.2,1)';
35
- AnimationCurves.DECELERATION_CURVE = 'cubic-bezier(0.0,0.0,0.2,1)';
36
- AnimationCurves.ACCELERATION_CURVE = 'cubic-bezier(0.4,0.0,1,1)';
37
- AnimationCurves.SHARP_CURVE = 'cubic-bezier(0.4,0.0,0.6,1)';
38
- return AnimationCurves;
39
- })();
31
+ class AnimationCurves {
32
+ }
33
+ AnimationCurves.STANDARD_CURVE = 'cubic-bezier(0.4,0.0,0.2,1)';
34
+ AnimationCurves.DECELERATION_CURVE = 'cubic-bezier(0.0,0.0,0.2,1)';
35
+ AnimationCurves.ACCELERATION_CURVE = 'cubic-bezier(0.4,0.0,1,1)';
36
+ AnimationCurves.SHARP_CURVE = 'cubic-bezier(0.4,0.0,0.6,1)';
40
37
  /** @docs-private */
41
- let AnimationDurations = /** @class */ (() => {
42
- class AnimationDurations {
43
- }
44
- AnimationDurations.COMPLEX = '375ms';
45
- AnimationDurations.ENTERING = '225ms';
46
- AnimationDurations.EXITING = '195ms';
47
- return AnimationDurations;
48
- })();
38
+ class AnimationDurations {
39
+ }
40
+ AnimationDurations.COMPLEX = '375ms';
41
+ AnimationDurations.ENTERING = '225ms';
42
+ AnimationDurations.EXITING = '195ms';
49
43
 
50
44
  /**
51
45
  * @license
@@ -58,7 +52,7 @@ let AnimationDurations = /** @class */ (() => {
58
52
  // i.e. avoid core to depend on the @angular/material primary entry-point
59
53
  // Can be removed once the Material primary entry-point no longer
60
54
  // re-exports all secondary entry-points
61
- const VERSION$1 = new Version('10.0.0-rc.3');
55
+ const VERSION$1 = new Version('10.1.0');
62
56
  /** @docs-private */
63
57
  function MATERIAL_SANITY_CHECKS_FACTORY() {
64
58
  return true;
@@ -74,104 +68,101 @@ const MATERIAL_SANITY_CHECKS = new InjectionToken('mat-sanity-checks', {
74
68
  *
75
69
  * This module should be imported to each top-level component module (e.g., MatTabsModule).
76
70
  */
77
- let MatCommonModule = /** @class */ (() => {
78
- class MatCommonModule {
79
- constructor(highContrastModeDetector, sanityChecks,
80
- /** @breaking-change 11.0.0 make document required */
81
- document) {
82
- /** Whether we've done the global sanity checks (e.g. a theme is loaded, there is a doctype). */
83
- this._hasDoneGlobalChecks = false;
84
- this._document = document;
85
- // While A11yModule also does this, we repeat it here to avoid importing A11yModule
86
- // in MatCommonModule.
87
- highContrastModeDetector._applyBodyHighContrastModeCssClasses();
88
- // Note that `_sanityChecks` is typed to `any`, because AoT
89
- // throws an error if we use the `SanityChecks` type directly.
90
- this._sanityChecks = sanityChecks;
91
- if (!this._hasDoneGlobalChecks) {
92
- this._checkDoctypeIsDefined();
93
- this._checkThemeIsPresent();
94
- this._checkCdkVersionMatch();
95
- this._hasDoneGlobalChecks = true;
96
- }
97
- }
98
- /** Access injected document if available or fallback to global document reference */
99
- _getDocument() {
100
- const doc = this._document || document;
101
- return typeof doc === 'object' && doc ? doc : null;
71
+ class MatCommonModule {
72
+ constructor(highContrastModeDetector, sanityChecks,
73
+ /** @breaking-change 11.0.0 make document required */
74
+ document) {
75
+ /** Whether we've done the global sanity checks (e.g. a theme is loaded, there is a doctype). */
76
+ this._hasDoneGlobalChecks = false;
77
+ this._document = document;
78
+ // While A11yModule also does this, we repeat it here to avoid importing A11yModule
79
+ // in MatCommonModule.
80
+ highContrastModeDetector._applyBodyHighContrastModeCssClasses();
81
+ // Note that `_sanityChecks` is typed to `any`, because AoT
82
+ // throws an error if we use the `SanityChecks` type directly.
83
+ this._sanityChecks = sanityChecks;
84
+ if (!this._hasDoneGlobalChecks) {
85
+ this._checkDoctypeIsDefined();
86
+ this._checkThemeIsPresent();
87
+ this._checkCdkVersionMatch();
88
+ this._hasDoneGlobalChecks = true;
102
89
  }
103
- /** Use defaultView of injected document if available or fallback to global window reference */
104
- _getWindow() {
105
- const doc = this._getDocument();
106
- const win = (doc === null || doc === void 0 ? void 0 : doc.defaultView) || window;
107
- return typeof win === 'object' && win ? win : null;
108
- }
109
- /** Whether any sanity checks are enabled. */
110
- _checksAreEnabled() {
111
- return isDevMode() && !this._isTestEnv();
112
- }
113
- /** Whether the code is running in tests. */
114
- _isTestEnv() {
115
- const window = this._getWindow();
116
- return window && (window.__karma__ || window.jasmine);
117
- }
118
- _checkDoctypeIsDefined() {
119
- const isEnabled = this._checksAreEnabled() &&
120
- (this._sanityChecks === true || this._sanityChecks.doctype);
121
- const document = this._getDocument();
122
- if (isEnabled && document && !document.doctype) {
123
- console.warn('Current document does not have a doctype. This may cause ' +
124
- 'some Angular Material components not to behave as expected.');
125
- }
90
+ }
91
+ /** Access injected document if available or fallback to global document reference */
92
+ _getDocument() {
93
+ const doc = this._document || document;
94
+ return typeof doc === 'object' && doc ? doc : null;
95
+ }
96
+ /** Use defaultView of injected document if available or fallback to global window reference */
97
+ _getWindow() {
98
+ const doc = this._getDocument();
99
+ const win = (doc === null || doc === void 0 ? void 0 : doc.defaultView) || window;
100
+ return typeof win === 'object' && win ? win : null;
101
+ }
102
+ /** Whether any sanity checks are enabled. */
103
+ _checksAreEnabled() {
104
+ return isDevMode() && !this._isTestEnv();
105
+ }
106
+ /** Whether the code is running in tests. */
107
+ _isTestEnv() {
108
+ const window = this._getWindow();
109
+ return window && (window.__karma__ || window.jasmine);
110
+ }
111
+ _checkDoctypeIsDefined() {
112
+ const isEnabled = this._checksAreEnabled() &&
113
+ (this._sanityChecks === true || this._sanityChecks.doctype);
114
+ const document = this._getDocument();
115
+ if (isEnabled && document && !document.doctype) {
116
+ console.warn('Current document does not have a doctype. This may cause ' +
117
+ 'some Angular Material components not to behave as expected.');
126
118
  }
127
- _checkThemeIsPresent() {
128
- // We need to assert that the `body` is defined, because these checks run very early
129
- // and the `body` won't be defined if the consumer put their scripts in the `head`.
130
- const isDisabled = !this._checksAreEnabled() ||
131
- (this._sanityChecks === false || !this._sanityChecks.theme);
132
- const document = this._getDocument();
133
- if (isDisabled || !document || !document.body ||
134
- typeof getComputedStyle !== 'function') {
135
- return;
136
- }
137
- const testElement = document.createElement('div');
138
- testElement.classList.add('mat-theme-loaded-marker');
139
- document.body.appendChild(testElement);
140
- const computedStyle = getComputedStyle(testElement);
141
- // In some situations the computed style of the test element can be null. For example in
142
- // Firefox, the computed style is null if an application is running inside of a hidden iframe.
143
- // See: https://bugzilla.mozilla.org/show_bug.cgi?id=548397
144
- if (computedStyle && computedStyle.display !== 'none') {
145
- console.warn('Could not find Angular Material core theme. Most Material ' +
146
- 'components may not work as expected. For more info refer ' +
147
- 'to the theming guide: https://material.angular.io/guide/theming');
148
- }
149
- document.body.removeChild(testElement);
119
+ }
120
+ _checkThemeIsPresent() {
121
+ // We need to assert that the `body` is defined, because these checks run very early
122
+ // and the `body` won't be defined if the consumer put their scripts in the `head`.
123
+ const isDisabled = !this._checksAreEnabled() ||
124
+ (this._sanityChecks === false || !this._sanityChecks.theme);
125
+ const document = this._getDocument();
126
+ if (isDisabled || !document || !document.body ||
127
+ typeof getComputedStyle !== 'function') {
128
+ return;
150
129
  }
151
- /** Checks whether the material version matches the cdk version */
152
- _checkCdkVersionMatch() {
153
- const isEnabled = this._checksAreEnabled() &&
154
- (this._sanityChecks === true || this._sanityChecks.version);
155
- if (isEnabled && VERSION$1.full !== VERSION$2.full) {
156
- console.warn('The Angular Material version (' + VERSION$1.full + ') does not match ' +
157
- 'the Angular CDK version (' + VERSION$2.full + ').\n' +
158
- 'Please ensure the versions of these two packages exactly match.');
159
- }
130
+ const testElement = document.createElement('div');
131
+ testElement.classList.add('mat-theme-loaded-marker');
132
+ document.body.appendChild(testElement);
133
+ const computedStyle = getComputedStyle(testElement);
134
+ // In some situations the computed style of the test element can be null. For example in
135
+ // Firefox, the computed style is null if an application is running inside of a hidden iframe.
136
+ // See: https://bugzilla.mozilla.org/show_bug.cgi?id=548397
137
+ if (computedStyle && computedStyle.display !== 'none') {
138
+ console.warn('Could not find Angular Material core theme. Most Material ' +
139
+ 'components may not work as expected. For more info refer ' +
140
+ 'to the theming guide: https://material.angular.io/guide/theming');
141
+ }
142
+ document.body.removeChild(testElement);
143
+ }
144
+ /** Checks whether the material version matches the cdk version */
145
+ _checkCdkVersionMatch() {
146
+ const isEnabled = this._checksAreEnabled() &&
147
+ (this._sanityChecks === true || this._sanityChecks.version);
148
+ if (isEnabled && VERSION$1.full !== VERSION$2.full) {
149
+ console.warn('The Angular Material version (' + VERSION$1.full + ') does not match ' +
150
+ 'the Angular CDK version (' + VERSION$2.full + ').\n' +
151
+ 'Please ensure the versions of these two packages exactly match.');
160
152
  }
161
153
  }
162
- MatCommonModule.decorators = [
163
- { type: NgModule, args: [{
164
- imports: [BidiModule],
165
- exports: [BidiModule],
166
- },] }
167
- ];
168
- MatCommonModule.ctorParameters = () => [
169
- { type: HighContrastModeDetector },
170
- { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [MATERIAL_SANITY_CHECKS,] }] },
171
- { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [DOCUMENT,] }] }
172
- ];
173
- return MatCommonModule;
174
- })();
154
+ }
155
+ MatCommonModule.decorators = [
156
+ { type: NgModule, args: [{
157
+ imports: [BidiModule],
158
+ exports: [BidiModule],
159
+ },] }
160
+ ];
161
+ MatCommonModule.ctorParameters = () => [
162
+ { type: HighContrastModeDetector },
163
+ { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [MATERIAL_SANITY_CHECKS,] }] },
164
+ { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [DOCUMENT,] }] }
165
+ ];
175
166
 
176
167
  /**
177
168
  * @license
@@ -535,228 +526,225 @@ function range(length, valueFunction) {
535
526
  return valuesArray;
536
527
  }
537
528
  /** Adapts the native JS Date for use with cdk-based components that work with dates. */
538
- let NativeDateAdapter = /** @class */ (() => {
539
- class NativeDateAdapter extends DateAdapter {
540
- constructor(matDateLocale, platform) {
541
- super();
542
- /**
543
- * Whether to use `timeZone: 'utc'` with `Intl.DateTimeFormat` when formatting dates.
544
- * Without this `Intl.DateTimeFormat` sometimes chooses the wrong timeZone, which can throw off
545
- * the result. (e.g. in the en-US locale `new Date(1800, 7, 14).toLocaleDateString()`
546
- * will produce `'8/13/1800'`.
547
- *
548
- * TODO(mmalerba): drop this variable. It's not being used in the code right now. We're now
549
- * getting the string representation of a Date object from its utc representation. We're keeping
550
- * it here for sometime, just for precaution, in case we decide to revert some of these changes
551
- * though.
552
- */
553
- this.useUtcForDisplay = true;
554
- super.setLocale(matDateLocale);
555
- // IE does its own time zone correction, so we disable this on IE.
556
- this.useUtcForDisplay = !platform.TRIDENT;
557
- this._clampDate = platform.TRIDENT || platform.EDGE;
558
- }
559
- getYear(date) {
560
- return date.getFullYear();
561
- }
562
- getMonth(date) {
563
- return date.getMonth();
564
- }
565
- getDate(date) {
566
- return date.getDate();
567
- }
568
- getDayOfWeek(date) {
569
- return date.getDay();
570
- }
571
- getMonthNames(style) {
572
- if (SUPPORTS_INTL_API) {
573
- const dtf = new Intl.DateTimeFormat(this.locale, { month: style, timeZone: 'utc' });
574
- return range(12, i => this._stripDirectionalityCharacters(this._format(dtf, new Date(2017, i, 1))));
575
- }
576
- return DEFAULT_MONTH_NAMES[style];
577
- }
578
- getDateNames() {
579
- if (SUPPORTS_INTL_API) {
580
- const dtf = new Intl.DateTimeFormat(this.locale, { day: 'numeric', timeZone: 'utc' });
581
- return range(31, i => this._stripDirectionalityCharacters(this._format(dtf, new Date(2017, 0, i + 1))));
582
- }
583
- return DEFAULT_DATE_NAMES;
584
- }
585
- getDayOfWeekNames(style) {
586
- if (SUPPORTS_INTL_API) {
587
- const dtf = new Intl.DateTimeFormat(this.locale, { weekday: style, timeZone: 'utc' });
588
- return range(7, i => this._stripDirectionalityCharacters(this._format(dtf, new Date(2017, 0, i + 1))));
589
- }
590
- return DEFAULT_DAY_OF_WEEK_NAMES[style];
529
+ class NativeDateAdapter extends DateAdapter {
530
+ constructor(matDateLocale, platform) {
531
+ super();
532
+ /**
533
+ * Whether to use `timeZone: 'utc'` with `Intl.DateTimeFormat` when formatting dates.
534
+ * Without this `Intl.DateTimeFormat` sometimes chooses the wrong timeZone, which can throw off
535
+ * the result. (e.g. in the en-US locale `new Date(1800, 7, 14).toLocaleDateString()`
536
+ * will produce `'8/13/1800'`.
537
+ *
538
+ * TODO(mmalerba): drop this variable. It's not being used in the code right now. We're now
539
+ * getting the string representation of a Date object from its utc representation. We're keeping
540
+ * it here for sometime, just for precaution, in case we decide to revert some of these changes
541
+ * though.
542
+ */
543
+ this.useUtcForDisplay = true;
544
+ super.setLocale(matDateLocale);
545
+ // IE does its own time zone correction, so we disable this on IE.
546
+ this.useUtcForDisplay = !platform.TRIDENT;
547
+ this._clampDate = platform.TRIDENT || platform.EDGE;
548
+ }
549
+ getYear(date) {
550
+ return date.getFullYear();
551
+ }
552
+ getMonth(date) {
553
+ return date.getMonth();
554
+ }
555
+ getDate(date) {
556
+ return date.getDate();
557
+ }
558
+ getDayOfWeek(date) {
559
+ return date.getDay();
560
+ }
561
+ getMonthNames(style) {
562
+ if (SUPPORTS_INTL_API) {
563
+ const dtf = new Intl.DateTimeFormat(this.locale, { month: style, timeZone: 'utc' });
564
+ return range(12, i => this._stripDirectionalityCharacters(this._format(dtf, new Date(2017, i, 1))));
591
565
  }
592
- getYearName(date) {
593
- if (SUPPORTS_INTL_API) {
594
- const dtf = new Intl.DateTimeFormat(this.locale, { year: 'numeric', timeZone: 'utc' });
595
- return this._stripDirectionalityCharacters(this._format(dtf, date));
596
- }
597
- return String(this.getYear(date));
566
+ return DEFAULT_MONTH_NAMES[style];
567
+ }
568
+ getDateNames() {
569
+ if (SUPPORTS_INTL_API) {
570
+ const dtf = new Intl.DateTimeFormat(this.locale, { day: 'numeric', timeZone: 'utc' });
571
+ return range(31, i => this._stripDirectionalityCharacters(this._format(dtf, new Date(2017, 0, i + 1))));
598
572
  }
599
- getFirstDayOfWeek() {
600
- // We can't tell using native JS Date what the first day of the week is, we default to Sunday.
601
- return 0;
573
+ return DEFAULT_DATE_NAMES;
574
+ }
575
+ getDayOfWeekNames(style) {
576
+ if (SUPPORTS_INTL_API) {
577
+ const dtf = new Intl.DateTimeFormat(this.locale, { weekday: style, timeZone: 'utc' });
578
+ return range(7, i => this._stripDirectionalityCharacters(this._format(dtf, new Date(2017, 0, i + 1))));
602
579
  }
603
- getNumDaysInMonth(date) {
604
- return this.getDate(this._createDateWithOverflow(this.getYear(date), this.getMonth(date) + 1, 0));
580
+ return DEFAULT_DAY_OF_WEEK_NAMES[style];
581
+ }
582
+ getYearName(date) {
583
+ if (SUPPORTS_INTL_API) {
584
+ const dtf = new Intl.DateTimeFormat(this.locale, { year: 'numeric', timeZone: 'utc' });
585
+ return this._stripDirectionalityCharacters(this._format(dtf, date));
605
586
  }
606
- clone(date) {
607
- return new Date(date.getTime());
587
+ return String(this.getYear(date));
588
+ }
589
+ getFirstDayOfWeek() {
590
+ // We can't tell using native JS Date what the first day of the week is, we default to Sunday.
591
+ return 0;
592
+ }
593
+ getNumDaysInMonth(date) {
594
+ return this.getDate(this._createDateWithOverflow(this.getYear(date), this.getMonth(date) + 1, 0));
595
+ }
596
+ clone(date) {
597
+ return new Date(date.getTime());
598
+ }
599
+ createDate(year, month, date) {
600
+ // Check for invalid month and date (except upper bound on date which we have to check after
601
+ // creating the Date).
602
+ if (month < 0 || month > 11) {
603
+ throw Error(`Invalid month index "${month}". Month index has to be between 0 and 11.`);
608
604
  }
609
- createDate(year, month, date) {
610
- // Check for invalid month and date (except upper bound on date which we have to check after
611
- // creating the Date).
612
- if (month < 0 || month > 11) {
613
- throw Error(`Invalid month index "${month}". Month index has to be between 0 and 11.`);
614
- }
615
- if (date < 1) {
616
- throw Error(`Invalid date "${date}". Date has to be greater than 0.`);
617
- }
618
- let result = this._createDateWithOverflow(year, month, date);
619
- // Check that the date wasn't above the upper bound for the month, causing the month to overflow
620
- if (result.getMonth() != month) {
621
- throw Error(`Invalid date "${date}" for month with index "${month}".`);
622
- }
623
- return result;
605
+ if (date < 1) {
606
+ throw Error(`Invalid date "${date}". Date has to be greater than 0.`);
624
607
  }
625
- today() {
626
- return new Date();
608
+ let result = this._createDateWithOverflow(year, month, date);
609
+ // Check that the date wasn't above the upper bound for the month, causing the month to overflow
610
+ if (result.getMonth() != month) {
611
+ throw Error(`Invalid date "${date}" for month with index "${month}".`);
627
612
  }
628
- parse(value) {
629
- // We have no way using the native JS Date to set the parse format or locale, so we ignore these
630
- // parameters.
631
- if (typeof value == 'number') {
632
- return new Date(value);
633
- }
634
- return value ? new Date(Date.parse(value)) : null;
613
+ return result;
614
+ }
615
+ today() {
616
+ return new Date();
617
+ }
618
+ parse(value) {
619
+ // We have no way using the native JS Date to set the parse format or locale, so we ignore these
620
+ // parameters.
621
+ if (typeof value == 'number') {
622
+ return new Date(value);
635
623
  }
636
- format(date, displayFormat) {
637
- if (!this.isValid(date)) {
638
- throw Error('NativeDateAdapter: Cannot format invalid date.');
639
- }
640
- if (SUPPORTS_INTL_API) {
641
- // On IE and Edge the i18n API will throw a hard error that can crash the entire app
642
- // if we attempt to format a date whose year is less than 1 or greater than 9999.
643
- if (this._clampDate && (date.getFullYear() < 1 || date.getFullYear() > 9999)) {
644
- date = this.clone(date);
645
- date.setFullYear(Math.max(1, Math.min(9999, date.getFullYear())));
646
- }
647
- displayFormat = Object.assign(Object.assign({}, displayFormat), { timeZone: 'utc' });
648
- const dtf = new Intl.DateTimeFormat(this.locale, displayFormat);
649
- return this._stripDirectionalityCharacters(this._format(dtf, date));
624
+ return value ? new Date(Date.parse(value)) : null;
625
+ }
626
+ format(date, displayFormat) {
627
+ if (!this.isValid(date)) {
628
+ throw Error('NativeDateAdapter: Cannot format invalid date.');
629
+ }
630
+ if (SUPPORTS_INTL_API) {
631
+ // On IE and Edge the i18n API will throw a hard error that can crash the entire app
632
+ // if we attempt to format a date whose year is less than 1 or greater than 9999.
633
+ if (this._clampDate && (date.getFullYear() < 1 || date.getFullYear() > 9999)) {
634
+ date = this.clone(date);
635
+ date.setFullYear(Math.max(1, Math.min(9999, date.getFullYear())));
650
636
  }
651
- return this._stripDirectionalityCharacters(date.toDateString());
652
- }
653
- addCalendarYears(date, years) {
654
- return this.addCalendarMonths(date, years * 12);
637
+ displayFormat = Object.assign(Object.assign({}, displayFormat), { timeZone: 'utc' });
638
+ const dtf = new Intl.DateTimeFormat(this.locale, displayFormat);
639
+ return this._stripDirectionalityCharacters(this._format(dtf, date));
655
640
  }
656
- addCalendarMonths(date, months) {
657
- let newDate = this._createDateWithOverflow(this.getYear(date), this.getMonth(date) + months, this.getDate(date));
658
- // It's possible to wind up in the wrong month if the original month has more days than the new
659
- // month. In this case we want to go to the last day of the desired month.
660
- // Note: the additional + 12 % 12 ensures we end up with a positive number, since JS % doesn't
661
- // guarantee this.
662
- if (this.getMonth(newDate) != ((this.getMonth(date) + months) % 12 + 12) % 12) {
663
- newDate = this._createDateWithOverflow(this.getYear(newDate), this.getMonth(newDate), 0);
641
+ return this._stripDirectionalityCharacters(date.toDateString());
642
+ }
643
+ addCalendarYears(date, years) {
644
+ return this.addCalendarMonths(date, years * 12);
645
+ }
646
+ addCalendarMonths(date, months) {
647
+ let newDate = this._createDateWithOverflow(this.getYear(date), this.getMonth(date) + months, this.getDate(date));
648
+ // It's possible to wind up in the wrong month if the original month has more days than the new
649
+ // month. In this case we want to go to the last day of the desired month.
650
+ // Note: the additional + 12 % 12 ensures we end up with a positive number, since JS % doesn't
651
+ // guarantee this.
652
+ if (this.getMonth(newDate) != ((this.getMonth(date) + months) % 12 + 12) % 12) {
653
+ newDate = this._createDateWithOverflow(this.getYear(newDate), this.getMonth(newDate), 0);
654
+ }
655
+ return newDate;
656
+ }
657
+ addCalendarDays(date, days) {
658
+ return this._createDateWithOverflow(this.getYear(date), this.getMonth(date), this.getDate(date) + days);
659
+ }
660
+ toIso8601(date) {
661
+ return [
662
+ date.getUTCFullYear(),
663
+ this._2digit(date.getUTCMonth() + 1),
664
+ this._2digit(date.getUTCDate())
665
+ ].join('-');
666
+ }
667
+ /**
668
+ * Returns the given value if given a valid Date or null. Deserializes valid ISO 8601 strings
669
+ * (https://www.ietf.org/rfc/rfc3339.txt) into valid Dates and empty string into null. Returns an
670
+ * invalid date for all other values.
671
+ */
672
+ deserialize(value) {
673
+ if (typeof value === 'string') {
674
+ if (!value) {
675
+ return null;
664
676
  }
665
- return newDate;
666
- }
667
- addCalendarDays(date, days) {
668
- return this._createDateWithOverflow(this.getYear(date), this.getMonth(date), this.getDate(date) + days);
669
- }
670
- toIso8601(date) {
671
- return [
672
- date.getUTCFullYear(),
673
- this._2digit(date.getUTCMonth() + 1),
674
- this._2digit(date.getUTCDate())
675
- ].join('-');
676
- }
677
- /**
678
- * Returns the given value if given a valid Date or null. Deserializes valid ISO 8601 strings
679
- * (https://www.ietf.org/rfc/rfc3339.txt) into valid Dates and empty string into null. Returns an
680
- * invalid date for all other values.
681
- */
682
- deserialize(value) {
683
- if (typeof value === 'string') {
684
- if (!value) {
685
- return null;
686
- }
687
- // The `Date` constructor accepts formats other than ISO 8601, so we need to make sure the
688
- // string is the right format first.
689
- if (ISO_8601_REGEX.test(value)) {
690
- let date = new Date(value);
691
- if (this.isValid(date)) {
692
- return date;
693
- }
677
+ // The `Date` constructor accepts formats other than ISO 8601, so we need to make sure the
678
+ // string is the right format first.
679
+ if (ISO_8601_REGEX.test(value)) {
680
+ let date = new Date(value);
681
+ if (this.isValid(date)) {
682
+ return date;
694
683
  }
695
684
  }
696
- return super.deserialize(value);
697
- }
698
- isDateInstance(obj) {
699
- return obj instanceof Date;
700
- }
701
- isValid(date) {
702
- return !isNaN(date.getTime());
703
- }
704
- invalid() {
705
- return new Date(NaN);
706
- }
707
- /** Creates a date but allows the month and date to overflow. */
708
- _createDateWithOverflow(year, month, date) {
709
- const result = new Date(year, month, date);
710
- // We need to correct for the fact that JS native Date treats years in range [0, 99] as
711
- // abbreviations for 19xx.
712
- if (year >= 0 && year < 100) {
713
- result.setFullYear(this.getYear(result) - 1900);
714
- }
715
- return result;
716
- }
717
- /**
718
- * Pads a number to make it two digits.
719
- * @param n The number to pad.
720
- * @returns The padded number.
721
- */
722
- _2digit(n) {
723
- return ('00' + n).slice(-2);
724
- }
725
- /**
726
- * Strip out unicode LTR and RTL characters. Edge and IE insert these into formatted dates while
727
- * other browsers do not. We remove them to make output consistent and because they interfere with
728
- * date parsing.
729
- * @param str The string to strip direction characters from.
730
- * @returns The stripped string.
731
- */
732
- _stripDirectionalityCharacters(str) {
733
- return str.replace(/[\u200e\u200f]/g, '');
734
- }
735
- /**
736
- * When converting Date object to string, javascript built-in functions may return wrong
737
- * results because it applies its internal DST rules. The DST rules around the world change
738
- * very frequently, and the current valid rule is not always valid in previous years though.
739
- * We work around this problem building a new Date object which has its internal UTC
740
- * representation with the local date and time.
741
- * @param dtf Intl.DateTimeFormat object, containg the desired string format. It must have
742
- * timeZone set to 'utc' to work fine.
743
- * @param date Date from which we want to get the string representation according to dtf
744
- * @returns A Date object with its UTC representation based on the passed in date info
745
- */
746
- _format(dtf, date) {
747
- const d = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()));
748
- return dtf.format(d);
749
685
  }
686
+ return super.deserialize(value);
687
+ }
688
+ isDateInstance(obj) {
689
+ return obj instanceof Date;
690
+ }
691
+ isValid(date) {
692
+ return !isNaN(date.getTime());
750
693
  }
751
- NativeDateAdapter.decorators = [
752
- { type: Injectable }
753
- ];
754
- NativeDateAdapter.ctorParameters = () => [
755
- { type: String, decorators: [{ type: Optional }, { type: Inject, args: [MAT_DATE_LOCALE,] }] },
756
- { type: Platform }
757
- ];
758
- return NativeDateAdapter;
759
- })();
694
+ invalid() {
695
+ return new Date(NaN);
696
+ }
697
+ /** Creates a date but allows the month and date to overflow. */
698
+ _createDateWithOverflow(year, month, date) {
699
+ const result = new Date(year, month, date);
700
+ // We need to correct for the fact that JS native Date treats years in range [0, 99] as
701
+ // abbreviations for 19xx.
702
+ if (year >= 0 && year < 100) {
703
+ result.setFullYear(this.getYear(result) - 1900);
704
+ }
705
+ return result;
706
+ }
707
+ /**
708
+ * Pads a number to make it two digits.
709
+ * @param n The number to pad.
710
+ * @returns The padded number.
711
+ */
712
+ _2digit(n) {
713
+ return ('00' + n).slice(-2);
714
+ }
715
+ /**
716
+ * Strip out unicode LTR and RTL characters. Edge and IE insert these into formatted dates while
717
+ * other browsers do not. We remove them to make output consistent and because they interfere with
718
+ * date parsing.
719
+ * @param str The string to strip direction characters from.
720
+ * @returns The stripped string.
721
+ */
722
+ _stripDirectionalityCharacters(str) {
723
+ return str.replace(/[\u200e\u200f]/g, '');
724
+ }
725
+ /**
726
+ * When converting Date object to string, javascript built-in functions may return wrong
727
+ * results because it applies its internal DST rules. The DST rules around the world change
728
+ * very frequently, and the current valid rule is not always valid in previous years though.
729
+ * We work around this problem building a new Date object which has its internal UTC
730
+ * representation with the local date and time.
731
+ * @param dtf Intl.DateTimeFormat object, containg the desired string format. It must have
732
+ * timeZone set to 'utc' to work fine.
733
+ * @param date Date from which we want to get the string representation according to dtf
734
+ * @returns A Date object with its UTC representation based on the passed in date info
735
+ */
736
+ _format(dtf, date) {
737
+ const d = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()));
738
+ return dtf.format(d);
739
+ }
740
+ }
741
+ NativeDateAdapter.decorators = [
742
+ { type: Injectable }
743
+ ];
744
+ NativeDateAdapter.ctorParameters = () => [
745
+ { type: String, decorators: [{ type: Optional }, { type: Inject, args: [MAT_DATE_LOCALE,] }] },
746
+ { type: Platform }
747
+ ];
760
748
 
761
749
  /**
762
750
  * @license
@@ -784,31 +772,25 @@ const MAT_NATIVE_DATE_FORMATS = {
784
772
  * Use of this source code is governed by an MIT-style license that can be
785
773
  * found in the LICENSE file at https://angular.io/license
786
774
  */
787
- let NativeDateModule = /** @class */ (() => {
788
- class NativeDateModule {
789
- }
790
- NativeDateModule.decorators = [
791
- { type: NgModule, args: [{
792
- imports: [PlatformModule],
793
- providers: [
794
- { provide: DateAdapter, useClass: NativeDateAdapter },
795
- ],
796
- },] }
797
- ];
798
- return NativeDateModule;
799
- })();
775
+ class NativeDateModule {
776
+ }
777
+ NativeDateModule.decorators = [
778
+ { type: NgModule, args: [{
779
+ imports: [PlatformModule],
780
+ providers: [
781
+ { provide: DateAdapter, useClass: NativeDateAdapter },
782
+ ],
783
+ },] }
784
+ ];
800
785
  const ɵ0$1 = MAT_NATIVE_DATE_FORMATS;
801
- let MatNativeDateModule = /** @class */ (() => {
802
- class MatNativeDateModule {
803
- }
804
- MatNativeDateModule.decorators = [
805
- { type: NgModule, args: [{
806
- imports: [NativeDateModule],
807
- providers: [{ provide: MAT_DATE_FORMATS, useValue: ɵ0$1 }],
808
- },] }
809
- ];
810
- return MatNativeDateModule;
811
- })();
786
+ class MatNativeDateModule {
787
+ }
788
+ MatNativeDateModule.decorators = [
789
+ { type: NgModule, args: [{
790
+ imports: [NativeDateModule],
791
+ providers: [{ provide: MAT_DATE_FORMATS, useValue: ɵ0$1 }],
792
+ },] }
793
+ ];
812
794
 
813
795
  /**
814
796
  * @license
@@ -818,30 +800,24 @@ let MatNativeDateModule = /** @class */ (() => {
818
800
  * found in the LICENSE file at https://angular.io/license
819
801
  */
820
802
  /** Error state matcher that matches when a control is invalid and dirty. */
821
- let ShowOnDirtyErrorStateMatcher = /** @class */ (() => {
822
- class ShowOnDirtyErrorStateMatcher {
823
- isErrorState(control, form) {
824
- return !!(control && control.invalid && (control.dirty || (form && form.submitted)));
825
- }
803
+ class ShowOnDirtyErrorStateMatcher {
804
+ isErrorState(control, form) {
805
+ return !!(control && control.invalid && (control.dirty || (form && form.submitted)));
826
806
  }
827
- ShowOnDirtyErrorStateMatcher.decorators = [
828
- { type: Injectable }
829
- ];
830
- return ShowOnDirtyErrorStateMatcher;
831
- })();
807
+ }
808
+ ShowOnDirtyErrorStateMatcher.decorators = [
809
+ { type: Injectable }
810
+ ];
832
811
  /** Provider that defines how form controls behave with regards to displaying error messages. */
833
- let ErrorStateMatcher = /** @class */ (() => {
834
- class ErrorStateMatcher {
835
- isErrorState(control, form) {
836
- return !!(control && control.invalid && (control.touched || (form && form.submitted)));
837
- }
812
+ class ErrorStateMatcher {
813
+ isErrorState(control, form) {
814
+ return !!(control && control.invalid && (control.touched || (form && form.submitted)));
838
815
  }
839
- ErrorStateMatcher.ɵprov = ɵɵdefineInjectable({ factory: function ErrorStateMatcher_Factory() { return new ErrorStateMatcher(); }, token: ErrorStateMatcher, providedIn: "root" });
840
- ErrorStateMatcher.decorators = [
841
- { type: Injectable, args: [{ providedIn: 'root' },] }
842
- ];
843
- return ErrorStateMatcher;
844
- })();
816
+ }
817
+ ErrorStateMatcher.ɵprov = ɵɵdefineInjectable({ factory: function ErrorStateMatcher_Factory() { return new ErrorStateMatcher(); }, token: ErrorStateMatcher, providedIn: "root" });
818
+ ErrorStateMatcher.decorators = [
819
+ { type: Injectable, args: [{ providedIn: 'root' },] }
820
+ ];
845
821
 
846
822
  /**
847
823
  * @license
@@ -855,17 +831,14 @@ let ErrorStateMatcher = /** @class */ (() => {
855
831
  * Line elements can be extracted with a @ContentChildren(MatLine) query, then
856
832
  * counted by checking the query list's length.
857
833
  */
858
- let MatLine = /** @class */ (() => {
859
- class MatLine {
860
- }
861
- MatLine.decorators = [
862
- { type: Directive, args: [{
863
- selector: '[mat-line], [matLine]',
864
- host: { 'class': 'mat-line' }
865
- },] }
866
- ];
867
- return MatLine;
868
- })();
834
+ class MatLine {
835
+ }
836
+ MatLine.decorators = [
837
+ { type: Directive, args: [{
838
+ selector: '[mat-line], [matLine]',
839
+ host: { 'class': 'mat-line' }
840
+ },] }
841
+ ];
869
842
  /**
870
843
  * Helper that takes a query list of lines and sets the correct class on the host.
871
844
  * @docs-private
@@ -901,18 +874,15 @@ class MatLineSetter {
901
874
  setLines(lines, element);
902
875
  }
903
876
  }
904
- let MatLineModule = /** @class */ (() => {
905
- class MatLineModule {
906
- }
907
- MatLineModule.decorators = [
908
- { type: NgModule, args: [{
909
- imports: [MatCommonModule],
910
- exports: [MatLine, MatCommonModule],
911
- declarations: [MatLine],
912
- },] }
913
- ];
914
- return MatLineModule;
915
- })();
877
+ class MatLineModule {
878
+ }
879
+ MatLineModule.decorators = [
880
+ { type: NgModule, args: [{
881
+ imports: [MatCommonModule],
882
+ exports: [MatLine, MatCommonModule],
883
+ declarations: [MatLine],
884
+ },] }
885
+ ];
916
886
 
917
887
  /**
918
888
  * @license
@@ -1199,116 +1169,113 @@ function distanceToFurthestCorner(x, y, rect) {
1199
1169
  */
1200
1170
  /** Injection token that can be used to specify the global ripple options. */
1201
1171
  const MAT_RIPPLE_GLOBAL_OPTIONS = new InjectionToken('mat-ripple-global-options');
1202
- let MatRipple = /** @class */ (() => {
1203
- class MatRipple {
1204
- constructor(_elementRef, ngZone, platform, globalOptions, _animationMode) {
1205
- this._elementRef = _elementRef;
1206
- this._animationMode = _animationMode;
1207
- /**
1208
- * If set, the radius in pixels of foreground ripples when fully expanded. If unset, the radius
1209
- * will be the distance from the center of the ripple to the furthest corner of the host element's
1210
- * bounding rectangle.
1211
- */
1212
- this.radius = 0;
1213
- this._disabled = false;
1214
- /** Whether ripple directive is initialized and the input bindings are set. */
1215
- this._isInitialized = false;
1216
- this._globalOptions = globalOptions || {};
1217
- this._rippleRenderer = new RippleRenderer(this, ngZone, _elementRef, platform);
1218
- }
1219
- /**
1220
- * Whether click events will not trigger the ripple. Ripples can be still launched manually
1221
- * by using the `launch()` method.
1222
- */
1223
- get disabled() { return this._disabled; }
1224
- set disabled(value) {
1225
- this._disabled = value;
1226
- this._setupTriggerEventsIfEnabled();
1227
- }
1172
+ class MatRipple {
1173
+ constructor(_elementRef, ngZone, platform, globalOptions, _animationMode) {
1174
+ this._elementRef = _elementRef;
1175
+ this._animationMode = _animationMode;
1228
1176
  /**
1229
- * The element that triggers the ripple when click events are received.
1230
- * Defaults to the directive's host element.
1177
+ * If set, the radius in pixels of foreground ripples when fully expanded. If unset, the radius
1178
+ * will be the distance from the center of the ripple to the furthest corner of the host element's
1179
+ * bounding rectangle.
1231
1180
  */
1232
- get trigger() { return this._trigger || this._elementRef.nativeElement; }
1233
- set trigger(trigger) {
1234
- this._trigger = trigger;
1235
- this._setupTriggerEventsIfEnabled();
1236
- }
1237
- ngOnInit() {
1238
- this._isInitialized = true;
1239
- this._setupTriggerEventsIfEnabled();
1240
- }
1241
- ngOnDestroy() {
1242
- this._rippleRenderer._removeTriggerEvents();
1243
- }
1244
- /** Fades out all currently showing ripple elements. */
1245
- fadeOutAll() {
1246
- this._rippleRenderer.fadeOutAll();
1247
- }
1248
- /**
1249
- * Ripple configuration from the directive's input values.
1250
- * @docs-private Implemented as part of RippleTarget
1251
- */
1252
- get rippleConfig() {
1253
- return {
1254
- centered: this.centered,
1255
- radius: this.radius,
1256
- color: this.color,
1257
- animation: Object.assign(Object.assign(Object.assign({}, this._globalOptions.animation), (this._animationMode === 'NoopAnimations' ? { enterDuration: 0, exitDuration: 0 } : {})), this.animation),
1258
- terminateOnPointerUp: this._globalOptions.terminateOnPointerUp,
1259
- };
1260
- }
1261
- /**
1262
- * Whether ripples on pointer-down are disabled or not.
1263
- * @docs-private Implemented as part of RippleTarget
1264
- */
1265
- get rippleDisabled() {
1266
- return this.disabled || !!this._globalOptions.disabled;
1181
+ this.radius = 0;
1182
+ this._disabled = false;
1183
+ /** Whether ripple directive is initialized and the input bindings are set. */
1184
+ this._isInitialized = false;
1185
+ this._globalOptions = globalOptions || {};
1186
+ this._rippleRenderer = new RippleRenderer(this, ngZone, _elementRef, platform);
1187
+ }
1188
+ /**
1189
+ * Whether click events will not trigger the ripple. Ripples can be still launched manually
1190
+ * by using the `launch()` method.
1191
+ */
1192
+ get disabled() { return this._disabled; }
1193
+ set disabled(value) {
1194
+ this._disabled = value;
1195
+ this._setupTriggerEventsIfEnabled();
1196
+ }
1197
+ /**
1198
+ * The element that triggers the ripple when click events are received.
1199
+ * Defaults to the directive's host element.
1200
+ */
1201
+ get trigger() { return this._trigger || this._elementRef.nativeElement; }
1202
+ set trigger(trigger) {
1203
+ this._trigger = trigger;
1204
+ this._setupTriggerEventsIfEnabled();
1205
+ }
1206
+ ngOnInit() {
1207
+ this._isInitialized = true;
1208
+ this._setupTriggerEventsIfEnabled();
1209
+ }
1210
+ ngOnDestroy() {
1211
+ this._rippleRenderer._removeTriggerEvents();
1212
+ }
1213
+ /** Fades out all currently showing ripple elements. */
1214
+ fadeOutAll() {
1215
+ this._rippleRenderer.fadeOutAll();
1216
+ }
1217
+ /**
1218
+ * Ripple configuration from the directive's input values.
1219
+ * @docs-private Implemented as part of RippleTarget
1220
+ */
1221
+ get rippleConfig() {
1222
+ return {
1223
+ centered: this.centered,
1224
+ radius: this.radius,
1225
+ color: this.color,
1226
+ animation: Object.assign(Object.assign(Object.assign({}, this._globalOptions.animation), (this._animationMode === 'NoopAnimations' ? { enterDuration: 0, exitDuration: 0 } : {})), this.animation),
1227
+ terminateOnPointerUp: this._globalOptions.terminateOnPointerUp,
1228
+ };
1229
+ }
1230
+ /**
1231
+ * Whether ripples on pointer-down are disabled or not.
1232
+ * @docs-private Implemented as part of RippleTarget
1233
+ */
1234
+ get rippleDisabled() {
1235
+ return this.disabled || !!this._globalOptions.disabled;
1236
+ }
1237
+ /** Sets up the trigger event listeners if ripples are enabled. */
1238
+ _setupTriggerEventsIfEnabled() {
1239
+ if (!this.disabled && this._isInitialized) {
1240
+ this._rippleRenderer.setupTriggerEvents(this.trigger);
1267
1241
  }
1268
- /** Sets up the trigger event listeners if ripples are enabled. */
1269
- _setupTriggerEventsIfEnabled() {
1270
- if (!this.disabled && this._isInitialized) {
1271
- this._rippleRenderer.setupTriggerEvents(this.trigger);
1272
- }
1242
+ }
1243
+ /** Launches a manual ripple at the specified coordinated or just by the ripple config. */
1244
+ launch(configOrX, y = 0, config) {
1245
+ if (typeof configOrX === 'number') {
1246
+ return this._rippleRenderer.fadeInRipple(configOrX, y, Object.assign(Object.assign({}, this.rippleConfig), config));
1273
1247
  }
1274
- /** Launches a manual ripple at the specified coordinated or just by the ripple config. */
1275
- launch(configOrX, y = 0, config) {
1276
- if (typeof configOrX === 'number') {
1277
- return this._rippleRenderer.fadeInRipple(configOrX, y, Object.assign(Object.assign({}, this.rippleConfig), config));
1278
- }
1279
- else {
1280
- return this._rippleRenderer.fadeInRipple(0, 0, Object.assign(Object.assign({}, this.rippleConfig), configOrX));
1281
- }
1248
+ else {
1249
+ return this._rippleRenderer.fadeInRipple(0, 0, Object.assign(Object.assign({}, this.rippleConfig), configOrX));
1282
1250
  }
1283
1251
  }
1284
- MatRipple.decorators = [
1285
- { type: Directive, args: [{
1286
- selector: '[mat-ripple], [matRipple]',
1287
- exportAs: 'matRipple',
1288
- host: {
1289
- 'class': 'mat-ripple',
1290
- '[class.mat-ripple-unbounded]': 'unbounded'
1291
- }
1292
- },] }
1293
- ];
1294
- MatRipple.ctorParameters = () => [
1295
- { type: ElementRef },
1296
- { type: NgZone },
1297
- { type: Platform },
1298
- { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [MAT_RIPPLE_GLOBAL_OPTIONS,] }] },
1299
- { type: String, decorators: [{ type: Optional }, { type: Inject, args: [ANIMATION_MODULE_TYPE,] }] }
1300
- ];
1301
- MatRipple.propDecorators = {
1302
- color: [{ type: Input, args: ['matRippleColor',] }],
1303
- unbounded: [{ type: Input, args: ['matRippleUnbounded',] }],
1304
- centered: [{ type: Input, args: ['matRippleCentered',] }],
1305
- radius: [{ type: Input, args: ['matRippleRadius',] }],
1306
- animation: [{ type: Input, args: ['matRippleAnimation',] }],
1307
- disabled: [{ type: Input, args: ['matRippleDisabled',] }],
1308
- trigger: [{ type: Input, args: ['matRippleTrigger',] }]
1309
- };
1310
- return MatRipple;
1311
- })();
1252
+ }
1253
+ MatRipple.decorators = [
1254
+ { type: Directive, args: [{
1255
+ selector: '[mat-ripple], [matRipple]',
1256
+ exportAs: 'matRipple',
1257
+ host: {
1258
+ 'class': 'mat-ripple',
1259
+ '[class.mat-ripple-unbounded]': 'unbounded'
1260
+ }
1261
+ },] }
1262
+ ];
1263
+ MatRipple.ctorParameters = () => [
1264
+ { type: ElementRef },
1265
+ { type: NgZone },
1266
+ { type: Platform },
1267
+ { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [MAT_RIPPLE_GLOBAL_OPTIONS,] }] },
1268
+ { type: String, decorators: [{ type: Optional }, { type: Inject, args: [ANIMATION_MODULE_TYPE,] }] }
1269
+ ];
1270
+ MatRipple.propDecorators = {
1271
+ color: [{ type: Input, args: ['matRippleColor',] }],
1272
+ unbounded: [{ type: Input, args: ['matRippleUnbounded',] }],
1273
+ centered: [{ type: Input, args: ['matRippleCentered',] }],
1274
+ radius: [{ type: Input, args: ['matRippleRadius',] }],
1275
+ animation: [{ type: Input, args: ['matRippleAnimation',] }],
1276
+ disabled: [{ type: Input, args: ['matRippleDisabled',] }],
1277
+ trigger: [{ type: Input, args: ['matRippleTrigger',] }]
1278
+ };
1312
1279
 
1313
1280
  /**
1314
1281
  * @license
@@ -1317,18 +1284,15 @@ let MatRipple = /** @class */ (() => {
1317
1284
  * Use of this source code is governed by an MIT-style license that can be
1318
1285
  * found in the LICENSE file at https://angular.io/license
1319
1286
  */
1320
- let MatRippleModule = /** @class */ (() => {
1321
- class MatRippleModule {
1322
- }
1323
- MatRippleModule.decorators = [
1324
- { type: NgModule, args: [{
1325
- imports: [MatCommonModule, PlatformModule],
1326
- exports: [MatRipple, MatCommonModule],
1327
- declarations: [MatRipple],
1328
- },] }
1329
- ];
1330
- return MatRippleModule;
1331
- })();
1287
+ class MatRippleModule {
1288
+ }
1289
+ MatRippleModule.decorators = [
1290
+ { type: NgModule, args: [{
1291
+ imports: [MatCommonModule, PlatformModule],
1292
+ exports: [MatRipple, MatCommonModule],
1293
+ declarations: [MatRipple],
1294
+ },] }
1295
+ ];
1332
1296
 
1333
1297
  /**
1334
1298
  * @license
@@ -1350,41 +1314,38 @@ let MatRippleModule = /** @class */ (() => {
1350
1314
  * of more complex components that appropriately handle selected / checked state.
1351
1315
  * @docs-private
1352
1316
  */
1353
- let MatPseudoCheckbox = /** @class */ (() => {
1354
- class MatPseudoCheckbox {
1355
- constructor(_animationMode) {
1356
- this._animationMode = _animationMode;
1357
- /** Display state of the checkbox. */
1358
- this.state = 'unchecked';
1359
- /** Whether the checkbox is disabled. */
1360
- this.disabled = false;
1361
- }
1317
+ class MatPseudoCheckbox {
1318
+ constructor(_animationMode) {
1319
+ this._animationMode = _animationMode;
1320
+ /** Display state of the checkbox. */
1321
+ this.state = 'unchecked';
1322
+ /** Whether the checkbox is disabled. */
1323
+ this.disabled = false;
1362
1324
  }
1363
- MatPseudoCheckbox.decorators = [
1364
- { type: Component, args: [{
1365
- encapsulation: ViewEncapsulation.None,
1366
- changeDetection: ChangeDetectionStrategy.OnPush,
1367
- selector: 'mat-pseudo-checkbox',
1368
- template: '',
1369
- host: {
1370
- 'class': 'mat-pseudo-checkbox',
1371
- '[class.mat-pseudo-checkbox-indeterminate]': 'state === "indeterminate"',
1372
- '[class.mat-pseudo-checkbox-checked]': 'state === "checked"',
1373
- '[class.mat-pseudo-checkbox-disabled]': 'disabled',
1374
- '[class._mat-animation-noopable]': '_animationMode === "NoopAnimations"',
1375
- },
1376
- styles: [".mat-pseudo-checkbox{width:16px;height:16px;border:2px solid;border-radius:2px;cursor:pointer;display:inline-block;vertical-align:middle;box-sizing:border-box;position:relative;flex-shrink:0;transition:border-color 90ms cubic-bezier(0, 0, 0.2, 0.1),background-color 90ms cubic-bezier(0, 0, 0.2, 0.1)}.mat-pseudo-checkbox::after{position:absolute;opacity:0;content:\"\";border-bottom:2px solid currentColor;transition:opacity 90ms cubic-bezier(0, 0, 0.2, 0.1)}.mat-pseudo-checkbox.mat-pseudo-checkbox-checked,.mat-pseudo-checkbox.mat-pseudo-checkbox-indeterminate{border-color:transparent}._mat-animation-noopable.mat-pseudo-checkbox{transition:none;animation:none}._mat-animation-noopable.mat-pseudo-checkbox::after{transition:none}.mat-pseudo-checkbox-disabled{cursor:default}.mat-pseudo-checkbox-indeterminate::after{top:5px;left:1px;width:10px;opacity:1;border-radius:2px}.mat-pseudo-checkbox-checked::after{top:2.4px;left:1px;width:8px;height:3px;border-left:2px solid currentColor;transform:rotate(-45deg);opacity:1;box-sizing:content-box}\n"]
1377
- },] }
1378
- ];
1379
- MatPseudoCheckbox.ctorParameters = () => [
1380
- { type: String, decorators: [{ type: Optional }, { type: Inject, args: [ANIMATION_MODULE_TYPE,] }] }
1381
- ];
1382
- MatPseudoCheckbox.propDecorators = {
1383
- state: [{ type: Input }],
1384
- disabled: [{ type: Input }]
1385
- };
1386
- return MatPseudoCheckbox;
1387
- })();
1325
+ }
1326
+ MatPseudoCheckbox.decorators = [
1327
+ { type: Component, args: [{
1328
+ encapsulation: ViewEncapsulation.None,
1329
+ changeDetection: ChangeDetectionStrategy.OnPush,
1330
+ selector: 'mat-pseudo-checkbox',
1331
+ template: '',
1332
+ host: {
1333
+ 'class': 'mat-pseudo-checkbox',
1334
+ '[class.mat-pseudo-checkbox-indeterminate]': 'state === "indeterminate"',
1335
+ '[class.mat-pseudo-checkbox-checked]': 'state === "checked"',
1336
+ '[class.mat-pseudo-checkbox-disabled]': 'disabled',
1337
+ '[class._mat-animation-noopable]': '_animationMode === "NoopAnimations"',
1338
+ },
1339
+ styles: [".mat-pseudo-checkbox{width:16px;height:16px;border:2px solid;border-radius:2px;cursor:pointer;display:inline-block;vertical-align:middle;box-sizing:border-box;position:relative;flex-shrink:0;transition:border-color 90ms cubic-bezier(0, 0, 0.2, 0.1),background-color 90ms cubic-bezier(0, 0, 0.2, 0.1)}.mat-pseudo-checkbox::after{position:absolute;opacity:0;content:\"\";border-bottom:2px solid currentColor;transition:opacity 90ms cubic-bezier(0, 0, 0.2, 0.1)}.mat-pseudo-checkbox.mat-pseudo-checkbox-checked,.mat-pseudo-checkbox.mat-pseudo-checkbox-indeterminate{border-color:transparent}._mat-animation-noopable.mat-pseudo-checkbox{transition:none;animation:none}._mat-animation-noopable.mat-pseudo-checkbox::after{transition:none}.mat-pseudo-checkbox-disabled{cursor:default}.mat-pseudo-checkbox-indeterminate::after{top:5px;left:1px;width:10px;opacity:1;border-radius:2px}.mat-pseudo-checkbox-checked::after{top:2.4px;left:1px;width:8px;height:3px;border-left:2px solid currentColor;transform:rotate(-45deg);opacity:1;box-sizing:content-box}\n"]
1340
+ },] }
1341
+ ];
1342
+ MatPseudoCheckbox.ctorParameters = () => [
1343
+ { type: String, decorators: [{ type: Optional }, { type: Inject, args: [ANIMATION_MODULE_TYPE,] }] }
1344
+ ];
1345
+ MatPseudoCheckbox.propDecorators = {
1346
+ state: [{ type: Input }],
1347
+ disabled: [{ type: Input }]
1348
+ };
1388
1349
 
1389
1350
  /**
1390
1351
  * @license
@@ -1393,17 +1354,14 @@ let MatPseudoCheckbox = /** @class */ (() => {
1393
1354
  * Use of this source code is governed by an MIT-style license that can be
1394
1355
  * found in the LICENSE file at https://angular.io/license
1395
1356
  */
1396
- let MatPseudoCheckboxModule = /** @class */ (() => {
1397
- class MatPseudoCheckboxModule {
1398
- }
1399
- MatPseudoCheckboxModule.decorators = [
1400
- { type: NgModule, args: [{
1401
- exports: [MatPseudoCheckbox],
1402
- declarations: [MatPseudoCheckbox]
1403
- },] }
1404
- ];
1405
- return MatPseudoCheckboxModule;
1406
- })();
1357
+ class MatPseudoCheckboxModule {
1358
+ }
1359
+ MatPseudoCheckboxModule.decorators = [
1360
+ { type: NgModule, args: [{
1361
+ exports: [MatPseudoCheckbox],
1362
+ declarations: [MatPseudoCheckbox]
1363
+ },] }
1364
+ ];
1407
1365
 
1408
1366
  /**
1409
1367
  * @license
@@ -1419,40 +1377,44 @@ class MatOptgroupBase {
1419
1377
  const _MatOptgroupMixinBase = mixinDisabled(MatOptgroupBase);
1420
1378
  // Counter for unique group ids.
1421
1379
  let _uniqueOptgroupIdCounter = 0;
1380
+ /**
1381
+ * Injection token that can be used to reference instances of `MatOptgroup`. It serves as
1382
+ * alternative token to the actual `MatOptgroup` class which could cause unnecessary
1383
+ * retention of the class and its component metadata.
1384
+ */
1385
+ const MAT_OPTGROUP = new InjectionToken('MatOptgroup');
1422
1386
  /**
1423
1387
  * Component that is used to group instances of `mat-option`.
1424
1388
  */
1425
- let MatOptgroup = /** @class */ (() => {
1426
- class MatOptgroup extends _MatOptgroupMixinBase {
1427
- constructor() {
1428
- super(...arguments);
1429
- /** Unique id for the underlying label. */
1430
- this._labelId = `mat-optgroup-label-${_uniqueOptgroupIdCounter++}`;
1431
- }
1389
+ class MatOptgroup extends _MatOptgroupMixinBase {
1390
+ constructor() {
1391
+ super(...arguments);
1392
+ /** Unique id for the underlying label. */
1393
+ this._labelId = `mat-optgroup-label-${_uniqueOptgroupIdCounter++}`;
1432
1394
  }
1433
- MatOptgroup.decorators = [
1434
- { type: Component, args: [{
1435
- selector: 'mat-optgroup',
1436
- exportAs: 'matOptgroup',
1437
- template: "<label class=\"mat-optgroup-label\" [id]=\"_labelId\">{{ label }} <ng-content></ng-content></label>\n<ng-content select=\"mat-option, ng-container\"></ng-content>\n",
1438
- encapsulation: ViewEncapsulation.None,
1439
- changeDetection: ChangeDetectionStrategy.OnPush,
1440
- inputs: ['disabled'],
1441
- host: {
1442
- 'class': 'mat-optgroup',
1443
- 'role': 'group',
1444
- '[class.mat-optgroup-disabled]': 'disabled',
1445
- '[attr.aria-disabled]': 'disabled.toString()',
1446
- '[attr.aria-labelledby]': '_labelId',
1447
- },
1448
- styles: [".mat-optgroup-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;line-height:48px;height:48px;padding:0 16px;text-align:left;text-decoration:none;max-width:100%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default}.mat-optgroup-label[disabled]{cursor:default}[dir=rtl] .mat-optgroup-label{text-align:right}.mat-optgroup-label .mat-icon{margin-right:16px;vertical-align:middle}.mat-optgroup-label .mat-icon svg{vertical-align:top}[dir=rtl] .mat-optgroup-label .mat-icon{margin-left:16px;margin-right:0}\n"]
1449
- },] }
1450
- ];
1451
- MatOptgroup.propDecorators = {
1452
- label: [{ type: Input }]
1453
- };
1454
- return MatOptgroup;
1455
- })();
1395
+ }
1396
+ MatOptgroup.decorators = [
1397
+ { type: Component, args: [{
1398
+ selector: 'mat-optgroup',
1399
+ exportAs: 'matOptgroup',
1400
+ template: "<label class=\"mat-optgroup-label\" [id]=\"_labelId\">{{ label }} <ng-content></ng-content></label>\n<ng-content select=\"mat-option, ng-container\"></ng-content>\n",
1401
+ encapsulation: ViewEncapsulation.None,
1402
+ changeDetection: ChangeDetectionStrategy.OnPush,
1403
+ inputs: ['disabled'],
1404
+ host: {
1405
+ 'class': 'mat-optgroup',
1406
+ 'role': 'group',
1407
+ '[class.mat-optgroup-disabled]': 'disabled',
1408
+ '[attr.aria-disabled]': 'disabled.toString()',
1409
+ '[attr.aria-labelledby]': '_labelId',
1410
+ },
1411
+ providers: [{ provide: MAT_OPTGROUP, useExisting: MatOptgroup }],
1412
+ styles: [".mat-optgroup-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;line-height:48px;height:48px;padding:0 16px;text-align:left;text-decoration:none;max-width:100%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default}.mat-optgroup-label[disabled]{cursor:default}[dir=rtl] .mat-optgroup-label{text-align:right}.mat-optgroup-label .mat-icon{margin-right:16px;vertical-align:middle}.mat-optgroup-label .mat-icon svg{vertical-align:top}[dir=rtl] .mat-optgroup-label .mat-icon{margin-left:16px;margin-right:0}\n"]
1413
+ },] }
1414
+ ];
1415
+ MatOptgroup.propDecorators = {
1416
+ label: [{ type: Input }]
1417
+ };
1456
1418
 
1457
1419
  /**
1458
1420
  * @license
@@ -1484,198 +1446,195 @@ const MAT_OPTION_PARENT_COMPONENT = new InjectionToken('MAT_OPTION_PARENT_COMPON
1484
1446
  /**
1485
1447
  * Single option inside of a `<mat-select>` element.
1486
1448
  */
1487
- let MatOption = /** @class */ (() => {
1488
- class MatOption {
1489
- constructor(_element, _changeDetectorRef, _parent, group) {
1490
- this._element = _element;
1491
- this._changeDetectorRef = _changeDetectorRef;
1492
- this._parent = _parent;
1493
- this.group = group;
1494
- this._selected = false;
1495
- this._active = false;
1496
- this._disabled = false;
1497
- this._mostRecentViewValue = '';
1498
- /** The unique ID of the option. */
1499
- this.id = `mat-option-${_uniqueIdCounter++}`;
1500
- /** Event emitted when the option is selected or deselected. */
1501
- // tslint:disable-next-line:no-output-on-prefix
1502
- this.onSelectionChange = new EventEmitter();
1503
- /** Emits when the state of the option changes and any parents have to be notified. */
1504
- this._stateChanges = new Subject();
1505
- }
1506
- /** Whether the wrapping component is in multiple selection mode. */
1507
- get multiple() { return this._parent && this._parent.multiple; }
1508
- /** Whether or not the option is currently selected. */
1509
- get selected() { return this._selected; }
1510
- /** Whether the option is disabled. */
1511
- get disabled() { return (this.group && this.group.disabled) || this._disabled; }
1512
- set disabled(value) { this._disabled = coerceBooleanProperty(value); }
1513
- /** Whether ripples for the option are disabled. */
1514
- get disableRipple() { return this._parent && this._parent.disableRipple; }
1515
- /**
1516
- * Whether or not the option is currently active and ready to be selected.
1517
- * An active option displays styles as if it is focused, but the
1518
- * focus is actually retained somewhere else. This comes in handy
1519
- * for components like autocomplete where focus must remain on the input.
1520
- */
1521
- get active() {
1522
- return this._active;
1523
- }
1524
- /**
1525
- * The displayed value of the option. It is necessary to show the selected option in the
1526
- * select's trigger.
1527
- */
1528
- get viewValue() {
1529
- // TODO(kara): Add input property alternative for node envs.
1530
- return (this._getHostElement().textContent || '').trim();
1531
- }
1532
- /** Selects the option. */
1533
- select() {
1534
- if (!this._selected) {
1535
- this._selected = true;
1536
- this._changeDetectorRef.markForCheck();
1537
- this._emitSelectionChangeEvent();
1538
- }
1539
- }
1540
- /** Deselects the option. */
1541
- deselect() {
1542
- if (this._selected) {
1543
- this._selected = false;
1544
- this._changeDetectorRef.markForCheck();
1545
- this._emitSelectionChangeEvent();
1546
- }
1547
- }
1548
- /** Sets focus onto this option. */
1549
- focus(_origin, options) {
1550
- // Note that we aren't using `_origin`, but we need to keep it because some internal consumers
1551
- // use `MatOption` in a `FocusKeyManager` and we need it to match `FocusableOption`.
1552
- const element = this._getHostElement();
1553
- if (typeof element.focus === 'function') {
1554
- element.focus(options);
1555
- }
1556
- }
1557
- /**
1558
- * This method sets display styles on the option to make it appear
1559
- * active. This is used by the ActiveDescendantKeyManager so key
1560
- * events will display the proper options as active on arrow key events.
1561
- */
1562
- setActiveStyles() {
1563
- if (!this._active) {
1564
- this._active = true;
1565
- this._changeDetectorRef.markForCheck();
1566
- }
1567
- }
1568
- /**
1569
- * This method removes display styles on the option that made it appear
1570
- * active. This is used by the ActiveDescendantKeyManager so key
1571
- * events will display the proper options as active on arrow key events.
1572
- */
1573
- setInactiveStyles() {
1574
- if (this._active) {
1575
- this._active = false;
1576
- this._changeDetectorRef.markForCheck();
1577
- }
1449
+ class MatOption {
1450
+ constructor(_element, _changeDetectorRef, _parent, group) {
1451
+ this._element = _element;
1452
+ this._changeDetectorRef = _changeDetectorRef;
1453
+ this._parent = _parent;
1454
+ this.group = group;
1455
+ this._selected = false;
1456
+ this._active = false;
1457
+ this._disabled = false;
1458
+ this._mostRecentViewValue = '';
1459
+ /** The unique ID of the option. */
1460
+ this.id = `mat-option-${_uniqueIdCounter++}`;
1461
+ /** Event emitted when the option is selected or deselected. */
1462
+ // tslint:disable-next-line:no-output-on-prefix
1463
+ this.onSelectionChange = new EventEmitter();
1464
+ /** Emits when the state of the option changes and any parents have to be notified. */
1465
+ this._stateChanges = new Subject();
1466
+ }
1467
+ /** Whether the wrapping component is in multiple selection mode. */
1468
+ get multiple() { return this._parent && this._parent.multiple; }
1469
+ /** Whether or not the option is currently selected. */
1470
+ get selected() { return this._selected; }
1471
+ /** Whether the option is disabled. */
1472
+ get disabled() { return (this.group && this.group.disabled) || this._disabled; }
1473
+ set disabled(value) { this._disabled = coerceBooleanProperty(value); }
1474
+ /** Whether ripples for the option are disabled. */
1475
+ get disableRipple() { return this._parent && this._parent.disableRipple; }
1476
+ /**
1477
+ * Whether or not the option is currently active and ready to be selected.
1478
+ * An active option displays styles as if it is focused, but the
1479
+ * focus is actually retained somewhere else. This comes in handy
1480
+ * for components like autocomplete where focus must remain on the input.
1481
+ */
1482
+ get active() {
1483
+ return this._active;
1484
+ }
1485
+ /**
1486
+ * The displayed value of the option. It is necessary to show the selected option in the
1487
+ * select's trigger.
1488
+ */
1489
+ get viewValue() {
1490
+ // TODO(kara): Add input property alternative for node envs.
1491
+ return (this._getHostElement().textContent || '').trim();
1492
+ }
1493
+ /** Selects the option. */
1494
+ select() {
1495
+ if (!this._selected) {
1496
+ this._selected = true;
1497
+ this._changeDetectorRef.markForCheck();
1498
+ this._emitSelectionChangeEvent();
1578
1499
  }
1579
- /** Gets the label to be used when determining whether the option should be focused. */
1580
- getLabel() {
1581
- return this.viewValue;
1500
+ }
1501
+ /** Deselects the option. */
1502
+ deselect() {
1503
+ if (this._selected) {
1504
+ this._selected = false;
1505
+ this._changeDetectorRef.markForCheck();
1506
+ this._emitSelectionChangeEvent();
1582
1507
  }
1583
- /** Ensures the option is selected when activated from the keyboard. */
1584
- _handleKeydown(event) {
1585
- if ((event.keyCode === ENTER || event.keyCode === SPACE) && !hasModifierKey(event)) {
1586
- this._selectViaInteraction();
1587
- // Prevent the page from scrolling down and form submits.
1588
- event.preventDefault();
1589
- }
1508
+ }
1509
+ /** Sets focus onto this option. */
1510
+ focus(_origin, options) {
1511
+ // Note that we aren't using `_origin`, but we need to keep it because some internal consumers
1512
+ // use `MatOption` in a `FocusKeyManager` and we need it to match `FocusableOption`.
1513
+ const element = this._getHostElement();
1514
+ if (typeof element.focus === 'function') {
1515
+ element.focus(options);
1590
1516
  }
1591
- /**
1592
- * `Selects the option while indicating the selection came from the user. Used to
1593
- * determine if the select's view -> model callback should be invoked.`
1594
- */
1595
- _selectViaInteraction() {
1596
- if (!this.disabled) {
1597
- this._selected = this.multiple ? !this._selected : true;
1598
- this._changeDetectorRef.markForCheck();
1599
- this._emitSelectionChangeEvent(true);
1600
- }
1517
+ }
1518
+ /**
1519
+ * This method sets display styles on the option to make it appear
1520
+ * active. This is used by the ActiveDescendantKeyManager so key
1521
+ * events will display the proper options as active on arrow key events.
1522
+ */
1523
+ setActiveStyles() {
1524
+ if (!this._active) {
1525
+ this._active = true;
1526
+ this._changeDetectorRef.markForCheck();
1601
1527
  }
1602
- /**
1603
- * Gets the `aria-selected` value for the option. We explicitly omit the `aria-selected`
1604
- * attribute from single-selection, unselected options. Including the `aria-selected="false"`
1605
- * attributes adds a significant amount of noise to screen-reader users without providing useful
1606
- * information.
1607
- */
1608
- _getAriaSelected() {
1609
- return this.selected || (this.multiple ? false : null);
1528
+ }
1529
+ /**
1530
+ * This method removes display styles on the option that made it appear
1531
+ * active. This is used by the ActiveDescendantKeyManager so key
1532
+ * events will display the proper options as active on arrow key events.
1533
+ */
1534
+ setInactiveStyles() {
1535
+ if (this._active) {
1536
+ this._active = false;
1537
+ this._changeDetectorRef.markForCheck();
1610
1538
  }
1611
- /** Returns the correct tabindex for the option depending on disabled state. */
1612
- _getTabIndex() {
1613
- return this.disabled ? '-1' : '0';
1539
+ }
1540
+ /** Gets the label to be used when determining whether the option should be focused. */
1541
+ getLabel() {
1542
+ return this.viewValue;
1543
+ }
1544
+ /** Ensures the option is selected when activated from the keyboard. */
1545
+ _handleKeydown(event) {
1546
+ if ((event.keyCode === ENTER || event.keyCode === SPACE) && !hasModifierKey(event)) {
1547
+ this._selectViaInteraction();
1548
+ // Prevent the page from scrolling down and form submits.
1549
+ event.preventDefault();
1614
1550
  }
1615
- /** Gets the host DOM element. */
1616
- _getHostElement() {
1617
- return this._element.nativeElement;
1551
+ }
1552
+ /**
1553
+ * `Selects the option while indicating the selection came from the user. Used to
1554
+ * determine if the select's view -> model callback should be invoked.`
1555
+ */
1556
+ _selectViaInteraction() {
1557
+ if (!this.disabled) {
1558
+ this._selected = this.multiple ? !this._selected : true;
1559
+ this._changeDetectorRef.markForCheck();
1560
+ this._emitSelectionChangeEvent(true);
1618
1561
  }
1619
- ngAfterViewChecked() {
1620
- // Since parent components could be using the option's label to display the selected values
1621
- // (e.g. `mat-select`) and they don't have a way of knowing if the option's label has changed
1622
- // we have to check for changes in the DOM ourselves and dispatch an event. These checks are
1623
- // relatively cheap, however we still limit them only to selected options in order to avoid
1624
- // hitting the DOM too often.
1625
- if (this._selected) {
1626
- const viewValue = this.viewValue;
1627
- if (viewValue !== this._mostRecentViewValue) {
1628
- this._mostRecentViewValue = viewValue;
1629
- this._stateChanges.next();
1630
- }
1562
+ }
1563
+ /**
1564
+ * Gets the `aria-selected` value for the option. We explicitly omit the `aria-selected`
1565
+ * attribute from single-selection, unselected options. Including the `aria-selected="false"`
1566
+ * attributes adds a significant amount of noise to screen-reader users without providing useful
1567
+ * information.
1568
+ */
1569
+ _getAriaSelected() {
1570
+ return this.selected || (this.multiple ? false : null);
1571
+ }
1572
+ /** Returns the correct tabindex for the option depending on disabled state. */
1573
+ _getTabIndex() {
1574
+ return this.disabled ? '-1' : '0';
1575
+ }
1576
+ /** Gets the host DOM element. */
1577
+ _getHostElement() {
1578
+ return this._element.nativeElement;
1579
+ }
1580
+ ngAfterViewChecked() {
1581
+ // Since parent components could be using the option's label to display the selected values
1582
+ // (e.g. `mat-select`) and they don't have a way of knowing if the option's label has changed
1583
+ // we have to check for changes in the DOM ourselves and dispatch an event. These checks are
1584
+ // relatively cheap, however we still limit them only to selected options in order to avoid
1585
+ // hitting the DOM too often.
1586
+ if (this._selected) {
1587
+ const viewValue = this.viewValue;
1588
+ if (viewValue !== this._mostRecentViewValue) {
1589
+ this._mostRecentViewValue = viewValue;
1590
+ this._stateChanges.next();
1631
1591
  }
1632
1592
  }
1633
- ngOnDestroy() {
1634
- this._stateChanges.complete();
1635
- }
1636
- /** Emits the selection change event. */
1637
- _emitSelectionChangeEvent(isUserInput = false) {
1638
- this.onSelectionChange.emit(new MatOptionSelectionChange(this, isUserInput));
1639
- }
1640
1593
  }
1641
- MatOption.decorators = [
1642
- { type: Component, args: [{
1643
- selector: 'mat-option',
1644
- exportAs: 'matOption',
1645
- host: {
1646
- 'role': 'option',
1647
- '[attr.tabindex]': '_getTabIndex()',
1648
- '[class.mat-selected]': 'selected',
1649
- '[class.mat-option-multiple]': 'multiple',
1650
- '[class.mat-active]': 'active',
1651
- '[id]': 'id',
1652
- '[attr.aria-selected]': '_getAriaSelected()',
1653
- '[attr.aria-disabled]': 'disabled.toString()',
1654
- '[class.mat-option-disabled]': 'disabled',
1655
- '(click)': '_selectViaInteraction()',
1656
- '(keydown)': '_handleKeydown($event)',
1657
- 'class': 'mat-option mat-focus-indicator',
1658
- },
1659
- template: "<mat-pseudo-checkbox *ngIf=\"multiple\" class=\"mat-option-pseudo-checkbox\"\n [state]=\"selected ? 'checked' : 'unchecked'\" [disabled]=\"disabled\"></mat-pseudo-checkbox>\n\n<span class=\"mat-option-text\"><ng-content></ng-content></span>\n\n<div class=\"mat-option-ripple\" mat-ripple\n [matRippleTrigger]=\"_getHostElement()\"\n [matRippleDisabled]=\"disabled || disableRipple\">\n</div>\n",
1660
- encapsulation: ViewEncapsulation.None,
1661
- changeDetection: ChangeDetectionStrategy.OnPush,
1662
- styles: [".mat-option{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;line-height:48px;height:48px;padding:0 16px;text-align:left;text-decoration:none;max-width:100%;position:relative;cursor:pointer;outline:none;display:flex;flex-direction:row;max-width:100%;box-sizing:border-box;align-items:center;-webkit-tap-highlight-color:transparent}.mat-option[disabled]{cursor:default}[dir=rtl] .mat-option{text-align:right}.mat-option .mat-icon{margin-right:16px;vertical-align:middle}.mat-option .mat-icon svg{vertical-align:top}[dir=rtl] .mat-option .mat-icon{margin-left:16px;margin-right:0}.mat-option[aria-disabled=true]{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default}.mat-optgroup .mat-option:not(.mat-option-multiple){padding-left:32px}[dir=rtl] .mat-optgroup .mat-option:not(.mat-option-multiple){padding-left:16px;padding-right:32px}.cdk-high-contrast-active .mat-option{margin:0 1px}.cdk-high-contrast-active .mat-option.mat-active{border:solid 1px currentColor;margin:0}.mat-option-text{display:inline-block;flex-grow:1;overflow:hidden;text-overflow:ellipsis}.mat-option .mat-option-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.cdk-high-contrast-active .mat-option .mat-option-ripple{opacity:.5}.mat-option-pseudo-checkbox{margin-right:8px}[dir=rtl] .mat-option-pseudo-checkbox{margin-left:8px;margin-right:0}\n"]
1663
- },] }
1664
- ];
1665
- MatOption.ctorParameters = () => [
1666
- { type: ElementRef },
1667
- { type: ChangeDetectorRef },
1668
- { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [MAT_OPTION_PARENT_COMPONENT,] }] },
1669
- { type: MatOptgroup, decorators: [{ type: Optional }] }
1670
- ];
1671
- MatOption.propDecorators = {
1672
- value: [{ type: Input }],
1673
- id: [{ type: Input }],
1674
- disabled: [{ type: Input }],
1675
- onSelectionChange: [{ type: Output }]
1676
- };
1677
- return MatOption;
1678
- })();
1594
+ ngOnDestroy() {
1595
+ this._stateChanges.complete();
1596
+ }
1597
+ /** Emits the selection change event. */
1598
+ _emitSelectionChangeEvent(isUserInput = false) {
1599
+ this.onSelectionChange.emit(new MatOptionSelectionChange(this, isUserInput));
1600
+ }
1601
+ }
1602
+ MatOption.decorators = [
1603
+ { type: Component, args: [{
1604
+ selector: 'mat-option',
1605
+ exportAs: 'matOption',
1606
+ host: {
1607
+ 'role': 'option',
1608
+ '[attr.tabindex]': '_getTabIndex()',
1609
+ '[class.mat-selected]': 'selected',
1610
+ '[class.mat-option-multiple]': 'multiple',
1611
+ '[class.mat-active]': 'active',
1612
+ '[id]': 'id',
1613
+ '[attr.aria-selected]': '_getAriaSelected()',
1614
+ '[attr.aria-disabled]': 'disabled.toString()',
1615
+ '[class.mat-option-disabled]': 'disabled',
1616
+ '(click)': '_selectViaInteraction()',
1617
+ '(keydown)': '_handleKeydown($event)',
1618
+ 'class': 'mat-option mat-focus-indicator',
1619
+ },
1620
+ template: "<mat-pseudo-checkbox *ngIf=\"multiple\" class=\"mat-option-pseudo-checkbox\"\n [state]=\"selected ? 'checked' : 'unchecked'\" [disabled]=\"disabled\"></mat-pseudo-checkbox>\n\n<span class=\"mat-option-text\"><ng-content></ng-content></span>\n\n<div class=\"mat-option-ripple\" mat-ripple\n [matRippleTrigger]=\"_getHostElement()\"\n [matRippleDisabled]=\"disabled || disableRipple\">\n</div>\n",
1621
+ encapsulation: ViewEncapsulation.None,
1622
+ changeDetection: ChangeDetectionStrategy.OnPush,
1623
+ styles: [".mat-option{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;line-height:48px;height:48px;padding:0 16px;text-align:left;text-decoration:none;max-width:100%;position:relative;cursor:pointer;outline:none;display:flex;flex-direction:row;max-width:100%;box-sizing:border-box;align-items:center;-webkit-tap-highlight-color:transparent}.mat-option[disabled]{cursor:default}[dir=rtl] .mat-option{text-align:right}.mat-option .mat-icon{margin-right:16px;vertical-align:middle}.mat-option .mat-icon svg{vertical-align:top}[dir=rtl] .mat-option .mat-icon{margin-left:16px;margin-right:0}.mat-option[aria-disabled=true]{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default}.mat-optgroup .mat-option:not(.mat-option-multiple){padding-left:32px}[dir=rtl] .mat-optgroup .mat-option:not(.mat-option-multiple){padding-left:16px;padding-right:32px}.cdk-high-contrast-active .mat-option{margin:0 1px}.cdk-high-contrast-active .mat-option.mat-active{border:solid 1px currentColor;margin:0}.mat-option-text{display:inline-block;flex-grow:1;overflow:hidden;text-overflow:ellipsis}.mat-option .mat-option-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.cdk-high-contrast-active .mat-option .mat-option-ripple{opacity:.5}.mat-option-pseudo-checkbox{margin-right:8px}[dir=rtl] .mat-option-pseudo-checkbox{margin-left:8px;margin-right:0}\n"]
1624
+ },] }
1625
+ ];
1626
+ MatOption.ctorParameters = () => [
1627
+ { type: ElementRef },
1628
+ { type: ChangeDetectorRef },
1629
+ { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [MAT_OPTION_PARENT_COMPONENT,] }] },
1630
+ { type: MatOptgroup, decorators: [{ type: Optional }, { type: Inject, args: [MAT_OPTGROUP,] }] }
1631
+ ];
1632
+ MatOption.propDecorators = {
1633
+ value: [{ type: Input }],
1634
+ id: [{ type: Input }],
1635
+ disabled: [{ type: Input }],
1636
+ onSelectionChange: [{ type: Output }]
1637
+ };
1679
1638
  /**
1680
1639
  * Counts the amount of option group labels that precede the specified option.
1681
1640
  * @param optionIndex Index of the option at which to start counting.
@@ -1723,18 +1682,15 @@ function _getOptionScrollPosition(optionIndex, optionHeight, currentScrollPositi
1723
1682
  * Use of this source code is governed by an MIT-style license that can be
1724
1683
  * found in the LICENSE file at https://angular.io/license
1725
1684
  */
1726
- let MatOptionModule = /** @class */ (() => {
1727
- class MatOptionModule {
1728
- }
1729
- MatOptionModule.decorators = [
1730
- { type: NgModule, args: [{
1731
- imports: [MatRippleModule, CommonModule, MatPseudoCheckboxModule],
1732
- exports: [MatOption, MatOptgroup],
1733
- declarations: [MatOption, MatOptgroup]
1734
- },] }
1735
- ];
1736
- return MatOptionModule;
1737
- })();
1685
+ class MatOptionModule {
1686
+ }
1687
+ MatOptionModule.decorators = [
1688
+ { type: NgModule, args: [{
1689
+ imports: [MatRippleModule, CommonModule, MatPseudoCheckboxModule],
1690
+ exports: [MatOption, MatOptgroup],
1691
+ declarations: [MatOption, MatOptgroup]
1692
+ },] }
1693
+ ];
1738
1694
 
1739
1695
  /**
1740
1696
  * @license
@@ -1778,5 +1734,5 @@ const JAN = 0, FEB = 1, MAR = 2, APR = 3, MAY = 4, JUN = 5, JUL = 6, AUG = 7, SE
1778
1734
  * Generated bundle index. Do not edit.
1779
1735
  */
1780
1736
 
1781
- export { APR, AUG, AnimationCurves, AnimationDurations, DEC, DateAdapter, ErrorStateMatcher, FEB, JAN, JUL, JUN, MAR, MATERIAL_SANITY_CHECKS, MAT_DATE_FORMATS, MAT_DATE_LOCALE, MAT_DATE_LOCALE_FACTORY, MAT_DATE_LOCALE_PROVIDER, MAT_LABEL_GLOBAL_OPTIONS, MAT_NATIVE_DATE_FORMATS, MAT_OPTION_PARENT_COMPONENT, MAT_RIPPLE_GLOBAL_OPTIONS, MAY, MatCommonModule, MatLine, MatLineModule, MatLineSetter, MatNativeDateModule, MatOptgroup, MatOption, MatOptionModule, MatOptionSelectionChange, MatPseudoCheckbox, MatPseudoCheckboxModule, MatRipple, MatRippleModule, NOV, NativeDateAdapter, NativeDateModule, OCT, RippleRef, RippleRenderer, SEP, ShowOnDirtyErrorStateMatcher, VERSION, _countGroupLabelsBeforeOption, _getOptionScrollPosition, defaultRippleAnimationConfig, mixinColor, mixinDisableRipple, mixinDisabled, mixinErrorState, mixinInitialized, mixinTabIndex, setLines, ɵ0$1 as ɵ0, MATERIAL_SANITY_CHECKS_FACTORY as ɵangular_material_src_material_core_core_a };
1737
+ export { APR, AUG, AnimationCurves, AnimationDurations, DEC, DateAdapter, ErrorStateMatcher, FEB, JAN, JUL, JUN, MAR, MATERIAL_SANITY_CHECKS, MAT_DATE_FORMATS, MAT_DATE_LOCALE, MAT_DATE_LOCALE_FACTORY, MAT_DATE_LOCALE_PROVIDER, MAT_LABEL_GLOBAL_OPTIONS, MAT_NATIVE_DATE_FORMATS, MAT_OPTGROUP, MAT_OPTION_PARENT_COMPONENT, MAT_RIPPLE_GLOBAL_OPTIONS, MAY, MatCommonModule, MatLine, MatLineModule, MatLineSetter, MatNativeDateModule, MatOptgroup, MatOption, MatOptionModule, MatOptionSelectionChange, MatPseudoCheckbox, MatPseudoCheckboxModule, MatRipple, MatRippleModule, NOV, NativeDateAdapter, NativeDateModule, OCT, RippleRef, RippleRenderer, SEP, ShowOnDirtyErrorStateMatcher, VERSION, _countGroupLabelsBeforeOption, _getOptionScrollPosition, defaultRippleAnimationConfig, mixinColor, mixinDisableRipple, mixinDisabled, mixinErrorState, mixinInitialized, mixinTabIndex, setLines, ɵ0$1 as ɵ0, MATERIAL_SANITY_CHECKS_FACTORY as ɵangular_material_src_material_core_core_a };
1782
1738
  //# sourceMappingURL=core.js.map