@mxtommy/kip 3.9.0-beta.2 → 3.9.0-beta.21
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.
- package/.github/copilot-instructions.md +1 -1
- package/.github/instructions/angular.instructions.md +46 -0
- package/README.md +49 -12
- package/package.json +2 -4
- package/public/3rdpartylicenses.txt +77 -77
- package/public/app-help.component.css.map +7 -0
- package/public/app.component.css.map +7 -0
- package/public/assets/help-docs/configuration.md +4 -4
- package/public/assets/help-docs/dashboards.md +4 -2
- package/public/assets/svg/icons.svg +1 -1
- package/public/boolean-control-config.component.css.map +7 -0
- package/public/boolean-multicontrol-options.component.css.map +7 -0
- package/public/chunk-3EWIS24B.js +5237 -0
- package/public/chunk-3EWIS24B.js.map +1 -0
- package/public/chunk-3VR3EA35.js +1022 -0
- package/public/chunk-3VR3EA35.js.map +1 -0
- package/public/chunk-63ILPRXC.js +2091 -0
- package/public/chunk-63ILPRXC.js.map +1 -0
- package/public/chunk-65ZWQBS6.js +3102 -0
- package/public/chunk-65ZWQBS6.js.map +1 -0
- package/public/chunk-B3LKEWZP.js +4950 -0
- package/public/chunk-B3LKEWZP.js.map +1 -0
- package/public/chunk-BIBIW64D.js +16773 -0
- package/public/chunk-BIBIW64D.js.map +1 -0
- package/public/chunk-BM53SC5N.js +77 -0
- package/public/chunk-BM53SC5N.js.map +7 -0
- package/public/chunk-D7ILNFDM.js +3059 -0
- package/public/chunk-D7ILNFDM.js.map +1 -0
- package/public/chunk-E24UNLSJ.js +2228 -0
- package/public/chunk-E24UNLSJ.js.map +1 -0
- package/public/chunk-J42S2ELC.js +5927 -0
- package/public/chunk-J42S2ELC.js.map +1 -0
- package/public/chunk-KC22A6VH.js +17 -0
- package/public/chunk-KC22A6VH.js.map +7 -0
- package/public/chunk-MCEJWZB2.js +116 -0
- package/public/chunk-MCEJWZB2.js.map +1 -0
- package/public/chunk-NBF6SE6O.js +89 -0
- package/public/chunk-NBF6SE6O.js.map +7 -0
- package/public/chunk-QC7VGVAR.js +343 -0
- package/public/chunk-QC7VGVAR.js.map +7 -0
- package/public/chunk-SDOP6T56.js +42377 -0
- package/public/chunk-SDOP6T56.js.map +1 -0
- package/public/chunk-U2DCSTRY.js +159 -0
- package/public/chunk-U2DCSTRY.js.map +7 -0
- package/public/chunk-UHVNAEXC.js +4752 -0
- package/public/chunk-UHVNAEXC.js.map +1 -0
- package/public/chunk-UQYTD5AC.js +2723 -0
- package/public/chunk-UQYTD5AC.js.map +1 -0
- package/public/chunk-XSABJ5NZ.js +272 -0
- package/public/chunk-XSABJ5NZ.js.map +7 -0
- package/public/chunk-Y6N6O2IP.js +19852 -0
- package/public/chunk-Y6N6O2IP.js.map +1 -0
- package/public/chunk-YGJLBLOX.js +2708 -0
- package/public/chunk-YGJLBLOX.js.map +1 -0
- package/public/chunk-YT33DHC3.js +591 -0
- package/public/chunk-YT33DHC3.js.map +7 -0
- package/public/chunk-YZXYVP72.js +4934 -0
- package/public/chunk-YZXYVP72.js.map +1 -0
- package/public/chunk-ZEHRDSTB.js +13727 -0
- package/public/chunk-ZEHRDSTB.js.map +1 -0
- package/public/config.component.css.map +7 -0
- package/public/dashboard-scroller.component.css.map +7 -0
- package/public/dashboard.component.css.map +7 -0
- package/public/dashboards-editor.component.css.map +7 -0
- package/public/data-inspector-row.component.css.map +7 -0
- package/public/data-inspector.component.css.map +7 -0
- package/public/dataset-chart-options.component.css.map +7 -0
- package/public/datasets.component.css.map +7 -0
- package/public/dialog-confirmation.component.css.map +7 -0
- package/public/dialog-dashboard-page-editor.component.css.map +7 -0
- package/public/dialog-frame.component.css.map +7 -0
- package/public/dialog-name.component.css.map +7 -0
- package/public/display-chart-options.component.css.map +7 -0
- package/public/display.component.css.map +7 -0
- package/public/gauge-steel.component.css.map +7 -0
- package/public/home.component.css.map +7 -0
- package/public/index.html +19 -17
- package/public/main.js +36423 -0
- package/public/main.js.map +1 -0
- package/public/menu-actions.component.css.map +7 -0
- package/public/menu-notifications.component.css.map +7 -0
- package/public/minichart.component.css.map +7 -0
- package/public/modal-user-credential.component.css.map +7 -0
- package/public/modal-widget-config.component.css.map +7 -0
- package/public/notification-badge.component.css.map +7 -0
- package/public/page-header.component.css.map +7 -0
- package/public/path-control-config.component.css.map +7 -0
- package/public/paths-options.component.css.map +7 -0
- package/public/polyfills.js +4422 -0
- package/public/polyfills.js.map +1 -0
- package/public/select-autopilot.component.css.map +7 -0
- package/public/select-icon.component.css.map +7 -0
- package/public/settings.component.css.map +7 -0
- package/public/signalk.component.css.map +7 -0
- package/public/styles.css +1651 -0
- package/public/styles.css.map +7 -0
- package/public/svg-autopilot.component.css.map +7 -0
- package/public/svg-racesteer.component.css.map +7 -0
- package/public/svg-simple-linear-gauge.component.css.map +7 -0
- package/public/svg-windsteer.component.css.map +7 -0
- package/public/tile-large-icon.component.css.map +7 -0
- package/public/units.component.css.map +7 -0
- package/public/upgrade-config.component.css.map +7 -0
- package/public/widget-autopilot.component.css.map +7 -0
- package/public/widget-boolean-switch.component.css.map +7 -0
- package/public/widget-datetime.component.css.map +7 -0
- package/public/widget-freeboardsk.component.css.map +7 -0
- package/public/widget-gauge-ng-compass.component.css.map +7 -0
- package/public/widget-gauge-ng-linear.component.css.map +7 -0
- package/public/widget-gauge-ng-radial.component.css.map +7 -0
- package/public/widget-gauge-steel.component.css.map +7 -0
- package/public/widget-horizon.component.css.map +7 -0
- package/public/widget-host.component.css.map +7 -0
- package/public/widget-iframe.component.css.map +7 -0
- package/public/widget-label.component.css.map +7 -0
- package/public/widget-list-card.component.css.map +7 -0
- package/public/widget-numeric.component.css.map +7 -0
- package/public/widget-position.component.css.map +7 -0
- package/public/widget-race-timer.component.css.map +7 -0
- package/public/widget-racer-line.component.css.map +7 -0
- package/public/widget-racer-timer.component.css.map +7 -0
- package/public/widget-simple-linear.component.css.map +7 -0
- package/public/widget-slider.component.css.map +7 -0
- package/public/widget-text.component.css.map +7 -0
- package/public/widget-title.component.css.map +7 -0
- package/public/widget-tutorial.component.css.map +7 -0
- package/public/widgets-list.component.css.map +7 -0
- package/public/assets/hammer.min.js +0 -7
- package/public/chunk-2YVW3TBK.js +0 -2
- package/public/chunk-35L7BBBD.js +0 -15
- package/public/chunk-3LEMFOCV.js +0 -3
- package/public/chunk-3LJAKLLW.js +0 -1
- package/public/chunk-4JJLPUET.js +0 -60
- package/public/chunk-CBUY7NMR.js +0 -2
- package/public/chunk-CQXWGD3T.js +0 -2
- package/public/chunk-EUFDL4TJ.js +0 -6
- package/public/chunk-FBFTGVZ6.js +0 -1
- package/public/chunk-HCXH72CD.js +0 -5
- package/public/chunk-JY3WVS7C.js +0 -2
- package/public/chunk-KTDDP73O.js +0 -2
- package/public/chunk-NMEZOCU2.js +0 -1
- package/public/chunk-NS2FPVWM.js +0 -4
- package/public/chunk-OSYHJB4F.js +0 -11
- package/public/chunk-PKNLASTF.js +0 -4
- package/public/chunk-Q2Y75POI.js +0 -1
- package/public/chunk-RRTCHHRC.js +0 -3
- package/public/chunk-TA4GACKT.js +0 -4
- package/public/chunk-TXPLRBW5.js +0 -2
- package/public/chunk-VHFBF47T.js +0 -1
- package/public/chunk-VYUMZVH2.js +0 -2
- package/public/chunk-XRGAX4LS.js +0 -2
- package/public/chunk-YNJRIFUM.js +0 -1
- package/public/chunk-ZBCOJLI4.js +0 -6
- package/public/main-XM5EHMUE.js +0 -50
- package/public/polyfills-KH22MU6U.js +0 -2
- package/public/styles-RECKN66R.css +0 -1
- /package/public/media/{KFOlCnqEu92Fr1MmEU9fABc4AMP6lbBP-ILKS6RVC.woff2 → KFOlCnqEu92Fr1MmEU9fABc4AMP6lbBP.woff2} +0 -0
- /package/public/media/{KFOlCnqEu92Fr1MmEU9fBBc4AMP6lQ-MJ3CERJ6.woff2 → KFOlCnqEu92Fr1MmEU9fBBc4AMP6lQ.woff2} +0 -0
- /package/public/media/{KFOlCnqEu92Fr1MmEU9fBxc4AMP6lbBP-UW3XWY7P.woff2 → KFOlCnqEu92Fr1MmEU9fBxc4AMP6lbBP.woff2} +0 -0
- /package/public/media/{KFOlCnqEu92Fr1MmEU9fCBc4AMP6lbBP-U3JTBV4H.woff2 → KFOlCnqEu92Fr1MmEU9fCBc4AMP6lbBP.woff2} +0 -0
- /package/public/media/{KFOlCnqEu92Fr1MmEU9fCRc4AMP6lbBP-36ULTGLY.woff2 → KFOlCnqEu92Fr1MmEU9fCRc4AMP6lbBP.woff2} +0 -0
- /package/public/media/{KFOlCnqEu92Fr1MmEU9fChc4AMP6lbBP-5NJLO2HW.woff2 → KFOlCnqEu92Fr1MmEU9fChc4AMP6lbBP.woff2} +0 -0
- /package/public/media/{KFOlCnqEu92Fr1MmEU9fCxc4AMP6lbBP-2EL65J2O.woff2 → KFOlCnqEu92Fr1MmEU9fCxc4AMP6lbBP.woff2} +0 -0
- /package/public/media/{KFOlCnqEu92Fr1MmSU5fABc4AMP6lbBP-XWLWMQVU.woff2 → KFOlCnqEu92Fr1MmSU5fABc4AMP6lbBP.woff2} +0 -0
- /package/public/media/{KFOlCnqEu92Fr1MmSU5fBBc4AMP6lQ-PWGJWDFE.woff2 → KFOlCnqEu92Fr1MmSU5fBBc4AMP6lQ.woff2} +0 -0
- /package/public/media/{KFOlCnqEu92Fr1MmSU5fBxc4AMP6lbBP-ITB7NUJC.woff2 → KFOlCnqEu92Fr1MmSU5fBxc4AMP6lbBP.woff2} +0 -0
- /package/public/media/{KFOlCnqEu92Fr1MmSU5fCBc4AMP6lbBP-32PLHKPQ.woff2 → KFOlCnqEu92Fr1MmSU5fCBc4AMP6lbBP.woff2} +0 -0
- /package/public/media/{KFOlCnqEu92Fr1MmSU5fCRc4AMP6lbBP-QPSNQEDD.woff2 → KFOlCnqEu92Fr1MmSU5fCRc4AMP6lbBP.woff2} +0 -0
- /package/public/media/{KFOlCnqEu92Fr1MmSU5fChc4AMP6lbBP-JKBSJZY3.woff2 → KFOlCnqEu92Fr1MmSU5fChc4AMP6lbBP.woff2} +0 -0
- /package/public/media/{KFOlCnqEu92Fr1MmSU5fCxc4AMP6lbBP-OG5AHRIX.woff2 → KFOlCnqEu92Fr1MmSU5fCxc4AMP6lbBP.woff2} +0 -0
- /package/public/media/{KFOmCnqEu92Fr1Mu4WxKKTU1Kvnz-PPTELUJT.woff2 → KFOmCnqEu92Fr1Mu4WxKKTU1Kvnz.woff2} +0 -0
- /package/public/media/{KFOmCnqEu92Fr1Mu4mxKKTU1Kg-SNGEW7FX.woff2 → KFOmCnqEu92Fr1Mu4mxKKTU1Kg.woff2} +0 -0
- /package/public/media/{KFOmCnqEu92Fr1Mu5mxKKTU1Kvnz-DRL4U32S.woff2 → KFOmCnqEu92Fr1Mu5mxKKTU1Kvnz.woff2} +0 -0
- /package/public/media/{KFOmCnqEu92Fr1Mu72xKKTU1Kvnz-PRJ7OQMU.woff2 → KFOmCnqEu92Fr1Mu72xKKTU1Kvnz.woff2} +0 -0
- /package/public/media/{KFOmCnqEu92Fr1Mu7GxKKTU1Kvnz-HW6RMPJ3.woff2 → KFOmCnqEu92Fr1Mu7GxKKTU1Kvnz.woff2} +0 -0
- /package/public/media/{KFOmCnqEu92Fr1Mu7WxKKTU1Kvnz-KZD6JQRT.woff2 → KFOmCnqEu92Fr1Mu7WxKKTU1Kvnz.woff2} +0 -0
- /package/public/media/{KFOmCnqEu92Fr1Mu7mxKKTU1Kvnz-Z72STTMG.woff2 → KFOmCnqEu92Fr1Mu7mxKKTU1Kvnz.woff2} +0 -0
- /package/public/media/{flUhRq6tzZclQEJ-Vdg-IuiaDsNcIhQ8tQ-CN2J7AYH.woff2 → flUhRq6tzZclQEJ-Vdg-IuiaDsNcIhQ8tQ.woff2} +0 -0
|
@@ -0,0 +1,2708 @@
|
|
|
1
|
+
import {
|
|
2
|
+
DatasetService,
|
|
3
|
+
MatCheckbox,
|
|
4
|
+
MatRadioModule
|
|
5
|
+
} from "./chunk-63ILPRXC.js";
|
|
6
|
+
import {
|
|
7
|
+
MatCell,
|
|
8
|
+
MatCellDef,
|
|
9
|
+
MatColumnDef,
|
|
10
|
+
MatHeaderCell,
|
|
11
|
+
MatHeaderCellDef,
|
|
12
|
+
MatHeaderRow,
|
|
13
|
+
MatHeaderRowDef,
|
|
14
|
+
MatNoDataRow,
|
|
15
|
+
MatPaginator,
|
|
16
|
+
MatRow,
|
|
17
|
+
MatRowDef,
|
|
18
|
+
MatSort,
|
|
19
|
+
MatSortHeader,
|
|
20
|
+
MatTable,
|
|
21
|
+
MatTableDataSource
|
|
22
|
+
} from "./chunk-B3LKEWZP.js";
|
|
23
|
+
import {
|
|
24
|
+
MatOption,
|
|
25
|
+
MatSelect
|
|
26
|
+
} from "./chunk-65ZWQBS6.js";
|
|
27
|
+
import {
|
|
28
|
+
MatIcon,
|
|
29
|
+
MatIconModule
|
|
30
|
+
} from "./chunk-UQYTD5AC.js";
|
|
31
|
+
import {
|
|
32
|
+
MatDivider
|
|
33
|
+
} from "./chunk-MCEJWZB2.js";
|
|
34
|
+
import {
|
|
35
|
+
ControlContainer,
|
|
36
|
+
DataService,
|
|
37
|
+
DefaultValueAccessor,
|
|
38
|
+
ErrorStateMatcher,
|
|
39
|
+
FormsModule,
|
|
40
|
+
MAT_DIALOG_DATA,
|
|
41
|
+
MatDialog,
|
|
42
|
+
MatDialogContent,
|
|
43
|
+
MatDialogRef,
|
|
44
|
+
MatDialogTitle,
|
|
45
|
+
MatFormField,
|
|
46
|
+
MatInput,
|
|
47
|
+
MatLabel,
|
|
48
|
+
MaxValidator,
|
|
49
|
+
MinValidator,
|
|
50
|
+
NgControlStatus,
|
|
51
|
+
NgControlStatusGroup,
|
|
52
|
+
NgForm,
|
|
53
|
+
NgModel,
|
|
54
|
+
NumberValueAccessor,
|
|
55
|
+
RequiredValidator,
|
|
56
|
+
cloneDeep_default,
|
|
57
|
+
ɵNgNoValidate
|
|
58
|
+
} from "./chunk-BIBIW64D.js";
|
|
59
|
+
import {
|
|
60
|
+
BidiModule,
|
|
61
|
+
CdkPortalOutlet,
|
|
62
|
+
ChangeDetectionStrategy,
|
|
63
|
+
ChangeDetectorRef,
|
|
64
|
+
Component,
|
|
65
|
+
ContentChild,
|
|
66
|
+
ContentChildren,
|
|
67
|
+
Directionality,
|
|
68
|
+
Directive,
|
|
69
|
+
ENTER,
|
|
70
|
+
ElementRef,
|
|
71
|
+
EventEmitter,
|
|
72
|
+
FocusKeyManager,
|
|
73
|
+
FocusMonitor,
|
|
74
|
+
Injectable,
|
|
75
|
+
InjectionToken,
|
|
76
|
+
Input,
|
|
77
|
+
MatButton,
|
|
78
|
+
MatCommonModule,
|
|
79
|
+
MatRipple,
|
|
80
|
+
MatRippleModule,
|
|
81
|
+
NgModule,
|
|
82
|
+
NgTemplateOutlet,
|
|
83
|
+
NgZone,
|
|
84
|
+
Optional,
|
|
85
|
+
Output,
|
|
86
|
+
Pipe,
|
|
87
|
+
Platform,
|
|
88
|
+
PortalModule,
|
|
89
|
+
QueryList,
|
|
90
|
+
Renderer2,
|
|
91
|
+
SPACE,
|
|
92
|
+
SkipSelf,
|
|
93
|
+
Subject,
|
|
94
|
+
Subscription,
|
|
95
|
+
TemplatePortal,
|
|
96
|
+
TemplateRef,
|
|
97
|
+
ViewChild,
|
|
98
|
+
ViewChildren,
|
|
99
|
+
ViewContainerRef,
|
|
100
|
+
ViewEncapsulation,
|
|
101
|
+
_CdkPrivateStyleLoader,
|
|
102
|
+
_IdGenerator,
|
|
103
|
+
_StructuralStylesLoader,
|
|
104
|
+
_VisuallyHiddenLoader,
|
|
105
|
+
_animationsDisabled,
|
|
106
|
+
_getFocusedElementPierceShadowDom,
|
|
107
|
+
booleanAttribute,
|
|
108
|
+
computed,
|
|
109
|
+
hasModifierKey,
|
|
110
|
+
inject,
|
|
111
|
+
map,
|
|
112
|
+
numberAttribute,
|
|
113
|
+
of,
|
|
114
|
+
setClassMetadata,
|
|
115
|
+
signal,
|
|
116
|
+
startWith,
|
|
117
|
+
switchMap,
|
|
118
|
+
takeUntil,
|
|
119
|
+
viewChild,
|
|
120
|
+
ɵsetClassDebugInfo,
|
|
121
|
+
ɵɵInheritDefinitionFeature,
|
|
122
|
+
ɵɵNgOnChangesFeature,
|
|
123
|
+
ɵɵProvidersFeature,
|
|
124
|
+
ɵɵadvance,
|
|
125
|
+
ɵɵattribute,
|
|
126
|
+
ɵɵclassMap,
|
|
127
|
+
ɵɵclassProp,
|
|
128
|
+
ɵɵconditional,
|
|
129
|
+
ɵɵconditionalCreate,
|
|
130
|
+
ɵɵcontentQuery,
|
|
131
|
+
ɵɵdefineComponent,
|
|
132
|
+
ɵɵdefineDirective,
|
|
133
|
+
ɵɵdefineInjectable,
|
|
134
|
+
ɵɵdefineInjector,
|
|
135
|
+
ɵɵdefineNgModule,
|
|
136
|
+
ɵɵdefinePipe,
|
|
137
|
+
ɵɵdomProperty,
|
|
138
|
+
ɵɵdomTemplate,
|
|
139
|
+
ɵɵelement,
|
|
140
|
+
ɵɵelementContainer,
|
|
141
|
+
ɵɵelementContainerEnd,
|
|
142
|
+
ɵɵelementContainerStart,
|
|
143
|
+
ɵɵelementEnd,
|
|
144
|
+
ɵɵelementStart,
|
|
145
|
+
ɵɵgetCurrentView,
|
|
146
|
+
ɵɵgetInheritedFactory,
|
|
147
|
+
ɵɵinterpolate1,
|
|
148
|
+
ɵɵlistener,
|
|
149
|
+
ɵɵloadQuery,
|
|
150
|
+
ɵɵnextContext,
|
|
151
|
+
ɵɵpipe,
|
|
152
|
+
ɵɵpipeBind2,
|
|
153
|
+
ɵɵprojection,
|
|
154
|
+
ɵɵprojectionDef,
|
|
155
|
+
ɵɵproperty,
|
|
156
|
+
ɵɵpureFunction0,
|
|
157
|
+
ɵɵpureFunction1,
|
|
158
|
+
ɵɵpureFunction3,
|
|
159
|
+
ɵɵqueryAdvance,
|
|
160
|
+
ɵɵqueryRefresh,
|
|
161
|
+
ɵɵreference,
|
|
162
|
+
ɵɵrepeater,
|
|
163
|
+
ɵɵrepeaterCreate,
|
|
164
|
+
ɵɵrepeaterTrackByIdentity,
|
|
165
|
+
ɵɵresetView,
|
|
166
|
+
ɵɵrestoreView,
|
|
167
|
+
ɵɵstyleProp,
|
|
168
|
+
ɵɵtemplate,
|
|
169
|
+
ɵɵtemplateRefExtractor,
|
|
170
|
+
ɵɵtext,
|
|
171
|
+
ɵɵtextInterpolate,
|
|
172
|
+
ɵɵtextInterpolate1,
|
|
173
|
+
ɵɵtwoWayBindingSet,
|
|
174
|
+
ɵɵtwoWayListener,
|
|
175
|
+
ɵɵtwoWayProperty,
|
|
176
|
+
ɵɵviewQuery,
|
|
177
|
+
ɵɵviewQuerySignal
|
|
178
|
+
} from "./chunk-SDOP6T56.js";
|
|
179
|
+
|
|
180
|
+
// src/app/core/pipes/filter-self.pipe.ts
|
|
181
|
+
var FilterSelfPipe = class _FilterSelfPipe {
|
|
182
|
+
transform(values, filterSelf) {
|
|
183
|
+
if (!values || !values.length)
|
|
184
|
+
return [];
|
|
185
|
+
if (!filterSelf)
|
|
186
|
+
return values;
|
|
187
|
+
return values.filter((v) => v.includes("self"));
|
|
188
|
+
}
|
|
189
|
+
static \u0275fac = function FilterSelfPipe_Factory(__ngFactoryType__) {
|
|
190
|
+
return new (__ngFactoryType__ || _FilterSelfPipe)();
|
|
191
|
+
};
|
|
192
|
+
static \u0275pipe = /* @__PURE__ */ \u0275\u0275definePipe({ name: "filterSelf", type: _FilterSelfPipe, pure: true });
|
|
193
|
+
};
|
|
194
|
+
(() => {
|
|
195
|
+
(typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(FilterSelfPipe, [{
|
|
196
|
+
type: Pipe,
|
|
197
|
+
args: [{
|
|
198
|
+
name: "filterSelf",
|
|
199
|
+
standalone: true
|
|
200
|
+
}]
|
|
201
|
+
}], null, null);
|
|
202
|
+
})();
|
|
203
|
+
|
|
204
|
+
// node_modules/@angular/cdk/fesm2022/stepper.mjs
|
|
205
|
+
var _c0 = ["*"];
|
|
206
|
+
function CdkStep_ng_template_0_Template(rf, ctx) {
|
|
207
|
+
if (rf & 1) {
|
|
208
|
+
\u0275\u0275projection(0);
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
var CdkStepHeader = class _CdkStepHeader {
|
|
212
|
+
_elementRef = inject(ElementRef);
|
|
213
|
+
constructor() {
|
|
214
|
+
}
|
|
215
|
+
/** Focuses the step header. */
|
|
216
|
+
focus() {
|
|
217
|
+
this._elementRef.nativeElement.focus();
|
|
218
|
+
}
|
|
219
|
+
static \u0275fac = function CdkStepHeader_Factory(__ngFactoryType__) {
|
|
220
|
+
return new (__ngFactoryType__ || _CdkStepHeader)();
|
|
221
|
+
};
|
|
222
|
+
static \u0275dir = /* @__PURE__ */ \u0275\u0275defineDirective({
|
|
223
|
+
type: _CdkStepHeader,
|
|
224
|
+
selectors: [["", "cdkStepHeader", ""]],
|
|
225
|
+
hostAttrs: ["role", "tab"]
|
|
226
|
+
});
|
|
227
|
+
};
|
|
228
|
+
(() => {
|
|
229
|
+
(typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(CdkStepHeader, [{
|
|
230
|
+
type: Directive,
|
|
231
|
+
args: [{
|
|
232
|
+
selector: "[cdkStepHeader]",
|
|
233
|
+
host: {
|
|
234
|
+
"role": "tab"
|
|
235
|
+
}
|
|
236
|
+
}]
|
|
237
|
+
}], () => [], null);
|
|
238
|
+
})();
|
|
239
|
+
var CdkStepLabel = class _CdkStepLabel {
|
|
240
|
+
template = inject(TemplateRef);
|
|
241
|
+
constructor() {
|
|
242
|
+
}
|
|
243
|
+
static \u0275fac = function CdkStepLabel_Factory(__ngFactoryType__) {
|
|
244
|
+
return new (__ngFactoryType__ || _CdkStepLabel)();
|
|
245
|
+
};
|
|
246
|
+
static \u0275dir = /* @__PURE__ */ \u0275\u0275defineDirective({
|
|
247
|
+
type: _CdkStepLabel,
|
|
248
|
+
selectors: [["", "cdkStepLabel", ""]]
|
|
249
|
+
});
|
|
250
|
+
};
|
|
251
|
+
(() => {
|
|
252
|
+
(typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(CdkStepLabel, [{
|
|
253
|
+
type: Directive,
|
|
254
|
+
args: [{
|
|
255
|
+
selector: "[cdkStepLabel]"
|
|
256
|
+
}]
|
|
257
|
+
}], () => [], null);
|
|
258
|
+
})();
|
|
259
|
+
var STEP_STATE = {
|
|
260
|
+
NUMBER: "number",
|
|
261
|
+
EDIT: "edit",
|
|
262
|
+
DONE: "done",
|
|
263
|
+
ERROR: "error"
|
|
264
|
+
};
|
|
265
|
+
var STEPPER_GLOBAL_OPTIONS = new InjectionToken("STEPPER_GLOBAL_OPTIONS");
|
|
266
|
+
var CdkStep = class _CdkStep {
|
|
267
|
+
_stepperOptions;
|
|
268
|
+
_stepper = inject(CdkStepper);
|
|
269
|
+
_displayDefaultIndicatorType;
|
|
270
|
+
/** Template for step label if it exists. */
|
|
271
|
+
stepLabel;
|
|
272
|
+
/** Forms that have been projected into the step. */
|
|
273
|
+
_childForms;
|
|
274
|
+
/** Template for step content. */
|
|
275
|
+
content;
|
|
276
|
+
/** The top level abstract control of the step. */
|
|
277
|
+
stepControl;
|
|
278
|
+
/** Whether user has attempted to move away from the step. */
|
|
279
|
+
get interacted() {
|
|
280
|
+
return this._interacted();
|
|
281
|
+
}
|
|
282
|
+
set interacted(value) {
|
|
283
|
+
this._interacted.set(value);
|
|
284
|
+
}
|
|
285
|
+
_interacted = signal(false);
|
|
286
|
+
/** Emits when the user has attempted to move away from the step. */
|
|
287
|
+
interactedStream = new EventEmitter();
|
|
288
|
+
/** Plain text label of the step. */
|
|
289
|
+
label;
|
|
290
|
+
/** Error message to display when there's an error. */
|
|
291
|
+
errorMessage;
|
|
292
|
+
/** Aria label for the tab. */
|
|
293
|
+
ariaLabel;
|
|
294
|
+
/**
|
|
295
|
+
* Reference to the element that the tab is labelled by.
|
|
296
|
+
* Will be cleared if `aria-label` is set at the same time.
|
|
297
|
+
*/
|
|
298
|
+
ariaLabelledby;
|
|
299
|
+
/** State of the step. */
|
|
300
|
+
get state() {
|
|
301
|
+
return this._state();
|
|
302
|
+
}
|
|
303
|
+
set state(value) {
|
|
304
|
+
this._state.set(value);
|
|
305
|
+
}
|
|
306
|
+
_state = signal(void 0);
|
|
307
|
+
/** Whether the user can return to this step once it has been marked as completed. */
|
|
308
|
+
get editable() {
|
|
309
|
+
return this._editable();
|
|
310
|
+
}
|
|
311
|
+
set editable(value) {
|
|
312
|
+
this._editable.set(value);
|
|
313
|
+
}
|
|
314
|
+
_editable = signal(true);
|
|
315
|
+
/** Whether the completion of step is optional. */
|
|
316
|
+
optional = false;
|
|
317
|
+
/** Whether step is marked as completed. */
|
|
318
|
+
get completed() {
|
|
319
|
+
const override = this._completedOverride();
|
|
320
|
+
const interacted = this._interacted();
|
|
321
|
+
if (override != null) {
|
|
322
|
+
return override;
|
|
323
|
+
}
|
|
324
|
+
return interacted && (!this.stepControl || this.stepControl.valid);
|
|
325
|
+
}
|
|
326
|
+
set completed(value) {
|
|
327
|
+
this._completedOverride.set(value);
|
|
328
|
+
}
|
|
329
|
+
_completedOverride = signal(null);
|
|
330
|
+
/** Current index of the step within the stepper. */
|
|
331
|
+
index = signal(-1);
|
|
332
|
+
/** Whether the step is selected. */
|
|
333
|
+
isSelected = computed(() => this._stepper.selectedIndex === this.index());
|
|
334
|
+
/** Type of indicator that should be shown for the step. */
|
|
335
|
+
indicatorType = computed(() => {
|
|
336
|
+
const selected = this.isSelected();
|
|
337
|
+
const completed = this.completed;
|
|
338
|
+
const defaultState = this._state() ?? STEP_STATE.NUMBER;
|
|
339
|
+
const editable = this._editable();
|
|
340
|
+
if (this._showError() && this.hasError && !selected) {
|
|
341
|
+
return STEP_STATE.ERROR;
|
|
342
|
+
}
|
|
343
|
+
if (this._displayDefaultIndicatorType) {
|
|
344
|
+
if (!completed || selected) {
|
|
345
|
+
return STEP_STATE.NUMBER;
|
|
346
|
+
}
|
|
347
|
+
return editable ? STEP_STATE.EDIT : STEP_STATE.DONE;
|
|
348
|
+
} else {
|
|
349
|
+
if (completed && !selected) {
|
|
350
|
+
return STEP_STATE.DONE;
|
|
351
|
+
} else if (completed && selected) {
|
|
352
|
+
return defaultState;
|
|
353
|
+
}
|
|
354
|
+
return editable && selected ? STEP_STATE.EDIT : defaultState;
|
|
355
|
+
}
|
|
356
|
+
});
|
|
357
|
+
/** Whether the user can navigate to the step. */
|
|
358
|
+
isNavigable = computed(() => {
|
|
359
|
+
const isSelected = this.isSelected();
|
|
360
|
+
const isCompleted = this.completed;
|
|
361
|
+
return isCompleted || isSelected || !this._stepper.linear;
|
|
362
|
+
});
|
|
363
|
+
/** Whether step has an error. */
|
|
364
|
+
get hasError() {
|
|
365
|
+
const customError = this._customError();
|
|
366
|
+
return customError == null ? this._getDefaultError() : customError;
|
|
367
|
+
}
|
|
368
|
+
set hasError(value) {
|
|
369
|
+
this._customError.set(value);
|
|
370
|
+
}
|
|
371
|
+
_customError = signal(null);
|
|
372
|
+
_getDefaultError() {
|
|
373
|
+
return this.interacted && !!this.stepControl?.invalid;
|
|
374
|
+
}
|
|
375
|
+
constructor() {
|
|
376
|
+
const stepperOptions = inject(STEPPER_GLOBAL_OPTIONS, {
|
|
377
|
+
optional: true
|
|
378
|
+
});
|
|
379
|
+
this._stepperOptions = stepperOptions ? stepperOptions : {};
|
|
380
|
+
this._displayDefaultIndicatorType = this._stepperOptions.displayDefaultIndicatorType !== false;
|
|
381
|
+
}
|
|
382
|
+
/** Selects this step component. */
|
|
383
|
+
select() {
|
|
384
|
+
this._stepper.selected = this;
|
|
385
|
+
}
|
|
386
|
+
/** Resets the step to its initial state. Note that this includes resetting form data. */
|
|
387
|
+
reset() {
|
|
388
|
+
this._interacted.set(false);
|
|
389
|
+
if (this._completedOverride() != null) {
|
|
390
|
+
this._completedOverride.set(false);
|
|
391
|
+
}
|
|
392
|
+
if (this._customError() != null) {
|
|
393
|
+
this._customError.set(false);
|
|
394
|
+
}
|
|
395
|
+
if (this.stepControl) {
|
|
396
|
+
this._childForms?.forEach((form) => form.resetForm?.());
|
|
397
|
+
this.stepControl.reset();
|
|
398
|
+
}
|
|
399
|
+
}
|
|
400
|
+
ngOnChanges() {
|
|
401
|
+
this._stepper._stateChanged();
|
|
402
|
+
}
|
|
403
|
+
_markAsInteracted() {
|
|
404
|
+
if (!this._interacted()) {
|
|
405
|
+
this._interacted.set(true);
|
|
406
|
+
this.interactedStream.emit(this);
|
|
407
|
+
}
|
|
408
|
+
}
|
|
409
|
+
/** Determines whether the error state can be shown. */
|
|
410
|
+
_showError() {
|
|
411
|
+
return this._stepperOptions.showError ?? this._customError() != null;
|
|
412
|
+
}
|
|
413
|
+
static \u0275fac = function CdkStep_Factory(__ngFactoryType__) {
|
|
414
|
+
return new (__ngFactoryType__ || _CdkStep)();
|
|
415
|
+
};
|
|
416
|
+
static \u0275cmp = /* @__PURE__ */ \u0275\u0275defineComponent({
|
|
417
|
+
type: _CdkStep,
|
|
418
|
+
selectors: [["cdk-step"]],
|
|
419
|
+
contentQueries: function CdkStep_ContentQueries(rf, ctx, dirIndex) {
|
|
420
|
+
if (rf & 1) {
|
|
421
|
+
\u0275\u0275contentQuery(dirIndex, CdkStepLabel, 5);
|
|
422
|
+
\u0275\u0275contentQuery(
|
|
423
|
+
dirIndex,
|
|
424
|
+
// Note: we look for `ControlContainer` here, because both `NgForm` and `FormGroupDirective`
|
|
425
|
+
// provides themselves as such, but we don't want to have a concrete reference to both of
|
|
426
|
+
// the directives. The type is marked as `Partial` in case we run into a class that provides
|
|
427
|
+
// itself as `ControlContainer` but doesn't have the same interface as the directives.
|
|
428
|
+
ControlContainer,
|
|
429
|
+
5
|
|
430
|
+
);
|
|
431
|
+
}
|
|
432
|
+
if (rf & 2) {
|
|
433
|
+
let _t;
|
|
434
|
+
\u0275\u0275queryRefresh(_t = \u0275\u0275loadQuery()) && (ctx.stepLabel = _t.first);
|
|
435
|
+
\u0275\u0275queryRefresh(_t = \u0275\u0275loadQuery()) && (ctx._childForms = _t);
|
|
436
|
+
}
|
|
437
|
+
},
|
|
438
|
+
viewQuery: function CdkStep_Query(rf, ctx) {
|
|
439
|
+
if (rf & 1) {
|
|
440
|
+
\u0275\u0275viewQuery(TemplateRef, 7);
|
|
441
|
+
}
|
|
442
|
+
if (rf & 2) {
|
|
443
|
+
let _t;
|
|
444
|
+
\u0275\u0275queryRefresh(_t = \u0275\u0275loadQuery()) && (ctx.content = _t.first);
|
|
445
|
+
}
|
|
446
|
+
},
|
|
447
|
+
inputs: {
|
|
448
|
+
stepControl: "stepControl",
|
|
449
|
+
label: "label",
|
|
450
|
+
errorMessage: "errorMessage",
|
|
451
|
+
ariaLabel: [0, "aria-label", "ariaLabel"],
|
|
452
|
+
ariaLabelledby: [0, "aria-labelledby", "ariaLabelledby"],
|
|
453
|
+
state: "state",
|
|
454
|
+
editable: [2, "editable", "editable", booleanAttribute],
|
|
455
|
+
optional: [2, "optional", "optional", booleanAttribute],
|
|
456
|
+
completed: [2, "completed", "completed", booleanAttribute],
|
|
457
|
+
hasError: [2, "hasError", "hasError", booleanAttribute]
|
|
458
|
+
},
|
|
459
|
+
outputs: {
|
|
460
|
+
interactedStream: "interacted"
|
|
461
|
+
},
|
|
462
|
+
exportAs: ["cdkStep"],
|
|
463
|
+
features: [\u0275\u0275NgOnChangesFeature],
|
|
464
|
+
ngContentSelectors: _c0,
|
|
465
|
+
decls: 1,
|
|
466
|
+
vars: 0,
|
|
467
|
+
template: function CdkStep_Template(rf, ctx) {
|
|
468
|
+
if (rf & 1) {
|
|
469
|
+
\u0275\u0275projectionDef();
|
|
470
|
+
\u0275\u0275domTemplate(0, CdkStep_ng_template_0_Template, 1, 0, "ng-template");
|
|
471
|
+
}
|
|
472
|
+
},
|
|
473
|
+
encapsulation: 2,
|
|
474
|
+
changeDetection: 0
|
|
475
|
+
});
|
|
476
|
+
};
|
|
477
|
+
(() => {
|
|
478
|
+
(typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(CdkStep, [{
|
|
479
|
+
type: Component,
|
|
480
|
+
args: [{
|
|
481
|
+
selector: "cdk-step",
|
|
482
|
+
exportAs: "cdkStep",
|
|
483
|
+
template: "<ng-template><ng-content/></ng-template>",
|
|
484
|
+
encapsulation: ViewEncapsulation.None,
|
|
485
|
+
changeDetection: ChangeDetectionStrategy.OnPush
|
|
486
|
+
}]
|
|
487
|
+
}], () => [], {
|
|
488
|
+
stepLabel: [{
|
|
489
|
+
type: ContentChild,
|
|
490
|
+
args: [CdkStepLabel]
|
|
491
|
+
}],
|
|
492
|
+
_childForms: [{
|
|
493
|
+
type: ContentChildren,
|
|
494
|
+
args: [
|
|
495
|
+
// Note: we look for `ControlContainer` here, because both `NgForm` and `FormGroupDirective`
|
|
496
|
+
// provides themselves as such, but we don't want to have a concrete reference to both of
|
|
497
|
+
// the directives. The type is marked as `Partial` in case we run into a class that provides
|
|
498
|
+
// itself as `ControlContainer` but doesn't have the same interface as the directives.
|
|
499
|
+
ControlContainer,
|
|
500
|
+
{
|
|
501
|
+
descendants: true
|
|
502
|
+
}
|
|
503
|
+
]
|
|
504
|
+
}],
|
|
505
|
+
content: [{
|
|
506
|
+
type: ViewChild,
|
|
507
|
+
args: [TemplateRef, {
|
|
508
|
+
static: true
|
|
509
|
+
}]
|
|
510
|
+
}],
|
|
511
|
+
stepControl: [{
|
|
512
|
+
type: Input
|
|
513
|
+
}],
|
|
514
|
+
interactedStream: [{
|
|
515
|
+
type: Output,
|
|
516
|
+
args: ["interacted"]
|
|
517
|
+
}],
|
|
518
|
+
label: [{
|
|
519
|
+
type: Input
|
|
520
|
+
}],
|
|
521
|
+
errorMessage: [{
|
|
522
|
+
type: Input
|
|
523
|
+
}],
|
|
524
|
+
ariaLabel: [{
|
|
525
|
+
type: Input,
|
|
526
|
+
args: ["aria-label"]
|
|
527
|
+
}],
|
|
528
|
+
ariaLabelledby: [{
|
|
529
|
+
type: Input,
|
|
530
|
+
args: ["aria-labelledby"]
|
|
531
|
+
}],
|
|
532
|
+
state: [{
|
|
533
|
+
type: Input
|
|
534
|
+
}],
|
|
535
|
+
editable: [{
|
|
536
|
+
type: Input,
|
|
537
|
+
args: [{
|
|
538
|
+
transform: booleanAttribute
|
|
539
|
+
}]
|
|
540
|
+
}],
|
|
541
|
+
optional: [{
|
|
542
|
+
type: Input,
|
|
543
|
+
args: [{
|
|
544
|
+
transform: booleanAttribute
|
|
545
|
+
}]
|
|
546
|
+
}],
|
|
547
|
+
completed: [{
|
|
548
|
+
type: Input,
|
|
549
|
+
args: [{
|
|
550
|
+
transform: booleanAttribute
|
|
551
|
+
}]
|
|
552
|
+
}],
|
|
553
|
+
hasError: [{
|
|
554
|
+
type: Input,
|
|
555
|
+
args: [{
|
|
556
|
+
transform: booleanAttribute
|
|
557
|
+
}]
|
|
558
|
+
}]
|
|
559
|
+
});
|
|
560
|
+
})();
|
|
561
|
+
var CdkStepper = class _CdkStepper {
|
|
562
|
+
_dir = inject(Directionality, {
|
|
563
|
+
optional: true
|
|
564
|
+
});
|
|
565
|
+
_changeDetectorRef = inject(ChangeDetectorRef);
|
|
566
|
+
_elementRef = inject(ElementRef);
|
|
567
|
+
/** Emits when the component is destroyed. */
|
|
568
|
+
_destroyed = new Subject();
|
|
569
|
+
/** Used for managing keyboard focus. */
|
|
570
|
+
_keyManager;
|
|
571
|
+
/** Full list of steps inside the stepper, including inside nested steppers. */
|
|
572
|
+
_steps;
|
|
573
|
+
/** Steps that belong to the current stepper, excluding ones from nested steppers. */
|
|
574
|
+
steps = new QueryList();
|
|
575
|
+
/** The list of step headers of the steps in the stepper. */
|
|
576
|
+
_stepHeader;
|
|
577
|
+
/** List of step headers sorted based on their DOM order. */
|
|
578
|
+
_sortedHeaders = new QueryList();
|
|
579
|
+
/** Whether the validity of previous steps should be checked or not. */
|
|
580
|
+
linear = false;
|
|
581
|
+
/** The index of the selected step. */
|
|
582
|
+
get selectedIndex() {
|
|
583
|
+
return this._selectedIndex();
|
|
584
|
+
}
|
|
585
|
+
set selectedIndex(index) {
|
|
586
|
+
if (this._steps) {
|
|
587
|
+
if (!this._isValidIndex(index) && (typeof ngDevMode === "undefined" || ngDevMode)) {
|
|
588
|
+
throw Error("cdkStepper: Cannot assign out-of-bounds value to `selectedIndex`.");
|
|
589
|
+
}
|
|
590
|
+
if (this.selectedIndex !== index) {
|
|
591
|
+
this.selected?._markAsInteracted();
|
|
592
|
+
if (!this._anyControlsInvalidOrPending(index) && (index >= this.selectedIndex || this.steps.toArray()[index].editable)) {
|
|
593
|
+
this._updateSelectedItemIndex(index);
|
|
594
|
+
}
|
|
595
|
+
}
|
|
596
|
+
} else {
|
|
597
|
+
this._selectedIndex.set(index);
|
|
598
|
+
}
|
|
599
|
+
}
|
|
600
|
+
_selectedIndex = signal(0);
|
|
601
|
+
/** The step that is selected. */
|
|
602
|
+
get selected() {
|
|
603
|
+
return this.steps ? this.steps.toArray()[this.selectedIndex] : void 0;
|
|
604
|
+
}
|
|
605
|
+
set selected(step) {
|
|
606
|
+
this.selectedIndex = step && this.steps ? this.steps.toArray().indexOf(step) : -1;
|
|
607
|
+
}
|
|
608
|
+
/** Event emitted when the selected step has changed. */
|
|
609
|
+
selectionChange = new EventEmitter();
|
|
610
|
+
/** Output to support two-way binding on `[(selectedIndex)]` */
|
|
611
|
+
selectedIndexChange = new EventEmitter();
|
|
612
|
+
/** Used to track unique ID for each stepper component. */
|
|
613
|
+
_groupId = inject(_IdGenerator).getId("cdk-stepper-");
|
|
614
|
+
/** Orientation of the stepper. */
|
|
615
|
+
get orientation() {
|
|
616
|
+
return this._orientation;
|
|
617
|
+
}
|
|
618
|
+
set orientation(value) {
|
|
619
|
+
this._orientation = value;
|
|
620
|
+
if (this._keyManager) {
|
|
621
|
+
this._keyManager.withVerticalOrientation(value === "vertical");
|
|
622
|
+
}
|
|
623
|
+
}
|
|
624
|
+
_orientation = "horizontal";
|
|
625
|
+
constructor() {
|
|
626
|
+
}
|
|
627
|
+
ngAfterContentInit() {
|
|
628
|
+
this._steps.changes.pipe(startWith(this._steps), takeUntil(this._destroyed)).subscribe((steps) => {
|
|
629
|
+
this.steps.reset(steps.filter((step) => step._stepper === this));
|
|
630
|
+
this.steps.forEach((step, index) => step.index.set(index));
|
|
631
|
+
this.steps.notifyOnChanges();
|
|
632
|
+
});
|
|
633
|
+
}
|
|
634
|
+
ngAfterViewInit() {
|
|
635
|
+
this._stepHeader.changes.pipe(startWith(this._stepHeader), takeUntil(this._destroyed)).subscribe((headers) => {
|
|
636
|
+
this._sortedHeaders.reset(headers.toArray().sort((a, b) => {
|
|
637
|
+
const documentPosition = a._elementRef.nativeElement.compareDocumentPosition(b._elementRef.nativeElement);
|
|
638
|
+
return documentPosition & Node.DOCUMENT_POSITION_FOLLOWING ? -1 : 1;
|
|
639
|
+
}));
|
|
640
|
+
this._sortedHeaders.notifyOnChanges();
|
|
641
|
+
});
|
|
642
|
+
this._keyManager = new FocusKeyManager(this._sortedHeaders).withWrap().withHomeAndEnd().withVerticalOrientation(this._orientation === "vertical");
|
|
643
|
+
this._keyManager.updateActiveItem(this.selectedIndex);
|
|
644
|
+
(this._dir ? this._dir.change : of()).pipe(startWith(this._layoutDirection()), takeUntil(this._destroyed)).subscribe((direction) => this._keyManager?.withHorizontalOrientation(direction));
|
|
645
|
+
this._keyManager.updateActiveItem(this.selectedIndex);
|
|
646
|
+
this.steps.changes.subscribe(() => {
|
|
647
|
+
if (!this.selected) {
|
|
648
|
+
this._selectedIndex.set(Math.max(this.selectedIndex - 1, 0));
|
|
649
|
+
}
|
|
650
|
+
});
|
|
651
|
+
if (!this._isValidIndex(this.selectedIndex)) {
|
|
652
|
+
this._selectedIndex.set(0);
|
|
653
|
+
}
|
|
654
|
+
if (this.linear && this.selectedIndex > 0) {
|
|
655
|
+
const visitedSteps = this.steps.toArray().slice(0, this._selectedIndex());
|
|
656
|
+
for (const step of visitedSteps) {
|
|
657
|
+
step._markAsInteracted();
|
|
658
|
+
}
|
|
659
|
+
}
|
|
660
|
+
}
|
|
661
|
+
ngOnDestroy() {
|
|
662
|
+
this._keyManager?.destroy();
|
|
663
|
+
this.steps.destroy();
|
|
664
|
+
this._sortedHeaders.destroy();
|
|
665
|
+
this._destroyed.next();
|
|
666
|
+
this._destroyed.complete();
|
|
667
|
+
}
|
|
668
|
+
/** Selects and focuses the next step in list. */
|
|
669
|
+
next() {
|
|
670
|
+
this.selectedIndex = Math.min(this._selectedIndex() + 1, this.steps.length - 1);
|
|
671
|
+
}
|
|
672
|
+
/** Selects and focuses the previous step in list. */
|
|
673
|
+
previous() {
|
|
674
|
+
this.selectedIndex = Math.max(this._selectedIndex() - 1, 0);
|
|
675
|
+
}
|
|
676
|
+
/** Resets the stepper to its initial state. Note that this includes clearing form data. */
|
|
677
|
+
reset() {
|
|
678
|
+
this._updateSelectedItemIndex(0);
|
|
679
|
+
this.steps.forEach((step) => step.reset());
|
|
680
|
+
this._stateChanged();
|
|
681
|
+
}
|
|
682
|
+
/** Returns a unique id for each step label element. */
|
|
683
|
+
_getStepLabelId(i) {
|
|
684
|
+
return `${this._groupId}-label-${i}`;
|
|
685
|
+
}
|
|
686
|
+
/** Returns unique id for each step content element. */
|
|
687
|
+
_getStepContentId(i) {
|
|
688
|
+
return `${this._groupId}-content-${i}`;
|
|
689
|
+
}
|
|
690
|
+
/** Marks the component to be change detected. */
|
|
691
|
+
_stateChanged() {
|
|
692
|
+
this._changeDetectorRef.markForCheck();
|
|
693
|
+
}
|
|
694
|
+
/** Returns position state of the step with the given index. */
|
|
695
|
+
_getAnimationDirection(index) {
|
|
696
|
+
const position = index - this._selectedIndex();
|
|
697
|
+
if (position < 0) {
|
|
698
|
+
return this._layoutDirection() === "rtl" ? "next" : "previous";
|
|
699
|
+
} else if (position > 0) {
|
|
700
|
+
return this._layoutDirection() === "rtl" ? "previous" : "next";
|
|
701
|
+
}
|
|
702
|
+
return "current";
|
|
703
|
+
}
|
|
704
|
+
/** Returns the index of the currently-focused step header. */
|
|
705
|
+
_getFocusIndex() {
|
|
706
|
+
return this._keyManager ? this._keyManager.activeItemIndex : this._selectedIndex();
|
|
707
|
+
}
|
|
708
|
+
_updateSelectedItemIndex(newIndex) {
|
|
709
|
+
const stepsArray = this.steps.toArray();
|
|
710
|
+
const selectedIndex = this._selectedIndex();
|
|
711
|
+
this.selectionChange.emit({
|
|
712
|
+
selectedIndex: newIndex,
|
|
713
|
+
previouslySelectedIndex: selectedIndex,
|
|
714
|
+
selectedStep: stepsArray[newIndex],
|
|
715
|
+
previouslySelectedStep: stepsArray[selectedIndex]
|
|
716
|
+
});
|
|
717
|
+
if (this._keyManager) {
|
|
718
|
+
this._containsFocus() ? this._keyManager.setActiveItem(newIndex) : this._keyManager.updateActiveItem(newIndex);
|
|
719
|
+
}
|
|
720
|
+
this._selectedIndex.set(newIndex);
|
|
721
|
+
this.selectedIndexChange.emit(newIndex);
|
|
722
|
+
this._stateChanged();
|
|
723
|
+
}
|
|
724
|
+
_onKeydown(event) {
|
|
725
|
+
const hasModifier = hasModifierKey(event);
|
|
726
|
+
const keyCode = event.keyCode;
|
|
727
|
+
const manager = this._keyManager;
|
|
728
|
+
if (manager?.activeItemIndex != null && !hasModifier && (keyCode === SPACE || keyCode === ENTER)) {
|
|
729
|
+
this.selectedIndex = manager.activeItemIndex;
|
|
730
|
+
event.preventDefault();
|
|
731
|
+
} else {
|
|
732
|
+
manager?.setFocusOrigin("keyboard").onKeydown(event);
|
|
733
|
+
}
|
|
734
|
+
}
|
|
735
|
+
_anyControlsInvalidOrPending(index) {
|
|
736
|
+
if (this.linear && index >= 0) {
|
|
737
|
+
return this.steps.toArray().slice(0, index).some((step) => {
|
|
738
|
+
const control = step.stepControl;
|
|
739
|
+
const isIncomplete = control ? control.invalid || control.pending || !step.interacted : !step.completed;
|
|
740
|
+
return isIncomplete && !step.optional && !step._completedOverride();
|
|
741
|
+
});
|
|
742
|
+
}
|
|
743
|
+
return false;
|
|
744
|
+
}
|
|
745
|
+
_layoutDirection() {
|
|
746
|
+
return this._dir && this._dir.value === "rtl" ? "rtl" : "ltr";
|
|
747
|
+
}
|
|
748
|
+
/** Checks whether the stepper contains the focused element. */
|
|
749
|
+
_containsFocus() {
|
|
750
|
+
const stepperElement = this._elementRef.nativeElement;
|
|
751
|
+
const focusedElement = _getFocusedElementPierceShadowDom();
|
|
752
|
+
return stepperElement === focusedElement || stepperElement.contains(focusedElement);
|
|
753
|
+
}
|
|
754
|
+
/** Checks whether the passed-in index is a valid step index. */
|
|
755
|
+
_isValidIndex(index) {
|
|
756
|
+
return index > -1 && (!this.steps || index < this.steps.length);
|
|
757
|
+
}
|
|
758
|
+
static \u0275fac = function CdkStepper_Factory(__ngFactoryType__) {
|
|
759
|
+
return new (__ngFactoryType__ || _CdkStepper)();
|
|
760
|
+
};
|
|
761
|
+
static \u0275dir = /* @__PURE__ */ \u0275\u0275defineDirective({
|
|
762
|
+
type: _CdkStepper,
|
|
763
|
+
selectors: [["", "cdkStepper", ""]],
|
|
764
|
+
contentQueries: function CdkStepper_ContentQueries(rf, ctx, dirIndex) {
|
|
765
|
+
if (rf & 1) {
|
|
766
|
+
\u0275\u0275contentQuery(dirIndex, CdkStep, 5);
|
|
767
|
+
\u0275\u0275contentQuery(dirIndex, CdkStepHeader, 5);
|
|
768
|
+
}
|
|
769
|
+
if (rf & 2) {
|
|
770
|
+
let _t;
|
|
771
|
+
\u0275\u0275queryRefresh(_t = \u0275\u0275loadQuery()) && (ctx._steps = _t);
|
|
772
|
+
\u0275\u0275queryRefresh(_t = \u0275\u0275loadQuery()) && (ctx._stepHeader = _t);
|
|
773
|
+
}
|
|
774
|
+
},
|
|
775
|
+
inputs: {
|
|
776
|
+
linear: [2, "linear", "linear", booleanAttribute],
|
|
777
|
+
selectedIndex: [2, "selectedIndex", "selectedIndex", numberAttribute],
|
|
778
|
+
selected: "selected",
|
|
779
|
+
orientation: "orientation"
|
|
780
|
+
},
|
|
781
|
+
outputs: {
|
|
782
|
+
selectionChange: "selectionChange",
|
|
783
|
+
selectedIndexChange: "selectedIndexChange"
|
|
784
|
+
},
|
|
785
|
+
exportAs: ["cdkStepper"]
|
|
786
|
+
});
|
|
787
|
+
};
|
|
788
|
+
(() => {
|
|
789
|
+
(typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(CdkStepper, [{
|
|
790
|
+
type: Directive,
|
|
791
|
+
args: [{
|
|
792
|
+
selector: "[cdkStepper]",
|
|
793
|
+
exportAs: "cdkStepper"
|
|
794
|
+
}]
|
|
795
|
+
}], () => [], {
|
|
796
|
+
_steps: [{
|
|
797
|
+
type: ContentChildren,
|
|
798
|
+
args: [CdkStep, {
|
|
799
|
+
descendants: true
|
|
800
|
+
}]
|
|
801
|
+
}],
|
|
802
|
+
_stepHeader: [{
|
|
803
|
+
type: ContentChildren,
|
|
804
|
+
args: [CdkStepHeader, {
|
|
805
|
+
descendants: true
|
|
806
|
+
}]
|
|
807
|
+
}],
|
|
808
|
+
linear: [{
|
|
809
|
+
type: Input,
|
|
810
|
+
args: [{
|
|
811
|
+
transform: booleanAttribute
|
|
812
|
+
}]
|
|
813
|
+
}],
|
|
814
|
+
selectedIndex: [{
|
|
815
|
+
type: Input,
|
|
816
|
+
args: [{
|
|
817
|
+
transform: numberAttribute
|
|
818
|
+
}]
|
|
819
|
+
}],
|
|
820
|
+
selected: [{
|
|
821
|
+
type: Input
|
|
822
|
+
}],
|
|
823
|
+
selectionChange: [{
|
|
824
|
+
type: Output
|
|
825
|
+
}],
|
|
826
|
+
selectedIndexChange: [{
|
|
827
|
+
type: Output
|
|
828
|
+
}],
|
|
829
|
+
orientation: [{
|
|
830
|
+
type: Input
|
|
831
|
+
}]
|
|
832
|
+
});
|
|
833
|
+
})();
|
|
834
|
+
var CdkStepperNext = class _CdkStepperNext {
|
|
835
|
+
_stepper = inject(CdkStepper);
|
|
836
|
+
/** Type of the next button. Defaults to "submit" if not specified. */
|
|
837
|
+
type = "submit";
|
|
838
|
+
constructor() {
|
|
839
|
+
}
|
|
840
|
+
static \u0275fac = function CdkStepperNext_Factory(__ngFactoryType__) {
|
|
841
|
+
return new (__ngFactoryType__ || _CdkStepperNext)();
|
|
842
|
+
};
|
|
843
|
+
static \u0275dir = /* @__PURE__ */ \u0275\u0275defineDirective({
|
|
844
|
+
type: _CdkStepperNext,
|
|
845
|
+
selectors: [["button", "cdkStepperNext", ""]],
|
|
846
|
+
hostVars: 1,
|
|
847
|
+
hostBindings: function CdkStepperNext_HostBindings(rf, ctx) {
|
|
848
|
+
if (rf & 1) {
|
|
849
|
+
\u0275\u0275listener("click", function CdkStepperNext_click_HostBindingHandler() {
|
|
850
|
+
return ctx._stepper.next();
|
|
851
|
+
});
|
|
852
|
+
}
|
|
853
|
+
if (rf & 2) {
|
|
854
|
+
\u0275\u0275domProperty("type", ctx.type);
|
|
855
|
+
}
|
|
856
|
+
},
|
|
857
|
+
inputs: {
|
|
858
|
+
type: "type"
|
|
859
|
+
}
|
|
860
|
+
});
|
|
861
|
+
};
|
|
862
|
+
(() => {
|
|
863
|
+
(typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(CdkStepperNext, [{
|
|
864
|
+
type: Directive,
|
|
865
|
+
args: [{
|
|
866
|
+
selector: "button[cdkStepperNext]",
|
|
867
|
+
host: {
|
|
868
|
+
"[type]": "type",
|
|
869
|
+
"(click)": "_stepper.next()"
|
|
870
|
+
}
|
|
871
|
+
}]
|
|
872
|
+
}], () => [], {
|
|
873
|
+
type: [{
|
|
874
|
+
type: Input
|
|
875
|
+
}]
|
|
876
|
+
});
|
|
877
|
+
})();
|
|
878
|
+
var CdkStepperPrevious = class _CdkStepperPrevious {
|
|
879
|
+
_stepper = inject(CdkStepper);
|
|
880
|
+
/** Type of the previous button. Defaults to "button" if not specified. */
|
|
881
|
+
type = "button";
|
|
882
|
+
constructor() {
|
|
883
|
+
}
|
|
884
|
+
static \u0275fac = function CdkStepperPrevious_Factory(__ngFactoryType__) {
|
|
885
|
+
return new (__ngFactoryType__ || _CdkStepperPrevious)();
|
|
886
|
+
};
|
|
887
|
+
static \u0275dir = /* @__PURE__ */ \u0275\u0275defineDirective({
|
|
888
|
+
type: _CdkStepperPrevious,
|
|
889
|
+
selectors: [["button", "cdkStepperPrevious", ""]],
|
|
890
|
+
hostVars: 1,
|
|
891
|
+
hostBindings: function CdkStepperPrevious_HostBindings(rf, ctx) {
|
|
892
|
+
if (rf & 1) {
|
|
893
|
+
\u0275\u0275listener("click", function CdkStepperPrevious_click_HostBindingHandler() {
|
|
894
|
+
return ctx._stepper.previous();
|
|
895
|
+
});
|
|
896
|
+
}
|
|
897
|
+
if (rf & 2) {
|
|
898
|
+
\u0275\u0275domProperty("type", ctx.type);
|
|
899
|
+
}
|
|
900
|
+
},
|
|
901
|
+
inputs: {
|
|
902
|
+
type: "type"
|
|
903
|
+
}
|
|
904
|
+
});
|
|
905
|
+
};
|
|
906
|
+
(() => {
|
|
907
|
+
(typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(CdkStepperPrevious, [{
|
|
908
|
+
type: Directive,
|
|
909
|
+
args: [{
|
|
910
|
+
selector: "button[cdkStepperPrevious]",
|
|
911
|
+
host: {
|
|
912
|
+
"[type]": "type",
|
|
913
|
+
"(click)": "_stepper.previous()"
|
|
914
|
+
}
|
|
915
|
+
}]
|
|
916
|
+
}], () => [], {
|
|
917
|
+
type: [{
|
|
918
|
+
type: Input
|
|
919
|
+
}]
|
|
920
|
+
});
|
|
921
|
+
})();
|
|
922
|
+
var CdkStepperModule = class _CdkStepperModule {
|
|
923
|
+
static \u0275fac = function CdkStepperModule_Factory(__ngFactoryType__) {
|
|
924
|
+
return new (__ngFactoryType__ || _CdkStepperModule)();
|
|
925
|
+
};
|
|
926
|
+
static \u0275mod = /* @__PURE__ */ \u0275\u0275defineNgModule({
|
|
927
|
+
type: _CdkStepperModule,
|
|
928
|
+
imports: [BidiModule, CdkStep, CdkStepper, CdkStepHeader, CdkStepLabel, CdkStepperNext, CdkStepperPrevious],
|
|
929
|
+
exports: [CdkStep, CdkStepper, CdkStepHeader, CdkStepLabel, CdkStepperNext, CdkStepperPrevious]
|
|
930
|
+
});
|
|
931
|
+
static \u0275inj = /* @__PURE__ */ \u0275\u0275defineInjector({
|
|
932
|
+
imports: [BidiModule]
|
|
933
|
+
});
|
|
934
|
+
};
|
|
935
|
+
(() => {
|
|
936
|
+
(typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(CdkStepperModule, [{
|
|
937
|
+
type: NgModule,
|
|
938
|
+
args: [{
|
|
939
|
+
imports: [BidiModule, CdkStep, CdkStepper, CdkStepHeader, CdkStepLabel, CdkStepperNext, CdkStepperPrevious],
|
|
940
|
+
exports: [CdkStep, CdkStepper, CdkStepHeader, CdkStepLabel, CdkStepperNext, CdkStepperPrevious]
|
|
941
|
+
}]
|
|
942
|
+
}], null, null);
|
|
943
|
+
})();
|
|
944
|
+
|
|
945
|
+
// node_modules/@angular/material/fesm2022/stepper.mjs
|
|
946
|
+
var _c02 = (a0, a1, a2) => ({
|
|
947
|
+
index: a0,
|
|
948
|
+
active: a1,
|
|
949
|
+
optional: a2
|
|
950
|
+
});
|
|
951
|
+
function MatStepHeader_Conditional_3_Template(rf, ctx) {
|
|
952
|
+
if (rf & 1) {
|
|
953
|
+
\u0275\u0275elementContainer(0, 2);
|
|
954
|
+
}
|
|
955
|
+
if (rf & 2) {
|
|
956
|
+
const ctx_r0 = \u0275\u0275nextContext();
|
|
957
|
+
\u0275\u0275property("ngTemplateOutlet", ctx_r0.iconOverrides[ctx_r0.state])("ngTemplateOutletContext", \u0275\u0275pureFunction3(2, _c02, ctx_r0.index, ctx_r0.active, ctx_r0.optional));
|
|
958
|
+
}
|
|
959
|
+
}
|
|
960
|
+
function MatStepHeader_Conditional_4_Case_0_Template(rf, ctx) {
|
|
961
|
+
if (rf & 1) {
|
|
962
|
+
\u0275\u0275elementStart(0, "span", 7);
|
|
963
|
+
\u0275\u0275text(1);
|
|
964
|
+
\u0275\u0275elementEnd();
|
|
965
|
+
}
|
|
966
|
+
if (rf & 2) {
|
|
967
|
+
const ctx_r0 = \u0275\u0275nextContext(2);
|
|
968
|
+
\u0275\u0275advance();
|
|
969
|
+
\u0275\u0275textInterpolate(ctx_r0._getDefaultTextForState(ctx_r0.state));
|
|
970
|
+
}
|
|
971
|
+
}
|
|
972
|
+
function MatStepHeader_Conditional_4_Case_1_Conditional_0_Template(rf, ctx) {
|
|
973
|
+
if (rf & 1) {
|
|
974
|
+
\u0275\u0275elementStart(0, "span", 8);
|
|
975
|
+
\u0275\u0275text(1);
|
|
976
|
+
\u0275\u0275elementEnd();
|
|
977
|
+
}
|
|
978
|
+
if (rf & 2) {
|
|
979
|
+
const ctx_r0 = \u0275\u0275nextContext(3);
|
|
980
|
+
\u0275\u0275advance();
|
|
981
|
+
\u0275\u0275textInterpolate(ctx_r0._intl.completedLabel);
|
|
982
|
+
}
|
|
983
|
+
}
|
|
984
|
+
function MatStepHeader_Conditional_4_Case_1_Conditional_1_Template(rf, ctx) {
|
|
985
|
+
if (rf & 1) {
|
|
986
|
+
\u0275\u0275elementStart(0, "span", 8);
|
|
987
|
+
\u0275\u0275text(1);
|
|
988
|
+
\u0275\u0275elementEnd();
|
|
989
|
+
}
|
|
990
|
+
if (rf & 2) {
|
|
991
|
+
const ctx_r0 = \u0275\u0275nextContext(3);
|
|
992
|
+
\u0275\u0275advance();
|
|
993
|
+
\u0275\u0275textInterpolate(ctx_r0._intl.editableLabel);
|
|
994
|
+
}
|
|
995
|
+
}
|
|
996
|
+
function MatStepHeader_Conditional_4_Case_1_Template(rf, ctx) {
|
|
997
|
+
if (rf & 1) {
|
|
998
|
+
\u0275\u0275conditionalCreate(0, MatStepHeader_Conditional_4_Case_1_Conditional_0_Template, 2, 1, "span", 8)(1, MatStepHeader_Conditional_4_Case_1_Conditional_1_Template, 2, 1, "span", 8);
|
|
999
|
+
\u0275\u0275elementStart(2, "mat-icon", 7);
|
|
1000
|
+
\u0275\u0275text(3);
|
|
1001
|
+
\u0275\u0275elementEnd();
|
|
1002
|
+
}
|
|
1003
|
+
if (rf & 2) {
|
|
1004
|
+
const ctx_r0 = \u0275\u0275nextContext(2);
|
|
1005
|
+
\u0275\u0275conditional(ctx_r0.state === "done" ? 0 : ctx_r0.state === "edit" ? 1 : -1);
|
|
1006
|
+
\u0275\u0275advance(3);
|
|
1007
|
+
\u0275\u0275textInterpolate(ctx_r0._getDefaultTextForState(ctx_r0.state));
|
|
1008
|
+
}
|
|
1009
|
+
}
|
|
1010
|
+
function MatStepHeader_Conditional_4_Template(rf, ctx) {
|
|
1011
|
+
if (rf & 1) {
|
|
1012
|
+
\u0275\u0275conditionalCreate(0, MatStepHeader_Conditional_4_Case_0_Template, 2, 1, "span", 7)(1, MatStepHeader_Conditional_4_Case_1_Template, 4, 2);
|
|
1013
|
+
}
|
|
1014
|
+
if (rf & 2) {
|
|
1015
|
+
let tmp_1_0;
|
|
1016
|
+
const ctx_r0 = \u0275\u0275nextContext();
|
|
1017
|
+
\u0275\u0275conditional((tmp_1_0 = ctx_r0.state) === "number" ? 0 : 1);
|
|
1018
|
+
}
|
|
1019
|
+
}
|
|
1020
|
+
function MatStepHeader_Conditional_6_Template(rf, ctx) {
|
|
1021
|
+
if (rf & 1) {
|
|
1022
|
+
\u0275\u0275elementStart(0, "div", 4);
|
|
1023
|
+
\u0275\u0275elementContainer(1, 9);
|
|
1024
|
+
\u0275\u0275elementEnd();
|
|
1025
|
+
}
|
|
1026
|
+
if (rf & 2) {
|
|
1027
|
+
\u0275\u0275advance();
|
|
1028
|
+
\u0275\u0275property("ngTemplateOutlet", ctx.template);
|
|
1029
|
+
}
|
|
1030
|
+
}
|
|
1031
|
+
function MatStepHeader_Conditional_7_Template(rf, ctx) {
|
|
1032
|
+
if (rf & 1) {
|
|
1033
|
+
\u0275\u0275elementStart(0, "div", 4);
|
|
1034
|
+
\u0275\u0275text(1);
|
|
1035
|
+
\u0275\u0275elementEnd();
|
|
1036
|
+
}
|
|
1037
|
+
if (rf & 2) {
|
|
1038
|
+
const ctx_r0 = \u0275\u0275nextContext();
|
|
1039
|
+
\u0275\u0275advance();
|
|
1040
|
+
\u0275\u0275textInterpolate(ctx_r0.label);
|
|
1041
|
+
}
|
|
1042
|
+
}
|
|
1043
|
+
function MatStepHeader_Conditional_8_Template(rf, ctx) {
|
|
1044
|
+
if (rf & 1) {
|
|
1045
|
+
\u0275\u0275elementStart(0, "div", 5);
|
|
1046
|
+
\u0275\u0275text(1);
|
|
1047
|
+
\u0275\u0275elementEnd();
|
|
1048
|
+
}
|
|
1049
|
+
if (rf & 2) {
|
|
1050
|
+
const ctx_r0 = \u0275\u0275nextContext();
|
|
1051
|
+
\u0275\u0275advance();
|
|
1052
|
+
\u0275\u0275textInterpolate(ctx_r0._intl.optionalLabel);
|
|
1053
|
+
}
|
|
1054
|
+
}
|
|
1055
|
+
function MatStepHeader_Conditional_9_Template(rf, ctx) {
|
|
1056
|
+
if (rf & 1) {
|
|
1057
|
+
\u0275\u0275elementStart(0, "div", 6);
|
|
1058
|
+
\u0275\u0275text(1);
|
|
1059
|
+
\u0275\u0275elementEnd();
|
|
1060
|
+
}
|
|
1061
|
+
if (rf & 2) {
|
|
1062
|
+
const ctx_r0 = \u0275\u0275nextContext();
|
|
1063
|
+
\u0275\u0275advance();
|
|
1064
|
+
\u0275\u0275textInterpolate(ctx_r0.errorMessage);
|
|
1065
|
+
}
|
|
1066
|
+
}
|
|
1067
|
+
var _c1 = ["*"];
|
|
1068
|
+
function MatStep_ng_template_0_ng_template_1_Template(rf, ctx) {
|
|
1069
|
+
}
|
|
1070
|
+
function MatStep_ng_template_0_Template(rf, ctx) {
|
|
1071
|
+
if (rf & 1) {
|
|
1072
|
+
\u0275\u0275projection(0);
|
|
1073
|
+
\u0275\u0275template(1, MatStep_ng_template_0_ng_template_1_Template, 0, 0, "ng-template", 0);
|
|
1074
|
+
}
|
|
1075
|
+
if (rf & 2) {
|
|
1076
|
+
const ctx_r0 = \u0275\u0275nextContext();
|
|
1077
|
+
\u0275\u0275advance();
|
|
1078
|
+
\u0275\u0275property("cdkPortalOutlet", ctx_r0._portal);
|
|
1079
|
+
}
|
|
1080
|
+
}
|
|
1081
|
+
var _c2 = ["animatedContainer"];
|
|
1082
|
+
var _c3 = (a0) => ({
|
|
1083
|
+
step: a0
|
|
1084
|
+
});
|
|
1085
|
+
function MatStepper_Conditional_0_Template(rf, ctx) {
|
|
1086
|
+
if (rf & 1) {
|
|
1087
|
+
\u0275\u0275projection(0);
|
|
1088
|
+
}
|
|
1089
|
+
}
|
|
1090
|
+
function MatStepper_Case_1_For_3_Conditional_1_Template(rf, ctx) {
|
|
1091
|
+
if (rf & 1) {
|
|
1092
|
+
\u0275\u0275element(0, "div", 7);
|
|
1093
|
+
}
|
|
1094
|
+
}
|
|
1095
|
+
function MatStepper_Case_1_For_3_Template(rf, ctx) {
|
|
1096
|
+
if (rf & 1) {
|
|
1097
|
+
\u0275\u0275elementContainer(0, 6);
|
|
1098
|
+
\u0275\u0275conditionalCreate(1, MatStepper_Case_1_For_3_Conditional_1_Template, 1, 0, "div", 7);
|
|
1099
|
+
}
|
|
1100
|
+
if (rf & 2) {
|
|
1101
|
+
const step_r1 = ctx.$implicit;
|
|
1102
|
+
const \u0275$index_8_r2 = ctx.$index;
|
|
1103
|
+
const \u0275$count_8_r3 = ctx.$count;
|
|
1104
|
+
\u0275\u0275nextContext(2);
|
|
1105
|
+
const stepTemplate_r4 = \u0275\u0275reference(4);
|
|
1106
|
+
\u0275\u0275property("ngTemplateOutlet", stepTemplate_r4)("ngTemplateOutletContext", \u0275\u0275pureFunction1(3, _c3, step_r1));
|
|
1107
|
+
\u0275\u0275advance();
|
|
1108
|
+
\u0275\u0275conditional(!(\u0275$index_8_r2 === \u0275$count_8_r3 - 1) ? 1 : -1);
|
|
1109
|
+
}
|
|
1110
|
+
}
|
|
1111
|
+
function MatStepper_Case_1_For_6_Template(rf, ctx) {
|
|
1112
|
+
if (rf & 1) {
|
|
1113
|
+
\u0275\u0275elementStart(0, "div", 8, 1);
|
|
1114
|
+
\u0275\u0275elementContainer(2, 9);
|
|
1115
|
+
\u0275\u0275elementEnd();
|
|
1116
|
+
}
|
|
1117
|
+
if (rf & 2) {
|
|
1118
|
+
const step_r5 = ctx.$implicit;
|
|
1119
|
+
const $index_r6 = ctx.$index;
|
|
1120
|
+
const ctx_r6 = \u0275\u0275nextContext(2);
|
|
1121
|
+
\u0275\u0275classMap("mat-horizontal-stepper-content-" + ctx_r6._getAnimationDirection($index_r6));
|
|
1122
|
+
\u0275\u0275property("id", ctx_r6._getStepContentId($index_r6));
|
|
1123
|
+
\u0275\u0275attribute("aria-labelledby", ctx_r6._getStepLabelId($index_r6))("inert", ctx_r6.selectedIndex === $index_r6 ? null : "");
|
|
1124
|
+
\u0275\u0275advance(2);
|
|
1125
|
+
\u0275\u0275property("ngTemplateOutlet", step_r5.content);
|
|
1126
|
+
}
|
|
1127
|
+
}
|
|
1128
|
+
function MatStepper_Case_1_Template(rf, ctx) {
|
|
1129
|
+
if (rf & 1) {
|
|
1130
|
+
\u0275\u0275elementStart(0, "div", 2)(1, "div", 3);
|
|
1131
|
+
\u0275\u0275repeaterCreate(2, MatStepper_Case_1_For_3_Template, 2, 5, null, null, \u0275\u0275repeaterTrackByIdentity);
|
|
1132
|
+
\u0275\u0275elementEnd();
|
|
1133
|
+
\u0275\u0275elementStart(4, "div", 4);
|
|
1134
|
+
\u0275\u0275repeaterCreate(5, MatStepper_Case_1_For_6_Template, 3, 6, "div", 5, \u0275\u0275repeaterTrackByIdentity);
|
|
1135
|
+
\u0275\u0275elementEnd()();
|
|
1136
|
+
}
|
|
1137
|
+
if (rf & 2) {
|
|
1138
|
+
const ctx_r6 = \u0275\u0275nextContext();
|
|
1139
|
+
\u0275\u0275advance(2);
|
|
1140
|
+
\u0275\u0275repeater(ctx_r6.steps);
|
|
1141
|
+
\u0275\u0275advance(3);
|
|
1142
|
+
\u0275\u0275repeater(ctx_r6.steps);
|
|
1143
|
+
}
|
|
1144
|
+
}
|
|
1145
|
+
function MatStepper_Case_2_For_1_Template(rf, ctx) {
|
|
1146
|
+
if (rf & 1) {
|
|
1147
|
+
\u0275\u0275elementStart(0, "div", 10);
|
|
1148
|
+
\u0275\u0275elementContainer(1, 6);
|
|
1149
|
+
\u0275\u0275elementStart(2, "div", 11, 1)(4, "div", 12)(5, "div", 13);
|
|
1150
|
+
\u0275\u0275elementContainer(6, 9);
|
|
1151
|
+
\u0275\u0275elementEnd()()()();
|
|
1152
|
+
}
|
|
1153
|
+
if (rf & 2) {
|
|
1154
|
+
const step_r8 = ctx.$implicit;
|
|
1155
|
+
const $index_r9 = ctx.$index;
|
|
1156
|
+
const \u0275$index_22_r10 = ctx.$index;
|
|
1157
|
+
const \u0275$count_22_r11 = ctx.$count;
|
|
1158
|
+
const ctx_r6 = \u0275\u0275nextContext(2);
|
|
1159
|
+
const stepTemplate_r4 = \u0275\u0275reference(4);
|
|
1160
|
+
\u0275\u0275advance();
|
|
1161
|
+
\u0275\u0275property("ngTemplateOutlet", stepTemplate_r4)("ngTemplateOutletContext", \u0275\u0275pureFunction1(10, _c3, step_r8));
|
|
1162
|
+
\u0275\u0275advance();
|
|
1163
|
+
\u0275\u0275classProp("mat-stepper-vertical-line", !(\u0275$index_22_r10 === \u0275$count_22_r11 - 1))("mat-vertical-content-container-active", ctx_r6.selectedIndex === $index_r9);
|
|
1164
|
+
\u0275\u0275attribute("inert", ctx_r6.selectedIndex === $index_r9 ? null : "");
|
|
1165
|
+
\u0275\u0275advance(2);
|
|
1166
|
+
\u0275\u0275property("id", ctx_r6._getStepContentId($index_r9));
|
|
1167
|
+
\u0275\u0275attribute("aria-labelledby", ctx_r6._getStepLabelId($index_r9));
|
|
1168
|
+
\u0275\u0275advance(2);
|
|
1169
|
+
\u0275\u0275property("ngTemplateOutlet", step_r8.content);
|
|
1170
|
+
}
|
|
1171
|
+
}
|
|
1172
|
+
function MatStepper_Case_2_Template(rf, ctx) {
|
|
1173
|
+
if (rf & 1) {
|
|
1174
|
+
\u0275\u0275repeaterCreate(0, MatStepper_Case_2_For_1_Template, 7, 12, "div", 10, \u0275\u0275repeaterTrackByIdentity);
|
|
1175
|
+
}
|
|
1176
|
+
if (rf & 2) {
|
|
1177
|
+
const ctx_r6 = \u0275\u0275nextContext();
|
|
1178
|
+
\u0275\u0275repeater(ctx_r6.steps);
|
|
1179
|
+
}
|
|
1180
|
+
}
|
|
1181
|
+
function MatStepper_ng_template_3_Template(rf, ctx) {
|
|
1182
|
+
if (rf & 1) {
|
|
1183
|
+
const _r12 = \u0275\u0275getCurrentView();
|
|
1184
|
+
\u0275\u0275elementStart(0, "mat-step-header", 14);
|
|
1185
|
+
\u0275\u0275listener("click", function MatStepper_ng_template_3_Template_mat_step_header_click_0_listener() {
|
|
1186
|
+
const step_r13 = \u0275\u0275restoreView(_r12).step;
|
|
1187
|
+
return \u0275\u0275resetView(step_r13.select());
|
|
1188
|
+
})("keydown", function MatStepper_ng_template_3_Template_mat_step_header_keydown_0_listener($event) {
|
|
1189
|
+
\u0275\u0275restoreView(_r12);
|
|
1190
|
+
const ctx_r6 = \u0275\u0275nextContext();
|
|
1191
|
+
return \u0275\u0275resetView(ctx_r6._onKeydown($event));
|
|
1192
|
+
});
|
|
1193
|
+
\u0275\u0275elementEnd();
|
|
1194
|
+
}
|
|
1195
|
+
if (rf & 2) {
|
|
1196
|
+
const step_r13 = ctx.step;
|
|
1197
|
+
const ctx_r6 = \u0275\u0275nextContext();
|
|
1198
|
+
\u0275\u0275classProp("mat-horizontal-stepper-header", ctx_r6.orientation === "horizontal")("mat-vertical-stepper-header", ctx_r6.orientation === "vertical");
|
|
1199
|
+
\u0275\u0275property("tabIndex", ctx_r6._getFocusIndex() === step_r13.index() ? 0 : -1)("id", ctx_r6._getStepLabelId(step_r13.index()))("index", step_r13.index())("state", step_r13.indicatorType())("label", step_r13.stepLabel || step_r13.label)("selected", step_r13.isSelected())("active", step_r13.isNavigable())("optional", step_r13.optional)("errorMessage", step_r13.errorMessage)("iconOverrides", ctx_r6._iconOverrides)("disableRipple", ctx_r6.disableRipple || !step_r13.isNavigable())("color", step_r13.color || ctx_r6.color);
|
|
1200
|
+
\u0275\u0275attribute("aria-posinset", step_r13.index() + 1)("aria-setsize", ctx_r6.steps.length)("aria-controls", ctx_r6._getStepContentId(step_r13.index()))("aria-selected", step_r13.isSelected())("aria-label", step_r13.ariaLabel || null)("aria-labelledby", !step_r13.ariaLabel && step_r13.ariaLabelledby ? step_r13.ariaLabelledby : null)("aria-disabled", step_r13.isNavigable() ? null : true);
|
|
1201
|
+
}
|
|
1202
|
+
}
|
|
1203
|
+
var MatStepLabel = class _MatStepLabel extends CdkStepLabel {
|
|
1204
|
+
static \u0275fac = /* @__PURE__ */ (() => {
|
|
1205
|
+
let \u0275MatStepLabel_BaseFactory;
|
|
1206
|
+
return function MatStepLabel_Factory(__ngFactoryType__) {
|
|
1207
|
+
return (\u0275MatStepLabel_BaseFactory || (\u0275MatStepLabel_BaseFactory = \u0275\u0275getInheritedFactory(_MatStepLabel)))(__ngFactoryType__ || _MatStepLabel);
|
|
1208
|
+
};
|
|
1209
|
+
})();
|
|
1210
|
+
static \u0275dir = /* @__PURE__ */ \u0275\u0275defineDirective({
|
|
1211
|
+
type: _MatStepLabel,
|
|
1212
|
+
selectors: [["", "matStepLabel", ""]],
|
|
1213
|
+
features: [\u0275\u0275InheritDefinitionFeature]
|
|
1214
|
+
});
|
|
1215
|
+
};
|
|
1216
|
+
(() => {
|
|
1217
|
+
(typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(MatStepLabel, [{
|
|
1218
|
+
type: Directive,
|
|
1219
|
+
args: [{
|
|
1220
|
+
selector: "[matStepLabel]"
|
|
1221
|
+
}]
|
|
1222
|
+
}], null, null);
|
|
1223
|
+
})();
|
|
1224
|
+
var MatStepperIntl = class _MatStepperIntl {
|
|
1225
|
+
/**
|
|
1226
|
+
* Stream that emits whenever the labels here are changed. Use this to notify
|
|
1227
|
+
* components if the labels have changed after initialization.
|
|
1228
|
+
*/
|
|
1229
|
+
changes = new Subject();
|
|
1230
|
+
/** Label that is rendered below optional steps. */
|
|
1231
|
+
optionalLabel = "Optional";
|
|
1232
|
+
/** Label that is used to indicate step as completed to screen readers. */
|
|
1233
|
+
completedLabel = "Completed";
|
|
1234
|
+
/** Label that is used to indicate step as editable to screen readers. */
|
|
1235
|
+
editableLabel = "Editable";
|
|
1236
|
+
static \u0275fac = function MatStepperIntl_Factory(__ngFactoryType__) {
|
|
1237
|
+
return new (__ngFactoryType__ || _MatStepperIntl)();
|
|
1238
|
+
};
|
|
1239
|
+
static \u0275prov = /* @__PURE__ */ \u0275\u0275defineInjectable({
|
|
1240
|
+
token: _MatStepperIntl,
|
|
1241
|
+
factory: _MatStepperIntl.\u0275fac,
|
|
1242
|
+
providedIn: "root"
|
|
1243
|
+
});
|
|
1244
|
+
};
|
|
1245
|
+
(() => {
|
|
1246
|
+
(typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(MatStepperIntl, [{
|
|
1247
|
+
type: Injectable,
|
|
1248
|
+
args: [{
|
|
1249
|
+
providedIn: "root"
|
|
1250
|
+
}]
|
|
1251
|
+
}], null, null);
|
|
1252
|
+
})();
|
|
1253
|
+
function MAT_STEPPER_INTL_PROVIDER_FACTORY(parentIntl) {
|
|
1254
|
+
return parentIntl || new MatStepperIntl();
|
|
1255
|
+
}
|
|
1256
|
+
var MAT_STEPPER_INTL_PROVIDER = {
|
|
1257
|
+
provide: MatStepperIntl,
|
|
1258
|
+
deps: [[new Optional(), new SkipSelf(), MatStepperIntl]],
|
|
1259
|
+
useFactory: MAT_STEPPER_INTL_PROVIDER_FACTORY
|
|
1260
|
+
};
|
|
1261
|
+
var MatStepHeader = class _MatStepHeader extends CdkStepHeader {
|
|
1262
|
+
_intl = inject(MatStepperIntl);
|
|
1263
|
+
_focusMonitor = inject(FocusMonitor);
|
|
1264
|
+
_intlSubscription;
|
|
1265
|
+
/** State of the given step. */
|
|
1266
|
+
state;
|
|
1267
|
+
/** Label of the given step. */
|
|
1268
|
+
label;
|
|
1269
|
+
/** Error message to display when there's an error. */
|
|
1270
|
+
errorMessage;
|
|
1271
|
+
/** Overrides for the header icons, passed in via the stepper. */
|
|
1272
|
+
iconOverrides;
|
|
1273
|
+
/** Index of the given step. */
|
|
1274
|
+
index;
|
|
1275
|
+
/** Whether the given step is selected. */
|
|
1276
|
+
selected;
|
|
1277
|
+
/** Whether the given step label is active. */
|
|
1278
|
+
active;
|
|
1279
|
+
/** Whether the given step is optional. */
|
|
1280
|
+
optional;
|
|
1281
|
+
/** Whether the ripple should be disabled. */
|
|
1282
|
+
disableRipple;
|
|
1283
|
+
/**
|
|
1284
|
+
* Theme color of the step header. This API is supported in M2 themes only, it
|
|
1285
|
+
* has no effect in M3 themes. For color customization in M3, see https://material.angular.dev/components/stepper/styling.
|
|
1286
|
+
*
|
|
1287
|
+
* For information on applying color variants in M3, see
|
|
1288
|
+
* https://material.angular.dev/guide/material-2-theming#optional-add-backwards-compatibility-styles-for-color-variants
|
|
1289
|
+
*/
|
|
1290
|
+
color;
|
|
1291
|
+
constructor() {
|
|
1292
|
+
super();
|
|
1293
|
+
const styleLoader = inject(_CdkPrivateStyleLoader);
|
|
1294
|
+
styleLoader.load(_StructuralStylesLoader);
|
|
1295
|
+
styleLoader.load(_VisuallyHiddenLoader);
|
|
1296
|
+
const changeDetectorRef = inject(ChangeDetectorRef);
|
|
1297
|
+
this._intlSubscription = this._intl.changes.subscribe(() => changeDetectorRef.markForCheck());
|
|
1298
|
+
}
|
|
1299
|
+
ngAfterViewInit() {
|
|
1300
|
+
this._focusMonitor.monitor(this._elementRef, true);
|
|
1301
|
+
}
|
|
1302
|
+
ngOnDestroy() {
|
|
1303
|
+
this._intlSubscription.unsubscribe();
|
|
1304
|
+
this._focusMonitor.stopMonitoring(this._elementRef);
|
|
1305
|
+
}
|
|
1306
|
+
/** Focuses the step header. */
|
|
1307
|
+
focus(origin, options) {
|
|
1308
|
+
if (origin) {
|
|
1309
|
+
this._focusMonitor.focusVia(this._elementRef, origin, options);
|
|
1310
|
+
} else {
|
|
1311
|
+
this._elementRef.nativeElement.focus(options);
|
|
1312
|
+
}
|
|
1313
|
+
}
|
|
1314
|
+
/** Returns string label of given step if it is a text label. */
|
|
1315
|
+
_stringLabel() {
|
|
1316
|
+
return this.label instanceof MatStepLabel ? null : this.label;
|
|
1317
|
+
}
|
|
1318
|
+
/** Returns MatStepLabel if the label of given step is a template label. */
|
|
1319
|
+
_templateLabel() {
|
|
1320
|
+
return this.label instanceof MatStepLabel ? this.label : null;
|
|
1321
|
+
}
|
|
1322
|
+
/** Returns the host HTML element. */
|
|
1323
|
+
_getHostElement() {
|
|
1324
|
+
return this._elementRef.nativeElement;
|
|
1325
|
+
}
|
|
1326
|
+
_getDefaultTextForState(state) {
|
|
1327
|
+
if (state == "number") {
|
|
1328
|
+
return `${this.index + 1}`;
|
|
1329
|
+
}
|
|
1330
|
+
if (state == "edit") {
|
|
1331
|
+
return "create";
|
|
1332
|
+
}
|
|
1333
|
+
if (state == "error") {
|
|
1334
|
+
return "warning";
|
|
1335
|
+
}
|
|
1336
|
+
return state;
|
|
1337
|
+
}
|
|
1338
|
+
_hasEmptyLabel() {
|
|
1339
|
+
return !this._stringLabel() && !this._templateLabel() && !this._hasOptionalLabel() && !this._hasErrorLabel();
|
|
1340
|
+
}
|
|
1341
|
+
_hasOptionalLabel() {
|
|
1342
|
+
return this.optional && this.state !== "error";
|
|
1343
|
+
}
|
|
1344
|
+
_hasErrorLabel() {
|
|
1345
|
+
return this.state === "error";
|
|
1346
|
+
}
|
|
1347
|
+
static \u0275fac = function MatStepHeader_Factory(__ngFactoryType__) {
|
|
1348
|
+
return new (__ngFactoryType__ || _MatStepHeader)();
|
|
1349
|
+
};
|
|
1350
|
+
static \u0275cmp = /* @__PURE__ */ \u0275\u0275defineComponent({
|
|
1351
|
+
type: _MatStepHeader,
|
|
1352
|
+
selectors: [["mat-step-header"]],
|
|
1353
|
+
hostAttrs: ["role", "tab", 1, "mat-step-header"],
|
|
1354
|
+
hostVars: 4,
|
|
1355
|
+
hostBindings: function MatStepHeader_HostBindings(rf, ctx) {
|
|
1356
|
+
if (rf & 2) {
|
|
1357
|
+
\u0275\u0275classMap("mat-" + (ctx.color || "primary"));
|
|
1358
|
+
\u0275\u0275classProp("mat-step-header-empty-label", ctx._hasEmptyLabel());
|
|
1359
|
+
}
|
|
1360
|
+
},
|
|
1361
|
+
inputs: {
|
|
1362
|
+
state: "state",
|
|
1363
|
+
label: "label",
|
|
1364
|
+
errorMessage: "errorMessage",
|
|
1365
|
+
iconOverrides: "iconOverrides",
|
|
1366
|
+
index: "index",
|
|
1367
|
+
selected: "selected",
|
|
1368
|
+
active: "active",
|
|
1369
|
+
optional: "optional",
|
|
1370
|
+
disableRipple: "disableRipple",
|
|
1371
|
+
color: "color"
|
|
1372
|
+
},
|
|
1373
|
+
features: [\u0275\u0275InheritDefinitionFeature],
|
|
1374
|
+
decls: 10,
|
|
1375
|
+
vars: 17,
|
|
1376
|
+
consts: [["matRipple", "", 1, "mat-step-header-ripple", "mat-focus-indicator", 3, "matRippleTrigger", "matRippleDisabled"], [1, "mat-step-icon-content"], [3, "ngTemplateOutlet", "ngTemplateOutletContext"], [1, "mat-step-label"], [1, "mat-step-text-label"], [1, "mat-step-optional"], [1, "mat-step-sub-label-error"], ["aria-hidden", "true"], [1, "cdk-visually-hidden"], [3, "ngTemplateOutlet"]],
|
|
1377
|
+
template: function MatStepHeader_Template(rf, ctx) {
|
|
1378
|
+
if (rf & 1) {
|
|
1379
|
+
\u0275\u0275element(0, "div", 0);
|
|
1380
|
+
\u0275\u0275elementStart(1, "div")(2, "div", 1);
|
|
1381
|
+
\u0275\u0275conditionalCreate(3, MatStepHeader_Conditional_3_Template, 1, 6, "ng-container", 2)(4, MatStepHeader_Conditional_4_Template, 2, 1);
|
|
1382
|
+
\u0275\u0275elementEnd()();
|
|
1383
|
+
\u0275\u0275elementStart(5, "div", 3);
|
|
1384
|
+
\u0275\u0275conditionalCreate(6, MatStepHeader_Conditional_6_Template, 2, 1, "div", 4)(7, MatStepHeader_Conditional_7_Template, 2, 1, "div", 4);
|
|
1385
|
+
\u0275\u0275conditionalCreate(8, MatStepHeader_Conditional_8_Template, 2, 1, "div", 5);
|
|
1386
|
+
\u0275\u0275conditionalCreate(9, MatStepHeader_Conditional_9_Template, 2, 1, "div", 6);
|
|
1387
|
+
\u0275\u0275elementEnd();
|
|
1388
|
+
}
|
|
1389
|
+
if (rf & 2) {
|
|
1390
|
+
let tmp_8_0;
|
|
1391
|
+
\u0275\u0275property("matRippleTrigger", ctx._getHostElement())("matRippleDisabled", ctx.disableRipple);
|
|
1392
|
+
\u0275\u0275advance();
|
|
1393
|
+
\u0275\u0275classMap(\u0275\u0275interpolate1("mat-step-icon-state-", ctx.state, " mat-step-icon"));
|
|
1394
|
+
\u0275\u0275classProp("mat-step-icon-selected", ctx.selected);
|
|
1395
|
+
\u0275\u0275advance(2);
|
|
1396
|
+
\u0275\u0275conditional(ctx.iconOverrides && ctx.iconOverrides[ctx.state] ? 3 : 4);
|
|
1397
|
+
\u0275\u0275advance(2);
|
|
1398
|
+
\u0275\u0275classProp("mat-step-label-active", ctx.active)("mat-step-label-selected", ctx.selected)("mat-step-label-error", ctx.state == "error");
|
|
1399
|
+
\u0275\u0275advance();
|
|
1400
|
+
\u0275\u0275conditional((tmp_8_0 = ctx._templateLabel()) ? 6 : ctx._stringLabel() ? 7 : -1, tmp_8_0);
|
|
1401
|
+
\u0275\u0275advance(2);
|
|
1402
|
+
\u0275\u0275conditional(ctx._hasOptionalLabel() ? 8 : -1);
|
|
1403
|
+
\u0275\u0275advance();
|
|
1404
|
+
\u0275\u0275conditional(ctx._hasErrorLabel() ? 9 : -1);
|
|
1405
|
+
}
|
|
1406
|
+
},
|
|
1407
|
+
dependencies: [MatRipple, NgTemplateOutlet, MatIcon],
|
|
1408
|
+
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'],
|
|
1409
|
+
encapsulation: 2,
|
|
1410
|
+
changeDetection: 0
|
|
1411
|
+
});
|
|
1412
|
+
};
|
|
1413
|
+
(() => {
|
|
1414
|
+
(typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(MatStepHeader, [{
|
|
1415
|
+
type: Component,
|
|
1416
|
+
args: [{
|
|
1417
|
+
selector: "mat-step-header",
|
|
1418
|
+
host: {
|
|
1419
|
+
"class": "mat-step-header",
|
|
1420
|
+
"[class.mat-step-header-empty-label]": "_hasEmptyLabel()",
|
|
1421
|
+
"[class]": '"mat-" + (color || "primary")',
|
|
1422
|
+
"role": "tab"
|
|
1423
|
+
},
|
|
1424
|
+
encapsulation: ViewEncapsulation.None,
|
|
1425
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1426
|
+
imports: [MatRipple, NgTemplateOutlet, MatIcon],
|
|
1427
|
+
template: `<div class="mat-step-header-ripple mat-focus-indicator" matRipple
|
|
1428
|
+
[matRippleTrigger]="_getHostElement()"
|
|
1429
|
+
[matRippleDisabled]="disableRipple"></div>
|
|
1430
|
+
|
|
1431
|
+
<div class="mat-step-icon-state-{{state}} mat-step-icon" [class.mat-step-icon-selected]="selected">
|
|
1432
|
+
<div class="mat-step-icon-content">
|
|
1433
|
+
@if (iconOverrides && iconOverrides[state]) {
|
|
1434
|
+
<ng-container
|
|
1435
|
+
[ngTemplateOutlet]="iconOverrides[state]"
|
|
1436
|
+
[ngTemplateOutletContext]="{index, active, optional}"></ng-container>
|
|
1437
|
+
} @else {
|
|
1438
|
+
@switch (state) {
|
|
1439
|
+
@case ('number') {
|
|
1440
|
+
<span aria-hidden="true">{{_getDefaultTextForState(state)}}</span>
|
|
1441
|
+
}
|
|
1442
|
+
|
|
1443
|
+
@default {
|
|
1444
|
+
@if (state === 'done') {
|
|
1445
|
+
<span class="cdk-visually-hidden">{{_intl.completedLabel}}</span>
|
|
1446
|
+
} @else if (state === 'edit') {
|
|
1447
|
+
<span class="cdk-visually-hidden">{{_intl.editableLabel}}</span>
|
|
1448
|
+
}
|
|
1449
|
+
|
|
1450
|
+
<mat-icon aria-hidden="true">{{_getDefaultTextForState(state)}}</mat-icon>
|
|
1451
|
+
}
|
|
1452
|
+
}
|
|
1453
|
+
}
|
|
1454
|
+
</div>
|
|
1455
|
+
</div>
|
|
1456
|
+
<div class="mat-step-label"
|
|
1457
|
+
[class.mat-step-label-active]="active"
|
|
1458
|
+
[class.mat-step-label-selected]="selected"
|
|
1459
|
+
[class.mat-step-label-error]="state == 'error'">
|
|
1460
|
+
@if (_templateLabel(); as templateLabel) {
|
|
1461
|
+
<!-- If there is a label template, use it. -->
|
|
1462
|
+
<div class="mat-step-text-label">
|
|
1463
|
+
<ng-container [ngTemplateOutlet]="templateLabel.template"></ng-container>
|
|
1464
|
+
</div>
|
|
1465
|
+
} @else if (_stringLabel()) {
|
|
1466
|
+
<!-- If there is no label template, fall back to the text label. -->
|
|
1467
|
+
<div class="mat-step-text-label">{{label}}</div>
|
|
1468
|
+
}
|
|
1469
|
+
|
|
1470
|
+
@if (_hasOptionalLabel()) {
|
|
1471
|
+
<div class="mat-step-optional">{{_intl.optionalLabel}}</div>
|
|
1472
|
+
}
|
|
1473
|
+
|
|
1474
|
+
@if (_hasErrorLabel()) {
|
|
1475
|
+
<div class="mat-step-sub-label-error">{{errorMessage}}</div>
|
|
1476
|
+
}
|
|
1477
|
+
</div>
|
|
1478
|
+
|
|
1479
|
+
`,
|
|
1480
|
+
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']
|
|
1481
|
+
}]
|
|
1482
|
+
}], () => [], {
|
|
1483
|
+
state: [{
|
|
1484
|
+
type: Input
|
|
1485
|
+
}],
|
|
1486
|
+
label: [{
|
|
1487
|
+
type: Input
|
|
1488
|
+
}],
|
|
1489
|
+
errorMessage: [{
|
|
1490
|
+
type: Input
|
|
1491
|
+
}],
|
|
1492
|
+
iconOverrides: [{
|
|
1493
|
+
type: Input
|
|
1494
|
+
}],
|
|
1495
|
+
index: [{
|
|
1496
|
+
type: Input
|
|
1497
|
+
}],
|
|
1498
|
+
selected: [{
|
|
1499
|
+
type: Input
|
|
1500
|
+
}],
|
|
1501
|
+
active: [{
|
|
1502
|
+
type: Input
|
|
1503
|
+
}],
|
|
1504
|
+
optional: [{
|
|
1505
|
+
type: Input
|
|
1506
|
+
}],
|
|
1507
|
+
disableRipple: [{
|
|
1508
|
+
type: Input
|
|
1509
|
+
}],
|
|
1510
|
+
color: [{
|
|
1511
|
+
type: Input
|
|
1512
|
+
}]
|
|
1513
|
+
});
|
|
1514
|
+
})();
|
|
1515
|
+
var MatStepperIcon = class _MatStepperIcon {
|
|
1516
|
+
templateRef = inject(TemplateRef);
|
|
1517
|
+
/** Name of the icon to be overridden. */
|
|
1518
|
+
name;
|
|
1519
|
+
constructor() {
|
|
1520
|
+
}
|
|
1521
|
+
static \u0275fac = function MatStepperIcon_Factory(__ngFactoryType__) {
|
|
1522
|
+
return new (__ngFactoryType__ || _MatStepperIcon)();
|
|
1523
|
+
};
|
|
1524
|
+
static \u0275dir = /* @__PURE__ */ \u0275\u0275defineDirective({
|
|
1525
|
+
type: _MatStepperIcon,
|
|
1526
|
+
selectors: [["ng-template", "matStepperIcon", ""]],
|
|
1527
|
+
inputs: {
|
|
1528
|
+
name: [0, "matStepperIcon", "name"]
|
|
1529
|
+
}
|
|
1530
|
+
});
|
|
1531
|
+
};
|
|
1532
|
+
(() => {
|
|
1533
|
+
(typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(MatStepperIcon, [{
|
|
1534
|
+
type: Directive,
|
|
1535
|
+
args: [{
|
|
1536
|
+
selector: "ng-template[matStepperIcon]"
|
|
1537
|
+
}]
|
|
1538
|
+
}], () => [], {
|
|
1539
|
+
name: [{
|
|
1540
|
+
type: Input,
|
|
1541
|
+
args: ["matStepperIcon"]
|
|
1542
|
+
}]
|
|
1543
|
+
});
|
|
1544
|
+
})();
|
|
1545
|
+
var MatStepContent = class _MatStepContent {
|
|
1546
|
+
_template = inject(TemplateRef);
|
|
1547
|
+
constructor() {
|
|
1548
|
+
}
|
|
1549
|
+
static \u0275fac = function MatStepContent_Factory(__ngFactoryType__) {
|
|
1550
|
+
return new (__ngFactoryType__ || _MatStepContent)();
|
|
1551
|
+
};
|
|
1552
|
+
static \u0275dir = /* @__PURE__ */ \u0275\u0275defineDirective({
|
|
1553
|
+
type: _MatStepContent,
|
|
1554
|
+
selectors: [["ng-template", "matStepContent", ""]]
|
|
1555
|
+
});
|
|
1556
|
+
};
|
|
1557
|
+
(() => {
|
|
1558
|
+
(typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(MatStepContent, [{
|
|
1559
|
+
type: Directive,
|
|
1560
|
+
args: [{
|
|
1561
|
+
selector: "ng-template[matStepContent]"
|
|
1562
|
+
}]
|
|
1563
|
+
}], () => [], null);
|
|
1564
|
+
})();
|
|
1565
|
+
var MatStep = class _MatStep extends CdkStep {
|
|
1566
|
+
_errorStateMatcher = inject(ErrorStateMatcher, {
|
|
1567
|
+
skipSelf: true
|
|
1568
|
+
});
|
|
1569
|
+
_viewContainerRef = inject(ViewContainerRef);
|
|
1570
|
+
_isSelected = Subscription.EMPTY;
|
|
1571
|
+
/** Content for step label given by `<ng-template matStepLabel>`. */
|
|
1572
|
+
// We need an initializer here to avoid a TS error.
|
|
1573
|
+
stepLabel = void 0;
|
|
1574
|
+
/**
|
|
1575
|
+
* Theme color for the particular step. This API is supported in M2 themes
|
|
1576
|
+
* only, it has no effect in M3 themes. For color customization in M3, see https://material.angular.dev/components/stepper/styling.
|
|
1577
|
+
*
|
|
1578
|
+
* For information on applying color variants in M3, see
|
|
1579
|
+
* https://material.angular.dev/guide/material-2-theming#optional-add-backwards-compatibility-styles-for-color-variants
|
|
1580
|
+
*/
|
|
1581
|
+
color;
|
|
1582
|
+
/** Content that will be rendered lazily. */
|
|
1583
|
+
_lazyContent;
|
|
1584
|
+
/** Currently-attached portal containing the lazy content. */
|
|
1585
|
+
_portal;
|
|
1586
|
+
ngAfterContentInit() {
|
|
1587
|
+
this._isSelected = this._stepper.steps.changes.pipe(switchMap(() => {
|
|
1588
|
+
return this._stepper.selectionChange.pipe(map((event) => event.selectedStep === this), startWith(this._stepper.selected === this));
|
|
1589
|
+
})).subscribe((isSelected) => {
|
|
1590
|
+
if (isSelected && this._lazyContent && !this._portal) {
|
|
1591
|
+
this._portal = new TemplatePortal(this._lazyContent._template, this._viewContainerRef);
|
|
1592
|
+
}
|
|
1593
|
+
});
|
|
1594
|
+
}
|
|
1595
|
+
ngOnDestroy() {
|
|
1596
|
+
this._isSelected.unsubscribe();
|
|
1597
|
+
}
|
|
1598
|
+
/** Custom error state matcher that additionally checks for validity of interacted form. */
|
|
1599
|
+
isErrorState(control, form) {
|
|
1600
|
+
const originalErrorState = this._errorStateMatcher.isErrorState(control, form);
|
|
1601
|
+
const customErrorState = !!(control && control.invalid && this.interacted);
|
|
1602
|
+
return originalErrorState || customErrorState;
|
|
1603
|
+
}
|
|
1604
|
+
static \u0275fac = /* @__PURE__ */ (() => {
|
|
1605
|
+
let \u0275MatStep_BaseFactory;
|
|
1606
|
+
return function MatStep_Factory(__ngFactoryType__) {
|
|
1607
|
+
return (\u0275MatStep_BaseFactory || (\u0275MatStep_BaseFactory = \u0275\u0275getInheritedFactory(_MatStep)))(__ngFactoryType__ || _MatStep);
|
|
1608
|
+
};
|
|
1609
|
+
})();
|
|
1610
|
+
static \u0275cmp = /* @__PURE__ */ \u0275\u0275defineComponent({
|
|
1611
|
+
type: _MatStep,
|
|
1612
|
+
selectors: [["mat-step"]],
|
|
1613
|
+
contentQueries: function MatStep_ContentQueries(rf, ctx, dirIndex) {
|
|
1614
|
+
if (rf & 1) {
|
|
1615
|
+
\u0275\u0275contentQuery(dirIndex, MatStepLabel, 5);
|
|
1616
|
+
\u0275\u0275contentQuery(dirIndex, MatStepContent, 5);
|
|
1617
|
+
}
|
|
1618
|
+
if (rf & 2) {
|
|
1619
|
+
let _t;
|
|
1620
|
+
\u0275\u0275queryRefresh(_t = \u0275\u0275loadQuery()) && (ctx.stepLabel = _t.first);
|
|
1621
|
+
\u0275\u0275queryRefresh(_t = \u0275\u0275loadQuery()) && (ctx._lazyContent = _t.first);
|
|
1622
|
+
}
|
|
1623
|
+
},
|
|
1624
|
+
hostAttrs: ["hidden", ""],
|
|
1625
|
+
inputs: {
|
|
1626
|
+
color: "color"
|
|
1627
|
+
},
|
|
1628
|
+
exportAs: ["matStep"],
|
|
1629
|
+
features: [\u0275\u0275ProvidersFeature([{
|
|
1630
|
+
provide: ErrorStateMatcher,
|
|
1631
|
+
useExisting: _MatStep
|
|
1632
|
+
}, {
|
|
1633
|
+
provide: CdkStep,
|
|
1634
|
+
useExisting: _MatStep
|
|
1635
|
+
}]), \u0275\u0275InheritDefinitionFeature],
|
|
1636
|
+
ngContentSelectors: _c1,
|
|
1637
|
+
decls: 1,
|
|
1638
|
+
vars: 0,
|
|
1639
|
+
consts: [[3, "cdkPortalOutlet"]],
|
|
1640
|
+
template: function MatStep_Template(rf, ctx) {
|
|
1641
|
+
if (rf & 1) {
|
|
1642
|
+
\u0275\u0275projectionDef();
|
|
1643
|
+
\u0275\u0275template(0, MatStep_ng_template_0_Template, 2, 1, "ng-template");
|
|
1644
|
+
}
|
|
1645
|
+
},
|
|
1646
|
+
dependencies: [CdkPortalOutlet],
|
|
1647
|
+
encapsulation: 2,
|
|
1648
|
+
changeDetection: 0
|
|
1649
|
+
});
|
|
1650
|
+
};
|
|
1651
|
+
(() => {
|
|
1652
|
+
(typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(MatStep, [{
|
|
1653
|
+
type: Component,
|
|
1654
|
+
args: [{
|
|
1655
|
+
selector: "mat-step",
|
|
1656
|
+
providers: [{
|
|
1657
|
+
provide: ErrorStateMatcher,
|
|
1658
|
+
useExisting: MatStep
|
|
1659
|
+
}, {
|
|
1660
|
+
provide: CdkStep,
|
|
1661
|
+
useExisting: MatStep
|
|
1662
|
+
}],
|
|
1663
|
+
encapsulation: ViewEncapsulation.None,
|
|
1664
|
+
exportAs: "matStep",
|
|
1665
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1666
|
+
imports: [CdkPortalOutlet],
|
|
1667
|
+
host: {
|
|
1668
|
+
"hidden": ""
|
|
1669
|
+
// Hide the steps so they don't affect the layout.
|
|
1670
|
+
},
|
|
1671
|
+
template: '<ng-template>\n <ng-content></ng-content>\n <ng-template [cdkPortalOutlet]="_portal"></ng-template>\n</ng-template>\n'
|
|
1672
|
+
}]
|
|
1673
|
+
}], null, {
|
|
1674
|
+
stepLabel: [{
|
|
1675
|
+
type: ContentChild,
|
|
1676
|
+
args: [MatStepLabel]
|
|
1677
|
+
}],
|
|
1678
|
+
color: [{
|
|
1679
|
+
type: Input
|
|
1680
|
+
}],
|
|
1681
|
+
_lazyContent: [{
|
|
1682
|
+
type: ContentChild,
|
|
1683
|
+
args: [MatStepContent, {
|
|
1684
|
+
static: false
|
|
1685
|
+
}]
|
|
1686
|
+
}]
|
|
1687
|
+
});
|
|
1688
|
+
})();
|
|
1689
|
+
var MatStepper = class _MatStepper extends CdkStepper {
|
|
1690
|
+
_ngZone = inject(NgZone);
|
|
1691
|
+
_renderer = inject(Renderer2);
|
|
1692
|
+
_animationsDisabled = _animationsDisabled();
|
|
1693
|
+
_cleanupTransition;
|
|
1694
|
+
_isAnimating = signal(false);
|
|
1695
|
+
/** The list of step headers of the steps in the stepper. */
|
|
1696
|
+
_stepHeader = void 0;
|
|
1697
|
+
/** Elements hosting the step animations. */
|
|
1698
|
+
_animatedContainers;
|
|
1699
|
+
/** Full list of steps inside the stepper, including inside nested steppers. */
|
|
1700
|
+
_steps = void 0;
|
|
1701
|
+
/** Steps that belong to the current stepper, excluding ones from nested steppers. */
|
|
1702
|
+
steps = new QueryList();
|
|
1703
|
+
/** Custom icon overrides passed in by the consumer. */
|
|
1704
|
+
_icons;
|
|
1705
|
+
/** Event emitted when the current step is done transitioning in. */
|
|
1706
|
+
animationDone = new EventEmitter();
|
|
1707
|
+
/** Whether ripples should be disabled for the step headers. */
|
|
1708
|
+
disableRipple;
|
|
1709
|
+
/**
|
|
1710
|
+
* Theme color for all of the steps in stepper. This API is supported in M2
|
|
1711
|
+
* themes only, it has no effect in M3 themes. For color customization in M3, see https://material.angular.dev/components/stepper/styling.
|
|
1712
|
+
*
|
|
1713
|
+
* For information on applying color variants in M3, see
|
|
1714
|
+
* https://material.angular.dev/guide/material-2-theming#optional-add-backwards-compatibility-styles-for-color-variants
|
|
1715
|
+
*/
|
|
1716
|
+
color;
|
|
1717
|
+
/**
|
|
1718
|
+
* Whether the label should display in bottom or end position.
|
|
1719
|
+
* Only applies in the `horizontal` orientation.
|
|
1720
|
+
*/
|
|
1721
|
+
labelPosition = "end";
|
|
1722
|
+
/**
|
|
1723
|
+
* Position of the stepper's header.
|
|
1724
|
+
* Only applies in the `horizontal` orientation.
|
|
1725
|
+
*/
|
|
1726
|
+
headerPosition = "top";
|
|
1727
|
+
/** Consumer-specified template-refs to be used to override the header icons. */
|
|
1728
|
+
_iconOverrides = {};
|
|
1729
|
+
/** Duration for the animation. Will be normalized to milliseconds if no units are set. */
|
|
1730
|
+
get animationDuration() {
|
|
1731
|
+
return this._animationDuration;
|
|
1732
|
+
}
|
|
1733
|
+
set animationDuration(value) {
|
|
1734
|
+
this._animationDuration = /^\d+$/.test(value) ? value + "ms" : value;
|
|
1735
|
+
}
|
|
1736
|
+
_animationDuration = "";
|
|
1737
|
+
/** Whether the stepper is rendering on the server. */
|
|
1738
|
+
_isServer = !inject(Platform).isBrowser;
|
|
1739
|
+
constructor() {
|
|
1740
|
+
super();
|
|
1741
|
+
const elementRef = inject(ElementRef);
|
|
1742
|
+
const nodeName = elementRef.nativeElement.nodeName.toLowerCase();
|
|
1743
|
+
this.orientation = nodeName === "mat-vertical-stepper" ? "vertical" : "horizontal";
|
|
1744
|
+
}
|
|
1745
|
+
ngAfterContentInit() {
|
|
1746
|
+
super.ngAfterContentInit();
|
|
1747
|
+
this._icons.forEach(({
|
|
1748
|
+
name,
|
|
1749
|
+
templateRef
|
|
1750
|
+
}) => this._iconOverrides[name] = templateRef);
|
|
1751
|
+
this.steps.changes.pipe(takeUntil(this._destroyed)).subscribe(() => this._stateChanged());
|
|
1752
|
+
this.selectedIndexChange.pipe(takeUntil(this._destroyed)).subscribe(() => {
|
|
1753
|
+
const duration = this._getAnimationDuration();
|
|
1754
|
+
if (duration === "0ms" || duration === "0s") {
|
|
1755
|
+
this._onAnimationDone();
|
|
1756
|
+
} else {
|
|
1757
|
+
this._isAnimating.set(true);
|
|
1758
|
+
}
|
|
1759
|
+
});
|
|
1760
|
+
this._ngZone.runOutsideAngular(() => {
|
|
1761
|
+
if (!this._animationsDisabled) {
|
|
1762
|
+
setTimeout(() => {
|
|
1763
|
+
this._elementRef.nativeElement.classList.add("mat-stepper-animations-enabled");
|
|
1764
|
+
this._cleanupTransition = this._renderer.listen(this._elementRef.nativeElement, "transitionend", this._handleTransitionend);
|
|
1765
|
+
}, 200);
|
|
1766
|
+
}
|
|
1767
|
+
});
|
|
1768
|
+
}
|
|
1769
|
+
ngAfterViewInit() {
|
|
1770
|
+
super.ngAfterViewInit();
|
|
1771
|
+
if (typeof queueMicrotask === "function") {
|
|
1772
|
+
let hasEmittedInitial = false;
|
|
1773
|
+
this._animatedContainers.changes.pipe(startWith(null), takeUntil(this._destroyed)).subscribe(() => queueMicrotask(() => {
|
|
1774
|
+
if (!hasEmittedInitial) {
|
|
1775
|
+
hasEmittedInitial = true;
|
|
1776
|
+
this.animationDone.emit();
|
|
1777
|
+
}
|
|
1778
|
+
this._stateChanged();
|
|
1779
|
+
}));
|
|
1780
|
+
}
|
|
1781
|
+
}
|
|
1782
|
+
ngOnDestroy() {
|
|
1783
|
+
super.ngOnDestroy();
|
|
1784
|
+
this._cleanupTransition?.();
|
|
1785
|
+
}
|
|
1786
|
+
_getAnimationDuration() {
|
|
1787
|
+
if (this._animationsDisabled) {
|
|
1788
|
+
return "0ms";
|
|
1789
|
+
}
|
|
1790
|
+
if (this.animationDuration) {
|
|
1791
|
+
return this.animationDuration;
|
|
1792
|
+
}
|
|
1793
|
+
return this.orientation === "horizontal" ? "500ms" : "225ms";
|
|
1794
|
+
}
|
|
1795
|
+
_handleTransitionend = (event) => {
|
|
1796
|
+
const target = event.target;
|
|
1797
|
+
if (!target) {
|
|
1798
|
+
return;
|
|
1799
|
+
}
|
|
1800
|
+
const isHorizontalActiveElement = this.orientation === "horizontal" && event.propertyName === "transform" && target.classList.contains("mat-horizontal-stepper-content-current");
|
|
1801
|
+
const isVerticalActiveElement = this.orientation === "vertical" && event.propertyName === "grid-template-rows" && target.classList.contains("mat-vertical-content-container-active");
|
|
1802
|
+
const shouldEmit = (isHorizontalActiveElement || isVerticalActiveElement) && this._animatedContainers.find((ref) => ref.nativeElement === target);
|
|
1803
|
+
if (shouldEmit) {
|
|
1804
|
+
this._onAnimationDone();
|
|
1805
|
+
}
|
|
1806
|
+
};
|
|
1807
|
+
_onAnimationDone() {
|
|
1808
|
+
this._isAnimating.set(false);
|
|
1809
|
+
this.animationDone.emit();
|
|
1810
|
+
}
|
|
1811
|
+
static \u0275fac = function MatStepper_Factory(__ngFactoryType__) {
|
|
1812
|
+
return new (__ngFactoryType__ || _MatStepper)();
|
|
1813
|
+
};
|
|
1814
|
+
static \u0275cmp = /* @__PURE__ */ \u0275\u0275defineComponent({
|
|
1815
|
+
type: _MatStepper,
|
|
1816
|
+
selectors: [["mat-stepper"], ["mat-vertical-stepper"], ["mat-horizontal-stepper"], ["", "matStepper", ""]],
|
|
1817
|
+
contentQueries: function MatStepper_ContentQueries(rf, ctx, dirIndex) {
|
|
1818
|
+
if (rf & 1) {
|
|
1819
|
+
\u0275\u0275contentQuery(dirIndex, MatStep, 5);
|
|
1820
|
+
\u0275\u0275contentQuery(dirIndex, MatStepperIcon, 5);
|
|
1821
|
+
}
|
|
1822
|
+
if (rf & 2) {
|
|
1823
|
+
let _t;
|
|
1824
|
+
\u0275\u0275queryRefresh(_t = \u0275\u0275loadQuery()) && (ctx._steps = _t);
|
|
1825
|
+
\u0275\u0275queryRefresh(_t = \u0275\u0275loadQuery()) && (ctx._icons = _t);
|
|
1826
|
+
}
|
|
1827
|
+
},
|
|
1828
|
+
viewQuery: function MatStepper_Query(rf, ctx) {
|
|
1829
|
+
if (rf & 1) {
|
|
1830
|
+
\u0275\u0275viewQuery(MatStepHeader, 5);
|
|
1831
|
+
\u0275\u0275viewQuery(_c2, 5);
|
|
1832
|
+
}
|
|
1833
|
+
if (rf & 2) {
|
|
1834
|
+
let _t;
|
|
1835
|
+
\u0275\u0275queryRefresh(_t = \u0275\u0275loadQuery()) && (ctx._stepHeader = _t);
|
|
1836
|
+
\u0275\u0275queryRefresh(_t = \u0275\u0275loadQuery()) && (ctx._animatedContainers = _t);
|
|
1837
|
+
}
|
|
1838
|
+
},
|
|
1839
|
+
hostAttrs: ["role", "tablist"],
|
|
1840
|
+
hostVars: 15,
|
|
1841
|
+
hostBindings: function MatStepper_HostBindings(rf, ctx) {
|
|
1842
|
+
if (rf & 2) {
|
|
1843
|
+
\u0275\u0275attribute("aria-orientation", ctx.orientation);
|
|
1844
|
+
\u0275\u0275styleProp("--mat-stepper-animation-duration", ctx._getAnimationDuration());
|
|
1845
|
+
\u0275\u0275classProp("mat-stepper-horizontal", ctx.orientation === "horizontal")("mat-stepper-vertical", ctx.orientation === "vertical")("mat-stepper-label-position-end", ctx.orientation === "horizontal" && ctx.labelPosition == "end")("mat-stepper-label-position-bottom", ctx.orientation === "horizontal" && ctx.labelPosition == "bottom")("mat-stepper-header-position-bottom", ctx.headerPosition === "bottom")("mat-stepper-animating", ctx._isAnimating());
|
|
1846
|
+
}
|
|
1847
|
+
},
|
|
1848
|
+
inputs: {
|
|
1849
|
+
disableRipple: "disableRipple",
|
|
1850
|
+
color: "color",
|
|
1851
|
+
labelPosition: "labelPosition",
|
|
1852
|
+
headerPosition: "headerPosition",
|
|
1853
|
+
animationDuration: "animationDuration"
|
|
1854
|
+
},
|
|
1855
|
+
outputs: {
|
|
1856
|
+
animationDone: "animationDone"
|
|
1857
|
+
},
|
|
1858
|
+
exportAs: ["matStepper", "matVerticalStepper", "matHorizontalStepper"],
|
|
1859
|
+
features: [\u0275\u0275ProvidersFeature([{
|
|
1860
|
+
provide: CdkStepper,
|
|
1861
|
+
useExisting: _MatStepper
|
|
1862
|
+
}]), \u0275\u0275InheritDefinitionFeature],
|
|
1863
|
+
ngContentSelectors: _c1,
|
|
1864
|
+
decls: 5,
|
|
1865
|
+
vars: 2,
|
|
1866
|
+
consts: [["stepTemplate", ""], ["animatedContainer", ""], [1, "mat-horizontal-stepper-wrapper"], [1, "mat-horizontal-stepper-header-container"], [1, "mat-horizontal-content-container"], ["role", "tabpanel", 1, "mat-horizontal-stepper-content", 3, "id", "class"], [3, "ngTemplateOutlet", "ngTemplateOutletContext"], [1, "mat-stepper-horizontal-line"], ["role", "tabpanel", 1, "mat-horizontal-stepper-content", 3, "id"], [3, "ngTemplateOutlet"], [1, "mat-step"], [1, "mat-vertical-content-container"], ["role", "tabpanel", 1, "mat-vertical-stepper-content", 3, "id"], [1, "mat-vertical-content"], [3, "click", "keydown", "tabIndex", "id", "index", "state", "label", "selected", "active", "optional", "errorMessage", "iconOverrides", "disableRipple", "color"]],
|
|
1867
|
+
template: function MatStepper_Template(rf, ctx) {
|
|
1868
|
+
if (rf & 1) {
|
|
1869
|
+
\u0275\u0275projectionDef();
|
|
1870
|
+
\u0275\u0275conditionalCreate(0, MatStepper_Conditional_0_Template, 1, 0);
|
|
1871
|
+
\u0275\u0275conditionalCreate(1, MatStepper_Case_1_Template, 7, 0, "div", 2)(2, MatStepper_Case_2_Template, 2, 0);
|
|
1872
|
+
\u0275\u0275template(3, MatStepper_ng_template_3_Template, 1, 23, "ng-template", null, 0, \u0275\u0275templateRefExtractor);
|
|
1873
|
+
}
|
|
1874
|
+
if (rf & 2) {
|
|
1875
|
+
let tmp_2_0;
|
|
1876
|
+
\u0275\u0275conditional(ctx._isServer ? 0 : -1);
|
|
1877
|
+
\u0275\u0275advance();
|
|
1878
|
+
\u0275\u0275conditional((tmp_2_0 = ctx.orientation) === "horizontal" ? 1 : tmp_2_0 === "vertical" ? 2 : -1);
|
|
1879
|
+
}
|
|
1880
|
+
},
|
|
1881
|
+
dependencies: [NgTemplateOutlet, MatStepHeader],
|
|
1882
|
+
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'],
|
|
1883
|
+
encapsulation: 2,
|
|
1884
|
+
changeDetection: 0
|
|
1885
|
+
});
|
|
1886
|
+
};
|
|
1887
|
+
(() => {
|
|
1888
|
+
(typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(MatStepper, [{
|
|
1889
|
+
type: Component,
|
|
1890
|
+
args: [{
|
|
1891
|
+
selector: "mat-stepper, mat-vertical-stepper, mat-horizontal-stepper, [matStepper]",
|
|
1892
|
+
exportAs: "matStepper, matVerticalStepper, matHorizontalStepper",
|
|
1893
|
+
host: {
|
|
1894
|
+
"[class.mat-stepper-horizontal]": 'orientation === "horizontal"',
|
|
1895
|
+
"[class.mat-stepper-vertical]": 'orientation === "vertical"',
|
|
1896
|
+
"[class.mat-stepper-label-position-end]": 'orientation === "horizontal" && labelPosition == "end"',
|
|
1897
|
+
"[class.mat-stepper-label-position-bottom]": 'orientation === "horizontal" && labelPosition == "bottom"',
|
|
1898
|
+
"[class.mat-stepper-header-position-bottom]": 'headerPosition === "bottom"',
|
|
1899
|
+
"[class.mat-stepper-animating]": "_isAnimating()",
|
|
1900
|
+
"[style.--mat-stepper-animation-duration]": "_getAnimationDuration()",
|
|
1901
|
+
"[attr.aria-orientation]": "orientation",
|
|
1902
|
+
"role": "tablist"
|
|
1903
|
+
},
|
|
1904
|
+
providers: [{
|
|
1905
|
+
provide: CdkStepper,
|
|
1906
|
+
useExisting: MatStepper
|
|
1907
|
+
}],
|
|
1908
|
+
encapsulation: ViewEncapsulation.None,
|
|
1909
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1910
|
+
imports: [NgTemplateOutlet, MatStepHeader],
|
|
1911
|
+
template: `<!--
|
|
1912
|
+
We need to project the content somewhere to avoid hydration errors. Some observations:
|
|
1913
|
+
1. This is only necessary on the server.
|
|
1914
|
+
2. We get a hydration error if there aren't any nodes after the \`ng-content\`.
|
|
1915
|
+
3. We get a hydration error if \`ng-content\` is wrapped in another element.
|
|
1916
|
+
-->
|
|
1917
|
+
@if (_isServer) {
|
|
1918
|
+
<ng-content/>
|
|
1919
|
+
}
|
|
1920
|
+
|
|
1921
|
+
@switch (orientation) {
|
|
1922
|
+
@case ('horizontal') {
|
|
1923
|
+
<div class="mat-horizontal-stepper-wrapper">
|
|
1924
|
+
<div class="mat-horizontal-stepper-header-container">
|
|
1925
|
+
@for (step of steps; track step) {
|
|
1926
|
+
<ng-container
|
|
1927
|
+
[ngTemplateOutlet]="stepTemplate"
|
|
1928
|
+
[ngTemplateOutletContext]="{step}"/>
|
|
1929
|
+
@if (!$last) {
|
|
1930
|
+
<div class="mat-stepper-horizontal-line"></div>
|
|
1931
|
+
}
|
|
1932
|
+
}
|
|
1933
|
+
</div>
|
|
1934
|
+
|
|
1935
|
+
<div class="mat-horizontal-content-container">
|
|
1936
|
+
@for (step of steps; track step) {
|
|
1937
|
+
<div
|
|
1938
|
+
#animatedContainer
|
|
1939
|
+
class="mat-horizontal-stepper-content"
|
|
1940
|
+
role="tabpanel"
|
|
1941
|
+
[id]="_getStepContentId($index)"
|
|
1942
|
+
[attr.aria-labelledby]="_getStepLabelId($index)"
|
|
1943
|
+
[class]="'mat-horizontal-stepper-content-' + _getAnimationDirection($index)"
|
|
1944
|
+
[attr.inert]="selectedIndex === $index ? null : ''">
|
|
1945
|
+
<ng-container [ngTemplateOutlet]="step.content"/>
|
|
1946
|
+
</div>
|
|
1947
|
+
}
|
|
1948
|
+
</div>
|
|
1949
|
+
</div>
|
|
1950
|
+
}
|
|
1951
|
+
|
|
1952
|
+
@case ('vertical') {
|
|
1953
|
+
@for (step of steps; track step) {
|
|
1954
|
+
<div class="mat-step">
|
|
1955
|
+
<ng-container
|
|
1956
|
+
[ngTemplateOutlet]="stepTemplate"
|
|
1957
|
+
[ngTemplateOutletContext]="{step}"/>
|
|
1958
|
+
<div
|
|
1959
|
+
#animatedContainer
|
|
1960
|
+
class="mat-vertical-content-container"
|
|
1961
|
+
[class.mat-stepper-vertical-line]="!$last"
|
|
1962
|
+
[class.mat-vertical-content-container-active]="selectedIndex === $index"
|
|
1963
|
+
[attr.inert]="selectedIndex === $index ? null : ''">
|
|
1964
|
+
<div class="mat-vertical-stepper-content"
|
|
1965
|
+
role="tabpanel"
|
|
1966
|
+
[id]="_getStepContentId($index)"
|
|
1967
|
+
[attr.aria-labelledby]="_getStepLabelId($index)">
|
|
1968
|
+
<div class="mat-vertical-content">
|
|
1969
|
+
<ng-container [ngTemplateOutlet]="step.content"/>
|
|
1970
|
+
</div>
|
|
1971
|
+
</div>
|
|
1972
|
+
</div>
|
|
1973
|
+
</div>
|
|
1974
|
+
}
|
|
1975
|
+
}
|
|
1976
|
+
}
|
|
1977
|
+
|
|
1978
|
+
<!-- Common step templating -->
|
|
1979
|
+
<ng-template let-step="step" #stepTemplate>
|
|
1980
|
+
<mat-step-header
|
|
1981
|
+
[class.mat-horizontal-stepper-header]="orientation === 'horizontal'"
|
|
1982
|
+
[class.mat-vertical-stepper-header]="orientation === 'vertical'"
|
|
1983
|
+
(click)="step.select()"
|
|
1984
|
+
(keydown)="_onKeydown($event)"
|
|
1985
|
+
[tabIndex]="_getFocusIndex() === step.index() ? 0 : -1"
|
|
1986
|
+
[id]="_getStepLabelId(step.index())"
|
|
1987
|
+
[attr.aria-posinset]="step.index() + 1"
|
|
1988
|
+
[attr.aria-setsize]="steps.length"
|
|
1989
|
+
[attr.aria-controls]="_getStepContentId(step.index())"
|
|
1990
|
+
[attr.aria-selected]="step.isSelected()"
|
|
1991
|
+
[attr.aria-label]="step.ariaLabel || null"
|
|
1992
|
+
[attr.aria-labelledby]="(!step.ariaLabel && step.ariaLabelledby) ? step.ariaLabelledby : null"
|
|
1993
|
+
[attr.aria-disabled]="step.isNavigable() ? null : true"
|
|
1994
|
+
[index]="step.index()"
|
|
1995
|
+
[state]="step.indicatorType()"
|
|
1996
|
+
[label]="step.stepLabel || step.label"
|
|
1997
|
+
[selected]="step.isSelected()"
|
|
1998
|
+
[active]="step.isNavigable()"
|
|
1999
|
+
[optional]="step.optional"
|
|
2000
|
+
[errorMessage]="step.errorMessage"
|
|
2001
|
+
[iconOverrides]="_iconOverrides"
|
|
2002
|
+
[disableRipple]="disableRipple || !step.isNavigable()"
|
|
2003
|
+
[color]="step.color || color"/>
|
|
2004
|
+
</ng-template>
|
|
2005
|
+
`,
|
|
2006
|
+
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']
|
|
2007
|
+
}]
|
|
2008
|
+
}], () => [], {
|
|
2009
|
+
_stepHeader: [{
|
|
2010
|
+
type: ViewChildren,
|
|
2011
|
+
args: [MatStepHeader]
|
|
2012
|
+
}],
|
|
2013
|
+
_animatedContainers: [{
|
|
2014
|
+
type: ViewChildren,
|
|
2015
|
+
args: ["animatedContainer"]
|
|
2016
|
+
}],
|
|
2017
|
+
_steps: [{
|
|
2018
|
+
type: ContentChildren,
|
|
2019
|
+
args: [MatStep, {
|
|
2020
|
+
descendants: true
|
|
2021
|
+
}]
|
|
2022
|
+
}],
|
|
2023
|
+
_icons: [{
|
|
2024
|
+
type: ContentChildren,
|
|
2025
|
+
args: [MatStepperIcon, {
|
|
2026
|
+
descendants: true
|
|
2027
|
+
}]
|
|
2028
|
+
}],
|
|
2029
|
+
animationDone: [{
|
|
2030
|
+
type: Output
|
|
2031
|
+
}],
|
|
2032
|
+
disableRipple: [{
|
|
2033
|
+
type: Input
|
|
2034
|
+
}],
|
|
2035
|
+
color: [{
|
|
2036
|
+
type: Input
|
|
2037
|
+
}],
|
|
2038
|
+
labelPosition: [{
|
|
2039
|
+
type: Input
|
|
2040
|
+
}],
|
|
2041
|
+
headerPosition: [{
|
|
2042
|
+
type: Input
|
|
2043
|
+
}],
|
|
2044
|
+
animationDuration: [{
|
|
2045
|
+
type: Input
|
|
2046
|
+
}]
|
|
2047
|
+
});
|
|
2048
|
+
})();
|
|
2049
|
+
var MatStepperNext = class _MatStepperNext extends CdkStepperNext {
|
|
2050
|
+
static \u0275fac = /* @__PURE__ */ (() => {
|
|
2051
|
+
let \u0275MatStepperNext_BaseFactory;
|
|
2052
|
+
return function MatStepperNext_Factory(__ngFactoryType__) {
|
|
2053
|
+
return (\u0275MatStepperNext_BaseFactory || (\u0275MatStepperNext_BaseFactory = \u0275\u0275getInheritedFactory(_MatStepperNext)))(__ngFactoryType__ || _MatStepperNext);
|
|
2054
|
+
};
|
|
2055
|
+
})();
|
|
2056
|
+
static \u0275dir = /* @__PURE__ */ \u0275\u0275defineDirective({
|
|
2057
|
+
type: _MatStepperNext,
|
|
2058
|
+
selectors: [["button", "matStepperNext", ""]],
|
|
2059
|
+
hostAttrs: [1, "mat-stepper-next"],
|
|
2060
|
+
hostVars: 1,
|
|
2061
|
+
hostBindings: function MatStepperNext_HostBindings(rf, ctx) {
|
|
2062
|
+
if (rf & 2) {
|
|
2063
|
+
\u0275\u0275domProperty("type", ctx.type);
|
|
2064
|
+
}
|
|
2065
|
+
},
|
|
2066
|
+
features: [\u0275\u0275InheritDefinitionFeature]
|
|
2067
|
+
});
|
|
2068
|
+
};
|
|
2069
|
+
(() => {
|
|
2070
|
+
(typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(MatStepperNext, [{
|
|
2071
|
+
type: Directive,
|
|
2072
|
+
args: [{
|
|
2073
|
+
selector: "button[matStepperNext]",
|
|
2074
|
+
host: {
|
|
2075
|
+
"class": "mat-stepper-next",
|
|
2076
|
+
"[type]": "type"
|
|
2077
|
+
}
|
|
2078
|
+
}]
|
|
2079
|
+
}], null, null);
|
|
2080
|
+
})();
|
|
2081
|
+
var MatStepperPrevious = class _MatStepperPrevious extends CdkStepperPrevious {
|
|
2082
|
+
static \u0275fac = /* @__PURE__ */ (() => {
|
|
2083
|
+
let \u0275MatStepperPrevious_BaseFactory;
|
|
2084
|
+
return function MatStepperPrevious_Factory(__ngFactoryType__) {
|
|
2085
|
+
return (\u0275MatStepperPrevious_BaseFactory || (\u0275MatStepperPrevious_BaseFactory = \u0275\u0275getInheritedFactory(_MatStepperPrevious)))(__ngFactoryType__ || _MatStepperPrevious);
|
|
2086
|
+
};
|
|
2087
|
+
})();
|
|
2088
|
+
static \u0275dir = /* @__PURE__ */ \u0275\u0275defineDirective({
|
|
2089
|
+
type: _MatStepperPrevious,
|
|
2090
|
+
selectors: [["button", "matStepperPrevious", ""]],
|
|
2091
|
+
hostAttrs: [1, "mat-stepper-previous"],
|
|
2092
|
+
hostVars: 1,
|
|
2093
|
+
hostBindings: function MatStepperPrevious_HostBindings(rf, ctx) {
|
|
2094
|
+
if (rf & 2) {
|
|
2095
|
+
\u0275\u0275domProperty("type", ctx.type);
|
|
2096
|
+
}
|
|
2097
|
+
},
|
|
2098
|
+
features: [\u0275\u0275InheritDefinitionFeature]
|
|
2099
|
+
});
|
|
2100
|
+
};
|
|
2101
|
+
(() => {
|
|
2102
|
+
(typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(MatStepperPrevious, [{
|
|
2103
|
+
type: Directive,
|
|
2104
|
+
args: [{
|
|
2105
|
+
selector: "button[matStepperPrevious]",
|
|
2106
|
+
host: {
|
|
2107
|
+
"class": "mat-stepper-previous",
|
|
2108
|
+
"[type]": "type"
|
|
2109
|
+
}
|
|
2110
|
+
}]
|
|
2111
|
+
}], null, null);
|
|
2112
|
+
})();
|
|
2113
|
+
var MatStepperModule = class _MatStepperModule {
|
|
2114
|
+
static \u0275fac = function MatStepperModule_Factory(__ngFactoryType__) {
|
|
2115
|
+
return new (__ngFactoryType__ || _MatStepperModule)();
|
|
2116
|
+
};
|
|
2117
|
+
static \u0275mod = /* @__PURE__ */ \u0275\u0275defineNgModule({
|
|
2118
|
+
type: _MatStepperModule,
|
|
2119
|
+
imports: [MatCommonModule, PortalModule, CdkStepperModule, MatIconModule, MatRippleModule, MatStep, MatStepLabel, MatStepper, MatStepperNext, MatStepperPrevious, MatStepHeader, MatStepperIcon, MatStepContent],
|
|
2120
|
+
exports: [MatCommonModule, MatStep, MatStepLabel, MatStepper, MatStepperNext, MatStepperPrevious, MatStepHeader, MatStepperIcon, MatStepContent]
|
|
2121
|
+
});
|
|
2122
|
+
static \u0275inj = /* @__PURE__ */ \u0275\u0275defineInjector({
|
|
2123
|
+
providers: [MAT_STEPPER_INTL_PROVIDER, ErrorStateMatcher],
|
|
2124
|
+
imports: [MatCommonModule, PortalModule, CdkStepperModule, MatIconModule, MatRippleModule, MatStepper, MatStepHeader, MatCommonModule]
|
|
2125
|
+
});
|
|
2126
|
+
};
|
|
2127
|
+
(() => {
|
|
2128
|
+
(typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(MatStepperModule, [{
|
|
2129
|
+
type: NgModule,
|
|
2130
|
+
args: [{
|
|
2131
|
+
imports: [MatCommonModule, PortalModule, CdkStepperModule, MatIconModule, MatRippleModule, MatStep, MatStepLabel, MatStepper, MatStepperNext, MatStepperPrevious, MatStepHeader, MatStepperIcon, MatStepContent],
|
|
2132
|
+
exports: [MatCommonModule, MatStep, MatStepLabel, MatStepper, MatStepperNext, MatStepperPrevious, MatStepHeader, MatStepperIcon, MatStepContent],
|
|
2133
|
+
providers: [MAT_STEPPER_INTL_PROVIDER, ErrorStateMatcher]
|
|
2134
|
+
}]
|
|
2135
|
+
}], null, null);
|
|
2136
|
+
})();
|
|
2137
|
+
|
|
2138
|
+
// src/app/core/components/datasets/datasets.component.ts
|
|
2139
|
+
var _c03 = () => [5, 10, 25, 100];
|
|
2140
|
+
function SettingsDatasetsComponent_mat_header_cell_13_Template(rf, ctx) {
|
|
2141
|
+
if (rf & 1) {
|
|
2142
|
+
\u0275\u0275elementStart(0, "mat-header-cell", 29);
|
|
2143
|
+
\u0275\u0275text(1, " Path ");
|
|
2144
|
+
\u0275\u0275elementEnd();
|
|
2145
|
+
}
|
|
2146
|
+
}
|
|
2147
|
+
function SettingsDatasetsComponent_mat_cell_14_Template(rf, ctx) {
|
|
2148
|
+
if (rf & 1) {
|
|
2149
|
+
\u0275\u0275elementStart(0, "mat-cell", 30);
|
|
2150
|
+
\u0275\u0275text(1);
|
|
2151
|
+
\u0275\u0275elementEnd();
|
|
2152
|
+
}
|
|
2153
|
+
if (rf & 2) {
|
|
2154
|
+
const element_r2 = ctx.$implicit;
|
|
2155
|
+
\u0275\u0275advance();
|
|
2156
|
+
\u0275\u0275textInterpolate1(" ", element_r2.path, " ");
|
|
2157
|
+
}
|
|
2158
|
+
}
|
|
2159
|
+
function SettingsDatasetsComponent_mat_header_cell_16_Template(rf, ctx) {
|
|
2160
|
+
if (rf & 1) {
|
|
2161
|
+
\u0275\u0275elementStart(0, "mat-header-cell", 31);
|
|
2162
|
+
\u0275\u0275text(1, " Source ");
|
|
2163
|
+
\u0275\u0275elementEnd();
|
|
2164
|
+
}
|
|
2165
|
+
}
|
|
2166
|
+
function SettingsDatasetsComponent_mat_cell_17_Template(rf, ctx) {
|
|
2167
|
+
if (rf & 1) {
|
|
2168
|
+
\u0275\u0275elementStart(0, "mat-cell", 32);
|
|
2169
|
+
\u0275\u0275text(1);
|
|
2170
|
+
\u0275\u0275elementEnd();
|
|
2171
|
+
}
|
|
2172
|
+
if (rf & 2) {
|
|
2173
|
+
const element_r3 = ctx.$implicit;
|
|
2174
|
+
\u0275\u0275advance();
|
|
2175
|
+
\u0275\u0275textInterpolate1(" ", element_r3.pathSource, " ");
|
|
2176
|
+
}
|
|
2177
|
+
}
|
|
2178
|
+
function SettingsDatasetsComponent_mat_header_cell_19_Template(rf, ctx) {
|
|
2179
|
+
if (rf & 1) {
|
|
2180
|
+
\u0275\u0275elementStart(0, "mat-header-cell", 31);
|
|
2181
|
+
\u0275\u0275text(1, " Time Scale ");
|
|
2182
|
+
\u0275\u0275elementEnd();
|
|
2183
|
+
}
|
|
2184
|
+
}
|
|
2185
|
+
function SettingsDatasetsComponent_mat_cell_20_Template(rf, ctx) {
|
|
2186
|
+
if (rf & 1) {
|
|
2187
|
+
\u0275\u0275elementStart(0, "mat-cell", 33);
|
|
2188
|
+
\u0275\u0275text(1);
|
|
2189
|
+
\u0275\u0275elementEnd();
|
|
2190
|
+
}
|
|
2191
|
+
if (rf & 2) {
|
|
2192
|
+
const element_r4 = ctx.$implicit;
|
|
2193
|
+
\u0275\u0275advance();
|
|
2194
|
+
\u0275\u0275textInterpolate1(" ", element_r4.timeScaleFormat, " ");
|
|
2195
|
+
}
|
|
2196
|
+
}
|
|
2197
|
+
function SettingsDatasetsComponent_mat_header_cell_22_Template(rf, ctx) {
|
|
2198
|
+
if (rf & 1) {
|
|
2199
|
+
\u0275\u0275elementStart(0, "mat-header-cell", 31);
|
|
2200
|
+
\u0275\u0275text(1, " Duration ");
|
|
2201
|
+
\u0275\u0275elementEnd();
|
|
2202
|
+
}
|
|
2203
|
+
}
|
|
2204
|
+
function SettingsDatasetsComponent_mat_cell_23_Template(rf, ctx) {
|
|
2205
|
+
if (rf & 1) {
|
|
2206
|
+
\u0275\u0275elementStart(0, "mat-cell", 33);
|
|
2207
|
+
\u0275\u0275text(1);
|
|
2208
|
+
\u0275\u0275elementEnd();
|
|
2209
|
+
}
|
|
2210
|
+
if (rf & 2) {
|
|
2211
|
+
const element_r5 = ctx.$implicit;
|
|
2212
|
+
\u0275\u0275advance();
|
|
2213
|
+
\u0275\u0275textInterpolate1(" ", element_r5.period, " ");
|
|
2214
|
+
}
|
|
2215
|
+
}
|
|
2216
|
+
function SettingsDatasetsComponent_mat_header_cell_25_Template(rf, ctx) {
|
|
2217
|
+
if (rf & 1) {
|
|
2218
|
+
\u0275\u0275element(0, "mat-header-cell", 34);
|
|
2219
|
+
}
|
|
2220
|
+
}
|
|
2221
|
+
function SettingsDatasetsComponent_mat_cell_26_Template(rf, ctx) {
|
|
2222
|
+
if (rf & 1) {
|
|
2223
|
+
const _r6 = \u0275\u0275getCurrentView();
|
|
2224
|
+
\u0275\u0275elementStart(0, "mat-cell", 35)(1, "button", 36);
|
|
2225
|
+
\u0275\u0275listener("click", function SettingsDatasetsComponent_mat_cell_26_Template_button_click_1_listener() {
|
|
2226
|
+
const element_r7 = \u0275\u0275restoreView(_r6).$implicit;
|
|
2227
|
+
const ctx_r7 = \u0275\u0275nextContext();
|
|
2228
|
+
return \u0275\u0275resetView(ctx_r7.openDatasetModal(element_r7.uuid));
|
|
2229
|
+
});
|
|
2230
|
+
\u0275\u0275text(2, "Edit");
|
|
2231
|
+
\u0275\u0275elementEnd();
|
|
2232
|
+
\u0275\u0275elementStart(3, "button", 36);
|
|
2233
|
+
\u0275\u0275listener("click", function SettingsDatasetsComponent_mat_cell_26_Template_button_click_3_listener() {
|
|
2234
|
+
const element_r7 = \u0275\u0275restoreView(_r6).$implicit;
|
|
2235
|
+
const ctx_r7 = \u0275\u0275nextContext();
|
|
2236
|
+
return \u0275\u0275resetView(ctx_r7.deleteDataset(element_r7.uuid));
|
|
2237
|
+
});
|
|
2238
|
+
\u0275\u0275text(4, "Delete");
|
|
2239
|
+
\u0275\u0275elementEnd()();
|
|
2240
|
+
}
|
|
2241
|
+
}
|
|
2242
|
+
function SettingsDatasetsComponent_mat_header_row_27_Template(rf, ctx) {
|
|
2243
|
+
if (rf & 1) {
|
|
2244
|
+
\u0275\u0275element(0, "mat-header-row", 37);
|
|
2245
|
+
}
|
|
2246
|
+
}
|
|
2247
|
+
function SettingsDatasetsComponent_mat_row_28_Template(rf, ctx) {
|
|
2248
|
+
if (rf & 1) {
|
|
2249
|
+
\u0275\u0275element(0, "mat-row", 38);
|
|
2250
|
+
}
|
|
2251
|
+
}
|
|
2252
|
+
function SettingsDatasetsComponent_mat_row_29_Template(rf, ctx) {
|
|
2253
|
+
if (rf & 1) {
|
|
2254
|
+
\u0275\u0275elementStart(0, "mat-row");
|
|
2255
|
+
\u0275\u0275text(1);
|
|
2256
|
+
\u0275\u0275elementEnd();
|
|
2257
|
+
}
|
|
2258
|
+
if (rf & 2) {
|
|
2259
|
+
\u0275\u0275nextContext();
|
|
2260
|
+
const input_r9 = \u0275\u0275reference(9);
|
|
2261
|
+
\u0275\u0275advance();
|
|
2262
|
+
\u0275\u0275textInterpolate1(' No data matching the filter "', input_r9.value, '" ');
|
|
2263
|
+
}
|
|
2264
|
+
}
|
|
2265
|
+
function SettingsDatasetsModalComponent_ng_template_7_Template(rf, ctx) {
|
|
2266
|
+
if (rf & 1) {
|
|
2267
|
+
\u0275\u0275text(0, "Source Data");
|
|
2268
|
+
}
|
|
2269
|
+
}
|
|
2270
|
+
function SettingsDatasetsModalComponent_For_14_Template(rf, ctx) {
|
|
2271
|
+
if (rf & 1) {
|
|
2272
|
+
\u0275\u0275elementStart(0, "mat-option", 7);
|
|
2273
|
+
\u0275\u0275text(1);
|
|
2274
|
+
\u0275\u0275elementEnd();
|
|
2275
|
+
}
|
|
2276
|
+
if (rf & 2) {
|
|
2277
|
+
const path_r2 = ctx.$implicit;
|
|
2278
|
+
\u0275\u0275property("value", path_r2);
|
|
2279
|
+
\u0275\u0275advance();
|
|
2280
|
+
\u0275\u0275textInterpolate1(" ", path_r2, " ");
|
|
2281
|
+
}
|
|
2282
|
+
}
|
|
2283
|
+
function SettingsDatasetsModalComponent_For_25_Template(rf, ctx) {
|
|
2284
|
+
if (rf & 1) {
|
|
2285
|
+
\u0275\u0275elementStart(0, "mat-option", 7);
|
|
2286
|
+
\u0275\u0275text(1);
|
|
2287
|
+
\u0275\u0275elementEnd();
|
|
2288
|
+
}
|
|
2289
|
+
if (rf & 2) {
|
|
2290
|
+
const source_r3 = ctx.$implicit;
|
|
2291
|
+
\u0275\u0275property("value", source_r3);
|
|
2292
|
+
\u0275\u0275advance();
|
|
2293
|
+
\u0275\u0275textInterpolate1(" ", source_r3, " ");
|
|
2294
|
+
}
|
|
2295
|
+
}
|
|
2296
|
+
function SettingsDatasetsModalComponent_ng_template_31_Template(rf, ctx) {
|
|
2297
|
+
if (rf & 1) {
|
|
2298
|
+
\u0275\u0275text(0, "Sampling");
|
|
2299
|
+
}
|
|
2300
|
+
}
|
|
2301
|
+
var _c12 = "\n\n[_nghost-%COMP%] {\n display: block;\n height: 100%;\n width: 100%;\n}\n.content-area[_ngcontent-%COMP%] {\n height: calc(100% - 63px);\n overflow-y: auto;\n width: 100%;\n scroll-behavior: smooth;\n}\n.filter[_ngcontent-%COMP%] {\n margin-bottom: 10px;\n}\n.buttons[_ngcontent-%COMP%] {\n margin-top: 10px;\n}\n.mat-column-actions[_ngcontent-%COMP%] {\n text-align: end;\n}\n.buttons[_ngcontent-%COMP%] {\n margin-right: 5px;\n}\n.pathCell[_ngcontent-%COMP%] {\n flex: 1 1 50%;\n}\n.pathHeader[_ngcontent-%COMP%] {\n flex: 1 1 50%;\n}\n.dataHeader[_ngcontent-%COMP%] {\n flex: 1 1 10%;\n justify-content: center;\n}\n.dataCell[_ngcontent-%COMP%] {\n flex: 1 1 10%;\n justify-content: center;\n}\n.actionHeader[_ngcontent-%COMP%] {\n flex: 1 1 20%;\n}\n.actionCell[_ngcontent-%COMP%] {\n flex: 1 1 20%;\n justify-content: end;\n}\n@media screen and (max-width: 750px) {\n .pathHeader[_ngcontent-%COMP%] {\n flex: 1 1 30%;\n }\n .dataHeader[_ngcontent-%COMP%] {\n flex: 1 1 30%;\n }\n .actionHeader[_ngcontent-%COMP%] {\n display: none;\n }\n .mat-mdc-table[_ngcontent-%COMP%] .mat-mdc-cell[_ngcontent-%COMP%]:before {\n content: attr(data-label);\n float: left;\n padding-right: 5px;\n }\n mat-row[_ngcontent-%COMP%]::after {\n min-height: auto;\n padding-bottom: 10px;\n }\n .dataRow[_ngcontent-%COMP%] {\n flex-direction: column;\n align-items: flex-start;\n }\n .dataCell[_ngcontent-%COMP%] {\n margin-left: 24px;\n }\n .actionCell[_ngcontent-%COMP%] {\n margin-left: 24px;\n }\n}\n/*# sourceMappingURL=datasets.component.css.map */";
|
|
2302
|
+
var SettingsDatasetsComponent = class _SettingsDatasetsComponent {
|
|
2303
|
+
paginator = viewChild(MatPaginator, ...ngDevMode ? [{ debugName: "paginator" }] : []);
|
|
2304
|
+
sort = viewChild(MatSort, ...ngDevMode ? [{ debugName: "sort" }] : []);
|
|
2305
|
+
pageTitle = "Datasets";
|
|
2306
|
+
selectedDataset;
|
|
2307
|
+
tableData = new MatTableDataSource([]);
|
|
2308
|
+
displayedColumns = ["path", "pathSource", "timeScaleFormat", "period", "actions"];
|
|
2309
|
+
dialog = inject(MatDialog);
|
|
2310
|
+
cdRef = inject(ChangeDetectorRef);
|
|
2311
|
+
dsService = inject(DatasetService);
|
|
2312
|
+
ngOnInit() {
|
|
2313
|
+
this.loadDatasets();
|
|
2314
|
+
}
|
|
2315
|
+
loadDatasets() {
|
|
2316
|
+
this.tableData.data = this.dsService.list().filter((ds) => ds.editable !== false);
|
|
2317
|
+
}
|
|
2318
|
+
ngAfterViewInit() {
|
|
2319
|
+
this.tableData.paginator = this.paginator();
|
|
2320
|
+
this.tableData.sort = this.sort();
|
|
2321
|
+
this.tableData.filter = "";
|
|
2322
|
+
this.cdRef.detectChanges();
|
|
2323
|
+
}
|
|
2324
|
+
openDatasetModal(uuid) {
|
|
2325
|
+
let dialogRef;
|
|
2326
|
+
if (uuid) {
|
|
2327
|
+
const thisDataset = cloneDeep_default(this.tableData.data.find((dataset) => {
|
|
2328
|
+
return dataset.uuid === uuid;
|
|
2329
|
+
}));
|
|
2330
|
+
if (thisDataset) {
|
|
2331
|
+
dialogRef = this.dialog.open(SettingsDatasetsModalComponent, {
|
|
2332
|
+
data: thisDataset,
|
|
2333
|
+
disableClose: false
|
|
2334
|
+
});
|
|
2335
|
+
}
|
|
2336
|
+
} else {
|
|
2337
|
+
dialogRef = this.dialog.open(SettingsDatasetsModalComponent, {
|
|
2338
|
+
disableClose: false
|
|
2339
|
+
});
|
|
2340
|
+
}
|
|
2341
|
+
dialogRef.afterClosed().subscribe((dataset) => {
|
|
2342
|
+
if (dataset === void 0 || !dataset) {
|
|
2343
|
+
return;
|
|
2344
|
+
} else {
|
|
2345
|
+
dataset.label = `${dataset.path}, Source: ${dataset.pathSource}, Scale: ${dataset.timeScaleFormat}, Period: ${dataset.period} `;
|
|
2346
|
+
if (dataset.uuid) {
|
|
2347
|
+
this.editDataset(dataset);
|
|
2348
|
+
} else {
|
|
2349
|
+
this.addDataset(dataset);
|
|
2350
|
+
}
|
|
2351
|
+
this.loadDatasets();
|
|
2352
|
+
}
|
|
2353
|
+
});
|
|
2354
|
+
}
|
|
2355
|
+
addDataset(dataset) {
|
|
2356
|
+
this.dsService.create(dataset.path, dataset.pathSource, dataset.timeScaleFormat, dataset.period, dataset.label, true, true);
|
|
2357
|
+
this.loadDatasets();
|
|
2358
|
+
}
|
|
2359
|
+
editDataset(dataset) {
|
|
2360
|
+
this.dsService.edit(dataset);
|
|
2361
|
+
this.loadDatasets();
|
|
2362
|
+
}
|
|
2363
|
+
deleteDataset(uuid) {
|
|
2364
|
+
this.dsService.remove(uuid);
|
|
2365
|
+
this.loadDatasets();
|
|
2366
|
+
}
|
|
2367
|
+
trackByUuid(index, item) {
|
|
2368
|
+
return `${item.uuid}`;
|
|
2369
|
+
}
|
|
2370
|
+
applyFilter(event) {
|
|
2371
|
+
const filterValue = event.target.value;
|
|
2372
|
+
this.tableData.filter = filterValue.trim().toLowerCase();
|
|
2373
|
+
if (this.tableData.paginator) {
|
|
2374
|
+
this.tableData.paginator.firstPage();
|
|
2375
|
+
}
|
|
2376
|
+
}
|
|
2377
|
+
static \u0275fac = function SettingsDatasetsComponent_Factory(__ngFactoryType__) {
|
|
2378
|
+
return new (__ngFactoryType__ || _SettingsDatasetsComponent)();
|
|
2379
|
+
};
|
|
2380
|
+
static \u0275cmp = /* @__PURE__ */ \u0275\u0275defineComponent({ type: _SettingsDatasetsComponent, selectors: [["settings-datasets"]], viewQuery: function SettingsDatasetsComponent_Query(rf, ctx) {
|
|
2381
|
+
if (rf & 1) {
|
|
2382
|
+
\u0275\u0275viewQuerySignal(ctx.paginator, MatPaginator, 5);
|
|
2383
|
+
\u0275\u0275viewQuerySignal(ctx.sort, MatSort, 5);
|
|
2384
|
+
}
|
|
2385
|
+
if (rf & 2) {
|
|
2386
|
+
\u0275\u0275queryAdvance(2);
|
|
2387
|
+
}
|
|
2388
|
+
}, decls: 36, vars: 7, consts: [["existingDataSet", "ngForm"], ["input", ""], [1, "content-area"], ["name", "existingDataSet", 1, "page-content-wrapper", "content-area"], [1, "mat-card-subtitle", "description-text"], [1, "filter"], ["matInput", "", "placeholder", "Ex: navigation", "value", "", 3, "keyup"], [1, "mat-elevation-z8", "full-width", "table-container"], ["matSort", "", "matSortActive", "path", "matSortDirection", "asc", 1, "full-display", 3, "dataSource", "trackBy"], ["matColumnDef", "path"], ["class", "pathHeader", "mat-sort-header", "", 4, "matHeaderCellDef"], ["class", "pathCell", "data-label", "Path: ", 4, "matCellDef"], ["matColumnDef", "pathSource"], ["class", "dataHeader", "mat-sort-header", "", 4, "matHeaderCellDef"], ["class", "dataCell", "data-label", "Source: ", 4, "matCellDef"], ["matColumnDef", "timeScaleFormat"], ["class", "dataCell", "data-label", "Scale: ", 4, "matCellDef"], ["matColumnDef", "period"], ["matColumnDef", "actions"], ["class", "actionHeader", "mat-sort-header", "", 4, "matHeaderCellDef"], ["class", "actionCell", 4, "matCellDef"], ["class", "headerRow", 4, "matHeaderRowDef", "matHeaderRowDefSticky"], ["class", "dataRow", 4, "matRowDef", "matRowDefColumns"], [4, "matNoDataRow"], [1, "paginator"], ["pageSize", "5", 3, "pageSizeOptions"], [1, "formActionFooter"], [1, "formActionDivider"], ["mat-flat-button", "", 1, "formActionButton", 3, "click"], ["mat-sort-header", "", 1, "pathHeader"], ["data-label", "Path: ", 1, "pathCell"], ["mat-sort-header", "", 1, "dataHeader"], ["data-label", "Source: ", 1, "dataCell"], ["data-label", "Scale: ", 1, "dataCell"], ["mat-sort-header", "", 1, "actionHeader"], [1, "actionCell"], ["mat-raised-button", "", "color", "accent", 1, "small-button", "buttons", 3, "click"], [1, "headerRow"], [1, "dataRow"]], template: function SettingsDatasetsComponent_Template(rf, ctx) {
|
|
2389
|
+
if (rf & 1) {
|
|
2390
|
+
const _r1 = \u0275\u0275getCurrentView();
|
|
2391
|
+
\u0275\u0275elementStart(0, "div", 2)(1, "form", 3, 0)(3, "p", 4);
|
|
2392
|
+
\u0275\u0275text(4, "Datasets are background processes that record path values over time. Combine with the Data Chart widget they offer data visualization graphs. Care should be applied to manage Datasets and evaluate system resources usage. ");
|
|
2393
|
+
\u0275\u0275elementEnd();
|
|
2394
|
+
\u0275\u0275elementStart(5, "mat-form-field", 5)(6, "mat-label");
|
|
2395
|
+
\u0275\u0275text(7, "Filter");
|
|
2396
|
+
\u0275\u0275elementEnd();
|
|
2397
|
+
\u0275\u0275elementStart(8, "input", 6, 1);
|
|
2398
|
+
\u0275\u0275listener("keyup", function SettingsDatasetsComponent_Template_input_keyup_8_listener($event) {
|
|
2399
|
+
\u0275\u0275restoreView(_r1);
|
|
2400
|
+
return \u0275\u0275resetView(ctx.applyFilter($event));
|
|
2401
|
+
});
|
|
2402
|
+
\u0275\u0275elementEnd()();
|
|
2403
|
+
\u0275\u0275elementStart(10, "div", 7)(11, "mat-table", 8);
|
|
2404
|
+
\u0275\u0275elementContainerStart(12, 9);
|
|
2405
|
+
\u0275\u0275template(13, SettingsDatasetsComponent_mat_header_cell_13_Template, 2, 0, "mat-header-cell", 10)(14, SettingsDatasetsComponent_mat_cell_14_Template, 2, 1, "mat-cell", 11);
|
|
2406
|
+
\u0275\u0275elementContainerEnd();
|
|
2407
|
+
\u0275\u0275elementContainerStart(15, 12);
|
|
2408
|
+
\u0275\u0275template(16, SettingsDatasetsComponent_mat_header_cell_16_Template, 2, 0, "mat-header-cell", 13)(17, SettingsDatasetsComponent_mat_cell_17_Template, 2, 1, "mat-cell", 14);
|
|
2409
|
+
\u0275\u0275elementContainerEnd();
|
|
2410
|
+
\u0275\u0275elementContainerStart(18, 15);
|
|
2411
|
+
\u0275\u0275template(19, SettingsDatasetsComponent_mat_header_cell_19_Template, 2, 0, "mat-header-cell", 13)(20, SettingsDatasetsComponent_mat_cell_20_Template, 2, 1, "mat-cell", 16);
|
|
2412
|
+
\u0275\u0275elementContainerEnd();
|
|
2413
|
+
\u0275\u0275elementContainerStart(21, 17);
|
|
2414
|
+
\u0275\u0275template(22, SettingsDatasetsComponent_mat_header_cell_22_Template, 2, 0, "mat-header-cell", 13)(23, SettingsDatasetsComponent_mat_cell_23_Template, 2, 1, "mat-cell", 16);
|
|
2415
|
+
\u0275\u0275elementContainerEnd();
|
|
2416
|
+
\u0275\u0275elementContainerStart(24, 18);
|
|
2417
|
+
\u0275\u0275template(25, SettingsDatasetsComponent_mat_header_cell_25_Template, 1, 0, "mat-header-cell", 19)(26, SettingsDatasetsComponent_mat_cell_26_Template, 5, 0, "mat-cell", 20);
|
|
2418
|
+
\u0275\u0275elementContainerEnd();
|
|
2419
|
+
\u0275\u0275template(27, SettingsDatasetsComponent_mat_header_row_27_Template, 1, 0, "mat-header-row", 21)(28, SettingsDatasetsComponent_mat_row_28_Template, 1, 0, "mat-row", 22)(29, SettingsDatasetsComponent_mat_row_29_Template, 2, 1, "mat-row", 23);
|
|
2420
|
+
\u0275\u0275elementEnd()();
|
|
2421
|
+
\u0275\u0275elementStart(30, "div", 24);
|
|
2422
|
+
\u0275\u0275element(31, "mat-paginator", 25);
|
|
2423
|
+
\u0275\u0275elementEnd();
|
|
2424
|
+
\u0275\u0275elementStart(32, "div", 26);
|
|
2425
|
+
\u0275\u0275element(33, "mat-divider", 27);
|
|
2426
|
+
\u0275\u0275elementStart(34, "button", 28);
|
|
2427
|
+
\u0275\u0275listener("click", function SettingsDatasetsComponent_Template_button_click_34_listener() {
|
|
2428
|
+
\u0275\u0275restoreView(_r1);
|
|
2429
|
+
return \u0275\u0275resetView(ctx.openDatasetModal());
|
|
2430
|
+
});
|
|
2431
|
+
\u0275\u0275text(35, "Add");
|
|
2432
|
+
\u0275\u0275elementEnd()()()();
|
|
2433
|
+
}
|
|
2434
|
+
if (rf & 2) {
|
|
2435
|
+
\u0275\u0275advance(11);
|
|
2436
|
+
\u0275\u0275property("dataSource", ctx.tableData)("trackBy", ctx.trackByUuid);
|
|
2437
|
+
\u0275\u0275advance(16);
|
|
2438
|
+
\u0275\u0275property("matHeaderRowDef", ctx.displayedColumns)("matHeaderRowDefSticky", true);
|
|
2439
|
+
\u0275\u0275advance();
|
|
2440
|
+
\u0275\u0275property("matRowDefColumns", ctx.displayedColumns);
|
|
2441
|
+
\u0275\u0275advance(3);
|
|
2442
|
+
\u0275\u0275property("pageSizeOptions", \u0275\u0275pureFunction0(6, _c03));
|
|
2443
|
+
}
|
|
2444
|
+
}, dependencies: [FormsModule, \u0275NgNoValidate, NgControlStatusGroup, NgForm, MatFormField, MatLabel, MatInput, MatTable, MatSort, MatColumnDef, MatHeaderCellDef, MatHeaderCell, MatSortHeader, MatCellDef, MatCell, MatButton, MatHeaderRowDef, MatHeaderRow, MatRowDef, MatRow, MatNoDataRow, MatPaginator, MatDivider], styles: [_c12] });
|
|
2445
|
+
};
|
|
2446
|
+
(() => {
|
|
2447
|
+
(typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(SettingsDatasetsComponent, [{
|
|
2448
|
+
type: Component,
|
|
2449
|
+
args: [{ selector: "settings-datasets", imports: [FormsModule, MatFormField, MatLabel, MatInput, MatTable, MatSort, MatColumnDef, MatHeaderCellDef, MatHeaderCell, MatSortHeader, MatCellDef, MatCell, MatButton, MatHeaderRowDef, MatHeaderRow, MatRowDef, MatRow, MatNoDataRow, MatPaginator, MatDivider], template: `<div class="content-area ">
|
|
2450
|
+
<form name="existingDataSet" #existingDataSet="ngForm" class="page-content-wrapper content-area">
|
|
2451
|
+
<p class="mat-card-subtitle description-text">Datasets are background processes that record path values over time. Combine with the Data Chart widget they offer
|
|
2452
|
+
data visualization graphs. Care should be applied to manage Datasets and evaluate system resources usage.
|
|
2453
|
+
</p>
|
|
2454
|
+
<mat-form-field class="filter">
|
|
2455
|
+
<mat-label>Filter</mat-label>
|
|
2456
|
+
<input matInput (keyup)="applyFilter($event)" placeholder="Ex: navigation" value="" #input>
|
|
2457
|
+
</mat-form-field>
|
|
2458
|
+
<div class="mat-elevation-z8 full-width table-container">
|
|
2459
|
+
<mat-table class="full-display" [dataSource]="tableData" [trackBy]="trackByUuid" matSort matSortActive="path" matSortDirection="asc">
|
|
2460
|
+
|
|
2461
|
+
<!-- Path Column -->
|
|
2462
|
+
<ng-container matColumnDef="path">
|
|
2463
|
+
<mat-header-cell class="pathHeader" *matHeaderCellDef mat-sort-header> Path </mat-header-cell>
|
|
2464
|
+
<mat-cell class="pathCell" *matCellDef="let element" data-label="Path: "> {{element.path}} </mat-cell>
|
|
2465
|
+
</ng-container>
|
|
2466
|
+
|
|
2467
|
+
<!-- pathSource Column -->
|
|
2468
|
+
<ng-container matColumnDef="pathSource">
|
|
2469
|
+
<mat-header-cell class="dataHeader" *matHeaderCellDef mat-sort-header> Source </mat-header-cell>
|
|
2470
|
+
<mat-cell class="dataCell" *matCellDef="let element" data-label="Source: "> {{element.pathSource}} </mat-cell>
|
|
2471
|
+
</ng-container>
|
|
2472
|
+
|
|
2473
|
+
<!-- timeScaleFormat Column -->
|
|
2474
|
+
<ng-container matColumnDef="timeScaleFormat">
|
|
2475
|
+
<mat-header-cell class="dataHeader" *matHeaderCellDef mat-sort-header> Time Scale </mat-header-cell>
|
|
2476
|
+
<mat-cell class="dataCell" *matCellDef="let element" data-label="Scale: "> {{element.timeScaleFormat}} </mat-cell>
|
|
2477
|
+
</ng-container>
|
|
2478
|
+
|
|
2479
|
+
<!-- period Column -->
|
|
2480
|
+
<ng-container matColumnDef="period">
|
|
2481
|
+
<mat-header-cell class="dataHeader" *matHeaderCellDef mat-sort-header> Duration </mat-header-cell>
|
|
2482
|
+
<mat-cell class="dataCell" *matCellDef="let element" data-label="Scale: "> {{element.period}} </mat-cell>
|
|
2483
|
+
</ng-container>
|
|
2484
|
+
|
|
2485
|
+
<ng-container matColumnDef="actions">
|
|
2486
|
+
<mat-header-cell class="actionHeader" *matHeaderCellDef mat-sort-header> </mat-header-cell>
|
|
2487
|
+
<mat-cell class="actionCell" *matCellDef="let element">
|
|
2488
|
+
<button mat-raised-button class="small-button buttons" color="accent" (click)="openDatasetModal(element.uuid)">Edit</button>
|
|
2489
|
+
<button mat-raised-button class="small-button buttons" color="accent" (click)="deleteDataset(element.uuid)">Delete</button>
|
|
2490
|
+
</mat-cell>
|
|
2491
|
+
</ng-container>
|
|
2492
|
+
|
|
2493
|
+
<mat-header-row class="headerRow" *matHeaderRowDef="displayedColumns; sticky: true"></mat-header-row>
|
|
2494
|
+
<mat-row class="dataRow" *matRowDef="let row; columns: displayedColumns;"></mat-row>
|
|
2495
|
+
|
|
2496
|
+
<!-- Row shown when there is no matching data. -->
|
|
2497
|
+
<mat-row *matNoDataRow>
|
|
2498
|
+
No data matching the filter "{{input.value}}"
|
|
2499
|
+
</mat-row>
|
|
2500
|
+
</mat-table>
|
|
2501
|
+
</div>
|
|
2502
|
+
<div class="paginator">
|
|
2503
|
+
<mat-paginator pageSize="5" [pageSizeOptions]="[5, 10, 25, 100]"></mat-paginator>
|
|
2504
|
+
</div>
|
|
2505
|
+
<div class="formActionFooter">
|
|
2506
|
+
<mat-divider class="formActionDivider"></mat-divider>
|
|
2507
|
+
<button mat-flat-button class="formActionButton" (click)='openDatasetModal()'>Add</button>
|
|
2508
|
+
</div>
|
|
2509
|
+
</form>
|
|
2510
|
+
</div>
|
|
2511
|
+
`, styles: ["/* src/app/core/components/datasets/datasets.component.scss */\n:host {\n display: block;\n height: 100%;\n width: 100%;\n}\n.content-area {\n height: calc(100% - 63px);\n overflow-y: auto;\n width: 100%;\n scroll-behavior: smooth;\n}\n.filter {\n margin-bottom: 10px;\n}\n.buttons {\n margin-top: 10px;\n}\n.mat-column-actions {\n text-align: end;\n}\n.buttons {\n margin-right: 5px;\n}\n.pathCell {\n flex: 1 1 50%;\n}\n.pathHeader {\n flex: 1 1 50%;\n}\n.dataHeader {\n flex: 1 1 10%;\n justify-content: center;\n}\n.dataCell {\n flex: 1 1 10%;\n justify-content: center;\n}\n.actionHeader {\n flex: 1 1 20%;\n}\n.actionCell {\n flex: 1 1 20%;\n justify-content: end;\n}\n@media screen and (max-width: 750px) {\n .pathHeader {\n flex: 1 1 30%;\n }\n .dataHeader {\n flex: 1 1 30%;\n }\n .actionHeader {\n display: none;\n }\n .mat-mdc-table .mat-mdc-cell:before {\n content: attr(data-label);\n float: left;\n padding-right: 5px;\n }\n mat-row::after {\n min-height: auto;\n padding-bottom: 10px;\n }\n .dataRow {\n flex-direction: column;\n align-items: flex-start;\n }\n .dataCell {\n margin-left: 24px;\n }\n .actionCell {\n margin-left: 24px;\n }\n}\n/*# sourceMappingURL=datasets.component.css.map */\n"] }]
|
|
2512
|
+
}], null, null);
|
|
2513
|
+
})();
|
|
2514
|
+
(() => {
|
|
2515
|
+
(typeof ngDevMode === "undefined" || ngDevMode) && \u0275setClassDebugInfo(SettingsDatasetsComponent, { className: "SettingsDatasetsComponent", filePath: "src/app/core/components/datasets/datasets.component.ts", lineNumber: 31 });
|
|
2516
|
+
})();
|
|
2517
|
+
var SettingsDatasetsModalComponent = class _SettingsDatasetsModalComponent {
|
|
2518
|
+
SignalKDataService = inject(DataService);
|
|
2519
|
+
dialogRef = inject(MatDialogRef);
|
|
2520
|
+
dataset = inject(MAT_DIALOG_DATA);
|
|
2521
|
+
titleDialog = null;
|
|
2522
|
+
newDataset = {
|
|
2523
|
+
uuid: null,
|
|
2524
|
+
path: null,
|
|
2525
|
+
pathSource: null,
|
|
2526
|
+
baseUnit: null,
|
|
2527
|
+
timeScaleFormat: "second",
|
|
2528
|
+
period: 10,
|
|
2529
|
+
label: null
|
|
2530
|
+
};
|
|
2531
|
+
formDataset = null;
|
|
2532
|
+
availablePaths = [];
|
|
2533
|
+
availableSources = [];
|
|
2534
|
+
filterSelfPaths = true;
|
|
2535
|
+
ngOnInit() {
|
|
2536
|
+
if (this.dataset) {
|
|
2537
|
+
this.titleDialog = "Edit Dataset";
|
|
2538
|
+
this.formDataset = this.dataset;
|
|
2539
|
+
const pathObject = this.SignalKDataService.getPathObject(this.formDataset.path);
|
|
2540
|
+
if (pathObject !== null) {
|
|
2541
|
+
this.availableSources = ["default"].concat(Object.keys(pathObject.sources));
|
|
2542
|
+
}
|
|
2543
|
+
} else {
|
|
2544
|
+
this.titleDialog = "Add Dataset";
|
|
2545
|
+
this.formDataset = this.newDataset;
|
|
2546
|
+
}
|
|
2547
|
+
this.availablePaths = this.SignalKDataService.getPathsByType("number").sort();
|
|
2548
|
+
}
|
|
2549
|
+
changePath() {
|
|
2550
|
+
const pathObject = this.SignalKDataService.getPathObject(this.formDataset.path);
|
|
2551
|
+
if (pathObject === null) {
|
|
2552
|
+
return;
|
|
2553
|
+
}
|
|
2554
|
+
this.availableSources = ["default"].concat(Object.keys(pathObject.sources));
|
|
2555
|
+
this.formDataset.pathSource = "default";
|
|
2556
|
+
}
|
|
2557
|
+
closeForm() {
|
|
2558
|
+
this.dialogRef.close(this.formDataset);
|
|
2559
|
+
}
|
|
2560
|
+
static \u0275fac = function SettingsDatasetsModalComponent_Factory(__ngFactoryType__) {
|
|
2561
|
+
return new (__ngFactoryType__ || _SettingsDatasetsModalComponent)();
|
|
2562
|
+
};
|
|
2563
|
+
static \u0275cmp = /* @__PURE__ */ \u0275\u0275defineComponent({ type: _SettingsDatasetsModalComponent, selectors: [["settings-datasets-modal"]], decls: 67, vars: 11, consts: [["datasetForm", "ngForm"], ["mat-dialog-title", ""], ["name", "datasetForm", 3, "ngSubmit"], ["matStepLabel", ""], [1, "tab-content"], [1, "full-width"], ["placeholder", "Select data path", "name", "selectedPath", "required", "", 3, "ngModelChange", "ngModel"], [3, "value"], ["name", "filterSelfPaths", 3, "ngModelChange", "ngModel"], ["placeholder", "Select data source", "name", "selectedSource", "required", "", 3, "ngModelChange", "ngModel"], [1, "buttons"], ["type", "button", "mat-raised-button", "", "color", "accent", "matStepperNext", "", 3, "disabled"], [1, "mat-subtitle-1"], [1, "flex-container", 2, "margin-top", "10px"], [1, "flex-field-50"], ["placeholder", "Select dataset time scale", "name", "timeScaleFormat", "required", "", 3, "ngModelChange", "ngModel"], ["value", "hour"], ["value", "minute"], ["value", "second"], ["matInput", "", "type", "number", "min", "1", "max", "60", "step", "1", "placeholder", "Enter or select number...", "name", "period", "required", "", 3, "ngModelChange", "ngModel"], [2, "margin-top", "10px"], ["type", "button", "mat-raised-button", "", "color", "accent", "matStepperPrevious", "", 1, "buttons"], ["mat-raised-button", "", "type", "submit", "color", "accent", 1, "buttons", 3, "disabled"]], template: function SettingsDatasetsModalComponent_Template(rf, ctx) {
|
|
2564
|
+
if (rf & 1) {
|
|
2565
|
+
const _r1 = \u0275\u0275getCurrentView();
|
|
2566
|
+
\u0275\u0275elementStart(0, "h6", 1);
|
|
2567
|
+
\u0275\u0275text(1);
|
|
2568
|
+
\u0275\u0275elementEnd();
|
|
2569
|
+
\u0275\u0275elementStart(2, "mat-dialog-content")(3, "form", 2, 0);
|
|
2570
|
+
\u0275\u0275listener("ngSubmit", function SettingsDatasetsModalComponent_Template_form_ngSubmit_3_listener() {
|
|
2571
|
+
\u0275\u0275restoreView(_r1);
|
|
2572
|
+
return \u0275\u0275resetView(ctx.closeForm());
|
|
2573
|
+
});
|
|
2574
|
+
\u0275\u0275elementStart(5, "mat-horizontal-stepper")(6, "mat-step");
|
|
2575
|
+
\u0275\u0275template(7, SettingsDatasetsModalComponent_ng_template_7_Template, 1, 0, "ng-template", 3);
|
|
2576
|
+
\u0275\u0275elementStart(8, "div", 4)(9, "mat-form-field", 5)(10, "mat-label");
|
|
2577
|
+
\u0275\u0275text(11, "Signal K Path");
|
|
2578
|
+
\u0275\u0275elementEnd();
|
|
2579
|
+
\u0275\u0275elementStart(12, "mat-select", 6);
|
|
2580
|
+
\u0275\u0275twoWayListener("ngModelChange", function SettingsDatasetsModalComponent_Template_mat_select_ngModelChange_12_listener($event) {
|
|
2581
|
+
\u0275\u0275restoreView(_r1);
|
|
2582
|
+
\u0275\u0275twoWayBindingSet(ctx.formDataset.path, $event) || (ctx.formDataset.path = $event);
|
|
2583
|
+
return \u0275\u0275resetView($event);
|
|
2584
|
+
});
|
|
2585
|
+
\u0275\u0275listener("ngModelChange", function SettingsDatasetsModalComponent_Template_mat_select_ngModelChange_12_listener() {
|
|
2586
|
+
\u0275\u0275restoreView(_r1);
|
|
2587
|
+
return \u0275\u0275resetView(ctx.changePath());
|
|
2588
|
+
});
|
|
2589
|
+
\u0275\u0275repeaterCreate(13, SettingsDatasetsModalComponent_For_14_Template, 2, 2, "mat-option", 7, \u0275\u0275repeaterTrackByIdentity);
|
|
2590
|
+
\u0275\u0275pipe(15, "filterSelf");
|
|
2591
|
+
\u0275\u0275elementEnd()();
|
|
2592
|
+
\u0275\u0275elementStart(16, "mat-checkbox", 8);
|
|
2593
|
+
\u0275\u0275twoWayListener("ngModelChange", function SettingsDatasetsModalComponent_Template_mat_checkbox_ngModelChange_16_listener($event) {
|
|
2594
|
+
\u0275\u0275restoreView(_r1);
|
|
2595
|
+
\u0275\u0275twoWayBindingSet(ctx.filterSelfPaths, $event) || (ctx.filterSelfPaths = $event);
|
|
2596
|
+
return \u0275\u0275resetView($event);
|
|
2597
|
+
});
|
|
2598
|
+
\u0275\u0275text(17, " Restrict to own vessel ");
|
|
2599
|
+
\u0275\u0275elementEnd();
|
|
2600
|
+
\u0275\u0275element(18, "br")(19, "br");
|
|
2601
|
+
\u0275\u0275elementStart(20, "mat-form-field", 5)(21, "mat-label");
|
|
2602
|
+
\u0275\u0275text(22, "Source");
|
|
2603
|
+
\u0275\u0275elementEnd();
|
|
2604
|
+
\u0275\u0275elementStart(23, "mat-select", 9);
|
|
2605
|
+
\u0275\u0275twoWayListener("ngModelChange", function SettingsDatasetsModalComponent_Template_mat_select_ngModelChange_23_listener($event) {
|
|
2606
|
+
\u0275\u0275restoreView(_r1);
|
|
2607
|
+
\u0275\u0275twoWayBindingSet(ctx.formDataset.pathSource, $event) || (ctx.formDataset.pathSource = $event);
|
|
2608
|
+
return \u0275\u0275resetView($event);
|
|
2609
|
+
});
|
|
2610
|
+
\u0275\u0275repeaterCreate(24, SettingsDatasetsModalComponent_For_25_Template, 2, 2, "mat-option", 7, \u0275\u0275repeaterTrackByIdentity);
|
|
2611
|
+
\u0275\u0275elementEnd()()();
|
|
2612
|
+
\u0275\u0275element(26, "mat-divider");
|
|
2613
|
+
\u0275\u0275elementStart(27, "div", 10)(28, "button", 11);
|
|
2614
|
+
\u0275\u0275text(29, " Next ");
|
|
2615
|
+
\u0275\u0275elementEnd()()();
|
|
2616
|
+
\u0275\u0275elementStart(30, "mat-step");
|
|
2617
|
+
\u0275\u0275template(31, SettingsDatasetsModalComponent_ng_template_31_Template, 1, 0, "ng-template", 3);
|
|
2618
|
+
\u0275\u0275elementStart(32, "div", 4)(33, "span", 12);
|
|
2619
|
+
\u0275\u0275text(34, "Time Scales");
|
|
2620
|
+
\u0275\u0275elementEnd();
|
|
2621
|
+
\u0275\u0275elementStart(35, "div", 13)(36, "div", 14)(37, "mat-form-field", 5)(38, "mat-label");
|
|
2622
|
+
\u0275\u0275text(39, "Scale");
|
|
2623
|
+
\u0275\u0275elementEnd();
|
|
2624
|
+
\u0275\u0275elementStart(40, "mat-select", 15);
|
|
2625
|
+
\u0275\u0275twoWayListener("ngModelChange", function SettingsDatasetsModalComponent_Template_mat_select_ngModelChange_40_listener($event) {
|
|
2626
|
+
\u0275\u0275restoreView(_r1);
|
|
2627
|
+
\u0275\u0275twoWayBindingSet(ctx.formDataset.timeScaleFormat, $event) || (ctx.formDataset.timeScaleFormat = $event);
|
|
2628
|
+
return \u0275\u0275resetView($event);
|
|
2629
|
+
});
|
|
2630
|
+
\u0275\u0275elementStart(41, "mat-option", 16);
|
|
2631
|
+
\u0275\u0275text(42, "Hours");
|
|
2632
|
+
\u0275\u0275elementEnd();
|
|
2633
|
+
\u0275\u0275elementStart(43, "mat-option", 17);
|
|
2634
|
+
\u0275\u0275text(44, "Minutes");
|
|
2635
|
+
\u0275\u0275elementEnd();
|
|
2636
|
+
\u0275\u0275elementStart(45, "mat-option", 18);
|
|
2637
|
+
\u0275\u0275text(46, "Seconds");
|
|
2638
|
+
\u0275\u0275elementEnd()()()();
|
|
2639
|
+
\u0275\u0275elementStart(47, "div", 14)(48, "mat-form-field", 5)(49, "mat-label");
|
|
2640
|
+
\u0275\u0275text(50, "Duration");
|
|
2641
|
+
\u0275\u0275elementEnd();
|
|
2642
|
+
\u0275\u0275elementStart(51, "input", 19);
|
|
2643
|
+
\u0275\u0275twoWayListener("ngModelChange", function SettingsDatasetsModalComponent_Template_input_ngModelChange_51_listener($event) {
|
|
2644
|
+
\u0275\u0275restoreView(_r1);
|
|
2645
|
+
\u0275\u0275twoWayBindingSet(ctx.formDataset.period, $event) || (ctx.formDataset.period = $event);
|
|
2646
|
+
return \u0275\u0275resetView($event);
|
|
2647
|
+
});
|
|
2648
|
+
\u0275\u0275elementEnd()()()();
|
|
2649
|
+
\u0275\u0275elementStart(52, "p", 20);
|
|
2650
|
+
\u0275\u0275text(53, "Time scales define the data sampling rate and overall Dataset level of precision. Select a Time Scale that is targeted to your intended usage. Shorter Time Scales have higher system resources costs, for both the data capture and widget rendering process. ");
|
|
2651
|
+
\u0275\u0275elementEnd();
|
|
2652
|
+
\u0275\u0275elementStart(54, "ul")(55, "li");
|
|
2653
|
+
\u0275\u0275text(56, "Hours: per minute sampling rate. Intended for long sampling periods when slow refresh rate is acceptable and system resource usage should be minimized. Grafana is the perfect alternative to this Time Scale. ");
|
|
2654
|
+
\u0275\u0275elementEnd();
|
|
2655
|
+
\u0275\u0275elementStart(57, "li");
|
|
2656
|
+
\u0275\u0275text(58, "Minutes: per second sampling rate. Meant for trends observations such wind speed, depth, solar power, voltage, etc. ");
|
|
2657
|
+
\u0275\u0275elementEnd();
|
|
2658
|
+
\u0275\u0275elementStart(59, "li");
|
|
2659
|
+
\u0275\u0275text(60, "Secondes: 200ms sampling rate. Intended for use cases where user may act upon realtime information such as when racing. ");
|
|
2660
|
+
\u0275\u0275elementEnd()()();
|
|
2661
|
+
\u0275\u0275element(61, "mat-divider");
|
|
2662
|
+
\u0275\u0275elementStart(62, "div", 10)(63, "button", 21);
|
|
2663
|
+
\u0275\u0275text(64, " Back ");
|
|
2664
|
+
\u0275\u0275elementEnd();
|
|
2665
|
+
\u0275\u0275elementStart(65, "button", 22);
|
|
2666
|
+
\u0275\u0275text(66, " Save ");
|
|
2667
|
+
\u0275\u0275elementEnd()()()()()();
|
|
2668
|
+
}
|
|
2669
|
+
if (rf & 2) {
|
|
2670
|
+
const datasetForm_r4 = \u0275\u0275reference(4);
|
|
2671
|
+
\u0275\u0275advance();
|
|
2672
|
+
\u0275\u0275textInterpolate1(" ", ctx.titleDialog, " ");
|
|
2673
|
+
\u0275\u0275advance(11);
|
|
2674
|
+
\u0275\u0275twoWayProperty("ngModel", ctx.formDataset.path);
|
|
2675
|
+
\u0275\u0275advance();
|
|
2676
|
+
\u0275\u0275repeater(\u0275\u0275pipeBind2(15, 8, ctx.availablePaths, ctx.filterSelfPaths));
|
|
2677
|
+
\u0275\u0275advance(3);
|
|
2678
|
+
\u0275\u0275twoWayProperty("ngModel", ctx.filterSelfPaths);
|
|
2679
|
+
\u0275\u0275advance(7);
|
|
2680
|
+
\u0275\u0275twoWayProperty("ngModel", ctx.formDataset.pathSource);
|
|
2681
|
+
\u0275\u0275advance();
|
|
2682
|
+
\u0275\u0275repeater(ctx.availableSources);
|
|
2683
|
+
\u0275\u0275advance(4);
|
|
2684
|
+
\u0275\u0275property("disabled", !ctx.formDataset.path);
|
|
2685
|
+
\u0275\u0275advance(12);
|
|
2686
|
+
\u0275\u0275twoWayProperty("ngModel", ctx.formDataset.timeScaleFormat);
|
|
2687
|
+
\u0275\u0275advance(11);
|
|
2688
|
+
\u0275\u0275twoWayProperty("ngModel", ctx.formDataset.period);
|
|
2689
|
+
\u0275\u0275advance(14);
|
|
2690
|
+
\u0275\u0275property("disabled", !datasetForm_r4.valid);
|
|
2691
|
+
}
|
|
2692
|
+
}, dependencies: [MatRadioModule, MatDialogTitle, MatDialogContent, FormsModule, \u0275NgNoValidate, DefaultValueAccessor, NumberValueAccessor, NgControlStatus, NgControlStatusGroup, RequiredValidator, MinValidator, MaxValidator, NgModel, NgForm, MatStepper, MatStep, MatStepLabel, MatFormField, MatLabel, MatSelect, MatOption, MatCheckbox, MatDivider, MatButton, MatStepperNext, MatInput, MatStepperPrevious, FilterSelfPipe], styles: [_c12] });
|
|
2693
|
+
};
|
|
2694
|
+
(() => {
|
|
2695
|
+
(typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(SettingsDatasetsModalComponent, [{
|
|
2696
|
+
type: Component,
|
|
2697
|
+
args: [{ selector: "settings-datasets-modal", imports: [MatRadioModule, MatDialogTitle, MatDialogContent, FormsModule, MatStepper, MatStep, MatStepLabel, MatFormField, MatLabel, MatSelect, MatOption, MatCheckbox, MatDivider, MatButton, MatStepperNext, MatInput, MatStepperPrevious, FilterSelfPipe], template: '<h6 mat-dialog-title> {{titleDialog}} </h6>\n<mat-dialog-content>\n <form name="datasetForm" (ngSubmit)="closeForm()" #datasetForm="ngForm">\n <mat-horizontal-stepper>\n <mat-step>\n <ng-template matStepLabel>Source Data</ng-template>\n <div class="tab-content">\n <mat-form-field class="full-width">\n <mat-label>Signal K Path</mat-label>\n <mat-select\n placeholder="Select data path"\n [(ngModel)]="formDataset.path"\n name="selectedPath"\n (ngModelChange)="changePath()"\n required>\n @for (path of (availablePaths | filterSelf: filterSelfPaths); track path) {\n <mat-option\n [value]="path">\n {{path}}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n <mat-checkbox [(ngModel)]="filterSelfPaths" name="filterSelfPaths">\n Restrict to own vessel\n </mat-checkbox>\n <br/><br/>\n <mat-form-field class="full-width">\n <mat-label>Source</mat-label>\n <mat-select\n placeholder="Select data source"\n [(ngModel)]="formDataset.pathSource"\n name="selectedSource"\n required\n >\n @for (source of availableSources; track source) {\n <mat-option\n [value]="source"\n >\n {{source}}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n </div>\n <mat-divider></mat-divider>\n <div class="buttons">\n <button\n type="button"\n mat-raised-button\n color="accent"\n matStepperNext\n [disabled]="!formDataset.path"\n >\n Next\n </button>\n </div>\n </mat-step>\n <mat-step>\n <ng-template matStepLabel>Sampling</ng-template>\n <div class="tab-content">\n <span class="mat-subtitle-1">Time Scales</span>\n <div class="flex-container" style="margin-top: 10px;">\n <div class="flex-field-50">\n <mat-form-field class="full-width">\n <mat-label>Scale</mat-label>\n <mat-select\n placeholder="Select dataset time scale"\n [(ngModel)]="formDataset.timeScaleFormat"\n name="timeScaleFormat"\n required>\n <mat-option value="hour">Hours</mat-option>\n <mat-option value="minute">Minutes</mat-option>\n <mat-option value="second">Seconds</mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n <div class="flex-field-50">\n <mat-form-field class="full-width">\n <mat-label>Duration</mat-label>\n <input matInput type="number"\n min="1" max="60" step="1"\n placeholder="Enter or select number..."\n name="period"\n [(ngModel)]="formDataset.period"\n required>\n </mat-form-field>\n </div>\n </div>\n <p style="margin-top: 10px;">Time scales define the data sampling rate and overall Dataset level\n of precision. Select a Time Scale that is targeted to your intended usage.\n Shorter Time Scales have higher system resources\n costs, for both the data capture and widget rendering process.\n </p>\n <ul>\n <li>Hours: per minute sampling rate. Intended for long sampling periods when slow\n refresh rate is acceptable and system resource usage should be minimized. Grafana is\n the perfect alternative to this Time Scale.\n </li>\n <li>Minutes: per second sampling rate. Meant for trends observations such wind\n speed, depth, solar power, voltage, etc.\n </li>\n <li>Secondes: 200ms sampling rate. Intended for use cases where user may act upon realtime\n information such as when racing.\n </li>\n </ul>\n </div>\n <mat-divider></mat-divider>\n <div class="buttons">\n <button\n type="button"\n mat-raised-button\n class="buttons"\n color="accent"\n matStepperPrevious\n >\n Back\n </button>\n <button\n mat-raised-button\n type="submit"\n class="buttons"\n color="accent"\n [disabled]="!datasetForm.valid"\n >\n Save\n </button>\n </div>\n </mat-step>\n </mat-horizontal-stepper>\n </form>\n</mat-dialog-content>\n', styles: ["/* src/app/core/components/datasets/datasets.component.scss */\n:host {\n display: block;\n height: 100%;\n width: 100%;\n}\n.content-area {\n height: calc(100% - 63px);\n overflow-y: auto;\n width: 100%;\n scroll-behavior: smooth;\n}\n.filter {\n margin-bottom: 10px;\n}\n.buttons {\n margin-top: 10px;\n}\n.mat-column-actions {\n text-align: end;\n}\n.buttons {\n margin-right: 5px;\n}\n.pathCell {\n flex: 1 1 50%;\n}\n.pathHeader {\n flex: 1 1 50%;\n}\n.dataHeader {\n flex: 1 1 10%;\n justify-content: center;\n}\n.dataCell {\n flex: 1 1 10%;\n justify-content: center;\n}\n.actionHeader {\n flex: 1 1 20%;\n}\n.actionCell {\n flex: 1 1 20%;\n justify-content: end;\n}\n@media screen and (max-width: 750px) {\n .pathHeader {\n flex: 1 1 30%;\n }\n .dataHeader {\n flex: 1 1 30%;\n }\n .actionHeader {\n display: none;\n }\n .mat-mdc-table .mat-mdc-cell:before {\n content: attr(data-label);\n float: left;\n padding-right: 5px;\n }\n mat-row::after {\n min-height: auto;\n padding-bottom: 10px;\n }\n .dataRow {\n flex-direction: column;\n align-items: flex-start;\n }\n .dataCell {\n margin-left: 24px;\n }\n .actionCell {\n margin-left: 24px;\n }\n}\n/*# sourceMappingURL=datasets.component.css.map */\n"] }]
|
|
2698
|
+
}], null, null);
|
|
2699
|
+
})();
|
|
2700
|
+
(() => {
|
|
2701
|
+
(typeof ngDevMode === "undefined" || ngDevMode) && \u0275setClassDebugInfo(SettingsDatasetsModalComponent, { className: "SettingsDatasetsModalComponent", filePath: "src/app/core/components/datasets/datasets.component.ts", lineNumber: 138 });
|
|
2702
|
+
})();
|
|
2703
|
+
|
|
2704
|
+
export {
|
|
2705
|
+
SettingsDatasetsComponent,
|
|
2706
|
+
SettingsDatasetsModalComponent
|
|
2707
|
+
};
|
|
2708
|
+
//# sourceMappingURL=chunk-YGJLBLOX.js.map
|