@qbs-origin/origin-form 0.8.11 → 0.8.12
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/esm2022/lib/form-css.helper.mjs +122 -28
- package/esm2022/lib/formly/custom-section-separator.component.mjs +11 -3
- package/esm2022/lib/formly/form-section-separator.component.mjs +34 -11
- package/esm2022/lib/formly/formly-dictionary-dropdown-tree/formly-dictionary-dropdown-tree.component.mjs +23 -8
- package/esm2022/lib/formly/formly-radio/formly-radio-component.mjs +3 -3
- package/esm2022/lib/formly/formly-row-spacer.mjs +12 -0
- package/esm2022/lib/formly/formly-row-wrapper.mjs +32 -0
- package/esm2022/lib/formly/formly-scan-id/formly-scan-id.component.mjs +21 -26
- package/esm2022/lib/models/flux.model.mjs +1 -1
- package/esm2022/lib/models/forms.model.mjs +77 -25
- package/esm2022/lib/origin-form.component.mjs +170 -55
- package/esm2022/lib/origin-form.module.mjs +11 -1
- package/esm2022/lib/services/applicationData.service.mjs +1 -1
- package/fesm2022/qbs-origin-origin-form.mjs +497 -151
- package/fesm2022/qbs-origin-origin-form.mjs.map +1 -1
- package/lib/form-css.helper.d.ts +7 -0
- package/lib/formly/form-section-separator.component.d.ts +2 -2
- package/lib/formly/formly-dictionary-dropdown-tree/formly-dictionary-dropdown-tree.component.d.ts +2 -1
- package/lib/formly/formly-row-spacer.d.ts +6 -0
- package/lib/formly/formly-row-wrapper.d.ts +6 -0
- package/lib/models/flux.model.d.ts +4 -0
- package/lib/models/forms.model.d.ts +22 -6
- package/lib/origin-form.component.d.ts +6 -1
- package/lib/origin-form.module.d.ts +64 -62
- package/lib/services/applicationData.service.d.ts +1 -1
- package/package.json +1 -1
|
@@ -23,7 +23,6 @@ export class FormlyDictionaryDropdownTreeComponent extends FieldType {
|
|
|
23
23
|
this.cdRef = cdRef;
|
|
24
24
|
this.formlyKeys = LabelKeys.formly;
|
|
25
25
|
this.selectedValueText = '';
|
|
26
|
-
this.labelStyle = {};
|
|
27
26
|
this.selectedValueIds = [];
|
|
28
27
|
this.valuesIdsToShow = [];
|
|
29
28
|
this.selectedRelatedDictionaries = [];
|
|
@@ -71,9 +70,7 @@ export class FormlyDictionaryDropdownTreeComponent extends FieldType {
|
|
|
71
70
|
}
|
|
72
71
|
this.currentLanguageIso = this.props['currentLanguageIso'];
|
|
73
72
|
this.currentLanguageId = this.props['currentLanguageId'];
|
|
74
|
-
|
|
75
|
-
this.labelStyle = this.props['design']['.component-data-label'] || {};
|
|
76
|
-
}
|
|
73
|
+
// Design styles are applied via generated CSS (same as Text Field)
|
|
77
74
|
if (this.props['selectedValueIds'] &&
|
|
78
75
|
Array.isArray(this.props['selectedValueIds'])) {
|
|
79
76
|
this.selectedValueIds = this.props['selectedValueIds'];
|
|
@@ -203,8 +200,9 @@ export class FormlyDictionaryDropdownTreeComponent extends FieldType {
|
|
|
203
200
|
}
|
|
204
201
|
this.onSelectedValueChanged(this.selectedValue);
|
|
205
202
|
}
|
|
203
|
+
this.filteredText = '';
|
|
206
204
|
if (this.autoInput) {
|
|
207
|
-
this.autoInput.nativeElement.value = this.
|
|
205
|
+
this.autoInput.nativeElement.value = this.selectedValueText || '';
|
|
208
206
|
}
|
|
209
207
|
}
|
|
210
208
|
}
|
|
@@ -227,6 +225,20 @@ export class FormlyDictionaryDropdownTreeComponent extends FieldType {
|
|
|
227
225
|
}
|
|
228
226
|
}
|
|
229
227
|
}
|
|
228
|
+
onInputFocus() {
|
|
229
|
+
// Clear the input so user can type to filter; open the dropdown
|
|
230
|
+
if (this.autoInput) {
|
|
231
|
+
this.autoInput.nativeElement.value = '';
|
|
232
|
+
}
|
|
233
|
+
this.filteredText = '';
|
|
234
|
+
this.openAutocomplete();
|
|
235
|
+
}
|
|
236
|
+
onInputBlur() {
|
|
237
|
+
// Restore the selected value text when leaving the field
|
|
238
|
+
if (this.autoInput) {
|
|
239
|
+
this.autoInput.nativeElement.value = this.selectedValueText || '';
|
|
240
|
+
}
|
|
241
|
+
}
|
|
230
242
|
openAutocomplete() {
|
|
231
243
|
if (this.autocompleteTrigger && !this.autocompleteTrigger.panelOpen) {
|
|
232
244
|
this.autocompleteTrigger.openPanel();
|
|
@@ -267,6 +279,9 @@ export class FormlyDictionaryDropdownTreeComponent extends FieldType {
|
|
|
267
279
|
}
|
|
268
280
|
}
|
|
269
281
|
this.selectedValueText = this.getValueDisplayText(this.selectedValue);
|
|
282
|
+
if (this.autoInput) {
|
|
283
|
+
this.autoInput.nativeElement.value = this.selectedValueText;
|
|
284
|
+
}
|
|
270
285
|
}
|
|
271
286
|
getValueDisplayText(value) {
|
|
272
287
|
if (!value)
|
|
@@ -282,11 +297,11 @@ export class FormlyDictionaryDropdownTreeComponent extends FieldType {
|
|
|
282
297
|
return this.dictionaryLabels[dictionaryId] || '';
|
|
283
298
|
}
|
|
284
299
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FormlyDictionaryDropdownTreeComponent, deps: [{ token: i1.DictionaryService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
285
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: FormlyDictionaryDropdownTreeComponent, selector: "formly-dictionary-dropdown-tree", inputs: { dictionaryId: "dictionaryId" }, outputs: { selectedValue: "selectedValue" }, viewQueries: [{ propertyName: "autocompleteTrigger", first: true, predicate: MatAutocompleteTrigger, descendants: true }, { propertyName: "autoInput", first: true, predicate: ["autoInput"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<form>\n <mat-
|
|
300
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: FormlyDictionaryDropdownTreeComponent, selector: "formly-dictionary-dropdown-tree", inputs: { dictionaryId: "dictionaryId" }, outputs: { selectedValue: "selectedValue" }, viewQueries: [{ propertyName: "autocompleteTrigger", first: true, predicate: MatAutocompleteTrigger, descendants: true }, { propertyName: "autoInput", first: true, predicate: ["autoInput"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<form>\n <mat-form-field class=\"full-width\">\n <mat-label class=\"component-dictionary-label\">{{ label }}</mat-label>\n <input\n type=\"text\"\n #autoInput\n aria-label=\"Text\"\n matInput\n [value]=\"selectedValueText || ''\"\n [matAutocomplete]=\"auto\"\n (input)=\"filterChanged($event)\"\n (focus)=\"onInputFocus()\"\n (blur)=\"onInputBlur()\"\n />\n <mat-icon matSuffix (click)=\"toggleAutocomplete($event)\"\n >keyboard_arrow_down</mat-icon\n >\n <mat-autocomplete\n #matAutocomplete=\"matAutocomplete\"\n #auto=\"matAutocomplete\"\n autoActiveFirstOption\n (optionSelected)=\"\n onSelectedDictionaryValuesChanged([$event.option.value])\n \"\n >\n <mat-option disabled>{{\n formlyKeys.selectAnItem | translate\n }}</mat-option>\n <app-dictionaries-tree\n [allowCheckItems]=\"allowMultipleSelection\"\n [drawReferenceDictionariesAsSeparateNode]=\"false\"\n [drawChildDictionariesAsSeparateNode]=\"false\"\n [drawRootNode]=\"false\"\n [filterText]=\"filteredText\"\n [allowSelectNonLeafNodes]=\"true\"\n [selectedValueIds]=\"selectedValueIds\"\n [languageId]=\"currentLanguageId\"\n [valuesIdsToShow]=\"valuesIdsToShow\"\n [selectedRelatedDictionaries]=\"selectedRelatedDictionaries\"\n [dictionaryLabels]=\"dictionaryLabels\"\n [preloadedDictionary]=\"preloadedDictionary\"\n [preloadedDictionaries]=\"preloadedDictionaries\"\n [usePreloadedData]=\"usePreloadedData\"\n (selectedDictionaryValuesChanged)=\"\n onSelectedDictionaryValuesChanged($event)\n \"\n >\n </app-dictionaries-tree>\n </mat-autocomplete>\n </mat-form-field>\n\n <formly-validation-message *ngIf=\"showError\" [field]=\"field\">\n </formly-validation-message>\n</form>\n", styles: ["formly-validation-message{color:red;font-size:12px}::ng-deep .mat-mdc-autocomplete-panel>app-dictionaries-tree>app-treeview>cdk-virtual-scroll-viewport{overflow:hidden}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i5.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5.MatLabel, selector: "mat-label" }, { kind: "directive", type: i5.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i6.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i7.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i6.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i9.ɵFormlyValidationMessage, selector: "formly-validation-message", inputs: ["field"] }, { kind: "component", type: i10.DictionariesTreeComponent, selector: "app-dictionaries-tree", inputs: ["dictionaryId", "selectedValueIds", "allowCheckItems", "allowFilter", "drawReferenceDictionariesAsSeparateNode", "drawChildDictionariesAsSeparateNode", "drawRootNode", "filterText", "allowSelectNonLeafNodes", "languageId", "valuesIdsToShow", "hideParentArrow", "preloadedDictionary", "preloadedDictionaries", "usePreloadedData"], outputs: ["selectedDictionaryValuesChanged"] }, { kind: "pipe", type: i11.TranslatePipe, name: "translate" }] }); }
|
|
286
301
|
}
|
|
287
302
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FormlyDictionaryDropdownTreeComponent, decorators: [{
|
|
288
303
|
type: Component,
|
|
289
|
-
args: [{ selector: 'formly-dictionary-dropdown-tree', template: "<form>\n <mat-
|
|
304
|
+
args: [{ selector: 'formly-dictionary-dropdown-tree', template: "<form>\n <mat-form-field class=\"full-width\">\n <mat-label class=\"component-dictionary-label\">{{ label }}</mat-label>\n <input\n type=\"text\"\n #autoInput\n aria-label=\"Text\"\n matInput\n [value]=\"selectedValueText || ''\"\n [matAutocomplete]=\"auto\"\n (input)=\"filterChanged($event)\"\n (focus)=\"onInputFocus()\"\n (blur)=\"onInputBlur()\"\n />\n <mat-icon matSuffix (click)=\"toggleAutocomplete($event)\"\n >keyboard_arrow_down</mat-icon\n >\n <mat-autocomplete\n #matAutocomplete=\"matAutocomplete\"\n #auto=\"matAutocomplete\"\n autoActiveFirstOption\n (optionSelected)=\"\n onSelectedDictionaryValuesChanged([$event.option.value])\n \"\n >\n <mat-option disabled>{{\n formlyKeys.selectAnItem | translate\n }}</mat-option>\n <app-dictionaries-tree\n [allowCheckItems]=\"allowMultipleSelection\"\n [drawReferenceDictionariesAsSeparateNode]=\"false\"\n [drawChildDictionariesAsSeparateNode]=\"false\"\n [drawRootNode]=\"false\"\n [filterText]=\"filteredText\"\n [allowSelectNonLeafNodes]=\"true\"\n [selectedValueIds]=\"selectedValueIds\"\n [languageId]=\"currentLanguageId\"\n [valuesIdsToShow]=\"valuesIdsToShow\"\n [selectedRelatedDictionaries]=\"selectedRelatedDictionaries\"\n [dictionaryLabels]=\"dictionaryLabels\"\n [preloadedDictionary]=\"preloadedDictionary\"\n [preloadedDictionaries]=\"preloadedDictionaries\"\n [usePreloadedData]=\"usePreloadedData\"\n (selectedDictionaryValuesChanged)=\"\n onSelectedDictionaryValuesChanged($event)\n \"\n >\n </app-dictionaries-tree>\n </mat-autocomplete>\n </mat-form-field>\n\n <formly-validation-message *ngIf=\"showError\" [field]=\"field\">\n </formly-validation-message>\n</form>\n", styles: ["formly-validation-message{color:red;font-size:12px}::ng-deep .mat-mdc-autocomplete-panel>app-dictionaries-tree>app-treeview>cdk-virtual-scroll-viewport{overflow:hidden}\n"] }]
|
|
290
305
|
}], ctorParameters: () => [{ type: i1.DictionaryService }, { type: i0.ChangeDetectorRef }], propDecorators: { autocompleteTrigger: [{
|
|
291
306
|
type: ViewChild,
|
|
292
307
|
args: [MatAutocompleteTrigger]
|
|
@@ -298,4 +313,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
298
313
|
}], selectedValue: [{
|
|
299
314
|
type: Output
|
|
300
315
|
}] } });
|
|
301
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWx5LWRpY3Rpb25hcnktZHJvcGRvd24tdHJlZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vcmlnaW4tZm9ybS9zcmMvbGliL2Zvcm1seS9mb3JtbHktZGljdGlvbmFyeS1kcm9wZG93bi10cmVlL2Zvcm1seS1kaWN0aW9uYXJ5LWRyb3Bkb3duLXRyZWUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb3JpZ2luLWZvcm0vc3JjL2xpYi9mb3JtbHkvZm9ybWx5LWRpY3Rpb25hcnktZHJvcGRvd24tdHJlZS9mb3JtbHktZGljdGlvbmFyeS1kcm9wZG93bi10cmVlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBRVQsS0FBSyxFQUVMLE1BQU0sRUFFTixTQUFTLEdBRVYsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHNUIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRWhFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7Ozs7Ozs7OztBQVFuRCxNQUFNLE9BQU8scUNBQ1gsU0FBUSxTQUFTO0lBNkJqQixZQUNVLGlCQUFvQyxFQUNwQyxLQUF3QjtRQUVoQyxLQUFLLEVBQUUsQ0FBQztRQUhBLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDcEMsVUFBSyxHQUFMLEtBQUssQ0FBbUI7UUF0QmxDLGVBQVUsR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDO1FBSTlCLHNCQUFpQixHQUFXLEVBQUUsQ0FBQztRQUMvQixlQUFV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QUFZLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDbkQsQ0FBQzsrR0EzVVUscUNBQXFDO21HQUFyQyxxQ0FBcUMsbU5BSXJDLHNCQUFzQixxTEM3Qm5DLGs0REF1REE7OzRGRDlCYSxxQ0FBcUM7a0JBTGpELFNBQVM7K0JBQ0UsaUNBQWlDO3NIQVMzQyxtQkFBbUI7c0JBRGxCLFNBQVM7dUJBQUMsc0JBQXNCO2dCQUVULFNBQVM7c0JBQWhDLFNBQVM7dUJBQUMsV0FBVztnQkFDYixZQUFZO3NCQUFwQixLQUFLO2dCQUNJLGFBQWE7c0JBQXRCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0NoaWxkLFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRBdXRvY29tcGxldGVUcmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYXV0b2NvbXBsZXRlJztcbmltcG9ydCB7IEZpZWxkVHlwZSB9IGZyb20gJ0BuZ3gtZm9ybWx5L2NvcmUnO1xuaW1wb3J0IHsgdGFrZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRGljdGlvbmFyeVZhbHVlLCBUcmFuc2xhdGlvbkR0bywgVHJhbnNsYXRpb24sIERpY3Rpb25hcnlWYWx1ZUR0bywgRGljdGlvbmFyeUR0byB9IGZyb20gJy4uLy4uL21vZGVscy9kaWN0aW9uYXJ5Lm1vZGVsJztcbmltcG9ydCB7IExhbmd1YWdlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2xhbmd1YWdlLm1vZGVsJztcbmltcG9ydCB7IEVudmlyb25tZW50VHlwZSB9IGZyb20gJy4uLy4uL290aGVycy9lbnZpcm9ubWVudC10eXBlJztcbmltcG9ydCB7IERpY3Rpb25hcnlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZGljdGlvbmFyeS5zZXJ2aWNlJztcbmltcG9ydCB7IExhYmVsS2V5cyB9IGZyb20gJy4uLy4uL2VudW1zL2xhYmVsLmtleXMnO1xuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Zvcm1seS1kaWN0aW9uYXJ5LWRyb3Bkb3duLXRyZWUnLFxuICB0ZW1wbGF0ZVVybDogJy4vZm9ybWx5LWRpY3Rpb25hcnktZHJvcGRvd24tdHJlZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Zvcm1seS1kaWN0aW9uYXJ5LWRyb3Bkb3duLXRyZWUuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgRm9ybWx5RGljdGlvbmFyeURyb3Bkb3duVHJlZUNvbXBvbmVudFxuICBleHRlbmRzIEZpZWxkVHlwZVxuICBpbXBsZW1lbnRzIE9uSW5pdFxue1xuICBAVmlld0NoaWxkKE1hdEF1dG9jb21wbGV0ZVRyaWdnZXIpXG4gIGF1dG9jb21wbGV0ZVRyaWdnZXI6IE1hdEF1dG9jb21wbGV0ZVRyaWdnZXI7XG4gIEBWaWV3Q2hpbGQoJ2F1dG9JbnB1dCcpIGF1dG9JbnB1dDogRWxlbWVudFJlZjtcbiAgQElucHV0KCkgZGljdGlvbmFyeUlkOiBzdHJpbmc7XG4gIEBPdXRwdXQoKSBzZWxlY3RlZFZhbHVlOiBEaWN0aW9uYXJ5VmFsdWU7XG4gIGZpbHRlcmVkVGV4dDogc3RyaW5nO1xuICBmb3JtbHlLZXlzID0gTGFiZWxLZXlzLmZvcm1seTtcbiAgbGFiZWw6IHN0cmluZztcbiAgY3VycmVudExhbmd1YWdlSXNvOiBzdHJpbmc7XG4gIGN1cnJlbnRMYW5ndWFnZUlkOiBudW1iZXI7XG4gIHNlbGVjdGVkVmFsdWVUZXh0OiBzdHJpbmcgPSAnJztcbiAgbGFiZWxTdHlsZTogYW55ID0ge307XG4gIHNlbGVjdGVkVmFsdWVJZHM6IG51bWJlcltdID0gW107XG4gIHZhbHVlc0lkc1RvU2hvdzogbnVtYmVyW10gPSBbXTtcbiAgc2VsZWN0ZWRSZWxhdGVkRGljdGlvbmFyaWVzOiBzdHJpbmdbXSA9IFtdO1xuICBkaWN0aW9uYXJ5TGFiZWxzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9ID0ge307XG5cbiAgLy8gTXVsdGlwbGUgc2VsZWN0aW9uIHN1cHBvcnRcbiAgYWxsb3dNdWx0aXBsZVNlbGVjdGlvbjogYm9vbGVhbiA9IGZhbHNlO1xuICBzZWxlY3RlZFZhbHVlczogRGljdGlvbmFyeVZhbHVlW10gPSBbXTtcblxuICAvLyBORVc6IFByb3BlcnRpZXMgZm9yIHByZWxvYWRlZCBkaWN0aW9uYXJ5IGRhdGFcbiAgcHJlbG9hZGVkRGljdGlvbmFyeTogRGljdGlvbmFyeUR0byB8IG51bGwgPSBudWxsO1xuICBwcmVsb2FkZWREaWN0aW9uYXJpZXM6IE1hcDxzdHJpbmcsIERpY3Rpb25hcnlEdG8+IHwgbnVsbCA9IG51bGw7XG4gIHVzZVByZWxvYWRlZERhdGE6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGRpY3Rpb25hcnlTZXJ2aWNlOiBEaWN0aW9uYXJ5U2VydmljZSxcbiAgICBwcml2YXRlIGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZlxuICApIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucHJvcHNbJ2RpY3Rpb25hcnlJZCddKSB7XG4gICAgICB0aGlzLmRpY3Rpb25hcnlJZCA9IHRoaXMucHJvcHNbJ2RpY3Rpb25hcnlJZCddO1xuICAgIH1cbiAgICBpZiAodGhpcy5wcm9wc1sndmFsdWVzSWRzVG9TaG93J10pIHtcbiAgICAgIHRoaXMudmFsdWVzSWRzVG9TaG93ID0gdGhpcy5wcm9wc1sndmFsdWVzSWRzVG9TaG93J107XG4gICAgfVxuICAgIGlmICh0aGlzLnByb3BzWyd2YWx1ZSddKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkVmFsdWVUZXh0ID0gdGhpcy5wcm9wc1sndmFsdWUnXTtcbiAgICB9XG4gICAgaWYgKHRoaXMucHJvcHNbJ3NlbGVjdGVkUmVsYXRlZERpY3Rpb25hcmllcyddKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkUmVsYXRlZERpY3Rpb25hcmllcyA9XG4gICAgICAgIHRoaXMucHJvcHNbJ3NlbGVjdGVkUmVsYXRlZERpY3Rpb25hcmllcyddO1xuICAgIH1cbiAgICBpZiAodGhpcy5wcm9wc1snZGljdGlvbmFyeUxhYmVscyddKSB7XG4gICAgICB0aGlzLmRpY3Rpb25hcnlMYWJlbHMgPSB0aGlzLnByb3BzWydkaWN0aW9uYXJ5TGFiZWxzJ107XG4gICAgfVxuXG4gICAgLy8gSW5pdGlhbGl6ZSBtdWx0aXBsZSBzZWxlY3Rpb25cbiAgICBpZiAodGhpcy5wcm9wc1snYWxsb3dNdWx0aXBsZVNlbGVjdGlvbiddKSB7XG4gICAgICB0aGlzLmFsbG93TXVsdGlwbGVTZWxlY3Rpb24gPSB0aGlzLnByb3BzWydhbGxvd011bHRpcGxlU2VsZWN0aW9uJ107XG4gICAgfVxuXG4gICAgLy8gTkVXOiBJbml0aWFsaXplIHByZWxvYWRlZCBkaWN0aW9uYXJ5IGRhdGFcbiAgICBpZiAodGhpcy5wcm9wc1snZGljdGlvbmFyeURhdGEnXSkge1xuICAgICAgdGhpcy5wcmVsb2FkZWREaWN0aW9uYXJ5ID0gdGhpcy5wcm9wc1snZGljdGlvbmFyeURhdGEnXTtcbiAgICAgIHRoaXMudXNlUHJlbG9hZGVkRGF0YSA9IHRydWU7XG4gICAgfVxuICAgIGlmICh0aGlzLnByb3BzWydwcmVsb2FkZWREaWN0aW9uYXJpZXMnXSkge1xuICAgICAgdGhpcy5wcmVsb2FkZWREaWN0aW9uYXJpZXMgPSB0aGlzLnByb3BzWydwcmVsb2FkZWREaWN0aW9uYXJpZXMnXTtcbiAgICB9XG5cbiAgICB0aGlzLmxhYmVsID0gdGhpcy5wcm9wc1snbGFiZWwnXSBhcyBzdHJpbmc7XG4gICAgaWYgKHRoaXMucHJvcHMucmVxdWlyZWQpIHtcbiAgICAgIHRoaXMubGFiZWwgKz0gJyAqJztcbiAgICB9XG4gICAgdGhpcy5jdXJyZW50TGFuZ3VhZ2VJc28gPSB0aGlzLnByb3BzWydjdXJyZW50TGFuZ3VhZ2VJc28nXSBhcyBzdHJpbmc7XG4gICAgdGhpcy5jdXJyZW50TGFuZ3VhZ2VJZCA9IHRoaXMucHJvcHNbJ2N1cnJlbnRMYW5ndWFnZUlkJ10gYXMgbnVtYmVyO1xuXG4gICAgaWYgKHRoaXMucHJvcHNbJ2Rlc2lnbiddKSB7XG4gICAgICB0aGlzLmxhYmVsU3R5bGUgPSB0aGlzLnByb3BzWydkZXNpZ24nXVsnLmNvbXBvbmVudC1kYXRhLWxhYmVsJ10gfHwge307XG4gICAgfVxuICAgIGlmIChcbiAgICAgIHRoaXMucHJvcHNbJ3NlbGVjdGVkVmFsdWVJZHMnXSAmJlxuICAgICAgQXJyYXkuaXNBcnJheSh0aGlzLnByb3BzWydzZWxlY3RlZFZhbHVlSWRzJ10pXG4gICAgKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkVmFsdWVJZHMgPSB0aGlzLnByb3BzWydzZWxlY3RlZFZhbHVlSWRzJ107XG4gICAgfVxuXG4gICAgY29uc3QgaW5pdGlhbENvbnRyb2xWYWx1ZSA9IHRoaXMuZm9ybUNvbnRyb2wudmFsdWU7XG4gICAgY29uc3QgZGljdGlvbmFyeURlZmF1bHRWYWx1ZUlkID0gdGhpcy5wcm9wc1snZGljdGlvbmFyeURlZmF1bHRWYWx1ZUlkJ10gYXNcbiAgICAgIHwgbnVtYmVyXG4gICAgICB8IG51bGw7XG5cbiAgICBpZiAoXG4gICAgICBpbml0aWFsQ29udHJvbFZhbHVlID09IG51bGwgJiZcbiAgICAgIGRpY3Rpb25hcnlEZWZhdWx0VmFsdWVJZCAhPSBudWxsICYmXG4gICAgICB0aGlzLmRpY3Rpb25hcnlJZFxuICAgICkge1xuICAgICAgY29uc3QgZGljdGlvbmFyeSA9IHRoaXMucHJvcHNbJ2RpY3Rpb25hcnlEYXRhJ107XG4gICAgICB0aGlzLmZvcm1Db250cm9sLnNldFZhbHVlKGRpY3Rpb25hcnlEZWZhdWx0VmFsdWVJZCwge1xuICAgICAgICBlbWl0RXZlbnQ6IGZhbHNlLFxuICAgICAgfSk7XG5cbiAgICAgIGlmIChkaWN0aW9uYXJ5KSB7XG4gICAgICAgIGNvbnN0IGRlZmF1bHRWYWx1ZUR0byA9IGRpY3Rpb25hcnkudmFsdWVzPy5maW5kKFxuICAgICAgICAgICh2OiBEaWN0aW9uYXJ5VmFsdWVEdG8pID0+IHYuaWQgPT09IGRpY3Rpb25hcnlEZWZhdWx0VmFsdWVJZFxuICAgICAgICApO1xuICAgICAgICBpZiAoZGVmYXVsdFZhbHVlRHRvKSB7XG4gICAgICAgICAgY29uc3QgdmFsdWVUb1NldDogRGljdGlvbmFyeVZhbHVlID0ge1xuICAgICAgICAgICAgaWQ6IGRlZmF1bHRWYWx1ZUR0by5pZCxcbiAgICAgICAgICAgIG5hbWU6IGRlZmF1bHRWYWx1ZUR0by5uYW1lLFxuICAgICAgICAgICAgdHJhbnNsYXRpb25zOlxuICAgICAgICAgICAgICBkZWZhdWx0VmFsdWVEdG8udmFsdWVUcmFuc2xhdGlvbnM/Lm1hcChcbiAgICAgICAgICAgICAgICAodDogVHJhbnNsYXRpb25EdG8pOiBUcmFuc2xhdGlvbiA9PiB7XG4gICAgICAgICAgICAgICAgICBjb25zdCBsYW5ndWFnZXMgPSB0aGlzLnByb3BzWydsYW5ndWFnZXMnXSBhc1xuICAgICAgICAgICAgICAgICAgICB8IExhbmd1YWdlW11cbiAgICAgICAgICAgICAgICAgICAgfCB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgICBjb25zdCBsYW5nID0gbGFuZ3VhZ2VzPy5maW5kKChsKSA9PiBsLmlkID09PSB0Lmxhbmd1YWdlSWQpO1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgbGFuZ3VhZ2VJZDogdC5sYW5ndWFnZUlkLFxuICAgICAgICAgICAgICAgICAgICBsYW5ndWFnZUlzbzogbGFuZz8uaXNvID8/ICcnLFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogdC52YWx1ZSxcbiAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICApIHx8IFtdLFxuICAgICAgICAgICAgYWN0aXZlOiBkZWZhdWx0VmFsdWVEdG8uYWN0aXZlLFxuICAgICAgICAgICAgbG9ja2VkOiBkZWZhdWx0VmFsdWVEdG8ubG9ja2VkLFxuICAgICAgICAgICAgY2hpbGREaWN0aW9uYXJ5SWQ6IGRlZmF1bHRWYWx1ZUR0by5jaGlsZERpY3Rpb25hcnlJZCxcbiAgICAgICAgICAgIGNoaWxkRGljdGlvbmFyeVVVSUQ6IGRlZmF1bHRWYWx1ZUR0by5jaGlsZERpY3Rpb25hcnlVVUlELFxuICAgICAgICAgICAgcmVmZXJlbmNlVmFsdWVzOiBbXSxcbiAgICAgICAgICB9O1xuXG4gICAgICAgICAgdGhpcy5mb3JtQ29udHJvbC5zZXRWYWx1ZSh2YWx1ZVRvU2V0LCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlSWRzID0gW2RlZmF1bHRWYWx1ZUR0by5pZF07XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlID0gdmFsdWVUb1NldDtcbiAgICAgICAgICB0aGlzLnVwZGF0ZVNlbGVjdGVkVmFsdWVUZXh0KCk7XG4gICAgICAgICAgdGhpcy5jZFJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLnVwZGF0ZVNlbGVjdGVkVmFsdWVUZXh0KCk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAnRGljdGlvbmFyeSBkYXRhIG5vdCBwcmVsb2FkZWQsIGZhbGxpbmcgYmFjayB0byBBUEkgY2FsbCBmb3I6JyxcbiAgICAgICAgICB0aGlzLmRpY3Rpb25hcnlJZFxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuZGljdGlvbmFyeVNlcnZpY2VcbiAgICAgICAgICAuZ2V0RGljdGlvbmFyeSh0aGlzLmRpY3Rpb25hcnlJZCwgRW52aXJvbm1lbnRUeXBlLkNvbmZpZylcbiAgICAgICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgICAgICAoZHRvKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IGRlZmF1bHRWYWx1ZUR0byA9IGR0by52YWx1ZXM/LmZpbmQoXG4gICAgICAgICAgICAgICAgKHY6IERpY3Rpb25hcnlWYWx1ZUR0bykgPT4gdi5pZCA9PT0gZGljdGlvbmFyeURlZmF1bHRWYWx1ZUlkXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIGlmIChkZWZhdWx0VmFsdWVEdG8pIHtcbiAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZVRvU2V0OiBEaWN0aW9uYXJ5VmFsdWUgPSB7XG4gICAgICAgICAgICAgICAgICBpZDogZGVmYXVsdFZhbHVlRHRvLmlkLFxuICAgICAgICAgICAgICAgICAgbmFtZTogZGVmYXVsdFZhbHVlRHRvLm5hbWUsXG4gICAgICAgICAgICAgICAgICB0cmFuc2xhdGlvbnM6XG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHRWYWx1ZUR0by52YWx1ZVRyYW5zbGF0aW9ucz8ubWFwKFxuICAgICAgICAgICAgICAgICAgICAgICh0OiBUcmFuc2xhdGlvbkR0byk6IFRyYW5zbGF0aW9uID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGxhbmd1YWdlcyA9IHRoaXMucHJvcHNbJ2xhbmd1YWdlcyddIGFzXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHwgTGFuZ3VhZ2VbXVxuICAgICAgICAgICAgICAgICAgICAgICAgICB8IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGxhbmcgPSBsYW5ndWFnZXM/LmZpbmQoXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChsKSA9PiBsLmlkID09PSB0Lmxhbmd1YWdlSWRcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBsYW5ndWFnZUlkOiB0Lmxhbmd1YWdlSWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGxhbmd1YWdlSXNvOiBsYW5nPy5pc28gPz8gJycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiB0LnZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICkgfHwgW10sXG4gICAgICAgICAgICAgICAgICBhY3RpdmU6IGRlZmF1bHRWYWx1ZUR0by5hY3RpdmUsXG4gICAgICAgICAgICAgICAgICBsb2NrZWQ6IGRlZmF1bHRWYWx1ZUR0by5sb2NrZWQsXG4gICAgICAgICAgICAgICAgICBjaGlsZERpY3Rpb25hcnlJZDogZGVmYXVsdFZhbHVlRHRvLmNoaWxkRGljdGlvbmFyeUlkLFxuICAgICAgICAgICAgICAgICAgY2hpbGREaWN0aW9uYXJ5VVVJRDogZGVmYXVsdFZhbHVlRHRvLmNoaWxkRGljdGlvbmFyeVVVSUQsXG4gICAgICAgICAgICAgICAgICByZWZlcmVuY2VWYWx1ZXM6IFtdLFxuICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICB0aGlzLmZvcm1Db250cm9sLnNldFZhbHVlKHZhbHVlVG9TZXQsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWVJZHMgPSBbZGVmYXVsdFZhbHVlRHRvLmlkXTtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWUgPSB2YWx1ZVRvU2V0O1xuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlU2VsZWN0ZWRWYWx1ZVRleHQoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmNkUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlU2VsZWN0ZWRWYWx1ZVRleHQoKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIChlcnJvcikgPT4ge1xuICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICAgICdGb3JtbHkgRGljdDogRmFpbGVkIHRvIGZldGNoIGRldGFpbHMgZm9yIGRlZmF1bHQgdmFsdWUnLFxuICAgICAgICAgICAgICAgIGVycm9yXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIHRoaXMudXBkYXRlU2VsZWN0ZWRWYWx1ZVRleHQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICApO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnVwZGF0ZVNlbGVjdGVkVmFsdWVUZXh0KCk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzWydtb2RlbCddIHx8IGNoYW5nZXNbJ2Zvcm1Db250cm9sJ10pIHtcbiAgICAgIHRoaXMudXBkYXRlU2VsZWN0ZWRWYWx1ZUlkcygpO1xuICAgIH1cbiAgfVxuXG4gIHVwZGF0ZVNlbGVjdGVkVmFsdWVJZHMoKTogdm9pZCB7XG4gICAgY29uc3QgbW9kZWxWYWx1ZSA9IHRoaXMuZm9ybUNvbnRyb2w/LnZhbHVlO1xuXG4gICAgaWYgKG1vZGVsVmFsdWUgJiYgQXJyYXkuaXNBcnJheShtb2RlbFZhbHVlLnNlbGVjdGVkVmFsdWVJZHMpKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkVmFsdWVJZHMgPSBtb2RlbFZhbHVlLnNlbGVjdGVkVmFsdWVJZHM7XG4gICAgfSBlbHNlIGlmIChtb2RlbFZhbHVlICYmIG1vZGVsVmFsdWUuaWQpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZUlkcyA9IFttb2RlbFZhbHVlLmlkXTtcbiAgICB9XG4gIH1cblxuICBvblNlbGVjdGVkVmFsdWVDaGFuZ2VkKGRpY3Rpb25hcnlWYWx1ZTogRGljdGlvbmFyeVZhbHVlKSB7XG4gICAgaWYgKHRoaXMucHJvcHNbJ29uU2VsZWN0ZWRWYWx1ZUNoYW5nZWQnXSkge1xuICAgICAgdGhpcy5wcm9wc1snb25TZWxlY3RlZFZhbHVlQ2hhbmdlZCddKGRpY3Rpb25hcnlWYWx1ZSk7XG4gICAgfVxuICAgIHRoaXMudXBkYXRlU2VsZWN0ZWRWYWx1ZVRleHQoKTtcbiAgfVxuXG4gIG9uU2VsZWN0ZWREaWN0aW9uYXJ5VmFsdWVzQ2hhbmdlZCh2YWx1ZXM6IERpY3Rpb25hcnlWYWx1ZVtdKSB7XG4gICAgaWYgKHZhbHVlcyAmJiB2YWx1ZXMubGVuZ3RoID4gMCkge1xuICAgICAgaWYgKHRoaXMuYWxsb3dNdWx0aXBsZVNlbGVjdGlvbikge1xuICAgICAgICAvLyBNdWx0aXBsZSBzZWxlY3Rpb24gbW9kZVxuICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWVzID0gdmFsdWVzO1xuICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWVJZHMgPSB2YWx1ZXMubWFwKHYgPT4gdi5pZCk7XG4gICAgICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsdWUodmFsdWVzKTtcbiAgICAgICAgdGhpcy51cGRhdGVTZWxlY3RlZFZhbHVlVGV4dCgpO1xuXG4gICAgICAgIGlmICh0aGlzLnByb3BzWydvblNlbGVjdGVkVmFsdWVzQ2hhbmdlZCddKSB7XG4gICAgICAgICAgdGhpcy5wcm9wc1snb25TZWxlY3RlZFZhbHVlc0NoYW5nZWQnXSh2YWx1ZXMpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBTaW5nbGUgc2VsZWN0aW9uIG1vZGVcbiAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlID0gdmFsdWVzWzBdO1xuICAgICAgICBpZiAodGhpcy5hdXRvY29tcGxldGVUcmlnZ2VyKSB7XG4gICAgICAgICAgdGhpcy5hdXRvY29tcGxldGVUcmlnZ2VyLmNsb3NlUGFuZWwoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm9uU2VsZWN0ZWRWYWx1ZUNoYW5nZWQodGhpcy5zZWxlY3RlZFZhbHVlKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuYXV0b0lucHV0KSB7XG4gICAgICAgIHRoaXMuYXV0b0lucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSB0aGlzLmZpbHRlcmVkVGV4dCA9ICcnO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGZpbHRlckNoYW5nZWQoJGV2ZW50OiBhbnkpIHtcbiAgICBpZiAoJGV2ZW50LnRhcmdldCkge1xuICAgICAgdGhpcy5maWx0ZXJlZFRleHQgPSAkZXZlbnQudGFyZ2V0LnZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIHRvZ2dsZUF1dG9jb21wbGV0ZShldmVudDogTW91c2VFdmVudCkge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGlmICh0aGlzLmF1dG9jb21wbGV0ZVRyaWdnZXIpIHtcbiAgICAgIGlmICh0aGlzLmF1dG9jb21wbGV0ZVRyaWdnZXIucGFuZWxPcGVuKSB7XG4gICAgICAgIHRoaXMuYXV0b2NvbXBsZXRlVHJpZ2dlci5jbG9zZVBhbmVsKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmF1dG9jb21wbGV0ZVRyaWdnZXIub3BlblBhbmVsKCk7XG4gICAgICAgIGlmICh0aGlzLmF1dG9JbnB1dCkge1xuICAgICAgICAgIHRoaXMuYXV0b0lucHV0Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG9wZW5BdXRvY29tcGxldGUoKSB7XG4gICAgaWYgKHRoaXMuYXV0b2NvbXBsZXRlVHJpZ2dlciAmJiAhdGhpcy5hdXRvY29tcGxldGVUcmlnZ2VyLnBhbmVsT3Blbikge1xuICAgICAgdGhpcy5hdXRvY29tcGxldGVUcmlnZ2VyLm9wZW5QYW5lbCgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlU2VsZWN0ZWRWYWx1ZVRleHQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuYWxsb3dNdWx0aXBsZVNlbGVjdGlvbikge1xuICAgICAgLy8gTXVsdGlwbGUgc2VsZWN0aW9uIG1vZGUgLSBzaG93IGNvbW1hLXNlcGFyYXRlZCB2YWx1ZXNcbiAgICAgIGNvbnN0IGZvcm1WYWx1ZSA9IHRoaXMuZm9ybUNvbnRyb2w/LnZhbHVlO1xuICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZm9ybVZhbHVlKSAmJiBmb3JtVmFsdWUubGVuZ3RoID4gMCkge1xuICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWVzID0gZm9ybVZhbHVlO1xuICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWVJZHMgPSBmb3JtVmFsdWUubWFwKHYgPT4gdi5pZCk7XG4gICAgICAgIGNvbnN0IHRleHRzID0gZm9ybVZhbHVlLm1hcCh2ID0+IHRoaXMuZ2V0VmFsdWVEaXNwbGF5VGV4dCh2KSk7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZVRleHQgPSB0ZXh0cy5qb2luKCcsICcpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlVGV4dCA9ICcnO1xuICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWVzID0gW107XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZUlkcyA9IFtdO1xuICAgICAgfVxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIFNpbmdsZSBzZWxlY3Rpb24gbW9kZVxuICAgIGlmICghdGhpcy5zZWxlY3RlZFZhbHVlKSB7XG4gICAgICBjb25zdCBmb3JtVmFsdWUgPSB0aGlzLmZvcm1Db250cm9sPy52YWx1ZTtcbiAgICAgIGlmIChmb3JtVmFsdWUgJiYgdHlwZW9mIGZvcm1WYWx1ZSA9PT0gJ29iamVjdCcgJiYgZm9ybVZhbHVlLmlkKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZSA9IGZvcm1WYWx1ZSBhcyBEaWN0aW9uYXJ5VmFsdWU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBzcGVjaWZpY0RhdGEgPSB0aGlzLnByb3BzPy5bJ3NwZWNpZmljRGF0YSddO1xuICAgICAgICBpZiAoc3BlY2lmaWNEYXRhICYmIHNwZWNpZmljRGF0YS5pc01hbmRhdG9yeSAhPT0gdHJ1ZSkge1xuICAgICAgICAgIHRoaXMucHJvcHNbJ3JlcXVpcmVkJ10gPSBzcGVjaWZpY0RhdGEuaXNNYW5kYXRvcnk7XG4gICAgICAgICAgdGhpcy5mb3JtQ29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgICAgICAgdGhpcy5mb3JtQ29udHJvbC5zZXRFcnJvcnMobnVsbCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlVGV4dCA9ICcnO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5zZWxlY3RlZFZhbHVlVGV4dCA9IHRoaXMuZ2V0VmFsdWVEaXNwbGF5VGV4dCh0aGlzLnNlbGVjdGVkVmFsdWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRWYWx1ZURpc3BsYXlUZXh0KHZhbHVlOiBEaWN0aW9uYXJ5VmFsdWUpOiBzdHJpbmcge1xuICAgIGlmICghdmFsdWUpIHJldHVybiAnJztcblxuICAgIGNvbnN0IHRyYW5zbGF0aW9uID0gdmFsdWUudHJhbnNsYXRpb25zPy5maW5kKFxuICAgICAgKHQpID0+XG4gICAgICAgIHQubGFuZ3VhZ2VJZCA9PT0gdGhpcy5jdXJyZW50TGFuZ3VhZ2VJZCB8fFxuICAgICAgICB0Lmxhbmd1YWdlSXNvID09PSB0aGlzLmN1cnJlbnRMYW5ndWFnZUlzb1xuICAgICk7XG4gICAgaWYgKHRyYW5zbGF0aW9uKSB7XG4gICAgICByZXR1cm4gdHJhbnNsYXRpb24udmFsdWU7XG4gICAgfVxuICAgIHJldHVybiB2YWx1ZS5uYW1lIHx8ICcnO1xuICB9XG5cbiAgZ2V0RGljdGlvbmFyeUxhYmVsKGRpY3Rpb25hcnlJZDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5kaWN0aW9uYXJ5TGFiZWxzW2RpY3Rpb25hcnlJZF0gfHwgJyc7XG4gIH1cbn1cbiIsIjxmb3JtPlxuICA8bWF0LWxhYmVsIGNsYXNzPVwiY29tcG9uZW50LWRhdGEtbGFiZWwgbS1sLTJcIiBbbmdTdHlsZV09XCJsYWJlbFN0eWxlXCI+XG4gICAge3sgbGFiZWwgfX08L21hdC1sYWJlbFxuICA+XG4gIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImZ1bGwtd2lkdGhcIj5cbiAgICA8aW5wdXRcbiAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgIHBsYWNlaG9sZGVyPVwie3sgc2VsZWN0ZWRWYWx1ZVRleHQgfX1cIlxuICAgICAgI2F1dG9JbnB1dFxuICAgICAgYXJpYS1sYWJlbD1cIlRleHRcIlxuICAgICAgbWF0SW5wdXRcbiAgICAgIFttYXRBdXRvY29tcGxldGVdPVwiYXV0b1wiXG4gICAgICAoaW5wdXQpPVwiZmlsdGVyQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgIChmb2N1cyk9XCJvcGVuQXV0b2NvbXBsZXRlKClcIlxuICAgIC8+XG4gICAgPG1hdC1pY29uIG1hdFN1ZmZpeCAoY2xpY2spPVwidG9nZ2xlQXV0b2NvbXBsZXRlKCRldmVudClcIlxuICAgICAgPmtleWJvYXJkX2Fycm93X2Rvd248L21hdC1pY29uXG4gICAgPlxuICAgIDxtYXQtYXV0b2NvbXBsZXRlXG4gICAgICAjbWF0QXV0b2NvbXBsZXRlPVwibWF0QXV0b2NvbXBsZXRlXCJcbiAgICAgICNhdXRvPVwibWF0QXV0b2NvbXBsZXRlXCJcbiAgICAgIGF1dG9BY3RpdmVGaXJzdE9wdGlvblxuICAgICAgKG9wdGlvblNlbGVjdGVkKT1cIlxuICAgICAgICBvblNlbGVjdGVkRGljdGlvbmFyeVZhbHVlc0NoYW5nZWQoWyRldmVudC5vcHRpb24udmFsdWVdKVxuICAgICAgXCJcbiAgICA+XG4gICAgICA8bWF0LW9wdGlvbiBkaXNhYmxlZD57e1xuICAgICAgICBmb3JtbHlLZXlzLnNlbGVjdEFuSXRlbSB8IHRyYW5zbGF0ZVxuICAgICAgfX08L21hdC1vcHRpb24+XG4gICAgICA8YXBwLWRpY3Rpb25hcmllcy10cmVlXG4gICAgICAgIFthbGxvd0NoZWNrSXRlbXNdPVwiYWxsb3dNdWx0aXBsZVNlbGVjdGlvblwiXG4gICAgICAgIFtkcmF3UmVmZXJlbmNlRGljdGlvbmFyaWVzQXNTZXBhcmF0ZU5vZGVdPVwiZmFsc2VcIlxuICAgICAgICBbZHJhd0NoaWxkRGljdGlvbmFyaWVzQXNTZXBhcmF0ZU5vZGVdPVwiZmFsc2VcIlxuICAgICAgICBbZHJhd1Jvb3ROb2RlXT1cImZhbHNlXCJcbiAgICAgICAgW2ZpbHRlclRleHRdPVwiZmlsdGVyZWRUZXh0XCJcbiAgICAgICAgW2FsbG93U2VsZWN0Tm9uTGVhZk5vZGVzXT1cInRydWVcIlxuICAgICAgICBbc2VsZWN0ZWRWYWx1ZUlkc109XCJzZWxlY3RlZFZhbHVlSWRzXCJcbiAgICAgICAgW2xhbmd1YWdlSWRdPVwiY3VycmVudExhbmd1YWdlSWRcIlxuICAgICAgICBbdmFsdWVzSWRzVG9TaG93XT1cInZhbHVlc0lkc1RvU2hvd1wiXG4gICAgICAgIFtzZWxlY3RlZFJlbGF0ZWREaWN0aW9uYXJpZXNdPVwic2VsZWN0ZWRSZWxhdGVkRGljdGlvbmFyaWVzXCJcbiAgICAgICAgW2RpY3Rpb25hcnlMYWJlbHNdPVwiZGljdGlvbmFyeUxhYmVsc1wiXG4gICAgICAgIFtwcmVsb2FkZWREaWN0aW9uYXJ5XT1cInByZWxvYWRlZERpY3Rpb25hcnlcIlxuICAgICAgICBbcHJlbG9hZGVkRGljdGlvbmFyaWVzXT1cInByZWxvYWRlZERpY3Rpb25hcmllc1wiXG4gICAgICAgIFt1c2VQcmVsb2FkZWREYXRhXT1cInVzZVByZWxvYWRlZERhdGFcIlxuICAgICAgICAoc2VsZWN0ZWREaWN0aW9uYXJ5VmFsdWVzQ2hhbmdlZCk9XCJcbiAgICAgICAgICBvblNlbGVjdGVkRGljdGlvbmFyeVZhbHVlc0NoYW5nZWQoJGV2ZW50KVxuICAgICAgICBcIlxuICAgICAgPlxuICAgICAgPC9hcHAtZGljdGlvbmFyaWVzLXRyZWU+XG4gICAgPC9tYXQtYXV0b2NvbXBsZXRlPlxuICA8L21hdC1mb3JtLWZpZWxkPlxuXG4gIDxmb3JtbHktdmFsaWRhdGlvbi1tZXNzYWdlICpuZ0lmPVwic2hvd0Vycm9yXCIgW2ZpZWxkXT1cImZpZWxkXCI+XG4gIDwvZm9ybWx5LXZhbGlkYXRpb24tbWVzc2FnZT5cbjwvZm9ybT5cbiJdfQ==
|
|
316
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWx5LWRpY3Rpb25hcnktZHJvcGRvd24tdHJlZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vcmlnaW4tZm9ybS9zcmMvbGliL2Zvcm1seS9mb3JtbHktZGljdGlvbmFyeS1kcm9wZG93bi10cmVlL2Zvcm1seS1kaWN0aW9uYXJ5LWRyb3Bkb3duLXRyZWUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb3JpZ2luLWZvcm0vc3JjL2xpYi9mb3JtbHkvZm9ybWx5LWRpY3Rpb25hcnktZHJvcGRvd24tdHJlZS9mb3JtbHktZGljdGlvbmFyeS1kcm9wZG93bi10cmVlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBRVQsS0FBSyxFQUVMLE1BQU0sRUFFTixTQUFTLEdBRVYsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHNUIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRWhFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7Ozs7Ozs7OztBQVFuRCxNQUFNLE9BQU8scUNBQ1gsU0FBUSxTQUFTO0lBMkJqQixZQUNVLGlCQUFvQyxFQUNwQyxLQUF3QjtRQUVoQyxLQUFLLEVBQUUsQ0FBQztRQUhBLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDcEMsVUFBSyxHQUFMLEtBQUssQ0FBbUI7UUFyQmxDLGVBQVUsR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDO1FBSTlCLHNCQUFpQixHQUFXLEVBQUUsQ0FBQztRQUMvQixxQkFB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QUUsQ0FBQztRQUV0QixNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsWUFBWSxFQUFFLElBQUksQ0FDMUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUNKLENBQUMsQ0FBQyxVQUFVLEtBQUssSUFBSSxDQUFDLGlCQUFpQjtZQUN2QyxDQUFDLENBQUMsV0FBVyxLQUFLLElBQUksQ0FBQyxrQkFBa0IsQ0FDNUMsQ0FBQztRQUNGLElBQUksV0FBVyxFQUFFLENBQUM7WUFDaEIsT0FBTyxXQUFXLENBQUMsS0FBSyxDQUFDO1FBQzNCLENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxZQUFvQjtRQUNyQyxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDbkQsQ0FBQzsrR0EzVlUscUNBQXFDO21HQUFyQyxxQ0FBcUMsbU5BR3JDLHNCQUFzQixxTEM1Qm5DLHkzREFzREE7OzRGRDdCYSxxQ0FBcUM7a0JBTGpELFNBQVM7K0JBQ0UsaUNBQWlDO3NIQVEzQyxtQkFBbUI7c0JBRGxCLFNBQVM7dUJBQUMsc0JBQXNCO2dCQUVULFNBQVM7c0JBQWhDLFNBQVM7dUJBQUMsV0FBVztnQkFDYixZQUFZO3NCQUFwQixLQUFLO2dCQUNJLGFBQWE7c0JBQXRCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0NoaWxkLFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRBdXRvY29tcGxldGVUcmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYXV0b2NvbXBsZXRlJztcbmltcG9ydCB7IEZpZWxkVHlwZSB9IGZyb20gJ0BuZ3gtZm9ybWx5L2NvcmUnO1xuaW1wb3J0IHsgdGFrZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRGljdGlvbmFyeVZhbHVlLCBUcmFuc2xhdGlvbkR0bywgVHJhbnNsYXRpb24sIERpY3Rpb25hcnlWYWx1ZUR0bywgRGljdGlvbmFyeUR0byB9IGZyb20gJy4uLy4uL21vZGVscy9kaWN0aW9uYXJ5Lm1vZGVsJztcbmltcG9ydCB7IExhbmd1YWdlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2xhbmd1YWdlLm1vZGVsJztcbmltcG9ydCB7IEVudmlyb25tZW50VHlwZSB9IGZyb20gJy4uLy4uL290aGVycy9lbnZpcm9ubWVudC10eXBlJztcbmltcG9ydCB7IERpY3Rpb25hcnlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZGljdGlvbmFyeS5zZXJ2aWNlJztcbmltcG9ydCB7IExhYmVsS2V5cyB9IGZyb20gJy4uLy4uL2VudW1zL2xhYmVsLmtleXMnO1xuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Zvcm1seS1kaWN0aW9uYXJ5LWRyb3Bkb3duLXRyZWUnLFxuICB0ZW1wbGF0ZVVybDogJy4vZm9ybWx5LWRpY3Rpb25hcnktZHJvcGRvd24tdHJlZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Zvcm1seS1kaWN0aW9uYXJ5LWRyb3Bkb3duLXRyZWUuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgRm9ybWx5RGljdGlvbmFyeURyb3Bkb3duVHJlZUNvbXBvbmVudFxuICBleHRlbmRzIEZpZWxkVHlwZVxuICBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBWaWV3Q2hpbGQoTWF0QXV0b2NvbXBsZXRlVHJpZ2dlcilcbiAgYXV0b2NvbXBsZXRlVHJpZ2dlcjogTWF0QXV0b2NvbXBsZXRlVHJpZ2dlcjtcbiAgQFZpZXdDaGlsZCgnYXV0b0lucHV0JykgYXV0b0lucHV0OiBFbGVtZW50UmVmO1xuICBASW5wdXQoKSBkaWN0aW9uYXJ5SWQ6IHN0cmluZztcbiAgQE91dHB1dCgpIHNlbGVjdGVkVmFsdWU6IERpY3Rpb25hcnlWYWx1ZTtcbiAgZmlsdGVyZWRUZXh0OiBzdHJpbmc7XG4gIGZvcm1seUtleXMgPSBMYWJlbEtleXMuZm9ybWx5O1xuICBsYWJlbDogc3RyaW5nO1xuICBjdXJyZW50TGFuZ3VhZ2VJc286IHN0cmluZztcbiAgY3VycmVudExhbmd1YWdlSWQ6IG51bWJlcjtcbiAgc2VsZWN0ZWRWYWx1ZVRleHQ6IHN0cmluZyA9ICcnO1xuICBzZWxlY3RlZFZhbHVlSWRzOiBudW1iZXJbXSA9IFtdO1xuICB2YWx1ZXNJZHNUb1Nob3c6IG51bWJlcltdID0gW107XG4gIHNlbGVjdGVkUmVsYXRlZERpY3Rpb25hcmllczogc3RyaW5nW10gPSBbXTtcbiAgZGljdGlvbmFyeUxhYmVsczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHt9O1xuXG4gIC8vIE11bHRpcGxlIHNlbGVjdGlvbiBzdXBwb3J0XG4gIGFsbG93TXVsdGlwbGVTZWxlY3Rpb246IGJvb2xlYW4gPSBmYWxzZTtcbiAgc2VsZWN0ZWRWYWx1ZXM6IERpY3Rpb25hcnlWYWx1ZVtdID0gW107XG5cbiAgLy8gTkVXOiBQcm9wZXJ0aWVzIGZvciBwcmVsb2FkZWQgZGljdGlvbmFyeSBkYXRhXG4gIHByZWxvYWRlZERpY3Rpb25hcnk6IERpY3Rpb25hcnlEdG8gfCBudWxsID0gbnVsbDtcbiAgcHJlbG9hZGVkRGljdGlvbmFyaWVzOiBNYXA8c3RyaW5nLCBEaWN0aW9uYXJ5RHRvPiB8IG51bGwgPSBudWxsO1xuICB1c2VQcmVsb2FkZWREYXRhOiBib29sZWFuID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBkaWN0aW9uYXJ5U2VydmljZTogRGljdGlvbmFyeVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnByb3BzWydkaWN0aW9uYXJ5SWQnXSkge1xuICAgICAgdGhpcy5kaWN0aW9uYXJ5SWQgPSB0aGlzLnByb3BzWydkaWN0aW9uYXJ5SWQnXTtcbiAgICB9XG4gICAgaWYgKHRoaXMucHJvcHNbJ3ZhbHVlc0lkc1RvU2hvdyddKSB7XG4gICAgICB0aGlzLnZhbHVlc0lkc1RvU2hvdyA9IHRoaXMucHJvcHNbJ3ZhbHVlc0lkc1RvU2hvdyddO1xuICAgIH1cbiAgICBpZiAodGhpcy5wcm9wc1sndmFsdWUnXSkge1xuICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlVGV4dCA9IHRoaXMucHJvcHNbJ3ZhbHVlJ107XG4gICAgfVxuICAgIGlmICh0aGlzLnByb3BzWydzZWxlY3RlZFJlbGF0ZWREaWN0aW9uYXJpZXMnXSkge1xuICAgICAgdGhpcy5zZWxlY3RlZFJlbGF0ZWREaWN0aW9uYXJpZXMgPVxuICAgICAgICB0aGlzLnByb3BzWydzZWxlY3RlZFJlbGF0ZWREaWN0aW9uYXJpZXMnXTtcbiAgICB9XG4gICAgaWYgKHRoaXMucHJvcHNbJ2RpY3Rpb25hcnlMYWJlbHMnXSkge1xuICAgICAgdGhpcy5kaWN0aW9uYXJ5TGFiZWxzID0gdGhpcy5wcm9wc1snZGljdGlvbmFyeUxhYmVscyddO1xuICAgIH1cblxuICAgIC8vIEluaXRpYWxpemUgbXVsdGlwbGUgc2VsZWN0aW9uXG4gICAgaWYgKHRoaXMucHJvcHNbJ2FsbG93TXVsdGlwbGVTZWxlY3Rpb24nXSkge1xuICAgICAgdGhpcy5hbGxvd011bHRpcGxlU2VsZWN0aW9uID0gdGhpcy5wcm9wc1snYWxsb3dNdWx0aXBsZVNlbGVjdGlvbiddO1xuICAgIH1cblxuICAgIC8vIE5FVzogSW5pdGlhbGl6ZSBwcmVsb2FkZWQgZGljdGlvbmFyeSBkYXRhXG4gICAgaWYgKHRoaXMucHJvcHNbJ2RpY3Rpb25hcnlEYXRhJ10pIHtcbiAgICAgIHRoaXMucHJlbG9hZGVkRGljdGlvbmFyeSA9IHRoaXMucHJvcHNbJ2RpY3Rpb25hcnlEYXRhJ107XG4gICAgICB0aGlzLnVzZVByZWxvYWRlZERhdGEgPSB0cnVlO1xuICAgIH1cbiAgICBpZiAodGhpcy5wcm9wc1sncHJlbG9hZGVkRGljdGlvbmFyaWVzJ10pIHtcbiAgICAgIHRoaXMucHJlbG9hZGVkRGljdGlvbmFyaWVzID0gdGhpcy5wcm9wc1sncHJlbG9hZGVkRGljdGlvbmFyaWVzJ107XG4gICAgfVxuXG4gICAgdGhpcy5sYWJlbCA9IHRoaXMucHJvcHNbJ2xhYmVsJ10gYXMgc3RyaW5nO1xuICAgIGlmICh0aGlzLnByb3BzLnJlcXVpcmVkKSB7XG4gICAgICB0aGlzLmxhYmVsICs9ICcgKic7XG4gICAgfVxuICAgIHRoaXMuY3VycmVudExhbmd1YWdlSXNvID0gdGhpcy5wcm9wc1snY3VycmVudExhbmd1YWdlSXNvJ10gYXMgc3RyaW5nO1xuICAgIHRoaXMuY3VycmVudExhbmd1YWdlSWQgPSB0aGlzLnByb3BzWydjdXJyZW50TGFuZ3VhZ2VJZCddIGFzIG51bWJlcjtcblxuICAgIC8vIERlc2lnbiBzdHlsZXMgYXJlIGFwcGxpZWQgdmlhIGdlbmVyYXRlZCBDU1MgKHNhbWUgYXMgVGV4dCBGaWVsZClcbiAgICBpZiAoXG4gICAgICB0aGlzLnByb3BzWydzZWxlY3RlZFZhbHVlSWRzJ10gJiZcbiAgICAgIEFycmF5LmlzQXJyYXkodGhpcy5wcm9wc1snc2VsZWN0ZWRWYWx1ZUlkcyddKVxuICAgICkge1xuICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlSWRzID0gdGhpcy5wcm9wc1snc2VsZWN0ZWRWYWx1ZUlkcyddO1xuICAgIH1cblxuICAgIGNvbnN0IGluaXRpYWxDb250cm9sVmFsdWUgPSB0aGlzLmZvcm1Db250cm9sLnZhbHVlO1xuICAgIGNvbnN0IGRpY3Rpb25hcnlEZWZhdWx0VmFsdWVJZCA9IHRoaXMucHJvcHNbJ2RpY3Rpb25hcnlEZWZhdWx0VmFsdWVJZCddIGFzXG4gICAgICB8IG51bWJlclxuICAgICAgfCBudWxsO1xuXG4gICAgaWYgKFxuICAgICAgaW5pdGlhbENvbnRyb2xWYWx1ZSA9PSBudWxsICYmXG4gICAgICBkaWN0aW9uYXJ5RGVmYXVsdFZhbHVlSWQgIT0gbnVsbCAmJlxuICAgICAgdGhpcy5kaWN0aW9uYXJ5SWRcbiAgICApIHtcbiAgICAgIGNvbnN0IGRpY3Rpb25hcnkgPSB0aGlzLnByb3BzWydkaWN0aW9uYXJ5RGF0YSddO1xuICAgICAgdGhpcy5mb3JtQ29udHJvbC5zZXRWYWx1ZShkaWN0aW9uYXJ5RGVmYXVsdFZhbHVlSWQsIHtcbiAgICAgICAgZW1pdEV2ZW50OiBmYWxzZSxcbiAgICAgIH0pO1xuXG4gICAgICBpZiAoZGljdGlvbmFyeSkge1xuICAgICAgICBjb25zdCBkZWZhdWx0VmFsdWVEdG8gPSBkaWN0aW9uYXJ5LnZhbHVlcz8uZmluZChcbiAgICAgICAgICAodjogRGljdGlvbmFyeVZhbHVlRHRvKSA9PiB2LmlkID09PSBkaWN0aW9uYXJ5RGVmYXVsdFZhbHVlSWRcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKGRlZmF1bHRWYWx1ZUR0bykge1xuICAgICAgICAgIGNvbnN0IHZhbHVlVG9TZXQ6IERpY3Rpb25hcnlWYWx1ZSA9IHtcbiAgICAgICAgICAgIGlkOiBkZWZhdWx0VmFsdWVEdG8uaWQsXG4gICAgICAgICAgICBuYW1lOiBkZWZhdWx0VmFsdWVEdG8ubmFtZSxcbiAgICAgICAgICAgIHRyYW5zbGF0aW9uczpcbiAgICAgICAgICAgICAgZGVmYXVsdFZhbHVlRHRvLnZhbHVlVHJhbnNsYXRpb25zPy5tYXAoXG4gICAgICAgICAgICAgICAgKHQ6IFRyYW5zbGF0aW9uRHRvKTogVHJhbnNsYXRpb24gPT4ge1xuICAgICAgICAgICAgICAgICAgY29uc3QgbGFuZ3VhZ2VzID0gdGhpcy5wcm9wc1snbGFuZ3VhZ2VzJ10gYXNcbiAgICAgICAgICAgICAgICAgICAgfCBMYW5ndWFnZVtdXG4gICAgICAgICAgICAgICAgICAgIHwgdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgICAgY29uc3QgbGFuZyA9IGxhbmd1YWdlcz8uZmluZCgobCkgPT4gbC5pZCA9PT0gdC5sYW5ndWFnZUlkKTtcbiAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIGxhbmd1YWdlSWQ6IHQubGFuZ3VhZ2VJZCxcbiAgICAgICAgICAgICAgICAgICAgbGFuZ3VhZ2VJc286IGxhbmc/LmlzbyA/PyAnJyxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHQudmFsdWUsXG4gICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgKSB8fCBbXSxcbiAgICAgICAgICAgIGFjdGl2ZTogZGVmYXVsdFZhbHVlRHRvLmFjdGl2ZSxcbiAgICAgICAgICAgIGxvY2tlZDogZGVmYXVsdFZhbHVlRHRvLmxvY2tlZCxcbiAgICAgICAgICAgIGNoaWxkRGljdGlvbmFyeUlkOiBkZWZhdWx0VmFsdWVEdG8uY2hpbGREaWN0aW9uYXJ5SWQsXG4gICAgICAgICAgICBjaGlsZERpY3Rpb25hcnlVVUlEOiBkZWZhdWx0VmFsdWVEdG8uY2hpbGREaWN0aW9uYXJ5VVVJRCxcbiAgICAgICAgICAgIHJlZmVyZW5jZVZhbHVlczogW10sXG4gICAgICAgICAgfTtcblxuICAgICAgICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsdWUodmFsdWVUb1NldCwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZUlkcyA9IFtkZWZhdWx0VmFsdWVEdG8uaWRdO1xuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZSA9IHZhbHVlVG9TZXQ7XG4gICAgICAgICAgdGhpcy51cGRhdGVTZWxlY3RlZFZhbHVlVGV4dCgpO1xuICAgICAgICAgIHRoaXMuY2RSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy51cGRhdGVTZWxlY3RlZFZhbHVlVGV4dCgpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgJ0RpY3Rpb25hcnkgZGF0YSBub3QgcHJlbG9hZGVkLCBmYWxsaW5nIGJhY2sgdG8gQVBJIGNhbGwgZm9yOicsXG4gICAgICAgICAgdGhpcy5kaWN0aW9uYXJ5SWRcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLmRpY3Rpb25hcnlTZXJ2aWNlXG4gICAgICAgICAgLmdldERpY3Rpb25hcnkodGhpcy5kaWN0aW9uYXJ5SWQsIEVudmlyb25tZW50VHlwZS5Db25maWcpXG4gICAgICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAgICAgKGR0bykgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBkZWZhdWx0VmFsdWVEdG8gPSBkdG8udmFsdWVzPy5maW5kKFxuICAgICAgICAgICAgICAgICh2OiBEaWN0aW9uYXJ5VmFsdWVEdG8pID0+IHYuaWQgPT09IGRpY3Rpb25hcnlEZWZhdWx0VmFsdWVJZFxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICBpZiAoZGVmYXVsdFZhbHVlRHRvKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdmFsdWVUb1NldDogRGljdGlvbmFyeVZhbHVlID0ge1xuICAgICAgICAgICAgICAgICAgaWQ6IGRlZmF1bHRWYWx1ZUR0by5pZCxcbiAgICAgICAgICAgICAgICAgIG5hbWU6IGRlZmF1bHRWYWx1ZUR0by5uYW1lLFxuICAgICAgICAgICAgICAgICAgdHJhbnNsYXRpb25zOlxuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0VmFsdWVEdG8udmFsdWVUcmFuc2xhdGlvbnM/Lm1hcChcbiAgICAgICAgICAgICAgICAgICAgICAodDogVHJhbnNsYXRpb25EdG8pOiBUcmFuc2xhdGlvbiA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBsYW5ndWFnZXMgPSB0aGlzLnByb3BzWydsYW5ndWFnZXMnXSBhc1xuICAgICAgICAgICAgICAgICAgICAgICAgICB8IExhbmd1YWdlW11cbiAgICAgICAgICAgICAgICAgICAgICAgICAgfCB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBsYW5nID0gbGFuZ3VhZ2VzPy5maW5kKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAobCkgPT4gbC5pZCA9PT0gdC5sYW5ndWFnZUlkXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbGFuZ3VhZ2VJZDogdC5sYW5ndWFnZUlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBsYW5ndWFnZUlzbzogbGFuZz8uaXNvID8/ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogdC52YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICApIHx8IFtdLFxuICAgICAgICAgICAgICAgICAgYWN0aXZlOiBkZWZhdWx0VmFsdWVEdG8uYWN0aXZlLFxuICAgICAgICAgICAgICAgICAgbG9ja2VkOiBkZWZhdWx0VmFsdWVEdG8ubG9ja2VkLFxuICAgICAgICAgICAgICAgICAgY2hpbGREaWN0aW9uYXJ5SWQ6IGRlZmF1bHRWYWx1ZUR0by5jaGlsZERpY3Rpb25hcnlJZCxcbiAgICAgICAgICAgICAgICAgIGNoaWxkRGljdGlvbmFyeVVVSUQ6IGRlZmF1bHRWYWx1ZUR0by5jaGlsZERpY3Rpb25hcnlVVUlELFxuICAgICAgICAgICAgICAgICAgcmVmZXJlbmNlVmFsdWVzOiBbXSxcbiAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtQ29udHJvbC5zZXRWYWx1ZSh2YWx1ZVRvU2V0LCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlSWRzID0gW2RlZmF1bHRWYWx1ZUR0by5pZF07XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlID0gdmFsdWVUb1NldDtcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVNlbGVjdGVkVmFsdWVUZXh0KCk7XG4gICAgICAgICAgICAgICAgdGhpcy5jZFJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVNlbGVjdGVkVmFsdWVUZXh0KCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAoZXJyb3IpID0+IHtcbiAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgICAnRm9ybWx5IERpY3Q6IEZhaWxlZCB0byBmZXRjaCBkZXRhaWxzIGZvciBkZWZhdWx0IHZhbHVlJyxcbiAgICAgICAgICAgICAgICBlcnJvclxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVNlbGVjdGVkVmFsdWVUZXh0KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy51cGRhdGVTZWxlY3RlZFZhbHVlVGV4dCgpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlc1snbW9kZWwnXSB8fCBjaGFuZ2VzWydmb3JtQ29udHJvbCddKSB7XG4gICAgICB0aGlzLnVwZGF0ZVNlbGVjdGVkVmFsdWVJZHMoKTtcbiAgICB9XG4gIH1cblxuICB1cGRhdGVTZWxlY3RlZFZhbHVlSWRzKCk6IHZvaWQge1xuICAgIGNvbnN0IG1vZGVsVmFsdWUgPSB0aGlzLmZvcm1Db250cm9sPy52YWx1ZTtcblxuICAgIGlmIChtb2RlbFZhbHVlICYmIEFycmF5LmlzQXJyYXkobW9kZWxWYWx1ZS5zZWxlY3RlZFZhbHVlSWRzKSkge1xuICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlSWRzID0gbW9kZWxWYWx1ZS5zZWxlY3RlZFZhbHVlSWRzO1xuICAgIH0gZWxzZSBpZiAobW9kZWxWYWx1ZSAmJiBtb2RlbFZhbHVlLmlkKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkVmFsdWVJZHMgPSBbbW9kZWxWYWx1ZS5pZF07XG4gICAgfVxuICB9XG5cbiAgb25TZWxlY3RlZFZhbHVlQ2hhbmdlZChkaWN0aW9uYXJ5VmFsdWU6IERpY3Rpb25hcnlWYWx1ZSkge1xuICAgIGlmICh0aGlzLnByb3BzWydvblNlbGVjdGVkVmFsdWVDaGFuZ2VkJ10pIHtcbiAgICAgIHRoaXMucHJvcHNbJ29uU2VsZWN0ZWRWYWx1ZUNoYW5nZWQnXShkaWN0aW9uYXJ5VmFsdWUpO1xuICAgIH1cbiAgICB0aGlzLnVwZGF0ZVNlbGVjdGVkVmFsdWVUZXh0KCk7XG4gIH1cblxuICBvblNlbGVjdGVkRGljdGlvbmFyeVZhbHVlc0NoYW5nZWQodmFsdWVzOiBEaWN0aW9uYXJ5VmFsdWVbXSkge1xuICAgIGlmICh2YWx1ZXMgJiYgdmFsdWVzLmxlbmd0aCA+IDApIHtcbiAgICAgIGlmICh0aGlzLmFsbG93TXVsdGlwbGVTZWxlY3Rpb24pIHtcbiAgICAgICAgLy8gTXVsdGlwbGUgc2VsZWN0aW9uIG1vZGVcbiAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlcyA9IHZhbHVlcztcbiAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlSWRzID0gdmFsdWVzLm1hcCh2ID0+IHYuaWQpO1xuICAgICAgICB0aGlzLmZvcm1Db250cm9sLnNldFZhbHVlKHZhbHVlcyk7XG4gICAgICAgIHRoaXMudXBkYXRlU2VsZWN0ZWRWYWx1ZVRleHQoKTtcblxuICAgICAgICBpZiAodGhpcy5wcm9wc1snb25TZWxlY3RlZFZhbHVlc0NoYW5nZWQnXSkge1xuICAgICAgICAgIHRoaXMucHJvcHNbJ29uU2VsZWN0ZWRWYWx1ZXNDaGFuZ2VkJ10odmFsdWVzKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gU2luZ2xlIHNlbGVjdGlvbiBtb2RlXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZSA9IHZhbHVlc1swXTtcbiAgICAgICAgaWYgKHRoaXMuYXV0b2NvbXBsZXRlVHJpZ2dlcikge1xuICAgICAgICAgIHRoaXMuYXV0b2NvbXBsZXRlVHJpZ2dlci5jbG9zZVBhbmVsKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5vblNlbGVjdGVkVmFsdWVDaGFuZ2VkKHRoaXMuc2VsZWN0ZWRWYWx1ZSk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuZmlsdGVyZWRUZXh0ID0gJyc7XG4gICAgICBpZiAodGhpcy5hdXRvSW5wdXQpIHtcbiAgICAgICAgdGhpcy5hdXRvSW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZSA9IHRoaXMuc2VsZWN0ZWRWYWx1ZVRleHQgfHwgJyc7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZmlsdGVyQ2hhbmdlZCgkZXZlbnQ6IGFueSkge1xuICAgIGlmICgkZXZlbnQudGFyZ2V0KSB7XG4gICAgICB0aGlzLmZpbHRlcmVkVGV4dCA9ICRldmVudC50YXJnZXQudmFsdWU7XG4gICAgfVxuICB9XG5cbiAgdG9nZ2xlQXV0b2NvbXBsZXRlKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgaWYgKHRoaXMuYXV0b2NvbXBsZXRlVHJpZ2dlcikge1xuICAgICAgaWYgKHRoaXMuYXV0b2NvbXBsZXRlVHJpZ2dlci5wYW5lbE9wZW4pIHtcbiAgICAgICAgdGhpcy5hdXRvY29tcGxldGVUcmlnZ2VyLmNsb3NlUGFuZWwoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuYXV0b2NvbXBsZXRlVHJpZ2dlci5vcGVuUGFuZWwoKTtcbiAgICAgICAgaWYgKHRoaXMuYXV0b0lucHV0KSB7XG4gICAgICAgICAgdGhpcy5hdXRvSW5wdXQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgb25JbnB1dEZvY3VzKCkge1xuICAgIC8vIENsZWFyIHRoZSBpbnB1dCBzbyB1c2VyIGNhbiB0eXBlIHRvIGZpbHRlcjsgb3BlbiB0aGUgZHJvcGRvd25cbiAgICBpZiAodGhpcy5hdXRvSW5wdXQpIHtcbiAgICAgIHRoaXMuYXV0b0lucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJztcbiAgICB9XG4gICAgdGhpcy5maWx0ZXJlZFRleHQgPSAnJztcbiAgICB0aGlzLm9wZW5BdXRvY29tcGxldGUoKTtcbiAgfVxuXG4gIG9uSW5wdXRCbHVyKCkge1xuICAgIC8vIFJlc3RvcmUgdGhlIHNlbGVjdGVkIHZhbHVlIHRleHQgd2hlbiBsZWF2aW5nIHRoZSBmaWVsZFxuICAgIGlmICh0aGlzLmF1dG9JbnB1dCkge1xuICAgICAgdGhpcy5hdXRvSW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZSA9IHRoaXMuc2VsZWN0ZWRWYWx1ZVRleHQgfHwgJyc7XG4gICAgfVxuICB9XG5cbiAgb3BlbkF1dG9jb21wbGV0ZSgpIHtcbiAgICBpZiAodGhpcy5hdXRvY29tcGxldGVUcmlnZ2VyICYmICF0aGlzLmF1dG9jb21wbGV0ZVRyaWdnZXIucGFuZWxPcGVuKSB7XG4gICAgICB0aGlzLmF1dG9jb21wbGV0ZVRyaWdnZXIub3BlblBhbmVsKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVTZWxlY3RlZFZhbHVlVGV4dCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5hbGxvd011bHRpcGxlU2VsZWN0aW9uKSB7XG4gICAgICAvLyBNdWx0aXBsZSBzZWxlY3Rpb24gbW9kZSAtIHNob3cgY29tbWEtc2VwYXJhdGVkIHZhbHVlc1xuICAgICAgY29uc3QgZm9ybVZhbHVlID0gdGhpcy5mb3JtQ29udHJvbD8udmFsdWU7XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShmb3JtVmFsdWUpICYmIGZvcm1WYWx1ZS5sZW5ndGggPiAwKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZXMgPSBmb3JtVmFsdWU7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZUlkcyA9IGZvcm1WYWx1ZS5tYXAodiA9PiB2LmlkKTtcbiAgICAgICAgY29uc3QgdGV4dHMgPSBmb3JtVmFsdWUubWFwKHYgPT4gdGhpcy5nZXRWYWx1ZURpc3BsYXlUZXh0KHYpKTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlVGV4dCA9IHRleHRzLmpvaW4oJywgJyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWVUZXh0ID0gJyc7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZXMgPSBbXTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlSWRzID0gW107XG4gICAgICB9XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gU2luZ2xlIHNlbGVjdGlvbiBtb2RlXG4gICAgaWYgKCF0aGlzLnNlbGVjdGVkVmFsdWUpIHtcbiAgICAgIGNvbnN0IGZvcm1WYWx1ZSA9IHRoaXMuZm9ybUNvbnRyb2w/LnZhbHVlO1xuICAgICAgaWYgKGZvcm1WYWx1ZSAmJiB0eXBlb2YgZm9ybVZhbHVlID09PSAnb2JqZWN0JyAmJiBmb3JtVmFsdWUuaWQpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlID0gZm9ybVZhbHVlIGFzIERpY3Rpb25hcnlWYWx1ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHNwZWNpZmljRGF0YSA9IHRoaXMucHJvcHM/Llsnc3BlY2lmaWNEYXRhJ107XG4gICAgICAgIGlmIChzcGVjaWZpY0RhdGEgJiYgc3BlY2lmaWNEYXRhLmlzTWFuZGF0b3J5ICE9PSB0cnVlKSB7XG4gICAgICAgICAgdGhpcy5wcm9wc1sncmVxdWlyZWQnXSA9IHNwZWNpZmljRGF0YS5pc01hbmRhdG9yeTtcbiAgICAgICAgICB0aGlzLmZvcm1Db250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICAgICAgICB0aGlzLmZvcm1Db250cm9sLnNldEVycm9ycyhudWxsKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWVUZXh0ID0gJyc7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLnNlbGVjdGVkVmFsdWVUZXh0ID0gdGhpcy5nZXRWYWx1ZURpc3BsYXlUZXh0KHRoaXMuc2VsZWN0ZWRWYWx1ZSk7XG4gICAgaWYgKHRoaXMuYXV0b0lucHV0KSB7XG4gICAgICB0aGlzLmF1dG9JbnB1dC5uYXRpdmVFbGVtZW50LnZhbHVlID0gdGhpcy5zZWxlY3RlZFZhbHVlVGV4dDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldFZhbHVlRGlzcGxheVRleHQodmFsdWU6IERpY3Rpb25hcnlWYWx1ZSk6IHN0cmluZyB7XG4gICAgaWYgKCF2YWx1ZSkgcmV0dXJuICcnO1xuXG4gICAgY29uc3QgdHJhbnNsYXRpb24gPSB2YWx1ZS50cmFuc2xhdGlvbnM/LmZpbmQoXG4gICAgICAodCkgPT5cbiAgICAgICAgdC5sYW5ndWFnZUlkID09PSB0aGlzLmN1cnJlbnRMYW5ndWFnZUlkIHx8XG4gICAgICAgIHQubGFuZ3VhZ2VJc28gPT09IHRoaXMuY3VycmVudExhbmd1YWdlSXNvXG4gICAgKTtcbiAgICBpZiAodHJhbnNsYXRpb24pIHtcbiAgICAgIHJldHVybiB0cmFuc2xhdGlvbi52YWx1ZTtcbiAgICB9XG4gICAgcmV0dXJuIHZhbHVlLm5hbWUgfHwgJyc7XG4gIH1cblxuICBnZXREaWN0aW9uYXJ5TGFiZWwoZGljdGlvbmFyeUlkOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmRpY3Rpb25hcnlMYWJlbHNbZGljdGlvbmFyeUlkXSB8fCAnJztcbiAgfVxufVxuIiwiPGZvcm0+XG4gIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImZ1bGwtd2lkdGhcIj5cbiAgICA8bWF0LWxhYmVsIGNsYXNzPVwiY29tcG9uZW50LWRpY3Rpb25hcnktbGFiZWxcIj57eyBsYWJlbCB9fTwvbWF0LWxhYmVsPlxuICAgIDxpbnB1dFxuICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgI2F1dG9JbnB1dFxuICAgICAgYXJpYS1sYWJlbD1cIlRleHRcIlxuICAgICAgbWF0SW5wdXRcbiAgICAgIFt2YWx1ZV09XCJzZWxlY3RlZFZhbHVlVGV4dCB8fCAnJ1wiXG4gICAgICBbbWF0QXV0b2NvbXBsZXRlXT1cImF1dG9cIlxuICAgICAgKGlucHV0KT1cImZpbHRlckNoYW5nZWQoJGV2ZW50KVwiXG4gICAgICAoZm9jdXMpPVwib25JbnB1dEZvY3VzKClcIlxuICAgICAgKGJsdXIpPVwib25JbnB1dEJsdXIoKVwiXG4gICAgLz5cbiAgICA8bWF0LWljb24gbWF0U3VmZml4IChjbGljayk9XCJ0b2dnbGVBdXRvY29tcGxldGUoJGV2ZW50KVwiXG4gICAgICA+a2V5Ym9hcmRfYXJyb3dfZG93bjwvbWF0LWljb25cbiAgICA+XG4gICAgPG1hdC1hdXRvY29tcGxldGVcbiAgICAgICNtYXRBdXRvY29tcGxldGU9XCJtYXRBdXRvY29tcGxldGVcIlxuICAgICAgI2F1dG89XCJtYXRBdXRvY29tcGxldGVcIlxuICAgICAgYXV0b0FjdGl2ZUZpcnN0T3B0aW9uXG4gICAgICAob3B0aW9uU2VsZWN0ZWQpPVwiXG4gICAgICAgIG9uU2VsZWN0ZWREaWN0aW9uYXJ5VmFsdWVzQ2hhbmdlZChbJGV2ZW50Lm9wdGlvbi52YWx1ZV0pXG4gICAgICBcIlxuICAgID5cbiAgICAgIDxtYXQtb3B0aW9uIGRpc2FibGVkPnt7XG4gICAgICAgIGZvcm1seUtleXMuc2VsZWN0QW5JdGVtIHwgdHJhbnNsYXRlXG4gICAgICB9fTwvbWF0LW9wdGlvbj5cbiAgICAgIDxhcHAtZGljdGlvbmFyaWVzLXRyZWVcbiAgICAgICAgW2FsbG93Q2hlY2tJdGVtc109XCJhbGxvd011bHRpcGxlU2VsZWN0aW9uXCJcbiAgICAgICAgW2RyYXdSZWZlcmVuY2VEaWN0aW9uYXJpZXNBc1NlcGFyYXRlTm9kZV09XCJmYWxzZVwiXG4gICAgICAgIFtkcmF3Q2hpbGREaWN0aW9uYXJpZXNBc1NlcGFyYXRlTm9kZV09XCJmYWxzZVwiXG4gICAgICAgIFtkcmF3Um9vdE5vZGVdPVwiZmFsc2VcIlxuICAgICAgICBbZmlsdGVyVGV4dF09XCJmaWx0ZXJlZFRleHRcIlxuICAgICAgICBbYWxsb3dTZWxlY3ROb25MZWFmTm9kZXNdPVwidHJ1ZVwiXG4gICAgICAgIFtzZWxlY3RlZFZhbHVlSWRzXT1cInNlbGVjdGVkVmFsdWVJZHNcIlxuICAgICAgICBbbGFuZ3VhZ2VJZF09XCJjdXJyZW50TGFuZ3VhZ2VJZFwiXG4gICAgICAgIFt2YWx1ZXNJZHNUb1Nob3ddPVwidmFsdWVzSWRzVG9TaG93XCJcbiAgICAgICAgW3NlbGVjdGVkUmVsYXRlZERpY3Rpb25hcmllc109XCJzZWxlY3RlZFJlbGF0ZWREaWN0aW9uYXJpZXNcIlxuICAgICAgICBbZGljdGlvbmFyeUxhYmVsc109XCJkaWN0aW9uYXJ5TGFiZWxzXCJcbiAgICAgICAgW3ByZWxvYWRlZERpY3Rpb25hcnldPVwicHJlbG9hZGVkRGljdGlvbmFyeVwiXG4gICAgICAgIFtwcmVsb2FkZWREaWN0aW9uYXJpZXNdPVwicHJlbG9hZGVkRGljdGlvbmFyaWVzXCJcbiAgICAgICAgW3VzZVByZWxvYWRlZERhdGFdPVwidXNlUHJlbG9hZGVkRGF0YVwiXG4gICAgICAgIChzZWxlY3RlZERpY3Rpb25hcnlWYWx1ZXNDaGFuZ2VkKT1cIlxuICAgICAgICAgIG9uU2VsZWN0ZWREaWN0aW9uYXJ5VmFsdWVzQ2hhbmdlZCgkZXZlbnQpXG4gICAgICAgIFwiXG4gICAgICA+XG4gICAgICA8L2FwcC1kaWN0aW9uYXJpZXMtdHJlZT5cbiAgICA8L21hdC1hdXRvY29tcGxldGU+XG4gIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgPGZvcm1seS12YWxpZGF0aW9uLW1lc3NhZ2UgKm5nSWY9XCJzaG93RXJyb3JcIiBbZmllbGRdPVwiZmllbGRcIj5cbiAgPC9mb3JtbHktdmFsaWRhdGlvbi1tZXNzYWdlPlxuPC9mb3JtPlxuIl19
|
|
@@ -40,10 +40,10 @@ export class FormlyRadioComponent extends FieldType {
|
|
|
40
40
|
}
|
|
41
41
|
}
|
|
42
42
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FormlyRadioComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
43
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: FormlyRadioComponent, selector: "formly-radio", usesInheritance: true, ngImport: i0, template: "<div class=\"mat-mdc-text-field-wrapper mdc-radiobox-field\" appExternalLink>\n <label>\n <markdown [data]=\"title\"></markdown>\n </label>\n <div *ngIf=\"radioOptionsList.length > 0\">\n <mat-radio-group [value]=\"formControl.value?.id\"\n (change)=\"onRadioChange($event)\">\n <ng-container *ngFor=\"let option of radioOptionsList\">\n <div>\n <mat-radio-button [value]=\"option.value.id\">\n {{ option.label }}\n </mat-radio-button>\n </div>\n </ng-container>\n </mat-radio-group>\n </div>\n <formly-validation-message *ngIf=\"showError\" [field]=\"field\">\n </formly-validation-message>\n</div>\n", styles: ["formly-validation-message{color:red;font-size:12px}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MarkdownComponent, selector: "markdown, [markdown]", inputs: ["data", "src", "disableSanitizer", "inline", "clipboard", "clipboardButtonComponent", "clipboardButtonTemplate", "emoji", "katex", "katexOptions", "mermaid", "mermaidOptions", "lineHighlight", "line", "lineOffset", "lineNumbers", "start", "commandLine", "filterOutput", "host", "prompt", "output", "user"], outputs: ["error", "load", "ready"] }, { kind: "directive", type: i3.MatRadioGroup, selector: "mat-radio-group", inputs: ["color", "name", "labelPosition", "value", "selected", "disabled", "required", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioGroup"] }, { kind: "component", type: i3.MatRadioButton, selector: "mat-radio-button", inputs: ["id", "name", "aria-label", "aria-labelledby", "aria-describedby", "disableRipple", "tabIndex", "checked", "value", "labelPosition", "disabled", "required", "color", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioButton"] }, { kind: "component", type: i4.ɵFormlyValidationMessage, selector: "formly-validation-message", inputs: ["field"] }, { kind: "directive", type: i5.ExternalLinkDirective, selector: "[appExternalLink]" }] }); }
|
|
43
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: FormlyRadioComponent, selector: "formly-radio", usesInheritance: true, ngImport: i0, template: "<div class=\"mat-mdc-text-field-wrapper mdc-radiobox-field\" appExternalLink>\n <label [ngStyle]=\"props['design']?.['.font-label']\">\n <markdown [data]=\"title\"></markdown>\n </label>\n <div *ngIf=\"radioOptionsList.length > 0\">\n <mat-radio-group [value]=\"formControl.value?.id\"\n (change)=\"onRadioChange($event)\">\n <ng-container *ngFor=\"let option of radioOptionsList\">\n <div>\n <mat-radio-button [value]=\"option.value.id\">\n {{ option.label }}\n </mat-radio-button>\n </div>\n </ng-container>\n </mat-radio-group>\n </div>\n <formly-validation-message *ngIf=\"showError\" [field]=\"field\">\n </formly-validation-message>\n</div>\n", styles: ["formly-validation-message{color:red;font-size:12px}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i2.MarkdownComponent, selector: "markdown, [markdown]", inputs: ["data", "src", "disableSanitizer", "inline", "clipboard", "clipboardButtonComponent", "clipboardButtonTemplate", "emoji", "katex", "katexOptions", "mermaid", "mermaidOptions", "lineHighlight", "line", "lineOffset", "lineNumbers", "start", "commandLine", "filterOutput", "host", "prompt", "output", "user"], outputs: ["error", "load", "ready"] }, { kind: "directive", type: i3.MatRadioGroup, selector: "mat-radio-group", inputs: ["color", "name", "labelPosition", "value", "selected", "disabled", "required", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioGroup"] }, { kind: "component", type: i3.MatRadioButton, selector: "mat-radio-button", inputs: ["id", "name", "aria-label", "aria-labelledby", "aria-describedby", "disableRipple", "tabIndex", "checked", "value", "labelPosition", "disabled", "required", "color", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioButton"] }, { kind: "component", type: i4.ɵFormlyValidationMessage, selector: "formly-validation-message", inputs: ["field"] }, { kind: "directive", type: i5.ExternalLinkDirective, selector: "[appExternalLink]" }] }); }
|
|
44
44
|
}
|
|
45
45
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FormlyRadioComponent, decorators: [{
|
|
46
46
|
type: Component,
|
|
47
|
-
args: [{ selector: 'formly-radio', template: "<div class=\"mat-mdc-text-field-wrapper mdc-radiobox-field\" appExternalLink>\n <label>\n <markdown [data]=\"title\"></markdown>\n </label>\n <div *ngIf=\"radioOptionsList.length > 0\">\n <mat-radio-group [value]=\"formControl.value?.id\"\n (change)=\"onRadioChange($event)\">\n <ng-container *ngFor=\"let option of radioOptionsList\">\n <div>\n <mat-radio-button [value]=\"option.value.id\">\n {{ option.label }}\n </mat-radio-button>\n </div>\n </ng-container>\n </mat-radio-group>\n </div>\n <formly-validation-message *ngIf=\"showError\" [field]=\"field\">\n </formly-validation-message>\n</div>\n", styles: ["formly-validation-message{color:red;font-size:12px}\n"] }]
|
|
47
|
+
args: [{ selector: 'formly-radio', template: "<div class=\"mat-mdc-text-field-wrapper mdc-radiobox-field\" appExternalLink>\n <label [ngStyle]=\"props['design']?.['.font-label']\">\n <markdown [data]=\"title\"></markdown>\n </label>\n <div *ngIf=\"radioOptionsList.length > 0\">\n <mat-radio-group [value]=\"formControl.value?.id\"\n (change)=\"onRadioChange($event)\">\n <ng-container *ngFor=\"let option of radioOptionsList\">\n <div>\n <mat-radio-button [value]=\"option.value.id\">\n {{ option.label }}\n </mat-radio-button>\n </div>\n </ng-container>\n </mat-radio-group>\n </div>\n <formly-validation-message *ngIf=\"showError\" [field]=\"field\">\n </formly-validation-message>\n</div>\n", styles: ["formly-validation-message{color:red;font-size:12px}\n"] }]
|
|
48
48
|
}] });
|
|
49
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWx5LXJhZGlvLWNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29yaWdpbi1mb3JtL3NyYy9saWIvZm9ybWx5L2Zvcm1seS1yYWRpby9mb3JtbHktcmFkaW8tY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb3JpZ2luLWZvcm0vc3JjL2xpYi9mb3JtbHkvZm9ybWx5LXJhZGlvL2Zvcm1seS1yYWRpby1jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7QUFTN0MsTUFBTSxPQUFPLG9CQUFxQixTQUFRLFNBQVM7SUFObkQ7O1FBT0UscUJBQWdCLEdBQVUsRUFBRSxDQUFDO1FBQzdCLFVBQUssR0FBVyxFQUFFLENBQUM7UUFDbkIsWUFBTyxHQUFXLElBQUksQ0FBQztLQWdDeEI7SUE5QkMsUUFBUTtRQUNOLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQ2hELElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdkMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUNuQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUM7UUFDMUMsQ0FBQztJQUNILENBQUM7SUFFRCxJQUFhLFdBQVc7UUFDdEIsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ25CLE1BQU0sT0FBTyxHQUNYLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLEtBQUssUUFBUSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUM7Z0JBQ2pFLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUc7Z0JBQ2hCLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUM3QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBZ0IsQ0FBQztRQUMvQyxDQUFDO1FBQ0QsT0FBTyxJQUFJLFdBQVcsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxhQUFhLENBQUMsQ0FBaUI7UUFDN0IsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FDekMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQ2xDLENBQUM7UUFDRixJQUFJLFFBQVEsRUFBRSxDQUFDO1lBQ2IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzFDLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyx3QkFBd0IsQ0FBQyxFQUFFLENBQUM7Z0JBQ3pDLElBQUksQ0FBQyxLQUFLLENBQUMsd0JBQXdCLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDdkQsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDOytHQWxDVSxvQkFBb0I7bUdBQXBCLG9CQUFvQiwyRUNYakMsa3VCQW1CQTs7NEZEUmEsb0JBQW9CO2tCQU5oQyxTQUFTOytCQUNFLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRmllbGRUeXBlIH0gZnJvbSAnQG5neC1mb3JtbHkvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdFJhZGlvQ2hhbmdlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcmFkaW8nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdmb3JtbHktcmFkaW8nLFxuICB0ZW1wbGF0ZVVybDogJy4vZm9ybWx5LXJhZGlvLWNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZm9ybWx5LXJhZGlvLWNvbXBvbmVudC5zY3NzJ10sXG4gIHN0eWxlczogW10sXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1seVJhZGlvQ29tcG9uZW50IGV4dGVuZHMgRmllbGRUeXBlIGltcGxlbWVudHMgT25Jbml0IHtcbiAgcmFkaW9PcHRpb25zTGlzdDogYW55W10gPSBbXTtcbiAgdGl0bGU6IHN0cmluZyA9ICcnO1xuICBsYW5nSXNvOiBzdHJpbmcgPSAnZW4nO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMubGFuZ0lzbyA9IHRoaXMucHJvcHNbJ2N1cnJlbnRMYW5ndWFnZUlzbyddO1xuICAgIHRoaXMudGl0bGUgPSB0aGlzLnByb3BzWydsYWJlbCddIHx8ICcnO1xuICAgIGlmIChBcnJheS5pc0FycmF5KHRoaXMudG8ub3B0aW9ucykpIHtcbiAgICAgIHRoaXMucmFkaW9PcHRpb25zTGlzdCA9IHRoaXMudG8ub3B0aW9ucztcbiAgICB9XG4gIH1cblxuICBvdmVycmlkZSBnZXQgZm9ybUNvbnRyb2woKTogRm9ybUNvbnRyb2wge1xuICAgIGlmICh0aGlzLmZpZWxkLmtleSkge1xuICAgICAgY29uc3Qga2V5UGF0aCA9XG4gICAgICAgIHR5cGVvZiB0aGlzLmZpZWxkLmtleSA9PT0gJ3N0cmluZycgfHwgQXJyYXkuaXNBcnJheSh0aGlzLmZpZWxkLmtleSlcbiAgICAgICAgICA/IHRoaXMuZmllbGQua2V5XG4gICAgICAgICAgOiBTdHJpbmcodGhpcy5maWVsZC5rZXkpO1xuICAgICAgcmV0dXJuIHRoaXMuZm9ybS5nZXQoa2V5UGF0aCkgYXMgRm9ybUNvbnRyb2w7XG4gICAgfVxuICAgIHJldHVybiBuZXcgRm9ybUNvbnRyb2woKTtcbiAgfVxuXG4gIG9uUmFkaW9DaGFuZ2UoZTogTWF0UmFkaW9DaGFuZ2UpOiB2b2lkIHtcbiAgICBjb25zdCBzZWxlY3RlZCA9IHRoaXMucmFkaW9PcHRpb25zTGlzdC5maW5kKFxuICAgICAgKG9wdCkgPT4gb3B0LnZhbHVlLmlkID09PSBlLnZhbHVlXG4gICAgKTtcbiAgICBpZiAoc2VsZWN0ZWQpIHtcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsdWUoc2VsZWN0ZWQudmFsdWUpO1xuICAgICAgaWYgKHRoaXMucHJvcHNbJ29uU2VsZWN0ZWRWYWx1ZUNoYW5nZWQnXSkge1xuICAgICAgICB0aGlzLnByb3BzWydvblNlbGVjdGVkVmFsdWVDaGFuZ2VkJ10oc2VsZWN0ZWQudmFsdWUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIm1hdC1tZGMtdGV4dC1maWVsZC13cmFwcGVyIG1kYy1yYWRpb2JveC1maWVsZFwiIGFwcEV4dGVybmFsTGluaz5cbiAgPGxhYmVsIFtuZ1N0eWxlXT1cInByb3BzWydkZXNpZ24nXT8uWycuZm9udC1sYWJlbCddXCI+XG4gICAgPG1hcmtkb3duIFtkYXRhXT1cInRpdGxlXCI+PC9tYXJrZG93bj5cbiAgPC9sYWJlbD5cbiAgPGRpdiAqbmdJZj1cInJhZGlvT3B0aW9uc0xpc3QubGVuZ3RoID4gMFwiPlxuICAgIDxtYXQtcmFkaW8tZ3JvdXAgW3ZhbHVlXT1cImZvcm1Db250cm9sLnZhbHVlPy5pZFwiXG4gICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cIm9uUmFkaW9DaGFuZ2UoJGV2ZW50KVwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIHJhZGlvT3B0aW9uc0xpc3RcIj5cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICA8bWF0LXJhZGlvLWJ1dHRvbiBbdmFsdWVdPVwib3B0aW9uLnZhbHVlLmlkXCI+XG4gICAgICAgICAgICB7eyBvcHRpb24ubGFiZWwgfX1cbiAgICAgICAgICA8L21hdC1yYWRpby1idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9tYXQtcmFkaW8tZ3JvdXA+XG4gIDwvZGl2PlxuICA8Zm9ybWx5LXZhbGlkYXRpb24tbWVzc2FnZSAqbmdJZj1cInNob3dFcnJvclwiIFtmaWVsZF09XCJmaWVsZFwiPlxuICA8L2Zvcm1seS12YWxpZGF0aW9uLW1lc3NhZ2U+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import { FieldType } from '@ngx-formly/core';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class RowSpacerComponent extends FieldType {
|
|
5
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RowSpacerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
6
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: RowSpacerComponent, selector: "formly-row-spacer", usesInheritance: true, ngImport: i0, template: `<div class="row-spacer" [style.paddingTop]="props['spacerMarginTop']" [style.paddingBottom]="props['spacerMarginBottom']"></div>`, isInline: true, styles: [".row-spacer{width:100%}\n"] }); }
|
|
7
|
+
}
|
|
8
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RowSpacerComponent, decorators: [{
|
|
9
|
+
type: Component,
|
|
10
|
+
args: [{ selector: 'formly-row-spacer', template: `<div class="row-spacer" [style.paddingTop]="props['spacerMarginTop']" [style.paddingBottom]="props['spacerMarginBottom']"></div>`, styles: [".row-spacer{width:100%}\n"] }]
|
|
11
|
+
}] });
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWx5LXJvdy1zcGFjZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vcmlnaW4tZm9ybS9zcmMvbGliL2Zvcm1seS9mb3JtbHktcm93LXNwYWNlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7QUFhN0MsTUFBTSxPQUFPLGtCQUFtQixTQUFRLFNBQVM7K0dBQXBDLGtCQUFrQjttR0FBbEIsa0JBQWtCLGdGQVRuQixrSUFBa0k7OzRGQVNqSSxrQkFBa0I7a0JBWDlCLFNBQVM7K0JBQ0UsbUJBQW1CLFlBQ25CLGtJQUFrSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRmllbGRUeXBlIH0gZnJvbSAnQG5neC1mb3JtbHkvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Zvcm1seS1yb3ctc3BhY2VyJyxcbiAgdGVtcGxhdGU6IGA8ZGl2IGNsYXNzPVwicm93LXNwYWNlclwiIFtzdHlsZS5wYWRkaW5nVG9wXT1cInByb3BzWydzcGFjZXJNYXJnaW5Ub3AnXVwiIFtzdHlsZS5wYWRkaW5nQm90dG9tXT1cInByb3BzWydzcGFjZXJNYXJnaW5Cb3R0b20nXVwiPjwvZGl2PmAsXG4gIHN0eWxlczogW1xuICAgIGBcbiAgICAgIC5yb3ctc3BhY2VyIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB9XG4gICAgYCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgUm93U3BhY2VyQ29tcG9uZW50IGV4dGVuZHMgRmllbGRUeXBlIHt9XG4iXX0=
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import { FieldType } from '@ngx-formly/core';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@angular/common";
|
|
5
|
+
import * as i2 from "@ngx-formly/core";
|
|
6
|
+
export class RowWrapperComponent extends FieldType {
|
|
7
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RowWrapperComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
8
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: RowWrapperComponent, selector: "formly-row-wrapper", usesInheritance: true, ngImport: i0, template: `
|
|
9
|
+
<div
|
|
10
|
+
class="row-wrapper"
|
|
11
|
+
[style.justifyContent]="props['justifyContent'] || 'flex-start'"
|
|
12
|
+
>
|
|
13
|
+
<ng-container *ngFor="let f of field.fieldGroup">
|
|
14
|
+
<formly-field [field]="f" [ngClass]="f.className"></formly-field>
|
|
15
|
+
</ng-container>
|
|
16
|
+
</div>
|
|
17
|
+
`, isInline: true, styles: [".row-wrapper{display:flex;width:100%;gap:5px;grid-column:span 12}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i2.FormlyField, selector: "formly-field", inputs: ["field"] }] }); }
|
|
18
|
+
}
|
|
19
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RowWrapperComponent, decorators: [{
|
|
20
|
+
type: Component,
|
|
21
|
+
args: [{ selector: 'formly-row-wrapper', template: `
|
|
22
|
+
<div
|
|
23
|
+
class="row-wrapper"
|
|
24
|
+
[style.justifyContent]="props['justifyContent'] || 'flex-start'"
|
|
25
|
+
>
|
|
26
|
+
<ng-container *ngFor="let f of field.fieldGroup">
|
|
27
|
+
<formly-field [field]="f" [ngClass]="f.className"></formly-field>
|
|
28
|
+
</ng-container>
|
|
29
|
+
</div>
|
|
30
|
+
`, styles: [".row-wrapper{display:flex;width:100%;gap:5px;grid-column:span 12}\n"] }]
|
|
31
|
+
}] });
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWx5LXJvdy13cmFwcGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb3JpZ2luLWZvcm0vc3JjL2xpYi9mb3JtbHkvZm9ybWx5LXJvdy13cmFwcGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGtCQUFrQixDQUFDOzs7O0FBeUI3QyxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsU0FBUzsrR0FBckMsbUJBQW1CO21HQUFuQixtQkFBbUIsaUZBckJwQjs7Ozs7Ozs7O0dBU1Q7OzRGQVlVLG1CQUFtQjtrQkF2Qi9CLFNBQVM7K0JBQ0Usb0JBQW9CLFlBQ3BCOzs7Ozs7Ozs7R0FTVCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRmllbGRUeXBlIH0gZnJvbSAnQG5neC1mb3JtbHkvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Zvcm1seS1yb3ctd3JhcHBlcicsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJyb3ctd3JhcHBlclwiXG4gICAgICBbc3R5bGUuanVzdGlmeUNvbnRlbnRdPVwicHJvcHNbJ2p1c3RpZnlDb250ZW50J10gfHwgJ2ZsZXgtc3RhcnQnXCJcbiAgICA+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBmIG9mIGZpZWxkLmZpZWxkR3JvdXBcIj5cbiAgICAgICAgPGZvcm1seS1maWVsZCBbZmllbGRdPVwiZlwiIFtuZ0NsYXNzXT1cImYuY2xhc3NOYW1lXCI+PC9mb3JtbHktZmllbGQ+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbiAgYCxcbiAgc3R5bGVzOiBbXG4gICAgYFxuICAgICAgLnJvdy13cmFwcGVyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGdhcDogNXB4O1xuICAgICAgICBncmlkLWNvbHVtbjogc3BhbiAxMjtcbiAgICAgIH1cbiAgICBgLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBSb3dXcmFwcGVyQ29tcG9uZW50IGV4dGVuZHMgRmllbGRUeXBlIHt9XG4iXX0=
|