vcomply-workflow-engine 6.0.48 → 6.0.49

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (68) hide show
  1. package/esm2022/lib/constants/mock.mjs +130 -0
  2. package/esm2022/lib/interfaces/frequency.interface.mjs +2 -0
  3. package/esm2022/lib/interfaces/responsibilty.interface.mjs +1 -1
  4. package/esm2022/lib/more-option/more-option.component.mjs +3 -46
  5. package/esm2022/lib/sharedComponents/document-section/document-section.component.mjs +9 -41
  6. package/esm2022/lib/sharedComponents/frequency/frequency-annual/frequency-annual.component.mjs +5 -1
  7. package/esm2022/lib/sharedComponents/frequency/frequency-biannual/frequency-biannual.component.mjs +5 -1
  8. package/esm2022/lib/sharedComponents/frequency/frequency-daily/frequency-daily.component.mjs +2 -1
  9. package/esm2022/lib/sharedComponents/frequency/frequency-monthly/frequency-monthly.component.mjs +6 -2
  10. package/esm2022/lib/sharedComponents/frequency/frequency-one-time/frequency-one-time.component.mjs +2 -1
  11. package/esm2022/lib/sharedComponents/frequency/frequency-ongoing/frequency-ongoing.component.mjs +3 -1
  12. package/esm2022/lib/sharedComponents/frequency/frequency-quarterly/frequency-quarterly.component.mjs +5 -1
  13. package/esm2022/lib/sharedComponents/frequency/frequency-random/frequency-random.component.mjs +3 -1
  14. package/esm2022/lib/sharedComponents/frequency/frequency-weekly/frequency-weekly.component.mjs +4 -2
  15. package/esm2022/lib/sharedComponents/frequency/frequency.service.mjs +185 -1
  16. package/esm2022/lib/sharedComponents/list-container/list-container.component.mjs +52 -0
  17. package/esm2022/lib/sharedComponents/policy-template/policy-template.module.mjs +5 -5
  18. package/esm2022/lib/sharedComponents/policy-template/select-template-list/select-template-list.component.mjs +33 -31
  19. package/esm2022/lib/sharedComponents/policy-template/template-list-table/template-list-table.component.mjs +3 -9
  20. package/esm2022/lib/sharedComponents/policy-template/view-policy/view-policy/view-policy.component.mjs +93 -0
  21. package/esm2022/lib/sharedComponents/policy-template/view-policy/view-policy.module.mjs +19 -0
  22. package/esm2022/lib/sharedComponents/program-list/constant.mjs +10 -0
  23. package/esm2022/lib/sharedComponents/program-list/interfaces/data-source.interface.mjs +2 -0
  24. package/esm2022/lib/sharedComponents/program-list/interfaces/list-item.interface.mjs +2 -0
  25. package/esm2022/lib/sharedComponents/program-list/interfaces/selection-predicate.interface.mjs +2 -0
  26. package/esm2022/lib/sharedComponents/program-list/program-list/program-list.component.mjs +162 -0
  27. package/esm2022/lib/sharedComponents/program-list/program-list.module.mjs +40 -0
  28. package/esm2022/lib/sharedComponents/program-list/services/list-utils.service.mjs +27 -0
  29. package/esm2022/lib/sharedComponents/program-list/services/program-list-api.service.mjs +32 -0
  30. package/esm2022/lib/workflow-compliance/workflow-compliance.component.mjs +303 -153
  31. package/esm2022/lib/workflow-engine-container/workflow-engine-container.component.mjs +5 -13
  32. package/esm2022/lib/workflow-engine.module.mjs +13 -6
  33. package/esm2022/lib/workflow-policy/workflow-policy.component.mjs +3 -3
  34. package/esm2022/lib/workflow-program/workflow-program.component.mjs +83 -240
  35. package/esm2022/lib/workflow-services/programs.service.mjs +28 -112
  36. package/esm2022/lib/workflow-services/responsibility.service.mjs +9 -9
  37. package/fesm2022/vcomply-workflow-engine.mjs +1220 -709
  38. package/fesm2022/vcomply-workflow-engine.mjs.map +1 -1
  39. package/lib/constants/mock.d.ts +15 -0
  40. package/lib/interfaces/frequency.interface.d.ts +37 -0
  41. package/lib/interfaces/responsibilty.interface.d.ts +1 -1
  42. package/lib/sharedComponents/document-section/document-section.component.d.ts +2 -10
  43. package/lib/sharedComponents/frequency/frequency.service.d.ts +30 -0
  44. package/lib/sharedComponents/list-container/list-container.component.d.ts +9 -0
  45. package/lib/sharedComponents/policy-template/policy-template.module.d.ts +2 -2
  46. package/lib/sharedComponents/policy-template/select-template-list/select-template-list.component.d.ts +5 -7
  47. package/lib/sharedComponents/policy-template/template-list-table/template-list-table.component.d.ts +3 -6
  48. package/lib/sharedComponents/policy-template/view-policy/view-policy/view-policy.component.d.ts +25 -0
  49. package/lib/sharedComponents/policy-template/view-policy/view-policy.module.d.ts +9 -0
  50. package/lib/sharedComponents/program-list/constant.d.ts +5 -0
  51. package/lib/sharedComponents/program-list/interfaces/data-source.interface.d.ts +4 -0
  52. package/lib/sharedComponents/program-list/interfaces/list-item.interface.d.ts +5 -0
  53. package/lib/sharedComponents/program-list/interfaces/selection-predicate.interface.d.ts +3 -0
  54. package/lib/sharedComponents/program-list/program-list/program-list.component.d.ts +42 -0
  55. package/lib/sharedComponents/program-list/program-list.module.d.ts +12 -0
  56. package/lib/sharedComponents/program-list/services/list-utils.service.d.ts +7 -0
  57. package/lib/sharedComponents/program-list/services/program-list-api.service.d.ts +14 -0
  58. package/lib/workflow-compliance/workflow-compliance.component.d.ts +33 -5
  59. package/lib/workflow-engine-container/workflow-engine-container.component.d.ts +2 -3
  60. package/lib/workflow-engine.module.d.ts +42 -40
  61. package/lib/workflow-program/workflow-program.component.d.ts +6 -4
  62. package/lib/workflow-risk/workflow-risk.component.d.ts +1 -1
  63. package/lib/workflow-services/programs.service.d.ts +13 -53
  64. package/package.json +1 -1
  65. package/esm2022/lib/workflow-policy/ms-word.constants.mjs +0 -21
  66. package/esm2022/lib/workflow-services/policy-api.service.mjs +0 -38
  67. package/lib/workflow-policy/ms-word.constants.d.ts +0 -20
  68. package/lib/workflow-services/policy-api.service.d.ts +0 -27
@@ -1,26 +1,24 @@
1
- import { Component, EventEmitter, Input, Optional, Output } from '@angular/core';
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
2
  import { forkJoin } from 'rxjs';
3
3
  import { NO_DATA_FOUND_IMAGE, NO_DATA_FOUND_MESSAGE, } from '../constants/template.constant';
4
4
  import * as i0 from "@angular/core";
5
5
  import * as i1 from "../services/template.service";
6
6
  import * as i2 from "../../../workflow-services/policy.service";
7
- import * as i3 from "../../../configurations";
8
- import * as i4 from "@angular/common";
9
- import * as i5 from "../../../ui-kit/tooltip/tooltip.directive";
10
- import * as i6 from "../../no-data/no-data.component";
11
- import * as i7 from "../../v-loader/loader-inline/loader-inline.component";
12
- import * as i8 from "../../../ui-kit/multi-select/cs-multiselect/cs-multiselect.component";
13
- import * as i9 from "../../../ui-kit/multi-select/cs-multiselect-option/cs-multiselect-option.component";
14
- import * as i10 from "../../floating-bar/floating-bar.component";
15
- import * as i11 from "@angular/forms";
16
- import * as i12 from "ngx-doc-viewer";
17
- import * as i13 from "../template-list-table/template-list-table.component";
18
- import * as i14 from "../template-pipes/search-template.pipe";
7
+ import * as i3 from "@angular/common";
8
+ import * as i4 from "../../../ui-kit/tooltip/tooltip.directive";
9
+ import * as i5 from "../../no-data/no-data.component";
10
+ import * as i6 from "../../v-loader/loader-inline/loader-inline.component";
11
+ import * as i7 from "../../../ui-kit/multi-select/cs-multiselect/cs-multiselect.component";
12
+ import * as i8 from "../../../ui-kit/multi-select/cs-multiselect-option/cs-multiselect-option.component";
13
+ import * as i9 from "../../floating-bar/floating-bar.component";
14
+ import * as i10 from "@angular/forms";
15
+ import * as i11 from "../view-policy/view-policy/view-policy.component";
16
+ import * as i12 from "../template-list-table/template-list-table.component";
17
+ import * as i13 from "../template-pipes/search-template.pipe";
19
18
  export class SelectTemplateListComponent {
20
- constructor(templateService, policyService, config) {
19
+ constructor(templateService, policyService) {
21
20
  this.templateService = templateService;
22
21
  this.policyService = policyService;
23
- this.fileUrl = '';
24
22
  this.animation = false;
25
23
  this.defaultTemplates = [];
26
24
  this.customTemplates = null;
@@ -38,11 +36,9 @@ export class SelectTemplateListComponent {
38
36
  this.NO_DATA_FOUND_MESSAGE = NO_DATA_FOUND_MESSAGE;
39
37
  this.selectedTemplate = [];
40
38
  this.isPreview = false;
39
+ this.docData = null;
41
40
  this.selectedCategoryId = [];
42
41
  this.onTemplateSelect = new EventEmitter();
43
- if (config) {
44
- this.env = config?.envConfig;
45
- }
46
42
  }
47
43
  ngOnInit() {
48
44
  this.setAnimation();
@@ -178,29 +174,35 @@ export class SelectTemplateListComponent {
178
174
  this.selectedTemplate = [];
179
175
  }
180
176
  onPreview(details) {
181
- this.loader = false;
182
- this.isPreview = true;
177
+ this.loader = true;
178
+ this.getPreviewData(details?._id);
183
179
  this.previewTemplate = details;
184
- this.fileUrl = `${this.env?.s3Url}${this.env?.s3Bucket}/${details?.s3DocxPath}`;
185
- console.log(this.fileUrl, 'fileUrl');
186
180
  }
187
181
  onClosePreview() {
188
182
  this.isPreview = false;
183
+ this.docData = null;
189
184
  this.previewTemplate = null;
190
185
  }
191
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SelectTemplateListComponent, deps: [{ token: i1.TemplateService }, { token: i2.PolicyService }, { token: i3.Configurations, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
192
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SelectTemplateListComponent, selector: "app-select-template-list", inputs: { selectedCategoryId: "selectedCategoryId", feature: "feature" }, outputs: { onTemplateSelect: "onTemplateSelect" }, ngImport: i0, template: "<div\n class=\"select-template-list\"\n [class.animate]=\"animation\"\n [class.withPreview]=\"isPreview\"\n>\n <ng-container *ngIf=\"!isPreview\">\n <div\n class=\"select-template-list-head vx-d-flex vx-align-center vx-justify-between vx-pl-4 vx-pr-4\"\n >\n <div class=\"vx-fs-14 vx-fw-500 vx-label-txt\">Select a Template</div>\n </div>\n <div class=\"select-template-list-body\">\n <app-loader-inline *ngIf=\"loader\"></app-loader-inline>\n\n <div class=\"select-template-list-tab vx-d-flex vx-align-center vx-mb-2\">\n <button\n (click)=\"switchTab('VCOMPLY')\"\n class=\"tab-btn vx-fs-11 vx-fw-500 vx-tt-uppercase vx-p-0 vx-pb-2 vx-m-0 vx-d-flex vx-align-center vx-lh-4\"\n [class.active]=\"currentTab === 'VCOMPLY'\"\n >\n VCOMPLY TEMPLATES\n </button>\n <button\n (click)=\"switchTab('USER_CREATED')\"\n class=\"tab-btn vx-fs-11 vx-fw-500 vx-tt-uppercase vx-p-0 vx-pb-2 vx-m-0 vx-d-flex vx-align-center vx-lh-4\"\n [class.active]=\"currentTab === 'USER_CREATED'\"\n >\n USER-CREATED TEMPLATES\n </button>\n </div>\n <div class=\"search-block vx-mb-2\">\n <i class=\"icons\">&#xe90b;</i>\n <input type=\"text\" [(ngModel)]=\"searchTemplate\" placeholder=\"Search\" />\n </div>\n <div class=\"body-top vx-d-flex vx-align-center vx-justify-end vx-mb-2\">\n <cs-multi-select\n (searchText)=\"searchCategory = $event\"\n [placeholder]=\"'Select Category'\"\n [value]=\"selectedCategory\"\n (applyFilter)=\"onApplyFilter($event)\"\n >\n <ng-container\n *ngFor=\"\n let eachCategory of categoryList\n | SearchByKeys : ['name'] : searchCategory\n \"\n >\n <cs-multi-select-option\n [appTooltip]=\"eachCategory?.name\"\n placement=\"bottom-left\"\n delay=\"0\"\n [value]=\"eachCategory?.item_id\"\n (change)=\"onSelectCategory(eachCategory, $event)\"\n [tooltipMandatory]=\"true\"\n >\n {{ eachCategory?.name }}\n </cs-multi-select-option>\n </ng-container>\n </cs-multi-select>\n </div>\n <div class=\"body-inner vx-mb-1\">\n <ng-container *ngIf=\"!loader\">\n <ng-container\n *ngIf=\"\n templateList\n | SearchByKeys\n : ['name', 'categoryDetails']\n : searchTemplate as allTemplate\n \"\n >\n <app-template-list-table\n *ngIf=\"allTemplate.length\"\n [templateList]=\"allTemplate\"\n [loader]=\"loader\"\n [categoryList]=\"categoryList\"\n [selectedTemplate]=\"selectedTemplate[0]\"\n [feature]=\"feature\"\n (onSort)=\"sortBy($event)\"\n (onSelectTemplate)=\"onSelectTemplate($event)\"\n (onPreview)=\"onPreview($event)\"\n ></app-template-list-table>\n <app-no-data\n *ngIf=\"!allTemplate?.length\"\n [noDataImage]=\"NO_DATA_FOUND_IMAGE\"\n [noDataText]=\"NO_DATA_FOUND_MESSAGE\"\n ></app-no-data>\n </ng-container>\n </ng-container>\n </div>\n\n <app-floating-bar\n (closeEvent)=\"save()\"\n (closeList)=\"close()\"\n [isDisabled]=\"selectedTemplate?.length === 0\"\n [selectedData]=\"selectedTemplate\"\n [displayElementKey]=\"'name'\"\n [singularText]=\"'Template Selected'\"\n (deleteEvent)=\"deleteEvent()\"\n >\n </app-floating-bar>\n </div>\n </ng-container>\n <ng-container *ngIf=\"isPreview\">\n <div\n class=\"select-template-list-head vx-d-flex vx-align-center vx-pl-4 vx-pr-4\"\n >\n <button\n (click)=\"onClosePreview()\"\n class=\"previewBtn vx-fs-14 vx-fw-500 vx-label-txt vx-p-0 vx-m-0 vx-d-flex vx-align-center\"\n >\n <i class=\"icons vx-mr-1\">&#xe91d;</i>Preview\n </button>\n <div\n class=\"template-name vx-fs-14 vx-ml-1\"\n [appTooltip]=\"previewTemplate?.name\"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"false\"\n >\n {{ previewTemplate?.name }}\n </div>\n </div>\n <div class=\"preview-template-body vx-d-flex vx-justify-center\">\n <app-loader-inline *ngIf=\"loader\"></app-loader-inline>\n\n <div *ngIf=\"!loader\" class=\"preview-template-body-inner\">\n <ngx-doc-viewer\n [url]=\"fileUrl\"\n viewer=\"office\"\n style=\"width: 100%; height: 100%; margin: 0\"\n disableContent=\"popout-hide\"\n >\n </ngx-doc-viewer>\n </div>\n </div>\n </ng-container>\n</div>\n", styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";@import\"https://cdn.v-comply.com/design-system/css/display/display.css\";@import\"https://cdn.v-comply.com/design-system/css/alignment/alignment.css\";@import\"https://cdn.v-comply.com/design-system/css/text/text.css\";@import\"https://cdn.v-comply.com/design-system/css/color/color.css\";@import\"https://cdn.v-comply.com/design-system/css/width/width.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-top.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-left.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-right.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-top.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-left.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-right.css\";::ng-deep .select-template-list{background:#fff;position:fixed;inset:0 500px 0 0;z-index:10}::ng-deep .select-template-list:before{background:#1e5dd3;content:\"\";position:absolute;top:0;left:0;right:0;width:100%;height:3px}::ng-deep .select-template-list:after{background:#f1f1f1;content:\"\";position:absolute;top:3px;right:0;width:1px;height:calc(100% - 3px)}::ng-deep .select-template-list.withPreview{background:#f2f2f5}::ng-deep .select-template-list-head{background:#fbfbfb;height:2.75rem;border-bottom:1px solid #f1f1f1}::ng-deep .select-template-list-head button.previewBtn{background:transparent;border-radius:0;border:none}::ng-deep .select-template-list-head .template-name{color:#787a8c;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;width:calc(100% - 5rem)}::ng-deep .select-template-list-tab{border-bottom:1px solid #dbdbdb}::ng-deep .select-template-list-tab button.tab-btn{background:transparent;border-radius:0;border:none;border-bottom:.1875rem solid transparent;color:#565a6f;height:23px;margin-right:1.75rem!important}::ng-deep .select-template-list-tab button.active{pointer-events:none}::ng-deep .select-template-list-tab button.active.tab-btn{border-color:#1e5dd3;color:#1e5dd3}::ng-deep .select-template-list-body{background:#fff;height:calc(100vh - 2.75rem);padding:2rem}::ng-deep .select-template-list-body .search-block{position:relative}::ng-deep .select-template-list-body .search-block input{height:2.75rem;line-height:1.5rem;padding:.5rem 1rem .5rem 2.5rem;outline:none;border:1px solid #7475763f;border-radius:.25rem;width:100%;font-size:14px;color:#747576}::ng-deep .select-template-list-body .search-block input:focus{border-color:#1e5dd3}::ng-deep .select-template-list-body .search-block i{position:absolute;left:1rem;top:1rem;pointer-events:none;color:#f1f1f1;font-size:12px}::ng-deep .select-template-list-body .body-top cs-multi-select{display:block;width:320px}::ng-deep .select-template-list-body .body-inner{height:calc(100% - 180px);width:calc(100% + 2rem);padding-right:2rem;overflow:hidden;overflow-y:auto;scrollbar-width:thin}::ng-deep .select-template-list-body .body-inner::-webkit-scrollbar-track{background-color:#f1f1f1}::ng-deep .select-template-list-body .body-inner::-webkit-scrollbar-thumb{border-radius:3px;background-color:#dbdbdb;position:absolute}::ng-deep .select-template-list .preview-template-body{margin-top:3rem;height:calc(100% - 6rem)}::ng-deep .select-template-list .preview-template-body-inner{background:#fff;border-radius:8px 8px 0 0;border:1px solid #dbdbdb;width:50rem}::ng-deep .select-template-list .preview-template-body-inner app-view-policy{display:block;height:100%}::ng-deep .select-template-list .preview-template-body-inner app-view-policy ejs-documenteditorcontainer{height:100%!important;min-height:unset!important}::ng-deep .select-template-list .preview-template-body-inner app-view-policy ejs-documenteditorcontainer .e-de-ctn{height:100%}::ng-deep .select-template-list .preview-template-body-inner app-view-policy ejs-documenteditorcontainer .e-de-ctn .e-de-ctnr-properties-pane{height:calc(100% - 30px)}::ng-deep .select-template-list .preview-template-body-inner app-view-policy ejs-documenteditorcontainer .e-de-ctn .e-de-ctnr-properties-pane .e-control.e-documenteditor{height:100%!important;min-height:unset!important}::ng-deep .select-template-list .preview-template-body-inner app-view-policy ejs-documenteditorcontainer .e-de-ctn .e-de-ctnr-properties-pane .e-control.e-documenteditor .e-documenteditor-optionspane{height:100%}\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.ToolTipDirective, selector: "[appTooltip]", inputs: ["appTooltip", "placement", "type", "tooltipMandatory", "showTooltip", "animate"] }, { kind: "component", type: i6.NoDataComponent, selector: "app-no-data", inputs: ["action", "noDataImage", "noDataText", "noDataButton", "noDataSecButton", "altText", "smallButton", "button"], outputs: ["buttonAction"] }, { kind: "component", type: i7.LoaderInlineComponent, selector: "app-loader-inline" }, { kind: "component", type: i8.CsMultiselectComponent, selector: "cs-multi-select", inputs: ["isRequired", "dropdownLabel", "dropdownSubLabel", "disabled", "placeholder", "searchPlaceholder", "value", "selectedItem"], outputs: ["valueChange", "applyFilter", "searchText", "resetSelectedData"] }, { kind: "component", type: i9.CsMultiselectOptionComponent, selector: "cs-multi-select-option", inputs: ["value"] }, { kind: "component", type: i10.FloatingBarComponent, selector: "app-floating-bar", inputs: ["selectedData", "selectedGroups", "displayElementKey", "elementId", "singularText", "pluralText", "showNextButton", "showFrequencyText", "showWorkflow", "workflowText", "currentFrequency", "isDisabled", "workflowList", "selectedWorkflow", "workflowPlaceHolder", "mode", "defaultSelected", "groupsEnabled", "nonRemovableUsersList", "removePosition"], outputs: ["closeEvent", "deleteEvent", "closeList", "deleteGroupEvent", "workflowTypeChanged"] }, { kind: "directive", type: i11.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i11.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i11.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i12.NgxDocViewerComponent, selector: "ngx-doc-viewer", inputs: ["url", "queryParams", "viewerUrl", "googleCheckInterval", "googleMaxChecks", "disableContent", "googleCheckContentLoaded", "viewer", "overrideLocalhost"], outputs: ["loaded"] }, { kind: "component", type: i13.TemplateListTableComponent, selector: "app-template-list-table", inputs: ["selectedTemplate", "templateList", "loader", "categoryList", "feature"], outputs: ["onSort", "onSelectTemplate", "onPreview"] }, { kind: "pipe", type: i14.SearchByKeysPipe, name: "SearchByKeys" }] }); }
186
+ getPreviewData(templateId) {
187
+ this.loader = true;
188
+ this.templateService.getTemplateContent(templateId).subscribe({
189
+ next: (res) => {
190
+ const { response } = res;
191
+ this.loader = false;
192
+ this.docData = response;
193
+ this.isPreview = true;
194
+ },
195
+ });
196
+ }
197
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SelectTemplateListComponent, deps: [{ token: i1.TemplateService }, { token: i2.PolicyService }], target: i0.ɵɵFactoryTarget.Component }); }
198
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SelectTemplateListComponent, selector: "app-select-template-list", inputs: { selectedCategoryId: "selectedCategoryId" }, outputs: { onTemplateSelect: "onTemplateSelect" }, ngImport: i0, template: "<div\n class=\"select-template-list\"\n [class.animate]=\"animation\"\n [class.withPreview]=\"isPreview\"\n>\n <ng-container *ngIf=\"!isPreview\">\n <div\n class=\"select-template-list-head vx-d-flex vx-align-center vx-justify-between vx-pl-4 vx-pr-4\"\n >\n <div class=\"vx-fs-14 vx-fw-500 vx-label-txt\">Select a Template</div>\n </div>\n <div class=\"select-template-list-body\">\n <app-loader-inline *ngIf=\"loader\"></app-loader-inline>\n\n <div class=\"select-template-list-tab vx-d-flex vx-align-center vx-mb-2\">\n <button\n (click)=\"switchTab('VCOMPLY')\"\n class=\"tab-btn vx-fs-11 vx-fw-500 vx-tt-uppercase vx-p-0 vx-pb-2 vx-m-0 vx-d-flex vx-align-center vx-lh-4\"\n [class.active]=\"currentTab === 'VCOMPLY'\"\n >\n VCOMPLY TEMPLATES\n </button>\n <button\n (click)=\"switchTab('USER_CREATED')\"\n class=\"tab-btn vx-fs-11 vx-fw-500 vx-tt-uppercase vx-p-0 vx-pb-2 vx-m-0 vx-d-flex vx-align-center vx-lh-4\"\n [class.active]=\"currentTab === 'USER_CREATED'\"\n >\n USER-CREATED TEMPLATES\n </button>\n </div>\n <div class=\"search-block vx-mb-2\">\n <i class=\"icons\">&#xe90b;</i>\n <input type=\"text\" [(ngModel)]=\"searchTemplate\" placeholder=\"Search\" />\n </div>\n <div class=\"body-top vx-d-flex vx-align-center vx-justify-end vx-mb-2\">\n <cs-multi-select\n (searchText)=\"searchCategory = $event\"\n [placeholder]=\"'Select Category'\"\n [value]=\"selectedCategory\"\n (applyFilter)=\"onApplyFilter($event)\"\n >\n <ng-container\n *ngFor=\"\n let eachCategory of categoryList\n | SearchByKeys : ['name'] : searchCategory\n \"\n >\n <cs-multi-select-option\n [appTooltip]=\"eachCategory?.name\"\n placement=\"bottom-left\"\n delay=\"0\"\n [value]=\"eachCategory?.item_id\"\n (change)=\"onSelectCategory(eachCategory, $event)\"\n [tooltipMandatory]=\"true\"\n >\n {{ eachCategory?.name }}\n </cs-multi-select-option>\n </ng-container>\n </cs-multi-select>\n </div>\n <div class=\"body-inner vx-mb-1\">\n <ng-container *ngIf=\"!loader\">\n <ng-container\n *ngIf=\"\n templateList\n | SearchByKeys\n : ['name', 'categoryDetails']\n : searchTemplate as allTemplate\n \"\n >\n <app-template-list-table\n *ngIf=\"allTemplate.length\"\n [templateList]=\"allTemplate\"\n [loader]=\"loader\"\n [categoryList]=\"categoryList\"\n [selectedTemplate]=\"selectedTemplate[0]\"\n (onSort)=\"sortBy($event)\"\n (onSelectTemplate)=\"onSelectTemplate($event)\"\n (onPreview)=\"onPreview($event)\"\n ></app-template-list-table>\n <app-no-data\n *ngIf=\"!allTemplate?.length\"\n [noDataImage]=\"NO_DATA_FOUND_IMAGE\"\n [noDataText]=\"NO_DATA_FOUND_MESSAGE\"\n ></app-no-data>\n </ng-container>\n </ng-container>\n </div>\n\n <app-floating-bar\n (closeEvent)=\"save()\"\n (closeList)=\"close()\"\n [isDisabled]=\"selectedTemplate?.length === 0\"\n [selectedData]=\"selectedTemplate\"\n [displayElementKey]=\"'name'\"\n [singularText]=\"'Template Selected'\"\n (deleteEvent)=\"deleteEvent()\"\n >\n </app-floating-bar>\n </div>\n </ng-container>\n <ng-container *ngIf=\"isPreview\">\n <div\n class=\"select-template-list-head vx-d-flex vx-align-center vx-pl-4 vx-pr-4\"\n >\n <button\n (click)=\"onClosePreview()\"\n class=\"previewBtn vx-fs-14 vx-fw-500 vx-label-txt vx-p-0 vx-m-0 vx-d-flex vx-align-center\"\n >\n <i class=\"icons vx-mr-1\">&#xe91d;</i>Preview\n </button>\n <div\n class=\"template-name vx-fs-14 vx-ml-1\"\n [appTooltip]=\"previewTemplate?.name\"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"false\"\n >\n {{ previewTemplate?.name }}\n </div>\n </div>\n <div class=\"preview-template-body vx-d-flex vx-justify-center\">\n <app-loader-inline *ngIf=\"loader\"></app-loader-inline>\n\n <div *ngIf=\"!loader\" class=\"preview-template-body-inner\">\n <app-view-policy #view_policy [contents]=\"docData\"> </app-view-policy>\n </div>\n </div>\n </ng-container>\n</div>\n", styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";@import\"https://cdn.v-comply.com/design-system/css/display/display.css\";@import\"https://cdn.v-comply.com/design-system/css/alignment/alignment.css\";@import\"https://cdn.v-comply.com/design-system/css/text/text.css\";@import\"https://cdn.v-comply.com/design-system/css/color/color.css\";@import\"https://cdn.v-comply.com/design-system/css/width/width.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-top.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-left.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-right.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-top.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-left.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-right.css\";::ng-deep .select-template-list{background:#fff;position:fixed;inset:0 500px 0 0;z-index:10}::ng-deep .select-template-list:before{background:#1e5dd3;content:\"\";position:absolute;top:0;left:0;right:0;width:100%;height:3px}::ng-deep .select-template-list:after{background:#f1f1f1;content:\"\";position:absolute;top:3px;right:0;width:1px;height:calc(100% - 3px)}::ng-deep .select-template-list.withPreview{background:#f2f2f5}::ng-deep .select-template-list-head{background:#fbfbfb;height:2.75rem;border-bottom:1px solid #f1f1f1}::ng-deep .select-template-list-head button.previewBtn{background:transparent;border-radius:0;border:none}::ng-deep .select-template-list-head .template-name{color:#787a8c;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;width:calc(100% - 5rem)}::ng-deep .select-template-list-tab{border-bottom:1px solid #dbdbdb}::ng-deep .select-template-list-tab button.tab-btn{background:transparent;border-radius:0;border:none;border-bottom:.1875rem solid transparent;color:#565a6f;height:23px;margin-right:1.75rem!important}::ng-deep .select-template-list-tab button.active{pointer-events:none}::ng-deep .select-template-list-tab button.active.tab-btn{border-color:#1e5dd3;color:#1e5dd3}::ng-deep .select-template-list-body{background:#fff;height:calc(100vh - 2.75rem);padding:2rem}::ng-deep .select-template-list-body .search-block{position:relative}::ng-deep .select-template-list-body .search-block input{height:2.75rem;line-height:1.5rem;padding:.5rem 1rem .5rem 2.5rem;outline:none;border:1px solid #7475763f;border-radius:.25rem;width:100%;font-size:14px;color:#747576}::ng-deep .select-template-list-body .search-block input:focus{border-color:#1e5dd3}::ng-deep .select-template-list-body .search-block i{position:absolute;left:1rem;top:1rem;pointer-events:none;color:#f1f1f1;font-size:12px}::ng-deep .select-template-list-body .body-top cs-multi-select{display:block;width:320px}::ng-deep .select-template-list-body .body-inner{height:calc(100% - 180px);width:calc(100% + 2rem);padding-right:2rem;overflow:hidden;overflow-y:auto;scrollbar-width:thin}::ng-deep .select-template-list-body .body-inner::-webkit-scrollbar-track{background-color:#f1f1f1}::ng-deep .select-template-list-body .body-inner::-webkit-scrollbar-thumb{border-radius:3px;background-color:#dbdbdb;position:absolute}::ng-deep .select-template-list .preview-template-body{margin-top:3rem;height:calc(100% - 6rem)}::ng-deep .select-template-list .preview-template-body-inner{background:#fff;border-radius:8px 8px 0 0;border:1px solid #dbdbdb;width:50rem}::ng-deep .select-template-list .preview-template-body-inner app-view-policy{display:block;height:100%}::ng-deep .select-template-list .preview-template-body-inner app-view-policy ejs-documenteditorcontainer{height:100%!important;min-height:unset!important}::ng-deep .select-template-list .preview-template-body-inner app-view-policy ejs-documenteditorcontainer .e-de-ctn{height:100%}::ng-deep .select-template-list .preview-template-body-inner app-view-policy ejs-documenteditorcontainer .e-de-ctn .e-de-ctnr-properties-pane{height:calc(100% - 30px)}::ng-deep .select-template-list .preview-template-body-inner app-view-policy ejs-documenteditorcontainer .e-de-ctn .e-de-ctnr-properties-pane .e-control.e-documenteditor{height:100%!important;min-height:unset!important}::ng-deep .select-template-list .preview-template-body-inner app-view-policy ejs-documenteditorcontainer .e-de-ctn .e-de-ctnr-properties-pane .e-control.e-documenteditor .e-documenteditor-optionspane{height:100%}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.ToolTipDirective, selector: "[appTooltip]", inputs: ["appTooltip", "placement", "type", "tooltipMandatory", "showTooltip", "animate"] }, { kind: "component", type: i5.NoDataComponent, selector: "app-no-data", inputs: ["action", "noDataImage", "noDataText", "noDataButton", "noDataSecButton", "altText", "smallButton", "button"], outputs: ["buttonAction"] }, { kind: "component", type: i6.LoaderInlineComponent, selector: "app-loader-inline" }, { kind: "component", type: i7.CsMultiselectComponent, selector: "cs-multi-select", inputs: ["isRequired", "dropdownLabel", "dropdownSubLabel", "disabled", "placeholder", "searchPlaceholder", "value", "selectedItem"], outputs: ["valueChange", "applyFilter", "searchText", "resetSelectedData"] }, { kind: "component", type: i8.CsMultiselectOptionComponent, selector: "cs-multi-select-option", inputs: ["value"] }, { kind: "component", type: i9.FloatingBarComponent, selector: "app-floating-bar", inputs: ["selectedData", "selectedGroups", "displayElementKey", "elementId", "singularText", "pluralText", "showNextButton", "showFrequencyText", "showWorkflow", "workflowText", "currentFrequency", "isDisabled", "workflowList", "selectedWorkflow", "workflowPlaceHolder", "mode", "defaultSelected", "groupsEnabled", "nonRemovableUsersList", "removePosition"], outputs: ["closeEvent", "deleteEvent", "closeList", "deleteGroupEvent", "workflowTypeChanged"] }, { kind: "directive", type: i10.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i10.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i10.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i11.ViewPolicyComponent, selector: "app-view-policy", inputs: ["contents", "userName"] }, { kind: "component", type: i12.TemplateListTableComponent, selector: "app-template-list-table", inputs: ["selectedTemplate", "templateList", "loader", "categoryList"], outputs: ["onSort", "onSelectTemplate", "onPreview"] }, { kind: "pipe", type: i13.SearchByKeysPipe, name: "SearchByKeys" }] }); }
193
199
  }
194
200
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SelectTemplateListComponent, decorators: [{
195
201
  type: Component,
196
- args: [{ selector: 'app-select-template-list', template: "<div\n class=\"select-template-list\"\n [class.animate]=\"animation\"\n [class.withPreview]=\"isPreview\"\n>\n <ng-container *ngIf=\"!isPreview\">\n <div\n class=\"select-template-list-head vx-d-flex vx-align-center vx-justify-between vx-pl-4 vx-pr-4\"\n >\n <div class=\"vx-fs-14 vx-fw-500 vx-label-txt\">Select a Template</div>\n </div>\n <div class=\"select-template-list-body\">\n <app-loader-inline *ngIf=\"loader\"></app-loader-inline>\n\n <div class=\"select-template-list-tab vx-d-flex vx-align-center vx-mb-2\">\n <button\n (click)=\"switchTab('VCOMPLY')\"\n class=\"tab-btn vx-fs-11 vx-fw-500 vx-tt-uppercase vx-p-0 vx-pb-2 vx-m-0 vx-d-flex vx-align-center vx-lh-4\"\n [class.active]=\"currentTab === 'VCOMPLY'\"\n >\n VCOMPLY TEMPLATES\n </button>\n <button\n (click)=\"switchTab('USER_CREATED')\"\n class=\"tab-btn vx-fs-11 vx-fw-500 vx-tt-uppercase vx-p-0 vx-pb-2 vx-m-0 vx-d-flex vx-align-center vx-lh-4\"\n [class.active]=\"currentTab === 'USER_CREATED'\"\n >\n USER-CREATED TEMPLATES\n </button>\n </div>\n <div class=\"search-block vx-mb-2\">\n <i class=\"icons\">&#xe90b;</i>\n <input type=\"text\" [(ngModel)]=\"searchTemplate\" placeholder=\"Search\" />\n </div>\n <div class=\"body-top vx-d-flex vx-align-center vx-justify-end vx-mb-2\">\n <cs-multi-select\n (searchText)=\"searchCategory = $event\"\n [placeholder]=\"'Select Category'\"\n [value]=\"selectedCategory\"\n (applyFilter)=\"onApplyFilter($event)\"\n >\n <ng-container\n *ngFor=\"\n let eachCategory of categoryList\n | SearchByKeys : ['name'] : searchCategory\n \"\n >\n <cs-multi-select-option\n [appTooltip]=\"eachCategory?.name\"\n placement=\"bottom-left\"\n delay=\"0\"\n [value]=\"eachCategory?.item_id\"\n (change)=\"onSelectCategory(eachCategory, $event)\"\n [tooltipMandatory]=\"true\"\n >\n {{ eachCategory?.name }}\n </cs-multi-select-option>\n </ng-container>\n </cs-multi-select>\n </div>\n <div class=\"body-inner vx-mb-1\">\n <ng-container *ngIf=\"!loader\">\n <ng-container\n *ngIf=\"\n templateList\n | SearchByKeys\n : ['name', 'categoryDetails']\n : searchTemplate as allTemplate\n \"\n >\n <app-template-list-table\n *ngIf=\"allTemplate.length\"\n [templateList]=\"allTemplate\"\n [loader]=\"loader\"\n [categoryList]=\"categoryList\"\n [selectedTemplate]=\"selectedTemplate[0]\"\n [feature]=\"feature\"\n (onSort)=\"sortBy($event)\"\n (onSelectTemplate)=\"onSelectTemplate($event)\"\n (onPreview)=\"onPreview($event)\"\n ></app-template-list-table>\n <app-no-data\n *ngIf=\"!allTemplate?.length\"\n [noDataImage]=\"NO_DATA_FOUND_IMAGE\"\n [noDataText]=\"NO_DATA_FOUND_MESSAGE\"\n ></app-no-data>\n </ng-container>\n </ng-container>\n </div>\n\n <app-floating-bar\n (closeEvent)=\"save()\"\n (closeList)=\"close()\"\n [isDisabled]=\"selectedTemplate?.length === 0\"\n [selectedData]=\"selectedTemplate\"\n [displayElementKey]=\"'name'\"\n [singularText]=\"'Template Selected'\"\n (deleteEvent)=\"deleteEvent()\"\n >\n </app-floating-bar>\n </div>\n </ng-container>\n <ng-container *ngIf=\"isPreview\">\n <div\n class=\"select-template-list-head vx-d-flex vx-align-center vx-pl-4 vx-pr-4\"\n >\n <button\n (click)=\"onClosePreview()\"\n class=\"previewBtn vx-fs-14 vx-fw-500 vx-label-txt vx-p-0 vx-m-0 vx-d-flex vx-align-center\"\n >\n <i class=\"icons vx-mr-1\">&#xe91d;</i>Preview\n </button>\n <div\n class=\"template-name vx-fs-14 vx-ml-1\"\n [appTooltip]=\"previewTemplate?.name\"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"false\"\n >\n {{ previewTemplate?.name }}\n </div>\n </div>\n <div class=\"preview-template-body vx-d-flex vx-justify-center\">\n <app-loader-inline *ngIf=\"loader\"></app-loader-inline>\n\n <div *ngIf=\"!loader\" class=\"preview-template-body-inner\">\n <ngx-doc-viewer\n [url]=\"fileUrl\"\n viewer=\"office\"\n style=\"width: 100%; height: 100%; margin: 0\"\n disableContent=\"popout-hide\"\n >\n </ngx-doc-viewer>\n </div>\n </div>\n </ng-container>\n</div>\n", styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";@import\"https://cdn.v-comply.com/design-system/css/display/display.css\";@import\"https://cdn.v-comply.com/design-system/css/alignment/alignment.css\";@import\"https://cdn.v-comply.com/design-system/css/text/text.css\";@import\"https://cdn.v-comply.com/design-system/css/color/color.css\";@import\"https://cdn.v-comply.com/design-system/css/width/width.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-top.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-left.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-right.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-top.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-left.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-right.css\";::ng-deep .select-template-list{background:#fff;position:fixed;inset:0 500px 0 0;z-index:10}::ng-deep .select-template-list:before{background:#1e5dd3;content:\"\";position:absolute;top:0;left:0;right:0;width:100%;height:3px}::ng-deep .select-template-list:after{background:#f1f1f1;content:\"\";position:absolute;top:3px;right:0;width:1px;height:calc(100% - 3px)}::ng-deep .select-template-list.withPreview{background:#f2f2f5}::ng-deep .select-template-list-head{background:#fbfbfb;height:2.75rem;border-bottom:1px solid #f1f1f1}::ng-deep .select-template-list-head button.previewBtn{background:transparent;border-radius:0;border:none}::ng-deep .select-template-list-head .template-name{color:#787a8c;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;width:calc(100% - 5rem)}::ng-deep .select-template-list-tab{border-bottom:1px solid #dbdbdb}::ng-deep .select-template-list-tab button.tab-btn{background:transparent;border-radius:0;border:none;border-bottom:.1875rem solid transparent;color:#565a6f;height:23px;margin-right:1.75rem!important}::ng-deep .select-template-list-tab button.active{pointer-events:none}::ng-deep .select-template-list-tab button.active.tab-btn{border-color:#1e5dd3;color:#1e5dd3}::ng-deep .select-template-list-body{background:#fff;height:calc(100vh - 2.75rem);padding:2rem}::ng-deep .select-template-list-body .search-block{position:relative}::ng-deep .select-template-list-body .search-block input{height:2.75rem;line-height:1.5rem;padding:.5rem 1rem .5rem 2.5rem;outline:none;border:1px solid #7475763f;border-radius:.25rem;width:100%;font-size:14px;color:#747576}::ng-deep .select-template-list-body .search-block input:focus{border-color:#1e5dd3}::ng-deep .select-template-list-body .search-block i{position:absolute;left:1rem;top:1rem;pointer-events:none;color:#f1f1f1;font-size:12px}::ng-deep .select-template-list-body .body-top cs-multi-select{display:block;width:320px}::ng-deep .select-template-list-body .body-inner{height:calc(100% - 180px);width:calc(100% + 2rem);padding-right:2rem;overflow:hidden;overflow-y:auto;scrollbar-width:thin}::ng-deep .select-template-list-body .body-inner::-webkit-scrollbar-track{background-color:#f1f1f1}::ng-deep .select-template-list-body .body-inner::-webkit-scrollbar-thumb{border-radius:3px;background-color:#dbdbdb;position:absolute}::ng-deep .select-template-list .preview-template-body{margin-top:3rem;height:calc(100% - 6rem)}::ng-deep .select-template-list .preview-template-body-inner{background:#fff;border-radius:8px 8px 0 0;border:1px solid #dbdbdb;width:50rem}::ng-deep .select-template-list .preview-template-body-inner app-view-policy{display:block;height:100%}::ng-deep .select-template-list .preview-template-body-inner app-view-policy ejs-documenteditorcontainer{height:100%!important;min-height:unset!important}::ng-deep .select-template-list .preview-template-body-inner app-view-policy ejs-documenteditorcontainer .e-de-ctn{height:100%}::ng-deep .select-template-list .preview-template-body-inner app-view-policy ejs-documenteditorcontainer .e-de-ctn .e-de-ctnr-properties-pane{height:calc(100% - 30px)}::ng-deep .select-template-list .preview-template-body-inner app-view-policy ejs-documenteditorcontainer .e-de-ctn .e-de-ctnr-properties-pane .e-control.e-documenteditor{height:100%!important;min-height:unset!important}::ng-deep .select-template-list .preview-template-body-inner app-view-policy ejs-documenteditorcontainer .e-de-ctn .e-de-ctnr-properties-pane .e-control.e-documenteditor .e-documenteditor-optionspane{height:100%}\n"] }]
197
- }], ctorParameters: function () { return [{ type: i1.TemplateService }, { type: i2.PolicyService }, { type: i3.Configurations, decorators: [{
198
- type: Optional
199
- }] }]; }, propDecorators: { selectedCategoryId: [{
200
- type: Input
201
- }], feature: [{
202
+ args: [{ selector: 'app-select-template-list', template: "<div\n class=\"select-template-list\"\n [class.animate]=\"animation\"\n [class.withPreview]=\"isPreview\"\n>\n <ng-container *ngIf=\"!isPreview\">\n <div\n class=\"select-template-list-head vx-d-flex vx-align-center vx-justify-between vx-pl-4 vx-pr-4\"\n >\n <div class=\"vx-fs-14 vx-fw-500 vx-label-txt\">Select a Template</div>\n </div>\n <div class=\"select-template-list-body\">\n <app-loader-inline *ngIf=\"loader\"></app-loader-inline>\n\n <div class=\"select-template-list-tab vx-d-flex vx-align-center vx-mb-2\">\n <button\n (click)=\"switchTab('VCOMPLY')\"\n class=\"tab-btn vx-fs-11 vx-fw-500 vx-tt-uppercase vx-p-0 vx-pb-2 vx-m-0 vx-d-flex vx-align-center vx-lh-4\"\n [class.active]=\"currentTab === 'VCOMPLY'\"\n >\n VCOMPLY TEMPLATES\n </button>\n <button\n (click)=\"switchTab('USER_CREATED')\"\n class=\"tab-btn vx-fs-11 vx-fw-500 vx-tt-uppercase vx-p-0 vx-pb-2 vx-m-0 vx-d-flex vx-align-center vx-lh-4\"\n [class.active]=\"currentTab === 'USER_CREATED'\"\n >\n USER-CREATED TEMPLATES\n </button>\n </div>\n <div class=\"search-block vx-mb-2\">\n <i class=\"icons\">&#xe90b;</i>\n <input type=\"text\" [(ngModel)]=\"searchTemplate\" placeholder=\"Search\" />\n </div>\n <div class=\"body-top vx-d-flex vx-align-center vx-justify-end vx-mb-2\">\n <cs-multi-select\n (searchText)=\"searchCategory = $event\"\n [placeholder]=\"'Select Category'\"\n [value]=\"selectedCategory\"\n (applyFilter)=\"onApplyFilter($event)\"\n >\n <ng-container\n *ngFor=\"\n let eachCategory of categoryList\n | SearchByKeys : ['name'] : searchCategory\n \"\n >\n <cs-multi-select-option\n [appTooltip]=\"eachCategory?.name\"\n placement=\"bottom-left\"\n delay=\"0\"\n [value]=\"eachCategory?.item_id\"\n (change)=\"onSelectCategory(eachCategory, $event)\"\n [tooltipMandatory]=\"true\"\n >\n {{ eachCategory?.name }}\n </cs-multi-select-option>\n </ng-container>\n </cs-multi-select>\n </div>\n <div class=\"body-inner vx-mb-1\">\n <ng-container *ngIf=\"!loader\">\n <ng-container\n *ngIf=\"\n templateList\n | SearchByKeys\n : ['name', 'categoryDetails']\n : searchTemplate as allTemplate\n \"\n >\n <app-template-list-table\n *ngIf=\"allTemplate.length\"\n [templateList]=\"allTemplate\"\n [loader]=\"loader\"\n [categoryList]=\"categoryList\"\n [selectedTemplate]=\"selectedTemplate[0]\"\n (onSort)=\"sortBy($event)\"\n (onSelectTemplate)=\"onSelectTemplate($event)\"\n (onPreview)=\"onPreview($event)\"\n ></app-template-list-table>\n <app-no-data\n *ngIf=\"!allTemplate?.length\"\n [noDataImage]=\"NO_DATA_FOUND_IMAGE\"\n [noDataText]=\"NO_DATA_FOUND_MESSAGE\"\n ></app-no-data>\n </ng-container>\n </ng-container>\n </div>\n\n <app-floating-bar\n (closeEvent)=\"save()\"\n (closeList)=\"close()\"\n [isDisabled]=\"selectedTemplate?.length === 0\"\n [selectedData]=\"selectedTemplate\"\n [displayElementKey]=\"'name'\"\n [singularText]=\"'Template Selected'\"\n (deleteEvent)=\"deleteEvent()\"\n >\n </app-floating-bar>\n </div>\n </ng-container>\n <ng-container *ngIf=\"isPreview\">\n <div\n class=\"select-template-list-head vx-d-flex vx-align-center vx-pl-4 vx-pr-4\"\n >\n <button\n (click)=\"onClosePreview()\"\n class=\"previewBtn vx-fs-14 vx-fw-500 vx-label-txt vx-p-0 vx-m-0 vx-d-flex vx-align-center\"\n >\n <i class=\"icons vx-mr-1\">&#xe91d;</i>Preview\n </button>\n <div\n class=\"template-name vx-fs-14 vx-ml-1\"\n [appTooltip]=\"previewTemplate?.name\"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"false\"\n >\n {{ previewTemplate?.name }}\n </div>\n </div>\n <div class=\"preview-template-body vx-d-flex vx-justify-center\">\n <app-loader-inline *ngIf=\"loader\"></app-loader-inline>\n\n <div *ngIf=\"!loader\" class=\"preview-template-body-inner\">\n <app-view-policy #view_policy [contents]=\"docData\"> </app-view-policy>\n </div>\n </div>\n </ng-container>\n</div>\n", styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";@import\"https://cdn.v-comply.com/design-system/css/display/display.css\";@import\"https://cdn.v-comply.com/design-system/css/alignment/alignment.css\";@import\"https://cdn.v-comply.com/design-system/css/text/text.css\";@import\"https://cdn.v-comply.com/design-system/css/color/color.css\";@import\"https://cdn.v-comply.com/design-system/css/width/width.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-top.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-left.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-right.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-top.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-left.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-right.css\";::ng-deep .select-template-list{background:#fff;position:fixed;inset:0 500px 0 0;z-index:10}::ng-deep .select-template-list:before{background:#1e5dd3;content:\"\";position:absolute;top:0;left:0;right:0;width:100%;height:3px}::ng-deep .select-template-list:after{background:#f1f1f1;content:\"\";position:absolute;top:3px;right:0;width:1px;height:calc(100% - 3px)}::ng-deep .select-template-list.withPreview{background:#f2f2f5}::ng-deep .select-template-list-head{background:#fbfbfb;height:2.75rem;border-bottom:1px solid #f1f1f1}::ng-deep .select-template-list-head button.previewBtn{background:transparent;border-radius:0;border:none}::ng-deep .select-template-list-head .template-name{color:#787a8c;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;width:calc(100% - 5rem)}::ng-deep .select-template-list-tab{border-bottom:1px solid #dbdbdb}::ng-deep .select-template-list-tab button.tab-btn{background:transparent;border-radius:0;border:none;border-bottom:.1875rem solid transparent;color:#565a6f;height:23px;margin-right:1.75rem!important}::ng-deep .select-template-list-tab button.active{pointer-events:none}::ng-deep .select-template-list-tab button.active.tab-btn{border-color:#1e5dd3;color:#1e5dd3}::ng-deep .select-template-list-body{background:#fff;height:calc(100vh - 2.75rem);padding:2rem}::ng-deep .select-template-list-body .search-block{position:relative}::ng-deep .select-template-list-body .search-block input{height:2.75rem;line-height:1.5rem;padding:.5rem 1rem .5rem 2.5rem;outline:none;border:1px solid #7475763f;border-radius:.25rem;width:100%;font-size:14px;color:#747576}::ng-deep .select-template-list-body .search-block input:focus{border-color:#1e5dd3}::ng-deep .select-template-list-body .search-block i{position:absolute;left:1rem;top:1rem;pointer-events:none;color:#f1f1f1;font-size:12px}::ng-deep .select-template-list-body .body-top cs-multi-select{display:block;width:320px}::ng-deep .select-template-list-body .body-inner{height:calc(100% - 180px);width:calc(100% + 2rem);padding-right:2rem;overflow:hidden;overflow-y:auto;scrollbar-width:thin}::ng-deep .select-template-list-body .body-inner::-webkit-scrollbar-track{background-color:#f1f1f1}::ng-deep .select-template-list-body .body-inner::-webkit-scrollbar-thumb{border-radius:3px;background-color:#dbdbdb;position:absolute}::ng-deep .select-template-list .preview-template-body{margin-top:3rem;height:calc(100% - 6rem)}::ng-deep .select-template-list .preview-template-body-inner{background:#fff;border-radius:8px 8px 0 0;border:1px solid #dbdbdb;width:50rem}::ng-deep .select-template-list .preview-template-body-inner app-view-policy{display:block;height:100%}::ng-deep .select-template-list .preview-template-body-inner app-view-policy ejs-documenteditorcontainer{height:100%!important;min-height:unset!important}::ng-deep .select-template-list .preview-template-body-inner app-view-policy ejs-documenteditorcontainer .e-de-ctn{height:100%}::ng-deep .select-template-list .preview-template-body-inner app-view-policy ejs-documenteditorcontainer .e-de-ctn .e-de-ctnr-properties-pane{height:calc(100% - 30px)}::ng-deep .select-template-list .preview-template-body-inner app-view-policy ejs-documenteditorcontainer .e-de-ctn .e-de-ctnr-properties-pane .e-control.e-documenteditor{height:100%!important;min-height:unset!important}::ng-deep .select-template-list .preview-template-body-inner app-view-policy ejs-documenteditorcontainer .e-de-ctn .e-de-ctnr-properties-pane .e-control.e-documenteditor .e-documenteditor-optionspane{height:100%}\n"] }]
203
+ }], ctorParameters: function () { return [{ type: i1.TemplateService }, { type: i2.PolicyService }]; }, propDecorators: { selectedCategoryId: [{
202
204
  type: Input
203
205
  }], onTemplateSelect: [{
204
206
  type: Output
205
207
  }] } });
206
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LXRlbXBsYXRlLWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvc2hhcmVkQ29tcG9uZW50cy9wb2xpY3ktdGVtcGxhdGUvc2VsZWN0LXRlbXBsYXRlLWxpc3Qvc2VsZWN0LXRlbXBsYXRlLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvc2hhcmVkQ29tcG9uZW50cy9wb2xpY3ktdGVtcGxhdGUvc2VsZWN0LXRlbXBsYXRlLWxpc3Qvc2VsZWN0LXRlbXBsYXRlLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFakYsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNoQyxPQUFPLEVBQ0wsbUJBQW1CLEVBQ25CLHFCQUFxQixHQUN0QixNQUFNLGdDQUFnQyxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7O0FBUXhDLE1BQU0sT0FBTywyQkFBMkI7SUEwQnRDLFlBQ1UsZUFBZ0MsRUFDaEMsYUFBNEIsRUFDeEIsTUFBdUI7UUFGM0Isb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hDLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBM0J0QyxZQUFPLEdBQVcsRUFBRSxDQUFBO1FBRXBCLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFDbEIscUJBQWdCLEdBQVUsRUFBRSxDQUFDO1FBQzdCLG9CQUFlLEdBQWlCLElBQUksQ0FBQztRQUNyQyxpQkFBWSxHQUFVLEVBQUUsQ0FBQztRQUN6QixlQUFVLEdBQUcsU0FBUyxDQUFDO1FBQ3ZCLFdBQU0sR0FBWSxLQUFL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QUcsRUFBRSxRQUFRLElBQUksT0FBTyxFQUFFLFVBQVUsRUFBRSxDQUFDO1FBQ2hGLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQsY0FBYztRQUNaLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDO0lBQzlCLENBQUM7K0dBdE5VLDJCQUEyQjttR0FBM0IsMkJBQTJCLDZMQ2R4QyxtM0pBMElBOzs0RkQ1SGEsMkJBQTJCO2tCQUx2QyxTQUFTOytCQUNFLDBCQUEwQjs7MEJBaUNqQyxRQUFROzRDQVBGLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0ksZ0JBQWdCO3NCQUF6QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPcHRpb25hbCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUZW1wbGF0ZVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy90ZW1wbGF0ZS5zZXJ2aWNlJztcbmltcG9ydCB7IGZvcmtKb2luIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICBOT19EQVRBX0ZPVU5EX0lNQUdFLFxuICBOT19EQVRBX0ZPVU5EX01FU1NBR0UsXG59IGZyb20gJy4uL2NvbnN0YW50cy90ZW1wbGF0ZS5jb25zdGFudCc7XG5pbXBvcnQgeyBQb2xpY3lTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vd29ya2Zsb3ctc2VydmljZXMvcG9saWN5LnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29uZmlndXJhdGlvbnMgfSBmcm9tICcuLi8uLi8uLi9jb25maWd1cmF0aW9ucyc7XG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtc2VsZWN0LXRlbXBsYXRlLWxpc3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vc2VsZWN0LXRlbXBsYXRlLWxpc3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zZWxlY3QtdGVtcGxhdGUtbGlzdC5jb21wb25lbnQubGVzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBTZWxlY3RUZW1wbGF0ZUxpc3RDb21wb25lbnQge1xuICBmaWxlVXJsOiBzdHJpbmcgPSAnJ1xuICBlbnY6YW55O1xuICBhbmltYXRpb24gPSBmYWxzZTtcbiAgZGVmYXVsdFRlbXBsYXRlczogYW55W10gPSBbXTtcbiAgY3VzdG9tVGVtcGxhdGVzOiBhbnlbXSB8IG51bGwgPSBudWxsO1xuICB0ZW1wbGF0ZUxpc3Q6IGFueVtdID0gW107XG4gIGN1cnJlbnRUYWIgPSAnVkNPTVBMWSc7XG4gIGxvYWRlcjogYm9vbGVhbiA9IGZhbHNlO1xuICBjYXRlZ29yeUxpc3Q6IGFueVtdID0gW107XG4gIGRlZmF1bHRDYXRlZ29yeUxpc3Q6IGFueVtdID0gW107XG4gIHVzZXJDcmVhdGVkQ2F0ZWdvcnlMaXN0OiBhbnlbXSA9IFtdO1xuICBzb3J0U3RhdHVzID0gLTE7XG4gIHNlYXJjaENhdGVnb3J5OiBzdHJpbmcgPSAnJztcbiAgc2VhcmNoVGVtcGxhdGU6IHN0cmluZyA9ICcnO1xuICBzZWxlY3RlZENhdGVnb3J5OiBhbnlbXSA9IFtdO1xuICBOT19EQVRBX0ZPVU5EX0lNQUdFID0gTk9fREFUQV9GT1VORF9JTUFHRTtcbiAgTk9fREFUQV9GT1VORF9NRVNTQUdFID0gTk9fREFUQV9GT1VORF9NRVNTQUdFO1xuICBzZWxlY3RlZFRlbXBsYXRlOiBhbnlbXSA9IFtdO1xuICBpc1ByZXZpZXcgPSBmYWxzZTtcbiAgcHJldmlld1RlbXBsYXRlOiBhbnk7XG5cbiAgQElucHV0KCkgc2VsZWN0ZWRDYXRlZ29yeUlkOiBudW1iZXJbXSA9IFtdO1xuICBASW5wdXQoKSBmZWF0dXJlOiBhbnk7XG4gIEBPdXRwdXQoKSBvblRlbXBsYXRlU2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSB0ZW1wbGF0ZVNlcnZpY2U6IFRlbXBsYXRlU2VydmljZSxcbiAgICBwcml2YXRlIHBvbGljeVNlcnZpY2U6IFBvbGljeVNlcnZpY2UsXG4gICAgQE9wdGlvbmFsKCkgY29uZmlnPzogQ29uZmlndXJhdGlvbnNcbiAgKSB7XG4gICAgaWYoY29uZmlnKXtcbiAgICAgIHRoaXMuZW52ID0gY29uZmlnPy5lbnZDb25maWdcbiAgICB9XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnNldEFuaW1hdGlvbigpO1xuICAgIHRoaXMuZ2V0VGVtcGxhdGUoKTtcbiAgfVxuXG4gIHNldEFuaW1hdGlvbigpIHtcbiAgICB0aGlzLmFuaW1hdGlvbiA9IHRydWU7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmFuaW1hdGlvbiA9IGZhbHNlO1xuICAgIH0sIDMwMCk7XG4gIH1cblxuICBzd2l0Y2hUYWIodGFiOiBzdHJpbmcpIHtcbiAgICB0aGlzLmN1cnJlbnRUYWIgPSB0YWI7XG4gICAgdGhpcy5zZWxlY3RlZENhdGVnb3J5ID0gW107XG4gICAgaWYgKHRhYiA9PT0gJ1ZDT01QTFknKSB7XG4gICAgICB0aGlzLnRlbXBsYXRlTGlzdCA9IFsuLi50aGlzLmRlZmF1bHRUZW1wbGF0ZXNdO1xuICAgICAgdGhpcy5jYXRlZ29yeUxpc3QgPSB0aGlzLmRlZmF1bHRDYXRlZ29yeUxpc3Q7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0aGlzLmN1c3RvbVRlbXBsYXRlcyA9PT0gbnVsbCkge1xuICAgICAgICB0aGlzLmdldEN1c3RvbVRlbXBsYXRlcygpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy50ZW1wbGF0ZUxpc3QgPSBbLi4udGhpcy5jdXN0b21UZW1wbGF0ZXNdO1xuICAgICAgICB0aGlzLmNhdGVnb3J5TGlzdCA9IHRoaXMudXNlckNyZWF0ZWRDYXRlZ29yeUxpc3Q7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZ2V0Q3VzdG9tVGVtcGxhdGVzKCkge1xuICAgIHRoaXMubG9hZGVyID0gdHJ1ZTtcbiAgICBjb25zdCBwYXlsb2FkID0ge1xuICAgICAgdHlwZTogJ2N1c3RvbScsXG4gICAgICBjYXRlZ29yeUlkOiB0aGlzLnNlbGVjdGVkQ2F0ZWdvcnlJZC5tYXAoXG4gICAgICAgIChjYXRlZ29yeTogYW55KSA9PiBjYXRlZ29yeS5pdGVtX2lkXG4gICAgICApLFxuICAgIH07XG4gICAgdGhpcy50ZW1wbGF0ZVNlcnZpY2UuZmV0Y2hUZW1wbGF0ZXMocGF5bG9hZCkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xuICAgICAgdGhpcy5jdXN0b21UZW1wbGF0ZXMgPSByZXM/LnRlbXBsYXRlcyA/PyBbXTtcbiAgICAgIHRoaXMubWFwQ3VzdG9tVGVtcGxhdGUoKTtcbiAgICB9KTtcbiAgfVxuXG4gIG1hcEN1c3RvbVRlbXBsYXRlKCkge1xuICAgIHRoaXMucG9saWN5U2VydmljZS5nZXRDYXRlZ29yaWVzTGlzdCgpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcbiAgICAgIHRoaXMudXNlckNyZWF0ZWRDYXRlZ29yeUxpc3QgPSBbLi4ucmVzXTtcbiAgICAgIHRoaXMudXNlckNyZWF0ZWRDYXRlZ29yeUxpc3QgPSB0aGlzLnVzZXJDcmVhdGVkQ2F0ZWdvcnlMaXN0Lm1hcChcbiAgICAgICAgKHJlczogYW55KSA9PiB7XG4gICAgICAgICAgY29uc3QgcGFyZW50SXRlbXMgPSBbLi4ubmV3IFNldChyZXM/LnBhcmVudF9pdGVtcyA/PyBbXSldO1xuICAgICAgICAgIHBhcmVudEl0ZW1zLnVuc2hpZnQocmVzLml0ZW1fbmFtZSk7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIC4uLnJlcyxcbiAgICAgICAgICAgIG5hbWU6IHBhcmVudEl0ZW1zPy5qb2luKCcgPCAnKSxcbiAgICAgICAgICAgIHBhcmVudF9pdGVtczogcmVzPy5wYXJlbnRfaXRlbXMucmV2ZXJzZSgpLFxuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgICBpZiAodGhpcy5jdXN0b21UZW1wbGF0ZXMpIHtcbiAgICAgICAgdGhpcy5jdXN0b21UZW1wbGF0ZXMgPSB0aGlzLmN1c3RvbVRlbXBsYXRlcy5tYXAoKHRlbXBsYXRlOiBhbnkpID0+IHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4udGVtcGxhdGUsXG4gICAgICAgICAgICBjYXRlZ29yeURldGFpbHM6IHRoaXMudXNlckNyZWF0ZWRDYXRlZ29yeUxpc3QuZmlsdGVyKFxuICAgICAgICAgICAgICAoY2F0ZWdvcnk6IGFueSkgPT5cbiAgICAgICAgICAgICAgICB0ZW1wbGF0ZT8uY2F0ZWdvcnlJZD8uaW5jbHVkZXMoY2F0ZWdvcnkuaXRlbV9pZClcbiAgICAgICAgICAgICksXG4gICAgICAgICAgfTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICB0aGlzLnRlbXBsYXRlTGlzdCA9IFsuLi5uZXcgU2V0KHRoaXMuY3VzdG9tVGVtcGxhdGVzID8/IFtdKV07XG4gICAgICBjb25zdCBjYXRlZ29yeUlkcyA9IHRoaXMuc2VsZWN0ZWRDYXRlZ29yeUlkLm1hcChcbiAgICAgICAgKGNhdGVnb3J5OiBhbnkpID0+IGNhdGVnb3J5Lml0ZW1faWRcbiAgICAgICk7XG4gICAgICB0aGlzLnVzZXJDcmVhdGVkQ2F0ZWdvcnlMaXN0ID0gdGhpcy51c2VyQ3JlYXRlZENhdGVnb3J5TGlzdC5maWx0ZXIoXG4gICAgICAgIChjYXRlZ29yeTogYW55KSA9PiBjYXRlZ29yeUlkcz8uaW5jbHVkZXMoY2F0ZWdvcnkuaXRlbV9pZClcbiAgICAgICk7XG4gICAgICB0aGlzLmxvYWRlciA9IGZhbHNlO1xuICAgICAgdGhpcy5jYXRlZ29yeUxpc3QgPSB0aGlzLnVzZXJDcmVhdGVkQ2F0ZWdvcnlMaXN0O1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0VGVtcGxhdGUoKSB7XG4gICAgdGhpcy5sb2FkZXIgPSB0cnVlO1xuICAgIGNvbnN0IHBheWxvYWQgPSB7XG4gICAgICB0eXBlOiAnZGVmYXVsdCcsXG4gICAgfTtcbiAgICBmb3JrSm9pbihbXG4gICAgICB0aGlzLnRlbXBsYXRlU2VydmljZS5mZXRjaFRlbXBsYXRlcyhwYXlsb2FkKSxcbiAgICAgIHRoaXMudGVtcGxhdGVTZXJ2aWNlLmZldGNoRGVmYXVsdENhdGVnb3JpZXMoKSxcbiAgICBdKS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XG4gICAgICB0aGlzLmRlZmF1bHRUZW1wbGF0ZXMgPSByZXNbMF0/LnRlbXBsYXRlcztcbiAgICAgIHRoaXMuZGVmYXVsdENhdGVnb3J5TGlzdCA9IHJlc1sxXTtcbiAgICAgIHRoaXMubWFwRGVmYXVsdFRlbXBsYXRlKCk7XG4gICAgICB0aGlzLmNhdGVnb3J5TGlzdCA9IFsuLi5uZXcgU2V0KHRoaXMuZGVmYXVsdENhdGVnb3J5TGlzdCldO1xuXG4gICAgICB0aGlzLnRlbXBsYXRlTGlzdCA9IHRoaXMuZGVmYXVsdFRlbXBsYXRlcztcbiAgICAgIHRoaXMubG9hZGVyID0gZmFsc2U7XG4gICAgfSk7XG4gIH1cblxuICBtYXBEZWZhdWx0VGVtcGxhdGUoKSB7XG4gICAgdGhpcy5kZWZhdWx0VGVtcGxhdGVzID0gdGhpcy5kZWZhdWx0VGVtcGxhdGVzLm1hcCgodGVtcGxhdGU6IGFueSkgPT4ge1xuICAgICAgY29uc3QgY2F0ZWdvcnkgPSB0aGlzLmRlZmF1bHRDYXRlZ29yeUxpc3QuZmlsdGVyKChjYXRlZ29yeTogYW55KSA9PlxuICAgICAgICB0ZW1wbGF0ZT8uY2F0ZWdvcnlJZD8uaW5jbHVkZXMoY2F0ZWdvcnkuaXRlbV9pZClcbiAgICAgICk7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi50ZW1wbGF0ZSxcbiAgICAgICAgY2F0ZWdvcnlEZXRhaWxzOiBjYXRlZ29yeSxcbiAgICAgIH07XG4gICAgfSk7XG4gIH1cblxuICBzb3J0Qnkoa2V5OiBzdHJpbmcpIHtcbiAgICB0aGlzLnNvcnRTdGF0dXMgPSB0aGlzLnNvcnRTdGF0dXMgKiAtMTtcbiAgICB0aGlzLnRlbXBsYXRlTGlzdCA9IHRoaXMudGVtcGxhdGVTZXJ2aWNlLnNvcnRCeUtleShcbiAgICAgIHRoaXMudGVtcGxhdGVMaXN0LFxuICAgICAga2V5LFxuICAgICAgdGhpcy5zb3J0U3RhdHVzXG4gICAgKTtcbiAgfVxuXG4gIG9uU2VsZWN0Q2F0ZWdvcnkoY2F0ZWdvcnk6IGFueSwgZXZlbnQ6IGFueSkge1xuICAgIGlmIChldmVudC50YXJnZXQuY2hlY2tlZCkge1xuICAgICAgdGhpcy5zZWxlY3RlZENhdGVnb3J5LnB1c2goY2F0ZWdvcnk/Lml0ZW1faWQpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNlbGVjdGVkQ2F0ZWdvcnkgPSB0aGlzLnNlbGVjdGVkQ2F0ZWdvcnkuZmlsdGVyKFxuICAgICAgICAoaWQ6IGFueSkgPT4gaWQgIT09IGNhdGVnb3J5Py5pdGVtX2lkXG4gICAgICApO1xuICAgIH1cbiAgICB0aGlzLnNlbGVjdGVkQ2F0ZWdvcnkgPSBbLi4ubmV3IFNldCh0aGlzLnNlbGVjdGVkQ2F0ZWdvcnkpXTtcbiAgfVxuXG4gIG9uQXBwbHlGaWx0ZXIoZXZlbnQ6IGFueSkge1xuICAgIGlmICghZXZlbnQpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRDYXRlZ29yeSA9IFtdO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBsZXQgc2VsZWN0ZWRUZW1wbGF0ZSA9XG4gICAgICB0aGlzLmN1cnJlbnRUYWIgPT09ICdWQ09NUExZJ1xuICAgICAgICA/IHRoaXMuZGVmYXVsdFRlbXBsYXRlc1xuICAgICAgICA6IHRoaXMuY3VzdG9tVGVtcGxhdGVzID8/IFtdO1xuICAgIHNlbGVjdGVkVGVtcGxhdGUgPSBbLi4ubmV3IFNldChzZWxlY3RlZFRlbXBsYXRlKV07XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRDYXRlZ29yeS5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMudGVtcGxhdGVMaXN0ID0gc2VsZWN0ZWRUZW1wbGF0ZTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy50ZW1wbGF0ZUxpc3QgPSBzZWxlY3RlZFRlbXBsYXRlLmZpbHRlcigodGVtcGxhdGU6IGFueSkgPT4ge1xuICAgICAgcmV0dXJuIHRlbXBsYXRlPy5jYXRlZ29yeUlkPy5zb21lKChpZDogYW55KSA9PlxuICAgICAgICB0aGlzLnNlbGVjdGVkQ2F0ZWdvcnkuaW5jbHVkZXMoaWQpXG4gICAgICApO1xuICAgIH0pO1xuICB9XG5cbiAgb25TZWxlY3RUZW1wbGF0ZSh0ZW1wbGF0ZTogYW55KSB7XG4gICAgdGhpcy5zZWxlY3RlZFRlbXBsYXRlID0gW3RlbXBsYXRlXTtcbiAgfVxuXG4gIHNhdmUoKSB7XG4gICAgdGhpcy5vblRlbXBsYXRlU2VsZWN0LmVtaXQodGhpcy5zZWxlY3RlZFRlbXBsYXRlKTtcbiAgfVxuXG4gIGNsb3NlKCkge1xuICAgIHRoaXMub25UZW1wbGF0ZVNlbGVjdC5lbWl0KFtdKTtcbiAgfVxuXG4gIGRlbGV0ZUV2ZW50KCkge1xuICAgIHRoaXMuc2VsZWN0ZWRUZW1wbGF0ZSA9IFtdO1xuICB9XG5cbiAgb25QcmV2aWV3KGRldGFpbHM6IGFueSkge1xuICAgIHRoaXMubG9hZGVyID0gZmFsc2U7XG4gICAgdGhpcy5pc1ByZXZpZXcgPSB0cnVlO1xuICAgIHRoaXMucHJldmlld1RlbXBsYXRlID0gZGV0YWlscztcbiAgICB0aGlzLmZpbGVVcmwgPSBgJHt0aGlzLmVudj8uczNVcmx9JHt0aGlzLmVudj8uczNCdWNrZXR9LyR7ZGV0YWlscz8uczNEb2N4UGF0aH1gO1xuICAgIGNvbnNvbGUubG9nKHRoaXMuZmlsZVVybCwgJ2ZpbGVVcmwnKTtcbiAgfVxuXG4gIG9uQ2xvc2VQcmV2aWV3KCkge1xuICAgIHRoaXMuaXNQcmV2aWV3ID0gZmFsc2U7XG4gICAgdGhpcy5wcmV2aWV3VGVtcGxhdGUgPSBudWxsO1xuICB9XG59XG4iLCI8ZGl2XG4gIGNsYXNzPVwic2VsZWN0LXRlbXBsYXRlLWxpc3RcIlxuICBbY2xhc3MuYW5pbWF0ZV09XCJhbmltYXRpb25cIlxuICBbY2xhc3Mud2l0aFByZXZpZXddPVwiaXNQcmV2aWV3XCJcbj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc1ByZXZpZXdcIj5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cInNlbGVjdC10ZW1wbGF0ZS1saXN0LWhlYWQgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWJldHdlZW4gdngtcGwtNCB2eC1wci00XCJcbiAgICA+XG4gICAgICA8ZGl2IGNsYXNzPVwidngtZnMtMTQgdngtZnctNTAwIHZ4LWxhYmVsLXR4dFwiPlNlbGVjdCBhIFRlbXBsYXRlPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInNlbGVjdC10ZW1wbGF0ZS1saXN0LWJvZHlcIj5cbiAgICAgIDxhcHAtbG9hZGVyLWlubGluZSAqbmdJZj1cImxvYWRlclwiPjwvYXBwLWxvYWRlci1pbmxpbmU+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3QtdGVtcGxhdGUtbGlzdC10YWIgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1tYi0yXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAoY2xpY2spPVwic3dpdGNoVGFiKCdWQ09NUExZJylcIlxuICAgICAgICAgIGNsYXNzPVwidGFiLWJ0biB2eC1mcy0xMSB2eC1mdy01MDAgdngtdHQtdXBwZXJjYXNlIHZ4LXAtMCB2eC1wYi0yIHZ4LW0tMCB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWxoLTRcIlxuICAgICAgICAgIFtjbGFzcy5hY3RpdmVdPVwiY3VycmVudFRhYiA9PT0gJ1ZDT01QTFknXCJcbiAgICAgICAgPlxuICAgICAgICAgIFZDT01QTFkgVEVNUExBVEVTXG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgKGNsaWNrKT1cInN3aXRjaFRhYignVVNFUl9DUkVBVEVEJylcIlxuICAgICAgICAgIGNsYXNzPVwidGFiLWJ0biB2eC1mcy0xMSB2eC1mdy01MDAgdngtdHQtdXBwZXJjYXNlIHZ4LXAtMCB2eC1wYi0yIHZ4LW0tMCB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWxoLTRcIlxuICAgICAgICAgIFtjbGFzcy5hY3RpdmVdPVwiY3VycmVudFRhYiA9PT0gJ1VTRVJfQ1JFQVRFRCdcIlxuICAgICAgICA+XG4gICAgICAgICAgVVNFUi1DUkVBVEVEIFRFTVBMQVRFU1xuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cInNlYXJjaC1ibG9jayB2eC1tYi0yXCI+XG4gICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTBiOzwvaT5cbiAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgWyhuZ01vZGVsKV09XCJzZWFyY2hUZW1wbGF0ZVwiIHBsYWNlaG9sZGVyPVwiU2VhcmNoXCIgLz5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImJvZHktdG9wIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1lbmQgdngtbWItMlwiPlxuICAgICAgICA8Y3MtbXVsdGktc2VsZWN0XG4gICAgICAgICAgKHNlYXJjaFRleHQpPVwic2VhcmNoQ2F0ZWdvcnkgPSAkZXZlbnRcIlxuICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInU2VsZWN0IENhdGVnb3J5J1wiXG4gICAgICAgICAgW3ZhbHVlXT1cInNlbGVjdGVkQ2F0ZWdvcnlcIlxuICAgICAgICAgIChhcHBseUZpbHRlcik9XCJvbkFwcGx5RmlsdGVyKCRldmVudClcIlxuICAgICAgICA+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgKm5nRm9yPVwiXG4gICAgICAgICAgICAgIGxldCBlYWNoQ2F0ZWdvcnkgb2YgY2F0ZWdvcnlMaXN0XG4gICAgICAgICAgICAgICAgfCBTZWFyY2hCeUtleXMgOiBbJ25hbWUnXSA6IHNlYXJjaENhdGVnb3J5XG4gICAgICAgICAgICBcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxjcy1tdWx0aS1zZWxlY3Qtb3B0aW9uXG4gICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cImVhY2hDYXRlZ29yeT8ubmFtZVwiXG4gICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCJcbiAgICAgICAgICAgICAgZGVsYXk9XCIwXCJcbiAgICAgICAgICAgICAgW3ZhbHVlXT1cImVhY2hDYXRlZ29yeT8uaXRlbV9pZFwiXG4gICAgICAgICAgICAgIChjaGFuZ2UpPVwib25TZWxlY3RDYXRlZ29yeShlYWNoQ2F0ZWdvcnksICRldmVudClcIlxuICAgICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJ0cnVlXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge3sgZWFjaENhdGVnb3J5Py5uYW1lIH19XG4gICAgICAgICAgICA8L2NzLW11bHRpLXNlbGVjdC1vcHRpb24+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvY3MtbXVsdGktc2VsZWN0PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiYm9keS1pbm5lciB2eC1tYi0xXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhbG9hZGVyXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgdGVtcGxhdGVMaXN0XG4gICAgICAgICAgICAgICAgfCBTZWFyY2hCeUtleXNcbiAgICAgICAgICAgICAgICAgIDogWyduYW1lJywgJ2NhdGVnb3J5RGV0YWlscyddXG4gICAgICAgICAgICAgICAgICA6IHNlYXJjaFRlbXBsYXRlIGFzIGFsbFRlbXBsYXRlXG4gICAgICAgICAgICBcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxhcHAtdGVtcGxhdGUtbGlzdC10YWJsZVxuICAgICAgICAgICAgICAqbmdJZj1cImFsbFRlbXBsYXRlLmxlbmd0aFwiXG4gICAgICAgICAgICAgIFt0ZW1wbGF0ZUxpc3RdPVwiYWxsVGVtcGxhdGVcIlxuICAgICAgICAgICAgICBbbG9hZGVyXT1cImxvYWRlclwiXG4gICAgICAgICAgICAgIFtjYXRlZ29yeUxpc3RdPVwiY2F0ZWdvcnlMaXN0XCJcbiAgICAgICAgICAgICAgW3NlbGVjdGVkVGVtcGxhdGVdPVwic2VsZWN0ZWRUZW1wbGF0ZVswXVwiXG4gICAgICAgICAgICAgIFtmZWF0dXJlXT1cImZlYXR1cmVcIlxuICAgICAgICAgICAgICAob25Tb3J0KT1cInNvcnRCeSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgKG9uU2VsZWN0VGVtcGxhdGUpPVwib25TZWxlY3RUZW1wbGF0ZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgKG9uUHJldmlldyk9XCJvblByZXZpZXcoJGV2ZW50KVwiXG4gICAgICAgICAgICA+PC9hcHAtdGVtcGxhdGUtbGlzdC10YWJsZT5cbiAgICAgICAgICAgIDxhcHAtbm8tZGF0YVxuICAgICAgICAgICAgICAqbmdJZj1cIiFhbGxUZW1wbGF0ZT8ubGVuZ3RoXCJcbiAgICAgICAgICAgICAgW25vRGF0YUltYWdlXT1cIk5PX0RBVEFfRk9VTkRfSU1BR0VcIlxuICAgICAgICAgICAgICBbbm9EYXRhVGV4dF09XCJOT19EQVRBX0ZPVU5EX01FU1NBR0VcIlxuICAgICAgICAgICAgPjwvYXBwLW5vLWRhdGE+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxhcHAtZmxvYXRpbmctYmFyXG4gICAgICAgIChjbG9zZUV2ZW50KT1cInNhdmUoKVwiXG4gICAgICAgIChjbG9zZUxpc3QpPVwiY2xvc2UoKVwiXG4gICAgICAgIFtpc0Rpc2FibGVkXT1cInNlbGVjdGVkVGVtcGxhdGU/Lmxlbmd0aCA9PT0gMFwiXG4gICAgICAgIFtzZWxlY3RlZERhdGFdPVwic2VsZWN0ZWRUZW1wbGF0ZVwiXG4gICAgICAgIFtkaXNwbGF5RWxlbWVudEtleV09XCInbmFtZSdcIlxuICAgICAgICBbc2luZ3VsYXJUZXh0XT1cIidUZW1wbGF0ZSBTZWxlY3RlZCdcIlxuICAgICAgICAoZGVsZXRlRXZlbnQpPVwiZGVsZXRlRXZlbnQoKVwiXG4gICAgICA+XG4gICAgICA8L2FwcC1mbG9hdGluZy1iYXI+XG4gICAgPC9kaXY+XG4gIDwvbmctY29udGFpbmVyPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNQcmV2aWV3XCI+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJzZWxlY3QtdGVtcGxhdGUtbGlzdC1oZWFkIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtcGwtNCB2eC1wci00XCJcbiAgICA+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIChjbGljayk9XCJvbkNsb3NlUHJldmlldygpXCJcbiAgICAgICAgY2xhc3M9XCJwcmV2aWV3QnRuIHZ4LWZzLTE0IHZ4LWZ3LTUwMCB2eC1sYWJlbC10eHQgdngtcC0wIHZ4LW0tMCB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyXCJcbiAgICAgID5cbiAgICAgICAgPGkgY2xhc3M9XCJpY29ucyB2eC1tci0xXCI+JiN4ZTkxZDs8L2k+UHJldmlld1xuICAgICAgPC9idXR0b24+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwidGVtcGxhdGUtbmFtZSB2eC1mcy0xNCB2eC1tbC0xXCJcbiAgICAgICAgW2FwcFRvb2x0aXBdPVwicHJldmlld1RlbXBsYXRlPy5uYW1lXCJcbiAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIlxuICAgICAgICBkZWxheT1cIjBcIlxuICAgICAgICB0eXBlPVwiYmxhY2tcIlxuICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJmYWxzZVwiXG4gICAgICA+XG4gICAgICAgIHt7IHByZXZpZXdUZW1wbGF0ZT8ubmFtZSB9fVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInByZXZpZXctdGVtcGxhdGUtYm9keSB2eC1kLWZsZXggdngtanVzdGlmeS1jZW50ZXJcIj5cbiAgICAgIDxhcHAtbG9hZGVyLWlubGluZSAqbmdJZj1cImxvYWRlclwiPjwvYXBwLWxvYWRlci1pbmxpbmU+XG5cbiAgICAgIDxkaXYgKm5nSWY9XCIhbG9hZGVyXCIgY2xhc3M9XCJwcmV2aWV3LXRlbXBsYXRlLWJvZHktaW5uZXJcIj5cbiAgICAgICAgPG5neC1kb2Mtdmlld2VyXG4gICAgICAgICAgW3VybF09XCJmaWxlVXJsXCJcbiAgICAgICAgICB2aWV3ZXI9XCJvZmZpY2VcIlxuICAgICAgICAgIHN0eWxlPVwid2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTsgbWFyZ2luOiAwXCJcbiAgICAgICAgICBkaXNhYmxlQ29udGVudD1cInBvcG91dC1oaWRlXCJcbiAgICAgICAgPlxuICAgICAgICA8L25neC1kb2Mtdmlld2VyPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvbmctY29udGFpbmVyPlxuPC9kaXY+XG4iXX0=
208
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LXRlbXBsYXRlLWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvc2hhcmVkQ29tcG9uZW50cy9wb2xpY3ktdGVtcGxhdGUvc2VsZWN0LXRlbXBsYXRlLWxpc3Qvc2VsZWN0LXRlbXBsYXRlLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvc2hhcmVkQ29tcG9uZW50cy9wb2xpY3ktdGVtcGxhdGUvc2VsZWN0LXRlbXBsYXRlLWxpc3Qvc2VsZWN0LXRlbXBsYXRlLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV2RSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hDLE9BQU8sRUFDTCxtQkFBbUIsRUFDbkIscUJBQXFCLEdBQ3RCLE1BQU0sZ0NBQWdDLENBQUM7Ozs7Ozs7Ozs7Ozs7OztBQVF4QyxNQUFNLE9BQU8sMkJBQTJCO0lBd0J0QyxZQUNVLGVBQWdDLEVBQ2hDLGFBQTRCO1FBRDVCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQXpCdEMsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixxQkFBZ0IsR0FBVSxFQUFFLENBQUM7UUFDN0Isb0JBQWUsR0FBaUIsSUFBSSxDQUFDO1FBQ3JDLGlCQUFZLEdBQVUsRUFBRSxDQUFDO1FBQ3pCLGVBQVUsR0FBRyxTQUFTLENBQUM7UUFDdkIsV0FBTSxHQUFZLEtBQUssQ0FBQztRQUN4QixpQkFBWSxHQUFVLEVBQUUsQ0FBQztRQUN6Qix3QkFBbUIsR0FB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QUMsVUFBZTtRQUM1QixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztRQUNuQixJQUFJLENBQUMsZUFBZSxDQUFDLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUM1RCxJQUFJLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQkFDWixNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsR0FBRyxDQUFDO2dCQUN6QixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztnQkFDcEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxRQUFRLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1lBQ3hCLENBQUM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDOytHQTFOVSwyQkFBMkI7bUdBQTNCLDJCQUEyQix5S0NkeEMsbXNKQW1JQTs7NEZEckhhLDJCQUEyQjtrQkFMdkMsU0FBUzsrQkFDRSwwQkFBMEI7a0lBeUIzQixrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0ksZ0JBQWdCO3NCQUF6QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRlbXBsYXRlU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3RlbXBsYXRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgZm9ya0pvaW4gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIE5PX0RBVEFfRk9VTkRfSU1BR0UsXG4gIE5PX0RBVEFfRk9VTkRfTUVTU0FHRSxcbn0gZnJvbSAnLi4vY29uc3RhbnRzL3RlbXBsYXRlLmNvbnN0YW50JztcbmltcG9ydCB7IFBvbGljeVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi93b3JrZmxvdy1zZXJ2aWNlcy9wb2xpY3kuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1zZWxlY3QtdGVtcGxhdGUtbGlzdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWxlY3QtdGVtcGxhdGUtbGlzdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NlbGVjdC10ZW1wbGF0ZS1saXN0LmNvbXBvbmVudC5sZXNzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFNlbGVjdFRlbXBsYXRlTGlzdENvbXBvbmVudCB7XG4gIGFuaW1hdGlvbiA9IGZhbHNlO1xuICBkZWZhdWx0VGVtcGxhdGVzOiBhbnlbXSA9IFtdO1xuICBjdXN0b21UZW1wbGF0ZXM6IGFueVtdIHwgbnVsbCA9IG51bGw7XG4gIHRlbXBsYXRlTGlzdDogYW55W10gPSBbXTtcbiAgY3VycmVudFRhYiA9ICdWQ09NUExZJztcbiAgbG9hZGVyOiBib29sZWFuID0gZmFsc2U7XG4gIGNhdGVnb3J5TGlzdDogYW55W10gPSBbXTtcbiAgZGVmYXVsdENhdGVnb3J5TGlzdDogYW55W10gPSBbXTtcbiAgdXNlckNyZWF0ZWRDYXRlZ29yeUxpc3Q6IGFueVtdID0gW107XG4gIHNvcnRTdGF0dXMgPSAtMTtcbiAgc2VhcmNoQ2F0ZWdvcnk6IHN0cmluZyA9ICcnO1xuICBzZWFyY2hUZW1wbGF0ZTogc3RyaW5nID0gJyc7XG4gIHNlbGVjdGVkQ2F0ZWdvcnk6IGFueVtdID0gW107XG4gIE5PX0RBVEFfRk9VTkRfSU1BR0UgPSBOT19EQVRBX0ZPVU5EX0lNQUdFO1xuICBOT19EQVRBX0ZPVU5EX01FU1NBR0UgPSBOT19EQVRBX0ZPVU5EX01FU1NBR0U7XG4gIHNlbGVjdGVkVGVtcGxhdGU6IGFueVtdID0gW107XG4gIGlzUHJldmlldyA9IGZhbHNlO1xuICBkb2NEYXRhOiBhbnkgfCBudWxsID0gbnVsbDtcbiAgcHJldmlld1RlbXBsYXRlOiBhbnk7XG5cbiAgQElucHV0KCkgc2VsZWN0ZWRDYXRlZ29yeUlkOiBudW1iZXJbXSA9IFtdO1xuICBAT3V0cHV0KCkgb25UZW1wbGF0ZVNlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgdGVtcGxhdGVTZXJ2aWNlOiBUZW1wbGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwb2xpY3lTZXJ2aWNlOiBQb2xpY3lTZXJ2aWNlXG4gICkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnNldEFuaW1hdGlvbigpO1xuICAgIHRoaXMuZ2V0VGVtcGxhdGUoKTtcbiAgfVxuXG4gIHNldEFuaW1hdGlvbigpIHtcbiAgICB0aGlzLmFuaW1hdGlvbiA9IHRydWU7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmFuaW1hdGlvbiA9IGZhbHNlO1xuICAgIH0sIDMwMCk7XG4gIH1cblxuICBzd2l0Y2hUYWIodGFiOiBzdHJpbmcpIHtcbiAgICB0aGlzLmN1cnJlbnRUYWIgPSB0YWI7XG4gICAgdGhpcy5zZWxlY3RlZENhdGVnb3J5ID0gW107XG4gICAgaWYgKHRhYiA9PT0gJ1ZDT01QTFknKSB7XG4gICAgICB0aGlzLnRlbXBsYXRlTGlzdCA9IFsuLi50aGlzLmRlZmF1bHRUZW1wbGF0ZXNdO1xuICAgICAgdGhpcy5jYXRlZ29yeUxpc3QgPSB0aGlzLmRlZmF1bHRDYXRlZ29yeUxpc3Q7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0aGlzLmN1c3RvbVRlbXBsYXRlcyA9PT0gbnVsbCkge1xuICAgICAgICB0aGlzLmdldEN1c3RvbVRlbXBsYXRlcygpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy50ZW1wbGF0ZUxpc3QgPSBbLi4udGhpcy5jdXN0b21UZW1wbGF0ZXNdO1xuICAgICAgICB0aGlzLmNhdGVnb3J5TGlzdCA9IHRoaXMudXNlckNyZWF0ZWRDYXRlZ29yeUxpc3Q7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZ2V0Q3VzdG9tVGVtcGxhdGVzKCkge1xuICAgIHRoaXMubG9hZGVyID0gdHJ1ZTtcbiAgICBjb25zdCBwYXlsb2FkID0ge1xuICAgICAgdHlwZTogJ2N1c3RvbScsXG4gICAgICBjYXRlZ29yeUlkOiB0aGlzLnNlbGVjdGVkQ2F0ZWdvcnlJZC5tYXAoXG4gICAgICAgIChjYXRlZ29yeTogYW55KSA9PiBjYXRlZ29yeS5pdGVtX2lkXG4gICAgICApLFxuICAgIH07XG4gICAgdGhpcy50ZW1wbGF0ZVNlcnZpY2UuZmV0Y2hUZW1wbGF0ZXMocGF5bG9hZCkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xuICAgICAgdGhpcy5jdXN0b21UZW1wbGF0ZXMgPSByZXM/LnRlbXBsYXRlcyA/PyBbXTtcbiAgICAgIHRoaXMubWFwQ3VzdG9tVGVtcGxhdGUoKTtcbiAgICB9KTtcbiAgfVxuXG4gIG1hcEN1c3RvbVRlbXBsYXRlKCkge1xuICAgIHRoaXMucG9saWN5U2VydmljZS5nZXRDYXRlZ29yaWVzTGlzdCgpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcbiAgICAgIHRoaXMudXNlckNyZWF0ZWRDYXRlZ29yeUxpc3QgPSBbLi4ucmVzXTtcbiAgICAgIHRoaXMudXNlckNyZWF0ZWRDYXRlZ29yeUxpc3QgPSB0aGlzLnVzZXJDcmVhdGVkQ2F0ZWdvcnlMaXN0Lm1hcChcbiAgICAgICAgKHJlczogYW55KSA9PiB7XG4gICAgICAgICAgY29uc3QgcGFyZW50SXRlbXMgPSBbLi4ubmV3IFNldChyZXM/LnBhcmVudF9pdGVtcyA/PyBbXSldO1xuICAgICAgICAgIHBhcmVudEl0ZW1zLnVuc2hpZnQocmVzLml0ZW1fbmFtZSk7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIC4uLnJlcyxcbiAgICAgICAgICAgIG5hbWU6IHBhcmVudEl0ZW1zPy5qb2luKCcgPCAnKSxcbiAgICAgICAgICAgIHBhcmVudF9pdGVtczogcmVzPy5wYXJlbnRfaXRlbXMucmV2ZXJzZSgpLFxuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgICBpZiAodGhpcy5jdXN0b21UZW1wbGF0ZXMpIHtcbiAgICAgICAgdGhpcy5jdXN0b21UZW1wbGF0ZXMgPSB0aGlzLmN1c3RvbVRlbXBsYXRlcy5tYXAoKHRlbXBsYXRlOiBhbnkpID0+IHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4udGVtcGxhdGUsXG4gICAgICAgICAgICBjYXRlZ29yeURldGFpbHM6IHRoaXMudXNlckNyZWF0ZWRDYXRlZ29yeUxpc3QuZmlsdGVyKFxuICAgICAgICAgICAgICAoY2F0ZWdvcnk6IGFueSkgPT5cbiAgICAgICAgICAgICAgICB0ZW1wbGF0ZT8uY2F0ZWdvcnlJZD8uaW5jbHVkZXMoY2F0ZWdvcnkuaXRlbV9pZClcbiAgICAgICAgICAgICksXG4gICAgICAgICAgfTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICB0aGlzLnRlbXBsYXRlTGlzdCA9IFsuLi5uZXcgU2V0KHRoaXMuY3VzdG9tVGVtcGxhdGVzID8/IFtdKV07XG4gICAgICBjb25zdCBjYXRlZ29yeUlkcyA9IHRoaXMuc2VsZWN0ZWRDYXRlZ29yeUlkLm1hcChcbiAgICAgICAgKGNhdGVnb3J5OiBhbnkpID0+IGNhdGVnb3J5Lml0ZW1faWRcbiAgICAgICk7XG4gICAgICB0aGlzLnVzZXJDcmVhdGVkQ2F0ZWdvcnlMaXN0ID0gdGhpcy51c2VyQ3JlYXRlZENhdGVnb3J5TGlzdC5maWx0ZXIoXG4gICAgICAgIChjYXRlZ29yeTogYW55KSA9PiBjYXRlZ29yeUlkcz8uaW5jbHVkZXMoY2F0ZWdvcnkuaXRlbV9pZClcbiAgICAgICk7XG4gICAgICB0aGlzLmxvYWRlciA9IGZhbHNlO1xuICAgICAgdGhpcy5jYXRlZ29yeUxpc3QgPSB0aGlzLnVzZXJDcmVhdGVkQ2F0ZWdvcnlMaXN0O1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0VGVtcGxhdGUoKSB7XG4gICAgdGhpcy5sb2FkZXIgPSB0cnVlO1xuICAgIGNvbnN0IHBheWxvYWQgPSB7XG4gICAgICB0eXBlOiAnZGVmYXVsdCcsXG4gICAgfTtcbiAgICBmb3JrSm9pbihbXG4gICAgICB0aGlzLnRlbXBsYXRlU2VydmljZS5mZXRjaFRlbXBsYXRlcyhwYXlsb2FkKSxcbiAgICAgIHRoaXMudGVtcGxhdGVTZXJ2aWNlLmZldGNoRGVmYXVsdENhdGVnb3JpZXMoKSxcbiAgICBdKS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XG4gICAgICB0aGlzLmRlZmF1bHRUZW1wbGF0ZXMgPSByZXNbMF0/LnRlbXBsYXRlcztcbiAgICAgIHRoaXMuZGVmYXVsdENhdGVnb3J5TGlzdCA9IHJlc1sxXTtcbiAgICAgIHRoaXMubWFwRGVmYXVsdFRlbXBsYXRlKCk7XG4gICAgICB0aGlzLmNhdGVnb3J5TGlzdCA9IFsuLi5uZXcgU2V0KHRoaXMuZGVmYXVsdENhdGVnb3J5TGlzdCldO1xuXG4gICAgICB0aGlzLnRlbXBsYXRlTGlzdCA9IHRoaXMuZGVmYXVsdFRlbXBsYXRlcztcbiAgICAgIHRoaXMubG9hZGVyID0gZmFsc2U7XG4gICAgfSk7XG4gIH1cblxuICBtYXBEZWZhdWx0VGVtcGxhdGUoKSB7XG4gICAgdGhpcy5kZWZhdWx0VGVtcGxhdGVzID0gdGhpcy5kZWZhdWx0VGVtcGxhdGVzLm1hcCgodGVtcGxhdGU6IGFueSkgPT4ge1xuICAgICAgY29uc3QgY2F0ZWdvcnkgPSB0aGlzLmRlZmF1bHRDYXRlZ29yeUxpc3QuZmlsdGVyKChjYXRlZ29yeTogYW55KSA9PlxuICAgICAgICB0ZW1wbGF0ZT8uY2F0ZWdvcnlJZD8uaW5jbHVkZXMoY2F0ZWdvcnkuaXRlbV9pZClcbiAgICAgICk7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi50ZW1wbGF0ZSxcbiAgICAgICAgY2F0ZWdvcnlEZXRhaWxzOiBjYXRlZ29yeSxcbiAgICAgIH07XG4gICAgfSk7XG4gIH1cblxuICBzb3J0Qnkoa2V5OiBzdHJpbmcpIHtcbiAgICB0aGlzLnNvcnRTdGF0dXMgPSB0aGlzLnNvcnRTdGF0dXMgKiAtMTtcbiAgICB0aGlzLnRlbXBsYXRlTGlzdCA9IHRoaXMudGVtcGxhdGVTZXJ2aWNlLnNvcnRCeUtleShcbiAgICAgIHRoaXMudGVtcGxhdGVMaXN0LFxuICAgICAga2V5LFxuICAgICAgdGhpcy5zb3J0U3RhdHVzXG4gICAgKTtcbiAgfVxuXG4gIG9uU2VsZWN0Q2F0ZWdvcnkoY2F0ZWdvcnk6IGFueSwgZXZlbnQ6IGFueSkge1xuICAgIGlmIChldmVudC50YXJnZXQuY2hlY2tlZCkge1xuICAgICAgdGhpcy5zZWxlY3RlZENhdGVnb3J5LnB1c2goY2F0ZWdvcnk/Lml0ZW1faWQpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNlbGVjdGVkQ2F0ZWdvcnkgPSB0aGlzLnNlbGVjdGVkQ2F0ZWdvcnkuZmlsdGVyKFxuICAgICAgICAoaWQ6IGFueSkgPT4gaWQgIT09IGNhdGVnb3J5Py5pdGVtX2lkXG4gICAgICApO1xuICAgIH1cbiAgICB0aGlzLnNlbGVjdGVkQ2F0ZWdvcnkgPSBbLi4ubmV3IFNldCh0aGlzLnNlbGVjdGVkQ2F0ZWdvcnkpXTtcbiAgfVxuXG4gIG9uQXBwbHlGaWx0ZXIoZXZlbnQ6IGFueSkge1xuICAgIGlmICghZXZlbnQpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRDYXRlZ29yeSA9IFtdO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBsZXQgc2VsZWN0ZWRUZW1wbGF0ZSA9XG4gICAgICB0aGlzLmN1cnJlbnRUYWIgPT09ICdWQ09NUExZJ1xuICAgICAgICA/IHRoaXMuZGVmYXVsdFRlbXBsYXRlc1xuICAgICAgICA6IHRoaXMuY3VzdG9tVGVtcGxhdGVzID8/IFtdO1xuICAgIHNlbGVjdGVkVGVtcGxhdGUgPSBbLi4ubmV3IFNldChzZWxlY3RlZFRlbXBsYXRlKV07XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRDYXRlZ29yeS5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMudGVtcGxhdGVMaXN0ID0gc2VsZWN0ZWRUZW1wbGF0ZTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy50ZW1wbGF0ZUxpc3QgPSBzZWxlY3RlZFRlbXBsYXRlLmZpbHRlcigodGVtcGxhdGU6IGFueSkgPT4ge1xuICAgICAgcmV0dXJuIHRlbXBsYXRlPy5jYXRlZ29yeUlkPy5zb21lKChpZDogYW55KSA9PlxuICAgICAgICB0aGlzLnNlbGVjdGVkQ2F0ZWdvcnkuaW5jbHVkZXMoaWQpXG4gICAgICApO1xuICAgIH0pO1xuICB9XG5cbiAgb25TZWxlY3RUZW1wbGF0ZSh0ZW1wbGF0ZTogYW55KSB7XG4gICAgdGhpcy5zZWxlY3RlZFRlbXBsYXRlID0gW3RlbXBsYXRlXTtcbiAgfVxuXG4gIHNhdmUoKSB7XG4gICAgdGhpcy5vblRlbXBsYXRlU2VsZWN0LmVtaXQodGhpcy5zZWxlY3RlZFRlbXBsYXRlKTtcbiAgfVxuXG4gIGNsb3NlKCkge1xuICAgIHRoaXMub25UZW1wbGF0ZVNlbGVjdC5lbWl0KFtdKTtcbiAgfVxuXG4gIGRlbGV0ZUV2ZW50KCkge1xuICAgIHRoaXMuc2VsZWN0ZWRUZW1wbGF0ZSA9IFtdO1xuICB9XG5cbiAgb25QcmV2aWV3KGRldGFpbHM6IGFueSkge1xuICAgIHRoaXMubG9hZGVyID0gdHJ1ZTtcbiAgICB0aGlzLmdldFByZXZpZXdEYXRhKGRldGFpbHM/Ll9pZCk7XG4gICAgdGhpcy5wcmV2aWV3VGVtcGxhdGUgPSBkZXRhaWxzO1xuICB9XG5cbiAgb25DbG9zZVByZXZpZXcoKSB7XG4gICAgdGhpcy5pc1ByZXZpZXcgPSBmYWxzZTtcbiAgICB0aGlzLmRvY0RhdGEgPSBudWxsO1xuICAgIHRoaXMucHJldmlld1RlbXBsYXRlID0gbnVsbDtcbiAgfVxuXG4gIGdldFByZXZpZXdEYXRhKHRlbXBsYXRlSWQ6IGFueSkge1xuICAgIHRoaXMubG9hZGVyID0gdHJ1ZTtcbiAgICB0aGlzLnRlbXBsYXRlU2VydmljZS5nZXRUZW1wbGF0ZUNvbnRlbnQodGVtcGxhdGVJZCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXMpID0+IHtcbiAgICAgICAgY29uc3QgeyByZXNwb25zZSB9ID0gcmVzO1xuICAgICAgICB0aGlzLmxvYWRlciA9IGZhbHNlO1xuICAgICAgICB0aGlzLmRvY0RhdGEgPSByZXNwb25zZTtcbiAgICAgICAgdGhpcy5pc1ByZXZpZXcgPSB0cnVlO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxufVxuIiwiPGRpdlxuICBjbGFzcz1cInNlbGVjdC10ZW1wbGF0ZS1saXN0XCJcbiAgW2NsYXNzLmFuaW1hdGVdPVwiYW5pbWF0aW9uXCJcbiAgW2NsYXNzLndpdGhQcmV2aWV3XT1cImlzUHJldmlld1wiXG4+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNQcmV2aWV3XCI+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJzZWxlY3QtdGVtcGxhdGUtbGlzdC1oZWFkIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1iZXR3ZWVuIHZ4LXBsLTQgdngtcHItNFwiXG4gICAgPlxuICAgICAgPGRpdiBjbGFzcz1cInZ4LWZzLTE0IHZ4LWZ3LTUwMCB2eC1sYWJlbC10eHRcIj5TZWxlY3QgYSBUZW1wbGF0ZTwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJzZWxlY3QtdGVtcGxhdGUtbGlzdC1ib2R5XCI+XG4gICAgICA8YXBwLWxvYWRlci1pbmxpbmUgKm5nSWY9XCJsb2FkZXJcIj48L2FwcC1sb2FkZXItaW5saW5lPlxuXG4gICAgICA8ZGl2IGNsYXNzPVwic2VsZWN0LXRlbXBsYXRlLWxpc3QtdGFiIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtbWItMlwiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgKGNsaWNrKT1cInN3aXRjaFRhYignVkNPTVBMWScpXCJcbiAgICAgICAgICBjbGFzcz1cInRhYi1idG4gdngtZnMtMTEgdngtZnctNTAwIHZ4LXR0LXVwcGVyY2FzZSB2eC1wLTAgdngtcGItMiB2eC1tLTAgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1saC00XCJcbiAgICAgICAgICBbY2xhc3MuYWN0aXZlXT1cImN1cnJlbnRUYWIgPT09ICdWQ09NUExZJ1wiXG4gICAgICAgID5cbiAgICAgICAgICBWQ09NUExZIFRFTVBMQVRFU1xuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIChjbGljayk9XCJzd2l0Y2hUYWIoJ1VTRVJfQ1JFQVRFRCcpXCJcbiAgICAgICAgICBjbGFzcz1cInRhYi1idG4gdngtZnMtMTEgdngtZnctNTAwIHZ4LXR0LXVwcGVyY2FzZSB2eC1wLTAgdngtcGItMiB2eC1tLTAgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1saC00XCJcbiAgICAgICAgICBbY2xhc3MuYWN0aXZlXT1cImN1cnJlbnRUYWIgPT09ICdVU0VSX0NSRUFURUQnXCJcbiAgICAgICAgPlxuICAgICAgICAgIFVTRVItQ1JFQVRFRCBURU1QTEFURVNcbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJzZWFyY2gtYmxvY2sgdngtbWItMlwiPlxuICAgICAgICA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTkwYjs8L2k+XG4gICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIFsobmdNb2RlbCldPVwic2VhcmNoVGVtcGxhdGVcIiBwbGFjZWhvbGRlcj1cIlNlYXJjaFwiIC8+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJib2R5LXRvcCB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWp1c3RpZnktZW5kIHZ4LW1iLTJcIj5cbiAgICAgICAgPGNzLW11bHRpLXNlbGVjdFxuICAgICAgICAgIChzZWFyY2hUZXh0KT1cInNlYXJjaENhdGVnb3J5ID0gJGV2ZW50XCJcbiAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ1NlbGVjdCBDYXRlZ29yeSdcIlxuICAgICAgICAgIFt2YWx1ZV09XCJzZWxlY3RlZENhdGVnb3J5XCJcbiAgICAgICAgICAoYXBwbHlGaWx0ZXIpPVwib25BcHBseUZpbHRlcigkZXZlbnQpXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICpuZ0Zvcj1cIlxuICAgICAgICAgICAgICBsZXQgZWFjaENhdGVnb3J5IG9mIGNhdGVnb3J5TGlzdFxuICAgICAgICAgICAgICAgIHwgU2VhcmNoQnlLZXlzIDogWyduYW1lJ10gOiBzZWFyY2hDYXRlZ29yeVxuICAgICAgICAgICAgXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8Y3MtbXVsdGktc2VsZWN0LW9wdGlvblxuICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCJlYWNoQ2F0ZWdvcnk/Lm5hbWVcIlxuICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiXG4gICAgICAgICAgICAgIGRlbGF5PVwiMFwiXG4gICAgICAgICAgICAgIFt2YWx1ZV09XCJlYWNoQ2F0ZWdvcnk/Lml0ZW1faWRcIlxuICAgICAgICAgICAgICAoY2hhbmdlKT1cIm9uU2VsZWN0Q2F0ZWdvcnkoZWFjaENhdGVnb3J5LCAkZXZlbnQpXCJcbiAgICAgICAgICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwidHJ1ZVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHt7IGVhY2hDYXRlZ29yeT8ubmFtZSB9fVxuICAgICAgICAgICAgPC9jcy1tdWx0aS1zZWxlY3Qtb3B0aW9uPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2NzLW11bHRpLXNlbGVjdD5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImJvZHktaW5uZXIgdngtbWItMVwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWxvYWRlclwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgIHRlbXBsYXRlTGlzdFxuICAgICAgICAgICAgICAgIHwgU2VhcmNoQnlLZXlzXG4gICAgICAgICAgICAgICAgICA6IFsnbmFtZScsICdjYXRlZ29yeURldGFpbHMnXVxuICAgICAgICAgICAgICAgICAgOiBzZWFyY2hUZW1wbGF0ZSBhcyBhbGxUZW1wbGF0ZVxuICAgICAgICAgICAgXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8YXBwLXRlbXBsYXRlLWxpc3QtdGFibGVcbiAgICAgICAgICAgICAgKm5nSWY9XCJhbGxUZW1wbGF0ZS5sZW5ndGhcIlxuICAgICAgICAgICAgICBbdGVtcGxhdGVMaXN0XT1cImFsbFRlbXBsYXRlXCJcbiAgICAgICAgICAgICAgW2xvYWRlcl09XCJsb2FkZXJcIlxuICAgICAgICAgICAgICBbY2F0ZWdvcnlMaXN0XT1cImNhdGVnb3J5TGlzdFwiXG4gICAgICAgICAgICAgIFtzZWxlY3RlZFRlbXBsYXRlXT1cInNlbGVjdGVkVGVtcGxhdGVbMF1cIlxuICAgICAgICAgICAgICAob25Tb3J0KT1cInNvcnRCeSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgKG9uU2VsZWN0VGVtcGxhdGUpPVwib25TZWxlY3RUZW1wbGF0ZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgKG9uUHJldmlldyk9XCJvblByZXZpZXcoJGV2ZW50KVwiXG4gICAgICAgICAgICA+PC9hcHAtdGVtcGxhdGUtbGlzdC10YWJsZT5cbiAgICAgICAgICAgIDxhcHAtbm8tZGF0YVxuICAgICAgICAgICAgICAqbmdJZj1cIiFhbGxUZW1wbGF0ZT8ubGVuZ3RoXCJcbiAgICAgICAgICAgICAgW25vRGF0YUltYWdlXT1cIk5PX0RBVEFfRk9VTkRfSU1BR0VcIlxuICAgICAgICAgICAgICBbbm9EYXRhVGV4dF09XCJOT19EQVRBX0ZPVU5EX01FU1NBR0VcIlxuICAgICAgICAgICAgPjwvYXBwLW5vLWRhdGE+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxhcHAtZmxvYXRpbmctYmFyXG4gICAgICAgIChjbG9zZUV2ZW50KT1cInNhdmUoKVwiXG4gICAgICAgIChjbG9zZUxpc3QpPVwiY2xvc2UoKVwiXG4gICAgICAgIFtpc0Rpc2FibGVkXT1cInNlbGVjdGVkVGVtcGxhdGU/Lmxlbmd0aCA9PT0gMFwiXG4gICAgICAgIFtzZWxlY3RlZERhdGFdPVwic2VsZWN0ZWRUZW1wbGF0ZVwiXG4gICAgICAgIFtkaXNwbGF5RWxlbWVudEtleV09XCInbmFtZSdcIlxuICAgICAgICBbc2luZ3VsYXJUZXh0XT1cIidUZW1wbGF0ZSBTZWxlY3RlZCdcIlxuICAgICAgICAoZGVsZXRlRXZlbnQpPVwiZGVsZXRlRXZlbnQoKVwiXG4gICAgICA+XG4gICAgICA8L2FwcC1mbG9hdGluZy1iYXI+XG4gICAgPC9kaXY+XG4gIDwvbmctY29udGFpbmVyPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNQcmV2aWV3XCI+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJzZWxlY3QtdGVtcGxhdGUtbGlzdC1oZWFkIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtcGwtNCB2eC1wci00XCJcbiAgICA+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIChjbGljayk9XCJvbkNsb3NlUHJldmlldygpXCJcbiAgICAgICAgY2xhc3M9XCJwcmV2aWV3QnRuIHZ4LWZzLTE0IHZ4LWZ3LTUwMCB2eC1sYWJlbC10eHQgdngtcC0wIHZ4LW0tMCB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyXCJcbiAgICAgID5cbiAgICAgICAgPGkgY2xhc3M9XCJpY29ucyB2eC1tci0xXCI+JiN4ZTkxZDs8L2k+UHJldmlld1xuICAgICAgPC9idXR0b24+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwidGVtcGxhdGUtbmFtZSB2eC1mcy0xNCB2eC1tbC0xXCJcbiAgICAgICAgW2FwcFRvb2x0aXBdPVwicHJldmlld1RlbXBsYXRlPy5uYW1lXCJcbiAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIlxuICAgICAgICBkZWxheT1cIjBcIlxuICAgICAgICB0eXBlPVwiYmxhY2tcIlxuICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJmYWxzZVwiXG4gICAgICA+XG4gICAgICAgIHt7IHByZXZpZXdUZW1wbGF0ZT8ubmFtZSB9fVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInByZXZpZXctdGVtcGxhdGUtYm9keSB2eC1kLWZsZXggdngtanVzdGlmeS1jZW50ZXJcIj5cbiAgICAgIDxhcHAtbG9hZGVyLWlubGluZSAqbmdJZj1cImxvYWRlclwiPjwvYXBwLWxvYWRlci1pbmxpbmU+XG5cbiAgICAgIDxkaXYgKm5nSWY9XCIhbG9hZGVyXCIgY2xhc3M9XCJwcmV2aWV3LXRlbXBsYXRlLWJvZHktaW5uZXJcIj5cbiAgICAgICAgPGFwcC12aWV3LXBvbGljeSAjdmlld19wb2xpY3kgW2NvbnRlbnRzXT1cImRvY0RhdGFcIj4gPC9hcHAtdmlldy1wb2xpY3k+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9uZy1jb250YWluZXI+XG48L2Rpdj5cbiJdfQ==
@@ -7,7 +7,6 @@ import * as i4 from "../../../ui-kit/popover/popover.directive";
7
7
  import * as i5 from "../../../formgroup/cs-radio/cs-radio.component";
8
8
  export class TemplateListTableComponent {
9
9
  constructor() {
10
- this.previewEnabled = false;
11
10
  this.templateList = [];
12
11
  this.loader = false;
13
12
  this.categoryList = [];
@@ -15,19 +14,16 @@ export class TemplateListTableComponent {
15
14
  this.onSelectTemplate = new EventEmitter();
16
15
  this.onPreview = new EventEmitter();
17
16
  }
18
- ngOnInit() {
19
- this.previewEnabled = this.feature?.isFeatureEnabled('ff_preview_enabled');
20
- }
21
17
  onSelect(template) {
22
18
  this.selectedTemplate = template;
23
19
  this.onSelectTemplate.emit(template);
24
20
  }
25
21
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TemplateListTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
26
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TemplateListTableComponent, selector: "app-template-list-table", inputs: { selectedTemplate: "selectedTemplate", templateList: "templateList", loader: "loader", categoryList: "categoryList", feature: "feature" }, outputs: { onSort: "onSort", onSelectTemplate: "onSelectTemplate", onPreview: "onPreview" }, ngImport: i0, template: "<div class=\"template-list-table\">\n <div class=\"table-header\">\n <div class=\"table-row\">\n <div\n class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center serial\"\n >\n #\n </div>\n <div\n class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center template-name\"\n >\n <span\n (click)=\"onSort.emit('name')\"\n class=\"sorting vx-fs-9 vx-txt-blue vx-mr-1\"\n ><i class=\"icons\">&#xeaf0;</i></span\n >\n TEMPLATE NAME\n </div>\n <div\n class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center category\"\n >\n <!-- <span class=\"sorting vx-fs-9 vx-txt-blue vx-mr-1\"\n ><i class=\"icons\">&#xeaf0;</i></span\n > -->\n CATEGORIES\n </div>\n <div\n class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center view-action\"\n ></div>\n </div>\n </div>\n <div class=\"table-body\">\n <div\n class=\"table-row\"\n *ngFor=\"let eachTemplate of templateList; let i = index\"\n [class.active]=\"selectedTemplate?._id === eachTemplate?._id\"\n >\n <div\n class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center serial\"\n >\n <div\n class=\"sr-no\"\n [appTooltip]=\"i + 1\"\n placement=\"bottom\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"true\"\n >\n {{ i + 1 }}\n </div>\n <app-cs-radio\n name=\"template\"\n [value]=\"selectedTemplate?._id\"\n [checked]=\"selectedTemplate?._id === eachTemplate?._id\"\n (checkedEvent)=\"onSelect(eachTemplate)\"\n ></app-cs-radio>\n </div>\n <div\n class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center template-name\"\n >\n <div\n class=\"value vx-fs-12 vx-label-txt\"\n [appTooltip]=\"eachTemplate?.name\"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"false\"\n >\n {{ eachTemplate?.name }}\n </div>\n </div>\n <div\n class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center category\"\n *ngIf=\"eachTemplate?.categoryDetails as categoryDetails\"\n >\n <div class=\"category-inner\">\n <div class=\"category-name vx-fs-12 vx-lh-4\">\n {{ categoryDetails[0]?.item_name }}\n </div>\n <div\n *ngIf=\"categoryDetails[0]?.parent_items?.length\"\n class=\"within-part vx-d-flex vx-align-center vx-pr-3\"\n >\n <span\n class=\"within-box vx-fs-9 vx-fw-600 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-mr-2 vx-lh-3\"\n >Within</span\n >\n <span\n class=\"within-value vx-fs-11 vx-paragraph-txt\"\n [appTooltip]=\"categoryDetails[0]?.parent_items?.join(' < ')\"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"false\"\n >{{ categoryDetails[0]?.parent_items?.join(\" < \") }}</span\n >\n </div>\n </div>\n <button\n *ngIf=\"categoryDetails?.length > 1\"\n class=\"countBtn vx-fs-9 vx-fw-600 vx-txt-blue vx-pl-1 vx-pr-1 vx-m-0 vx-ml-1 vx-d-flex vx-align-center vx-justify-center\"\n appPopover\n (click)=\"MoreCategory.popover()\"\n placement=\"right\"\n >\n +{{ categoryDetails?.length - 1 }}\n </button>\n\n <app-popover #MoreCategory>\n <div class=\"wf-action-list category-list\">\n <ul class=\"action-item\">\n <li *ngFor=\"let eachTemplate of categoryDetails | slice : 1\">\n <div class=\"avatar-card\">\n <div class=\"vx-w-100\">\n <span\n class=\"value vx-p-0 vx-w-100\"\n [appTooltip]=\"eachTemplate?.item_name\"\n placement=\"bottom-left\"\n type=\"black\"\n delay=\"0\"\n [tooltipMandatory]=\"false\"\n >{{ eachTemplate?.item_name }}</span\n >\n <div\n *ngIf=\"eachTemplate?.parent_items?.length\"\n class=\"within-part vx-d-flex vx-align-center vx-pr-3\"\n >\n <span\n class=\"within-box vx-fs-9 vx-fw-600 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-mr-2 vx-lh-3\"\n >Within</span\n >\n <span\n class=\"within-value vx-fs-11 vx-paragraph-txt\"\n [appTooltip]=\"eachTemplate?.parent_items?.join(' < ')\"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"false\"\n >{{ eachTemplate?.parent_items?.join(\" < \") }}</span\n >\n </div>\n </div>\n </div>\n </li>\n </ul>\n </div>\n </app-popover>\n </div>\n <div\n class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center view-action\"\n >\n <button\n *ngIf=\"previewEnabled\"\n class=\"previewBtn vx-fs-11 vx-fw-500 vx-txt-blue vx-tt-uppercase vx-p-0 vx-pl-2 vx-pr-2 vx-m-0 vx-d-flex vx-align-center vx-lh-6\"\n (click)=\"onPreview.emit(eachTemplate)\"\n >\n PREVIEW\n </button>\n </div>\n </div>\n </div>\n</div>\n", styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";@import\"https://cdn.v-comply.com/design-system/css/display/display.css\";@import\"https://cdn.v-comply.com/design-system/css/alignment/alignment.css\";@import\"https://cdn.v-comply.com/design-system/css/text/text.css\";@import\"https://cdn.v-comply.com/design-system/css/color/color.css\";@import\"https://cdn.v-comply.com/design-system/css/width/width.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-top.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-left.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-right.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-top.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-left.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-right.css\";::ng-deep .template-list-table .table-header{background:#fff;position:sticky;top:0;z-index:1}::ng-deep .template-list-table .table-header .table-column{color:#747576!important;line-height:1rem!important;min-height:2rem!important}::ng-deep .template-list-table .table-body{position:relative}::ng-deep .template-list-table .table-body .table-row{background:#fff;border-radius:4px;border:1px solid #e3e3e9;transition:all .2s ease-in-out;margin-bottom:.25rem}::ng-deep .template-list-table .table-body .table-row:hover{background:#f8f8f8;transition:all .2s ease-in-out}::ng-deep .template-list-table .table-body .table-row:hover .table-column.serial app-cs-radio{opacity:1}::ng-deep .template-list-table .table-body .table-row:hover .table-column.view-action button.previewBtn{opacity:1}::ng-deep .template-list-table .table-body .table-row.active .table-column.serial app-cs-radio{opacity:1}::ng-deep .template-list-table .table-row{display:flex;justify-content:space-between;position:relative}::ng-deep .template-list-table .table-row .table-column{color:#000;min-height:2.5rem;position:relative;width:100%}::ng-deep .template-list-table .table-row .table-column i.info{color:#1e5dd3;cursor:pointer}::ng-deep .template-list-table .table-row .table-column .sorting{cursor:pointer;position:relative;top:1px;left:-1px}::ng-deep .template-list-table .table-row .table-column .sorting i{cursor:pointer}::ng-deep .template-list-table .table-row .table-column.serial{width:2rem;max-width:2rem;flex:0 0 2rem;justify-content:center}::ng-deep .template-list-table .table-row .table-column.serial .sr-no{width:1rem;background:#f2f2f5;writing-mode:vertical-lr;color:#787a8c;font-size:.625rem;font-weight:500;display:flex;height:2.5rem;align-items:center;justify-content:center;position:relative;transition:all .2s ease-in-out}::ng-deep .template-list-table .table-row .table-column.serial app-cs-radio{position:absolute;top:12px;left:8px;opacity:0;transition:all .2s ease-in-out}::ng-deep .template-list-table .table-row .table-column.template-name{width:calc(100% - 25rem);min-width:calc(100% - 25rem)}::ng-deep .template-list-table .table-row .table-column.template-name .value{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;width:calc(100% - 3rem)}::ng-deep .template-list-table .table-row .table-column.category{width:18rem;min-width:18rem}::ng-deep .template-list-table .table-row .table-column.category .category-inner{max-width:calc(100% - 3rem)}::ng-deep .template-list-table .table-row .table-column.category .category-inner .category-name{color:#787a8c;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}::ng-deep .template-list-table .table-row .table-column.category button.countBtn{background:#fff;border-radius:1.25rem;border:1px solid #cdced6;height:1rem;min-width:1.5rem}::ng-deep .template-list-table .table-row .table-column.view-action{width:5rem;min-width:5rem}::ng-deep .template-list-table .table-row .table-column.view-action button.previewBtn{background:#fff;border-radius:.125rem;border:1px solid #dbdbdb;height:1.25rem;transition:all .2s ease-in-out;opacity:0}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ToolTipDirective, selector: "[appTooltip]", inputs: ["appTooltip", "placement", "type", "tooltipMandatory", "showTooltip", "animate"] }, { kind: "component", type: i3.PopoverComponent, selector: "app-popover", inputs: ["dontCloseonClick"] }, { kind: "directive", type: i4.PopoverDirective, selector: "[appPopover]", inputs: ["refrence", "placement"] }, { kind: "component", type: i5.CsRadioComponent, selector: "app-cs-radio", inputs: ["disabled", "readonly", "name", "checked", "value", "oneLine"], outputs: ["checkedEvent"] }, { kind: "pipe", type: i1.SlicePipe, name: "slice" }] }); }
22
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TemplateListTableComponent, selector: "app-template-list-table", inputs: { selectedTemplate: "selectedTemplate", templateList: "templateList", loader: "loader", categoryList: "categoryList" }, outputs: { onSort: "onSort", onSelectTemplate: "onSelectTemplate", onPreview: "onPreview" }, ngImport: i0, template: "<div class=\"template-list-table\">\n <div class=\"table-header\">\n <div class=\"table-row\">\n <div\n class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center serial\"\n >\n #\n </div>\n <div\n class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center template-name\"\n >\n <span\n (click)=\"onSort.emit('name')\"\n class=\"sorting vx-fs-9 vx-txt-blue vx-mr-1\"\n ><i class=\"icons\">&#xeaf0;</i></span\n >\n TEMPLATE NAME\n </div>\n <div\n class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center category\"\n >\n <!-- <span class=\"sorting vx-fs-9 vx-txt-blue vx-mr-1\"\n ><i class=\"icons\">&#xeaf0;</i></span\n > -->\n CATEGORIES\n </div>\n <div\n class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center view-action\"\n ></div>\n </div>\n </div>\n <div class=\"table-body\">\n <div\n class=\"table-row\"\n *ngFor=\"let eachTemplate of templateList; let i = index\"\n [class.active]=\"selectedTemplate?._id === eachTemplate?._id\"\n >\n <div\n class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center serial\"\n >\n <div\n class=\"sr-no\"\n [appTooltip]=\"i + 1\"\n placement=\"bottom\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"true\"\n >\n {{ i + 1 }}\n </div>\n <app-cs-radio\n name=\"template\"\n [value]=\"selectedTemplate?._id\"\n [checked]=\"selectedTemplate?._id === eachTemplate?._id\"\n (checkedEvent)=\"onSelect(eachTemplate)\"\n ></app-cs-radio>\n </div>\n <div\n class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center template-name\"\n >\n <div\n class=\"value vx-fs-12 vx-label-txt\"\n [appTooltip]=\"eachTemplate?.name\"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"false\"\n >\n {{ eachTemplate?.name }}\n </div>\n </div>\n <div\n class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center category\"\n *ngIf=\"eachTemplate?.categoryDetails as categoryDetails\"\n >\n <div class=\"category-inner\">\n <div class=\"category-name vx-fs-12 vx-lh-4\">\n {{ categoryDetails[0]?.item_name }}\n </div>\n <div\n *ngIf=\"categoryDetails[0]?.parent_items?.length\"\n class=\"within-part vx-d-flex vx-align-center vx-pr-3\"\n >\n <span\n class=\"within-box vx-fs-9 vx-fw-600 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-mr-2 vx-lh-3\"\n >Within</span\n >\n <span\n class=\"within-value vx-fs-11 vx-paragraph-txt\"\n [appTooltip]=\"categoryDetails[0]?.parent_items?.join(' < ')\"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"false\"\n >{{ categoryDetails[0]?.parent_items?.join(\" < \") }}</span\n >\n </div>\n </div>\n <button\n *ngIf=\"categoryDetails?.length > 1\"\n class=\"countBtn vx-fs-9 vx-fw-600 vx-txt-blue vx-pl-1 vx-pr-1 vx-m-0 vx-ml-1 vx-d-flex vx-align-center vx-justify-center\"\n appPopover\n (click)=\"MoreCategory.popover()\"\n placement=\"right\"\n >\n +{{ categoryDetails?.length - 1 }}\n </button>\n\n <app-popover #MoreCategory>\n <div class=\"wf-action-list category-list\">\n <ul class=\"action-item\">\n <li *ngFor=\"let eachTemplate of categoryDetails | slice : 1\">\n <div class=\"avatar-card\">\n <div class=\"vx-w-100\">\n <span\n class=\"value vx-p-0 vx-w-100\"\n [appTooltip]=\"eachTemplate?.item_name\"\n placement=\"bottom-left\"\n type=\"black\"\n delay=\"0\"\n [tooltipMandatory]=\"false\"\n >{{ eachTemplate?.item_name }}</span\n >\n <div\n *ngIf=\"eachTemplate?.parent_items?.length\"\n class=\"within-part vx-d-flex vx-align-center vx-pr-3\"\n >\n <span\n class=\"within-box vx-fs-9 vx-fw-600 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-mr-2 vx-lh-3\"\n >Within</span\n >\n <span\n class=\"within-value vx-fs-11 vx-paragraph-txt\"\n [appTooltip]=\"eachTemplate?.parent_items?.join(' < ')\"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"false\"\n >{{ eachTemplate?.parent_items?.join(\" < \") }}</span\n >\n </div>\n </div>\n </div>\n </li>\n </ul>\n </div>\n </app-popover>\n </div>\n <div\n class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center view-action\"\n >\n <button\n class=\"previewBtn vx-fs-11 vx-fw-500 vx-txt-blue vx-tt-uppercase vx-p-0 vx-pl-2 vx-pr-2 vx-m-0 vx-d-flex vx-align-center vx-lh-6\"\n (click)=\"onPreview.emit(eachTemplate)\"\n >\n PREVIEW\n </button>\n </div>\n </div>\n </div>\n</div>\n", styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";@import\"https://cdn.v-comply.com/design-system/css/display/display.css\";@import\"https://cdn.v-comply.com/design-system/css/alignment/alignment.css\";@import\"https://cdn.v-comply.com/design-system/css/text/text.css\";@import\"https://cdn.v-comply.com/design-system/css/color/color.css\";@import\"https://cdn.v-comply.com/design-system/css/width/width.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-top.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-left.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-right.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-top.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-left.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-right.css\";::ng-deep .template-list-table .table-header{background:#fff;position:sticky;top:0;z-index:1}::ng-deep .template-list-table .table-header .table-column{color:#747576!important;line-height:1rem!important;min-height:2rem!important}::ng-deep .template-list-table .table-body{position:relative}::ng-deep .template-list-table .table-body .table-row{background:#fff;border-radius:4px;border:1px solid #e3e3e9;transition:all .2s ease-in-out;margin-bottom:.25rem}::ng-deep .template-list-table .table-body .table-row:hover{background:#f8f8f8;transition:all .2s ease-in-out}::ng-deep .template-list-table .table-body .table-row:hover .table-column.serial app-cs-radio{opacity:1}::ng-deep .template-list-table .table-body .table-row:hover .table-column.view-action button.previewBtn{opacity:1}::ng-deep .template-list-table .table-body .table-row.active .table-column.serial app-cs-radio{opacity:1}::ng-deep .template-list-table .table-row{display:flex;justify-content:space-between;position:relative}::ng-deep .template-list-table .table-row .table-column{color:#000;min-height:2.5rem;position:relative;width:100%}::ng-deep .template-list-table .table-row .table-column i.info{color:#1e5dd3;cursor:pointer}::ng-deep .template-list-table .table-row .table-column .sorting{cursor:pointer;position:relative;top:1px;left:-1px}::ng-deep .template-list-table .table-row .table-column .sorting i{cursor:pointer}::ng-deep .template-list-table .table-row .table-column.serial{width:2rem;max-width:2rem;flex:0 0 2rem;justify-content:center}::ng-deep .template-list-table .table-row .table-column.serial .sr-no{width:1rem;background:#f2f2f5;writing-mode:vertical-lr;color:#787a8c;font-size:.625rem;font-weight:500;display:flex;height:2.5rem;align-items:center;justify-content:center;position:relative;transition:all .2s ease-in-out}::ng-deep .template-list-table .table-row .table-column.serial app-cs-radio{position:absolute;top:12px;left:8px;opacity:0;transition:all .2s ease-in-out}::ng-deep .template-list-table .table-row .table-column.template-name{width:calc(100% - 25rem);min-width:calc(100% - 25rem)}::ng-deep .template-list-table .table-row .table-column.template-name .value{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;width:calc(100% - 3rem)}::ng-deep .template-list-table .table-row .table-column.category{width:18rem;min-width:18rem}::ng-deep .template-list-table .table-row .table-column.category .category-inner{max-width:calc(100% - 3rem)}::ng-deep .template-list-table .table-row .table-column.category .category-inner .category-name{color:#787a8c;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}::ng-deep .template-list-table .table-row .table-column.category button.countBtn{background:#fff;border-radius:1.25rem;border:1px solid #cdced6;height:1rem;min-width:1.5rem}::ng-deep .template-list-table .table-row .table-column.view-action{width:5rem;min-width:5rem}::ng-deep .template-list-table .table-row .table-column.view-action button.previewBtn{background:#fff;border-radius:.125rem;border:1px solid #dbdbdb;height:1.25rem;transition:all .2s ease-in-out;opacity:0}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ToolTipDirective, selector: "[appTooltip]", inputs: ["appTooltip", "placement", "type", "tooltipMandatory", "showTooltip", "animate"] }, { kind: "component", type: i3.PopoverComponent, selector: "app-popover", inputs: ["dontCloseonClick"] }, { kind: "directive", type: i4.PopoverDirective, selector: "[appPopover]", inputs: ["refrence", "placement"] }, { kind: "component", type: i5.CsRadioComponent, selector: "app-cs-radio", inputs: ["disabled", "readonly", "name", "checked", "value", "oneLine"], outputs: ["checkedEvent"] }, { kind: "pipe", type: i1.SlicePipe, name: "slice" }] }); }
27
23
  }
28
24
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TemplateListTableComponent, decorators: [{
29
25
  type: Component,
30
- args: [{ selector: 'app-template-list-table', template: "<div class=\"template-list-table\">\n <div class=\"table-header\">\n <div class=\"table-row\">\n <div\n class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center serial\"\n >\n #\n </div>\n <div\n class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center template-name\"\n >\n <span\n (click)=\"onSort.emit('name')\"\n class=\"sorting vx-fs-9 vx-txt-blue vx-mr-1\"\n ><i class=\"icons\">&#xeaf0;</i></span\n >\n TEMPLATE NAME\n </div>\n <div\n class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center category\"\n >\n <!-- <span class=\"sorting vx-fs-9 vx-txt-blue vx-mr-1\"\n ><i class=\"icons\">&#xeaf0;</i></span\n > -->\n CATEGORIES\n </div>\n <div\n class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center view-action\"\n ></div>\n </div>\n </div>\n <div class=\"table-body\">\n <div\n class=\"table-row\"\n *ngFor=\"let eachTemplate of templateList; let i = index\"\n [class.active]=\"selectedTemplate?._id === eachTemplate?._id\"\n >\n <div\n class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center serial\"\n >\n <div\n class=\"sr-no\"\n [appTooltip]=\"i + 1\"\n placement=\"bottom\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"true\"\n >\n {{ i + 1 }}\n </div>\n <app-cs-radio\n name=\"template\"\n [value]=\"selectedTemplate?._id\"\n [checked]=\"selectedTemplate?._id === eachTemplate?._id\"\n (checkedEvent)=\"onSelect(eachTemplate)\"\n ></app-cs-radio>\n </div>\n <div\n class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center template-name\"\n >\n <div\n class=\"value vx-fs-12 vx-label-txt\"\n [appTooltip]=\"eachTemplate?.name\"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"false\"\n >\n {{ eachTemplate?.name }}\n </div>\n </div>\n <div\n class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center category\"\n *ngIf=\"eachTemplate?.categoryDetails as categoryDetails\"\n >\n <div class=\"category-inner\">\n <div class=\"category-name vx-fs-12 vx-lh-4\">\n {{ categoryDetails[0]?.item_name }}\n </div>\n <div\n *ngIf=\"categoryDetails[0]?.parent_items?.length\"\n class=\"within-part vx-d-flex vx-align-center vx-pr-3\"\n >\n <span\n class=\"within-box vx-fs-9 vx-fw-600 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-mr-2 vx-lh-3\"\n >Within</span\n >\n <span\n class=\"within-value vx-fs-11 vx-paragraph-txt\"\n [appTooltip]=\"categoryDetails[0]?.parent_items?.join(' < ')\"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"false\"\n >{{ categoryDetails[0]?.parent_items?.join(\" < \") }}</span\n >\n </div>\n </div>\n <button\n *ngIf=\"categoryDetails?.length > 1\"\n class=\"countBtn vx-fs-9 vx-fw-600 vx-txt-blue vx-pl-1 vx-pr-1 vx-m-0 vx-ml-1 vx-d-flex vx-align-center vx-justify-center\"\n appPopover\n (click)=\"MoreCategory.popover()\"\n placement=\"right\"\n >\n +{{ categoryDetails?.length - 1 }}\n </button>\n\n <app-popover #MoreCategory>\n <div class=\"wf-action-list category-list\">\n <ul class=\"action-item\">\n <li *ngFor=\"let eachTemplate of categoryDetails | slice : 1\">\n <div class=\"avatar-card\">\n <div class=\"vx-w-100\">\n <span\n class=\"value vx-p-0 vx-w-100\"\n [appTooltip]=\"eachTemplate?.item_name\"\n placement=\"bottom-left\"\n type=\"black\"\n delay=\"0\"\n [tooltipMandatory]=\"false\"\n >{{ eachTemplate?.item_name }}</span\n >\n <div\n *ngIf=\"eachTemplate?.parent_items?.length\"\n class=\"within-part vx-d-flex vx-align-center vx-pr-3\"\n >\n <span\n class=\"within-box vx-fs-9 vx-fw-600 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-mr-2 vx-lh-3\"\n >Within</span\n >\n <span\n class=\"within-value vx-fs-11 vx-paragraph-txt\"\n [appTooltip]=\"eachTemplate?.parent_items?.join(' < ')\"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"false\"\n >{{ eachTemplate?.parent_items?.join(\" < \") }}</span\n >\n </div>\n </div>\n </div>\n </li>\n </ul>\n </div>\n </app-popover>\n </div>\n <div\n class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center view-action\"\n >\n <button\n *ngIf=\"previewEnabled\"\n class=\"previewBtn vx-fs-11 vx-fw-500 vx-txt-blue vx-tt-uppercase vx-p-0 vx-pl-2 vx-pr-2 vx-m-0 vx-d-flex vx-align-center vx-lh-6\"\n (click)=\"onPreview.emit(eachTemplate)\"\n >\n PREVIEW\n </button>\n </div>\n </div>\n </div>\n</div>\n", styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";@import\"https://cdn.v-comply.com/design-system/css/display/display.css\";@import\"https://cdn.v-comply.com/design-system/css/alignment/alignment.css\";@import\"https://cdn.v-comply.com/design-system/css/text/text.css\";@import\"https://cdn.v-comply.com/design-system/css/color/color.css\";@import\"https://cdn.v-comply.com/design-system/css/width/width.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-top.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-left.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-right.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-top.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-left.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-right.css\";::ng-deep .template-list-table .table-header{background:#fff;position:sticky;top:0;z-index:1}::ng-deep .template-list-table .table-header .table-column{color:#747576!important;line-height:1rem!important;min-height:2rem!important}::ng-deep .template-list-table .table-body{position:relative}::ng-deep .template-list-table .table-body .table-row{background:#fff;border-radius:4px;border:1px solid #e3e3e9;transition:all .2s ease-in-out;margin-bottom:.25rem}::ng-deep .template-list-table .table-body .table-row:hover{background:#f8f8f8;transition:all .2s ease-in-out}::ng-deep .template-list-table .table-body .table-row:hover .table-column.serial app-cs-radio{opacity:1}::ng-deep .template-list-table .table-body .table-row:hover .table-column.view-action button.previewBtn{opacity:1}::ng-deep .template-list-table .table-body .table-row.active .table-column.serial app-cs-radio{opacity:1}::ng-deep .template-list-table .table-row{display:flex;justify-content:space-between;position:relative}::ng-deep .template-list-table .table-row .table-column{color:#000;min-height:2.5rem;position:relative;width:100%}::ng-deep .template-list-table .table-row .table-column i.info{color:#1e5dd3;cursor:pointer}::ng-deep .template-list-table .table-row .table-column .sorting{cursor:pointer;position:relative;top:1px;left:-1px}::ng-deep .template-list-table .table-row .table-column .sorting i{cursor:pointer}::ng-deep .template-list-table .table-row .table-column.serial{width:2rem;max-width:2rem;flex:0 0 2rem;justify-content:center}::ng-deep .template-list-table .table-row .table-column.serial .sr-no{width:1rem;background:#f2f2f5;writing-mode:vertical-lr;color:#787a8c;font-size:.625rem;font-weight:500;display:flex;height:2.5rem;align-items:center;justify-content:center;position:relative;transition:all .2s ease-in-out}::ng-deep .template-list-table .table-row .table-column.serial app-cs-radio{position:absolute;top:12px;left:8px;opacity:0;transition:all .2s ease-in-out}::ng-deep .template-list-table .table-row .table-column.template-name{width:calc(100% - 25rem);min-width:calc(100% - 25rem)}::ng-deep .template-list-table .table-row .table-column.template-name .value{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;width:calc(100% - 3rem)}::ng-deep .template-list-table .table-row .table-column.category{width:18rem;min-width:18rem}::ng-deep .template-list-table .table-row .table-column.category .category-inner{max-width:calc(100% - 3rem)}::ng-deep .template-list-table .table-row .table-column.category .category-inner .category-name{color:#787a8c;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}::ng-deep .template-list-table .table-row .table-column.category button.countBtn{background:#fff;border-radius:1.25rem;border:1px solid #cdced6;height:1rem;min-width:1.5rem}::ng-deep .template-list-table .table-row .table-column.view-action{width:5rem;min-width:5rem}::ng-deep .template-list-table .table-row .table-column.view-action button.previewBtn{background:#fff;border-radius:.125rem;border:1px solid #dbdbdb;height:1.25rem;transition:all .2s ease-in-out;opacity:0}\n"] }]
26
+ args: [{ selector: 'app-template-list-table', template: "<div class=\"template-list-table\">\n <div class=\"table-header\">\n <div class=\"table-row\">\n <div\n class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center serial\"\n >\n #\n </div>\n <div\n class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center template-name\"\n >\n <span\n (click)=\"onSort.emit('name')\"\n class=\"sorting vx-fs-9 vx-txt-blue vx-mr-1\"\n ><i class=\"icons\">&#xeaf0;</i></span\n >\n TEMPLATE NAME\n </div>\n <div\n class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center category\"\n >\n <!-- <span class=\"sorting vx-fs-9 vx-txt-blue vx-mr-1\"\n ><i class=\"icons\">&#xeaf0;</i></span\n > -->\n CATEGORIES\n </div>\n <div\n class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center view-action\"\n ></div>\n </div>\n </div>\n <div class=\"table-body\">\n <div\n class=\"table-row\"\n *ngFor=\"let eachTemplate of templateList; let i = index\"\n [class.active]=\"selectedTemplate?._id === eachTemplate?._id\"\n >\n <div\n class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center serial\"\n >\n <div\n class=\"sr-no\"\n [appTooltip]=\"i + 1\"\n placement=\"bottom\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"true\"\n >\n {{ i + 1 }}\n </div>\n <app-cs-radio\n name=\"template\"\n [value]=\"selectedTemplate?._id\"\n [checked]=\"selectedTemplate?._id === eachTemplate?._id\"\n (checkedEvent)=\"onSelect(eachTemplate)\"\n ></app-cs-radio>\n </div>\n <div\n class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center template-name\"\n >\n <div\n class=\"value vx-fs-12 vx-label-txt\"\n [appTooltip]=\"eachTemplate?.name\"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"false\"\n >\n {{ eachTemplate?.name }}\n </div>\n </div>\n <div\n class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center category\"\n *ngIf=\"eachTemplate?.categoryDetails as categoryDetails\"\n >\n <div class=\"category-inner\">\n <div class=\"category-name vx-fs-12 vx-lh-4\">\n {{ categoryDetails[0]?.item_name }}\n </div>\n <div\n *ngIf=\"categoryDetails[0]?.parent_items?.length\"\n class=\"within-part vx-d-flex vx-align-center vx-pr-3\"\n >\n <span\n class=\"within-box vx-fs-9 vx-fw-600 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-mr-2 vx-lh-3\"\n >Within</span\n >\n <span\n class=\"within-value vx-fs-11 vx-paragraph-txt\"\n [appTooltip]=\"categoryDetails[0]?.parent_items?.join(' < ')\"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"false\"\n >{{ categoryDetails[0]?.parent_items?.join(\" < \") }}</span\n >\n </div>\n </div>\n <button\n *ngIf=\"categoryDetails?.length > 1\"\n class=\"countBtn vx-fs-9 vx-fw-600 vx-txt-blue vx-pl-1 vx-pr-1 vx-m-0 vx-ml-1 vx-d-flex vx-align-center vx-justify-center\"\n appPopover\n (click)=\"MoreCategory.popover()\"\n placement=\"right\"\n >\n +{{ categoryDetails?.length - 1 }}\n </button>\n\n <app-popover #MoreCategory>\n <div class=\"wf-action-list category-list\">\n <ul class=\"action-item\">\n <li *ngFor=\"let eachTemplate of categoryDetails | slice : 1\">\n <div class=\"avatar-card\">\n <div class=\"vx-w-100\">\n <span\n class=\"value vx-p-0 vx-w-100\"\n [appTooltip]=\"eachTemplate?.item_name\"\n placement=\"bottom-left\"\n type=\"black\"\n delay=\"0\"\n [tooltipMandatory]=\"false\"\n >{{ eachTemplate?.item_name }}</span\n >\n <div\n *ngIf=\"eachTemplate?.parent_items?.length\"\n class=\"within-part vx-d-flex vx-align-center vx-pr-3\"\n >\n <span\n class=\"within-box vx-fs-9 vx-fw-600 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-mr-2 vx-lh-3\"\n >Within</span\n >\n <span\n class=\"within-value vx-fs-11 vx-paragraph-txt\"\n [appTooltip]=\"eachTemplate?.parent_items?.join(' < ')\"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"false\"\n >{{ eachTemplate?.parent_items?.join(\" < \") }}</span\n >\n </div>\n </div>\n </div>\n </li>\n </ul>\n </div>\n </app-popover>\n </div>\n <div\n class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center view-action\"\n >\n <button\n class=\"previewBtn vx-fs-11 vx-fw-500 vx-txt-blue vx-tt-uppercase vx-p-0 vx-pl-2 vx-pr-2 vx-m-0 vx-d-flex vx-align-center vx-lh-6\"\n (click)=\"onPreview.emit(eachTemplate)\"\n >\n PREVIEW\n </button>\n </div>\n </div>\n </div>\n</div>\n", styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";@import\"https://cdn.v-comply.com/design-system/css/display/display.css\";@import\"https://cdn.v-comply.com/design-system/css/alignment/alignment.css\";@import\"https://cdn.v-comply.com/design-system/css/text/text.css\";@import\"https://cdn.v-comply.com/design-system/css/color/color.css\";@import\"https://cdn.v-comply.com/design-system/css/width/width.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-top.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-left.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-right.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-top.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-left.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-right.css\";::ng-deep .template-list-table .table-header{background:#fff;position:sticky;top:0;z-index:1}::ng-deep .template-list-table .table-header .table-column{color:#747576!important;line-height:1rem!important;min-height:2rem!important}::ng-deep .template-list-table .table-body{position:relative}::ng-deep .template-list-table .table-body .table-row{background:#fff;border-radius:4px;border:1px solid #e3e3e9;transition:all .2s ease-in-out;margin-bottom:.25rem}::ng-deep .template-list-table .table-body .table-row:hover{background:#f8f8f8;transition:all .2s ease-in-out}::ng-deep .template-list-table .table-body .table-row:hover .table-column.serial app-cs-radio{opacity:1}::ng-deep .template-list-table .table-body .table-row:hover .table-column.view-action button.previewBtn{opacity:1}::ng-deep .template-list-table .table-body .table-row.active .table-column.serial app-cs-radio{opacity:1}::ng-deep .template-list-table .table-row{display:flex;justify-content:space-between;position:relative}::ng-deep .template-list-table .table-row .table-column{color:#000;min-height:2.5rem;position:relative;width:100%}::ng-deep .template-list-table .table-row .table-column i.info{color:#1e5dd3;cursor:pointer}::ng-deep .template-list-table .table-row .table-column .sorting{cursor:pointer;position:relative;top:1px;left:-1px}::ng-deep .template-list-table .table-row .table-column .sorting i{cursor:pointer}::ng-deep .template-list-table .table-row .table-column.serial{width:2rem;max-width:2rem;flex:0 0 2rem;justify-content:center}::ng-deep .template-list-table .table-row .table-column.serial .sr-no{width:1rem;background:#f2f2f5;writing-mode:vertical-lr;color:#787a8c;font-size:.625rem;font-weight:500;display:flex;height:2.5rem;align-items:center;justify-content:center;position:relative;transition:all .2s ease-in-out}::ng-deep .template-list-table .table-row .table-column.serial app-cs-radio{position:absolute;top:12px;left:8px;opacity:0;transition:all .2s ease-in-out}::ng-deep .template-list-table .table-row .table-column.template-name{width:calc(100% - 25rem);min-width:calc(100% - 25rem)}::ng-deep .template-list-table .table-row .table-column.template-name .value{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;width:calc(100% - 3rem)}::ng-deep .template-list-table .table-row .table-column.category{width:18rem;min-width:18rem}::ng-deep .template-list-table .table-row .table-column.category .category-inner{max-width:calc(100% - 3rem)}::ng-deep .template-list-table .table-row .table-column.category .category-inner .category-name{color:#787a8c;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}::ng-deep .template-list-table .table-row .table-column.category button.countBtn{background:#fff;border-radius:1.25rem;border:1px solid #cdced6;height:1rem;min-width:1.5rem}::ng-deep .template-list-table .table-row .table-column.view-action{width:5rem;min-width:5rem}::ng-deep .template-list-table .table-row .table-column.view-action button.previewBtn{background:#fff;border-radius:.125rem;border:1px solid #dbdbdb;height:1.25rem;transition:all .2s ease-in-out;opacity:0}\n"] }]
31
27
  }], propDecorators: { selectedTemplate: [{
32
28
  type: Input
33
29
  }], templateList: [{
@@ -36,8 +32,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
36
32
  type: Input
37
33
  }], categoryList: [{
38
34
  type: Input
39
- }], feature: [{
40
- type: Input
41
35
  }], onSort: [{
42
36
  type: Output
43
37
  }], onSelectTemplate: [{
@@ -45,4 +39,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
45
39
  }], onPreview: [{
46
40
  type: Output
47
41
  }] } });
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUtbGlzdC10YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi9zaGFyZWRDb21wb25lbnRzL3BvbGljeS10ZW1wbGF0ZS90ZW1wbGF0ZS1saXN0LXRhYmxlL3RlbXBsYXRlLWxpc3QtdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvc2hhcmVkQ29tcG9uZW50cy9wb2xpY3ktdGVtcGxhdGUvdGVtcGxhdGUtbGlzdC10YWJsZS90ZW1wbGF0ZS1saXN0LXRhYmxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7QUFPL0UsTUFBTSxPQUFPLDBCQUEwQjtJQUx2QztRQU9FLG1CQUFjLEdBQVksS0FBSyxDQUFDO1FBR3ZCLGlCQUFZLEdBQVUsRUFBRSxDQUFDO1FBQ3pCLFdBQU0sR0FBWSxLQUFLLENBQUM7UUFDeEIsaUJBQVksR0FBVSxFQUFFLENBQUM7UUFFeEIsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFDcEMscUJBQWdCLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUMzQyxjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztLQVUvQztJQVJDLFFBQVE7UUFDTixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsZ0JBQWdCLENBQUMsb0JBQW9CLENBQUMsQ0FBQztJQUM3RSxDQUFDO0lBRUQsUUFBUSxDQUFDLFFBQWE7UUFDcEIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLFFBQVEsQ0FBQztRQUNqQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7K0dBcEJVLDBCQUEwQjttR0FBMUIsMEJBQTBCLGdUQ1B2QyxrNUxBa0tBOzs0RkQzSmEsMEJBQTBCO2tCQUx0QyxTQUFTOytCQUNFLHlCQUF5Qjs4QkFRMUIsZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNJLE1BQU07c0JBQWYsTUFBTTtnQkFDRyxnQkFBZ0I7c0JBQXpCLE1BQU07Z0JBQ0csU0FBUztzQkFBbEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLXRlbXBsYXRlLWxpc3QtdGFibGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vdGVtcGxhdGUtbGlzdC10YWJsZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3RlbXBsYXRlLWxpc3QtdGFibGUuY29tcG9uZW50Lmxlc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgVGVtcGxhdGVMaXN0VGFibGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIHByZXZpZXdFbmFibGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQElucHV0KCkgc2VsZWN0ZWRUZW1wbGF0ZTogYW55O1xuICBASW5wdXQoKSB0ZW1wbGF0ZUxpc3Q6IGFueVtdID0gW107XG4gIEBJbnB1dCgpIGxvYWRlcjogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBjYXRlZ29yeUxpc3Q6IGFueVtdID0gW107XG4gIEBJbnB1dCgpIGZlYXR1cmU6IGFueTtcbiAgQE91dHB1dCgpIG9uU29ydCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuICBAT3V0cHV0KCkgb25TZWxlY3RUZW1wbGF0ZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAT3V0cHV0KCkgb25QcmV2aWV3ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5wcmV2aWV3RW5hYmxlZCA9IHRoaXMuZmVhdHVyZT8uaXNGZWF0dXJlRW5hYmxlZCgnZmZfcHJldmlld19lbmFibGVkJyk7XG4gIH1cblxuICBvblNlbGVjdCh0ZW1wbGF0ZTogYW55KSB7XG4gICAgdGhpcy5zZWxlY3RlZFRlbXBsYXRlID0gdGVtcGxhdGU7XG4gICAgdGhpcy5vblNlbGVjdFRlbXBsYXRlLmVtaXQodGVtcGxhdGUpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwidGVtcGxhdGUtbGlzdC10YWJsZVwiPlxuICA8ZGl2IGNsYXNzPVwidGFibGUtaGVhZGVyXCI+XG4gICAgPGRpdiBjbGFzcz1cInRhYmxlLXJvd1wiPlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cInRhYmxlLWNvbHVtbiB2eC1mcy0xMSB2eC1mdy01MDAgdngtbGgtNSB2eC10dC11cHBlcmNhc2UgdngtcGwtMSB2eC1wci0xIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgc2VyaWFsXCJcbiAgICAgID5cbiAgICAgICAgI1xuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwidGFibGUtY29sdW1uIHZ4LWZzLTExIHZ4LWZ3LTUwMCB2eC1saC01IHZ4LXR0LXVwcGVyY2FzZSB2eC1wbC0xIHZ4LXByLTEgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB0ZW1wbGF0ZS1uYW1lXCJcbiAgICAgID5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICAoY2xpY2spPVwib25Tb3J0LmVtaXQoJ25hbWUnKVwiXG4gICAgICAgICAgY2xhc3M9XCJzb3J0aW5nIHZ4LWZzLTkgdngtdHh0LWJsdWUgdngtbXItMVwiXG4gICAgICAgICAgPjxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlYWYwOzwvaT48L3NwYW5cbiAgICAgICAgPlxuICAgICAgICBURU1QTEFURSBOQU1FXG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJ0YWJsZS1jb2x1bW4gdngtZnMtMTEgdngtZnctNTAwIHZ4LWxoLTUgdngtdHQtdXBwZXJjYXNlIHZ4LXBsLTEgdngtcHItMSB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIGNhdGVnb3J5XCJcbiAgICAgID5cbiAgICAgICAgPCEtLSA8c3BhbiBjbGFzcz1cInNvcnRpbmcgdngtZnMtOSB2eC10eHQtYmx1ZSB2eC1tci0xXCJcbiAgICAgICAgICA+PGkgY2xhc3M9XCJpY29uc1wiPiYjeGVhZjA7PC9pPjwvc3BhblxuICAgICAgICA+IC0tPlxuICAgICAgICBDQVRFR09SSUVTXG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJ0YWJsZS1jb2x1bW4gdngtZnMtMTEgdngtZnctNTAwIHZ4LWxoLTUgdngtdHQtdXBwZXJjYXNlIHZ4LXBsLTEgdngtcHItMSB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZpZXctYWN0aW9uXCJcbiAgICAgID48L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJ0YWJsZS1ib2R5XCI+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJ0YWJsZS1yb3dcIlxuICAgICAgKm5nRm9yPVwibGV0IGVhY2hUZW1wbGF0ZSBvZiB0ZW1wbGF0ZUxpc3Q7IGxldCBpID0gaW5kZXhcIlxuICAgICAgW2NsYXNzLmFjdGl2ZV09XCJzZWxlY3RlZFRlbXBsYXRlPy5faWQgPT09IGVhY2hUZW1wbGF0ZT8uX2lkXCJcbiAgICA+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwidGFibGUtY29sdW1uIHZ4LXBsLTEgdngtcHItMSB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHNlcmlhbFwiXG4gICAgICA+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cInNyLW5vXCJcbiAgICAgICAgICBbYXBwVG9vbHRpcF09XCJpICsgMVwiXG4gICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tXCJcbiAgICAgICAgICBkZWxheT1cIjBcIlxuICAgICAgICAgIHR5cGU9XCJibGFja1wiXG4gICAgICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwidHJ1ZVwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyBpICsgMSB9fVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGFwcC1jcy1yYWRpb1xuICAgICAgICAgIG5hbWU9XCJ0ZW1wbGF0ZVwiXG4gICAgICAgICAgW3ZhbHVlXT1cInNlbGVjdGVkVGVtcGxhdGU/Ll9pZFwiXG4gICAgICAgICAgW2NoZWNrZWRdPVwic2VsZWN0ZWRUZW1wbGF0ZT8uX2lkID09PSBlYWNoVGVtcGxhdGU/Ll9pZFwiXG4gICAgICAgICAgKGNoZWNrZWRFdmVudCk9XCJvblNlbGVjdChlYWNoVGVtcGxhdGUpXCJcbiAgICAgICAgPjwvYXBwLWNzLXJhZGlvPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwidGFibGUtY29sdW1uIHZ4LXBsLTEgdngtcHItMSB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHRlbXBsYXRlLW5hbWVcIlxuICAgICAgPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJ2YWx1ZSB2eC1mcy0xMiB2eC1sYWJlbC10eHRcIlxuICAgICAgICAgIFthcHBUb29sdGlwXT1cImVhY2hUZW1wbGF0ZT8ubmFtZVwiXG4gICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIlxuICAgICAgICAgIGRlbGF5PVwiMFwiXG4gICAgICAgICAgdHlwZT1cImJsYWNrXCJcbiAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJmYWxzZVwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyBlYWNoVGVtcGxhdGU/Lm5hbWUgfX1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJ0YWJsZS1jb2x1bW4gdngtcGwtMSB2eC1wci0xIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgY2F0ZWdvcnlcIlxuICAgICAgICAqbmdJZj1cImVhY2hUZW1wbGF0ZT8uY2F0ZWdvcnlEZXRhaWxzIGFzIGNhdGVnb3J5RGV0YWlsc1wiXG4gICAgICA+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXRlZ29yeS1pbm5lclwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXRlZ29yeS1uYW1lIHZ4LWZzLTEyIHZ4LWxoLTRcIj5cbiAgICAgICAgICAgIHt7IGNhdGVnb3J5RGV0YWlsc1swXT8uaXRlbV9uYW1lIH19XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgKm5nSWY9XCJjYXRlZ29yeURldGFpbHNbMF0/LnBhcmVudF9pdGVtcz8ubGVuZ3RoXCJcbiAgICAgICAgICAgIGNsYXNzPVwid2l0aGluLXBhcnQgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1wci0zXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICBjbGFzcz1cIndpdGhpbi1ib3ggdngtZnMtOSB2eC1mdy02MDAgdngtdHQtdXBwZXJjYXNlIHZ4LXBsLTEgdngtcHItMSB2eC1tci0yIHZ4LWxoLTNcIlxuICAgICAgICAgICAgICA+V2l0aGluPC9zcGFuXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICBjbGFzcz1cIndpdGhpbi12YWx1ZSB2eC1mcy0xMSB2eC1wYXJhZ3JhcGgtdHh0XCJcbiAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiY2F0ZWdvcnlEZXRhaWxzWzBdPy5wYXJlbnRfaXRlbXM/LmpvaW4oJyA8ICcpXCJcbiAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIlxuICAgICAgICAgICAgICBkZWxheT1cIjBcIlxuICAgICAgICAgICAgICB0eXBlPVwiYmxhY2tcIlxuICAgICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJmYWxzZVwiXG4gICAgICAgICAgICAgID57eyBjYXRlZ29yeURldGFpbHNbMF0/LnBhcmVudF9pdGVtcz8uam9pbihcIiA8IFwiKSB9fTwvc3BhblxuICAgICAgICAgICAgPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICpuZ0lmPVwiY2F0ZWdvcnlEZXRhaWxzPy5sZW5ndGggPiAxXCJcbiAgICAgICAgICBjbGFzcz1cImNvdW50QnRuIHZ4LWZzLTkgdngtZnctNjAwIHZ4LXR4dC1ibHVlIHZ4LXBsLTEgdngtcHItMSB2eC1tLTAgdngtbWwtMSB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWp1c3RpZnktY2VudGVyXCJcbiAgICAgICAgICBhcHBQb3BvdmVyXG4gICAgICAgICAgKGNsaWNrKT1cIk1vcmVDYXRlZ29yeS5wb3BvdmVyKClcIlxuICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgPlxuICAgICAgICAgICt7eyBjYXRlZ29yeURldGFpbHM/Lmxlbmd0aCAtIDEgfX1cbiAgICAgICAgPC9idXR0b24+XG5cbiAgICAgICAgPGFwcC1wb3BvdmVyICNNb3JlQ2F0ZWdvcnk+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIndmLWFjdGlvbi1saXN0IGNhdGVnb3J5LWxpc3RcIj5cbiAgICAgICAgICAgIDx1bCBjbGFzcz1cImFjdGlvbi1pdGVtXCI+XG4gICAgICAgICAgICAgIDxsaSAqbmdGb3I9XCJsZXQgZWFjaFRlbXBsYXRlIG9mIGNhdGVnb3J5RGV0YWlscyB8IHNsaWNlIDogMVwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhdmF0YXItY2FyZFwiPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZ4LXctMTAwXCI+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ2YWx1ZSB2eC1wLTAgdngtdy0xMDBcIlxuICAgICAgICAgICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cImVhY2hUZW1wbGF0ZT8uaXRlbV9uYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiXG4gICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJsYWNrXCJcbiAgICAgICAgICAgICAgICAgICAgICBkZWxheT1cIjBcIlxuICAgICAgICAgICAgICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgICA+e3sgZWFjaFRlbXBsYXRlPy5pdGVtX25hbWUgfX08L3NwYW5cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJlYWNoVGVtcGxhdGU/LnBhcmVudF9pdGVtcz8ubGVuZ3RoXCJcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIndpdGhpbi1wYXJ0IHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtcHItM1wiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ3aXRoaW4tYm94IHZ4LWZzLTkgdngtZnctNjAwIHZ4LXR0LXVwcGVyY2FzZSB2eC1wbC0xIHZ4LXByLTEgdngtbXItMiB2eC1saC0zXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5XaXRoaW48L3NwYW5cbiAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwid2l0aGluLXZhbHVlIHZ4LWZzLTExIHZ4LXBhcmFncmFwaC10eHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiZWFjaFRlbXBsYXRlPy5wYXJlbnRfaXRlbXM/LmpvaW4oJyA8ICcpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlbGF5PVwiMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYmxhY2tcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPnt7IGVhY2hUZW1wbGF0ZT8ucGFyZW50X2l0ZW1zPy5qb2luKFwiIDwgXCIpIH19PC9zcGFuXG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9hcHAtcG9wb3Zlcj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cInRhYmxlLWNvbHVtbiB2eC1wbC0xIHZ4LXByLTEgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2aWV3LWFjdGlvblwiXG4gICAgICA+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAqbmdJZj1cInByZXZpZXdFbmFibGVkXCJcbiAgICAgICAgICBjbGFzcz1cInByZXZpZXdCdG4gdngtZnMtMTEgdngtZnctNTAwIHZ4LXR4dC1ibHVlIHZ4LXR0LXVwcGVyY2FzZSB2eC1wLTAgdngtcGwtMiB2eC1wci0yIHZ4LW0tMCB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWxoLTZcIlxuICAgICAgICAgIChjbGljayk9XCJvblByZXZpZXcuZW1pdChlYWNoVGVtcGxhdGUpXCJcbiAgICAgICAgPlxuICAgICAgICAgIFBSRVZJRVdcbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUtbGlzdC10YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi9zaGFyZWRDb21wb25lbnRzL3BvbGljeS10ZW1wbGF0ZS90ZW1wbGF0ZS1saXN0LXRhYmxlL3RlbXBsYXRlLWxpc3QtdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvc2hhcmVkQ29tcG9uZW50cy9wb2xpY3ktdGVtcGxhdGUvdGVtcGxhdGUtbGlzdC10YWJsZS90ZW1wbGF0ZS1saXN0LXRhYmxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7QUFPdkUsTUFBTSxPQUFPLDBCQUEwQjtJQUx2QztRQU9XLGlCQUFZLEdBQVUsRUFBRSxDQUFDO1FBQ3pCLFdBQU0sR0FBWSxLQUFLLENBQUM7UUFDeEIsaUJBQVksR0FBVSxFQUFFLENBQUM7UUFDeEIsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFDcEMscUJBQWdCLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUMzQyxjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztLQU0vQztJQUpDLFFBQVEsQ0FBQyxRQUFhO1FBQ3BCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxRQUFRLENBQUM7UUFDakMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN2QyxDQUFDOytHQVpVLDBCQUEwQjttR0FBMUIsMEJBQTBCLDRSQ1B2Qyw4MkxBaUtBOzs0RkQxSmEsMEJBQTBCO2tCQUx0QyxTQUFTOytCQUNFLHlCQUF5Qjs4QkFLMUIsZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0ksTUFBTTtzQkFBZixNQUFNO2dCQUNHLGdCQUFnQjtzQkFBekIsTUFBTTtnQkFDRyxTQUFTO3NCQUFsQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLXRlbXBsYXRlLWxpc3QtdGFibGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vdGVtcGxhdGUtbGlzdC10YWJsZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3RlbXBsYXRlLWxpc3QtdGFibGUuY29tcG9uZW50Lmxlc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgVGVtcGxhdGVMaXN0VGFibGVDb21wb25lbnQge1xuICBASW5wdXQoKSBzZWxlY3RlZFRlbXBsYXRlOiBhbnk7XG4gIEBJbnB1dCgpIHRlbXBsYXRlTGlzdDogYW55W10gPSBbXTtcbiAgQElucHV0KCkgbG9hZGVyOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGNhdGVnb3J5TGlzdDogYW55W10gPSBbXTtcbiAgQE91dHB1dCgpIG9uU29ydCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuICBAT3V0cHV0KCkgb25TZWxlY3RUZW1wbGF0ZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAT3V0cHV0KCkgb25QcmV2aWV3ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgb25TZWxlY3QodGVtcGxhdGU6IGFueSkge1xuICAgIHRoaXMuc2VsZWN0ZWRUZW1wbGF0ZSA9IHRlbXBsYXRlO1xuICAgIHRoaXMub25TZWxlY3RUZW1wbGF0ZS5lbWl0KHRlbXBsYXRlKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInRlbXBsYXRlLWxpc3QtdGFibGVcIj5cbiAgPGRpdiBjbGFzcz1cInRhYmxlLWhlYWRlclwiPlxuICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS1yb3dcIj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJ0YWJsZS1jb2x1bW4gdngtZnMtMTEgdngtZnctNTAwIHZ4LWxoLTUgdngtdHQtdXBwZXJjYXNlIHZ4LXBsLTEgdngtcHItMSB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHNlcmlhbFwiXG4gICAgICA+XG4gICAgICAgICNcbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cInRhYmxlLWNvbHVtbiB2eC1mcy0xMSB2eC1mdy01MDAgdngtbGgtNSB2eC10dC11cHBlcmNhc2UgdngtcGwtMSB2eC1wci0xIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdGVtcGxhdGUtbmFtZVwiXG4gICAgICA+XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgKGNsaWNrKT1cIm9uU29ydC5lbWl0KCduYW1lJylcIlxuICAgICAgICAgIGNsYXNzPVwic29ydGluZyB2eC1mcy05IHZ4LXR4dC1ibHVlIHZ4LW1yLTFcIlxuICAgICAgICAgID48aSBjbGFzcz1cImljb25zXCI+JiN4ZWFmMDs8L2k+PC9zcGFuXG4gICAgICAgID5cbiAgICAgICAgVEVNUExBVEUgTkFNRVxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwidGFibGUtY29sdW1uIHZ4LWZzLTExIHZ4LWZ3LTUwMCB2eC1saC01IHZ4LXR0LXVwcGVyY2FzZSB2eC1wbC0xIHZ4LXByLTEgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciBjYXRlZ29yeVwiXG4gICAgICA+XG4gICAgICAgIDwhLS0gPHNwYW4gY2xhc3M9XCJzb3J0aW5nIHZ4LWZzLTkgdngtdHh0LWJsdWUgdngtbXItMVwiXG4gICAgICAgICAgPjxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlYWYwOzwvaT48L3NwYW5cbiAgICAgICAgPiAtLT5cbiAgICAgICAgQ0FURUdPUklFU1xuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwidGFibGUtY29sdW1uIHZ4LWZzLTExIHZ4LWZ3LTUwMCB2eC1saC01IHZ4LXR0LXVwcGVyY2FzZSB2eC1wbC0xIHZ4LXByLTEgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2aWV3LWFjdGlvblwiXG4gICAgICA+PC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwidGFibGUtYm9keVwiPlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwidGFibGUtcm93XCJcbiAgICAgICpuZ0Zvcj1cImxldCBlYWNoVGVtcGxhdGUgb2YgdGVtcGxhdGVMaXN0OyBsZXQgaSA9IGluZGV4XCJcbiAgICAgIFtjbGFzcy5hY3RpdmVdPVwic2VsZWN0ZWRUZW1wbGF0ZT8uX2lkID09PSBlYWNoVGVtcGxhdGU/Ll9pZFwiXG4gICAgPlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cInRhYmxlLWNvbHVtbiB2eC1wbC0xIHZ4LXByLTEgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciBzZXJpYWxcIlxuICAgICAgPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJzci1ub1wiXG4gICAgICAgICAgW2FwcFRvb2x0aXBdPVwiaSArIDFcIlxuICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbVwiXG4gICAgICAgICAgZGVsYXk9XCIwXCJcbiAgICAgICAgICB0eXBlPVwiYmxhY2tcIlxuICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cInRydWVcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgaSArIDEgfX1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxhcHAtY3MtcmFkaW9cbiAgICAgICAgICBuYW1lPVwidGVtcGxhdGVcIlxuICAgICAgICAgIFt2YWx1ZV09XCJzZWxlY3RlZFRlbXBsYXRlPy5faWRcIlxuICAgICAgICAgIFtjaGVja2VkXT1cInNlbGVjdGVkVGVtcGxhdGU/Ll9pZCA9PT0gZWFjaFRlbXBsYXRlPy5faWRcIlxuICAgICAgICAgIChjaGVja2VkRXZlbnQpPVwib25TZWxlY3QoZWFjaFRlbXBsYXRlKVwiXG4gICAgICAgID48L2FwcC1jcy1yYWRpbz5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cInRhYmxlLWNvbHVtbiB2eC1wbC0xIHZ4LXByLTEgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB0ZW1wbGF0ZS1uYW1lXCJcbiAgICAgID5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwidmFsdWUgdngtZnMtMTIgdngtbGFiZWwtdHh0XCJcbiAgICAgICAgICBbYXBwVG9vbHRpcF09XCJlYWNoVGVtcGxhdGU/Lm5hbWVcIlxuICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCJcbiAgICAgICAgICBkZWxheT1cIjBcIlxuICAgICAgICAgIHR5cGU9XCJibGFja1wiXG4gICAgICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwiZmFsc2VcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgZWFjaFRlbXBsYXRlPy5uYW1lIH19XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwidGFibGUtY29sdW1uIHZ4LXBsLTEgdngtcHItMSB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIGNhdGVnb3J5XCJcbiAgICAgICAgKm5nSWY9XCJlYWNoVGVtcGxhdGU/LmNhdGVnb3J5RGV0YWlscyBhcyBjYXRlZ29yeURldGFpbHNcIlxuICAgICAgPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2F0ZWdvcnktaW5uZXJcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2F0ZWdvcnktbmFtZSB2eC1mcy0xMiB2eC1saC00XCI+XG4gICAgICAgICAgICB7eyBjYXRlZ29yeURldGFpbHNbMF0/Lml0ZW1fbmFtZSB9fVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICpuZ0lmPVwiY2F0ZWdvcnlEZXRhaWxzWzBdPy5wYXJlbnRfaXRlbXM/Lmxlbmd0aFwiXG4gICAgICAgICAgICBjbGFzcz1cIndpdGhpbi1wYXJ0IHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtcHItM1wiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgY2xhc3M9XCJ3aXRoaW4tYm94IHZ4LWZzLTkgdngtZnctNjAwIHZ4LXR0LXVwcGVyY2FzZSB2eC1wbC0xIHZ4LXByLTEgdngtbXItMiB2eC1saC0zXCJcbiAgICAgICAgICAgICAgPldpdGhpbjwvc3BhblxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgY2xhc3M9XCJ3aXRoaW4tdmFsdWUgdngtZnMtMTEgdngtcGFyYWdyYXBoLXR4dFwiXG4gICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cImNhdGVnb3J5RGV0YWlsc1swXT8ucGFyZW50X2l0ZW1zPy5qb2luKCcgPCAnKVwiXG4gICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCJcbiAgICAgICAgICAgICAgZGVsYXk9XCIwXCJcbiAgICAgICAgICAgICAgdHlwZT1cImJsYWNrXCJcbiAgICAgICAgICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwiZmFsc2VcIlxuICAgICAgICAgICAgICA+e3sgY2F0ZWdvcnlEZXRhaWxzWzBdPy5wYXJlbnRfaXRlbXM/LmpvaW4oXCIgPCBcIikgfX08L3NwYW5cbiAgICAgICAgICAgID5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAqbmdJZj1cImNhdGVnb3J5RGV0YWlscz8ubGVuZ3RoID4gMVwiXG4gICAgICAgICAgY2xhc3M9XCJjb3VudEJ0biB2eC1mcy05IHZ4LWZ3LTYwMCB2eC10eHQtYmx1ZSB2eC1wbC0xIHZ4LXByLTEgdngtbS0wIHZ4LW1sLTEgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWNlbnRlclwiXG4gICAgICAgICAgYXBwUG9wb3ZlclxuICAgICAgICAgIChjbGljayk9XCJNb3JlQ2F0ZWdvcnkucG9wb3ZlcigpXCJcbiAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgID5cbiAgICAgICAgICAre3sgY2F0ZWdvcnlEZXRhaWxzPy5sZW5ndGggLSAxIH19XG4gICAgICAgIDwvYnV0dG9uPlxuXG4gICAgICAgIDxhcHAtcG9wb3ZlciAjTW9yZUNhdGVnb3J5PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3Zi1hY3Rpb24tbGlzdCBjYXRlZ29yeS1saXN0XCI+XG4gICAgICAgICAgICA8dWwgY2xhc3M9XCJhY3Rpb24taXRlbVwiPlxuICAgICAgICAgICAgICA8bGkgKm5nRm9yPVwibGV0IGVhY2hUZW1wbGF0ZSBvZiBjYXRlZ29yeURldGFpbHMgfCBzbGljZSA6IDFcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXZhdGFyLWNhcmRcIj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2eC13LTEwMFwiPlxuICAgICAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidmFsdWUgdngtcC0wIHZ4LXctMTAwXCJcbiAgICAgICAgICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCJlYWNoVGVtcGxhdGU/Lml0ZW1fbmFtZVwiXG4gICAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIlxuICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJibGFja1wiXG4gICAgICAgICAgICAgICAgICAgICAgZGVsYXk9XCIwXCJcbiAgICAgICAgICAgICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgICAgPnt7IGVhY2hUZW1wbGF0ZT8uaXRlbV9uYW1lIH19PC9zcGFuXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZWFjaFRlbXBsYXRlPy5wYXJlbnRfaXRlbXM/Lmxlbmd0aFwiXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ3aXRoaW4tcGFydCB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LXByLTNcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwid2l0aGluLWJveCB2eC1mcy05IHZ4LWZ3LTYwMCB2eC10dC11cHBlcmNhc2UgdngtcGwtMSB2eC1wci0xIHZ4LW1yLTIgdngtbGgtM1wiXG4gICAgICAgICAgICAgICAgICAgICAgICA+V2l0aGluPC9zcGFuXG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIndpdGhpbi12YWx1ZSB2eC1mcy0xMSB2eC1wYXJhZ3JhcGgtdHh0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cImVhY2hUZW1wbGF0ZT8ucGFyZW50X2l0ZW1zPy5qb2luKCcgPCAnKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBkZWxheT1cIjBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJsYWNrXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID57eyBlYWNoVGVtcGxhdGU/LnBhcmVudF9pdGVtcz8uam9pbihcIiA8IFwiKSB9fTwvc3BhblxuICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvYXBwLXBvcG92ZXI+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJ0YWJsZS1jb2x1bW4gdngtcGwtMSB2eC1wci0xIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdmlldy1hY3Rpb25cIlxuICAgICAgPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgY2xhc3M9XCJwcmV2aWV3QnRuIHZ4LWZzLTExIHZ4LWZ3LTUwMCB2eC10eHQtYmx1ZSB2eC10dC11cHBlcmNhc2UgdngtcC0wIHZ4LXBsLTIgdngtcHItMiB2eC1tLTAgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1saC02XCJcbiAgICAgICAgICAoY2xpY2spPVwib25QcmV2aWV3LmVtaXQoZWFjaFRlbXBsYXRlKVwiXG4gICAgICAgID5cbiAgICAgICAgICBQUkVWSUVXXG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=