@mtna/web-form-angular 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/_index.scss +25 -0
- package/bundles/mtna-web-form-angular.umd.js +4982 -0
- package/bundles/mtna-web-form-angular.umd.js.map +1 -0
- package/esm2015/lib/core/animations.js +8 -0
- package/esm2015/lib/core/api-config.js +3 -0
- package/esm2015/lib/core/index.js +7 -0
- package/esm2015/lib/core/pipes/coerce-date-item.pipe.js +23 -0
- package/esm2015/lib/core/pipes/coerce-form-group.pipe.js +35 -0
- package/esm2015/lib/core/pipes/date-quarter.pipe.js +43 -0
- package/esm2015/lib/core/pipes/get-auto-complete.pipe.js +42 -0
- package/esm2015/lib/core/pipes/get-available-quarters.pipe.js +29 -0
- package/esm2015/lib/core/pipes/get-form-control-error.pipe.js +20 -0
- package/esm2015/lib/core/pipes/get-list-icon.pipe.js +53 -0
- package/esm2015/lib/core/pipes/get-object-type.pipe.js +17 -0
- package/esm2015/lib/core/pipes/get-selected-option.pipe.js +20 -0
- package/esm2015/lib/core/pipes/index.js +71 -0
- package/esm2015/lib/core/pipes/items-with-value.pipe.js +30 -0
- package/esm2015/lib/core/pipes/sanitize-html.pipe.js +23 -0
- package/esm2015/lib/core/services/api.service.js +67 -0
- package/esm2015/lib/core/services/form-manager.service.js +465 -0
- package/esm2015/lib/core/services/index.js +5 -0
- package/esm2015/lib/core/services/ng-form.service.js +150 -0
- package/esm2015/lib/core/services/ui.service.js +333 -0
- package/esm2015/lib/core/utilities/find-form-control.js +29 -0
- package/esm2015/lib/core/utilities/find-form-item.js +25 -0
- package/esm2015/lib/core/utilities/flatten-steps.js +10 -0
- package/esm2015/lib/core/utilities/generate-form-steps.js +25 -0
- package/esm2015/lib/core/utilities/index.js +9 -0
- package/esm2015/lib/core/utilities/is-form-group.js +6 -0
- package/esm2015/lib/core/utilities/serializer-util.js +358 -0
- package/esm2015/lib/core/utilities/update-step-status.js +38 -0
- package/esm2015/lib/core/validators/index.js +3 -0
- package/esm2015/lib/core/validators/instant-validation-result-error-state-matcher.js +23 -0
- package/esm2015/lib/core/validators/validation-result-validator.js +19 -0
- package/esm2015/lib/file-upload/file-upload.component.js +66 -0
- package/esm2015/lib/file-upload/index.js +2 -0
- package/esm2015/lib/form/base-form-item.model.js +2 -0
- package/esm2015/lib/form/form-disabler.component.js +38 -0
- package/esm2015/lib/form/form-item.directive.js +22 -0
- package/esm2015/lib/form/form.component.js +250 -0
- package/esm2015/lib/form/form.module.js +214 -0
- package/esm2015/lib/form/index.js +5 -0
- package/esm2015/lib/form/white-list.model.js +11 -0
- package/esm2015/lib/form-item-controls/base-form-item-control.directive.js +58 -0
- package/esm2015/lib/form-item-controls/base-parent-item-control.directive.js +42 -0
- package/esm2015/lib/form-item-controls/base-single-selection-parent.directive.js +53 -0
- package/esm2015/lib/form-item-controls/date-range.component.js +84 -0
- package/esm2015/lib/form-item-controls/date.component.js +134 -0
- package/esm2015/lib/form-item-controls/dropdown.component.js +109 -0
- package/esm2015/lib/form-item-controls/index.js +8 -0
- package/esm2015/lib/form-item-controls/input.component.js +149 -0
- package/esm2015/lib/form-item-controls/year-quarter-range.component.js +75 -0
- package/esm2015/lib/form-item-controls/year-quarter.component.js +228 -0
- package/esm2015/lib/form-stepper/form-step-group.component.js +95 -0
- package/esm2015/lib/form-stepper/form-step-group.pipe.js +20 -0
- package/esm2015/lib/form-stepper/form-step.component.js +110 -0
- package/esm2015/lib/form-stepper/form-step.util.js +28 -0
- package/esm2015/lib/form-stepper/form-stepper.component.js +115 -0
- package/esm2015/lib/form-stepper/form-stepper.module.js +53 -0
- package/esm2015/lib/form-stepper/index.js +8 -0
- package/esm2015/lib/form-stepper/models/base-form-step.model.js +6 -0
- package/esm2015/lib/form-stepper/models/form-step-group.model.js +13 -0
- package/esm2015/lib/form-stepper/models/form-step.model.js +12 -0
- package/esm2015/lib/form-stepper/models/index.js +4 -0
- package/esm2015/lib/groups/form-item-dialog-data.model.js +14 -0
- package/esm2015/lib/groups/group-components.js +646 -0
- package/esm2015/lib/groups/index.js +3 -0
- package/esm2015/lib/groups/repeatable-item.component.js +23 -0
- package/esm2015/lib/item-header/index.js +2 -0
- package/esm2015/lib/item-header/item-header.component.js +108 -0
- package/esm2015/lib/static-form-items/index.js +3 -0
- package/esm2015/lib/static-form-items/ordered-list-item.js +50 -0
- package/esm2015/lib/static-form-items/unordered-list-item.js +52 -0
- package/esm2015/lib/step-card/index.js +2 -0
- package/esm2015/lib/step-card/step-card.component.js +53 -0
- package/esm2015/mtna-web-form-angular.js +5 -0
- package/esm2015/public-api.js +10 -0
- package/fesm2015/mtna-web-form-angular.js +4614 -0
- package/fesm2015/mtna-web-form-angular.js.map +1 -0
- package/lib/_index.scss +25 -0
- package/lib/core/_all-color.scss +25 -0
- package/lib/core/_all-theme.scss +28 -0
- package/lib/core/_all-typography.scss +25 -0
- package/lib/core/_core-theme.scss +43 -0
- package/lib/core/animations.d.ts +2 -0
- package/lib/core/api-config.d.ts +5 -0
- package/lib/core/index.d.ts +6 -0
- package/lib/core/pipes/coerce-date-item.pipe.d.ts +11 -0
- package/lib/core/pipes/coerce-form-group.pipe.d.ts +23 -0
- package/lib/core/pipes/date-quarter.pipe.d.ts +7 -0
- package/lib/core/pipes/get-auto-complete.pipe.d.ts +7 -0
- package/lib/core/pipes/get-available-quarters.pipe.d.ts +8 -0
- package/lib/core/pipes/get-form-control-error.pipe.d.ts +14 -0
- package/lib/core/pipes/get-list-icon.pipe.d.ts +7 -0
- package/lib/core/pipes/get-object-type.pipe.d.ts +7 -0
- package/lib/core/pipes/get-selected-option.pipe.d.ts +8 -0
- package/lib/core/pipes/index.d.ts +28 -0
- package/lib/core/pipes/items-with-value.pipe.d.ts +13 -0
- package/lib/core/pipes/sanitize-html.pipe.d.ts +10 -0
- package/lib/core/services/api.service.d.ts +41 -0
- package/lib/core/services/form-manager.service.d.ts +184 -0
- package/lib/core/services/index.d.ts +4 -0
- package/lib/core/services/ng-form.service.d.ts +76 -0
- package/lib/core/services/ui.service.d.ts +123 -0
- package/lib/core/utilities/find-form-control.d.ts +11 -0
- package/lib/core/utilities/find-form-item.d.ts +10 -0
- package/lib/core/utilities/flatten-steps.d.ts +7 -0
- package/lib/core/utilities/generate-form-steps.d.ts +3 -0
- package/lib/core/utilities/index.d.ts +8 -0
- package/lib/core/utilities/is-form-group.d.ts +3 -0
- package/lib/core/utilities/serializer-util.d.ts +81 -0
- package/lib/core/utilities/update-step-status.d.ts +14 -0
- package/lib/core/validators/index.d.ts +2 -0
- package/lib/core/validators/instant-validation-result-error-state-matcher.d.ts +13 -0
- package/lib/core/validators/validation-result-validator.d.ts +12 -0
- package/lib/file-upload/file-upload.component.d.ts +23 -0
- package/lib/file-upload/index.d.ts +1 -0
- package/lib/form/base-form-item.model.d.ts +15 -0
- package/lib/form/form-disabler.component.d.ts +6 -0
- package/lib/form/form-item.directive.d.ts +13 -0
- package/lib/form/form.component.d.ts +89 -0
- package/lib/form/form.module.d.ts +52 -0
- package/lib/form/index.d.ts +4 -0
- package/lib/form/white-list.model.d.ts +6 -0
- package/lib/form-item-controls/_date-item-theme.scss +29 -0
- package/lib/form-item-controls/_form-control-theme.scss +28 -0
- package/lib/form-item-controls/_year-quarter-item-theme.scss +28 -0
- package/lib/form-item-controls/base-form-item-control.directive.d.ts +26 -0
- package/lib/form-item-controls/base-parent-item-control.directive.d.ts +19 -0
- package/lib/form-item-controls/base-single-selection-parent.directive.d.ts +26 -0
- package/lib/form-item-controls/date-range.component.d.ts +12 -0
- package/lib/form-item-controls/date.component.d.ts +24 -0
- package/lib/form-item-controls/dropdown.component.d.ts +9 -0
- package/lib/form-item-controls/index.d.ts +7 -0
- package/lib/form-item-controls/input.component.d.ts +14 -0
- package/lib/form-item-controls/year-quarter-range.component.d.ts +9 -0
- package/lib/form-item-controls/year-quarter.component.d.ts +33 -0
- package/lib/form-stepper/_form-step-group-theme.scss +43 -0
- package/lib/form-stepper/_form-stepper-theme.scss +72 -0
- package/lib/form-stepper/form-step-group.component.d.ts +23 -0
- package/lib/form-stepper/form-step-group.pipe.d.ts +11 -0
- package/lib/form-stepper/form-step.component.d.ts +27 -0
- package/lib/form-stepper/form-step.util.d.ts +27 -0
- package/lib/form-stepper/form-stepper.component.d.ts +35 -0
- package/lib/form-stepper/form-stepper.module.d.ts +18 -0
- package/lib/form-stepper/index.d.ts +7 -0
- package/lib/form-stepper/models/base-form-step.model.d.ts +4 -0
- package/lib/form-stepper/models/form-step-group.model.d.ts +8 -0
- package/lib/form-stepper/models/form-step.model.d.ts +11 -0
- package/lib/form-stepper/models/index.d.ts +3 -0
- package/lib/groups/_checkbox-theme.scss +62 -0
- package/lib/groups/_form-group-theme.scss +32 -0
- package/lib/groups/_multiple-choice-theme.scss +65 -0
- package/lib/groups/_repeatable-item-theme.scss +28 -0
- package/lib/groups/form-item-dialog-data.model.d.ts +13 -0
- package/lib/groups/group-components.d.ts +221 -0
- package/lib/groups/index.d.ts +2 -0
- package/lib/groups/repeatable-item.component.d.ts +5 -0
- package/lib/item-header/_item-header-theme.scss +28 -0
- package/lib/item-header/index.d.ts +1 -0
- package/lib/item-header/item-header.component.d.ts +35 -0
- package/lib/static-form-items/index.d.ts +2 -0
- package/lib/static-form-items/ordered-list-item.d.ts +11 -0
- package/lib/static-form-items/unordered-list-item.d.ts +11 -0
- package/lib/step-card/_step-card-theme.scss +42 -0
- package/lib/step-card/index.d.ts +1 -0
- package/lib/step-card/step-card.component.d.ts +21 -0
- package/mtna-web-form-angular.d.ts +5 -0
- package/package.json +43 -0
- package/public-api.d.ts +9 -0
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, HostBinding, Inject, InjectionToken, Input, Optional, ViewEncapsulation, } from '@angular/core';
|
|
2
|
+
import { FormControl } from '@angular/forms';
|
|
3
|
+
import { isPresent } from '@mtna/core-ts';
|
|
4
|
+
import { merge, Subject } from 'rxjs';
|
|
5
|
+
import { takeUntil } from 'rxjs/operators';
|
|
6
|
+
import { BaseFormItemControl } from './base-form-item-control.directive';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "@angular/material/form-field";
|
|
9
|
+
import * as i2 from "@angular/material/select";
|
|
10
|
+
import * as i3 from "@angular/material/core";
|
|
11
|
+
import * as i4 from "@angular/common";
|
|
12
|
+
import * as i5 from "@angular/flex-layout/flex";
|
|
13
|
+
import * as i6 from "@mtna/core-angular";
|
|
14
|
+
import * as i7 from "@angular/forms";
|
|
15
|
+
import * as i8 from "../core/pipes/get-form-control-error.pipe";
|
|
16
|
+
import * as i9 from "../core/pipes/get-available-quarters.pipe";
|
|
17
|
+
import * as i10 from "../core/pipes/date-quarter.pipe";
|
|
18
|
+
export const MTNA_WF_DEFAULT_YEAR_RANGE = new InjectionToken('mtna.wf.default.year.range');
|
|
19
|
+
export class MtnaWfYearQuarterComponent extends BaseFormItemControl {
|
|
20
|
+
constructor(defaultYearRange) {
|
|
21
|
+
super();
|
|
22
|
+
this.yearQuarterItemClass = true;
|
|
23
|
+
this._quarterControl = new FormControl();
|
|
24
|
+
this._yearControl = new FormControl();
|
|
25
|
+
this._yearSelection = new Array();
|
|
26
|
+
this.destroyObs = new Subject();
|
|
27
|
+
/**
|
|
28
|
+
* Sets the quarter value to `null` if the year & quarter is out of bounds of the range limits.
|
|
29
|
+
* Otherwise, returns original value
|
|
30
|
+
*
|
|
31
|
+
* @param value `[number, number]` The selected [year, quarter] value
|
|
32
|
+
* @returns `[number, number]` The original [year, quarter] value OR [year, null]
|
|
33
|
+
*/
|
|
34
|
+
this.withinRangeLimits = ([year, quarter]) => {
|
|
35
|
+
var _a, _b;
|
|
36
|
+
const beyondUpperLimit =
|
|
37
|
+
// year matches end year range limit
|
|
38
|
+
year === ((_a = this.rangeLimits) === null || _a === void 0 ? void 0 : _a.end.year) &&
|
|
39
|
+
// quarter limit was provided
|
|
40
|
+
isPresent(this.rangeLimits.end.quarter) &&
|
|
41
|
+
// selected quarter is beyond quarter limit
|
|
42
|
+
quarter > this.rangeLimits.end.quarter;
|
|
43
|
+
const beyondLowerLimit =
|
|
44
|
+
// year matches start year range limit
|
|
45
|
+
year === ((_b = this.rangeLimits) === null || _b === void 0 ? void 0 : _b.start.year) &&
|
|
46
|
+
// quarter limit was provided
|
|
47
|
+
isPresent(this.rangeLimits.start.quarter) &&
|
|
48
|
+
// selected quarter is beyond quarter limit
|
|
49
|
+
quarter < this.rangeLimits.start.quarter;
|
|
50
|
+
if (beyondLowerLimit || beyondUpperLimit) {
|
|
51
|
+
this._quarterControl.setValue(null, { emitEvent: false });
|
|
52
|
+
return [year, null];
|
|
53
|
+
}
|
|
54
|
+
return [year, quarter];
|
|
55
|
+
};
|
|
56
|
+
this.defaultYearRange = defaultYearRange || { numFutureYears: 25, numPastYears: 25 };
|
|
57
|
+
}
|
|
58
|
+
ngAfterViewInit() {
|
|
59
|
+
if (!this.readonly) {
|
|
60
|
+
// Observe Year & Quarter value changes && set them on the item's control
|
|
61
|
+
merge(this._yearControl.valueChanges, this._quarterControl.valueChanges)
|
|
62
|
+
.pipe(takeUntil(this.destroyObs))
|
|
63
|
+
.subscribe(() => {
|
|
64
|
+
var _a, _b, _c, _d;
|
|
65
|
+
if (!((_a = this.control) === null || _a === void 0 ? void 0 : _a.dirty) && (this._yearControl.dirty || this._quarterControl.dirty)) {
|
|
66
|
+
(_b = this.control) === null || _b === void 0 ? void 0 : _b.markAsDirty();
|
|
67
|
+
(_c = this.control) === null || _c === void 0 ? void 0 : _c.markAsTouched();
|
|
68
|
+
}
|
|
69
|
+
if (isPresent(this._yearControl.value)) {
|
|
70
|
+
const [year, quarter] = this.withinRangeLimits([this._yearControl.value, this._quarterControl.value]);
|
|
71
|
+
(_d = this.control) === null || _d === void 0 ? void 0 : _d.setValue({ year, quarter });
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
// FIXME not sure we need this until we starting making this control
|
|
75
|
+
// required/unrequired at the right time. Even then, this is super inneficient
|
|
76
|
+
/*
|
|
77
|
+
// Listen to this control for disabling local controls
|
|
78
|
+
this.control.statusChanges
|
|
79
|
+
.pipe(
|
|
80
|
+
startWith(this.control.status),
|
|
81
|
+
takeUntil(this.destroyObs)
|
|
82
|
+
)
|
|
83
|
+
.subscribe(status => {
|
|
84
|
+
console.warn('statusChanges', status, this.control);
|
|
85
|
+
// if this control is enabled, enable local controls if disabled
|
|
86
|
+
if (this.control.enabled) {
|
|
87
|
+
if (this._quarterControl.disabled || this._yearControl.disabled) {
|
|
88
|
+
console.warn('[YearQuarterItem] enable the things');
|
|
89
|
+
// this._quarterControl.enable();
|
|
90
|
+
// this._yearControl.enable();
|
|
91
|
+
}
|
|
92
|
+
// else this control is disabled, so disable local controls if enabled
|
|
93
|
+
} else if (this._quarterControl.enabled || this._yearControl.enabled) {
|
|
94
|
+
console.warn('[YearQuarterItem] disable the things');
|
|
95
|
+
// this._yearControl.disable();
|
|
96
|
+
// this._quarterControl.disable();
|
|
97
|
+
}
|
|
98
|
+
});
|
|
99
|
+
*/
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
ngOnDestroy() {
|
|
103
|
+
this.destroyObs.next();
|
|
104
|
+
this.destroyObs.complete();
|
|
105
|
+
}
|
|
106
|
+
ngOnInit() {
|
|
107
|
+
var _a, _b, _c;
|
|
108
|
+
// Set any initial value onto the Year & Quarter controls
|
|
109
|
+
this._yearControl.setValue(((_a = this.control) === null || _a === void 0 ? void 0 : _a.value) ? this.control.value.year : null);
|
|
110
|
+
this._quarterControl.setValue(((_b = this.control) === null || _b === void 0 ? void 0 : _b.value) ? this.control.value.quarter : null);
|
|
111
|
+
// Create range limits if none exist
|
|
112
|
+
if (!this.rangeLimits) {
|
|
113
|
+
const thisYear = new Date().getFullYear();
|
|
114
|
+
this.rangeLimits = {
|
|
115
|
+
start: {
|
|
116
|
+
year: thisYear - this.defaultYearRange.numPastYears,
|
|
117
|
+
quarter: null,
|
|
118
|
+
},
|
|
119
|
+
end: {
|
|
120
|
+
year: thisYear + this.defaultYearRange.numFutureYears,
|
|
121
|
+
quarter: null,
|
|
122
|
+
},
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
// Populate the year selection
|
|
126
|
+
for (let i = this.rangeLimits.start.year || 0; i <= (this.rangeLimits.end.year || 0); i++) {
|
|
127
|
+
this._yearSelection.push(i);
|
|
128
|
+
}
|
|
129
|
+
if (this.readonly) {
|
|
130
|
+
(_c = this.control) === null || _c === void 0 ? void 0 : _c.disable();
|
|
131
|
+
this._quarterControl.disable();
|
|
132
|
+
this._yearControl.disable();
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
MtnaWfYearQuarterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: MtnaWfYearQuarterComponent, deps: [{ token: MTNA_WF_DEFAULT_YEAR_RANGE, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
137
|
+
MtnaWfYearQuarterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: MtnaWfYearQuarterComponent, selector: "mtna-wf-year-quarter-item", inputs: { rangeLimits: "rangeLimits" }, host: { properties: { "class.mtna-wf-year-quarter-item": "this.yearQuarterItemClass" } }, usesInheritance: true, ngImport: i0, template: `
|
|
138
|
+
<ng-container *ngTemplateOutlet="header"></ng-container>
|
|
139
|
+
<div
|
|
140
|
+
*ngIf="control"
|
|
141
|
+
class="year-quarter-container"
|
|
142
|
+
fxLayout="row"
|
|
143
|
+
fxLayoutGap="8px"
|
|
144
|
+
[mtnaHighlight]="indicatorStatus === 'ACTIVE' && !hasItemHeader"
|
|
145
|
+
>
|
|
146
|
+
<mat-form-field>
|
|
147
|
+
<mat-select [formControl]="_yearControl" aria-label="year selection">
|
|
148
|
+
<mat-option *ngFor="let year of _yearSelection" [value]="year">{{ year }}</mat-option>
|
|
149
|
+
</mat-select>
|
|
150
|
+
<mat-error *ngFor="let error of control.errors | keyvalue">
|
|
151
|
+
{{ error | mtnaWfGetControlError : item }}
|
|
152
|
+
</mat-error>
|
|
153
|
+
</mat-form-field>
|
|
154
|
+
|
|
155
|
+
<mat-form-field>
|
|
156
|
+
<mat-select [formControl]="_quarterControl" aria-label="quarter selection">
|
|
157
|
+
<mat-option>None</mat-option>
|
|
158
|
+
<mat-option *ngFor="let quarter of _yearControl.value | mtnaWfGetQuarters : rangeLimits" [value]="quarter">{{
|
|
159
|
+
$any(quarter) | mtnaWfDateQuarter : 'short'
|
|
160
|
+
}}</mat-option>
|
|
161
|
+
</mat-select>
|
|
162
|
+
<mat-error *ngFor="let error of control.errors | keyvalue">
|
|
163
|
+
{{ error | mtnaWfGetControlError : item }}
|
|
164
|
+
</mat-error>
|
|
165
|
+
</mat-form-field>
|
|
166
|
+
</div>
|
|
167
|
+
`, isInline: true, styles: [".mtna-wf-control-item .mat-form-field{width:100%}.mtna-wf-control-item .mtna-wf-error-container{font-size:75%;line-height:1;min-height:1em;margin-top:-.75rem}.mtna-wf-control-item .control-item-content{padding:.35em .75em .625em}.mtna-wf-control-item .mtna-wf-item-header~:not(.mtna-wf-error-container):not(.mat-list){padding-left:.75em}.mtna-wf-control-item .mtna-wf-item-header~:not(.mtna-wf-error-container):not(.mat-list).mat-form-field{width:calc(100% - .75em)}\n", "\n .mtna-wf-year-quarter-item .year-quarter-container > .mat-form-field {\n max-width: 75px;\n }\n .mtna-wf-year-quarter-item .year-quarter-container > .mat-form-field:first-of-type {\n margin-right: 8px;\n }\n "], components: [{ type: i1.MatFormField, selector: "mat-form-field", inputs: ["color", "floatLabel", "appearance", "hideRequiredMarker", "hintLabel"], exportAs: ["matFormField"] }, { type: i2.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { type: i3.MatOption, selector: "mat-option", exportAs: ["matOption"] }], directives: [{ type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { type: i5.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { type: i6.MtnaHighlightDirective, selector: "[mtnaHighlight]", inputs: ["mtnaHighlight", "mtnaHighlightColor"], exportAs: ["mtnaHighlight"] }, { type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i7.FormControlDirective, selector: "[formControl]", inputs: ["disabled", "formControl", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1.MatError, selector: "mat-error", inputs: ["id"] }], pipes: { "keyvalue": i4.KeyValuePipe, "mtnaWfGetControlError": i8.MtnaGetFormControlErrorPipe, "mtnaWfGetQuarters": i9.MtnaWfGetAvailableQuartersPipe, "mtnaWfDateQuarter": i10.DateQuarterPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
168
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: MtnaWfYearQuarterComponent, decorators: [{
|
|
169
|
+
type: Component,
|
|
170
|
+
args: [{
|
|
171
|
+
selector: 'mtna-wf-year-quarter-item',
|
|
172
|
+
template: `
|
|
173
|
+
<ng-container *ngTemplateOutlet="header"></ng-container>
|
|
174
|
+
<div
|
|
175
|
+
*ngIf="control"
|
|
176
|
+
class="year-quarter-container"
|
|
177
|
+
fxLayout="row"
|
|
178
|
+
fxLayoutGap="8px"
|
|
179
|
+
[mtnaHighlight]="indicatorStatus === 'ACTIVE' && !hasItemHeader"
|
|
180
|
+
>
|
|
181
|
+
<mat-form-field>
|
|
182
|
+
<mat-select [formControl]="_yearControl" aria-label="year selection">
|
|
183
|
+
<mat-option *ngFor="let year of _yearSelection" [value]="year">{{ year }}</mat-option>
|
|
184
|
+
</mat-select>
|
|
185
|
+
<mat-error *ngFor="let error of control.errors | keyvalue">
|
|
186
|
+
{{ error | mtnaWfGetControlError : item }}
|
|
187
|
+
</mat-error>
|
|
188
|
+
</mat-form-field>
|
|
189
|
+
|
|
190
|
+
<mat-form-field>
|
|
191
|
+
<mat-select [formControl]="_quarterControl" aria-label="quarter selection">
|
|
192
|
+
<mat-option>None</mat-option>
|
|
193
|
+
<mat-option *ngFor="let quarter of _yearControl.value | mtnaWfGetQuarters : rangeLimits" [value]="quarter">{{
|
|
194
|
+
$any(quarter) | mtnaWfDateQuarter : 'short'
|
|
195
|
+
}}</mat-option>
|
|
196
|
+
</mat-select>
|
|
197
|
+
<mat-error *ngFor="let error of control.errors | keyvalue">
|
|
198
|
+
{{ error | mtnaWfGetControlError : item }}
|
|
199
|
+
</mat-error>
|
|
200
|
+
</mat-form-field>
|
|
201
|
+
</div>
|
|
202
|
+
`,
|
|
203
|
+
styleUrls: [`form-control.scss`],
|
|
204
|
+
styles: [
|
|
205
|
+
`
|
|
206
|
+
.mtna-wf-year-quarter-item .year-quarter-container > .mat-form-field {
|
|
207
|
+
max-width: 75px;
|
|
208
|
+
}
|
|
209
|
+
.mtna-wf-year-quarter-item .year-quarter-container > .mat-form-field:first-of-type {
|
|
210
|
+
margin-right: 8px;
|
|
211
|
+
}
|
|
212
|
+
`,
|
|
213
|
+
],
|
|
214
|
+
encapsulation: ViewEncapsulation.None,
|
|
215
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
216
|
+
}]
|
|
217
|
+
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
218
|
+
type: Optional
|
|
219
|
+
}, {
|
|
220
|
+
type: Inject,
|
|
221
|
+
args: [MTNA_WF_DEFAULT_YEAR_RANGE]
|
|
222
|
+
}] }]; }, propDecorators: { yearQuarterItemClass: [{
|
|
223
|
+
type: HostBinding,
|
|
224
|
+
args: ['class.mtna-wf-year-quarter-item']
|
|
225
|
+
}], rangeLimits: [{
|
|
226
|
+
type: Input
|
|
227
|
+
}] } });
|
|
228
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieWVhci1xdWFydGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3dlYi1mb3JtLWFuZ3VsYXIvc3JjL2xpYi9mb3JtLWl0ZW0tY29udHJvbHMveWVhci1xdWFydGVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxXQUFXLEVBQ1gsTUFBTSxFQUNOLGNBQWMsRUFDZCxLQUFLLEVBR0wsUUFBUSxFQUNSLGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFN0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUcxQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7Ozs7Ozs7Ozs7OztBQUV6RSxNQUFNLENBQUMsTUFBTSwwQkFBMEIsR0FBRyxJQUFJLGNBQWMsQ0FBeUIsNEJBQTRCLENBQUMsQ0FBQztBQXNEbkgsTUFBTSxPQUFPLDBCQUEyQixTQUFRLG1CQUF5QztJQVd2RixZQUE0RCxnQkFBeUM7UUFDbkcsS0FBSyxFQUFFLENBQUM7UUFYc0MseUJBQW9CLEdBQUcsSUFBSSxDQUFDO1FBRzVFLG9CQUFlLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUNwQyxpQkFBWSxHQUFHLElBQUksV0FBVyxFQUFFLENBQUM7UUFDakMsbUJBQWMsR0FBRyxJQUFJLEtBQUssRUFBVSxDQUFDO1FBRTdCLGVBQVUsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBMkZ6Qzs7Ozs7O1dBTUc7UUFDSyxzQkFBaUIsR0FBeUQs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QUksQ0FBQyxPQUFPLDBDQUFFLE9BQU8sRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDL0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsQ0FBQztTQUM3QjtJQUNILENBQUM7O3dIQWpHVSwwQkFBMEIsa0JBV0wsMEJBQTBCOzRHQVgvQywwQkFBMEIsME5BN0MzQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBOEJUOzRGQWVVLDBCQUEwQjtrQkEvQ3RDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E4QlQ7b0JBQ0QsU0FBUyxFQUFFLENBQUMsbUJBQW1CLENBQUM7b0JBQ2hDLE1BQU0sRUFBRTt3QkFDTjs7Ozs7OztLQU9DO3FCQUNGO29CQUNELGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO29CQUNyQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDaEQ7OzBCQVljLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsMEJBQTBCOzRDQVZWLG9CQUFvQjtzQkFBbkUsV0FBVzt1QkFBQyxpQ0FBaUM7Z0JBQ3JDLFdBQVc7c0JBQW5CLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBIb3N0QmluZGluZyxcbiAgSW5qZWN0LFxuICBJbmplY3Rpb25Ub2tlbixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPcHRpb25hbCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IGlzUHJlc2VudCB9IGZyb20gJ0BtdG5hL2NvcmUtdHMnO1xuaW1wb3J0IHsgRGF0ZVJhbmdlLCBZZWFyUXVhcnRlciwgWWVhclF1YXJ0ZXJSYW5nZUl0ZW0gfSBmcm9tICdAbXRuYS93ZWItZm9ybS10cyc7XG5cbmltcG9ydCB7IG1lcmdlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IEJhc2VGb3JtSXRlbUNvbnRyb2wgfSBmcm9tICcuL2Jhc2UtZm9ybS1pdGVtLWNvbnRyb2wuZGlyZWN0aXZlJztcblxuZXhwb3J0IGNvbnN0IE1UTkFfV0ZfREVGQVVMVF9ZRUFSX1JBTkdFID0gbmV3IEluamVjdGlvblRva2VuPE10bmFXZkRlZmF1bHRZZWFyUmFuZ2U+KCdtdG5hLndmLmRlZmF1bHQueWVhci5yYW5nZScpO1xuXG5leHBvcnQgaW50ZXJmYWNlIE10bmFXZkRlZmF1bHRZZWFyUmFuZ2Uge1xuICBudW1QYXN0WWVhcnM6IG51bWJlcjtcbiAgbnVtRnV0dXJlWWVhcnM6IG51bWJlcjtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbXRuYS13Zi15ZWFyLXF1YXJ0ZXItaXRlbScsXG4gIHRlbXBsYXRlOiBgXG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImhlYWRlclwiPjwvbmctY29udGFpbmVyPlxuICAgIDxkaXZcbiAgICAgICpuZ0lmPVwiY29udHJvbFwiXG4gICAgICBjbGFzcz1cInllYXItcXVhcnRlci1jb250YWluZXJcIlxuICAgICAgZnhMYXlvdXQ9XCJyb3dcIlxuICAgICAgZnhMYXlvdXRHYXA9XCI4cHhcIlxuICAgICAgW210bmFIaWdobGlnaHRdPVwiaW5kaWNhdG9yU3RhdHVzID09PSAnQUNUSVZFJyAmJiAhaGFzSXRlbUhlYWRlclwiXG4gICAgPlxuICAgICAgPG1hdC1mb3JtLWZpZWxkPlxuICAgICAgICA8bWF0LXNlbGVjdCBbZm9ybUNvbnRyb2xdPVwiX3llYXJDb250cm9sXCIgYXJpYS1sYWJlbD1cInllYXIgc2VsZWN0aW9uXCI+XG4gICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IHllYXIgb2YgX3llYXJTZWxlY3Rpb25cIiBbdmFsdWVdPVwieWVhclwiPnt7IHllYXIgfX08L21hdC1vcHRpb24+XG4gICAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICAgICAgPG1hdC1lcnJvciAqbmdGb3I9XCJsZXQgZXJyb3Igb2YgY29udHJvbC5lcnJvcnMgfCBrZXl2YWx1ZVwiPlxuICAgICAgICAgIHt7IGVycm9yIHwgbXRuYVdmR2V0Q29udHJvbEVycm9yIDogaXRlbSB9fVxuICAgICAgICA8L21hdC1lcnJvcj5cbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgICAgIDxtYXQtZm9ybS1maWVsZD5cbiAgICAgICAgPG1hdC1zZWxlY3QgW2Zvcm1Db250cm9sXT1cIl9xdWFydGVyQ29udHJvbFwiIGFyaWEtbGFiZWw9XCJxdWFydGVyIHNlbGVjdGlvblwiPlxuICAgICAgICAgIDxtYXQtb3B0aW9uPk5vbmU8L21hdC1vcHRpb24+XG4gICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IHF1YXJ0ZXIgb2YgX3llYXJDb250cm9sLnZhbHVlIHwgbXRuYVdmR2V0UXVhcnRlcnMgOiByYW5nZUxpbWl0c1wiIFt2YWx1ZV09XCJxdWFydGVyXCI+e3tcbiAgICAgICAgICAgICRhbnkocXVhcnRlcikgfCBtdG5hV2ZEYXRlUXVhcnRlciA6ICdzaG9ydCdcbiAgICAgICAgICB9fTwvbWF0LW9wdGlvbj5cbiAgICAgICAgPC9tYXQtc2VsZWN0PlxuICAgICAgICA8bWF0LWVycm9yICpuZ0Zvcj1cImxldCBlcnJvciBvZiBjb250cm9sLmVycm9ycyB8IGtleXZhbHVlXCI+XG4gICAgICAgICAge3sgZXJyb3IgfCBtdG5hV2ZHZXRDb250cm9sRXJyb3IgOiBpdGVtIH19XG4gICAgICAgIDwvbWF0LWVycm9yPlxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICA8L2Rpdj5cbiAgYCxcbiAgc3R5bGVVcmxzOiBbYGZvcm0tY29udHJvbC5zY3NzYF0sXG4gIHN0eWxlczogW1xuICAgIGBcbiAgICAgIC5tdG5hLXdmLXllYXItcXVhcnRlci1pdGVtIC55ZWFyLXF1YXJ0ZXItY29udGFpbmVyID4gLm1hdC1mb3JtLWZpZWxkIHtcbiAgICAgICAgbWF4LXdpZHRoOiA3NXB4O1xuICAgICAgfVxuICAgICAgLm10bmEtd2YteWVhci1xdWFydGVyLWl0ZW0gLnllYXItcXVhcnRlci1jb250YWluZXIgPiAubWF0LWZvcm0tZmllbGQ6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogOHB4O1xuICAgICAgfVxuICAgIGAsXG4gIF0sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBNdG5hV2ZZZWFyUXVhcnRlckNvbXBvbmVudCBleHRlbmRzIEJhc2VGb3JtSXRlbUNvbnRyb2w8WWVhclF1YXJ0ZXJSYW5nZUl0ZW0+IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95LCBPbkluaXQge1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzLm10bmEtd2YteWVhci1xdWFydGVyLWl0ZW0nKSB5ZWFyUXVhcnRlckl0ZW1DbGFzcyA9IHRydWU7XG4gIEBJbnB1dCgpIHJhbmdlTGltaXRzOiBEYXRlUmFuZ2U8WWVhclF1YXJ0ZXI+IHwgbnVsbCB8IHVuZGVmaW5lZDtcblxuICBfcXVhcnRlckNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woKTtcbiAgX3llYXJDb250cm9sID0gbmV3IEZvcm1Db250cm9sKCk7XG4gIF95ZWFyU2VsZWN0aW9uID0gbmV3IEFycmF5PG51bWJlcj4oKTtcblxuICBwcml2YXRlIGRlc3Ryb3lPYnMgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBwcml2YXRlIGRlZmF1bHRZZWFyUmFuZ2U6IE10bmFXZkRlZmF1bHRZZWFyUmFuZ2U7XG5cbiAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgQEluamVjdChNVE5BX1dGX0RFRkFVTFRfWUVBUl9SQU5HRSkgZGVmYXVsdFllYXJSYW5nZT86IE10bmFXZkRlZmF1bHRZZWFyUmFuZ2UpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuZGVmYXVsdFllYXJSYW5nZSA9IGRlZmF1bHRZZWFyUmFuZ2UgfHwgeyBudW1GdXR1cmVZZWFyczogMjUsIG51bVBhc3RZZWFyczogMjUgfTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBpZiAoIXRoaXMucmVhZG9ubHkpIHtcbiAgICAgIC8vIE9ic2VydmUgWWVhciAmIFF1YXJ0ZXIgdmFsdWUgY2hhbmdlcyAmJiBzZXQgdGhlbSBvbiB0aGUgaXRlbSdzIGNvbnRyb2xcbiAgICAgIG1lcmdlKHRoaXMuX3llYXJDb250cm9sLnZhbHVlQ2hhbmdlcywgdGhpcy5fcXVhcnRlckNvbnRyb2wudmFsdWVDaGFuZ2VzKVxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95T2JzKSlcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgaWYgKCF0aGlzLmNvbnRyb2w/LmRpcnR5ICYmICh0aGlzLl95ZWFyQ29udHJvbC5kaXJ0eSB8fCB0aGlzLl9xdWFydGVyQ29udHJvbC5kaXJ0eSkpIHtcbiAgICAgICAgICAgIHRoaXMuY29udHJvbD8ubWFya0FzRGlydHkoKTtcbiAgICAgICAgICAgIHRoaXMuY29udHJvbD8ubWFya0FzVG91Y2hlZCgpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoaXNQcmVzZW50KHRoaXMuX3llYXJDb250cm9sLnZhbHVlKSkge1xuICAgICAgICAgICAgY29uc3QgW3llYXIsIHF1YXJ0ZXJdID0gdGhpcy53aXRoaW5SYW5nZUxpbWl0cyhbdGhpcy5feWVhckNvbnRyb2wudmFsdWUsIHRoaXMuX3F1YXJ0ZXJDb250cm9sLnZhbHVlXSk7XG4gICAgICAgICAgICB0aGlzLmNvbnRyb2w/LnNldFZhbHVlKHsgeWVhciwgcXVhcnRlciB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAvLyBGSVhNRSBub3Qgc3VyZSB3ZSBuZWVkIHRoaXMgdW50aWwgd2Ugc3RhcnRpbmcgbWFraW5nIHRoaXMgY29udHJvbFxuICAgICAgLy8gcmVxdWlyZWQvdW5yZXF1aXJlZCBhdCB0aGUgcmlnaHQgdGltZS4gRXZlbiB0aGVuLCB0aGlzIGlzIHN1cGVyIGlubmVmaWNpZW50XG5cbiAgICAgIC8qXG4gICAgICAvLyBMaXN0ZW4gdG8gdGhpcyBjb250cm9sIGZvciBkaXNhYmxpbmcgbG9jYWwgY29udHJvbHNcbiAgICAgIHRoaXMuY29udHJvbC5zdGF0dXNDaGFuZ2VzXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIHN0YXJ0V2l0aCh0aGlzLmNvbnRyb2wuc3RhdHVzKSxcbiAgICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95T2JzKVxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoc3RhdHVzID0+IHtcbiAgICAgICAgICBjb25zb2xlLndhcm4oJ3N0YXR1c0NoYW5nZXMnLCBzdGF0dXMsIHRoaXMuY29udHJvbCk7XG4gICAgICAgICAgLy8gaWYgdGhpcyBjb250cm9sIGlzIGVuYWJsZWQsIGVuYWJsZSBsb2NhbCBjb250cm9scyBpZiBkaXNhYmxlZFxuICAgICAgICAgIGlmICh0aGlzLmNvbnRyb2wuZW5hYmxlZCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuX3F1YXJ0ZXJDb250cm9sLmRpc2FibGVkIHx8IHRoaXMuX3llYXJDb250cm9sLmRpc2FibGVkKSB7XG4gICAgICAgICAgICAgIGNvbnNvbGUud2FybignW1llYXJRdWFydGVySXRlbV0gZW5hYmxlIHRoZSB0aGluZ3MnKTtcbiAgICAgICAgICAgICAgLy8gdGhpcy5fcXVhcnRlckNvbnRyb2wuZW5hYmxlKCk7XG4gICAgICAgICAgICAgIC8vIHRoaXMuX3llYXJDb250cm9sLmVuYWJsZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gZWxzZSB0aGlzIGNvbnRyb2wgaXMgZGlzYWJsZWQsIHNvIGRpc2FibGUgbG9jYWwgY29udHJvbHMgaWYgZW5hYmxlZFxuICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5fcXVhcnRlckNvbnRyb2wuZW5hYmxlZCB8fCB0aGlzLl95ZWFyQ29udHJvbC5lbmFibGVkKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oJ1tZZWFyUXVhcnRlckl0ZW1dIGRpc2FibGUgdGhlIHRoaW5ncycpO1xuICAgICAgICAgICAgLy8gdGhpcy5feWVhckNvbnRyb2wuZGlzYWJsZSgpO1xuICAgICAgICAgICAgLy8gdGhpcy5fcXVhcnRlckNvbnRyb2wuZGlzYWJsZSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgICovXG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5kZXN0cm95T2JzLm5leHQoKTtcbiAgICB0aGlzLmRlc3Ryb3lPYnMuY29tcGxldGUoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIC8vIFNldCBhbnkgaW5pdGlhbCB2YWx1ZSBvbnRvIHRoZSBZZWFyICYgUXVhcnRlciBjb250cm9sc1xuICAgIHRoaXMuX3llYXJDb250cm9sLnNldFZhbHVlKHRoaXMuY29udHJvbD8udmFsdWUgPyB0aGlzLmNvbnRyb2wudmFsdWUueWVhciA6IG51bGwpO1xuICAgIHRoaXMuX3F1YXJ0ZXJDb250cm9sLnNldFZhbHVlKHRoaXMuY29udHJvbD8udmFsdWUgPyB0aGlzLmNvbnRyb2wudmFsdWUucXVhcnRlciA6IG51bGwpO1xuXG4gICAgLy8gQ3JlYXRlIHJhbmdlIGxpbWl0cyBpZiBub25lIGV4aXN0XG4gICAgaWYgKCF0aGlzLnJhbmdlTGltaXRzKSB7XG4gICAgICBjb25zdCB0aGlzWWVhciA9IG5ldyBEYXRlKCkuZ2V0RnVsbFllYXIoKTtcbiAgICAgIHRoaXMucmFuZ2VMaW1pdHMgPSB7XG4gICAgICAgIHN0YXJ0OiB7XG4gICAgICAgICAgeWVhcjogdGhpc1llYXIgLSB0aGlzLmRlZmF1bHRZZWFyUmFuZ2UubnVtUGFzdFllYXJzLFxuICAgICAgICAgIHF1YXJ0ZXI6IG51bGwsXG4gICAgICAgIH0sXG4gICAgICAgIGVuZDoge1xuICAgICAgICAgIHllYXI6IHRoaXNZZWFyICsgdGhpcy5kZWZhdWx0WWVhclJhbmdlLm51bUZ1dHVyZVllYXJzLFxuICAgICAgICAgIHF1YXJ0ZXI6IG51bGwsXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIH1cblxuICAgIC8vIFBvcHVsYXRlIHRoZSB5ZWFyIHNlbGVjdGlvblxuICAgIGZvciAobGV0IGkgPSB0aGlzLnJhbmdlTGltaXRzLnN0YXJ0LnllYXIgfHwgMDsgaSA8PSAodGhpcy5yYW5nZUxpbWl0cy5lbmQueWVhciB8fCAwKTsgaSsrKSB7XG4gICAgICB0aGlzLl95ZWFyU2VsZWN0aW9uLnB1c2goaSk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucmVhZG9ubHkpIHtcbiAgICAgIHRoaXMuY29udHJvbD8uZGlzYWJsZSgpO1xuICAgICAgdGhpcy5fcXVhcnRlckNvbnRyb2wuZGlzYWJsZSgpO1xuICAgICAgdGhpcy5feWVhckNvbnRyb2wuZGlzYWJsZSgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBxdWFydGVyIHZhbHVlIHRvIGBudWxsYCBpZiB0aGUgeWVhciAmIHF1YXJ0ZXIgaXMgb3V0IG9mIGJvdW5kcyBvZiB0aGUgcmFuZ2UgbGltaXRzLlxuICAgKiBPdGhlcndpc2UsIHJldHVybnMgb3JpZ2luYWwgdmFsdWVcbiAgICpcbiAgICogQHBhcmFtIHZhbHVlIGBbbnVtYmVyLCBudW1iZXJdYCBUaGUgc2VsZWN0ZWQgW3llYXIsIHF1YXJ0ZXJdIHZhbHVlXG4gICAqIEByZXR1cm5zIGBbbnVtYmVyLCBudW1iZXJdYCBUaGUgb3JpZ2luYWwgW3llYXIsIHF1YXJ0ZXJdIHZhbHVlIE9SIFt5ZWFyLCBudWxsXVxuICAgKi9cbiAgcHJpdmF0ZSB3aXRoaW5SYW5nZUxpbWl0czogKHZhbHVlOiBbbnVtYmVyLCBudW1iZXJdKSA9PiBbbnVtYmVyLCBudW1iZXIgfCBudWxsXSA9IChbeWVhciwgcXVhcnRlcl0pID0+IHtcbiAgICBjb25zdCBiZXlvbmRVcHBlckxpbWl0ID1cbiAgICAgIC8vIHllYXIgbWF0Y2hlcyBlbmQgeWVhciByYW5nZSBsaW1pdFxuICAgICAgeWVhciA9PT0gdGhpcy5yYW5nZUxpbWl0cz8uZW5kLnllYXIgJiZcbiAgICAgIC8vIHF1YXJ0ZXIgbGltaXQgd2FzIHByb3ZpZGVkXG4gICAgICBpc1ByZXNlbnQodGhpcy5yYW5nZUxpbWl0cy5lbmQucXVhcnRlcikgJiZcbiAgICAgIC8vIHNlbGVjdGVkIHF1YXJ0ZXIgaXMgYmV5b25kIHF1YXJ0ZXIgbGltaXRcbiAgICAgIHF1YXJ0ZXIgPiB0aGlzLnJhbmdlTGltaXRzLmVuZC5xdWFydGVyO1xuXG4gICAgY29uc3QgYmV5b25kTG93ZXJMaW1pdCA9XG4gICAgICAvLyB5ZWFyIG1hdGNoZXMgc3RhcnQgeWVhciByYW5nZSBsaW1pdFxuICAgICAgeWVhciA9PT0gdGhpcy5yYW5nZUxpbWl0cz8uc3RhcnQueWVhciAmJlxuICAgICAgLy8gcXVhcnRlciBsaW1pdCB3YXMgcHJvdmlkZWRcbiAgICAgIGlzUHJlc2VudCh0aGlzLnJhbmdlTGltaXRzLnN0YXJ0LnF1YXJ0ZXIpICYmXG4gICAgICAvLyBzZWxlY3RlZCBxdWFydGVyIGlzIGJleW9uZCBxdWFydGVyIGxpbWl0XG4gICAgICBxdWFydGVyIDwgdGhpcy5yYW5nZUxpbWl0cy5zdGFydC5xdWFydGVyO1xuXG4gICAgaWYgKGJleW9uZExvd2VyTGltaXQgfHwgYmV5b25kVXBwZXJMaW1pdCkge1xuICAgICAgdGhpcy5fcXVhcnRlckNvbnRyb2wuc2V0VmFsdWUobnVsbCwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgICAgcmV0dXJuIFt5ZWFyLCBudWxsXTtcbiAgICB9XG5cbiAgICByZXR1cm4gW3llYXIsIHF1YXJ0ZXJdO1xuICB9O1xufVxuIl19
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';
|
|
2
|
+
import { mixinColor } from '@angular/material/core';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "./form-step.component";
|
|
5
|
+
import * as i2 from "@angular/material/divider";
|
|
6
|
+
import * as i3 from "@angular/material/button";
|
|
7
|
+
import * as i4 from "@angular/material/icon";
|
|
8
|
+
import * as i5 from "@angular/common";
|
|
9
|
+
import * as i6 from "@angular/material/tooltip";
|
|
10
|
+
/* eslint-disable @angular-eslint/no-inputs-metadata-property */
|
|
11
|
+
const _FormStepMixinBase = mixinColor(class {
|
|
12
|
+
constructor(_elementRef) {
|
|
13
|
+
this._elementRef = _elementRef;
|
|
14
|
+
}
|
|
15
|
+
}, 'primary');
|
|
16
|
+
export class MtnaWfFormStepGroupComponent extends _FormStepMixinBase {
|
|
17
|
+
constructor(elementRef) {
|
|
18
|
+
super(elementRef);
|
|
19
|
+
/** Whether all but the first step is hidden*/
|
|
20
|
+
this.collapsed = false;
|
|
21
|
+
this._steps = [];
|
|
22
|
+
this.selected = new EventEmitter();
|
|
23
|
+
}
|
|
24
|
+
/** Steps to be displayed */
|
|
25
|
+
get steps() {
|
|
26
|
+
return this._steps;
|
|
27
|
+
}
|
|
28
|
+
set steps(steps) {
|
|
29
|
+
this._steps = steps;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
MtnaWfFormStepGroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: MtnaWfFormStepGroupComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
33
|
+
MtnaWfFormStepGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: MtnaWfFormStepGroupComponent, selector: "mtna-wf-step-group", inputs: { color: "color", collapsed: "collapsed", incompleteIcon: "incompleteIcon", steps: "steps" }, outputs: { selected: "selected" }, usesInheritance: true, ngImport: i0, template: `
|
|
34
|
+
<ng-container *ngFor="let step of steps | slice : 0 : (collapsed ? 1 : steps.length); let last = last">
|
|
35
|
+
<mtna-wf-step
|
|
36
|
+
[clickable]="step.status !== 'DISABLED'"
|
|
37
|
+
[color]="color"
|
|
38
|
+
[incompleteIcon]="incompleteIcon"
|
|
39
|
+
[step]="step"
|
|
40
|
+
(click)="selected.emit(step)"
|
|
41
|
+
></mtna-wf-step>
|
|
42
|
+
<mat-divider *ngIf="!last" [vertical]="true"></mat-divider>
|
|
43
|
+
<p *ngIf="collapsed" class="show-more mat-caption">and {{ steps.length - 1 }} more...</p>
|
|
44
|
+
</ng-container>
|
|
45
|
+
<button
|
|
46
|
+
mat-icon-button
|
|
47
|
+
class="collapse-button"
|
|
48
|
+
[color]="color"
|
|
49
|
+
(click)="collapsed = !collapsed"
|
|
50
|
+
[matTooltip]="collapsed ? 'View All' : 'Hide'"
|
|
51
|
+
>
|
|
52
|
+
<mat-icon>{{ collapsed ? 'expand_more' : 'expand_less' }}</mat-icon>
|
|
53
|
+
</button>
|
|
54
|
+
`, isInline: true, styles: ["mtna-wf-step-group{border-style:solid;border-radius:4px;border-width:1px;display:block;margin:4px 4px 16px 8px;padding-bottom:16px;position:relative}mtna-wf-step-group .collapse-button{bottom:-19px;left:calc(50% - 20px);position:absolute;z-index:10}mtna-wf-step-group .collapse-button:after{bottom:8px;content:\"\";height:12px;left:calc(50% - 16px);position:absolute;width:32px;z-index:-1}mtna-wf-step-group mtna-wf-step li{padding-left:8px}mtna-wf-step-group mat-divider.mat-divider{margin-left:20px}mtna-wf-step-group .show-more{margin:0;text-align:center}\n"], components: [{ type: i1.MtnaWfFormStepComponent, selector: "mtna-wf-step", inputs: ["color", "step", "clickable", "incompleteIcon"] }, { type: i2.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }], pipes: { "slice": i5.SlicePipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
55
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: MtnaWfFormStepGroupComponent, decorators: [{
|
|
56
|
+
type: Component,
|
|
57
|
+
args: [{
|
|
58
|
+
selector: 'mtna-wf-step-group',
|
|
59
|
+
template: `
|
|
60
|
+
<ng-container *ngFor="let step of steps | slice : 0 : (collapsed ? 1 : steps.length); let last = last">
|
|
61
|
+
<mtna-wf-step
|
|
62
|
+
[clickable]="step.status !== 'DISABLED'"
|
|
63
|
+
[color]="color"
|
|
64
|
+
[incompleteIcon]="incompleteIcon"
|
|
65
|
+
[step]="step"
|
|
66
|
+
(click)="selected.emit(step)"
|
|
67
|
+
></mtna-wf-step>
|
|
68
|
+
<mat-divider *ngIf="!last" [vertical]="true"></mat-divider>
|
|
69
|
+
<p *ngIf="collapsed" class="show-more mat-caption">and {{ steps.length - 1 }} more...</p>
|
|
70
|
+
</ng-container>
|
|
71
|
+
<button
|
|
72
|
+
mat-icon-button
|
|
73
|
+
class="collapse-button"
|
|
74
|
+
[color]="color"
|
|
75
|
+
(click)="collapsed = !collapsed"
|
|
76
|
+
[matTooltip]="collapsed ? 'View All' : 'Hide'"
|
|
77
|
+
>
|
|
78
|
+
<mat-icon>{{ collapsed ? 'expand_more' : 'expand_less' }}</mat-icon>
|
|
79
|
+
</button>
|
|
80
|
+
`,
|
|
81
|
+
styleUrls: ['form-step-group.component.scss'],
|
|
82
|
+
inputs: ['color'],
|
|
83
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
84
|
+
encapsulation: ViewEncapsulation.None,
|
|
85
|
+
}]
|
|
86
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { collapsed: [{
|
|
87
|
+
type: Input
|
|
88
|
+
}], incompleteIcon: [{
|
|
89
|
+
type: Input
|
|
90
|
+
}], steps: [{
|
|
91
|
+
type: Input
|
|
92
|
+
}], selected: [{
|
|
93
|
+
type: Output
|
|
94
|
+
}] } });
|
|
95
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1zdGVwLWdyb3VwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3dlYi1mb3JtLWFuZ3VsYXIvc3JjL2xpYi9mb3JtLXN0ZXBwZXIvZm9ybS1zdGVwLWdyb3VwLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9ILE9BQU8sRUFBWSxVQUFVLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7Ozs7QUFJOUQsZ0VBQWdFO0FBQ2hFLE1BQU0sa0JBQWtCLEdBQUcsVUFBVSxDQUNuQztJQUNFLFlBQW1CLFdBQXVCO1FBQXZCLGdCQUFXLEdBQVgsV0FBVyxDQUFZO0lBQUcsQ0FBQztDQUMvQyxFQUNELFNBQVMsQ0FDVixDQUFDO0FBK0JGLE1BQU0sT0FBTyw0QkFBNkIsU0FBUSxrQkFBa0I7SUFnQmxFLFlBQVksVUFBc0I7UUFDaEMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBaEJwQiw4Q0FBOEM7UUFDckMsY0FBUyxHQUFHLEtBQUssQ0FBQztRQVVuQixXQUFNLEdBQWUsRUFBRSxDQUFDO1FBRXRCLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBWSxDQUFDO0lBSWxELENBQUM7SUFkRCw0QkFBNEI7SUFDNUIsSUFDSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3JCLENBQUM7SUFDRCxJQUFJLEtBQUssQ0FBQyxLQUFpQjtRQUN6QixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztJQUN0QixDQUFDOzswSEFYVSw0QkFBNEI7OEdBQTVCLDRCQUE0QiwwTkEzQjdCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FxQlQ7NEZBTVUsNEJBQTRCO2tCQTdCeEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsb0JBQW9CO29CQUM5QixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXFCVDtvQkFDRCxTQUFTLEVBQUUsQ0FBQyxnQ0FBZ0MsQ0FBQztvQkFDN0MsTUFBTSxFQUFFLENBQUMsT0FBTyxDQUFDO29CQUNqQixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7aUJBQ3RDO2lHQUdVLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFHRixLQUFLO3NCQURSLEtBQUs7Z0JBU0ksUUFBUTtzQkFBakIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENhbkNvbG9yLCBtaXhpbkNvbG9yIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XG5cbmltcG9ydCB7IEZvcm1TdGVwIH0gZnJvbSAnLi9tb2RlbHMvaW5kZXgnO1xuXG4vKiBlc2xpbnQtZGlzYWJsZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5ICovXG5jb25zdCBfRm9ybVN0ZXBNaXhpbkJhc2UgPSBtaXhpbkNvbG9yKFxuICBjbGFzcyB7XG4gICAgY29uc3RydWN0b3IocHVibGljIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmKSB7fVxuICB9LFxuICAncHJpbWFyeSdcbik7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ210bmEtd2Ytc3RlcC1ncm91cCcsXG4gIHRlbXBsYXRlOiBgXG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgc3RlcCBvZiBzdGVwcyB8IHNsaWNlIDogMCA6IChjb2xsYXBzZWQgPyAxIDogc3RlcHMubGVuZ3RoKTsgbGV0IGxhc3QgPSBsYXN0XCI+XG4gICAgICA8bXRuYS13Zi1zdGVwXG4gICAgICAgIFtjbGlja2FibGVdPVwic3RlcC5zdGF0dXMgIT09ICdESVNBQkxFRCdcIlxuICAgICAgICBbY29sb3JdPVwiY29sb3JcIlxuICAgICAgICBbaW5jb21wbGV0ZUljb25dPVwiaW5jb21wbGV0ZUljb25cIlxuICAgICAgICBbc3RlcF09XCJzdGVwXCJcbiAgICAgICAgKGNsaWNrKT1cInNlbGVjdGVkLmVtaXQoc3RlcClcIlxuICAgICAgPjwvbXRuYS13Zi1zdGVwPlxuICAgICAgPG1hdC1kaXZpZGVyICpuZ0lmPVwiIWxhc3RcIiBbdmVydGljYWxdPVwidHJ1ZVwiPjwvbWF0LWRpdmlkZXI+XG4gICAgICA8cCAqbmdJZj1cImNvbGxhcHNlZFwiIGNsYXNzPVwic2hvdy1tb3JlIG1hdC1jYXB0aW9uXCI+YW5kIHt7IHN0ZXBzLmxlbmd0aCAtIDEgfX0gbW9yZS4uLjwvcD5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8YnV0dG9uXG4gICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgIGNsYXNzPVwiY29sbGFwc2UtYnV0dG9uXCJcbiAgICAgIFtjb2xvcl09XCJjb2xvclwiXG4gICAgICAoY2xpY2spPVwiY29sbGFwc2VkID0gIWNvbGxhcHNlZFwiXG4gICAgICBbbWF0VG9vbHRpcF09XCJjb2xsYXBzZWQgPyAnVmlldyBBbGwnIDogJ0hpZGUnXCJcbiAgICA+XG4gICAgICA8bWF0LWljb24+e3sgY29sbGFwc2VkID8gJ2V4cGFuZF9tb3JlJyA6ICdleHBhbmRfbGVzcycgfX08L21hdC1pY29uPlxuICAgIDwvYnV0dG9uPlxuICBgLFxuICBzdHlsZVVybHM6IFsnZm9ybS1zdGVwLWdyb3VwLmNvbXBvbmVudC5zY3NzJ10sXG4gIGlucHV0czogWydjb2xvciddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgTXRuYVdmRm9ybVN0ZXBHcm91cENvbXBvbmVudCBleHRlbmRzIF9Gb3JtU3RlcE1peGluQmFzZSBpbXBsZW1lbnRzIENhbkNvbG9yIHtcbiAgLyoqIFdoZXRoZXIgYWxsIGJ1dCB0aGUgZmlyc3Qgc3RlcCBpcyBoaWRkZW4qL1xuICBASW5wdXQoKSBjb2xsYXBzZWQgPSBmYWxzZTtcbiAgQElucHV0KCkgaW5jb21wbGV0ZUljb246IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQ7XG4gIC8qKiBTdGVwcyB0byBiZSBkaXNwbGF5ZWQgKi9cbiAgQElucHV0KClcbiAgZ2V0IHN0ZXBzKCkge1xuICAgIHJldHVybiB0aGlzLl9zdGVwcztcbiAgfVxuICBzZXQgc3RlcHMoc3RlcHM6IEZvcm1TdGVwW10pIHtcbiAgICB0aGlzLl9zdGVwcyA9IHN0ZXBzO1xuICB9XG4gIHByaXZhdGUgX3N0ZXBzOiBGb3JtU3RlcFtdID0gW107XG5cbiAgQE91dHB1dCgpIHNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxGb3JtU3RlcD4oKTtcblxuICBjb25zdHJ1Y3RvcihlbGVtZW50UmVmOiBFbGVtZW50UmVmKSB7XG4gICAgc3VwZXIoZWxlbWVudFJlZik7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Pipe } from '@angular/core';
|
|
2
|
+
import { isFormStepGroup } from './models/index';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
/**
|
|
5
|
+
* Pipe to determine if a FormStep is a FormStepGroup or a single step.
|
|
6
|
+
*/
|
|
7
|
+
export class MtnaWfFormStepGroupPipe {
|
|
8
|
+
transform(step) {
|
|
9
|
+
return isFormStepGroup(step);
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
MtnaWfFormStepGroupPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: MtnaWfFormStepGroupPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
13
|
+
MtnaWfFormStepGroupPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: MtnaWfFormStepGroupPipe, name: "mtnaWfStepGroupPipe" });
|
|
14
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: MtnaWfFormStepGroupPipe, decorators: [{
|
|
15
|
+
type: Pipe,
|
|
16
|
+
args: [{
|
|
17
|
+
name: 'mtnaWfStepGroupPipe',
|
|
18
|
+
}]
|
|
19
|
+
}] });
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1zdGVwLWdyb3VwLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy93ZWItZm9ybS1hbmd1bGFyL3NyYy9saWIvZm9ybS1zdGVwcGVyL2Zvcm0tc3RlcC1ncm91cC5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBRXBELE9BQU8sRUFBMkIsZUFBZSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBRTFFOztHQUVHO0FBSUgsTUFBTSxPQUFPLHVCQUF1QjtJQUNsQyxTQUFTLENBQUMsSUFBOEI7UUFDdEMsT0FBTyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDL0IsQ0FBQzs7cUhBSFUsdUJBQXVCO21IQUF2Qix1QkFBdUI7NEZBQXZCLHVCQUF1QjtrQkFIbkMsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUscUJBQXFCO2lCQUM1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgRm9ybVN0ZXAsIEZvcm1TdGVwR3JvdXAsIGlzRm9ybVN0ZXBHcm91cCB9IGZyb20gJy4vbW9kZWxzL2luZGV4JztcblxuLyoqXG4gKiBQaXBlIHRvIGRldGVybWluZSBpZiBhIEZvcm1TdGVwIGlzIGEgRm9ybVN0ZXBHcm91cCBvciBhIHNpbmdsZSBzdGVwLlxuICovXG5AUGlwZSh7XG4gIG5hbWU6ICdtdG5hV2ZTdGVwR3JvdXBQaXBlJyxcbn0pXG5leHBvcnQgY2xhc3MgTXRuYVdmRm9ybVN0ZXBHcm91cFBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgdHJhbnNmb3JtKHN0ZXA6IEZvcm1TdGVwIHwgRm9ybVN0ZXBHcm91cCk6IHN0ZXAgaXMgRm9ybVN0ZXBHcm91cCB7XG4gICAgcmV0dXJuIGlzRm9ybVN0ZXBHcm91cChzdGVwKTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, HostBinding, Input, ViewEncapsulation } from '@angular/core';
|
|
2
|
+
import { mixinColor } from '@angular/material/core';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@mtna/core-angular";
|
|
5
|
+
import * as i2 from "@angular/flex-layout/flex";
|
|
6
|
+
import * as i3 from "@angular/material/core";
|
|
7
|
+
import * as i4 from "@angular/common";
|
|
8
|
+
/* eslint-disable @angular-eslint/no-inputs-metadata-property */
|
|
9
|
+
const _FormStepMixinBase = mixinColor(class {
|
|
10
|
+
constructor(_elementRef) {
|
|
11
|
+
this._elementRef = _elementRef;
|
|
12
|
+
}
|
|
13
|
+
}, 'primary');
|
|
14
|
+
export class MtnaWfFormStepComponent extends _FormStepMixinBase {
|
|
15
|
+
constructor(elementRef) {
|
|
16
|
+
super(elementRef);
|
|
17
|
+
this.disabled = false;
|
|
18
|
+
this._clickable = true;
|
|
19
|
+
}
|
|
20
|
+
get step() {
|
|
21
|
+
return this._step;
|
|
22
|
+
}
|
|
23
|
+
set step(step) {
|
|
24
|
+
this._step = step;
|
|
25
|
+
this.disabled = step.status === 'DISABLED';
|
|
26
|
+
}
|
|
27
|
+
get clickable() {
|
|
28
|
+
return !this.disabled && this._clickable;
|
|
29
|
+
}
|
|
30
|
+
set clickable(clickable) {
|
|
31
|
+
this._clickable = clickable;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Prevents click event if this step is not clickable
|
|
35
|
+
*/
|
|
36
|
+
_haltClickEvent(event) {
|
|
37
|
+
if (!this.clickable) {
|
|
38
|
+
event.preventDefault();
|
|
39
|
+
event.stopImmediatePropagation();
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
MtnaWfFormStepComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: MtnaWfFormStepComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
44
|
+
MtnaWfFormStepComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: MtnaWfFormStepComponent, selector: "mtna-wf-step", inputs: { color: "color", step: "step", clickable: "clickable", incompleteIcon: "incompleteIcon" }, host: { properties: { "class.disabled": "this.disabled", "class.clickable": "this.clickable" } }, usesInheritance: true, ngImport: i0, template: `
|
|
45
|
+
<li
|
|
46
|
+
fxLayout="row"
|
|
47
|
+
fxLayoutAlign="start center"
|
|
48
|
+
matRipple
|
|
49
|
+
[matRippleDisabled]="!clickable"
|
|
50
|
+
[class.active-step]="step.active"
|
|
51
|
+
(click)="_haltClickEvent($event)"
|
|
52
|
+
>
|
|
53
|
+
<mtna-status-circle
|
|
54
|
+
[color]="color"
|
|
55
|
+
[circleNumber]="step.num"
|
|
56
|
+
[incompleteIcon]="incompleteIcon"
|
|
57
|
+
[optional]="step.optional"
|
|
58
|
+
[status]="step.status"
|
|
59
|
+
></mtna-status-circle>
|
|
60
|
+
<div fxLayout="column" fxFlex="100">
|
|
61
|
+
<p class="step-title">{{ step.label }}</p>
|
|
62
|
+
<p *ngIf="step.optional || disabled" class="step-status">{{ disabled ? step.disabledText || 'Not Applicable' : 'Optional' }}</p>
|
|
63
|
+
</div>
|
|
64
|
+
</li>
|
|
65
|
+
`, isInline: true, styles: ["mtna-wf-step li{padding:8px 16px;position:relative;-webkit-user-select:none;-o-user-select:none;user-select:none;line-height:24px;font-size:14px;transition:background-color .15s cubic-bezier(0,0,.2,1)}mtna-wf-step li:after{content:\"\";display:block;position:absolute;top:0;right:0;bottom:0;width:5px;transition:transform .4s cubic-bezier(.25,.8,.25,1);transform-origin:bottom;transform:scaleY(0);z-index:1}mtna-wf-step li .step-title,mtna-wf-step li .step-status{margin:0}mtna-wf-step.disabled{font-style:italic}\n"], components: [{ type: i1.MtnaStatusCircleComponent, selector: "mtna-status-circle", inputs: ["color", "circleNumber", "incompleteIcon", "status", "validIcon", "optional"] }], directives: [{ type: i2.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { type: i2.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { type: i3.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleRadius", "matRippleDisabled", "matRippleTrigger", "matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleAnimation"], exportAs: ["matRipple"] }, { type: i2.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
66
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: MtnaWfFormStepComponent, decorators: [{
|
|
67
|
+
type: Component,
|
|
68
|
+
args: [{
|
|
69
|
+
selector: 'mtna-wf-step',
|
|
70
|
+
template: `
|
|
71
|
+
<li
|
|
72
|
+
fxLayout="row"
|
|
73
|
+
fxLayoutAlign="start center"
|
|
74
|
+
matRipple
|
|
75
|
+
[matRippleDisabled]="!clickable"
|
|
76
|
+
[class.active-step]="step.active"
|
|
77
|
+
(click)="_haltClickEvent($event)"
|
|
78
|
+
>
|
|
79
|
+
<mtna-status-circle
|
|
80
|
+
[color]="color"
|
|
81
|
+
[circleNumber]="step.num"
|
|
82
|
+
[incompleteIcon]="incompleteIcon"
|
|
83
|
+
[optional]="step.optional"
|
|
84
|
+
[status]="step.status"
|
|
85
|
+
></mtna-status-circle>
|
|
86
|
+
<div fxLayout="column" fxFlex="100">
|
|
87
|
+
<p class="step-title">{{ step.label }}</p>
|
|
88
|
+
<p *ngIf="step.optional || disabled" class="step-status">{{ disabled ? step.disabledText || 'Not Applicable' : 'Optional' }}</p>
|
|
89
|
+
</div>
|
|
90
|
+
</li>
|
|
91
|
+
`,
|
|
92
|
+
styleUrls: ['form-step.component.scss'],
|
|
93
|
+
inputs: ['color'],
|
|
94
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
95
|
+
encapsulation: ViewEncapsulation.None,
|
|
96
|
+
}]
|
|
97
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { disabled: [{
|
|
98
|
+
type: HostBinding,
|
|
99
|
+
args: ['class.disabled']
|
|
100
|
+
}], step: [{
|
|
101
|
+
type: Input
|
|
102
|
+
}], clickable: [{
|
|
103
|
+
type: HostBinding,
|
|
104
|
+
args: ['class.clickable']
|
|
105
|
+
}, {
|
|
106
|
+
type: Input
|
|
107
|
+
}], incompleteIcon: [{
|
|
108
|
+
type: Input
|
|
109
|
+
}] } });
|
|
110
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1zdGVwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3dlYi1mb3JtLWFuZ3VsYXIvc3JjL2xpYi9mb3JtLXN0ZXBwZXIvZm9ybS1zdGVwLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFjLFdBQVcsRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEgsT0FBTyxFQUFZLFVBQVUsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7Ozs7QUFJOUQsZ0VBQWdFO0FBQ2hFLE1BQU0sa0JBQWtCLEdBQUcsVUFBVSxDQUNuQztJQUNFLFlBQW1CLFdBQXVCO1FBQXZCLGdCQUFXLEdBQVgsV0FBVyxDQUFZO0lBQUcsQ0FBQztDQUMvQyxFQUNELFNBQVMsQ0FDVixDQUFDO0FBK0JGLE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxrQkFBa0I7SUF5QjdELFlBQVksVUFBc0I7UUFDaEMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBekJXLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFvQnhDLGVBQVUsR0FBRyxJQUFJLENBQUM7SUFNMUIsQ0FBQztJQXhCRCxJQUNJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDcEIsQ0FBQztJQUNELElBQUksSUFBSSxDQUFDLElBQWM7UUFDckIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7UUFDbEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsTUFBTSxLQUFLLFVBQVUsQ0FBQztJQUM3QyxDQUFDO0lBR0QsSUFFSSxTQUFTO1FBQ1gsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUMzQyxDQUFDO0lBQ0QsSUFBSSxTQUFTLENBQUMsU0FBa0I7UUFDOUIsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUM7SUFDOUIsQ0FBQztJQVNEOztPQUVHO0lBQ0gsZUFBZSxDQUFDLEtBQVk7UUFDMUIsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDbkIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3ZCLEtBQUssQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1NBQ2xDO0lBQ0gsQ0FBQzs7cUhBckNVLHVCQUF1Qjt5R0FBdkIsdUJBQXVCLGlSQTNCeEI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXFCVDs0RkFNVSx1QkFBdUI7a0JBN0JuQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxjQUFjO29CQUN4QixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXFCVDtvQkFDRCxTQUFTLEVBQUUsQ0FBQywwQkFBMEIsQ0FBQztvQkFDdkMsTUFBTSxFQUFFLENBQUMsT0FBTyxDQUFDO29CQUNqQixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7aUJBQ3RDO2lHQUVnQyxRQUFRO3NCQUF0QyxXQUFXO3VCQUFDLGdCQUFnQjtnQkFHekIsSUFBSTtzQkFEUCxLQUFLO2dCQVlGLFNBQVM7c0JBRlosV0FBVzt1QkFBQyxpQkFBaUI7O3NCQUM3QixLQUFLO2dCQVNHLGNBQWM7c0JBQXRCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBIb3N0QmluZGluZywgSW5wdXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDYW5Db2xvciwgbWl4aW5Db2xvciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuXG5pbXBvcnQgeyBGb3JtU3RlcCB9IGZyb20gJy4vbW9kZWxzL2luZGV4JztcblxuLyogZXNsaW50LWRpc2FibGUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eSAqL1xuY29uc3QgX0Zvcm1TdGVwTWl4aW5CYXNlID0gbWl4aW5Db2xvcihcbiAgY2xhc3Mge1xuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBfZWxlbWVudFJlZjogRWxlbWVudFJlZikge31cbiAgfSxcbiAgJ3ByaW1hcnknXG4pO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtdG5hLXdmLXN0ZXAnLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxsaVxuICAgICAgZnhMYXlvdXQ9XCJyb3dcIlxuICAgICAgZnhMYXlvdXRBbGlnbj1cInN0YXJ0IGNlbnRlclwiXG4gICAgICBtYXRSaXBwbGVcbiAgICAgIFttYXRSaXBwbGVEaXNhYmxlZF09XCIhY2xpY2thYmxlXCJcbiAgICAgIFtjbGFzcy5hY3RpdmUtc3RlcF09XCJzdGVwLmFjdGl2ZVwiXG4gICAgICAoY2xpY2spPVwiX2hhbHRDbGlja0V2ZW50KCRldmVudClcIlxuICAgID5cbiAgICAgIDxtdG5hLXN0YXR1cy1jaXJjbGVcbiAgICAgICAgW2NvbG9yXT1cImNvbG9yXCJcbiAgICAgICAgW2NpcmNsZU51bWJlcl09XCJzdGVwLm51bVwiXG4gICAgICAgIFtpbmNvbXBsZXRlSWNvbl09XCJpbmNvbXBsZXRlSWNvblwiXG4gICAgICAgIFtvcHRpb25hbF09XCJzdGVwLm9wdGlvbmFsXCJcbiAgICAgICAgW3N0YXR1c109XCJzdGVwLnN0YXR1c1wiXG4gICAgICA+PC9tdG5hLXN0YXR1cy1jaXJjbGU+XG4gICAgICA8ZGl2IGZ4TGF5b3V0PVwiY29sdW1uXCIgZnhGbGV4PVwiMTAwXCI+XG4gICAgICAgIDxwIGNsYXNzPVwic3RlcC10aXRsZVwiPnt7IHN0ZXAubGFiZWwgfX08L3A+XG4gICAgICAgIDxwICpuZ0lmPVwic3RlcC5vcHRpb25hbCB8fCBkaXNhYmxlZFwiIGNsYXNzPVwic3RlcC1zdGF0dXNcIj57eyBkaXNhYmxlZCA/IHN0ZXAuZGlzYWJsZWRUZXh0IHx8ICdOb3QgQXBwbGljYWJsZScgOiAnT3B0aW9uYWwnIH19PC9wPlxuICAgICAgPC9kaXY+XG4gICAgPC9saT5cbiAgYCxcbiAgc3R5bGVVcmxzOiBbJ2Zvcm0tc3RlcC5jb21wb25lbnQuc2NzcyddLFxuICBpbnB1dHM6IFsnY29sb3InXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIE10bmFXZkZvcm1TdGVwQ29tcG9uZW50IGV4dGVuZHMgX0Zvcm1TdGVwTWl4aW5CYXNlIGltcGxlbWVudHMgQ2FuQ29sb3Ige1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmRpc2FibGVkJykgZGlzYWJsZWQgPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBnZXQgc3RlcCgpOiBGb3JtU3RlcCB7XG4gICAgcmV0dXJuIHRoaXMuX3N0ZXA7XG4gIH1cbiAgc2V0IHN0ZXAoc3RlcDogRm9ybVN0ZXApIHtcbiAgICB0aGlzLl9zdGVwID0gc3RlcDtcbiAgICB0aGlzLmRpc2FibGVkID0gc3RlcC5zdGF0dXMgPT09ICdESVNBQkxFRCc7XG4gIH1cbiAgcHJpdmF0ZSBfc3RlcCE6IEZvcm1TdGVwO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MuY2xpY2thYmxlJylcbiAgQElucHV0KClcbiAgZ2V0IGNsaWNrYWJsZSgpIHtcbiAgICByZXR1cm4gIXRoaXMuZGlzYWJsZWQgJiYgdGhpcy5fY2xpY2thYmxlO1xuICB9XG4gIHNldCBjbGlja2FibGUoY2xpY2thYmxlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fY2xpY2thYmxlID0gY2xpY2thYmxlO1xuICB9XG4gIHByaXZhdGUgX2NsaWNrYWJsZSA9IHRydWU7XG5cbiAgQElucHV0KCkgaW5jb21wbGV0ZUljb246IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQ7XG5cbiAgY29uc3RydWN0b3IoZWxlbWVudFJlZjogRWxlbWVudFJlZikge1xuICAgIHN1cGVyKGVsZW1lbnRSZWYpO1xuICB9XG5cbiAgLyoqXG4gICAqIFByZXZlbnRzIGNsaWNrIGV2ZW50IGlmIHRoaXMgc3RlcCBpcyBub3QgY2xpY2thYmxlXG4gICAqL1xuICBfaGFsdENsaWNrRXZlbnQoZXZlbnQ6IEV2ZW50KSB7XG4gICAgaWYgKCF0aGlzLmNsaWNrYWJsZSkge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export function everyStepStatus(statusToCheck, steps, a, b, c) {
|
|
2
|
+
if (!steps || !steps.length) {
|
|
3
|
+
return false;
|
|
4
|
+
}
|
|
5
|
+
let exclusionIds = c || [];
|
|
6
|
+
let includeDisabled = false;
|
|
7
|
+
let includeOptional = false;
|
|
8
|
+
// If 'a' is not null, determine if it's the 'includeDisabled' boolean, or the exclusionIds array
|
|
9
|
+
if (a !== null && a !== undefined) {
|
|
10
|
+
if (Array.isArray(a)) {
|
|
11
|
+
exclusionIds = a;
|
|
12
|
+
}
|
|
13
|
+
else {
|
|
14
|
+
includeDisabled = a;
|
|
15
|
+
includeOptional = b || false;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
return steps
|
|
19
|
+
.filter((s) =>
|
|
20
|
+
// Step ID is not excluded
|
|
21
|
+
!exclusionIds.some((id) => id === s.instanceId) &&
|
|
22
|
+
// Step status is not disabled, unless checking for disabled status
|
|
23
|
+
(includeDisabled ? true : s.status !== 'DISABLED') &&
|
|
24
|
+
// Step is required, unless optional steps should be checked
|
|
25
|
+
(includeOptional ? true : !s.optional))
|
|
26
|
+
.every((s) => s.status === statusToCheck);
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1zdGVwLnV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy93ZWItZm9ybS1hbmd1bGFyL3NyYy9saWIvZm9ybS1zdGVwcGVyL2Zvcm0tc3RlcC51dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXdDQSxNQUFNLFVBQVUsZUFBZSxDQUM3QixhQUEyQixFQUMzQixLQUFzQixFQUN0QixDQUEyQixFQUMzQixDQUFXLEVBQ1gsQ0FBaUI7SUFFakIsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUU7UUFDM0IsT0FBTyxLQUFLLENBQUM7S0FDZDtJQUNELElBQUksWUFBWSxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDM0IsSUFBSSxlQUFlLEdBQUcsS0FBSyxDQUFDO0lBQzVCLElBQUksZUFBZSxHQUFHLEtBQUssQ0FBQztJQUM1QixpR0FBaUc7SUFDakcsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxTQUFTLEVBQUU7UUFDakMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ3BCLFlBQVksR0FBRyxDQUFDLENBQUM7U0FDbEI7YUFBTTtZQUNMLGVBQWUsR0FBRyxDQUFDLENBQUM7WUFDcEIsZUFBZSxHQUFHLENBQUMsSUFBSSxLQUFLLENBQUM7U0FDOUI7S0FDRjtJQUNELE9BQU8sS0FBSztTQUNULE1BQU0sQ0FDTCxDQUFDLENBQUMsRUFBRSxFQUFFO0lBQ0osMEJBQTBCO0lBQzFCLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxVQUFVLENBQUM7UUFDL0MsbUVBQW1FO1FBQ25FLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssVUFBVSxDQUFDO1FBQ2xELDREQUE0RDtRQUM1RCxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FDekM7U0FDQSxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssYUFBYSxDQUFDLENBQUM7QUFDOUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENpcmNsZVN0YXR1cyB9IGZyb20gJ0BtdG5hL2NvcmUtYW5ndWxhcic7XG5cbmltcG9ydCB7IEZvcm1TdGVwIH0gZnJvbSAnLi9tb2RlbHMvaW5kZXgnO1xuXG4vKipcbiAqIERldGVybWluZXMgaWYgZXZlcnkgc3RlcCBtYXRjaGVzIGEgZ2l2ZW4gc3RhdHVzXG4gKiBAcGFyYW0gc3RhdHVzVG9DaGVjayBDaXJjbGVTdGF0dXMgdG8gbWF0Y2ggYWdhaW5zdFxuICogQHBhcmFtIHN0ZXBzIEZvcm1TdGVwcyB3aXRoIHN0YXR1c2VzIHRvIGNoZWNrXG4gKiBAcGFyYW0gaW5jbHVkZURpc2FibGVkIElmIGZhbHNlIG9yIG5vdCBzdXBwbGllZCwgZGlzYWJsZWQgc3RlcHMgYXJlIGV4Y2x1ZGVkIGZyb20gY2hlY2tcbiAqIEBwYXJhbSBpbmNsdWRlT3B0aW9uYWwgSWYgZmFsc2Ugb3Igbm90IHN1cHBsaWVkLCBvcHRpb25hbCBzdGVwcyBhcmUgZXhjbHVkZWQgZnJvbSBjaGVja1xuICogQHBhcmFtIGV4Y2x1c2lvbklkcyBzdHJpbmdbXSBJRHMgb2Ygc3RlcHMgdG8gZXhjbHVkZSBmcm9tIGNoZWNrXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBldmVyeVN0ZXBTdGF0dXMoXG4gIHN0YXR1c1RvQ2hlY2s6IENpcmNsZVN0YXR1cyxcbiAgc3RlcHM6IEFycmF5PEZvcm1TdGVwPixcbiAgaW5jbHVkZURpc2FibGVkPzogYm9vbGVhbixcbiAgaW5jbHVkZU9wdGlvbmFsPzogYm9vbGVhblxuKTogYm9vbGVhbjtcbi8qKlxuICogRGV0ZXJtaW5lcyBpZiBldmVyeSBzdGVwIG1hdGNoZXMgYSBnaXZlbiBzdGF0dXNcbiAqIEBwYXJhbSBzdGF0dXNUb0NoZWNrIENpcmNsZVN0YXR1cyB0byBtYXRjaCBhZ2FpbnN0XG4gKiBAcGFyYW0gc3RlcHMgRm9ybVN0ZXBzIHdpdGggc3RhdHVzZXMgdG8gY2hlY2tcbiAqIEBwYXJhbSBleGNsdXNpb25JZHMgc3RyaW5nW10gSURzIG9mIHN0ZXBzIHRvIGV4Y2x1ZGUgZnJvbSBjaGVja1xuICovXG5leHBvcnQgZnVuY3Rpb24gZXZlcnlTdGVwU3RhdHVzKHN0YXR1c1RvQ2hlY2s6IENpcmNsZVN0YXR1cywgc3RlcHM6IEFycmF5PEZvcm1TdGVwPiwgZXhjbHVzaW9uSWRzPzogQXJyYXk8c3RyaW5nPik6IGJvb2xlYW47XG4vKipcbiAqIERldGVybWluZXMgaWYgZXZlcnkgc3RlcCBtYXRjaGVzIGEgZ2l2ZW4gc3RhdHVzXG4gKiBAcGFyYW0gc3RhdHVzVG9DaGVjayBDaXJjbGVTdGF0dXMgdG8gbWF0Y2ggYWdhaW5zdFxuICogQHBhcmFtIHN0ZXBzIEZvcm1TdGVwcyB3aXRoIHN0YXR1c2VzIHRvIGNoZWNrXG4gKiBAcGFyYW0gaW5jbHVkZURpc2FibGVkIElmIGZhbHNlIG9yIG5vdCBzdXBwbGllZCwgZGlzYWJsZWQgc3RlcHMgYXJlIGV4Y2x1ZGVkIGZyb20gY2hlY2tcbiAqIEBwYXJhbSBpbmNsdWRlT3B0aW9uYWwgSWYgZmFsc2Ugb3Igbm90IHN1cHBsaWVkLCBvcHRpb25hbCBzdGVwcyBhcmUgZXhjbHVkZWQgZnJvbSBjaGVja1xuICogQHBhcmFtIGV4Y2x1c2lvbklkcyBzdHJpbmdbXSBJRHMgb2Ygc3RlcHMgdG8gZXhjbHVkZSBmcm9tIGNoZWNrXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBldmVyeVN0ZXBTdGF0dXMoXG4gIHN0YXR1c1RvQ2hlY2s6IENpcmNsZVN0YXR1cyxcbiAgc3RlcHM6IEFycmF5PEZvcm1TdGVwPixcbiAgaW5jbHVkZURpc2FibGVkPzogYm9vbGVhbixcbiAgaW5jbHVkZU9wdGlvbmFsPzogYm9vbGVhbixcbiAgZXhjbHVzaW9uSWRzPzogQXJyYXk8c3RyaW5nPlxuKTogYm9vbGVhbjtcbmV4cG9ydCBmdW5jdGlvbiBldmVyeVN0ZXBTdGF0dXMoXG4gIHN0YXR1c1RvQ2hlY2s6IENpcmNsZVN0YXR1cyxcbiAgc3RlcHM6IEFycmF5PEZvcm1TdGVwPixcbiAgYT86IGJvb2xlYW4gfCBBcnJheTxzdHJpbmc+LFxuICBiPzogYm9vbGVhbixcbiAgYz86IEFycmF5PHN0cmluZz5cbik6IGJvb2xlYW4ge1xuICBpZiAoIXN0ZXBzIHx8ICFzdGVwcy5sZW5ndGgpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgbGV0IGV4Y2x1c2lvbklkcyA9IGMgfHwgW107XG4gIGxldCBpbmNsdWRlRGlzYWJsZWQgPSBmYWxzZTtcbiAgbGV0IGluY2x1ZGVPcHRpb25hbCA9IGZhbHNlO1xuICAvLyBJZiAnYScgaXMgbm90IG51bGwsIGRldGVybWluZSBpZiBpdCdzIHRoZSAnaW5jbHVkZURpc2FibGVkJyBib29sZWFuLCBvciB0aGUgZXhjbHVzaW9uSWRzIGFycmF5XG4gIGlmIChhICE9PSBudWxsICYmIGEgIT09IHVuZGVmaW5lZCkge1xuICAgIGlmIChBcnJheS5pc0FycmF5KGEpKSB7XG4gICAgICBleGNsdXNpb25JZHMgPSBhO1xuICAgIH0gZWxzZSB7XG4gICAgICBpbmNsdWRlRGlzYWJsZWQgPSBhO1xuICAgICAgaW5jbHVkZU9wdGlvbmFsID0gYiB8fCBmYWxzZTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHN0ZXBzXG4gICAgLmZpbHRlcihcbiAgICAgIChzKSA9PlxuICAgICAgICAvLyBTdGVwIElEIGlzIG5vdCBleGNsdWRlZFxuICAgICAgICAhZXhjbHVzaW9uSWRzLnNvbWUoKGlkKSA9PiBpZCA9PT0gcy5pbnN0YW5jZUlkKSAmJlxuICAgICAgICAvLyBTdGVwIHN0YXR1cyBpcyBub3QgZGlzYWJsZWQsIHVubGVzcyBjaGVja2luZyBmb3IgZGlzYWJsZWQgc3RhdHVzXG4gICAgICAgIChpbmNsdWRlRGlzYWJsZWQgPyB0cnVlIDogcy5zdGF0dXMgIT09ICdESVNBQkxFRCcpICYmXG4gICAgICAgIC8vIFN0ZXAgaXMgcmVxdWlyZWQsIHVubGVzcyBvcHRpb25hbCBzdGVwcyBzaG91bGQgYmUgY2hlY2tlZFxuICAgICAgICAoaW5jbHVkZU9wdGlvbmFsID8gdHJ1ZSA6ICFzLm9wdGlvbmFsKVxuICAgIClcbiAgICAuZXZlcnkoKHMpID0+IHMuc3RhdHVzID09PSBzdGF0dXNUb0NoZWNrKTtcbn1cbiJdfQ==
|