@muraai/mnl-form 0.0.1-alpha-32ca3fa → 0.0.1-alpha-11e96eb
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/README.md +5 -5
- package/fesm2022/muraai-mnl-form.mjs +152 -145
- package/fesm2022/muraai-mnl-form.mjs.map +1 -1
- package/lib/{formly-lib/formly-lib.component.d.ts → mnl-form/mnl-form.component.d.ts} +3 -3
- package/lib/types/upload-file.d.ts +1 -1
- package/lib/workflow-status/ workflow-status.module.d.ts +8 -8
- package/lib/workflow-status/workflow-status.component.d.ts +1 -1
- package/package.json +4 -5
- package/public-api.d.ts +2 -2
- package/esm2022/lib/confirmation-dialog/confirmation-dialog.component.mjs +0 -34
- package/esm2022/lib/formly-lib/formly-lib.component.mjs +0 -199
- package/esm2022/lib/formly-lib/formly-standalone.module.mjs +0 -155
- package/esm2022/lib/models/custom-form-field.model.mjs +0 -2
- package/esm2022/lib/models/workflow-status.model.mjs +0 -2
- package/esm2022/lib/services/graphql.service.mjs +0 -30
- package/esm2022/lib/services/scoring.service.mjs +0 -103
- package/esm2022/lib/types/action-button-renderer.component.mjs +0 -59
- package/esm2022/lib/types/autocomplete-type.component.mjs +0 -68
- package/esm2022/lib/types/button.type.mjs +0 -72
- package/esm2022/lib/types/comments.type.mjs +0 -102
- package/esm2022/lib/types/country-code-input.type.mjs +0 -181
- package/esm2022/lib/types/custom-date.type.mjs +0 -20
- package/esm2022/lib/types/custom-input.component.mjs +0 -62
- package/esm2022/lib/types/date-format.type.mjs +0 -196
- package/esm2022/lib/types/expansion-panel.types.mjs +0 -85
- package/esm2022/lib/types/formly-field-panel.type.mjs +0 -70
- package/esm2022/lib/types/grid-actionable.type.mjs +0 -197
- package/esm2022/lib/types/grid-formly-cell.component.mjs +0 -42
- package/esm2022/lib/types/grid.type.mjs +0 -125
- package/esm2022/lib/types/input.type.mjs +0 -43
- package/esm2022/lib/types/mu-helper-text.type.mjs +0 -331
- package/esm2022/lib/types/multi-select-autocomplete.mjs +0 -139
- package/esm2022/lib/types/multi-select-checkbox.component.mjs +0 -247
- package/esm2022/lib/types/radio.type.mjs +0 -71
- package/esm2022/lib/types/scrollable-tabs.types.mjs +0 -220
- package/esm2022/lib/types/select-api-auto-complete.component.mjs +0 -111
- package/esm2022/lib/types/select-autocomplete-redefined.component.mjs +0 -142
- package/esm2022/lib/types/select-autocomplete.type.mjs +0 -254
- package/esm2022/lib/types/stepper.type.mjs +0 -268
- package/esm2022/lib/types/table.types.mjs +0 -79
- package/esm2022/lib/types/tabs.types.mjs +0 -293
- package/esm2022/lib/types/tabular-form-dialog.component.mjs +0 -331
- package/esm2022/lib/types/tabular-form.type.mjs +0 -641
- package/esm2022/lib/types/upload-file.mjs +0 -524
- package/esm2022/lib/types/view-file-dialog.component.mjs +0 -90
- package/esm2022/lib/utils/formly.utils.mjs +0 -105
- package/esm2022/lib/validators/custom-email-validator.mjs +0 -18
- package/esm2022/lib/validators/ein-validators.mjs +0 -11
- package/esm2022/lib/validators/gst-validator.mjs +0 -11
- package/esm2022/lib/validators/normal-email-validator.mjs +0 -17
- package/esm2022/lib/validators/npi-validator.mjs +0 -11
- package/esm2022/lib/validators/pan-validator.mjs +0 -11
- package/esm2022/lib/validators/phone-number-validator.mjs +0 -22
- package/esm2022/lib/validators/select-validator.mjs +0 -7
- package/esm2022/lib/validators/tinSsn-validator.mjs +0 -12
- package/esm2022/lib/workflow-status/ workflow-status.module.mjs +0 -52
- package/esm2022/lib/workflow-status/workflow-status.component.mjs +0 -70
- package/esm2022/lib/wrappers/form-field-description-wrapper.component.mjs +0 -44
- package/esm2022/lib/wrappers/form-field-wrapper.component.mjs +0 -34
- package/esm2022/lib/wrappers/formly-wrapper-with-old-value.component.mjs +0 -140
- package/esm2022/lib/wrappers/prefix-suffix-wrapper.component.mjs +0 -95
- package/esm2022/lib/wrappers/prefix-sufix-extension.component.mjs +0 -9
- package/esm2022/muraai-mnl-form.mjs +0 -5
- package/esm2022/public-api.mjs +0 -12
- /package/lib/{formly-lib/formly-standalone.module.d.ts → mnl-form/mnl-form-standalone.module.d.ts} +0 -0
|
@@ -1,293 +0,0 @@
|
|
|
1
|
-
import { CommonModule } from '@angular/common';
|
|
2
|
-
import { Component, inject, ViewChild } from '@angular/core';
|
|
3
|
-
import { ReactiveFormsModule } from '@angular/forms';
|
|
4
|
-
import { MatButtonModule } from '@angular/material/button';
|
|
5
|
-
import { MatIconModule } from '@angular/material/icon';
|
|
6
|
-
import { MatTabsModule } from '@angular/material/tabs';
|
|
7
|
-
import { MatTooltipModule } from '@angular/material/tooltip';
|
|
8
|
-
import { Router } from '@angular/router';
|
|
9
|
-
import { FieldType } from '@ngx-formly/core';
|
|
10
|
-
import { FormlyModule } from '@ngx-formly/core';
|
|
11
|
-
import { TranslateModule } from '@ngx-translate/core';
|
|
12
|
-
import * as i0 from "@angular/core";
|
|
13
|
-
import * as i1 from "@angular/material/tabs";
|
|
14
|
-
import * as i2 from "@ngx-formly/core";
|
|
15
|
-
import * as i3 from "@angular/material/button";
|
|
16
|
-
import * as i4 from "@angular/common";
|
|
17
|
-
import * as i5 from "@ngx-translate/core";
|
|
18
|
-
import * as i6 from "@angular/material/icon";
|
|
19
|
-
import * as i7 from "@angular/material/tooltip";
|
|
20
|
-
export class FormlyFieldTabsComponent extends FieldType {
|
|
21
|
-
constructor() {
|
|
22
|
-
super(...arguments);
|
|
23
|
-
this.router = inject(Router);
|
|
24
|
-
this.showSubmitBtn = false;
|
|
25
|
-
this.hideTab = false;
|
|
26
|
-
}
|
|
27
|
-
nextTab(tabGroup) {
|
|
28
|
-
if (tabGroup && tabGroup.selectedIndex != null) {
|
|
29
|
-
const currentIndex = tabGroup.selectedIndex;
|
|
30
|
-
if (currentIndex < (tabGroup._tabs?.length || 0) - 1) {
|
|
31
|
-
tabGroup.selectedIndex = currentIndex + 1;
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
previousTab(tabGroup) {
|
|
36
|
-
if (tabGroup && tabGroup.selectedIndex != null) {
|
|
37
|
-
const currentIndex = tabGroup.selectedIndex;
|
|
38
|
-
if (currentIndex > 0) {
|
|
39
|
-
tabGroup.selectedIndex = currentIndex - 1;
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
isFirstTab(tabGroup) {
|
|
44
|
-
return tabGroup && tabGroup.selectedIndex === 0;
|
|
45
|
-
}
|
|
46
|
-
isLastTab(tabGroup) {
|
|
47
|
-
return tabGroup && tabGroup.selectedIndex === (tabGroup._tabs?.length || 0) - 1;
|
|
48
|
-
}
|
|
49
|
-
ngOnInit() {
|
|
50
|
-
this.user = JSON.parse(localStorage.getItem('loggedInUser') || '{}');
|
|
51
|
-
if (this.field.props?.['showSubmitBtnForStatus']?.length) {
|
|
52
|
-
this.showSubmitBtn = this.field.props?.['showSubmitBtnForStatus'].find((role) => this.options.formState?.status == role) && !this.options.formState?.isReadonly;
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
isValid(field) {
|
|
56
|
-
if (field.key) {
|
|
57
|
-
if (field.props?.excludeValidation) {
|
|
58
|
-
if (field.props?.minRowValidation) {
|
|
59
|
-
return field.formControl.value[field.props?.minRowValidation].length > 0 ? true : false;
|
|
60
|
-
}
|
|
61
|
-
else {
|
|
62
|
-
return true;
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
if (field.props?.uploadValidations?.length) {
|
|
66
|
-
return field.props?.uploadValidations.every((uplField) => {
|
|
67
|
-
let valid = true;
|
|
68
|
-
if (Array.isArray(field.model[uplField]) && field.model[uplField]?.length) {
|
|
69
|
-
valid = field.model[uplField]?.every(f => f.fileName ? !!f.nodeId : true);
|
|
70
|
-
}
|
|
71
|
-
else {
|
|
72
|
-
valid = field.model[uplField]?.fileName ? !!field.model[uplField]?.nodeId : true;
|
|
73
|
-
}
|
|
74
|
-
return valid ? field?.formControl?.valid : false;
|
|
75
|
-
});
|
|
76
|
-
}
|
|
77
|
-
return field?.formControl?.valid || false;
|
|
78
|
-
}
|
|
79
|
-
else {
|
|
80
|
-
if (field.props?.excludeValidation) {
|
|
81
|
-
if (field.props?.minRowValidation) {
|
|
82
|
-
return field.formControl.value[field.props?.minRowValidation].length > 0 ? true : false;
|
|
83
|
-
}
|
|
84
|
-
else {
|
|
85
|
-
return true;
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
return field.fieldGroup
|
|
90
|
-
? field.fieldGroup.every((f) => this.isValid(f))
|
|
91
|
-
: true;
|
|
92
|
-
}
|
|
93
|
-
onTabChange(event) {
|
|
94
|
-
if (this.field && this.field.props?.['tabChange']) {
|
|
95
|
-
this.field.props?.['tabChange'](event, this.field);
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
goToPreviousForm(tabGroup) {
|
|
99
|
-
if (this.field && this.field.props?.['formChange']) {
|
|
100
|
-
this.field.props?.['formChange'](tabGroup, this.field);
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
getTabHeightClass() {
|
|
104
|
-
if (this.field.props?.['applyOldHeight']) {
|
|
105
|
-
return '2xl:h-[61vh] xl:h-[60vh] md:h-[56vh]';
|
|
106
|
-
}
|
|
107
|
-
return '2xl:h-auto xl:h-auto md:h-auto';
|
|
108
|
-
}
|
|
109
|
-
getColorForTheTabChanged(tab) {
|
|
110
|
-
let tabEditedColor = '#000000';
|
|
111
|
-
if (!this.isValid(tab) && this.options.formState?.showValidationError) {
|
|
112
|
-
tabEditedColor = '#ff0000';
|
|
113
|
-
}
|
|
114
|
-
if (this.options?.formState?.editedTabsStatus && this.options?.formState?.editedTabsStatus[tab?.key]) {
|
|
115
|
-
tabEditedColor = '#ff0000';
|
|
116
|
-
}
|
|
117
|
-
return tabEditedColor;
|
|
118
|
-
}
|
|
119
|
-
isTabDataChanged(step) {
|
|
120
|
-
let isTabChanged = false;
|
|
121
|
-
if (this.options?.formState?.editedTabsStatus && this.options?.formState?.editedTabsStatus[step?.key]) {
|
|
122
|
-
isTabChanged = true;
|
|
123
|
-
}
|
|
124
|
-
return isTabChanged;
|
|
125
|
-
}
|
|
126
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FormlyFieldTabsComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
127
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: FormlyFieldTabsComponent, isStandalone: true, selector: "mu-formly-field-tabs", viewQueries: [{ propertyName: "tabGroup", first: true, predicate: ["tabGroup"], descendants: true }], usesInheritance: true, ngImport: i0, template: `
|
|
128
|
-
<mat-tab-group #tabGroup (selectedTabChange)="onTabChange($event)">
|
|
129
|
-
@for(tab of field.fieldGroup; track tab; let i = $index; let last =
|
|
130
|
-
$last){
|
|
131
|
-
<mat-tab
|
|
132
|
-
[disabled]="
|
|
133
|
-
i !== 0 && !isValid(field.fieldGroup ? field.fieldGroup[i - 1] : {}) && tab?.props?.['disableTabs'] && this.showSubmitBtn
|
|
134
|
-
"
|
|
135
|
-
*ngIf="!tab?.props?.['hideTab']"
|
|
136
|
-
>
|
|
137
|
-
<ng-template mat-tab-label>
|
|
138
|
-
<span [ngStyle]="{'color': (!isValid(field.fieldGroup ? field.fieldGroup[i] : {}) && options.formState?.showValidationError) ? 'red' : 'black'}"
|
|
139
|
-
[ngStyle]="{'color': getColorForTheTabChanged(tab)}"
|
|
140
|
-
>
|
|
141
|
-
{{ tab?.props?.label || '' }}
|
|
142
|
-
</span>
|
|
143
|
-
<mat-icon matTooltip="{{'EDITED_TAB' | translate}}" *ngIf="isTabDataChanged(tab) && !(!isValid(field.fieldGroup ? field.fieldGroup[i] : {}) && options.formState?.showValidationError)" [ngStyle]="{'color': getColorForTheTabChanged(tab)}">edit</mat-icon>
|
|
144
|
-
<mat-icon matTooltip="{{'MANDATORY_FIELDS_TOOLTIP' | translate}}" *ngIf="!isValid(field.fieldGroup ? field.fieldGroup[i] : {}) && options.formState?.showValidationError" class="error-step">error</mat-icon>
|
|
145
|
-
</ng-template>
|
|
146
|
-
<div class="relative overflow-y-auto overflow-x-hidden form-content">
|
|
147
|
-
<formly-field [field]="tab"></formly-field>
|
|
148
|
-
</div>
|
|
149
|
-
@if(tab?.props?.['showNextPrevious']) {
|
|
150
|
-
<div class="relative bottom-2 flex justify-end mr-2">
|
|
151
|
-
@if(i===0 && field.props['showBtnForPreviousForm']) {
|
|
152
|
-
<button
|
|
153
|
-
mat-flat-button
|
|
154
|
-
color="primary"
|
|
155
|
-
type="button"
|
|
156
|
-
(click)="goToPreviousForm(tabGroup)"
|
|
157
|
-
class="flex mr-2 ml-2 mt-5"
|
|
158
|
-
>
|
|
159
|
-
{{ 'BUTTON.PREVIOUS' | translate }}
|
|
160
|
-
</button>
|
|
161
|
-
}
|
|
162
|
-
@if (i !== 0) {
|
|
163
|
-
<button
|
|
164
|
-
mat-flat-button
|
|
165
|
-
color="primary"
|
|
166
|
-
[disabled]="isFirstTab(tabGroup)"
|
|
167
|
-
type="button"
|
|
168
|
-
(click)="previousTab(tabGroup)"
|
|
169
|
-
class="flex mr-2 ml-2 mt-5"
|
|
170
|
-
>
|
|
171
|
-
{{ 'BUTTON.PREVIOUS' | translate }}
|
|
172
|
-
</button>
|
|
173
|
-
} @if (!last) {
|
|
174
|
-
<button
|
|
175
|
-
mat-flat-button
|
|
176
|
-
color="primary"
|
|
177
|
-
type="button"
|
|
178
|
-
[disabled]="!isValid(tab) && showSubmitBtn"
|
|
179
|
-
(click)="nextTab(tabGroup)"
|
|
180
|
-
class="flex mt-5"
|
|
181
|
-
>
|
|
182
|
-
{{ 'BUTTON.NEXT' | translate }}
|
|
183
|
-
</button>
|
|
184
|
-
}
|
|
185
|
-
@if(last && showSubmitBtn) {
|
|
186
|
-
<button
|
|
187
|
-
mat-flat-button
|
|
188
|
-
color="primary"
|
|
189
|
-
type="submit"
|
|
190
|
-
[disabled]="!form.valid"
|
|
191
|
-
class="flex mt-5 submit-btn"
|
|
192
|
-
>
|
|
193
|
-
{{ field.props['SUBMIT_BTN_NAME'] | translate }}
|
|
194
|
-
</button>
|
|
195
|
-
}
|
|
196
|
-
</div>
|
|
197
|
-
}
|
|
198
|
-
</mat-tab>
|
|
199
|
-
}
|
|
200
|
-
</mat-tab-group>
|
|
201
|
-
`, isInline: true, styles: [".error-step{color:#d32f2f!important}\n"], dependencies: [{ kind: "ngmodule", type: MatTabsModule }, { kind: "directive", type: i1.MatTabLabel, selector: "[mat-tab-label], [matTabLabel]" }, { kind: "component", type: i1.MatTab, selector: "mat-tab", inputs: ["disabled", "label", "aria-label", "aria-labelledby", "labelClass", "bodyClass"], exportAs: ["matTab"] }, { kind: "component", type: i1.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "fitInkBarToContent", "mat-stretch-tabs", "dynamicHeight", "selectedIndex", "headerPosition", "animationDuration", "contentTabIndex", "disablePagination", "disableRipple", "preserveContent", "backgroundColor", "aria-label", "aria-labelledby"], outputs: ["selectedIndexChange", "focusChange", "animationDone", "selectedTabChange"], exportAs: ["matTabGroup"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: FormlyModule }, { kind: "component", type: i2.FormlyField, selector: "formly-field", inputs: ["field"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i7.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }] }); }
|
|
202
|
-
}
|
|
203
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FormlyFieldTabsComponent, decorators: [{
|
|
204
|
-
type: Component,
|
|
205
|
-
args: [{ selector: 'mu-formly-field-tabs', standalone: true, imports: [
|
|
206
|
-
MatTabsModule,
|
|
207
|
-
ReactiveFormsModule,
|
|
208
|
-
FormlyModule,
|
|
209
|
-
MatButtonModule,
|
|
210
|
-
CommonModule,
|
|
211
|
-
TranslateModule,
|
|
212
|
-
MatIconModule,
|
|
213
|
-
MatTooltipModule
|
|
214
|
-
], template: `
|
|
215
|
-
<mat-tab-group #tabGroup (selectedTabChange)="onTabChange($event)">
|
|
216
|
-
@for(tab of field.fieldGroup; track tab; let i = $index; let last =
|
|
217
|
-
$last){
|
|
218
|
-
<mat-tab
|
|
219
|
-
[disabled]="
|
|
220
|
-
i !== 0 && !isValid(field.fieldGroup ? field.fieldGroup[i - 1] : {}) && tab?.props?.['disableTabs'] && this.showSubmitBtn
|
|
221
|
-
"
|
|
222
|
-
*ngIf="!tab?.props?.['hideTab']"
|
|
223
|
-
>
|
|
224
|
-
<ng-template mat-tab-label>
|
|
225
|
-
<span [ngStyle]="{'color': (!isValid(field.fieldGroup ? field.fieldGroup[i] : {}) && options.formState?.showValidationError) ? 'red' : 'black'}"
|
|
226
|
-
[ngStyle]="{'color': getColorForTheTabChanged(tab)}"
|
|
227
|
-
>
|
|
228
|
-
{{ tab?.props?.label || '' }}
|
|
229
|
-
</span>
|
|
230
|
-
<mat-icon matTooltip="{{'EDITED_TAB' | translate}}" *ngIf="isTabDataChanged(tab) && !(!isValid(field.fieldGroup ? field.fieldGroup[i] : {}) && options.formState?.showValidationError)" [ngStyle]="{'color': getColorForTheTabChanged(tab)}">edit</mat-icon>
|
|
231
|
-
<mat-icon matTooltip="{{'MANDATORY_FIELDS_TOOLTIP' | translate}}" *ngIf="!isValid(field.fieldGroup ? field.fieldGroup[i] : {}) && options.formState?.showValidationError" class="error-step">error</mat-icon>
|
|
232
|
-
</ng-template>
|
|
233
|
-
<div class="relative overflow-y-auto overflow-x-hidden form-content">
|
|
234
|
-
<formly-field [field]="tab"></formly-field>
|
|
235
|
-
</div>
|
|
236
|
-
@if(tab?.props?.['showNextPrevious']) {
|
|
237
|
-
<div class="relative bottom-2 flex justify-end mr-2">
|
|
238
|
-
@if(i===0 && field.props['showBtnForPreviousForm']) {
|
|
239
|
-
<button
|
|
240
|
-
mat-flat-button
|
|
241
|
-
color="primary"
|
|
242
|
-
type="button"
|
|
243
|
-
(click)="goToPreviousForm(tabGroup)"
|
|
244
|
-
class="flex mr-2 ml-2 mt-5"
|
|
245
|
-
>
|
|
246
|
-
{{ 'BUTTON.PREVIOUS' | translate }}
|
|
247
|
-
</button>
|
|
248
|
-
}
|
|
249
|
-
@if (i !== 0) {
|
|
250
|
-
<button
|
|
251
|
-
mat-flat-button
|
|
252
|
-
color="primary"
|
|
253
|
-
[disabled]="isFirstTab(tabGroup)"
|
|
254
|
-
type="button"
|
|
255
|
-
(click)="previousTab(tabGroup)"
|
|
256
|
-
class="flex mr-2 ml-2 mt-5"
|
|
257
|
-
>
|
|
258
|
-
{{ 'BUTTON.PREVIOUS' | translate }}
|
|
259
|
-
</button>
|
|
260
|
-
} @if (!last) {
|
|
261
|
-
<button
|
|
262
|
-
mat-flat-button
|
|
263
|
-
color="primary"
|
|
264
|
-
type="button"
|
|
265
|
-
[disabled]="!isValid(tab) && showSubmitBtn"
|
|
266
|
-
(click)="nextTab(tabGroup)"
|
|
267
|
-
class="flex mt-5"
|
|
268
|
-
>
|
|
269
|
-
{{ 'BUTTON.NEXT' | translate }}
|
|
270
|
-
</button>
|
|
271
|
-
}
|
|
272
|
-
@if(last && showSubmitBtn) {
|
|
273
|
-
<button
|
|
274
|
-
mat-flat-button
|
|
275
|
-
color="primary"
|
|
276
|
-
type="submit"
|
|
277
|
-
[disabled]="!form.valid"
|
|
278
|
-
class="flex mt-5 submit-btn"
|
|
279
|
-
>
|
|
280
|
-
{{ field.props['SUBMIT_BTN_NAME'] | translate }}
|
|
281
|
-
</button>
|
|
282
|
-
}
|
|
283
|
-
</div>
|
|
284
|
-
}
|
|
285
|
-
</mat-tab>
|
|
286
|
-
}
|
|
287
|
-
</mat-tab-group>
|
|
288
|
-
`, styles: [".error-step{color:#d32f2f!important}\n"] }]
|
|
289
|
-
}], propDecorators: { tabGroup: [{
|
|
290
|
-
type: ViewChild,
|
|
291
|
-
args: ['tabGroup']
|
|
292
|
-
}] } });
|
|
293
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFicy50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Zvcm0tbGliL3NyYy9saWIvdHlwZXMvdGFicy50eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQVUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JFLE9BQU8sRUFBYSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFrQyxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekMsT0FBTyxFQUFFLFNBQVMsRUFBc0MsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7Ozs7Ozs7QUFnR3RELE1BQU0sT0FBTyx3QkFBeUIsU0FBUSxTQUEwQjtJQTlGeEU7O1FBaUdFLFdBQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFHeEIsa0JBQWEsR0FBRyxLQUFLLENBQUM7UUFDdEIsWUFBTyxHQUFZLEtBQUssQ0FBQztLQTZHMUI7SUEzR0MsT0FBTyxDQUFDLFFBQXFCO1FBQzNCLElBQUksUUFBUSxJQUFJLFFBQVEsQ0FBQyxhQUFhLElBQUksSUFBSSxFQUFFLENBQUM7WUFDL0MsTUFBTSxZQUFZLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQztZQUM1QyxJQUFJLFlBQVksR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsTUFBTSxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUNyRCxRQUFRLENBQUMsYUFBYSxHQUFHLFlBQVksR0FBRyxDQUFDLENBQUM7WUFDNUMsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsV0FBVyxDQUFDLFFBQXFCO1FBQy9CLElBQUksUUFBUSxJQUFJLFFBQVEsQ0FBQyxhQUFhLElBQUksSUFBSSxFQUFFLENBQUM7WUFDL0MsTUFBTSxZQUFZLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQztZQUM1QyxJQUFJLFlBQVksR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDckIsUUFBUSxDQUFDLGFBQWEsR0FBRyxZQUFZLEdBQUcsQ0FBQyxDQUFDO1lBQzVDLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVELFVBQVUsQ0FBQyxRQUFxQjtRQUM5QixPQUFPLFFBQVEsSUFBSSxRQUFRLENBQUMsYUFBYSxLQUFLLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQsU0FBUyxDQUFDLFFBQXFCO1FBQzdCLE9BQU8sUUFBUSxJQUFJLFFBQVEsQ0FBQyxhQUFhLEtBQUssQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLE1BQU0sSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDbEYsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQztRQUNyRSxJQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUMsd0JBQXdCLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUN4RCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUMsd0JBQXdCLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLE1BQU0sSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLFVBQVUsQ0FBQztRQUN2SyxDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU8sQ0FBQyxLQUFVO1FBQ2hCLElBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ2QsSUFBRyxLQUFLLENBQUMsS0FBSyxFQUFFLGlCQUFpQixFQUFFLENBQUM7Z0JBQ2xDLElBQUcsS0FBSyxDQUFDLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxDQUFDO29CQUNqQyxPQUFPLEtBQUssQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQTtnQkFDekYsQ0FBQztxQkFBTSxDQUFDO29CQUNOLE9BQU8sSUFBSSxDQUFDO2dCQUNkLENBQUM7WUFDSCxDQUFDO1lBRUQsSUFBRyxLQUFLLENBQUMsS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sRUFBRSxDQUFDO2dCQUMxQyxPQUFPLEtBQUssQ0FBQyxLQUFLLEVBQUUsaUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQUMsUUFBYSxFQUFFLEVBQUU7b0JBQzVELElBQUksS0FBSyxHQUFHLElBQUksQ0FBQztvQkFDakIsSUFBRyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDO3dCQUN6RSxLQUFLLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQzVFLENBQUM7eUJBQU0sQ0FBQzt3QkFDTixLQUFLLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO29CQUNuRixDQUFDO29CQUNELE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO2dCQUNuRCxDQUFDLENBQUMsQ0FBQztZQUNMLENBQUM7WUFDRCxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxJQUFJLEtBQUssQ0FBQztRQUM1QyxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUcsS0FBSyxDQUFDLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxDQUFDO2dCQUNsQyxJQUFHLEtBQUssQ0FBQyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQztvQkFDakMsT0FBTyxLQUFLLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLGdCQUFnQixDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUE7Z0JBQ3pGLENBQUM7cUJBQU0sQ0FBQztvQkFDTixPQUFPLElBQUksQ0FBQztnQkFDZCxDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7UUFFRCxPQUFPLEtBQUssQ0FBQyxVQUFVO1lBQ3JCLENBQUMsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQU0sRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNyRCxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ1gsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUF3QjtRQUNsQyxJQUFJLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDO1lBQ2xELElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUMsV0FBVyxDQUFDLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyRCxDQUFDO0lBQ0gsQ0FBQztJQUVELGdCQUFnQixDQUFDLFFBQXFCO1FBQ3BDLElBQUksSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUM7WUFDbkQsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQyxZQUFZLENBQUMsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pELENBQUM7SUFDSCxDQUFDO0lBRUQsaUJBQWlCO1FBQ2YsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQztZQUN6QyxPQUFPLHNDQUFzQyxDQUFDO1FBQ2hELENBQUM7UUFDRCxPQUFPLGdDQUFnQyxDQUFDO0lBQzFDLENBQUM7SUFFRCx3QkFBd0IsQ0FBQyxHQUFRO1FBQy9CLElBQUksY0FBYyxHQUFHLFNBQVMsQ0FBQztRQUMvQixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxtQkFBbUIsRUFBRSxDQUFDO1lBQ3RFLGNBQWMsR0FBRyxTQUFTLENBQUM7UUFDN0IsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDckcsY0FBYyxHQUFHLFNBQVMsQ0FBQTtRQUM1QixDQUFDO1FBQ0QsT0FBTyxjQUFjLENBQUM7SUFDeEIsQ0FBQztJQUVELGdCQUFnQixDQUFDLElBQVM7UUFDeEIsSUFBSSxZQUFZLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDdEcsWUFBWSxHQUFHLElBQUksQ0FBQztRQUN0QixDQUFDO1FBQ0QsT0FBTyxZQUFZLENBQUM7SUFDdEIsQ0FBQzsrR0FuSFUsd0JBQXdCO21HQUF4Qix3QkFBd0IsNk1BakZ6Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EwRVQsK0dBbkZDLGFBQWEscXVCQUNiLG1CQUFtQiw4QkFDbkIsWUFBWSx3SEFDWixlQUFlLDJOQUNmLFlBQVksdU5BQ1osZUFBZSwyRkFDZixhQUFhLG1MQUNiLGdCQUFnQjs7NEZBbUZQLHdCQUF3QjtrQkE5RnBDLFNBQVM7K0JBQ0Usc0JBQXNCLGNBQ3BCLElBQUksV0FDUDt3QkFDUCxhQUFhO3dCQUNiLG1CQUFtQjt3QkFDbkIsWUFBWTt3QkFDWixlQUFlO3dCQUNmLFlBQVk7d0JBQ1osZUFBZTt3QkFDZixhQUFhO3dCQUNiLGdCQUFnQjtxQkFDakIsWUFDUzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EwRVQ7OEJBWXNCLFFBQVE7c0JBQTlCLFNBQVM7dUJBQUMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIGluamVjdCwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Hcm91cCwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBNYXRUYWJDaGFuZ2VFdmVudCwgTWF0VGFiR3JvdXAsIE1hdFRhYnNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJzJztcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBGaWVsZFR5cGUsIEZpZWxkVHlwZUNvbmZpZywgRm9ybWx5RmllbGRDb25maWcgfSBmcm9tICdAbmd4LWZvcm1seS9jb3JlJztcbmltcG9ydCB7IEZvcm1seU1vZHVsZSB9IGZyb20gJ0BuZ3gtZm9ybWx5L2NvcmUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ211LWZvcm1seS1maWVsZC10YWJzJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIE1hdFRhYnNNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBGb3JtbHlNb2R1bGUsXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgIENvbW1vbk1vZHVsZSxcbiAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgTWF0SWNvbk1vZHVsZSxcbiAgICBNYXRUb29sdGlwTW9kdWxlXG4gIF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPG1hdC10YWItZ3JvdXAgICN0YWJHcm91cCAoc2VsZWN0ZWRUYWJDaGFuZ2UpPVwib25UYWJDaGFuZ2UoJGV2ZW50KVwiPlxuICAgICAgQGZvcih0YWIgb2YgZmllbGQuZmllbGRHcm91cDsgdHJhY2sgdGFiOyBsZXQgaSA9ICRpbmRleDsgbGV0IGxhc3QgPVxuICAgICAgJGxhc3Qpe1xuICAgICAgPG1hdC10YWJcbiAgICAgICAgW2Rpc2FibGVkXT1cIlxuICAgICAgICAgIGkgIT09IDAgJiYgIWlzVmFsaWQoZmllbGQuZmllbGRHcm91cCA/IGZpZWxkLmZpZWxkR3JvdXBbaSAtIDFdIDoge30pICYmIHRhYj8ucHJvcHM/LlsnZGlzYWJsZVRhYnMnXSAmJiB0aGlzLnNob3dTdWJtaXRCdG5cbiAgICAgICAgXCJcbiAgICAgICAgKm5nSWY9XCIhdGFiPy5wcm9wcz8uWydoaWRlVGFiJ11cIlxuICAgICAgPlxuICAgICAgICA8bmctdGVtcGxhdGUgbWF0LXRhYi1sYWJlbD5cbiAgICAgICAgICA8c3BhbiBbbmdTdHlsZV09XCJ7J2NvbG9yJzogKCFpc1ZhbGlkKGZpZWxkLmZpZWxkR3JvdXAgPyBmaWVsZC5maWVsZEdyb3VwW2ldIDoge30pICYmIG9wdGlvbnMuZm9ybVN0YXRlPy5zaG93VmFsaWRhdGlvbkVycm9yKSA/ICdyZWQnIDogJ2JsYWNrJ31cIlxuICAgICAgICAgICAgW25nU3R5bGVdPVwieydjb2xvcic6IGdldENvbG9yRm9yVGhlVGFiQ2hhbmdlZCh0YWIpfVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge3sgdGFiPy5wcm9wcz8ubGFiZWwgfHwgJycgfX1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPG1hdC1pY29uIG1hdFRvb2x0aXA9XCJ7eydFRElURURfVEFCJyB8IHRyYW5zbGF0ZX19XCIgKm5nSWY9XCJpc1RhYkRhdGFDaGFuZ2VkKHRhYikgJiYgISghaXNWYWxpZChmaWVsZC5maWVsZEdyb3VwID8gZmllbGQuZmllbGRHcm91cFtpXSA6IHt9KSAmJiBvcHRpb25zLmZvcm1TdGF0ZT8uc2hvd1ZhbGlkYXRpb25FcnJvcilcIiBbbmdTdHlsZV09XCJ7J2NvbG9yJzogZ2V0Q29sb3JGb3JUaGVUYWJDaGFuZ2VkKHRhYil9XCI+ZWRpdDwvbWF0LWljb24+XG4gICAgICAgICAgPG1hdC1pY29uIG1hdFRvb2x0aXA9XCJ7eydNQU5EQVRPUllfRklFTERTX1RPT0xUSVAnIHwgdHJhbnNsYXRlfX1cIiAqbmdJZj1cIiFpc1ZhbGlkKGZpZWxkLmZpZWxkR3JvdXAgPyBmaWVsZC5maWVsZEdyb3VwW2ldIDoge30pICYmIG9wdGlvbnMuZm9ybVN0YXRlPy5zaG93VmFsaWRhdGlvbkVycm9yXCIgY2xhc3M9XCJlcnJvci1zdGVwXCI+ZXJyb3I8L21hdC1pY29uPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicmVsYXRpdmUgb3ZlcmZsb3cteS1hdXRvIG92ZXJmbG93LXgtaGlkZGVuIGZvcm0tY29udGVudFwiPlxuICAgICAgICA8Zm9ybWx5LWZpZWxkIFtmaWVsZF09XCJ0YWJcIj48L2Zvcm1seS1maWVsZD5cbiAgICAgIDwvZGl2PlxuICAgICAgQGlmKHRhYj8ucHJvcHM/Llsnc2hvd05leHRQcmV2aW91cyddKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJyZWxhdGl2ZSBib3R0b20tMiBmbGV4IGp1c3RpZnktZW5kIG1yLTJcIj5cbiAgICAgICAgICBAaWYoaT09PTAgJiYgZmllbGQucHJvcHNbJ3Nob3dCdG5Gb3JQcmV2aW91c0Zvcm0nXSkge1xuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICBtYXQtZmxhdC1idXR0b25cbiAgICAgICAgICAgICAgY29sb3I9XCJwcmltYXJ5XCJcbiAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJnb1RvUHJldmlvdXNGb3JtKHRhYkdyb3VwKVwiXG4gICAgICAgICAgICAgIGNsYXNzPVwiZmxleCBtci0yIG1sLTIgbXQtNVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHt7ICdCVVRUT04uUFJFVklPVVMnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICB9XG4gICAgICAgICAgQGlmIChpICE9PSAwKSB7XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgbWF0LWZsYXQtYnV0dG9uXG4gICAgICAgICAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cImlzRmlyc3RUYWIodGFiR3JvdXApXCJcbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgKGNsaWNrKT1cInByZXZpb3VzVGFiKHRhYkdyb3VwKVwiXG4gICAgICAgICAgICBjbGFzcz1cImZsZXggbXItMiBtbC0yIG10LTVcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHt7ICdCVVRUT04uUFJFVklPVVMnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgfSBAaWYgKCFsYXN0KSB7XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgbWF0LWZsYXQtYnV0dG9uXG4gICAgICAgICAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiIWlzVmFsaWQodGFiKSAmJiBzaG93U3VibWl0QnRuXCJcbiAgICAgICAgICAgIChjbGljayk9XCJuZXh0VGFiKHRhYkdyb3VwKVwiXG4gICAgICAgICAgICBjbGFzcz1cImZsZXggbXQtNVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgIHt7ICdCVVRUT04uTkVYVCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICB9XG4gICAgICAgICAgQGlmKGxhc3QgJiYgc2hvd1N1Ym1pdEJ0bikge1xuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICBtYXQtZmxhdC1idXR0b25cbiAgICAgICAgICAgICAgY29sb3I9XCJwcmltYXJ5XCJcbiAgICAgICAgICAgICAgdHlwZT1cInN1Ym1pdFwiXG4gICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhZm9ybS52YWxpZFwiXG4gICAgICAgICAgICAgIGNsYXNzPVwiZmxleCBtdC01IHN1Ym1pdC1idG5cIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7eyBmaWVsZC5wcm9wc1snU1VCTUlUX0JUTl9OQU1FJ10gfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG4gICAgICA8L21hdC10YWI+XG4gICAgICB9XG4gICAgPC9tYXQtdGFiLWdyb3VwPlxuICBgLFxuICBzdHlsZXM6IFtgXG4gICAgLmVycm9yLXN0ZXAge1xuICAgICAgY29sb3I6ICNkMzJmMmYgIWltcG9ydGFudDtcbiAgICB9XG4gIGBdXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1seUZpZWxkVGFic0NvbXBvbmVudCBleHRlbmRzIEZpZWxkVHlwZTxGaWVsZFR5cGVDb25maWc+IGltcGxlbWVudHMgT25Jbml0IHtcbiAgc3VibWl0dGVkRGF0YSE6IGFueVtdO1xuXG4gIHJvdXRlciA9IGluamVjdChSb3V0ZXIpO1xuICB1c2VyOiBhbnk7XG4gIEBWaWV3Q2hpbGQoJ3RhYkdyb3VwJykgdGFiR3JvdXAhOiBNYXRUYWJHcm91cDtcbiAgc2hvd1N1Ym1pdEJ0biA9IGZhbHNlO1xuICBoaWRlVGFiOiBib29sZWFuID0gZmFsc2U7XG5cbiAgbmV4dFRhYih0YWJHcm91cDogTWF0VGFiR3JvdXApIHtcbiAgICBpZiAodGFiR3JvdXAgJiYgdGFiR3JvdXAuc2VsZWN0ZWRJbmRleCAhPSBudWxsKSB7XG4gICAgICBjb25zdCBjdXJyZW50SW5kZXggPSB0YWJHcm91cC5zZWxlY3RlZEluZGV4O1xuICAgICAgaWYgKGN1cnJlbnRJbmRleCA8ICh0YWJHcm91cC5fdGFicz8ubGVuZ3RoIHx8IDApIC0gMSkge1xuICAgICAgICB0YWJHcm91cC5zZWxlY3RlZEluZGV4ID0gY3VycmVudEluZGV4ICsgMTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcmV2aW91c1RhYih0YWJHcm91cDogTWF0VGFiR3JvdXApIHtcbiAgICBpZiAodGFiR3JvdXAgJiYgdGFiR3JvdXAuc2VsZWN0ZWRJbmRleCAhPSBudWxsKSB7XG4gICAgICBjb25zdCBjdXJyZW50SW5kZXggPSB0YWJHcm91cC5zZWxlY3RlZEluZGV4O1xuICAgICAgaWYgKGN1cnJlbnRJbmRleCA+IDApIHtcbiAgICAgICAgdGFiR3JvdXAuc2VsZWN0ZWRJbmRleCA9IGN1cnJlbnRJbmRleCAtIDE7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaXNGaXJzdFRhYih0YWJHcm91cDogTWF0VGFiR3JvdXApOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGFiR3JvdXAgJiYgdGFiR3JvdXAuc2VsZWN0ZWRJbmRleCA9PT0gMDtcbiAgfVxuXG4gIGlzTGFzdFRhYih0YWJHcm91cDogTWF0VGFiR3JvdXApOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGFiR3JvdXAgJiYgdGFiR3JvdXAuc2VsZWN0ZWRJbmRleCA9PT0gKHRhYkdyb3VwLl90YWJzPy5sZW5ndGggfHwgMCkgLSAxO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy51c2VyID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnbG9nZ2VkSW5Vc2VyJykgfHwgJ3t9Jyk7XG4gICAgaWYodGhpcy5maWVsZC5wcm9wcz8uWydzaG93U3VibWl0QnRuRm9yU3RhdHVzJ10/Lmxlbmd0aCkge1xuICAgICAgdGhpcy5zaG93U3VibWl0QnRuID0gdGhpcy5maWVsZC5wcm9wcz8uWydzaG93U3VibWl0QnRuRm9yU3RhdHVzJ10uZmluZCgocm9sZTogYW55KSA9PiB0aGlzLm9wdGlvbnMuZm9ybVN0YXRlPy5zdGF0dXMgPT0gcm9sZSkgJiYgIXRoaXMub3B0aW9ucy5mb3JtU3RhdGU/LmlzUmVhZG9ubHk7XG4gICAgfVxuICB9XG5cbiAgaXNWYWxpZChmaWVsZDogYW55KTogYm9vbGVhbiB7XG4gICAgaWYgKGZpZWxkLmtleSkge1xuICAgICAgaWYoZmllbGQucHJvcHM/LmV4Y2x1ZGVWYWxpZGF0aW9uKSB7XG4gICAgICAgIGlmKGZpZWxkLnByb3BzPy5taW5Sb3dWYWxpZGF0aW9uKSB7XG4gICAgICAgICAgcmV0dXJuIGZpZWxkLmZvcm1Db250cm9sLnZhbHVlW2ZpZWxkLnByb3BzPy5taW5Sb3dWYWxpZGF0aW9uXS5sZW5ndGggPiAwID8gdHJ1ZSA6IGZhbHNlXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYoZmllbGQucHJvcHM/LnVwbG9hZFZhbGlkYXRpb25zPy5sZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIGZpZWxkLnByb3BzPy51cGxvYWRWYWxpZGF0aW9ucy5ldmVyeSgodXBsRmllbGQ6IGFueSkgPT4ge1xuICAgICAgICAgIGxldCB2YWxpZCA9IHRydWU7XG4gICAgICAgICAgaWYoQXJyYXkuaXNBcnJheShmaWVsZC5tb2RlbFt1cGxGaWVsZF0pICYmIGZpZWxkLm1vZGVsW3VwbEZpZWxkXT8ubGVuZ3RoKSB7XG4gICAgICAgICAgICB2YWxpZCA9IGZpZWxkLm1vZGVsW3VwbEZpZWxkXT8uZXZlcnkoZiA9PiBmLmZpbGVOYW1lID8gISFmLm5vZGVJZCA6IHRydWUpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB2YWxpZCA9IGZpZWxkLm1vZGVsW3VwbEZpZWxkXT8uZmlsZU5hbWUgPyAhIWZpZWxkLm1vZGVsW3VwbEZpZWxkXT8ubm9kZUlkIDogdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHZhbGlkID8gZmllbGQ/LmZvcm1Db250cm9sPy52YWxpZCA6IGZhbHNlO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBmaWVsZD8uZm9ybUNvbnRyb2w/LnZhbGlkIHx8IGZhbHNlO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZihmaWVsZC5wcm9wcz8uZXhjbHVkZVZhbGlkYXRpb24pIHtcbiAgICAgICAgaWYoZmllbGQucHJvcHM/Lm1pblJvd1ZhbGlkYXRpb24pIHtcbiAgICAgICAgICByZXR1cm4gZmllbGQuZm9ybUNvbnRyb2wudmFsdWVbZmllbGQucHJvcHM/Lm1pblJvd1ZhbGlkYXRpb25dLmxlbmd0aCA+IDAgPyB0cnVlIDogZmFsc2VcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBmaWVsZC5maWVsZEdyb3VwXG4gICAgICA/IGZpZWxkLmZpZWxkR3JvdXAuZXZlcnkoKGY6IGFueSkgPT4gdGhpcy5pc1ZhbGlkKGYpKVxuICAgICAgOiB0cnVlO1xuICB9XG5cbiAgb25UYWJDaGFuZ2UoZXZlbnQ6IE1hdFRhYkNoYW5nZUV2ZW50KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZmllbGQgJiYgdGhpcy5maWVsZC5wcm9wcz8uWyd0YWJDaGFuZ2UnXSkge1xuICAgICAgdGhpcy5maWVsZC5wcm9wcz8uWyd0YWJDaGFuZ2UnXShldmVudCwgdGhpcy5maWVsZCk7XG4gICAgfVxuICB9XG5cbiAgZ29Ub1ByZXZpb3VzRm9ybSh0YWJHcm91cDogTWF0VGFiR3JvdXApIHtcbiAgICBpZiAodGhpcy5maWVsZCAmJiB0aGlzLmZpZWxkLnByb3BzPy5bJ2Zvcm1DaGFuZ2UnXSkge1xuICAgICAgdGhpcy5maWVsZC5wcm9wcz8uWydmb3JtQ2hhbmdlJ10odGFiR3JvdXAsIHRoaXMuZmllbGQpO1xuICAgIH1cbiAgfVxuXG4gIGdldFRhYkhlaWdodENsYXNzKCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMuZmllbGQucHJvcHM/LlsnYXBwbHlPbGRIZWlnaHQnXSkge1xuICAgICAgcmV0dXJuICcyeGw6aC1bNjF2aF0geGw6aC1bNjB2aF0gbWQ6aC1bNTZ2aF0nO1xuICAgIH1cbiAgICByZXR1cm4gJzJ4bDpoLWF1dG8geGw6aC1hdXRvIG1kOmgtYXV0byc7XG4gIH1cblxuICBnZXRDb2xvckZvclRoZVRhYkNoYW5nZWQodGFiOiBhbnkpIHtcbiAgICBsZXQgdGFiRWRpdGVkQ29sb3IgPSAnIzAwMDAwMCc7XG4gICAgaWYgKCF0aGlzLmlzVmFsaWQodGFiKSAmJiB0aGlzLm9wdGlvbnMuZm9ybVN0YXRlPy5zaG93VmFsaWRhdGlvbkVycm9yKSB7XG4gICAgICB0YWJFZGl0ZWRDb2xvciA9ICcjZmYwMDAwJztcbiAgICB9XG4gICAgaWYgKHRoaXMub3B0aW9ucz8uZm9ybVN0YXRlPy5lZGl0ZWRUYWJzU3RhdHVzICYmIHRoaXMub3B0aW9ucz8uZm9ybVN0YXRlPy5lZGl0ZWRUYWJzU3RhdHVzW3RhYj8ua2V5XSkge1xuICAgICAgdGFiRWRpdGVkQ29sb3IgPSAnI2ZmMDAwMCdcbiAgICB9XG4gICAgcmV0dXJuIHRhYkVkaXRlZENvbG9yO1xuICB9XG5cbiAgaXNUYWJEYXRhQ2hhbmdlZChzdGVwOiBhbnkpOiBib29sZWFuIHtcbiAgICBsZXQgaXNUYWJDaGFuZ2VkID0gZmFsc2U7XG4gICAgaWYgKHRoaXMub3B0aW9ucz8uZm9ybVN0YXRlPy5lZGl0ZWRUYWJzU3RhdHVzICYmIHRoaXMub3B0aW9ucz8uZm9ybVN0YXRlPy5lZGl0ZWRUYWJzU3RhdHVzW3N0ZXA/LmtleV0pIHtcbiAgICAgIGlzVGFiQ2hhbmdlZCA9IHRydWU7XG4gICAgfVxuICAgIHJldHVybiBpc1RhYkNoYW5nZWQ7XG4gIH1cbn1cbiJdfQ==
|