ng-fusion-ui 0.2.4 → 0.2.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/data-grid/components/body-row-cell/body-row-cell.component.mjs +2 -2
- package/esm2022/lib/data-grid/data-grid/data-grid.component.mjs +11 -13
- package/esm2022/lib/data-grid/directives/grid-columns.directive.mjs +15 -15
- package/esm2022/lib/data-grid/services/paginator.service.mjs +9 -9
- package/fesm2022/ng-fusion-ui.mjs +62 -63
- package/fesm2022/ng-fusion-ui.mjs.map +1 -1
- package/lib/data-grid/data-grid/data-grid.component.d.ts +9 -9
- package/lib/data-grid/directives/grid-columns.directive.d.ts +5 -7
- package/lib/data-grid/services/paginator.service.d.ts +2 -1
- package/package.json +1 -1
|
@@ -57,11 +57,11 @@ export class BodyRowCellComponent {
|
|
|
57
57
|
}
|
|
58
58
|
}
|
|
59
59
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: BodyRowCellComponent, deps: [{ token: i1.DataSortingService }, { token: i2.EditRowService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
60
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.6", type: BodyRowCellComponent, selector: "fu-body-row-cell", inputs: { cellValue: { classPropertyName: "cellValue", publicName: "cellValue", isSignal: false, isRequired: false, transformFunction: null }, editKey: { classPropertyName: "editKey", publicName: "editKey", isSignal: false, isRequired: false, transformFunction: null }, editCellValue: { classPropertyName: "editCellValue", publicName: "editCellValue", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { editCellValue: "editCellValueChange" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"fu-body-row-cell\" [attr.data-edit]=\"isEditing()\">\r\n <span>{{ cellDef }}</span>\r\n\r\n @if (cellValue) { @if(isEditing()){\r\n <input\r\n class=\"fu-edit-input\"\r\n [(ngModel)]=\"editCellValue\"\r\n (ngModelChange)=\"onInputChange($event)\"\r\n (click)=\"$event.stopPropagation()\"\r\n />\r\n }@else {\r\n <span>{{ cellValue }}</span>\r\n } } @else {\r\n <ng-content />\r\n }\r\n</div>\r\n", styles: [".fu-body-row-cell{padding:12px 16px}.fu-body-row-cell[data-edit=true]{padding:8px 16px}.fu-body-row-cell>span:nth-child(1){display:none}@media (max-width: 900px){.fu-body-row-cell>span:nth-child(1){display:inline;font-weight:700}}.fu-body-row-cell>span:nth-child(2){color:var(--fu-grid-cell-color);word-break:break-all}@media (max-width: 900px){.fu-body-row-cell{display:grid;grid-template-columns:repeat(2,1fr);padding:8px 16px}}@media (max-width: 600px){.fu-body-row-cell{grid-template-columns:35% 1fr;padding:6px 16px}}.fu-edit-input{background-color:transparent;color
|
|
60
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.6", type: BodyRowCellComponent, selector: "fu-body-row-cell", inputs: { cellValue: { classPropertyName: "cellValue", publicName: "cellValue", isSignal: false, isRequired: false, transformFunction: null }, editKey: { classPropertyName: "editKey", publicName: "editKey", isSignal: false, isRequired: false, transformFunction: null }, editCellValue: { classPropertyName: "editCellValue", publicName: "editCellValue", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { editCellValue: "editCellValueChange" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"fu-body-row-cell\" [attr.data-edit]=\"isEditing()\">\r\n <span>{{ cellDef }}</span>\r\n\r\n @if (cellValue) { @if(isEditing()){\r\n <input\r\n class=\"fu-edit-input\"\r\n [(ngModel)]=\"editCellValue\"\r\n (ngModelChange)=\"onInputChange($event)\"\r\n (click)=\"$event.stopPropagation()\"\r\n />\r\n }@else {\r\n <span>{{ cellValue }}</span>\r\n } } @else {\r\n <ng-content />\r\n }\r\n</div>\r\n", styles: [".fu-body-row-cell{padding:12px 16px}.fu-body-row-cell[data-edit=true]{padding:8px 16px}.fu-body-row-cell>span:nth-child(1){display:none}@media (max-width: 900px){.fu-body-row-cell>span:nth-child(1){display:inline;font-weight:700}}.fu-body-row-cell>span:nth-child(2){color:var(--fu-grid-cell-color);word-break:break-all}@media (max-width: 900px){.fu-body-row-cell{display:grid;grid-template-columns:repeat(2,1fr);padding:8px 16px}}@media (max-width: 600px){.fu-body-row-cell{grid-template-columns:35% 1fr;padding:6px 16px}}.fu-edit-input{background-color:transparent;color:var(--fu-grid-cell-edit-input);width:100%;padding:4px;border:none;outline:1px solid gray;border-radius:4px}\n"], dependencies: [{ kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
61
61
|
}
|
|
62
62
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: BodyRowCellComponent, decorators: [{
|
|
63
63
|
type: Component,
|
|
64
|
-
args: [{ selector: 'fu-body-row-cell', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div class=\"fu-body-row-cell\" [attr.data-edit]=\"isEditing()\">\r\n <span>{{ cellDef }}</span>\r\n\r\n @if (cellValue) { @if(isEditing()){\r\n <input\r\n class=\"fu-edit-input\"\r\n [(ngModel)]=\"editCellValue\"\r\n (ngModelChange)=\"onInputChange($event)\"\r\n (click)=\"$event.stopPropagation()\"\r\n />\r\n }@else {\r\n <span>{{ cellValue }}</span>\r\n } } @else {\r\n <ng-content />\r\n }\r\n</div>\r\n", styles: [".fu-body-row-cell{padding:12px 16px}.fu-body-row-cell[data-edit=true]{padding:8px 16px}.fu-body-row-cell>span:nth-child(1){display:none}@media (max-width: 900px){.fu-body-row-cell>span:nth-child(1){display:inline;font-weight:700}}.fu-body-row-cell>span:nth-child(2){color:var(--fu-grid-cell-color);word-break:break-all}@media (max-width: 900px){.fu-body-row-cell{display:grid;grid-template-columns:repeat(2,1fr);padding:8px 16px}}@media (max-width: 600px){.fu-body-row-cell{grid-template-columns:35% 1fr;padding:6px 16px}}.fu-edit-input{background-color:transparent;color
|
|
64
|
+
args: [{ selector: 'fu-body-row-cell', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div class=\"fu-body-row-cell\" [attr.data-edit]=\"isEditing()\">\r\n <span>{{ cellDef }}</span>\r\n\r\n @if (cellValue) { @if(isEditing()){\r\n <input\r\n class=\"fu-edit-input\"\r\n [(ngModel)]=\"editCellValue\"\r\n (ngModelChange)=\"onInputChange($event)\"\r\n (click)=\"$event.stopPropagation()\"\r\n />\r\n }@else {\r\n <span>{{ cellValue }}</span>\r\n } } @else {\r\n <ng-content />\r\n }\r\n</div>\r\n", styles: [".fu-body-row-cell{padding:12px 16px}.fu-body-row-cell[data-edit=true]{padding:8px 16px}.fu-body-row-cell>span:nth-child(1){display:none}@media (max-width: 900px){.fu-body-row-cell>span:nth-child(1){display:inline;font-weight:700}}.fu-body-row-cell>span:nth-child(2){color:var(--fu-grid-cell-color);word-break:break-all}@media (max-width: 900px){.fu-body-row-cell{display:grid;grid-template-columns:repeat(2,1fr);padding:8px 16px}}@media (max-width: 600px){.fu-body-row-cell{grid-template-columns:35% 1fr;padding:6px 16px}}.fu-edit-input{background-color:transparent;color:var(--fu-grid-cell-edit-input);width:100%;padding:4px;border:none;outline:1px solid gray;border-radius:4px}\n"] }]
|
|
65
65
|
}], ctorParameters: () => [{ type: i1.DataSortingService }, { type: i2.EditRowService }, { type: i0.ElementRef }], propDecorators: { cellValue: [{
|
|
66
66
|
type: Input
|
|
67
67
|
}], editKey: [{
|
|
@@ -3,7 +3,6 @@ import { DataSortingService } from '../services/data-sorting.service';
|
|
|
3
3
|
import { GridHeaderTemplateDirective } from '../directives/grid-header-template.directive';
|
|
4
4
|
import { GridBodyTemplateDirective } from '../directives/grid-body-template.directive';
|
|
5
5
|
import { GridExpandTemplateDirective } from '../directives/grid-expand-template.directive';
|
|
6
|
-
import { initColumns } from '../directives/grid-columns.directive';
|
|
7
6
|
import * as i0 from "@angular/core";
|
|
8
7
|
import * as i1 from "../services/data-sorting.service";
|
|
9
8
|
import * as i2 from "../services/paginator.service";
|
|
@@ -22,7 +21,6 @@ export class DataGridComponent {
|
|
|
22
21
|
this.dataSource = [];
|
|
23
22
|
this.pageSize = 5;
|
|
24
23
|
this.pageSizeOptions = [5, 10, 15];
|
|
25
|
-
this.responsive = initColumns;
|
|
26
24
|
this.localStorageKey = 'data';
|
|
27
25
|
this.dataLoading = false;
|
|
28
26
|
this.lazyLoading = false;
|
|
@@ -47,13 +45,13 @@ export class DataGridComponent {
|
|
|
47
45
|
effect(() => {
|
|
48
46
|
this.sortData(this.sortService.sortKey());
|
|
49
47
|
});
|
|
50
|
-
this.pageSize = JSON.parse(window.localStorage.getItem(`fu-grid-${this.localStorageKey}-pageSize`) ||
|
|
51
|
-
'5');
|
|
52
|
-
this.currentPage = JSON.parse(window.localStorage.getItem(`fu-grid-${this.localStorageKey}-currentPage`) || '1');
|
|
53
|
-
this.paginationService.setPageSize(this.pageSize);
|
|
54
|
-
this.paginationService.setPage(this.currentPage);
|
|
55
48
|
}
|
|
56
49
|
ngOnChanges(changes) {
|
|
50
|
+
if (changes['localStorageKey']) {
|
|
51
|
+
this.pageSize = JSON.parse(window.localStorage.getItem(`fu-grid-${this.localStorageKey}-pageSize`) || this.pageSizeOptions[0].toString());
|
|
52
|
+
this.currentPage = JSON.parse(window.localStorage.getItem(`fu-grid-${this.localStorageKey}-currentPage`) || '1');
|
|
53
|
+
this.paginationService.initPagination(this.currentPage, this.pageSize);
|
|
54
|
+
}
|
|
57
55
|
if (changes['dataSource']) {
|
|
58
56
|
if (!this.lazyLoading) {
|
|
59
57
|
this.filteredData = [...this.dataSource];
|
|
@@ -121,7 +119,7 @@ export class DataGridComponent {
|
|
|
121
119
|
}
|
|
122
120
|
this.currentPage = page;
|
|
123
121
|
window.localStorage.setItem(`fu-grid-${this.localStorageKey}-currentPage`, this.currentPage.toString());
|
|
124
|
-
this.paginationService.setPage(page);
|
|
122
|
+
this.paginationService.setPage(page, this.pageSize);
|
|
125
123
|
this.updatePagination();
|
|
126
124
|
}
|
|
127
125
|
totalPages() {
|
|
@@ -154,14 +152,14 @@ export class DataGridComponent {
|
|
|
154
152
|
}
|
|
155
153
|
return;
|
|
156
154
|
}
|
|
157
|
-
|
|
155
|
+
this.rowSelect.emit(row);
|
|
158
156
|
}
|
|
159
157
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: DataGridComponent, deps: [{ token: i1.DataSortingService }, { token: i2.PaginationService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
160
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.6", type: DataGridComponent, selector: "fu-data-grid", inputs: { dataSource: "dataSource", totalCount: "totalCount", pageSize: "pageSize", pageSizeOptions: "pageSizeOptions", responsive: "responsive", localStorageKey: "localStorageKey", dataLoading: "dataLoading", lazyLoading: "lazyLoading", expandable: "expandable", filter: "filter", paginator: "paginator", hoverable: "hoverable", striped: "striped" }, outputs: { rowSelect: "rowSelect" }, providers: [DataSortingService], queries: [{ propertyName: "captionTemplate", first: true, predicate: ["caption"], descendants: true }, { propertyName: "headerTemplate", first: true, predicate: GridHeaderTemplateDirective, descendants: true, read: TemplateRef }, { propertyName: "bodyTemplate", first: true, predicate: GridBodyTemplateDirective, descendants: true, read: TemplateRef }, { propertyName: "expandTemplate", first: true, predicate: GridExpandTemplateDirective, descendants: true, read: TemplateRef }, { propertyName: "footerTemplate", first: true, predicate: ["footer"], descendants: true }, { propertyName: "noContentTemplate", first: true, predicate: ["nocontent"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div id=\"fusion-datagrid\" class=\"fu-data-grid-wrapper\">\r\n @if (filter) {\r\n <input\r\n class=\"fu-data-grid-filter\"\r\n type=\"text\"\r\n [(ngModel)]=\"filterText\"\r\n (input)=\"filterData()\"\r\n placeholder=\"Search keyword...\"\r\n />\r\n }\r\n\r\n <div class=\"fu-data-grid-container\">\r\n <div class=\"fu-data-grid-header\">\r\n <div class=\"fu-head-row\" gridColumns [responsive]=\"responsive\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n headerTemplate || defaultHeaderTemplate;\r\n context: { $implicit: dataSource, keys: dataSource[0] | keyMapping }\r\n \"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"fu-data-grid-body\">\r\n <div *ngIf=\"dataLoading\" class=\"fu-data-grid-spinner-overlay\">\r\n <div class=\"fu-spinner\"></div>\r\n </div>\r\n\r\n @for (row of paginatedData; track $index) {\r\n <div\r\n class=\"fu-body-row\"\r\n [ngClass]=\"{ hoverable, striped }\"\r\n [style.cursor]=\"expandable ? 'pointer' : 'default'\"\r\n (click)=\"rowClick(row, $index)\"\r\n >\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n bodyTemplate || defaultBodyTemplate;\r\n context: { $implicit: row, index: $index, keys: row | keyMapping }\r\n \"\r\n />\r\n\r\n @if (expandable && expandedRowIndex === $index) {\r\n <div class=\"fu-expanded-row\" (click)=\"$event.stopPropagation()\">\r\n <div>\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n expandTemplate;\r\n context: { $implicit: row, index: $index }\r\n \"\r\n />\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n\r\n <ng-container\r\n *ngTemplateOutlet=\"footerTemplate; context: { $implicit: paginatedData }\"\r\n />\r\n\r\n @if(paginatedData.length <= 0){\r\n <ng-container *ngTemplateOutlet=\"noContentTemplate\" />\r\n }\r\n <!-- WRAP -->\r\n @if (paginator) {\r\n <ng-container\r\n *ngTemplateOutlet=\"defaultPaginator; context: { $implicit: sortData }\"\r\n />\r\n }\r\n</div>\r\n\r\n<ng-template #defaultHeaderTemplate let-data>\r\n @for (header of data[0] | keyvalue: originalOrder; track $index) {\r\n <fu-head-row-cell [cellDef]=\"$any(header.key)\" [sortKey]=\"$any(header.key)\" />\r\n }\r\n</ng-template>\r\n\r\n<ng-template #defaultBodyTemplate let-rows>\r\n @for (row of rows | keyvalue: originalOrder; track $index) {\r\n <fu-body-row-cell [cellValue]=\"$any(row.value)\" />\r\n }\r\n</ng-template>\r\n\r\n<ng-template #defaultPaginator let-data>\r\n <div class=\"fu-data-grid-paginator\">\r\n <div class=\"fu-paginator-page-select\">\r\n <span>Items per page:</span>\r\n <select (change)=\"changePageSize($event)\">\r\n <option\r\n *ngFor=\"let size of pageSizeOptions\"\r\n [value]=\"size\"\r\n [selected]=\"size === pageSize\"\r\n >\r\n {{ size }}\r\n </option>\r\n </select>\r\n </div>\r\n <div class=\"fu-paginator-controls\">\r\n <div>\r\n {{ getPageStart() }} - {{ getPageEnd() }} of {{ totalItemCount() }}\r\n </div>\r\n <button\r\n fu-btn-text\r\n iconButton\r\n (click)=\"goToPage(1)\"\r\n [disabled]=\"currentPage === 1\"\r\n >\r\n <fu-icon iconName=\"doubleArrowLeft\" />\r\n </button>\r\n <button\r\n fu-btn-text\r\n iconButton\r\n (click)=\"goToPage(currentPage - 1)\"\r\n [disabled]=\"currentPage === 1\"\r\n >\r\n <fu-icon iconName=\"arrowLeft\" />\r\n </button>\r\n <button\r\n fu-btn-text\r\n iconButton\r\n (click)=\"goToPage(currentPage + 1)\"\r\n [disabled]=\"currentPage >= totalPages()\"\r\n >\r\n <fu-icon iconName=\"arrowRight\" />\r\n </button>\r\n <button\r\n fu-btn-text\r\n iconButton\r\n (click)=\"goToPage(totalPages())\"\r\n [disabled]=\"currentPage >= totalPages()\"\r\n >\r\n <fu-icon iconName=\"doubleArrowRight\" />\r\n </button>\r\n </div>\r\n </div>\r\n</ng-template>\r\n", styles: ["html{--fu-grid-fg-color: #232534;--fu-grid-bg-color: #1e1f2b;--fu-grid-hover-color: #12121240;--fu-grid-striped-color: #22232e;--fu-grid-border-color: #4b444d;--fu-grid-text-color: #ffffff;--fu-grid-cell-color: #bab9b9;--fu-filter-input-color: #ccc;--fu-grid-shape: 4px}.fu-data-grid-wrapper{border-radius:var(--fu-grid-shape);box-shadow:0 2px 4px #00000080;background-color:var(--fu-grid-bg-color);color:var(--fu-grid-text-color);font-family:Roboto,sans-serif;font-size:14px}.fu-data-grid-container{width:100%}.fu-data-grid-container .fu-data-grid-header .fu-head-row{display:grid;grid-template-columns:repeat(var(--grid-columns),1fr);border-bottom:1px solid var(--fu-grid-border-color)}@media (max-width: 900px){.fu-data-grid-container .fu-data-grid-header .fu-head-row{display:flex;justify-content:space-between;flex-wrap:wrap}.fu-data-grid-container .fu-data-grid-header .fu-head-row>*{flex:1 1 auto}}.fu-data-grid-container .fu-data-grid-body{position:relative}.fu-data-grid-container .fu-data-grid-body .fu-body-row{display:grid;grid-template-columns:repeat(var(--grid-columns),1fr);border-bottom:1px solid var(--fu-grid-border-color)}.fu-data-grid-container .fu-data-grid-body .fu-body-row.striped:nth-child(2n){background-color:var(--fu-grid-striped-color)}.fu-data-grid-container .fu-data-grid-body .fu-body-row.hoverable:hover{background-color:var(--fu-grid-hover-color)}@media (max-width: 900px){.fu-data-grid-container .fu-data-grid-body .fu-body-row{grid-template-columns:repeat(var(--grid-columns),1fr)}.fu-data-grid-container .fu-data-grid-body .fu-body-row :nth-child(odd):last-child{grid-column:span 2}.fu-data-grid-container .fu-data-grid-body .fu-body-row [data-actions]{grid-column:1/-1;margin:8px 0}}@media (max-width: 600px){.fu-data-grid-container .fu-data-grid-body .fu-body-row{grid-template-columns:1fr;border-bottom:1px solid var(--fu-grid-border-color)}.fu-data-grid-container .fu-data-grid-body .fu-body-row>:nth-child(odd):last-child{grid-column:span 1}}.fu-data-grid-container .fu-data-grid-body .fu-body-row .fu-expanded-row{grid-column:1/-1;border-top:1px solid rgba(128,128,128,.1);padding:12px 16px}.fu-data-grid-container .fu-data-grid-body .fu-body-row .fu-expanded-row>div{cursor:default}.fu-data-grid-paginator{display:flex;justify-content:flex-end;padding:16px}@media (max-width: 600px){.fu-data-grid-paginator{gap:12px;flex-direction:column;padding:12px 16px}}.fu-data-grid-paginator .fu-paginator-page-select{display:flex;justify-content:flex-end;align-items:center;margin-right:12px;font-size:14px}@media (max-width: 600px){.fu-data-grid-paginator .fu-paginator-page-select{margin-right:0}}.fu-data-grid-paginator .fu-paginator-page-select span{margin-right:8px}.fu-data-grid-paginator .fu-paginator-controls{display:flex;justify-content:flex-end;align-items:center;gap:8px}.fu-data-grid-filter{box-sizing:border-box;background-color:var(--fu-grid-fg-color);color:var(--fu-filter-input-color);width:calc(100% - 32px);padding:12px 8px;margin:16px;outline:none;border:none}.fu-data-grid-spinner-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background-color:#78787880;display:flex;justify-content:center;align-items:center;z-index:1000}.fu-data-grid-spinner-overlay .fu-spinner{border:10px solid var(--fu-grid-bg-color);border-top:10px solid #3498db;border-radius:50%;width:30px;height:30px;animation:spin 2s linear infinite;margin:5px auto}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i4.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5.IconComponent, selector: "fu-icon", inputs: ["iconName", "size", "strokeWidth", "color"] }, { kind: "directive", type: i6.TextButtonDirective, selector: "[fu-btn-text]", inputs: ["variant", "iconButton", "rounded"] }, { kind: "directive", type: i7.GridColumnsDirective, selector: "[gridColumns]", inputs: ["responsive"] }, { kind: "component", type: i8.BodyRowCellComponent, selector: "fu-body-row-cell", inputs: ["cellValue", "editKey", "editCellValue"], outputs: ["editCellValueChange"] }, { kind: "component", type: i9.HeadRowCellComponent, selector: "fu-head-row-cell", inputs: ["cellDef", "sortKey"] }, { kind: "pipe", type: i3.KeyValuePipe, name: "keyvalue" }, { kind: "pipe", type: i10.KeyMappingPipe, name: "keyMapping" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
158
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.6", type: DataGridComponent, selector: "fu-data-grid", inputs: { dataSource: "dataSource", totalCount: "totalCount", pageSize: "pageSize", pageSizeOptions: "pageSizeOptions", columnSizes: "columnSizes", localStorageKey: "localStorageKey", dataLoading: "dataLoading", lazyLoading: "lazyLoading", expandable: "expandable", filter: "filter", paginator: "paginator", hoverable: "hoverable", striped: "striped" }, outputs: { rowSelect: "rowSelect" }, providers: [DataSortingService], queries: [{ propertyName: "captionTemplate", first: true, predicate: ["caption"], descendants: true }, { propertyName: "headerTemplate", first: true, predicate: GridHeaderTemplateDirective, descendants: true, read: TemplateRef }, { propertyName: "bodyTemplate", first: true, predicate: GridBodyTemplateDirective, descendants: true, read: TemplateRef }, { propertyName: "expandTemplate", first: true, predicate: GridExpandTemplateDirective, descendants: true, read: TemplateRef }, { propertyName: "footerTemplate", first: true, predicate: ["footer"], descendants: true }, { propertyName: "noContentTemplate", first: true, predicate: ["nocontent"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div id=\"fusion-datagrid\" class=\"fu-data-grid-wrapper\">\r\n @if (filter) {\r\n <input\r\n class=\"fu-data-grid-filter\"\r\n type=\"text\"\r\n [(ngModel)]=\"filterText\"\r\n (input)=\"filterData()\"\r\n placeholder=\"Search keyword...\"\r\n />\r\n }\r\n\r\n <div class=\"fu-data-grid-container\">\r\n <div class=\"fu-data-grid-header\">\r\n <div class=\"fu-head-row\" gridColumns [columnSizes]=\"columnSizes\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n headerTemplate || defaultHeaderTemplate;\r\n context: { $implicit: dataSource, keys: dataSource[0] | keyMapping }\r\n \"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"fu-data-grid-body\">\r\n <div *ngIf=\"dataLoading\" class=\"fu-data-grid-spinner-overlay\">\r\n <div class=\"fu-spinner\"></div>\r\n </div>\r\n\r\n @for (row of paginatedData; track $index) {\r\n <div\r\n class=\"fu-body-row\"\r\n [ngClass]=\"{ hoverable, striped }\"\r\n [style.cursor]=\"expandable ? 'pointer' : 'default'\"\r\n (click)=\"rowClick(row, $index)\"\r\n >\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n bodyTemplate || defaultBodyTemplate;\r\n context: { $implicit: row, index: $index, keys: row | keyMapping }\r\n \"\r\n />\r\n\r\n @if (expandable && expandedRowIndex === $index) {\r\n <div class=\"fu-expanded-row\" (click)=\"$event.stopPropagation()\">\r\n <div>\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n expandTemplate;\r\n context: { $implicit: row, index: $index }\r\n \"\r\n />\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n\r\n <ng-container\r\n *ngTemplateOutlet=\"footerTemplate; context: { $implicit: paginatedData }\"\r\n />\r\n\r\n @if(paginatedData.length <= 0){\r\n <ng-container *ngTemplateOutlet=\"noContentTemplate\" />\r\n }\r\n <!-- WRAP -->\r\n @if (paginator) {\r\n <ng-container\r\n *ngTemplateOutlet=\"defaultPaginator; context: { $implicit: sortData }\"\r\n />\r\n }\r\n</div>\r\n\r\n<ng-template #defaultHeaderTemplate let-data>\r\n @for (header of data[0] | keyvalue: originalOrder; track $index) {\r\n <fu-head-row-cell [cellDef]=\"$any(header.key)\" [sortKey]=\"$any(header.key)\" />\r\n }\r\n</ng-template>\r\n\r\n<ng-template #defaultBodyTemplate let-rows>\r\n @for (row of rows | keyvalue: originalOrder; track $index) {\r\n <fu-body-row-cell [cellValue]=\"$any(row.value)\" />\r\n }\r\n</ng-template>\r\n\r\n<ng-template #defaultPaginator let-data>\r\n <div class=\"fu-data-grid-paginator\">\r\n <div class=\"fu-paginator-page-select\">\r\n <span>Items per page:</span>\r\n <select (change)=\"changePageSize($event)\">\r\n <option\r\n *ngFor=\"let size of pageSizeOptions\"\r\n [value]=\"size\"\r\n [selected]=\"size === pageSize\"\r\n >\r\n {{ size }}\r\n </option>\r\n </select>\r\n </div>\r\n <div class=\"fu-paginator-controls\">\r\n <div>\r\n {{ getPageStart() }} - {{ getPageEnd() }} of {{ totalItemCount() }}\r\n </div>\r\n <button\r\n fu-btn-text\r\n iconButton\r\n (click)=\"goToPage(1)\"\r\n [disabled]=\"currentPage === 1\"\r\n >\r\n <fu-icon iconName=\"doubleArrowLeft\" />\r\n </button>\r\n <button\r\n fu-btn-text\r\n iconButton\r\n (click)=\"goToPage(currentPage - 1)\"\r\n [disabled]=\"currentPage === 1\"\r\n >\r\n <fu-icon iconName=\"arrowLeft\" />\r\n </button>\r\n <button\r\n fu-btn-text\r\n iconButton\r\n (click)=\"goToPage(currentPage + 1)\"\r\n [disabled]=\"currentPage >= totalPages()\"\r\n >\r\n <fu-icon iconName=\"arrowRight\" />\r\n </button>\r\n <button\r\n fu-btn-text\r\n iconButton\r\n (click)=\"goToPage(totalPages())\"\r\n [disabled]=\"currentPage >= totalPages()\"\r\n >\r\n <fu-icon iconName=\"doubleArrowRight\" />\r\n </button>\r\n </div>\r\n </div>\r\n</ng-template>\r\n", styles: ["html{--fu-grid-fg-color: #232534;--fu-grid-bg-color: #1e1f2b;--fu-grid-hover-color: #12121240;--fu-grid-striped-color: #22232e;--fu-grid-border-color: #4b444d;--fu-grid-text-color: #ffffff;--fu-grid-cell-color: #bab9b9;--fu-filter-input-color: #ccc;--fu-grid-cell-edit-input: #fff;--fu-grid-shape: 4px}.fu-data-grid-wrapper{border-radius:var(--fu-grid-shape);box-shadow:0 2px 4px #00000080;background-color:var(--fu-grid-bg-color);color:var(--fu-grid-text-color);font-family:Roboto,sans-serif;font-size:14px}.fu-data-grid-container{width:100%}.fu-data-grid-container .fu-data-grid-header .fu-head-row{display:grid;grid-template-columns:var(--grid-columns);border-bottom:1px solid var(--fu-grid-border-color)}@media (max-width: 900px){.fu-data-grid-container .fu-data-grid-header .fu-head-row{display:flex;justify-content:space-between;flex-wrap:wrap}.fu-data-grid-container .fu-data-grid-header .fu-head-row>*{flex:1 1 auto}}.fu-data-grid-container .fu-data-grid-body{position:relative}.fu-data-grid-container .fu-data-grid-body .fu-body-row{display:grid;grid-template-columns:var(--grid-columns);border-bottom:1px solid var(--fu-grid-border-color)}.fu-data-grid-container .fu-data-grid-body .fu-body-row.striped:nth-child(2n){background-color:var(--fu-grid-striped-color)}.fu-data-grid-container .fu-data-grid-body .fu-body-row.hoverable:hover{background-color:var(--fu-grid-hover-color)}@media (max-width: 900px){.fu-data-grid-container .fu-data-grid-body .fu-body-row{grid-template-columns:repeat(2,1fr)}.fu-data-grid-container .fu-data-grid-body .fu-body-row :nth-child(odd):last-child{grid-column:span 2}.fu-data-grid-container .fu-data-grid-body .fu-body-row [data-actions]{grid-column:1/-1;margin:8px 0}}@media (max-width: 600px){.fu-data-grid-container .fu-data-grid-body .fu-body-row{grid-template-columns:1fr;border-bottom:1px solid var(--fu-grid-border-color)}.fu-data-grid-container .fu-data-grid-body .fu-body-row>:nth-child(odd):last-child{grid-column:span 1}}.fu-data-grid-container .fu-data-grid-body .fu-body-row .fu-expanded-row{grid-column:1/-1;border-top:1px solid rgba(128,128,128,.1);padding:12px 16px}.fu-data-grid-container .fu-data-grid-body .fu-body-row .fu-expanded-row>div{cursor:default}.fu-data-grid-paginator{display:flex;justify-content:flex-end;padding:16px}@media (max-width: 600px){.fu-data-grid-paginator{gap:12px;flex-direction:column;padding:12px 16px}}.fu-data-grid-paginator .fu-paginator-page-select{display:flex;justify-content:flex-end;align-items:center;margin-right:12px;font-size:14px}@media (max-width: 600px){.fu-data-grid-paginator .fu-paginator-page-select{margin-right:0}}.fu-data-grid-paginator .fu-paginator-page-select span{margin-right:8px}.fu-data-grid-paginator .fu-paginator-controls{display:flex;justify-content:flex-end;align-items:center;gap:8px}.fu-data-grid-filter{box-sizing:border-box;background-color:var(--fu-grid-fg-color);color:var(--fu-filter-input-color);width:calc(100% - 32px);padding:12px 8px;margin:16px;outline:none;border:none}.fu-data-grid-spinner-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background-color:#78787880;display:flex;justify-content:center;align-items:center;z-index:1000}.fu-data-grid-spinner-overlay .fu-spinner{border:10px solid var(--fu-grid-bg-color);border-top:10px solid #3498db;border-radius:50%;width:30px;height:30px;animation:spin 2s linear infinite;margin:5px auto}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i4.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5.IconComponent, selector: "fu-icon", inputs: ["iconName", "size", "strokeWidth", "color"] }, { kind: "directive", type: i6.TextButtonDirective, selector: "[fu-btn-text]", inputs: ["variant", "iconButton", "rounded"] }, { kind: "directive", type: i7.GridColumnsDirective, selector: "[gridColumns]", inputs: ["columnSizes"] }, { kind: "component", type: i8.BodyRowCellComponent, selector: "fu-body-row-cell", inputs: ["cellValue", "editKey", "editCellValue"], outputs: ["editCellValueChange"] }, { kind: "component", type: i9.HeadRowCellComponent, selector: "fu-head-row-cell", inputs: ["cellDef", "sortKey"] }, { kind: "pipe", type: i3.KeyValuePipe, name: "keyvalue" }, { kind: "pipe", type: i10.KeyMappingPipe, name: "keyMapping" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
161
159
|
}
|
|
162
160
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: DataGridComponent, decorators: [{
|
|
163
161
|
type: Component,
|
|
164
|
-
args: [{ selector: 'fu-data-grid', providers: [DataSortingService], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div id=\"fusion-datagrid\" class=\"fu-data-grid-wrapper\">\r\n @if (filter) {\r\n <input\r\n class=\"fu-data-grid-filter\"\r\n type=\"text\"\r\n [(ngModel)]=\"filterText\"\r\n (input)=\"filterData()\"\r\n placeholder=\"Search keyword...\"\r\n />\r\n }\r\n\r\n <div class=\"fu-data-grid-container\">\r\n <div class=\"fu-data-grid-header\">\r\n <div class=\"fu-head-row\" gridColumns [
|
|
162
|
+
args: [{ selector: 'fu-data-grid', providers: [DataSortingService], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div id=\"fusion-datagrid\" class=\"fu-data-grid-wrapper\">\r\n @if (filter) {\r\n <input\r\n class=\"fu-data-grid-filter\"\r\n type=\"text\"\r\n [(ngModel)]=\"filterText\"\r\n (input)=\"filterData()\"\r\n placeholder=\"Search keyword...\"\r\n />\r\n }\r\n\r\n <div class=\"fu-data-grid-container\">\r\n <div class=\"fu-data-grid-header\">\r\n <div class=\"fu-head-row\" gridColumns [columnSizes]=\"columnSizes\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n headerTemplate || defaultHeaderTemplate;\r\n context: { $implicit: dataSource, keys: dataSource[0] | keyMapping }\r\n \"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"fu-data-grid-body\">\r\n <div *ngIf=\"dataLoading\" class=\"fu-data-grid-spinner-overlay\">\r\n <div class=\"fu-spinner\"></div>\r\n </div>\r\n\r\n @for (row of paginatedData; track $index) {\r\n <div\r\n class=\"fu-body-row\"\r\n [ngClass]=\"{ hoverable, striped }\"\r\n [style.cursor]=\"expandable ? 'pointer' : 'default'\"\r\n (click)=\"rowClick(row, $index)\"\r\n >\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n bodyTemplate || defaultBodyTemplate;\r\n context: { $implicit: row, index: $index, keys: row | keyMapping }\r\n \"\r\n />\r\n\r\n @if (expandable && expandedRowIndex === $index) {\r\n <div class=\"fu-expanded-row\" (click)=\"$event.stopPropagation()\">\r\n <div>\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n expandTemplate;\r\n context: { $implicit: row, index: $index }\r\n \"\r\n />\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n\r\n <ng-container\r\n *ngTemplateOutlet=\"footerTemplate; context: { $implicit: paginatedData }\"\r\n />\r\n\r\n @if(paginatedData.length <= 0){\r\n <ng-container *ngTemplateOutlet=\"noContentTemplate\" />\r\n }\r\n <!-- WRAP -->\r\n @if (paginator) {\r\n <ng-container\r\n *ngTemplateOutlet=\"defaultPaginator; context: { $implicit: sortData }\"\r\n />\r\n }\r\n</div>\r\n\r\n<ng-template #defaultHeaderTemplate let-data>\r\n @for (header of data[0] | keyvalue: originalOrder; track $index) {\r\n <fu-head-row-cell [cellDef]=\"$any(header.key)\" [sortKey]=\"$any(header.key)\" />\r\n }\r\n</ng-template>\r\n\r\n<ng-template #defaultBodyTemplate let-rows>\r\n @for (row of rows | keyvalue: originalOrder; track $index) {\r\n <fu-body-row-cell [cellValue]=\"$any(row.value)\" />\r\n }\r\n</ng-template>\r\n\r\n<ng-template #defaultPaginator let-data>\r\n <div class=\"fu-data-grid-paginator\">\r\n <div class=\"fu-paginator-page-select\">\r\n <span>Items per page:</span>\r\n <select (change)=\"changePageSize($event)\">\r\n <option\r\n *ngFor=\"let size of pageSizeOptions\"\r\n [value]=\"size\"\r\n [selected]=\"size === pageSize\"\r\n >\r\n {{ size }}\r\n </option>\r\n </select>\r\n </div>\r\n <div class=\"fu-paginator-controls\">\r\n <div>\r\n {{ getPageStart() }} - {{ getPageEnd() }} of {{ totalItemCount() }}\r\n </div>\r\n <button\r\n fu-btn-text\r\n iconButton\r\n (click)=\"goToPage(1)\"\r\n [disabled]=\"currentPage === 1\"\r\n >\r\n <fu-icon iconName=\"doubleArrowLeft\" />\r\n </button>\r\n <button\r\n fu-btn-text\r\n iconButton\r\n (click)=\"goToPage(currentPage - 1)\"\r\n [disabled]=\"currentPage === 1\"\r\n >\r\n <fu-icon iconName=\"arrowLeft\" />\r\n </button>\r\n <button\r\n fu-btn-text\r\n iconButton\r\n (click)=\"goToPage(currentPage + 1)\"\r\n [disabled]=\"currentPage >= totalPages()\"\r\n >\r\n <fu-icon iconName=\"arrowRight\" />\r\n </button>\r\n <button\r\n fu-btn-text\r\n iconButton\r\n (click)=\"goToPage(totalPages())\"\r\n [disabled]=\"currentPage >= totalPages()\"\r\n >\r\n <fu-icon iconName=\"doubleArrowRight\" />\r\n </button>\r\n </div>\r\n </div>\r\n</ng-template>\r\n", styles: ["html{--fu-grid-fg-color: #232534;--fu-grid-bg-color: #1e1f2b;--fu-grid-hover-color: #12121240;--fu-grid-striped-color: #22232e;--fu-grid-border-color: #4b444d;--fu-grid-text-color: #ffffff;--fu-grid-cell-color: #bab9b9;--fu-filter-input-color: #ccc;--fu-grid-cell-edit-input: #fff;--fu-grid-shape: 4px}.fu-data-grid-wrapper{border-radius:var(--fu-grid-shape);box-shadow:0 2px 4px #00000080;background-color:var(--fu-grid-bg-color);color:var(--fu-grid-text-color);font-family:Roboto,sans-serif;font-size:14px}.fu-data-grid-container{width:100%}.fu-data-grid-container .fu-data-grid-header .fu-head-row{display:grid;grid-template-columns:var(--grid-columns);border-bottom:1px solid var(--fu-grid-border-color)}@media (max-width: 900px){.fu-data-grid-container .fu-data-grid-header .fu-head-row{display:flex;justify-content:space-between;flex-wrap:wrap}.fu-data-grid-container .fu-data-grid-header .fu-head-row>*{flex:1 1 auto}}.fu-data-grid-container .fu-data-grid-body{position:relative}.fu-data-grid-container .fu-data-grid-body .fu-body-row{display:grid;grid-template-columns:var(--grid-columns);border-bottom:1px solid var(--fu-grid-border-color)}.fu-data-grid-container .fu-data-grid-body .fu-body-row.striped:nth-child(2n){background-color:var(--fu-grid-striped-color)}.fu-data-grid-container .fu-data-grid-body .fu-body-row.hoverable:hover{background-color:var(--fu-grid-hover-color)}@media (max-width: 900px){.fu-data-grid-container .fu-data-grid-body .fu-body-row{grid-template-columns:repeat(2,1fr)}.fu-data-grid-container .fu-data-grid-body .fu-body-row :nth-child(odd):last-child{grid-column:span 2}.fu-data-grid-container .fu-data-grid-body .fu-body-row [data-actions]{grid-column:1/-1;margin:8px 0}}@media (max-width: 600px){.fu-data-grid-container .fu-data-grid-body .fu-body-row{grid-template-columns:1fr;border-bottom:1px solid var(--fu-grid-border-color)}.fu-data-grid-container .fu-data-grid-body .fu-body-row>:nth-child(odd):last-child{grid-column:span 1}}.fu-data-grid-container .fu-data-grid-body .fu-body-row .fu-expanded-row{grid-column:1/-1;border-top:1px solid rgba(128,128,128,.1);padding:12px 16px}.fu-data-grid-container .fu-data-grid-body .fu-body-row .fu-expanded-row>div{cursor:default}.fu-data-grid-paginator{display:flex;justify-content:flex-end;padding:16px}@media (max-width: 600px){.fu-data-grid-paginator{gap:12px;flex-direction:column;padding:12px 16px}}.fu-data-grid-paginator .fu-paginator-page-select{display:flex;justify-content:flex-end;align-items:center;margin-right:12px;font-size:14px}@media (max-width: 600px){.fu-data-grid-paginator .fu-paginator-page-select{margin-right:0}}.fu-data-grid-paginator .fu-paginator-page-select span{margin-right:8px}.fu-data-grid-paginator .fu-paginator-controls{display:flex;justify-content:flex-end;align-items:center;gap:8px}.fu-data-grid-filter{box-sizing:border-box;background-color:var(--fu-grid-fg-color);color:var(--fu-filter-input-color);width:calc(100% - 32px);padding:12px 8px;margin:16px;outline:none;border:none}.fu-data-grid-spinner-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background-color:#78787880;display:flex;justify-content:center;align-items:center;z-index:1000}.fu-data-grid-spinner-overlay .fu-spinner{border:10px solid var(--fu-grid-bg-color);border-top:10px solid #3498db;border-radius:50%;width:30px;height:30px;animation:spin 2s linear infinite;margin:5px auto}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}\n"] }]
|
|
165
163
|
}], ctorParameters: () => [{ type: i1.DataSortingService }, { type: i2.PaginationService }], propDecorators: { dataSource: [{
|
|
166
164
|
type: Input,
|
|
167
165
|
args: [{ required: true }]
|
|
@@ -171,7 +169,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImpor
|
|
|
171
169
|
type: Input
|
|
172
170
|
}], pageSizeOptions: [{
|
|
173
171
|
type: Input
|
|
174
|
-
}],
|
|
172
|
+
}], columnSizes: [{
|
|
175
173
|
type: Input
|
|
176
174
|
}], localStorageKey: [{
|
|
177
175
|
type: Input
|
|
@@ -210,4 +208,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImpor
|
|
|
210
208
|
}], rowSelect: [{
|
|
211
209
|
type: Output
|
|
212
210
|
}] } });
|
|
213
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1ncmlkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWZ1c2lvbi11aS9zcmMvbGliL2RhdGEtZ3JpZC9kYXRhLWdyaWQvZGF0YS1ncmlkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWZ1c2lvbi11aS9zcmMvbGliL2RhdGEtZ3JpZC9kYXRhLWdyaWQvZGF0YS1ncmlkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFFTixXQUFXLEVBQ1gsaUJBQWlCLEVBQ2pCLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUMzRixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUN2RixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUUzRixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0NBQXNDLENBQUM7Ozs7Ozs7Ozs7OztBQWlCbkUsTUFBTSxPQUFPLGlCQUFpQjtJQTBDNUIsWUFDVSxXQUErQixFQUMvQixpQkFBb0M7UUFEcEMsZ0JBQVcsR0FBWCxXQUFXLENBQW9CO1FBQy9CLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUF6Q1osZUFBVSxHQUFRLEVBQUUsQ0FBQztRQUV2QyxhQUFRLEdBQVcsQ0FBQyxDQUFDO1FBQ3JCLG9CQUFlLEdBQWUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzFDLGVBQVUsR0FBa0IsV0FBVyxDQUFDO1FBQ3hD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M0RoRSw2cklBMElBOzsyRkR0R2EsaUJBQWlCO2tCQVI3QixTQUFTOytCQUNFLGNBQWMsYUFHYixDQUFDLGtCQUFrQixDQUFDLG1CQUNkLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUk7dUhBS0gsVUFBVTtzQkFBM0MsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBQ1QsVUFBVTtzQkFBekIsS0FBSztnQkFDVSxRQUFRO3NCQUF2QixLQUFLO2dCQUNVLGVBQWU7c0JBQTlCLEtBQUs7Z0JBQ1UsVUFBVTtzQkFBekIsS0FBSztnQkFDVSxlQUFlO3NCQUE5QixLQUFLO2dCQUVVLFdBQVc7c0JBQTFCLEtBQUs7Z0JBQ1UsV0FBVztzQkFBMUIsS0FBSztnQkFDVSxVQUFVO3NCQUF6QixLQUFLO2dCQUNVLE1BQU07c0JBQXJCLEtBQUs7Z0JBQ1UsU0FBUztzQkFBeEIsS0FBSztnQkFDVSxTQUFTO3NCQUF4QixLQUFLO2dCQUNVLE9BQU87c0JBQXRCLEtBQUs7Z0JBRTBCLGVBQWU7c0JBQTlDLFlBQVk7dUJBQUMsU0FBUztnQkFFaEIsY0FBYztzQkFEcEIsWUFBWTt1QkFBQywyQkFBMkIsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUU7Z0JBR3pELFlBQVk7c0JBRGxCLFlBQVk7dUJBQUMseUJBQXlCLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFO2dCQUd2RCxjQUFjO3NCQURwQixZQUFZO3VCQUFDLDJCQUEyQixFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRTtnQkFFakMsY0FBYztzQkFBNUMsWUFBWTt1QkFBQyxRQUFRO2dCQUNZLGlCQUFpQjtzQkFBbEQsWUFBWTt1QkFBQyxXQUFXO2dCQUVSLFNBQVM7c0JBQXpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEFmdGVyQ29udGVudEluaXQsXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ29tcG9uZW50LFxyXG4gIENvbnRlbnRDaGlsZCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSW5wdXQsXHJcbiAgT25DaGFuZ2VzLFxyXG4gIE91dHB1dCxcclxuICBTaW1wbGVDaGFuZ2VzLFxyXG4gIFRlbXBsYXRlUmVmLFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG4gIGVmZmVjdCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRGF0YVNvcnRpbmdTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvZGF0YS1zb3J0aW5nLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBHcmlkSGVhZGVyVGVtcGxhdGVEaXJlY3RpdmUgfSBmcm9tICcuLi9kaXJlY3RpdmVzL2dyaWQtaGVhZGVyLXRlbXBsYXRlLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IEdyaWRCb2R5VGVtcGxhdGVEaXJlY3RpdmUgfSBmcm9tICcuLi9kaXJlY3RpdmVzL2dyaWQtYm9keS10ZW1wbGF0ZS5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBHcmlkRXhwYW5kVGVtcGxhdGVEaXJlY3RpdmUgfSBmcm9tICcuLi9kaXJlY3RpdmVzL2dyaWQtZXhwYW5kLXRlbXBsYXRlLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IFBhZ2luYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvcGFnaW5hdG9yLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBpbml0Q29sdW1ucyB9IGZyb20gJy4uL2RpcmVjdGl2ZXMvZ3JpZC1jb2x1bW5zLmRpcmVjdGl2ZSc7XHJcblxyXG50eXBlIFBhZ2VTaXplID0gNSB8IDEwIHwgMTU7XHJcblxyXG5leHBvcnQgdHlwZSBUUmVzcG9uc2l2ZSA9IHtcclxuICBicmVha3BvaW50OiBudW1iZXI7XHJcbiAgY29sdW1uczogbnVtYmVyO1xyXG59O1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdmdS1kYXRhLWdyaWQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXRhLWdyaWQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9kYXRhLWdyaWQuY29tcG9uZW50LnNjc3MnLFxyXG4gIHByb3ZpZGVyczogW0RhdGFTb3J0aW5nU2VydmljZV0sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxufSlcclxuZXhwb3J0IGNsYXNzIERhdGFHcmlkQ29tcG9uZW50PFQgZXh0ZW5kcyBvYmplY3Q+XHJcbiAgaW1wbGVtZW50cyBPbkNoYW5nZXMsIEFmdGVyQ29udGVudEluaXRcclxue1xyXG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pIHB1YmxpYyBkYXRhU291cmNlOiBUW10gPSBbXTtcclxuICBASW5wdXQoKSBwdWJsaWMgdG90YWxDb3VudDogbnVtYmVyO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBwYWdlU2l6ZTogbnVtYmVyID0gNTtcclxuICBASW5wdXQoKSBwdWJsaWMgcGFnZVNpemVPcHRpb25zOiBQYWdlU2l6ZVtdID0gWzUsIDEwLCAxNV07XHJcbiAgQElucHV0KCkgcHVibGljIHJlc3BvbnNpdmU6IFRSZXNwb25zaXZlW10gPSBpbml0Q29sdW1ucztcclxuICBASW5wdXQoKSBwdWJsaWMgbG9jYWxTdG9yYWdlS2V5OiBzdHJpbmcgPSAnZGF0YSc7XHJcblxyXG4gIEBJbnB1dCgpIHB1YmxpYyBkYXRhTG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBsYXp5TG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBleHBhbmRhYmxlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgcHVibGljIGZpbHRlcjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBwYWdpbmF0b3I6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBwdWJsaWMgaG92ZXJhYmxlOiBib29sZWFuID0gdHJ1ZTtcclxuICBASW5wdXQoKSBwdWJsaWMgc3RyaXBlZDogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIEBDb250ZW50Q2hpbGQoJ2NhcHRpb24nKSBwdWJsaWMgY2FwdGlvblRlbXBsYXRlITogVGVtcGxhdGVSZWY8YW55PjtcclxuICBAQ29udGVudENoaWxkKEdyaWRIZWFkZXJUZW1wbGF0ZURpcmVjdGl2ZSwgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KVxyXG4gIHB1YmxpYyBoZWFkZXJUZW1wbGF0ZSE6IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgQENvbnRlbnRDaGlsZChHcmlkQm9keVRlbXBsYXRlRGlyZWN0aXZlLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pXHJcbiAgcHVibGljIGJvZHlUZW1wbGF0ZSE6IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgQENvbnRlbnRDaGlsZChHcmlkRXhwYW5kVGVtcGxhdGVEaXJlY3RpdmUsIHsgcmVhZDogVGVtcGxhdGVSZWYgfSlcclxuICBwdWJsaWMgZXhwYW5kVGVtcGxhdGUhOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gIEBDb250ZW50Q2hpbGQoJ2Zvb3RlcicpIHB1YmxpYyBmb290ZXJUZW1wbGF0ZSE6IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgQENvbnRlbnRDaGlsZCgnbm9jb250ZW50JykgcHVibGljIG5vQ29udGVudFRlbXBsYXRlITogVGVtcGxhdGVSZWY8YW55PjtcclxuXHJcbiAgQE91dHB1dCgpIHB1YmxpYyByb3dTZWxlY3QgPSBuZXcgRXZlbnRFbWl0dGVyPFQ+KCk7XHJcblxyXG4gIHB1YmxpYyBzb3J0ZWREYXRhOiBUW10gPSBbLi4udGhpcy5kYXRhU291cmNlXTtcclxuICBwdWJsaWMgc29ydERpcmVjdGlvbjogJ2FzYycgfCAnZGVzYycgPSAnYXNjJztcclxuICBwdWJsaWMgc29ydEtleTogc3RyaW5nID0gJyc7XHJcblxyXG4gIHB1YmxpYyBmaWx0ZXJlZERhdGE6IFRbXSA9IFtdO1xyXG4gIHB1YmxpYyBmaWx0ZXJUZXh0OiBzdHJpbmcgPSAnJztcclxuXHJcbiAgcHVibGljIGN1cnJlbnRQYWdlOiBudW1iZXIgPSAxO1xyXG4gIHB1YmxpYyBwYWdpbmF0ZWREYXRhOiBUW10gPSBbXTtcclxuXHJcbiAgcHVibGljIGV4cGFuZGVkUm93SW5kZXg6IG51bWJlciB8IG51bGwgPSBudWxsO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgc29ydFNlcnZpY2U6IERhdGFTb3J0aW5nU2VydmljZSxcclxuICAgIHByaXZhdGUgcGFnaW5hdGlvblNlcnZpY2U6IFBhZ2luYXRpb25TZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICBlZmZlY3QoKCkgPT4ge1xyXG4gICAgICB0aGlzLnNvcnREYXRhKHRoaXMuc29ydFNlcnZpY2Uuc29ydEtleSgpKTtcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMucGFnZVNpemUgPSBKU09OLnBhcnNlKFxyXG4gICAgICB3aW5kb3cubG9jYWxTdG9yYWdlLmdldEl0ZW0oYGZ1LWdyaWQtJHt0aGlzLmxvY2FsU3RvcmFnZUtleX0tcGFnZVNpemVgKSB8fFxyXG4gICAgICAgICc1J1xyXG4gICAgKTtcclxuICAgIHRoaXMuY3VycmVudFBhZ2UgPSBKU09OLnBhcnNlKFxyXG4gICAgICB3aW5kb3cubG9jYWxTdG9yYWdlLmdldEl0ZW0oXHJcbiAgICAgICAgYGZ1LWdyaWQtJHt0aGlzLmxvY2FsU3RvcmFnZUtleX0tY3VycmVudFBhZ2VgXHJcbiAgICAgICkgfHwgJzEnXHJcbiAgICApO1xyXG5cclxuICAgIHRoaXMucGFnaW5hdGlvblNlcnZpY2Uuc2V0UGFnZVNpemUodGhpcy5wYWdlU2l6ZSk7XHJcbiAgICB0aGlzLnBhZ2luYXRpb25TZXJ2aWNlLnNldFBhZ2UodGhpcy5jdXJyZW50UGFnZSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYgKGNoYW5nZXNbJ2RhdGFTb3VyY2UnXSkge1xyXG4gICAgICBpZiAoIXRoaXMubGF6eUxvYWRpbmcpIHtcclxuICAgICAgICB0aGlzLmZpbHRlcmVkRGF0YSA9IFsuLi50aGlzLmRhdGFTb3VyY2VdO1xyXG4gICAgICAgIHRoaXMuc29ydGVkRGF0YSA9IFsuLi50aGlzLmZpbHRlcmVkRGF0YV07XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5zb3J0U2VydmljZS5nZXRDZWxsS2V5cyh0aGlzLmRhdGFTb3VyY2VbMF0gfHwge30pO1xyXG4gICAgICB0aGlzLnVwZGF0ZVBhZ2luYXRpb24oKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNvcnRTZXJ2aWNlLmNsZWFyKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb3JpZ2luYWxPcmRlciA9IChhOiBhbnksIGI6IGFueSk6IG51bWJlciA9PiB7XHJcbiAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXModGhpcy5kYXRhU291cmNlKTtcclxuICAgIHJldHVybiBrZXlzLmluZGV4T2YoYS5rZXkpIC0ga2V5cy5pbmRleE9mKGIua2V5KTtcclxuICB9O1xyXG5cclxuICBwdWJsaWMgc29ydERhdGEoa2V5OiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMuc29ydEtleSA9IGtleTtcclxuICAgIGNvbnN0IHNvcnREaXJlY3Rpb24gPSB0aGlzLnNvcnRTZXJ2aWNlLnNvcnREaXJlY3Rpb24oKTtcclxuXHJcbiAgICB0aGlzLnNvcnRlZERhdGEuc29ydCgoYTogYW55LCBiOiBhbnkpID0+IHtcclxuICAgICAgaWYgKGFba2V5XSA8IGJba2V5XSkge1xyXG4gICAgICAgIHJldHVybiBzb3J0RGlyZWN0aW9uID09PSAnYXNjJyA/IC0xIDogMTtcclxuICAgICAgfSBlbHNlIGlmIChhW2tleV0gPiBiW2tleV0pIHtcclxuICAgICAgICByZXR1cm4gc29ydERpcmVjdGlvbiA9PT0gJ2FzYycgPyAxIDogLTE7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIDA7XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLmFkZFNvcnRDbGFzcyhrZXkpO1xyXG4gICAgdGhpcy51cGRhdGVQYWdpbmF0aW9uKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFkZFNvcnRDbGFzcyhrZXk6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgY29uc3Qgc29ydERpcmVjdGlvbiA9IHRoaXMuc29ydFNlcnZpY2Uuc29ydERpcmVjdGlvbigpO1xyXG5cclxuICAgIGNvbnN0IGVsZW1lbnQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKGBbZGF0YS1zb3J0ZWQ9XCIke2tleX1cIl1gKTtcclxuXHJcbiAgICBkb2N1bWVudFxyXG4gICAgICAucXVlcnlTZWxlY3RvckFsbCgnW2RhdGEtc29ydGVkXScpXHJcbiAgICAgIC5mb3JFYWNoKCh0aCkgPT4gdGguY2xhc3NMaXN0LnJlbW92ZSgnc29ydC1hc2MnLCAnc29ydC1kZXNjJykpO1xyXG5cclxuICAgIGlmIChlbGVtZW50KSB7XHJcbiAgICAgIGVsZW1lbnQuY2xhc3NMaXN0LmFkZChzb3J0RGlyZWN0aW9uID09PSAnYXNjJyA/ICdzb3J0LWFzYycgOiAnc29ydC1kZXNjJyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZmlsdGVyRGF0YSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmZpbHRlclRleHQudHJpbSgpID09PSAnJykge1xyXG4gICAgICB0aGlzLmZpbHRlcmVkRGF0YSA9IFsuLi50aGlzLmRhdGFTb3VyY2VdO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5maWx0ZXJlZERhdGEgPSB0aGlzLmRhdGFTb3VyY2UuZmlsdGVyKChpdGVtOiBhbnkpID0+XHJcbiAgICAgICAgT2JqZWN0LnZhbHVlcyhpdGVtKS5zb21lKCh2YWx1ZTogYW55KSA9PlxyXG4gICAgICAgICAgdmFsdWUudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHRoaXMuZmlsdGVyVGV4dC50b0xvd2VyQ2FzZSgpKVxyXG4gICAgICAgIClcclxuICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnNvcnRlZERhdGEgPSBbLi4udGhpcy5maWx0ZXJlZERhdGFdO1xyXG4gICAgdGhpcy5jdXJyZW50UGFnZSA9IDE7XHJcblxyXG4gICAgdGhpcy51cGRhdGVQYWdpbmF0aW9uKCk7XHJcblxyXG4gICAgd2luZG93LmxvY2FsU3RvcmFnZS5zZXRJdGVtKFxyXG4gICAgICBgZnUtZ3JpZC0ke3RoaXMubG9jYWxTdG9yYWdlS2V5fS1jdXJyZW50UGFnZWAsXHJcbiAgICAgIHRoaXMuY3VycmVudFBhZ2UudG9TdHJpbmcoKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2VydmVyU2lkZVBhZ2luYXRpb24oKTogdm9pZCB7XHJcbiAgICB0aGlzLnBhZ2luYXRlZERhdGEgPSB0aGlzLmRhdGFTb3VyY2U7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHVwZGF0ZVBhZ2luYXRpb24oKTogdm9pZCB7XHJcbiAgICB0aGlzLmV4cGFuZGVkUm93SW5kZXggPSBudWxsO1xyXG5cclxuICAgIGlmICh0aGlzLmxhenlMb2FkaW5nKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnNlcnZlclNpZGVQYWdpbmF0aW9uKCk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3Qgc3RhcnQgPSAodGhpcy5jdXJyZW50UGFnZSAtIDEpICogdGhpcy5wYWdlU2l6ZTtcclxuICAgIGNvbnN0IGVuZCA9IHN0YXJ0ICsgdGhpcy5wYWdlU2l6ZTtcclxuICAgIHRoaXMucGFnaW5hdGVkRGF0YSA9IHRoaXMuc29ydGVkRGF0YS5zbGljZShzdGFydCwgZW5kKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnb1RvUGFnZShwYWdlOiBudW1iZXIpOiB2b2lkIHtcclxuICAgIGlmIChwYWdlIDwgMSB8fCBwYWdlID4gdGhpcy50b3RhbFBhZ2VzKCkpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jdXJyZW50UGFnZSA9IHBhZ2U7XHJcbiAgICB3aW5kb3cubG9jYWxTdG9yYWdlLnNldEl0ZW0oXHJcbiAgICAgIGBmdS1ncmlkLSR7dGhpcy5sb2NhbFN0b3JhZ2VLZXl9LWN1cnJlbnRQYWdlYCxcclxuICAgICAgdGhpcy5jdXJyZW50UGFnZS50b1N0cmluZygpXHJcbiAgICApO1xyXG5cclxuICAgIHRoaXMucGFnaW5hdGlvblNlcnZpY2Uuc2V0UGFnZShwYWdlKTtcclxuICAgIHRoaXMudXBkYXRlUGFnaW5hdGlvbigpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHRvdGFsUGFnZXMoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiBNYXRoLmNlaWwodGhpcy50b3RhbEl0ZW1Db3VudCgpIC8gdGhpcy5wYWdlU2l6ZSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0UGFnZVN0YXJ0KCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gKHRoaXMuY3VycmVudFBhZ2UgLSAxKSAqIHRoaXMucGFnZVNpemUgKyAxO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldFBhZ2VFbmQoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiBNYXRoLm1pbih0aGlzLmN1cnJlbnRQYWdlICogdGhpcy5wYWdlU2l6ZSwgdGhpcy50b3RhbEl0ZW1Db3VudCgpKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjaGFuZ2VQYWdlU2l6ZShldmVudDogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLnBhZ2VTaXplID0gTnVtYmVyKGV2ZW50LnRhcmdldC52YWx1ZSk7XHJcbiAgICB0aGlzLmN1cnJlbnRQYWdlID0gMTtcclxuXHJcbiAgICB0aGlzLnBhZ2luYXRpb25TZXJ2aWNlLnNldFBhZ2VTaXplKHRoaXMucGFnZVNpemUpO1xyXG4gICAgdGhpcy51cGRhdGVQYWdpbmF0aW9uKCk7XHJcblxyXG4gICAgd2luZG93LmxvY2FsU3RvcmFnZS5zZXRJdGVtKFxyXG4gICAgICBgZnUtZ3JpZC0ke3RoaXMubG9jYWxTdG9yYWdlS2V5fS1jdXJyZW50UGFnZWAsXHJcbiAgICAgIHRoaXMuY3VycmVudFBhZ2UudG9TdHJpbmcoKVxyXG4gICAgKTtcclxuXHJcbiAgICB3aW5kb3cubG9jYWxTdG9yYWdlLnNldEl0ZW0oXHJcbiAgICAgIGBmdS1ncmlkLSR7dGhpcy5sb2NhbFN0b3JhZ2VLZXl9LXBhZ2VTaXplYCxcclxuICAgICAgdGhpcy5wYWdlU2l6ZS50b1N0cmluZygpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHRvdGFsSXRlbUNvdW50KCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy50b3RhbENvdW50IHx8IHRoaXMuZmlsdGVyZWREYXRhLmxlbmd0aDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByb3dDbGljayhyb3c6IFQsIGluZGV4OiBudW1iZXIgPSAwKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5leHBhbmRhYmxlKSB7XHJcbiAgICAgIGlmICh0aGlzLmV4cGFuZGVkUm93SW5kZXggPT09IGluZGV4KSB7XHJcbiAgICAgICAgdGhpcy5leHBhbmRlZFJvd0luZGV4ID0gbnVsbDtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmV4cGFuZGVkUm93SW5kZXggPSBpbmRleDtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgLy8gdGhpcy5yb3dTZWxlY3QuZW1pdChyb3cpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGlkPVwiZnVzaW9uLWRhdGFncmlkXCIgY2xhc3M9XCJmdS1kYXRhLWdyaWQtd3JhcHBlclwiPlxyXG4gIEBpZiAoZmlsdGVyKSB7XHJcbiAgPGlucHV0XHJcbiAgICBjbGFzcz1cImZ1LWRhdGEtZ3JpZC1maWx0ZXJcIlxyXG4gICAgdHlwZT1cInRleHRcIlxyXG4gICAgWyhuZ01vZGVsKV09XCJmaWx0ZXJUZXh0XCJcclxuICAgIChpbnB1dCk9XCJmaWx0ZXJEYXRhKClcIlxyXG4gICAgcGxhY2Vob2xkZXI9XCJTZWFyY2gga2V5d29yZC4uLlwiXHJcbiAgLz5cclxuICB9XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJmdS1kYXRhLWdyaWQtY29udGFpbmVyXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZnUtZGF0YS1ncmlkLWhlYWRlclwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZnUtaGVhZC1yb3dcIiBncmlkQ29sdW1ucyBbcmVzcG9uc2l2ZV09XCJyZXNwb25zaXZlXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcclxuICAgICAgICAgICAgaGVhZGVyVGVtcGxhdGUgfHwgZGVmYXVsdEhlYWRlclRlbXBsYXRlO1xyXG4gICAgICAgICAgICBjb250ZXh0OiB7ICRpbXBsaWNpdDogZGF0YVNvdXJjZSwga2V5czogZGF0YVNvdXJjZVswXSB8IGtleU1hcHBpbmcgfVxyXG4gICAgICAgICAgXCJcclxuICAgICAgICAvPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImZ1LWRhdGEtZ3JpZC1ib2R5XCI+XHJcbiAgICAgIDxkaXYgKm5nSWY9XCJkYXRhTG9hZGluZ1wiIGNsYXNzPVwiZnUtZGF0YS1ncmlkLXNwaW5uZXItb3ZlcmxheVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmdS1zcGlubmVyXCI+PC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgQGZvciAocm93IG9mIHBhZ2luYXRlZERhdGE7IHRyYWNrICRpbmRleCkge1xyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgY2xhc3M9XCJmdS1ib2R5LXJvd1wiXHJcbiAgICAgICAgW25nQ2xhc3NdPVwieyBob3ZlcmFibGUsIHN0cmlwZWQgfVwiXHJcbiAgICAgICAgW3N0eWxlLmN1cnNvcl09XCJleHBhbmRhYmxlID8gJ3BvaW50ZXInIDogJ2RlZmF1bHQnXCJcclxuICAgICAgICAoY2xpY2spPVwicm93Q2xpY2socm93LCAkaW5kZXgpXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXHJcbiAgICAgICAgICAgIGJvZHlUZW1wbGF0ZSB8fCBkZWZhdWx0Qm9keVRlbXBsYXRlO1xyXG4gICAgICAgICAgICBjb250ZXh0OiB7ICRpbXBsaWNpdDogcm93LCBpbmRleDogJGluZGV4LCBrZXlzOiByb3cgfCBrZXlNYXBwaW5nIH1cclxuICAgICAgICAgIFwiXHJcbiAgICAgICAgLz5cclxuXHJcbiAgICAgICAgQGlmIChleHBhbmRhYmxlICYmIGV4cGFuZGVkUm93SW5kZXggPT09ICRpbmRleCkge1xyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmdS1leHBhbmRlZC1yb3dcIiAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCI+XHJcbiAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcclxuICAgICAgICAgICAgICAgIGV4cGFuZFRlbXBsYXRlO1xyXG4gICAgICAgICAgICAgICAgY29udGV4dDogeyAkaW1wbGljaXQ6IHJvdywgaW5kZXg6ICRpbmRleCB9XHJcbiAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgLz5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIH1cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIH1cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG5cclxuICA8bmctY29udGFpbmVyXHJcbiAgICAqbmdUZW1wbGF0ZU91dGxldD1cImZvb3RlclRlbXBsYXRlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogcGFnaW5hdGVkRGF0YSB9XCJcclxuICAvPlxyXG5cclxuICBAaWYocGFnaW5hdGVkRGF0YS5sZW5ndGggPD0gMCl7XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIm5vQ29udGVudFRlbXBsYXRlXCIgLz5cclxuICB9XHJcbiAgPCEtLSBXUkFQIC0tPlxyXG4gIEBpZiAocGFnaW5hdG9yKSB7XHJcbiAgPG5nLWNvbnRhaW5lclxyXG4gICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJkZWZhdWx0UGFnaW5hdG9yOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogc29ydERhdGEgfVwiXHJcbiAgLz5cclxuICB9XHJcbjwvZGl2PlxyXG5cclxuPG5nLXRlbXBsYXRlICNkZWZhdWx0SGVhZGVyVGVtcGxhdGUgbGV0LWRhdGE+XHJcbiAgQGZvciAoaGVhZGVyIG9mIGRhdGFbMF0gfCBrZXl2YWx1ZTogb3JpZ2luYWxPcmRlcjsgdHJhY2sgJGluZGV4KSB7XHJcbiAgPGZ1LWhlYWQtcm93LWNlbGwgW2NlbGxEZWZdPVwiJGFueShoZWFkZXIua2V5KVwiIFtzb3J0S2V5XT1cIiRhbnkoaGVhZGVyLmtleSlcIiAvPlxyXG4gIH1cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjZGVmYXVsdEJvZHlUZW1wbGF0ZSBsZXQtcm93cz5cclxuICBAZm9yIChyb3cgb2Ygcm93cyB8IGtleXZhbHVlOiBvcmlnaW5hbE9yZGVyOyB0cmFjayAkaW5kZXgpIHtcclxuICA8ZnUtYm9keS1yb3ctY2VsbCBbY2VsbFZhbHVlXT1cIiRhbnkocm93LnZhbHVlKVwiIC8+XHJcbiAgfVxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNkZWZhdWx0UGFnaW5hdG9yIGxldC1kYXRhPlxyXG4gIDxkaXYgY2xhc3M9XCJmdS1kYXRhLWdyaWQtcGFnaW5hdG9yXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZnUtcGFnaW5hdG9yLXBhZ2Utc2VsZWN0XCI+XHJcbiAgICAgIDxzcGFuPkl0ZW1zIHBlciBwYWdlOjwvc3Bhbj5cclxuICAgICAgPHNlbGVjdCAoY2hhbmdlKT1cImNoYW5nZVBhZ2VTaXplKCRldmVudClcIj5cclxuICAgICAgICA8b3B0aW9uXHJcbiAgICAgICAgICAqbmdGb3I9XCJsZXQgc2l6ZSBvZiBwYWdlU2l6ZU9wdGlvbnNcIlxyXG4gICAgICAgICAgW3ZhbHVlXT1cInNpemVcIlxyXG4gICAgICAgICAgW3NlbGVjdGVkXT1cInNpemUgPT09IHBhZ2VTaXplXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICB7eyBzaXplIH19XHJcbiAgICAgICAgPC9vcHRpb24+XHJcbiAgICAgIDwvc2VsZWN0PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZnUtcGFnaW5hdG9yLWNvbnRyb2xzXCI+XHJcbiAgICAgIDxkaXY+XHJcbiAgICAgICAge3sgZ2V0UGFnZVN0YXJ0KCkgfX0gLSB7eyBnZXRQYWdlRW5kKCkgfX0gb2Yge3sgdG90YWxJdGVtQ291bnQoKSB9fVxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGJ1dHRvblxyXG4gICAgICAgIGZ1LWJ0bi10ZXh0XHJcbiAgICAgICAgaWNvbkJ1dHRvblxyXG4gICAgICAgIChjbGljayk9XCJnb1RvUGFnZSgxKVwiXHJcbiAgICAgICAgW2Rpc2FibGVkXT1cImN1cnJlbnRQYWdlID09PSAxXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxmdS1pY29uIGljb25OYW1lPVwiZG91YmxlQXJyb3dMZWZ0XCIgLz5cclxuICAgICAgPC9idXR0b24+XHJcbiAgICAgIDxidXR0b25cclxuICAgICAgICBmdS1idG4tdGV4dFxyXG4gICAgICAgIGljb25CdXR0b25cclxuICAgICAgICAoY2xpY2spPVwiZ29Ub1BhZ2UoY3VycmVudFBhZ2UgLSAxKVwiXHJcbiAgICAgICAgW2Rpc2FibGVkXT1cImN1cnJlbnRQYWdlID09PSAxXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxmdS1pY29uIGljb25OYW1lPVwiYXJyb3dMZWZ0XCIgLz5cclxuICAgICAgPC9idXR0b24+XHJcbiAgICAgIDxidXR0b25cclxuICAgICAgICBmdS1idG4tdGV4dFxyXG4gICAgICAgIGljb25CdXR0b25cclxuICAgICAgICAoY2xpY2spPVwiZ29Ub1BhZ2UoY3VycmVudFBhZ2UgKyAxKVwiXHJcbiAgICAgICAgW2Rpc2FibGVkXT1cImN1cnJlbnRQYWdlID49IHRvdGFsUGFnZXMoKVwiXHJcbiAgICAgID5cclxuICAgICAgICA8ZnUtaWNvbiBpY29uTmFtZT1cImFycm93UmlnaHRcIiAvPlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgICAgPGJ1dHRvblxyXG4gICAgICAgIGZ1LWJ0bi10ZXh0XHJcbiAgICAgICAgaWNvbkJ1dHRvblxyXG4gICAgICAgIChjbGljayk9XCJnb1RvUGFnZSh0b3RhbFBhZ2VzKCkpXCJcclxuICAgICAgICBbZGlzYWJsZWRdPVwiY3VycmVudFBhZ2UgPj0gdG90YWxQYWdlcygpXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxmdS1pY29uIGljb25OYW1lPVwiZG91YmxlQXJyb3dSaWdodFwiIC8+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
|
|
211
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1ncmlkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWZ1c2lvbi11aS9zcmMvbGliL2RhdGEtZ3JpZC9kYXRhLWdyaWQvZGF0YS1ncmlkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWZ1c2lvbi11aS9zcmMvbGliL2RhdGEtZ3JpZC9kYXRhLWdyaWQvZGF0YS1ncmlkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFFTixXQUFXLEVBQ1gsaUJBQWlCLEVBQ2pCLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUMzRixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUN2RixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQzs7Ozs7Ozs7Ozs7O0FBWTNGLE1BQU0sT0FBTyxpQkFBaUI7SUErQzVCLFlBQ1UsV0FBK0IsRUFDL0IsaUJBQW9DO1FBRHBDLGdCQUFXLEdBQVgsV0FBVyxDQUFvQjtRQUMvQixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBOUNaLGVBQVUsR0FBUSxFQUFFLENBQUM7UUFFdkMsYUFBUSxHQUFXLENBQUMsQ0FBQztRQUNyQixvQkFBZSxHQUFhLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQU94QyxvQkFBZSxHQUFXLE1BQU0sQ0FBQztRQUVqQyxnQkFBVyxHQUFZLEtBQUssQ0FBQztRQUM3QixnQkFBVyxHQUFZLEtBQUss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MkJBQVUsV0FBVyw4REFFOUMsMkJBQTJCLDJCQUFVLFdBQVcsOE9DekRoRSwrcklBMElBOzsyRkQ3R2EsaUJBQWlCO2tCQVI3QixTQUFTOytCQUNFLGNBQWMsYUFHYixDQUFDLGtCQUFrQixDQUFDLG1CQUNkLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUk7dUhBS0gsVUFBVTtzQkFBM0MsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBQ1QsVUFBVTtzQkFBekIsS0FBSztnQkFDVSxRQUFRO3NCQUF2QixLQUFLO2dCQUNVLGVBQWU7c0JBQTlCLEtBQUs7Z0JBTVUsV0FBVztzQkFBMUIsS0FBSztnQkFDVSxlQUFlO3NCQUE5QixLQUFLO2dCQUVVLFdBQVc7c0JBQTFCLEtBQUs7Z0JBQ1UsV0FBVztzQkFBMUIsS0FBSztnQkFDVSxVQUFVO3NCQUF6QixLQUFLO2dCQUNVLE1BQU07c0JBQXJCLEtBQUs7Z0JBQ1UsU0FBUztzQkFBeEIsS0FBSztnQkFDVSxTQUFTO3NCQUF4QixLQUFLO2dCQUNVLE9BQU87c0JBQXRCLEtBQUs7Z0JBRTBCLGVBQWU7c0JBQTlDLFlBQVk7dUJBQUMsU0FBUztnQkFFaEIsY0FBYztzQkFEcEIsWUFBWTt1QkFBQywyQkFBMkIsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUU7Z0JBR3pELFlBQVk7c0JBRGxCLFlBQVk7dUJBQUMseUJBQXlCLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFO2dCQUd2RCxjQUFjO3NCQURwQixZQUFZO3VCQUFDLDJCQUEyQixFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRTtnQkFFakMsY0FBYztzQkFBNUMsWUFBWTt1QkFBQyxRQUFRO2dCQUNZLGlCQUFpQjtzQkFBbEQsWUFBWTt1QkFBQyxXQUFXO2dCQUVSLFNBQVM7c0JBQXpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEFmdGVyQ29udGVudEluaXQsXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ29tcG9uZW50LFxyXG4gIENvbnRlbnRDaGlsZCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSW5wdXQsXHJcbiAgT25DaGFuZ2VzLFxyXG4gIE91dHB1dCxcclxuICBTaW1wbGVDaGFuZ2VzLFxyXG4gIFRlbXBsYXRlUmVmLFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG4gIGVmZmVjdCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRGF0YVNvcnRpbmdTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvZGF0YS1zb3J0aW5nLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBHcmlkSGVhZGVyVGVtcGxhdGVEaXJlY3RpdmUgfSBmcm9tICcuLi9kaXJlY3RpdmVzL2dyaWQtaGVhZGVyLXRlbXBsYXRlLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IEdyaWRCb2R5VGVtcGxhdGVEaXJlY3RpdmUgfSBmcm9tICcuLi9kaXJlY3RpdmVzL2dyaWQtYm9keS10ZW1wbGF0ZS5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBHcmlkRXhwYW5kVGVtcGxhdGVEaXJlY3RpdmUgfSBmcm9tICcuLi9kaXJlY3RpdmVzL2dyaWQtZXhwYW5kLXRlbXBsYXRlLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IFBhZ2luYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvcGFnaW5hdG9yLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDb2x1bW5TaXplcyB9IGZyb20gJy4uL2RpcmVjdGl2ZXMvZ3JpZC1jb2x1bW5zLmRpcmVjdGl2ZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2Z1LWRhdGEtZ3JpZCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGEtZ3JpZC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2RhdGEtZ3JpZC5jb21wb25lbnQuc2NzcycsXHJcbiAgcHJvdmlkZXJzOiBbRGF0YVNvcnRpbmdTZXJ2aWNlXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRGF0YUdyaWRDb21wb25lbnQ8VCBleHRlbmRzIG9iamVjdD5cclxuICBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgQWZ0ZXJDb250ZW50SW5pdFxyXG57XHJcbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSkgcHVibGljIGRhdGFTb3VyY2U6IFRbXSA9IFtdO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyB0b3RhbENvdW50OiBudW1iZXI7XHJcbiAgQElucHV0KCkgcHVibGljIHBhZ2VTaXplOiBudW1iZXIgPSA1O1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBwYWdlU2l6ZU9wdGlvbnM6IG51bWJlcltdID0gWzUsIDEwLCAxNV07XHJcbiAgLyoqXHJcbiAgICogQW4gYXJyYXkgb2YgY29sdW1uIHNpemVzLCB3aGVyZSBlYWNoIHNpemUgaXMgYSB2YWxpZCBDU1MgdW5pdCBzdHJpbmcuXHJcbiAgICogVmFsaWQgdW5pdHMgYXJlOiBgcHhgLCBgZnJgLCBgcmVtYCwgYCVgLlxyXG4gICAqIEV4YW1wbGU6IFsnMjAwcHgnLCAnMWZyJywgJzEwJScsICc1cmVtJ11cclxuICAgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgY29sdW1uU2l6ZXM6IENvbHVtblNpemVzO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBsb2NhbFN0b3JhZ2VLZXk6IHN0cmluZyA9ICdkYXRhJztcclxuXHJcbiAgQElucHV0KCkgcHVibGljIGRhdGFMb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgcHVibGljIGxhenlMb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgcHVibGljIGV4cGFuZGFibGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBwdWJsaWMgZmlsdGVyOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgcHVibGljIHBhZ2luYXRvcjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBob3ZlcmFibGU6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBzdHJpcGVkOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgQENvbnRlbnRDaGlsZCgnY2FwdGlvbicpIHB1YmxpYyBjYXB0aW9uVGVtcGxhdGUhOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gIEBDb250ZW50Q2hpbGQoR3JpZEhlYWRlclRlbXBsYXRlRGlyZWN0aXZlLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pXHJcbiAgcHVibGljIGhlYWRlclRlbXBsYXRlITogVGVtcGxhdGVSZWY8YW55PjtcclxuICBAQ29udGVudENoaWxkKEdyaWRCb2R5VGVtcGxhdGVEaXJlY3RpdmUsIHsgcmVhZDogVGVtcGxhdGVSZWYgfSlcclxuICBwdWJsaWMgYm9keVRlbXBsYXRlITogVGVtcGxhdGVSZWY8YW55PjtcclxuICBAQ29udGVudENoaWxkKEdyaWRFeHBhbmRUZW1wbGF0ZURpcmVjdGl2ZSwgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KVxyXG4gIHB1YmxpYyBleHBhbmRUZW1wbGF0ZSE6IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgQENvbnRlbnRDaGlsZCgnZm9vdGVyJykgcHVibGljIGZvb3RlclRlbXBsYXRlITogVGVtcGxhdGVSZWY8YW55PjtcclxuICBAQ29udGVudENoaWxkKCdub2NvbnRlbnQnKSBwdWJsaWMgbm9Db250ZW50VGVtcGxhdGUhOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG5cclxuICBAT3V0cHV0KCkgcHVibGljIHJvd1NlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8VD4oKTtcclxuXHJcbiAgcHVibGljIHNvcnRlZERhdGE6IFRbXSA9IFsuLi50aGlzLmRhdGFTb3VyY2VdO1xyXG4gIHB1YmxpYyBzb3J0RGlyZWN0aW9uOiAnYXNjJyB8ICdkZXNjJyA9ICdhc2MnO1xyXG4gIHB1YmxpYyBzb3J0S2V5OiBzdHJpbmcgPSAnJztcclxuXHJcbiAgcHVibGljIGZpbHRlcmVkRGF0YTogVFtdID0gW107XHJcbiAgcHVibGljIGZpbHRlclRleHQ6IHN0cmluZyA9ICcnO1xyXG5cclxuICBwdWJsaWMgY3VycmVudFBhZ2U6IG51bWJlciA9IDE7XHJcbiAgcHVibGljIHBhZ2luYXRlZERhdGE6IFRbXSA9IFtdO1xyXG5cclxuICBwdWJsaWMgZXhwYW5kZWRSb3dJbmRleDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBzb3J0U2VydmljZTogRGF0YVNvcnRpbmdTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBwYWdpbmF0aW9uU2VydmljZTogUGFnaW5hdGlvblNlcnZpY2VcclxuICApIHtcclxuICAgIGVmZmVjdCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuc29ydERhdGEodGhpcy5zb3J0U2VydmljZS5zb3J0S2V5KCkpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYgKGNoYW5nZXNbJ2xvY2FsU3RvcmFnZUtleSddKSB7XHJcbiAgICAgIHRoaXMucGFnZVNpemUgPSBKU09OLnBhcnNlKFxyXG4gICAgICAgIHdpbmRvdy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShcclxuICAgICAgICAgIGBmdS1ncmlkLSR7dGhpcy5sb2NhbFN0b3JhZ2VLZXl9LXBhZ2VTaXplYFxyXG4gICAgICAgICkgfHwgdGhpcy5wYWdlU2l6ZU9wdGlvbnNbMF0udG9TdHJpbmcoKVxyXG4gICAgICApO1xyXG4gICAgICB0aGlzLmN1cnJlbnRQYWdlID0gSlNPTi5wYXJzZShcclxuICAgICAgICB3aW5kb3cubG9jYWxTdG9yYWdlLmdldEl0ZW0oXHJcbiAgICAgICAgICBgZnUtZ3JpZC0ke3RoaXMubG9jYWxTdG9yYWdlS2V5fS1jdXJyZW50UGFnZWBcclxuICAgICAgICApIHx8ICcxJ1xyXG4gICAgICApO1xyXG5cclxuICAgICAgdGhpcy5wYWdpbmF0aW9uU2VydmljZS5pbml0UGFnaW5hdGlvbih0aGlzLmN1cnJlbnRQYWdlLCB0aGlzLnBhZ2VTaXplKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoY2hhbmdlc1snZGF0YVNvdXJjZSddKSB7XHJcbiAgICAgIGlmICghdGhpcy5sYXp5TG9hZGluZykge1xyXG4gICAgICAgIHRoaXMuZmlsdGVyZWREYXRhID0gWy4uLnRoaXMuZGF0YVNvdXJjZV07XHJcbiAgICAgICAgdGhpcy5zb3J0ZWREYXRhID0gWy4uLnRoaXMuZmlsdGVyZWREYXRhXTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnNvcnRTZXJ2aWNlLmdldENlbGxLZXlzKHRoaXMuZGF0YVNvdXJjZVswXSB8fCB7fSk7XHJcbiAgICAgIHRoaXMudXBkYXRlUGFnaW5hdGlvbigpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuc29ydFNlcnZpY2UuY2xlYXIoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvcmlnaW5hbE9yZGVyID0gKGE6IGFueSwgYjogYW55KTogbnVtYmVyID0+IHtcclxuICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyh0aGlzLmRhdGFTb3VyY2UpO1xyXG4gICAgcmV0dXJuIGtleXMuaW5kZXhPZihhLmtleSkgLSBrZXlzLmluZGV4T2YoYi5rZXkpO1xyXG4gIH07XHJcblxyXG4gIHB1YmxpYyBzb3J0RGF0YShrZXk6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5zb3J0S2V5ID0ga2V5O1xyXG4gICAgY29uc3Qgc29ydERpcmVjdGlvbiA9IHRoaXMuc29ydFNlcnZpY2Uuc29ydERpcmVjdGlvbigpO1xyXG5cclxuICAgIHRoaXMuc29ydGVkRGF0YS5zb3J0KChhOiBhbnksIGI6IGFueSkgPT4ge1xyXG4gICAgICBpZiAoYVtrZXldIDwgYltrZXldKSB7XHJcbiAgICAgICAgcmV0dXJuIHNvcnREaXJlY3Rpb24gPT09ICdhc2MnID8gLTEgOiAxO1xyXG4gICAgICB9IGVsc2UgaWYgKGFba2V5XSA+IGJba2V5XSkge1xyXG4gICAgICAgIHJldHVybiBzb3J0RGlyZWN0aW9uID09PSAnYXNjJyA/IDEgOiAtMTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gMDtcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuYWRkU29ydENsYXNzKGtleSk7XHJcbiAgICB0aGlzLnVwZGF0ZVBhZ2luYXRpb24oKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYWRkU29ydENsYXNzKGtleTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBjb25zdCBzb3J0RGlyZWN0aW9uID0gdGhpcy5zb3J0U2VydmljZS5zb3J0RGlyZWN0aW9uKCk7XHJcblxyXG4gICAgY29uc3QgZWxlbWVudCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLXNvcnRlZD1cIiR7a2V5fVwiXWApO1xyXG5cclxuICAgIGRvY3VtZW50XHJcbiAgICAgIC5xdWVyeVNlbGVjdG9yQWxsKCdbZGF0YS1zb3J0ZWRdJylcclxuICAgICAgLmZvckVhY2goKHRoKSA9PiB0aC5jbGFzc0xpc3QucmVtb3ZlKCdzb3J0LWFzYycsICdzb3J0LWRlc2MnKSk7XHJcblxyXG4gICAgaWYgKGVsZW1lbnQpIHtcclxuICAgICAgZWxlbWVudC5jbGFzc0xpc3QuYWRkKHNvcnREaXJlY3Rpb24gPT09ICdhc2MnID8gJ3NvcnQtYXNjJyA6ICdzb3J0LWRlc2MnKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBmaWx0ZXJEYXRhKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuZmlsdGVyVGV4dC50cmltKCkgPT09ICcnKSB7XHJcbiAgICAgIHRoaXMuZmlsdGVyZWREYXRhID0gWy4uLnRoaXMuZGF0YVNvdXJjZV07XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmZpbHRlcmVkRGF0YSA9IHRoaXMuZGF0YVNvdXJjZS5maWx0ZXIoKGl0ZW06IGFueSkgPT5cclxuICAgICAgICBPYmplY3QudmFsdWVzKGl0ZW0pLnNvbWUoKHZhbHVlOiBhbnkpID0+XHJcbiAgICAgICAgICB2YWx1ZS50b1N0cmluZygpLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXModGhpcy5maWx0ZXJUZXh0LnRvTG93ZXJDYXNlKCkpXHJcbiAgICAgICAgKVxyXG4gICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuc29ydGVkRGF0YSA9IFsuLi50aGlzLmZpbHRlcmVkRGF0YV07XHJcbiAgICB0aGlzLmN1cnJlbnRQYWdlID0gMTtcclxuXHJcbiAgICB0aGlzLnVwZGF0ZVBhZ2luYXRpb24oKTtcclxuXHJcbiAgICB3aW5kb3cubG9jYWxTdG9yYWdlLnNldEl0ZW0oXHJcbiAgICAgIGBmdS1ncmlkLSR7dGhpcy5sb2NhbFN0b3JhZ2VLZXl9LWN1cnJlbnRQYWdlYCxcclxuICAgICAgdGhpcy5jdXJyZW50UGFnZS50b1N0cmluZygpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXJ2ZXJTaWRlUGFnaW5hdGlvbigpOiB2b2lkIHtcclxuICAgIHRoaXMucGFnaW5hdGVkRGF0YSA9IHRoaXMuZGF0YVNvdXJjZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdXBkYXRlUGFnaW5hdGlvbigpOiB2b2lkIHtcclxuICAgIHRoaXMuZXhwYW5kZWRSb3dJbmRleCA9IG51bGw7XHJcblxyXG4gICAgaWYgKHRoaXMubGF6eUxvYWRpbmcpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuc2VydmVyU2lkZVBhZ2luYXRpb24oKTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBzdGFydCA9ICh0aGlzLmN1cnJlbnRQYWdlIC0gMSkgKiB0aGlzLnBhZ2VTaXplO1xyXG4gICAgY29uc3QgZW5kID0gc3RhcnQgKyB0aGlzLnBhZ2VTaXplO1xyXG4gICAgdGhpcy5wYWdpbmF0ZWREYXRhID0gdGhpcy5zb3J0ZWREYXRhLnNsaWNlKHN0YXJ0LCBlbmQpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdvVG9QYWdlKHBhZ2U6IG51bWJlcik6IHZvaWQge1xyXG4gICAgaWYgKHBhZ2UgPCAxIHx8IHBhZ2UgPiB0aGlzLnRvdGFsUGFnZXMoKSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLmN1cnJlbnRQYWdlID0gcGFnZTtcclxuICAgIHdpbmRvdy5sb2NhbFN0b3JhZ2Uuc2V0SXRlbShcclxuICAgICAgYGZ1LWdyaWQtJHt0aGlzLmxvY2FsU3RvcmFnZUtleX0tY3VycmVudFBhZ2VgLFxyXG4gICAgICB0aGlzLmN1cnJlbnRQYWdlLnRvU3RyaW5nKClcclxuICAgICk7XHJcblxyXG4gICAgdGhpcy5wYWdpbmF0aW9uU2VydmljZS5zZXRQYWdlKHBhZ2UsIHRoaXMucGFnZVNpemUpO1xyXG4gICAgdGhpcy51cGRhdGVQYWdpbmF0aW9uKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgdG90YWxQYWdlcygpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIE1hdGguY2VpbCh0aGlzLnRvdGFsSXRlbUNvdW50KCkgLyB0aGlzLnBhZ2VTaXplKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRQYWdlU3RhcnQoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiAodGhpcy5jdXJyZW50UGFnZSAtIDEpICogdGhpcy5wYWdlU2l6ZSArIDE7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0UGFnZUVuZCgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIE1hdGgubWluKHRoaXMuY3VycmVudFBhZ2UgKiB0aGlzLnBhZ2VTaXplLCB0aGlzLnRvdGFsSXRlbUNvdW50KCkpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNoYW5nZVBhZ2VTaXplKGV2ZW50OiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMucGFnZVNpemUgPSBOdW1iZXIoZXZlbnQudGFyZ2V0LnZhbHVlKTtcclxuICAgIHRoaXMuY3VycmVudFBhZ2UgPSAxO1xyXG5cclxuICAgIHRoaXMucGFnaW5hdGlvblNlcnZpY2Uuc2V0UGFnZVNpemUodGhpcy5wYWdlU2l6ZSk7XHJcbiAgICB0aGlzLnVwZGF0ZVBhZ2luYXRpb24oKTtcclxuXHJcbiAgICB3aW5kb3cubG9jYWxTdG9yYWdlLnNldEl0ZW0oXHJcbiAgICAgIGBmdS1ncmlkLSR7dGhpcy5sb2NhbFN0b3JhZ2VLZXl9LWN1cnJlbnRQYWdlYCxcclxuICAgICAgdGhpcy5jdXJyZW50UGFnZS50b1N0cmluZygpXHJcbiAgICApO1xyXG5cclxuICAgIHdpbmRvdy5sb2NhbFN0b3JhZ2Uuc2V0SXRlbShcclxuICAgICAgYGZ1LWdyaWQtJHt0aGlzLmxvY2FsU3RvcmFnZUtleX0tcGFnZVNpemVgLFxyXG4gICAgICB0aGlzLnBhZ2VTaXplLnRvU3RyaW5nKClcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgdG90YWxJdGVtQ291bnQoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLnRvdGFsQ291bnQgfHwgdGhpcy5maWx0ZXJlZERhdGEubGVuZ3RoO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHJvd0NsaWNrKHJvdzogVCwgaW5kZXg6IG51bWJlciA9IDApOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmV4cGFuZGFibGUpIHtcclxuICAgICAgaWYgKHRoaXMuZXhwYW5kZWRSb3dJbmRleCA9PT0gaW5kZXgpIHtcclxuICAgICAgICB0aGlzLmV4cGFuZGVkUm93SW5kZXggPSBudWxsO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuZXhwYW5kZWRSb3dJbmRleCA9IGluZGV4O1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnJvd1NlbGVjdC5lbWl0KHJvdyk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgaWQ9XCJmdXNpb24tZGF0YWdyaWRcIiBjbGFzcz1cImZ1LWRhdGEtZ3JpZC13cmFwcGVyXCI+XHJcbiAgQGlmIChmaWx0ZXIpIHtcclxuICA8aW5wdXRcclxuICAgIGNsYXNzPVwiZnUtZGF0YS1ncmlkLWZpbHRlclwiXHJcbiAgICB0eXBlPVwidGV4dFwiXHJcbiAgICBbKG5nTW9kZWwpXT1cImZpbHRlclRleHRcIlxyXG4gICAgKGlucHV0KT1cImZpbHRlckRhdGEoKVwiXHJcbiAgICBwbGFjZWhvbGRlcj1cIlNlYXJjaCBrZXl3b3JkLi4uXCJcclxuICAvPlxyXG4gIH1cclxuXHJcbiAgPGRpdiBjbGFzcz1cImZ1LWRhdGEtZ3JpZC1jb250YWluZXJcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJmdS1kYXRhLWdyaWQtaGVhZGVyXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJmdS1oZWFkLXJvd1wiIGdyaWRDb2x1bW5zIFtjb2x1bW5TaXplc109XCJjb2x1bW5TaXplc1wiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXHJcbiAgICAgICAgICAgIGhlYWRlclRlbXBsYXRlIHx8IGRlZmF1bHRIZWFkZXJUZW1wbGF0ZTtcclxuICAgICAgICAgICAgY29udGV4dDogeyAkaW1wbGljaXQ6IGRhdGFTb3VyY2UsIGtleXM6IGRhdGFTb3VyY2VbMF0gfCBrZXlNYXBwaW5nIH1cclxuICAgICAgICAgIFwiXHJcbiAgICAgICAgLz5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJmdS1kYXRhLWdyaWQtYm9keVwiPlxyXG4gICAgICA8ZGl2ICpuZ0lmPVwiZGF0YUxvYWRpbmdcIiBjbGFzcz1cImZ1LWRhdGEtZ3JpZC1zcGlubmVyLW92ZXJsYXlcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZnUtc3Bpbm5lclwiPjwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIEBmb3IgKHJvdyBvZiBwYWdpbmF0ZWREYXRhOyB0cmFjayAkaW5kZXgpIHtcclxuICAgICAgPGRpdlxyXG4gICAgICAgIGNsYXNzPVwiZnUtYm9keS1yb3dcIlxyXG4gICAgICAgIFtuZ0NsYXNzXT1cInsgaG92ZXJhYmxlLCBzdHJpcGVkIH1cIlxyXG4gICAgICAgIFtzdHlsZS5jdXJzb3JdPVwiZXhwYW5kYWJsZSA/ICdwb2ludGVyJyA6ICdkZWZhdWx0J1wiXHJcbiAgICAgICAgKGNsaWNrKT1cInJvd0NsaWNrKHJvdywgJGluZGV4KVwiXHJcbiAgICAgID5cclxuICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxyXG4gICAgICAgICAgICBib2R5VGVtcGxhdGUgfHwgZGVmYXVsdEJvZHlUZW1wbGF0ZTtcclxuICAgICAgICAgICAgY29udGV4dDogeyAkaW1wbGljaXQ6IHJvdywgaW5kZXg6ICRpbmRleCwga2V5czogcm93IHwga2V5TWFwcGluZyB9XHJcbiAgICAgICAgICBcIlxyXG4gICAgICAgIC8+XHJcblxyXG4gICAgICAgIEBpZiAoZXhwYW5kYWJsZSAmJiBleHBhbmRlZFJvd0luZGV4ID09PSAkaW5kZXgpIHtcclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZnUtZXhwYW5kZWQtcm93XCIgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiPlxyXG4gICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXHJcbiAgICAgICAgICAgICAgICBleHBhbmRUZW1wbGF0ZTtcclxuICAgICAgICAgICAgICAgIGNvbnRleHQ6IHsgJGltcGxpY2l0OiByb3csIGluZGV4OiAkaW5kZXggfVxyXG4gICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICB9XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICB9XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPG5nLWNvbnRhaW5lclxyXG4gICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJmb290ZXJUZW1wbGF0ZTsgY29udGV4dDogeyAkaW1wbGljaXQ6IHBhZ2luYXRlZERhdGEgfVwiXHJcbiAgLz5cclxuXHJcbiAgQGlmKHBhZ2luYXRlZERhdGEubGVuZ3RoIDw9IDApe1xyXG4gIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJub0NvbnRlbnRUZW1wbGF0ZVwiIC8+XHJcbiAgfVxyXG4gIDwhLS0gV1JBUCAtLT5cclxuICBAaWYgKHBhZ2luYXRvcikge1xyXG4gIDxuZy1jb250YWluZXJcclxuICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiZGVmYXVsdFBhZ2luYXRvcjsgY29udGV4dDogeyAkaW1wbGljaXQ6IHNvcnREYXRhIH1cIlxyXG4gIC8+XHJcbiAgfVxyXG48L2Rpdj5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjZGVmYXVsdEhlYWRlclRlbXBsYXRlIGxldC1kYXRhPlxyXG4gIEBmb3IgKGhlYWRlciBvZiBkYXRhWzBdIHwga2V5dmFsdWU6IG9yaWdpbmFsT3JkZXI7IHRyYWNrICRpbmRleCkge1xyXG4gIDxmdS1oZWFkLXJvdy1jZWxsIFtjZWxsRGVmXT1cIiRhbnkoaGVhZGVyLmtleSlcIiBbc29ydEtleV09XCIkYW55KGhlYWRlci5rZXkpXCIgLz5cclxuICB9XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI2RlZmF1bHRCb2R5VGVtcGxhdGUgbGV0LXJvd3M+XHJcbiAgQGZvciAocm93IG9mIHJvd3MgfCBrZXl2YWx1ZTogb3JpZ2luYWxPcmRlcjsgdHJhY2sgJGluZGV4KSB7XHJcbiAgPGZ1LWJvZHktcm93LWNlbGwgW2NlbGxWYWx1ZV09XCIkYW55KHJvdy52YWx1ZSlcIiAvPlxyXG4gIH1cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjZGVmYXVsdFBhZ2luYXRvciBsZXQtZGF0YT5cclxuICA8ZGl2IGNsYXNzPVwiZnUtZGF0YS1ncmlkLXBhZ2luYXRvclwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImZ1LXBhZ2luYXRvci1wYWdlLXNlbGVjdFwiPlxyXG4gICAgICA8c3Bhbj5JdGVtcyBwZXIgcGFnZTo8L3NwYW4+XHJcbiAgICAgIDxzZWxlY3QgKGNoYW5nZSk9XCJjaGFuZ2VQYWdlU2l6ZSgkZXZlbnQpXCI+XHJcbiAgICAgICAgPG9wdGlvblxyXG4gICAgICAgICAgKm5nRm9yPVwibGV0IHNpemUgb2YgcGFnZVNpemVPcHRpb25zXCJcclxuICAgICAgICAgIFt2YWx1ZV09XCJzaXplXCJcclxuICAgICAgICAgIFtzZWxlY3RlZF09XCJzaXplID09PSBwYWdlU2l6ZVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAge3sgc2l6ZSB9fVxyXG4gICAgICAgIDwvb3B0aW9uPlxyXG4gICAgICA8L3NlbGVjdD5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImZ1LXBhZ2luYXRvci1jb250cm9sc1wiPlxyXG4gICAgICA8ZGl2PlxyXG4gICAgICAgIHt7IGdldFBhZ2VTdGFydCgpIH19IC0ge3sgZ2V0UGFnZUVuZCgpIH19IG9mIHt7IHRvdGFsSXRlbUNvdW50KCkgfX1cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxidXR0b25cclxuICAgICAgICBmdS1idG4tdGV4dFxyXG4gICAgICAgIGljb25CdXR0b25cclxuICAgICAgICAoY2xpY2spPVwiZ29Ub1BhZ2UoMSlcIlxyXG4gICAgICAgIFtkaXNhYmxlZF09XCJjdXJyZW50UGFnZSA9PT0gMVwiXHJcbiAgICAgID5cclxuICAgICAgICA8ZnUtaWNvbiBpY29uTmFtZT1cImRvdWJsZUFycm93TGVmdFwiIC8+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8YnV0dG9uXHJcbiAgICAgICAgZnUtYnRuLXRleHRcclxuICAgICAgICBpY29uQnV0dG9uXHJcbiAgICAgICAgKGNsaWNrKT1cImdvVG9QYWdlKGN1cnJlbnRQYWdlIC0gMSlcIlxyXG4gICAgICAgIFtkaXNhYmxlZF09XCJjdXJyZW50UGFnZSA9PT0gMVwiXHJcbiAgICAgID5cclxuICAgICAgICA8ZnUtaWNvbiBpY29uTmFtZT1cImFycm93TGVmdFwiIC8+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8YnV0dG9uXHJcbiAgICAgICAgZnUtYnRuLXRleHRcclxuICAgICAgICBpY29uQnV0dG9uXHJcbiAgICAgICAgKGNsaWNrKT1cImdvVG9QYWdlKGN1cnJlbnRQYWdlICsgMSlcIlxyXG4gICAgICAgIFtkaXNhYmxlZF09XCJjdXJyZW50UGFnZSA+PSB0b3RhbFBhZ2VzKClcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGZ1LWljb24gaWNvbk5hbWU9XCJhcnJvd1JpZ2h0XCIgLz5cclxuICAgICAgPC9idXR0b24+XHJcbiAgICAgIDxidXR0b25cclxuICAgICAgICBmdS1idG4tdGV4dFxyXG4gICAgICAgIGljb25CdXR0b25cclxuICAgICAgICAoY2xpY2spPVwiZ29Ub1BhZ2UodG90YWxQYWdlcygpKVwiXHJcbiAgICAgICAgW2Rpc2FibGVkXT1cImN1cnJlbnRQYWdlID49IHRvdGFsUGFnZXMoKVwiXHJcbiAgICAgID5cclxuICAgICAgICA8ZnUtaWNvbiBpY29uTmFtZT1cImRvdWJsZUFycm93UmlnaHRcIiAvPlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=
|
|
@@ -1,13 +1,9 @@
|
|
|
1
1
|
import { Directive, HostListener, input, } from '@angular/core';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
|
-
export const initColumns = [
|
|
4
|
-
{ breakpoint: 900, columns: 2 },
|
|
5
|
-
{ breakpoint: 600, columns: 1 },
|
|
6
|
-
];
|
|
7
3
|
export class GridColumnsDirective {
|
|
8
4
|
constructor(el) {
|
|
9
5
|
this.el = el;
|
|
10
|
-
this.
|
|
6
|
+
this.columnSizes = input([]);
|
|
11
7
|
}
|
|
12
8
|
ngAfterViewInit() {
|
|
13
9
|
this.updateGridColumns();
|
|
@@ -15,22 +11,26 @@ export class GridColumnsDirective {
|
|
|
15
11
|
onResize() {
|
|
16
12
|
this.updateGridColumns();
|
|
17
13
|
}
|
|
14
|
+
generateColumns(count) {
|
|
15
|
+
if (this.columnSizes()) {
|
|
16
|
+
const columnsCount = this.columnSizes().length;
|
|
17
|
+
if (columnsCount !== count) {
|
|
18
|
+
console.warn(`Incorect amount of Column sizes ${columnsCount}/${count} provided!`);
|
|
19
|
+
}
|
|
20
|
+
return this.columnSizes().join(' ');
|
|
21
|
+
}
|
|
22
|
+
return Array(count).fill('1fr').join(' ');
|
|
23
|
+
}
|
|
18
24
|
updateGridColumns() {
|
|
19
25
|
const childrenCount = this.el.nativeElement.children.length;
|
|
20
|
-
const currentWidth = window.innerWidth;
|
|
21
26
|
const dataGrid = this.el.nativeElement.closest('#fusion-datagrid');
|
|
22
|
-
const
|
|
23
|
-
.sort((a, b) => a.breakpoint - b.breakpoint)
|
|
24
|
-
.find((setting) => currentWidth < setting.breakpoint);
|
|
25
|
-
const columns = responsiveSetting
|
|
26
|
-
? responsiveSetting.columns
|
|
27
|
-
: childrenCount;
|
|
27
|
+
const columns = this.generateColumns(childrenCount);
|
|
28
28
|
if (dataGrid) {
|
|
29
|
-
dataGrid.style.setProperty('--grid-columns', columns
|
|
29
|
+
dataGrid.style.setProperty('--grid-columns', columns);
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
32
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: GridColumnsDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
33
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.0.6", type: GridColumnsDirective, selector: "[gridColumns]", inputs: {
|
|
33
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.0.6", type: GridColumnsDirective, selector: "[gridColumns]", inputs: { columnSizes: { classPropertyName: "columnSizes", publicName: "columnSizes", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "window:resize": "onResize()" } }, ngImport: i0 }); }
|
|
34
34
|
}
|
|
35
35
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: GridColumnsDirective, decorators: [{
|
|
36
36
|
type: Directive,
|
|
@@ -41,4 +41,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImpor
|
|
|
41
41
|
type: HostListener,
|
|
42
42
|
args: ['window:resize']
|
|
43
43
|
}] } });
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1jb2x1bW5zLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWZ1c2lvbi11aS9zcmMvbGliL2RhdGEtZ3JpZC9kaXJlY3RpdmVzL2dyaWQtY29sdW1ucy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxHQUNOLE1BQU0sZUFBZSxDQUFDOztBQVF2QixNQUFNLE9BQU8sb0JBQW9CO0lBRy9CLFlBQW9CLEVBQWM7UUFBZCxPQUFFLEdBQUYsRUFBRSxDQUFZO1FBRjNCLGdCQUFXLEdBQUcsS0FBSyxDQUFjLEVBQUUsQ0FBQyxDQUFDO0lBRVAsQ0FBQztJQUUvQixlQUFlO1FBQ3BCLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFHTyxRQUFRO1FBQ2QsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVPLGVBQWUsQ0FBQyxLQUFhO1FBQ25DLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUM7WUFDdkIsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLE1BQU0sQ0FBQztZQUMvQyxJQUFJLFlBQVksS0FBSyxLQUFLLEVBQUUsQ0FBQztnQkFDM0IsT0FBTyxDQUFDLElBQUksQ0FDVixtQ0FBbUMsWUFBWSxJQUFJLEtBQUssWUFBWSxDQUNyRSxDQUFDO1lBQ0osQ0FBQztZQUNELE9BQU8sSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN0QyxDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRU8saUJBQWlCO1FBQ3ZCLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxNQUFnQixDQUFDO1FBRXRFLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FDNUMsa0JBQWtCLENBQ0osQ0FBQztRQUVqQixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRXBELElBQUksUUFBUSxFQUFFLENBQUM7WUFDYixRQUFRLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0IsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUN4RCxDQUFDO0lBQ0gsQ0FBQzs4R0F2Q1Usb0JBQW9CO2tHQUFwQixvQkFBb0I7OzJGQUFwQixvQkFBb0I7a0JBSGhDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGVBQWU7aUJBQzFCOytFQVdTLFFBQVE7c0JBRGYsWUFBWTt1QkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBBZnRlclZpZXdJbml0LFxyXG4gIERpcmVjdGl2ZSxcclxuICBFbGVtZW50UmVmLFxyXG4gIEhvc3RMaXN0ZW5lcixcclxuICBpbnB1dCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmV4cG9ydCB0eXBlIENzc1VuaXQgPSBgJHtudW1iZXJ9JHsncHgnIHwgJ2ZyJyB8ICdyZW0nIHwgJyUnfWA7XHJcbmV4cG9ydCB0eXBlIENvbHVtblNpemVzID0gQ3NzVW5pdFtdO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdbZ3JpZENvbHVtbnNdJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIEdyaWRDb2x1bW5zRGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgcHVibGljIGNvbHVtblNpemVzID0gaW5wdXQ8Q29sdW1uU2l6ZXM+KFtdKTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbDogRWxlbWVudFJlZikge31cclxuXHJcbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMudXBkYXRlR3JpZENvbHVtbnMoKTtcclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnKVxyXG4gIHByaXZhdGUgb25SZXNpemUoKTogdm9pZCB7XHJcbiAgICB0aGlzLnVwZGF0ZUdyaWRDb2x1bW5zKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdlbmVyYXRlQ29sdW1ucyhjb3VudDogbnVtYmVyKTogc3RyaW5nIHtcclxuICAgIGlmICh0aGlzLmNvbHVtblNpemVzKCkpIHtcclxuICAgICAgY29uc3QgY29sdW1uc0NvdW50ID0gdGhpcy5jb2x1bW5TaXplcygpLmxlbmd0aDtcclxuICAgICAgaWYgKGNvbHVtbnNDb3VudCAhPT0gY291bnQpIHtcclxuICAgICAgICBjb25zb2xlLndhcm4oXHJcbiAgICAgICAgICBgSW5jb3JlY3QgYW1vdW50IG9mIENvbHVtbiBzaXplcyAke2NvbHVtbnNDb3VudH0vJHtjb3VudH0gcHJvdmlkZWQhYFxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHRoaXMuY29sdW1uU2l6ZXMoKS5qb2luKCcgJyk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gQXJyYXkoY291bnQpLmZpbGwoJzFmcicpLmpvaW4oJyAnKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdXBkYXRlR3JpZENvbHVtbnMoKTogdm9pZCB7XHJcbiAgICBjb25zdCBjaGlsZHJlbkNvdW50ID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50LmNoaWxkcmVuLmxlbmd0aCBhcyBudW1iZXI7XHJcblxyXG4gICAgY29uc3QgZGF0YUdyaWQgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuY2xvc2VzdChcclxuICAgICAgJyNmdXNpb24tZGF0YWdyaWQnXHJcbiAgICApIGFzIEhUTUxFbGVtZW50O1xyXG5cclxuICAgIGNvbnN0IGNvbHVtbnMgPSB0aGlzLmdlbmVyYXRlQ29sdW1ucyhjaGlsZHJlbkNvdW50KTtcclxuXHJcbiAgICBpZiAoZGF0YUdyaWQpIHtcclxuICAgICAgZGF0YUdyaWQuc3R5bGUuc2V0UHJvcGVydHkoJy0tZ3JpZC1jb2x1bW5zJywgY29sdW1ucyk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
import { Injectable } from '@angular/core';
|
|
2
|
-
import {
|
|
2
|
+
import { Subject } from 'rxjs';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
export class PaginationService {
|
|
5
5
|
constructor() {
|
|
6
|
-
this.paginationSubject = new
|
|
7
|
-
page: 1,
|
|
8
|
-
pageSize: 5,
|
|
9
|
-
});
|
|
6
|
+
this.paginationSubject = new Subject();
|
|
10
7
|
this.paginator$ = this.paginationSubject.asObservable();
|
|
11
8
|
}
|
|
12
|
-
setPage(page) {
|
|
13
|
-
const currentState = this.paginationSubject.value;
|
|
14
|
-
this.paginationSubject.next({
|
|
9
|
+
setPage(page, pageSize) {
|
|
10
|
+
// const currentState = this.paginationSubject.value;
|
|
11
|
+
this.paginationSubject.next({ page, pageSize });
|
|
15
12
|
}
|
|
16
13
|
setPageSize(pageSize) {
|
|
17
14
|
this.paginationSubject.next({ page: 1, pageSize });
|
|
18
15
|
}
|
|
16
|
+
initPagination(page, pageSize) {
|
|
17
|
+
this.paginationSubject.next({ page, pageSize });
|
|
18
|
+
}
|
|
19
19
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: PaginationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
20
20
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: PaginationService, providedIn: 'any' }); }
|
|
21
21
|
}
|
|
@@ -25,4 +25,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImpor
|
|
|
25
25
|
providedIn: 'any',
|
|
26
26
|
}]
|
|
27
27
|
}] });
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdG9yLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1mdXNpb24tdWkvc3JjL2xpYi9kYXRhLWdyaWQvc2VydmljZXMvcGFnaW5hdG9yLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQVczQyxNQUFNLE9BQU8saUJBQWlCO0lBSDlCO1FBSVUsc0JBQWlCLEdBQUcsSUFBSSxPQUFPLEVBQW1CLENBQUM7UUFFcEQsZUFBVSxHQUNmLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztLQWN6QztJQVpRLE9BQU8sQ0FBQyxJQUFZLEVBQUUsUUFBZ0I7UUFDM0MscURBQXFEO1FBQ3JELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRU0sV0FBVyxDQUFDLFFBQWdCO1FBQ2pDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVNLGNBQWMsQ0FBQyxJQUFZLEVBQUUsUUFBZ0I7UUFDbEQsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQ2xELENBQUM7OEdBakJVLGlCQUFpQjtrSEFBakIsaUJBQWlCLGNBRmhCLEtBQUs7OzJGQUVOLGlCQUFpQjtrQkFIN0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsS0FBSztpQkFDbEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgRGF0YUdyaWRQYWdpbmF0b3IgfSBmcm9tICcuL2RhdGEtZ3JpZC1wYWdpbmF0b3InO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBQYWdpbmF0aW9uU3RhdGUge1xyXG4gIHBhZ2U6IG51bWJlcjtcclxuICBwYWdlU2l6ZTogbnVtYmVyO1xyXG59XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ2FueScsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQYWdpbmF0aW9uU2VydmljZSBpbXBsZW1lbnRzIERhdGFHcmlkUGFnaW5hdG9yIHtcclxuICBwcml2YXRlIHBhZ2luYXRpb25TdWJqZWN0ID0gbmV3IFN1YmplY3Q8UGFnaW5hdGlvblN0YXRlPigpO1xyXG5cclxuICBwdWJsaWMgcGFnaW5hdG9yJDogT2JzZXJ2YWJsZTxQYWdpbmF0aW9uU3RhdGU+ID1cclxuICAgIHRoaXMucGFnaW5hdGlvblN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XHJcblxyXG4gIHB1YmxpYyBzZXRQYWdlKHBhZ2U6IG51bWJlciwgcGFnZVNpemU6IG51bWJlcik6IHZvaWQge1xyXG4gICAgLy8gY29uc3QgY3VycmVudFN0YXRlID0gdGhpcy5wYWdpbmF0aW9uU3ViamVjdC52YWx1ZTtcclxuICAgIHRoaXMucGFnaW5hdGlvblN1YmplY3QubmV4dCh7IHBhZ2UsIHBhZ2VTaXplIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldFBhZ2VTaXplKHBhZ2VTaXplOiBudW1iZXIpOiB2b2lkIHtcclxuICAgIHRoaXMucGFnaW5hdGlvblN1YmplY3QubmV4dCh7IHBhZ2U6IDEsIHBhZ2VTaXplIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGluaXRQYWdpbmF0aW9uKHBhZ2U6IG51bWJlciwgcGFnZVNpemU6IG51bWJlcik6IHZvaWQge1xyXG4gICAgdGhpcy5wYWdpbmF0aW9uU3ViamVjdC5uZXh0KHsgcGFnZSwgcGFnZVNpemUgfSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|