@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/sort.js CHANGED
@@ -2,6 +2,7 @@ import { EventEmitter, isDevMode, Directive, Input, Output, ɵɵdefineInjectable
2
2
  import { coerceBooleanProperty } from '@angular/cdk/coercion';
3
3
  import { mixinInitialized, mixinDisabled, AnimationDurations, AnimationCurves } from '@angular/material/core';
4
4
  import { FocusMonitor } from '@angular/cdk/a11y';
5
+ import { SPACE, ENTER } from '@angular/cdk/keycodes';
5
6
  import { Subject, merge } from 'rxjs';
6
7
  import { trigger, state, style, transition, animate, keyframes, query, animateChild } from '@angular/animations';
7
8
  import { CommonModule } from '@angular/common';
@@ -43,110 +44,107 @@ class MatSortBase {
43
44
  }
44
45
  const _MatSortMixinBase = mixinInitialized(mixinDisabled(MatSortBase));
45
46
  /** Container for MatSortables to manage the sort state and provide default sort parameters. */
46
- let MatSort = /** @class */ (() => {
47
- class MatSort extends _MatSortMixinBase {
48
- constructor() {
49
- super(...arguments);
50
- /** Collection of all registered sortables that this directive manages. */
51
- this.sortables = new Map();
52
- /** Used to notify any child components listening to state changes. */
53
- this._stateChanges = new Subject();
54
- /**
55
- * The direction to set when an MatSortable is initially sorted.
56
- * May be overriden by the MatSortable's sort start.
57
- */
58
- this.start = 'asc';
59
- this._direction = '';
60
- /** Event emitted when the user changes either the active sort or sort direction. */
61
- this.sortChange = new EventEmitter();
62
- }
63
- /** The sort direction of the currently active MatSortable. */
64
- get direction() { return this._direction; }
65
- set direction(direction) {
66
- if (isDevMode() && direction && direction !== 'asc' && direction !== 'desc') {
67
- throw getSortInvalidDirectionError(direction);
68
- }
69
- this._direction = direction;
70
- }
47
+ class MatSort extends _MatSortMixinBase {
48
+ constructor() {
49
+ super(...arguments);
50
+ /** Collection of all registered sortables that this directive manages. */
51
+ this.sortables = new Map();
52
+ /** Used to notify any child components listening to state changes. */
53
+ this._stateChanges = new Subject();
71
54
  /**
72
- * Whether to disable the user from clearing the sort by finishing the sort direction cycle.
73
- * May be overriden by the MatSortable's disable clear input.
55
+ * The direction to set when an MatSortable is initially sorted.
56
+ * May be overriden by the MatSortable's sort start.
74
57
  */
75
- get disableClear() { return this._disableClear; }
76
- set disableClear(v) { this._disableClear = coerceBooleanProperty(v); }
77
- /**
78
- * Register function to be used by the contained MatSortables. Adds the MatSortable to the
79
- * collection of MatSortables.
80
- */
81
- register(sortable) {
82
- if (!sortable.id) {
83
- throw getSortHeaderMissingIdError();
84
- }
85
- if (this.sortables.has(sortable.id)) {
86
- throw getSortDuplicateSortableIdError(sortable.id);
87
- }
88
- this.sortables.set(sortable.id, sortable);
58
+ this.start = 'asc';
59
+ this._direction = '';
60
+ /** Event emitted when the user changes either the active sort or sort direction. */
61
+ this.sortChange = new EventEmitter();
62
+ }
63
+ /** The sort direction of the currently active MatSortable. */
64
+ get direction() { return this._direction; }
65
+ set direction(direction) {
66
+ if (isDevMode() && direction && direction !== 'asc' && direction !== 'desc') {
67
+ throw getSortInvalidDirectionError(direction);
89
68
  }
90
- /**
91
- * Unregister function to be used by the contained MatSortables. Removes the MatSortable from the
92
- * collection of contained MatSortables.
93
- */
94
- deregister(sortable) {
95
- this.sortables.delete(sortable.id);
69
+ this._direction = direction;
70
+ }
71
+ /**
72
+ * Whether to disable the user from clearing the sort by finishing the sort direction cycle.
73
+ * May be overriden by the MatSortable's disable clear input.
74
+ */
75
+ get disableClear() { return this._disableClear; }
76
+ set disableClear(v) { this._disableClear = coerceBooleanProperty(v); }
77
+ /**
78
+ * Register function to be used by the contained MatSortables. Adds the MatSortable to the
79
+ * collection of MatSortables.
80
+ */
81
+ register(sortable) {
82
+ if (!sortable.id) {
83
+ throw getSortHeaderMissingIdError();
96
84
  }
97
- /** Sets the active sort id and determines the new sort direction. */
98
- sort(sortable) {
99
- if (this.active != sortable.id) {
100
- this.active = sortable.id;
101
- this.direction = sortable.start ? sortable.start : this.start;
102
- }
103
- else {
104
- this.direction = this.getNextSortDirection(sortable);
105
- }
106
- this.sortChange.emit({ active: this.active, direction: this.direction });
85
+ if (this.sortables.has(sortable.id)) {
86
+ throw getSortDuplicateSortableIdError(sortable.id);
107
87
  }
108
- /** Returns the next sort direction of the active sortable, checking for potential overrides. */
109
- getNextSortDirection(sortable) {
110
- if (!sortable) {
111
- return '';
112
- }
113
- // Get the sort direction cycle with the potential sortable overrides.
114
- const disableClear = sortable.disableClear != null ? sortable.disableClear : this.disableClear;
115
- let sortDirectionCycle = getSortDirectionCycle(sortable.start || this.start, disableClear);
116
- // Get and return the next direction in the cycle
117
- let nextDirectionIndex = sortDirectionCycle.indexOf(this.direction) + 1;
118
- if (nextDirectionIndex >= sortDirectionCycle.length) {
119
- nextDirectionIndex = 0;
120
- }
121
- return sortDirectionCycle[nextDirectionIndex];
88
+ this.sortables.set(sortable.id, sortable);
89
+ }
90
+ /**
91
+ * Unregister function to be used by the contained MatSortables. Removes the MatSortable from the
92
+ * collection of contained MatSortables.
93
+ */
94
+ deregister(sortable) {
95
+ this.sortables.delete(sortable.id);
96
+ }
97
+ /** Sets the active sort id and determines the new sort direction. */
98
+ sort(sortable) {
99
+ if (this.active != sortable.id) {
100
+ this.active = sortable.id;
101
+ this.direction = sortable.start ? sortable.start : this.start;
122
102
  }
123
- ngOnInit() {
124
- this._markInitialized();
103
+ else {
104
+ this.direction = this.getNextSortDirection(sortable);
125
105
  }
126
- ngOnChanges() {
127
- this._stateChanges.next();
106
+ this.sortChange.emit({ active: this.active, direction: this.direction });
107
+ }
108
+ /** Returns the next sort direction of the active sortable, checking for potential overrides. */
109
+ getNextSortDirection(sortable) {
110
+ if (!sortable) {
111
+ return '';
128
112
  }
129
- ngOnDestroy() {
130
- this._stateChanges.complete();
113
+ // Get the sort direction cycle with the potential sortable overrides.
114
+ const disableClear = sortable.disableClear != null ? sortable.disableClear : this.disableClear;
115
+ let sortDirectionCycle = getSortDirectionCycle(sortable.start || this.start, disableClear);
116
+ // Get and return the next direction in the cycle
117
+ let nextDirectionIndex = sortDirectionCycle.indexOf(this.direction) + 1;
118
+ if (nextDirectionIndex >= sortDirectionCycle.length) {
119
+ nextDirectionIndex = 0;
131
120
  }
121
+ return sortDirectionCycle[nextDirectionIndex];
122
+ }
123
+ ngOnInit() {
124
+ this._markInitialized();
125
+ }
126
+ ngOnChanges() {
127
+ this._stateChanges.next();
128
+ }
129
+ ngOnDestroy() {
130
+ this._stateChanges.complete();
132
131
  }
133
- MatSort.decorators = [
134
- { type: Directive, args: [{
135
- selector: '[matSort]',
136
- exportAs: 'matSort',
137
- host: { 'class': 'mat-sort' },
138
- inputs: ['disabled: matSortDisabled']
139
- },] }
140
- ];
141
- MatSort.propDecorators = {
142
- active: [{ type: Input, args: ['matSortActive',] }],
143
- start: [{ type: Input, args: ['matSortStart',] }],
144
- direction: [{ type: Input, args: ['matSortDirection',] }],
145
- disableClear: [{ type: Input, args: ['matSortDisableClear',] }],
146
- sortChange: [{ type: Output, args: ['matSortChange',] }]
147
- };
148
- return MatSort;
149
- })();
132
+ }
133
+ MatSort.decorators = [
134
+ { type: Directive, args: [{
135
+ selector: '[matSort]',
136
+ exportAs: 'matSort',
137
+ host: { 'class': 'mat-sort' },
138
+ inputs: ['disabled: matSortDisabled']
139
+ },] }
140
+ ];
141
+ MatSort.propDecorators = {
142
+ active: [{ type: Input, args: ['matSortActive',] }],
143
+ start: [{ type: Input, args: ['matSortStart',] }],
144
+ direction: [{ type: Input, args: ['matSortDirection',] }],
145
+ disableClear: [{ type: Input, args: ['matSortDisableClear',] }],
146
+ sortChange: [{ type: Output, args: ['matSortChange',] }]
147
+ };
150
148
  /** Returns the sort direction cycle to use given the provided parameters of order and clear. */
151
149
  function getSortDirectionCycle(start, disableClear) {
152
150
  let sortOrder = ['asc', 'desc'];
@@ -252,26 +250,27 @@ const matSortAnimations = {
252
250
  * To modify the labels and text displayed, create a new instance of MatSortHeaderIntl and
253
251
  * include it in a custom provider.
254
252
  */
255
- let MatSortHeaderIntl = /** @class */ (() => {
256
- class MatSortHeaderIntl {
257
- constructor() {
258
- /**
259
- * Stream that emits whenever the labels here are changed. Use this to notify
260
- * components if the labels have changed after initialization.
261
- */
262
- this.changes = new Subject();
263
- /** ARIA label for the sorting button. */
264
- this.sortButtonLabel = (id) => {
265
- return `Change sorting for ${id}`;
266
- };
267
- }
253
+ class MatSortHeaderIntl {
254
+ constructor() {
255
+ /**
256
+ * Stream that emits whenever the labels here are changed. Use this to notify
257
+ * components if the labels have changed after initialization.
258
+ */
259
+ this.changes = new Subject();
260
+ /**
261
+ * ARIA label for the sorting button.
262
+ * @deprecated Not used anymore. To be removed.
263
+ * @breaking-change 8.0.0
264
+ */
265
+ this.sortButtonLabel = (id) => {
266
+ return `Change sorting for ${id}`;
267
+ };
268
268
  }
269
- MatSortHeaderIntl.ɵprov = ɵɵdefineInjectable({ factory: function MatSortHeaderIntl_Factory() { return new MatSortHeaderIntl(); }, token: MatSortHeaderIntl, providedIn: "root" });
270
- MatSortHeaderIntl.decorators = [
271
- { type: Injectable, args: [{ providedIn: 'root' },] }
272
- ];
273
- return MatSortHeaderIntl;
274
- })();
269
+ }
270
+ MatSortHeaderIntl.ɵprov = ɵɵdefineInjectable({ factory: function MatSortHeaderIntl_Factory() { return new MatSortHeaderIntl(); }, token: MatSortHeaderIntl, providedIn: "root" });
271
+ MatSortHeaderIntl.decorators = [
272
+ { type: Injectable, args: [{ providedIn: 'root' },] }
273
+ ];
275
274
  /** @docs-private */
276
275
  function MAT_SORT_HEADER_INTL_PROVIDER_FACTORY(parentIntl) {
277
276
  return parentIntl || new MatSortHeaderIntl();
@@ -305,214 +304,220 @@ const _MatSortHeaderMixinBase = mixinDisabled(MatSortHeaderBase);
305
304
  * If used on header cells in a CdkTable, it will automatically default its id from its containing
306
305
  * column definition.
307
306
  */
308
- let MatSortHeader = /** @class */ (() => {
309
- class MatSortHeader extends _MatSortHeaderMixinBase {
310
- constructor(_intl, changeDetectorRef, _sort, _columnDef, _focusMonitor, _elementRef) {
311
- // Note that we use a string token for the `_columnDef`, because the value is provided both by
312
- // `material/table` and `cdk/table` and we can't have the CDK depending on Material,
313
- // and we want to avoid having the sort header depending on the CDK table because
314
- // of this single reference.
315
- super();
316
- this._intl = _intl;
317
- this._sort = _sort;
318
- this._columnDef = _columnDef;
319
- this._focusMonitor = _focusMonitor;
320
- this._elementRef = _elementRef;
321
- /**
322
- * Flag set to true when the indicator should be displayed while the sort is not active. Used to
323
- * provide an affordance that the header is sortable by showing on focus and hover.
324
- */
325
- this._showIndicatorHint = false;
326
- /** The direction the arrow should be facing according to the current state. */
327
- this._arrowDirection = '';
328
- /**
329
- * Whether the view state animation should show the transition between the `from` and `to` states.
330
- */
331
- this._disableViewStateAnimation = false;
332
- /** Sets the position of the arrow that displays when sorted. */
333
- this.arrowPosition = 'after';
334
- if (!_sort) {
335
- throw getSortHeaderNotContainedWithinSortError();
336
- }
337
- this._rerenderSubscription = merge(_sort.sortChange, _sort._stateChanges, _intl.changes)
338
- .subscribe(() => {
339
- if (this._isSorted()) {
340
- this._updateArrowDirection();
341
- }
342
- // If this header was recently active and now no longer sorted, animate away the arrow.
343
- if (!this._isSorted() && this._viewState && this._viewState.toState === 'active') {
344
- this._disableViewStateAnimation = false;
345
- this._setAnimationTransitionState({ fromState: 'active', toState: this._arrowDirection });
346
- }
347
- changeDetectorRef.markForCheck();
348
- });
349
- }
350
- /** Overrides the disable clear value of the containing MatSort for this MatSortable. */
351
- get disableClear() { return this._disableClear; }
352
- set disableClear(v) { this._disableClear = coerceBooleanProperty(v); }
353
- ngOnInit() {
354
- if (!this.id && this._columnDef) {
355
- this.id = this._columnDef.name;
356
- }
357
- // Initialize the direction of the arrow and set the view state to be immediately that state.
358
- this._updateArrowDirection();
359
- this._setAnimationTransitionState({ toState: this._isSorted() ? 'active' : this._arrowDirection });
360
- this._sort.register(this);
361
- }
362
- ngAfterViewInit() {
363
- // We use the focus monitor because we also want to style
364
- // things differently based on the focus origin.
365
- this._focusMonitor.monitor(this._elementRef, true)
366
- .subscribe(origin => this._setIndicatorHintVisible(!!origin));
367
- }
368
- ngOnDestroy() {
369
- this._focusMonitor.stopMonitoring(this._elementRef);
370
- this._sort.deregister(this);
371
- this._rerenderSubscription.unsubscribe();
372
- }
307
+ class MatSortHeader extends _MatSortHeaderMixinBase {
308
+ constructor(_intl, changeDetectorRef, _sort, _columnDef, _focusMonitor, _elementRef) {
309
+ // Note that we use a string token for the `_columnDef`, because the value is provided both by
310
+ // `material/table` and `cdk/table` and we can't have the CDK depending on Material,
311
+ // and we want to avoid having the sort header depending on the CDK table because
312
+ // of this single reference.
313
+ super();
314
+ this._intl = _intl;
315
+ this._sort = _sort;
316
+ this._columnDef = _columnDef;
317
+ this._focusMonitor = _focusMonitor;
318
+ this._elementRef = _elementRef;
373
319
  /**
374
- * Sets the "hint" state such that the arrow will be semi-transparently displayed as a hint to the
375
- * user showing what the active sort will become. If set to false, the arrow will fade away.
320
+ * Flag set to true when the indicator should be displayed while the sort is not active. Used to
321
+ * provide an affordance that the header is sortable by showing on focus and hover.
376
322
  */
377
- _setIndicatorHintVisible(visible) {
378
- // No-op if the sort header is disabled - should not make the hint visible.
379
- if (this._isDisabled() && visible) {
380
- return;
381
- }
382
- this._showIndicatorHint = visible;
383
- if (!this._isSorted()) {
384
- this._updateArrowDirection();
385
- if (this._showIndicatorHint) {
386
- this._setAnimationTransitionState({ fromState: this._arrowDirection, toState: 'hint' });
387
- }
388
- else {
389
- this._setAnimationTransitionState({ fromState: 'hint', toState: this._arrowDirection });
390
- }
391
- }
392
- }
323
+ this._showIndicatorHint = false;
324
+ /** The direction the arrow should be facing according to the current state. */
325
+ this._arrowDirection = '';
393
326
  /**
394
- * Sets the animation transition view state for the arrow's position and opacity. If the
395
- * `disableViewStateAnimation` flag is set to true, the `fromState` will be ignored so that
396
- * no animation appears.
327
+ * Whether the view state animation should show the transition between the `from` and `to` states.
397
328
  */
398
- _setAnimationTransitionState(viewState) {
399
- this._viewState = viewState;
400
- // If the animation for arrow position state (opacity/translation) should be disabled,
401
- // remove the fromState so that it jumps right to the toState.
402
- if (this._disableViewStateAnimation) {
403
- this._viewState = { toState: viewState.toState };
404
- }
329
+ this._disableViewStateAnimation = false;
330
+ /** Sets the position of the arrow that displays when sorted. */
331
+ this.arrowPosition = 'after';
332
+ if (!_sort) {
333
+ throw getSortHeaderNotContainedWithinSortError();
405
334
  }
406
- /** Triggers the sort on this sort header and removes the indicator hint. */
407
- _handleClick() {
408
- if (this._isDisabled()) {
409
- return;
335
+ this._rerenderSubscription = merge(_sort.sortChange, _sort._stateChanges, _intl.changes)
336
+ .subscribe(() => {
337
+ if (this._isSorted()) {
338
+ this._updateArrowDirection();
410
339
  }
411
- this._sort.sort(this);
412
- // Do not show the animation if the header was already shown in the right position.
413
- if (this._viewState.toState === 'hint' || this._viewState.toState === 'active') {
414
- this._disableViewStateAnimation = true;
340
+ // If this header was recently active and now no longer sorted, animate away the arrow.
341
+ if (!this._isSorted() && this._viewState && this._viewState.toState === 'active') {
342
+ this._disableViewStateAnimation = false;
343
+ this._setAnimationTransitionState({ fromState: 'active', toState: this._arrowDirection });
415
344
  }
416
- // If the arrow is now sorted, animate the arrow into place. Otherwise, animate it away into
417
- // the direction it is facing.
418
- const viewState = this._isSorted() ?
419
- { fromState: this._arrowDirection, toState: 'active' } :
420
- { fromState: 'active', toState: this._arrowDirection };
421
- this._setAnimationTransitionState(viewState);
422
- this._showIndicatorHint = false;
345
+ changeDetectorRef.markForCheck();
346
+ });
347
+ }
348
+ /** Overrides the disable clear value of the containing MatSort for this MatSortable. */
349
+ get disableClear() { return this._disableClear; }
350
+ set disableClear(v) { this._disableClear = coerceBooleanProperty(v); }
351
+ ngOnInit() {
352
+ if (!this.id && this._columnDef) {
353
+ this.id = this._columnDef.name;
423
354
  }
424
- /** Whether this MatSortHeader is currently sorted in either ascending or descending order. */
425
- _isSorted() {
426
- return this._sort.active == this.id &&
427
- (this._sort.direction === 'asc' || this._sort.direction === 'desc');
355
+ // Initialize the direction of the arrow and set the view state to be immediately that state.
356
+ this._updateArrowDirection();
357
+ this._setAnimationTransitionState({ toState: this._isSorted() ? 'active' : this._arrowDirection });
358
+ this._sort.register(this);
359
+ }
360
+ ngAfterViewInit() {
361
+ // We use the focus monitor because we also want to style
362
+ // things differently based on the focus origin.
363
+ this._focusMonitor.monitor(this._elementRef, true)
364
+ .subscribe(origin => this._setIndicatorHintVisible(!!origin));
365
+ }
366
+ ngOnDestroy() {
367
+ this._focusMonitor.stopMonitoring(this._elementRef);
368
+ this._sort.deregister(this);
369
+ this._rerenderSubscription.unsubscribe();
370
+ }
371
+ /**
372
+ * Sets the "hint" state such that the arrow will be semi-transparently displayed as a hint to the
373
+ * user showing what the active sort will become. If set to false, the arrow will fade away.
374
+ */
375
+ _setIndicatorHintVisible(visible) {
376
+ // No-op if the sort header is disabled - should not make the hint visible.
377
+ if (this._isDisabled() && visible) {
378
+ return;
428
379
  }
429
- /** Returns the animation state for the arrow direction (indicator and pointers). */
430
- _getArrowDirectionState() {
431
- return `${this._isSorted() ? 'active-' : ''}${this._arrowDirection}`;
380
+ this._showIndicatorHint = visible;
381
+ if (!this._isSorted()) {
382
+ this._updateArrowDirection();
383
+ if (this._showIndicatorHint) {
384
+ this._setAnimationTransitionState({ fromState: this._arrowDirection, toState: 'hint' });
385
+ }
386
+ else {
387
+ this._setAnimationTransitionState({ fromState: 'hint', toState: this._arrowDirection });
388
+ }
432
389
  }
433
- /** Returns the arrow position state (opacity, translation). */
434
- _getArrowViewState() {
435
- const fromState = this._viewState.fromState;
436
- return (fromState ? `${fromState}-to-` : '') + this._viewState.toState;
390
+ }
391
+ /**
392
+ * Sets the animation transition view state for the arrow's position and opacity. If the
393
+ * `disableViewStateAnimation` flag is set to true, the `fromState` will be ignored so that
394
+ * no animation appears.
395
+ */
396
+ _setAnimationTransitionState(viewState) {
397
+ this._viewState = viewState;
398
+ // If the animation for arrow position state (opacity/translation) should be disabled,
399
+ // remove the fromState so that it jumps right to the toState.
400
+ if (this._disableViewStateAnimation) {
401
+ this._viewState = { toState: viewState.toState };
437
402
  }
438
- /**
439
- * Updates the direction the arrow should be pointing. If it is not sorted, the arrow should be
440
- * facing the start direction. Otherwise if it is sorted, the arrow should point in the currently
441
- * active sorted direction. The reason this is updated through a function is because the direction
442
- * should only be changed at specific times - when deactivated but the hint is displayed and when
443
- * the sort is active and the direction changes. Otherwise the arrow's direction should linger
444
- * in cases such as the sort becoming deactivated but we want to animate the arrow away while
445
- * preserving its direction, even though the next sort direction is actually different and should
446
- * only be changed once the arrow displays again (hint or activation).
447
- */
448
- _updateArrowDirection() {
449
- this._arrowDirection = this._isSorted() ?
450
- this._sort.direction :
451
- (this.start || this._sort.start);
403
+ }
404
+ /** Triggers the sort on this sort header and removes the indicator hint. */
405
+ _toggleOnInteraction() {
406
+ this._sort.sort(this);
407
+ // Do not show the animation if the header was already shown in the right position.
408
+ if (this._viewState.toState === 'hint' || this._viewState.toState === 'active') {
409
+ this._disableViewStateAnimation = true;
452
410
  }
453
- _isDisabled() {
454
- return this._sort.disabled || this.disabled;
411
+ // If the arrow is now sorted, animate the arrow into place. Otherwise, animate it away into
412
+ // the direction it is facing.
413
+ const viewState = this._isSorted() ?
414
+ { fromState: this._arrowDirection, toState: 'active' } :
415
+ { fromState: 'active', toState: this._arrowDirection };
416
+ this._setAnimationTransitionState(viewState);
417
+ this._showIndicatorHint = false;
418
+ }
419
+ _handleClick() {
420
+ if (!this._isDisabled()) {
421
+ this._toggleOnInteraction();
455
422
  }
456
- /**
457
- * Gets the aria-sort attribute that should be applied to this sort header. If this header
458
- * is not sorted, returns null so that the attribute is removed from the host element. Aria spec
459
- * says that the aria-sort property should only be present on one header at a time, so removing
460
- * ensures this is true.
461
- */
462
- _getAriaSortAttribute() {
463
- if (!this._isSorted()) {
464
- return null;
465
- }
466
- return this._sort.direction == 'asc' ? 'ascending' : 'descending';
423
+ }
424
+ _handleKeydown(event) {
425
+ if (!this._isDisabled() && (event.keyCode === SPACE || event.keyCode === ENTER)) {
426
+ event.preventDefault();
427
+ this._toggleOnInteraction();
467
428
  }
468
- /** Whether the arrow inside the sort header should be rendered. */
469
- _renderArrow() {
470
- return !this._isDisabled() || this._isSorted();
429
+ }
430
+ /** Whether this MatSortHeader is currently sorted in either ascending or descending order. */
431
+ _isSorted() {
432
+ return this._sort.active == this.id &&
433
+ (this._sort.direction === 'asc' || this._sort.direction === 'desc');
434
+ }
435
+ /** Returns the animation state for the arrow direction (indicator and pointers). */
436
+ _getArrowDirectionState() {
437
+ return `${this._isSorted() ? 'active-' : ''}${this._arrowDirection}`;
438
+ }
439
+ /** Returns the arrow position state (opacity, translation). */
440
+ _getArrowViewState() {
441
+ const fromState = this._viewState.fromState;
442
+ return (fromState ? `${fromState}-to-` : '') + this._viewState.toState;
443
+ }
444
+ /**
445
+ * Updates the direction the arrow should be pointing. If it is not sorted, the arrow should be
446
+ * facing the start direction. Otherwise if it is sorted, the arrow should point in the currently
447
+ * active sorted direction. The reason this is updated through a function is because the direction
448
+ * should only be changed at specific times - when deactivated but the hint is displayed and when
449
+ * the sort is active and the direction changes. Otherwise the arrow's direction should linger
450
+ * in cases such as the sort becoming deactivated but we want to animate the arrow away while
451
+ * preserving its direction, even though the next sort direction is actually different and should
452
+ * only be changed once the arrow displays again (hint or activation).
453
+ */
454
+ _updateArrowDirection() {
455
+ this._arrowDirection = this._isSorted() ?
456
+ this._sort.direction :
457
+ (this.start || this._sort.start);
458
+ }
459
+ _isDisabled() {
460
+ return this._sort.disabled || this.disabled;
461
+ }
462
+ /**
463
+ * Gets the aria-sort attribute that should be applied to this sort header. If this header
464
+ * is not sorted, returns null so that the attribute is removed from the host element. Aria spec
465
+ * says that the aria-sort property should only be present on one header at a time, so removing
466
+ * ensures this is true.
467
+ */
468
+ _getAriaSortAttribute() {
469
+ if (!this._isSorted()) {
470
+ return 'none';
471
471
  }
472
+ return this._sort.direction == 'asc' ? 'ascending' : 'descending';
472
473
  }
473
- MatSortHeader.decorators = [
474
- { type: Component, args: [{
475
- selector: '[mat-sort-header]',
476
- exportAs: 'matSortHeader',
477
- template: "<div class=\"mat-sort-header-container\"\n [class.mat-sort-header-sorted]=\"_isSorted()\"\n [class.mat-sort-header-position-before]=\"arrowPosition == 'before'\">\n <button class=\"mat-sort-header-button mat-focus-indicator\" type=\"button\"\n [attr.disabled]=\"_isDisabled() || null\"\n [attr.aria-label]=\"_intl.sortButtonLabel(id)\">\n <ng-content></ng-content>\n </button>\n\n <!-- Disable animations while a current animation is running -->\n <div class=\"mat-sort-header-arrow\"\n *ngIf=\"_renderArrow()\"\n [@arrowOpacity]=\"_getArrowViewState()\"\n [@arrowPosition]=\"_getArrowViewState()\"\n [@allowChildren]=\"_getArrowDirectionState()\"\n (@arrowPosition.start)=\"_disableViewStateAnimation = true\"\n (@arrowPosition.done)=\"_disableViewStateAnimation = false\">\n <div class=\"mat-sort-header-stem\"></div>\n <div class=\"mat-sort-header-indicator\" [@indicator]=\"_getArrowDirectionState()\">\n <div class=\"mat-sort-header-pointer-left\" [@leftPointer]=\"_getArrowDirectionState()\"></div>\n <div class=\"mat-sort-header-pointer-right\" [@rightPointer]=\"_getArrowDirectionState()\"></div>\n <div class=\"mat-sort-header-pointer-middle\"></div>\n </div>\n </div>\n</div>\n",
478
- host: {
479
- 'class': 'mat-sort-header',
480
- '(click)': '_handleClick()',
481
- '(mouseenter)': '_setIndicatorHintVisible(true)',
482
- '(mouseleave)': '_setIndicatorHintVisible(false)',
483
- '[attr.aria-sort]': '_getAriaSortAttribute()',
484
- '[class.mat-sort-header-disabled]': '_isDisabled()',
485
- },
486
- encapsulation: ViewEncapsulation.None,
487
- changeDetection: ChangeDetectionStrategy.OnPush,
488
- inputs: ['disabled'],
489
- animations: [
490
- matSortAnimations.indicator,
491
- matSortAnimations.leftPointer,
492
- matSortAnimations.rightPointer,
493
- matSortAnimations.arrowOpacity,
494
- matSortAnimations.arrowPosition,
495
- matSortAnimations.allowChildren,
496
- ],
497
- styles: [".mat-sort-header-container{display:flex;cursor:pointer;align-items:center}.mat-sort-header-disabled .mat-sort-header-container{cursor:default}.mat-sort-header-position-before{flex-direction:row-reverse}.mat-sort-header-button{border:none;background:0 0;display:flex;align-items:center;padding:0;cursor:inherit;outline:0;font:inherit;color:currentColor}[mat-sort-header].cdk-keyboard-focused .mat-sort-header-button,[mat-sort-header].cdk-program-focused .mat-sort-header-button{border-bottom:solid 1px currentColor}.mat-sort-header-button::-moz-focus-inner{border:0}.mat-sort-header-arrow{height:12px;width:12px;min-width:12px;position:relative;display:flex;opacity:0}.mat-sort-header-arrow,[dir=rtl] .mat-sort-header-position-before .mat-sort-header-arrow{margin:0 0 0 6px}.mat-sort-header-position-before .mat-sort-header-arrow,[dir=rtl] .mat-sort-header-arrow{margin:0 6px 0 0}.mat-sort-header-stem{background:currentColor;height:10px;width:2px;margin:auto;display:flex;align-items:center}.cdk-high-contrast-active .mat-sort-header-stem{width:0;border-left:solid 2px}.mat-sort-header-indicator{width:100%;height:2px;display:flex;align-items:center;position:absolute;top:0;left:0}.mat-sort-header-pointer-middle{margin:auto;height:2px;width:2px;background:currentColor;transform:rotate(45deg)}.cdk-high-contrast-active .mat-sort-header-pointer-middle{width:0;height:0;border-top:solid 2px;border-left:solid 2px}.mat-sort-header-pointer-left,.mat-sort-header-pointer-right{background:currentColor;width:6px;height:2px;position:absolute;top:0}.cdk-high-contrast-active .mat-sort-header-pointer-left,.cdk-high-contrast-active .mat-sort-header-pointer-right{width:0;height:0;border-left:solid 6px;border-top:solid 2px}.mat-sort-header-pointer-left{transform-origin:right;left:0}.mat-sort-header-pointer-right{transform-origin:left;right:0}\n"]
498
- },] }
499
- ];
500
- MatSortHeader.ctorParameters = () => [
501
- { type: MatSortHeaderIntl },
502
- { type: ChangeDetectorRef },
503
- { type: MatSort, decorators: [{ type: Optional }] },
504
- { type: undefined, decorators: [{ type: Inject, args: ['MAT_SORT_HEADER_COLUMN_DEF',] }, { type: Optional }] },
505
- { type: FocusMonitor },
506
- { type: ElementRef }
507
- ];
508
- MatSortHeader.propDecorators = {
509
- id: [{ type: Input, args: ['mat-sort-header',] }],
510
- arrowPosition: [{ type: Input }],
511
- start: [{ type: Input }],
512
- disableClear: [{ type: Input }]
513
- };
514
- return MatSortHeader;
515
- })();
474
+ /** Whether the arrow inside the sort header should be rendered. */
475
+ _renderArrow() {
476
+ return !this._isDisabled() || this._isSorted();
477
+ }
478
+ }
479
+ MatSortHeader.decorators = [
480
+ { type: Component, args: [{
481
+ selector: '[mat-sort-header]',
482
+ exportAs: 'matSortHeader',
483
+ template: "<!--\n We set the `tabindex` on an element inside the table header, rather than the header itself,\n because of a bug in NVDA where having a `tabindex` on a `th` breaks keyboard navigation in the\n table (see https://github.com/nvaccess/nvda/issues/7718). This allows for the header to both\n be focusable, and have screen readers read out its `aria-sort` state. We prefer this approach\n over having a button with an `aria-label` inside the header, because the button's `aria-label`\n will be read out as the user is navigating the table's cell (see #13012).\n\n The approach is based off of: https://dequeuniversity.com/library/aria/tables/sf-sortable-grid\n-->\n<div class=\"mat-sort-header-container mat-focus-indicator\"\n [class.mat-sort-header-sorted]=\"_isSorted()\"\n [class.mat-sort-header-position-before]=\"arrowPosition == 'before'\"\n [attr.tabindex]=\"_isDisabled() ? null : 0\"\n role=\"button\">\n\n <!--\n TODO(crisbeto): this div isn't strictly necessary, but we have to keep it due to a large\n number of screenshot diff failures. It should be removed eventually. Note that the difference\n isn't visible with a shorter header, but once it breaks up into multiple lines, this element\n causes it to be center-aligned, whereas removing it will keep the text to the left.\n -->\n <div class=\"mat-sort-header-content\">\n <ng-content></ng-content>\n </div>\n\n <!-- Disable animations while a current animation is running -->\n <div class=\"mat-sort-header-arrow\"\n *ngIf=\"_renderArrow()\"\n [@arrowOpacity]=\"_getArrowViewState()\"\n [@arrowPosition]=\"_getArrowViewState()\"\n [@allowChildren]=\"_getArrowDirectionState()\"\n (@arrowPosition.start)=\"_disableViewStateAnimation = true\"\n (@arrowPosition.done)=\"_disableViewStateAnimation = false\">\n <div class=\"mat-sort-header-stem\"></div>\n <div class=\"mat-sort-header-indicator\" [@indicator]=\"_getArrowDirectionState()\">\n <div class=\"mat-sort-header-pointer-left\" [@leftPointer]=\"_getArrowDirectionState()\"></div>\n <div class=\"mat-sort-header-pointer-right\" [@rightPointer]=\"_getArrowDirectionState()\"></div>\n <div class=\"mat-sort-header-pointer-middle\"></div>\n </div>\n </div>\n</div>\n",
484
+ host: {
485
+ 'class': 'mat-sort-header',
486
+ '(click)': '_handleClick()',
487
+ '(keydown)': '_handleKeydown($event)',
488
+ '(mouseenter)': '_setIndicatorHintVisible(true)',
489
+ '(mouseleave)': '_setIndicatorHintVisible(false)',
490
+ '[attr.aria-sort]': '_getAriaSortAttribute()',
491
+ '[class.mat-sort-header-disabled]': '_isDisabled()',
492
+ },
493
+ encapsulation: ViewEncapsulation.None,
494
+ changeDetection: ChangeDetectionStrategy.OnPush,
495
+ inputs: ['disabled'],
496
+ animations: [
497
+ matSortAnimations.indicator,
498
+ matSortAnimations.leftPointer,
499
+ matSortAnimations.rightPointer,
500
+ matSortAnimations.arrowOpacity,
501
+ matSortAnimations.arrowPosition,
502
+ matSortAnimations.allowChildren,
503
+ ],
504
+ styles: [".mat-sort-header-container{display:flex;cursor:pointer;align-items:center;letter-spacing:normal;outline:0}[mat-sort-header].cdk-keyboard-focused .mat-sort-header-container,[mat-sort-header].cdk-program-focused .mat-sort-header-container{border-bottom:solid 1px currentColor}.mat-sort-header-disabled .mat-sort-header-container{cursor:default}.mat-sort-header-content{text-align:center;display:flex;align-items:center}.mat-sort-header-position-before{flex-direction:row-reverse}.mat-sort-header-arrow{height:12px;width:12px;min-width:12px;position:relative;display:flex;opacity:0}.mat-sort-header-arrow,[dir=rtl] .mat-sort-header-position-before .mat-sort-header-arrow{margin:0 0 0 6px}.mat-sort-header-position-before .mat-sort-header-arrow,[dir=rtl] .mat-sort-header-arrow{margin:0 6px 0 0}.mat-sort-header-stem{background:currentColor;height:10px;width:2px;margin:auto;display:flex;align-items:center}.cdk-high-contrast-active .mat-sort-header-stem{width:0;border-left:solid 2px}.mat-sort-header-indicator{width:100%;height:2px;display:flex;align-items:center;position:absolute;top:0;left:0}.mat-sort-header-pointer-middle{margin:auto;height:2px;width:2px;background:currentColor;transform:rotate(45deg)}.cdk-high-contrast-active .mat-sort-header-pointer-middle{width:0;height:0;border-top:solid 2px;border-left:solid 2px}.mat-sort-header-pointer-left,.mat-sort-header-pointer-right{background:currentColor;width:6px;height:2px;position:absolute;top:0}.cdk-high-contrast-active .mat-sort-header-pointer-left,.cdk-high-contrast-active .mat-sort-header-pointer-right{width:0;height:0;border-left:solid 6px;border-top:solid 2px}.mat-sort-header-pointer-left{transform-origin:right;left:0}.mat-sort-header-pointer-right{transform-origin:left;right:0}\n"]
505
+ },] }
506
+ ];
507
+ MatSortHeader.ctorParameters = () => [
508
+ { type: MatSortHeaderIntl },
509
+ { type: ChangeDetectorRef },
510
+ { type: MatSort, decorators: [{ type: Optional }] },
511
+ { type: undefined, decorators: [{ type: Inject, args: ['MAT_SORT_HEADER_COLUMN_DEF',] }, { type: Optional }] },
512
+ { type: FocusMonitor },
513
+ { type: ElementRef }
514
+ ];
515
+ MatSortHeader.propDecorators = {
516
+ id: [{ type: Input, args: ['mat-sort-header',] }],
517
+ arrowPosition: [{ type: Input }],
518
+ start: [{ type: Input }],
519
+ disableClear: [{ type: Input }]
520
+ };
516
521
 
517
522
  /**
518
523
  * @license
@@ -521,19 +526,16 @@ let MatSortHeader = /** @class */ (() => {
521
526
  * Use of this source code is governed by an MIT-style license that can be
522
527
  * found in the LICENSE file at https://angular.io/license
523
528
  */
524
- let MatSortModule = /** @class */ (() => {
525
- class MatSortModule {
526
- }
527
- MatSortModule.decorators = [
528
- { type: NgModule, args: [{
529
- imports: [CommonModule],
530
- exports: [MatSort, MatSortHeader],
531
- declarations: [MatSort, MatSortHeader],
532
- providers: [MAT_SORT_HEADER_INTL_PROVIDER]
533
- },] }
534
- ];
535
- return MatSortModule;
536
- })();
529
+ class MatSortModule {
530
+ }
531
+ MatSortModule.decorators = [
532
+ { type: NgModule, args: [{
533
+ imports: [CommonModule],
534
+ exports: [MatSort, MatSortHeader],
535
+ declarations: [MatSort, MatSortHeader],
536
+ providers: [MAT_SORT_HEADER_INTL_PROVIDER]
537
+ },] }
538
+ ];
537
539
 
538
540
  /**
539
541
  * @license