@angular-generic-table/core 5.0.0-rc.1 → 5.0.0-rc.10
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/angular-generic-table-core.d.ts +1 -3
- package/esm2020/angular-generic-table-core.mjs +5 -0
- package/esm2020/lib/core.component.mjs +122 -0
- package/esm2020/lib/core.module.mjs +23 -0
- package/esm2020/lib/core.service.mjs +14 -0
- package/esm2020/lib/enums/order.enum.mjs +6 -0
- package/esm2020/lib/models/table-column.interface.mjs +2 -0
- package/esm2020/lib/models/table-config.interface.mjs +2 -0
- package/esm2020/lib/models/table-info.interface.mjs +2 -0
- package/esm2020/lib/models/table-meta.interface.mjs +2 -0
- package/esm2020/lib/models/table-row.interface.mjs +2 -0
- package/esm2020/lib/models/table-sort.interface.mjs +2 -0
- package/esm2020/lib/pagination/pagination.component.mjs +63 -0
- package/esm2020/lib/pagination/pagination.module.mjs +18 -0
- package/esm2020/lib/pipes/capital-case.pipe.mjs +17 -0
- package/esm2020/lib/pipes/dash-case.pipe.mjs +17 -0
- package/esm2020/lib/pipes/dynamic.pipe.mjs +25 -0
- package/esm2020/lib/pipes/highlight.pipe.mjs +48 -0
- package/esm2020/lib/pipes/sort-class.pipe.mjs +16 -0
- package/esm2020/lib/utilities/utilities.mjs +39 -0
- package/esm2020/public-api.mjs +15 -0
- package/fesm2015/angular-generic-table-core.mjs +384 -0
- package/fesm2015/angular-generic-table-core.mjs.map +1 -0
- package/fesm2020/angular-generic-table-core.mjs +381 -0
- package/fesm2020/angular-generic-table-core.mjs.map +1 -0
- package/lib/core.component.d.ts +17 -16
- package/lib/core.module.d.ts +11 -0
- package/lib/core.service.d.ts +3 -0
- package/lib/models/table-column.interface.d.ts +9 -1
- package/lib/models/table-config.interface.d.ts +8 -3
- package/lib/models/table-meta.interface.d.ts +8 -0
- package/lib/models/table-row.interface.d.ts +2 -1
- package/lib/pagination/pagination.component.d.ts +14 -0
- package/lib/pagination/pagination.module.d.ts +8 -0
- package/lib/pipes/capital-case.pipe.d.ts +7 -0
- package/lib/pipes/dash-case.pipe.d.ts +3 -0
- package/lib/pipes/dynamic.pipe.d.ts +9 -0
- package/lib/pipes/highlight.pipe.d.ts +3 -0
- package/lib/pipes/sort-class.pipe.d.ts +3 -0
- package/lib/utilities/utilities.d.ts +1 -0
- package/package.json +21 -9
- package/public-api.d.ts +8 -0
- package/scss/index.scss +102 -0
- package/angular-generic-table-core.metadata.json +0 -1
- package/bundles/angular-generic-table-core.umd.js +0 -594
- package/bundles/angular-generic-table-core.umd.js.map +0 -1
- package/bundles/angular-generic-table-core.umd.min.js +0 -2
- package/bundles/angular-generic-table-core.umd.min.js.map +0 -1
- package/esm2015/angular-generic-table-core.js +0 -8
- package/esm2015/lib/core.component.js +0 -107
- package/esm2015/lib/core.module.js +0 -16
- package/esm2015/lib/core.service.js +0 -13
- package/esm2015/lib/enums/order.enum.js +0 -6
- package/esm2015/lib/models/table-column.interface.js +0 -2
- package/esm2015/lib/models/table-config.interface.js +0 -2
- package/esm2015/lib/models/table-info.interface.js +0 -2
- package/esm2015/lib/models/table-row.interface.js +0 -2
- package/esm2015/lib/models/table-sort.interface.js +0 -2
- package/esm2015/lib/pipes/dash-case.pipe.js +0 -13
- package/esm2015/lib/pipes/highlight.pipe.js +0 -44
- package/esm2015/lib/pipes/sort-class.pipe.js +0 -12
- package/esm2015/lib/utilities/utilities.js +0 -25
- package/esm2015/public-api.js +0 -7
- package/fesm2015/angular-generic-table-core.js +0 -234
- package/fesm2015/angular-generic-table-core.js.map +0 -1
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Generated bundle index. Do not edit.
|
|
3
3
|
*/
|
|
4
|
+
/// <amd-module name="@angular-generic-table/core" />
|
|
4
5
|
export * from './public-api';
|
|
5
|
-
export { DashCasePipe as ɵb } from './lib/pipes/dash-case.pipe';
|
|
6
|
-
export { HighlightPipe as ɵc } from './lib/pipes/highlight.pipe';
|
|
7
|
-
export { SortClassPipe as ɵa } from './lib/pipes/sort-class.pipe';
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './public-api';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1nZW5lcmljLXRhYmxlLWNvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9hbmd1bGFyLWdlbmVyaWMtdGFibGUtY29yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
|
|
2
|
+
import { BehaviorSubject, combineLatest, EMPTY, isObservable, of, ReplaySubject, Subject } from 'rxjs';
|
|
3
|
+
import { map, shareReplay, startWith, switchMap, withLatestFrom } from 'rxjs/operators';
|
|
4
|
+
import { Order } from './enums/order.enum';
|
|
5
|
+
import { chunk, search } from './utilities/utilities';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "@angular/common";
|
|
8
|
+
import * as i2 from "./pipes/sort-class.pipe";
|
|
9
|
+
import * as i3 from "./pipes/dash-case.pipe";
|
|
10
|
+
import * as i4 from "./pipes/capital-case.pipe";
|
|
11
|
+
import * as i5 from "./pipes/highlight.pipe";
|
|
12
|
+
import * as i6 from "./pipes/dynamic.pipe";
|
|
13
|
+
export class CoreComponent {
|
|
14
|
+
constructor() {
|
|
15
|
+
this._loading$ = new ReplaySubject(1);
|
|
16
|
+
this.sortBy$ = new Subject();
|
|
17
|
+
// tslint:disable-next-line:variable-name
|
|
18
|
+
this._searchBy$ = new ReplaySubject(1);
|
|
19
|
+
this.searchBy$ = this._searchBy$.pipe(startWith(''), map((value) => (isObservable(value) ? value : of(value))), switchMap((obs) => obs), shareReplay(1));
|
|
20
|
+
// tslint:disable-next-line:variable-name
|
|
21
|
+
this._tableConfig$ = new ReplaySubject(1);
|
|
22
|
+
this.tableConfig$ = this._tableConfig$.pipe(map((value) => (isObservable(value) ? value : of(value))), switchMap((obs) => obs), shareReplay(1));
|
|
23
|
+
// tslint:disable-next-line:variable-name
|
|
24
|
+
this._data$ = new ReplaySubject(1);
|
|
25
|
+
this.data$ = this._data$.pipe(map((value) => (isObservable(value) ? value : of(value))), switchMap((obs) => combineLatest([obs, this.sortBy$.pipe(startWith(EMPTY)), this.searchBy$])), withLatestFrom(this.tableConfig$), map(([[data, sortBy, searchBy], config]) => {
|
|
26
|
+
// create a new array reference and sort new array (prevent mutating existing state)
|
|
27
|
+
data = [...data];
|
|
28
|
+
return !sortBy
|
|
29
|
+
? searchBy
|
|
30
|
+
? search(searchBy, false, data, config)
|
|
31
|
+
: data
|
|
32
|
+
: (searchBy ? search(searchBy, false, data, config) : data)?.sort((a, b) => {
|
|
33
|
+
// TODO: improve logic
|
|
34
|
+
const typed = sortBy;
|
|
35
|
+
return a[typed.sortBy] > b[typed.sortBy]
|
|
36
|
+
? typed.sortByOrder === Order.ASC
|
|
37
|
+
? 1
|
|
38
|
+
: -1
|
|
39
|
+
: b[typed.sortBy] > a[typed.sortBy]
|
|
40
|
+
? typed.sortByOrder === Order.ASC
|
|
41
|
+
? -1
|
|
42
|
+
: 1
|
|
43
|
+
: 0;
|
|
44
|
+
});
|
|
45
|
+
}), shareReplay(1));
|
|
46
|
+
this.table$ = combineLatest([this.data$, this.tableConfig$]).pipe(map(([sorted, config]) => {
|
|
47
|
+
// if pagination is disabled...
|
|
48
|
+
if (!config.pagination || config.pagination.length === 0) {
|
|
49
|
+
// ...return unaltered array
|
|
50
|
+
return { data: [sorted], config, info: { records: sorted.length, pageTotal: 1 } };
|
|
51
|
+
}
|
|
52
|
+
// return record set
|
|
53
|
+
return {
|
|
54
|
+
data: chunk(sorted, +(config.pagination.length || 0)),
|
|
55
|
+
config,
|
|
56
|
+
info: {
|
|
57
|
+
records: sorted.length,
|
|
58
|
+
pageTotal: Math.ceil(sorted.length / +(config.pagination.length || 0)),
|
|
59
|
+
},
|
|
60
|
+
};
|
|
61
|
+
}), shareReplay(1));
|
|
62
|
+
this._currentPage$ = new BehaviorSubject(0);
|
|
63
|
+
this.currentPage$ = combineLatest([this._currentPage$, this.table$]).pipe(map(([page, table]) => {
|
|
64
|
+
// determine last page
|
|
65
|
+
const lastPage = Math.ceil(table.info.records / (table.config?.pagination?.length || table.info.records)) - 1;
|
|
66
|
+
// determine max/min position
|
|
67
|
+
return +page < 0 ? 0 : +page > lastPage ? lastPage : +page;
|
|
68
|
+
}), shareReplay(1));
|
|
69
|
+
this.colspan$ = this.tableConfig$.pipe(switchMap((config) => config.columns
|
|
70
|
+
? of(Object.values(config.columns || config.rows || {}).filter((value) => value.hidden !== true).length)
|
|
71
|
+
: this.data$.pipe(map((data) => data.length + 1))));
|
|
72
|
+
this.columnOrder = (a, b) => {
|
|
73
|
+
return (a.value.order || 0) - (b.value.order || 0);
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
set loading(value) {
|
|
77
|
+
this._loading$.next(value);
|
|
78
|
+
}
|
|
79
|
+
set page(value) {
|
|
80
|
+
this._currentPage$.next(value);
|
|
81
|
+
}
|
|
82
|
+
set search(value) {
|
|
83
|
+
this._searchBy$.next(value);
|
|
84
|
+
}
|
|
85
|
+
set config(value) {
|
|
86
|
+
this._tableConfig$.next(value);
|
|
87
|
+
}
|
|
88
|
+
set data(value) {
|
|
89
|
+
this._data$.next(value);
|
|
90
|
+
}
|
|
91
|
+
get loading$() {
|
|
92
|
+
return this._loading$.pipe(startWith(false), map((value) => (isObservable(value) ? value : of(value))), switchMap((obs) => obs), shareReplay(1));
|
|
93
|
+
}
|
|
94
|
+
sort(property) {
|
|
95
|
+
const newSortOrder = this._sortBy?.sortBy !== property || this._sortBy?.sortByOrder === Order.DESC || !this._sortBy.sortByOrder
|
|
96
|
+
? Order.ASC
|
|
97
|
+
: Order.DESC;
|
|
98
|
+
const newSortBy = {
|
|
99
|
+
sortBy: property,
|
|
100
|
+
sortByOrder: newSortOrder,
|
|
101
|
+
};
|
|
102
|
+
this.sortBy$.next(newSortBy);
|
|
103
|
+
this._sortBy = newSortBy;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
CoreComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: CoreComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
107
|
+
CoreComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: CoreComponent, selector: "angular-generic-table", inputs: { loading: "loading", page: "page", search: "search", config: "config", data: "data" }, ngImport: i0, template: "<table [ngClass]=\"(tableConfig$ | async)?.class || 'table'\" [class.table-mobile]=\"(tableConfig$ | async)?.mobileLayout\">\n <thead>\n <tr *ngIf=\"{\n config:(tableConfig$ | async)!,\n loading: loading$ | async\n } as table\">\n <ng-container *ngFor=\"let column of table?.config?.columns | keyvalue: columnOrder\">\n <th\n *ngIf=\"!column.value?.hidden\"\n ngClass=\"{{ column.value?.sortable ? 'sort ' : '' }} {{ sortBy$ | async | sortClass: column.key }} {{\n (column.key | dashCase) + '-column'\n }} {{column.value.class}}\"\n [class.disabled]=\"table.loading\"\n (click)=\"table.loading || !column.value?.sortable || sort(column.key)\"\n >\n <span *ngIf=\"column.value?.header !== false\">{{ column.value?.header || column.key | capitalCase }}</span>\n </th>\n </ng-container>\n <ng-container *ngIf=\"((table?.config?.rows | keyvalue: columnOrder)||[])[0] as headerRow\">\n <th class=\"row-header\"\n ngClass=\"{{ headerRow.value?.sortable ? 'sort ' : '' }} {{ sortBy$ | async | sortClass: headerRow.key }} {{\n (headerRow.key | dashCase) + '-column'\n }}\"\n (click)=\"table.loading || !headerRow.value?.sortable || sort(headerRow.key)\">\n <ng-container *ngIf=\"headerRow?.value?.header !== false\">{{headerRow?.value?.header || headerRow.key | capitalCase }}</ng-container>\n </th>\n <th *ngFor=\"let column of ((table$ | async)?.data || [])[0]\" ngClass=\"{{headerRow.value?.class}}\">\n <ng-container [ngTemplateOutlet]=\"(table.config?.rows || {})[headerRow.key].templateRef ? templateRef : (table.config?.rows || {})[headerRow.key].transform ? transformData:\n rawData\" [ngTemplateOutletContext]=\"{row: column, column: headerRow, transform: (table.config?.rows || {})[headerRow.key].transform, templateRef: (table.config?.rows || {})[headerRow.key].templateRef, index: 0}\">\n </ng-container>\n </th>\n </ng-container>\n </tr>\n </thead>\n <tbody *ngIf=\"loading$ | async; else tableContent\">\n <tr>\n <td class=\"p-0\" [colSpan]=\"colspan$ | async\">\n <ng-content select=\".table-loading\"></ng-content>\n </td>\n </tr>\n </tbody>\n</table>\n<ng-template #tableContent>\n <ng-container\n *ngIf=\"(table$ | async)! as table\"\n >\n <tbody *ngIf=\"(table!.data![0] || table!.data!).length > 0; else noData\">\n <ng-container *ngIf=\"table.config.columns\">\n <tr *ngFor=\"let row of table!.data![(currentPage$ | async) || 0]; let i = index\" [attr.id]=\"'tableRow_' + i\">\n <ng-container *ngFor=\"let column of table.config?.columns | keyvalue: columnOrder\">\n <td *ngIf=\"!column.value?.hidden\" ngClass=\"{{(column.key | dashCase) + '-column'}} {{column.value?.class}}\">\n <span *ngIf=\"column.value?.mobileHeader && table.config?.mobileLayout\" class=\"mobile-header\">{{ column.value?.mobileHeader !== true ? column.value?.mobileHeader : column.value?.header || column.key | capitalCase }}</span>\n <ng-container [ngTemplateOutlet]=\"(searchBy$ | async) && !(table.config?.columns || {})[column.key].templateRef ? highlighted:\n (table.config?.columns || {})[column.key].templateRef ? templateRef : (table.config?.columns || {})[column.key].transform ? transformData:\n rawData\" [ngTemplateOutletContext]=\"{row: row, column: column, search: (searchBy$ | async), transform: (table.config?.columns || {})[column.key].transform, templateRef: (table.config?.columns || {})[column.key].templateRef, index: i}\"></ng-container></td>\n </ng-container>\n </tr>\n </ng-container>\n <ng-container *ngIf=\"table.config.rows\">\n <ng-container *ngFor=\"let row of table?.config?.rows | keyvalue: columnOrder | slice:1; let i = index\">\n <tr *ngIf=\"!row.value?.hidden\" [attr.id]=\"'tableRow_' + i\" ngClass=\"{{(row.key | dashCase) + '-row'}}\">\n <th class=\"row-header\">\n <span *ngIf=\"row.value.mobileHeader\" class=\"mobile-header\">{{ row.value?.mobileHeader !== true ? row.value?.mobileHeader : row.value?.header || row.key | capitalCase }}</span>\n {{row.value?.header || row.key | capitalCase}}\n </th>\n <td *ngFor=\"let column of (table?.data || [])[0]\" ngClass=\"{{row.value?.class}}\">\n <ng-container [ngTemplateOutlet]=\"(table.config?.rows || {})[row.key].templateRef ? templateRef : (table.config?.rows || {})[row.key].transform ? transformData:\n rawData\" [ngTemplateOutletContext]=\"{row: column, column: row, transform: (table.config?.rows || {})[row.key].transform, templateRef: (table.config?.rows || {})[row.key].templateRef, index: i}\">\n </ng-container>\n </td>\n </tr>\n </ng-container>\n </ng-container>\n </tbody>\n </ng-container>\n</ng-template>\n<ng-template #noData>\n <tbody>\n <tr>\n <td class=\"p-0\" [colSpan]=\"colspan$ | async\">\n <ng-content select=\".table-no-data\"></ng-content>\n </td>\n </tr>\n </tbody>\n</ng-template>\n<ng-template #highlighted let-row=\"row\" let-column=\"column\" let-search=\"search\">\n <div [innerHTML]=\"(row[column.key] | highlight: search)\"></div>\n</ng-template>\n<ng-template #rawData let-row=\"row\" let-column=\"column\">\n {{row[column.key]}}\n</ng-template>\n<ng-template #transformData let-row=\"row\" let-column=\"column\" let-transform=\"transform\">\n {{row[column.key] | dynamicPipe:transform.pipe:transform?.args}}\n</ng-template>\n<ng-template #templateRef let-row=\"row\" let-column=\"column\" let-index=\"index\" let-templateRef=\"templateRef\">\n <ng-container [ngTemplateOutlet]=\"templateRef\" [ngTemplateOutletContext]=\"{row: row, col: column, index: index}\"></ng-container>\n</ng-template>\n", directives: [{ type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], pipes: { "async": i1.AsyncPipe, "keyvalue": i1.KeyValuePipe, "sortClass": i2.SortClassPipe, "dashCase": i3.DashCasePipe, "capitalCase": i4.CapitalCasePipe, "slice": i1.SlicePipe, "highlight": i5.HighlightPipe, "dynamicPipe": i6.DynamicPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
108
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: CoreComponent, decorators: [{
|
|
109
|
+
type: Component,
|
|
110
|
+
args: [{ selector: 'angular-generic-table', styles: [], changeDetection: ChangeDetectionStrategy.OnPush, template: "<table [ngClass]=\"(tableConfig$ | async)?.class || 'table'\" [class.table-mobile]=\"(tableConfig$ | async)?.mobileLayout\">\n <thead>\n <tr *ngIf=\"{\n config:(tableConfig$ | async)!,\n loading: loading$ | async\n } as table\">\n <ng-container *ngFor=\"let column of table?.config?.columns | keyvalue: columnOrder\">\n <th\n *ngIf=\"!column.value?.hidden\"\n ngClass=\"{{ column.value?.sortable ? 'sort ' : '' }} {{ sortBy$ | async | sortClass: column.key }} {{\n (column.key | dashCase) + '-column'\n }} {{column.value.class}}\"\n [class.disabled]=\"table.loading\"\n (click)=\"table.loading || !column.value?.sortable || sort(column.key)\"\n >\n <span *ngIf=\"column.value?.header !== false\">{{ column.value?.header || column.key | capitalCase }}</span>\n </th>\n </ng-container>\n <ng-container *ngIf=\"((table?.config?.rows | keyvalue: columnOrder)||[])[0] as headerRow\">\n <th class=\"row-header\"\n ngClass=\"{{ headerRow.value?.sortable ? 'sort ' : '' }} {{ sortBy$ | async | sortClass: headerRow.key }} {{\n (headerRow.key | dashCase) + '-column'\n }}\"\n (click)=\"table.loading || !headerRow.value?.sortable || sort(headerRow.key)\">\n <ng-container *ngIf=\"headerRow?.value?.header !== false\">{{headerRow?.value?.header || headerRow.key | capitalCase }}</ng-container>\n </th>\n <th *ngFor=\"let column of ((table$ | async)?.data || [])[0]\" ngClass=\"{{headerRow.value?.class}}\">\n <ng-container [ngTemplateOutlet]=\"(table.config?.rows || {})[headerRow.key].templateRef ? templateRef : (table.config?.rows || {})[headerRow.key].transform ? transformData:\n rawData\" [ngTemplateOutletContext]=\"{row: column, column: headerRow, transform: (table.config?.rows || {})[headerRow.key].transform, templateRef: (table.config?.rows || {})[headerRow.key].templateRef, index: 0}\">\n </ng-container>\n </th>\n </ng-container>\n </tr>\n </thead>\n <tbody *ngIf=\"loading$ | async; else tableContent\">\n <tr>\n <td class=\"p-0\" [colSpan]=\"colspan$ | async\">\n <ng-content select=\".table-loading\"></ng-content>\n </td>\n </tr>\n </tbody>\n</table>\n<ng-template #tableContent>\n <ng-container\n *ngIf=\"(table$ | async)! as table\"\n >\n <tbody *ngIf=\"(table!.data![0] || table!.data!).length > 0; else noData\">\n <ng-container *ngIf=\"table.config.columns\">\n <tr *ngFor=\"let row of table!.data![(currentPage$ | async) || 0]; let i = index\" [attr.id]=\"'tableRow_' + i\">\n <ng-container *ngFor=\"let column of table.config?.columns | keyvalue: columnOrder\">\n <td *ngIf=\"!column.value?.hidden\" ngClass=\"{{(column.key | dashCase) + '-column'}} {{column.value?.class}}\">\n <span *ngIf=\"column.value?.mobileHeader && table.config?.mobileLayout\" class=\"mobile-header\">{{ column.value?.mobileHeader !== true ? column.value?.mobileHeader : column.value?.header || column.key | capitalCase }}</span>\n <ng-container [ngTemplateOutlet]=\"(searchBy$ | async) && !(table.config?.columns || {})[column.key].templateRef ? highlighted:\n (table.config?.columns || {})[column.key].templateRef ? templateRef : (table.config?.columns || {})[column.key].transform ? transformData:\n rawData\" [ngTemplateOutletContext]=\"{row: row, column: column, search: (searchBy$ | async), transform: (table.config?.columns || {})[column.key].transform, templateRef: (table.config?.columns || {})[column.key].templateRef, index: i}\"></ng-container></td>\n </ng-container>\n </tr>\n </ng-container>\n <ng-container *ngIf=\"table.config.rows\">\n <ng-container *ngFor=\"let row of table?.config?.rows | keyvalue: columnOrder | slice:1; let i = index\">\n <tr *ngIf=\"!row.value?.hidden\" [attr.id]=\"'tableRow_' + i\" ngClass=\"{{(row.key | dashCase) + '-row'}}\">\n <th class=\"row-header\">\n <span *ngIf=\"row.value.mobileHeader\" class=\"mobile-header\">{{ row.value?.mobileHeader !== true ? row.value?.mobileHeader : row.value?.header || row.key | capitalCase }}</span>\n {{row.value?.header || row.key | capitalCase}}\n </th>\n <td *ngFor=\"let column of (table?.data || [])[0]\" ngClass=\"{{row.value?.class}}\">\n <ng-container [ngTemplateOutlet]=\"(table.config?.rows || {})[row.key].templateRef ? templateRef : (table.config?.rows || {})[row.key].transform ? transformData:\n rawData\" [ngTemplateOutletContext]=\"{row: column, column: row, transform: (table.config?.rows || {})[row.key].transform, templateRef: (table.config?.rows || {})[row.key].templateRef, index: i}\">\n </ng-container>\n </td>\n </tr>\n </ng-container>\n </ng-container>\n </tbody>\n </ng-container>\n</ng-template>\n<ng-template #noData>\n <tbody>\n <tr>\n <td class=\"p-0\" [colSpan]=\"colspan$ | async\">\n <ng-content select=\".table-no-data\"></ng-content>\n </td>\n </tr>\n </tbody>\n</ng-template>\n<ng-template #highlighted let-row=\"row\" let-column=\"column\" let-search=\"search\">\n <div [innerHTML]=\"(row[column.key] | highlight: search)\"></div>\n</ng-template>\n<ng-template #rawData let-row=\"row\" let-column=\"column\">\n {{row[column.key]}}\n</ng-template>\n<ng-template #transformData let-row=\"row\" let-column=\"column\" let-transform=\"transform\">\n {{row[column.key] | dynamicPipe:transform.pipe:transform?.args}}\n</ng-template>\n<ng-template #templateRef let-row=\"row\" let-column=\"column\" let-index=\"index\" let-templateRef=\"templateRef\">\n <ng-container [ngTemplateOutlet]=\"templateRef\" [ngTemplateOutletContext]=\"{row: row, col: column, index: index}\"></ng-container>\n</ng-template>\n" }]
|
|
111
|
+
}], propDecorators: { loading: [{
|
|
112
|
+
type: Input
|
|
113
|
+
}], page: [{
|
|
114
|
+
type: Input
|
|
115
|
+
}], search: [{
|
|
116
|
+
type: Input
|
|
117
|
+
}], config: [{
|
|
118
|
+
type: Input
|
|
119
|
+
}], data: [{
|
|
120
|
+
type: Input
|
|
121
|
+
}] } });
|
|
122
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvY29yZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvY29yZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRSxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFjLEVBQUUsRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBR25ILE9BQU8sRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEYsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7Ozs7O0FBV3RELE1BQU0sT0FBTyxhQUFhO0lBTjFCO1FBdUNVLGNBQVMsR0FBaUQsSUFBSSxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdkYsWUFBTyxHQUF1QixJQUFJLE9BQU8sRUFBRSxDQUFDO1FBSTVDLHlDQUF5QztRQUNqQyxlQUFVLEdBQXNELElBQUksYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzdGLGNBQVMsR0FBOEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQ3pELFNBQVMsQ0FBQyxFQUFFLENBQUMsRUFDYixHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxL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SUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLFdBQVcsS0FBSyxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXO1lBQ3hHLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRztZQUNYLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO1FBQ2pCLE1BQU0sU0FBUyxHQUFHO1lBQ2hCLE1BQU0sRUFBRSxRQUFRO1lBQ2hCLFdBQVcsRUFBRSxZQUFZO1NBQzFCLENBQUM7UUFDRixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM3QixJQUFJLENBQUMsT0FBTyxHQUFHLFNBQVMsQ0FBQztJQUMzQixDQUFDOzswR0F2SVUsYUFBYTs4RkFBYixhQUFhLDZKQ2xCMUIsdTBMQWlHQTsyRkQvRWEsYUFBYTtrQkFOekIsU0FBUzsrQkFDRSx1QkFBdUIsVUFFekIsRUFBRSxtQkFDTyx1QkFBdUIsQ0FBQyxNQUFNOzhCQUdsQyxPQUFPO3NCQUFuQixLQUFLO2dCQUlGLElBQUk7c0JBRFAsS0FBSztnQkFNRixNQUFNO3NCQURULEtBQUs7Z0JBTUYsTUFBTTtzQkFEVCxLQUFLO2dCQU1GLElBQUk7c0JBRFAsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIEVNUFRZLCBpc09ic2VydmFibGUsIE9ic2VydmFibGUsIG9mLCBSZXBsYXlTdWJqZWN0LCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBUYWJsZUNvbmZpZyB9IGZyb20gJy4vbW9kZWxzL3RhYmxlLWNvbmZpZy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgS2V5VmFsdWUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgbWFwLCBzaGFyZVJlcGxheSwgc3RhcnRXaXRoLCBzd2l0Y2hNYXAsIHdpdGhMYXRlc3RGcm9tIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgVGFibGVDb2x1bW4gfSBmcm9tICcuL21vZGVscy90YWJsZS1jb2x1bW4uaW50ZXJmYWNlJztcbmltcG9ydCB7IE9yZGVyIH0gZnJvbSAnLi9lbnVtcy9vcmRlci5lbnVtJztcbmltcG9ydCB7IGNodW5rLCBzZWFyY2ggfSBmcm9tICcuL3V0aWxpdGllcy91dGlsaXRpZXMnO1xuaW1wb3J0IHsgVGFibGVSb3cgfSBmcm9tICcuL21vZGVscy90YWJsZS1yb3cuaW50ZXJmYWNlJztcbmltcG9ydCB7IFRhYmxlU29ydCB9IGZyb20gJy4vbW9kZWxzL3RhYmxlLXNvcnQuaW50ZXJmYWNlJztcbmltcG9ydCB7IFRhYmxlTWV0YSB9IGZyb20gJy4vbW9kZWxzL3RhYmxlLW1ldGEuaW50ZXJmYWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYW5ndWxhci1nZW5lcmljLXRhYmxlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvcmUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZXM6IFtdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQ29yZUNvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHNldCBsb2FkaW5nKHZhbHVlOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHwgYm9vbGVhbikge1xuICAgIHRoaXMuX2xvYWRpbmckLm5leHQodmFsdWUpO1xuICB9XG4gIEBJbnB1dCgpXG4gIHNldCBwYWdlKHZhbHVlOiBudW1iZXIpIHtcbiAgICB0aGlzLl9jdXJyZW50UGFnZSQubmV4dCh2YWx1ZSk7XG4gIH1cblxuICBASW5wdXQoKVxuICBzZXQgc2VhcmNoKHZhbHVlOiBPYnNlcnZhYmxlPHN0cmluZz4gfCBzdHJpbmcgfCBudWxsKSB7XG4gICAgdGhpcy5fc2VhcmNoQnkkLm5leHQodmFsdWUpO1xuICB9XG5cbiAgQElucHV0KClcbiAgc2V0IGNvbmZpZyh2YWx1ZTogT2JzZXJ2YWJsZTxUYWJsZUNvbmZpZz4gfCBUYWJsZUNvbmZpZykge1xuICAgIHRoaXMuX3RhYmxlQ29uZmlnJC5uZXh0KHZhbHVlKTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHNldCBkYXRhKHZhbHVlOiBPYnNlcnZhYmxlPEFycmF5PFRhYmxlUm93Pj4gfCBBcnJheTxUYWJsZVJvdz4pIHtcbiAgICB0aGlzLl9kYXRhJC5uZXh0KHZhbHVlKTtcbiAgfVxuXG4gIGdldCBsb2FkaW5nJCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5fbG9hZGluZyQucGlwZShcbiAgICAgIHN0YXJ0V2l0aChmYWxzZSksXG4gICAgICBtYXAoKHZhbHVlKSA9PiAoaXNPYnNlcnZhYmxlKHZhbHVlKSA/IHZhbHVlIDogb2YodmFsdWUpKSksXG4gICAgICBzd2l0Y2hNYXAoKG9icykgPT4gb2JzKSxcbiAgICAgIHNoYXJlUmVwbGF5KDEpXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgX2xvYWRpbmckOiBSZXBsYXlTdWJqZWN0PE9ic2VydmFibGU8Ym9vbGVhbj4gfCBib29sZWFuPiA9IG5ldyBSZXBsYXlTdWJqZWN0KDEpO1xuICBzb3J0QnkkOiBTdWJqZWN0PFRhYmxlU29ydD4gPSBuZXcgU3ViamVjdCgpO1xuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6dmFyaWFibGUtbmFtZVxuICBwcml2YXRlIF9zb3J0Qnk6IFRhYmxlU29ydCB8IHVuZGVmaW5lZDtcblxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6dmFyaWFibGUtbmFtZVxuICBwcml2YXRlIF9zZWFyY2hCeSQ6IFJlcGxheVN1YmplY3Q8T2JzZXJ2YWJsZTxzdHJpbmc+IHwgc3RyaW5nIHwgbnVsbD4gPSBuZXcgUmVwbGF5U3ViamVjdCgxKTtcbiAgc2VhcmNoQnkkOiBPYnNlcnZhYmxlPHN0cmluZyB8IG51bGw+ID0gdGhpcy5fc2VhcmNoQnkkLnBpcGUoXG4gICAgc3RhcnRXaXRoKCcnKSxcbiAgICBtYXAoKHZhbHVlKSA9PiAoaXNPYnNlcnZhYmxlKHZhbHVlKSA/IHZhbHVlIDogb2YodmFsdWUpKSksXG4gICAgc3dpdGNoTWFwKChvYnMpID0+IG9icyksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6dmFyaWFibGUtbmFtZVxuICBwcml2YXRlIF90YWJsZUNvbmZpZyQ6IFJlcGxheVN1YmplY3Q8VGFibGVDb25maWcgfCBPYnNlcnZhYmxlPFRhYmxlQ29uZmlnPj4gPSBuZXcgUmVwbGF5U3ViamVjdCgxKTtcbiAgdGFibGVDb25maWckOiBPYnNlcnZhYmxlPFRhYmxlQ29uZmlnPiA9IHRoaXMuX3RhYmxlQ29uZmlnJC5waXBlKFxuICAgIG1hcCgodmFsdWUpID0+IChpc09ic2VydmFibGUodmFsdWUpID8gdmFsdWUgOiBvZih2YWx1ZSkpKSxcbiAgICBzd2l0Y2hNYXAoKG9icykgPT4gb2JzKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTp2YXJpYWJsZS1uYW1lXG4gIHByaXZhdGUgX2RhdGEkOiBSZXBsYXlTdWJqZWN0PEFycmF5PFRhYmxlUm93PiB8IE9ic2VydmFibGU8QXJyYXk8VGFibGVSb3c+Pj4gPSBuZXcgUmVwbGF5U3ViamVjdCgxKTtcbiAgZGF0YSQ6IE9ic2VydmFibGU8QXJyYXk8VGFibGVSb3c+PiA9IHRoaXMuX2RhdGEkLnBpcGUoXG4gICAgbWFwKCh2YWx1ZSkgPT4gKGlzT2JzZXJ2YWJsZSh2YWx1ZSkgPyB2YWx1ZSA6IG9mKHZhbHVlKSkpLFxuICAgIHN3aXRjaE1hcCgob2JzKSA9PiBjb21iaW5lTGF0ZXN0KFtvYnMsIHRoaXMuc29ydEJ5JC5waXBlKHN0YXJ0V2l0aChFTVBUWSkpLCB0aGlzLnNlYXJjaEJ5JF0pKSxcbiAgICB3aXRoTGF0ZXN0RnJvbSh0aGlzLnRhYmxlQ29uZmlnJCksXG4gICAgbWFwKChbW2RhdGEsIHNvcnRCeSwgc2VhcmNoQnldLCBjb25maWddKSA9PiB7XG4gICAgICAvLyBjcmVhdGUgYSBuZXcgYXJyYXkgcmVmZXJlbmNlIGFuZCBzb3J0IG5ldyBhcnJheSAocHJldmVudCBtdXRhdGluZyBleGlzdGluZyBzdGF0ZSlcbiAgICAgIGRhdGEgPSBbLi4uZGF0YV07XG4gICAgICByZXR1cm4gIXNvcnRCeVxuICAgICAgICA/IHNlYXJjaEJ5XG4gICAgICAgICAgPyBzZWFyY2goc2VhcmNoQnksIGZhbHNlLCBkYXRhLCBjb25maWcpXG4gICAgICAgICAgOiBkYXRhXG4gICAgICAgIDogKHNlYXJjaEJ5ID8gc2VhcmNoKHNlYXJjaEJ5LCBmYWxzZSwgZGF0YSwgY29uZmlnKSA6IGRhdGEpPy5zb3J0KChhLCBiKSA9PiB7XG4gICAgICAgICAgICAvLyBUT0RPOiBpbXByb3ZlIGxvZ2ljXG4gICAgICAgICAgICBjb25zdCB0eXBlZCA9IHNvcnRCeSBhcyBUYWJsZVNvcnQ7XG4gICAgICAgICAgICByZXR1cm4gYVt0eXBlZC5zb3J0QnldID4gYlt0eXBlZC5zb3J0QnldXG4gICAgICAgICAgICAgID8gdHlwZWQuc29ydEJ5T3JkZXIgPT09IE9yZGVyLkFTQ1xuICAgICAgICAgICAgICAgID8gMVxuICAgICAgICAgICAgICAgIDogLTFcbiAgICAgICAgICAgICAgOiBiW3R5cGVkLnNvcnRCeV0gPiBhW3R5cGVkLnNvcnRCeV1cbiAgICAgICAgICAgICAgPyB0eXBlZC5zb3J0QnlPcmRlciA9PT0gT3JkZXIuQVNDXG4gICAgICAgICAgICAgICAgPyAtMVxuICAgICAgICAgICAgICAgIDogMVxuICAgICAgICAgICAgICA6IDA7XG4gICAgICAgICAgfSk7XG4gICAgfSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICB0YWJsZSQ6IE9ic2VydmFibGU8VGFibGVNZXRhPiA9IGNvbWJpbmVMYXRlc3QoW3RoaXMuZGF0YSQsIHRoaXMudGFibGVDb25maWckXSkucGlwZShcbiAgICBtYXAoKFtzb3J0ZWQsIGNvbmZpZ10pID0+IHtcbiAgICAgIC8vIGlmIHBhZ2luYXRpb24gaXMgZGlzYWJsZWQuLi5cbiAgICAgIGlmICghY29uZmlnLnBhZ2luYXRpb24gfHwgY29uZmlnLnBhZ2luYXRpb24ubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIC8vIC4uLnJldHVybiB1bmFsdGVyZWQgYXJyYXlcbiAgICAgICAgcmV0dXJuIHsgZGF0YTogW3NvcnRlZF0sIGNvbmZpZywgaW5mbzogeyByZWNvcmRzOiBzb3J0ZWQubGVuZ3RoLCBwYWdlVG90YWw6IDEgfSB9O1xuICAgICAgfVxuICAgICAgLy8gcmV0dXJuIHJlY29yZCBzZXRcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGRhdGE6IGNodW5rKHNvcnRlZCwgKyhjb25maWcucGFnaW5hdGlvbi5sZW5ndGggfHwgMCkpLFxuICAgICAgICBjb25maWcsXG4gICAgICAgIGluZm86IHtcbiAgICAgICAgICByZWNvcmRzOiBzb3J0ZWQubGVuZ3RoLFxuICAgICAgICAgIHBhZ2VUb3RhbDogTWF0aC5jZWlsKHNvcnRlZC5sZW5ndGggLyArKGNvbmZpZy5wYWdpbmF0aW9uLmxlbmd0aCB8fCAwKSksXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIH0pLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcHJpdmF0ZSBfY3VycmVudFBhZ2UkOiBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPiA9IG5ldyBCZWhhdmlvclN1YmplY3QoMCk7XG4gIGN1cnJlbnRQYWdlJCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMuX2N1cnJlbnRQYWdlJCwgdGhpcy50YWJsZSRdKS5waXBlKFxuICAgIG1hcCgoW3BhZ2UsIHRhYmxlXTogYW55KSA9PiB7XG4gICAgICAvLyBkZXRlcm1pbmUgbGFzdCBwYWdlXG4gICAgICBjb25zdCBsYXN0UGFnZSA9IE1hdGguY2VpbCh0YWJsZS5pbmZvLnJlY29yZHMgLyAodGFibGUuY29uZmlnPy5wYWdpbmF0aW9uPy5sZW5ndGggfHwgdGFibGUuaW5mby5yZWNvcmRzKSkgLSAxO1xuICAgICAgLy8gZGV0ZXJtaW5lIG1heC9taW4gcG9zaXRpb25cbiAgICAgIHJldHVybiArcGFnZSA8IDAgPyAwIDogK3BhZ2UgPiBsYXN0UGFnZSA/IGxhc3RQYWdlIDogK3BhZ2U7XG4gICAgfSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICBjb2xzcGFuJCA9IHRoaXMudGFibGVDb25maWckLnBpcGUoXG4gICAgc3dpdGNoTWFwKChjb25maWcpID0+XG4gICAgICBjb25maWcuY29sdW1uc1xuICAgICAgICA/IG9mKE9iamVjdC52YWx1ZXMoY29uZmlnLmNvbHVtbnMgfHwgY29uZmlnLnJvd3MgfHwge30pLmZpbHRlcigodmFsdWUpID0+IHZhbHVlLmhpZGRlbiAhPT0gdHJ1ZSkubGVuZ3RoKVxuICAgICAgICA6IHRoaXMuZGF0YSQucGlwZShtYXAoKGRhdGEpID0+IGRhdGEubGVuZ3RoICsgMSkpXG4gICAgKVxuICApO1xuXG4gIHNvcnQocHJvcGVydHk6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IG5ld1NvcnRPcmRlciA9XG4gICAgICB0aGlzLl9zb3J0Qnk/LnNvcnRCeSAhPT0gcHJvcGVydHkgfHwgdGhpcy5fc29ydEJ5Py5zb3J0QnlPcmRlciA9PT0gT3JkZXIuREVTQyB8fCAhdGhpcy5fc29ydEJ5LnNvcnRCeU9yZGVyXG4gICAgICAgID8gT3JkZXIuQVNDXG4gICAgICAgIDogT3JkZXIuREVTQztcbiAgICBjb25zdCBuZXdTb3J0QnkgPSB7XG4gICAgICBzb3J0Qnk6IHByb3BlcnR5LFxuICAgICAgc29ydEJ5T3JkZXI6IG5ld1NvcnRPcmRlcixcbiAgICB9O1xuICAgIHRoaXMuc29ydEJ5JC5uZXh0KG5ld1NvcnRCeSk7XG4gICAgdGhpcy5fc29ydEJ5ID0gbmV3U29ydEJ5O1xuICB9XG5cbiAgY29sdW1uT3JkZXIgPSAoYTogS2V5VmFsdWU8c3RyaW5nLCBUYWJsZUNvbHVtbj4sIGI6IEtleVZhbHVlPHN0cmluZywgVGFibGVDb2x1bW4+KTogbnVtYmVyID0+IHtcbiAgICByZXR1cm4gKGEudmFsdWUub3JkZXIgfHwgMCkgLSAoYi52YWx1ZS5vcmRlciB8fCAwKTtcbiAgfTtcbn1cbiIsIjx0YWJsZSBbbmdDbGFzc109XCIodGFibGVDb25maWckIHwgYXN5bmMpPy5jbGFzcyB8fCAndGFibGUnXCIgW2NsYXNzLnRhYmxlLW1vYmlsZV09XCIodGFibGVDb25maWckIHwgYXN5bmMpPy5tb2JpbGVMYXlvdXRcIj5cbiAgPHRoZWFkPlxuICAgIDx0ciAqbmdJZj1cIntcbiAgICBjb25maWc6KHRhYmxlQ29uZmlnJCB8IGFzeW5jKSEsXG4gICAgbG9hZGluZzogbG9hZGluZyQgfCBhc3luY1xuICAgIH0gYXMgdGFibGVcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNvbHVtbiBvZiB0YWJsZT8uY29uZmlnPy5jb2x1bW5zIHwga2V5dmFsdWU6IGNvbHVtbk9yZGVyXCI+XG4gICAgICAgIDx0aFxuICAgICAgICAgICpuZ0lmPVwiIWNvbHVtbi52YWx1ZT8uaGlkZGVuXCJcbiAgICAgICAgICBuZ0NsYXNzPVwie3sgY29sdW1uLnZhbHVlPy5zb3J0YWJsZSA/ICdzb3J0ICcgOiAnJyB9fSB7eyBzb3J0QnkkIHwgYXN5bmMgfCBzb3J0Q2xhc3M6IGNvbHVtbi5rZXkgfX0ge3tcbiAgICAgICAgICAgIChjb2x1bW4ua2V5IHwgZGFzaENhc2UpICsgJy1jb2x1bW4nXG4gICAgICAgICAgfX0ge3tjb2x1bW4udmFsdWUuY2xhc3N9fVwiXG4gICAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cInRhYmxlLmxvYWRpbmdcIlxuICAgICAgICAgIChjbGljayk9XCJ0YWJsZS5sb2FkaW5nIHx8ICFjb2x1bW4udmFsdWU/LnNvcnRhYmxlIHx8IHNvcnQoY29sdW1uLmtleSlcIlxuICAgICAgICA+XG4gICAgICAgICAgPHNwYW4gKm5nSWY9XCJjb2x1bW4udmFsdWU/LmhlYWRlciAhPT0gZmFsc2VcIj57eyBjb2x1bW4udmFsdWU/LmhlYWRlciB8fCBjb2x1bW4ua2V5IHwgY2FwaXRhbENhc2UgfX08L3NwYW4+XG4gICAgICAgIDwvdGg+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIoKHRhYmxlPy5jb25maWc/LnJvd3MgfCBrZXl2YWx1ZTogY29sdW1uT3JkZXIpfHxbXSlbMF0gYXMgaGVhZGVyUm93XCI+XG4gICAgICAgIDx0aCBjbGFzcz1cInJvdy1oZWFkZXJcIlxuICAgICAgICAgICAgbmdDbGFzcz1cInt7IGhlYWRlclJvdy52YWx1ZT8uc29ydGFibGUgPyAnc29ydCAnIDogJycgfX0ge3sgc29ydEJ5JCB8IGFzeW5jIHwgc29ydENsYXNzOiBoZWFkZXJSb3cua2V5IH19IHt7XG4gICAgICAgICAgICAoaGVhZGVyUm93LmtleSB8IGRhc2hDYXNlKSArICctY29sdW1uJ1xuICAgICAgICAgIH19XCJcbiAgICAgICAgICAgIChjbGljayk9XCJ0YWJsZS5sb2FkaW5nIHx8ICFoZWFkZXJSb3cudmFsdWU/LnNvcnRhYmxlIHx8IHNvcnQoaGVhZGVyUm93LmtleSlcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaGVhZGVyUm93Py52YWx1ZT8uaGVhZGVyICE9PSBmYWxzZVwiPnt7aGVhZGVyUm93Py52YWx1ZT8uaGVhZGVyIHx8IGhlYWRlclJvdy5rZXkgfCBjYXBpdGFsQ2FzZSB9fTwvbmctY29udGFpbmVyPlxuICAgICAgICA8L3RoPlxuICAgICAgICA8dGggKm5nRm9yPVwibGV0IGNvbHVtbiBvZiAoKHRhYmxlJCB8IGFzeW5jKT8uZGF0YSB8fCBbXSlbMF1cIiAgbmdDbGFzcz1cInt7aGVhZGVyUm93LnZhbHVlPy5jbGFzc319XCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCIodGFibGUuY29uZmlnPy5yb3dzIHx8IHt9KVtoZWFkZXJSb3cua2V5XS50ZW1wbGF0ZVJlZiA/IHRlbXBsYXRlUmVmIDogKHRhYmxlLmNvbmZpZz8ucm93cyB8fCB7fSlbaGVhZGVyUm93LmtleV0udHJhbnNmb3JtID8gdHJhbnNmb3JtRGF0YTpcbiAgICAgICAgICAgIHJhd0RhdGFcIiBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie3JvdzogY29sdW1uLCBjb2x1bW46IGhlYWRlclJvdywgdHJhbnNmb3JtOiAodGFibGUuY29uZmlnPy5yb3dzIHx8IHt9KVtoZWFkZXJSb3cua2V5XS50cmFuc2Zvcm0sIHRlbXBsYXRlUmVmOiAodGFibGUuY29uZmlnPy5yb3dzIHx8IHt9KVtoZWFkZXJSb3cua2V5XS50ZW1wbGF0ZVJlZiwgaW5kZXg6IDB9XCI+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvdGg+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L3RyPlxuICA8L3RoZWFkPlxuICA8dGJvZHkgKm5nSWY9XCJsb2FkaW5nJCB8IGFzeW5jOyBlbHNlIHRhYmxlQ29udGVudFwiPlxuICAgIDx0cj5cbiAgICAgIDx0ZCBjbGFzcz1cInAtMFwiIFtjb2xTcGFuXT1cImNvbHNwYW4kIHwgYXN5bmNcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiLnRhYmxlLWxvYWRpbmdcIj48L25nLWNvbnRlbnQ+XG4gICAgICA8L3RkPlxuICAgIDwvdHI+XG4gIDwvdGJvZHk+XG48L3RhYmxlPlxuPG5nLXRlbXBsYXRlICN0YWJsZUNvbnRlbnQ+XG4gIDxuZy1jb250YWluZXJcbiAgICAqbmdJZj1cIih0YWJsZSQgfCBhc3luYykhIGFzIHRhYmxlXCJcbiAgPlxuICAgIDx0Ym9keSAqbmdJZj1cIih0YWJsZSEuZGF0YSFbMF0gfHwgdGFibGUhLmRhdGEhKS5sZW5ndGggPiAwOyBlbHNlIG5vRGF0YVwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRhYmxlLmNvbmZpZy5jb2x1bW5zXCI+XG4gICAgICAgIDx0ciAqbmdGb3I9XCJsZXQgcm93IG9mIHRhYmxlIS5kYXRhIVsoY3VycmVudFBhZ2UkIHwgYXN5bmMpIHx8IDBdOyBsZXQgaSA9IGluZGV4XCIgW2F0dHIuaWRdPVwiJ3RhYmxlUm93XycgKyBpXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIHRhYmxlLmNvbmZpZz8uY29sdW1ucyB8IGtleXZhbHVlOiBjb2x1bW5PcmRlclwiPlxuICAgICAgICAgICAgPHRkICpuZ0lmPVwiIWNvbHVtbi52YWx1ZT8uaGlkZGVuXCIgbmdDbGFzcz1cInt7KGNvbHVtbi5rZXkgfCBkYXNoQ2FzZSkgKyAnLWNvbHVtbid9fSB7e2NvbHVtbi52YWx1ZT8uY2xhc3N9fVwiPlxuICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImNvbHVtbi52YWx1ZT8ubW9iaWxlSGVhZGVyICYmIHRhYmxlLmNvbmZpZz8ubW9iaWxlTGF5b3V0XCIgY2xhc3M9XCJtb2JpbGUtaGVhZGVyXCI+e3sgY29sdW1uLnZhbHVlPy5tb2JpbGVIZWFkZXIgIT09IHRydWUgPyBjb2x1bW4udmFsdWU/Lm1vYmlsZUhlYWRlciA6IGNvbHVtbi52YWx1ZT8uaGVhZGVyIHx8IGNvbHVtbi5rZXkgIHwgY2FwaXRhbENhc2UgfX08L3NwYW4+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiKHNlYXJjaEJ5JCB8IGFzeW5jKSAmJiAhKHRhYmxlLmNvbmZpZz8uY29sdW1ucyB8fCB7fSlbY29sdW1uLmtleV0udGVtcGxhdGVSZWYgPyBoaWdobGlnaHRlZDpcbiAgICAgICAgICAgICAgICAodGFibGUuY29uZmlnPy5jb2x1bW5zIHx8IHt9KVtjb2x1bW4ua2V5XS50ZW1wbGF0ZVJlZiA/IHRlbXBsYXRlUmVmIDogKHRhYmxlLmNvbmZpZz8uY29sdW1ucyB8fCB7fSlbY29sdW1uLmtleV0udHJhbnNmb3JtID8gdHJhbnNmb3JtRGF0YTpcbiAgICAgICAgICAgICAgICByYXdEYXRhXCIgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntyb3c6IHJvdywgY29sdW1uOiBjb2x1bW4sIHNlYXJjaDogKHNlYXJjaEJ5JCB8IGFzeW5jKSwgdHJhbnNmb3JtOiAodGFibGUuY29uZmlnPy5jb2x1bW5zIHx8IHt9KVtjb2x1bW4ua2V5XS50cmFuc2Zvcm0sIHRlbXBsYXRlUmVmOiAodGFibGUuY29uZmlnPy5jb2x1bW5zIHx8IHt9KVtjb2x1bW4ua2V5XS50ZW1wbGF0ZVJlZiwgaW5kZXg6IGl9XCI+PC9uZy1jb250YWluZXI+PC90ZD5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC90cj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRhYmxlLmNvbmZpZy5yb3dzXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHJvdyBvZiB0YWJsZT8uY29uZmlnPy5yb3dzIHwga2V5dmFsdWU6IGNvbHVtbk9yZGVyIHwgc2xpY2U6MTsgbGV0IGkgPSBpbmRleFwiPlxuICAgICAgICAgIDx0ciAqbmdJZj1cIiFyb3cudmFsdWU/LmhpZGRlblwiIFthdHRyLmlkXT1cIid0YWJsZVJvd18nICsgaVwiIG5nQ2xhc3M9XCJ7eyhyb3cua2V5IHwgZGFzaENhc2UpICsgJy1yb3cnfX1cIj5cbiAgICAgICAgICAgIDx0aCBjbGFzcz1cInJvdy1oZWFkZXJcIj5cbiAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJyb3cudmFsdWUubW9iaWxlSGVhZGVyXCIgY2xhc3M9XCJtb2JpbGUtaGVhZGVyXCI+e3sgcm93LnZhbHVlPy5tb2JpbGVIZWFkZXIgIT09IHRydWUgPyByb3cudmFsdWU/Lm1vYmlsZUhlYWRlciA6IHJvdy52YWx1ZT8uaGVhZGVyIHx8IHJvdy5rZXkgIHwgY2FwaXRhbENhc2UgfX08L3NwYW4+XG4gICAgICAgICAgICAgIHt7cm93LnZhbHVlPy5oZWFkZXIgfHwgcm93LmtleSB8IGNhcGl0YWxDYXNlfX1cbiAgICAgICAgICAgIDwvdGg+XG4gICAgICAgICAgICA8dGQgKm5nRm9yPVwibGV0IGNvbHVtbiBvZiAodGFibGU/LmRhdGEgfHwgW10pWzBdXCIgbmdDbGFzcz1cInt7cm93LnZhbHVlPy5jbGFzc319XCI+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiKHRhYmxlLmNvbmZpZz8ucm93cyB8fCB7fSlbcm93LmtleV0udGVtcGxhdGVSZWYgPyB0ZW1wbGF0ZVJlZiA6ICh0YWJsZS5jb25maWc/LnJvd3MgfHwge30pW3Jvdy5rZXldLnRyYW5zZm9ybSA/IHRyYW5zZm9ybURhdGE6XG4gICAgICAgICAgICAgIHJhd0RhdGFcIiBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie3JvdzogY29sdW1uLCBjb2x1bW46IHJvdywgdHJhbnNmb3JtOiAodGFibGUuY29uZmlnPy5yb3dzIHx8IHt9KVtyb3cua2V5XS50cmFuc2Zvcm0sIHRlbXBsYXRlUmVmOiAodGFibGUuY29uZmlnPy5yb3dzIHx8IHt9KVtyb3cua2V5XS50ZW1wbGF0ZVJlZiwgaW5kZXg6IGl9XCI+XG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICA8L3RyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvdGJvZHk+XG4gIDwvbmctY29udGFpbmVyPlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjbm9EYXRhPlxuICA8dGJvZHk+XG4gIDx0cj5cbiAgICA8dGQgY2xhc3M9XCJwLTBcIiBbY29sU3Bhbl09XCJjb2xzcGFuJCB8IGFzeW5jXCI+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCIudGFibGUtbm8tZGF0YVwiPjwvbmctY29udGVudD5cbiAgICA8L3RkPlxuICA8L3RyPlxuICA8L3Rib2R5PlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjaGlnaGxpZ2h0ZWQgbGV0LXJvdz1cInJvd1wiIGxldC1jb2x1bW49XCJjb2x1bW5cIiBsZXQtc2VhcmNoPVwic2VhcmNoXCI+XG4gIDxkaXYgW2lubmVySFRNTF09XCIocm93W2NvbHVtbi5rZXldIHwgaGlnaGxpZ2h0OiBzZWFyY2gpXCI+PC9kaXY+XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNyYXdEYXRhIGxldC1yb3c9XCJyb3dcIiBsZXQtY29sdW1uPVwiY29sdW1uXCI+XG4gIHt7cm93W2NvbHVtbi5rZXldfX1cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI3RyYW5zZm9ybURhdGEgbGV0LXJvdz1cInJvd1wiIGxldC1jb2x1bW49XCJjb2x1bW5cIiBsZXQtdHJhbnNmb3JtPVwidHJhbnNmb3JtXCI+XG4gIHt7cm93W2NvbHVtbi5rZXldIHwgZHluYW1pY1BpcGU6dHJhbnNmb3JtLnBpcGU6dHJhbnNmb3JtPy5hcmdzfX1cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI3RlbXBsYXRlUmVmIGxldC1yb3c9XCJyb3dcIiBsZXQtY29sdW1uPVwiY29sdW1uXCIgbGV0LWluZGV4PVwiaW5kZXhcIiBsZXQtdGVtcGxhdGVSZWY9XCJ0ZW1wbGF0ZVJlZlwiPlxuICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRlbXBsYXRlUmVmXCIgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7cm93OiByb3csIGNvbDogY29sdW1uLCBpbmRleDogaW5kZXh9XCI+PC9uZy1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { CoreComponent } from './core.component';
|
|
3
|
+
import { CommonModule } from '@angular/common';
|
|
4
|
+
import { SortClassPipe } from './pipes/sort-class.pipe';
|
|
5
|
+
import { DashCasePipe } from './pipes/dash-case.pipe';
|
|
6
|
+
import { HighlightPipe } from './pipes/highlight.pipe';
|
|
7
|
+
import { CapitalCasePipe } from './pipes/capital-case.pipe';
|
|
8
|
+
import { DynamicPipe } from './pipes/dynamic.pipe';
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
export class GenericTableCoreModule {
|
|
11
|
+
}
|
|
12
|
+
GenericTableCoreModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: GenericTableCoreModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
13
|
+
GenericTableCoreModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: GenericTableCoreModule, declarations: [CoreComponent, SortClassPipe, DashCasePipe, HighlightPipe, CapitalCasePipe, CapitalCasePipe, DynamicPipe], imports: [CommonModule], exports: [CoreComponent] });
|
|
14
|
+
GenericTableCoreModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: GenericTableCoreModule, imports: [[CommonModule]] });
|
|
15
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: GenericTableCoreModule, decorators: [{
|
|
16
|
+
type: NgModule,
|
|
17
|
+
args: [{
|
|
18
|
+
declarations: [CoreComponent, SortClassPipe, DashCasePipe, HighlightPipe, CapitalCasePipe, CapitalCasePipe, DynamicPipe],
|
|
19
|
+
imports: [CommonModule],
|
|
20
|
+
exports: [CoreComponent],
|
|
21
|
+
}]
|
|
22
|
+
}] });
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvY29yZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDakQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7O0FBT25ELE1BQU0sT0FBTyxzQkFBc0I7O21IQUF0QixzQkFBc0I7b0hBQXRCLHNCQUFzQixpQkFKbEIsYUFBYSxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUUsV0FBVyxhQUM3RyxZQUFZLGFBQ1osYUFBYTtvSEFFWixzQkFBc0IsWUFIeEIsQ0FBQyxZQUFZLENBQUM7MkZBR1osc0JBQXNCO2tCQUxsQyxRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLGFBQWEsRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFFLFdBQVcsQ0FBQztvQkFDeEgsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO29CQUN2QixPQUFPLEVBQUUsQ0FBQyxhQUFhLENBQUM7aUJBQ3pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvcmVDb21wb25lbnQgfSBmcm9tICcuL2NvcmUuY29tcG9uZW50JztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBTb3J0Q2xhc3NQaXBlIH0gZnJvbSAnLi9waXBlcy9zb3J0LWNsYXNzLnBpcGUnO1xuaW1wb3J0IHsgRGFzaENhc2VQaXBlIH0gZnJvbSAnLi9waXBlcy9kYXNoLWNhc2UucGlwZSc7XG5pbXBvcnQgeyBIaWdobGlnaHRQaXBlIH0gZnJvbSAnLi9waXBlcy9oaWdobGlnaHQucGlwZSc7XG5pbXBvcnQgeyBDYXBpdGFsQ2FzZVBpcGUgfSBmcm9tICcuL3BpcGVzL2NhcGl0YWwtY2FzZS5waXBlJztcbmltcG9ydCB7IER5bmFtaWNQaXBlIH0gZnJvbSAnLi9waXBlcy9keW5hbWljLnBpcGUnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtDb3JlQ29tcG9uZW50LCBTb3J0Q2xhc3NQaXBlLCBEYXNoQ2FzZVBpcGUsIEhpZ2hsaWdodFBpcGUsIENhcGl0YWxDYXNlUGlwZSwgQ2FwaXRhbENhc2VQaXBlLCBEeW5hbWljUGlwZV0sXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICBleHBvcnRzOiBbQ29yZUNvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIEdlbmVyaWNUYWJsZUNvcmVNb2R1bGUge31cbiJdfQ==
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class CoreService {
|
|
4
|
+
constructor() { }
|
|
5
|
+
}
|
|
6
|
+
CoreService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: CoreService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
7
|
+
CoreService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: CoreService, providedIn: 'root' });
|
|
8
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: CoreService, decorators: [{
|
|
9
|
+
type: Injectable,
|
|
10
|
+
args: [{
|
|
11
|
+
providedIn: 'root'
|
|
12
|
+
}]
|
|
13
|
+
}], ctorParameters: function () { return []; } });
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL2NvcmUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUszQyxNQUFNLE9BQU8sV0FBVztJQUN0QixnQkFBZSxDQUFDOzt3R0FETCxXQUFXOzRHQUFYLFdBQVcsY0FGVixNQUFNOzJGQUVQLFdBQVc7a0JBSHZCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBDb3JlU2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKCkge31cbn1cbiJdfQ==
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export var Order;
|
|
2
|
+
(function (Order) {
|
|
3
|
+
Order["ASC"] = "asc";
|
|
4
|
+
Order["DESC"] = "desc";
|
|
5
|
+
})(Order || (Order = {}));
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXIuZW51bS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi9lbnVtcy9vcmRlci5lbnVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLEtBR1g7QUFIRCxXQUFZLEtBQUs7SUFDZixvQkFBVyxDQUFBO0lBQ1gsc0JBQWEsQ0FBQTtBQUNmLENBQUMsRUFIVyxLQUFLLEtBQUwsS0FBSyxRQUdoQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIE9yZGVyIHtcbiAgQVNDID0gJ2FzYycsXG4gIERFU0MgPSAnZGVzYydcbn1cbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY29sdW1uLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi9tb2RlbHMvdGFibGUtY29sdW1uLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGludGVyZmFjZSBUYWJsZUNvbHVtbiB7XG4gIGhlYWRlcj86IHN0cmluZyB8IGZhbHNlO1xuICBtb2JpbGVIZWFkZXI/OiBzdHJpbmcgfCBib29sZWFuO1xuICBoaWRkZW4/OiBib29sZWFuO1xuICBzb3J0YWJsZT86IGJvb2xlYW47XG4gIG9yZGVyPzogbnVtYmVyO1xuICBzZWFyY2g/OiBib29sZWFuO1xuICB0ZW1wbGF0ZVJlZj86IFRlbXBsYXRlUmVmPGFueT47XG4gIHRyYW5zZm9ybT86IHtcbiAgICBwaXBlOiBhbnk7XG4gICAgYXJncz86IEFycmF5PGFueT47XG4gIH07XG4gIGNsYXNzPzogc3RyaW5nO1xufVxuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY29uZmlnLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi9tb2RlbHMvdGFibGUtY29uZmlnLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGFibGVDb2x1bW4gfSBmcm9tICcuL3RhYmxlLWNvbHVtbi5pbnRlcmZhY2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFRhYmxlQ29uZmlnIHtcbiAgaGlkZGVuPzogYm9vbGVhbjtcbiAgbW9iaWxlTGF5b3V0PzogYm9vbGVhbjtcbiAgY2xhc3M/OiBzdHJpbmc7XG4gIHJvd3M/OiB7XG4gICAgW2tleTogc3RyaW5nXTogVGFibGVDb2x1bW47XG4gIH07XG4gIGNvbHVtbnM/OiB7XG4gICAgW2tleTogc3RyaW5nXTogVGFibGVDb2x1bW47XG4gIH07XG4gIHBhZ2luYXRpb24/OiB7XG4gICAgbGVuZ3RoPzogbnVtYmVyO1xuICB9O1xufVxuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtaW5mby5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvbW9kZWxzL3RhYmxlLWluZm8uaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIFRhYmxlSW5mbyB7XG4gIHJlY29yZHM6IG51bWJlcjtcbiAgcGFnZVRvdGFsOiBudW1iZXI7XG59XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtbWV0YS5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvbW9kZWxzL3RhYmxlLW1ldGEuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUYWJsZVJvdyB9IGZyb20gJy4vdGFibGUtcm93LmludGVyZmFjZSc7XG5pbXBvcnQgeyBUYWJsZUNvbmZpZyB9IGZyb20gJy4vdGFibGUtY29uZmlnLmludGVyZmFjZSc7XG5pbXBvcnQgeyBUYWJsZUluZm8gfSBmcm9tICcuL3RhYmxlLWluZm8uaW50ZXJmYWNlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuZXhwb3J0IGludGVyZmFjZSBUYWJsZU1ldGEge1xuICBkYXRhOiBBcnJheTxBcnJheTxUYWJsZVJvdz4+O1xuICBjb25maWc6IFRhYmxlQ29uZmlnO1xuICBpbmZvOiBUYWJsZUluZm87XG59XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtcm93LmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi9tb2RlbHMvdGFibGUtcm93LmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgVGFibGVSb3dzID0gQXJyYXk8VGFibGVSb3c+O1xuZXhwb3J0IGludGVyZmFjZSBUYWJsZVJvdyB7XG4gIFtrZXk6IHN0cmluZ106IG51bWJlciB8IHN0cmluZyB8IGJvb2xlYW4gfCBhbnk7XG59XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtc29ydC5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvbW9kZWxzL3RhYmxlLXNvcnQuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPcmRlciB9IGZyb20gJy4uL2VudW1zL29yZGVyLmVudW0nO1xuXG5leHBvcnQgaW50ZXJmYWNlIFRhYmxlU29ydCB7XG4gIHNvcnRCeTogc3RyaW5nO1xuICBzb3J0QnlPcmRlcjogT3JkZXI7XG59XG4iXX0=
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
|
|
2
|
+
import { combineLatest, ReplaySubject } from 'rxjs';
|
|
3
|
+
import { map, pluck, switchMap } from 'rxjs/operators';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@angular/common";
|
|
6
|
+
export class PaginationComponent {
|
|
7
|
+
constructor() {
|
|
8
|
+
this.table$ = new ReplaySubject(1);
|
|
9
|
+
this.pagination$ = this.table$.pipe(switchMap((core) => combineLatest([core?.table$.pipe(pluck('info')), core?.currentPage$])), map(([info, currentPage]) => this.generateList(info.pageTotal, currentPage)));
|
|
10
|
+
}
|
|
11
|
+
get table() {
|
|
12
|
+
return this._table;
|
|
13
|
+
}
|
|
14
|
+
set table(value) {
|
|
15
|
+
this._table = value;
|
|
16
|
+
this.table$.next(value);
|
|
17
|
+
}
|
|
18
|
+
generateList(pages, currentPosition) {
|
|
19
|
+
const paginationLength = 5;
|
|
20
|
+
const middle = Math.floor(paginationLength / 2);
|
|
21
|
+
const length = pages < paginationLength ? pages : paginationLength;
|
|
22
|
+
return Array.from({ length }, (_, i) => {
|
|
23
|
+
if (i === 0) {
|
|
24
|
+
return 1;
|
|
25
|
+
}
|
|
26
|
+
else if (pages < paginationLength) {
|
|
27
|
+
return i + 1;
|
|
28
|
+
}
|
|
29
|
+
else if (i + 1 === length) {
|
|
30
|
+
return pages;
|
|
31
|
+
}
|
|
32
|
+
else if (currentPosition > middle && currentPosition < pages - middle) {
|
|
33
|
+
return i + currentPosition - (middle - 1);
|
|
34
|
+
}
|
|
35
|
+
else if (currentPosition > middle && currentPosition < pages - (middle - 1)) {
|
|
36
|
+
return i + currentPosition - middle;
|
|
37
|
+
}
|
|
38
|
+
else if (currentPosition > middle && currentPosition === pages - (middle - 1)) {
|
|
39
|
+
return i + currentPosition - (middle + 1);
|
|
40
|
+
}
|
|
41
|
+
else if (currentPosition > middle && currentPosition === pages - 1) {
|
|
42
|
+
return i + currentPosition - (middle + 2);
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
return i + 1;
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
goto(page) {
|
|
50
|
+
if (this.table) {
|
|
51
|
+
this.table.page = page - 1;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
PaginationComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: PaginationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
56
|
+
PaginationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: PaginationComponent, selector: "angular-generic-table-pagination", inputs: { table: "table" }, ngImport: i0, template: "<ng-container *ngIf=\"{\n links: pagination$ | async,\n currentPosition: table?.currentPage$ | async\n } as pagination\">\n <nav *ngIf=\"pagination.links && pagination.links.length > 1\" role=\"navigation\" aria-label=\"Table Pagination Navigation\" class=\"gt-pagination\">\n <ul>\n <li *ngFor=\"let position of pagination!.links; let i = index; let last = last\"\n [class.ellipsis]=\"position + 1 !== pagination!.links![i+1] && !last\"\n [class.active]=\"position === (pagination!.currentPosition || 0) + 1\"\n >\n <button class=\"btn btn-link\" [attr.aria-label]=\"'Goto Page ' + position\" (click)=\"goto(position)\">{{position}}</button>\n </li>\n </ul>\n</nav>\n</ng-container>\n", directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "async": i1.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
57
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: PaginationComponent, decorators: [{
|
|
58
|
+
type: Component,
|
|
59
|
+
args: [{ selector: 'angular-generic-table-pagination', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"{\n links: pagination$ | async,\n currentPosition: table?.currentPage$ | async\n } as pagination\">\n <nav *ngIf=\"pagination.links && pagination.links.length > 1\" role=\"navigation\" aria-label=\"Table Pagination Navigation\" class=\"gt-pagination\">\n <ul>\n <li *ngFor=\"let position of pagination!.links; let i = index; let last = last\"\n [class.ellipsis]=\"position + 1 !== pagination!.links![i+1] && !last\"\n [class.active]=\"position === (pagination!.currentPosition || 0) + 1\"\n >\n <button class=\"btn btn-link\" [attr.aria-label]=\"'Goto Page ' + position\" (click)=\"goto(position)\">{{position}}</button>\n </li>\n </ul>\n</nav>\n</ng-container>\n" }]
|
|
60
|
+
}], propDecorators: { table: [{
|
|
61
|
+
type: Input
|
|
62
|
+
}] } });
|
|
63
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvcGFnaW5hdGlvbi9wYWdpbmF0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi9wYWdpbmF0aW9uL3BhZ2luYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEQsT0FBTyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQVF2RCxNQUFNLE9BQU8sbUJBQW1CO0lBTGhDO1FBY0UsV0FBTSxHQUFpQyxJQUFJLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUU1RCxnQkFBVyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUM1QixTQUFTLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLGFBQWEsQ0FBQyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxZQUFZLENBQUMsQ0FBQyxDQUFDLEVBQzFGLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FDN0UsQ0FBQztLQWlDSDtJQTlDQyxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQztJQUNELElBQWEsS0FBSyxDQUFDLEtBQVU7UUFDM0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDcEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQVNELFlBQVksQ0FBQyxLQUFhLEVBQUUsZUFBdUI7UUFDakQsTUFBTSxnQkFBZ0IsR0FBVSxDQUFDLENBQUM7UUFDbEMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNoRCxNQUFNLE1BQU0sR0FBRyxLQUFLLEdBQUcsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUM7UUFFbkUsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDckMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUNYLE9BQU8sQ0FBQyxDQUFDO2FBQ1Y7aUJBQU0sSUFBSSxLQUFLLEdBQUcsZ0JBQWdCLEVBQUU7Z0JBQ25DLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUNkO2lCQUFNLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxNQUFNLEVBQUU7Z0JBQzNCLE9BQU8sS0FBSyxDQUFDO2FBQ2Q7aUJBQU0sSUFBSSxlQUFlLEdBQUcsTUFBTSxJQUFJLGVBQWUsR0FBRyxLQUFLLEdBQUcsTUFBTSxFQUFFO2dCQUN2RSxPQUFPLENBQUMsR0FBRyxlQUFlLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7YUFDM0M7aUJBQU0sSUFBSSxlQUFlLEdBQUcsTUFBTSxJQUFJLGVBQWUsR0FBRyxLQUFLLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEVBQUU7Z0JBQzdFLE9BQU8sQ0FBQyxHQUFHLGVBQWUsR0FBRyxNQUFNLENBQUM7YUFDckM7aUJBQU0sSUFBSSxlQUFlLEdBQUcsTUFBTSxJQUFJLGVBQWUsS0FBSyxLQUFLLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEVBQUU7Z0JBQy9FLE9BQU8sQ0FBQyxHQUFHLGVBQWUsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQzthQUMzQztpQkFBTSxJQUFJLGVBQWUsR0FBRyxNQUFNLElBQUksZUFBZSxLQUFLLEtBQUssR0FBRyxDQUFDLEVBQUU7Z0JBQ3BFLE9BQU8sQ0FBQyxHQUFHLGVBQWUsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQzthQUMzQztpQkFBTTtnQkFDTCxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDZDtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELElBQUksQ0FBQyxJQUFZO1FBQ2YsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ2QsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQztTQUM1QjtJQUNILENBQUM7O2dIQTlDVSxtQkFBbUI7b0dBQW5CLG1CQUFtQixvR0NWaEMseXNCQWVBOzJGRExhLG1CQUFtQjtrQkFML0IsU0FBUzsrQkFDRSxrQ0FBa0MsbUJBRTNCLHVCQUF1QixDQUFDLE1BQU07OEJBTWxDLEtBQUs7c0JBQWpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgUmVwbGF5U3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwLCBwbHVjaywgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQ29yZUNvbXBvbmVudCB9IGZyb20gJy4uL2NvcmUuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYW5ndWxhci1nZW5lcmljLXRhYmxlLXBhZ2luYXRpb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vcGFnaW5hdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBQYWdpbmF0aW9uQ29tcG9uZW50IHtcbiAgZ2V0IHRhYmxlKCk6IENvcmVDb21wb25lbnQgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl90YWJsZTtcbiAgfVxuICBASW5wdXQoKSBzZXQgdGFibGUodmFsdWU6IGFueSkge1xuICAgIHRoaXMuX3RhYmxlID0gdmFsdWU7XG4gICAgdGhpcy50YWJsZSQubmV4dCh2YWx1ZSk7XG4gIH1cblxuICB0YWJsZSQ6IFJlcGxheVN1YmplY3Q8Q29yZUNvbXBvbmVudD4gPSBuZXcgUmVwbGF5U3ViamVjdCgxKTtcbiAgcHJpdmF0ZSBfdGFibGU6IENvcmVDb21wb25lbnQgfCB1bmRlZmluZWQ7XG4gIHBhZ2luYXRpb24kID0gdGhpcy50YWJsZSQucGlwZShcbiAgICBzd2l0Y2hNYXAoKGNvcmUpID0+IGNvbWJpbmVMYXRlc3QoW2NvcmU/LnRhYmxlJC5waXBlKHBsdWNrKCdpbmZvJykpLCBjb3JlPy5jdXJyZW50UGFnZSRdKSksXG4gICAgbWFwKChbaW5mbywgY3VycmVudFBhZ2VdKSA9PiB0aGlzLmdlbmVyYXRlTGlzdChpbmZvLnBhZ2VUb3RhbCwgY3VycmVudFBhZ2UpKVxuICApO1xuXG4gIGdlbmVyYXRlTGlzdChwYWdlczogbnVtYmVyLCBjdXJyZW50UG9zaXRpb246IG51bWJlcik6IEFycmF5PG51bWJlcj4ge1xuICAgIGNvbnN0IHBhZ2luYXRpb25MZW5ndGg6IDUgfCA3ID0gNTtcbiAgICBjb25zdCBtaWRkbGUgPSBNYXRoLmZsb29yKHBhZ2luYXRpb25MZW5ndGggLyAyKTtcbiAgICBjb25zdCBsZW5ndGggPSBwYWdlcyA8IHBhZ2luYXRpb25MZW5ndGggPyBwYWdlcyA6IHBhZ2luYXRpb25MZW5ndGg7XG5cbiAgICByZXR1cm4gQXJyYXkuZnJvbSh7IGxlbmd0aCB9LCAoXywgaSkgPT4ge1xuICAgICAgaWYgKGkgPT09IDApIHtcbiAgICAgICAgcmV0dXJuIDE7XG4gICAgICB9IGVsc2UgaWYgKHBhZ2VzIDwgcGFnaW5hdGlvbkxlbmd0aCkge1xuICAgICAgICByZXR1cm4gaSArIDE7XG4gICAgICB9IGVsc2UgaWYgKGkgKyAxID09PSBsZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIHBhZ2VzO1xuICAgICAgfSBlbHNlIGlmIChjdXJyZW50UG9zaXRpb24gPiBtaWRkbGUgJiYgY3VycmVudFBvc2l0aW9uIDwgcGFnZXMgLSBtaWRkbGUpIHtcbiAgICAgICAgcmV0dXJuIGkgKyBjdXJyZW50UG9zaXRpb24gLSAobWlkZGxlIC0gMSk7XG4gICAgICB9IGVsc2UgaWYgKGN1cnJlbnRQb3NpdGlvbiA+IG1pZGRsZSAmJiBjdXJyZW50UG9zaXRpb24gPCBwYWdlcyAtIChtaWRkbGUgLSAxKSkge1xuICAgICAgICByZXR1cm4gaSArIGN1cnJlbnRQb3NpdGlvbiAtIG1pZGRsZTtcbiAgICAgIH0gZWxzZSBpZiAoY3VycmVudFBvc2l0aW9uID4gbWlkZGxlICYmIGN1cnJlbnRQb3NpdGlvbiA9PT0gcGFnZXMgLSAobWlkZGxlIC0gMSkpIHtcbiAgICAgICAgcmV0dXJuIGkgKyBjdXJyZW50UG9zaXRpb24gLSAobWlkZGxlICsgMSk7XG4gICAgICB9IGVsc2UgaWYgKGN1cnJlbnRQb3NpdGlvbiA+IG1pZGRsZSAmJiBjdXJyZW50UG9zaXRpb24gPT09IHBhZ2VzIC0gMSkge1xuICAgICAgICByZXR1cm4gaSArIGN1cnJlbnRQb3NpdGlvbiAtIChtaWRkbGUgKyAyKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBpICsgMTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGdvdG8ocGFnZTogbnVtYmVyKTogdm9pZCB7XG4gICAgaWYgKHRoaXMudGFibGUpIHtcbiAgICAgIHRoaXMudGFibGUucGFnZSA9IHBhZ2UgLSAxO1xuICAgIH1cbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cIntcbiAgbGlua3M6IHBhZ2luYXRpb24kIHwgYXN5bmMsXG4gIGN1cnJlbnRQb3NpdGlvbjogdGFibGU/LmN1cnJlbnRQYWdlJCB8IGFzeW5jXG4gIH0gYXMgcGFnaW5hdGlvblwiPlxuICA8bmF2ICpuZ0lmPVwicGFnaW5hdGlvbi5saW5rcyAmJiBwYWdpbmF0aW9uLmxpbmtzLmxlbmd0aCA+IDFcIiByb2xlPVwibmF2aWdhdGlvblwiIGFyaWEtbGFiZWw9XCJUYWJsZSBQYWdpbmF0aW9uIE5hdmlnYXRpb25cIiBjbGFzcz1cImd0LXBhZ2luYXRpb25cIj5cbiAgPHVsPlxuICAgIDxsaSAqbmdGb3I9XCJsZXQgcG9zaXRpb24gb2YgcGFnaW5hdGlvbiEubGlua3M7IGxldCBpID0gaW5kZXg7IGxldCBsYXN0ID0gbGFzdFwiXG4gICAgW2NsYXNzLmVsbGlwc2lzXT1cInBvc2l0aW9uICsgMSAhPT0gcGFnaW5hdGlvbiEubGlua3MhW2krMV0gJiYgIWxhc3RcIlxuICAgIFtjbGFzcy5hY3RpdmVdPVwicG9zaXRpb24gPT09IChwYWdpbmF0aW9uIS5jdXJyZW50UG9zaXRpb24gfHwgMCkgKyAxXCJcbiAgICA+XG4gICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1saW5rXCIgW2F0dHIuYXJpYS1sYWJlbF09XCInR290byBQYWdlICcgKyBwb3NpdGlvblwiIChjbGljayk9XCJnb3RvKHBvc2l0aW9uKVwiPnt7cG9zaXRpb259fTwvYnV0dG9uPlxuICAgIDwvbGk+XG4gIDwvdWw+XG48L25hdj5cbjwvbmctY29udGFpbmVyPlxuIl19
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { PaginationComponent } from './pagination.component';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class GenericTablePaginationModule {
|
|
6
|
+
}
|
|
7
|
+
GenericTablePaginationModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: GenericTablePaginationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
8
|
+
GenericTablePaginationModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: GenericTablePaginationModule, declarations: [PaginationComponent], imports: [CommonModule], exports: [PaginationComponent] });
|
|
9
|
+
GenericTablePaginationModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: GenericTablePaginationModule, imports: [[CommonModule]] });
|
|
10
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: GenericTablePaginationModule, decorators: [{
|
|
11
|
+
type: NgModule,
|
|
12
|
+
args: [{
|
|
13
|
+
declarations: [PaginationComponent],
|
|
14
|
+
imports: [CommonModule],
|
|
15
|
+
exports: [PaginationComponent],
|
|
16
|
+
}]
|
|
17
|
+
}] });
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvcGFnaW5hdGlvbi9wYWdpbmF0aW9uLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7QUFPN0QsTUFBTSxPQUFPLDRCQUE0Qjs7eUhBQTVCLDRCQUE0QjswSEFBNUIsNEJBQTRCLGlCQUp4QixtQkFBbUIsYUFDeEIsWUFBWSxhQUNaLG1CQUFtQjswSEFFbEIsNEJBQTRCLFlBSDlCLENBQUMsWUFBWSxDQUFDOzJGQUdaLDRCQUE0QjtrQkFMeEMsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQztvQkFDbkMsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO29CQUN2QixPQUFPLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQztpQkFDL0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFBhZ2luYXRpb25Db21wb25lbnQgfSBmcm9tICcuL3BhZ2luYXRpb24uY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbUGFnaW5hdGlvbkNvbXBvbmVudF0sXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICBleHBvcnRzOiBbUGFnaW5hdGlvbkNvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIEdlbmVyaWNUYWJsZVBhZ2luYXRpb25Nb2R1bGUge31cbiJdfQ==
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Pipe } from '@angular/core';
|
|
2
|
+
import { capitalize } from '../utilities/utilities';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class CapitalCasePipe {
|
|
5
|
+
transform(s) {
|
|
6
|
+
return capitalize(s);
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
CapitalCasePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: CapitalCasePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
10
|
+
CapitalCasePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: CapitalCasePipe, name: "capitalCase" });
|
|
11
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: CapitalCasePipe, decorators: [{
|
|
12
|
+
type: Pipe,
|
|
13
|
+
args: [{
|
|
14
|
+
name: 'capitalCase',
|
|
15
|
+
}]
|
|
16
|
+
}] });
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FwaXRhbC1jYXNlLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvcGlwZXMvY2FwaXRhbC1jYXNlLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDcEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHdCQUF3QixDQUFDOztBQUtwRCxNQUFNLE9BQU8sZUFBZTtJQUMxQixTQUFTLENBQUMsQ0FBUztRQUNqQixPQUFPLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN2QixDQUFDOzs0R0FIVSxlQUFlOzBHQUFmLGVBQWU7MkZBQWYsZUFBZTtrQkFIM0IsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsYUFBYTtpQkFDcEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjYXBpdGFsaXplIH0gZnJvbSAnLi4vdXRpbGl0aWVzL3V0aWxpdGllcyc7XG5cbkBQaXBlKHtcbiAgbmFtZTogJ2NhcGl0YWxDYXNlJyxcbn0pXG5leHBvcnQgY2xhc3MgQ2FwaXRhbENhc2VQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIHRyYW5zZm9ybShzOiBzdHJpbmcpOiBhbnkge1xuICAgIHJldHVybiBjYXBpdGFsaXplKHMpO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Pipe } from '@angular/core';
|
|
2
|
+
import { dashed } from '../utilities/utilities';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class DashCasePipe {
|
|
5
|
+
transform(s) {
|
|
6
|
+
return dashed(s);
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
DashCasePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: DashCasePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
10
|
+
DashCasePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: DashCasePipe, name: "dashCase" });
|
|
11
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: DashCasePipe, decorators: [{
|
|
12
|
+
type: Pipe,
|
|
13
|
+
args: [{
|
|
14
|
+
name: 'dashCase'
|
|
15
|
+
}]
|
|
16
|
+
}] });
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaC1jYXNlLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvcGlwZXMvZGFzaC1jYXNlLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDcEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHdCQUF3QixDQUFDOztBQUtoRCxNQUFNLE9BQU8sWUFBWTtJQUN2QixTQUFTLENBQUMsQ0FBUztRQUNqQixPQUFPLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNuQixDQUFDOzt5R0FIVSxZQUFZO3VHQUFaLFlBQVk7MkZBQVosWUFBWTtrQkFIeEIsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsVUFBVTtpQkFDakIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBkYXNoZWQgfSBmcm9tICcuLi91dGlsaXRpZXMvdXRpbGl0aWVzJztcblxuQFBpcGUoe1xuICBuYW1lOiAnZGFzaENhc2UnXG59KVxuZXhwb3J0IGNsYXNzIERhc2hDYXNlUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICB0cmFuc2Zvcm0oczogc3RyaW5nKTogYW55IHtcbiAgICByZXR1cm4gZGFzaGVkKHMpO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { Injector, Pipe } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class DynamicPipe {
|
|
4
|
+
constructor(injector) {
|
|
5
|
+
this.injector = injector;
|
|
6
|
+
}
|
|
7
|
+
transform(value, requiredPipe, pipeArgs) {
|
|
8
|
+
const injector = Injector.create({
|
|
9
|
+
name: 'DynamicPipe',
|
|
10
|
+
parent: this.injector,
|
|
11
|
+
providers: [{ provide: requiredPipe }],
|
|
12
|
+
});
|
|
13
|
+
const pipe = injector.get(requiredPipe);
|
|
14
|
+
return pipe.transform(value, ...(pipeArgs || []));
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
DynamicPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: DynamicPipe, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Pipe });
|
|
18
|
+
DynamicPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: DynamicPipe, name: "dynamicPipe" });
|
|
19
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: DynamicPipe, decorators: [{
|
|
20
|
+
type: Pipe,
|
|
21
|
+
args: [{
|
|
22
|
+
name: 'dynamicPipe',
|
|
23
|
+
}]
|
|
24
|
+
}], ctorParameters: function () { return [{ type: i0.Injector }]; } });
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL3BpcGVzL2R5bmFtaWMucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBdUIsTUFBTSxlQUFlLENBQUM7O0FBS3BFLE1BQU0sT0FBTyxXQUFXO0lBQ3RCLFlBQW9CLFFBQWtCO1FBQWxCLGFBQVEsR0FBUixRQUFRLENBQVU7SUFBRyxDQUFDO0lBRTFDLFNBQVMsQ0FBQyxLQUFVLEVBQUUsWUFBdUIsRUFBRSxRQUFlO1FBQzVELE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUM7WUFDL0IsSUFBSSxFQUFFLGFBQWE7WUFDbkIsTUFBTSxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ3JCLFNBQVMsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxDQUFDO1NBQ3ZDLENBQUMsQ0FBQztRQUNILE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDeEMsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDcEQsQ0FBQzs7d0dBWFUsV0FBVztzR0FBWCxXQUFXOzJGQUFYLFdBQVc7a0JBSHZCLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLGFBQWE7aUJBQ3BCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0b3IsIFBpcGUsIFBpcGVUcmFuc2Zvcm0sIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQFBpcGUoe1xuICBuYW1lOiAnZHluYW1pY1BpcGUnLFxufSlcbmV4cG9ydCBjbGFzcyBEeW5hbWljUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGluamVjdG9yOiBJbmplY3Rvcikge31cblxuICB0cmFuc2Zvcm0odmFsdWU6IGFueSwgcmVxdWlyZWRQaXBlOiBUeXBlPGFueT4sIHBpcGVBcmdzOiBhbnlbXSk6IGFueSB7XG4gICAgY29uc3QgaW5qZWN0b3IgPSBJbmplY3Rvci5jcmVhdGUoe1xuICAgICAgbmFtZTogJ0R5bmFtaWNQaXBlJyxcbiAgICAgIHBhcmVudDogdGhpcy5pbmplY3RvcixcbiAgICAgIHByb3ZpZGVyczogW3sgcHJvdmlkZTogcmVxdWlyZWRQaXBlIH1dLFxuICAgIH0pO1xuICAgIGNvbnN0IHBpcGUgPSBpbmplY3Rvci5nZXQocmVxdWlyZWRQaXBlKTtcbiAgICByZXR1cm4gcGlwZS50cmFuc2Zvcm0odmFsdWUsIC4uLihwaXBlQXJncyB8fCBbXSkpO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { Pipe } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class HighlightPipe {
|
|
4
|
+
transform(text, searchTerm) {
|
|
5
|
+
if (!searchTerm) {
|
|
6
|
+
return text;
|
|
7
|
+
}
|
|
8
|
+
const haystackAlwaysString = text + '';
|
|
9
|
+
let highlightedText = haystackAlwaysString; // fallback
|
|
10
|
+
let searchPattern;
|
|
11
|
+
try {
|
|
12
|
+
searchPattern = new RegExp('(' +
|
|
13
|
+
// @ts-ignore
|
|
14
|
+
searchTerm
|
|
15
|
+
.toLowerCase()
|
|
16
|
+
.match(/".*?"|[^ ]+/g) // extract words
|
|
17
|
+
.map(needle => needle.replace(/"(.*?)"/, '$1') // strip away '"'
|
|
18
|
+
)
|
|
19
|
+
.join('|') + // combine words
|
|
20
|
+
')', 'ig');
|
|
21
|
+
}
|
|
22
|
+
catch (error) {
|
|
23
|
+
return highlightedText;
|
|
24
|
+
}
|
|
25
|
+
const containsTagPattern = /(<.*?>)(.*)(<\/.*?>)/gi;
|
|
26
|
+
const containsTagMatches = containsTagPattern.exec(haystackAlwaysString);
|
|
27
|
+
if (containsTagMatches) {
|
|
28
|
+
// tag exists in haystack
|
|
29
|
+
highlightedText =
|
|
30
|
+
containsTagMatches[1] +
|
|
31
|
+
containsTagMatches[2].replace(searchPattern, '<span class="gt-highlight-search">$1</span>') +
|
|
32
|
+
containsTagMatches[3];
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
highlightedText = haystackAlwaysString.replace(searchPattern, '<span class="gt-highlight-search">$1</span>');
|
|
36
|
+
}
|
|
37
|
+
return highlightedText;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
HighlightPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: HighlightPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
41
|
+
HighlightPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: HighlightPipe, name: "highlight" });
|
|
42
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: HighlightPipe, decorators: [{
|
|
43
|
+
type: Pipe,
|
|
44
|
+
args: [{
|
|
45
|
+
name: 'highlight'
|
|
46
|
+
}]
|
|
47
|
+
}] });
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGlnaGxpZ2h0LnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvcGlwZXMvaGlnaGxpZ2h0LnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7O0FBS3BELE1BQU0sT0FBTyxhQUFhO0lBQ3hCLFNBQVMsQ0FBQyxJQUFTLEVBQUUsVUFBeUI7UUFDNUMsSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNmLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFDRCxNQUFNLG9CQUFvQixHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7UUFDdkMsSUFBSSxlQUFlLEdBQUcsb0JBQW9CLENBQUMsQ0FBQyxXQUFXO1FBRXZELElBQUksYUFBYSxDQUFDO1FBQ2xCLElBQUk7WUFDRixhQUFhLEdBQUcsSUFBSSxNQUFNLENBQ3hCLEdBQUc7Z0JBQ0gsYUFBYTtnQkFDYixVQUFVO3FCQUNQLFdBQVcsRUFBRTtxQkFDYixLQUFLLENBQUMsY0FBYyxDQUFDLENBQUMsZ0JBQWdCO3FCQUN0QyxHQUFHLENBQ0YsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQyxpQkFBaUI7aUJBQzVEO3FCQUNBLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxnQkFBZ0I7Z0JBQzdCLEdBQUcsRUFDTCxJQUFJLENBQ0wsQ0FBQztTQUNIO1FBQUMsT0FBTyxLQUFLLEVBQUU7WUFDZCxPQUFPLGVBQWUsQ0FBQztTQUN4QjtRQUVELE1BQU0sa0JBQWtCLEdBQUcsd0JBQXdCLENBQUM7UUFDcEQsTUFBTSxrQkFBa0IsR0FBRyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUV6RSxJQUFJLGtCQUFrQixFQUFFO1lBQ3RCLHlCQUF5QjtZQUN6QixlQUFlO2dCQUNiLGtCQUFrQixDQUFDLENBQUMsQ0FBQztvQkFDckIsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSw2Q0FBNkMsQ0FBQztvQkFDM0Ysa0JBQWtCLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDekI7YUFBTTtZQUNMLGVBQWUsR0FBRyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLDZDQUE2QyxDQUFDLENBQUM7U0FDOUc7UUFFRCxPQUFPLGVBQWUsQ0FBQztJQUN6QixDQUFDOzswR0F6Q1UsYUFBYTt3R0FBYixhQUFhOzJGQUFiLGFBQWE7a0JBSHpCLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLFdBQVc7aUJBQ2xCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AUGlwZSh7XG4gIG5hbWU6ICdoaWdobGlnaHQnXG59KVxuZXhwb3J0IGNsYXNzIEhpZ2hsaWdodFBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgdHJhbnNmb3JtKHRleHQ6IGFueSwgc2VhcmNoVGVybTogc3RyaW5nIHwgbnVsbCk6IHN0cmluZyB7XG4gICAgaWYgKCFzZWFyY2hUZXJtKSB7XG4gICAgICByZXR1cm4gdGV4dDtcbiAgICB9XG4gICAgY29uc3QgaGF5c3RhY2tBbHdheXNTdHJpbmcgPSB0ZXh0ICsgJyc7XG4gICAgbGV0IGhpZ2hsaWdodGVkVGV4dCA9IGhheXN0YWNrQWx3YXlzU3RyaW5nOyAvLyBmYWxsYmFja1xuXG4gICAgbGV0IHNlYXJjaFBhdHRlcm47XG4gICAgdHJ5IHtcbiAgICAgIHNlYXJjaFBhdHRlcm4gPSBuZXcgUmVnRXhwKFxuICAgICAgICAnKCcgK1xuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIHNlYXJjaFRlcm1cbiAgICAgICAgICAudG9Mb3dlckNhc2UoKVxuICAgICAgICAgIC5tYXRjaCgvXCIuKj9cInxbXiBdKy9nKSAvLyBleHRyYWN0IHdvcmRzXG4gICAgICAgICAgLm1hcChcbiAgICAgICAgICAgIG5lZWRsZSA9PiBuZWVkbGUucmVwbGFjZSgvXCIoLio/KVwiLywgJyQxJykgLy8gc3RyaXAgYXdheSAnXCInXG4gICAgICAgICAgKVxuICAgICAgICAgIC5qb2luKCd8JykgKyAvLyBjb21iaW5lIHdvcmRzXG4gICAgICAgICAgJyknLFxuICAgICAgICAnaWcnXG4gICAgICApO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICByZXR1cm4gaGlnaGxpZ2h0ZWRUZXh0O1xuICAgIH1cblxuICAgIGNvbnN0IGNvbnRhaW5zVGFnUGF0dGVybiA9IC8oPC4qPz4pKC4qKSg8XFwvLio/PikvZ2k7XG4gICAgY29uc3QgY29udGFpbnNUYWdNYXRjaGVzID0gY29udGFpbnNUYWdQYXR0ZXJuLmV4ZWMoaGF5c3RhY2tBbHdheXNTdHJpbmcpO1xuXG4gICAgaWYgKGNvbnRhaW5zVGFnTWF0Y2hlcykge1xuICAgICAgLy8gdGFnIGV4aXN0cyBpbiBoYXlzdGFja1xuICAgICAgaGlnaGxpZ2h0ZWRUZXh0ID1cbiAgICAgICAgY29udGFpbnNUYWdNYXRjaGVzWzFdICtcbiAgICAgICAgY29udGFpbnNUYWdNYXRjaGVzWzJdLnJlcGxhY2Uoc2VhcmNoUGF0dGVybiwgJzxzcGFuIGNsYXNzPVwiZ3QtaGlnaGxpZ2h0LXNlYXJjaFwiPiQxPC9zcGFuPicpICtcbiAgICAgICAgY29udGFpbnNUYWdNYXRjaGVzWzNdO1xuICAgIH0gZWxzZSB7XG4gICAgICBoaWdobGlnaHRlZFRleHQgPSBoYXlzdGFja0Fsd2F5c1N0cmluZy5yZXBsYWNlKHNlYXJjaFBhdHRlcm4sICc8c3BhbiBjbGFzcz1cImd0LWhpZ2hsaWdodC1zZWFyY2hcIj4kMTwvc3Bhbj4nKTtcbiAgICB9XG5cbiAgICByZXR1cm4gaGlnaGxpZ2h0ZWRUZXh0O1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Pipe } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class SortClassPipe {
|
|
4
|
+
transform(selection, property) {
|
|
5
|
+
return selection?.sortBy === property ? 'sort-' + selection.sortByOrder : '';
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
SortClassPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: SortClassPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
9
|
+
SortClassPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: SortClassPipe, name: "sortClass" });
|
|
10
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: SortClassPipe, decorators: [{
|
|
11
|
+
type: Pipe,
|
|
12
|
+
args: [{
|
|
13
|
+
name: 'sortClass',
|
|
14
|
+
}]
|
|
15
|
+
}] });
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ydC1jbGFzcy5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL3BpcGVzL3NvcnQtY2xhc3MucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQzs7QUFNcEQsTUFBTSxPQUFPLGFBQWE7SUFDeEIsU0FBUyxDQUFDLFNBQXVELEVBQUUsUUFBZ0I7UUFDakYsT0FBTyxTQUFTLEVBQUUsTUFBTSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsT0FBTyxHQUFHLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUMvRSxDQUFDOzswR0FIVSxhQUFhO3dHQUFiLGFBQWE7MkZBQWIsYUFBYTtrQkFIekIsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsV0FBVztpQkFDbEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPcmRlciB9IGZyb20gJy4uL2VudW1zL29yZGVyLmVudW0nO1xuXG5AUGlwZSh7XG4gIG5hbWU6ICdzb3J0Q2xhc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBTb3J0Q2xhc3NQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIHRyYW5zZm9ybShzZWxlY3Rpb246IHsgc29ydEJ5OiBzdHJpbmc7IHNvcnRCeU9yZGVyOiBPcmRlciB9IHwgYW55LCBwcm9wZXJ0eTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gc2VsZWN0aW9uPy5zb3J0QnkgPT09IHByb3BlcnR5ID8gJ3NvcnQtJyArIHNlbGVjdGlvbi5zb3J0QnlPcmRlciA6ICcnO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
export let dashed;
|
|
2
|
+
dashed = (s) => s.replace(/[A-Z]/g, (m) => '-' + m.toLowerCase());
|
|
3
|
+
export let capitalize;
|
|
4
|
+
capitalize = (s) => (s.charAt(0).toUpperCase() + s.slice(1))
|
|
5
|
+
.replace(/_/g, ' ')
|
|
6
|
+
.replace(/([A-Z][a-z]+)/g, ' $1')
|
|
7
|
+
.replace(/([A-Z]{2,})/g, ' $1')
|
|
8
|
+
.replace(/\s{2,}/g, ' ')
|
|
9
|
+
.trim();
|
|
10
|
+
export let chunk;
|
|
11
|
+
chunk = (array, chunkSize) => {
|
|
12
|
+
if (chunkSize < 0) {
|
|
13
|
+
throw new Error('Invalid chunk size');
|
|
14
|
+
}
|
|
15
|
+
if (chunkSize === 0 && !chunkSize) {
|
|
16
|
+
return [array];
|
|
17
|
+
}
|
|
18
|
+
const CHUNK = [];
|
|
19
|
+
for (let i = 0, len = array.length; i < len; i += chunkSize) {
|
|
20
|
+
CHUNK.push(array.slice(i, i + chunkSize));
|
|
21
|
+
}
|
|
22
|
+
return CHUNK;
|
|
23
|
+
};
|
|
24
|
+
export let search;
|
|
25
|
+
search = (text, caseSensitive, data, config) => {
|
|
26
|
+
if (config.columns) {
|
|
27
|
+
const searchColumns = Object.keys(config.columns).filter(
|
|
28
|
+
// @ts-ignore
|
|
29
|
+
(key) => !config.columns[key].hidden && config.columns[key].search !== false);
|
|
30
|
+
return data.filter((row) => Object.entries(row)
|
|
31
|
+
.filter(([key, value]) => searchColumns.indexOf(key) !== -1)
|
|
32
|
+
.reduce((prev, [key, value]) => prev + (prev === '' ? '' : ' & ') + (caseSensitive ? value + '' : (value + '').toLowerCase()), '')
|
|
33
|
+
.indexOf(text) !== -1);
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
return data;
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbGl0aWVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL3V0aWxpdGllcy91dGlsaXRpZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxDQUFDLElBQUksTUFBNkIsQ0FBQztBQUN6QyxNQUFNLEdBQUcsQ0FBQyxDQUFTLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7QUFFMUUsTUFBTSxDQUFDLElBQUksVUFBaUMsQ0FBQztBQUM3QyxVQUFVLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUNqQixDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUNyQyxPQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQztLQUNsQixPQUFPLENBQUMsZ0JBQWdCLEVBQUUsS0FBSyxDQUFDO0tBQ2hDLE9BQU8sQ0FBQyxjQUFjLEVBQUUsS0FBSyxDQUFDO0tBQzlCLE9BQU8sQ0FBQyxTQUFTLEVBQUUsR0FBRyxDQUFDO0tBQ3ZCLElBQUksRUFBRSxDQUFDO0FBRVosTUFBTSxDQUFDLElBQUksS0FBdUUsQ0FBQztBQUNuRixLQUFLLEdBQUcsQ0FBQyxLQUFLLEVBQUUsU0FBUyxFQUFFLEVBQUU7SUFDM0IsSUFBSSxTQUFTLEdBQUcsQ0FBQyxFQUFFO1FBQ2pCLE1BQU0sSUFBSSxLQUFLLENBQUMsb0JBQW9CLENBQUMsQ0FBQztLQUN2QztJQUNELElBQUksU0FBUyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRTtRQUNqQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7S0FDaEI7SUFDRCxNQUFNLEtBQUssR0FBRyxFQUFFLENBQUM7SUFDakIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksU0FBUyxFQUFFO1FBQzNELEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUM7S0FDM0M7SUFDRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxJQUFJLE1BQXdHLENBQUM7QUFDcEgsTUFBTSxHQUFHLENBQUMsSUFBWSxFQUFFLGFBQXNCLEVBQUUsSUFBcUIsRUFBRSxNQUFtQixFQUFFLEVBQUU7SUFDNUYsSUFBSSxNQUFNLENBQUMsT0FBTyxFQUFFO1FBQ2xCLE1BQU0sYUFBYSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU07UUFDdEQsYUFBYTtRQUNiLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxLQUFLLEtBQUssQ0FDN0UsQ0FBQztRQUNGLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FDaEIsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUNOLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDO2FBQ2hCLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO2FBQzNELE1BQU0sQ0FDTCxDQUFDLElBQUksRUFBRSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsRUFBVSxFQUFFLENBQzdCLElBQUksR0FBRyxDQUFDLElBQUksS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLEVBQy9GLEVBQUUsQ0FDSDthQUNBLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FDMUIsQ0FBQztLQUNIO1NBQU07UUFDTCxPQUFPLElBQUksQ0FBQztLQUNiO0FBQ0gsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGFibGVSb3cgfSBmcm9tICcuLi9tb2RlbHMvdGFibGUtcm93LmludGVyZmFjZSc7XG5pbXBvcnQgeyBUYWJsZUNvbmZpZyB9IGZyb20gJy4uL21vZGVscy90YWJsZS1jb25maWcuaW50ZXJmYWNlJztcblxuZXhwb3J0IGxldCBkYXNoZWQ6IChzOiBzdHJpbmcpID0+IHN0cmluZztcbmRhc2hlZCA9IChzOiBzdHJpbmcpID0+IHMucmVwbGFjZSgvW0EtWl0vZywgKG0pID0+ICctJyArIG0udG9Mb3dlckNhc2UoKSk7XG5cbmV4cG9ydCBsZXQgY2FwaXRhbGl6ZTogKHM6IHN0cmluZykgPT4gc3RyaW5nO1xuY2FwaXRhbGl6ZSA9IChzKSA9PlxuICAocy5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIHMuc2xpY2UoMSkpXG4gICAgLnJlcGxhY2UoL18vZywgJyAnKVxuICAgIC5yZXBsYWNlKC8oW0EtWl1bYS16XSspL2csICcgJDEnKVxuICAgIC5yZXBsYWNlKC8oW0EtWl17Mix9KS9nLCAnICQxJylcbiAgICAucmVwbGFjZSgvXFxzezIsfS9nLCAnICcpXG4gICAgLnRyaW0oKTtcblxuZXhwb3J0IGxldCBjaHVuazogKGFycmF5OiBBcnJheTxhbnk+LCBjaHVua1NpemU6IG51bWJlcikgPT4gQXJyYXk8QXJyYXk8VGFibGVSb3c+PjtcbmNodW5rID0gKGFycmF5LCBjaHVua1NpemUpID0+IHtcbiAgaWYgKGNodW5rU2l6ZSA8IDApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgY2h1bmsgc2l6ZScpO1xuICB9XG4gIGlmIChjaHVua1NpemUgPT09IDAgJiYgIWNodW5rU2l6ZSkge1xuICAgIHJldHVybiBbYXJyYXldO1xuICB9XG4gIGNvbnN0IENIVU5LID0gW107XG4gIGZvciAobGV0IGkgPSAwLCBsZW4gPSBhcnJheS5sZW5ndGg7IGkgPCBsZW47IGkgKz0gY2h1bmtTaXplKSB7XG4gICAgQ0hVTksucHVzaChhcnJheS5zbGljZShpLCBpICsgY2h1bmtTaXplKSk7XG4gIH1cbiAgcmV0dXJuIENIVU5LO1xufTtcblxuZXhwb3J0IGxldCBzZWFyY2g6ICh0ZXh0OiBzdHJpbmcsIGNhc2VTZW5zaXRpdmU6IGJvb2xlYW4sIGRhdGE6IEFycmF5PFRhYmxlUm93PiwgY29uZmlnOiBUYWJsZUNvbmZpZykgPT4gVGFibGVSb3dbXTtcbnNlYXJjaCA9ICh0ZXh0OiBzdHJpbmcsIGNhc2VTZW5zaXRpdmU6IGJvb2xlYW4sIGRhdGE6IEFycmF5PFRhYmxlUm93PiwgY29uZmlnOiBUYWJsZUNvbmZpZykgPT4ge1xuICBpZiAoY29uZmlnLmNvbHVtbnMpIHtcbiAgICBjb25zdCBzZWFyY2hDb2x1bW5zID0gT2JqZWN0LmtleXMoY29uZmlnLmNvbHVtbnMpLmZpbHRlcihcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIChrZXkpID0+ICFjb25maWcuY29sdW1uc1trZXldLmhpZGRlbiAmJiBjb25maWcuY29sdW1uc1trZXldLnNlYXJjaCAhPT0gZmFsc2VcbiAgICApO1xuICAgIHJldHVybiBkYXRhLmZpbHRlcihcbiAgICAgIChyb3cpID0+XG4gICAgICAgIE9iamVjdC5lbnRyaWVzKHJvdylcbiAgICAgICAgICAuZmlsdGVyKChba2V5LCB2YWx1ZV0pID0+IHNlYXJjaENvbHVtbnMuaW5kZXhPZihrZXkpICE9PSAtMSlcbiAgICAgICAgICAucmVkdWNlKFxuICAgICAgICAgICAgKHByZXYsIFtrZXksIHZhbHVlXSk6IHN0cmluZyA9PlxuICAgICAgICAgICAgICBwcmV2ICsgKHByZXYgPT09ICcnID8gJycgOiAnICYgJykgKyAoY2FzZVNlbnNpdGl2ZSA/IHZhbHVlICsgJycgOiAodmFsdWUgKyAnJykudG9Mb3dlckNhc2UoKSksXG4gICAgICAgICAgICAnJ1xuICAgICAgICAgIClcbiAgICAgICAgICAuaW5kZXhPZih0ZXh0KSAhPT0gLTFcbiAgICApO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBkYXRhO1xuICB9XG59O1xuIl19
|