@angular/material 21.0.0-next.8 → 21.0.0-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (204) hide show
  1. package/core/tokens/_classes.scss +1 -1
  2. package/core/tokens/m2/_md-sys-color.scss +17 -17
  3. package/fesm2022/_animation-chunk.mjs +10 -16
  4. package/fesm2022/_animation-chunk.mjs.map +1 -1
  5. package/fesm2022/_date-formats-chunk.mjs +68 -164
  6. package/fesm2022/_date-formats-chunk.mjs.map +1 -1
  7. package/fesm2022/_date-range-input-harness-chunk.mjs +284 -463
  8. package/fesm2022/_date-range-input-harness-chunk.mjs.map +1 -1
  9. package/fesm2022/_error-options-chunk.mjs +56 -19
  10. package/fesm2022/_error-options-chunk.mjs.map +1 -1
  11. package/fesm2022/_error-state-chunk.mjs +24 -31
  12. package/fesm2022/_error-state-chunk.mjs.map +1 -1
  13. package/fesm2022/_form-field-chunk.mjs +1224 -1017
  14. package/fesm2022/_form-field-chunk.mjs.map +1 -1
  15. package/fesm2022/_icon-button-chunk.mjs +243 -187
  16. package/fesm2022/_icon-button-chunk.mjs.map +1 -1
  17. package/fesm2022/_icon-registry-chunk.mjs +350 -575
  18. package/fesm2022/_icon-registry-chunk.mjs.map +1 -1
  19. package/fesm2022/_input-harness-chunk.mjs +56 -107
  20. package/fesm2022/_input-harness-chunk.mjs.map +1 -1
  21. package/fesm2022/_input-value-accessor-chunk.mjs +0 -6
  22. package/fesm2022/_input-value-accessor-chunk.mjs.map +1 -1
  23. package/fesm2022/_internal-form-field-chunk.mjs +59 -19
  24. package/fesm2022/_internal-form-field-chunk.mjs.map +1 -1
  25. package/fesm2022/_line-chunk.mjs +83 -43
  26. package/fesm2022/_line-chunk.mjs.map +1 -1
  27. package/fesm2022/_option-chunk.mjs +348 -311
  28. package/fesm2022/_option-chunk.mjs.map +1 -1
  29. package/fesm2022/_option-harness-chunk.mjs +23 -39
  30. package/fesm2022/_option-harness-chunk.mjs.map +1 -1
  31. package/fesm2022/_option-module-chunk.mjs +36 -10
  32. package/fesm2022/_option-module-chunk.mjs.map +1 -1
  33. package/fesm2022/_pseudo-checkbox-chunk.mjs +79 -44
  34. package/fesm2022/_pseudo-checkbox-chunk.mjs.map +1 -1
  35. package/fesm2022/_pseudo-checkbox-module-chunk.mjs +36 -10
  36. package/fesm2022/_pseudo-checkbox-module-chunk.mjs.map +1 -1
  37. package/fesm2022/_public-api-chunk.mjs +71 -134
  38. package/fesm2022/_public-api-chunk.mjs.map +1 -1
  39. package/fesm2022/_ripple-chunk.mjs +504 -600
  40. package/fesm2022/_ripple-chunk.mjs.map +1 -1
  41. package/fesm2022/_ripple-loader-chunk.mjs +120 -138
  42. package/fesm2022/_ripple-loader-chunk.mjs.map +1 -1
  43. package/fesm2022/_ripple-module-chunk.mjs +36 -10
  44. package/fesm2022/_ripple-module-chunk.mjs.map +1 -1
  45. package/fesm2022/_structural-styles-chunk.mjs +37 -10
  46. package/fesm2022/_structural-styles-chunk.mjs.map +1 -1
  47. package/fesm2022/_tooltip-chunk.mjs +810 -888
  48. package/fesm2022/_tooltip-chunk.mjs.map +1 -1
  49. package/fesm2022/autocomplete-testing.mjs +62 -86
  50. package/fesm2022/autocomplete-testing.mjs.map +1 -1
  51. package/fesm2022/autocomplete.mjs +965 -1126
  52. package/fesm2022/autocomplete.mjs.map +1 -1
  53. package/fesm2022/badge-testing.mjs +38 -54
  54. package/fesm2022/badge-testing.mjs.map +1 -1
  55. package/fesm2022/badge.mjs +321 -272
  56. package/fesm2022/badge.mjs.map +1 -1
  57. package/fesm2022/bottom-sheet-testing.mjs +10 -24
  58. package/fesm2022/bottom-sheet-testing.mjs.map +1 -1
  59. package/fesm2022/bottom-sheet.mjs +349 -344
  60. package/fesm2022/bottom-sheet.mjs.map +1 -1
  61. package/fesm2022/button-testing.mjs +60 -94
  62. package/fesm2022/button-testing.mjs.map +1 -1
  63. package/fesm2022/button-toggle-testing.mjs +76 -125
  64. package/fesm2022/button-toggle-testing.mjs.map +1 -1
  65. package/fesm2022/button-toggle.mjs +752 -662
  66. package/fesm2022/button-toggle.mjs.map +1 -1
  67. package/fesm2022/button.mjs +263 -158
  68. package/fesm2022/button.mjs.map +1 -1
  69. package/fesm2022/card-testing.mjs +19 -33
  70. package/fesm2022/card-testing.mjs.map +1 -1
  71. package/fesm2022/card.mjs +576 -272
  72. package/fesm2022/card.mjs.map +1 -1
  73. package/fesm2022/checkbox-testing.mjs +71 -123
  74. package/fesm2022/checkbox-testing.mjs.map +1 -1
  75. package/fesm2022/checkbox.mjs +515 -477
  76. package/fesm2022/checkbox.mjs.map +1 -1
  77. package/fesm2022/chips-testing.mjs +201 -350
  78. package/fesm2022/chips-testing.mjs.map +1 -1
  79. package/fesm2022/chips.mjs +2552 -2289
  80. package/fesm2022/chips.mjs.map +1 -1
  81. package/fesm2022/core-testing.mjs +14 -28
  82. package/fesm2022/core-testing.mjs.map +1 -1
  83. package/fesm2022/core.mjs +357 -328
  84. package/fesm2022/core.mjs.map +1 -1
  85. package/fesm2022/datepicker-testing.mjs +15 -25
  86. package/fesm2022/datepicker-testing.mjs.map +1 -1
  87. package/fesm2022/datepicker.mjs +4826 -4563
  88. package/fesm2022/datepicker.mjs.map +1 -1
  89. package/fesm2022/dialog-testing.mjs +93 -129
  90. package/fesm2022/dialog-testing.mjs.map +1 -1
  91. package/fesm2022/dialog.mjs +810 -829
  92. package/fesm2022/dialog.mjs.map +1 -1
  93. package/fesm2022/divider-testing.mjs +10 -11
  94. package/fesm2022/divider-testing.mjs.map +1 -1
  95. package/fesm2022/divider.mjs +119 -43
  96. package/fesm2022/divider.mjs.map +1 -1
  97. package/fesm2022/expansion-testing.mjs +74 -130
  98. package/fesm2022/expansion-testing.mjs.map +1 -1
  99. package/fesm2022/expansion.mjs +703 -515
  100. package/fesm2022/expansion.mjs.map +1 -1
  101. package/fesm2022/form-field-testing-control.mjs +16 -33
  102. package/fesm2022/form-field-testing-control.mjs.map +1 -1
  103. package/fesm2022/form-field-testing.mjs +118 -179
  104. package/fesm2022/form-field-testing.mjs.map +1 -1
  105. package/fesm2022/form-field.mjs +36 -10
  106. package/fesm2022/form-field.mjs.map +1 -1
  107. package/fesm2022/grid-list-testing.mjs +65 -113
  108. package/fesm2022/grid-list-testing.mjs.map +1 -1
  109. package/fesm2022/grid-list.mjs +559 -494
  110. package/fesm2022/grid-list.mjs.map +1 -1
  111. package/fesm2022/icon-testing.mjs +148 -127
  112. package/fesm2022/icon-testing.mjs.map +1 -1
  113. package/fesm2022/icon.mjs +325 -351
  114. package/fesm2022/icon.mjs.map +1 -1
  115. package/fesm2022/input-testing.mjs +59 -99
  116. package/fesm2022/input-testing.mjs.map +1 -1
  117. package/fesm2022/input.mjs +457 -520
  118. package/fesm2022/input.mjs.map +1 -1
  119. package/fesm2022/list-testing.mjs +251 -434
  120. package/fesm2022/list-testing.mjs.map +1 -1
  121. package/fesm2022/list.mjs +1522 -1204
  122. package/fesm2022/list.mjs.map +1 -1
  123. package/fesm2022/material.mjs +0 -5
  124. package/fesm2022/material.mjs.map +1 -1
  125. package/fesm2022/menu-testing.mjs +159 -228
  126. package/fesm2022/menu-testing.mjs.map +1 -1
  127. package/fesm2022/menu.mjs +1338 -1343
  128. package/fesm2022/menu.mjs.map +1 -1
  129. package/fesm2022/paginator-testing.mjs +55 -79
  130. package/fesm2022/paginator-testing.mjs.map +1 -1
  131. package/fesm2022/paginator.mjs +381 -309
  132. package/fesm2022/paginator.mjs.map +1 -1
  133. package/fesm2022/progress-bar-testing.mjs +12 -21
  134. package/fesm2022/progress-bar-testing.mjs.map +1 -1
  135. package/fesm2022/progress-bar.mjs +224 -169
  136. package/fesm2022/progress-bar.mjs.map +1 -1
  137. package/fesm2022/progress-spinner-testing.mjs +13 -23
  138. package/fesm2022/progress-spinner-testing.mjs.map +1 -1
  139. package/fesm2022/progress-spinner.mjs +235 -160
  140. package/fesm2022/progress-spinner.mjs.map +1 -1
  141. package/fesm2022/radio-testing.mjs +133 -208
  142. package/fesm2022/radio-testing.mjs.map +1 -1
  143. package/fesm2022/radio.mjs +712 -679
  144. package/fesm2022/radio.mjs.map +1 -1
  145. package/fesm2022/select-testing.mjs +83 -117
  146. package/fesm2022/select-testing.mjs.map +1 -1
  147. package/fesm2022/select.mjs +1116 -1246
  148. package/fesm2022/select.mjs.map +1 -1
  149. package/fesm2022/sidenav-testing.mjs +54 -120
  150. package/fesm2022/sidenav-testing.mjs.map +1 -1
  151. package/fesm2022/sidenav.mjs +1078 -995
  152. package/fesm2022/sidenav.mjs.map +1 -1
  153. package/fesm2022/slide-toggle-testing.mjs +57 -92
  154. package/fesm2022/slide-toggle-testing.mjs.map +1 -1
  155. package/fesm2022/slide-toggle.mjs +369 -279
  156. package/fesm2022/slide-toggle.mjs.map +1 -1
  157. package/fesm2022/slider-testing.mjs +90 -138
  158. package/fesm2022/slider-testing.mjs.map +1 -1
  159. package/fesm2022/slider.mjs +1651 -1716
  160. package/fesm2022/slider.mjs.map +1 -1
  161. package/fesm2022/snack-bar-testing.mjs +40 -87
  162. package/fesm2022/snack-bar-testing.mjs.map +1 -1
  163. package/fesm2022/snack-bar.mjs +763 -714
  164. package/fesm2022/snack-bar.mjs.map +1 -1
  165. package/fesm2022/sort-testing.mjs +45 -66
  166. package/fesm2022/sort-testing.mjs.map +1 -1
  167. package/fesm2022/sort.mjs +419 -344
  168. package/fesm2022/sort.mjs.map +1 -1
  169. package/fesm2022/stepper-testing.mjs +78 -154
  170. package/fesm2022/stepper-testing.mjs.map +1 -1
  171. package/fesm2022/stepper.mjs +790 -498
  172. package/fesm2022/stepper.mjs.map +1 -1
  173. package/fesm2022/table-testing.mjs +125 -186
  174. package/fesm2022/table-testing.mjs.map +1 -1
  175. package/fesm2022/table.mjs +1026 -684
  176. package/fesm2022/table.mjs.map +1 -1
  177. package/fesm2022/tabs-testing.mjs +125 -197
  178. package/fesm2022/tabs-testing.mjs.map +1 -1
  179. package/fesm2022/tabs.mjs +2351 -2028
  180. package/fesm2022/tabs.mjs.map +1 -1
  181. package/fesm2022/timepicker-testing.mjs +113 -172
  182. package/fesm2022/timepicker-testing.mjs.map +1 -1
  183. package/fesm2022/timepicker.mjs +1019 -826
  184. package/fesm2022/timepicker.mjs.map +1 -1
  185. package/fesm2022/toolbar-testing.mjs +16 -27
  186. package/fesm2022/toolbar-testing.mjs.map +1 -1
  187. package/fesm2022/toolbar.mjs +163 -78
  188. package/fesm2022/toolbar.mjs.map +1 -1
  189. package/fesm2022/tooltip-testing.mjs +41 -52
  190. package/fesm2022/tooltip-testing.mjs.map +1 -1
  191. package/fesm2022/tooltip.mjs +36 -10
  192. package/fesm2022/tooltip.mjs.map +1 -1
  193. package/fesm2022/tree-testing.mjs +86 -162
  194. package/fesm2022/tree-testing.mjs.map +1 -1
  195. package/fesm2022/tree.mjs +638 -466
  196. package/fesm2022/tree.mjs.map +1 -1
  197. package/package.json +2 -2
  198. package/schematics/ng-add/index.js +1 -1
  199. package/types/expansion.d.ts +4 -2
  200. package/types/menu-testing.d.ts +2 -0
  201. package/types/select.d.ts +1 -1
  202. package/types/sort.d.ts +1 -1
  203. package/types/table-testing.d.ts +27 -1
  204. package/types/timepicker.d.ts +148 -128
@@ -22,539 +22,831 @@ import '@angular/cdk/coercion';
22
22
  import '@angular/cdk/layout';
23
23
 
24
24
  class MatStepLabel extends CdkStepLabel {
25
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: MatStepLabel, deps: null, target: i0.ɵɵFactoryTarget.Directive });
26
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.2.0-next.2", type: MatStepLabel, isStandalone: true, selector: "[matStepLabel]", usesInheritance: true, ngImport: i0 });
25
+ static ɵfac = i0.ɵɵngDeclareFactory({
26
+ minVersion: "12.0.0",
27
+ version: "20.2.0-next.2",
28
+ ngImport: i0,
29
+ type: MatStepLabel,
30
+ deps: null,
31
+ target: i0.ɵɵFactoryTarget.Directive
32
+ });
33
+ static ɵdir = i0.ɵɵngDeclareDirective({
34
+ minVersion: "14.0.0",
35
+ version: "20.2.0-next.2",
36
+ type: MatStepLabel,
37
+ isStandalone: true,
38
+ selector: "[matStepLabel]",
39
+ usesInheritance: true,
40
+ ngImport: i0
41
+ });
27
42
  }
28
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: MatStepLabel, decorators: [{
29
- type: Directive,
30
- args: [{
31
- selector: '[matStepLabel]',
32
- }]
33
- }] });
43
+ i0.ɵɵngDeclareClassMetadata({
44
+ minVersion: "12.0.0",
45
+ version: "20.2.0-next.2",
46
+ ngImport: i0,
47
+ type: MatStepLabel,
48
+ decorators: [{
49
+ type: Directive,
50
+ args: [{
51
+ selector: '[matStepLabel]'
52
+ }]
53
+ }]
54
+ });
34
55
 
35
- /** Stepper data that is required for internationalization. */
36
56
  class MatStepperIntl {
37
- /**
38
- * Stream that emits whenever the labels here are changed. Use this to notify
39
- * components if the labels have changed after initialization.
40
- */
41
- changes = new Subject();
42
- /** Label that is rendered below optional steps. */
43
- optionalLabel = 'Optional';
44
- /** Label that is used to indicate step as completed to screen readers. */
45
- completedLabel = 'Completed';
46
- /** Label that is used to indicate step as editable to screen readers. */
47
- editableLabel = 'Editable';
48
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: MatStepperIntl, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
49
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: MatStepperIntl, providedIn: 'root' });
57
+ changes = new Subject();
58
+ optionalLabel = 'Optional';
59
+ completedLabel = 'Completed';
60
+ editableLabel = 'Editable';
61
+ static ɵfac = i0.ɵɵngDeclareFactory({
62
+ minVersion: "12.0.0",
63
+ version: "20.2.0-next.2",
64
+ ngImport: i0,
65
+ type: MatStepperIntl,
66
+ deps: [],
67
+ target: i0.ɵɵFactoryTarget.Injectable
68
+ });
69
+ static ɵprov = i0.ɵɵngDeclareInjectable({
70
+ minVersion: "12.0.0",
71
+ version: "20.2.0-next.2",
72
+ ngImport: i0,
73
+ type: MatStepperIntl,
74
+ providedIn: 'root'
75
+ });
50
76
  }
51
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: MatStepperIntl, decorators: [{
52
- type: Injectable,
53
- args: [{ providedIn: 'root' }]
54
- }] });
77
+ i0.ɵɵngDeclareClassMetadata({
78
+ minVersion: "12.0.0",
79
+ version: "20.2.0-next.2",
80
+ ngImport: i0,
81
+ type: MatStepperIntl,
82
+ decorators: [{
83
+ type: Injectable,
84
+ args: [{
85
+ providedIn: 'root'
86
+ }]
87
+ }]
88
+ });
55
89
 
56
90
  class MatStepHeader extends CdkStepHeader {
57
- _intl = inject(MatStepperIntl);
58
- _focusMonitor = inject(FocusMonitor);
59
- _intlSubscription;
60
- /** State of the given step. */
61
- state;
62
- /** Label of the given step. */
63
- label;
64
- /** Error message to display when there's an error. */
65
- errorMessage;
66
- /** Overrides for the header icons, passed in via the stepper. */
67
- iconOverrides;
68
- /** Index of the given step. */
69
- index;
70
- /** Whether the given step is selected. */
71
- selected;
72
- /** Whether the given step label is active. */
73
- active;
74
- /** Whether the given step is optional. */
75
- optional;
76
- /** Whether the ripple should be disabled. */
77
- disableRipple;
78
- /**
79
- * Theme color of the step header. This API is supported in M2 themes only, it
80
- * has no effect in M3 themes. For color customization in M3, see https://material.angular.dev/components/stepper/styling.
81
- *
82
- * For information on applying color variants in M3, see
83
- * https://material.angular.dev/guide/material-2-theming#optional-add-backwards-compatibility-styles-for-color-variants
84
- */
85
- color;
86
- constructor() {
87
- super();
88
- const styleLoader = inject(_CdkPrivateStyleLoader);
89
- styleLoader.load(_StructuralStylesLoader);
90
- styleLoader.load(_VisuallyHiddenLoader);
91
- const changeDetectorRef = inject(ChangeDetectorRef);
92
- this._intlSubscription = this._intl.changes.subscribe(() => changeDetectorRef.markForCheck());
91
+ _intl = inject(MatStepperIntl);
92
+ _focusMonitor = inject(FocusMonitor);
93
+ _intlSubscription;
94
+ state;
95
+ label;
96
+ errorMessage;
97
+ iconOverrides;
98
+ index;
99
+ selected;
100
+ active;
101
+ optional;
102
+ disableRipple;
103
+ color;
104
+ constructor() {
105
+ super();
106
+ const styleLoader = inject(_CdkPrivateStyleLoader);
107
+ styleLoader.load(_StructuralStylesLoader);
108
+ styleLoader.load(_VisuallyHiddenLoader);
109
+ const changeDetectorRef = inject(ChangeDetectorRef);
110
+ this._intlSubscription = this._intl.changes.subscribe(() => changeDetectorRef.markForCheck());
111
+ }
112
+ ngAfterViewInit() {
113
+ this._focusMonitor.monitor(this._elementRef, true);
114
+ }
115
+ ngOnDestroy() {
116
+ this._intlSubscription.unsubscribe();
117
+ this._focusMonitor.stopMonitoring(this._elementRef);
118
+ }
119
+ focus(origin, options) {
120
+ if (origin) {
121
+ this._focusMonitor.focusVia(this._elementRef, origin, options);
122
+ } else {
123
+ this._elementRef.nativeElement.focus(options);
93
124
  }
94
- ngAfterViewInit() {
95
- this._focusMonitor.monitor(this._elementRef, true);
125
+ }
126
+ _stringLabel() {
127
+ return this.label instanceof MatStepLabel ? null : this.label;
128
+ }
129
+ _templateLabel() {
130
+ return this.label instanceof MatStepLabel ? this.label : null;
131
+ }
132
+ _getHostElement() {
133
+ return this._elementRef.nativeElement;
134
+ }
135
+ _getDefaultTextForState(state) {
136
+ if (state == 'number') {
137
+ return `${this.index + 1}`;
96
138
  }
97
- ngOnDestroy() {
98
- this._intlSubscription.unsubscribe();
99
- this._focusMonitor.stopMonitoring(this._elementRef);
139
+ if (state == 'edit') {
140
+ return 'create';
100
141
  }
101
- /** Focuses the step header. */
102
- focus(origin, options) {
103
- if (origin) {
104
- this._focusMonitor.focusVia(this._elementRef, origin, options);
105
- }
106
- else {
107
- this._elementRef.nativeElement.focus(options);
108
- }
109
- }
110
- /** Returns string label of given step if it is a text label. */
111
- _stringLabel() {
112
- return this.label instanceof MatStepLabel ? null : this.label;
113
- }
114
- /** Returns MatStepLabel if the label of given step is a template label. */
115
- _templateLabel() {
116
- return this.label instanceof MatStepLabel ? this.label : null;
117
- }
118
- /** Returns the host HTML element. */
119
- _getHostElement() {
120
- return this._elementRef.nativeElement;
121
- }
122
- _getDefaultTextForState(state) {
123
- if (state == 'number') {
124
- return `${this.index + 1}`;
125
- }
126
- if (state == 'edit') {
127
- return 'create';
128
- }
129
- if (state == 'error') {
130
- return 'warning';
131
- }
132
- return state;
133
- }
134
- _hasEmptyLabel() {
135
- return (!this._stringLabel() &&
136
- !this._templateLabel() &&
137
- !this._hasOptionalLabel() &&
138
- !this._hasErrorLabel());
139
- }
140
- _hasOptionalLabel() {
141
- return this.optional && this.state !== 'error';
142
- }
143
- _hasErrorLabel() {
144
- return this.state === 'error';
142
+ if (state == 'error') {
143
+ return 'warning';
145
144
  }
146
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: MatStepHeader, deps: [], target: i0.ɵɵFactoryTarget.Component });
147
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.2.0-next.2", type: MatStepHeader, isStandalone: true, selector: "mat-step-header", inputs: { state: "state", label: "label", errorMessage: "errorMessage", iconOverrides: "iconOverrides", index: "index", selected: "selected", active: "active", optional: "optional", disableRipple: "disableRipple", color: "color" }, host: { attributes: { "role": "" }, properties: { "class.mat-step-header-empty-label": "_hasEmptyLabel()", "class": "\"mat-\" + (color || \"primary\")" }, classAttribute: "mat-step-header" }, usesInheritance: true, ngImport: i0, template: "<div class=\"mat-step-header-ripple mat-focus-indicator\" matRipple\n [matRippleTrigger]=\"_getHostElement()\"\n [matRippleDisabled]=\"disableRipple\"></div>\n\n<div class=\"mat-step-icon-state-{{state}} mat-step-icon\" [class.mat-step-icon-selected]=\"selected\">\n <div class=\"mat-step-icon-content\">\n @if (iconOverrides && iconOverrides[state]) {\n <ng-container\n [ngTemplateOutlet]=\"iconOverrides[state]\"\n [ngTemplateOutletContext]=\"{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", styles: [".mat-step-header{overflow:hidden;outline:none;cursor:pointer;position:relative;box-sizing:content-box;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-step-header:focus .mat-focus-indicator::before{content:\"\"}.mat-step-header:hover[aria-disabled=true]{cursor:default}.mat-step-header:hover:not([aria-disabled]),.mat-step-header:hover[aria-disabled=false]{background-color:var(--mat-stepper-header-hover-state-layer-color, color-mix(in srgb, var(--mat-sys-on-surface) calc(var(--mat-sys-hover-state-layer-opacity) * 100%), transparent));border-radius:var(--mat-stepper-header-hover-state-layer-shape, var(--mat-sys-corner-medium))}.mat-step-header.cdk-keyboard-focused,.mat-step-header.cdk-program-focused{background-color:var(--mat-stepper-header-focus-state-layer-color, color-mix(in srgb, var(--mat-sys-on-surface) calc(var(--mat-sys-focus-state-layer-opacity) * 100%), transparent));border-radius:var(--mat-stepper-header-focus-state-layer-shape, var(--mat-sys-corner-medium))}@media(hover: none){.mat-step-header:hover{background:none}}@media(forced-colors: active){.mat-step-header{outline:solid 1px}.mat-step-header[aria-selected=true] .mat-step-label{text-decoration:underline}.mat-step-header[aria-disabled=true]{outline-color:GrayText}.mat-step-header[aria-disabled=true] .mat-step-label,.mat-step-header[aria-disabled=true] .mat-step-icon,.mat-step-header[aria-disabled=true] .mat-step-optional{color:GrayText}}.mat-step-optional{font-size:12px;color:var(--mat-stepper-header-optional-label-text-color, var(--mat-sys-on-surface-variant))}.mat-step-sub-label-error{font-size:12px;font-weight:normal}.mat-step-icon{border-radius:50%;height:24px;width:24px;flex-shrink:0;position:relative;color:var(--mat-stepper-header-icon-foreground-color, var(--mat-sys-surface));background-color:var(--mat-stepper-header-icon-background-color, var(--mat-sys-on-surface-variant))}.mat-step-icon-content{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);display:flex}.mat-step-icon .mat-icon{font-size:16px;height:16px;width:16px}.mat-step-icon-state-error{background-color:var(--mat-stepper-header-error-state-icon-background-color, transparent);color:var(--mat-stepper-header-error-state-icon-foreground-color, var(--mat-sys-error))}.mat-step-icon-state-error .mat-icon{font-size:24px;height:24px;width:24px}.mat-step-label{display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:50px;vertical-align:middle;font-family:var(--mat-stepper-header-label-text-font, var(--mat-sys-title-small-font));font-size:var(--mat-stepper-header-label-text-size, var(--mat-sys-title-small-size));font-weight:var(--mat-stepper-header-label-text-weight, var(--mat-sys-title-small-weight));color:var(--mat-stepper-header-label-text-color, var(--mat-sys-on-surface-variant))}.mat-step-label.mat-step-label-active{color:var(--mat-stepper-header-selected-state-label-text-color, var(--mat-sys-on-surface-variant))}.mat-step-label.mat-step-label-error{color:var(--mat-stepper-header-error-state-label-text-color, var(--mat-sys-error));font-size:var(--mat-stepper-header-error-state-label-text-size, var(--mat-sys-title-small-size))}.mat-step-label.mat-step-label-selected{font-size:var(--mat-stepper-header-selected-state-label-text-size, var(--mat-sys-title-small-size));font-weight:var(--mat-stepper-header-selected-state-label-text-weight, var(--mat-sys-title-small-weight))}.mat-step-header-empty-label .mat-step-label{min-width:0}.mat-step-text-label{text-overflow:ellipsis;overflow:hidden}.mat-step-header .mat-step-header-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-step-icon-selected{background-color:var(--mat-stepper-header-selected-state-icon-background-color, var(--mat-sys-primary));color:var(--mat-stepper-header-selected-state-icon-foreground-color, var(--mat-sys-on-primary))}.mat-step-icon-state-done{background-color:var(--mat-stepper-header-done-state-icon-background-color, var(--mat-sys-primary));color:var(--mat-stepper-header-done-state-icon-foreground-color, var(--mat-sys-on-primary))}.mat-step-icon-state-edit{background-color:var(--mat-stepper-header-edit-state-icon-background-color, var(--mat-sys-primary));color:var(--mat-stepper-header-edit-state-icon-foreground-color, var(--mat-sys-on-primary))}\n"], dependencies: [{ kind: "directive", type: MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
145
+ return state;
146
+ }
147
+ _hasEmptyLabel() {
148
+ return !this._stringLabel() && !this._templateLabel() && !this._hasOptionalLabel() && !this._hasErrorLabel();
149
+ }
150
+ _hasOptionalLabel() {
151
+ return this.optional && this.state !== 'error';
152
+ }
153
+ _hasErrorLabel() {
154
+ return this.state === 'error';
155
+ }
156
+ static ɵfac = i0.ɵɵngDeclareFactory({
157
+ minVersion: "12.0.0",
158
+ version: "20.2.0-next.2",
159
+ ngImport: i0,
160
+ type: MatStepHeader,
161
+ deps: [],
162
+ target: i0.ɵɵFactoryTarget.Component
163
+ });
164
+ static ɵcmp = i0.ɵɵngDeclareComponent({
165
+ minVersion: "17.0.0",
166
+ version: "20.2.0-next.2",
167
+ type: MatStepHeader,
168
+ isStandalone: true,
169
+ selector: "mat-step-header",
170
+ inputs: {
171
+ state: "state",
172
+ label: "label",
173
+ errorMessage: "errorMessage",
174
+ iconOverrides: "iconOverrides",
175
+ index: "index",
176
+ selected: "selected",
177
+ active: "active",
178
+ optional: "optional",
179
+ disableRipple: "disableRipple",
180
+ color: "color"
181
+ },
182
+ host: {
183
+ attributes: {
184
+ "role": ""
185
+ },
186
+ properties: {
187
+ "class.mat-step-header-empty-label": "_hasEmptyLabel()",
188
+ "class": "\"mat-\" + (color || \"primary\")"
189
+ },
190
+ classAttribute: "mat-step-header"
191
+ },
192
+ usesInheritance: true,
193
+ ngImport: i0,
194
+ template: "<div class=\"mat-step-header-ripple mat-focus-indicator\" matRipple\n [matRippleTrigger]=\"_getHostElement()\"\n [matRippleDisabled]=\"disableRipple\"></div>\n\n<div class=\"mat-step-icon-state-{{state}} mat-step-icon\" [class.mat-step-icon-selected]=\"selected\">\n <div class=\"mat-step-icon-content\">\n @if (iconOverrides && iconOverrides[state]) {\n <ng-container\n [ngTemplateOutlet]=\"iconOverrides[state]\"\n [ngTemplateOutletContext]=\"{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",
195
+ styles: [".mat-step-header{overflow:hidden;outline:none;cursor:pointer;position:relative;box-sizing:content-box;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-step-header:focus .mat-focus-indicator::before{content:\"\"}.mat-step-header:hover[aria-disabled=true]{cursor:default}.mat-step-header:hover:not([aria-disabled]),.mat-step-header:hover[aria-disabled=false]{background-color:var(--mat-stepper-header-hover-state-layer-color, color-mix(in srgb, var(--mat-sys-on-surface) calc(var(--mat-sys-hover-state-layer-opacity) * 100%), transparent));border-radius:var(--mat-stepper-header-hover-state-layer-shape, var(--mat-sys-corner-medium))}.mat-step-header.cdk-keyboard-focused,.mat-step-header.cdk-program-focused{background-color:var(--mat-stepper-header-focus-state-layer-color, color-mix(in srgb, var(--mat-sys-on-surface) calc(var(--mat-sys-focus-state-layer-opacity) * 100%), transparent));border-radius:var(--mat-stepper-header-focus-state-layer-shape, var(--mat-sys-corner-medium))}@media(hover: none){.mat-step-header:hover{background:none}}@media(forced-colors: active){.mat-step-header{outline:solid 1px}.mat-step-header[aria-selected=true] .mat-step-label{text-decoration:underline}.mat-step-header[aria-disabled=true]{outline-color:GrayText}.mat-step-header[aria-disabled=true] .mat-step-label,.mat-step-header[aria-disabled=true] .mat-step-icon,.mat-step-header[aria-disabled=true] .mat-step-optional{color:GrayText}}.mat-step-optional{font-size:12px;color:var(--mat-stepper-header-optional-label-text-color, var(--mat-sys-on-surface-variant))}.mat-step-sub-label-error{font-size:12px;font-weight:normal}.mat-step-icon{border-radius:50%;height:24px;width:24px;flex-shrink:0;position:relative;color:var(--mat-stepper-header-icon-foreground-color, var(--mat-sys-surface));background-color:var(--mat-stepper-header-icon-background-color, var(--mat-sys-on-surface-variant))}.mat-step-icon-content{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);display:flex}.mat-step-icon .mat-icon{font-size:16px;height:16px;width:16px}.mat-step-icon-state-error{background-color:var(--mat-stepper-header-error-state-icon-background-color, transparent);color:var(--mat-stepper-header-error-state-icon-foreground-color, var(--mat-sys-error))}.mat-step-icon-state-error .mat-icon{font-size:24px;height:24px;width:24px}.mat-step-label{display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:50px;vertical-align:middle;font-family:var(--mat-stepper-header-label-text-font, var(--mat-sys-title-small-font));font-size:var(--mat-stepper-header-label-text-size, var(--mat-sys-title-small-size));font-weight:var(--mat-stepper-header-label-text-weight, var(--mat-sys-title-small-weight));color:var(--mat-stepper-header-label-text-color, var(--mat-sys-on-surface-variant))}.mat-step-label.mat-step-label-active{color:var(--mat-stepper-header-selected-state-label-text-color, var(--mat-sys-on-surface-variant))}.mat-step-label.mat-step-label-error{color:var(--mat-stepper-header-error-state-label-text-color, var(--mat-sys-error));font-size:var(--mat-stepper-header-error-state-label-text-size, var(--mat-sys-title-small-size))}.mat-step-label.mat-step-label-selected{font-size:var(--mat-stepper-header-selected-state-label-text-size, var(--mat-sys-title-small-size));font-weight:var(--mat-stepper-header-selected-state-label-text-weight, var(--mat-sys-title-small-weight))}.mat-step-header-empty-label .mat-step-label{min-width:0}.mat-step-text-label{text-overflow:ellipsis;overflow:hidden}.mat-step-header .mat-step-header-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-step-icon-selected{background-color:var(--mat-stepper-header-selected-state-icon-background-color, var(--mat-sys-primary));color:var(--mat-stepper-header-selected-state-icon-foreground-color, var(--mat-sys-on-primary))}.mat-step-icon-state-done{background-color:var(--mat-stepper-header-done-state-icon-background-color, var(--mat-sys-primary));color:var(--mat-stepper-header-done-state-icon-foreground-color, var(--mat-sys-on-primary))}.mat-step-icon-state-edit{background-color:var(--mat-stepper-header-edit-state-icon-background-color, var(--mat-sys-primary));color:var(--mat-stepper-header-edit-state-icon-foreground-color, var(--mat-sys-on-primary))}\n"],
196
+ dependencies: [{
197
+ kind: "directive",
198
+ type: MatRipple,
199
+ selector: "[mat-ripple], [matRipple]",
200
+ inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"],
201
+ exportAs: ["matRipple"]
202
+ }, {
203
+ kind: "directive",
204
+ type: NgTemplateOutlet,
205
+ selector: "[ngTemplateOutlet]",
206
+ inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"]
207
+ }, {
208
+ kind: "component",
209
+ type: MatIcon,
210
+ selector: "mat-icon",
211
+ inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"],
212
+ exportAs: ["matIcon"]
213
+ }],
214
+ changeDetection: i0.ChangeDetectionStrategy.OnPush,
215
+ encapsulation: i0.ViewEncapsulation.None
216
+ });
148
217
  }
149
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: MatStepHeader, decorators: [{
150
- type: Component,
151
- args: [{ selector: 'mat-step-header', host: {
152
- 'class': 'mat-step-header',
153
- '[class.mat-step-header-empty-label]': '_hasEmptyLabel()',
154
- '[class]': '"mat-" + (color || "primary")',
155
- 'role': '', // ignore cdk role in favor of setting appropriately in html
156
- }, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, imports: [MatRipple, NgTemplateOutlet, MatIcon], template: "<div class=\"mat-step-header-ripple mat-focus-indicator\" matRipple\n [matRippleTrigger]=\"_getHostElement()\"\n [matRippleDisabled]=\"disableRipple\"></div>\n\n<div class=\"mat-step-icon-state-{{state}} mat-step-icon\" [class.mat-step-icon-selected]=\"selected\">\n <div class=\"mat-step-icon-content\">\n @if (iconOverrides && iconOverrides[state]) {\n <ng-container\n [ngTemplateOutlet]=\"iconOverrides[state]\"\n [ngTemplateOutletContext]=\"{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", styles: [".mat-step-header{overflow:hidden;outline:none;cursor:pointer;position:relative;box-sizing:content-box;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-step-header:focus .mat-focus-indicator::before{content:\"\"}.mat-step-header:hover[aria-disabled=true]{cursor:default}.mat-step-header:hover:not([aria-disabled]),.mat-step-header:hover[aria-disabled=false]{background-color:var(--mat-stepper-header-hover-state-layer-color, color-mix(in srgb, var(--mat-sys-on-surface) calc(var(--mat-sys-hover-state-layer-opacity) * 100%), transparent));border-radius:var(--mat-stepper-header-hover-state-layer-shape, var(--mat-sys-corner-medium))}.mat-step-header.cdk-keyboard-focused,.mat-step-header.cdk-program-focused{background-color:var(--mat-stepper-header-focus-state-layer-color, color-mix(in srgb, var(--mat-sys-on-surface) calc(var(--mat-sys-focus-state-layer-opacity) * 100%), transparent));border-radius:var(--mat-stepper-header-focus-state-layer-shape, var(--mat-sys-corner-medium))}@media(hover: none){.mat-step-header:hover{background:none}}@media(forced-colors: active){.mat-step-header{outline:solid 1px}.mat-step-header[aria-selected=true] .mat-step-label{text-decoration:underline}.mat-step-header[aria-disabled=true]{outline-color:GrayText}.mat-step-header[aria-disabled=true] .mat-step-label,.mat-step-header[aria-disabled=true] .mat-step-icon,.mat-step-header[aria-disabled=true] .mat-step-optional{color:GrayText}}.mat-step-optional{font-size:12px;color:var(--mat-stepper-header-optional-label-text-color, var(--mat-sys-on-surface-variant))}.mat-step-sub-label-error{font-size:12px;font-weight:normal}.mat-step-icon{border-radius:50%;height:24px;width:24px;flex-shrink:0;position:relative;color:var(--mat-stepper-header-icon-foreground-color, var(--mat-sys-surface));background-color:var(--mat-stepper-header-icon-background-color, var(--mat-sys-on-surface-variant))}.mat-step-icon-content{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);display:flex}.mat-step-icon .mat-icon{font-size:16px;height:16px;width:16px}.mat-step-icon-state-error{background-color:var(--mat-stepper-header-error-state-icon-background-color, transparent);color:var(--mat-stepper-header-error-state-icon-foreground-color, var(--mat-sys-error))}.mat-step-icon-state-error .mat-icon{font-size:24px;height:24px;width:24px}.mat-step-label{display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:50px;vertical-align:middle;font-family:var(--mat-stepper-header-label-text-font, var(--mat-sys-title-small-font));font-size:var(--mat-stepper-header-label-text-size, var(--mat-sys-title-small-size));font-weight:var(--mat-stepper-header-label-text-weight, var(--mat-sys-title-small-weight));color:var(--mat-stepper-header-label-text-color, var(--mat-sys-on-surface-variant))}.mat-step-label.mat-step-label-active{color:var(--mat-stepper-header-selected-state-label-text-color, var(--mat-sys-on-surface-variant))}.mat-step-label.mat-step-label-error{color:var(--mat-stepper-header-error-state-label-text-color, var(--mat-sys-error));font-size:var(--mat-stepper-header-error-state-label-text-size, var(--mat-sys-title-small-size))}.mat-step-label.mat-step-label-selected{font-size:var(--mat-stepper-header-selected-state-label-text-size, var(--mat-sys-title-small-size));font-weight:var(--mat-stepper-header-selected-state-label-text-weight, var(--mat-sys-title-small-weight))}.mat-step-header-empty-label .mat-step-label{min-width:0}.mat-step-text-label{text-overflow:ellipsis;overflow:hidden}.mat-step-header .mat-step-header-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-step-icon-selected{background-color:var(--mat-stepper-header-selected-state-icon-background-color, var(--mat-sys-primary));color:var(--mat-stepper-header-selected-state-icon-foreground-color, var(--mat-sys-on-primary))}.mat-step-icon-state-done{background-color:var(--mat-stepper-header-done-state-icon-background-color, var(--mat-sys-primary));color:var(--mat-stepper-header-done-state-icon-foreground-color, var(--mat-sys-on-primary))}.mat-step-icon-state-edit{background-color:var(--mat-stepper-header-edit-state-icon-background-color, var(--mat-sys-primary));color:var(--mat-stepper-header-edit-state-icon-foreground-color, var(--mat-sys-on-primary))}\n"] }]
157
- }], ctorParameters: () => [], propDecorators: { state: [{
158
- type: Input
159
- }], label: [{
160
- type: Input
161
- }], errorMessage: [{
162
- type: Input
163
- }], iconOverrides: [{
164
- type: Input
165
- }], index: [{
166
- type: Input
167
- }], selected: [{
168
- type: Input
169
- }], active: [{
170
- type: Input
171
- }], optional: [{
172
- type: Input
173
- }], disableRipple: [{
174
- type: Input
175
- }], color: [{
176
- type: Input
177
- }] } });
218
+ i0.ɵɵngDeclareClassMetadata({
219
+ minVersion: "12.0.0",
220
+ version: "20.2.0-next.2",
221
+ ngImport: i0,
222
+ type: MatStepHeader,
223
+ decorators: [{
224
+ type: Component,
225
+ args: [{
226
+ selector: 'mat-step-header',
227
+ host: {
228
+ 'class': 'mat-step-header',
229
+ '[class.mat-step-header-empty-label]': '_hasEmptyLabel()',
230
+ '[class]': '"mat-" + (color || "primary")',
231
+ 'role': ''
232
+ },
233
+ encapsulation: ViewEncapsulation.None,
234
+ changeDetection: ChangeDetectionStrategy.OnPush,
235
+ imports: [MatRipple, NgTemplateOutlet, MatIcon],
236
+ template: "<div class=\"mat-step-header-ripple mat-focus-indicator\" matRipple\n [matRippleTrigger]=\"_getHostElement()\"\n [matRippleDisabled]=\"disableRipple\"></div>\n\n<div class=\"mat-step-icon-state-{{state}} mat-step-icon\" [class.mat-step-icon-selected]=\"selected\">\n <div class=\"mat-step-icon-content\">\n @if (iconOverrides && iconOverrides[state]) {\n <ng-container\n [ngTemplateOutlet]=\"iconOverrides[state]\"\n [ngTemplateOutletContext]=\"{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",
237
+ styles: [".mat-step-header{overflow:hidden;outline:none;cursor:pointer;position:relative;box-sizing:content-box;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-step-header:focus .mat-focus-indicator::before{content:\"\"}.mat-step-header:hover[aria-disabled=true]{cursor:default}.mat-step-header:hover:not([aria-disabled]),.mat-step-header:hover[aria-disabled=false]{background-color:var(--mat-stepper-header-hover-state-layer-color, color-mix(in srgb, var(--mat-sys-on-surface) calc(var(--mat-sys-hover-state-layer-opacity) * 100%), transparent));border-radius:var(--mat-stepper-header-hover-state-layer-shape, var(--mat-sys-corner-medium))}.mat-step-header.cdk-keyboard-focused,.mat-step-header.cdk-program-focused{background-color:var(--mat-stepper-header-focus-state-layer-color, color-mix(in srgb, var(--mat-sys-on-surface) calc(var(--mat-sys-focus-state-layer-opacity) * 100%), transparent));border-radius:var(--mat-stepper-header-focus-state-layer-shape, var(--mat-sys-corner-medium))}@media(hover: none){.mat-step-header:hover{background:none}}@media(forced-colors: active){.mat-step-header{outline:solid 1px}.mat-step-header[aria-selected=true] .mat-step-label{text-decoration:underline}.mat-step-header[aria-disabled=true]{outline-color:GrayText}.mat-step-header[aria-disabled=true] .mat-step-label,.mat-step-header[aria-disabled=true] .mat-step-icon,.mat-step-header[aria-disabled=true] .mat-step-optional{color:GrayText}}.mat-step-optional{font-size:12px;color:var(--mat-stepper-header-optional-label-text-color, var(--mat-sys-on-surface-variant))}.mat-step-sub-label-error{font-size:12px;font-weight:normal}.mat-step-icon{border-radius:50%;height:24px;width:24px;flex-shrink:0;position:relative;color:var(--mat-stepper-header-icon-foreground-color, var(--mat-sys-surface));background-color:var(--mat-stepper-header-icon-background-color, var(--mat-sys-on-surface-variant))}.mat-step-icon-content{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);display:flex}.mat-step-icon .mat-icon{font-size:16px;height:16px;width:16px}.mat-step-icon-state-error{background-color:var(--mat-stepper-header-error-state-icon-background-color, transparent);color:var(--mat-stepper-header-error-state-icon-foreground-color, var(--mat-sys-error))}.mat-step-icon-state-error .mat-icon{font-size:24px;height:24px;width:24px}.mat-step-label{display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:50px;vertical-align:middle;font-family:var(--mat-stepper-header-label-text-font, var(--mat-sys-title-small-font));font-size:var(--mat-stepper-header-label-text-size, var(--mat-sys-title-small-size));font-weight:var(--mat-stepper-header-label-text-weight, var(--mat-sys-title-small-weight));color:var(--mat-stepper-header-label-text-color, var(--mat-sys-on-surface-variant))}.mat-step-label.mat-step-label-active{color:var(--mat-stepper-header-selected-state-label-text-color, var(--mat-sys-on-surface-variant))}.mat-step-label.mat-step-label-error{color:var(--mat-stepper-header-error-state-label-text-color, var(--mat-sys-error));font-size:var(--mat-stepper-header-error-state-label-text-size, var(--mat-sys-title-small-size))}.mat-step-label.mat-step-label-selected{font-size:var(--mat-stepper-header-selected-state-label-text-size, var(--mat-sys-title-small-size));font-weight:var(--mat-stepper-header-selected-state-label-text-weight, var(--mat-sys-title-small-weight))}.mat-step-header-empty-label .mat-step-label{min-width:0}.mat-step-text-label{text-overflow:ellipsis;overflow:hidden}.mat-step-header .mat-step-header-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-step-icon-selected{background-color:var(--mat-stepper-header-selected-state-icon-background-color, var(--mat-sys-primary));color:var(--mat-stepper-header-selected-state-icon-foreground-color, var(--mat-sys-on-primary))}.mat-step-icon-state-done{background-color:var(--mat-stepper-header-done-state-icon-background-color, var(--mat-sys-primary));color:var(--mat-stepper-header-done-state-icon-foreground-color, var(--mat-sys-on-primary))}.mat-step-icon-state-edit{background-color:var(--mat-stepper-header-edit-state-icon-background-color, var(--mat-sys-primary));color:var(--mat-stepper-header-edit-state-icon-foreground-color, var(--mat-sys-on-primary))}\n"]
238
+ }]
239
+ }],
240
+ ctorParameters: () => [],
241
+ propDecorators: {
242
+ state: [{
243
+ type: Input
244
+ }],
245
+ label: [{
246
+ type: Input
247
+ }],
248
+ errorMessage: [{
249
+ type: Input
250
+ }],
251
+ iconOverrides: [{
252
+ type: Input
253
+ }],
254
+ index: [{
255
+ type: Input
256
+ }],
257
+ selected: [{
258
+ type: Input
259
+ }],
260
+ active: [{
261
+ type: Input
262
+ }],
263
+ optional: [{
264
+ type: Input
265
+ }],
266
+ disableRipple: [{
267
+ type: Input
268
+ }],
269
+ color: [{
270
+ type: Input
271
+ }]
272
+ }
273
+ });
178
274
 
179
- /**
180
- * Template to be used to override the icons inside the step header.
181
- */
182
275
  class MatStepperIcon {
183
- templateRef = inject(TemplateRef);
184
- /** Name of the icon to be overridden. */
185
- name;
186
- constructor() { }
187
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: MatStepperIcon, deps: [], target: i0.ɵɵFactoryTarget.Directive });
188
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.2.0-next.2", type: MatStepperIcon, isStandalone: true, selector: "ng-template[matStepperIcon]", inputs: { name: ["matStepperIcon", "name"] }, ngImport: i0 });
276
+ templateRef = inject(TemplateRef);
277
+ name;
278
+ constructor() {}
279
+ static ɵfac = i0.ɵɵngDeclareFactory({
280
+ minVersion: "12.0.0",
281
+ version: "20.2.0-next.2",
282
+ ngImport: i0,
283
+ type: MatStepperIcon,
284
+ deps: [],
285
+ target: i0.ɵɵFactoryTarget.Directive
286
+ });
287
+ static ɵdir = i0.ɵɵngDeclareDirective({
288
+ minVersion: "14.0.0",
289
+ version: "20.2.0-next.2",
290
+ type: MatStepperIcon,
291
+ isStandalone: true,
292
+ selector: "ng-template[matStepperIcon]",
293
+ inputs: {
294
+ name: ["matStepperIcon", "name"]
295
+ },
296
+ ngImport: i0
297
+ });
189
298
  }
190
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: MatStepperIcon, decorators: [{
191
- type: Directive,
192
- args: [{
193
- selector: 'ng-template[matStepperIcon]',
194
- }]
195
- }], ctorParameters: () => [], propDecorators: { name: [{
196
- type: Input,
197
- args: ['matStepperIcon']
198
- }] } });
299
+ i0.ɵɵngDeclareClassMetadata({
300
+ minVersion: "12.0.0",
301
+ version: "20.2.0-next.2",
302
+ ngImport: i0,
303
+ type: MatStepperIcon,
304
+ decorators: [{
305
+ type: Directive,
306
+ args: [{
307
+ selector: 'ng-template[matStepperIcon]'
308
+ }]
309
+ }],
310
+ ctorParameters: () => [],
311
+ propDecorators: {
312
+ name: [{
313
+ type: Input,
314
+ args: ['matStepperIcon']
315
+ }]
316
+ }
317
+ });
199
318
 
200
- /**
201
- * Content for a `mat-step` that will be rendered lazily.
202
- */
203
319
  class MatStepContent {
204
- _template = inject(TemplateRef);
205
- constructor() { }
206
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: MatStepContent, deps: [], target: i0.ɵɵFactoryTarget.Directive });
207
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.2.0-next.2", type: MatStepContent, isStandalone: true, selector: "ng-template[matStepContent]", ngImport: i0 });
320
+ _template = inject(TemplateRef);
321
+ constructor() {}
322
+ static ɵfac = i0.ɵɵngDeclareFactory({
323
+ minVersion: "12.0.0",
324
+ version: "20.2.0-next.2",
325
+ ngImport: i0,
326
+ type: MatStepContent,
327
+ deps: [],
328
+ target: i0.ɵɵFactoryTarget.Directive
329
+ });
330
+ static ɵdir = i0.ɵɵngDeclareDirective({
331
+ minVersion: "14.0.0",
332
+ version: "20.2.0-next.2",
333
+ type: MatStepContent,
334
+ isStandalone: true,
335
+ selector: "ng-template[matStepContent]",
336
+ ngImport: i0
337
+ });
208
338
  }
209
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: MatStepContent, decorators: [{
210
- type: Directive,
211
- args: [{
212
- selector: 'ng-template[matStepContent]',
213
- }]
214
- }], ctorParameters: () => [] });
339
+ i0.ɵɵngDeclareClassMetadata({
340
+ minVersion: "12.0.0",
341
+ version: "20.2.0-next.2",
342
+ ngImport: i0,
343
+ type: MatStepContent,
344
+ decorators: [{
345
+ type: Directive,
346
+ args: [{
347
+ selector: 'ng-template[matStepContent]'
348
+ }]
349
+ }],
350
+ ctorParameters: () => []
351
+ });
215
352
 
216
353
  class MatStep extends CdkStep {
217
- _errorStateMatcher = inject(ErrorStateMatcher, { skipSelf: true });
218
- _viewContainerRef = inject(ViewContainerRef);
219
- _isSelected = Subscription.EMPTY;
220
- /** Content for step label given by `<ng-template matStepLabel>`. */
221
- // We need an initializer here to avoid a TS error.
222
- stepLabel = undefined;
223
- /**
224
- * Theme color for the particular step. This API is supported in M2 themes
225
- * only, it has no effect in M3 themes. For color customization in M3, see https://material.angular.dev/components/stepper/styling.
226
- *
227
- * For information on applying color variants in M3, see
228
- * https://material.angular.dev/guide/material-2-theming#optional-add-backwards-compatibility-styles-for-color-variants
229
- */
230
- color;
231
- /** Content that will be rendered lazily. */
232
- _lazyContent;
233
- /** Currently-attached portal containing the lazy content. */
234
- _portal;
235
- ngAfterContentInit() {
236
- this._isSelected = this._stepper.steps.changes
237
- .pipe(switchMap(() => {
238
- return this._stepper.selectionChange.pipe(map(event => event.selectedStep === this), startWith(this._stepper.selected === this));
239
- }))
240
- .subscribe(isSelected => {
241
- if (isSelected && this._lazyContent && !this._portal) {
242
- this._portal = new TemplatePortal(this._lazyContent._template, this._viewContainerRef);
243
- }
244
- });
245
- }
246
- ngOnDestroy() {
247
- this._isSelected.unsubscribe();
248
- }
249
- /** Custom error state matcher that additionally checks for validity of interacted form. */
250
- isErrorState(control, form) {
251
- const originalErrorState = this._errorStateMatcher.isErrorState(control, form);
252
- // Custom error state checks for the validity of form that is not submitted or touched
253
- // since user can trigger a form change by calling for another step without directly
254
- // interacting with the current form.
255
- const customErrorState = !!(control && control.invalid && this.interacted);
256
- return originalErrorState || customErrorState;
257
- }
258
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: MatStep, deps: null, target: i0.ɵɵFactoryTarget.Component });
259
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.2.0-next.2", type: MatStep, isStandalone: true, selector: "mat-step", inputs: { color: "color" }, host: { attributes: { "hidden": "" } }, providers: [
260
- { provide: ErrorStateMatcher, useExisting: MatStep },
261
- { provide: CdkStep, useExisting: MatStep },
262
- ], queries: [{ propertyName: "stepLabel", first: true, predicate: MatStepLabel, descendants: true }, { propertyName: "_lazyContent", first: true, predicate: MatStepContent, descendants: true }], exportAs: ["matStep"], usesInheritance: true, ngImport: i0, template: "<ng-template>\n <ng-content></ng-content>\n <ng-template [cdkPortalOutlet]=\"_portal\"></ng-template>\n</ng-template>\n", dependencies: [{ kind: "directive", type: CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
354
+ _errorStateMatcher = inject(ErrorStateMatcher, {
355
+ skipSelf: true
356
+ });
357
+ _viewContainerRef = inject(ViewContainerRef);
358
+ _isSelected = Subscription.EMPTY;
359
+ stepLabel = undefined;
360
+ color;
361
+ _lazyContent;
362
+ _portal;
363
+ ngAfterContentInit() {
364
+ this._isSelected = this._stepper.steps.changes.pipe(switchMap(() => {
365
+ return this._stepper.selectionChange.pipe(map(event => event.selectedStep === this), startWith(this._stepper.selected === this));
366
+ })).subscribe(isSelected => {
367
+ if (isSelected && this._lazyContent && !this._portal) {
368
+ this._portal = new TemplatePortal(this._lazyContent._template, this._viewContainerRef);
369
+ }
370
+ });
371
+ }
372
+ ngOnDestroy() {
373
+ this._isSelected.unsubscribe();
374
+ }
375
+ isErrorState(control, form) {
376
+ const originalErrorState = this._errorStateMatcher.isErrorState(control, form);
377
+ const customErrorState = !!(control && control.invalid && this.interacted);
378
+ return originalErrorState || customErrorState;
379
+ }
380
+ static ɵfac = i0.ɵɵngDeclareFactory({
381
+ minVersion: "12.0.0",
382
+ version: "20.2.0-next.2",
383
+ ngImport: i0,
384
+ type: MatStep,
385
+ deps: null,
386
+ target: i0.ɵɵFactoryTarget.Component
387
+ });
388
+ static ɵcmp = i0.ɵɵngDeclareComponent({
389
+ minVersion: "14.0.0",
390
+ version: "20.2.0-next.2",
391
+ type: MatStep,
392
+ isStandalone: true,
393
+ selector: "mat-step",
394
+ inputs: {
395
+ color: "color"
396
+ },
397
+ host: {
398
+ attributes: {
399
+ "hidden": ""
400
+ }
401
+ },
402
+ providers: [{
403
+ provide: ErrorStateMatcher,
404
+ useExisting: MatStep
405
+ }, {
406
+ provide: CdkStep,
407
+ useExisting: MatStep
408
+ }],
409
+ queries: [{
410
+ propertyName: "stepLabel",
411
+ first: true,
412
+ predicate: MatStepLabel,
413
+ descendants: true
414
+ }, {
415
+ propertyName: "_lazyContent",
416
+ first: true,
417
+ predicate: MatStepContent,
418
+ descendants: true
419
+ }],
420
+ exportAs: ["matStep"],
421
+ usesInheritance: true,
422
+ ngImport: i0,
423
+ template: "<ng-template>\n <ng-content></ng-content>\n <ng-template [cdkPortalOutlet]=\"_portal\"></ng-template>\n</ng-template>\n",
424
+ dependencies: [{
425
+ kind: "directive",
426
+ type: CdkPortalOutlet,
427
+ selector: "[cdkPortalOutlet]",
428
+ inputs: ["cdkPortalOutlet"],
429
+ outputs: ["attached"],
430
+ exportAs: ["cdkPortalOutlet"]
431
+ }],
432
+ changeDetection: i0.ChangeDetectionStrategy.OnPush,
433
+ encapsulation: i0.ViewEncapsulation.None
434
+ });
263
435
  }
264
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: MatStep, decorators: [{
265
- type: Component,
266
- args: [{ selector: 'mat-step', providers: [
267
- { provide: ErrorStateMatcher, useExisting: MatStep },
268
- { provide: CdkStep, useExisting: MatStep },
269
- ], encapsulation: ViewEncapsulation.None, exportAs: 'matStep', changeDetection: ChangeDetectionStrategy.OnPush, imports: [CdkPortalOutlet], host: {
270
- 'hidden': '', // Hide the steps so they don't affect the layout.
271
- }, template: "<ng-template>\n <ng-content></ng-content>\n <ng-template [cdkPortalOutlet]=\"_portal\"></ng-template>\n</ng-template>\n" }]
272
- }], propDecorators: { stepLabel: [{
273
- type: ContentChild,
274
- args: [MatStepLabel]
275
- }], color: [{
276
- type: Input
277
- }], _lazyContent: [{
278
- type: ContentChild,
279
- args: [MatStepContent, { static: false }]
280
- }] } });
436
+ i0.ɵɵngDeclareClassMetadata({
437
+ minVersion: "12.0.0",
438
+ version: "20.2.0-next.2",
439
+ ngImport: i0,
440
+ type: MatStep,
441
+ decorators: [{
442
+ type: Component,
443
+ args: [{
444
+ selector: 'mat-step',
445
+ providers: [{
446
+ provide: ErrorStateMatcher,
447
+ useExisting: MatStep
448
+ }, {
449
+ provide: CdkStep,
450
+ useExisting: MatStep
451
+ }],
452
+ encapsulation: ViewEncapsulation.None,
453
+ exportAs: 'matStep',
454
+ changeDetection: ChangeDetectionStrategy.OnPush,
455
+ imports: [CdkPortalOutlet],
456
+ host: {
457
+ 'hidden': ''
458
+ },
459
+ template: "<ng-template>\n <ng-content></ng-content>\n <ng-template [cdkPortalOutlet]=\"_portal\"></ng-template>\n</ng-template>\n"
460
+ }]
461
+ }],
462
+ propDecorators: {
463
+ stepLabel: [{
464
+ type: ContentChild,
465
+ args: [MatStepLabel]
466
+ }],
467
+ color: [{
468
+ type: Input
469
+ }],
470
+ _lazyContent: [{
471
+ type: ContentChild,
472
+ args: [MatStepContent, {
473
+ static: false
474
+ }]
475
+ }]
476
+ }
477
+ });
281
478
  class MatStepper extends CdkStepper {
282
- _ngZone = inject(NgZone);
283
- _renderer = inject(Renderer2);
284
- _animationsDisabled = _animationsDisabled();
285
- _cleanupTransition;
286
- _isAnimating = signal(false, ...(ngDevMode ? [{ debugName: "_isAnimating" }] : []));
287
- /** The list of step headers of the steps in the stepper. */
288
- _stepHeader = undefined;
289
- /** Elements hosting the step animations. */
290
- _animatedContainers;
291
- /** Full list of steps inside the stepper, including inside nested steppers. */
292
- _steps = undefined;
293
- /** Steps that belong to the current stepper, excluding ones from nested steppers. */
294
- steps = new QueryList();
295
- /** Custom icon overrides passed in by the consumer. */
296
- _icons;
297
- /** Event emitted when the current step is done transitioning in. */
298
- animationDone = new EventEmitter();
299
- /** Whether ripples should be disabled for the step headers. */
300
- disableRipple;
301
- /**
302
- * Theme color for all of the steps in stepper. This API is supported in M2
303
- * themes only, it has no effect in M3 themes. For color customization in M3, see https://material.angular.dev/components/stepper/styling.
304
- *
305
- * For information on applying color variants in M3, see
306
- * https://material.angular.dev/guide/material-2-theming#optional-add-backwards-compatibility-styles-for-color-variants
307
- */
308
- color;
309
- /**
310
- * Whether the label should display in bottom or end position.
311
- * Only applies in the `horizontal` orientation.
312
- */
313
- labelPosition = 'end';
314
- /**
315
- * Position of the stepper's header.
316
- * Only applies in the `horizontal` orientation.
317
- */
318
- headerPosition = 'top';
319
- /** Consumer-specified template-refs to be used to override the header icons. */
320
- _iconOverrides = {};
321
- /** Duration for the animation. Will be normalized to milliseconds if no units are set. */
322
- get animationDuration() {
323
- return this._animationDuration;
324
- }
325
- set animationDuration(value) {
326
- this._animationDuration = /^\d+$/.test(value) ? value + 'ms' : value;
327
- }
328
- _animationDuration = '';
329
- /** Whether the stepper is rendering on the server. */
330
- _isServer = !inject(Platform).isBrowser;
331
- constructor() {
332
- super();
333
- const elementRef = inject(ElementRef);
334
- const nodeName = elementRef.nativeElement.nodeName.toLowerCase();
335
- this.orientation = nodeName === 'mat-vertical-stepper' ? 'vertical' : 'horizontal';
336
- }
337
- ngAfterContentInit() {
338
- super.ngAfterContentInit();
339
- this._icons.forEach(({ name, templateRef }) => (this._iconOverrides[name] = templateRef));
340
- // Mark the component for change detection whenever the content children query changes
341
- this.steps.changes.pipe(takeUntil(this._destroyed)).subscribe(() => this._stateChanged());
342
- // Transition events won't fire if animations are disabled so we simulate them.
343
- this.selectedIndexChange.pipe(takeUntil(this._destroyed)).subscribe(() => {
344
- const duration = this._getAnimationDuration();
345
- if (duration === '0ms' || duration === '0s') {
346
- this._onAnimationDone();
347
- }
348
- else {
349
- this._isAnimating.set(true);
350
- }
351
- });
352
- this._ngZone.runOutsideAngular(() => {
353
- if (!this._animationsDisabled) {
354
- setTimeout(() => {
355
- // Delay enabling the animations so we don't animate the initial state.
356
- this._elementRef.nativeElement.classList.add('mat-stepper-animations-enabled');
357
- // Bind this outside the zone since it fires for all transitions inside the stepper.
358
- this._cleanupTransition = this._renderer.listen(this._elementRef.nativeElement, 'transitionend', this._handleTransitionend);
359
- }, 200);
360
- }
361
- });
362
- }
363
- ngAfterViewInit() {
364
- super.ngAfterViewInit();
365
- // Prior to #30314 the stepper had animation `done` events bound to each animated container.
366
- // The animations module was firing them on initialization and for each subsequent animation.
367
- // Since the events were bound in the template, it had the unintended side-effect of triggering
368
- // change detection as well. It appears that this side-effect ended up being load-bearing,
369
- // because it was ensuring that the content elements (e.g. `matStepLabel`) that are defined
370
- // in sub-components actually get picked up in a timely fashion. This subscription simulates
371
- // the same change detection by using `queueMicrotask` similarly to the animations module.
372
- if (typeof queueMicrotask === 'function') {
373
- let hasEmittedInitial = false;
374
- this._animatedContainers.changes
375
- .pipe(startWith(null), takeUntil(this._destroyed))
376
- .subscribe(() => queueMicrotask(() => {
377
- // Simulate the initial `animationDone` event
378
- // that gets emitted by the animations module.
379
- if (!hasEmittedInitial) {
380
- hasEmittedInitial = true;
381
- this.animationDone.emit();
382
- }
383
- this._stateChanged();
384
- }));
479
+ _ngZone = inject(NgZone);
480
+ _renderer = inject(Renderer2);
481
+ _animationsDisabled = _animationsDisabled();
482
+ _cleanupTransition;
483
+ _isAnimating = signal(false, ...(ngDevMode ? [{
484
+ debugName: "_isAnimating"
485
+ }] : []));
486
+ _stepHeader = undefined;
487
+ _animatedContainers;
488
+ _steps = undefined;
489
+ steps = new QueryList();
490
+ _icons;
491
+ animationDone = new EventEmitter();
492
+ disableRipple;
493
+ color;
494
+ labelPosition = 'end';
495
+ headerPosition = 'top';
496
+ _iconOverrides = {};
497
+ get animationDuration() {
498
+ return this._animationDuration;
499
+ }
500
+ set animationDuration(value) {
501
+ this._animationDuration = /^\d+$/.test(value) ? value + 'ms' : value;
502
+ }
503
+ _animationDuration = '';
504
+ _isServer = !inject(Platform).isBrowser;
505
+ constructor() {
506
+ super();
507
+ const elementRef = inject(ElementRef);
508
+ const nodeName = elementRef.nativeElement.nodeName.toLowerCase();
509
+ this.orientation = nodeName === 'mat-vertical-stepper' ? 'vertical' : 'horizontal';
510
+ }
511
+ ngAfterContentInit() {
512
+ super.ngAfterContentInit();
513
+ this._icons.forEach(({
514
+ name,
515
+ templateRef
516
+ }) => this._iconOverrides[name] = templateRef);
517
+ this.steps.changes.pipe(takeUntil(this._destroyed)).subscribe(() => this._stateChanged());
518
+ this.selectedIndexChange.pipe(takeUntil(this._destroyed)).subscribe(() => {
519
+ const duration = this._getAnimationDuration();
520
+ if (duration === '0ms' || duration === '0s') {
521
+ this._onAnimationDone();
522
+ } else {
523
+ this._isAnimating.set(true);
524
+ }
525
+ });
526
+ this._ngZone.runOutsideAngular(() => {
527
+ if (!this._animationsDisabled) {
528
+ setTimeout(() => {
529
+ this._elementRef.nativeElement.classList.add('mat-stepper-animations-enabled');
530
+ this._cleanupTransition = this._renderer.listen(this._elementRef.nativeElement, 'transitionend', this._handleTransitionend);
531
+ }, 200);
532
+ }
533
+ });
534
+ }
535
+ ngAfterViewInit() {
536
+ super.ngAfterViewInit();
537
+ if (typeof queueMicrotask === 'function') {
538
+ let hasEmittedInitial = false;
539
+ this._animatedContainers.changes.pipe(startWith(null), takeUntil(this._destroyed)).subscribe(() => queueMicrotask(() => {
540
+ if (!hasEmittedInitial) {
541
+ hasEmittedInitial = true;
542
+ this.animationDone.emit();
385
543
  }
544
+ this._stateChanged();
545
+ }));
386
546
  }
387
- ngOnDestroy() {
388
- super.ngOnDestroy();
389
- this._cleanupTransition?.();
547
+ }
548
+ ngOnDestroy() {
549
+ super.ngOnDestroy();
550
+ this._cleanupTransition?.();
551
+ }
552
+ _getAnimationDuration() {
553
+ if (this._animationsDisabled) {
554
+ return '0ms';
390
555
  }
391
- _getAnimationDuration() {
392
- if (this._animationsDisabled) {
393
- return '0ms';
394
- }
395
- if (this.animationDuration) {
396
- return this.animationDuration;
397
- }
398
- return this.orientation === 'horizontal' ? '500ms' : '225ms';
556
+ if (this.animationDuration) {
557
+ return this.animationDuration;
399
558
  }
400
- _handleTransitionend = (event) => {
401
- const target = event.target;
402
- if (!target) {
403
- return;
404
- }
405
- // Because we bind a single `transitionend` handler on the host node and because transition
406
- // events bubble, we have to filter down to only the active step so don't emit events too
407
- // often. We check the orientation and `property` name first to reduce the amount of times
408
- // we need to check the DOM.
409
- const isHorizontalActiveElement = this.orientation === 'horizontal' &&
410
- event.propertyName === 'transform' &&
411
- target.classList.contains('mat-horizontal-stepper-content-current');
412
- const isVerticalActiveElement = this.orientation === 'vertical' &&
413
- event.propertyName === 'grid-template-rows' &&
414
- target.classList.contains('mat-vertical-content-container-active');
415
- // Finally we need to ensure that the animated element is a direct descendant,
416
- // rather than one coming from a nested stepper.
417
- const shouldEmit = (isHorizontalActiveElement || isVerticalActiveElement) &&
418
- this._animatedContainers.find(ref => ref.nativeElement === target);
419
- if (shouldEmit) {
420
- this._onAnimationDone();
421
- }
422
- };
423
- _onAnimationDone() {
424
- this._isAnimating.set(false);
425
- this.animationDone.emit();
559
+ return this.orientation === 'horizontal' ? '500ms' : '225ms';
560
+ }
561
+ _handleTransitionend = event => {
562
+ const target = event.target;
563
+ if (!target) {
564
+ return;
565
+ }
566
+ const isHorizontalActiveElement = this.orientation === 'horizontal' && event.propertyName === 'transform' && target.classList.contains('mat-horizontal-stepper-content-current');
567
+ const isVerticalActiveElement = this.orientation === 'vertical' && event.propertyName === 'grid-template-rows' && target.classList.contains('mat-vertical-content-container-active');
568
+ const shouldEmit = (isHorizontalActiveElement || isVerticalActiveElement) && this._animatedContainers.find(ref => ref.nativeElement === target);
569
+ if (shouldEmit) {
570
+ this._onAnimationDone();
426
571
  }
427
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: MatStepper, deps: [], target: i0.ɵɵFactoryTarget.Component });
428
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.2.0-next.2", type: MatStepper, isStandalone: true, selector: "mat-stepper, mat-vertical-stepper, mat-horizontal-stepper, [matStepper]", inputs: { disableRipple: "disableRipple", color: "color", labelPosition: "labelPosition", headerPosition: "headerPosition", animationDuration: "animationDuration" }, outputs: { animationDone: "animationDone" }, host: { properties: { "class.mat-stepper-horizontal": "orientation === \"horizontal\"", "class.mat-stepper-vertical": "orientation === \"vertical\"", "class.mat-stepper-label-position-end": "orientation === \"horizontal\" && labelPosition == \"end\"", "class.mat-stepper-label-position-bottom": "orientation === \"horizontal\" && labelPosition == \"bottom\"", "class.mat-stepper-header-position-bottom": "headerPosition === \"bottom\"", "class.mat-stepper-animating": "_isAnimating()", "style.--mat-stepper-animation-duration": "_getAnimationDuration()" } }, providers: [{ provide: CdkStepper, useExisting: MatStepper }], queries: [{ propertyName: "_steps", predicate: MatStep, descendants: true }, { propertyName: "_icons", predicate: MatStepperIcon, descendants: true }], viewQueries: [{ propertyName: "_stepHeader", predicate: MatStepHeader, descendants: true }, { propertyName: "_animatedContainers", predicate: ["animatedContainer"], descendants: true }], exportAs: ["matStepper", "matVerticalStepper", "matHorizontalStepper"], usesInheritance: true, ngImport: i0, template: "<!--\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", styles: [".mat-stepper-vertical,.mat-stepper-horizontal{display:block;font-family:var(--mat-stepper-container-text-font, var(--mat-sys-body-medium-font));background:var(--mat-stepper-container-color, var(--mat-sys-surface))}.mat-horizontal-stepper-header-container{white-space:nowrap;display:flex;align-items:center}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header-container{align-items:flex-start}.mat-stepper-header-position-bottom .mat-horizontal-stepper-header-container{order:1}.mat-stepper-horizontal-line{border-top-width:1px;border-top-style:solid;flex:auto;height:0;margin:0 -16px;min-width:32px;border-top-color:var(--mat-stepper-line-color, var(--mat-sys-outline))}.mat-stepper-label-position-bottom .mat-stepper-horizontal-line{margin:0;min-width:0;position:relative;top:calc(calc((var(--mat-stepper-header-height, 72px) - 24px) / 2) + 12px)}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:first-child)::before,[dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:last-child)::before,.mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:last-child)::after,[dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:first-child)::after{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px)}.mat-horizontal-stepper-header{display:flex;overflow:hidden;align-items:center;padding:0 24px;height:var(--mat-stepper-header-height, 72px)}.mat-horizontal-stepper-header .mat-step-icon{margin-right:8px;flex:none}[dir=rtl] .mat-horizontal-stepper-header .mat-step-icon{margin-right:0;margin-left:8px}.mat-horizontal-stepper-header.mat-step-header-empty-label .mat-step-icon{margin:0}.mat-horizontal-stepper-header::before,.mat-horizontal-stepper-header::after{border-top-color:var(--mat-stepper-line-color, var(--mat-sys-outline))}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header{padding:calc((var(--mat-stepper-header-height, 72px) - 24px) / 2) 24px}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header::before,.mat-stepper-label-position-bottom .mat-horizontal-stepper-header::after{top:calc(calc((var(--mat-stepper-header-height, 72px) - 24px) / 2) + 12px)}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header{box-sizing:border-box;flex-direction:column;height:auto}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:last-child)::after,[dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:first-child)::after{right:0}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:first-child)::before,[dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:last-child)::before{left:0}[dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:last-child::before,[dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:first-child::after{display:none}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header .mat-step-icon{margin-right:0;margin-left:0}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header .mat-step-label{padding:16px 0 0 0;text-align:center;width:100%}.mat-vertical-stepper-header{display:flex;align-items:center;height:24px;padding:calc((var(--mat-stepper-header-height, 72px) - 24px) / 2) 24px}.mat-vertical-stepper-header .mat-step-icon{margin-right:12px}[dir=rtl] .mat-vertical-stepper-header .mat-step-icon{margin-right:0;margin-left:12px}.mat-horizontal-stepper-wrapper{display:flex;flex-direction:column}.mat-horizontal-stepper-content{visibility:hidden;overflow:hidden;outline:0;height:0}.mat-stepper-animations-enabled .mat-horizontal-stepper-content{transition:transform var(--mat-stepper-animation-duration, 0) cubic-bezier(0.35, 0, 0.25, 1)}.mat-horizontal-stepper-content.mat-horizontal-stepper-content-previous{transform:translate3d(-100%, 0, 0)}.mat-horizontal-stepper-content.mat-horizontal-stepper-content-next{transform:translate3d(100%, 0, 0)}.mat-horizontal-stepper-content.mat-horizontal-stepper-content-current{visibility:visible;transform:none;height:auto}.mat-stepper-horizontal:not(.mat-stepper-animating) .mat-horizontal-stepper-content.mat-horizontal-stepper-content-current{overflow:visible}.mat-horizontal-content-container{overflow:hidden;padding:0 24px 24px 24px}@media(forced-colors: active){.mat-horizontal-content-container{outline:solid 1px}}.mat-stepper-header-position-bottom .mat-horizontal-content-container{padding:24px 24px 0 24px}.mat-vertical-content-container{display:grid;grid-template-rows:0fr;grid-template-columns:100%;margin-left:36px;border:0;position:relative}.mat-stepper-animations-enabled .mat-vertical-content-container{transition:grid-template-rows var(--mat-stepper-animation-duration, 0) cubic-bezier(0.4, 0, 0.2, 1)}.mat-vertical-content-container.mat-vertical-content-container-active{grid-template-rows:1fr}.mat-step:last-child .mat-vertical-content-container{border:none}@media(forced-colors: active){.mat-vertical-content-container{outline:solid 1px}}[dir=rtl] .mat-vertical-content-container{margin-left:0;margin-right:36px}@supports not (grid-template-rows: 0fr){.mat-vertical-content-container{height:0}.mat-vertical-content-container.mat-vertical-content-container-active{height:auto}}.mat-stepper-vertical-line::before{content:\"\";position:absolute;left:0;border-left-width:1px;border-left-style:solid;border-left-color:var(--mat-stepper-line-color, var(--mat-sys-outline));top:calc(8px - calc((var(--mat-stepper-header-height, 72px) - 24px) / 2));bottom:calc(8px - calc((var(--mat-stepper-header-height, 72px) - 24px) / 2))}[dir=rtl] .mat-stepper-vertical-line::before{left:auto;right:0}.mat-vertical-stepper-content{overflow:hidden;outline:0;visibility:hidden}.mat-stepper-animations-enabled .mat-vertical-stepper-content{transition:visibility var(--mat-stepper-animation-duration, 0) linear}.mat-vertical-content-container-active>.mat-vertical-stepper-content{visibility:visible}.mat-vertical-content{padding:0 24px 24px 24px}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: MatStepHeader, selector: "mat-step-header", inputs: ["state", "label", "errorMessage", "iconOverrides", "index", "selected", "active", "optional", "disableRipple", "color"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
572
+ };
573
+ _onAnimationDone() {
574
+ this._isAnimating.set(false);
575
+ this.animationDone.emit();
576
+ }
577
+ static ɵfac = i0.ɵɵngDeclareFactory({
578
+ minVersion: "12.0.0",
579
+ version: "20.2.0-next.2",
580
+ ngImport: i0,
581
+ type: MatStepper,
582
+ deps: [],
583
+ target: i0.ɵɵFactoryTarget.Component
584
+ });
585
+ static ɵcmp = i0.ɵɵngDeclareComponent({
586
+ minVersion: "17.0.0",
587
+ version: "20.2.0-next.2",
588
+ type: MatStepper,
589
+ isStandalone: true,
590
+ selector: "mat-stepper, mat-vertical-stepper, mat-horizontal-stepper, [matStepper]",
591
+ inputs: {
592
+ disableRipple: "disableRipple",
593
+ color: "color",
594
+ labelPosition: "labelPosition",
595
+ headerPosition: "headerPosition",
596
+ animationDuration: "animationDuration"
597
+ },
598
+ outputs: {
599
+ animationDone: "animationDone"
600
+ },
601
+ host: {
602
+ properties: {
603
+ "class.mat-stepper-horizontal": "orientation === \"horizontal\"",
604
+ "class.mat-stepper-vertical": "orientation === \"vertical\"",
605
+ "class.mat-stepper-label-position-end": "orientation === \"horizontal\" && labelPosition == \"end\"",
606
+ "class.mat-stepper-label-position-bottom": "orientation === \"horizontal\" && labelPosition == \"bottom\"",
607
+ "class.mat-stepper-header-position-bottom": "headerPosition === \"bottom\"",
608
+ "class.mat-stepper-animating": "_isAnimating()",
609
+ "style.--mat-stepper-animation-duration": "_getAnimationDuration()"
610
+ }
611
+ },
612
+ providers: [{
613
+ provide: CdkStepper,
614
+ useExisting: MatStepper
615
+ }],
616
+ queries: [{
617
+ propertyName: "_steps",
618
+ predicate: MatStep,
619
+ descendants: true
620
+ }, {
621
+ propertyName: "_icons",
622
+ predicate: MatStepperIcon,
623
+ descendants: true
624
+ }],
625
+ viewQueries: [{
626
+ propertyName: "_stepHeader",
627
+ predicate: MatStepHeader,
628
+ descendants: true
629
+ }, {
630
+ propertyName: "_animatedContainers",
631
+ predicate: ["animatedContainer"],
632
+ descendants: true
633
+ }],
634
+ exportAs: ["matStepper", "matVerticalStepper", "matHorizontalStepper"],
635
+ usesInheritance: true,
636
+ ngImport: i0,
637
+ template: "<!--\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",
638
+ styles: [".mat-stepper-vertical,.mat-stepper-horizontal{display:block;font-family:var(--mat-stepper-container-text-font, var(--mat-sys-body-medium-font));background:var(--mat-stepper-container-color, var(--mat-sys-surface))}.mat-horizontal-stepper-header-container{white-space:nowrap;display:flex;align-items:center}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header-container{align-items:flex-start}.mat-stepper-header-position-bottom .mat-horizontal-stepper-header-container{order:1}.mat-stepper-horizontal-line{border-top-width:1px;border-top-style:solid;flex:auto;height:0;margin:0 -16px;min-width:32px;border-top-color:var(--mat-stepper-line-color, var(--mat-sys-outline))}.mat-stepper-label-position-bottom .mat-stepper-horizontal-line{margin:0;min-width:0;position:relative;top:calc(calc((var(--mat-stepper-header-height, 72px) - 24px) / 2) + 12px)}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:first-child)::before,[dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:last-child)::before,.mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:last-child)::after,[dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:first-child)::after{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px)}.mat-horizontal-stepper-header{display:flex;overflow:hidden;align-items:center;padding:0 24px;height:var(--mat-stepper-header-height, 72px)}.mat-horizontal-stepper-header .mat-step-icon{margin-right:8px;flex:none}[dir=rtl] .mat-horizontal-stepper-header .mat-step-icon{margin-right:0;margin-left:8px}.mat-horizontal-stepper-header.mat-step-header-empty-label .mat-step-icon{margin:0}.mat-horizontal-stepper-header::before,.mat-horizontal-stepper-header::after{border-top-color:var(--mat-stepper-line-color, var(--mat-sys-outline))}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header{padding:calc((var(--mat-stepper-header-height, 72px) - 24px) / 2) 24px}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header::before,.mat-stepper-label-position-bottom .mat-horizontal-stepper-header::after{top:calc(calc((var(--mat-stepper-header-height, 72px) - 24px) / 2) + 12px)}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header{box-sizing:border-box;flex-direction:column;height:auto}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:last-child)::after,[dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:first-child)::after{right:0}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:first-child)::before,[dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:last-child)::before{left:0}[dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:last-child::before,[dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:first-child::after{display:none}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header .mat-step-icon{margin-right:0;margin-left:0}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header .mat-step-label{padding:16px 0 0 0;text-align:center;width:100%}.mat-vertical-stepper-header{display:flex;align-items:center;height:24px;padding:calc((var(--mat-stepper-header-height, 72px) - 24px) / 2) 24px}.mat-vertical-stepper-header .mat-step-icon{margin-right:12px}[dir=rtl] .mat-vertical-stepper-header .mat-step-icon{margin-right:0;margin-left:12px}.mat-horizontal-stepper-wrapper{display:flex;flex-direction:column}.mat-horizontal-stepper-content{visibility:hidden;overflow:hidden;outline:0;height:0}.mat-stepper-animations-enabled .mat-horizontal-stepper-content{transition:transform var(--mat-stepper-animation-duration, 0) cubic-bezier(0.35, 0, 0.25, 1)}.mat-horizontal-stepper-content.mat-horizontal-stepper-content-previous{transform:translate3d(-100%, 0, 0)}.mat-horizontal-stepper-content.mat-horizontal-stepper-content-next{transform:translate3d(100%, 0, 0)}.mat-horizontal-stepper-content.mat-horizontal-stepper-content-current{visibility:visible;transform:none;height:auto}.mat-stepper-horizontal:not(.mat-stepper-animating) .mat-horizontal-stepper-content.mat-horizontal-stepper-content-current{overflow:visible}.mat-horizontal-content-container{overflow:hidden;padding:0 24px 24px 24px}@media(forced-colors: active){.mat-horizontal-content-container{outline:solid 1px}}.mat-stepper-header-position-bottom .mat-horizontal-content-container{padding:24px 24px 0 24px}.mat-vertical-content-container{display:grid;grid-template-rows:0fr;grid-template-columns:100%;margin-left:36px;border:0;position:relative}.mat-stepper-animations-enabled .mat-vertical-content-container{transition:grid-template-rows var(--mat-stepper-animation-duration, 0) cubic-bezier(0.4, 0, 0.2, 1)}.mat-vertical-content-container.mat-vertical-content-container-active{grid-template-rows:1fr}.mat-step:last-child .mat-vertical-content-container{border:none}@media(forced-colors: active){.mat-vertical-content-container{outline:solid 1px}}[dir=rtl] .mat-vertical-content-container{margin-left:0;margin-right:36px}@supports not (grid-template-rows: 0fr){.mat-vertical-content-container{height:0}.mat-vertical-content-container.mat-vertical-content-container-active{height:auto}}.mat-stepper-vertical-line::before{content:\"\";position:absolute;left:0;border-left-width:1px;border-left-style:solid;border-left-color:var(--mat-stepper-line-color, var(--mat-sys-outline));top:calc(8px - calc((var(--mat-stepper-header-height, 72px) - 24px) / 2));bottom:calc(8px - calc((var(--mat-stepper-header-height, 72px) - 24px) / 2))}[dir=rtl] .mat-stepper-vertical-line::before{left:auto;right:0}.mat-vertical-stepper-content{overflow:hidden;outline:0;visibility:hidden}.mat-stepper-animations-enabled .mat-vertical-stepper-content{transition:visibility var(--mat-stepper-animation-duration, 0) linear}.mat-vertical-content-container-active>.mat-vertical-stepper-content{visibility:visible}.mat-vertical-content{padding:0 24px 24px 24px}\n"],
639
+ dependencies: [{
640
+ kind: "directive",
641
+ type: NgTemplateOutlet,
642
+ selector: "[ngTemplateOutlet]",
643
+ inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"]
644
+ }, {
645
+ kind: "component",
646
+ type: MatStepHeader,
647
+ selector: "mat-step-header",
648
+ inputs: ["state", "label", "errorMessage", "iconOverrides", "index", "selected", "active", "optional", "disableRipple", "color"]
649
+ }],
650
+ changeDetection: i0.ChangeDetectionStrategy.OnPush,
651
+ encapsulation: i0.ViewEncapsulation.None
652
+ });
429
653
  }
430
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: MatStepper, decorators: [{
431
- type: Component,
432
- args: [{ selector: 'mat-stepper, mat-vertical-stepper, mat-horizontal-stepper, [matStepper]', exportAs: 'matStepper, matVerticalStepper, matHorizontalStepper', host: {
433
- '[class.mat-stepper-horizontal]': 'orientation === "horizontal"',
434
- '[class.mat-stepper-vertical]': 'orientation === "vertical"',
435
- '[class.mat-stepper-label-position-end]': 'orientation === "horizontal" && labelPosition == "end"',
436
- '[class.mat-stepper-label-position-bottom]': 'orientation === "horizontal" && labelPosition == "bottom"',
437
- '[class.mat-stepper-header-position-bottom]': 'headerPosition === "bottom"',
438
- '[class.mat-stepper-animating]': '_isAnimating()',
439
- '[style.--mat-stepper-animation-duration]': '_getAnimationDuration()',
440
- }, providers: [{ provide: CdkStepper, useExisting: MatStepper }], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, imports: [NgTemplateOutlet, MatStepHeader], template: "<!--\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", styles: [".mat-stepper-vertical,.mat-stepper-horizontal{display:block;font-family:var(--mat-stepper-container-text-font, var(--mat-sys-body-medium-font));background:var(--mat-stepper-container-color, var(--mat-sys-surface))}.mat-horizontal-stepper-header-container{white-space:nowrap;display:flex;align-items:center}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header-container{align-items:flex-start}.mat-stepper-header-position-bottom .mat-horizontal-stepper-header-container{order:1}.mat-stepper-horizontal-line{border-top-width:1px;border-top-style:solid;flex:auto;height:0;margin:0 -16px;min-width:32px;border-top-color:var(--mat-stepper-line-color, var(--mat-sys-outline))}.mat-stepper-label-position-bottom .mat-stepper-horizontal-line{margin:0;min-width:0;position:relative;top:calc(calc((var(--mat-stepper-header-height, 72px) - 24px) / 2) + 12px)}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:first-child)::before,[dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:last-child)::before,.mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:last-child)::after,[dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:first-child)::after{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px)}.mat-horizontal-stepper-header{display:flex;overflow:hidden;align-items:center;padding:0 24px;height:var(--mat-stepper-header-height, 72px)}.mat-horizontal-stepper-header .mat-step-icon{margin-right:8px;flex:none}[dir=rtl] .mat-horizontal-stepper-header .mat-step-icon{margin-right:0;margin-left:8px}.mat-horizontal-stepper-header.mat-step-header-empty-label .mat-step-icon{margin:0}.mat-horizontal-stepper-header::before,.mat-horizontal-stepper-header::after{border-top-color:var(--mat-stepper-line-color, var(--mat-sys-outline))}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header{padding:calc((var(--mat-stepper-header-height, 72px) - 24px) / 2) 24px}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header::before,.mat-stepper-label-position-bottom .mat-horizontal-stepper-header::after{top:calc(calc((var(--mat-stepper-header-height, 72px) - 24px) / 2) + 12px)}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header{box-sizing:border-box;flex-direction:column;height:auto}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:last-child)::after,[dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:first-child)::after{right:0}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:first-child)::before,[dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:last-child)::before{left:0}[dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:last-child::before,[dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:first-child::after{display:none}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header .mat-step-icon{margin-right:0;margin-left:0}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header .mat-step-label{padding:16px 0 0 0;text-align:center;width:100%}.mat-vertical-stepper-header{display:flex;align-items:center;height:24px;padding:calc((var(--mat-stepper-header-height, 72px) - 24px) / 2) 24px}.mat-vertical-stepper-header .mat-step-icon{margin-right:12px}[dir=rtl] .mat-vertical-stepper-header .mat-step-icon{margin-right:0;margin-left:12px}.mat-horizontal-stepper-wrapper{display:flex;flex-direction:column}.mat-horizontal-stepper-content{visibility:hidden;overflow:hidden;outline:0;height:0}.mat-stepper-animations-enabled .mat-horizontal-stepper-content{transition:transform var(--mat-stepper-animation-duration, 0) cubic-bezier(0.35, 0, 0.25, 1)}.mat-horizontal-stepper-content.mat-horizontal-stepper-content-previous{transform:translate3d(-100%, 0, 0)}.mat-horizontal-stepper-content.mat-horizontal-stepper-content-next{transform:translate3d(100%, 0, 0)}.mat-horizontal-stepper-content.mat-horizontal-stepper-content-current{visibility:visible;transform:none;height:auto}.mat-stepper-horizontal:not(.mat-stepper-animating) .mat-horizontal-stepper-content.mat-horizontal-stepper-content-current{overflow:visible}.mat-horizontal-content-container{overflow:hidden;padding:0 24px 24px 24px}@media(forced-colors: active){.mat-horizontal-content-container{outline:solid 1px}}.mat-stepper-header-position-bottom .mat-horizontal-content-container{padding:24px 24px 0 24px}.mat-vertical-content-container{display:grid;grid-template-rows:0fr;grid-template-columns:100%;margin-left:36px;border:0;position:relative}.mat-stepper-animations-enabled .mat-vertical-content-container{transition:grid-template-rows var(--mat-stepper-animation-duration, 0) cubic-bezier(0.4, 0, 0.2, 1)}.mat-vertical-content-container.mat-vertical-content-container-active{grid-template-rows:1fr}.mat-step:last-child .mat-vertical-content-container{border:none}@media(forced-colors: active){.mat-vertical-content-container{outline:solid 1px}}[dir=rtl] .mat-vertical-content-container{margin-left:0;margin-right:36px}@supports not (grid-template-rows: 0fr){.mat-vertical-content-container{height:0}.mat-vertical-content-container.mat-vertical-content-container-active{height:auto}}.mat-stepper-vertical-line::before{content:\"\";position:absolute;left:0;border-left-width:1px;border-left-style:solid;border-left-color:var(--mat-stepper-line-color, var(--mat-sys-outline));top:calc(8px - calc((var(--mat-stepper-header-height, 72px) - 24px) / 2));bottom:calc(8px - calc((var(--mat-stepper-header-height, 72px) - 24px) / 2))}[dir=rtl] .mat-stepper-vertical-line::before{left:auto;right:0}.mat-vertical-stepper-content{overflow:hidden;outline:0;visibility:hidden}.mat-stepper-animations-enabled .mat-vertical-stepper-content{transition:visibility var(--mat-stepper-animation-duration, 0) linear}.mat-vertical-content-container-active>.mat-vertical-stepper-content{visibility:visible}.mat-vertical-content{padding:0 24px 24px 24px}\n"] }]
441
- }], ctorParameters: () => [], propDecorators: { _stepHeader: [{
442
- type: ViewChildren,
443
- args: [MatStepHeader]
444
- }], _animatedContainers: [{
445
- type: ViewChildren,
446
- args: ['animatedContainer']
447
- }], _steps: [{
448
- type: ContentChildren,
449
- args: [MatStep, { descendants: true }]
450
- }], _icons: [{
451
- type: ContentChildren,
452
- args: [MatStepperIcon, { descendants: true }]
453
- }], animationDone: [{
454
- type: Output
455
- }], disableRipple: [{
456
- type: Input
457
- }], color: [{
458
- type: Input
459
- }], labelPosition: [{
460
- type: Input
461
- }], headerPosition: [{
462
- type: Input
463
- }], animationDuration: [{
464
- type: Input
465
- }] } });
654
+ i0.ɵɵngDeclareClassMetadata({
655
+ minVersion: "12.0.0",
656
+ version: "20.2.0-next.2",
657
+ ngImport: i0,
658
+ type: MatStepper,
659
+ decorators: [{
660
+ type: Component,
661
+ args: [{
662
+ selector: 'mat-stepper, mat-vertical-stepper, mat-horizontal-stepper, [matStepper]',
663
+ exportAs: 'matStepper, matVerticalStepper, matHorizontalStepper',
664
+ host: {
665
+ '[class.mat-stepper-horizontal]': 'orientation === "horizontal"',
666
+ '[class.mat-stepper-vertical]': 'orientation === "vertical"',
667
+ '[class.mat-stepper-label-position-end]': 'orientation === "horizontal" && labelPosition == "end"',
668
+ '[class.mat-stepper-label-position-bottom]': 'orientation === "horizontal" && labelPosition == "bottom"',
669
+ '[class.mat-stepper-header-position-bottom]': 'headerPosition === "bottom"',
670
+ '[class.mat-stepper-animating]': '_isAnimating()',
671
+ '[style.--mat-stepper-animation-duration]': '_getAnimationDuration()'
672
+ },
673
+ providers: [{
674
+ provide: CdkStepper,
675
+ useExisting: MatStepper
676
+ }],
677
+ encapsulation: ViewEncapsulation.None,
678
+ changeDetection: ChangeDetectionStrategy.OnPush,
679
+ imports: [NgTemplateOutlet, MatStepHeader],
680
+ template: "<!--\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",
681
+ styles: [".mat-stepper-vertical,.mat-stepper-horizontal{display:block;font-family:var(--mat-stepper-container-text-font, var(--mat-sys-body-medium-font));background:var(--mat-stepper-container-color, var(--mat-sys-surface))}.mat-horizontal-stepper-header-container{white-space:nowrap;display:flex;align-items:center}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header-container{align-items:flex-start}.mat-stepper-header-position-bottom .mat-horizontal-stepper-header-container{order:1}.mat-stepper-horizontal-line{border-top-width:1px;border-top-style:solid;flex:auto;height:0;margin:0 -16px;min-width:32px;border-top-color:var(--mat-stepper-line-color, var(--mat-sys-outline))}.mat-stepper-label-position-bottom .mat-stepper-horizontal-line{margin:0;min-width:0;position:relative;top:calc(calc((var(--mat-stepper-header-height, 72px) - 24px) / 2) + 12px)}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:first-child)::before,[dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:last-child)::before,.mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:last-child)::after,[dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:first-child)::after{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px)}.mat-horizontal-stepper-header{display:flex;overflow:hidden;align-items:center;padding:0 24px;height:var(--mat-stepper-header-height, 72px)}.mat-horizontal-stepper-header .mat-step-icon{margin-right:8px;flex:none}[dir=rtl] .mat-horizontal-stepper-header .mat-step-icon{margin-right:0;margin-left:8px}.mat-horizontal-stepper-header.mat-step-header-empty-label .mat-step-icon{margin:0}.mat-horizontal-stepper-header::before,.mat-horizontal-stepper-header::after{border-top-color:var(--mat-stepper-line-color, var(--mat-sys-outline))}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header{padding:calc((var(--mat-stepper-header-height, 72px) - 24px) / 2) 24px}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header::before,.mat-stepper-label-position-bottom .mat-horizontal-stepper-header::after{top:calc(calc((var(--mat-stepper-header-height, 72px) - 24px) / 2) + 12px)}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header{box-sizing:border-box;flex-direction:column;height:auto}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:last-child)::after,[dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:first-child)::after{right:0}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:first-child)::before,[dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:last-child)::before{left:0}[dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:last-child::before,[dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:first-child::after{display:none}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header .mat-step-icon{margin-right:0;margin-left:0}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header .mat-step-label{padding:16px 0 0 0;text-align:center;width:100%}.mat-vertical-stepper-header{display:flex;align-items:center;height:24px;padding:calc((var(--mat-stepper-header-height, 72px) - 24px) / 2) 24px}.mat-vertical-stepper-header .mat-step-icon{margin-right:12px}[dir=rtl] .mat-vertical-stepper-header .mat-step-icon{margin-right:0;margin-left:12px}.mat-horizontal-stepper-wrapper{display:flex;flex-direction:column}.mat-horizontal-stepper-content{visibility:hidden;overflow:hidden;outline:0;height:0}.mat-stepper-animations-enabled .mat-horizontal-stepper-content{transition:transform var(--mat-stepper-animation-duration, 0) cubic-bezier(0.35, 0, 0.25, 1)}.mat-horizontal-stepper-content.mat-horizontal-stepper-content-previous{transform:translate3d(-100%, 0, 0)}.mat-horizontal-stepper-content.mat-horizontal-stepper-content-next{transform:translate3d(100%, 0, 0)}.mat-horizontal-stepper-content.mat-horizontal-stepper-content-current{visibility:visible;transform:none;height:auto}.mat-stepper-horizontal:not(.mat-stepper-animating) .mat-horizontal-stepper-content.mat-horizontal-stepper-content-current{overflow:visible}.mat-horizontal-content-container{overflow:hidden;padding:0 24px 24px 24px}@media(forced-colors: active){.mat-horizontal-content-container{outline:solid 1px}}.mat-stepper-header-position-bottom .mat-horizontal-content-container{padding:24px 24px 0 24px}.mat-vertical-content-container{display:grid;grid-template-rows:0fr;grid-template-columns:100%;margin-left:36px;border:0;position:relative}.mat-stepper-animations-enabled .mat-vertical-content-container{transition:grid-template-rows var(--mat-stepper-animation-duration, 0) cubic-bezier(0.4, 0, 0.2, 1)}.mat-vertical-content-container.mat-vertical-content-container-active{grid-template-rows:1fr}.mat-step:last-child .mat-vertical-content-container{border:none}@media(forced-colors: active){.mat-vertical-content-container{outline:solid 1px}}[dir=rtl] .mat-vertical-content-container{margin-left:0;margin-right:36px}@supports not (grid-template-rows: 0fr){.mat-vertical-content-container{height:0}.mat-vertical-content-container.mat-vertical-content-container-active{height:auto}}.mat-stepper-vertical-line::before{content:\"\";position:absolute;left:0;border-left-width:1px;border-left-style:solid;border-left-color:var(--mat-stepper-line-color, var(--mat-sys-outline));top:calc(8px - calc((var(--mat-stepper-header-height, 72px) - 24px) / 2));bottom:calc(8px - calc((var(--mat-stepper-header-height, 72px) - 24px) / 2))}[dir=rtl] .mat-stepper-vertical-line::before{left:auto;right:0}.mat-vertical-stepper-content{overflow:hidden;outline:0;visibility:hidden}.mat-stepper-animations-enabled .mat-vertical-stepper-content{transition:visibility var(--mat-stepper-animation-duration, 0) linear}.mat-vertical-content-container-active>.mat-vertical-stepper-content{visibility:visible}.mat-vertical-content{padding:0 24px 24px 24px}\n"]
682
+ }]
683
+ }],
684
+ ctorParameters: () => [],
685
+ propDecorators: {
686
+ _stepHeader: [{
687
+ type: ViewChildren,
688
+ args: [MatStepHeader]
689
+ }],
690
+ _animatedContainers: [{
691
+ type: ViewChildren,
692
+ args: ['animatedContainer']
693
+ }],
694
+ _steps: [{
695
+ type: ContentChildren,
696
+ args: [MatStep, {
697
+ descendants: true
698
+ }]
699
+ }],
700
+ _icons: [{
701
+ type: ContentChildren,
702
+ args: [MatStepperIcon, {
703
+ descendants: true
704
+ }]
705
+ }],
706
+ animationDone: [{
707
+ type: Output
708
+ }],
709
+ disableRipple: [{
710
+ type: Input
711
+ }],
712
+ color: [{
713
+ type: Input
714
+ }],
715
+ labelPosition: [{
716
+ type: Input
717
+ }],
718
+ headerPosition: [{
719
+ type: Input
720
+ }],
721
+ animationDuration: [{
722
+ type: Input
723
+ }]
724
+ }
725
+ });
466
726
 
467
- /** Button that moves to the next step in a stepper workflow. */
468
727
  class MatStepperNext extends CdkStepperNext {
469
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: MatStepperNext, deps: null, target: i0.ɵɵFactoryTarget.Directive });
470
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.2.0-next.2", type: MatStepperNext, isStandalone: true, selector: "button[matStepperNext]", host: { properties: { "type": "type" }, classAttribute: "mat-stepper-next" }, usesInheritance: true, ngImport: i0 });
728
+ static ɵfac = i0.ɵɵngDeclareFactory({
729
+ minVersion: "12.0.0",
730
+ version: "20.2.0-next.2",
731
+ ngImport: i0,
732
+ type: MatStepperNext,
733
+ deps: null,
734
+ target: i0.ɵɵFactoryTarget.Directive
735
+ });
736
+ static ɵdir = i0.ɵɵngDeclareDirective({
737
+ minVersion: "14.0.0",
738
+ version: "20.2.0-next.2",
739
+ type: MatStepperNext,
740
+ isStandalone: true,
741
+ selector: "button[matStepperNext]",
742
+ host: {
743
+ properties: {
744
+ "type": "type"
745
+ },
746
+ classAttribute: "mat-stepper-next"
747
+ },
748
+ usesInheritance: true,
749
+ ngImport: i0
750
+ });
471
751
  }
472
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: MatStepperNext, decorators: [{
473
- type: Directive,
474
- args: [{
475
- selector: 'button[matStepperNext]',
476
- host: {
477
- 'class': 'mat-stepper-next',
478
- '[type]': 'type',
479
- },
480
- }]
481
- }] });
482
- /** Button that moves to the previous step in a stepper workflow. */
752
+ i0.ɵɵngDeclareClassMetadata({
753
+ minVersion: "12.0.0",
754
+ version: "20.2.0-next.2",
755
+ ngImport: i0,
756
+ type: MatStepperNext,
757
+ decorators: [{
758
+ type: Directive,
759
+ args: [{
760
+ selector: 'button[matStepperNext]',
761
+ host: {
762
+ 'class': 'mat-stepper-next',
763
+ '[type]': 'type'
764
+ }
765
+ }]
766
+ }]
767
+ });
483
768
  class MatStepperPrevious extends CdkStepperPrevious {
484
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: MatStepperPrevious, deps: null, target: i0.ɵɵFactoryTarget.Directive });
485
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.2.0-next.2", type: MatStepperPrevious, isStandalone: true, selector: "button[matStepperPrevious]", host: { properties: { "type": "type" }, classAttribute: "mat-stepper-previous" }, usesInheritance: true, ngImport: i0 });
769
+ static ɵfac = i0.ɵɵngDeclareFactory({
770
+ minVersion: "12.0.0",
771
+ version: "20.2.0-next.2",
772
+ ngImport: i0,
773
+ type: MatStepperPrevious,
774
+ deps: null,
775
+ target: i0.ɵɵFactoryTarget.Directive
776
+ });
777
+ static ɵdir = i0.ɵɵngDeclareDirective({
778
+ minVersion: "14.0.0",
779
+ version: "20.2.0-next.2",
780
+ type: MatStepperPrevious,
781
+ isStandalone: true,
782
+ selector: "button[matStepperPrevious]",
783
+ host: {
784
+ properties: {
785
+ "type": "type"
786
+ },
787
+ classAttribute: "mat-stepper-previous"
788
+ },
789
+ usesInheritance: true,
790
+ ngImport: i0
791
+ });
486
792
  }
487
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: MatStepperPrevious, decorators: [{
488
- type: Directive,
489
- args: [{
490
- selector: 'button[matStepperPrevious]',
491
- host: {
492
- 'class': 'mat-stepper-previous',
493
- '[type]': 'type',
494
- },
495
- }]
496
- }] });
793
+ i0.ɵɵngDeclareClassMetadata({
794
+ minVersion: "12.0.0",
795
+ version: "20.2.0-next.2",
796
+ ngImport: i0,
797
+ type: MatStepperPrevious,
798
+ decorators: [{
799
+ type: Directive,
800
+ args: [{
801
+ selector: 'button[matStepperPrevious]',
802
+ host: {
803
+ 'class': 'mat-stepper-previous',
804
+ '[type]': 'type'
805
+ }
806
+ }]
807
+ }]
808
+ });
497
809
 
498
810
  class MatStepperModule {
499
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: MatStepperModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
500
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.2.0-next.2", ngImport: i0, type: MatStepperModule, imports: [PortalModule,
501
- CdkStepperModule,
502
- MatIconModule,
503
- MatRippleModule,
504
- MatStep,
505
- MatStepLabel,
506
- MatStepper,
507
- MatStepperNext,
508
- MatStepperPrevious,
509
- MatStepHeader,
510
- MatStepperIcon,
511
- MatStepContent], exports: [BidiModule,
512
- MatStep,
513
- MatStepLabel,
514
- MatStepper,
515
- MatStepperNext,
516
- MatStepperPrevious,
517
- MatStepHeader,
518
- MatStepperIcon,
519
- MatStepContent] });
520
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: MatStepperModule, providers: [ErrorStateMatcher], imports: [PortalModule,
521
- CdkStepperModule,
522
- MatIconModule,
523
- MatRippleModule,
524
- MatStepper,
525
- MatStepHeader, BidiModule] });
811
+ static ɵfac = i0.ɵɵngDeclareFactory({
812
+ minVersion: "12.0.0",
813
+ version: "20.2.0-next.2",
814
+ ngImport: i0,
815
+ type: MatStepperModule,
816
+ deps: [],
817
+ target: i0.ɵɵFactoryTarget.NgModule
818
+ });
819
+ static ɵmod = i0.ɵɵngDeclareNgModule({
820
+ minVersion: "14.0.0",
821
+ version: "20.2.0-next.2",
822
+ ngImport: i0,
823
+ type: MatStepperModule,
824
+ imports: [PortalModule, CdkStepperModule, MatIconModule, MatRippleModule, MatStep, MatStepLabel, MatStepper, MatStepperNext, MatStepperPrevious, MatStepHeader, MatStepperIcon, MatStepContent],
825
+ exports: [BidiModule, MatStep, MatStepLabel, MatStepper, MatStepperNext, MatStepperPrevious, MatStepHeader, MatStepperIcon, MatStepContent]
826
+ });
827
+ static ɵinj = i0.ɵɵngDeclareInjector({
828
+ minVersion: "12.0.0",
829
+ version: "20.2.0-next.2",
830
+ ngImport: i0,
831
+ type: MatStepperModule,
832
+ providers: [ErrorStateMatcher],
833
+ imports: [PortalModule, CdkStepperModule, MatIconModule, MatRippleModule, MatStepper, MatStepHeader, BidiModule]
834
+ });
526
835
  }
527
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: MatStepperModule, decorators: [{
528
- type: NgModule,
529
- args: [{
530
- imports: [
531
- PortalModule,
532
- CdkStepperModule,
533
- MatIconModule,
534
- MatRippleModule,
535
- MatStep,
536
- MatStepLabel,
537
- MatStepper,
538
- MatStepperNext,
539
- MatStepperPrevious,
540
- MatStepHeader,
541
- MatStepperIcon,
542
- MatStepContent,
543
- ],
544
- exports: [
545
- BidiModule,
546
- MatStep,
547
- MatStepLabel,
548
- MatStepper,
549
- MatStepperNext,
550
- MatStepperPrevious,
551
- MatStepHeader,
552
- MatStepperIcon,
553
- MatStepContent,
554
- ],
555
- providers: [ErrorStateMatcher],
556
- }]
557
- }] });
836
+ i0.ɵɵngDeclareClassMetadata({
837
+ minVersion: "12.0.0",
838
+ version: "20.2.0-next.2",
839
+ ngImport: i0,
840
+ type: MatStepperModule,
841
+ decorators: [{
842
+ type: NgModule,
843
+ args: [{
844
+ imports: [PortalModule, CdkStepperModule, MatIconModule, MatRippleModule, MatStep, MatStepLabel, MatStepper, MatStepperNext, MatStepperPrevious, MatStepHeader, MatStepperIcon, MatStepContent],
845
+ exports: [BidiModule, MatStep, MatStepLabel, MatStepper, MatStepperNext, MatStepperPrevious, MatStepHeader, MatStepperIcon, MatStepContent],
846
+ providers: [ErrorStateMatcher]
847
+ }]
848
+ }]
849
+ });
558
850
 
559
851
  export { MatStep, MatStepContent, MatStepHeader, MatStepLabel, MatStepper, MatStepperIcon, MatStepperIntl, MatStepperModule, MatStepperNext, MatStepperPrevious };
560
852
  //# sourceMappingURL=stepper.mjs.map