@mediusinc/mng-commons 5.5.0-rc.2 → 5.5.0-rc.3
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/tableview/editor/components/formly/fields/formly-field-fieldset/formly-field-fieldset.component.mjs +3 -3
- package/esm2022/tableview/editor/components/formly/fields/formly-field-tabs/formly-field-tabs.component.mjs +3 -3
- package/esm2022/tableview/editor/helpers/editor-formly.mjs +3 -3
- package/fesm2022/mediusinc-mng-commons-tableview.mjs +6 -6
- package/fesm2022/mediusinc-mng-commons-tableview.mjs.map +1 -1
- package/package.json +1 -1
- package/version-info.json +5 -5
|
@@ -25,10 +25,10 @@ export class FormlyFieldFieldsetComponent extends ACommonsFormlyFieldType {
|
|
|
25
25
|
})));
|
|
26
26
|
}
|
|
27
27
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: FormlyFieldFieldsetComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
28
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.12", type: FormlyFieldFieldsetComponent, isStandalone: true, selector: "mng-formly-field-fieldset", usesInheritance: true, ngImport: i0, template: "@for (group of fieldGroup(); track group) {\n @switch (group.type) {\n @case (typeFieldset) {\n
|
|
28
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.12", type: FormlyFieldFieldsetComponent, isStandalone: true, selector: "mng-formly-field-fieldset", usesInheritance: true, ngImport: i0, template: "@for (group of fieldGroup(); track group) {\n @switch (group.type) {\n @case (typeFieldset) {\n <p-fieldset\n [legend]=\"group.config.props.descriptor | mngFormlyFieldLabel: group.config.props.editorDescriptor | translate\"\n [hidden]=\"group.config.props['groupHidden']\">\n <formly-field [field]=\"group.config\"></formly-field>\n </p-fieldset>\n }\n @default {\n <formly-field [field]=\"group.config\"></formly-field>\n }\n }\n}\n", dependencies: [{ kind: "ngmodule", type: FieldsetModule }, { kind: "component", type: i1.Fieldset, selector: "p-fieldset", inputs: ["legend", "toggleable", "collapsed", "style", "styleClass", "transitionOptions"], outputs: ["collapsedChange", "onBeforeToggle", "onAfterToggle"] }, { kind: "ngmodule", type: FormlyModule }, { kind: "component", type: i2.FormlyField, selector: "formly-field", inputs: ["field"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }, { kind: "pipe", type: FormlyFieldLabelPipe, name: "mngFormlyFieldLabel" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
29
29
|
}
|
|
30
30
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: FormlyFieldFieldsetComponent, decorators: [{
|
|
31
31
|
type: Component,
|
|
32
|
-
args: [{ standalone: true, selector: 'mng-formly-field-fieldset', imports: [FieldsetModule, FormlyModule, TranslateModule, FormlyFieldLabelPipe], changeDetection: ChangeDetectionStrategy.OnPush, template: "@for (group of fieldGroup(); track group) {\n @switch (group.type) {\n @case (typeFieldset) {\n
|
|
32
|
+
args: [{ standalone: true, selector: 'mng-formly-field-fieldset', imports: [FieldsetModule, FormlyModule, TranslateModule, FormlyFieldLabelPipe], changeDetection: ChangeDetectionStrategy.OnPush, template: "@for (group of fieldGroup(); track group) {\n @switch (group.type) {\n @case (typeFieldset) {\n <p-fieldset\n [legend]=\"group.config.props.descriptor | mngFormlyFieldLabel: group.config.props.editorDescriptor | translate\"\n [hidden]=\"group.config.props['groupHidden']\">\n <formly-field [field]=\"group.config\"></formly-field>\n </p-fieldset>\n }\n @default {\n <formly-field [field]=\"group.config\"></formly-field>\n }\n }\n}\n" }]
|
|
33
33
|
}] });
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWx5LWZpZWxkLWZpZWxkc2V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3RhYmxldmlldy9zcmMvZWRpdG9yL2NvbXBvbmVudHMvZm9ybWx5L2ZpZWxkcy9mb3JtbHktZmllbGQtZmllbGRzZXQvZm9ybWx5LWZpZWxkLWZpZWxkc2V0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3RhYmxldmlldy9zcmMvZWRpdG9yL2NvbXBvbmVudHMvZm9ybWx5L2ZpZWxkcy9mb3JtbHktZmllbGQtZmllbGRzZXQvZm9ybWx5LWZpZWxkLWZpZWxkc2V0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyx1QkFBdUIsRUFBRSxTQUFTLEVBQVUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRWpGLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUM5QyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBRWhELE9BQU8sRUFBaUQsa0JBQWtCLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUV4SCxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUN6RSxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQzs7Ozs7QUFTaEYsTUFBTSxPQUFPLDRCQUFpQyxTQUFRLHVCQUF5RDtJQVAvRzs7UUFRb0IsaUJBQVksR0FBRyxrQkFBa0IsQ0FBQyxRQUFRLENBQUM7UUFFcEQsZUFBVSxHQUFHLE1BQU0sQ0FBa0UsRUFBRSxDQUFDLENBQUM7S0Fjbkc7SUFaWSxRQUFRO1FBQ2IsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBRWpCLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUNmLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxLQUFLLFNBQVM7WUFDL0IsQ0FBQyxDQUFDLEVBQUU7WUFDSixDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDNUIsSUFBSSxFQUFJLENBQThCLENBQUMsS0FBSyxDQUFDLFVBQTZDLEVBQUUsSUFBSTtnQkFDaEcsTUFBTSxFQUFFLENBQTZCO2FBQ3hDLENBQUMsQ0FBQyxDQUNaLENBQUM7SUFDTixDQUFDOytHQWhCUSw0QkFBNEI7bUdBQTVCLDRCQUE0Qiw0R0NsQnpDLG1pQkFjQSwyQ0RDYyxjQUFjLDRQQUFFLFlBQVksd0hBQUUsZUFBZSx1RkFBRSxvQkFBb0I7OzRGQUdwRSw0QkFBNEI7a0JBUHhDLFNBQVM7aUNBQ00sSUFBSSxZQUNOLDJCQUEyQixXQUU1QixDQUFDLGNBQWMsRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLG9CQUFvQixDQUFDLG1CQUM3RCx1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBPbkluaXQsIHNpZ25hbH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7Rm9ybWx5TW9kdWxlfSBmcm9tICdAbmd4LWZvcm1seS9jb3JlJztcbmltcG9ydCB7VHJhbnNsYXRlTW9kdWxlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7RmllbGRzZXRNb2R1bGV9IGZyb20gJ3ByaW1lbmcvZmllbGRzZXQnO1xuXG5pbXBvcnQge0NvbW1vbnNGb3JtbHlGaWVsZENvbmZpZywgRmllbGRHcm91cERlc2NyaXB0b3IsIEZpZWxkR3JvdXBUeXBlRW51bX0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy90YWJsZXZpZXcvYXBpJztcblxuaW1wb3J0IHtGb3JtbHlGaWVsZExhYmVsUGlwZX0gZnJvbSAnLi4vLi4vcGlwZXMvZm9ybWx5LWZpZWxkLWxhYmVsLnBpcGUnO1xuaW1wb3J0IHtBQ29tbW9uc0Zvcm1seUZpZWxkVHlwZX0gZnJvbSAnLi4vZm9ybWx5LWZpZWxkLXR5cGUuYWJzdHJhY3QuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ21uZy1mb3JtbHktZmllbGQtZmllbGRzZXQnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9mb3JtbHktZmllbGQtZmllbGRzZXQuY29tcG9uZW50Lmh0bWwnLFxuICAgIGltcG9ydHM6IFtGaWVsZHNldE1vZHVsZSwgRm9ybWx5TW9kdWxlLCBUcmFuc2xhdGVNb2R1bGUsIEZvcm1seUZpZWxkTGFiZWxQaXBlXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBGb3JtbHlGaWVsZEZpZWxkc2V0Q29tcG9uZW50PEVUPiBleHRlbmRzIEFDb21tb25zRm9ybWx5RmllbGRUeXBlPEVULCBFVCwgRmllbGRHcm91cERlc2NyaXB0b3I8RVQ+PiBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgcHVibGljIHJlYWRvbmx5IHR5cGVGaWVsZHNldCA9IEZpZWxkR3JvdXBUeXBlRW51bS5GaWVsZHNldDtcblxuICAgIHB1YmxpYyBmaWVsZEdyb3VwID0gc2lnbmFsPHtjb25maWc6IENvbW1vbnNGb3JtbHlGaWVsZENvbmZpZzsgdHlwZT86IEZpZWxkR3JvdXBUeXBlRW51bX1bXT4oW10pO1xuXG4gICAgb3ZlcnJpZGUgbmdPbkluaXQoKSB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG5cbiAgICAgICAgdGhpcy5maWVsZEdyb3VwLnNldChcbiAgICAgICAgICAgIHRoaXMuZmllbGQuZmllbGRHcm91cCA9PT0gdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgPyBbXVxuICAgICAgICAgICAgICAgIDogdGhpcy5maWVsZC5maWVsZEdyb3VwLm1hcChmID0+ICh7XG4gICAgICAgICAgICAgICAgICAgICAgdHlwZTogKChmIGFzIENvbW1vbnNGb3JtbHlGaWVsZENvbmZpZykucHJvcHMuZGVzY3JpcHRvciBhcyBGaWVsZEdyb3VwRGVzY3JpcHRvcjxhbnksIGFueT4pPy50eXBlLFxuICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZzogZiBhcyBDb21tb25zRm9ybWx5RmllbGRDb25maWdcbiAgICAgICAgICAgICAgICAgIH0pKVxuICAgICAgICApO1xuICAgIH1cbn1cbiIsIkBmb3IgKGdyb3VwIG9mIGZpZWxkR3JvdXAoKTsgdHJhY2sgZ3JvdXApIHtcbiAgICBAc3dpdGNoIChncm91cC50eXBlKSB7XG4gICAgICAgIEBjYXNlICh0eXBlRmllbGRzZXQpIHtcbiAgICAgICAgICAgIDxwLWZpZWxkc2V0XG4gICAgICAgICAgICAgICAgW2xlZ2VuZF09XCJncm91cC5jb25maWcucHJvcHMuZGVzY3JpcHRvciB8IG1uZ0Zvcm1seUZpZWxkTGFiZWw6IGdyb3VwLmNvbmZpZy5wcm9wcy5lZGl0b3JEZXNjcmlwdG9yIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICBbaGlkZGVuXT1cImdyb3VwLmNvbmZpZy5wcm9wc1snZ3JvdXBIaWRkZW4nXVwiPlxuICAgICAgICAgICAgICAgIDxmb3JtbHktZmllbGQgW2ZpZWxkXT1cImdyb3VwLmNvbmZpZ1wiPjwvZm9ybWx5LWZpZWxkPlxuICAgICAgICAgICAgPC9wLWZpZWxkc2V0PlxuICAgICAgICB9XG4gICAgICAgIEBkZWZhdWx0IHtcbiAgICAgICAgICAgIDxmb3JtbHktZmllbGQgW2ZpZWxkXT1cImdyb3VwLmNvbmZpZ1wiPjwvZm9ybWx5LWZpZWxkPlxuICAgICAgICB9XG4gICAgfVxufVxuIl19
|
|
@@ -19,10 +19,10 @@ export class FormlyFieldTabsComponent extends ACommonsFormlyFieldType {
|
|
|
19
19
|
this.fieldGroup.set(this.field.fieldGroup === undefined ? [] : this.field.fieldGroup);
|
|
20
20
|
}
|
|
21
21
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: FormlyFieldTabsComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
22
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.12", type: FormlyFieldTabsComponent, isStandalone: true, selector: "mng-formly-field-tabs", usesInheritance: true, ngImport: i0, template: "<p-tabView [scrollable]=\"true\">\n @for (tab of fieldGroup(); track tab) {\n <p-tabPanel\n [header]=\"tab.props.descriptor | mngFormlyFieldLabel: tab.props.editorDescriptor | translate\"\n [headerStyleClass]=\"(formControl!.valid ? 'p-tabview-title' : '') + (tab.props
|
|
22
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.12", type: FormlyFieldTabsComponent, isStandalone: true, selector: "mng-formly-field-tabs", usesInheritance: true, ngImport: i0, template: "<p-tabView [scrollable]=\"true\">\n @for (tab of fieldGroup(); track tab) {\n <p-tabPanel\n [header]=\"tab.props.descriptor | mngFormlyFieldLabel: tab.props.editorDescriptor | translate\"\n [headerStyleClass]=\"(formControl!.valid ? 'p-tabview-title' : '') + (tab.props['groupHidden'] ? ' hidden' : '')\"\n [hidden]=\"tab.props['groupHidden']\">\n <ng-template pTemplate=\"header\">\n <span class=\"p-tabview-title\" [class.p-tabview-title-error]=\"formState.submittedOn && formState['tab_' + (tab.id ? tab.id : (tab.key ?? '')) + '_invalid']\">{{\n tab.props.descriptor | mngFormlyFieldLabel: tab.props.editorDescriptor | translate\n }}</span>\n </ng-template>\n <formly-field [field]=\"tab\"></formly-field>\n </p-tabPanel>\n }\n</p-tabView>\n", dependencies: [{ kind: "ngmodule", type: TabViewModule }, { kind: "component", type: i1.TabView, selector: "p-tabView", inputs: ["style", "styleClass", "controlClose", "scrollable", "activeIndex", "selectOnFocus", "nextButtonAriaLabel", "prevButtonAriaLabel", "autoHideButtons", "tabindex"], outputs: ["onChange", "onClose", "activeIndexChange"] }, { kind: "component", type: i1.TabPanel, selector: "p-tabPanel", inputs: ["closable", "headerStyle", "headerStyleClass", "cache", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "selected", "disabled", "header", "leftIcon", "rightIcon"] }, { kind: "directive", type: i2.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: FormlyModule }, { kind: "component", type: i4.FormlyField, selector: "formly-field", inputs: ["field"] }, { kind: "pipe", type: FormlyFieldLabelPipe, name: "mngFormlyFieldLabel" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
23
23
|
}
|
|
24
24
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: FormlyFieldTabsComponent, decorators: [{
|
|
25
25
|
type: Component,
|
|
26
|
-
args: [{ standalone: true, selector: 'mng-formly-field-tabs', imports: [TabViewModule, TranslateModule, FormlyModule, FormlyFieldLabelPipe], changeDetection: ChangeDetectionStrategy.OnPush, template: "<p-tabView [scrollable]=\"true\">\n @for (tab of fieldGroup(); track tab) {\n <p-tabPanel\n [header]=\"tab.props.descriptor | mngFormlyFieldLabel: tab.props.editorDescriptor | translate\"\n [headerStyleClass]=\"(formControl!.valid ? 'p-tabview-title' : '') + (tab.props
|
|
26
|
+
args: [{ standalone: true, selector: 'mng-formly-field-tabs', imports: [TabViewModule, TranslateModule, FormlyModule, FormlyFieldLabelPipe], changeDetection: ChangeDetectionStrategy.OnPush, template: "<p-tabView [scrollable]=\"true\">\n @for (tab of fieldGroup(); track tab) {\n <p-tabPanel\n [header]=\"tab.props.descriptor | mngFormlyFieldLabel: tab.props.editorDescriptor | translate\"\n [headerStyleClass]=\"(formControl!.valid ? 'p-tabview-title' : '') + (tab.props['groupHidden'] ? ' hidden' : '')\"\n [hidden]=\"tab.props['groupHidden']\">\n <ng-template pTemplate=\"header\">\n <span class=\"p-tabview-title\" [class.p-tabview-title-error]=\"formState.submittedOn && formState['tab_' + (tab.id ? tab.id : (tab.key ?? '')) + '_invalid']\">{{\n tab.props.descriptor | mngFormlyFieldLabel: tab.props.editorDescriptor | translate\n }}</span>\n </ng-template>\n <formly-field [field]=\"tab\"></formly-field>\n </p-tabPanel>\n }\n</p-tabView>\n" }]
|
|
27
27
|
}] });
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWx5LWZpZWxkLXRhYnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vdGFibGV2aWV3L3NyYy9lZGl0b3IvY29tcG9uZW50cy9mb3JtbHkvZmllbGRzL2Zvcm1seS1maWVsZC10YWJzL2Zvcm1seS1maWVsZC10YWJzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3RhYmxldmlldy9zcmMvZWRpdG9yL2NvbXBvbmVudHMvZm9ybWx5L2ZpZWxkcy9mb3JtbHktZmllbGQtdGFicy9mb3JtbHktZmllbGQtdGFicy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsdUJBQXVCLEVBQUUsU0FBUyxFQUFVLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUVqRixPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDOUMsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3BELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUk5QyxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUN6RSxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQzs7Ozs7O0FBU2hGLE1BQU0sT0FBTyx3QkFBeUIsU0FBUSx1QkFBK0Q7SUFQN0c7O1FBUVcsZUFBVSxHQUFHLE1BQU0sQ0FBNkIsRUFBRSxDQUFDLENBQUM7S0FPOUQ7SUFMWSxRQUFRO1FBQ2IsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBRWpCLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQXlDLENBQUMsQ0FBQztJQUMxSCxDQUFDOytHQVBRLHdCQUF3QjttR0FBeEIsd0JBQXdCLHdHQ2xCckMsazNCQWVBLDJDREFjLGFBQWEsa3JCQUFFLGVBQWUsMkZBQUUsWUFBWSxvSEFBRSxvQkFBb0I7OzRGQUduRSx3QkFBd0I7a0JBUHBDLFNBQVM7aUNBQ00sSUFBSSxZQUNOLHVCQUF1QixXQUV4QixDQUFDLGFBQWEsRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixDQUFDLG1CQUM1RCx1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBPbkluaXQsIHNpZ25hbH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7Rm9ybWx5TW9kdWxlfSBmcm9tICdAbmd4LWZvcm1seS9jb3JlJztcbmltcG9ydCB7VHJhbnNsYXRlTW9kdWxlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7VGFiVmlld01vZHVsZX0gZnJvbSAncHJpbWVuZy90YWJ2aWV3JztcblxuaW1wb3J0IHtDb21tb25zRm9ybWx5RmllbGRDb25maWcsIEZpZWxkVGFiR3JvdXBEZXNjcmlwdG9yfSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL3RhYmxldmlldy9hcGknO1xuXG5pbXBvcnQge0Zvcm1seUZpZWxkTGFiZWxQaXBlfSBmcm9tICcuLi8uLi9waXBlcy9mb3JtbHktZmllbGQtbGFiZWwucGlwZSc7XG5pbXBvcnQge0FDb21tb25zRm9ybWx5RmllbGRUeXBlfSBmcm9tICcuLi9mb3JtbHktZmllbGQtdHlwZS5hYnN0cmFjdC5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnbW5nLWZvcm1seS1maWVsZC10YWJzJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZm9ybWx5LWZpZWxkLXRhYnMuY29tcG9uZW50Lmh0bWwnLFxuICAgIGltcG9ydHM6IFtUYWJWaWV3TW9kdWxlLCBUcmFuc2xhdGVNb2R1bGUsIEZvcm1seU1vZHVsZSwgRm9ybWx5RmllbGRMYWJlbFBpcGVdLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1seUZpZWxkVGFic0NvbXBvbmVudCBleHRlbmRzIEFDb21tb25zRm9ybWx5RmllbGRUeXBlPGFueSwgYW55LCBGaWVsZFRhYkdyb3VwRGVzY3JpcHRvcjxhbnk+PiBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgcHVibGljIGZpZWxkR3JvdXAgPSBzaWduYWw8Q29tbW9uc0Zvcm1seUZpZWxkQ29uZmlnW10+KFtdKTtcblxuICAgIG92ZXJyaWRlIG5nT25Jbml0KCkge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuXG4gICAgICAgIHRoaXMuZmllbGRHcm91cC5zZXQodGhpcy5maWVsZC5maWVsZEdyb3VwID09PSB1bmRlZmluZWQgPyBbXSA6ICh0aGlzLmZpZWxkLmZpZWxkR3JvdXAgYXMgQ29tbW9uc0Zvcm1seUZpZWxkQ29uZmlnW10pKTtcbiAgICB9XG59XG4iLCI8cC10YWJWaWV3IFtzY3JvbGxhYmxlXT1cInRydWVcIj5cbiAgICBAZm9yICh0YWIgb2YgZmllbGRHcm91cCgpOyB0cmFjayB0YWIpIHtcbiAgICAgICAgPHAtdGFiUGFuZWxcbiAgICAgICAgICAgIFtoZWFkZXJdPVwidGFiLnByb3BzLmRlc2NyaXB0b3IgfCBtbmdGb3JtbHlGaWVsZExhYmVsOiB0YWIucHJvcHMuZWRpdG9yRGVzY3JpcHRvciB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICBbaGVhZGVyU3R5bGVDbGFzc109XCIoZm9ybUNvbnRyb2whLnZhbGlkID8gJ3AtdGFidmlldy10aXRsZScgOiAnJykgKyAodGFiLnByb3BzWydncm91cEhpZGRlbiddID8gJyBoaWRkZW4nIDogJycpXCJcbiAgICAgICAgICAgIFtoaWRkZW5dPVwidGFiLnByb3BzWydncm91cEhpZGRlbiddXCI+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiaGVhZGVyXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwLXRhYnZpZXctdGl0bGVcIiBbY2xhc3MucC10YWJ2aWV3LXRpdGxlLWVycm9yXT1cImZvcm1TdGF0ZS5zdWJtaXR0ZWRPbiAmJiBmb3JtU3RhdGVbJ3RhYl8nICsgKHRhYi5pZCA/IHRhYi5pZCA6ICh0YWIua2V5ID8/ICcnKSkgKyAnX2ludmFsaWQnXVwiPnt7XG4gICAgICAgICAgICAgICAgICAgIHRhYi5wcm9wcy5kZXNjcmlwdG9yIHwgbW5nRm9ybWx5RmllbGRMYWJlbDogdGFiLnByb3BzLmVkaXRvckRlc2NyaXB0b3IgfCB0cmFuc2xhdGVcbiAgICAgICAgICAgICAgICB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8Zm9ybWx5LWZpZWxkIFtmaWVsZF09XCJ0YWJcIj48L2Zvcm1seS1maWVsZD5cbiAgICAgICAgPC9wLXRhYlBhbmVsPlxuICAgIH1cbjwvcC10YWJWaWV3PlxuIl19
|
|
@@ -73,7 +73,7 @@ export function createFormlyTabType(tabGroups, editorDescriptor, formlyConfig, f
|
|
|
73
73
|
tabField.props.label = tab.title;
|
|
74
74
|
}
|
|
75
75
|
if (tab.hiddenExpression) {
|
|
76
|
-
tabField.expressions['
|
|
76
|
+
tabField.expressions['props.groupHidden'] = tab.hiddenExpression;
|
|
77
77
|
}
|
|
78
78
|
tabField.fieldGroup.push(...createFormlyGroupType(tab.fields, editorDescriptor, formlyConfig, formEditorComponent));
|
|
79
79
|
tabsField.fieldGroup.push(tabField);
|
|
@@ -109,7 +109,7 @@ export function createFormlyGroupType(groups, editorDescriptor, formlyConfig, fo
|
|
|
109
109
|
groupField.props.label = group.title;
|
|
110
110
|
}
|
|
111
111
|
if (group.hiddenExpression) {
|
|
112
|
-
groupField.expressions['
|
|
112
|
+
groupField.expressions['props.groupHidden'] = group.hiddenExpression;
|
|
113
113
|
}
|
|
114
114
|
groupField.fieldGroup.push(...createFormlyFields(group, editorDescriptor, formlyConfig, formEditorComponent));
|
|
115
115
|
groupsField.fieldGroup.push(groupField);
|
|
@@ -385,4 +385,4 @@ export function createFormlyValidation(config, validation, formlyConfig) {
|
|
|
385
385
|
}
|
|
386
386
|
}
|
|
387
387
|
}
|
|
388
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLWZvcm1seS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3RhYmxldmlldy9zcmMvZWRpdG9yL2hlbHBlcnMvZWRpdG9yLWZvcm1seS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFPQSxPQUFPLEVBQUMsb0JBQW9CLEVBQUUsY0FBYyxFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFDakYsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQ2xELE9BQU8sRUFLSCxxQkFBcUIsRUFHckIsb0JBQW9CLEVBQ3BCLGtCQUFrQixFQUNsQixxQkFBcUIsRUFDckIseUJBQXlCLEVBQ3pCLG1CQUFtQixFQUNuQix5QkFBeUIsRUFDekIsK0JBQStCLEVBRS9CLHlCQUF5QixFQUV6Qix1QkFBdUIsRUFDdkIsdUJBQXVCLEVBQzFCLE1BQU0sc0NBQXNDLENBQUM7QUFFOUMsT0FBTyxFQUFDLG1CQUFtQixFQUFFLGNBQWMsRUFBRSxxQkFBcUIsRUFBRSxnQkFBZ0IsRUFBRSxxQkFBcUIsRUFBRSxnQkFBZ0IsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBRTFKLE1BQU0sVUFBVSxnQ0FBZ0MsQ0FDNUMsVUFBcUMsRUFDckMsWUFBMEIsRUFDMUIsbUJBQStDO0lBRS9DLE1BQU0sTUFBTSxHQUErQixFQUFFLENBQUM7SUFFOUMsSUFBSSxVQUFVLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDekIsVUFBVSxHQUFHLDRCQUE0QixDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFRCxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUN4RixnQkFBZ0I7UUFDaEIsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLHFCQUFxQixDQUFDLFVBQVUsQ0FB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LENBQUMsSUFBaUI7d0JBQ2hELGlCQUFpQixFQUFFLHdCQUF3Qjt3QkFDM0MsYUFBYSxFQUFFLHdCQUF3QixDQUFDLEtBQUssRUFBRSxtQkFBbUI7d0JBQ2xFLGNBQWMsRUFBRSx3QkFBd0IsQ0FBQyxLQUFLLEVBQUUsY0FBYztxQkFDakUsQ0FBQyxDQUFDO2dCQUNQLENBQUM7YUFDSixDQUFDO1lBQ0YsSUFBSSxVQUFVLENBQUMsT0FBTyxJQUFJLElBQUksRUFBRSxDQUFDO2dCQUM3QixNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDO1lBQ3pELENBQUM7UUFDTCxDQUFDO0lBQ0wsQ0FBQztTQUFNLENBQUM7UUFDSixJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztZQUNwQyxNQUFNLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztRQUMzQixDQUFDO1FBQ0QsSUFBSSxVQUFVLENBQUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxDQUFDO1lBQ2hDLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDO2dCQUNuQixJQUFJLEVBQUUsVUFBVSxDQUFDLElBQUk7Z0JBQ3JCLE9BQU8sRUFBRSxFQUFDLFNBQVMsRUFBRSxVQUFVLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBQzthQUNyRCxDQUFDLENBQUM7UUFDUCxDQUFDO2FBQU0sQ0FBQztZQUNKLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM1QyxDQUFDO0lBQ0wsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0Fic3RyYWN0Q29udHJvbCwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7Rm9ybWx5Q29uZmlnfSBmcm9tICdAbmd4LWZvcm1seS9jb3JlJztcbmltcG9ydCB7VmFsaWRhdGlvbk1lc3NhZ2VPcHRpb259IGZyb20gJ0BuZ3gtZm9ybWx5L2NvcmUvbGliL21vZGVscyc7XG5pbXBvcnQge0Zvcm1seUZpZWxkQ29uZmlnfSBmcm9tICdAbmd4LWZvcm1seS9jb3JlL2xpYi9tb2RlbHMvZmllbGRjb25maWcnO1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtDb21tb25zSW50ZXJuYWxFcnJvciwgQ29tbW9uc1NlcnZpY2V9IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMvY29yZSc7XG5pbXBvcnQge3R5cGV9IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMvbW9kZWwnO1xuaW1wb3J0IHtcbiAgICBBRmllbGREZXNjcmlwdG9yLFxuICAgIENvbW1vbnNGb3JtbHlGaWVsZENvbmZpZyxcbiAgICBDb21tb25zRm9ybWx5VmFsaWRhdGlvbixcbiAgICBFZGl0b3JEZXNjcmlwdG9ySW5zdCxcbiAgICBGaWVsZEFjdGlvbkRlc2NyaXB0b3IsXG4gICAgRmllbGRCYXNlVmFsaWRhdG9yLFxuICAgIEZpZWxkR3JvdXBEZXNjcmlwdG9yLFxuICAgIEZpZWxkSW5wdXREZXNjcmlwdG9yLFxuICAgIEZpZWxkSW5wdXRUeXBlRW51bSxcbiAgICBGaWVsZExvb2t1cERlc2NyaXB0b3IsXG4gICAgRmllbGRMb29rdXBFbnVtRGVzY3JpcHRvcixcbiAgICBGaWVsZExvb2t1cFR5cGVFbnVtLFxuICAgIEZpZWxkTWFueUVkaXRvckRlc2NyaXB0b3IsXG4gICAgRmllbGRNYW55VG9NYW55RWRpdG9yRGVzY3JpcHRvcixcbiAgICBGaWVsZFRhYkdyb3VwRGVzY3JpcHRvcixcbiAgICBGaWVsZFZhbGlkYXRpb25EZXNjcmlwdG9yLFxuICAgIElGb3JtRWRpdG9yQ29tcG9uZW50LFxuICAgIFRhYmxldmlld0Rlc2NyaXB0b3JJbnN0LFxuICAgIFRhYmxldmlld0VkaXRvclR5cGVFbnVtXG59IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMvdGFibGV2aWV3L2FwaSc7XG5cbmltcG9ydCB7ZW1haWxWYWxpZGF0aW9uTmFtZSwgZW1haWxWYWxpZGF0b3IsIG1heERhdGVWYWxpZGF0aW9uTmFtZSwgbWF4RGF0ZVZhbGlkYXRvciwgbWluRGF0ZVZhbGlkYXRpb25OYW1lLCBtaW5EYXRlVmFsaWRhdG9yfSBmcm9tICcuL2VkaXRvci12YWxpZGF0b3JzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUZvcm1seUNvbmZpZ0Zyb21EZXNjcmlwdG9yPEl0ZW0+KFxuICAgIGRlc2NyaXB0b3I6IEVkaXRvckRlc2NyaXB0b3JJbnN0PGFueT4sXG4gICAgZm9ybWx5Q29uZmlnOiBGb3JtbHlDb25maWcsXG4gICAgZm9ybUVkaXRvckNvbXBvbmVudDogSUZvcm1FZGl0b3JDb21wb25lbnQ8SXRlbT5cbik6IENvbW1vbnNGb3JtbHlGaWVsZENvbmZpZ1tdIHtcbiAgICBjb25zdCBmaWVsZHM6IENvbW1vbnNGb3JtbHlGaWVsZENvbmZpZ1tdID0gW107XG5cbiAgICBpZiAoZGVzY3JpcHRvci5pc0xvY2FsaXplZCkge1xuICAgICAgICBkZXNjcmlwdG9yID0gY3JlYXRlRm9ybWx5TG9jYWxpemF0aW9uc1RhYihkZXNjcmlwdG9yKTtcbiAgICB9XG5cbiAgICBpZiAoIWRlc2NyaXB0b3IuaXNMb2NhbGl6ZWQgJiYgZGVzY3JpcHRvci50YWJzLmxlbmd0aCA9PT0gMSAmJiBkZXNjcmlwdG9yLnRhYnNbMF0uZGVmYXVsdCkge1xuICAgICAgICAvLyBkb250IHVzZSB0YWJzXG4gICAgICAgIGZpZWxkcy5wdXNoKC4uLmNyZWF0ZUZvcm1seUdyb3VwVHlwZShkZXNjcmlwdG9yLnRhYnNbMF0uZmllbGRzLCBkZXNjcmlwdG9yLCBmb3JtbHlDb25maWcsIGZvcm1FZGl0b3JDb21wb25lbnQpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBmaWVsZHMucHVzaCguLi5jcmVhdGVGb3JtbHlUYWJUeXBlKGRlc2NyaXB0b3IudGFicywgZGVzY3JpcHRvciwgZm9ybWx5Q29uZmlnLCBmb3JtRWRpdG9yQ29tcG9uZW50KSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZpZWxkcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUZvcm1seUxvY2FsaXphdGlvbnNUYWI8SXRlbT4oZGVzY3JpcHRvcjogRWRpdG9yRGVzY3JpcHRvckluc3Q8SXRlbT4pIHtcbiAgICBpZiAoZGVzY3JpcHRvci5pc0xvY2FsaXplZCAmJiBkZXNjcmlwdG9yLnRhYmxldmlld0VkaXRvclR5cGUgIT09IFRhYmxldmlld0VkaXRvclR5cGVFbnVtLkRldGFpbHMpIHtcbiAgICAgICAgaWYgKCFkZXNjcmlwdG9yLmxvY2FsaXphdGlvbk1vZGVsKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgQ29tbW9uc0ludGVybmFsRXJyb3IoJ0xvY2FsaXphdGlvbiBtb2RlbCBtdXN0IGJlIGRlZmluZWQuJyk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbG9jYWxpemF0aW9uc1RhYmxlVmlld0Rlc2NyaXB0b3IgPSBuZXcgVGFibGV2aWV3RGVzY3JpcHRvckluc3Q8YW55LCBuZXZlciwgbmV2ZXIsIEl0ZW0+KGRlc2NyaXB0b3IubG9jYWxpemF0aW9uTW9kZWwpO1xuICAgICAgICBpZiAoIWRlc2NyaXB0b3IubG9jYWxpemF0aW9uTG9jYWxlUHJvcGVydHkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBDb21tb25zSW50ZXJuYWxFcnJvcignTG9jYWxpemF0aW9uIGxvY2FsZSBwcm9wZXJ0eSBtdXN0IGJlIGRlZmluZWQuJyk7XG4gICAgICAgIH1cbiAgICAgICAgbG9jYWxpemF0aW9uc1RhYmxlVmlld0Rlc2NyaXB0b3IuYWRkQ29sdW1uKGRlc2NyaXB0b3IubG9jYWxpemF0aW9uTG9jYWxlUHJvcGVydHkpO1xuICAgICAgICBsb2NhbGl6YXRpb25zVGFibGVWaWV3RGVzY3JpcHRvci5lZGl0RWRpdG9yLmFkZEZpZWxkKGRlc2NyaXB0b3IubG9jYWxpemF0aW9uTG9jYWxlUHJvcGVydHkpLndpdGhEaXNhYmxlZCh0cnVlKTtcbiAgICAgICAgbG9jYWxpemF0aW9uc1RhYmxlVmlld0Rlc2NyaXB0b3IuZGV0YWlsc0VkaXRvci5hZGRGaWVsZChkZXNjcmlwdG9yLmxvY2FsaXphdGlvbkxvY2FsZVByb3BlcnR5KS53aXRoRGlzYWJsZWQodHJ1ZSk7XG4gICAgICAgIGxvY2FsaXphdGlvbnNUYWJsZVZpZXdEZXNjcmlwdG9yLmFkZEVkaXRvclxuICAgICAgICAgICAgLmFkZEZpZWxkTG9va3VwV2l0aFByb3ZpZGVyKGRlc2NyaXB0b3IubG9jYWxpemF0aW9uTG9jYWxlUHJvcGVydHksIENvbW1vbnNTZXJ2aWNlLCB0eXBlPHN0cmluZz4oKSlcbiAgICAgICAgICAgIC53aXRoTG9va3VwKChxcCwgc2VydmljZSkgPT4gc2VydmljZS5hcHBEYXRhTG9jYWxlcygpKVxuICAgICAgICAgICAgLndpdGhEaXNhYmxlZChmYWxzZSlcbiAgICAgICAgICAgIC53aXRoUmVxdWlyZWQoKTtcbiAgICAgICAgZGVzY3JpcHRvci5maWVsZHMuZm9yRWFjaChmaWVsZCA9PiB7XG4gICAgICAgICAgICBpZiAoZmllbGQuaXNMb2NhbGl6ZWQpIHtcbiAgICAgICAgICAgICAgICBsb2NhbGl6YXRpb25zVGFibGVWaWV3RGVzY3JpcHRvci5hZGRDb2x1bW4oZmllbGQucHJvcGVydHkpO1xuICAgICAgICAgICAgICAgIGxvY2FsaXphdGlvbnNUYWJsZVZpZXdEZXNjcmlwdG9yLmFkZEZpZWxkKGZpZWxkLnByb3BlcnR5KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IGRlc2NyaXB0b3JXaXRoTG9jYWxpemF0aW9ucyA9IGRlc2NyaXB0b3IuY29weSgpO1xuICAgICAgICBkZXNjcmlwdG9yV2l0aExvY2FsaXphdGlvbnMuY3JlYXRlVGFiR3JvdXAoJ2xvY2FsaXphdGlvbnMnKTtcbiAgICAgICAgaWYgKCFkZXNjcmlwdG9yLmxvY2FsaXphdGlvbkxvY2FsaXphdGlvblByb3BlcnR5KSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgQ29tbW9uc0ludGVybmFsRXJyb3IoJ0xvY2FsaXphdGlvbiBsb2NhbGl6YXRpb24gcHJvcGVydHkgbXVzdCBiZSBkZWZpbmVkJyk7XG4gICAgICAgIH1cbiAgICAgICAgZGVzY3JpcHRvcldpdGhMb2NhbGl6YXRpb25zLmFkZEZpZWxkTWFueUVkaXRvclVuc2FmZShkZXNjcmlwdG9yLmxvY2FsaXphdGlvbkxvY2FsaXphdGlvblByb3BlcnR5LCBsb2NhbGl6YXRpb25zVGFibGVWaWV3RGVzY3JpcHRvcik7XG5cbiAgICAgICAgcmV0dXJuIGRlc2NyaXB0b3JXaXRoTG9jYWxpemF0aW9ucztcbiAgICB9XG4gICAgcmV0dXJuIGRlc2NyaXB0b3I7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVGb3JtbHlUYWJUeXBlPEl0ZW0+KFxuICAgIHRhYkdyb3VwczogRmllbGRUYWJHcm91cERlc2NyaXB0b3I8YW55PltdLFxuICAgIGVkaXRvckRlc2NyaXB0b3I6IEVkaXRvckRlc2NyaXB0b3JJbnN0PGFueT4sXG4gICAgZm9ybWx5Q29uZmlnOiBGb3JtbHlDb25maWcsXG4gICAgZm9ybUVkaXRvckNvbXBvbmVudDogSUZvcm1FZGl0b3JDb21wb25lbnQ8SXRlbT5cbik6IENvbW1vbnNGb3JtbHlGaWVsZENvbmZpZ1tdIHtcbiAgICBjb25zdCB0YWJzRmllbGQ6IENvbW1vbnNGb3JtbHlGaWVsZENvbmZpZyA9IHtcbiAgICAgICAgdHlwZTogJ3RhYnMnLFxuICAgICAgICBmaWVsZEdyb3VwOiBbXSxcbiAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICAgIGZvcm1FZGl0b3JDb21wb25lbnQsXG4gICAgICAgICAgICBlZGl0b3JEZXNjcmlwdG9yOiBlZGl0b3JEZXNjcmlwdG9yXG4gICAgICAgIH1cbiAgICB9O1xuICAgIGZvciAoY29uc3QgdGFiIG9mIHRhYkdyb3Vwcykge1xuICAgICAgICBjb25zdCB0YWJGaWVsZDogQ29tbW9uc0Zvcm1seUZpZWxkQ29uZmlnID0ge1xuICAgICAgICAgICAgaWQ6IHRhYi5uYW1lLFxuICAgICAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICAgICAgICBmb3JtRWRpdG9yQ29tcG9uZW50LFxuICAgICAgICAgICAgICAgIGRlc2NyaXB0b3I6IHRhYixcbiAgICAgICAgICAgICAgICBlZGl0b3JEZXNjcmlwdG9yOiBlZGl0b3JEZXNjcmlwdG9yXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZXhwcmVzc2lvbnM6IHt9LFxuICAgICAgICAgICAgZmllbGRHcm91cDogW11cbiAgICAgICAgfTtcbiAgICAgICAgaWYgKHRhYi50aXRsZSkge1xuICAgICAgICAgICAgdGFiRmllbGQucHJvcHMubGFiZWwgPSB0YWIudGl0bGU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGFiLmhpZGRlbkV4cHJlc3Npb24pIHtcbiAgICAgICAgICAgIHRhYkZpZWxkLmV4cHJlc3Npb25zIVsnaGlkZSddID0gdGFiLmhpZGRlbkV4cHJlc3Npb24gYXMgc3RyaW5nIHwgKChmaWVsZDogRm9ybWx5RmllbGRDb25maWcpID0+IGFueSkgfCBPYnNlcnZhYmxlPGFueT47XG4gICAgICAgIH1cblxuICAgICAgICB0YWJGaWVsZC5maWVsZEdyb3VwIS5wdXNoKC4uLmNyZWF0ZUZvcm1seUdyb3VwVHlwZSh0YWIuZmllbGRzLCBlZGl0b3JEZXNjcmlwdG9yLCBmb3JtbHlDb25maWcsIGZvcm1FZGl0b3JDb21wb25lbnQpKTtcbiAgICAgICAgdGFic0ZpZWxkLmZpZWxkR3JvdXAhLnB1c2godGFiRmllbGQpO1xuICAgIH1cbiAgICByZXR1cm4gW3RhYnNGaWVsZF07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVGb3JtbHlHcm91cFR5cGU8SXRlbT4oXG4gICAgZ3JvdXBzOiBGaWVsZEdyb3VwRGVzY3JpcHRvcjxhbnk+W10sXG4gICAgZWRpdG9yRGVzY3JpcHRvcjogRWRpdG9yRGVzY3JpcHRvckluc3Q8YW55PixcbiAgICBmb3JtbHlDb25maWc6IEZvcm1seUNvbmZpZyxcbiAgICBmb3JtRWRpdG9yQ29tcG9uZW50OiBJRm9ybUVkaXRvckNvbXBvbmVudDxJdGVtPlxuKTogQ29tbW9uc0Zvcm1seUZpZWxkQ29uZmlnW10ge1xuICAgIGlmIChncm91cHMubGVuZ3RoID09PSAxICYmIGdyb3Vwc1swXS5kZWZhdWx0KSB7XG4gICAgICAgIC8vIGRvbnQgdXNlIGZpZWxkc2V0LCBqdXN0IGNyZWF0ZSBmaWVsZHNcbiAgICAgICAgcmV0dXJuIGNyZWF0ZUZvcm1seUZpZWxkcyhncm91cHNbMF0sIGVkaXRvckRlc2NyaXB0b3IsIGZvcm1seUNvbmZpZywgZm9ybUVkaXRvckNvbXBvbmVudCk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgZ3JvdXBzRmllbGQ6IENvbW1vbnNGb3JtbHlGaWVsZENvbmZpZyA9IHtcbiAgICAgICAgICAgIHR5cGU6ICdmaWVsZHNldCcsXG4gICAgICAgICAgICBmaWVsZEdyb3VwOiBbXSxcbiAgICAgICAgICAgIHByb3BzOiB7XG4gICAgICAgICAgICAgICAgZm9ybUVkaXRvckNvbXBvbmVudCxcbiAgICAgICAgICAgICAgICBlZGl0b3JEZXNjcmlwdG9yOiBlZGl0b3JEZXNjcmlwdG9yXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZXhwcmVzc2lvbnM6IHt9XG4gICAgICAgIH07XG5cbiAgICAgICAgZm9yIChjb25zdCBncm91cCBvZiBncm91cHMpIHtcbiAgICAgICAgICAgIGNvbnN0IGdyb3VwRmllbGQ6IENvbW1vbnNGb3JtbHlGaWVsZENvbmZpZzxhbnksIEl0ZW0+ID0ge1xuICAgICAgICAgICAgICAgIGlkOiBncm91cC5uYW1lLFxuICAgICAgICAgICAgICAgIHByb3BzOiB7XG4gICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0b3I6IGdyb3VwLFxuICAgICAgICAgICAgICAgICAgICBlZGl0b3JEZXNjcmlwdG9yOiBlZGl0b3JEZXNjcmlwdG9yXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBleHByZXNzaW9uczoge30sXG4gICAgICAgICAgICAgICAgZmllbGRHcm91cDogW11cbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBpZiAoZ3JvdXAudGl0bGUpIHtcbiAgICAgICAgICAgICAgICBncm91cEZpZWxkLnByb3BzLmxhYmVsID0gZ3JvdXAudGl0bGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChncm91cC5oaWRkZW5FeHByZXNzaW9uKSB7XG4gICAgICAgICAgICAgICAgZ3JvdXBGaWVsZC5leHByZXNzaW9ucyFbJ2hpZGUnXSA9IGdyb3VwLmhpZGRlbkV4cHJlc3Npb24gYXMgc3RyaW5nIHwgKChmaWVsZDogRm9ybWx5RmllbGRDb25maWcpID0+IGFueSkgfCBPYnNlcnZhYmxlPGFueT47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGdyb3VwRmllbGQuZmllbGRHcm91cCEucHVzaCguLi5jcmVhdGVGb3JtbHlGaWVsZHMoZ3JvdXAsIGVkaXRvckRlc2NyaXB0b3IsIGZvcm1seUNvbmZpZywgZm9ybUVkaXRvckNvbXBvbmVudCkpO1xuICAgICAgICAgICAgZ3JvdXBzRmllbGQuZmllbGRHcm91cCEucHVzaChncm91cEZpZWxkKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gW2dyb3Vwc0ZpZWxkXTtcbiAgICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVGb3JtbHlGaWVsZHM8SXRlbT4oXG4gICAgZGVzY3JpcHRvcjogRmllbGRHcm91cERlc2NyaXB0b3I8YW55PixcbiAgICBlZGl0b3JEZXNjcmlwdG9yOiBFZGl0b3JEZXNjcmlwdG9ySW5zdDxhbnk+LFxuICAgIGZvcm1seUNvbmZpZzogRm9ybWx5Q29uZmlnLFxuICAgIGZvcm1FZGl0b3JDb21wb25lbnQ6IElGb3JtRWRpdG9yQ29tcG9uZW50PEl0ZW0+XG4pOiBDb21tb25zRm9ybWx5RmllbGRDb25maWdbXSB7XG4gICAgY29uc3QgZmllbGRzOiBDb21tb25zRm9ybWx5RmllbGRDb25maWdbXSA9IFtdO1xuICAgIGZvciAoY29uc3QgZGVzY3JpcHRvckZpZWxkIG9mIGRlc2NyaXB0b3IuZmllbGRzKSB7XG4gICAgICAgIGZpZWxkcy5wdXNoKGNyZWF0ZUZvcm1seUZpZWxkKGRlc2NyaXB0b3JGaWVsZCwgZWRpdG9yRGVzY3JpcHRvciwgZm9ybWx5Q29uZmlnLCBmb3JtRWRpdG9yQ29tcG9uZW50KSk7XG4gICAgfVxuICAgIC8vIHdyYXAgaW4gZ3JvdXAgdG8gYmUgYWJsZSB0byB1c2UgZmxleCBncmlkXG4gICAgY29uc3Qgd3JhcHBlckdyb3VwOiBDb21tb25zRm9ybWx5RmllbGRDb25maWcgPSB7XG4gICAgICAgIGZpZWxkR3JvdXBDbGFzc05hbWU6ICdwLWZsdWlkIGZvcm1ncmlkIGdyaWQnLFxuICAgICAgICBmaWVsZEdyb3VwOiBmaWVsZHMsXG4gICAgICAgIHByb3BzOiB7fVxuICAgIH07XG5cbiAgICBhZGRWYWxpZGF0aW9uc1RvRm9ybWx5RmllbGQod3JhcHBlckdyb3VwLCBkZXNjcmlwdG9yLnZhbGlkYXRpb25zLCBmb3JtbHlDb25maWcpO1xuXG4gICAgcmV0dXJuIFt3cmFwcGVyR3JvdXBdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRm9ybWx5RmllbGQ8SXRlbT4oXG4gICAgZGVzY3JpcHRvcjogQUZpZWxkRGVzY3JpcHRvcjxhbnksIGFueT4sXG4gICAgZWRpdG9yRGVzY3JpcHRvcjogRWRpdG9yRGVzY3JpcHRvckluc3Q8YW55PixcbiAgICBmb3JtbHlDb25maWc6IEZvcm1seUNvbmZpZyxcbiAgICBmb3JtRWRpdG9yQ29tcG9uZW50OiBJRm9ybUVkaXRvckNvbXBvbmVudDxJdGVtPlxuKTogQ29tbW9uc0Zvcm1seUZpZWxkQ29uZmlnIHtcbiAgICBjb25zdCBmaWVsZDogQ29tbW9uc0Zvcm1seUZpZWxkQ29uZmlnPGFueSwgSXRlbT4gPSB7XG4gICAgICAgIGtleTogZGVzY3JpcHRvci5wcm9wZXJ0eSxcbiAgICAgICAgbW9kZWxPcHRpb25zOiB7XG4gICAgICAgICAgICB1cGRhdGVPbjogZGVzY3JpcHRvci51cGRhdGVPblxuICAgICAgICB9LFxuICAgICAgICBob29rczoge1xuICAgICAgICAgICAgb25Jbml0OiAoKSA9PiAoZGVzY3JpcHRvci5vbkluaXQgPyBkZXNjcmlwdG9yLm9uSW5pdChmaWVsZCkgOiB1bmRlZmluZWQpLFxuICAgICAgICAgICAgb25DaGFuZ2VzOiAoKSA9PiAoZGVzY3JpcHRvci5vbkNoYW5nZXMgPyBkZXNjcmlwdG9yLm9uQ2hhbmdlcyhmaWVsZCkgOiB1bmRlZmluZWQpLFxuICAgICAgICAgICAgYWZ0ZXJDb250ZW50SW5pdDogKCkgPT4gKGRlc2NyaXB0b3IuYWZ0ZXJDb250ZW50SW5pdCA/IGRlc2NyaXB0b3IuYWZ0ZXJDb250ZW50SW5pdChmaWVsZCkgOiB1bmRlZmluZWQpLFxuICAgICAgICAgICAgYWZ0ZXJWaWV3SW5pdDogKCkgPT4gKGRlc2NyaXB0b3IuYWZ0ZXJWaWV3SW5pdCA/IGRlc2NyaXB0b3IuYWZ0ZXJWaWV3SW5pdChmaWVsZCkgOiB1bmRlZmluZWQpLFxuICAgICAgICAgICAgb25EZXN0cm95OiAoKSA9PiAoZGVzY3JpcHRvci5vbkRlc3Ryb3kgPyBkZXNjcmlwdG9yLm9uRGVzdHJveShmaWVsZCkgOiB1bmRlZmluZWQpXG4gICAgICAgIH0sXG4gICAgICAgIHByb3BzOiB7XG4gICAgICAgICAgICBkZXNjcmlwdG9yLFxuICAgICAgICAgICAgZm9ybUVkaXRvckNvbXBvbmVudCxcbiAgICAgICAgICAgIGVkaXRvckRlc2NyaXB0b3I6IGVkaXRvckRlc2NyaXB0b3IsXG4gICAgICAgICAgICBvblZhbHVlQ2hhbmdlOiBkZXNjcmlwdG9yLm9uVmFsdWVDaGFuZ2VcbiAgICAgICAgfSxcbiAgICAgICAgZXhwcmVzc2lvbnM6IHt9XG4gICAgfTtcblxuICAgIGxldCBjbGFzc05hbWUgPSBkZXNjcmlwdG9yLmNsYXNzTmFtZTtcbiAgICBpZiAoIWNsYXNzTmFtZSkge1xuICAgICAgICAvLyBhc3NpZ24gZGVmYXVsdCBmaWVsZCB3aWR0aCB0aHJvdWdoIGVudGlyZSByb3dcbiAgICAgICAgY2xhc3NOYW1lID0gJ2NvbC0xMic7XG4gICAgfVxuICAgIGZpZWxkLmNsYXNzTmFtZSA9IGNsYXNzTmFtZTtcblxuICAgIGlmIChkZXNjcmlwdG9yIGluc3RhbmNlb2YgRmllbGRJbnB1dERlc2NyaXB0b3IpIHtcbiAgICAgICAgc3dpdGNoIChkZXNjcmlwdG9yLmZpZWxkVHlwZSkge1xuICAgICAgICAgICAgY2FzZSBGaWVsZElucHV0VHlwZUVudW0uSGlkZGVuOlxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBGaWVsZElucHV0VHlwZUVudW0uTGFiZWw6XG4gICAgICAgICAgICAgICAgZmllbGQudHlwZSA9ICdsYWJlbCc7XG4gICAgICAgICAgICAgICAgZGVsZXRlIGZpZWxkLmtleTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgRmllbGRJbnB1dFR5cGVFbnVtLlRleHRhcmVhOlxuICAgICAgICAgICAgICAgIGZpZWxkLnR5cGUgPSAndGV4dGFyZWEnO1xuICAgICAgICAgICAgICAgIGZpZWxkLnByb3BzLm1heExlbmd0aCA9IGRlc2NyaXB0b3IubWF4TGVuZ3RoO1xuICAgICAgICAgICAgICAgIGZpZWxkLnByb3BzLm1pbkxlbmd0aCA9IGRlc2NyaXB0b3IubWluTGVuZ3RoO1xuICAgICAgICAgICAgICAgIGZpZWxkLnByb3BzLnBhdHRlcm4gPSBkZXNjcmlwdG9yLnBhdHRlcm47XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIEZpZWxkSW5wdXRUeXBlRW51bS5OdW1iZXI6XG4gICAgICAgICAgICAgICAgZmllbGQudHlwZSA9ICdudW1iZXInO1xuICAgICAgICAgICAgICAgIGZpZWxkLnByb3BzLm1pbiA9IGRlc2NyaXB0b3IubnVtYmVyTWluO1xuICAgICAgICAgICAgICAgIGZpZWxkLnByb3BzLm1heCA9IGRlc2NyaXB0b3IubnVtYmVyTWF4O1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBGaWVsZElucHV0VHlwZUVudW0uQ3VycmVuY3k6XG4gICAgICAgICAgICAgICAgZmllbGQudHlwZSA9ICdjdXJyZW5jeSc7XG4gICAgICAgICAgICAgICAgZmllbGQucHJvcHMubWluID0gZGVzY3JpcHRvci5udW1iZXJNaW47XG4gICAgICAgICAgICAgICAgZmllbGQucHJvcHMubWF4ID0gZGVzY3JpcHRvci5udW1iZXJNYXg7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIEZpZWxkSW5wdXRUeXBlRW51bS5Td2l0Y2g6XG4gICAgICAgICAgICAgICAgZmllbGQudHlwZSA9ICdzd2l0Y2gnO1xuICAgICAgICAgICAgICAgIGZpZWxkLmRlZmF1bHRWYWx1ZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBGaWVsZElucHV0VHlwZUVudW0uUmFkaW86XG4gICAgICAgICAgICAgICAgZmllbGQudHlwZSA9ICdyYWRpbyc7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIEZpZWxkSW5wdXRUeXBlRW51bS5EYXRlcGlja2VyOlxuICAgICAgICAgICAgICAgIGZpZWxkLnR5cGUgPSAnZGF0ZXBpY2tlcic7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIEZpZWxkSW5wdXRUeXBlRW51bS5NYXNrOlxuICAgICAgICAgICAgICAgIGZpZWxkLnR5cGUgPSAnbWFzayc7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIEZpZWxkSW5wdXRUeXBlRW51bS5GaWxlOlxuICAgICAgICAgICAgY2FzZSBGaWVsZElucHV0VHlwZUVudW0uSW1hZ2VGaWxlOlxuICAgICAgICAgICAgICAgIGZpZWxkLnR5cGUgPSAnZmlsZSc7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIEZpZWxkSW5wdXRUeXBlRW51bS5JbWFnZVVybDpcbiAgICAgICAgICAgICAgICBmaWVsZC50eXBlID0gJ2ltYWdlVXJsJztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgRmllbGRJbnB1dFR5cGVFbnVtLkN1c3RvbTpcbiAgICAgICAgICAgICAgICBpZiAoZGVzY3JpcHRvci5jdXN0b21Db21wb25lbnRUeXBlKSB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkLnR5cGUgPSAnY3VzdG9tJztcbiAgICAgICAgICAgICAgICAgICAgZmllbGQucHJvcHNbJ2N1c3RvbUNvbXBvbmVudFR5cGUnXSA9IGRlc2NyaXB0b3IuY3VzdG9tQ29tcG9uZW50VHlwZTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZGVzY3JpcHRvci5jdXN0b21Db21wb25lbnRXcmFwcGVycykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkLndyYXBwZXJzID0gZGVzY3JpcHRvci5jdXN0b21Db21wb25lbnRXcmFwcGVycztcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGRlZmF1bHQgd3JhcHBlclxuICAgICAgICAgICAgICAgICAgICAgICAgZmllbGQud3JhcHBlcnMgPSBbJ2ZpZWxkJ107XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIGZpZWxkLnR5cGUgPSAnaW5wdXQnO1xuICAgICAgICAgICAgICAgIGZpZWxkLnByb3BzLm1pbkxlbmd0aCA9IGRlc2NyaXB0b3IubWluTGVuZ3RoO1xuICAgICAgICAgICAgICAgIGZpZWxkLnByb3BzLm1heExlbmd0aCA9IGRlc2NyaXB0b3IubWF4TGVuZ3RoO1xuICAgICAgICAgICAgICAgIGZpZWxkLnByb3BzLnBhdHRlcm4gPSBkZXNjcmlwdG9yLnBhdHRlcm47XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGRlc2NyaXB0b3IgaW5zdGFuY2VvZiBGaWVsZEFjdGlvbkRlc2NyaXB0b3IpIHtcbiAgICAgICAgZmllbGQudHlwZSA9ICdhY3Rpb24nO1xuICAgICAgICBmaWVsZC53cmFwcGVycyA9IGRlc2NyaXB0b3Iud3JhcHBlcnM7XG4gICAgICAgIGRlbGV0ZSBmaWVsZC5rZXk7XG4gICAgfSBlbHNlIGlmIChkZXNjcmlwdG9yIGluc3RhbmNlb2YgRmllbGRMb29rdXBFbnVtRGVzY3JpcHRvcikge1xuICAgICAgICBzd2l0Y2ggKGRlc2NyaXB0b3IubG9va3VwVHlwZSkge1xuICAgICAgICAgICAgY2FzZSBGaWVsZExvb2t1cFR5cGVFbnVtLkN1c3RvbTpcbiAgICAgICAgICAgICAgICBmaWVsZC50eXBlID0gZGVzY3JpcHRvci5jdXN0b21Db21wb25lbnROYW1lO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICBmaWVsZC50eXBlID0gJ2VudW0nO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfSBlbHNlIGlmIChkZXNjcmlwdG9yIGluc3RhbmNlb2YgRmllbGRMb29rdXBEZXNjcmlwdG9yKSB7XG4gICAgICAgIHN3aXRjaCAoZGVzY3JpcHRvci5sb29rdXBUeXBlKSB7XG4gICAgICAgICAgICBjYXNlIEZpZWxkTG9va3VwVHlwZUVudW0uQXV0b2NvbXBsZXRlOlxuICAgICAgICAgICAgICAgIGZpZWxkLnR5cGUgPSAnYXV0b2NvbXBsZXRlJztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgRmllbGRMb29rdXBUeXBlRW51bS5EaWFsb2c6XG4gICAgICAgICAgICAgICAgZmllbGQudHlwZSA9ICdkaWFsb2cnO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBGaWVsZExvb2t1cFR5cGVFbnVtLkN1c3RvbTpcbiAgICAgICAgICAgICAgICBmaWVsZC50eXBlID0gZGVzY3JpcHRvci5jdXN0b21Db21wb25lbnROYW1lO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBGaWVsZExvb2t1cFR5cGVFbnVtLkRyb3Bkb3duOlxuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICBmaWVsZC50eXBlID0gJ2Ryb3Bkb3duJztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH0gZWxzZSBpZiAoZGVzY3JpcHRvciBpbnN0YW5jZW9mIEZpZWxkTWFueVRvTWFueUVkaXRvckRlc2NyaXB0b3IpIHtcbiAgICAgICAgZmllbGQudHlwZSA9ICd0YWJsZS1kaWFsb2ctbXVsdGlzZWxlY3QnO1xuICAgIH0gZWxzZSBpZiAoZGVzY3JpcHRvciBpbnN0YW5jZW9mIEZpZWxkTWFueUVkaXRvckRlc2NyaXB0b3IpIHtcbiAgICAgICAgZmllbGQudHlwZSA9ICd0YWJsZS1kaWFsb2ctZm9ybSc7XG4gICAgfVxuXG4gICAgaWYgKGRlc2NyaXB0b3IubGFiZWwpIHtcbiAgICAgICAgZmllbGQucHJvcHMubGFiZWwgPSBkZXNjcmlwdG9yLmxhYmVsO1xuICAgIH1cblxuICAgIGlmIChkZXNjcmlwdG9yLnJlcXVpcmVkRXhwcmVzc2lvbikge1xuICAgICAgICBmaWVsZC5leHByZXNzaW9ucyFbJ3Byb3BzLnJlcXVpcmVkJ10gPSBkZXNjcmlwdG9yLnJlcXVpcmVkRXhwcmVzc2lvbjtcbiAgICB9XG4gICAgaWYgKGRlc2NyaXB0b3IucmVxdWlyZWQpIHtcbiAgICAgICAgZmllbGQucHJvcHMhLnJlcXVpcmVkID0gdHJ1ZTtcbiAgICAgICAgaWYgKGRlc2NyaXB0b3IucmVxdWlyZWRIaWRlTGFiZWxNYXJrZXIpIHtcbiAgICAgICAgICAgIGZpZWxkLnByb3BzIVsnaGlkZVJlcXVpcmVkTWFya2VyJ10gPSB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGRlc2NyaXB0b3IuaGlkZGVuRXhwcmVzc2lvbikge1xuICAgICAgICBmaWVsZC5leHByZXNzaW9ucyFbJ2hpZGUnXSA9IGRlc2NyaXB0b3IuaGlkZGVuRXhwcmVzc2lvbjtcbiAgICAgICAgZmllbGQuZXhwcmVzc2lvbnMhWydyZXNldE9uSGlkZSddID0gKCkgPT4gZGVzY3JpcHRvci5oaWRkZW5SZXNldE9uSGlkZSA/PyB0cnVlO1xuICAgIH1cblxuICAgIGlmIChkZXNjcmlwdG9yLmRpc2FibGVkRXhwcmVzc2lvbikge1xuICAgICAgICBmaWVsZC5leHByZXNzaW9ucyFbJ3Byb3BzLmRpc2FibGVkJ10gPSBkZXNjcmlwdG9yLmRpc2FibGVkRXhwcmVzc2lvbjtcbiAgICB9IGVsc2UgaWYgKGRlc2NyaXB0b3IuZGlzYWJsZWQpIHtcbiAgICAgICAgZmllbGQucHJvcHMuZGlzYWJsZWQgPSB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGZpZWxkLmV4cHJlc3Npb25zIVsncHJvcHMuZGlzYWJsZWQnXSA9ICdmb3JtU3RhdGUuZGlzYWJsZWQnO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgZGVzY3JpcHRvci5kZWZhdWx0VmFsdWUgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIGZpZWxkLmRlZmF1bHRWYWx1ZSA9IGRlc2NyaXB0b3IuZGVmYXVsdFZhbHVlO1xuICAgIH1cblxuICAgIGlmIChkZXNjcmlwdG9yIGluc3RhbmNlb2YgRmllbGRJbnB1dERlc2NyaXB0b3IpIHtcbiAgICAgICAgaWYgKGRlc2NyaXB0b3IudmFsaWRhdGlvbkVtYWlsKSB7XG4gICAgICAgICAgICBkZXNjcmlwdG9yLnZhbGlkYXRpb25zLnB1c2gobmV3IEZpZWxkVmFsaWRhdGlvbkRlc2NyaXB0b3IoZW1haWxWYWxpZGF0aW9uTmFtZSwgZW1haWxWYWxpZGF0b3IoKSBhcyBGaWVsZEJhc2VWYWxpZGF0b3I8c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCwgYW55PikpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkZXNjcmlwdG9yLmRhdGVQaWNrZXJNaW4pIHtcbiAgICAgICAgICAgIGRlc2NyaXB0b3IudmFsaWRhdGlvbnMucHVzaChcbiAgICAgICAgICAgICAgICBuZXcgRmllbGRWYWxpZGF0aW9uRGVzY3JpcHRvcihtaW5EYXRlVmFsaWRhdGlvbk5hbWUsIG1pbkRhdGVWYWxpZGF0b3IoZGVzY3JpcHRvci5kYXRlUGlja2VyTWluKSBhcyBGaWVsZEJhc2VWYWxpZGF0b3I8c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCwgYW55PilcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRlc2NyaXB0b3IuZGF0ZVBpY2tlck1heCkge1xuICAgICAgICAgICAgZGVzY3JpcHRvci52YWxpZGF0aW9ucy5wdXNoKFxuICAgICAgICAgICAgICAgIG5ldyBGaWVsZFZhbGlkYXRpb25EZXNjcmlwdG9yKG1heERhdGVWYWxpZGF0aW9uTmFtZSwgbWF4RGF0ZVZhbGlkYXRvcihkZXNjcmlwdG9yLmRhdGVQaWNrZXJNYXgpIGFzIEZpZWxkQmFzZVZhbGlkYXRvcjxzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkLCBhbnk+KVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGFkZFZhbGlkYXRpb25zVG9Gb3JtbHlGaWVsZChmaWVsZCwgZGVzY3JpcHRvci52YWxpZGF0aW9ucywgZm9ybWx5Q29uZmlnKTtcbiAgICBhZGRBc3luY1ZhbGlkYXRpb25zVG9Gb3JtbHlGaWVsZChmaWVsZCwgZGVzY3JpcHRvci5hc3luY1ZhbGlkYXRpb25zLCBmb3JtbHlDb25maWcpO1xuXG4gICAgcmV0dXJuIGZpZWxkO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYWRkVmFsaWRhdGlvbnNUb0Zvcm1seUZpZWxkKGNvbmZpZzogQ29tbW9uc0Zvcm1seUZpZWxkQ29uZmlnLCB2YWxpZGF0aW9uczogQXJyYXk8RmllbGRWYWxpZGF0aW9uRGVzY3JpcHRvcjxhbnksIGFueT4+LCBmb3JtbHlDb25maWc6IEZvcm1seUNvbmZpZykge1xuICAgIGlmICghY29uZmlnLnZhbGlkYXRvcnMpIHtcbiAgICAgICAgY29uZmlnLnZhbGlkYXRvcnMgPSB7fTtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IHZhbGlkYXRpb24gb2YgdmFsaWRhdGlvbnMpIHtcbiAgICAgICAgY3JlYXRlRm9ybWx5VmFsaWRhdGlvbihjb25maWcudmFsaWRhdG9ycywgdmFsaWRhdGlvbiwgZm9ybWx5Q29uZmlnKTtcbiAgICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhZGRBc3luY1ZhbGlkYXRpb25zVG9Gb3JtbHlGaWVsZChjb25maWc6IENvbW1vbnNGb3JtbHlGaWVsZENvbmZpZywgYXN5bmNWYWxpZGF0aW9uczogQXJyYXk8RmllbGRWYWxpZGF0aW9uRGVzY3JpcHRvcjxhbnksIGFueT4+LCBmb3JtbHlDb25maWc6IEZvcm1seUNvbmZpZykge1xuICAgIGlmICghY29uZmlnLmFzeW5jVmFsaWRhdG9ycykge1xuICAgICAgICBjb25maWcuYXN5bmNWYWxpZGF0b3JzID0ge307XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCB2YWxpZGF0aW9uIG9mIGFzeW5jVmFsaWRhdGlvbnMpIHtcbiAgICAgICAgY3JlYXRlRm9ybWx5VmFsaWRhdGlvbihjb25maWcuYXN5bmNWYWxpZGF0b3JzLCB2YWxpZGF0aW9uLCBmb3JtbHlDb25maWcpO1xuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUZvcm1seVZhbGlkYXRpb24oY29uZmlnOiBOb25OdWxsYWJsZTxDb21tb25zRm9ybWx5VmFsaWRhdGlvbj4sIHZhbGlkYXRpb246IEZpZWxkVmFsaWRhdGlvbkRlc2NyaXB0b3I8YW55LCBhbnk+LCBmb3JtbHlDb25maWc6IEZvcm1seUNvbmZpZykge1xuICAgIGlmICh0eXBlb2YgdmFsaWRhdGlvbi52YWxpZGF0b3IgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgaWYgKHZhbGlkYXRpb24ub3B0aW9ucz8uZXJyb3JQYXRoICYmIHZhbGlkYXRpb24ubWVzc2FnZSAhPSBudWxsKSB7XG4gICAgICAgICAgICAvLyBpZiB0aGlzIGlzIHVzZWQsIHRoZSB2YWxpZGF0b3IgYW5kIG1lc3NhZ2UgbXVzdCBiZSByZWdpc3RlcmVkIGdsb2JhbGx5XG4gICAgICAgICAgICBpZiAoIWZvcm1seUNvbmZpZy5nZXRWYWxpZGF0b3JNZXNzYWdlKHZhbGlkYXRpb24ubmFtZSkpIHtcbiAgICAgICAgICAgICAgICBmb3JtbHlDb25maWcuYWRkVmFsaWRhdG9yTWVzc2FnZSh2YWxpZGF0aW9uLm5hbWUsIHZhbGlkYXRpb24ubWVzc2FnZSBhcyBWYWxpZGF0aW9uTWVzc2FnZU9wdGlvblsnbWVzc2FnZSddKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCFmb3JtbHlDb25maWcudmFsaWRhdG9yc1t2YWxpZGF0aW9uLm5hbWVdKSB7XG4gICAgICAgICAgICAgICAgZm9ybWx5Q29uZmlnLnNldFZhbGlkYXRvcih7XG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IHZhbGlkYXRpb24ubmFtZSxcbiAgICAgICAgICAgICAgICAgICAgdmFsaWRhdGlvbjogKGNvbnRyb2wsIGZpZWxkKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjb21tb25zRmllbGRGb3JtbHlDb25maWcgPSBmaWVsZCBhcyBDb21tb25zRm9ybWx5RmllbGRDb25maWc7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmFsaWRhdGlvbi52YWxpZGF0b3IhKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWVsZEZvcm1Db250cm9sOiBjb250cm9sLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm06IGNvbW1vbnNGaWVsZEZvcm1seUNvbmZpZy5mb3JtIGFzIEZvcm1Hcm91cCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWVsZEZvcm1seUNvbmZpZzogZmllbGQgYXMgQ29tbW9uc0Zvcm1seUZpZWxkQ29uZmlnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db21wb25lbnQ6IGNvbW1vbnNGaWVsZEZvcm1seUNvbmZpZy5wcm9wcz8uZm9ybUVkaXRvckNvbXBvbmVudCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWVsZENvbXBvbmVudDogY29tbW9uc0ZpZWxkRm9ybWx5Q29uZmlnLnByb3BzPy5maWVsZENvbXBvbmVudFxuICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IG51bGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IDxWYWxpZGF0b3JzPntbdmFsaWRhdGlvbi5uYW1lXTogdHJ1ZX07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KGNvbmZpZy52YWxpZGF0aW9uKSkge1xuICAgICAgICAgICAgICAgIGNvbmZpZy52YWxpZGF0aW9uID0gW107XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25maWcudmFsaWRhdGlvbi5wdXNoKHtcbiAgICAgICAgICAgICAgICBuYW1lOiB2YWxpZGF0aW9uLm5hbWUsXG4gICAgICAgICAgICAgICAgb3B0aW9uczoge2Vycm9yUGF0aDogdmFsaWRhdGlvbi5vcHRpb25zLmVycm9yUGF0aH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uZmlnW3ZhbGlkYXRpb24ubmFtZV0gPSB7XG4gICAgICAgICAgICAgICAgZXhwcmVzc2lvbjogKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCwgZmllbGQ6IEZvcm1seUZpZWxkQ29uZmlnKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbW1vbnNGaWVsZEZvcm1seUNvbmZpZyA9IGZpZWxkIGFzIENvbW1vbnNGb3JtbHlGaWVsZENvbmZpZztcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHZhbGlkYXRpb24udmFsaWRhdG9yISh7XG4gICAgICAgICAgICAgICAgICAgICAgICBmaWVsZEZvcm1Db250cm9sOiBjb250cm9sLFxuICAgICAgICAgICAgICAgICAgICAgICAgZm9ybTogY29tbW9uc0ZpZWxkRm9ybWx5Q29uZmlnLmZvcm0gYXMgRm9ybUdyb3VwLFxuICAgICAgICAgICAgICAgICAgICAgICAgZmllbGRGb3JtbHlDb25maWc6IGNvbW1vbnNGaWVsZEZvcm1seUNvbmZpZyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db21wb25lbnQ6IGNvbW1vbnNGaWVsZEZvcm1seUNvbmZpZy5wcm9wcz8uZm9ybUVkaXRvckNvbXBvbmVudCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkQ29tcG9uZW50OiBjb21tb25zRmllbGRGb3JtbHlDb25maWcucHJvcHM/LmZpZWxkQ29tcG9uZW50XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBpZiAodmFsaWRhdGlvbi5tZXNzYWdlICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICBjb25maWdbdmFsaWRhdGlvbi5uYW1lXS5tZXNzYWdlID0gdmFsaWRhdGlvbi5tZXNzYWdlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KGNvbmZpZy52YWxpZGF0aW9uKSkge1xuICAgICAgICAgICAgY29uZmlnLnZhbGlkYXRpb24gPSBbXTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodmFsaWRhdGlvbi5vcHRpb25zPy5lcnJvclBhdGgpIHtcbiAgICAgICAgICAgIGNvbmZpZy52YWxpZGF0aW9uLnB1c2goe1xuICAgICAgICAgICAgICAgIG5hbWU6IHZhbGlkYXRpb24ubmFtZSxcbiAgICAgICAgICAgICAgICBvcHRpb25zOiB7ZXJyb3JQYXRoOiB2YWxpZGF0aW9uLm9wdGlvbnMuZXJyb3JQYXRofVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25maWcudmFsaWRhdGlvbi5wdXNoKHZhbGlkYXRpb24ubmFtZSk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
|
|
388
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLWZvcm1seS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3RhYmxldmlldy9zcmMvZWRpdG9yL2hlbHBlcnMvZWRpdG9yLWZvcm1seS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFPQSxPQUFPLEVBQUMsb0JBQW9CLEVBQUUsY0FBYyxFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFDakYsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQ2xELE9BQU8sRUFLSCxxQkFBcUIsRUFHckIsb0JBQW9CLEVBQ3BCLGtCQUFrQixFQUNsQixxQkFBcUIsRUFDckIseUJBQXlCLEVBQ3pCLG1CQUFtQixFQUNuQix5QkFBeUIsRUFDekIsK0JBQStCLEVBRS9CLHlCQUF5QixFQUV6Qix1QkFBdUIsRUFDdkIsdUJBQXVCLEVBQzFCLE1BQU0sc0NBQXNDLENBQUM7QUFFOUMsT0FBTyxFQUFDLG1CQUFtQixFQUFFLGNBQWMsRUFBRSxxQkFBcUIsRUFBRSxnQkFBZ0IsRUFBRSxxQkFBcUIsRUFBRSxnQkFBZ0IsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBRTFKLE1BQU0sVUFBVSxnQ0FBZ0MsQ0FDNUMsVUFBcUMsRUFDckMsWUFBMEIsRUFDMUIsbUJBQStDO0lBRS9DLE1BQU0sTUFBTSxHQUErQixFQUFFLENBQUM7SUFFOUMsSUFBSSxVQUFVLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDekIsVUFBVSxHQUFHLDRCQUE0QixDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFRCxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUN4RixnQkFBZ0I7UUFDaEIsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLHFCQUFxQixDQUFDLFVBQVUsQ0FB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QUF3QixDQUFDLElBQWlCO3dCQUNoRCxpQkFBaUIsRUFBRSx3QkFBd0I7d0JBQzNDLGFBQWEsRUFBRSx3QkFBd0IsQ0FBQyxLQUFLLEVBQUUsbUJBQW1CO3dCQUNsRSxjQUFjLEVBQUUsd0JBQXdCLENBQUMsS0FBSyxFQUFFLGNBQWM7cUJBQ2pFLENBQUMsQ0FBQztnQkFDUCxDQUFDO2FBQ0osQ0FBQztZQUNGLElBQUksVUFBVSxDQUFDLE9BQU8sSUFBSSxJQUFJLEVBQUUsQ0FBQztnQkFDN0IsTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQztZQUN6RCxDQUFDO1FBQ0wsQ0FBQztJQUNMLENBQUM7U0FBTSxDQUFDO1FBQ0osSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7WUFDcEMsTUFBTSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7UUFDM0IsQ0FBQztRQUNELElBQUksVUFBVSxDQUFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsQ0FBQztZQUNoQyxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQztnQkFDbkIsSUFBSSxFQUFFLFVBQVUsQ0FBQyxJQUFJO2dCQUNyQixPQUFPLEVBQUUsRUFBQyxTQUFTLEVBQUUsVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUM7YUFDckQsQ0FBQyxDQUFDO1FBQ1AsQ0FBQzthQUFNLENBQUM7WUFDSixNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDNUMsQ0FBQztJQUNMLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBYnN0cmFjdENvbnRyb2wsIEZvcm1Hcm91cCwgVmFsaWRhdG9yc30gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQge0Zvcm1seUNvbmZpZ30gZnJvbSAnQG5neC1mb3JtbHkvY29yZSc7XG5pbXBvcnQge1ZhbGlkYXRpb25NZXNzYWdlT3B0aW9ufSBmcm9tICdAbmd4LWZvcm1seS9jb3JlL2xpYi9tb2RlbHMnO1xuaW1wb3J0IHtGb3JtbHlGaWVsZENvbmZpZ30gZnJvbSAnQG5neC1mb3JtbHkvY29yZS9saWIvbW9kZWxzL2ZpZWxkY29uZmlnJztcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7Q29tbW9uc0ludGVybmFsRXJyb3IsIENvbW1vbnNTZXJ2aWNlfSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL2NvcmUnO1xuaW1wb3J0IHt0eXBlfSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL21vZGVsJztcbmltcG9ydCB7XG4gICAgQUZpZWxkRGVzY3JpcHRvcixcbiAgICBDb21tb25zRm9ybWx5RmllbGRDb25maWcsXG4gICAgQ29tbW9uc0Zvcm1seVZhbGlkYXRpb24sXG4gICAgRWRpdG9yRGVzY3JpcHRvckluc3QsXG4gICAgRmllbGRBY3Rpb25EZXNjcmlwdG9yLFxuICAgIEZpZWxkQmFzZVZhbGlkYXRvcixcbiAgICBGaWVsZEdyb3VwRGVzY3JpcHRvcixcbiAgICBGaWVsZElucHV0RGVzY3JpcHRvcixcbiAgICBGaWVsZElucHV0VHlwZUVudW0sXG4gICAgRmllbGRMb29rdXBEZXNjcmlwdG9yLFxuICAgIEZpZWxkTG9va3VwRW51bURlc2NyaXB0b3IsXG4gICAgRmllbGRMb29rdXBUeXBlRW51bSxcbiAgICBGaWVsZE1hbnlFZGl0b3JEZXNjcmlwdG9yLFxuICAgIEZpZWxkTWFueVRvTWFueUVkaXRvckRlc2NyaXB0b3IsXG4gICAgRmllbGRUYWJHcm91cERlc2NyaXB0b3IsXG4gICAgRmllbGRWYWxpZGF0aW9uRGVzY3JpcHRvcixcbiAgICBJRm9ybUVkaXRvckNvbXBvbmVudCxcbiAgICBUYWJsZXZpZXdEZXNjcmlwdG9ySW5zdCxcbiAgICBUYWJsZXZpZXdFZGl0b3JUeXBlRW51bVxufSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL3RhYmxldmlldy9hcGknO1xuXG5pbXBvcnQge2VtYWlsVmFsaWRhdGlvbk5hbWUsIGVtYWlsVmFsaWRhdG9yLCBtYXhEYXRlVmFsaWRhdGlvbk5hbWUsIG1heERhdGVWYWxpZGF0b3IsIG1pbkRhdGVWYWxpZGF0aW9uTmFtZSwgbWluRGF0ZVZhbGlkYXRvcn0gZnJvbSAnLi9lZGl0b3ItdmFsaWRhdG9ycyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVGb3JtbHlDb25maWdGcm9tRGVzY3JpcHRvcjxJdGVtPihcbiAgICBkZXNjcmlwdG9yOiBFZGl0b3JEZXNjcmlwdG9ySW5zdDxhbnk+LFxuICAgIGZvcm1seUNvbmZpZzogRm9ybWx5Q29uZmlnLFxuICAgIGZvcm1FZGl0b3JDb21wb25lbnQ6IElGb3JtRWRpdG9yQ29tcG9uZW50PEl0ZW0+XG4pOiBDb21tb25zRm9ybWx5RmllbGRDb25maWdbXSB7XG4gICAgY29uc3QgZmllbGRzOiBDb21tb25zRm9ybWx5RmllbGRDb25maWdbXSA9IFtdO1xuXG4gICAgaWYgKGRlc2NyaXB0b3IuaXNMb2NhbGl6ZWQpIHtcbiAgICAgICAgZGVzY3JpcHRvciA9IGNyZWF0ZUZvcm1seUxvY2FsaXphdGlvbnNUYWIoZGVzY3JpcHRvcik7XG4gICAgfVxuXG4gICAgaWYgKCFkZXNjcmlwdG9yLmlzTG9jYWxpemVkICYmIGRlc2NyaXB0b3IudGFicy5sZW5ndGggPT09IDEgJiYgZGVzY3JpcHRvci50YWJzWzBdLmRlZmF1bHQpIHtcbiAgICAgICAgLy8gZG9udCB1c2UgdGFic1xuICAgICAgICBmaWVsZHMucHVzaCguLi5jcmVhdGVGb3JtbHlHcm91cFR5cGUoZGVzY3JpcHRvci50YWJzWzBdLmZpZWxkcywgZGVzY3JpcHRvciwgZm9ybWx5Q29uZmlnLCBmb3JtRWRpdG9yQ29tcG9uZW50KSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgZmllbGRzLnB1c2goLi4uY3JlYXRlRm9ybWx5VGFiVHlwZShkZXNjcmlwdG9yLnRhYnMsIGRlc2NyaXB0b3IsIGZvcm1seUNvbmZpZywgZm9ybUVkaXRvckNvbXBvbmVudCkpO1xuICAgIH1cblxuICAgIHJldHVybiBmaWVsZHM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVGb3JtbHlMb2NhbGl6YXRpb25zVGFiPEl0ZW0+KGRlc2NyaXB0b3I6IEVkaXRvckRlc2NyaXB0b3JJbnN0PEl0ZW0+KSB7XG4gICAgaWYgKGRlc2NyaXB0b3IuaXNMb2NhbGl6ZWQgJiYgZGVzY3JpcHRvci50YWJsZXZpZXdFZGl0b3JUeXBlICE9PSBUYWJsZXZpZXdFZGl0b3JUeXBlRW51bS5EZXRhaWxzKSB7XG4gICAgICAgIGlmICghZGVzY3JpcHRvci5sb2NhbGl6YXRpb25Nb2RlbCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IENvbW1vbnNJbnRlcm5hbEVycm9yKCdMb2NhbGl6YXRpb24gbW9kZWwgbXVzdCBiZSBkZWZpbmVkLicpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGxvY2FsaXphdGlvbnNUYWJsZVZpZXdEZXNjcmlwdG9yID0gbmV3IFRhYmxldmlld0Rlc2NyaXB0b3JJbnN0PGFueSwgbmV2ZXIsIG5ldmVyLCBJdGVtPihkZXNjcmlwdG9yLmxvY2FsaXphdGlvbk1vZGVsKTtcbiAgICAgICAgaWYgKCFkZXNjcmlwdG9yLmxvY2FsaXphdGlvbkxvY2FsZVByb3BlcnR5KSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgQ29tbW9uc0ludGVybmFsRXJyb3IoJ0xvY2FsaXphdGlvbiBsb2NhbGUgcHJvcGVydHkgbXVzdCBiZSBkZWZpbmVkLicpO1xuICAgICAgICB9XG4gICAgICAgIGxvY2FsaXphdGlvbnNUYWJsZVZpZXdEZXNjcmlwdG9yLmFkZENvbHVtbihkZXNjcmlwdG9yLmxvY2FsaXphdGlvbkxvY2FsZVByb3BlcnR5KTtcbiAgICAgICAgbG9jYWxpemF0aW9uc1RhYmxlVmlld0Rlc2NyaXB0b3IuZWRpdEVkaXRvci5hZGRGaWVsZChkZXNjcmlwdG9yLmxvY2FsaXphdGlvbkxvY2FsZVByb3BlcnR5KS53aXRoRGlzYWJsZWQodHJ1ZSk7XG4gICAgICAgIGxvY2FsaXphdGlvbnNUYWJsZVZpZXdEZXNjcmlwdG9yLmRldGFpbHNFZGl0b3IuYWRkRmllbGQoZGVzY3JpcHRvci5sb2NhbGl6YXRpb25Mb2NhbGVQcm9wZXJ0eSkud2l0aERpc2FibGVkKHRydWUpO1xuICAgICAgICBsb2NhbGl6YXRpb25zVGFibGVWaWV3RGVzY3JpcHRvci5hZGRFZGl0b3JcbiAgICAgICAgICAgIC5hZGRGaWVsZExvb2t1cFdpdGhQcm92aWRlcihkZXNjcmlwdG9yLmxvY2FsaXphdGlvbkxvY2FsZVByb3BlcnR5LCBDb21tb25zU2VydmljZSwgdHlwZTxzdHJpbmc+KCkpXG4gICAgICAgICAgICAud2l0aExvb2t1cCgocXAsIHNlcnZpY2UpID0+IHNlcnZpY2UuYXBwRGF0YUxvY2FsZXMoKSlcbiAgICAgICAgICAgIC53aXRoRGlzYWJsZWQoZmFsc2UpXG4gICAgICAgICAgICAud2l0aFJlcXVpcmVkKCk7XG4gICAgICAgIGRlc2NyaXB0b3IuZmllbGRzLmZvckVhY2goZmllbGQgPT4ge1xuICAgICAgICAgICAgaWYgKGZpZWxkLmlzTG9jYWxpemVkKSB7XG4gICAgICAgICAgICAgICAgbG9jYWxpemF0aW9uc1RhYmxlVmlld0Rlc2NyaXB0b3IuYWRkQ29sdW1uKGZpZWxkLnByb3BlcnR5KTtcbiAgICAgICAgICAgICAgICBsb2NhbGl6YXRpb25zVGFibGVWaWV3RGVzY3JpcHRvci5hZGRGaWVsZChmaWVsZC5wcm9wZXJ0eSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBkZXNjcmlwdG9yV2l0aExvY2FsaXphdGlvbnMgPSBkZXNjcmlwdG9yLmNvcHkoKTtcbiAgICAgICAgZGVzY3JpcHRvcldpdGhMb2NhbGl6YXRpb25zLmNyZWF0ZVRhYkdyb3VwKCdsb2NhbGl6YXRpb25zJyk7XG4gICAgICAgIGlmICghZGVzY3JpcHRvci5sb2NhbGl6YXRpb25Mb2NhbGl6YXRpb25Qcm9wZXJ0eSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IENvbW1vbnNJbnRlcm5hbEVycm9yKCdMb2NhbGl6YXRpb24gbG9jYWxpemF0aW9uIHByb3BlcnR5IG11c3QgYmUgZGVmaW5lZCcpO1xuICAgICAgICB9XG4gICAgICAgIGRlc2NyaXB0b3JXaXRoTG9jYWxpemF0aW9ucy5hZGRGaWVsZE1hbnlFZGl0b3JVbnNhZmUoZGVzY3JpcHRvci5sb2NhbGl6YXRpb25Mb2NhbGl6YXRpb25Qcm9wZXJ0eSwgbG9jYWxpemF0aW9uc1RhYmxlVmlld0Rlc2NyaXB0b3IpO1xuXG4gICAgICAgIHJldHVybiBkZXNjcmlwdG9yV2l0aExvY2FsaXphdGlvbnM7XG4gICAgfVxuICAgIHJldHVybiBkZXNjcmlwdG9yO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRm9ybWx5VGFiVHlwZTxJdGVtPihcbiAgICB0YWJHcm91cHM6IEZpZWxkVGFiR3JvdXBEZXNjcmlwdG9yPGFueT5bXSxcbiAgICBlZGl0b3JEZXNjcmlwdG9yOiBFZGl0b3JEZXNjcmlwdG9ySW5zdDxhbnk+LFxuICAgIGZvcm1seUNvbmZpZzogRm9ybWx5Q29uZmlnLFxuICAgIGZvcm1FZGl0b3JDb21wb25lbnQ6IElGb3JtRWRpdG9yQ29tcG9uZW50PEl0ZW0+XG4pOiBDb21tb25zRm9ybWx5RmllbGRDb25maWdbXSB7XG4gICAgY29uc3QgdGFic0ZpZWxkOiBDb21tb25zRm9ybWx5RmllbGRDb25maWcgPSB7XG4gICAgICAgIHR5cGU6ICd0YWJzJyxcbiAgICAgICAgZmllbGRHcm91cDogW10sXG4gICAgICAgIHByb3BzOiB7XG4gICAgICAgICAgICBmb3JtRWRpdG9yQ29tcG9uZW50LFxuICAgICAgICAgICAgZWRpdG9yRGVzY3JpcHRvcjogZWRpdG9yRGVzY3JpcHRvclxuICAgICAgICB9XG4gICAgfTtcbiAgICBmb3IgKGNvbnN0IHRhYiBvZiB0YWJHcm91cHMpIHtcbiAgICAgICAgY29uc3QgdGFiRmllbGQ6IENvbW1vbnNGb3JtbHlGaWVsZENvbmZpZyA9IHtcbiAgICAgICAgICAgIGlkOiB0YWIubmFtZSxcbiAgICAgICAgICAgIHByb3BzOiB7XG4gICAgICAgICAgICAgICAgZm9ybUVkaXRvckNvbXBvbmVudCxcbiAgICAgICAgICAgICAgICBkZXNjcmlwdG9yOiB0YWIsXG4gICAgICAgICAgICAgICAgZWRpdG9yRGVzY3JpcHRvcjogZWRpdG9yRGVzY3JpcHRvclxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGV4cHJlc3Npb25zOiB7fSxcbiAgICAgICAgICAgIGZpZWxkR3JvdXA6IFtdXG4gICAgICAgIH07XG4gICAgICAgIGlmICh0YWIudGl0bGUpIHtcbiAgICAgICAgICAgIHRhYkZpZWxkLnByb3BzLmxhYmVsID0gdGFiLnRpdGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRhYi5oaWRkZW5FeHByZXNzaW9uKSB7XG4gICAgICAgICAgICB0YWJGaWVsZC5leHByZXNzaW9ucyFbJ3Byb3BzLmdyb3VwSGlkZGVuJ10gPSB0YWIuaGlkZGVuRXhwcmVzc2lvbiBhcyBzdHJpbmcgfCAoKGZpZWxkOiBGb3JtbHlGaWVsZENvbmZpZykgPT4gYW55KSB8IE9ic2VydmFibGU8YW55PjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRhYkZpZWxkLmZpZWxkR3JvdXAhLnB1c2goLi4uY3JlYXRlRm9ybWx5R3JvdXBUeXBlKHRhYi5maWVsZHMsIGVkaXRvckRlc2NyaXB0b3IsIGZvcm1seUNvbmZpZywgZm9ybUVkaXRvckNvbXBvbmVudCkpO1xuICAgICAgICB0YWJzRmllbGQuZmllbGRHcm91cCEucHVzaCh0YWJGaWVsZCk7XG4gICAgfVxuICAgIHJldHVybiBbdGFic0ZpZWxkXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUZvcm1seUdyb3VwVHlwZTxJdGVtPihcbiAgICBncm91cHM6IEZpZWxkR3JvdXBEZXNjcmlwdG9yPGFueT5bXSxcbiAgICBlZGl0b3JEZXNjcmlwdG9yOiBFZGl0b3JEZXNjcmlwdG9ySW5zdDxhbnk+LFxuICAgIGZvcm1seUNvbmZpZzogRm9ybWx5Q29uZmlnLFxuICAgIGZvcm1FZGl0b3JDb21wb25lbnQ6IElGb3JtRWRpdG9yQ29tcG9uZW50PEl0ZW0+XG4pOiBDb21tb25zRm9ybWx5RmllbGRDb25maWdbXSB7XG4gICAgaWYgKGdyb3Vwcy5sZW5ndGggPT09IDEgJiYgZ3JvdXBzWzBdLmRlZmF1bHQpIHtcbiAgICAgICAgLy8gZG9udCB1c2UgZmllbGRzZXQsIGp1c3QgY3JlYXRlIGZpZWxkc1xuICAgICAgICByZXR1cm4gY3JlYXRlRm9ybWx5RmllbGRzKGdyb3Vwc1swXSwgZWRpdG9yRGVzY3JpcHRvciwgZm9ybWx5Q29uZmlnLCBmb3JtRWRpdG9yQ29tcG9uZW50KTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBncm91cHNGaWVsZDogQ29tbW9uc0Zvcm1seUZpZWxkQ29uZmlnID0ge1xuICAgICAgICAgICAgdHlwZTogJ2ZpZWxkc2V0JyxcbiAgICAgICAgICAgIGZpZWxkR3JvdXA6IFtdLFxuICAgICAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICAgICAgICBmb3JtRWRpdG9yQ29tcG9uZW50LFxuICAgICAgICAgICAgICAgIGVkaXRvckRlc2NyaXB0b3I6IGVkaXRvckRlc2NyaXB0b3JcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBleHByZXNzaW9uczoge31cbiAgICAgICAgfTtcblxuICAgICAgICBmb3IgKGNvbnN0IGdyb3VwIG9mIGdyb3Vwcykge1xuICAgICAgICAgICAgY29uc3QgZ3JvdXBGaWVsZDogQ29tbW9uc0Zvcm1seUZpZWxkQ29uZmlnPGFueSwgSXRlbT4gPSB7XG4gICAgICAgICAgICAgICAgaWQ6IGdyb3VwLm5hbWUsXG4gICAgICAgICAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRvcjogZ3JvdXAsXG4gICAgICAgICAgICAgICAgICAgIGVkaXRvckRlc2NyaXB0b3I6IGVkaXRvckRlc2NyaXB0b3JcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGV4cHJlc3Npb25zOiB7fSxcbiAgICAgICAgICAgICAgICBmaWVsZEdyb3VwOiBbXVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGlmIChncm91cC50aXRsZSkge1xuICAgICAgICAgICAgICAgIGdyb3VwRmllbGQucHJvcHMubGFiZWwgPSBncm91cC50aXRsZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGdyb3VwLmhpZGRlbkV4cHJlc3Npb24pIHtcbiAgICAgICAgICAgICAgICBncm91cEZpZWxkLmV4cHJlc3Npb25zIVsncHJvcHMuZ3JvdXBIaWRkZW4nXSA9IGdyb3VwLmhpZGRlbkV4cHJlc3Npb24gYXMgc3RyaW5nIHwgKChmaWVsZDogRm9ybWx5RmllbGRDb25maWcpID0+IGFueSkgfCBPYnNlcnZhYmxlPGFueT47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGdyb3VwRmllbGQuZmllbGRHcm91cCEucHVzaCguLi5jcmVhdGVGb3JtbHlGaWVsZHMoZ3JvdXAsIGVkaXRvckRlc2NyaXB0b3IsIGZvcm1seUNvbmZpZywgZm9ybUVkaXRvckNvbXBvbmVudCkpO1xuICAgICAgICAgICAgZ3JvdXBzRmllbGQuZmllbGRHcm91cCEucHVzaChncm91cEZpZWxkKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gW2dyb3Vwc0ZpZWxkXTtcbiAgICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVGb3JtbHlGaWVsZHM8SXRlbT4oXG4gICAgZGVzY3JpcHRvcjogRmllbGRHcm91cERlc2NyaXB0b3I8YW55PixcbiAgICBlZGl0b3JEZXNjcmlwdG9yOiBFZGl0b3JEZXNjcmlwdG9ySW5zdDxhbnk+LFxuICAgIGZvcm1seUNvbmZpZzogRm9ybWx5Q29uZmlnLFxuICAgIGZvcm1FZGl0b3JDb21wb25lbnQ6IElGb3JtRWRpdG9yQ29tcG9uZW50PEl0ZW0+XG4pOiBDb21tb25zRm9ybWx5RmllbGRDb25maWdbXSB7XG4gICAgY29uc3QgZmllbGRzOiBDb21tb25zRm9ybWx5RmllbGRDb25maWdbXSA9IFtdO1xuICAgIGZvciAoY29uc3QgZGVzY3JpcHRvckZpZWxkIG9mIGRlc2NyaXB0b3IuZmllbGRzKSB7XG4gICAgICAgIGZpZWxkcy5wdXNoKGNyZWF0ZUZvcm1seUZpZWxkKGRlc2NyaXB0b3JGaWVsZCwgZWRpdG9yRGVzY3JpcHRvciwgZm9ybWx5Q29uZmlnLCBmb3JtRWRpdG9yQ29tcG9uZW50KSk7XG4gICAgfVxuICAgIC8vIHdyYXAgaW4gZ3JvdXAgdG8gYmUgYWJsZSB0byB1c2UgZmxleCBncmlkXG4gICAgY29uc3Qgd3JhcHBlckdyb3VwOiBDb21tb25zRm9ybWx5RmllbGRDb25maWcgPSB7XG4gICAgICAgIGZpZWxkR3JvdXBDbGFzc05hbWU6ICdwLWZsdWlkIGZvcm1ncmlkIGdyaWQnLFxuICAgICAgICBmaWVsZEdyb3VwOiBmaWVsZHMsXG4gICAgICAgIHByb3BzOiB7fVxuICAgIH07XG5cbiAgICBhZGRWYWxpZGF0aW9uc1RvRm9ybWx5RmllbGQod3JhcHBlckdyb3VwLCBkZXNjcmlwdG9yLnZhbGlkYXRpb25zLCBmb3JtbHlDb25maWcpO1xuXG4gICAgcmV0dXJuIFt3cmFwcGVyR3JvdXBdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRm9ybWx5RmllbGQ8SXRlbT4oXG4gICAgZGVzY3JpcHRvcjogQUZpZWxkRGVzY3JpcHRvcjxhbnksIGFueT4sXG4gICAgZWRpdG9yRGVzY3JpcHRvcjogRWRpdG9yRGVzY3JpcHRvckluc3Q8YW55PixcbiAgICBmb3JtbHlDb25maWc6IEZvcm1seUNvbmZpZyxcbiAgICBmb3JtRWRpdG9yQ29tcG9uZW50OiBJRm9ybUVkaXRvckNvbXBvbmVudDxJdGVtPlxuKTogQ29tbW9uc0Zvcm1seUZpZWxkQ29uZmlnIHtcbiAgICBjb25zdCBmaWVsZDogQ29tbW9uc0Zvcm1seUZpZWxkQ29uZmlnPGFueSwgSXRlbT4gPSB7XG4gICAgICAgIGtleTogZGVzY3JpcHRvci5wcm9wZXJ0eSxcbiAgICAgICAgbW9kZWxPcHRpb25zOiB7XG4gICAgICAgICAgICB1cGRhdGVPbjogZGVzY3JpcHRvci51cGRhdGVPblxuICAgICAgICB9LFxuICAgICAgICBob29rczoge1xuICAgICAgICAgICAgb25Jbml0OiAoKSA9PiAoZGVzY3JpcHRvci5vbkluaXQgPyBkZXNjcmlwdG9yLm9uSW5pdChmaWVsZCkgOiB1bmRlZmluZWQpLFxuICAgICAgICAgICAgb25DaGFuZ2VzOiAoKSA9PiAoZGVzY3JpcHRvci5vbkNoYW5nZXMgPyBkZXNjcmlwdG9yLm9uQ2hhbmdlcyhmaWVsZCkgOiB1bmRlZmluZWQpLFxuICAgICAgICAgICAgYWZ0ZXJDb250ZW50SW5pdDogKCkgPT4gKGRlc2NyaXB0b3IuYWZ0ZXJDb250ZW50SW5pdCA/IGRlc2NyaXB0b3IuYWZ0ZXJDb250ZW50SW5pdChmaWVsZCkgOiB1bmRlZmluZWQpLFxuICAgICAgICAgICAgYWZ0ZXJWaWV3SW5pdDogKCkgPT4gKGRlc2NyaXB0b3IuYWZ0ZXJWaWV3SW5pdCA/IGRlc2NyaXB0b3IuYWZ0ZXJWaWV3SW5pdChmaWVsZCkgOiB1bmRlZmluZWQpLFxuICAgICAgICAgICAgb25EZXN0cm95OiAoKSA9PiAoZGVzY3JpcHRvci5vbkRlc3Ryb3kgPyBkZXNjcmlwdG9yLm9uRGVzdHJveShmaWVsZCkgOiB1bmRlZmluZWQpXG4gICAgICAgIH0sXG4gICAgICAgIHByb3BzOiB7XG4gICAgICAgICAgICBkZXNjcmlwdG9yLFxuICAgICAgICAgICAgZm9ybUVkaXRvckNvbXBvbmVudCxcbiAgICAgICAgICAgIGVkaXRvckRlc2NyaXB0b3I6IGVkaXRvckRlc2NyaXB0b3IsXG4gICAgICAgICAgICBvblZhbHVlQ2hhbmdlOiBkZXNjcmlwdG9yLm9uVmFsdWVDaGFuZ2VcbiAgICAgICAgfSxcbiAgICAgICAgZXhwcmVzc2lvbnM6IHt9XG4gICAgfTtcblxuICAgIGxldCBjbGFzc05hbWUgPSBkZXNjcmlwdG9yLmNsYXNzTmFtZTtcbiAgICBpZiAoIWNsYXNzTmFtZSkge1xuICAgICAgICAvLyBhc3NpZ24gZGVmYXVsdCBmaWVsZCB3aWR0aCB0aHJvdWdoIGVudGlyZSByb3dcbiAgICAgICAgY2xhc3NOYW1lID0gJ2NvbC0xMic7XG4gICAgfVxuICAgIGZpZWxkLmNsYXNzTmFtZSA9IGNsYXNzTmFtZTtcblxuICAgIGlmIChkZXNjcmlwdG9yIGluc3RhbmNlb2YgRmllbGRJbnB1dERlc2NyaXB0b3IpIHtcbiAgICAgICAgc3dpdGNoIChkZXNjcmlwdG9yLmZpZWxkVHlwZSkge1xuICAgICAgICAgICAgY2FzZSBGaWVsZElucHV0VHlwZUVudW0uSGlkZGVuOlxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBGaWVsZElucHV0VHlwZUVudW0uTGFiZWw6XG4gICAgICAgICAgICAgICAgZmllbGQudHlwZSA9ICdsYWJlbCc7XG4gICAgICAgICAgICAgICAgZGVsZXRlIGZpZWxkLmtleTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgRmllbGRJbnB1dFR5cGVFbnVtLlRleHRhcmVhOlxuICAgICAgICAgICAgICAgIGZpZWxkLnR5cGUgPSAndGV4dGFyZWEnO1xuICAgICAgICAgICAgICAgIGZpZWxkLnByb3BzLm1heExlbmd0aCA9IGRlc2NyaXB0b3IubWF4TGVuZ3RoO1xuICAgICAgICAgICAgICAgIGZpZWxkLnByb3BzLm1pbkxlbmd0aCA9IGRlc2NyaXB0b3IubWluTGVuZ3RoO1xuICAgICAgICAgICAgICAgIGZpZWxkLnByb3BzLnBhdHRlcm4gPSBkZXNjcmlwdG9yLnBhdHRlcm47XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIEZpZWxkSW5wdXRUeXBlRW51bS5OdW1iZXI6XG4gICAgICAgICAgICAgICAgZmllbGQudHlwZSA9ICdudW1iZXInO1xuICAgICAgICAgICAgICAgIGZpZWxkLnByb3BzLm1pbiA9IGRlc2NyaXB0b3IubnVtYmVyTWluO1xuICAgICAgICAgICAgICAgIGZpZWxkLnByb3BzLm1heCA9IGRlc2NyaXB0b3IubnVtYmVyTWF4O1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBGaWVsZElucHV0VHlwZUVudW0uQ3VycmVuY3k6XG4gICAgICAgICAgICAgICAgZmllbGQudHlwZSA9ICdjdXJyZW5jeSc7XG4gICAgICAgICAgICAgICAgZmllbGQucHJvcHMubWluID0gZGVzY3JpcHRvci5udW1iZXJNaW47XG4gICAgICAgICAgICAgICAgZmllbGQucHJvcHMubWF4ID0gZGVzY3JpcHRvci5udW1iZXJNYXg7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIEZpZWxkSW5wdXRUeXBlRW51bS5Td2l0Y2g6XG4gICAgICAgICAgICAgICAgZmllbGQudHlwZSA9ICdzd2l0Y2gnO1xuICAgICAgICAgICAgICAgIGZpZWxkLmRlZmF1bHRWYWx1ZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBGaWVsZElucHV0VHlwZUVudW0uUmFkaW86XG4gICAgICAgICAgICAgICAgZmllbGQudHlwZSA9ICdyYWRpbyc7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIEZpZWxkSW5wdXRUeXBlRW51bS5EYXRlcGlja2VyOlxuICAgICAgICAgICAgICAgIGZpZWxkLnR5cGUgPSAnZGF0ZXBpY2tlcic7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIEZpZWxkSW5wdXRUeXBlRW51bS5NYXNrOlxuICAgICAgICAgICAgICAgIGZpZWxkLnR5cGUgPSAnbWFzayc7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIEZpZWxkSW5wdXRUeXBlRW51bS5GaWxlOlxuICAgICAgICAgICAgY2FzZSBGaWVsZElucHV0VHlwZUVudW0uSW1hZ2VGaWxlOlxuICAgICAgICAgICAgICAgIGZpZWxkLnR5cGUgPSAnZmlsZSc7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIEZpZWxkSW5wdXRUeXBlRW51bS5JbWFnZVVybDpcbiAgICAgICAgICAgICAgICBmaWVsZC50eXBlID0gJ2ltYWdlVXJsJztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgRmllbGRJbnB1dFR5cGVFbnVtLkN1c3RvbTpcbiAgICAgICAgICAgICAgICBpZiAoZGVzY3JpcHRvci5jdXN0b21Db21wb25lbnRUeXBlKSB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkLnR5cGUgPSAnY3VzdG9tJztcbiAgICAgICAgICAgICAgICAgICAgZmllbGQucHJvcHNbJ2N1c3RvbUNvbXBvbmVudFR5cGUnXSA9IGRlc2NyaXB0b3IuY3VzdG9tQ29tcG9uZW50VHlwZTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZGVzY3JpcHRvci5jdXN0b21Db21wb25lbnRXcmFwcGVycykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkLndyYXBwZXJzID0gZGVzY3JpcHRvci5jdXN0b21Db21wb25lbnRXcmFwcGVycztcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGRlZmF1bHQgd3JhcHBlclxuICAgICAgICAgICAgICAgICAgICAgICAgZmllbGQud3JhcHBlcnMgPSBbJ2ZpZWxkJ107XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIGZpZWxkLnR5cGUgPSAnaW5wdXQnO1xuICAgICAgICAgICAgICAgIGZpZWxkLnByb3BzLm1pbkxlbmd0aCA9IGRlc2NyaXB0b3IubWluTGVuZ3RoO1xuICAgICAgICAgICAgICAgIGZpZWxkLnByb3BzLm1heExlbmd0aCA9IGRlc2NyaXB0b3IubWF4TGVuZ3RoO1xuICAgICAgICAgICAgICAgIGZpZWxkLnByb3BzLnBhdHRlcm4gPSBkZXNjcmlwdG9yLnBhdHRlcm47XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGRlc2NyaXB0b3IgaW5zdGFuY2VvZiBGaWVsZEFjdGlvbkRlc2NyaXB0b3IpIHtcbiAgICAgICAgZmllbGQudHlwZSA9ICdhY3Rpb24nO1xuICAgICAgICBmaWVsZC53cmFwcGVycyA9IGRlc2NyaXB0b3Iud3JhcHBlcnM7XG4gICAgICAgIGRlbGV0ZSBmaWVsZC5rZXk7XG4gICAgfSBlbHNlIGlmIChkZXNjcmlwdG9yIGluc3RhbmNlb2YgRmllbGRMb29rdXBFbnVtRGVzY3JpcHRvcikge1xuICAgICAgICBzd2l0Y2ggKGRlc2NyaXB0b3IubG9va3VwVHlwZSkge1xuICAgICAgICAgICAgY2FzZSBGaWVsZExvb2t1cFR5cGVFbnVtLkN1c3RvbTpcbiAgICAgICAgICAgICAgICBmaWVsZC50eXBlID0gZGVzY3JpcHRvci5jdXN0b21Db21wb25lbnROYW1lO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICBmaWVsZC50eXBlID0gJ2VudW0nO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfSBlbHNlIGlmIChkZXNjcmlwdG9yIGluc3RhbmNlb2YgRmllbGRMb29rdXBEZXNjcmlwdG9yKSB7XG4gICAgICAgIHN3aXRjaCAoZGVzY3JpcHRvci5sb29rdXBUeXBlKSB7XG4gICAgICAgICAgICBjYXNlIEZpZWxkTG9va3VwVHlwZUVudW0uQXV0b2NvbXBsZXRlOlxuICAgICAgICAgICAgICAgIGZpZWxkLnR5cGUgPSAnYXV0b2NvbXBsZXRlJztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgRmllbGRMb29rdXBUeXBlRW51bS5EaWFsb2c6XG4gICAgICAgICAgICAgICAgZmllbGQudHlwZSA9ICdkaWFsb2cnO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBGaWVsZExvb2t1cFR5cGVFbnVtLkN1c3RvbTpcbiAgICAgICAgICAgICAgICBmaWVsZC50eXBlID0gZGVzY3JpcHRvci5jdXN0b21Db21wb25lbnROYW1lO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBGaWVsZExvb2t1cFR5cGVFbnVtLkRyb3Bkb3duOlxuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICBmaWVsZC50eXBlID0gJ2Ryb3Bkb3duJztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH0gZWxzZSBpZiAoZGVzY3JpcHRvciBpbnN0YW5jZW9mIEZpZWxkTWFueVRvTWFueUVkaXRvckRlc2NyaXB0b3IpIHtcbiAgICAgICAgZmllbGQudHlwZSA9ICd0YWJsZS1kaWFsb2ctbXVsdGlzZWxlY3QnO1xuICAgIH0gZWxzZSBpZiAoZGVzY3JpcHRvciBpbnN0YW5jZW9mIEZpZWxkTWFueUVkaXRvckRlc2NyaXB0b3IpIHtcbiAgICAgICAgZmllbGQudHlwZSA9ICd0YWJsZS1kaWFsb2ctZm9ybSc7XG4gICAgfVxuXG4gICAgaWYgKGRlc2NyaXB0b3IubGFiZWwpIHtcbiAgICAgICAgZmllbGQucHJvcHMubGFiZWwgPSBkZXNjcmlwdG9yLmxhYmVsO1xuICAgIH1cblxuICAgIGlmIChkZXNjcmlwdG9yLnJlcXVpcmVkRXhwcmVzc2lvbikge1xuICAgICAgICBmaWVsZC5leHByZXNzaW9ucyFbJ3Byb3BzLnJlcXVpcmVkJ10gPSBkZXNjcmlwdG9yLnJlcXVpcmVkRXhwcmVzc2lvbjtcbiAgICB9XG4gICAgaWYgKGRlc2NyaXB0b3IucmVxdWlyZWQpIHtcbiAgICAgICAgZmllbGQucHJvcHMhLnJlcXVpcmVkID0gdHJ1ZTtcbiAgICAgICAgaWYgKGRlc2NyaXB0b3IucmVxdWlyZWRIaWRlTGFiZWxNYXJrZXIpIHtcbiAgICAgICAgICAgIGZpZWxkLnByb3BzIVsnaGlkZVJlcXVpcmVkTWFya2VyJ10gPSB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGRlc2NyaXB0b3IuaGlkZGVuRXhwcmVzc2lvbikge1xuICAgICAgICBmaWVsZC5leHByZXNzaW9ucyFbJ2hpZGUnXSA9IGRlc2NyaXB0b3IuaGlkZGVuRXhwcmVzc2lvbjtcbiAgICAgICAgZmllbGQuZXhwcmVzc2lvbnMhWydyZXNldE9uSGlkZSddID0gKCkgPT4gZGVzY3JpcHRvci5oaWRkZW5SZXNldE9uSGlkZSA/PyB0cnVlO1xuICAgIH1cblxuICAgIGlmIChkZXNjcmlwdG9yLmRpc2FibGVkRXhwcmVzc2lvbikge1xuICAgICAgICBmaWVsZC5leHByZXNzaW9ucyFbJ3Byb3BzLmRpc2FibGVkJ10gPSBkZXNjcmlwdG9yLmRpc2FibGVkRXhwcmVzc2lvbjtcbiAgICB9IGVsc2UgaWYgKGRlc2NyaXB0b3IuZGlzYWJsZWQpIHtcbiAgICAgICAgZmllbGQucHJvcHMuZGlzYWJsZWQgPSB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGZpZWxkLmV4cHJlc3Npb25zIVsncHJvcHMuZGlzYWJsZWQnXSA9ICdmb3JtU3RhdGUuZGlzYWJsZWQnO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgZGVzY3JpcHRvci5kZWZhdWx0VmFsdWUgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIGZpZWxkLmRlZmF1bHRWYWx1ZSA9IGRlc2NyaXB0b3IuZGVmYXVsdFZhbHVlO1xuICAgIH1cblxuICAgIGlmIChkZXNjcmlwdG9yIGluc3RhbmNlb2YgRmllbGRJbnB1dERlc2NyaXB0b3IpIHtcbiAgICAgICAgaWYgKGRlc2NyaXB0b3IudmFsaWRhdGlvbkVtYWlsKSB7XG4gICAgICAgICAgICBkZXNjcmlwdG9yLnZhbGlkYXRpb25zLnB1c2gobmV3IEZpZWxkVmFsaWRhdGlvbkRlc2NyaXB0b3IoZW1haWxWYWxpZGF0aW9uTmFtZSwgZW1haWxWYWxpZGF0b3IoKSBhcyBGaWVsZEJhc2VWYWxpZGF0b3I8c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCwgYW55PikpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkZXNjcmlwdG9yLmRhdGVQaWNrZXJNaW4pIHtcbiAgICAgICAgICAgIGRlc2NyaXB0b3IudmFsaWRhdGlvbnMucHVzaChcbiAgICAgICAgICAgICAgICBuZXcgRmllbGRWYWxpZGF0aW9uRGVzY3JpcHRvcihtaW5EYXRlVmFsaWRhdGlvbk5hbWUsIG1pbkRhdGVWYWxpZGF0b3IoZGVzY3JpcHRvci5kYXRlUGlja2VyTWluKSBhcyBGaWVsZEJhc2VWYWxpZGF0b3I8c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCwgYW55PilcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRlc2NyaXB0b3IuZGF0ZVBpY2tlck1heCkge1xuICAgICAgICAgICAgZGVzY3JpcHRvci52YWxpZGF0aW9ucy5wdXNoKFxuICAgICAgICAgICAgICAgIG5ldyBGaWVsZFZhbGlkYXRpb25EZXNjcmlwdG9yKG1heERhdGVWYWxpZGF0aW9uTmFtZSwgbWF4RGF0ZVZhbGlkYXRvcihkZXNjcmlwdG9yLmRhdGVQaWNrZXJNYXgpIGFzIEZpZWxkQmFzZVZhbGlkYXRvcjxzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkLCBhbnk+KVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGFkZFZhbGlkYXRpb25zVG9Gb3JtbHlGaWVsZChmaWVsZCwgZGVzY3JpcHRvci52YWxpZGF0aW9ucywgZm9ybWx5Q29uZmlnKTtcbiAgICBhZGRBc3luY1ZhbGlkYXRpb25zVG9Gb3JtbHlGaWVsZChmaWVsZCwgZGVzY3JpcHRvci5hc3luY1ZhbGlkYXRpb25zLCBmb3JtbHlDb25maWcpO1xuXG4gICAgcmV0dXJuIGZpZWxkO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYWRkVmFsaWRhdGlvbnNUb0Zvcm1seUZpZWxkKGNvbmZpZzogQ29tbW9uc0Zvcm1seUZpZWxkQ29uZmlnLCB2YWxpZGF0aW9uczogQXJyYXk8RmllbGRWYWxpZGF0aW9uRGVzY3JpcHRvcjxhbnksIGFueT4+LCBmb3JtbHlDb25maWc6IEZvcm1seUNvbmZpZykge1xuICAgIGlmICghY29uZmlnLnZhbGlkYXRvcnMpIHtcbiAgICAgICAgY29uZmlnLnZhbGlkYXRvcnMgPSB7fTtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IHZhbGlkYXRpb24gb2YgdmFsaWRhdGlvbnMpIHtcbiAgICAgICAgY3JlYXRlRm9ybWx5VmFsaWRhdGlvbihjb25maWcudmFsaWRhdG9ycywgdmFsaWRhdGlvbiwgZm9ybWx5Q29uZmlnKTtcbiAgICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhZGRBc3luY1ZhbGlkYXRpb25zVG9Gb3JtbHlGaWVsZChjb25maWc6IENvbW1vbnNGb3JtbHlGaWVsZENvbmZpZywgYXN5bmNWYWxpZGF0aW9uczogQXJyYXk8RmllbGRWYWxpZGF0aW9uRGVzY3JpcHRvcjxhbnksIGFueT4+LCBmb3JtbHlDb25maWc6IEZvcm1seUNvbmZpZykge1xuICAgIGlmICghY29uZmlnLmFzeW5jVmFsaWRhdG9ycykge1xuICAgICAgICBjb25maWcuYXN5bmNWYWxpZGF0b3JzID0ge307XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCB2YWxpZGF0aW9uIG9mIGFzeW5jVmFsaWRhdGlvbnMpIHtcbiAgICAgICAgY3JlYXRlRm9ybWx5VmFsaWRhdGlvbihjb25maWcuYXN5bmNWYWxpZGF0b3JzLCB2YWxpZGF0aW9uLCBmb3JtbHlDb25maWcpO1xuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUZvcm1seVZhbGlkYXRpb24oY29uZmlnOiBOb25OdWxsYWJsZTxDb21tb25zRm9ybWx5VmFsaWRhdGlvbj4sIHZhbGlkYXRpb246IEZpZWxkVmFsaWRhdGlvbkRlc2NyaXB0b3I8YW55LCBhbnk+LCBmb3JtbHlDb25maWc6IEZvcm1seUNvbmZpZykge1xuICAgIGlmICh0eXBlb2YgdmFsaWRhdGlvbi52YWxpZGF0b3IgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgaWYgKHZhbGlkYXRpb24ub3B0aW9ucz8uZXJyb3JQYXRoICYmIHZhbGlkYXRpb24ubWVzc2FnZSAhPSBudWxsKSB7XG4gICAgICAgICAgICAvLyBpZiB0aGlzIGlzIHVzZWQsIHRoZSB2YWxpZGF0b3IgYW5kIG1lc3NhZ2UgbXVzdCBiZSByZWdpc3RlcmVkIGdsb2JhbGx5XG4gICAgICAgICAgICBpZiAoIWZvcm1seUNvbmZpZy5nZXRWYWxpZGF0b3JNZXNzYWdlKHZhbGlkYXRpb24ubmFtZSkpIHtcbiAgICAgICAgICAgICAgICBmb3JtbHlDb25maWcuYWRkVmFsaWRhdG9yTWVzc2FnZSh2YWxpZGF0aW9uLm5hbWUsIHZhbGlkYXRpb24ubWVzc2FnZSBhcyBWYWxpZGF0aW9uTWVzc2FnZU9wdGlvblsnbWVzc2FnZSddKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCFmb3JtbHlDb25maWcudmFsaWRhdG9yc1t2YWxpZGF0aW9uLm5hbWVdKSB7XG4gICAgICAgICAgICAgICAgZm9ybWx5Q29uZmlnLnNldFZhbGlkYXRvcih7XG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IHZhbGlkYXRpb24ubmFtZSxcbiAgICAgICAgICAgICAgICAgICAgdmFsaWRhdGlvbjogKGNvbnRyb2wsIGZpZWxkKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjb21tb25zRmllbGRGb3JtbHlDb25maWcgPSBmaWVsZCBhcyBDb21tb25zRm9ybWx5RmllbGRDb25maWc7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmFsaWRhdGlvbi52YWxpZGF0b3IhKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWVsZEZvcm1Db250cm9sOiBjb250cm9sLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm06IGNvbW1vbnNGaWVsZEZvcm1seUNvbmZpZy5mb3JtIGFzIEZvcm1Hcm91cCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWVsZEZvcm1seUNvbmZpZzogZmllbGQgYXMgQ29tbW9uc0Zvcm1seUZpZWxkQ29uZmlnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db21wb25lbnQ6IGNvbW1vbnNGaWVsZEZvcm1seUNvbmZpZy5wcm9wcz8uZm9ybUVkaXRvckNvbXBvbmVudCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWVsZENvbXBvbmVudDogY29tbW9uc0ZpZWxkRm9ybWx5Q29uZmlnLnByb3BzPy5maWVsZENvbXBvbmVudFxuICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IG51bGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IDxWYWxpZGF0b3JzPntbdmFsaWRhdGlvbi5uYW1lXTogdHJ1ZX07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KGNvbmZpZy52YWxpZGF0aW9uKSkge1xuICAgICAgICAgICAgICAgIGNvbmZpZy52YWxpZGF0aW9uID0gW107XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25maWcudmFsaWRhdGlvbi5wdXNoKHtcbiAgICAgICAgICAgICAgICBuYW1lOiB2YWxpZGF0aW9uLm5hbWUsXG4gICAgICAgICAgICAgICAgb3B0aW9uczoge2Vycm9yUGF0aDogdmFsaWRhdGlvbi5vcHRpb25zLmVycm9yUGF0aH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uZmlnW3ZhbGlkYXRpb24ubmFtZV0gPSB7XG4gICAgICAgICAgICAgICAgZXhwcmVzc2lvbjogKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCwgZmllbGQ6IEZvcm1seUZpZWxkQ29uZmlnKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbW1vbnNGaWVsZEZvcm1seUNvbmZpZyA9IGZpZWxkIGFzIENvbW1vbnNGb3JtbHlGaWVsZENvbmZpZztcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHZhbGlkYXRpb24udmFsaWRhdG9yISh7XG4gICAgICAgICAgICAgICAgICAgICAgICBmaWVsZEZvcm1Db250cm9sOiBjb250cm9sLFxuICAgICAgICAgICAgICAgICAgICAgICAgZm9ybTogY29tbW9uc0ZpZWxkRm9ybWx5Q29uZmlnLmZvcm0gYXMgRm9ybUdyb3VwLFxuICAgICAgICAgICAgICAgICAgICAgICAgZmllbGRGb3JtbHlDb25maWc6IGNvbW1vbnNGaWVsZEZvcm1seUNvbmZpZyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db21wb25lbnQ6IGNvbW1vbnNGaWVsZEZvcm1seUNvbmZpZy5wcm9wcz8uZm9ybUVkaXRvckNvbXBvbmVudCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkQ29tcG9uZW50OiBjb21tb25zRmllbGRGb3JtbHlDb25maWcucHJvcHM/LmZpZWxkQ29tcG9uZW50XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBpZiAodmFsaWRhdGlvbi5tZXNzYWdlICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICBjb25maWdbdmFsaWRhdGlvbi5uYW1lXS5tZXNzYWdlID0gdmFsaWRhdGlvbi5tZXNzYWdlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KGNvbmZpZy52YWxpZGF0aW9uKSkge1xuICAgICAgICAgICAgY29uZmlnLnZhbGlkYXRpb24gPSBbXTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodmFsaWRhdGlvbi5vcHRpb25zPy5lcnJvclBhdGgpIHtcbiAgICAgICAgICAgIGNvbmZpZy52YWxpZGF0aW9uLnB1c2goe1xuICAgICAgICAgICAgICAgIG5hbWU6IHZhbGlkYXRpb24ubmFtZSxcbiAgICAgICAgICAgICAgICBvcHRpb25zOiB7ZXJyb3JQYXRoOiB2YWxpZGF0aW9uLm9wdGlvbnMuZXJyb3JQYXRofVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25maWcudmFsaWRhdGlvbi5wdXNoKHZhbGlkYXRpb24ubmFtZSk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
|
|
@@ -1765,7 +1765,7 @@ function createFormlyTabType(tabGroups, editorDescriptor, formlyConfig, formEdit
|
|
|
1765
1765
|
tabField.props.label = tab.title;
|
|
1766
1766
|
}
|
|
1767
1767
|
if (tab.hiddenExpression) {
|
|
1768
|
-
tabField.expressions['
|
|
1768
|
+
tabField.expressions['props.groupHidden'] = tab.hiddenExpression;
|
|
1769
1769
|
}
|
|
1770
1770
|
tabField.fieldGroup.push(...createFormlyGroupType(tab.fields, editorDescriptor, formlyConfig, formEditorComponent));
|
|
1771
1771
|
tabsField.fieldGroup.push(tabField);
|
|
@@ -1801,7 +1801,7 @@ function createFormlyGroupType(groups, editorDescriptor, formlyConfig, formEdito
|
|
|
1801
1801
|
groupField.props.label = group.title;
|
|
1802
1802
|
}
|
|
1803
1803
|
if (group.hiddenExpression) {
|
|
1804
|
-
groupField.expressions['
|
|
1804
|
+
groupField.expressions['props.groupHidden'] = group.hiddenExpression;
|
|
1805
1805
|
}
|
|
1806
1806
|
groupField.fieldGroup.push(...createFormlyFields(group, editorDescriptor, formlyConfig, formEditorComponent));
|
|
1807
1807
|
groupsField.fieldGroup.push(groupField);
|
|
@@ -3695,11 +3695,11 @@ class FormlyFieldFieldsetComponent extends ACommonsFormlyFieldType {
|
|
|
3695
3695
|
})));
|
|
3696
3696
|
}
|
|
3697
3697
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: FormlyFieldFieldsetComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
3698
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.12", type: FormlyFieldFieldsetComponent, isStandalone: true, selector: "mng-formly-field-fieldset", usesInheritance: true, ngImport: i0, template: "@for (group of fieldGroup(); track group) {\n @switch (group.type) {\n @case (typeFieldset) {\n
|
|
3698
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.12", type: FormlyFieldFieldsetComponent, isStandalone: true, selector: "mng-formly-field-fieldset", usesInheritance: true, ngImport: i0, template: "@for (group of fieldGroup(); track group) {\n @switch (group.type) {\n @case (typeFieldset) {\n <p-fieldset\n [legend]=\"group.config.props.descriptor | mngFormlyFieldLabel: group.config.props.editorDescriptor | translate\"\n [hidden]=\"group.config.props['groupHidden']\">\n <formly-field [field]=\"group.config\"></formly-field>\n </p-fieldset>\n }\n @default {\n <formly-field [field]=\"group.config\"></formly-field>\n }\n }\n}\n", dependencies: [{ kind: "ngmodule", type: FieldsetModule }, { kind: "component", type: i1$3.Fieldset, selector: "p-fieldset", inputs: ["legend", "toggleable", "collapsed", "style", "styleClass", "transitionOptions"], outputs: ["collapsedChange", "onBeforeToggle", "onAfterToggle"] }, { kind: "ngmodule", type: FormlyModule }, { kind: "component", type: i2$1.FormlyField, selector: "formly-field", inputs: ["field"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }, { kind: "pipe", type: FormlyFieldLabelPipe, name: "mngFormlyFieldLabel" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
3699
3699
|
}
|
|
3700
3700
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: FormlyFieldFieldsetComponent, decorators: [{
|
|
3701
3701
|
type: Component,
|
|
3702
|
-
args: [{ standalone: true, selector: 'mng-formly-field-fieldset', imports: [FieldsetModule, FormlyModule, TranslateModule, FormlyFieldLabelPipe], changeDetection: ChangeDetectionStrategy.OnPush, template: "@for (group of fieldGroup(); track group) {\n @switch (group.type) {\n @case (typeFieldset) {\n
|
|
3702
|
+
args: [{ standalone: true, selector: 'mng-formly-field-fieldset', imports: [FieldsetModule, FormlyModule, TranslateModule, FormlyFieldLabelPipe], changeDetection: ChangeDetectionStrategy.OnPush, template: "@for (group of fieldGroup(); track group) {\n @switch (group.type) {\n @case (typeFieldset) {\n <p-fieldset\n [legend]=\"group.config.props.descriptor | mngFormlyFieldLabel: group.config.props.editorDescriptor | translate\"\n [hidden]=\"group.config.props['groupHidden']\">\n <formly-field [field]=\"group.config\"></formly-field>\n </p-fieldset>\n }\n @default {\n <formly-field [field]=\"group.config\"></formly-field>\n }\n }\n}\n" }]
|
|
3703
3703
|
}] });
|
|
3704
3704
|
|
|
3705
3705
|
class FormlyFieldInputComponent extends ACommonsFormlyFieldType {
|
|
@@ -4464,11 +4464,11 @@ class FormlyFieldTabsComponent extends ACommonsFormlyFieldType {
|
|
|
4464
4464
|
this.fieldGroup.set(this.field.fieldGroup === undefined ? [] : this.field.fieldGroup);
|
|
4465
4465
|
}
|
|
4466
4466
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: FormlyFieldTabsComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
4467
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.12", type: FormlyFieldTabsComponent, isStandalone: true, selector: "mng-formly-field-tabs", usesInheritance: true, ngImport: i0, template: "<p-tabView [scrollable]=\"true\">\n @for (tab of fieldGroup(); track tab) {\n <p-tabPanel\n [header]=\"tab.props.descriptor | mngFormlyFieldLabel: tab.props.editorDescriptor | translate\"\n [headerStyleClass]=\"(formControl!.valid ? 'p-tabview-title' : '') + (tab.props
|
|
4467
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.12", type: FormlyFieldTabsComponent, isStandalone: true, selector: "mng-formly-field-tabs", usesInheritance: true, ngImport: i0, template: "<p-tabView [scrollable]=\"true\">\n @for (tab of fieldGroup(); track tab) {\n <p-tabPanel\n [header]=\"tab.props.descriptor | mngFormlyFieldLabel: tab.props.editorDescriptor | translate\"\n [headerStyleClass]=\"(formControl!.valid ? 'p-tabview-title' : '') + (tab.props['groupHidden'] ? ' hidden' : '')\"\n [hidden]=\"tab.props['groupHidden']\">\n <ng-template pTemplate=\"header\">\n <span class=\"p-tabview-title\" [class.p-tabview-title-error]=\"formState.submittedOn && formState['tab_' + (tab.id ? tab.id : (tab.key ?? '')) + '_invalid']\">{{\n tab.props.descriptor | mngFormlyFieldLabel: tab.props.editorDescriptor | translate\n }}</span>\n </ng-template>\n <formly-field [field]=\"tab\"></formly-field>\n </p-tabPanel>\n }\n</p-tabView>\n", dependencies: [{ kind: "ngmodule", type: TabViewModule }, { kind: "component", type: i1$5.TabView, selector: "p-tabView", inputs: ["style", "styleClass", "controlClose", "scrollable", "activeIndex", "selectOnFocus", "nextButtonAriaLabel", "prevButtonAriaLabel", "autoHideButtons", "tabindex"], outputs: ["onChange", "onClose", "activeIndexChange"] }, { kind: "component", type: i1$5.TabPanel, selector: "p-tabPanel", inputs: ["closable", "headerStyle", "headerStyleClass", "cache", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "selected", "disabled", "header", "leftIcon", "rightIcon"] }, { kind: "directive", type: i2$2.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: FormlyModule }, { kind: "component", type: i2$1.FormlyField, selector: "formly-field", inputs: ["field"] }, { kind: "pipe", type: FormlyFieldLabelPipe, name: "mngFormlyFieldLabel" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
4468
4468
|
}
|
|
4469
4469
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: FormlyFieldTabsComponent, decorators: [{
|
|
4470
4470
|
type: Component,
|
|
4471
|
-
args: [{ standalone: true, selector: 'mng-formly-field-tabs', imports: [TabViewModule, TranslateModule, FormlyModule, FormlyFieldLabelPipe], changeDetection: ChangeDetectionStrategy.OnPush, template: "<p-tabView [scrollable]=\"true\">\n @for (tab of fieldGroup(); track tab) {\n <p-tabPanel\n [header]=\"tab.props.descriptor | mngFormlyFieldLabel: tab.props.editorDescriptor | translate\"\n [headerStyleClass]=\"(formControl!.valid ? 'p-tabview-title' : '') + (tab.props
|
|
4471
|
+
args: [{ standalone: true, selector: 'mng-formly-field-tabs', imports: [TabViewModule, TranslateModule, FormlyModule, FormlyFieldLabelPipe], changeDetection: ChangeDetectionStrategy.OnPush, template: "<p-tabView [scrollable]=\"true\">\n @for (tab of fieldGroup(); track tab) {\n <p-tabPanel\n [header]=\"tab.props.descriptor | mngFormlyFieldLabel: tab.props.editorDescriptor | translate\"\n [headerStyleClass]=\"(formControl!.valid ? 'p-tabview-title' : '') + (tab.props['groupHidden'] ? ' hidden' : '')\"\n [hidden]=\"tab.props['groupHidden']\">\n <ng-template pTemplate=\"header\">\n <span class=\"p-tabview-title\" [class.p-tabview-title-error]=\"formState.submittedOn && formState['tab_' + (tab.id ? tab.id : (tab.key ?? '')) + '_invalid']\">{{\n tab.props.descriptor | mngFormlyFieldLabel: tab.props.editorDescriptor | translate\n }}</span>\n </ng-template>\n <formly-field [field]=\"tab\"></formly-field>\n </p-tabPanel>\n }\n</p-tabView>\n" }]
|
|
4472
4472
|
}] });
|
|
4473
4473
|
|
|
4474
4474
|
class FormlyFieldNoLabelWrapperComponent extends FieldWrapper {
|