@muraai/mnl-form 0.0.1-alpha-db495b1 → 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/fesm2022/muraai-mnl-form.mjs +150 -143
- package/fesm2022/muraai-mnl-form.mjs.map +1 -1
- 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/esm2022/lib/confirmation-dialog/confirmation-dialog.component.mjs +0 -34
- package/esm2022/lib/mnl-form/mnl-form-standalone.module.mjs +0 -155
- package/esm2022/lib/mnl-form/mnl-form.component.mjs +0 -199
- 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
|
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFicy50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZm9ybS9zcmMvbGliL3R5cGVzL3RhYnMudHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFVLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRSxPQUFPLEVBQWEsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBa0MsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxTQUFTLEVBQXNDLE1BQU0sa0JBQWtCLENBQUM7QUFDakYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7Ozs7O0FBZ0d0RCxNQUFNLE9BQU8sd0JBQXlCLFNBQVEsU0FBMEI7SUE5RnhFOztRQWlHRSxXQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBR3hCLGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLFlBQU8sR0FBWSxLQUFLLENBQUM7S0E2RzFCO0lBM0dDLE9BQU8sQ0FBQyxRQUFxQjtRQUMzQixJQUFJLFFBQVEsSUFBSSxRQUFRLENBQUMsYUFBYSxJQUFJLElBQUksRUFBRSxDQUFDO1lBQy9DLE1BQU0sWUFBWSxHQUFHLFFBQVEsQ0FB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R0FBRyxTQUFTLENBQUE7UUFDNUIsQ0FBQztRQUNELE9BQU8sY0FBYyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxJQUFTO1FBQ3hCLElBQUksWUFBWSxHQUFHLEtBQUssQ0FBQztRQUN6QixJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3RHLFlBQVksR0FBRyxJQUFJLENBQUM7UUFDdEIsQ0FBQztRQUNELE9BQU8sWUFBWSxDQUFDO0lBQ3RCLENBQUM7K0dBbkhVLHdCQUF3QjttR0FBeEIsd0JBQXdCLDZNQWpGekI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMEVULCtHQW5GQyxhQUFhLHF1QkFDYixtQkFBbUIsOEJBQ25CLFlBQVksd0hBQ1osZUFBZSwyTkFDZixZQUFZLHVOQUNaLGVBQWUsMkZBQ2YsYUFBYSxtTEFDYixnQkFBZ0I7OzRGQW1GUCx3QkFBd0I7a0JBOUZwQyxTQUFTOytCQUNFLHNCQUFzQixjQUNwQixJQUFJLFdBQ1A7d0JBQ1AsYUFBYTt3QkFDYixtQkFBbUI7d0JBQ25CLFlBQVk7d0JBQ1osZUFBZTt3QkFDZixZQUFZO3dCQUNaLGVBQWU7d0JBQ2YsYUFBYTt3QkFDYixnQkFBZ0I7cUJBQ2pCLFlBQ1M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMEVUOzhCQVlzQixRQUFRO3NCQUE5QixTQUFTO3VCQUFDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBpbmplY3QsIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtR3JvdXAsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0VGFiQ2hhbmdlRXZlbnQsIE1hdFRhYkdyb3VwLCBNYXRUYWJzTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdGFicyc7XG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgRmllbGRUeXBlLCBGaWVsZFR5cGVDb25maWcsIEZvcm1seUZpZWxkQ29uZmlnIH0gZnJvbSAnQG5neC1mb3JtbHkvY29yZSc7XG5pbXBvcnQgeyBGb3JtbHlNb2R1bGUgfSBmcm9tICdAbmd4LWZvcm1seS9jb3JlJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtdS1mb3JtbHktZmllbGQtdGFicycsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBNYXRUYWJzTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgRm9ybWx5TW9kdWxlLFxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxuICAgIE1hdEljb25Nb2R1bGUsXG4gICAgTWF0VG9vbHRpcE1vZHVsZVxuICBdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxtYXQtdGFiLWdyb3VwICAjdGFiR3JvdXAgKHNlbGVjdGVkVGFiQ2hhbmdlKT1cIm9uVGFiQ2hhbmdlKCRldmVudClcIj5cbiAgICAgIEBmb3IodGFiIG9mIGZpZWxkLmZpZWxkR3JvdXA7IHRyYWNrIHRhYjsgbGV0IGkgPSAkaW5kZXg7IGxldCBsYXN0ID1cbiAgICAgICRsYXN0KXtcbiAgICAgIDxtYXQtdGFiXG4gICAgICAgIFtkaXNhYmxlZF09XCJcbiAgICAgICAgICBpICE9PSAwICYmICFpc1ZhbGlkKGZpZWxkLmZpZWxkR3JvdXAgPyBmaWVsZC5maWVsZEdyb3VwW2kgLSAxXSA6IHt9KSAmJiB0YWI/LnByb3BzPy5bJ2Rpc2FibGVUYWJzJ10gJiYgdGhpcy5zaG93U3VibWl0QnRuXG4gICAgICAgIFwiXG4gICAgICAgICpuZ0lmPVwiIXRhYj8ucHJvcHM/LlsnaGlkZVRhYiddXCJcbiAgICAgID5cbiAgICAgICAgPG5nLXRlbXBsYXRlIG1hdC10YWItbGFiZWw+XG4gICAgICAgICAgPHNwYW4gW25nU3R5bGVdPVwieydjb2xvcic6ICghaXNWYWxpZChmaWVsZC5maWVsZEdyb3VwID8gZmllbGQuZmllbGRHcm91cFtpXSA6IHt9KSAmJiBvcHRpb25zLmZvcm1TdGF0ZT8uc2hvd1ZhbGlkYXRpb25FcnJvcikgPyAncmVkJyA6ICdibGFjayd9XCJcbiAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsnY29sb3InOiBnZXRDb2xvckZvclRoZVRhYkNoYW5nZWQodGFiKX1cIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHt7IHRhYj8ucHJvcHM/LmxhYmVsIHx8ICcnIH19XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDxtYXQtaWNvbiBtYXRUb29sdGlwPVwie3snRURJVEVEX1RBQicgfCB0cmFuc2xhdGV9fVwiICpuZ0lmPVwiaXNUYWJEYXRhQ2hhbmdlZCh0YWIpICYmICEoIWlzVmFsaWQoZmllbGQuZmllbGRHcm91cCA/IGZpZWxkLmZpZWxkR3JvdXBbaV0gOiB7fSkgJiYgb3B0aW9ucy5mb3JtU3RhdGU/LnNob3dWYWxpZGF0aW9uRXJyb3IpXCIgW25nU3R5bGVdPVwieydjb2xvcic6IGdldENvbG9yRm9yVGhlVGFiQ2hhbmdlZCh0YWIpfVwiPmVkaXQ8L21hdC1pY29uPlxuICAgICAgICAgIDxtYXQtaWNvbiBtYXRUb29sdGlwPVwie3snTUFOREFUT1JZX0ZJRUxEU19UT09MVElQJyB8IHRyYW5zbGF0ZX19XCIgKm5nSWY9XCIhaXNWYWxpZChmaWVsZC5maWVsZEdyb3VwID8gZmllbGQuZmllbGRHcm91cFtpXSA6IHt9KSAmJiBvcHRpb25zLmZvcm1TdGF0ZT8uc2hvd1ZhbGlkYXRpb25FcnJvclwiIGNsYXNzPVwiZXJyb3Itc3RlcFwiPmVycm9yPC9tYXQtaWNvbj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPGRpdiBjbGFzcz1cInJlbGF0aXZlIG92ZXJmbG93LXktYXV0byBvdmVyZmxvdy14LWhpZGRlbiBmb3JtLWNvbnRlbnRcIj5cbiAgICAgICAgPGZvcm1seS1maWVsZCBbZmllbGRdPVwidGFiXCI+PC9mb3JtbHktZmllbGQ+XG4gICAgICA8L2Rpdj5cbiAgICAgIEBpZih0YWI/LnByb3BzPy5bJ3Nob3dOZXh0UHJldmlvdXMnXSkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwicmVsYXRpdmUgYm90dG9tLTIgZmxleCBqdXN0aWZ5LWVuZCBtci0yXCI+XG4gICAgICAgICAgQGlmKGk9PT0wICYmIGZpZWxkLnByb3BzWydzaG93QnRuRm9yUHJldmlvdXNGb3JtJ10pIHtcbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgbWF0LWZsYXQtYnV0dG9uXG4gICAgICAgICAgICAgIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiZ29Ub1ByZXZpb3VzRm9ybSh0YWJHcm91cClcIlxuICAgICAgICAgICAgICBjbGFzcz1cImZsZXggbXItMiBtbC0yIG10LTVcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7eyAnQlVUVE9OLlBSRVZJT1VTJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgfVxuICAgICAgICAgIEBpZiAoaSAhPT0gMCkge1xuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIG1hdC1mbGF0LWJ1dHRvblxuICAgICAgICAgICAgY29sb3I9XCJwcmltYXJ5XCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJpc0ZpcnN0VGFiKHRhYkdyb3VwKVwiXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIChjbGljayk9XCJwcmV2aW91c1RhYih0YWJHcm91cClcIlxuICAgICAgICAgICAgY2xhc3M9XCJmbGV4IG1yLTIgbWwtMiBtdC01XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7eyAnQlVUVE9OLlBSRVZJT1VTJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIH0gQGlmICghbGFzdCkge1xuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIG1hdC1mbGF0LWJ1dHRvblxuICAgICAgICAgICAgY29sb3I9XCJwcmltYXJ5XCJcbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFpc1ZhbGlkKHRhYikgJiYgc2hvd1N1Ym1pdEJ0blwiXG4gICAgICAgICAgICAoY2xpY2spPVwibmV4dFRhYih0YWJHcm91cClcIlxuICAgICAgICAgICAgY2xhc3M9XCJmbGV4IG10LTVcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgICB7eyAnQlVUVE9OLk5FWFQnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgfVxuICAgICAgICAgIEBpZihsYXN0ICYmIHNob3dTdWJtaXRCdG4pIHtcbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgbWF0LWZsYXQtYnV0dG9uXG4gICAgICAgICAgICAgIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgICAgICAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIWZvcm0udmFsaWRcIlxuICAgICAgICAgICAgICBjbGFzcz1cImZsZXggbXQtNSBzdWJtaXQtYnRuXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge3sgZmllbGQucHJvcHNbJ1NVQk1JVF9CVE5fTkFNRSddIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgICAgPC9tYXQtdGFiPlxuICAgICAgfVxuICAgIDwvbWF0LXRhYi1ncm91cD5cbiAgYCxcbiAgc3R5bGVzOiBbYFxuICAgIC5lcnJvci1zdGVwIHtcbiAgICAgIGNvbG9yOiAjZDMyZjJmICFpbXBvcnRhbnQ7XG4gICAgfVxuICBgXVxufSlcbmV4cG9ydCBjbGFzcyBGb3JtbHlGaWVsZFRhYnNDb21wb25lbnQgZXh0ZW5kcyBGaWVsZFR5cGU8RmllbGRUeXBlQ29uZmlnPiBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHN1Ym1pdHRlZERhdGEhOiBhbnlbXTtcblxuICByb3V0ZXIgPSBpbmplY3QoUm91dGVyKTtcbiAgdXNlcjogYW55O1xuICBAVmlld0NoaWxkKCd0YWJHcm91cCcpIHRhYkdyb3VwITogTWF0VGFiR3JvdXA7XG4gIHNob3dTdWJtaXRCdG4gPSBmYWxzZTtcbiAgaGlkZVRhYjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIG5leHRUYWIodGFiR3JvdXA6IE1hdFRhYkdyb3VwKSB7XG4gICAgaWYgKHRhYkdyb3VwICYmIHRhYkdyb3VwLnNlbGVjdGVkSW5kZXggIT0gbnVsbCkge1xuICAgICAgY29uc3QgY3VycmVudEluZGV4ID0gdGFiR3JvdXAuc2VsZWN0ZWRJbmRleDtcbiAgICAgIGlmIChjdXJyZW50SW5kZXggPCAodGFiR3JvdXAuX3RhYnM/Lmxlbmd0aCB8fCAwKSAtIDEpIHtcbiAgICAgICAgdGFiR3JvdXAuc2VsZWN0ZWRJbmRleCA9IGN1cnJlbnRJbmRleCArIDE7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJldmlvdXNUYWIodGFiR3JvdXA6IE1hdFRhYkdyb3VwKSB7XG4gICAgaWYgKHRhYkdyb3VwICYmIHRhYkdyb3VwLnNlbGVjdGVkSW5kZXggIT0gbnVsbCkge1xuICAgICAgY29uc3QgY3VycmVudEluZGV4ID0gdGFiR3JvdXAuc2VsZWN0ZWRJbmRleDtcbiAgICAgIGlmIChjdXJyZW50SW5kZXggPiAwKSB7XG4gICAgICAgIHRhYkdyb3VwLnNlbGVjdGVkSW5kZXggPSBjdXJyZW50SW5kZXggLSAxO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGlzRmlyc3RUYWIodGFiR3JvdXA6IE1hdFRhYkdyb3VwKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRhYkdyb3VwICYmIHRhYkdyb3VwLnNlbGVjdGVkSW5kZXggPT09IDA7XG4gIH1cblxuICBpc0xhc3RUYWIodGFiR3JvdXA6IE1hdFRhYkdyb3VwKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRhYkdyb3VwICYmIHRhYkdyb3VwLnNlbGVjdGVkSW5kZXggPT09ICh0YWJHcm91cC5fdGFicz8ubGVuZ3RoIHx8IDApIC0gMTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMudXNlciA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2xvZ2dlZEluVXNlcicpIHx8ICd7fScpO1xuICAgIGlmKHRoaXMuZmllbGQucHJvcHM/Llsnc2hvd1N1Ym1pdEJ0bkZvclN0YXR1cyddPy5sZW5ndGgpIHtcbiAgICAgIHRoaXMuc2hvd1N1Ym1pdEJ0biA9IHRoaXMuZmllbGQucHJvcHM/Llsnc2hvd1N1Ym1pdEJ0bkZvclN0YXR1cyddLmZpbmQoKHJvbGU6IGFueSkgPT4gdGhpcy5vcHRpb25zLmZvcm1TdGF0ZT8uc3RhdHVzID09IHJvbGUpICYmICF0aGlzLm9wdGlvbnMuZm9ybVN0YXRlPy5pc1JlYWRvbmx5O1xuICAgIH1cbiAgfVxuXG4gIGlzVmFsaWQoZmllbGQ6IGFueSk6IGJvb2xlYW4ge1xuICAgIGlmIChmaWVsZC5rZXkpIHtcbiAgICAgIGlmKGZpZWxkLnByb3BzPy5leGNsdWRlVmFsaWRhdGlvbikge1xuICAgICAgICBpZihmaWVsZC5wcm9wcz8ubWluUm93VmFsaWRhdGlvbikge1xuICAgICAgICAgIHJldHVybiBmaWVsZC5mb3JtQ29udHJvbC52YWx1ZVtmaWVsZC5wcm9wcz8ubWluUm93VmFsaWRhdGlvbl0ubGVuZ3RoID4gMCA/IHRydWUgOiBmYWxzZVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmKGZpZWxkLnByb3BzPy51cGxvYWRWYWxpZGF0aW9ucz8ubGVuZ3RoKSB7XG4gICAgICAgIHJldHVybiBmaWVsZC5wcm9wcz8udXBsb2FkVmFsaWRhdGlvbnMuZXZlcnkoKHVwbEZpZWxkOiBhbnkpID0+IHtcbiAgICAgICAgICBsZXQgdmFsaWQgPSB0cnVlO1xuICAgICAgICAgIGlmKEFycmF5LmlzQXJyYXkoZmllbGQubW9kZWxbdXBsRmllbGRdKSAmJiBmaWVsZC5tb2RlbFt1cGxGaWVsZF0/Lmxlbmd0aCkge1xuICAgICAgICAgICAgdmFsaWQgPSBmaWVsZC5tb2RlbFt1cGxGaWVsZF0/LmV2ZXJ5KGYgPT4gZi5maWxlTmFtZSA/ICEhZi5ub2RlSWQgOiB0cnVlKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdmFsaWQgPSBmaWVsZC5tb2RlbFt1cGxGaWVsZF0/LmZpbGVOYW1lID8gISFmaWVsZC5tb2RlbFt1cGxGaWVsZF0/Lm5vZGVJZCA6IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiB2YWxpZCA/IGZpZWxkPy5mb3JtQ29udHJvbD8udmFsaWQgOiBmYWxzZTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gZmllbGQ/LmZvcm1Db250cm9sPy52YWxpZCB8fCBmYWxzZTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYoZmllbGQucHJvcHM/LmV4Y2x1ZGVWYWxpZGF0aW9uKSB7XG4gICAgICAgIGlmKGZpZWxkLnByb3BzPy5taW5Sb3dWYWxpZGF0aW9uKSB7XG4gICAgICAgICAgcmV0dXJuIGZpZWxkLmZvcm1Db250cm9sLnZhbHVlW2ZpZWxkLnByb3BzPy5taW5Sb3dWYWxpZGF0aW9uXS5sZW5ndGggPiAwID8gdHJ1ZSA6IGZhbHNlXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZmllbGQuZmllbGRHcm91cFxuICAgICAgPyBmaWVsZC5maWVsZEdyb3VwLmV2ZXJ5KChmOiBhbnkpID0+IHRoaXMuaXNWYWxpZChmKSlcbiAgICAgIDogdHJ1ZTtcbiAgfVxuXG4gIG9uVGFiQ2hhbmdlKGV2ZW50OiBNYXRUYWJDaGFuZ2VFdmVudCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmZpZWxkICYmIHRoaXMuZmllbGQucHJvcHM/LlsndGFiQ2hhbmdlJ10pIHtcbiAgICAgIHRoaXMuZmllbGQucHJvcHM/LlsndGFiQ2hhbmdlJ10oZXZlbnQsIHRoaXMuZmllbGQpO1xuICAgIH1cbiAgfVxuXG4gIGdvVG9QcmV2aW91c0Zvcm0odGFiR3JvdXA6IE1hdFRhYkdyb3VwKSB7XG4gICAgaWYgKHRoaXMuZmllbGQgJiYgdGhpcy5maWVsZC5wcm9wcz8uWydmb3JtQ2hhbmdlJ10pIHtcbiAgICAgIHRoaXMuZmllbGQucHJvcHM/LlsnZm9ybUNoYW5nZSddKHRhYkdyb3VwLCB0aGlzLmZpZWxkKTtcbiAgICB9XG4gIH1cblxuICBnZXRUYWJIZWlnaHRDbGFzcygpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLmZpZWxkLnByb3BzPy5bJ2FwcGx5T2xkSGVpZ2h0J10pIHtcbiAgICAgIHJldHVybiAnMnhsOmgtWzYxdmhdIHhsOmgtWzYwdmhdIG1kOmgtWzU2dmhdJztcbiAgICB9XG4gICAgcmV0dXJuICcyeGw6aC1hdXRvIHhsOmgtYXV0byBtZDpoLWF1dG8nO1xuICB9XG5cbiAgZ2V0Q29sb3JGb3JUaGVUYWJDaGFuZ2VkKHRhYjogYW55KSB7XG4gICAgbGV0IHRhYkVkaXRlZENvbG9yID0gJyMwMDAwMDAnO1xuICAgIGlmICghdGhpcy5pc1ZhbGlkKHRhYikgJiYgdGhpcy5vcHRpb25zLmZvcm1TdGF0ZT8uc2hvd1ZhbGlkYXRpb25FcnJvcikge1xuICAgICAgdGFiRWRpdGVkQ29sb3IgPSAnI2ZmMDAwMCc7XG4gICAgfVxuICAgIGlmICh0aGlzLm9wdGlvbnM/LmZvcm1TdGF0ZT8uZWRpdGVkVGFic1N0YXR1cyAmJiB0aGlzLm9wdGlvbnM/LmZvcm1TdGF0ZT8uZWRpdGVkVGFic1N0YXR1c1t0YWI/LmtleV0pIHtcbiAgICAgIHRhYkVkaXRlZENvbG9yID0gJyNmZjAwMDAnXG4gICAgfVxuICAgIHJldHVybiB0YWJFZGl0ZWRDb2xvcjtcbiAgfVxuXG4gIGlzVGFiRGF0YUNoYW5nZWQoc3RlcDogYW55KTogYm9vbGVhbiB7XG4gICAgbGV0IGlzVGFiQ2hhbmdlZCA9IGZhbHNlO1xuICAgIGlmICh0aGlzLm9wdGlvbnM/LmZvcm1TdGF0ZT8uZWRpdGVkVGFic1N0YXR1cyAmJiB0aGlzLm9wdGlvbnM/LmZvcm1TdGF0ZT8uZWRpdGVkVGFic1N0YXR1c1tzdGVwPy5rZXldKSB7XG4gICAgICBpc1RhYkNoYW5nZWQgPSB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gaXNUYWJDaGFuZ2VkO1xuICB9XG59XG4iXX0=
|