@angular/material 19.0.0-next.1 → 19.0.0-next.10

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 (831) hide show
  1. package/_index.scss +6 -6
  2. package/autocomplete/_autocomplete-theme.scss +37 -24
  3. package/autocomplete/index.d.ts +5 -15
  4. package/badge/_badge-theme.scss +38 -24
  5. package/badge/index.d.ts +3 -7
  6. package/bottom-sheet/_bottom-sheet-theme.scss +32 -20
  7. package/bottom-sheet/index.d.ts +5 -15
  8. package/button/_button-base.scss +2 -2
  9. package/button/_button-theme.scss +229 -105
  10. package/button/_fab-theme.scss +95 -44
  11. package/button/_icon-button-theme.scss +38 -25
  12. package/button/index.d.ts +24 -36
  13. package/button-toggle/_button-toggle-theme.scss +62 -37
  14. package/button-toggle/index.d.ts +5 -8
  15. package/card/_card-theme.scss +79 -38
  16. package/card/index.d.ts +2 -2
  17. package/checkbox/_checkbox-common.scss +4 -4
  18. package/checkbox/_checkbox-theme.scss +16 -10
  19. package/checkbox/index.d.ts +16 -14
  20. package/chips/_chips-theme.scss +64 -30
  21. package/chips/index.d.ts +19 -35
  22. package/core/_core-theme.scss +59 -55
  23. package/core/_core.scss +17 -14
  24. package/core/focus-indicators/_private.scss +21 -82
  25. package/core/index.d.ts +116 -200
  26. package/core/option/_optgroup-theme.scss +29 -18
  27. package/core/option/_option-theme.scss +34 -21
  28. package/core/ripple/_ripple-theme.scss +33 -21
  29. package/core/ripple/_ripple.scss +1 -1
  30. package/core/selection/pseudo-checkbox/_pseudo-checkbox-theme.scss +49 -23
  31. package/core/style/_elevation.scss +1 -1
  32. package/core/style/_menu-common.scss +1 -1
  33. package/core/style/_sass-utils.scss +4 -0
  34. package/core/theming/_all-theme.scss +3 -0
  35. package/core/theming/_config-validation.scss +4 -4
  36. package/core/theming/_definition.scss +12 -2
  37. package/core/theming/_palettes.scss +132 -45
  38. package/core/tokens/_density.scss +1 -0
  39. package/core/tokens/_m3-system.scss +162 -36
  40. package/core/tokens/_token-utils.scss +91 -34
  41. package/core/tokens/m2/_index.scss +2 -0
  42. package/core/tokens/m2/mat/_badge.scss +12 -3
  43. package/core/tokens/m2/mat/_timepicker.scss +44 -0
  44. package/core/tokens/m2/mdc/_radio.scss +1 -1
  45. package/core/tokens/m3/_index.scss +2 -0
  46. package/core/tokens/m3/definitions/_md-comp-elevated-card.scss +1 -1
  47. package/core/tokens/m3/definitions/_md-sys-color.scss +6 -6
  48. package/core/tokens/m3/mat/_badge.scss +3 -0
  49. package/core/tokens/m3/mat/_sidenav.scss +0 -1
  50. package/core/tokens/m3/mat/_timepicker.scss +22 -0
  51. package/core/typography/_all-typography.scss +2 -0
  52. package/datepicker/_datepicker-theme.scss +53 -32
  53. package/datepicker/index.d.ts +45 -71
  54. package/dialog/_dialog-theme.scss +46 -23
  55. package/dialog/index.d.ts +16 -37
  56. package/dialog/testing/index.d.ts +1 -1
  57. package/divider/_divider-theme.scss +28 -17
  58. package/expansion/_expansion-theme.scss +36 -24
  59. package/expansion/index.d.ts +9 -13
  60. package/fesm2022/autocomplete/testing.mjs.map +1 -1
  61. package/fesm2022/autocomplete.mjs +43 -75
  62. package/fesm2022/autocomplete.mjs.map +1 -1
  63. package/fesm2022/badge/testing.mjs.map +1 -1
  64. package/fesm2022/badge.mjs +24 -31
  65. package/fesm2022/badge.mjs.map +1 -1
  66. package/fesm2022/bottom-sheet/testing.mjs.map +1 -1
  67. package/fesm2022/bottom-sheet.mjs +26 -41
  68. package/fesm2022/bottom-sheet.mjs.map +1 -1
  69. package/fesm2022/button/testing.mjs.map +1 -1
  70. package/fesm2022/button-toggle/testing.mjs.map +1 -1
  71. package/fesm2022/button-toggle.mjs +30 -45
  72. package/fesm2022/button-toggle.mjs.map +1 -1
  73. package/fesm2022/button.mjs +79 -157
  74. package/fesm2022/button.mjs.map +1 -1
  75. package/fesm2022/card/testing.mjs.map +1 -1
  76. package/fesm2022/card.mjs +53 -68
  77. package/fesm2022/card.mjs.map +1 -1
  78. package/fesm2022/checkbox/testing.mjs.map +1 -1
  79. package/fesm2022/checkbox.mjs +41 -44
  80. package/fesm2022/checkbox.mjs.map +1 -1
  81. package/fesm2022/chips/testing.mjs.map +1 -1
  82. package/fesm2022/chips.mjs +131 -184
  83. package/fesm2022/chips.mjs.map +1 -1
  84. package/fesm2022/core/testing.mjs.map +1 -1
  85. package/fesm2022/core.mjs +370 -411
  86. package/fesm2022/core.mjs.map +1 -1
  87. package/fesm2022/datepicker/testing.mjs.map +1 -1
  88. package/fesm2022/datepicker.mjs +208 -349
  89. package/fesm2022/datepicker.mjs.map +1 -1
  90. package/fesm2022/dialog/testing.mjs +3 -4
  91. package/fesm2022/dialog/testing.mjs.map +1 -1
  92. package/fesm2022/dialog.mjs +50 -113
  93. package/fesm2022/dialog.mjs.map +1 -1
  94. package/fesm2022/divider/testing.mjs.map +1 -1
  95. package/fesm2022/divider.mjs +8 -8
  96. package/fesm2022/divider.mjs.map +1 -1
  97. package/fesm2022/expansion/testing.mjs.map +1 -1
  98. package/fesm2022/expansion.mjs +60 -98
  99. package/fesm2022/expansion.mjs.map +1 -1
  100. package/fesm2022/form-field/testing/control.mjs.map +1 -1
  101. package/fesm2022/form-field/testing.mjs.map +1 -1
  102. package/fesm2022/form-field.mjs +91 -102
  103. package/fesm2022/form-field.mjs.map +1 -1
  104. package/fesm2022/grid-list/testing.mjs.map +1 -1
  105. package/fesm2022/grid-list.mjs +39 -49
  106. package/fesm2022/grid-list.mjs.map +1 -1
  107. package/fesm2022/icon/testing.mjs +7 -7
  108. package/fesm2022/icon/testing.mjs.map +1 -1
  109. package/fesm2022/icon.mjs +22 -31
  110. package/fesm2022/icon.mjs.map +1 -1
  111. package/fesm2022/input/testing.mjs.map +1 -1
  112. package/fesm2022/input.mjs +58 -59
  113. package/fesm2022/input.mjs.map +1 -1
  114. package/fesm2022/list/testing.mjs.map +1 -1
  115. package/fesm2022/list.mjs +112 -158
  116. package/fesm2022/list.mjs.map +1 -1
  117. package/fesm2022/material.mjs.map +1 -1
  118. package/fesm2022/menu/testing.mjs.map +1 -1
  119. package/fesm2022/menu.mjs +69 -118
  120. package/fesm2022/menu.mjs.map +1 -1
  121. package/fesm2022/paginator/testing.mjs +2 -2
  122. package/fesm2022/paginator/testing.mjs.map +1 -1
  123. package/fesm2022/paginator.mjs +11 -11
  124. package/fesm2022/paginator.mjs.map +1 -1
  125. package/fesm2022/progress-bar/testing.mjs.map +1 -1
  126. package/fesm2022/progress-bar.mjs +19 -26
  127. package/fesm2022/progress-bar.mjs.map +1 -1
  128. package/fesm2022/progress-spinner/testing.mjs.map +1 -1
  129. package/fesm2022/progress-spinner.mjs +15 -21
  130. package/fesm2022/progress-spinner.mjs.map +1 -1
  131. package/fesm2022/radio/testing.mjs.map +1 -1
  132. package/fesm2022/radio.mjs +33 -45
  133. package/fesm2022/radio.mjs.map +1 -1
  134. package/fesm2022/select/testing.mjs.map +1 -1
  135. package/fesm2022/select.mjs +36 -69
  136. package/fesm2022/select.mjs.map +1 -1
  137. package/fesm2022/sidenav/testing.mjs.map +1 -1
  138. package/fesm2022/sidenav.mjs +72 -94
  139. package/fesm2022/sidenav.mjs.map +1 -1
  140. package/fesm2022/slide-toggle/testing.mjs.map +1 -1
  141. package/fesm2022/slide-toggle.mjs +31 -38
  142. package/fesm2022/slide-toggle.mjs.map +1 -1
  143. package/fesm2022/slider/testing.mjs.map +1 -1
  144. package/fesm2022/slider.mjs +66 -74
  145. package/fesm2022/slider.mjs.map +1 -1
  146. package/fesm2022/snack-bar/testing.mjs.map +1 -1
  147. package/fesm2022/snack-bar.mjs +52 -68
  148. package/fesm2022/snack-bar.mjs.map +1 -1
  149. package/fesm2022/sort/testing.mjs.map +1 -1
  150. package/fesm2022/sort.mjs +34 -52
  151. package/fesm2022/sort.mjs.map +1 -1
  152. package/fesm2022/stepper/testing.mjs.map +1 -1
  153. package/fesm2022/stepper.mjs +63 -77
  154. package/fesm2022/stepper.mjs.map +1 -1
  155. package/fesm2022/table/testing.mjs.map +1 -1
  156. package/fesm2022/table.mjs +59 -75
  157. package/fesm2022/table.mjs.map +1 -1
  158. package/fesm2022/tabs/testing.mjs.map +1 -1
  159. package/fesm2022/tabs.mjs +140 -199
  160. package/fesm2022/tabs.mjs.map +1 -1
  161. package/fesm2022/timepicker/testing.mjs +196 -0
  162. package/fesm2022/timepicker/testing.mjs.map +1 -0
  163. package/fesm2022/timepicker.mjs +842 -0
  164. package/fesm2022/timepicker.mjs.map +1 -0
  165. package/fesm2022/toolbar/testing.mjs.map +1 -1
  166. package/fesm2022/toolbar.mjs +18 -23
  167. package/fesm2022/toolbar.mjs.map +1 -1
  168. package/fesm2022/tooltip/testing.mjs.map +1 -1
  169. package/fesm2022/tooltip.mjs +69 -75
  170. package/fesm2022/tooltip.mjs.map +1 -1
  171. package/fesm2022/tree/testing.mjs.map +1 -1
  172. package/fesm2022/tree.mjs +36 -69
  173. package/fesm2022/tree.mjs.map +1 -1
  174. package/form-field/_form-field-high-contrast.scss +4 -4
  175. package/form-field/_form-field-theme.scss +114 -61
  176. package/form-field/_mdc-text-field-structure.scss +51 -49
  177. package/form-field/index.d.ts +13 -25
  178. package/grid-list/_grid-list-theme.scss +25 -15
  179. package/grid-list/index.d.ts +6 -8
  180. package/icon/_icon-theme.scss +22 -14
  181. package/icon/index.d.ts +3 -3
  182. package/input/_input-theme.scss +18 -11
  183. package/input/index.d.ts +6 -8
  184. package/list/_list-inherited-structure.scss +1 -13
  185. package/list/_list-item-hcm-indicator.scss +1 -1
  186. package/list/_list-theme.scss +89 -47
  187. package/list/index.d.ts +10 -14
  188. package/menu/_menu-theme.scss +33 -21
  189. package/menu/index.d.ts +15 -50
  190. package/package.json +10 -146
  191. package/paginator/_paginator-theme.scss +39 -23
  192. package/prebuilt-themes/azure-blue.css +1 -1
  193. package/prebuilt-themes/cyan-orange.css +1 -1
  194. package/prebuilt-themes/deeppurple-amber.css +1 -1
  195. package/prebuilt-themes/indigo-pink.css +1 -1
  196. package/prebuilt-themes/magenta-violet.css +1 -1
  197. package/prebuilt-themes/pink-bluegrey.css +1 -1
  198. package/prebuilt-themes/purple-green.css +1 -1
  199. package/prebuilt-themes/rose-red.css +1 -1
  200. package/progress-bar/_progress-bar-theme.scss +20 -16
  201. package/progress-bar/index.d.ts +3 -5
  202. package/progress-spinner/_progress-spinner-theme.scss +41 -25
  203. package/progress-spinner/index.d.ts +2 -2
  204. package/radio/_radio-theme.scss +60 -32
  205. package/radio/index.d.ts +5 -8
  206. package/schematics/collection.json +3 -3
  207. package/schematics/ng-add/fonts/material-fonts.d.ts +1 -1
  208. package/schematics/ng-add/fonts/material-fonts.js +2 -2
  209. package/schematics/ng-add/fonts/material-fonts.mjs +2 -2
  210. package/schematics/ng-add/index.d.ts +1 -1
  211. package/schematics/ng-add/index.js +3 -3
  212. package/schematics/ng-add/index.mjs +3 -3
  213. package/schematics/ng-add/package-config.d.ts +1 -1
  214. package/schematics/ng-add/package-config.js +2 -2
  215. package/schematics/ng-add/package-config.mjs +2 -2
  216. package/schematics/ng-add/schema.d.ts +1 -1
  217. package/schematics/ng-add/schema.js +2 -2
  218. package/schematics/ng-add/schema.mjs +2 -2
  219. package/schematics/ng-add/setup-project.d.ts +1 -1
  220. package/schematics/ng-add/setup-project.js +3 -3
  221. package/schematics/ng-add/setup-project.mjs +3 -3
  222. package/schematics/ng-add/theming/create-custom-theme.d.ts +1 -1
  223. package/schematics/ng-add/theming/create-custom-theme.js +2 -7
  224. package/schematics/ng-add/theming/create-custom-theme.mjs +2 -7
  225. package/schematics/ng-add/theming/theming.d.ts +1 -1
  226. package/schematics/ng-add/theming/theming.js +2 -2
  227. package/schematics/ng-add/theming/theming.mjs +2 -2
  228. package/schematics/ng-generate/address-form/index.d.ts +1 -1
  229. package/schematics/ng-generate/address-form/index.js +2 -2
  230. package/schematics/ng-generate/address-form/index.mjs +2 -2
  231. package/schematics/ng-generate/address-form/schema.d.ts +1 -1
  232. package/schematics/ng-generate/address-form/schema.js +2 -2
  233. package/schematics/ng-generate/address-form/schema.mjs +2 -2
  234. package/schematics/ng-generate/dashboard/index.d.ts +1 -1
  235. package/schematics/ng-generate/dashboard/index.js +2 -2
  236. package/schematics/ng-generate/dashboard/index.mjs +2 -2
  237. package/schematics/ng-generate/dashboard/schema.d.ts +1 -1
  238. package/schematics/ng-generate/dashboard/schema.js +2 -2
  239. package/schematics/ng-generate/dashboard/schema.mjs +2 -2
  240. package/schematics/ng-generate/navigation/index.d.ts +1 -1
  241. package/schematics/ng-generate/navigation/index.js +2 -2
  242. package/schematics/ng-generate/navigation/index.mjs +2 -2
  243. package/schematics/ng-generate/navigation/schema.d.ts +1 -1
  244. package/schematics/ng-generate/navigation/schema.js +2 -2
  245. package/schematics/ng-generate/navigation/schema.mjs +2 -2
  246. package/schematics/ng-generate/table/index.d.ts +1 -1
  247. package/schematics/ng-generate/table/index.js +2 -2
  248. package/schematics/ng-generate/table/index.mjs +2 -2
  249. package/schematics/ng-generate/table/schema.d.ts +1 -1
  250. package/schematics/ng-generate/table/schema.js +2 -2
  251. package/schematics/ng-generate/table/schema.mjs +2 -2
  252. package/schematics/ng-generate/{m3-theme → theme-color}/index_bundled.js +481 -289
  253. package/schematics/ng-generate/theme-color/index_bundled.js.map +7 -0
  254. package/schematics/ng-generate/{m3-theme → theme-color}/schema.json +7 -13
  255. package/schematics/ng-generate/tree/index.d.ts +1 -1
  256. package/schematics/ng-generate/tree/index.js +2 -2
  257. package/schematics/ng-generate/tree/index.mjs +2 -2
  258. package/schematics/ng-generate/tree/schema.d.ts +1 -1
  259. package/schematics/ng-generate/tree/schema.js +2 -2
  260. package/schematics/ng-generate/tree/schema.mjs +2 -2
  261. package/schematics/ng-update/index_bundled.js +6518 -2
  262. package/schematics/ng-update/index_bundled.js.map +4 -4
  263. package/select/_select-theme.scss +38 -25
  264. package/select/index.d.ts +4 -14
  265. package/sidenav/_sidenav-theme.scss +28 -17
  266. package/sidenav/index.d.ts +7 -17
  267. package/slide-toggle/_slide-toggle-theme.scss +52 -28
  268. package/slide-toggle/index.d.ts +2 -2
  269. package/slider/_slider-theme.scss +62 -38
  270. package/slider/index.d.ts +8 -8
  271. package/snack-bar/_snack-bar-theme.scss +29 -17
  272. package/snack-bar/index.d.ts +6 -22
  273. package/sort/_sort-theme.scss +33 -21
  274. package/sort/index.d.ts +4 -20
  275. package/stepper/_stepper-theme.scss +40 -27
  276. package/stepper/index.d.ts +6 -13
  277. package/table/_table-theme.scss +36 -23
  278. package/tabs/_tabs-common.scss +2 -2
  279. package/tabs/_tabs-theme.scss +97 -50
  280. package/tabs/index.d.ts +28 -35
  281. package/timepicker/_timepicker-theme.scss +124 -0
  282. package/timepicker/index.d.ts +297 -0
  283. package/timepicker/testing/index.d.ts +113 -0
  284. package/toolbar/_toolbar-theme.scss +35 -22
  285. package/toolbar/index.d.ts +3 -4
  286. package/tooltip/_tooltip-theme.scss +18 -15
  287. package/tooltip/index.d.ts +5 -12
  288. package/tree/_tree-theme.scss +33 -21
  289. package/tree/index.d.ts +5 -18
  290. package/core/focus-indicators/_focus-indicators-theme.scss +0 -11
  291. package/core/focus-indicators/_focus-indicators.scss +0 -6
  292. package/esm2022/autocomplete/animations.mjs +0 -24
  293. package/esm2022/autocomplete/autocomplete-origin.mjs +0 -31
  294. package/esm2022/autocomplete/autocomplete-trigger.mjs +0 -902
  295. package/esm2022/autocomplete/autocomplete.mjs +0 -238
  296. package/esm2022/autocomplete/autocomplete_public_index.mjs +0 -5
  297. package/esm2022/autocomplete/index.mjs +0 -9
  298. package/esm2022/autocomplete/module.mjs +0 -61
  299. package/esm2022/autocomplete/public-api.mjs +0 -14
  300. package/esm2022/autocomplete/testing/autocomplete-harness-filters.mjs +0 -9
  301. package/esm2022/autocomplete/testing/autocomplete-harness.mjs +0 -105
  302. package/esm2022/autocomplete/testing/index.mjs +0 -9
  303. package/esm2022/autocomplete/testing/public-api.mjs +0 -10
  304. package/esm2022/badge/badge-module.mjs +0 -27
  305. package/esm2022/badge/badge.mjs +0 -288
  306. package/esm2022/badge/badge_public_index.mjs +0 -5
  307. package/esm2022/badge/index.mjs +0 -9
  308. package/esm2022/badge/public-api.mjs +0 -10
  309. package/esm2022/badge/testing/badge-harness-filters.mjs +0 -9
  310. package/esm2022/badge/testing/badge-harness.mjs +0 -71
  311. package/esm2022/badge/testing/index.mjs +0 -9
  312. package/esm2022/badge/testing/public-api.mjs +0 -10
  313. package/esm2022/bottom-sheet/bottom-sheet-animations.mjs +0 -26
  314. package/esm2022/bottom-sheet/bottom-sheet-config.mjs +0 -48
  315. package/esm2022/bottom-sheet/bottom-sheet-container.mjs +0 -85
  316. package/esm2022/bottom-sheet/bottom-sheet-module.mjs +0 -28
  317. package/esm2022/bottom-sheet/bottom-sheet-ref.mjs +0 -104
  318. package/esm2022/bottom-sheet/bottom-sheet.mjs +0 -115
  319. package/esm2022/bottom-sheet/bottom-sheet_public_index.mjs +0 -5
  320. package/esm2022/bottom-sheet/index.mjs +0 -9
  321. package/esm2022/bottom-sheet/public-api.mjs +0 -14
  322. package/esm2022/bottom-sheet/testing/bottom-sheet-harness-filters.mjs +0 -9
  323. package/esm2022/bottom-sheet/testing/bottom-sheet-harness.mjs +0 -35
  324. package/esm2022/bottom-sheet/testing/index.mjs +0 -9
  325. package/esm2022/bottom-sheet/testing/public-api.mjs +0 -10
  326. package/esm2022/button/button-base.mjs +0 -230
  327. package/esm2022/button/button.mjs +0 -67
  328. package/esm2022/button/button_public_index.mjs +0 -5
  329. package/esm2022/button/fab.mjs +0 -166
  330. package/esm2022/button/icon-button.mjs +0 -56
  331. package/esm2022/button/index.mjs +0 -9
  332. package/esm2022/button/module.mjs +0 -65
  333. package/esm2022/button/public-api.mjs +0 -13
  334. package/esm2022/button/testing/button-harness-filters.mjs +0 -9
  335. package/esm2022/button/testing/button-harness.mjs +0 -80
  336. package/esm2022/button/testing/index.mjs +0 -9
  337. package/esm2022/button/testing/public-api.mjs +0 -10
  338. package/esm2022/button-toggle/button-toggle-module.mjs +0 -24
  339. package/esm2022/button-toggle/button-toggle.mjs +0 -651
  340. package/esm2022/button-toggle/button-toggle_public_index.mjs +0 -5
  341. package/esm2022/button-toggle/index.mjs +0 -9
  342. package/esm2022/button-toggle/public-api.mjs +0 -10
  343. package/esm2022/button-toggle/testing/button-toggle-group-harness-filters.mjs +0 -9
  344. package/esm2022/button-toggle/testing/button-toggle-group-harness.mjs +0 -47
  345. package/esm2022/button-toggle/testing/button-toggle-harness-filters.mjs +0 -9
  346. package/esm2022/button-toggle/testing/button-toggle-harness.mjs +0 -105
  347. package/esm2022/button-toggle/testing/index.mjs +0 -9
  348. package/esm2022/button-toggle/testing/public-api.mjs +0 -12
  349. package/esm2022/card/card.mjs +0 -273
  350. package/esm2022/card/card_public_index.mjs +0 -5
  351. package/esm2022/card/index.mjs +0 -9
  352. package/esm2022/card/module.mjs +0 -67
  353. package/esm2022/card/public-api.mjs +0 -10
  354. package/esm2022/card/testing/card-harness-filters.mjs +0 -9
  355. package/esm2022/card/testing/card-harness.mjs +0 -50
  356. package/esm2022/card/testing/index.mjs +0 -9
  357. package/esm2022/card/testing/public-api.mjs +0 -10
  358. package/esm2022/checkbox/checkbox-config.mjs +0 -22
  359. package/esm2022/checkbox/checkbox-required-validator.mjs +0 -41
  360. package/esm2022/checkbox/checkbox.mjs +0 -443
  361. package/esm2022/checkbox/checkbox_public_index.mjs +0 -5
  362. package/esm2022/checkbox/index.mjs +0 -9
  363. package/esm2022/checkbox/module.mjs +0 -41
  364. package/esm2022/checkbox/public-api.mjs +0 -12
  365. package/esm2022/checkbox/testing/checkbox-harness-filters.mjs +0 -9
  366. package/esm2022/checkbox/testing/checkbox-harness.mjs +0 -138
  367. package/esm2022/checkbox/testing/index.mjs +0 -9
  368. package/esm2022/checkbox/testing/public-api.mjs +0 -9
  369. package/esm2022/chips/chip-action.mjs +0 -113
  370. package/esm2022/chips/chip-edit-input.mjs +0 -61
  371. package/esm2022/chips/chip-grid.mjs +0 -420
  372. package/esm2022/chips/chip-icons.mjs +0 -107
  373. package/esm2022/chips/chip-input.mjs +0 -192
  374. package/esm2022/chips/chip-listbox.mjs +0 -369
  375. package/esm2022/chips/chip-option.mjs +0 -190
  376. package/esm2022/chips/chip-row.mjs +0 -173
  377. package/esm2022/chips/chip-set.mjs +0 -283
  378. package/esm2022/chips/chip-text-control.mjs +0 -9
  379. package/esm2022/chips/chip.mjs +0 -322
  380. package/esm2022/chips/chips_public_index.mjs +0 -5
  381. package/esm2022/chips/index.mjs +0 -9
  382. package/esm2022/chips/module.mjs +0 -85
  383. package/esm2022/chips/public-api.mjs +0 -20
  384. package/esm2022/chips/testing/chip-avatar-harness.mjs +0 -22
  385. package/esm2022/chips/testing/chip-edit-input-harness.mjs +0 -33
  386. package/esm2022/chips/testing/chip-grid-harness.mjs +0 -45
  387. package/esm2022/chips/testing/chip-harness-filters.mjs +0 -9
  388. package/esm2022/chips/testing/chip-harness.mjs +0 -62
  389. package/esm2022/chips/testing/chip-input-harness.mjs +0 -85
  390. package/esm2022/chips/testing/chip-listbox-harness.mjs +0 -61
  391. package/esm2022/chips/testing/chip-option-harness.mjs +0 -45
  392. package/esm2022/chips/testing/chip-remove-harness.mjs +0 -26
  393. package/esm2022/chips/testing/chip-row-harness.mjs +0 -40
  394. package/esm2022/chips/testing/chip-set-harness.mjs +0 -26
  395. package/esm2022/chips/testing/index.mjs +0 -9
  396. package/esm2022/chips/testing/public-api.mjs +0 -19
  397. package/esm2022/chips/tokens.mjs +0 -39
  398. package/esm2022/core/animation/animation.mjs +0 -21
  399. package/esm2022/core/common-behaviors/color.mjs +0 -33
  400. package/esm2022/core/common-behaviors/common-module.mjs +0 -127
  401. package/esm2022/core/common-behaviors/constructor.mjs +0 -9
  402. package/esm2022/core/common-behaviors/disable-ripple.mjs +0 -24
  403. package/esm2022/core/common-behaviors/disabled.mjs +0 -23
  404. package/esm2022/core/common-behaviors/error-state.mjs +0 -66
  405. package/esm2022/core/common-behaviors/index.mjs +0 -15
  406. package/esm2022/core/common-behaviors/initialized.mjs +0 -62
  407. package/esm2022/core/common-behaviors/tabindex.mjs +0 -25
  408. package/esm2022/core/core_public_index.mjs +0 -5
  409. package/esm2022/core/datetime/date-adapter.mjs +0 -109
  410. package/esm2022/core/datetime/date-formats.mjs +0 -10
  411. package/esm2022/core/datetime/index.mjs +0 -46
  412. package/esm2022/core/datetime/native-date-adapter.mjs +0 -221
  413. package/esm2022/core/datetime/native-date-formats.mjs +0 -19
  414. package/esm2022/core/error/error-options.mjs +0 -33
  415. package/esm2022/core/index.mjs +0 -9
  416. package/esm2022/core/internal-form-field/internal-form-field.mjs +0 -29
  417. package/esm2022/core/line/line.mjs +0 -64
  418. package/esm2022/core/option/index.mjs +0 -30
  419. package/esm2022/core/option/optgroup.mjs +0 -71
  420. package/esm2022/core/option/option-parent.mjs +0 -13
  421. package/esm2022/core/option/option.mjs +0 -283
  422. package/esm2022/core/private/index.mjs +0 -9
  423. package/esm2022/core/private/ripple-loader.mjs +0 -160
  424. package/esm2022/core/public-api.mjs +0 -19
  425. package/esm2022/core/ripple/index.mjs +0 -27
  426. package/esm2022/core/ripple/ripple-event-manager.mjs +0 -69
  427. package/esm2022/core/ripple/ripple-ref.mjs +0 -39
  428. package/esm2022/core/ripple/ripple-renderer.mjs +0 -354
  429. package/esm2022/core/ripple/ripple.mjs +0 -156
  430. package/esm2022/core/selection/index.mjs +0 -10
  431. package/esm2022/core/selection/pseudo-checkbox/pseudo-checkbox-module.mjs +0 -24
  432. package/esm2022/core/selection/pseudo-checkbox/pseudo-checkbox.mjs +0 -62
  433. package/esm2022/core/testing/index.mjs +0 -9
  434. package/esm2022/core/testing/optgroup-harness-filters.mjs +0 -9
  435. package/esm2022/core/testing/optgroup-harness.mjs +0 -43
  436. package/esm2022/core/testing/option-harness-filters.mjs +0 -9
  437. package/esm2022/core/testing/option-harness.mjs +0 -53
  438. package/esm2022/core/testing/public-api.mjs +0 -12
  439. package/esm2022/core/version.mjs +0 -11
  440. package/esm2022/datepicker/aria-accessible-name.mjs +0 -159
  441. package/esm2022/datepicker/calendar-body.mjs +0 -509
  442. package/esm2022/datepicker/calendar.mjs +0 -426
  443. package/esm2022/datepicker/date-range-input-parts.mjs +0 -372
  444. package/esm2022/datepicker/date-range-input.mjs +0 -369
  445. package/esm2022/datepicker/date-range-picker.mjs +0 -51
  446. package/esm2022/datepicker/date-range-selection-strategy.mjs +0 -97
  447. package/esm2022/datepicker/date-selection-model.mjs +0 -188
  448. package/esm2022/datepicker/datepicker-actions.mjs +0 -91
  449. package/esm2022/datepicker/datepicker-animations.mjs +0 -35
  450. package/esm2022/datepicker/datepicker-base.mjs +0 -609
  451. package/esm2022/datepicker/datepicker-errors.mjs +0 -14
  452. package/esm2022/datepicker/datepicker-input-base.mjs +0 -311
  453. package/esm2022/datepicker/datepicker-input.mjs +0 -200
  454. package/esm2022/datepicker/datepicker-intl.mjs +0 -69
  455. package/esm2022/datepicker/datepicker-module.mjs +0 -138
  456. package/esm2022/datepicker/datepicker-toggle.mjs +0 -113
  457. package/esm2022/datepicker/datepicker.mjs +0 -38
  458. package/esm2022/datepicker/datepicker_public_index.mjs +0 -5
  459. package/esm2022/datepicker/index.mjs +0 -9
  460. package/esm2022/datepicker/month-view.mjs +0 -460
  461. package/esm2022/datepicker/multi-year-view.mjs +0 -330
  462. package/esm2022/datepicker/public-api.mjs +0 -27
  463. package/esm2022/datepicker/testing/calendar-cell-harness.mjs +0 -138
  464. package/esm2022/datepicker/testing/calendar-harness.mjs +0 -83
  465. package/esm2022/datepicker/testing/date-range-input-harness.mjs +0 -98
  466. package/esm2022/datepicker/testing/datepicker-harness-filters.mjs +0 -9
  467. package/esm2022/datepicker/testing/datepicker-input-harness-base.mjs +0 -81
  468. package/esm2022/datepicker/testing/datepicker-input-harness.mjs +0 -58
  469. package/esm2022/datepicker/testing/datepicker-toggle-harness.mjs +0 -41
  470. package/esm2022/datepicker/testing/datepicker-trigger-harness-base.mjs +0 -65
  471. package/esm2022/datepicker/testing/index.mjs +0 -9
  472. package/esm2022/datepicker/testing/public-api.mjs +0 -14
  473. package/esm2022/datepicker/year-view.mjs +0 -324
  474. package/esm2022/dialog/dialog-animations.mjs +0 -38
  475. package/esm2022/dialog/dialog-config.mjs +0 -59
  476. package/esm2022/dialog/dialog-container.mjs +0 -253
  477. package/esm2022/dialog/dialog-content-directives.mjs +0 -212
  478. package/esm2022/dialog/dialog-ref.mjs +0 -177
  479. package/esm2022/dialog/dialog.mjs +0 -212
  480. package/esm2022/dialog/dialog_public_index.mjs +0 -5
  481. package/esm2022/dialog/index.mjs +0 -9
  482. package/esm2022/dialog/module.mjs +0 -45
  483. package/esm2022/dialog/public-api.mjs +0 -15
  484. package/esm2022/dialog/testing/dialog-harness-filters.mjs +0 -9
  485. package/esm2022/dialog/testing/dialog-harness.mjs +0 -84
  486. package/esm2022/dialog/testing/dialog-opener.mjs +0 -58
  487. package/esm2022/dialog/testing/index.mjs +0 -10
  488. package/esm2022/dialog/testing/public-api.mjs +0 -10
  489. package/esm2022/divider/divider-module.mjs +0 -24
  490. package/esm2022/divider/divider.mjs +0 -48
  491. package/esm2022/divider/divider_public_index.mjs +0 -5
  492. package/esm2022/divider/index.mjs +0 -9
  493. package/esm2022/divider/public-api.mjs +0 -10
  494. package/esm2022/divider/testing/divider-harness-filters.mjs +0 -9
  495. package/esm2022/divider/testing/divider-harness.mjs +0 -22
  496. package/esm2022/divider/testing/index.mjs +0 -9
  497. package/esm2022/divider/testing/public-api.mjs +0 -10
  498. package/esm2022/expansion/accordion-base.mjs +0 -14
  499. package/esm2022/expansion/accordion.mjs +0 -96
  500. package/esm2022/expansion/expansion-animations.mjs +0 -51
  501. package/esm2022/expansion/expansion-module.mjs +0 -65
  502. package/esm2022/expansion/expansion-panel-base.mjs +0 -14
  503. package/esm2022/expansion/expansion-panel-content.mjs +0 -35
  504. package/esm2022/expansion/expansion-panel-header.mjs +0 -218
  505. package/esm2022/expansion/expansion-panel.mjs +0 -211
  506. package/esm2022/expansion/expansion_public_index.mjs +0 -5
  507. package/esm2022/expansion/index.mjs +0 -9
  508. package/esm2022/expansion/public-api.mjs +0 -16
  509. package/esm2022/expansion/testing/accordion-harness.mjs +0 -31
  510. package/esm2022/expansion/testing/expansion-harness-filters.mjs +0 -9
  511. package/esm2022/expansion/testing/expansion-harness.mjs +0 -128
  512. package/esm2022/expansion/testing/index.mjs +0 -9
  513. package/esm2022/expansion/testing/public-api.mjs +0 -11
  514. package/esm2022/form-field/directives/error.mjs +0 -48
  515. package/esm2022/form-field/directives/floating-label.mjs +0 -135
  516. package/esm2022/form-field/directives/hint.mjs +0 -40
  517. package/esm2022/form-field/directives/label.mjs +0 -22
  518. package/esm2022/form-field/directives/line-ripple.mjs +0 -60
  519. package/esm2022/form-field/directives/notched-outline.mjs +0 -66
  520. package/esm2022/form-field/directives/prefix.mjs +0 -38
  521. package/esm2022/form-field/directives/suffix.mjs +0 -38
  522. package/esm2022/form-field/form-field-animations.mjs +0 -24
  523. package/esm2022/form-field/form-field-control.mjs +0 -11
  524. package/esm2022/form-field/form-field-errors.mjs +0 -20
  525. package/esm2022/form-field/form-field.mjs +0 -620
  526. package/esm2022/form-field/form-field_public_index.mjs +0 -5
  527. package/esm2022/form-field/index.mjs +0 -9
  528. package/esm2022/form-field/module.mjs +0 -51
  529. package/esm2022/form-field/public-api.mjs +0 -18
  530. package/esm2022/form-field/testing/control/form-field-control-harness.mjs +0 -15
  531. package/esm2022/form-field/testing/control/index.mjs +0 -9
  532. package/esm2022/form-field/testing/error-harness.mjs +0 -29
  533. package/esm2022/form-field/testing/form-field-harness-filters.mjs +0 -9
  534. package/esm2022/form-field/testing/form-field-harness.mjs +0 -179
  535. package/esm2022/form-field/testing/index.mjs +0 -9
  536. package/esm2022/form-field/testing/public-api.mjs +0 -15
  537. package/esm2022/grid-list/grid-list-base.mjs +0 -14
  538. package/esm2022/grid-list/grid-list-module.mjs +0 -59
  539. package/esm2022/grid-list/grid-list.mjs +0 -146
  540. package/esm2022/grid-list/grid-list_public_index.mjs +0 -5
  541. package/esm2022/grid-list/grid-tile.mjs +0 -128
  542. package/esm2022/grid-list/index.mjs +0 -9
  543. package/esm2022/grid-list/public-api.mjs +0 -14
  544. package/esm2022/grid-list/testing/grid-list-harness-filters.mjs +0 -9
  545. package/esm2022/grid-list/testing/grid-list-harness.mjs +0 -76
  546. package/esm2022/grid-list/testing/grid-tile-harness.mjs +0 -71
  547. package/esm2022/grid-list/testing/index.mjs +0 -9
  548. package/esm2022/grid-list/testing/public-api.mjs +0 -11
  549. package/esm2022/grid-list/tile-coordinator.mjs +0 -145
  550. package/esm2022/grid-list/tile-styler.mjs +0 -231
  551. package/esm2022/icon/fake-svgs.mjs +0 -62
  552. package/esm2022/icon/icon-module.mjs +0 -24
  553. package/esm2022/icon/icon-registry.mjs +0 -592
  554. package/esm2022/icon/icon.mjs +0 -379
  555. package/esm2022/icon/icon_public_index.mjs +0 -5
  556. package/esm2022/icon/index.mjs +0 -9
  557. package/esm2022/icon/public-api.mjs +0 -11
  558. package/esm2022/icon/testing/fake-icon-registry.mjs +0 -92
  559. package/esm2022/icon/testing/icon-harness-filters.mjs +0 -14
  560. package/esm2022/icon/testing/icon-harness.mjs +0 -60
  561. package/esm2022/icon/testing/index.mjs +0 -9
  562. package/esm2022/icon/testing/public-api.mjs +0 -11
  563. package/esm2022/icon/testing/testing_public_index.mjs +0 -5
  564. package/esm2022/icon/trusted-types.mjs +0 -43
  565. package/esm2022/index.mjs +0 -14
  566. package/esm2022/input/index.mjs +0 -9
  567. package/esm2022/input/input-errors.mjs +0 -12
  568. package/esm2022/input/input-value-accessor.mjs +0 -16
  569. package/esm2022/input/input.mjs +0 -524
  570. package/esm2022/input/input_public_index.mjs +0 -5
  571. package/esm2022/input/module.mjs +0 -26
  572. package/esm2022/input/public-api.mjs +0 -14
  573. package/esm2022/input/testing/index.mjs +0 -9
  574. package/esm2022/input/testing/input-harness-filters.mjs +0 -9
  575. package/esm2022/input/testing/input-harness.mjs +0 -119
  576. package/esm2022/input/testing/native-option-harness.mjs +0 -42
  577. package/esm2022/input/testing/native-select-harness-filters.mjs +0 -9
  578. package/esm2022/input/testing/native-select-harness.mjs +0 -79
  579. package/esm2022/input/testing/public-api.mjs +0 -13
  580. package/esm2022/list/action-list.mjs +0 -31
  581. package/esm2022/list/index.mjs +0 -9
  582. package/esm2022/list/list-base.mjs +0 -284
  583. package/esm2022/list/list-item-sections.mjs +0 -144
  584. package/esm2022/list/list-module.mjs +0 -97
  585. package/esm2022/list/list-option-types.mjs +0 -16
  586. package/esm2022/list/list-option.mjs +0 -295
  587. package/esm2022/list/list.mjs +0 -103
  588. package/esm2022/list/list_public_index.mjs +0 -5
  589. package/esm2022/list/nav-list.mjs +0 -37
  590. package/esm2022/list/public-api.mjs +0 -18
  591. package/esm2022/list/selection-list.mjs +0 -391
  592. package/esm2022/list/subheader.mjs +0 -28
  593. package/esm2022/list/testing/action-list-harness.mjs +0 -59
  594. package/esm2022/list/testing/index.mjs +0 -9
  595. package/esm2022/list/testing/list-harness-base.mjs +0 -95
  596. package/esm2022/list/testing/list-harness-filters.mjs +0 -9
  597. package/esm2022/list/testing/list-harness.mjs +0 -41
  598. package/esm2022/list/testing/list-item-harness-base.mjs +0 -162
  599. package/esm2022/list/testing/nav-list-harness.mjs +0 -69
  600. package/esm2022/list/testing/public-api.mjs +0 -14
  601. package/esm2022/list/testing/selection-list-harness.mjs +0 -122
  602. package/esm2022/list/tokens.mjs +0 -11
  603. package/esm2022/menu/index.mjs +0 -9
  604. package/esm2022/menu/menu-animations.mjs +0 -61
  605. package/esm2022/menu/menu-content.mjs +0 -87
  606. package/esm2022/menu/menu-errors.mjs +0 -35
  607. package/esm2022/menu/menu-item.mjs +0 -148
  608. package/esm2022/menu/menu-panel.mjs +0 -14
  609. package/esm2022/menu/menu-positions.mjs +0 -9
  610. package/esm2022/menu/menu-trigger.mjs +0 -542
  611. package/esm2022/menu/menu.mjs +0 -405
  612. package/esm2022/menu/menu_public_index.mjs +0 -5
  613. package/esm2022/menu/module.mjs +0 -63
  614. package/esm2022/menu/public-api.mjs +0 -16
  615. package/esm2022/menu/testing/index.mjs +0 -9
  616. package/esm2022/menu/testing/menu-harness-filters.mjs +0 -9
  617. package/esm2022/menu/testing/menu-harness.mjs +0 -166
  618. package/esm2022/menu/testing/public-api.mjs +0 -10
  619. package/esm2022/paginator/index.mjs +0 -9
  620. package/esm2022/paginator/module.mjs +0 -28
  621. package/esm2022/paginator/paginator-intl.mjs +0 -62
  622. package/esm2022/paginator/paginator.mjs +0 -266
  623. package/esm2022/paginator/paginator_public_index.mjs +0 -5
  624. package/esm2022/paginator/public-api.mjs +0 -11
  625. package/esm2022/paginator/testing/index.mjs +0 -9
  626. package/esm2022/paginator/testing/paginator-harness-filters.mjs +0 -9
  627. package/esm2022/paginator/testing/paginator-harness.mjs +0 -98
  628. package/esm2022/paginator/testing/public-api.mjs +0 -10
  629. package/esm2022/progress-bar/index.mjs +0 -9
  630. package/esm2022/progress-bar/module.mjs +0 -24
  631. package/esm2022/progress-bar/progress-bar.mjs +0 -181
  632. package/esm2022/progress-bar/progress-bar_public_index.mjs +0 -5
  633. package/esm2022/progress-bar/public-api.mjs +0 -10
  634. package/esm2022/progress-bar/testing/index.mjs +0 -9
  635. package/esm2022/progress-bar/testing/progress-bar-harness-filters.mjs +0 -9
  636. package/esm2022/progress-bar/testing/progress-bar-harness.mjs +0 -33
  637. package/esm2022/progress-bar/testing/public-api.mjs +0 -10
  638. package/esm2022/progress-bar/testing/testing_public_index.mjs +0 -5
  639. package/esm2022/progress-spinner/index.mjs +0 -9
  640. package/esm2022/progress-spinner/module.mjs +0 -25
  641. package/esm2022/progress-spinner/progress-spinner.mjs +0 -166
  642. package/esm2022/progress-spinner/progress-spinner_public_index.mjs +0 -5
  643. package/esm2022/progress-spinner/public-api.mjs +0 -10
  644. package/esm2022/progress-spinner/testing/index.mjs +0 -9
  645. package/esm2022/progress-spinner/testing/progress-spinner-harness-filters.mjs +0 -9
  646. package/esm2022/progress-spinner/testing/progress-spinner-harness.mjs +0 -35
  647. package/esm2022/progress-spinner/testing/public-api.mjs +0 -10
  648. package/esm2022/progress-spinner/testing/testing_public_index.mjs +0 -5
  649. package/esm2022/radio/index.mjs +0 -9
  650. package/esm2022/radio/module.mjs +0 -25
  651. package/esm2022/radio/public-api.mjs +0 -10
  652. package/esm2022/radio/radio.mjs +0 -680
  653. package/esm2022/radio/radio_public_index.mjs +0 -5
  654. package/esm2022/radio/testing/index.mjs +0 -9
  655. package/esm2022/radio/testing/public-api.mjs +0 -10
  656. package/esm2022/radio/testing/radio-harness-filters.mjs +0 -9
  657. package/esm2022/radio/testing/radio-harness.mjs +0 -228
  658. package/esm2022/select/index.mjs +0 -9
  659. package/esm2022/select/module.mjs +0 -59
  660. package/esm2022/select/public-api.mjs +0 -15
  661. package/esm2022/select/select-animations.mjs +0 -38
  662. package/esm2022/select/select-errors.mjs +0 -35
  663. package/esm2022/select/select.mjs +0 -1160
  664. package/esm2022/select/select_public_index.mjs +0 -5
  665. package/esm2022/select/testing/index.mjs +0 -9
  666. package/esm2022/select/testing/public-api.mjs +0 -10
  667. package/esm2022/select/testing/select-harness-filters.mjs +0 -9
  668. package/esm2022/select/testing/select-harness.mjs +0 -129
  669. package/esm2022/sidenav/drawer-animations.mjs +0 -33
  670. package/esm2022/sidenav/drawer.mjs +0 -863
  671. package/esm2022/sidenav/index.mjs +0 -9
  672. package/esm2022/sidenav/public-api.mjs +0 -12
  673. package/esm2022/sidenav/sidenav-module.mjs +0 -60
  674. package/esm2022/sidenav/sidenav.mjs +0 -148
  675. package/esm2022/sidenav/sidenav_public_index.mjs +0 -5
  676. package/esm2022/sidenav/testing/drawer-container-harness.mjs +0 -36
  677. package/esm2022/sidenav/testing/drawer-content-harness.mjs +0 -23
  678. package/esm2022/sidenav/testing/drawer-harness-filters.mjs +0 -9
  679. package/esm2022/sidenav/testing/drawer-harness.mjs +0 -49
  680. package/esm2022/sidenav/testing/index.mjs +0 -9
  681. package/esm2022/sidenav/testing/public-api.mjs +0 -15
  682. package/esm2022/sidenav/testing/sidenav-container-harness.mjs +0 -36
  683. package/esm2022/sidenav/testing/sidenav-content-harness.mjs +0 -23
  684. package/esm2022/sidenav/testing/sidenav-harness.mjs +0 -28
  685. package/esm2022/slide-toggle/index.mjs +0 -9
  686. package/esm2022/slide-toggle/module.mjs +0 -41
  687. package/esm2022/slide-toggle/public-api.mjs +0 -12
  688. package/esm2022/slide-toggle/slide-toggle-config.mjs +0 -14
  689. package/esm2022/slide-toggle/slide-toggle-required-validator.mjs +0 -44
  690. package/esm2022/slide-toggle/slide-toggle.mjs +0 -273
  691. package/esm2022/slide-toggle/slide-toggle_public_index.mjs +0 -5
  692. package/esm2022/slide-toggle/testing/index.mjs +0 -9
  693. package/esm2022/slide-toggle/testing/public-api.mjs +0 -10
  694. package/esm2022/slide-toggle/testing/slide-toggle-harness-filters.mjs +0 -9
  695. package/esm2022/slide-toggle/testing/slide-toggle-harness.mjs +0 -110
  696. package/esm2022/slider/index.mjs +0 -9
  697. package/esm2022/slider/module.mjs +0 -39
  698. package/esm2022/slider/public-api.mjs +0 -13
  699. package/esm2022/slider/slider-input.mjs +0 -701
  700. package/esm2022/slider/slider-interface.mjs +0 -56
  701. package/esm2022/slider/slider-thumb.mjs +0 -231
  702. package/esm2022/slider/slider.mjs +0 -746
  703. package/esm2022/slider/slider_public_index.mjs +0 -5
  704. package/esm2022/slider/testing/index.mjs +0 -9
  705. package/esm2022/slider/testing/public-api.mjs +0 -11
  706. package/esm2022/slider/testing/slider-harness-filters.mjs +0 -7
  707. package/esm2022/slider/testing/slider-harness.mjs +0 -67
  708. package/esm2022/slider/testing/slider-thumb-harness.mjs +0 -95
  709. package/esm2022/snack-bar/index.mjs +0 -9
  710. package/esm2022/snack-bar/module.mjs +0 -47
  711. package/esm2022/snack-bar/public-api.mjs +0 -16
  712. package/esm2022/snack-bar/simple-snack-bar.mjs +0 -40
  713. package/esm2022/snack-bar/snack-bar-animations.mjs +0 -30
  714. package/esm2022/snack-bar/snack-bar-config.mjs +0 -33
  715. package/esm2022/snack-bar/snack-bar-container.mjs +0 -277
  716. package/esm2022/snack-bar/snack-bar-content.mjs +0 -55
  717. package/esm2022/snack-bar/snack-bar-ref.mjs +0 -89
  718. package/esm2022/snack-bar/snack-bar.mjs +0 -267
  719. package/esm2022/snack-bar/snack-bar_public_index.mjs +0 -5
  720. package/esm2022/snack-bar/testing/index.mjs +0 -9
  721. package/esm2022/snack-bar/testing/public-api.mjs +0 -10
  722. package/esm2022/snack-bar/testing/snack-bar-harness-filters.mjs +0 -9
  723. package/esm2022/snack-bar/testing/snack-bar-harness.mjs +0 -101
  724. package/esm2022/sort/index.mjs +0 -9
  725. package/esm2022/sort/public-api.mjs +0 -14
  726. package/esm2022/sort/sort-animations.mjs +0 -69
  727. package/esm2022/sort/sort-direction.mjs +0 -9
  728. package/esm2022/sort/sort-errors.mjs +0 -24
  729. package/esm2022/sort/sort-header-intl.mjs +0 -41
  730. package/esm2022/sort/sort-header.mjs +0 -317
  731. package/esm2022/sort/sort-module.mjs +0 -27
  732. package/esm2022/sort/sort.mjs +0 -155
  733. package/esm2022/sort/sort_public_index.mjs +0 -5
  734. package/esm2022/sort/testing/index.mjs +0 -9
  735. package/esm2022/sort/testing/public-api.mjs +0 -11
  736. package/esm2022/sort/testing/sort-harness-filters.mjs +0 -2
  737. package/esm2022/sort/testing/sort-harness.mjs +0 -36
  738. package/esm2022/sort/testing/sort-header-harness.mjs +0 -56
  739. package/esm2022/stepper/index.mjs +0 -9
  740. package/esm2022/stepper/public-api.mjs +0 -17
  741. package/esm2022/stepper/step-content.mjs +0 -27
  742. package/esm2022/stepper/step-header.mjs +0 -105
  743. package/esm2022/stepper/step-label.mjs +0 -22
  744. package/esm2022/stepper/stepper-animations.mjs +0 -47
  745. package/esm2022/stepper/stepper-button.mjs +0 -43
  746. package/esm2022/stepper/stepper-icon.mjs +0 -30
  747. package/esm2022/stepper/stepper-intl.mjs +0 -43
  748. package/esm2022/stepper/stepper-module.mjs +0 -88
  749. package/esm2022/stepper/stepper.mjs +0 -205
  750. package/esm2022/stepper/stepper_public_index.mjs +0 -5
  751. package/esm2022/stepper/testing/index.mjs +0 -9
  752. package/esm2022/stepper/testing/public-api.mjs +0 -12
  753. package/esm2022/stepper/testing/step-harness-filters.mjs +0 -7
  754. package/esm2022/stepper/testing/step-harness.mjs +0 -90
  755. package/esm2022/stepper/testing/stepper-button-harnesses.mjs +0 -48
  756. package/esm2022/stepper/testing/stepper-harness.mjs +0 -51
  757. package/esm2022/table/cell.mjs +0 -147
  758. package/esm2022/table/index.mjs +0 -9
  759. package/esm2022/table/module.mjs +0 -93
  760. package/esm2022/table/public-api.mjs +0 -14
  761. package/esm2022/table/row.mjs +0 -163
  762. package/esm2022/table/table-data-source.mjs +0 -317
  763. package/esm2022/table/table.mjs +0 -122
  764. package/esm2022/table/table_public_index.mjs +0 -5
  765. package/esm2022/table/testing/cell-harness.mjs +0 -77
  766. package/esm2022/table/testing/index.mjs +0 -9
  767. package/esm2022/table/testing/public-api.mjs +0 -12
  768. package/esm2022/table/testing/row-harness.mjs +0 -84
  769. package/esm2022/table/testing/table-harness-filters.mjs +0 -2
  770. package/esm2022/table/testing/table-harness.mjs +0 -86
  771. package/esm2022/table/text-column.mjs +0 -60
  772. package/esm2022/tabs/index.mjs +0 -9
  773. package/esm2022/tabs/ink-bar.mjs +0 -149
  774. package/esm2022/tabs/module.mjs +0 -60
  775. package/esm2022/tabs/paginated-tab-header.mjs +0 -539
  776. package/esm2022/tabs/public-api.mjs +0 -21
  777. package/esm2022/tabs/tab-body.mjs +0 -199
  778. package/esm2022/tabs/tab-config.mjs +0 -11
  779. package/esm2022/tabs/tab-content.mjs +0 -32
  780. package/esm2022/tabs/tab-group.mjs +0 -469
  781. package/esm2022/tabs/tab-header.mjs +0 -86
  782. package/esm2022/tabs/tab-label-wrapper.mjs +0 -49
  783. package/esm2022/tabs/tab-label.mjs +0 -44
  784. package/esm2022/tabs/tab-nav-bar/tab-nav-bar.mjs +0 -388
  785. package/esm2022/tabs/tab.mjs +0 -128
  786. package/esm2022/tabs/tabs-animations.mjs +0 -45
  787. package/esm2022/tabs/tabs_public_index.mjs +0 -5
  788. package/esm2022/tabs/testing/index.mjs +0 -9
  789. package/esm2022/tabs/testing/public-api.mjs +0 -13
  790. package/esm2022/tabs/testing/tab-group-harness.mjs +0 -56
  791. package/esm2022/tabs/testing/tab-harness-filters.mjs +0 -2
  792. package/esm2022/tabs/testing/tab-harness.mjs +0 -66
  793. package/esm2022/tabs/testing/tab-link-harness.mjs +0 -40
  794. package/esm2022/tabs/testing/tab-nav-bar-harness.mjs +0 -66
  795. package/esm2022/tabs/testing/tab-nav-panel-harness.mjs +0 -27
  796. package/esm2022/toolbar/index.mjs +0 -9
  797. package/esm2022/toolbar/public-api.mjs +0 -10
  798. package/esm2022/toolbar/testing/index.mjs +0 -9
  799. package/esm2022/toolbar/testing/public-api.mjs +0 -10
  800. package/esm2022/toolbar/testing/toolbar-harness-filters.mjs +0 -9
  801. package/esm2022/toolbar/testing/toolbar-harness.mjs +0 -44
  802. package/esm2022/toolbar/toolbar-module.mjs +0 -24
  803. package/esm2022/toolbar/toolbar.mjs +0 -84
  804. package/esm2022/toolbar/toolbar_public_index.mjs +0 -5
  805. package/esm2022/tooltip/index.mjs +0 -9
  806. package/esm2022/tooltip/module.mjs +0 -29
  807. package/esm2022/tooltip/public-api.mjs +0 -11
  808. package/esm2022/tooltip/testing/index.mjs +0 -9
  809. package/esm2022/tooltip/testing/public-api.mjs +0 -10
  810. package/esm2022/tooltip/testing/tooltip-harness-filters.mjs +0 -9
  811. package/esm2022/tooltip/testing/tooltip-harness.mjs +0 -66
  812. package/esm2022/tooltip/tooltip-animations.mjs +0 -24
  813. package/esm2022/tooltip/tooltip.mjs +0 -920
  814. package/esm2022/tooltip/tooltip_public_index.mjs +0 -5
  815. package/esm2022/tree/data-source/flat-data-source.mjs +0 -156
  816. package/esm2022/tree/data-source/nested-data-source.mjs +0 -38
  817. package/esm2022/tree/index.mjs +0 -9
  818. package/esm2022/tree/node.mjs +0 -220
  819. package/esm2022/tree/outlet.mjs +0 -46
  820. package/esm2022/tree/padding.mjs +0 -46
  821. package/esm2022/tree/public-api.mjs +0 -16
  822. package/esm2022/tree/testing/index.mjs +0 -9
  823. package/esm2022/tree/testing/node-harness.mjs +0 -73
  824. package/esm2022/tree/testing/public-api.mjs +0 -11
  825. package/esm2022/tree/testing/tree-harness-filters.mjs +0 -9
  826. package/esm2022/tree/testing/tree-harness.mjs +0 -123
  827. package/esm2022/tree/toggle.mjs +0 -27
  828. package/esm2022/tree/tree-module.mjs +0 -50
  829. package/esm2022/tree/tree.mjs +0 -34
  830. package/esm2022/tree/tree_public_index.mjs +0 -5
  831. package/schematics/ng-generate/m3-theme/index_bundled.js.map +0 -7
@@ -1 +1 @@
1
- {"version":3,"file":"snack-bar.mjs","sources":["../../../../../../src/material/snack-bar/snack-bar-ref.ts","../../../../../../src/material/snack-bar/snack-bar-config.ts","../../../../../../src/material/snack-bar/snack-bar-content.ts","../../../../../../src/material/snack-bar/simple-snack-bar.ts","../../../../../../src/material/snack-bar/simple-snack-bar.html","../../../../../../src/material/snack-bar/snack-bar-animations.ts","../../../../../../src/material/snack-bar/snack-bar-container.ts","../../../../../../src/material/snack-bar/snack-bar-container.html","../../../../../../src/material/snack-bar/snack-bar.ts","../../../../../../src/material/snack-bar/module.ts","../../../../../../src/material/snack-bar/snack-bar_public_index.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {OverlayRef} from '@angular/cdk/overlay';\nimport {Observable, Subject} from 'rxjs';\nimport {MatSnackBarContainer} from './snack-bar-container';\n\n/** Event that is emitted when a snack bar is dismissed. */\nexport interface MatSnackBarDismiss {\n /** Whether the snack bar was dismissed using the action button. */\n dismissedByAction: boolean;\n}\n\n/** Maximum amount of milliseconds that can be passed into setTimeout. */\nconst MAX_TIMEOUT = Math.pow(2, 31) - 1;\n\n/**\n * Reference to a snack bar dispatched from the snack bar service.\n */\nexport class MatSnackBarRef<T> {\n /** The instance of the component making up the content of the snack bar. */\n instance: T;\n\n /**\n * The instance of the component making up the content of the snack bar.\n * @docs-private\n */\n containerInstance: MatSnackBarContainer;\n\n /** Subject for notifying the user that the snack bar has been dismissed. */\n private readonly _afterDismissed = new Subject<MatSnackBarDismiss>();\n\n /** Subject for notifying the user that the snack bar has opened and appeared. */\n private readonly _afterOpened = new Subject<void>();\n\n /** Subject for notifying the user that the snack bar action was called. */\n private readonly _onAction = new Subject<void>();\n\n /**\n * Timeout ID for the duration setTimeout call. Used to clear the timeout if the snackbar is\n * dismissed before the duration passes.\n */\n private _durationTimeoutId: number;\n\n /** Whether the snack bar was dismissed using the action button. */\n private _dismissedByAction = false;\n\n constructor(\n containerInstance: MatSnackBarContainer,\n private _overlayRef: OverlayRef,\n ) {\n this.containerInstance = containerInstance;\n containerInstance._onExit.subscribe(() => this._finishDismiss());\n }\n\n /** Dismisses the snack bar. */\n dismiss(): void {\n if (!this._afterDismissed.closed) {\n this.containerInstance.exit();\n }\n clearTimeout(this._durationTimeoutId);\n }\n\n /** Marks the snackbar action clicked. */\n dismissWithAction(): void {\n if (!this._onAction.closed) {\n this._dismissedByAction = true;\n this._onAction.next();\n this._onAction.complete();\n this.dismiss();\n }\n clearTimeout(this._durationTimeoutId);\n }\n\n /**\n * Marks the snackbar action clicked.\n * @deprecated Use `dismissWithAction` instead.\n * @breaking-change 8.0.0\n */\n closeWithAction(): void {\n this.dismissWithAction();\n }\n\n /** Dismisses the snack bar after some duration */\n _dismissAfter(duration: number): void {\n // Note that we need to cap the duration to the maximum value for setTimeout, because\n // it'll revert to 1 if somebody passes in something greater (e.g. `Infinity`). See #17234.\n this._durationTimeoutId = setTimeout(() => this.dismiss(), Math.min(duration, MAX_TIMEOUT));\n }\n\n /** Marks the snackbar as opened */\n _open(): void {\n if (!this._afterOpened.closed) {\n this._afterOpened.next();\n this._afterOpened.complete();\n }\n }\n\n /** Cleans up the DOM after closing. */\n private _finishDismiss(): void {\n this._overlayRef.dispose();\n\n if (!this._onAction.closed) {\n this._onAction.complete();\n }\n\n this._afterDismissed.next({dismissedByAction: this._dismissedByAction});\n this._afterDismissed.complete();\n this._dismissedByAction = false;\n }\n\n /** Gets an observable that is notified when the snack bar is finished closing. */\n afterDismissed(): Observable<MatSnackBarDismiss> {\n return this._afterDismissed;\n }\n\n /** Gets an observable that is notified when the snack bar has opened and appeared. */\n afterOpened(): Observable<void> {\n return this.containerInstance._onEnter;\n }\n\n /** Gets an observable that is notified when the snack bar action is called. */\n onAction(): Observable<void> {\n return this._onAction;\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {ViewContainerRef, InjectionToken} from '@angular/core';\nimport {AriaLivePoliteness} from '@angular/cdk/a11y';\nimport {Direction} from '@angular/cdk/bidi';\n\n/** Injection token that can be used to access the data that was passed in to a snack bar. */\nexport const MAT_SNACK_BAR_DATA = new InjectionToken<any>('MatSnackBarData');\n\n/** Possible values for horizontalPosition on MatSnackBarConfig. */\nexport type MatSnackBarHorizontalPosition = 'start' | 'center' | 'end' | 'left' | 'right';\n\n/** Possible values for verticalPosition on MatSnackBarConfig. */\nexport type MatSnackBarVerticalPosition = 'top' | 'bottom';\n\n/**\n * Configuration used when opening a snack-bar.\n */\nexport class MatSnackBarConfig<D = any> {\n /** The politeness level for the MatAriaLiveAnnouncer announcement. */\n politeness?: AriaLivePoliteness = 'assertive';\n\n /**\n * Message to be announced by the LiveAnnouncer. When opening a snackbar without a custom\n * component or template, the announcement message will default to the specified message.\n */\n announcementMessage?: string = '';\n\n /**\n * The view container that serves as the parent for the snackbar for the purposes of dependency\n * injection. Note: this does not affect where the snackbar is inserted in the DOM.\n */\n viewContainerRef?: ViewContainerRef;\n\n /** The length of time in milliseconds to wait before automatically dismissing the snack bar. */\n duration?: number = 0;\n\n /** Extra CSS classes to be added to the snack bar container. */\n panelClass?: string | string[];\n\n /** Text layout direction for the snack bar. */\n direction?: Direction;\n\n /** Data being injected into the child component. */\n data?: D | null = null;\n\n /** The horizontal position to place the snack bar. */\n horizontalPosition?: MatSnackBarHorizontalPosition = 'center';\n\n /** The vertical position to place the snack bar. */\n verticalPosition?: MatSnackBarVerticalPosition = 'bottom';\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Directive} from '@angular/core';\n\n/** Directive that should be applied to the text element to be rendered in the snack bar. */\n@Directive({\n selector: `[matSnackBarLabel]`,\n standalone: true,\n host: {\n 'class': 'mat-mdc-snack-bar-label mdc-snackbar__label',\n },\n})\nexport class MatSnackBarLabel {}\n\n/** Directive that should be applied to the element containing the snack bar's action buttons. */\n@Directive({\n selector: `[matSnackBarActions]`,\n standalone: true,\n host: {\n 'class': 'mat-mdc-snack-bar-actions mdc-snackbar__actions',\n },\n})\nexport class MatSnackBarActions {}\n\n/** Directive that should be applied to each of the snack bar's action buttons. */\n@Directive({\n selector: `[matSnackBarAction]`,\n standalone: true,\n host: {\n 'class': 'mat-mdc-snack-bar-action mdc-snackbar__action',\n },\n})\nexport class MatSnackBarAction {}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {ChangeDetectionStrategy, Component, Inject, ViewEncapsulation} from '@angular/core';\nimport {MatButton} from '@angular/material/button';\nimport {MatSnackBarRef} from './snack-bar-ref';\nimport {MAT_SNACK_BAR_DATA} from './snack-bar-config';\nimport {MatSnackBarAction, MatSnackBarActions, MatSnackBarLabel} from './snack-bar-content';\n\n/**\n * Interface for a simple snack bar component that has a message and a single action.\n */\nexport interface TextOnlySnackBar {\n data: {message: string; action: string};\n snackBarRef: MatSnackBarRef<TextOnlySnackBar>;\n action: () => void;\n hasAction: boolean;\n}\n\n@Component({\n selector: 'simple-snack-bar',\n templateUrl: 'simple-snack-bar.html',\n styleUrl: 'simple-snack-bar.css',\n exportAs: 'matSnackBar',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [MatButton, MatSnackBarLabel, MatSnackBarActions, MatSnackBarAction],\n standalone: true,\n host: {\n 'class': 'mat-mdc-simple-snack-bar',\n },\n})\nexport class SimpleSnackBar implements TextOnlySnackBar {\n constructor(\n public snackBarRef: MatSnackBarRef<SimpleSnackBar>,\n @Inject(MAT_SNACK_BAR_DATA) public data: {message: string; action: string},\n ) {}\n\n /** Performs the action on the snack bar. */\n action(): void {\n this.snackBarRef.dismissWithAction();\n }\n\n /** If the action button should be shown. */\n get hasAction(): boolean {\n return !!this.data.action;\n }\n}\n","<div matSnackBarLabel>\n {{data.message}}\n</div>\n\n@if (hasAction) {\n <div matSnackBarActions>\n <button mat-button matSnackBarAction (click)=\"action()\">\n {{data.action}}\n </button>\n </div>\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport {\n animate,\n state,\n style,\n transition,\n trigger,\n AnimationTriggerMetadata,\n} from '@angular/animations';\n\n/**\n * Animations used by the Material snack bar.\n * @docs-private\n */\nexport const matSnackBarAnimations: {\n readonly snackBarState: AnimationTriggerMetadata;\n} = {\n /** Animation that shows and hides a snack bar. */\n snackBarState: trigger('state', [\n state(\n 'void, hidden',\n style({\n transform: 'scale(0.8)',\n opacity: 0,\n }),\n ),\n state(\n 'visible',\n style({\n transform: 'scale(1)',\n opacity: 1,\n }),\n ),\n transition('* => visible', animate('150ms cubic-bezier(0, 0, 0.2, 1)')),\n transition(\n '* => void, * => hidden',\n animate(\n '75ms cubic-bezier(0.4, 0.0, 1, 1)',\n style({\n opacity: 0,\n }),\n ),\n ),\n ]),\n};\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ComponentRef,\n ElementRef,\n EmbeddedViewRef,\n inject,\n NgZone,\n OnDestroy,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport {DOCUMENT} from '@angular/common';\nimport {matSnackBarAnimations} from './snack-bar-animations';\nimport {\n BasePortalOutlet,\n CdkPortalOutlet,\n ComponentPortal,\n DomPortal,\n TemplatePortal,\n} from '@angular/cdk/portal';\nimport {Observable, Subject} from 'rxjs';\nimport {AriaLivePoliteness} from '@angular/cdk/a11y';\nimport {Platform} from '@angular/cdk/platform';\nimport {AnimationEvent} from '@angular/animations';\nimport {MatSnackBarConfig} from './snack-bar-config';\n\nlet uniqueId = 0;\n\n/**\n * Internal component that wraps user-provided snack bar content.\n * @docs-private\n */\n@Component({\n selector: 'mat-snack-bar-container',\n templateUrl: 'snack-bar-container.html',\n styleUrl: 'snack-bar-container.css',\n // In Ivy embedded views will be change detected from their declaration place, rather than\n // where they were stamped out. This means that we can't have the snack bar container be OnPush,\n // because it might cause snack bars that were opened from a template not to be out of date.\n // tslint:disable-next-line:validate-decorators\n changeDetection: ChangeDetectionStrategy.Default,\n encapsulation: ViewEncapsulation.None,\n animations: [matSnackBarAnimations.snackBarState],\n standalone: true,\n imports: [CdkPortalOutlet],\n host: {\n 'class': 'mdc-snackbar mat-mdc-snack-bar-container',\n '[@state]': '_animationState',\n '(@state.done)': 'onAnimationEnd($event)',\n },\n})\nexport class MatSnackBarContainer extends BasePortalOutlet implements OnDestroy {\n private _document = inject(DOCUMENT);\n private _trackedModals = new Set<Element>();\n\n /** The number of milliseconds to wait before announcing the snack bar's content. */\n private readonly _announceDelay: number = 150;\n\n /** The timeout for announcing the snack bar's content. */\n private _announceTimeoutId: number;\n\n /** Whether the component has been destroyed. */\n private _destroyed = false;\n\n /** The portal outlet inside of this container into which the snack bar content will be loaded. */\n @ViewChild(CdkPortalOutlet, {static: true}) _portalOutlet: CdkPortalOutlet;\n\n /** Subject for notifying that the snack bar has announced to screen readers. */\n readonly _onAnnounce: Subject<void> = new Subject();\n\n /** Subject for notifying that the snack bar has exited from view. */\n readonly _onExit: Subject<void> = new Subject();\n\n /** Subject for notifying that the snack bar has finished entering the view. */\n readonly _onEnter: Subject<void> = new Subject();\n\n /** The state of the snack bar animations. */\n _animationState = 'void';\n\n /** aria-live value for the live region. */\n _live: AriaLivePoliteness;\n\n /**\n * Element that will have the `mdc-snackbar__label` class applied if the attached component\n * or template does not have it. This ensures that the appropriate structure, typography, and\n * color is applied to the attached view.\n */\n @ViewChild('label', {static: true}) _label: ElementRef;\n\n /**\n * Role of the live region. This is only for Firefox as there is a known issue where Firefox +\n * JAWS does not read out aria-live message.\n */\n _role?: 'status' | 'alert';\n\n /** Unique ID of the aria-live element. */\n readonly _liveElementId = `mat-snack-bar-container-live-${uniqueId++}`;\n\n constructor(\n private _ngZone: NgZone,\n private _elementRef: ElementRef<HTMLElement>,\n private _changeDetectorRef: ChangeDetectorRef,\n private _platform: Platform,\n /** The snack bar configuration. */\n public snackBarConfig: MatSnackBarConfig,\n ) {\n super();\n\n // Use aria-live rather than a live role like 'alert' or 'status'\n // because NVDA and JAWS have show inconsistent behavior with live roles.\n if (snackBarConfig.politeness === 'assertive' && !snackBarConfig.announcementMessage) {\n this._live = 'assertive';\n } else if (snackBarConfig.politeness === 'off') {\n this._live = 'off';\n } else {\n this._live = 'polite';\n }\n\n // Only set role for Firefox. Set role based on aria-live because setting role=\"alert\" implies\n // aria-live=\"assertive\" which may cause issues if aria-live is set to \"polite\" above.\n if (this._platform.FIREFOX) {\n if (this._live === 'polite') {\n this._role = 'status';\n }\n if (this._live === 'assertive') {\n this._role = 'alert';\n }\n }\n }\n\n /** Attach a component portal as content to this snack bar container. */\n attachComponentPortal<T>(portal: ComponentPortal<T>): ComponentRef<T> {\n this._assertNotAttached();\n const result = this._portalOutlet.attachComponentPortal(portal);\n this._afterPortalAttached();\n return result;\n }\n\n /** Attach a template portal as content to this snack bar container. */\n attachTemplatePortal<C>(portal: TemplatePortal<C>): EmbeddedViewRef<C> {\n this._assertNotAttached();\n const result = this._portalOutlet.attachTemplatePortal(portal);\n this._afterPortalAttached();\n return result;\n }\n\n /**\n * Attaches a DOM portal to the snack bar container.\n * @deprecated To be turned into a method.\n * @breaking-change 10.0.0\n */\n override attachDomPortal = (portal: DomPortal) => {\n this._assertNotAttached();\n const result = this._portalOutlet.attachDomPortal(portal);\n this._afterPortalAttached();\n return result;\n };\n\n /** Handle end of animations, updating the state of the snackbar. */\n onAnimationEnd(event: AnimationEvent) {\n const {fromState, toState} = event;\n\n if ((toState === 'void' && fromState !== 'void') || toState === 'hidden') {\n this._completeExit();\n }\n\n if (toState === 'visible') {\n // Note: we shouldn't use `this` inside the zone callback,\n // because it can cause a memory leak.\n const onEnter = this._onEnter;\n\n this._ngZone.run(() => {\n onEnter.next();\n onEnter.complete();\n });\n }\n }\n\n /** Begin animation of snack bar entrance into view. */\n enter(): void {\n if (!this._destroyed) {\n this._animationState = 'visible';\n // _animationState lives in host bindings and `detectChanges` does not refresh host bindings\n // so we have to call `markForCheck` to ensure the host view is refreshed eventually.\n this._changeDetectorRef.markForCheck();\n this._changeDetectorRef.detectChanges();\n this._screenReaderAnnounce();\n }\n }\n\n /** Begin animation of the snack bar exiting from view. */\n exit(): Observable<void> {\n // It's common for snack bars to be opened by random outside calls like HTTP requests or\n // errors. Run inside the NgZone to ensure that it functions correctly.\n this._ngZone.run(() => {\n // Note: this one transitions to `hidden`, rather than `void`, in order to handle the case\n // where multiple snack bars are opened in quick succession (e.g. two consecutive calls to\n // `MatSnackBar.open`).\n this._animationState = 'hidden';\n this._changeDetectorRef.markForCheck();\n\n // Mark this element with an 'exit' attribute to indicate that the snackbar has\n // been dismissed and will soon be removed from the DOM. This is used by the snackbar\n // test harness.\n this._elementRef.nativeElement.setAttribute('mat-exit', '');\n\n // If the snack bar hasn't been announced by the time it exits it wouldn't have been open\n // long enough to visually read it either, so clear the timeout for announcing.\n clearTimeout(this._announceTimeoutId);\n });\n\n return this._onExit;\n }\n\n /** Makes sure the exit callbacks have been invoked when the element is destroyed. */\n ngOnDestroy() {\n this._destroyed = true;\n this._clearFromModals();\n this._completeExit();\n }\n\n /**\n * Removes the element in a microtask. Helps prevent errors where we end up\n * removing an element which is in the middle of an animation.\n */\n private _completeExit() {\n queueMicrotask(() => {\n this._onExit.next();\n this._onExit.complete();\n });\n }\n\n /**\n * Called after the portal contents have been attached. Can be\n * used to modify the DOM once it's guaranteed to be in place.\n */\n private _afterPortalAttached() {\n const element: HTMLElement = this._elementRef.nativeElement;\n const panelClasses = this.snackBarConfig.panelClass;\n\n if (panelClasses) {\n if (Array.isArray(panelClasses)) {\n // Note that we can't use a spread here, because IE doesn't support multiple arguments.\n panelClasses.forEach(cssClass => element.classList.add(cssClass));\n } else {\n element.classList.add(panelClasses);\n }\n }\n\n this._exposeToModals();\n\n // Check to see if the attached component or template uses the MDC template structure,\n // specifically the MDC label. If not, the container should apply the MDC label class to this\n // component's label container, which will apply MDC's label styles to the attached view.\n const label = this._label.nativeElement;\n const labelClass = 'mdc-snackbar__label';\n label.classList.toggle(labelClass, !label.querySelector(`.${labelClass}`));\n }\n\n /**\n * Some browsers won't expose the accessibility node of the live element if there is an\n * `aria-modal` and the live element is outside of it. This method works around the issue by\n * pointing the `aria-owns` of all modals to the live element.\n */\n private _exposeToModals() {\n // TODO(http://github.com/angular/components/issues/26853): consider de-duplicating this with the\n // `LiveAnnouncer` and any other usages.\n //\n // Note that the selector here is limited to CDK overlays at the moment in order to reduce the\n // section of the DOM we need to look through. This should cover all the cases we support, but\n // the selector can be expanded if it turns out to be too narrow.\n const id = this._liveElementId;\n const modals = this._document.querySelectorAll(\n 'body > .cdk-overlay-container [aria-modal=\"true\"]',\n );\n\n for (let i = 0; i < modals.length; i++) {\n const modal = modals[i];\n const ariaOwns = modal.getAttribute('aria-owns');\n this._trackedModals.add(modal);\n\n if (!ariaOwns) {\n modal.setAttribute('aria-owns', id);\n } else if (ariaOwns.indexOf(id) === -1) {\n modal.setAttribute('aria-owns', ariaOwns + ' ' + id);\n }\n }\n }\n\n /** Clears the references to the live element from any modals it was added to. */\n private _clearFromModals() {\n this._trackedModals.forEach(modal => {\n const ariaOwns = modal.getAttribute('aria-owns');\n\n if (ariaOwns) {\n const newValue = ariaOwns.replace(this._liveElementId, '').trim();\n\n if (newValue.length > 0) {\n modal.setAttribute('aria-owns', newValue);\n } else {\n modal.removeAttribute('aria-owns');\n }\n }\n });\n this._trackedModals.clear();\n }\n\n /** Asserts that no content is already attached to the container. */\n private _assertNotAttached() {\n if (this._portalOutlet.hasAttached() && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error('Attempting to attach snack bar content after content is already attached');\n }\n }\n\n /**\n * Starts a timeout to move the snack bar content to the live region so screen readers will\n * announce it.\n */\n private _screenReaderAnnounce() {\n if (!this._announceTimeoutId) {\n this._ngZone.runOutsideAngular(() => {\n this._announceTimeoutId = setTimeout(() => {\n const inertElement = this._elementRef.nativeElement.querySelector('[aria-hidden]');\n const liveElement = this._elementRef.nativeElement.querySelector('[aria-live]');\n\n if (inertElement && liveElement) {\n // If an element in the snack bar content is focused before being moved\n // track it and restore focus after moving to the live region.\n let focusedElement: HTMLElement | null = null;\n if (\n this._platform.isBrowser &&\n document.activeElement instanceof HTMLElement &&\n inertElement.contains(document.activeElement)\n ) {\n focusedElement = document.activeElement;\n }\n\n inertElement.removeAttribute('aria-hidden');\n liveElement.appendChild(inertElement);\n focusedElement?.focus();\n\n this._onAnnounce.next();\n this._onAnnounce.complete();\n }\n }, this._announceDelay);\n });\n }\n }\n}\n","<div class=\"mdc-snackbar__surface mat-mdc-snackbar-surface\">\n <!--\n This outer label wrapper will have the class `mdc-snackbar__label` applied if\n the attached template/component does not contain it.\n -->\n <div class=\"mat-mdc-snack-bar-label\" #label>\n <!-- Initialy holds the snack bar content, will be empty after announcing to screen readers. -->\n <div aria-hidden=\"true\">\n <ng-template cdkPortalOutlet />\n </div>\n\n <!-- Will receive the snack bar content from the non-live div, move will happen a short delay after opening -->\n <div [attr.aria-live]=\"_live\" [attr.role]=\"_role\" [attr.id]=\"_liveElementId\"></div>\n </div>\n</div>\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {LiveAnnouncer} from '@angular/cdk/a11y';\nimport {BreakpointObserver, Breakpoints} from '@angular/cdk/layout';\nimport {ComponentType, Overlay, OverlayConfig, OverlayRef} from '@angular/cdk/overlay';\nimport {\n ComponentRef,\n EmbeddedViewRef,\n Inject,\n Injectable,\n InjectionToken,\n Injector,\n OnDestroy,\n Optional,\n SkipSelf,\n TemplateRef,\n} from '@angular/core';\nimport {SimpleSnackBar, TextOnlySnackBar} from './simple-snack-bar';\nimport {MatSnackBarContainer} from './snack-bar-container';\nimport {MAT_SNACK_BAR_DATA, MatSnackBarConfig} from './snack-bar-config';\nimport {MatSnackBarRef} from './snack-bar-ref';\nimport {ComponentPortal, TemplatePortal} from '@angular/cdk/portal';\nimport {takeUntil} from 'rxjs/operators';\n\n/** @docs-private */\nexport function MAT_SNACK_BAR_DEFAULT_OPTIONS_FACTORY(): MatSnackBarConfig {\n return new MatSnackBarConfig();\n}\n\n/** Injection token that can be used to specify default snack bar. */\nexport const MAT_SNACK_BAR_DEFAULT_OPTIONS = new InjectionToken<MatSnackBarConfig>(\n 'mat-snack-bar-default-options',\n {\n providedIn: 'root',\n factory: MAT_SNACK_BAR_DEFAULT_OPTIONS_FACTORY,\n },\n);\n\n/**\n * Service to dispatch Material Design snack bar messages.\n */\n@Injectable({providedIn: 'root'})\nexport class MatSnackBar implements OnDestroy {\n /**\n * Reference to the current snack bar in the view *at this level* (in the Angular injector tree).\n * If there is a parent snack-bar service, all operations should delegate to that parent\n * via `_openedSnackBarRef`.\n */\n private _snackBarRefAtThisLevel: MatSnackBarRef<any> | null = null;\n\n /** The component that should be rendered as the snack bar's simple component. */\n simpleSnackBarComponent = SimpleSnackBar;\n\n /** The container component that attaches the provided template or component. */\n snackBarContainerComponent = MatSnackBarContainer;\n\n /** The CSS class to apply for handset mode. */\n handsetCssClass = 'mat-mdc-snack-bar-handset';\n\n /** Reference to the currently opened snackbar at *any* level. */\n get _openedSnackBarRef(): MatSnackBarRef<any> | null {\n const parent = this._parentSnackBar;\n return parent ? parent._openedSnackBarRef : this._snackBarRefAtThisLevel;\n }\n\n set _openedSnackBarRef(value: MatSnackBarRef<any> | null) {\n if (this._parentSnackBar) {\n this._parentSnackBar._openedSnackBarRef = value;\n } else {\n this._snackBarRefAtThisLevel = value;\n }\n }\n\n constructor(\n private _overlay: Overlay,\n private _live: LiveAnnouncer,\n private _injector: Injector,\n private _breakpointObserver: BreakpointObserver,\n @Optional() @SkipSelf() private _parentSnackBar: MatSnackBar,\n @Inject(MAT_SNACK_BAR_DEFAULT_OPTIONS) private _defaultConfig: MatSnackBarConfig,\n ) {}\n\n /**\n * Creates and dispatches a snack bar with a custom component for the content, removing any\n * currently opened snack bars.\n *\n * @param component Component to be instantiated.\n * @param config Extra configuration for the snack bar.\n */\n openFromComponent<T, D = any>(\n component: ComponentType<T>,\n config?: MatSnackBarConfig<D>,\n ): MatSnackBarRef<T> {\n return this._attach(component, config) as MatSnackBarRef<T>;\n }\n\n /**\n * Creates and dispatches a snack bar with a custom template for the content, removing any\n * currently opened snack bars.\n *\n * @param template Template to be instantiated.\n * @param config Extra configuration for the snack bar.\n */\n openFromTemplate(\n template: TemplateRef<any>,\n config?: MatSnackBarConfig,\n ): MatSnackBarRef<EmbeddedViewRef<any>> {\n return this._attach(template, config);\n }\n\n /**\n * Opens a snackbar with a message and an optional action.\n * @param message The message to show in the snackbar.\n * @param action The label for the snackbar action.\n * @param config Additional configuration options for the snackbar.\n */\n open(\n message: string,\n action: string = '',\n config?: MatSnackBarConfig,\n ): MatSnackBarRef<TextOnlySnackBar> {\n const _config = {...this._defaultConfig, ...config};\n\n // Since the user doesn't have access to the component, we can\n // override the data to pass in our own message and action.\n _config.data = {message, action};\n\n // Since the snack bar has `role=\"alert\"`, we don't\n // want to announce the same message twice.\n if (_config.announcementMessage === message) {\n _config.announcementMessage = undefined;\n }\n\n return this.openFromComponent(this.simpleSnackBarComponent, _config);\n }\n\n /**\n * Dismisses the currently-visible snack bar.\n */\n dismiss(): void {\n if (this._openedSnackBarRef) {\n this._openedSnackBarRef.dismiss();\n }\n }\n\n ngOnDestroy() {\n // Only dismiss the snack bar at the current level on destroy.\n if (this._snackBarRefAtThisLevel) {\n this._snackBarRefAtThisLevel.dismiss();\n }\n }\n\n /**\n * Attaches the snack bar container component to the overlay.\n */\n private _attachSnackBarContainer(\n overlayRef: OverlayRef,\n config: MatSnackBarConfig,\n ): MatSnackBarContainer {\n const userInjector = config && config.viewContainerRef && config.viewContainerRef.injector;\n const injector = Injector.create({\n parent: userInjector || this._injector,\n providers: [{provide: MatSnackBarConfig, useValue: config}],\n });\n\n const containerPortal = new ComponentPortal(\n this.snackBarContainerComponent,\n config.viewContainerRef,\n injector,\n );\n const containerRef: ComponentRef<MatSnackBarContainer> = overlayRef.attach(containerPortal);\n containerRef.instance.snackBarConfig = config;\n return containerRef.instance;\n }\n\n /**\n * Places a new component or a template as the content of the snack bar container.\n */\n private _attach<T>(\n content: ComponentType<T> | TemplateRef<T>,\n userConfig?: MatSnackBarConfig,\n ): MatSnackBarRef<T | EmbeddedViewRef<any>> {\n const config = {...new MatSnackBarConfig(), ...this._defaultConfig, ...userConfig};\n const overlayRef = this._createOverlay(config);\n const container = this._attachSnackBarContainer(overlayRef, config);\n const snackBarRef = new MatSnackBarRef<T | EmbeddedViewRef<any>>(container, overlayRef);\n\n if (content instanceof TemplateRef) {\n const portal = new TemplatePortal(content, null!, {\n $implicit: config.data,\n snackBarRef,\n } as any);\n\n snackBarRef.instance = container.attachTemplatePortal(portal);\n } else {\n const injector = this._createInjector(config, snackBarRef);\n const portal = new ComponentPortal(content, undefined, injector);\n const contentRef = container.attachComponentPortal<T>(portal);\n\n // We can't pass this via the injector, because the injector is created earlier.\n snackBarRef.instance = contentRef.instance;\n }\n\n // Subscribe to the breakpoint observer and attach the mat-snack-bar-handset class as\n // appropriate. This class is applied to the overlay element because the overlay must expand to\n // fill the width of the screen for full width snackbars.\n this._breakpointObserver\n .observe(Breakpoints.HandsetPortrait)\n .pipe(takeUntil(overlayRef.detachments()))\n .subscribe(state => {\n overlayRef.overlayElement.classList.toggle(this.handsetCssClass, state.matches);\n });\n\n if (config.announcementMessage) {\n // Wait until the snack bar contents have been announced then deliver this message.\n container._onAnnounce.subscribe(() => {\n this._live.announce(config.announcementMessage!, config.politeness);\n });\n }\n\n this._animateSnackBar(snackBarRef, config);\n this._openedSnackBarRef = snackBarRef;\n return this._openedSnackBarRef;\n }\n\n /** Animates the old snack bar out and the new one in. */\n private _animateSnackBar(snackBarRef: MatSnackBarRef<any>, config: MatSnackBarConfig) {\n // When the snackbar is dismissed, clear the reference to it.\n snackBarRef.afterDismissed().subscribe(() => {\n // Clear the snackbar ref if it hasn't already been replaced by a newer snackbar.\n if (this._openedSnackBarRef == snackBarRef) {\n this._openedSnackBarRef = null;\n }\n\n if (config.announcementMessage) {\n this._live.clear();\n }\n });\n\n if (this._openedSnackBarRef) {\n // If a snack bar is already in view, dismiss it and enter the\n // new snack bar after exit animation is complete.\n this._openedSnackBarRef.afterDismissed().subscribe(() => {\n snackBarRef.containerInstance.enter();\n });\n this._openedSnackBarRef.dismiss();\n } else {\n // If no snack bar is in view, enter the new snack bar.\n snackBarRef.containerInstance.enter();\n }\n\n // If a dismiss timeout is provided, set up dismiss based on after the snackbar is opened.\n if (config.duration && config.duration > 0) {\n snackBarRef.afterOpened().subscribe(() => snackBarRef._dismissAfter(config.duration!));\n }\n }\n\n /**\n * Creates a new overlay and places it in the correct location.\n * @param config The user-specified snack bar config.\n */\n private _createOverlay(config: MatSnackBarConfig): OverlayRef {\n const overlayConfig = new OverlayConfig();\n overlayConfig.direction = config.direction;\n\n let positionStrategy = this._overlay.position().global();\n // Set horizontal position.\n const isRtl = config.direction === 'rtl';\n const isLeft =\n config.horizontalPosition === 'left' ||\n (config.horizontalPosition === 'start' && !isRtl) ||\n (config.horizontalPosition === 'end' && isRtl);\n const isRight = !isLeft && config.horizontalPosition !== 'center';\n if (isLeft) {\n positionStrategy.left('0');\n } else if (isRight) {\n positionStrategy.right('0');\n } else {\n positionStrategy.centerHorizontally();\n }\n // Set horizontal position.\n if (config.verticalPosition === 'top') {\n positionStrategy.top('0');\n } else {\n positionStrategy.bottom('0');\n }\n\n overlayConfig.positionStrategy = positionStrategy;\n return this._overlay.create(overlayConfig);\n }\n\n /**\n * Creates an injector to be used inside of a snack bar component.\n * @param config Config that was used to create the snack bar.\n * @param snackBarRef Reference to the snack bar.\n */\n private _createInjector<T>(config: MatSnackBarConfig, snackBarRef: MatSnackBarRef<T>): Injector {\n const userInjector = config && config.viewContainerRef && config.viewContainerRef.injector;\n\n return Injector.create({\n parent: userInjector || this._injector,\n providers: [\n {provide: MatSnackBarRef, useValue: snackBarRef},\n {provide: MAT_SNACK_BAR_DATA, useValue: config.data},\n ],\n });\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {OverlayModule} from '@angular/cdk/overlay';\nimport {PortalModule} from '@angular/cdk/portal';\nimport {NgModule} from '@angular/core';\nimport {MatButtonModule} from '@angular/material/button';\nimport {MatCommonModule} from '@angular/material/core';\n\nimport {SimpleSnackBar} from './simple-snack-bar';\nimport {MatSnackBarContainer} from './snack-bar-container';\nimport {MatSnackBarAction, MatSnackBarActions, MatSnackBarLabel} from './snack-bar-content';\nimport {MatSnackBar} from './snack-bar';\n\nconst DIRECTIVES = [MatSnackBarContainer, MatSnackBarLabel, MatSnackBarActions, MatSnackBarAction];\n\n@NgModule({\n imports: [\n OverlayModule,\n PortalModule,\n MatButtonModule,\n MatCommonModule,\n SimpleSnackBar,\n ...DIRECTIVES,\n ],\n exports: [MatCommonModule, ...DIRECTIVES],\n providers: [MatSnackBar],\n})\nexport class MatSnackBarModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2.MatSnackBarConfig"],"mappings":"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"}
1
+ {"version":3,"file":"snack-bar.mjs","sources":["../../../../../../src/material/snack-bar/snack-bar-ref.ts","../../../../../../src/material/snack-bar/snack-bar-config.ts","../../../../../../src/material/snack-bar/snack-bar-content.ts","../../../../../../src/material/snack-bar/simple-snack-bar.ts","../../../../../../src/material/snack-bar/simple-snack-bar.html","../../../../../../src/material/snack-bar/snack-bar-animations.ts","../../../../../../src/material/snack-bar/snack-bar-container.ts","../../../../../../src/material/snack-bar/snack-bar-container.html","../../../../../../src/material/snack-bar/snack-bar.ts","../../../../../../src/material/snack-bar/module.ts","../../../../../../src/material/snack-bar/snack-bar_public_index.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {OverlayRef} from '@angular/cdk/overlay';\nimport {Observable, Subject} from 'rxjs';\nimport {MatSnackBarContainer} from './snack-bar-container';\n\n/** Event that is emitted when a snack bar is dismissed. */\nexport interface MatSnackBarDismiss {\n /** Whether the snack bar was dismissed using the action button. */\n dismissedByAction: boolean;\n}\n\n/** Maximum amount of milliseconds that can be passed into setTimeout. */\nconst MAX_TIMEOUT = Math.pow(2, 31) - 1;\n\n/**\n * Reference to a snack bar dispatched from the snack bar service.\n */\nexport class MatSnackBarRef<T> {\n /** The instance of the component making up the content of the snack bar. */\n instance: T;\n\n /**\n * The instance of the component making up the content of the snack bar.\n * @docs-private\n */\n containerInstance: MatSnackBarContainer;\n\n /** Subject for notifying the user that the snack bar has been dismissed. */\n private readonly _afterDismissed = new Subject<MatSnackBarDismiss>();\n\n /** Subject for notifying the user that the snack bar has opened and appeared. */\n private readonly _afterOpened = new Subject<void>();\n\n /** Subject for notifying the user that the snack bar action was called. */\n private readonly _onAction = new Subject<void>();\n\n /**\n * Timeout ID for the duration setTimeout call. Used to clear the timeout if the snackbar is\n * dismissed before the duration passes.\n */\n private _durationTimeoutId: number;\n\n /** Whether the snack bar was dismissed using the action button. */\n private _dismissedByAction = false;\n\n constructor(\n containerInstance: MatSnackBarContainer,\n private _overlayRef: OverlayRef,\n ) {\n this.containerInstance = containerInstance;\n containerInstance._onExit.subscribe(() => this._finishDismiss());\n }\n\n /** Dismisses the snack bar. */\n dismiss(): void {\n if (!this._afterDismissed.closed) {\n this.containerInstance.exit();\n }\n clearTimeout(this._durationTimeoutId);\n }\n\n /** Marks the snackbar action clicked. */\n dismissWithAction(): void {\n if (!this._onAction.closed) {\n this._dismissedByAction = true;\n this._onAction.next();\n this._onAction.complete();\n this.dismiss();\n }\n clearTimeout(this._durationTimeoutId);\n }\n\n /**\n * Marks the snackbar action clicked.\n * @deprecated Use `dismissWithAction` instead.\n * @breaking-change 8.0.0\n */\n closeWithAction(): void {\n this.dismissWithAction();\n }\n\n /** Dismisses the snack bar after some duration */\n _dismissAfter(duration: number): void {\n // Note that we need to cap the duration to the maximum value for setTimeout, because\n // it'll revert to 1 if somebody passes in something greater (e.g. `Infinity`). See #17234.\n this._durationTimeoutId = setTimeout(() => this.dismiss(), Math.min(duration, MAX_TIMEOUT));\n }\n\n /** Marks the snackbar as opened */\n _open(): void {\n if (!this._afterOpened.closed) {\n this._afterOpened.next();\n this._afterOpened.complete();\n }\n }\n\n /** Cleans up the DOM after closing. */\n private _finishDismiss(): void {\n this._overlayRef.dispose();\n\n if (!this._onAction.closed) {\n this._onAction.complete();\n }\n\n this._afterDismissed.next({dismissedByAction: this._dismissedByAction});\n this._afterDismissed.complete();\n this._dismissedByAction = false;\n }\n\n /** Gets an observable that is notified when the snack bar is finished closing. */\n afterDismissed(): Observable<MatSnackBarDismiss> {\n return this._afterDismissed;\n }\n\n /** Gets an observable that is notified when the snack bar has opened and appeared. */\n afterOpened(): Observable<void> {\n return this.containerInstance._onEnter;\n }\n\n /** Gets an observable that is notified when the snack bar action is called. */\n onAction(): Observable<void> {\n return this._onAction;\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {ViewContainerRef, InjectionToken} from '@angular/core';\nimport {AriaLivePoliteness} from '@angular/cdk/a11y';\nimport {Direction} from '@angular/cdk/bidi';\n\n/** Injection token that can be used to access the data that was passed in to a snack bar. */\nexport const MAT_SNACK_BAR_DATA = new InjectionToken<any>('MatSnackBarData');\n\n/** Possible values for horizontalPosition on MatSnackBarConfig. */\nexport type MatSnackBarHorizontalPosition = 'start' | 'center' | 'end' | 'left' | 'right';\n\n/** Possible values for verticalPosition on MatSnackBarConfig. */\nexport type MatSnackBarVerticalPosition = 'top' | 'bottom';\n\n/**\n * Configuration used when opening a snack-bar.\n */\nexport class MatSnackBarConfig<D = any> {\n /** The politeness level for the MatAriaLiveAnnouncer announcement. */\n politeness?: AriaLivePoliteness = 'assertive';\n\n /**\n * Message to be announced by the LiveAnnouncer. When opening a snackbar without a custom\n * component or template, the announcement message will default to the specified message.\n */\n announcementMessage?: string = '';\n\n /**\n * The view container that serves as the parent for the snackbar for the purposes of dependency\n * injection. Note: this does not affect where the snackbar is inserted in the DOM.\n */\n viewContainerRef?: ViewContainerRef;\n\n /** The length of time in milliseconds to wait before automatically dismissing the snack bar. */\n duration?: number = 0;\n\n /** Extra CSS classes to be added to the snack bar container. */\n panelClass?: string | string[];\n\n /** Text layout direction for the snack bar. */\n direction?: Direction;\n\n /** Data being injected into the child component. */\n data?: D | null = null;\n\n /** The horizontal position to place the snack bar. */\n horizontalPosition?: MatSnackBarHorizontalPosition = 'center';\n\n /** The vertical position to place the snack bar. */\n verticalPosition?: MatSnackBarVerticalPosition = 'bottom';\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {Directive} from '@angular/core';\n\n/** Directive that should be applied to the text element to be rendered in the snack bar. */\n@Directive({\n selector: `[matSnackBarLabel]`,\n host: {\n 'class': 'mat-mdc-snack-bar-label mdc-snackbar__label',\n },\n})\nexport class MatSnackBarLabel {}\n\n/** Directive that should be applied to the element containing the snack bar's action buttons. */\n@Directive({\n selector: `[matSnackBarActions]`,\n host: {\n 'class': 'mat-mdc-snack-bar-actions mdc-snackbar__actions',\n },\n})\nexport class MatSnackBarActions {}\n\n/** Directive that should be applied to each of the snack bar's action buttons. */\n@Directive({\n selector: `[matSnackBarAction]`,\n host: {\n 'class': 'mat-mdc-snack-bar-action mdc-snackbar__action',\n },\n})\nexport class MatSnackBarAction {}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {ChangeDetectionStrategy, Component, ViewEncapsulation, inject} from '@angular/core';\nimport {MatButton} from '@angular/material/button';\nimport {MatSnackBarRef} from './snack-bar-ref';\nimport {MAT_SNACK_BAR_DATA} from './snack-bar-config';\nimport {MatSnackBarAction, MatSnackBarActions, MatSnackBarLabel} from './snack-bar-content';\n\n/**\n * Interface for a simple snack bar component that has a message and a single action.\n */\nexport interface TextOnlySnackBar {\n data: {message: string; action: string};\n snackBarRef: MatSnackBarRef<TextOnlySnackBar>;\n action: () => void;\n hasAction: boolean;\n}\n\n@Component({\n selector: 'simple-snack-bar',\n templateUrl: 'simple-snack-bar.html',\n styleUrl: 'simple-snack-bar.css',\n exportAs: 'matSnackBar',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [MatButton, MatSnackBarLabel, MatSnackBarActions, MatSnackBarAction],\n host: {\n 'class': 'mat-mdc-simple-snack-bar',\n },\n})\nexport class SimpleSnackBar implements TextOnlySnackBar {\n snackBarRef = inject<MatSnackBarRef<SimpleSnackBar>>(MatSnackBarRef);\n data = inject(MAT_SNACK_BAR_DATA);\n\n constructor(...args: unknown[]);\n constructor() {}\n\n /** Performs the action on the snack bar. */\n action(): void {\n this.snackBarRef.dismissWithAction();\n }\n\n /** If the action button should be shown. */\n get hasAction(): boolean {\n return !!this.data.action;\n }\n}\n","<div matSnackBarLabel>\n {{data.message}}\n</div>\n\n@if (hasAction) {\n <div matSnackBarActions>\n <button mat-button matSnackBarAction (click)=\"action()\">\n {{data.action}}\n </button>\n </div>\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\nimport {\n animate,\n state,\n style,\n transition,\n trigger,\n AnimationTriggerMetadata,\n} from '@angular/animations';\n\n/**\n * Animations used by the Material snack bar.\n * @docs-private\n */\nexport const matSnackBarAnimations: {\n readonly snackBarState: AnimationTriggerMetadata;\n} = {\n /** Animation that shows and hides a snack bar. */\n snackBarState: trigger('state', [\n state(\n 'void, hidden',\n style({\n transform: 'scale(0.8)',\n opacity: 0,\n }),\n ),\n state(\n 'visible',\n style({\n transform: 'scale(1)',\n opacity: 1,\n }),\n ),\n transition('* => visible', animate('150ms cubic-bezier(0, 0, 0.2, 1)')),\n transition(\n '* => void, * => hidden',\n animate(\n '75ms cubic-bezier(0.4, 0.0, 1, 1)',\n style({\n opacity: 0,\n }),\n ),\n ),\n ]),\n};\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ComponentRef,\n ElementRef,\n EmbeddedViewRef,\n inject,\n NgZone,\n OnDestroy,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport {DOCUMENT} from '@angular/common';\nimport {matSnackBarAnimations} from './snack-bar-animations';\nimport {\n BasePortalOutlet,\n CdkPortalOutlet,\n ComponentPortal,\n DomPortal,\n TemplatePortal,\n} from '@angular/cdk/portal';\nimport {Observable, Subject} from 'rxjs';\nimport {AriaLivePoliteness} from '@angular/cdk/a11y';\nimport {Platform} from '@angular/cdk/platform';\nimport {AnimationEvent} from '@angular/animations';\nimport {MatSnackBarConfig} from './snack-bar-config';\n\nlet uniqueId = 0;\n\n/**\n * Internal component that wraps user-provided snack bar content.\n * @docs-private\n */\n@Component({\n selector: 'mat-snack-bar-container',\n templateUrl: 'snack-bar-container.html',\n styleUrl: 'snack-bar-container.css',\n // In Ivy embedded views will be change detected from their declaration place, rather than\n // where they were stamped out. This means that we can't have the snack bar container be OnPush,\n // because it might cause snack bars that were opened from a template not to be out of date.\n // tslint:disable-next-line:validate-decorators\n changeDetection: ChangeDetectionStrategy.Default,\n encapsulation: ViewEncapsulation.None,\n animations: [matSnackBarAnimations.snackBarState],\n imports: [CdkPortalOutlet],\n host: {\n 'class': 'mdc-snackbar mat-mdc-snack-bar-container',\n '[@state]': '_animationState',\n '(@state.done)': 'onAnimationEnd($event)',\n },\n})\nexport class MatSnackBarContainer extends BasePortalOutlet implements OnDestroy {\n private _ngZone = inject(NgZone);\n private _elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private _changeDetectorRef = inject(ChangeDetectorRef);\n private _platform = inject(Platform);\n snackBarConfig = inject(MatSnackBarConfig);\n\n private _document = inject(DOCUMENT);\n private _trackedModals = new Set<Element>();\n\n /** The number of milliseconds to wait before announcing the snack bar's content. */\n private readonly _announceDelay: number = 150;\n\n /** The timeout for announcing the snack bar's content. */\n private _announceTimeoutId: number;\n\n /** Whether the component has been destroyed. */\n private _destroyed = false;\n\n /** The portal outlet inside of this container into which the snack bar content will be loaded. */\n @ViewChild(CdkPortalOutlet, {static: true}) _portalOutlet: CdkPortalOutlet;\n\n /** Subject for notifying that the snack bar has announced to screen readers. */\n readonly _onAnnounce: Subject<void> = new Subject();\n\n /** Subject for notifying that the snack bar has exited from view. */\n readonly _onExit: Subject<void> = new Subject();\n\n /** Subject for notifying that the snack bar has finished entering the view. */\n readonly _onEnter: Subject<void> = new Subject();\n\n /** The state of the snack bar animations. */\n _animationState = 'void';\n\n /** aria-live value for the live region. */\n _live: AriaLivePoliteness;\n\n /**\n * Element that will have the `mdc-snackbar__label` class applied if the attached component\n * or template does not have it. This ensures that the appropriate structure, typography, and\n * color is applied to the attached view.\n */\n @ViewChild('label', {static: true}) _label: ElementRef;\n\n /**\n * Role of the live region. This is only for Firefox as there is a known issue where Firefox +\n * JAWS does not read out aria-live message.\n */\n _role?: 'status' | 'alert';\n\n /** Unique ID of the aria-live element. */\n readonly _liveElementId = `mat-snack-bar-container-live-${uniqueId++}`;\n\n constructor(...args: unknown[]);\n\n constructor() {\n super();\n const config = this.snackBarConfig;\n\n // Use aria-live rather than a live role like 'alert' or 'status'\n // because NVDA and JAWS have show inconsistent behavior with live roles.\n if (config.politeness === 'assertive' && !config.announcementMessage) {\n this._live = 'assertive';\n } else if (config.politeness === 'off') {\n this._live = 'off';\n } else {\n this._live = 'polite';\n }\n\n // Only set role for Firefox. Set role based on aria-live because setting role=\"alert\" implies\n // aria-live=\"assertive\" which may cause issues if aria-live is set to \"polite\" above.\n if (this._platform.FIREFOX) {\n if (this._live === 'polite') {\n this._role = 'status';\n }\n if (this._live === 'assertive') {\n this._role = 'alert';\n }\n }\n }\n\n /** Attach a component portal as content to this snack bar container. */\n attachComponentPortal<T>(portal: ComponentPortal<T>): ComponentRef<T> {\n this._assertNotAttached();\n const result = this._portalOutlet.attachComponentPortal(portal);\n this._afterPortalAttached();\n return result;\n }\n\n /** Attach a template portal as content to this snack bar container. */\n attachTemplatePortal<C>(portal: TemplatePortal<C>): EmbeddedViewRef<C> {\n this._assertNotAttached();\n const result = this._portalOutlet.attachTemplatePortal(portal);\n this._afterPortalAttached();\n return result;\n }\n\n /**\n * Attaches a DOM portal to the snack bar container.\n * @deprecated To be turned into a method.\n * @breaking-change 10.0.0\n */\n override attachDomPortal = (portal: DomPortal) => {\n this._assertNotAttached();\n const result = this._portalOutlet.attachDomPortal(portal);\n this._afterPortalAttached();\n return result;\n };\n\n /** Handle end of animations, updating the state of the snackbar. */\n onAnimationEnd(event: AnimationEvent) {\n const {fromState, toState} = event;\n\n if ((toState === 'void' && fromState !== 'void') || toState === 'hidden') {\n this._completeExit();\n }\n\n if (toState === 'visible') {\n // Note: we shouldn't use `this` inside the zone callback,\n // because it can cause a memory leak.\n const onEnter = this._onEnter;\n\n this._ngZone.run(() => {\n onEnter.next();\n onEnter.complete();\n });\n }\n }\n\n /** Begin animation of snack bar entrance into view. */\n enter(): void {\n if (!this._destroyed) {\n this._animationState = 'visible';\n // _animationState lives in host bindings and `detectChanges` does not refresh host bindings\n // so we have to call `markForCheck` to ensure the host view is refreshed eventually.\n this._changeDetectorRef.markForCheck();\n this._changeDetectorRef.detectChanges();\n this._screenReaderAnnounce();\n }\n }\n\n /** Begin animation of the snack bar exiting from view. */\n exit(): Observable<void> {\n // It's common for snack bars to be opened by random outside calls like HTTP requests or\n // errors. Run inside the NgZone to ensure that it functions correctly.\n this._ngZone.run(() => {\n // Note: this one transitions to `hidden`, rather than `void`, in order to handle the case\n // where multiple snack bars are opened in quick succession (e.g. two consecutive calls to\n // `MatSnackBar.open`).\n this._animationState = 'hidden';\n this._changeDetectorRef.markForCheck();\n\n // Mark this element with an 'exit' attribute to indicate that the snackbar has\n // been dismissed and will soon be removed from the DOM. This is used by the snackbar\n // test harness.\n this._elementRef.nativeElement.setAttribute('mat-exit', '');\n\n // If the snack bar hasn't been announced by the time it exits it wouldn't have been open\n // long enough to visually read it either, so clear the timeout for announcing.\n clearTimeout(this._announceTimeoutId);\n });\n\n return this._onExit;\n }\n\n /** Makes sure the exit callbacks have been invoked when the element is destroyed. */\n ngOnDestroy() {\n this._destroyed = true;\n this._clearFromModals();\n this._completeExit();\n }\n\n /**\n * Removes the element in a microtask. Helps prevent errors where we end up\n * removing an element which is in the middle of an animation.\n */\n private _completeExit() {\n queueMicrotask(() => {\n this._onExit.next();\n this._onExit.complete();\n });\n }\n\n /**\n * Called after the portal contents have been attached. Can be\n * used to modify the DOM once it's guaranteed to be in place.\n */\n private _afterPortalAttached() {\n const element: HTMLElement = this._elementRef.nativeElement;\n const panelClasses = this.snackBarConfig.panelClass;\n\n if (panelClasses) {\n if (Array.isArray(panelClasses)) {\n // Note that we can't use a spread here, because IE doesn't support multiple arguments.\n panelClasses.forEach(cssClass => element.classList.add(cssClass));\n } else {\n element.classList.add(panelClasses);\n }\n }\n\n this._exposeToModals();\n\n // Check to see if the attached component or template uses the MDC template structure,\n // specifically the MDC label. If not, the container should apply the MDC label class to this\n // component's label container, which will apply MDC's label styles to the attached view.\n const label = this._label.nativeElement;\n const labelClass = 'mdc-snackbar__label';\n label.classList.toggle(labelClass, !label.querySelector(`.${labelClass}`));\n }\n\n /**\n * Some browsers won't expose the accessibility node of the live element if there is an\n * `aria-modal` and the live element is outside of it. This method works around the issue by\n * pointing the `aria-owns` of all modals to the live element.\n */\n private _exposeToModals() {\n // TODO(http://github.com/angular/components/issues/26853): consider de-duplicating this with the\n // `LiveAnnouncer` and any other usages.\n //\n // Note that the selector here is limited to CDK overlays at the moment in order to reduce the\n // section of the DOM we need to look through. This should cover all the cases we support, but\n // the selector can be expanded if it turns out to be too narrow.\n const id = this._liveElementId;\n const modals = this._document.querySelectorAll(\n 'body > .cdk-overlay-container [aria-modal=\"true\"]',\n );\n\n for (let i = 0; i < modals.length; i++) {\n const modal = modals[i];\n const ariaOwns = modal.getAttribute('aria-owns');\n this._trackedModals.add(modal);\n\n if (!ariaOwns) {\n modal.setAttribute('aria-owns', id);\n } else if (ariaOwns.indexOf(id) === -1) {\n modal.setAttribute('aria-owns', ariaOwns + ' ' + id);\n }\n }\n }\n\n /** Clears the references to the live element from any modals it was added to. */\n private _clearFromModals() {\n this._trackedModals.forEach(modal => {\n const ariaOwns = modal.getAttribute('aria-owns');\n\n if (ariaOwns) {\n const newValue = ariaOwns.replace(this._liveElementId, '').trim();\n\n if (newValue.length > 0) {\n modal.setAttribute('aria-owns', newValue);\n } else {\n modal.removeAttribute('aria-owns');\n }\n }\n });\n this._trackedModals.clear();\n }\n\n /** Asserts that no content is already attached to the container. */\n private _assertNotAttached() {\n if (this._portalOutlet.hasAttached() && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error('Attempting to attach snack bar content after content is already attached');\n }\n }\n\n /**\n * Starts a timeout to move the snack bar content to the live region so screen readers will\n * announce it.\n */\n private _screenReaderAnnounce() {\n if (!this._announceTimeoutId) {\n this._ngZone.runOutsideAngular(() => {\n this._announceTimeoutId = setTimeout(() => {\n const inertElement = this._elementRef.nativeElement.querySelector('[aria-hidden]');\n const liveElement = this._elementRef.nativeElement.querySelector('[aria-live]');\n\n if (inertElement && liveElement) {\n // If an element in the snack bar content is focused before being moved\n // track it and restore focus after moving to the live region.\n let focusedElement: HTMLElement | null = null;\n if (\n this._platform.isBrowser &&\n document.activeElement instanceof HTMLElement &&\n inertElement.contains(document.activeElement)\n ) {\n focusedElement = document.activeElement;\n }\n\n inertElement.removeAttribute('aria-hidden');\n liveElement.appendChild(inertElement);\n focusedElement?.focus();\n\n this._onAnnounce.next();\n this._onAnnounce.complete();\n }\n }, this._announceDelay);\n });\n }\n }\n}\n","<div class=\"mdc-snackbar__surface mat-mdc-snackbar-surface\">\n <!--\n This outer label wrapper will have the class `mdc-snackbar__label` applied if\n the attached template/component does not contain it.\n -->\n <div class=\"mat-mdc-snack-bar-label\" #label>\n <!-- Initialy holds the snack bar content, will be empty after announcing to screen readers. -->\n <div aria-hidden=\"true\">\n <ng-template cdkPortalOutlet />\n </div>\n\n <!-- Will receive the snack bar content from the non-live div, move will happen a short delay after opening -->\n <div [attr.aria-live]=\"_live\" [attr.role]=\"_role\" [attr.id]=\"_liveElementId\"></div>\n </div>\n</div>\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {LiveAnnouncer} from '@angular/cdk/a11y';\nimport {BreakpointObserver, Breakpoints} from '@angular/cdk/layout';\nimport {ComponentType, Overlay, OverlayConfig, OverlayRef} from '@angular/cdk/overlay';\nimport {\n ComponentRef,\n EmbeddedViewRef,\n Injectable,\n InjectionToken,\n Injector,\n OnDestroy,\n TemplateRef,\n inject,\n} from '@angular/core';\nimport {SimpleSnackBar, TextOnlySnackBar} from './simple-snack-bar';\nimport {MatSnackBarContainer} from './snack-bar-container';\nimport {MAT_SNACK_BAR_DATA, MatSnackBarConfig} from './snack-bar-config';\nimport {MatSnackBarRef} from './snack-bar-ref';\nimport {ComponentPortal, TemplatePortal} from '@angular/cdk/portal';\nimport {takeUntil} from 'rxjs/operators';\n\n/** @docs-private */\nexport function MAT_SNACK_BAR_DEFAULT_OPTIONS_FACTORY(): MatSnackBarConfig {\n return new MatSnackBarConfig();\n}\n\n/** Injection token that can be used to specify default snack bar. */\nexport const MAT_SNACK_BAR_DEFAULT_OPTIONS = new InjectionToken<MatSnackBarConfig>(\n 'mat-snack-bar-default-options',\n {\n providedIn: 'root',\n factory: MAT_SNACK_BAR_DEFAULT_OPTIONS_FACTORY,\n },\n);\n\n/**\n * Service to dispatch Material Design snack bar messages.\n */\n@Injectable({providedIn: 'root'})\nexport class MatSnackBar implements OnDestroy {\n private _overlay = inject(Overlay);\n private _live = inject(LiveAnnouncer);\n private _injector = inject(Injector);\n private _breakpointObserver = inject(BreakpointObserver);\n private _parentSnackBar = inject(MatSnackBar, {optional: true, skipSelf: true});\n private _defaultConfig = inject<MatSnackBarConfig>(MAT_SNACK_BAR_DEFAULT_OPTIONS);\n\n /**\n * Reference to the current snack bar in the view *at this level* (in the Angular injector tree).\n * If there is a parent snack-bar service, all operations should delegate to that parent\n * via `_openedSnackBarRef`.\n */\n private _snackBarRefAtThisLevel: MatSnackBarRef<any> | null = null;\n\n /** The component that should be rendered as the snack bar's simple component. */\n simpleSnackBarComponent = SimpleSnackBar;\n\n /** The container component that attaches the provided template or component. */\n snackBarContainerComponent = MatSnackBarContainer;\n\n /** The CSS class to apply for handset mode. */\n handsetCssClass = 'mat-mdc-snack-bar-handset';\n\n /** Reference to the currently opened snackbar at *any* level. */\n get _openedSnackBarRef(): MatSnackBarRef<any> | null {\n const parent = this._parentSnackBar;\n return parent ? parent._openedSnackBarRef : this._snackBarRefAtThisLevel;\n }\n\n set _openedSnackBarRef(value: MatSnackBarRef<any> | null) {\n if (this._parentSnackBar) {\n this._parentSnackBar._openedSnackBarRef = value;\n } else {\n this._snackBarRefAtThisLevel = value;\n }\n }\n\n constructor(...args: unknown[]);\n constructor() {}\n\n /**\n * Creates and dispatches a snack bar with a custom component for the content, removing any\n * currently opened snack bars.\n *\n * @param component Component to be instantiated.\n * @param config Extra configuration for the snack bar.\n */\n openFromComponent<T, D = any>(\n component: ComponentType<T>,\n config?: MatSnackBarConfig<D>,\n ): MatSnackBarRef<T> {\n return this._attach(component, config) as MatSnackBarRef<T>;\n }\n\n /**\n * Creates and dispatches a snack bar with a custom template for the content, removing any\n * currently opened snack bars.\n *\n * @param template Template to be instantiated.\n * @param config Extra configuration for the snack bar.\n */\n openFromTemplate(\n template: TemplateRef<any>,\n config?: MatSnackBarConfig,\n ): MatSnackBarRef<EmbeddedViewRef<any>> {\n return this._attach(template, config);\n }\n\n /**\n * Opens a snackbar with a message and an optional action.\n * @param message The message to show in the snackbar.\n * @param action The label for the snackbar action.\n * @param config Additional configuration options for the snackbar.\n */\n open(\n message: string,\n action: string = '',\n config?: MatSnackBarConfig,\n ): MatSnackBarRef<TextOnlySnackBar> {\n const _config = {...this._defaultConfig, ...config};\n\n // Since the user doesn't have access to the component, we can\n // override the data to pass in our own message and action.\n _config.data = {message, action};\n\n // Since the snack bar has `role=\"alert\"`, we don't\n // want to announce the same message twice.\n if (_config.announcementMessage === message) {\n _config.announcementMessage = undefined;\n }\n\n return this.openFromComponent(this.simpleSnackBarComponent, _config);\n }\n\n /**\n * Dismisses the currently-visible snack bar.\n */\n dismiss(): void {\n if (this._openedSnackBarRef) {\n this._openedSnackBarRef.dismiss();\n }\n }\n\n ngOnDestroy() {\n // Only dismiss the snack bar at the current level on destroy.\n if (this._snackBarRefAtThisLevel) {\n this._snackBarRefAtThisLevel.dismiss();\n }\n }\n\n /**\n * Attaches the snack bar container component to the overlay.\n */\n private _attachSnackBarContainer(\n overlayRef: OverlayRef,\n config: MatSnackBarConfig,\n ): MatSnackBarContainer {\n const userInjector = config && config.viewContainerRef && config.viewContainerRef.injector;\n const injector = Injector.create({\n parent: userInjector || this._injector,\n providers: [{provide: MatSnackBarConfig, useValue: config}],\n });\n\n const containerPortal = new ComponentPortal(\n this.snackBarContainerComponent,\n config.viewContainerRef,\n injector,\n );\n const containerRef: ComponentRef<MatSnackBarContainer> = overlayRef.attach(containerPortal);\n containerRef.instance.snackBarConfig = config;\n return containerRef.instance;\n }\n\n /**\n * Places a new component or a template as the content of the snack bar container.\n */\n private _attach<T>(\n content: ComponentType<T> | TemplateRef<T>,\n userConfig?: MatSnackBarConfig,\n ): MatSnackBarRef<T | EmbeddedViewRef<any>> {\n const config = {...new MatSnackBarConfig(), ...this._defaultConfig, ...userConfig};\n const overlayRef = this._createOverlay(config);\n const container = this._attachSnackBarContainer(overlayRef, config);\n const snackBarRef = new MatSnackBarRef<T | EmbeddedViewRef<any>>(container, overlayRef);\n\n if (content instanceof TemplateRef) {\n const portal = new TemplatePortal(content, null!, {\n $implicit: config.data,\n snackBarRef,\n } as any);\n\n snackBarRef.instance = container.attachTemplatePortal(portal);\n } else {\n const injector = this._createInjector(config, snackBarRef);\n const portal = new ComponentPortal(content, undefined, injector);\n const contentRef = container.attachComponentPortal<T>(portal);\n\n // We can't pass this via the injector, because the injector is created earlier.\n snackBarRef.instance = contentRef.instance;\n }\n\n // Subscribe to the breakpoint observer and attach the mat-snack-bar-handset class as\n // appropriate. This class is applied to the overlay element because the overlay must expand to\n // fill the width of the screen for full width snackbars.\n this._breakpointObserver\n .observe(Breakpoints.HandsetPortrait)\n .pipe(takeUntil(overlayRef.detachments()))\n .subscribe(state => {\n overlayRef.overlayElement.classList.toggle(this.handsetCssClass, state.matches);\n });\n\n if (config.announcementMessage) {\n // Wait until the snack bar contents have been announced then deliver this message.\n container._onAnnounce.subscribe(() => {\n this._live.announce(config.announcementMessage!, config.politeness);\n });\n }\n\n this._animateSnackBar(snackBarRef, config);\n this._openedSnackBarRef = snackBarRef;\n return this._openedSnackBarRef;\n }\n\n /** Animates the old snack bar out and the new one in. */\n private _animateSnackBar(snackBarRef: MatSnackBarRef<any>, config: MatSnackBarConfig) {\n // When the snackbar is dismissed, clear the reference to it.\n snackBarRef.afterDismissed().subscribe(() => {\n // Clear the snackbar ref if it hasn't already been replaced by a newer snackbar.\n if (this._openedSnackBarRef == snackBarRef) {\n this._openedSnackBarRef = null;\n }\n\n if (config.announcementMessage) {\n this._live.clear();\n }\n });\n\n if (this._openedSnackBarRef) {\n // If a snack bar is already in view, dismiss it and enter the\n // new snack bar after exit animation is complete.\n this._openedSnackBarRef.afterDismissed().subscribe(() => {\n snackBarRef.containerInstance.enter();\n });\n this._openedSnackBarRef.dismiss();\n } else {\n // If no snack bar is in view, enter the new snack bar.\n snackBarRef.containerInstance.enter();\n }\n\n // If a dismiss timeout is provided, set up dismiss based on after the snackbar is opened.\n if (config.duration && config.duration > 0) {\n snackBarRef.afterOpened().subscribe(() => snackBarRef._dismissAfter(config.duration!));\n }\n }\n\n /**\n * Creates a new overlay and places it in the correct location.\n * @param config The user-specified snack bar config.\n */\n private _createOverlay(config: MatSnackBarConfig): OverlayRef {\n const overlayConfig = new OverlayConfig();\n overlayConfig.direction = config.direction;\n\n let positionStrategy = this._overlay.position().global();\n // Set horizontal position.\n const isRtl = config.direction === 'rtl';\n const isLeft =\n config.horizontalPosition === 'left' ||\n (config.horizontalPosition === 'start' && !isRtl) ||\n (config.horizontalPosition === 'end' && isRtl);\n const isRight = !isLeft && config.horizontalPosition !== 'center';\n if (isLeft) {\n positionStrategy.left('0');\n } else if (isRight) {\n positionStrategy.right('0');\n } else {\n positionStrategy.centerHorizontally();\n }\n // Set horizontal position.\n if (config.verticalPosition === 'top') {\n positionStrategy.top('0');\n } else {\n positionStrategy.bottom('0');\n }\n\n overlayConfig.positionStrategy = positionStrategy;\n return this._overlay.create(overlayConfig);\n }\n\n /**\n * Creates an injector to be used inside of a snack bar component.\n * @param config Config that was used to create the snack bar.\n * @param snackBarRef Reference to the snack bar.\n */\n private _createInjector<T>(config: MatSnackBarConfig, snackBarRef: MatSnackBarRef<T>): Injector {\n const userInjector = config && config.viewContainerRef && config.viewContainerRef.injector;\n\n return Injector.create({\n parent: userInjector || this._injector,\n providers: [\n {provide: MatSnackBarRef, useValue: snackBarRef},\n {provide: MAT_SNACK_BAR_DATA, useValue: config.data},\n ],\n });\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {OverlayModule} from '@angular/cdk/overlay';\nimport {PortalModule} from '@angular/cdk/portal';\nimport {NgModule} from '@angular/core';\nimport {MatButtonModule} from '@angular/material/button';\nimport {MatCommonModule} from '@angular/material/core';\n\nimport {SimpleSnackBar} from './simple-snack-bar';\nimport {MatSnackBarContainer} from './snack-bar-container';\nimport {MatSnackBarAction, MatSnackBarActions, MatSnackBarLabel} from './snack-bar-content';\nimport {MatSnackBar} from './snack-bar';\n\nconst DIRECTIVES = [MatSnackBarContainer, MatSnackBarLabel, MatSnackBarActions, MatSnackBarAction];\n\n@NgModule({\n imports: [\n OverlayModule,\n PortalModule,\n MatButtonModule,\n MatCommonModule,\n SimpleSnackBar,\n ...DIRECTIVES,\n ],\n exports: [MatCommonModule, ...DIRECTIVES],\n providers: [MatSnackBar],\n})\nexport class MatSnackBarModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"testing.mjs","sources":["../../../../../../../src/material/sort/testing/sort-header-harness.ts","../../../../../../../src/material/sort/testing/sort-harness.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {ComponentHarness, HarnessPredicate} from '@angular/cdk/testing';\nimport {SortDirection} from '@angular/material/sort';\nimport {SortHeaderHarnessFilters} from './sort-harness-filters';\n\n/** Harness for interacting with a standard Angular Material sort header in tests. */\nexport class MatSortHeaderHarness extends ComponentHarness {\n static hostSelector = '.mat-sort-header';\n private _container = this.locatorFor('.mat-sort-header-container');\n\n /**\n * Gets a `HarnessPredicate` that can be used to\n * search for a sort header with specific attributes.\n */\n static with(options: SortHeaderHarnessFilters = {}): HarnessPredicate<MatSortHeaderHarness> {\n return new HarnessPredicate(MatSortHeaderHarness, options)\n .addOption('label', options.label, (harness, label) =>\n HarnessPredicate.stringMatches(harness.getLabel(), label),\n )\n .addOption('sortDirection', options.sortDirection, (harness, sortDirection) => {\n return HarnessPredicate.stringMatches(harness.getSortDirection(), sortDirection);\n });\n }\n\n /** Gets the label of the sort header. */\n async getLabel(): Promise<string> {\n return (await this._container()).text();\n }\n\n /** Gets the sorting direction of the header. */\n async getSortDirection(): Promise<SortDirection> {\n const host = await this.host();\n const ariaSort = await host.getAttribute('aria-sort');\n\n if (ariaSort === 'ascending') {\n return 'asc';\n } else if (ariaSort === 'descending') {\n return 'desc';\n }\n\n return '';\n }\n\n /** Gets whether the sort header is currently being sorted by. */\n async isActive(): Promise<boolean> {\n return !!(await this.getSortDirection());\n }\n\n /** Whether the sort header is disabled. */\n async isDisabled(): Promise<boolean> {\n return (await this.host()).hasClass('mat-sort-header-disabled');\n }\n\n /** Clicks the header to change its sorting direction. Only works if the header is enabled. */\n async click(): Promise<void> {\n return (await this.host()).click();\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {ComponentHarness, HarnessPredicate} from '@angular/cdk/testing';\nimport {SortHarnessFilters, SortHeaderHarnessFilters} from './sort-harness-filters';\nimport {MatSortHeaderHarness} from './sort-header-harness';\n\n/** Harness for interacting with a standard `mat-sort` in tests. */\nexport class MatSortHarness extends ComponentHarness {\n static hostSelector = '.mat-sort';\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a `mat-sort` with specific attributes.\n * @param options Options for narrowing the search.\n * @return a `HarnessPredicate` configured with the given options.\n */\n static with(options: SortHarnessFilters = {}): HarnessPredicate<MatSortHarness> {\n return new HarnessPredicate(MatSortHarness, options);\n }\n\n /** Gets all of the sort headers in the `mat-sort`. */\n async getSortHeaders(filter: SortHeaderHarnessFilters = {}): Promise<MatSortHeaderHarness[]> {\n return this.locatorForAll(MatSortHeaderHarness.with(filter))();\n }\n\n /** Gets the selected header in the `mat-sort`. */\n async getActiveHeader(): Promise<MatSortHeaderHarness | null> {\n const headers = await this.getSortHeaders();\n for (let i = 0; i < headers.length; i++) {\n if (await headers[i].isActive()) {\n return headers[i];\n }\n }\n return null;\n }\n}\n"],"names":[],"mappings":";;AAYA;AACM,MAAO,oBAAqB,SAAQ,gBAAgB,CAAA;AAA1D,IAAA,WAAA,GAAA;;AAEU,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,4BAA4B,CAAC,CAAC;KAiDpE;aAlDQ,IAAY,CAAA,YAAA,GAAG,kBAAH,CAAsB,EAAA;AAGzC;;;AAGG;AACH,IAAA,OAAO,IAAI,CAAC,OAAA,GAAoC,EAAE,EAAA;AAChD,QAAA,OAAO,IAAI,gBAAgB,CAAC,oBAAoB,EAAE,OAAO,CAAC;aACvD,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,KAAK,KAChD,gBAAgB,CAAC,aAAa,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC,CAC1D;AACA,aAAA,SAAS,CAAC,eAAe,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC,OAAO,EAAE,aAAa,KAAI;YAC5E,OAAO,gBAAgB,CAAC,aAAa,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,aAAa,CAAC,CAAC;AACnF,SAAC,CAAC,CAAC;KACN;;AAGD,IAAA,MAAM,QAAQ,GAAA;QACZ,OAAO,CAAC,MAAM,IAAI,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,CAAC;KACzC;;AAGD,IAAA,MAAM,gBAAgB,GAAA;AACpB,QAAA,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QAC/B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;AAEtD,QAAA,IAAI,QAAQ,KAAK,WAAW,EAAE;AAC5B,YAAA,OAAO,KAAK,CAAC;SACd;AAAM,aAAA,IAAI,QAAQ,KAAK,YAAY,EAAE;AACpC,YAAA,OAAO,MAAM,CAAC;SACf;AAED,QAAA,OAAO,EAAE,CAAC;KACX;;AAGD,IAAA,MAAM,QAAQ,GAAA;QACZ,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;KAC1C;;AAGD,IAAA,MAAM,UAAU,GAAA;AACd,QAAA,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,EAAE,QAAQ,CAAC,0BAA0B,CAAC,CAAC;KACjE;;AAGD,IAAA,MAAM,KAAK,GAAA;QACT,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC;KACpC;;;ACnDH;AACM,MAAO,cAAe,SAAQ,gBAAgB,CAAA;aAC3C,IAAY,CAAA,YAAA,GAAG,WAAW,CAAC,EAAA;AAElC;;;;AAIG;AACH,IAAA,OAAO,IAAI,CAAC,OAAA,GAA8B,EAAE,EAAA;AAC1C,QAAA,OAAO,IAAI,gBAAgB,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;KACtD;;AAGD,IAAA,MAAM,cAAc,CAAC,MAAA,GAAmC,EAAE,EAAA;AACxD,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;KAChE;;AAGD,IAAA,MAAM,eAAe,GAAA;AACnB,QAAA,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;AAC5C,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACvC,IAAI,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE;AAC/B,gBAAA,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;aACnB;SACF;AACD,QAAA,OAAO,IAAI,CAAC;KACb;;;;;"}
1
+ {"version":3,"file":"testing.mjs","sources":["../../../../../../../src/material/sort/testing/sort-header-harness.ts","../../../../../../../src/material/sort/testing/sort-harness.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {ComponentHarness, HarnessPredicate} from '@angular/cdk/testing';\nimport {SortDirection} from '@angular/material/sort';\nimport {SortHeaderHarnessFilters} from './sort-harness-filters';\n\n/** Harness for interacting with a standard Angular Material sort header in tests. */\nexport class MatSortHeaderHarness extends ComponentHarness {\n static hostSelector = '.mat-sort-header';\n private _container = this.locatorFor('.mat-sort-header-container');\n\n /**\n * Gets a `HarnessPredicate` that can be used to\n * search for a sort header with specific attributes.\n */\n static with(options: SortHeaderHarnessFilters = {}): HarnessPredicate<MatSortHeaderHarness> {\n return new HarnessPredicate(MatSortHeaderHarness, options)\n .addOption('label', options.label, (harness, label) =>\n HarnessPredicate.stringMatches(harness.getLabel(), label),\n )\n .addOption('sortDirection', options.sortDirection, (harness, sortDirection) => {\n return HarnessPredicate.stringMatches(harness.getSortDirection(), sortDirection);\n });\n }\n\n /** Gets the label of the sort header. */\n async getLabel(): Promise<string> {\n return (await this._container()).text();\n }\n\n /** Gets the sorting direction of the header. */\n async getSortDirection(): Promise<SortDirection> {\n const host = await this.host();\n const ariaSort = await host.getAttribute('aria-sort');\n\n if (ariaSort === 'ascending') {\n return 'asc';\n } else if (ariaSort === 'descending') {\n return 'desc';\n }\n\n return '';\n }\n\n /** Gets whether the sort header is currently being sorted by. */\n async isActive(): Promise<boolean> {\n return !!(await this.getSortDirection());\n }\n\n /** Whether the sort header is disabled. */\n async isDisabled(): Promise<boolean> {\n return (await this.host()).hasClass('mat-sort-header-disabled');\n }\n\n /** Clicks the header to change its sorting direction. Only works if the header is enabled. */\n async click(): Promise<void> {\n return (await this.host()).click();\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {ComponentHarness, HarnessPredicate} from '@angular/cdk/testing';\nimport {SortHarnessFilters, SortHeaderHarnessFilters} from './sort-harness-filters';\nimport {MatSortHeaderHarness} from './sort-header-harness';\n\n/** Harness for interacting with a standard `mat-sort` in tests. */\nexport class MatSortHarness extends ComponentHarness {\n static hostSelector = '.mat-sort';\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a `mat-sort` with specific attributes.\n * @param options Options for narrowing the search.\n * @return a `HarnessPredicate` configured with the given options.\n */\n static with(options: SortHarnessFilters = {}): HarnessPredicate<MatSortHarness> {\n return new HarnessPredicate(MatSortHarness, options);\n }\n\n /** Gets all of the sort headers in the `mat-sort`. */\n async getSortHeaders(filter: SortHeaderHarnessFilters = {}): Promise<MatSortHeaderHarness[]> {\n return this.locatorForAll(MatSortHeaderHarness.with(filter))();\n }\n\n /** Gets the selected header in the `mat-sort`. */\n async getActiveHeader(): Promise<MatSortHeaderHarness | null> {\n const headers = await this.getSortHeaders();\n for (let i = 0; i < headers.length; i++) {\n if (await headers[i].isActive()) {\n return headers[i];\n }\n }\n return null;\n }\n}\n"],"names":[],"mappings":";;AAYA;AACM,MAAO,oBAAqB,SAAQ,gBAAgB,CAAA;AAA1D,IAAA,WAAA,GAAA;;AAEU,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,4BAA4B,CAAC,CAAC;KAiDpE;aAlDQ,IAAY,CAAA,YAAA,GAAG,kBAAH,CAAsB,EAAA;AAGzC;;;AAGG;AACH,IAAA,OAAO,IAAI,CAAC,OAAA,GAAoC,EAAE,EAAA;AAChD,QAAA,OAAO,IAAI,gBAAgB,CAAC,oBAAoB,EAAE,OAAO,CAAC;aACvD,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,KAAK,KAChD,gBAAgB,CAAC,aAAa,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC,CAC1D;AACA,aAAA,SAAS,CAAC,eAAe,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC,OAAO,EAAE,aAAa,KAAI;YAC5E,OAAO,gBAAgB,CAAC,aAAa,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,aAAa,CAAC,CAAC;AACnF,SAAC,CAAC,CAAC;KACN;;AAGD,IAAA,MAAM,QAAQ,GAAA;QACZ,OAAO,CAAC,MAAM,IAAI,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,CAAC;KACzC;;AAGD,IAAA,MAAM,gBAAgB,GAAA;AACpB,QAAA,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QAC/B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;AAEtD,QAAA,IAAI,QAAQ,KAAK,WAAW,EAAE;AAC5B,YAAA,OAAO,KAAK,CAAC;SACd;AAAM,aAAA,IAAI,QAAQ,KAAK,YAAY,EAAE;AACpC,YAAA,OAAO,MAAM,CAAC;SACf;AAED,QAAA,OAAO,EAAE,CAAC;KACX;;AAGD,IAAA,MAAM,QAAQ,GAAA;QACZ,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;KAC1C;;AAGD,IAAA,MAAM,UAAU,GAAA;AACd,QAAA,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,EAAE,QAAQ,CAAC,0BAA0B,CAAC,CAAC;KACjE;;AAGD,IAAA,MAAM,KAAK,GAAA;QACT,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC;KACpC;;;ACnDH;AACM,MAAO,cAAe,SAAQ,gBAAgB,CAAA;aAC3C,IAAY,CAAA,YAAA,GAAG,WAAW,CAAC,EAAA;AAElC;;;;AAIG;AACH,IAAA,OAAO,IAAI,CAAC,OAAA,GAA8B,EAAE,EAAA;AAC1C,QAAA,OAAO,IAAI,gBAAgB,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;KACtD;;AAGD,IAAA,MAAM,cAAc,CAAC,MAAA,GAAmC,EAAE,EAAA;AACxD,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;KAChE;;AAGD,IAAA,MAAM,eAAe,GAAA;AACnB,QAAA,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;AAC5C,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACvC,IAAI,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE;AAC/B,gBAAA,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;aACnB;SACF;AACD,QAAA,OAAO,IAAI,CAAC;KACb;;;;;"}
package/fesm2022/sort.mjs CHANGED
@@ -1,10 +1,11 @@
1
1
  import * as i0 from '@angular/core';
2
- import { InjectionToken, EventEmitter, booleanAttribute, Directive, Optional, Inject, Input, Output, Injectable, SkipSelf, Component, ViewEncapsulation, ChangeDetectionStrategy, NgModule } from '@angular/core';
3
- import * as i3 from '@angular/cdk/a11y';
2
+ import { InjectionToken, EventEmitter, booleanAttribute, Directive, Optional, Inject, Input, Output, Injectable, SkipSelf, inject, ChangeDetectorRef, ElementRef, Component, ViewEncapsulation, ChangeDetectionStrategy, NgModule } from '@angular/core';
3
+ import { FocusMonitor, AriaDescriber } from '@angular/cdk/a11y';
4
4
  import { SPACE, ENTER } from '@angular/cdk/keycodes';
5
5
  import { ReplaySubject, Subject, merge } from 'rxjs';
6
6
  import { trigger, state, style, transition, animate, keyframes, query, animateChild } from '@angular/animations';
7
- import { AnimationDurations, AnimationCurves, MatCommonModule } from '@angular/material/core';
7
+ import { AnimationDurations, AnimationCurves, _StructuralStylesLoader, MatCommonModule } from '@angular/material/core';
8
+ import { _CdkPrivateStyleLoader } from '@angular/cdk/private';
8
9
 
9
10
  /** @docs-private */
10
11
  function getSortDuplicateSortableIdError(id) {
@@ -118,10 +119,10 @@ class MatSort {
118
119
  this._stateChanges.complete();
119
120
  this._initializedStream.complete();
120
121
  }
121
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0-next.2", ngImport: i0, type: MatSort, deps: [{ token: MAT_SORT_DEFAULT_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
122
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "18.2.0-next.2", type: MatSort, isStandalone: true, selector: "[matSort]", inputs: { active: ["matSortActive", "active"], start: ["matSortStart", "start"], direction: ["matSortDirection", "direction"], disableClear: ["matSortDisableClear", "disableClear", booleanAttribute], disabled: ["matSortDisabled", "disabled", booleanAttribute] }, outputs: { sortChange: "matSortChange" }, host: { classAttribute: "mat-sort" }, exportAs: ["matSort"], usesOnChanges: true, ngImport: i0 }); }
122
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.10", ngImport: i0, type: MatSort, deps: [{ token: MAT_SORT_DEFAULT_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
123
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "19.0.0-next.10", type: MatSort, isStandalone: true, selector: "[matSort]", inputs: { active: ["matSortActive", "active"], start: ["matSortStart", "start"], direction: ["matSortDirection", "direction"], disableClear: ["matSortDisableClear", "disableClear", booleanAttribute], disabled: ["matSortDisabled", "disabled", booleanAttribute] }, outputs: { sortChange: "matSortChange" }, host: { classAttribute: "mat-sort" }, exportAs: ["matSort"], usesOnChanges: true, ngImport: i0 }); }
123
124
  }
124
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0-next.2", ngImport: i0, type: MatSort, decorators: [{
125
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.10", ngImport: i0, type: MatSort, decorators: [{
125
126
  type: Directive,
126
127
  args: [{
127
128
  selector: '[matSort]',
@@ -129,7 +130,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0-next.2",
129
130
  host: {
130
131
  'class': 'mat-sort',
131
132
  },
132
- standalone: true,
133
133
  }]
134
134
  }], ctorParameters: () => [{ type: undefined, decorators: [{
135
135
  type: Optional
@@ -239,10 +239,10 @@ class MatSortHeaderIntl {
239
239
  */
240
240
  this.changes = new Subject();
241
241
  }
242
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0-next.2", ngImport: i0, type: MatSortHeaderIntl, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
243
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0-next.2", ngImport: i0, type: MatSortHeaderIntl, providedIn: 'root' }); }
242
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.10", ngImport: i0, type: MatSortHeaderIntl, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
243
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.0-next.10", ngImport: i0, type: MatSortHeaderIntl, providedIn: 'root' }); }
244
244
  }
245
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0-next.2", ngImport: i0, type: MatSortHeaderIntl, decorators: [{
245
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.10", ngImport: i0, type: MatSortHeaderIntl, decorators: [{
246
246
  type: Injectable,
247
247
  args: [{ providedIn: 'root' }]
248
248
  }] });
@@ -278,24 +278,16 @@ class MatSortHeader {
278
278
  set sortActionDescription(value) {
279
279
  this._updateSortActionDescription(value);
280
280
  }
281
- constructor(
282
- /**
283
- * @deprecated `_intl` parameter isn't being used anymore and it'll be removed.
284
- * @breaking-change 13.0.0
285
- */
286
- _intl, _changeDetectorRef,
287
- // `MatSort` is not optionally injected, but just asserted manually w/ better error.
288
- // tslint:disable-next-line: lightweight-tokens
289
- _sort, _columnDef, _focusMonitor, _elementRef,
290
- /** @breaking-change 14.0.0 _ariaDescriber will be required. */
291
- _ariaDescriber, defaultOptions) {
292
- this._intl = _intl;
293
- this._changeDetectorRef = _changeDetectorRef;
294
- this._sort = _sort;
295
- this._columnDef = _columnDef;
296
- this._focusMonitor = _focusMonitor;
297
- this._elementRef = _elementRef;
298
- this._ariaDescriber = _ariaDescriber;
281
+ constructor() {
282
+ this._intl = inject(MatSortHeaderIntl);
283
+ this._changeDetectorRef = inject(ChangeDetectorRef);
284
+ this._sort = inject(MatSort, { optional: true });
285
+ this._columnDef = inject('MAT_SORT_HEADER_COLUMN_DEF', {
286
+ optional: true,
287
+ });
288
+ this._focusMonitor = inject(FocusMonitor);
289
+ this._elementRef = inject(ElementRef);
290
+ this._ariaDescriber = inject(AriaDescriber, { optional: true });
299
291
  /**
300
292
  * Flag set to true when the indicator should be displayed while the sort is not active. Used to
301
293
  * provide an affordance that the header is sortable by showing on focus and hover.
@@ -321,11 +313,15 @@ class MatSortHeader {
321
313
  // Without a description, the button's label comes from the sort header text content,
322
314
  // which doesn't give any indication that it performs a sorting operation.
323
315
  this._sortActionDescription = 'Sort';
316
+ inject(_CdkPrivateStyleLoader).load(_StructuralStylesLoader);
317
+ const defaultOptions = inject(MAT_SORT_DEFAULT_OPTIONS, {
318
+ optional: true,
319
+ });
324
320
  // Note that we use a string token for the `_columnDef`, because the value is provided both by
325
321
  // `material/table` and `cdk/table` and we can't have the CDK depending on Material,
326
322
  // and we want to avoid having the sort header depending on the CDK table because
327
323
  // of this single reference.
328
- if (!_sort && (typeof ngDevMode === 'undefined' || ngDevMode)) {
324
+ if (!this._sort && (typeof ngDevMode === 'undefined' || ngDevMode)) {
329
325
  throw getSortHeaderNotContainedWithinSortError();
330
326
  }
331
327
  if (defaultOptions?.arrowPosition) {
@@ -497,8 +493,8 @@ class MatSortHeader {
497
493
  this._changeDetectorRef.markForCheck();
498
494
  });
499
495
  }
500
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0-next.2", ngImport: i0, type: MatSortHeader, deps: [{ token: MatSortHeaderIntl }, { token: i0.ChangeDetectorRef }, { token: MatSort, optional: true }, { token: 'MAT_SORT_HEADER_COLUMN_DEF', optional: true }, { token: i3.FocusMonitor }, { token: i0.ElementRef }, { token: i3.AriaDescriber, optional: true }, { token: MAT_SORT_DEFAULT_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
501
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0-next.2", type: MatSortHeader, isStandalone: true, selector: "[mat-sort-header]", inputs: { id: ["mat-sort-header", "id"], arrowPosition: "arrowPosition", start: "start", disabled: ["disabled", "disabled", booleanAttribute], sortActionDescription: "sortActionDescription", disableClear: ["disableClear", "disableClear", booleanAttribute] }, host: { listeners: { "click": "_handleClick()", "keydown": "_handleKeydown($event)", "mouseenter": "_setIndicatorHintVisible(true)", "mouseleave": "_setIndicatorHintVisible(false)" }, properties: { "attr.aria-sort": "_getAriaSortAttribute()", "class.mat-sort-header-disabled": "_isDisabled()" }, classAttribute: "mat-sort-header" }, exportAs: ["matSortHeader"], ngImport: i0, 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 [attr.role]=\"_isDisabled() ? null : '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 @if (_renderArrow()) {\n <div class=\"mat-sort-header-arrow\"\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 }\n</div>\n", 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-container::before{margin:calc(calc(var(--mat-focus-indicator-border-width, 3px) + 2px)*-1)}.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;color:var(--mat-sort-arrow-color, var(--mat-app-on-surface));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}"], animations: [
496
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.10", ngImport: i0, type: MatSortHeader, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
497
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.0-next.10", type: MatSortHeader, isStandalone: true, selector: "[mat-sort-header]", inputs: { id: ["mat-sort-header", "id"], arrowPosition: "arrowPosition", start: "start", disabled: ["disabled", "disabled", booleanAttribute], sortActionDescription: "sortActionDescription", disableClear: ["disableClear", "disableClear", booleanAttribute] }, host: { listeners: { "click": "_handleClick()", "keydown": "_handleKeydown($event)", "mouseenter": "_setIndicatorHintVisible(true)", "mouseleave": "_setIndicatorHintVisible(false)" }, properties: { "attr.aria-sort": "_getAriaSortAttribute()", "class.mat-sort-header-disabled": "_isDisabled()" }, classAttribute: "mat-sort-header" }, exportAs: ["matSortHeader"], ngImport: i0, 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 [attr.role]=\"_isDisabled() ? null : '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 @if (_renderArrow()) {\n <div class=\"mat-sort-header-arrow\"\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 }\n</div>\n", 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-container::before{margin:calc(calc(var(--mat-focus-indicator-border-width, 3px) + 2px)*-1)}.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;color:var(--mat-sort-arrow-color, var(--mat-sys-on-surface));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}@media(forced-colors: 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)}@media(forced-colors: 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}@media(forced-colors: active){.mat-sort-header-pointer-left,.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}"], animations: [
502
498
  matSortAnimations.indicator,
503
499
  matSortAnimations.leftPointer,
504
500
  matSortAnimations.rightPointer,
@@ -507,7 +503,7 @@ class MatSortHeader {
507
503
  matSortAnimations.allowChildren,
508
504
  ], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
509
505
  }
510
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0-next.2", ngImport: i0, type: MatSortHeader, decorators: [{
506
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.10", ngImport: i0, type: MatSortHeader, decorators: [{
511
507
  type: Component,
512
508
  args: [{ selector: '[mat-sort-header]', exportAs: 'matSortHeader', host: {
513
509
  'class': 'mat-sort-header',
@@ -524,22 +520,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0-next.2",
524
520
  matSortAnimations.arrowOpacity,
525
521
  matSortAnimations.arrowPosition,
526
522
  matSortAnimations.allowChildren,
527
- ], standalone: true, 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 [attr.role]=\"_isDisabled() ? null : '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 @if (_renderArrow()) {\n <div class=\"mat-sort-header-arrow\"\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 }\n</div>\n", 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-container::before{margin:calc(calc(var(--mat-focus-indicator-border-width, 3px) + 2px)*-1)}.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;color:var(--mat-sort-arrow-color, var(--mat-app-on-surface));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}"] }]
528
- }], ctorParameters: () => [{ type: MatSortHeaderIntl }, { type: i0.ChangeDetectorRef }, { type: MatSort, decorators: [{
529
- type: Optional
530
- }] }, { type: undefined, decorators: [{
531
- type: Inject,
532
- args: ['MAT_SORT_HEADER_COLUMN_DEF']
533
- }, {
534
- type: Optional
535
- }] }, { type: i3.FocusMonitor }, { type: i0.ElementRef }, { type: i3.AriaDescriber, decorators: [{
536
- type: Optional
537
- }] }, { type: undefined, decorators: [{
538
- type: Optional
539
- }, {
540
- type: Inject,
541
- args: [MAT_SORT_DEFAULT_OPTIONS]
542
- }] }], propDecorators: { id: [{
523
+ ], 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 [attr.role]=\"_isDisabled() ? null : '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 @if (_renderArrow()) {\n <div class=\"mat-sort-header-arrow\"\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 }\n</div>\n", 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-container::before{margin:calc(calc(var(--mat-focus-indicator-border-width, 3px) + 2px)*-1)}.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;color:var(--mat-sort-arrow-color, var(--mat-sys-on-surface));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}@media(forced-colors: 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)}@media(forced-colors: 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}@media(forced-colors: active){.mat-sort-header-pointer-left,.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}"] }]
524
+ }], ctorParameters: () => [], propDecorators: { id: [{
543
525
  type: Input,
544
526
  args: ['mat-sort-header']
545
527
  }], arrowPosition: [{
@@ -557,11 +539,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0-next.2",
557
539
  }] } });
558
540
 
559
541
  class MatSortModule {
560
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0-next.2", ngImport: i0, type: MatSortModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
561
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.0-next.2", ngImport: i0, type: MatSortModule, imports: [MatCommonModule, MatSort, MatSortHeader], exports: [MatSort, MatSortHeader] }); }
562
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.0-next.2", ngImport: i0, type: MatSortModule, providers: [MAT_SORT_HEADER_INTL_PROVIDER], imports: [MatCommonModule] }); }
542
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.10", ngImport: i0, type: MatSortModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
543
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.0.0-next.10", ngImport: i0, type: MatSortModule, imports: [MatCommonModule, MatSort, MatSortHeader], exports: [MatSort, MatSortHeader] }); }
544
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.0.0-next.10", ngImport: i0, type: MatSortModule, providers: [MAT_SORT_HEADER_INTL_PROVIDER], imports: [MatCommonModule] }); }
563
545
  }
564
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0-next.2", ngImport: i0, type: MatSortModule, decorators: [{
546
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.10", ngImport: i0, type: MatSortModule, decorators: [{
565
547
  type: NgModule,
566
548
  args: [{
567
549
  imports: [MatCommonModule, MatSort, MatSortHeader],