@angular/material 17.1.0-next.1 → 17.1.0-next.3

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 (386) hide show
  1. package/button/_button-base.scss +14 -2
  2. package/button/_button-theme.scss +11 -11
  3. package/button/_fab-theme.scss +1 -8
  4. package/button/index.d.ts +31 -2
  5. package/checkbox/_checkbox-theme.scss +5 -10
  6. package/checkbox/index.d.ts +28 -5
  7. package/core/index.d.ts +18 -2
  8. package/core/internal-form-field/_internal-form-field-theme.scss +37 -0
  9. package/core/tokens/m2/mat/_fab.scss +3 -0
  10. package/core/tokens/m2/mat/_filled-button.scss +3 -0
  11. package/core/tokens/m2/mat/_icon-button.scss +3 -0
  12. package/core/tokens/m2/mat/_outlined-button.scss +3 -0
  13. package/core/tokens/m2/mat/_protected-button.scss +3 -0
  14. package/core/tokens/m2/mat/_tab-header.scss +6 -1
  15. package/core/tokens/m2/mat/_text-button.scss +3 -0
  16. package/core/tokens/m2/mdc/_filled-button.scss +7 -6
  17. package/core/tokens/m2/mdc/_form-field.scss +46 -0
  18. package/core/tokens/m2/mdc/_outlined-button.scss +7 -7
  19. package/core/tokens/m2/mdc/_protected-button.scss +7 -6
  20. package/core/tokens/m2/mdc/_text-button.scss +7 -8
  21. package/esm2022/autocomplete/autocomplete-origin.mjs +4 -4
  22. package/esm2022/autocomplete/autocomplete-trigger.mjs +4 -4
  23. package/esm2022/autocomplete/autocomplete.mjs +4 -4
  24. package/esm2022/autocomplete/module.mjs +5 -5
  25. package/esm2022/autocomplete/testing/autocomplete-harness.mjs +1 -1
  26. package/esm2022/badge/badge-module.mjs +5 -5
  27. package/esm2022/badge/badge.mjs +4 -4
  28. package/esm2022/badge/testing/badge-harness.mjs +1 -1
  29. package/esm2022/bottom-sheet/bottom-sheet-container.mjs +4 -4
  30. package/esm2022/bottom-sheet/bottom-sheet-module.mjs +5 -5
  31. package/esm2022/bottom-sheet/bottom-sheet-ref.mjs +1 -1
  32. package/esm2022/bottom-sheet/bottom-sheet.mjs +4 -4
  33. package/esm2022/button/button-base.mjs +46 -19
  34. package/esm2022/button/button.mjs +9 -9
  35. package/esm2022/button/fab.mjs +17 -17
  36. package/esm2022/button/icon-button.mjs +9 -9
  37. package/esm2022/button/module.mjs +5 -5
  38. package/esm2022/button/public-api.mjs +2 -1
  39. package/esm2022/button/testing/button-harness.mjs +4 -3
  40. package/esm2022/button-toggle/button-toggle-module.mjs +5 -5
  41. package/esm2022/button-toggle/button-toggle.mjs +7 -7
  42. package/esm2022/button-toggle/testing/button-toggle-harness.mjs +1 -1
  43. package/esm2022/card/card.mjs +43 -43
  44. package/esm2022/card/module.mjs +5 -5
  45. package/esm2022/checkbox/checkbox-required-validator.mjs +11 -5
  46. package/esm2022/checkbox/checkbox.mjs +39 -7
  47. package/esm2022/checkbox/module.mjs +16 -13
  48. package/esm2022/checkbox/testing/checkbox-harness.mjs +1 -1
  49. package/esm2022/chips/chip-action.mjs +4 -4
  50. package/esm2022/chips/chip-edit-input.mjs +4 -4
  51. package/esm2022/chips/chip-grid.mjs +4 -4
  52. package/esm2022/chips/chip-icons.mjs +10 -10
  53. package/esm2022/chips/chip-input.mjs +4 -4
  54. package/esm2022/chips/chip-listbox.mjs +4 -5
  55. package/esm2022/chips/chip-option.mjs +4 -4
  56. package/esm2022/chips/chip-row.mjs +4 -4
  57. package/esm2022/chips/chip-set.mjs +4 -4
  58. package/esm2022/chips/chip.mjs +5 -4
  59. package/esm2022/chips/module.mjs +5 -5
  60. package/esm2022/chips/testing/chip-edit-input-harness.mjs +1 -1
  61. package/esm2022/chips/testing/chip-input-harness.mjs +1 -1
  62. package/esm2022/chips/testing/chip-listbox-harness.mjs +1 -1
  63. package/esm2022/chips/testing/chip-option-harness.mjs +1 -1
  64. package/esm2022/chips/testing/chip-row-harness.mjs +1 -1
  65. package/esm2022/core/common-behaviors/color.mjs +1 -1
  66. package/esm2022/core/common-behaviors/common-module.mjs +5 -5
  67. package/esm2022/core/common-behaviors/error-state.mjs +1 -1
  68. package/esm2022/core/common-behaviors/initialized.mjs +1 -1
  69. package/esm2022/core/datetime/date-adapter.mjs +1 -1
  70. package/esm2022/core/datetime/index.mjs +9 -9
  71. package/esm2022/core/datetime/native-date-adapter.mjs +4 -4
  72. package/esm2022/core/error/error-options.mjs +7 -7
  73. package/esm2022/core/internal-form-field/internal-form-field.mjs +29 -0
  74. package/esm2022/core/line/line.mjs +8 -8
  75. package/esm2022/core/option/index.mjs +5 -5
  76. package/esm2022/core/option/optgroup.mjs +4 -4
  77. package/esm2022/core/option/option.mjs +4 -4
  78. package/esm2022/core/private/ripple-loader.mjs +30 -12
  79. package/esm2022/core/public-api.mjs +2 -1
  80. package/esm2022/core/ripple/index.mjs +5 -5
  81. package/esm2022/core/ripple/ripple-event-manager.mjs +1 -1
  82. package/esm2022/core/ripple/ripple-renderer.mjs +1 -1
  83. package/esm2022/core/ripple/ripple.mjs +4 -4
  84. package/esm2022/core/selection/pseudo-checkbox/pseudo-checkbox-module.mjs +5 -5
  85. package/esm2022/core/selection/pseudo-checkbox/pseudo-checkbox.mjs +4 -4
  86. package/esm2022/core/version.mjs +1 -1
  87. package/esm2022/datepicker/aria-accessible-name.mjs +1 -1
  88. package/esm2022/datepicker/calendar-body.mjs +4 -4
  89. package/esm2022/datepicker/calendar.mjs +7 -7
  90. package/esm2022/datepicker/date-range-input-parts.mjs +10 -10
  91. package/esm2022/datepicker/date-range-input.mjs +4 -4
  92. package/esm2022/datepicker/date-range-picker.mjs +4 -4
  93. package/esm2022/datepicker/date-range-selection-strategy.mjs +4 -4
  94. package/esm2022/datepicker/date-selection-model.mjs +10 -10
  95. package/esm2022/datepicker/datepicker-actions.mjs +10 -10
  96. package/esm2022/datepicker/datepicker-base.mjs +7 -7
  97. package/esm2022/datepicker/datepicker-input-base.mjs +4 -4
  98. package/esm2022/datepicker/datepicker-input.mjs +4 -4
  99. package/esm2022/datepicker/datepicker-intl.mjs +4 -4
  100. package/esm2022/datepicker/datepicker-module.mjs +5 -5
  101. package/esm2022/datepicker/datepicker-toggle.mjs +7 -7
  102. package/esm2022/datepicker/datepicker.mjs +4 -4
  103. package/esm2022/datepicker/month-view.mjs +4 -4
  104. package/esm2022/datepicker/multi-year-view.mjs +4 -4
  105. package/esm2022/datepicker/testing/calendar-harness.mjs +1 -1
  106. package/esm2022/datepicker/testing/datepicker-input-harness-base.mjs +1 -1
  107. package/esm2022/datepicker/testing/datepicker-input-harness.mjs +1 -1
  108. package/esm2022/datepicker/testing/datepicker-trigger-harness-base.mjs +1 -1
  109. package/esm2022/datepicker/year-view.mjs +4 -4
  110. package/esm2022/dialog/dialog-container.mjs +4 -4
  111. package/esm2022/dialog/dialog-content-directives.mjs +13 -13
  112. package/esm2022/dialog/dialog-ref.mjs +1 -1
  113. package/esm2022/dialog/dialog.mjs +4 -4
  114. package/esm2022/dialog/module.mjs +5 -5
  115. package/esm2022/dialog/testing/dialog-opener.mjs +1 -1
  116. package/esm2022/divider/divider-module.mjs +5 -5
  117. package/esm2022/divider/divider.mjs +4 -4
  118. package/esm2022/expansion/accordion.mjs +4 -4
  119. package/esm2022/expansion/expansion-module.mjs +5 -5
  120. package/esm2022/expansion/expansion-panel-content.mjs +4 -4
  121. package/esm2022/expansion/expansion-panel-header.mjs +10 -10
  122. package/esm2022/expansion/expansion-panel.mjs +7 -7
  123. package/esm2022/expansion/testing/expansion-harness.mjs +1 -1
  124. package/esm2022/form-field/directives/error.mjs +4 -4
  125. package/esm2022/form-field/directives/floating-label.mjs +4 -4
  126. package/esm2022/form-field/directives/hint.mjs +4 -4
  127. package/esm2022/form-field/directives/label.mjs +4 -4
  128. package/esm2022/form-field/directives/line-ripple.mjs +4 -4
  129. package/esm2022/form-field/directives/notched-outline.mjs +4 -4
  130. package/esm2022/form-field/directives/prefix.mjs +4 -4
  131. package/esm2022/form-field/directives/suffix.mjs +4 -4
  132. package/esm2022/form-field/form-field-control.mjs +4 -4
  133. package/esm2022/form-field/form-field.mjs +4 -4
  134. package/esm2022/form-field/module.mjs +5 -5
  135. package/esm2022/form-field/testing/form-field-harness.mjs +1 -1
  136. package/esm2022/grid-list/grid-list-module.mjs +5 -5
  137. package/esm2022/grid-list/grid-list.mjs +4 -4
  138. package/esm2022/grid-list/grid-tile.mjs +16 -16
  139. package/esm2022/grid-list/testing/grid-list-harness.mjs +1 -1
  140. package/esm2022/grid-list/tile-coordinator.mjs +1 -1
  141. package/esm2022/grid-list/tile-styler.mjs +1 -1
  142. package/esm2022/icon/icon-module.mjs +5 -5
  143. package/esm2022/icon/icon-registry.mjs +4 -4
  144. package/esm2022/icon/icon.mjs +4 -4
  145. package/esm2022/icon/testing/fake-icon-registry.mjs +8 -8
  146. package/esm2022/icon/testing/icon-harness.mjs +1 -1
  147. package/esm2022/icon/trusted-types.mjs +1 -1
  148. package/esm2022/input/input.mjs +4 -4
  149. package/esm2022/input/module.mjs +5 -5
  150. package/esm2022/input/testing/input-harness.mjs +1 -1
  151. package/esm2022/input/testing/native-select-harness.mjs +1 -1
  152. package/esm2022/list/action-list.mjs +4 -4
  153. package/esm2022/list/list-base.mjs +7 -7
  154. package/esm2022/list/list-item-sections.mjs +19 -19
  155. package/esm2022/list/list-module.mjs +5 -5
  156. package/esm2022/list/list-option.mjs +4 -4
  157. package/esm2022/list/list.mjs +7 -7
  158. package/esm2022/list/nav-list.mjs +4 -4
  159. package/esm2022/list/selection-list.mjs +4 -4
  160. package/esm2022/list/subheader.mjs +4 -4
  161. package/esm2022/list/testing/list-harness-base.mjs +1 -1
  162. package/esm2022/list/testing/list-item-harness-base.mjs +1 -1
  163. package/esm2022/list/testing/selection-list-harness.mjs +1 -1
  164. package/esm2022/menu/menu-content.mjs +4 -4
  165. package/esm2022/menu/menu-item.mjs +4 -4
  166. package/esm2022/menu/menu-trigger.mjs +4 -4
  167. package/esm2022/menu/menu.mjs +4 -4
  168. package/esm2022/menu/module.mjs +5 -5
  169. package/esm2022/menu/testing/menu-harness.mjs +1 -1
  170. package/esm2022/paginator/module.mjs +5 -5
  171. package/esm2022/paginator/paginator-intl.mjs +4 -4
  172. package/esm2022/paginator/paginator.mjs +4 -4
  173. package/esm2022/paginator/testing/paginator-harness.mjs +1 -1
  174. package/esm2022/progress-bar/module.mjs +5 -5
  175. package/esm2022/progress-bar/progress-bar.mjs +4 -4
  176. package/esm2022/progress-spinner/module.mjs +5 -5
  177. package/esm2022/progress-spinner/progress-spinner.mjs +4 -4
  178. package/esm2022/radio/module.mjs +5 -5
  179. package/esm2022/radio/radio.mjs +12 -9
  180. package/esm2022/radio/testing/radio-harness.mjs +1 -1
  181. package/esm2022/select/module.mjs +5 -5
  182. package/esm2022/select/select.mjs +7 -7
  183. package/esm2022/select/testing/select-harness.mjs +1 -1
  184. package/esm2022/sidenav/drawer.mjs +10 -10
  185. package/esm2022/sidenav/sidenav-module.mjs +5 -5
  186. package/esm2022/sidenav/sidenav.mjs +10 -10
  187. package/esm2022/sidenav/testing/drawer-harness.mjs +1 -1
  188. package/esm2022/slide-toggle/module.mjs +16 -22
  189. package/esm2022/slide-toggle/slide-toggle-required-validator.mjs +11 -4
  190. package/esm2022/slide-toggle/slide-toggle.mjs +39 -8
  191. package/esm2022/slide-toggle/testing/slide-toggle-harness.mjs +1 -1
  192. package/esm2022/slider/module.mjs +5 -5
  193. package/esm2022/slider/slider-input.mjs +9 -8
  194. package/esm2022/slider/slider-thumb.mjs +4 -4
  195. package/esm2022/slider/slider.mjs +6 -6
  196. package/esm2022/slider/testing/slider-harness.mjs +1 -1
  197. package/esm2022/snack-bar/module.mjs +5 -5
  198. package/esm2022/snack-bar/simple-snack-bar.mjs +4 -4
  199. package/esm2022/snack-bar/snack-bar-container.mjs +4 -4
  200. package/esm2022/snack-bar/snack-bar-content.mjs +10 -10
  201. package/esm2022/snack-bar/snack-bar-ref.mjs +1 -1
  202. package/esm2022/snack-bar/snack-bar.mjs +4 -4
  203. package/esm2022/snack-bar/testing/snack-bar-harness.mjs +1 -1
  204. package/esm2022/sort/sort-header-intl.mjs +4 -4
  205. package/esm2022/sort/sort-header.mjs +4 -4
  206. package/esm2022/sort/sort-module.mjs +5 -5
  207. package/esm2022/sort/sort.mjs +4 -4
  208. package/esm2022/sort/testing/sort-harness.mjs +1 -1
  209. package/esm2022/sort/testing/sort-header-harness.mjs +1 -1
  210. package/esm2022/stepper/step-content.mjs +4 -4
  211. package/esm2022/stepper/step-header.mjs +4 -4
  212. package/esm2022/stepper/step-label.mjs +4 -4
  213. package/esm2022/stepper/stepper-button.mjs +7 -7
  214. package/esm2022/stepper/stepper-icon.mjs +4 -4
  215. package/esm2022/stepper/stepper-intl.mjs +4 -4
  216. package/esm2022/stepper/stepper-module.mjs +5 -5
  217. package/esm2022/stepper/stepper.mjs +7 -7
  218. package/esm2022/stepper/testing/step-harness.mjs +1 -1
  219. package/esm2022/stepper/testing/stepper-harness.mjs +1 -1
  220. package/esm2022/table/cell.mjs +22 -22
  221. package/esm2022/table/module.mjs +5 -5
  222. package/esm2022/table/row.mjs +22 -22
  223. package/esm2022/table/table-data-source.mjs +1 -1
  224. package/esm2022/table/table.mjs +7 -7
  225. package/esm2022/table/testing/cell-harness.mjs +1 -1
  226. package/esm2022/table/testing/table-harness.mjs +1 -1
  227. package/esm2022/table/text-column.mjs +4 -4
  228. package/esm2022/tabs/ink-bar.mjs +1 -1
  229. package/esm2022/tabs/module.mjs +5 -5
  230. package/esm2022/tabs/paginated-tab-header.mjs +4 -4
  231. package/esm2022/tabs/tab-body.mjs +7 -7
  232. package/esm2022/tabs/tab-content.mjs +4 -4
  233. package/esm2022/tabs/tab-group.mjs +14 -5
  234. package/esm2022/tabs/tab-header.mjs +5 -5
  235. package/esm2022/tabs/tab-label-wrapper.mjs +4 -4
  236. package/esm2022/tabs/tab-label.mjs +4 -4
  237. package/esm2022/tabs/tab-nav-bar/tab-nav-bar.mjs +11 -11
  238. package/esm2022/tabs/tab.mjs +4 -4
  239. package/esm2022/tabs/testing/tab-group-harness.mjs +1 -1
  240. package/esm2022/tabs/testing/tab-nav-bar-harness.mjs +1 -1
  241. package/esm2022/toolbar/toolbar-module.mjs +5 -5
  242. package/esm2022/toolbar/toolbar.mjs +7 -7
  243. package/esm2022/tooltip/module.mjs +5 -5
  244. package/esm2022/tooltip/tooltip.mjs +7 -7
  245. package/esm2022/tree/data-source/flat-data-source.mjs +1 -1
  246. package/esm2022/tree/node.mjs +10 -10
  247. package/esm2022/tree/outlet.mjs +4 -4
  248. package/esm2022/tree/padding.mjs +4 -4
  249. package/esm2022/tree/testing/node-harness.mjs +1 -1
  250. package/esm2022/tree/testing/tree-harness.mjs +1 -1
  251. package/esm2022/tree/toggle.mjs +4 -4
  252. package/esm2022/tree/tree-module.mjs +5 -5
  253. package/esm2022/tree/tree.mjs +4 -4
  254. package/fesm2022/autocomplete/testing.mjs.map +1 -1
  255. package/fesm2022/autocomplete.mjs +13 -13
  256. package/fesm2022/autocomplete.mjs.map +1 -1
  257. package/fesm2022/badge/testing.mjs.map +1 -1
  258. package/fesm2022/badge.mjs +7 -7
  259. package/fesm2022/badge.mjs.map +1 -1
  260. package/fesm2022/bottom-sheet.mjs +10 -10
  261. package/fesm2022/bottom-sheet.mjs.map +1 -1
  262. package/fesm2022/button/testing.mjs +3 -2
  263. package/fesm2022/button/testing.mjs.map +1 -1
  264. package/fesm2022/button-toggle/testing.mjs.map +1 -1
  265. package/fesm2022/button-toggle.mjs +10 -10
  266. package/fesm2022/button-toggle.mjs.map +1 -1
  267. package/fesm2022/button.mjs +82 -55
  268. package/fesm2022/button.mjs.map +1 -1
  269. package/fesm2022/card.mjs +46 -46
  270. package/fesm2022/card.mjs.map +1 -1
  271. package/fesm2022/checkbox/testing.mjs.map +1 -1
  272. package/fesm2022/checkbox.mjs +61 -20
  273. package/fesm2022/checkbox.mjs.map +1 -1
  274. package/fesm2022/chips/testing.mjs.map +1 -1
  275. package/fesm2022/chips.mjs +41 -41
  276. package/fesm2022/chips.mjs.map +1 -1
  277. package/fesm2022/core.mjs +103 -65
  278. package/fesm2022/core.mjs.map +1 -1
  279. package/fesm2022/datepicker/testing.mjs.map +1 -1
  280. package/fesm2022/datepicker.mjs +82 -82
  281. package/fesm2022/datepicker.mjs.map +1 -1
  282. package/fesm2022/dialog/testing.mjs.map +1 -1
  283. package/fesm2022/dialog.mjs +22 -22
  284. package/fesm2022/dialog.mjs.map +1 -1
  285. package/fesm2022/divider.mjs +7 -7
  286. package/fesm2022/divider.mjs.map +1 -1
  287. package/fesm2022/expansion/testing.mjs.map +1 -1
  288. package/fesm2022/expansion.mjs +25 -25
  289. package/fesm2022/expansion.mjs.map +1 -1
  290. package/fesm2022/form-field/testing.mjs.map +1 -1
  291. package/fesm2022/form-field.mjs +34 -34
  292. package/fesm2022/form-field.mjs.map +1 -1
  293. package/fesm2022/grid-list/testing.mjs.map +1 -1
  294. package/fesm2022/grid-list.mjs +22 -22
  295. package/fesm2022/grid-list.mjs.map +1 -1
  296. package/fesm2022/icon/testing.mjs +7 -7
  297. package/fesm2022/icon/testing.mjs.map +1 -1
  298. package/fesm2022/icon.mjs +10 -10
  299. package/fesm2022/icon.mjs.map +1 -1
  300. package/fesm2022/input/testing.mjs.map +1 -1
  301. package/fesm2022/input.mjs +7 -7
  302. package/fesm2022/input.mjs.map +1 -1
  303. package/fesm2022/list/testing.mjs.map +1 -1
  304. package/fesm2022/list.mjs +49 -49
  305. package/fesm2022/list.mjs.map +1 -1
  306. package/fesm2022/menu/testing.mjs.map +1 -1
  307. package/fesm2022/menu.mjs +16 -16
  308. package/fesm2022/menu.mjs.map +1 -1
  309. package/fesm2022/paginator/testing.mjs.map +1 -1
  310. package/fesm2022/paginator.mjs +10 -10
  311. package/fesm2022/paginator.mjs.map +1 -1
  312. package/fesm2022/progress-bar.mjs +7 -7
  313. package/fesm2022/progress-bar.mjs.map +1 -1
  314. package/fesm2022/progress-spinner.mjs +7 -7
  315. package/fesm2022/progress-spinner.mjs.map +1 -1
  316. package/fesm2022/radio/testing.mjs.map +1 -1
  317. package/fesm2022/radio.mjs +16 -13
  318. package/fesm2022/radio.mjs.map +1 -1
  319. package/fesm2022/select/testing.mjs.map +1 -1
  320. package/fesm2022/select.mjs +10 -10
  321. package/fesm2022/select.mjs.map +1 -1
  322. package/fesm2022/sidenav/testing.mjs.map +1 -1
  323. package/fesm2022/sidenav.mjs +22 -22
  324. package/fesm2022/sidenav.mjs.map +1 -1
  325. package/fesm2022/slide-toggle/testing.mjs.map +1 -1
  326. package/fesm2022/slide-toggle.mjs +61 -29
  327. package/fesm2022/slide-toggle.mjs.map +1 -1
  328. package/fesm2022/slider/testing.mjs.map +1 -1
  329. package/fesm2022/slider.mjs +20 -19
  330. package/fesm2022/slider.mjs.map +1 -1
  331. package/fesm2022/snack-bar/testing.mjs.map +1 -1
  332. package/fesm2022/snack-bar.mjs +22 -22
  333. package/fesm2022/snack-bar.mjs.map +1 -1
  334. package/fesm2022/sort/testing.mjs.map +1 -1
  335. package/fesm2022/sort.mjs +13 -13
  336. package/fesm2022/sort.mjs.map +1 -1
  337. package/fesm2022/stepper/testing.mjs.map +1 -1
  338. package/fesm2022/stepper.mjs +31 -31
  339. package/fesm2022/stepper.mjs.map +1 -1
  340. package/fesm2022/table/testing.mjs.map +1 -1
  341. package/fesm2022/table.mjs +55 -55
  342. package/fesm2022/table.mjs.map +1 -1
  343. package/fesm2022/tabs/testing.mjs.map +1 -1
  344. package/fesm2022/tabs.mjs +52 -43
  345. package/fesm2022/tabs.mjs.map +1 -1
  346. package/fesm2022/toolbar.mjs +10 -10
  347. package/fesm2022/toolbar.mjs.map +1 -1
  348. package/fesm2022/tooltip.mjs +10 -10
  349. package/fesm2022/tooltip.mjs.map +1 -1
  350. package/fesm2022/tree/testing.mjs.map +1 -1
  351. package/fesm2022/tree.mjs +25 -25
  352. package/fesm2022/tree.mjs.map +1 -1
  353. package/package.json +2 -2
  354. package/prebuilt-themes/deeppurple-amber.css +1 -1
  355. package/prebuilt-themes/indigo-pink.css +1 -1
  356. package/prebuilt-themes/pink-bluegrey.css +1 -1
  357. package/prebuilt-themes/purple-green.css +1 -1
  358. package/radio/_radio-theme.scss +5 -10
  359. package/radio/index.d.ts +2 -0
  360. package/schematics/ng-add/fonts/material-fonts.js +1 -1
  361. package/schematics/ng-add/fonts/material-fonts.mjs +1 -1
  362. package/schematics/ng-add/index.js +2 -2
  363. package/schematics/ng-add/index.mjs +2 -2
  364. package/schematics/ng-add/package-config.js +1 -1
  365. package/schematics/ng-add/package-config.mjs +1 -1
  366. package/schematics/ng-add/setup-project.js +1 -1
  367. package/schematics/ng-add/setup-project.mjs +1 -1
  368. package/schematics/ng-add/theming/theming.js +1 -1
  369. package/schematics/ng-add/theming/theming.mjs +1 -1
  370. package/schematics/ng-generate/address-form/index.js +1 -1
  371. package/schematics/ng-generate/address-form/index.mjs +1 -1
  372. package/schematics/ng-generate/dashboard/index.js +1 -1
  373. package/schematics/ng-generate/dashboard/index.mjs +1 -1
  374. package/schematics/ng-generate/mdc-migration/index_bundled.js +202 -193
  375. package/schematics/ng-generate/mdc-migration/index_bundled.js.map +4 -4
  376. package/schematics/ng-generate/navigation/index.js +1 -1
  377. package/schematics/ng-generate/navigation/index.mjs +1 -1
  378. package/schematics/ng-generate/table/index.js +1 -1
  379. package/schematics/ng-generate/table/index.mjs +1 -1
  380. package/schematics/ng-generate/tree/index.js +1 -1
  381. package/schematics/ng-generate/tree/index.mjs +1 -1
  382. package/schematics/ng-update/index_bundled.js.map +1 -1
  383. package/slide-toggle/_slide-toggle-theme.scss +5 -4
  384. package/slide-toggle/index.d.ts +30 -6
  385. package/tabs/_tabs-common.scss +20 -1
  386. package/tabs/index.d.ts +5 -1
@@ -13,10 +13,10 @@ import { switchMap, map, startWith, takeUntil, distinctUntilChanged } from 'rxjs
13
13
  import { trigger, state, style, transition, group, animate, query, animateChild } from '@angular/animations';
14
14
 
15
15
  class MatStepLabel extends CdkStepLabel {
16
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: MatStepLabel, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
17
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.4", type: MatStepLabel, isStandalone: true, selector: "[matStepLabel]", usesInheritance: true, ngImport: i0 }); }
16
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0-next.2", ngImport: i0, type: MatStepLabel, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
17
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.1.0-next.2", type: MatStepLabel, isStandalone: true, selector: "[matStepLabel]", usesInheritance: true, ngImport: i0 }); }
18
18
  }
19
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: MatStepLabel, decorators: [{
19
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0-next.2", ngImport: i0, type: MatStepLabel, decorators: [{
20
20
  type: Directive,
21
21
  args: [{
22
22
  selector: '[matStepLabel]',
@@ -39,10 +39,10 @@ class MatStepperIntl {
39
39
  /** Label that is used to indicate step as editable to screen readers. */
40
40
  this.editableLabel = 'Editable';
41
41
  }
42
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: MatStepperIntl, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
43
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: MatStepperIntl, providedIn: 'root' }); }
42
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0-next.2", ngImport: i0, type: MatStepperIntl, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
43
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.0-next.2", ngImport: i0, type: MatStepperIntl, providedIn: 'root' }); }
44
44
  }
45
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: MatStepperIntl, decorators: [{
45
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0-next.2", ngImport: i0, type: MatStepperIntl, decorators: [{
46
46
  type: Injectable,
47
47
  args: [{ providedIn: 'root' }]
48
48
  }] });
@@ -112,10 +112,10 @@ class MatStepHeader extends CdkStepHeader {
112
112
  }
113
113
  return state;
114
114
  }
115
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: MatStepHeader, deps: [{ token: MatStepperIntl }, { token: i2.FocusMonitor }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
116
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.0.4", type: MatStepHeader, isStandalone: true, selector: "mat-step-header", inputs: { state: "state", label: "label", errorMessage: "errorMessage", iconOverrides: "iconOverrides", index: "index", selected: "selected", active: "active", optional: "optional", disableRipple: "disableRipple", color: "color" }, host: { attributes: { "role": "tab" }, properties: { "class": "\"mat-\" + (color || \"primary\")" }, classAttribute: "mat-step-header" }, usesInheritance: true, ngImport: i0, template: "<div class=\"mat-step-header-ripple mat-focus-indicator\" matRipple\n [matRippleTrigger]=\"_getHostElement()\"\n [matRippleDisabled]=\"disableRipple\"></div>\n\n<div class=\"mat-step-icon-state-{{state}} mat-step-icon\" [class.mat-step-icon-selected]=\"selected\">\n <div class=\"mat-step-icon-content\">\n @if (iconOverrides && iconOverrides[state]) {\n <ng-container\n [ngTemplateOutlet]=\"iconOverrides[state]\"\n [ngTemplateOutletContext]=\"_getIconContext()\"></ng-container>\n } @else {\n @switch (state) {\n @case ('number') {\n <span aria-hidden=\"true\">{{_getDefaultTextForState(state)}}</span>\n }\n\n @default {\n @if (state === 'done') {\n <span class=\"cdk-visually-hidden\">{{_intl.completedLabel}}</span>\n } @else if (state === 'edit') {\n <span class=\"cdk-visually-hidden\">{{_intl.editableLabel}}</span>\n }\n\n <mat-icon aria-hidden=\"true\">{{_getDefaultTextForState(state)}}</mat-icon>\n }\n }\n }\n </div>\n</div>\n<div class=\"mat-step-label\"\n [class.mat-step-label-active]=\"active\"\n [class.mat-step-label-selected]=\"selected\"\n [class.mat-step-label-error]=\"state == 'error'\">\n @if (_templateLabel(); as templateLabel) {\n <!-- If there is a label template, use it. -->\n <div class=\"mat-step-text-label\">\n <ng-container [ngTemplateOutlet]=\"templateLabel.template\"></ng-container>\n </div>\n } @else if (_stringLabel()) {\n <!-- If there is no label template, fall back to the text label. -->\n <div class=\"mat-step-text-label\">{{label}}</div>\n }\n\n @if (optional && state != 'error') {\n <div class=\"mat-step-optional\">{{_intl.optionalLabel}}</div>\n }\n\n @if (state === 'error') {\n <div class=\"mat-step-sub-label-error\">{{errorMessage}}</div>\n }\n</div>\n\n", styles: [".mat-step-header{overflow:hidden;outline:none;cursor:pointer;position:relative;box-sizing:content-box;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-step-header:focus .mat-focus-indicator::before{content:\"\"}.mat-step-header:hover[aria-disabled=true]{cursor:default}.mat-step-header:hover:not([aria-disabled]),.mat-step-header:hover[aria-disabled=false]{background-color:var(--mat-stepper-header-hover-state-layer-color)}.mat-step-header.cdk-keyboard-focused,.mat-step-header.cdk-program-focused{background-color:var(--mat-stepper-header-focus-state-layer-color)}@media(hover: none){.mat-step-header:hover{background:none}}.cdk-high-contrast-active .mat-step-header{outline:solid 1px}.cdk-high-contrast-active .mat-step-header[aria-selected=true] .mat-step-label{text-decoration:underline}.cdk-high-contrast-active .mat-step-header[aria-disabled=true]{outline-color:GrayText}.cdk-high-contrast-active .mat-step-header[aria-disabled=true] .mat-step-label,.cdk-high-contrast-active .mat-step-header[aria-disabled=true] .mat-step-icon,.cdk-high-contrast-active .mat-step-header[aria-disabled=true] .mat-step-optional{color:GrayText}.mat-step-optional{font-size:12px;color:var(--mat-stepper-header-optional-label-text-color)}.mat-step-sub-label-error{font-size:12px;font-weight:normal}.mat-step-icon{border-radius:50%;height:24px;width:24px;flex-shrink:0;position:relative;color:var(--mat-stepper-header-icon-foreground-color);background-color:var(--mat-stepper-header-icon-background-color)}.mat-step-icon-content{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);display:flex}.mat-step-icon .mat-icon{font-size:16px;height:16px;width:16px}.mat-step-icon-state-error{background-color:var(--mat-stepper-header-error-state-icon-background-color);color:var(--mat-stepper-header-error-state-icon-foreground-color)}.mat-step-icon-state-error .mat-icon{font-size:24px;height:24px;width:24px}.mat-step-label{display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:50px;vertical-align:middle;font-family:var(--mat-stepper-header-label-text-font);font-size:var(--mat-stepper-header-label-text-size);font-weight:var(--mat-stepper-header-label-text-weight);color:var(--mat-stepper-header-label-text-color)}.mat-step-label.mat-step-label-active{color:var(--mat-stepper-header-selected-state-label-text-color)}.mat-step-label.mat-step-label-error{color:var(--mat-stepper-header-error-state-label-text-color);font-size:var(--mat-stepper-header-error-state-label-text-size)}.mat-step-label.mat-step-label-selected{font-size:var(--mat-stepper-header-selected-state-label-text-size);font-weight:var(--mat-stepper-header-selected-state-label-text-weight)}.mat-step-text-label{text-overflow:ellipsis;overflow:hidden}.mat-step-header .mat-step-header-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-step-icon-selected{background-color:var(--mat-stepper-header-selected-state-icon-background-color);color:var(--mat-stepper-header-selected-state-icon-foreground-color)}.mat-step-icon-state-done{background-color:var(--mat-stepper-header-done-state-icon-background-color);color:var(--mat-stepper-header-done-state-icon-foreground-color)}.mat-step-icon-state-edit{background-color:var(--mat-stepper-header-edit-state-icon-background-color);color:var(--mat-stepper-header-edit-state-icon-foreground-color)}"], dependencies: [{ kind: "directive", type: MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
115
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0-next.2", ngImport: i0, type: MatStepHeader, deps: [{ token: MatStepperIntl }, { token: i2.FocusMonitor }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
116
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.0-next.2", type: MatStepHeader, isStandalone: true, selector: "mat-step-header", inputs: { state: "state", label: "label", errorMessage: "errorMessage", iconOverrides: "iconOverrides", index: "index", selected: "selected", active: "active", optional: "optional", disableRipple: "disableRipple", color: "color" }, host: { attributes: { "role": "tab" }, properties: { "class": "\"mat-\" + (color || \"primary\")" }, classAttribute: "mat-step-header" }, usesInheritance: true, ngImport: i0, template: "<div class=\"mat-step-header-ripple mat-focus-indicator\" matRipple\n [matRippleTrigger]=\"_getHostElement()\"\n [matRippleDisabled]=\"disableRipple\"></div>\n\n<div class=\"mat-step-icon-state-{{state}} mat-step-icon\" [class.mat-step-icon-selected]=\"selected\">\n <div class=\"mat-step-icon-content\">\n @if (iconOverrides && iconOverrides[state]) {\n <ng-container\n [ngTemplateOutlet]=\"iconOverrides[state]\"\n [ngTemplateOutletContext]=\"_getIconContext()\"></ng-container>\n } @else {\n @switch (state) {\n @case ('number') {\n <span aria-hidden=\"true\">{{_getDefaultTextForState(state)}}</span>\n }\n\n @default {\n @if (state === 'done') {\n <span class=\"cdk-visually-hidden\">{{_intl.completedLabel}}</span>\n } @else if (state === 'edit') {\n <span class=\"cdk-visually-hidden\">{{_intl.editableLabel}}</span>\n }\n\n <mat-icon aria-hidden=\"true\">{{_getDefaultTextForState(state)}}</mat-icon>\n }\n }\n }\n </div>\n</div>\n<div class=\"mat-step-label\"\n [class.mat-step-label-active]=\"active\"\n [class.mat-step-label-selected]=\"selected\"\n [class.mat-step-label-error]=\"state == 'error'\">\n @if (_templateLabel(); as templateLabel) {\n <!-- If there is a label template, use it. -->\n <div class=\"mat-step-text-label\">\n <ng-container [ngTemplateOutlet]=\"templateLabel.template\"></ng-container>\n </div>\n } @else if (_stringLabel()) {\n <!-- If there is no label template, fall back to the text label. -->\n <div class=\"mat-step-text-label\">{{label}}</div>\n }\n\n @if (optional && state != 'error') {\n <div class=\"mat-step-optional\">{{_intl.optionalLabel}}</div>\n }\n\n @if (state === 'error') {\n <div class=\"mat-step-sub-label-error\">{{errorMessage}}</div>\n }\n</div>\n\n", styles: [".mat-step-header{overflow:hidden;outline:none;cursor:pointer;position:relative;box-sizing:content-box;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-step-header:focus .mat-focus-indicator::before{content:\"\"}.mat-step-header:hover[aria-disabled=true]{cursor:default}.mat-step-header:hover:not([aria-disabled]),.mat-step-header:hover[aria-disabled=false]{background-color:var(--mat-stepper-header-hover-state-layer-color)}.mat-step-header.cdk-keyboard-focused,.mat-step-header.cdk-program-focused{background-color:var(--mat-stepper-header-focus-state-layer-color)}@media(hover: none){.mat-step-header:hover{background:none}}.cdk-high-contrast-active .mat-step-header{outline:solid 1px}.cdk-high-contrast-active .mat-step-header[aria-selected=true] .mat-step-label{text-decoration:underline}.cdk-high-contrast-active .mat-step-header[aria-disabled=true]{outline-color:GrayText}.cdk-high-contrast-active .mat-step-header[aria-disabled=true] .mat-step-label,.cdk-high-contrast-active .mat-step-header[aria-disabled=true] .mat-step-icon,.cdk-high-contrast-active .mat-step-header[aria-disabled=true] .mat-step-optional{color:GrayText}.mat-step-optional{font-size:12px;color:var(--mat-stepper-header-optional-label-text-color)}.mat-step-sub-label-error{font-size:12px;font-weight:normal}.mat-step-icon{border-radius:50%;height:24px;width:24px;flex-shrink:0;position:relative;color:var(--mat-stepper-header-icon-foreground-color);background-color:var(--mat-stepper-header-icon-background-color)}.mat-step-icon-content{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);display:flex}.mat-step-icon .mat-icon{font-size:16px;height:16px;width:16px}.mat-step-icon-state-error{background-color:var(--mat-stepper-header-error-state-icon-background-color);color:var(--mat-stepper-header-error-state-icon-foreground-color)}.mat-step-icon-state-error .mat-icon{font-size:24px;height:24px;width:24px}.mat-step-label{display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:50px;vertical-align:middle;font-family:var(--mat-stepper-header-label-text-font);font-size:var(--mat-stepper-header-label-text-size);font-weight:var(--mat-stepper-header-label-text-weight);color:var(--mat-stepper-header-label-text-color)}.mat-step-label.mat-step-label-active{color:var(--mat-stepper-header-selected-state-label-text-color)}.mat-step-label.mat-step-label-error{color:var(--mat-stepper-header-error-state-label-text-color);font-size:var(--mat-stepper-header-error-state-label-text-size)}.mat-step-label.mat-step-label-selected{font-size:var(--mat-stepper-header-selected-state-label-text-size);font-weight:var(--mat-stepper-header-selected-state-label-text-weight)}.mat-step-text-label{text-overflow:ellipsis;overflow:hidden}.mat-step-header .mat-step-header-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-step-icon-selected{background-color:var(--mat-stepper-header-selected-state-icon-background-color);color:var(--mat-stepper-header-selected-state-icon-foreground-color)}.mat-step-icon-state-done{background-color:var(--mat-stepper-header-done-state-icon-background-color);color:var(--mat-stepper-header-done-state-icon-foreground-color)}.mat-step-icon-state-edit{background-color:var(--mat-stepper-header-edit-state-icon-background-color);color:var(--mat-stepper-header-edit-state-icon-foreground-color)}"], dependencies: [{ kind: "directive", type: MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
117
117
  }
118
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: MatStepHeader, decorators: [{
118
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0-next.2", ngImport: i0, type: MatStepHeader, decorators: [{
119
119
  type: Component,
120
120
  args: [{ selector: 'mat-step-header', host: {
121
121
  'class': 'mat-step-header',
@@ -190,10 +190,10 @@ class MatStepperIcon {
190
190
  constructor(templateRef) {
191
191
  this.templateRef = templateRef;
192
192
  }
193
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: MatStepperIcon, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
194
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.4", type: MatStepperIcon, isStandalone: true, selector: "ng-template[matStepperIcon]", inputs: { name: ["matStepperIcon", "name"] }, ngImport: i0 }); }
193
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0-next.2", ngImport: i0, type: MatStepperIcon, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
194
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.1.0-next.2", type: MatStepperIcon, isStandalone: true, selector: "ng-template[matStepperIcon]", inputs: { name: ["matStepperIcon", "name"] }, ngImport: i0 }); }
195
195
  }
196
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: MatStepperIcon, decorators: [{
196
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0-next.2", ngImport: i0, type: MatStepperIcon, decorators: [{
197
197
  type: Directive,
198
198
  args: [{
199
199
  selector: 'ng-template[matStepperIcon]',
@@ -211,10 +211,10 @@ class MatStepContent {
211
211
  constructor(_template) {
212
212
  this._template = _template;
213
213
  }
214
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: MatStepContent, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
215
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.4", type: MatStepContent, isStandalone: true, selector: "ng-template[matStepContent]", ngImport: i0 }); }
214
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0-next.2", ngImport: i0, type: MatStepContent, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
215
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.1.0-next.2", type: MatStepContent, isStandalone: true, selector: "ng-template[matStepContent]", ngImport: i0 }); }
216
216
  }
217
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: MatStepContent, decorators: [{
217
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0-next.2", ngImport: i0, type: MatStepContent, decorators: [{
218
218
  type: Directive,
219
219
  args: [{
220
220
  selector: 'ng-template[matStepContent]',
@@ -255,13 +255,13 @@ class MatStep extends CdkStep {
255
255
  const customErrorState = !!(control && control.invalid && this.interacted);
256
256
  return originalErrorState || customErrorState;
257
257
  }
258
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: MatStep, deps: [{ token: forwardRef(() => MatStepper) }, { token: i1.ErrorStateMatcher, skipSelf: true }, { token: i0.ViewContainerRef }, { token: STEPPER_GLOBAL_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
259
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.4", type: MatStep, isStandalone: true, selector: "mat-step", inputs: { color: "color" }, providers: [
258
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0-next.2", ngImport: i0, type: MatStep, deps: [{ token: forwardRef(() => MatStepper) }, { token: i1.ErrorStateMatcher, skipSelf: true }, { token: i0.ViewContainerRef }, { token: STEPPER_GLOBAL_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
259
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.0-next.2", type: MatStep, isStandalone: true, selector: "mat-step", inputs: { color: "color" }, providers: [
260
260
  { provide: ErrorStateMatcher, useExisting: MatStep },
261
261
  { provide: CdkStep, useExisting: MatStep },
262
262
  ], queries: [{ propertyName: "stepLabel", first: true, predicate: MatStepLabel, descendants: true }, { propertyName: "_lazyContent", first: true, predicate: MatStepContent, descendants: true }], exportAs: ["matStep"], usesInheritance: true, ngImport: i0, template: "<ng-template>\n <ng-content></ng-content>\n <ng-template [cdkPortalOutlet]=\"_portal\"></ng-template>\n</ng-template>\n", dependencies: [{ kind: "directive", type: CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
263
263
  }
264
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: MatStep, decorators: [{
264
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0-next.2", ngImport: i0, type: MatStep, decorators: [{
265
265
  type: Component,
266
266
  args: [{ selector: 'mat-step', providers: [
267
267
  { provide: ErrorStateMatcher, useExisting: MatStep },
@@ -354,13 +354,13 @@ class MatStepper extends CdkStepper {
354
354
  ? DEFAULT_HORIZONTAL_ANIMATION_DURATION
355
355
  : DEFAULT_VERTICAL_ANIMATION_DURATION;
356
356
  }
357
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: MatStepper, deps: [{ token: i2$1.Directionality, optional: true }, { token: i0.ChangeDetectorRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
358
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.0.4", type: MatStepper, isStandalone: true, selector: "mat-stepper, mat-vertical-stepper, mat-horizontal-stepper, [matStepper]", inputs: { selectedIndex: "selectedIndex", disableRipple: "disableRipple", color: "color", labelPosition: "labelPosition", headerPosition: "headerPosition", animationDuration: "animationDuration" }, outputs: { animationDone: "animationDone" }, host: { attributes: { "role": "tablist", "ngSkipHydration": "" }, properties: { "class.mat-stepper-horizontal": "orientation === \"horizontal\"", "class.mat-stepper-vertical": "orientation === \"vertical\"", "class.mat-stepper-label-position-end": "orientation === \"horizontal\" && labelPosition == \"end\"", "class.mat-stepper-label-position-bottom": "orientation === \"horizontal\" && labelPosition == \"bottom\"", "class.mat-stepper-header-position-bottom": "headerPosition === \"bottom\"", "attr.aria-orientation": "orientation" } }, providers: [{ provide: CdkStepper, useExisting: MatStepper }], queries: [{ propertyName: "_steps", predicate: MatStep, descendants: true }, { propertyName: "_icons", predicate: MatStepperIcon, descendants: true }], viewQueries: [{ propertyName: "_stepHeader", predicate: MatStepHeader, descendants: true }], exportAs: ["matStepper", "matVerticalStepper", "matHorizontalStepper"], usesInheritance: true, ngImport: i0, template: "@switch (orientation) {\n @case ('horizontal') {\n <div class=\"mat-horizontal-stepper-wrapper\">\n <div class=\"mat-horizontal-stepper-header-container\">\n @for (step of steps; track step; let i = $index, isLast = $last) {\n <ng-container\n [ngTemplateOutlet]=\"stepTemplate\"\n [ngTemplateOutletContext]=\"{step: step, i: i}\"></ng-container>\n @if (!isLast) {\n <div class=\"mat-stepper-horizontal-line\"></div>\n }\n }\n </div>\n\n <div class=\"mat-horizontal-content-container\">\n @for (step of steps; track step; let i = $index) {\n <div class=\"mat-horizontal-stepper-content\" role=\"tabpanel\"\n [@horizontalStepTransition]=\"{\n 'value': _getAnimationDirection(i),\n 'params': {'animationDuration': _getAnimationDuration()}\n }\"\n (@horizontalStepTransition.done)=\"_animationDone.next($event)\"\n [id]=\"_getStepContentId(i)\"\n [attr.aria-labelledby]=\"_getStepLabelId(i)\"\n [class.mat-horizontal-stepper-content-inactive]=\"selectedIndex !== i\">\n <ng-container [ngTemplateOutlet]=\"step.content\"></ng-container>\n </div>\n }\n </div>\n </div>\n }\n\n @case ('vertical') {\n @for (step of steps; track step; let i = $index, isLast = $last) {\n <div class=\"mat-step\">\n <ng-container\n [ngTemplateOutlet]=\"stepTemplate\"\n [ngTemplateOutletContext]=\"{step: step, i: i}\"></ng-container>\n <div class=\"mat-vertical-content-container\" [class.mat-stepper-vertical-line]=\"!isLast\">\n <div class=\"mat-vertical-stepper-content\" role=\"tabpanel\"\n [@verticalStepTransition]=\"{\n 'value': _getAnimationDirection(i),\n 'params': {'animationDuration': _getAnimationDuration()}\n }\"\n (@verticalStepTransition.done)=\"_animationDone.next($event)\"\n [id]=\"_getStepContentId(i)\"\n [attr.aria-labelledby]=\"_getStepLabelId(i)\"\n [class.mat-vertical-stepper-content-inactive]=\"selectedIndex !== i\">\n <div class=\"mat-vertical-content\">\n <ng-container [ngTemplateOutlet]=\"step.content\"></ng-container>\n </div>\n </div>\n </div>\n </div>\n }\n }\n}\n\n<!-- Common step templating -->\n<ng-template let-step=\"step\" let-i=\"i\" #stepTemplate>\n <mat-step-header\n [class.mat-horizontal-stepper-header]=\"orientation === 'horizontal'\"\n [class.mat-vertical-stepper-header]=\"orientation === 'vertical'\"\n (click)=\"step.select()\"\n (keydown)=\"_onKeydown($event)\"\n [tabIndex]=\"_getFocusIndex() === i ? 0 : -1\"\n [id]=\"_getStepLabelId(i)\"\n [attr.aria-posinset]=\"i + 1\"\n [attr.aria-setsize]=\"steps.length\"\n [attr.aria-controls]=\"_getStepContentId(i)\"\n [attr.aria-selected]=\"selectedIndex == i\"\n [attr.aria-label]=\"step.ariaLabel || null\"\n [attr.aria-labelledby]=\"(!step.ariaLabel && step.ariaLabelledby) ? step.ariaLabelledby : null\"\n [attr.aria-disabled]=\"_stepIsNavigable(i, step) ? null : true\"\n [index]=\"i\"\n [state]=\"_getIndicatorType(i, step.state)\"\n [label]=\"step.stepLabel || step.label\"\n [selected]=\"selectedIndex === i\"\n [active]=\"_stepIsNavigable(i, step)\"\n [optional]=\"step.optional\"\n [errorMessage]=\"step.errorMessage\"\n [iconOverrides]=\"_iconOverrides\"\n [disableRipple]=\"disableRipple || !_stepIsNavigable(i, step)\"\n [color]=\"step.color || color\"></mat-step-header>\n</ng-template>\n", styles: [".mat-stepper-vertical,.mat-stepper-horizontal{display:block;font-family:var(--mat-stepper-container-text-font);background:var(--mat-stepper-container-color)}.mat-horizontal-stepper-header-container{white-space:nowrap;display:flex;align-items:center}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header-container{align-items:flex-start}.mat-stepper-header-position-bottom .mat-horizontal-stepper-header-container{order:1}.mat-stepper-horizontal-line{border-top-width:1px;border-top-style:solid;flex:auto;height:0;margin:0 -16px;min-width:32px;border-top-color:var(--mat-stepper-line-color)}.mat-stepper-label-position-bottom .mat-stepper-horizontal-line{margin:0;min-width:0;position:relative;top:calc(calc((var(--mat-stepper-header-height) - 24px) / 2) + 12px)}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:first-child)::before,[dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:last-child)::before,.mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:last-child)::after,[dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:first-child)::after{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px)}.mat-horizontal-stepper-header{display:flex;height:72px;overflow:hidden;align-items:center;padding:0 24px;height:var(--mat-stepper-header-height)}.mat-horizontal-stepper-header .mat-step-icon{margin-right:8px;flex:none}[dir=rtl] .mat-horizontal-stepper-header .mat-step-icon{margin-right:0;margin-left:8px}.mat-horizontal-stepper-header::before,.mat-horizontal-stepper-header::after{border-top-color:var(--mat-stepper-line-color)}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header{padding:calc((var(--mat-stepper-header-height) - 24px) / 2) 24px}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header::before,.mat-stepper-label-position-bottom .mat-horizontal-stepper-header::after{top:calc(calc((var(--mat-stepper-header-height) - 24px) / 2) + 12px)}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header{box-sizing:border-box;flex-direction:column;height:auto}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:last-child)::after,[dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:first-child)::after{right:0}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:first-child)::before,[dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:last-child)::before{left:0}[dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:last-child::before,[dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:first-child::after{display:none}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header .mat-step-icon{margin-right:0;margin-left:0}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header .mat-step-label{padding:16px 0 0 0;text-align:center;width:100%}.mat-vertical-stepper-header{display:flex;align-items:center;height:24px;padding:calc((var(--mat-stepper-header-height) - 24px) / 2) 24px}.mat-vertical-stepper-header .mat-step-icon{margin-right:12px}[dir=rtl] .mat-vertical-stepper-header .mat-step-icon{margin-right:0;margin-left:12px}.mat-horizontal-stepper-wrapper{display:flex;flex-direction:column}.mat-horizontal-stepper-content{outline:0}.mat-horizontal-stepper-content.mat-horizontal-stepper-content-inactive{height:0;overflow:hidden}.mat-horizontal-stepper-content:not(.mat-horizontal-stepper-content-inactive){visibility:inherit !important}.mat-horizontal-content-container{overflow:hidden;padding:0 24px 24px 24px}.cdk-high-contrast-active .mat-horizontal-content-container{outline:solid 1px}.mat-stepper-header-position-bottom .mat-horizontal-content-container{padding:24px 24px 0 24px}.mat-vertical-content-container{margin-left:36px;border:0;position:relative}.cdk-high-contrast-active .mat-vertical-content-container{outline:solid 1px}[dir=rtl] .mat-vertical-content-container{margin-left:0;margin-right:36px}.mat-stepper-vertical-line::before{content:\"\";position:absolute;left:0;border-left-width:1px;border-left-style:solid;border-left-color:var(--mat-stepper-line-color);top:calc(8px - calc((var(--mat-stepper-header-height) - 24px) / 2));bottom:calc(8px - calc((var(--mat-stepper-header-height) - 24px) / 2))}[dir=rtl] .mat-stepper-vertical-line::before{left:auto;right:0}.mat-vertical-stepper-content{overflow:hidden;outline:0}.mat-vertical-stepper-content:not(.mat-vertical-stepper-content-inactive){visibility:inherit !important}.mat-vertical-content{padding:0 24px 24px 24px}.mat-step:last-child .mat-vertical-content-container{border:none}"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: MatStepHeader, selector: "mat-step-header", inputs: ["state", "label", "errorMessage", "iconOverrides", "index", "selected", "active", "optional", "disableRipple", "color"] }], animations: [
357
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0-next.2", ngImport: i0, type: MatStepper, deps: [{ token: i2$1.Directionality, optional: true }, { token: i0.ChangeDetectorRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
358
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.0-next.2", type: MatStepper, isStandalone: true, selector: "mat-stepper, mat-vertical-stepper, mat-horizontal-stepper, [matStepper]", inputs: { selectedIndex: "selectedIndex", disableRipple: "disableRipple", color: "color", labelPosition: "labelPosition", headerPosition: "headerPosition", animationDuration: "animationDuration" }, outputs: { animationDone: "animationDone" }, host: { attributes: { "role": "tablist", "ngSkipHydration": "" }, properties: { "class.mat-stepper-horizontal": "orientation === \"horizontal\"", "class.mat-stepper-vertical": "orientation === \"vertical\"", "class.mat-stepper-label-position-end": "orientation === \"horizontal\" && labelPosition == \"end\"", "class.mat-stepper-label-position-bottom": "orientation === \"horizontal\" && labelPosition == \"bottom\"", "class.mat-stepper-header-position-bottom": "headerPosition === \"bottom\"", "attr.aria-orientation": "orientation" } }, providers: [{ provide: CdkStepper, useExisting: MatStepper }], queries: [{ propertyName: "_steps", predicate: MatStep, descendants: true }, { propertyName: "_icons", predicate: MatStepperIcon, descendants: true }], viewQueries: [{ propertyName: "_stepHeader", predicate: MatStepHeader, descendants: true }], exportAs: ["matStepper", "matVerticalStepper", "matHorizontalStepper"], usesInheritance: true, ngImport: i0, template: "@switch (orientation) {\n @case ('horizontal') {\n <div class=\"mat-horizontal-stepper-wrapper\">\n <div class=\"mat-horizontal-stepper-header-container\">\n @for (step of steps; track step; let i = $index, isLast = $last) {\n <ng-container\n [ngTemplateOutlet]=\"stepTemplate\"\n [ngTemplateOutletContext]=\"{step: step, i: i}\"></ng-container>\n @if (!isLast) {\n <div class=\"mat-stepper-horizontal-line\"></div>\n }\n }\n </div>\n\n <div class=\"mat-horizontal-content-container\">\n @for (step of steps; track step; let i = $index) {\n <div class=\"mat-horizontal-stepper-content\" role=\"tabpanel\"\n [@horizontalStepTransition]=\"{\n 'value': _getAnimationDirection(i),\n 'params': {'animationDuration': _getAnimationDuration()}\n }\"\n (@horizontalStepTransition.done)=\"_animationDone.next($event)\"\n [id]=\"_getStepContentId(i)\"\n [attr.aria-labelledby]=\"_getStepLabelId(i)\"\n [class.mat-horizontal-stepper-content-inactive]=\"selectedIndex !== i\">\n <ng-container [ngTemplateOutlet]=\"step.content\"></ng-container>\n </div>\n }\n </div>\n </div>\n }\n\n @case ('vertical') {\n @for (step of steps; track step; let i = $index, isLast = $last) {\n <div class=\"mat-step\">\n <ng-container\n [ngTemplateOutlet]=\"stepTemplate\"\n [ngTemplateOutletContext]=\"{step: step, i: i}\"></ng-container>\n <div class=\"mat-vertical-content-container\" [class.mat-stepper-vertical-line]=\"!isLast\">\n <div class=\"mat-vertical-stepper-content\" role=\"tabpanel\"\n [@verticalStepTransition]=\"{\n 'value': _getAnimationDirection(i),\n 'params': {'animationDuration': _getAnimationDuration()}\n }\"\n (@verticalStepTransition.done)=\"_animationDone.next($event)\"\n [id]=\"_getStepContentId(i)\"\n [attr.aria-labelledby]=\"_getStepLabelId(i)\"\n [class.mat-vertical-stepper-content-inactive]=\"selectedIndex !== i\">\n <div class=\"mat-vertical-content\">\n <ng-container [ngTemplateOutlet]=\"step.content\"></ng-container>\n </div>\n </div>\n </div>\n </div>\n }\n }\n}\n\n<!-- Common step templating -->\n<ng-template let-step=\"step\" let-i=\"i\" #stepTemplate>\n <mat-step-header\n [class.mat-horizontal-stepper-header]=\"orientation === 'horizontal'\"\n [class.mat-vertical-stepper-header]=\"orientation === 'vertical'\"\n (click)=\"step.select()\"\n (keydown)=\"_onKeydown($event)\"\n [tabIndex]=\"_getFocusIndex() === i ? 0 : -1\"\n [id]=\"_getStepLabelId(i)\"\n [attr.aria-posinset]=\"i + 1\"\n [attr.aria-setsize]=\"steps.length\"\n [attr.aria-controls]=\"_getStepContentId(i)\"\n [attr.aria-selected]=\"selectedIndex == i\"\n [attr.aria-label]=\"step.ariaLabel || null\"\n [attr.aria-labelledby]=\"(!step.ariaLabel && step.ariaLabelledby) ? step.ariaLabelledby : null\"\n [attr.aria-disabled]=\"_stepIsNavigable(i, step) ? null : true\"\n [index]=\"i\"\n [state]=\"_getIndicatorType(i, step.state)\"\n [label]=\"step.stepLabel || step.label\"\n [selected]=\"selectedIndex === i\"\n [active]=\"_stepIsNavigable(i, step)\"\n [optional]=\"step.optional\"\n [errorMessage]=\"step.errorMessage\"\n [iconOverrides]=\"_iconOverrides\"\n [disableRipple]=\"disableRipple || !_stepIsNavigable(i, step)\"\n [color]=\"step.color || color\"></mat-step-header>\n</ng-template>\n", styles: [".mat-stepper-vertical,.mat-stepper-horizontal{display:block;font-family:var(--mat-stepper-container-text-font);background:var(--mat-stepper-container-color)}.mat-horizontal-stepper-header-container{white-space:nowrap;display:flex;align-items:center}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header-container{align-items:flex-start}.mat-stepper-header-position-bottom .mat-horizontal-stepper-header-container{order:1}.mat-stepper-horizontal-line{border-top-width:1px;border-top-style:solid;flex:auto;height:0;margin:0 -16px;min-width:32px;border-top-color:var(--mat-stepper-line-color)}.mat-stepper-label-position-bottom .mat-stepper-horizontal-line{margin:0;min-width:0;position:relative;top:calc(calc((var(--mat-stepper-header-height) - 24px) / 2) + 12px)}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:first-child)::before,[dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:last-child)::before,.mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:last-child)::after,[dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:first-child)::after{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px)}.mat-horizontal-stepper-header{display:flex;height:72px;overflow:hidden;align-items:center;padding:0 24px;height:var(--mat-stepper-header-height)}.mat-horizontal-stepper-header .mat-step-icon{margin-right:8px;flex:none}[dir=rtl] .mat-horizontal-stepper-header .mat-step-icon{margin-right:0;margin-left:8px}.mat-horizontal-stepper-header::before,.mat-horizontal-stepper-header::after{border-top-color:var(--mat-stepper-line-color)}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header{padding:calc((var(--mat-stepper-header-height) - 24px) / 2) 24px}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header::before,.mat-stepper-label-position-bottom .mat-horizontal-stepper-header::after{top:calc(calc((var(--mat-stepper-header-height) - 24px) / 2) + 12px)}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header{box-sizing:border-box;flex-direction:column;height:auto}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:last-child)::after,[dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:first-child)::after{right:0}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:first-child)::before,[dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:last-child)::before{left:0}[dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:last-child::before,[dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:first-child::after{display:none}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header .mat-step-icon{margin-right:0;margin-left:0}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header .mat-step-label{padding:16px 0 0 0;text-align:center;width:100%}.mat-vertical-stepper-header{display:flex;align-items:center;height:24px;padding:calc((var(--mat-stepper-header-height) - 24px) / 2) 24px}.mat-vertical-stepper-header .mat-step-icon{margin-right:12px}[dir=rtl] .mat-vertical-stepper-header .mat-step-icon{margin-right:0;margin-left:12px}.mat-horizontal-stepper-wrapper{display:flex;flex-direction:column}.mat-horizontal-stepper-content{outline:0}.mat-horizontal-stepper-content.mat-horizontal-stepper-content-inactive{height:0;overflow:hidden}.mat-horizontal-stepper-content:not(.mat-horizontal-stepper-content-inactive){visibility:inherit !important}.mat-horizontal-content-container{overflow:hidden;padding:0 24px 24px 24px}.cdk-high-contrast-active .mat-horizontal-content-container{outline:solid 1px}.mat-stepper-header-position-bottom .mat-horizontal-content-container{padding:24px 24px 0 24px}.mat-vertical-content-container{margin-left:36px;border:0;position:relative}.cdk-high-contrast-active .mat-vertical-content-container{outline:solid 1px}[dir=rtl] .mat-vertical-content-container{margin-left:0;margin-right:36px}.mat-stepper-vertical-line::before{content:\"\";position:absolute;left:0;border-left-width:1px;border-left-style:solid;border-left-color:var(--mat-stepper-line-color);top:calc(8px - calc((var(--mat-stepper-header-height) - 24px) / 2));bottom:calc(8px - calc((var(--mat-stepper-header-height) - 24px) / 2))}[dir=rtl] .mat-stepper-vertical-line::before{left:auto;right:0}.mat-vertical-stepper-content{overflow:hidden;outline:0}.mat-vertical-stepper-content:not(.mat-vertical-stepper-content-inactive){visibility:inherit !important}.mat-vertical-content{padding:0 24px 24px 24px}.mat-step:last-child .mat-vertical-content-container{border:none}"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: MatStepHeader, selector: "mat-step-header", inputs: ["state", "label", "errorMessage", "iconOverrides", "index", "selected", "active", "optional", "disableRipple", "color"] }], animations: [
359
359
  matStepperAnimations.horizontalStepTransition,
360
360
  matStepperAnimations.verticalStepTransition,
361
361
  ], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
362
362
  }
363
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: MatStepper, decorators: [{
363
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0-next.2", ngImport: i0, type: MatStepper, decorators: [{
364
364
  type: Component,
365
365
  args: [{ selector: 'mat-stepper, mat-vertical-stepper, mat-horizontal-stepper, [matStepper]', exportAs: 'matStepper, matVerticalStepper, matHorizontalStepper', inputs: ['selectedIndex'], host: {
366
366
  '[class.mat-stepper-horizontal]': 'orientation === "horizontal"',
@@ -402,10 +402,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImpor
402
402
 
403
403
  /** Button that moves to the next step in a stepper workflow. */
404
404
  class MatStepperNext extends CdkStepperNext {
405
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: MatStepperNext, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
406
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.4", type: MatStepperNext, isStandalone: true, selector: "button[matStepperNext]", inputs: { type: "type" }, host: { properties: { "type": "type" }, classAttribute: "mat-stepper-next" }, usesInheritance: true, ngImport: i0 }); }
405
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0-next.2", ngImport: i0, type: MatStepperNext, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
406
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.1.0-next.2", type: MatStepperNext, isStandalone: true, selector: "button[matStepperNext]", inputs: { type: "type" }, host: { properties: { "type": "type" }, classAttribute: "mat-stepper-next" }, usesInheritance: true, ngImport: i0 }); }
407
407
  }
408
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: MatStepperNext, decorators: [{
408
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0-next.2", ngImport: i0, type: MatStepperNext, decorators: [{
409
409
  type: Directive,
410
410
  args: [{
411
411
  selector: 'button[matStepperNext]',
@@ -419,10 +419,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImpor
419
419
  }] });
420
420
  /** Button that moves to the previous step in a stepper workflow. */
421
421
  class MatStepperPrevious extends CdkStepperPrevious {
422
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: MatStepperPrevious, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
423
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.4", type: MatStepperPrevious, isStandalone: true, selector: "button[matStepperPrevious]", inputs: { type: "type" }, host: { properties: { "type": "type" }, classAttribute: "mat-stepper-previous" }, usesInheritance: true, ngImport: i0 }); }
422
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0-next.2", ngImport: i0, type: MatStepperPrevious, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
423
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.1.0-next.2", type: MatStepperPrevious, isStandalone: true, selector: "button[matStepperPrevious]", inputs: { type: "type" }, host: { properties: { "type": "type" }, classAttribute: "mat-stepper-previous" }, usesInheritance: true, ngImport: i0 }); }
424
424
  }
425
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: MatStepperPrevious, decorators: [{
425
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0-next.2", ngImport: i0, type: MatStepperPrevious, decorators: [{
426
426
  type: Directive,
427
427
  args: [{
428
428
  selector: 'button[matStepperPrevious]',
@@ -436,8 +436,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImpor
436
436
  }] });
437
437
 
438
438
  class MatStepperModule {
439
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: MatStepperModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
440
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.4", ngImport: i0, type: MatStepperModule, imports: [MatCommonModule,
439
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0-next.2", ngImport: i0, type: MatStepperModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
440
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.1.0-next.2", ngImport: i0, type: MatStepperModule, imports: [MatCommonModule,
441
441
  CommonModule,
442
442
  PortalModule,
443
443
  CdkStepperModule,
@@ -459,7 +459,7 @@ class MatStepperModule {
459
459
  MatStepHeader,
460
460
  MatStepperIcon,
461
461
  MatStepContent] }); }
462
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: MatStepperModule, providers: [MAT_STEPPER_INTL_PROVIDER, ErrorStateMatcher], imports: [MatCommonModule,
462
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.1.0-next.2", ngImport: i0, type: MatStepperModule, providers: [MAT_STEPPER_INTL_PROVIDER, ErrorStateMatcher], imports: [MatCommonModule,
463
463
  CommonModule,
464
464
  PortalModule,
465
465
  CdkStepperModule,
@@ -468,7 +468,7 @@ class MatStepperModule {
468
468
  MatStepper,
469
469
  MatStepHeader, MatCommonModule] }); }
470
470
  }
471
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: MatStepperModule, decorators: [{
471
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0-next.2", ngImport: i0, type: MatStepperModule, decorators: [{
472
472
  type: NgModule,
473
473
  args: [{
474
474
  imports: [
@@ -1 +1 @@
1
- {"version":3,"file":"stepper.mjs","sources":["../../../../../../src/material/stepper/step-label.ts","../../../../../../src/material/stepper/stepper-intl.ts","../../../../../../src/material/stepper/step-header.ts","../../../../../../src/material/stepper/step-header.html","../../../../../../src/material/stepper/stepper-animations.ts","../../../../../../src/material/stepper/stepper-icon.ts","../../../../../../src/material/stepper/step-content.ts","../../../../../../src/material/stepper/stepper.ts","../../../../../../src/material/stepper/step.html","../../../../../../src/material/stepper/stepper.html","../../../../../../src/material/stepper/stepper-button.ts","../../../../../../src/material/stepper/stepper-module.ts","../../../../../../src/material/stepper/stepper_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 {Directive} from '@angular/core';\nimport {CdkStepLabel} from '@angular/cdk/stepper';\n\n@Directive({\n selector: '[matStepLabel]',\n standalone: true,\n})\nexport class MatStepLabel extends CdkStepLabel {}\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 {Injectable, Optional, SkipSelf} from '@angular/core';\nimport {Subject} from 'rxjs';\n\n/** Stepper data that is required for internationalization. */\n@Injectable({providedIn: 'root'})\nexport class MatStepperIntl {\n /**\n * Stream that emits whenever the labels here are changed. Use this to notify\n * components if the labels have changed after initialization.\n */\n readonly changes: Subject<void> = new Subject<void>();\n\n /** Label that is rendered below optional steps. */\n optionalLabel: string = 'Optional';\n\n /** Label that is used to indicate step as completed to screen readers. */\n completedLabel: string = 'Completed';\n\n /** Label that is used to indicate step as editable to screen readers. */\n editableLabel: string = 'Editable';\n}\n\n/** @docs-private */\nexport function MAT_STEPPER_INTL_PROVIDER_FACTORY(parentIntl: MatStepperIntl) {\n return parentIntl || new MatStepperIntl();\n}\n\n/** @docs-private */\nexport const MAT_STEPPER_INTL_PROVIDER = {\n provide: MatStepperIntl,\n deps: [[new Optional(), new SkipSelf(), MatStepperIntl]],\n useFactory: MAT_STEPPER_INTL_PROVIDER_FACTORY,\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 {FocusMonitor, FocusOrigin} from '@angular/cdk/a11y';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Input,\n OnDestroy,\n ViewEncapsulation,\n TemplateRef,\n AfterViewInit,\n} from '@angular/core';\nimport {Subscription} from 'rxjs';\nimport {MatStepLabel} from './step-label';\nimport {MatStepperIntl} from './stepper-intl';\nimport {MatStepperIconContext} from './stepper-icon';\nimport {CdkStepHeader, StepState} from '@angular/cdk/stepper';\nimport {MatRipple, ThemePalette} from '@angular/material/core';\nimport {MatIcon} from '@angular/material/icon';\nimport {NgTemplateOutlet} from '@angular/common';\n\n@Component({\n selector: 'mat-step-header',\n templateUrl: 'step-header.html',\n styleUrls: ['step-header.css'],\n host: {\n 'class': 'mat-step-header',\n '[class]': '\"mat-\" + (color || \"primary\")',\n 'role': 'tab',\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [MatRipple, NgTemplateOutlet, MatIcon],\n})\nexport class MatStepHeader extends CdkStepHeader implements AfterViewInit, OnDestroy {\n private _intlSubscription: Subscription;\n\n /** State of the given step. */\n @Input() state: StepState;\n\n /** Label of the given step. */\n @Input() label: MatStepLabel | string;\n\n /** Error message to display when there's an error. */\n @Input() errorMessage: string;\n\n /** Overrides for the header icons, passed in via the stepper. */\n @Input() iconOverrides: {[key: string]: TemplateRef<MatStepperIconContext>};\n\n /** Index of the given step. */\n @Input() index: number;\n\n /** Whether the given step is selected. */\n @Input() selected: boolean;\n\n /** Whether the given step label is active. */\n @Input() active: boolean;\n\n /** Whether the given step is optional. */\n @Input() optional: boolean;\n\n /** Whether the ripple should be disabled. */\n @Input() disableRipple: boolean;\n\n /** Theme palette color of the step header. */\n @Input() color: ThemePalette;\n\n constructor(\n public _intl: MatStepperIntl,\n private _focusMonitor: FocusMonitor,\n _elementRef: ElementRef<HTMLElement>,\n changeDetectorRef: ChangeDetectorRef,\n ) {\n super(_elementRef);\n this._intlSubscription = _intl.changes.subscribe(() => changeDetectorRef.markForCheck());\n }\n\n ngAfterViewInit() {\n this._focusMonitor.monitor(this._elementRef, true);\n }\n\n ngOnDestroy() {\n this._intlSubscription.unsubscribe();\n this._focusMonitor.stopMonitoring(this._elementRef);\n }\n\n /** Focuses the step header. */\n override focus(origin?: FocusOrigin, options?: FocusOptions) {\n if (origin) {\n this._focusMonitor.focusVia(this._elementRef, origin, options);\n } else {\n this._elementRef.nativeElement.focus(options);\n }\n }\n\n /** Returns string label of given step if it is a text label. */\n _stringLabel(): string | null {\n return this.label instanceof MatStepLabel ? null : this.label;\n }\n\n /** Returns MatStepLabel if the label of given step is a template label. */\n _templateLabel(): MatStepLabel | null {\n return this.label instanceof MatStepLabel ? this.label : null;\n }\n\n /** Returns the host HTML element. */\n _getHostElement() {\n return this._elementRef.nativeElement;\n }\n\n /** Template context variables that are exposed to the `matStepperIcon` instances. */\n _getIconContext(): MatStepperIconContext {\n return {\n index: this.index,\n active: this.active,\n optional: this.optional,\n };\n }\n\n _getDefaultTextForState(state: StepState): string {\n if (state == 'number') {\n return `${this.index + 1}`;\n }\n if (state == 'edit') {\n return 'create';\n }\n if (state == 'error') {\n return 'warning';\n }\n return state;\n }\n}\n","<div class=\"mat-step-header-ripple mat-focus-indicator\" matRipple\n [matRippleTrigger]=\"_getHostElement()\"\n [matRippleDisabled]=\"disableRipple\"></div>\n\n<div class=\"mat-step-icon-state-{{state}} mat-step-icon\" [class.mat-step-icon-selected]=\"selected\">\n <div class=\"mat-step-icon-content\">\n @if (iconOverrides && iconOverrides[state]) {\n <ng-container\n [ngTemplateOutlet]=\"iconOverrides[state]\"\n [ngTemplateOutletContext]=\"_getIconContext()\"></ng-container>\n } @else {\n @switch (state) {\n @case ('number') {\n <span aria-hidden=\"true\">{{_getDefaultTextForState(state)}}</span>\n }\n\n @default {\n @if (state === 'done') {\n <span class=\"cdk-visually-hidden\">{{_intl.completedLabel}}</span>\n } @else if (state === 'edit') {\n <span class=\"cdk-visually-hidden\">{{_intl.editableLabel}}</span>\n }\n\n <mat-icon aria-hidden=\"true\">{{_getDefaultTextForState(state)}}</mat-icon>\n }\n }\n }\n </div>\n</div>\n<div class=\"mat-step-label\"\n [class.mat-step-label-active]=\"active\"\n [class.mat-step-label-selected]=\"selected\"\n [class.mat-step-label-error]=\"state == 'error'\">\n @if (_templateLabel(); as templateLabel) {\n <!-- If there is a label template, use it. -->\n <div class=\"mat-step-text-label\">\n <ng-container [ngTemplateOutlet]=\"templateLabel.template\"></ng-container>\n </div>\n } @else if (_stringLabel()) {\n <!-- If there is no label template, fall back to the text label. -->\n <div class=\"mat-step-text-label\">{{label}}</div>\n }\n\n @if (optional && state != 'error') {\n <div class=\"mat-step-optional\">{{_intl.optionalLabel}}</div>\n }\n\n @if (state === 'error') {\n <div class=\"mat-step-sub-label-error\">{{errorMessage}}</div>\n }\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 group,\n query,\n animateChild,\n} from '@angular/animations';\n\nexport const DEFAULT_HORIZONTAL_ANIMATION_DURATION = '500ms';\nexport const DEFAULT_VERTICAL_ANIMATION_DURATION = '225ms';\n\n/**\n * Animations used by the Material steppers.\n * @docs-private\n */\nexport const matStepperAnimations: {\n readonly horizontalStepTransition: AnimationTriggerMetadata;\n readonly verticalStepTransition: AnimationTriggerMetadata;\n} = {\n /** Animation that transitions the step along the X axis in a horizontal stepper. */\n horizontalStepTransition: trigger('horizontalStepTransition', [\n state('previous', style({transform: 'translate3d(-100%, 0, 0)', visibility: 'hidden'})),\n // Transition to `inherit`, rather than `visible`,\n // because visibility on a child element the one from the parent,\n // making this element focusable inside of a `hidden` element.\n state('current', style({transform: 'none', visibility: 'inherit'})),\n state('next', style({transform: 'translate3d(100%, 0, 0)', visibility: 'hidden'})),\n transition(\n '* => *',\n group([\n animate('{{animationDuration}} cubic-bezier(0.35, 0, 0.25, 1)'),\n query('@*', animateChild(), {optional: true}),\n ]),\n {\n params: {'animationDuration': DEFAULT_HORIZONTAL_ANIMATION_DURATION},\n },\n ),\n ]),\n\n /** Animation that transitions the step along the Y axis in a vertical stepper. */\n verticalStepTransition: trigger('verticalStepTransition', [\n state('previous', style({height: '0px', visibility: 'hidden'})),\n state('next', style({height: '0px', visibility: 'hidden'})),\n // Transition to `inherit`, rather than `visible`,\n // because visibility on a child element the one from the parent,\n // making this element focusable inside of a `hidden` element.\n state('current', style({height: '*', visibility: 'inherit'})),\n transition(\n '* <=> current',\n group([\n animate('{{animationDuration}} cubic-bezier(0.4, 0.0, 0.2, 1)'),\n query('@*', animateChild(), {optional: true}),\n ]),\n {\n params: {'animationDuration': DEFAULT_VERTICAL_ANIMATION_DURATION},\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 {Directive, Input, TemplateRef} from '@angular/core';\nimport {StepState} from '@angular/cdk/stepper';\n\n/** Template context available to an attached `matStepperIcon`. */\nexport interface MatStepperIconContext {\n /** Index of the step. */\n index: number;\n /** Whether the step is currently active. */\n active: boolean;\n /** Whether the step is optional. */\n optional: boolean;\n}\n\n/**\n * Template to be used to override the icons inside the step header.\n */\n@Directive({\n selector: 'ng-template[matStepperIcon]',\n standalone: true,\n})\nexport class MatStepperIcon {\n /** Name of the icon to be overridden. */\n @Input('matStepperIcon') name: StepState;\n\n constructor(public templateRef: TemplateRef<MatStepperIconContext>) {}\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, TemplateRef} from '@angular/core';\n\n/**\n * Content for a `mat-step` that will be rendered lazily.\n */\n@Directive({\n selector: 'ng-template[matStepContent]',\n standalone: true,\n})\nexport class MatStepContent {\n constructor(public _template: TemplateRef<any>) {}\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 {Directionality} from '@angular/cdk/bidi';\nimport {\n CdkStep,\n CdkStepper,\n StepContentPositionState,\n STEPPER_GLOBAL_OPTIONS,\n StepperOptions,\n} from '@angular/cdk/stepper';\nimport {AnimationEvent} from '@angular/animations';\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ContentChildren,\n ElementRef,\n EventEmitter,\n forwardRef,\n Inject,\n Input,\n OnDestroy,\n Optional,\n Output,\n QueryList,\n SkipSelf,\n TemplateRef,\n ViewChildren,\n ViewContainerRef,\n ViewEncapsulation,\n} from '@angular/core';\nimport {AbstractControl, FormGroupDirective, NgForm} from '@angular/forms';\nimport {ErrorStateMatcher, ThemePalette} from '@angular/material/core';\nimport {CdkPortalOutlet, TemplatePortal} from '@angular/cdk/portal';\nimport {Subject, Subscription} from 'rxjs';\nimport {takeUntil, distinctUntilChanged, map, startWith, switchMap} from 'rxjs/operators';\n\nimport {MatStepHeader} from './step-header';\nimport {MatStepLabel} from './step-label';\nimport {\n DEFAULT_HORIZONTAL_ANIMATION_DURATION,\n DEFAULT_VERTICAL_ANIMATION_DURATION,\n matStepperAnimations,\n} from './stepper-animations';\nimport {MatStepperIcon, MatStepperIconContext} from './stepper-icon';\nimport {MatStepContent} from './step-content';\nimport {NgTemplateOutlet} from '@angular/common';\n\n@Component({\n selector: 'mat-step',\n templateUrl: 'step.html',\n providers: [\n {provide: ErrorStateMatcher, useExisting: MatStep},\n {provide: CdkStep, useExisting: MatStep},\n ],\n encapsulation: ViewEncapsulation.None,\n exportAs: 'matStep',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [CdkPortalOutlet],\n})\nexport class MatStep extends CdkStep implements ErrorStateMatcher, AfterContentInit, OnDestroy {\n private _isSelected = Subscription.EMPTY;\n\n /** Content for step label given by `<ng-template matStepLabel>`. */\n // We need an initializer here to avoid a TS error.\n @ContentChild(MatStepLabel) override stepLabel: MatStepLabel = undefined!;\n\n /** Theme color for the particular step. */\n @Input() color: ThemePalette;\n\n /** Content that will be rendered lazily. */\n @ContentChild(MatStepContent, {static: false}) _lazyContent: MatStepContent;\n\n /** Currently-attached portal containing the lazy content. */\n _portal: TemplatePortal;\n\n constructor(\n @Inject(forwardRef(() => MatStepper)) stepper: MatStepper,\n @SkipSelf() private _errorStateMatcher: ErrorStateMatcher,\n private _viewContainerRef: ViewContainerRef,\n @Optional() @Inject(STEPPER_GLOBAL_OPTIONS) stepperOptions?: StepperOptions,\n ) {\n super(stepper, stepperOptions);\n }\n\n ngAfterContentInit() {\n this._isSelected = this._stepper.steps.changes\n .pipe(\n switchMap(() => {\n return this._stepper.selectionChange.pipe(\n map(event => event.selectedStep === this),\n startWith(this._stepper.selected === this),\n );\n }),\n )\n .subscribe(isSelected => {\n if (isSelected && this._lazyContent && !this._portal) {\n this._portal = new TemplatePortal(this._lazyContent._template, this._viewContainerRef!);\n }\n });\n }\n\n ngOnDestroy() {\n this._isSelected.unsubscribe();\n }\n\n /** Custom error state matcher that additionally checks for validity of interacted form. */\n isErrorState(control: AbstractControl | null, form: FormGroupDirective | NgForm | null): boolean {\n const originalErrorState = this._errorStateMatcher.isErrorState(control, form);\n\n // Custom error state checks for the validity of form that is not submitted or touched\n // since user can trigger a form change by calling for another step without directly\n // interacting with the current form.\n const customErrorState = !!(control && control.invalid && this.interacted);\n\n return originalErrorState || customErrorState;\n }\n}\n\n@Component({\n selector: 'mat-stepper, mat-vertical-stepper, mat-horizontal-stepper, [matStepper]',\n exportAs: 'matStepper, matVerticalStepper, matHorizontalStepper',\n templateUrl: 'stepper.html',\n styleUrls: ['stepper.css'],\n inputs: ['selectedIndex'],\n host: {\n '[class.mat-stepper-horizontal]': 'orientation === \"horizontal\"',\n '[class.mat-stepper-vertical]': 'orientation === \"vertical\"',\n '[class.mat-stepper-label-position-end]':\n 'orientation === \"horizontal\" && labelPosition == \"end\"',\n '[class.mat-stepper-label-position-bottom]':\n 'orientation === \"horizontal\" && labelPosition == \"bottom\"',\n '[class.mat-stepper-header-position-bottom]': 'headerPosition === \"bottom\"',\n '[attr.aria-orientation]': 'orientation',\n 'role': 'tablist',\n 'ngSkipHydration': '',\n },\n animations: [\n matStepperAnimations.horizontalStepTransition,\n matStepperAnimations.verticalStepTransition,\n ],\n providers: [{provide: CdkStepper, useExisting: MatStepper}],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [NgTemplateOutlet, MatStepHeader],\n})\nexport class MatStepper extends CdkStepper implements AfterContentInit {\n /** The list of step headers of the steps in the stepper. */\n // We need an initializer here to avoid a TS error.\n @ViewChildren(MatStepHeader) override _stepHeader: QueryList<MatStepHeader> =\n undefined as unknown as QueryList<MatStepHeader>;\n\n /** Full list of steps inside the stepper, including inside nested steppers. */\n // We need an initializer here to avoid a TS error.\n @ContentChildren(MatStep, {descendants: true}) override _steps: QueryList<MatStep> =\n undefined as unknown as QueryList<MatStep>;\n\n /** Steps that belong to the current stepper, excluding ones from nested steppers. */\n override readonly steps: QueryList<MatStep> = new QueryList<MatStep>();\n\n /** Custom icon overrides passed in by the consumer. */\n @ContentChildren(MatStepperIcon, {descendants: true}) _icons: QueryList<MatStepperIcon>;\n\n /** Event emitted when the current step is done transitioning in. */\n @Output() readonly animationDone: EventEmitter<void> = new EventEmitter<void>();\n\n /** Whether ripples should be disabled for the step headers. */\n @Input() disableRipple: boolean;\n\n /** Theme color for all of the steps in stepper. */\n @Input() color: ThemePalette;\n\n /**\n * Whether the label should display in bottom or end position.\n * Only applies in the `horizontal` orientation.\n */\n @Input()\n labelPosition: 'bottom' | 'end' = 'end';\n\n /**\n * Position of the stepper's header.\n * Only applies in the `horizontal` orientation.\n */\n @Input()\n headerPosition: 'top' | 'bottom' = 'top';\n\n /** Consumer-specified template-refs to be used to override the header icons. */\n _iconOverrides: Record<string, TemplateRef<MatStepperIconContext>> = {};\n\n /** Stream of animation `done` events when the body expands/collapses. */\n readonly _animationDone = new Subject<AnimationEvent>();\n\n /** Duration for the animation. Will be normalized to milliseconds if no units are set. */\n @Input()\n get animationDuration(): string {\n return this._animationDuration;\n }\n set animationDuration(value: string) {\n this._animationDuration = /^\\d+$/.test(value) ? value + 'ms' : value;\n }\n private _animationDuration = '';\n\n constructor(\n @Optional() dir: Directionality,\n changeDetectorRef: ChangeDetectorRef,\n elementRef: ElementRef<HTMLElement>,\n ) {\n super(dir, changeDetectorRef, elementRef);\n const nodeName = elementRef.nativeElement.nodeName.toLowerCase();\n this.orientation = nodeName === 'mat-vertical-stepper' ? 'vertical' : 'horizontal';\n }\n\n override ngAfterContentInit() {\n super.ngAfterContentInit();\n this._icons.forEach(({name, templateRef}) => (this._iconOverrides[name] = templateRef));\n\n // Mark the component for change detection whenever the content children query changes\n this.steps.changes.pipe(takeUntil(this._destroyed)).subscribe(() => {\n this._stateChanged();\n });\n\n this._animationDone\n .pipe(\n // This needs a `distinctUntilChanged` in order to avoid emitting the same event twice due\n // to a bug in animations where the `.done` callback gets invoked twice on some browsers.\n // See https://github.com/angular/angular/issues/24084\n distinctUntilChanged((x, y) => x.fromState === y.fromState && x.toState === y.toState),\n takeUntil(this._destroyed),\n )\n .subscribe(event => {\n if ((event.toState as StepContentPositionState) === 'current') {\n this.animationDone.emit();\n }\n });\n }\n\n _stepIsNavigable(index: number, step: MatStep): boolean {\n return step.completed || this.selectedIndex === index || !this.linear;\n }\n\n _getAnimationDuration() {\n if (this.animationDuration) {\n return this.animationDuration;\n }\n\n return this.orientation === 'horizontal'\n ? DEFAULT_HORIZONTAL_ANIMATION_DURATION\n : DEFAULT_VERTICAL_ANIMATION_DURATION;\n }\n}\n","<ng-template>\n <ng-content></ng-content>\n <ng-template [cdkPortalOutlet]=\"_portal\"></ng-template>\n</ng-template>\n","@switch (orientation) {\n @case ('horizontal') {\n <div class=\"mat-horizontal-stepper-wrapper\">\n <div class=\"mat-horizontal-stepper-header-container\">\n @for (step of steps; track step; let i = $index, isLast = $last) {\n <ng-container\n [ngTemplateOutlet]=\"stepTemplate\"\n [ngTemplateOutletContext]=\"{step: step, i: i}\"></ng-container>\n @if (!isLast) {\n <div class=\"mat-stepper-horizontal-line\"></div>\n }\n }\n </div>\n\n <div class=\"mat-horizontal-content-container\">\n @for (step of steps; track step; let i = $index) {\n <div class=\"mat-horizontal-stepper-content\" role=\"tabpanel\"\n [@horizontalStepTransition]=\"{\n 'value': _getAnimationDirection(i),\n 'params': {'animationDuration': _getAnimationDuration()}\n }\"\n (@horizontalStepTransition.done)=\"_animationDone.next($event)\"\n [id]=\"_getStepContentId(i)\"\n [attr.aria-labelledby]=\"_getStepLabelId(i)\"\n [class.mat-horizontal-stepper-content-inactive]=\"selectedIndex !== i\">\n <ng-container [ngTemplateOutlet]=\"step.content\"></ng-container>\n </div>\n }\n </div>\n </div>\n }\n\n @case ('vertical') {\n @for (step of steps; track step; let i = $index, isLast = $last) {\n <div class=\"mat-step\">\n <ng-container\n [ngTemplateOutlet]=\"stepTemplate\"\n [ngTemplateOutletContext]=\"{step: step, i: i}\"></ng-container>\n <div class=\"mat-vertical-content-container\" [class.mat-stepper-vertical-line]=\"!isLast\">\n <div class=\"mat-vertical-stepper-content\" role=\"tabpanel\"\n [@verticalStepTransition]=\"{\n 'value': _getAnimationDirection(i),\n 'params': {'animationDuration': _getAnimationDuration()}\n }\"\n (@verticalStepTransition.done)=\"_animationDone.next($event)\"\n [id]=\"_getStepContentId(i)\"\n [attr.aria-labelledby]=\"_getStepLabelId(i)\"\n [class.mat-vertical-stepper-content-inactive]=\"selectedIndex !== i\">\n <div class=\"mat-vertical-content\">\n <ng-container [ngTemplateOutlet]=\"step.content\"></ng-container>\n </div>\n </div>\n </div>\n </div>\n }\n }\n}\n\n<!-- Common step templating -->\n<ng-template let-step=\"step\" let-i=\"i\" #stepTemplate>\n <mat-step-header\n [class.mat-horizontal-stepper-header]=\"orientation === 'horizontal'\"\n [class.mat-vertical-stepper-header]=\"orientation === 'vertical'\"\n (click)=\"step.select()\"\n (keydown)=\"_onKeydown($event)\"\n [tabIndex]=\"_getFocusIndex() === i ? 0 : -1\"\n [id]=\"_getStepLabelId(i)\"\n [attr.aria-posinset]=\"i + 1\"\n [attr.aria-setsize]=\"steps.length\"\n [attr.aria-controls]=\"_getStepContentId(i)\"\n [attr.aria-selected]=\"selectedIndex == i\"\n [attr.aria-label]=\"step.ariaLabel || null\"\n [attr.aria-labelledby]=\"(!step.ariaLabel && step.ariaLabelledby) ? step.ariaLabelledby : null\"\n [attr.aria-disabled]=\"_stepIsNavigable(i, step) ? null : true\"\n [index]=\"i\"\n [state]=\"_getIndicatorType(i, step.state)\"\n [label]=\"step.stepLabel || step.label\"\n [selected]=\"selectedIndex === i\"\n [active]=\"_stepIsNavigable(i, step)\"\n [optional]=\"step.optional\"\n [errorMessage]=\"step.errorMessage\"\n [iconOverrides]=\"_iconOverrides\"\n [disableRipple]=\"disableRipple || !_stepIsNavigable(i, step)\"\n [color]=\"step.color || color\"></mat-step-header>\n</ng-template>\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 {CdkStepperNext, CdkStepperPrevious} from '@angular/cdk/stepper';\nimport {Directive} from '@angular/core';\n\n/** Button that moves to the next step in a stepper workflow. */\n@Directive({\n selector: 'button[matStepperNext]',\n host: {\n 'class': 'mat-stepper-next',\n '[type]': 'type',\n },\n inputs: ['type'],\n standalone: true,\n})\nexport class MatStepperNext extends CdkStepperNext {}\n\n/** Button that moves to the previous step in a stepper workflow. */\n@Directive({\n selector: 'button[matStepperPrevious]',\n host: {\n 'class': 'mat-stepper-previous',\n '[type]': 'type',\n },\n inputs: ['type'],\n standalone: true,\n})\nexport class MatStepperPrevious extends CdkStepperPrevious {}\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 {PortalModule} from '@angular/cdk/portal';\nimport {CdkStepperModule} from '@angular/cdk/stepper';\nimport {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {ErrorStateMatcher, MatCommonModule, MatRippleModule} from '@angular/material/core';\nimport {MatIconModule} from '@angular/material/icon';\nimport {MatStepHeader} from './step-header';\nimport {MatStepLabel} from './step-label';\nimport {MatStep, MatStepper} from './stepper';\nimport {MatStepperNext, MatStepperPrevious} from './stepper-button';\nimport {MatStepperIcon} from './stepper-icon';\nimport {MAT_STEPPER_INTL_PROVIDER} from './stepper-intl';\nimport {MatStepContent} from './step-content';\n\n@NgModule({\n imports: [\n MatCommonModule,\n CommonModule,\n PortalModule,\n CdkStepperModule,\n MatIconModule,\n MatRippleModule,\n MatStep,\n MatStepLabel,\n MatStepper,\n MatStepperNext,\n MatStepperPrevious,\n MatStepHeader,\n MatStepperIcon,\n MatStepContent,\n ],\n exports: [\n MatCommonModule,\n MatStep,\n MatStepLabel,\n MatStepper,\n MatStepperNext,\n MatStepperPrevious,\n MatStepHeader,\n MatStepperIcon,\n MatStepContent,\n ],\n providers: [MAT_STEPPER_INTL_PROVIDER, ErrorStateMatcher],\n})\nexport class MatStepperModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.MatStepperIntl","i2"],"mappings":"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"}
1
+ {"version":3,"file":"stepper.mjs","sources":["../../../../../../src/material/stepper/step-label.ts","../../../../../../src/material/stepper/stepper-intl.ts","../../../../../../src/material/stepper/step-header.ts","../../../../../../src/material/stepper/step-header.html","../../../../../../src/material/stepper/stepper-animations.ts","../../../../../../src/material/stepper/stepper-icon.ts","../../../../../../src/material/stepper/step-content.ts","../../../../../../src/material/stepper/stepper.ts","../../../../../../src/material/stepper/step.html","../../../../../../src/material/stepper/stepper.html","../../../../../../src/material/stepper/stepper-button.ts","../../../../../../src/material/stepper/stepper-module.ts","../../../../../../src/material/stepper/stepper_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 {Directive} from '@angular/core';\nimport {CdkStepLabel} from '@angular/cdk/stepper';\n\n@Directive({\n selector: '[matStepLabel]',\n standalone: true,\n})\nexport class MatStepLabel extends CdkStepLabel {}\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 {Injectable, Optional, SkipSelf} from '@angular/core';\nimport {Subject} from 'rxjs';\n\n/** Stepper data that is required for internationalization. */\n@Injectable({providedIn: 'root'})\nexport class MatStepperIntl {\n /**\n * Stream that emits whenever the labels here are changed. Use this to notify\n * components if the labels have changed after initialization.\n */\n readonly changes: Subject<void> = new Subject<void>();\n\n /** Label that is rendered below optional steps. */\n optionalLabel: string = 'Optional';\n\n /** Label that is used to indicate step as completed to screen readers. */\n completedLabel: string = 'Completed';\n\n /** Label that is used to indicate step as editable to screen readers. */\n editableLabel: string = 'Editable';\n}\n\n/** @docs-private */\nexport function MAT_STEPPER_INTL_PROVIDER_FACTORY(parentIntl: MatStepperIntl) {\n return parentIntl || new MatStepperIntl();\n}\n\n/** @docs-private */\nexport const MAT_STEPPER_INTL_PROVIDER = {\n provide: MatStepperIntl,\n deps: [[new Optional(), new SkipSelf(), MatStepperIntl]],\n useFactory: MAT_STEPPER_INTL_PROVIDER_FACTORY,\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 {FocusMonitor, FocusOrigin} from '@angular/cdk/a11y';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Input,\n OnDestroy,\n ViewEncapsulation,\n TemplateRef,\n AfterViewInit,\n} from '@angular/core';\nimport {Subscription} from 'rxjs';\nimport {MatStepLabel} from './step-label';\nimport {MatStepperIntl} from './stepper-intl';\nimport {MatStepperIconContext} from './stepper-icon';\nimport {CdkStepHeader, StepState} from '@angular/cdk/stepper';\nimport {MatRipple, ThemePalette} from '@angular/material/core';\nimport {MatIcon} from '@angular/material/icon';\nimport {NgTemplateOutlet} from '@angular/common';\n\n@Component({\n selector: 'mat-step-header',\n templateUrl: 'step-header.html',\n styleUrls: ['step-header.css'],\n host: {\n 'class': 'mat-step-header',\n '[class]': '\"mat-\" + (color || \"primary\")',\n 'role': 'tab',\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [MatRipple, NgTemplateOutlet, MatIcon],\n})\nexport class MatStepHeader extends CdkStepHeader implements AfterViewInit, OnDestroy {\n private _intlSubscription: Subscription;\n\n /** State of the given step. */\n @Input() state: StepState;\n\n /** Label of the given step. */\n @Input() label: MatStepLabel | string;\n\n /** Error message to display when there's an error. */\n @Input() errorMessage: string;\n\n /** Overrides for the header icons, passed in via the stepper. */\n @Input() iconOverrides: {[key: string]: TemplateRef<MatStepperIconContext>};\n\n /** Index of the given step. */\n @Input() index: number;\n\n /** Whether the given step is selected. */\n @Input() selected: boolean;\n\n /** Whether the given step label is active. */\n @Input() active: boolean;\n\n /** Whether the given step is optional. */\n @Input() optional: boolean;\n\n /** Whether the ripple should be disabled. */\n @Input() disableRipple: boolean;\n\n /** Theme palette color of the step header. */\n @Input() color: ThemePalette;\n\n constructor(\n public _intl: MatStepperIntl,\n private _focusMonitor: FocusMonitor,\n _elementRef: ElementRef<HTMLElement>,\n changeDetectorRef: ChangeDetectorRef,\n ) {\n super(_elementRef);\n this._intlSubscription = _intl.changes.subscribe(() => changeDetectorRef.markForCheck());\n }\n\n ngAfterViewInit() {\n this._focusMonitor.monitor(this._elementRef, true);\n }\n\n ngOnDestroy() {\n this._intlSubscription.unsubscribe();\n this._focusMonitor.stopMonitoring(this._elementRef);\n }\n\n /** Focuses the step header. */\n override focus(origin?: FocusOrigin, options?: FocusOptions) {\n if (origin) {\n this._focusMonitor.focusVia(this._elementRef, origin, options);\n } else {\n this._elementRef.nativeElement.focus(options);\n }\n }\n\n /** Returns string label of given step if it is a text label. */\n _stringLabel(): string | null {\n return this.label instanceof MatStepLabel ? null : this.label;\n }\n\n /** Returns MatStepLabel if the label of given step is a template label. */\n _templateLabel(): MatStepLabel | null {\n return this.label instanceof MatStepLabel ? this.label : null;\n }\n\n /** Returns the host HTML element. */\n _getHostElement() {\n return this._elementRef.nativeElement;\n }\n\n /** Template context variables that are exposed to the `matStepperIcon` instances. */\n _getIconContext(): MatStepperIconContext {\n return {\n index: this.index,\n active: this.active,\n optional: this.optional,\n };\n }\n\n _getDefaultTextForState(state: StepState): string {\n if (state == 'number') {\n return `${this.index + 1}`;\n }\n if (state == 'edit') {\n return 'create';\n }\n if (state == 'error') {\n return 'warning';\n }\n return state;\n }\n}\n","<div class=\"mat-step-header-ripple mat-focus-indicator\" matRipple\n [matRippleTrigger]=\"_getHostElement()\"\n [matRippleDisabled]=\"disableRipple\"></div>\n\n<div class=\"mat-step-icon-state-{{state}} mat-step-icon\" [class.mat-step-icon-selected]=\"selected\">\n <div class=\"mat-step-icon-content\">\n @if (iconOverrides && iconOverrides[state]) {\n <ng-container\n [ngTemplateOutlet]=\"iconOverrides[state]\"\n [ngTemplateOutletContext]=\"_getIconContext()\"></ng-container>\n } @else {\n @switch (state) {\n @case ('number') {\n <span aria-hidden=\"true\">{{_getDefaultTextForState(state)}}</span>\n }\n\n @default {\n @if (state === 'done') {\n <span class=\"cdk-visually-hidden\">{{_intl.completedLabel}}</span>\n } @else if (state === 'edit') {\n <span class=\"cdk-visually-hidden\">{{_intl.editableLabel}}</span>\n }\n\n <mat-icon aria-hidden=\"true\">{{_getDefaultTextForState(state)}}</mat-icon>\n }\n }\n }\n </div>\n</div>\n<div class=\"mat-step-label\"\n [class.mat-step-label-active]=\"active\"\n [class.mat-step-label-selected]=\"selected\"\n [class.mat-step-label-error]=\"state == 'error'\">\n @if (_templateLabel(); as templateLabel) {\n <!-- If there is a label template, use it. -->\n <div class=\"mat-step-text-label\">\n <ng-container [ngTemplateOutlet]=\"templateLabel.template\"></ng-container>\n </div>\n } @else if (_stringLabel()) {\n <!-- If there is no label template, fall back to the text label. -->\n <div class=\"mat-step-text-label\">{{label}}</div>\n }\n\n @if (optional && state != 'error') {\n <div class=\"mat-step-optional\">{{_intl.optionalLabel}}</div>\n }\n\n @if (state === 'error') {\n <div class=\"mat-step-sub-label-error\">{{errorMessage}}</div>\n }\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 group,\n query,\n animateChild,\n} from '@angular/animations';\n\nexport const DEFAULT_HORIZONTAL_ANIMATION_DURATION = '500ms';\nexport const DEFAULT_VERTICAL_ANIMATION_DURATION = '225ms';\n\n/**\n * Animations used by the Material steppers.\n * @docs-private\n */\nexport const matStepperAnimations: {\n readonly horizontalStepTransition: AnimationTriggerMetadata;\n readonly verticalStepTransition: AnimationTriggerMetadata;\n} = {\n /** Animation that transitions the step along the X axis in a horizontal stepper. */\n horizontalStepTransition: trigger('horizontalStepTransition', [\n state('previous', style({transform: 'translate3d(-100%, 0, 0)', visibility: 'hidden'})),\n // Transition to `inherit`, rather than `visible`,\n // because visibility on a child element the one from the parent,\n // making this element focusable inside of a `hidden` element.\n state('current', style({transform: 'none', visibility: 'inherit'})),\n state('next', style({transform: 'translate3d(100%, 0, 0)', visibility: 'hidden'})),\n transition(\n '* => *',\n group([\n animate('{{animationDuration}} cubic-bezier(0.35, 0, 0.25, 1)'),\n query('@*', animateChild(), {optional: true}),\n ]),\n {\n params: {'animationDuration': DEFAULT_HORIZONTAL_ANIMATION_DURATION},\n },\n ),\n ]),\n\n /** Animation that transitions the step along the Y axis in a vertical stepper. */\n verticalStepTransition: trigger('verticalStepTransition', [\n state('previous', style({height: '0px', visibility: 'hidden'})),\n state('next', style({height: '0px', visibility: 'hidden'})),\n // Transition to `inherit`, rather than `visible`,\n // because visibility on a child element the one from the parent,\n // making this element focusable inside of a `hidden` element.\n state('current', style({height: '*', visibility: 'inherit'})),\n transition(\n '* <=> current',\n group([\n animate('{{animationDuration}} cubic-bezier(0.4, 0.0, 0.2, 1)'),\n query('@*', animateChild(), {optional: true}),\n ]),\n {\n params: {'animationDuration': DEFAULT_VERTICAL_ANIMATION_DURATION},\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 {Directive, Input, TemplateRef} from '@angular/core';\nimport {StepState} from '@angular/cdk/stepper';\n\n/** Template context available to an attached `matStepperIcon`. */\nexport interface MatStepperIconContext {\n /** Index of the step. */\n index: number;\n /** Whether the step is currently active. */\n active: boolean;\n /** Whether the step is optional. */\n optional: boolean;\n}\n\n/**\n * Template to be used to override the icons inside the step header.\n */\n@Directive({\n selector: 'ng-template[matStepperIcon]',\n standalone: true,\n})\nexport class MatStepperIcon {\n /** Name of the icon to be overridden. */\n @Input('matStepperIcon') name: StepState;\n\n constructor(public templateRef: TemplateRef<MatStepperIconContext>) {}\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, TemplateRef} from '@angular/core';\n\n/**\n * Content for a `mat-step` that will be rendered lazily.\n */\n@Directive({\n selector: 'ng-template[matStepContent]',\n standalone: true,\n})\nexport class MatStepContent {\n constructor(public _template: TemplateRef<any>) {}\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 {Directionality} from '@angular/cdk/bidi';\nimport {\n CdkStep,\n CdkStepper,\n StepContentPositionState,\n STEPPER_GLOBAL_OPTIONS,\n StepperOptions,\n} from '@angular/cdk/stepper';\nimport {AnimationEvent} from '@angular/animations';\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ContentChildren,\n ElementRef,\n EventEmitter,\n forwardRef,\n Inject,\n Input,\n OnDestroy,\n Optional,\n Output,\n QueryList,\n SkipSelf,\n TemplateRef,\n ViewChildren,\n ViewContainerRef,\n ViewEncapsulation,\n} from '@angular/core';\nimport {AbstractControl, FormGroupDirective, NgForm} from '@angular/forms';\nimport {ErrorStateMatcher, ThemePalette} from '@angular/material/core';\nimport {CdkPortalOutlet, TemplatePortal} from '@angular/cdk/portal';\nimport {Subject, Subscription} from 'rxjs';\nimport {takeUntil, distinctUntilChanged, map, startWith, switchMap} from 'rxjs/operators';\n\nimport {MatStepHeader} from './step-header';\nimport {MatStepLabel} from './step-label';\nimport {\n DEFAULT_HORIZONTAL_ANIMATION_DURATION,\n DEFAULT_VERTICAL_ANIMATION_DURATION,\n matStepperAnimations,\n} from './stepper-animations';\nimport {MatStepperIcon, MatStepperIconContext} from './stepper-icon';\nimport {MatStepContent} from './step-content';\nimport {NgTemplateOutlet} from '@angular/common';\n\n@Component({\n selector: 'mat-step',\n templateUrl: 'step.html',\n providers: [\n {provide: ErrorStateMatcher, useExisting: MatStep},\n {provide: CdkStep, useExisting: MatStep},\n ],\n encapsulation: ViewEncapsulation.None,\n exportAs: 'matStep',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [CdkPortalOutlet],\n})\nexport class MatStep extends CdkStep implements ErrorStateMatcher, AfterContentInit, OnDestroy {\n private _isSelected = Subscription.EMPTY;\n\n /** Content for step label given by `<ng-template matStepLabel>`. */\n // We need an initializer here to avoid a TS error.\n @ContentChild(MatStepLabel) override stepLabel: MatStepLabel = undefined!;\n\n /** Theme color for the particular step. */\n @Input() color: ThemePalette;\n\n /** Content that will be rendered lazily. */\n @ContentChild(MatStepContent, {static: false}) _lazyContent: MatStepContent;\n\n /** Currently-attached portal containing the lazy content. */\n _portal: TemplatePortal;\n\n constructor(\n @Inject(forwardRef(() => MatStepper)) stepper: MatStepper,\n @SkipSelf() private _errorStateMatcher: ErrorStateMatcher,\n private _viewContainerRef: ViewContainerRef,\n @Optional() @Inject(STEPPER_GLOBAL_OPTIONS) stepperOptions?: StepperOptions,\n ) {\n super(stepper, stepperOptions);\n }\n\n ngAfterContentInit() {\n this._isSelected = this._stepper.steps.changes\n .pipe(\n switchMap(() => {\n return this._stepper.selectionChange.pipe(\n map(event => event.selectedStep === this),\n startWith(this._stepper.selected === this),\n );\n }),\n )\n .subscribe(isSelected => {\n if (isSelected && this._lazyContent && !this._portal) {\n this._portal = new TemplatePortal(this._lazyContent._template, this._viewContainerRef!);\n }\n });\n }\n\n ngOnDestroy() {\n this._isSelected.unsubscribe();\n }\n\n /** Custom error state matcher that additionally checks for validity of interacted form. */\n isErrorState(control: AbstractControl | null, form: FormGroupDirective | NgForm | null): boolean {\n const originalErrorState = this._errorStateMatcher.isErrorState(control, form);\n\n // Custom error state checks for the validity of form that is not submitted or touched\n // since user can trigger a form change by calling for another step without directly\n // interacting with the current form.\n const customErrorState = !!(control && control.invalid && this.interacted);\n\n return originalErrorState || customErrorState;\n }\n}\n\n@Component({\n selector: 'mat-stepper, mat-vertical-stepper, mat-horizontal-stepper, [matStepper]',\n exportAs: 'matStepper, matVerticalStepper, matHorizontalStepper',\n templateUrl: 'stepper.html',\n styleUrls: ['stepper.css'],\n inputs: ['selectedIndex'],\n host: {\n '[class.mat-stepper-horizontal]': 'orientation === \"horizontal\"',\n '[class.mat-stepper-vertical]': 'orientation === \"vertical\"',\n '[class.mat-stepper-label-position-end]':\n 'orientation === \"horizontal\" && labelPosition == \"end\"',\n '[class.mat-stepper-label-position-bottom]':\n 'orientation === \"horizontal\" && labelPosition == \"bottom\"',\n '[class.mat-stepper-header-position-bottom]': 'headerPosition === \"bottom\"',\n '[attr.aria-orientation]': 'orientation',\n 'role': 'tablist',\n 'ngSkipHydration': '',\n },\n animations: [\n matStepperAnimations.horizontalStepTransition,\n matStepperAnimations.verticalStepTransition,\n ],\n providers: [{provide: CdkStepper, useExisting: MatStepper}],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [NgTemplateOutlet, MatStepHeader],\n})\nexport class MatStepper extends CdkStepper implements AfterContentInit {\n /** The list of step headers of the steps in the stepper. */\n // We need an initializer here to avoid a TS error.\n @ViewChildren(MatStepHeader) override _stepHeader: QueryList<MatStepHeader> =\n undefined as unknown as QueryList<MatStepHeader>;\n\n /** Full list of steps inside the stepper, including inside nested steppers. */\n // We need an initializer here to avoid a TS error.\n @ContentChildren(MatStep, {descendants: true}) override _steps: QueryList<MatStep> =\n undefined as unknown as QueryList<MatStep>;\n\n /** Steps that belong to the current stepper, excluding ones from nested steppers. */\n override readonly steps: QueryList<MatStep> = new QueryList<MatStep>();\n\n /** Custom icon overrides passed in by the consumer. */\n @ContentChildren(MatStepperIcon, {descendants: true}) _icons: QueryList<MatStepperIcon>;\n\n /** Event emitted when the current step is done transitioning in. */\n @Output() readonly animationDone: EventEmitter<void> = new EventEmitter<void>();\n\n /** Whether ripples should be disabled for the step headers. */\n @Input() disableRipple: boolean;\n\n /** Theme color for all of the steps in stepper. */\n @Input() color: ThemePalette;\n\n /**\n * Whether the label should display in bottom or end position.\n * Only applies in the `horizontal` orientation.\n */\n @Input()\n labelPosition: 'bottom' | 'end' = 'end';\n\n /**\n * Position of the stepper's header.\n * Only applies in the `horizontal` orientation.\n */\n @Input()\n headerPosition: 'top' | 'bottom' = 'top';\n\n /** Consumer-specified template-refs to be used to override the header icons. */\n _iconOverrides: Record<string, TemplateRef<MatStepperIconContext>> = {};\n\n /** Stream of animation `done` events when the body expands/collapses. */\n readonly _animationDone = new Subject<AnimationEvent>();\n\n /** Duration for the animation. Will be normalized to milliseconds if no units are set. */\n @Input()\n get animationDuration(): string {\n return this._animationDuration;\n }\n set animationDuration(value: string) {\n this._animationDuration = /^\\d+$/.test(value) ? value + 'ms' : value;\n }\n private _animationDuration = '';\n\n constructor(\n @Optional() dir: Directionality,\n changeDetectorRef: ChangeDetectorRef,\n elementRef: ElementRef<HTMLElement>,\n ) {\n super(dir, changeDetectorRef, elementRef);\n const nodeName = elementRef.nativeElement.nodeName.toLowerCase();\n this.orientation = nodeName === 'mat-vertical-stepper' ? 'vertical' : 'horizontal';\n }\n\n override ngAfterContentInit() {\n super.ngAfterContentInit();\n this._icons.forEach(({name, templateRef}) => (this._iconOverrides[name] = templateRef));\n\n // Mark the component for change detection whenever the content children query changes\n this.steps.changes.pipe(takeUntil(this._destroyed)).subscribe(() => {\n this._stateChanged();\n });\n\n this._animationDone\n .pipe(\n // This needs a `distinctUntilChanged` in order to avoid emitting the same event twice due\n // to a bug in animations where the `.done` callback gets invoked twice on some browsers.\n // See https://github.com/angular/angular/issues/24084\n distinctUntilChanged((x, y) => x.fromState === y.fromState && x.toState === y.toState),\n takeUntil(this._destroyed),\n )\n .subscribe(event => {\n if ((event.toState as StepContentPositionState) === 'current') {\n this.animationDone.emit();\n }\n });\n }\n\n _stepIsNavigable(index: number, step: MatStep): boolean {\n return step.completed || this.selectedIndex === index || !this.linear;\n }\n\n _getAnimationDuration() {\n if (this.animationDuration) {\n return this.animationDuration;\n }\n\n return this.orientation === 'horizontal'\n ? DEFAULT_HORIZONTAL_ANIMATION_DURATION\n : DEFAULT_VERTICAL_ANIMATION_DURATION;\n }\n}\n","<ng-template>\n <ng-content></ng-content>\n <ng-template [cdkPortalOutlet]=\"_portal\"></ng-template>\n</ng-template>\n","@switch (orientation) {\n @case ('horizontal') {\n <div class=\"mat-horizontal-stepper-wrapper\">\n <div class=\"mat-horizontal-stepper-header-container\">\n @for (step of steps; track step; let i = $index, isLast = $last) {\n <ng-container\n [ngTemplateOutlet]=\"stepTemplate\"\n [ngTemplateOutletContext]=\"{step: step, i: i}\"></ng-container>\n @if (!isLast) {\n <div class=\"mat-stepper-horizontal-line\"></div>\n }\n }\n </div>\n\n <div class=\"mat-horizontal-content-container\">\n @for (step of steps; track step; let i = $index) {\n <div class=\"mat-horizontal-stepper-content\" role=\"tabpanel\"\n [@horizontalStepTransition]=\"{\n 'value': _getAnimationDirection(i),\n 'params': {'animationDuration': _getAnimationDuration()}\n }\"\n (@horizontalStepTransition.done)=\"_animationDone.next($event)\"\n [id]=\"_getStepContentId(i)\"\n [attr.aria-labelledby]=\"_getStepLabelId(i)\"\n [class.mat-horizontal-stepper-content-inactive]=\"selectedIndex !== i\">\n <ng-container [ngTemplateOutlet]=\"step.content\"></ng-container>\n </div>\n }\n </div>\n </div>\n }\n\n @case ('vertical') {\n @for (step of steps; track step; let i = $index, isLast = $last) {\n <div class=\"mat-step\">\n <ng-container\n [ngTemplateOutlet]=\"stepTemplate\"\n [ngTemplateOutletContext]=\"{step: step, i: i}\"></ng-container>\n <div class=\"mat-vertical-content-container\" [class.mat-stepper-vertical-line]=\"!isLast\">\n <div class=\"mat-vertical-stepper-content\" role=\"tabpanel\"\n [@verticalStepTransition]=\"{\n 'value': _getAnimationDirection(i),\n 'params': {'animationDuration': _getAnimationDuration()}\n }\"\n (@verticalStepTransition.done)=\"_animationDone.next($event)\"\n [id]=\"_getStepContentId(i)\"\n [attr.aria-labelledby]=\"_getStepLabelId(i)\"\n [class.mat-vertical-stepper-content-inactive]=\"selectedIndex !== i\">\n <div class=\"mat-vertical-content\">\n <ng-container [ngTemplateOutlet]=\"step.content\"></ng-container>\n </div>\n </div>\n </div>\n </div>\n }\n }\n}\n\n<!-- Common step templating -->\n<ng-template let-step=\"step\" let-i=\"i\" #stepTemplate>\n <mat-step-header\n [class.mat-horizontal-stepper-header]=\"orientation === 'horizontal'\"\n [class.mat-vertical-stepper-header]=\"orientation === 'vertical'\"\n (click)=\"step.select()\"\n (keydown)=\"_onKeydown($event)\"\n [tabIndex]=\"_getFocusIndex() === i ? 0 : -1\"\n [id]=\"_getStepLabelId(i)\"\n [attr.aria-posinset]=\"i + 1\"\n [attr.aria-setsize]=\"steps.length\"\n [attr.aria-controls]=\"_getStepContentId(i)\"\n [attr.aria-selected]=\"selectedIndex == i\"\n [attr.aria-label]=\"step.ariaLabel || null\"\n [attr.aria-labelledby]=\"(!step.ariaLabel && step.ariaLabelledby) ? step.ariaLabelledby : null\"\n [attr.aria-disabled]=\"_stepIsNavigable(i, step) ? null : true\"\n [index]=\"i\"\n [state]=\"_getIndicatorType(i, step.state)\"\n [label]=\"step.stepLabel || step.label\"\n [selected]=\"selectedIndex === i\"\n [active]=\"_stepIsNavigable(i, step)\"\n [optional]=\"step.optional\"\n [errorMessage]=\"step.errorMessage\"\n [iconOverrides]=\"_iconOverrides\"\n [disableRipple]=\"disableRipple || !_stepIsNavigable(i, step)\"\n [color]=\"step.color || color\"></mat-step-header>\n</ng-template>\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 {CdkStepperNext, CdkStepperPrevious} from '@angular/cdk/stepper';\nimport {Directive} from '@angular/core';\n\n/** Button that moves to the next step in a stepper workflow. */\n@Directive({\n selector: 'button[matStepperNext]',\n host: {\n 'class': 'mat-stepper-next',\n '[type]': 'type',\n },\n inputs: ['type'],\n standalone: true,\n})\nexport class MatStepperNext extends CdkStepperNext {}\n\n/** Button that moves to the previous step in a stepper workflow. */\n@Directive({\n selector: 'button[matStepperPrevious]',\n host: {\n 'class': 'mat-stepper-previous',\n '[type]': 'type',\n },\n inputs: ['type'],\n standalone: true,\n})\nexport class MatStepperPrevious extends CdkStepperPrevious {}\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 {PortalModule} from '@angular/cdk/portal';\nimport {CdkStepperModule} from '@angular/cdk/stepper';\nimport {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {ErrorStateMatcher, MatCommonModule, MatRippleModule} from '@angular/material/core';\nimport {MatIconModule} from '@angular/material/icon';\nimport {MatStepHeader} from './step-header';\nimport {MatStepLabel} from './step-label';\nimport {MatStep, MatStepper} from './stepper';\nimport {MatStepperNext, MatStepperPrevious} from './stepper-button';\nimport {MatStepperIcon} from './stepper-icon';\nimport {MAT_STEPPER_INTL_PROVIDER} from './stepper-intl';\nimport {MatStepContent} from './step-content';\n\n@NgModule({\n imports: [\n MatCommonModule,\n CommonModule,\n PortalModule,\n CdkStepperModule,\n MatIconModule,\n MatRippleModule,\n MatStep,\n MatStepLabel,\n MatStepper,\n MatStepperNext,\n MatStepperPrevious,\n MatStepHeader,\n MatStepperIcon,\n MatStepContent,\n ],\n exports: [\n MatCommonModule,\n MatStep,\n MatStepLabel,\n MatStepper,\n MatStepperNext,\n MatStepperPrevious,\n MatStepHeader,\n MatStepperIcon,\n MatStepContent,\n ],\n providers: [MAT_STEPPER_INTL_PROVIDER, ErrorStateMatcher],\n})\nexport class MatStepperModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.MatStepperIntl","i2"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"testing.mjs","sources":["../../../../../../../src/material/table/testing/cell-harness.ts","../../../../../../../src/material/table/testing/row-harness.ts","../../../../../../../src/material/table/testing/table-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 {\n ComponentHarnessConstructor,\n ContentContainerComponentHarness,\n HarnessPredicate,\n} from '@angular/cdk/testing';\nimport {CellHarnessFilters} from './table-harness-filters';\n\nexport abstract class _MatCellHarnessBase extends ContentContainerComponentHarness {\n /** Gets the cell's text. */\n async getText(): Promise<string> {\n return (await this.host()).text();\n }\n\n /** Gets the name of the column that the cell belongs to. */\n async getColumnName(): Promise<string> {\n const host = await this.host();\n const classAttribute = await host.getAttribute('class');\n\n if (classAttribute) {\n const prefix = 'mat-column-';\n const name = classAttribute\n .split(' ')\n .map(c => c.trim())\n .find(c => c.startsWith(prefix));\n\n if (name) {\n return name.split(prefix)[1];\n }\n }\n\n throw Error('Could not determine column name of cell.');\n }\n\n protected static _getCellPredicate<T extends MatCellHarness>(\n type: ComponentHarnessConstructor<T>,\n options: CellHarnessFilters,\n ): HarnessPredicate<T> {\n return new HarnessPredicate(type, options)\n .addOption('text', options.text, (harness, text) =>\n HarnessPredicate.stringMatches(harness.getText(), text),\n )\n .addOption('columnName', options.columnName, (harness, name) =>\n HarnessPredicate.stringMatches(harness.getColumnName(), name),\n );\n }\n}\n\n/** Harness for interacting with an Angular Material table cell. */\nexport class MatCellHarness extends _MatCellHarnessBase {\n /** The selector for the host element of a `MatCellHarness` instance. */\n static hostSelector = '.mat-mdc-cell';\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a table cell 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: CellHarnessFilters = {}): HarnessPredicate<MatCellHarness> {\n return _MatCellHarnessBase._getCellPredicate(this, options);\n }\n}\n\n/** Harness for interacting with an Angular Material table header cell. */\nexport class MatHeaderCellHarness extends _MatCellHarnessBase {\n /** The selector for the host element of a `MatHeaderCellHarness` instance. */\n static hostSelector = '.mat-mdc-header-cell';\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a table header cell with specific\n * attributes.\n * @param options Options for narrowing the search\n * @return a `HarnessPredicate` configured with the given options.\n */\n static with(options: CellHarnessFilters = {}): HarnessPredicate<MatHeaderCellHarness> {\n return _MatCellHarnessBase._getCellPredicate(this, options);\n }\n}\n\n/** Harness for interacting with an Angular Material table footer cell. */\nexport class MatFooterCellHarness extends _MatCellHarnessBase {\n /** The selector for the host element of a `MatFooterCellHarness` instance. */\n static hostSelector = '.mat-mdc-footer-cell';\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a table footer cell with specific\n * attributes.\n * @param options Options for narrowing the search\n * @return a `HarnessPredicate` configured with the given options.\n */\n static with(options: CellHarnessFilters = {}): HarnessPredicate<MatFooterCellHarness> {\n return _MatCellHarnessBase._getCellPredicate(this, options);\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 ComponentHarness,\n ComponentHarnessConstructor,\n HarnessPredicate,\n parallel,\n} from '@angular/cdk/testing';\nimport {\n _MatCellHarnessBase,\n MatCellHarness,\n MatFooterCellHarness,\n MatHeaderCellHarness,\n} from './cell-harness';\nimport {CellHarnessFilters, RowHarnessFilters} from './table-harness-filters';\n\n/** Text extracted from a table row organized by columns. */\nexport interface MatRowHarnessColumnsText {\n [columnName: string]: string;\n}\n\nexport abstract class _MatRowHarnessBase<\n CellType extends ComponentHarnessConstructor<Cell> & {\n with: (options?: CellHarnessFilters) => HarnessPredicate<Cell>;\n },\n Cell extends _MatCellHarnessBase,\n> extends ComponentHarness {\n protected abstract _cellHarness: CellType;\n\n /** Gets a list of `MatCellHarness` for all cells in the row. */\n async getCells(filter: CellHarnessFilters = {}): Promise<Cell[]> {\n return this.locatorForAll(this._cellHarness.with(filter))();\n }\n\n /** Gets the text of the cells in the row. */\n async getCellTextByIndex(filter: CellHarnessFilters = {}): Promise<string[]> {\n const cells = await this.getCells(filter);\n return parallel(() => cells.map(cell => cell.getText()));\n }\n\n /** Gets the text inside the row organized by columns. */\n async getCellTextByColumnName(): Promise<MatRowHarnessColumnsText> {\n const output: MatRowHarnessColumnsText = {};\n const cells = await this.getCells();\n const cellsData = await parallel(() =>\n cells.map(cell => {\n return parallel(() => [cell.getColumnName(), cell.getText()]);\n }),\n );\n cellsData.forEach(([columnName, text]) => (output[columnName] = text));\n return output;\n }\n}\n\n/** Harness for interacting with an Angular Material table row. */\nexport class MatRowHarness extends _MatRowHarnessBase<typeof MatCellHarness, MatCellHarness> {\n /** The selector for the host element of a `MatRowHarness` instance. */\n static hostSelector = '.mat-mdc-row';\n protected _cellHarness = MatCellHarness;\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a table row with specific attributes.\n * @param options Options for narrowing the search\n * @return a `HarnessPredicate` configured with the given options.\n */\n static with<T extends MatRowHarness>(\n this: ComponentHarnessConstructor<T>,\n options: RowHarnessFilters = {},\n ): HarnessPredicate<T> {\n return new HarnessPredicate(this, options);\n }\n}\n\n/** Harness for interacting with an Angular Material table header row. */\nexport class MatHeaderRowHarness extends _MatRowHarnessBase<\n typeof MatHeaderCellHarness,\n MatHeaderCellHarness\n> {\n /** The selector for the host element of a `MatHeaderRowHarness` instance. */\n static hostSelector = '.mat-mdc-header-row';\n protected _cellHarness = MatHeaderCellHarness;\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a table header row with specific\n * attributes.\n * @param options Options for narrowing the search\n * @return a `HarnessPredicate` configured with the given options.\n */\n static with<T extends MatHeaderRowHarness>(\n this: ComponentHarnessConstructor<T>,\n options: RowHarnessFilters = {},\n ): HarnessPredicate<T> {\n return new HarnessPredicate(this, options);\n }\n}\n\n/** Harness for interacting with an Angular Material table footer row. */\nexport class MatFooterRowHarness extends _MatRowHarnessBase<\n typeof MatFooterCellHarness,\n MatFooterCellHarness\n> {\n /** The selector for the host element of a `MatFooterRowHarness` instance. */\n static hostSelector = '.mat-mdc-footer-row';\n protected _cellHarness = MatFooterCellHarness;\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a table footer row cell with specific\n * attributes.\n * @param options Options for narrowing the search\n * @return a `HarnessPredicate` configured with the given options.\n */\n static with<T extends MatFooterRowHarness>(\n this: ComponentHarnessConstructor<T>,\n options: RowHarnessFilters = {},\n ): HarnessPredicate<T> {\n return new HarnessPredicate(this, options);\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 ComponentHarnessConstructor,\n ContentContainerComponentHarness,\n HarnessPredicate,\n parallel,\n} from '@angular/cdk/testing';\nimport {\n MatFooterRowHarness,\n MatHeaderRowHarness,\n MatRowHarness,\n MatRowHarnessColumnsText,\n} from './row-harness';\nimport {RowHarnessFilters, TableHarnessFilters} from './table-harness-filters';\n\n/** Text extracted from a table organized by columns. */\nexport interface MatTableHarnessColumnsText {\n [columnName: string]: {\n text: string[];\n headerText: string[];\n footerText: string[];\n };\n}\n\n/** Harness for interacting with a mat-table in tests. */\nexport class MatTableHarness extends ContentContainerComponentHarness<string> {\n /** The selector for the host element of a `MatTableHarness` instance. */\n static hostSelector = '.mat-mdc-table';\n _headerRowHarness = MatHeaderRowHarness;\n _rowHarness = MatRowHarness;\n private _footerRowHarness = MatFooterRowHarness;\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a table with specific attributes.\n * @param options Options for narrowing the search\n * @return a `HarnessPredicate` configured with the given options.\n */\n static with<T extends MatTableHarness>(\n this: ComponentHarnessConstructor<T>,\n options: TableHarnessFilters = {},\n ): HarnessPredicate<T> {\n return new HarnessPredicate(this, options);\n }\n\n /** Gets all the header rows in a table. */\n async getHeaderRows(filter: RowHarnessFilters = {}): Promise<MatHeaderRowHarness[]> {\n return this.locatorForAll(this._headerRowHarness.with(filter))();\n }\n\n /** Gets all the regular data rows in a table. */\n async getRows(filter: RowHarnessFilters = {}): Promise<MatRowHarness[]> {\n return this.locatorForAll(this._rowHarness.with(filter))();\n }\n\n /** Gets all the footer rows in a table. */\n async getFooterRows(filter: RowHarnessFilters = {}): Promise<MatFooterRowHarness[]> {\n return this.locatorForAll(this._footerRowHarness.with(filter))();\n }\n\n /** Gets the text inside the entire table organized by rows. */\n async getCellTextByIndex(): Promise<string[][]> {\n const rows = await this.getRows();\n return parallel(() => rows.map(row => row.getCellTextByIndex()));\n }\n\n /** Gets the text inside the entire table organized by columns. */\n async getCellTextByColumnName(): Promise<MatTableHarnessColumnsText> {\n const [headerRows, footerRows, dataRows] = await parallel(() => [\n this.getHeaderRows(),\n this.getFooterRows(),\n this.getRows(),\n ]);\n\n const text: MatTableHarnessColumnsText = {};\n const [headerData, footerData, rowsData] = await parallel(() => [\n parallel(() => headerRows.map(row => row.getCellTextByColumnName())),\n parallel(() => footerRows.map(row => row.getCellTextByColumnName())),\n parallel(() => dataRows.map(row => row.getCellTextByColumnName())),\n ]);\n\n rowsData.forEach(data => {\n Object.keys(data).forEach(columnName => {\n const cellText = data[columnName];\n\n if (!text[columnName]) {\n text[columnName] = {\n headerText: getCellTextsByColumn(headerData, columnName),\n footerText: getCellTextsByColumn(footerData, columnName),\n text: [],\n };\n }\n\n text[columnName].text.push(cellText);\n });\n });\n\n return text;\n }\n}\n\n/** Extracts the text of cells only under a particular column. */\nfunction getCellTextsByColumn(rowsData: MatRowHarnessColumnsText[], column: string): string[] {\n const columnTexts: string[] = [];\n\n rowsData.forEach(data => {\n Object.keys(data).forEach(columnName => {\n if (columnName === column) {\n columnTexts.push(data[columnName]);\n }\n });\n });\n\n return columnTexts;\n}\n"],"names":[],"mappings":";;AAeM,MAAgB,mBAAoB,SAAQ,gCAAgC,CAAA;;AAEhF,IAAA,MAAM,OAAO,GAAA;QACX,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC;KACnC;;AAGD,IAAA,MAAM,aAAa,GAAA;AACjB,QAAA,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QAC/B,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;AAExD,QAAA,IAAI,cAAc,EAAE;YAClB,MAAM,MAAM,GAAG,aAAa,CAAC;YAC7B,MAAM,IAAI,GAAG,cAAc;iBACxB,KAAK,CAAC,GAAG,CAAC;iBACV,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;AAClB,iBAAA,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;AAEnC,YAAA,IAAI,IAAI,EAAE;gBACR,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9B,aAAA;AACF,SAAA;AAED,QAAA,MAAM,KAAK,CAAC,0CAA0C,CAAC,CAAC;KACzD;AAES,IAAA,OAAO,iBAAiB,CAChC,IAAoC,EACpC,OAA2B,EAAA;AAE3B,QAAA,OAAO,IAAI,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC;aACvC,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,IAAI,KAC7C,gBAAgB,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC,CACxD;aACA,SAAS,CAAC,YAAY,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE,IAAI,KACzD,gBAAgB,CAAC,aAAa,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,IAAI,CAAC,CAC9D,CAAC;KACL;AACF,CAAA;AAED;AACM,MAAO,cAAe,SAAQ,mBAAmB,CAAA;;aAE9C,IAAY,CAAA,YAAA,GAAG,eAAe,CAAC,EAAA;AAEtC;;;;AAIG;AACH,IAAA,OAAO,IAAI,CAAC,OAAA,GAA8B,EAAE,EAAA;QAC1C,OAAO,mBAAmB,CAAC,iBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;KAC7D;;AAGH;AACM,MAAO,oBAAqB,SAAQ,mBAAmB,CAAA;;aAEpD,IAAY,CAAA,YAAA,GAAG,sBAAsB,CAAC,EAAA;AAE7C;;;;;AAKG;AACH,IAAA,OAAO,IAAI,CAAC,OAAA,GAA8B,EAAE,EAAA;QAC1C,OAAO,mBAAmB,CAAC,iBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;KAC7D;;AAGH;AACM,MAAO,oBAAqB,SAAQ,mBAAmB,CAAA;;aAEpD,IAAY,CAAA,YAAA,GAAG,sBAAsB,CAAC,EAAA;AAE7C;;;;;AAKG;AACH,IAAA,OAAO,IAAI,CAAC,OAAA,GAA8B,EAAE,EAAA;QAC1C,OAAO,mBAAmB,CAAC,iBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;KAC7D;;;ACxEG,MAAgB,kBAKpB,SAAQ,gBAAgB,CAAA;;AAIxB,IAAA,MAAM,QAAQ,CAAC,MAAA,GAA6B,EAAE,EAAA;AAC5C,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;KAC7D;;AAGD,IAAA,MAAM,kBAAkB,CAAC,MAAA,GAA6B,EAAE,EAAA;QACtD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAC1C,QAAA,OAAO,QAAQ,CAAC,MAAM,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;KAC1D;;AAGD,IAAA,MAAM,uBAAuB,GAAA;QAC3B,MAAM,MAAM,GAA6B,EAAE,CAAC;AAC5C,QAAA,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;AACpC,QAAA,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,MAC/B,KAAK,CAAC,GAAG,CAAC,IAAI,IAAG;AACf,YAAA,OAAO,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;SAC/D,CAAC,CACH,CAAC;QACF,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,MAAM,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;AACvE,QAAA,OAAO,MAAM,CAAC;KACf;AACF,CAAA;AAED;AACM,MAAO,aAAc,SAAQ,kBAAyD,CAAA;AAA5F,IAAA,WAAA,GAAA;;QAGY,IAAY,CAAA,YAAA,GAAG,cAAc,CAAC;KAazC;;aAdQ,IAAY,CAAA,YAAA,GAAG,cAAH,CAAkB,EAAA;AAGrC;;;;AAIG;AACH,IAAA,OAAO,IAAI,CAET,OAAA,GAA6B,EAAE,EAAA;AAE/B,QAAA,OAAO,IAAI,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;KAC5C;;AAGH;AACM,MAAO,mBAAoB,SAAQ,kBAGxC,CAAA;AAHD,IAAA,WAAA,GAAA;;QAMY,IAAY,CAAA,YAAA,GAAG,oBAAoB,CAAC;KAc/C;;aAfQ,IAAY,CAAA,YAAA,GAAG,qBAAH,CAAyB,EAAA;AAG5C;;;;;AAKG;AACH,IAAA,OAAO,IAAI,CAET,OAAA,GAA6B,EAAE,EAAA;AAE/B,QAAA,OAAO,IAAI,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;KAC5C;;AAGH;AACM,MAAO,mBAAoB,SAAQ,kBAGxC,CAAA;AAHD,IAAA,WAAA,GAAA;;QAMY,IAAY,CAAA,YAAA,GAAG,oBAAoB,CAAC;KAc/C;;aAfQ,IAAY,CAAA,YAAA,GAAG,qBAAH,CAAyB,EAAA;AAG5C;;;;;AAKG;AACH,IAAA,OAAO,IAAI,CAET,OAAA,GAA6B,EAAE,EAAA;AAE/B,QAAA,OAAO,IAAI,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;KAC5C;;;AC3FH;AACM,MAAO,eAAgB,SAAQ,gCAAwC,CAAA;AAA7E,IAAA,WAAA,GAAA;;QAGE,IAAiB,CAAA,iBAAA,GAAG,mBAAmB,CAAC;QACxC,IAAW,CAAA,WAAA,GAAG,aAAa,CAAC;QACpB,IAAiB,CAAA,iBAAA,GAAG,mBAAmB,CAAC;KAoEjD;;aAvEQ,IAAY,CAAA,YAAA,GAAG,gBAAH,CAAoB,EAAA;AAKvC;;;;AAIG;AACH,IAAA,OAAO,IAAI,CAET,OAAA,GAA+B,EAAE,EAAA;AAEjC,QAAA,OAAO,IAAI,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;KAC5C;;AAGD,IAAA,MAAM,aAAa,CAAC,MAAA,GAA4B,EAAE,EAAA;AAChD,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;KAClE;;AAGD,IAAA,MAAM,OAAO,CAAC,MAAA,GAA4B,EAAE,EAAA;AAC1C,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;KAC5D;;AAGD,IAAA,MAAM,aAAa,CAAC,MAAA,GAA4B,EAAE,EAAA;AAChD,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;KAClE;;AAGD,IAAA,MAAM,kBAAkB,GAAA;AACtB,QAAA,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;AAClC,QAAA,OAAO,QAAQ,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC;KAClE;;AAGD,IAAA,MAAM,uBAAuB,GAAA;AAC3B,QAAA,MAAM,CAAC,UAAU,EAAE,UAAU,EAAE,QAAQ,CAAC,GAAG,MAAM,QAAQ,CAAC,MAAM;YAC9D,IAAI,CAAC,aAAa,EAAE;YACpB,IAAI,CAAC,aAAa,EAAE;YACpB,IAAI,CAAC,OAAO,EAAE;AACf,SAAA,CAAC,CAAC;QAEH,MAAM,IAAI,GAA+B,EAAE,CAAC;AAC5C,QAAA,MAAM,CAAC,UAAU,EAAE,UAAU,EAAE,QAAQ,CAAC,GAAG,MAAM,QAAQ,CAAC,MAAM;AAC9D,YAAA,QAAQ,CAAC,MAAM,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,uBAAuB,EAAE,CAAC,CAAC;AACpE,YAAA,QAAQ,CAAC,MAAM,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,uBAAuB,EAAE,CAAC,CAAC;AACpE,YAAA,QAAQ,CAAC,MAAM,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,uBAAuB,EAAE,CAAC,CAAC;AACnE,SAAA,CAAC,CAAC;AAEH,QAAA,QAAQ,CAAC,OAAO,CAAC,IAAI,IAAG;YACtB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,UAAU,IAAG;AACrC,gBAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;AAElC,gBAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;oBACrB,IAAI,CAAC,UAAU,CAAC,GAAG;AACjB,wBAAA,UAAU,EAAE,oBAAoB,CAAC,UAAU,EAAE,UAAU,CAAC;AACxD,wBAAA,UAAU,EAAE,oBAAoB,CAAC,UAAU,EAAE,UAAU,CAAC;AACxD,wBAAA,IAAI,EAAE,EAAE;qBACT,CAAC;AACH,iBAAA;gBAED,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACvC,aAAC,CAAC,CAAC;AACL,SAAC,CAAC,CAAC;AAEH,QAAA,OAAO,IAAI,CAAC;KACb;;AAGH;AACA,SAAS,oBAAoB,CAAC,QAAoC,EAAE,MAAc,EAAA;IAChF,MAAM,WAAW,GAAa,EAAE,CAAC;AAEjC,IAAA,QAAQ,CAAC,OAAO,CAAC,IAAI,IAAG;QACtB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,UAAU,IAAG;YACrC,IAAI,UAAU,KAAK,MAAM,EAAE;gBACzB,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;AACpC,aAAA;AACH,SAAC,CAAC,CAAC;AACL,KAAC,CAAC,CAAC;AAEH,IAAA,OAAO,WAAW,CAAC;AACrB;;;;"}
1
+ {"version":3,"file":"testing.mjs","sources":["../../../../../../../src/material/table/testing/cell-harness.ts","../../../../../../../src/material/table/testing/row-harness.ts","../../../../../../../src/material/table/testing/table-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 {\n ComponentHarnessConstructor,\n ContentContainerComponentHarness,\n HarnessPredicate,\n} from '@angular/cdk/testing';\nimport {CellHarnessFilters} from './table-harness-filters';\n\nexport abstract class _MatCellHarnessBase extends ContentContainerComponentHarness {\n /** Gets the cell's text. */\n async getText(): Promise<string> {\n return (await this.host()).text();\n }\n\n /** Gets the name of the column that the cell belongs to. */\n async getColumnName(): Promise<string> {\n const host = await this.host();\n const classAttribute = await host.getAttribute('class');\n\n if (classAttribute) {\n const prefix = 'mat-column-';\n const name = classAttribute\n .split(' ')\n .map(c => c.trim())\n .find(c => c.startsWith(prefix));\n\n if (name) {\n return name.split(prefix)[1];\n }\n }\n\n throw Error('Could not determine column name of cell.');\n }\n\n protected static _getCellPredicate<T extends MatCellHarness>(\n type: ComponentHarnessConstructor<T>,\n options: CellHarnessFilters,\n ): HarnessPredicate<T> {\n return new HarnessPredicate(type, options)\n .addOption('text', options.text, (harness, text) =>\n HarnessPredicate.stringMatches(harness.getText(), text),\n )\n .addOption('columnName', options.columnName, (harness, name) =>\n HarnessPredicate.stringMatches(harness.getColumnName(), name),\n );\n }\n}\n\n/** Harness for interacting with an Angular Material table cell. */\nexport class MatCellHarness extends _MatCellHarnessBase {\n /** The selector for the host element of a `MatCellHarness` instance. */\n static hostSelector = '.mat-mdc-cell';\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a table cell 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: CellHarnessFilters = {}): HarnessPredicate<MatCellHarness> {\n return _MatCellHarnessBase._getCellPredicate(this, options);\n }\n}\n\n/** Harness for interacting with an Angular Material table header cell. */\nexport class MatHeaderCellHarness extends _MatCellHarnessBase {\n /** The selector for the host element of a `MatHeaderCellHarness` instance. */\n static hostSelector = '.mat-mdc-header-cell';\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a table header cell with specific\n * attributes.\n * @param options Options for narrowing the search\n * @return a `HarnessPredicate` configured with the given options.\n */\n static with(options: CellHarnessFilters = {}): HarnessPredicate<MatHeaderCellHarness> {\n return _MatCellHarnessBase._getCellPredicate(this, options);\n }\n}\n\n/** Harness for interacting with an Angular Material table footer cell. */\nexport class MatFooterCellHarness extends _MatCellHarnessBase {\n /** The selector for the host element of a `MatFooterCellHarness` instance. */\n static hostSelector = '.mat-mdc-footer-cell';\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a table footer cell with specific\n * attributes.\n * @param options Options for narrowing the search\n * @return a `HarnessPredicate` configured with the given options.\n */\n static with(options: CellHarnessFilters = {}): HarnessPredicate<MatFooterCellHarness> {\n return _MatCellHarnessBase._getCellPredicate(this, options);\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 ComponentHarness,\n ComponentHarnessConstructor,\n HarnessPredicate,\n parallel,\n} from '@angular/cdk/testing';\nimport {\n _MatCellHarnessBase,\n MatCellHarness,\n MatFooterCellHarness,\n MatHeaderCellHarness,\n} from './cell-harness';\nimport {CellHarnessFilters, RowHarnessFilters} from './table-harness-filters';\n\n/** Text extracted from a table row organized by columns. */\nexport interface MatRowHarnessColumnsText {\n [columnName: string]: string;\n}\n\nexport abstract class _MatRowHarnessBase<\n CellType extends ComponentHarnessConstructor<Cell> & {\n with: (options?: CellHarnessFilters) => HarnessPredicate<Cell>;\n },\n Cell extends _MatCellHarnessBase,\n> extends ComponentHarness {\n protected abstract _cellHarness: CellType;\n\n /** Gets a list of `MatCellHarness` for all cells in the row. */\n async getCells(filter: CellHarnessFilters = {}): Promise<Cell[]> {\n return this.locatorForAll(this._cellHarness.with(filter))();\n }\n\n /** Gets the text of the cells in the row. */\n async getCellTextByIndex(filter: CellHarnessFilters = {}): Promise<string[]> {\n const cells = await this.getCells(filter);\n return parallel(() => cells.map(cell => cell.getText()));\n }\n\n /** Gets the text inside the row organized by columns. */\n async getCellTextByColumnName(): Promise<MatRowHarnessColumnsText> {\n const output: MatRowHarnessColumnsText = {};\n const cells = await this.getCells();\n const cellsData = await parallel(() =>\n cells.map(cell => {\n return parallel(() => [cell.getColumnName(), cell.getText()]);\n }),\n );\n cellsData.forEach(([columnName, text]) => (output[columnName] = text));\n return output;\n }\n}\n\n/** Harness for interacting with an Angular Material table row. */\nexport class MatRowHarness extends _MatRowHarnessBase<typeof MatCellHarness, MatCellHarness> {\n /** The selector for the host element of a `MatRowHarness` instance. */\n static hostSelector = '.mat-mdc-row';\n protected _cellHarness = MatCellHarness;\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a table row with specific attributes.\n * @param options Options for narrowing the search\n * @return a `HarnessPredicate` configured with the given options.\n */\n static with<T extends MatRowHarness>(\n this: ComponentHarnessConstructor<T>,\n options: RowHarnessFilters = {},\n ): HarnessPredicate<T> {\n return new HarnessPredicate(this, options);\n }\n}\n\n/** Harness for interacting with an Angular Material table header row. */\nexport class MatHeaderRowHarness extends _MatRowHarnessBase<\n typeof MatHeaderCellHarness,\n MatHeaderCellHarness\n> {\n /** The selector for the host element of a `MatHeaderRowHarness` instance. */\n static hostSelector = '.mat-mdc-header-row';\n protected _cellHarness = MatHeaderCellHarness;\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a table header row with specific\n * attributes.\n * @param options Options for narrowing the search\n * @return a `HarnessPredicate` configured with the given options.\n */\n static with<T extends MatHeaderRowHarness>(\n this: ComponentHarnessConstructor<T>,\n options: RowHarnessFilters = {},\n ): HarnessPredicate<T> {\n return new HarnessPredicate(this, options);\n }\n}\n\n/** Harness for interacting with an Angular Material table footer row. */\nexport class MatFooterRowHarness extends _MatRowHarnessBase<\n typeof MatFooterCellHarness,\n MatFooterCellHarness\n> {\n /** The selector for the host element of a `MatFooterRowHarness` instance. */\n static hostSelector = '.mat-mdc-footer-row';\n protected _cellHarness = MatFooterCellHarness;\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a table footer row cell with specific\n * attributes.\n * @param options Options for narrowing the search\n * @return a `HarnessPredicate` configured with the given options.\n */\n static with<T extends MatFooterRowHarness>(\n this: ComponentHarnessConstructor<T>,\n options: RowHarnessFilters = {},\n ): HarnessPredicate<T> {\n return new HarnessPredicate(this, options);\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 ComponentHarnessConstructor,\n ContentContainerComponentHarness,\n HarnessPredicate,\n parallel,\n} from '@angular/cdk/testing';\nimport {\n MatFooterRowHarness,\n MatHeaderRowHarness,\n MatRowHarness,\n MatRowHarnessColumnsText,\n} from './row-harness';\nimport {RowHarnessFilters, TableHarnessFilters} from './table-harness-filters';\n\n/** Text extracted from a table organized by columns. */\nexport interface MatTableHarnessColumnsText {\n [columnName: string]: {\n text: string[];\n headerText: string[];\n footerText: string[];\n };\n}\n\n/** Harness for interacting with a mat-table in tests. */\nexport class MatTableHarness extends ContentContainerComponentHarness<string> {\n /** The selector for the host element of a `MatTableHarness` instance. */\n static hostSelector = '.mat-mdc-table';\n _headerRowHarness = MatHeaderRowHarness;\n _rowHarness = MatRowHarness;\n private _footerRowHarness = MatFooterRowHarness;\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a table with specific attributes.\n * @param options Options for narrowing the search\n * @return a `HarnessPredicate` configured with the given options.\n */\n static with<T extends MatTableHarness>(\n this: ComponentHarnessConstructor<T>,\n options: TableHarnessFilters = {},\n ): HarnessPredicate<T> {\n return new HarnessPredicate(this, options);\n }\n\n /** Gets all the header rows in a table. */\n async getHeaderRows(filter: RowHarnessFilters = {}): Promise<MatHeaderRowHarness[]> {\n return this.locatorForAll(this._headerRowHarness.with(filter))();\n }\n\n /** Gets all the regular data rows in a table. */\n async getRows(filter: RowHarnessFilters = {}): Promise<MatRowHarness[]> {\n return this.locatorForAll(this._rowHarness.with(filter))();\n }\n\n /** Gets all the footer rows in a table. */\n async getFooterRows(filter: RowHarnessFilters = {}): Promise<MatFooterRowHarness[]> {\n return this.locatorForAll(this._footerRowHarness.with(filter))();\n }\n\n /** Gets the text inside the entire table organized by rows. */\n async getCellTextByIndex(): Promise<string[][]> {\n const rows = await this.getRows();\n return parallel(() => rows.map(row => row.getCellTextByIndex()));\n }\n\n /** Gets the text inside the entire table organized by columns. */\n async getCellTextByColumnName(): Promise<MatTableHarnessColumnsText> {\n const [headerRows, footerRows, dataRows] = await parallel(() => [\n this.getHeaderRows(),\n this.getFooterRows(),\n this.getRows(),\n ]);\n\n const text: MatTableHarnessColumnsText = {};\n const [headerData, footerData, rowsData] = await parallel(() => [\n parallel(() => headerRows.map(row => row.getCellTextByColumnName())),\n parallel(() => footerRows.map(row => row.getCellTextByColumnName())),\n parallel(() => dataRows.map(row => row.getCellTextByColumnName())),\n ]);\n\n rowsData.forEach(data => {\n Object.keys(data).forEach(columnName => {\n const cellText = data[columnName];\n\n if (!text[columnName]) {\n text[columnName] = {\n headerText: getCellTextsByColumn(headerData, columnName),\n footerText: getCellTextsByColumn(footerData, columnName),\n text: [],\n };\n }\n\n text[columnName].text.push(cellText);\n });\n });\n\n return text;\n }\n}\n\n/** Extracts the text of cells only under a particular column. */\nfunction getCellTextsByColumn(rowsData: MatRowHarnessColumnsText[], column: string): string[] {\n const columnTexts: string[] = [];\n\n rowsData.forEach(data => {\n Object.keys(data).forEach(columnName => {\n if (columnName === column) {\n columnTexts.push(data[columnName]);\n }\n });\n });\n\n return columnTexts;\n}\n"],"names":[],"mappings":"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"}