mapa-library-ui 0.16.1 → 0.16.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/src/lib/components/table/lib/components/table/src/table.component.mjs +11 -4
- package/fesm2015/mapa-library-ui-src-lib-components-table.mjs +10 -3
- package/fesm2015/mapa-library-ui-src-lib-components-table.mjs.map +1 -1
- package/fesm2020/mapa-library-ui-src-lib-components-table.mjs +10 -3
- package/fesm2020/mapa-library-ui-src-lib-components-table.mjs.map +1 -1
- package/mapa-library-ui-0.16.2.tgz +0 -0
- package/package.json +1 -1
- package/src/lib/components/table/lib/components/table/src/table.component.d.ts +1 -0
- package/mapa-library-ui-0.16.1.tgz +0 -0
|
@@ -45,7 +45,9 @@ export class MapaTableComponent {
|
|
|
45
45
|
if (changes["data"]) {
|
|
46
46
|
if (this.dataSource) {
|
|
47
47
|
this.data = changes["data"].currentValue;
|
|
48
|
-
this.dataSource
|
|
48
|
+
this.dataSource = new MatTableDataSource(this.data);
|
|
49
|
+
this.dataSource.sort = this.sort;
|
|
50
|
+
this.displayedColumns = this.columns.map((column) => column.key);
|
|
49
51
|
this.cdr.detectChanges();
|
|
50
52
|
}
|
|
51
53
|
}
|
|
@@ -290,12 +292,17 @@ export class MapaTableComponent {
|
|
|
290
292
|
handleMenu(selected) {
|
|
291
293
|
this.emitRowClick(selected.data, selected.action);
|
|
292
294
|
}
|
|
295
|
+
hasIndividualMenu(row) {
|
|
296
|
+
if (row !== "" && row !== null)
|
|
297
|
+
return true;
|
|
298
|
+
return false;
|
|
299
|
+
}
|
|
293
300
|
}
|
|
294
301
|
MapaTableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MapaTableComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
295
|
-
MapaTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: MapaTableComponent, selector: "mapa-table", inputs: { columns: "columns", data: "data", pageIndex: "pageIndex", pageSize: "pageSize", totalCount: "totalCount", totalPages: "totalPages", checkbox: "checkbox", selection: "selection", actions: "actions", filterControl: "filterControl", groupReport: "groupReport", isGroupReport: "isGroupReport", menuItems: "menuItems", menu: "menu" }, outputs: { rowClick: "rowClick", selectedRows: "selectedRows", onChangePage: "onChangePage" }, viewQueries: [{ propertyName: "trigger", first: true, predicate: MatMenuTrigger, descendants: true }, { propertyName: "paginator", first: true, predicate: MatPaginator, descendants: true, read: true }, { propertyName: "sort", first: true, predicate: MatSort, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<section class=\"mapa-table\">\n <table\n mat-table\n [dataSource]=\"dataSource\"\n matSort\n (matSortChange)=\"sortDataFunction($event)\"\n >\n <ng-container\n *ngFor=\"let column of columns; let isFirst = first\"\n [matColumnDef]=\"column.key\"\n >\n <th\n mat-header-cell\n *matHeaderCellDef\n mat-sort-header\n [disabled]=\"!(column.key !== 'actions' ? column.sort : null)\"\n >\n <div\n [ngTemplateOutlet]=\"tableHeader\"\n [ngTemplateOutletContext]=\"{ selection, column, isFirst, checkbox }\"\n ></div>\n </th>\n <td mat-cell *matCellDef=\"let row\" [style.width]=\"column?.width\">\n <div\n class=\"mapa-table__column\"\n (click)=\"emitRowClick(row, '')\"\n [class.mapa-table__column--center-cell]=\"column?.align === 'center' || isGroupReport && column.key !== 'name'\"\n >\n <ng-container\n *ngIf=\"column.key !== 'actions' && column.key !== 'menu'; else columnActionsOrMenu\"\n >\n <div class=\"mapa-table__content\">\n <div\n *ngIf=\"!isGroupReport\"\n [style.width]=\"column?.width\"\n [class.mapa-table__column--ellipsis]=\"column?.collapse === 'overflow'\"\n [class.mapa-table__column--no-wrap]=\"column?.collapse === 'no-wrap'\"\n [class.mapa-table__column--wrap]=\"column?.collapse === 'wrap'\"\n [ngClass]=\"[hasCustomClass(column, row, column.key) ? getCustomClass(column, row, column.key) : '']\"\n >\n <div\n *ngIf=\"column?.status?.color; else commonColumn\"\n class=\"mapa-table__column--status\"\n [style.backgroundColor]=\"getBackgroundColor(column, row)\"\n >\n <div\n [ngTemplateOutlet]=\"tableContent\"\n [ngTemplateOutletContext]=\"{ selection, column, isFirst, checkbox, row }\"\n ></div>\n </div>\n <ng-template #commonColumn>\n <div\n [ngTemplateOutlet]=\"tableContent\"\n [ngTemplateOutletContext]=\"{ selection, column, isFirst, checkbox, row }\"\n ></div>\n </ng-template>\n </div>\n <div *ngIf=\"isGroupReport\">\n <div [ngClass]=\"getCellClass(column, row)\">\n <ng-container\n *ngIf=\"column.key === 'name' || column.key === 'cpf' || column.key === 'general'; else valueContent\"\n >\n <div *ngIf=\"column.key === 'name'\">\n <div class=\"name\">{{ row.name }}<br /></div>\n <div class=\"cpf\">\n {{row.cpf}}\n </div>\n </div>\n <div *ngIf=\"column.key === 'general'\" class=\"general\">\n {{ row[column.key] | currency:'':'' }}%\n </div>\n </ng-container>\n <ng-template #valueContent>\n {{ getValue(row[column.key]) }}\n </ng-template>\n </div>\n </div>\n </div>\n </ng-container>\n <ng-template #columnActionsOrMenu>\n <div\n class=\"mapa-table__column--actions\"\n *ngIf=\"column.key === 'actions' && actions\"\n >\n <button\n *ngFor=\"let item of actions\"\n (click)=\"handleMenu({data: row, action: item.action})\"\n class=\"mapa-table__column--actions-item\"\n [title]=\"item.text\"\n mat-icon-button\n >\n <mat-icon *ngIf=\"item.icon\">{{item.icon}}</mat-icon>\n <img *ngIf=\"item.image\" [src]=\"item.image\" />\n </button>\n </div>\n <div class=\"mapa-table__column--menu\" *ngIf=\"column.key === 'menu'\">\n <mapa-menu [items]=\"menuItems\" [data]=\"row\" (emitMenu)=\"handleMenu($event)\"></mapa-menu>\n </div>\n </ng-template>\n </div>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr\n mat-row\n *matRowDef=\"let row; columns: displayedColumns;\"\n [ngClass]=\"getRowClass()\"\n ></tr>\n </table>\n\n <section *ngIf=\"!isGroupReport\">\n <mat-paginator\n class=\"mapa-table__paginator-legacy\"\n itemsPerPageLabel=\"Item por p\u00E1gina\"\n appStylePaginatorMv\n [length]=\"totalCount\"\n [pageSize]=\"pageSize\"\n [pageSizeOptions]=\"[5, 10, 25, 100]\"\n (page)=\"changePage($event)\"\n ></mat-paginator>\n </section>\n</section>\n\n<ng-template\n #tableHeader\n let-selection=\"selection\"\n let-column=\"column\"\n let-isFirst=\"isFirst\"\n let-checkbox=\"checkbox\"\n>\n <div class=\"mapa-table__column mapa-table__column--header\">\n <ng-container *ngIf=\"isFirst && checkbox\">\n <mat-checkbox\n *ngIf=\"selection\"\n (change)=\"$event ? toggleAllRows() : null\"\n [checked]=\"selection.hasValue() && isAllSelected()\"\n [indeterminate]=\"selection.hasValue() && !isAllSelected()\"\n (click)=\"$event.stopPropagation()\"\n ></mat-checkbox>\n </ng-container>\n <div\n class=\"mapa-table__label\"\n [ngClass]=\"{ 'label_report': isGroupReport }\"\n >\n {{ column.label }}\n </div>\n <div\n *ngIf=\"column.key !== 'actions' && column.key !== 'menu' && column.sort\"\n >\n <mat-icon>filter_list</mat-icon>\n </div>\n </div>\n</ng-template>\n\n<ng-template\n #tableContent\n let-selection=\"selection\"\n let-column=\"column\"\n let-isFirst=\"isFirst\"\n let-checkbox=\"checkbox\"\n let-row=\"row\"\n>\n <ng-container *ngIf=\"isFirst && checkbox\">\n <mat-checkbox\n (click)=\"$event.stopPropagation()\"\n (change)=\"$event ? selection?.toggle(row) : null; getSelectedValues()\"\n [checked]=\"selection?.isSelected(row)\"\n >\n </mat-checkbox>\n </ng-container>\n <!-- POR FAVOR, N\u00C3O QUEBRE LINHA ENTRE NG-CONTAINER/TEMPLATE E O VALOR CONTE\u00DADO -->\n <ng-container *ngIf=\"isMaskedData(column, row); else statusContent\"\n >{{ getValueAsDate(column, row) | date: column.mask }}</ng-container\n >\n <ng-template #statusContent>\n <ng-container *ngIf=\"column.status; else commonContent\">\n <ng-container *ngIf=\"isBoolean(column, row); else commonStatus\"\n >{{ column.status.label[row[column.key] ? 1 : 0] }}</ng-container\n >\n <ng-template #commonStatus\n >{{ column.status.label[row[column.key]] || '-' }}</ng-template\n >\n </ng-container>\n <ng-template #commonContent>{{ row[column.key] }}</ng-template>\n </ng-template>\n <ng-template #statusContent>\n <ng-template #commonContent>{{ row[column.key] }}</ng-template>\n </ng-template>\n</ng-template>\n", styles: [".mapa-table .mat-table{font-family:SF-Pro;width:100%}.mapa-table .mat-table .mat-checkbox{margin:6px 8px 0 0;padding:0}.mapa-table td.mat-cell{padding:16px 0}.mapa-table .mat-table .mat-row .mat-cell{font-family:SF-Pro;font-size:16px;font-style:normal;font-weight:400;color:#50575e}.mapa-table .row-hover:hover{box-shadow:0 2px 4px #00000021;outline:1px solid rgba(238,238,238,.93);cursor:pointer}.mapa-table .mat-table .mat-header-cell{border:none;border-bottom:1px solid #eee;font-family:SF-Pro;font-size:16px;font-style:normal;font-weight:600;color:#50575e}.mapa-table .mat-mdc-row,.mapa-table .mdc-data-table__content,.mapa-table .mat-mdc-header-cell{--mat-table-row-item-label-text-font: \"SF-Pro\"}.mapa-table .mat-checkbox.mat-accent .mat-checkbox-frame{border-color:#b6b6b6}.mapa-table .mat-checkbox.mat-accent.mat-checkbox-checked .mat-checkbox-frame{border-color:#ea561d}.mapa-table .mat-checkbox.mat-accent .mat-checkbox-background{background-color:transparent}.mapa-table .mat-checkbox.mat-accent.mat-checkbox-checked .mat-checkbox-background{background-color:#ea561d}.mapa-table .mat-mdc-paginator-container{display:flex;justify-content:space-between}.mapa-table ::ng-deep .mat-mdc-paginator-page-size-label{display:none}.mapa-table__paginator-legacy .mat-paginator-container{font-family:SF-Pro!important;justify-content:flex-start}.mapa-table__paginator-legacy .mat-paginator-page-size{margin-right:10vw}.mapa-table__paginator-legacy .custom-paginator-container{justify-content:flex-end}.mapa-table__paginator-legacy .custom-paginator-counter{white-space:nowrap;margin:0 4px 0 10px!important}.mapa-table__paginator-legacy .custom-paginator-page{border-radius:4px;outline:none;border:none;margin:.4em;font-size:14px;min-width:24px;width:auto;min-height:24px;max-height:24px;padding:1px 6px}.mapa-table__paginator-legacy .custom-paginator-page-enabled{color:#50575e;background:transparent;cursor:pointer}.mapa-table__paginator-legacy .custom-paginator-page-enabled:hover{background-color:#dfe3e6}.mapa-table__paginator-legacy .custom-paginator-page-disabled{background-color:#ea561d;color:#fff}.mapa-table__paginator-legacy .custom-paginator-arrow-disabled{color:#dfe3e6}.mapa-table__paginator-legacy .custom-paginator-arrow-enabled{color:#999}.mapa-table{width:100%;white-space:nowrap}.mapa-table__label{margin-top:4px}.mapa-table__column{padding:15px;align-items:center;display:flex}.mapa-table__column--actions{display:flex}.mapa-table__column--actions .mat-icon{color:#ea561d!important}.mapa-table__column--actions-item{display:flex;align-items:center}.mapa-table__column--actions-item img{margin-right:8px}.mapa-table__column--header{width:100%}.mapa-table__column--header .mat-icon{cursor:pointer;position:relative;bottom:-3px;margin:0 7px;font-size:14px;height:14px;width:14px}.mapa-table__column--status{border-radius:4px;padding:4px 8px;margin:auto;text-align:center;width:min-content}.mapa-table__column--ellipsis{display:inline-block;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.mapa-table__column--no-wrap{white-space:nowrap}.mapa-table__column--wrap{white-space:pre-wrap}.mapa-table__column--center-cell{justify-content:center}.mapa-table .mat-sort-header-arrow{color:transparent}.mapa-table .mat-sort-header-content{width:100%}.mapa-table .mat-cell,.mapa-table .mat-header-cell{padding:0 10px!important}.mapa-table .mat-table{width:100%;overflow-x:auto}.mapa-table .classification{width:40px;height:40px;border-radius:24px;display:flex;justify-content:center;align-items:center}.mapa-table .roundCell{border-radius:10px}.mapa-table .general{border-radius:24px;border:1px solid #dcdcde;display:flex;justify-content:center;align-items:center;width:48px;height:48px}.mapa-table .name{color:#181818;text-align:left;font-family:SF-Pro;font-size:14px;font-style:normal;font-weight:400;line-height:20px}.mapa-table .cpf{color:var(--Grey-Grey-30, #8c8f94);text-align:left;font-family:SF-Pro;font-size:12px;font-style:normal;font-weight:400;line-height:16px}.mapa-table .label_report{color:#181818;text-align:center;font-family:SF-Pro;font-size:12px;font-style:normal;font-weight:400;line-height:16px}\n", ".classification-1{background-color:#073e92;color:#fff}.classification-2{background-color:#0e6ece;color:#fff}.classification-3{background-color:#2d9ced;color:#000}.classification-4{background-color:#68ceee;color:#000}.classification-5{background-color:#96f2ee;color:#000}.classification-6{background-color:#f598a7;color:#000}.classification-7{background-color:#f56580;color:#000}.classification-8{background-color:#f4284e;color:#fff}.classification-9{background-color:#c11c2f;color:#fff}.small-dot{width:12px;height:12px;border-radius:12px;padding:0;margin:0}.dot{width:16px;height:16px;border-radius:16px;padding:0;margin:0}.indicator{display:flex;padding:2px 4px 2px 16px;justify-content:space-between;align-items:center;border-radius:8px;font-family:SF-Pro;font-size:16px;font-style:normal;font-weight:400}.display-S{font-family:SF-Pro;font-size:20px;font-style:normal;font-weight:400}.display-L{font-family:SF-Pro;font-size:32px;font-style:normal;font-weight:400}.display-XG{font-family:SF-Pro;font-size:48px;font-style:normal;font-weight:400}*{transition:opacity .4s ease-out,max-height .4s ease-out}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.MapaMenuComponent, selector: "mapa-menu", inputs: ["items", "data"], outputs: ["emitMenu"] }, { kind: "component", type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i4.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i6.MatPaginator, selector: "mat-paginator", inputs: ["disabled"], exportAs: ["matPaginator"] }, { kind: "component", type: i7.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i7.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i7.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i7.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { kind: "directive", type: i7.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i7.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i7.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i7.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i7.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i7.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "directive", type: i8.MatSort, selector: "[matSort]", inputs: ["matSortDisabled", "matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i8.MatSortHeader, selector: "[mat-sort-header]", inputs: ["disabled", "mat-sort-header", "arrowPosition", "start", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "directive", type: i9.PaginatorLegacyDirective, selector: "[appStylePaginatorMv]" }, { kind: "pipe", type: i1.CurrencyPipe, name: "currency" }, { kind: "pipe", type: i1.DatePipe, name: "date" }], encapsulation: i0.ViewEncapsulation.None });
|
|
302
|
+
MapaTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: MapaTableComponent, selector: "mapa-table", inputs: { columns: "columns", data: "data", pageIndex: "pageIndex", pageSize: "pageSize", totalCount: "totalCount", totalPages: "totalPages", checkbox: "checkbox", selection: "selection", actions: "actions", filterControl: "filterControl", groupReport: "groupReport", isGroupReport: "isGroupReport", menuItems: "menuItems", menu: "menu" }, outputs: { rowClick: "rowClick", selectedRows: "selectedRows", onChangePage: "onChangePage" }, viewQueries: [{ propertyName: "trigger", first: true, predicate: MatMenuTrigger, descendants: true }, { propertyName: "paginator", first: true, predicate: MatPaginator, descendants: true, read: true }, { propertyName: "sort", first: true, predicate: MatSort, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<section class=\"mapa-table\">\n <table\n mat-table\n [dataSource]=\"dataSource\"\n matSort\n (matSortChange)=\"sortDataFunction($event)\"\n >\n <ng-container\n *ngFor=\"let column of columns; let isFirst = first\"\n [matColumnDef]=\"column.key\"\n >\n <th\n mat-header-cell\n *matHeaderCellDef\n mat-sort-header\n [disabled]=\"!(column.key !== 'actions' ? column.sort : null)\"\n >\n <div\n [ngTemplateOutlet]=\"tableHeader\"\n [ngTemplateOutletContext]=\"{ selection, column, isFirst, checkbox }\"\n ></div>\n </th>\n <td mat-cell *matCellDef=\"let row\" [style.width]=\"column?.width\">\n <div\n class=\"mapa-table__column\"\n (click)=\"emitRowClick(row, '')\"\n [class.mapa-table__column--center-cell]=\"column?.align === 'center' || isGroupReport && column.key !== 'name'\"\n >\n <ng-container\n *ngIf=\"column.key !== 'actions' && column.key !== 'menu'; else columnActionsOrMenu\"\n >\n <div class=\"mapa-table__content\">\n <div\n *ngIf=\"!isGroupReport\"\n [style.width]=\"column?.width\"\n [class.mapa-table__column--ellipsis]=\"column?.collapse === 'overflow'\"\n [class.mapa-table__column--no-wrap]=\"column?.collapse === 'no-wrap'\"\n [class.mapa-table__column--wrap]=\"column?.collapse === 'wrap'\"\n [ngClass]=\"[hasCustomClass(column, row, column.key) ? getCustomClass(column, row, column.key) : '']\"\n >\n <div\n *ngIf=\"column?.status?.color; else commonColumn\"\n class=\"mapa-table__column--status\"\n [style.backgroundColor]=\"getBackgroundColor(column, row)\"\n >\n <div\n [ngTemplateOutlet]=\"tableContent\"\n [ngTemplateOutletContext]=\"{ selection, column, isFirst, checkbox, row }\"\n ></div>\n </div>\n <ng-template #commonColumn>\n <div\n [ngTemplateOutlet]=\"tableContent\"\n [ngTemplateOutletContext]=\"{ selection, column, isFirst, checkbox, row }\"\n ></div>\n </ng-template>\n </div>\n <div *ngIf=\"isGroupReport\">\n <div [ngClass]=\"getCellClass(column, row)\">\n <ng-container\n *ngIf=\"column.key === 'name' || column.key === 'cpf' || column.key === 'general'; else valueContent\"\n >\n <div *ngIf=\"column.key === 'name'\">\n <div class=\"name\">{{ row.name }}<br /></div>\n <div class=\"cpf\">\n {{row.cpf}}\n </div>\n </div>\n <div *ngIf=\"column.key === 'general'\" class=\"general\">\n {{ row[column.key] | currency:'':'' }}%\n </div>\n </ng-container>\n <ng-template #valueContent>\n {{ getValue(row[column.key]) }}\n </ng-template>\n </div>\n </div>\n </div>\n </ng-container>\n <ng-template #columnActionsOrMenu>\n <div\n class=\"mapa-table__column--actions\"\n *ngIf=\"column.key === 'actions' && actions\"\n >\n <button\n *ngFor=\"let item of actions\"\n (click)=\"handleMenu({data: row, action: item.action})\"\n class=\"mapa-table__column--actions-item\"\n [title]=\"item.text\"\n mat-icon-button\n >\n <mat-icon *ngIf=\"item.icon\">{{item.icon}}</mat-icon>\n <img *ngIf=\"item.image\" [src]=\"item.image\" />\n </button>\n </div>\n <div class=\"mapa-table__column--menu\" *ngIf=\"column.key === 'menu'\">\n <mapa-menu\n *ngIf=\"hasIndividualMenu(row['menu']); else generalMenu\"\n [items]=\"row['menu']\"\n [data]=\"row\"\n (emitMenu)=\"handleMenu($event)\"\n ></mapa-menu>\n <ng-template #generalMenu>\n <mapa-menu\n *ngIf=\"menuItems && menuItems.length > 0\"\n [items]=\"menuItems\"\n [data]=\"row\"\n (emitMenu)=\"handleMenu($event)\"\n ></mapa-menu>\n </ng-template>\n </div>\n </ng-template>\n </div>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr\n mat-row\n *matRowDef=\"let row; columns: displayedColumns;\"\n [ngClass]=\"getRowClass()\"\n ></tr>\n </table>\n\n <section *ngIf=\"!isGroupReport\">\n <mat-paginator\n class=\"mapa-table__paginator-legacy\"\n itemsPerPageLabel=\"Item por p\u00E1gina\"\n appStylePaginatorMv\n [length]=\"totalCount\"\n [pageSize]=\"pageSize\"\n [pageSizeOptions]=\"[5, 10, 25, 100]\"\n (page)=\"changePage($event)\"\n ></mat-paginator>\n </section>\n</section>\n\n<ng-template\n #tableHeader\n let-selection=\"selection\"\n let-column=\"column\"\n let-isFirst=\"isFirst\"\n let-checkbox=\"checkbox\"\n>\n <div class=\"mapa-table__column mapa-table__column--header\">\n <ng-container *ngIf=\"isFirst && checkbox\">\n <mat-checkbox\n *ngIf=\"selection\"\n (change)=\"$event ? toggleAllRows() : null\"\n [checked]=\"selection.hasValue() && isAllSelected()\"\n [indeterminate]=\"selection.hasValue() && !isAllSelected()\"\n (click)=\"$event.stopPropagation()\"\n ></mat-checkbox>\n </ng-container>\n <div\n class=\"mapa-table__label\"\n [ngClass]=\"{ 'label_report': isGroupReport }\"\n >\n {{ column.label }}\n </div>\n <div\n *ngIf=\"column.key !== 'actions' && column.key !== 'menu' && column.sort\"\n >\n <mat-icon>filter_list</mat-icon>\n </div>\n </div>\n</ng-template>\n\n<ng-template\n #tableContent\n let-selection=\"selection\"\n let-column=\"column\"\n let-isFirst=\"isFirst\"\n let-checkbox=\"checkbox\"\n let-row=\"row\"\n>\n <ng-container *ngIf=\"isFirst && checkbox\">\n <mat-checkbox\n (click)=\"$event.stopPropagation()\"\n (change)=\"$event ? selection?.toggle(row) : null; getSelectedValues()\"\n [checked]=\"selection?.isSelected(row)\"\n >\n </mat-checkbox>\n </ng-container>\n <!-- POR FAVOR, N\u00C3O QUEBRE LINHA ENTRE NG-CONTAINER/TEMPLATE E O VALOR CONTE\u00DADO -->\n <ng-container *ngIf=\"isMaskedData(column, row); else statusContent\"\n >{{ getValueAsDate(column, row) | date: column.mask }}</ng-container\n >\n <ng-template #statusContent>\n <ng-container *ngIf=\"column.status; else commonContent\">\n <ng-container *ngIf=\"isBoolean(column, row); else commonStatus\"\n >{{ column.status.label[row[column.key] ? 1 : 0] }}</ng-container\n >\n <ng-template #commonStatus\n >{{ column.status.label[row[column.key]] || '-' }}</ng-template\n >\n </ng-container>\n <ng-template #commonContent>{{ row[column.key] }}</ng-template>\n </ng-template>\n <ng-template #statusContent>\n <ng-template #commonContent>{{ row[column.key] }}</ng-template>\n </ng-template>\n</ng-template>\n", styles: [".mapa-table .mat-table{font-family:SF-Pro;width:100%}.mapa-table .mat-table .mat-checkbox{margin:6px 8px 0 0;padding:0}.mapa-table td.mat-cell{padding:16px 0}.mapa-table .mat-table .mat-row .mat-cell{font-family:SF-Pro;font-size:16px;font-style:normal;font-weight:400;color:#50575e}.mapa-table .row-hover:hover{box-shadow:0 2px 4px #00000021;outline:1px solid rgba(238,238,238,.93);cursor:pointer}.mapa-table .mat-table .mat-header-cell{border:none;border-bottom:1px solid #eee;font-family:SF-Pro;font-size:16px;font-style:normal;font-weight:600;color:#50575e}.mapa-table .mat-mdc-row,.mapa-table .mdc-data-table__content,.mapa-table .mat-mdc-header-cell{--mat-table-row-item-label-text-font: \"SF-Pro\"}.mapa-table .mat-checkbox.mat-accent .mat-checkbox-frame{border-color:#b6b6b6}.mapa-table .mat-checkbox.mat-accent.mat-checkbox-checked .mat-checkbox-frame{border-color:#ea561d}.mapa-table .mat-checkbox.mat-accent .mat-checkbox-background{background-color:transparent}.mapa-table .mat-checkbox.mat-accent.mat-checkbox-checked .mat-checkbox-background{background-color:#ea561d}.mapa-table .mat-mdc-paginator-container{display:flex;justify-content:space-between}.mapa-table ::ng-deep .mat-mdc-paginator-page-size-label{display:none}.mapa-table__paginator-legacy .mat-paginator-container{font-family:SF-Pro!important;justify-content:flex-start}.mapa-table__paginator-legacy .mat-paginator-page-size{margin-right:10vw}.mapa-table__paginator-legacy .custom-paginator-container{justify-content:flex-end}.mapa-table__paginator-legacy .custom-paginator-counter{white-space:nowrap;margin:0 4px 0 10px!important}.mapa-table__paginator-legacy .custom-paginator-page{border-radius:4px;outline:none;border:none;margin:.4em;font-size:14px;min-width:24px;width:auto;min-height:24px;max-height:24px;padding:1px 6px}.mapa-table__paginator-legacy .custom-paginator-page-enabled{color:#50575e;background:transparent;cursor:pointer}.mapa-table__paginator-legacy .custom-paginator-page-enabled:hover{background-color:#dfe3e6}.mapa-table__paginator-legacy .custom-paginator-page-disabled{background-color:#ea561d;color:#fff}.mapa-table__paginator-legacy .custom-paginator-arrow-disabled{color:#dfe3e6}.mapa-table__paginator-legacy .custom-paginator-arrow-enabled{color:#999}.mapa-table{width:100%;white-space:nowrap}.mapa-table__label{margin-top:4px}.mapa-table__column{padding:15px;align-items:center;display:flex}.mapa-table__column--actions{display:flex}.mapa-table__column--actions .mat-icon{color:#ea561d!important}.mapa-table__column--actions-item{display:flex;align-items:center}.mapa-table__column--actions-item img{margin-right:8px}.mapa-table__column--header{width:100%}.mapa-table__column--header .mat-icon{cursor:pointer;position:relative;bottom:-3px;margin:0 7px;font-size:14px;height:14px;width:14px}.mapa-table__column--status{border-radius:4px;padding:4px 8px;margin:auto;text-align:center;width:min-content}.mapa-table__column--ellipsis{display:inline-block;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.mapa-table__column--no-wrap{white-space:nowrap}.mapa-table__column--wrap{white-space:pre-wrap}.mapa-table__column--center-cell{justify-content:center}.mapa-table .mat-sort-header-arrow{color:transparent}.mapa-table .mat-sort-header-content{width:100%}.mapa-table .mat-cell,.mapa-table .mat-header-cell{padding:0 10px!important}.mapa-table .mat-table{width:100%;overflow-x:auto}.mapa-table .classification{width:40px;height:40px;border-radius:24px;display:flex;justify-content:center;align-items:center}.mapa-table .roundCell{border-radius:10px}.mapa-table .general{border-radius:24px;border:1px solid #dcdcde;display:flex;justify-content:center;align-items:center;width:48px;height:48px}.mapa-table .name{color:#181818;text-align:left;font-family:SF-Pro;font-size:14px;font-style:normal;font-weight:400;line-height:20px}.mapa-table .cpf{color:var(--Grey-Grey-30, #8c8f94);text-align:left;font-family:SF-Pro;font-size:12px;font-style:normal;font-weight:400;line-height:16px}.mapa-table .label_report{color:#181818;text-align:center;font-family:SF-Pro;font-size:12px;font-style:normal;font-weight:400;line-height:16px}\n", ".classification-1{background-color:#073e92;color:#fff}.classification-2{background-color:#0e6ece;color:#fff}.classification-3{background-color:#2d9ced;color:#000}.classification-4{background-color:#68ceee;color:#000}.classification-5{background-color:#96f2ee;color:#000}.classification-6{background-color:#f598a7;color:#000}.classification-7{background-color:#f56580;color:#000}.classification-8{background-color:#f4284e;color:#fff}.classification-9{background-color:#c11c2f;color:#fff}.small-dot{width:12px;height:12px;border-radius:12px;padding:0;margin:0}.dot{width:16px;height:16px;border-radius:16px;padding:0;margin:0}.indicator{display:flex;padding:2px 4px 2px 16px;justify-content:space-between;align-items:center;border-radius:8px;font-family:SF-Pro;font-size:16px;font-style:normal;font-weight:400}.display-S{font-family:SF-Pro;font-size:20px;font-style:normal;font-weight:400}.display-L{font-family:SF-Pro;font-size:32px;font-style:normal;font-weight:400}.display-XG{font-family:SF-Pro;font-size:48px;font-style:normal;font-weight:400}*{transition:opacity .4s ease-out,max-height .4s ease-out}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.MapaMenuComponent, selector: "mapa-menu", inputs: ["items", "data"], outputs: ["emitMenu"] }, { kind: "component", type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i4.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i6.MatPaginator, selector: "mat-paginator", inputs: ["disabled"], exportAs: ["matPaginator"] }, { kind: "component", type: i7.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i7.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i7.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i7.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { kind: "directive", type: i7.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i7.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i7.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i7.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i7.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i7.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "directive", type: i8.MatSort, selector: "[matSort]", inputs: ["matSortDisabled", "matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i8.MatSortHeader, selector: "[mat-sort-header]", inputs: ["disabled", "mat-sort-header", "arrowPosition", "start", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "directive", type: i9.PaginatorLegacyDirective, selector: "[appStylePaginatorMv]" }, { kind: "pipe", type: i1.CurrencyPipe, name: "currency" }, { kind: "pipe", type: i1.DatePipe, name: "date" }], encapsulation: i0.ViewEncapsulation.None });
|
|
296
303
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MapaTableComponent, decorators: [{
|
|
297
304
|
type: Component,
|
|
298
|
-
args: [{ selector: "mapa-table", encapsulation: ViewEncapsulation.None, template: "<section class=\"mapa-table\">\n <table\n mat-table\n [dataSource]=\"dataSource\"\n matSort\n (matSortChange)=\"sortDataFunction($event)\"\n >\n <ng-container\n *ngFor=\"let column of columns; let isFirst = first\"\n [matColumnDef]=\"column.key\"\n >\n <th\n mat-header-cell\n *matHeaderCellDef\n mat-sort-header\n [disabled]=\"!(column.key !== 'actions' ? column.sort : null)\"\n >\n <div\n [ngTemplateOutlet]=\"tableHeader\"\n [ngTemplateOutletContext]=\"{ selection, column, isFirst, checkbox }\"\n ></div>\n </th>\n <td mat-cell *matCellDef=\"let row\" [style.width]=\"column?.width\">\n <div\n class=\"mapa-table__column\"\n (click)=\"emitRowClick(row, '')\"\n [class.mapa-table__column--center-cell]=\"column?.align === 'center' || isGroupReport && column.key !== 'name'\"\n >\n <ng-container\n *ngIf=\"column.key !== 'actions' && column.key !== 'menu'; else columnActionsOrMenu\"\n >\n <div class=\"mapa-table__content\">\n <div\n *ngIf=\"!isGroupReport\"\n [style.width]=\"column?.width\"\n [class.mapa-table__column--ellipsis]=\"column?.collapse === 'overflow'\"\n [class.mapa-table__column--no-wrap]=\"column?.collapse === 'no-wrap'\"\n [class.mapa-table__column--wrap]=\"column?.collapse === 'wrap'\"\n [ngClass]=\"[hasCustomClass(column, row, column.key) ? getCustomClass(column, row, column.key) : '']\"\n >\n <div\n *ngIf=\"column?.status?.color; else commonColumn\"\n class=\"mapa-table__column--status\"\n [style.backgroundColor]=\"getBackgroundColor(column, row)\"\n >\n <div\n [ngTemplateOutlet]=\"tableContent\"\n [ngTemplateOutletContext]=\"{ selection, column, isFirst, checkbox, row }\"\n ></div>\n </div>\n <ng-template #commonColumn>\n <div\n [ngTemplateOutlet]=\"tableContent\"\n [ngTemplateOutletContext]=\"{ selection, column, isFirst, checkbox, row }\"\n ></div>\n </ng-template>\n </div>\n <div *ngIf=\"isGroupReport\">\n <div [ngClass]=\"getCellClass(column, row)\">\n <ng-container\n *ngIf=\"column.key === 'name' || column.key === 'cpf' || column.key === 'general'; else valueContent\"\n >\n <div *ngIf=\"column.key === 'name'\">\n <div class=\"name\">{{ row.name }}<br /></div>\n <div class=\"cpf\">\n {{row.cpf}}\n </div>\n </div>\n <div *ngIf=\"column.key === 'general'\" class=\"general\">\n {{ row[column.key] | currency:'':'' }}%\n </div>\n </ng-container>\n <ng-template #valueContent>\n {{ getValue(row[column.key]) }}\n </ng-template>\n </div>\n </div>\n </div>\n </ng-container>\n <ng-template #columnActionsOrMenu>\n <div\n class=\"mapa-table__column--actions\"\n *ngIf=\"column.key === 'actions' && actions\"\n >\n <button\n *ngFor=\"let item of actions\"\n (click)=\"handleMenu({data: row, action: item.action})\"\n class=\"mapa-table__column--actions-item\"\n [title]=\"item.text\"\n mat-icon-button\n >\n <mat-icon *ngIf=\"item.icon\">{{item.icon}}</mat-icon>\n <img *ngIf=\"item.image\" [src]=\"item.image\" />\n </button>\n </div>\n <div class=\"mapa-table__column--menu\" *ngIf=\"column.key === 'menu'\">\n <mapa-menu [items]=\"menuItems\" [data]=\"row\" (emitMenu)=\"handleMenu($event)\"></mapa-menu>\n </div>\n </ng-template>\n </div>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr\n mat-row\n *matRowDef=\"let row; columns: displayedColumns;\"\n [ngClass]=\"getRowClass()\"\n ></tr>\n </table>\n\n <section *ngIf=\"!isGroupReport\">\n <mat-paginator\n class=\"mapa-table__paginator-legacy\"\n itemsPerPageLabel=\"Item por p\u00E1gina\"\n appStylePaginatorMv\n [length]=\"totalCount\"\n [pageSize]=\"pageSize\"\n [pageSizeOptions]=\"[5, 10, 25, 100]\"\n (page)=\"changePage($event)\"\n ></mat-paginator>\n </section>\n</section>\n\n<ng-template\n #tableHeader\n let-selection=\"selection\"\n let-column=\"column\"\n let-isFirst=\"isFirst\"\n let-checkbox=\"checkbox\"\n>\n <div class=\"mapa-table__column mapa-table__column--header\">\n <ng-container *ngIf=\"isFirst && checkbox\">\n <mat-checkbox\n *ngIf=\"selection\"\n (change)=\"$event ? toggleAllRows() : null\"\n [checked]=\"selection.hasValue() && isAllSelected()\"\n [indeterminate]=\"selection.hasValue() && !isAllSelected()\"\n (click)=\"$event.stopPropagation()\"\n ></mat-checkbox>\n </ng-container>\n <div\n class=\"mapa-table__label\"\n [ngClass]=\"{ 'label_report': isGroupReport }\"\n >\n {{ column.label }}\n </div>\n <div\n *ngIf=\"column.key !== 'actions' && column.key !== 'menu' && column.sort\"\n >\n <mat-icon>filter_list</mat-icon>\n </div>\n </div>\n</ng-template>\n\n<ng-template\n #tableContent\n let-selection=\"selection\"\n let-column=\"column\"\n let-isFirst=\"isFirst\"\n let-checkbox=\"checkbox\"\n let-row=\"row\"\n>\n <ng-container *ngIf=\"isFirst && checkbox\">\n <mat-checkbox\n (click)=\"$event.stopPropagation()\"\n (change)=\"$event ? selection?.toggle(row) : null; getSelectedValues()\"\n [checked]=\"selection?.isSelected(row)\"\n >\n </mat-checkbox>\n </ng-container>\n <!-- POR FAVOR, N\u00C3O QUEBRE LINHA ENTRE NG-CONTAINER/TEMPLATE E O VALOR CONTE\u00DADO -->\n <ng-container *ngIf=\"isMaskedData(column, row); else statusContent\"\n >{{ getValueAsDate(column, row) | date: column.mask }}</ng-container\n >\n <ng-template #statusContent>\n <ng-container *ngIf=\"column.status; else commonContent\">\n <ng-container *ngIf=\"isBoolean(column, row); else commonStatus\"\n >{{ column.status.label[row[column.key] ? 1 : 0] }}</ng-container\n >\n <ng-template #commonStatus\n >{{ column.status.label[row[column.key]] || '-' }}</ng-template\n >\n </ng-container>\n <ng-template #commonContent>{{ row[column.key] }}</ng-template>\n </ng-template>\n <ng-template #statusContent>\n <ng-template #commonContent>{{ row[column.key] }}</ng-template>\n </ng-template>\n</ng-template>\n", styles: [".mapa-table .mat-table{font-family:SF-Pro;width:100%}.mapa-table .mat-table .mat-checkbox{margin:6px 8px 0 0;padding:0}.mapa-table td.mat-cell{padding:16px 0}.mapa-table .mat-table .mat-row .mat-cell{font-family:SF-Pro;font-size:16px;font-style:normal;font-weight:400;color:#50575e}.mapa-table .row-hover:hover{box-shadow:0 2px 4px #00000021;outline:1px solid rgba(238,238,238,.93);cursor:pointer}.mapa-table .mat-table .mat-header-cell{border:none;border-bottom:1px solid #eee;font-family:SF-Pro;font-size:16px;font-style:normal;font-weight:600;color:#50575e}.mapa-table .mat-mdc-row,.mapa-table .mdc-data-table__content,.mapa-table .mat-mdc-header-cell{--mat-table-row-item-label-text-font: \"SF-Pro\"}.mapa-table .mat-checkbox.mat-accent .mat-checkbox-frame{border-color:#b6b6b6}.mapa-table .mat-checkbox.mat-accent.mat-checkbox-checked .mat-checkbox-frame{border-color:#ea561d}.mapa-table .mat-checkbox.mat-accent .mat-checkbox-background{background-color:transparent}.mapa-table .mat-checkbox.mat-accent.mat-checkbox-checked .mat-checkbox-background{background-color:#ea561d}.mapa-table .mat-mdc-paginator-container{display:flex;justify-content:space-between}.mapa-table ::ng-deep .mat-mdc-paginator-page-size-label{display:none}.mapa-table__paginator-legacy .mat-paginator-container{font-family:SF-Pro!important;justify-content:flex-start}.mapa-table__paginator-legacy .mat-paginator-page-size{margin-right:10vw}.mapa-table__paginator-legacy .custom-paginator-container{justify-content:flex-end}.mapa-table__paginator-legacy .custom-paginator-counter{white-space:nowrap;margin:0 4px 0 10px!important}.mapa-table__paginator-legacy .custom-paginator-page{border-radius:4px;outline:none;border:none;margin:.4em;font-size:14px;min-width:24px;width:auto;min-height:24px;max-height:24px;padding:1px 6px}.mapa-table__paginator-legacy .custom-paginator-page-enabled{color:#50575e;background:transparent;cursor:pointer}.mapa-table__paginator-legacy .custom-paginator-page-enabled:hover{background-color:#dfe3e6}.mapa-table__paginator-legacy .custom-paginator-page-disabled{background-color:#ea561d;color:#fff}.mapa-table__paginator-legacy .custom-paginator-arrow-disabled{color:#dfe3e6}.mapa-table__paginator-legacy .custom-paginator-arrow-enabled{color:#999}.mapa-table{width:100%;white-space:nowrap}.mapa-table__label{margin-top:4px}.mapa-table__column{padding:15px;align-items:center;display:flex}.mapa-table__column--actions{display:flex}.mapa-table__column--actions .mat-icon{color:#ea561d!important}.mapa-table__column--actions-item{display:flex;align-items:center}.mapa-table__column--actions-item img{margin-right:8px}.mapa-table__column--header{width:100%}.mapa-table__column--header .mat-icon{cursor:pointer;position:relative;bottom:-3px;margin:0 7px;font-size:14px;height:14px;width:14px}.mapa-table__column--status{border-radius:4px;padding:4px 8px;margin:auto;text-align:center;width:min-content}.mapa-table__column--ellipsis{display:inline-block;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.mapa-table__column--no-wrap{white-space:nowrap}.mapa-table__column--wrap{white-space:pre-wrap}.mapa-table__column--center-cell{justify-content:center}.mapa-table .mat-sort-header-arrow{color:transparent}.mapa-table .mat-sort-header-content{width:100%}.mapa-table .mat-cell,.mapa-table .mat-header-cell{padding:0 10px!important}.mapa-table .mat-table{width:100%;overflow-x:auto}.mapa-table .classification{width:40px;height:40px;border-radius:24px;display:flex;justify-content:center;align-items:center}.mapa-table .roundCell{border-radius:10px}.mapa-table .general{border-radius:24px;border:1px solid #dcdcde;display:flex;justify-content:center;align-items:center;width:48px;height:48px}.mapa-table .name{color:#181818;text-align:left;font-family:SF-Pro;font-size:14px;font-style:normal;font-weight:400;line-height:20px}.mapa-table .cpf{color:var(--Grey-Grey-30, #8c8f94);text-align:left;font-family:SF-Pro;font-size:12px;font-style:normal;font-weight:400;line-height:16px}.mapa-table .label_report{color:#181818;text-align:center;font-family:SF-Pro;font-size:12px;font-style:normal;font-weight:400;line-height:16px}\n", ".classification-1{background-color:#073e92;color:#fff}.classification-2{background-color:#0e6ece;color:#fff}.classification-3{background-color:#2d9ced;color:#000}.classification-4{background-color:#68ceee;color:#000}.classification-5{background-color:#96f2ee;color:#000}.classification-6{background-color:#f598a7;color:#000}.classification-7{background-color:#f56580;color:#000}.classification-8{background-color:#f4284e;color:#fff}.classification-9{background-color:#c11c2f;color:#fff}.small-dot{width:12px;height:12px;border-radius:12px;padding:0;margin:0}.dot{width:16px;height:16px;border-radius:16px;padding:0;margin:0}.indicator{display:flex;padding:2px 4px 2px 16px;justify-content:space-between;align-items:center;border-radius:8px;font-family:SF-Pro;font-size:16px;font-style:normal;font-weight:400}.display-S{font-family:SF-Pro;font-size:20px;font-style:normal;font-weight:400}.display-L{font-family:SF-Pro;font-size:32px;font-style:normal;font-weight:400}.display-XG{font-family:SF-Pro;font-size:48px;font-style:normal;font-weight:400}*{transition:opacity .4s ease-out,max-height .4s ease-out}\n"] }]
|
|
305
|
+
args: [{ selector: "mapa-table", encapsulation: ViewEncapsulation.None, template: "<section class=\"mapa-table\">\n <table\n mat-table\n [dataSource]=\"dataSource\"\n matSort\n (matSortChange)=\"sortDataFunction($event)\"\n >\n <ng-container\n *ngFor=\"let column of columns; let isFirst = first\"\n [matColumnDef]=\"column.key\"\n >\n <th\n mat-header-cell\n *matHeaderCellDef\n mat-sort-header\n [disabled]=\"!(column.key !== 'actions' ? column.sort : null)\"\n >\n <div\n [ngTemplateOutlet]=\"tableHeader\"\n [ngTemplateOutletContext]=\"{ selection, column, isFirst, checkbox }\"\n ></div>\n </th>\n <td mat-cell *matCellDef=\"let row\" [style.width]=\"column?.width\">\n <div\n class=\"mapa-table__column\"\n (click)=\"emitRowClick(row, '')\"\n [class.mapa-table__column--center-cell]=\"column?.align === 'center' || isGroupReport && column.key !== 'name'\"\n >\n <ng-container\n *ngIf=\"column.key !== 'actions' && column.key !== 'menu'; else columnActionsOrMenu\"\n >\n <div class=\"mapa-table__content\">\n <div\n *ngIf=\"!isGroupReport\"\n [style.width]=\"column?.width\"\n [class.mapa-table__column--ellipsis]=\"column?.collapse === 'overflow'\"\n [class.mapa-table__column--no-wrap]=\"column?.collapse === 'no-wrap'\"\n [class.mapa-table__column--wrap]=\"column?.collapse === 'wrap'\"\n [ngClass]=\"[hasCustomClass(column, row, column.key) ? getCustomClass(column, row, column.key) : '']\"\n >\n <div\n *ngIf=\"column?.status?.color; else commonColumn\"\n class=\"mapa-table__column--status\"\n [style.backgroundColor]=\"getBackgroundColor(column, row)\"\n >\n <div\n [ngTemplateOutlet]=\"tableContent\"\n [ngTemplateOutletContext]=\"{ selection, column, isFirst, checkbox, row }\"\n ></div>\n </div>\n <ng-template #commonColumn>\n <div\n [ngTemplateOutlet]=\"tableContent\"\n [ngTemplateOutletContext]=\"{ selection, column, isFirst, checkbox, row }\"\n ></div>\n </ng-template>\n </div>\n <div *ngIf=\"isGroupReport\">\n <div [ngClass]=\"getCellClass(column, row)\">\n <ng-container\n *ngIf=\"column.key === 'name' || column.key === 'cpf' || column.key === 'general'; else valueContent\"\n >\n <div *ngIf=\"column.key === 'name'\">\n <div class=\"name\">{{ row.name }}<br /></div>\n <div class=\"cpf\">\n {{row.cpf}}\n </div>\n </div>\n <div *ngIf=\"column.key === 'general'\" class=\"general\">\n {{ row[column.key] | currency:'':'' }}%\n </div>\n </ng-container>\n <ng-template #valueContent>\n {{ getValue(row[column.key]) }}\n </ng-template>\n </div>\n </div>\n </div>\n </ng-container>\n <ng-template #columnActionsOrMenu>\n <div\n class=\"mapa-table__column--actions\"\n *ngIf=\"column.key === 'actions' && actions\"\n >\n <button\n *ngFor=\"let item of actions\"\n (click)=\"handleMenu({data: row, action: item.action})\"\n class=\"mapa-table__column--actions-item\"\n [title]=\"item.text\"\n mat-icon-button\n >\n <mat-icon *ngIf=\"item.icon\">{{item.icon}}</mat-icon>\n <img *ngIf=\"item.image\" [src]=\"item.image\" />\n </button>\n </div>\n <div class=\"mapa-table__column--menu\" *ngIf=\"column.key === 'menu'\">\n <mapa-menu\n *ngIf=\"hasIndividualMenu(row['menu']); else generalMenu\"\n [items]=\"row['menu']\"\n [data]=\"row\"\n (emitMenu)=\"handleMenu($event)\"\n ></mapa-menu>\n <ng-template #generalMenu>\n <mapa-menu\n *ngIf=\"menuItems && menuItems.length > 0\"\n [items]=\"menuItems\"\n [data]=\"row\"\n (emitMenu)=\"handleMenu($event)\"\n ></mapa-menu>\n </ng-template>\n </div>\n </ng-template>\n </div>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr\n mat-row\n *matRowDef=\"let row; columns: displayedColumns;\"\n [ngClass]=\"getRowClass()\"\n ></tr>\n </table>\n\n <section *ngIf=\"!isGroupReport\">\n <mat-paginator\n class=\"mapa-table__paginator-legacy\"\n itemsPerPageLabel=\"Item por p\u00E1gina\"\n appStylePaginatorMv\n [length]=\"totalCount\"\n [pageSize]=\"pageSize\"\n [pageSizeOptions]=\"[5, 10, 25, 100]\"\n (page)=\"changePage($event)\"\n ></mat-paginator>\n </section>\n</section>\n\n<ng-template\n #tableHeader\n let-selection=\"selection\"\n let-column=\"column\"\n let-isFirst=\"isFirst\"\n let-checkbox=\"checkbox\"\n>\n <div class=\"mapa-table__column mapa-table__column--header\">\n <ng-container *ngIf=\"isFirst && checkbox\">\n <mat-checkbox\n *ngIf=\"selection\"\n (change)=\"$event ? toggleAllRows() : null\"\n [checked]=\"selection.hasValue() && isAllSelected()\"\n [indeterminate]=\"selection.hasValue() && !isAllSelected()\"\n (click)=\"$event.stopPropagation()\"\n ></mat-checkbox>\n </ng-container>\n <div\n class=\"mapa-table__label\"\n [ngClass]=\"{ 'label_report': isGroupReport }\"\n >\n {{ column.label }}\n </div>\n <div\n *ngIf=\"column.key !== 'actions' && column.key !== 'menu' && column.sort\"\n >\n <mat-icon>filter_list</mat-icon>\n </div>\n </div>\n</ng-template>\n\n<ng-template\n #tableContent\n let-selection=\"selection\"\n let-column=\"column\"\n let-isFirst=\"isFirst\"\n let-checkbox=\"checkbox\"\n let-row=\"row\"\n>\n <ng-container *ngIf=\"isFirst && checkbox\">\n <mat-checkbox\n (click)=\"$event.stopPropagation()\"\n (change)=\"$event ? selection?.toggle(row) : null; getSelectedValues()\"\n [checked]=\"selection?.isSelected(row)\"\n >\n </mat-checkbox>\n </ng-container>\n <!-- POR FAVOR, N\u00C3O QUEBRE LINHA ENTRE NG-CONTAINER/TEMPLATE E O VALOR CONTE\u00DADO -->\n <ng-container *ngIf=\"isMaskedData(column, row); else statusContent\"\n >{{ getValueAsDate(column, row) | date: column.mask }}</ng-container\n >\n <ng-template #statusContent>\n <ng-container *ngIf=\"column.status; else commonContent\">\n <ng-container *ngIf=\"isBoolean(column, row); else commonStatus\"\n >{{ column.status.label[row[column.key] ? 1 : 0] }}</ng-container\n >\n <ng-template #commonStatus\n >{{ column.status.label[row[column.key]] || '-' }}</ng-template\n >\n </ng-container>\n <ng-template #commonContent>{{ row[column.key] }}</ng-template>\n </ng-template>\n <ng-template #statusContent>\n <ng-template #commonContent>{{ row[column.key] }}</ng-template>\n </ng-template>\n</ng-template>\n", styles: [".mapa-table .mat-table{font-family:SF-Pro;width:100%}.mapa-table .mat-table .mat-checkbox{margin:6px 8px 0 0;padding:0}.mapa-table td.mat-cell{padding:16px 0}.mapa-table .mat-table .mat-row .mat-cell{font-family:SF-Pro;font-size:16px;font-style:normal;font-weight:400;color:#50575e}.mapa-table .row-hover:hover{box-shadow:0 2px 4px #00000021;outline:1px solid rgba(238,238,238,.93);cursor:pointer}.mapa-table .mat-table .mat-header-cell{border:none;border-bottom:1px solid #eee;font-family:SF-Pro;font-size:16px;font-style:normal;font-weight:600;color:#50575e}.mapa-table .mat-mdc-row,.mapa-table .mdc-data-table__content,.mapa-table .mat-mdc-header-cell{--mat-table-row-item-label-text-font: \"SF-Pro\"}.mapa-table .mat-checkbox.mat-accent .mat-checkbox-frame{border-color:#b6b6b6}.mapa-table .mat-checkbox.mat-accent.mat-checkbox-checked .mat-checkbox-frame{border-color:#ea561d}.mapa-table .mat-checkbox.mat-accent .mat-checkbox-background{background-color:transparent}.mapa-table .mat-checkbox.mat-accent.mat-checkbox-checked .mat-checkbox-background{background-color:#ea561d}.mapa-table .mat-mdc-paginator-container{display:flex;justify-content:space-between}.mapa-table ::ng-deep .mat-mdc-paginator-page-size-label{display:none}.mapa-table__paginator-legacy .mat-paginator-container{font-family:SF-Pro!important;justify-content:flex-start}.mapa-table__paginator-legacy .mat-paginator-page-size{margin-right:10vw}.mapa-table__paginator-legacy .custom-paginator-container{justify-content:flex-end}.mapa-table__paginator-legacy .custom-paginator-counter{white-space:nowrap;margin:0 4px 0 10px!important}.mapa-table__paginator-legacy .custom-paginator-page{border-radius:4px;outline:none;border:none;margin:.4em;font-size:14px;min-width:24px;width:auto;min-height:24px;max-height:24px;padding:1px 6px}.mapa-table__paginator-legacy .custom-paginator-page-enabled{color:#50575e;background:transparent;cursor:pointer}.mapa-table__paginator-legacy .custom-paginator-page-enabled:hover{background-color:#dfe3e6}.mapa-table__paginator-legacy .custom-paginator-page-disabled{background-color:#ea561d;color:#fff}.mapa-table__paginator-legacy .custom-paginator-arrow-disabled{color:#dfe3e6}.mapa-table__paginator-legacy .custom-paginator-arrow-enabled{color:#999}.mapa-table{width:100%;white-space:nowrap}.mapa-table__label{margin-top:4px}.mapa-table__column{padding:15px;align-items:center;display:flex}.mapa-table__column--actions{display:flex}.mapa-table__column--actions .mat-icon{color:#ea561d!important}.mapa-table__column--actions-item{display:flex;align-items:center}.mapa-table__column--actions-item img{margin-right:8px}.mapa-table__column--header{width:100%}.mapa-table__column--header .mat-icon{cursor:pointer;position:relative;bottom:-3px;margin:0 7px;font-size:14px;height:14px;width:14px}.mapa-table__column--status{border-radius:4px;padding:4px 8px;margin:auto;text-align:center;width:min-content}.mapa-table__column--ellipsis{display:inline-block;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.mapa-table__column--no-wrap{white-space:nowrap}.mapa-table__column--wrap{white-space:pre-wrap}.mapa-table__column--center-cell{justify-content:center}.mapa-table .mat-sort-header-arrow{color:transparent}.mapa-table .mat-sort-header-content{width:100%}.mapa-table .mat-cell,.mapa-table .mat-header-cell{padding:0 10px!important}.mapa-table .mat-table{width:100%;overflow-x:auto}.mapa-table .classification{width:40px;height:40px;border-radius:24px;display:flex;justify-content:center;align-items:center}.mapa-table .roundCell{border-radius:10px}.mapa-table .general{border-radius:24px;border:1px solid #dcdcde;display:flex;justify-content:center;align-items:center;width:48px;height:48px}.mapa-table .name{color:#181818;text-align:left;font-family:SF-Pro;font-size:14px;font-style:normal;font-weight:400;line-height:20px}.mapa-table .cpf{color:var(--Grey-Grey-30, #8c8f94);text-align:left;font-family:SF-Pro;font-size:12px;font-style:normal;font-weight:400;line-height:16px}.mapa-table .label_report{color:#181818;text-align:center;font-family:SF-Pro;font-size:12px;font-style:normal;font-weight:400;line-height:16px}\n", ".classification-1{background-color:#073e92;color:#fff}.classification-2{background-color:#0e6ece;color:#fff}.classification-3{background-color:#2d9ced;color:#000}.classification-4{background-color:#68ceee;color:#000}.classification-5{background-color:#96f2ee;color:#000}.classification-6{background-color:#f598a7;color:#000}.classification-7{background-color:#f56580;color:#000}.classification-8{background-color:#f4284e;color:#fff}.classification-9{background-color:#c11c2f;color:#fff}.small-dot{width:12px;height:12px;border-radius:12px;padding:0;margin:0}.dot{width:16px;height:16px;border-radius:16px;padding:0;margin:0}.indicator{display:flex;padding:2px 4px 2px 16px;justify-content:space-between;align-items:center;border-radius:8px;font-family:SF-Pro;font-size:16px;font-style:normal;font-weight:400}.display-S{font-family:SF-Pro;font-size:20px;font-style:normal;font-weight:400}.display-L{font-family:SF-Pro;font-size:32px;font-style:normal;font-weight:400}.display-XG{font-family:SF-Pro;font-size:48px;font-style:normal;font-weight:400}*{transition:opacity .4s ease-out,max-height .4s ease-out}\n"] }]
|
|
299
306
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { columns: [{
|
|
300
307
|
type: Input
|
|
301
308
|
}], data: [{
|
|
@@ -340,4 +347,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
340
347
|
type: ViewChild,
|
|
341
348
|
args: [MatSort]
|
|
342
349
|
}] } });
|
|
343
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFwYS1saWJyYXJ5LXVpL3NyYy9saWIvY29tcG9uZW50cy90YWJsZS9zcmMvdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFwYS1saWJyYXJ5LXVpL3NyYy9saWIvY29tcG9uZW50cy90YWJsZS9zcmMvdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUdMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFFTixTQUFTLEVBQ1QsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUU1QixPQUFPLEVBQUUsWUFBWSxFQUFhLE1BQU0sNkJBQTZCLENBQUM7QUFDdEUsT0FBTyxFQUFFLE9BQU8sRUFBUSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBSzdELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7Ozs7Ozs7QUFZeEQsTUFBTSxPQUFPLGtCQUFrQjtJQWdDN0IsWUFBb0IsR0FBc0I7UUFBdEIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUEvQmpDLFlBQU8sR0FBa0IsRUFBRSxDQUFDO1FBQzVCLFNBQUksR0FBYSxFQUFFLENBQUM7UUFDcEIsY0FBUyxHQUFXLENBQUMsQ0FBQztRQUN0QixhQUFRLEdBQVcsQ0FBQyxDQUFDO1FBQ3JCLGVBQVUsR0FBVyxDQUFDLENBQUM7UUFDdkIsZUFBVSxHQUFXLENBQUMsQ0FBQztRQUt2QixnQkFBVyxHQUFzQixFQUFFLENBQUM7UUFFcEMsY0FBUyxHQUFlLEVBQUUsQ0FBQztRQUsxQixhQUFRLEdBQWdDLElBQUksWUFBWSxFQUUvRCxDQUFDO1FBQ00saUJBQVksR0FBd0IsSUFBSSxZQUFZLEVBQVMsQ0FBQztRQUM5RCxpQkFBWSxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO1FBT3BFLHFCQUFnQixHQUFhLEVBQUUsQ0FBQztJQUdhLENBQUM7SUFFOUMsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUN0QixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7U0FDMUI7SUFDSCxDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDcEQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUNqQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ25CLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtnQkFDbkIsSUFBSSxDQUFDLElBQUksR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsWUFBWSxDQUFDO2dCQUN6QyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO2dCQUNqQyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO2FBQzFCO1NBQ0Y7UUFFRCxJQUFJLE9BQU8sQ0FBQyxlQUFlLENBQUMsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ2xELElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUNwQjtJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ25CLElBQUksQ0FBQyxhQUFjLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQWEsRUFBRSxFQUFFO2dCQUMzRCxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDdEQsQ0FBQyxDQUFDLENBQUM7WUFFSCxJQUFJLENBQUMsVUFBVSxDQUFDLGVBQWUsR0FBRyxDQUFDLElBQVMsRUFBRSxNQUFjLEVBQUUsRUFBRTtnQkFDOUQsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7cUJBQzlCLE1BQU0sQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLEVBQUUsRUFBRTtvQkFDM0IsT0FBTyxDQUNMLFdBQVc7d0JBQ1gsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUM7d0JBQ3pELEdBQUcsQ0FDSixDQUFDO2dCQUNKLENBQUMsRUFBRSxFQUFFLENBQUM7cUJBQ0wsSUFBSSxFQUFFO3FCQUNOLFdBQVcsRUFBRSxDQUFDO2dCQUVqQixPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDeEMsQ0FBQyxDQUFDO1NBQ0g7SUFDSCxDQUFDO0lBRUQsYUFBYTtRQUNYLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNsQixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUM7WUFDbkQsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO1lBQzVDLE9BQU8sV0FBVyxLQUFLLE9BQU8sQ0FBQztTQUNoQztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELGFBQWE7UUFDWCxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDbEIsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLEVBQUU7Z0JBQ3hCLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ3ZCLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO2FBQzFCO2lCQUFNO2dCQUNMLE1BQU0sc0JBQXNCLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFhLENBQUM7Z0JBQzdELHNCQUFzQixDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztnQkFDckUsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7YUFDMUI7U0FDRjtJQUNILENBQUM7SUFFRCxhQUFhLENBQUMsR0FBUztRQUNyQixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDbEIsSUFBSSxDQUFDLEdBQUcsRUFBRTtnQkFDUixPQUFPLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFFBQVEsTUFBTSxDQUFDO2FBQzlEO1lBQ0QsT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFFBQVEsUUFDOUQsR0FBRyxDQUFDLFFBQVEsR0FBRyxDQUNqQixFQUFFLENBQUM7U0FDSjtRQUNELE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVELFFBQVEsQ0FBQyxNQUFtQjtRQUMxQixJQUFJLE1BQU0sQ0FBQyxJQUFJLEVBQUU7WUFDZixNQUFNLElBQUksR0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsR0FBRyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQztZQUU1RCxJQUNFLElBQUksQ0FBQyxXQUFXO2dCQUNoQixJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sS0FBSyxNQUFNLENBQUMsR0FBRztnQkFDdEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLEtBQUssS0FBSyxFQUNwQztnQkFDQSxJQUFJLENBQUMsU0FBUyxHQUFHLE1BQU0sQ0FBQzthQUN6QjtZQUVELElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUM3QjtJQUNILENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxJQUFVO1FBQ3pCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBRTFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssRUFBRSxFQUFFO1lBQ3pDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztZQUM1QixPQUFPO1NBQ1I7UUFFRCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBTSxFQUFFLENBQU0sRUFBRSxFQUFFO1lBQ2xELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxTQUFTLEtBQUssS0FBSyxDQUFDO1lBQ3ZDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDN0QsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsT0FBTyxDQUFDLENBQU0sRUFBRSxDQUFNLEVBQUUsS0FBYztRQUNwQyxJQUFJLE9BQU8sQ0FBQyxLQUFLLFFBQVEsSUFBSSxPQUFPLENBQUMsS0FBSyxRQUFRLEVBQUU7WUFDbEQsT0FBTyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsR0FBRyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3hFO1FBQ0QsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxZQUFZLENBQUMsR0FBVyxFQUFFLE1BQWM7UUFDdEMsTUFBTSxPQUFPLEdBQWtCLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxDQUFDO1FBQy9DLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRCxlQUFlLENBQUMsR0FBUTtRQUN0QixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDbEIsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDbEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDOUI7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDNUI7WUFDRCxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztTQUMxQjtJQUNILENBQUM7SUFFRCxpQkFBaUI7UUFDZixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDbEIsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBQ3ZELE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQztZQUNqQixDQUFDLENBQUMsQ0FBQztZQUNILElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1NBQ3RDO0lBQ0gsQ0FBQztJQUVELGVBQWU7UUFDYixNQUFNLE9BQU8sR0FBa0I7WUFDN0IsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRTtZQUN2QyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFO1NBQ2pELENBQUM7UUFDRixJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFO1lBQ3RDLFVBQVUsQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUU7Z0JBQzNDLE1BQU0sWUFBWSxHQUFHLFNBQVMsQ0FBQyxhQUFhLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQzNELE1BQU0sY0FBYyxHQUFHLFNBQVMsQ0FBQyxhQUFhLENBQUM7Z0JBQy9DLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxZQUFZLENBQUMsRUFBRTtvQkFDN0MsT0FBTyxDQUFDLElBQUksQ0FBQzt3QkFDWCxHQUFHLEVBQUUsWUFBWTt3QkFDakIsS0FBSyxFQUFFLGNBQWM7d0JBQ3JCLElBQUksRUFBRSxTQUFTLENBQUMsSUFBSSxJQUFJLEtBQUs7cUJBQzlCLENBQUMsQ0FBQztpQkFDSjtZQUNILENBQUMsQ0FBQyxDQUFDO1lBRUgsVUFBVSxDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRTtnQkFDM0MsTUFBTSxZQUFZLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQkFDbEQsTUFBTSxjQUFjLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQztnQkFDdEMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLFlBQVksQ0FBQyxFQUFFO29CQUM3QyxPQUFPLENBQUMsSUFBSSxDQUFDO3dCQUNYLEdBQUcsRUFBRSxZQUFZO3dCQUNqQixLQUFLLEVBQUUsY0FBYzt3QkFDckIsSUFBSSxFQUFFLFNBQVMsQ0FBQyxJQUFJLElBQUksS0FBSztxQkFDOUIsQ0FBQyxDQUFDO2lCQUNKO1lBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxZQUFZLENBQUMsT0FBc0IsRUFBRSxHQUFXO1FBQzlDLE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLEdBQUcsS0FBSyxHQUFHLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQsaUJBQWlCO1FBQ2YsTUFBTSxNQUFNLEdBQTZCLEVBQUUsQ0FBQztRQUU1QyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ2hDLE1BQU0sUUFBUSxHQUEyQjtnQkFDdkMsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSTtnQkFDekIsR0FBRyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRztnQkFDdkIsT0FBTyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTzthQUNoQyxDQUFDO1lBRUYsSUFBSSxDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRTtnQkFDckMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsV0FBVyxFQUFFLENBQUMsR0FBRztvQkFDaEQsS0FBSyxFQUFFLFNBQVMsQ0FBQyxPQUFPO29CQUN4QixTQUFTLEVBQUUsU0FBUyxDQUFDLFNBQVM7b0JBQzlCLGdCQUFnQixFQUFFLFNBQVMsQ0FBQyxnQkFBZ0I7aUJBQzdDLENBQUM7WUFDSixDQUFDLENBQUMsQ0FBQztZQUVILElBQUksQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUU7Z0JBQ3JDLFFBQVEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLEdBQUc7b0JBQ3ZDLEtBQUssRUFBRSxTQUFTLENBQUMsUUFBUTtvQkFDekIsU0FBUyxFQUFFLFNBQVMsQ0FBQyxTQUFTO29CQUM5QixnQkFBZ0IsRUFBRSxTQUFTLENBQUMsZ0JBQWdCO2lCQUM3QyxDQUFDO1lBQ0osQ0FBQyxDQUFDLENBQUM7WUFFSCxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3hCLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUM7SUFDckIsQ0FBQztJQUVELFNBQVMsQ0FBQyxNQUFtQixFQUFFLEdBQVE7UUFDckMsT0FBTyxPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssU0FBUyxDQUFDO0lBQzlDLENBQUM7SUFFRCxZQUFZLENBQUMsTUFBbUIsRUFBRSxHQUFRO1FBQ3hDLE1BQU0sT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSwwQkFBMEIsQ0FBQyxDQUFDO1FBQzlELE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNoRSxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxNQUFNLENBQUMsSUFBSSxLQUFLLENBQUM7SUFDMUMsQ0FBQztJQUVELGNBQWMsQ0FBQyxNQUFtQixFQUFFLEdBQVE7UUFDMUMsT0FBTyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELFlBQVksQ0FBQyxNQUFtQixFQUFFLEdBQVE7UUFDeEMsSUFDRSxDQUFDLElBQUksQ0FBQyxhQUFhO1lBQ25CLE1BQU0sQ0FBQyxHQUFHLEtBQUssTUFBTTtZQUNyQixNQUFNLENBQUMsR0FBRyxLQUFLLEtBQUs7WUFDcEIsTUFBTSxDQUFDLEdBQUcsS0FBSyxTQUFTLEVBQ3hCO1lBQ0EsT0FBTyxFQUFFLENBQUM7U0FDWDtRQUNELElBQUk7WUFDRixNQUFNLGNBQWMsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLGdCQUFnQixDQUFDO1lBQ3pELE9BQU8saUNBQWlDLGNBQWMsRUFBRSxDQUFDO1NBQzFEO1FBQUMsTUFBTTtZQUNOLE9BQU8sRUFBRSxDQUFDO1NBQ1g7SUFDSCxDQUFDO0lBRUQsV0FBVztRQUNULE9BQU87WUFDTCxXQUFXLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYTtTQUNqQyxDQUFDO0lBQ0osQ0FBQztJQUVELFFBQVEsQ0FBQyxHQUFzQjtRQUM3QixJQUFJO1lBQ0YsT0FBTyxHQUFHLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQztTQUN4QjtRQUFDLE1BQU07WUFDTixPQUFPLEdBQUcsQ0FBQztTQUNaO0lBQ0gsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFpQjtRQUMxQixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsVUFBVTtRQUNSLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELGtCQUFrQixDQUFDLE1BQW1CLEVBQUUsR0FBUTtRQUM5QyxPQUFPLE1BQU0sQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDNUQsQ0FBQztJQUVELGNBQWMsQ0FBQyxNQUFtQixFQUFFLEdBQVEsRUFBRSxHQUFXO1FBQ3ZELElBQUksTUFBTSxFQUFFLEtBQUssSUFBSSxHQUFHLEVBQUUsYUFBYSxJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUU7WUFDM0UsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELGNBQWMsQ0FBQyxNQUFtQixFQUFFLEdBQVEsRUFBRSxHQUFXO1FBQ3ZELElBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRTtZQUNwQyxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ2hEO2FBQU0sSUFBSSxNQUFNLEVBQUUsS0FBSyxFQUFFO1lBQ3hCLE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQztTQUNyQjthQUFNLElBQUksR0FBRyxFQUFFLGFBQWEsRUFBRTtZQUM3QixPQUFPLEdBQUcsQ0FBQyxhQUFhLENBQUM7U0FDMUI7UUFDRCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxHQUFRLEVBQUUsR0FBVztRQUNyQyxPQUFPLEdBQUcsQ0FBQyxVQUFVLEVBQUUsR0FBRyxLQUFLLEdBQUcsQ0FBQztJQUNyQyxDQUFDO0lBQUEsQ0FBQztJQUVGLGlCQUFpQixDQUFDLEdBQVEsRUFBRSxHQUFXO1FBQ3JDLE9BQU8sR0FBRyxDQUFDLFVBQVUsRUFBRSxHQUFHLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ2xFLENBQUM7SUFBQSxDQUFDO0lBRUYsVUFBVSxDQUFDLFFBQWE7UUFDdEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNwRCxDQUFDOztnSEFoVlUsa0JBQWtCO29HQUFsQixrQkFBa0IsOGdCQWdCbEIsY0FBYyw0RUFRZCxZQUFZLDJCQUFVLElBQUksb0RBQzFCLE9BQU8scUVDNURwQixzZ09BOExBOzRGRDNKYSxrQkFBa0I7a0JBVDlCLFNBQVM7K0JBQ0UsWUFBWSxpQkFNUCxpQkFBaUIsQ0FBQyxJQUFJO3dHQUc1QixPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFFcUIsT0FBTztzQkFBakMsU0FBUzt1QkFBQyxjQUFjO2dCQUVmLFFBQVE7c0JBQWpCLE1BQU07Z0JBR0csWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxZQUFZO3NCQUFyQixNQUFNO2dCQUVrQyxTQUFTO3NCQUFqRCxTQUFTO3VCQUFDLFlBQVksRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUU7Z0JBQ25CLElBQUk7c0JBQXZCLFNBQVM7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNlbGVjdGlvbk1vZGVsIH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9jb2xsZWN0aW9uc1wiO1xuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBGb3JtR3JvdXAsIEZvcm1Db250cm9sIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5pbXBvcnQgbW9tZW50IGZyb20gXCJtb21lbnRcIjtcblxuaW1wb3J0IHsgTWF0UGFnaW5hdG9yLCBQYWdlRXZlbnQgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvcGFnaW5hdG9yXCI7XG5pbXBvcnQgeyBNYXRTb3J0LCBTb3J0IH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL3NvcnRcIjtcbmltcG9ydCB7IE1hdFRhYmxlRGF0YVNvdXJjZSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC90YWJsZVwiO1xuXG5pbXBvcnQgeyBSb3dDbGlja0V2ZW50IH0gZnJvbSBcIi4uLy4uLy4uL2NvcmUvaW50ZXJmYWNlcy90YWJsZS1yb3ctY2xpY2stZXZlbnQuaW50ZXJmYWNlXCI7XG5pbXBvcnQgeyBUYWJsZUNvbHVtbiB9IGZyb20gXCIuLi8uLi8uLi9jb3JlL2ludGVyZmFjZXMvdGFibGUtY29sdW1uLmludGVyZmFjZVwiO1xuaW1wb3J0IHsgR3JvdXBSZXBvcnRJdGVtIH0gZnJvbSBcIi4vZ3JvdXAtcmVwb3J0LWludGVyZmFjZVwiO1xuaW1wb3J0IHsgTWF0TWVudVRyaWdnZXIgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudVwiO1xuaW1wb3J0IHsgTWVudUl0ZW0gfSBmcm9tIFwiLi4vLi4vbWVudS9wdWJsaWMtYXBpXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJtYXBhLXRhYmxlXCIsXG4gIHRlbXBsYXRlVXJsOiBcIi4vdGFibGUuY29tcG9uZW50Lmh0bWxcIixcbiAgc3R5bGVVcmxzOiBbXG4gICAgXCIuL3RhYmxlLmNvbXBvbmVudC5zY3NzXCIsXG4gICAgXCIuLy4uLy4uL2NhcGFiaWxpdHkvc3R5bGVzL2NhcGFiaWxpdHkuc2Nzc1wiLFxuICBdLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBNYXBhVGFibGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xuICBASW5wdXQoKSBjb2x1bW5zOiBUYWJsZUNvbHVtbltdID0gW107XG4gIEBJbnB1dCgpIGRhdGE6IE9iamVjdFtdID0gW107XG4gIEBJbnB1dCgpIHBhZ2VJbmRleDogbnVtYmVyID0gMTtcbiAgQElucHV0KCkgcGFnZVNpemU6IG51bWJlciA9IDU7XG4gIEBJbnB1dCgpIHRvdGFsQ291bnQ6IG51bWJlciA9IDA7XG4gIEBJbnB1dCgpIHRvdGFsUGFnZXM6IG51bWJlciA9IDA7XG4gIEBJbnB1dCgpIGNoZWNrYm94OiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICBASW5wdXQoKSBzZWxlY3Rpb246IFNlbGVjdGlvbk1vZGVsPGFueT4gfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIGFjdGlvbnM/OiBNZW51SXRlbVtdIHwgdW5kZWZpbmVkO1xuICBASW5wdXQoKSBmaWx0ZXJDb250cm9sOiBGb3JtQ29udHJvbCB8IHVuZGVmaW5lZDtcbiAgQElucHV0KCkgZ3JvdXBSZXBvcnQ6IEdyb3VwUmVwb3J0SXRlbVtdID0gW107XG4gIEBJbnB1dCgpIGlzR3JvdXBSZXBvcnQ6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIG1lbnVJdGVtczogTWVudUl0ZW1bXSA9IFtdO1xuICBASW5wdXQoKSBtZW51OiBib29sZWFuIHwgdW5kZWZpbmVkO1xuXG4gIEBWaWV3Q2hpbGQoTWF0TWVudVRyaWdnZXIpIHRyaWdnZXIhOiBNYXRNZW51VHJpZ2dlcjtcblxuICBAT3V0cHV0KCkgcm93Q2xpY2s6IEV2ZW50RW1pdHRlcjxSb3dDbGlja0V2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8XG4gICAgUm93Q2xpY2tFdmVudFxuICA+KCk7XG4gIEBPdXRwdXQoKSBzZWxlY3RlZFJvd3M6IEV2ZW50RW1pdHRlcjxhbnlbXT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueVtdPigpO1xuICBAT3V0cHV0KCkgb25DaGFuZ2VQYWdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIEBWaWV3Q2hpbGQoTWF0UGFnaW5hdG9yLCB7IHJlYWQ6IHRydWUgfSkgcGFnaW5hdG9yITogTWF0UGFnaW5hdG9yO1xuICBAVmlld0NoaWxkKE1hdFNvcnQpIHNvcnQhOiBNYXRTb3J0O1xuXG4gIGNoZWNrYm94R3JvdXAhOiBGb3JtR3JvdXA7XG4gIGRhdGFTb3VyY2UhOiBNYXRUYWJsZURhdGFTb3VyY2U8T2JqZWN0PjtcbiAgZGlzcGxheWVkQ29sdW1uczogc3RyaW5nW10gPSBbXTtcbiAgY3VycmVudFNvcnQ6IFNvcnQgfCB1bmRlZmluZWQ7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzR3JvdXBSZXBvcnQpIHtcbiAgICAgIHRoaXMuZ2VuZXJhdGVDb2x1bW5zKCk7XG4gICAgICB0aGlzLmdlbmVyYXRlR3JvdXBEYXRhKCk7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZGF0YVNvdXJjZSA9IG5ldyBNYXRUYWJsZURhdGFTb3VyY2UodGhpcy5kYXRhKTtcbiAgICB0aGlzLmRhdGFTb3VyY2Uuc29ydCA9IHRoaXMuc29ydDtcbiAgICB0aGlzLmRpc3BsYXllZENvbHVtbnMgPSB0aGlzLmNvbHVtbnMubWFwKChjb2x1bW4pID0+IGNvbHVtbi5rZXkpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmIChjaGFuZ2VzW1wiZGF0YVwiXSkge1xuICAgICAgaWYgKHRoaXMuZGF0YVNvdXJjZSkge1xuICAgICAgICB0aGlzLmRhdGEgPSBjaGFuZ2VzW1wiZGF0YVwiXS5jdXJyZW50VmFsdWU7XG4gICAgICAgIHRoaXMuZGF0YVNvdXJjZS5kYXRhID0gdGhpcy5kYXRhO1xuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGNoYW5nZXNbXCJmaWx0ZXJDb250cm9sXCJdICYmIHRoaXMuZmlsdGVyQ29udHJvbCkge1xuICAgICAgdGhpcy5zZXR1cEZpbHRlcigpO1xuICAgIH1cbiAgfVxuXG4gIHNldHVwRmlsdGVyKCkge1xuICAgIGlmICh0aGlzLmRhdGFTb3VyY2UpIHtcbiAgICAgIHRoaXMuZmlsdGVyQ29udHJvbCEudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgodmFsdWU6IHN0cmluZykgPT4ge1xuICAgICAgICB0aGlzLmRhdGFTb3VyY2UuZmlsdGVyID0gdmFsdWUudHJpbSgpLnRvTG93ZXJDYXNlKCk7XG4gICAgICB9KTtcblxuICAgICAgdGhpcy5kYXRhU291cmNlLmZpbHRlclByZWRpY2F0ZSA9IChkYXRhOiBhbnksIGZpbHRlcjogc3RyaW5nKSA9PiB7XG4gICAgICAgIGNvbnN0IGRhdGFTdHIgPSBPYmplY3Qua2V5cyhkYXRhKVxuICAgICAgICAgIC5yZWR1Y2UoKGN1cnJlbnRUZXJtLCBrZXkpID0+IHtcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgIGN1cnJlbnRUZXJtICtcbiAgICAgICAgICAgICAgKChkYXRhW2tleV0gJiYgZGF0YVtrZXldLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKSkgfHwgXCJcIikgK1xuICAgICAgICAgICAgICBcIiBcIlxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9LCBcIlwiKVxuICAgICAgICAgIC50cmltKClcbiAgICAgICAgICAudG9Mb3dlckNhc2UoKTtcblxuICAgICAgICByZXR1cm4gZGF0YVN0ci5pbmRleE9mKGZpbHRlcikgIT09IC0xO1xuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICBpc0FsbFNlbGVjdGVkKCkge1xuICAgIGlmICh0aGlzLnNlbGVjdGlvbikge1xuICAgICAgY29uc3QgbnVtU2VsZWN0ZWQgPSB0aGlzLnNlbGVjdGlvbi5zZWxlY3RlZC5sZW5ndGg7XG4gICAgICBjb25zdCBudW1Sb3dzID0gdGhpcy5kYXRhU291cmNlLmRhdGEubGVuZ3RoO1xuICAgICAgcmV0dXJuIG51bVNlbGVjdGVkID09PSBudW1Sb3dzO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICB0b2dnbGVBbGxSb3dzKCkge1xuICAgIGlmICh0aGlzLnNlbGVjdGlvbikge1xuICAgICAgaWYgKHRoaXMuaXNBbGxTZWxlY3RlZCgpKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0aW9uLmNsZWFyKCk7XG4gICAgICAgIHRoaXMuZ2V0U2VsZWN0ZWRWYWx1ZXMoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGRhdGFBc1BlcmlvZGljRWxlbWVudHMgPSB0aGlzLmRhdGFTb3VyY2UuZGF0YSBhcyBhbnlbXTtcbiAgICAgICAgZGF0YUFzUGVyaW9kaWNFbGVtZW50cy5mb3JFYWNoKChyb3cpID0+IHRoaXMuc2VsZWN0aW9uPy5zZWxlY3Qocm93KSk7XG4gICAgICAgIHRoaXMuZ2V0U2VsZWN0ZWRWYWx1ZXMoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjaGVja2JveExhYmVsKHJvdz86IGFueSk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMuc2VsZWN0aW9uKSB7XG4gICAgICBpZiAoIXJvdykge1xuICAgICAgICByZXR1cm4gYCR7dGhpcy5pc0FsbFNlbGVjdGVkKCkgPyBcImRlc2VsZWN0XCIgOiBcInNlbGVjdFwifSBhbGxgO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGAke3RoaXMuc2VsZWN0aW9uLmlzU2VsZWN0ZWQocm93KSA/IFwiZGVzZWxlY3RcIiA6IFwic2VsZWN0XCJ9IHJvdyAke1xuICAgICAgICByb3cucG9zaXRpb24gKyAxXG4gICAgICB9YDtcbiAgICB9XG4gICAgcmV0dXJuIFwiXCI7XG4gIH1cblxuICBzb3J0RGF0YShjb2x1bW46IFRhYmxlQ29sdW1uKTogdm9pZCB7XG4gICAgaWYgKGNvbHVtbi5zb3J0KSB7XG4gICAgICBjb25zdCBzb3J0OiBTb3J0ID0geyBhY3RpdmU6IGNvbHVtbi5rZXksIGRpcmVjdGlvbjogXCJhc2NcIiB9O1xuXG4gICAgICBpZiAoXG4gICAgICAgIHRoaXMuY3VycmVudFNvcnQgJiZcbiAgICAgICAgdGhpcy5jdXJyZW50U29ydC5hY3RpdmUgPT09IGNvbHVtbi5rZXkgJiZcbiAgICAgICAgdGhpcy5jdXJyZW50U29ydC5kaXJlY3Rpb24gPT09IFwiYXNjXCJcbiAgICAgICkge1xuICAgICAgICBzb3J0LmRpcmVjdGlvbiA9IFwiZGVzY1wiO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmN1cnJlbnRTb3J0ID0gc29ydDtcbiAgICAgIHRoaXMuc29ydERhdGFGdW5jdGlvbihzb3J0KTtcbiAgICB9XG4gIH1cblxuICBzb3J0RGF0YUZ1bmN0aW9uKHNvcnQ6IFNvcnQpIHtcbiAgICBjb25zdCBkYXRhID0gdGhpcy5kYXRhU291cmNlLmRhdGEuc2xpY2UoKTtcblxuICAgIGlmICghc29ydC5hY3RpdmUgfHwgc29ydC5kaXJlY3Rpb24gPT09IFwiXCIpIHtcbiAgICAgIHRoaXMuZGF0YVNvdXJjZS5kYXRhID0gZGF0YTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmRhdGFTb3VyY2UuZGF0YSA9IGRhdGEuc29ydCgoYTogYW55LCBiOiBhbnkpID0+IHtcbiAgICAgIGNvbnN0IGlzQXNjID0gc29ydC5kaXJlY3Rpb24gPT09IFwiYXNjXCI7XG4gICAgICByZXR1cm4gdGhpcy5jb21wYXJlKGFbc29ydC5hY3RpdmVdLCBiW3NvcnQuYWN0aXZlXSwgaXNBc2MpO1xuICAgIH0pO1xuICB9XG5cbiAgY29tcGFyZShhOiBhbnksIGI6IGFueSwgaXNBc2M6IGJvb2xlYW4pIHtcbiAgICBpZiAodHlwZW9mIGEgPT09IFwic3RyaW5nXCIgJiYgdHlwZW9mIGIgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgIHJldHVybiAoYS50b0xvd2VyQ2FzZSgpIDwgYi50b0xvd2VyQ2FzZSgpID8gLTEgOiAxKSAqIChpc0FzYyA/IDEgOiAtMSk7XG4gICAgfVxuICAgIHJldHVybiAoYSA8IGIgPyAtMSA6IDEpICogKGlzQXNjID8gMSA6IC0xKTtcbiAgfVxuXG4gIGVtaXRSb3dDbGljayhyb3c6IHN0cmluZywgYWN0aW9uOiBzdHJpbmcpIHtcbiAgICBjb25zdCByb3dEYXRhOiBSb3dDbGlja0V2ZW50ID0geyByb3csIGFjdGlvbiB9O1xuICAgIHRoaXMucm93Q2xpY2suZW1pdChyb3dEYXRhKTtcbiAgfVxuXG4gIHRvZ2dsZVNlbGVjdGlvbihyb3c6IGFueSkge1xuICAgIGlmICh0aGlzLnNlbGVjdGlvbikge1xuICAgICAgaWYgKHRoaXMuc2VsZWN0aW9uLmlzU2VsZWN0ZWQocm93KSkge1xuICAgICAgICB0aGlzLnNlbGVjdGlvbi5kZXNlbGVjdChyb3cpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zZWxlY3Rpb24uc2VsZWN0KHJvdyk7XG4gICAgICB9XG4gICAgICB0aGlzLmdldFNlbGVjdGVkVmFsdWVzKCk7XG4gICAgfVxuICB9XG5cbiAgZ2V0U2VsZWN0ZWRWYWx1ZXMoKSB7XG4gICAgaWYgKHRoaXMuc2VsZWN0aW9uKSB7XG4gICAgICBjb25zdCBzZWxlY3RlZFJvd3MgPSB0aGlzLnNlbGVjdGlvbi5zZWxlY3RlZC5tYXAoKHJvdykgPT4ge1xuICAgICAgICByZXR1cm4geyByb3cgfTtcbiAgICAgIH0pO1xuICAgICAgdGhpcy5zZWxlY3RlZFJvd3MuZW1pdChzZWxlY3RlZFJvd3MpO1xuICAgIH1cbiAgfVxuXG4gIGdlbmVyYXRlQ29sdW1ucygpIHtcbiAgICBjb25zdCBjb2x1bW5zOiBUYWJsZUNvbHVtbltdID0gW1xuICAgICAgeyBrZXk6IFwibmFtZVwiLCBsYWJlbDogXCJcIiwgc29ydDogZmFsc2UgfSxcbiAgICAgIHsga2V5OiBcImdlbmVyYWxcIiwgbGFiZWw6IFwiJSBHZXJhbFwiLCBzb3J0OiB0cnVlIH0sXG4gICAgXTtcbiAgICB0aGlzLmdyb3VwUmVwb3J0LmZvckVhY2goKHJlcG9ydEl0ZW0pID0+IHtcbiAgICAgIHJlcG9ydEl0ZW0uZGltZW5zaW9ucz8uZm9yRWFjaCgoZGltZW5zaW9uKSA9PiB7XG4gICAgICAgIGNvbnN0IGRpbWVuc2lvbktleSA9IGRpbWVuc2lvbi5kaW1lbnNpb25OYW1lLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIGNvbnN0IGRpbWVuc2lvbkxhYmVsID0gZGltZW5zaW9uLmRpbWVuc2lvbk5hbWU7XG4gICAgICAgIGlmICghdGhpcy5jb2x1bW5FeGlzdHMoY29sdW1ucywgZGltZW5zaW9uS2V5KSkge1xuICAgICAgICAgIGNvbHVtbnMucHVzaCh7XG4gICAgICAgICAgICBrZXk6IGRpbWVuc2lvbktleSxcbiAgICAgICAgICAgIGxhYmVsOiBkaW1lbnNpb25MYWJlbCxcbiAgICAgICAgICAgIHNvcnQ6IGRpbWVuc2lvbi5zb3J0IHx8IGZhbHNlLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgcmVwb3J0SXRlbS5pbmRpY2F0b3JzPy5mb3JFYWNoKChpbmRpY2F0b3IpID0+IHtcbiAgICAgICAgY29uc3QgaW5kaWNhdG9yS2V5ID0gaW5kaWNhdG9yLm5hbWUudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgY29uc3QgaW5kaWNhdG9yTGFiZWwgPSBpbmRpY2F0b3IubmFtZTtcbiAgICAgICAgaWYgKCF0aGlzLmNvbHVtbkV4aXN0cyhjb2x1bW5zLCBpbmRpY2F0b3JLZXkpKSB7XG4gICAgICAgICAgY29sdW1ucy5wdXNoKHtcbiAgICAgICAgICAgIGtleTogaW5kaWNhdG9yS2V5LFxuICAgICAgICAgICAgbGFiZWw6IGluZGljYXRvckxhYmVsLFxuICAgICAgICAgICAgc29ydDogaW5kaWNhdG9yLnNvcnQgfHwgZmFsc2UsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgdGhpcy5jb2x1bW5zID0gY29sdW1ucztcbiAgfVxuXG4gIGNvbHVtbkV4aXN0cyhjb2x1bW5zOiBUYWJsZUNvbHVtbltdLCBrZXk6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBjb2x1bW5zLnNvbWUoKGNvbHVtbikgPT4gY29sdW1uLmtleSA9PT0ga2V5KTtcbiAgfVxuXG4gIGdlbmVyYXRlR3JvdXBEYXRhKCkge1xuICAgIGNvbnN0IHJlc3VsdDogeyBba2V5OiBzdHJpbmddOiBhbnkgfVtdID0gW107XG5cbiAgICB0aGlzLmdyb3VwUmVwb3J0LmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgIGNvbnN0IGRhdGFJdGVtOiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0ge1xuICAgICAgICBuYW1lOiBpdGVtLmNhbmRpZGF0ZS5uYW1lLFxuICAgICAgICBjcGY6IGl0ZW0uY2FuZGlkYXRlLmNwZixcbiAgICAgICAgZ2VuZXJhbDogaXRlbS5jYW5kaWRhdGUuZ2VuZXJhbCxcbiAgICAgIH07XG5cbiAgICAgIGl0ZW0uZGltZW5zaW9ucz8uZm9yRWFjaCgoZGltZW5zaW9uKSA9PiB7XG4gICAgICAgIGRhdGFJdGVtW2RpbWVuc2lvbi5kaW1lbnNpb25OYW1lLnRvTG93ZXJDYXNlKCldID0ge1xuICAgICAgICAgIHZhbHVlOiBkaW1lbnNpb24uZXNjb3JlVCxcbiAgICAgICAgICBkaXJlY3Rpb246IGRpbWVuc2lvbi5kaXJlY3Rpb24sXG4gICAgICAgICAgY2xhc3NpZmljYXRpb25JZDogZGltZW5zaW9uLmNsYXNzaWZpY2F0aW9uSWQsXG4gICAgICAgIH07XG4gICAgICB9KTtcblxuICAgICAgaXRlbS5pbmRpY2F0b3JzPy5mb3JFYWNoKChpbmRpY2F0b3IpID0+IHtcbiAgICAgICAgZGF0YUl0ZW1baW5kaWNhdG9yLm5hbWUudG9Mb3dlckNhc2UoKV0gPSB7XG4gICAgICAgICAgdmFsdWU6IGluZGljYXRvci5pbnRlcnZhbCxcbiAgICAgICAgICBkaXJlY3Rpb246IGluZGljYXRvci5kaXJlY3Rpb24sXG4gICAgICAgICAgY2xhc3NpZmljYXRpb25JZDogaW5kaWNhdG9yLmNsYXNzaWZpY2F0aW9uSWQsXG4gICAgICAgIH07XG4gICAgICB9KTtcblxuICAgICAgcmVzdWx0LnB1c2goZGF0YUl0ZW0pO1xuICAgIH0pO1xuXG4gICAgdGhpcy5kYXRhID0gcmVzdWx0O1xuICB9XG5cbiAgaXNCb29sZWFuKGNvbHVtbjogVGFibGVDb2x1bW4sIHJvdzogYW55KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHR5cGVvZiByb3dbY29sdW1uLmtleV0gPT09IFwiYm9vbGVhblwiO1xuICB9XG5cbiAgaXNNYXNrZWREYXRhKGNvbHVtbjogVGFibGVDb2x1bW4sIHJvdzogYW55KTogYm9vbGVhbiB7XG4gICAgY29uc3QgZm9ybWF0cyA9IFttb21lbnQuSVNPXzg2MDEsIFwiTU0vREQvWVlZWSAgOikgIEhIKm1tKnNzXCJdO1xuICAgIGNvbnN0IGlzRGF0ZSA9IG1vbWVudChyb3dbY29sdW1uLmtleV0sIGZvcm1hdHMsIHRydWUpLmlzVmFsaWQoKTtcbiAgICByZXR1cm4gKGNvbHVtbi5tYXNrICYmIGlzRGF0ZSkgfHwgZmFsc2U7XG4gIH1cblxuICBnZXRWYWx1ZUFzRGF0ZShjb2x1bW46IFRhYmxlQ29sdW1uLCByb3c6IGFueSk6IERhdGUge1xuICAgIHJldHVybiBuZXcgRGF0ZShyb3dbY29sdW1uLmtleV0pO1xuICB9XG5cbiAgZ2V0Q2VsbENsYXNzKGNvbHVtbjogVGFibGVDb2x1bW4sIHJvdzogYW55KTogc3RyaW5nIHtcbiAgICBpZiAoXG4gICAgICAhdGhpcy5pc0dyb3VwUmVwb3J0IHx8XG4gICAgICBjb2x1bW4ua2V5ID09PSBcIm5hbWVcIiB8fFxuICAgICAgY29sdW1uLmtleSA9PT0gXCJjcGZcIiB8fFxuICAgICAgY29sdW1uLmtleSA9PT0gXCJnZW5lcmFsXCJcbiAgICApIHtcbiAgICAgIHJldHVybiBcIlwiO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgY29uc3QgY2xhc3NpZmljYXRpb24gPSByb3dbY29sdW1uLmtleV0/LmNsYXNzaWZpY2F0aW9uSWQ7XG4gICAgICByZXR1cm4gYGNsYXNzaWZpY2F0aW9uIGNsYXNzaWZpY2F0aW9uLSR7Y2xhc3NpZmljYXRpb259YDtcbiAgICB9IGNhdGNoIHtcbiAgICAgIHJldHVybiBcIlwiO1xuICAgIH1cbiAgfVxuXG4gIGdldFJvd0NsYXNzKCk6IHsgW2tleTogc3RyaW5nXTogYm9vbGVhbiB9IHtcbiAgICByZXR1cm4ge1xuICAgICAgXCJyb3ctaG92ZXJcIjogIXRoaXMuaXNHcm91cFJlcG9ydCxcbiAgICB9O1xuICB9XG5cbiAgZ2V0VmFsdWUocm93OiB7IHZhbHVlOiBzdHJpbmcgfSk6IHN0cmluZyB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiByb3cudmFsdWUgKyBcIiVcIjtcbiAgICB9IGNhdGNoIHtcbiAgICAgIHJldHVybiBcIi1cIjtcbiAgICB9XG4gIH1cblxuICBjaGFuZ2VQYWdlKGV2ZW50PzogUGFnZUV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZVBhZ2UuZW1pdChldmVudCk7XG4gIH1cblxuICB0b2dnbGVNZW51KCkge1xuICAgIHRoaXMudHJpZ2dlci5vcGVuTWVudSgpO1xuICB9XG5cbiAgZ2V0QmFja2dyb3VuZENvbG9yKGNvbHVtbjogVGFibGVDb2x1bW4sIHJvdzogYW55KTogc3RyaW5nIHtcbiAgICByZXR1cm4gY29sdW1uLnN0YXR1cz8uY29sb3I/Lltyb3dbY29sdW1uLmtleV0gfHwgMF0gfHwgXCJcIjtcbiAgfVxuXG4gIGhhc0N1c3RvbUNsYXNzKGNvbHVtbjogVGFibGVDb2x1bW4sIHJvdzogYW55LCBrZXk6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGlmIChjb2x1bW4/LmNsYXNzIHx8IHJvdz8ucm93U3R5bGVDbGFzcyB8fCB0aGlzLmhhc0NlbGxTdHlsZUNsYXNzKHJvdywga2V5KSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGdldEN1c3RvbUNsYXNzKGNvbHVtbjogVGFibGVDb2x1bW4sIHJvdzogYW55LCBrZXk6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMuaGFzQ2VsbFN0eWxlQ2xhc3Mocm93LCBrZXkpKSB7XG4gICAgICByZXR1cm4gdGhpcy5nZXRDZWxsU3R5bGVDbGFzcyhyb3csIGNvbHVtbi5rZXkpO1xuICAgIH0gZWxzZSBpZiAoY29sdW1uPy5jbGFzcykge1xuICAgICAgcmV0dXJuIGNvbHVtbi5jbGFzcztcbiAgICB9IGVsc2UgaWYgKHJvdz8ucm93U3R5bGVDbGFzcykge1xuICAgICAgcmV0dXJuIHJvdy5yb3dTdHlsZUNsYXNzO1xuICAgIH1cbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICBoYXNDZWxsU3R5bGVDbGFzcyhyb3c6IGFueSwga2V5OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gcm93LnN0eWxlQ2xhc3M/LmtleSA9PT0ga2V5O1xuICB9O1xuXG4gIGdldENlbGxTdHlsZUNsYXNzKHJvdzogYW55LCBrZXk6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHJvdy5zdHlsZUNsYXNzPy5rZXkgPT09IGtleSA/IHJvdy5zdHlsZUNsYXNzPy5jbGFzcyA6ICcnO1xuICB9O1xuXG4gIGhhbmRsZU1lbnUoc2VsZWN0ZWQ6IGFueSkge1xuICAgIHRoaXMuZW1pdFJvd0NsaWNrKHNlbGVjdGVkLmRhdGEsIHNlbGVjdGVkLmFjdGlvbik7XG4gIH1cbn1cbiIsIjxzZWN0aW9uIGNsYXNzPVwibWFwYS10YWJsZVwiPlxuICA8dGFibGVcbiAgICBtYXQtdGFibGVcbiAgICBbZGF0YVNvdXJjZV09XCJkYXRhU291cmNlXCJcbiAgICBtYXRTb3J0XG4gICAgKG1hdFNvcnRDaGFuZ2UpPVwic29ydERhdGFGdW5jdGlvbigkZXZlbnQpXCJcbiAgPlxuICAgIDxuZy1jb250YWluZXJcbiAgICAgICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgY29sdW1uczsgbGV0IGlzRmlyc3QgPSBmaXJzdFwiXG4gICAgICBbbWF0Q29sdW1uRGVmXT1cImNvbHVtbi5rZXlcIlxuICAgID5cbiAgICAgIDx0aFxuICAgICAgICBtYXQtaGVhZGVyLWNlbGxcbiAgICAgICAgKm1hdEhlYWRlckNlbGxEZWZcbiAgICAgICAgbWF0LXNvcnQtaGVhZGVyXG4gICAgICAgIFtkaXNhYmxlZF09XCIhKGNvbHVtbi5rZXkgIT09ICdhY3Rpb25zJyA/IGNvbHVtbi5zb3J0IDogbnVsbClcIlxuICAgICAgPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwidGFibGVIZWFkZXJcIlxuICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7IHNlbGVjdGlvbiwgY29sdW1uLCBpc0ZpcnN0LCBjaGVja2JveCB9XCJcbiAgICAgICAgPjwvZGl2PlxuICAgICAgPC90aD5cbiAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCByb3dcIiBbc3R5bGUud2lkdGhdPVwiY29sdW1uPy53aWR0aFwiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJtYXBhLXRhYmxlX19jb2x1bW5cIlxuICAgICAgICAgIChjbGljayk9XCJlbWl0Um93Q2xpY2socm93LCAnJylcIlxuICAgICAgICAgIFtjbGFzcy5tYXBhLXRhYmxlX19jb2x1bW4tLWNlbnRlci1jZWxsXT1cImNvbHVtbj8uYWxpZ24gPT09ICdjZW50ZXInIHx8IGlzR3JvdXBSZXBvcnQgJiYgY29sdW1uLmtleSAhPT0gJ25hbWUnXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICpuZ0lmPVwiY29sdW1uLmtleSAhPT0gJ2FjdGlvbnMnICYmIGNvbHVtbi5rZXkgIT09ICdtZW51JzsgZWxzZSBjb2x1bW5BY3Rpb25zT3JNZW51XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWFwYS10YWJsZV9fY29udGVudFwiPlxuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgKm5nSWY9XCIhaXNHcm91cFJlcG9ydFwiXG4gICAgICAgICAgICAgICAgW3N0eWxlLndpZHRoXT1cImNvbHVtbj8ud2lkdGhcIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5tYXBhLXRhYmxlX19jb2x1bW4tLWVsbGlwc2lzXT1cImNvbHVtbj8uY29sbGFwc2UgPT09ICdvdmVyZmxvdydcIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5tYXBhLXRhYmxlX19jb2x1bW4tLW5vLXdyYXBdPVwiY29sdW1uPy5jb2xsYXBzZSA9PT0gJ25vLXdyYXAnXCJcbiAgICAgICAgICAgICAgICBbY2xhc3MubWFwYS10YWJsZV9fY29sdW1uLS13cmFwXT1cImNvbHVtbj8uY29sbGFwc2UgPT09ICd3cmFwJ1wiXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiW2hhc0N1c3RvbUNsYXNzKGNvbHVtbiwgcm93LCBjb2x1bW4ua2V5KSA/IGdldEN1c3RvbUNsYXNzKGNvbHVtbiwgcm93LCBjb2x1bW4ua2V5KSA6ICcnXVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAqbmdJZj1cImNvbHVtbj8uc3RhdHVzPy5jb2xvcjsgZWxzZSBjb21tb25Db2x1bW5cIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtYXBhLXRhYmxlX19jb2x1bW4tLXN0YXR1c1wiXG4gICAgICAgICAgICAgICAgICBbc3R5bGUuYmFja2dyb3VuZENvbG9yXT1cImdldEJhY2tncm91bmRDb2xvcihjb2x1bW4sIHJvdylcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwidGFibGVDb250ZW50XCJcbiAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgc2VsZWN0aW9uLCBjb2x1bW4sIGlzRmlyc3QsIGNoZWNrYm94LCByb3cgfVwiXG4gICAgICAgICAgICAgICAgICA+PC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNjb21tb25Db2x1bW4+XG4gICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRhYmxlQ29udGVudFwiXG4gICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7IHNlbGVjdGlvbiwgY29sdW1uLCBpc0ZpcnN0LCBjaGVja2JveCwgcm93IH1cIlxuICAgICAgICAgICAgICAgICAgPjwvZGl2PlxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaXNHcm91cFJlcG9ydFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgW25nQ2xhc3NdPVwiZ2V0Q2VsbENsYXNzKGNvbHVtbiwgcm93KVwiPlxuICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImNvbHVtbi5rZXkgPT09ICduYW1lJyB8fCBjb2x1bW4ua2V5ID09PSAnY3BmJyB8fCBjb2x1bW4ua2V5ID09PSAnZ2VuZXJhbCc7IGVsc2UgdmFsdWVDb250ZW50XCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImNvbHVtbi5rZXkgPT09ICduYW1lJ1wiPlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJuYW1lXCI+e3sgcm93Lm5hbWUgfX08YnIgLz48L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3BmXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7e3Jvdy5jcGZ9fVxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImNvbHVtbi5rZXkgPT09ICdnZW5lcmFsJ1wiIGNsYXNzPVwiZ2VuZXJhbFwiPlxuICAgICAgICAgICAgICAgICAgICAgIHt7IHJvd1tjb2x1bW4ua2V5XSB8IGN1cnJlbmN5OicnOicnIH19JVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICN2YWx1ZUNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgICAgIHt7IGdldFZhbHVlKHJvd1tjb2x1bW4ua2V5XSkgfX1cbiAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNjb2x1bW5BY3Rpb25zT3JNZW51PlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBjbGFzcz1cIm1hcGEtdGFibGVfX2NvbHVtbi0tYWN0aW9uc1wiXG4gICAgICAgICAgICAgICpuZ0lmPVwiY29sdW1uLmtleSA9PT0gJ2FjdGlvbnMnICYmIGFjdGlvbnNcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgYWN0aW9uc1wiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImhhbmRsZU1lbnUoe2RhdGE6IHJvdywgYWN0aW9uOiBpdGVtLmFjdGlvbn0pXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cIm1hcGEtdGFibGVfX2NvbHVtbi0tYWN0aW9ucy1pdGVtXCJcbiAgICAgICAgICAgICAgICBbdGl0bGVdPVwiaXRlbS50ZXh0XCJcbiAgICAgICAgICAgICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxtYXQtaWNvbiAqbmdJZj1cIml0ZW0uaWNvblwiPnt7aXRlbS5pY29ufX08L21hdC1pY29uPlxuICAgICAgICAgICAgICAgIDxpbWcgKm5nSWY9XCJpdGVtLmltYWdlXCIgW3NyY109XCJpdGVtLmltYWdlXCIgLz5cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYXBhLXRhYmxlX19jb2x1bW4tLW1lbnVcIiAqbmdJZj1cImNvbHVtbi5rZXkgPT09ICdtZW51J1wiPlxuICAgICAgICAgICAgICA8bWFwYS1tZW51IFtpdGVtc109XCJtZW51SXRlbXNcIiBbZGF0YV09XCJyb3dcIiAoZW1pdE1lbnUpPVwiaGFuZGxlTWVudSgkZXZlbnQpXCI+PC9tYXBhLW1lbnU+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvdGQ+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8dHIgbWF0LWhlYWRlci1yb3cgKm1hdEhlYWRlclJvd0RlZj1cImRpc3BsYXllZENvbHVtbnNcIj48L3RyPlxuICAgIDx0clxuICAgICAgbWF0LXJvd1xuICAgICAgKm1hdFJvd0RlZj1cImxldCByb3c7IGNvbHVtbnM6IGRpc3BsYXllZENvbHVtbnM7XCJcbiAgICAgIFtuZ0NsYXNzXT1cImdldFJvd0NsYXNzKClcIlxuICAgID48L3RyPlxuICA8L3RhYmxlPlxuXG4gIDxzZWN0aW9uICpuZ0lmPVwiIWlzR3JvdXBSZXBvcnRcIj5cbiAgICA8bWF0LXBhZ2luYXRvclxuICAgICAgY2xhc3M9XCJtYXBhLXRhYmxlX19wYWdpbmF0b3ItbGVnYWN5XCJcbiAgICAgIGl0ZW1zUGVyUGFnZUxhYmVsPVwiSXRlbSBwb3IgcMOhZ2luYVwiXG4gICAgICBhcHBTdHlsZVBhZ2luYXRvck12XG4gICAgICBbbGVuZ3RoXT1cInRvdGFsQ291bnRcIlxuICAgICAgW3BhZ2VTaXplXT1cInBhZ2VTaXplXCJcbiAgICAgIFtwYWdlU2l6ZU9wdGlvbnNdPVwiWzUsIDEwLCAyNSwgMTAwXVwiXG4gICAgICAocGFnZSk9XCJjaGFuZ2VQYWdlKCRldmVudClcIlxuICAgID48L21hdC1wYWdpbmF0b3I+XG4gIDwvc2VjdGlvbj5cbjwvc2VjdGlvbj5cblxuPG5nLXRlbXBsYXRlXG4gICN0YWJsZUhlYWRlclxuICBsZXQtc2VsZWN0aW9uPVwic2VsZWN0aW9uXCJcbiAgbGV0LWNvbHVtbj1cImNvbHVtblwiXG4gIGxldC1pc0ZpcnN0PVwiaXNGaXJzdFwiXG4gIGxldC1jaGVja2JveD1cImNoZWNrYm94XCJcbj5cbiAgPGRpdiBjbGFzcz1cIm1hcGEtdGFibGVfX2NvbHVtbiBtYXBhLXRhYmxlX19jb2x1bW4tLWhlYWRlclwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc0ZpcnN0ICYmIGNoZWNrYm94XCI+XG4gICAgICA8bWF0LWNoZWNrYm94XG4gICAgICAgICpuZ0lmPVwic2VsZWN0aW9uXCJcbiAgICAgICAgKGNoYW5nZSk9XCIkZXZlbnQgPyB0b2dnbGVBbGxSb3dzKCkgOiBudWxsXCJcbiAgICAgICAgW2NoZWNrZWRdPVwic2VsZWN0aW9uLmhhc1ZhbHVlKCkgJiYgaXNBbGxTZWxlY3RlZCgpXCJcbiAgICAgICAgW2luZGV0ZXJtaW5hdGVdPVwic2VsZWN0aW9uLmhhc1ZhbHVlKCkgJiYgIWlzQWxsU2VsZWN0ZWQoKVwiXG4gICAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgPjwvbWF0LWNoZWNrYm94PlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwibWFwYS10YWJsZV9fbGFiZWxcIlxuICAgICAgW25nQ2xhc3NdPVwieyAnbGFiZWxfcmVwb3J0JzogaXNHcm91cFJlcG9ydCB9XCJcbiAgICA+XG4gICAgICB7eyBjb2x1bW4ubGFiZWwgfX1cbiAgICA8L2Rpdj5cbiAgICA8ZGl2XG4gICAgICAqbmdJZj1cImNvbHVtbi5rZXkgIT09ICdhY3Rpb25zJyAmJiBjb2x1bW4ua2V5ICE9PSAnbWVudScgJiYgY29sdW1uLnNvcnRcIlxuICAgID5cbiAgICAgIDxtYXQtaWNvbj5maWx0ZXJfbGlzdDwvbWF0LWljb24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlXG4gICN0YWJsZUNvbnRlbnRcbiAgbGV0LXNlbGVjdGlvbj1cInNlbGVjdGlvblwiXG4gIGxldC1jb2x1bW49XCJjb2x1bW5cIlxuICBsZXQtaXNGaXJzdD1cImlzRmlyc3RcIlxuICBsZXQtY2hlY2tib3g9XCJjaGVja2JveFwiXG4gIGxldC1yb3c9XCJyb3dcIlxuPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNGaXJzdCAmJiBjaGVja2JveFwiPlxuICAgIDxtYXQtY2hlY2tib3hcbiAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgKGNoYW5nZSk9XCIkZXZlbnQgPyBzZWxlY3Rpb24/LnRvZ2dsZShyb3cpIDogbnVsbDsgZ2V0U2VsZWN0ZWRWYWx1ZXMoKVwiXG4gICAgICBbY2hlY2tlZF09XCJzZWxlY3Rpb24/LmlzU2VsZWN0ZWQocm93KVwiXG4gICAgPlxuICAgIDwvbWF0LWNoZWNrYm94PlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPCEtLSBQT1IgRkFWT1IsIE7Dg08gUVVFQlJFIExJTkhBIEVOVFJFIE5HLUNPTlRBSU5FUi9URU1QTEFURSBFIE8gVkFMT1IgQ09OVEXDmkRPICAtLT5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzTWFza2VkRGF0YShjb2x1bW4sIHJvdyk7IGVsc2Ugc3RhdHVzQ29udGVudFwiXG4gICAgPnt7IGdldFZhbHVlQXNEYXRlKGNvbHVtbiwgcm93KSB8IGRhdGU6IGNvbHVtbi5tYXNrIH19PC9uZy1jb250YWluZXJcbiAgPlxuICA8bmctdGVtcGxhdGUgI3N0YXR1c0NvbnRlbnQ+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbHVtbi5zdGF0dXM7IGVsc2UgY29tbW9uQ29udGVudFwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzQm9vbGVhbihjb2x1bW4sIHJvdyk7IGVsc2UgY29tbW9uU3RhdHVzXCJcbiAgICAgICAgPnt7IGNvbHVtbi5zdGF0dXMubGFiZWxbcm93W2NvbHVtbi5rZXldID8gMSA6IDBdIH19PC9uZy1jb250YWluZXJcbiAgICAgID5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjY29tbW9uU3RhdHVzXG4gICAgICAgID57eyBjb2x1bW4uc3RhdHVzLmxhYmVsW3Jvd1tjb2x1bW4ua2V5XV0gfHwgJy0nIH19PC9uZy10ZW1wbGF0ZVxuICAgICAgPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy10ZW1wbGF0ZSAjY29tbW9uQ29udGVudD57eyByb3dbY29sdW1uLmtleV0gfX08L25nLXRlbXBsYXRlPlxuICA8L25nLXRlbXBsYXRlPlxuICA8bmctdGVtcGxhdGUgI3N0YXR1c0NvbnRlbnQ+XG4gICAgPG5nLXRlbXBsYXRlICNjb21tb25Db250ZW50Pnt7IHJvd1tjb2x1bW4ua2V5XSB9fTwvbmctdGVtcGxhdGU+XG4gIDwvbmctdGVtcGxhdGU+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
350
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFwYS1saWJyYXJ5LXVpL3NyYy9saWIvY29tcG9uZW50cy90YWJsZS9zcmMvdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFwYS1saWJyYXJ5LXVpL3NyYy9saWIvY29tcG9uZW50cy90YWJsZS9zcmMvdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUdMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFFTixTQUFTLEVBQ1QsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUU1QixPQUFPLEVBQUUsWUFBWSxFQUFhLE1BQU0sNkJBQTZCLENBQUM7QUFDdEUsT0FBTyxFQUFFLE9BQU8sRUFBUSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBSzdELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7Ozs7Ozs7QUFZeEQsTUFBTSxPQUFPLGtCQUFrQjtJQWdDN0IsWUFBb0IsR0FBc0I7UUFBdEIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUEvQmpDLFlBQU8sR0FBa0IsRUFBRSxDQUFDO1FBQzVCLFNBQUksR0FBYSxFQUFFLENBQUM7UUFDcEIsY0FBUyxHQUFXLENBQUMsQ0FBQztRQUN0QixhQUFRLEdBQVcsQ0FBQyxDQUFDO1FBQ3JCLGVBQVUsR0FBVyxDQUFDLENBQUM7UUFDdkIsZUFBVSxHQUFXLENBQUMsQ0FBQztRQUt2QixnQkFBVyxHQUFzQixFQUFFLENBQUM7UUFFcEMsY0FBUyxHQUFlLEVBQUUsQ0FBQztR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QUFJLEdBQUcsS0FBSyxJQUFJO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFDNUMsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDOztnSEF2VlUsa0JBQWtCO29HQUFsQixrQkFBa0IsOGdCQWdCbEIsY0FBYyw0RUFRZCxZQUFZLDJCQUFVLElBQUksb0RBQzFCLE9BQU8scUVDNURwQix5OU9BMk1BOzRGRHhLYSxrQkFBa0I7a0JBVDlCLFNBQVM7K0JBQ0UsWUFBWSxpQkFNUCxpQkFBaUIsQ0FBQyxJQUFJO3dHQUc1QixPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFFcUIsT0FBTztzQkFBakMsU0FBUzt1QkFBQyxjQUFjO2dCQUVmLFFBQVE7c0JBQWpCLE1BQU07Z0JBR0csWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxZQUFZO3NCQUFyQixNQUFNO2dCQUVrQyxTQUFTO3NCQUFqRCxTQUFTO3VCQUFDLFlBQVksRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUU7Z0JBQ25CLElBQUk7c0JBQXZCLFNBQVM7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNlbGVjdGlvbk1vZGVsIH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9jb2xsZWN0aW9uc1wiO1xuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBGb3JtR3JvdXAsIEZvcm1Db250cm9sIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5pbXBvcnQgbW9tZW50IGZyb20gXCJtb21lbnRcIjtcblxuaW1wb3J0IHsgTWF0UGFnaW5hdG9yLCBQYWdlRXZlbnQgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvcGFnaW5hdG9yXCI7XG5pbXBvcnQgeyBNYXRTb3J0LCBTb3J0IH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL3NvcnRcIjtcbmltcG9ydCB7IE1hdFRhYmxlRGF0YVNvdXJjZSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC90YWJsZVwiO1xuXG5pbXBvcnQgeyBSb3dDbGlja0V2ZW50IH0gZnJvbSBcIi4uLy4uLy4uL2NvcmUvaW50ZXJmYWNlcy90YWJsZS1yb3ctY2xpY2stZXZlbnQuaW50ZXJmYWNlXCI7XG5pbXBvcnQgeyBUYWJsZUNvbHVtbiB9IGZyb20gXCIuLi8uLi8uLi9jb3JlL2ludGVyZmFjZXMvdGFibGUtY29sdW1uLmludGVyZmFjZVwiO1xuaW1wb3J0IHsgR3JvdXBSZXBvcnRJdGVtIH0gZnJvbSBcIi4vZ3JvdXAtcmVwb3J0LWludGVyZmFjZVwiO1xuaW1wb3J0IHsgTWF0TWVudVRyaWdnZXIgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudVwiO1xuaW1wb3J0IHsgTWVudUl0ZW0gfSBmcm9tIFwiLi4vLi4vbWVudS9wdWJsaWMtYXBpXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJtYXBhLXRhYmxlXCIsXG4gIHRlbXBsYXRlVXJsOiBcIi4vdGFibGUuY29tcG9uZW50Lmh0bWxcIixcbiAgc3R5bGVVcmxzOiBbXG4gICAgXCIuL3RhYmxlLmNvbXBvbmVudC5zY3NzXCIsXG4gICAgXCIuLy4uLy4uL2NhcGFiaWxpdHkvc3R5bGVzL2NhcGFiaWxpdHkuc2Nzc1wiLFxuICBdLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBNYXBhVGFibGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xuICBASW5wdXQoKSBjb2x1bW5zOiBUYWJsZUNvbHVtbltdID0gW107XG4gIEBJbnB1dCgpIGRhdGE6IE9iamVjdFtdID0gW107XG4gIEBJbnB1dCgpIHBhZ2VJbmRleDogbnVtYmVyID0gMTtcbiAgQElucHV0KCkgcGFnZVNpemU6IG51bWJlciA9IDU7XG4gIEBJbnB1dCgpIHRvdGFsQ291bnQ6IG51bWJlciA9IDA7XG4gIEBJbnB1dCgpIHRvdGFsUGFnZXM6IG51bWJlciA9IDA7XG4gIEBJbnB1dCgpIGNoZWNrYm94OiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICBASW5wdXQoKSBzZWxlY3Rpb246IFNlbGVjdGlvbk1vZGVsPGFueT4gfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIGFjdGlvbnM/OiBNZW51SXRlbVtdIHwgdW5kZWZpbmVkO1xuICBASW5wdXQoKSBmaWx0ZXJDb250cm9sOiBGb3JtQ29udHJvbCB8IHVuZGVmaW5lZDtcbiAgQElucHV0KCkgZ3JvdXBSZXBvcnQ6IEdyb3VwUmVwb3J0SXRlbVtdID0gW107XG4gIEBJbnB1dCgpIGlzR3JvdXBSZXBvcnQ6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIG1lbnVJdGVtczogTWVudUl0ZW1bXSA9IFtdO1xuICBASW5wdXQoKSBtZW51OiBib29sZWFuIHwgdW5kZWZpbmVkO1xuXG4gIEBWaWV3Q2hpbGQoTWF0TWVudVRyaWdnZXIpIHRyaWdnZXIhOiBNYXRNZW51VHJpZ2dlcjtcblxuICBAT3V0cHV0KCkgcm93Q2xpY2s6IEV2ZW50RW1pdHRlcjxSb3dDbGlja0V2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8XG4gICAgUm93Q2xpY2tFdmVudFxuICA+KCk7XG4gIEBPdXRwdXQoKSBzZWxlY3RlZFJvd3M6IEV2ZW50RW1pdHRlcjxhbnlbXT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueVtdPigpO1xuICBAT3V0cHV0KCkgb25DaGFuZ2VQYWdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIEBWaWV3Q2hpbGQoTWF0UGFnaW5hdG9yLCB7IHJlYWQ6IHRydWUgfSkgcGFnaW5hdG9yITogTWF0UGFnaW5hdG9yO1xuICBAVmlld0NoaWxkKE1hdFNvcnQpIHNvcnQhOiBNYXRTb3J0O1xuXG4gIGNoZWNrYm94R3JvdXAhOiBGb3JtR3JvdXA7XG4gIGRhdGFTb3VyY2UhOiBNYXRUYWJsZURhdGFTb3VyY2U8T2JqZWN0PjtcbiAgZGlzcGxheWVkQ29sdW1uczogc3RyaW5nW10gPSBbXTtcbiAgY3VycmVudFNvcnQ6IFNvcnQgfCB1bmRlZmluZWQ7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzR3JvdXBSZXBvcnQpIHtcbiAgICAgIHRoaXMuZ2VuZXJhdGVDb2x1bW5zKCk7XG4gICAgICB0aGlzLmdlbmVyYXRlR3JvdXBEYXRhKCk7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZGF0YVNvdXJjZSA9IG5ldyBNYXRUYWJsZURhdGFTb3VyY2UodGhpcy5kYXRhKTtcbiAgICB0aGlzLmRhdGFTb3VyY2Uuc29ydCA9IHRoaXMuc29ydDtcbiAgICB0aGlzLmRpc3BsYXllZENvbHVtbnMgPSB0aGlzLmNvbHVtbnMubWFwKChjb2x1bW4pID0+IGNvbHVtbi5rZXkpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmIChjaGFuZ2VzW1wiZGF0YVwiXSkge1xuICAgICAgaWYgKHRoaXMuZGF0YVNvdXJjZSkge1xuICAgICAgICB0aGlzLmRhdGEgPSBjaGFuZ2VzW1wiZGF0YVwiXS5jdXJyZW50VmFsdWU7XG4gICAgICAgIHRoaXMuZGF0YVNvdXJjZSA9IG5ldyBNYXRUYWJsZURhdGFTb3VyY2UodGhpcy5kYXRhKTtcbiAgICAgICAgdGhpcy5kYXRhU291cmNlLnNvcnQgPSB0aGlzLnNvcnQ7XG4gICAgICAgIHRoaXMuZGlzcGxheWVkQ29sdW1ucyA9IHRoaXMuY29sdW1ucy5tYXAoKGNvbHVtbikgPT4gY29sdW1uLmtleSk7XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoY2hhbmdlc1tcImZpbHRlckNvbnRyb2xcIl0gJiYgdGhpcy5maWx0ZXJDb250cm9sKSB7XG4gICAgICB0aGlzLnNldHVwRmlsdGVyKCk7XG4gICAgfVxuICB9XG5cbiAgc2V0dXBGaWx0ZXIoKSB7XG4gICAgaWYgKHRoaXMuZGF0YVNvdXJjZSkge1xuICAgICAgdGhpcy5maWx0ZXJDb250cm9sIS52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKCh2YWx1ZTogc3RyaW5nKSA9PiB7XG4gICAgICAgIHRoaXMuZGF0YVNvdXJjZS5maWx0ZXIgPSB2YWx1ZS50cmltKCkudG9Mb3dlckNhc2UoKTtcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLmRhdGFTb3VyY2UuZmlsdGVyUHJlZGljYXRlID0gKGRhdGE6IGFueSwgZmlsdGVyOiBzdHJpbmcpID0+IHtcbiAgICAgICAgY29uc3QgZGF0YVN0ciA9IE9iamVjdC5rZXlzKGRhdGEpXG4gICAgICAgICAgLnJlZHVjZSgoY3VycmVudFRlcm0sIGtleSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgY3VycmVudFRlcm0gK1xuICAgICAgICAgICAgICAoKGRhdGFba2V5XSAmJiBkYXRhW2tleV0udG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpKSB8fCBcIlwiKSArXG4gICAgICAgICAgICAgIFwiIFwiXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0sIFwiXCIpXG4gICAgICAgICAgLnRyaW0oKVxuICAgICAgICAgIC50b0xvd2VyQ2FzZSgpO1xuXG4gICAgICAgIHJldHVybiBkYXRhU3RyLmluZGV4T2YoZmlsdGVyKSAhPT0gLTE7XG4gICAgICB9O1xuICAgIH1cbiAgfVxuXG4gIGlzQWxsU2VsZWN0ZWQoKSB7XG4gICAgaWYgKHRoaXMuc2VsZWN0aW9uKSB7XG4gICAgICBjb25zdCBudW1TZWxlY3RlZCA9IHRoaXMuc2VsZWN0aW9uLnNlbGVjdGVkLmxlbmd0aDtcbiAgICAgIGNvbnN0IG51bVJvd3MgPSB0aGlzLmRhdGFTb3VyY2UuZGF0YS5sZW5ndGg7XG4gICAgICByZXR1cm4gbnVtU2VsZWN0ZWQgPT09IG51bVJvd3M7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHRvZ2dsZUFsbFJvd3MoKSB7XG4gICAgaWYgKHRoaXMuc2VsZWN0aW9uKSB7XG4gICAgICBpZiAodGhpcy5pc0FsbFNlbGVjdGVkKCkpIHtcbiAgICAgICAgdGhpcy5zZWxlY3Rpb24uY2xlYXIoKTtcbiAgICAgICAgdGhpcy5nZXRTZWxlY3RlZFZhbHVlcygpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgZGF0YUFzUGVyaW9kaWNFbGVtZW50cyA9IHRoaXMuZGF0YVNvdXJjZS5kYXRhIGFzIGFueVtdO1xuICAgICAgICBkYXRhQXNQZXJpb2RpY0VsZW1lbnRzLmZvckVhY2goKHJvdykgPT4gdGhpcy5zZWxlY3Rpb24/LnNlbGVjdChyb3cpKTtcbiAgICAgICAgdGhpcy5nZXRTZWxlY3RlZFZhbHVlcygpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGNoZWNrYm94TGFiZWwocm93PzogYW55KTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5zZWxlY3Rpb24pIHtcbiAgICAgIGlmICghcm93KSB7XG4gICAgICAgIHJldHVybiBgJHt0aGlzLmlzQWxsU2VsZWN0ZWQoKSA/IFwiZGVzZWxlY3RcIiA6IFwic2VsZWN0XCJ9IGFsbGA7XG4gICAgICB9XG4gICAgICByZXR1cm4gYCR7dGhpcy5zZWxlY3Rpb24uaXNTZWxlY3RlZChyb3cpID8gXCJkZXNlbGVjdFwiIDogXCJzZWxlY3RcIn0gcm93ICR7XG4gICAgICAgIHJvdy5wb3NpdGlvbiArIDFcbiAgICAgIH1gO1xuICAgIH1cbiAgICByZXR1cm4gXCJcIjtcbiAgfVxuXG4gIHNvcnREYXRhKGNvbHVtbjogVGFibGVDb2x1bW4pOiB2b2lkIHtcbiAgICBpZiAoY29sdW1uLnNvcnQpIHtcbiAgICAgIGNvbnN0IHNvcnQ6IFNvcnQgPSB7IGFjdGl2ZTogY29sdW1uLmtleSwgZGlyZWN0aW9uOiBcImFzY1wiIH07XG5cbiAgICAgIGlmIChcbiAgICAgICAgdGhpcy5jdXJyZW50U29ydCAmJlxuICAgICAgICB0aGlzLmN1cnJlbnRTb3J0LmFjdGl2ZSA9PT0gY29sdW1uLmtleSAmJlxuICAgICAgICB0aGlzLmN1cnJlbnRTb3J0LmRpcmVjdGlvbiA9PT0gXCJhc2NcIlxuICAgICAgKSB7XG4gICAgICAgIHNvcnQuZGlyZWN0aW9uID0gXCJkZXNjXCI7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuY3VycmVudFNvcnQgPSBzb3J0O1xuICAgICAgdGhpcy5zb3J0RGF0YUZ1bmN0aW9uKHNvcnQpO1xuICAgIH1cbiAgfVxuXG4gIHNvcnREYXRhRnVuY3Rpb24oc29ydDogU29ydCkge1xuICAgIGNvbnN0IGRhdGEgPSB0aGlzLmRhdGFTb3VyY2UuZGF0YS5zbGljZSgpO1xuXG4gICAgaWYgKCFzb3J0LmFjdGl2ZSB8fCBzb3J0LmRpcmVjdGlvbiA9PT0gXCJcIikge1xuICAgICAgdGhpcy5kYXRhU291cmNlLmRhdGEgPSBkYXRhO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuZGF0YVNvdXJjZS5kYXRhID0gZGF0YS5zb3J0KChhOiBhbnksIGI6IGFueSkgPT4ge1xuICAgICAgY29uc3QgaXNBc2MgPSBzb3J0LmRpcmVjdGlvbiA9PT0gXCJhc2NcIjtcbiAgICAgIHJldHVybiB0aGlzLmNvbXBhcmUoYVtzb3J0LmFjdGl2ZV0sIGJbc29ydC5hY3RpdmVdLCBpc0FzYyk7XG4gICAgfSk7XG4gIH1cblxuICBjb21wYXJlKGE6IGFueSwgYjogYW55LCBpc0FzYzogYm9vbGVhbikge1xuICAgIGlmICh0eXBlb2YgYSA9PT0gXCJzdHJpbmdcIiAmJiB0eXBlb2YgYiA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgcmV0dXJuIChhLnRvTG93ZXJDYXNlKCkgPCBiLnRvTG93ZXJDYXNlKCkgPyAtMSA6IDEpICogKGlzQXNjID8gMSA6IC0xKTtcbiAgICB9XG4gICAgcmV0dXJuIChhIDwgYiA/IC0xIDogMSkgKiAoaXNBc2MgPyAxIDogLTEpO1xuICB9XG5cbiAgZW1pdFJvd0NsaWNrKHJvdzogc3RyaW5nLCBhY3Rpb246IHN0cmluZykge1xuICAgIGNvbnN0IHJvd0RhdGE6IFJvd0NsaWNrRXZlbnQgPSB7IHJvdywgYWN0aW9uIH07XG4gICAgdGhpcy5yb3dDbGljay5lbWl0KHJvd0RhdGEpO1xuICB9XG5cbiAgdG9nZ2xlU2VsZWN0aW9uKHJvdzogYW55KSB7XG4gICAgaWYgKHRoaXMuc2VsZWN0aW9uKSB7XG4gICAgICBpZiAodGhpcy5zZWxlY3Rpb24uaXNTZWxlY3RlZChyb3cpKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0aW9uLmRlc2VsZWN0KHJvdyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnNlbGVjdGlvbi5zZWxlY3Qocm93KTtcbiAgICAgIH1cbiAgICAgIHRoaXMuZ2V0U2VsZWN0ZWRWYWx1ZXMoKTtcbiAgICB9XG4gIH1cblxuICBnZXRTZWxlY3RlZFZhbHVlcygpIHtcbiAgICBpZiAodGhpcy5zZWxlY3Rpb24pIHtcbiAgICAgIGNvbnN0IHNlbGVjdGVkUm93cyA9IHRoaXMuc2VsZWN0aW9uLnNlbGVjdGVkLm1hcCgocm93KSA9PiB7XG4gICAgICAgIHJldHVybiB7IHJvdyB9O1xuICAgICAgfSk7XG4gICAgICB0aGlzLnNlbGVjdGVkUm93cy5lbWl0KHNlbGVjdGVkUm93cyk7XG4gICAgfVxuICB9XG5cbiAgZ2VuZXJhdGVDb2x1bW5zKCkge1xuICAgIGNvbnN0IGNvbHVtbnM6IFRhYmxlQ29sdW1uW10gPSBbXG4gICAgICB7IGtleTogXCJuYW1lXCIsIGxhYmVsOiBcIlwiLCBzb3J0OiBmYWxzZSB9LFxuICAgICAgeyBrZXk6IFwiZ2VuZXJhbFwiLCBsYWJlbDogXCIlIEdlcmFsXCIsIHNvcnQ6IHRydWUgfSxcbiAgICBdO1xuICAgIHRoaXMuZ3JvdXBSZXBvcnQuZm9yRWFjaCgocmVwb3J0SXRlbSkgPT4ge1xuICAgICAgcmVwb3J0SXRlbS5kaW1lbnNpb25zPy5mb3JFYWNoKChkaW1lbnNpb24pID0+IHtcbiAgICAgICAgY29uc3QgZGltZW5zaW9uS2V5ID0gZGltZW5zaW9uLmRpbWVuc2lvbk5hbWUudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgY29uc3QgZGltZW5zaW9uTGFiZWwgPSBkaW1lbnNpb24uZGltZW5zaW9uTmFtZTtcbiAgICAgICAgaWYgKCF0aGlzLmNvbHVtbkV4aXN0cyhjb2x1bW5zLCBkaW1lbnNpb25LZXkpKSB7XG4gICAgICAgICAgY29sdW1ucy5wdXNoKHtcbiAgICAgICAgICAgIGtleTogZGltZW5zaW9uS2V5LFxuICAgICAgICAgICAgbGFiZWw6IGRpbWVuc2lvbkxhYmVsLFxuICAgICAgICAgICAgc29ydDogZGltZW5zaW9uLnNvcnQgfHwgZmFsc2UsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICByZXBvcnRJdGVtLmluZGljYXRvcnM/LmZvckVhY2goKGluZGljYXRvcikgPT4ge1xuICAgICAgICBjb25zdCBpbmRpY2F0b3JLZXkgPSBpbmRpY2F0b3IubmFtZS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICBjb25zdCBpbmRpY2F0b3JMYWJlbCA9IGluZGljYXRvci5uYW1lO1xuICAgICAgICBpZiAoIXRoaXMuY29sdW1uRXhpc3RzKGNvbHVtbnMsIGluZGljYXRvcktleSkpIHtcbiAgICAgICAgICBjb2x1bW5zLnB1c2goe1xuICAgICAgICAgICAga2V5OiBpbmRpY2F0b3JLZXksXG4gICAgICAgICAgICBsYWJlbDogaW5kaWNhdG9yTGFiZWwsXG4gICAgICAgICAgICBzb3J0OiBpbmRpY2F0b3Iuc29ydCB8fCBmYWxzZSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICB0aGlzLmNvbHVtbnMgPSBjb2x1bW5zO1xuICB9XG5cbiAgY29sdW1uRXhpc3RzKGNvbHVtbnM6IFRhYmxlQ29sdW1uW10sIGtleTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGNvbHVtbnMuc29tZSgoY29sdW1uKSA9PiBjb2x1bW4ua2V5ID09PSBrZXkpO1xuICB9XG5cbiAgZ2VuZXJhdGVHcm91cERhdGEoKSB7XG4gICAgY29uc3QgcmVzdWx0OiB7IFtrZXk6IHN0cmluZ106IGFueSB9W10gPSBbXTtcblxuICAgIHRoaXMuZ3JvdXBSZXBvcnQuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgY29uc3QgZGF0YUl0ZW06IHsgW2tleTogc3RyaW5nXTogYW55IH0gPSB7XG4gICAgICAgIG5hbWU6IGl0ZW0uY2FuZGlkYXRlLm5hbWUsXG4gICAgICAgIGNwZjogaXRlbS5jYW5kaWRhdGUuY3BmLFxuICAgICAgICBnZW5lcmFsOiBpdGVtLmNhbmRpZGF0ZS5nZW5lcmFsLFxuICAgICAgfTtcblxuICAgICAgaXRlbS5kaW1lbnNpb25zPy5mb3JFYWNoKChkaW1lbnNpb24pID0+IHtcbiAgICAgICAgZGF0YUl0ZW1bZGltZW5zaW9uLmRpbWVuc2lvbk5hbWUudG9Mb3dlckNhc2UoKV0gPSB7XG4gICAgICAgICAgdmFsdWU6IGRpbWVuc2lvbi5lc2NvcmVULFxuICAgICAgICAgIGRpcmVjdGlvbjogZGltZW5zaW9uLmRpcmVjdGlvbixcbiAgICAgICAgICBjbGFzc2lmaWNhdGlvbklkOiBkaW1lbnNpb24uY2xhc3NpZmljYXRpb25JZCxcbiAgICAgICAgfTtcbiAgICAgIH0pO1xuXG4gICAgICBpdGVtLmluZGljYXRvcnM/LmZvckVhY2goKGluZGljYXRvcikgPT4ge1xuICAgICAgICBkYXRhSXRlbVtpbmRpY2F0b3IubmFtZS50b0xvd2VyQ2FzZSgpXSA9IHtcbiAgICAgICAgICB2YWx1ZTogaW5kaWNhdG9yLmludGVydmFsLFxuICAgICAgICAgIGRpcmVjdGlvbjogaW5kaWNhdG9yLmRpcmVjdGlvbixcbiAgICAgICAgICBjbGFzc2lmaWNhdGlvbklkOiBpbmRpY2F0b3IuY2xhc3NpZmljYXRpb25JZCxcbiAgICAgICAgfTtcbiAgICAgIH0pO1xuXG4gICAgICByZXN1bHQucHVzaChkYXRhSXRlbSk7XG4gICAgfSk7XG5cbiAgICB0aGlzLmRhdGEgPSByZXN1bHQ7XG4gIH1cblxuICBpc0Jvb2xlYW4oY29sdW1uOiBUYWJsZUNvbHVtbiwgcm93OiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdHlwZW9mIHJvd1tjb2x1bW4ua2V5XSA9PT0gXCJib29sZWFuXCI7XG4gIH1cblxuICBpc01hc2tlZERhdGEoY29sdW1uOiBUYWJsZUNvbHVtbiwgcm93OiBhbnkpOiBib29sZWFuIHtcbiAgICBjb25zdCBmb3JtYXRzID0gW21vbWVudC5JU09fODYwMSwgXCJNTS9ERC9ZWVlZICA6KSAgSEgqbW0qc3NcIl07XG4gICAgY29uc3QgaXNEYXRlID0gbW9tZW50KHJvd1tjb2x1bW4ua2V5XSwgZm9ybWF0cywgdHJ1ZSkuaXNWYWxpZCgpO1xuICAgIHJldHVybiAoY29sdW1uLm1hc2sgJiYgaXNEYXRlKSB8fCBmYWxzZTtcbiAgfVxuXG4gIGdldFZhbHVlQXNEYXRlKGNvbHVtbjogVGFibGVDb2x1bW4sIHJvdzogYW55KTogRGF0ZSB7XG4gICAgcmV0dXJuIG5ldyBEYXRlKHJvd1tjb2x1bW4ua2V5XSk7XG4gIH1cblxuICBnZXRDZWxsQ2xhc3MoY29sdW1uOiBUYWJsZUNvbHVtbiwgcm93OiBhbnkpOiBzdHJpbmcge1xuICAgIGlmIChcbiAgICAgICF0aGlzLmlzR3JvdXBSZXBvcnQgfHxcbiAgICAgIGNvbHVtbi5rZXkgPT09IFwibmFtZVwiIHx8XG4gICAgICBjb2x1bW4ua2V5ID09PSBcImNwZlwiIHx8XG4gICAgICBjb2x1bW4ua2V5ID09PSBcImdlbmVyYWxcIlxuICAgICkge1xuICAgICAgcmV0dXJuIFwiXCI7XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICBjb25zdCBjbGFzc2lmaWNhdGlvbiA9IHJvd1tjb2x1bW4ua2V5XT8uY2xhc3NpZmljYXRpb25JZDtcbiAgICAgIHJldHVybiBgY2xhc3NpZmljYXRpb24gY2xhc3NpZmljYXRpb24tJHtjbGFzc2lmaWNhdGlvbn1gO1xuICAgIH0gY2F0Y2gge1xuICAgICAgcmV0dXJuIFwiXCI7XG4gICAgfVxuICB9XG5cbiAgZ2V0Um93Q2xhc3MoKTogeyBba2V5OiBzdHJpbmddOiBib29sZWFuIH0ge1xuICAgIHJldHVybiB7XG4gICAgICBcInJvdy1ob3ZlclwiOiAhdGhpcy5pc0dyb3VwUmVwb3J0LFxuICAgIH07XG4gIH1cblxuICBnZXRWYWx1ZShyb3c6IHsgdmFsdWU6IHN0cmluZyB9KTogc3RyaW5nIHtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIHJvdy52YWx1ZSArIFwiJVwiO1xuICAgIH0gY2F0Y2gge1xuICAgICAgcmV0dXJuIFwiLVwiO1xuICAgIH1cbiAgfVxuXG4gIGNoYW5nZVBhZ2UoZXZlbnQ/OiBQYWdlRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlUGFnZS5lbWl0KGV2ZW50KTtcbiAgfVxuXG4gIHRvZ2dsZU1lbnUoKSB7XG4gICAgdGhpcy50cmlnZ2VyLm9wZW5NZW51KCk7XG4gIH1cblxuICBnZXRCYWNrZ3JvdW5kQ29sb3IoY29sdW1uOiBUYWJsZUNvbHVtbiwgcm93OiBhbnkpOiBzdHJpbmcge1xuICAgIHJldHVybiBjb2x1bW4uc3RhdHVzPy5jb2xvcj8uW3Jvd1tjb2x1bW4ua2V5XSB8fCAwXSB8fCBcIlwiO1xuICB9XG5cbiAgaGFzQ3VzdG9tQ2xhc3MoY29sdW1uOiBUYWJsZUNvbHVtbiwgcm93OiBhbnksIGtleTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgaWYgKGNvbHVtbj8uY2xhc3MgfHwgcm93Py5yb3dTdHlsZUNsYXNzIHx8IHRoaXMuaGFzQ2VsbFN0eWxlQ2xhc3Mocm93LCBrZXkpKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgZ2V0Q3VzdG9tQ2xhc3MoY29sdW1uOiBUYWJsZUNvbHVtbiwgcm93OiBhbnksIGtleTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5oYXNDZWxsU3R5bGVDbGFzcyhyb3csIGtleSkpIHtcbiAgICAgIHJldHVybiB0aGlzLmdldENlbGxTdHlsZUNsYXNzKHJvdywgY29sdW1uLmtleSk7XG4gICAgfSBlbHNlIGlmIChjb2x1bW4/LmNsYXNzKSB7XG4gICAgICByZXR1cm4gY29sdW1uLmNsYXNzO1xuICAgIH0gZWxzZSBpZiAocm93Py5yb3dTdHlsZUNsYXNzKSB7XG4gICAgICByZXR1cm4gcm93LnJvd1N0eWxlQ2xhc3M7XG4gICAgfVxuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIGhhc0NlbGxTdHlsZUNsYXNzKHJvdzogYW55LCBrZXk6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiByb3cuc3R5bGVDbGFzcz8ua2V5ID09PSBrZXk7XG4gIH07XG5cbiAgZ2V0Q2VsbFN0eWxlQ2xhc3Mocm93OiBhbnksIGtleTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gcm93LnN0eWxlQ2xhc3M/LmtleSA9PT0ga2V5ID8gcm93LnN0eWxlQ2xhc3M/LmNsYXNzIDogJyc7XG4gIH07XG5cbiAgaGFuZGxlTWVudShzZWxlY3RlZDogYW55KSB7XG4gICAgdGhpcy5lbWl0Um93Q2xpY2soc2VsZWN0ZWQuZGF0YSwgc2VsZWN0ZWQuYWN0aW9uKTtcbiAgfVxuXG4gIGhhc0luZGl2aWR1YWxNZW51KHJvdzogYW55KTogYm9vbGVhbiB7XG4gICAgaWYgKHJvdyAhPT0gXCJcIiAmJiByb3cgIT09IG51bGwpIHJldHVybiB0cnVlO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBcbn1cbiIsIjxzZWN0aW9uIGNsYXNzPVwibWFwYS10YWJsZVwiPlxuICA8dGFibGVcbiAgICBtYXQtdGFibGVcbiAgICBbZGF0YVNvdXJjZV09XCJkYXRhU291cmNlXCJcbiAgICBtYXRTb3J0XG4gICAgKG1hdFNvcnRDaGFuZ2UpPVwic29ydERhdGFGdW5jdGlvbigkZXZlbnQpXCJcbiAgPlxuICAgIDxuZy1jb250YWluZXJcbiAgICAgICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgY29sdW1uczsgbGV0IGlzRmlyc3QgPSBmaXJzdFwiXG4gICAgICBbbWF0Q29sdW1uRGVmXT1cImNvbHVtbi5rZXlcIlxuICAgID5cbiAgICAgIDx0aFxuICAgICAgICBtYXQtaGVhZGVyLWNlbGxcbiAgICAgICAgKm1hdEhlYWRlckNlbGxEZWZcbiAgICAgICAgbWF0LXNvcnQtaGVhZGVyXG4gICAgICAgIFtkaXNhYmxlZF09XCIhKGNvbHVtbi5rZXkgIT09ICdhY3Rpb25zJyA/IGNvbHVtbi5zb3J0IDogbnVsbClcIlxuICAgICAgPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwidGFibGVIZWFkZXJcIlxuICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7IHNlbGVjdGlvbiwgY29sdW1uLCBpc0ZpcnN0LCBjaGVja2JveCB9XCJcbiAgICAgICAgPjwvZGl2PlxuICAgICAgPC90aD5cbiAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCByb3dcIiBbc3R5bGUud2lkdGhdPVwiY29sdW1uPy53aWR0aFwiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJtYXBhLXRhYmxlX19jb2x1bW5cIlxuICAgICAgICAgIChjbGljayk9XCJlbWl0Um93Q2xpY2socm93LCAnJylcIlxuICAgICAgICAgIFtjbGFzcy5tYXBhLXRhYmxlX19jb2x1bW4tLWNlbnRlci1jZWxsXT1cImNvbHVtbj8uYWxpZ24gPT09ICdjZW50ZXInIHx8IGlzR3JvdXBSZXBvcnQgJiYgY29sdW1uLmtleSAhPT0gJ25hbWUnXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICpuZ0lmPVwiY29sdW1uLmtleSAhPT0gJ2FjdGlvbnMnICYmIGNvbHVtbi5rZXkgIT09ICdtZW51JzsgZWxzZSBjb2x1bW5BY3Rpb25zT3JNZW51XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWFwYS10YWJsZV9fY29udGVudFwiPlxuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgKm5nSWY9XCIhaXNHcm91cFJlcG9ydFwiXG4gICAgICAgICAgICAgICAgW3N0eWxlLndpZHRoXT1cImNvbHVtbj8ud2lkdGhcIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5tYXBhLXRhYmxlX19jb2x1bW4tLWVsbGlwc2lzXT1cImNvbHVtbj8uY29sbGFwc2UgPT09ICdvdmVyZmxvdydcIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5tYXBhLXRhYmxlX19jb2x1bW4tLW5vLXdyYXBdPVwiY29sdW1uPy5jb2xsYXBzZSA9PT0gJ25vLXdyYXAnXCJcbiAgICAgICAgICAgICAgICBbY2xhc3MubWFwYS10YWJsZV9fY29sdW1uLS13cmFwXT1cImNvbHVtbj8uY29sbGFwc2UgPT09ICd3cmFwJ1wiXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiW2hhc0N1c3RvbUNsYXNzKGNvbHVtbiwgcm93LCBjb2x1bW4ua2V5KSA/IGdldEN1c3RvbUNsYXNzKGNvbHVtbiwgcm93LCBjb2x1bW4ua2V5KSA6ICcnXVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAqbmdJZj1cImNvbHVtbj8uc3RhdHVzPy5jb2xvcjsgZWxzZSBjb21tb25Db2x1bW5cIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtYXBhLXRhYmxlX19jb2x1bW4tLXN0YXR1c1wiXG4gICAgICAgICAgICAgICAgICBbc3R5bGUuYmFja2dyb3VuZENvbG9yXT1cImdldEJhY2tncm91bmRDb2xvcihjb2x1bW4sIHJvdylcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwidGFibGVDb250ZW50XCJcbiAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgc2VsZWN0aW9uLCBjb2x1bW4sIGlzRmlyc3QsIGNoZWNrYm94LCByb3cgfVwiXG4gICAgICAgICAgICAgICAgICA+PC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNjb21tb25Db2x1bW4+XG4gICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRhYmxlQ29udGVudFwiXG4gICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7IHNlbGVjdGlvbiwgY29sdW1uLCBpc0ZpcnN0LCBjaGVja2JveCwgcm93IH1cIlxuICAgICAgICAgICAgICAgICAgPjwvZGl2PlxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaXNHcm91cFJlcG9ydFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgW25nQ2xhc3NdPVwiZ2V0Q2VsbENsYXNzKGNvbHVtbiwgcm93KVwiPlxuICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImNvbHVtbi5rZXkgPT09ICduYW1lJyB8fCBjb2x1bW4ua2V5ID09PSAnY3BmJyB8fCBjb2x1bW4ua2V5ID09PSAnZ2VuZXJhbCc7IGVsc2UgdmFsdWVDb250ZW50XCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImNvbHVtbi5rZXkgPT09ICduYW1lJ1wiPlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJuYW1lXCI+e3sgcm93Lm5hbWUgfX08YnIgLz48L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3BmXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7e3Jvdy5jcGZ9fVxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImNvbHVtbi5rZXkgPT09ICdnZW5lcmFsJ1wiIGNsYXNzPVwiZ2VuZXJhbFwiPlxuICAgICAgICAgICAgICAgICAgICAgIHt7IHJvd1tjb2x1bW4ua2V5XSB8IGN1cnJlbmN5OicnOicnIH19JVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICN2YWx1ZUNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgICAgIHt7IGdldFZhbHVlKHJvd1tjb2x1bW4ua2V5XSkgfX1cbiAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNjb2x1bW5BY3Rpb25zT3JNZW51PlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBjbGFzcz1cIm1hcGEtdGFibGVfX2NvbHVtbi0tYWN0aW9uc1wiXG4gICAgICAgICAgICAgICpuZ0lmPVwiY29sdW1uLmtleSA9PT0gJ2FjdGlvbnMnICYmIGFjdGlvbnNcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgYWN0aW9uc1wiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImhhbmRsZU1lbnUoe2RhdGE6IHJvdywgYWN0aW9uOiBpdGVtLmFjdGlvbn0pXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cIm1hcGEtdGFibGVfX2NvbHVtbi0tYWN0aW9ucy1pdGVtXCJcbiAgICAgICAgICAgICAgICBbdGl0bGVdPVwiaXRlbS50ZXh0XCJcbiAgICAgICAgICAgICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxtYXQtaWNvbiAqbmdJZj1cIml0ZW0uaWNvblwiPnt7aXRlbS5pY29ufX08L21hdC1pY29uPlxuICAgICAgICAgICAgICAgIDxpbWcgKm5nSWY9XCJpdGVtLmltYWdlXCIgW3NyY109XCJpdGVtLmltYWdlXCIgLz5cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYXBhLXRhYmxlX19jb2x1bW4tLW1lbnVcIiAqbmdJZj1cImNvbHVtbi5rZXkgPT09ICdtZW51J1wiPlxuICAgICAgICAgICAgICA8bWFwYS1tZW51XG4gICAgICAgICAgICAgICAgKm5nSWY9XCJoYXNJbmRpdmlkdWFsTWVudShyb3dbJ21lbnUnXSk7IGVsc2UgZ2VuZXJhbE1lbnVcIlxuICAgICAgICAgICAgICAgIFtpdGVtc109XCJyb3dbJ21lbnUnXVwiXG4gICAgICAgICAgICAgICAgW2RhdGFdPVwicm93XCJcbiAgICAgICAgICAgICAgICAoZW1pdE1lbnUpPVwiaGFuZGxlTWVudSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgPjwvbWFwYS1tZW51PlxuICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2dlbmVyYWxNZW51PlxuICAgICAgICAgICAgICAgIDxtYXBhLW1lbnVcbiAgICAgICAgICAgICAgICAgICpuZ0lmPVwibWVudUl0ZW1zICYmIG1lbnVJdGVtcy5sZW5ndGggPiAwXCJcbiAgICAgICAgICAgICAgICAgIFtpdGVtc109XCJtZW51SXRlbXNcIlxuICAgICAgICAgICAgICAgICAgW2RhdGFdPVwicm93XCJcbiAgICAgICAgICAgICAgICAgIChlbWl0TWVudSk9XCJoYW5kbGVNZW51KCRldmVudClcIlxuICAgICAgICAgICAgICAgID48L21hcGEtbWVudT5cbiAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC90ZD5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDx0ciBtYXQtaGVhZGVyLXJvdyAqbWF0SGVhZGVyUm93RGVmPVwiZGlzcGxheWVkQ29sdW1uc1wiPjwvdHI+XG4gICAgPHRyXG4gICAgICBtYXQtcm93XG4gICAgICAqbWF0Um93RGVmPVwibGV0IHJvdzsgY29sdW1uczogZGlzcGxheWVkQ29sdW1ucztcIlxuICAgICAgW25nQ2xhc3NdPVwiZ2V0Um93Q2xhc3MoKVwiXG4gICAgPjwvdHI+XG4gIDwvdGFibGU+XG5cbiAgPHNlY3Rpb24gKm5nSWY9XCIhaXNHcm91cFJlcG9ydFwiPlxuICAgIDxtYXQtcGFnaW5hdG9yXG4gICAgICBjbGFzcz1cIm1hcGEtdGFibGVfX3BhZ2luYXRvci1sZWdhY3lcIlxuICAgICAgaXRlbXNQZXJQYWdlTGFiZWw9XCJJdGVtIHBvciBww6FnaW5hXCJcbiAgICAgIGFwcFN0eWxlUGFnaW5hdG9yTXZcbiAgICAgIFtsZW5ndGhdPVwidG90YWxDb3VudFwiXG4gICAgICBbcGFnZVNpemVdPVwicGFnZVNpemVcIlxuICAgICAgW3BhZ2VTaXplT3B0aW9uc109XCJbNSwgMTAsIDI1LCAxMDBdXCJcbiAgICAgIChwYWdlKT1cImNoYW5nZVBhZ2UoJGV2ZW50KVwiXG4gICAgPjwvbWF0LXBhZ2luYXRvcj5cbiAgPC9zZWN0aW9uPlxuPC9zZWN0aW9uPlxuXG48bmctdGVtcGxhdGVcbiAgI3RhYmxlSGVhZGVyXG4gIGxldC1zZWxlY3Rpb249XCJzZWxlY3Rpb25cIlxuICBsZXQtY29sdW1uPVwiY29sdW1uXCJcbiAgbGV0LWlzRmlyc3Q9XCJpc0ZpcnN0XCJcbiAgbGV0LWNoZWNrYm94PVwiY2hlY2tib3hcIlxuPlxuICA8ZGl2IGNsYXNzPVwibWFwYS10YWJsZV9fY29sdW1uIG1hcGEtdGFibGVfX2NvbHVtbi0taGVhZGVyXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzRmlyc3QgJiYgY2hlY2tib3hcIj5cbiAgICAgIDxtYXQtY2hlY2tib3hcbiAgICAgICAgKm5nSWY9XCJzZWxlY3Rpb25cIlxuICAgICAgICAoY2hhbmdlKT1cIiRldmVudCA/IHRvZ2dsZUFsbFJvd3MoKSA6IG51bGxcIlxuICAgICAgICBbY2hlY2tlZF09XCJzZWxlY3Rpb24uaGFzVmFsdWUoKSAmJiBpc0FsbFNlbGVjdGVkKClcIlxuICAgICAgICBbaW5kZXRlcm1pbmF0ZV09XCJzZWxlY3Rpb24uaGFzVmFsdWUoKSAmJiAhaXNBbGxTZWxlY3RlZCgpXCJcbiAgICAgICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gICAgICA+PC9tYXQtY2hlY2tib3g+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJtYXBhLXRhYmxlX19sYWJlbFwiXG4gICAgICBbbmdDbGFzc109XCJ7ICdsYWJlbF9yZXBvcnQnOiBpc0dyb3VwUmVwb3J0IH1cIlxuICAgID5cbiAgICAgIHt7IGNvbHVtbi5sYWJlbCB9fVxuICAgIDwvZGl2PlxuICAgIDxkaXZcbiAgICAgICpuZ0lmPVwiY29sdW1uLmtleSAhPT0gJ2FjdGlvbnMnICYmIGNvbHVtbi5rZXkgIT09ICdtZW51JyAmJiBjb2x1bW4uc29ydFwiXG4gICAgPlxuICAgICAgPG1hdC1pY29uPmZpbHRlcl9saXN0PC9tYXQtaWNvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGVcbiAgI3RhYmxlQ29udGVudFxuICBsZXQtc2VsZWN0aW9uPVwic2VsZWN0aW9uXCJcbiAgbGV0LWNvbHVtbj1cImNvbHVtblwiXG4gIGxldC1pc0ZpcnN0PVwiaXNGaXJzdFwiXG4gIGxldC1jaGVja2JveD1cImNoZWNrYm94XCJcbiAgbGV0LXJvdz1cInJvd1wiXG4+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc0ZpcnN0ICYmIGNoZWNrYm94XCI+XG4gICAgPG1hdC1jaGVja2JveFxuICAgICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gICAgICAoY2hhbmdlKT1cIiRldmVudCA/IHNlbGVjdGlvbj8udG9nZ2xlKHJvdykgOiBudWxsOyBnZXRTZWxlY3RlZFZhbHVlcygpXCJcbiAgICAgIFtjaGVja2VkXT1cInNlbGVjdGlvbj8uaXNTZWxlY3RlZChyb3cpXCJcbiAgICA+XG4gICAgPC9tYXQtY2hlY2tib3g+XG4gIDwvbmctY29udGFpbmVyPlxuICA8IS0tIFBPUiBGQVZPUiwgTsODTyBRVUVCUkUgTElOSEEgRU5UUkUgTkctQ09OVEFJTkVSL1RFTVBMQVRFIEUgTyBWQUxPUiBDT05URcOaRE8gIC0tPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNNYXNrZWREYXRhKGNvbHVtbiwgcm93KTsgZWxzZSBzdGF0dXNDb250ZW50XCJcbiAgICA+e3sgZ2V0VmFsdWVBc0RhdGUoY29sdW1uLCByb3cpIHwgZGF0ZTogY29sdW1uLm1hc2sgfX08L25nLWNvbnRhaW5lclxuICA+XG4gIDxuZy10ZW1wbGF0ZSAjc3RhdHVzQ29udGVudD5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29sdW1uLnN0YXR1czsgZWxzZSBjb21tb25Db250ZW50XCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNCb29sZWFuKGNvbHVtbiwgcm93KTsgZWxzZSBjb21tb25TdGF0dXNcIlxuICAgICAgICA+e3sgY29sdW1uLnN0YXR1cy5sYWJlbFtyb3dbY29sdW1uLmtleV0gPyAxIDogMF0gfX08L25nLWNvbnRhaW5lclxuICAgICAgPlxuICAgICAgPG5nLXRlbXBsYXRlICNjb21tb25TdGF0dXNcbiAgICAgICAgPnt7IGNvbHVtbi5zdGF0dXMubGFiZWxbcm93W2NvbHVtbi5rZXldXSB8fCAnLScgfX08L25nLXRlbXBsYXRlXG4gICAgICA+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLXRlbXBsYXRlICNjb21tb25Db250ZW50Pnt7IHJvd1tjb2x1bW4ua2V5XSB9fTwvbmctdGVtcGxhdGU+XG4gIDwvbmctdGVtcGxhdGU+XG4gIDxuZy10ZW1wbGF0ZSAjc3RhdHVzQ29udGVudD5cbiAgICA8bmctdGVtcGxhdGUgI2NvbW1vbkNvbnRlbnQ+e3sgcm93W2NvbHVtbi5rZXldIH19PC9uZy10ZW1wbGF0ZT5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
@@ -306,7 +306,9 @@ class MapaTableComponent {
|
|
|
306
306
|
if (changes["data"]) {
|
|
307
307
|
if (this.dataSource) {
|
|
308
308
|
this.data = changes["data"].currentValue;
|
|
309
|
-
this.dataSource
|
|
309
|
+
this.dataSource = new MatTableDataSource(this.data);
|
|
310
|
+
this.dataSource.sort = this.sort;
|
|
311
|
+
this.displayedColumns = this.columns.map((column) => column.key);
|
|
310
312
|
this.cdr.detectChanges();
|
|
311
313
|
}
|
|
312
314
|
}
|
|
@@ -557,12 +559,17 @@ class MapaTableComponent {
|
|
|
557
559
|
handleMenu(selected) {
|
|
558
560
|
this.emitRowClick(selected.data, selected.action);
|
|
559
561
|
}
|
|
562
|
+
hasIndividualMenu(row) {
|
|
563
|
+
if (row !== "" && row !== null)
|
|
564
|
+
return true;
|
|
565
|
+
return false;
|
|
566
|
+
}
|
|
560
567
|
}
|
|
561
568
|
MapaTableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MapaTableComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
562
|
-
MapaTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: MapaTableComponent, selector: "mapa-table", inputs: { columns: "columns", data: "data", pageIndex: "pageIndex", pageSize: "pageSize", totalCount: "totalCount", totalPages: "totalPages", checkbox: "checkbox", selection: "selection", actions: "actions", filterControl: "filterControl", groupReport: "groupReport", isGroupReport: "isGroupReport", menuItems: "menuItems", menu: "menu" }, outputs: { rowClick: "rowClick", selectedRows: "selectedRows", onChangePage: "onChangePage" }, viewQueries: [{ propertyName: "trigger", first: true, predicate: MatMenuTrigger, descendants: true }, { propertyName: "paginator", first: true, predicate: MatPaginator, descendants: true, read: true }, { propertyName: "sort", first: true, predicate: MatSort, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<section class=\"mapa-table\">\n <table\n mat-table\n [dataSource]=\"dataSource\"\n matSort\n (matSortChange)=\"sortDataFunction($event)\"\n >\n <ng-container\n *ngFor=\"let column of columns; let isFirst = first\"\n [matColumnDef]=\"column.key\"\n >\n <th\n mat-header-cell\n *matHeaderCellDef\n mat-sort-header\n [disabled]=\"!(column.key !== 'actions' ? column.sort : null)\"\n >\n <div\n [ngTemplateOutlet]=\"tableHeader\"\n [ngTemplateOutletContext]=\"{ selection, column, isFirst, checkbox }\"\n ></div>\n </th>\n <td mat-cell *matCellDef=\"let row\" [style.width]=\"column?.width\">\n <div\n class=\"mapa-table__column\"\n (click)=\"emitRowClick(row, '')\"\n [class.mapa-table__column--center-cell]=\"column?.align === 'center' || isGroupReport && column.key !== 'name'\"\n >\n <ng-container\n *ngIf=\"column.key !== 'actions' && column.key !== 'menu'; else columnActionsOrMenu\"\n >\n <div class=\"mapa-table__content\">\n <div\n *ngIf=\"!isGroupReport\"\n [style.width]=\"column?.width\"\n [class.mapa-table__column--ellipsis]=\"column?.collapse === 'overflow'\"\n [class.mapa-table__column--no-wrap]=\"column?.collapse === 'no-wrap'\"\n [class.mapa-table__column--wrap]=\"column?.collapse === 'wrap'\"\n [ngClass]=\"[hasCustomClass(column, row, column.key) ? getCustomClass(column, row, column.key) : '']\"\n >\n <div\n *ngIf=\"column?.status?.color; else commonColumn\"\n class=\"mapa-table__column--status\"\n [style.backgroundColor]=\"getBackgroundColor(column, row)\"\n >\n <div\n [ngTemplateOutlet]=\"tableContent\"\n [ngTemplateOutletContext]=\"{ selection, column, isFirst, checkbox, row }\"\n ></div>\n </div>\n <ng-template #commonColumn>\n <div\n [ngTemplateOutlet]=\"tableContent\"\n [ngTemplateOutletContext]=\"{ selection, column, isFirst, checkbox, row }\"\n ></div>\n </ng-template>\n </div>\n <div *ngIf=\"isGroupReport\">\n <div [ngClass]=\"getCellClass(column, row)\">\n <ng-container\n *ngIf=\"column.key === 'name' || column.key === 'cpf' || column.key === 'general'; else valueContent\"\n >\n <div *ngIf=\"column.key === 'name'\">\n <div class=\"name\">{{ row.name }}<br /></div>\n <div class=\"cpf\">\n {{row.cpf}}\n </div>\n </div>\n <div *ngIf=\"column.key === 'general'\" class=\"general\">\n {{ row[column.key] | currency:'':'' }}%\n </div>\n </ng-container>\n <ng-template #valueContent>\n {{ getValue(row[column.key]) }}\n </ng-template>\n </div>\n </div>\n </div>\n </ng-container>\n <ng-template #columnActionsOrMenu>\n <div\n class=\"mapa-table__column--actions\"\n *ngIf=\"column.key === 'actions' && actions\"\n >\n <button\n *ngFor=\"let item of actions\"\n (click)=\"handleMenu({data: row, action: item.action})\"\n class=\"mapa-table__column--actions-item\"\n [title]=\"item.text\"\n mat-icon-button\n >\n <mat-icon *ngIf=\"item.icon\">{{item.icon}}</mat-icon>\n <img *ngIf=\"item.image\" [src]=\"item.image\" />\n </button>\n </div>\n <div class=\"mapa-table__column--menu\" *ngIf=\"column.key === 'menu'\">\n <mapa-menu [items]=\"menuItems\" [data]=\"row\" (emitMenu)=\"handleMenu($event)\"></mapa-menu>\n </div>\n </ng-template>\n </div>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr\n mat-row\n *matRowDef=\"let row; columns: displayedColumns;\"\n [ngClass]=\"getRowClass()\"\n ></tr>\n </table>\n\n <section *ngIf=\"!isGroupReport\">\n <mat-paginator\n class=\"mapa-table__paginator-legacy\"\n itemsPerPageLabel=\"Item por p\u00E1gina\"\n appStylePaginatorMv\n [length]=\"totalCount\"\n [pageSize]=\"pageSize\"\n [pageSizeOptions]=\"[5, 10, 25, 100]\"\n (page)=\"changePage($event)\"\n ></mat-paginator>\n </section>\n</section>\n\n<ng-template\n #tableHeader\n let-selection=\"selection\"\n let-column=\"column\"\n let-isFirst=\"isFirst\"\n let-checkbox=\"checkbox\"\n>\n <div class=\"mapa-table__column mapa-table__column--header\">\n <ng-container *ngIf=\"isFirst && checkbox\">\n <mat-checkbox\n *ngIf=\"selection\"\n (change)=\"$event ? toggleAllRows() : null\"\n [checked]=\"selection.hasValue() && isAllSelected()\"\n [indeterminate]=\"selection.hasValue() && !isAllSelected()\"\n (click)=\"$event.stopPropagation()\"\n ></mat-checkbox>\n </ng-container>\n <div\n class=\"mapa-table__label\"\n [ngClass]=\"{ 'label_report': isGroupReport }\"\n >\n {{ column.label }}\n </div>\n <div\n *ngIf=\"column.key !== 'actions' && column.key !== 'menu' && column.sort\"\n >\n <mat-icon>filter_list</mat-icon>\n </div>\n </div>\n</ng-template>\n\n<ng-template\n #tableContent\n let-selection=\"selection\"\n let-column=\"column\"\n let-isFirst=\"isFirst\"\n let-checkbox=\"checkbox\"\n let-row=\"row\"\n>\n <ng-container *ngIf=\"isFirst && checkbox\">\n <mat-checkbox\n (click)=\"$event.stopPropagation()\"\n (change)=\"$event ? selection?.toggle(row) : null; getSelectedValues()\"\n [checked]=\"selection?.isSelected(row)\"\n >\n </mat-checkbox>\n </ng-container>\n <!-- POR FAVOR, N\u00C3O QUEBRE LINHA ENTRE NG-CONTAINER/TEMPLATE E O VALOR CONTE\u00DADO -->\n <ng-container *ngIf=\"isMaskedData(column, row); else statusContent\"\n >{{ getValueAsDate(column, row) | date: column.mask }}</ng-container\n >\n <ng-template #statusContent>\n <ng-container *ngIf=\"column.status; else commonContent\">\n <ng-container *ngIf=\"isBoolean(column, row); else commonStatus\"\n >{{ column.status.label[row[column.key] ? 1 : 0] }}</ng-container\n >\n <ng-template #commonStatus\n >{{ column.status.label[row[column.key]] || '-' }}</ng-template\n >\n </ng-container>\n <ng-template #commonContent>{{ row[column.key] }}</ng-template>\n </ng-template>\n <ng-template #statusContent>\n <ng-template #commonContent>{{ row[column.key] }}</ng-template>\n </ng-template>\n</ng-template>\n", styles: [".mapa-table .mat-table{font-family:SF-Pro;width:100%}.mapa-table .mat-table .mat-checkbox{margin:6px 8px 0 0;padding:0}.mapa-table td.mat-cell{padding:16px 0}.mapa-table .mat-table .mat-row .mat-cell{font-family:SF-Pro;font-size:16px;font-style:normal;font-weight:400;color:#50575e}.mapa-table .row-hover:hover{box-shadow:0 2px 4px #00000021;outline:1px solid rgba(238,238,238,.93);cursor:pointer}.mapa-table .mat-table .mat-header-cell{border:none;border-bottom:1px solid #eee;font-family:SF-Pro;font-size:16px;font-style:normal;font-weight:600;color:#50575e}.mapa-table .mat-mdc-row,.mapa-table .mdc-data-table__content,.mapa-table .mat-mdc-header-cell{--mat-table-row-item-label-text-font: \"SF-Pro\"}.mapa-table .mat-checkbox.mat-accent .mat-checkbox-frame{border-color:#b6b6b6}.mapa-table .mat-checkbox.mat-accent.mat-checkbox-checked .mat-checkbox-frame{border-color:#ea561d}.mapa-table .mat-checkbox.mat-accent .mat-checkbox-background{background-color:transparent}.mapa-table .mat-checkbox.mat-accent.mat-checkbox-checked .mat-checkbox-background{background-color:#ea561d}.mapa-table .mat-mdc-paginator-container{display:flex;justify-content:space-between}.mapa-table ::ng-deep .mat-mdc-paginator-page-size-label{display:none}.mapa-table__paginator-legacy .mat-paginator-container{font-family:SF-Pro!important;justify-content:flex-start}.mapa-table__paginator-legacy .mat-paginator-page-size{margin-right:10vw}.mapa-table__paginator-legacy .custom-paginator-container{justify-content:flex-end}.mapa-table__paginator-legacy .custom-paginator-counter{white-space:nowrap;margin:0 4px 0 10px!important}.mapa-table__paginator-legacy .custom-paginator-page{border-radius:4px;outline:none;border:none;margin:.4em;font-size:14px;min-width:24px;width:auto;min-height:24px;max-height:24px;padding:1px 6px}.mapa-table__paginator-legacy .custom-paginator-page-enabled{color:#50575e;background:transparent;cursor:pointer}.mapa-table__paginator-legacy .custom-paginator-page-enabled:hover{background-color:#dfe3e6}.mapa-table__paginator-legacy .custom-paginator-page-disabled{background-color:#ea561d;color:#fff}.mapa-table__paginator-legacy .custom-paginator-arrow-disabled{color:#dfe3e6}.mapa-table__paginator-legacy .custom-paginator-arrow-enabled{color:#999}.mapa-table{width:100%;white-space:nowrap}.mapa-table__label{margin-top:4px}.mapa-table__column{padding:15px;align-items:center;display:flex}.mapa-table__column--actions{display:flex}.mapa-table__column--actions .mat-icon{color:#ea561d!important}.mapa-table__column--actions-item{display:flex;align-items:center}.mapa-table__column--actions-item img{margin-right:8px}.mapa-table__column--header{width:100%}.mapa-table__column--header .mat-icon{cursor:pointer;position:relative;bottom:-3px;margin:0 7px;font-size:14px;height:14px;width:14px}.mapa-table__column--status{border-radius:4px;padding:4px 8px;margin:auto;text-align:center;width:min-content}.mapa-table__column--ellipsis{display:inline-block;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.mapa-table__column--no-wrap{white-space:nowrap}.mapa-table__column--wrap{white-space:pre-wrap}.mapa-table__column--center-cell{justify-content:center}.mapa-table .mat-sort-header-arrow{color:transparent}.mapa-table .mat-sort-header-content{width:100%}.mapa-table .mat-cell,.mapa-table .mat-header-cell{padding:0 10px!important}.mapa-table .mat-table{width:100%;overflow-x:auto}.mapa-table .classification{width:40px;height:40px;border-radius:24px;display:flex;justify-content:center;align-items:center}.mapa-table .roundCell{border-radius:10px}.mapa-table .general{border-radius:24px;border:1px solid #dcdcde;display:flex;justify-content:center;align-items:center;width:48px;height:48px}.mapa-table .name{color:#181818;text-align:left;font-family:SF-Pro;font-size:14px;font-style:normal;font-weight:400;line-height:20px}.mapa-table .cpf{color:var(--Grey-Grey-30, #8c8f94);text-align:left;font-family:SF-Pro;font-size:12px;font-style:normal;font-weight:400;line-height:16px}.mapa-table .label_report{color:#181818;text-align:center;font-family:SF-Pro;font-size:12px;font-style:normal;font-weight:400;line-height:16px}\n", ".classification-1{background-color:#073e92;color:#fff}.classification-2{background-color:#0e6ece;color:#fff}.classification-3{background-color:#2d9ced;color:#000}.classification-4{background-color:#68ceee;color:#000}.classification-5{background-color:#96f2ee;color:#000}.classification-6{background-color:#f598a7;color:#000}.classification-7{background-color:#f56580;color:#000}.classification-8{background-color:#f4284e;color:#fff}.classification-9{background-color:#c11c2f;color:#fff}.small-dot{width:12px;height:12px;border-radius:12px;padding:0;margin:0}.dot{width:16px;height:16px;border-radius:16px;padding:0;margin:0}.indicator{display:flex;padding:2px 4px 2px 16px;justify-content:space-between;align-items:center;border-radius:8px;font-family:SF-Pro;font-size:16px;font-style:normal;font-weight:400}.display-S{font-family:SF-Pro;font-size:20px;font-style:normal;font-weight:400}.display-L{font-family:SF-Pro;font-size:32px;font-style:normal;font-weight:400}.display-XG{font-family:SF-Pro;font-size:48px;font-style:normal;font-weight:400}*{transition:opacity .4s ease-out,max-height .4s ease-out}\n"], dependencies: [{ kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: MapaMenuComponent, selector: "mapa-menu", inputs: ["items", "data"], outputs: ["emitMenu"] }, { kind: "component", type: i3$1.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i4.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i1.MatPaginator, selector: "mat-paginator", inputs: ["disabled"], exportAs: ["matPaginator"] }, { kind: "component", type: i7.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i7.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i7.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i7.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { kind: "directive", type: i7.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i7.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i7.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i7.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i7.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i7.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "directive", type: i8.MatSort, selector: "[matSort]", inputs: ["matSortDisabled", "matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i8.MatSortHeader, selector: "[mat-sort-header]", inputs: ["disabled", "mat-sort-header", "arrowPosition", "start", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "directive", type: PaginatorLegacyDirective, selector: "[appStylePaginatorMv]" }, { kind: "pipe", type: i1$1.CurrencyPipe, name: "currency" }, { kind: "pipe", type: i1$1.DatePipe, name: "date" }], encapsulation: i0.ViewEncapsulation.None });
|
|
569
|
+
MapaTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: MapaTableComponent, selector: "mapa-table", inputs: { columns: "columns", data: "data", pageIndex: "pageIndex", pageSize: "pageSize", totalCount: "totalCount", totalPages: "totalPages", checkbox: "checkbox", selection: "selection", actions: "actions", filterControl: "filterControl", groupReport: "groupReport", isGroupReport: "isGroupReport", menuItems: "menuItems", menu: "menu" }, outputs: { rowClick: "rowClick", selectedRows: "selectedRows", onChangePage: "onChangePage" }, viewQueries: [{ propertyName: "trigger", first: true, predicate: MatMenuTrigger, descendants: true }, { propertyName: "paginator", first: true, predicate: MatPaginator, descendants: true, read: true }, { propertyName: "sort", first: true, predicate: MatSort, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<section class=\"mapa-table\">\n <table\n mat-table\n [dataSource]=\"dataSource\"\n matSort\n (matSortChange)=\"sortDataFunction($event)\"\n >\n <ng-container\n *ngFor=\"let column of columns; let isFirst = first\"\n [matColumnDef]=\"column.key\"\n >\n <th\n mat-header-cell\n *matHeaderCellDef\n mat-sort-header\n [disabled]=\"!(column.key !== 'actions' ? column.sort : null)\"\n >\n <div\n [ngTemplateOutlet]=\"tableHeader\"\n [ngTemplateOutletContext]=\"{ selection, column, isFirst, checkbox }\"\n ></div>\n </th>\n <td mat-cell *matCellDef=\"let row\" [style.width]=\"column?.width\">\n <div\n class=\"mapa-table__column\"\n (click)=\"emitRowClick(row, '')\"\n [class.mapa-table__column--center-cell]=\"column?.align === 'center' || isGroupReport && column.key !== 'name'\"\n >\n <ng-container\n *ngIf=\"column.key !== 'actions' && column.key !== 'menu'; else columnActionsOrMenu\"\n >\n <div class=\"mapa-table__content\">\n <div\n *ngIf=\"!isGroupReport\"\n [style.width]=\"column?.width\"\n [class.mapa-table__column--ellipsis]=\"column?.collapse === 'overflow'\"\n [class.mapa-table__column--no-wrap]=\"column?.collapse === 'no-wrap'\"\n [class.mapa-table__column--wrap]=\"column?.collapse === 'wrap'\"\n [ngClass]=\"[hasCustomClass(column, row, column.key) ? getCustomClass(column, row, column.key) : '']\"\n >\n <div\n *ngIf=\"column?.status?.color; else commonColumn\"\n class=\"mapa-table__column--status\"\n [style.backgroundColor]=\"getBackgroundColor(column, row)\"\n >\n <div\n [ngTemplateOutlet]=\"tableContent\"\n [ngTemplateOutletContext]=\"{ selection, column, isFirst, checkbox, row }\"\n ></div>\n </div>\n <ng-template #commonColumn>\n <div\n [ngTemplateOutlet]=\"tableContent\"\n [ngTemplateOutletContext]=\"{ selection, column, isFirst, checkbox, row }\"\n ></div>\n </ng-template>\n </div>\n <div *ngIf=\"isGroupReport\">\n <div [ngClass]=\"getCellClass(column, row)\">\n <ng-container\n *ngIf=\"column.key === 'name' || column.key === 'cpf' || column.key === 'general'; else valueContent\"\n >\n <div *ngIf=\"column.key === 'name'\">\n <div class=\"name\">{{ row.name }}<br /></div>\n <div class=\"cpf\">\n {{row.cpf}}\n </div>\n </div>\n <div *ngIf=\"column.key === 'general'\" class=\"general\">\n {{ row[column.key] | currency:'':'' }}%\n </div>\n </ng-container>\n <ng-template #valueContent>\n {{ getValue(row[column.key]) }}\n </ng-template>\n </div>\n </div>\n </div>\n </ng-container>\n <ng-template #columnActionsOrMenu>\n <div\n class=\"mapa-table__column--actions\"\n *ngIf=\"column.key === 'actions' && actions\"\n >\n <button\n *ngFor=\"let item of actions\"\n (click)=\"handleMenu({data: row, action: item.action})\"\n class=\"mapa-table__column--actions-item\"\n [title]=\"item.text\"\n mat-icon-button\n >\n <mat-icon *ngIf=\"item.icon\">{{item.icon}}</mat-icon>\n <img *ngIf=\"item.image\" [src]=\"item.image\" />\n </button>\n </div>\n <div class=\"mapa-table__column--menu\" *ngIf=\"column.key === 'menu'\">\n <mapa-menu\n *ngIf=\"hasIndividualMenu(row['menu']); else generalMenu\"\n [items]=\"row['menu']\"\n [data]=\"row\"\n (emitMenu)=\"handleMenu($event)\"\n ></mapa-menu>\n <ng-template #generalMenu>\n <mapa-menu\n *ngIf=\"menuItems && menuItems.length > 0\"\n [items]=\"menuItems\"\n [data]=\"row\"\n (emitMenu)=\"handleMenu($event)\"\n ></mapa-menu>\n </ng-template>\n </div>\n </ng-template>\n </div>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr\n mat-row\n *matRowDef=\"let row; columns: displayedColumns;\"\n [ngClass]=\"getRowClass()\"\n ></tr>\n </table>\n\n <section *ngIf=\"!isGroupReport\">\n <mat-paginator\n class=\"mapa-table__paginator-legacy\"\n itemsPerPageLabel=\"Item por p\u00E1gina\"\n appStylePaginatorMv\n [length]=\"totalCount\"\n [pageSize]=\"pageSize\"\n [pageSizeOptions]=\"[5, 10, 25, 100]\"\n (page)=\"changePage($event)\"\n ></mat-paginator>\n </section>\n</section>\n\n<ng-template\n #tableHeader\n let-selection=\"selection\"\n let-column=\"column\"\n let-isFirst=\"isFirst\"\n let-checkbox=\"checkbox\"\n>\n <div class=\"mapa-table__column mapa-table__column--header\">\n <ng-container *ngIf=\"isFirst && checkbox\">\n <mat-checkbox\n *ngIf=\"selection\"\n (change)=\"$event ? toggleAllRows() : null\"\n [checked]=\"selection.hasValue() && isAllSelected()\"\n [indeterminate]=\"selection.hasValue() && !isAllSelected()\"\n (click)=\"$event.stopPropagation()\"\n ></mat-checkbox>\n </ng-container>\n <div\n class=\"mapa-table__label\"\n [ngClass]=\"{ 'label_report': isGroupReport }\"\n >\n {{ column.label }}\n </div>\n <div\n *ngIf=\"column.key !== 'actions' && column.key !== 'menu' && column.sort\"\n >\n <mat-icon>filter_list</mat-icon>\n </div>\n </div>\n</ng-template>\n\n<ng-template\n #tableContent\n let-selection=\"selection\"\n let-column=\"column\"\n let-isFirst=\"isFirst\"\n let-checkbox=\"checkbox\"\n let-row=\"row\"\n>\n <ng-container *ngIf=\"isFirst && checkbox\">\n <mat-checkbox\n (click)=\"$event.stopPropagation()\"\n (change)=\"$event ? selection?.toggle(row) : null; getSelectedValues()\"\n [checked]=\"selection?.isSelected(row)\"\n >\n </mat-checkbox>\n </ng-container>\n <!-- POR FAVOR, N\u00C3O QUEBRE LINHA ENTRE NG-CONTAINER/TEMPLATE E O VALOR CONTE\u00DADO -->\n <ng-container *ngIf=\"isMaskedData(column, row); else statusContent\"\n >{{ getValueAsDate(column, row) | date: column.mask }}</ng-container\n >\n <ng-template #statusContent>\n <ng-container *ngIf=\"column.status; else commonContent\">\n <ng-container *ngIf=\"isBoolean(column, row); else commonStatus\"\n >{{ column.status.label[row[column.key] ? 1 : 0] }}</ng-container\n >\n <ng-template #commonStatus\n >{{ column.status.label[row[column.key]] || '-' }}</ng-template\n >\n </ng-container>\n <ng-template #commonContent>{{ row[column.key] }}</ng-template>\n </ng-template>\n <ng-template #statusContent>\n <ng-template #commonContent>{{ row[column.key] }}</ng-template>\n </ng-template>\n</ng-template>\n", styles: [".mapa-table .mat-table{font-family:SF-Pro;width:100%}.mapa-table .mat-table .mat-checkbox{margin:6px 8px 0 0;padding:0}.mapa-table td.mat-cell{padding:16px 0}.mapa-table .mat-table .mat-row .mat-cell{font-family:SF-Pro;font-size:16px;font-style:normal;font-weight:400;color:#50575e}.mapa-table .row-hover:hover{box-shadow:0 2px 4px #00000021;outline:1px solid rgba(238,238,238,.93);cursor:pointer}.mapa-table .mat-table .mat-header-cell{border:none;border-bottom:1px solid #eee;font-family:SF-Pro;font-size:16px;font-style:normal;font-weight:600;color:#50575e}.mapa-table .mat-mdc-row,.mapa-table .mdc-data-table__content,.mapa-table .mat-mdc-header-cell{--mat-table-row-item-label-text-font: \"SF-Pro\"}.mapa-table .mat-checkbox.mat-accent .mat-checkbox-frame{border-color:#b6b6b6}.mapa-table .mat-checkbox.mat-accent.mat-checkbox-checked .mat-checkbox-frame{border-color:#ea561d}.mapa-table .mat-checkbox.mat-accent .mat-checkbox-background{background-color:transparent}.mapa-table .mat-checkbox.mat-accent.mat-checkbox-checked .mat-checkbox-background{background-color:#ea561d}.mapa-table .mat-mdc-paginator-container{display:flex;justify-content:space-between}.mapa-table ::ng-deep .mat-mdc-paginator-page-size-label{display:none}.mapa-table__paginator-legacy .mat-paginator-container{font-family:SF-Pro!important;justify-content:flex-start}.mapa-table__paginator-legacy .mat-paginator-page-size{margin-right:10vw}.mapa-table__paginator-legacy .custom-paginator-container{justify-content:flex-end}.mapa-table__paginator-legacy .custom-paginator-counter{white-space:nowrap;margin:0 4px 0 10px!important}.mapa-table__paginator-legacy .custom-paginator-page{border-radius:4px;outline:none;border:none;margin:.4em;font-size:14px;min-width:24px;width:auto;min-height:24px;max-height:24px;padding:1px 6px}.mapa-table__paginator-legacy .custom-paginator-page-enabled{color:#50575e;background:transparent;cursor:pointer}.mapa-table__paginator-legacy .custom-paginator-page-enabled:hover{background-color:#dfe3e6}.mapa-table__paginator-legacy .custom-paginator-page-disabled{background-color:#ea561d;color:#fff}.mapa-table__paginator-legacy .custom-paginator-arrow-disabled{color:#dfe3e6}.mapa-table__paginator-legacy .custom-paginator-arrow-enabled{color:#999}.mapa-table{width:100%;white-space:nowrap}.mapa-table__label{margin-top:4px}.mapa-table__column{padding:15px;align-items:center;display:flex}.mapa-table__column--actions{display:flex}.mapa-table__column--actions .mat-icon{color:#ea561d!important}.mapa-table__column--actions-item{display:flex;align-items:center}.mapa-table__column--actions-item img{margin-right:8px}.mapa-table__column--header{width:100%}.mapa-table__column--header .mat-icon{cursor:pointer;position:relative;bottom:-3px;margin:0 7px;font-size:14px;height:14px;width:14px}.mapa-table__column--status{border-radius:4px;padding:4px 8px;margin:auto;text-align:center;width:min-content}.mapa-table__column--ellipsis{display:inline-block;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.mapa-table__column--no-wrap{white-space:nowrap}.mapa-table__column--wrap{white-space:pre-wrap}.mapa-table__column--center-cell{justify-content:center}.mapa-table .mat-sort-header-arrow{color:transparent}.mapa-table .mat-sort-header-content{width:100%}.mapa-table .mat-cell,.mapa-table .mat-header-cell{padding:0 10px!important}.mapa-table .mat-table{width:100%;overflow-x:auto}.mapa-table .classification{width:40px;height:40px;border-radius:24px;display:flex;justify-content:center;align-items:center}.mapa-table .roundCell{border-radius:10px}.mapa-table .general{border-radius:24px;border:1px solid #dcdcde;display:flex;justify-content:center;align-items:center;width:48px;height:48px}.mapa-table .name{color:#181818;text-align:left;font-family:SF-Pro;font-size:14px;font-style:normal;font-weight:400;line-height:20px}.mapa-table .cpf{color:var(--Grey-Grey-30, #8c8f94);text-align:left;font-family:SF-Pro;font-size:12px;font-style:normal;font-weight:400;line-height:16px}.mapa-table .label_report{color:#181818;text-align:center;font-family:SF-Pro;font-size:12px;font-style:normal;font-weight:400;line-height:16px}\n", ".classification-1{background-color:#073e92;color:#fff}.classification-2{background-color:#0e6ece;color:#fff}.classification-3{background-color:#2d9ced;color:#000}.classification-4{background-color:#68ceee;color:#000}.classification-5{background-color:#96f2ee;color:#000}.classification-6{background-color:#f598a7;color:#000}.classification-7{background-color:#f56580;color:#000}.classification-8{background-color:#f4284e;color:#fff}.classification-9{background-color:#c11c2f;color:#fff}.small-dot{width:12px;height:12px;border-radius:12px;padding:0;margin:0}.dot{width:16px;height:16px;border-radius:16px;padding:0;margin:0}.indicator{display:flex;padding:2px 4px 2px 16px;justify-content:space-between;align-items:center;border-radius:8px;font-family:SF-Pro;font-size:16px;font-style:normal;font-weight:400}.display-S{font-family:SF-Pro;font-size:20px;font-style:normal;font-weight:400}.display-L{font-family:SF-Pro;font-size:32px;font-style:normal;font-weight:400}.display-XG{font-family:SF-Pro;font-size:48px;font-style:normal;font-weight:400}*{transition:opacity .4s ease-out,max-height .4s ease-out}\n"], dependencies: [{ kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: MapaMenuComponent, selector: "mapa-menu", inputs: ["items", "data"], outputs: ["emitMenu"] }, { kind: "component", type: i3$1.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i4.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i1.MatPaginator, selector: "mat-paginator", inputs: ["disabled"], exportAs: ["matPaginator"] }, { kind: "component", type: i7.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i7.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i7.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i7.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { kind: "directive", type: i7.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i7.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i7.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i7.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i7.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i7.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "directive", type: i8.MatSort, selector: "[matSort]", inputs: ["matSortDisabled", "matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i8.MatSortHeader, selector: "[mat-sort-header]", inputs: ["disabled", "mat-sort-header", "arrowPosition", "start", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "directive", type: PaginatorLegacyDirective, selector: "[appStylePaginatorMv]" }, { kind: "pipe", type: i1$1.CurrencyPipe, name: "currency" }, { kind: "pipe", type: i1$1.DatePipe, name: "date" }], encapsulation: i0.ViewEncapsulation.None });
|
|
563
570
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MapaTableComponent, decorators: [{
|
|
564
571
|
type: Component,
|
|
565
|
-
args: [{ selector: "mapa-table", encapsulation: ViewEncapsulation.None, template: "<section class=\"mapa-table\">\n <table\n mat-table\n [dataSource]=\"dataSource\"\n matSort\n (matSortChange)=\"sortDataFunction($event)\"\n >\n <ng-container\n *ngFor=\"let column of columns; let isFirst = first\"\n [matColumnDef]=\"column.key\"\n >\n <th\n mat-header-cell\n *matHeaderCellDef\n mat-sort-header\n [disabled]=\"!(column.key !== 'actions' ? column.sort : null)\"\n >\n <div\n [ngTemplateOutlet]=\"tableHeader\"\n [ngTemplateOutletContext]=\"{ selection, column, isFirst, checkbox }\"\n ></div>\n </th>\n <td mat-cell *matCellDef=\"let row\" [style.width]=\"column?.width\">\n <div\n class=\"mapa-table__column\"\n (click)=\"emitRowClick(row, '')\"\n [class.mapa-table__column--center-cell]=\"column?.align === 'center' || isGroupReport && column.key !== 'name'\"\n >\n <ng-container\n *ngIf=\"column.key !== 'actions' && column.key !== 'menu'; else columnActionsOrMenu\"\n >\n <div class=\"mapa-table__content\">\n <div\n *ngIf=\"!isGroupReport\"\n [style.width]=\"column?.width\"\n [class.mapa-table__column--ellipsis]=\"column?.collapse === 'overflow'\"\n [class.mapa-table__column--no-wrap]=\"column?.collapse === 'no-wrap'\"\n [class.mapa-table__column--wrap]=\"column?.collapse === 'wrap'\"\n [ngClass]=\"[hasCustomClass(column, row, column.key) ? getCustomClass(column, row, column.key) : '']\"\n >\n <div\n *ngIf=\"column?.status?.color; else commonColumn\"\n class=\"mapa-table__column--status\"\n [style.backgroundColor]=\"getBackgroundColor(column, row)\"\n >\n <div\n [ngTemplateOutlet]=\"tableContent\"\n [ngTemplateOutletContext]=\"{ selection, column, isFirst, checkbox, row }\"\n ></div>\n </div>\n <ng-template #commonColumn>\n <div\n [ngTemplateOutlet]=\"tableContent\"\n [ngTemplateOutletContext]=\"{ selection, column, isFirst, checkbox, row }\"\n ></div>\n </ng-template>\n </div>\n <div *ngIf=\"isGroupReport\">\n <div [ngClass]=\"getCellClass(column, row)\">\n <ng-container\n *ngIf=\"column.key === 'name' || column.key === 'cpf' || column.key === 'general'; else valueContent\"\n >\n <div *ngIf=\"column.key === 'name'\">\n <div class=\"name\">{{ row.name }}<br /></div>\n <div class=\"cpf\">\n {{row.cpf}}\n </div>\n </div>\n <div *ngIf=\"column.key === 'general'\" class=\"general\">\n {{ row[column.key] | currency:'':'' }}%\n </div>\n </ng-container>\n <ng-template #valueContent>\n {{ getValue(row[column.key]) }}\n </ng-template>\n </div>\n </div>\n </div>\n </ng-container>\n <ng-template #columnActionsOrMenu>\n <div\n class=\"mapa-table__column--actions\"\n *ngIf=\"column.key === 'actions' && actions\"\n >\n <button\n *ngFor=\"let item of actions\"\n (click)=\"handleMenu({data: row, action: item.action})\"\n class=\"mapa-table__column--actions-item\"\n [title]=\"item.text\"\n mat-icon-button\n >\n <mat-icon *ngIf=\"item.icon\">{{item.icon}}</mat-icon>\n <img *ngIf=\"item.image\" [src]=\"item.image\" />\n </button>\n </div>\n <div class=\"mapa-table__column--menu\" *ngIf=\"column.key === 'menu'\">\n <mapa-menu [items]=\"menuItems\" [data]=\"row\" (emitMenu)=\"handleMenu($event)\"></mapa-menu>\n </div>\n </ng-template>\n </div>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr\n mat-row\n *matRowDef=\"let row; columns: displayedColumns;\"\n [ngClass]=\"getRowClass()\"\n ></tr>\n </table>\n\n <section *ngIf=\"!isGroupReport\">\n <mat-paginator\n class=\"mapa-table__paginator-legacy\"\n itemsPerPageLabel=\"Item por p\u00E1gina\"\n appStylePaginatorMv\n [length]=\"totalCount\"\n [pageSize]=\"pageSize\"\n [pageSizeOptions]=\"[5, 10, 25, 100]\"\n (page)=\"changePage($event)\"\n ></mat-paginator>\n </section>\n</section>\n\n<ng-template\n #tableHeader\n let-selection=\"selection\"\n let-column=\"column\"\n let-isFirst=\"isFirst\"\n let-checkbox=\"checkbox\"\n>\n <div class=\"mapa-table__column mapa-table__column--header\">\n <ng-container *ngIf=\"isFirst && checkbox\">\n <mat-checkbox\n *ngIf=\"selection\"\n (change)=\"$event ? toggleAllRows() : null\"\n [checked]=\"selection.hasValue() && isAllSelected()\"\n [indeterminate]=\"selection.hasValue() && !isAllSelected()\"\n (click)=\"$event.stopPropagation()\"\n ></mat-checkbox>\n </ng-container>\n <div\n class=\"mapa-table__label\"\n [ngClass]=\"{ 'label_report': isGroupReport }\"\n >\n {{ column.label }}\n </div>\n <div\n *ngIf=\"column.key !== 'actions' && column.key !== 'menu' && column.sort\"\n >\n <mat-icon>filter_list</mat-icon>\n </div>\n </div>\n</ng-template>\n\n<ng-template\n #tableContent\n let-selection=\"selection\"\n let-column=\"column\"\n let-isFirst=\"isFirst\"\n let-checkbox=\"checkbox\"\n let-row=\"row\"\n>\n <ng-container *ngIf=\"isFirst && checkbox\">\n <mat-checkbox\n (click)=\"$event.stopPropagation()\"\n (change)=\"$event ? selection?.toggle(row) : null; getSelectedValues()\"\n [checked]=\"selection?.isSelected(row)\"\n >\n </mat-checkbox>\n </ng-container>\n <!-- POR FAVOR, N\u00C3O QUEBRE LINHA ENTRE NG-CONTAINER/TEMPLATE E O VALOR CONTE\u00DADO -->\n <ng-container *ngIf=\"isMaskedData(column, row); else statusContent\"\n >{{ getValueAsDate(column, row) | date: column.mask }}</ng-container\n >\n <ng-template #statusContent>\n <ng-container *ngIf=\"column.status; else commonContent\">\n <ng-container *ngIf=\"isBoolean(column, row); else commonStatus\"\n >{{ column.status.label[row[column.key] ? 1 : 0] }}</ng-container\n >\n <ng-template #commonStatus\n >{{ column.status.label[row[column.key]] || '-' }}</ng-template\n >\n </ng-container>\n <ng-template #commonContent>{{ row[column.key] }}</ng-template>\n </ng-template>\n <ng-template #statusContent>\n <ng-template #commonContent>{{ row[column.key] }}</ng-template>\n </ng-template>\n</ng-template>\n", styles: [".mapa-table .mat-table{font-family:SF-Pro;width:100%}.mapa-table .mat-table .mat-checkbox{margin:6px 8px 0 0;padding:0}.mapa-table td.mat-cell{padding:16px 0}.mapa-table .mat-table .mat-row .mat-cell{font-family:SF-Pro;font-size:16px;font-style:normal;font-weight:400;color:#50575e}.mapa-table .row-hover:hover{box-shadow:0 2px 4px #00000021;outline:1px solid rgba(238,238,238,.93);cursor:pointer}.mapa-table .mat-table .mat-header-cell{border:none;border-bottom:1px solid #eee;font-family:SF-Pro;font-size:16px;font-style:normal;font-weight:600;color:#50575e}.mapa-table .mat-mdc-row,.mapa-table .mdc-data-table__content,.mapa-table .mat-mdc-header-cell{--mat-table-row-item-label-text-font: \"SF-Pro\"}.mapa-table .mat-checkbox.mat-accent .mat-checkbox-frame{border-color:#b6b6b6}.mapa-table .mat-checkbox.mat-accent.mat-checkbox-checked .mat-checkbox-frame{border-color:#ea561d}.mapa-table .mat-checkbox.mat-accent .mat-checkbox-background{background-color:transparent}.mapa-table .mat-checkbox.mat-accent.mat-checkbox-checked .mat-checkbox-background{background-color:#ea561d}.mapa-table .mat-mdc-paginator-container{display:flex;justify-content:space-between}.mapa-table ::ng-deep .mat-mdc-paginator-page-size-label{display:none}.mapa-table__paginator-legacy .mat-paginator-container{font-family:SF-Pro!important;justify-content:flex-start}.mapa-table__paginator-legacy .mat-paginator-page-size{margin-right:10vw}.mapa-table__paginator-legacy .custom-paginator-container{justify-content:flex-end}.mapa-table__paginator-legacy .custom-paginator-counter{white-space:nowrap;margin:0 4px 0 10px!important}.mapa-table__paginator-legacy .custom-paginator-page{border-radius:4px;outline:none;border:none;margin:.4em;font-size:14px;min-width:24px;width:auto;min-height:24px;max-height:24px;padding:1px 6px}.mapa-table__paginator-legacy .custom-paginator-page-enabled{color:#50575e;background:transparent;cursor:pointer}.mapa-table__paginator-legacy .custom-paginator-page-enabled:hover{background-color:#dfe3e6}.mapa-table__paginator-legacy .custom-paginator-page-disabled{background-color:#ea561d;color:#fff}.mapa-table__paginator-legacy .custom-paginator-arrow-disabled{color:#dfe3e6}.mapa-table__paginator-legacy .custom-paginator-arrow-enabled{color:#999}.mapa-table{width:100%;white-space:nowrap}.mapa-table__label{margin-top:4px}.mapa-table__column{padding:15px;align-items:center;display:flex}.mapa-table__column--actions{display:flex}.mapa-table__column--actions .mat-icon{color:#ea561d!important}.mapa-table__column--actions-item{display:flex;align-items:center}.mapa-table__column--actions-item img{margin-right:8px}.mapa-table__column--header{width:100%}.mapa-table__column--header .mat-icon{cursor:pointer;position:relative;bottom:-3px;margin:0 7px;font-size:14px;height:14px;width:14px}.mapa-table__column--status{border-radius:4px;padding:4px 8px;margin:auto;text-align:center;width:min-content}.mapa-table__column--ellipsis{display:inline-block;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.mapa-table__column--no-wrap{white-space:nowrap}.mapa-table__column--wrap{white-space:pre-wrap}.mapa-table__column--center-cell{justify-content:center}.mapa-table .mat-sort-header-arrow{color:transparent}.mapa-table .mat-sort-header-content{width:100%}.mapa-table .mat-cell,.mapa-table .mat-header-cell{padding:0 10px!important}.mapa-table .mat-table{width:100%;overflow-x:auto}.mapa-table .classification{width:40px;height:40px;border-radius:24px;display:flex;justify-content:center;align-items:center}.mapa-table .roundCell{border-radius:10px}.mapa-table .general{border-radius:24px;border:1px solid #dcdcde;display:flex;justify-content:center;align-items:center;width:48px;height:48px}.mapa-table .name{color:#181818;text-align:left;font-family:SF-Pro;font-size:14px;font-style:normal;font-weight:400;line-height:20px}.mapa-table .cpf{color:var(--Grey-Grey-30, #8c8f94);text-align:left;font-family:SF-Pro;font-size:12px;font-style:normal;font-weight:400;line-height:16px}.mapa-table .label_report{color:#181818;text-align:center;font-family:SF-Pro;font-size:12px;font-style:normal;font-weight:400;line-height:16px}\n", ".classification-1{background-color:#073e92;color:#fff}.classification-2{background-color:#0e6ece;color:#fff}.classification-3{background-color:#2d9ced;color:#000}.classification-4{background-color:#68ceee;color:#000}.classification-5{background-color:#96f2ee;color:#000}.classification-6{background-color:#f598a7;color:#000}.classification-7{background-color:#f56580;color:#000}.classification-8{background-color:#f4284e;color:#fff}.classification-9{background-color:#c11c2f;color:#fff}.small-dot{width:12px;height:12px;border-radius:12px;padding:0;margin:0}.dot{width:16px;height:16px;border-radius:16px;padding:0;margin:0}.indicator{display:flex;padding:2px 4px 2px 16px;justify-content:space-between;align-items:center;border-radius:8px;font-family:SF-Pro;font-size:16px;font-style:normal;font-weight:400}.display-S{font-family:SF-Pro;font-size:20px;font-style:normal;font-weight:400}.display-L{font-family:SF-Pro;font-size:32px;font-style:normal;font-weight:400}.display-XG{font-family:SF-Pro;font-size:48px;font-style:normal;font-weight:400}*{transition:opacity .4s ease-out,max-height .4s ease-out}\n"] }]
|
|
572
|
+
args: [{ selector: "mapa-table", encapsulation: ViewEncapsulation.None, template: "<section class=\"mapa-table\">\n <table\n mat-table\n [dataSource]=\"dataSource\"\n matSort\n (matSortChange)=\"sortDataFunction($event)\"\n >\n <ng-container\n *ngFor=\"let column of columns; let isFirst = first\"\n [matColumnDef]=\"column.key\"\n >\n <th\n mat-header-cell\n *matHeaderCellDef\n mat-sort-header\n [disabled]=\"!(column.key !== 'actions' ? column.sort : null)\"\n >\n <div\n [ngTemplateOutlet]=\"tableHeader\"\n [ngTemplateOutletContext]=\"{ selection, column, isFirst, checkbox }\"\n ></div>\n </th>\n <td mat-cell *matCellDef=\"let row\" [style.width]=\"column?.width\">\n <div\n class=\"mapa-table__column\"\n (click)=\"emitRowClick(row, '')\"\n [class.mapa-table__column--center-cell]=\"column?.align === 'center' || isGroupReport && column.key !== 'name'\"\n >\n <ng-container\n *ngIf=\"column.key !== 'actions' && column.key !== 'menu'; else columnActionsOrMenu\"\n >\n <div class=\"mapa-table__content\">\n <div\n *ngIf=\"!isGroupReport\"\n [style.width]=\"column?.width\"\n [class.mapa-table__column--ellipsis]=\"column?.collapse === 'overflow'\"\n [class.mapa-table__column--no-wrap]=\"column?.collapse === 'no-wrap'\"\n [class.mapa-table__column--wrap]=\"column?.collapse === 'wrap'\"\n [ngClass]=\"[hasCustomClass(column, row, column.key) ? getCustomClass(column, row, column.key) : '']\"\n >\n <div\n *ngIf=\"column?.status?.color; else commonColumn\"\n class=\"mapa-table__column--status\"\n [style.backgroundColor]=\"getBackgroundColor(column, row)\"\n >\n <div\n [ngTemplateOutlet]=\"tableContent\"\n [ngTemplateOutletContext]=\"{ selection, column, isFirst, checkbox, row }\"\n ></div>\n </div>\n <ng-template #commonColumn>\n <div\n [ngTemplateOutlet]=\"tableContent\"\n [ngTemplateOutletContext]=\"{ selection, column, isFirst, checkbox, row }\"\n ></div>\n </ng-template>\n </div>\n <div *ngIf=\"isGroupReport\">\n <div [ngClass]=\"getCellClass(column, row)\">\n <ng-container\n *ngIf=\"column.key === 'name' || column.key === 'cpf' || column.key === 'general'; else valueContent\"\n >\n <div *ngIf=\"column.key === 'name'\">\n <div class=\"name\">{{ row.name }}<br /></div>\n <div class=\"cpf\">\n {{row.cpf}}\n </div>\n </div>\n <div *ngIf=\"column.key === 'general'\" class=\"general\">\n {{ row[column.key] | currency:'':'' }}%\n </div>\n </ng-container>\n <ng-template #valueContent>\n {{ getValue(row[column.key]) }}\n </ng-template>\n </div>\n </div>\n </div>\n </ng-container>\n <ng-template #columnActionsOrMenu>\n <div\n class=\"mapa-table__column--actions\"\n *ngIf=\"column.key === 'actions' && actions\"\n >\n <button\n *ngFor=\"let item of actions\"\n (click)=\"handleMenu({data: row, action: item.action})\"\n class=\"mapa-table__column--actions-item\"\n [title]=\"item.text\"\n mat-icon-button\n >\n <mat-icon *ngIf=\"item.icon\">{{item.icon}}</mat-icon>\n <img *ngIf=\"item.image\" [src]=\"item.image\" />\n </button>\n </div>\n <div class=\"mapa-table__column--menu\" *ngIf=\"column.key === 'menu'\">\n <mapa-menu\n *ngIf=\"hasIndividualMenu(row['menu']); else generalMenu\"\n [items]=\"row['menu']\"\n [data]=\"row\"\n (emitMenu)=\"handleMenu($event)\"\n ></mapa-menu>\n <ng-template #generalMenu>\n <mapa-menu\n *ngIf=\"menuItems && menuItems.length > 0\"\n [items]=\"menuItems\"\n [data]=\"row\"\n (emitMenu)=\"handleMenu($event)\"\n ></mapa-menu>\n </ng-template>\n </div>\n </ng-template>\n </div>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr\n mat-row\n *matRowDef=\"let row; columns: displayedColumns;\"\n [ngClass]=\"getRowClass()\"\n ></tr>\n </table>\n\n <section *ngIf=\"!isGroupReport\">\n <mat-paginator\n class=\"mapa-table__paginator-legacy\"\n itemsPerPageLabel=\"Item por p\u00E1gina\"\n appStylePaginatorMv\n [length]=\"totalCount\"\n [pageSize]=\"pageSize\"\n [pageSizeOptions]=\"[5, 10, 25, 100]\"\n (page)=\"changePage($event)\"\n ></mat-paginator>\n </section>\n</section>\n\n<ng-template\n #tableHeader\n let-selection=\"selection\"\n let-column=\"column\"\n let-isFirst=\"isFirst\"\n let-checkbox=\"checkbox\"\n>\n <div class=\"mapa-table__column mapa-table__column--header\">\n <ng-container *ngIf=\"isFirst && checkbox\">\n <mat-checkbox\n *ngIf=\"selection\"\n (change)=\"$event ? toggleAllRows() : null\"\n [checked]=\"selection.hasValue() && isAllSelected()\"\n [indeterminate]=\"selection.hasValue() && !isAllSelected()\"\n (click)=\"$event.stopPropagation()\"\n ></mat-checkbox>\n </ng-container>\n <div\n class=\"mapa-table__label\"\n [ngClass]=\"{ 'label_report': isGroupReport }\"\n >\n {{ column.label }}\n </div>\n <div\n *ngIf=\"column.key !== 'actions' && column.key !== 'menu' && column.sort\"\n >\n <mat-icon>filter_list</mat-icon>\n </div>\n </div>\n</ng-template>\n\n<ng-template\n #tableContent\n let-selection=\"selection\"\n let-column=\"column\"\n let-isFirst=\"isFirst\"\n let-checkbox=\"checkbox\"\n let-row=\"row\"\n>\n <ng-container *ngIf=\"isFirst && checkbox\">\n <mat-checkbox\n (click)=\"$event.stopPropagation()\"\n (change)=\"$event ? selection?.toggle(row) : null; getSelectedValues()\"\n [checked]=\"selection?.isSelected(row)\"\n >\n </mat-checkbox>\n </ng-container>\n <!-- POR FAVOR, N\u00C3O QUEBRE LINHA ENTRE NG-CONTAINER/TEMPLATE E O VALOR CONTE\u00DADO -->\n <ng-container *ngIf=\"isMaskedData(column, row); else statusContent\"\n >{{ getValueAsDate(column, row) | date: column.mask }}</ng-container\n >\n <ng-template #statusContent>\n <ng-container *ngIf=\"column.status; else commonContent\">\n <ng-container *ngIf=\"isBoolean(column, row); else commonStatus\"\n >{{ column.status.label[row[column.key] ? 1 : 0] }}</ng-container\n >\n <ng-template #commonStatus\n >{{ column.status.label[row[column.key]] || '-' }}</ng-template\n >\n </ng-container>\n <ng-template #commonContent>{{ row[column.key] }}</ng-template>\n </ng-template>\n <ng-template #statusContent>\n <ng-template #commonContent>{{ row[column.key] }}</ng-template>\n </ng-template>\n</ng-template>\n", styles: [".mapa-table .mat-table{font-family:SF-Pro;width:100%}.mapa-table .mat-table .mat-checkbox{margin:6px 8px 0 0;padding:0}.mapa-table td.mat-cell{padding:16px 0}.mapa-table .mat-table .mat-row .mat-cell{font-family:SF-Pro;font-size:16px;font-style:normal;font-weight:400;color:#50575e}.mapa-table .row-hover:hover{box-shadow:0 2px 4px #00000021;outline:1px solid rgba(238,238,238,.93);cursor:pointer}.mapa-table .mat-table .mat-header-cell{border:none;border-bottom:1px solid #eee;font-family:SF-Pro;font-size:16px;font-style:normal;font-weight:600;color:#50575e}.mapa-table .mat-mdc-row,.mapa-table .mdc-data-table__content,.mapa-table .mat-mdc-header-cell{--mat-table-row-item-label-text-font: \"SF-Pro\"}.mapa-table .mat-checkbox.mat-accent .mat-checkbox-frame{border-color:#b6b6b6}.mapa-table .mat-checkbox.mat-accent.mat-checkbox-checked .mat-checkbox-frame{border-color:#ea561d}.mapa-table .mat-checkbox.mat-accent .mat-checkbox-background{background-color:transparent}.mapa-table .mat-checkbox.mat-accent.mat-checkbox-checked .mat-checkbox-background{background-color:#ea561d}.mapa-table .mat-mdc-paginator-container{display:flex;justify-content:space-between}.mapa-table ::ng-deep .mat-mdc-paginator-page-size-label{display:none}.mapa-table__paginator-legacy .mat-paginator-container{font-family:SF-Pro!important;justify-content:flex-start}.mapa-table__paginator-legacy .mat-paginator-page-size{margin-right:10vw}.mapa-table__paginator-legacy .custom-paginator-container{justify-content:flex-end}.mapa-table__paginator-legacy .custom-paginator-counter{white-space:nowrap;margin:0 4px 0 10px!important}.mapa-table__paginator-legacy .custom-paginator-page{border-radius:4px;outline:none;border:none;margin:.4em;font-size:14px;min-width:24px;width:auto;min-height:24px;max-height:24px;padding:1px 6px}.mapa-table__paginator-legacy .custom-paginator-page-enabled{color:#50575e;background:transparent;cursor:pointer}.mapa-table__paginator-legacy .custom-paginator-page-enabled:hover{background-color:#dfe3e6}.mapa-table__paginator-legacy .custom-paginator-page-disabled{background-color:#ea561d;color:#fff}.mapa-table__paginator-legacy .custom-paginator-arrow-disabled{color:#dfe3e6}.mapa-table__paginator-legacy .custom-paginator-arrow-enabled{color:#999}.mapa-table{width:100%;white-space:nowrap}.mapa-table__label{margin-top:4px}.mapa-table__column{padding:15px;align-items:center;display:flex}.mapa-table__column--actions{display:flex}.mapa-table__column--actions .mat-icon{color:#ea561d!important}.mapa-table__column--actions-item{display:flex;align-items:center}.mapa-table__column--actions-item img{margin-right:8px}.mapa-table__column--header{width:100%}.mapa-table__column--header .mat-icon{cursor:pointer;position:relative;bottom:-3px;margin:0 7px;font-size:14px;height:14px;width:14px}.mapa-table__column--status{border-radius:4px;padding:4px 8px;margin:auto;text-align:center;width:min-content}.mapa-table__column--ellipsis{display:inline-block;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.mapa-table__column--no-wrap{white-space:nowrap}.mapa-table__column--wrap{white-space:pre-wrap}.mapa-table__column--center-cell{justify-content:center}.mapa-table .mat-sort-header-arrow{color:transparent}.mapa-table .mat-sort-header-content{width:100%}.mapa-table .mat-cell,.mapa-table .mat-header-cell{padding:0 10px!important}.mapa-table .mat-table{width:100%;overflow-x:auto}.mapa-table .classification{width:40px;height:40px;border-radius:24px;display:flex;justify-content:center;align-items:center}.mapa-table .roundCell{border-radius:10px}.mapa-table .general{border-radius:24px;border:1px solid #dcdcde;display:flex;justify-content:center;align-items:center;width:48px;height:48px}.mapa-table .name{color:#181818;text-align:left;font-family:SF-Pro;font-size:14px;font-style:normal;font-weight:400;line-height:20px}.mapa-table .cpf{color:var(--Grey-Grey-30, #8c8f94);text-align:left;font-family:SF-Pro;font-size:12px;font-style:normal;font-weight:400;line-height:16px}.mapa-table .label_report{color:#181818;text-align:center;font-family:SF-Pro;font-size:12px;font-style:normal;font-weight:400;line-height:16px}\n", ".classification-1{background-color:#073e92;color:#fff}.classification-2{background-color:#0e6ece;color:#fff}.classification-3{background-color:#2d9ced;color:#000}.classification-4{background-color:#68ceee;color:#000}.classification-5{background-color:#96f2ee;color:#000}.classification-6{background-color:#f598a7;color:#000}.classification-7{background-color:#f56580;color:#000}.classification-8{background-color:#f4284e;color:#fff}.classification-9{background-color:#c11c2f;color:#fff}.small-dot{width:12px;height:12px;border-radius:12px;padding:0;margin:0}.dot{width:16px;height:16px;border-radius:16px;padding:0;margin:0}.indicator{display:flex;padding:2px 4px 2px 16px;justify-content:space-between;align-items:center;border-radius:8px;font-family:SF-Pro;font-size:16px;font-style:normal;font-weight:400}.display-S{font-family:SF-Pro;font-size:20px;font-style:normal;font-weight:400}.display-L{font-family:SF-Pro;font-size:32px;font-style:normal;font-weight:400}.display-XG{font-family:SF-Pro;font-size:48px;font-style:normal;font-weight:400}*{transition:opacity .4s ease-out,max-height .4s ease-out}\n"] }]
|
|
566
573
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { columns: [{
|
|
567
574
|
type: Input
|
|
568
575
|
}], data: [{
|