vcomply-workflow-engine 6.0.54 → 6.0.56

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (23) hide show
  1. package/esm2022/lib/more-option/more-option.component.mjs +1 -4
  2. package/esm2022/lib/services/common.service.mjs +31 -1
  3. package/esm2022/lib/sharedComponents/frequency/frequency-one-time/frequency-one-time.component.mjs +2 -2
  4. package/esm2022/lib/sharedComponents/frequency/frequency-random/frequency-random.component.mjs +7 -2
  5. package/esm2022/lib/sharedComponents/frequency/frequency.service.mjs +6 -2
  6. package/esm2022/lib/sharedComponents/program-list/pipes/check-selected-items.pipes.mjs +7 -4
  7. package/esm2022/lib/sharedComponents/program-list/program-list/program-list.component.mjs +4 -5
  8. package/esm2022/lib/ui-kit/loaders/table-loader/table-loader.component.mjs +2 -2
  9. package/esm2022/lib/workflow-compliance/workflow-compliance.component.mjs +16 -226
  10. package/esm2022/lib/workflow-policy/workflow-policy.component.mjs +73 -29
  11. package/esm2022/lib/workflow-services/policy.service.mjs +4 -4
  12. package/esm2022/lib/workflow-services/responsibility.service.mjs +9 -2
  13. package/fesm2022/vcomply-workflow-engine.mjs +138 -262
  14. package/fesm2022/vcomply-workflow-engine.mjs.map +1 -1
  15. package/lib/add-multiple-risk/add-multiple-risk.component.d.ts +1 -1
  16. package/lib/services/common.service.d.ts +24 -0
  17. package/lib/sharedComponents/frequency/frequency-random/frequency-random.component.d.ts +1 -0
  18. package/lib/sharedComponents/program-list/program-list/program-list.component.d.ts +2 -3
  19. package/lib/workflow-compliance/workflow-compliance.component.d.ts +2 -3
  20. package/lib/workflow-policy/workflow-policy.component.d.ts +9 -0
  21. package/lib/workflow-risk/workflow-risk.component.d.ts +1 -1
  22. package/lib/workflow-services/responsibility.service.d.ts +1 -0
  23. package/package.json +1 -1
@@ -17,6 +17,7 @@ export class ProgramListComponent {
17
17
  this.programListApiService = programListApiService;
18
18
  this.items = [];
19
19
  this.selectedItems = {};
20
+ //@Input() selectionPredicate: SelectionPredicate<T> = (item) => this.selectedItems.some(selected => selected.id === item.id);
20
21
  this.url = {};
21
22
  this.itemSelected = new EventEmitter();
22
23
  this.itemDeselected = new EventEmitter();
@@ -160,17 +161,15 @@ export class ProgramListComponent {
160
161
  }
161
162
  }
162
163
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ProgramListComponent, deps: [{ token: i1.ListUtilsService }, { token: i2.ProgramListApiService }], target: i0.ɵɵFactoryTarget.Component }); }
163
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ProgramListComponent, selector: "app-program-list", inputs: { items: "items", selectedItems: "selectedItems", itemTemplate: "itemTemplate", url: "url" }, outputs: { itemSelected: "itemSelected", itemDeselected: "itemDeselected", itemsSelectedChange: "itemsSelectedChange" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"dynamic-list-container\">\n <div class=\"vx-d-flex\">\n <div class=\"search-block vx-w-100\">\n <i class=\"icons\">&#xe90b;</i>\n <input\n type=\"text\"\n [(ngModel)]=\"searchTerm\"\n placeholder=\"Search...\"\n (keyup)=\"search()\"\n />\n </div>\n <div\n class=\"dynamic-list-filter\"\n appPopover\n (click)=\"programTypePopover.popover()\"\n placement=\"right\"\n >\n <div class=\"filter-text\">All Program Type</div>\n <i class=\"icons filter-icon\"> &#xe9e8; </i>\n </div>\n </div>\n <div\n class=\"dynamic-list-table\"\n *ngIf=\"paginatedItems?.length > 0 || (loaderState.programList || loaderState.categoryList); else defaultTemplate\"\n >\n <div class=\"dynamic-list-header vx-d-flex\">\n <ng-container *ngFor=\"let header of tableHeaders\">\n <div class=\"vx-d-flex vx-w-50 vx-pl-1\">\n <div\n class=\"serialNo vx-fs-11 vx-fw-500 vx-tt-uppercase vx-d-flex vx-align-center vx-justify-center\"\n >\n #\n </div>\n <div\n class=\"headerText vx-fs-11 vx-fw-500 vx-tt-uppercase vx-d-flex vx-align-center\"\n >\n {{ header }}\n </div>\n </div>\n </ng-container>\n </div>\n <div class=\"dynamic-list-body vx-d-flex\">\n <div class=\"left-column\">\n <ng-container *ngIf=\"!loaderState.programList;else programListLoader\">\n <div\n *ngFor=\"let item of paginatedItems; let i = index\"\n class=\"list-row\"\n [class.selected]=\"activeProgram?.id === item.id\"\n (click)=\"viewCategory(item)\"\n >\n <div class=\"list-column serial\">\n <div class=\"srNo\">{{ i + 1 }}</div>\n </div>\n <div\n class=\"list-column name\"\n [class.with-count]=\"selectedItems[item.id]?.length > 0\"\n >\n <div class=\"name-inner vx-fs-13 vx-pr-2\">{{ item.name }}</div>\n </div>\n <div\n class=\"list-column count\"\n *ngIf=\"selectedItems[item.id]?.length > 0\"\n >\n <div\n class=\"count-box vx-fs-9 vx-fw-600 vx-lh-4 vx-d-flex vx-align-center vx-justify-center\"\n >\n {{ selectedItems[item.id].length }}\n </div>\n <div\n class=\"count-text vx-fs-11 vx-fw-500 vx-tt-uppercase vx-lh-4 vx-ml-2\"\n >\n CATEGORIES SELECTED\n </div>\n </div>\n <div class=\"list-column action\">\n <button\n class=\"arrow vx-fs-12 vx-p-0 vx-m-0 vx-d-flex vx-align-center vx-justify-center\"\n >\n <i class=\"icons\"> &#xe970; </i>\n </button>\n </div>\n </div>\n </ng-container>\n <ng-template #programListLoader>\n <app-table-loader></app-table-loader>\n\n </ng-template>\n </div>\n <div class=\"right-column\">\n <ng-container *ngIf=\"!loaderState.categoryList;else categoryListLoader\">\n <div\n class=\"list-row vx-pl-2 vx-pr-2\"\n *ngFor=\"let item of categoryList; let i = index\"\n > \n <app-cs-checkbox\n [value]=\"item?.id\"\n [ngValue]=\"item.id | checkSelectedItems: selectedItems[activeProgram.id]\"\n (ngValueChange)=\"selectItem($event, item)\"\n >\n <span class=\"value-inner\">\n <div class=\"item-name vx-fs-13\">{{ item?.name }}</div>\n <div class=\"within-part vx-d-flex vx-align-center vx-pr-3\">\n <div *ngIf=\"item?.parentTree?.length\"\n class=\"within-box vx-fs-9 vx-fw-600 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-mr-2 vx-lh-3\"\n >\n Within\n </div>\n <div\n class=\"within-value vx-fs-11 vx-paragraph-txt\"\n [appTooltip]=\"item?.parentTree?.join(' > ')\"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"true\"\n >\n {{ item?.parentTree?.join(\" > \") }}\n </div>\n </div>\n </span>\n </app-cs-checkbox>\n </div>\n </ng-container>\n <ng-template #categoryListLoader>\n <app-table-loader></app-table-loader>\n </ng-template>\n \n </div>\n </div>\n </div>\n <ng-template #defaultTemplate>\n <div class=\"list-no-data-container\">\n <app-no-data\n [noDataImage]=\"\n 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/search-data.svg'\n \"\n [noDataText]=\"'No data to display'\"\n ></app-no-data>\n </div>\n </ng-template>\n</div>\n\n<app-popover #programTypePopover>\n <div class=\"new-action-list\">\n <div\n class=\"program-type-text vx-fs-11 vx-fw-500 vx-gray-60 vx-lh-16 vx-p-2 vx-tt-uppercase\"\n >\n Program Type:\n </div>\n <ul class=\"action-item\">\n <li *ngFor=\"let item of programTypeList\">\n <div class=\"chip-item\">\n <app-cs-checkbox\n [value]=\"item.id\"\n [ngValue]=\"selectedProgramType.includes(item.id)\"\n (ngValueChange)=\"selectFilter($event, item)\"\n >\n {{ item?.name }}\n </app-cs-checkbox>\n </div>\n </li>\n </ul>\n <div\n class=\"program-type-bottom vx-d-flex vx-align-center vx-justify-center vx-pt-3 vx-pb-3\"\n >\n <button\n (click)=\"resetFilter()\"\n class=\"reset-btn vx-fs-11 vx-fw-500 vx-tt-uppercase vx-p-0 vx-pl-2 vx-pr-2 vx-lh-6\"\n >\n RESET\n </button>\n <button\n (click)=\"onFilterChange()\"\n class=\"apply-btn vx-fs-11 vx-fw-500 vx-tt-uppercase vx-p-0 vx-pl-2 vx-pr-2 vx-lh-6\"\n [class.disabled]=\"selectedProgramType?.length === 0\"\n >\n APPLY\n </button>\n </div>\n </div>\n</app-popover>\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 .dynamic-list-container{height:calc(100% - 48px)}::ng-deep .dynamic-list-container.animate{animation:animate-right .2s cubic-bezier(.25,.46,.45,.94) both;z-index:-1}::ng-deep .dynamic-list-container .search-block{position:relative}::ng-deep .dynamic-list-container .search-block input{height:2.5rem;line-height:1.5rem;padding:.5rem 1rem .5rem 2.5rem;outline:none;border:1px solid #cdced6;border-radius:.25rem;width:100%;font-size:13px;color:#747576}::ng-deep .dynamic-list-container .search-block input::placeholder{font-weight:400}::ng-deep .dynamic-list-container .search-block input:focus{border-color:#1e5dd3}::ng-deep .dynamic-list-container .search-block i{position:absolute;left:1rem;top:14px;pointer-events:none;color:#e3e3e9;font-size:12px}::ng-deep .dynamic-list-filter{position:relative;min-width:240px;height:2.5rem;border:1px solid #cdced6;border-radius:.25rem;margin-left:6px;color:#a9aab6;font-size:13px;padding:0 .75rem;cursor:pointer;display:flex;align-items:center;justify-content:space-between}::ng-deep .dynamic-list-filter .filter-icon{color:#787a8c;font-size:12px}::ng-deep .dynamic-list-head{background:#fbfbfb;height:2.75rem;border-bottom:1px solid #f1f1f1}::ng-deep .dynamic-list-head button.back-btn{background:transparent;border-radius:0;border:none;position:relative;top:.125rem}::ng-deep .dynamic-list-header .serialNo{color:#787a8c;min-width:2rem;height:2rem}::ng-deep .dynamic-list-header .headerText{color:#787a8c;min-width:calc(100% - 2rem);height:2rem}::ng-deep .dynamic-list-table{width:100%;border-collapse:collapse;height:calc(100% - 3rem)}::ng-deep .dynamic-list-body{height:calc(100% - 2rem);width:calc(100% + .75rem);position:relative}::ng-deep .dynamic-list-body .left-column{width:calc(50% + .5rem);padding-right:.5rem;position:relative;overflow-y:auto;scrollbar-width:thin}::ng-deep .dynamic-list-body .left-column .list-row{background-color:#fff;border-radius:.25rem;border:1px solid #cdced6;cursor:pointer;display:flex;align-items:center;margin-bottom:.25rem;position:relative;transition:all .2s ease-in-out;width:100%;height:3rem}::ng-deep .dynamic-list-body .left-column .list-row:hover{background:#f8f8f8}::ng-deep .dynamic-list-body .left-column .list-row.selected{background-color:#f2f2f5}::ng-deep .dynamic-list-body .left-column .list-row.selected:before{background:#1e5dd3;border-radius:.125rem .125rem 0 0;content:\"\";position:absolute;left:0;top:-1px;width:100%;height:.125rem;z-index:1}::ng-deep .dynamic-list-body .left-column .list-row.selected .list-column.serial .srNo{background:#e3e3e9;color:#565a6f}::ng-deep .dynamic-list-body .left-column .list-row .list-column{color:#000;font-size:11px;height:3rem;position:relative;display:flex;align-items:center;padding:0 .25rem}::ng-deep .dynamic-list-body .left-column .list-row .list-column.serial{width:2rem;justify-content:center}::ng-deep .dynamic-list-body .left-column .list-row .list-column.serial .srNo{background:#f9f9fa;writing-mode:vertical-lr;color:#787a8c;font-size:11px;font-weight:500;height:46px;display:flex;justify-content:center;transition:all .2s ease-in-out;position:relative}::ng-deep .dynamic-list-body .left-column .list-row .list-column.name{width:calc(100% - 4.5rem)}::ng-deep .dynamic-list-body .left-column .list-row .list-column.name .name-inner{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}::ng-deep .dynamic-list-body .left-column .list-row .list-column.name.with-count{width:calc(100% - 16rem)}::ng-deep .dynamic-list-body .left-column .list-row .list-column.count{width:11.5rem;justify-content:center}::ng-deep .dynamic-list-body .left-column .list-row .list-column.count .count-box{background:#1e5dd3;border-radius:1.25rem;color:#fff;padding:0 .125rem;min-width:1rem;height:1rem}::ng-deep .dynamic-list-body .left-column .list-row .list-column.count .count-text{color:#787a8c}::ng-deep .dynamic-list-body .left-column .list-row .list-column.action{width:2.5rem;justify-content:center}::ng-deep .dynamic-list-body .left-column .list-row .list-column.action button.arrow{background:transparent;border-radius:.25rem;border:none;color:#565a6f;min-width:1.5rem;height:1.5rem}::ng-deep .dynamic-list-body .left-column .list-row .list-column.action button.arrow:hover{background:#e3e3e9}::ng-deep .dynamic-list-body .right-column{width:calc(50% + .5rem);padding-right:.5rem;position:relative;overflow-y:auto;scrollbar-width:thin}::ng-deep .dynamic-list-body .right-column .list-row{background-color:#fff;border-radius:.25rem;border:1px solid #cdced6;cursor:pointer;display:flex;align-items:center;margin-bottom:.25rem;position:relative;transition:all .2s ease-in-out;width:100%;height:3rem}::ng-deep .dynamic-list-body .right-column .list-row:hover{background:#f8f8f8}::ng-deep .dynamic-list-body .right-column .list-row app-cs-checkbox{width:100%;display:flex}::ng-deep .dynamic-list-body .right-column .list-row app-cs-checkbox .checkbox-item{width:100%}::ng-deep .dynamic-list-body .right-column .list-row app-cs-checkbox .checkbox-item .value{width:100%;justify-content:start}::ng-deep .dynamic-list-body .right-column .list-row app-cs-checkbox .checkbox-item .value .value-inner{width:100%}::ng-deep .dynamic-list-body .right-column .list-row app-cs-checkbox .checkbox-item .value .value-inner .item-name{color:#000;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}::ng-deep .new-action-list{background:#fff;border-radius:.25rem;border:1px solid #e3e3e9;box-shadow:0 4px 8px #1e5dd326;width:240px}::ng-deep .new-action-list ul{padding:0;margin:0;animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both;max-height:220px;overflow:auto}::ng-deep .new-action-list ul.action-item{display:block}::ng-deep .new-action-list ul.action-item li{list-style:none;border:none;border-bottom:1px solid #f1f1f1;display:block;width:100%;padding:0;background:transparent;border-radius:0;margin:0;height:auto;justify-content:flex-start;box-shadow:none}::ng-deep .new-action-list ul.action-item li:last-child{border-bottom:none}::ng-deep .new-action-list ul.action-item li app-cs-checkbox{display:flex}::ng-deep .new-action-list ul.action-item li button{color:#6e717e;text-align:left;text-decoration:none;cursor:pointer;background:transparent;font-size:12px;text-transform:capitalize;display:flex;width:100%;padding:7.5px 11px;border:none}::ng-deep .new-action-list ul.action-item li button i{font-size:16px;margin-right:10px;color:#1e5dd3}::ng-deep .new-action-list ul.action-item li button:hover{background:#f3f3f3}::ng-deep .new-action-list ul.action-item li .avatar-card{display:flex;align-items:center;width:100%;padding:7.5px}::ng-deep .new-action-list ul.action-item li .avatar-card.within-con{display:block}::ng-deep .new-action-list ul.action-item li .avatar-card .avatar{height:24px;width:24px!important;overflow:hidden;background:#1e5dd3;color:#fff;font-size:10px;display:inline-flex;margin-right:5px;border-radius:50%;align-items:center;justify-content:center;text-transform:uppercase}::ng-deep .new-action-list ul.action-item li .avatar-card .avatar img{width:100%}::ng-deep .new-action-list ul.action-item li .avatar-card .avatar+span.value{width:calc(100% - 29px)}::ng-deep .new-action-list ul.action-item li .avatar-card span.value{width:100%;color:#6e717e;text-decoration:none;background:transparent;font-size:12px;text-transform:capitalize;display:block;font-weight:400;text-align-last:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:20px}::ng-deep .new-action-list ul.action-item li .avatar-card span.value i{font-size:8px;color:#747576;cursor:pointer;margin-right:5px}::ng-deep .new-action-list ul.action-item li .avatar-card.no-image{display:block}::ng-deep .new-action-list ul.action-item li .avatar-card.no-image span.value{width:100%;display:block}::ng-deep .new-action-list ul.action-item li .chip-item{color:#1e5dd3;padding:10px;display:flex;align-items:center}::ng-deep .new-action-list ul.action-item li .chip-item i{color:#747576;margin-right:7px;font-size:10px;cursor:pointer;display:inline-flex}::ng-deep .new-action-list ul.action-item li .chip-item span{display:block;width:auto;max-width:calc(100% - 17px);font-size:12px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}::ng-deep .new-action-list ul.action-item li .chip-item span.chip-block{display:block;width:100%}::ng-deep .new-action-list ul.action-item li .chip-item span.id{font-size:9px}::ng-deep .new-action-list ul.action-item li .chip-item app-cs-checkbox .checkbox-item .value{color:#000;font-size:11px}::ng-deep .new-action-list ul.action-item li .within{display:flex;align-items:center;justify-content:flex-start}::ng-deep .new-action-list ul.action-item li .within .block{background:#f1f1f1;border-radius:2px;padding:0 2px;line-height:14px;font-size:9px;font-weight:500;color:#042e7d;margin-right:6px;display:block;text-transform:uppercase}::ng-deep .new-action-list ul.action-item li .within .data{width:100%;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#747576;font-size:11px;font-weight:400;line-height:17px}::ng-deep .new-action-list ul.action-item li:first-child{animation:action-list-open .25s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .new-action-list ul.action-item li:nth-child(2){animation:action-list-open .35s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .new-action-list ul.action-item li:nth-child(3){animation:action-list-open .45s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .new-action-list ul.action-item li:nth-child(4){animation:action-list-open .55s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .new-action-list ul.action-item li:nth-child(5){animation:action-list-open .65s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .new-action-list ul.action-item li:nth-child(6){animation:action-list-open .75s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .new-action-list ul.action-item li:nth-child(7){animation:action-list-open .85s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .new-action-list ul.action-item li:nth-child(8){animation:action-list-open .95s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .new-action-list ul.action-item li:nth-child(9){animation:action-list-open 1.05s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .new-action-list ul.action-item li:nth-child(10){animation:action-list-open 1.15s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .new-action-list .program-type-text{color:#787a8c;border-bottom:1px solid #f2f2f5}::ng-deep .new-action-list .program-type-bottom{border-top:1px solid #f2f2f5}::ng-deep .new-action-list .program-type-bottom button{background:#fff;border-radius:.125rem;margin:0 .125rem!important;transition:all .3s ease-out}::ng-deep .new-action-list .program-type-bottom button.reset-btn{border:1px solid #cdced6;color:#1e5dd3}::ng-deep .new-action-list .program-type-bottom button.reset-btn:hover{background:#f9f9fa}::ng-deep .new-action-list .program-type-bottom button.apply-btn{background:#1e5dd3;border:1px solid #1e5dd3;color:#fff}::ng-deep .new-action-list .program-type-bottom button.apply-btn:hover{background:#1146a8}::ng-deep .new-action-list .program-type-bottom button.apply-btn.disabled{background:#e3e3e9;border-color:#e3e3e9;color:#a9aab6;pointer-events:none}@keyframes action-list-open{0%{transform:translateY(50px)}to{transform:translateY(0)}}@keyframes scale-up-center{0%{transform:scale(.5);opacity:0}to{transform:scale(1);opacity:1}}\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.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: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5.CsCheckboxComponent, selector: "app-cs-checkbox", inputs: ["disabled", "ngValue", "value", "readonly", "oneLine"], outputs: ["ngValueChange"] }, { kind: "component", type: i6.NoDataComponentUI, selector: "app-no-data", inputs: ["action", "secondaryAction", "noDataImage", "noDataText", "noDataButton", "secondaryButton", "noDataSecButton", "altText", "smallButton"], outputs: ["buttonAction", "secondaryActionButton"] }, { kind: "component", type: i7.PopoverComponent, selector: "app-popover", inputs: ["dontCloseonClick"] }, { kind: "directive", type: i8.PopoverDirective, selector: "[appPopover]", inputs: ["refrence", "placement"] }, { kind: "component", type: i9.TableLoaderComponent, selector: "app-table-loader", inputs: ["listSize"] }, { kind: "pipe", type: i10.CheckSelectedItemsPipe, name: "checkSelectedItems" }] }); }
164
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ProgramListComponent, selector: "app-program-list", inputs: { items: "items", selectedItems: "selectedItems", url: "url" }, outputs: { itemSelected: "itemSelected", itemDeselected: "itemDeselected", itemsSelectedChange: "itemsSelectedChange" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"dynamic-list-container\">\n <div class=\"vx-d-flex\">\n <div class=\"search-block vx-w-100\">\n <i class=\"icons\">&#xe90b;</i>\n <input\n type=\"text\"\n [(ngModel)]=\"searchTerm\"\n placeholder=\"Search...\"\n (keyup)=\"search()\"\n />\n </div>\n <div\n class=\"dynamic-list-filter\"\n appPopover\n (click)=\"programTypePopover.popover()\"\n placement=\"right\"\n >\n <div class=\"filter-text\">All Program Type</div>\n <i class=\"icons filter-icon\"> &#xe9e8; </i>\n </div>\n </div>\n <div\n class=\"dynamic-list-table\"\n *ngIf=\"paginatedItems?.length > 0 || (loaderState.programList || loaderState.categoryList); else defaultTemplate\"\n >\n <div class=\"dynamic-list-header vx-d-flex\">\n <ng-container *ngFor=\"let header of tableHeaders\">\n <div class=\"vx-d-flex vx-w-50 vx-pl-1\">\n <div\n class=\"serialNo vx-fs-11 vx-fw-500 vx-tt-uppercase vx-d-flex vx-align-center vx-justify-center\"\n >\n #\n </div>\n <div\n class=\"headerText vx-fs-11 vx-fw-500 vx-tt-uppercase vx-d-flex vx-align-center\"\n >\n {{ header }}\n </div>\n </div>\n </ng-container>\n </div>\n <div class=\"dynamic-list-body vx-d-flex\">\n <div class=\"left-column\">\n <ng-container *ngIf=\"!loaderState.programList;else programListLoader\">\n <div\n *ngFor=\"let item of paginatedItems; let i = index\"\n class=\"list-row\"\n [class.selected]=\"activeProgram?.id === item.id\"\n (click)=\"viewCategory(item)\"\n >\n <div class=\"list-column serial\">\n <div class=\"srNo\">{{ i + 1 }}</div>\n </div>\n <div\n class=\"list-column name\"\n [class.with-count]=\"selectedItems[item.id]?.length > 0\"\n >\n <div class=\"name-inner vx-fs-13 vx-pr-2\">{{ item.name }}</div>\n </div>\n <div\n class=\"list-column count\"\n *ngIf=\"selectedItems[item.id]?.length > 0\"\n >\n <div\n class=\"count-box vx-fs-9 vx-fw-600 vx-lh-4 vx-d-flex vx-align-center vx-justify-center\"\n >\n {{ selectedItems[item.id].length }}\n </div>\n <div\n class=\"count-text vx-fs-11 vx-fw-500 vx-tt-uppercase vx-lh-4 vx-ml-2\"\n >\n {{selectedItems[item.id].length > 1 ? 'CATEGORIES' : 'CATEGORY'}} SELECTED\n </div>\n </div>\n <div class=\"list-column action\">\n <button\n class=\"arrow vx-fs-12 vx-p-0 vx-m-0 vx-d-flex vx-align-center vx-justify-center\"\n >\n <i class=\"icons\"> &#xe970; </i>\n </button>\n </div>\n </div>\n </ng-container>\n <ng-template #programListLoader>\n <app-table-loader></app-table-loader>\n\n </ng-template>\n </div>\n <div class=\"right-column\">\n <ng-container *ngIf=\"!loaderState.categoryList;else categoryListLoader\">\n <div\n class=\"list-row vx-pl-2 vx-pr-2\"\n *ngFor=\"let item of categoryList; let i = index\"\n > \n <app-cs-checkbox\n [value]=\"item?.id\"\n [ngValue]=\"item.id | checkSelectedItems: selectedItems[activeProgram.id]\"\n (ngValueChange)=\"selectItem($event, item)\"\n >\n <span class=\"value-inner\">\n <div class=\"item-name vx-fs-13\">{{ item?.name }}</div>\n <div class=\"within-part vx-d-flex vx-align-center vx-pr-3\">\n <div *ngIf=\"item?.parentTree?.length\"\n class=\"within-box vx-fs-9 vx-fw-600 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-mr-2 vx-lh-3\"\n >\n Within\n </div>\n <div\n class=\"within-value vx-fs-11 vx-paragraph-txt\"\n [appTooltip]=\"item?.parentTree?.join(' > ')\"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"true\"\n >\n {{ item?.parentTree?.join(\" > \") }}\n </div>\n </div>\n </span>\n </app-cs-checkbox>\n </div>\n </ng-container>\n <ng-template #categoryListLoader>\n <app-table-loader></app-table-loader>\n </ng-template>\n \n </div>\n </div>\n </div>\n <ng-template #defaultTemplate>\n <div class=\"list-no-data-container\">\n <app-no-data\n [noDataImage]=\"\n 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/search-data.svg'\n \"\n [noDataText]=\"'No data to display'\"\n ></app-no-data>\n </div>\n </ng-template>\n</div>\n\n<app-popover #programTypePopover>\n <div class=\"new-action-list\">\n <div\n class=\"program-type-text vx-fs-11 vx-fw-500 vx-gray-60 vx-lh-16 vx-p-2 vx-tt-uppercase\"\n >\n Program Type:\n </div>\n <ul class=\"action-item\">\n <li *ngFor=\"let item of programTypeList\">\n <div class=\"chip-item\">\n <app-cs-checkbox\n [value]=\"item.id\"\n [ngValue]=\"selectedProgramType.includes(item.id)\"\n (ngValueChange)=\"selectFilter($event, item)\"\n >\n {{ item?.name }}\n </app-cs-checkbox>\n </div>\n </li>\n </ul>\n <div\n class=\"program-type-bottom vx-d-flex vx-align-center vx-justify-center vx-pt-3 vx-pb-3\"\n >\n <button\n (click)=\"resetFilter()\"\n class=\"reset-btn vx-fs-11 vx-fw-500 vx-tt-uppercase vx-p-0 vx-pl-2 vx-pr-2 vx-lh-6\"\n >\n RESET\n </button>\n <button\n (click)=\"onFilterChange()\"\n class=\"apply-btn vx-fs-11 vx-fw-500 vx-tt-uppercase vx-p-0 vx-pl-2 vx-pr-2 vx-lh-6\"\n [class.disabled]=\"selectedProgramType?.length === 0\"\n >\n APPLY\n </button>\n </div>\n </div>\n</app-popover>\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 .dynamic-list-container{height:calc(100% - 48px)}::ng-deep .dynamic-list-container.animate{animation:animate-right .2s cubic-bezier(.25,.46,.45,.94) both;z-index:-1}::ng-deep .dynamic-list-container .search-block{position:relative}::ng-deep .dynamic-list-container .search-block input{height:2.5rem;line-height:1.5rem;padding:.5rem 1rem .5rem 2.5rem;outline:none;border:1px solid #cdced6;border-radius:.25rem;width:100%;font-size:13px;color:#747576}::ng-deep .dynamic-list-container .search-block input::placeholder{font-weight:400}::ng-deep .dynamic-list-container .search-block input:focus{border-color:#1e5dd3}::ng-deep .dynamic-list-container .search-block i{position:absolute;left:1rem;top:14px;pointer-events:none;color:#e3e3e9;font-size:12px}::ng-deep .dynamic-list-filter{position:relative;min-width:240px;height:2.5rem;border:1px solid #cdced6;border-radius:.25rem;margin-left:6px;color:#a9aab6;font-size:13px;padding:0 .75rem;cursor:pointer;display:flex;align-items:center;justify-content:space-between}::ng-deep .dynamic-list-filter .filter-icon{color:#787a8c;font-size:12px}::ng-deep .dynamic-list-head{background:#fbfbfb;height:2.75rem;border-bottom:1px solid #f1f1f1}::ng-deep .dynamic-list-head button.back-btn{background:transparent;border-radius:0;border:none;position:relative;top:.125rem}::ng-deep .dynamic-list-header .serialNo{color:#787a8c;min-width:2rem;height:2rem}::ng-deep .dynamic-list-header .headerText{color:#787a8c;min-width:calc(100% - 2rem);height:2rem}::ng-deep .dynamic-list-table{width:100%;border-collapse:collapse;height:calc(100% - 3rem)}::ng-deep .dynamic-list-body{height:calc(100% - 2rem);width:calc(100% + .75rem);position:relative}::ng-deep .dynamic-list-body .left-column{width:calc(50% + .5rem);padding-right:.5rem;position:relative;overflow-y:auto;scrollbar-width:thin}::ng-deep .dynamic-list-body .left-column .list-row{background-color:#fff;border-radius:.25rem;border:1px solid #cdced6;cursor:pointer;display:flex;align-items:center;margin-bottom:.25rem;position:relative;transition:all .2s ease-in-out;width:100%;height:3rem}::ng-deep .dynamic-list-body .left-column .list-row:hover{background:#f8f8f8}::ng-deep .dynamic-list-body .left-column .list-row.selected{background-color:#f2f2f5}::ng-deep .dynamic-list-body .left-column .list-row.selected:before{background:#1e5dd3;border-radius:.125rem .125rem 0 0;content:\"\";position:absolute;left:0;top:-1px;width:100%;height:.125rem;z-index:1}::ng-deep .dynamic-list-body .left-column .list-row.selected .list-column.serial .srNo{background:#e3e3e9;color:#565a6f}::ng-deep .dynamic-list-body .left-column .list-row .list-column{color:#000;font-size:11px;height:3rem;position:relative;display:flex;align-items:center;padding:0 .25rem}::ng-deep .dynamic-list-body .left-column .list-row .list-column.serial{width:2rem;justify-content:center}::ng-deep .dynamic-list-body .left-column .list-row .list-column.serial .srNo{background:#f9f9fa;writing-mode:vertical-lr;color:#787a8c;font-size:11px;font-weight:500;height:46px;display:flex;justify-content:center;transition:all .2s ease-in-out;position:relative}::ng-deep .dynamic-list-body .left-column .list-row .list-column.name{width:calc(100% - 4.5rem)}::ng-deep .dynamic-list-body .left-column .list-row .list-column.name .name-inner{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}::ng-deep .dynamic-list-body .left-column .list-row .list-column.name.with-count{width:calc(100% - 16rem)}::ng-deep .dynamic-list-body .left-column .list-row .list-column.count{width:11.5rem;justify-content:center}::ng-deep .dynamic-list-body .left-column .list-row .list-column.count .count-box{background:#1e5dd3;border-radius:1.25rem;color:#fff;padding:0 .125rem;min-width:1rem;height:1rem}::ng-deep .dynamic-list-body .left-column .list-row .list-column.count .count-text{color:#787a8c}::ng-deep .dynamic-list-body .left-column .list-row .list-column.action{width:2.5rem;justify-content:center}::ng-deep .dynamic-list-body .left-column .list-row .list-column.action button.arrow{background:transparent;border-radius:.25rem;border:none;color:#565a6f;min-width:1.5rem;height:1.5rem}::ng-deep .dynamic-list-body .left-column .list-row .list-column.action button.arrow:hover{background:#e3e3e9}::ng-deep .dynamic-list-body .right-column{width:calc(50% + .5rem);padding-right:.5rem;position:relative;overflow-y:auto;scrollbar-width:thin}::ng-deep .dynamic-list-body .right-column .list-row{background-color:#fff;border-radius:.25rem;border:1px solid #cdced6;cursor:pointer;display:flex;align-items:center;margin-bottom:.25rem;position:relative;transition:all .2s ease-in-out;width:100%;height:3rem}::ng-deep .dynamic-list-body .right-column .list-row:hover{background:#f8f8f8}::ng-deep .dynamic-list-body .right-column .list-row app-cs-checkbox{width:100%;display:flex}::ng-deep .dynamic-list-body .right-column .list-row app-cs-checkbox .checkbox-item{width:100%}::ng-deep .dynamic-list-body .right-column .list-row app-cs-checkbox .checkbox-item .value{width:100%;justify-content:start}::ng-deep .dynamic-list-body .right-column .list-row app-cs-checkbox .checkbox-item .value .value-inner{width:100%}::ng-deep .dynamic-list-body .right-column .list-row app-cs-checkbox .checkbox-item .value .value-inner .item-name{color:#000;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}::ng-deep .new-action-list{background:#fff;border-radius:.25rem;border:1px solid #e3e3e9;box-shadow:0 4px 8px #1e5dd326;width:240px}::ng-deep .new-action-list ul{padding:0;margin:0;animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both;max-height:220px;overflow:auto}::ng-deep .new-action-list ul.action-item{display:block}::ng-deep .new-action-list ul.action-item li{list-style:none;border:none;border-bottom:1px solid #f1f1f1;display:block;width:100%;padding:0;background:transparent;border-radius:0;margin:0;height:auto;justify-content:flex-start;box-shadow:none}::ng-deep .new-action-list ul.action-item li:last-child{border-bottom:none}::ng-deep .new-action-list ul.action-item li app-cs-checkbox{display:flex}::ng-deep .new-action-list ul.action-item li button{color:#6e717e;text-align:left;text-decoration:none;cursor:pointer;background:transparent;font-size:12px;text-transform:capitalize;display:flex;width:100%;padding:7.5px 11px;border:none}::ng-deep .new-action-list ul.action-item li button i{font-size:16px;margin-right:10px;color:#1e5dd3}::ng-deep .new-action-list ul.action-item li button:hover{background:#f3f3f3}::ng-deep .new-action-list ul.action-item li .avatar-card{display:flex;align-items:center;width:100%;padding:7.5px}::ng-deep .new-action-list ul.action-item li .avatar-card.within-con{display:block}::ng-deep .new-action-list ul.action-item li .avatar-card .avatar{height:24px;width:24px!important;overflow:hidden;background:#1e5dd3;color:#fff;font-size:10px;display:inline-flex;margin-right:5px;border-radius:50%;align-items:center;justify-content:center;text-transform:uppercase}::ng-deep .new-action-list ul.action-item li .avatar-card .avatar img{width:100%}::ng-deep .new-action-list ul.action-item li .avatar-card .avatar+span.value{width:calc(100% - 29px)}::ng-deep .new-action-list ul.action-item li .avatar-card span.value{width:100%;color:#6e717e;text-decoration:none;background:transparent;font-size:12px;text-transform:capitalize;display:block;font-weight:400;text-align-last:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:20px}::ng-deep .new-action-list ul.action-item li .avatar-card span.value i{font-size:8px;color:#747576;cursor:pointer;margin-right:5px}::ng-deep .new-action-list ul.action-item li .avatar-card.no-image{display:block}::ng-deep .new-action-list ul.action-item li .avatar-card.no-image span.value{width:100%;display:block}::ng-deep .new-action-list ul.action-item li .chip-item{color:#1e5dd3;padding:10px;display:flex;align-items:center}::ng-deep .new-action-list ul.action-item li .chip-item i{color:#747576;margin-right:7px;font-size:10px;cursor:pointer;display:inline-flex}::ng-deep .new-action-list ul.action-item li .chip-item span{display:block;width:auto;max-width:calc(100% - 17px);font-size:12px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}::ng-deep .new-action-list ul.action-item li .chip-item span.chip-block{display:block;width:100%}::ng-deep .new-action-list ul.action-item li .chip-item span.id{font-size:9px}::ng-deep .new-action-list ul.action-item li .chip-item app-cs-checkbox .checkbox-item .value{color:#000;font-size:11px}::ng-deep .new-action-list ul.action-item li .within{display:flex;align-items:center;justify-content:flex-start}::ng-deep .new-action-list ul.action-item li .within .block{background:#f1f1f1;border-radius:2px;padding:0 2px;line-height:14px;font-size:9px;font-weight:500;color:#042e7d;margin-right:6px;display:block;text-transform:uppercase}::ng-deep .new-action-list ul.action-item li .within .data{width:100%;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#747576;font-size:11px;font-weight:400;line-height:17px}::ng-deep .new-action-list ul.action-item li:first-child{animation:action-list-open .25s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .new-action-list ul.action-item li:nth-child(2){animation:action-list-open .35s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .new-action-list ul.action-item li:nth-child(3){animation:action-list-open .45s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .new-action-list ul.action-item li:nth-child(4){animation:action-list-open .55s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .new-action-list ul.action-item li:nth-child(5){animation:action-list-open .65s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .new-action-list ul.action-item li:nth-child(6){animation:action-list-open .75s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .new-action-list ul.action-item li:nth-child(7){animation:action-list-open .85s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .new-action-list ul.action-item li:nth-child(8){animation:action-list-open .95s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .new-action-list ul.action-item li:nth-child(9){animation:action-list-open 1.05s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .new-action-list ul.action-item li:nth-child(10){animation:action-list-open 1.15s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .new-action-list .program-type-text{color:#787a8c;border-bottom:1px solid #f2f2f5}::ng-deep .new-action-list .program-type-bottom{border-top:1px solid #f2f2f5}::ng-deep .new-action-list .program-type-bottom button{background:#fff;border-radius:.125rem;margin:0 .125rem!important;transition:all .3s ease-out}::ng-deep .new-action-list .program-type-bottom button.reset-btn{border:1px solid #cdced6;color:#1e5dd3}::ng-deep .new-action-list .program-type-bottom button.reset-btn:hover{background:#f9f9fa}::ng-deep .new-action-list .program-type-bottom button.apply-btn{background:#1e5dd3;border:1px solid #1e5dd3;color:#fff}::ng-deep .new-action-list .program-type-bottom button.apply-btn:hover{background:#1146a8}::ng-deep .new-action-list .program-type-bottom button.apply-btn.disabled{background:#e3e3e9;border-color:#e3e3e9;color:#a9aab6;pointer-events:none}@keyframes action-list-open{0%{transform:translateY(50px)}to{transform:translateY(0)}}@keyframes scale-up-center{0%{transform:scale(.5);opacity:0}to{transform:scale(1);opacity:1}}\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.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: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5.CsCheckboxComponent, selector: "app-cs-checkbox", inputs: ["disabled", "ngValue", "value", "readonly", "oneLine"], outputs: ["ngValueChange"] }, { kind: "component", type: i6.NoDataComponentUI, selector: "app-no-data", inputs: ["action", "secondaryAction", "noDataImage", "noDataText", "noDataButton", "secondaryButton", "noDataSecButton", "altText", "smallButton"], outputs: ["buttonAction", "secondaryActionButton"] }, { kind: "component", type: i7.PopoverComponent, selector: "app-popover", inputs: ["dontCloseonClick"] }, { kind: "directive", type: i8.PopoverDirective, selector: "[appPopover]", inputs: ["refrence", "placement"] }, { kind: "component", type: i9.TableLoaderComponent, selector: "app-table-loader", inputs: ["listSize"] }, { kind: "pipe", type: i10.CheckSelectedItemsPipe, name: "checkSelectedItems" }] }); }
164
165
  }
165
166
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ProgramListComponent, decorators: [{
166
167
  type: Component,
167
- args: [{ selector: 'app-program-list', template: "<div class=\"dynamic-list-container\">\n <div class=\"vx-d-flex\">\n <div class=\"search-block vx-w-100\">\n <i class=\"icons\">&#xe90b;</i>\n <input\n type=\"text\"\n [(ngModel)]=\"searchTerm\"\n placeholder=\"Search...\"\n (keyup)=\"search()\"\n />\n </div>\n <div\n class=\"dynamic-list-filter\"\n appPopover\n (click)=\"programTypePopover.popover()\"\n placement=\"right\"\n >\n <div class=\"filter-text\">All Program Type</div>\n <i class=\"icons filter-icon\"> &#xe9e8; </i>\n </div>\n </div>\n <div\n class=\"dynamic-list-table\"\n *ngIf=\"paginatedItems?.length > 0 || (loaderState.programList || loaderState.categoryList); else defaultTemplate\"\n >\n <div class=\"dynamic-list-header vx-d-flex\">\n <ng-container *ngFor=\"let header of tableHeaders\">\n <div class=\"vx-d-flex vx-w-50 vx-pl-1\">\n <div\n class=\"serialNo vx-fs-11 vx-fw-500 vx-tt-uppercase vx-d-flex vx-align-center vx-justify-center\"\n >\n #\n </div>\n <div\n class=\"headerText vx-fs-11 vx-fw-500 vx-tt-uppercase vx-d-flex vx-align-center\"\n >\n {{ header }}\n </div>\n </div>\n </ng-container>\n </div>\n <div class=\"dynamic-list-body vx-d-flex\">\n <div class=\"left-column\">\n <ng-container *ngIf=\"!loaderState.programList;else programListLoader\">\n <div\n *ngFor=\"let item of paginatedItems; let i = index\"\n class=\"list-row\"\n [class.selected]=\"activeProgram?.id === item.id\"\n (click)=\"viewCategory(item)\"\n >\n <div class=\"list-column serial\">\n <div class=\"srNo\">{{ i + 1 }}</div>\n </div>\n <div\n class=\"list-column name\"\n [class.with-count]=\"selectedItems[item.id]?.length > 0\"\n >\n <div class=\"name-inner vx-fs-13 vx-pr-2\">{{ item.name }}</div>\n </div>\n <div\n class=\"list-column count\"\n *ngIf=\"selectedItems[item.id]?.length > 0\"\n >\n <div\n class=\"count-box vx-fs-9 vx-fw-600 vx-lh-4 vx-d-flex vx-align-center vx-justify-center\"\n >\n {{ selectedItems[item.id].length }}\n </div>\n <div\n class=\"count-text vx-fs-11 vx-fw-500 vx-tt-uppercase vx-lh-4 vx-ml-2\"\n >\n CATEGORIES SELECTED\n </div>\n </div>\n <div class=\"list-column action\">\n <button\n class=\"arrow vx-fs-12 vx-p-0 vx-m-0 vx-d-flex vx-align-center vx-justify-center\"\n >\n <i class=\"icons\"> &#xe970; </i>\n </button>\n </div>\n </div>\n </ng-container>\n <ng-template #programListLoader>\n <app-table-loader></app-table-loader>\n\n </ng-template>\n </div>\n <div class=\"right-column\">\n <ng-container *ngIf=\"!loaderState.categoryList;else categoryListLoader\">\n <div\n class=\"list-row vx-pl-2 vx-pr-2\"\n *ngFor=\"let item of categoryList; let i = index\"\n > \n <app-cs-checkbox\n [value]=\"item?.id\"\n [ngValue]=\"item.id | checkSelectedItems: selectedItems[activeProgram.id]\"\n (ngValueChange)=\"selectItem($event, item)\"\n >\n <span class=\"value-inner\">\n <div class=\"item-name vx-fs-13\">{{ item?.name }}</div>\n <div class=\"within-part vx-d-flex vx-align-center vx-pr-3\">\n <div *ngIf=\"item?.parentTree?.length\"\n class=\"within-box vx-fs-9 vx-fw-600 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-mr-2 vx-lh-3\"\n >\n Within\n </div>\n <div\n class=\"within-value vx-fs-11 vx-paragraph-txt\"\n [appTooltip]=\"item?.parentTree?.join(' > ')\"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"true\"\n >\n {{ item?.parentTree?.join(\" > \") }}\n </div>\n </div>\n </span>\n </app-cs-checkbox>\n </div>\n </ng-container>\n <ng-template #categoryListLoader>\n <app-table-loader></app-table-loader>\n </ng-template>\n \n </div>\n </div>\n </div>\n <ng-template #defaultTemplate>\n <div class=\"list-no-data-container\">\n <app-no-data\n [noDataImage]=\"\n 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/search-data.svg'\n \"\n [noDataText]=\"'No data to display'\"\n ></app-no-data>\n </div>\n </ng-template>\n</div>\n\n<app-popover #programTypePopover>\n <div class=\"new-action-list\">\n <div\n class=\"program-type-text vx-fs-11 vx-fw-500 vx-gray-60 vx-lh-16 vx-p-2 vx-tt-uppercase\"\n >\n Program Type:\n </div>\n <ul class=\"action-item\">\n <li *ngFor=\"let item of programTypeList\">\n <div class=\"chip-item\">\n <app-cs-checkbox\n [value]=\"item.id\"\n [ngValue]=\"selectedProgramType.includes(item.id)\"\n (ngValueChange)=\"selectFilter($event, item)\"\n >\n {{ item?.name }}\n </app-cs-checkbox>\n </div>\n </li>\n </ul>\n <div\n class=\"program-type-bottom vx-d-flex vx-align-center vx-justify-center vx-pt-3 vx-pb-3\"\n >\n <button\n (click)=\"resetFilter()\"\n class=\"reset-btn vx-fs-11 vx-fw-500 vx-tt-uppercase vx-p-0 vx-pl-2 vx-pr-2 vx-lh-6\"\n >\n RESET\n </button>\n <button\n (click)=\"onFilterChange()\"\n class=\"apply-btn vx-fs-11 vx-fw-500 vx-tt-uppercase vx-p-0 vx-pl-2 vx-pr-2 vx-lh-6\"\n [class.disabled]=\"selectedProgramType?.length === 0\"\n >\n APPLY\n </button>\n </div>\n </div>\n</app-popover>\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 .dynamic-list-container{height:calc(100% - 48px)}::ng-deep .dynamic-list-container.animate{animation:animate-right .2s cubic-bezier(.25,.46,.45,.94) both;z-index:-1}::ng-deep .dynamic-list-container .search-block{position:relative}::ng-deep .dynamic-list-container .search-block input{height:2.5rem;line-height:1.5rem;padding:.5rem 1rem .5rem 2.5rem;outline:none;border:1px solid #cdced6;border-radius:.25rem;width:100%;font-size:13px;color:#747576}::ng-deep .dynamic-list-container .search-block input::placeholder{font-weight:400}::ng-deep .dynamic-list-container .search-block input:focus{border-color:#1e5dd3}::ng-deep .dynamic-list-container .search-block i{position:absolute;left:1rem;top:14px;pointer-events:none;color:#e3e3e9;font-size:12px}::ng-deep .dynamic-list-filter{position:relative;min-width:240px;height:2.5rem;border:1px solid #cdced6;border-radius:.25rem;margin-left:6px;color:#a9aab6;font-size:13px;padding:0 .75rem;cursor:pointer;display:flex;align-items:center;justify-content:space-between}::ng-deep .dynamic-list-filter .filter-icon{color:#787a8c;font-size:12px}::ng-deep .dynamic-list-head{background:#fbfbfb;height:2.75rem;border-bottom:1px solid #f1f1f1}::ng-deep .dynamic-list-head button.back-btn{background:transparent;border-radius:0;border:none;position:relative;top:.125rem}::ng-deep .dynamic-list-header .serialNo{color:#787a8c;min-width:2rem;height:2rem}::ng-deep .dynamic-list-header .headerText{color:#787a8c;min-width:calc(100% - 2rem);height:2rem}::ng-deep .dynamic-list-table{width:100%;border-collapse:collapse;height:calc(100% - 3rem)}::ng-deep .dynamic-list-body{height:calc(100% - 2rem);width:calc(100% + .75rem);position:relative}::ng-deep .dynamic-list-body .left-column{width:calc(50% + .5rem);padding-right:.5rem;position:relative;overflow-y:auto;scrollbar-width:thin}::ng-deep .dynamic-list-body .left-column .list-row{background-color:#fff;border-radius:.25rem;border:1px solid #cdced6;cursor:pointer;display:flex;align-items:center;margin-bottom:.25rem;position:relative;transition:all .2s ease-in-out;width:100%;height:3rem}::ng-deep .dynamic-list-body .left-column .list-row:hover{background:#f8f8f8}::ng-deep .dynamic-list-body .left-column .list-row.selected{background-color:#f2f2f5}::ng-deep .dynamic-list-body .left-column .list-row.selected:before{background:#1e5dd3;border-radius:.125rem .125rem 0 0;content:\"\";position:absolute;left:0;top:-1px;width:100%;height:.125rem;z-index:1}::ng-deep .dynamic-list-body .left-column .list-row.selected .list-column.serial .srNo{background:#e3e3e9;color:#565a6f}::ng-deep .dynamic-list-body .left-column .list-row .list-column{color:#000;font-size:11px;height:3rem;position:relative;display:flex;align-items:center;padding:0 .25rem}::ng-deep .dynamic-list-body .left-column .list-row .list-column.serial{width:2rem;justify-content:center}::ng-deep .dynamic-list-body .left-column .list-row .list-column.serial .srNo{background:#f9f9fa;writing-mode:vertical-lr;color:#787a8c;font-size:11px;font-weight:500;height:46px;display:flex;justify-content:center;transition:all .2s ease-in-out;position:relative}::ng-deep .dynamic-list-body .left-column .list-row .list-column.name{width:calc(100% - 4.5rem)}::ng-deep .dynamic-list-body .left-column .list-row .list-column.name .name-inner{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}::ng-deep .dynamic-list-body .left-column .list-row .list-column.name.with-count{width:calc(100% - 16rem)}::ng-deep .dynamic-list-body .left-column .list-row .list-column.count{width:11.5rem;justify-content:center}::ng-deep .dynamic-list-body .left-column .list-row .list-column.count .count-box{background:#1e5dd3;border-radius:1.25rem;color:#fff;padding:0 .125rem;min-width:1rem;height:1rem}::ng-deep .dynamic-list-body .left-column .list-row .list-column.count .count-text{color:#787a8c}::ng-deep .dynamic-list-body .left-column .list-row .list-column.action{width:2.5rem;justify-content:center}::ng-deep .dynamic-list-body .left-column .list-row .list-column.action button.arrow{background:transparent;border-radius:.25rem;border:none;color:#565a6f;min-width:1.5rem;height:1.5rem}::ng-deep .dynamic-list-body .left-column .list-row .list-column.action button.arrow:hover{background:#e3e3e9}::ng-deep .dynamic-list-body .right-column{width:calc(50% + .5rem);padding-right:.5rem;position:relative;overflow-y:auto;scrollbar-width:thin}::ng-deep .dynamic-list-body .right-column .list-row{background-color:#fff;border-radius:.25rem;border:1px solid #cdced6;cursor:pointer;display:flex;align-items:center;margin-bottom:.25rem;position:relative;transition:all .2s ease-in-out;width:100%;height:3rem}::ng-deep .dynamic-list-body .right-column .list-row:hover{background:#f8f8f8}::ng-deep .dynamic-list-body .right-column .list-row app-cs-checkbox{width:100%;display:flex}::ng-deep .dynamic-list-body .right-column .list-row app-cs-checkbox .checkbox-item{width:100%}::ng-deep .dynamic-list-body .right-column .list-row app-cs-checkbox .checkbox-item .value{width:100%;justify-content:start}::ng-deep .dynamic-list-body .right-column .list-row app-cs-checkbox .checkbox-item .value .value-inner{width:100%}::ng-deep .dynamic-list-body .right-column .list-row app-cs-checkbox .checkbox-item .value .value-inner .item-name{color:#000;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}::ng-deep .new-action-list{background:#fff;border-radius:.25rem;border:1px solid #e3e3e9;box-shadow:0 4px 8px #1e5dd326;width:240px}::ng-deep .new-action-list ul{padding:0;margin:0;animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both;max-height:220px;overflow:auto}::ng-deep .new-action-list ul.action-item{display:block}::ng-deep .new-action-list ul.action-item li{list-style:none;border:none;border-bottom:1px solid #f1f1f1;display:block;width:100%;padding:0;background:transparent;border-radius:0;margin:0;height:auto;justify-content:flex-start;box-shadow:none}::ng-deep .new-action-list ul.action-item li:last-child{border-bottom:none}::ng-deep .new-action-list ul.action-item li app-cs-checkbox{display:flex}::ng-deep .new-action-list ul.action-item li button{color:#6e717e;text-align:left;text-decoration:none;cursor:pointer;background:transparent;font-size:12px;text-transform:capitalize;display:flex;width:100%;padding:7.5px 11px;border:none}::ng-deep .new-action-list ul.action-item li button i{font-size:16px;margin-right:10px;color:#1e5dd3}::ng-deep .new-action-list ul.action-item li button:hover{background:#f3f3f3}::ng-deep .new-action-list ul.action-item li .avatar-card{display:flex;align-items:center;width:100%;padding:7.5px}::ng-deep .new-action-list ul.action-item li .avatar-card.within-con{display:block}::ng-deep .new-action-list ul.action-item li .avatar-card .avatar{height:24px;width:24px!important;overflow:hidden;background:#1e5dd3;color:#fff;font-size:10px;display:inline-flex;margin-right:5px;border-radius:50%;align-items:center;justify-content:center;text-transform:uppercase}::ng-deep .new-action-list ul.action-item li .avatar-card .avatar img{width:100%}::ng-deep .new-action-list ul.action-item li .avatar-card .avatar+span.value{width:calc(100% - 29px)}::ng-deep .new-action-list ul.action-item li .avatar-card span.value{width:100%;color:#6e717e;text-decoration:none;background:transparent;font-size:12px;text-transform:capitalize;display:block;font-weight:400;text-align-last:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:20px}::ng-deep .new-action-list ul.action-item li .avatar-card span.value i{font-size:8px;color:#747576;cursor:pointer;margin-right:5px}::ng-deep .new-action-list ul.action-item li .avatar-card.no-image{display:block}::ng-deep .new-action-list ul.action-item li .avatar-card.no-image span.value{width:100%;display:block}::ng-deep .new-action-list ul.action-item li .chip-item{color:#1e5dd3;padding:10px;display:flex;align-items:center}::ng-deep .new-action-list ul.action-item li .chip-item i{color:#747576;margin-right:7px;font-size:10px;cursor:pointer;display:inline-flex}::ng-deep .new-action-list ul.action-item li .chip-item span{display:block;width:auto;max-width:calc(100% - 17px);font-size:12px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}::ng-deep .new-action-list ul.action-item li .chip-item span.chip-block{display:block;width:100%}::ng-deep .new-action-list ul.action-item li .chip-item span.id{font-size:9px}::ng-deep .new-action-list ul.action-item li .chip-item app-cs-checkbox .checkbox-item .value{color:#000;font-size:11px}::ng-deep .new-action-list ul.action-item li .within{display:flex;align-items:center;justify-content:flex-start}::ng-deep .new-action-list ul.action-item li .within .block{background:#f1f1f1;border-radius:2px;padding:0 2px;line-height:14px;font-size:9px;font-weight:500;color:#042e7d;margin-right:6px;display:block;text-transform:uppercase}::ng-deep .new-action-list ul.action-item li .within .data{width:100%;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#747576;font-size:11px;font-weight:400;line-height:17px}::ng-deep .new-action-list ul.action-item li:first-child{animation:action-list-open .25s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .new-action-list ul.action-item li:nth-child(2){animation:action-list-open .35s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .new-action-list ul.action-item li:nth-child(3){animation:action-list-open .45s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .new-action-list ul.action-item li:nth-child(4){animation:action-list-open .55s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .new-action-list ul.action-item li:nth-child(5){animation:action-list-open .65s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .new-action-list ul.action-item li:nth-child(6){animation:action-list-open .75s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .new-action-list ul.action-item li:nth-child(7){animation:action-list-open .85s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .new-action-list ul.action-item li:nth-child(8){animation:action-list-open .95s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .new-action-list ul.action-item li:nth-child(9){animation:action-list-open 1.05s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .new-action-list ul.action-item li:nth-child(10){animation:action-list-open 1.15s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .new-action-list .program-type-text{color:#787a8c;border-bottom:1px solid #f2f2f5}::ng-deep .new-action-list .program-type-bottom{border-top:1px solid #f2f2f5}::ng-deep .new-action-list .program-type-bottom button{background:#fff;border-radius:.125rem;margin:0 .125rem!important;transition:all .3s ease-out}::ng-deep .new-action-list .program-type-bottom button.reset-btn{border:1px solid #cdced6;color:#1e5dd3}::ng-deep .new-action-list .program-type-bottom button.reset-btn:hover{background:#f9f9fa}::ng-deep .new-action-list .program-type-bottom button.apply-btn{background:#1e5dd3;border:1px solid #1e5dd3;color:#fff}::ng-deep .new-action-list .program-type-bottom button.apply-btn:hover{background:#1146a8}::ng-deep .new-action-list .program-type-bottom button.apply-btn.disabled{background:#e3e3e9;border-color:#e3e3e9;color:#a9aab6;pointer-events:none}@keyframes action-list-open{0%{transform:translateY(50px)}to{transform:translateY(0)}}@keyframes scale-up-center{0%{transform:scale(.5);opacity:0}to{transform:scale(1);opacity:1}}\n"] }]
168
+ args: [{ selector: 'app-program-list', template: "<div class=\"dynamic-list-container\">\n <div class=\"vx-d-flex\">\n <div class=\"search-block vx-w-100\">\n <i class=\"icons\">&#xe90b;</i>\n <input\n type=\"text\"\n [(ngModel)]=\"searchTerm\"\n placeholder=\"Search...\"\n (keyup)=\"search()\"\n />\n </div>\n <div\n class=\"dynamic-list-filter\"\n appPopover\n (click)=\"programTypePopover.popover()\"\n placement=\"right\"\n >\n <div class=\"filter-text\">All Program Type</div>\n <i class=\"icons filter-icon\"> &#xe9e8; </i>\n </div>\n </div>\n <div\n class=\"dynamic-list-table\"\n *ngIf=\"paginatedItems?.length > 0 || (loaderState.programList || loaderState.categoryList); else defaultTemplate\"\n >\n <div class=\"dynamic-list-header vx-d-flex\">\n <ng-container *ngFor=\"let header of tableHeaders\">\n <div class=\"vx-d-flex vx-w-50 vx-pl-1\">\n <div\n class=\"serialNo vx-fs-11 vx-fw-500 vx-tt-uppercase vx-d-flex vx-align-center vx-justify-center\"\n >\n #\n </div>\n <div\n class=\"headerText vx-fs-11 vx-fw-500 vx-tt-uppercase vx-d-flex vx-align-center\"\n >\n {{ header }}\n </div>\n </div>\n </ng-container>\n </div>\n <div class=\"dynamic-list-body vx-d-flex\">\n <div class=\"left-column\">\n <ng-container *ngIf=\"!loaderState.programList;else programListLoader\">\n <div\n *ngFor=\"let item of paginatedItems; let i = index\"\n class=\"list-row\"\n [class.selected]=\"activeProgram?.id === item.id\"\n (click)=\"viewCategory(item)\"\n >\n <div class=\"list-column serial\">\n <div class=\"srNo\">{{ i + 1 }}</div>\n </div>\n <div\n class=\"list-column name\"\n [class.with-count]=\"selectedItems[item.id]?.length > 0\"\n >\n <div class=\"name-inner vx-fs-13 vx-pr-2\">{{ item.name }}</div>\n </div>\n <div\n class=\"list-column count\"\n *ngIf=\"selectedItems[item.id]?.length > 0\"\n >\n <div\n class=\"count-box vx-fs-9 vx-fw-600 vx-lh-4 vx-d-flex vx-align-center vx-justify-center\"\n >\n {{ selectedItems[item.id].length }}\n </div>\n <div\n class=\"count-text vx-fs-11 vx-fw-500 vx-tt-uppercase vx-lh-4 vx-ml-2\"\n >\n {{selectedItems[item.id].length > 1 ? 'CATEGORIES' : 'CATEGORY'}} SELECTED\n </div>\n </div>\n <div class=\"list-column action\">\n <button\n class=\"arrow vx-fs-12 vx-p-0 vx-m-0 vx-d-flex vx-align-center vx-justify-center\"\n >\n <i class=\"icons\"> &#xe970; </i>\n </button>\n </div>\n </div>\n </ng-container>\n <ng-template #programListLoader>\n <app-table-loader></app-table-loader>\n\n </ng-template>\n </div>\n <div class=\"right-column\">\n <ng-container *ngIf=\"!loaderState.categoryList;else categoryListLoader\">\n <div\n class=\"list-row vx-pl-2 vx-pr-2\"\n *ngFor=\"let item of categoryList; let i = index\"\n > \n <app-cs-checkbox\n [value]=\"item?.id\"\n [ngValue]=\"item.id | checkSelectedItems: selectedItems[activeProgram.id]\"\n (ngValueChange)=\"selectItem($event, item)\"\n >\n <span class=\"value-inner\">\n <div class=\"item-name vx-fs-13\">{{ item?.name }}</div>\n <div class=\"within-part vx-d-flex vx-align-center vx-pr-3\">\n <div *ngIf=\"item?.parentTree?.length\"\n class=\"within-box vx-fs-9 vx-fw-600 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-mr-2 vx-lh-3\"\n >\n Within\n </div>\n <div\n class=\"within-value vx-fs-11 vx-paragraph-txt\"\n [appTooltip]=\"item?.parentTree?.join(' > ')\"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"true\"\n >\n {{ item?.parentTree?.join(\" > \") }}\n </div>\n </div>\n </span>\n </app-cs-checkbox>\n </div>\n </ng-container>\n <ng-template #categoryListLoader>\n <app-table-loader></app-table-loader>\n </ng-template>\n \n </div>\n </div>\n </div>\n <ng-template #defaultTemplate>\n <div class=\"list-no-data-container\">\n <app-no-data\n [noDataImage]=\"\n 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/search-data.svg'\n \"\n [noDataText]=\"'No data to display'\"\n ></app-no-data>\n </div>\n </ng-template>\n</div>\n\n<app-popover #programTypePopover>\n <div class=\"new-action-list\">\n <div\n class=\"program-type-text vx-fs-11 vx-fw-500 vx-gray-60 vx-lh-16 vx-p-2 vx-tt-uppercase\"\n >\n Program Type:\n </div>\n <ul class=\"action-item\">\n <li *ngFor=\"let item of programTypeList\">\n <div class=\"chip-item\">\n <app-cs-checkbox\n [value]=\"item.id\"\n [ngValue]=\"selectedProgramType.includes(item.id)\"\n (ngValueChange)=\"selectFilter($event, item)\"\n >\n {{ item?.name }}\n </app-cs-checkbox>\n </div>\n </li>\n </ul>\n <div\n class=\"program-type-bottom vx-d-flex vx-align-center vx-justify-center vx-pt-3 vx-pb-3\"\n >\n <button\n (click)=\"resetFilter()\"\n class=\"reset-btn vx-fs-11 vx-fw-500 vx-tt-uppercase vx-p-0 vx-pl-2 vx-pr-2 vx-lh-6\"\n >\n RESET\n </button>\n <button\n (click)=\"onFilterChange()\"\n class=\"apply-btn vx-fs-11 vx-fw-500 vx-tt-uppercase vx-p-0 vx-pl-2 vx-pr-2 vx-lh-6\"\n [class.disabled]=\"selectedProgramType?.length === 0\"\n >\n APPLY\n </button>\n </div>\n </div>\n</app-popover>\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 .dynamic-list-container{height:calc(100% - 48px)}::ng-deep .dynamic-list-container.animate{animation:animate-right .2s cubic-bezier(.25,.46,.45,.94) both;z-index:-1}::ng-deep .dynamic-list-container .search-block{position:relative}::ng-deep .dynamic-list-container .search-block input{height:2.5rem;line-height:1.5rem;padding:.5rem 1rem .5rem 2.5rem;outline:none;border:1px solid #cdced6;border-radius:.25rem;width:100%;font-size:13px;color:#747576}::ng-deep .dynamic-list-container .search-block input::placeholder{font-weight:400}::ng-deep .dynamic-list-container .search-block input:focus{border-color:#1e5dd3}::ng-deep .dynamic-list-container .search-block i{position:absolute;left:1rem;top:14px;pointer-events:none;color:#e3e3e9;font-size:12px}::ng-deep .dynamic-list-filter{position:relative;min-width:240px;height:2.5rem;border:1px solid #cdced6;border-radius:.25rem;margin-left:6px;color:#a9aab6;font-size:13px;padding:0 .75rem;cursor:pointer;display:flex;align-items:center;justify-content:space-between}::ng-deep .dynamic-list-filter .filter-icon{color:#787a8c;font-size:12px}::ng-deep .dynamic-list-head{background:#fbfbfb;height:2.75rem;border-bottom:1px solid #f1f1f1}::ng-deep .dynamic-list-head button.back-btn{background:transparent;border-radius:0;border:none;position:relative;top:.125rem}::ng-deep .dynamic-list-header .serialNo{color:#787a8c;min-width:2rem;height:2rem}::ng-deep .dynamic-list-header .headerText{color:#787a8c;min-width:calc(100% - 2rem);height:2rem}::ng-deep .dynamic-list-table{width:100%;border-collapse:collapse;height:calc(100% - 3rem)}::ng-deep .dynamic-list-body{height:calc(100% - 2rem);width:calc(100% + .75rem);position:relative}::ng-deep .dynamic-list-body .left-column{width:calc(50% + .5rem);padding-right:.5rem;position:relative;overflow-y:auto;scrollbar-width:thin}::ng-deep .dynamic-list-body .left-column .list-row{background-color:#fff;border-radius:.25rem;border:1px solid #cdced6;cursor:pointer;display:flex;align-items:center;margin-bottom:.25rem;position:relative;transition:all .2s ease-in-out;width:100%;height:3rem}::ng-deep .dynamic-list-body .left-column .list-row:hover{background:#f8f8f8}::ng-deep .dynamic-list-body .left-column .list-row.selected{background-color:#f2f2f5}::ng-deep .dynamic-list-body .left-column .list-row.selected:before{background:#1e5dd3;border-radius:.125rem .125rem 0 0;content:\"\";position:absolute;left:0;top:-1px;width:100%;height:.125rem;z-index:1}::ng-deep .dynamic-list-body .left-column .list-row.selected .list-column.serial .srNo{background:#e3e3e9;color:#565a6f}::ng-deep .dynamic-list-body .left-column .list-row .list-column{color:#000;font-size:11px;height:3rem;position:relative;display:flex;align-items:center;padding:0 .25rem}::ng-deep .dynamic-list-body .left-column .list-row .list-column.serial{width:2rem;justify-content:center}::ng-deep .dynamic-list-body .left-column .list-row .list-column.serial .srNo{background:#f9f9fa;writing-mode:vertical-lr;color:#787a8c;font-size:11px;font-weight:500;height:46px;display:flex;justify-content:center;transition:all .2s ease-in-out;position:relative}::ng-deep .dynamic-list-body .left-column .list-row .list-column.name{width:calc(100% - 4.5rem)}::ng-deep .dynamic-list-body .left-column .list-row .list-column.name .name-inner{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}::ng-deep .dynamic-list-body .left-column .list-row .list-column.name.with-count{width:calc(100% - 16rem)}::ng-deep .dynamic-list-body .left-column .list-row .list-column.count{width:11.5rem;justify-content:center}::ng-deep .dynamic-list-body .left-column .list-row .list-column.count .count-box{background:#1e5dd3;border-radius:1.25rem;color:#fff;padding:0 .125rem;min-width:1rem;height:1rem}::ng-deep .dynamic-list-body .left-column .list-row .list-column.count .count-text{color:#787a8c}::ng-deep .dynamic-list-body .left-column .list-row .list-column.action{width:2.5rem;justify-content:center}::ng-deep .dynamic-list-body .left-column .list-row .list-column.action button.arrow{background:transparent;border-radius:.25rem;border:none;color:#565a6f;min-width:1.5rem;height:1.5rem}::ng-deep .dynamic-list-body .left-column .list-row .list-column.action button.arrow:hover{background:#e3e3e9}::ng-deep .dynamic-list-body .right-column{width:calc(50% + .5rem);padding-right:.5rem;position:relative;overflow-y:auto;scrollbar-width:thin}::ng-deep .dynamic-list-body .right-column .list-row{background-color:#fff;border-radius:.25rem;border:1px solid #cdced6;cursor:pointer;display:flex;align-items:center;margin-bottom:.25rem;position:relative;transition:all .2s ease-in-out;width:100%;height:3rem}::ng-deep .dynamic-list-body .right-column .list-row:hover{background:#f8f8f8}::ng-deep .dynamic-list-body .right-column .list-row app-cs-checkbox{width:100%;display:flex}::ng-deep .dynamic-list-body .right-column .list-row app-cs-checkbox .checkbox-item{width:100%}::ng-deep .dynamic-list-body .right-column .list-row app-cs-checkbox .checkbox-item .value{width:100%;justify-content:start}::ng-deep .dynamic-list-body .right-column .list-row app-cs-checkbox .checkbox-item .value .value-inner{width:100%}::ng-deep .dynamic-list-body .right-column .list-row app-cs-checkbox .checkbox-item .value .value-inner .item-name{color:#000;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}::ng-deep .new-action-list{background:#fff;border-radius:.25rem;border:1px solid #e3e3e9;box-shadow:0 4px 8px #1e5dd326;width:240px}::ng-deep .new-action-list ul{padding:0;margin:0;animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both;max-height:220px;overflow:auto}::ng-deep .new-action-list ul.action-item{display:block}::ng-deep .new-action-list ul.action-item li{list-style:none;border:none;border-bottom:1px solid #f1f1f1;display:block;width:100%;padding:0;background:transparent;border-radius:0;margin:0;height:auto;justify-content:flex-start;box-shadow:none}::ng-deep .new-action-list ul.action-item li:last-child{border-bottom:none}::ng-deep .new-action-list ul.action-item li app-cs-checkbox{display:flex}::ng-deep .new-action-list ul.action-item li button{color:#6e717e;text-align:left;text-decoration:none;cursor:pointer;background:transparent;font-size:12px;text-transform:capitalize;display:flex;width:100%;padding:7.5px 11px;border:none}::ng-deep .new-action-list ul.action-item li button i{font-size:16px;margin-right:10px;color:#1e5dd3}::ng-deep .new-action-list ul.action-item li button:hover{background:#f3f3f3}::ng-deep .new-action-list ul.action-item li .avatar-card{display:flex;align-items:center;width:100%;padding:7.5px}::ng-deep .new-action-list ul.action-item li .avatar-card.within-con{display:block}::ng-deep .new-action-list ul.action-item li .avatar-card .avatar{height:24px;width:24px!important;overflow:hidden;background:#1e5dd3;color:#fff;font-size:10px;display:inline-flex;margin-right:5px;border-radius:50%;align-items:center;justify-content:center;text-transform:uppercase}::ng-deep .new-action-list ul.action-item li .avatar-card .avatar img{width:100%}::ng-deep .new-action-list ul.action-item li .avatar-card .avatar+span.value{width:calc(100% - 29px)}::ng-deep .new-action-list ul.action-item li .avatar-card span.value{width:100%;color:#6e717e;text-decoration:none;background:transparent;font-size:12px;text-transform:capitalize;display:block;font-weight:400;text-align-last:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:20px}::ng-deep .new-action-list ul.action-item li .avatar-card span.value i{font-size:8px;color:#747576;cursor:pointer;margin-right:5px}::ng-deep .new-action-list ul.action-item li .avatar-card.no-image{display:block}::ng-deep .new-action-list ul.action-item li .avatar-card.no-image span.value{width:100%;display:block}::ng-deep .new-action-list ul.action-item li .chip-item{color:#1e5dd3;padding:10px;display:flex;align-items:center}::ng-deep .new-action-list ul.action-item li .chip-item i{color:#747576;margin-right:7px;font-size:10px;cursor:pointer;display:inline-flex}::ng-deep .new-action-list ul.action-item li .chip-item span{display:block;width:auto;max-width:calc(100% - 17px);font-size:12px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}::ng-deep .new-action-list ul.action-item li .chip-item span.chip-block{display:block;width:100%}::ng-deep .new-action-list ul.action-item li .chip-item span.id{font-size:9px}::ng-deep .new-action-list ul.action-item li .chip-item app-cs-checkbox .checkbox-item .value{color:#000;font-size:11px}::ng-deep .new-action-list ul.action-item li .within{display:flex;align-items:center;justify-content:flex-start}::ng-deep .new-action-list ul.action-item li .within .block{background:#f1f1f1;border-radius:2px;padding:0 2px;line-height:14px;font-size:9px;font-weight:500;color:#042e7d;margin-right:6px;display:block;text-transform:uppercase}::ng-deep .new-action-list ul.action-item li .within .data{width:100%;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#747576;font-size:11px;font-weight:400;line-height:17px}::ng-deep .new-action-list ul.action-item li:first-child{animation:action-list-open .25s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .new-action-list ul.action-item li:nth-child(2){animation:action-list-open .35s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .new-action-list ul.action-item li:nth-child(3){animation:action-list-open .45s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .new-action-list ul.action-item li:nth-child(4){animation:action-list-open .55s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .new-action-list ul.action-item li:nth-child(5){animation:action-list-open .65s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .new-action-list ul.action-item li:nth-child(6){animation:action-list-open .75s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .new-action-list ul.action-item li:nth-child(7){animation:action-list-open .85s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .new-action-list ul.action-item li:nth-child(8){animation:action-list-open .95s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .new-action-list ul.action-item li:nth-child(9){animation:action-list-open 1.05s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .new-action-list ul.action-item li:nth-child(10){animation:action-list-open 1.15s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .new-action-list .program-type-text{color:#787a8c;border-bottom:1px solid #f2f2f5}::ng-deep .new-action-list .program-type-bottom{border-top:1px solid #f2f2f5}::ng-deep .new-action-list .program-type-bottom button{background:#fff;border-radius:.125rem;margin:0 .125rem!important;transition:all .3s ease-out}::ng-deep .new-action-list .program-type-bottom button.reset-btn{border:1px solid #cdced6;color:#1e5dd3}::ng-deep .new-action-list .program-type-bottom button.reset-btn:hover{background:#f9f9fa}::ng-deep .new-action-list .program-type-bottom button.apply-btn{background:#1e5dd3;border:1px solid #1e5dd3;color:#fff}::ng-deep .new-action-list .program-type-bottom button.apply-btn:hover{background:#1146a8}::ng-deep .new-action-list .program-type-bottom button.apply-btn.disabled{background:#e3e3e9;border-color:#e3e3e9;color:#a9aab6;pointer-events:none}@keyframes action-list-open{0%{transform:translateY(50px)}to{transform:translateY(0)}}@keyframes scale-up-center{0%{transform:scale(.5);opacity:0}to{transform:scale(1);opacity:1}}\n"] }]
168
169
  }], ctorParameters: function () { return [{ type: i1.ListUtilsService }, { type: i2.ProgramListApiService }]; }, propDecorators: { items: [{
169
170
  type: Input
170
171
  }], selectedItems: [{
171
172
  type: Input
172
- }], itemTemplate: [{
173
- type: Input
174
173
  }], url: [{
175
174
  type: Input
176
175
  }], itemSelected: [{
@@ -180,4 +179,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
180
179
  }], itemsSelectedChange: [{
181
180
  type: Output
182
181
  }] } });
183
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3JhbS1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL3NoYXJlZENvbXBvbmVudHMvcHJvZ3JhbS1saXN0L3Byb2dyYW0tbGlzdC9wcm9ncmFtLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvc2hhcmVkQ29tcG9uZW50cy9wcm9ncmFtLWxpc3QvcHJvZ3JhbS1saXN0L3Byb2dyYW0tbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFpRCxNQUFNLGVBQWUsQ0FBQztBQUd0SCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsa0JBQWtCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxhQUFhLENBQUM7Ozs7Ozs7Ozs7OztBQVUzRixNQUFNLE9BQU8sb0JBQW9CO0lBaUMvQixZQUNVLFNBQTJCLEVBQzNCLHFCQUE0QztRQUQ1QyxjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUMzQiwwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO1FBbEM3QyxVQUFLLEdBQVEsRUFBRSxDQUFDO1FBQ2hCLGtCQUFhLEdBQWUsRUFBRSxDQUFDO1FBRy9CLFFBQUcsR0FBUSxFQUFFLENBQUE7UUFFWixpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFLLENBQUM7UUFDckMsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBSyxDQUFDO1FBQ3ZDLHdCQUFtQixHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFFeEQsaUJBQVksR0FBRyxxQkFBcUIsQ0FBQztRQUNyQyxnQkFBVyxHQUFHLGtCQUFrQixDQUFDLG9CQUFvQixDQUFDO1FBQ3RELGFBQVEsR0FBRyxrQkFB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Q0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQ3JHLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQy9GO2FBQU07WUFDTCxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDNUY7SUFFSCxDQUFDOytHQTNLVSxvQkFBb0I7bUdBQXBCLG9CQUFvQiw0U0NiakMsd2lNQW9MQTs7NEZEdkthLG9CQUFvQjtrQkFMaEMsU0FBUzsrQkFDRSxrQkFBa0I7MklBS25CLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUVHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csR0FBRztzQkFBWCxLQUFLO2dCQUVJLFlBQVk7c0JBQXJCLE1BQU07Z0JBQ0csY0FBYztzQkFBdkIsTUFBTTtnQkFDRyxtQkFBbUI7c0JBQTVCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgVGVtcGxhdGVSZWYsIE9uSW5pdCwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBMaXN0SXRlbSB9IGZyb20gJy4uL2ludGVyZmFjZXMvbGlzdC1pdGVtLmludGVyZmFjZSc7XG5pbXBvcnQgeyBEYXRhU291cmNlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9kYXRhLXNvdXJjZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUFJPR1JBTV9UQUJMRV9IRUFERVJTLCBQQUdJTkFUSU9OX09QVElPTlMsIFBST0dSQU1fVFlQRV9MSVNUIH0gZnJvbSAnLi4vY29uc3RhbnQnO1xuaW1wb3J0IHsgTGlzdFV0aWxzU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2xpc3QtdXRpbHMuc2VydmljZSc7XG5pbXBvcnQgeyBNT0NLX0NBVEVHT1JJRVMgfSBmcm9tICcuLi8uLi8uLi9jb25zdGFudHMvbW9jayc7XG5pbXBvcnQgeyBQcm9ncmFtTGlzdEFwaVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9wcm9ncmFtLWxpc3QtYXBpLnNlcnZpY2UnO1xuaW1wb3J0IHsgb2YgfSBmcm9tICdyeGpzJztcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1wcm9ncmFtLWxpc3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vcHJvZ3JhbS1saXN0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcHJvZ3JhbS1saXN0LmNvbXBvbmVudC5sZXNzJ11cbn0pXG5leHBvcnQgY2xhc3MgUHJvZ3JhbUxpc3RDb21wb25lbnQ8VCBleHRlbmRzIExpc3RJdGVtPiBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgaXRlbXM6IFRbXSA9IFtdO1xuICBASW5wdXQoKSBzZWxlY3RlZEl0ZW1zOiBhbnkgfCBudWxsID0ge307XG4gIC8vQElucHV0KCkgc2VsZWN0aW9uUHJlZGljYXRlOiBTZWxlY3Rpb25QcmVkaWNhdGU8VD4gPSAoaXRlbSkgPT4gdGhpcy5zZWxlY3RlZEl0ZW1zLnNvbWUoc2VsZWN0ZWQgPT4gc2VsZWN0ZWQuaWQgPT09IGl0ZW0uaWQpO1xuICBASW5wdXQoKSBpdGVtVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIHVybDogYW55ID0ge31cblxuICBAT3V0cHV0KCkgaXRlbVNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxUPigpO1xuICBAT3V0cHV0KCkgaXRlbURlc2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFQ+KCk7XG4gIEBPdXRwdXQoKSBpdGVtc1NlbGVjdGVkQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxUW10+KCk7XG5cbiAgdGFibGVIZWFkZXJzID0gUFJPR1JBTV9UQUJMRV9IRUFERVJTO1xuICBjdXJyZW50UGFnZSA9IFBBR0lOQVRJT05fT1BUSU9OUy5ERUZBVUxUX0NVUlJFTlRfUEFHRTtcbiAgcGFnZVNpemUgPSBQQUdJTkFUSU9OX09QVElPTlMuUEFHRV9TSVpFO1xuICB0b3RhbFBhZ2VzID0gMDtcbiAgc2VhcmNoVGVybSA9ICcnO1xuICBwYWdpbmF0ZWRJdGVtczogVFtdID0gW107XG4gIGFjdGl2ZVByb2dyYW06IGFueSB8ICBudWxsID0gbnVsbDtcbiAgY2F0ZWdvcnlMaXN0OiBhbnlbXT0gW1xuICAgIHtuYW1lOiAnUHJvZ3JhbSBEZXRhaWxzIDEnfSxcbiAgICB7bmFtZTogJ1Byb2dyYW0gRGV0YWlscyAyJ30sXG4gICAge25hbWU6ICdQcm9ncmFtIERldGFpbHMgMyd9LFxuICAgIHtuYW1lOiAnUHJvZ3JhbSBEZXRhaWxzIDQnfSxcbiAgXTtcblxuICBwcm9ncmFtVHlwZUxpc3Q6IGFueVtdID0gUFJPR1JBTV9UWVBFX0xJU1Q7XG5cbiAgc2VsZWN0ZWRQcm9ncmFtVHlwZTogYW55W10gPSBbXTtcbiAgbG9hZGVyU3RhdGU6IGFueSA9IHtcbiAgICBwcm9ncmFtTGlzdDogZmFsc2UsXG4gICAgY2F0ZWdvcnlMaXN0OiBmYWxzZSxcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgbGlzdFV0aWxzOiBMaXN0VXRpbHNTZXJ2aWNlLFxuICAgIHByaXZhdGUgcHJvZ3JhbUxpc3RBcGlTZXJ2aWNlOiBQcm9ncmFtTGlzdEFwaVNlcnZpY2VcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZ2V0UHJvZ3JhbUxpc3QoKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlc1snaXRlbXMnXSB8fCBjaGFuZ2VzWydzZWxlY3RlZEl0ZW1zJ10pIHtcbiAgICAgIHRoaXMucGFnaW5hdGVJdGVtcygpO1xuICAgIH1cbiAgfVxuXG4gIGdldFByb2dyYW1MaXN0KCkge1xuICAgIHRoaXMubG9hZGVyU3RhdGUucHJvZ3JhbUxpc3QgPSB0cnVlO1xuICAgIHRoaXMubG9hZGVyU3RhdGUuY2F0ZWdvcnlMaXN0ID0gdHJ1ZTtcbiAgICB0aGlzLnByb2dyYW1MaXN0QXBpU2VydmljZS5nZXRQcm9ncmFtTGlzdCh0aGlzLnVybC5wcm9ncmFtTGlzdCkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xuICAgICAgdGhpcy5pdGVtcyA9IHJlcy5kYXRhLnByb2dyYW1zO1xuICAgICAgdGhpcy5sb2FkRGF0YSh0aGlzLml0ZW1zKTtcbiAgICAgIHRoaXMubG9hZGVyU3RhdGUucHJvZ3JhbUxpc3QgPSBmYWxzZTtcbiAgICB9KTtcbiAgfVxuXG5cbiAgbG9hZERhdGEoZGF0YTogYW55KTogdm9pZCB7XG4gICAgY29uc29sZS5sb2coJ2RhdGEnLCBkYXRhKTtcbiAgICB0aGlzLmdvVG9QYWdlKDEpO1xuICAgIHRoaXMudmlld0NhdGVnb3J5KGRhdGFbMF0pO1xuICB9XG5cbiAgc2VhcmNoKCk6IHZvaWQge1xuICAgIHRoaXMuY3VycmVudFBhZ2UgPSBQQUdJTkFUSU9OX09QVElPTlMuREVGQVVMVF9DVVJSRU5UX1BBR0U7XG4gICAgY29uc3QgZmlsdGVyZWRJdGVtcyA9IHRoaXMuaXRlbXMuZmlsdGVyKChpdGVtOiBhbnkpID0+IGl0ZW0ubmFtZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHRoaXMuc2VhcmNoVGVybS50b0xvd2VyQ2FzZSgpKSk7XG4gICAgdGhpcy5sb2FkRGF0YShmaWx0ZXJlZEl0ZW1zKTtcbiAgfVxuXG4gIHNlbGVjdEl0ZW0oZXZlbnQ6IGFueSwgaXRlbTogYW55KTogdm9pZCB7XG4gICAgaWYgKGV2ZW50KSB7XG4gICAgICBpZighdGhpcy5zZWxlY3RlZEl0ZW1zW3RoaXMuYWN0aXZlUHJvZ3JhbS5pZF0pIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zW3RoaXMuYWN0aXZlUHJvZ3JhbS5pZF0gPSBbXTtcbiAgICAgIH1cbiAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtc1t0aGlzLmFjdGl2ZVByb2dyYW0uaWRdLnB1c2goaXRlbSk7XG4gICAgICB0aGlzLml0ZW1zU2VsZWN0ZWRDaGFuZ2UuZW1pdCh0aGlzLnNlbGVjdGVkSXRlbXMpO1xuICAgICAgdGhpcy5pdGVtU2VsZWN0ZWQuZW1pdChpdGVtKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zID0gdGhpcy5zZWxlY3RlZEl0ZW1zW3RoaXMuYWN0aXZlUHJvZ3JhbS5pZF0uZmlsdGVyKChzZWxlY3RlZDogYW55KSA9PiBzZWxlY3RlZC5pZCAhPT0gaXRlbS5pZCk7XG4gICAgICB0aGlzLml0ZW1zU2VsZWN0ZWRDaGFuZ2UuZW1pdCh0aGlzLnNlbGVjdGVkSXRlbXMpO1xuICAgICAgdGhpcy5pdGVtRGVzZWxlY3RlZC5lbWl0KGl0ZW0pO1xuICAgIH1cbiAgfVxuXG4gIGRlc2VsZWN0SXRlbShpdGVtOiBUKTogdm9pZCB7XG4gICAgLy90aGlzLnNlbGVjdGVkSXRlbXMgPSB0aGlzLnNlbGVjdGVkSXRlbXMuZmlsdGVyKHNlbGVjdGVkID0+IHNlbGVjdGVkLmlkICE9PSBpdGVtLmlkKTtcbiAgICB0aGlzLml0ZW1zU2VsZWN0ZWRDaGFuZ2UuZW1pdCh0aGlzLnNlbGVjdGVkSXRlbXMpO1xuICAgIHRoaXMuaXRlbURlc2VsZWN0ZWQuZW1pdChpdGVtKTtcbiAgfVxuXG4gIGlzU2VsZWN0ZWQoaXRlbTogVCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBmYWxzZTtcbiAgIC8vIHJldHVybiB0aGlzLnNlbGVjdGlvblByZWRpY2F0ZShpdGVtKTtcbiAgfVxuXG4gIGdvVG9QYWdlKHBhZ2U6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMuY3VycmVudFBhZ2UgPSBwYWdlO1xuICAgIHRoaXMucGFnaW5hdGVJdGVtcygpO1xuICB9XG5cbiAgZ2V0UGFnZU51bWJlcnMoKTogbnVtYmVyW10ge1xuICAgIHJldHVybiB0aGlzLmxpc3RVdGlscy5nZXRQYWdlTnVtYmVycyh0aGlzLml0ZW1zLmxlbmd0aCwgdGhpcy5wYWdlU2l6ZSk7XG4gIH1cblxuICBwYWdpbmF0ZUl0ZW1zKCk6IHZvaWQge1xuICAgIHRoaXMudG90YWxQYWdlcyA9IE1hdGguY2VpbCh0aGlzLml0ZW1zLmxlbmd0aCAvIHRoaXMucGFnZVNpemUpO1xuICAgIHRoaXMucGFnaW5hdGVkSXRlbXMgPSB0aGlzLmxpc3RVdGlscy5wYWdpbmF0ZSh0aGlzLml0ZW1zLCB0aGlzLmN1cnJlbnRQYWdlLCB0aGlzLnBhZ2VTaXplKTtcbiAgfVxuLy9odHRwczovL3RhcGkudi1jb21wbHkuY29tL2NvbXBsaWFuY2UvP21vZGU9c2FpbHNQcm9ncmFtQ2F0ZWdvcmllcy8xXG4gIHZpZXdDYXRlZ29yeShpdGVtPzogYW55KTogdm9pZCB7XG4gICAgdGhpcy5sb2FkZXJTdGF0ZS5jYXRlZ29yeUxpc3QgPSB0cnVlO1xuICAgIGNvbnN0IFVSTCA9IGAke3RoaXMudXJsLmNhdGVnb3J5TGlzdH0maWQ9JHtpdGVtLmlkfWBcbiAgICB0aGlzLnByb2dyYW1MaXN0QXBpU2VydmljZS5nZXRQcm9ncmFtTGlzdChVUkwpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcbiAgICAgIHRoaXMuY2F0ZWdvcnlMaXN0ID0gcmVzLmRhdGEuY2F0ZWdvcmllcztcbiAgICAgIHRoaXMubG9hZGVyU3RhdGUuY2F0ZWdvcnlMaXN0ID0gZmFsc2U7XG4gICAgICB0aGlzLmFjdGl2ZVByb2dyYW0gPSBpdGVtO1xuICAgICAgdGhpcy5jYXRlZ29yeUxpc3QgPSB0aGlzLmFkZFBhcmVudFRyZWVUb0NhdGVnb3JpZXModGhpcy5jYXRlZ29yeUxpc3QgKTtcbiAgICB9KTtcbiAgfVxuXG4gIGFkZFBhcmVudFRyZWVUb0NhdGVnb3JpZXMoY2F0ZWdvcmllczogYW55W10pOiBhbnlbXSB7XG4gICAgY29uc29sZS5sb2coJ2NhdGVnb3JpZXMnLCBjYXRlZ29yaWVzKTtcbiAgICAvLyBDcmVhdGUgYSBtYXAgZm9yIHF1aWNrIGxvb2t1cCBvZiBjYXRlZ29yaWVzIGJ5IElEXG4gICAgY29uc3QgY2F0ZWdvcnlNYXAgPSBuZXcgTWFwKGNhdGVnb3JpZXM/Lm1hcChjYXRlZ29yeSA9PiBbY2F0ZWdvcnk/LmlkLCBjYXRlZ29yeV0pKTtcbiAgXG4gICAgZnVuY3Rpb24gZ2V0UGFyZW50VHJlZShjYXRlZ29yeTogYW55KTogc3RyaW5nW10ge1xuICAgICAgY29uc3QgcGFyZW50VHJlZTogc3RyaW5nW10gPSBbXTtcbiAgICAgIGxldCBjdXJyZW50UGFyZW50ID0gY2F0ZWdvcnk/LnBhcmVudDtcbiAgXG4gICAgICB3aGlsZSAoY3VycmVudFBhcmVudCkge1xuICAgICAgICBjb25zdCBwYXJlbnRDYXRlZ29yeSA9IGNhdGVnb3J5TWFwLmdldChjdXJyZW50UGFyZW50KTtcbiAgICAgICAgaWYgKHBhcmVudENhdGVnb3J5KSB7XG4gICAgICAgICAgcGFyZW50VHJlZS5wdXNoKHBhcmVudENhdGVnb3J5Lm5hbWUpO1xuICAgICAgICAgIGN1cnJlbnRQYXJlbnQgPSBwYXJlbnRDYXRlZ29yeS5wYXJlbnQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgXG4gICAgICByZXR1cm4gcGFyZW50VHJlZTtcbiAgICB9XG4gIFxuICAgIHJldHVybiBjYXRlZ29yaWVzLm1hcChjYXRlZ29yeSA9PiAoe1xuICAgICAgLi4uY2F0ZWdvcnksXG4gICAgICBwYXJlbnRUcmVlOiBnZXRQYXJlbnRUcmVlKGNhdGVnb3J5KVxuICAgIH0pKTtcbiAgfVxuXG4gIHNlbGVjdEZpbHRlcihldmVudDogYW55LCBpdGVtOiBhbnkpOiB2b2lkIHtcbiAgICBpZihldmVudCkge1xuICAgICAgdGhpcy5zZWxlY3RlZFByb2dyYW1UeXBlLnB1c2goaXRlbS5pZCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRQcm9ncmFtVHlwZSA9IHRoaXMuc2VsZWN0ZWRQcm9ncmFtVHlwZS5maWx0ZXIoKHNlbGVjdGVkOiBhbnkpID0+IHNlbGVjdGVkLmlkICE9PSBpdGVtLmlkKTtcbiAgICB9XG4gIH1cblxuICByZXNldEZpbHRlcigpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkUHJvZ3JhbVR5cGUgPSBbXTtcbiAgICB0aGlzLm9uRmlsdGVyQ2hhbmdlKCk7XG4gIH1cblxuICBvbkZpbHRlckNoYW5nZSgpOiB2b2lkIHtcbiAgICBpZih0aGlzLnNlbGVjdGVkUHJvZ3JhbVR5cGUubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgZmlsdGVyZWRJdGVtcyA9IHRoaXMuaXRlbXMuZmlsdGVyKChpdGVtOiBhbnkpID0+IHRoaXMuc2VsZWN0ZWRQcm9ncmFtVHlwZS5pbmNsdWRlcyhpdGVtLnR5cGUpKTtcbiAgICAgIHRoaXMucGFnaW5hdGVkSXRlbXMgPSB0aGlzLmxpc3RVdGlscy5wYWdpbmF0ZShmaWx0ZXJlZEl0ZW1zLCB0aGlzLmN1cnJlbnRQYWdlLCB0aGlzLnBhZ2VTaXplKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5wYWdpbmF0ZWRJdGVtcyA9IHRoaXMubGlzdFV0aWxzLnBhZ2luYXRlKHRoaXMuaXRlbXMsIHRoaXMuY3VycmVudFBhZ2UsIHRoaXMucGFnZVNpemUpO1xuICAgIH1cblxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZHluYW1pYy1saXN0LWNvbnRhaW5lclwiPlxuICA8ZGl2IGNsYXNzPVwidngtZC1mbGV4XCI+XG4gICAgPGRpdiBjbGFzcz1cInNlYXJjaC1ibG9jayB2eC13LTEwMFwiPlxuICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MGI7PC9pPlxuICAgICAgPGlucHV0XG4gICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJzZWFyY2hUZXJtXCJcbiAgICAgICAgcGxhY2Vob2xkZXI9XCJTZWFyY2guLi5cIlxuICAgICAgICAoa2V5dXApPVwic2VhcmNoKClcIlxuICAgICAgLz5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cImR5bmFtaWMtbGlzdC1maWx0ZXJcIlxuICAgICAgYXBwUG9wb3ZlclxuICAgICAgKGNsaWNrKT1cInByb2dyYW1UeXBlUG9wb3Zlci5wb3BvdmVyKClcIlxuICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgID5cbiAgICAgIDxkaXYgY2xhc3M9XCJmaWx0ZXItdGV4dFwiPkFsbCBQcm9ncmFtIFR5cGU8L2Rpdj5cbiAgICAgIDxpIGNsYXNzPVwiaWNvbnMgZmlsdGVyLWljb25cIj4gJiN4ZTllODsgPC9pPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdlxuICAgIGNsYXNzPVwiZHluYW1pYy1saXN0LXRhYmxlXCJcbiAgICAqbmdJZj1cInBhZ2luYXRlZEl0ZW1zPy5sZW5ndGggPiAwIHx8ICAobG9hZGVyU3RhdGUucHJvZ3JhbUxpc3QgfHwgbG9hZGVyU3RhdGUuY2F0ZWdvcnlMaXN0KTsgZWxzZSBkZWZhdWx0VGVtcGxhdGVcIlxuICA+XG4gICAgPGRpdiBjbGFzcz1cImR5bmFtaWMtbGlzdC1oZWFkZXIgdngtZC1mbGV4XCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBoZWFkZXIgb2YgdGFibGVIZWFkZXJzXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ2eC1kLWZsZXggdngtdy01MCB2eC1wbC0xXCI+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJzZXJpYWxObyB2eC1mcy0xMSB2eC1mdy01MDAgdngtdHQtdXBwZXJjYXNlIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1jZW50ZXJcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgICNcbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cImhlYWRlclRleHQgdngtZnMtMTEgdngtZnctNTAwIHZ4LXR0LXVwcGVyY2FzZSB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7eyBoZWFkZXIgfX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZHluYW1pYy1saXN0LWJvZHkgdngtZC1mbGV4XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibGVmdC1jb2x1bW5cIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFsb2FkZXJTdGF0ZS5wcm9ncmFtTGlzdDtlbHNlIHByb2dyYW1MaXN0TG9hZGVyXCI+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIHBhZ2luYXRlZEl0ZW1zOyBsZXQgaSA9IGluZGV4XCJcbiAgICAgICAgICBjbGFzcz1cImxpc3Qtcm93XCJcbiAgICAgICAgICBbY2xhc3Muc2VsZWN0ZWRdPVwiYWN0aXZlUHJvZ3JhbT8uaWQgPT09IGl0ZW0uaWRcIlxuICAgICAgICAgIChjbGljayk9XCJ2aWV3Q2F0ZWdvcnkoaXRlbSlcIlxuICAgICAgICA+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImxpc3QtY29sdW1uIHNlcmlhbFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNyTm9cIj57eyBpICsgMSB9fTwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwibGlzdC1jb2x1bW4gbmFtZVwiXG4gICAgICAgICAgICBbY2xhc3Mud2l0aC1jb3VudF09XCJzZWxlY3RlZEl0ZW1zW2l0ZW0uaWRdPy5sZW5ndGggPiAwXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibmFtZS1pbm5lciB2eC1mcy0xMyB2eC1wci0yXCI+e3sgaXRlbS5uYW1lIH19PC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJsaXN0LWNvbHVtbiBjb3VudFwiXG4gICAgICAgICAgICAqbmdJZj1cInNlbGVjdGVkSXRlbXNbaXRlbS5pZF0/Lmxlbmd0aCA+IDBcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY2xhc3M9XCJjb3VudC1ib3ggdngtZnMtOSB2eC1mdy02MDAgdngtbGgtNCB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWp1c3RpZnktY2VudGVyXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge3sgc2VsZWN0ZWRJdGVtc1tpdGVtLmlkXS5sZW5ndGggfX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBjbGFzcz1cImNvdW50LXRleHQgdngtZnMtMTEgdngtZnctNTAwIHZ4LXR0LXVwcGVyY2FzZSB2eC1saC00IHZ4LW1sLTJcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICBDQVRFR09SSUVTIFNFTEVDVEVEXG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibGlzdC1jb2x1bW4gYWN0aW9uXCI+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIGNsYXNzPVwiYXJyb3cgdngtZnMtMTIgdngtcC0wIHZ4LW0tMCB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWp1c3RpZnktY2VudGVyXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiAmI3hlOTcwOyA8L2k+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctdGVtcGxhdGUgI3Byb2dyYW1MaXN0TG9hZGVyPlxuICAgICAgICAgIDxhcHAtdGFibGUtbG9hZGVyPjwvYXBwLXRhYmxlLWxvYWRlcj5cblxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwicmlnaHQtY29sdW1uXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhbG9hZGVyU3RhdGUuY2F0ZWdvcnlMaXN0O2Vsc2UgY2F0ZWdvcnlMaXN0TG9hZGVyXCI+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwibGlzdC1yb3cgdngtcGwtMiB2eC1wci0yXCJcbiAgICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBjYXRlZ29yeUxpc3Q7IGxldCBpID0gaW5kZXhcIlxuICAgICAgICA+IFxuICAgICAgICAgIDxhcHAtY3MtY2hlY2tib3hcbiAgICAgICAgICAgIFt2YWx1ZV09XCJpdGVtPy5pZFwiXG4gICAgICAgICAgICBbbmdWYWx1ZV09XCJpdGVtLmlkIHwgY2hlY2tTZWxlY3RlZEl0ZW1zOiBzZWxlY3RlZEl0ZW1zW2FjdGl2ZVByb2dyYW0uaWRdXCJcbiAgICAgICAgICAgIChuZ1ZhbHVlQ2hhbmdlKT1cInNlbGVjdEl0ZW0oJGV2ZW50LCBpdGVtKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2YWx1ZS1pbm5lclwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaXRlbS1uYW1lIHZ4LWZzLTEzXCI+e3sgaXRlbT8ubmFtZSB9fTwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid2l0aGluLXBhcnQgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1wci0zXCI+XG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIml0ZW0/LnBhcmVudFRyZWU/Lmxlbmd0aFwiXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cIndpdGhpbi1ib3ggdngtZnMtOSB2eC1mdy02MDAgdngtdHQtdXBwZXJjYXNlIHZ4LXBsLTEgdngtcHItMSB2eC1tci0yIHZ4LWxoLTNcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIFdpdGhpblxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwid2l0aGluLXZhbHVlIHZ4LWZzLTExIHZ4LXBhcmFncmFwaC10eHRcIlxuICAgICAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiaXRlbT8ucGFyZW50VHJlZT8uam9pbignID4gJylcIlxuICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIlxuICAgICAgICAgICAgICAgICAgZGVsYXk9XCIwXCJcbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJibGFja1wiXG4gICAgICAgICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7eyBpdGVtPy5wYXJlbnRUcmVlPy5qb2luKFwiID4gXCIpIH19XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDwvYXBwLWNzLWNoZWNrYm94PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjY2F0ZWdvcnlMaXN0TG9hZGVyPlxuICAgICAgICAgIDxhcHAtdGFibGUtbG9hZGVyPjwvYXBwLXRhYmxlLWxvYWRlcj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIFxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8bmctdGVtcGxhdGUgI2RlZmF1bHRUZW1wbGF0ZT5cbiAgICA8ZGl2IGNsYXNzPVwibGlzdC1uby1kYXRhLWNvbnRhaW5lclwiPlxuICAgICAgPGFwcC1uby1kYXRhXG4gICAgICAgIFtub0RhdGFJbWFnZV09XCJcbiAgICAgICAgICAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L3NlYXJjaC1kYXRhLnN2ZydcbiAgICAgICAgXCJcbiAgICAgICAgW25vRGF0YVRleHRdPVwiJ05vIGRhdGEgdG8gZGlzcGxheSdcIlxuICAgICAgPjwvYXBwLW5vLWRhdGE+XG4gICAgPC9kaXY+XG4gIDwvbmctdGVtcGxhdGU+XG48L2Rpdj5cblxuPGFwcC1wb3BvdmVyICNwcm9ncmFtVHlwZVBvcG92ZXI+XG4gIDxkaXYgY2xhc3M9XCJuZXctYWN0aW9uLWxpc3RcIj5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cInByb2dyYW0tdHlwZS10ZXh0IHZ4LWZzLTExIHZ4LWZ3LTUwMCB2eC1ncmF5LTYwIHZ4LWxoLTE2IHZ4LXAtMiB2eC10dC11cHBlcmNhc2VcIlxuICAgID5cbiAgICAgIFByb2dyYW0gVHlwZTpcbiAgICA8L2Rpdj5cbiAgICA8dWwgY2xhc3M9XCJhY3Rpb24taXRlbVwiPlxuICAgICAgPGxpICpuZ0Zvcj1cImxldCBpdGVtIG9mIHByb2dyYW1UeXBlTGlzdFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2hpcC1pdGVtXCI+XG4gICAgICAgICAgPGFwcC1jcy1jaGVja2JveFxuICAgICAgICAgICAgW3ZhbHVlXT1cIml0ZW0uaWRcIlxuICAgICAgICAgICAgW25nVmFsdWVdPVwic2VsZWN0ZWRQcm9ncmFtVHlwZS5pbmNsdWRlcyhpdGVtLmlkKVwiXG4gICAgICAgICAgICAobmdWYWx1ZUNoYW5nZSk9XCJzZWxlY3RGaWx0ZXIoJGV2ZW50LCBpdGVtKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge3sgaXRlbT8ubmFtZSB9fVxuICAgICAgICAgIDwvYXBwLWNzLWNoZWNrYm94PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbGk+XG4gICAgPC91bD5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cInByb2dyYW0tdHlwZS1ib3R0b20gdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWNlbnRlciB2eC1wdC0zIHZ4LXBiLTNcIlxuICAgID5cbiAgICAgIDxidXR0b25cbiAgICAgICAgKGNsaWNrKT1cInJlc2V0RmlsdGVyKClcIlxuICAgICAgICBjbGFzcz1cInJlc2V0LWJ0biB2eC1mcy0xMSB2eC1mdy01MDAgdngtdHQtdXBwZXJjYXNlIHZ4LXAtMCB2eC1wbC0yIHZ4LXByLTIgdngtbGgtNlwiXG4gICAgICA+XG4gICAgICAgIFJFU0VUXG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgKGNsaWNrKT1cIm9uRmlsdGVyQ2hhbmdlKClcIlxuICAgICAgICBjbGFzcz1cImFwcGx5LWJ0biB2eC1mcy0xMSB2eC1mdy01MDAgdngtdHQtdXBwZXJjYXNlIHZ4LXAtMCB2eC1wbC0yIHZ4LXByLTIgdngtbGgtNlwiXG4gICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCJzZWxlY3RlZFByb2dyYW1UeXBlPy5sZW5ndGggPT09IDBcIlxuICAgICAgPlxuICAgICAgICBBUFBMWVxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9hcHAtcG9wb3Zlcj5cbiJdfQ==
182
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3JhbS1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL3NoYXJlZENvbXBvbmVudHMvcHJvZ3JhbS1saXN0L3Byb2dyYW0tbGlzdC9wcm9ncmFtLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvc2hhcmVkQ29tcG9uZW50cy9wcm9ncmFtLWxpc3QvcHJvZ3JhbS1saXN0L3Byb2dyYW0tbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFpRCxNQUFNLGVBQWUsQ0FBQztBQUd0SCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsa0JBQWtCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxhQUFhLENBQUM7Ozs7Ozs7Ozs7OztBQVUzRixNQUFNLE9BQU8sb0JBQW9CO0lBZ0MvQixZQUNVLFNBQTJCLEVBQzNCLHFCQUE0QztRQUQ1QyxjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUMzQiwwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO1FBakM3QyxVQUFLLEdBQVEsRUFBRSxDQUFDO1FBQ2hCLGtCQUFhLEdBQWUsRUFBRSxDQUFDO1FBQ3hDLDhIQUE4SDtRQUNySCxRQUFHLEdBQVEsRUFBRSxDQUFBO1FBRVosaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBSyxDQUFDO1FBQ3JDLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQUssQ0FBQztRQUN2Qyx3QkFBbUIsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBRXhELGlCQUFZLEdBQUcscUJBQXFCLENBQUM7UUFDckMsZ0JBQVcsR0FBRyxrQkFBa0IsQ0FBQyxvQkFBb0IsQ0FBQztRQUN0RCxh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QVMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUNyRyxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUMvRjthQUFNO1lBQ0wsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQzVGO0lBRUgsQ0FBQzsrR0EzS1Usb0JBQW9CO21HQUFwQixvQkFBb0IsOFFDYmpDLCtsTUFvTEE7OzRGRHZLYSxvQkFBb0I7a0JBTGhDLFNBQVM7K0JBQ0Usa0JBQWtCOzJJQUtuQixLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFFRyxHQUFHO3NCQUFYLEtBQUs7Z0JBRUksWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxjQUFjO3NCQUF2QixNQUFNO2dCQUNHLG1CQUFtQjtzQkFBNUIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBUZW1wbGF0ZVJlZiwgT25Jbml0LCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IExpc3RJdGVtIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9saXN0LWl0ZW0uaW50ZXJmYWNlJztcbmltcG9ydCB7IERhdGFTb3VyY2UgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2RhdGEtc291cmNlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBQUk9HUkFNX1RBQkxFX0hFQURFUlMsIFBBR0lOQVRJT05fT1BUSU9OUywgUFJPR1JBTV9UWVBFX0xJU1QgfSBmcm9tICcuLi9jb25zdGFudCc7XG5pbXBvcnQgeyBMaXN0VXRpbHNTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvbGlzdC11dGlscy5zZXJ2aWNlJztcbmltcG9ydCB7IE1PQ0tfQ0FURUdPUklFUyB9IGZyb20gJy4uLy4uLy4uL2NvbnN0YW50cy9tb2NrJztcbmltcG9ydCB7IFByb2dyYW1MaXN0QXBpU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3Byb2dyYW0tbGlzdC1hcGkuc2VydmljZSc7XG5pbXBvcnQgeyBvZiB9IGZyb20gJ3J4anMnO1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLXByb2dyYW0tbGlzdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9wcm9ncmFtLWxpc3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9wcm9ncmFtLWxpc3QuY29tcG9uZW50Lmxlc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBQcm9ncmFtTGlzdENvbXBvbmVudDxUIGV4dGVuZHMgTGlzdEl0ZW0+IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICBASW5wdXQoKSBpdGVtczogVFtdID0gW107XG4gIEBJbnB1dCgpIHNlbGVjdGVkSXRlbXM6IGFueSB8IG51bGwgPSB7fTtcbiAgLy9ASW5wdXQoKSBzZWxlY3Rpb25QcmVkaWNhdGU6IFNlbGVjdGlvblByZWRpY2F0ZTxUPiA9IChpdGVtKSA9PiB0aGlzLnNlbGVjdGVkSXRlbXMuc29tZShzZWxlY3RlZCA9PiBzZWxlY3RlZC5pZCA9PT0gaXRlbS5pZCk7XG4gIEBJbnB1dCgpIHVybDogYW55ID0ge31cblxuICBAT3V0cHV0KCkgaXRlbVNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxUPigpO1xuICBAT3V0cHV0KCkgaXRlbURlc2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFQ+KCk7XG4gIEBPdXRwdXQoKSBpdGVtc1NlbGVjdGVkQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxUW10+KCk7XG5cbiAgdGFibGVIZWFkZXJzID0gUFJPR1JBTV9UQUJMRV9IRUFERVJTO1xuICBjdXJyZW50UGFnZSA9IFBBR0lOQVRJT05fT1BUSU9OUy5ERUZBVUxUX0NVUlJFTlRfUEFHRTtcbiAgcGFnZVNpemUgPSBQQUdJTkFUSU9OX09QVElPTlMuUEFHRV9TSVpFO1xuICB0b3RhbFBhZ2VzID0gMDtcbiAgc2VhcmNoVGVybSA9ICcnO1xuICBwYWdpbmF0ZWRJdGVtczogVFtdID0gW107XG4gIGFjdGl2ZVByb2dyYW06IGFueSB8ICBudWxsID0gbnVsbDtcbiAgY2F0ZWdvcnlMaXN0OiBhbnlbXT0gW1xuICAgIHtuYW1lOiAnUHJvZ3JhbSBEZXRhaWxzIDEnfSxcbiAgICB7bmFtZTogJ1Byb2dyYW0gRGV0YWlscyAyJ30sXG4gICAge25hbWU6ICdQcm9ncmFtIERldGFpbHMgMyd9LFxuICAgIHtuYW1lOiAnUHJvZ3JhbSBEZXRhaWxzIDQnfSxcbiAgXTtcblxuICBwcm9ncmFtVHlwZUxpc3Q6IGFueVtdID0gUFJPR1JBTV9UWVBFX0xJU1Q7XG5cbiAgc2VsZWN0ZWRQcm9ncmFtVHlwZTogYW55W10gPSBbXTtcbiAgbG9hZGVyU3RhdGU6IGFueSA9IHtcbiAgICBwcm9ncmFtTGlzdDogZmFsc2UsXG4gICAgY2F0ZWdvcnlMaXN0OiBmYWxzZSxcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgbGlzdFV0aWxzOiBMaXN0VXRpbHNTZXJ2aWNlLFxuICAgIHByaXZhdGUgcHJvZ3JhbUxpc3RBcGlTZXJ2aWNlOiBQcm9ncmFtTGlzdEFwaVNlcnZpY2VcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZ2V0UHJvZ3JhbUxpc3QoKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlc1snaXRlbXMnXSB8fCBjaGFuZ2VzWydzZWxlY3RlZEl0ZW1zJ10pIHtcbiAgICAgIHRoaXMucGFnaW5hdGVJdGVtcygpO1xuICAgIH1cbiAgfVxuXG4gIGdldFByb2dyYW1MaXN0KCkge1xuICAgIHRoaXMubG9hZGVyU3RhdGUucHJvZ3JhbUxpc3QgPSB0cnVlO1xuICAgIHRoaXMubG9hZGVyU3RhdGUuY2F0ZWdvcnlMaXN0ID0gdHJ1ZTtcbiAgICB0aGlzLnByb2dyYW1MaXN0QXBpU2VydmljZS5nZXRQcm9ncmFtTGlzdCh0aGlzLnVybC5wcm9ncmFtTGlzdCkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xuICAgICAgdGhpcy5pdGVtcyA9IHJlcy5kYXRhLnByb2dyYW1zO1xuICAgICAgdGhpcy5sb2FkRGF0YSh0aGlzLml0ZW1zKTtcbiAgICAgIHRoaXMubG9hZGVyU3RhdGUucHJvZ3JhbUxpc3QgPSBmYWxzZTtcbiAgICB9KTtcbiAgfVxuXG5cbiAgbG9hZERhdGEoZGF0YTogYW55KTogdm9pZCB7XG4gICAgY29uc29sZS5sb2coJ2RhdGEnLCBkYXRhKTtcbiAgICB0aGlzLmdvVG9QYWdlKDEpO1xuICAgIHRoaXMudmlld0NhdGVnb3J5KGRhdGFbMF0pO1xuICB9XG5cbiAgc2VhcmNoKCk6IHZvaWQge1xuICAgIHRoaXMuY3VycmVudFBhZ2UgPSBQQUdJTkFUSU9OX09QVElPTlMuREVGQVVMVF9DVVJSRU5UX1BBR0U7XG4gICAgY29uc3QgZmlsdGVyZWRJdGVtcyA9IHRoaXMuaXRlbXMuZmlsdGVyKChpdGVtOiBhbnkpID0+IGl0ZW0ubmFtZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHRoaXMuc2VhcmNoVGVybS50b0xvd2VyQ2FzZSgpKSk7XG4gICAgdGhpcy5sb2FkRGF0YShmaWx0ZXJlZEl0ZW1zKTtcbiAgfVxuXG4gIHNlbGVjdEl0ZW0oZXZlbnQ6IGFueSwgaXRlbTogYW55KTogdm9pZCB7XG4gICAgaWYgKGV2ZW50KSB7XG4gICAgICBpZighdGhpcy5zZWxlY3RlZEl0ZW1zW3RoaXMuYWN0aXZlUHJvZ3JhbS5pZF0pIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zW3RoaXMuYWN0aXZlUHJvZ3JhbS5pZF0gPSBbXTtcbiAgICAgIH1cbiAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtc1t0aGlzLmFjdGl2ZVByb2dyYW0uaWRdLnB1c2goaXRlbSk7XG4gICAgICB0aGlzLml0ZW1zU2VsZWN0ZWRDaGFuZ2UuZW1pdCh0aGlzLnNlbGVjdGVkSXRlbXMpO1xuXG4gICAgICB0aGlzLml0ZW1TZWxlY3RlZC5lbWl0KGl0ZW0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSB0aGlzLnNlbGVjdGVkSXRlbXNbdGhpcy5hY3RpdmVQcm9ncmFtLmlkXS5maWx0ZXIoKHNlbGVjdGVkOiBhbnkpID0+IHNlbGVjdGVkLmlkICE9PSBpdGVtLmlkKTtcbiAgICAgIHRoaXMuaXRlbXNTZWxlY3RlZENoYW5nZS5lbWl0KHRoaXMuc2VsZWN0ZWRJdGVtcyk7XG4gICAgICB0aGlzLml0ZW1EZXNlbGVjdGVkLmVtaXQoaXRlbSk7XG4gICAgfVxuICB9XG5cbiAgZGVzZWxlY3RJdGVtKGl0ZW06IFQpOiB2b2lkIHtcbiAgICAvL3RoaXMuc2VsZWN0ZWRJdGVtcyA9IHRoaXMuc2VsZWN0ZWRJdGVtcy5maWx0ZXIoc2VsZWN0ZWQgPT4gc2VsZWN0ZWQuaWQgIT09IGl0ZW0uaWQpO1xuICAgIHRoaXMuaXRlbXNTZWxlY3RlZENoYW5nZS5lbWl0KHRoaXMuc2VsZWN0ZWRJdGVtcyk7XG4gICAgdGhpcy5pdGVtRGVzZWxlY3RlZC5lbWl0KGl0ZW0pO1xuICB9XG5cbiAgaXNTZWxlY3RlZChpdGVtOiBUKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICAgLy8gcmV0dXJuIHRoaXMuc2VsZWN0aW9uUHJlZGljYXRlKGl0ZW0pO1xuICB9XG5cbiAgZ29Ub1BhZ2UocGFnZTogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5jdXJyZW50UGFnZSA9IHBhZ2U7XG4gICAgdGhpcy5wYWdpbmF0ZUl0ZW1zKCk7XG4gIH1cblxuICBnZXRQYWdlTnVtYmVycygpOiBudW1iZXJbXSB7XG4gICAgcmV0dXJuIHRoaXMubGlzdFV0aWxzLmdldFBhZ2VOdW1iZXJzKHRoaXMuaXRlbXMubGVuZ3RoLCB0aGlzLnBhZ2VTaXplKTtcbiAgfVxuXG4gIHBhZ2luYXRlSXRlbXMoKTogdm9pZCB7XG4gICAgdGhpcy50b3RhbFBhZ2VzID0gTWF0aC5jZWlsKHRoaXMuaXRlbXMubGVuZ3RoIC8gdGhpcy5wYWdlU2l6ZSk7XG4gICAgdGhpcy5wYWdpbmF0ZWRJdGVtcyA9IHRoaXMubGlzdFV0aWxzLnBhZ2luYXRlKHRoaXMuaXRlbXMsIHRoaXMuY3VycmVudFBhZ2UsIHRoaXMucGFnZVNpemUpO1xuICB9XG4vL2h0dHBzOi8vdGFwaS52LWNvbXBseS5jb20vY29tcGxpYW5jZS8/bW9kZT1zYWlsc1Byb2dyYW1DYXRlZ29yaWVzLzFcbiAgdmlld0NhdGVnb3J5KGl0ZW0/OiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLmxvYWRlclN0YXRlLmNhdGVnb3J5TGlzdCA9IHRydWU7XG4gICAgY29uc3QgVVJMID0gYCR7dGhpcy51cmwuY2F0ZWdvcnlMaXN0fSZpZD0ke2l0ZW0uaWR9YFxuICAgIHRoaXMucHJvZ3JhbUxpc3RBcGlTZXJ2aWNlLmdldFByb2dyYW1MaXN0KFVSTCkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xuICAgICAgdGhpcy5jYXRlZ29yeUxpc3QgPSByZXMuZGF0YS5jYXRlZ29yaWVzO1xuICAgICAgdGhpcy5sb2FkZXJTdGF0ZS5jYXRlZ29yeUxpc3QgPSBmYWxzZTtcbiAgICAgIHRoaXMuYWN0aXZlUHJvZ3JhbSA9IGl0ZW07XG4gICAgICB0aGlzLmNhdGVnb3J5TGlzdCA9IHRoaXMuYWRkUGFyZW50VHJlZVRvQ2F0ZWdvcmllcyh0aGlzLmNhdGVnb3J5TGlzdCApO1xuICAgIH0pO1xuICB9XG5cbiAgYWRkUGFyZW50VHJlZVRvQ2F0ZWdvcmllcyhjYXRlZ29yaWVzOiBhbnlbXSk6IGFueVtdIHtcbiAgICBjb25zb2xlLmxvZygnY2F0ZWdvcmllcycsIGNhdGVnb3JpZXMpO1xuICAgIC8vIENyZWF0ZSBhIG1hcCBmb3IgcXVpY2sgbG9va3VwIG9mIGNhdGVnb3JpZXMgYnkgSURcbiAgICBjb25zdCBjYXRlZ29yeU1hcCA9IG5ldyBNYXAoY2F0ZWdvcmllcz8ubWFwKGNhdGVnb3J5ID0+IFtjYXRlZ29yeT8uaWQsIGNhdGVnb3J5XSkpO1xuICBcbiAgICBmdW5jdGlvbiBnZXRQYXJlbnRUcmVlKGNhdGVnb3J5OiBhbnkpOiBzdHJpbmdbXSB7XG4gICAgICBjb25zdCBwYXJlbnRUcmVlOiBzdHJpbmdbXSA9IFtdO1xuICAgICAgbGV0IGN1cnJlbnRQYXJlbnQgPSBjYXRlZ29yeT8ucGFyZW50O1xuICBcbiAgICAgIHdoaWxlIChjdXJyZW50UGFyZW50KSB7XG4gICAgICAgIGNvbnN0IHBhcmVudENhdGVnb3J5ID0gY2F0ZWdvcnlNYXAuZ2V0KGN1cnJlbnRQYXJlbnQpO1xuICAgICAgICBpZiAocGFyZW50Q2F0ZWdvcnkpIHtcbiAgICAgICAgICBwYXJlbnRUcmVlLnB1c2gocGFyZW50Q2F0ZWdvcnkubmFtZSk7XG4gICAgICAgICAgY3VycmVudFBhcmVudCA9IHBhcmVudENhdGVnb3J5LnBhcmVudDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuICBcbiAgICAgIHJldHVybiBwYXJlbnRUcmVlO1xuICAgIH1cbiAgXG4gICAgcmV0dXJuIGNhdGVnb3JpZXMubWFwKGNhdGVnb3J5ID0+ICh7XG4gICAgICAuLi5jYXRlZ29yeSxcbiAgICAgIHBhcmVudFRyZWU6IGdldFBhcmVudFRyZWUoY2F0ZWdvcnkpXG4gICAgfSkpO1xuICB9XG5cbiAgc2VsZWN0RmlsdGVyKGV2ZW50OiBhbnksIGl0ZW06IGFueSk6IHZvaWQge1xuICAgIGlmKGV2ZW50KSB7XG4gICAgICB0aGlzLnNlbGVjdGVkUHJvZ3JhbVR5cGUucHVzaChpdGVtLmlkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZWxlY3RlZFByb2dyYW1UeXBlID0gdGhpcy5zZWxlY3RlZFByb2dyYW1UeXBlLmZpbHRlcigoc2VsZWN0ZWQ6IGFueSkgPT4gc2VsZWN0ZWQuaWQgIT09IGl0ZW0uaWQpO1xuICAgIH1cbiAgfVxuXG4gIHJlc2V0RmlsdGVyKCk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWRQcm9ncmFtVHlwZSA9IFtdO1xuICAgIHRoaXMub25GaWx0ZXJDaGFuZ2UoKTtcbiAgfVxuXG4gIG9uRmlsdGVyQ2hhbmdlKCk6IHZvaWQge1xuICAgIGlmKHRoaXMuc2VsZWN0ZWRQcm9ncmFtVHlwZS5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBmaWx0ZXJlZEl0ZW1zID0gdGhpcy5pdGVtcy5maWx0ZXIoKGl0ZW06IGFueSkgPT4gdGhpcy5zZWxlY3RlZFByb2dyYW1UeXBlLmluY2x1ZGVzKGl0ZW0udHlwZSkpO1xuICAgICAgdGhpcy5wYWdpbmF0ZWRJdGVtcyA9IHRoaXMubGlzdFV0aWxzLnBhZ2luYXRlKGZpbHRlcmVkSXRlbXMsIHRoaXMuY3VycmVudFBhZ2UsIHRoaXMucGFnZVNpemUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnBhZ2luYXRlZEl0ZW1zID0gdGhpcy5saXN0VXRpbHMucGFnaW5hdGUodGhpcy5pdGVtcywgdGhpcy5jdXJyZW50UGFnZSwgdGhpcy5wYWdlU2l6ZSk7XG4gICAgfVxuXG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJkeW5hbWljLWxpc3QtY29udGFpbmVyXCI+XG4gIDxkaXYgY2xhc3M9XCJ2eC1kLWZsZXhcIj5cbiAgICA8ZGl2IGNsYXNzPVwic2VhcmNoLWJsb2NrIHZ4LXctMTAwXCI+XG4gICAgICA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTkwYjs8L2k+XG4gICAgICA8aW5wdXRcbiAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICBbKG5nTW9kZWwpXT1cInNlYXJjaFRlcm1cIlxuICAgICAgICBwbGFjZWhvbGRlcj1cIlNlYXJjaC4uLlwiXG4gICAgICAgIChrZXl1cCk9XCJzZWFyY2goKVwiXG4gICAgICAvPlxuICAgIDwvZGl2PlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwiZHluYW1pYy1saXN0LWZpbHRlclwiXG4gICAgICBhcHBQb3BvdmVyXG4gICAgICAoY2xpY2spPVwicHJvZ3JhbVR5cGVQb3BvdmVyLnBvcG92ZXIoKVwiXG4gICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgPlxuICAgICAgPGRpdiBjbGFzcz1cImZpbHRlci10ZXh0XCI+QWxsIFByb2dyYW0gVHlwZTwvZGl2PlxuICAgICAgPGkgY2xhc3M9XCJpY29ucyBmaWx0ZXItaWNvblwiPiAmI3hlOWU4OyA8L2k+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2XG4gICAgY2xhc3M9XCJkeW5hbWljLWxpc3QtdGFibGVcIlxuICAgICpuZ0lmPVwicGFnaW5hdGVkSXRlbXM/Lmxlbmd0aCA+IDAgfHwgIChsb2FkZXJTdGF0ZS5wcm9ncmFtTGlzdCB8fCBsb2FkZXJTdGF0ZS5jYXRlZ29yeUxpc3QpOyBlbHNlIGRlZmF1bHRUZW1wbGF0ZVwiXG4gID5cbiAgICA8ZGl2IGNsYXNzPVwiZHluYW1pYy1saXN0LWhlYWRlciB2eC1kLWZsZXhcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGhlYWRlciBvZiB0YWJsZUhlYWRlcnNcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInZ4LWQtZmxleCB2eC13LTUwIHZ4LXBsLTFcIj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cInNlcmlhbE5vIHZ4LWZzLTExIHZ4LWZ3LTUwMCB2eC10dC11cHBlcmNhc2UgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWNlbnRlclwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgI1xuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwiaGVhZGVyVGV4dCB2eC1mcy0xMSB2eC1mdy01MDAgdngtdHQtdXBwZXJjYXNlIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXJcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHt7IGhlYWRlciB9fVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJkeW5hbWljLWxpc3QtYm9keSB2eC1kLWZsZXhcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJsZWZ0LWNvbHVtblwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWxvYWRlclN0YXRlLnByb2dyYW1MaXN0O2Vsc2UgcHJvZ3JhbUxpc3RMb2FkZXJcIj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgcGFnaW5hdGVkSXRlbXM7IGxldCBpID0gaW5kZXhcIlxuICAgICAgICAgIGNsYXNzPVwibGlzdC1yb3dcIlxuICAgICAgICAgIFtjbGFzcy5zZWxlY3RlZF09XCJhY3RpdmVQcm9ncmFtPy5pZCA9PT0gaXRlbS5pZFwiXG4gICAgICAgICAgKGNsaWNrKT1cInZpZXdDYXRlZ29yeShpdGVtKVwiXG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibGlzdC1jb2x1bW4gc2VyaWFsXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3JOb1wiPnt7IGkgKyAxIH19PC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJsaXN0LWNvbHVtbiBuYW1lXCJcbiAgICAgICAgICAgIFtjbGFzcy53aXRoLWNvdW50XT1cInNlbGVjdGVkSXRlbXNbaXRlbS5pZF0/Lmxlbmd0aCA+IDBcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJuYW1lLWlubmVyIHZ4LWZzLTEzIHZ4LXByLTJcIj57eyBpdGVtLm5hbWUgfX08L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cImxpc3QtY29sdW1uIGNvdW50XCJcbiAgICAgICAgICAgICpuZ0lmPVwic2VsZWN0ZWRJdGVtc1tpdGVtLmlkXT8ubGVuZ3RoID4gMFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBjbGFzcz1cImNvdW50LWJveCB2eC1mcy05IHZ4LWZ3LTYwMCB2eC1saC00IHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1jZW50ZXJcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7eyBzZWxlY3RlZEl0ZW1zW2l0ZW0uaWRdLmxlbmd0aCB9fVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIGNsYXNzPVwiY291bnQtdGV4dCB2eC1mcy0xMSB2eC1mdy01MDAgdngtdHQtdXBwZXJjYXNlIHZ4LWxoLTQgdngtbWwtMlwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHt7c2VsZWN0ZWRJdGVtc1tpdGVtLmlkXS5sZW5ndGggPiAxID8gJ0NBVEVHT1JJRVMnIDogJ0NBVEVHT1JZJ319IFNFTEVDVEVEXG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibGlzdC1jb2x1bW4gYWN0aW9uXCI+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIGNsYXNzPVwiYXJyb3cgdngtZnMtMTIgdngtcC0wIHZ4LW0tMCB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWp1c3RpZnktY2VudGVyXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiAmI3hlOTcwOyA8L2k+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctdGVtcGxhdGUgI3Byb2dyYW1MaXN0TG9hZGVyPlxuICAgICAgICAgIDxhcHAtdGFibGUtbG9hZGVyPjwvYXBwLXRhYmxlLWxvYWRlcj5cblxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwicmlnaHQtY29sdW1uXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhbG9hZGVyU3RhdGUuY2F0ZWdvcnlMaXN0O2Vsc2UgY2F0ZWdvcnlMaXN0TG9hZGVyXCI+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwibGlzdC1yb3cgdngtcGwtMiB2eC1wci0yXCJcbiAgICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBjYXRlZ29yeUxpc3Q7IGxldCBpID0gaW5kZXhcIlxuICAgICAgICA+IFxuICAgICAgICAgIDxhcHAtY3MtY2hlY2tib3hcbiAgICAgICAgICAgIFt2YWx1ZV09XCJpdGVtPy5pZFwiXG4gICAgICAgICAgICBbbmdWYWx1ZV09XCJpdGVtLmlkIHwgY2hlY2tTZWxlY3RlZEl0ZW1zOiBzZWxlY3RlZEl0ZW1zW2FjdGl2ZVByb2dyYW0uaWRdXCJcbiAgICAgICAgICAgIChuZ1ZhbHVlQ2hhbmdlKT1cInNlbGVjdEl0ZW0oJGV2ZW50LCBpdGVtKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2YWx1ZS1pbm5lclwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaXRlbS1uYW1lIHZ4LWZzLTEzXCI+e3sgaXRlbT8ubmFtZSB9fTwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid2l0aGluLXBhcnQgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1wci0zXCI+XG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIml0ZW0/LnBhcmVudFRyZWU/Lmxlbmd0aFwiXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cIndpdGhpbi1ib3ggdngtZnMtOSB2eC1mdy02MDAgdngtdHQtdXBwZXJjYXNlIHZ4LXBsLTEgdngtcHItMSB2eC1tci0yIHZ4LWxoLTNcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIFdpdGhpblxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwid2l0aGluLXZhbHVlIHZ4LWZzLTExIHZ4LXBhcmFncmFwaC10eHRcIlxuICAgICAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiaXRlbT8ucGFyZW50VHJlZT8uam9pbignID4gJylcIlxuICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIlxuICAgICAgICAgICAgICAgICAgZGVsYXk9XCIwXCJcbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJibGFja1wiXG4gICAgICAgICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7eyBpdGVtPy5wYXJlbnRUcmVlPy5qb2luKFwiID4gXCIpIH19XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDwvYXBwLWNzLWNoZWNrYm94PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjY2F0ZWdvcnlMaXN0TG9hZGVyPlxuICAgICAgICAgIDxhcHAtdGFibGUtbG9hZGVyPjwvYXBwLXRhYmxlLWxvYWRlcj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIFxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8bmctdGVtcGxhdGUgI2RlZmF1bHRUZW1wbGF0ZT5cbiAgICA8ZGl2IGNsYXNzPVwibGlzdC1uby1kYXRhLWNvbnRhaW5lclwiPlxuICAgICAgPGFwcC1uby1kYXRhXG4gICAgICAgIFtub0RhdGFJbWFnZV09XCJcbiAgICAgICAgICAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L3NlYXJjaC1kYXRhLnN2ZydcbiAgICAgICAgXCJcbiAgICAgICAgW25vRGF0YVRleHRdPVwiJ05vIGRhdGEgdG8gZGlzcGxheSdcIlxuICAgICAgPjwvYXBwLW5vLWRhdGE+XG4gICAgPC9kaXY+XG4gIDwvbmctdGVtcGxhdGU+XG48L2Rpdj5cblxuPGFwcC1wb3BvdmVyICNwcm9ncmFtVHlwZVBvcG92ZXI+XG4gIDxkaXYgY2xhc3M9XCJuZXctYWN0aW9uLWxpc3RcIj5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cInByb2dyYW0tdHlwZS10ZXh0IHZ4LWZzLTExIHZ4LWZ3LTUwMCB2eC1ncmF5LTYwIHZ4LWxoLTE2IHZ4LXAtMiB2eC10dC11cHBlcmNhc2VcIlxuICAgID5cbiAgICAgIFByb2dyYW0gVHlwZTpcbiAgICA8L2Rpdj5cbiAgICA8dWwgY2xhc3M9XCJhY3Rpb24taXRlbVwiPlxuICAgICAgPGxpICpuZ0Zvcj1cImxldCBpdGVtIG9mIHByb2dyYW1UeXBlTGlzdFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2hpcC1pdGVtXCI+XG4gICAgICAgICAgPGFwcC1jcy1jaGVja2JveFxuICAgICAgICAgICAgW3ZhbHVlXT1cIml0ZW0uaWRcIlxuICAgICAgICAgICAgW25nVmFsdWVdPVwic2VsZWN0ZWRQcm9ncmFtVHlwZS5pbmNsdWRlcyhpdGVtLmlkKVwiXG4gICAgICAgICAgICAobmdWYWx1ZUNoYW5nZSk9XCJzZWxlY3RGaWx0ZXIoJGV2ZW50LCBpdGVtKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge3sgaXRlbT8ubmFtZSB9fVxuICAgICAgICAgIDwvYXBwLWNzLWNoZWNrYm94PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbGk+XG4gICAgPC91bD5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cInByb2dyYW0tdHlwZS1ib3R0b20gdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWNlbnRlciB2eC1wdC0zIHZ4LXBiLTNcIlxuICAgID5cbiAgICAgIDxidXR0b25cbiAgICAgICAgKGNsaWNrKT1cInJlc2V0RmlsdGVyKClcIlxuICAgICAgICBjbGFzcz1cInJlc2V0LWJ0biB2eC1mcy0xMSB2eC1mdy01MDAgdngtdHQtdXBwZXJjYXNlIHZ4LXAtMCB2eC1wbC0yIHZ4LXByLTIgdngtbGgtNlwiXG4gICAgICA+XG4gICAgICAgIFJFU0VUXG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgKGNsaWNrKT1cIm9uRmlsdGVyQ2hhbmdlKClcIlxuICAgICAgICBjbGFzcz1cImFwcGx5LWJ0biB2eC1mcy0xMSB2eC1mdy01MDAgdngtdHQtdXBwZXJjYXNlIHZ4LXAtMCB2eC1wbC0yIHZ4LXByLTIgdngtbGgtNlwiXG4gICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCJzZWxlY3RlZFByb2dyYW1UeXBlPy5sZW5ndGggPT09IDBcIlxuICAgICAgPlxuICAgICAgICBBUFBMWVxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9hcHAtcG9wb3Zlcj5cbiJdfQ==
@@ -8,11 +8,11 @@ export class TableLoaderComponent {
8
8
  ngOnInit() {
9
9
  }
10
10
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TableLoaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
11
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TableLoaderComponent, selector: "app-table-loader", inputs: { listSize: "listSize" }, ngImport: i0, template: "<div class=\"table\">\n <table class=\"table-loader\">\n <tbody>\n <tr *ngFor=\"let data of listSize\">\n <td class=\"serial\">\n <span class=\"serial\"></span>\n </td>\n <td class=\"name\" width=\"50%\">\n <span class=\"loader\"></span>\n </td>\n <td class=\"action\" width=\"50%\">\n <span class=\"loader\"></span>\n </td>\n </tr>\n </tbody>\n </table>\n</div>", styles: ["@import\"https://cdn.v-comply.com/design-system/css/color/color.css\";.table table.table-loader{width:100%;position:relative;border-collapse:separate;border-spacing:0 .1875rem;border:none;table-layout:auto}.table table.table-loader thead tr th{font-size:.6875rem;padding:.75rem .625rem;background:#f1f1f1;text-transform:uppercase;color:#747576;font-weight:600;line-height:1.0625rem;text-align:left;position:sticky;top:.1875rem;font-weight:400;white-space:nowrap;z-index:2}.table table.table-loader thead tr th:before{height:.3125rem;content:\"\";position:absolute;top:-.1875rem;right:0;left:0;background:#f1f1f1;z-index:1}.table table.table-loader thead tr th:first-child{border-radius:2px 0 0;text-align:center;width:2.75rem}.table table.table-loader thead tr th:last-child{border-radius:0 2px 0 0}.table table.table-loader thead tr th:last-child:before{border-radius:0 2px 0 0}.table table.table-loader tbody tr{margin-bottom:.1875rem;table-layout:auto;position:relative;transition:all .2s ease-in-out}.table table.table-loader tbody tr td{background:#fff;padding:0 .5rem;height:3.125rem;max-width:15.625rem;border:none;width:50%;table-layout:auto}.table table.table-loader tbody tr td.serial{width:2rem}.table table.table-loader tbody tr td span.serial{width:1rem;margin:0;background:#f8f8f8;writing-mode:vertical-lr;color:#747576;font-size:.625rem;display:flex;align-items:center;justify-content:center;height:3.125rem;font-weight:500}.table table.table-loader tbody tr td span.loader{display:block;width:100%;height:.75rem;border-radius:.75rem;background:#f3f3f3}.table table.table-loader tbody tr td.name{width:calc(100% - 31.25rem);padding-left:0}.table table.table-loader tbody tr td:first-child{border-radius:2px 0 0 2px}.table table.table-loader tbody tr td:last-child{text-align:right;border-radius:0 2px 2px 0}.table table.table-loader tbody tr td:last-child .loader{border-radius:.5rem;width:1.5rem;float:right}.table table.table-loader tbody tr:hover{box-shadow:0 0 15px #1e5dd359;z-index:2}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] }); }
11
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TableLoaderComponent, selector: "app-table-loader", inputs: { listSize: "listSize" }, ngImport: i0, template: "<div class=\"table\">\n <table class=\"table-loader\">\n <tbody>\n <tr *ngFor=\"let data of listSize\">\n <td class=\"serial\">\n <span class=\"serial\"></span>\n </td>\n <td class=\"name\" width=\"50%\">\n <span class=\"loader\"></span>\n </td>\n <td class=\"action\" width=\"50%\">\n <span class=\"loader\"></span>\n </td>\n </tr>\n </tbody>\n </table>\n</div>", styles: [".table table.table-loader{width:100%;position:relative;border-collapse:separate;border-spacing:0 .1875rem;border:none;table-layout:auto}.table table.table-loader thead tr th{font-size:.6875rem;padding:.75rem .625rem;background:#f1f1f1;text-transform:uppercase;color:#747576;font-weight:600;line-height:1.0625rem;text-align:left;position:sticky;top:.1875rem;font-weight:400;white-space:nowrap;z-index:2}.table table.table-loader thead tr th:before{height:.3125rem;content:\"\";position:absolute;top:-.1875rem;right:0;left:0;background:#f1f1f1;z-index:1}.table table.table-loader thead tr th:first-child{border-radius:2px 0 0;text-align:center;width:2.75rem}.table table.table-loader thead tr th:last-child{border-radius:0 2px 0 0}.table table.table-loader thead tr th:last-child:before{border-radius:0 2px 0 0}.table table.table-loader tbody tr{margin-bottom:.1875rem;table-layout:auto;position:relative;transition:all .2s ease-in-out}.table table.table-loader tbody tr td{background:#fff;padding:0 .5rem;height:3.125rem;max-width:15.625rem;border:none;width:50%;table-layout:auto}.table table.table-loader tbody tr td.serial{width:2rem}.table table.table-loader tbody tr td span.serial{width:1rem;margin:0;background:#f8f8f8;writing-mode:vertical-lr;color:#747576;font-size:.625rem;display:flex;align-items:center;justify-content:center;height:3.125rem;font-weight:500}.table table.table-loader tbody tr td span.loader{display:block;width:100%;height:.75rem;border-radius:.75rem;background:#f3f3f3}.table table.table-loader tbody tr td.name{width:calc(100% - 31.25rem);padding-left:0}.table table.table-loader tbody tr td:first-child{border-radius:2px 0 0 2px}.table table.table-loader tbody tr td:last-child{text-align:right;border-radius:0 2px 2px 0}.table table.table-loader tbody tr td:last-child .loader{border-radius:.5rem;width:1.5rem;float:right}.table table.table-loader tbody tr:hover{box-shadow:0 0 15px #1e5dd359;z-index:2}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] }); }
12
12
  }
13
13
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TableLoaderComponent, decorators: [{
14
14
  type: Component,
15
- args: [{ selector: 'app-table-loader', template: "<div class=\"table\">\n <table class=\"table-loader\">\n <tbody>\n <tr *ngFor=\"let data of listSize\">\n <td class=\"serial\">\n <span class=\"serial\"></span>\n </td>\n <td class=\"name\" width=\"50%\">\n <span class=\"loader\"></span>\n </td>\n <td class=\"action\" width=\"50%\">\n <span class=\"loader\"></span>\n </td>\n </tr>\n </tbody>\n </table>\n</div>", styles: ["@import\"https://cdn.v-comply.com/design-system/css/color/color.css\";.table table.table-loader{width:100%;position:relative;border-collapse:separate;border-spacing:0 .1875rem;border:none;table-layout:auto}.table table.table-loader thead tr th{font-size:.6875rem;padding:.75rem .625rem;background:#f1f1f1;text-transform:uppercase;color:#747576;font-weight:600;line-height:1.0625rem;text-align:left;position:sticky;top:.1875rem;font-weight:400;white-space:nowrap;z-index:2}.table table.table-loader thead tr th:before{height:.3125rem;content:\"\";position:absolute;top:-.1875rem;right:0;left:0;background:#f1f1f1;z-index:1}.table table.table-loader thead tr th:first-child{border-radius:2px 0 0;text-align:center;width:2.75rem}.table table.table-loader thead tr th:last-child{border-radius:0 2px 0 0}.table table.table-loader thead tr th:last-child:before{border-radius:0 2px 0 0}.table table.table-loader tbody tr{margin-bottom:.1875rem;table-layout:auto;position:relative;transition:all .2s ease-in-out}.table table.table-loader tbody tr td{background:#fff;padding:0 .5rem;height:3.125rem;max-width:15.625rem;border:none;width:50%;table-layout:auto}.table table.table-loader tbody tr td.serial{width:2rem}.table table.table-loader tbody tr td span.serial{width:1rem;margin:0;background:#f8f8f8;writing-mode:vertical-lr;color:#747576;font-size:.625rem;display:flex;align-items:center;justify-content:center;height:3.125rem;font-weight:500}.table table.table-loader tbody tr td span.loader{display:block;width:100%;height:.75rem;border-radius:.75rem;background:#f3f3f3}.table table.table-loader tbody tr td.name{width:calc(100% - 31.25rem);padding-left:0}.table table.table-loader tbody tr td:first-child{border-radius:2px 0 0 2px}.table table.table-loader tbody tr td:last-child{text-align:right;border-radius:0 2px 2px 0}.table table.table-loader tbody tr td:last-child .loader{border-radius:.5rem;width:1.5rem;float:right}.table table.table-loader tbody tr:hover{box-shadow:0 0 15px #1e5dd359;z-index:2}\n"] }]
15
+ args: [{ selector: 'app-table-loader', template: "<div class=\"table\">\n <table class=\"table-loader\">\n <tbody>\n <tr *ngFor=\"let data of listSize\">\n <td class=\"serial\">\n <span class=\"serial\"></span>\n </td>\n <td class=\"name\" width=\"50%\">\n <span class=\"loader\"></span>\n </td>\n <td class=\"action\" width=\"50%\">\n <span class=\"loader\"></span>\n </td>\n </tr>\n </tbody>\n </table>\n</div>", styles: [".table table.table-loader{width:100%;position:relative;border-collapse:separate;border-spacing:0 .1875rem;border:none;table-layout:auto}.table table.table-loader thead tr th{font-size:.6875rem;padding:.75rem .625rem;background:#f1f1f1;text-transform:uppercase;color:#747576;font-weight:600;line-height:1.0625rem;text-align:left;position:sticky;top:.1875rem;font-weight:400;white-space:nowrap;z-index:2}.table table.table-loader thead tr th:before{height:.3125rem;content:\"\";position:absolute;top:-.1875rem;right:0;left:0;background:#f1f1f1;z-index:1}.table table.table-loader thead tr th:first-child{border-radius:2px 0 0;text-align:center;width:2.75rem}.table table.table-loader thead tr th:last-child{border-radius:0 2px 0 0}.table table.table-loader thead tr th:last-child:before{border-radius:0 2px 0 0}.table table.table-loader tbody tr{margin-bottom:.1875rem;table-layout:auto;position:relative;transition:all .2s ease-in-out}.table table.table-loader tbody tr td{background:#fff;padding:0 .5rem;height:3.125rem;max-width:15.625rem;border:none;width:50%;table-layout:auto}.table table.table-loader tbody tr td.serial{width:2rem}.table table.table-loader tbody tr td span.serial{width:1rem;margin:0;background:#f8f8f8;writing-mode:vertical-lr;color:#747576;font-size:.625rem;display:flex;align-items:center;justify-content:center;height:3.125rem;font-weight:500}.table table.table-loader tbody tr td span.loader{display:block;width:100%;height:.75rem;border-radius:.75rem;background:#f3f3f3}.table table.table-loader tbody tr td.name{width:calc(100% - 31.25rem);padding-left:0}.table table.table-loader tbody tr td:first-child{border-radius:2px 0 0 2px}.table table.table-loader tbody tr td:last-child{text-align:right;border-radius:0 2px 2px 0}.table table.table-loader tbody tr td:last-child .loader{border-radius:.5rem;width:1.5rem;float:right}.table table.table-loader tbody tr:hover{box-shadow:0 0 15px #1e5dd359;z-index:2}\n"] }]
16
16
  }], ctorParameters: function () { return []; }, propDecorators: { listSize: [{
17
17
  type: Input
18
18
  }] } });