verben-workflow-ui 0.5.70 → 0.5.72
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 +16 -28
- package/esm2022/src/lib/components/workflow-designer/stage-dialog/stage-dialog.component.mjs +6 -3
- package/fesm2022/verben-workflow-ui-src-lib-components-workflow-designer.mjs +20 -29
- package/fesm2022/verben-workflow-ui-src-lib-components-workflow-designer.mjs.map +1 -1
- package/package.json +49 -49
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhZ2UtZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZlcmJlbi13b3JrZmxvdy11aS9zcmMvbGliL2NvbXBvbmVudHMvd29ya2Zsb3ctZGVzaWduZXIvc3RhZ2UtZGlhbG9nL3N0YWdlLWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4td29ya2Zsb3ctdWkvc3JjL2xpYi9jb21wb25lbnRzL3dvcmtmbG93LWRlc2lnbmVyL3N0YWdlLWRpYWxvZy9zdGFnZS1kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxNQUFNLEVBQ04sWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBRVAsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUEwQixVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsY0FBYyxFQUFPLGtCQUFrQixFQUFpQixNQUFNLG1DQUFtQyxDQUFDOzs7Ozs7O0FBVTNHLE1BQU0sT0FBTyxvQkFBb0I7SUFlckI7SUFDQTtJQUNBO0lBQ0E7SUFqQlYsbUNBQW1DO0lBQ25DLE9BQU8sR0FBRyxLQUFLLENBQVUsS0FBSyxDQUFDLENBQUM7SUFDaEMsU0FBUyxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQXlCLEVBQUUsQ0FBQyxDQUFDLENBQUMsOEJBQThCO0lBQzVFLE1BQU0sR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBQzVCLEtBQUssR0FBRyxJQUFJLFlBQVksRUFBMEIsQ0FBQztJQUU3RCxTQUFTLENBQVk7SUFDckIsSUFBSSxHQUFVLEVBQUUsQ0FBQztJQUNqQixVQUFVLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUMzQyxlQUFlLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBRXBELHNCQUFzQixHQUFZLEtBQUssQ0FBQztJQUV4QyxZQUNVLEVBQWUsRUFDZixXQUFnQyxFQUNoQyxXQUFrQyxFQUNsQyxZQUEwQjtRQUgxQixPQUFFLEdBQUYsRUFBRSxDQUFhO1FBQ2YsZ0JBQVcsR0FBWCxXQUFXLENBQXFCO1FBQ2hDLGdCQUFXLEdBQVgsV0FBVyxDQUF1QjtRQUNsQyxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUVsQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDO1lBQzdCLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDO1lBQy9CLFdBQVcsRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUNqQixZQUFZLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDakIsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ2IsVUFBVSxFQUFFLENBQUMsRUFBRSxDQUFDO1lBQ2hCLFNBQVMsRUFBRSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUM7WUFDaEMsY0FBYyxFQUFFLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDO1lBQzlDLFlBQVksRUFBRSxDQUFDLEtBQUssQ0FBQztZQUNyQixXQUFXLEVBQUUsQ0FBQyxLQUFLLENBQUM7WUFDcEIsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDO1NBQ1gsQ0FBQyxDQUFDO1FBRUgsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNWLHdDQUF3QztZQUN4QyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDbkMsSUFBSSxTQUFTLEVBQUUsQ0FBQztnQkFDZCxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQztvQkFDeEIsSUFBSSxFQUFFLFNBQVMsQ0FBQyxJQUFJLElBQUksRUFBRTtvQkFDMUIsV0FBVyxFQUFFLFNBQVMsQ0FBQyxXQUFXLElBQUksRUFBRTtvQkFDeEMsWUFBWSxFQUFFLFNBQVMsQ0FBQyxZQUFZLElBQUksQ0FBQztvQkFDekMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxRQUFRLElBQUksQ0FBQztvQkFDakMsVUFBVSxFQUFFLFNBQVMsQ0FBQyxVQUFVLElBQUksRUFBRTtvQkFDdEMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxTQUFTLElBQUksY0FBYyxDQUFDLElBQUk7b0JBQ3JELGNBQWMsRUFDWixTQUFTLENBQUMsY0FBYyxJQUFJLGtCQUFrQixDQUFDLFNBQVM7b0JBQzFELFlBQVksRUFBRSxTQUFTLENBQUMsWUFBWSxJQUFJLEtBQUs7b0JBQzdDLFdBQVcsRUFBRSxTQUFTLENBQUMsV0FBVyxJQUFJLEtBQUs7b0JBQzNDLElBQUksRUFBRSxTQUFTLENBQUMsSUFBSSxJQUFJLEVBQUU7aUJBQzNCLENBQUMsQ0FBQztZQUNMLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxRQUFRO1FBQ04sWUFBWTtRQUNaLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUVoQiw4Q0FBOEM7UUFDOUMsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQixJQUFJLENBQUM7SUFFdkM7O09BRUc7SUFDSyxRQUFRO1FBQ2QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUN2QyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDMUIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7O09BRUc7SUFDSyxxQkFBcUI7UUFDM0IsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQztZQUNyQixPQUFPLENBQUMsR0FBRyxDQUFDLG9DQUFvQyxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO1lBQ3BFLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDO2dCQUN4QixJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLElBQUksSUFBSSxFQUFFO2dCQUNqQyxXQUFXLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLFdBQVcsSUFBSSxFQUFFO2dCQUMvQyxZQUFZLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLFlBQVksSUFBSSxDQUFDO2dCQUNoRCxRQUFRLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsSUFBSSxDQUFDO2dCQUN4QyxVQUFVLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLFVBQVUsSUFBSSxFQUFFO2dCQUM3QyxTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLFNBQVMsSUFBSSxjQUFjLENBQUMsSUFBSTtnQkFDNUQsY0FBYyxFQUNaLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxjQUFjLElBQUksa0JBQWtCLENBQUMsU0FBUztnQkFDakUsWUFBWSxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxZQUFZLElBQUksS0FBSztnQkFDcEQsV0FBVyxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxXQUFXLElBQUksS0FBSztnQkFDbEQsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxJQUFJLElBQUksRUFBRTthQUNsQyxDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQztJQUVPLHdCQUF3QjtRQUM5QixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFFbkMsSUFBSSxTQUFTLElBQUksU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2hDLDBEQUEwRDtZQUMxRCxJQUFJLENBQUMsc0JBQXNCLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxzQkFBc0IsQ0FDbkUsU0FBUyxDQUFDLElBQUksQ0FDZixDQUFDO1lBRUYseURBQXlEO1lBQ3pELElBQUksSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7Z0JBQ2hDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDO1lBQy9DLENBQUM7aUJBQU0sQ0FBQztnQkFDTixJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUM5QyxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxhQUFhLENBQUMsS0FBVTtRQUN0QixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxTQUFTO1FBQ1AsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3pCLE1BQU0sU0FBUyxHQUEyQjtnQkFDeEMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUs7YUFDeEIsQ0FBQztZQUVGLDBCQUEwQjtZQUMxQixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBRXZCLDhDQUE4QztZQUM5QyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM3QixDQUFDO0lBQ0gsQ0FBQztJQUVELFlBQVksQ0FBQyxLQUFVO1FBQ3JCLE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELFdBQVc7UUFDVCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDbkMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN2QixJQUFJLFNBQVMsRUFBRSxDQUFDO1lBQ2QsTUFBTSxTQUFTLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQztZQUNqQyxJQUFJLFNBQVMsRUFBRSxDQUFDO2dCQUNkLElBQUksQ0FBQyxXQUFXO3FCQUNiLG9CQUFvQixDQUFDLENBQUMsU0FBUyxDQUFDLENBQUM7cUJBQ2pDLElBQUksQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO29CQUNqQixPQUFPLENBQUMsR0FBRyxDQUFDLDZCQUE2QixFQUFFLFFBQVEsQ0FBQyxDQUFDO29CQUNyRCw0Q0FBNEM7b0JBQzVDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDO29CQUN2RCxJQUFJLE9BQU8sRUFBRSxDQUFDO3dCQUNaLDJDQUEyQzt3QkFDM0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztvQkFDckIsQ0FBQzt5QkFBTSxDQUFDO3dCQUNOLE9BQU8sQ0FBQyxLQUFLLENBQUMseUJBQXlCLEVBQUUsU0FBUyxDQUFDLENBQUM7b0JBQ3RELENBQUM7Z0JBQ0gsQ0FBQyxDQUFDO3FCQUNELEtBQUssQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO29CQUNmLE9BQU8sQ0FBQyxLQUFLLENBQUMsdUJBQXVCLEVBQUUsS0FBSyxDQUFDLENBQUM7Z0JBQ2hELENBQUMsQ0FBQyxDQUFDO1lBQ1AsQ0FBQztpQkFBTSxJQUFJLFNBQVMsQ0FBQyxFQUFFLEVBQUUsQ0FBQztnQkFDeEIsNENBQTRDO2dCQUM1QyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQzFELElBQUksT0FBTyxFQUFFLENBQUM7b0JBQ1osMkNBQTJDO29CQUMzQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUNyQixDQUFDO3FCQUFNLENBQUM7b0JBQ04sT0FBTyxDQUFDLEtBQUssQ0FBQyx5QkFBeUIsRUFBRSxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQzNELENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7d0dBeEtVLG9CQUFvQjs0RkFBcEIsb0JBQW9CLHlZQ3BCakMsa3RMQWdOQTs7NEZENUxhLG9CQUFvQjtrQkFMaEMsU0FBUzsrQkFDRSxrQkFBa0I7aUxBUWxCLE1BQU07c0JBQWYsTUFBTTtnQkFDRyxLQUFLO3NCQUFkLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIGVmZmVjdCxcbiAgRXZlbnRFbWl0dGVyLFxuICBpbnB1dCxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXNcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU3RhZ2VBY3RvclJ1bGUsIFRhZywgVGFza0Fzc2lnbm1lbnRUeXBlLCBXb3JrZmxvd1N0YWdlIH0gZnJvbSAndmVyYmVuLXdvcmtmbG93LXVpL3NyYy9saWIvbW9kZWxzJztcbmltcG9ydCB7IE5vZGVNYW5hZ2VtZW50U2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL25vZGUtbWFuYWdlbWVudC5zZXJ2aWNlJztcbmltcG9ydCB7IFBvcHVwU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3BvcHVwLnNlcnZpY2UnO1xuaW1wb3J0IHsgV29ya2Zsb3dEYXRhU2VydmljZSB9IGZyb20gJy4uL3dvcmtmbG93LWRhdGEuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1zdGFnZS1kaWFsb2cnLFxuICB0ZW1wbGF0ZVVybDogJy4vc3RhZ2UtZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc3RhZ2UtZGlhbG9nLmNvbXBvbmVudC5jc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3RhZ2VEaWFsb2dDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAvLyBVc2UgQW5ndWxhcidzIHNpZ25hbC1iYXNlZCBpbnB1dFxuICB2aXNpYmxlID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICBzdGFnZURhdGEgPSBpbnB1dC5yZXF1aXJlZDxQYXJ0aWFsPFdvcmtmbG93U3RhZ2U+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
|
|
@@ -1879,6 +1879,7 @@ class StageDialogComponent {
|
|
|
1879
1879
|
PassOnRule: [''],
|
|
1880
1880
|
ActorRule: [StageActorRule.None],
|
|
1881
1881
|
AssignmentType: [TaskAssignmentType.AutoRoute],
|
|
1882
|
+
IsEntryPoint: [false],
|
|
1882
1883
|
IsExitPoint: [false],
|
|
1883
1884
|
Tags: [[]],
|
|
1884
1885
|
});
|
|
@@ -1894,6 +1895,7 @@ class StageDialogComponent {
|
|
|
1894
1895
|
PassOnRule: stageData.PassOnRule || '',
|
|
1895
1896
|
ActorRule: stageData.ActorRule || StageActorRule.None,
|
|
1896
1897
|
AssignmentType: stageData.AssignmentType || TaskAssignmentType.AutoRoute,
|
|
1898
|
+
IsEntryPoint: stageData.IsEntryPoint || false,
|
|
1897
1899
|
IsExitPoint: stageData.IsExitPoint || false,
|
|
1898
1900
|
Tags: stageData.Tags || [],
|
|
1899
1901
|
});
|
|
@@ -1929,6 +1931,7 @@ class StageDialogComponent {
|
|
|
1929
1931
|
PassOnRule: this.stageData().PassOnRule || '',
|
|
1930
1932
|
ActorRule: this.stageData().ActorRule || StageActorRule.None,
|
|
1931
1933
|
AssignmentType: this.stageData().AssignmentType || TaskAssignmentType.AutoRoute,
|
|
1934
|
+
IsEntryPoint: this.stageData().IsEntryPoint || false,
|
|
1932
1935
|
IsExitPoint: this.stageData().IsExitPoint || false,
|
|
1933
1936
|
Tags: this.stageData().Tags || [],
|
|
1934
1937
|
});
|
|
@@ -2003,11 +2006,11 @@ class StageDialogComponent {
|
|
|
2003
2006
|
}
|
|
2004
2007
|
}
|
|
2005
2008
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StageDialogComponent, deps: [{ token: i1$1.FormBuilder }, { token: WorkflowDataService }, { token: NodeManagementService }, { token: PopupService }], target: i0.ɵɵFactoryTarget.Component });
|
|
2006
|
-
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$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.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"] }] });
|
|
2009
|
+
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$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.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"] }] });
|
|
2007
2010
|
}
|
|
2008
2011
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StageDialogComponent, decorators: [{
|
|
2009
2012
|
type: Component,
|
|
2010
|
-
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" }]
|
|
2013
|
+
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" }]
|
|
2011
2014
|
}], ctorParameters: () => [{ type: i1$1.FormBuilder }, { type: WorkflowDataService }, { type: NodeManagementService }, { type: PopupService }], propDecorators: { closed: [{
|
|
2012
2015
|
type: Output
|
|
2013
2016
|
}], saved: [{
|
|
@@ -3030,7 +3033,12 @@ class DesignerCanvasComponent {
|
|
|
3030
3033
|
this.hideConnectionPopup();
|
|
3031
3034
|
return;
|
|
3032
3035
|
}
|
|
3033
|
-
const { endX, endY
|
|
3036
|
+
const { endX, endY } = pathData;
|
|
3037
|
+
// Determine the target swimlane from the drop position (NOT the source
|
|
3038
|
+
// swimlane). `addNode` expects an absolute canvas Y plus the target
|
|
3039
|
+
// swimlane index, and performs the swimlane-relative conversion itself.
|
|
3040
|
+
let targetSwimlaneIndex = Math.floor(endY / this.swimlaneHeight);
|
|
3041
|
+
targetSwimlaneIndex = Math.max(0, Math.min(targetSwimlaneIndex, this.state.swimlanes.length - 1));
|
|
3034
3042
|
// Get source node info
|
|
3035
3043
|
const sourcePoint = this.state.draggingConnectionData.sourcePoint;
|
|
3036
3044
|
if (!sourcePoint) {
|
|
@@ -3047,12 +3055,10 @@ class DesignerCanvasComponent {
|
|
|
3047
3055
|
// Store information for later stage creation
|
|
3048
3056
|
this.pendingDecisionConnection = {
|
|
3049
3057
|
decisionNodeId: sourceNodeInfo.node.id,
|
|
3050
|
-
swimlaneIndex:
|
|
3058
|
+
swimlaneIndex: targetSwimlaneIndex,
|
|
3051
3059
|
x: endX,
|
|
3052
3060
|
y: endY,
|
|
3053
3061
|
};
|
|
3054
|
-
// Calculate popup position - position it near the decision node
|
|
3055
|
-
const swimlaneOffsetY = sourceSwimlaneIndex * 263;
|
|
3056
3062
|
// Center the popup over the connection endpoint
|
|
3057
3063
|
this.decisionConditionPopupX = endX;
|
|
3058
3064
|
this.decisionConditionPopupY = endY - 150; // Position above the endpoint
|
|
@@ -3063,26 +3069,11 @@ class DesignerCanvasComponent {
|
|
|
3063
3069
|
this.hideConnectionPopup();
|
|
3064
3070
|
return;
|
|
3065
3071
|
}
|
|
3066
|
-
const swimlaneIndex = Math.floor(endY / this.swimlaneHeight);
|
|
3067
|
-
const swimlaneTop = swimlaneIndex * this.swimlaneHeight;
|
|
3068
|
-
// Calculate swimlane-relative position
|
|
3069
|
-
const swimlaneOffsetY = sourceSwimlaneIndex * 263;
|
|
3070
|
-
let relativeY = endY - swimlaneOffsetY - 50; // Add half node height for better alignment
|
|
3071
|
-
const swimlaneBottom = swimlaneTop + 263;
|
|
3072
|
-
// Clamp nodeY so node stays within swimlane
|
|
3073
|
-
console.log(endY, swimlaneIndex, swimlaneOffsetY, swimlaneBottom);
|
|
3074
|
-
if (endY - 50 < swimlaneTop) {
|
|
3075
|
-
console.log('Less');
|
|
3076
|
-
relativeY = swimlaneTop; // Node would overflow above, so align to top
|
|
3077
|
-
}
|
|
3078
|
-
else if (endY + 50 > swimlaneBottom) {
|
|
3079
|
-
console.log('More');
|
|
3080
|
-
relativeY = swimlaneBottom - 100; // Node would overflow below, so align to bottom
|
|
3081
|
-
}
|
|
3082
3072
|
// Handle preconditions based on node type
|
|
3083
3073
|
if (nodeType === 'stage') {
|
|
3084
|
-
// Create the stage
|
|
3085
|
-
|
|
3074
|
+
// Create the stage in the target swimlane. `addNode` converts the
|
|
3075
|
+
// absolute endY to a swimlane-relative position internally.
|
|
3076
|
+
const newNode = this.state.addNode(targetSwimlaneIndex, 'stage', endX, endY, { Name: 'New Stage' } // Add default properties
|
|
3086
3077
|
);
|
|
3087
3078
|
if (newNode &&
|
|
3088
3079
|
newNode.connectionPoints &&
|
|
@@ -3098,7 +3089,7 @@ class DesignerCanvasComponent {
|
|
|
3098
3089
|
const targetPoint = newNode.connectionPoints.find((p) => p.type === opposingType);
|
|
3099
3090
|
if (targetPoint) {
|
|
3100
3091
|
// Create the connection
|
|
3101
|
-
const connection = this.state.createConnection(newNode.id, targetPoint.id,
|
|
3092
|
+
const connection = this.state.createConnection(newNode.id, targetPoint.id, targetSwimlaneIndex);
|
|
3102
3093
|
if (connection) {
|
|
3103
3094
|
this.onConnectionCreated(connection);
|
|
3104
3095
|
}
|
|
@@ -3108,14 +3099,14 @@ class DesignerCanvasComponent {
|
|
|
3108
3099
|
return;
|
|
3109
3100
|
}
|
|
3110
3101
|
else if (nodeType === 'subflow') {
|
|
3111
|
-
console.log('Creating subflow from connection at:', endX, endY, 'swimlane:',
|
|
3102
|
+
console.log('Creating subflow from connection at:', endX, endY, 'swimlane:', targetSwimlaneIndex);
|
|
3112
3103
|
// Show workflow selection popup and store connection data for later use
|
|
3113
|
-
this.showSubflowSelectionPopup(endX, endY,
|
|
3104
|
+
this.showSubflowSelectionPopup(endX, endY, targetSwimlaneIndex);
|
|
3114
3105
|
this.hideConnectionPopup();
|
|
3115
3106
|
return;
|
|
3116
3107
|
}
|
|
3117
3108
|
// For other nodes Create the new node at the end position of the connection
|
|
3118
|
-
const newNode = this.state.addNode(
|
|
3109
|
+
const newNode = this.state.addNode(targetSwimlaneIndex, nodeType, endX, endY);
|
|
3119
3110
|
if (newNode &&
|
|
3120
3111
|
newNode.connectionPoints &&
|
|
3121
3112
|
newNode.connectionPoints.length > 0) {
|
|
@@ -3134,7 +3125,7 @@ class DesignerCanvasComponent {
|
|
|
3134
3125
|
targetPoint = newNode.connectionPoints.find((p) => p.type === opposingType);
|
|
3135
3126
|
if (targetPoint) {
|
|
3136
3127
|
// Create the connection
|
|
3137
|
-
const connection = this.state.createConnection(newNode.id, targetPoint.id,
|
|
3128
|
+
const connection = this.state.createConnection(newNode.id, targetPoint.id, targetSwimlaneIndex);
|
|
3138
3129
|
if (connection) {
|
|
3139
3130
|
this.onConnectionCreated(connection);
|
|
3140
3131
|
}
|