@angular/material 21.0.0-rc.0 → 21.0.0-rc.1

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 (101) hide show
  1. package/fesm2022/_animation-chunk.mjs.map +1 -1
  2. package/fesm2022/_date-formats-chunk.mjs.map +1 -1
  3. package/fesm2022/_date-range-input-harness-chunk.mjs.map +1 -1
  4. package/fesm2022/_error-options-chunk.mjs.map +1 -1
  5. package/fesm2022/_error-state-chunk.mjs.map +1 -1
  6. package/fesm2022/_form-field-chunk.mjs.map +1 -1
  7. package/fesm2022/_icon-button-chunk.mjs.map +1 -1
  8. package/fesm2022/_icon-registry-chunk.mjs.map +1 -1
  9. package/fesm2022/_input-harness-chunk.mjs.map +1 -1
  10. package/fesm2022/_input-value-accessor-chunk.mjs.map +1 -1
  11. package/fesm2022/_internal-form-field-chunk.mjs.map +1 -1
  12. package/fesm2022/_line-chunk.mjs.map +1 -1
  13. package/fesm2022/_option-chunk.mjs.map +1 -1
  14. package/fesm2022/_option-harness-chunk.mjs.map +1 -1
  15. package/fesm2022/_option-module-chunk.mjs.map +1 -1
  16. package/fesm2022/_pseudo-checkbox-chunk.mjs.map +1 -1
  17. package/fesm2022/_pseudo-checkbox-module-chunk.mjs.map +1 -1
  18. package/fesm2022/_public-api-chunk.mjs.map +1 -1
  19. package/fesm2022/_ripple-chunk.mjs.map +1 -1
  20. package/fesm2022/_ripple-loader-chunk.mjs.map +1 -1
  21. package/fesm2022/_ripple-module-chunk.mjs.map +1 -1
  22. package/fesm2022/_structural-styles-chunk.mjs.map +1 -1
  23. package/fesm2022/_tooltip-chunk.mjs +3 -2
  24. package/fesm2022/_tooltip-chunk.mjs.map +1 -1
  25. package/fesm2022/autocomplete-testing.mjs.map +1 -1
  26. package/fesm2022/autocomplete.mjs.map +1 -1
  27. package/fesm2022/badge-testing.mjs.map +1 -1
  28. package/fesm2022/badge.mjs.map +1 -1
  29. package/fesm2022/bottom-sheet-testing.mjs.map +1 -1
  30. package/fesm2022/bottom-sheet.mjs.map +1 -1
  31. package/fesm2022/button-testing.mjs.map +1 -1
  32. package/fesm2022/button-toggle-testing.mjs.map +1 -1
  33. package/fesm2022/button-toggle.mjs.map +1 -1
  34. package/fesm2022/button.mjs.map +1 -1
  35. package/fesm2022/card-testing.mjs.map +1 -1
  36. package/fesm2022/card.mjs.map +1 -1
  37. package/fesm2022/checkbox-testing.mjs.map +1 -1
  38. package/fesm2022/checkbox.mjs.map +1 -1
  39. package/fesm2022/chips-testing.mjs.map +1 -1
  40. package/fesm2022/chips.mjs.map +1 -1
  41. package/fesm2022/core-testing.mjs.map +1 -1
  42. package/fesm2022/core.mjs +1 -1
  43. package/fesm2022/core.mjs.map +1 -1
  44. package/fesm2022/datepicker-testing.mjs.map +1 -1
  45. package/fesm2022/datepicker.mjs.map +1 -1
  46. package/fesm2022/dialog-testing.mjs.map +1 -1
  47. package/fesm2022/dialog.mjs.map +1 -1
  48. package/fesm2022/divider-testing.mjs.map +1 -1
  49. package/fesm2022/divider.mjs.map +1 -1
  50. package/fesm2022/expansion-testing.mjs.map +1 -1
  51. package/fesm2022/expansion.mjs.map +1 -1
  52. package/fesm2022/form-field-testing-control.mjs.map +1 -1
  53. package/fesm2022/form-field-testing.mjs.map +1 -1
  54. package/fesm2022/form-field.mjs.map +1 -1
  55. package/fesm2022/grid-list-testing.mjs.map +1 -1
  56. package/fesm2022/grid-list.mjs.map +1 -1
  57. package/fesm2022/icon-testing.mjs.map +1 -1
  58. package/fesm2022/icon.mjs.map +1 -1
  59. package/fesm2022/input-testing.mjs.map +1 -1
  60. package/fesm2022/input.mjs.map +1 -1
  61. package/fesm2022/list-testing.mjs.map +1 -1
  62. package/fesm2022/list.mjs.map +1 -1
  63. package/fesm2022/material.mjs.map +1 -1
  64. package/fesm2022/menu-testing.mjs.map +1 -1
  65. package/fesm2022/menu.mjs.map +1 -1
  66. package/fesm2022/paginator-testing.mjs.map +1 -1
  67. package/fesm2022/paginator.mjs.map +1 -1
  68. package/fesm2022/progress-bar-testing.mjs.map +1 -1
  69. package/fesm2022/progress-bar.mjs.map +1 -1
  70. package/fesm2022/progress-spinner-testing.mjs.map +1 -1
  71. package/fesm2022/progress-spinner.mjs.map +1 -1
  72. package/fesm2022/radio-testing.mjs.map +1 -1
  73. package/fesm2022/radio.mjs.map +1 -1
  74. package/fesm2022/select-testing.mjs.map +1 -1
  75. package/fesm2022/select.mjs.map +1 -1
  76. package/fesm2022/sidenav-testing.mjs.map +1 -1
  77. package/fesm2022/sidenav.mjs.map +1 -1
  78. package/fesm2022/slide-toggle-testing.mjs.map +1 -1
  79. package/fesm2022/slide-toggle.mjs.map +1 -1
  80. package/fesm2022/slider-testing.mjs.map +1 -1
  81. package/fesm2022/slider.mjs.map +1 -1
  82. package/fesm2022/snack-bar-testing.mjs.map +1 -1
  83. package/fesm2022/snack-bar.mjs.map +1 -1
  84. package/fesm2022/sort-testing.mjs.map +1 -1
  85. package/fesm2022/sort.mjs.map +1 -1
  86. package/fesm2022/stepper-testing.mjs.map +1 -1
  87. package/fesm2022/stepper.mjs.map +1 -1
  88. package/fesm2022/table-testing.mjs.map +1 -1
  89. package/fesm2022/table.mjs.map +1 -1
  90. package/fesm2022/tabs-testing.mjs.map +1 -1
  91. package/fesm2022/tabs.mjs.map +1 -1
  92. package/fesm2022/timepicker-testing.mjs.map +1 -1
  93. package/fesm2022/timepicker.mjs.map +1 -1
  94. package/fesm2022/toolbar-testing.mjs.map +1 -1
  95. package/fesm2022/toolbar.mjs.map +1 -1
  96. package/fesm2022/tooltip-testing.mjs.map +1 -1
  97. package/fesm2022/tooltip.mjs.map +1 -1
  98. package/fesm2022/tree-testing.mjs.map +1 -1
  99. package/fesm2022/tree.mjs.map +1 -1
  100. package/package.json +2 -2
  101. package/schematics/ng-add/index.js +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"stepper-testing.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/src/material/stepper/testing/step-harness.ts","../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/src/material/stepper/testing/stepper-harness.ts","../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/src/material/stepper/testing/stepper-button-harnesses.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {\n ContentContainerComponentHarness,\n HarnessPredicate,\n HarnessLoader,\n} from '@angular/cdk/testing';\nimport {StepHarnessFilters} from './step-harness-filters';\n\n/** Harness for interacting with a standard Angular Material step in tests. */\nexport class MatStepHarness extends ContentContainerComponentHarness<string> {\n /** The selector for the host element of a `MatStep` instance. */\n static hostSelector = '.mat-step-header';\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a `MatStepHarness` that meets\n * certain criteria.\n * @param options Options for filtering which steps are considered a match.\n * @return a `HarnessPredicate` configured with the given options.\n */\n static with(options: StepHarnessFilters = {}): HarnessPredicate<MatStepHarness> {\n return new HarnessPredicate(MatStepHarness, options)\n .addOption('label', options.label, (harness, label) =>\n HarnessPredicate.stringMatches(harness.getLabel(), label),\n )\n .addOption(\n 'selected',\n options.selected,\n async (harness, selected) => (await harness.isSelected()) === selected,\n )\n .addOption(\n 'completed',\n options.completed,\n async (harness, completed) => (await harness.isCompleted()) === completed,\n )\n .addOption(\n 'invalid',\n options.invalid,\n async (harness, invalid) => (await harness.hasErrors()) === invalid,\n );\n }\n\n /** Gets the label of the step. */\n async getLabel(): Promise<string> {\n return (await this.locatorFor('.mat-step-text-label')()).text();\n }\n\n /** Gets the `aria-label` of the step. */\n async getAriaLabel(): Promise<string | null> {\n return (await this.host()).getAttribute('aria-label');\n }\n\n /** Gets the value of the `aria-labelledby` attribute. */\n async getAriaLabelledby(): Promise<string | null> {\n return (await this.host()).getAttribute('aria-labelledby');\n }\n\n /** Whether the step is selected. */\n async isSelected(): Promise<boolean> {\n const host = await this.host();\n return (\n (await host.getAttribute('aria-selected')) === 'true' ||\n (await host.getAttribute('aria-current')) === 'step'\n );\n }\n\n /** Whether the step has been filled out. */\n async isCompleted(): Promise<boolean> {\n const state = await this._getIconState();\n return state === 'done' || (state === 'edit' && !(await this.isSelected()));\n }\n\n /**\n * Whether the step is currently showing its error state. Note that this doesn't mean that there\n * are or aren't any invalid form controls inside the step, but that the step is showing its\n * error-specific styling which depends on there being invalid controls, as well as the\n * `ErrorStateMatcher` determining that an error should be shown and that the `showErrors`\n * option was enabled through the `STEPPER_GLOBAL_OPTIONS` injection token.\n */\n async hasErrors(): Promise<boolean> {\n return (await this._getIconState()) === 'error';\n }\n\n /** Whether the step is optional. */\n async isOptional(): Promise<boolean> {\n // If the node with the optional text is present, it means that the step is optional.\n const optionalNode = await this.locatorForOptional('.mat-step-optional')();\n return !!optionalNode;\n }\n\n /**\n * Selects the given step by clicking on the label. The step may not be selected\n * if the stepper doesn't allow it (e.g. if there are validation errors).\n */\n async select(): Promise<void> {\n await (await this.host()).click();\n }\n\n protected override async getRootHarnessLoader(): Promise<HarnessLoader> {\n const contentId = await (await this.host()).getAttribute('aria-controls');\n return this.documentRootLocatorFactory().harnessLoaderFor(`#${contentId}`);\n }\n\n /**\n * Gets the state of the step. Note that we have a `StepState` which we could use to type the\n * return value, but it's basically the same as `string`, because the type has `| string`.\n */\n private async _getIconState(): Promise<string> {\n // The state is exposed on the icon with a class that looks like `mat-step-icon-state-{{state}}`\n const icon = await this.locatorFor('.mat-step-icon')();\n const classes = (await icon.getAttribute('class'))!;\n const match = classes.match(/mat-step-icon-state-([a-z]+)/);\n\n if (!match) {\n throw Error(`Could not determine step state from \"${classes}\".`);\n }\n\n return match[1];\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {ComponentHarness, HarnessPredicate} from '@angular/cdk/testing';\nimport {MatStepHarness} from './step-harness';\nimport {\n StepperHarnessFilters,\n StepHarnessFilters,\n StepperOrientation,\n} from './step-harness-filters';\n\n/** Harness for interacting with a standard Material stepper in tests. */\nexport class MatStepperHarness extends ComponentHarness {\n /** The selector for the host element of a `MatStepper` instance. */\n static hostSelector = '.mat-stepper-horizontal, .mat-stepper-vertical';\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a `MatStepperHarness` that meets\n * certain criteria.\n * @param options Options for filtering which stepper instances are considered a match.\n * @return a `HarnessPredicate` configured with the given options.\n */\n static with(options: StepperHarnessFilters = {}): HarnessPredicate<MatStepperHarness> {\n return new HarnessPredicate(MatStepperHarness, options).addOption(\n 'orientation',\n options.orientation,\n async (harness, orientation) => (await harness.getOrientation()) === orientation,\n );\n }\n\n /**\n * Gets the list of steps in the stepper.\n * @param filter Optionally filters which steps are included.\n */\n async getSteps(filter: StepHarnessFilters = {}): Promise<MatStepHarness[]> {\n return this.locatorForAll(MatStepHarness.with(filter))();\n }\n\n /** Gets the orientation of the stepper. */\n async getOrientation(): Promise<StepperOrientation> {\n const host = await this.host();\n return (await host.hasClass('mat-stepper-horizontal'))\n ? StepperOrientation.HORIZONTAL\n : StepperOrientation.VERTICAL;\n }\n\n /**\n * Selects a step in this stepper.\n * @param filter An optional filter to apply to the child steps. The first step matching the\n * filter will be selected.\n */\n async selectStep(filter: StepHarnessFilters = {}): Promise<void> {\n const steps = await this.getSteps(filter);\n if (!steps.length) {\n throw Error(`Cannot find mat-step matching filter ${JSON.stringify(filter)}`);\n }\n await steps[0].select();\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {ComponentHarness, HarnessPredicate} from '@angular/cdk/testing';\nimport {StepperButtonHarnessFilters} from './step-harness-filters';\n\n/** Base class for stepper button harnesses. */\nabstract class StepperButtonHarness extends ComponentHarness {\n /** Gets the text of the button. */\n async getText(): Promise<string> {\n return (await this.host()).text();\n }\n\n /** Clicks the button. */\n async click(): Promise<void> {\n return (await this.host()).click();\n }\n}\n\n/** Harness for interacting with a standard Angular Material stepper next button in tests. */\nexport class MatStepperNextHarness extends StepperButtonHarness {\n /** The selector for the host element of a `MatStep` instance. */\n static hostSelector = '.mat-stepper-next';\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a `MatStepperNextHarness` that meets\n * certain criteria.\n * @param options Options for filtering which steps are considered a match.\n * @return a `HarnessPredicate` configured with the given options.\n */\n static with(options: StepperButtonHarnessFilters = {}): HarnessPredicate<MatStepperNextHarness> {\n return new HarnessPredicate(MatStepperNextHarness, options).addOption(\n 'text',\n options.text,\n (harness, text) => HarnessPredicate.stringMatches(harness.getText(), text),\n );\n }\n}\n\n/** Harness for interacting with a standard Angular Material stepper previous button in tests. */\nexport class MatStepperPreviousHarness extends StepperButtonHarness {\n /** The selector for the host element of a `MatStep` instance. */\n static hostSelector = '.mat-stepper-previous';\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a `MatStepperPreviousHarness`\n * that meets certain criteria.\n * @param options Options for filtering which steps are considered a match.\n * @return a `HarnessPredicate` configured with the given options.\n */\n static with(\n options: StepperButtonHarnessFilters = {},\n ): HarnessPredicate<MatStepperPreviousHarness> {\n return new HarnessPredicate(MatStepperPreviousHarness, options).addOption(\n 'text',\n options.text,\n (harness, text) => HarnessPredicate.stringMatches(harness.getText(), text),\n );\n }\n}\n"],"names":["with","options","HarnessPredicate","MatStepHarness","getLabel","locatorFor","text","getAriaLabel","getAriaLabelledby","isSelected","state","_getIconState","hasErrors","hostSelector","MatStepperHarness","addOption","orientation","harness","getOrientation","getSteps","filter","locatorForAll","StepperOrientation","HORIZONTAL","VERTICAL","click","host","MatStepperNextHarness","StepperButtonHarness","stringMatches","getText"],"mappings":";;;;SAgDoCA,IAAAA,CAAAC,OAAA,GAAA,EAAA,EAAA;AAEhC,IAAA,OAAA,IAAAC,gBAAA,CAAAC,cAAA,EAAAF,OAAA;;AASFG,EAAAA,MAAAA,QAAuBA,GAAA;AACrB,IAAA,OAAA,CAAA,MAAQ,IAAA,CAAAC,UAAU,CAAuC,sBAAA,CAAA,IAAAC,IAC3D,EAAA;;AAiBAC,EAAAA,MAAAA,YAAAA;;AAOA;AAEAC,EAAAA,MAAAA,iBAAAA,GAAA;;;kBAMSC,GAAE;;;;;IAWQ,MAAAC,KAAA,GAA0B,MAAA,IAAA,CAAAC,aAAA,EAAA;AAC3C,IAAA,OAAAD,KAAM,KAAS,MAAS,IAAAA;;AAetB,EAAA,MAAAE,SAAA,GAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACrGJ,EAAA,OAAAC,YAAA,GAAA,gDAAA;EAmBG,OAAAb,IAAAA,CAAAC,OAAA,GAAA,EAAA,EAAA;IAED,OAAAC,IAAAA,gBAAA,CAAAY,iBAAA,EAAAb,OAAA,CAAAc,CAAAA,SAAA,gBAAAd,OAAA,CAAAe,WAAA,EAAAC,OAAAA,OAAA,EAAAD,WAAA,KAAA,CAAA,MAAAC,OAAA,CAAAC,cAAA,QAAAF,WAAA,CAAA;;gBAOIG,CAAAC,MAAA,GAA6B,EAAA,EAAA;IAC/B,OAAA,IAAE,CAAAC,aAAA,CAAAlB,cAAkB,CAAAH,IAAS,CAAAoB,MAAA,CAAA,CAAA,EAAA;;;;gCAY/BE,wBAAAA,CAAAA,IAAAA,kBAAA,CAAAC,UAAA,GACAD,mBAAqBE;;;;;;;;;;;;;;;ACvCxB,EAAA,MAAAC,KAAA,GAAA;IAE4F,OAAA,CAAA,MAAA,IAAA,CAAAC,IAAA,EAAA,EAAAD,KAAA,EAAA;AACvF;;AAIJ,MAAAE,qBAAA,SAAAC,oBAAA,CAAA;;EAgBI,OAAA5B,IAAAA,CAAAC,OAAiC,GAAA,EAAA,EAAA;IAErC,OAAAC,IAAAA,gBAAA,CAAAyB,qBAAA,EAAA1B,OAAA,EAAAc,SAAA,CAAA,MAAA,EAAAd,OAAA,CAAAK,IAAA,EAAA,CAAAW,OAAA,EAAAX,IAAA,KAAAJ,gBAAA,CAAA2B,aAAA,CAAAZ,OAAA,CAAAa,OAAA,EAAA,EAAAxB,IAAA,CAAA,CAAA;;;;EAOG,OAAAO,YAAA,GAAA,uBAAA;;;;;;;;"}
1
+ {"version":3,"file":"stepper-testing.mjs","sources":["../../../../../k8-fastbuild-ST-199a4f3c4e20/bin/src/material/stepper/testing/step-harness.ts","../../../../../k8-fastbuild-ST-199a4f3c4e20/bin/src/material/stepper/testing/step-harness-filters.ts","../../../../../k8-fastbuild-ST-199a4f3c4e20/bin/src/material/stepper/testing/stepper-harness.ts","../../../../../k8-fastbuild-ST-199a4f3c4e20/bin/src/material/stepper/testing/stepper-button-harnesses.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {\n ContentContainerComponentHarness,\n HarnessPredicate,\n HarnessLoader,\n} from '@angular/cdk/testing';\nimport {StepHarnessFilters} from './step-harness-filters';\n\n/** Harness for interacting with a standard Angular Material step in tests. */\nexport class MatStepHarness extends ContentContainerComponentHarness<string> {\n /** The selector for the host element of a `MatStep` instance. */\n static hostSelector = '.mat-step-header';\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a `MatStepHarness` that meets\n * certain criteria.\n * @param options Options for filtering which steps are considered a match.\n * @return a `HarnessPredicate` configured with the given options.\n */\n static with(options: StepHarnessFilters = {}): HarnessPredicate<MatStepHarness> {\n return new HarnessPredicate(MatStepHarness, options)\n .addOption('label', options.label, (harness, label) =>\n HarnessPredicate.stringMatches(harness.getLabel(), label),\n )\n .addOption(\n 'selected',\n options.selected,\n async (harness, selected) => (await harness.isSelected()) === selected,\n )\n .addOption(\n 'completed',\n options.completed,\n async (harness, completed) => (await harness.isCompleted()) === completed,\n )\n .addOption(\n 'invalid',\n options.invalid,\n async (harness, invalid) => (await harness.hasErrors()) === invalid,\n );\n }\n\n /** Gets the label of the step. */\n async getLabel(): Promise<string> {\n return (await this.locatorFor('.mat-step-text-label')()).text();\n }\n\n /** Gets the `aria-label` of the step. */\n async getAriaLabel(): Promise<string | null> {\n return (await this.host()).getAttribute('aria-label');\n }\n\n /** Gets the value of the `aria-labelledby` attribute. */\n async getAriaLabelledby(): Promise<string | null> {\n return (await this.host()).getAttribute('aria-labelledby');\n }\n\n /** Whether the step is selected. */\n async isSelected(): Promise<boolean> {\n const host = await this.host();\n return (\n (await host.getAttribute('aria-selected')) === 'true' ||\n (await host.getAttribute('aria-current')) === 'step'\n );\n }\n\n /** Whether the step has been filled out. */\n async isCompleted(): Promise<boolean> {\n const state = await this._getIconState();\n return state === 'done' || (state === 'edit' && !(await this.isSelected()));\n }\n\n /**\n * Whether the step is currently showing its error state. Note that this doesn't mean that there\n * are or aren't any invalid form controls inside the step, but that the step is showing its\n * error-specific styling which depends on there being invalid controls, as well as the\n * `ErrorStateMatcher` determining that an error should be shown and that the `showErrors`\n * option was enabled through the `STEPPER_GLOBAL_OPTIONS` injection token.\n */\n async hasErrors(): Promise<boolean> {\n return (await this._getIconState()) === 'error';\n }\n\n /** Whether the step is optional. */\n async isOptional(): Promise<boolean> {\n // If the node with the optional text is present, it means that the step is optional.\n const optionalNode = await this.locatorForOptional('.mat-step-optional')();\n return !!optionalNode;\n }\n\n /**\n * Selects the given step by clicking on the label. The step may not be selected\n * if the stepper doesn't allow it (e.g. if there are validation errors).\n */\n async select(): Promise<void> {\n await (await this.host()).click();\n }\n\n protected override async getRootHarnessLoader(): Promise<HarnessLoader> {\n const contentId = await (await this.host()).getAttribute('aria-controls');\n return this.documentRootLocatorFactory().harnessLoaderFor(`#${contentId}`);\n }\n\n /**\n * Gets the state of the step. Note that we have a `StepState` which we could use to type the\n * return value, but it's basically the same as `string`, because the type has `| string`.\n */\n private async _getIconState(): Promise<string> {\n // The state is exposed on the icon with a class that looks like `mat-step-icon-state-{{state}}`\n const icon = await this.locatorFor('.mat-step-icon')();\n const classes = (await icon.getAttribute('class'))!;\n const match = classes.match(/mat-step-icon-state-([a-z]+)/);\n\n if (!match) {\n throw Error(`Could not determine step state from \"${classes}\".`);\n }\n\n return match[1];\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\nimport {BaseHarnessFilters} from '@angular/cdk/testing';\n\n/** Possible orientations for a stepper. */\nexport enum StepperOrientation {\n HORIZONTAL,\n VERTICAL,\n}\n\n/** A set of criteria that can be used to filter a list of `MatStepHarness` instances. */\nexport interface StepHarnessFilters extends BaseHarnessFilters {\n /** Only find instances whose label matches the given value. */\n label?: string | RegExp;\n /** Only find steps with the given selected state. */\n selected?: boolean;\n /** Only find completed steps. */\n completed?: boolean;\n /** Only find steps that have errors. */\n invalid?: boolean;\n}\n\n/** A set of criteria that can be used to filter a list of `MatStepperHarness` instances. */\nexport interface StepperHarnessFilters extends BaseHarnessFilters {\n /** Only find instances whose orientation matches the given value. */\n orientation?: StepperOrientation;\n}\n\n/**\n * A set of criteria that can be used to filter a list of\n * `MatStepperNextHarness` and `MatStepperPreviousHarness` instances.\n */\nexport interface StepperButtonHarnessFilters extends BaseHarnessFilters {\n /** Only find instances whose text matches the given value. */\n text?: string | RegExp;\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {ComponentHarness, HarnessPredicate} from '@angular/cdk/testing';\nimport {MatStepHarness} from './step-harness';\nimport {\n StepperHarnessFilters,\n StepHarnessFilters,\n StepperOrientation,\n} from './step-harness-filters';\n\n/** Harness for interacting with a standard Material stepper in tests. */\nexport class MatStepperHarness extends ComponentHarness {\n /** The selector for the host element of a `MatStepper` instance. */\n static hostSelector = '.mat-stepper-horizontal, .mat-stepper-vertical';\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a `MatStepperHarness` that meets\n * certain criteria.\n * @param options Options for filtering which stepper instances are considered a match.\n * @return a `HarnessPredicate` configured with the given options.\n */\n static with(options: StepperHarnessFilters = {}): HarnessPredicate<MatStepperHarness> {\n return new HarnessPredicate(MatStepperHarness, options).addOption(\n 'orientation',\n options.orientation,\n async (harness, orientation) => (await harness.getOrientation()) === orientation,\n );\n }\n\n /**\n * Gets the list of steps in the stepper.\n * @param filter Optionally filters which steps are included.\n */\n async getSteps(filter: StepHarnessFilters = {}): Promise<MatStepHarness[]> {\n return this.locatorForAll(MatStepHarness.with(filter))();\n }\n\n /** Gets the orientation of the stepper. */\n async getOrientation(): Promise<StepperOrientation> {\n const host = await this.host();\n return (await host.hasClass('mat-stepper-horizontal'))\n ? StepperOrientation.HORIZONTAL\n : StepperOrientation.VERTICAL;\n }\n\n /**\n * Selects a step in this stepper.\n * @param filter An optional filter to apply to the child steps. The first step matching the\n * filter will be selected.\n */\n async selectStep(filter: StepHarnessFilters = {}): Promise<void> {\n const steps = await this.getSteps(filter);\n if (!steps.length) {\n throw Error(`Cannot find mat-step matching filter ${JSON.stringify(filter)}`);\n }\n await steps[0].select();\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {ComponentHarness, HarnessPredicate} from '@angular/cdk/testing';\nimport {StepperButtonHarnessFilters} from './step-harness-filters';\n\n/** Base class for stepper button harnesses. */\nabstract class StepperButtonHarness extends ComponentHarness {\n /** Gets the text of the button. */\n async getText(): Promise<string> {\n return (await this.host()).text();\n }\n\n /** Clicks the button. */\n async click(): Promise<void> {\n return (await this.host()).click();\n }\n}\n\n/** Harness for interacting with a standard Angular Material stepper next button in tests. */\nexport class MatStepperNextHarness extends StepperButtonHarness {\n /** The selector for the host element of a `MatStep` instance. */\n static hostSelector = '.mat-stepper-next';\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a `MatStepperNextHarness` that meets\n * certain criteria.\n * @param options Options for filtering which steps are considered a match.\n * @return a `HarnessPredicate` configured with the given options.\n */\n static with(options: StepperButtonHarnessFilters = {}): HarnessPredicate<MatStepperNextHarness> {\n return new HarnessPredicate(MatStepperNextHarness, options).addOption(\n 'text',\n options.text,\n (harness, text) => HarnessPredicate.stringMatches(harness.getText(), text),\n );\n }\n}\n\n/** Harness for interacting with a standard Angular Material stepper previous button in tests. */\nexport class MatStepperPreviousHarness extends StepperButtonHarness {\n /** The selector for the host element of a `MatStep` instance. */\n static hostSelector = '.mat-stepper-previous';\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a `MatStepperPreviousHarness`\n * that meets certain criteria.\n * @param options Options for filtering which steps are considered a match.\n * @return a `HarnessPredicate` configured with the given options.\n */\n static with(\n options: StepperButtonHarnessFilters = {},\n ): HarnessPredicate<MatStepperPreviousHarness> {\n return new HarnessPredicate(MatStepperPreviousHarness, options).addOption(\n 'text',\n options.text,\n (harness, text) => HarnessPredicate.stringMatches(harness.getText(), text),\n );\n }\n}\n"],"names":["MatStepHarness","ContentContainerComponentHarness","hostSelector","with","options","HarnessPredicate","addOption","label","harness","stringMatches","getLabel","selected","isSelected","completed","isCompleted","invalid","hasErrors","locatorFor","text","getAriaLabel","host","getAttribute","getAriaLabelledby","state","_getIconState","isOptional","optionalNode","locatorForOptional","select","click","getRootHarnessLoader","contentId","documentRootLocatorFactory","harnessLoaderFor","icon","classes","match","Error","StepperOrientation","MatStepperHarness","ComponentHarness","orientation","getOrientation","getSteps","filter","locatorForAll","hasClass","HORIZONTAL","VERTICAL","selectStep","steps","length","JSON","stringify","StepperButtonHarness","getText","MatStepperNextHarness","MatStepperPreviousHarness"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"stepper.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/src/material/stepper/step-label.ts","../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/src/material/stepper/stepper-intl.ts","../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/src/material/stepper/step-header.ts","../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/src/material/stepper/stepper-icon.ts","../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/src/material/stepper/step-content.ts","../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/src/material/stepper/stepper.ts","../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/src/material/stepper/stepper-button.ts","../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/src/material/stepper/stepper-module.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {Directive} from '@angular/core';\nimport {CdkStepLabel} from '@angular/cdk/stepper';\n\n@Directive({\n selector: '[matStepLabel]',\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.dev/license\n */\n\nimport {Injectable} 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 * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {FocusMonitor, FocusOrigin} from '@angular/cdk/a11y';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Input,\n OnDestroy,\n ViewEncapsulation,\n TemplateRef,\n AfterViewInit,\n inject,\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 {_StructuralStylesLoader, MatRipple, ThemePalette} from '../core';\nimport {MatIcon} from '../icon';\nimport {NgTemplateOutlet} from '@angular/common';\nimport {_CdkPrivateStyleLoader, _VisuallyHiddenLoader} from '@angular/cdk/private';\n\n@Component({\n selector: 'mat-step-header',\n templateUrl: 'step-header.html',\n styleUrl: 'step-header.css',\n host: {\n 'class': 'mat-step-header',\n '[class.mat-step-header-empty-label]': '_hasEmptyLabel()',\n '[class]': '\"mat-\" + (color || \"primary\")',\n 'role': '', // ignore cdk role in favor of setting appropriately in html\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [MatRipple, NgTemplateOutlet, MatIcon],\n})\nexport class MatStepHeader extends CdkStepHeader implements AfterViewInit, OnDestroy {\n _intl = inject(MatStepperIntl);\n private _focusMonitor = inject(FocusMonitor);\n\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 /**\n * Theme color of the step header. This API is supported in M2 themes only, it\n * has no effect in M3 themes. For color customization in M3, see https://material.angular.dev/components/stepper/styling.\n *\n * For information on applying color variants in M3, see\n * https://material.angular.dev/guide/material-2-theming#optional-add-backwards-compatibility-styles-for-color-variants\n */\n @Input() color: ThemePalette;\n\n constructor(...args: unknown[]);\n\n constructor() {\n super();\n\n const styleLoader = inject(_CdkPrivateStyleLoader);\n styleLoader.load(_StructuralStylesLoader);\n styleLoader.load(_VisuallyHiddenLoader);\n const changeDetectorRef = inject(ChangeDetectorRef);\n this._intlSubscription = this._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 _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 protected _hasEmptyLabel() {\n return (\n !this._stringLabel() &&\n !this._templateLabel() &&\n !this._hasOptionalLabel() &&\n !this._hasErrorLabel()\n );\n }\n\n protected _hasOptionalLabel() {\n return this.optional && this.state !== 'error';\n }\n\n protected _hasErrorLabel() {\n return this.state === 'error';\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {Directive, Input, TemplateRef, inject} 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})\nexport class MatStepperIcon {\n templateRef = inject<TemplateRef<MatStepperIconContext>>(TemplateRef);\n\n /** Name of the icon to be overridden. */\n @Input('matStepperIcon') name: StepState;\n\n constructor(...args: unknown[]);\n constructor() {}\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {Directive, TemplateRef, inject} 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})\nexport class MatStepContent {\n _template = inject<TemplateRef<any>>(TemplateRef);\n\n constructor(...args: unknown[]);\n constructor() {}\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {CdkStep, CdkStepper} from '@angular/cdk/stepper';\nimport {\n AfterContentInit,\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n ContentChildren,\n ElementRef,\n EventEmitter,\n inject,\n Input,\n NgZone,\n OnDestroy,\n Output,\n QueryList,\n Renderer2,\n signal,\n TemplateRef,\n ViewChildren,\n ViewContainerRef,\n ViewEncapsulation,\n} from '@angular/core';\nimport {NgTemplateOutlet} from '@angular/common';\nimport {AbstractControl, FormGroupDirective, NgForm} from '@angular/forms';\nimport {_animationsDisabled, ErrorStateMatcher, ThemePalette} from '../core';\nimport {Platform} from '@angular/cdk/platform';\nimport {CdkPortalOutlet, TemplatePortal} from '@angular/cdk/portal';\nimport {Subscription} from 'rxjs';\nimport {takeUntil, map, startWith, switchMap} from 'rxjs/operators';\n\nimport {MatStepHeader} from './step-header';\nimport {MatStepLabel} from './step-label';\nimport {MatStepperIcon, MatStepperIconContext} from './stepper-icon';\nimport {MatStepContent} from './step-content';\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 imports: [CdkPortalOutlet],\n host: {\n 'hidden': '', // Hide the steps so they don't affect the layout.\n },\n})\nexport class MatStep extends CdkStep implements ErrorStateMatcher, AfterContentInit, OnDestroy {\n private _errorStateMatcher = inject(ErrorStateMatcher, {skipSelf: true});\n private _viewContainerRef = inject(ViewContainerRef);\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 /**\n * Theme color for the particular step. This API is supported in M2 themes\n * only, it has no effect in M3 themes. For color customization in M3, see https://material.angular.dev/components/stepper/styling.\n *\n * For information on applying color variants in M3, see\n * https://material.angular.dev/guide/material-2-theming#optional-add-backwards-compatibility-styles-for-color-variants\n */\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 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 styleUrl: 'stepper.css',\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 '[class.mat-stepper-animating]': '_isAnimating()',\n '[style.--mat-stepper-animation-duration]': '_getAnimationDuration()',\n },\n providers: [{provide: CdkStepper, useExisting: MatStepper}],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgTemplateOutlet, MatStepHeader],\n})\nexport class MatStepper extends CdkStepper implements AfterViewInit, AfterContentInit, OnDestroy {\n private _ngZone = inject(NgZone);\n private _renderer = inject(Renderer2);\n private _animationsDisabled = _animationsDisabled();\n private _cleanupTransition: (() => void) | undefined;\n protected _isAnimating = signal(false);\n\n /** The list of step headers of the steps in the stepper. */\n @ViewChildren(MatStepHeader) override _stepHeader: QueryList<MatStepHeader> = undefined!;\n\n /** Elements hosting the step animations. */\n @ViewChildren('animatedContainer') _animatedContainers: QueryList<ElementRef>;\n\n /** Full list of steps inside the stepper, including inside nested steppers. */\n @ContentChildren(MatStep, {descendants: true}) override _steps: QueryList<MatStep> = undefined!;\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 /**\n * Theme color for all of the steps in stepper. This API is supported in M2\n * themes only, it has no effect in M3 themes. For color customization in M3, see https://material.angular.dev/components/stepper/styling.\n *\n * For information on applying color variants in M3, see\n * https://material.angular.dev/guide/material-2-theming#optional-add-backwards-compatibility-styles-for-color-variants\n */\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 /** 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 /** Whether the stepper is rendering on the server. */\n protected _isServer: boolean = !inject(Platform).isBrowser;\n\n constructor(...args: unknown[]);\n\n constructor() {\n super();\n\n const elementRef = inject<ElementRef<HTMLElement>>(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(() => this._stateChanged());\n\n // Transition events won't fire if animations are disabled so we simulate them.\n this.selectedIndexChange.pipe(takeUntil(this._destroyed)).subscribe(() => {\n const duration = this._getAnimationDuration();\n if (duration === '0ms' || duration === '0s') {\n this._onAnimationDone();\n } else {\n this._isAnimating.set(true);\n }\n });\n\n this._ngZone.runOutsideAngular(() => {\n if (!this._animationsDisabled) {\n setTimeout(() => {\n // Delay enabling the animations so we don't animate the initial state.\n this._elementRef.nativeElement.classList.add('mat-stepper-animations-enabled');\n\n // Bind this outside the zone since it fires for all transitions inside the stepper.\n this._cleanupTransition = this._renderer.listen(\n this._elementRef.nativeElement,\n 'transitionend',\n this._handleTransitionend,\n );\n }, 200);\n }\n });\n }\n\n override ngAfterViewInit(): void {\n super.ngAfterViewInit();\n\n // Prior to #30314 the stepper had animation `done` events bound to each animated container.\n // The animations module was firing them on initialization and for each subsequent animation.\n // Since the events were bound in the template, it had the unintended side-effect of triggering\n // change detection as well. It appears that this side-effect ended up being load-bearing,\n // because it was ensuring that the content elements (e.g. `matStepLabel`) that are defined\n // in sub-components actually get picked up in a timely fashion. This subscription simulates\n // the same change detection by using `queueMicrotask` similarly to the animations module.\n if (typeof queueMicrotask === 'function') {\n let hasEmittedInitial = false;\n this._animatedContainers.changes\n .pipe(startWith(null), takeUntil(this._destroyed))\n .subscribe(() =>\n queueMicrotask(() => {\n // Simulate the initial `animationDone` event\n // that gets emitted by the animations module.\n if (!hasEmittedInitial) {\n hasEmittedInitial = true;\n this.animationDone.emit();\n }\n\n this._stateChanged();\n }),\n );\n }\n }\n\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n this._cleanupTransition?.();\n }\n\n _getAnimationDuration() {\n if (this._animationsDisabled) {\n return '0ms';\n }\n\n if (this.animationDuration) {\n return this.animationDuration;\n }\n\n return this.orientation === 'horizontal' ? '500ms' : '225ms';\n }\n\n private _handleTransitionend = (event: TransitionEvent) => {\n const target = event.target as HTMLElement | null;\n\n if (!target) {\n return;\n }\n\n // Because we bind a single `transitionend` handler on the host node and because transition\n // events bubble, we have to filter down to only the active step so don't emit events too\n // often. We check the orientation and `property` name first to reduce the amount of times\n // we need to check the DOM.\n const isHorizontalActiveElement =\n this.orientation === 'horizontal' &&\n event.propertyName === 'transform' &&\n target.classList.contains('mat-horizontal-stepper-content-current');\n const isVerticalActiveElement =\n this.orientation === 'vertical' &&\n event.propertyName === 'grid-template-rows' &&\n target.classList.contains('mat-vertical-content-container-active');\n\n // Finally we need to ensure that the animated element is a direct descendant,\n // rather than one coming from a nested stepper.\n const shouldEmit =\n (isHorizontalActiveElement || isVerticalActiveElement) &&\n this._animatedContainers.find(ref => ref.nativeElement === target);\n\n if (shouldEmit) {\n this._onAnimationDone();\n }\n };\n\n private _onAnimationDone() {\n this._isAnimating.set(false);\n this.animationDone.emit();\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {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})\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})\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.dev/license\n */\n\nimport {BidiModule} from '@angular/cdk/bidi';\nimport {PortalModule} from '@angular/cdk/portal';\nimport {CdkStepperModule} from '@angular/cdk/stepper';\nimport {NgModule} from '@angular/core';\nimport {ErrorStateMatcher, MatRippleModule} from '../core';\nimport {MatIconModule} from '../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 {MatStepContent} from './step-content';\n\n@NgModule({\n imports: [\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 BidiModule,\n MatStep,\n MatStepLabel,\n MatStepper,\n MatStepperNext,\n MatStepperPrevious,\n MatStepHeader,\n MatStepperIcon,\n MatStepContent,\n ],\n providers: [ErrorStateMatcher],\n})\nexport class MatStepperModule {}\n"],"names":["minVersion","version","ngImport","i0","type","MatStepLabel","decorators","Directive","MatStepperIntl","providedIn","MatStepHeader","CdkStepHeader","inject","_focusMonitor","FocusMonitor","label","errorMessage","color","changeDetectorRef","ChangeDetectorRef","_intlSubscription","_intl","changes","subscribe","markForCheck","ngAfterViewInit","monitor","_elementRef","ngOnDestroy","unsubscribe","stopMonitoring","focus","origin","options","nativeElement","_stringLabel","OnPush","imports","MatRipple","NgTemplateOutlet","MatIcon","template","styles","ctorParameters","propDecorators","state","Input","templateRef","TemplateRef","_template","MatStep","CdkStep","ErrorStateMatcher","skipSelf","_viewContainerRef","ViewContainerRef","EMPTY","pipe","switchMap","isSelected","_lazyContent","_portal","TemplatePortal","_isSelected","isErrorState","control","form","originalErrorState","_errorStateMatcher","customErrorState","ɵfac","ɵɵngDeclareFactory","deps","target","ɵɵFactoryTarget","Component","provide","useExisting","queries","propertyName","first","predicate","descendants","MatStepContent","exportAs","usesInheritance","dependencies","kind","CdkPortalOutlet","selector","inputs","outputs","changeDetection","ChangeDetectionStrategy","encapsulation","ViewEncapsulation","None","host","stepLabel","ContentChild","static","CdkStepper","_animationsDisabled","ngDevMode","debugName","undefined","_animatedContainers","_icons","animationDuration","value","_animationDuration","test","Platform","isBrowser","elementRef","nodeName","ngAfterContentInit","forEach","name","_iconOverrides","steps","takeUntil","_stateChanged","duration","_getAnimationDuration","_onAnimationDone","_isAnimating","set","classList","add","_cleanupTransition","_renderer","listen","_handleTransitionend","emit","_stepHeader","ContentChildren","MatStepperIcon","Output","MatStepperNext","args","CdkStepperPrevious","MatStepperPrevious","isStandalone","properties","classAttribute","MatStepperModule","NgModule","ɵɵngDeclareNgModule","PortalModule","providers","CdkStepperModule","BidiModule"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAWU,CAAA;AAAAA,EAAAA,UAAA,EAAA,QAAA;EAAAC,OAAA,EAAA,eAAA;AAAAC,EAAAA,QAAA,EAAAC,EAAA;AAAAC,EAAAA,IAAA,EAAAC,YAAA;EAAAC,UAAA,EAAA,CAAA;AAACF,IAAAA,IAAA,EAAAG,SAAA;;;;;;;;;eCaK;;AAXH,EAAA,aAAA,GAAA,UAAA;;;;;;;;;;cADF,EAAA,QAAA;IAAAN,OAAA,EAAA,eAAA;AAAAC,IAAAA,QAAA,EAAAC,EAAA;AAAAC,IAAAA,IAAA,EAAAI,cAAA;IAAAC,UAAA,EAAA;AAAA,GAAA,CAAA;;;;;;;;;;;;;;;ACkDsB,MAAAC,aAAA,SAAAC,aAAA,CAAA;OAGW,GAAAC,MAAA,CAAAJ,cAAA,CAAA;EACjCK,aAAA,GAAAD,MAAA,CAAAE,YAAQ,CAAA;mBAE6B;OAGJ;EAsBxCC,KAAA;EAEAC,YAAA;;;;;;;EAqCAC,KAAA;;;;;;AAMA,IAAA,MAAAC,iBAAA,GAAAN,MAAA,CAAAO,iBAAA,CAAA;IACE,IAAgB,CAAAC,iBAAA,GAAA,IAAA,CAAAC,KAAA,CAAAC,OAAA,CAAAC,SAAA,CAAA,MAAAL,iBAAA,CAAAM,YAAA,EAAA,CAAA;;iBAMlBC,GAAA;sBAGQ,CAAAC,OAAA,CAAA,IAAAC,CAAAA,WAAA,MAAmB,CAAA;;aAG7BC,GAAA;IAEU,IAAAR,CAAAA,iBAAiB,CAAAS,WAAA,EAAA;QACzB,CAAOhB,aAAA,CAAAiB,mBAAsB,CAAAH,WAAU,CAAA;;OAKzCI,CAAAC,MAAA,EAAAC,OAAA,EAAA;;;;AAhIU,MAAA,IAAA,CAAAN,WAAA,CAAAO,aAAA,CAAAH,KAAA,CAAAE,OAAA,CAAA;AAKR;AACA;AAEDE,EAAAA,YAAAA,GAAA;;;;;;;;;;iBA8BQ,QAAM,EAAA;;;iBAMO,MAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkBpB,MAAA,eAAA,EAAA,uBAAA,CAAAC,MAAA;AAAiBC,MAAAA,OAAA,EAAAC,CAAAA,SAAA,EAAAC,gBAAA,EAAAC,OAAA,CAAA;MAAAC,QAAA,EAAA,22DAAA;MAAAC,MAAA,EAAA,CAAA,isIAAA;AAAA,KAAA;;kBAnB0BC,MAAA,EAAA;EAAAC,cAAA,EAAA;IAAAC,KAAA,EAAA,CAAA;;;;;;;;;AAUpC,IAAA,aAAA,EAAA,CAAA;;;;AAqBTzC,MAAAA,IAAA,EAAA0C;;cAAA,CAAA;AAIM1C,MAAAA,IAAA,EAAA0C;;;;;;AAKN1C,MAAAA,IAAA,EAAA0C;;AAAA,IAAA,aAAA,EAAA,CAAA;AAIE1C,MAAAA,IAAA,EAAA0C;;AAAA,IAAA,KAAA,EAAA,CAAA;AAIY1C,MAAAA,IAAA,EAAA0C;;;;;;EC9FdC,WAAA,GAAAnC,MAAA,CAAAoC,WAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ECXAC,SAAA,GAAArC,MAAA,CAAAoC,WAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC0EM,MAAAE,OAAA,SAAEC,OAAA,CAAA;oBAEM,GAAWvC,MAAA,CAAAwC,iBAAG,EAAA;IAAAC,QAAA,EAAA;AAAA,GAAA,CAAA;EAEpBC,iBAAA,GAAY1C,MAAA,CAAA2C,gBAAO,CAAA;4BACrB,CAAAC,KAAA;;EAvCLvC,KAAA;;;;mDAqBYwC,IAAA,CAAAC,SAAA,CAAA,MAAA;;KA8DLnC,CAAAA,CAAAA,CAAAA,SAAA,CAAAoC,UAAA,IAAA;AACsB,MAAA,IAAAA,UAAA,IAAA,IAAA,CAAAC,YAAA,IAAA,CAAA,IAAA,CAAAC,OAAA,EAAA;QAEpB,IAAAA,CAAAA,OAAe,OAAAC,cAAA,CAAA,IAAA,CAAAF,YAAA,CAAAX,SAAA,OAAAK,iBAAA,CAAA;AAEmC;;;aAYL1B,GAAA;AACDmC,IAAAA,IAAAA,CAAAA,WAAM,CAAAlC,WAAA,EAAA;;cAKGmC,CAAAC,OAAA,EAAAC,IAAA,EAAA;IACtD,MAAAC,kBAAA,QAAAC,kBAAA,CAAAJ,YAAA,CAAAC,OAAA,EAAAC,IAAA,CAAA;;IAQN,OAAAC,kBAAA,IAAAE,gBAAA;AACM;AAETC,EAAAA,OAAAA,IAAA,GAAAnE,EAAA,CAAAoE,kBAAA,CAAA;AAAAvE,IAAAA,UAAA,EAAA,QAAA;AAAAC,IAAAA,OAAA,EAAA,eAAA;AAAAC,IAAAA,QAAA,EAAAC,EAAA;AAAAC,IAAAA,IAAA,EAAA8C,OAAA;IAAAsB,IAAA,EAAA,IAAA;AAAAC,IAAAA,MAAA,EAAAtE,EAAA,CAAAuE,eAAA,CAAAC;AAAA,GAAA,CAAA;;;;;;;;;;;;;;;eAGG,CAAA;AAAAC,MAAAA,OAAA,EAAAxB,iBAAA;AAAAyB,MAAAA,WAAA,EAAA3B;KAEH,EAAA;AAAA0B,MAAAA,OAAA,EAAAzB,OAAA;AAAA0B,MAAAA,WAAA,EAAuC3B;KAEvC,CAAA;IAAA4B,OAAA,EAAA,CAAA;AAAAC,MAAAA,YAAA,EAAA,WAAA;MAAAC,KAAA,EAAA,IAAA;AAAAC,MAAAA,SAAA,EAAA5E,YAAA;MAAA6E,WAAA,EAAA;AAAA,KAAA,EAAA;MAAAH,YAAA,EAAA,cAAA;MAAAC,KAAA,EAAA,IAAA;AAAAC,MAAAA,SAAA,EAAAE,cAAA;MAAAD,WAAA,EAAA;AAAA,KAAA,CAAA;IAAAE,QAAA,EAAA,CAAA,SAAA,CAAA;IAAAC,eAAA,EAAA,IAAA;AAAAnF,IAAAA,QAAA,EAAAC,EAAA;IAAAsC,QAAA,EAAA,2HAAA;IAAA6C,YAAA,EAAA,CAAA;MAAAC,IAAA,EAAA,WAAA;AAAAnF,MAAAA,IAAA,EAAAoF,eAAA;MAAAC,QAAA,EAAA,mBAAA;MAAAC,MAAA,EAAA,CAAA,iBAAA,CAAA;MAAAC,OAAA,EAAA,CAAA,UAAA,CAAA;MAAAP,QAAA,EAAA,CAAA,iBAAA;AAAA,KAAA,CAAA;AAAAQ,IAAAA,eAAA,EAAAzF,EAAA,CAAA0F,uBAAA,CAAAzD,MAAA;AAAA0D,IAAAA,aAAA,EAAA3F,EAAA,CAAA4F,iBAAA,CAAAC;AAAA,GAAA,CAAA;;AAGG,EAAA,CAAA,wBAAA,CAAA;EAAAhG,UAAA,EAAA,QAAA;EAAAC,OAAA,EAAA,eAAA;AAAAC,EAAAA,QAAA,EAAAC,EAAA;AAAAC,EAAAA,IAAA,EAAA8C,OAAA;EAAA5C,UAAA,EAAA,CAAA;;;;AA/EK,MAAA,SAAA,EAAA,CAAA;AAAAsE,QAAAA,OAAA,EAAAxB,iBAAkB;AAA0ByB,QAAAA,WAAA,EAAA3B;OAEoC,EAAA;AAAA0B,QAAAA,OAAA,EAAAzB,OAAA;AAAA0B,QAAAA,WAAA,EAAA3B;;;gBA1DvF,SAAA;MAAA0C,eAAA,EAAAC,uBAAA,CAAAzD,MAAA;AAAAC,MAAAA,OAAA,GAAAmD,eAAA,CAAA;AAAAS,MAAAA,IAAA,EAwFqB;;;;AAxFrB,KAAA;;gBAmDC,EAAA;IAAAC,SAAA,EAAA,CAAA;AACF,MAAA,IAAA,EAAA,YAAA;AAIQ,MAAA,IAAA,EAAA,CAAA,YAAA;;;;;AA/CG,IAAA,YAAA,EAAA,CAAA;YAXTC,YAAA;2BAG8B,EAAA;QAAAC,MAAA,EAAA;AAAA,OAAA;;;;AAD/B,MAAA,UAAA,SAAAC,UAAA,CAAA;;;AAwFuC,EAAA,mBAAA,GAAAC,mBAAA,EAAA;AAApC,EAAA,kBAAA;AAAkB,EAAA,YAAA,GAAA,MAAA,CAAA,KAAA,EAAA,IAAAC,SAAkB,GAAA,CAAA;IAAAC,SAAA,EAAA;AAAA,GAAA,CAAA,GAAA,EAAA,CAAA,CAAA;aAkFjC,GAAAC,SAAa;EAGlBC,mBAAwB;;;EAOxBC,MAAA;;;;;;mBA0C4B,EAAA;;;;uBAS9BC,CAAAC,KAAA,EAAA;IAGE,IAAAC,CAAAA,kBAAA,WAAAC,IAAA,CAAAF,KAAA,CAAAA,GAAAA,KAAA,UAAAA,KAAA;AACE;EAGFC,kBAAA,GAAA,EAAA;AAIA,EAAA,SAAA,GAAA,CAAAlG,MAAW,CAAAoG,QAAA,EAAAC,SAAY;;AAGjB,IAAA,KAAA,EAAA;AACN,IAAA,MAAAC,UAAA,GAAAtG,MAAoB,WAA6B,CAAA;;oBAGxC,GAAAuG,QAAA,KAAA,sBAAA,GAAA,UAAA,GAAA,YAAA;;AAIgFC,EAAAA,kBAAAA,GAAA;;IAMvF,IAAAT,CAAAA,MAAA,CAAAU,OAAA,CAAA,CAAA;MAAAC,IAAA;AAAAvE,MAAAA;AAAA,KAAA,KAAA,IAAA,CAAAwE,cAAA,CAAAD,IAAA,CAAA,GAAAvE,WAAA,CAAA;AAIA,IAAA,IAAA,CAAAyE,KAAA,CAAAlG,OAAgB,CAAAmC,IAAA,CAAAgE,yBAAU,CAAA,CAAA,CAAAlG,SAAA,CAAA,MAAA,KAAAmG,aAAA,EAAA,CAAA;;MAM1B,MAAAC,QAAK,QAAAC,qBAAA,EAAA;UAEHD,QAAA,KAAY,KAAA,IAAAA,QAAA,KAAA,IAAA,EAAA;YACV,CAAAE,gBAAiB,EAAA;OAID,MAAA;QAEtB,IAAAC,CAAAA,YAAA,CAAAC,GAAA,CAAA,IAAA,CAAA;AACF;;;;;0BApNQ,CAAA7F,aAAA,CAAA8F,SAAA,CAAAC,GAAA,CAAA,gCAAA,CAAA;UAMN,IAAAC,CAAAA,kBAAA,GAAAC,IAAAA,CAAAA,SAAA,CAAAC,MAAA,MAAAzG,WAAA,CAAAO,aAAA,EAAA,eAAA,EAAA,IAAA,CAAAmG,oBAAA,CAAA;SAEA,EAAA,GAAA,CAAA;AAEA;;;AAIA,EAAA,eAAA,GAAA;;;;;8BAuDI,EAAA;2BAQe,GAAA,IAAA;4BADf,CAAAC,IAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2Bc,QAAA,wCAAA,EAAA,wDAAA;;AAAb,QAAA,4CAAA,EAAA,6BAAA;uCA9BO,EAAA,gBAAA;AAE4E,QAAA,0CAAA,EAAA;;AAMxF,MAAA,SAAA,EAAA,CAAA;AAAA1D,QAAAA,OAAA,EAAAyB;;;mBAA4D,EAAAN,iBAAA,CAAAC,IAAA;MAAAJ,eAAA,EAAAC,uBAAA,CAAAzD,MAAA;MAAAC,OAAA,EAAA,CAAAE,gBAAA,EAAA7B,aAAA,CAAA;MAAA+B,QAAA,EAAA,qrIAAA;MAAAC,MAAA,EAAA,CAAA,67LAAA;AAAA,KAAA;;AAC9D,EAAA,cAAA,EAAAC,MAAA,EAAA;AAAAC,EAAAA,cAAA,EAAA;IAAA2F,WAAA,EAAA,CAAA;AACQ,MAAA,IAAA,EAAA,YAAA;AAGE,MAAA,IAAA,EAAA,CAAA,aAAA;;AAKR,IAAA,mBAAA,EAAA,CAAA;AAEA,MAAA,IAAA,EAAA,YAAA;;;AAEA,IAAA,MAAA,EAAA,CAAA;;AAgBI,MAAA,IAAA,EAAA,CAAArF,OAAA,EAAA;QAAAgC,WAAA,EAAA;AAAA,OAAA;;AAAA,IAAA,MAAA,EAAA,CAAA;AAI0B9E,MAAAA,IAAA,EAAAoI,eAAM;AAApC,MAAA,IAAA,EAAA,CAAAC,cAAY,EAAA;QAAAvD,WAAA,EAAA;AAAA,OAAA;;AAAA,IAAA,aAAA,EAAA,CAAA;AAGiE9E,MAAAA,IAAA,EAAAsI;;;;;AAW3EzH,IAAAA,KAAA,EAAA,CAAA;AAAF6B,MAAAA,IAAAA,EAAAA;;AAAE,IAAA,aAAA,EAAA,CAAA;AAImB1C,MAAAA,IAAA,EAAA0C;;AAAhB,IAAA,cAAA,EAAA,CAAA;AAI0F1C,MAAAA,IAAA,EAAA0C;;AAA/F,IAAA,iBAAA,EAAA,CAAA;AASK1C,MAAAA,IAAA,EAAA0C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BC3PC,CAAA;AAAA9C,EAAAA,UAAA,EAAA,QAAA;EAAAC,OAAA,EAAA,eAAA;AAAAC,EAAAA,QAAA,EAAAC,EAAA;AAAAC,EAAAA,IAAA,EAAAuI,cAAA;EAAArI,UAAA,EAAA,CAAA;;IACRsI,IAAA,EAAA,CAAA;AAgBWnD,MAAAA,QAAmB,EAA0B,wBAAA;;;;;;;;AAbtD,MAAA,kBAAA,SAAAoD,kBAAA,CAAA;AACD,EAAA,OAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA;IAAA7I,UAAA,EAAA,QAAA;IAAAC,OAAA,EAAA,eAAA;AAAAC,IAAAA,QAAA,EAAAC,EAAA;AAAAC,IAAAA,IAAA,EAAA0I,kBAAA;IAAAtE,IAAA,EAAA,IAAA;AAAAC,IAAAA,MAAA,EAAAtE,EAAA,CAAAuE,eAAA,CAAAnE;AAAA,GAAA,CAAA;AACF,EAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA;IAAAP,UAAA,EAAA,QAAA;IAAAC,OAAA,EAAA,eAAA;AAAAG,IAAAA,IAAA,EAAA0I,kBAAA;IAAAC,YAAA,EAAA,IAAA;IAAAtD,QAAA,EAAA,4BAAA;IAAAQ,IAAA,EAAA;MAAA+C,UAAA,EAAA;AAAA,QAAA,MAAA,EAAA;AAAA,OAAA;MAAAC,cAAA,EAAA;AAAA,KAAA;IAAA5D,eAAA,EAAA,IAAA;AAAAnF,IAAAA,QAAA,EAAAC;AAAA,GAAA,CAAA;;AAGmE,EAAA,CAAA,wBAAA,CAAA;EAAAH,UAAA,EAAA,QAAA;EAAAC,OAAA,EAAA,eAAA;AAAAC,EAAAA,QAAA,EAAAC,EAAA;AAAAC,EAAAA,IAAA,EAAA0I,kBAAA;EAAAxI,UAAA,EAAA,CAAA;;;AAKhEmF,MAAAA,QAAA,EAAgB,4BAAA;;;;;;;;;;ACuBP,EAAA,OAAAnB,IAAA,GAAAnE,EAAA,CAAAoE,kBAAA,CAAA;IAAAvE,UAAA,EAAA,QAAA;IAAAC,OAAA,EAAA,eAAA;AAAAC,IAAAA,QAAA,EAAAC,EAAA;AAAAC,IAAAA,IAAA,EAAA8I,gBAAA;IAAA1E,IAAA,EAAA,EAAA;AAAAC,IAAAA,MAAA,EAAAtE,EAAA,CAAAuE,eAAA,CAAAyE;AAAA,GAAA,CAAA;gBAzBOhJ,EAAA,CAAAiJ,mBAAA,CAAA;IAAApJ,UAAA,EAAA,QAAA;IAAAC,OAAA,EAAA,eAAA;AAAAC,IAAAA,QAAA,EAAAC,EAAA;AAAAC,IAAAA,IAAA,EAAA8I,gBAAA;AAAA7G,IAAAA,OAAA,GAAAgH,YAAA,kBACH,eACE,iBACR,uEAKM,eACC,EACdZ,cAAA;+CAMU,gDAGG,+BAEC;;sCAhBJ,CAAA;IAAAzI,UAAA,EAAA,QAAA;IAAAC,OAAA,EAAA,eAAA;AAAAC,IAAAA,QAAA,EAAAC,EAAA;AAAAC,IAAAA,IAAA,EAAA8I,gBAAA;AAAAI,IAAAA,SAAA,GAAAlG,iBAAA,CAAA;AAAAf,IAAAA,OAAA,EAAAgH,CAAAA,YAAA,EAGVE,gBAAA,8CAXM7I,aAAA,EAAA8I,UAAA;AAAA,GAAA,CAAA;;;;;;;cAKS,CAAA;;;MAQfnH,OAAA,EAAA,CAMUgH,YAAA,kBAfG,mFAMK,oBACL,eACC,EACdZ,cAAA;6EAWc,EAILK,kBAAA,+BAxBI;AAOb,MAAA,SAAA,EAAA,CAAA1F,iBAAA;;;;;;;"}
1
+ {"version":3,"file":"stepper.mjs","sources":["../../../../../k8-fastbuild-ST-199a4f3c4e20/bin/src/material/stepper/step-label.ts","../../../../../k8-fastbuild-ST-199a4f3c4e20/bin/src/material/stepper/stepper-intl.ts","../../../../../k8-fastbuild-ST-199a4f3c4e20/bin/src/material/stepper/step-header.ts","../../../../../k8-fastbuild-ST-199a4f3c4e20/bin/src/material/stepper/step-header.html","../../../../../k8-fastbuild-ST-199a4f3c4e20/bin/src/material/stepper/stepper-icon.ts","../../../../../k8-fastbuild-ST-199a4f3c4e20/bin/src/material/stepper/step-content.ts","../../../../../k8-fastbuild-ST-199a4f3c4e20/bin/src/material/stepper/stepper.ts","../../../../../k8-fastbuild-ST-199a4f3c4e20/bin/src/material/stepper/step.html","../../../../../k8-fastbuild-ST-199a4f3c4e20/bin/src/material/stepper/stepper.html","../../../../../k8-fastbuild-ST-199a4f3c4e20/bin/src/material/stepper/stepper-button.ts","../../../../../k8-fastbuild-ST-199a4f3c4e20/bin/src/material/stepper/stepper-module.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {Directive} from '@angular/core';\nimport {CdkStepLabel} from '@angular/cdk/stepper';\n\n@Directive({\n selector: '[matStepLabel]',\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.dev/license\n */\n\nimport {Injectable} 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 * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {FocusMonitor, FocusOrigin} from '@angular/cdk/a11y';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Input,\n OnDestroy,\n ViewEncapsulation,\n TemplateRef,\n AfterViewInit,\n inject,\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 {_StructuralStylesLoader, MatRipple, ThemePalette} from '../core';\nimport {MatIcon} from '../icon';\nimport {NgTemplateOutlet} from '@angular/common';\nimport {_CdkPrivateStyleLoader, _VisuallyHiddenLoader} from '@angular/cdk/private';\n\n@Component({\n selector: 'mat-step-header',\n templateUrl: 'step-header.html',\n styleUrl: 'step-header.css',\n host: {\n 'class': 'mat-step-header',\n '[class.mat-step-header-empty-label]': '_hasEmptyLabel()',\n '[class]': '\"mat-\" + (color || \"primary\")',\n 'role': '', // ignore cdk role in favor of setting appropriately in html\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [MatRipple, NgTemplateOutlet, MatIcon],\n})\nexport class MatStepHeader extends CdkStepHeader implements AfterViewInit, OnDestroy {\n _intl = inject(MatStepperIntl);\n private _focusMonitor = inject(FocusMonitor);\n\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 /**\n * Theme color of the step header. This API is supported in M2 themes only, it\n * has no effect in M3 themes. For color customization in M3, see https://material.angular.dev/components/stepper/styling.\n *\n * For information on applying color variants in M3, see\n * https://material.angular.dev/guide/material-2-theming#optional-add-backwards-compatibility-styles-for-color-variants\n */\n @Input() color: ThemePalette;\n\n constructor(...args: unknown[]);\n\n constructor() {\n super();\n\n const styleLoader = inject(_CdkPrivateStyleLoader);\n styleLoader.load(_StructuralStylesLoader);\n styleLoader.load(_VisuallyHiddenLoader);\n const changeDetectorRef = inject(ChangeDetectorRef);\n this._intlSubscription = this._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 _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 protected _hasEmptyLabel() {\n return (\n !this._stringLabel() &&\n !this._templateLabel() &&\n !this._hasOptionalLabel() &&\n !this._hasErrorLabel()\n );\n }\n\n protected _hasOptionalLabel() {\n return this.optional && this.state !== 'error';\n }\n\n protected _hasErrorLabel() {\n return this.state === 'error';\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]=\"{index, active, optional}\"></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 (_hasOptionalLabel()) {\n <div class=\"mat-step-optional\">{{_intl.optionalLabel}}</div>\n }\n\n @if (_hasErrorLabel()) {\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.dev/license\n */\n\nimport {Directive, Input, TemplateRef, inject} 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})\nexport class MatStepperIcon {\n templateRef = inject<TemplateRef<MatStepperIconContext>>(TemplateRef);\n\n /** Name of the icon to be overridden. */\n @Input('matStepperIcon') name: StepState;\n\n constructor(...args: unknown[]);\n constructor() {}\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {Directive, TemplateRef, inject} 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})\nexport class MatStepContent {\n _template = inject<TemplateRef<any>>(TemplateRef);\n\n constructor(...args: unknown[]);\n constructor() {}\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {CdkStep, CdkStepper} from '@angular/cdk/stepper';\nimport {\n AfterContentInit,\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n ContentChildren,\n ElementRef,\n EventEmitter,\n inject,\n Input,\n NgZone,\n OnDestroy,\n Output,\n QueryList,\n Renderer2,\n signal,\n TemplateRef,\n ViewChildren,\n ViewContainerRef,\n ViewEncapsulation,\n} from '@angular/core';\nimport {NgTemplateOutlet} from '@angular/common';\nimport {AbstractControl, FormGroupDirective, NgForm} from '@angular/forms';\nimport {_animationsDisabled, ErrorStateMatcher, ThemePalette} from '../core';\nimport {Platform} from '@angular/cdk/platform';\nimport {CdkPortalOutlet, TemplatePortal} from '@angular/cdk/portal';\nimport {Subscription} from 'rxjs';\nimport {takeUntil, map, startWith, switchMap} from 'rxjs/operators';\n\nimport {MatStepHeader} from './step-header';\nimport {MatStepLabel} from './step-label';\nimport {MatStepperIcon, MatStepperIconContext} from './stepper-icon';\nimport {MatStepContent} from './step-content';\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 imports: [CdkPortalOutlet],\n host: {\n 'hidden': '', // Hide the steps so they don't affect the layout.\n },\n})\nexport class MatStep extends CdkStep implements ErrorStateMatcher, AfterContentInit, OnDestroy {\n private _errorStateMatcher = inject(ErrorStateMatcher, {skipSelf: true});\n private _viewContainerRef = inject(ViewContainerRef);\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 /**\n * Theme color for the particular step. This API is supported in M2 themes\n * only, it has no effect in M3 themes. For color customization in M3, see https://material.angular.dev/components/stepper/styling.\n *\n * For information on applying color variants in M3, see\n * https://material.angular.dev/guide/material-2-theming#optional-add-backwards-compatibility-styles-for-color-variants\n */\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 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 styleUrl: 'stepper.css',\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 '[class.mat-stepper-animating]': '_isAnimating()',\n '[style.--mat-stepper-animation-duration]': '_getAnimationDuration()',\n },\n providers: [{provide: CdkStepper, useExisting: MatStepper}],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgTemplateOutlet, MatStepHeader],\n})\nexport class MatStepper extends CdkStepper implements AfterViewInit, AfterContentInit, OnDestroy {\n private _ngZone = inject(NgZone);\n private _renderer = inject(Renderer2);\n private _animationsDisabled = _animationsDisabled();\n private _cleanupTransition: (() => void) | undefined;\n protected _isAnimating = signal(false);\n\n /** The list of step headers of the steps in the stepper. */\n @ViewChildren(MatStepHeader) override _stepHeader: QueryList<MatStepHeader> = undefined!;\n\n /** Elements hosting the step animations. */\n @ViewChildren('animatedContainer') _animatedContainers: QueryList<ElementRef>;\n\n /** Full list of steps inside the stepper, including inside nested steppers. */\n @ContentChildren(MatStep, {descendants: true}) override _steps: QueryList<MatStep> = undefined!;\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 /**\n * Theme color for all of the steps in stepper. This API is supported in M2\n * themes only, it has no effect in M3 themes. For color customization in M3, see https://material.angular.dev/components/stepper/styling.\n *\n * For information on applying color variants in M3, see\n * https://material.angular.dev/guide/material-2-theming#optional-add-backwards-compatibility-styles-for-color-variants\n */\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 /** 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 /** Whether the stepper is rendering on the server. */\n protected _isServer: boolean = !inject(Platform).isBrowser;\n\n constructor(...args: unknown[]);\n\n constructor() {\n super();\n\n const elementRef = inject<ElementRef<HTMLElement>>(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(() => this._stateChanged());\n\n // Transition events won't fire if animations are disabled so we simulate them.\n this.selectedIndexChange.pipe(takeUntil(this._destroyed)).subscribe(() => {\n const duration = this._getAnimationDuration();\n if (duration === '0ms' || duration === '0s') {\n this._onAnimationDone();\n } else {\n this._isAnimating.set(true);\n }\n });\n\n this._ngZone.runOutsideAngular(() => {\n if (!this._animationsDisabled) {\n setTimeout(() => {\n // Delay enabling the animations so we don't animate the initial state.\n this._elementRef.nativeElement.classList.add('mat-stepper-animations-enabled');\n\n // Bind this outside the zone since it fires for all transitions inside the stepper.\n this._cleanupTransition = this._renderer.listen(\n this._elementRef.nativeElement,\n 'transitionend',\n this._handleTransitionend,\n );\n }, 200);\n }\n });\n }\n\n override ngAfterViewInit(): void {\n super.ngAfterViewInit();\n\n // Prior to #30314 the stepper had animation `done` events bound to each animated container.\n // The animations module was firing them on initialization and for each subsequent animation.\n // Since the events were bound in the template, it had the unintended side-effect of triggering\n // change detection as well. It appears that this side-effect ended up being load-bearing,\n // because it was ensuring that the content elements (e.g. `matStepLabel`) that are defined\n // in sub-components actually get picked up in a timely fashion. This subscription simulates\n // the same change detection by using `queueMicrotask` similarly to the animations module.\n if (typeof queueMicrotask === 'function') {\n let hasEmittedInitial = false;\n this._animatedContainers.changes\n .pipe(startWith(null), takeUntil(this._destroyed))\n .subscribe(() =>\n queueMicrotask(() => {\n // Simulate the initial `animationDone` event\n // that gets emitted by the animations module.\n if (!hasEmittedInitial) {\n hasEmittedInitial = true;\n this.animationDone.emit();\n }\n\n this._stateChanged();\n }),\n );\n }\n }\n\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n this._cleanupTransition?.();\n }\n\n _getAnimationDuration() {\n if (this._animationsDisabled) {\n return '0ms';\n }\n\n if (this.animationDuration) {\n return this.animationDuration;\n }\n\n return this.orientation === 'horizontal' ? '500ms' : '225ms';\n }\n\n private _handleTransitionend = (event: TransitionEvent) => {\n const target = event.target as HTMLElement | null;\n\n if (!target) {\n return;\n }\n\n // Because we bind a single `transitionend` handler on the host node and because transition\n // events bubble, we have to filter down to only the active step so don't emit events too\n // often. We check the orientation and `property` name first to reduce the amount of times\n // we need to check the DOM.\n const isHorizontalActiveElement =\n this.orientation === 'horizontal' &&\n event.propertyName === 'transform' &&\n target.classList.contains('mat-horizontal-stepper-content-current');\n const isVerticalActiveElement =\n this.orientation === 'vertical' &&\n event.propertyName === 'grid-template-rows' &&\n target.classList.contains('mat-vertical-content-container-active');\n\n // Finally we need to ensure that the animated element is a direct descendant,\n // rather than one coming from a nested stepper.\n const shouldEmit =\n (isHorizontalActiveElement || isVerticalActiveElement) &&\n this._animatedContainers.find(ref => ref.nativeElement === target);\n\n if (shouldEmit) {\n this._onAnimationDone();\n }\n };\n\n private _onAnimationDone() {\n this._isAnimating.set(false);\n this.animationDone.emit();\n }\n}\n","<ng-template>\n <ng-content></ng-content>\n <ng-template [cdkPortalOutlet]=\"_portal\"></ng-template>\n</ng-template>\n","<!--\n We need to project the content somewhere to avoid hydration errors. Some observations:\n 1. This is only necessary on the server.\n 2. We get a hydration error if there aren't any nodes after the `ng-content`.\n 3. We get a hydration error if `ng-content` is wrapped in another element.\n-->\n@if (_isServer) {\n <ng-content/>\n}\n\n@switch (orientation) {\n @case ('horizontal') {\n <div class=\"mat-horizontal-stepper-wrapper\">\n <div \n aria-orientation=\"horizontal\"\n class=\"mat-horizontal-stepper-header-container\" \n role=\"tablist\">\n @for (step of steps; track step) {\n <ng-container\n [ngTemplateOutlet]=\"stepTemplate\"\n [ngTemplateOutletContext]=\"{step}\"/>\n @if (!$last) {\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) {\n <div\n #animatedContainer\n class=\"mat-horizontal-stepper-content\"\n role=\"tabpanel\"\n [id]=\"_getStepContentId($index)\"\n [attr.aria-labelledby]=\"_getStepLabelId($index)\"\n [class]=\"'mat-horizontal-stepper-content-' + _getAnimationDirection($index)\"\n [attr.inert]=\"selectedIndex === $index ? null : ''\">\n <ng-container [ngTemplateOutlet]=\"step.content\"/>\n </div>\n }\n </div>\n </div>\n }\n\n @case ('vertical') {\n <div class=\"mat-vertical-stepper-wrapper\">\n @for (step of steps; track step) {\n <div class=\"mat-step\">\n <ng-container\n [ngTemplateOutlet]=\"stepTemplate\"\n [ngTemplateOutletContext]=\"{step}\"/>\n <div\n #animatedContainer\n class=\"mat-vertical-content-container\"\n [class.mat-stepper-vertical-line]=\"!$last\"\n [class.mat-vertical-content-container-active]=\"selectedIndex === $index\"\n [attr.inert]=\"selectedIndex === $index ? null : ''\">\n <div \n class=\"mat-vertical-stepper-content\"\n role=\"region\"\n [id]=\"_getStepContentId($index)\"\n [attr.aria-labelledby]=\"_getStepLabelId($index)\">\n <div class=\"mat-vertical-content\">\n <ng-container [ngTemplateOutlet]=\"step.content\"/>\n </div>\n </div>\n </div>\n </div>\n }\n </div>\n }\n}\n\n<!-- Common step templating -->\n<ng-template let-step=\"step\" #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() === step.index() ? 0 : -1\"\n [id]=\"_getStepLabelId(step.index())\"\n [attr.role]=\"orientation === 'horizontal' ? 'tab' : 'button'\"\n [attr.aria-posinset]=\"orientation === 'horizontal' ? step.index() + 1 : null\"\n [attr.aria-setsize]=\"orientation === 'horizontal' ? steps.length : null\"\n [attr.aria-selected]=\"orientation === 'horizontal' ? step.isSelected() : null\"\n [attr.aria-current]=\"orientation === 'vertical' && step.isSelected() ? 'step' : null\"\n [attr.aria-disabled]=\"orientation === 'vertical' && step.isSelected() ? 'true' : null\"\n [attr.aria-expanded]=\"orientation === 'vertical' ? step.isSelected() : null\"\n [attr.aria-controls]=\"_getStepContentId(step.index())\"\n [attr.aria-label]=\"step.ariaLabel || null\"\n [attr.aria-labelledby]=\"(!step.ariaLabel && step.ariaLabelledby) ? step.ariaLabelledby : null\"\n [attr.aria-disabled]=\"step.isNavigable() ? null : true\"\n [index]=\"step.index()\"\n [state]=\"step.indicatorType()\"\n [label]=\"step.stepLabel || step.label\"\n [selected]=\"step.isSelected()\"\n [active]=\"step.isNavigable()\"\n [optional]=\"step.optional\"\n [errorMessage]=\"step.errorMessage\"\n [iconOverrides]=\"_iconOverrides\"\n [disableRipple]=\"disableRipple || !step.isNavigable()\"\n [color]=\"step.color || color\"/>\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.dev/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})\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})\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.dev/license\n */\n\nimport {BidiModule} from '@angular/cdk/bidi';\nimport {PortalModule} from '@angular/cdk/portal';\nimport {CdkStepperModule} from '@angular/cdk/stepper';\nimport {NgModule} from '@angular/core';\nimport {ErrorStateMatcher, MatRippleModule} from '../core';\nimport {MatIconModule} from '../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 {MatStepContent} from './step-content';\n\n@NgModule({\n imports: [\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 BidiModule,\n MatStep,\n MatStepLabel,\n MatStepper,\n MatStepperNext,\n MatStepperPrevious,\n MatStepHeader,\n MatStepperIcon,\n MatStepContent,\n ],\n providers: [ErrorStateMatcher],\n})\nexport class MatStepperModule {}\n"],"names":["MatStepLabel","CdkStepLabel","deps","target","i0","ɵɵFactoryTarget","Directive","isStandalone","selector","usesInheritance","ngImport","decorators","args","MatStepperIntl","changes","Subject","optionalLabel","completedLabel","editableLabel","Injectable","ɵprov","ɵɵngDeclareInjectable","minVersion","version","type","providedIn","MatStepHeader","CdkStepHeader","_intl","inject","_focusMonitor","FocusMonitor","_intlSubscription","state","label","errorMessage","iconOverrides","index","selected","active","optional","disableRipple","color","constructor","styleLoader","_CdkPrivateStyleLoader","load","_StructuralStylesLoader","_VisuallyHiddenLoader","changeDetectorRef","ChangeDetectorRef","subscribe","markForCheck","ngAfterViewInit","monitor","_elementRef","ngOnDestroy","unsubscribe","stopMonitoring","focus","origin","options","focusVia","nativeElement","_stringLabel","_templateLabel","_getHostElement","_getDefaultTextForState","_hasEmptyLabel","_hasOptionalLabel","_hasErrorLabel","Component","ɵcmp","ɵɵngDeclareComponent","styles","dependencies","kind","MatRipple","inputs","exportAs","NgTemplateOutlet","MatIcon","changeDetection","ChangeDetectionStrategy","OnPush","encapsulation","ViewEncapsulation","None","host","imports","template","Input","MatStepperIcon","templateRef","TemplateRef","name","MatStepContent","_template","MatStep","CdkStep","_errorStateMatcher","ErrorStateMatcher","skipSelf","_viewContainerRef","ViewContainerRef","_isSelected","Subscription","EMPTY","stepLabel","undefined","_lazyContent","_portal","ngAfterContentInit","_stepper","steps","pipe","switchMap","selectionChange","map","event","selectedStep","startWith","isSelected","TemplatePortal","isErrorState","control","form","originalErrorState","customErrorState","invalid","interacted","attributes","providers","provide","useExisting","queries","propertyName","first","predicate","descendants","CdkPortalOutlet","outputs","ContentChild","static","MatStepper","CdkStepper","_ngZone","NgZone","_renderer","Renderer2","_animationsDisabled","_cleanupTransition","_isAnimating","signal","_stepHeader","_animatedContainers","_steps","QueryList","_icons","animationDone","EventEmitter","labelPosition","headerPosition","_iconOverrides","animationDuration","_animationDuration","value","test","_isServer","Platform","isBrowser","elementRef","ElementRef","nodeName","toLowerCase","orientation","forEach","takeUntil","_destroyed","_stateChanged","selectedIndexChange","duration","_getAnimationDuration","_onAnimationDone","set","runOutsideAngular","setTimeout","classList","add","listen","_handleTransitionend","queueMicrotask","hasEmittedInitial","emit","isHorizontalActiveElement","contains","isVerticalActiveElement","shouldEmit","find","ref","properties","viewQueries","ViewChildren","ContentChildren","Output","MatStepperNext","CdkStepperNext","classAttribute","MatStepperPrevious","CdkStepperPrevious","MatStepperModule","NgModule","ɵmod","ɵɵngDeclareNgModule","PortalModule","CdkStepperModule","MatIconModule","MatRippleModule","BidiModule","ɵinj","ɵɵngDeclareInjector","exports"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"table-testing.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/src/material/table/testing/cell-harness.ts","../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/src/material/table/testing/row-harness.ts","../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/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.dev/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:not(.mat-no-data-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/** Harness for interacting with an Angular Material table cell inside a \"no data\" row. */\nexport class MatNoDataCellHarness extends _MatCellHarnessBase {\n /** The selector for the host element of a `MatNoDataCellHarness` instance. */\n static hostSelector = '.mat-no-data-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<MatNoDataCellHarness> {\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.dev/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 MatNoDataCellHarness,\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:not(.mat-mdc-no-data-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/** Harness for interacting with an Angular Material table \"no data\" row. */\nexport class MatNoDataRowHarness extends _MatRowHarnessBase<\n typeof MatHeaderCellHarness,\n MatHeaderCellHarness\n> {\n /** The selector for the host element of a `MatNoDataRowHarness` instance. */\n static hostSelector = '.mat-mdc-no-data-row';\n protected _cellHarness = MatNoDataCellHarness;\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 MatNoDataRowHarness>(\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.dev/license\n */\n\nimport {\n ComponentHarnessConstructor,\n ContentContainerComponentHarness,\n HarnessPredicate,\n parallel,\n} from '@angular/cdk/testing';\nimport {\n MatFooterRowHarness,\n MatHeaderRowHarness,\n MatNoDataRowHarness,\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 \"no data\" row in the table, if any. */\n async getNoDataRow(filter: RowHarnessFilters = {}): Promise<MatNoDataRowHarness | null> {\n return this.locatorForOptional(MatNoDataRowHarness.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":["host","getAttribute","prefix","map","c","trim","find","startsWith","name","split","_getCellPredicate","type","options","MatCellHarness","_MatCellHarnessBase","hostSelector","with","getCellTextByIndex","filter","cells","getCells","cellsData","forEach","columnName","text","output","MatRowHarness","_MatRowHarnessBase","HarnessPredicate","_footerRowHarness","MatFooterRowHarness","getRows","locatorForAll","_rowHarness","getFooterRows","parallel","rows","row","getCellTextByColumnName","headerRows","footerRows","dataRows"],"mappings":";;;;;;AAuBI,EAAA;IAQK,MAAKA,IAAA,cAAkBA,IAAA,EAAA;iCAEhBA,IAAA,CAAAC,YAAA,CAAA,OAAA,CAAA;;YAEVC,MAAA,GAAA,aAAA;wCAMMC,GAAAA,CAAAA,CAAAA,GAAA,CAAAC,CAAA,IAAOA,CAAA,CAAAC,IAAA,EAAA,CAAA,CAIfC,UAA2BF,CAAA,CAAAG,UAAA,CAAAL,MAAA,CAAA,CAAA;;AAO7B,QAAA,OAAAM,IAAA,CAAAC,KAAA,CAAAP,MAAA,CAAA,CAAA,CAAA,CAAA;AACD;;eAGK,CAAsB,0CAAA,CAAA;;0BAEnBQ,CAAAC,IAAA,EAAAC,OAAe,EAAA;;;;AAYkD,MAAAC,cAAA,SAExEC,mBAA8E,CAAA;;;AAiB9E,IAAA,OAAAA,mBAAsB,CAAAJ,iBAAA,CAAA,IAAA,EAAAE,OAAsB,CAAA;;;;EAQ5C,OAAAG,YAAO,GAAqC,sBAAA;EAU5C,OAAAC,IAAAA,CAAAJ,OAAA,GAAA,EAAA,EAAA;;;;;;;;;;;;;;;;;;;;;QCxDEK,kBAEIA,CAAAC,MAAA,GAAA,EAAA,EAAA;AAcN,IAAA,MAAAC,KAAA,GAAA,MAAA,IAKA,CAAAC,QAAM,CAAAF,MAAA,CAAA;;AAQiE;;;AASvE,IAAA,MAAAC,KAAA,GAAA,MAAA,IAAA,CAAAC,QAAA,EAAA;;;;IAKGC,SAAA,CAAAC,OAAA,CAAA,CAAA,CAAAC,UAAA,EAAAC,IAAA,CAAA,KAAAC,MAAA,CAAAF,UAAA,CAAA,GAAAC,IAAA,CAAA;AACH,IAAA,OAAAC,MAAA;;;AASIC,MAAAA,aAA2B,SAAAC,kBAGhC,CAAA;AAGWZ,EAAAA,OAAAA,YAAY,2CAAuB;AAE7C,EAAA,YAAA,GAAAF,cAAA;EAUE,OAAAG,IAAAA,CAAAJ,OAA2B,GAAA,EAAA,EAAA;IAC7B,OAAAgB,IAAAA,gBAAA,OAAAhB,OAAA,CAAA;AAG0E;;;EAS1E,OAAAG;;;;;;;;;;;;;;;;;;;;;;;;;AC1FAc,EAAAA,iBAIE,GAAAC;aA2BFd,CAAAJ,OAAA,GAAA,EAAA,EAAA;IAEkE,OAAAgB,IAAAA,gBAAA,OAAAhB,OAAA,CAAA;AAEhE;;;;AAUEmB,EAAAA,MAAAA,OAAAA,CAAAb,MAAA,GAAA,EAAA,EAAA;AACD,IAAA,OAAA,IAAA,CAAAc,aAAA,CAAAC,IAAAA,CAAAA,WAAA,CAAAjB,IAAA,CAAAE,MAAA,CAAA,CAAA,EAAA;;QAMGgB,aAAAA,CAAAhB,MAAA,GAAoB,EAAA,EAAA;;AAGhB;gCAED,EAAA;;AAIL;AAGFD,EAAAA,MAAAA;;IAI6D,OAAAkB,QAAA,CAAAC,MAAAA,IAAA,CAAAjC,GAAA,CAAAkC,GAAA,IAAAA,GAAA,CAAApB,kBAAA,EAAA,CAAA,CAAA;AACjE;AAGE,EAAA,MAAAqB,uBAAA,GAAA;IAEI,MAAAC,CAAAA,UAAA,EAAAC,UAAA,EAAAC,QAAA,CAAAN,GAAAA,MAAAA,QAAA,OAA2B,mBACd,sBACb,EAAA,EACF,IAAE,CAAAJ,OAAA,EACJ,CAAA,CAAA;AAGF,IAAA,MAAAP,IAAA,GAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"table-testing.mjs","sources":["../../../../../k8-fastbuild-ST-199a4f3c4e20/bin/src/material/table/testing/cell-harness.ts","../../../../../k8-fastbuild-ST-199a4f3c4e20/bin/src/material/table/testing/row-harness.ts","../../../../../k8-fastbuild-ST-199a4f3c4e20/bin/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.dev/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:not(.mat-no-data-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/** Harness for interacting with an Angular Material table cell inside a \"no data\" row. */\nexport class MatNoDataCellHarness extends _MatCellHarnessBase {\n /** The selector for the host element of a `MatNoDataCellHarness` instance. */\n static hostSelector = '.mat-no-data-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<MatNoDataCellHarness> {\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.dev/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 MatNoDataCellHarness,\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:not(.mat-mdc-no-data-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/** Harness for interacting with an Angular Material table \"no data\" row. */\nexport class MatNoDataRowHarness extends _MatRowHarnessBase<\n typeof MatHeaderCellHarness,\n MatHeaderCellHarness\n> {\n /** The selector for the host element of a `MatNoDataRowHarness` instance. */\n static hostSelector = '.mat-mdc-no-data-row';\n protected _cellHarness = MatNoDataCellHarness;\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 MatNoDataRowHarness>(\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.dev/license\n */\n\nimport {\n ComponentHarnessConstructor,\n ContentContainerComponentHarness,\n HarnessPredicate,\n parallel,\n} from '@angular/cdk/testing';\nimport {\n MatFooterRowHarness,\n MatHeaderRowHarness,\n MatNoDataRowHarness,\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 \"no data\" row in the table, if any. */\n async getNoDataRow(filter: RowHarnessFilters = {}): Promise<MatNoDataRowHarness | null> {\n return this.locatorForOptional(MatNoDataRowHarness.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":["_MatCellHarnessBase","ContentContainerComponentHarness","getText","host","text","getColumnName","classAttribute","getAttribute","prefix","name","split","map","c","trim","find","startsWith","Error","_getCellPredicate","type","options","HarnessPredicate","addOption","harness","stringMatches","columnName","MatCellHarness","hostSelector","with","MatHeaderCellHarness","MatFooterCellHarness","MatNoDataCellHarness","_MatRowHarnessBase","ComponentHarness","getCells","filter","locatorForAll","_cellHarness","getCellTextByIndex","cells","parallel","cell","getCellTextByColumnName","output","cellsData","forEach","MatRowHarness","MatHeaderRowHarness","MatFooterRowHarness","MatNoDataRowHarness","MatTableHarness","_headerRowHarness","_rowHarness","_footerRowHarness","getHeaderRows","getRows","getFooterRows","getNoDataRow","locatorForOptional","rows","row","headerRows","footerRows","dataRows","headerData","footerData","rowsData","data","Object","keys","cellText","headerText","getCellTextsByColumn","footerText","push","column","columnTexts"],"mappings":"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"}