verben-workflow-ui 0.5.47 → 0.5.49

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.
@@ -4,12 +4,14 @@ import { ObjectState, TaskNotificationType } from 'verben-workflow-ui/src/lib/mo
4
4
  import * as i0 from "@angular/core";
5
5
  import * as i1 from "@angular/forms";
6
6
  import * as i2 from "../workflow-data.service";
7
- import * as i3 from "@angular/common";
8
- import * as i4 from "verben-ng-ui";
9
- import * as i5 from "verben-reporting-ui";
7
+ import * as i3 from "verben-workflow-ui/src/lib/services";
8
+ import * as i4 from "@angular/common";
9
+ import * as i5 from "verben-ng-ui";
10
+ import * as i6 from "verben-reporting-ui";
10
11
  export class EscalationDialogComponent {
11
12
  fb;
12
13
  dataService;
14
+ utilService;
13
15
  visible = false;
14
16
  workflowCode = input.required();
15
17
  stageCode = input.required();
@@ -55,9 +57,10 @@ export class EscalationDialogComponent {
55
57
  ],
56
58
  };
57
59
  // IsTaskDataSource: WritableSignal<boolean[]> = signal([]);
58
- constructor(fb, dataService) {
60
+ constructor(fb, dataService, utilService) {
59
61
  this.fb = fb;
60
62
  this.dataService = dataService;
63
+ this.utilService = utilService;
61
64
  effect(() => {
62
65
  const stageCode = this.stageCode();
63
66
  const workflowCode = this.workflowCode();
@@ -72,9 +75,9 @@ export class EscalationDialogComponent {
72
75
  const escalation = this.escalation();
73
76
  const reportSchedules = this.reportSchedules();
74
77
  if (escalation && reportSchedules) {
75
- this.selectedMessages = escalation.Messages.map((code) => {
76
- const found = reportSchedules.find((rs) => rs.Code === code);
77
- return found ? { ...found, IsTaskDataSource: true } : null;
78
+ this.selectedMessages = escalation.FullMessages.map(({ Message, IsTaskDataSource, IsMessageId }) => {
79
+ const found = reportSchedules.find((rs) => rs.Code === Message);
80
+ return found ? { ...found, IsTaskDataSource, IsMessageId } : null;
78
81
  });
79
82
  // this.selectedOperationAction.next(escalation.OperationAction ?? null);
80
83
  // console.log("SETTING OP", this.selectedOperationAction);
@@ -106,7 +109,7 @@ export class EscalationDialogComponent {
106
109
  console.log('Selected message:', reportSchedule, 'at index:', index);
107
110
  this.selectedMessages = this.selectedMessages.map((msg, i) => {
108
111
  if (i === index) {
109
- return { ...reportSchedule, IsTaskDataSource: true };
112
+ return { ...reportSchedule, IsTaskDataSource: false, IsMessageId: true };
110
113
  }
111
114
  return msg;
112
115
  });
@@ -128,7 +131,7 @@ export class EscalationDialogComponent {
128
131
  SenderConfig: msg.MessageConfig,
129
132
  Medium: msg.Medium,
130
133
  NotificationType: TaskNotificationType.Escalation,
131
- IsMessageId: false,
134
+ IsMessageId: msg.IsMessageId,
132
135
  IsTaskDataSource: msg.IsTaskDataSource,
133
136
  MessageDataSource: !msg.IsTaskDataSource ? msg.ReportDataSource : '',
134
137
  DataState: ObjectState.New,
@@ -159,10 +162,25 @@ export class EscalationDialogComponent {
159
162
  Messages: taskNotifications.map(({ Code }) => Code),
160
163
  FullMessages: taskNotifications,
161
164
  };
162
- console.log(data);
163
- await this.dataService.saveEscalations([data]);
165
+ console.log("Saving escalation data:", data);
166
+ this.dataService.saveEscalations([data]).then((data) => {
167
+ console.log("Escalation saved:", data);
168
+ this.escalation.set(data?.[0] ?? null);
169
+ this.utilService.showSuccess('Escalation saved successfully');
170
+ this.onDialogClose(null);
171
+ });
164
172
  // }
165
173
  }
174
+ deleteEscalation() {
175
+ const escalation = this.escalation();
176
+ if (escalation) {
177
+ this.dataService.deleteEscalations([escalation.Code]).then((data) => {
178
+ console.log("Escalation deleted:", data);
179
+ this.escalation.set(null);
180
+ this.onDialogClose(null);
181
+ });
182
+ }
183
+ }
166
184
  loadEscalation(stageCode) {
167
185
  this.dataService.getEscalationWithParam(stageCode).then((data) => {
168
186
  this.escalation.set(data.Result[0] ?? null);
@@ -177,6 +195,7 @@ export class EscalationDialogComponent {
177
195
  })
178
196
  .then((data) => {
179
197
  this.escalation.set(data.Result[0] ?? null);
198
+ console.log("Escalation loaded:", this.escalation());
180
199
  // this.selectedOperationAction.next(data.Result[0]?.OperationAction ?? null);
181
200
  });
182
201
  }
@@ -192,6 +211,8 @@ export class EscalationDialogComponent {
192
211
  // }
193
212
  onDialogClose(eventData) {
194
213
  console.log('Dialog closed, received data:', eventData);
214
+ this.escalation.set(null);
215
+ this.selectedMessages = [];
195
216
  this.closed.emit();
196
217
  }
197
218
  onDialogOpen(eventData) {
@@ -201,17 +222,17 @@ export class EscalationDialogComponent {
201
222
  const escalation = this.escalation();
202
223
  return escalation !== null && escalation.DataState !== 'New';
203
224
  }
204
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EscalationDialogComponent, deps: [{ token: i1.FormBuilder }, { token: i2.WorkflowDataService }], target: i0.ɵɵFactoryTarget.Component });
205
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: EscalationDialogComponent, selector: "lib-escalation-dialog", inputs: { visible: { classPropertyName: "visible", publicName: "visible", isSignal: false, isRequired: false, transformFunction: null }, workflowCode: { classPropertyName: "workflowCode", publicName: "workflowCode", isSignal: true, isRequired: true, transformFunction: null }, stageCode: { classPropertyName: "stageCode", publicName: "stageCode", isSignal: true, isRequired: true, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { closed: "closed", created: "created" }, ngImport: i0, template: "<verben-dialogue\n [showCloseIcon]=\"true\"\n [dismissOutsideClick]=\"true\"\n [closeOnEscape]=\"true\"\n [size]=\"'medium'\"\n [mode]=\"'drawer'\"\n [disableFooter]=\"false\"\n [isVisible]=\"visible\"\n [headerTemplate]=\"headerTemplate\"\n [bodyTemplate]=\"bodyTemplate\"\n [footerTemplate]=\"footerTemplate\"\n (openModal)=\"onDialogOpen($event)\"\n (closeModal)=\"onDialogClose($event)\"\n>\n</verben-dialogue>\n\n<ng-template #headerTemplate>\n <div\n class=\"flex items-center justify-between p-3 text-xs border-b-4 border-[#FFE681]\"\n >\n <button class=\"mr-4\" type=\"button\" (click)=\"onDialogClose($event)\">\n <span\n class=\"block w-2.5 h-2.5 border-t border-l border-[#3E3E3E]/70 transform -rotate-45\"\n ></span>\n </button>\n </div>\n</ng-template>\n\n<ng-template #bodyTemplate>\n <div>\n <div class=\"mb-4 space-y-4\">\n <div class=\"space-y-1\">\n <label\n for=\"operation-action\"\n class=\"text-sm font-semibold text-[#3E3E3E]\"\n >\n Operation Action\n </label>\n <!-- <verben-drop-down\n id=\"operation-action\"\n styleClass=\"w-full\"\n width=\"100%\"\n [multiselect]=\"false\"\n placeholder=\"Select Operation Action\"\n [options]=\"operationActions()\"\n optionLabel=\"Name\"\n optionValue=\"Code\"\n [ngModel]=\"selectedOperationAction | async\"\n (ngModelChange)=\"selectedOperationAction.next($event)\"\n class=\"form-control\"\n ></verben-drop-down> -->\n </div>\n\n <div *ngFor=\"let message of selectedMessages; let i = index\">\n <div class=\"space-y-1\">\n <label\n [for]=\"message + '-' + i\"\n class=\"text-sm font-semibold text-[#3E3E3E]\"\n >\n Message {{ i + 1 }}\n </label>\n <verben-drop-down\n [id]=\"message + '-' + i\"\n styleClass=\"w-full\"\n width=\"100%\"\n [multiselect]=\"false\"\n placeholder=\"Select Message\"\n [options]=\"reportSchedules()\"\n optionLabel=\"Name\"\n [ngModel]=\"message\"\n (ngModelChange)=\"onMessageSelected($event, i)\"\n class=\"form-control\"\n ></verben-drop-down>\n </div>\n\n @if (message) {\n <div class=\"flex items-center gap-4\">\n <label\n [for]=\"'is-' + message + '-' + i + 'task-data-source'\"\n class=\"text-sm font-semibold text-[#3E3E3E]\"\n >\n Is Task Data Source?\n </label>\n <verbena-switch\n [id]=\"'is-' + message + '-' + i + 'task-data-source'\"\n onText=\"Yes\"\n offText=\"No\"\n [onColor]=\"'#1A237E'\"\n [(ngModel)]=\"message.IsTaskDataSource\"\n ></verbena-switch>\n </div>\n }\n\n <div\n class=\"border border-primary -m-2 rounded-lg flex flex-col gap-3\"\n *ngIf=\"message\"\n >\n <div class=\"space-y-3 border-b border-primary px-2 py-3\">\n <verbena-input\n name=\"Subject\"\n [(ngModel)]=\"message.Subject\"\n [readOnly]=\"true\"\n />\n <verbena-input\n name=\"Recipients\"\n [(ngModel)]=\"message.Recipients\"\n [readOnly]=\"true\"\n />\n </div>\n <lib-editor\n [editorConfig]=\"editorConfig\"\n [editorMode]=\"editorMode\"\n [(ngModel)]=\"message.PlainMessage\"\n ></lib-editor>\n </div>\n </div>\n </div>\n </div>\n</ng-template>\n\n<ng-template #footerTemplate>\n <div class=\"flex justify-between items-center gap-8 w-full\">\n <verbena-button\n style=\"cursor: pointer\"\n type=\"button\"\n text=\"Add Message\"\n bgColor=\"#FFE681\"\n textColor=\"#404040\"\n borderRadius=\"8px\"\n pd=\"10px 20px\"\n height=\"39px\"\n fontWeight=\"600\"\n fontSize=\"12px\"\n svg=\"add\"\n [svgHeight]=\"14\"\n [svgWidth]=\"14\"\n [svgSize]=\"'sm'\"\n (click)=\"addMessage()\"\n ></verbena-button>\n\n <div class=\"flex gap-2 items-center\">\n <verbena-button\n style=\"cursor: pointer\"\n type=\"button\"\n text=\"Delete\"\n bgColor=\"#FFE681\"\n textColor=\"#404040\"\n borderRadius=\"8px\"\n pd=\"10px 20px\"\n width=\"110px\"\n height=\"39px\"\n fontWeight=\"600\"\n fontSize=\"12px\"\n svg=\"delete\"\n [svgHeight]=\"14\"\n [svgWidth]=\"14\"\n [svgSize]=\"'sm'\"\n (click)=\"onDialogClose($event)\"\n ></verbena-button>\n\n <verbena-button\n style=\"cursor: pointer\"\n type=\"button\"\n text=\"Send\"\n bgColor=\"#FFE681\"\n textColor=\"#404040\"\n borderRadius=\"8px\"\n pd=\"10px 20px\"\n width=\"160px\"\n height=\"39px\"\n fontWeight=\"600\"\n fontSize=\"12px\"\n svg=\"send\"\n [svgHeight]=\"14\"\n [svgWidth]=\"14\"\n [svgSize]=\"'sm'\"\n (click)=\"saveMessages()\"\n ></verbena-button>\n </div>\n </div>\n</ng-template>\n", styles: ["::ng-deep .modal-footer{display:flex;justify-content:space-between!important}::ng-deep button,button{cursor:pointer}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.VerbenDialogueComponent, selector: "verben-dialogue", inputs: ["dialogueWidth", "headerTemplate", "bodyTemplate", "footerTemplate", "showCloseIcon", "dismissOutsideClick", "closeOnEscape", "isVisible", "size", "backdropColor", "customClass", "disableFooter", "margin", "padding", "borderRadius", "dialogueBgColor", "width", "closeIconClass", "boxShadow", "enableTransition", "modalData", "mode", "position", "drawerWidth"], outputs: ["openModal", "closeModal"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.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: i4.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.EditorComponent, selector: "lib-editor", inputs: ["themeColor", "editorMode", "editorConfig", "content"] }, { kind: "component", type: i4.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: i4.VerbenaSwitchComponent, selector: "verbena-switch", inputs: ["label", "checked", "disabled", "offColor", "onColor", "onText", "offText", "width", "height", "customStyles"], outputs: ["change"] }] });
225
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EscalationDialogComponent, deps: [{ token: i1.FormBuilder }, { token: i2.WorkflowDataService }, { token: i3.UtilService }], target: i0.ɵɵFactoryTarget.Component });
226
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: EscalationDialogComponent, selector: "lib-escalation-dialog", inputs: { visible: { classPropertyName: "visible", publicName: "visible", isSignal: false, isRequired: false, transformFunction: null }, workflowCode: { classPropertyName: "workflowCode", publicName: "workflowCode", isSignal: true, isRequired: true, transformFunction: null }, stageCode: { classPropertyName: "stageCode", publicName: "stageCode", isSignal: true, isRequired: true, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { closed: "closed", created: "created" }, ngImport: i0, template: "<verben-dialogue [showCloseIcon]=\"true\" [dismissOutsideClick]=\"true\" [closeOnEscape]=\"true\" [size]=\"'medium'\"\n [mode]=\"'drawer'\" [disableFooter]=\"false\" [isVisible]=\"visible\" [headerTemplate]=\"headerTemplate\"\n [bodyTemplate]=\"bodyTemplate\" [footerTemplate]=\"footerTemplate\" (openModal)=\"onDialogOpen($event)\"\n (closeModal)=\"onDialogClose($event)\">\n</verben-dialogue>\n\n<ng-template #headerTemplate>\n <div class=\"flex items-center justify-between p-3 text-xs border-b-4 border-[#FFE681]\">\n <button class=\"mr-4\" type=\"button\" (click)=\"onDialogClose($event)\">\n <span class=\"block w-2.5 h-2.5 border-t border-l border-[#3E3E3E]/70 transform -rotate-45\"></span>\n </button>\n </div>\n</ng-template>\n\n<ng-template #bodyTemplate>\n <div>\n <div class=\"mb-4 space-y-4\">\n <!-- <div class=\"space-y-1\">\n <label for=\"operation-action\" class=\"text-sm font-semibold text-[#3E3E3E]\">\n Escalation\n </label>\n <verben-drop-down\n id=\"operation-action\"\n styleClass=\"w-full\"\n width=\"100%\"\n [multiselect]=\"false\"\n placeholder=\"Select Operation Action\"\n [options]=\"operationActions()\"\n optionLabel=\"Name\"\n optionValue=\"Code\"\n [ngModel]=\"selectedOperationAction | async\"\n (ngModelChange)=\"selectedOperationAction.next($event)\"\n class=\"form-control\"\n ></verben-drop-down>\n </div> -->\n\n <div class=\"space-y-4\" *ngFor=\"let message of selectedMessages; let i = index\">\n <div class=\"space-y-1\">\n <label [for]=\"message + '-' + i\" class=\"text-sm font-semibold text-[#3E3E3E]\">\n Message {{ i + 1 }}\n </label>\n <verben-drop-down [id]=\"message + '-' + i\" selectKey=\"Code\" styleClass=\"w-full\" width=\"100%\"\n [multiselect]=\"false\" placeholder=\"Select Message\" [options]=\"reportSchedules()\" optionLabel=\"Name\"\n [ngModel]=\"message\" (ngModelChange)=\"onMessageSelected($event, i)\" class=\"form-control\"></verben-drop-down>\n </div>\n\n @if (message) {\n <div class=\"flex items-center gap-4\">\n <label [for]=\"'is-' + message + '-' + i + 'task-data-source'\" class=\"text-sm font-semibold text-[#3E3E3E]\">\n Is Task Data Source?\n </label>\n <verbena-switch [id]=\"'is-' + message + '-' + i + 'task-data-source'\" onText=\"Yes\" offText=\"No\"\n [onColor]=\"'#1A237E'\" [(ngModel)]=\"message.IsTaskDataSource\"></verbena-switch>\n </div>\n\n <div class=\"flex items-center gap-4\">\n <label [for]=\"'is-' + message + '-' + i + 'is-message-id'\" class=\"text-sm font-semibold text-[#3E3E3E]\">\n Is Message ID?\n </label>\n <verbena-switch [id]=\"'is-' + message + '-' + i + 'is-message-id'\" onText=\"Yes\" offText=\"No\"\n [onColor]=\"'#1A237E'\" [(ngModel)]=\"message.IsMessageId\"></verbena-switch>\n </div>\n }\n\n <div class=\"border border-primary -m-2 rounded-lg flex flex-col gap-3\" *ngIf=\"message\">\n <div class=\"space-y-3 border-b border-primary px-2 py-3\">\n <verbena-input name=\"Subject\" [(ngModel)]=\"message.Subject\" [readOnly]=\"true\" />\n <verbena-input name=\"Recipients\" [(ngModel)]=\"message.Recipients\" [readOnly]=\"true\" />\n </div>\n <lib-editor [editorConfig]=\"editorConfig\" [editorMode]=\"editorMode\"\n [(ngModel)]=\"message.PlainMessage\"></lib-editor>\n </div>\n </div>\n </div>\n </div>\n</ng-template>\n\n<ng-template #footerTemplate>\n <div class=\"flex justify-between items-center gap-8 w-full\">\n <verbena-button style=\"cursor: pointer\" type=\"button\" text=\"Add Message\" bgColor=\"#FFE681\" textColor=\"#404040\"\n borderRadius=\"8px\" pd=\"10px 20px\" height=\"39px\" fontWeight=\"600\" fontSize=\"12px\" svg=\"add\" [svgHeight]=\"14\"\n [svgWidth]=\"14\" [svgSize]=\"'sm'\" (click)=\"addMessage()\"></verbena-button>\n\n <div class=\"flex gap-2 items-center\">\n <verbena-button style=\"cursor: pointer\" type=\"button\" text=\"Delete\" bgColor=\"#FFE681\" textColor=\"#404040\"\n borderRadius=\"8px\" pd=\"10px 20px\" width=\"110px\" height=\"39px\" fontWeight=\"600\" fontSize=\"12px\" svg=\"delete\"\n [svgHeight]=\"14\" [svgWidth]=\"14\" [svgSize]=\"'sm'\" (click)=\"deleteEscalation()\"></verbena-button>\n\n <verbena-button style=\"cursor: pointer\" type=\"button\" text=\"Send\" bgColor=\"#FFE681\" textColor=\"#404040\"\n borderRadius=\"8px\" pd=\"10px 20px\" width=\"160px\" height=\"39px\" fontWeight=\"600\" fontSize=\"12px\" svg=\"send\"\n [svgHeight]=\"14\" [svgWidth]=\"14\" [svgSize]=\"'sm'\" (click)=\"saveMessages()\"></verbena-button>\n </div>\n </div>\n</ng-template>\n", styles: ["::ng-deep .modal-footer{display:flex;justify-content:space-between!important}::ng-deep button,button{cursor:pointer}\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.VerbenDialogueComponent, selector: "verben-dialogue", inputs: ["dialogueWidth", "headerTemplate", "bodyTemplate", "footerTemplate", "showCloseIcon", "dismissOutsideClick", "closeOnEscape", "isVisible", "size", "backdropColor", "customClass", "disableFooter", "margin", "padding", "borderRadius", "dialogueBgColor", "width", "closeIconClass", "boxShadow", "enableTransition", "modalData", "mode", "position", "drawerWidth"], outputs: ["openModal", "closeModal"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5.VerbenaButtonComponent, selector: "verbena-button", inputs: ["text", "icon", "useIcon", "svgPosition", "iconPosition", "bgColor", "textColor", "border", "borderRadius", "pd", "width", "height", "fontSize", "fontWeight", "disable", "svgSize", "weight", "variant", "styleType", "svg", "svgWidth", "svgHeight", "iconColor", "svgColor", "buttonClass", "buttonTextClass", "isLoading", "spinnerSize", "spinnerColor"] }, { kind: "component", type: i5.DropDownComponent, selector: "verben-drop-down", inputs: ["options", "width", "showHorizontalLine", "horizontalLineColor", "optionLabel", "optionSubLabel", "optionValue", "placeholder", "invalidMessage", "errorPosition", "loadMoreCaption", "display", "showClear", "lazyLoad", "selectKey", "styleClass", "group", "multiselect", "filter", "avoidDuplication", "filterBy", "debounceTime", "minChar", "disabled", "required", "load", "asyncLabel", "search"], outputs: ["optionsChange", "onChange", "onClick", "onClear"] }, { kind: "component", type: i6.EditorComponent, selector: "lib-editor", inputs: ["themeColor", "editorMode", "editorConfig", "content"] }, { 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"] }] });
206
227
  }
207
228
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EscalationDialogComponent, decorators: [{
208
229
  type: Component,
209
- args: [{ selector: 'lib-escalation-dialog', template: "<verben-dialogue\n [showCloseIcon]=\"true\"\n [dismissOutsideClick]=\"true\"\n [closeOnEscape]=\"true\"\n [size]=\"'medium'\"\n [mode]=\"'drawer'\"\n [disableFooter]=\"false\"\n [isVisible]=\"visible\"\n [headerTemplate]=\"headerTemplate\"\n [bodyTemplate]=\"bodyTemplate\"\n [footerTemplate]=\"footerTemplate\"\n (openModal)=\"onDialogOpen($event)\"\n (closeModal)=\"onDialogClose($event)\"\n>\n</verben-dialogue>\n\n<ng-template #headerTemplate>\n <div\n class=\"flex items-center justify-between p-3 text-xs border-b-4 border-[#FFE681]\"\n >\n <button class=\"mr-4\" type=\"button\" (click)=\"onDialogClose($event)\">\n <span\n class=\"block w-2.5 h-2.5 border-t border-l border-[#3E3E3E]/70 transform -rotate-45\"\n ></span>\n </button>\n </div>\n</ng-template>\n\n<ng-template #bodyTemplate>\n <div>\n <div class=\"mb-4 space-y-4\">\n <div class=\"space-y-1\">\n <label\n for=\"operation-action\"\n class=\"text-sm font-semibold text-[#3E3E3E]\"\n >\n Operation Action\n </label>\n <!-- <verben-drop-down\n id=\"operation-action\"\n styleClass=\"w-full\"\n width=\"100%\"\n [multiselect]=\"false\"\n placeholder=\"Select Operation Action\"\n [options]=\"operationActions()\"\n optionLabel=\"Name\"\n optionValue=\"Code\"\n [ngModel]=\"selectedOperationAction | async\"\n (ngModelChange)=\"selectedOperationAction.next($event)\"\n class=\"form-control\"\n ></verben-drop-down> -->\n </div>\n\n <div *ngFor=\"let message of selectedMessages; let i = index\">\n <div class=\"space-y-1\">\n <label\n [for]=\"message + '-' + i\"\n class=\"text-sm font-semibold text-[#3E3E3E]\"\n >\n Message {{ i + 1 }}\n </label>\n <verben-drop-down\n [id]=\"message + '-' + i\"\n styleClass=\"w-full\"\n width=\"100%\"\n [multiselect]=\"false\"\n placeholder=\"Select Message\"\n [options]=\"reportSchedules()\"\n optionLabel=\"Name\"\n [ngModel]=\"message\"\n (ngModelChange)=\"onMessageSelected($event, i)\"\n class=\"form-control\"\n ></verben-drop-down>\n </div>\n\n @if (message) {\n <div class=\"flex items-center gap-4\">\n <label\n [for]=\"'is-' + message + '-' + i + 'task-data-source'\"\n class=\"text-sm font-semibold text-[#3E3E3E]\"\n >\n Is Task Data Source?\n </label>\n <verbena-switch\n [id]=\"'is-' + message + '-' + i + 'task-data-source'\"\n onText=\"Yes\"\n offText=\"No\"\n [onColor]=\"'#1A237E'\"\n [(ngModel)]=\"message.IsTaskDataSource\"\n ></verbena-switch>\n </div>\n }\n\n <div\n class=\"border border-primary -m-2 rounded-lg flex flex-col gap-3\"\n *ngIf=\"message\"\n >\n <div class=\"space-y-3 border-b border-primary px-2 py-3\">\n <verbena-input\n name=\"Subject\"\n [(ngModel)]=\"message.Subject\"\n [readOnly]=\"true\"\n />\n <verbena-input\n name=\"Recipients\"\n [(ngModel)]=\"message.Recipients\"\n [readOnly]=\"true\"\n />\n </div>\n <lib-editor\n [editorConfig]=\"editorConfig\"\n [editorMode]=\"editorMode\"\n [(ngModel)]=\"message.PlainMessage\"\n ></lib-editor>\n </div>\n </div>\n </div>\n </div>\n</ng-template>\n\n<ng-template #footerTemplate>\n <div class=\"flex justify-between items-center gap-8 w-full\">\n <verbena-button\n style=\"cursor: pointer\"\n type=\"button\"\n text=\"Add Message\"\n bgColor=\"#FFE681\"\n textColor=\"#404040\"\n borderRadius=\"8px\"\n pd=\"10px 20px\"\n height=\"39px\"\n fontWeight=\"600\"\n fontSize=\"12px\"\n svg=\"add\"\n [svgHeight]=\"14\"\n [svgWidth]=\"14\"\n [svgSize]=\"'sm'\"\n (click)=\"addMessage()\"\n ></verbena-button>\n\n <div class=\"flex gap-2 items-center\">\n <verbena-button\n style=\"cursor: pointer\"\n type=\"button\"\n text=\"Delete\"\n bgColor=\"#FFE681\"\n textColor=\"#404040\"\n borderRadius=\"8px\"\n pd=\"10px 20px\"\n width=\"110px\"\n height=\"39px\"\n fontWeight=\"600\"\n fontSize=\"12px\"\n svg=\"delete\"\n [svgHeight]=\"14\"\n [svgWidth]=\"14\"\n [svgSize]=\"'sm'\"\n (click)=\"onDialogClose($event)\"\n ></verbena-button>\n\n <verbena-button\n style=\"cursor: pointer\"\n type=\"button\"\n text=\"Send\"\n bgColor=\"#FFE681\"\n textColor=\"#404040\"\n borderRadius=\"8px\"\n pd=\"10px 20px\"\n width=\"160px\"\n height=\"39px\"\n fontWeight=\"600\"\n fontSize=\"12px\"\n svg=\"send\"\n [svgHeight]=\"14\"\n [svgWidth]=\"14\"\n [svgSize]=\"'sm'\"\n (click)=\"saveMessages()\"\n ></verbena-button>\n </div>\n </div>\n</ng-template>\n", styles: ["::ng-deep .modal-footer{display:flex;justify-content:space-between!important}::ng-deep button,button{cursor:pointer}\n"] }]
210
- }], ctorParameters: () => [{ type: i1.FormBuilder }, { type: i2.WorkflowDataService }], propDecorators: { visible: [{
230
+ args: [{ selector: 'lib-escalation-dialog', template: "<verben-dialogue [showCloseIcon]=\"true\" [dismissOutsideClick]=\"true\" [closeOnEscape]=\"true\" [size]=\"'medium'\"\n [mode]=\"'drawer'\" [disableFooter]=\"false\" [isVisible]=\"visible\" [headerTemplate]=\"headerTemplate\"\n [bodyTemplate]=\"bodyTemplate\" [footerTemplate]=\"footerTemplate\" (openModal)=\"onDialogOpen($event)\"\n (closeModal)=\"onDialogClose($event)\">\n</verben-dialogue>\n\n<ng-template #headerTemplate>\n <div class=\"flex items-center justify-between p-3 text-xs border-b-4 border-[#FFE681]\">\n <button class=\"mr-4\" type=\"button\" (click)=\"onDialogClose($event)\">\n <span class=\"block w-2.5 h-2.5 border-t border-l border-[#3E3E3E]/70 transform -rotate-45\"></span>\n </button>\n </div>\n</ng-template>\n\n<ng-template #bodyTemplate>\n <div>\n <div class=\"mb-4 space-y-4\">\n <!-- <div class=\"space-y-1\">\n <label for=\"operation-action\" class=\"text-sm font-semibold text-[#3E3E3E]\">\n Escalation\n </label>\n <verben-drop-down\n id=\"operation-action\"\n styleClass=\"w-full\"\n width=\"100%\"\n [multiselect]=\"false\"\n placeholder=\"Select Operation Action\"\n [options]=\"operationActions()\"\n optionLabel=\"Name\"\n optionValue=\"Code\"\n [ngModel]=\"selectedOperationAction | async\"\n (ngModelChange)=\"selectedOperationAction.next($event)\"\n class=\"form-control\"\n ></verben-drop-down>\n </div> -->\n\n <div class=\"space-y-4\" *ngFor=\"let message of selectedMessages; let i = index\">\n <div class=\"space-y-1\">\n <label [for]=\"message + '-' + i\" class=\"text-sm font-semibold text-[#3E3E3E]\">\n Message {{ i + 1 }}\n </label>\n <verben-drop-down [id]=\"message + '-' + i\" selectKey=\"Code\" styleClass=\"w-full\" width=\"100%\"\n [multiselect]=\"false\" placeholder=\"Select Message\" [options]=\"reportSchedules()\" optionLabel=\"Name\"\n [ngModel]=\"message\" (ngModelChange)=\"onMessageSelected($event, i)\" class=\"form-control\"></verben-drop-down>\n </div>\n\n @if (message) {\n <div class=\"flex items-center gap-4\">\n <label [for]=\"'is-' + message + '-' + i + 'task-data-source'\" class=\"text-sm font-semibold text-[#3E3E3E]\">\n Is Task Data Source?\n </label>\n <verbena-switch [id]=\"'is-' + message + '-' + i + 'task-data-source'\" onText=\"Yes\" offText=\"No\"\n [onColor]=\"'#1A237E'\" [(ngModel)]=\"message.IsTaskDataSource\"></verbena-switch>\n </div>\n\n <div class=\"flex items-center gap-4\">\n <label [for]=\"'is-' + message + '-' + i + 'is-message-id'\" class=\"text-sm font-semibold text-[#3E3E3E]\">\n Is Message ID?\n </label>\n <verbena-switch [id]=\"'is-' + message + '-' + i + 'is-message-id'\" onText=\"Yes\" offText=\"No\"\n [onColor]=\"'#1A237E'\" [(ngModel)]=\"message.IsMessageId\"></verbena-switch>\n </div>\n }\n\n <div class=\"border border-primary -m-2 rounded-lg flex flex-col gap-3\" *ngIf=\"message\">\n <div class=\"space-y-3 border-b border-primary px-2 py-3\">\n <verbena-input name=\"Subject\" [(ngModel)]=\"message.Subject\" [readOnly]=\"true\" />\n <verbena-input name=\"Recipients\" [(ngModel)]=\"message.Recipients\" [readOnly]=\"true\" />\n </div>\n <lib-editor [editorConfig]=\"editorConfig\" [editorMode]=\"editorMode\"\n [(ngModel)]=\"message.PlainMessage\"></lib-editor>\n </div>\n </div>\n </div>\n </div>\n</ng-template>\n\n<ng-template #footerTemplate>\n <div class=\"flex justify-between items-center gap-8 w-full\">\n <verbena-button style=\"cursor: pointer\" type=\"button\" text=\"Add Message\" bgColor=\"#FFE681\" textColor=\"#404040\"\n borderRadius=\"8px\" pd=\"10px 20px\" height=\"39px\" fontWeight=\"600\" fontSize=\"12px\" svg=\"add\" [svgHeight]=\"14\"\n [svgWidth]=\"14\" [svgSize]=\"'sm'\" (click)=\"addMessage()\"></verbena-button>\n\n <div class=\"flex gap-2 items-center\">\n <verbena-button style=\"cursor: pointer\" type=\"button\" text=\"Delete\" bgColor=\"#FFE681\" textColor=\"#404040\"\n borderRadius=\"8px\" pd=\"10px 20px\" width=\"110px\" height=\"39px\" fontWeight=\"600\" fontSize=\"12px\" svg=\"delete\"\n [svgHeight]=\"14\" [svgWidth]=\"14\" [svgSize]=\"'sm'\" (click)=\"deleteEscalation()\"></verbena-button>\n\n <verbena-button style=\"cursor: pointer\" type=\"button\" text=\"Send\" bgColor=\"#FFE681\" textColor=\"#404040\"\n borderRadius=\"8px\" pd=\"10px 20px\" width=\"160px\" height=\"39px\" fontWeight=\"600\" fontSize=\"12px\" svg=\"send\"\n [svgHeight]=\"14\" [svgWidth]=\"14\" [svgSize]=\"'sm'\" (click)=\"saveMessages()\"></verbena-button>\n </div>\n </div>\n</ng-template>\n", styles: ["::ng-deep .modal-footer{display:flex;justify-content:space-between!important}::ng-deep button,button{cursor:pointer}\n"] }]
231
+ }], ctorParameters: () => [{ type: i1.FormBuilder }, { type: i2.WorkflowDataService }, { type: i3.UtilService }], propDecorators: { visible: [{
211
232
  type: Input
212
233
  }], closed: [{
213
234
  type: Output
214
235
  }], created: [{
215
236
  type: Output
216
237
  }] } });
217
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNjYWxhdGlvbi1kaWFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmVyYmVuLXdvcmtmbG93LXVpL3NyYy9saWIvY29tcG9uZW50cy93b3JrZmxvdy1kZXNpZ25lci9lc2NhbGF0aW9uLWRpYWxvZy9lc2NhbGF0aW9uLWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4td29ya2Zsb3ctdWkvc3JjL2xpYi9jb21wb25lbnRzL3dvcmtmbG93LWRlc2lnbmVyL2VzY2FsYXRpb24tZGlhbG9nL2VzY2FsYXRpb24tZGlhbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsTUFBTSxFQUNOLFlBQVksRUFDWixLQUFLLEVBQ0wsS0FBSyxFQUVMLE1BQU0sRUFDTixNQUFNLEdBRVAsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFnQixVQUFVLEVBQWUsTUFBTSxxQkFBcUIsQ0FBQztBQUM1RSxPQUFPLEVBQThCLFdBQVcsRUFBb0Msb0JBQW9CLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7Ozs7OztBQVFwSixNQUFNLE9BQU8seUJBQXlCO0lBd0QxQjtJQUNBO0lBeERELE9BQU8sR0FBWSxLQUFLLENBQUM7SUFDbEMsWUFBWSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQVUsQ0FBQztJQUN4QyxTQUFTLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBVSxDQUFDO0lBQ3JDLElBQUksR0FBRyxLQUFLLEVBQWtCLENBQUM7SUFFckIsTUFBTSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUFDNUIsT0FBTyxHQUFHLElBQUksWUFBWSxFQUFNLENBQUM7SUFFM0MsVUFBVSxHQUFzQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFN0Qsa0JBQWtCO0lBQ2xC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S0FxTEE7OzRGRGhLYSx5QkFBeUI7a0JBTHJDLFNBQVM7K0JBQ0UsdUJBQXVCO2tIQUt4QixPQUFPO3NCQUFmLEtBQUs7Z0JBS0ksTUFBTTtzQkFBZixNQUFNO2dCQUNHLE9BQU87c0JBQWhCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIGVmZmVjdCxcbiAgRXZlbnRFbWl0dGVyLFxuICBpbnB1dCxcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBzaWduYWwsXG4gIFdyaXRhYmxlU2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRWRpdG9yQ29uZmlnLCBFZGl0b3JNb2RlLCBFZGl0b3JTdGF0ZSB9IGZyb20gJ3ZlcmJlbi1yZXBvcnRpbmctdWknO1xuaW1wb3J0IHsgRXNjYWxhdGlvbiwgRXNjYWxhdGlvblR5cGUsIE9iamVjdFN0YXRlLCBSZXBvcnRTY2hlZHVsZSwgVGFza05vdGlmaWNhdGlvbiwgVGFza05vdGlmaWNhdGlvblR5cGUgfSBmcm9tICd2ZXJiZW4td29ya2Zsb3ctdWkvc3JjL2xpYi9tb2RlbHMnO1xuaW1wb3J0IHsgV29ya2Zsb3dEYXRhU2VydmljZSB9IGZyb20gJy4uL3dvcmtmbG93LWRhdGEuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1lc2NhbGF0aW9uLWRpYWxvZycsXG4gIHRlbXBsYXRlVXJsOiAnLi9lc2NhbGF0aW9uLWRpYWxvZy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9lc2NhbGF0aW9uLWRpYWxvZy5jb21wb25lbnQuY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgRXNjYWxhdGlvbkRpYWxvZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIHZpc2libGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgd29ya2Zsb3dDb2RlID0gaW5wdXQucmVxdWlyZWQ8c3RyaW5nPigpO1xuICBzdGFnZUNvZGUgPSBpbnB1dC5yZXF1aXJlZDxzdHJpbmc+KCk7XG4gIHR5cGUgPSBpbnB1dDxFc2NhbGF0aW9uVHlwZT4oKTtcblxuICBAT3V0cHV0KCkgY2xvc2VkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgY3JlYXRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8e30+KCk7XG5cbiAgZXNjYWxhdGlvbjogV3JpdGFibGVTaWduYWw8RXNjYWxhdGlvbiB8IG51bGw+ID0gc2lnbmFsKG51bGwpO1xuXG4gIC8vIGVzY2FsYXRpb25Gb3JtO1xuICByZXBvcnRTY2hlZHVsZXM6IFdyaXRhYmxlU2lnbmFsPFJlcG9ydFNjaGVkdWxlW10+ID0gc2lnbmFsKFtdKTtcbiAgLy8gb3BlcmF0aW9uQWN0aW9uczogV3JpdGFibGVTaWduYWw8T3BlcmF0aW9uQWN0aW9uW10+ID0gc2lnbmFsKFtdKTtcblxuICAvLyBzZWxlY3RlZE9wZXJhdGlvbkFjdGlvbjogQmVoYXZpb3JTdWJqZWN0PE9wZXJhdGlvbkFjdGlvbltcIkNvZGVcIl0gfCBudWxsPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8T3BlcmF0aW9uQWN0aW9uW1wiQ29kZVwiXSB8IG51bGw+KG51bGwpO1xuXG4gIC8vIHNlbGVjdGVkTWVzc2FnZXM6IFdyaXRhYmxlU2lnbmFsPFxuICAvLyAgICgoUmVwb3J0U2NoZWR1bGUgJiB7IElzVGFza0RhdGFTb3VyY2U6IGJvb2xlYW4gfSkgfCBudWxsKVtdXG4gIC8vID4gPSBzaWduYWwoW10pO1xuXG4gIHNlbGVjdGVkTWVzc2FnZXM6ICgoUmVwb3J0U2NoZWR1bGUgJiB7IElzVGFza0RhdGFTb3VyY2U6IGJvb2xlYW4gfSkgfCBudWxsKVtdID0gW107XG5cbiAgZWRpdG9yTW9kZTogRWRpdG9yTW9kZSA9IEVkaXRvck1vZGUuRGVzaWduZXI7XG4gIGVkaXRvckNvbmZpZzogRWRpdG9yQ29uZmlnID0ge1xuICAgIGVkaXRhYmxlOiB0cnVlLFxuICAgIGhlaWdodDogJycsXG4gICAgd2lkdGg6ICcnLFxuICAgIHNob3dUb29sYmFyOiB0cnVlLFxuICAgIG1lbnVJdGVtczogW1xuICAgICAge1xuICAgICAgICBMYWJlbDogJ1RvZ2dsZVZpZXcnLFxuICAgICAgICBJY29uOiAnY29kZS10b2dnbGUnLFxuICAgICAgICBJY29uV2lkdGg6IDIwLFxuICAgICAgICBJY29uSGVpZ2h0OiAyMCxcbiAgICAgICAgSXNTdHJva2U6IGZhbHNlLFxuICAgICAgICBHcm91cEJ5OiAnbG9jYWwnLFxuICAgICAgICBPbkNsaWNrOiAoZXZlbnQ6IEVkaXRvclN0YXRlIHwgdW5kZWZpbmVkKSA9PiB7XG4gICAgICAgICAgdGhpcy5lZGl0b3JNb2RlID1cbiAgICAgICAgICAgIHRoaXMuZWRpdG9yTW9kZSA9PSBFZGl0b3JNb2RlLkRlc2lnbmVyXG4gICAgICAgICAgICAgID8gRWRpdG9yTW9kZS5Db2RlXG4gICAgICAgICAgICAgIDogRWRpdG9yTW9kZS5EZXNpZ25lcjtcbiAgICAgICAgfSxcbiAgICAgICAgSXNEaXNhYmxlZDogKGV2ZW50OiBFZGl0b3JTdGF0ZSB8IHVuZGVmaW5lZCkgPT4ge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfSxcbiAgICAgICAgSXNFbmFibGVkOiAoZXZlbnQ6IEVkaXRvclN0YXRlIHwgdW5kZWZpbmVkKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuZWRpdG9yTW9kZSA9PSBFZGl0b3JNb2RlLkNvZGU7XG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIF0sXG4gIH07XG5cbiAgLy8gSXNUYXNrRGF0YVNvdXJjZTogV3JpdGFibGVTaWduYWw8Ym9vbGVhbltdPiA9IHNpZ25hbChbXSk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsXG4gICAgcHJpdmF0ZSBkYXRhU2VydmljZTogV29ya2Zsb3dEYXRhU2VydmljZVxuICApIHtcbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgY29uc3Qgc3RhZ2VDb2RlID0gdGhpcy5zdGFnZUNvZGUoKTtcbiAgICAgIGNvbnN0IHdvcmtmbG93Q29kZSA9IHRoaXMud29ya2Zsb3dDb2RlKCk7XG4gICAgICBjb25zdCB0eXBlID0gdGhpcy50eXBlKCk7XG4gICAgICBjb25zb2xlLmxvZygnU3RhZ2UgY29kZSBjaGFuZ2VkOicsIHN0YWdlQ29kZSk7XG4gICAgICBpZiAod29ya2Zsb3dDb2RlICYmIHN0YWdlQ29kZSAmJiB0eXBlKSB7XG4gICAgICAgIC8vIHRoaXMubG9hZEVzY2FsYXRpb24oc3RhZ2VDb2RlKTtcbiAgICAgICAgdGhpcy5zZWFyY2hFc2NhbGF0aW9uKHdvcmtmbG93Q29kZSwgc3RhZ2VDb2RlLCB0eXBlKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICBjb25zdCBlc2NhbGF0aW9uID0gdGhpcy5lc2NhbGF0aW9uKCk7XG4gICAgICBjb25zdCByZXBvcnRTY2hlZHVsZXMgPSB0aGlzLnJlcG9ydFNjaGVkdWxlcygpO1xuXG4gICAgICBpZiAoZXNjYWxhdGlvbiAmJiByZXBvcnRTY2hlZHVsZXMpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZE1lc3NhZ2VzID0gZXNjYWxhdGlvbi5NZXNzYWdlcy5tYXAoKGNvZGUpID0+IHtcbiAgICAgICAgICBjb25zdCBmb3VuZCA9IHJlcG9ydFNjaGVkdWxlcy5maW5kKChycykgPT4gcnMuQ29kZSA9PT0gY29kZSk7XG4gICAgICAgICAgcmV0dXJuIGZvdW5kID8geyAuLi5mb3VuZCwgSXNUYXNrRGF0YVNvdXJjZTogdHJ1ZSB9IDogbnVsbDtcbiAgICAgICAgfSk7XG4gICAgICAgIC8vIHRoaXMuc2VsZWN0ZWRPcGVyYXRpb25BY3Rpb24ubmV4dChlc2NhbGF0aW9uLk9wZXJhdGlvbkFjdGlvbiA/PyBudWxsKTtcbiAgICAgICAgLy8gY29uc29sZS5sb2coXCJTRVRUSU5HIE9QXCIsIHRoaXMuc2VsZWN0ZWRPcGVyYXRpb25BY3Rpb24pO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgLy8gdGhpcy5lc2NhbGF0aW9uRm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgIC8vICAgTWVzc2FnZXM6IHRoaXMuZmIuYXJyYXkoW10pLFxuICAgIC8vIH0pO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5sb2FkUmVwb3J0U2NoZWR1bGVzKCk7XG4gICAgLy8gdGhpcy5sb2FkT3BlcmF0aW9uQWN0aW9ucygpO1xuXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRNZXNzYWdlcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMuYWRkTWVzc2FnZSgpO1xuICAgIH1cblxuICAgIGNvbnNvbGUubG9nKFxuICAgICAgJ0VzY2FsYXRpb25EaWFsb2dDb21wb25lbnQgaW5pdGlhbGl6ZWQgd2l0aCBzdGFnZUNvZGU6JyxcbiAgICAgIHRoaXMuc3RhZ2VDb2RlXG4gICAgKTtcbiAgICAvLyBjb25zb2xlLmxvZygnRXNjYWxhdGlvbkRpYWxvZ0NvbXBvbmVudCB0eXBlOicsIHRoaXMudHlwZSk7XG4gIH1cblxuICAvLyBnZXQgbWVzc2FnZXMoKSB7XG4gIC8vICAgcmV0dXJuIHRoaXMuZXNjYWxhdGlvbkZvcm0uY29udHJvbHNbJ01lc3NhZ2VzJ10gYXMgRm9ybUFycmF5O1xuICAvLyB9XG5cbiAgYWRkTWVzc2FnZSgpIHtcbiAgICB0aGlzLnNlbGVjdGVkTWVzc2FnZXMgPSB0aGlzLnNlbGVjdGVkTWVzc2FnZXMuY29uY2F0KFtudWxsXSk7XG4gIH1cblxuICBkZWxldGVNZXNzYWdlKGxlc3NvbkluZGV4OiBudW1iZXIpIHtcbiAgICB0aGlzLnNlbGVjdGVkTWVzc2FnZXMgPSB0aGlzLnNlbGVjdGVkTWVzc2FnZXMuc3BsaWNlKGxlc3NvbkluZGV4LCAxKTtcbiAgfVxuXG4gIG9uTWVzc2FnZVNlbGVjdGVkKHJlcG9ydFNjaGVkdWxlOiBSZXBvcnRTY2hlZHVsZSwgaW5kZXg6IG51bWJlcikge1xuICAgIGNvbnNvbGUubG9nKCdTZWxlY3RlZCBtZXNzYWdlOicsIHJlcG9ydFNjaGVkdWxlLCAnYXQgaW5kZXg6JywgaW5kZXgpO1xuICAgIHRoaXMuc2VsZWN0ZWRNZXNzYWdlcyA9IHRoaXMuc2VsZWN0ZWRNZXNzYWdlcy5tYXAoKG1zZywgaSkgPT4ge1xuICAgICAgaWYgKGkgPT09IGluZGV4KSB7XG4gICAgICAgIHJldHVybiB7IC4uLnJlcG9ydFNjaGVkdWxlLCBJc1Rhc2tEYXRhU291cmNlOiB0cnVlIH07XG4gICAgICB9XG4gICAgICByZXR1cm4gbXNnO1xuICAgIH0pO1xuICB9XG5cbiAgaXNWYWxpZFNlbGVjdGlvbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZE1lc3NhZ2VzLmV2ZXJ5KChtc2cpID0+ICEhbXNnKTtcbiAgfVxuXG4gIGFzeW5jIHNhdmVNZXNzYWdlcygpIHtcbiAgICBjb25zb2xlLmxvZyh0aGlzLnNlbGVjdGVkTWVzc2FnZXMpO1xuICAgIGNvbnN0IHRhc2tOb3RpZmljYXRpb25zOiBUYXNrTm90aWZpY2F0aW9uW10gPSB0aGlzLnNlbGVjdGVkTWVzc2FnZXNcbiAgICAgIC5maWx0ZXIoKG1zZykgPT4gISFtc2cpXG4gICAgICAubWFwKChtc2cpID0+ICh7XG4gICAgICAgIElkOiAnJyxcbiAgICAgICAgQ29kZTogJycsXG4gICAgICAgIFRlbmFudElkOiAnUERMVEM2JyxcbiAgICAgICAgTWVzc2FnZTogbXNnLkNvZGUsXG4gICAgICAgIE5hbWU6IG1zZy5OYW1lLFxuICAgICAgICBTdWJqZWN0OiBtc2cuU3ViamVjdCxcbiAgICAgICAgU2VuZGVyQ29uZmlnOiBtc2cuTWVzc2FnZUNvbmZpZyxcbiAgICAgICAgTWVkaXVtOiBtc2cuTWVkaXVtLFxuICAgICAgICBOb3RpZmljYXRpb25UeXBlOiBUYXNrTm90aWZpY2F0aW9uVHlwZS5Fc2NhbGF0aW9uLFxuICAgICAgICBJc01lc3NhZ2VJZDogZmFsc2UsXG4gICAgICAgIElzVGFza0RhdGFTb3VyY2U6IG1zZy5Jc1Rhc2tEYXRhU291cmNlLFxuICAgICAgICBNZXNzYWdlRGF0YVNvdXJjZTogIW1zZy5Jc1Rhc2tEYXRhU291cmNlID8gbXNnLlJlcG9ydERhdGFTb3VyY2UgOiAnJyxcbiAgICAgICAgRGF0YVN0YXRlOiBPYmplY3RTdGF0ZS5OZXcsXG4gICAgICAgIGlkOiAnJyxcbiAgICAgICAgU2VydmljZU5hbWU6ICcnLFxuICAgICAgICBDcmVhdGVkQXQ6IG5ldyBEYXRlKCksXG4gICAgICAgIFVwZGF0ZWRBdDogbmV3IERhdGUoKSxcbiAgICAgIH0pKTtcblxuICAgIC8vIGlmICh0YXNrTm90aWZpY2F0aW9ucy5sZW5ndGgpIHtcbiAgICAvLyB0aGlzLmNyZWF0ZWQuZW1pdCh0YXNrTm90aWZpY2F0aW9ucyk7XG4gICAgY29uc29sZS5sb2codGFza05vdGlmaWNhdGlvbnMpO1xuICAgIHRoaXMub25EaWFsb2dDbG9zZShudWxsKTtcbiAgICBjb25zdCBkYXRhOiBQYXJ0aWFsPEVzY2FsYXRpb24+ID0ge1xuICAgICAgLi4uKHRoaXMuZXNjYWxhdGlvbigpID8/IHtcbiAgICAgICAgSWQ6ICcnLFxuICAgICAgICBDb2RlOiAnJyxcbiAgICAgICAgVGVuYW50SWQ6ICdQRExUQzYnLFxuICAgICAgICBXb3JrZmxvdzogdGhpcy53b3JrZmxvd0NvZGUoKSxcbiAgICAgICAgU3RhZ2U6IHRoaXMuc3RhZ2VDb2RlKCksXG4gICAgICAgIFR5cGU6IHRoaXMudHlwZSgpLFxuICAgICAgICBFeHBpcmF0aW9uV2FybmluZzogMCxcbiAgICAgICAgRHVyYXRpb246IDAsXG4gICAgICAgIE5vdGlmeUFmdGVyOiAwLFxuICAgICAgICBQb3NpdGlvbjogMSxcbiAgICAgICAgRGF0YVN0YXRlOiBPYmplY3RTdGF0ZS5OZXcsXG4gICAgICB9KSxcbiAgICAgIC8vIE9wZXJhdGlvbkFjdGlvbjogdGhpcy5zZWxlY3RlZE9wZXJhdGlvbkFjdGlvbi5nZXRWYWx1ZSgpLFxuICAgICAgTWVzc2FnZXM6IHRhc2tOb3RpZmljYXRpb25zLm1hcCgoeyBDb2RlIH0pID0+IENvZGUpLFxuICAgICAgRnVsbE1lc3NhZ2VzOiB0YXNrTm90aWZpY2F0aW9ucyxcbiAgICB9O1xuICAgIGNvbnNvbGUubG9nKGRhdGEpO1xuICAgIGF3YWl0IHRoaXMuZGF0YVNlcnZpY2Uuc2F2ZUVzY2FsYXRpb25zKFtkYXRhXSk7XG4gICAgLy8gfVxuICB9XG5cbiAgcHJpdmF0ZSBsb2FkRXNjYWxhdGlvbihzdGFnZUNvZGU6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuZGF0YVNlcnZpY2UuZ2V0RXNjYWxhdGlvbldpdGhQYXJhbShzdGFnZUNvZGUpLnRoZW4oKGRhdGEpID0+IHtcbiAgICAgIHRoaXMuZXNjYWxhdGlvbi5zZXQoZGF0YS5SZXN1bHRbMF0gPz8gbnVsbCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHNlYXJjaEVzY2FsYXRpb24oXG4gICAgV29ya2Zsb3c6IHN0cmluZyxcbiAgICBTdGFnZTogc3RyaW5nLFxuICAgIFR5cGU6IEVzY2FsYXRpb25UeXBlXG4gICk6IHZvaWQge1xuICAgIHRoaXMuZGF0YVNlcnZpY2VcbiAgICAgIC5zZWFyY2hFc2NhbGF0aW9uV2l0aFBhcmFtKHtcbiAgICAgICAgV29ya2Zsb3csXG4gICAgICAgIFN0YWdlLFxuICAgICAgICBUeXBlLFxuICAgICAgfSlcbiAgICAgIC50aGVuKChkYXRhKSA9PiB7XG4gICAgICAgIHRoaXMuZXNjYWxhdGlvbi5zZXQoZGF0YS5SZXN1bHRbMF0gPz8gbnVsbCk7XG4gICAgICAgIC8vIHRoaXMuc2VsZWN0ZWRPcGVyYXRpb25BY3Rpb24ubmV4dChkYXRhLlJlc3VsdFswXT8uT3BlcmF0aW9uQWN0aW9uID8/IG51bGwpO1xuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGxvYWRSZXBvcnRTY2hlZHVsZXMoKTogdm9pZCB7XG4gICAgdGhpcy5kYXRhU2VydmljZS5nZXRSZXBvcnRTY2hlZHVsZXMoKS50aGVuKChkYXRhKSA9PiB7XG4gICAgICB0aGlzLnJlcG9ydFNjaGVkdWxlcy5zZXQoZGF0YS5SZXN1bHQpO1xuICAgIH0pO1xuICB9XG5cbiAgLy8gcHJpdmF0ZSBsb2FkT3BlcmF0aW9uQWN0aW9ucygpOiB2b2lkIHtcbiAgLy8gICB0aGlzLmRhdGFTZXJ2aWNlLmdldE9wZXJhdGlvbkFjdGlvbnMoKS50aGVuKChkYXRhKSA9PiB7XG4gIC8vICAgICB0aGlzLm9wZXJhdGlvbkFjdGlvbnMuc2V0KGRhdGEuUmVzdWx0KTtcbiAgLy8gICB9KTtcbiAgLy8gfVxuXG4gIG9uRGlhbG9nQ2xvc2UoZXZlbnREYXRhOiBhbnkpIHtcbiAgICBjb25zb2xlLmxvZygnRGlhbG9nIGNsb3NlZCwgcmVjZWl2ZWQgZGF0YTonLCBldmVudERhdGEpO1xuICAgIHRoaXMuY2xvc2VkLmVtaXQoKTtcbiAgfVxuXG4gIG9uRGlhbG9nT3BlbihldmVudERhdGE6IGFueSkge1xuICAgIGNvbnNvbGUubG9nKCdEaWFsb2cgb3BlbmVkLCByZWNlaXZlZCBkYXRhOicsIGV2ZW50RGF0YSk7XG4gIH1cblxuICBpc05vdE5ldygpOiBib29sZWFuIHtcbiAgICBjb25zdCBlc2NhbGF0aW9uID0gdGhpcy5lc2NhbGF0aW9uKCk7XG4gICAgcmV0dXJuIGVzY2FsYXRpb24gIT09IG51bGwgJiYgZXNjYWxhdGlvbi5EYXRhU3RhdGUgIT09ICdOZXcnO1xuICB9XG59XG4iLCI8dmVyYmVuLWRpYWxvZ3VlXG4gIFtzaG93Q2xvc2VJY29uXT1cInRydWVcIlxuICBbZGlzbWlzc091dHNpZGVDbGlja109XCJ0cnVlXCJcbiAgW2Nsb3NlT25Fc2NhcGVdPVwidHJ1ZVwiXG4gIFtzaXplXT1cIidtZWRpdW0nXCJcbiAgW21vZGVdPVwiJ2RyYXdlcidcIlxuICBbZGlzYWJsZUZvb3Rlcl09XCJmYWxzZVwiXG4gIFtpc1Zpc2libGVdPVwidmlzaWJsZVwiXG4gIFtoZWFkZXJUZW1wbGF0ZV09XCJoZWFkZXJUZW1wbGF0ZVwiXG4gIFtib2R5VGVtcGxhdGVdPVwiYm9keVRlbXBsYXRlXCJcbiAgW2Zvb3RlclRlbXBsYXRlXT1cImZvb3RlclRlbXBsYXRlXCJcbiAgKG9wZW5Nb2RhbCk9XCJvbkRpYWxvZ09wZW4oJGV2ZW50KVwiXG4gIChjbG9zZU1vZGFsKT1cIm9uRGlhbG9nQ2xvc2UoJGV2ZW50KVwiXG4+XG48L3ZlcmJlbi1kaWFsb2d1ZT5cblxuPG5nLXRlbXBsYXRlICNoZWFkZXJUZW1wbGF0ZT5cbiAgPGRpdlxuICAgIGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIHAtMyB0ZXh0LXhzIGJvcmRlci1iLTQgYm9yZGVyLVsjRkZFNjgxXVwiXG4gID5cbiAgICA8YnV0dG9uIGNsYXNzPVwibXItNFwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwib25EaWFsb2dDbG9zZSgkZXZlbnQpXCI+XG4gICAgICA8c3BhblxuICAgICAgICBjbGFzcz1cImJsb2NrIHctMi41IGgtMi41IGJvcmRlci10IGJvcmRlci1sIGJvcmRlci1bIzNFM0UzRV0vNzAgdHJhbnNmb3JtIC1yb3RhdGUtNDVcIlxuICAgICAgPjwvc3Bhbj5cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2JvZHlUZW1wbGF0ZT5cbiAgPGRpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJtYi00IHNwYWNlLXktNFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic3BhY2UteS0xXCI+XG4gICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICBmb3I9XCJvcGVyYXRpb24tYWN0aW9uXCJcbiAgICAgICAgICAgIGNsYXNzPVwidGV4dC1zbSBmb250LXNlbWlib2xkIHRleHQtWyMzRTNFM0VdXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICBPcGVyYXRpb24gQWN0aW9uXG4gICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICA8IS0tIDx2ZXJiZW4tZHJvcC1kb3duXG4gICAgICAgICAgICBpZD1cIm9wZXJhdGlvbi1hY3Rpb25cIlxuICAgICAgICAgICAgc3R5bGVDbGFzcz1cInctZnVsbFwiXG4gICAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgICAgW211bHRpc2VsZWN0XT1cImZhbHNlXCJcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiU2VsZWN0IE9wZXJhdGlvbiBBY3Rpb25cIlxuICAgICAgICAgICAgW29wdGlvbnNdPVwib3BlcmF0aW9uQWN0aW9ucygpXCJcbiAgICAgICAgICAgIG9wdGlvbkxhYmVsPVwiTmFtZVwiXG4gICAgICAgICAgICBvcHRpb25WYWx1ZT1cIkNvZGVcIlxuICAgICAgICAgICAgW25nTW9kZWxdPVwic2VsZWN0ZWRPcGVyYXRpb25BY3Rpb24gfCBhc3luY1wiXG4gICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJzZWxlY3RlZE9wZXJhdGlvbkFjdGlvbi5uZXh0KCRldmVudClcIlxuICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgID48L3ZlcmJlbi1kcm9wLWRvd24+IC0tPlxuICAgICAgICA8L2Rpdj5cblxuICAgIDxkaXYgKm5nRm9yPVwibGV0IG1lc3NhZ2Ugb2Ygc2VsZWN0ZWRNZXNzYWdlczsgbGV0IGkgPSBpbmRleFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic3BhY2UteS0xXCI+XG4gICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICBbZm9yXT1cIm1lc3NhZ2UgKyAnLScgKyBpXCJcbiAgICAgICAgICAgIGNsYXNzPVwidGV4dC1zbSBmb250LXNlbWlib2xkIHRleHQtWyMzRTNFM0VdXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICBNZXNzYWdlIHt7IGkgKyAxIH19XG4gICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICA8dmVyYmVuLWRyb3AtZG93blxuICAgICAgICAgICAgW2lkXT1cIm1lc3NhZ2UgKyAnLScgKyBpXCJcbiAgICAgICAgICAgIHN0eWxlQ2xhc3M9XCJ3LWZ1bGxcIlxuICAgICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICAgIFttdWx0aXNlbGVjdF09XCJmYWxzZVwiXG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlNlbGVjdCBNZXNzYWdlXCJcbiAgICAgICAgICAgIFtvcHRpb25zXT1cInJlcG9ydFNjaGVkdWxlcygpXCJcbiAgICAgICAgICAgIG9wdGlvbkxhYmVsPVwiTmFtZVwiXG4gICAgICAgICAgICBbbmdNb2RlbF09XCJtZXNzYWdlXCJcbiAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uTWVzc2FnZVNlbGVjdGVkKCRldmVudCwgaSlcIlxuICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgID48L3ZlcmJlbi1kcm9wLWRvd24+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIEBpZiAobWVzc2FnZSkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTRcIj5cbiAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgIFtmb3JdPVwiJ2lzLScgKyBtZXNzYWdlICsgJy0nICsgaSArICd0YXNrLWRhdGEtc291cmNlJ1wiXG4gICAgICAgICAgICBjbGFzcz1cInRleHQtc20gZm9udC1zZW1pYm9sZCB0ZXh0LVsjM0UzRTNFXVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgSXMgVGFzayBEYXRhIFNvdXJjZT9cbiAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgIDx2ZXJiZW5hLXN3aXRjaFxuICAgICAgICAgICAgW2lkXT1cIidpcy0nICsgbWVzc2FnZSArICctJyArIGkgKyAndGFzay1kYXRhLXNvdXJjZSdcIlxuICAgICAgICAgICAgb25UZXh0PVwiWWVzXCJcbiAgICAgICAgICAgIG9mZlRleHQ9XCJOb1wiXG4gICAgICAgICAgICBbb25Db2xvcl09XCInIzFBMjM3RSdcIlxuICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJtZXNzYWdlLklzVGFza0RhdGFTb3VyY2VcIlxuICAgICAgICAgID48L3ZlcmJlbmEtc3dpdGNoPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuXG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cImJvcmRlciBib3JkZXItcHJpbWFyeSAtbS0yIHJvdW5kZWQtbGcgZmxleCBmbGV4LWNvbCBnYXAtM1wiXG4gICAgICAgICAgKm5nSWY9XCJtZXNzYWdlXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzcGFjZS15LTMgYm9yZGVyLWIgYm9yZGVyLXByaW1hcnkgcHgtMiBweS0zXCI+XG4gICAgICAgICAgICA8dmVyYmVuYS1pbnB1dFxuICAgICAgICAgICAgICBuYW1lPVwiU3ViamVjdFwiXG4gICAgICAgICAgICAgIFsobmdNb2RlbCldPVwibWVzc2FnZS5TdWJqZWN0XCJcbiAgICAgICAgICAgICAgW3JlYWRPbmx5XT1cInRydWVcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDx2ZXJiZW5hLWlucHV0XG4gICAgICAgICAgICAgIG5hbWU9XCJSZWNpcGllbnRzXCJcbiAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJtZXNzYWdlLlJlY2lwaWVudHNcIlxuICAgICAgICAgICAgICBbcmVhZE9ubHldPVwidHJ1ZVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxsaWItZWRpdG9yXG4gICAgICAgICAgICBbZWRpdG9yQ29uZmlnXT1cImVkaXRvckNvbmZpZ1wiXG4gICAgICAgICAgICBbZWRpdG9yTW9kZV09XCJlZGl0b3JNb2RlXCJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwibWVzc2FnZS5QbGFpbk1lc3NhZ2VcIlxuICAgICAgICAgID48L2xpYi1lZGl0b3I+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNmb290ZXJUZW1wbGF0ZT5cbiAgPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1iZXR3ZWVuIGl0ZW1zLWNlbnRlciBnYXAtOCB3LWZ1bGxcIj5cbiAgICA8dmVyYmVuYS1idXR0b25cbiAgICAgIHN0eWxlPVwiY3Vyc29yOiBwb2ludGVyXCJcbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgdGV4dD1cIkFkZCBNZXNzYWdlXCJcbiAgICAgIGJnQ29sb3I9XCIjRkZFNjgxXCJcbiAgICAgIHRleHRDb2xvcj1cIiM0MDQwNDBcIlxuICAgICAgYm9yZGVyUmFkaXVzPVwiOHB4XCJcbiAgICAgIHBkPVwiMTBweCAyMHB4XCJcbiAgICAgIGhlaWdodD1cIjM5cHhcIlxuICAgICAgZm9udFdlaWdodD1cIjYwMFwiXG4gICAgICBmb250U2l6ZT1cIjEycHhcIlxuICAgICAgc3ZnPVwiYWRkXCJcbiAgICAgIFtzdmdIZWlnaHRdPVwiMTRcIlxuICAgICAgW3N2Z1dpZHRoXT1cIjE0XCJcbiAgICAgIFtzdmdTaXplXT1cIidzbSdcIlxuICAgICAgKGNsaWNrKT1cImFkZE1lc3NhZ2UoKVwiXG4gICAgPjwvdmVyYmVuYS1idXR0b24+XG5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBnYXAtMiBpdGVtcy1jZW50ZXJcIj5cbiAgICAgIDx2ZXJiZW5hLWJ1dHRvblxuICAgICAgICBzdHlsZT1cImN1cnNvcjogcG9pbnRlclwiXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICB0ZXh0PVwiRGVsZXRlXCJcbiAgICAgICAgYmdDb2xvcj1cIiNGRkU2ODFcIlxuICAgICAgICB0ZXh0Q29sb3I9XCIjNDA0MDQwXCJcbiAgICAgICAgYm9yZGVyUmFkaXVzPVwiOHB4XCJcbiAgICAgICAgcGQ9XCIxMHB4IDIwcHhcIlxuICAgICAgICB3aWR0aD1cIjExMHB4XCJcbiAgICAgICAgaGVpZ2h0PVwiMzlweFwiXG4gICAgICAgIGZvbnRXZWlnaHQ9XCI2MDBcIlxuICAgICAgICBmb250U2l6ZT1cIjEycHhcIlxuICAgICAgICBzdmc9XCJkZWxldGVcIlxuICAgICAgICBbc3ZnSGVpZ2h0XT1cIjE0XCJcbiAgICAgICAgW3N2Z1dpZHRoXT1cIjE0XCJcbiAgICAgICAgW3N2Z1NpemVdPVwiJ3NtJ1wiXG4gICAgICAgIChjbGljayk9XCJvbkRpYWxvZ0Nsb3NlKCRldmVudClcIlxuICAgICAgPjwvdmVyYmVuYS1idXR0b24+XG5cbiAgICAgIDx2ZXJiZW5hLWJ1dHRvblxuICAgICAgICBzdHlsZT1cImN1cnNvcjogcG9pbnRlclwiXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICB0ZXh0PVwiU2VuZFwiXG4gICAgICAgIGJnQ29sb3I9XCIjRkZFNjgxXCJcbiAgICAgICAgdGV4dENvbG9yPVwiIzQwNDA0MFwiXG4gICAgICAgIGJvcmRlclJhZGl1cz1cIjhweFwiXG4gICAgICAgIHBkPVwiMTBweCAyMHB4XCJcbiAgICAgICAgd2lkdGg9XCIxNjBweFwiXG4gICAgICAgIGhlaWdodD1cIjM5cHhcIlxuICAgICAgICBmb250V2VpZ2h0PVwiNjAwXCJcbiAgICAgICAgZm9udFNpemU9XCIxMnB4XCJcbiAgICAgICAgc3ZnPVwic2VuZFwiXG4gICAgICAgIFtzdmdIZWlnaHRdPVwiMTRcIlxuICAgICAgICBbc3ZnV2lkdGhdPVwiMTRcIlxuICAgICAgICBbc3ZnU2l6ZV09XCInc20nXCJcbiAgICAgICAgKGNsaWNrKT1cInNhdmVNZXNzYWdlcygpXCJcbiAgICAgID48L3ZlcmJlbmEtYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
238
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNjYWxhdGlvbi1kaWFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmVyYmVuLXdvcmtmbG93LXVpL3NyYy9saWIvY29tcG9uZW50cy93b3JrZmxvdy1kZXNpZ25lci9lc2NhbGF0aW9uLWRpYWxvZy9lc2NhbGF0aW9uLWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4td29ya2Zsb3ctdWkvc3JjL2xpYi9jb21wb25lbnRzL3dvcmtmbG93LWRlc2lnbmVyL2VzY2FsYXRpb24tZGlhbG9nL2VzY2FsYXRpb24tZGlhbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsTUFBTSxFQUNOLFlBQVksRUFDWixLQUFLLEVBQ0wsS0FBSyxFQUVMLE1BQU0sRUFDTixNQUFNLEdBRVAsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFnQixVQUFVLEVBQWUsTUFBTSxxQkFBcUIsQ0FBQztBQUM1RSxPQUFPLEVBQThCLFdBQVcsRUFBb0Msb0JBQW9CLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7Ozs7Ozs7QUFTcEosTUFBTSxPQUFPLHlCQUF5QjtJQXdEMUI7SUFDQTtJQUNBO0lBekRELE9BQU8sR0FBWSxLQUFLLENBQUM7SUFDbEMsWUFBWSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQVUsQ0FBQztJQUN4QyxTQUFTLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBVSxDQUFDO0lBQ3JDLElBQUksR0FBRyxLQUFLLEVBQWtCLENBQUM7SUFFckIsTUFBTSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUFDNUIsT0FBTyxHQUFHLElBQUksWUFBWSxFQUFNLENBQUM7SUFFM0MsVUFBVSxHQUFzQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFN0Qsa0JBQWtC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QUF6Qix5QkFBeUIsK25CQ3RCdEMsNjNKQThGQTs7NEZEeEVhLHlCQUF5QjtrQkFMckMsU0FBUzsrQkFDRSx1QkFBdUI7NElBS3hCLE9BQU87c0JBQWYsS0FBSztnQkFLSSxNQUFNO3NCQUFmLE1BQU07Z0JBQ0csT0FBTztzQkFBaEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgZWZmZWN0LFxuICBFdmVudEVtaXR0ZXIsXG4gIGlucHV0LFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIHNpZ25hbCxcbiAgV3JpdGFibGVTaWduYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBFZGl0b3JDb25maWcsIEVkaXRvck1vZGUsIEVkaXRvclN0YXRlIH0gZnJvbSAndmVyYmVuLXJlcG9ydGluZy11aSc7XG5pbXBvcnQgeyBFc2NhbGF0aW9uLCBFc2NhbGF0aW9uVHlwZSwgT2JqZWN0U3RhdGUsIFJlcG9ydFNjaGVkdWxlLCBUYXNrTm90aWZpY2F0aW9uLCBUYXNrTm90aWZpY2F0aW9uVHlwZSB9IGZyb20gJ3ZlcmJlbi13b3JrZmxvdy11aS9zcmMvbGliL21vZGVscyc7XG5pbXBvcnQgeyBVdGlsU2VydmljZSB9IGZyb20gJ3ZlcmJlbi13b3JrZmxvdy11aS9zcmMvbGliL3NlcnZpY2VzJztcbmltcG9ydCB7IFdvcmtmbG93RGF0YVNlcnZpY2UgfSBmcm9tICcuLi93b3JrZmxvdy1kYXRhLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItZXNjYWxhdGlvbi1kaWFsb2cnLFxuICB0ZW1wbGF0ZVVybDogJy4vZXNjYWxhdGlvbi1kaWFsb2cuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vZXNjYWxhdGlvbi1kaWFsb2cuY29tcG9uZW50LmNzcycsXG59KVxuZXhwb3J0IGNsYXNzIEVzY2FsYXRpb25EaWFsb2dDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSB2aXNpYmxlOiBib29sZWFuID0gZmFsc2U7XG4gIHdvcmtmbG93Q29kZSA9IGlucHV0LnJlcXVpcmVkPHN0cmluZz4oKTtcbiAgc3RhZ2VDb2RlID0gaW5wdXQucmVxdWlyZWQ8c3RyaW5nPigpO1xuICB0eXBlID0gaW5wdXQ8RXNjYWxhdGlvblR5cGU+KCk7XG5cbiAgQE91dHB1dCgpIGNsb3NlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIGNyZWF0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHt9PigpO1xuXG4gIGVzY2FsYXRpb246IFdyaXRhYmxlU2lnbmFsPEVzY2FsYXRpb24gfCBudWxsPiA9IHNpZ25hbChudWxsKTtcblxuICAvLyBlc2NhbGF0aW9uRm9ybTtcbiAgcmVwb3J0U2NoZWR1bGVzOiBXcml0YWJsZVNpZ25hbDxSZXBvcnRTY2hlZHVsZVtdPiA9IHNpZ25hbChbXSk7XG4gIC8vIG9wZXJhdGlvbkFjdGlvbnM6IFdyaXRhYmxlU2lnbmFsPE9wZXJhdGlvbkFjdGlvbltdPiA9IHNpZ25hbChbXSk7XG5cbiAgLy8gc2VsZWN0ZWRPcGVyYXRpb25BY3Rpb246IEJlaGF2aW9yU3ViamVjdDxPcGVyYXRpb25BY3Rpb25bXCJDb2RlXCJdIHwgbnVsbD4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE9wZXJhdGlvbkFjdGlvbltcIkNvZGVcIl0gfCBudWxsPihudWxsKTtcblxuICAvLyBzZWxlY3RlZE1lc3NhZ2VzOiBXcml0YWJsZVNpZ25hbDxcbiAgLy8gICAoKFJlcG9ydFNjaGVkdWxlICYgeyBJc1Rhc2tEYXRhU291cmNlOiBib29sZWFuIH0pIHwgbnVsbClbXVxuICAvLyA+ID0gc2lnbmFsKFtdKTtcblxuICBzZWxlY3RlZE1lc3NhZ2VzOiAoKFJlcG9ydFNjaGVkdWxlICYgeyBJc1Rhc2tEYXRhU291cmNlOiBib29sZWFuOyBJc01lc3NhZ2VJZDogYm9vbGVhbjsgfSkgfCBudWxsKVtdID0gW107XG5cbiAgZWRpdG9yTW9kZTogRWRpdG9yTW9kZSA9IEVkaXRvck1vZGUuRGVzaWduZXI7XG4gIGVkaXRvckNvbmZpZzogRWRpdG9yQ29uZmlnID0ge1xuICAgIGVkaXRhYmxlOiB0cnVlLFxuICAgIGhlaWdodDogJycsXG4gICAgd2lkdGg6ICcnLFxuICAgIHNob3dUb29sYmFyOiB0cnVlLFxuICAgIG1lbnVJdGVtczogW1xuICAgICAge1xuICAgICAgICBMYWJlbDogJ1RvZ2dsZVZpZXcnLFxuICAgICAgICBJY29uOiAnY29kZS10b2dnbGUnLFxuICAgICAgICBJY29uV2lkdGg6IDIwLFxuICAgICAgICBJY29uSGVpZ2h0OiAyMCxcbiAgICAgICAgSXNTdHJva2U6IGZhbHNlLFxuICAgICAgICBHcm91cEJ5OiAnbG9jYWwnLFxuICAgICAgICBPbkNsaWNrOiAoZXZlbnQ6IEVkaXRvclN0YXRlIHwgdW5kZWZpbmVkKSA9PiB7XG4gICAgICAgICAgdGhpcy5lZGl0b3JNb2RlID1cbiAgICAgICAgICAgIHRoaXMuZWRpdG9yTW9kZSA9PSBFZGl0b3JNb2RlLkRlc2lnbmVyXG4gICAgICAgICAgICAgID8gRWRpdG9yTW9kZS5Db2RlXG4gICAgICAgICAgICAgIDogRWRpdG9yTW9kZS5EZXNpZ25lcjtcbiAgICAgICAgfSxcbiAgICAgICAgSXNEaXNhYmxlZDogKGV2ZW50OiBFZGl0b3JTdGF0ZSB8IHVuZGVmaW5lZCkgPT4ge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfSxcbiAgICAgICAgSXNFbmFibGVkOiAoZXZlbnQ6IEVkaXRvclN0YXRlIHwgdW5kZWZpbmVkKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuZWRpdG9yTW9kZSA9PSBFZGl0b3JNb2RlLkNvZGU7XG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIF0sXG4gIH07XG5cbiAgLy8gSXNUYXNrRGF0YVNvdXJjZTogV3JpdGFibGVTaWduYWw8Ym9vbGVhbltdPiA9IHNpZ25hbChbXSk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsXG4gICAgcHJpdmF0ZSBkYXRhU2VydmljZTogV29ya2Zsb3dEYXRhU2VydmljZSxcbiAgICBwcml2YXRlIHV0aWxTZXJ2aWNlOiBVdGlsU2VydmljZVxuICApIHtcbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgY29uc3Qgc3RhZ2VDb2RlID0gdGhpcy5zdGFnZUNvZGUoKTtcbiAgICAgIGNvbnN0IHdvcmtmbG93Q29kZSA9IHRoaXMud29ya2Zsb3dDb2RlKCk7XG4gICAgICBjb25zdCB0eXBlID0gdGhpcy50eXBlKCk7XG4gICAgICBjb25zb2xlLmxvZygnU3RhZ2UgY29kZSBjaGFuZ2VkOicsIHN0YWdlQ29kZSk7XG4gICAgICBpZiAod29ya2Zsb3dDb2RlICYmIHN0YWdlQ29kZSAmJiB0eXBlKSB7XG4gICAgICAgIC8vIHRoaXMubG9hZEVzY2FsYXRpb24oc3RhZ2VDb2RlKTtcbiAgICAgICAgdGhpcy5zZWFyY2hFc2NhbGF0aW9uKHdvcmtmbG93Q29kZSwgc3RhZ2VDb2RlLCB0eXBlKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICBjb25zdCBlc2NhbGF0aW9uID0gdGhpcy5lc2NhbGF0aW9uKCk7XG4gICAgICBjb25zdCByZXBvcnRTY2hlZHVsZXMgPSB0aGlzLnJlcG9ydFNjaGVkdWxlcygpO1xuXG4gICAgICBpZiAoZXNjYWxhdGlvbiAmJiByZXBvcnRTY2hlZHVsZXMpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZE1lc3NhZ2VzID0gZXNjYWxhdGlvbi5GdWxsTWVzc2FnZXMubWFwKCh7IE1lc3NhZ2UsIElzVGFza0RhdGFTb3VyY2UsIElzTWVzc2FnZUlkIH0pID0+IHtcbiAgICAgICAgICBjb25zdCBmb3VuZCA9IHJlcG9ydFNjaGVkdWxlcy5maW5kKChycykgPT4gcnMuQ29kZSA9PT0gTWVzc2FnZSk7XG4gICAgICAgICAgcmV0dXJuIGZvdW5kID8geyAuLi5mb3VuZCwgSXNUYXNrRGF0YVNvdXJjZSwgSXNNZXNzYWdlSWQgfSA6IG51bGw7XG4gICAgICAgIH0pO1xuICAgICAgICAvLyB0aGlzLnNlbGVjdGVkT3BlcmF0aW9uQWN0aW9uLm5leHQoZXNjYWxhdGlvbi5PcGVyYXRpb25BY3Rpb24gPz8gbnVsbCk7XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKFwiU0VUVElORyBPUFwiLCB0aGlzLnNlbGVjdGVkT3BlcmF0aW9uQWN0aW9uKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIC8vIHRoaXMuZXNjYWxhdGlvbkZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAvLyAgIE1lc3NhZ2VzOiB0aGlzLmZiLmFycmF5KFtdKSxcbiAgICAvLyB9KTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMubG9hZFJlcG9ydFNjaGVkdWxlcygpO1xuICAgIC8vIHRoaXMubG9hZE9wZXJhdGlvbkFjdGlvbnMoKTtcblxuICAgIGlmICh0aGlzLnNlbGVjdGVkTWVzc2FnZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLmFkZE1lc3NhZ2UoKTtcbiAgICB9XG5cbiAgICBjb25zb2xlLmxvZyhcbiAgICAgICdFc2NhbGF0aW9uRGlhbG9nQ29tcG9uZW50IGluaXRpYWxpemVkIHdpdGggc3RhZ2VDb2RlOicsXG4gICAgICB0aGlzLnN0YWdlQ29kZVxuICAgICk7XG4gICAgLy8gY29uc29sZS5sb2coJ0VzY2FsYXRpb25EaWFsb2dDb21wb25lbnQgdHlwZTonLCB0aGlzLnR5cGUpO1xuICB9XG5cbiAgLy8gZ2V0IG1lc3NhZ2VzKCkge1xuICAvLyAgIHJldHVybiB0aGlzLmVzY2FsYXRpb25Gb3JtLmNvbnRyb2xzWydNZXNzYWdlcyddIGFzIEZvcm1BcnJheTtcbiAgLy8gfVxuXG4gIGFkZE1lc3NhZ2UoKSB7XG4gICAgdGhpcy5zZWxlY3RlZE1lc3NhZ2VzID0gdGhpcy5zZWxlY3RlZE1lc3NhZ2VzLmNvbmNhdChbbnVsbF0pO1xuICB9XG5cbiAgZGVsZXRlTWVzc2FnZShsZXNzb25JbmRleDogbnVtYmVyKSB7XG4gICAgdGhpcy5zZWxlY3RlZE1lc3NhZ2VzID0gdGhpcy5zZWxlY3RlZE1lc3NhZ2VzLnNwbGljZShsZXNzb25JbmRleCwgMSk7XG4gIH1cblxuICBvbk1lc3NhZ2VTZWxlY3RlZChyZXBvcnRTY2hlZHVsZTogUmVwb3J0U2NoZWR1bGUsIGluZGV4OiBudW1iZXIpIHtcbiAgICBjb25zb2xlLmxvZygnU2VsZWN0ZWQgbWVzc2FnZTonLCByZXBvcnRTY2hlZHVsZSwgJ2F0IGluZGV4OicsIGluZGV4KTtcbiAgICB0aGlzLnNlbGVjdGVkTWVzc2FnZXMgPSB0aGlzLnNlbGVjdGVkTWVzc2FnZXMubWFwKChtc2csIGkpID0+IHtcbiAgICAgIGlmIChpID09PSBpbmRleCkge1xuICAgICAgICByZXR1cm4geyAuLi5yZXBvcnRTY2hlZHVsZSwgSXNUYXNrRGF0YVNvdXJjZTogZmFsc2UsIElzTWVzc2FnZUlkOiB0cnVlIH07XG4gICAgICB9XG4gICAgICByZXR1cm4gbXNnO1xuICAgIH0pO1xuICB9XG5cbiAgaXNWYWxpZFNlbGVjdGlvbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZE1lc3NhZ2VzLmV2ZXJ5KChtc2cpID0+ICEhbXNnKTtcbiAgfVxuXG4gIGFzeW5jIHNhdmVNZXNzYWdlcygpIHtcbiAgICBjb25zb2xlLmxvZyh0aGlzLnNlbGVjdGVkTWVzc2FnZXMpO1xuICAgIGNvbnN0IHRhc2tOb3RpZmljYXRpb25zOiBUYXNrTm90aWZpY2F0aW9uW10gPSB0aGlzLnNlbGVjdGVkTWVzc2FnZXNcbiAgICAgIC5maWx0ZXIoKG1zZykgPT4gISFtc2cpXG4gICAgICAubWFwKChtc2cpID0+ICh7XG4gICAgICAgIElkOiAnJyxcbiAgICAgICAgQ29kZTogJycsXG4gICAgICAgIFRlbmFudElkOiAnUERMVEM2JyxcbiAgICAgICAgTWVzc2FnZTogbXNnLkNvZGUsXG4gICAgICAgIE5hbWU6IG1zZy5OYW1lLFxuICAgICAgICBTdWJqZWN0OiBtc2cuU3ViamVjdCxcbiAgICAgICAgU2VuZGVyQ29uZmlnOiBtc2cuTWVzc2FnZUNvbmZpZyxcbiAgICAgICAgTWVkaXVtOiBtc2cuTWVkaXVtLFxuICAgICAgICBOb3RpZmljYXRpb25UeXBlOiBUYXNrTm90aWZpY2F0aW9uVHlwZS5Fc2NhbGF0aW9uLFxuICAgICAgICBJc01lc3NhZ2VJZDogbXNnLklzTWVzc2FnZUlkLFxuICAgICAgICBJc1Rhc2tEYXRhU291cmNlOiBtc2cuSXNUYXNrRGF0YVNvdXJjZSxcbiAgICAgICAgTWVzc2FnZURhdGFTb3VyY2U6ICFtc2cuSXNUYXNrRGF0YVNvdXJjZSA/IG1zZy5SZXBvcnREYXRhU291cmNlIDogJycsXG4gICAgICAgIERhdGFTdGF0ZTogT2JqZWN0U3RhdGUuTmV3LFxuICAgICAgICBpZDogJycsXG4gICAgICAgIFNlcnZpY2VOYW1lOiAnJyxcbiAgICAgICAgQ3JlYXRlZEF0OiBuZXcgRGF0ZSgpLFxuICAgICAgICBVcGRhdGVkQXQ6IG5ldyBEYXRlKCksXG4gICAgICB9KSk7XG5cbiAgICAvLyBpZiAodGFza05vdGlmaWNhdGlvbnMubGVuZ3RoKSB7XG4gICAgLy8gdGhpcy5jcmVhdGVkLmVtaXQodGFza05vdGlmaWNhdGlvbnMpO1xuICAgIGNvbnNvbGUubG9nKHRhc2tOb3RpZmljYXRpb25zKTtcbiAgICB0aGlzLm9uRGlhbG9nQ2xvc2UobnVsbCk7XG4gICAgY29uc3QgZGF0YTogUGFydGlhbDxFc2NhbGF0aW9uPiA9IHtcbiAgICAgIC4uLih0aGlzLmVzY2FsYXRpb24oKSA/PyB7XG4gICAgICAgIElkOiAnJyxcbiAgICAgICAgQ29kZTogJycsXG4gICAgICAgIFRlbmFudElkOiAnUERMVEM2JyxcbiAgICAgICAgV29ya2Zsb3c6IHRoaXMud29ya2Zsb3dDb2RlKCksXG4gICAgICAgIFN0YWdlOiB0aGlzLnN0YWdlQ29kZSgpLFxuICAgICAgICBUeXBlOiB0aGlzLnR5cGUoKSxcbiAgICAgICAgRXhwaXJhdGlvbldhcm5pbmc6IDAsXG4gICAgICAgIER1cmF0aW9uOiAwLFxuICAgICAgICBOb3RpZnlBZnRlcjogMCxcbiAgICAgICAgUG9zaXRpb246IDEsXG4gICAgICAgIERhdGFTdGF0ZTogT2JqZWN0U3RhdGUuTmV3LFxuICAgICAgfSksXG4gICAgICAvLyBPcGVyYXRpb25BY3Rpb246IHRoaXMuc2VsZWN0ZWRPcGVyYXRpb25BY3Rpb24uZ2V0VmFsdWUoKSxcbiAgICAgIE1lc3NhZ2VzOiB0YXNrTm90aWZpY2F0aW9ucy5tYXAoKHsgQ29kZSB9KSA9PiBDb2RlKSxcbiAgICAgIEZ1bGxNZXNzYWdlczogdGFza05vdGlmaWNhdGlvbnMsXG4gICAgfTtcbiAgICBjb25zb2xlLmxvZyhcIlNhdmluZyBlc2NhbGF0aW9uIGRhdGE6XCIsIGRhdGEpO1xuICAgIHRoaXMuZGF0YVNlcnZpY2Uuc2F2ZUVzY2FsYXRpb25zKFtkYXRhXSkudGhlbigoZGF0YSkgPT4ge1xuICAgICAgY29uc29sZS5sb2coXCJFc2NhbGF0aW9uIHNhdmVkOlwiLCBkYXRhKTtcbiAgICAgIHRoaXMuZXNjYWxhdGlvbi5zZXQoZGF0YT8uWzBdID8/IG51bGwpO1xuICAgICAgdGhpcy51dGlsU2VydmljZS5zaG93U3VjY2VzcygnRXNjYWxhdGlvbiBzYXZlZCBzdWNjZXNzZnVsbHknKTtcbiAgICAgIHRoaXMub25EaWFsb2dDbG9zZShudWxsKTtcbiAgICB9KTtcbiAgICAvLyB9XG4gIH1cblxuICBkZWxldGVFc2NhbGF0aW9uKCkge1xuICAgIGNvbnN0IGVzY2FsYXRpb24gPSB0aGlzLmVzY2FsYXRpb24oKTtcbiAgICBpZiAoZXNjYWxhdGlvbikge1xuICAgICAgdGhpcy5kYXRhU2VydmljZS5kZWxldGVFc2NhbGF0aW9ucyhbZXNjYWxhdGlvbi5Db2RlXSkudGhlbigoZGF0YSkgPT4ge1xuICAgICAgICBjb25zb2xlLmxvZyhcIkVzY2FsYXRpb24gZGVsZXRlZDpcIiwgZGF0YSk7XG4gICAgICAgIHRoaXMuZXNjYWxhdGlvbi5zZXQobnVsbCk7XG4gICAgICAgIHRoaXMub25EaWFsb2dDbG9zZShudWxsKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgbG9hZEVzY2FsYXRpb24oc3RhZ2VDb2RlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmRhdGFTZXJ2aWNlLmdldEVzY2FsYXRpb25XaXRoUGFyYW0oc3RhZ2VDb2RlKS50aGVuKChkYXRhKSA9PiB7XG4gICAgICB0aGlzLmVzY2FsYXRpb24uc2V0KGRhdGEuUmVzdWx0WzBdID8/IG51bGwpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBzZWFyY2hFc2NhbGF0aW9uKFxuICAgIFdvcmtmbG93OiBzdHJpbmcsXG4gICAgU3RhZ2U6IHN0cmluZyxcbiAgICBUeXBlOiBFc2NhbGF0aW9uVHlwZVxuICApOiB2b2lkIHtcbiAgICB0aGlzLmRhdGFTZXJ2aWNlXG4gICAgICAuc2VhcmNoRXNjYWxhdGlvbldpdGhQYXJhbSh7XG4gICAgICAgIFdvcmtmbG93LFxuICAgICAgICBTdGFnZSxcbiAgICAgICAgVHlwZSxcbiAgICAgIH0pXG4gICAgICAudGhlbigoZGF0YSkgPT4ge1xuICAgICAgICB0aGlzLmVzY2FsYXRpb24uc2V0KGRhdGEuUmVzdWx0WzBdID8/IG51bGwpO1xuICAgICAgICBjb25zb2xlLmxvZyhcIkVzY2FsYXRpb24gbG9hZGVkOlwiLCB0aGlzLmVzY2FsYXRpb24oKSk7XG4gICAgICAgIC8vIHRoaXMuc2VsZWN0ZWRPcGVyYXRpb25BY3Rpb24ubmV4dChkYXRhLlJlc3VsdFswXT8uT3BlcmF0aW9uQWN0aW9uID8/IG51bGwpO1xuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGxvYWRSZXBvcnRTY2hlZHVsZXMoKTogdm9pZCB7XG4gICAgdGhpcy5kYXRhU2VydmljZS5nZXRSZXBvcnRTY2hlZHVsZXMoKS50aGVuKChkYXRhKSA9PiB7XG4gICAgICB0aGlzLnJlcG9ydFNjaGVkdWxlcy5zZXQoZGF0YS5SZXN1bHQpO1xuICAgIH0pO1xuICB9XG5cbiAgLy8gcHJpdmF0ZSBsb2FkT3BlcmF0aW9uQWN0aW9ucygpOiB2b2lkIHtcbiAgLy8gICB0aGlzLmRhdGFTZXJ2aWNlLmdldE9wZXJhdGlvbkFjdGlvbnMoKS50aGVuKChkYXRhKSA9PiB7XG4gIC8vICAgICB0aGlzLm9wZXJhdGlvbkFjdGlvbnMuc2V0KGRhdGEuUmVzdWx0KTtcbiAgLy8gICB9KTtcbiAgLy8gfVxuXG4gIG9uRGlhbG9nQ2xvc2UoZXZlbnREYXRhOiBhbnkpIHtcbiAgICBjb25zb2xlLmxvZygnRGlhbG9nIGNsb3NlZCwgcmVjZWl2ZWQgZGF0YTonLCBldmVudERhdGEpO1xuICAgIHRoaXMuZXNjYWxhdGlvbi5zZXQobnVsbCk7XG4gICAgdGhpcy5zZWxlY3RlZE1lc3NhZ2VzID0gW107XG4gICAgdGhpcy5jbG9zZWQuZW1pdCgpO1xuICB9XG5cbiAgb25EaWFsb2dPcGVuKGV2ZW50RGF0YTogYW55KSB7XG4gICAgY29uc29sZS5sb2coJ0RpYWxvZyBvcGVuZWQsIHJlY2VpdmVkIGRhdGE6JywgZXZlbnREYXRhKTtcbiAgfVxuXG4gIGlzTm90TmV3KCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGVzY2FsYXRpb24gPSB0aGlzLmVzY2FsYXRpb24oKTtcbiAgICByZXR1cm4gZXNjYWxhdGlvbiAhPT0gbnVsbCAmJiBlc2NhbGF0aW9uLkRhdGFTdGF0ZSAhPT0gJ05ldyc7XG4gIH1cbn1cbiIsIjx2ZXJiZW4tZGlhbG9ndWUgW3Nob3dDbG9zZUljb25dPVwidHJ1ZVwiIFtkaXNtaXNzT3V0c2lkZUNsaWNrXT1cInRydWVcIiBbY2xvc2VPbkVzY2FwZV09XCJ0cnVlXCIgW3NpemVdPVwiJ21lZGl1bSdcIlxuICBbbW9kZV09XCInZHJhd2VyJ1wiIFtkaXNhYmxlRm9vdGVyXT1cImZhbHNlXCIgW2lzVmlzaWJsZV09XCJ2aXNpYmxlXCIgW2hlYWRlclRlbXBsYXRlXT1cImhlYWRlclRlbXBsYXRlXCJcbiAgW2JvZHlUZW1wbGF0ZV09XCJib2R5VGVtcGxhdGVcIiBbZm9vdGVyVGVtcGxhdGVdPVwiZm9vdGVyVGVtcGxhdGVcIiAob3Blbk1vZGFsKT1cIm9uRGlhbG9nT3BlbigkZXZlbnQpXCJcbiAgKGNsb3NlTW9kYWwpPVwib25EaWFsb2dDbG9zZSgkZXZlbnQpXCI+XG48L3ZlcmJlbi1kaWFsb2d1ZT5cblxuPG5nLXRlbXBsYXRlICNoZWFkZXJUZW1wbGF0ZT5cbiAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbiBwLTMgdGV4dC14cyBib3JkZXItYi00IGJvcmRlci1bI0ZGRTY4MV1cIj5cbiAgICA8YnV0dG9uIGNsYXNzPVwibXItNFwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwib25EaWFsb2dDbG9zZSgkZXZlbnQpXCI+XG4gICAgICA8c3BhbiBjbGFzcz1cImJsb2NrIHctMi41IGgtMi41IGJvcmRlci10IGJvcmRlci1sIGJvcmRlci1bIzNFM0UzRV0vNzAgdHJhbnNmb3JtIC1yb3RhdGUtNDVcIj48L3NwYW4+XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNib2R5VGVtcGxhdGU+XG4gIDxkaXY+XG4gICAgPGRpdiBjbGFzcz1cIm1iLTQgc3BhY2UteS00XCI+XG4gICAgICA8IS0tIDxkaXYgY2xhc3M9XCJzcGFjZS15LTFcIj5cbiAgICAgICAgPGxhYmVsIGZvcj1cIm9wZXJhdGlvbi1hY3Rpb25cIiBjbGFzcz1cInRleHQtc20gZm9udC1zZW1pYm9sZCB0ZXh0LVsjM0UzRTNFXVwiPlxuICAgICAgICAgIEVzY2FsYXRpb25cbiAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgPHZlcmJlbi1kcm9wLWRvd25cbiAgICAgICAgICAgIGlkPVwib3BlcmF0aW9uLWFjdGlvblwiXG4gICAgICAgICAgICBzdHlsZUNsYXNzPVwidy1mdWxsXCJcbiAgICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgICAgICBbbXVsdGlzZWxlY3RdPVwiZmFsc2VcIlxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJTZWxlY3QgT3BlcmF0aW9uIEFjdGlvblwiXG4gICAgICAgICAgICBbb3B0aW9uc109XCJvcGVyYXRpb25BY3Rpb25zKClcIlxuICAgICAgICAgICAgb3B0aW9uTGFiZWw9XCJOYW1lXCJcbiAgICAgICAgICAgIG9wdGlvblZhbHVlPVwiQ29kZVwiXG4gICAgICAgICAgICBbbmdNb2RlbF09XCJzZWxlY3RlZE9wZXJhdGlvbkFjdGlvbiB8IGFzeW5jXCJcbiAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInNlbGVjdGVkT3BlcmF0aW9uQWN0aW9uLm5leHQoJGV2ZW50KVwiXG4gICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgPjwvdmVyYmVuLWRyb3AtZG93bj5cbiAgICAgIDwvZGl2PiAtLT5cblxuICAgICAgPGRpdiBjbGFzcz1cInNwYWNlLXktNFwiICpuZ0Zvcj1cImxldCBtZXNzYWdlIG9mIHNlbGVjdGVkTWVzc2FnZXM7IGxldCBpID0gaW5kZXhcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNwYWNlLXktMVwiPlxuICAgICAgICAgIDxsYWJlbCBbZm9yXT1cIm1lc3NhZ2UgKyAnLScgKyBpXCIgY2xhc3M9XCJ0ZXh0LXNtIGZvbnQtc2VtaWJvbGQgdGV4dC1bIzNFM0UzRV1cIj5cbiAgICAgICAgICAgIE1lc3NhZ2Uge3sgaSArIDEgfX1cbiAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgIDx2ZXJiZW4tZHJvcC1kb3duIFtpZF09XCJtZXNzYWdlICsgJy0nICsgaVwiIHNlbGVjdEtleT1cIkNvZGVcIiBzdHlsZUNsYXNzPVwidy1mdWxsXCIgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICAgIFttdWx0aXNlbGVjdF09XCJmYWxzZVwiIHBsYWNlaG9sZGVyPVwiU2VsZWN0IE1lc3NhZ2VcIiBbb3B0aW9uc109XCJyZXBvcnRTY2hlZHVsZXMoKVwiIG9wdGlvbkxhYmVsPVwiTmFtZVwiXG4gICAgICAgICAgICBbbmdNb2RlbF09XCJtZXNzYWdlXCIgKG5nTW9kZWxDaGFuZ2UpPVwib25NZXNzYWdlU2VsZWN0ZWQoJGV2ZW50LCBpKVwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCI+PC92ZXJiZW4tZHJvcC1kb3duPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICBAaWYgKG1lc3NhZ2UpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGdhcC00XCI+XG4gICAgICAgICAgPGxhYmVsIFtmb3JdPVwiJ2lzLScgKyBtZXNzYWdlICsgJy0nICsgaSArICd0YXNrLWRhdGEtc291cmNlJ1wiIGNsYXNzPVwidGV4dC1zbSBmb250LXNlbWlib2xkIHRleHQtWyMzRTNFM0VdXCI+XG4gICAgICAgICAgICBJcyBUYXNrIERhdGEgU291cmNlP1xuICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgPHZlcmJlbmEtc3dpdGNoIFtpZF09XCInaXMtJyArIG1lc3NhZ2UgKyAnLScgKyBpICsgJ3Rhc2stZGF0YS1zb3VyY2UnXCIgb25UZXh0PVwiWWVzXCIgb2ZmVGV4dD1cIk5vXCJcbiAgICAgICAgICAgIFtvbkNvbG9yXT1cIicjMUEyMzdFJ1wiIFsobmdNb2RlbCldPVwibWVzc2FnZS5Jc1Rhc2tEYXRhU291cmNlXCI+PC92ZXJiZW5hLXN3aXRjaD5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGdhcC00XCI+XG4gICAgICAgICAgPGxhYmVsIFtmb3JdPVwiJ2lzLScgKyBtZXNzYWdlICsgJy0nICsgaSArICdpcy1tZXNzYWdlLWlkJ1wiIGNsYXNzPVwidGV4dC1zbSBmb250LXNlbWlib2xkIHRleHQtWyMzRTNFM0VdXCI+XG4gICAgICAgICAgICBJcyBNZXNzYWdlIElEP1xuICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgPHZlcmJlbmEtc3dpdGNoIFtpZF09XCInaXMtJyArIG1lc3NhZ2UgKyAnLScgKyBpICsgJ2lzLW1lc3NhZ2UtaWQnXCIgb25UZXh0PVwiWWVzXCIgb2ZmVGV4dD1cIk5vXCJcbiAgICAgICAgICAgIFtvbkNvbG9yXT1cIicjMUEyMzdFJ1wiIFsobmdNb2RlbCldPVwibWVzc2FnZS5Jc01lc3NhZ2VJZFwiPjwvdmVyYmVuYS1zd2l0Y2g+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICB9XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImJvcmRlciBib3JkZXItcHJpbWFyeSAtbS0yIHJvdW5kZWQtbGcgZmxleCBmbGV4LWNvbCBnYXAtM1wiICpuZ0lmPVwibWVzc2FnZVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzcGFjZS15LTMgYm9yZGVyLWIgYm9yZGVyLXByaW1hcnkgcHgtMiBweS0zXCI+XG4gICAgICAgICAgICA8dmVyYmVuYS1pbnB1dCBuYW1lPVwiU3ViamVjdFwiIFsobmdNb2RlbCldPVwibWVzc2FnZS5TdWJqZWN0XCIgW3JlYWRPbmx5XT1cInRydWVcIiAvPlxuICAgICAgICAgICAgPHZlcmJlbmEtaW5wdXQgbmFtZT1cIlJlY2lwaWVudHNcIiBbKG5nTW9kZWwpXT1cIm1lc3NhZ2UuUmVjaXBpZW50c1wiIFtyZWFkT25seV09XCJ0cnVlXCIgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8bGliLWVkaXRvciBbZWRpdG9yQ29uZmlnXT1cImVkaXRvckNvbmZpZ1wiIFtlZGl0b3JNb2RlXT1cImVkaXRvck1vZGVcIlxuICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJtZXNzYWdlLlBsYWluTWVzc2FnZVwiPjwvbGliLWVkaXRvcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2Zvb3RlclRlbXBsYXRlPlxuICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWJldHdlZW4gaXRlbXMtY2VudGVyIGdhcC04IHctZnVsbFwiPlxuICAgIDx2ZXJiZW5hLWJ1dHRvbiBzdHlsZT1cImN1cnNvcjogcG9pbnRlclwiIHR5cGU9XCJidXR0b25cIiB0ZXh0PVwiQWRkIE1lc3NhZ2VcIiBiZ0NvbG9yPVwiI0ZGRTY4MVwiIHRleHRDb2xvcj1cIiM0MDQwNDBcIlxuICAgICAgYm9yZGVyUmFkaXVzPVwiOHB4XCIgcGQ9XCIxMHB4IDIwcHhcIiBoZWlnaHQ9XCIzOXB4XCIgZm9udFdlaWdodD1cIjYwMFwiIGZvbnRTaXplPVwiMTJweFwiIHN2Zz1cImFkZFwiIFtzdmdIZWlnaHRdPVwiMTRcIlxuICAgICAgW3N2Z1dpZHRoXT1cIjE0XCIgW3N2Z1NpemVdPVwiJ3NtJ1wiIChjbGljayk9XCJhZGRNZXNzYWdlKClcIj48L3ZlcmJlbmEtYnV0dG9uPlxuXG4gICAgPGRpdiBjbGFzcz1cImZsZXggZ2FwLTIgaXRlbXMtY2VudGVyXCI+XG4gICAgICA8dmVyYmVuYS1idXR0b24gc3R5bGU9XCJjdXJzb3I6IHBvaW50ZXJcIiB0eXBlPVwiYnV0dG9uXCIgdGV4dD1cIkRlbGV0ZVwiIGJnQ29sb3I9XCIjRkZFNjgxXCIgdGV4dENvbG9yPVwiIzQwNDA0MFwiXG4gICAgICAgIGJvcmRlclJhZGl1cz1cIjhweFwiIHBkPVwiMTBweCAyMHB4XCIgd2lkdGg9XCIxMTBweFwiIGhlaWdodD1cIjM5cHhcIiBmb250V2VpZ2h0PVwiNjAwXCIgZm9udFNpemU9XCIxMnB4XCIgc3ZnPVwiZGVsZXRlXCJcbiAgICAgICAgW3N2Z0hlaWdodF09XCIxNFwiIFtzdmdXaWR0aF09XCIxNFwiIFtzdmdTaXplXT1cIidzbSdcIiAoY2xpY2spPVwiZGVsZXRlRXNjYWxhdGlvbigpXCI+PC92ZXJiZW5hLWJ1dHRvbj5cblxuICAgICAgPHZlcmJlbmEtYnV0dG9uIHN0eWxlPVwiY3Vyc29yOiBwb2ludGVyXCIgdHlwZT1cImJ1dHRvblwiIHRleHQ9XCJTZW5kXCIgYmdDb2xvcj1cIiNGRkU2ODFcIiB0ZXh0Q29sb3I9XCIjNDA0MDQwXCJcbiAgICAgICAgYm9yZGVyUmFkaXVzPVwiOHB4XCIgcGQ9XCIxMHB4IDIwcHhcIiB3aWR0aD1cIjE2MHB4XCIgaGVpZ2h0PVwiMzlweFwiIGZvbnRXZWlnaHQ9XCI2MDBcIiBmb250U2l6ZT1cIjEycHhcIiBzdmc9XCJzZW5kXCJcbiAgICAgICAgW3N2Z0hlaWdodF09XCIxNFwiIFtzdmdXaWR0aF09XCIxNFwiIFtzdmdTaXplXT1cIidzbSdcIiAoY2xpY2spPVwic2F2ZU1lc3NhZ2VzKClcIj48L3ZlcmJlbmEtYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -48,6 +48,11 @@ export class WorkflowDataService {
48
48
  // console.log('Saving workflows', requests);
49
49
  return this.httpService.post(url, requests, this.envSvc.environment.WorkFlowAPI);
50
50
  }
51
+ deleteEscalations(requests) {
52
+ const url = `${this.ESCALATION_MODEL_BASE_PATH}/DeleteEscalation`;
53
+ // console.log('Saving workflows', requests);
54
+ return this.httpService.post(url, requests, this.envSvc.environment.WorkFlowAPI);
55
+ }
51
56
  searchEscalationWithParam(params, skip = 0, limit = 1, sortOrder = 'Asc') {
52
57
  const url = `${this.ESCALATION_MODEL_BASE_PATH}/SearchEscalations/${skip}/${limit}`;
53
58
  const payload = Object.entries(params).map(([key, value]) => ({
@@ -160,4 +165,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
160
165
  providedIn: 'root',
161
166
  }]
162
167
  }], ctorParameters: () => [{ type: i1.HttpWebRequestService }, { type: i1.EnvironmentService }] });
163
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3ctZGF0YS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmVyYmVuLXdvcmtmbG93LXVpL3NyYy9saWIvY29tcG9uZW50cy93b3JrZmxvdy1kZXNpZ25lci93b3JrZmxvdy1kYXRhLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQThDLFdBQVcsRUFBMEMsY0FBYyxFQUFFLE1BQU0sRUFBTyxrQkFBa0IsRUFBMkIsTUFBTSxtQ0FBbUMsQ0FBQzs7O0FBTTlOLE1BQU0sT0FBTyxtQkFBbUI7SUFXcEI7SUFDQTtJQVhPLHdCQUF3QixHQUFHLFVBQVUsQ0FBQztJQUN0QyxvQkFBb0IsR0FBRyxNQUFNLENBQUM7SUFDOUIsb0JBQW9CLEdBQUcsTUFBTSxDQUFDO0lBQzlCLDBCQUEwQixHQUFHLFlBQVksQ0FBQztJQUMxQyxrQkFBa0IsR0FBRyxRQUFRLENBQUM7SUFDOUIsY0FBYyxHQUFHLE1BQU0sQ0FBQztJQUN4QixxQkFBcUIsR0FBRyxPQUFPLENBQUM7SUFDaEMsK0JBQStCLEdBQUcsUUFBUSxDQUFDO0lBRTVELFlBQ1UsV0FBa0MsRUFDbEMsTUFBMEI7UUFEMUIsZ0JBQVcsR0FBWCxXQUFXLENBQXVCO1FBQ2xDLFdBQU0sR0FBTixNQUFNLENBQW9CO0lBQ2hDLENBQUM7SUFFTCxvQkFBb0IsQ0FDbEIsS0FBYSxFQUNiLE9BQWUsQ0FBQyxFQUNoQixRQUFnQixDQUFDLEVBQ2pCLFlBQW9CLFdBQVcsRUFDL0IsWUFBb0IsS0FBSztRQUV6QixNQUFNLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyx3QkFBd0IsMEJBQTBCLEtBQUssSUFBSSxJQUFJLElBQUksS0FBSyxJQUFJLFNBQVMsSUFBSSxTQUFTLEVBQUUsQ0FBQztRQUN6SCxPQUFPLElBQUksQ0FBQyxXQUFX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VSxtQkFBbUI7NEdBQW5CLG1CQUFtQixjQUZsQixNQUFNOzs0RkFFUCxtQkFBbUI7a0JBSC9CLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0b3JUYWcsIEVzY2FsYXRpb24sIEZsb3dhYmxlU3RhdHVzLCBGb3JtLCBPYmplY3RTdGF0ZSwgT3BlcmF0aW9uQWN0aW9uLCBQYWdlZCwgUmVwb3J0U2NoZWR1bGUsIFN0YWdlQWN0b3JSdWxlLCBTdGF0dXMsIFRhZywgVGFza0Fzc2lnbm1lbnRUeXBlLCBXb3JrZmxvdywgV29ya2Zsb3dTdGFnZSB9IGZyb20gJ3ZlcmJlbi13b3JrZmxvdy11aS9zcmMvbGliL21vZGVscyc7XG5pbXBvcnQgeyBFbnZpcm9ubWVudFNlcnZpY2UsIEh0dHBXZWJSZXF1ZXN0U2VydmljZSB9IGZyb20gJ3ZlcmJlbi13b3JrZmxvdy11aS9zcmMvbGliL3NlcnZpY2VzJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFdvcmtmbG93RGF0YVNlcnZpY2Uge1xuICBwcml2YXRlIHJlYWRvbmx5IFdPUktGTE9XX01PREVMX0JBU0VfUEFUSCA9ICdXb3JrZmxvdyc7XG4gIHByaXZhdGUgcmVhZG9ubHkgQVVUSF9NT0RFTF9CQVNFX1BBVEggPSAnVXNlcic7XG4gIHByaXZhdGUgcmVhZG9ubHkgRk9STV9NT0RFTF9CQVNFX1BBVEggPSAnRm9ybSc7XG4gIHByaXZhdGUgcmVhZG9ubHkgRVNDQUxBVElPTl9NT0RFTF9CQVNFX1BBVEggPSAnRXNjYWxhdGlvbic7XG4gIHByaXZhdGUgcmVhZG9ubHkgUlNfTU9ERUxfQkFTRV9QQVRIID0gJ1JlcG9ydCc7XG4gIHByaXZhdGUgcmVhZG9ubHkgVVRJTF9CQVNFX1BBVEggPSAnVXRpbCc7XG4gIHByaXZhdGUgcmVhZG9ubHkgQUNUT1JfTU9ERUxfQkFTRV9QQVRIID0gJ0FjdG9yJztcbiAgcHJpdmF0ZSByZWFkb25seSBGTE9XQUJMRV9TVEFUVVNfTU9ERUxfQkFTRV9QQVRIID0gJ1N0YXR1cyc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBodHRwU2VydmljZTogSHR0cFdlYlJlcXVlc3RTZXJ2aWNlLFxuICAgIHByaXZhdGUgZW52U3ZjOiBFbnZpcm9ubWVudFNlcnZpY2VcbiAgKSB7IH1cblxuICBnZXRXb3JrZmxvd1dpdGhQYXJhbShcbiAgICBwYXJhbTogc3RyaW5nLFxuICAgIHNraXA6IG51bWJlciA9IDAsXG4gICAgbGltaXQ6IG51bWJlciA9IDEsXG4gICAgc29ydFBhcmFtOiBzdHJpbmcgPSAnQ3JlYXRlZEF0JyxcbiAgICBzb3J0T3JkZXI6IHN0cmluZyA9ICdBc2MnXG4gICk6IFByb21pc2U8UGFnZWQ8V29ya2Zsb3c+PiB7XG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5XT1JLRkxPV19NT0RFTF9CQVNFX1BBVEh9L0dldFdvcmtmbG93c1dpdGhQYXJhbS8ke3BhcmFtfS8ke3NraXB9LyR7bGltaXR9LyR7c29ydFBhcmFtfS8ke3NvcnRPcmRlcn1gO1xuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlLmdldCh1cmwpIGFzIFByb21pc2U8UGFnZWQ8V29ya2Zsb3c+PjtcbiAgfVxuXG4gIGdldFdvcmtmbG93cyhza2lwOiBudW1iZXIgPSAwLCBsaW1pdDogbnVtYmVyID0gMCk6IFByb21pc2U8UGFnZWQ8V29ya2Zsb3c+PiB7XG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5XT1JLRkxPV19NT0RFTF9CQVNFX1BBVEh9L0dldFdvcmtmbG93cy8ke3NraXB9LyR7bGltaXR9YDtcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZS5nZXQoXG4gICAgICB1cmwsXG4gICAgICB0aGlzLmVudlN2Yy5lbnZpcm9ubWVudC5Xb3JrRmxvd0FQSVxuICAgICkgYXMgUHJvbWlzZTxQYWdlZDxXb3JrZmxvdz4+O1xuICB9XG5cbiAgZ2V0Rm9ybXMoc2tpcDogbnVtYmVyID0gMCwgbGltaXQ6IG51bWJlciA9IDApOiBQcm9taXNlPFBhZ2VkPEZvcm0+PiB7XG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5GT1JNX01PREVMX0JBU0VfUEFUSH0vR2V0Rm9ybXMvJHtza2lwfS8ke2xpbWl0fWA7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2UuZ2V0KFxuICAgICAgdXJsLFxuICAgICAgdGhpcy5lbnZTdmMuZW52aXJvbm1lbnQuV29ya0Zsb3dBUElcbiAgICApIGFzIFByb21pc2U8UGFnZWQ8Rm9ybT4+O1xuICB9XG5cbiAgZ2V0VGFncyhza2lwOiBudW1iZXIgPSAwLCBsaW1pdDogbnVtYmVyID0gMCk6IFByb21pc2U8UGFnZWQ8VGFnPj4ge1xuICAgIGNvbnN0IHVybCA9IGAke3RoaXMuQVVUSF9NT0RFTF9CQVNFX1BBVEh9L0dldFRhZ3MvJHtza2lwfS8ke2xpbWl0fWA7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2UuZ2V0KFxuICAgICAgdXJsLFxuICAgICAgdGhpcy5lbnZTdmMuZW52aXJvbm1lbnQuQXV0aEFQSVxuICAgICkgYXMgUHJvbWlzZTxQYWdlZDxUYWc+PjtcbiAgfVxuXG4gIHNhdmVXb3JrZmxvd3MocmVxdWVzdHM6IFBhcnRpYWw8V29ya2Zsb3c+W10pOiBQcm9taXNlPGFueT4ge1xuICAgIGNvbnN0IHVybCA9IGAke3RoaXMuV09SS0ZMT1dfTU9ERUxfQkFTRV9QQVRIfS9TYXZlV29ya2Zsb3dzYDtcbiAgICAvLyBjb25zb2xlLmxvZygnU2F2aW5nIHdvcmtmbG93cycsIHJlcXVlc3RzKTtcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZS5wb3N0KFxuICAgICAgdXJsLFxuICAgICAgcmVxdWVzdHMsXG4gICAgICB0aGlzLmVudlN2Yy5lbnZpcm9ubWVudC5Xb3JrRmxvd0FQSVxuICAgICk7XG4gIH1cblxuICBkZWxldGVXb3JrZmxvd1N0YWdlcyhyZXF1ZXN0czogV29ya2Zsb3dTdGFnZVsnQ29kZSddW10pOiBQcm9taXNlPGFueT4ge1xuICAgIGNvbnN0IHVybCA9IGAke3RoaXMuV09SS0ZMT1dfTU9ERUxfQkFTRV9QQVRIfS9EZWxldGVXb3JrZmxvd1N0YWdlYDtcbiAgICAvLyBjb25zb2xlLmxvZygnU2F2aW5nIHdvcmtmbG93cycsIHJlcXVlc3RzKTtcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZS5wb3N0KFxuICAgICAgdXJsLFxuICAgICAgcmVxdWVzdHMsXG4gICAgICB0aGlzLmVudlN2Yy5lbnZpcm9ubWVudC5Xb3JrRmxvd0FQSVxuICAgICk7XG4gIH1cblxuICBzYXZlRXNjYWxhdGlvbnMocmVxdWVzdHM6IFBhcnRpYWw8RXNjYWxhdGlvbj5bXSk6IFByb21pc2U8YW55PiB7XG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5FU0NBTEFUSU9OX01PREVMX0JBU0VfUEFUSH0vU2F2ZUVzY2FsYXRpb25zYDtcbiAgICAvLyBjb25zb2xlLmxvZygnU2F2aW5nIHdvcmtmbG93cycsIHJlcXVlc3RzKTtcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZS5wb3N0KFxuICAgICAgdXJsLFxuICAgICAgcmVxdWVzdHMsXG4gICAgICB0aGlzLmVudlN2Yy5lbnZpcm9ubWVudC5Xb3JrRmxvd0FQSVxuICAgICk7XG4gIH1cblxuICBzZWFyY2hFc2NhbGF0aW9uV2l0aFBhcmFtKFxuICAgIHBhcmFtczogUGljazxFc2NhbGF0aW9uLCAnV29ya2Zsb3cnIHwgJ1N0YWdlJyB8ICdUeXBlJz4sXG4gICAgc2tpcDogbnVtYmVyID0gMCxcbiAgICBsaW1pdDogbnVtYmVyID0gMSxcbiAgICBzb3J0T3JkZXI6IHN0cmluZyA9ICdBc2MnXG4gICk6IFByb21pc2U8UGFnZWQ8RXNjYWxhdGlvbj4+IHtcbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLkVTQ0FMQVRJT05fTU9ERUxfQkFTRV9QQVRIfS9TZWFyY2hFc2NhbGF0aW9ucy8ke3NraXB9LyR7bGltaXR9YDtcbiAgICBjb25zdCBwYXlsb2FkID0gT2JqZWN0LmVudHJpZXMocGFyYW1zKS5tYXAoKFtrZXksIHZhbHVlXSkgPT4gKHtcbiAgICAgIElzQXV0b0Zyb21EYXRlOiB0cnVlLFxuICAgICAgSXNBdXRvRW5kRGF0ZTogdHJ1ZSxcbiAgICAgIFByb3BlcnR5TmFtZToga2V5LFxuICAgICAgRW50aXR5VmFsdWU6IHZhbHVlLFxuICAgICAgVHlwZTogJ1N0cmluZycsXG4gICAgICBPcGVyYXRvcjogJ0FuZCcsXG4gICAgICBTaWduOiAnRVEnLFxuICAgICAgU29ydDogc29ydE9yZGVyLFxuICAgICAgLy8gRmllbGRzOiBbJ3N0cmluZyddLFxuICAgIH0pKTtcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZS5wb3N0KHVybCwgcGF5bG9hZCkgYXMgUHJvbWlzZTxQYWdlZDxFc2NhbGF0aW9uPj47XG4gIH1cblxuICBnZXRFc2NhbGF0aW9uV2l0aFBhcmFtKFxuICAgIHBhcmFtOiBzdHJpbmcsXG4gICAgc2tpcDogbnVtYmVyID0gMCxcbiAgICBsaW1pdDogbnVtYmVyID0gMSxcbiAgICBzb3J0UGFyYW06IHN0cmluZyA9ICdDcmVhdGVkQXQnLFxuICAgIHNvcnRPcmRlcjogc3RyaW5nID0gJ0FzYydcbiAgKTogUHJvbWlzZTxQYWdlZDxFc2NhbGF0aW9uPj4ge1xuICAgIGNvbnN0IHVybCA9IGAke3RoaXMuRVNDQUxBVElPTl9NT0RFTF9CQVNFX1BBVEh9L0dldEVzY2FsYXRpb25zV2l0aFBhcmFtLyR7cGFyYW19LyR7c2tpcH0vJHtsaW1pdH0vJHtzb3J0UGFyYW19LyR7c29ydE9yZGVyfWA7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2UuZ2V0KHVybCkgYXMgUHJvbWlzZTxQYWdlZDxFc2NhbGF0aW9uPj47XG4gIH1cblxuICBnZXRSZXBvcnRTY2hlZHVsZXMoXG4gICAgc2tpcDogbnVtYmVyID0gMCxcbiAgICBsaW1pdDogbnVtYmVyID0gMFxuICApOiBQcm9taXNlPFBhZ2VkPFJlcG9ydFNjaGVkdWxlPj4ge1xuICAgIGNvbnN0IHVybCA9IGAke3RoaXMuUlNfTU9ERUxfQkFTRV9QQVRIfS9HZXRSZXBvcnRTY2hlZHVsZXMvJHtza2lwfS8ke2xpbWl0fWA7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2UuZ2V0KFxuICAgICAgdXJsLFxuICAgICAgdGhpcy5lbnZTdmMuZW52aXJvbm1lbnQuUmVwb3J0aW5nQVBJXG4gICAgKSBhcyBQcm9taXNlPFBhZ2VkPFJlcG9ydFNjaGVkdWxlPj47XG4gIH1cblxuICBnZXRPcGVyYXRpb25BY3Rpb25zKFxuICAgIHNraXA6IG51bWJlciA9IDAsXG4gICAgbGltaXQ6IG51bWJlciA9IDBcbiAgKTogUHJvbWlzZTxQYWdlZDxPcGVyYXRpb25BY3Rpb24+PiB7XG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5VVElMX0JBU0VfUEFUSH0vR2V0T3BlcmF0aW9uQWN0aW9uYDtcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZS5nZXQoXG4gICAgICB1cmwsXG4gICAgICAvLyB0aGlzLmVudlN2Yy5lbnZpcm9ubWVudC5HTEFQSVxuICAgICkgYXMgUHJvbWlzZTxQYWdlZDxPcGVyYXRpb25BY3Rpb24+PjtcbiAgfVxuXG4gIHNhdmVBY3RvclRhZ3MocmVxdWVzdHM6IEFjdG9yVGFnW10pOiBQcm9taXNlPGFueT4ge1xuICAgIGNvbnN0IHVybCA9IGAke3RoaXMuQUNUT1JfTU9ERUxfQkFTRV9QQVRIfS9TYXZlQWN0b3JUYWdzYDtcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZS5wb3N0KFxuICAgICAgdXJsLFxuICAgICAgcmVxdWVzdHMsXG4gICAgICB0aGlzLmVudlN2Yy5lbnZpcm9ubWVudC5Xb3JrRmxvd0FQSVxuICAgICk7XG4gIH1cblxuICBnZXRGbG93YWJsZVN0YXR1c2VzKFxuICAgIHNraXA6IG51bWJlciA9IDAsXG4gICAgbGltaXQ6IG51bWJlciA9IDBcbiAgKTogUHJvbWlzZTxQYWdlZDxGbG93YWJsZVN0YXR1cz4+IHtcbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLkZMT1dBQkxFX1NUQVRVU19NT0RFTF9CQVNFX1BBVEh9L0dldEZsb3dhYmxlU3RhdHVzLyR7c2tpcH0vJHtsaW1pdH0vQ3JlYXRlZEF0L0Rlc2NgO1xuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlLmdldCh1cmwpIGFzIFByb21pc2U8UGFnZWQ8Rmxvd2FibGVTdGF0dXM+PjtcbiAgfVxuXG4gIC8vIEhlbHBlciB0byBjcmVhdGUgYSBtb2NrIHdvcmtmbG93IChqdXN0IGZvciBkZW1vKVxuICBwcml2YXRlIGNyZWF0ZU1vY2tXb3JrZmxvdyhjb2RlOiBzdHJpbmcpOiBXb3JrZmxvdyB7XG4gICAgLy8gUmV0dXJuIGEgc2ltcGxlIHdvcmtmbG93IHdpdGggb25lIGxhbmUgYW5kIG9uZSBzdGFnZVxuICAgIGNvbnN0IHdvcmtmbG93OiBXb3JrZmxvdyA9IHtcbiAgICAgIElkOiAnd29ya2Zsb3ctMTIzJyxcbiAgICAgIENvZGU6IGNvZGUsXG4gICAgICBUZW5hbnRJZDogJ3RlbmFudC0xJyxcbiAgICAgIGlkOiAnd29ya2Zsb3ctMTIzJyxcbiAgICAgIFNlcnZpY2VOYW1lOiAnd29ya2Zsb3ctc2VydmljZScsXG4gICAgICBDcmVhdGVkQXQ6IG5ldyBEYXRlKCksXG4gICAgICBVcGRhdGVkQXQ6IG5ldyBEYXRlKCksXG4gICAgICBEYXRhU3RhdGU6IE9iamVjdFN0YXRlLlVuY2hhbmdlZCxcbiAgICAgIE5hbWU6ICdTYW1wbGUgV29ya2Zsb3cnLFxuICAgICAgRGVzY3JpcHRpb246ICdBIHNhbXBsZSB3b3JrZmxvdyBsb2FkZWQgZnJvbSBBUEknLFxuICAgICAgU3RhZ2VFbnRyeVJ1bGU6ICcnLFxuICAgICAgQXNzaWdubWVudFR5cGU6IFRhc2tBc3NpZ25tZW50VHlwZS5BdXRvUm91dGUsXG4gICAgICBTdGF0dXM6IFN0YXR1cy5BY3RpdmUsXG4gICAgICBBY3Rpb25zOiBbXSxcbiAgICAgIExhbmVzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBJZDogJ2xhbmUtMCcsXG4gICAgICAgICAgQ29kZTogJ2xhbmUtMCcsXG4gICAgICAgICAgVGVuYW50SWQ6ICd0ZW5hbnQtMScsXG4gICAgICAgICAgaWQ6ICdsYW5lLTAnLFxuICAgICAgICAgIFNlcnZpY2VOYW1lOiAnd29ya2Zsb3ctc2VydmljZScsXG4gICAgICAgICAgQ3JlYXRlZEF0OiBuZXcgRGF0ZSgpLFxuICAgICAgICAgIFVwZGF0ZWRBdDogbmV3IERhdGUoKSxcbiAgICAgICAgICBEYXRhU3RhdGU6IE9iamVjdFN0YXRlLlVuY2hhbmdlZCxcbiAgICAgICAgICBXb3JrZmxvdzogJ3dvcmtmbG93LTEyMycsXG4gICAgICAgICAgVGFnczogW10sXG4gICAgICAgICAgUG9zaXRpb246IDAsXG4gICAgICAgICAgQ29vcmRpbmF0ZXM6IHsgWDogMCwgWTogMCB9LFxuICAgICAgICAgIFNpemU6IHsgV2lkdGg6IDMwMDAsIEhlaWdodDogMjYzIH0sXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgU3RhZ2VzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBJZDogJ3N0YWdlLTEyMycsXG4gICAgICAgICAgQ29kZTogJ3N0YWdlLTEyMycsXG4gICAgICAgICAgVGVuYW50SWQ6ICd0ZW5hbnQtMScsXG4gICAgICAgICAgaWQ6ICdzdGFnZS0xMjMnLFxuICAgICAgICAgIFNlcnZpY2VOYW1lOiAnd29ya2Zsb3ctc2VydmljZScsXG4gICAgICAgICAgQ3JlYXRlZEF0OiBuZXcgRGF0ZSgpLFxuICAgICAgICAgIFVwZGF0ZWRBdDogbmV3IERhdGUoKSxcbiAgICAgICAgICBEYXRhU3RhdGU6IE9iamVjdFN0YXRlLlVuY2hhbmdlZCxcbiAgICAgICAgICBXb3JrZmxvdzogJ3dvcmtmbG93LTEyMycsXG4gICAgICAgICAgTmFtZTogJ0luaXRpYWwgU3RhZ2UnLFxuICAgICAgICAgIERlc2NyaXB0aW9uOiAnU3RhcnRpbmcgcG9pbnQnLFxuICAgICAgICAgIER1cmF0aW9uOiAyNCxcbiAgICAgICAgICBQYXNzT25SdWxlOiAnJyxcbiAgICAgICAgICBBY3RvclJ1bGU6IFN0YWdlQWN0b3JSdWxlLk5vbmUsXG4gICAgICAgICAgTWluTm9PZkFjdG9yOiAxLFxuICAgICAgICAgIElzUGFyYWxsZWw6IGZhbHNlLFxuICAgICAgICAgIElzRW50cnlQb2ludDogdHJ1ZSxcbiAgICAgICAgICBJc0V4aXRQb2ludDogZmFsc2UsXG4gICAgICAgICAgVGFnczogW10sXG4gICAgICAgICAgRm9ybTogJycsXG4gICAgICAgICAgQWxsb3dNdWx0aVN1YlByb2Nlc3M6IGZhbHNlLFxuICAgICAgICAgIEFzc2lnbm1lbnRUeXBlOiBUYXNrQXNzaWdubWVudFR5cGUuQXV0b1JvdXRlLFxuICAgICAgICAgIFN1YldvcmtGbG93OiAnJyxcbiAgICAgICAgICBTd2ltTGFuZTogJ2xhbmUtMCcsXG4gICAgICAgICAgQ29vcmRpbmF0ZXM6IHsgWDogMTAwLCBZOiA1MCB9LFxuICAgICAgICAgIElzU3ViUHJvY2VzczogZmFsc2UsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH07XG5cbiAgICByZXR1cm4gd29ya2Zsb3c7XG4gIH1cbn1cbiJdfQ==
168
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3ctZGF0YS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmVyYmVuLXdvcmtmbG93LXVpL3NyYy9saWIvY29tcG9uZW50cy93b3JrZmxvdy1kZXNpZ25lci93b3JrZmxvdy1kYXRhLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQThDLFdBQVcsRUFBMEMsY0FBYyxFQUFFLE1BQU0sRUFBTyxrQkFBa0IsRUFBMkIsTUFBTSxtQ0FBbUMsQ0FBQzs7O0FBTTlOLE1BQU0sT0FBTyxtQkFBbUI7SUFXcEI7SUFDQTtJQVhPLHdCQUF3QixHQUFHLFVBQVUsQ0FBQztJQUN0QyxvQkFBb0IsR0FBRyxNQUFNLENBQUM7SUFDOUIsb0JBQW9CLEdBQUcsTUFBTSxDQUFDO0lBQzlCLDBCQUEwQixHQUFHLFlBQVksQ0FBQztJQUMxQyxrQkFBa0IsR0FBRyxRQUFRLENBQUM7SUFDOUIsY0FBYyxHQUFHLE1BQU0sQ0FBQztJQUN4QixxQkFBcUIsR0FBRyxPQUFPLENBQUM7SUFDaEMsK0JBQStCLEdBQUcsUUFBUSxDQUFDO0lBRTVELFlBQ1UsV0FBa0MsRUFDbEMsTUFBMEI7UUFEMUIsZ0JBQVcsR0FBWCxXQUFXLENBQXVCO1FBQ2xDLFdBQU0sR0FBTixNQUFNLENBQW9CO0lBQ2hDLENBQUM7SUFFTCxvQkFBb0IsQ0FDbEIsS0FBYSxFQUNiLE9BQWUsQ0FBQyxFQUNoQixRQUFnQixDQUFDLEVBQ2pCLFlBQW9CLFdBQVcsRUFDL0IsWUFBb0IsS0FBSztRQUV6QixNQUFNLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyx3QkFBd0IsMEJBQTBCLEtBQUssSUFBSSxJQUFJLElBQUksS0FBSyxJQUFJLFNBQVMsSUFBSSxTQUFTLEVBQUUsQ0FBQztRQUN6SCxPQUFPLElBQUksQ0FBQyxXQUFX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YyxFQUFFLGtCQUFrQixDQUFDLFNBQVM7b0JBQzVDLFdBQVcsRUFBRSxFQUFFO29CQUNmLFFBQVEsRUFBRSxRQUFRO29CQUNsQixXQUFXLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUU7b0JBQzlCLFlBQVksRUFBRSxLQUFLO2lCQUNwQjthQUNGO1NBQ0YsQ0FBQztRQUVGLE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7d0dBck9VLG1CQUFtQjs0R0FBbkIsbUJBQW1CLGNBRmxCLE1BQU07OzRGQUVQLG1CQUFtQjtrQkFIL0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RvclRhZywgRXNjYWxhdGlvbiwgRmxvd2FibGVTdGF0dXMsIEZvcm0sIE9iamVjdFN0YXRlLCBPcGVyYXRpb25BY3Rpb24sIFBhZ2VkLCBSZXBvcnRTY2hlZHVsZSwgU3RhZ2VBY3RvclJ1bGUsIFN0YXR1cywgVGFnLCBUYXNrQXNzaWdubWVudFR5cGUsIFdvcmtmbG93LCBXb3JrZmxvd1N0YWdlIH0gZnJvbSAndmVyYmVuLXdvcmtmbG93LXVpL3NyYy9saWIvbW9kZWxzJztcbmltcG9ydCB7IEVudmlyb25tZW50U2VydmljZSwgSHR0cFdlYlJlcXVlc3RTZXJ2aWNlIH0gZnJvbSAndmVyYmVuLXdvcmtmbG93LXVpL3NyYy9saWIvc2VydmljZXMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgV29ya2Zsb3dEYXRhU2VydmljZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgV09SS0ZMT1dfTU9ERUxfQkFTRV9QQVRIID0gJ1dvcmtmbG93JztcbiAgcHJpdmF0ZSByZWFkb25seSBBVVRIX01PREVMX0JBU0VfUEFUSCA9ICdVc2VyJztcbiAgcHJpdmF0ZSByZWFkb25seSBGT1JNX01PREVMX0JBU0VfUEFUSCA9ICdGb3JtJztcbiAgcHJpdmF0ZSByZWFkb25seSBFU0NBTEFUSU9OX01PREVMX0JBU0VfUEFUSCA9ICdFc2NhbGF0aW9uJztcbiAgcHJpdmF0ZSByZWFkb25seSBSU19NT0RFTF9CQVNFX1BBVEggPSAnUmVwb3J0JztcbiAgcHJpdmF0ZSByZWFkb25seSBVVElMX0JBU0VfUEFUSCA9ICdVdGlsJztcbiAgcHJpdmF0ZSByZWFkb25seSBBQ1RPUl9NT0RFTF9CQVNFX1BBVEggPSAnQWN0b3InO1xuICBwcml2YXRlIHJlYWRvbmx5IEZMT1dBQkxFX1NUQVRVU19NT0RFTF9CQVNFX1BBVEggPSAnU3RhdHVzJztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGh0dHBTZXJ2aWNlOiBIdHRwV2ViUmVxdWVzdFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBlbnZTdmM6IEVudmlyb25tZW50U2VydmljZVxuICApIHsgfVxuXG4gIGdldFdvcmtmbG93V2l0aFBhcmFtKFxuICAgIHBhcmFtOiBzdHJpbmcsXG4gICAgc2tpcDogbnVtYmVyID0gMCxcbiAgICBsaW1pdDogbnVtYmVyID0gMSxcbiAgICBzb3J0UGFyYW06IHN0cmluZyA9ICdDcmVhdGVkQXQnLFxuICAgIHNvcnRPcmRlcjogc3RyaW5nID0gJ0FzYydcbiAgKTogUHJvbWlzZTxQYWdlZDxXb3JrZmxvdz4+IHtcbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLldPUktGTE9XX01PREVMX0JBU0VfUEFUSH0vR2V0V29ya2Zsb3dzV2l0aFBhcmFtLyR7cGFyYW19LyR7c2tpcH0vJHtsaW1pdH0vJHtzb3J0UGFyYW19LyR7c29ydE9yZGVyfWA7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2UuZ2V0KHVybCkgYXMgUHJvbWlzZTxQYWdlZDxXb3JrZmxvdz4+O1xuICB9XG5cbiAgZ2V0V29ya2Zsb3dzKHNraXA6IG51bWJlciA9IDAsIGxpbWl0OiBudW1iZXIgPSAwKTogUHJvbWlzZTxQYWdlZDxXb3JrZmxvdz4+IHtcbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLldPUktGTE9XX01PREVMX0JBU0VfUEFUSH0vR2V0V29ya2Zsb3dzLyR7c2tpcH0vJHtsaW1pdH1gO1xuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlLmdldChcbiAgICAgIHVybCxcbiAgICAgIHRoaXMuZW52U3ZjLmVudmlyb25tZW50LldvcmtGbG93QVBJXG4gICAgKSBhcyBQcm9taXNlPFBhZ2VkPFdvcmtmbG93Pj47XG4gIH1cblxuICBnZXRGb3Jtcyhza2lwOiBudW1iZXIgPSAwLCBsaW1pdDogbnVtYmVyID0gMCk6IFByb21pc2U8UGFnZWQ8Rm9ybT4+IHtcbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLkZPUk1fTU9ERUxfQkFTRV9QQVRIfS9HZXRGb3Jtcy8ke3NraXB9LyR7bGltaXR9YDtcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZS5nZXQoXG4gICAgICB1cmwsXG4gICAgICB0aGlzLmVudlN2Yy5lbnZpcm9ubWVudC5Xb3JrRmxvd0FQSVxuICAgICkgYXMgUHJvbWlzZTxQYWdlZDxGb3JtPj47XG4gIH1cblxuICBnZXRUYWdzKHNraXA6IG51bWJlciA9IDAsIGxpbWl0OiBudW1iZXIgPSAwKTogUHJvbWlzZTxQYWdlZDxUYWc+PiB7XG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5BVVRIX01PREVMX0JBU0VfUEFUSH0vR2V0VGFncy8ke3NraXB9LyR7bGltaXR9YDtcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZS5nZXQoXG4gICAgICB1cmwsXG4gICAgICB0aGlzLmVudlN2Yy5lbnZpcm9ubWVudC5BdXRoQVBJXG4gICAgKSBhcyBQcm9taXNlPFBhZ2VkPFRhZz4+O1xuICB9XG5cbiAgc2F2ZVdvcmtmbG93cyhyZXF1ZXN0czogUGFydGlhbDxXb3JrZmxvdz5bXSk6IFByb21pc2U8YW55PiB7XG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5XT1JLRkxPV19NT0RFTF9CQVNFX1BBVEh9L1NhdmVXb3JrZmxvd3NgO1xuICAgIC8vIGNvbnNvbGUubG9nKCdTYXZpbmcgd29ya2Zsb3dzJywgcmVxdWVzdHMpO1xuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlLnBvc3QoXG4gICAgICB1cmwsXG4gICAgICByZXF1ZXN0cyxcbiAgICAgIHRoaXMuZW52U3ZjLmVudmlyb25tZW50LldvcmtGbG93QVBJXG4gICAgKTtcbiAgfVxuXG4gIGRlbGV0ZVdvcmtmbG93U3RhZ2VzKHJlcXVlc3RzOiBXb3JrZmxvd1N0YWdlWydDb2RlJ11bXSk6IFByb21pc2U8YW55PiB7XG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5XT1JLRkxPV19NT0RFTF9CQVNFX1BBVEh9L0RlbGV0ZVdvcmtmbG93U3RhZ2VgO1xuICAgIC8vIGNvbnNvbGUubG9nKCdTYXZpbmcgd29ya2Zsb3dzJywgcmVxdWVzdHMpO1xuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlLnBvc3QoXG4gICAgICB1cmwsXG4gICAgICByZXF1ZXN0cyxcbiAgICAgIHRoaXMuZW52U3ZjLmVudmlyb25tZW50LldvcmtGbG93QVBJXG4gICAgKTtcbiAgfVxuXG4gIHNhdmVFc2NhbGF0aW9ucyhyZXF1ZXN0czogUGFydGlhbDxFc2NhbGF0aW9uPltdKTogUHJvbWlzZTxFc2NhbGF0aW9uW10+IHtcbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLkVTQ0FMQVRJT05fTU9ERUxfQkFTRV9QQVRIfS9TYXZlRXNjYWxhdGlvbnNgO1xuICAgIC8vIGNvbnNvbGUubG9nKCdTYXZpbmcgd29ya2Zsb3dzJywgcmVxdWVzdHMpO1xuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlLnBvc3QoXG4gICAgICB1cmwsXG4gICAgICByZXF1ZXN0cyxcbiAgICAgIHRoaXMuZW52U3ZjLmVudmlyb25tZW50LldvcmtGbG93QVBJXG4gICAgKTtcbiAgfVxuXG4gIGRlbGV0ZUVzY2FsYXRpb25zKHJlcXVlc3RzOiBFc2NhbGF0aW9uWydDb2RlJ11bXSk6IFByb21pc2U8YW55PiB7XG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5FU0NBTEFUSU9OX01PREVMX0JBU0VfUEFUSH0vRGVsZXRlRXNjYWxhdGlvbmA7XG4gICAgLy8gY29uc29sZS5sb2coJ1NhdmluZyB3b3JrZmxvd3MnLCByZXF1ZXN0cyk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2UucG9zdChcbiAgICAgIHVybCxcbiAgICAgIHJlcXVlc3RzLFxuICAgICAgdGhpcy5lbnZTdmMuZW52aXJvbm1lbnQuV29ya0Zsb3dBUElcbiAgICApO1xuICB9XG5cbiAgc2VhcmNoRXNjYWxhdGlvbldpdGhQYXJhbShcbiAgICBwYXJhbXM6IFBpY2s8RXNjYWxhdGlvbiwgJ1dvcmtmbG93JyB8ICdTdGFnZScgfCAnVHlwZSc+LFxuICAgIHNraXA6IG51bWJlciA9IDAsXG4gICAgbGltaXQ6IG51bWJlciA9IDEsXG4gICAgc29ydE9yZGVyOiBzdHJpbmcgPSAnQXNjJ1xuICApOiBQcm9taXNlPFBhZ2VkPEVzY2FsYXRpb24+PiB7XG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5FU0NBTEFUSU9OX01PREVMX0JBU0VfUEFUSH0vU2VhcmNoRXNjYWxhdGlvbnMvJHtza2lwfS8ke2xpbWl0fWA7XG4gICAgY29uc3QgcGF5bG9hZCA9IE9iamVjdC5lbnRyaWVzKHBhcmFtcykubWFwKChba2V5LCB2YWx1ZV0pID0+ICh7XG4gICAgICBJc0F1dG9Gcm9tRGF0ZTogdHJ1ZSxcbiAgICAgIElzQXV0b0VuZERhdGU6IHRydWUsXG4gICAgICBQcm9wZXJ0eU5hbWU6IGtleSxcbiAgICAgIEVudGl0eVZhbHVlOiB2YWx1ZSxcbiAgICAgIFR5cGU6ICdTdHJpbmcnLFxuICAgICAgT3BlcmF0b3I6ICdBbmQnLFxuICAgICAgU2lnbjogJ0VRJyxcbiAgICAgIFNvcnQ6IHNvcnRPcmRlcixcbiAgICAgIC8vIEZpZWxkczogWydzdHJpbmcnXSxcbiAgICB9KSk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2UucG9zdCh1cmwsIHBheWxvYWQpIGFzIFByb21pc2U8UGFnZWQ8RXNjYWxhdGlvbj4+O1xuICB9XG5cbiAgZ2V0RXNjYWxhdGlvbldpdGhQYXJhbShcbiAgICBwYXJhbTogc3RyaW5nLFxuICAgIHNraXA6IG51bWJlciA9IDAsXG4gICAgbGltaXQ6IG51bWJlciA9IDEsXG4gICAgc29ydFBhcmFtOiBzdHJpbmcgPSAnQ3JlYXRlZEF0JyxcbiAgICBzb3J0T3JkZXI6IHN0cmluZyA9ICdBc2MnXG4gICk6IFByb21pc2U8UGFnZWQ8RXNjYWxhdGlvbj4+IHtcbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLkVTQ0FMQVRJT05fTU9ERUxfQkFTRV9QQVRIfS9HZXRFc2NhbGF0aW9uc1dpdGhQYXJhbS8ke3BhcmFtfS8ke3NraXB9LyR7bGltaXR9LyR7c29ydFBhcmFtfS8ke3NvcnRPcmRlcn1gO1xuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlLmdldCh1cmwpIGFzIFByb21pc2U8UGFnZWQ8RXNjYWxhdGlvbj4+O1xuICB9XG5cbiAgZ2V0UmVwb3J0U2NoZWR1bGVzKFxuICAgIHNraXA6IG51bWJlciA9IDAsXG4gICAgbGltaXQ6IG51bWJlciA9IDBcbiAgKTogUHJvbWlzZTxQYWdlZDxSZXBvcnRTY2hlZHVsZT4+IHtcbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLlJTX01PREVMX0JBU0VfUEFUSH0vR2V0UmVwb3J0U2NoZWR1bGVzLyR7c2tpcH0vJHtsaW1pdH1gO1xuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlLmdldChcbiAgICAgIHVybCxcbiAgICAgIHRoaXMuZW52U3ZjLmVudmlyb25tZW50LlJlcG9ydGluZ0FQSVxuICAgICkgYXMgUHJvbWlzZTxQYWdlZDxSZXBvcnRTY2hlZHVsZT4+O1xuICB9XG5cbiAgZ2V0T3BlcmF0aW9uQWN0aW9ucyhcbiAgICBza2lwOiBudW1iZXIgPSAwLFxuICAgIGxpbWl0OiBudW1iZXIgPSAwXG4gICk6IFByb21pc2U8UGFnZWQ8T3BlcmF0aW9uQWN0aW9uPj4ge1xuICAgIGNvbnN0IHVybCA9IGAke3RoaXMuVVRJTF9CQVNFX1BBVEh9L0dldE9wZXJhdGlvbkFjdGlvbmA7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2UuZ2V0KFxuICAgICAgdXJsLFxuICAgICAgLy8gdGhpcy5lbnZTdmMuZW52aXJvbm1lbnQuR0xBUElcbiAgICApIGFzIFByb21pc2U8UGFnZWQ8T3BlcmF0aW9uQWN0aW9uPj47XG4gIH1cblxuICBzYXZlQWN0b3JUYWdzKHJlcXVlc3RzOiBBY3RvclRhZ1tdKTogUHJvbWlzZTxhbnk+IHtcbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLkFDVE9SX01PREVMX0JBU0VfUEFUSH0vU2F2ZUFjdG9yVGFnc2A7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2UucG9zdChcbiAgICAgIHVybCxcbiAgICAgIHJlcXVlc3RzLFxuICAgICAgdGhpcy5lbnZTdmMuZW52aXJvbm1lbnQuV29ya0Zsb3dBUElcbiAgICApO1xuICB9XG5cbiAgZ2V0Rmxvd2FibGVTdGF0dXNlcyhcbiAgICBza2lwOiBudW1iZXIgPSAwLFxuICAgIGxpbWl0OiBudW1iZXIgPSAwXG4gICk6IFByb21pc2U8UGFnZWQ8Rmxvd2FibGVTdGF0dXM+PiB7XG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5GTE9XQUJMRV9TVEFUVVNfTU9ERUxfQkFTRV9QQVRIfS9HZXRGbG93YWJsZVN0YXR1cy8ke3NraXB9LyR7bGltaXR9L0NyZWF0ZWRBdC9EZXNjYDtcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZS5nZXQodXJsKSBhcyBQcm9taXNlPFBhZ2VkPEZsb3dhYmxlU3RhdHVzPj47XG4gIH1cblxuICAvLyBIZWxwZXIgdG8gY3JlYXRlIGEgbW9jayB3b3JrZmxvdyAoanVzdCBmb3IgZGVtbylcbiAgcHJpdmF0ZSBjcmVhdGVNb2NrV29ya2Zsb3coY29kZTogc3RyaW5nKTogV29ya2Zsb3cge1xuICAgIC8vIFJldHVybiBhIHNpbXBsZSB3b3JrZmxvdyB3aXRoIG9uZSBsYW5lIGFuZCBvbmUgc3RhZ2VcbiAgICBjb25zdCB3b3JrZmxvdzogV29ya2Zsb3cgPSB7XG4gICAgICBJZDogJ3dvcmtmbG93LTEyMycsXG4gICAgICBDb2RlOiBjb2RlLFxuICAgICAgVGVuYW50SWQ6ICd0ZW5hbnQtMScsXG4gICAgICBpZDogJ3dvcmtmbG93LTEyMycsXG4gICAgICBTZXJ2aWNlTmFtZTogJ3dvcmtmbG93LXNlcnZpY2UnLFxuICAgICAgQ3JlYXRlZEF0OiBuZXcgRGF0ZSgpLFxuICAgICAgVXBkYXRlZEF0OiBuZXcgRGF0ZSgpLFxuICAgICAgRGF0YVN0YXRlOiBPYmplY3RTdGF0ZS5VbmNoYW5nZWQsXG4gICAgICBOYW1lOiAnU2FtcGxlIFdvcmtmbG93JyxcbiAgICAgIERlc2NyaXB0aW9uOiAnQSBzYW1wbGUgd29ya2Zsb3cgbG9hZGVkIGZyb20gQVBJJyxcbiAgICAgIFN0YWdlRW50cnlSdWxlOiAnJyxcbiAgICAgIEFzc2lnbm1lbnRUeXBlOiBUYXNrQXNzaWdubWVudFR5cGUuQXV0b1JvdXRlLFxuICAgICAgU3RhdHVzOiBTdGF0dXMuQWN0aXZlLFxuICAgICAgQWN0aW9uczogW10sXG4gICAgICBMYW5lczogW1xuICAgICAgICB7XG4gICAgICAgICAgSWQ6ICdsYW5lLTAnLFxuICAgICAgICAgIENvZGU6ICdsYW5lLTAnLFxuICAgICAgICAgIFRlbmFudElkOiAndGVuYW50LTEnLFxuICAgICAgICAgIGlkOiAnbGFuZS0wJyxcbiAgICAgICAgICBTZXJ2aWNlTmFtZTogJ3dvcmtmbG93LXNlcnZpY2UnLFxuICAgICAgICAgIENyZWF0ZWRBdDogbmV3IERhdGUoKSxcbiAgICAgICAgICBVcGRhdGVkQXQ6IG5ldyBEYXRlKCksXG4gICAgICAgICAgRGF0YVN0YXRlOiBPYmplY3RTdGF0ZS5VbmNoYW5nZWQsXG4gICAgICAgICAgV29ya2Zsb3c6ICd3b3JrZmxvdy0xMjMnLFxuICAgICAgICAgIFRhZ3M6IFtdLFxuICAgICAgICAgIFBvc2l0aW9uOiAwLFxuICAgICAgICAgIENvb3JkaW5hdGVzOiB7IFg6IDAsIFk6IDAgfSxcbiAgICAgICAgICBTaXplOiB7IFdpZHRoOiAzMDAwLCBIZWlnaHQ6IDI2MyB9LFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIFN0YWdlczogW1xuICAgICAgICB7XG4gICAgICAgICAgSWQ6ICdzdGFnZS0xMjMnLFxuICAgICAgICAgIENvZGU6ICdzdGFnZS0xMjMnLFxuICAgICAgICAgIFRlbmFudElkOiAndGVuYW50LTEnLFxuICAgICAgICAgIGlkOiAnc3RhZ2UtMTIzJyxcbiAgICAgICAgICBTZXJ2aWNlTmFtZTogJ3dvcmtmbG93LXNlcnZpY2UnLFxuICAgICAgICAgIENyZWF0ZWRBdDogbmV3IERhdGUoKSxcbiAgICAgICAgICBVcGRhdGVkQXQ6IG5ldyBEYXRlKCksXG4gICAgICAgICAgRGF0YVN0YXRlOiBPYmplY3RTdGF0ZS5VbmNoYW5nZWQsXG4gICAgICAgICAgV29ya2Zsb3c6ICd3b3JrZmxvdy0xMjMnLFxuICAgICAgICAgIE5hbWU6ICdJbml0aWFsIFN0YWdlJyxcbiAgICAgICAgICBEZXNjcmlwdGlvbjogJ1N0YXJ0aW5nIHBvaW50JyxcbiAgICAgICAgICBEdXJhdGlvbjogMjQsXG4gICAgICAgICAgUGFzc09uUnVsZTogJycsXG4gICAgICAgICAgQWN0b3JSdWxlOiBTdGFnZUFjdG9yUnVsZS5Ob25lLFxuICAgICAgICAgIE1pbk5vT2ZBY3RvcjogMSxcbiAgICAgICAgICBJc1BhcmFsbGVsOiBmYWxzZSxcbiAgICAgICAgICBJc0VudHJ5UG9pbnQ6IHRydWUsXG4gICAgICAgICAgSXNFeGl0UG9pbnQ6IGZhbHNlLFxuICAgICAgICAgIFRhZ3M6IFtdLFxuICAgICAgICAgIEZvcm06ICcnLFxuICAgICAgICAgIEFsbG93TXVsdGlTdWJQcm9jZXNzOiBmYWxzZSxcbiAgICAgICAgICBBc3NpZ25tZW50VHlwZTogVGFza0Fzc2lnbm1lbnRUeXBlLkF1dG9Sb3V0ZSxcbiAgICAgICAgICBTdWJXb3JrRmxvdzogJycsXG4gICAgICAgICAgU3dpbUxhbmU6ICdsYW5lLTAnLFxuICAgICAgICAgIENvb3JkaW5hdGVzOiB7IFg6IDEwMCwgWTogNTAgfSxcbiAgICAgICAgICBJc1N1YlByb2Nlc3M6IGZhbHNlLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9O1xuXG4gICAgcmV0dXJuIHdvcmtmbG93O1xuICB9XG59XG4iXX0=
@@ -74,11 +74,11 @@ export class WorkflowFormComponent {
74
74
  return !this.form.valid;
75
75
  }
76
76
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: WorkflowFormComponent, deps: [{ token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component });
77
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: WorkflowFormComponent, selector: "lib-workflow-form", inputs: { operations: { classPropertyName: "operations", publicName: "operations", isSignal: false, isRequired: false, transformFunction: null }, currentData: { classPropertyName: "currentData", publicName: "currentData", isSignal: false, isRequired: false, transformFunction: null }, designerUrl: { classPropertyName: "designerUrl", publicName: "designerUrl", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { switchView: "switchView", onSave: "onSave" }, ngImport: i0, template: "<form\n [formGroup]=\"form\"\n class=\"flex flex-col px-3 pb-3 rounded-xl h-full w-full relative space-y-4\"\n (ngSubmit)=\"handleSubmit()\"\n>\n <verbena-input\n name=\"Name\"\n label=\"Name\"\n formControlName=\"Name\"\n placeHolder=\"Enter Name\"\n />\n <verbena-input\n name=\"Description\"\n label=\"Description\"\n formControlName=\"Description\"\n placeHolder=\"Enter Description\"\n />\n\n <div class=\"space-y-1\">\n <label for=\"assignment\">Assignment</label>\n\n <verben-drop-down\n label=\"Assignment\"\n styleClass=\"w-full\"\n width=\"100%\"\n [multiselect]=\"false\"\n placeholder=\"Select\"\n [options]=\"assignmentTypes\"\n id=\"assignment\"\n formControlName=\"AssignmentType\"\n class=\"form-control\"\n >\n </verben-drop-down>\n </div>\n\n <div class=\"space-y-1\">\n <label for=\"operation\">Operation</label>\n\n <verben-drop-down\n label=\"Operation\"\n styleClass=\"w-full\"\n width=\"100%\"\n [multiselect]=\"false\"\n placeholder=\"Select\"\n [options]=\"operations\"\n optionLabel=\"Description\"\n optionValue=\"Code\"\n id=\"operation\"\n formControlName=\"Operation\"\n class=\"form-control\"\n >\n </verben-drop-down>\n </div>\n\n <!-- <div class=\"space-y-1\">\n <label for=\"object\">Object</label>\n\n <verbena-input\n id=\"object\"\n formControlName=\"Operation\"\n placeHolder=\"Enter Object\"\n />\n </div> -->\n\n <div class=\"space-y-1\">\n <label for=\"status\">Status</label>\n\n <verben-drop-down\n label=\"Status\"\n styleClass=\"w-full\"\n width=\"100%\"\n [multiselect]=\"false\"\n [showClear]=\"true\"\n placeholder=\"Null\"\n [(options)]=\"statuses\"\n id=\"status\"\n formControlName=\"Status\"\n class=\"form-control\"\n >\n </verben-drop-down>\n </div>\n\n <!-- buttons -->\n <div class=\"flex justify-between gap-4 my-2\">\n <!-- <verbena-button\n width=\"114px\"\n height=\"39px\"\n text=\"Delete\"\n bgColor=\"#999999\"\n textColor=\"#404040\"\n borderRadius=\"10px\"\n [disable]=\"disableProcessing()\"\n ></verbena-button> -->\n @if (currentData?.data?.Code) {\n <a [routerLink]=\"[designerUrl(), currentData?.data.Code]\" class=\"ml-auto\">\n <verbena-button text=\"Designer\" styleType=\"ylw-outline\"></verbena-button>\n </a>\n }\n <!-- <a [routerLink]=\"['/designer', currentData?.data.Code]\" class=\"ml-auto\">\n <verbena-button\n (click)=\"switchView.emit()\"\n text=\"Designer\"\n styleType=\"ylw-outline\"\n ></verbena-button>\n </a> -->\n <verbena-button\n (click)=\"switchView.emit()\"\n text=\"Switch To Table\"\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 [disable]=\"disableProcessing()\"\n ></verbena-button>\n </div>\n</form>\n", styles: [""], dependencies: [{ 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: i2.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: i2.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: i2.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: "directive", type: i3.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }] });
77
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: WorkflowFormComponent, selector: "lib-workflow-form", inputs: { operations: { classPropertyName: "operations", publicName: "operations", isSignal: false, isRequired: false, transformFunction: null }, currentData: { classPropertyName: "currentData", publicName: "currentData", isSignal: false, isRequired: false, transformFunction: null }, designerUrl: { classPropertyName: "designerUrl", publicName: "designerUrl", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { switchView: "switchView", onSave: "onSave" }, ngImport: i0, template: "<form\n [formGroup]=\"form\"\n class=\"flex flex-col px-3 pb-3 rounded-xl h-full w-full relative space-y-4\"\n (ngSubmit)=\"handleSubmit()\"\n>\n <verbena-input\n name=\"Name\"\n label=\"Name\"\n formControlName=\"Name\"\n placeHolder=\"Enter Name\"\n />\n <verbena-input\n name=\"Description\"\n label=\"Description\"\n formControlName=\"Description\"\n placeHolder=\"Enter Description\"\n />\n\n <div class=\"space-y-1\">\n <label for=\"assignment\">Assignment</label>\n\n <verben-drop-down\n [showClear]=\"true\"\n label=\"Assignment\"\n styleClass=\"w-full\"\n width=\"100%\"\n [multiselect]=\"false\"\n placeholder=\"Select\"\n [options]=\"assignmentTypes\"\n id=\"assignment\"\n formControlName=\"AssignmentType\"\n class=\"form-control\"\n >\n </verben-drop-down>\n </div>\n\n <div class=\"space-y-1\">\n <label for=\"operation\">Operation</label>\n\n <verben-drop-down\n [showClear]=\"true\"\n label=\"Operation\"\n styleClass=\"w-full\"\n width=\"100%\"\n [multiselect]=\"false\"\n placeholder=\"Select\"\n [options]=\"operations\"\n optionLabel=\"Description\"\n optionValue=\"Code\"\n id=\"operation\"\n formControlName=\"Operation\"\n class=\"form-control\"\n >\n </verben-drop-down>\n </div>\n\n <!-- <div class=\"space-y-1\">\n <label for=\"object\">Object</label>\n\n <verbena-input\n id=\"object\"\n formControlName=\"Operation\"\n placeHolder=\"Enter Object\"\n />\n </div> -->\n\n <div class=\"space-y-1\">\n <label for=\"status\">Status</label>\n\n <verben-drop-down\n label=\"Status\"\n styleClass=\"w-full\"\n width=\"100%\"\n [multiselect]=\"false\"\n [showClear]=\"true\"\n placeholder=\"Null\"\n [(options)]=\"statuses\"\n id=\"status\"\n formControlName=\"Status\"\n class=\"form-control\"\n >\n </verben-drop-down>\n </div>\n\n <!-- buttons -->\n <div class=\"flex justify-between gap-4 my-2\">\n <!-- <verbena-button\n width=\"114px\"\n height=\"39px\"\n text=\"Delete\"\n bgColor=\"#999999\"\n textColor=\"#404040\"\n borderRadius=\"10px\"\n [disable]=\"disableProcessing()\"\n ></verbena-button> -->\n @if (currentData?.data?.Code) {\n <a [routerLink]=\"[designerUrl(), currentData?.data.Code]\" class=\"ml-auto\">\n <verbena-button text=\"Designer\" styleType=\"ylw-outline\"></verbena-button>\n </a>\n }\n <!-- <a [routerLink]=\"['/designer', currentData?.data.Code]\" class=\"ml-auto\">\n <verbena-button\n (click)=\"switchView.emit()\"\n text=\"Designer\"\n styleType=\"ylw-outline\"\n ></verbena-button>\n </a> -->\n <verbena-button\n (click)=\"switchView.emit()\"\n text=\"Switch To Table\"\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 [disable]=\"disableProcessing()\"\n ></verbena-button>\n </div>\n</form>\n", styles: [""], dependencies: [{ 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: i2.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: i2.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: i2.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: "directive", type: i3.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }] });
78
78
  }
79
79
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: WorkflowFormComponent, decorators: [{
80
80
  type: Component,
81
- args: [{ selector: 'lib-workflow-form', template: "<form\n [formGroup]=\"form\"\n class=\"flex flex-col px-3 pb-3 rounded-xl h-full w-full relative space-y-4\"\n (ngSubmit)=\"handleSubmit()\"\n>\n <verbena-input\n name=\"Name\"\n label=\"Name\"\n formControlName=\"Name\"\n placeHolder=\"Enter Name\"\n />\n <verbena-input\n name=\"Description\"\n label=\"Description\"\n formControlName=\"Description\"\n placeHolder=\"Enter Description\"\n />\n\n <div class=\"space-y-1\">\n <label for=\"assignment\">Assignment</label>\n\n <verben-drop-down\n label=\"Assignment\"\n styleClass=\"w-full\"\n width=\"100%\"\n [multiselect]=\"false\"\n placeholder=\"Select\"\n [options]=\"assignmentTypes\"\n id=\"assignment\"\n formControlName=\"AssignmentType\"\n class=\"form-control\"\n >\n </verben-drop-down>\n </div>\n\n <div class=\"space-y-1\">\n <label for=\"operation\">Operation</label>\n\n <verben-drop-down\n label=\"Operation\"\n styleClass=\"w-full\"\n width=\"100%\"\n [multiselect]=\"false\"\n placeholder=\"Select\"\n [options]=\"operations\"\n optionLabel=\"Description\"\n optionValue=\"Code\"\n id=\"operation\"\n formControlName=\"Operation\"\n class=\"form-control\"\n >\n </verben-drop-down>\n </div>\n\n <!-- <div class=\"space-y-1\">\n <label for=\"object\">Object</label>\n\n <verbena-input\n id=\"object\"\n formControlName=\"Operation\"\n placeHolder=\"Enter Object\"\n />\n </div> -->\n\n <div class=\"space-y-1\">\n <label for=\"status\">Status</label>\n\n <verben-drop-down\n label=\"Status\"\n styleClass=\"w-full\"\n width=\"100%\"\n [multiselect]=\"false\"\n [showClear]=\"true\"\n placeholder=\"Null\"\n [(options)]=\"statuses\"\n id=\"status\"\n formControlName=\"Status\"\n class=\"form-control\"\n >\n </verben-drop-down>\n </div>\n\n <!-- buttons -->\n <div class=\"flex justify-between gap-4 my-2\">\n <!-- <verbena-button\n width=\"114px\"\n height=\"39px\"\n text=\"Delete\"\n bgColor=\"#999999\"\n textColor=\"#404040\"\n borderRadius=\"10px\"\n [disable]=\"disableProcessing()\"\n ></verbena-button> -->\n @if (currentData?.data?.Code) {\n <a [routerLink]=\"[designerUrl(), currentData?.data.Code]\" class=\"ml-auto\">\n <verbena-button text=\"Designer\" styleType=\"ylw-outline\"></verbena-button>\n </a>\n }\n <!-- <a [routerLink]=\"['/designer', currentData?.data.Code]\" class=\"ml-auto\">\n <verbena-button\n (click)=\"switchView.emit()\"\n text=\"Designer\"\n styleType=\"ylw-outline\"\n ></verbena-button>\n </a> -->\n <verbena-button\n (click)=\"switchView.emit()\"\n text=\"Switch To Table\"\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 [disable]=\"disableProcessing()\"\n ></verbena-button>\n </div>\n</form>\n" }]
81
+ args: [{ selector: 'lib-workflow-form', template: "<form\n [formGroup]=\"form\"\n class=\"flex flex-col px-3 pb-3 rounded-xl h-full w-full relative space-y-4\"\n (ngSubmit)=\"handleSubmit()\"\n>\n <verbena-input\n name=\"Name\"\n label=\"Name\"\n formControlName=\"Name\"\n placeHolder=\"Enter Name\"\n />\n <verbena-input\n name=\"Description\"\n label=\"Description\"\n formControlName=\"Description\"\n placeHolder=\"Enter Description\"\n />\n\n <div class=\"space-y-1\">\n <label for=\"assignment\">Assignment</label>\n\n <verben-drop-down\n [showClear]=\"true\"\n label=\"Assignment\"\n styleClass=\"w-full\"\n width=\"100%\"\n [multiselect]=\"false\"\n placeholder=\"Select\"\n [options]=\"assignmentTypes\"\n id=\"assignment\"\n formControlName=\"AssignmentType\"\n class=\"form-control\"\n >\n </verben-drop-down>\n </div>\n\n <div class=\"space-y-1\">\n <label for=\"operation\">Operation</label>\n\n <verben-drop-down\n [showClear]=\"true\"\n label=\"Operation\"\n styleClass=\"w-full\"\n width=\"100%\"\n [multiselect]=\"false\"\n placeholder=\"Select\"\n [options]=\"operations\"\n optionLabel=\"Description\"\n optionValue=\"Code\"\n id=\"operation\"\n formControlName=\"Operation\"\n class=\"form-control\"\n >\n </verben-drop-down>\n </div>\n\n <!-- <div class=\"space-y-1\">\n <label for=\"object\">Object</label>\n\n <verbena-input\n id=\"object\"\n formControlName=\"Operation\"\n placeHolder=\"Enter Object\"\n />\n </div> -->\n\n <div class=\"space-y-1\">\n <label for=\"status\">Status</label>\n\n <verben-drop-down\n label=\"Status\"\n styleClass=\"w-full\"\n width=\"100%\"\n [multiselect]=\"false\"\n [showClear]=\"true\"\n placeholder=\"Null\"\n [(options)]=\"statuses\"\n id=\"status\"\n formControlName=\"Status\"\n class=\"form-control\"\n >\n </verben-drop-down>\n </div>\n\n <!-- buttons -->\n <div class=\"flex justify-between gap-4 my-2\">\n <!-- <verbena-button\n width=\"114px\"\n height=\"39px\"\n text=\"Delete\"\n bgColor=\"#999999\"\n textColor=\"#404040\"\n borderRadius=\"10px\"\n [disable]=\"disableProcessing()\"\n ></verbena-button> -->\n @if (currentData?.data?.Code) {\n <a [routerLink]=\"[designerUrl(), currentData?.data.Code]\" class=\"ml-auto\">\n <verbena-button text=\"Designer\" styleType=\"ylw-outline\"></verbena-button>\n </a>\n }\n <!-- <a [routerLink]=\"['/designer', currentData?.data.Code]\" class=\"ml-auto\">\n <verbena-button\n (click)=\"switchView.emit()\"\n text=\"Designer\"\n styleType=\"ylw-outline\"\n ></verbena-button>\n </a> -->\n <verbena-button\n (click)=\"switchView.emit()\"\n text=\"Switch To Table\"\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 [disable]=\"disableProcessing()\"\n ></verbena-button>\n </div>\n</form>\n" }]
82
82
  }], ctorParameters: () => [{ type: i1.FormBuilder }], propDecorators: { operations: [{
83
83
  type: Input
84
84
  }], currentData: [{
@@ -88,4 +88,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
88
88
  }], onSave: [{
89
89
  type: Output
90
90
  }] } });
91
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3ctZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4td29ya2Zsb3ctdWkvc3JjL2xpYi9jb21wb25lbnRzL3dvcmtmbG93cy93b3JrZmxvdy1mb3JtL3dvcmtmbG93LWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmVyYmVuLXdvcmtmbG93LXVpL3NyYy9saWIvY29tcG9uZW50cy93b3JrZmxvd3Mvd29ya2Zsb3ctZm9ybS93b3JrZmxvdy1mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlFLE9BQU8sRUFBMEIsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFcEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFHdkUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLG1DQUFtQyxDQUFDOzs7OztBQU8zRCxNQUFNLE9BQU8scUJBQXFCO0lBa0NaO0lBakNYLFVBQVUsR0FBd0IsRUFBRSxDQUFDO0lBQzlDLElBQ0ksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzQixDQUFDO0lBQ0QsSUFBSSxXQUFXLENBQUMsS0FBc0I7UUFDcEMsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7UUFDMUIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDekIsSUFBSSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUM7WUFDaEIsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7Z0JBQ25CLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFD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O3NCQUFsQixLQUFLO2dCQUVGLFdBQVc7c0JBRGQsS0FBSztnQkF1QkksVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxNQUFNO3NCQUFmLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgaW5wdXQsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDYXJkRGF0YSB9IGZyb20gJ3ZlcmJlbi1uZy11aSc7XG5pbXBvcnQgeyBUYXNrQXNzaWdubWVudFR5cGUgfSBmcm9tICd2ZXJiZW4td29ya2Zsb3ctdWkvc3JjL2xpYi9tb2RlbHMnO1xuaW1wb3J0IHsgV29ya2Zsb3cgfSBmcm9tICd2ZXJiZW4td29ya2Zsb3ctdWkvc3JjL2xpYi9tb2RlbHMnO1xuaW1wb3J0IHsgV29ya2Zsb3dPcGVyYXRpb24gfSBmcm9tICd2ZXJiZW4td29ya2Zsb3ctdWkvc3JjL2xpYi9tb2RlbHMnO1xuaW1wb3J0IHsgU3RhdHVzIH0gZnJvbSAndmVyYmVuLXdvcmtmbG93LXVpL3NyYy9saWIvbW9kZWxzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLXdvcmtmbG93LWZvcm0nLFxuICB0ZW1wbGF0ZVVybDogJy4vd29ya2Zsb3ctZm9ybS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi93b3JrZmxvdy1mb3JtLmNvbXBvbmVudC5jc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBXb3JrZmxvd0Zvcm1Db21wb25lbnQge1xuICBASW5wdXQoKSBvcGVyYXRpb25zOiBXb3JrZmxvd09wZXJhdGlvbltdID0gW107XG4gIEBJbnB1dCgpXG4gIGdldCBjdXJyZW50RGF0YSgpOiBDYXJkRGF0YSB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLl9jdXJyZW50RGF0YTtcbiAgfVxuICBzZXQgY3VycmVudERhdGEodmFsdWU6IENhcmREYXRhIHwgbnVsbCkge1xuICAgIHRoaXMuX2N1cnJlbnREYXRhID0gdmFsdWU7XG4gICAgY29uc29sZS5sb2codmFsdWU/LmRhdGEpO1xuICAgIGlmICh2YWx1ZT8uZGF0YSkge1xuICAgICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUoe1xuICAgICAgICBOYW1lOiB2YWx1ZS5kYXRhLk5hbWUgfHwgJycsXG4gICAgICAgIERlc2NyaXB0aW9uOiB2YWx1ZS5kYXRhLkRlc2NyaXB0aW9uIHx8ICcnLFxuICAgICAgICBBc3NpZ25tZW50VHlwZTogdmFsdWUuZGF0YS5Bc3NpZ25tZW50VHlwZSB8fCAnJyxcbiAgICAgICAgU2VydmljZTogdmFsdWUuZGF0YS5TZXJ2aWNlIHx8ICcnLFxuICAgICAgICBPcGVyYXRpb246IHZhbHVlLmRhdGEuT3BlcmF0aW9uIHx8ICcnLFxuICAgICAgICBTdGF0dXM6IHZhbHVlLmRhdGEuU3RhdHVzIHx8ICcnLFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZm9ybS5yZXNldCgpO1xuICAgIH1cbiAgfVxuICBwcml2YXRlIF9jdXJyZW50RGF0YTogQ2FyZERhdGEgfCBudWxsID0gbnVsbDtcbiAgZGVzaWduZXJVcmwgPSBpbnB1dDxzdHJpbmc+KCd3b3JrZmxvdycpO1xuXG4gIEBPdXRwdXQoKSBzd2l0Y2hWaWV3ID0gbmV3IEV2ZW50RW1pdHRlcjx1bmRlZmluZWQ+KCk7XG4gIEBPdXRwdXQoKSBvblNhdmUgPSBuZXcgRXZlbnRFbWl0dGVyPFBhcnRpYWw8V29ya2Zsb3c+PigpO1xuXG4gIGZvcm06IEZvcm1Hcm91cDtcbiAgYXNzaWdubWVudFR5cGVzID0gT2JqZWN0LnZhbHVlcyhUYXNrQXNzaWdubWVudFR5cGUpO1xuICBzdGF0dXNlcyA9IE9iamVjdC52YWx1ZXMoU3RhdHVzKTtcblxuICAvLyByb2xlczogV3JpdGFibGVTaWduYWw8Um9sZVtdPiA9IHNpZ25hbChbXSk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIpIHtcbiAgICB0aGlzLmZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgIE5hbWU6IFsnJywgeyB2YWxpZGF0b3JzOiBbVmFsaWRhdG9ycy5yZXF1aXJlZF0gfV0sXG4gICAgICBEZXNjcmlwdGlvbjogWycnLCB7IHZhbGlkYXRvcnM6IFtWYWxpZGF0b3JzLnJlcXVpcmVkXSB9XSxcbiAgICAgIEFzc2lnbm1lbnRUeXBlOiBbJycsIHsgdmFsaWRhdG9yczogW1ZhbGlkYXRvcnMucmVxdWlyZWRdIH1dLFxuICAgICAgU2VydmljZTogWycnXSxcbiAgICAgIE9wZXJhdGlvbjogWycnXSxcbiAgICAgIFN0YXR1czogWycnLCB7IHZhbGlkYXRvcnM6IFtWYWxpZGF0b3JzLnJlcXVpcmVkXSB9XSxcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIC8vIHRoaXMudXNlckFjY2Vzc1JlcXVlc3RGYWNhZGUuZ2V0Um9sZXMkKCkuc3Vic2NyaWJlKChkYXRhKSA9PiB7XG4gICAgLy8gICB0aGlzLnJvbGVzLnNldChkYXRhKTtcbiAgICAvLyB9KTtcbiAgICAvLyB0cnkge1xuICAgIC8vICAgdGhpcy51c2VyQWNjZXNzUmVxdWVzdEZhY2FkZS5sb2FkUm9sZXMoKTtcbiAgICAvLyB9IGNhdGNoIChlcnJvcikge1xuICAgIC8vICAgLy8gSGFuZGxlIGVycm9yXG4gICAgLy8gfVxuICAgIGNvbnNvbGUubG9nKHRoaXMuY3VycmVudERhdGE/LmRhdGEpO1xuICB9XG5cbiAgaGFuZGxlU3VibWl0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmZvcm0udmFsaWQpIHtcbiAgICAgIC8vIEVtaXQgc2F2ZSBldmVudCB3aXRoIGZvcm0gdmFsdWVcbiAgICAgIGNvbnNvbGUubG9nKCdGb3JtIHNhdmVkOicsIHRoaXMuZm9ybS52YWx1ZSk7XG4gICAgICB0aGlzLm9uU2F2ZS5lbWl0KHRoaXMuZm9ybS52YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgb25EZWxldGUoKTogdm9pZCB7XG4gICAgLy8gRW1pdCBkZWxldGUgZXZlbnRcbiAgICBjb25zb2xlLmxvZygnRGVsZXRlIHJlcXVlc3RlZCcpO1xuICB9XG5cbiAgZGlzYWJsZVByb2Nlc3NpbmcoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLmZvcm0udmFsaWQ7XG4gIH1cbn1cbiIsIjxmb3JtXG4gIFtmb3JtR3JvdXBdPVwiZm9ybVwiXG4gIGNsYXNzPVwiZmxleCBmbGV4LWNvbCBweC0zIHBiLTMgcm91bmRlZC14bCBoLWZ1bGwgdy1mdWxsIHJlbGF0aXZlIHNwYWNlLXktNFwiXG4gIChuZ1N1Ym1pdCk9XCJoYW5kbGVTdWJtaXQoKVwiXG4+XG4gIDx2ZXJiZW5hLWlucHV0XG4gICAgbmFtZT1cIk5hbWVcIlxuICAgIGxhYmVsPVwiTmFtZVwiXG4gICAgZm9ybUNvbnRyb2xOYW1lPVwiTmFtZVwiXG4gICAgcGxhY2VIb2xkZXI9XCJFbnRlciBOYW1lXCJcbiAgLz5cbiAgPHZlcmJlbmEtaW5wdXRcbiAgICBuYW1lPVwiRGVzY3JpcHRpb25cIlxuICAgIGxhYmVsPVwiRGVzY3JpcHRpb25cIlxuICAgIGZvcm1Db250cm9sTmFtZT1cIkRlc2NyaXB0aW9uXCJcbiAgICBwbGFjZUhvbGRlcj1cIkVudGVyIERlc2NyaXB0aW9uXCJcbiAgLz5cblxuICA8ZGl2IGNsYXNzPVwic3BhY2UteS0xXCI+XG4gICAgPGxhYmVsIGZvcj1cImFzc2lnbm1lbnRcIj5Bc3NpZ25tZW50PC9sYWJlbD5cblxuICAgIDx2ZXJiZW4tZHJvcC1kb3duXG4gICAgICBsYWJlbD1cIkFzc2lnbm1lbnRcIlxuICAgICAgc3R5bGVDbGFzcz1cInctZnVsbFwiXG4gICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgW211bHRpc2VsZWN0XT1cImZhbHNlXCJcbiAgICAgIHBsYWNlaG9sZGVyPVwiU2VsZWN0XCJcbiAgICAgIFtvcHRpb25zXT1cImFzc2lnbm1lbnRUeXBlc1wiXG4gICAgICBpZD1cImFzc2lnbm1lbnRcIlxuICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiQXNzaWdubWVudFR5cGVcIlxuICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgID5cbiAgICA8L3ZlcmJlbi1kcm9wLWRvd24+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJzcGFjZS15LTFcIj5cbiAgICA8bGFiZWwgZm9yPVwib3BlcmF0aW9uXCI+T3BlcmF0aW9uPC9sYWJlbD5cblxuICAgIDx2ZXJiZW4tZHJvcC1kb3duXG4gICAgICBsYWJlbD1cIk9wZXJhdGlvblwiXG4gICAgICBzdHlsZUNsYXNzPVwidy1mdWxsXCJcbiAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICBbbXVsdGlzZWxlY3RdPVwiZmFsc2VcIlxuICAgICAgcGxhY2Vob2xkZXI9XCJTZWxlY3RcIlxuICAgICAgW29wdGlvbnNdPVwib3BlcmF0aW9uc1wiXG4gICAgICBvcHRpb25MYWJlbD1cIkRlc2NyaXB0aW9uXCJcbiAgICAgIG9wdGlvblZhbHVlPVwiQ29kZVwiXG4gICAgICBpZD1cIm9wZXJhdGlvblwiXG4gICAgICBmb3JtQ29udHJvbE5hbWU9XCJPcGVyYXRpb25cIlxuICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgID5cbiAgICA8L3ZlcmJlbi1kcm9wLWRvd24+XG4gIDwvZGl2PlxuXG4gIDwhLS0gPGRpdiBjbGFzcz1cInNwYWNlLXktMVwiPlxuICAgIDxsYWJlbCBmb3I9XCJvYmplY3RcIj5PYmplY3Q8L2xhYmVsPlxuXG4gICAgPHZlcmJlbmEtaW5wdXRcbiAgICAgIGlkPVwib2JqZWN0XCJcbiAgICAgIGZvcm1Db250cm9sTmFtZT1cIk9wZXJhdGlvblwiXG4gICAgICBwbGFjZUhvbGRlcj1cIkVudGVyIE9iamVjdFwiXG4gICAgLz5cbiAgPC9kaXY+IC0tPlxuXG4gIDxkaXYgY2xhc3M9XCJzcGFjZS15LTFcIj5cbiAgICA8bGFiZWwgZm9yPVwic3RhdHVzXCI+U3RhdHVzPC9sYWJlbD5cblxuICAgIDx2ZXJiZW4tZHJvcC1kb3duXG4gICAgICBsYWJlbD1cIlN0YXR1c1wiXG4gICAgICBzdHlsZUNsYXNzPVwidy1mdWxsXCJcbiAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICBbbXVsdGlzZWxlY3RdPVwiZmFsc2VcIlxuICAgICAgW3Nob3dDbGVhcl09XCJ0cnVlXCJcbiAgICAgIHBsYWNlaG9sZGVyPVwiTnVsbFwiXG4gICAgICBbKG9wdGlvbnMpXT1cInN0YXR1c2VzXCJcbiAgICAgIGlkPVwic3RhdHVzXCJcbiAgICAgIGZvcm1Db250cm9sTmFtZT1cIlN0YXR1c1wiXG4gICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgPlxuICAgIDwvdmVyYmVuLWRyb3AtZG93bj5cbiAgPC9kaXY+XG5cbiAgPCEtLSBidXR0b25zIC0tPlxuICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWJldHdlZW4gZ2FwLTQgbXktMlwiPlxuICAgIDwhLS0gPHZlcmJlbmEtYnV0dG9uXG4gICAgICB3aWR0aD1cIjExNHB4XCJcbiAgICAgIGhlaWdodD1cIjM5cHhcIlxuICAgICAgdGV4dD1cIkRlbGV0ZVwiXG4gICAgICBiZ0NvbG9yPVwiIzk5OTk5OVwiXG4gICAgICB0ZXh0Q29sb3I9XCIjNDA0MDQwXCJcbiAgICAgIGJvcmRlclJhZGl1cz1cIjEwcHhcIlxuICAgICAgW2Rpc2FibGVdPVwiZGlzYWJsZVByb2Nlc3NpbmcoKVwiXG4gICAgPjwvdmVyYmVuYS1idXR0b24+IC0tPlxuICAgIEBpZiAoY3VycmVudERhdGE/LmRhdGE/LkNvZGUpIHtcbiAgICAgIDxhIFtyb3V0ZXJMaW5rXT1cIltkZXNpZ25lclVybCgpLCBjdXJyZW50RGF0YT8uZGF0YS5Db2RlXVwiIGNsYXNzPVwibWwtYXV0b1wiPlxuICAgICAgICA8dmVyYmVuYS1idXR0b24gdGV4dD1cIkRlc2lnbmVyXCIgc3R5bGVUeXBlPVwieWx3LW91dGxpbmVcIj48L3ZlcmJlbmEtYnV0dG9uPlxuICAgICAgPC9hPlxuICAgIH1cbiAgICA8IS0tIDxhIFtyb3V0ZXJMaW5rXT1cIlsnL2Rlc2lnbmVyJywgY3VycmVudERhdGE/LmRhdGEuQ29kZV1cIiBjbGFzcz1cIm1sLWF1dG9cIj5cbiAgICAgIDx2ZXJiZW5hLWJ1dHRvblxuICAgICAgICAoY2xpY2spPVwic3dpdGNoVmlldy5lbWl0KClcIlxuICAgICAgICB0ZXh0PVwiRGVzaWduZXJcIlxuICAgICAgICBzdHlsZVR5cGU9XCJ5bHctb3V0bGluZVwiXG4gICAgICA+PC92ZXJiZW5hLWJ1dHRvbj5cbiAgICA8L2E+IC0tPlxuICAgIDx2ZXJiZW5hLWJ1dHRvblxuICAgICAgKGNsaWNrKT1cInN3aXRjaFZpZXcuZW1pdCgpXCJcbiAgICAgIHRleHQ9XCJTd2l0Y2ggVG8gVGFibGVcIlxuICAgICAgc3R5bGVUeXBlPVwieWx3LW91dGxpbmVcIlxuICAgICAgY2xhc3M9XCJtbC1hdXRvXCJcbiAgICA+PC92ZXJiZW5hLWJ1dHRvbj5cbiAgICA8dmVyYmVuYS1idXR0b25cbiAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgdGV4dD1cIlNhdmVcIlxuICAgICAgYmdDb2xvcj1cIiNGRkU2ODFcIlxuICAgICAgdGV4dENvbG9yPVwiIzQwNDA0MFwiXG4gICAgICBib3JkZXJSYWRpdXM9XCIxMHB4XCJcbiAgICAgIHBkPVwiMTBweCAyMHB4XCJcbiAgICAgIHdpZHRoPVwiMTE0cHhcIlxuICAgICAgaGVpZ2h0PVwiMzlweFwiXG4gICAgICBbZGlzYWJsZV09XCJkaXNhYmxlUHJvY2Vzc2luZygpXCJcbiAgICA+PC92ZXJiZW5hLWJ1dHRvbj5cbiAgPC9kaXY+XG48L2Zvcm0+XG4iXX0=
91
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3ctZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4td29ya2Zsb3ctdWkvc3JjL2xpYi9jb21wb25lbnRzL3dvcmtmbG93cy93b3JrZmxvdy1mb3JtL3dvcmtmbG93LWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmVyYmVuLXdvcmtmbG93LXVpL3NyYy9saWIvY29tcG9uZW50cy93b3JrZmxvd3Mvd29ya2Zsb3ctZm9ybS93b3JrZmxvdy1mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlFLE9BQU8sRUFBMEIsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFcEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFHdkUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLG1DQUFtQyxDQUFDOzs7OztBQU8zRCxNQUFNLE9BQU8scUJBQXFCO0lBa0NaO0lBakNYLFVBQVUsR0FBd0IsRUFBRSxDQUFDO0lBQzlDLElBQ0ksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzQixDQUFDO0lBQ0QsSUFBSSxXQUFXLENBQUMsS0FBc0I7UUFDcEMsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7UUFDMUIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDekIsSUFBSSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUM7WUFDaEIsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7Z0JBQ25CLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFD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O3NCQUFsQixLQUFLO2dCQUVGLFdBQVc7c0JBRGQsS0FBSztnQkF1QkksVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxNQUFNO3NCQUFmLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgaW5wdXQsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDYXJkRGF0YSB9IGZyb20gJ3ZlcmJlbi1uZy11aSc7XG5pbXBvcnQgeyBUYXNrQXNzaWdubWVudFR5cGUgfSBmcm9tICd2ZXJiZW4td29ya2Zsb3ctdWkvc3JjL2xpYi9tb2RlbHMnO1xuaW1wb3J0IHsgV29ya2Zsb3cgfSBmcm9tICd2ZXJiZW4td29ya2Zsb3ctdWkvc3JjL2xpYi9tb2RlbHMnO1xuaW1wb3J0IHsgV29ya2Zsb3dPcGVyYXRpb24gfSBmcm9tICd2ZXJiZW4td29ya2Zsb3ctdWkvc3JjL2xpYi9tb2RlbHMnO1xuaW1wb3J0IHsgU3RhdHVzIH0gZnJvbSAndmVyYmVuLXdvcmtmbG93LXVpL3NyYy9saWIvbW9kZWxzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLXdvcmtmbG93LWZvcm0nLFxuICB0ZW1wbGF0ZVVybDogJy4vd29ya2Zsb3ctZm9ybS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi93b3JrZmxvdy1mb3JtLmNvbXBvbmVudC5jc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBXb3JrZmxvd0Zvcm1Db21wb25lbnQge1xuICBASW5wdXQoKSBvcGVyYXRpb25zOiBXb3JrZmxvd09wZXJhdGlvbltdID0gW107XG4gIEBJbnB1dCgpXG4gIGdldCBjdXJyZW50RGF0YSgpOiBDYXJkRGF0YSB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLl9jdXJyZW50RGF0YTtcbiAgfVxuICBzZXQgY3VycmVudERhdGEodmFsdWU6IENhcmREYXRhIHwgbnVsbCkge1xuICAgIHRoaXMuX2N1cnJlbnREYXRhID0gdmFsdWU7XG4gICAgY29uc29sZS5sb2codmFsdWU/LmRhdGEpO1xuICAgIGlmICh2YWx1ZT8uZGF0YSkge1xuICAgICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUoe1xuICAgICAgICBOYW1lOiB2YWx1ZS5kYXRhLk5hbWUgfHwgJycsXG4gICAgICAgIERlc2NyaXB0aW9uOiB2YWx1ZS5kYXRhLkRlc2NyaXB0aW9uIHx8ICcnLFxuICAgICAgICBBc3NpZ25tZW50VHlwZTogdmFsdWUuZGF0YS5Bc3NpZ25tZW50VHlwZSB8fCAnJyxcbiAgICAgICAgU2VydmljZTogdmFsdWUuZGF0YS5TZXJ2aWNlIHx8ICcnLFxuICAgICAgICBPcGVyYXRpb246IHZhbHVlLmRhdGEuT3BlcmF0aW9uIHx8ICcnLFxuICAgICAgICBTdGF0dXM6IHZhbHVlLmRhdGEuU3RhdHVzIHx8ICcnLFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZm9ybS5yZXNldCgpO1xuICAgIH1cbiAgfVxuICBwcml2YXRlIF9jdXJyZW50RGF0YTogQ2FyZERhdGEgfCBudWxsID0gbnVsbDtcbiAgZGVzaWduZXJVcmwgPSBpbnB1dDxzdHJpbmc+KCd3b3JrZmxvdycpO1xuXG4gIEBPdXRwdXQoKSBzd2l0Y2hWaWV3ID0gbmV3IEV2ZW50RW1pdHRlcjx1bmRlZmluZWQ+KCk7XG4gIEBPdXRwdXQoKSBvblNhdmUgPSBuZXcgRXZlbnRFbWl0dGVyPFBhcnRpYWw8V29ya2Zsb3c+PigpO1xuXG4gIGZvcm06IEZvcm1Hcm91cDtcbiAgYXNzaWdubWVudFR5cGVzID0gT2JqZWN0LnZhbHVlcyhUYXNrQXNzaWdubWVudFR5cGUpO1xuICBzdGF0dXNlcyA9IE9iamVjdC52YWx1ZXMoU3RhdHVzKTtcblxuICAvLyByb2xlczogV3JpdGFibGVTaWduYWw8Um9sZVtdPiA9IHNpZ25hbChbXSk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIpIHtcbiAgICB0aGlzLmZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgIE5hbWU6IFsnJywgeyB2YWxpZGF0b3JzOiBbVmFsaWRhdG9ycy5yZXF1aXJlZF0gfV0sXG4gICAgICBEZXNjcmlwdGlvbjogWycnLCB7IHZhbGlkYXRvcnM6IFtWYWxpZGF0b3JzLnJlcXVpcmVkXSB9XSxcbiAgICAgIEFzc2lnbm1lbnRUeXBlOiBbJycsIHsgdmFsaWRhdG9yczogW1ZhbGlkYXRvcnMucmVxdWlyZWRdIH1dLFxuICAgICAgU2VydmljZTogWycnXSxcbiAgICAgIE9wZXJhdGlvbjogWycnXSxcbiAgICAgIFN0YXR1czogWycnLCB7IHZhbGlkYXRvcnM6IFtWYWxpZGF0b3JzLnJlcXVpcmVkXSB9XSxcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIC8vIHRoaXMudXNlckFjY2Vzc1JlcXVlc3RGYWNhZGUuZ2V0Um9sZXMkKCkuc3Vic2NyaWJlKChkYXRhKSA9PiB7XG4gICAgLy8gICB0aGlzLnJvbGVzLnNldChkYXRhKTtcbiAgICAvLyB9KTtcbiAgICAvLyB0cnkge1xuICAgIC8vICAgdGhpcy51c2VyQWNjZXNzUmVxdWVzdEZhY2FkZS5sb2FkUm9sZXMoKTtcbiAgICAvLyB9IGNhdGNoIChlcnJvcikge1xuICAgIC8vICAgLy8gSGFuZGxlIGVycm9yXG4gICAgLy8gfVxuICAgIGNvbnNvbGUubG9nKHRoaXMuY3VycmVudERhdGE/LmRhdGEpO1xuICB9XG5cbiAgaGFuZGxlU3VibWl0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmZvcm0udmFsaWQpIHtcbiAgICAgIC8vIEVtaXQgc2F2ZSBldmVudCB3aXRoIGZvcm0gdmFsdWVcbiAgICAgIGNvbnNvbGUubG9nKCdGb3JtIHNhdmVkOicsIHRoaXMuZm9ybS52YWx1ZSk7XG4gICAgICB0aGlzLm9uU2F2ZS5lbWl0KHRoaXMuZm9ybS52YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgb25EZWxldGUoKTogdm9pZCB7XG4gICAgLy8gRW1pdCBkZWxldGUgZXZlbnRcbiAgICBjb25zb2xlLmxvZygnRGVsZXRlIHJlcXVlc3RlZCcpO1xuICB9XG5cbiAgZGlzYWJsZVByb2Nlc3NpbmcoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLmZvcm0udmFsaWQ7XG4gIH1cbn1cbiIsIjxmb3JtXG4gIFtmb3JtR3JvdXBdPVwiZm9ybVwiXG4gIGNsYXNzPVwiZmxleCBmbGV4LWNvbCBweC0zIHBiLTMgcm91bmRlZC14bCBoLWZ1bGwgdy1mdWxsIHJlbGF0aXZlIHNwYWNlLXktNFwiXG4gIChuZ1N1Ym1pdCk9XCJoYW5kbGVTdWJtaXQoKVwiXG4+XG4gIDx2ZXJiZW5hLWlucHV0XG4gICAgbmFtZT1cIk5hbWVcIlxuICAgIGxhYmVsPVwiTmFtZVwiXG4gICAgZm9ybUNvbnRyb2xOYW1lPVwiTmFtZVwiXG4gICAgcGxhY2VIb2xkZXI9XCJFbnRlciBOYW1lXCJcbiAgLz5cbiAgPHZlcmJlbmEtaW5wdXRcbiAgICBuYW1lPVwiRGVzY3JpcHRpb25cIlxuICAgIGxhYmVsPVwiRGVzY3JpcHRpb25cIlxuICAgIGZvcm1Db250cm9sTmFtZT1cIkRlc2NyaXB0aW9uXCJcbiAgICBwbGFjZUhvbGRlcj1cIkVudGVyIERlc2NyaXB0aW9uXCJcbiAgLz5cblxuICA8ZGl2IGNsYXNzPVwic3BhY2UteS0xXCI+XG4gICAgPGxhYmVsIGZvcj1cImFzc2lnbm1lbnRcIj5Bc3NpZ25tZW50PC9sYWJlbD5cblxuICAgIDx2ZXJiZW4tZHJvcC1kb3duXG4gICAgICBbc2hvd0NsZWFyXT1cInRydWVcIlxuICAgICAgbGFiZWw9XCJBc3NpZ25tZW50XCJcbiAgICAgIHN0eWxlQ2xhc3M9XCJ3LWZ1bGxcIlxuICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgIFttdWx0aXNlbGVjdF09XCJmYWxzZVwiXG4gICAgICBwbGFjZWhvbGRlcj1cIlNlbGVjdFwiXG4gICAgICBbb3B0aW9uc109XCJhc3NpZ25tZW50VHlwZXNcIlxuICAgICAgaWQ9XCJhc3NpZ25tZW50XCJcbiAgICAgIGZvcm1Db250cm9sTmFtZT1cIkFzc2lnbm1lbnRUeXBlXCJcbiAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICA+XG4gICAgPC92ZXJiZW4tZHJvcC1kb3duPlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwic3BhY2UteS0xXCI+XG4gICAgPGxhYmVsIGZvcj1cIm9wZXJhdGlvblwiPk9wZXJhdGlvbjwvbGFiZWw+XG5cbiAgICA8dmVyYmVuLWRyb3AtZG93blxuICAgICAgW3Nob3dDbGVhcl09XCJ0cnVlXCJcbiAgICAgIGxhYmVsPVwiT3BlcmF0aW9uXCJcbiAgICAgIHN0eWxlQ2xhc3M9XCJ3LWZ1bGxcIlxuICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgIFttdWx0aXNlbGVjdF09XCJmYWxzZVwiXG4gICAgICBwbGFjZWhvbGRlcj1cIlNlbGVjdFwiXG4gICAgICBbb3B0aW9uc109XCJvcGVyYXRpb25zXCJcbiAgICAgIG9wdGlvbkxhYmVsPVwiRGVzY3JpcHRpb25cIlxuICAgICAgb3B0aW9uVmFsdWU9XCJDb2RlXCJcbiAgICAgIGlkPVwib3BlcmF0aW9uXCJcbiAgICAgIGZvcm1Db250cm9sTmFtZT1cIk9wZXJhdGlvblwiXG4gICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgPlxuICAgIDwvdmVyYmVuLWRyb3AtZG93bj5cbiAgPC9kaXY+XG5cbiAgPCEtLSA8ZGl2IGNsYXNzPVwic3BhY2UteS0xXCI+XG4gICAgPGxhYmVsIGZvcj1cIm9iamVjdFwiPk9iamVjdDwvbGFiZWw+XG5cbiAgICA8dmVyYmVuYS1pbnB1dFxuICAgICAgaWQ9XCJvYmplY3RcIlxuICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiT3BlcmF0aW9uXCJcbiAgICAgIHBsYWNlSG9sZGVyPVwiRW50ZXIgT2JqZWN0XCJcbiAgICAvPlxuICA8L2Rpdj4gLS0+XG5cbiAgPGRpdiBjbGFzcz1cInNwYWNlLXktMVwiPlxuICAgIDxsYWJlbCBmb3I9XCJzdGF0dXNcIj5TdGF0dXM8L2xhYmVsPlxuXG4gICAgPHZlcmJlbi1kcm9wLWRvd25cbiAgICAgIGxhYmVsPVwiU3RhdHVzXCJcbiAgICAgIHN0eWxlQ2xhc3M9XCJ3LWZ1bGxcIlxuICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgIFttdWx0aXNlbGVjdF09XCJmYWxzZVwiXG4gICAgICBbc2hvd0NsZWFyXT1cInRydWVcIlxuICAgICAgcGxhY2Vob2xkZXI9XCJOdWxsXCJcbiAgICAgIFsob3B0aW9ucyldPVwic3RhdHVzZXNcIlxuICAgICAgaWQ9XCJzdGF0dXNcIlxuICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiU3RhdHVzXCJcbiAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICA+XG4gICAgPC92ZXJiZW4tZHJvcC1kb3duPlxuICA8L2Rpdj5cblxuICA8IS0tIGJ1dHRvbnMgLS0+XG4gIDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktYmV0d2VlbiBnYXAtNCBteS0yXCI+XG4gICAgPCEtLSA8dmVyYmVuYS1idXR0b25cbiAgICAgIHdpZHRoPVwiMTE0cHhcIlxuICAgICAgaGVpZ2h0PVwiMzlweFwiXG4gICAgICB0ZXh0PVwiRGVsZXRlXCJcbiAgICAgIGJnQ29sb3I9XCIjOTk5OTk5XCJcbiAgICAgIHRleHRDb2xvcj1cIiM0MDQwNDBcIlxuICAgICAgYm9yZGVyUmFkaXVzPVwiMTBweFwiXG4gICAgICBbZGlzYWJsZV09XCJkaXNhYmxlUHJvY2Vzc2luZygpXCJcbiAgICA+PC92ZXJiZW5hLWJ1dHRvbj4gLS0+XG4gICAgQGlmIChjdXJyZW50RGF0YT8uZGF0YT8uQ29kZSkge1xuICAgICAgPGEgW3JvdXRlckxpbmtdPVwiW2Rlc2lnbmVyVXJsKCksIGN1cnJlbnREYXRhPy5kYXRhLkNvZGVdXCIgY2xhc3M9XCJtbC1hdXRvXCI+XG4gICAgICAgIDx2ZXJiZW5hLWJ1dHRvbiB0ZXh0PVwiRGVzaWduZXJcIiBzdHlsZVR5cGU9XCJ5bHctb3V0bGluZVwiPjwvdmVyYmVuYS1idXR0b24+XG4gICAgICA8L2E+XG4gICAgfVxuICAgIDwhLS0gPGEgW3JvdXRlckxpbmtdPVwiWycvZGVzaWduZXInLCBjdXJyZW50RGF0YT8uZGF0YS5Db2RlXVwiIGNsYXNzPVwibWwtYXV0b1wiPlxuICAgICAgPHZlcmJlbmEtYnV0dG9uXG4gICAgICAgIChjbGljayk9XCJzd2l0Y2hWaWV3LmVtaXQoKVwiXG4gICAgICAgIHRleHQ9XCJEZXNpZ25lclwiXG4gICAgICAgIHN0eWxlVHlwZT1cInlsdy1vdXRsaW5lXCJcbiAgICAgID48L3ZlcmJlbmEtYnV0dG9uPlxuICAgIDwvYT4gLS0+XG4gICAgPHZlcmJlbmEtYnV0dG9uXG4gICAgICAoY2xpY2spPVwic3dpdGNoVmlldy5lbWl0KClcIlxuICAgICAgdGV4dD1cIlN3aXRjaCBUbyBUYWJsZVwiXG4gICAgICBzdHlsZVR5cGU9XCJ5bHctb3V0bGluZVwiXG4gICAgICBjbGFzcz1cIm1sLWF1dG9cIlxuICAgID48L3ZlcmJlbmEtYnV0dG9uPlxuICAgIDx2ZXJiZW5hLWJ1dHRvblxuICAgICAgdHlwZT1cInN1Ym1pdFwiXG4gICAgICB0ZXh0PVwiU2F2ZVwiXG4gICAgICBiZ0NvbG9yPVwiI0ZGRTY4MVwiXG4gICAgICB0ZXh0Q29sb3I9XCIjNDA0MDQwXCJcbiAgICAgIGJvcmRlclJhZGl1cz1cIjEwcHhcIlxuICAgICAgcGQ9XCIxMHB4IDIwcHhcIlxuICAgICAgd2lkdGg9XCIxMTRweFwiXG4gICAgICBoZWlnaHQ9XCIzOXB4XCJcbiAgICAgIFtkaXNhYmxlXT1cImRpc2FibGVQcm9jZXNzaW5nKClcIlxuICAgID48L3ZlcmJlbmEtYnV0dG9uPlxuICA8L2Rpdj5cbjwvZm9ybT5cbiJdfQ==