verben-workflow-ui 0.5.71 → 0.5.73
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/src/lib/components/workflow-designer/designer-canvas/designer-canvas.component.mjs +26 -2
- package/esm2022/src/lib/components/workflow-designer/stage-dialog/stage-dialog.component.mjs +6 -3
- package/esm2022/src/lib/components/workflow-designer/swimlane-dialog/swimlane-dialog.component.mjs +14 -4
- package/esm2022/src/lib/components/workflow-designer/workflow-data.service.mjs +5 -1
- package/esm2022/src/lib/components/workflow-designer/workflow-designer.component.mjs +45 -3
- package/esm2022/src/lib/components/workflow-designer/workflow-designer.state.mjs +38 -1
- package/fesm2022/verben-workflow-ui-src-lib-components-workflow-designer.mjs +126 -7
- package/fesm2022/verben-workflow-ui-src-lib-components-workflow-designer.mjs.map +1 -1
- package/package.json +57 -57
- package/src/lib/components/workflow-designer/swimlane-dialog/swimlane-dialog.component.d.ts +4 -1
- package/src/lib/components/workflow-designer/workflow-data.service.d.ts +2 -1
- package/src/lib/components/workflow-designer/workflow-designer.component.d.ts +2 -0
- package/src/lib/components/workflow-designer/workflow-designer.state.d.ts +16 -0
package/esm2022/src/lib/components/workflow-designer/stage-dialog/stage-dialog.component.mjs
CHANGED
|
@@ -35,6 +35,7 @@ export class StageDialogComponent {
|
|
|
35
35
|
PassOnRule: [''],
|
|
36
36
|
ActorRule: [StageActorRule.None],
|
|
37
37
|
AssignmentType: [TaskAssignmentType.AutoRoute],
|
|
38
|
+
IsEntryPoint: [false],
|
|
38
39
|
IsExitPoint: [false],
|
|
39
40
|
Tags: [[]],
|
|
40
41
|
});
|
|
@@ -50,6 +51,7 @@ export class StageDialogComponent {
|
|
|
50
51
|
PassOnRule: stageData.PassOnRule || '',
|
|
51
52
|
ActorRule: stageData.ActorRule || StageActorRule.None,
|
|
52
53
|
AssignmentType: stageData.AssignmentType || TaskAssignmentType.AutoRoute,
|
|
54
|
+
IsEntryPoint: stageData.IsEntryPoint || false,
|
|
53
55
|
IsExitPoint: stageData.IsExitPoint || false,
|
|
54
56
|
Tags: stageData.Tags || [],
|
|
55
57
|
});
|
|
@@ -85,6 +87,7 @@ export class StageDialogComponent {
|
|
|
85
87
|
PassOnRule: this.stageData().PassOnRule || '',
|
|
86
88
|
ActorRule: this.stageData().ActorRule || StageActorRule.None,
|
|
87
89
|
AssignmentType: this.stageData().AssignmentType || TaskAssignmentType.AutoRoute,
|
|
90
|
+
IsEntryPoint: this.stageData().IsEntryPoint || false,
|
|
88
91
|
IsExitPoint: this.stageData().IsExitPoint || false,
|
|
89
92
|
Tags: this.stageData().Tags || [],
|
|
90
93
|
});
|
|
@@ -159,14 +162,14 @@ export class StageDialogComponent {
|
|
|
159
162
|
}
|
|
160
163
|
}
|
|
161
164
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StageDialogComponent, deps: [{ token: i1.FormBuilder }, { token: i2.WorkflowDataService }, { token: i3.NodeManagementService }, { token: i4.PopupService }], target: i0.ɵɵFactoryTarget.Component });
|
|
162
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: StageDialogComponent, selector: "lib-stage-dialog", inputs: { visible: { classPropertyName: "visible", publicName: "visible", isSignal: true, isRequired: false, transformFunction: null }, stageData: { classPropertyName: "stageData", publicName: "stageData", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { closed: "closed", saved: "saved" }, usesOnChanges: true, ngImport: i0, template: "<verben-dialogue\n [showCloseIcon]=\"true\"\n [dismissOutsideClick]=\"true\"\n [closeOnEscape]=\"true\"\n [size]=\"'medium'\"\n [mode]=\"'drawer'\"\n [disableFooter]=\"false\"\n [isVisible]=\"visible()\"\n [headerTemplate]=\"headerTemplate\"\n [bodyTemplate]=\"bodyTemplate\"\n [footerTemplate]=\"footerTemplate\"\n (openModal)=\"onDialogOpen($event)\"\n (closeModal)=\"onDialogClose($event)\"\n>\n</verben-dialogue>\n\n<ng-template #headerTemplate>\n <div class=\"p-4 border-b border-gray-200\">\n <h2 class=\"text-xl font-medium m-0\">Stage Properties</h2>\n </div>\n</ng-template>\n\n<ng-template #bodyTemplate>\n <div class=\"p-4\">\n <form [formGroup]=\"stageForm\" class=\"grid gap-y-4\">\n <!-- Stage Name -->\n <verbena-input\n name=\"Name\"\n label=\"Stage Name\"\n formControlName=\"Name\"\n placeHolder=\"Enter Stage Name\"\n />\n\n <!-- Description -->\n <verbena-textarea\n label=\"Description\"\n [rows]=\"3\"\n formControlName=\"Description\"\n ></verbena-textarea>\n\n <!-- Recipient Count -->\n <verbena-input\n name=\"MinNoOfActor\"\n label=\"Recipient Count\"\n type=\"number\"\n formControlName=\"MinNoOfActor\"\n placeHolder=\"Enter Count\"\n />\n\n <!-- Pass On Rule -->\n <verbena-input\n name=\"PassOnRule\"\n label=\"Pass On Rule\"\n formControlName=\"PassOnRule\"\n placeHolder=\"Select Rule\"\n />\n\n <!-- Duration -->\n <verbena-input\n name=\"Duration\"\n label=\"Duration\"\n type=\"number\"\n formControlName=\"Duration\"\n placeHolder=\"Set Duration\"\n />\n\n <!-- Actor Rule -->\n <div class=\"space-y-1\">\n <label for=\"actor-rule\" class=\"text-sm font-semibold text-[#3E3E3E]\">\n Actor Rule\n </label>\n <verben-drop-down\n id=\"actor-rule\"\n styleClass=\"w-full\"\n width=\"100%\"\n [multiselect]=\"false\"\n placeholder=\"Select Rule\"\n [options]=\"actorRules\"\n formControlName=\"ActorRule\"\n class=\"form-control\"\n [showClear]=\"true\"\n >\n </verben-drop-down>\n </div>\n\n <!-- Assignment Type -->\n <div class=\"space-y-1\">\n <label for=\"assignment\" class=\"text-sm font-semibold text-[#3E3E3E]\">\n Assignment Type\n </label>\n <verben-drop-down\n id=\"assignment\"\n styleClass=\"w-full\"\n width=\"100%\"\n [multiselect]=\"false\"\n placeholder=\"Select\"\n [options]=\"assignmentTypes\"\n formControlName=\"AssignmentType\"\n class=\"form-control\"\n [showClear]=\"true\"\n >\n </verben-drop-down>\n </div>\n\n <!-- Tags -->\n <div class=\"space-y-1\">\n <label for=\"tags\" class=\"text-sm font-semibold text-[#3E3E3E]\">\n Tags\n </label>\n <verben-drop-down\n id=\"tags\"\n selectKey=\"Code\"\n styleClass=\"w-full\"\n width=\"100%\"\n [multiselect]=\"true\"\n placeholder=\"Select\"\n [options]=\"tags\"\n optionLabel=\"Name\"\n formControlName=\"Tags\"\n class=\"form-control\"\n [filter]=\"true\"\n filterBy=\"Name\"\n >\n </verben-drop-down>\n </div>\n\n <!-- Is Exit Point -->\n <div class=\"flex items-center gap-4\">\n <label for=\"is-exit-point\" class=\"text-sm font-semibold text-[#3E3E3E]\">\n Exit Point\n </label>\n <verbena-switch\n id=\"is-exit-point\"\n onText=\"Yes\"\n offText=\"No\"\n [onColor]=\"'#1A237E'\"\n formControlName=\"IsExitPoint\"\n ></verbena-switch>\n </div>\n </form>\n </div>\n</ng-template>\n\n<ng-template #footerTemplate>\n <div class=\"w-full flex justify-between gap-4 p-4 border-t border-gray-200\">\n <!-- <button\n class=\"px-4 py-2 mr-2 bg-white border border-gray-200 rounded text-sm font-medium\"\n (click)=\"onDialogClose($event)\"\n >\n Cancel\n </button>\n <button\n class=\"px-4 py-2 bg-yellow-300 text-black rounded text-sm font-medium\"\n (click)=\"saveStage()\"\n [disabled]=\"stageForm.invalid\"\n >\n Save\n </button>\n <button\n class=\"px-4 py-2 mr-2 bg-white border border-gray-200 rounded text-sm font-medium\"\n (click)=\"deleteStage()\"\n >\n Delete\n </button> -->\n <verbena-button\n width=\"114px\"\n height=\"39px\"\n text=\"Delete\"\n bgColor=\"#999999\"\n textColor=\"#404040\"\n borderRadius=\"10px\"\n (click)=\"deleteStage()\"\n ></verbena-button>\n\n <verbena-button\n (click)=\"onDialogClose($event)\"\n text=\"Cancel\"\n styleType=\"ylw-outline\"\n class=\"ml-auto\"\n ></verbena-button>\n <verbena-button\n type=\"submit\"\n text=\"Save\"\n bgColor=\"#FFE681\"\n textColor=\"#404040\"\n borderRadius=\"10px\"\n pd=\"10px 20px\"\n width=\"114px\"\n height=\"39px\"\n (click)=\"saveStage()\"\n [disable]=\"stageForm.invalid\"\n ></verbena-button>\n </div>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "component", type: i5.VerbenDialogueComponent, selector: "verben-dialogue", inputs: ["dialogueWidth", "headerTemplate", "bodyTemplate", "footerTemplate", "showCloseIcon", "dismissOutsideClick", "closeOnEscape", "isVisible", "size", "backdropColor", "customClass", "disableFooter", "margin", "padding", "borderRadius", "dialogueBgColor", "width", "closeIconClass", "boxShadow", "enableTransition", "modalData", "mode", "position", "drawerWidth"], outputs: ["openModal", "closeModal"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i5.VerbenaButtonComponent, selector: "verbena-button", inputs: ["text", "icon", "useIcon", "svgPosition", "iconPosition", "bgColor", "textColor", "border", "borderRadius", "pd", "width", "height", "fontSize", "fontWeight", "disable", "svgSize", "weight", "variant", "styleType", "svg", "svgWidth", "svgHeight", "iconColor", "svgColor", "buttonClass", "buttonTextClass", "isLoading", "spinnerSize", "spinnerColor"] }, { kind: "component", type: i5.DropDownComponent, selector: "verben-drop-down", inputs: ["options", "width", "showHorizontalLine", "horizontalLineColor", "optionLabel", "optionSubLabel", "optionValue", "placeholder", "invalidMessage", "errorPosition", "loadMoreCaption", "display", "showClear", "lazyLoad", "selectKey", "styleClass", "group", "multiselect", "filter", "avoidDuplication", "filterBy", "debounceTime", "minChar", "disabled", "required", "load", "asyncLabel", "search"], outputs: ["optionsChange", "onChange", "onClick", "onClear"] }, { kind: "component", type: i5.VerbenaInputComponent, selector: "verbena-input", inputs: ["label", "placeHolder", "required", "svgPosition", "minLength", "maxLength", "type", "bgColor", "border", "borderRadius", "textColor", "value", "labelPosition", "labelColor", "disable", "readOnly", "min", "max", "showBorder", "showErrorMessage", "errorMessageColor", "errorBorderColor", "errorPosition", "svg", "fontSize", "svgWidth", "svgHeight", "svgColor", "capitalization", "inputContainerClass", "inputFieldClass", "passLength", "inputWrapperClass", "passwordToggle", "customErrorMessages", "icon", "textPass"], outputs: ["valueChange"] }, { kind: "component", type: i5.VerbenaSwitchComponent, selector: "verbena-switch", inputs: ["label", "checked", "disabled", "offColor", "onColor", "onText", "offText", "width", "height", "customStyles"], outputs: ["change"] }, { kind: "component", type: i5.VerbenaTextareaComponent, selector: "verbena-textarea", inputs: ["label", "required", "rows", "cols", "bgColor", "textColor", "border", "borderRadius", "pd", "width", "height", "value", "errorMessageColor"], outputs: ["valueChange"] }] });
|
|
165
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: StageDialogComponent, selector: "lib-stage-dialog", inputs: { visible: { classPropertyName: "visible", publicName: "visible", isSignal: true, isRequired: false, transformFunction: null }, stageData: { classPropertyName: "stageData", publicName: "stageData", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { closed: "closed", saved: "saved" }, usesOnChanges: true, ngImport: i0, template: "<verben-dialogue\n [showCloseIcon]=\"true\"\n [dismissOutsideClick]=\"true\"\n [closeOnEscape]=\"true\"\n [size]=\"'medium'\"\n [mode]=\"'drawer'\"\n [disableFooter]=\"false\"\n [isVisible]=\"visible()\"\n [headerTemplate]=\"headerTemplate\"\n [bodyTemplate]=\"bodyTemplate\"\n [footerTemplate]=\"footerTemplate\"\n (openModal)=\"onDialogOpen($event)\"\n (closeModal)=\"onDialogClose($event)\"\n>\n</verben-dialogue>\n\n<ng-template #headerTemplate>\n <div class=\"p-4 border-b border-gray-200\">\n <h2 class=\"text-xl font-medium m-0\">Stage Properties</h2>\n </div>\n</ng-template>\n\n<ng-template #bodyTemplate>\n <div class=\"p-4\">\n <form [formGroup]=\"stageForm\" class=\"grid gap-y-4\">\n <!-- Stage Name -->\n <verbena-input\n name=\"Name\"\n label=\"Stage Name\"\n formControlName=\"Name\"\n placeHolder=\"Enter Stage Name\"\n />\n\n <!-- Description -->\n <verbena-textarea\n label=\"Description\"\n [rows]=\"3\"\n formControlName=\"Description\"\n ></verbena-textarea>\n\n <!-- Recipient Count -->\n <verbena-input\n name=\"MinNoOfActor\"\n label=\"Recipient Count\"\n type=\"number\"\n formControlName=\"MinNoOfActor\"\n placeHolder=\"Enter Count\"\n />\n\n <!-- Pass On Rule -->\n <verbena-input\n name=\"PassOnRule\"\n label=\"Pass On Rule\"\n formControlName=\"PassOnRule\"\n placeHolder=\"Select Rule\"\n />\n\n <!-- Duration -->\n <verbena-input\n name=\"Duration\"\n label=\"Duration\"\n type=\"number\"\n formControlName=\"Duration\"\n placeHolder=\"Set Duration\"\n />\n\n <!-- Actor Rule -->\n <div class=\"space-y-1\">\n <label for=\"actor-rule\" class=\"text-sm font-semibold text-[#3E3E3E]\">\n Actor Rule\n </label>\n <verben-drop-down\n id=\"actor-rule\"\n styleClass=\"w-full\"\n width=\"100%\"\n [multiselect]=\"false\"\n placeholder=\"Select Rule\"\n [options]=\"actorRules\"\n formControlName=\"ActorRule\"\n class=\"form-control\"\n [showClear]=\"true\"\n >\n </verben-drop-down>\n </div>\n\n <!-- Assignment Type -->\n <div class=\"space-y-1\">\n <label for=\"assignment\" class=\"text-sm font-semibold text-[#3E3E3E]\">\n Assignment Type\n </label>\n <verben-drop-down\n id=\"assignment\"\n styleClass=\"w-full\"\n width=\"100%\"\n [multiselect]=\"false\"\n placeholder=\"Select\"\n [options]=\"assignmentTypes\"\n formControlName=\"AssignmentType\"\n class=\"form-control\"\n [showClear]=\"true\"\n >\n </verben-drop-down>\n </div>\n\n <!-- Tags -->\n <div class=\"space-y-1\">\n <label for=\"tags\" class=\"text-sm font-semibold text-[#3E3E3E]\">\n Tags\n </label>\n <verben-drop-down\n id=\"tags\"\n selectKey=\"Code\"\n styleClass=\"w-full\"\n width=\"100%\"\n [multiselect]=\"true\"\n placeholder=\"Select\"\n [options]=\"tags\"\n optionLabel=\"Name\"\n formControlName=\"Tags\"\n class=\"form-control\"\n [filter]=\"true\"\n filterBy=\"Name\"\n >\n </verben-drop-down>\n </div>\n\n <!-- Is Entry Point -->\n <div class=\"flex items-center gap-4\">\n <label for=\"is-entry-point\" class=\"text-sm font-semibold text-[#3E3E3E]\">\n Entry Point\n </label>\n <verbena-switch\n id=\"is-entry-point\"\n onText=\"Yes\"\n offText=\"No\"\n [onColor]=\"'#1A237E'\"\n formControlName=\"IsEntryPoint\"\n ></verbena-switch>\n </div>\n\n <!-- Is Exit Point -->\n <div class=\"flex items-center gap-4\">\n <label for=\"is-exit-point\" class=\"text-sm font-semibold text-[#3E3E3E]\">\n Exit Point\n </label>\n <verbena-switch\n id=\"is-exit-point\"\n onText=\"Yes\"\n offText=\"No\"\n [onColor]=\"'#1A237E'\"\n formControlName=\"IsExitPoint\"\n ></verbena-switch>\n </div>\n </form>\n </div>\n</ng-template>\n\n<ng-template #footerTemplate>\n <div class=\"w-full flex justify-between gap-4 p-4 border-t border-gray-200\">\n <!-- <button\n class=\"px-4 py-2 mr-2 bg-white border border-gray-200 rounded text-sm font-medium\"\n (click)=\"onDialogClose($event)\"\n >\n Cancel\n </button>\n <button\n class=\"px-4 py-2 bg-yellow-300 text-black rounded text-sm font-medium\"\n (click)=\"saveStage()\"\n [disabled]=\"stageForm.invalid\"\n >\n Save\n </button>\n <button\n class=\"px-4 py-2 mr-2 bg-white border border-gray-200 rounded text-sm font-medium\"\n (click)=\"deleteStage()\"\n >\n Delete\n </button> -->\n <verbena-button\n width=\"114px\"\n height=\"39px\"\n text=\"Delete\"\n bgColor=\"#999999\"\n textColor=\"#404040\"\n borderRadius=\"10px\"\n (click)=\"deleteStage()\"\n ></verbena-button>\n\n <verbena-button\n (click)=\"onDialogClose($event)\"\n text=\"Cancel\"\n styleType=\"ylw-outline\"\n class=\"ml-auto\"\n ></verbena-button>\n <verbena-button\n type=\"submit\"\n text=\"Save\"\n bgColor=\"#FFE681\"\n textColor=\"#404040\"\n borderRadius=\"10px\"\n pd=\"10px 20px\"\n width=\"114px\"\n height=\"39px\"\n (click)=\"saveStage()\"\n [disable]=\"stageForm.invalid\"\n ></verbena-button>\n </div>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "component", type: i5.VerbenDialogueComponent, selector: "verben-dialogue", inputs: ["dialogueWidth", "headerTemplate", "bodyTemplate", "footerTemplate", "showCloseIcon", "dismissOutsideClick", "closeOnEscape", "isVisible", "size", "backdropColor", "customClass", "disableFooter", "margin", "padding", "borderRadius", "dialogueBgColor", "width", "closeIconClass", "boxShadow", "enableTransition", "modalData", "mode", "position", "drawerWidth"], outputs: ["openModal", "closeModal"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i5.VerbenaButtonComponent, selector: "verbena-button", inputs: ["text", "icon", "useIcon", "svgPosition", "iconPosition", "bgColor", "textColor", "border", "borderRadius", "pd", "width", "height", "fontSize", "fontWeight", "disable", "svgSize", "weight", "variant", "styleType", "svg", "svgWidth", "svgHeight", "iconColor", "svgColor", "buttonClass", "buttonTextClass", "isLoading", "spinnerSize", "spinnerColor"] }, { kind: "component", type: i5.DropDownComponent, selector: "verben-drop-down", inputs: ["options", "width", "showHorizontalLine", "horizontalLineColor", "optionLabel", "optionSubLabel", "optionValue", "placeholder", "invalidMessage", "errorPosition", "loadMoreCaption", "display", "showClear", "lazyLoad", "selectKey", "styleClass", "group", "multiselect", "filter", "avoidDuplication", "filterBy", "debounceTime", "minChar", "disabled", "required", "load", "asyncLabel", "search"], outputs: ["optionsChange", "onChange", "onClick", "onClear"] }, { kind: "component", type: i5.VerbenaInputComponent, selector: "verbena-input", inputs: ["label", "placeHolder", "required", "svgPosition", "minLength", "maxLength", "type", "bgColor", "border", "borderRadius", "textColor", "value", "labelPosition", "labelColor", "disable", "readOnly", "min", "max", "showBorder", "showErrorMessage", "errorMessageColor", "errorBorderColor", "errorPosition", "svg", "fontSize", "svgWidth", "svgHeight", "svgColor", "capitalization", "inputContainerClass", "inputFieldClass", "passLength", "inputWrapperClass", "passwordToggle", "customErrorMessages", "icon", "textPass"], outputs: ["valueChange"] }, { kind: "component", type: i5.VerbenaSwitchComponent, selector: "verbena-switch", inputs: ["label", "checked", "disabled", "offColor", "onColor", "onText", "offText", "width", "height", "customStyles"], outputs: ["change"] }, { kind: "component", type: i5.VerbenaTextareaComponent, selector: "verbena-textarea", inputs: ["label", "required", "rows", "cols", "bgColor", "textColor", "border", "borderRadius", "pd", "width", "height", "value", "errorMessageColor"], outputs: ["valueChange"] }] });
|
|
163
166
|
}
|
|
164
167
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StageDialogComponent, decorators: [{
|
|
165
168
|
type: Component,
|
|
166
|
-
args: [{ selector: 'lib-stage-dialog', template: "<verben-dialogue\n [showCloseIcon]=\"true\"\n [dismissOutsideClick]=\"true\"\n [closeOnEscape]=\"true\"\n [size]=\"'medium'\"\n [mode]=\"'drawer'\"\n [disableFooter]=\"false\"\n [isVisible]=\"visible()\"\n [headerTemplate]=\"headerTemplate\"\n [bodyTemplate]=\"bodyTemplate\"\n [footerTemplate]=\"footerTemplate\"\n (openModal)=\"onDialogOpen($event)\"\n (closeModal)=\"onDialogClose($event)\"\n>\n</verben-dialogue>\n\n<ng-template #headerTemplate>\n <div class=\"p-4 border-b border-gray-200\">\n <h2 class=\"text-xl font-medium m-0\">Stage Properties</h2>\n </div>\n</ng-template>\n\n<ng-template #bodyTemplate>\n <div class=\"p-4\">\n <form [formGroup]=\"stageForm\" class=\"grid gap-y-4\">\n <!-- Stage Name -->\n <verbena-input\n name=\"Name\"\n label=\"Stage Name\"\n formControlName=\"Name\"\n placeHolder=\"Enter Stage Name\"\n />\n\n <!-- Description -->\n <verbena-textarea\n label=\"Description\"\n [rows]=\"3\"\n formControlName=\"Description\"\n ></verbena-textarea>\n\n <!-- Recipient Count -->\n <verbena-input\n name=\"MinNoOfActor\"\n label=\"Recipient Count\"\n type=\"number\"\n formControlName=\"MinNoOfActor\"\n placeHolder=\"Enter Count\"\n />\n\n <!-- Pass On Rule -->\n <verbena-input\n name=\"PassOnRule\"\n label=\"Pass On Rule\"\n formControlName=\"PassOnRule\"\n placeHolder=\"Select Rule\"\n />\n\n <!-- Duration -->\n <verbena-input\n name=\"Duration\"\n label=\"Duration\"\n type=\"number\"\n formControlName=\"Duration\"\n placeHolder=\"Set Duration\"\n />\n\n <!-- Actor Rule -->\n <div class=\"space-y-1\">\n <label for=\"actor-rule\" class=\"text-sm font-semibold text-[#3E3E3E]\">\n Actor Rule\n </label>\n <verben-drop-down\n id=\"actor-rule\"\n styleClass=\"w-full\"\n width=\"100%\"\n [multiselect]=\"false\"\n placeholder=\"Select Rule\"\n [options]=\"actorRules\"\n formControlName=\"ActorRule\"\n class=\"form-control\"\n [showClear]=\"true\"\n >\n </verben-drop-down>\n </div>\n\n <!-- Assignment Type -->\n <div class=\"space-y-1\">\n <label for=\"assignment\" class=\"text-sm font-semibold text-[#3E3E3E]\">\n Assignment Type\n </label>\n <verben-drop-down\n id=\"assignment\"\n styleClass=\"w-full\"\n width=\"100%\"\n [multiselect]=\"false\"\n placeholder=\"Select\"\n [options]=\"assignmentTypes\"\n formControlName=\"AssignmentType\"\n class=\"form-control\"\n [showClear]=\"true\"\n >\n </verben-drop-down>\n </div>\n\n <!-- Tags -->\n <div class=\"space-y-1\">\n <label for=\"tags\" class=\"text-sm font-semibold text-[#3E3E3E]\">\n Tags\n </label>\n <verben-drop-down\n id=\"tags\"\n selectKey=\"Code\"\n styleClass=\"w-full\"\n width=\"100%\"\n [multiselect]=\"true\"\n placeholder=\"Select\"\n [options]=\"tags\"\n optionLabel=\"Name\"\n formControlName=\"Tags\"\n class=\"form-control\"\n [filter]=\"true\"\n filterBy=\"Name\"\n >\n </verben-drop-down>\n </div>\n\n <!-- Is Exit Point -->\n <div class=\"flex items-center gap-4\">\n <label for=\"is-exit-point\" class=\"text-sm font-semibold text-[#3E3E3E]\">\n Exit Point\n </label>\n <verbena-switch\n id=\"is-exit-point\"\n onText=\"Yes\"\n offText=\"No\"\n [onColor]=\"'#1A237E'\"\n formControlName=\"IsExitPoint\"\n ></verbena-switch>\n </div>\n </form>\n </div>\n</ng-template>\n\n<ng-template #footerTemplate>\n <div class=\"w-full flex justify-between gap-4 p-4 border-t border-gray-200\">\n <!-- <button\n class=\"px-4 py-2 mr-2 bg-white border border-gray-200 rounded text-sm font-medium\"\n (click)=\"onDialogClose($event)\"\n >\n Cancel\n </button>\n <button\n class=\"px-4 py-2 bg-yellow-300 text-black rounded text-sm font-medium\"\n (click)=\"saveStage()\"\n [disabled]=\"stageForm.invalid\"\n >\n Save\n </button>\n <button\n class=\"px-4 py-2 mr-2 bg-white border border-gray-200 rounded text-sm font-medium\"\n (click)=\"deleteStage()\"\n >\n Delete\n </button> -->\n <verbena-button\n width=\"114px\"\n height=\"39px\"\n text=\"Delete\"\n bgColor=\"#999999\"\n textColor=\"#404040\"\n borderRadius=\"10px\"\n (click)=\"deleteStage()\"\n ></verbena-button>\n\n <verbena-button\n (click)=\"onDialogClose($event)\"\n text=\"Cancel\"\n styleType=\"ylw-outline\"\n class=\"ml-auto\"\n ></verbena-button>\n <verbena-button\n type=\"submit\"\n text=\"Save\"\n bgColor=\"#FFE681\"\n textColor=\"#404040\"\n borderRadius=\"10px\"\n pd=\"10px 20px\"\n width=\"114px\"\n height=\"39px\"\n (click)=\"saveStage()\"\n [disable]=\"stageForm.invalid\"\n ></verbena-button>\n </div>\n</ng-template>\n" }]
|
|
169
|
+
args: [{ selector: 'lib-stage-dialog', template: "<verben-dialogue\n [showCloseIcon]=\"true\"\n [dismissOutsideClick]=\"true\"\n [closeOnEscape]=\"true\"\n [size]=\"'medium'\"\n [mode]=\"'drawer'\"\n [disableFooter]=\"false\"\n [isVisible]=\"visible()\"\n [headerTemplate]=\"headerTemplate\"\n [bodyTemplate]=\"bodyTemplate\"\n [footerTemplate]=\"footerTemplate\"\n (openModal)=\"onDialogOpen($event)\"\n (closeModal)=\"onDialogClose($event)\"\n>\n</verben-dialogue>\n\n<ng-template #headerTemplate>\n <div class=\"p-4 border-b border-gray-200\">\n <h2 class=\"text-xl font-medium m-0\">Stage Properties</h2>\n </div>\n</ng-template>\n\n<ng-template #bodyTemplate>\n <div class=\"p-4\">\n <form [formGroup]=\"stageForm\" class=\"grid gap-y-4\">\n <!-- Stage Name -->\n <verbena-input\n name=\"Name\"\n label=\"Stage Name\"\n formControlName=\"Name\"\n placeHolder=\"Enter Stage Name\"\n />\n\n <!-- Description -->\n <verbena-textarea\n label=\"Description\"\n [rows]=\"3\"\n formControlName=\"Description\"\n ></verbena-textarea>\n\n <!-- Recipient Count -->\n <verbena-input\n name=\"MinNoOfActor\"\n label=\"Recipient Count\"\n type=\"number\"\n formControlName=\"MinNoOfActor\"\n placeHolder=\"Enter Count\"\n />\n\n <!-- Pass On Rule -->\n <verbena-input\n name=\"PassOnRule\"\n label=\"Pass On Rule\"\n formControlName=\"PassOnRule\"\n placeHolder=\"Select Rule\"\n />\n\n <!-- Duration -->\n <verbena-input\n name=\"Duration\"\n label=\"Duration\"\n type=\"number\"\n formControlName=\"Duration\"\n placeHolder=\"Set Duration\"\n />\n\n <!-- Actor Rule -->\n <div class=\"space-y-1\">\n <label for=\"actor-rule\" class=\"text-sm font-semibold text-[#3E3E3E]\">\n Actor Rule\n </label>\n <verben-drop-down\n id=\"actor-rule\"\n styleClass=\"w-full\"\n width=\"100%\"\n [multiselect]=\"false\"\n placeholder=\"Select Rule\"\n [options]=\"actorRules\"\n formControlName=\"ActorRule\"\n class=\"form-control\"\n [showClear]=\"true\"\n >\n </verben-drop-down>\n </div>\n\n <!-- Assignment Type -->\n <div class=\"space-y-1\">\n <label for=\"assignment\" class=\"text-sm font-semibold text-[#3E3E3E]\">\n Assignment Type\n </label>\n <verben-drop-down\n id=\"assignment\"\n styleClass=\"w-full\"\n width=\"100%\"\n [multiselect]=\"false\"\n placeholder=\"Select\"\n [options]=\"assignmentTypes\"\n formControlName=\"AssignmentType\"\n class=\"form-control\"\n [showClear]=\"true\"\n >\n </verben-drop-down>\n </div>\n\n <!-- Tags -->\n <div class=\"space-y-1\">\n <label for=\"tags\" class=\"text-sm font-semibold text-[#3E3E3E]\">\n Tags\n </label>\n <verben-drop-down\n id=\"tags\"\n selectKey=\"Code\"\n styleClass=\"w-full\"\n width=\"100%\"\n [multiselect]=\"true\"\n placeholder=\"Select\"\n [options]=\"tags\"\n optionLabel=\"Name\"\n formControlName=\"Tags\"\n class=\"form-control\"\n [filter]=\"true\"\n filterBy=\"Name\"\n >\n </verben-drop-down>\n </div>\n\n <!-- Is Entry Point -->\n <div class=\"flex items-center gap-4\">\n <label for=\"is-entry-point\" class=\"text-sm font-semibold text-[#3E3E3E]\">\n Entry Point\n </label>\n <verbena-switch\n id=\"is-entry-point\"\n onText=\"Yes\"\n offText=\"No\"\n [onColor]=\"'#1A237E'\"\n formControlName=\"IsEntryPoint\"\n ></verbena-switch>\n </div>\n\n <!-- Is Exit Point -->\n <div class=\"flex items-center gap-4\">\n <label for=\"is-exit-point\" class=\"text-sm font-semibold text-[#3E3E3E]\">\n Exit Point\n </label>\n <verbena-switch\n id=\"is-exit-point\"\n onText=\"Yes\"\n offText=\"No\"\n [onColor]=\"'#1A237E'\"\n formControlName=\"IsExitPoint\"\n ></verbena-switch>\n </div>\n </form>\n </div>\n</ng-template>\n\n<ng-template #footerTemplate>\n <div class=\"w-full flex justify-between gap-4 p-4 border-t border-gray-200\">\n <!-- <button\n class=\"px-4 py-2 mr-2 bg-white border border-gray-200 rounded text-sm font-medium\"\n (click)=\"onDialogClose($event)\"\n >\n Cancel\n </button>\n <button\n class=\"px-4 py-2 bg-yellow-300 text-black rounded text-sm font-medium\"\n (click)=\"saveStage()\"\n [disabled]=\"stageForm.invalid\"\n >\n Save\n </button>\n <button\n class=\"px-4 py-2 mr-2 bg-white border border-gray-200 rounded text-sm font-medium\"\n (click)=\"deleteStage()\"\n >\n Delete\n </button> -->\n <verbena-button\n width=\"114px\"\n height=\"39px\"\n text=\"Delete\"\n bgColor=\"#999999\"\n textColor=\"#404040\"\n borderRadius=\"10px\"\n (click)=\"deleteStage()\"\n ></verbena-button>\n\n <verbena-button\n (click)=\"onDialogClose($event)\"\n text=\"Cancel\"\n styleType=\"ylw-outline\"\n class=\"ml-auto\"\n ></verbena-button>\n <verbena-button\n type=\"submit\"\n text=\"Save\"\n bgColor=\"#FFE681\"\n textColor=\"#404040\"\n borderRadius=\"10px\"\n pd=\"10px 20px\"\n width=\"114px\"\n height=\"39px\"\n (click)=\"saveStage()\"\n [disable]=\"stageForm.invalid\"\n ></verbena-button>\n </div>\n</ng-template>\n" }]
|
|
167
170
|
}], ctorParameters: () => [{ type: i1.FormBuilder }, { type: i2.WorkflowDataService }, { type: i3.NodeManagementService }, { type: i4.PopupService }], propDecorators: { closed: [{
|
|
168
171
|
type: Output
|
|
169
172
|
}], saved: [{
|
|
170
173
|
type: Output
|
|
171
174
|
}] } });
|
|
172
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhZ2UtZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZlcmJlbi13b3JrZmxvdy11aS9zcmMvbGliL2NvbXBvbmVudHMvd29ya2Zsb3ctZGVzaWduZXIvc3RhZ2UtZGlhbG9nL3N0YWdlLWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4td29ya2Zsb3ctdWkvc3JjL2xpYi9jb21wb25lbnRzL3dvcmtmbG93LWRlc2lnbmVyL3N0YWdlLWRpYWxvZy9zdGFnZS1kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxNQUFNLEVBQ04sWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBRVAsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUEwQixVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsY0FBYyxFQUFPLGtCQUFrQixFQUFpQixNQUFNLG1DQUFtQyxDQUFDOzs7Ozs7O0FBVTNHLE1BQU0sT0FBTyxvQkFBb0I7SUFlckI7SUFDQTtJQUNBO0lBQ0E7SUFqQlYsbUNBQW1DO0lBQ25DLE9BQU8sR0FBRyxLQUFLLENBQVUsS0FBSyxDQUFDLENBQUM7SUFDaEMsU0FBUyxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQXlCLEVBQUUsQ0FBQyxDQUFDLENBQUMsOEJBQThCO0lBQzVFLE1BQU0sR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBQzVCLEtBQUssR0FBRyxJQUFJLFlBQVksRUFBMEIsQ0FBQztJQUU3RCxTQUFTLENBQVk7SUFDckIsSUFBSSxHQUFVLEVBQUUsQ0FBQztJQUNqQixVQUFVLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUMzQyxlQUFlLEdBQUcsTUFBTSxDQUFD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QUksRUFBRSxDQUFDO29CQUNyQixDQUFDO3lCQUFNLENBQUM7d0JBQ04sT0FBTyxDQUFDLEtBQUssQ0FBQyx5QkFBeUIsRUFBRSxTQUFTLENBQUMsQ0FBQztvQkFDdEQsQ0FBQztnQkFDSCxDQUFDLENBQUM7cUJBQ0QsS0FBSyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7b0JBQ2YsT0FBTyxDQUFDLEtBQUssQ0FBQyx1QkFBdUIsRUFBRSxLQUFLLENBQUMsQ0FBQztnQkFDaEQsQ0FBQyxDQUFDLENBQUM7WUFDUCxDQUFDO2lCQUFNLElBQUksU0FBUyxDQUFDLEVBQUUsRUFBRSxDQUFDO2dCQUN4Qiw0Q0FBNEM7Z0JBQzVDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDMUQsSUFBSSxPQUFPLEVBQUUsQ0FBQztvQkFDWiwyQ0FBMkM7b0JBQzNDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ3JCLENBQUM7cUJBQU0sQ0FBQztvQkFDTixPQUFPLENBQUMsS0FBSyxDQUFDLHlCQUF5QixFQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDM0QsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQzt3R0FyS1Usb0JBQW9COzRGQUFwQixvQkFBb0IseVlDcEJqQywyeEtBa01BOzs0RkQ5S2Esb0JBQW9CO2tCQUxoQyxTQUFTOytCQUNFLGtCQUFrQjtpTEFRbEIsTUFBTTtzQkFBZixNQUFNO2dCQUNHLEtBQUs7c0JBQWQsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgZWZmZWN0LFxuICBFdmVudEVtaXR0ZXIsXG4gIGlucHV0LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlc1xufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTdGFnZUFjdG9yUnVsZSwgVGFnLCBUYXNrQXNzaWdubWVudFR5cGUsIFdvcmtmbG93U3RhZ2UgfSBmcm9tICd2ZXJiZW4td29ya2Zsb3ctdWkvc3JjL2xpYi9tb2RlbHMnO1xuaW1wb3J0IHsgTm9kZU1hbmFnZW1lbnRTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvbm9kZS1tYW5hZ2VtZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgUG9wdXBTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvcG9wdXAuc2VydmljZSc7XG5pbXBvcnQgeyBXb3JrZmxvd0RhdGFTZXJ2aWNlIH0gZnJvbSAnLi4vd29ya2Zsb3ctZGF0YS5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLXN0YWdlLWRpYWxvZycsXG4gIHRlbXBsYXRlVXJsOiAnLi9zdGFnZS1kaWFsb2cuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zdGFnZS1kaWFsb2cuY29tcG9uZW50LmNzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBTdGFnZURpYWxvZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIC8vIFVzZSBBbmd1bGFyJ3Mgc2lnbmFsLWJhc2VkIGlucHV0XG4gIHZpc2libGUgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG4gIHN0YWdlRGF0YSA9IGlucHV0LnJlcXVpcmVkPFBhcnRpYWw8V29ya2Zsb3dTdGFnZT4+KHt9KTsgLy8gRm9yIGVkaXRpbmcgZXhpc3Rpbmcgc3RhZ2VzXG4gIEBPdXRwdXQoKSBjbG9zZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBzYXZlZCA9IG5ldyBFdmVudEVtaXR0ZXI8UGFydGlhbDxXb3JrZmxvd1N0YWdlPj4oKTtcblxuICBzdGFnZUZvcm06IEZvcm1Hcm91cDtcbiAgdGFnczogVGFnW10gPSBbXTtcbiAgYWN0b3JSdWxlcyA9IE9iamVjdC52YWx1ZXMoU3RhZ2VBY3RvclJ1bGUpO1xuICBhc3NpZ25tZW50VHlwZXMgPSBPYmplY3QudmFsdWVzKFRhc2tBc3NpZ25tZW50VHlwZSk7XG5cbiAgaGFzT3V0Z29pbmdDb25uZWN0aW9uczogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLFxuICAgIHByaXZhdGUgZGF0YVNlcnZpY2U6IFdvcmtmbG93RGF0YVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBub2RlU2VydmljZTogTm9kZU1hbmFnZW1lbnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgcG9wdXBTZXJ2aWNlOiBQb3B1cFNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5zdGFnZUZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgIE5hbWU6IFsnJywgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXG4gICAgICBEZXNjcmlwdGlvbjogWycnXSxcbiAgICAgIE1pbk5vT2ZBY3RvcjogWzBdLFxuICAgICAgRHVyYXRpb246IFswXSxcbiAgICAgIFBhc3NPblJ1bGU6IFsnJ10sXG4gICAgICBBY3RvclJ1bGU6IFtTdGFnZUFjdG9yUnVsZS5Ob25lXSxcbiAgICAgIEFzc2lnbm1lbnRUeXBlOiBbVGFza0Fzc2lnbm1lbnRUeXBlLkF1dG9Sb3V0ZV0sXG4gICAgICBJc0V4aXRQb2ludDogW2ZhbHNlXSxcbiAgICAgIFRhZ3M6IFtbXV0sXG4gICAgfSk7XG5cbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgLy8gSWYgc3RhZ2VEYXRhIGNoYW5nZXMsIHVwZGF0ZSB0aGUgZm9ybVxuICAgICAgY29uc3Qgc3RhZ2VEYXRhID0gdGhpcy5zdGFnZURhdGEoKTtcbiAgICAgIGlmIChzdGFnZURhdGEpIHtcbiAgICAgICAgdGhpcy5zdGFnZUZvcm0ucGF0Y2hWYWx1ZSh7XG4gICAgICAgICAgTmFtZTogc3RhZ2VEYXRhLk5hbWUgfHwgJycsXG4gICAgICAgICAgRGVzY3JpcHRpb246IHN0YWdlRGF0YS5EZXNjcmlwdGlvbiB8fCAnJyxcbiAgICAgICAgICBNaW5Ob09mQWN0b3I6IHN0YWdlRGF0YS5NaW5Ob09mQWN0b3IgfHwgMCxcbiAgICAgICAgICBEdXJhdGlvbjogc3RhZ2VEYXRhLkR1cmF0aW9uIHx8IDAsXG4gICAgICAgICAgUGFzc09uUnVsZTogc3RhZ2VEYXRhLlBhc3NPblJ1bGUgfHwgJycsXG4gICAgICAgICAgQWN0b3JSdWxlOiBzdGFnZURhdGEuQWN0b3JSdWxlIHx8IFN0YWdlQWN0b3JSdWxlLk5vbmUsXG4gICAgICAgICAgQXNzaWdubWVudFR5cGU6XG4gICAgICAgICAgICBzdGFnZURhdGEuQXNzaWdubWVudFR5cGUgfHwgVGFza0Fzc2lnbm1lbnRUeXBlLkF1dG9Sb3V0ZSxcbiAgICAgICAgICBJc0V4aXRQb2ludDogc3RhZ2VEYXRhLklzRXhpdFBvaW50IHx8IGZhbHNlLFxuICAgICAgICAgIFRhZ3M6IHN0YWdlRGF0YS5UYWdzIHx8IFtdLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIC8vIExvYWQgdGFnc1xuICAgIHRoaXMubG9hZFRhZ3MoKTtcblxuICAgIC8vIElmIGVkaXRpbmcgYW4gZXhpc3Rpbmcgc3RhZ2UsIHBvcHVsYXRlIGZvcm1cbiAgICB0aGlzLmluaXRGb3JtV2l0aFN0YWdlRGF0YSgpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykgeyB9XG5cbiAgLyoqXG4gICAqIExvYWQgdGFncyBmcm9tIGRhdGEgc2VydmljZVxuICAgKi9cbiAgcHJpdmF0ZSBsb2FkVGFncygpOiB2b2lkIHtcbiAgICB0aGlzLmRhdGFTZXJ2aWNlLmdldFRhZ3MoKS50aGVuKChkYXRhKSA9PiB7XG4gICAgICB0aGlzLnRhZ3MgPSBkYXRhLlJlc3VsdDtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbml0aWFsaXplIGZvcm0gd2l0aCBzdGFnZSBkYXRhIGlmIHByb3ZpZGVkXG4gICAqL1xuICBwcml2YXRlIGluaXRGb3JtV2l0aFN0YWdlRGF0YSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zdGFnZURhdGEoKSkge1xuICAgICAgY29uc29sZS5sb2coJ0luaXRpYWxpemluZyBmb3JtIHdpdGggc3RhZ2UgZGF0YTonLCB0aGlzLnN0YWdlRGF0YSgpKTtcbiAgICAgIHRoaXMuc3RhZ2VGb3JtLnBhdGNoVmFsdWUoe1xuICAgICAgICBOYW1lOiB0aGlzLnN0YWdlRGF0YSgpLk5hbWUgfHwgJycsXG4gICAgICAgIERlc2NyaXB0aW9uOiB0aGlzLnN0YWdlRGF0YSgpLkRlc2NyaXB0aW9uIHx8ICcnLFxuICAgICAgICBNaW5Ob09mQWN0b3I6IHRoaXMuc3RhZ2VEYXRhKCkuTWluTm9PZkFjdG9yIHx8IDAsXG4gICAgICAgIER1cmF0aW9uOiB0aGlzLnN0YWdlRGF0YSgpLkR1cmF0aW9uIHx8IDAsXG4gICAgICAgIFBhc3NPblJ1bGU6IHRoaXMuc3RhZ2VEYXRhKCkuUGFzc09uUnVsZSB8fCAnJyxcbiAgICAgICAgQWN0b3JSdWxlOiB0aGlzLnN0YWdlRGF0YSgpLkFjdG9yUnVsZSB8fCBTdGFnZUFjdG9yUnVsZS5Ob25lLFxuICAgICAgICBBc3NpZ25tZW50VHlwZTpcbiAgICAgICAgICB0aGlzLnN0YWdlRGF0YSgpLkFzc2lnbm1lbnRUeXBlIHx8IFRhc2tBc3NpZ25tZW50VHlwZS5BdXRvUm91dGUsXG4gICAgICAgIElzRXhpdFBvaW50OiB0aGlzLnN0YWdlRGF0YSgpLklzRXhpdFBvaW50IHx8IGZhbHNlLFxuICAgICAgICBUYWdzOiB0aGlzLnN0YWdlRGF0YSgpLlRhZ3MgfHwgW10sXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNoZWNrT3V0Z29pbmdDb25uZWN0aW9ucygpOiB2b2lkIHtcbiAgICBjb25zdCBzdGFnZURhdGEgPSB0aGlzLnN0YWdlRGF0YSgpO1xuXG4gICAgaWYgKHN0YWdlRGF0YSAmJiBzdGFnZURhdGEuQ29kZSkge1xuICAgICAgLy8gQ2hlY2sgaWYgdGhlcmUgYXJlIG91dGdvaW5nIGNvbm5lY3Rpb25zIGZyb20gdGhpcyBzdGFnZVxuICAgICAgdGhpcy5oYXNPdXRnb2luZ0Nvbm5lY3Rpb25zID0gdGhpcy5ub2RlU2VydmljZS5oYXNPdXRnb2luZ0Nvbm5lY3Rpb25zKFxuICAgICAgICBzdGFnZURhdGEuQ29kZVxuICAgICAgKTtcblxuICAgICAgLy8gSWYgdGhlcmUgYXJlIG91dGdvaW5nIGNvbm5lY3Rpb25zLCBkaXNhYmxlIElzRXhpdFBvaW50XG4gICAgICBpZiAodGhpcy5oYXNPdXRnb2luZ0Nvbm5lY3Rpb25zKSB7XG4gICAgICAgIHRoaXMuc3RhZ2VGb3JtLmdldCgnSXNFeGl0UG9pbnQnKT8uZGlzYWJsZSgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zdGFnZUZvcm0uZ2V0KCdJc0V4aXRQb2ludCcpPy5lbmFibGUoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBvbkRpYWxvZ0Nsb3NlKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLmNsb3NlZC5lbWl0KCk7XG4gIH1cblxuICBzYXZlU3RhZ2UoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc3RhZ2VGb3JtLnZhbGlkKSB7XG4gICAgICBjb25zdCBzdGFnZURhdGE6IFBhcnRpYWw8V29ya2Zsb3dTdGFnZT4gPSB7XG4gICAgICAgIC4uLnRoaXMuc3RhZ2VGb3JtLnZhbHVlLFxuICAgICAgfTtcblxuICAgICAgLy8gUmVzZXQgZm9ybSBhZnRlciBzYXZpbmdcbiAgICAgIHRoaXMuc3RhZ2VGb3JtLnJlc2V0KCk7XG5cbiAgICAgIC8vIEVtaXQgdGhlIHNhdmVkIGRhdGEgdG8gdGhlIHBhcmVudCBjb21wb25lbnRcbiAgICAgIHRoaXMuc2F2ZWQuZW1pdChzdGFnZURhdGEpO1xuICAgIH1cbiAgfVxuXG4gIG9uRGlhbG9nT3BlbihldmVudDogYW55KTogdm9pZCB7XG4gICAgY29uc29sZS5sb2coJ0RpYWxvZyBvcGVuZWQ6JywgZXZlbnQpO1xuICB9XG5cbiAgZGVsZXRlU3RhZ2UoKTogdm9pZCB7XG4gICAgY29uc3Qgc3RhZ2VEYXRhID0gdGhpcy5zdGFnZURhdGEoKTtcbiAgICBjb25zb2xlLmxvZyhzdGFnZURhdGEpO1xuICAgIGlmIChzdGFnZURhdGEpIHtcbiAgICAgIGNvbnN0IHN0YWdlQ29kZSA9IHN0YWdlRGF0YS5Db2RlO1xuICAgICAgaWYgKHN0YWdlQ29kZSkge1xuICAgICAgICB0aGlzLmRhdGFTZXJ2aWNlXG4gICAgICAgICAgLmRlbGV0ZVdvcmtmbG93U3RhZ2VzKFtzdGFnZUNvZGVdKVxuICAgICAgICAgIC50aGVuKChyZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgY29uc29sZS5sb2coJ1N0YWdlIGRlbGV0ZWQgc3VjY2Vzc2Z1bGx5OicsIHJlc3BvbnNlKTtcbiAgICAgICAgICAgIC8vIENhbGwgdGhlIG5vZGUgc2VydmljZSB0byBkZWxldGUgdGhlIHN0YWdlXG4gICAgICAgICAgICBjb25zdCBkZWxldGVkID0gdGhpcy5ub2RlU2VydmljZS5kZWxldGVOb2RlKHN0YWdlQ29kZSk7XG4gICAgICAgICAgICBpZiAoZGVsZXRlZCkge1xuICAgICAgICAgICAgICAvLyBFbWl0IGFuIGV2ZW50IHRvIG5vdGlmeSBwYXJlbnQgY29tcG9uZW50XG4gICAgICAgICAgICAgIHRoaXMuY2xvc2VkLmVtaXQoKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBkZWxldGUgc3RhZ2U6Jywgc3RhZ2VDb2RlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KVxuICAgICAgICAgIC5jYXRjaCgoZXJyb3IpID0+IHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGRlbGV0aW5nIHN0YWdlOicsIGVycm9yKTtcbiAgICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSBpZiAoc3RhZ2VEYXRhLmlkKSB7XG4gICAgICAgIC8vIENhbGwgdGhlIG5vZGUgc2VydmljZSB0byBkZWxldGUgdGhlIHN0YWdlXG4gICAgICAgIGNvbnN0IGRlbGV0ZWQgPSB0aGlzLm5vZGVTZXJ2aWNlLmRlbGV0ZU5vZGUoc3RhZ2VEYXRhLmlkKTtcbiAgICAgICAgaWYgKGRlbGV0ZWQpIHtcbiAgICAgICAgICAvLyBFbWl0IGFuIGV2ZW50IHRvIG5vdGlmeSBwYXJlbnQgY29tcG9uZW50XG4gICAgICAgICAgdGhpcy5jbG9zZWQuZW1pdCgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBkZWxldGUgc3RhZ2U6Jywgc3RhZ2VEYXRhLkNvZGUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCI8dmVyYmVuLWRpYWxvZ3VlXG4gIFtzaG93Q2xvc2VJY29uXT1cInRydWVcIlxuICBbZGlzbWlzc091dHNpZGVDbGlja109XCJ0cnVlXCJcbiAgW2Nsb3NlT25Fc2NhcGVdPVwidHJ1ZVwiXG4gIFtzaXplXT1cIidtZWRpdW0nXCJcbiAgW21vZGVdPVwiJ2RyYXdlcidcIlxuICBbZGlzYWJsZUZvb3Rlcl09XCJmYWxzZVwiXG4gIFtpc1Zpc2libGVdPVwidmlzaWJsZSgpXCJcbiAgW2hlYWRlclRlbXBsYXRlXT1cImhlYWRlclRlbXBsYXRlXCJcbiAgW2JvZHlUZW1wbGF0ZV09XCJib2R5VGVtcGxhdGVcIlxuICBbZm9vdGVyVGVtcGxhdGVdPVwiZm9vdGVyVGVtcGxhdGVcIlxuICAob3Blbk1vZGFsKT1cIm9uRGlhbG9nT3BlbigkZXZlbnQpXCJcbiAgKGNsb3NlTW9kYWwpPVwib25EaWFsb2dDbG9zZSgkZXZlbnQpXCJcbj5cbjwvdmVyYmVuLWRpYWxvZ3VlPlxuXG48bmctdGVtcGxhdGUgI2hlYWRlclRlbXBsYXRlPlxuICA8ZGl2IGNsYXNzPVwicC00IGJvcmRlci1iIGJvcmRlci1ncmF5LTIwMFwiPlxuICAgIDxoMiBjbGFzcz1cInRleHQteGwgZm9udC1tZWRpdW0gbS0wXCI+U3RhZ2UgUHJvcGVydGllczwvaDI+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNib2R5VGVtcGxhdGU+XG4gIDxkaXYgY2xhc3M9XCJwLTRcIj5cbiAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cInN0YWdlRm9ybVwiIGNsYXNzPVwiZ3JpZCBnYXAteS00XCI+XG4gICAgICA8IS0tIFN0YWdlIE5hbWUgLS0+XG4gICAgICA8dmVyYmVuYS1pbnB1dFxuICAgICAgICBuYW1lPVwiTmFtZVwiXG4gICAgICAgIGxhYmVsPVwiU3RhZ2UgTmFtZVwiXG4gICAgICAgIGZvcm1Db250cm9sTmFtZT1cIk5hbWVcIlxuICAgICAgICBwbGFjZUhvbGRlcj1cIkVudGVyIFN0YWdlIE5hbWVcIlxuICAgICAgLz5cblxuICAgICAgPCEtLSBEZXNjcmlwdGlvbiAtLT5cbiAgICAgIDx2ZXJiZW5hLXRleHRhcmVhXG4gICAgICAgIGxhYmVsPVwiRGVzY3JpcHRpb25cIlxuICAgICAgICBbcm93c109XCIzXCJcbiAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiRGVzY3JpcHRpb25cIlxuICAgICAgPjwvdmVyYmVuYS10ZXh0YXJlYT5cblxuICAgICAgPCEtLSBSZWNpcGllbnQgQ291bnQgLS0+XG4gICAgICA8dmVyYmVuYS1pbnB1dFxuICAgICAgICBuYW1lPVwiTWluTm9PZkFjdG9yXCJcbiAgICAgICAgbGFiZWw9XCJSZWNpcGllbnQgQ291bnRcIlxuICAgICAgICB0eXBlPVwibnVtYmVyXCJcbiAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiTWluTm9PZkFjdG9yXCJcbiAgICAgICAgcGxhY2VIb2xkZXI9XCJFbnRlciBDb3VudFwiXG4gICAgICAvPlxuXG4gICAgICA8IS0tIFBhc3MgT24gUnVsZSAtLT5cbiAgICAgIDx2ZXJiZW5hLWlucHV0XG4gICAgICAgIG5hbWU9XCJQYXNzT25SdWxlXCJcbiAgICAgICAgbGFiZWw9XCJQYXNzIE9uIFJ1bGVcIlxuICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJQYXNzT25SdWxlXCJcbiAgICAgICAgcGxhY2VIb2xkZXI9XCJTZWxlY3QgUnVsZVwiXG4gICAgICAvPlxuXG4gICAgICA8IS0tIER1cmF0aW9uIC0tPlxuICAgICAgPHZlcmJlbmEtaW5wdXRcbiAgICAgICAgbmFtZT1cIkR1cmF0aW9uXCJcbiAgICAgICAgbGFiZWw9XCJEdXJhdGlvblwiXG4gICAgICAgIHR5cGU9XCJudW1iZXJcIlxuICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJEdXJhdGlvblwiXG4gICAgICAgIHBsYWNlSG9sZGVyPVwiU2V0IER1cmF0aW9uXCJcbiAgICAgIC8+XG5cbiAgICAgIDwhLS0gQWN0b3IgUnVsZSAtLT5cbiAgICAgIDxkaXYgY2xhc3M9XCJzcGFjZS15LTFcIj5cbiAgICAgICAgPGxhYmVsIGZvcj1cImFjdG9yLXJ1bGVcIiBjbGFzcz1cInRleHQtc20gZm9udC1zZW1pYm9sZCB0ZXh0LVsjM0UzRTNFXVwiPlxuICAgICAgICAgIEFjdG9yIFJ1bGVcbiAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgPHZlcmJlbi1kcm9wLWRvd25cbiAgICAgICAgICBpZD1cImFjdG9yLXJ1bGVcIlxuICAgICAgICAgIHN0eWxlQ2xhc3M9XCJ3LWZ1bGxcIlxuICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgICAgW211bHRpc2VsZWN0XT1cImZhbHNlXCJcbiAgICAgICAgICBwbGFjZWhvbGRlcj1cIlNlbGVjdCBSdWxlXCJcbiAgICAgICAgICBbb3B0aW9uc109XCJhY3RvclJ1bGVzXCJcbiAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJBY3RvclJ1bGVcIlxuICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICBbc2hvd0NsZWFyXT1cInRydWVcIlxuICAgICAgICA+XG4gICAgICAgIDwvdmVyYmVuLWRyb3AtZG93bj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8IS0tIEFzc2lnbm1lbnQgVHlwZSAtLT5cbiAgICAgIDxkaXYgY2xhc3M9XCJzcGFjZS15LTFcIj5cbiAgICAgICAgPGxhYmVsIGZvcj1cImFzc2lnbm1lbnRcIiBjbGFzcz1cInRleHQtc20gZm9udC1zZW1pYm9sZCB0ZXh0LVsjM0UzRTNFXVwiPlxuICAgICAgICAgIEFzc2lnbm1lbnQgVHlwZVxuICAgICAgICA8L2xhYmVsPlxuICAgICAgICA8dmVyYmVuLWRyb3AtZG93blxuICAgICAgICAgIGlkPVwiYXNzaWdubWVudFwiXG4gICAgICAgICAgc3R5bGVDbGFzcz1cInctZnVsbFwiXG4gICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICBbbXVsdGlzZWxlY3RdPVwiZmFsc2VcIlxuICAgICAgICAgIHBsYWNlaG9sZGVyPVwiU2VsZWN0XCJcbiAgICAgICAgICBbb3B0aW9uc109XCJhc3NpZ25tZW50VHlwZXNcIlxuICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cIkFzc2lnbm1lbnRUeXBlXCJcbiAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgW3Nob3dDbGVhcl09XCJ0cnVlXCJcbiAgICAgICAgPlxuICAgICAgICA8L3ZlcmJlbi1kcm9wLWRvd24+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPCEtLSBUYWdzIC0tPlxuICAgICAgPGRpdiBjbGFzcz1cInNwYWNlLXktMVwiPlxuICAgICAgICA8bGFiZWwgZm9yPVwidGFnc1wiIGNsYXNzPVwidGV4dC1zbSBmb250LXNlbWlib2xkIHRleHQtWyMzRTNFM0VdXCI+XG4gICAgICAgICAgVGFnc1xuICAgICAgICA8L2xhYmVsPlxuICAgICAgICA8dmVyYmVuLWRyb3AtZG93blxuICAgICAgICAgIGlkPVwidGFnc1wiXG4gICAgICAgICAgc2VsZWN0S2V5PVwiQ29kZVwiXG4gICAgICAgICAgc3R5bGVDbGFzcz1cInctZnVsbFwiXG4gICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICBbbXVsdGlzZWxlY3RdPVwidHJ1ZVwiXG4gICAgICAgICAgcGxhY2Vob2xkZXI9XCJTZWxlY3RcIlxuICAgICAgICAgIFtvcHRpb25zXT1cInRhZ3NcIlxuICAgICAgICAgIG9wdGlvbkxhYmVsPVwiTmFtZVwiXG4gICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiVGFnc1wiXG4gICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgIFtmaWx0ZXJdPVwidHJ1ZVwiXG4gICAgICAgICAgZmlsdGVyQnk9XCJOYW1lXCJcbiAgICAgICAgPlxuICAgICAgICA8L3ZlcmJlbi1kcm9wLWRvd24+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPCEtLSBJcyBFeGl0IFBvaW50IC0tPlxuICAgICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGdhcC00XCI+XG4gICAgICAgIDxsYWJlbCBmb3I9XCJpcy1leGl0LXBvaW50XCIgY2xhc3M9XCJ0ZXh0LXNtIGZvbnQtc2VtaWJvbGQgdGV4dC1bIzNFM0UzRV1cIj5cbiAgICAgICAgICBFeGl0IFBvaW50XG4gICAgICAgIDwvbGFiZWw+XG4gICAgICAgIDx2ZXJiZW5hLXN3aXRjaFxuICAgICAgICAgIGlkPVwiaXMtZXhpdC1wb2ludFwiXG4gICAgICAgICAgb25UZXh0PVwiWWVzXCJcbiAgICAgICAgICBvZmZUZXh0PVwiTm9cIlxuICAgICAgICAgIFtvbkNvbG9yXT1cIicjMUEyMzdFJ1wiXG4gICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiSXNFeGl0UG9pbnRcIlxuICAgICAgICA+PC92ZXJiZW5hLXN3aXRjaD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZm9ybT5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2Zvb3RlclRlbXBsYXRlPlxuICA8ZGl2IGNsYXNzPVwidy1mdWxsIGZsZXgganVzdGlmeS1iZXR3ZWVuIGdhcC00IHAtNCBib3JkZXItdCBib3JkZXItZ3JheS0yMDBcIj5cbiAgICA8IS0tIDxidXR0b25cbiAgICAgIGNsYXNzPVwicHgtNCBweS0yIG1yLTIgYmctd2hpdGUgYm9yZGVyIGJvcmRlci1ncmF5LTIwMCByb3VuZGVkIHRleHQtc20gZm9udC1tZWRpdW1cIlxuICAgICAgKGNsaWNrKT1cIm9uRGlhbG9nQ2xvc2UoJGV2ZW50KVwiXG4gICAgPlxuICAgICAgQ2FuY2VsXG4gICAgPC9idXR0b24+XG4gICAgPGJ1dHRvblxuICAgICAgY2xhc3M9XCJweC00IHB5LTIgYmcteWVsbG93LTMwMCB0ZXh0LWJsYWNrIHJvdW5kZWQgdGV4dC1zbSBmb250LW1lZGl1bVwiXG4gICAgICAoY2xpY2spPVwic2F2ZVN0YWdlKClcIlxuICAgICAgW2Rpc2FibGVkXT1cInN0YWdlRm9ybS5pbnZhbGlkXCJcbiAgICA+XG4gICAgICBTYXZlXG4gICAgPC9idXR0b24+XG4gICAgPGJ1dHRvblxuICAgICAgY2xhc3M9XCJweC00IHB5LTIgbXItMiBiZy13aGl0ZSBib3JkZXIgYm9yZGVyLWdyYXktMjAwIHJvdW5kZWQgdGV4dC1zbSBmb250LW1lZGl1bVwiXG4gICAgICAoY2xpY2spPVwiZGVsZXRlU3RhZ2UoKVwiXG4gICAgPlxuICAgICAgRGVsZXRlXG4gICAgPC9idXR0b24+IC0tPlxuICAgIDx2ZXJiZW5hLWJ1dHRvblxuICAgICAgd2lkdGg9XCIxMTRweFwiXG4gICAgICBoZWlnaHQ9XCIzOXB4XCJcbiAgICAgIHRleHQ9XCJEZWxldGVcIlxuICAgICAgYmdDb2xvcj1cIiM5OTk5OTlcIlxuICAgICAgdGV4dENvbG9yPVwiIzQwNDA0MFwiXG4gICAgICBib3JkZXJSYWRpdXM9XCIxMHB4XCJcbiAgICAgIChjbGljayk9XCJkZWxldGVTdGFnZSgpXCJcbiAgICA+PC92ZXJiZW5hLWJ1dHRvbj5cblxuICAgIDx2ZXJiZW5hLWJ1dHRvblxuICAgICAgKGNsaWNrKT1cIm9uRGlhbG9nQ2xvc2UoJGV2ZW50KVwiXG4gICAgICB0ZXh0PVwiQ2FuY2VsXCJcbiAgICAgIHN0eWxlVHlwZT1cInlsdy1vdXRsaW5lXCJcbiAgICAgIGNsYXNzPVwibWwtYXV0b1wiXG4gICAgPjwvdmVyYmVuYS1idXR0b24+XG4gICAgPHZlcmJlbmEtYnV0dG9uXG4gICAgICB0eXBlPVwic3VibWl0XCJcbiAgICAgIHRleHQ9XCJTYXZlXCJcbiAgICAgIGJnQ29sb3I9XCIjRkZFNjgxXCJcbiAgICAgIHRleHRDb2xvcj1cIiM0MDQwNDBcIlxuICAgICAgYm9yZGVyUmFkaXVzPVwiMTBweFwiXG4gICAgICBwZD1cIjEwcHggMjBweFwiXG4gICAgICB3aWR0aD1cIjExNHB4XCJcbiAgICAgIGhlaWdodD1cIjM5cHhcIlxuICAgICAgKGNsaWNrKT1cInNhdmVTdGFnZSgpXCJcbiAgICAgIFtkaXNhYmxlXT1cInN0YWdlRm9ybS5pbnZhbGlkXCJcbiAgICA+PC92ZXJiZW5hLWJ1dHRvbj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
175
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhZ2UtZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZlcmJlbi13b3JrZmxvdy11aS9zcmMvbGliL2NvbXBvbmVudHMvd29ya2Zsb3ctZGVzaWduZXIvc3RhZ2UtZGlhbG9nL3N0YWdlLWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4td29ya2Zsb3ctdWkvc3JjL2xpYi9jb21wb25lbnRzL3dvcmtmbG93LWRlc2lnbmVyL3N0YWdlLWRpYWxvZy9zdGFnZS1kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxNQUFNLEVBQ04sWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBRVAsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUEwQixVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsY0FBYyxFQUFPLGtCQUFrQixFQUFpQixNQUFNLG1DQUFtQyxDQUFDOzs7Ozs7O0FBVTNHLE1BQU0sT0FBTyxvQkFBb0I7SUFlckI7SUFDQTtJQUNBO0lBQ0E7SUFqQlYsbUNBQW1DO0lBQ25DLE9BQU8sR0FBRyxLQUFLLENBQVUsS0FBSyxDQUFDLENBQUM7SUFDaEMsU0FBUyxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQXlCLEVBQUUsQ0FBQyxDQUFDLENBQUMsOEJBQThCO0lBQzVFLE1BQU0sR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBQzVCLEtBQUssR0FBRyxJQUFJLFlBQVksRUFBMEIsQ0FBQztJQUU3RCxTQUFTLENBQVk7SUFDckIsSUFBSSxHQUFVLEVBQUUsQ0FBQztJQUNqQixVQUFVLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUMzQyxlQUFlLEdBQUcsTUFBTSxDQUFD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dGVyLFxuICBpbnB1dCxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXNcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU3RhZ2VBY3RvclJ1bGUsIFRhZywgVGFza0Fzc2lnbm1lbnRUeXBlLCBXb3JrZmxvd1N0YWdlIH0gZnJvbSAndmVyYmVuLXdvcmtmbG93LXVpL3NyYy9saWIvbW9kZWxzJztcbmltcG9ydCB7IE5vZGVNYW5hZ2VtZW50U2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL25vZGUtbWFuYWdlbWVudC5zZXJ2aWNlJztcbmltcG9ydCB7IFBvcHVwU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3BvcHVwLnNlcnZpY2UnO1xuaW1wb3J0IHsgV29ya2Zsb3dEYXRhU2VydmljZSB9IGZyb20gJy4uL3dvcmtmbG93LWRhdGEuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1zdGFnZS1kaWFsb2cnLFxuICB0ZW1wbGF0ZVVybDogJy4vc3RhZ2UtZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc3RhZ2UtZGlhbG9nLmNvbXBvbmVudC5jc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3RhZ2VEaWFsb2dDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAvLyBVc2UgQW5ndWxhcidzIHNpZ25hbC1iYXNlZCBpbnB1dFxuICB2aXNpYmxlID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICBzdGFnZURhdGEgPSBpbnB1dC5yZXF1aXJlZDxQYXJ0aWFsPFdvcmtmbG93U3RhZ2U+Pih7fSk7IC8vIEZvciBlZGl0aW5nIGV4aXN0aW5nIHN0YWdlc1xuICBAT3V0cHV0KCkgY2xvc2VkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgc2F2ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFBhcnRpYWw8V29ya2Zsb3dTdGFnZT4+KCk7XG5cbiAgc3RhZ2VGb3JtOiBGb3JtR3JvdXA7XG4gIHRhZ3M6IFRhZ1tdID0gW107XG4gIGFjdG9yUnVsZXMgPSBPYmplY3QudmFsdWVzKFN0YWdlQWN0b3JSdWxlKTtcbiAgYXNzaWdubWVudFR5cGVzID0gT2JqZWN0LnZhbHVlcyhUYXNrQXNzaWdubWVudFR5cGUpO1xuXG4gIGhhc091dGdvaW5nQ29ubmVjdGlvbnM6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGZiOiBGb3JtQnVpbGRlcixcbiAgICBwcml2YXRlIGRhdGFTZXJ2aWNlOiBXb3JrZmxvd0RhdGFTZXJ2aWNlLFxuICAgIHByaXZhdGUgbm9kZVNlcnZpY2U6IE5vZGVNYW5hZ2VtZW50U2VydmljZSxcbiAgICBwcml2YXRlIHBvcHVwU2VydmljZTogUG9wdXBTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMuc3RhZ2VGb3JtID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICBOYW1lOiBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxuICAgICAgRGVzY3JpcHRpb246IFsnJ10sXG4gICAgICBNaW5Ob09mQWN0b3I6IFswXSxcbiAgICAgIER1cmF0aW9uOiBbMF0sXG4gICAgICBQYXNzT25SdWxlOiBbJyddLFxuICAgICAgQWN0b3JSdWxlOiBbU3RhZ2VBY3RvclJ1bGUuTm9uZV0sXG4gICAgICBBc3NpZ25tZW50VHlwZTogW1Rhc2tBc3NpZ25tZW50VHlwZS5BdXRvUm91dGVdLFxuICAgICAgSXNFbnRyeVBvaW50OiBbZmFsc2VdLFxuICAgICAgSXNFeGl0UG9pbnQ6IFtmYWxzZV0sXG4gICAgICBUYWdzOiBbW11dLFxuICAgIH0pO1xuXG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIC8vIElmIHN0YWdlRGF0YSBjaGFuZ2VzLCB1cGRhdGUgdGhlIGZvcm1cbiAgICAgIGNvbnN0IHN0YWdlRGF0YSA9IHRoaXMuc3RhZ2VEYXRhKCk7XG4gICAgICBpZiAoc3RhZ2VEYXRhKSB7XG4gICAgICAgIHRoaXMuc3RhZ2VGb3JtLnBhdGNoVmFsdWUoe1xuICAgICAgICAgIE5hbWU6IHN0YWdlRGF0YS5OYW1lIHx8ICcnLFxuICAgICAgICAgIERlc2NyaXB0aW9uOiBzdGFnZURhdGEuRGVzY3JpcHRpb24gfHwgJycsXG4gICAgICAgICAgTWluTm9PZkFjdG9yOiBzdGFnZURhdGEuTWluTm9PZkFjdG9yIHx8IDAsXG4gICAgICAgICAgRHVyYXRpb246IHN0YWdlRGF0YS5EdXJhdGlvbiB8fCAwLFxuICAgICAgICAgIFBhc3NPblJ1bGU6IHN0YWdlRGF0YS5QYXNzT25SdWxlIHx8ICcnLFxuICAgICAgICAgIEFjdG9yUnVsZTogc3RhZ2VEYXRhLkFjdG9yUnVsZSB8fCBTdGFnZUFjdG9yUnVsZS5Ob25lLFxuICAgICAgICAgIEFzc2lnbm1lbnRUeXBlOlxuICAgICAgICAgICAgc3RhZ2VEYXRhLkFzc2lnbm1lbnRUeXBlIHx8IFRhc2tBc3NpZ25tZW50VHlwZS5BdXRvUm91dGUsXG4gICAgICAgICAgSXNFbnRyeVBvaW50OiBzdGFnZURhdGEuSXNFbnRyeVBvaW50IHx8IGZhbHNlLFxuICAgICAgICAgIElzRXhpdFBvaW50OiBzdGFnZURhdGEuSXNFeGl0UG9pbnQgfHwgZmFsc2UsXG4gICAgICAgICAgVGFnczogc3RhZ2VEYXRhLlRhZ3MgfHwgW10sXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgLy8gTG9hZCB0YWdzXG4gICAgdGhpcy5sb2FkVGFncygpO1xuXG4gICAgLy8gSWYgZWRpdGluZyBhbiBleGlzdGluZyBzdGFnZSwgcG9wdWxhdGUgZm9ybVxuICAgIHRoaXMuaW5pdEZvcm1XaXRoU3RhZ2VEYXRhKCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7IH1cblxuICAvKipcbiAgICogTG9hZCB0YWdzIGZyb20gZGF0YSBzZXJ2aWNlXG4gICAqL1xuICBwcml2YXRlIGxvYWRUYWdzKCk6IHZvaWQge1xuICAgIHRoaXMuZGF0YVNlcnZpY2UuZ2V0VGFncygpLnRoZW4oKGRhdGEpID0+IHtcbiAgICAgIHRoaXMudGFncyA9IGRhdGEuUmVzdWx0O1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEluaXRpYWxpemUgZm9ybSB3aXRoIHN0YWdlIGRhdGEgaWYgcHJvdmlkZWRcbiAgICovXG4gIHByaXZhdGUgaW5pdEZvcm1XaXRoU3RhZ2VEYXRhKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnN0YWdlRGF0YSgpKSB7XG4gICAgICBjb25zb2xlLmxvZygnSW5pdGlhbGl6aW5nIGZvcm0gd2l0aCBzdGFnZSBkYXRhOicsIHRoaXMuc3RhZ2VEYXRhKCkpO1xuICAgICAgdGhpcy5zdGFnZUZvcm0ucGF0Y2hWYWx1ZSh7XG4gICAgICAgIE5hbWU6IHRoaXMuc3RhZ2VEYXRhKCkuTmFtZSB8fCAnJyxcbiAgICAgICAgRGVzY3JpcHRpb246IHRoaXMuc3RhZ2VEYXRhKCkuRGVzY3JpcHRpb24gfHwgJycsXG4gICAgICAgIE1pbk5vT2ZBY3RvcjogdGhpcy5zdGFnZURhdGEoKS5NaW5Ob09mQWN0b3IgfHwgMCxcbiAgICAgICAgRHVyYXRpb246IHRoaXMuc3RhZ2VEYXRhKCkuRHVyYXRpb24gfHwgMCxcbiAgICAgICAgUGFzc09uUnVsZTogdGhpcy5zdGFnZURhdGEoKS5QYXNzT25SdWxlIHx8ICcnLFxuICAgICAgICBBY3RvclJ1bGU6IHRoaXMuc3RhZ2VEYXRhKCkuQWN0b3JSdWxlIHx8IFN0YWdlQWN0b3JSdWxlLk5vbmUsXG4gICAgICAgIEFzc2lnbm1lbnRUeXBlOlxuICAgICAgICAgIHRoaXMuc3RhZ2VEYXRhKCkuQXNzaWdubWVudFR5cGUgfHwgVGFza0Fzc2lnbm1lbnRUeXBlLkF1dG9Sb3V0ZSxcbiAgICAgICAgSXNFbnRyeVBvaW50OiB0aGlzLnN0YWdlRGF0YSgpLklzRW50cnlQb2ludCB8fCBmYWxzZSxcbiAgICAgICAgSXNFeGl0UG9pbnQ6IHRoaXMuc3RhZ2VEYXRhKCkuSXNFeGl0UG9pbnQgfHwgZmFsc2UsXG4gICAgICAgIFRhZ3M6IHRoaXMuc3RhZ2VEYXRhKCkuVGFncyB8fCBbXSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY2hlY2tPdXRnb2luZ0Nvbm5lY3Rpb25zKCk6IHZvaWQge1xuICAgIGNvbnN0IHN0YWdlRGF0YSA9IHRoaXMuc3RhZ2VEYXRhKCk7XG5cbiAgICBpZiAoc3RhZ2VEYXRhICYmIHN0YWdlRGF0YS5Db2RlKSB7XG4gICAgICAvLyBDaGVjayBpZiB0aGVyZSBhcmUgb3V0Z29pbmcgY29ubmVjdGlvbnMgZnJvbSB0aGlzIHN0YWdlXG4gICAgICB0aGlzLmhhc091dGdvaW5nQ29ubmVjdGlvbnMgPSB0aGlzLm5vZGVTZXJ2aWNlLmhhc091dGdvaW5nQ29ubmVjdGlvbnMoXG4gICAgICAgIHN0YWdlRGF0YS5Db2RlXG4gICAgICApO1xuXG4gICAgICAvLyBJZiB0aGVyZSBhcmUgb3V0Z29pbmcgY29ubmVjdGlvbnMsIGRpc2FibGUgSXNFeGl0UG9pbnRcbiAgICAgIGlmICh0aGlzLmhhc091dGdvaW5nQ29ubmVjdGlvbnMpIHtcbiAgICAgICAgdGhpcy5zdGFnZUZvcm0uZ2V0KCdJc0V4aXRQb2ludCcpPy5kaXNhYmxlKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnN0YWdlRm9ybS5nZXQoJ0lzRXhpdFBvaW50Jyk/LmVuYWJsZSgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG9uRGlhbG9nQ2xvc2UoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIHRoaXMuY2xvc2VkLmVtaXQoKTtcbiAgfVxuXG4gIHNhdmVTdGFnZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zdGFnZUZvcm0udmFsaWQpIHtcbiAgICAgIGNvbnN0IHN0YWdlRGF0YTogUGFydGlhbDxXb3JrZmxvd1N0YWdlPiA9IHtcbiAgICAgICAgLi4udGhpcy5zdGFnZUZvcm0udmFsdWUsXG4gICAgICB9O1xuXG4gICAgICAvLyBSZXNldCBmb3JtIGFmdGVyIHNhdmluZ1xuICAgICAgdGhpcy5zdGFnZUZvcm0ucmVzZXQoKTtcblxuICAgICAgLy8gRW1pdCB0aGUgc2F2ZWQgZGF0YSB0byB0aGUgcGFyZW50IGNvbXBvbmVudFxuICAgICAgdGhpcy5zYXZlZC5lbWl0KHN0YWdlRGF0YSk7XG4gICAgfVxuICB9XG5cbiAgb25EaWFsb2dPcGVuKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICBjb25zb2xlLmxvZygnRGlhbG9nIG9wZW5lZDonLCBldmVudCk7XG4gIH1cblxuICBkZWxldGVTdGFnZSgpOiB2b2lkIHtcbiAgICBjb25zdCBzdGFnZURhdGEgPSB0aGlzLnN0YWdlRGF0YSgpO1xuICAgIGNvbnNvbGUubG9nKHN0YWdlRGF0YSk7XG4gICAgaWYgKHN0YWdlRGF0YSkge1xuICAgICAgY29uc3Qgc3RhZ2VDb2RlID0gc3RhZ2VEYXRhLkNvZGU7XG4gICAgICBpZiAoc3RhZ2VDb2RlKSB7XG4gICAgICAgIHRoaXMuZGF0YVNlcnZpY2VcbiAgICAgICAgICAuZGVsZXRlV29ya2Zsb3dTdGFnZXMoW3N0YWdlQ29kZV0pXG4gICAgICAgICAgLnRoZW4oKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZygnU3RhZ2UgZGVsZXRlZCBzdWNjZXNzZnVsbHk6JywgcmVzcG9uc2UpO1xuICAgICAgICAgICAgLy8gQ2FsbCB0aGUgbm9kZSBzZXJ2aWNlIHRvIGRlbGV0ZSB0aGUgc3RhZ2VcbiAgICAgICAgICAgIGNvbnN0IGRlbGV0ZWQgPSB0aGlzLm5vZGVTZXJ2aWNlLmRlbGV0ZU5vZGUoc3RhZ2VDb2RlKTtcbiAgICAgICAgICAgIGlmIChkZWxldGVkKSB7XG4gICAgICAgICAgICAgIC8vIEVtaXQgYW4gZXZlbnQgdG8gbm90aWZ5IHBhcmVudCBjb21wb25lbnRcbiAgICAgICAgICAgICAgdGhpcy5jbG9zZWQuZW1pdCgpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIGRlbGV0ZSBzdGFnZTonLCBzdGFnZUNvZGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pXG4gICAgICAgICAgLmNhdGNoKChlcnJvcikgPT4ge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgZGVsZXRpbmcgc3RhZ2U6JywgZXJyb3IpO1xuICAgICAgICAgIH0pO1xuICAgICAgfSBlbHNlIGlmIChzdGFnZURhdGEuaWQpIHtcbiAgICAgICAgLy8gQ2FsbCB0aGUgbm9kZSBzZXJ2aWNlIHRvIGRlbGV0ZSB0aGUgc3RhZ2VcbiAgICAgICAgY29uc3QgZGVsZXRlZCA9IHRoaXMubm9kZVNlcnZpY2UuZGVsZXRlTm9kZShzdGFnZURhdGEuaWQpO1xuICAgICAgICBpZiAoZGVsZXRlZCkge1xuICAgICAgICAgIC8vIEVtaXQgYW4gZXZlbnQgdG8gbm90aWZ5IHBhcmVudCBjb21wb25lbnRcbiAgICAgICAgICB0aGlzLmNsb3NlZC5lbWl0KCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIGRlbGV0ZSBzdGFnZTonLCBzdGFnZURhdGEuQ29kZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIjx2ZXJiZW4tZGlhbG9ndWVcbiAgW3Nob3dDbG9zZUljb25dPVwidHJ1ZVwiXG4gIFtkaXNtaXNzT3V0c2lkZUNsaWNrXT1cInRydWVcIlxuICBbY2xvc2VPbkVzY2FwZV09XCJ0cnVlXCJcbiAgW3NpemVdPVwiJ21lZGl1bSdcIlxuICBbbW9kZV09XCInZHJhd2VyJ1wiXG4gIFtkaXNhYmxlRm9vdGVyXT1cImZhbHNlXCJcbiAgW2lzVmlzaWJsZV09XCJ2aXNpYmxlKClcIlxuICBbaGVhZGVyVGVtcGxhdGVdPVwiaGVhZGVyVGVtcGxhdGVcIlxuICBbYm9keVRlbXBsYXRlXT1cImJvZHlUZW1wbGF0ZVwiXG4gIFtmb290ZXJUZW1wbGF0ZV09XCJmb290ZXJUZW1wbGF0ZVwiXG4gIChvcGVuTW9kYWwpPVwib25EaWFsb2dPcGVuKCRldmVudClcIlxuICAoY2xvc2VNb2RhbCk9XCJvbkRpYWxvZ0Nsb3NlKCRldmVudClcIlxuPlxuPC92ZXJiZW4tZGlhbG9ndWU+XG5cbjxuZy10ZW1wbGF0ZSAjaGVhZGVyVGVtcGxhdGU+XG4gIDxkaXYgY2xhc3M9XCJwLTQgYm9yZGVyLWIgYm9yZGVyLWdyYXktMjAwXCI+XG4gICAgPGgyIGNsYXNzPVwidGV4dC14bCBmb250LW1lZGl1bSBtLTBcIj5TdGFnZSBQcm9wZXJ0aWVzPC9oMj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2JvZHlUZW1wbGF0ZT5cbiAgPGRpdiBjbGFzcz1cInAtNFwiPlxuICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwic3RhZ2VGb3JtXCIgY2xhc3M9XCJncmlkIGdhcC15LTRcIj5cbiAgICAgIDwhLS0gU3RhZ2UgTmFtZSAtLT5cbiAgICAgIDx2ZXJiZW5hLWlucHV0XG4gICAgICAgIG5hbWU9XCJOYW1lXCJcbiAgICAgICAgbGFiZWw9XCJTdGFnZSBOYW1lXCJcbiAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiTmFtZVwiXG4gICAgICAgIHBsYWNlSG9sZGVyPVwiRW50ZXIgU3RhZ2UgTmFtZVwiXG4gICAgICAvPlxuXG4gICAgICA8IS0tIERlc2NyaXB0aW9uIC0tPlxuICAgICAgPHZlcmJlbmEtdGV4dGFyZWFcbiAgICAgICAgbGFiZWw9XCJEZXNjcmlwdGlvblwiXG4gICAgICAgIFtyb3dzXT1cIjNcIlxuICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJEZXNjcmlwdGlvblwiXG4gICAgICA+PC92ZXJiZW5hLXRleHRhcmVhPlxuXG4gICAgICA8IS0tIFJlY2lwaWVudCBDb3VudCAtLT5cbiAgICAgIDx2ZXJiZW5hLWlucHV0XG4gICAgICAgIG5hbWU9XCJNaW5Ob09mQWN0b3JcIlxuICAgICAgICBsYWJlbD1cIlJlY2lwaWVudCBDb3VudFwiXG4gICAgICAgIHR5cGU9XCJudW1iZXJcIlxuICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJNaW5Ob09mQWN0b3JcIlxuICAgICAgICBwbGFjZUhvbGRlcj1cIkVudGVyIENvdW50XCJcbiAgICAgIC8+XG5cbiAgICAgIDwhLS0gUGFzcyBPbiBSdWxlIC0tPlxuICAgICAgPHZlcmJlbmEtaW5wdXRcbiAgICAgICAgbmFtZT1cIlBhc3NPblJ1bGVcIlxuICAgICAgICBsYWJlbD1cIlBhc3MgT24gUnVsZVwiXG4gICAgICAgIGZvcm1Db250cm9sTmFtZT1cIlBhc3NPblJ1bGVcIlxuICAgICAgICBwbGFjZUhvbGRlcj1cIlNlbGVjdCBSdWxlXCJcbiAgICAgIC8+XG5cbiAgICAgIDwhLS0gRHVyYXRpb24gLS0+XG4gICAgICA8dmVyYmVuYS1pbnB1dFxuICAgICAgICBuYW1lPVwiRHVyYXRpb25cIlxuICAgICAgICBsYWJlbD1cIkR1cmF0aW9uXCJcbiAgICAgICAgdHlwZT1cIm51bWJlclwiXG4gICAgICAgIGZvcm1Db250cm9sTmFtZT1cIkR1cmF0aW9uXCJcbiAgICAgICAgcGxhY2VIb2xkZXI9XCJTZXQgRHVyYXRpb25cIlxuICAgICAgLz5cblxuICAgICAgPCEtLSBBY3RvciBSdWxlIC0tPlxuICAgICAgPGRpdiBjbGFzcz1cInNwYWNlLXktMVwiPlxuICAgICAgICA8bGFiZWwgZm9yPVwiYWN0b3ItcnVsZVwiIGNsYXNzPVwidGV4dC1zbSBmb250LXNlbWlib2xkIHRleHQtWyMzRTNFM0VdXCI+XG4gICAgICAgICAgQWN0b3IgUnVsZVxuICAgICAgICA8L2xhYmVsPlxuICAgICAgICA8dmVyYmVuLWRyb3AtZG93blxuICAgICAgICAgIGlkPVwiYWN0b3ItcnVsZVwiXG4gICAgICAgICAgc3R5bGVDbGFzcz1cInctZnVsbFwiXG4gICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICBbbXVsdGlzZWxlY3RdPVwiZmFsc2VcIlxuICAgICAgICAgIHBsYWNlaG9sZGVyPVwiU2VsZWN0IFJ1bGVcIlxuICAgICAgICAgIFtvcHRpb25zXT1cImFjdG9yUnVsZXNcIlxuICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cIkFjdG9yUnVsZVwiXG4gICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgIFtzaG93Q2xlYXJdPVwidHJ1ZVwiXG4gICAgICAgID5cbiAgICAgICAgPC92ZXJiZW4tZHJvcC1kb3duPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDwhLS0gQXNzaWdubWVudCBUeXBlIC0tPlxuICAgICAgPGRpdiBjbGFzcz1cInNwYWNlLXktMVwiPlxuICAgICAgICA8bGFiZWwgZm9yPVwiYXNzaWdubWVudFwiIGNsYXNzPVwidGV4dC1zbSBmb250LXNlbWlib2xkIHRleHQtWyMzRTNFM0VdXCI+XG4gICAgICAgICAgQXNzaWdubWVudCBUeXBlXG4gICAgICAgIDwvbGFiZWw+XG4gICAgICAgIDx2ZXJiZW4tZHJvcC1kb3duXG4gICAgICAgICAgaWQ9XCJhc3NpZ25tZW50XCJcbiAgICAgICAgICBzdHlsZUNsYXNzPVwidy1mdWxsXCJcbiAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgIFttdWx0aXNlbGVjdF09XCJmYWxzZVwiXG4gICAgICAgICAgcGxhY2Vob2xkZXI9XCJTZWxlY3RcIlxuICAgICAgICAgIFtvcHRpb25zXT1cImFzc2lnbm1lbnRUeXBlc1wiXG4gICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiQXNzaWdubWVudFR5cGVcIlxuICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICBbc2hvd0NsZWFyXT1cInRydWVcIlxuICAgICAgICA+XG4gICAgICAgIDwvdmVyYmVuLWRyb3AtZG93bj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8IS0tIFRhZ3MgLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwic3BhY2UteS0xXCI+XG4gICAgICAgIDxsYWJlbCBmb3I9XCJ0YWdzXCIgY2xhc3M9XCJ0ZXh0LXNtIGZvbnQtc2VtaWJvbGQgdGV4dC1bIzNFM0UzRV1cIj5cbiAgICAgICAgICBUYWdzXG4gICAgICAgIDwvbGFiZWw+XG4gICAgICAgIDx2ZXJiZW4tZHJvcC1kb3duXG4gICAgICAgICAgaWQ9XCJ0YWdzXCJcbiAgICAgICAgICBzZWxlY3RLZXk9XCJDb2RlXCJcbiAgICAgICAgICBzdHlsZUNsYXNzPVwidy1mdWxsXCJcbiAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgIFttdWx0aXNlbGVjdF09XCJ0cnVlXCJcbiAgICAgICAgICBwbGFjZWhvbGRlcj1cIlNlbGVjdFwiXG4gICAgICAgICAgW29wdGlvbnNdPVwidGFnc1wiXG4gICAgICAgICAgb3B0aW9uTGFiZWw9XCJOYW1lXCJcbiAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJUYWdzXCJcbiAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgW2ZpbHRlcl09XCJ0cnVlXCJcbiAgICAgICAgICBmaWx0ZXJCeT1cIk5hbWVcIlxuICAgICAgICA+XG4gICAgICAgIDwvdmVyYmVuLWRyb3AtZG93bj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8IS0tIElzIEVudHJ5IFBvaW50IC0tPlxuICAgICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGdhcC00XCI+XG4gICAgICAgIDxsYWJlbCBmb3I9XCJpcy1lbnRyeS1wb2ludFwiIGNsYXNzPVwidGV4dC1zbSBmb250LXNlbWlib2xkIHRleHQtWyMzRTNFM0VdXCI+XG4gICAgICAgICAgRW50cnkgUG9pbnRcbiAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgPHZlcmJlbmEtc3dpdGNoXG4gICAgICAgICAgaWQ9XCJpcy1lbnRyeS1wb2ludFwiXG4gICAgICAgICAgb25UZXh0PVwiWWVzXCJcbiAgICAgICAgICBvZmZUZXh0PVwiTm9cIlxuICAgICAgICAgIFtvbkNvbG9yXT1cIicjMUEyMzdFJ1wiXG4gICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiSXNFbnRyeVBvaW50XCJcbiAgICAgICAgPjwvdmVyYmVuYS1zd2l0Y2g+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPCEtLSBJcyBFeGl0IFBvaW50IC0tPlxuICAgICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGdhcC00XCI+XG4gICAgICAgIDxsYWJlbCBmb3I9XCJpcy1leGl0LXBvaW50XCIgY2xhc3M9XCJ0ZXh0LXNtIGZvbnQtc2VtaWJvbGQgdGV4dC1bIzNFM0UzRV1cIj5cbiAgICAgICAgICBFeGl0IFBvaW50XG4gICAgICAgIDwvbGFiZWw+XG4gICAgICAgIDx2ZXJiZW5hLXN3aXRjaFxuICAgICAgICAgIGlkPVwiaXMtZXhpdC1wb2ludFwiXG4gICAgICAgICAgb25UZXh0PVwiWWVzXCJcbiAgICAgICAgICBvZmZUZXh0PVwiTm9cIlxuICAgICAgICAgIFtvbkNvbG9yXT1cIicjMUEyMzdFJ1wiXG4gICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiSXNFeGl0UG9pbnRcIlxuICAgICAgICA+PC92ZXJiZW5hLXN3aXRjaD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZm9ybT5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2Zvb3RlclRlbXBsYXRlPlxuICA8ZGl2IGNsYXNzPVwidy1mdWxsIGZsZXgganVzdGlmeS1iZXR3ZWVuIGdhcC00IHAtNCBib3JkZXItdCBib3JkZXItZ3JheS0yMDBcIj5cbiAgICA8IS0tIDxidXR0b25cbiAgICAgIGNsYXNzPVwicHgtNCBweS0yIG1yLTIgYmctd2hpdGUgYm9yZGVyIGJvcmRlci1ncmF5LTIwMCByb3VuZGVkIHRleHQtc20gZm9udC1tZWRpdW1cIlxuICAgICAgKGNsaWNrKT1cIm9uRGlhbG9nQ2xvc2UoJGV2ZW50KVwiXG4gICAgPlxuICAgICAgQ2FuY2VsXG4gICAgPC9idXR0b24+XG4gICAgPGJ1dHRvblxuICAgICAgY2xhc3M9XCJweC00IHB5LTIgYmcteWVsbG93LTMwMCB0ZXh0LWJsYWNrIHJvdW5kZWQgdGV4dC1zbSBmb250LW1lZGl1bVwiXG4gICAgICAoY2xpY2spPVwic2F2ZVN0YWdlKClcIlxuICAgICAgW2Rpc2FibGVkXT1cInN0YWdlRm9ybS5pbnZhbGlkXCJcbiAgICA+XG4gICAgICBTYXZlXG4gICAgPC9idXR0b24+XG4gICAgPGJ1dHRvblxuICAgICAgY2xhc3M9XCJweC00IHB5LTIgbXItMiBiZy13aGl0ZSBib3JkZXIgYm9yZGVyLWdyYXktMjAwIHJvdW5kZWQgdGV4dC1zbSBmb250LW1lZGl1bVwiXG4gICAgICAoY2xpY2spPVwiZGVsZXRlU3RhZ2UoKVwiXG4gICAgPlxuICAgICAgRGVsZXRlXG4gICAgPC9idXR0b24+IC0tPlxuICAgIDx2ZXJiZW5hLWJ1dHRvblxuICAgICAgd2lkdGg9XCIxMTRweFwiXG4gICAgICBoZWlnaHQ9XCIzOXB4XCJcbiAgICAgIHRleHQ9XCJEZWxldGVcIlxuICAgICAgYmdDb2xvcj1cIiM5OTk5OTlcIlxuICAgICAgdGV4dENvbG9yPVwiIzQwNDA0MFwiXG4gICAgICBib3JkZXJSYWRpdXM9XCIxMHB4XCJcbiAgICAgIChjbGljayk9XCJkZWxldGVTdGFnZSgpXCJcbiAgICA+PC92ZXJiZW5hLWJ1dHRvbj5cblxuICAgIDx2ZXJiZW5hLWJ1dHRvblxuICAgICAgKGNsaWNrKT1cIm9uRGlhbG9nQ2xvc2UoJGV2ZW50KVwiXG4gICAgICB0ZXh0PVwiQ2FuY2VsXCJcbiAgICAgIHN0eWxlVHlwZT1cInlsdy1vdXRsaW5lXCJcbiAgICAgIGNsYXNzPVwibWwtYXV0b1wiXG4gICAgPjwvdmVyYmVuYS1idXR0b24+XG4gICAgPHZlcmJlbmEtYnV0dG9uXG4gICAgICB0eXBlPVwic3VibWl0XCJcbiAgICAgIHRleHQ9XCJTYXZlXCJcbiAgICAgIGJnQ29sb3I9XCIjRkZFNjgxXCJcbiAgICAgIHRleHRDb2xvcj1cIiM0MDQwNDBcIlxuICAgICAgYm9yZGVyUmFkaXVzPVwiMTBweFwiXG4gICAgICBwZD1cIjEwcHggMjBweFwiXG4gICAgICB3aWR0aD1cIjExNHB4XCJcbiAgICAgIGhlaWdodD1cIjM5cHhcIlxuICAgICAgKGNsaWNrKT1cInNhdmVTdGFnZSgpXCJcbiAgICAgIFtkaXNhYmxlXT1cInN0YWdlRm9ybS5pbnZhbGlkXCJcbiAgICA+PC92ZXJiZW5hLWJ1dHRvbj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
|
package/esm2022/src/lib/components/workflow-designer/swimlane-dialog/swimlane-dialog.component.mjs
CHANGED
|
@@ -3,15 +3,18 @@ import * as i0 from "@angular/core";
|
|
|
3
3
|
import * as i1 from "@angular/forms";
|
|
4
4
|
import * as i2 from "../workflow-data.service";
|
|
5
5
|
import * as i3 from "../services/swimlane.service";
|
|
6
|
-
import * as i4 from "
|
|
6
|
+
import * as i4 from "@angular/common";
|
|
7
|
+
import * as i5 from "verben-ng-ui";
|
|
7
8
|
export class SwimlaneDialogComponent {
|
|
8
9
|
fb;
|
|
9
10
|
dataService;
|
|
10
11
|
swimlaneService;
|
|
11
12
|
visible = false;
|
|
13
|
+
isEditing = false;
|
|
12
14
|
swimlaneData = input(null);
|
|
13
15
|
closed = new EventEmitter();
|
|
14
16
|
created = new EventEmitter();
|
|
17
|
+
deleted = new EventEmitter();
|
|
15
18
|
searchQuery = '';
|
|
16
19
|
workflowName = '';
|
|
17
20
|
// Track selected tags in a separate array
|
|
@@ -79,6 +82,9 @@ export class SwimlaneDialogComponent {
|
|
|
79
82
|
this.selectedTagNames.push(tagName);
|
|
80
83
|
}
|
|
81
84
|
}
|
|
85
|
+
onDeleteSwimlane() {
|
|
86
|
+
this.deleted.emit();
|
|
87
|
+
}
|
|
82
88
|
onDialogClose(eventData) {
|
|
83
89
|
console.log('Dialog closed, received data:', eventData);
|
|
84
90
|
this.searchQuery = '';
|
|
@@ -106,16 +112,20 @@ export class SwimlaneDialogComponent {
|
|
|
106
112
|
this.searchQuery = '';
|
|
107
113
|
}
|
|
108
114
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SwimlaneDialogComponent, deps: [{ token: i1.FormBuilder }, { token: i2.WorkflowDataService }, { token: i3.SwimlaneService }], target: i0.ɵɵFactoryTarget.Component });
|
|
109
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: SwimlaneDialogComponent, selector: "lib-swimlane-dialog", inputs: { visible: { classPropertyName: "visible", publicName: "visible", isSignal: false, isRequired: false, transformFunction: null }, swimlaneData: { classPropertyName: "swimlaneData", publicName: "swimlaneData", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { closed: "closed", created: "created" }, ngImport: i0, template: "<verben-dialogue\n [showCloseIcon]=\"true\"\n [dismissOutsideClick]=\"true\"\n [closeOnEscape]=\"true\"\n [size]=\"'medium'\"\n [mode]=\"'drawer'\"\n [disableFooter]=\"false\"\n [isVisible]=\"visible\"\n [headerTemplate]=\"headerTemplate\"\n [bodyTemplate]=\"bodyTemplate\"\n [footerTemplate]=\"footerTemplate\"\n (openModal)=\"onDialogOpen($event)\"\n (closeModal)=\"onDialogClose($event)\"\n>\n</verben-dialogue>\n\n<ng-template #headerTemplate>\n <div\n class=\"flex items-center justify-between p-3 text-xs border-b-4 border-[#FFE681]\"\n >\n <button class=\"mr-4\" type=\"button\" (click)=\"onDialogClose($event)\">\n <span\n class=\"block w-2.5 h-2.5 border-t border-l border-[#3E3E3E]/70 transform -rotate-45\"\n ></span>\n </button>\n <div class=\"text-center\">\n <h2 class=\"text-sm font-medium\">Select Tags</h2>\n <span class=\"text-xs text-[#3E3E3E]/70\"\n >{{ this.selectedTags.length }}/{{ tags.length }}</span\n >\n </div>\n <span\n class=\"font-medium cursor-pointer text-[#3E3E3E]/70\"\n (click)=\"applySelection()\"\n >Create</span\n >\n </div>\n</ng-template>\n\n<ng-template #bodyTemplate>\n <div class=\"p-3\">\n <div class=\"mb-4 grid gap-4\">\n <!-- <input\n type=\"text\"\n placeholder=\"Enter Name\"\n class=\"w-full px-4 py-2 rounded-lg border border-[#E7C10B] outline-none\"\n [(ngModel)]=\"workflowName\"\n />\n\n <input\n type=\"search\"\n placeholder=\"Filter Tags\"\n class=\"w-full px-4 py-2 rounded-lg border border-[#E7C10B] outline-none\"\n [(ngModel)]=\"searchQuery\"\n />\n </div>\n\n <div class=\"\">\n <div class=\"py-3\">\n <label class=\"flex items-center\">\n <input type=\"checkbox\" class=\"mr-3\" [(ngModel)]=\"allSelected\" />\n <span class=\"text-sm\">Select All</span>\n </label>\n </div>\n\n <div *ngFor=\"let tag of filteredTags\" class=\"py-3\">\n <label class=\"flex items-center\">\n <input\n type=\"checkbox\"\n class=\"mr-3\"\n [checked]=\"isTagSelected(tag.Name)\"\n (change)=\"toggleTagSelection(tag.Name)\"\n />\n <span class=\"text-sm\">{{ tag.Name }}</span>\n <span *ngIf=\"!tag.IsOptional\" class=\"ml-2 text-xs text-red-500\"\n >(Required)</span\n >\n </label>\n </div> -->\n\n <verbena-input\n [(ngModel)]=\"workflowName\"\n [border]=\"'1px solid #9A9FBF66'\"\n placeHolder=\"Enter Swimlane Label\"\n [bgColor]=\"'white'\"\n ></verbena-input>\n\n <verben-drop-down\n selectKey=\"Code\"\n label=\"Tags\"\n styleClass=\"w-full\"\n width=\"100%\"\n [multiselect]=\"true\"\n placeholder=\"Select\"\n [options]=\"tags\"\n optionLabel=\"Name\"\n id=\"tags\"\n [(ngModel)]=\"selectedTags\"\n class=\"form-control\"\n [filter]=\"true\"\n [filterBy]=\"'Name'\"\n [showClear]=\"true\"\n >\n </verben-drop-down>\n </div>\n </div>\n</ng-template>\n\n<ng-template #footerTemplate>\n <div\n class=\"flex justify-between w-full items-center p-4 border-t border-gray-200\"\n >\n <!-- <button\n class=\"px-4 py-2 mr-2 bg-white border border-gray-200 rounded text-sm font-medium\"\n (click)=\"onDialogClose($event)\"\n >\n Cancel\n </button> -->\n\n <verbena-button\n (click)=\"onDialogClose($event)\"\n text=\"Cancel\"\n styleType=\"ylw-outline\"\n ></verbena-button>\n\n <verbena-button\n type=\"submit\"\n text=\"Save\"\n bgColor=\"#FFE681\"\n textColor=\"#404040\"\n borderRadius=\"10px\"\n pd=\"10px 20px\"\n width=\"114px\"\n height=\"39px\"\n [disable]=\"selectedTags.length < 1\"\n (click)=\"applySelection()\"\n ></verbena-button>\n\n
|
|
115
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: SwimlaneDialogComponent, selector: "lib-swimlane-dialog", inputs: { visible: { classPropertyName: "visible", publicName: "visible", isSignal: false, isRequired: false, transformFunction: null }, isEditing: { classPropertyName: "isEditing", publicName: "isEditing", isSignal: false, isRequired: false, transformFunction: null }, swimlaneData: { classPropertyName: "swimlaneData", publicName: "swimlaneData", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { closed: "closed", created: "created", deleted: "deleted" }, ngImport: i0, template: "<verben-dialogue\n [showCloseIcon]=\"true\"\n [dismissOutsideClick]=\"true\"\n [closeOnEscape]=\"true\"\n [size]=\"'medium'\"\n [mode]=\"'drawer'\"\n [disableFooter]=\"false\"\n [isVisible]=\"visible\"\n [headerTemplate]=\"headerTemplate\"\n [bodyTemplate]=\"bodyTemplate\"\n [footerTemplate]=\"footerTemplate\"\n (openModal)=\"onDialogOpen($event)\"\n (closeModal)=\"onDialogClose($event)\"\n>\n</verben-dialogue>\n\n<ng-template #headerTemplate>\n <div\n class=\"flex items-center justify-between p-3 text-xs border-b-4 border-[#FFE681]\"\n >\n <button class=\"mr-4\" type=\"button\" (click)=\"onDialogClose($event)\">\n <span\n class=\"block w-2.5 h-2.5 border-t border-l border-[#3E3E3E]/70 transform -rotate-45\"\n ></span>\n </button>\n <div class=\"text-center\">\n <h2 class=\"text-sm font-medium\">Select Tags</h2>\n <span class=\"text-xs text-[#3E3E3E]/70\"\n >{{ this.selectedTags.length }}/{{ tags.length }}</span\n >\n </div>\n <span\n class=\"font-medium cursor-pointer text-[#3E3E3E]/70\"\n (click)=\"applySelection()\"\n >Create</span\n >\n </div>\n</ng-template>\n\n<ng-template #bodyTemplate>\n <div class=\"p-3\">\n <div class=\"mb-4 grid gap-4\">\n <!-- <input\n type=\"text\"\n placeholder=\"Enter Name\"\n class=\"w-full px-4 py-2 rounded-lg border border-[#E7C10B] outline-none\"\n [(ngModel)]=\"workflowName\"\n />\n\n <input\n type=\"search\"\n placeholder=\"Filter Tags\"\n class=\"w-full px-4 py-2 rounded-lg border border-[#E7C10B] outline-none\"\n [(ngModel)]=\"searchQuery\"\n />\n </div>\n\n <div class=\"\">\n <div class=\"py-3\">\n <label class=\"flex items-center\">\n <input type=\"checkbox\" class=\"mr-3\" [(ngModel)]=\"allSelected\" />\n <span class=\"text-sm\">Select All</span>\n </label>\n </div>\n\n <div *ngFor=\"let tag of filteredTags\" class=\"py-3\">\n <label class=\"flex items-center\">\n <input\n type=\"checkbox\"\n class=\"mr-3\"\n [checked]=\"isTagSelected(tag.Name)\"\n (change)=\"toggleTagSelection(tag.Name)\"\n />\n <span class=\"text-sm\">{{ tag.Name }}</span>\n <span *ngIf=\"!tag.IsOptional\" class=\"ml-2 text-xs text-red-500\"\n >(Required)</span\n >\n </label>\n </div> -->\n\n <verbena-input\n [(ngModel)]=\"workflowName\"\n [border]=\"'1px solid #9A9FBF66'\"\n placeHolder=\"Enter Swimlane Label\"\n [bgColor]=\"'white'\"\n ></verbena-input>\n\n <verben-drop-down\n selectKey=\"Code\"\n label=\"Tags\"\n styleClass=\"w-full\"\n width=\"100%\"\n [multiselect]=\"true\"\n placeholder=\"Select\"\n [options]=\"tags\"\n optionLabel=\"Name\"\n id=\"tags\"\n [(ngModel)]=\"selectedTags\"\n class=\"form-control\"\n [filter]=\"true\"\n [filterBy]=\"'Name'\"\n [showClear]=\"true\"\n >\n </verben-drop-down>\n </div>\n </div>\n</ng-template>\n\n<ng-template #footerTemplate>\n <div\n class=\"flex justify-between w-full items-center p-4 border-t border-gray-200\"\n >\n <!-- <button\n class=\"px-4 py-2 mr-2 bg-white border border-gray-200 rounded text-sm font-medium\"\n (click)=\"onDialogClose($event)\"\n >\n Cancel\n </button> -->\n\n <verbena-button\n (click)=\"onDialogClose($event)\"\n text=\"Cancel\"\n styleType=\"ylw-outline\"\n ></verbena-button>\n\n <verbena-button\n type=\"submit\"\n text=\"Save\"\n bgColor=\"#FFE681\"\n textColor=\"#404040\"\n borderRadius=\"10px\"\n pd=\"10px 20px\"\n width=\"114px\"\n height=\"39px\"\n [disable]=\"selectedTags.length < 1\"\n (click)=\"applySelection()\"\n ></verbena-button>\n\n <verbena-button\n *ngIf=\"isEditing\"\n width=\"114px\"\n height=\"39px\"\n text=\"Delete\"\n bgColor=\"#999999\"\n textColor=\"#404040\"\n borderRadius=\"10px\"\n pd=\"10px 20px\"\n (click)=\"onDeleteSwimlane()\"\n ></verbena-button>\n </div>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.VerbenDialogueComponent, selector: "verben-dialogue", inputs: ["dialogueWidth", "headerTemplate", "bodyTemplate", "footerTemplate", "showCloseIcon", "dismissOutsideClick", "closeOnEscape", "isVisible", "size", "backdropColor", "customClass", "disableFooter", "margin", "padding", "borderRadius", "dialogueBgColor", "width", "closeIconClass", "boxShadow", "enableTransition", "modalData", "mode", "position", "drawerWidth"], outputs: ["openModal", "closeModal"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5.VerbenaButtonComponent, selector: "verbena-button", inputs: ["text", "icon", "useIcon", "svgPosition", "iconPosition", "bgColor", "textColor", "border", "borderRadius", "pd", "width", "height", "fontSize", "fontWeight", "disable", "svgSize", "weight", "variant", "styleType", "svg", "svgWidth", "svgHeight", "iconColor", "svgColor", "buttonClass", "buttonTextClass", "isLoading", "spinnerSize", "spinnerColor"] }, { kind: "component", type: i5.DropDownComponent, selector: "verben-drop-down", inputs: ["options", "width", "showHorizontalLine", "horizontalLineColor", "optionLabel", "optionSubLabel", "optionValue", "placeholder", "invalidMessage", "errorPosition", "loadMoreCaption", "display", "showClear", "lazyLoad", "selectKey", "styleClass", "group", "multiselect", "filter", "avoidDuplication", "filterBy", "debounceTime", "minChar", "disabled", "required", "load", "asyncLabel", "search"], outputs: ["optionsChange", "onChange", "onClick", "onClear"] }, { kind: "component", type: i5.VerbenaInputComponent, selector: "verbena-input", inputs: ["label", "placeHolder", "required", "svgPosition", "minLength", "maxLength", "type", "bgColor", "border", "borderRadius", "textColor", "value", "labelPosition", "labelColor", "disable", "readOnly", "min", "max", "showBorder", "showErrorMessage", "errorMessageColor", "errorBorderColor", "errorPosition", "svg", "fontSize", "svgWidth", "svgHeight", "svgColor", "capitalization", "inputContainerClass", "inputFieldClass", "passLength", "inputWrapperClass", "passwordToggle", "customErrorMessages", "icon", "textPass"], outputs: ["valueChange"] }] });
|
|
110
116
|
}
|
|
111
117
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SwimlaneDialogComponent, decorators: [{
|
|
112
118
|
type: Component,
|
|
113
|
-
args: [{ selector: 'lib-swimlane-dialog', template: "<verben-dialogue\n [showCloseIcon]=\"true\"\n [dismissOutsideClick]=\"true\"\n [closeOnEscape]=\"true\"\n [size]=\"'medium'\"\n [mode]=\"'drawer'\"\n [disableFooter]=\"false\"\n [isVisible]=\"visible\"\n [headerTemplate]=\"headerTemplate\"\n [bodyTemplate]=\"bodyTemplate\"\n [footerTemplate]=\"footerTemplate\"\n (openModal)=\"onDialogOpen($event)\"\n (closeModal)=\"onDialogClose($event)\"\n>\n</verben-dialogue>\n\n<ng-template #headerTemplate>\n <div\n class=\"flex items-center justify-between p-3 text-xs border-b-4 border-[#FFE681]\"\n >\n <button class=\"mr-4\" type=\"button\" (click)=\"onDialogClose($event)\">\n <span\n class=\"block w-2.5 h-2.5 border-t border-l border-[#3E3E3E]/70 transform -rotate-45\"\n ></span>\n </button>\n <div class=\"text-center\">\n <h2 class=\"text-sm font-medium\">Select Tags</h2>\n <span class=\"text-xs text-[#3E3E3E]/70\"\n >{{ this.selectedTags.length }}/{{ tags.length }}</span\n >\n </div>\n <span\n class=\"font-medium cursor-pointer text-[#3E3E3E]/70\"\n (click)=\"applySelection()\"\n >Create</span\n >\n </div>\n</ng-template>\n\n<ng-template #bodyTemplate>\n <div class=\"p-3\">\n <div class=\"mb-4 grid gap-4\">\n <!-- <input\n type=\"text\"\n placeholder=\"Enter Name\"\n class=\"w-full px-4 py-2 rounded-lg border border-[#E7C10B] outline-none\"\n [(ngModel)]=\"workflowName\"\n />\n\n <input\n type=\"search\"\n placeholder=\"Filter Tags\"\n class=\"w-full px-4 py-2 rounded-lg border border-[#E7C10B] outline-none\"\n [(ngModel)]=\"searchQuery\"\n />\n </div>\n\n <div class=\"\">\n <div class=\"py-3\">\n <label class=\"flex items-center\">\n <input type=\"checkbox\" class=\"mr-3\" [(ngModel)]=\"allSelected\" />\n <span class=\"text-sm\">Select All</span>\n </label>\n </div>\n\n <div *ngFor=\"let tag of filteredTags\" class=\"py-3\">\n <label class=\"flex items-center\">\n <input\n type=\"checkbox\"\n class=\"mr-3\"\n [checked]=\"isTagSelected(tag.Name)\"\n (change)=\"toggleTagSelection(tag.Name)\"\n />\n <span class=\"text-sm\">{{ tag.Name }}</span>\n <span *ngIf=\"!tag.IsOptional\" class=\"ml-2 text-xs text-red-500\"\n >(Required)</span\n >\n </label>\n </div> -->\n\n <verbena-input\n [(ngModel)]=\"workflowName\"\n [border]=\"'1px solid #9A9FBF66'\"\n placeHolder=\"Enter Swimlane Label\"\n [bgColor]=\"'white'\"\n ></verbena-input>\n\n <verben-drop-down\n selectKey=\"Code\"\n label=\"Tags\"\n styleClass=\"w-full\"\n width=\"100%\"\n [multiselect]=\"true\"\n placeholder=\"Select\"\n [options]=\"tags\"\n optionLabel=\"Name\"\n id=\"tags\"\n [(ngModel)]=\"selectedTags\"\n class=\"form-control\"\n [filter]=\"true\"\n [filterBy]=\"'Name'\"\n [showClear]=\"true\"\n >\n </verben-drop-down>\n </div>\n </div>\n</ng-template>\n\n<ng-template #footerTemplate>\n <div\n class=\"flex justify-between w-full items-center p-4 border-t border-gray-200\"\n >\n <!-- <button\n class=\"px-4 py-2 mr-2 bg-white border border-gray-200 rounded text-sm font-medium\"\n (click)=\"onDialogClose($event)\"\n >\n Cancel\n </button> -->\n\n <verbena-button\n (click)=\"onDialogClose($event)\"\n text=\"Cancel\"\n styleType=\"ylw-outline\"\n ></verbena-button>\n\n <verbena-button\n type=\"submit\"\n text=\"Save\"\n bgColor=\"#FFE681\"\n textColor=\"#404040\"\n borderRadius=\"10px\"\n pd=\"10px 20px\"\n width=\"114px\"\n height=\"39px\"\n [disable]=\"selectedTags.length < 1\"\n (click)=\"applySelection()\"\n ></verbena-button>\n\n
|
|
119
|
+
args: [{ selector: 'lib-swimlane-dialog', template: "<verben-dialogue\n [showCloseIcon]=\"true\"\n [dismissOutsideClick]=\"true\"\n [closeOnEscape]=\"true\"\n [size]=\"'medium'\"\n [mode]=\"'drawer'\"\n [disableFooter]=\"false\"\n [isVisible]=\"visible\"\n [headerTemplate]=\"headerTemplate\"\n [bodyTemplate]=\"bodyTemplate\"\n [footerTemplate]=\"footerTemplate\"\n (openModal)=\"onDialogOpen($event)\"\n (closeModal)=\"onDialogClose($event)\"\n>\n</verben-dialogue>\n\n<ng-template #headerTemplate>\n <div\n class=\"flex items-center justify-between p-3 text-xs border-b-4 border-[#FFE681]\"\n >\n <button class=\"mr-4\" type=\"button\" (click)=\"onDialogClose($event)\">\n <span\n class=\"block w-2.5 h-2.5 border-t border-l border-[#3E3E3E]/70 transform -rotate-45\"\n ></span>\n </button>\n <div class=\"text-center\">\n <h2 class=\"text-sm font-medium\">Select Tags</h2>\n <span class=\"text-xs text-[#3E3E3E]/70\"\n >{{ this.selectedTags.length }}/{{ tags.length }}</span\n >\n </div>\n <span\n class=\"font-medium cursor-pointer text-[#3E3E3E]/70\"\n (click)=\"applySelection()\"\n >Create</span\n >\n </div>\n</ng-template>\n\n<ng-template #bodyTemplate>\n <div class=\"p-3\">\n <div class=\"mb-4 grid gap-4\">\n <!-- <input\n type=\"text\"\n placeholder=\"Enter Name\"\n class=\"w-full px-4 py-2 rounded-lg border border-[#E7C10B] outline-none\"\n [(ngModel)]=\"workflowName\"\n />\n\n <input\n type=\"search\"\n placeholder=\"Filter Tags\"\n class=\"w-full px-4 py-2 rounded-lg border border-[#E7C10B] outline-none\"\n [(ngModel)]=\"searchQuery\"\n />\n </div>\n\n <div class=\"\">\n <div class=\"py-3\">\n <label class=\"flex items-center\">\n <input type=\"checkbox\" class=\"mr-3\" [(ngModel)]=\"allSelected\" />\n <span class=\"text-sm\">Select All</span>\n </label>\n </div>\n\n <div *ngFor=\"let tag of filteredTags\" class=\"py-3\">\n <label class=\"flex items-center\">\n <input\n type=\"checkbox\"\n class=\"mr-3\"\n [checked]=\"isTagSelected(tag.Name)\"\n (change)=\"toggleTagSelection(tag.Name)\"\n />\n <span class=\"text-sm\">{{ tag.Name }}</span>\n <span *ngIf=\"!tag.IsOptional\" class=\"ml-2 text-xs text-red-500\"\n >(Required)</span\n >\n </label>\n </div> -->\n\n <verbena-input\n [(ngModel)]=\"workflowName\"\n [border]=\"'1px solid #9A9FBF66'\"\n placeHolder=\"Enter Swimlane Label\"\n [bgColor]=\"'white'\"\n ></verbena-input>\n\n <verben-drop-down\n selectKey=\"Code\"\n label=\"Tags\"\n styleClass=\"w-full\"\n width=\"100%\"\n [multiselect]=\"true\"\n placeholder=\"Select\"\n [options]=\"tags\"\n optionLabel=\"Name\"\n id=\"tags\"\n [(ngModel)]=\"selectedTags\"\n class=\"form-control\"\n [filter]=\"true\"\n [filterBy]=\"'Name'\"\n [showClear]=\"true\"\n >\n </verben-drop-down>\n </div>\n </div>\n</ng-template>\n\n<ng-template #footerTemplate>\n <div\n class=\"flex justify-between w-full items-center p-4 border-t border-gray-200\"\n >\n <!-- <button\n class=\"px-4 py-2 mr-2 bg-white border border-gray-200 rounded text-sm font-medium\"\n (click)=\"onDialogClose($event)\"\n >\n Cancel\n </button> -->\n\n <verbena-button\n (click)=\"onDialogClose($event)\"\n text=\"Cancel\"\n styleType=\"ylw-outline\"\n ></verbena-button>\n\n <verbena-button\n type=\"submit\"\n text=\"Save\"\n bgColor=\"#FFE681\"\n textColor=\"#404040\"\n borderRadius=\"10px\"\n pd=\"10px 20px\"\n width=\"114px\"\n height=\"39px\"\n [disable]=\"selectedTags.length < 1\"\n (click)=\"applySelection()\"\n ></verbena-button>\n\n <verbena-button\n *ngIf=\"isEditing\"\n width=\"114px\"\n height=\"39px\"\n text=\"Delete\"\n bgColor=\"#999999\"\n textColor=\"#404040\"\n borderRadius=\"10px\"\n pd=\"10px 20px\"\n (click)=\"onDeleteSwimlane()\"\n ></verbena-button>\n </div>\n</ng-template>\n" }]
|
|
114
120
|
}], ctorParameters: () => [{ type: i1.FormBuilder }, { type: i2.WorkflowDataService }, { type: i3.SwimlaneService }], propDecorators: { visible: [{
|
|
115
121
|
type: Input
|
|
122
|
+
}], isEditing: [{
|
|
123
|
+
type: Input
|
|
116
124
|
}], closed: [{
|
|
117
125
|
type: Output
|
|
118
126
|
}], created: [{
|
|
119
127
|
type: Output
|
|
128
|
+
}], deleted: [{
|
|
129
|
+
type: Output
|
|
120
130
|
}] } });
|
|
121
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dpbWxhbmUtZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZlcmJlbi13b3JrZmxvdy11aS9zcmMvbGliL2NvbXBvbmVudHMvd29ya2Zsb3ctZGVzaWduZXIvc3dpbWxhbmUtZGlhbG9nL3N3aW1sYW5lLWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4td29ya2Zsb3ctdWkvc3JjL2xpYi9jb21wb25lbnRzL3dvcmtmbG93LWRlc2lnbmVyL3N3aW1sYW5lLWRpYWxvZy9zd2ltbGFuZS1kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxNQUFNLEVBQ04sWUFBWSxFQUNaLEtBQUssRUFDTCxLQUFLLEVBRUwsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDOzs7Ozs7QUFXdkIsTUFBTSxPQUFPLHVCQUF1QjtJQWlCeEI7SUFDQTtJQUNBO0lBbEJELE9BQU8sR0FBWSxLQUFLLENBQUM7SUFDbEMsWUFBWSxHQUFHLEtBQUssQ0FBdUMsSUFBSSxDQUFDLENBQUM7SUFDdkQsTUFBTSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUFDNUIsT0FBTyxHQUFHLElBQUksWUFBWSxFQUFpQyxDQUFDO0lBRXRFLFdBQVcsR0FBVyxFQUFFLENBQUM7SUFDekIsWUFBWSxHQUFXLEVBQUUsQ0FBQztJQUUxQiwwQ0FBMEM7SUFDMUMsZ0JBQWdCLEdBQWEsRUFBRSxDQUFDO0lBQ2hDLFlBQVksR0FBVSxFQUFFLENBQUM7SUFFekIsWUFBWTtJQUNaLElBQUksR0FBVSxFQUFFLENBQUM7SUFFakIsWUFDVSxFQUFlLEVBQ2YsV0FBZ0MsRUFDaEMsZUFBZ0M7UUFGaEMsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQUNmLGdCQUFXLEdBQVgsV0FBVyxDQUFxQjtRQUNoQyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFFeEMsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNWLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNsQyxxREFBcUQ7WUFDckQsSUFBSSxLQUFLLEVBQUUsQ0FBQztnQkFDVixJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDO2dCQUNyQyxvQkFBb0I7Z0JBQ3BCLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQztZQUNqQyxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsUUFBUTtRQUNOLE9BQU8sQ0FBQyxHQUFHLENBQUMsd0NBQXdDLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBRXpFLHNDQUFzQztRQUN0Qyw4QkFBOEI7UUFDOUIsSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUM7UUFFdEIsa0NBQWtDO1FBQ2xDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNsQixDQUFDO0lBRUQ7O09BRUc7SUFDSyxRQUFRO1FBQ2QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUN2QyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDMUIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsSUFBSSxXQUFXO1FBQ2IsT0FBTyxDQUNMLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUMxRSxDQUFDO0lBQ0osQ0FBQztJQUVELElBQUksV0FBVyxDQUFDLEtBQWM7UUFDNUIsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNWLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzNELENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLGdCQUFnQixHQUFHLEVBQUUsQ0FBQztRQUM3QixDQUFDO0lBQ0gsQ0FBQztJQUVELElBQUksWUFBWTtRQUNkLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDdEIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ25CLENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FDOUIsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUNoRSxDQUFDO0lBQ0osQ0FBQztJQUVELGFBQWEsQ0FBQyxPQUFlO1FBQzNCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsa0JBQWtCLENBQUMsT0FBZTtRQUNoQyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3JELElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDZixJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN6QyxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdEMsQ0FBQztJQUNILENBQUM7SUFFRCxhQUFhLENBQUMsU0FBYztRQUMxQixPQUFPLENBQUMsR0FBRyxDQUFDLCtCQUErQixFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQ3hELElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxFQUFFLENBQUM7UUFDM0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsWUFBWSxDQUFDLFNBQWM7UUFDekIsT0FBTyxDQUFDLEdBQUcsQ0FBQywrQkFBK0IsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRUQsY0FBYztRQUNaLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FDNUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQ3pDLENBQUM7UUFFRixPQUFPLENBQUMsR0FBRyxDQUFDLDJCQUEyQixFQUFFO1lBQ3ZDLElBQUksRUFBRSxJQUFJLENBQUMsWUFBWTtZQUN2QixJQUFJLEVBQUUsWUFBWTtTQUNuQixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztZQUNoQixJQUFJLEVBQUUsSUFBSSxDQUFDLFlBQVk7WUFDdkIsSUFBSSxFQUFFLElBQUksQ0FBQyxZQUFZO1NBQ3hCLENBQUMsQ0FBQztRQUVILHNDQUFzQztRQUN0QyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsRUFBRSxDQUFDO1FBQzNCLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO0lBQ3hCLENBQUM7d0dBMUhVLHVCQUF1Qjs0RkFBdkIsdUJBQXVCLHNZQ25CcEMsb29JQW9KQTs7NEZEaklhLHVCQUF1QjtrQkFMbkMsU0FBUzsrQkFDRSxxQkFBcUI7Z0pBS3RCLE9BQU87c0JBQWYsS0FBSztnQkFFSSxNQUFNO3NCQUFmLE1BQU07Z0JBQ0csT0FBTztzQkFBaEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgZWZmZWN0LFxuICBFdmVudEVtaXR0ZXIsXG4gIGlucHV0LFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVGFnIH0gZnJvbSAndmVyYmVuLXdvcmtmbG93LXVpL3NyYy9saWIvbW9kZWxzJztcbmltcG9ydCB7IFdvcmtmbG93RGF0YVNlcnZpY2UgfSBmcm9tICcuLi93b3JrZmxvdy1kYXRhLnNlcnZpY2UnO1xuaW1wb3J0IHsgU3dpbWxhbmVTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvc3dpbWxhbmUuc2VydmljZSc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItc3dpbWxhbmUtZGlhbG9nJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3N3aW1sYW5lLWRpYWxvZy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9zd2ltbGFuZS1kaWFsb2cuY29tcG9uZW50LmNzcycsXG59KVxuZXhwb3J0IGNsYXNzIFN3aW1sYW5lRGlhbG9nQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgdmlzaWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuICBzd2ltbGFuZURhdGEgPSBpbnB1dDx7IG5hbWU6IHN0cmluZzsgdGFnczogVGFnW10gfSB8IG51bGw+KG51bGwpO1xuICBAT3V0cHV0KCkgY2xvc2VkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgY3JlYXRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8eyB0YWdzOiBUYWdbXTsgbmFtZTogc3RyaW5nIH0+KCk7XG5cbiAgc2VhcmNoUXVlcnk6IHN0cmluZyA9ICcnO1xuICB3b3JrZmxvd05hbWU6IHN0cmluZyA9ICcnO1xuXG4gIC8vIFRyYWNrIHNlbGVjdGVkIHRhZ3MgaW4gYSBzZXBhcmF0ZSBhcnJheVxuICBzZWxlY3RlZFRhZ05hbWVzOiBzdHJpbmdbXSA9IFtdO1xuICBzZWxlY3RlZFRhZ3M6IFRhZ1tdID0gW107XG5cbiAgLy8gVGFncyBsaXN0XG4gIHRhZ3M6IFRhZ1tdID0gW107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsXG4gICAgcHJpdmF0ZSBkYXRhU2VydmljZTogV29ya2Zsb3dEYXRhU2VydmljZSxcbiAgICBwcml2YXRlIHN3aW1sYW5lU2VydmljZTogU3dpbWxhbmVTZXJ2aWNlXG4gICkge1xuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICBjb25zdCBzRGF0YSA9IHRoaXMuc3dpbWxhbmVEYXRhKCk7XG4gICAgICAvLyBJZiBlZGl0aW5nIGFuIGV4aXN0aW5nIHN3aW1sYW5lLCBwb3B1bGF0ZSB0aGUgZm9ybVxuICAgICAgaWYgKHNEYXRhKSB7XG4gICAgICAgIHRoaXMud29ya2Zsb3dOYW1lID0gc0RhdGEubmFtZSB8fCAnJztcbiAgICAgICAgLy8gU2V0IHNlbGVjdGVkIHRhZ3NcbiAgICAgICAgdGhpcy5zZWxlY3RlZFRhZ3MgPSBzRGF0YS50YWdzO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgY29uc29sZS5sb2coJ1N3aW1sYW5lIGRpYWxvZyBpbml0aWFsaXplZCB3aXRoIGRhdGE6JywgdGhpcy5zd2ltbGFuZURhdGEpO1xuXG4gICAgLy8gUmVzZXQgZm9ybSBmaWVsZHMgd2hlbiBkaWFsb2cgb3BlbnNcbiAgICAvLyB0aGlzLnNlbGVjdGVkVGFnTmFtZXMgPSBbXTtcbiAgICB0aGlzLndvcmtmbG93TmFtZSA9ICcnO1xuICAgIHRoaXMuc2VhcmNoUXVlcnkgPSAnJztcblxuICAgIC8vIExvYWQgdGFncyBmcm9tIHRoZSBkYXRhIHNlcnZpY2VcbiAgICB0aGlzLmxvYWRUYWdzKCk7XG4gIH1cblxuICAvKipcbiAgICogTG9hZCB0YWdzIGZyb20gdGhlIGRhdGEgc2VydmljZVxuICAgKi9cbiAgcHJpdmF0ZSBsb2FkVGFncygpOiB2b2lkIHtcbiAgICB0aGlzLmRhdGFTZXJ2aWNlLmdldFRhZ3MoKS50aGVuKChkYXRhKSA9PiB7XG4gICAgICB0aGlzLnRhZ3MgPSBkYXRhLlJlc3VsdDtcbiAgICB9KTtcbiAgfVxuXG4gIGdldCBhbGxTZWxlY3RlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy50YWdzLmxlbmd0aCA+IDAgJiYgdGhpcy5zZWxlY3RlZFRhZ05hbWVzLmxlbmd0aCA9PT0gdGhpcy50YWdzLmxlbmd0aFxuICAgICk7XG4gIH1cblxuICBzZXQgYWxsU2VsZWN0ZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRUYWdOYW1lcyA9IHRoaXMudGFncy5tYXAoKHRhZykgPT4gdGFnLk5hbWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNlbGVjdGVkVGFnTmFtZXMgPSBbXTtcbiAgICB9XG4gIH1cblxuICBnZXQgZmlsdGVyZWRUYWdzKCk6IFRhZ1tdIHtcbiAgICBpZiAoIXRoaXMuc2VhcmNoUXVlcnkpIHtcbiAgICAgIHJldHVybiB0aGlzLnRhZ3M7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMudGFncy5maWx0ZXIoKHRhZykgPT5cbiAgICAgIHRhZy5OYW1lLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXModGhpcy5zZWFyY2hRdWVyeS50b0xvd2VyQ2FzZSgpKVxuICAgICk7XG4gIH1cblxuICBpc1RhZ1NlbGVjdGVkKHRhZ05hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnNlbGVjdGVkVGFnTmFtZXMuaW5jbHVkZXModGFnTmFtZSk7XG4gIH1cblxuICB0b2dnbGVUYWdTZWxlY3Rpb24odGFnTmFtZTogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgaW5kZXggPSB0aGlzLnNlbGVjdGVkVGFnTmFtZXMuaW5kZXhPZih0YWdOYW1lKTtcbiAgICBpZiAoaW5kZXggPiAtMSkge1xuICAgICAgdGhpcy5zZWxlY3RlZFRhZ05hbWVzLnNwbGljZShpbmRleCwgMSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRUYWdOYW1lcy5wdXNoKHRhZ05hbWUpO1xuICAgIH1cbiAgfVxuXG4gIG9uRGlhbG9nQ2xvc2UoZXZlbnREYXRhOiBhbnkpIHtcbiAgICBjb25zb2xlLmxvZygnRGlhbG9nIGNsb3NlZCwgcmVjZWl2ZWQgZGF0YTonLCBldmVudERhdGEpO1xuICAgIHRoaXMuc2VhcmNoUXVlcnkgPSAnJztcbiAgICB0aGlzLndvcmtmbG93TmFtZSA9ICcnO1xuICAgIHRoaXMuc2VsZWN0ZWRUYWdOYW1lcyA9IFtdO1xuICAgIHRoaXMuY2xvc2VkLmVtaXQoKTtcbiAgfVxuXG4gIG9uRGlhbG9nT3BlbihldmVudERhdGE6IGFueSkge1xuICAgIGNvbnNvbGUubG9nKCdEaWFsb2cgb3BlbmVkLCByZWNlaXZlZCBkYXRhOicsIGV2ZW50RGF0YSk7XG4gIH1cblxuICBhcHBseVNlbGVjdGlvbigpIHtcbiAgICBjb25zdCBzZWxlY3RlZFRhZ3MgPSB0aGlzLnRhZ3MuZmlsdGVyKCh0YWcpID0+XG4gICAgICB0aGlzLnNlbGVjdGVkVGFnTmFtZXMuaW5jbHVkZXModGFnLk5hbWUpXG4gICAgKTtcblxuICAgIGNvbnNvbGUubG9nKCdTdWJtaXR0aW5nIHN3aW1sYW5lIGRhdGE6Jywge1xuICAgICAgbmFtZTogdGhpcy53b3JrZmxvd05hbWUsXG4gICAgICB0YWdzOiBzZWxlY3RlZFRhZ3MsXG4gICAgfSk7XG5cbiAgICB0aGlzLmNyZWF0ZWQuZW1pdCh7XG4gICAgICB0YWdzOiB0aGlzLnNlbGVjdGVkVGFncyxcbiAgICAgIG5hbWU6IHRoaXMud29ya2Zsb3dOYW1lLFxuICAgIH0pO1xuXG4gICAgLy8gUmVzZXQgZm9ybSBmaWVsZHMgd2hlbiBkaWFsb2cgb3BlbnNcbiAgICB0aGlzLnNlbGVjdGVkVGFnTmFtZXMgPSBbXTtcbiAgICB0aGlzLnNlbGVjdGVkVGFncyA9IFtdO1xuICAgIHRoaXMud29ya2Zsb3dOYW1lID0gJyc7XG4gICAgdGhpcy5zZWFyY2hRdWVyeSA9ICcnO1xuICB9XG59XG4iLCI8dmVyYmVuLWRpYWxvZ3VlXG4gIFtzaG93Q2xvc2VJY29uXT1cInRydWVcIlxuICBbZGlzbWlzc091dHNpZGVDbGlja109XCJ0cnVlXCJcbiAgW2Nsb3NlT25Fc2NhcGVdPVwidHJ1ZVwiXG4gIFtzaXplXT1cIidtZWRpdW0nXCJcbiAgW21vZGVdPVwiJ2RyYXdlcidcIlxuICBbZGlzYWJsZUZvb3Rlcl09XCJmYWxzZVwiXG4gIFtpc1Zpc2libGVdPVwidmlzaWJsZVwiXG4gIFtoZWFkZXJUZW1wbGF0ZV09XCJoZWFkZXJUZW1wbGF0ZVwiXG4gIFtib2R5VGVtcGxhdGVdPVwiYm9keVRlbXBsYXRlXCJcbiAgW2Zvb3RlclRlbXBsYXRlXT1cImZvb3RlclRlbXBsYXRlXCJcbiAgKG9wZW5Nb2RhbCk9XCJvbkRpYWxvZ09wZW4oJGV2ZW50KVwiXG4gIChjbG9zZU1vZGFsKT1cIm9uRGlhbG9nQ2xvc2UoJGV2ZW50KVwiXG4+XG48L3ZlcmJlbi1kaWFsb2d1ZT5cblxuPG5nLXRlbXBsYXRlICNoZWFkZXJUZW1wbGF0ZT5cbiAgPGRpdlxuICAgIGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIHAtMyB0ZXh0LXhzIGJvcmRlci1iLTQgYm9yZGVyLVsjRkZFNjgxXVwiXG4gID5cbiAgICA8YnV0dG9uIGNsYXNzPVwibXItNFwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwib25EaWFsb2dDbG9zZSgkZXZlbnQpXCI+XG4gICAgICA8c3BhblxuICAgICAgICBjbGFzcz1cImJsb2NrIHctMi41IGgtMi41IGJvcmRlci10IGJvcmRlci1sIGJvcmRlci1bIzNFM0UzRV0vNzAgdHJhbnNmb3JtIC1yb3RhdGUtNDVcIlxuICAgICAgPjwvc3Bhbj5cbiAgICA8L2J1dHRvbj5cbiAgICA8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXJcIj5cbiAgICAgIDxoMiBjbGFzcz1cInRleHQtc20gZm9udC1tZWRpdW1cIj5TZWxlY3QgVGFnczwvaDI+XG4gICAgICA8c3BhbiBjbGFzcz1cInRleHQteHMgdGV4dC1bIzNFM0UzRV0vNzBcIlxuICAgICAgICA+e3sgdGhpcy5zZWxlY3RlZFRhZ3MubGVuZ3RoIH19L3t7IHRhZ3MubGVuZ3RoIH19PC9zcGFuXG4gICAgICA+XG4gICAgPC9kaXY+XG4gICAgPHNwYW5cbiAgICAgIGNsYXNzPVwiZm9udC1tZWRpdW0gY3Vyc29yLXBvaW50ZXIgdGV4dC1bIzNFM0UzRV0vNzBcIlxuICAgICAgKGNsaWNrKT1cImFwcGx5U2VsZWN0aW9uKClcIlxuICAgICAgPkNyZWF0ZTwvc3BhblxuICAgID5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2JvZHlUZW1wbGF0ZT5cbiAgPGRpdiBjbGFzcz1cInAtM1wiPlxuICAgIDxkaXYgY2xhc3M9XCJtYi00IGdyaWQgZ2FwLTRcIj5cbiAgICAgIDwhLS0gPGlucHV0XG4gICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgcGxhY2Vob2xkZXI9XCJFbnRlciBOYW1lXCJcbiAgICAgICAgY2xhc3M9XCJ3LWZ1bGwgcHgtNCBweS0yIHJvdW5kZWQtbGcgYm9yZGVyIGJvcmRlci1bI0U3QzEwQl0gb3V0bGluZS1ub25lXCJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJ3b3JrZmxvd05hbWVcIlxuICAgICAgLz5cblxuICAgICAgPGlucHV0XG4gICAgICAgIHR5cGU9XCJzZWFyY2hcIlxuICAgICAgICBwbGFjZWhvbGRlcj1cIkZpbHRlciBUYWdzXCJcbiAgICAgICAgY2xhc3M9XCJ3LWZ1bGwgcHgtNCBweS0yIHJvdW5kZWQtbGcgYm9yZGVyIGJvcmRlci1bI0U3QzEwQl0gb3V0bGluZS1ub25lXCJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJzZWFyY2hRdWVyeVwiXG4gICAgICAvPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cIlwiPlxuICAgICAgPGRpdiBjbGFzcz1cInB5LTNcIj5cbiAgICAgICAgPGxhYmVsIGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgY2xhc3M9XCJtci0zXCIgWyhuZ01vZGVsKV09XCJhbGxTZWxlY3RlZFwiIC8+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXNtXCI+U2VsZWN0IEFsbDwvc3Bhbj5cbiAgICAgICAgPC9sYWJlbD5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2ICpuZ0Zvcj1cImxldCB0YWcgb2YgZmlsdGVyZWRUYWdzXCIgY2xhc3M9XCJweS0zXCI+XG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgICAgY2xhc3M9XCJtci0zXCJcbiAgICAgICAgICAgIFtjaGVja2VkXT1cImlzVGFnU2VsZWN0ZWQodGFnLk5hbWUpXCJcbiAgICAgICAgICAgIChjaGFuZ2UpPVwidG9nZ2xlVGFnU2VsZWN0aW9uKHRhZy5OYW1lKVwiXG4gICAgICAgICAgLz5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtc21cIj57eyB0YWcuTmFtZSB9fTwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiAqbmdJZj1cIiF0YWcuSXNPcHRpb25hbFwiIGNsYXNzPVwibWwtMiB0ZXh0LXhzIHRleHQtcmVkLTUwMFwiXG4gICAgICAgICAgICA+KFJlcXVpcmVkKTwvc3BhblxuICAgICAgICAgID5cbiAgICAgICAgPC9sYWJlbD5cbiAgICAgIDwvZGl2PiAtLT5cblxuICAgICAgPHZlcmJlbmEtaW5wdXRcbiAgICAgICAgWyhuZ01vZGVsKV09XCJ3b3JrZmxvd05hbWVcIlxuICAgICAgICBbYm9yZGVyXT1cIicxcHggc29saWQgIzlBOUZCRjY2J1wiXG4gICAgICAgIHBsYWNlSG9sZGVyPVwiRW50ZXIgU3dpbWxhbmUgTGFiZWxcIlxuICAgICAgICBbYmdDb2xvcl09XCInd2hpdGUnXCJcbiAgICAgID48L3ZlcmJlbmEtaW5wdXQ+XG5cbiAgICAgIDx2ZXJiZW4tZHJvcC1kb3duXG4gICAgICAgIHNlbGVjdEtleT1cIkNvZGVcIlxuICAgICAgICBsYWJlbD1cIlRhZ3NcIlxuICAgICAgICBzdHlsZUNsYXNzPVwidy1mdWxsXCJcbiAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgW211bHRpc2VsZWN0XT1cInRydWVcIlxuICAgICAgICBwbGFjZWhvbGRlcj1cIlNlbGVjdFwiXG4gICAgICAgIFtvcHRpb25zXT1cInRhZ3NcIlxuICAgICAgICBvcHRpb25MYWJlbD1cIk5hbWVcIlxuICAgICAgICBpZD1cInRhZ3NcIlxuICAgICAgICBbKG5nTW9kZWwpXT1cInNlbGVjdGVkVGFnc1wiXG4gICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgW2ZpbHRlcl09XCJ0cnVlXCJcbiAgICAgICAgW2ZpbHRlckJ5XT1cIidOYW1lJ1wiXG4gICAgICAgIFtzaG93Q2xlYXJdPVwidHJ1ZVwiXG4gICAgICA+XG4gICAgICA8L3ZlcmJlbi1kcm9wLWRvd24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNmb290ZXJUZW1wbGF0ZT5cbiAgPGRpdlxuICAgIGNsYXNzPVwiZmxleCBqdXN0aWZ5LWJldHdlZW4gdy1mdWxsIGl0ZW1zLWNlbnRlciBwLTQgYm9yZGVyLXQgYm9yZGVyLWdyYXktMjAwXCJcbiAgPlxuICAgIDwhLS0gPGJ1dHRvblxuICAgICAgY2xhc3M9XCJweC00IHB5LTIgbXItMiBiZy13aGl0ZSBib3JkZXIgYm9yZGVyLWdyYXktMjAwIHJvdW5kZWQgdGV4dC1zbSBmb250LW1lZGl1bVwiXG4gICAgICAoY2xpY2spPVwib25EaWFsb2dDbG9zZSgkZXZlbnQpXCJcbiAgICA+XG4gICAgICBDYW5jZWxcbiAgICA8L2J1dHRvbj4gLS0+XG5cbiAgICA8dmVyYmVuYS1idXR0b25cbiAgICAgIChjbGljayk9XCJvbkRpYWxvZ0Nsb3NlKCRldmVudClcIlxuICAgICAgdGV4dD1cIkNhbmNlbFwiXG4gICAgICBzdHlsZVR5cGU9XCJ5bHctb3V0bGluZVwiXG4gICAgPjwvdmVyYmVuYS1idXR0b24+XG5cbiAgICA8dmVyYmVuYS1idXR0b25cbiAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgdGV4dD1cIlNhdmVcIlxuICAgICAgYmdDb2xvcj1cIiNGRkU2ODFcIlxuICAgICAgdGV4dENvbG9yPVwiIzQwNDA0MFwiXG4gICAgICBib3JkZXJSYWRpdXM9XCIxMHB4XCJcbiAgICAgIHBkPVwiMTBweCAyMHB4XCJcbiAgICAgIHdpZHRoPVwiMTE0cHhcIlxuICAgICAgaGVpZ2h0PVwiMzlweFwiXG4gICAgICBbZGlzYWJsZV09XCJzZWxlY3RlZFRhZ3MubGVuZ3RoIDwgMVwiXG4gICAgICAoY2xpY2spPVwiYXBwbHlTZWxlY3Rpb24oKVwiXG4gICAgPjwvdmVyYmVuYS1idXR0b24+XG5cbiAgICA8IS0tIDx2ZXJiZW5hLWJ1dHRvblxuICAgICAgd2lkdGg9XCIxMTRweFwiXG4gICAgICBoZWlnaHQ9XCIzOXB4XCJcbiAgICAgIHRleHQ9XCJEZWxldGVcIlxuICAgICAgYmdDb2xvcj1cIiM5OTk5OTlcIlxuICAgICAgdGV4dENvbG9yPVwiIzQwNDA0MFwiXG4gICAgICBib3JkZXJSYWRpdXM9XCIxMHB4XCJcbiAgICA+PC92ZXJiZW5hLWJ1dHRvbj4gLS0+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
131
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dpbWxhbmUtZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZlcmJlbi13b3JrZmxvdy11aS9zcmMvbGliL2NvbXBvbmVudHMvd29ya2Zsb3ctZGVzaWduZXIvc3dpbWxhbmUtZGlhbG9nL3N3aW1sYW5lLWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4td29ya2Zsb3ctdWkvc3JjL2xpYi9jb21wb25lbnRzL3dvcmtmbG93LWRlc2lnbmVyL3N3aW1sYW5lLWRpYWxvZy9zd2ltbGFuZS1kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxNQUFNLEVBQ04sWUFBWSxFQUNaLEtBQUssRUFDTCxLQUFLLEVBRUwsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDOzs7Ozs7O0FBV3ZCLE1BQU0sT0FBTyx1QkFBdUI7SUFtQnhCO0lBQ0E7SUFDQTtJQXBCRCxPQUFPLEdBQVksS0FBSyxDQUFDO0lBQ3pCLFNBQVMsR0FBWSxLQUFLLENBQUM7SUFDcEMsWUFBWSxHQUFHLEtBQUssQ0FBdUMsSUFBSSxDQUFDLENBQUM7SUFDdkQsTUFBTSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUFDNUIsT0FBTyxHQUFHLElBQUksWUFBWSxFQUFpQyxDQUFDO0lBQzVELE9BQU8sR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO0lBRTdDLFdBQVcsR0FBVyxFQUFFLENBQUM7SUFDekIsWUFBWSxHQUFXLEVBQUUsQ0FBQztJQUUxQiwwQ0FBMEM7SUFDMUMsZ0JBQWdCLEdBQWEsRUFBRSxDQUFDO0lBQ2hDLFlBQVksR0FBVSxFQUFFLENBQUM7SUFFekIsWUFBWTtJQUNaLElBQUksR0FBVSxFQUFFLENBQUM7SUFFakIsWUFDVSxFQUFlLEVBQ2YsV0FBZ0MsRUFD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LHVCQUF1Qjs0RkFBdkIsdUJBQXVCLCtoQkNuQnBDLG90SUF1SkE7OzRGRHBJYSx1QkFBdUI7a0JBTG5DLFNBQVM7K0JBQ0UscUJBQXFCO2dKQUt0QixPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFFSSxNQUFNO3NCQUFmLE1BQU07Z0JBQ0csT0FBTztzQkFBaEIsTUFBTTtnQkFDRyxPQUFPO3NCQUFoQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBlZmZlY3QsXG4gIEV2ZW50RW1pdHRlcixcbiAgaW5wdXQsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUYWcgfSBmcm9tICd2ZXJiZW4td29ya2Zsb3ctdWkvc3JjL2xpYi9tb2RlbHMnO1xuaW1wb3J0IHsgV29ya2Zsb3dEYXRhU2VydmljZSB9IGZyb20gJy4uL3dvcmtmbG93LWRhdGEuc2VydmljZSc7XG5pbXBvcnQgeyBTd2ltbGFuZVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9zd2ltbGFuZS5zZXJ2aWNlJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1zd2ltbGFuZS1kaWFsb2cnLFxuICB0ZW1wbGF0ZVVybDogJy4vc3dpbWxhbmUtZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3N3aW1sYW5lLWRpYWxvZy5jb21wb25lbnQuY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgU3dpbWxhbmVEaWFsb2dDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSB2aXNpYmxlOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGlzRWRpdGluZzogYm9vbGVhbiA9IGZhbHNlO1xuICBzd2ltbGFuZURhdGEgPSBpbnB1dDx7IG5hbWU6IHN0cmluZzsgdGFnczogVGFnW10gfSB8IG51bGw+KG51bGwpO1xuICBAT3V0cHV0KCkgY2xvc2VkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgY3JlYXRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8eyB0YWdzOiBUYWdbXTsgbmFtZTogc3RyaW5nIH0+KCk7XG4gIEBPdXRwdXQoKSBkZWxldGVkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIHNlYXJjaFF1ZXJ5OiBzdHJpbmcgPSAnJztcbiAgd29ya2Zsb3dOYW1lOiBzdHJpbmcgPSAnJztcblxuICAvLyBUcmFjayBzZWxlY3RlZCB0YWdzIGluIGEgc2VwYXJhdGUgYXJyYXlcbiAgc2VsZWN0ZWRUYWdOYW1lczogc3RyaW5nW10gPSBbXTtcbiAgc2VsZWN0ZWRUYWdzOiBUYWdbXSA9IFtdO1xuXG4gIC8vIFRhZ3MgbGlzdFxuICB0YWdzOiBUYWdbXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLFxuICAgIHByaXZhdGUgZGF0YVNlcnZpY2U6IFdvcmtmbG93RGF0YVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBzd2ltbGFuZVNlcnZpY2U6IFN3aW1sYW5lU2VydmljZVxuICApIHtcbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgY29uc3Qgc0RhdGEgPSB0aGlzLnN3aW1sYW5lRGF0YSgpO1xuICAgICAgLy8gSWYgZWRpdGluZyBhbiBleGlzdGluZyBzd2ltbGFuZSwgcG9wdWxhdGUgdGhlIGZvcm1cbiAgICAgIGlmIChzRGF0YSkge1xuICAgICAgICB0aGlzLndvcmtmbG93TmFtZSA9IHNEYXRhLm5hbWUgfHwgJyc7XG4gICAgICAgIC8vIFNldCBzZWxlY3RlZCB0YWdzXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRUYWdzID0gc0RhdGEudGFncztcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGNvbnNvbGUubG9nKCdTd2ltbGFuZSBkaWFsb2cgaW5pdGlhbGl6ZWQgd2l0aCBkYXRhOicsIHRoaXMuc3dpbWxhbmVEYXRhKTtcblxuICAgIC8vIFJlc2V0IGZvcm0gZmllbGRzIHdoZW4gZGlhbG9nIG9wZW5zXG4gICAgLy8gdGhpcy5zZWxlY3RlZFRhZ05hbWVzID0gW107XG4gICAgdGhpcy53b3JrZmxvd05hbWUgPSAnJztcbiAgICB0aGlzLnNlYXJjaFF1ZXJ5ID0gJyc7XG5cbiAgICAvLyBMb2FkIHRhZ3MgZnJvbSB0aGUgZGF0YSBzZXJ2aWNlXG4gICAgdGhpcy5sb2FkVGFncygpO1xuICB9XG5cbiAgLyoqXG4gICAqIExvYWQgdGFncyBmcm9tIHRoZSBkYXRhIHNlcnZpY2VcbiAgICovXG4gIHByaXZhdGUgbG9hZFRhZ3MoKTogdm9pZCB7XG4gICAgdGhpcy5kYXRhU2VydmljZS5nZXRUYWdzKCkudGhlbigoZGF0YSkgPT4ge1xuICAgICAgdGhpcy50YWdzID0gZGF0YS5SZXN1bHQ7XG4gICAgfSk7XG4gIH1cblxuICBnZXQgYWxsU2VsZWN0ZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMudGFncy5sZW5ndGggPiAwICYmIHRoaXMuc2VsZWN0ZWRUYWdOYW1lcy5sZW5ndGggPT09IHRoaXMudGFncy5sZW5ndGhcbiAgICApO1xuICB9XG5cbiAgc2V0IGFsbFNlbGVjdGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkVGFnTmFtZXMgPSB0aGlzLnRhZ3MubWFwKCh0YWcpID0+IHRhZy5OYW1lKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZWxlY3RlZFRhZ05hbWVzID0gW107XG4gICAgfVxuICB9XG5cbiAgZ2V0IGZpbHRlcmVkVGFncygpOiBUYWdbXSB7XG4gICAgaWYgKCF0aGlzLnNlYXJjaFF1ZXJ5KSB7XG4gICAgICByZXR1cm4gdGhpcy50YWdzO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnRhZ3MuZmlsdGVyKCh0YWcpID0+XG4gICAgICB0YWcuTmFtZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHRoaXMuc2VhcmNoUXVlcnkudG9Mb3dlckNhc2UoKSlcbiAgICApO1xuICB9XG5cbiAgaXNUYWdTZWxlY3RlZCh0YWdOYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZFRhZ05hbWVzLmluY2x1ZGVzKHRhZ05hbWUpO1xuICB9XG5cbiAgdG9nZ2xlVGFnU2VsZWN0aW9uKHRhZ05hbWU6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5zZWxlY3RlZFRhZ05hbWVzLmluZGV4T2YodGFnTmFtZSk7XG4gICAgaWYgKGluZGV4ID4gLTEpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRUYWdOYW1lcy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNlbGVjdGVkVGFnTmFtZXMucHVzaCh0YWdOYW1lKTtcbiAgICB9XG4gIH1cblxuICBvbkRlbGV0ZVN3aW1sYW5lKCkge1xuICAgIHRoaXMuZGVsZXRlZC5lbWl0KCk7XG4gIH1cblxuICBvbkRpYWxvZ0Nsb3NlKGV2ZW50RGF0YTogYW55KSB7XG4gICAgY29uc29sZS5sb2coJ0RpYWxvZyBjbG9zZWQsIHJlY2VpdmVkIGRhdGE6JywgZXZlbnREYXRhKTtcbiAgICB0aGlzLnNlYXJjaFF1ZXJ5ID0gJyc7XG4gICAgdGhpcy53b3JrZmxvd05hbWUgPSAnJztcbiAgICB0aGlzLnNlbGVjdGVkVGFnTmFtZXMgPSBbXTtcbiAgICB0aGlzLmNsb3NlZC5lbWl0KCk7XG4gIH1cblxuICBvbkRpYWxvZ09wZW4oZXZlbnREYXRhOiBhbnkpIHtcbiAgICBjb25zb2xlLmxvZygnRGlhbG9nIG9wZW5lZCwgcmVjZWl2ZWQgZGF0YTonLCBldmVudERhdGEpO1xuICB9XG5cbiAgYXBwbHlTZWxlY3Rpb24oKSB7XG4gICAgY29uc3Qgc2VsZWN0ZWRUYWdzID0gdGhpcy50YWdzLmZpbHRlcigodGFnKSA9PlxuICAgICAgdGhpcy5zZWxlY3RlZFRhZ05hbWVzLmluY2x1ZGVzKHRhZy5OYW1lKVxuICAgICk7XG5cbiAgICBjb25zb2xlLmxvZygnU3VibWl0dGluZyBzd2ltbGFuZSBkYXRhOicsIHtcbiAgICAgIG5hbWU6IHRoaXMud29ya2Zsb3dOYW1lLFxuICAgICAgdGFnczogc2VsZWN0ZWRUYWdzLFxuICAgIH0pO1xuXG4gICAgdGhpcy5jcmVhdGVkLmVtaXQoe1xuICAgICAgdGFnczogdGhpcy5zZWxlY3RlZFRhZ3MsXG4gICAgICBuYW1lOiB0aGlzLndvcmtmbG93TmFtZSxcbiAgICB9KTtcblxuICAgIC8vIFJlc2V0IGZvcm0gZmllbGRzIHdoZW4gZGlhbG9nIG9wZW5zXG4gICAgdGhpcy5zZWxlY3RlZFRhZ05hbWVzID0gW107XG4gICAgdGhpcy5zZWxlY3RlZFRhZ3MgPSBbXTtcbiAgICB0aGlzLndvcmtmbG93TmFtZSA9ICcnO1xuICAgIHRoaXMuc2VhcmNoUXVlcnkgPSAnJztcbiAgfVxufVxuIiwiPHZlcmJlbi1kaWFsb2d1ZVxuICBbc2hvd0Nsb3NlSWNvbl09XCJ0cnVlXCJcbiAgW2Rpc21pc3NPdXRzaWRlQ2xpY2tdPVwidHJ1ZVwiXG4gIFtjbG9zZU9uRXNjYXBlXT1cInRydWVcIlxuICBbc2l6ZV09XCInbWVkaXVtJ1wiXG4gIFttb2RlXT1cIidkcmF3ZXInXCJcbiAgW2Rpc2FibGVGb290ZXJdPVwiZmFsc2VcIlxuICBbaXNWaXNpYmxlXT1cInZpc2libGVcIlxuICBbaGVhZGVyVGVtcGxhdGVdPVwiaGVhZGVyVGVtcGxhdGVcIlxuICBbYm9keVRlbXBsYXRlXT1cImJvZHlUZW1wbGF0ZVwiXG4gIFtmb290ZXJUZW1wbGF0ZV09XCJmb290ZXJUZW1wbGF0ZVwiXG4gIChvcGVuTW9kYWwpPVwib25EaWFsb2dPcGVuKCRldmVudClcIlxuICAoY2xvc2VNb2RhbCk9XCJvbkRpYWxvZ0Nsb3NlKCRldmVudClcIlxuPlxuPC92ZXJiZW4tZGlhbG9ndWU+XG5cbjxuZy10ZW1wbGF0ZSAjaGVhZGVyVGVtcGxhdGU+XG4gIDxkaXZcbiAgICBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbiBwLTMgdGV4dC14cyBib3JkZXItYi00IGJvcmRlci1bI0ZGRTY4MV1cIlxuICA+XG4gICAgPGJ1dHRvbiBjbGFzcz1cIm1yLTRcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cIm9uRGlhbG9nQ2xvc2UoJGV2ZW50KVwiPlxuICAgICAgPHNwYW5cbiAgICAgICAgY2xhc3M9XCJibG9jayB3LTIuNSBoLTIuNSBib3JkZXItdCBib3JkZXItbCBib3JkZXItWyMzRTNFM0VdLzcwIHRyYW5zZm9ybSAtcm90YXRlLTQ1XCJcbiAgICAgID48L3NwYW4+XG4gICAgPC9idXR0b24+XG4gICAgPGRpdiBjbGFzcz1cInRleHQtY2VudGVyXCI+XG4gICAgICA8aDIgY2xhc3M9XCJ0ZXh0LXNtIGZvbnQtbWVkaXVtXCI+U2VsZWN0IFRhZ3M8L2gyPlxuICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXhzIHRleHQtWyMzRTNFM0VdLzcwXCJcbiAgICAgICAgPnt7IHRoaXMuc2VsZWN0ZWRUYWdzLmxlbmd0aCB9fS97eyB0YWdzLmxlbmd0aCB9fTwvc3BhblxuICAgICAgPlxuICAgIDwvZGl2PlxuICAgIDxzcGFuXG4gICAgICBjbGFzcz1cImZvbnQtbWVkaXVtIGN1cnNvci1wb2ludGVyIHRleHQtWyMzRTNFM0VdLzcwXCJcbiAgICAgIChjbGljayk9XCJhcHBseVNlbGVjdGlvbigpXCJcbiAgICAgID5DcmVhdGU8L3NwYW5cbiAgICA+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNib2R5VGVtcGxhdGU+XG4gIDxkaXYgY2xhc3M9XCJwLTNcIj5cbiAgICA8ZGl2IGNsYXNzPVwibWItNCBncmlkIGdhcC00XCI+XG4gICAgICA8IS0tIDxpbnB1dFxuICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgIHBsYWNlaG9sZGVyPVwiRW50ZXIgTmFtZVwiXG4gICAgICAgIGNsYXNzPVwidy1mdWxsIHB4LTQgcHktMiByb3VuZGVkLWxnIGJvcmRlciBib3JkZXItWyNFN0MxMEJdIG91dGxpbmUtbm9uZVwiXG4gICAgICAgIFsobmdNb2RlbCldPVwid29ya2Zsb3dOYW1lXCJcbiAgICAgIC8+XG5cbiAgICAgIDxpbnB1dFxuICAgICAgICB0eXBlPVwic2VhcmNoXCJcbiAgICAgICAgcGxhY2Vob2xkZXI9XCJGaWx0ZXIgVGFnc1wiXG4gICAgICAgIGNsYXNzPVwidy1mdWxsIHB4LTQgcHktMiByb3VuZGVkLWxnIGJvcmRlciBib3JkZXItWyNFN0MxMEJdIG91dGxpbmUtbm9uZVwiXG4gICAgICAgIFsobmdNb2RlbCldPVwic2VhcmNoUXVlcnlcIlxuICAgICAgLz5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJweS0zXCI+XG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIGNsYXNzPVwibXItM1wiIFsobmdNb2RlbCldPVwiYWxsU2VsZWN0ZWRcIiAvPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1zbVwiPlNlbGVjdCBBbGw8L3NwYW4+XG4gICAgICAgIDwvbGFiZWw+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgdGFnIG9mIGZpbHRlcmVkVGFnc1wiIGNsYXNzPVwicHktM1wiPlxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgICAgIGNsYXNzPVwibXItM1wiXG4gICAgICAgICAgICBbY2hlY2tlZF09XCJpc1RhZ1NlbGVjdGVkKHRhZy5OYW1lKVwiXG4gICAgICAgICAgICAoY2hhbmdlKT1cInRvZ2dsZVRhZ1NlbGVjdGlvbih0YWcuTmFtZSlcIlxuICAgICAgICAgIC8+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXNtXCI+e3sgdGFnLk5hbWUgfX08L3NwYW4+XG4gICAgICAgICAgPHNwYW4gKm5nSWY9XCIhdGFnLklzT3B0aW9uYWxcIiBjbGFzcz1cIm1sLTIgdGV4dC14cyB0ZXh0LXJlZC01MDBcIlxuICAgICAgICAgICAgPihSZXF1aXJlZCk8L3NwYW5cbiAgICAgICAgICA+XG4gICAgICAgIDwvbGFiZWw+XG4gICAgICA8L2Rpdj4gLS0+XG5cbiAgICAgIDx2ZXJiZW5hLWlucHV0XG4gICAgICAgIFsobmdNb2RlbCldPVwid29ya2Zsb3dOYW1lXCJcbiAgICAgICAgW2JvcmRlcl09XCInMXB4IHNvbGlkICM5QTlGQkY2NidcIlxuICAgICAgICBwbGFjZUhvbGRlcj1cIkVudGVyIFN3aW1sYW5lIExhYmVsXCJcbiAgICAgICAgW2JnQ29sb3JdPVwiJ3doaXRlJ1wiXG4gICAgICA+PC92ZXJiZW5hLWlucHV0PlxuXG4gICAgICA8dmVyYmVuLWRyb3AtZG93blxuICAgICAgICBzZWxlY3RLZXk9XCJDb2RlXCJcbiAgICAgICAgbGFiZWw9XCJUYWdzXCJcbiAgICAgICAgc3R5bGVDbGFzcz1cInctZnVsbFwiXG4gICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgIFttdWx0aXNlbGVjdF09XCJ0cnVlXCJcbiAgICAgICAgcGxhY2Vob2xkZXI9XCJTZWxlY3RcIlxuICAgICAgICBbb3B0aW9uc109XCJ0YWdzXCJcbiAgICAgICAgb3B0aW9uTGFiZWw9XCJOYW1lXCJcbiAgICAgICAgaWQ9XCJ0YWdzXCJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJzZWxlY3RlZFRhZ3NcIlxuICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgIFtmaWx0ZXJdPVwidHJ1ZVwiXG4gICAgICAgIFtmaWx0ZXJCeV09XCInTmFtZSdcIlxuICAgICAgICBbc2hvd0NsZWFyXT1cInRydWVcIlxuICAgICAgPlxuICAgICAgPC92ZXJiZW4tZHJvcC1kb3duPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjZm9vdGVyVGVtcGxhdGU+XG4gIDxkaXZcbiAgICBjbGFzcz1cImZsZXgganVzdGlmeS1iZXR3ZWVuIHctZnVsbCBpdGVtcy1jZW50ZXIgcC00IGJvcmRlci10IGJvcmRlci1ncmF5LTIwMFwiXG4gID5cbiAgICA8IS0tIDxidXR0b25cbiAgICAgIGNsYXNzPVwicHgtNCBweS0yIG1yLTIgYmctd2hpdGUgYm9yZGVyIGJvcmRlci1ncmF5LTIwMCByb3VuZGVkIHRleHQtc20gZm9udC1tZWRpdW1cIlxuICAgICAgKGNsaWNrKT1cIm9uRGlhbG9nQ2xvc2UoJGV2ZW50KVwiXG4gICAgPlxuICAgICAgQ2FuY2VsXG4gICAgPC9idXR0b24+IC0tPlxuXG4gICAgPHZlcmJlbmEtYnV0dG9uXG4gICAgICAoY2xpY2spPVwib25EaWFsb2dDbG9zZSgkZXZlbnQpXCJcbiAgICAgIHRleHQ9XCJDYW5jZWxcIlxuICAgICAgc3R5bGVUeXBlPVwieWx3LW91dGxpbmVcIlxuICAgID48L3ZlcmJlbmEtYnV0dG9uPlxuXG4gICAgPHZlcmJlbmEtYnV0dG9uXG4gICAgICB0eXBlPVwic3VibWl0XCJcbiAgICAgIHRleHQ9XCJTYXZlXCJcbiAgICAgIGJnQ29sb3I9XCIjRkZFNjgxXCJcbiAgICAgIHRleHRDb2xvcj1cIiM0MDQwNDBcIlxuICAgICAgYm9yZGVyUmFkaXVzPVwiMTBweFwiXG4gICAgICBwZD1cIjEwcHggMjBweFwiXG4gICAgICB3aWR0aD1cIjExNHB4XCJcbiAgICAgIGhlaWdodD1cIjM5cHhcIlxuICAgICAgW2Rpc2FibGVdPVwic2VsZWN0ZWRUYWdzLmxlbmd0aCA8IDFcIlxuICAgICAgKGNsaWNrKT1cImFwcGx5U2VsZWN0aW9uKClcIlxuICAgID48L3ZlcmJlbmEtYnV0dG9uPlxuXG4gICAgPHZlcmJlbmEtYnV0dG9uXG4gICAgICAqbmdJZj1cImlzRWRpdGluZ1wiXG4gICAgICB3aWR0aD1cIjExNHB4XCJcbiAgICAgIGhlaWdodD1cIjM5cHhcIlxuICAgICAgdGV4dD1cIkRlbGV0ZVwiXG4gICAgICBiZ0NvbG9yPVwiIzk5OTk5OVwiXG4gICAgICB0ZXh0Q29sb3I9XCIjNDA0MDQwXCJcbiAgICAgIGJvcmRlclJhZGl1cz1cIjEwcHhcIlxuICAgICAgcGQ9XCIxMHB4IDIwcHhcIlxuICAgICAgKGNsaWNrKT1cIm9uRGVsZXRlU3dpbWxhbmUoKVwiXG4gICAgPjwvdmVyYmVuYS1idXR0b24+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
@@ -39,6 +39,10 @@ export class WorkflowDataService {
|
|
|
39
39
|
const url = `DeleteWorkflowAction`;
|
|
40
40
|
return this.httpService.post(url, requests, this.envSvc.environment.WorkFlowAPI);
|
|
41
41
|
}
|
|
42
|
+
deleteSwimLanes(requests) {
|
|
43
|
+
const url = `DeleteSwimLane`;
|
|
44
|
+
return this.httpService.post(url, requests, this.envSvc.environment.WorkFlowAPI);
|
|
45
|
+
}
|
|
42
46
|
saveEscalations(requests) {
|
|
43
47
|
const url = `SaveEscalations`;
|
|
44
48
|
// console.log('Saving workflows', requests);
|
|
@@ -161,4 +165,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
161
165
|
providedIn: 'root',
|
|
162
166
|
}]
|
|
163
167
|
}], ctorParameters: () => [{ type: i1.HttpWebRequestService }, { type: i1.EnvironmentService }] });
|
|
164
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3ctZGF0YS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmVyYmVuLXdvcmtmbG93LXVpL3NyYy9saWIvY29tcG9uZW50cy93b3JrZmxvdy1kZXNpZ25lci93b3JrZmxvdy1kYXRhLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQTZELFdBQVcsRUFBMEMsY0FBYyxFQUFFLE1BQU0sRUFBTyxrQkFBa0IsRUFBMkIsTUFBTSxtQ0FBbUMsQ0FBQzs7O0FBTTdPLE1BQU0sT0FBTyxtQkFBbUI7SUFHcEI7SUFDQTtJQUZWLFlBQ1UsV0FBa0MsRUFDbEMsTUFBMEI7UUFEMUIsZ0JBQVcsR0FBWCxXQUFXLENBQXVCO1FBQ2xDLFdBQU0sR0FBTixNQUFNLENBQW9CO0lBQ2hDLENBQUM7SUFFTCxvQkFBb0IsQ0FDbEIsS0FBYSxFQUNiLE9BQWUsQ0FBQyxFQUNoQixRQUFnQixDQUFDLEVBQ2pCLFlBQW9CLFdBQVcsRUFDL0IsWUFBb0IsS0FBSztRQUV6QixNQUFNLEdBQUcsR0FBRyx5QkFBeUIsS0FBSyxJQUFJLElBQUksSUFBSSxLQUFLLElBQUksU0FBUyxJQUFJLFNBQVMsRUFBRSxDQUFDO1FBQ3hGLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUE2QixDQUFDO0lBQy9ELENBQUM7SUFFRCxZQUFZLENBQUMsT0FBZSxDQUFDLEVBQUUsUUFBZ0IsQ0FBQztRQUM5QyxNQUFNLEdBQUcsR0FBRyxnQkFBZ0IsSUFBSSxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQzVDLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQ3pCLEdBQUcsRUFDSCxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQ1IsQ0FBQztJQUNoQyxDQUFD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ci9jb3JlJztcbmltcG9ydCB7IEFjdG9yVGFnLCBFcnJvclJlc3BvbnNlLCBFc2NhbGF0aW9uLCBGbG93YWJsZVN0YXR1cywgRm9ybSwgT2JqZWN0U3RhdGUsIE9wZXJhdGlvbkFjdGlvbiwgUGFnZWQsIFJlcG9ydFNjaGVkdWxlLCBTdGFnZUFjdG9yUnVsZSwgU3RhdHVzLCBUYWcsIFRhc2tBc3NpZ25tZW50VHlwZSwgV29ya2Zsb3csIFdvcmtmbG93U3RhZ2UgfSBmcm9tICd2ZXJiZW4td29ya2Zsb3ctdWkvc3JjL2xpYi9tb2RlbHMnO1xuaW1wb3J0IHsgRW52aXJvbm1lbnRTZXJ2aWNlLCBIdHRwV2ViUmVxdWVzdFNlcnZpY2UgfSBmcm9tICd2ZXJiZW4td29ya2Zsb3ctdWkvc3JjL2xpYi9zZXJ2aWNlcyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBXb3JrZmxvd0RhdGFTZXJ2aWNlIHtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGh0dHBTZXJ2aWNlOiBIdHRwV2ViUmVxdWVzdFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBlbnZTdmM6IEVudmlyb25tZW50U2VydmljZVxuICApIHsgfVxuXG4gIGdldFdvcmtmbG93V2l0aFBhcmFtKFxuICAgIHBhcmFtOiBzdHJpbmcsXG4gICAgc2tpcDogbnVtYmVyID0gMCxcbiAgICBsaW1pdDogbnVtYmVyID0gMSxcbiAgICBzb3J0UGFyYW06IHN0cmluZyA9ICdDcmVhdGVkQXQnLFxuICAgIHNvcnRPcmRlcjogc3RyaW5nID0gJ0FzYydcbiAgKTogUHJvbWlzZTxQYWdlZDxXb3JrZmxvdz4+IHtcbiAgICBjb25zdCB1cmwgPSBgR2V0V29ya2Zsb3dzV2l0aFBhcmFtLyR7cGFyYW19LyR7c2tpcH0vJHtsaW1pdH0vJHtzb3J0UGFyYW19LyR7c29ydE9yZGVyfWA7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2UuZ2V0KHVybCkgYXMgUHJvbWlzZTxQYWdlZDxXb3JrZmxvdz4+O1xuICB9XG5cbiAgZ2V0V29ya2Zsb3dzKHNraXA6IG51bWJlciA9IDAsIGxpbWl0OiBudW1iZXIgPSAwKTogUHJvbWlzZTxQYWdlZDxXb3JrZmxvdz4+IHtcbiAgICBjb25zdCB1cmwgPSBgR2V0V29ya2Zsb3dzLyR7c2tpcH0vJHtsaW1pdH1gO1xuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlLmdldChcbiAgICAgIHVybCxcbiAgICAgIHRoaXMuZW52U3ZjLmVudmlyb25tZW50LldvcmtGbG93QVBJXG4gICAgKSBhcyBQcm9taXNlPFBhZ2VkPFdvcmtmbG93Pj47XG4gIH1cblxuICBnZXRGb3Jtcyhza2lwOiBudW1iZXIgPSAwLCBsaW1pdDogbnVtYmVyID0gMCk6IFByb21pc2U8UGFnZWQ8Rm9ybT4+IHtcbiAgICBjb25zdCB1cmwgPSBgR2V0Rm9ybXMvJHtza2lwfS8ke2xpbWl0fWA7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2UuZ2V0KFxuICAgICAgdXJsLFxuICAgICAgdGhpcy5lbnZTdmMuZW52aXJvbm1lbnQuV29ya0Zsb3dBUElcbiAgICApIGFzIFByb21pc2U8UGFnZWQ8Rm9ybT4+O1xuICB9XG5cbiAgZ2V0VGFncyhza2lwOiBudW1iZXIgPSAwLCBsaW1pdDogbnVtYmVyID0gMCk6IFByb21pc2U8UGFnZWQ8VGFnPj4ge1xuICAgIGNvbnN0IHVybCA9IGBHZXRUYWdzLyR7c2tpcH0vJHtsaW1pdH1gO1xuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlLmdldChcbiAgICAgIHVybCxcbiAgICAgIHRoaXMuZW52U3ZjLmVudmlyb25tZW50LkF1dGhBUElcbiAgICApIGFzIFByb21pc2U8UGFnZWQ8VGFnPj47XG4gIH1cblxuICBzYXZlV29ya2Zsb3dzKHJlcXVlc3RzOiBQYXJ0aWFsPFdvcmtmbG93PltdKTogUHJvbWlzZTxhbnkgfCBFcnJvclJlc3BvbnNlPiB7XG4gICAgY29uc3QgdXJsID0gYFNhdmVXb3JrZmxvd3NgO1xuICAgIC8vIGNvbnNvbGUubG9nKCdTYXZpbmcgd29ya2Zsb3dzJywgcmVxdWVzdHMpO1xuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlLnBvc3QoXG4gICAgICB1cmwsXG4gICAgICByZXF1ZXN0cyxcbiAgICAgIHRoaXMuZW52U3ZjLmVudmlyb25tZW50LldvcmtGbG93QVBJXG4gICAgKTtcbiAgfVxuXG4gIGRlbGV0ZVdvcmtmbG93U3RhZ2VzKHJlcXVlc3RzOiBXb3JrZmxvd1N0YWdlWydDb2RlJ11bXSk6IFByb21pc2U8YW55PiB7XG4gICAgY29uc3QgdXJsID0gYERlbGV0ZVdvcmtmbG93U3RhZ2VgO1xuICAgIC8vIGNvbnNvbGUubG9nKCdTYXZpbmcgd29ya2Zsb3dzJywgcmVxdWVzdHMpO1xuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlLnBvc3QoXG4gICAgICB1cmwsXG4gICAgICByZXF1ZXN0cyxcbiAgICAgIHRoaXMuZW52U3ZjLmVudmlyb25tZW50LldvcmtGbG93QVBJXG4gICAgKTtcbiAgfVxuXG4gIGRlbGV0ZVdvcmtmbG93QWN0aW9ucyhyZXF1ZXN0czogc3RyaW5nW10pOiBQcm9taXNlPGFueT4ge1xuICAgIGNvbnN0IHVybCA9IGBEZWxldGVXb3JrZmxvd0FjdGlvbmA7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2UucG9zdChcbiAgICAgIHVybCxcbiAgICAgIHJlcXVlc3RzLFxuICAgICAgdGhpcy5lbnZTdmMuZW52aXJvbm1lbnQuV29ya0Zsb3dBUElcbiAgICApO1xuICB9XG5cbiAgc2F2ZUVzY2FsYXRpb25zKHJlcXVlc3RzOiBQYXJ0aWFsPEVzY2FsYXRpb24+W10pOiBQcm9taXNlPEVzY2FsYXRpb25bXT4ge1xuICAgIGNvbnN0IHVybCA9IGBTYXZlRXNjYWxhdGlvbnNgO1xuICAgIC8vIGNvbnNvbGUubG9nKCdTYXZpbmcgd29ya2Zsb3dzJywgcmVxdWVzdHMpO1xuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlLnBvc3QoXG4gICAgICB1cmwsXG4gICAgICByZXF1ZXN0cyxcbiAgICAgIHRoaXMuZW52U3ZjLmVudmlyb25tZW50LldvcmtGbG93QVBJXG4gICAgKTtcbiAgfVxuXG4gIGRlbGV0ZUVzY2FsYXRpb25zKHJlcXVlc3RzOiBFc2NhbGF0aW9uWydDb2RlJ11bXSk6IFByb21pc2U8YW55PiB7XG4gICAgY29uc3QgdXJsID0gYERlbGV0ZUVzY2FsYXRpb25gO1xuICAgIC8vIGNvbnNvbGUubG9nKCdTYXZpbmcgd29ya2Zsb3dzJywgcmVxdWVzdHMpO1xuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlLnBvc3QoXG4gICAgICB1cmwsXG4gICAgICByZXF1ZXN0cyxcbiAgICAgIHRoaXMuZW52U3ZjLmVudmlyb25tZW50LldvcmtGbG93QVBJXG4gICAgKTtcbiAgfVxuXG4gIHNlYXJjaEVzY2FsYXRpb25XaXRoUGFyYW0oXG4gICAgcGFyYW1zOiBQaWNrPEVzY2FsYXRpb24sICdXb3JrZmxvdycgfCAnU3RhZ2UnIHwgJ1R5cGUnPixcbiAgICBza2lwOiBudW1iZXIgPSAwLFxuICAgIGxpbWl0OiBudW1iZXIgPSAxLFxuICAgIHNvcnRPcmRlcjogc3RyaW5nID0gJ0FzYydcbiAgKTogUHJvbWlzZTxQYWdlZDxFc2NhbGF0aW9uPj4ge1xuICAgIGNvbnN0IHVybCA9IGBTZWFyY2hFc2NhbGF0aW9ucy8ke3NraXB9LyR7bGltaXR9YDtcbiAgICBjb25zdCBwYXlsb2FkID0gT2JqZWN0LmVudHJpZXMocGFyYW1zKS5tYXAoKFtrZXksIHZhbHVlXSkgPT4gKHtcbiAgICAgIElzQXV0b0Zyb21EYXRlOiB0cnVlLFxuICAgICAgSXNBdXRvRW5kRGF0ZTogdHJ1ZSxcbiAgICAgIFByb3BlcnR5TmFtZToga2V5LFxuICAgICAgRW50aXR5VmFsdWU6IHZhbHVlLFxuICAgICAgVHlwZTogJ1N0cmluZycsXG4gICAgICBPcGVyYXRvcjogJ0FuZCcsXG4gICAgICBTaWduOiAnRVEnLFxuICAgICAgU29ydDogc29ydE9yZGVyLFxuICAgICAgLy8gRmllbGRzOiBbJ3N0cmluZyddLFxuICAgIH0pKTtcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZS5wb3N0KHVybCwgcGF5bG9hZCkgYXMgUHJvbWlzZTxQYWdlZDxFc2NhbGF0aW9uPj47XG4gIH1cblxuICBnZXRFc2NhbGF0aW9uV2l0aFBhcmFtKFxuICAgIHBhcmFtOiBzdHJpbmcsXG4gICAgc2tpcDogbnVtYmVyID0gMCxcbiAgICBsaW1pdDogbnVtYmVyID0gMSxcbiAgICBzb3J0UGFyYW06IHN0cmluZyA9ICdDcmVhdGVkQXQnLFxuICAgIHNvcnRPcmRlcjogc3RyaW5nID0gJ0FzYydcbiAgKTogUHJvbWlzZTxQYWdlZDxFc2NhbGF0aW9uPj4ge1xuICAgIGNvbnN0IHVybCA9IGBHZXRFc2NhbGF0aW9uc1dpdGhQYXJhbS8ke3BhcmFtfS8ke3NraXB9LyR7bGltaXR9LyR7c29ydFBhcmFtfS8ke3NvcnRPcmRlcn1gO1xuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlLmdldCh1cmwpIGFzIFByb21pc2U8UGFnZWQ8RXNjYWxhdGlvbj4+O1xuICB9XG5cbiAgZ2V0UmVwb3J0U2NoZWR1bGVzKFxuICAgIHNraXA6IG51bWJlciA9IDAsXG4gICAgbGltaXQ6IG51bWJlciA9IDBcbiAgKTogUHJvbWlzZTxQYWdlZDxSZXBvcnRTY2hlZHVsZT4+IHtcbiAgICBjb25zdCB1cmwgPSBgR2V0UmVwb3J0U2NoZWR1bGVzLyR7c2tpcH0vJHtsaW1pdH1gO1xuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlLmdldChcbiAgICAgIHVybCxcbiAgICAgIHRoaXMuZW52U3ZjLmVudmlyb25tZW50LlJlcG9ydGluZ0FQSVxuICAgICkgYXMgUHJvbWlzZTxQYWdlZDxSZXBvcnRTY2hlZHVsZT4+O1xuICB9XG5cbiAgZ2V0T3BlcmF0aW9uQWN0aW9ucyhcbiAgICBza2lwOiBudW1iZXIgPSAwLFxuICAgIGxpbWl0OiBudW1iZXIgPSAwXG4gICk6IFByb21pc2U8UGFnZWQ8T3BlcmF0aW9uQWN0aW9uPj4ge1xuICAgIGNvbnN0IHVybCA9IGBHZXRPcGVyYXRpb25BY3Rpb25gO1xuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlLmdldChcbiAgICAgIHVybCxcbiAgICAgIC8vIHRoaXMuZW52U3ZjLmVudmlyb25tZW50LkdMQVBJXG4gICAgKSBhcyBQcm9taXNlPFBhZ2VkPE9wZXJhdGlvbkFjdGlvbj4+O1xuICB9XG5cbiAgc2F2ZUFjdG9yVGFncyhyZXF1ZXN0czogQWN0b3JUYWdbXSk6IFByb21pc2U8YW55PiB7XG4gICAgY29uc3QgdXJsID0gYFNhdmVBY3RvclRhZ3NgO1xuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlLnBvc3QoXG4gICAgICB1cmwsXG4gICAgICByZXF1ZXN0cyxcbiAgICAgIHRoaXMuZW52U3ZjLmVudmlyb25tZW50LldvcmtGbG93QVBJXG4gICAgKTtcbiAgfVxuXG4gIGdldEZsb3dhYmxlU3RhdHVzZXMoXG4gICAgc2tpcDogbnVtYmVyID0gMCxcbiAgICBsaW1pdDogbnVtYmVyID0gMFxuICApOiBQcm9taXNlPFBhZ2VkPEZsb3dhYmxlU3RhdHVzPj4ge1xuICAgIGNvbnN0IHVybCA9IGBHZXRGbG93YWJsZVN0YXR1cy8ke3NraXB9LyR7bGltaXR9L0NyZWF0ZWRBdC9EZXNjYDtcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZS5nZXQodXJsKSBhcyBQcm9taXNlPFBhZ2VkPEZsb3dhYmxlU3RhdHVzPj47XG4gIH1cblxuICAvLyBIZWxwZXIgdG8gY3JlYXRlIGEgbW9jayB3b3JrZmxvdyAoanVzdCBmb3IgZGVtbylcbiAgcHJpdmF0ZSBjcmVhdGVNb2NrV29ya2Zsb3coY29kZTogc3RyaW5nKTogV29ya2Zsb3cge1xuICAgIC8vIFJldHVybiBhIHNpbXBsZSB3b3JrZmxvdyB3aXRoIG9uZSBsYW5lIGFuZCBvbmUgc3RhZ2VcbiAgICBjb25zdCB3b3JrZmxvdzogV29ya2Zsb3cgPSB7XG4gICAgICBJZDogJ3dvcmtmbG93LTEyMycsXG4gICAgICBDb2RlOiBjb2RlLFxuICAgICAgVGVuYW50SWQ6ICd0ZW5hbnQtMScsXG4gICAgICBpZDogJ3dvcmtmbG93LTEyMycsXG4gICAgICBTZXJ2aWNlTmFtZTogJ3dvcmtmbG93LXNlcnZpY2UnLFxuICAgICAgQ3JlYXRlZEF0OiBuZXcgRGF0ZSgpLFxuICAgICAgVXBkYXRlZEF0OiBuZXcgRGF0ZSgpLFxuICAgICAgRGF0YVN0YXRlOiBPYmplY3RTdGF0ZS5VbmNoYW5nZWQsXG4gICAgICBOYW1lOiAnU2FtcGxlIFdvcmtmbG93JyxcbiAgICAgIERlc2NyaXB0aW9uOiAnQSBzYW1wbGUgd29ya2Zsb3cgbG9hZGVkIGZyb20gQVBJJyxcbiAgICAgIFN0YWdlRW50cnlSdWxlOiAnJyxcbiAgICAgIEFzc2lnbm1lbnRUeXBlOiBUYXNrQXNzaWdubWVudFR5cGUuQXV0b1JvdXRlLFxuICAgICAgU3RhdHVzOiBTdGF0dXMuQWN0aXZlLFxuICAgICAgQWN0aW9uczogW10sXG4gICAgICBMYW5lczogW1xuICAgICAgICB7XG4gICAgICAgICAgSWQ6ICdsYW5lLTAnLFxuICAgICAgICAgIENvZGU6ICdsYW5lLTAnLFxuICAgICAgICAgIFRlbmFudElkOiAndGVuYW50LTEnLFxuICAgICAgICAgIGlkOiAnbGFuZS0wJyxcbiAgICAgICAgICBTZXJ2aWNlTmFtZTogJ3dvcmtmbG93LXNlcnZpY2UnLFxuICAgICAgICAgIENyZWF0ZWRBdDogbmV3IERhdGUoKSxcbiAgICAgICAgICBVcGRhdGVkQXQ6IG5ldyBEYXRlKCksXG4gICAgICAgICAgRGF0YVN0YXRlOiBPYmplY3RTdGF0ZS5VbmNoYW5nZWQsXG4gICAgICAgICAgV29ya2Zsb3c6ICd3b3JrZmxvdy0xMjMnLFxuICAgICAgICAgIFRhZ3M6IFtdLFxuICAgICAgICAgIFBvc2l0aW9uOiAwLFxuICAgICAgICAgIENvb3JkaW5hdGVzOiB7IFg6IDAsIFk6IDAgfSxcbiAgICAgICAgICBTaXplOiB7IFdpZHRoOiAzMDAwLCBIZWlnaHQ6IDI2MyB9LFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIFN0YWdlczogW1xuICAgICAgICB7XG4gICAgICAgICAgSWQ6ICdzdGFnZS0xMjMnLFxuICAgICAgICAgIENvZGU6ICdzdGFnZS0xMjMnLFxuICAgICAgICAgIFRlbmFudElkOiAndGVuYW50LTEnLFxuICAgICAgICAgIGlkOiAnc3RhZ2UtMTIzJyxcbiAgICAgICAgICBTZXJ2aWNlTmFtZTogJ3dvcmtmbG93LXNlcnZpY2UnLFxuICAgICAgICAgIENyZWF0ZWRBdDogbmV3IERhdGUoKSxcbiAgICAgICAgICBVcGRhdGVkQXQ6IG5ldyBEYXRlKCksXG4gICAgICAgICAgRGF0YVN0YXRlOiBPYmplY3RTdGF0ZS5VbmNoYW5nZWQsXG4gICAgICAgICAgV29ya2Zsb3c6ICd3b3JrZmxvdy0xMjMnLFxuICAgICAgICAgIE5hbWU6ICdJbml0aWFsIFN0YWdlJyxcbiAgICAgICAgICBEZXNjcmlwdGlvbjogJ1N0YXJ0aW5nIHBvaW50JyxcbiAgICAgICAgICBEdXJhdGlvbjogMjQsXG4gICAgICAgICAgUGFzc09uUnVsZTogJycsXG4gICAgICAgICAgQWN0b3JSdWxlOiBTdGFnZUFjdG9yUnVsZS5Ob25lLFxuICAgICAgICAgIE1pbk5vT2ZBY3RvcjogMSxcbiAgICAgICAgICBJc1BhcmFsbGVsOiBmYWxzZSxcbiAgICAgICAgICBJc0VudHJ5UG9pbnQ6IHRydWUsXG4gICAgICAgICAgSXNFeGl0UG9pbnQ6IGZhbHNlLFxuICAgICAgICAgIFRhZ3M6IFtdLFxuICAgICAgICAgIEZvcm06ICcnLFxuICAgICAgICAgIEFsbG93TXVsdGlTdWJQcm9jZXNzOiBmYWxzZSxcbiAgICAgICAgICBBc3NpZ25tZW50VHlwZTogVGFza0Fzc2lnbm1lbnRUeXBlLkF1dG9Sb3V0ZSxcbiAgICAgICAgICBTdWJXb3JrRmxvdzogJycsXG4gICAgICAgICAgU3dpbUxhbmU6ICdsYW5lLTAnLFxuICAgICAgICAgIENvb3JkaW5hdGVzOiB7IFg6IDEwMCwgWTogNTAgfSxcbiAgICAgICAgICBJc1N1YlByb2Nlc3M6IGZhbHNlLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9O1xuXG4gICAgcmV0dXJuIHdvcmtmbG93O1xuICB9XG59XG4iXX0=
|
|
168
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3ctZGF0YS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmVyYmVuLXdvcmtmbG93LXVpL3NyYy9saWIvY29tcG9uZW50cy93b3JrZmxvdy1kZXNpZ25lci93b3JrZmxvdy1kYXRhLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQTZELFdBQVcsRUFBMEMsY0FBYyxFQUFFLE1BQU0sRUFBaUIsa0JBQWtCLEVBQTJCLE1BQU0sbUNBQW1DLENBQUM7OztBQU12UCxNQUFNLE9BQU8sbUJBQW1CO0lBR3BCO0lBQ0E7SUFGVixZQUNVLFdBQWtDLEVBQ2xDLE1BQTBCO1FBRDFCLGdCQUFXLEdBQVgsV0FBVyxDQUF1QjtRQUNsQyxXQUFNLEdBQU4sTUFBTSxDQUFvQjtJQUNoQyxDQUFDO0lBRUwsb0JBQW9CLENBQ2xCLEtBQWEsRUFDYixPQUFlLENBQUMsRUFDaEIsUUFBZ0IsQ0FBQyxFQUNqQixZQUFvQixXQUFXLEVBQy9CLFlBQW9CLEtBQUs7UUFFekIsTUFBTSxHQUFHLEdBQUcseUJBQXlCLEtBQUssSUFBSSxJQUFJLElBQUksS0FBSyxJQUFJLFNBQVMsSUFBSSxTQUFTLEVBQUUsQ0FBQztRQUN4RixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBNkIsQ0FBQztJQUMvRCxDQUFDO0lBRUQsWUFBWSxDQUFDLE9BQWUsQ0FBQyxFQUFFLFFBQWdCLENBQUM7UUFDOUMsTUFBTSxHQUFHLEdBQUcsZ0JBQWdCLElBQUksSUFBSSxLQUFLLEVBQUUsQ0FBQztRQUM1QyxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUN6QixHQUFHLEVBQ0gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUNSLENBQUM7SUFDaEMsQ0FB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QVEsQ0FBQztJQUNsQixDQUFDO3dHQS9PVSxtQkFBbUI7NEdBQW5CLG1CQUFtQixjQUZsQixNQUFNOzs0RkFFUCxtQkFBbUI7a0JBSC9CLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0b3JUYWcsIEVycm9yUmVzcG9uc2UsIEVzY2FsYXRpb24sIEZsb3dhYmxlU3RhdHVzLCBGb3JtLCBPYmplY3RTdGF0ZSwgT3BlcmF0aW9uQWN0aW9uLCBQYWdlZCwgUmVwb3J0U2NoZWR1bGUsIFN0YWdlQWN0b3JSdWxlLCBTdGF0dXMsIFN3aW1MYW5lLCBUYWcsIFRhc2tBc3NpZ25tZW50VHlwZSwgV29ya2Zsb3csIFdvcmtmbG93U3RhZ2UgfSBmcm9tICd2ZXJiZW4td29ya2Zsb3ctdWkvc3JjL2xpYi9tb2RlbHMnO1xuaW1wb3J0IHsgRW52aXJvbm1lbnRTZXJ2aWNlLCBIdHRwV2ViUmVxdWVzdFNlcnZpY2UgfSBmcm9tICd2ZXJiZW4td29ya2Zsb3ctdWkvc3JjL2xpYi9zZXJ2aWNlcyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBXb3JrZmxvd0RhdGFTZXJ2aWNlIHtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGh0dHBTZXJ2aWNlOiBIdHRwV2ViUmVxdWVzdFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBlbnZTdmM6IEVudmlyb25tZW50U2VydmljZVxuICApIHsgfVxuXG4gIGdldFdvcmtmbG93V2l0aFBhcmFtKFxuICAgIHBhcmFtOiBzdHJpbmcsXG4gICAgc2tpcDogbnVtYmVyID0gMCxcbiAgICBsaW1pdDogbnVtYmVyID0gMSxcbiAgICBzb3J0UGFyYW06IHN0cmluZyA9ICdDcmVhdGVkQXQnLFxuICAgIHNvcnRPcmRlcjogc3RyaW5nID0gJ0FzYydcbiAgKTogUHJvbWlzZTxQYWdlZDxXb3JrZmxvdz4+IHtcbiAgICBjb25zdCB1cmwgPSBgR2V0V29ya2Zsb3dzV2l0aFBhcmFtLyR7cGFyYW19LyR7c2tpcH0vJHtsaW1pdH0vJHtzb3J0UGFyYW19LyR7c29ydE9yZGVyfWA7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2UuZ2V0KHVybCkgYXMgUHJvbWlzZTxQYWdlZDxXb3JrZmxvdz4+O1xuICB9XG5cbiAgZ2V0V29ya2Zsb3dzKHNraXA6IG51bWJlciA9IDAsIGxpbWl0OiBudW1iZXIgPSAwKTogUHJvbWlzZTxQYWdlZDxXb3JrZmxvdz4+IHtcbiAgICBjb25zdCB1cmwgPSBgR2V0V29ya2Zsb3dzLyR7c2tpcH0vJHtsaW1pdH1gO1xuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlLmdldChcbiAgICAgIHVybCxcbiAgICAgIHRoaXMuZW52U3ZjLmVudmlyb25tZW50LldvcmtGbG93QVBJXG4gICAgKSBhcyBQcm9taXNlPFBhZ2VkPFdvcmtmbG93Pj47XG4gIH1cblxuICBnZXRGb3Jtcyhza2lwOiBudW1iZXIgPSAwLCBsaW1pdDogbnVtYmVyID0gMCk6IFByb21pc2U8UGFnZWQ8Rm9ybT4+IHtcbiAgICBjb25zdCB1cmwgPSBgR2V0Rm9ybXMvJHtza2lwfS8ke2xpbWl0fWA7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2UuZ2V0KFxuICAgICAgdXJsLFxuICAgICAgdGhpcy5lbnZTdmMuZW52aXJvbm1lbnQuV29ya0Zsb3dBUElcbiAgICApIGFzIFByb21pc2U8UGFnZWQ8Rm9ybT4+O1xuICB9XG5cbiAgZ2V0VGFncyhza2lwOiBudW1iZXIgPSAwLCBsaW1pdDogbnVtYmVyID0gMCk6IFByb21pc2U8UGFnZWQ8VGFnPj4ge1xuICAgIGNvbnN0IHVybCA9IGBHZXRUYWdzLyR7c2tpcH0vJHtsaW1pdH1gO1xuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlLmdldChcbiAgICAgIHVybCxcbiAgICAgIHRoaXMuZW52U3ZjLmVudmlyb25tZW50LkF1dGhBUElcbiAgICApIGFzIFByb21pc2U8UGFnZWQ8VGFnPj47XG4gIH1cblxuICBzYXZlV29ya2Zsb3dzKHJlcXVlc3RzOiBQYXJ0aWFsPFdvcmtmbG93PltdKTogUHJvbWlzZTxhbnkgfCBFcnJvclJlc3BvbnNlPiB7XG4gICAgY29uc3QgdXJsID0gYFNhdmVXb3JrZmxvd3NgO1xuICAgIC8vIGNvbnNvbGUubG9nKCdTYXZpbmcgd29ya2Zsb3dzJywgcmVxdWVzdHMpO1xuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlLnBvc3QoXG4gICAgICB1cmwsXG4gICAgICByZXF1ZXN0cyxcbiAgICAgIHRoaXMuZW52U3ZjLmVudmlyb25tZW50LldvcmtGbG93QVBJXG4gICAgKTtcbiAgfVxuXG4gIGRlbGV0ZVdvcmtmbG93U3RhZ2VzKHJlcXVlc3RzOiBXb3JrZmxvd1N0YWdlWydDb2RlJ11bXSk6IFByb21pc2U8YW55PiB7XG4gICAgY29uc3QgdXJsID0gYERlbGV0ZVdvcmtmbG93U3RhZ2VgO1xuICAgIC8vIGNvbnNvbGUubG9nKCdTYXZpbmcgd29ya2Zsb3dzJywgcmVxdWVzdHMpO1xuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlLnBvc3QoXG4gICAgICB1cmwsXG4gICAgICByZXF1ZXN0cyxcbiAgICAgIHRoaXMuZW52U3ZjLmVudmlyb25tZW50LldvcmtGbG93QVBJXG4gICAgKTtcbiAgfVxuXG4gIGRlbGV0ZVdvcmtmbG93QWN0aW9ucyhyZXF1ZXN0czogc3RyaW5nW10pOiBQcm9taXNlPGFueT4ge1xuICAgIGNvbnN0IHVybCA9IGBEZWxldGVXb3JrZmxvd0FjdGlvbmA7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2UucG9zdChcbiAgICAgIHVybCxcbiAgICAgIHJlcXVlc3RzLFxuICAgICAgdGhpcy5lbnZTdmMuZW52aXJvbm1lbnQuV29ya0Zsb3dBUElcbiAgICApO1xuICB9XG5cbiAgZGVsZXRlU3dpbUxhbmVzKHJlcXVlc3RzOiBTd2ltTGFuZVsnQ29kZSddW10pOiBQcm9taXNlPGFueT4ge1xuICAgIGNvbnN0IHVybCA9IGBEZWxldGVTd2ltTGFuZWA7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2UucG9zdChcbiAgICAgIHVybCxcbiAgICAgIHJlcXVlc3RzLFxuICAgICAgdGhpcy5lbnZTdmMuZW52aXJvbm1lbnQuV29ya0Zsb3dBUElcbiAgICApO1xuICB9XG5cbiAgc2F2ZUVzY2FsYXRpb25zKHJlcXVlc3RzOiBQYXJ0aWFsPEVzY2FsYXRpb24+W10pOiBQcm9taXNlPEVzY2FsYXRpb25bXT4ge1xuICAgIGNvbnN0IHVybCA9IGBTYXZlRXNjYWxhdGlvbnNgO1xuICAgIC8vIGNvbnNvbGUubG9nKCdTYXZpbmcgd29ya2Zsb3dzJywgcmVxdWVzdHMpO1xuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlLnBvc3QoXG4gICAgICB1cmwsXG4gICAgICByZXF1ZXN0cyxcbiAgICAgIHRoaXMuZW52U3ZjLmVudmlyb25tZW50LldvcmtGbG93QVBJXG4gICAgKTtcbiAgfVxuXG4gIGRlbGV0ZUVzY2FsYXRpb25zKHJlcXVlc3RzOiBFc2NhbGF0aW9uWydDb2RlJ11bXSk6IFByb21pc2U8YW55PiB7XG4gICAgY29uc3QgdXJsID0gYERlbGV0ZUVzY2FsYXRpb25gO1xuICAgIC8vIGNvbnNvbGUubG9nKCdTYXZpbmcgd29ya2Zsb3dzJywgcmVxdWVzdHMpO1xuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlLnBvc3QoXG4gICAgICB1cmwsXG4gICAgICByZXF1ZXN0cyxcbiAgICAgIHRoaXMuZW52U3ZjLmVudmlyb25tZW50LldvcmtGbG93QVBJXG4gICAgKTtcbiAgfVxuXG4gIHNlYXJjaEVzY2FsYXRpb25XaXRoUGFyYW0oXG4gICAgcGFyYW1zOiBQaWNrPEVzY2FsYXRpb24sICdXb3JrZmxvdycgfCAnU3RhZ2UnIHwgJ1R5cGUnPixcbiAgICBza2lwOiBudW1iZXIgPSAwLFxuICAgIGxpbWl0OiBudW1iZXIgPSAxLFxuICAgIHNvcnRPcmRlcjogc3RyaW5nID0gJ0FzYydcbiAgKTogUHJvbWlzZTxQYWdlZDxFc2NhbGF0aW9uPj4ge1xuICAgIGNvbnN0IHVybCA9IGBTZWFyY2hFc2NhbGF0aW9ucy8ke3NraXB9LyR7bGltaXR9YDtcbiAgICBjb25zdCBwYXlsb2FkID0gT2JqZWN0LmVudHJpZXMocGFyYW1zKS5tYXAoKFtrZXksIHZhbHVlXSkgPT4gKHtcbiAgICAgIElzQXV0b0Zyb21EYXRlOiB0cnVlLFxuICAgICAgSXNBdXRvRW5kRGF0ZTogdHJ1ZSxcbiAgICAgIFByb3BlcnR5TmFtZToga2V5LFxuICAgICAgRW50aXR5VmFsdWU6IHZhbHVlLFxuICAgICAgVHlwZTogJ1N0cmluZycsXG4gICAgICBPcGVyYXRvcjogJ0FuZCcsXG4gICAgICBTaWduOiAnRVEnLFxuICAgICAgU29ydDogc29ydE9yZGVyLFxuICAgICAgLy8gRmllbGRzOiBbJ3N0cmluZyddLFxuICAgIH0pKTtcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZS5wb3N0KHVybCwgcGF5bG9hZCkgYXMgUHJvbWlzZTxQYWdlZDxFc2NhbGF0aW9uPj47XG4gIH1cblxuICBnZXRFc2NhbGF0aW9uV2l0aFBhcmFtKFxuICAgIHBhcmFtOiBzdHJpbmcsXG4gICAgc2tpcDogbnVtYmVyID0gMCxcbiAgICBsaW1pdDogbnVtYmVyID0gMSxcbiAgICBzb3J0UGFyYW06IHN0cmluZyA9ICdDcmVhdGVkQXQnLFxuICAgIHNvcnRPcmRlcjogc3RyaW5nID0gJ0FzYydcbiAgKTogUHJvbWlzZTxQYWdlZDxFc2NhbGF0aW9uPj4ge1xuICAgIGNvbnN0IHVybCA9IGBHZXRFc2NhbGF0aW9uc1dpdGhQYXJhbS8ke3BhcmFtfS8ke3NraXB9LyR7bGltaXR9LyR7c29ydFBhcmFtfS8ke3NvcnRPcmRlcn1gO1xuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlLmdldCh1cmwpIGFzIFByb21pc2U8UGFnZWQ8RXNjYWxhdGlvbj4+O1xuICB9XG5cbiAgZ2V0UmVwb3J0U2NoZWR1bGVzKFxuICAgIHNraXA6IG51bWJlciA9IDAsXG4gICAgbGltaXQ6IG51bWJlciA9IDBcbiAgKTogUHJvbWlzZTxQYWdlZDxSZXBvcnRTY2hlZHVsZT4+IHtcbiAgICBjb25zdCB1cmwgPSBgR2V0UmVwb3J0U2NoZWR1bGVzLyR7c2tpcH0vJHtsaW1pdH1gO1xuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlLmdldChcbiAgICAgIHVybCxcbiAgICAgIHRoaXMuZW52U3ZjLmVudmlyb25tZW50LlJlcG9ydGluZ0FQSVxuICAgICkgYXMgUHJvbWlzZTxQYWdlZDxSZXBvcnRTY2hlZHVsZT4+O1xuICB9XG5cbiAgZ2V0T3BlcmF0aW9uQWN0aW9ucyhcbiAgICBza2lwOiBudW1iZXIgPSAwLFxuICAgIGxpbWl0OiBudW1iZXIgPSAwXG4gICk6IFByb21pc2U8UGFnZWQ8T3BlcmF0aW9uQWN0aW9uPj4ge1xuICAgIGNvbnN0IHVybCA9IGBHZXRPcGVyYXRpb25BY3Rpb25gO1xuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlLmdldChcbiAgICAgIHVybCxcbiAgICAgIC8vIHRoaXMuZW52U3ZjLmVudmlyb25tZW50LkdMQVBJXG4gICAgKSBhcyBQcm9taXNlPFBhZ2VkPE9wZXJhdGlvbkFjdGlvbj4+O1xuICB9XG5cbiAgc2F2ZUFjdG9yVGFncyhyZXF1ZXN0czogQWN0b3JUYWdbXSk6IFByb21pc2U8YW55PiB7XG4gICAgY29uc3QgdXJsID0gYFNhdmVBY3RvclRhZ3NgO1xuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlLnBvc3QoXG4gICAgICB1cmwsXG4gICAgICByZXF1ZXN0cyxcbiAgICAgIHRoaXMuZW52U3ZjLmVudmlyb25tZW50LldvcmtGbG93QVBJXG4gICAgKTtcbiAgfVxuXG4gIGdldEZsb3dhYmxlU3RhdHVzZXMoXG4gICAgc2tpcDogbnVtYmVyID0gMCxcbiAgICBsaW1pdDogbnVtYmVyID0gMFxuICApOiBQcm9taXNlPFBhZ2VkPEZsb3dhYmxlU3RhdHVzPj4ge1xuICAgIGNvbnN0IHVybCA9IGBHZXRGbG93YWJsZVN0YXR1cy8ke3NraXB9LyR7bGltaXR9L0NyZWF0ZWRBdC9EZXNjYDtcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZS5nZXQodXJsKSBhcyBQcm9taXNlPFBhZ2VkPEZsb3dhYmxlU3RhdHVzPj47XG4gIH1cblxuICAvLyBIZWxwZXIgdG8gY3JlYXRlIGEgbW9jayB3b3JrZmxvdyAoanVzdCBmb3IgZGVtbylcbiAgcHJpdmF0ZSBjcmVhdGVNb2NrV29ya2Zsb3coY29kZTogc3RyaW5nKTogV29ya2Zsb3cge1xuICAgIC8vIFJldHVybiBhIHNpbXBsZSB3b3JrZmxvdyB3aXRoIG9uZSBsYW5lIGFuZCBvbmUgc3RhZ2VcbiAgICBjb25zdCB3b3JrZmxvdzogV29ya2Zsb3cgPSB7XG4gICAgICBJZDogJ3dvcmtmbG93LTEyMycsXG4gICAgICBDb2RlOiBjb2RlLFxuICAgICAgVGVuYW50SWQ6ICd0ZW5hbnQtMScsXG4gICAgICBpZDogJ3dvcmtmbG93LTEyMycsXG4gICAgICBTZXJ2aWNlTmFtZTogJ3dvcmtmbG93LXNlcnZpY2UnLFxuICAgICAgQ3JlYXRlZEF0OiBuZXcgRGF0ZSgpLFxuICAgICAgVXBkYXRlZEF0OiBuZXcgRGF0ZSgpLFxuICAgICAgRGF0YVN0YXRlOiBPYmplY3RTdGF0ZS5VbmNoYW5nZWQsXG4gICAgICBOYW1lOiAnU2FtcGxlIFdvcmtmbG93JyxcbiAgICAgIERlc2NyaXB0aW9uOiAnQSBzYW1wbGUgd29ya2Zsb3cgbG9hZGVkIGZyb20gQVBJJyxcbiAgICAgIFN0YWdlRW50cnlSdWxlOiAnJyxcbiAgICAgIEFzc2lnbm1lbnRUeXBlOiBUYXNrQXNzaWdubWVudFR5cGUuQXV0b1JvdXRlLFxuICAgICAgU3RhdHVzOiBTdGF0dXMuQWN0aXZlLFxuICAgICAgQWN0aW9uczogW10sXG4gICAgICBMYW5lczogW1xuICAgICAgICB7XG4gICAgICAgICAgSWQ6ICdsYW5lLTAnLFxuICAgICAgICAgIENvZGU6ICdsYW5lLTAnLFxuICAgICAgICAgIFRlbmFudElkOiAndGVuYW50LTEnLFxuICAgICAgICAgIGlkOiAnbGFuZS0wJyxcbiAgICAgICAgICBTZXJ2aWNlTmFtZTogJ3dvcmtmbG93LXNlcnZpY2UnLFxuICAgICAgICAgIENyZWF0ZWRBdDogbmV3IERhdGUoKSxcbiAgICAgICAgICBVcGRhdGVkQXQ6IG5ldyBEYXRlKCksXG4gICAgICAgICAgRGF0YVN0YXRlOiBPYmplY3RTdGF0ZS5VbmNoYW5nZWQsXG4gICAgICAgICAgV29ya2Zsb3c6ICd3b3JrZmxvdy0xMjMnLFxuICAgICAgICAgIFRhZ3M6IFtdLFxuICAgICAgICAgIFBvc2l0aW9uOiAwLFxuICAgICAgICAgIENvb3JkaW5hdGVzOiB7IFg6IDAsIFk6IDAgfSxcbiAgICAgICAgICBTaXplOiB7IFdpZHRoOiAzMDAwLCBIZWlnaHQ6IDI2MyB9LFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIFN0YWdlczogW1xuICAgICAgICB7XG4gICAgICAgICAgSWQ6ICdzdGFnZS0xMjMnLFxuICAgICAgICAgIENvZGU6ICdzdGFnZS0xMjMnLFxuICAgICAgICAgIFRlbmFudElkOiAndGVuYW50LTEnLFxuICAgICAgICAgIGlkOiAnc3RhZ2UtMTIzJyxcbiAgICAgICAgICBTZXJ2aWNlTmFtZTogJ3dvcmtmbG93LXNlcnZpY2UnLFxuICAgICAgICAgIENyZWF0ZWRBdDogbmV3IERhdGUoKSxcbiAgICAgICAgICBVcGRhdGVkQXQ6IG5ldyBEYXRlKCksXG4gICAgICAgICAgRGF0YVN0YXRlOiBPYmplY3RTdGF0ZS5VbmNoYW5nZWQsXG4gICAgICAgICAgV29ya2Zsb3c6ICd3b3JrZmxvdy0xMjMnLFxuICAgICAgICAgIE5hbWU6ICdJbml0aWFsIFN0YWdlJyxcbiAgICAgICAgICBEZXNjcmlwdGlvbjogJ1N0YXJ0aW5nIHBvaW50JyxcbiAgICAgICAgICBEdXJhdGlvbjogMjQsXG4gICAgICAgICAgUGFzc09uUnVsZTogJycsXG4gICAgICAgICAgQWN0b3JSdWxlOiBTdGFnZUFjdG9yUnVsZS5Ob25lLFxuICAgICAgICAgIE1pbk5vT2ZBY3RvcjogMSxcbiAgICAgICAgICBJc1BhcmFsbGVsOiBmYWxzZSxcbiAgICAgICAgICBJc0VudHJ5UG9pbnQ6IHRydWUsXG4gICAgICAgICAgSXNFeGl0UG9pbnQ6IGZhbHNlLFxuICAgICAgICAgIFRhZ3M6IFtdLFxuICAgICAgICAgIEZvcm06ICcnLFxuICAgICAgICAgIEFsbG93TXVsdGlTdWJQcm9jZXNzOiBmYWxzZSxcbiAgICAgICAgICBBc3NpZ25tZW50VHlwZTogVGFza0Fzc2lnbm1lbnRUeXBlLkF1dG9Sb3V0ZSxcbiAgICAgICAgICBTdWJXb3JrRmxvdzogJycsXG4gICAgICAgICAgU3dpbUxhbmU6ICdsYW5lLTAnLFxuICAgICAgICAgIENvb3JkaW5hdGVzOiB7IFg6IDEwMCwgWTogNTAgfSxcbiAgICAgICAgICBJc1N1YlByb2Nlc3M6IGZhbHNlLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9O1xuXG4gICAgcmV0dXJuIHdvcmtmbG93O1xuICB9XG59XG4iXX0=
|