verben-workflow-ui 0.5.76 → 0.5.78

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.
Files changed (182) hide show
  1. package/README.md +13 -0
  2. package/esm2022/src/lib/components/actors/actors.component.mjs +5 -5
  3. package/esm2022/src/lib/components/actors/actors.facade.mjs +3 -3
  4. package/esm2022/src/lib/components/actors/actors.form.component.mjs +5 -5
  5. package/esm2022/src/lib/components/actors/actors.module.mjs +4 -4
  6. package/esm2022/src/lib/components/actors/actors.service.mjs +3 -3
  7. package/esm2022/src/lib/components/actors/actors.state.mjs +3 -3
  8. package/esm2022/src/lib/components/designer/components/label-editor.component.mjs +6 -6
  9. package/esm2022/src/lib/components/designer/components/node-selector.component.mjs +4 -4
  10. package/esm2022/src/lib/components/designer/components/swimlane-label.component.mjs +3 -3
  11. package/esm2022/src/lib/components/designer/components/swimlane-popup.component.mjs +3 -3
  12. package/esm2022/src/lib/components/designer/components/wf-canvas.component.mjs +6 -6
  13. package/esm2022/src/lib/components/designer/components/wf-designer.component.mjs +3 -3
  14. package/esm2022/src/lib/components/designer/components/wf-toolbar.component.mjs +6 -6
  15. package/esm2022/src/lib/components/designer/services/canvas-state.service.mjs +3 -3
  16. package/esm2022/src/lib/components/designer/services/connection-segment-interaction.service.mjs +3 -3
  17. package/esm2022/src/lib/components/designer/services/connection.service.mjs +3 -3
  18. package/esm2022/src/lib/components/designer/services/keyboard-handler.service.mjs +3 -3
  19. package/esm2022/src/lib/components/designer/services/label-management.service.mjs +3 -3
  20. package/esm2022/src/lib/components/designer/services/node-finder.service.mjs +3 -3
  21. package/esm2022/src/lib/components/designer/services/node-interaction.service.mjs +3 -3
  22. package/esm2022/src/lib/components/designer/services/node-precondition.service.mjs +3 -3
  23. package/esm2022/src/lib/components/designer/services/node-selection.service.mjs +3 -3
  24. package/esm2022/src/lib/components/designer/services/orthogonal-router.service.mjs +3 -3
  25. package/esm2022/src/lib/components/designer/services/position-update.service.mjs +3 -3
  26. package/esm2022/src/lib/components/designer/services/rendering.service.mjs +3 -3
  27. package/esm2022/src/lib/components/designer/services/swimlane-management.service.mjs +3 -3
  28. package/esm2022/src/lib/components/designer/services/swimlane-stats.service.mjs +3 -3
  29. package/esm2022/src/lib/components/designer/services/viewport.service.mjs +3 -3
  30. package/esm2022/src/lib/components/designer/services/wf-facade.service.mjs +3 -3
  31. package/esm2022/src/lib/components/designer/services/wf-mapper.service.mjs +3 -3
  32. package/esm2022/src/lib/components/designer/services/wf-persistence.service.mjs +3 -3
  33. package/esm2022/src/lib/components/designer/services/wf-state.service.mjs +3 -3
  34. package/esm2022/src/lib/components/expiration/expiration.component.mjs +3 -3
  35. package/esm2022/src/lib/components/expiration/expiration.module.mjs +4 -4
  36. package/esm2022/src/lib/components/file-render/file-render.component.mjs +5 -5
  37. package/esm2022/src/lib/components/file-render/file-render.module.mjs +4 -4
  38. package/esm2022/src/lib/components/file-upload/file-upload.component.mjs +5 -5
  39. package/esm2022/src/lib/components/file-upload/file-upload.module.mjs +4 -4
  40. package/esm2022/src/lib/components/flowable-status/flowable-status.component.mjs +17 -10
  41. package/esm2022/src/lib/components/flowable-status/flowable-status.facade.mjs +3 -3
  42. package/esm2022/src/lib/components/flowable-status/flowable-status.form.component.mjs +5 -5
  43. package/esm2022/src/lib/components/flowable-status/flowable-status.module.mjs +4 -4
  44. package/esm2022/src/lib/components/flowable-status/flowable-status.service.mjs +3 -3
  45. package/esm2022/src/lib/components/flowable-status/flowable-status.state.mjs +3 -3
  46. package/esm2022/src/lib/components/form-control/form-control.component.mjs +5 -5
  47. package/esm2022/src/lib/components/form-control/form-control.module.mjs +4 -4
  48. package/esm2022/src/lib/components/form-group/base-table-style.mjs +6 -6
  49. package/esm2022/src/lib/components/form-group/form-fields/form-fields.component.mjs +5 -5
  50. package/esm2022/src/lib/components/form-group/form-fields/form-fields.module.mjs +4 -4
  51. package/esm2022/src/lib/components/form-group/form-fields/form-fields.service.mjs +3 -3
  52. package/esm2022/src/lib/components/form-group/form-group.component.mjs +5 -5
  53. package/esm2022/src/lib/components/form-group/form-group.module.mjs +4 -4
  54. package/esm2022/src/lib/components/form-group/form-group.service.mjs +3 -3
  55. package/esm2022/src/lib/components/form-response/form-response.component.mjs +5 -5
  56. package/esm2022/src/lib/components/form-response/form-response.module.mjs +4 -4
  57. package/esm2022/src/lib/components/form-response/form-response.service.mjs +3 -3
  58. package/esm2022/src/lib/components/form-timer/form-timer.component.mjs +5 -5
  59. package/esm2022/src/lib/components/form-timer/form-timer.module.mjs +4 -4
  60. package/esm2022/src/lib/components/forms/base-table-style.mjs +6 -6
  61. package/esm2022/src/lib/components/forms/forms.component.mjs +5 -5
  62. package/esm2022/src/lib/components/forms/forms.module.mjs +4 -4
  63. package/esm2022/src/lib/components/forms/forms.service.mjs +3 -3
  64. package/esm2022/src/lib/components/journal/journal.component.mjs +3 -3
  65. package/esm2022/src/lib/components/journal/journal.module.mjs +4 -4
  66. package/esm2022/src/lib/components/my-queue/my-queue.component.mjs +5 -5
  67. package/esm2022/src/lib/components/my-queue/my-queue.facade.mjs +3 -3
  68. package/esm2022/src/lib/components/my-queue/my-queue.module.mjs +4 -4
  69. package/esm2022/src/lib/components/my-queue/my-queue.service.mjs +3 -3
  70. package/esm2022/src/lib/components/my-queue/my-queue.state.mjs +3 -3
  71. package/esm2022/src/lib/components/my-queue/tasks.form.component.mjs +5 -5
  72. package/esm2022/src/lib/components/operation-popup/operation-popup.component.mjs +5 -5
  73. package/esm2022/src/lib/components/operation-popup/operation-popup.facade.mjs +3 -3
  74. package/esm2022/src/lib/components/operation-popup/operation-popup.service.mjs +3 -3
  75. package/esm2022/src/lib/components/operation-popup/operation-popup.state.mjs +3 -3
  76. package/esm2022/src/lib/components/stage-details/stage-details.component.mjs +5 -5
  77. package/esm2022/src/lib/components/stage-details/stage-details.module.mjs +4 -4
  78. package/esm2022/src/lib/components/task-form/task-form.component.mjs +5 -5
  79. package/esm2022/src/lib/components/task-form/task-form.module.mjs +4 -4
  80. package/esm2022/src/lib/components/task-history/task-history.component.mjs +5 -5
  81. package/esm2022/src/lib/components/task-history/task-history.module.mjs +4 -4
  82. package/esm2022/src/lib/components/task-history/task-history.service.mjs +3 -3
  83. package/esm2022/src/lib/components/task-notification/base-table-style.mjs +6 -6
  84. package/esm2022/src/lib/components/task-notification/task-notification.component.mjs +5 -5
  85. package/esm2022/src/lib/components/task-notification/task-notification.module.mjs +4 -4
  86. package/esm2022/src/lib/components/task-notification/task-notification.service.mjs +3 -3
  87. package/esm2022/src/lib/components/tasks/tasks.component.mjs +17 -26
  88. package/esm2022/src/lib/components/tasks/tasks.facade.mjs +3 -3
  89. package/esm2022/src/lib/components/tasks/tasks.form.component.mjs +5 -5
  90. package/esm2022/src/lib/components/tasks/tasks.module.mjs +4 -4
  91. package/esm2022/src/lib/components/tasks/tasks.service.mjs +3 -3
  92. package/esm2022/src/lib/components/tasks/tasks.state.mjs +3 -3
  93. package/esm2022/src/lib/components/wf/wf.component.mjs +3 -3
  94. package/esm2022/src/lib/components/wf/wf.module.mjs +4 -4
  95. package/esm2022/src/lib/components/wf/wf.service.mjs +3 -3
  96. package/esm2022/src/lib/components/workflow/table-style.mjs +6 -6
  97. package/esm2022/src/lib/components/workflow/workflow.component.mjs +8 -8
  98. package/esm2022/src/lib/components/workflow/workflow.module.mjs +4 -4
  99. package/esm2022/src/lib/components/workflow-designer/action-dialog/action-dialog.component.mjs +5 -5
  100. package/esm2022/src/lib/components/workflow-designer/actor-tags-dialog/actor-tags-dialog.component.mjs +5 -5
  101. package/esm2022/src/lib/components/workflow-designer/conditions-popup/conditions-popup.component.mjs +3 -3
  102. package/esm2022/src/lib/components/workflow-designer/decision-popup/decision-popup.component.mjs +4 -4
  103. package/esm2022/src/lib/components/workflow-designer/designer-canvas/designer-canvas.component.mjs +3 -3
  104. package/esm2022/src/lib/components/workflow-designer/designer-toolbar/designer-toolbar.component.mjs +5 -5
  105. package/esm2022/src/lib/components/workflow-designer/escalation-dialog/escalation-dialog.component.mjs +5 -5
  106. package/esm2022/src/lib/components/workflow-designer/services/connection.service.mjs +3 -3
  107. package/esm2022/src/lib/components/workflow-designer/services/node-management.service.mjs +3 -3
  108. package/esm2022/src/lib/components/workflow-designer/services/popup.service.mjs +3 -3
  109. package/esm2022/src/lib/components/workflow-designer/services/swimlane.service.mjs +3 -3
  110. package/esm2022/src/lib/components/workflow-designer/services/transformer.service.mjs +3 -3
  111. package/esm2022/src/lib/components/workflow-designer/stage-dialog/stage-dialog.component.mjs +5 -5
  112. package/esm2022/src/lib/components/workflow-designer/stage-node/stage-node.component.mjs +5 -5
  113. package/esm2022/src/lib/components/workflow-designer/swimlane-dialog/swimlane-dialog.component.mjs +5 -5
  114. package/esm2022/src/lib/components/workflow-designer/workflow-data.service.mjs +3 -3
  115. package/esm2022/src/lib/components/workflow-designer/workflow-designer.component.mjs +4 -4
  116. package/esm2022/src/lib/components/workflow-designer/workflow-designer.module.mjs +4 -4
  117. package/esm2022/src/lib/components/workflow-designer/workflow-designer.state.mjs +3 -3
  118. package/esm2022/src/lib/components/workflows/workflow-form/workflow-form.component.mjs +5 -5
  119. package/esm2022/src/lib/components/workflows/workflows.component.mjs +18 -9
  120. package/esm2022/src/lib/components/workflows/workflows.facade.mjs +3 -3
  121. package/esm2022/src/lib/components/workflows/workflows.module.mjs +4 -4
  122. package/esm2022/src/lib/components/workflows/workflows.service.mjs +3 -3
  123. package/esm2022/src/lib/components/workflows/workflows.state.mjs +3 -3
  124. package/esm2022/src/lib/pipes/async-label.pipe.mjs +3 -3
  125. package/esm2022/src/lib/services/environment.service.mjs +3 -3
  126. package/esm2022/src/lib/services/http-web-request.service.mjs +3 -3
  127. package/esm2022/src/lib/services/label.service.mjs +3 -3
  128. package/esm2022/src/lib/services/util.service.mjs +3 -3
  129. package/esm2022/src/lib/shared/base-table-style.mjs +6 -6
  130. package/esm2022/src/lib/shared/components/base-data-view.component.mjs +3 -3
  131. package/esm2022/src/lib/shared/shared.module.mjs +4 -4
  132. package/fesm2022/verben-workflow-ui-src-lib-components-actors.mjs +21 -21
  133. package/fesm2022/verben-workflow-ui-src-lib-components-actors.mjs.map +1 -1
  134. package/fesm2022/verben-workflow-ui-src-lib-components-designer.mjs +85 -85
  135. package/fesm2022/verben-workflow-ui-src-lib-components-designer.mjs.map +1 -1
  136. package/fesm2022/verben-workflow-ui-src-lib-components-expiration.mjs +7 -7
  137. package/fesm2022/verben-workflow-ui-src-lib-components-expiration.mjs.map +1 -1
  138. package/fesm2022/verben-workflow-ui-src-lib-components-file-render.mjs +8 -8
  139. package/fesm2022/verben-workflow-ui-src-lib-components-file-render.mjs.map +1 -1
  140. package/fesm2022/verben-workflow-ui-src-lib-components-file-upload.mjs +8 -8
  141. package/fesm2022/verben-workflow-ui-src-lib-components-file-upload.mjs.map +1 -1
  142. package/fesm2022/verben-workflow-ui-src-lib-components-flowable-status.mjs +33 -26
  143. package/fesm2022/verben-workflow-ui-src-lib-components-flowable-status.mjs.map +1 -1
  144. package/fesm2022/verben-workflow-ui-src-lib-components-form-control.mjs +8 -8
  145. package/fesm2022/verben-workflow-ui-src-lib-components-form-control.mjs.map +1 -1
  146. package/fesm2022/verben-workflow-ui-src-lib-components-form-group.mjs +27 -27
  147. package/fesm2022/verben-workflow-ui-src-lib-components-form-group.mjs.map +1 -1
  148. package/fesm2022/verben-workflow-ui-src-lib-components-form-response.mjs +11 -11
  149. package/fesm2022/verben-workflow-ui-src-lib-components-form-response.mjs.map +1 -1
  150. package/fesm2022/verben-workflow-ui-src-lib-components-form-timer.mjs +8 -8
  151. package/fesm2022/verben-workflow-ui-src-lib-components-form-timer.mjs.map +1 -1
  152. package/fesm2022/verben-workflow-ui-src-lib-components-forms.mjs +16 -16
  153. package/fesm2022/verben-workflow-ui-src-lib-components-forms.mjs.map +1 -1
  154. package/fesm2022/verben-workflow-ui-src-lib-components-journal.mjs +7 -7
  155. package/fesm2022/verben-workflow-ui-src-lib-components-my-queue.mjs +21 -21
  156. package/fesm2022/verben-workflow-ui-src-lib-components-my-queue.mjs.map +1 -1
  157. package/fesm2022/verben-workflow-ui-src-lib-components-operation-popup.mjs +13 -13
  158. package/fesm2022/verben-workflow-ui-src-lib-components-operation-popup.mjs.map +1 -1
  159. package/fesm2022/verben-workflow-ui-src-lib-components-stage-details.mjs +8 -8
  160. package/fesm2022/verben-workflow-ui-src-lib-components-stage-details.mjs.map +1 -1
  161. package/fesm2022/verben-workflow-ui-src-lib-components-task-form.mjs +8 -8
  162. package/fesm2022/verben-workflow-ui-src-lib-components-task-form.mjs.map +1 -1
  163. package/fesm2022/verben-workflow-ui-src-lib-components-task-history.mjs +11 -11
  164. package/fesm2022/verben-workflow-ui-src-lib-components-task-history.mjs.map +1 -1
  165. package/fesm2022/verben-workflow-ui-src-lib-components-task-notification.mjs +16 -16
  166. package/fesm2022/verben-workflow-ui-src-lib-components-task-notification.mjs.map +1 -1
  167. package/fesm2022/verben-workflow-ui-src-lib-components-tasks.mjs +33 -42
  168. package/fesm2022/verben-workflow-ui-src-lib-components-tasks.mjs.map +1 -1
  169. package/fesm2022/verben-workflow-ui-src-lib-components-wf.mjs +10 -10
  170. package/fesm2022/verben-workflow-ui-src-lib-components-workflow-designer.mjs +67 -67
  171. package/fesm2022/verben-workflow-ui-src-lib-components-workflow-designer.mjs.map +1 -1
  172. package/fesm2022/verben-workflow-ui-src-lib-components-workflow.mjs +16 -16
  173. package/fesm2022/verben-workflow-ui-src-lib-components-workflow.mjs.map +1 -1
  174. package/fesm2022/verben-workflow-ui-src-lib-components-workflows.mjs +34 -25
  175. package/fesm2022/verben-workflow-ui-src-lib-components-workflows.mjs.map +1 -1
  176. package/fesm2022/verben-workflow-ui-src-lib-pipes.mjs +3 -3
  177. package/fesm2022/verben-workflow-ui-src-lib-services.mjs +12 -12
  178. package/fesm2022/verben-workflow-ui-src-lib-shared.mjs +12 -12
  179. package/fesm2022/verben-workflow-ui-src-lib-shared.mjs.map +1 -1
  180. package/package.json +30 -30
  181. package/src/lib/components/workflow/workflow.component.d.ts +1 -1
  182. package/styles/styles.css +19 -1436
@@ -73,12 +73,12 @@ export class WorkflowFormComponent {
73
73
  disableProcessing() {
74
74
  return !this.form.valid;
75
75
  }
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 [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=\"Code\"\n optionValue=\"Code\"\n id=\"operation\"\n formControlName=\"Operation\"\n class=\"form-control\"\n [filter]=\"true\"\n [filterBy]=\"'Code'\"\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"] }] });
76
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: WorkflowFormComponent, deps: [{ token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component });
77
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", 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=\"Code\"\n optionValue=\"Code\"\n id=\"operation\"\n formControlName=\"Operation\"\n class=\"form-control\"\n [filter]=\"true\"\n [filterBy]=\"'Code'\"\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=\"var(--vbn-color-text-muted)\"\n textColor=\"var(--vbn-color-on-primary)\"\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=\"var(--vbn-color-primary)\"\n textColor=\"var(--vbn-color-on-primary)\"\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: ["disabled", "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: ["type", "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", "overlayWidth", "showHorizontalLine", "horizontalLineColor", "optionLabel", "optionSubLabel", "optionValue", "placeholder", "invalidMessage", "errorPosition", "loadMoreCaption", "display", "showClear", "lazyLoad", "selectKey", "styleClass", "group", "multiselect", "filter", "avoidDuplication", "filterBy", "debounceTime", "minChar", "refPageSize", "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
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: WorkflowFormComponent, decorators: [{
79
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", 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 [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=\"Code\"\n optionValue=\"Code\"\n id=\"operation\"\n formControlName=\"Operation\"\n class=\"form-control\"\n [filter]=\"true\"\n [filterBy]=\"'Code'\"\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=\"Code\"\n optionValue=\"Code\"\n id=\"operation\"\n formControlName=\"Operation\"\n class=\"form-control\"\n [filter]=\"true\"\n [filterBy]=\"'Code'\"\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=\"var(--vbn-color-text-muted)\"\n textColor=\"var(--vbn-color-on-primary)\"\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=\"var(--vbn-color-primary)\"\n textColor=\"var(--vbn-color-on-primary)\"\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+XG4gICAgPGxhYmVsIGZvcj1cImFzc2lnbm1lbnRcIj5Bc3NpZ25tZW50PC9sYWJlbD5cblxuICAgIDx2ZXJiZW4tZHJvcC1kb3duXG4gICAgICBbc2hvd0NsZWFyXT1cInRydWVcIlxuICAgICAgbGFiZWw9XCJBc3NpZ25tZW50XCJcbiAgICAgIHN0eWxlQ2xhc3M9XCJ3LWZ1bGxcIlxuICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgIFttdWx0aXNlbGVjdF09XCJmYWxzZVwiXG4gICAgICBwbGFjZWhvbGRlcj1cIlNlbGVjdFwiXG4gICAgICBbb3B0aW9uc109XCJhc3NpZ25tZW50VHlwZXNcIlxuICAgICAgaWQ9XCJhc3NpZ25tZW50XCJcbiAgICAgIGZvcm1Db250cm9sTmFtZT1cIkFzc2lnbm1lbnRUeXBlXCJcbiAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICA+XG4gICAgPC92ZXJiZW4tZHJvcC1kb3duPlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwic3BhY2UteS0xXCI+XG4gICAgPGxhYmVsIGZvcj1cIm9wZXJhdGlvblwiPk9wZXJhdGlvbjwvbGFiZWw+XG5cbiAgICA8dmVyYmVuLWRyb3AtZG93blxuICAgICAgW3Nob3dDbGVhcl09XCJ0cnVlXCJcbiAgICAgIGxhYmVsPVwiT3BlcmF0aW9uXCJcbiAgICAgIHN0eWxlQ2xhc3M9XCJ3LWZ1bGxcIlxuICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgIFttdWx0aXNlbGVjdF09XCJmYWxzZVwiXG4gICAgICBwbGFjZWhvbGRlcj1cIlNlbGVjdFwiXG4gICAgICBbb3B0aW9uc109XCJvcGVyYXRpb25zXCJcbiAgICAgIG9wdGlvbkxhYmVsPVwiQ29kZVwiXG4gICAgICBvcHRpb25WYWx1ZT1cIkNvZGVcIlxuICAgICAgaWQ9XCJvcGVyYXRpb25cIlxuICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiT3BlcmF0aW9uXCJcbiAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgIFtmaWx0ZXJdPVwidHJ1ZVwiXG4gICAgICBbZmlsdGVyQnldPVwiJ0NvZGUnXCJcbiAgICA+XG4gICAgPC92ZXJiZW4tZHJvcC1kb3duPlxuICA8L2Rpdj5cblxuICA8IS0tIDxkaXYgY2xhc3M9XCJzcGFjZS15LTFcIj5cbiAgICA8bGFiZWwgZm9yPVwib2JqZWN0XCI+T2JqZWN0PC9sYWJlbD5cblxuICAgIDx2ZXJiZW5hLWlucHV0XG4gICAgICBpZD1cIm9iamVjdFwiXG4gICAgICBmb3JtQ29udHJvbE5hbWU9XCJPcGVyYXRpb25cIlxuICAgICAgcGxhY2VIb2xkZXI9XCJFbnRlciBPYmplY3RcIlxuICAgIC8+XG4gIDwvZGl2PiAtLT5cblxuICA8ZGl2IGNsYXNzPVwic3BhY2UteS0xXCI+XG4gICAgPGxhYmVsIGZvcj1cInN0YXR1c1wiPlN0YXR1czwvbGFiZWw+XG5cbiAgICA8dmVyYmVuLWRyb3AtZG93blxuICAgICAgbGFiZWw9XCJTdGF0dXNcIlxuICAgICAgc3R5bGVDbGFzcz1cInctZnVsbFwiXG4gICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgW211bHRpc2VsZWN0XT1cImZhbHNlXCJcbiAgICAgIFtzaG93Q2xlYXJdPVwidHJ1ZVwiXG4gICAgICBwbGFjZWhvbGRlcj1cIk51bGxcIlxuICAgICAgWyhvcHRpb25zKV09XCJzdGF0dXNlc1wiXG4gICAgICBpZD1cInN0YXR1c1wiXG4gICAgICBmb3JtQ29udHJvbE5hbWU9XCJTdGF0dXNcIlxuICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgID5cbiAgICA8L3ZlcmJlbi1kcm9wLWRvd24+XG4gIDwvZGl2PlxuXG4gIDwhLS0gYnV0dG9ucyAtLT5cbiAgPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1iZXR3ZWVuIGdhcC00IG15LTJcIj5cbiAgICA8IS0tIDx2ZXJiZW5hLWJ1dHRvblxuICAgICAgd2lkdGg9XCIxMTRweFwiXG4gICAgICBoZWlnaHQ9XCIzOXB4XCJcbiAgICAgIHRleHQ9XCJEZWxldGVcIlxuICAgICAgYmdDb2xvcj1cIiM5OTk5OTlcIlxuICAgICAgdGV4dENvbG9yPVwiIzQwNDA0MFwiXG4gICAgICBib3JkZXJSYWRpdXM9XCIxMHB4XCJcbiAgICAgIFtkaXNhYmxlXT1cImRpc2FibGVQcm9jZXNzaW5nKClcIlxuICAgID48L3ZlcmJlbmEtYnV0dG9uPiAtLT5cbiAgICBAaWYgKGN1cnJlbnREYXRhPy5kYXRhPy5Db2RlKSB7XG4gICAgICA8YSBbcm91dGVyTGlua109XCJbZGVzaWduZXJVcmwoKSwgY3VycmVudERhdGE/LmRhdGEuQ29kZV1cIiBjbGFzcz1cIm1sLWF1dG9cIj5cbiAgICAgICAgPHZlcmJlbmEtYnV0dG9uIHRleHQ9XCJEZXNpZ25lclwiIHN0eWxlVHlwZT1cInlsdy1vdXRsaW5lXCI+PC92ZXJiZW5hLWJ1dHRvbj5cbiAgICAgIDwvYT5cbiAgICB9XG4gICAgPCEtLSA8YSBbcm91dGVyTGlua109XCJbJy9kZXNpZ25lcicsIGN1cnJlbnREYXRhPy5kYXRhLkNvZGVdXCIgY2xhc3M9XCJtbC1hdXRvXCI+XG4gICAgICA8dmVyYmVuYS1idXR0b25cbiAgICAgICAgKGNsaWNrKT1cInN3aXRjaFZpZXcuZW1pdCgpXCJcbiAgICAgICAgdGV4dD1cIkRlc2lnbmVyXCJcbiAgICAgICAgc3R5bGVUeXBlPVwieWx3LW91dGxpbmVcIlxuICAgICAgPjwvdmVyYmVuYS1idXR0b24+XG4gICAgPC9hPiAtLT5cbiAgICA8dmVyYmVuYS1idXR0b25cbiAgICAgIChjbGljayk9XCJzd2l0Y2hWaWV3LmVtaXQoKVwiXG4gICAgICB0ZXh0PVwiU3dpdGNoIFRvIFRhYmxlXCJcbiAgICAgIHN0eWxlVHlwZT1cInlsdy1vdXRsaW5lXCJcbiAgICAgIGNsYXNzPVwibWwtYXV0b1wiXG4gICAgPjwvdmVyYmVuYS1idXR0b24+XG4gICAgPHZlcmJlbmEtYnV0dG9uXG4gICAgICB0eXBlPVwic3VibWl0XCJcbiAgICAgIHRleHQ9XCJTYXZlXCJcbiAgICAgIGJnQ29sb3I9XCIjRkZFNjgxXCJcbiAgICAgIHRleHRDb2xvcj1cIiM0MDQwNDBcIlxuICAgICAgYm9yZGVyUmFkaXVzPVwiMTBweFwiXG4gICAgICBwZD1cIjEwcHggMjBweFwiXG4gICAgICB3aWR0aD1cIjExNHB4XCJcbiAgICAgIGhlaWdodD1cIjM5cHhcIlxuICAgICAgW2Rpc2FibGVdPVwiZGlzYWJsZVByb2Nlc3NpbmcoKVwiXG4gICAgPjwvdmVyYmVuYS1idXR0b24+XG4gIDwvZGl2PlxuPC9mb3JtPlxuIl19
91
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3ctZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4td29ya2Zsb3ctdWkvc3JjL2xpYi9jb21wb25lbnRzL3dvcmtmbG93cy93b3JrZmxvdy1mb3JtL3dvcmtmbG93LWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmVyYmVuLXdvcmtmbG93LXVpL3NyYy9saWIvY29tcG9uZW50cy93b3JrZmxvd3Mvd29ya2Zsb3ctZm9ybS93b3JrZmxvdy1mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlFLE9BQU8sRUFBMEIsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFcEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFHdkUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLG1DQUFtQyxDQUFDOzs7OztBQU8zRCxNQUFNLE9BQU8scUJBQXFCO0lBa0NaO0lBakNYLFVBQVUsR0FBd0IsRUFBRSxDQUFDO0lBQzlDLElBQ0ksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzQixDQUFDO0lBQ0QsSUFBSSxXQUFXLENBQUMsS0FBc0I7UUFDcEMsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7UUFDMUIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDekIsSUFBSSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUM7WUFDaEIsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7Z0JBQ25CLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFD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O3NCQUFsQixLQUFLO2dCQUVGLFdBQVc7c0JBRGQsS0FBSztnQkF1QkksVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxNQUFNO3NCQUFmLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgaW5wdXQsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDYXJkRGF0YSB9IGZyb20gJ3ZlcmJlbi1uZy11aSc7XG5pbXBvcnQgeyBUYXNrQXNzaWdubWVudFR5cGUgfSBmcm9tICd2ZXJiZW4td29ya2Zsb3ctdWkvc3JjL2xpYi9tb2RlbHMnO1xuaW1wb3J0IHsgV29ya2Zsb3cgfSBmcm9tICd2ZXJiZW4td29ya2Zsb3ctdWkvc3JjL2xpYi9tb2RlbHMnO1xuaW1wb3J0IHsgV29ya2Zsb3dPcGVyYXRpb24gfSBmcm9tICd2ZXJiZW4td29ya2Zsb3ctdWkvc3JjL2xpYi9tb2RlbHMnO1xuaW1wb3J0IHsgU3RhdHVzIH0gZnJvbSAndmVyYmVuLXdvcmtmbG93LXVpL3NyYy9saWIvbW9kZWxzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLXdvcmtmbG93LWZvcm0nLFxuICB0ZW1wbGF0ZVVybDogJy4vd29ya2Zsb3ctZm9ybS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi93b3JrZmxvdy1mb3JtLmNvbXBvbmVudC5jc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBXb3JrZmxvd0Zvcm1Db21wb25lbnQge1xuICBASW5wdXQoKSBvcGVyYXRpb25zOiBXb3JrZmxvd09wZXJhdGlvbltdID0gW107XG4gIEBJbnB1dCgpXG4gIGdldCBjdXJyZW50RGF0YSgpOiBDYXJkRGF0YSB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLl9jdXJyZW50RGF0YTtcbiAgfVxuICBzZXQgY3VycmVudERhdGEodmFsdWU6IENhcmREYXRhIHwgbnVsbCkge1xuICAgIHRoaXMuX2N1cnJlbnREYXRhID0gdmFsdWU7XG4gICAgY29uc29sZS5sb2codmFsdWU/LmRhdGEpO1xuICAgIGlmICh2YWx1ZT8uZGF0YSkge1xuICAgICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUoe1xuICAgICAgICBOYW1lOiB2YWx1ZS5kYXRhLk5hbWUgfHwgJycsXG4gICAgICAgIERlc2NyaXB0aW9uOiB2YWx1ZS5kYXRhLkRlc2NyaXB0aW9uIHx8ICcnLFxuICAgICAgICBBc3NpZ25tZW50VHlwZTogdmFsdWUuZGF0YS5Bc3NpZ25tZW50VHlwZSB8fCAnJyxcbiAgICAgICAgU2VydmljZTogdmFsdWUuZGF0YS5TZXJ2aWNlIHx8ICcnLFxuICAgICAgICBPcGVyYXRpb246IHZhbHVlLmRhdGEuT3BlcmF0aW9uIHx8ICcnLFxuICAgICAgICBTdGF0dXM6IHZhbHVlLmRhdGEuU3RhdHVzIHx8ICcnLFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZm9ybS5yZXNldCgpO1xuICAgIH1cbiAgfVxuICBwcml2YXRlIF9jdXJyZW50RGF0YTogQ2FyZERhdGEgfCBudWxsID0gbnVsbDtcbiAgZGVzaWduZXJVcmwgPSBpbnB1dDxzdHJpbmc+KCd3b3JrZmxvdycpO1xuXG4gIEBPdXRwdXQoKSBzd2l0Y2hWaWV3ID0gbmV3IEV2ZW50RW1pdHRlcjx1bmRlZmluZWQ+KCk7XG4gIEBPdXRwdXQoKSBvblNhdmUgPSBuZXcgRXZlbnRFbWl0dGVyPFBhcnRpYWw8V29ya2Zsb3c+PigpO1xuXG4gIGZvcm06IEZvcm1Hcm91cDtcbiAgYXNzaWdubWVudFR5cGVzID0gT2JqZWN0LnZhbHVlcyhUYXNrQXNzaWdubWVudFR5cGUpO1xuICBzdGF0dXNlcyA9IE9iamVjdC52YWx1ZXMoU3RhdHVzKTtcblxuICAvLyByb2xlczogV3JpdGFibGVTaWduYWw8Um9sZVtdPiA9IHNpZ25hbChbXSk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIpIHtcbiAgICB0aGlzLmZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgIE5hbWU6IFsnJywgeyB2YWxpZGF0b3JzOiBbVmFsaWRhdG9ycy5yZXF1aXJlZF0gfV0sXG4gICAgICBEZXNjcmlwdGlvbjogWycnLCB7IHZhbGlkYXRvcnM6IFtWYWxpZGF0b3JzLnJlcXVpcmVkXSB9XSxcbiAgICAgIEFzc2lnbm1lbnRUeXBlOiBbJycsIHsgdmFsaWRhdG9yczogW1ZhbGlkYXRvcnMucmVxdWlyZWRdIH1dLFxuICAgICAgU2VydmljZTogWycnXSxcbiAgICAgIE9wZXJhdGlvbjogWycnXSxcbiAgICAgIFN0YXR1czogWycnLCB7IHZhbGlkYXRvcnM6IFtWYWxpZGF0b3JzLnJlcXVpcmVkXSB9XSxcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIC8vIHRoaXMudXNlckFjY2Vzc1JlcXVlc3RGYWNhZGUuZ2V0Um9sZXMkKCkuc3Vic2NyaWJlKChkYXRhKSA9PiB7XG4gICAgLy8gICB0aGlzLnJvbGVzLnNldChkYXRhKTtcbiAgICAvLyB9KTtcbiAgICAvLyB0cnkge1xuICAgIC8vICAgdGhpcy51c2VyQWNjZXNzUmVxdWVzdEZhY2FkZS5sb2FkUm9sZXMoKTtcbiAgICAvLyB9IGNhdGNoIChlcnJvcikge1xuICAgIC8vICAgLy8gSGFuZGxlIGVycm9yXG4gICAgLy8gfVxuICAgIGNvbnNvbGUubG9nKHRoaXMuY3VycmVudERhdGE/LmRhdGEpO1xuICB9XG5cbiAgaGFuZGxlU3VibWl0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmZvcm0udmFsaWQpIHtcbiAgICAgIC8vIEVtaXQgc2F2ZSBldmVudCB3aXRoIGZvcm0gdmFsdWVcbiAgICAgIGNvbnNvbGUubG9nKCdGb3JtIHNhdmVkOicsIHRoaXMuZm9ybS52YWx1ZSk7XG4gICAgICB0aGlzLm9uU2F2ZS5lbWl0KHRoaXMuZm9ybS52YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgb25EZWxldGUoKTogdm9pZCB7XG4gICAgLy8gRW1pdCBkZWxldGUgZXZlbnRcbiAgICBjb25zb2xlLmxvZygnRGVsZXRlIHJlcXVlc3RlZCcpO1xuICB9XG5cbiAgZGlzYWJsZVByb2Nlc3NpbmcoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLmZvcm0udmFsaWQ7XG4gIH1cbn1cbiIsIjxmb3JtXG4gIFtmb3JtR3JvdXBdPVwiZm9ybVwiXG4gIGNsYXNzPVwiZmxleCBmbGV4LWNvbCBweC0zIHBiLTMgcm91bmRlZC14bCBoLWZ1bGwgdy1mdWxsIHJlbGF0aXZlIHNwYWNlLXktNFwiXG4gIChuZ1N1Ym1pdCk9XCJoYW5kbGVTdWJtaXQoKVwiXG4+XG4gIDx2ZXJiZW5hLWlucHV0XG4gICAgbmFtZT1cIk5hbWVcIlxuICAgIGxhYmVsPVwiTmFtZVwiXG4gICAgZm9ybUNvbnRyb2xOYW1lPVwiTmFtZVwiXG4gICAgcGxhY2VIb2xkZXI9XCJFbnRlciBOYW1lXCJcbiAgLz5cbiAgPHZlcmJlbmEtaW5wdXRcbiAgICBuYW1lPVwiRGVzY3JpcHRpb25cIlxuICAgIGxhYmVsPVwiRGVzY3JpcHRpb25cIlxuICAgIGZvcm1Db250cm9sTmFtZT1cIkRlc2NyaXB0aW9uXCJcbiAgICBwbGFjZUhvbGRlcj1cIkVudGVyIERlc2NyaXB0aW9uXCJcbiAgLz5cblxuICA8ZGl2IGNsYXNzPVwic3BhY2UteS0xXCI+XG4gICAgPGxhYmVsIGZvcj1cImFzc2lnbm1lbnRcIj5Bc3NpZ25tZW50PC9sYWJlbD5cblxuICAgIDx2ZXJiZW4tZHJvcC1kb3duXG4gICAgICBbc2hvd0NsZWFyXT1cInRydWVcIlxuICAgICAgbGFiZWw9XCJBc3NpZ25tZW50XCJcbiAgICAgIHN0eWxlQ2xhc3M9XCJ3LWZ1bGxcIlxuICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgIFttdWx0aXNlbGVjdF09XCJmYWxzZVwiXG4gICAgICBwbGFjZWhvbGRlcj1cIlNlbGVjdFwiXG4gICAgICBbb3B0aW9uc109XCJhc3NpZ25tZW50VHlwZXNcIlxuICAgICAgaWQ9XCJhc3NpZ25tZW50XCJcbiAgICAgIGZvcm1Db250cm9sTmFtZT1cIkFzc2lnbm1lbnRUeXBlXCJcbiAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICA+XG4gICAgPC92ZXJiZW4tZHJvcC1kb3duPlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwic3BhY2UteS0xXCI+XG4gICAgPGxhYmVsIGZvcj1cIm9wZXJhdGlvblwiPk9wZXJhdGlvbjwvbGFiZWw+XG5cbiAgICA8dmVyYmVuLWRyb3AtZG93blxuICAgICAgW3Nob3dDbGVhcl09XCJ0cnVlXCJcbiAgICAgIGxhYmVsPVwiT3BlcmF0aW9uXCJcbiAgICAgIHN0eWxlQ2xhc3M9XCJ3LWZ1bGxcIlxuICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgIFttdWx0aXNlbGVjdF09XCJmYWxzZVwiXG4gICAgICBwbGFjZWhvbGRlcj1cIlNlbGVjdFwiXG4gICAgICBbb3B0aW9uc109XCJvcGVyYXRpb25zXCJcbiAgICAgIG9wdGlvbkxhYmVsPVwiQ29kZVwiXG4gICAgICBvcHRpb25WYWx1ZT1cIkNvZGVcIlxuICAgICAgaWQ9XCJvcGVyYXRpb25cIlxuICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiT3BlcmF0aW9uXCJcbiAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgIFtmaWx0ZXJdPVwidHJ1ZVwiXG4gICAgICBbZmlsdGVyQnldPVwiJ0NvZGUnXCJcbiAgICA+XG4gICAgPC92ZXJiZW4tZHJvcC1kb3duPlxuICA8L2Rpdj5cblxuICA8IS0tIDxkaXYgY2xhc3M9XCJzcGFjZS15LTFcIj5cbiAgICA8bGFiZWwgZm9yPVwib2JqZWN0XCI+T2JqZWN0PC9sYWJlbD5cblxuICAgIDx2ZXJiZW5hLWlucHV0XG4gICAgICBpZD1cIm9iamVjdFwiXG4gICAgICBmb3JtQ29udHJvbE5hbWU9XCJPcGVyYXRpb25cIlxuICAgICAgcGxhY2VIb2xkZXI9XCJFbnRlciBPYmplY3RcIlxuICAgIC8+XG4gIDwvZGl2PiAtLT5cblxuICA8ZGl2IGNsYXNzPVwic3BhY2UteS0xXCI+XG4gICAgPGxhYmVsIGZvcj1cInN0YXR1c1wiPlN0YXR1czwvbGFiZWw+XG5cbiAgICA8dmVyYmVuLWRyb3AtZG93blxuICAgICAgbGFiZWw9XCJTdGF0dXNcIlxuICAgICAgc3R5bGVDbGFzcz1cInctZnVsbFwiXG4gICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgW211bHRpc2VsZWN0XT1cImZhbHNlXCJcbiAgICAgIFtzaG93Q2xlYXJdPVwidHJ1ZVwiXG4gICAgICBwbGFjZWhvbGRlcj1cIk51bGxcIlxuICAgICAgWyhvcHRpb25zKV09XCJzdGF0dXNlc1wiXG4gICAgICBpZD1cInN0YXR1c1wiXG4gICAgICBmb3JtQ29udHJvbE5hbWU9XCJTdGF0dXNcIlxuICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgID5cbiAgICA8L3ZlcmJlbi1kcm9wLWRvd24+XG4gIDwvZGl2PlxuXG4gIDwhLS0gYnV0dG9ucyAtLT5cbiAgPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1iZXR3ZWVuIGdhcC00IG15LTJcIj5cbiAgICA8IS0tIDx2ZXJiZW5hLWJ1dHRvblxuICAgICAgd2lkdGg9XCIxMTRweFwiXG4gICAgICBoZWlnaHQ9XCIzOXB4XCJcbiAgICAgIHRleHQ9XCJEZWxldGVcIlxuICAgICAgYmdDb2xvcj1cInZhcigtLXZibi1jb2xvci10ZXh0LW11dGVkKVwiXG4gICAgICB0ZXh0Q29sb3I9XCJ2YXIoLS12Ym4tY29sb3Itb24tcHJpbWFyeSlcIlxuICAgICAgYm9yZGVyUmFkaXVzPVwiMTBweFwiXG4gICAgICBbZGlzYWJsZV09XCJkaXNhYmxlUHJvY2Vzc2luZygpXCJcbiAgICA+PC92ZXJiZW5hLWJ1dHRvbj4gLS0+XG4gICAgQGlmIChjdXJyZW50RGF0YT8uZGF0YT8uQ29kZSkge1xuICAgICAgPGEgW3JvdXRlckxpbmtdPVwiW2Rlc2lnbmVyVXJsKCksIGN1cnJlbnREYXRhPy5kYXRhLkNvZGVdXCIgY2xhc3M9XCJtbC1hdXRvXCI+XG4gICAgICAgIDx2ZXJiZW5hLWJ1dHRvbiB0ZXh0PVwiRGVzaWduZXJcIiBzdHlsZVR5cGU9XCJ5bHctb3V0bGluZVwiPjwvdmVyYmVuYS1idXR0b24+XG4gICAgICA8L2E+XG4gICAgfVxuICAgIDwhLS0gPGEgW3JvdXRlckxpbmtdPVwiWycvZGVzaWduZXInLCBjdXJyZW50RGF0YT8uZGF0YS5Db2RlXVwiIGNsYXNzPVwibWwtYXV0b1wiPlxuICAgICAgPHZlcmJlbmEtYnV0dG9uXG4gICAgICAgIChjbGljayk9XCJzd2l0Y2hWaWV3LmVtaXQoKVwiXG4gICAgICAgIHRleHQ9XCJEZXNpZ25lclwiXG4gICAgICAgIHN0eWxlVHlwZT1cInlsdy1vdXRsaW5lXCJcbiAgICAgID48L3ZlcmJlbmEtYnV0dG9uPlxuICAgIDwvYT4gLS0+XG4gICAgPHZlcmJlbmEtYnV0dG9uXG4gICAgICAoY2xpY2spPVwic3dpdGNoVmlldy5lbWl0KClcIlxuICAgICAgdGV4dD1cIlN3aXRjaCBUbyBUYWJsZVwiXG4gICAgICBzdHlsZVR5cGU9XCJ5bHctb3V0bGluZVwiXG4gICAgICBjbGFzcz1cIm1sLWF1dG9cIlxuICAgID48L3ZlcmJlbmEtYnV0dG9uPlxuICAgIDx2ZXJiZW5hLWJ1dHRvblxuICAgICAgdHlwZT1cInN1Ym1pdFwiXG4gICAgICB0ZXh0PVwiU2F2ZVwiXG4gICAgICBiZ0NvbG9yPVwidmFyKC0tdmJuLWNvbG9yLXByaW1hcnkpXCJcbiAgICAgIHRleHRDb2xvcj1cInZhcigtLXZibi1jb2xvci1vbi1wcmltYXJ5KVwiXG4gICAgICBib3JkZXJSYWRpdXM9XCIxMHB4XCJcbiAgICAgIHBkPVwiMTBweCAyMHB4XCJcbiAgICAgIHdpZHRoPVwiMTE0cHhcIlxuICAgICAgaGVpZ2h0PVwiMzlweFwiXG4gICAgICBbZGlzYWJsZV09XCJkaXNhYmxlUHJvY2Vzc2luZygpXCJcbiAgICA+PC92ZXJiZW5hLWJ1dHRvbj5cbiAgPC9kaXY+XG48L2Zvcm0+XG4iXX0=
@@ -140,9 +140,8 @@ export class WorkflowsComponent extends BaseDataViewComponent {
140
140
  }
141
141
  onStateChange(event) {
142
142
  switch (event.key) {
143
- case 'create':
144
- const timestamp = new Date();
145
- var newForm = {
143
+ case 'create': {
144
+ const newForm = {
146
145
  Name: '',
147
146
  Description: '',
148
147
  StageEntryRule: '',
@@ -161,8 +160,18 @@ export class WorkflowsComponent extends BaseDataViewComponent {
161
160
  Stages: [],
162
161
  };
163
162
  this.data.update((prev) => [newForm, ...prev]);
164
- // console.log(newForm);
163
+ this.dataView.isTableView = false;
164
+ // CardDataViewComponent matches clicks against its cardDataList input,
165
+ // which only receives the new card after a change-detection pass. Force
166
+ // one so the freshly added card is resolvable before we open it.
167
+ this.cdr.detectChanges();
168
+ const card = this.cardData().find((c) => c.data === newForm);
169
+ if (card) {
170
+ this.currentData = this.cardDataView.onItemClick(card);
171
+ this.cdr.detectChanges();
172
+ }
165
173
  break;
174
+ }
166
175
  default:
167
176
  break;
168
177
  }
@@ -171,11 +180,11 @@ export class WorkflowsComponent extends BaseDataViewComponent {
171
180
  const data = await this.facade.loadData(range.skip, range.limit);
172
181
  return data ?? [];
173
182
  }
174
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: WorkflowsComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.WorkflowFacade }, { token: i2.FormBuilder }], target: i0.ɵɵFactoryTarget.Component });
175
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: WorkflowsComponent, selector: "lib-workflows", inputs: { designerUrl: { classPropertyName: "designerUrl", publicName: "designerUrl", isSignal: true, isRequired: false, transformFunction: null }, permissionConfig: { classPropertyName: "permissionConfig", publicName: "permissionConfig", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: "<div class=\"space-y-8\">\n <verben-data-view #vdv [viewState]=\"{\n isSearch: true,\n isColumn: true,\n isFilter: true,\n isSort: true,\n isExport: !!permissionConfig()?.Actions?.['Export'],\n isSelect: true,\n isCreate: !!permissionConfig()?.Actions?.['Create'],\n isToggle: true,\n }\" [buttonClass]=\"'my-custom-button-class'\" [iconClass]=\"'my-icon-class'\"\n [activeIconClass]=\"'my-active-icon-class'\" [selectedColumnCount]=\"selectedColumnCount\"\n [selectedSortCount]=\"selectedSortCount\" [selectedFilterTableCount]=\"selectedFilterTableCount\"\n (viewChange)=\"onViewChange($event)\" (stateChange)=\"onStateChange($event)\" (onSearchChange)=\"handleSearch($event)\">\n <div table-content>\n <lib-data-table [data]=\"data()\" [columns]=\"config.columns\" [styleConfig]=\"styles\"\n (selectionChange)=\"onSelectionChange($event)\">\n <ng-container libColumn=\"name\">\n <ng-template #cellEdit let-rowIndex=\"rowIndex\">\n <div class=\"width-max\">\n <verbena-input [formControl]=\"getFormControl(rowIndex, 'Name')\"></verbena-input>\n </div>\n </ng-template>\n </ng-container>\n\n <ng-container libColumn=\"description\">\n <ng-template #cellEdit let-rowIndex=\"rowIndex\">\n <div class=\"width-max\">\n <verbena-input [formControl]=\"getFormControl(rowIndex, 'Description')\"></verbena-input>\n </div>\n </ng-template>\n </ng-container>\n\n <ng-container libColumn=\"assignment-type\">\n <ng-template #cellEdit let-rowIndex=\"rowIndex\">\n <verben-drop-down styleClass=\"w-full\" width=\"100%\" [multiselect]=\"false\" placeholder=\"Select\"\n [options]=\"assignmentTypes\" [formControl]=\"getFormControl(rowIndex, 'AssignmentType')\"\n class=\"form-control\">\n </verben-drop-down>\n </ng-template>\n </ng-container>\n\n <ng-container libColumn=\"operation\">\n <ng-template #cellEdit let-rowIndex=\"rowIndex\">\n <!-- <verbena-input\n [formControl]=\"getFormControl(rowIndex, 'Operation')\"\n ></verbena-input> -->\n <verben-drop-down label=\"Operation\" styleClass=\"w-full\" width=\"100%\" [multiselect]=\"false\"\n placeholder=\"Select\" [options]=\"operations()\" optionLabel=\"Description\" optionValue=\"Description\"\n id=\"operation\" [formControl]=\"getFormControl(rowIndex, 'Operation')\" class=\"form-control\">\n </verben-drop-down>\n </ng-template>\n </ng-container>\n\n <ng-container libColumn=\"status\">\n <ng-template #cell let-value>\n <verbena-badge borderRadius=\"9px\" [bgColor]=\"value == 'Active' ? '#CAE1CC' : '#FFDFDF'\"\n [textColor]=\"value == 'Active' ? '#4ABB54' : '#EB5757'\" fontSize=\"12px\" [text]=\"value\"\n [pd]=\"'2px 6px'\"></verbena-badge>\n </ng-template>\n <ng-template #cellEdit let-rowIndex=\"rowIndex\">\n <verben-drop-down styleClass=\"w-full\" width=\"100%\" [multiselect]=\"false\" placeholder=\"Null\"\n [options]=\"statuses\" [formControl]=\"getFormControl(rowIndex, 'Status')\" class=\"form-control\">\n </verben-drop-down>\n </ng-template>\n </ng-container>\n\n <ng-container libColumn=\"actions\">\n <ng-template #cell let-value let-deleteRow=\"deleteRow\" let-isEditing=\"isEditing\"\n let-toggleRowEdit=\"toggleRowEdit\" let-row=\"row\" let-rowIndex=\"rowIndex\">\n <div class=\"flex gap-6\">\n <!-- @if (!!permissionConfig()?.Actions?.['Design']) { -->\n <verben-svg (click)=\"\n editForms.set(rowIndex, generateFormGroup(row));\n toggleRowEdit()\n \" icon=\"edit\" [width]=\"15\" [height]=\"15\" class=\"cursor-pointer\"></verben-svg>\n <!-- } -->\n\n <verben-svg icon=\"delete\" [width]=\"15\" [height]=\"15\" (click)=\"deleteRow()\"\n class=\"cursor-pointer\"></verben-svg>\n\n @if (!!permissionConfig()?.Actions?.['Design']) {\n <a [routerLink]=\"[designerUrl(), value]\">\n <verben-svg icon=\"designer\" [width]=\"15\" [height]=\"15\" class=\"cursor-pointer\"></verben-svg>\n </a>\n }\n </div>\n </ng-template>\n\n <ng-template #cellEdit let-value let-deleteRow=\"deleteRow\" let-isEditing=\"isEditing\"\n let-toggleRowEdit=\"toggleRowEdit\" let-row=\"row\" let-rowIndex=\"rowIndex\">\n <div class=\"flex gap-6\">\n <verben-svg (click)=\"commitRowChange(rowIndex, row, toggleRowEdit)\" icon=\"tick\" [width]=\"15\" [height]=\"15\"\n class=\"cursor-pointer\"></verben-svg>\n\n <verben-svg icon=\"delete\" [width]=\"15\" [height]=\"15\" (click)=\"toggleRowEdit()\"\n class=\"cursor-pointer\"></verben-svg>\n\n <verben-svg icon=\"cardViewAlt\" [width]=\"15\" [height]=\"15\" class=\"cursor-pointer\"\n (click)=\"goToCardView(value)\"></verben-svg>\n </div>\n </ng-template>\n </ng-container>\n </lib-data-table>\n </div>\n\n <div card-content>\n <verben-card-data-view borderRadius=\"12px\" (loadMoreClick)=\"loadMore()\" #vdcv dataId=\"Code\" border=\"5px\"\n [cardDataList]=\"cardData()\" rbgColor=\"#f5f6f9\" mg=\"20px\">\n <verben-left-card-data-view class=\"space-y-7\">\n <verben-left-card-data #vlcd [parent]=\"vdcv\" dataId=\"Code\"\n class=\"bg-secondary-100 rounded-xl border-primary border-[1px]\" [cardDataList]=\"cardData()\">\n <ng-template #card let-item>\n <div (click)=\"currentData = vdcv.onItemClick(item)\" class=\"flex\">\n <div (click)=\"currentData = vdcv.onItemClick(item)\"\n class=\"flex cursor-pointer w-full bg-secondary rounded-xl\">\n <div class=\"w-3 rounded-xl rounded-tr-none rounded-br-none\" [ngClass]=\"\n item.selected ? 'bg-primary' : 'bg-secondary-200'\n \"></div>\n <div class=\"flex-1 flex justify-between gap-y-2 gap-x-4 p-4\">\n <div class=\"flex-1 flex flex-col justify-between space-y-2\">\n <span class=\"font-semibold text-[#404040] flex-1 truncate line-clamp-1\">{{ item.title }}</span>\n\n <span id=\"role\" class=\"text-sm line-clamp-1 truncate\">\n {{\n item.data?.Operation\n }}\n </span>\n\n <!-- <p class=\"flex items-center my-1\">\n <label for=\"phone\" class=\"text-[10px] font-light\"\n >Assignment:</label\n >\n <span id=\"phone\" class=\"text-sm truncate\">{{\n item.data.AssignmentType\n }}</span>\n </p> -->\n </div>\n\n <div class=\"grid gap-y-1 w-fit justify-items-end\">\n <!-- <p class=\"grid\">\n <span id=\"role\" class=\"text-sm font-medium line-clamp-1 truncate\">{{\n item.data?.Operation\n }}</span>\n </p> -->\n <span id=\"phone\" class=\"text-sm\">\n {{ item.data.AssignmentType }}\n </span>\n\n <div class=\"flex gap-4 items-center\">\n @if (!!permissionConfig()?.Actions?.['Design'] && item.data?.Code) {\n <a [routerLink]=\"[designerUrl(), item.data.Code]\">\n <verben-svg icon=\"designer\" [width]=\"15\" [height]=\"15\" class=\"cursor-pointer\"\n (click)=\"$event.stopPropagation()\"></verben-svg>\n </a>\n }\n\n <verbena-badge borderRadius=\"9px\" [bgColor]=\"\n item.data.Status == 'Active' ? '#CAE1CC' : '#FFDFDF'\n \" [textColor]=\"\n item.data.Status == 'Active' ? '#4ABB54' : '#EB5757'\n \" fontSize=\"12px\" [text]=\"item.data.Status\" [pd]=\"'2px 6px'\"></verbena-badge>\n </div>\n </div>\n </div>\n </div>\n </div>\n </ng-template>\n </verben-left-card-data>\n </verben-left-card-data-view>\n\n <verben-right-card-data-view>\n <ng-template #parent>\n <lib-workflow-form [currentData]=\"currentData\" (switchView)=\"vdv.toggleView()\" (onSave)=\"onSave($event)\"\n [operations]=\"operations()\" [designerUrl]=\"designerUrl()\"></lib-workflow-form>\n </ng-template>\n </verben-right-card-data-view>\n\n <verben-card-data-view-footer class=\"w-full\">\n <div class=\"flex gap-2 items-center justify-end\">\n <!-- <verbena-button\n *ngIf=\"!vdcv.hasCurrentItem()\"\n [fontWeight]=\"'bold'\"\n [bgColor]=\"'#8E8D87'\"\n [borderRadius]=\"'4px'\"\n [textColor]=\"'#fff'\"\n [pd]=\"'9.79px 37.28px'\"\n [text]=\"'Delete'\"\n >\n </verbena-button> -->\n <div class=\"flex {{\n vdcv.hasCurrentItem() ? 'flex-1' : ''\n }} justify-end items-center gap-5\">\n <span class=\"paginator-text\">{{ cardData().length }} records loaded</span>\n <button (click)=\"loadMore()\" class=\"load-more view-links text-[#3479E9] underline\">\n Load more\n </button>\n </div>\n </div>\n </verben-card-data-view-footer>\n </verben-card-data-view>\n </div>\n\n <div column-content>\n <!-- <verben-visible-column\n (columnsUpdated)=\"onColumnsUpdated($event)\"\n [border]=\"'1px solid rgba(212, 160, 7, 1)'\"\n borderRadius=\"10px\"\n boxShadow=\"2px 2px 2px 0px silver\"\n bgColor=\"white\"\n width=\"400px\"\n textColor=\"black\"\n pd=\"1rem\"\n primaryColor=\"#FFE681\"\n secondaryColor=\"#3479E9\"\n [columns]=\"visibleColumns\"\n [displayedColumns]=\"5\"\n ></verben-visible-column> -->\n\n <lib-data-columns [columns]=\"config.columns\" (columnsUpdated)=\"onColumnsUpdated($event)\"></lib-data-columns>\n </div>\n <div filter-content>\n <verben-table-filter (filtersApplied)=\"onFilterSet($event)\" [border]=\"'1px solid rgba(212, 160, 7, 1)'\"\n borderRadius=\"10px\" boxShadow=\"2px 2px 2px 0px silver\" bgColor=\"white\" width=\"420px\" textColor=\"black\" pd=\"1rem\"\n primaryColor=\"#FFE681\" secondaryColor=\"#3479E9\" tertiaryColor=\"#404040\" [filterOptions]=\"filterArray\"\n [maxFilterLength]=\"3\"></verben-table-filter>\n </div>\n <div sort-content>\n <!-- <verben-sort-table\n (selectedOptions)=\"onSortUpdated($event)\"\n [border]=\"'1px solid rgba(212, 160, 7, 1)'\"\n borderRadius=\"10px\"\n boxShadow=\"2px 2px 2px 0px silver\"\n bgColor=\"white\"\n width=\"400px\"\n textColor=\"black\"\n pd=\"1rem\"\n primaryColor=\"#FFE681\"\n secondaryColor=\"#3479E9\"\n tertiaryColor=\"#404040\"\n [enableDragAndDrop]=\"true\"\n [sortOptions]=\"sortOptions\"\n ></verben-sort-table> -->\n <lib-data-sort [columns]=\"config.columns\" [data]=\"data()\" (sortApplied)=\"onSortUpdated($event)\"></lib-data-sort>\n </div>\n <div export-content>\n <lib-data-xport [columns]=\"config.columns\" [data]=\"data()\" [dataQueryFunction]=\"loadData\">\n </lib-data-xport>\n </div>\n </verben-data-view>\n\n <div *ngIf=\"vdv.isTableView\" class=\"flex gap-2 justify-end\">\n <!-- <div class=\"message-log-button-container flex justify-between\">\n <verbena-button\n [fontWeight]=\"'bold'\"\n [bgColor]=\"'#8E8D87'\"\n [borderRadius]=\"'4px'\"\n [textColor]=\"'#fff'\"\n [pd]=\"'9.79px 37.28px'\"\n [text]=\"'Delete'\"\n >\n </verbena-button>\n </div> -->\n <div class=\"flex justify-end items-center gap-5\">\n <span class=\"paginator-text\">{{ cardData().length }} records loaded</span>\n <button (click)=\"loadMore()\" class=\"load-more view-links text-[#3479E9] underline\">\n Load more\n </button>\n </div>\n </div>\n</div>\n", styles: [".view-links{color:#3479e9;cursor:pointer}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.DataTableComponent, selector: "lib-data-table", inputs: ["data", "columns", "dataKey", "formGroupConfig", "groupBy", "useVirtualScroll", "virtualScrollItemSize", "styleConfig"], outputs: ["rowEdit", "rowSave", "rowRevert", "rowDelete", "selectionChange"] }, { kind: "directive", type: i4.ColumnDirective, selector: "[libColumn]", inputs: ["libColumn"] }, { kind: "component", type: i4.SvgComponent, selector: "verben-svg", inputs: ["icon", "width", "height", "fill", "stroke", "type", "size"] }, { kind: "component", type: i4.DataViewComponent, selector: "verben-data-view", inputs: ["buttonClass", "iconClass", "activeIconClass", "columnCustomClass", "filterCustomClass", "sortCustomClass", "extendCustomClass", "exportCustomClass", "selectCustomClass", "importCustomClass", "zIndex", "createCustomClass", "tableIcon", "cardIcon", "cardClass", "tableClass", "searchKey", "searchValue", "viewState", "searchTemplate", "importTemplate", "columnTemplate", "extendTemplate", "filterTemplate", "sortTemplate", "children", "exportTemplate", "createTemplate", "selectedColumnCount", "selectedSortCount", "selectedFilterTableCount", "inputWidth", "milliseconds", "showColumnChild", "showSortChild", "showFilterChild", "showImportChild", "showExportChild", "showExtendChild", "create", "showSelected", "isTableView"], outputs: ["viewChange", "stateChange", "onSearchChange"] }, { kind: "component", type: i4.CardDataViewComponent, selector: "verben-card-data-view", inputs: ["pd", "mg", "lHeight", "rHeight", "rWidth", "lWidth", "textColor", "lbgColor", "rbgColor", "border", "display", "borderRadius", "activeCss", "inActiveCss", "displayAsRow", "cardDataList", "dataId", "totalRecords", "footer", "noOfVisibleChildren", "showEditIcon", "onItemClick", "onCardChildClick"], outputs: ["editClicked", "loadMoreClick"] }, { kind: "component", type: i4.LeftCardDataComponent, selector: "verben-left-card-data", inputs: ["pd", "mg", "height", "weight", "activeCss", "inActiveCss", "cardDataList", "iconCollapse", "iconExpanded", "parent", "dataId"] }, { kind: "component", type: i4.LeftCardDataViewComponent, selector: "verben-left-card-data-view", inputs: ["cardDataList"] }, { kind: "component", type: i4.RightCardDataViewComponent, selector: "verben-right-card-data-view", inputs: ["parentData", "chilData", "meth"] }, { kind: "component", type: i4.CardDataViewFooterComponent, selector: "verben-card-data-view-footer" }, { kind: "component", type: i4.TableFilterComponent, selector: "verben-table-filter", inputs: ["filterOptions", "pd", "mg", "height", "width", "bgColor", "boxShadow", "textColor", "primaryColor", "secondaryColor", "tertiaryColor", "border", "borderRadius", "selectWidth", "maxFilterLength", "tooltip"], outputs: ["filtersApplied", "resetSortData"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { 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.VerbenaBadgeComponent, selector: "verbena-badge", inputs: ["text", "bgColor", "textColor", "borderRadius", "pd", "fontSize", "width", "height"] }, { 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: i4.DataColumnsComponent, selector: "lib-data-columns", inputs: ["columns", "enableDragAndDrop", "maxVisibleItems"], outputs: ["columnsUpdated"] }, { kind: "component", type: i4.DataXportComponent, selector: "lib-data-xport", inputs: ["data", "columns", "useImportKey", "dataFetchUrl", "dataQueryParameters", "dataQueryFunction"], outputs: ["exportDataEvent", "exportDataRangeEvent"] }, { kind: "component", type: i4.DataSortComponent, selector: "lib-data-sort", inputs: ["columns", "data", "enableDragAndDrop"], outputs: ["sortApplied", "resetFilter"] }, { kind: "directive", type: i5.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i6.WorkflowFormComponent, selector: "lib-workflow-form", inputs: ["operations", "currentData", "designerUrl"], outputs: ["switchView", "onSave"] }] });
183
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: WorkflowsComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.WorkflowFacade }, { token: i2.FormBuilder }], target: i0.ɵɵFactoryTarget.Component });
184
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: WorkflowsComponent, selector: "lib-workflows", inputs: { designerUrl: { classPropertyName: "designerUrl", publicName: "designerUrl", isSignal: true, isRequired: false, transformFunction: null }, permissionConfig: { classPropertyName: "permissionConfig", publicName: "permissionConfig", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: "<div class=\"space-y-8\">\n <verben-data-view #vdv [viewState]=\"{\n isSearch: true,\n isColumn: true,\n isFilter: true,\n isSort: true,\n isExport: !!permissionConfig()?.Actions?.['Export'],\n isSelect: true,\n isCreate: !!permissionConfig()?.Actions?.['Create'],\n isToggle: true,\n }\" [buttonClass]=\"'my-custom-button-class'\" [iconClass]=\"'my-icon-class'\"\n [activeIconClass]=\"'my-active-icon-class'\" [selectedColumnCount]=\"selectedColumnCount\"\n [selectedSortCount]=\"selectedSortCount\" [selectedFilterTableCount]=\"selectedFilterTableCount\"\n (viewChange)=\"onViewChange($event)\" (stateChange)=\"onStateChange($event)\" (onSearchChange)=\"handleSearch($event)\">\n <div table-content>\n <lib-data-table [data]=\"data()\" [columns]=\"config.columns\" [styleConfig]=\"styles\"\n (selectionChange)=\"onSelectionChange($event)\">\n <ng-container libColumn=\"name\">\n <ng-template #cellEdit let-rowIndex=\"rowIndex\">\n <div class=\"width-max\">\n <verbena-input [formControl]=\"getFormControl(rowIndex, 'Name')\"></verbena-input>\n </div>\n </ng-template>\n </ng-container>\n\n <ng-container libColumn=\"description\">\n <ng-template #cellEdit let-rowIndex=\"rowIndex\">\n <div class=\"width-max\">\n <verbena-input [formControl]=\"getFormControl(rowIndex, 'Description')\"></verbena-input>\n </div>\n </ng-template>\n </ng-container>\n\n <ng-container libColumn=\"assignment-type\">\n <ng-template #cellEdit let-rowIndex=\"rowIndex\">\n <verben-drop-down styleClass=\"w-full\" width=\"100%\" [multiselect]=\"false\" placeholder=\"Select\"\n [options]=\"assignmentTypes\" [formControl]=\"getFormControl(rowIndex, 'AssignmentType')\"\n class=\"form-control\">\n </verben-drop-down>\n </ng-template>\n </ng-container>\n\n <ng-container libColumn=\"operation\">\n <ng-template #cellEdit let-rowIndex=\"rowIndex\">\n <!-- <verbena-input\n [formControl]=\"getFormControl(rowIndex, 'Operation')\"\n ></verbena-input> -->\n <verben-drop-down label=\"Operation\" styleClass=\"w-full\" width=\"100%\" [multiselect]=\"false\"\n placeholder=\"Select\" [options]=\"operations()\" optionLabel=\"Description\" optionValue=\"Description\"\n id=\"operation\" [formControl]=\"getFormControl(rowIndex, 'Operation')\" class=\"form-control\">\n </verben-drop-down>\n </ng-template>\n </ng-container>\n\n <ng-container libColumn=\"status\">\n <ng-template #cell let-value>\n <verbena-badge borderRadius=\"9px\" [bgColor]=\"value == 'Active' ? 'var(--vbn-color-success-bg)' : '#FFDFDF'\"\n [textColor]=\"value == 'Active' ? 'var(--vbn-color-success)' : 'var(--vbn-color-error)'\" fontSize=\"12px\" [text]=\"value\"\n [pd]=\"'2px 6px'\"></verbena-badge>\n </ng-template>\n <ng-template #cellEdit let-rowIndex=\"rowIndex\">\n <verben-drop-down styleClass=\"w-full\" width=\"100%\" [multiselect]=\"false\" placeholder=\"Null\"\n [options]=\"statuses\" [formControl]=\"getFormControl(rowIndex, 'Status')\" class=\"form-control\">\n </verben-drop-down>\n </ng-template>\n </ng-container>\n\n <ng-container libColumn=\"actions\">\n <ng-template #cell let-value let-deleteRow=\"deleteRow\" let-isEditing=\"isEditing\"\n let-toggleRowEdit=\"toggleRowEdit\" let-row=\"row\" let-rowIndex=\"rowIndex\">\n <div class=\"flex gap-6\">\n <!-- @if (!!permissionConfig()?.Actions?.['Design']) { -->\n <verben-svg (click)=\"\n editForms.set(rowIndex, generateFormGroup(row));\n toggleRowEdit()\n \" icon=\"edit\" [width]=\"15\" [height]=\"15\" class=\"cursor-pointer\"></verben-svg>\n <!-- } -->\n\n <verben-svg icon=\"delete\" [width]=\"15\" [height]=\"15\" (click)=\"deleteRow()\"\n class=\"cursor-pointer\"></verben-svg>\n\n @if (!!permissionConfig()?.Actions?.['Design']) {\n <a [routerLink]=\"[designerUrl(), value]\">\n <verben-svg icon=\"designer\" [width]=\"15\" [height]=\"15\" class=\"cursor-pointer\"></verben-svg>\n </a>\n }\n </div>\n </ng-template>\n\n <ng-template #cellEdit let-value let-deleteRow=\"deleteRow\" let-isEditing=\"isEditing\"\n let-toggleRowEdit=\"toggleRowEdit\" let-row=\"row\" let-rowIndex=\"rowIndex\">\n <div class=\"flex gap-6\">\n <verben-svg (click)=\"commitRowChange(rowIndex, row, toggleRowEdit)\" icon=\"tick\" [width]=\"15\" [height]=\"15\"\n class=\"cursor-pointer\"></verben-svg>\n\n <verben-svg icon=\"delete\" [width]=\"15\" [height]=\"15\" (click)=\"toggleRowEdit()\"\n class=\"cursor-pointer\"></verben-svg>\n\n <verben-svg icon=\"cardViewAlt\" [width]=\"15\" [height]=\"15\" class=\"cursor-pointer\"\n (click)=\"goToCardView(value)\"></verben-svg>\n </div>\n </ng-template>\n </ng-container>\n </lib-data-table>\n </div>\n\n <div card-content>\n <verben-card-data-view borderRadius=\"12px\" (loadMoreClick)=\"loadMore()\" #vdcv dataId=\"Code\" border=\"5px\"\n [cardDataList]=\"cardData()\" rbgColor=\"var(--vbn-color-surface-alt)\" mg=\"20px\">\n <verben-left-card-data-view class=\"space-y-7\">\n <verben-left-card-data #vlcd [parent]=\"vdcv\" dataId=\"Code\"\n class=\"bg-secondary-100 rounded-xl border-primary border-[1px]\" [cardDataList]=\"cardData()\">\n <ng-template #card let-item>\n <div (click)=\"currentData = vdcv.onItemClick(item)\" class=\"flex\">\n <div (click)=\"currentData = vdcv.onItemClick(item)\"\n class=\"flex cursor-pointer w-full bg-secondary rounded-xl\">\n <div class=\"w-3 rounded-xl rounded-tr-none rounded-br-none\" [ngClass]=\"\n item.selected ? 'bg-primary' : 'bg-secondary-200'\n \"></div>\n <div class=\"flex-1 flex justify-between gap-y-2 gap-x-4 p-4\">\n <div class=\"flex-1 flex flex-col justify-between space-y-2\">\n <span class=\"font-semibold text-[var(--vbn-color-on-primary)] flex-1 truncate line-clamp-1\">{{ item.title }}</span>\n\n <span id=\"role\" class=\"text-sm line-clamp-1 truncate\">\n {{\n item.data?.Operation\n }}\n </span>\n\n <!-- <p class=\"flex items-center my-1\">\n <label for=\"phone\" class=\"text-[10px] font-light\"\n >Assignment:</label\n >\n <span id=\"phone\" class=\"text-sm truncate\">{{\n item.data.AssignmentType\n }}</span>\n </p> -->\n </div>\n\n <div class=\"grid gap-y-1 w-fit justify-items-end\">\n <!-- <p class=\"grid\">\n <span id=\"role\" class=\"text-sm font-medium line-clamp-1 truncate\">{{\n item.data?.Operation\n }}</span>\n </p> -->\n <span id=\"phone\" class=\"text-sm\">\n {{ item.data.AssignmentType }}\n </span>\n\n <div class=\"flex gap-4 items-center\">\n @if (!!permissionConfig()?.Actions?.['Design'] && item.data?.Code) {\n <a [routerLink]=\"[designerUrl(), item.data.Code]\">\n <verben-svg icon=\"designer\" [width]=\"15\" [height]=\"15\" class=\"cursor-pointer\"\n (click)=\"$event.stopPropagation()\"></verben-svg>\n </a>\n }\n\n <verbena-badge borderRadius=\"9px\" [bgColor]=\"\n item.data.Status == 'Active' ? 'var(--vbn-color-success-bg)' : '#FFDFDF'\n \" [textColor]=\"\n item.data.Status == 'Active' ? 'var(--vbn-color-success)' : 'var(--vbn-color-error)'\n \" fontSize=\"12px\" [text]=\"item.data.Status\" [pd]=\"'2px 6px'\"></verbena-badge>\n </div>\n </div>\n </div>\n </div>\n </div>\n </ng-template>\n </verben-left-card-data>\n </verben-left-card-data-view>\n\n <verben-right-card-data-view>\n <ng-template #parent>\n <lib-workflow-form [currentData]=\"currentData\" (switchView)=\"vdv.toggleView()\" (onSave)=\"onSave($event)\"\n [operations]=\"operations()\" [designerUrl]=\"designerUrl()\"></lib-workflow-form>\n </ng-template>\n </verben-right-card-data-view>\n\n <verben-card-data-view-footer class=\"w-full\">\n <div class=\"flex gap-2 items-center justify-end\">\n <!-- <verbena-button\n *ngIf=\"!vdcv.hasCurrentItem()\"\n [fontWeight]=\"'bold'\"\n [bgColor]=\"'var(--vbn-color-text-muted)'\"\n [borderRadius]=\"'4px'\"\n [textColor]=\"'var(--vbn-color-surface)'\"\n [pd]=\"'9.79px 37.28px'\"\n [text]=\"'Delete'\"\n >\n </verbena-button> -->\n <div class=\"flex {{\n vdcv.hasCurrentItem() ? 'flex-1' : ''\n }} justify-end items-center gap-5\">\n <span class=\"paginator-text\">{{ cardData().length }} records loaded</span>\n <button (click)=\"loadMore()\" class=\"load-more view-links text-[var(--vbn-color-border-focus)] underline\">\n Load more\n </button>\n </div>\n </div>\n </verben-card-data-view-footer>\n </verben-card-data-view>\n </div>\n\n <div column-content>\n <!-- <verben-visible-column\n (columnsUpdated)=\"onColumnsUpdated($event)\"\n [border]=\"'1px solid var(--vbn-color-primary)'\"\n borderRadius=\"10px\"\n boxShadow=\"2px 2px 2px 0px silver\"\n bgColor=\"white\"\n width=\"400px\"\n textColor=\"black\"\n pd=\"1rem\"\n primaryColor=\"var(--vbn-color-primary)\"\n secondaryColor=\"var(--vbn-color-border-focus)\"\n [columns]=\"visibleColumns\"\n [displayedColumns]=\"5\"\n ></verben-visible-column> -->\n\n <lib-data-columns [columns]=\"config.columns\" (columnsUpdated)=\"onColumnsUpdated($event)\"></lib-data-columns>\n </div>\n <div filter-content>\n <verben-table-filter (filtersApplied)=\"onFilterSet($event)\" [border]=\"'1px solid var(--vbn-color-primary)'\"\n borderRadius=\"10px\" boxShadow=\"2px 2px 2px 0px silver\" bgColor=\"white\" width=\"420px\" textColor=\"black\" pd=\"1rem\"\n primaryColor=\"var(--vbn-color-primary)\" secondaryColor=\"var(--vbn-color-border-focus)\" tertiaryColor=\"var(--vbn-color-on-primary)\" [filterOptions]=\"filterArray\"\n [maxFilterLength]=\"3\"></verben-table-filter>\n </div>\n <div sort-content>\n <!-- <verben-sort-table\n (selectedOptions)=\"onSortUpdated($event)\"\n [border]=\"'1px solid var(--vbn-color-primary)'\"\n borderRadius=\"10px\"\n boxShadow=\"2px 2px 2px 0px silver\"\n bgColor=\"white\"\n width=\"400px\"\n textColor=\"black\"\n pd=\"1rem\"\n primaryColor=\"var(--vbn-color-primary)\"\n secondaryColor=\"var(--vbn-color-border-focus)\"\n tertiaryColor=\"var(--vbn-color-on-primary)\"\n [enableDragAndDrop]=\"true\"\n [sortOptions]=\"sortOptions\"\n ></verben-sort-table> -->\n <lib-data-sort [columns]=\"config.columns\" [data]=\"data()\" (sortApplied)=\"onSortUpdated($event)\"></lib-data-sort>\n </div>\n <div export-content>\n <lib-data-xport [columns]=\"config.columns\" [data]=\"data()\" [dataQueryFunction]=\"loadData\">\n </lib-data-xport>\n </div>\n </verben-data-view>\n\n <div *ngIf=\"vdv.isTableView\" class=\"flex gap-2 justify-end\">\n <!-- <div class=\"message-log-button-container flex justify-between\">\n <verbena-button\n [fontWeight]=\"'bold'\"\n [bgColor]=\"'var(--vbn-color-text-muted)'\"\n [borderRadius]=\"'4px'\"\n [textColor]=\"'var(--vbn-color-surface)'\"\n [pd]=\"'9.79px 37.28px'\"\n [text]=\"'Delete'\"\n >\n </verbena-button>\n </div> -->\n <div class=\"flex justify-end items-center gap-5\">\n <span class=\"paginator-text\">{{ cardData().length }} records loaded</span>\n <button (click)=\"loadMore()\" class=\"load-more view-links text-[var(--vbn-color-border-focus)] underline\">\n Load more\n </button>\n </div>\n </div>\n</div>\n", styles: [".view-links{color:var(--vbn-color-border-focus);cursor:pointer}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.DataTableComponent, selector: "lib-data-table", inputs: ["data", "columns", "dataKey", "formGroupConfig", "groupBy", "useVirtualScroll", "virtualScrollItemSize", "styleConfig"], outputs: ["rowEdit", "rowSave", "rowRevert", "rowDelete", "selectionChange"] }, { kind: "directive", type: i4.ColumnDirective, selector: "[libColumn]", inputs: ["libColumn"] }, { kind: "component", type: i4.SvgComponent, selector: "verben-svg", inputs: ["icon", "width", "height", "fill", "stroke", "type", "size"] }, { kind: "component", type: i4.DataViewComponent, selector: "verben-data-view", inputs: ["buttonClass", "iconClass", "activeIconClass", "columnCustomClass", "filterCustomClass", "sortCustomClass", "extendCustomClass", "exportCustomClass", "selectCustomClass", "importCustomClass", "zIndex", "createCustomClass", "tableIcon", "cardIcon", "cardClass", "tableClass", "searchKey", "searchValue", "viewState", "searchTemplate", "importTemplate", "columnTemplate", "extendTemplate", "filterTemplate", "sortTemplate", "children", "exportTemplate", "createTemplate", "selectedColumnCount", "selectedSortCount", "selectedFilterTableCount", "inputWidth", "milliseconds", "showColumnChild", "showSortChild", "showFilterChild", "showImportChild", "showExportChild", "showExtendChild", "create", "showSelected", "isTableView"], outputs: ["viewChange", "stateChange", "onSearchChange"] }, { kind: "component", type: i4.CardDataViewComponent, selector: "verben-card-data-view", inputs: ["pd", "mg", "lHeight", "rHeight", "rWidth", "lWidth", "textColor", "lbgColor", "rbgColor", "border", "display", "borderRadius", "activeCss", "inActiveCss", "displayAsRow", "cardDataList", "dataId", "totalRecords", "footer", "noOfVisibleChildren", "showEditIcon", "useVirtualScroll", "virtualScrollItemSize", "onItemClick", "onCardChildClick"], outputs: ["editClicked", "loadMoreClick"] }, { kind: "component", type: i4.LeftCardDataComponent, selector: "verben-left-card-data", inputs: ["pd", "mg", "height", "weight", "activeCss", "inActiveCss", "cardDataList", "iconCollapse", "iconExpanded", "parent", "useVirtualScroll", "virtualScrollItemSize", "dataId"] }, { kind: "component", type: i4.LeftCardDataViewComponent, selector: "verben-left-card-data-view", inputs: ["cardDataList"] }, { kind: "component", type: i4.RightCardDataViewComponent, selector: "verben-right-card-data-view", inputs: ["parentData", "chilData", "meth"] }, { kind: "component", type: i4.CardDataViewFooterComponent, selector: "verben-card-data-view-footer" }, { kind: "component", type: i4.TableFilterComponent, selector: "verben-table-filter", inputs: ["filterOptions", "pd", "mg", "height", "width", "bgColor", "boxShadow", "textColor", "primaryColor", "secondaryColor", "tertiaryColor", "border", "borderRadius", "selectWidth", "maxFilterLength", "tooltip"], outputs: ["filtersApplied", "resetSortData"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i4.VerbenaInputComponent, selector: "verbena-input", inputs: ["disabled", "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.VerbenaBadgeComponent, selector: "verbena-badge", inputs: ["text", "bgColor", "textColor", "borderRadius", "pd", "fontSize", "width", "height"] }, { kind: "component", type: i4.DropDownComponent, selector: "verben-drop-down", inputs: ["options", "width", "overlayWidth", "showHorizontalLine", "horizontalLineColor", "optionLabel", "optionSubLabel", "optionValue", "placeholder", "invalidMessage", "errorPosition", "loadMoreCaption", "display", "showClear", "lazyLoad", "selectKey", "styleClass", "group", "multiselect", "filter", "avoidDuplication", "filterBy", "debounceTime", "minChar", "refPageSize", "disabled", "required", "load", "asyncLabel", "search"], outputs: ["optionsChange", "onChange", "onClick", "onClear"] }, { kind: "component", type: i4.DataColumnsComponent, selector: "lib-data-columns", inputs: ["columns", "enableDragAndDrop", "maxVisibleItems"], outputs: ["columnsUpdated"] }, { kind: "component", type: i4.DataXportComponent, selector: "lib-data-xport", inputs: ["data", "columns", "useImportKey", "includeFooterInExport", "dataFetchUrl", "dataQueryParameters", "dataQueryFunction"], outputs: ["exportDataEvent", "exportDataRangeEvent"] }, { kind: "component", type: i4.DataSortComponent, selector: "lib-data-sort", inputs: ["columns", "data", "enableDragAndDrop"], outputs: ["sortApplied", "resetFilter"] }, { kind: "directive", type: i5.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i6.WorkflowFormComponent, selector: "lib-workflow-form", inputs: ["operations", "currentData", "designerUrl"], outputs: ["switchView", "onSave"] }] });
176
185
  }
177
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: WorkflowsComponent, decorators: [{
186
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: WorkflowsComponent, decorators: [{
178
187
  type: Component,
179
- args: [{ selector: 'lib-workflows', template: "<div class=\"space-y-8\">\n <verben-data-view #vdv [viewState]=\"{\n isSearch: true,\n isColumn: true,\n isFilter: true,\n isSort: true,\n isExport: !!permissionConfig()?.Actions?.['Export'],\n isSelect: true,\n isCreate: !!permissionConfig()?.Actions?.['Create'],\n isToggle: true,\n }\" [buttonClass]=\"'my-custom-button-class'\" [iconClass]=\"'my-icon-class'\"\n [activeIconClass]=\"'my-active-icon-class'\" [selectedColumnCount]=\"selectedColumnCount\"\n [selectedSortCount]=\"selectedSortCount\" [selectedFilterTableCount]=\"selectedFilterTableCount\"\n (viewChange)=\"onViewChange($event)\" (stateChange)=\"onStateChange($event)\" (onSearchChange)=\"handleSearch($event)\">\n <div table-content>\n <lib-data-table [data]=\"data()\" [columns]=\"config.columns\" [styleConfig]=\"styles\"\n (selectionChange)=\"onSelectionChange($event)\">\n <ng-container libColumn=\"name\">\n <ng-template #cellEdit let-rowIndex=\"rowIndex\">\n <div class=\"width-max\">\n <verbena-input [formControl]=\"getFormControl(rowIndex, 'Name')\"></verbena-input>\n </div>\n </ng-template>\n </ng-container>\n\n <ng-container libColumn=\"description\">\n <ng-template #cellEdit let-rowIndex=\"rowIndex\">\n <div class=\"width-max\">\n <verbena-input [formControl]=\"getFormControl(rowIndex, 'Description')\"></verbena-input>\n </div>\n </ng-template>\n </ng-container>\n\n <ng-container libColumn=\"assignment-type\">\n <ng-template #cellEdit let-rowIndex=\"rowIndex\">\n <verben-drop-down styleClass=\"w-full\" width=\"100%\" [multiselect]=\"false\" placeholder=\"Select\"\n [options]=\"assignmentTypes\" [formControl]=\"getFormControl(rowIndex, 'AssignmentType')\"\n class=\"form-control\">\n </verben-drop-down>\n </ng-template>\n </ng-container>\n\n <ng-container libColumn=\"operation\">\n <ng-template #cellEdit let-rowIndex=\"rowIndex\">\n <!-- <verbena-input\n [formControl]=\"getFormControl(rowIndex, 'Operation')\"\n ></verbena-input> -->\n <verben-drop-down label=\"Operation\" styleClass=\"w-full\" width=\"100%\" [multiselect]=\"false\"\n placeholder=\"Select\" [options]=\"operations()\" optionLabel=\"Description\" optionValue=\"Description\"\n id=\"operation\" [formControl]=\"getFormControl(rowIndex, 'Operation')\" class=\"form-control\">\n </verben-drop-down>\n </ng-template>\n </ng-container>\n\n <ng-container libColumn=\"status\">\n <ng-template #cell let-value>\n <verbena-badge borderRadius=\"9px\" [bgColor]=\"value == 'Active' ? '#CAE1CC' : '#FFDFDF'\"\n [textColor]=\"value == 'Active' ? '#4ABB54' : '#EB5757'\" fontSize=\"12px\" [text]=\"value\"\n [pd]=\"'2px 6px'\"></verbena-badge>\n </ng-template>\n <ng-template #cellEdit let-rowIndex=\"rowIndex\">\n <verben-drop-down styleClass=\"w-full\" width=\"100%\" [multiselect]=\"false\" placeholder=\"Null\"\n [options]=\"statuses\" [formControl]=\"getFormControl(rowIndex, 'Status')\" class=\"form-control\">\n </verben-drop-down>\n </ng-template>\n </ng-container>\n\n <ng-container libColumn=\"actions\">\n <ng-template #cell let-value let-deleteRow=\"deleteRow\" let-isEditing=\"isEditing\"\n let-toggleRowEdit=\"toggleRowEdit\" let-row=\"row\" let-rowIndex=\"rowIndex\">\n <div class=\"flex gap-6\">\n <!-- @if (!!permissionConfig()?.Actions?.['Design']) { -->\n <verben-svg (click)=\"\n editForms.set(rowIndex, generateFormGroup(row));\n toggleRowEdit()\n \" icon=\"edit\" [width]=\"15\" [height]=\"15\" class=\"cursor-pointer\"></verben-svg>\n <!-- } -->\n\n <verben-svg icon=\"delete\" [width]=\"15\" [height]=\"15\" (click)=\"deleteRow()\"\n class=\"cursor-pointer\"></verben-svg>\n\n @if (!!permissionConfig()?.Actions?.['Design']) {\n <a [routerLink]=\"[designerUrl(), value]\">\n <verben-svg icon=\"designer\" [width]=\"15\" [height]=\"15\" class=\"cursor-pointer\"></verben-svg>\n </a>\n }\n </div>\n </ng-template>\n\n <ng-template #cellEdit let-value let-deleteRow=\"deleteRow\" let-isEditing=\"isEditing\"\n let-toggleRowEdit=\"toggleRowEdit\" let-row=\"row\" let-rowIndex=\"rowIndex\">\n <div class=\"flex gap-6\">\n <verben-svg (click)=\"commitRowChange(rowIndex, row, toggleRowEdit)\" icon=\"tick\" [width]=\"15\" [height]=\"15\"\n class=\"cursor-pointer\"></verben-svg>\n\n <verben-svg icon=\"delete\" [width]=\"15\" [height]=\"15\" (click)=\"toggleRowEdit()\"\n class=\"cursor-pointer\"></verben-svg>\n\n <verben-svg icon=\"cardViewAlt\" [width]=\"15\" [height]=\"15\" class=\"cursor-pointer\"\n (click)=\"goToCardView(value)\"></verben-svg>\n </div>\n </ng-template>\n </ng-container>\n </lib-data-table>\n </div>\n\n <div card-content>\n <verben-card-data-view borderRadius=\"12px\" (loadMoreClick)=\"loadMore()\" #vdcv dataId=\"Code\" border=\"5px\"\n [cardDataList]=\"cardData()\" rbgColor=\"#f5f6f9\" mg=\"20px\">\n <verben-left-card-data-view class=\"space-y-7\">\n <verben-left-card-data #vlcd [parent]=\"vdcv\" dataId=\"Code\"\n class=\"bg-secondary-100 rounded-xl border-primary border-[1px]\" [cardDataList]=\"cardData()\">\n <ng-template #card let-item>\n <div (click)=\"currentData = vdcv.onItemClick(item)\" class=\"flex\">\n <div (click)=\"currentData = vdcv.onItemClick(item)\"\n class=\"flex cursor-pointer w-full bg-secondary rounded-xl\">\n <div class=\"w-3 rounded-xl rounded-tr-none rounded-br-none\" [ngClass]=\"\n item.selected ? 'bg-primary' : 'bg-secondary-200'\n \"></div>\n <div class=\"flex-1 flex justify-between gap-y-2 gap-x-4 p-4\">\n <div class=\"flex-1 flex flex-col justify-between space-y-2\">\n <span class=\"font-semibold text-[#404040] flex-1 truncate line-clamp-1\">{{ item.title }}</span>\n\n <span id=\"role\" class=\"text-sm line-clamp-1 truncate\">\n {{\n item.data?.Operation\n }}\n </span>\n\n <!-- <p class=\"flex items-center my-1\">\n <label for=\"phone\" class=\"text-[10px] font-light\"\n >Assignment:</label\n >\n <span id=\"phone\" class=\"text-sm truncate\">{{\n item.data.AssignmentType\n }}</span>\n </p> -->\n </div>\n\n <div class=\"grid gap-y-1 w-fit justify-items-end\">\n <!-- <p class=\"grid\">\n <span id=\"role\" class=\"text-sm font-medium line-clamp-1 truncate\">{{\n item.data?.Operation\n }}</span>\n </p> -->\n <span id=\"phone\" class=\"text-sm\">\n {{ item.data.AssignmentType }}\n </span>\n\n <div class=\"flex gap-4 items-center\">\n @if (!!permissionConfig()?.Actions?.['Design'] && item.data?.Code) {\n <a [routerLink]=\"[designerUrl(), item.data.Code]\">\n <verben-svg icon=\"designer\" [width]=\"15\" [height]=\"15\" class=\"cursor-pointer\"\n (click)=\"$event.stopPropagation()\"></verben-svg>\n </a>\n }\n\n <verbena-badge borderRadius=\"9px\" [bgColor]=\"\n item.data.Status == 'Active' ? '#CAE1CC' : '#FFDFDF'\n \" [textColor]=\"\n item.data.Status == 'Active' ? '#4ABB54' : '#EB5757'\n \" fontSize=\"12px\" [text]=\"item.data.Status\" [pd]=\"'2px 6px'\"></verbena-badge>\n </div>\n </div>\n </div>\n </div>\n </div>\n </ng-template>\n </verben-left-card-data>\n </verben-left-card-data-view>\n\n <verben-right-card-data-view>\n <ng-template #parent>\n <lib-workflow-form [currentData]=\"currentData\" (switchView)=\"vdv.toggleView()\" (onSave)=\"onSave($event)\"\n [operations]=\"operations()\" [designerUrl]=\"designerUrl()\"></lib-workflow-form>\n </ng-template>\n </verben-right-card-data-view>\n\n <verben-card-data-view-footer class=\"w-full\">\n <div class=\"flex gap-2 items-center justify-end\">\n <!-- <verbena-button\n *ngIf=\"!vdcv.hasCurrentItem()\"\n [fontWeight]=\"'bold'\"\n [bgColor]=\"'#8E8D87'\"\n [borderRadius]=\"'4px'\"\n [textColor]=\"'#fff'\"\n [pd]=\"'9.79px 37.28px'\"\n [text]=\"'Delete'\"\n >\n </verbena-button> -->\n <div class=\"flex {{\n vdcv.hasCurrentItem() ? 'flex-1' : ''\n }} justify-end items-center gap-5\">\n <span class=\"paginator-text\">{{ cardData().length }} records loaded</span>\n <button (click)=\"loadMore()\" class=\"load-more view-links text-[#3479E9] underline\">\n Load more\n </button>\n </div>\n </div>\n </verben-card-data-view-footer>\n </verben-card-data-view>\n </div>\n\n <div column-content>\n <!-- <verben-visible-column\n (columnsUpdated)=\"onColumnsUpdated($event)\"\n [border]=\"'1px solid rgba(212, 160, 7, 1)'\"\n borderRadius=\"10px\"\n boxShadow=\"2px 2px 2px 0px silver\"\n bgColor=\"white\"\n width=\"400px\"\n textColor=\"black\"\n pd=\"1rem\"\n primaryColor=\"#FFE681\"\n secondaryColor=\"#3479E9\"\n [columns]=\"visibleColumns\"\n [displayedColumns]=\"5\"\n ></verben-visible-column> -->\n\n <lib-data-columns [columns]=\"config.columns\" (columnsUpdated)=\"onColumnsUpdated($event)\"></lib-data-columns>\n </div>\n <div filter-content>\n <verben-table-filter (filtersApplied)=\"onFilterSet($event)\" [border]=\"'1px solid rgba(212, 160, 7, 1)'\"\n borderRadius=\"10px\" boxShadow=\"2px 2px 2px 0px silver\" bgColor=\"white\" width=\"420px\" textColor=\"black\" pd=\"1rem\"\n primaryColor=\"#FFE681\" secondaryColor=\"#3479E9\" tertiaryColor=\"#404040\" [filterOptions]=\"filterArray\"\n [maxFilterLength]=\"3\"></verben-table-filter>\n </div>\n <div sort-content>\n <!-- <verben-sort-table\n (selectedOptions)=\"onSortUpdated($event)\"\n [border]=\"'1px solid rgba(212, 160, 7, 1)'\"\n borderRadius=\"10px\"\n boxShadow=\"2px 2px 2px 0px silver\"\n bgColor=\"white\"\n width=\"400px\"\n textColor=\"black\"\n pd=\"1rem\"\n primaryColor=\"#FFE681\"\n secondaryColor=\"#3479E9\"\n tertiaryColor=\"#404040\"\n [enableDragAndDrop]=\"true\"\n [sortOptions]=\"sortOptions\"\n ></verben-sort-table> -->\n <lib-data-sort [columns]=\"config.columns\" [data]=\"data()\" (sortApplied)=\"onSortUpdated($event)\"></lib-data-sort>\n </div>\n <div export-content>\n <lib-data-xport [columns]=\"config.columns\" [data]=\"data()\" [dataQueryFunction]=\"loadData\">\n </lib-data-xport>\n </div>\n </verben-data-view>\n\n <div *ngIf=\"vdv.isTableView\" class=\"flex gap-2 justify-end\">\n <!-- <div class=\"message-log-button-container flex justify-between\">\n <verbena-button\n [fontWeight]=\"'bold'\"\n [bgColor]=\"'#8E8D87'\"\n [borderRadius]=\"'4px'\"\n [textColor]=\"'#fff'\"\n [pd]=\"'9.79px 37.28px'\"\n [text]=\"'Delete'\"\n >\n </verbena-button>\n </div> -->\n <div class=\"flex justify-end items-center gap-5\">\n <span class=\"paginator-text\">{{ cardData().length }} records loaded</span>\n <button (click)=\"loadMore()\" class=\"load-more view-links text-[#3479E9] underline\">\n Load more\n </button>\n </div>\n </div>\n</div>\n", styles: [".view-links{color:#3479e9;cursor:pointer}\n"] }]
188
+ args: [{ selector: 'lib-workflows', template: "<div class=\"space-y-8\">\n <verben-data-view #vdv [viewState]=\"{\n isSearch: true,\n isColumn: true,\n isFilter: true,\n isSort: true,\n isExport: !!permissionConfig()?.Actions?.['Export'],\n isSelect: true,\n isCreate: !!permissionConfig()?.Actions?.['Create'],\n isToggle: true,\n }\" [buttonClass]=\"'my-custom-button-class'\" [iconClass]=\"'my-icon-class'\"\n [activeIconClass]=\"'my-active-icon-class'\" [selectedColumnCount]=\"selectedColumnCount\"\n [selectedSortCount]=\"selectedSortCount\" [selectedFilterTableCount]=\"selectedFilterTableCount\"\n (viewChange)=\"onViewChange($event)\" (stateChange)=\"onStateChange($event)\" (onSearchChange)=\"handleSearch($event)\">\n <div table-content>\n <lib-data-table [data]=\"data()\" [columns]=\"config.columns\" [styleConfig]=\"styles\"\n (selectionChange)=\"onSelectionChange($event)\">\n <ng-container libColumn=\"name\">\n <ng-template #cellEdit let-rowIndex=\"rowIndex\">\n <div class=\"width-max\">\n <verbena-input [formControl]=\"getFormControl(rowIndex, 'Name')\"></verbena-input>\n </div>\n </ng-template>\n </ng-container>\n\n <ng-container libColumn=\"description\">\n <ng-template #cellEdit let-rowIndex=\"rowIndex\">\n <div class=\"width-max\">\n <verbena-input [formControl]=\"getFormControl(rowIndex, 'Description')\"></verbena-input>\n </div>\n </ng-template>\n </ng-container>\n\n <ng-container libColumn=\"assignment-type\">\n <ng-template #cellEdit let-rowIndex=\"rowIndex\">\n <verben-drop-down styleClass=\"w-full\" width=\"100%\" [multiselect]=\"false\" placeholder=\"Select\"\n [options]=\"assignmentTypes\" [formControl]=\"getFormControl(rowIndex, 'AssignmentType')\"\n class=\"form-control\">\n </verben-drop-down>\n </ng-template>\n </ng-container>\n\n <ng-container libColumn=\"operation\">\n <ng-template #cellEdit let-rowIndex=\"rowIndex\">\n <!-- <verbena-input\n [formControl]=\"getFormControl(rowIndex, 'Operation')\"\n ></verbena-input> -->\n <verben-drop-down label=\"Operation\" styleClass=\"w-full\" width=\"100%\" [multiselect]=\"false\"\n placeholder=\"Select\" [options]=\"operations()\" optionLabel=\"Description\" optionValue=\"Description\"\n id=\"operation\" [formControl]=\"getFormControl(rowIndex, 'Operation')\" class=\"form-control\">\n </verben-drop-down>\n </ng-template>\n </ng-container>\n\n <ng-container libColumn=\"status\">\n <ng-template #cell let-value>\n <verbena-badge borderRadius=\"9px\" [bgColor]=\"value == 'Active' ? 'var(--vbn-color-success-bg)' : '#FFDFDF'\"\n [textColor]=\"value == 'Active' ? 'var(--vbn-color-success)' : 'var(--vbn-color-error)'\" fontSize=\"12px\" [text]=\"value\"\n [pd]=\"'2px 6px'\"></verbena-badge>\n </ng-template>\n <ng-template #cellEdit let-rowIndex=\"rowIndex\">\n <verben-drop-down styleClass=\"w-full\" width=\"100%\" [multiselect]=\"false\" placeholder=\"Null\"\n [options]=\"statuses\" [formControl]=\"getFormControl(rowIndex, 'Status')\" class=\"form-control\">\n </verben-drop-down>\n </ng-template>\n </ng-container>\n\n <ng-container libColumn=\"actions\">\n <ng-template #cell let-value let-deleteRow=\"deleteRow\" let-isEditing=\"isEditing\"\n let-toggleRowEdit=\"toggleRowEdit\" let-row=\"row\" let-rowIndex=\"rowIndex\">\n <div class=\"flex gap-6\">\n <!-- @if (!!permissionConfig()?.Actions?.['Design']) { -->\n <verben-svg (click)=\"\n editForms.set(rowIndex, generateFormGroup(row));\n toggleRowEdit()\n \" icon=\"edit\" [width]=\"15\" [height]=\"15\" class=\"cursor-pointer\"></verben-svg>\n <!-- } -->\n\n <verben-svg icon=\"delete\" [width]=\"15\" [height]=\"15\" (click)=\"deleteRow()\"\n class=\"cursor-pointer\"></verben-svg>\n\n @if (!!permissionConfig()?.Actions?.['Design']) {\n <a [routerLink]=\"[designerUrl(), value]\">\n <verben-svg icon=\"designer\" [width]=\"15\" [height]=\"15\" class=\"cursor-pointer\"></verben-svg>\n </a>\n }\n </div>\n </ng-template>\n\n <ng-template #cellEdit let-value let-deleteRow=\"deleteRow\" let-isEditing=\"isEditing\"\n let-toggleRowEdit=\"toggleRowEdit\" let-row=\"row\" let-rowIndex=\"rowIndex\">\n <div class=\"flex gap-6\">\n <verben-svg (click)=\"commitRowChange(rowIndex, row, toggleRowEdit)\" icon=\"tick\" [width]=\"15\" [height]=\"15\"\n class=\"cursor-pointer\"></verben-svg>\n\n <verben-svg icon=\"delete\" [width]=\"15\" [height]=\"15\" (click)=\"toggleRowEdit()\"\n class=\"cursor-pointer\"></verben-svg>\n\n <verben-svg icon=\"cardViewAlt\" [width]=\"15\" [height]=\"15\" class=\"cursor-pointer\"\n (click)=\"goToCardView(value)\"></verben-svg>\n </div>\n </ng-template>\n </ng-container>\n </lib-data-table>\n </div>\n\n <div card-content>\n <verben-card-data-view borderRadius=\"12px\" (loadMoreClick)=\"loadMore()\" #vdcv dataId=\"Code\" border=\"5px\"\n [cardDataList]=\"cardData()\" rbgColor=\"var(--vbn-color-surface-alt)\" mg=\"20px\">\n <verben-left-card-data-view class=\"space-y-7\">\n <verben-left-card-data #vlcd [parent]=\"vdcv\" dataId=\"Code\"\n class=\"bg-secondary-100 rounded-xl border-primary border-[1px]\" [cardDataList]=\"cardData()\">\n <ng-template #card let-item>\n <div (click)=\"currentData = vdcv.onItemClick(item)\" class=\"flex\">\n <div (click)=\"currentData = vdcv.onItemClick(item)\"\n class=\"flex cursor-pointer w-full bg-secondary rounded-xl\">\n <div class=\"w-3 rounded-xl rounded-tr-none rounded-br-none\" [ngClass]=\"\n item.selected ? 'bg-primary' : 'bg-secondary-200'\n \"></div>\n <div class=\"flex-1 flex justify-between gap-y-2 gap-x-4 p-4\">\n <div class=\"flex-1 flex flex-col justify-between space-y-2\">\n <span class=\"font-semibold text-[var(--vbn-color-on-primary)] flex-1 truncate line-clamp-1\">{{ item.title }}</span>\n\n <span id=\"role\" class=\"text-sm line-clamp-1 truncate\">\n {{\n item.data?.Operation\n }}\n </span>\n\n <!-- <p class=\"flex items-center my-1\">\n <label for=\"phone\" class=\"text-[10px] font-light\"\n >Assignment:</label\n >\n <span id=\"phone\" class=\"text-sm truncate\">{{\n item.data.AssignmentType\n }}</span>\n </p> -->\n </div>\n\n <div class=\"grid gap-y-1 w-fit justify-items-end\">\n <!-- <p class=\"grid\">\n <span id=\"role\" class=\"text-sm font-medium line-clamp-1 truncate\">{{\n item.data?.Operation\n }}</span>\n </p> -->\n <span id=\"phone\" class=\"text-sm\">\n {{ item.data.AssignmentType }}\n </span>\n\n <div class=\"flex gap-4 items-center\">\n @if (!!permissionConfig()?.Actions?.['Design'] && item.data?.Code) {\n <a [routerLink]=\"[designerUrl(), item.data.Code]\">\n <verben-svg icon=\"designer\" [width]=\"15\" [height]=\"15\" class=\"cursor-pointer\"\n (click)=\"$event.stopPropagation()\"></verben-svg>\n </a>\n }\n\n <verbena-badge borderRadius=\"9px\" [bgColor]=\"\n item.data.Status == 'Active' ? 'var(--vbn-color-success-bg)' : '#FFDFDF'\n \" [textColor]=\"\n item.data.Status == 'Active' ? 'var(--vbn-color-success)' : 'var(--vbn-color-error)'\n \" fontSize=\"12px\" [text]=\"item.data.Status\" [pd]=\"'2px 6px'\"></verbena-badge>\n </div>\n </div>\n </div>\n </div>\n </div>\n </ng-template>\n </verben-left-card-data>\n </verben-left-card-data-view>\n\n <verben-right-card-data-view>\n <ng-template #parent>\n <lib-workflow-form [currentData]=\"currentData\" (switchView)=\"vdv.toggleView()\" (onSave)=\"onSave($event)\"\n [operations]=\"operations()\" [designerUrl]=\"designerUrl()\"></lib-workflow-form>\n </ng-template>\n </verben-right-card-data-view>\n\n <verben-card-data-view-footer class=\"w-full\">\n <div class=\"flex gap-2 items-center justify-end\">\n <!-- <verbena-button\n *ngIf=\"!vdcv.hasCurrentItem()\"\n [fontWeight]=\"'bold'\"\n [bgColor]=\"'var(--vbn-color-text-muted)'\"\n [borderRadius]=\"'4px'\"\n [textColor]=\"'var(--vbn-color-surface)'\"\n [pd]=\"'9.79px 37.28px'\"\n [text]=\"'Delete'\"\n >\n </verbena-button> -->\n <div class=\"flex {{\n vdcv.hasCurrentItem() ? 'flex-1' : ''\n }} justify-end items-center gap-5\">\n <span class=\"paginator-text\">{{ cardData().length }} records loaded</span>\n <button (click)=\"loadMore()\" class=\"load-more view-links text-[var(--vbn-color-border-focus)] underline\">\n Load more\n </button>\n </div>\n </div>\n </verben-card-data-view-footer>\n </verben-card-data-view>\n </div>\n\n <div column-content>\n <!-- <verben-visible-column\n (columnsUpdated)=\"onColumnsUpdated($event)\"\n [border]=\"'1px solid var(--vbn-color-primary)'\"\n borderRadius=\"10px\"\n boxShadow=\"2px 2px 2px 0px silver\"\n bgColor=\"white\"\n width=\"400px\"\n textColor=\"black\"\n pd=\"1rem\"\n primaryColor=\"var(--vbn-color-primary)\"\n secondaryColor=\"var(--vbn-color-border-focus)\"\n [columns]=\"visibleColumns\"\n [displayedColumns]=\"5\"\n ></verben-visible-column> -->\n\n <lib-data-columns [columns]=\"config.columns\" (columnsUpdated)=\"onColumnsUpdated($event)\"></lib-data-columns>\n </div>\n <div filter-content>\n <verben-table-filter (filtersApplied)=\"onFilterSet($event)\" [border]=\"'1px solid var(--vbn-color-primary)'\"\n borderRadius=\"10px\" boxShadow=\"2px 2px 2px 0px silver\" bgColor=\"white\" width=\"420px\" textColor=\"black\" pd=\"1rem\"\n primaryColor=\"var(--vbn-color-primary)\" secondaryColor=\"var(--vbn-color-border-focus)\" tertiaryColor=\"var(--vbn-color-on-primary)\" [filterOptions]=\"filterArray\"\n [maxFilterLength]=\"3\"></verben-table-filter>\n </div>\n <div sort-content>\n <!-- <verben-sort-table\n (selectedOptions)=\"onSortUpdated($event)\"\n [border]=\"'1px solid var(--vbn-color-primary)'\"\n borderRadius=\"10px\"\n boxShadow=\"2px 2px 2px 0px silver\"\n bgColor=\"white\"\n width=\"400px\"\n textColor=\"black\"\n pd=\"1rem\"\n primaryColor=\"var(--vbn-color-primary)\"\n secondaryColor=\"var(--vbn-color-border-focus)\"\n tertiaryColor=\"var(--vbn-color-on-primary)\"\n [enableDragAndDrop]=\"true\"\n [sortOptions]=\"sortOptions\"\n ></verben-sort-table> -->\n <lib-data-sort [columns]=\"config.columns\" [data]=\"data()\" (sortApplied)=\"onSortUpdated($event)\"></lib-data-sort>\n </div>\n <div export-content>\n <lib-data-xport [columns]=\"config.columns\" [data]=\"data()\" [dataQueryFunction]=\"loadData\">\n </lib-data-xport>\n </div>\n </verben-data-view>\n\n <div *ngIf=\"vdv.isTableView\" class=\"flex gap-2 justify-end\">\n <!-- <div class=\"message-log-button-container flex justify-between\">\n <verbena-button\n [fontWeight]=\"'bold'\"\n [bgColor]=\"'var(--vbn-color-text-muted)'\"\n [borderRadius]=\"'4px'\"\n [textColor]=\"'var(--vbn-color-surface)'\"\n [pd]=\"'9.79px 37.28px'\"\n [text]=\"'Delete'\"\n >\n </verbena-button>\n </div> -->\n <div class=\"flex justify-end items-center gap-5\">\n <span class=\"paginator-text\">{{ cardData().length }} records loaded</span>\n <button (click)=\"loadMore()\" class=\"load-more view-links text-[var(--vbn-color-border-focus)] underline\">\n Load more\n </button>\n </div>\n </div>\n</div>\n", styles: [".view-links{color:var(--vbn-color-border-focus);cursor:pointer}\n"] }]
180
189
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.WorkflowFacade }, { type: i2.FormBuilder }] });
181
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3dzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZlcmJlbi13b3JrZmxvdy11aS9zcmMvbGliL2NvbXBvbmVudHMvd29ya2Zsb3dzL3dvcmtmbG93cy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4td29ya2Zsb3ctdWkvc3JjL2xpYi9jb21wb25lbnRzL3dvcmtmbG93cy93b3JrZmxvd3MuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxLQUFLLEVBQ0wsTUFBTSxHQUVQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFFTCxXQUFXLEVBRVgsVUFBVSxHQUNYLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxFQUFFLFdBQVcsRUFBb0IsTUFBTSxFQUFFLGtCQUFrQixFQUErQixNQUFNLG1DQUFtQyxDQUFDO0FBQzNJLE9BQU8sRUFBRSxxQkFBcUIsRUFBa0IsTUFBTSxtQ0FBbUMsQ0FBQztBQUMxRixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7Ozs7O0FBUTlDLE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxxQkFBK0I7SUE2QjNEO0lBQ0E7SUFDQTtJQTlCVixXQUFXLEdBQUcsS0FBSyxDQUFTLFVBQVUsQ0FBQyxDQUFDO0lBQ3hDLGdCQUFnQixHQUFHLEtBQUssQ0FBMEIsSUFBSSxDQUFDLENBQUM7SUFFeEQsTUFBTSxHQUE2QjtRQUNqQyxVQUFVLEVBQUUsRUFBRTtRQUNkLE9BQU8sRUFBRSxPQUFPO1FBQ2hCLGNBQWMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztZQUN6QixRQUFRLEVBQUUsS0FBSztZQUNmLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSTtZQUNoQixJQUFJLEVBQUUsSUFBSTtZQUNWLElB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LElBQUksSUFBSSxFQUFFLENBQUM7SUFDcEIsQ0FBQzt3R0FqTFUsa0JBQWtCOzRGQUFsQixrQkFBa0IsMlhDeEIvQix3clpBK1FBOzs0RkR2UGEsa0JBQWtCO2tCQUw5QixTQUFTOytCQUNFLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBpbnB1dCxcbiAgc2lnbmFsLFxuICBXcml0YWJsZVNpZ25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBGb3JtQnVpbGRlcixcbiAgRm9ybUNvbnRyb2wsXG4gIEZvcm1Hcm91cCxcbiAgVmFsaWRhdG9ycyxcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQ2FyZERhdGEsIElEYXRhRmlsdGVyIH0gZnJvbSAndmVyYmVuLW5nLXVpJztcbmltcG9ydCB7IE9iamVjdFN0YXRlLCBQZXJtaXNzaW9uQ29uZmlnLCBTdGF0dXMsIFRhc2tBc3NpZ25tZW50VHlwZSwgV29ya2Zsb3csIFdvcmtmbG93T3BlcmF0aW9uIH0gZnJvbSAndmVyYmVuLXdvcmtmbG93LXVpL3NyYy9saWIvbW9kZWxzJztcbmltcG9ydCB7IEJhc2VEYXRhVmlld0NvbXBvbmVudCwgRGF0YVZpZXdDb25maWcgfSBmcm9tICd2ZXJiZW4td29ya2Zsb3ctdWkvc3JjL2xpYi9zaGFyZWQnO1xuaW1wb3J0IHsgY29sdW1ucyB9IGZyb20gJy4vd29ya2Zsb3dzLmNvbHVtbnMnO1xuaW1wb3J0IHsgV29ya2Zsb3dGYWNhZGUgfSBmcm9tICcuL3dvcmtmbG93cy5mYWNhZGUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItd29ya2Zsb3dzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3dvcmtmbG93cy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi93b3JrZmxvd3MuY29tcG9uZW50LmNzcycsXG59KVxuZXhwb3J0IGNsYXNzIFdvcmtmbG93c0NvbXBvbmVudCBleHRlbmRzIEJhc2VEYXRhVmlld0NvbXBvbmVudDxXb3JrZmxvdz4ge1xuICBkZXNpZ25lclVybCA9IGlucHV0PHN0cmluZz4oJ3dvcmtmbG93Jyk7XG4gIHBlcm1pc3Npb25Db25maWcgPSBpbnB1dDxQZXJtaXNzaW9uQ29uZmlnIHwgbnVsbD4obnVsbCk7XG5cbiAgY29uZmlnOiBEYXRhVmlld0NvbmZpZzxXb3JrZmxvdz4gPSB7XG4gICAgZGF0YVNvdXJjZTogW10sXG4gICAgY29sdW1uczogY29sdW1ucyxcbiAgICBjYXJkRGF0YU1hcHBlcjogKHRhc2spID0+ICh7XG4gICAgICBzZWxlY3RlZDogZmFsc2UsXG4gICAgICB0aXRsZTogdGFzay5OYW1lLFxuICAgICAgZGF0YTogdGFzayxcbiAgICAgIGJvZHk6IFtcbiAgICAgICAgeyB0aXRsZTogJ05hbWUnLCB2YWx1ZTogdGFzay5OYW1lIH0sXG4gICAgICAgIHsgdGl0bGU6ICdTdGF0dXMnLCB2YWx1ZTogdGFzay5TdGF0dXMgfSxcbiAgICAgICAgeyB0aXRsZTogJ0Fzc2lnbm1lbnRUeXBlJywgdmFsdWU6IHRhc2suQXNzaWdubWVudFR5cGUgfSxcbiAgICAgIF0sXG4gICAgICBjaGlsZHJlbjogW10sXG4gICAgfSksXG4gICAgb25EZXRhaWxWaWV3OiAodGFzaykgPT4ge1xuICAgICAgLy8gQ3VzdG9tIGRldGFpbCB2aWV3IGxvZ2ljXG4gICAgfSxcbiAgfTtcblxuICBlZGl0Rm9ybXM6IE1hcDxudW1iZXIsIEZvcm1Hcm91cD4gPSBuZXcgTWFwKCk7XG4gIGFzc2lnbm1lbnRUeXBlcyA9IE9iamVjdC52YWx1ZXMoVGFza0Fzc2lnbm1lbnRUeXBlKTtcbiAgc3RhdHVzZXMgPSBPYmplY3QudmFsdWVzKFN0YXR1cyk7XG4gIG9wZXJhdGlvbnM6IFdyaXRhYmxlU2lnbmFsPFdvcmtmbG93T3BlcmF0aW9uW10+ID0gc2lnbmFsKFtdKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSBmYWNhZGU6IFdvcmtmbG93RmFjYWRlLFxuICAgIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyXG4gICkge1xuICAgIHN1cGVyKCk7XG5cbiAgICB0aGlzLmxvYWREYXRhID0gdGhpcy5sb2FkRGF0YS5iaW5kKHRoaXMpO1xuXG4gICAgdGhpcy5mYWNhZGUuZ2V0UmVxdWVzdHMkKCkuc3Vic2NyaWJlKChkYXRhKSA9PiB7XG4gICAgICB0aGlzLmRhdGEuc2V0KGRhdGEpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5mYWNhZGUuZ2V0T3BlcmF0aW9ucyQoKS5zdWJzY3JpYmUoKGRhdGEpID0+IHtcbiAgICAgIHRoaXMub3BlcmF0aW9ucy5zZXQoZGF0YSk7XG4gICAgfSk7XG4gIH1cblxuICBnZW5lcmF0ZUZvcm1Hcm91cChkYXRhPzogUGFydGlhbDxXb3JrZmxvdz4pIHtcbiAgICBjb25zb2xlLmxvZyhkYXRhKTtcbiAgICBjb25zdCBmb3JtID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICAvLyBOYW1lOiBbZGF0YT8uTmFtZSA/PyAnJywgeyB2YWxpZGF0b3JzOiBbVmFsaWRhdG9ycy5yZXF1aXJlZF0gfV0sXG4gICAgICBOYW1lOiBuZXcgRm9ybUNvbnRyb2woZGF0YT8uTmFtZSA/PyAnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSxcbiAgICAgIERlc2NyaXB0aW9uOiBuZXcgRm9ybUNvbnRyb2woZGF0YT8uRGVzY3JpcHRpb24gPz8gJycsIFtcbiAgICAgICAgVmFsaWRhdG9ycy5yZXF1aXJlZCxcbiAgICAgIF0pLFxuICAgICAgQXNzaWdubWVudFR5cGU6IG5ldyBGb3JtQ29udHJvbChkYXRhPy5Bc3NpZ25tZW50VHlwZSA/PyAnJywgW1xuICAgICAgICBWYWxpZGF0b3JzLnJlcXVpcmVkLFxuICAgICAgXSksXG4gICAgICAvLyBTZXJ2aWNlOiBbZGF0YT8uU2VydmljZSA/PyAnJ10sXG4gICAgICBPcGVyYXRpb246IFtkYXRhPy5PcGVyYXRpb24gPz8gJyddLFxuICAgICAgU3RhdHVzOiBuZXcgRm9ybUNvbnRyb2woZGF0YT8uU3RhdHVzID8/ICcnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxuICAgIH0pO1xuICAgIC8vIGNvbnNvbGUubG9nKGZvcm0udmFsdWUpO1xuICAgIHJldHVybiBmb3JtO1xuICB9XG5cbiAgZ2V0Rm9ybUNvbnRyb2woaW5kZXg6IG51bWJlciwgZmllbGQ6IHN0cmluZykge1xuICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmVkaXRGb3Jtcy5nZXQoaW5kZXgpPy5nZXQoZmllbGQpIGFzIEZvcm1Db250cm9sPGFueT47XG4gICAgLy8gY29uc29sZS5sb2coY29udHJvbCk7XG4gICAgcmV0dXJuIGNvbnRyb2w7XG4gIH1cblxuICBpc1Jvd1ZhbGlkKGluZGV4OiBudW1iZXIpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5lZGl0Rm9ybXMuZ2V0KGluZGV4KT8udmFsaWQgfHwgZmFsc2U7XG4gIH1cblxuICBvdmVycmlkZSBsb2FkSW5pdGlhbERhdGEoKSB7XG4gICAgdHJ5IHtcbiAgICAgIHRoaXMuZmFjYWRlLmxvYWRSZXF1ZXN0cygpLnRoZW4oKCkgPT4ge1xuICAgICAgICB0aGlzLmZhY2FkZS5sb2FkT3BlcmF0aW9ucygpO1xuICAgICAgfSk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIC8vIEhhbmRsZSBlcnJvclxuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRDYXJkRGF0YUJ5SWRlbnRpZmllcihjb2RlOiBzdHJpbmcpOiBDYXJkRGF0YSB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuY2FyZERhdGEoKS5maW5kKCh7IGRhdGEgfSkgPT4gZGF0YS5kYXRhLkNvZGUgPT09IGNvZGUpO1xuICB9XG5cbiAgbG9hZE1vcmUoKSB7XG4gICAgdGhpcy5mYWNhZGUubG9hZE1vcmUoKTtcbiAgfVxuXG4gIGFzeW5jIG9uU2F2ZShkYXRhOiBQYXJ0aWFsPFdvcmtmbG93Pikge1xuICAgIGNvbnN0IHBheWxvYWQgPSB7XG4gICAgICAuLi50aGlzLmN1cnJlbnREYXRhPy5kYXRhLFxuICAgICAgLi4uZGF0YSxcbiAgICB9IGFzIFdvcmtmbG93O1xuICAgIGlmIChwYXlsb2FkLkRhdGFTdGF0ZSA9PT0gT2JqZWN0U3RhdGUuTmV3KSB7XG4gICAgICBhd2FpdCB0aGlzLmZhY2FkZS5hZGRSZXF1ZXN0KHBheWxvYWQpO1xuICAgIH0gZWxzZSB7XG4gICAgICBhd2FpdCB0aGlzLmZhY2FkZS51cGRhdGVSZXF1ZXN0KHtcbiAgICAgICAgLi4ucGF5bG9hZCxcbiAgICAgICAgRGF0YVN0YXRlOiBPYmplY3RTdGF0ZS5DaGFuZ2VkLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgY29tbWl0Um93Q2hhbmdlKFxuICAgIHJvd0luZGV4OiBudW1iZXIsXG4gICAgcm93OiBXb3JrZmxvdyxcbiAgICBwb3N0Q29tbWl0PzogKCkgPT4gdm9pZFxuICApIHtcbiAgICBjb25zdCBkYXRhID0gdGhpcy5lZGl0Rm9ybXMuZ2V0KHJvd0luZGV4KT8udmFsdWUgYXMgUGFydGlhbDxXb3JrZmxvdz47XG4gICAgaWYgKGRhdGEpIHtcbiAgICAgIGNvbnN0IGRhdHVtID0ge1xuICAgICAgICAuLi5yb3csXG4gICAgICAgIC4uLmRhdGEsXG4gICAgICB9IGFzIFdvcmtmbG93O1xuICAgICAgaWYgKGRhdHVtLkRhdGFTdGF0ZSA9PT0gT2JqZWN0U3RhdGUuTmV3KSB7XG4gICAgICAgIHRoaXMuZmFjYWRlLmFkZFJlcXVlc3QoZGF0dW0pLnRoZW4oKCkgPT4ge1xuICAgICAgICAgIHBvc3RDb21taXQ/LigpO1xuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGRhdHVtLkRhdGFTdGF0ZSA9IE9iamVjdFN0YXRlLkNoYW5nZWQ7XG4gICAgICAgIHRoaXMuZmFjYWRlLnVwZGF0ZVJlcXVlc3QoZGF0dW0pLnRoZW4oKCkgPT4ge1xuICAgICAgICAgIHBvc3RDb21taXQ/LigpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBvbkZpbHRlclNldChldmVudDogSURhdGFGaWx0ZXJbXSkge1xuICAgIHRoaXMuZmlsdGVyQXJyYXkgPSBldmVudDtcbiAgICB0aGlzLmNvbmZpZy5maWx0ZXJPcHRpb25zID0gZXZlbnQ7XG4gICAgdGhpcy5mYWNhZGUuZmlsdGVyKGV2ZW50KS50aGVuKCgpID0+IHtcbiAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH0pO1xuICB9XG5cbiAgaGFuZGxlU2VhcmNoKGV2ZW50OiB7IGtleTogc3RyaW5nOyB2YWx1ZTogc3RyaW5nIH0pIHtcbiAgICB0aGlzLmZhY2FkZS5zZWFyY2goZXZlbnQudmFsdWUpO1xuICB9XG5cbiAgb3ZlcnJpZGUgb25TdGF0ZUNoYW5nZShldmVudDogeyBrZXk6IHN0cmluZzsgdmFsdWU6IGJvb2xlYW4gfSk6IHZvaWQge1xuICAgIHN3aXRjaCAoZXZlbnQua2V5KSB7XG4gICAgICBjYXNlICdjcmVhdGUnOlxuICAgICAgICBjb25zdCB0aW1lc3RhbXAgPSBuZXcgRGF0ZSgpO1xuICAgICAgICB2YXIgbmV3Rm9ybTogV29ya2Zsb3cgPSB7XG4gICAgICAgICAgTmFtZTogJycsXG4gICAgICAgICAgRGVzY3JpcHRpb246ICcnLFxuICAgICAgICAgIFN0YWdlRW50cnlSdWxlOiAnJyxcbiAgICAgICAgICBBc3NpZ25tZW50VHlwZTogVGFza0Fzc2lnbm1lbnRUeXBlLkF1dG9Sb3V0ZSxcbiAgICAgICAgICBUZW5hbnRJZDogJycsXG4gICAgICAgICAgU2VydmljZU5hbWU6ICcnLFxuICAgICAgICAgIGlkOiBjcnlwdG8ucmFuZG9tVVVJRCgpLFxuICAgICAgICAgIElkOiAnJyxcbiAgICAgICAgICBDcmVhdGVkQXQ6IG5ldyBEYXRlKCksXG4gICAgICAgICAgVXBkYXRlZEF0OiBuZXcgRGF0ZSgpLFxuICAgICAgICAgIERhdGFTdGF0ZTogT2JqZWN0U3RhdGUuTmV3LFxuICAgICAgICAgIENvZGU6ICcnLFxuICAgICAgICAgIFN0YXR1czogU3RhdHVzLkFjdGl2ZSxcbiAgICAgICAgICBBY3Rpb25zOiBbXSxcbiAgICAgICAgICBMYW5lczogW10sXG4gICAgICAgICAgU3RhZ2VzOiBbXSxcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5kYXRhLnVwZGF0ZSgocHJldikgPT4gW25ld0Zvcm0sIC4uLnByZXZdKTtcbiAgICAgICAgLy8gY29uc29sZS5sb2cobmV3Rm9ybSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgbG9hZERhdGEocmFuZ2U6IHsgc2tpcDogbnVtYmVyOyBsaW1pdDogbnVtYmVyIH0pIHtcbiAgICBjb25zdCBkYXRhID0gYXdhaXQgdGhpcy5mYWNhZGUubG9hZERhdGEocmFuZ2Uuc2tpcCwgcmFuZ2UubGltaXQpO1xuICAgIHJldHVybiBkYXRhID8/IFtdO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwic3BhY2UteS04XCI+XG4gIDx2ZXJiZW4tZGF0YS12aWV3ICN2ZHYgW3ZpZXdTdGF0ZV09XCJ7XG4gICAgICBpc1NlYXJjaDogdHJ1ZSxcbiAgICAgIGlzQ29sdW1uOiB0cnVlLFxuICAgICAgaXNGaWx0ZXI6IHRydWUsXG4gICAgICBpc1NvcnQ6IHRydWUsXG4gICAgICBpc0V4cG9ydDogISFwZXJtaXNzaW9uQ29uZmlnKCk/LkFjdGlvbnM/LlsnRXhwb3J0J10sXG4gICAgICBpc1NlbGVjdDogdHJ1ZSxcbiAgICAgIGlzQ3JlYXRlOiAhIXBlcm1pc3Npb25Db25maWcoKT8uQWN0aW9ucz8uWydDcmVhdGUnXSxcbiAgICAgIGlzVG9nZ2xlOiB0cnVlLFxuICAgIH1cIiBbYnV0dG9uQ2xhc3NdPVwiJ215LWN1c3RvbS1idXR0b24tY2xhc3MnXCIgW2ljb25DbGFzc109XCInbXktaWNvbi1jbGFzcydcIlxuICAgIFthY3RpdmVJY29uQ2xhc3NdPVwiJ215LWFjdGl2ZS1pY29uLWNsYXNzJ1wiIFtzZWxlY3RlZENvbHVtbkNvdW50XT1cInNlbGVjdGVkQ29sdW1uQ291bnRcIlxuICAgIFtzZWxlY3RlZFNvcnRDb3VudF09XCJzZWxlY3RlZFNvcnRDb3VudFwiIFtzZWxlY3RlZEZpbHRlclRhYmxlQ291bnRdPVwic2VsZWN0ZWRGaWx0ZXJUYWJsZUNvdW50XCJcbiAgICAodmlld0NoYW5nZSk9XCJvblZpZXdDaGFuZ2UoJGV2ZW50KVwiIChzdGF0ZUNoYW5nZSk9XCJvblN0YXRlQ2hhbmdlKCRldmVudClcIiAob25TZWFyY2hDaGFuZ2UpPVwiaGFuZGxlU2VhcmNoKCRldmVudClcIj5cbiAgICA8ZGl2IHRhYmxlLWNvbnRlbnQ+XG4gICAgICA8bGliLWRhdGEtdGFibGUgW2RhdGFdPVwiZGF0YSgpXCIgW2NvbHVtbnNdPVwiY29uZmlnLmNvbHVtbnNcIiBbc3R5bGVDb25maWddPVwic3R5bGVzXCJcbiAgICAgICAgKHNlbGVjdGlvbkNoYW5nZSk9XCJvblNlbGVjdGlvbkNoYW5nZSgkZXZlbnQpXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgbGliQ29sdW1uPVwibmFtZVwiPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjY2VsbEVkaXQgbGV0LXJvd0luZGV4PVwicm93SW5kZXhcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3aWR0aC1tYXhcIj5cbiAgICAgICAgICAgICAgPHZlcmJlbmEtaW5wdXQgW2Zvcm1Db250cm9sXT1cImdldEZvcm1Db250cm9sKHJvd0luZGV4LCAnTmFtZScpXCI+PC92ZXJiZW5hLWlucHV0PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBsaWJDb2x1bW49XCJkZXNjcmlwdGlvblwiPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjY2VsbEVkaXQgbGV0LXJvd0luZGV4PVwicm93SW5kZXhcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3aWR0aC1tYXhcIj5cbiAgICAgICAgICAgICAgPHZlcmJlbmEtaW5wdXQgW2Zvcm1Db250cm9sXT1cImdldEZvcm1Db250cm9sKHJvd0luZGV4LCAnRGVzY3JpcHRpb24nKVwiPjwvdmVyYmVuYS1pbnB1dD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDxuZy1jb250YWluZXIgbGliQ29sdW1uPVwiYXNzaWdubWVudC10eXBlXCI+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNjZWxsRWRpdCBsZXQtcm93SW5kZXg9XCJyb3dJbmRleFwiPlxuICAgICAgICAgICAgPHZlcmJlbi1kcm9wLWRvd24gc3R5bGVDbGFzcz1cInctZnVsbFwiIHdpZHRoPVwiMTAwJVwiIFttdWx0aXNlbGVjdF09XCJmYWxzZVwiIHBsYWNlaG9sZGVyPVwiU2VsZWN0XCJcbiAgICAgICAgICAgICAgW29wdGlvbnNdPVwiYXNzaWdubWVudFR5cGVzXCIgW2Zvcm1Db250cm9sXT1cImdldEZvcm1Db250cm9sKHJvd0luZGV4LCAnQXNzaWdubWVudFR5cGUnKVwiXG4gICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCI+XG4gICAgICAgICAgICA8L3ZlcmJlbi1kcm9wLWRvd24+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBsaWJDb2x1bW49XCJvcGVyYXRpb25cIj5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgI2NlbGxFZGl0IGxldC1yb3dJbmRleD1cInJvd0luZGV4XCI+XG4gICAgICAgICAgICA8IS0tIDx2ZXJiZW5hLWlucHV0XG4gICAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJnZXRGb3JtQ29udHJvbChyb3dJbmRleCwgJ09wZXJhdGlvbicpXCJcbiAgICAgICAgICAgID48L3ZlcmJlbmEtaW5wdXQ+IC0tPlxuICAgICAgICAgICAgPHZlcmJlbi1kcm9wLWRvd24gbGFiZWw9XCJPcGVyYXRpb25cIiBzdHlsZUNsYXNzPVwidy1mdWxsXCIgd2lkdGg9XCIxMDAlXCIgW211bHRpc2VsZWN0XT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJTZWxlY3RcIiBbb3B0aW9uc109XCJvcGVyYXRpb25zKClcIiBvcHRpb25MYWJlbD1cIkRlc2NyaXB0aW9uXCIgb3B0aW9uVmFsdWU9XCJEZXNjcmlwdGlvblwiXG4gICAgICAgICAgICAgIGlkPVwib3BlcmF0aW9uXCIgW2Zvcm1Db250cm9sXT1cImdldEZvcm1Db250cm9sKHJvd0luZGV4LCAnT3BlcmF0aW9uJylcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiPlxuICAgICAgICAgICAgPC92ZXJiZW4tZHJvcC1kb3duPlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDxuZy1jb250YWluZXIgbGliQ29sdW1uPVwic3RhdHVzXCI+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNjZWxsIGxldC12YWx1ZT5cbiAgICAgICAgICAgIDx2ZXJiZW5hLWJhZGdlIGJvcmRlclJhZGl1cz1cIjlweFwiIFtiZ0NvbG9yXT1cInZhbHVlID09ICdBY3RpdmUnID8gJyNDQUUxQ0MnIDogJyNGRkRGREYnXCJcbiAgICAgICAgICAgICAgW3RleHRDb2xvcl09XCJ2YWx1ZSA9PSAnQWN0aXZlJyA/ICcjNEFCQjU0JyA6ICcjRUI1NzU3J1wiIGZvbnRTaXplPVwiMTJweFwiIFt0ZXh0XT1cInZhbHVlXCJcbiAgICAgICAgICAgICAgW3BkXT1cIicycHggNnB4J1wiPjwvdmVyYmVuYS1iYWRnZT5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjY2VsbEVkaXQgbGV0LXJvd0luZGV4PVwicm93SW5kZXhcIj5cbiAgICAgICAgICAgIDx2ZXJiZW4tZHJvcC1kb3duIHN0eWxlQ2xhc3M9XCJ3LWZ1bGxcIiB3aWR0aD1cIjEwMCVcIiBbbXVsdGlzZWxlY3RdPVwiZmFsc2VcIiBwbGFjZWhvbGRlcj1cIk51bGxcIlxuICAgICAgICAgICAgICBbb3B0aW9uc109XCJzdGF0dXNlc1wiIFtmb3JtQ29udHJvbF09XCJnZXRGb3JtQ29udHJvbChyb3dJbmRleCwgJ1N0YXR1cycpXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIj5cbiAgICAgICAgICAgIDwvdmVyYmVuLWRyb3AtZG93bj5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8bmctY29udGFpbmVyIGxpYkNvbHVtbj1cImFjdGlvbnNcIj5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgI2NlbGwgbGV0LXZhbHVlIGxldC1kZWxldGVSb3c9XCJkZWxldGVSb3dcIiBsZXQtaXNFZGl0aW5nPVwiaXNFZGl0aW5nXCJcbiAgICAgICAgICAgIGxldC10b2dnbGVSb3dFZGl0PVwidG9nZ2xlUm93RWRpdFwiIGxldC1yb3c9XCJyb3dcIiBsZXQtcm93SW5kZXg9XCJyb3dJbmRleFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZ2FwLTZcIj5cbiAgICAgICAgICAgICAgPCEtLSBAaWYgKCEhcGVybWlzc2lvbkNvbmZpZygpPy5BY3Rpb25zPy5bJ0Rlc2lnbiddKSB7IC0tPlxuICAgICAgICAgICAgICA8dmVyYmVuLXN2ZyAoY2xpY2spPVwiXG4gICAgICAgICAgICAgICAgICAgIGVkaXRGb3Jtcy5zZXQocm93SW5kZXgsIGdlbmVyYXRlRm9ybUdyb3VwKHJvdykpO1xuICAgICAgICAgICAgICAgICAgICB0b2dnbGVSb3dFZGl0KClcbiAgICAgICAgICAgICAgICAgIFwiIGljb249XCJlZGl0XCIgW3dpZHRoXT1cIjE1XCIgW2hlaWdodF09XCIxNVwiIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIj48L3ZlcmJlbi1zdmc+XG4gICAgICAgICAgICAgIDwhLS0gfSAtLT5cblxuICAgICAgICAgICAgICA8dmVyYmVuLXN2ZyBpY29uPVwiZGVsZXRlXCIgW3dpZHRoXT1cIjE1XCIgW2hlaWdodF09XCIxNVwiIChjbGljayk9XCJkZWxldGVSb3coKVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiPjwvdmVyYmVuLXN2Zz5cblxuICAgICAgICAgICAgICBAaWYgKCEhcGVybWlzc2lvbkNvbmZpZygpPy5BY3Rpb25zPy5bJ0Rlc2lnbiddKSB7XG4gICAgICAgICAgICAgIDxhIFtyb3V0ZXJMaW5rXT1cIltkZXNpZ25lclVybCgpLCB2YWx1ZV1cIj5cbiAgICAgICAgICAgICAgICA8dmVyYmVuLXN2ZyBpY29uPVwiZGVzaWduZXJcIiBbd2lkdGhdPVwiMTVcIiBbaGVpZ2h0XT1cIjE1XCIgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiPjwvdmVyYmVuLXN2Zz5cbiAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNjZWxsRWRpdCBsZXQtdmFsdWUgbGV0LWRlbGV0ZVJvdz1cImRlbGV0ZVJvd1wiIGxldC1pc0VkaXRpbmc9XCJpc0VkaXRpbmdcIlxuICAgICAgICAgICAgbGV0LXRvZ2dsZVJvd0VkaXQ9XCJ0b2dnbGVSb3dFZGl0XCIgbGV0LXJvdz1cInJvd1wiIGxldC1yb3dJbmRleD1cInJvd0luZGV4XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBnYXAtNlwiPlxuICAgICAgICAgICAgICA8dmVyYmVuLXN2ZyAoY2xpY2spPVwiY29tbWl0Um93Q2hhbmdlKHJvd0luZGV4LCByb3csIHRvZ2dsZVJvd0VkaXQpXCIgaWNvbj1cInRpY2tcIiBbd2lkdGhdPVwiMTVcIiBbaGVpZ2h0XT1cIjE1XCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImN1cnNvci1wb2ludGVyXCI+PC92ZXJiZW4tc3ZnPlxuXG4gICAgICAgICAgICAgIDx2ZXJiZW4tc3ZnIGljb249XCJkZWxldGVcIiBbd2lkdGhdPVwiMTVcIiBbaGVpZ2h0XT1cIjE1XCIgKGNsaWNrKT1cInRvZ2dsZVJvd0VkaXQoKVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiPjwvdmVyYmVuLXN2Zz5cblxuICAgICAgICAgICAgICA8dmVyYmVuLXN2ZyBpY29uPVwiY2FyZFZpZXdBbHRcIiBbd2lkdGhdPVwiMTVcIiBbaGVpZ2h0XT1cIjE1XCIgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImdvVG9DYXJkVmlldyh2YWx1ZSlcIj48L3ZlcmJlbi1zdmc+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbGliLWRhdGEtdGFibGU+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNhcmQtY29udGVudD5cbiAgICAgIDx2ZXJiZW4tY2FyZC1kYXRhLXZpZXcgYm9yZGVyUmFkaXVzPVwiMTJweFwiIChsb2FkTW9yZUNsaWNrKT1cImxvYWRNb3JlKClcIiAjdmRjdiBkYXRhSWQ9XCJDb2RlXCIgYm9yZGVyPVwiNXB4XCJcbiAgICAgICAgW2NhcmREYXRhTGlzdF09XCJjYXJkRGF0YSgpXCIgcmJnQ29sb3I9XCIjZjVmNmY5XCIgbWc9XCIyMHB4XCI+XG4gICAgICAgIDx2ZXJiZW4tbGVmdC1jYXJkLWRhdGEtdmlldyBjbGFzcz1cInNwYWNlLXktN1wiPlxuICAgICAgICAgIDx2ZXJiZW4tbGVmdC1jYXJkLWRhdGEgI3ZsY2QgW3BhcmVudF09XCJ2ZGN2XCIgZGF0YUlkPVwiQ29kZVwiXG4gICAgICAgICAgICBjbGFzcz1cImJnLXNlY29uZGFyeS0xMDAgcm91bmRlZC14bCBib3JkZXItcHJpbWFyeSBib3JkZXItWzFweF1cIiBbY2FyZERhdGFMaXN0XT1cImNhcmREYXRhKClcIj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjY2FyZCBsZXQtaXRlbT5cbiAgICAgICAgICAgICAgPGRpdiAoY2xpY2spPVwiY3VycmVudERhdGEgPSB2ZGN2Lm9uSXRlbUNsaWNrKGl0ZW0pXCIgY2xhc3M9XCJmbGV4XCI+XG4gICAgICAgICAgICAgICAgPGRpdiAoY2xpY2spPVwiY3VycmVudERhdGEgPSB2ZGN2Lm9uSXRlbUNsaWNrKGl0ZW0pXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmxleCBjdXJzb3ItcG9pbnRlciB3LWZ1bGwgYmctc2Vjb25kYXJ5IHJvdW5kZWQteGxcIj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3LTMgcm91bmRlZC14bCByb3VuZGVkLXRyLW5vbmUgcm91bmRlZC1ici1ub25lXCIgW25nQ2xhc3NdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgaXRlbS5zZWxlY3RlZCA/ICdiZy1wcmltYXJ5JyA6ICdiZy1zZWNvbmRhcnktMjAwJ1xuICAgICAgICAgICAgICAgICAgICBcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4LTEgZmxleCBqdXN0aWZ5LWJldHdlZW4gZ2FwLXktMiBnYXAteC00IHAtNFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC0xIGZsZXggZmxleC1jb2wganVzdGlmeS1iZXR3ZWVuIHNwYWNlLXktMlwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZm9udC1zZW1pYm9sZCB0ZXh0LVsjNDA0MDQwXSBmbGV4LTEgdHJ1bmNhdGUgbGluZS1jbGFtcC0xXCI+e3sgaXRlbS50aXRsZSB9fTwvc3Bhbj5cblxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGlkPVwicm9sZVwiIGNsYXNzPVwidGV4dC1zbSBsaW5lLWNsYW1wLTEgdHJ1bmNhdGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtLmRhdGE/Lk9wZXJhdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG5cbiAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxwIGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgbXktMVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cInBob25lXCIgY2xhc3M9XCJ0ZXh0LVsxMHB4XSBmb250LWxpZ2h0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPkFzc2lnbm1lbnQ6PC9sYWJlbFxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gaWQ9XCJwaG9uZVwiIGNsYXNzPVwidGV4dC1zbSB0cnVuY2F0ZVwiPnt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0uZGF0YS5Bc3NpZ25tZW50VHlwZVxuICAgICAgICAgICAgICAgICAgICAgICAgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgPC9wPiAtLT5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdyaWQgZ2FwLXktMSB3LWZpdCBqdXN0aWZ5LWl0ZW1zLWVuZFwiPlxuICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPHAgY2xhc3M9XCJncmlkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBpZD1cInJvbGVcIiBjbGFzcz1cInRleHQtc20gZm9udC1tZWRpdW0gbGluZS1jbGFtcC0xIHRydW5jYXRlXCI+e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5kYXRhPy5PcGVyYXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgIDwvcD4gLS0+XG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gaWQ9XCJwaG9uZVwiIGNsYXNzPVwidGV4dC1zbVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgaXRlbS5kYXRhLkFzc2lnbm1lbnRUeXBlIH19XG4gICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZ2FwLTQgaXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgKCEhcGVybWlzc2lvbkNvbmZpZygpPy5BY3Rpb25zPy5bJ0Rlc2lnbiddICYmIGl0ZW0uZGF0YT8uQ29kZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgPGEgW3JvdXRlckxpbmtdPVwiW2Rlc2lnbmVyVXJsKCksIGl0ZW0uZGF0YS5Db2RlXVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8dmVyYmVuLXN2ZyBpY29uPVwiZGVzaWduZXJcIiBbd2lkdGhdPVwiMTVcIiBbaGVpZ2h0XT1cIjE1XCIgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiPjwvdmVyYmVuLXN2Zz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgPHZlcmJlbmEtYmFkZ2UgYm9yZGVyUmFkaXVzPVwiOXB4XCIgW2JnQ29sb3JdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5kYXRhLlN0YXR1cyA9PSAnQWN0aXZlJyA/ICcjQ0FFMUNDJyA6ICcjRkZERkRGJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIiBbdGV4dENvbG9yXT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0uZGF0YS5TdGF0dXMgPT0gJ0FjdGl2ZScgPyAnIzRBQkI1NCcgOiAnI0VCNTc1NydcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCIgZm9udFNpemU9XCIxMnB4XCIgW3RleHRdPVwiaXRlbS5kYXRhLlN0YXR1c1wiIFtwZF09XCInMnB4IDZweCdcIj48L3ZlcmJlbmEtYmFkZ2U+XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICA8L3ZlcmJlbi1sZWZ0LWNhcmQtZGF0YT5cbiAgICAgICAgPC92ZXJiZW4tbGVmdC1jYXJkLWRhdGEtdmlldz5cblxuICAgICAgICA8dmVyYmVuLXJpZ2h0LWNhcmQtZGF0YS12aWV3PlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjcGFyZW50PlxuICAgICAgICAgICAgPGxpYi13b3JrZmxvdy1mb3JtIFtjdXJyZW50RGF0YV09XCJjdXJyZW50RGF0YVwiIChzd2l0Y2hWaWV3KT1cInZkdi50b2dnbGVWaWV3KClcIiAob25TYXZlKT1cIm9uU2F2ZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgW29wZXJhdGlvbnNdPVwib3BlcmF0aW9ucygpXCIgW2Rlc2lnbmVyVXJsXT1cImRlc2lnbmVyVXJsKClcIj48L2xpYi13b3JrZmxvdy1mb3JtPlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvdmVyYmVuLXJpZ2h0LWNhcmQtZGF0YS12aWV3PlxuXG4gICAgICAgIDx2ZXJiZW4tY2FyZC1kYXRhLXZpZXctZm9vdGVyIGNsYXNzPVwidy1mdWxsXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZ2FwLTIgaXRlbXMtY2VudGVyIGp1c3RpZnktZW5kXCI+XG4gICAgICAgICAgICA8IS0tIDx2ZXJiZW5hLWJ1dHRvblxuICAgICAgICAgICAgICAqbmdJZj1cIiF2ZGN2Lmhhc0N1cnJlbnRJdGVtKClcIlxuICAgICAgICAgICAgICBbZm9udFdlaWdodF09XCInYm9sZCdcIlxuICAgICAgICAgICAgICBbYmdDb2xvcl09XCInIzhFOEQ4NydcIlxuICAgICAgICAgICAgICBbYm9yZGVyUmFkaXVzXT1cIic0cHgnXCJcbiAgICAgICAgICAgICAgW3RleHRDb2xvcl09XCInI2ZmZidcIlxuICAgICAgICAgICAgICBbcGRdPVwiJzkuNzlweCAzNy4yOHB4J1wiXG4gICAgICAgICAgICAgIFt0ZXh0XT1cIidEZWxldGUnXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDwvdmVyYmVuYS1idXR0b24+IC0tPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgge3tcbiAgICAgICAgICAgICAgICB2ZGN2Lmhhc0N1cnJlbnRJdGVtKCkgPyAnZmxleC0xJyA6ICcnXG4gICAgICAgICAgICAgIH19IGp1c3RpZnktZW5kIGl0ZW1zLWNlbnRlciBnYXAtNVwiPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInBhZ2luYXRvci10ZXh0XCI+e3sgY2FyZERhdGEoKS5sZW5ndGggfX0gcmVjb3JkcyBsb2FkZWQ8L3NwYW4+XG4gICAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cImxvYWRNb3JlKClcIiBjbGFzcz1cImxvYWQtbW9yZSB2aWV3LWxpbmtzIHRleHQtWyMzNDc5RTldIHVuZGVybGluZVwiPlxuICAgICAgICAgICAgICAgIExvYWQgbW9yZVxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3ZlcmJlbi1jYXJkLWRhdGEtdmlldy1mb290ZXI+XG4gICAgICA8L3ZlcmJlbi1jYXJkLWRhdGEtdmlldz5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY29sdW1uLWNvbnRlbnQ+XG4gICAgICA8IS0tIDx2ZXJiZW4tdmlzaWJsZS1jb2x1bW5cbiAgICAgICAgKGNvbHVtbnNVcGRhdGVkKT1cIm9uQ29sdW1uc1VwZGF0ZWQoJGV2ZW50KVwiXG4gICAgICAgIFtib3JkZXJdPVwiJzFweCBzb2xpZCByZ2JhKDIxMiwgMTYwLCA3LCAxKSdcIlxuICAgICAgICBib3JkZXJSYWRpdXM9XCIxMHB4XCJcbiAgICAgICAgYm94U2hhZG93PVwiMnB4IDJweCAycHggMHB4IHNpbHZlclwiXG4gICAgICAgIGJnQ29sb3I9XCJ3aGl0ZVwiXG4gICAgICAgIHdpZHRoPVwiNDAwcHhcIlxuICAgICAgICB0ZXh0Q29sb3I9XCJibGFja1wiXG4gICAgICAgIHBkPVwiMXJlbVwiXG4gICAgICAgIHByaW1hcnlDb2xvcj1cIiNGRkU2ODFcIlxuICAgICAgICBzZWNvbmRhcnlDb2xvcj1cIiMzNDc5RTlcIlxuICAgICAgICBbY29sdW1uc109XCJ2aXNpYmxlQ29sdW1uc1wiXG4gICAgICAgIFtkaXNwbGF5ZWRDb2x1bW5zXT1cIjVcIlxuICAgICAgPjwvdmVyYmVuLXZpc2libGUtY29sdW1uPiAtLT5cblxuICAgICAgPGxpYi1kYXRhLWNvbHVtbnMgW2NvbHVtbnNdPVwiY29uZmlnLmNvbHVtbnNcIiAoY29sdW1uc1VwZGF0ZWQpPVwib25Db2x1bW5zVXBkYXRlZCgkZXZlbnQpXCI+PC9saWItZGF0YS1jb2x1bW5zPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgZmlsdGVyLWNvbnRlbnQ+XG4gICAgICA8dmVyYmVuLXRhYmxlLWZpbHRlciAoZmlsdGVyc0FwcGxpZWQpPVwib25GaWx0ZXJTZXQoJGV2ZW50KVwiIFtib3JkZXJdPVwiJzFweCBzb2xpZCByZ2JhKDIxMiwgMTYwLCA3LCAxKSdcIlxuICAgICAgICBib3JkZXJSYWRpdXM9XCIxMHB4XCIgYm94U2hhZG93PVwiMnB4IDJweCAycHggMHB4IHNpbHZlclwiIGJnQ29sb3I9XCJ3aGl0ZVwiIHdpZHRoPVwiNDIwcHhcIiB0ZXh0Q29sb3I9XCJibGFja1wiIHBkPVwiMXJlbVwiXG4gICAgICAgIHByaW1hcnlDb2xvcj1cIiNGRkU2ODFcIiBzZWNvbmRhcnlDb2xvcj1cIiMzNDc5RTlcIiB0ZXJ0aWFyeUNvbG9yPVwiIzQwNDA0MFwiIFtmaWx0ZXJPcHRpb25zXT1cImZpbHRlckFycmF5XCJcbiAgICAgICAgW21heEZpbHRlckxlbmd0aF09XCIzXCI+PC92ZXJiZW4tdGFibGUtZmlsdGVyPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgc29ydC1jb250ZW50PlxuICAgICAgPCEtLSA8dmVyYmVuLXNvcnQtdGFibGVcbiAgICAgICAgKHNlbGVjdGVkT3B0aW9ucyk9XCJvblNvcnRVcGRhdGVkKCRldmVudClcIlxuICAgICAgICBbYm9yZGVyXT1cIicxcHggc29saWQgcmdiYSgyMTIsIDE2MCwgNywgMSknXCJcbiAgICAgICAgYm9yZGVyUmFkaXVzPVwiMTBweFwiXG4gICAgICAgIGJveFNoYWRvdz1cIjJweCAycHggMnB4IDBweCBzaWx2ZXJcIlxuICAgICAgICBiZ0NvbG9yPVwid2hpdGVcIlxuICAgICAgICB3aWR0aD1cIjQwMHB4XCJcbiAgICAgICAgdGV4dENvbG9yPVwiYmxhY2tcIlxuICAgICAgICBwZD1cIjFyZW1cIlxuICAgICAgICBwcmltYXJ5Q29sb3I9XCIjRkZFNjgxXCJcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3I9XCIjMzQ3OUU5XCJcbiAgICAgICAgdGVydGlhcnlDb2xvcj1cIiM0MDQwNDBcIlxuICAgICAgICBbZW5hYmxlRHJhZ0FuZERyb3BdPVwidHJ1ZVwiXG4gICAgICAgIFtzb3J0T3B0aW9uc109XCJzb3J0T3B0aW9uc1wiXG4gICAgICA+PC92ZXJiZW4tc29ydC10YWJsZT4gLS0+XG4gICAgICA8bGliLWRhdGEtc29ydCBbY29sdW1uc109XCJjb25maWcuY29sdW1uc1wiIFtkYXRhXT1cImRhdGEoKVwiIChzb3J0QXBwbGllZCk9XCJvblNvcnRVcGRhdGVkKCRldmVudClcIj48L2xpYi1kYXRhLXNvcnQ+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBleHBvcnQtY29udGVudD5cbiAgICAgIDxsaWItZGF0YS14cG9ydCBbY29sdW1uc109XCJjb25maWcuY29sdW1uc1wiIFtkYXRhXT1cImRhdGEoKVwiIFtkYXRhUXVlcnlGdW5jdGlvbl09XCJsb2FkRGF0YVwiPlxuICAgICAgPC9saWItZGF0YS14cG9ydD5cbiAgICA8L2Rpdj5cbiAgPC92ZXJiZW4tZGF0YS12aWV3PlxuXG4gIDxkaXYgKm5nSWY9XCJ2ZHYuaXNUYWJsZVZpZXdcIiBjbGFzcz1cImZsZXggZ2FwLTIganVzdGlmeS1lbmRcIj5cbiAgICA8IS0tIDxkaXYgY2xhc3M9XCJtZXNzYWdlLWxvZy1idXR0b24tY29udGFpbmVyIGZsZXgganVzdGlmeS1iZXR3ZWVuXCI+XG4gICAgICA8dmVyYmVuYS1idXR0b25cbiAgICAgICAgW2ZvbnRXZWlnaHRdPVwiJ2JvbGQnXCJcbiAgICAgICAgW2JnQ29sb3JdPVwiJyM4RThEODcnXCJcbiAgICAgICAgW2JvcmRlclJhZGl1c109XCInNHB4J1wiXG4gICAgICAgIFt0ZXh0Q29sb3JdPVwiJyNmZmYnXCJcbiAgICAgICAgW3BkXT1cIic5Ljc5cHggMzcuMjhweCdcIlxuICAgICAgICBbdGV4dF09XCInRGVsZXRlJ1wiXG4gICAgICA+XG4gICAgICA8L3ZlcmJlbmEtYnV0dG9uPlxuICAgIDwvZGl2PiAtLT5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWVuZCBpdGVtcy1jZW50ZXIgZ2FwLTVcIj5cbiAgICAgIDxzcGFuIGNsYXNzPVwicGFnaW5hdG9yLXRleHRcIj57eyBjYXJkRGF0YSgpLmxlbmd0aCB9fSByZWNvcmRzIGxvYWRlZDwvc3Bhbj5cbiAgICAgIDxidXR0b24gKGNsaWNrKT1cImxvYWRNb3JlKClcIiBjbGFzcz1cImxvYWQtbW9yZSB2aWV3LWxpbmtzIHRleHQtWyMzNDc5RTldIHVuZGVybGluZVwiPlxuICAgICAgICBMb2FkIG1vcmVcbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
190
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3dzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZlcmJlbi13b3JrZmxvdy11aS9zcmMvbGliL2NvbXBvbmVudHMvd29ya2Zsb3dzL3dvcmtmbG93cy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4td29ya2Zsb3ctdWkvc3JjL2xpYi9jb21wb25lbnRzL3dvcmtmbG93cy93b3JrZmxvd3MuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxLQUFLLEVBQ0wsTUFBTSxHQUVQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFFTCxXQUFXLEVBRVgsVUFBVSxHQUNYLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxFQUFFLFdBQVcsRUFBb0IsTUFBTSxFQUFFLGtCQUFrQixFQUErQixNQUFNLG1DQUFtQyxDQUFDO0FBQzNJLE9BQU8sRUFBRSxxQkFBcUIsRUFBa0IsTUFBTSxtQ0FBbUMsQ0FBQztBQUMxRixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7Ozs7O0FBUTlDLE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxxQkFBK0I7SUE2QjNEO0lBQ0E7SUFDQTtJQTlCVixXQUFXLEdBQUcsS0FBSyxDQUFTLFVBQVUsQ0FBQyxDQUFDO0lBQ3hDLGdCQUFnQixHQUFHLEtBQUssQ0FBMEIsSUFBSSxDQUFDLENBQUM7SUFFeEQsTUFBTSxHQUE2QjtRQUNqQyxVQUFVLEVBQUUsRUFBRTtRQUNkLE9BQU8sRUFBRSxPQUFPO1FBQ2hCLGNBQWMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztZQUN6QixRQUFRLEVBQUUsS0FBSztZQUNmLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSTtZQUNoQixJQUFJLEVBQUUsSUFBSTtZQUNWLElB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SyxPQUFPLENBQUMsQ0FBQztnQkFDN0QsSUFBSSxJQUFJLEVBQUUsQ0FBQztvQkFDVCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUN2RCxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO2dCQUMzQixDQUFDO2dCQUNELE1BQU07WUFDUixDQUFDO1lBQ0Q7Z0JBQ0UsTUFBTTtRQUNWLENBQUM7SUFDSCxDQUFDO0lBRUQsS0FBSyxDQUFDLFFBQVEsQ0FBQyxLQUFzQztRQUNuRCxNQUFNLElBQUksR0FBRyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pFLE9BQU8sSUFBSSxJQUFJLEVBQUUsQ0FBQztJQUNwQixDQUFDO3dHQTVMVSxrQkFBa0I7NEZBQWxCLGtCQUFrQiwyWEN4Qi9CLDhtYUErUUE7OzRGRHZQYSxrQkFBa0I7a0JBTDlCLFNBQVM7K0JBQ0UsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIGlucHV0LFxuICBzaWduYWwsXG4gIFdyaXRhYmxlU2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEZvcm1CdWlsZGVyLFxuICBGb3JtQ29udHJvbCxcbiAgRm9ybUdyb3VwLFxuICBWYWxpZGF0b3JzLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDYXJkRGF0YSwgSURhdGFGaWx0ZXIgfSBmcm9tICd2ZXJiZW4tbmctdWknO1xuaW1wb3J0IHsgT2JqZWN0U3RhdGUsIFBlcm1pc3Npb25Db25maWcsIFN0YXR1cywgVGFza0Fzc2lnbm1lbnRUeXBlLCBXb3JrZmxvdywgV29ya2Zsb3dPcGVyYXRpb24gfSBmcm9tICd2ZXJiZW4td29ya2Zsb3ctdWkvc3JjL2xpYi9tb2RlbHMnO1xuaW1wb3J0IHsgQmFzZURhdGFWaWV3Q29tcG9uZW50LCBEYXRhVmlld0NvbmZpZyB9IGZyb20gJ3ZlcmJlbi13b3JrZmxvdy11aS9zcmMvbGliL3NoYXJlZCc7XG5pbXBvcnQgeyBjb2x1bW5zIH0gZnJvbSAnLi93b3JrZmxvd3MuY29sdW1ucyc7XG5pbXBvcnQgeyBXb3JrZmxvd0ZhY2FkZSB9IGZyb20gJy4vd29ya2Zsb3dzLmZhY2FkZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi13b3JrZmxvd3MnLFxuICB0ZW1wbGF0ZVVybDogJy4vd29ya2Zsb3dzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3dvcmtmbG93cy5jb21wb25lbnQuY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgV29ya2Zsb3dzQ29tcG9uZW50IGV4dGVuZHMgQmFzZURhdGFWaWV3Q29tcG9uZW50PFdvcmtmbG93PiB7XG4gIGRlc2lnbmVyVXJsID0gaW5wdXQ8c3RyaW5nPignd29ya2Zsb3cnKTtcbiAgcGVybWlzc2lvbkNvbmZpZyA9IGlucHV0PFBlcm1pc3Npb25Db25maWcgfCBudWxsPihudWxsKTtcblxuICBjb25maWc6IERhdGFWaWV3Q29uZmlnPFdvcmtmbG93PiA9IHtcbiAgICBkYXRhU291cmNlOiBbXSxcbiAgICBjb2x1bW5zOiBjb2x1bW5zLFxuICAgIGNhcmREYXRhTWFwcGVyOiAodGFzaykgPT4gKHtcbiAgICAgIHNlbGVjdGVkOiBmYWxzZSxcbiAgICAgIHRpdGxlOiB0YXNrLk5hbWUsXG4gICAgICBkYXRhOiB0YXNrLFxuICAgICAgYm9keTogW1xuICAgICAgICB7IHRpdGxlOiAnTmFtZScsIHZhbHVlOiB0YXNrLk5hbWUgfSxcbiAgICAgICAgeyB0aXRsZTogJ1N0YXR1cycsIHZhbHVlOiB0YXNrLlN0YXR1cyB9LFxuICAgICAgICB7IHRpdGxlOiAnQXNzaWdubWVudFR5cGUnLCB2YWx1ZTogdGFzay5Bc3NpZ25tZW50VHlwZSB9LFxuICAgICAgXSxcbiAgICAgIGNoaWxkcmVuOiBbXSxcbiAgICB9KSxcbiAgICBvbkRldGFpbFZpZXc6ICh0YXNrKSA9PiB7XG4gICAgICAvLyBDdXN0b20gZGV0YWlsIHZpZXcgbG9naWNcbiAgICB9LFxuICB9O1xuXG4gIGVkaXRGb3JtczogTWFwPG51bWJlciwgRm9ybUdyb3VwPiA9IG5ldyBNYXAoKTtcbiAgYXNzaWdubWVudFR5cGVzID0gT2JqZWN0LnZhbHVlcyhUYXNrQXNzaWdubWVudFR5cGUpO1xuICBzdGF0dXNlcyA9IE9iamVjdC52YWx1ZXMoU3RhdHVzKTtcbiAgb3BlcmF0aW9uczogV3JpdGFibGVTaWduYWw8V29ya2Zsb3dPcGVyYXRpb25bXT4gPSBzaWduYWwoW10pO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIGZhY2FkZTogV29ya2Zsb3dGYWNhZGUsXG4gICAgcHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXJcbiAgKSB7XG4gICAgc3VwZXIoKTtcblxuICAgIHRoaXMubG9hZERhdGEgPSB0aGlzLmxvYWREYXRhLmJpbmQodGhpcyk7XG5cbiAgICB0aGlzLmZhY2FkZS5nZXRSZXF1ZXN0cyQoKS5zdWJzY3JpYmUoKGRhdGEpID0+IHtcbiAgICAgIHRoaXMuZGF0YS5zZXQoZGF0YSk7XG4gICAgfSk7XG5cbiAgICB0aGlzLmZhY2FkZS5nZXRPcGVyYXRpb25zJCgpLnN1YnNjcmliZSgoZGF0YSkgPT4ge1xuICAgICAgdGhpcy5vcGVyYXRpb25zLnNldChkYXRhKTtcbiAgICB9KTtcbiAgfVxuXG4gIGdlbmVyYXRlRm9ybUdyb3VwKGRhdGE/OiBQYXJ0aWFsPFdvcmtmbG93Pikge1xuICAgIGNvbnNvbGUubG9nKGRhdGEpO1xuICAgIGNvbnN0IGZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgIC8vIE5hbWU6IFtkYXRhPy5OYW1lID8/ICcnLCB7IHZhbGlkYXRvcnM6IFtWYWxpZGF0b3JzLnJlcXVpcmVkXSB9XSxcbiAgICAgIE5hbWU6IG5ldyBGb3JtQ29udHJvbChkYXRhPy5OYW1lID8/ICcnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxuICAgICAgRGVzY3JpcHRpb246IG5ldyBGb3JtQ29udHJvbChkYXRhPy5EZXNjcmlwdGlvbiA/PyAnJywgW1xuICAgICAgICBWYWxpZGF0b3JzLnJlcXVpcmVkLFxuICAgICAgXSksXG4gICAgICBBc3NpZ25tZW50VHlwZTogbmV3IEZvcm1Db250cm9sKGRhdGE/LkFzc2lnbm1lbnRUeXBlID8/ICcnLCBbXG4gICAgICAgIFZhbGlkYXRvcnMucmVxdWlyZWQsXG4gICAgICBdKSxcbiAgICAgIC8vIFNlcnZpY2U6IFtkYXRhPy5TZXJ2aWNlID8/ICcnXSxcbiAgICAgIE9wZXJhdGlvbjogW2RhdGE/Lk9wZXJhdGlvbiA/PyAnJ10sXG4gICAgICBTdGF0dXM6IG5ldyBGb3JtQ29udHJvbChkYXRhPy5TdGF0dXMgPz8gJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSksXG4gICAgfSk7XG4gICAgLy8gY29uc29sZS5sb2coZm9ybS52YWx1ZSk7XG4gICAgcmV0dXJuIGZvcm07XG4gIH1cblxuICBnZXRGb3JtQ29udHJvbChpbmRleDogbnVtYmVyLCBmaWVsZDogc3RyaW5nKSB7XG4gICAgY29uc3QgY29udHJvbCA9IHRoaXMuZWRpdEZvcm1zLmdldChpbmRleCk/LmdldChmaWVsZCkgYXMgRm9ybUNvbnRyb2w8YW55PjtcbiAgICAvLyBjb25zb2xlLmxvZyhjb250cm9sKTtcbiAgICByZXR1cm4gY29udHJvbDtcbiAgfVxuXG4gIGlzUm93VmFsaWQoaW5kZXg6IG51bWJlcik6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmVkaXRGb3Jtcy5nZXQoaW5kZXgpPy52YWxpZCB8fCBmYWxzZTtcbiAgfVxuXG4gIG92ZXJyaWRlIGxvYWRJbml0aWFsRGF0YSgpIHtcbiAgICB0cnkge1xuICAgICAgdGhpcy5mYWNhZGUubG9hZFJlcXVlc3RzKCkudGhlbigoKSA9PiB7XG4gICAgICAgIHRoaXMuZmFjYWRlLmxvYWRPcGVyYXRpb25zKCk7XG4gICAgICB9KTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgLy8gSGFuZGxlIGVycm9yXG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGdldENhcmREYXRhQnlJZGVudGlmaWVyKGNvZGU6IHN0cmluZyk6IENhcmREYXRhIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5jYXJkRGF0YSgpLmZpbmQoKHsgZGF0YSB9KSA9PiBkYXRhLmRhdGEuQ29kZSA9PT0gY29kZSk7XG4gIH1cblxuICBsb2FkTW9yZSgpIHtcbiAgICB0aGlzLmZhY2FkZS5sb2FkTW9yZSgpO1xuICB9XG5cbiAgYXN5bmMgb25TYXZlKGRhdGE6IFBhcnRpYWw8V29ya2Zsb3c+KSB7XG4gICAgY29uc3QgcGF5bG9hZCA9IHtcbiAgICAgIC4uLnRoaXMuY3VycmVudERhdGE/LmRhdGEsXG4gICAgICAuLi5kYXRhLFxuICAgIH0gYXMgV29ya2Zsb3c7XG4gICAgaWYgKHBheWxvYWQuRGF0YVN0YXRlID09PSBPYmplY3RTdGF0ZS5OZXcpIHtcbiAgICAgIGF3YWl0IHRoaXMuZmFjYWRlLmFkZFJlcXVlc3QocGF5bG9hZCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGF3YWl0IHRoaXMuZmFjYWRlLnVwZGF0ZVJlcXVlc3Qoe1xuICAgICAgICAuLi5wYXlsb2FkLFxuICAgICAgICBEYXRhU3RhdGU6IE9iamVjdFN0YXRlLkNoYW5nZWQsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBjb21taXRSb3dDaGFuZ2UoXG4gICAgcm93SW5kZXg6IG51bWJlcixcbiAgICByb3c6IFdvcmtmbG93LFxuICAgIHBvc3RDb21taXQ/OiAoKSA9PiB2b2lkXG4gICkge1xuICAgIGNvbnN0IGRhdGEgPSB0aGlzLmVkaXRGb3Jtcy5nZXQocm93SW5kZXgpPy52YWx1ZSBhcyBQYXJ0aWFsPFdvcmtmbG93PjtcbiAgICBpZiAoZGF0YSkge1xuICAgICAgY29uc3QgZGF0dW0gPSB7XG4gICAgICAgIC4uLnJvdyxcbiAgICAgICAgLi4uZGF0YSxcbiAgICAgIH0gYXMgV29ya2Zsb3c7XG4gICAgICBpZiAoZGF0dW0uRGF0YVN0YXRlID09PSBPYmplY3RTdGF0ZS5OZXcpIHtcbiAgICAgICAgdGhpcy5mYWNhZGUuYWRkUmVxdWVzdChkYXR1bSkudGhlbigoKSA9PiB7XG4gICAgICAgICAgcG9zdENvbW1pdD8uKCk7XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZGF0dW0uRGF0YVN0YXRlID0gT2JqZWN0U3RhdGUuQ2hhbmdlZDtcbiAgICAgICAgdGhpcy5mYWNhZGUudXBkYXRlUmVxdWVzdChkYXR1bSkudGhlbigoKSA9PiB7XG4gICAgICAgICAgcG9zdENvbW1pdD8uKCk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG9uRmlsdGVyU2V0KGV2ZW50OiBJRGF0YUZpbHRlcltdKSB7XG4gICAgdGhpcy5maWx0ZXJBcnJheSA9IGV2ZW50O1xuICAgIHRoaXMuY29uZmlnLmZpbHRlck9wdGlvbnMgPSBldmVudDtcbiAgICB0aGlzLmZhY2FkZS5maWx0ZXIoZXZlbnQpLnRoZW4oKCkgPT4ge1xuICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfSk7XG4gIH1cblxuICBoYW5kbGVTZWFyY2goZXZlbnQ6IHsga2V5OiBzdHJpbmc7IHZhbHVlOiBzdHJpbmcgfSkge1xuICAgIHRoaXMuZmFjYWRlLnNlYXJjaChldmVudC52YWx1ZSk7XG4gIH1cblxuICBvdmVycmlkZSBvblN0YXRlQ2hhbmdlKGV2ZW50OiB7IGtleTogc3RyaW5nOyB2YWx1ZTogYm9vbGVhbiB9KTogdm9pZCB7XG4gICAgc3dpdGNoIChldmVudC5rZXkpIHtcbiAgICAgIGNhc2UgJ2NyZWF0ZSc6IHtcbiAgICAgICAgY29uc3QgbmV3Rm9ybTogV29ya2Zsb3cgPSB7XG4gICAgICAgICAgTmFtZTogJycsXG4gICAgICAgICAgRGVzY3JpcHRpb246ICcnLFxuICAgICAgICAgIFN0YWdlRW50cnlSdWxlOiAnJyxcbiAgICAgICAgICBBc3NpZ25tZW50VHlwZTogVGFza0Fzc2lnbm1lbnRUeXBlLkF1dG9Sb3V0ZSxcbiAgICAgICAgICBUZW5hbnRJZDogJycsXG4gICAgICAgICAgU2VydmljZU5hbWU6ICcnLFxuICAgICAgICAgIGlkOiBjcnlwdG8ucmFuZG9tVVVJRCgpLFxuICAgICAgICAgIElkOiAnJyxcbiAgICAgICAgICBDcmVhdGVkQXQ6IG5ldyBEYXRlKCksXG4gICAgICAgICAgVXBkYXRlZEF0OiBuZXcgRGF0ZSgpLFxuICAgICAgICAgIERhdGFTdGF0ZTogT2JqZWN0U3RhdGUuTmV3LFxuICAgICAgICAgIENvZGU6ICcnLFxuICAgICAgICAgIFN0YXR1czogU3RhdHVzLkFjdGl2ZSxcbiAgICAgICAgICBBY3Rpb25zOiBbXSxcbiAgICAgICAgICBMYW5lczogW10sXG4gICAgICAgICAgU3RhZ2VzOiBbXSxcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5kYXRhLnVwZGF0ZSgocHJldikgPT4gW25ld0Zvcm0sIC4uLnByZXZdKTtcbiAgICAgICAgdGhpcy5kYXRhVmlldy5pc1RhYmxlVmlldyA9IGZhbHNlO1xuXG4gICAgICAgIC8vIENhcmREYXRhVmlld0NvbXBvbmVudCBtYXRjaGVzIGNsaWNrcyBhZ2FpbnN0IGl0cyBjYXJkRGF0YUxpc3QgaW5wdXQsXG4gICAgICAgIC8vIHdoaWNoIG9ubHkgcmVjZWl2ZXMgdGhlIG5ldyBjYXJkIGFmdGVyIGEgY2hhbmdlLWRldGVjdGlvbiBwYXNzLiBGb3JjZVxuICAgICAgICAvLyBvbmUgc28gdGhlIGZyZXNobHkgYWRkZWQgY2FyZCBpcyByZXNvbHZhYmxlIGJlZm9yZSB3ZSBvcGVuIGl0LlxuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG5cbiAgICAgICAgY29uc3QgY2FyZCA9IHRoaXMuY2FyZERhdGEoKS5maW5kKChjKSA9PiBjLmRhdGEgPT09IG5ld0Zvcm0pO1xuICAgICAgICBpZiAoY2FyZCkge1xuICAgICAgICAgIHRoaXMuY3VycmVudERhdGEgPSB0aGlzLmNhcmREYXRhVmlldy5vbkl0ZW1DbGljayhjYXJkKTtcbiAgICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBhc3luYyBsb2FkRGF0YShyYW5nZTogeyBza2lwOiBudW1iZXI7IGxpbWl0OiBudW1iZXIgfSkge1xuICAgIGNvbnN0IGRhdGEgPSBhd2FpdCB0aGlzLmZhY2FkZS5sb2FkRGF0YShyYW5nZS5za2lwLCByYW5nZS5saW1pdCk7XG4gICAgcmV0dXJuIGRhdGEgPz8gW107XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJzcGFjZS15LThcIj5cbiAgPHZlcmJlbi1kYXRhLXZpZXcgI3ZkdiBbdmlld1N0YXRlXT1cIntcbiAgICAgIGlzU2VhcmNoOiB0cnVlLFxuICAgICAgaXNDb2x1bW46IHRydWUsXG4gICAgICBpc0ZpbHRlcjogdHJ1ZSxcbiAgICAgIGlzU29ydDogdHJ1ZSxcbiAgICAgIGlzRXhwb3J0OiAhIXBlcm1pc3Npb25Db25maWcoKT8uQWN0aW9ucz8uWydFeHBvcnQnXSxcbiAgICAgIGlzU2VsZWN0OiB0cnVlLFxuICAgICAgaXNDcmVhdGU6ICEhcGVybWlzc2lvbkNvbmZpZygpPy5BY3Rpb25zPy5bJ0NyZWF0ZSddLFxuICAgICAgaXNUb2dnbGU6IHRydWUsXG4gICAgfVwiIFtidXR0b25DbGFzc109XCInbXktY3VzdG9tLWJ1dHRvbi1jbGFzcydcIiBbaWNvbkNsYXNzXT1cIidteS1pY29uLWNsYXNzJ1wiXG4gICAgW2FjdGl2ZUljb25DbGFzc109XCInbXktYWN0aXZlLWljb24tY2xhc3MnXCIgW3NlbGVjdGVkQ29sdW1uQ291bnRdPVwic2VsZWN0ZWRDb2x1bW5Db3VudFwiXG4gICAgW3NlbGVjdGVkU29ydENvdW50XT1cInNlbGVjdGVkU29ydENvdW50XCIgW3NlbGVjdGVkRmlsdGVyVGFibGVDb3VudF09XCJzZWxlY3RlZEZpbHRlclRhYmxlQ291bnRcIlxuICAgICh2aWV3Q2hhbmdlKT1cIm9uVmlld0NoYW5nZSgkZXZlbnQpXCIgKHN0YXRlQ2hhbmdlKT1cIm9uU3RhdGVDaGFuZ2UoJGV2ZW50KVwiIChvblNlYXJjaENoYW5nZSk9XCJoYW5kbGVTZWFyY2goJGV2ZW50KVwiPlxuICAgIDxkaXYgdGFibGUtY29udGVudD5cbiAgICAgIDxsaWItZGF0YS10YWJsZSBbZGF0YV09XCJkYXRhKClcIiBbY29sdW1uc109XCJjb25maWcuY29sdW1uc1wiIFtzdHlsZUNvbmZpZ109XCJzdHlsZXNcIlxuICAgICAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cIm9uU2VsZWN0aW9uQ2hhbmdlKCRldmVudClcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBsaWJDb2x1bW49XCJuYW1lXCI+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNjZWxsRWRpdCBsZXQtcm93SW5kZXg9XCJyb3dJbmRleFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndpZHRoLW1heFwiPlxuICAgICAgICAgICAgICA8dmVyYmVuYS1pbnB1dCBbZm9ybUNvbnRyb2xdPVwiZ2V0Rm9ybUNvbnRyb2wocm93SW5kZXgsICdOYW1lJylcIj48L3ZlcmJlbmEtaW5wdXQ+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8bmctY29udGFpbmVyIGxpYkNvbHVtbj1cImRlc2NyaXB0aW9uXCI+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNjZWxsRWRpdCBsZXQtcm93SW5kZXg9XCJyb3dJbmRleFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndpZHRoLW1heFwiPlxuICAgICAgICAgICAgICA8dmVyYmVuYS1pbnB1dCBbZm9ybUNvbnRyb2xdPVwiZ2V0Rm9ybUNvbnRyb2wocm93SW5kZXgsICdEZXNjcmlwdGlvbicpXCI+PC92ZXJiZW5hLWlucHV0PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBsaWJDb2x1bW49XCJhc3NpZ25tZW50LXR5cGVcIj5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgI2NlbGxFZGl0IGxldC1yb3dJbmRleD1cInJvd0luZGV4XCI+XG4gICAgICAgICAgICA8dmVyYmVuLWRyb3AtZG93biBzdHlsZUNsYXNzPVwidy1mdWxsXCIgd2lkdGg9XCIxMDAlXCIgW211bHRpc2VsZWN0XT1cImZhbHNlXCIgcGxhY2Vob2xkZXI9XCJTZWxlY3RcIlxuICAgICAgICAgICAgICBbb3B0aW9uc109XCJhc3NpZ25tZW50VHlwZXNcIiBbZm9ybUNvbnRyb2xdPVwiZ2V0Rm9ybUNvbnRyb2wocm93SW5kZXgsICdBc3NpZ25tZW50VHlwZScpXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIj5cbiAgICAgICAgICAgIDwvdmVyYmVuLWRyb3AtZG93bj5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8bmctY29udGFpbmVyIGxpYkNvbHVtbj1cIm9wZXJhdGlvblwiPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjY2VsbEVkaXQgbGV0LXJvd0luZGV4PVwicm93SW5kZXhcIj5cbiAgICAgICAgICAgIDwhLS0gPHZlcmJlbmEtaW5wdXRcbiAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cImdldEZvcm1Db250cm9sKHJvd0luZGV4LCAnT3BlcmF0aW9uJylcIlxuICAgICAgICAgICAgPjwvdmVyYmVuYS1pbnB1dD4gLS0+XG4gICAgICAgICAgICA8dmVyYmVuLWRyb3AtZG93biBsYWJlbD1cIk9wZXJhdGlvblwiIHN0eWxlQ2xhc3M9XCJ3LWZ1bGxcIiB3aWR0aD1cIjEwMCVcIiBbbXVsdGlzZWxlY3RdPVwiZmFsc2VcIlxuICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlNlbGVjdFwiIFtvcHRpb25zXT1cIm9wZXJhdGlvbnMoKVwiIG9wdGlvbkxhYmVsPVwiRGVzY3JpcHRpb25cIiBvcHRpb25WYWx1ZT1cIkRlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgICAgaWQ9XCJvcGVyYXRpb25cIiBbZm9ybUNvbnRyb2xdPVwiZ2V0Rm9ybUNvbnRyb2wocm93SW5kZXgsICdPcGVyYXRpb24nKVwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCI+XG4gICAgICAgICAgICA8L3ZlcmJlbi1kcm9wLWRvd24+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBsaWJDb2x1bW49XCJzdGF0dXNcIj5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgI2NlbGwgbGV0LXZhbHVlPlxuICAgICAgICAgICAgPHZlcmJlbmEtYmFkZ2UgYm9yZGVyUmFkaXVzPVwiOXB4XCIgW2JnQ29sb3JdPVwidmFsdWUgPT0gJ0FjdGl2ZScgPyAndmFyKC0tdmJuLWNvbG9yLXN1Y2Nlc3MtYmcpJyA6ICcjRkZERkRGJ1wiXG4gICAgICAgICAgICAgIFt0ZXh0Q29sb3JdPVwidmFsdWUgPT0gJ0FjdGl2ZScgPyAndmFyKC0tdmJuLWNvbG9yLXN1Y2Nlc3MpJyA6ICd2YXIoLS12Ym4tY29sb3ItZXJyb3IpJ1wiIGZvbnRTaXplPVwiMTJweFwiIFt0ZXh0XT1cInZhbHVlXCJcbiAgICAgICAgICAgICAgW3BkXT1cIicycHggNnB4J1wiPjwvdmVyYmVuYS1iYWRnZT5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjY2VsbEVkaXQgbGV0LXJvd0luZGV4PVwicm93SW5kZXhcIj5cbiAgICAgICAgICAgIDx2ZXJiZW4tZHJvcC1kb3duIHN0eWxlQ2xhc3M9XCJ3LWZ1bGxcIiB3aWR0aD1cIjEwMCVcIiBbbXVsdGlzZWxlY3RdPVwiZmFsc2VcIiBwbGFjZWhvbGRlcj1cIk51bGxcIlxuICAgICAgICAgICAgICBbb3B0aW9uc109XCJzdGF0dXNlc1wiIFtmb3JtQ29udHJvbF09XCJnZXRGb3JtQ29udHJvbChyb3dJbmRleCwgJ1N0YXR1cycpXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIj5cbiAgICAgICAgICAgIDwvdmVyYmVuLWRyb3AtZG93bj5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8bmctY29udGFpbmVyIGxpYkNvbHVtbj1cImFjdGlvbnNcIj5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgI2NlbGwgbGV0LXZhbHVlIGxldC1kZWxldGVSb3c9XCJkZWxldGVSb3dcIiBsZXQtaXNFZGl0aW5nPVwiaXNFZGl0aW5nXCJcbiAgICAgICAgICAgIGxldC10b2dnbGVSb3dFZGl0PVwidG9nZ2xlUm93RWRpdFwiIGxldC1yb3c9XCJyb3dcIiBsZXQtcm93SW5kZXg9XCJyb3dJbmRleFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZ2FwLTZcIj5cbiAgICAgICAgICAgICAgPCEtLSBAaWYgKCEhcGVybWlzc2lvbkNvbmZpZygpPy5BY3Rpb25zPy5bJ0Rlc2lnbiddKSB7IC0tPlxuICAgICAgICAgICAgICA8dmVyYmVuLXN2ZyAoY2xpY2spPVwiXG4gICAgICAgICAgICAgICAgICAgIGVkaXRGb3Jtcy5zZXQocm93SW5kZXgsIGdlbmVyYXRlRm9ybUdyb3VwKHJvdykpO1xuICAgICAgICAgICAgICAgICAgICB0b2dnbGVSb3dFZGl0KClcbiAgICAgICAgICAgICAgICAgIFwiIGljb249XCJlZGl0XCIgW3dpZHRoXT1cIjE1XCIgW2hlaWdodF09XCIxNVwiIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIj48L3ZlcmJlbi1zdmc+XG4gICAgICAgICAgICAgIDwhLS0gfSAtLT5cblxuICAgICAgICAgICAgICA8dmVyYmVuLXN2ZyBpY29uPVwiZGVsZXRlXCIgW3dpZHRoXT1cIjE1XCIgW2hlaWdodF09XCIxNVwiIChjbGljayk9XCJkZWxldGVSb3coKVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiPjwvdmVyYmVuLXN2Zz5cblxuICAgICAgICAgICAgICBAaWYgKCEhcGVybWlzc2lvbkNvbmZpZygpPy5BY3Rpb25zPy5bJ0Rlc2lnbiddKSB7XG4gICAgICAgICAgICAgIDxhIFtyb3V0ZXJMaW5rXT1cIltkZXNpZ25lclVybCgpLCB2YWx1ZV1cIj5cbiAgICAgICAgICAgICAgICA8dmVyYmVuLXN2ZyBpY29uPVwiZGVzaWduZXJcIiBbd2lkdGhdPVwiMTVcIiBbaGVpZ2h0XT1cIjE1XCIgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiPjwvdmVyYmVuLXN2Zz5cbiAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNjZWxsRWRpdCBsZXQtdmFsdWUgbGV0LWRlbGV0ZVJvdz1cImRlbGV0ZVJvd1wiIGxldC1pc0VkaXRpbmc9XCJpc0VkaXRpbmdcIlxuICAgICAgICAgICAgbGV0LXRvZ2dsZVJvd0VkaXQ9XCJ0b2dnbGVSb3dFZGl0XCIgbGV0LXJvdz1cInJvd1wiIGxldC1yb3dJbmRleD1cInJvd0luZGV4XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBnYXAtNlwiPlxuICAgICAgICAgICAgICA8dmVyYmVuLXN2ZyAoY2xpY2spPVwiY29tbWl0Um93Q2hhbmdlKHJvd0luZGV4LCByb3csIHRvZ2dsZVJvd0VkaXQpXCIgaWNvbj1cInRpY2tcIiBbd2lkdGhdPVwiMTVcIiBbaGVpZ2h0XT1cIjE1XCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImN1cnNvci1wb2ludGVyXCI+PC92ZXJiZW4tc3ZnPlxuXG4gICAgICAgICAgICAgIDx2ZXJiZW4tc3ZnIGljb249XCJkZWxldGVcIiBbd2lkdGhdPVwiMTVcIiBbaGVpZ2h0XT1cIjE1XCIgKGNsaWNrKT1cInRvZ2dsZVJvd0VkaXQoKVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiPjwvdmVyYmVuLXN2Zz5cblxuICAgICAgICAgICAgICA8dmVyYmVuLXN2ZyBpY29uPVwiY2FyZFZpZXdBbHRcIiBbd2lkdGhdPVwiMTVcIiBbaGVpZ2h0XT1cIjE1XCIgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImdvVG9DYXJkVmlldyh2YWx1ZSlcIj48L3ZlcmJlbi1zdmc+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbGliLWRhdGEtdGFibGU+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNhcmQtY29udGVudD5cbiAgICAgIDx2ZXJiZW4tY2FyZC1kYXRhLXZpZXcgYm9yZGVyUmFkaXVzPVwiMTJweFwiIChsb2FkTW9yZUNsaWNrKT1cImxvYWRNb3JlKClcIiAjdmRjdiBkYXRhSWQ9XCJDb2RlXCIgYm9yZGVyPVwiNXB4XCJcbiAgICAgICAgW2NhcmREYXRhTGlzdF09XCJjYXJkRGF0YSgpXCIgcmJnQ29sb3I9XCJ2YXIoLS12Ym4tY29sb3Itc3VyZmFjZS1hbHQpXCIgbWc9XCIyMHB4XCI+XG4gICAgICAgIDx2ZXJiZW4tbGVmdC1jYXJkLWRhdGEtdmlldyBjbGFzcz1cInNwYWNlLXktN1wiPlxuICAgICAgICAgIDx2ZXJiZW4tbGVmdC1jYXJkLWRhdGEgI3ZsY2QgW3BhcmVudF09XCJ2ZGN2XCIgZGF0YUlkPVwiQ29kZVwiXG4gICAgICAgICAgICBjbGFzcz1cImJnLXNlY29uZGFyeS0xMDAgcm91bmRlZC14bCBib3JkZXItcHJpbWFyeSBib3JkZXItWzFweF1cIiBbY2FyZERhdGFMaXN0XT1cImNhcmREYXRhKClcIj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjY2FyZCBsZXQtaXRlbT5cbiAgICAgICAgICAgICAgPGRpdiAoY2xpY2spPVwiY3VycmVudERhdGEgPSB2ZGN2Lm9uSXRlbUNsaWNrKGl0ZW0pXCIgY2xhc3M9XCJmbGV4XCI+XG4gICAgICAgICAgICAgICAgPGRpdiAoY2xpY2spPVwiY3VycmVudERhdGEgPSB2ZGN2Lm9uSXRlbUNsaWNrKGl0ZW0pXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmxleCBjdXJzb3ItcG9pbnRlciB3LWZ1bGwgYmctc2Vjb25kYXJ5IHJvdW5kZWQteGxcIj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3LTMgcm91bmRlZC14bCByb3VuZGVkLXRyLW5vbmUgcm91bmRlZC1ici1ub25lXCIgW25nQ2xhc3NdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgaXRlbS5zZWxlY3RlZCA/ICdiZy1wcmltYXJ5JyA6ICdiZy1zZWNvbmRhcnktMjAwJ1xuICAgICAgICAgICAgICAgICAgICBcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4LTEgZmxleCBqdXN0aWZ5LWJldHdlZW4gZ2FwLXktMiBnYXAteC00IHAtNFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC0xIGZsZXggZmxleC1jb2wganVzdGlmeS1iZXR3ZWVuIHNwYWNlLXktMlwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZm9udC1zZW1pYm9sZCB0ZXh0LVt2YXIoLS12Ym4tY29sb3Itb24tcHJpbWFyeSldIGZsZXgtMSB0cnVuY2F0ZSBsaW5lLWNsYW1wLTFcIj57eyBpdGVtLnRpdGxlIH19PC9zcGFuPlxuXG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gaWQ9XCJyb2xlXCIgY2xhc3M9XCJ0ZXh0LXNtIGxpbmUtY2xhbXAtMSB0cnVuY2F0ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0uZGF0YT8uT3BlcmF0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cblxuICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPHAgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBteS0xXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwicGhvbmVcIiBjbGFzcz1cInRleHQtWzEwcHhdIGZvbnQtbGlnaHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICA+QXNzaWdubWVudDo8L2xhYmVsXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBpZD1cInBob25lXCIgY2xhc3M9XCJ0ZXh0LXNtIHRydW5jYXRlXCI+e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5kYXRhLkFzc2lnbm1lbnRUeXBlXG4gICAgICAgICAgICAgICAgICAgICAgICB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICA8L3A+IC0tPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JpZCBnYXAteS0xIHctZml0IGp1c3RpZnktaXRlbXMtZW5kXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPCEtLSA8cCBjbGFzcz1cImdyaWRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGlkPVwicm9sZVwiIGNsYXNzPVwidGV4dC1zbSBmb250LW1lZGl1bSBsaW5lLWNsYW1wLTEgdHJ1bmNhdGVcIj57e1xuICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtLmRhdGE/Lk9wZXJhdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgPC9wPiAtLT5cbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBpZD1cInBob25lXCIgY2xhc3M9XCJ0ZXh0LXNtXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtLmRhdGEuQXNzaWdubWVudFR5cGUgfX1cbiAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBnYXAtNCBpdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoISFwZXJtaXNzaW9uQ29uZmlnKCk/LkFjdGlvbnM/LlsnRGVzaWduJ10gJiYgaXRlbS5kYXRhPy5Db2RlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8YSBbcm91dGVyTGlua109XCJbZGVzaWduZXJVcmwoKSwgaXRlbS5kYXRhLkNvZGVdXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDx2ZXJiZW4tc3ZnIGljb249XCJkZXNpZ25lclwiIFt3aWR0aF09XCIxNVwiIFtoZWlnaHRdPVwiMTVcIiBjbGFzcz1cImN1cnNvci1wb2ludGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCI+PC92ZXJiZW4tc3ZnPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICA8dmVyYmVuYS1iYWRnZSBib3JkZXJSYWRpdXM9XCI5cHhcIiBbYmdDb2xvcl09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtLmRhdGEuU3RhdHVzID09ICdBY3RpdmUnID8gJ3ZhcigtLXZibi1jb2xvci1zdWNjZXNzLWJnKScgOiAnI0ZGREZERidcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCIgW3RleHRDb2xvcl09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtLmRhdGEuU3RhdHVzID09ICdBY3RpdmUnID8gJ3ZhcigtLXZibi1jb2xvci1zdWNjZXNzKScgOiAndmFyKC0tdmJuLWNvbG9yLWVycm9yKSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCIgZm9udFNpemU9XCIxMnB4XCIgW3RleHRdPVwiaXRlbS5kYXRhLlN0YXR1c1wiIFtwZF09XCInMnB4IDZweCdcIj48L3ZlcmJlbmEtYmFkZ2U+XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICA8L3ZlcmJlbi1sZWZ0LWNhcmQtZGF0YT5cbiAgICAgICAgPC92ZXJiZW4tbGVmdC1jYXJkLWRhdGEtdmlldz5cblxuICAgICAgICA8dmVyYmVuLXJpZ2h0LWNhcmQtZGF0YS12aWV3PlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjcGFyZW50PlxuICAgICAgICAgICAgPGxpYi13b3JrZmxvdy1mb3JtIFtjdXJyZW50RGF0YV09XCJjdXJyZW50RGF0YVwiIChzd2l0Y2hWaWV3KT1cInZkdi50b2dnbGVWaWV3KClcIiAob25TYXZlKT1cIm9uU2F2ZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgW29wZXJhdGlvbnNdPVwib3BlcmF0aW9ucygpXCIgW2Rlc2lnbmVyVXJsXT1cImRlc2lnbmVyVXJsKClcIj48L2xpYi13b3JrZmxvdy1mb3JtPlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvdmVyYmVuLXJpZ2h0LWNhcmQtZGF0YS12aWV3PlxuXG4gICAgICAgIDx2ZXJiZW4tY2FyZC1kYXRhLXZpZXctZm9vdGVyIGNsYXNzPVwidy1mdWxsXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZ2FwLTIgaXRlbXMtY2VudGVyIGp1c3RpZnktZW5kXCI+XG4gICAgICAgICAgICA8IS0tIDx2ZXJiZW5hLWJ1dHRvblxuICAgICAgICAgICAgICAqbmdJZj1cIiF2ZGN2Lmhhc0N1cnJlbnRJdGVtKClcIlxuICAgICAgICAgICAgICBbZm9udFdlaWdodF09XCInYm9sZCdcIlxuICAgICAgICAgICAgICBbYmdDb2xvcl09XCIndmFyKC0tdmJuLWNvbG9yLXRleHQtbXV0ZWQpJ1wiXG4gICAgICAgICAgICAgIFtib3JkZXJSYWRpdXNdPVwiJzRweCdcIlxuICAgICAgICAgICAgICBbdGV4dENvbG9yXT1cIid2YXIoLS12Ym4tY29sb3Itc3VyZmFjZSknXCJcbiAgICAgICAgICAgICAgW3BkXT1cIic5Ljc5cHggMzcuMjhweCdcIlxuICAgICAgICAgICAgICBbdGV4dF09XCInRGVsZXRlJ1wiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8L3ZlcmJlbmEtYnV0dG9uPiAtLT5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IHt7XG4gICAgICAgICAgICAgICAgdmRjdi5oYXNDdXJyZW50SXRlbSgpID8gJ2ZsZXgtMScgOiAnJ1xuICAgICAgICAgICAgICB9fSBqdXN0aWZ5LWVuZCBpdGVtcy1jZW50ZXIgZ2FwLTVcIj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwYWdpbmF0b3ItdGV4dFwiPnt7IGNhcmREYXRhKCkubGVuZ3RoIH19IHJlY29yZHMgbG9hZGVkPC9zcGFuPlxuICAgICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJsb2FkTW9yZSgpXCIgY2xhc3M9XCJsb2FkLW1vcmUgdmlldy1saW5rcyB0ZXh0LVt2YXIoLS12Ym4tY29sb3ItYm9yZGVyLWZvY3VzKV0gdW5kZXJsaW5lXCI+XG4gICAgICAgICAgICAgICAgTG9hZCBtb3JlXG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvdmVyYmVuLWNhcmQtZGF0YS12aWV3LWZvb3Rlcj5cbiAgICAgIDwvdmVyYmVuLWNhcmQtZGF0YS12aWV3PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjb2x1bW4tY29udGVudD5cbiAgICAgIDwhLS0gPHZlcmJlbi12aXNpYmxlLWNvbHVtblxuICAgICAgICAoY29sdW1uc1VwZGF0ZWQpPVwib25Db2x1bW5zVXBkYXRlZCgkZXZlbnQpXCJcbiAgICAgICAgW2JvcmRlcl09XCInMXB4IHNvbGlkIHZhcigtLXZibi1jb2xvci1wcmltYXJ5KSdcIlxuICAgICAgICBib3JkZXJSYWRpdXM9XCIxMHB4XCJcbiAgICAgICAgYm94U2hhZG93PVwiMnB4IDJweCAycHggMHB4IHNpbHZlclwiXG4gICAgICAgIGJnQ29sb3I9XCJ3aGl0ZVwiXG4gICAgICAgIHdpZHRoPVwiNDAwcHhcIlxuICAgICAgICB0ZXh0Q29sb3I9XCJibGFja1wiXG4gICAgICAgIHBkPVwiMXJlbVwiXG4gICAgICAgIHByaW1hcnlDb2xvcj1cInZhcigtLXZibi1jb2xvci1wcmltYXJ5KVwiXG4gICAgICAgIHNlY29uZGFyeUNvbG9yPVwidmFyKC0tdmJuLWNvbG9yLWJvcmRlci1mb2N1cylcIlxuICAgICAgICBbY29sdW1uc109XCJ2aXNpYmxlQ29sdW1uc1wiXG4gICAgICAgIFtkaXNwbGF5ZWRDb2x1bW5zXT1cIjVcIlxuICAgICAgPjwvdmVyYmVuLXZpc2libGUtY29sdW1uPiAtLT5cblxuICAgICAgPGxpYi1kYXRhLWNvbHVtbnMgW2NvbHVtbnNdPVwiY29uZmlnLmNvbHVtbnNcIiAoY29sdW1uc1VwZGF0ZWQpPVwib25Db2x1bW5zVXBkYXRlZCgkZXZlbnQpXCI+PC9saWItZGF0YS1jb2x1bW5zPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgZmlsdGVyLWNvbnRlbnQ+XG4gICAgICA8dmVyYmVuLXRhYmxlLWZpbHRlciAoZmlsdGVyc0FwcGxpZWQpPVwib25GaWx0ZXJTZXQoJGV2ZW50KVwiIFtib3JkZXJdPVwiJzFweCBzb2xpZCB2YXIoLS12Ym4tY29sb3ItcHJpbWFyeSknXCJcbiAgICAgICAgYm9yZGVyUmFkaXVzPVwiMTBweFwiIGJveFNoYWRvdz1cIjJweCAycHggMnB4IDBweCBzaWx2ZXJcIiBiZ0NvbG9yPVwid2hpdGVcIiB3aWR0aD1cIjQyMHB4XCIgdGV4dENvbG9yPVwiYmxhY2tcIiBwZD1cIjFyZW1cIlxuICAgICAgICBwcmltYXJ5Q29sb3I9XCJ2YXIoLS12Ym4tY29sb3ItcHJpbWFyeSlcIiBzZWNvbmRhcnlDb2xvcj1cInZhcigtLXZibi1jb2xvci1ib3JkZXItZm9jdXMpXCIgdGVydGlhcnlDb2xvcj1cInZhcigtLXZibi1jb2xvci1vbi1wcmltYXJ5KVwiIFtmaWx0ZXJPcHRpb25zXT1cImZpbHRlckFycmF5XCJcbiAgICAgICAgW21heEZpbHRlckxlbmd0aF09XCIzXCI+PC92ZXJiZW4tdGFibGUtZmlsdGVyPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgc29ydC1jb250ZW50PlxuICAgICAgPCEtLSA8dmVyYmVuLXNvcnQtdGFibGVcbiAgICAgICAgKHNlbGVjdGVkT3B0aW9ucyk9XCJvblNvcnRVcGRhdGVkKCRldmVudClcIlxuICAgICAgICBbYm9yZGVyXT1cIicxcHggc29saWQgdmFyKC0tdmJuLWNvbG9yLXByaW1hcnkpJ1wiXG4gICAgICAgIGJvcmRlclJhZGl1cz1cIjEwcHhcIlxuICAgICAgICBib3hTaGFkb3c9XCIycHggMnB4IDJweCAwcHggc2lsdmVyXCJcbiAgICAgICAgYmdDb2xvcj1cIndoaXRlXCJcbiAgICAgICAgd2lkdGg9XCI0MDBweFwiXG4gICAgICAgIHRleHRDb2xvcj1cImJsYWNrXCJcbiAgICAgICAgcGQ9XCIxcmVtXCJcbiAgICAgICAgcHJpbWFyeUNvbG9yPVwidmFyKC0tdmJuLWNvbG9yLXByaW1hcnkpXCJcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3I9XCJ2YXIoLS12Ym4tY29sb3ItYm9yZGVyLWZvY3VzKVwiXG4gICAgICAgIHRlcnRpYXJ5Q29sb3I9XCJ2YXIoLS12Ym4tY29sb3Itb24tcHJpbWFyeSlcIlxuICAgICAgICBbZW5hYmxlRHJhZ0FuZERyb3BdPVwidHJ1ZVwiXG4gICAgICAgIFtzb3J0T3B0aW9uc109XCJzb3J0T3B0aW9uc1wiXG4gICAgICA+PC92ZXJiZW4tc29ydC10YWJsZT4gLS0+XG4gICAgICA8bGliLWRhdGEtc29ydCBbY29sdW1uc109XCJjb25maWcuY29sdW1uc1wiIFtkYXRhXT1cImRhdGEoKVwiIChzb3J0QXBwbGllZCk9XCJvblNvcnRVcGRhdGVkKCRldmVudClcIj48L2xpYi1kYXRhLXNvcnQ+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBleHBvcnQtY29udGVudD5cbiAgICAgIDxsaWItZGF0YS14cG9ydCBbY29sdW1uc109XCJjb25maWcuY29sdW1uc1wiIFtkYXRhXT1cImRhdGEoKVwiIFtkYXRhUXVlcnlGdW5jdGlvbl09XCJsb2FkRGF0YVwiPlxuICAgICAgPC9saWItZGF0YS14cG9ydD5cbiAgICA8L2Rpdj5cbiAgPC92ZXJiZW4tZGF0YS12aWV3PlxuXG4gIDxkaXYgKm5nSWY9XCJ2ZHYuaXNUYWJsZVZpZXdcIiBjbGFzcz1cImZsZXggZ2FwLTIganVzdGlmeS1lbmRcIj5cbiAgICA8IS0tIDxkaXYgY2xhc3M9XCJtZXNzYWdlLWxvZy1idXR0b24tY29udGFpbmVyIGZsZXgganVzdGlmeS1iZXR3ZWVuXCI+XG4gICAgICA8dmVyYmVuYS1idXR0b25cbiAgICAgICAgW2ZvbnRXZWlnaHRdPVwiJ2JvbGQnXCJcbiAgICAgICAgW2JnQ29sb3JdPVwiJ3ZhcigtLXZibi1jb2xvci10ZXh0LW11dGVkKSdcIlxuICAgICAgICBbYm9yZGVyUmFkaXVzXT1cIic0cHgnXCJcbiAgICAgICAgW3RleHRDb2xvcl09XCIndmFyKC0tdmJuLWNvbG9yLXN1cmZhY2UpJ1wiXG4gICAgICAgIFtwZF09XCInOS43OXB4IDM3LjI4cHgnXCJcbiAgICAgICAgW3RleHRdPVwiJ0RlbGV0ZSdcIlxuICAgICAgPlxuICAgICAgPC92ZXJiZW5hLWJ1dHRvbj5cbiAgICA8L2Rpdj4gLS0+XG4gICAgPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1lbmQgaXRlbXMtY2VudGVyIGdhcC01XCI+XG4gICAgICA8c3BhbiBjbGFzcz1cInBhZ2luYXRvci10ZXh0XCI+e3sgY2FyZERhdGEoKS5sZW5ndGggfX0gcmVjb3JkcyBsb2FkZWQ8L3NwYW4+XG4gICAgICA8YnV0dG9uIChjbGljayk9XCJsb2FkTW9yZSgpXCIgY2xhc3M9XCJsb2FkLW1vcmUgdmlldy1saW5rcyB0ZXh0LVt2YXIoLS12Ym4tY29sb3ItYm9yZGVyLWZvY3VzKV0gdW5kZXJsaW5lXCI+XG4gICAgICAgIExvYWQgbW9yZVxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -288,10 +288,10 @@ export class WorkflowFacade {
288
288
  this.workflowState.setUpdating(false);
289
289
  }
290
290
  }
291
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: WorkflowFacade, deps: [{ token: i1.WorkflowsService }, { token: i2.WorkflowsState }, { token: i3.UtilService }], target: i0.ɵɵFactoryTarget.Injectable });
292
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: WorkflowFacade, providedIn: 'root' });
291
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: WorkflowFacade, deps: [{ token: i1.WorkflowsService }, { token: i2.WorkflowsState }, { token: i3.UtilService }], target: i0.ɵɵFactoryTarget.Injectable });
292
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: WorkflowFacade, providedIn: 'root' });
293
293
  }
294
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: WorkflowFacade, decorators: [{
294
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: WorkflowFacade, decorators: [{
295
295
  type: Injectable,
296
296
  args: [{
297
297
  providedIn: 'root',
@@ -6,11 +6,11 @@ import { RouterLink } from '@angular/router';
6
6
  import { WorkflowFormComponent } from './workflow-form/workflow-form.component';
7
7
  import * as i0 from "@angular/core";
8
8
  export class WorkflowsModule {
9
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: WorkflowsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
10
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: WorkflowsModule, declarations: [WorkflowsComponent, WorkflowFormComponent], imports: [CommonModule, SharedModule, RouterLink], exports: [WorkflowsComponent] });
11
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: WorkflowsModule, imports: [CommonModule, SharedModule] });
9
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: WorkflowsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
10
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: WorkflowsModule, declarations: [WorkflowsComponent, WorkflowFormComponent], imports: [CommonModule, SharedModule, RouterLink], exports: [WorkflowsComponent] });
11
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: WorkflowsModule, imports: [CommonModule, SharedModule] });
12
12
  }
13
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: WorkflowsModule, decorators: [{
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: WorkflowsModule, decorators: [{
14
14
  type: NgModule,
15
15
  args: [{
16
16
  declarations: [WorkflowsComponent, WorkflowFormComponent],
@@ -110,10 +110,10 @@ export class WorkflowsService {
110
110
  const url = `GetWorkflowOperations/${skip}/${limit}/${sortParam}/${sortOrder}`;
111
111
  return this.httpService.get(url);
112
112
  }
113
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: WorkflowsService, deps: [{ token: i1.HttpWebRequestService }, { token: i1.EnvironmentService }], target: i0.ɵɵFactoryTarget.Injectable });
114
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: WorkflowsService, providedIn: 'root' });
113
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: WorkflowsService, deps: [{ token: i1.HttpWebRequestService }, { token: i1.EnvironmentService }], target: i0.ɵɵFactoryTarget.Injectable });
114
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: WorkflowsService, providedIn: 'root' });
115
115
  }
116
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: WorkflowsService, decorators: [{
116
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: WorkflowsService, decorators: [{
117
117
  type: Injectable,
118
118
  args: [{
119
119
  providedIn: 'root',