vcomply-workflow-engine 6.0.43 → 6.0.44
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/sharedComponents/policy-template/select-template-list/select-template-list.component.mjs +22 -18
- package/fesm2022/vcomply-workflow-engine.mjs +9 -6
- package/fesm2022/vcomply-workflow-engine.mjs.map +1 -1
- package/lib/sharedComponents/policy-template/select-template-list/select-template-list.component.d.ts +4 -2
- package/package.json +1 -1
|
@@ -1,22 +1,23 @@
|
|
|
1
|
-
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
1
|
+
import { Component, EventEmitter, Input, Optional, 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 "
|
|
8
|
-
import * as i4 from "
|
|
9
|
-
import * as i5 from "
|
|
10
|
-
import * as i6 from "../../
|
|
11
|
-
import * as i7 from "
|
|
12
|
-
import * as i8 from "../../../ui-kit/multi-select/cs-multiselect
|
|
13
|
-
import * as i9 from "
|
|
14
|
-
import * as i10 from "
|
|
15
|
-
import * as i11 from "
|
|
16
|
-
import * as i12 from "
|
|
17
|
-
import * as i13 from "../template-
|
|
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";
|
|
18
19
|
export class SelectTemplateListComponent {
|
|
19
|
-
constructor(templateService, policyService) {
|
|
20
|
+
constructor(templateService, policyService, config) {
|
|
20
21
|
this.templateService = templateService;
|
|
21
22
|
this.policyService = policyService;
|
|
22
23
|
this.fileUrl = '';
|
|
@@ -39,6 +40,7 @@ export class SelectTemplateListComponent {
|
|
|
39
40
|
this.isPreview = false;
|
|
40
41
|
this.selectedCategoryId = [];
|
|
41
42
|
this.onTemplateSelect = new EventEmitter();
|
|
43
|
+
this.env = config?.envConfig;
|
|
42
44
|
}
|
|
43
45
|
ngOnInit() {
|
|
44
46
|
this.setAnimation();
|
|
@@ -177,23 +179,25 @@ export class SelectTemplateListComponent {
|
|
|
177
179
|
this.loader = false;
|
|
178
180
|
this.isPreview = true;
|
|
179
181
|
this.previewTemplate = details;
|
|
180
|
-
this.fileUrl = details?.s3DocxPath
|
|
182
|
+
this.fileUrl = `${this.env?.s3Url}${this.env?.s3Bucket}/${details?.s3DocxPath}`;
|
|
181
183
|
}
|
|
182
184
|
onClosePreview() {
|
|
183
185
|
this.isPreview = false;
|
|
184
186
|
this.previewTemplate = null;
|
|
185
187
|
}
|
|
186
|
-
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 }); }
|
|
187
|
-
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\"></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\"></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: 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.NgxDocViewerComponent, selector: "ngx-doc-viewer", inputs: ["url", "queryParams", "viewerUrl", "googleCheckInterval", "googleMaxChecks", "disableContent", "googleCheckContentLoaded", "viewer", "overrideLocalhost"], outputs: ["loaded"] }, { kind: "component", type: i12.TemplateListTableComponent, selector: "app-template-list-table", inputs: ["selectedTemplate", "templateList", "loader", "categoryList", "feature"], outputs: ["onSort", "onSelectTemplate", "onPreview"] }, { kind: "pipe", type: i13.SearchByKeysPipe, name: "SearchByKeys" }] }); }
|
|
188
|
+
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 }); }
|
|
189
|
+
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\"></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\"></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" }] }); }
|
|
188
190
|
}
|
|
189
191
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SelectTemplateListComponent, decorators: [{
|
|
190
192
|
type: Component,
|
|
191
193
|
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\"></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\"></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"] }]
|
|
192
|
-
}], ctorParameters: function () { return [{ type: i1.TemplateService }, { type: i2.PolicyService }
|
|
194
|
+
}], ctorParameters: function () { return [{ type: i1.TemplateService }, { type: i2.PolicyService }, { type: i3.Configurations, decorators: [{
|
|
195
|
+
type: Optional
|
|
196
|
+
}] }]; }, propDecorators: { selectedCategoryId: [{
|
|
193
197
|
type: Input
|
|
194
198
|
}], feature: [{
|
|
195
199
|
type: Input
|
|
196
200
|
}], onTemplateSelect: [{
|
|
197
201
|
type: Output
|
|
198
202
|
}] } });
|
|
199
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LXRlbXBsYXRlLWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvc2hhcmVkQ29tcG9uZW50cy9wb2xpY3ktdGVtcGxhdGUvc2VsZWN0LXRlbXBsYXRlLWxpc3Qvc2VsZWN0LXRlbXBsYXRlLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvc2hhcmVkQ29tcG9uZW50cy9wb2xpY3ktdGVtcGxhdGUvc2VsZWN0LXRlbXBsYXRlLWxpc3Qvc2VsZWN0LXRlbXBsYXRlLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV2RSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hDLE9BQU8sRUFDTCxtQkFBbUIsRUFDbkIscUJBQXFCLEdBQ3RCLE1BQU0sZ0NBQWdDLENBQUM7Ozs7Ozs7Ozs7Ozs7OztBQVF4QyxNQUFNLE9BQU8sMkJBQTJCO0lBeUJ0QyxZQUNVLGVBQWdDLEVBQ2hDLGFBQTRCO1FBRDVCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQTFCdEMsWUFBTyxHQUFXLEVBQUUsQ0FBQTtRQUNwQixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLHFCQUFnQixHQUFVLEVBQUUsQ0FBQztRQUM3QixvQkFBZSxHQUFpQixJQUFJLENBQUM7UUFDckMsaUJBQVksR0FBVSxFQUFFLENBQUM7UUFDekIsZUFBVSxHQUFHLFNBQVMsQ0FBQztRQUN2QixXQUFNLEdBQVksS0FBSyxDQUFDO1FBQ3hCLGlCQUFZLEdBQVUs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M0IsMkJBQTJCLDZMQ2R4QyxtM0pBMElBOzs0RkQ1SGEsMkJBQTJCO2tCQUx2QyxTQUFTOytCQUNFLDBCQUEwQjtrSUF5QjNCLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0ksZ0JBQWdCO3NCQUF6QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRlbXBsYXRlU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3RlbXBsYXRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgZm9ya0pvaW4gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIE5PX0RBVEFfRk9VTkRfSU1BR0UsXG4gIE5PX0RBVEFfRk9VTkRfTUVTU0FHRSxcbn0gZnJvbSAnLi4vY29uc3RhbnRzL3RlbXBsYXRlLmNvbnN0YW50JztcbmltcG9ydCB7IFBvbGljeVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi93b3JrZmxvdy1zZXJ2aWNlcy9wb2xpY3kuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1zZWxlY3QtdGVtcGxhdGUtbGlzdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWxlY3QtdGVtcGxhdGUtbGlzdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NlbGVjdC10ZW1wbGF0ZS1saXN0LmNvbXBvbmVudC5sZXNzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFNlbGVjdFRlbXBsYXRlTGlzdENvbXBvbmVudCB7XG4gIGZpbGVVcmw6IHN0cmluZyA9ICcnXG4gIGFuaW1hdGlvbiA9IGZhbHNlO1xuICBkZWZhdWx0VGVtcGxhdGVzOiBhbnlbXSA9IFtdO1xuICBjdXN0b21UZW1wbGF0ZXM6IGFueVtdIHwgbnVsbCA9IG51bGw7XG4gIHRlbXBsYXRlTGlzdDogYW55W10gPSBbXTtcbiAgY3VycmVudFRhYiA9ICdWQ09NUExZJztcbiAgbG9hZGVyOiBib29sZWFuID0gZmFsc2U7XG4gIGNhdGVnb3J5TGlzdDogYW55W10gPSBbXTtcbiAgZGVmYXVsdENhdGVnb3J5TGlzdDogYW55W10gPSBbXTtcbiAgdXNlckNyZWF0ZWRDYXRlZ29yeUxpc3Q6IGFueVtdID0gW107XG4gIHNvcnRTdGF0dXMgPSAtMTtcbiAgc2VhcmNoQ2F0ZWdvcnk6IHN0cmluZyA9ICcnO1xuICBzZWFyY2hUZW1wbGF0ZTogc3RyaW5nID0gJyc7XG4gIHNlbGVjdGVkQ2F0ZWdvcnk6IGFueVtdID0gW107XG4gIE5PX0RBVEFfRk9VTkRfSU1BR0UgPSBOT19EQVRBX0ZPVU5EX0lNQUdFO1xuICBOT19EQVRBX0ZPVU5EX01FU1NBR0UgPSBOT19EQVRBX0ZPVU5EX01FU1NBR0U7XG4gIHNlbGVjdGVkVGVtcGxhdGU6IGFueVtdID0gW107XG4gIGlzUHJldmlldyA9IGZhbHNlO1xuICBwcmV2aWV3VGVtcGxhdGU6IGFueTtcblxuICBASW5wdXQoKSBzZWxlY3RlZENhdGVnb3J5SWQ6IG51bWJlcltdID0gW107XG4gIEBJbnB1dCgpIGZlYXR1cmU6IGFueTtcbiAgQE91dHB1dCgpIG9uVGVtcGxhdGVTZWxlY3QgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHRlbXBsYXRlU2VydmljZTogVGVtcGxhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgcG9saWN5U2VydmljZTogUG9saWN5U2VydmljZVxuICApIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zZXRBbmltYXRpb24oKTtcbiAgICB0aGlzLmdldFRlbXBsYXRlKCk7XG4gIH1cblxuICBzZXRBbmltYXRpb24oKSB7XG4gICAgdGhpcy5hbmltYXRpb24gPSB0cnVlO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5hbmltYXRpb24gPSBmYWxzZTtcbiAgICB9LCAzMDApO1xuICB9XG5cbiAgc3dpdGNoVGFiKHRhYjogc3RyaW5nKSB7XG4gICAgdGhpcy5jdXJyZW50VGFiID0gdGFiO1xuICAgIHRoaXMuc2VsZWN0ZWRDYXRlZ29yeSA9IFtdO1xuICAgIGlmICh0YWIgPT09ICdWQ09NUExZJykge1xuICAgICAgdGhpcy50ZW1wbGF0ZUxpc3QgPSBbLi4udGhpcy5kZWZhdWx0VGVtcGxhdGVzXTtcbiAgICAgIHRoaXMuY2F0ZWdvcnlMaXN0ID0gdGhpcy5kZWZhdWx0Q2F0ZWdvcnlMaXN0O1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodGhpcy5jdXN0b21UZW1wbGF0ZXMgPT09IG51bGwpIHtcbiAgICAgICAgdGhpcy5nZXRDdXN0b21UZW1wbGF0ZXMoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMudGVtcGxhdGVMaXN0ID0gWy4uLnRoaXMuY3VzdG9tVGVtcGxhdGVzXTtcbiAgICAgICAgdGhpcy5jYXRlZ29yeUxpc3QgPSB0aGlzLnVzZXJDcmVhdGVkQ2F0ZWdvcnlMaXN0O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGdldEN1c3RvbVRlbXBsYXRlcygpIHtcbiAgICB0aGlzLmxvYWRlciA9IHRydWU7XG4gICAgY29uc3QgcGF5bG9hZCA9IHtcbiAgICAgIHR5cGU6ICdjdXN0b20nLFxuICAgICAgY2F0ZWdvcnlJZDogdGhpcy5zZWxlY3RlZENhdGVnb3J5SWQubWFwKFxuICAgICAgICAoY2F0ZWdvcnk6IGFueSkgPT4gY2F0ZWdvcnkuaXRlbV9pZFxuICAgICAgKSxcbiAgICB9O1xuICAgIHRoaXMudGVtcGxhdGVTZXJ2aWNlLmZldGNoVGVtcGxhdGVzKHBheWxvYWQpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcbiAgICAgIHRoaXMuY3VzdG9tVGVtcGxhdGVzID0gcmVzPy50ZW1wbGF0ZXMgPz8gW107XG4gICAgICB0aGlzLm1hcEN1c3RvbVRlbXBsYXRlKCk7XG4gICAgfSk7XG4gIH1cblxuICBtYXBDdXN0b21UZW1wbGF0ZSgpIHtcbiAgICB0aGlzLnBvbGljeVNlcnZpY2UuZ2V0Q2F0ZWdvcmllc0xpc3QoKS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XG4gICAgICB0aGlzLnVzZXJDcmVhdGVkQ2F0ZWdvcnlMaXN0ID0gWy4uLnJlc107XG4gICAgICB0aGlzLnVzZXJDcmVhdGVkQ2F0ZWdvcnlMaXN0ID0gdGhpcy51c2VyQ3JlYXRlZENhdGVnb3J5TGlzdC5tYXAoXG4gICAgICAgIChyZXM6IGFueSkgPT4ge1xuICAgICAgICAgIGNvbnN0IHBhcmVudEl0ZW1zID0gWy4uLm5ldyBTZXQocmVzPy5wYXJlbnRfaXRlbXMgPz8gW10pXTtcbiAgICAgICAgICBwYXJlbnRJdGVtcy51bnNoaWZ0KHJlcy5pdGVtX25hbWUpO1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAuLi5yZXMsXG4gICAgICAgICAgICBuYW1lOiBwYXJlbnRJdGVtcz8uam9pbignIDwgJyksXG4gICAgICAgICAgICBwYXJlbnRfaXRlbXM6IHJlcz8ucGFyZW50X2l0ZW1zLnJldmVyc2UoKSxcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICApO1xuICAgICAgaWYgKHRoaXMuY3VzdG9tVGVtcGxhdGVzKSB7XG4gICAgICAgIHRoaXMuY3VzdG9tVGVtcGxhdGVzID0gdGhpcy5jdXN0b21UZW1wbGF0ZXMubWFwKCh0ZW1wbGF0ZTogYW55KSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIC4uLnRlbXBsYXRlLFxuICAgICAgICAgICAgY2F0ZWdvcnlEZXRhaWxzOiB0aGlzLnVzZXJDcmVhdGVkQ2F0ZWdvcnlMaXN0LmZpbHRlcihcbiAgICAgICAgICAgICAgKGNhdGVnb3J5OiBhbnkpID0+XG4gICAgICAgICAgICAgICAgdGVtcGxhdGU/LmNhdGVnb3J5SWQ/LmluY2x1ZGVzKGNhdGVnb3J5Lml0ZW1faWQpXG4gICAgICAgICAgICApLFxuICAgICAgICAgIH07XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgdGhpcy50ZW1wbGF0ZUxpc3QgPSBbLi4ubmV3IFNldCh0aGlzLmN1c3RvbVRlbXBsYXRlcyA/PyBbXSldO1xuICAgICAgY29uc3QgY2F0ZWdvcnlJZHMgPSB0aGlzLnNlbGVjdGVkQ2F0ZWdvcnlJZC5tYXAoXG4gICAgICAgIChjYXRlZ29yeTogYW55KSA9PiBjYXRlZ29yeS5pdGVtX2lkXG4gICAgICApO1xuICAgICAgdGhpcy51c2VyQ3JlYXRlZENhdGVnb3J5TGlzdCA9IHRoaXMudXNlckNyZWF0ZWRDYXRlZ29yeUxpc3QuZmlsdGVyKFxuICAgICAgICAoY2F0ZWdvcnk6IGFueSkgPT4gY2F0ZWdvcnlJZHM/LmluY2x1ZGVzKGNhdGVnb3J5Lml0ZW1faWQpXG4gICAgICApO1xuICAgICAgdGhpcy5sb2FkZXIgPSBmYWxzZTtcbiAgICAgIHRoaXMuY2F0ZWdvcnlMaXN0ID0gdGhpcy51c2VyQ3JlYXRlZENhdGVnb3J5TGlzdDtcbiAgICB9KTtcbiAgfVxuXG4gIGdldFRlbXBsYXRlKCkge1xuICAgIHRoaXMubG9hZGVyID0gdHJ1ZTtcbiAgICBjb25zdCBwYXlsb2FkID0ge1xuICAgICAgdHlwZTogJ2RlZmF1bHQnLFxuICAgIH07XG4gICAgZm9ya0pvaW4oW1xuICAgICAgdGhpcy50ZW1wbGF0ZVNlcnZpY2UuZmV0Y2hUZW1wbGF0ZXMocGF5bG9hZCksXG4gICAgICB0aGlzLnRlbXBsYXRlU2VydmljZS5mZXRjaERlZmF1bHRDYXRlZ29yaWVzKCksXG4gICAgXSkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xuICAgICAgdGhpcy5kZWZhdWx0VGVtcGxhdGVzID0gcmVzWzBdPy50ZW1wbGF0ZXM7XG4gICAgICB0aGlzLmRlZmF1bHRDYXRlZ29yeUxpc3QgPSByZXNbMV07XG4gICAgICB0aGlzLm1hcERlZmF1bHRUZW1wbGF0ZSgpO1xuICAgICAgdGhpcy5jYXRlZ29yeUxpc3QgPSBbLi4ubmV3IFNldCh0aGlzLmRlZmF1bHRDYXRlZ29yeUxpc3QpXTtcblxuICAgICAgdGhpcy50ZW1wbGF0ZUxpc3QgPSB0aGlzLmRlZmF1bHRUZW1wbGF0ZXM7XG4gICAgICB0aGlzLmxvYWRlciA9IGZhbHNlO1xuICAgIH0pO1xuICB9XG5cbiAgbWFwRGVmYXVsdFRlbXBsYXRlKCkge1xuICAgIHRoaXMuZGVmYXVsdFRlbXBsYXRlcyA9IHRoaXMuZGVmYXVsdFRlbXBsYXRlcy5tYXAoKHRlbXBsYXRlOiBhbnkpID0+IHtcbiAgICAgIGNvbnN0IGNhdGVnb3J5ID0gdGhpcy5kZWZhdWx0Q2F0ZWdvcnlMaXN0LmZpbHRlcigoY2F0ZWdvcnk6IGFueSkgPT5cbiAgICAgICAgdGVtcGxhdGU/LmNhdGVnb3J5SWQ/LmluY2x1ZGVzKGNhdGVnb3J5Lml0ZW1faWQpXG4gICAgICApO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4udGVtcGxhdGUsXG4gICAgICAgIGNhdGVnb3J5RGV0YWlsczogY2F0ZWdvcnksXG4gICAgICB9O1xuICAgIH0pO1xuICB9XG5cbiAgc29ydEJ5KGtleTogc3RyaW5nKSB7XG4gICAgdGhpcy5zb3J0U3RhdHVzID0gdGhpcy5zb3J0U3RhdHVzICogLTE7XG4gICAgdGhpcy50ZW1wbGF0ZUxpc3QgPSB0aGlzLnRlbXBsYXRlU2VydmljZS5zb3J0QnlLZXkoXG4gICAgICB0aGlzLnRlbXBsYXRlTGlzdCxcbiAgICAgIGtleSxcbiAgICAgIHRoaXMuc29ydFN0YXR1c1xuICAgICk7XG4gIH1cblxuICBvblNlbGVjdENhdGVnb3J5KGNhdGVnb3J5OiBhbnksIGV2ZW50OiBhbnkpIHtcbiAgICBpZiAoZXZlbnQudGFyZ2V0LmNoZWNrZWQpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRDYXRlZ29yeS5wdXNoKGNhdGVnb3J5Py5pdGVtX2lkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZWxlY3RlZENhdGVnb3J5ID0gdGhpcy5zZWxlY3RlZENhdGVnb3J5LmZpbHRlcihcbiAgICAgICAgKGlkOiBhbnkpID0+IGlkICE9PSBjYXRlZ29yeT8uaXRlbV9pZFxuICAgICAgKTtcbiAgICB9XG4gICAgdGhpcy5zZWxlY3RlZENhdGVnb3J5ID0gWy4uLm5ldyBTZXQodGhpcy5zZWxlY3RlZENhdGVnb3J5KV07XG4gIH1cblxuICBvbkFwcGx5RmlsdGVyKGV2ZW50OiBhbnkpIHtcbiAgICBpZiAoIWV2ZW50KSB7XG4gICAgICB0aGlzLnNlbGVjdGVkQ2F0ZWdvcnkgPSBbXTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgbGV0IHNlbGVjdGVkVGVtcGxhdGUgPVxuICAgICAgdGhpcy5jdXJyZW50VGFiID09PSAnVkNPTVBMWSdcbiAgICAgICAgPyB0aGlzLmRlZmF1bHRUZW1wbGF0ZXNcbiAgICAgICAgOiB0aGlzLmN1c3RvbVRlbXBsYXRlcyA/PyBbXTtcbiAgICBzZWxlY3RlZFRlbXBsYXRlID0gWy4uLm5ldyBTZXQoc2VsZWN0ZWRUZW1wbGF0ZSldO1xuICAgIGlmICh0aGlzLnNlbGVjdGVkQ2F0ZWdvcnkubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLnRlbXBsYXRlTGlzdCA9IHNlbGVjdGVkVGVtcGxhdGU7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMudGVtcGxhdGVMaXN0ID0gc2VsZWN0ZWRUZW1wbGF0ZS5maWx0ZXIoKHRlbXBsYXRlOiBhbnkpID0+IHtcbiAgICAgIHJldHVybiB0ZW1wbGF0ZT8uY2F0ZWdvcnlJZD8uc29tZSgoaWQ6IGFueSkgPT5cbiAgICAgICAgdGhpcy5zZWxlY3RlZENhdGVnb3J5LmluY2x1ZGVzKGlkKVxuICAgICAgKTtcbiAgICB9KTtcbiAgfVxuXG4gIG9uU2VsZWN0VGVtcGxhdGUodGVtcGxhdGU6IGFueSkge1xuICAgIHRoaXMuc2VsZWN0ZWRUZW1wbGF0ZSA9IFt0ZW1wbGF0ZV07XG4gIH1cblxuICBzYXZlKCkge1xuICAgIHRoaXMub25UZW1wbGF0ZVNlbGVjdC5lbWl0KHRoaXMuc2VsZWN0ZWRUZW1wbGF0ZSk7XG4gIH1cblxuICBjbG9zZSgpIHtcbiAgICB0aGlzLm9uVGVtcGxhdGVTZWxlY3QuZW1pdChbXSk7XG4gIH1cblxuICBkZWxldGVFdmVudCgpIHtcbiAgICB0aGlzLnNlbGVjdGVkVGVtcGxhdGUgPSBbXTtcbiAgfVxuXG4gIG9uUHJldmlldyhkZXRhaWxzOiBhbnkpIHtcbiAgICB0aGlzLmxvYWRlciA9IGZhbHNlO1xuICAgIHRoaXMuaXNQcmV2aWV3ID0gdHJ1ZTtcbiAgICB0aGlzLnByZXZpZXdUZW1wbGF0ZSA9IGRldGFpbHM7XG4gICAgdGhpcy5maWxlVXJsID0gZGV0YWlscz8uczNEb2N4UGF0aDtcbiAgfVxuXG4gIG9uQ2xvc2VQcmV2aWV3KCkge1xuICAgIHRoaXMuaXNQcmV2aWV3ID0gZmFsc2U7XG4gICAgdGhpcy5wcmV2aWV3VGVtcGxhdGUgPSBudWxsO1xuICB9XG59XG4iLCI8ZGl2XG4gIGNsYXNzPVwic2VsZWN0LXRlbXBsYXRlLWxpc3RcIlxuICBbY2xhc3MuYW5pbWF0ZV09XCJhbmltYXRpb25cIlxuICBbY2xhc3Mud2l0aFByZXZpZXddPVwiaXNQcmV2aWV3XCJcbj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc1ByZXZpZXdcIj5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cInNlbGVjdC10ZW1wbGF0ZS1saXN0LWhlYWQgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWJldHdlZW4gdngtcGwtNCB2eC1wci00XCJcbiAgICA+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=
|
|
203
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LXRlbXBsYXRlLWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvc2hhcmVkQ29tcG9uZW50cy9wb2xpY3ktdGVtcGxhdGUvc2VsZWN0LXRlbXBsYXRlLWxpc3Qvc2VsZWN0LXRlbXBsYXRlLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvc2hhcmVkQ29tcG9uZW50cy9wb2xpY3ktdGVtcGxhdGUvc2VsZWN0LXRlbXBsYXRlLWxpc3Qvc2VsZWN0LXRlbXBsYXRlLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFakYsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNoQyxPQUFPLEVBQ0wsbUJBQW1CLEVBQ25CLHFCQUFxQixHQUN0QixNQUFNLGdDQUFnQyxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7O0FBUXhDLE1BQU0sT0FBTywyQkFBMkI7SUEwQnRDLFlBQ1UsZUFBZ0MsRUFDaEMsYUFBNEIsRUFDeEIsTUFBdUI7UUFGM0Isb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hDLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBM0J0QyxZQUFPLEdBQVcsRUFBRSxDQUFBO1FBRXBCLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFDbEIscUJBQWdCLEdBQVUsRUFBRSxDQUFDO1FBQzdCLG9CQUFlLEdBQWlCLElBQUksQ0FBQztRQUNyQyxpQkFBWSxHQUFVLEVBQUUsQ0FBQztRQUN6QixlQUFVLEdBQUcsU0FBUyxDQUFDO1FBQ3ZCLFdBQU0sR0FBWSxLQUFL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QUUsVUFBVSxFQUFFLENBQUM7SUFDbEYsQ0FBQztJQUVELGNBQWM7UUFDWixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUN2QixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQztJQUM5QixDQUFDOytHQW5OVSwyQkFBMkI7bUdBQTNCLDJCQUEyQiw2TENkeEMsbTNKQTBJQTs7NEZENUhhLDJCQUEyQjtrQkFMdkMsU0FBUzsrQkFDRSwwQkFBMEI7OzBCQWlDakMsUUFBUTs0Q0FQRixrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNJLGdCQUFnQjtzQkFBekIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3B0aW9uYWwsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVGVtcGxhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvdGVtcGxhdGUuc2VydmljZSc7XG5pbXBvcnQgeyBmb3JrSm9pbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgTk9fREFUQV9GT1VORF9JTUFHRSxcbiAgTk9fREFUQV9GT1VORF9NRVNTQUdFLFxufSBmcm9tICcuLi9jb25zdGFudHMvdGVtcGxhdGUuY29uc3RhbnQnO1xuaW1wb3J0IHsgUG9saWN5U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3dvcmtmbG93LXNlcnZpY2VzL3BvbGljeS5zZXJ2aWNlJztcbmltcG9ydCB7IENvbmZpZ3VyYXRpb25zIH0gZnJvbSAnLi4vLi4vLi4vY29uZmlndXJhdGlvbnMnO1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLXNlbGVjdC10ZW1wbGF0ZS1saXN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NlbGVjdC10ZW1wbGF0ZS1saXN0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc2VsZWN0LXRlbXBsYXRlLWxpc3QuY29tcG9uZW50Lmxlc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgU2VsZWN0VGVtcGxhdGVMaXN0Q29tcG9uZW50IHtcbiAgZmlsZVVybDogc3RyaW5nID0gJydcbiAgZW52OmFueTtcbiAgYW5pbWF0aW9uID0gZmFsc2U7XG4gIGRlZmF1bHRUZW1wbGF0ZXM6IGFueVtdID0gW107XG4gIGN1c3RvbVRlbXBsYXRlczogYW55W10gfCBudWxsID0gbnVsbDtcbiAgdGVtcGxhdGVMaXN0OiBhbnlbXSA9IFtdO1xuICBjdXJyZW50VGFiID0gJ1ZDT01QTFknO1xuICBsb2FkZXI6IGJvb2xlYW4gPSBmYWxzZTtcbiAgY2F0ZWdvcnlMaXN0OiBhbnlbXSA9IFtdO1xuICBkZWZhdWx0Q2F0ZWdvcnlMaXN0OiBhbnlbXSA9IFtdO1xuICB1c2VyQ3JlYXRlZENhdGVnb3J5TGlzdDogYW55W10gPSBbXTtcbiAgc29ydFN0YXR1cyA9IC0xO1xuICBzZWFyY2hDYXRlZ29yeTogc3RyaW5nID0gJyc7XG4gIHNlYXJjaFRlbXBsYXRlOiBzdHJpbmcgPSAnJztcbiAgc2VsZWN0ZWRDYXRlZ29yeTogYW55W10gPSBbXTtcbiAgTk9fREFUQV9GT1VORF9JTUFHRSA9IE5PX0RBVEFfRk9VTkRfSU1BR0U7XG4gIE5PX0RBVEFfRk9VTkRfTUVTU0FHRSA9IE5PX0RBVEFfRk9VTkRfTUVTU0FHRTtcbiAgc2VsZWN0ZWRUZW1wbGF0ZTogYW55W10gPSBbXTtcbiAgaXNQcmV2aWV3ID0gZmFsc2U7XG4gIHByZXZpZXdUZW1wbGF0ZTogYW55O1xuXG4gIEBJbnB1dCgpIHNlbGVjdGVkQ2F0ZWdvcnlJZDogbnVtYmVyW10gPSBbXTtcbiAgQElucHV0KCkgZmVhdHVyZTogYW55O1xuICBAT3V0cHV0KCkgb25UZW1wbGF0ZVNlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgdGVtcGxhdGVTZXJ2aWNlOiBUZW1wbGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwb2xpY3lTZXJ2aWNlOiBQb2xpY3lTZXJ2aWNlLFxuICAgIEBPcHRpb25hbCgpIGNvbmZpZz86IENvbmZpZ3VyYXRpb25zXG4gICkge1xuICAgIHRoaXMuZW52ID0gY29uZmlnPy5lbnZDb25maWdcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc2V0QW5pbWF0aW9uKCk7XG4gICAgdGhpcy5nZXRUZW1wbGF0ZSgpO1xuICB9XG5cbiAgc2V0QW5pbWF0aW9uKCkge1xuICAgIHRoaXMuYW5pbWF0aW9uID0gdHJ1ZTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuYW5pbWF0aW9uID0gZmFsc2U7XG4gICAgfSwgMzAwKTtcbiAgfVxuXG4gIHN3aXRjaFRhYih0YWI6IHN0cmluZykge1xuICAgIHRoaXMuY3VycmVudFRhYiA9IHRhYjtcbiAgICB0aGlzLnNlbGVjdGVkQ2F0ZWdvcnkgPSBbXTtcbiAgICBpZiAodGFiID09PSAnVkNPTVBMWScpIHtcbiAgICAgIHRoaXMudGVtcGxhdGVMaXN0ID0gWy4uLnRoaXMuZGVmYXVsdFRlbXBsYXRlc107XG4gICAgICB0aGlzLmNhdGVnb3J5TGlzdCA9IHRoaXMuZGVmYXVsdENhdGVnb3J5TGlzdDtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHRoaXMuY3VzdG9tVGVtcGxhdGVzID09PSBudWxsKSB7XG4gICAgICAgIHRoaXMuZ2V0Q3VzdG9tVGVtcGxhdGVzKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnRlbXBsYXRlTGlzdCA9IFsuLi50aGlzLmN1c3RvbVRlbXBsYXRlc107XG4gICAgICAgIHRoaXMuY2F0ZWdvcnlMaXN0ID0gdGhpcy51c2VyQ3JlYXRlZENhdGVnb3J5TGlzdDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBnZXRDdXN0b21UZW1wbGF0ZXMoKSB7XG4gICAgdGhpcy5sb2FkZXIgPSB0cnVlO1xuICAgIGNvbnN0IHBheWxvYWQgPSB7XG4gICAgICB0eXBlOiAnY3VzdG9tJyxcbiAgICAgIGNhdGVnb3J5SWQ6IHRoaXMuc2VsZWN0ZWRDYXRlZ29yeUlkLm1hcChcbiAgICAgICAgKGNhdGVnb3J5OiBhbnkpID0+IGNhdGVnb3J5Lml0ZW1faWRcbiAgICAgICksXG4gICAgfTtcbiAgICB0aGlzLnRlbXBsYXRlU2VydmljZS5mZXRjaFRlbXBsYXRlcyhwYXlsb2FkKS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XG4gICAgICB0aGlzLmN1c3RvbVRlbXBsYXRlcyA9IHJlcz8udGVtcGxhdGVzID8/IFtdO1xuICAgICAgdGhpcy5tYXBDdXN0b21UZW1wbGF0ZSgpO1xuICAgIH0pO1xuICB9XG5cbiAgbWFwQ3VzdG9tVGVtcGxhdGUoKSB7XG4gICAgdGhpcy5wb2xpY3lTZXJ2aWNlLmdldENhdGVnb3JpZXNMaXN0KCkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xuICAgICAgdGhpcy51c2VyQ3JlYXRlZENhdGVnb3J5TGlzdCA9IFsuLi5yZXNdO1xuICAgICAgdGhpcy51c2VyQ3JlYXRlZENhdGVnb3J5TGlzdCA9IHRoaXMudXNlckNyZWF0ZWRDYXRlZ29yeUxpc3QubWFwKFxuICAgICAgICAocmVzOiBhbnkpID0+IHtcbiAgICAgICAgICBjb25zdCBwYXJlbnRJdGVtcyA9IFsuLi5uZXcgU2V0KHJlcz8ucGFyZW50X2l0ZW1zID8/IFtdKV07XG4gICAgICAgICAgcGFyZW50SXRlbXMudW5zaGlmdChyZXMuaXRlbV9uYW1lKTtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4ucmVzLFxuICAgICAgICAgICAgbmFtZTogcGFyZW50SXRlbXM/LmpvaW4oJyA8ICcpLFxuICAgICAgICAgICAgcGFyZW50X2l0ZW1zOiByZXM/LnBhcmVudF9pdGVtcy5yZXZlcnNlKCksXG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICAgIGlmICh0aGlzLmN1c3RvbVRlbXBsYXRlcykge1xuICAgICAgICB0aGlzLmN1c3RvbVRlbXBsYXRlcyA9IHRoaXMuY3VzdG9tVGVtcGxhdGVzLm1hcCgodGVtcGxhdGU6IGFueSkgPT4ge1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAuLi50ZW1wbGF0ZSxcbiAgICAgICAgICAgIGNhdGVnb3J5RGV0YWlsczogdGhpcy51c2VyQ3JlYXRlZENhdGVnb3J5TGlzdC5maWx0ZXIoXG4gICAgICAgICAgICAgIChjYXRlZ29yeTogYW55KSA9PlxuICAgICAgICAgICAgICAgIHRlbXBsYXRlPy5jYXRlZ29yeUlkPy5pbmNsdWRlcyhjYXRlZ29yeS5pdGVtX2lkKVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICB9O1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIHRoaXMudGVtcGxhdGVMaXN0ID0gWy4uLm5ldyBTZXQodGhpcy5jdXN0b21UZW1wbGF0ZXMgPz8gW10pXTtcbiAgICAgIGNvbnN0IGNhdGVnb3J5SWRzID0gdGhpcy5zZWxlY3RlZENhdGVnb3J5SWQubWFwKFxuICAgICAgICAoY2F0ZWdvcnk6IGFueSkgPT4gY2F0ZWdvcnkuaXRlbV9pZFxuICAgICAgKTtcbiAgICAgIHRoaXMudXNlckNyZWF0ZWRDYXRlZ29yeUxpc3QgPSB0aGlzLnVzZXJDcmVhdGVkQ2F0ZWdvcnlMaXN0LmZpbHRlcihcbiAgICAgICAgKGNhdGVnb3J5OiBhbnkpID0+IGNhdGVnb3J5SWRzPy5pbmNsdWRlcyhjYXRlZ29yeS5pdGVtX2lkKVxuICAgICAgKTtcbiAgICAgIHRoaXMubG9hZGVyID0gZmFsc2U7XG4gICAgICB0aGlzLmNhdGVnb3J5TGlzdCA9IHRoaXMudXNlckNyZWF0ZWRDYXRlZ29yeUxpc3Q7XG4gICAgfSk7XG4gIH1cblxuICBnZXRUZW1wbGF0ZSgpIHtcbiAgICB0aGlzLmxvYWRlciA9IHRydWU7XG4gICAgY29uc3QgcGF5bG9hZCA9IHtcbiAgICAgIHR5cGU6ICdkZWZhdWx0JyxcbiAgICB9O1xuICAgIGZvcmtKb2luKFtcbiAgICAgIHRoaXMudGVtcGxhdGVTZXJ2aWNlLmZldGNoVGVtcGxhdGVzKHBheWxvYWQpLFxuICAgICAgdGhpcy50ZW1wbGF0ZVNlcnZpY2UuZmV0Y2hEZWZhdWx0Q2F0ZWdvcmllcygpLFxuICAgIF0pLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcbiAgICAgIHRoaXMuZGVmYXVsdFRlbXBsYXRlcyA9IHJlc1swXT8udGVtcGxhdGVzO1xuICAgICAgdGhpcy5kZWZhdWx0Q2F0ZWdvcnlMaXN0ID0gcmVzWzFdO1xuICAgICAgdGhpcy5tYXBEZWZhdWx0VGVtcGxhdGUoKTtcbiAgICAgIHRoaXMuY2F0ZWdvcnlMaXN0ID0gWy4uLm5ldyBTZXQodGhpcy5kZWZhdWx0Q2F0ZWdvcnlMaXN0KV07XG5cbiAgICAgIHRoaXMudGVtcGxhdGVMaXN0ID0gdGhpcy5kZWZhdWx0VGVtcGxhdGVzO1xuICAgICAgdGhpcy5sb2FkZXIgPSBmYWxzZTtcbiAgICB9KTtcbiAgfVxuXG4gIG1hcERlZmF1bHRUZW1wbGF0ZSgpIHtcbiAgICB0aGlzLmRlZmF1bHRUZW1wbGF0ZXMgPSB0aGlzLmRlZmF1bHRUZW1wbGF0ZXMubWFwKCh0ZW1wbGF0ZTogYW55KSA9PiB7XG4gICAgICBjb25zdCBjYXRlZ29yeSA9IHRoaXMuZGVmYXVsdENhdGVnb3J5TGlzdC5maWx0ZXIoKGNhdGVnb3J5OiBhbnkpID0+XG4gICAgICAgIHRlbXBsYXRlPy5jYXRlZ29yeUlkPy5pbmNsdWRlcyhjYXRlZ29yeS5pdGVtX2lkKVxuICAgICAgKTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnRlbXBsYXRlLFxuICAgICAgICBjYXRlZ29yeURldGFpbHM6IGNhdGVnb3J5LFxuICAgICAgfTtcbiAgICB9KTtcbiAgfVxuXG4gIHNvcnRCeShrZXk6IHN0cmluZykge1xuICAgIHRoaXMuc29ydFN0YXR1cyA9IHRoaXMuc29ydFN0YXR1cyAqIC0xO1xuICAgIHRoaXMudGVtcGxhdGVMaXN0ID0gdGhpcy50ZW1wbGF0ZVNlcnZpY2Uuc29ydEJ5S2V5KFxuICAgICAgdGhpcy50ZW1wbGF0ZUxpc3QsXG4gICAgICBrZXksXG4gICAgICB0aGlzLnNvcnRTdGF0dXNcbiAgICApO1xuICB9XG5cbiAgb25TZWxlY3RDYXRlZ29yeShjYXRlZ29yeTogYW55LCBldmVudDogYW55KSB7XG4gICAgaWYgKGV2ZW50LnRhcmdldC5jaGVja2VkKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkQ2F0ZWdvcnkucHVzaChjYXRlZ29yeT8uaXRlbV9pZCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRDYXRlZ29yeSA9IHRoaXMuc2VsZWN0ZWRDYXRlZ29yeS5maWx0ZXIoXG4gICAgICAgIChpZDogYW55KSA9PiBpZCAhPT0gY2F0ZWdvcnk/Lml0ZW1faWRcbiAgICAgICk7XG4gICAgfVxuICAgIHRoaXMuc2VsZWN0ZWRDYXRlZ29yeSA9IFsuLi5uZXcgU2V0KHRoaXMuc2VsZWN0ZWRDYXRlZ29yeSldO1xuICB9XG5cbiAgb25BcHBseUZpbHRlcihldmVudDogYW55KSB7XG4gICAgaWYgKCFldmVudCkge1xuICAgICAgdGhpcy5zZWxlY3RlZENhdGVnb3J5ID0gW107XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGxldCBzZWxlY3RlZFRlbXBsYXRlID1cbiAgICAgIHRoaXMuY3VycmVudFRhYiA9PT0gJ1ZDT01QTFknXG4gICAgICAgID8gdGhpcy5kZWZhdWx0VGVtcGxhdGVzXG4gICAgICAgIDogdGhpcy5jdXN0b21UZW1wbGF0ZXMgPz8gW107XG4gICAgc2VsZWN0ZWRUZW1wbGF0ZSA9IFsuLi5uZXcgU2V0KHNlbGVjdGVkVGVtcGxhdGUpXTtcbiAgICBpZiAodGhpcy5zZWxlY3RlZENhdGVnb3J5Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhpcy50ZW1wbGF0ZUxpc3QgPSBzZWxlY3RlZFRlbXBsYXRlO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnRlbXBsYXRlTGlzdCA9IHNlbGVjdGVkVGVtcGxhdGUuZmlsdGVyKCh0ZW1wbGF0ZTogYW55KSA9PiB7XG4gICAgICByZXR1cm4gdGVtcGxhdGU/LmNhdGVnb3J5SWQ/LnNvbWUoKGlkOiBhbnkpID0+XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRDYXRlZ29yeS5pbmNsdWRlcyhpZClcbiAgICAgICk7XG4gICAgfSk7XG4gIH1cblxuICBvblNlbGVjdFRlbXBsYXRlKHRlbXBsYXRlOiBhbnkpIHtcbiAgICB0aGlzLnNlbGVjdGVkVGVtcGxhdGUgPSBbdGVtcGxhdGVdO1xuICB9XG5cbiAgc2F2ZSgpIHtcbiAgICB0aGlzLm9uVGVtcGxhdGVTZWxlY3QuZW1pdCh0aGlzLnNlbGVjdGVkVGVtcGxhdGUpO1xuICB9XG5cbiAgY2xvc2UoKSB7XG4gICAgdGhpcy5vblRlbXBsYXRlU2VsZWN0LmVtaXQoW10pO1xuICB9XG5cbiAgZGVsZXRlRXZlbnQoKSB7XG4gICAgdGhpcy5zZWxlY3RlZFRlbXBsYXRlID0gW107XG4gIH1cblxuICBvblByZXZpZXcoZGV0YWlsczogYW55KSB7XG4gICAgdGhpcy5sb2FkZXIgPSBmYWxzZTtcbiAgICB0aGlzLmlzUHJldmlldyA9IHRydWU7XG4gICAgdGhpcy5wcmV2aWV3VGVtcGxhdGUgPSBkZXRhaWxzO1xuICAgIHRoaXMuZmlsZVVybCA9IGAke3RoaXMuZW52Py5zM1VybH0ke3RoaXMuZW52Py5zM0J1Y2tldH0vJHtkZXRhaWxzPy5zM0RvY3hQYXRofWA7XG4gIH1cblxuICBvbkNsb3NlUHJldmlldygpIHtcbiAgICB0aGlzLmlzUHJldmlldyA9IGZhbHNlO1xuICAgIHRoaXMucHJldmlld1RlbXBsYXRlID0gbnVsbDtcbiAgfVxufVxuIiwiPGRpdlxuICBjbGFzcz1cInNlbGVjdC10ZW1wbGF0ZS1saXN0XCJcbiAgW2NsYXNzLmFuaW1hdGVdPVwiYW5pbWF0aW9uXCJcbiAgW2NsYXNzLndpdGhQcmV2aWV3XT1cImlzUHJldmlld1wiXG4+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNQcmV2aWV3XCI+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJzZWxlY3QtdGVtcGxhdGUtbGlzdC1oZWFkIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1iZXR3ZWVuIHZ4LXBsLTQgdngtcHItNFwiXG4gICAgPlxuICAgICAgPGRpdiBjbGFzcz1cInZ4LWZzLTE0IHZ4LWZ3LTUwMCB2eC1sYWJlbC10eHRcIj5TZWxlY3QgYSBUZW1wbGF0ZTwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJzZWxlY3QtdGVtcGxhdGUtbGlzdC1ib2R5XCI+XG4gICAgICA8YXBwLWxvYWRlci1pbmxpbmUgKm5nSWY9XCJsb2FkZXJcIj48L2FwcC1sb2FkZXItaW5saW5lPlxuXG4gICAgICA8ZGl2IGNsYXNzPVwic2VsZWN0LXRlbXBsYXRlLWxpc3QtdGFiIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtbWItMlwiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgKGNsaWNrKT1cInN3aXRjaFRhYignVkNPTVBMWScpXCJcbiAgICAgICAgICBjbGFzcz1cInRhYi1idG4gdngtZnMtMTEgdngtZnctNTAwIHZ4LXR0LXVwcGVyY2FzZSB2eC1wLTAgdngtcGItMiB2eC1tLTAgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1saC00XCJcbiAgICAgICAgICBbY2xhc3MuYWN0aXZlXT1cImN1cnJlbnRUYWIgPT09ICdWQ09NUExZJ1wiXG4gICAgICAgID5cbiAgICAgICAgICBWQ09NUExZIFRFTVBMQVRFU1xuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIChjbGljayk9XCJzd2l0Y2hUYWIoJ1VTRVJfQ1JFQVRFRCcpXCJcbiAgICAgICAgICBjbGFzcz1cInRhYi1idG4gdngtZnMtMTEgdngtZnctNTAwIHZ4LXR0LXVwcGVyY2FzZSB2eC1wLTAgdngtcGItMiB2eC1tLTAgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1saC00XCJcbiAgICAgICAgICBbY2xhc3MuYWN0aXZlXT1cImN1cnJlbnRUYWIgPT09ICdVU0VSX0NSRUFURUQnXCJcbiAgICAgICAgPlxuICAgICAgICAgIFVTRVItQ1JFQVRFRCBURU1QTEFURVNcbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJzZWFyY2gtYmxvY2sgdngtbWItMlwiPlxuICAgICAgICA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTkwYjs8L2k+XG4gICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIFsobmdNb2RlbCldPVwic2VhcmNoVGVtcGxhdGVcIiBwbGFjZWhvbGRlcj1cIlNlYXJjaFwiIC8+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJib2R5LXRvcCB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWp1c3RpZnktZW5kIHZ4LW1iLTJcIj5cbiAgICAgICAgPGNzLW11bHRpLXNlbGVjdFxuICAgICAgICAgIChzZWFyY2hUZXh0KT1cInNlYXJjaENhdGVnb3J5ID0gJGV2ZW50XCJcbiAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ1NlbGVjdCBDYXRlZ29yeSdcIlxuICAgICAgICAgIFt2YWx1ZV09XCJzZWxlY3RlZENhdGVnb3J5XCJcbiAgICAgICAgICAoYXBwbHlGaWx0ZXIpPVwib25BcHBseUZpbHRlcigkZXZlbnQpXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICpuZ0Zvcj1cIlxuICAgICAgICAgICAgICBsZXQgZWFjaENhdGVnb3J5IG9mIGNhdGVnb3J5TGlzdFxuICAgICAgICAgICAgICAgIHwgU2VhcmNoQnlLZXlzIDogWyduYW1lJ10gOiBzZWFyY2hDYXRlZ29yeVxuICAgICAgICAgICAgXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8Y3MtbXVsdGktc2VsZWN0LW9wdGlvblxuICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCJlYWNoQ2F0ZWdvcnk/Lm5hbWVcIlxuICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiXG4gICAgICAgICAgICAgIGRlbGF5PVwiMFwiXG4gICAgICAgICAgICAgIFt2YWx1ZV09XCJlYWNoQ2F0ZWdvcnk/Lml0ZW1faWRcIlxuICAgICAgICAgICAgICAoY2hhbmdlKT1cIm9uU2VsZWN0Q2F0ZWdvcnkoZWFjaENhdGVnb3J5LCAkZXZlbnQpXCJcbiAgICAgICAgICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwidHJ1ZVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHt7IGVhY2hDYXRlZ29yeT8ubmFtZSB9fVxuICAgICAgICAgICAgPC9jcy1tdWx0aS1zZWxlY3Qtb3B0aW9uPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2NzLW11bHRpLXNlbGVjdD5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImJvZHktaW5uZXIgdngtbWItMVwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWxvYWRlclwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgIHRlbXBsYXRlTGlzdFxuICAgICAgICAgICAgICAgIHwgU2VhcmNoQnlLZXlzXG4gICAgICAgICAgICAgICAgICA6IFsnbmFtZScsICdjYXRlZ29yeURldGFpbHMnXVxuICAgICAgICAgICAgICAgICAgOiBzZWFyY2hUZW1wbGF0ZSBhcyBhbGxUZW1wbGF0ZVxuICAgICAgICAgICAgXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8YXBwLXRlbXBsYXRlLWxpc3QtdGFibGVcbiAgICAgICAgICAgICAgKm5nSWY9XCJhbGxUZW1wbGF0ZS5sZW5ndGhcIlxuICAgICAgICAgICAgICBbdGVtcGxhdGVMaXN0XT1cImFsbFRlbXBsYXRlXCJcbiAgICAgICAgICAgICAgW2xvYWRlcl09XCJsb2FkZXJcIlxuICAgICAgICAgICAgICBbY2F0ZWdvcnlMaXN0XT1cImNhdGVnb3J5TGlzdFwiXG4gICAgICAgICAgICAgIFtzZWxlY3RlZFRlbXBsYXRlXT1cInNlbGVjdGVkVGVtcGxhdGVbMF1cIlxuICAgICAgICAgICAgICBbZmVhdHVyZV09XCJmZWF0dXJlXCJcbiAgICAgICAgICAgICAgKG9uU29ydCk9XCJzb3J0QnkoJGV2ZW50KVwiXG4gICAgICAgICAgICAgIChvblNlbGVjdFRlbXBsYXRlKT1cIm9uU2VsZWN0VGVtcGxhdGUoJGV2ZW50KVwiXG4gICAgICAgICAgICAgIChvblByZXZpZXcpPVwib25QcmV2aWV3KCRldmVudClcIlxuICAgICAgICAgICAgPjwvYXBwLXRlbXBsYXRlLWxpc3QtdGFibGU+XG4gICAgICAgICAgICA8YXBwLW5vLWRhdGFcbiAgICAgICAgICAgICAgKm5nSWY9XCIhYWxsVGVtcGxhdGU/Lmxlbmd0aFwiXG4gICAgICAgICAgICAgIFtub0RhdGFJbWFnZV09XCJOT19EQVRBX0ZPVU5EX0lNQUdFXCJcbiAgICAgICAgICAgICAgW25vRGF0YVRleHRdPVwiTk9fREFUQV9GT1VORF9NRVNTQUdFXCJcbiAgICAgICAgICAgID48L2FwcC1uby1kYXRhPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8YXBwLWZsb2F0aW5nLWJhclxuICAgICAgICAoY2xvc2VFdmVudCk9XCJzYXZlKClcIlxuICAgICAgICAoY2xvc2VMaXN0KT1cImNsb3NlKClcIlxuICAgICAgICBbaXNEaXNhYmxlZF09XCJzZWxlY3RlZFRlbXBsYXRlPy5sZW5ndGggPT09IDBcIlxuICAgICAgICBbc2VsZWN0ZWREYXRhXT1cInNlbGVjdGVkVGVtcGxhdGVcIlxuICAgICAgICBbZGlzcGxheUVsZW1lbnRLZXldPVwiJ25hbWUnXCJcbiAgICAgICAgW3Npbmd1bGFyVGV4dF09XCInVGVtcGxhdGUgU2VsZWN0ZWQnXCJcbiAgICAgICAgKGRlbGV0ZUV2ZW50KT1cImRlbGV0ZUV2ZW50KClcIlxuICAgICAgPlxuICAgICAgPC9hcHAtZmxvYXRpbmctYmFyPlxuICAgIDwvZGl2PlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzUHJldmlld1wiPlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwic2VsZWN0LXRlbXBsYXRlLWxpc3QtaGVhZCB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LXBsLTQgdngtcHItNFwiXG4gICAgPlxuICAgICAgPGJ1dHRvblxuICAgICAgICAoY2xpY2spPVwib25DbG9zZVByZXZpZXcoKVwiXG4gICAgICAgIGNsYXNzPVwicHJldmlld0J0biB2eC1mcy0xNCB2eC1mdy01MDAgdngtbGFiZWwtdHh0IHZ4LXAtMCB2eC1tLTAgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlclwiXG4gICAgICA+XG4gICAgICAgIDxpIGNsYXNzPVwiaWNvbnMgdngtbXItMVwiPiYjeGU5MWQ7PC9pPlByZXZpZXdcbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cInRlbXBsYXRlLW5hbWUgdngtZnMtMTQgdngtbWwtMVwiXG4gICAgICAgIFthcHBUb29sdGlwXT1cInByZXZpZXdUZW1wbGF0ZT8ubmFtZVwiXG4gICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCJcbiAgICAgICAgZGVsYXk9XCIwXCJcbiAgICAgICAgdHlwZT1cImJsYWNrXCJcbiAgICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwiZmFsc2VcIlxuICAgICAgPlxuICAgICAgICB7eyBwcmV2aWV3VGVtcGxhdGU/Lm5hbWUgfX1cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJwcmV2aWV3LXRlbXBsYXRlLWJvZHkgdngtZC1mbGV4IHZ4LWp1c3RpZnktY2VudGVyXCI+XG4gICAgICA8YXBwLWxvYWRlci1pbmxpbmUgKm5nSWY9XCJsb2FkZXJcIj48L2FwcC1sb2FkZXItaW5saW5lPlxuXG4gICAgICA8ZGl2ICpuZ0lmPVwiIWxvYWRlclwiIGNsYXNzPVwicHJldmlldy10ZW1wbGF0ZS1ib2R5LWlubmVyXCI+XG4gICAgICAgIDxuZ3gtZG9jLXZpZXdlclxuICAgICAgICAgIFt1cmxdPVwiZmlsZVVybFwiXG4gICAgICAgICAgdmlld2VyPVwib2ZmaWNlXCJcbiAgICAgICAgICBzdHlsZT1cIndpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7IG1hcmdpbjogMFwiXG4gICAgICAgICAgZGlzYWJsZUNvbnRlbnQ9XCJwb3BvdXQtaGlkZVwiXG4gICAgICAgID5cbiAgICAgICAgPC9uZ3gtZG9jLXZpZXdlcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuIl19
|
|
@@ -25,7 +25,7 @@ import * as i3 from '@angular/router';
|
|
|
25
25
|
import { NavigationStart, NavigationEnd, NavigationError } from '@angular/router';
|
|
26
26
|
import * as i5$1 from 'ngx-material-timepicker';
|
|
27
27
|
import { NgxMaterialTimepickerModule } from 'ngx-material-timepicker';
|
|
28
|
-
import * as
|
|
28
|
+
import * as i12 from 'ngx-doc-viewer';
|
|
29
29
|
import { NgxDocViewerModule } from 'ngx-doc-viewer';
|
|
30
30
|
import cloneDeep$2 from 'lodash-es/cloneDeep';
|
|
31
31
|
import * as XLSX from 'xlsx';
|
|
@@ -34934,7 +34934,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
34934
34934
|
}] });
|
|
34935
34935
|
|
|
34936
34936
|
class SelectTemplateListComponent {
|
|
34937
|
-
constructor(templateService, policyService) {
|
|
34937
|
+
constructor(templateService, policyService, config) {
|
|
34938
34938
|
this.templateService = templateService;
|
|
34939
34939
|
this.policyService = policyService;
|
|
34940
34940
|
this.fileUrl = '';
|
|
@@ -34957,6 +34957,7 @@ class SelectTemplateListComponent {
|
|
|
34957
34957
|
this.isPreview = false;
|
|
34958
34958
|
this.selectedCategoryId = [];
|
|
34959
34959
|
this.onTemplateSelect = new EventEmitter();
|
|
34960
|
+
this.env = config?.envConfig;
|
|
34960
34961
|
}
|
|
34961
34962
|
ngOnInit() {
|
|
34962
34963
|
this.setAnimation();
|
|
@@ -35095,19 +35096,21 @@ class SelectTemplateListComponent {
|
|
|
35095
35096
|
this.loader = false;
|
|
35096
35097
|
this.isPreview = true;
|
|
35097
35098
|
this.previewTemplate = details;
|
|
35098
|
-
this.fileUrl = details?.s3DocxPath
|
|
35099
|
+
this.fileUrl = `${this.env?.s3Url}${this.env?.s3Bucket}/${details?.s3DocxPath}`;
|
|
35099
35100
|
}
|
|
35100
35101
|
onClosePreview() {
|
|
35101
35102
|
this.isPreview = false;
|
|
35102
35103
|
this.previewTemplate = null;
|
|
35103
35104
|
}
|
|
35104
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SelectTemplateListComponent, deps: [{ token: TemplateService }, { token: PolicyService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
35105
|
-
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\"></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\"></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: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: ToolTipDirective, selector: "[appTooltip]", inputs: ["appTooltip", "placement", "type", "tooltipMandatory", "showTooltip", "animate"] }, { kind: "component", type: NoDataComponent, selector: "app-no-data", inputs: ["action", "noDataImage", "noDataText", "noDataButton", "noDataSecButton", "altText", "smallButton", "button"], outputs: ["buttonAction"] }, { kind: "component", type: LoaderInlineComponent, selector: "app-loader-inline" }, { kind: "component", type: CsMultiselectComponent, selector: "cs-multi-select", inputs: ["isRequired", "dropdownLabel", "dropdownSubLabel", "disabled", "placeholder", "searchPlaceholder", "value", "selectedItem"], outputs: ["valueChange", "applyFilter", "searchText", "resetSelectedData"] }, { kind: "component", type: CsMultiselectOptionComponent, selector: "cs-multi-select-option", inputs: ["value"] }, { kind: "component", type: 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: i1$3.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: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i11.NgxDocViewerComponent, selector: "ngx-doc-viewer", inputs: ["url", "queryParams", "viewerUrl", "googleCheckInterval", "googleMaxChecks", "disableContent", "googleCheckContentLoaded", "viewer", "overrideLocalhost"], outputs: ["loaded"] }, { kind: "component", type: TemplateListTableComponent, selector: "app-template-list-table", inputs: ["selectedTemplate", "templateList", "loader", "categoryList", "feature"], outputs: ["onSort", "onSelectTemplate", "onPreview"] }, { kind: "pipe", type: SearchByKeysPipe, name: "SearchByKeys" }] }); }
|
|
35105
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SelectTemplateListComponent, deps: [{ token: TemplateService }, { token: PolicyService }, { token: Configurations, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
35106
|
+
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\"></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\"></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: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: ToolTipDirective, selector: "[appTooltip]", inputs: ["appTooltip", "placement", "type", "tooltipMandatory", "showTooltip", "animate"] }, { kind: "component", type: NoDataComponent, selector: "app-no-data", inputs: ["action", "noDataImage", "noDataText", "noDataButton", "noDataSecButton", "altText", "smallButton", "button"], outputs: ["buttonAction"] }, { kind: "component", type: LoaderInlineComponent, selector: "app-loader-inline" }, { kind: "component", type: CsMultiselectComponent, selector: "cs-multi-select", inputs: ["isRequired", "dropdownLabel", "dropdownSubLabel", "disabled", "placeholder", "searchPlaceholder", "value", "selectedItem"], outputs: ["valueChange", "applyFilter", "searchText", "resetSelectedData"] }, { kind: "component", type: CsMultiselectOptionComponent, selector: "cs-multi-select-option", inputs: ["value"] }, { kind: "component", type: 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: i1$3.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: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.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: TemplateListTableComponent, selector: "app-template-list-table", inputs: ["selectedTemplate", "templateList", "loader", "categoryList", "feature"], outputs: ["onSort", "onSelectTemplate", "onPreview"] }, { kind: "pipe", type: SearchByKeysPipe, name: "SearchByKeys" }] }); }
|
|
35106
35107
|
}
|
|
35107
35108
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SelectTemplateListComponent, decorators: [{
|
|
35108
35109
|
type: Component,
|
|
35109
35110
|
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\"></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\"></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"] }]
|
|
35110
|
-
}], ctorParameters: function () { return [{ type: TemplateService }, { type: PolicyService }
|
|
35111
|
+
}], ctorParameters: function () { return [{ type: TemplateService }, { type: PolicyService }, { type: Configurations, decorators: [{
|
|
35112
|
+
type: Optional
|
|
35113
|
+
}] }]; }, propDecorators: { selectedCategoryId: [{
|
|
35111
35114
|
type: Input
|
|
35112
35115
|
}], feature: [{
|
|
35113
35116
|
type: Input
|