@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.
Files changed (170) hide show
  1. package/_index.scss +25 -0
  2. package/bundles/mtna-web-form-angular.umd.js +4982 -0
  3. package/bundles/mtna-web-form-angular.umd.js.map +1 -0
  4. package/esm2015/lib/core/animations.js +8 -0
  5. package/esm2015/lib/core/api-config.js +3 -0
  6. package/esm2015/lib/core/index.js +7 -0
  7. package/esm2015/lib/core/pipes/coerce-date-item.pipe.js +23 -0
  8. package/esm2015/lib/core/pipes/coerce-form-group.pipe.js +35 -0
  9. package/esm2015/lib/core/pipes/date-quarter.pipe.js +43 -0
  10. package/esm2015/lib/core/pipes/get-auto-complete.pipe.js +42 -0
  11. package/esm2015/lib/core/pipes/get-available-quarters.pipe.js +29 -0
  12. package/esm2015/lib/core/pipes/get-form-control-error.pipe.js +20 -0
  13. package/esm2015/lib/core/pipes/get-list-icon.pipe.js +53 -0
  14. package/esm2015/lib/core/pipes/get-object-type.pipe.js +17 -0
  15. package/esm2015/lib/core/pipes/get-selected-option.pipe.js +20 -0
  16. package/esm2015/lib/core/pipes/index.js +71 -0
  17. package/esm2015/lib/core/pipes/items-with-value.pipe.js +30 -0
  18. package/esm2015/lib/core/pipes/sanitize-html.pipe.js +23 -0
  19. package/esm2015/lib/core/services/api.service.js +67 -0
  20. package/esm2015/lib/core/services/form-manager.service.js +465 -0
  21. package/esm2015/lib/core/services/index.js +5 -0
  22. package/esm2015/lib/core/services/ng-form.service.js +150 -0
  23. package/esm2015/lib/core/services/ui.service.js +333 -0
  24. package/esm2015/lib/core/utilities/find-form-control.js +29 -0
  25. package/esm2015/lib/core/utilities/find-form-item.js +25 -0
  26. package/esm2015/lib/core/utilities/flatten-steps.js +10 -0
  27. package/esm2015/lib/core/utilities/generate-form-steps.js +25 -0
  28. package/esm2015/lib/core/utilities/index.js +9 -0
  29. package/esm2015/lib/core/utilities/is-form-group.js +6 -0
  30. package/esm2015/lib/core/utilities/serializer-util.js +358 -0
  31. package/esm2015/lib/core/utilities/update-step-status.js +38 -0
  32. package/esm2015/lib/core/validators/index.js +3 -0
  33. package/esm2015/lib/core/validators/instant-validation-result-error-state-matcher.js +23 -0
  34. package/esm2015/lib/core/validators/validation-result-validator.js +19 -0
  35. package/esm2015/lib/file-upload/file-upload.component.js +66 -0
  36. package/esm2015/lib/file-upload/index.js +2 -0
  37. package/esm2015/lib/form/base-form-item.model.js +2 -0
  38. package/esm2015/lib/form/form-disabler.component.js +38 -0
  39. package/esm2015/lib/form/form-item.directive.js +22 -0
  40. package/esm2015/lib/form/form.component.js +250 -0
  41. package/esm2015/lib/form/form.module.js +214 -0
  42. package/esm2015/lib/form/index.js +5 -0
  43. package/esm2015/lib/form/white-list.model.js +11 -0
  44. package/esm2015/lib/form-item-controls/base-form-item-control.directive.js +58 -0
  45. package/esm2015/lib/form-item-controls/base-parent-item-control.directive.js +42 -0
  46. package/esm2015/lib/form-item-controls/base-single-selection-parent.directive.js +53 -0
  47. package/esm2015/lib/form-item-controls/date-range.component.js +84 -0
  48. package/esm2015/lib/form-item-controls/date.component.js +134 -0
  49. package/esm2015/lib/form-item-controls/dropdown.component.js +109 -0
  50. package/esm2015/lib/form-item-controls/index.js +8 -0
  51. package/esm2015/lib/form-item-controls/input.component.js +149 -0
  52. package/esm2015/lib/form-item-controls/year-quarter-range.component.js +75 -0
  53. package/esm2015/lib/form-item-controls/year-quarter.component.js +228 -0
  54. package/esm2015/lib/form-stepper/form-step-group.component.js +95 -0
  55. package/esm2015/lib/form-stepper/form-step-group.pipe.js +20 -0
  56. package/esm2015/lib/form-stepper/form-step.component.js +110 -0
  57. package/esm2015/lib/form-stepper/form-step.util.js +28 -0
  58. package/esm2015/lib/form-stepper/form-stepper.component.js +115 -0
  59. package/esm2015/lib/form-stepper/form-stepper.module.js +53 -0
  60. package/esm2015/lib/form-stepper/index.js +8 -0
  61. package/esm2015/lib/form-stepper/models/base-form-step.model.js +6 -0
  62. package/esm2015/lib/form-stepper/models/form-step-group.model.js +13 -0
  63. package/esm2015/lib/form-stepper/models/form-step.model.js +12 -0
  64. package/esm2015/lib/form-stepper/models/index.js +4 -0
  65. package/esm2015/lib/groups/form-item-dialog-data.model.js +14 -0
  66. package/esm2015/lib/groups/group-components.js +646 -0
  67. package/esm2015/lib/groups/index.js +3 -0
  68. package/esm2015/lib/groups/repeatable-item.component.js +23 -0
  69. package/esm2015/lib/item-header/index.js +2 -0
  70. package/esm2015/lib/item-header/item-header.component.js +108 -0
  71. package/esm2015/lib/static-form-items/index.js +3 -0
  72. package/esm2015/lib/static-form-items/ordered-list-item.js +50 -0
  73. package/esm2015/lib/static-form-items/unordered-list-item.js +52 -0
  74. package/esm2015/lib/step-card/index.js +2 -0
  75. package/esm2015/lib/step-card/step-card.component.js +53 -0
  76. package/esm2015/mtna-web-form-angular.js +5 -0
  77. package/esm2015/public-api.js +10 -0
  78. package/fesm2015/mtna-web-form-angular.js +4614 -0
  79. package/fesm2015/mtna-web-form-angular.js.map +1 -0
  80. package/lib/_index.scss +25 -0
  81. package/lib/core/_all-color.scss +25 -0
  82. package/lib/core/_all-theme.scss +28 -0
  83. package/lib/core/_all-typography.scss +25 -0
  84. package/lib/core/_core-theme.scss +43 -0
  85. package/lib/core/animations.d.ts +2 -0
  86. package/lib/core/api-config.d.ts +5 -0
  87. package/lib/core/index.d.ts +6 -0
  88. package/lib/core/pipes/coerce-date-item.pipe.d.ts +11 -0
  89. package/lib/core/pipes/coerce-form-group.pipe.d.ts +23 -0
  90. package/lib/core/pipes/date-quarter.pipe.d.ts +7 -0
  91. package/lib/core/pipes/get-auto-complete.pipe.d.ts +7 -0
  92. package/lib/core/pipes/get-available-quarters.pipe.d.ts +8 -0
  93. package/lib/core/pipes/get-form-control-error.pipe.d.ts +14 -0
  94. package/lib/core/pipes/get-list-icon.pipe.d.ts +7 -0
  95. package/lib/core/pipes/get-object-type.pipe.d.ts +7 -0
  96. package/lib/core/pipes/get-selected-option.pipe.d.ts +8 -0
  97. package/lib/core/pipes/index.d.ts +28 -0
  98. package/lib/core/pipes/items-with-value.pipe.d.ts +13 -0
  99. package/lib/core/pipes/sanitize-html.pipe.d.ts +10 -0
  100. package/lib/core/services/api.service.d.ts +41 -0
  101. package/lib/core/services/form-manager.service.d.ts +184 -0
  102. package/lib/core/services/index.d.ts +4 -0
  103. package/lib/core/services/ng-form.service.d.ts +76 -0
  104. package/lib/core/services/ui.service.d.ts +123 -0
  105. package/lib/core/utilities/find-form-control.d.ts +11 -0
  106. package/lib/core/utilities/find-form-item.d.ts +10 -0
  107. package/lib/core/utilities/flatten-steps.d.ts +7 -0
  108. package/lib/core/utilities/generate-form-steps.d.ts +3 -0
  109. package/lib/core/utilities/index.d.ts +8 -0
  110. package/lib/core/utilities/is-form-group.d.ts +3 -0
  111. package/lib/core/utilities/serializer-util.d.ts +81 -0
  112. package/lib/core/utilities/update-step-status.d.ts +14 -0
  113. package/lib/core/validators/index.d.ts +2 -0
  114. package/lib/core/validators/instant-validation-result-error-state-matcher.d.ts +13 -0
  115. package/lib/core/validators/validation-result-validator.d.ts +12 -0
  116. package/lib/file-upload/file-upload.component.d.ts +23 -0
  117. package/lib/file-upload/index.d.ts +1 -0
  118. package/lib/form/base-form-item.model.d.ts +15 -0
  119. package/lib/form/form-disabler.component.d.ts +6 -0
  120. package/lib/form/form-item.directive.d.ts +13 -0
  121. package/lib/form/form.component.d.ts +89 -0
  122. package/lib/form/form.module.d.ts +52 -0
  123. package/lib/form/index.d.ts +4 -0
  124. package/lib/form/white-list.model.d.ts +6 -0
  125. package/lib/form-item-controls/_date-item-theme.scss +29 -0
  126. package/lib/form-item-controls/_form-control-theme.scss +28 -0
  127. package/lib/form-item-controls/_year-quarter-item-theme.scss +28 -0
  128. package/lib/form-item-controls/base-form-item-control.directive.d.ts +26 -0
  129. package/lib/form-item-controls/base-parent-item-control.directive.d.ts +19 -0
  130. package/lib/form-item-controls/base-single-selection-parent.directive.d.ts +26 -0
  131. package/lib/form-item-controls/date-range.component.d.ts +12 -0
  132. package/lib/form-item-controls/date.component.d.ts +24 -0
  133. package/lib/form-item-controls/dropdown.component.d.ts +9 -0
  134. package/lib/form-item-controls/index.d.ts +7 -0
  135. package/lib/form-item-controls/input.component.d.ts +14 -0
  136. package/lib/form-item-controls/year-quarter-range.component.d.ts +9 -0
  137. package/lib/form-item-controls/year-quarter.component.d.ts +33 -0
  138. package/lib/form-stepper/_form-step-group-theme.scss +43 -0
  139. package/lib/form-stepper/_form-stepper-theme.scss +72 -0
  140. package/lib/form-stepper/form-step-group.component.d.ts +23 -0
  141. package/lib/form-stepper/form-step-group.pipe.d.ts +11 -0
  142. package/lib/form-stepper/form-step.component.d.ts +27 -0
  143. package/lib/form-stepper/form-step.util.d.ts +27 -0
  144. package/lib/form-stepper/form-stepper.component.d.ts +35 -0
  145. package/lib/form-stepper/form-stepper.module.d.ts +18 -0
  146. package/lib/form-stepper/index.d.ts +7 -0
  147. package/lib/form-stepper/models/base-form-step.model.d.ts +4 -0
  148. package/lib/form-stepper/models/form-step-group.model.d.ts +8 -0
  149. package/lib/form-stepper/models/form-step.model.d.ts +11 -0
  150. package/lib/form-stepper/models/index.d.ts +3 -0
  151. package/lib/groups/_checkbox-theme.scss +62 -0
  152. package/lib/groups/_form-group-theme.scss +32 -0
  153. package/lib/groups/_multiple-choice-theme.scss +65 -0
  154. package/lib/groups/_repeatable-item-theme.scss +28 -0
  155. package/lib/groups/form-item-dialog-data.model.d.ts +13 -0
  156. package/lib/groups/group-components.d.ts +221 -0
  157. package/lib/groups/index.d.ts +2 -0
  158. package/lib/groups/repeatable-item.component.d.ts +5 -0
  159. package/lib/item-header/_item-header-theme.scss +28 -0
  160. package/lib/item-header/index.d.ts +1 -0
  161. package/lib/item-header/item-header.component.d.ts +35 -0
  162. package/lib/static-form-items/index.d.ts +2 -0
  163. package/lib/static-form-items/ordered-list-item.d.ts +11 -0
  164. package/lib/static-form-items/unordered-list-item.d.ts +11 -0
  165. package/lib/step-card/_step-card-theme.scss +42 -0
  166. package/lib/step-card/index.d.ts +1 -0
  167. package/lib/step-card/step-card.component.d.ts +21 -0
  168. package/mtna-web-form-angular.d.ts +5 -0
  169. package/package.json +43 -0
  170. 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==