ngx-easy-table-plus 15.7.0
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/LICENSE +20 -0
- package/README.md +37 -0
- package/esm2022/lib/components/base/base.component.mjs +541 -0
- package/esm2022/lib/components/base/base.module.mjs +46 -0
- package/esm2022/lib/components/header/header.component.mjs +24 -0
- package/esm2022/lib/components/pagination/pagination.component.mjs +68 -0
- package/esm2022/lib/components/thead/thead.component.mjs +147 -0
- package/esm2022/lib/index.mjs +7 -0
- package/esm2022/lib/model/api.mjs +24 -0
- package/esm2022/lib/model/columns.mjs +2 -0
- package/esm2022/lib/model/config.mjs +12 -0
- package/esm2022/lib/model/event.enum.mjs +24 -0
- package/esm2022/lib/model/pagination.mjs +2 -0
- package/esm2022/lib/pipes/global-search-pipe.mjs +30 -0
- package/esm2022/lib/pipes/render-pipe.mjs +18 -0
- package/esm2022/lib/pipes/search-pipe.mjs +51 -0
- package/esm2022/lib/pipes/sort.pipe.mjs +64 -0
- package/esm2022/lib/services/config-service.mjs +51 -0
- package/esm2022/lib/services/filters.service.mjs +16 -0
- package/esm2022/lib/services/group-rows.service.mjs +19 -0
- package/esm2022/lib/services/style.service.mjs +46 -0
- package/esm2022/lib/table.module.mjs +19 -0
- package/esm2022/ngx-easy-table-plus.mjs +5 -0
- package/esm2022/public_api.mjs +9 -0
- package/fesm2022/ngx-easy-table-plus.mjs +1142 -0
- package/fesm2022/ngx-easy-table-plus.mjs.map +1 -0
- package/index.d.ts +6 -0
- package/lib/components/base/base.component.d.ts +112 -0
- package/lib/components/base/base.component.d.ts.map +1 -0
- package/lib/components/base/base.module.d.ts +19 -0
- package/lib/components/base/base.module.d.ts.map +1 -0
- package/lib/components/header/header.component.d.ts +15 -0
- package/lib/components/header/header.component.d.ts.map +1 -0
- package/lib/components/pagination/pagination.component.d.ts +32 -0
- package/lib/components/pagination/pagination.component.d.ts.map +1 -0
- package/lib/components/thead/thead.component.d.ts +52 -0
- package/lib/components/thead/thead.component.d.ts.map +1 -0
- package/lib/index.d.ts +7 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/model/api.d.ts +117 -0
- package/lib/model/api.d.ts.map +1 -0
- package/lib/model/columns.d.ts +19 -0
- package/lib/model/columns.d.ts.map +1 -0
- package/lib/model/config.d.ts +53 -0
- package/lib/model/config.d.ts.map +1 -0
- package/lib/model/event.enum.d.ts +21 -0
- package/lib/model/event.enum.d.ts.map +1 -0
- package/lib/model/pagination.d.ts +6 -0
- package/lib/model/pagination.d.ts.map +1 -0
- package/lib/pipes/global-search-pipe.d.ts +9 -0
- package/lib/pipes/global-search-pipe.d.ts.map +1 -0
- package/lib/pipes/render-pipe.d.ts +8 -0
- package/lib/pipes/render-pipe.d.ts.map +1 -0
- package/lib/pipes/search-pipe.d.ts +15 -0
- package/lib/pipes/search-pipe.d.ts.map +1 -0
- package/lib/pipes/sort.pipe.d.ts +17 -0
- package/lib/pipes/sort.pipe.d.ts.map +1 -0
- package/lib/services/config-service.d.ts +9 -0
- package/lib/services/config-service.d.ts.map +1 -0
- package/lib/services/filters.service.d.ts +7 -0
- package/lib/services/filters.service.d.ts.map +1 -0
- package/lib/services/group-rows.service.d.ts +7 -0
- package/lib/services/group-rows.service.d.ts.map +1 -0
- package/lib/services/style.service.d.ts +12 -0
- package/lib/services/style.service.d.ts.map +1 -0
- package/lib/table.module.d.ts +10 -0
- package/lib/table.module.d.ts.map +1 -0
- package/ngx-easy-table-plus.d.ts.map +1 -0
- package/package.json +44 -0
- package/public_api.d.ts +9 -0
- package/public_api.d.ts.map +1 -0
- package/style.css +514 -0
- package/style.css.map +1 -0
- package/style.scss +616 -0
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { DragDropModule } from '@angular/cdk/drag-drop';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { NgModule } from '@angular/core';
|
|
4
|
+
import { BaseComponent } from './base.component';
|
|
5
|
+
import { HeaderComponent } from '../header/header.component';
|
|
6
|
+
import { PaginationComponent } from '../pagination/pagination.component';
|
|
7
|
+
import { GlobalSearchPipe } from '../../pipes/global-search-pipe';
|
|
8
|
+
import { RenderPipe } from '../../pipes/render-pipe';
|
|
9
|
+
import { SearchPipe } from '../../pipes/search-pipe';
|
|
10
|
+
import { SortPipe } from '../../pipes/sort.pipe';
|
|
11
|
+
import { NgxPaginationModule } from 'ngx-pagination';
|
|
12
|
+
import { TableTHeadComponent } from '../thead/thead.component';
|
|
13
|
+
import { ScrollingModule } from '@angular/cdk/scrolling';
|
|
14
|
+
import * as i0 from "@angular/core";
|
|
15
|
+
export class BaseModule {
|
|
16
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: BaseModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
17
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.0", ngImport: i0, type: BaseModule, declarations: [BaseComponent,
|
|
18
|
+
HeaderComponent,
|
|
19
|
+
PaginationComponent,
|
|
20
|
+
TableTHeadComponent,
|
|
21
|
+
// Pipes
|
|
22
|
+
SearchPipe,
|
|
23
|
+
RenderPipe,
|
|
24
|
+
GlobalSearchPipe,
|
|
25
|
+
SortPipe], imports: [CommonModule, NgxPaginationModule, DragDropModule, ScrollingModule], exports: [BaseComponent] }); }
|
|
26
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: BaseModule, imports: [CommonModule, NgxPaginationModule, DragDropModule, ScrollingModule] }); }
|
|
27
|
+
}
|
|
28
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: BaseModule, decorators: [{
|
|
29
|
+
type: NgModule,
|
|
30
|
+
args: [{
|
|
31
|
+
declarations: [
|
|
32
|
+
BaseComponent,
|
|
33
|
+
HeaderComponent,
|
|
34
|
+
PaginationComponent,
|
|
35
|
+
TableTHeadComponent,
|
|
36
|
+
// Pipes
|
|
37
|
+
SearchPipe,
|
|
38
|
+
RenderPipe,
|
|
39
|
+
GlobalSearchPipe,
|
|
40
|
+
SortPipe,
|
|
41
|
+
],
|
|
42
|
+
imports: [CommonModule, NgxPaginationModule, DragDropModule, ScrollingModule],
|
|
43
|
+
exports: [BaseComponent],
|
|
44
|
+
}]
|
|
45
|
+
}] });
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtZWFzeS10YWJsZS9zcmMvbGliL2NvbXBvbmVudHMvYmFzZS9iYXNlLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFekMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRWpELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUV6RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDckQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVqRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7O0FBa0J6RCxNQUFNLE9BQU8sVUFBVTs4R0FBVixVQUFVOytHQUFWLFVBQVUsaUJBZG5CLGFBQWE7WUFDYixlQUFlO1lBQ2YsbUJBQW1CO1lBQ25CLG1CQUFtQjtZQUVuQixRQUFRO1lBQ1IsVUFBVTtZQUNWLFVBQVU7WUFDVixnQkFBZ0I7WUFDaEIsUUFBUSxhQUVBLFlBQVksRUFBRSxtQkFBbUIsRUFBRSxjQUFjLEVBQUUsZUFBZSxhQUNsRSxhQUFhOytHQUVaLFVBQVUsWUFIWCxZQUFZLEVBQUUsbUJBQW1CLEVBQUUsY0FBYyxFQUFFLGVBQWU7OzJGQUdqRSxVQUFVO2tCQWhCdEIsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1osYUFBYTt3QkFDYixlQUFlO3dCQUNmLG1CQUFtQjt3QkFDbkIsbUJBQW1CO3dCQUVuQixRQUFRO3dCQUNSLFVBQVU7d0JBQ1YsVUFBVTt3QkFDVixnQkFBZ0I7d0JBQ2hCLFFBQVE7cUJBQ1Q7b0JBQ0QsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLG1CQUFtQixFQUFFLGNBQWMsRUFBRSxlQUFlLENBQUM7b0JBQzdFLE9BQU8sRUFBRSxDQUFDLGFBQWEsQ0FBQztpQkFDekIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEcmFnRHJvcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgQmFzZUNvbXBvbmVudCB9IGZyb20gJy4vYmFzZS5jb21wb25lbnQnO1xyXG5cclxuaW1wb3J0IHsgSGVhZGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vaGVhZGVyL2hlYWRlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBQYWdpbmF0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi4vcGFnaW5hdGlvbi9wYWdpbmF0aW9uLmNvbXBvbmVudCc7XHJcblxyXG5pbXBvcnQgeyBHbG9iYWxTZWFyY2hQaXBlIH0gZnJvbSAnLi4vLi4vcGlwZXMvZ2xvYmFsLXNlYXJjaC1waXBlJztcclxuaW1wb3J0IHsgUmVuZGVyUGlwZSB9IGZyb20gJy4uLy4uL3BpcGVzL3JlbmRlci1waXBlJztcclxuaW1wb3J0IHsgU2VhcmNoUGlwZSB9IGZyb20gJy4uLy4uL3BpcGVzL3NlYXJjaC1waXBlJztcclxuaW1wb3J0IHsgU29ydFBpcGUgfSBmcm9tICcuLi8uLi9waXBlcy9zb3J0LnBpcGUnO1xyXG5cclxuaW1wb3J0IHsgTmd4UGFnaW5hdGlvbk1vZHVsZSB9IGZyb20gJ25neC1wYWdpbmF0aW9uJztcclxuaW1wb3J0IHsgVGFibGVUSGVhZENvbXBvbmVudCB9IGZyb20gJy4uL3RoZWFkL3RoZWFkLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFNjcm9sbGluZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9zY3JvbGxpbmcnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICAgIEJhc2VDb21wb25lbnQsXHJcbiAgICBIZWFkZXJDb21wb25lbnQsXHJcbiAgICBQYWdpbmF0aW9uQ29tcG9uZW50LFxyXG4gICAgVGFibGVUSGVhZENvbXBvbmVudCxcclxuXHJcbiAgICAvLyBQaXBlc1xyXG4gICAgU2VhcmNoUGlwZSxcclxuICAgIFJlbmRlclBpcGUsXHJcbiAgICBHbG9iYWxTZWFyY2hQaXBlLFxyXG4gICAgU29ydFBpcGUsXHJcbiAgXSxcclxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBOZ3hQYWdpbmF0aW9uTW9kdWxlLCBEcmFnRHJvcE1vZHVsZSwgU2Nyb2xsaW5nTW9kdWxlXSxcclxuICBleHBvcnRzOiBbQmFzZUNvbXBvbmVudF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBCYXNlTW9kdWxlIHt9XHJcbiJdfQ==
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class HeaderComponent {
|
|
4
|
+
constructor() {
|
|
5
|
+
this.update = new EventEmitter();
|
|
6
|
+
}
|
|
7
|
+
unifyKey(key) {
|
|
8
|
+
return key.replace('.', '_');
|
|
9
|
+
}
|
|
10
|
+
onSearch(input) {
|
|
11
|
+
this.update.emit([{ value: input.value, key: this.column.key }]);
|
|
12
|
+
}
|
|
13
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: HeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
14
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", type: HeaderComponent, selector: "table-header", inputs: { column: "column" }, outputs: { update: "update" }, ngImport: i0, template: "<label for=\"search_{{ unifyKey(column.key) }}\">\r\n <input\r\n type=\"text\"\r\n id=\"search_{{ unifyKey(column.key) }}\"\r\n aria-label=\"Search\"\r\n placeholder=\"{{ column.placeholder ? column.placeholder : column.title }}\"\r\n class=\"ngx-table__header-search\"\r\n #input\r\n (input)=\"onSearch(input)\"\r\n />\r\n</label>\r\n", changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
15
|
+
}
|
|
16
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: HeaderComponent, decorators: [{
|
|
17
|
+
type: Component,
|
|
18
|
+
args: [{ selector: 'table-header', changeDetection: ChangeDetectionStrategy.OnPush, template: "<label for=\"search_{{ unifyKey(column.key) }}\">\r\n <input\r\n type=\"text\"\r\n id=\"search_{{ unifyKey(column.key) }}\"\r\n aria-label=\"Search\"\r\n placeholder=\"{{ column.placeholder ? column.placeholder : column.title }}\"\r\n class=\"ngx-table__header-search\"\r\n #input\r\n (input)=\"onSearch(input)\"\r\n />\r\n</label>\r\n" }]
|
|
19
|
+
}], propDecorators: { column: [{
|
|
20
|
+
type: Input
|
|
21
|
+
}], update: [{
|
|
22
|
+
type: Output
|
|
23
|
+
}] } });
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1lYXN5LXRhYmxlL3NyYy9saWIvY29tcG9uZW50cy9oZWFkZXIvaGVhZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1lYXN5LXRhYmxlL3NyYy9saWIvY29tcG9uZW50cy9oZWFkZXIvaGVhZGVyLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFRaEcsTUFBTSxPQUFPLGVBQWU7SUFMNUI7UUFPcUIsV0FBTSxHQUFHLElBQUksWUFBWSxFQUF5QyxDQUFDO0tBU3ZGO0lBUEMsUUFBUSxDQUFDLEdBQVc7UUFDbEIsT0FBTyxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQsUUFBUSxDQUFDLEtBQXVCO1FBQzlCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDbkUsQ0FBQzs4R0FWVSxlQUFlO2tHQUFmLGVBQWUsaUhDUjVCLHdXQVdBOzsyRkRIYSxlQUFlO2tCQUwzQixTQUFTOytCQUNFLGNBQWMsbUJBRVAsdUJBQXVCLENBQUMsTUFBTTs4QkFHdEMsTUFBTTtzQkFBZCxLQUFLO2dCQUNhLE1BQU07c0JBQXhCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29sdW1ucyB9IGZyb20gJy4uLy4uJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAndGFibGUtaGVhZGVyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vaGVhZGVyLmh0bWwnLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgSGVhZGVyQ29tcG9uZW50IHtcclxuICBASW5wdXQoKSBjb2x1bW46IENvbHVtbnM7XHJcbiAgQE91dHB1dCgpIHJlYWRvbmx5IHVwZGF0ZSA9IG5ldyBFdmVudEVtaXR0ZXI8QXJyYXk8eyBrZXk6IHN0cmluZzsgdmFsdWU6IHN0cmluZyB9Pj4oKTtcclxuXHJcbiAgdW5pZnlLZXkoa2V5OiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIGtleS5yZXBsYWNlKCcuJywgJ18nKTtcclxuICB9XHJcblxyXG4gIG9uU2VhcmNoKGlucHV0OiBIVE1MSW5wdXRFbGVtZW50KTogdm9pZCB7XHJcbiAgICB0aGlzLnVwZGF0ZS5lbWl0KFt7IHZhbHVlOiBpbnB1dC52YWx1ZSwga2V5OiB0aGlzLmNvbHVtbi5rZXkgfV0pO1xyXG4gIH1cclxufVxyXG4iLCI8bGFiZWwgZm9yPVwic2VhcmNoX3t7IHVuaWZ5S2V5KGNvbHVtbi5rZXkpIH19XCI+XHJcbiAgPGlucHV0XHJcbiAgICB0eXBlPVwidGV4dFwiXHJcbiAgICBpZD1cInNlYXJjaF97eyB1bmlmeUtleShjb2x1bW4ua2V5KSB9fVwiXHJcbiAgICBhcmlhLWxhYmVsPVwiU2VhcmNoXCJcclxuICAgIHBsYWNlaG9sZGVyPVwie3sgY29sdW1uLnBsYWNlaG9sZGVyID8gY29sdW1uLnBsYWNlaG9sZGVyIDogY29sdW1uLnRpdGxlIH19XCJcclxuICAgIGNsYXNzPVwibmd4LXRhYmxlX19oZWFkZXItc2VhcmNoXCJcclxuICAgICNpbnB1dFxyXG4gICAgKGlucHV0KT1cIm9uU2VhcmNoKGlucHV0KVwiXHJcbiAgLz5cclxuPC9sYWJlbD5cclxuIl19
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, EventEmitter, HostListener, Input, Output, ViewChild, } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@angular/common";
|
|
4
|
+
import * as i2 from "ngx-pagination";
|
|
5
|
+
export class PaginationComponent {
|
|
6
|
+
constructor() {
|
|
7
|
+
this.updateRange = new EventEmitter();
|
|
8
|
+
this.ranges = [5, 10, 25, 50, 100];
|
|
9
|
+
this.showRange = false;
|
|
10
|
+
this.screenReaderPaginationLabel = 'Pagination';
|
|
11
|
+
this.screenReaderPageLabel = 'page';
|
|
12
|
+
this.screenReaderCurrentLabel = 'You are on page';
|
|
13
|
+
this.previousLabel = '';
|
|
14
|
+
this.nextLabel = '';
|
|
15
|
+
this.directionLinks = true;
|
|
16
|
+
}
|
|
17
|
+
onClick(targetElement) {
|
|
18
|
+
if (this.paginationRange && !this.paginationRange.nativeElement.contains(targetElement)) {
|
|
19
|
+
this.showRange = false;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
ngOnChanges(changes) {
|
|
23
|
+
const { config } = changes;
|
|
24
|
+
if (config && config.currentValue) {
|
|
25
|
+
this.selectedLimit = this.config.rows;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
onPageChange(page) {
|
|
29
|
+
this.updateRange.emit({
|
|
30
|
+
page,
|
|
31
|
+
limit: this.selectedLimit,
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
changeLimit(limit, callFromAPI) {
|
|
35
|
+
if (!callFromAPI) {
|
|
36
|
+
this.showRange = !this.showRange;
|
|
37
|
+
}
|
|
38
|
+
this.selectedLimit = limit;
|
|
39
|
+
this.updateRange.emit({
|
|
40
|
+
page: 1,
|
|
41
|
+
limit,
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: PaginationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
45
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", type: PaginationComponent, selector: "pagination", inputs: { pagination: "pagination", config: "config", id: "id" }, outputs: { updateRange: "updateRange" }, host: { listeners: { "document:click": "onClick($event.target)" } }, viewQueries: [{ propertyName: "paginationDirective", first: true, predicate: ["paginationDirective"], descendants: true }, { propertyName: "paginationRange", first: true, predicate: ["paginationRange"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div\r\n class=\"ngx-pagination-wrapper\"\r\n [style.display]=\"config.paginationEnabled ? '' : 'none'\"\r\n [class.ngx-table__table--dark-pagination-wrapper]=\"config.tableLayout.theme === 'dark'\"\r\n>\r\n <div class=\"ngx-pagination-steps\">\r\n <pagination-template\r\n #paginationDirective=\"paginationApi\"\r\n id=\"pagination-controls\"\r\n [id]=\"id\"\r\n [class.ngx-table__table--dark-pagination]=\"config.tableLayout.theme === 'dark'\"\r\n [maxSize]=\"config.paginationMaxSize || 5\"\r\n (pageChange)=\"onPageChange($event)\"\r\n >\r\n <ul\r\n class=\"ngx-pagination\"\r\n role=\"navigation\"\r\n [attr.aria-label]=\"screenReaderPaginationLabel\"\r\n [class.responsive]=\"true\"\r\n >\r\n <li\r\n class=\"pagination-previous\"\r\n [class.disabled]=\"paginationDirective.isFirstPage()\"\r\n *ngIf=\"directionLinks\"\r\n >\r\n <a\r\n tabindex=\"0\"\r\n *ngIf=\"1 < paginationDirective.getCurrent()\"\r\n (keyup.enter)=\"paginationDirective.previous()\"\r\n (click)=\"paginationDirective.previous()\"\r\n [attr.aria-label]=\"previousLabel + ' ' + screenReaderPageLabel\"\r\n >\r\n {{ previousLabel }} <span class=\"show-for-sr\">{{ screenReaderPageLabel }}</span>\r\n </a>\r\n <span *ngIf=\"paginationDirective.isFirstPage()\">\r\n {{ previousLabel }} <span class=\"show-for-sr\">{{ screenReaderPageLabel }}</span>\r\n </span>\r\n </li>\r\n <li class=\"small-screen\">\r\n {{ paginationDirective.getCurrent() }} / {{ paginationDirective.getLastPage() }}\r\n </li>\r\n <li\r\n [class.current]=\"paginationDirective.getCurrent() === page.value\"\r\n [class.ellipsis]=\"page.label === '...'\"\r\n *ngFor=\"let page of paginationDirective.pages\"\r\n >\r\n <a\r\n tabindex=\"0\"\r\n (keyup.enter)=\"paginationDirective.setCurrent(page.value)\"\r\n (click)=\"paginationDirective.setCurrent(page.value)\"\r\n *ngIf=\"paginationDirective.getCurrent() !== page.value\"\r\n >\r\n <span class=\"show-for-sr\">{{ screenReaderPageLabel }} </span>\r\n <span>{{ page.label }}</span>\r\n </a>\r\n <ng-container *ngIf=\"paginationDirective.getCurrent() === page.value\">\r\n <span class=\"show-for-sr\">{{ screenReaderCurrentLabel }} </span>\r\n <span>{{ page.label }}</span>\r\n </ng-container>\r\n </li>\r\n <li\r\n class=\"pagination-next\"\r\n [class.disabled]=\"paginationDirective.isLastPage()\"\r\n *ngIf=\"directionLinks\"\r\n >\r\n <a\r\n tabindex=\"0\"\r\n *ngIf=\"!paginationDirective.isLastPage()\"\r\n (keyup.enter)=\"paginationDirective.next()\"\r\n (click)=\"paginationDirective.next()\"\r\n [attr.aria-label]=\"nextLabel + ' ' + screenReaderPageLabel\"\r\n >\r\n {{ nextLabel }} <span class=\"show-for-sr\">{{ screenReaderPageLabel }}</span>\r\n </a>\r\n <span *ngIf=\"paginationDirective.isLastPage()\">\r\n {{ nextLabel }} <span class=\"show-for-sr\">{{ screenReaderPageLabel }}</span>\r\n </span>\r\n </li>\r\n </ul>\r\n </pagination-template>\r\n </div>\r\n <div\r\n class=\"ngx-pagination-range\"\r\n #paginationRange\r\n [class.ngx-table__table--dark-pagination-range]=\"config.tableLayout.theme === 'dark'\"\r\n *ngIf=\"config.paginationRangeEnabled\"\r\n >\r\n <div class=\"ngx-dropdown ngx-pagination-range-dropdown\" id=\"rowAmount\">\r\n <div class=\"ngx-btn-group\">\r\n <div class=\"ngx-pagination-range-dropdown-button\" (click)=\"showRange = !showRange\">\r\n {{selectedLimit}} <i class=\"ngx-icon ngx-icon-arrow-down\"></i>\r\n </div>\r\n <ul class=\"ngx-menu\" *ngIf=\"showRange\">\r\n <li\r\n class=\"ngx-pagination-range-dropdown-button-item\"\r\n [class.ngx-pagination-range--selected]=\"limit === selectedLimit\"\r\n (click)=\"changeLimit(limit, false)\"\r\n *ngFor=\"let limit of ranges\"\r\n >\r\n <span>{{limit}}</span>\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.PaginationControlsDirective, selector: "pagination-template,[pagination-template]", inputs: ["id", "maxSize"], outputs: ["pageChange", "pageBoundsCorrection"], exportAs: ["paginationApi"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
46
|
+
}
|
|
47
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: PaginationComponent, decorators: [{
|
|
48
|
+
type: Component,
|
|
49
|
+
args: [{ selector: 'pagination', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\r\n class=\"ngx-pagination-wrapper\"\r\n [style.display]=\"config.paginationEnabled ? '' : 'none'\"\r\n [class.ngx-table__table--dark-pagination-wrapper]=\"config.tableLayout.theme === 'dark'\"\r\n>\r\n <div class=\"ngx-pagination-steps\">\r\n <pagination-template\r\n #paginationDirective=\"paginationApi\"\r\n id=\"pagination-controls\"\r\n [id]=\"id\"\r\n [class.ngx-table__table--dark-pagination]=\"config.tableLayout.theme === 'dark'\"\r\n [maxSize]=\"config.paginationMaxSize || 5\"\r\n (pageChange)=\"onPageChange($event)\"\r\n >\r\n <ul\r\n class=\"ngx-pagination\"\r\n role=\"navigation\"\r\n [attr.aria-label]=\"screenReaderPaginationLabel\"\r\n [class.responsive]=\"true\"\r\n >\r\n <li\r\n class=\"pagination-previous\"\r\n [class.disabled]=\"paginationDirective.isFirstPage()\"\r\n *ngIf=\"directionLinks\"\r\n >\r\n <a\r\n tabindex=\"0\"\r\n *ngIf=\"1 < paginationDirective.getCurrent()\"\r\n (keyup.enter)=\"paginationDirective.previous()\"\r\n (click)=\"paginationDirective.previous()\"\r\n [attr.aria-label]=\"previousLabel + ' ' + screenReaderPageLabel\"\r\n >\r\n {{ previousLabel }} <span class=\"show-for-sr\">{{ screenReaderPageLabel }}</span>\r\n </a>\r\n <span *ngIf=\"paginationDirective.isFirstPage()\">\r\n {{ previousLabel }} <span class=\"show-for-sr\">{{ screenReaderPageLabel }}</span>\r\n </span>\r\n </li>\r\n <li class=\"small-screen\">\r\n {{ paginationDirective.getCurrent() }} / {{ paginationDirective.getLastPage() }}\r\n </li>\r\n <li\r\n [class.current]=\"paginationDirective.getCurrent() === page.value\"\r\n [class.ellipsis]=\"page.label === '...'\"\r\n *ngFor=\"let page of paginationDirective.pages\"\r\n >\r\n <a\r\n tabindex=\"0\"\r\n (keyup.enter)=\"paginationDirective.setCurrent(page.value)\"\r\n (click)=\"paginationDirective.setCurrent(page.value)\"\r\n *ngIf=\"paginationDirective.getCurrent() !== page.value\"\r\n >\r\n <span class=\"show-for-sr\">{{ screenReaderPageLabel }} </span>\r\n <span>{{ page.label }}</span>\r\n </a>\r\n <ng-container *ngIf=\"paginationDirective.getCurrent() === page.value\">\r\n <span class=\"show-for-sr\">{{ screenReaderCurrentLabel }} </span>\r\n <span>{{ page.label }}</span>\r\n </ng-container>\r\n </li>\r\n <li\r\n class=\"pagination-next\"\r\n [class.disabled]=\"paginationDirective.isLastPage()\"\r\n *ngIf=\"directionLinks\"\r\n >\r\n <a\r\n tabindex=\"0\"\r\n *ngIf=\"!paginationDirective.isLastPage()\"\r\n (keyup.enter)=\"paginationDirective.next()\"\r\n (click)=\"paginationDirective.next()\"\r\n [attr.aria-label]=\"nextLabel + ' ' + screenReaderPageLabel\"\r\n >\r\n {{ nextLabel }} <span class=\"show-for-sr\">{{ screenReaderPageLabel }}</span>\r\n </a>\r\n <span *ngIf=\"paginationDirective.isLastPage()\">\r\n {{ nextLabel }} <span class=\"show-for-sr\">{{ screenReaderPageLabel }}</span>\r\n </span>\r\n </li>\r\n </ul>\r\n </pagination-template>\r\n </div>\r\n <div\r\n class=\"ngx-pagination-range\"\r\n #paginationRange\r\n [class.ngx-table__table--dark-pagination-range]=\"config.tableLayout.theme === 'dark'\"\r\n *ngIf=\"config.paginationRangeEnabled\"\r\n >\r\n <div class=\"ngx-dropdown ngx-pagination-range-dropdown\" id=\"rowAmount\">\r\n <div class=\"ngx-btn-group\">\r\n <div class=\"ngx-pagination-range-dropdown-button\" (click)=\"showRange = !showRange\">\r\n {{selectedLimit}} <i class=\"ngx-icon ngx-icon-arrow-down\"></i>\r\n </div>\r\n <ul class=\"ngx-menu\" *ngIf=\"showRange\">\r\n <li\r\n class=\"ngx-pagination-range-dropdown-button-item\"\r\n [class.ngx-pagination-range--selected]=\"limit === selectedLimit\"\r\n (click)=\"changeLimit(limit, false)\"\r\n *ngFor=\"let limit of ranges\"\r\n >\r\n <span>{{limit}}</span>\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n" }]
|
|
50
|
+
}], propDecorators: { paginationDirective: [{
|
|
51
|
+
type: ViewChild,
|
|
52
|
+
args: ['paginationDirective']
|
|
53
|
+
}], paginationRange: [{
|
|
54
|
+
type: ViewChild,
|
|
55
|
+
args: ['paginationRange']
|
|
56
|
+
}], pagination: [{
|
|
57
|
+
type: Input
|
|
58
|
+
}], config: [{
|
|
59
|
+
type: Input
|
|
60
|
+
}], id: [{
|
|
61
|
+
type: Input
|
|
62
|
+
}], updateRange: [{
|
|
63
|
+
type: Output
|
|
64
|
+
}], onClick: [{
|
|
65
|
+
type: HostListener,
|
|
66
|
+
args: ['document:click', ['$event.target']]
|
|
67
|
+
}] } });
|
|
68
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtZWFzeS10YWJsZS9zcmMvbGliL2NvbXBvbmVudHMvcGFnaW5hdGlvbi9wYWdpbmF0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1lYXN5LXRhYmxlL3NyYy9saWIvY29tcG9uZW50cy9wYWdpbmF0aW9uL3BhZ2luYXRpb24uaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBRU4sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDOzs7O0FBY3ZCLE1BQU0sT0FBTyxtQkFBbUI7SUFMaEM7UUFZcUIsZ0JBQVcsR0FBa0MsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUM1RSxXQUFNLEdBQWEsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFFeEMsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixnQ0FBMkIsR0FBRyxZQUFZLENBQUM7UUFDM0MsMEJBQXFCLEdBQUcsTUFBTSxDQUFDO1FBQy9CLDZCQUF3QixHQUFHLGlCQUFpQixDQUFDO1FBQzdDLGtCQUFhLEdBQUcsRUFBRSxDQUFDO1FBQ25CLGNBQVMsR0FBRyxFQUFFLENBQUM7UUFDZixtQkFBYyxHQUFHLElBQUksQ0FBQztLQWlDOUI7SUE5QlEsT0FBTyxDQUFDLGFBQWtCO1FBQy9CLElBQUksSUFBSSxDQUFDLGVBQWUsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDO1lBQ3hGLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLENBQUM7SUFDSCxDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxPQUFPLENBQUM7UUFDM0IsSUFBSSxNQUFNLElBQUksTUFBTSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ2xDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7UUFDeEMsQ0FBQztJQUNILENBQUM7SUFFRCxZQUFZLENBQUMsSUFBWTtRQUN2QixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQztZQUNwQixJQUFJO1lBQ0osS0FBSyxFQUFFLElBQUksQ0FBQyxhQUFhO1NBQzFCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxXQUFXLENBQUMsS0FBYSxFQUFFLFdBQW9CO1FBQzdDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNqQixJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUNuQyxDQUFDO1FBQ0QsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7UUFDM0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUM7WUFDcEIsSUFBSSxFQUFFLENBQUM7WUFDUCxLQUFLO1NBQ04sQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs4R0FoRFUsbUJBQW1CO2tHQUFuQixtQkFBbUIsd2RDeEJoQyxvNUlBMEdBOzsyRkRsRmEsbUJBQW1CO2tCQUwvQixTQUFTOytCQUNFLFlBQVksbUJBRUwsdUJBQXVCLENBQUMsTUFBTTs4QkFJL0MsbUJBQW1CO3NCQURsQixTQUFTO3VCQUFDLHFCQUFxQjtnQkFFRixlQUFlO3NCQUE1QyxTQUFTO3VCQUFDLGlCQUFpQjtnQkFDbkIsVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csRUFBRTtzQkFBVixLQUFLO2dCQUNhLFdBQVc7c0JBQTdCLE1BQU07Z0JBWUEsT0FBTztzQkFEYixZQUFZO3VCQUFDLGdCQUFnQixFQUFFLENBQUMsZUFBZSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIEhvc3RMaXN0ZW5lcixcclxuICBJbnB1dCxcclxuICBPbkNoYW5nZXMsXHJcbiAgT3V0cHV0LFxyXG4gIFNpbXBsZUNoYW5nZXMsXHJcbiAgVmlld0NoaWxkLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb25maWcgfSBmcm9tICcuLi8uLic7XHJcbmltcG9ydCB7IFBhZ2luYXRpb25Db250cm9sc0RpcmVjdGl2ZSB9IGZyb20gJ25neC1wYWdpbmF0aW9uJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUGFnaW5hdGlvblJhbmdlIHtcclxuICBwYWdlOiBudW1iZXI7XHJcbiAgbGltaXQ6IG51bWJlcjtcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdwYWdpbmF0aW9uJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vcGFnaW5hdGlvbi5odG1sJyxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxufSlcclxuZXhwb3J0IGNsYXNzIFBhZ2luYXRpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xyXG4gIEBWaWV3Q2hpbGQoJ3BhZ2luYXRpb25EaXJlY3RpdmUnKVxyXG4gIHBhZ2luYXRpb25EaXJlY3RpdmU6IFBhZ2luYXRpb25Db250cm9sc0RpcmVjdGl2ZTtcclxuICBAVmlld0NoaWxkKCdwYWdpbmF0aW9uUmFuZ2UnKSBwYWdpbmF0aW9uUmFuZ2U7XHJcbiAgQElucHV0KCkgcGFnaW5hdGlvbjtcclxuICBASW5wdXQoKSBjb25maWc6IENvbmZpZztcclxuICBASW5wdXQoKSBpZDtcclxuICBAT3V0cHV0KCkgcmVhZG9ubHkgdXBkYXRlUmFuZ2U6IEV2ZW50RW1pdHRlcjxQYWdpbmF0aW9uUmFuZ2U+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIHB1YmxpYyByYW5nZXM6IG51bWJlcltdID0gWzUsIDEwLCAyNSwgNTAsIDEwMF07XHJcbiAgcHVibGljIHNlbGVjdGVkTGltaXQ6IG51bWJlcjtcclxuICBwdWJsaWMgc2hvd1JhbmdlID0gZmFsc2U7XHJcbiAgcHVibGljIHNjcmVlblJlYWRlclBhZ2luYXRpb25MYWJlbCA9ICdQYWdpbmF0aW9uJztcclxuICBwdWJsaWMgc2NyZWVuUmVhZGVyUGFnZUxhYmVsID0gJ3BhZ2UnO1xyXG4gIHB1YmxpYyBzY3JlZW5SZWFkZXJDdXJyZW50TGFiZWwgPSAnWW91IGFyZSBvbiBwYWdlJztcclxuICBwdWJsaWMgcHJldmlvdXNMYWJlbCA9ICcnO1xyXG4gIHB1YmxpYyBuZXh0TGFiZWwgPSAnJztcclxuICBwdWJsaWMgZGlyZWN0aW9uTGlua3MgPSB0cnVlO1xyXG5cclxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDpjbGljaycsIFsnJGV2ZW50LnRhcmdldCddKVxyXG4gIHB1YmxpYyBvbkNsaWNrKHRhcmdldEVsZW1lbnQ6IGFueSk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMucGFnaW5hdGlvblJhbmdlICYmICF0aGlzLnBhZ2luYXRpb25SYW5nZS5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKHRhcmdldEVsZW1lbnQpKSB7XHJcbiAgICAgIHRoaXMuc2hvd1JhbmdlID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBjb25zdCB7IGNvbmZpZyB9ID0gY2hhbmdlcztcclxuICAgIGlmIChjb25maWcgJiYgY29uZmlnLmN1cnJlbnRWYWx1ZSkge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkTGltaXQgPSB0aGlzLmNvbmZpZy5yb3dzO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25QYWdlQ2hhbmdlKHBhZ2U6IG51bWJlcik6IHZvaWQge1xyXG4gICAgdGhpcy51cGRhdGVSYW5nZS5lbWl0KHtcclxuICAgICAgcGFnZSxcclxuICAgICAgbGltaXQ6IHRoaXMuc2VsZWN0ZWRMaW1pdCxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgY2hhbmdlTGltaXQobGltaXQ6IG51bWJlciwgY2FsbEZyb21BUEk6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIGlmICghY2FsbEZyb21BUEkpIHtcclxuICAgICAgdGhpcy5zaG93UmFuZ2UgPSAhdGhpcy5zaG93UmFuZ2U7XHJcbiAgICB9XHJcbiAgICB0aGlzLnNlbGVjdGVkTGltaXQgPSBsaW1pdDtcclxuICAgIHRoaXMudXBkYXRlUmFuZ2UuZW1pdCh7XHJcbiAgICAgIHBhZ2U6IDEsXHJcbiAgICAgIGxpbWl0LFxyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXZcclxuICBjbGFzcz1cIm5neC1wYWdpbmF0aW9uLXdyYXBwZXJcIlxyXG4gIFtzdHlsZS5kaXNwbGF5XT1cImNvbmZpZy5wYWdpbmF0aW9uRW5hYmxlZCA/ICcnIDogJ25vbmUnXCJcclxuICBbY2xhc3Mubmd4LXRhYmxlX190YWJsZS0tZGFyay1wYWdpbmF0aW9uLXdyYXBwZXJdPVwiY29uZmlnLnRhYmxlTGF5b3V0LnRoZW1lID09PSAnZGFyaydcIlxyXG4+XHJcbiAgPGRpdiBjbGFzcz1cIm5neC1wYWdpbmF0aW9uLXN0ZXBzXCI+XHJcbiAgICA8cGFnaW5hdGlvbi10ZW1wbGF0ZVxyXG4gICAgICAjcGFnaW5hdGlvbkRpcmVjdGl2ZT1cInBhZ2luYXRpb25BcGlcIlxyXG4gICAgICBpZD1cInBhZ2luYXRpb24tY29udHJvbHNcIlxyXG4gICAgICBbaWRdPVwiaWRcIlxyXG4gICAgICBbY2xhc3Mubmd4LXRhYmxlX190YWJsZS0tZGFyay1wYWdpbmF0aW9uXT1cImNvbmZpZy50YWJsZUxheW91dC50aGVtZSA9PT0gJ2RhcmsnXCJcclxuICAgICAgW21heFNpemVdPVwiY29uZmlnLnBhZ2luYXRpb25NYXhTaXplIHx8IDVcIlxyXG4gICAgICAocGFnZUNoYW5nZSk9XCJvblBhZ2VDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICA+XHJcbiAgICAgIDx1bFxyXG4gICAgICAgIGNsYXNzPVwibmd4LXBhZ2luYXRpb25cIlxyXG4gICAgICAgIHJvbGU9XCJuYXZpZ2F0aW9uXCJcclxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInNjcmVlblJlYWRlclBhZ2luYXRpb25MYWJlbFwiXHJcbiAgICAgICAgW2NsYXNzLnJlc3BvbnNpdmVdPVwidHJ1ZVwiXHJcbiAgICAgID5cclxuICAgICAgICA8bGlcclxuICAgICAgICAgIGNsYXNzPVwicGFnaW5hdGlvbi1wcmV2aW91c1wiXHJcbiAgICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwicGFnaW5hdGlvbkRpcmVjdGl2ZS5pc0ZpcnN0UGFnZSgpXCJcclxuICAgICAgICAgICpuZ0lmPVwiZGlyZWN0aW9uTGlua3NcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxhXHJcbiAgICAgICAgICAgIHRhYmluZGV4PVwiMFwiXHJcbiAgICAgICAgICAgICpuZ0lmPVwiMSA8IHBhZ2luYXRpb25EaXJlY3RpdmUuZ2V0Q3VycmVudCgpXCJcclxuICAgICAgICAgICAgKGtleXVwLmVudGVyKT1cInBhZ2luYXRpb25EaXJlY3RpdmUucHJldmlvdXMoKVwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJwYWdpbmF0aW9uRGlyZWN0aXZlLnByZXZpb3VzKClcIlxyXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInByZXZpb3VzTGFiZWwgKyAnICcgKyBzY3JlZW5SZWFkZXJQYWdlTGFiZWxcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICB7eyBwcmV2aW91c0xhYmVsIH19IDxzcGFuIGNsYXNzPVwic2hvdy1mb3Itc3JcIj57eyBzY3JlZW5SZWFkZXJQYWdlTGFiZWwgfX08L3NwYW4+XHJcbiAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICA8c3BhbiAqbmdJZj1cInBhZ2luYXRpb25EaXJlY3RpdmUuaXNGaXJzdFBhZ2UoKVwiPlxyXG4gICAgICAgICAgICB7eyBwcmV2aW91c0xhYmVsIH19IDxzcGFuIGNsYXNzPVwic2hvdy1mb3Itc3JcIj57eyBzY3JlZW5SZWFkZXJQYWdlTGFiZWwgfX08L3NwYW4+XHJcbiAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPC9saT5cclxuICAgICAgICA8bGkgY2xhc3M9XCJzbWFsbC1zY3JlZW5cIj5cclxuICAgICAgICAgIHt7IHBhZ2luYXRpb25EaXJlY3RpdmUuZ2V0Q3VycmVudCgpIH19IC8ge3sgcGFnaW5hdGlvbkRpcmVjdGl2ZS5nZXRMYXN0UGFnZSgpIH19XHJcbiAgICAgICAgPC9saT5cclxuICAgICAgICA8bGlcclxuICAgICAgICAgIFtjbGFzcy5jdXJyZW50XT1cInBhZ2luYXRpb25EaXJlY3RpdmUuZ2V0Q3VycmVudCgpID09PSBwYWdlLnZhbHVlXCJcclxuICAgICAgICAgIFtjbGFzcy5lbGxpcHNpc109XCJwYWdlLmxhYmVsID09PSAnLi4uJ1wiXHJcbiAgICAgICAgICAqbmdGb3I9XCJsZXQgcGFnZSBvZiBwYWdpbmF0aW9uRGlyZWN0aXZlLnBhZ2VzXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8YVxyXG4gICAgICAgICAgICB0YWJpbmRleD1cIjBcIlxyXG4gICAgICAgICAgICAoa2V5dXAuZW50ZXIpPVwicGFnaW5hdGlvbkRpcmVjdGl2ZS5zZXRDdXJyZW50KHBhZ2UudmFsdWUpXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cInBhZ2luYXRpb25EaXJlY3RpdmUuc2V0Q3VycmVudChwYWdlLnZhbHVlKVwiXHJcbiAgICAgICAgICAgICpuZ0lmPVwicGFnaW5hdGlvbkRpcmVjdGl2ZS5nZXRDdXJyZW50KCkgIT09IHBhZ2UudmFsdWVcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNob3ctZm9yLXNyXCI+e3sgc2NyZWVuUmVhZGVyUGFnZUxhYmVsIH19IDwvc3Bhbj5cclxuICAgICAgICAgICAgPHNwYW4+e3sgcGFnZS5sYWJlbCB9fTwvc3Bhbj5cclxuICAgICAgICAgIDwvYT5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJwYWdpbmF0aW9uRGlyZWN0aXZlLmdldEN1cnJlbnQoKSA9PT0gcGFnZS52YWx1ZVwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNob3ctZm9yLXNyXCI+e3sgc2NyZWVuUmVhZGVyQ3VycmVudExhYmVsIH19IDwvc3Bhbj5cclxuICAgICAgICAgICAgPHNwYW4+e3sgcGFnZS5sYWJlbCB9fTwvc3Bhbj5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvbGk+XHJcbiAgICAgICAgPGxpXHJcbiAgICAgICAgICBjbGFzcz1cInBhZ2luYXRpb24tbmV4dFwiXHJcbiAgICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwicGFnaW5hdGlvbkRpcmVjdGl2ZS5pc0xhc3RQYWdlKClcIlxyXG4gICAgICAgICAgKm5nSWY9XCJkaXJlY3Rpb25MaW5rc1wiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPGFcclxuICAgICAgICAgICAgdGFiaW5kZXg9XCIwXCJcclxuICAgICAgICAgICAgKm5nSWY9XCIhcGFnaW5hdGlvbkRpcmVjdGl2ZS5pc0xhc3RQYWdlKClcIlxyXG4gICAgICAgICAgICAoa2V5dXAuZW50ZXIpPVwicGFnaW5hdGlvbkRpcmVjdGl2ZS5uZXh0KClcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwicGFnaW5hdGlvbkRpcmVjdGl2ZS5uZXh0KClcIlxyXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIm5leHRMYWJlbCArICcgJyArIHNjcmVlblJlYWRlclBhZ2VMYWJlbFwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIHt7IG5leHRMYWJlbCB9fSA8c3BhbiBjbGFzcz1cInNob3ctZm9yLXNyXCI+e3sgc2NyZWVuUmVhZGVyUGFnZUxhYmVsIH19PC9zcGFuPlxyXG4gICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgPHNwYW4gKm5nSWY9XCJwYWdpbmF0aW9uRGlyZWN0aXZlLmlzTGFzdFBhZ2UoKVwiPlxyXG4gICAgICAgICAgICB7eyBuZXh0TGFiZWwgfX0gPHNwYW4gY2xhc3M9XCJzaG93LWZvci1zclwiPnt7IHNjcmVlblJlYWRlclBhZ2VMYWJlbCB9fTwvc3Bhbj5cclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8L2xpPlxyXG4gICAgICA8L3VsPlxyXG4gICAgPC9wYWdpbmF0aW9uLXRlbXBsYXRlPlxyXG4gIDwvZGl2PlxyXG4gIDxkaXZcclxuICAgIGNsYXNzPVwibmd4LXBhZ2luYXRpb24tcmFuZ2VcIlxyXG4gICAgI3BhZ2luYXRpb25SYW5nZVxyXG4gICAgW2NsYXNzLm5neC10YWJsZV9fdGFibGUtLWRhcmstcGFnaW5hdGlvbi1yYW5nZV09XCJjb25maWcudGFibGVMYXlvdXQudGhlbWUgPT09ICdkYXJrJ1wiXHJcbiAgICAqbmdJZj1cImNvbmZpZy5wYWdpbmF0aW9uUmFuZ2VFbmFibGVkXCJcclxuICA+XHJcbiAgICA8ZGl2IGNsYXNzPVwibmd4LWRyb3Bkb3duIG5neC1wYWdpbmF0aW9uLXJhbmdlLWRyb3Bkb3duXCIgaWQ9XCJyb3dBbW91bnRcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cIm5neC1idG4tZ3JvdXBcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibmd4LXBhZ2luYXRpb24tcmFuZ2UtZHJvcGRvd24tYnV0dG9uXCIgKGNsaWNrKT1cInNob3dSYW5nZSA9ICFzaG93UmFuZ2VcIj5cclxuICAgICAgICAgIHt7c2VsZWN0ZWRMaW1pdH19IDxpIGNsYXNzPVwibmd4LWljb24gbmd4LWljb24tYXJyb3ctZG93blwiPjwvaT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8dWwgY2xhc3M9XCJuZ3gtbWVudVwiICpuZ0lmPVwic2hvd1JhbmdlXCI+XHJcbiAgICAgICAgICA8bGlcclxuICAgICAgICAgICAgY2xhc3M9XCJuZ3gtcGFnaW5hdGlvbi1yYW5nZS1kcm9wZG93bi1idXR0b24taXRlbVwiXHJcbiAgICAgICAgICAgIFtjbGFzcy5uZ3gtcGFnaW5hdGlvbi1yYW5nZS0tc2VsZWN0ZWRdPVwibGltaXQgPT09IHNlbGVjdGVkTGltaXRcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwiY2hhbmdlTGltaXQobGltaXQsIGZhbHNlKVwiXHJcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBsaW1pdCBvZiByYW5nZXNcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8c3Bhbj57e2xpbWl0fX08L3NwYW4+XHJcbiAgICAgICAgICA8L2xpPlxyXG4gICAgICAgIDwvdWw+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, EventEmitter, HostListener, Input, Output, ViewChild, ViewChildren, } from '@angular/core';
|
|
2
|
+
import { Event } from '../..';
|
|
3
|
+
import { StyleService } from '../../services/style.service';
|
|
4
|
+
import { moveItemInArray } from '@angular/cdk/drag-drop';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "../../services/style.service";
|
|
7
|
+
import * as i2 from "@angular/common";
|
|
8
|
+
import * as i3 from "@angular/cdk/drag-drop";
|
|
9
|
+
import * as i4 from "../header/header.component";
|
|
10
|
+
export class TableTHeadComponent {
|
|
11
|
+
onClick(targetElement) {
|
|
12
|
+
if (this.additionalActionMenu &&
|
|
13
|
+
!this.additionalActionMenu.nativeElement.contains(targetElement)) {
|
|
14
|
+
this.menuActive = false;
|
|
15
|
+
}
|
|
16
|
+
// if click outside the header then close opened Header Action Template
|
|
17
|
+
if (this.openedHeaderActionTemplate &&
|
|
18
|
+
// if no header have the clicked point
|
|
19
|
+
!this.headerDropdown.toArray().some((ref) => ref.nativeElement.contains(targetElement))) {
|
|
20
|
+
this.openedHeaderActionTemplate = null;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
constructor(styleService) {
|
|
24
|
+
this.styleService = styleService;
|
|
25
|
+
this.menuActive = false;
|
|
26
|
+
this.openedHeaderActionTemplate = null;
|
|
27
|
+
this.onSelectAllBinded = this.onSelectAll.bind(this);
|
|
28
|
+
this.filter = new EventEmitter();
|
|
29
|
+
this.order = new EventEmitter();
|
|
30
|
+
this.selectAll = new EventEmitter();
|
|
31
|
+
this.event = new EventEmitter();
|
|
32
|
+
}
|
|
33
|
+
getColumnDefinition(column) {
|
|
34
|
+
return column.searchEnabled || typeof column.searchEnabled === 'undefined';
|
|
35
|
+
}
|
|
36
|
+
orderBy(column) {
|
|
37
|
+
this.order.emit(column);
|
|
38
|
+
}
|
|
39
|
+
isOrderEnabled(column) {
|
|
40
|
+
const columnOrderEnabled = column.orderEnabled === undefined ? true : !!column.orderEnabled;
|
|
41
|
+
return this.config.orderEnabled && columnOrderEnabled;
|
|
42
|
+
}
|
|
43
|
+
columnDrop(event) {
|
|
44
|
+
moveItemInArray(this.columns, event.previousIndex, event.currentIndex);
|
|
45
|
+
}
|
|
46
|
+
onSearch($event) {
|
|
47
|
+
this.filter.emit($event);
|
|
48
|
+
}
|
|
49
|
+
getColumnWidth(column) {
|
|
50
|
+
if (column.width) {
|
|
51
|
+
return column.width;
|
|
52
|
+
}
|
|
53
|
+
return this.config.fixedColumnWidth ? 100 / this.columns.length + '%' : null;
|
|
54
|
+
}
|
|
55
|
+
onSelectAll() {
|
|
56
|
+
this.selectAll.emit();
|
|
57
|
+
}
|
|
58
|
+
onMouseDown(event, th) {
|
|
59
|
+
if (!this.config.resizeColumn) {
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
this.th = th;
|
|
63
|
+
this.startOffset = th.offsetWidth - event.pageX;
|
|
64
|
+
this.event.emit({
|
|
65
|
+
event: Event.onColumnResizeMouseDown,
|
|
66
|
+
value: event,
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
onMouseMove(event) {
|
|
70
|
+
if (!this.config.resizeColumn) {
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
if (this.th && this.th.style) {
|
|
74
|
+
this.th.style.width = this.startOffset + event.pageX + 'px';
|
|
75
|
+
this.th.style.cursor = 'col-resize';
|
|
76
|
+
this.th.style['user-select'] = 'none';
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
onMouseUp(event) {
|
|
80
|
+
if (!this.config.resizeColumn) {
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
this.event.emit({
|
|
84
|
+
event: Event.onColumnResizeMouseUp,
|
|
85
|
+
value: event,
|
|
86
|
+
});
|
|
87
|
+
this.th.style.cursor = 'default';
|
|
88
|
+
this.th = undefined;
|
|
89
|
+
}
|
|
90
|
+
showHeaderActionTemplateMenu(column) {
|
|
91
|
+
if (!column.headerActionTemplate) {
|
|
92
|
+
console.error('Column [headerActionTemplate] property not defined');
|
|
93
|
+
}
|
|
94
|
+
if (this.openedHeaderActionTemplate === column.key) {
|
|
95
|
+
this.openedHeaderActionTemplate = null;
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
98
|
+
this.openedHeaderActionTemplate = column.key;
|
|
99
|
+
}
|
|
100
|
+
showMenu() {
|
|
101
|
+
if (!this.additionalActionsTemplate) {
|
|
102
|
+
console.error('[additionalActionsTemplate] property not defined');
|
|
103
|
+
}
|
|
104
|
+
this.menuActive = !this.menuActive;
|
|
105
|
+
}
|
|
106
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: TableTHeadComponent, deps: [{ token: i1.StyleService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
107
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", type: TableTHeadComponent, selector: "[table-thead]", inputs: { config: "config", columns: "columns", sortKey: "sortKey", sortState: "sortState", selectAllTemplate: "selectAllTemplate", filtersTemplate: "filtersTemplate", additionalActionsTemplate: "additionalActionsTemplate" }, outputs: { filter: "filter", order: "order", selectAll: "selectAll", event: "event" }, host: { listeners: { "document:click": "onClick($event.target)" } }, providers: [StyleService], viewQueries: [{ propertyName: "th", first: true, predicate: ["th"], descendants: true }, { propertyName: "additionalActionMenu", first: true, predicate: ["additionalActionMenu"], descendants: true }, { propertyName: "headerDropdown", predicate: ["headerDropdown"], descendants: true }], ngImport: i0, template: "<tr class=\"ngx-table__header\" *ngIf=\"config.headerEnabled && !config.columnReorder\">\r\n <th *ngIf=\"config.checkboxes || config.radio\" [style.width]=\"'3%'\">\r\n <ng-container\r\n *ngIf=\"selectAllTemplate && config.checkboxes\"\r\n [ngTemplateOutlet]=\"selectAllTemplate\"\r\n [ngTemplateOutletContext]=\"{ $implicit: onSelectAllBinded }\"\r\n >\r\n </ng-container>\r\n <label\r\n class=\"ngx-form-checkbox\"\r\n for=\"selectAllCheckboxes\"\r\n *ngIf=\"!selectAllTemplate && config.checkboxes\"\r\n >\r\n <input type=\"checkbox\" id=\"selectAllCheckboxes\" (change)=\"onSelectAll()\" />\r\n <em class=\"ngx-form-icon\" id=\"selectAllCheckbox\"></em>\r\n </label>\r\n </th>\r\n <ng-container *ngFor=\"let column of columns; let colIndex = index; let last = last\">\r\n <th\r\n class=\"ngx-table__header-cell\"\r\n [class.pinned-left]=\"column.pinned\"\r\n [ngClass]=\"column.cssClass && column.cssClass.includeHeader ? column.cssClass.name : ''\"\r\n [style.left]=\"styleService.pinnedWidth(column.pinned, colIndex)\"\r\n #th\r\n [style.width]=\"getColumnWidth(column)\"\r\n (mousedown)=\"onMouseDown($event, th)\"\r\n (mouseup)=\"onMouseUp($event)\"\r\n (mousemove)=\"onMouseMove($event)\"\r\n >\r\n <div\r\n (click)=\"orderBy(column)\"\r\n style=\"display: inline\"\r\n [class.pointer]=\"isOrderEnabled(column)\"\r\n >\r\n <div class=\"ngx-table__header-title\">\r\n {{ column.title }}<span> </span>\r\n <em class=\"ngx-icon ngx-icon-pin\" *ngIf=\"column.pinned\"></em>\r\n <div [style.display]=\"config.orderEnabled ? 'inline' : 'none'\">\r\n <em\r\n *ngIf=\"sortKey === column.key && this.sortState.get(sortKey) === 'asc'\"\r\n class=\"ngx-icon ngx-icon-arrow-up\"\r\n >\r\n </em>\r\n <em\r\n *ngIf=\"sortKey === column.key && this.sortState.get(sortKey) === 'desc'\"\r\n class=\"ngx-icon ngx-icon-arrow-down\"\r\n >\r\n </em>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"ngx-dropdown\" *ngIf=\"!!column.headerActionTemplate\" #headerDropdown>\r\n <a class=\"ngx-btn ngx-btn-link\" (click)=\"showHeaderActionTemplateMenu(column)\">\r\n <span class=\"ngx-icon ngx-icon-more\"></span>\r\n </a>\r\n <div\r\n class=\"ngx-menu ngx-table__table-menu\"\r\n *ngIf=\"column.key === openedHeaderActionTemplate\"\r\n >\r\n <ng-container [ngTemplateOutlet]=\"column.headerActionTemplate\"> </ng-container>\r\n </div>\r\n </div>\r\n <div class=\"ngx-table__column-resizer\" *ngIf=\"config.resizeColumn && !last\"></div>\r\n </th>\r\n </ng-container>\r\n <th\r\n *ngIf=\"\r\n config.additionalActions ||\r\n config.detailsTemplate ||\r\n config.collapseAllRows ||\r\n config.groupRows\r\n \"\r\n class=\"ngx-table__header-cell-additional-actions\"\r\n >\r\n <div class=\"ngx-dropdown\" #additionalActionMenu *ngIf=\"config.additionalActions\">\r\n <a class=\"ngx-btn ngx-btn-link\" (click)=\"showMenu()\">\r\n <span class=\"ngx-icon ngx-icon-menu\"></span>\r\n </a>\r\n <ul class=\"ngx-menu ngx-table__table-menu\" *ngIf=\"menuActive\">\r\n <ng-container\r\n *ngIf=\"additionalActionsTemplate\"\r\n [ngTemplateOutlet]=\"additionalActionsTemplate\"\r\n >\r\n </ng-container>\r\n </ul>\r\n </div>\r\n </th>\r\n</tr>\r\n<tr\r\n class=\"ngx-table__header ngx-table__header--draggable\"\r\n *ngIf=\"config.headerEnabled && config.columnReorder\"\r\n cdkDropList\r\n cdkDropListOrientation=\"horizontal\"\r\n (cdkDropListDropped)=\"columnDrop($event)\"\r\n>\r\n <th *ngIf=\"config.checkboxes || config.radio\" [style.width]=\"'3%'\">\r\n <ng-container\r\n *ngIf=\"selectAllTemplate && config.checkboxes\"\r\n [ngTemplateOutlet]=\"selectAllTemplate\"\r\n [ngTemplateOutletContext]=\"{ $implicit: onSelectAllBinded }\"\r\n >\r\n </ng-container>\r\n <label\r\n class=\"ngx-form-checkbox\"\r\n for=\"selectAllCheckboxes\"\r\n *ngIf=\"!selectAllTemplate && config.checkboxes\"\r\n >\r\n <input type=\"checkbox\" id=\"selectAllCheckboxesDrag\" (change)=\"onSelectAll()\" />\r\n <em class=\"ngx-form-icon\" id=\"selectAllCheckboxDrag\"></em>\r\n </label>\r\n </th>\r\n <ng-container *ngFor=\"let column of columns; let colIndex = index; let last = last\">\r\n <th\r\n class=\"ngx-table__header-cell ngx-table__header-cell--draggable\"\r\n cdkDragLockAxis=\"x\"\r\n cdkDrag\r\n [cdkDragStartDelay]=\"config.reorderDelay || 0\"\r\n [class.pinned-left]=\"column.pinned\"\r\n [ngClass]=\"column.cssClass && column.cssClass.includeHeader ? column.cssClass.name : ''\"\r\n [style.left]=\"styleService.pinnedWidth(column.pinned, colIndex)\"\r\n #th\r\n [style.width]=\"getColumnWidth(column)\"\r\n (mousedown)=\"onMouseDown($event, th)\"\r\n (mouseup)=\"onMouseUp($event)\"\r\n (mousemove)=\"onMouseMove($event)\"\r\n >\r\n <div\r\n (click)=\"orderBy(column)\"\r\n style=\"display: inline\"\r\n cdkDragHandle\r\n [class.pointer]=\"isOrderEnabled(column)\"\r\n >\r\n <div class=\"ngx-table__header-title\">\r\n {{ column.title }}<span> </span>\r\n <em class=\"ngx-icon ngx-icon-pin\" *ngIf=\"column.pinned\"></em>\r\n <div [style.display]=\"config.orderEnabled ? 'inline' : 'none'\">\r\n <em\r\n *ngIf=\"sortKey === column.key && this.sortState.get(sortKey) === 'asc'\"\r\n class=\"ngx-icon ngx-icon-arrow-up\"\r\n >\r\n </em>\r\n <em\r\n *ngIf=\"sortKey === column.key && this.sortState.get(sortKey) === 'desc'\"\r\n class=\"ngx-icon ngx-icon-arrow-down\"\r\n >\r\n </em>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"ngx-dropdown\" *ngIf=\"!!column.headerActionTemplate\" #headerDropdown>\r\n <a class=\"ngx-btn ngx-btn-link\" (click)=\"showHeaderActionTemplateMenu(column)\">\r\n <span class=\"ngx-icon ngx-icon-more\"></span>\r\n </a>\r\n <div\r\n class=\"ngx-menu ngx-table__table-menu\"\r\n *ngIf=\"column.key === openedHeaderActionTemplate\"\r\n >\r\n <ng-container [ngTemplateOutlet]=\"column.headerActionTemplate\"> </ng-container>\r\n </div>\r\n </div>\r\n <div class=\"ngx-table__column-resizer\" *ngIf=\"config.resizeColumn && !last\"></div>\r\n </th>\r\n </ng-container>\r\n <th\r\n *ngIf=\"\r\n config.additionalActions ||\r\n config.detailsTemplate ||\r\n config.collapseAllRows ||\r\n config.groupRows\r\n \"\r\n class=\"ngx-table__header-cell-additional-actions\"\r\n >\r\n <div class=\"ngx-dropdown\" #additionalActionMenu *ngIf=\"config.additionalActions\">\r\n <a class=\"ngx-btn ngx-btn-link\" (click)=\"showMenu()\">\r\n <span class=\"ngx-icon ngx-icon-menu\"></span>\r\n </a>\r\n <ul class=\"ngx-menu ngx-table__table-menu\" *ngIf=\"menuActive\">\r\n <ng-container\r\n *ngIf=\"additionalActionsTemplate\"\r\n [ngTemplateOutlet]=\"additionalActionsTemplate\"\r\n >\r\n </ng-container>\r\n </ul>\r\n </div>\r\n </th>\r\n</tr>\r\n<tr\r\n [style.display]=\"config.searchEnabled && !filtersTemplate ? 'table-row' : 'none'\"\r\n class=\"ngx-table__search-header\"\r\n>\r\n <th *ngIf=\"config.checkboxes || config.radio\"></th>\r\n <ng-container *ngFor=\"let column of columns; let colIndex = index\">\r\n <th\r\n [ngClass]=\"column.cssClass && column.cssClass.includeHeader ? column.cssClass.name : ''\"\r\n [class.pinned-left]=\"column.pinned\"\r\n [style.left]=\"styleService.pinnedWidth(column.pinned, colIndex)\"\r\n >\r\n <table-header\r\n *ngIf=\"getColumnDefinition(column)\"\r\n (update)=\"onSearch($event)\"\r\n [column]=\"column\"\r\n >\r\n </table-header>\r\n </th>\r\n </ng-container>\r\n <th *ngIf=\"config.additionalActions || config.detailsTemplate\"></th>\r\n</tr>\r\n<ng-container *ngIf=\"filtersTemplate\">\r\n <tr>\r\n <ng-container [ngTemplateOutlet]=\"filtersTemplate\"> </ng-container>\r\n </tr>\r\n</ng-container>\r\n", styles: [".cdk-drag-preview{text-align:left;padding-top:9px;padding-left:4px;color:#50596c;border:1px solid #e7e9ed}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i3.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i3.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "component", type: i4.HeaderComponent, selector: "table-header", inputs: ["column"], outputs: ["update"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
108
|
+
}
|
|
109
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: TableTHeadComponent, decorators: [{
|
|
110
|
+
type: Component,
|
|
111
|
+
args: [{ selector: '[table-thead]', changeDetection: ChangeDetectionStrategy.OnPush, providers: [StyleService], template: "<tr class=\"ngx-table__header\" *ngIf=\"config.headerEnabled && !config.columnReorder\">\r\n <th *ngIf=\"config.checkboxes || config.radio\" [style.width]=\"'3%'\">\r\n <ng-container\r\n *ngIf=\"selectAllTemplate && config.checkboxes\"\r\n [ngTemplateOutlet]=\"selectAllTemplate\"\r\n [ngTemplateOutletContext]=\"{ $implicit: onSelectAllBinded }\"\r\n >\r\n </ng-container>\r\n <label\r\n class=\"ngx-form-checkbox\"\r\n for=\"selectAllCheckboxes\"\r\n *ngIf=\"!selectAllTemplate && config.checkboxes\"\r\n >\r\n <input type=\"checkbox\" id=\"selectAllCheckboxes\" (change)=\"onSelectAll()\" />\r\n <em class=\"ngx-form-icon\" id=\"selectAllCheckbox\"></em>\r\n </label>\r\n </th>\r\n <ng-container *ngFor=\"let column of columns; let colIndex = index; let last = last\">\r\n <th\r\n class=\"ngx-table__header-cell\"\r\n [class.pinned-left]=\"column.pinned\"\r\n [ngClass]=\"column.cssClass && column.cssClass.includeHeader ? column.cssClass.name : ''\"\r\n [style.left]=\"styleService.pinnedWidth(column.pinned, colIndex)\"\r\n #th\r\n [style.width]=\"getColumnWidth(column)\"\r\n (mousedown)=\"onMouseDown($event, th)\"\r\n (mouseup)=\"onMouseUp($event)\"\r\n (mousemove)=\"onMouseMove($event)\"\r\n >\r\n <div\r\n (click)=\"orderBy(column)\"\r\n style=\"display: inline\"\r\n [class.pointer]=\"isOrderEnabled(column)\"\r\n >\r\n <div class=\"ngx-table__header-title\">\r\n {{ column.title }}<span> </span>\r\n <em class=\"ngx-icon ngx-icon-pin\" *ngIf=\"column.pinned\"></em>\r\n <div [style.display]=\"config.orderEnabled ? 'inline' : 'none'\">\r\n <em\r\n *ngIf=\"sortKey === column.key && this.sortState.get(sortKey) === 'asc'\"\r\n class=\"ngx-icon ngx-icon-arrow-up\"\r\n >\r\n </em>\r\n <em\r\n *ngIf=\"sortKey === column.key && this.sortState.get(sortKey) === 'desc'\"\r\n class=\"ngx-icon ngx-icon-arrow-down\"\r\n >\r\n </em>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"ngx-dropdown\" *ngIf=\"!!column.headerActionTemplate\" #headerDropdown>\r\n <a class=\"ngx-btn ngx-btn-link\" (click)=\"showHeaderActionTemplateMenu(column)\">\r\n <span class=\"ngx-icon ngx-icon-more\"></span>\r\n </a>\r\n <div\r\n class=\"ngx-menu ngx-table__table-menu\"\r\n *ngIf=\"column.key === openedHeaderActionTemplate\"\r\n >\r\n <ng-container [ngTemplateOutlet]=\"column.headerActionTemplate\"> </ng-container>\r\n </div>\r\n </div>\r\n <div class=\"ngx-table__column-resizer\" *ngIf=\"config.resizeColumn && !last\"></div>\r\n </th>\r\n </ng-container>\r\n <th\r\n *ngIf=\"\r\n config.additionalActions ||\r\n config.detailsTemplate ||\r\n config.collapseAllRows ||\r\n config.groupRows\r\n \"\r\n class=\"ngx-table__header-cell-additional-actions\"\r\n >\r\n <div class=\"ngx-dropdown\" #additionalActionMenu *ngIf=\"config.additionalActions\">\r\n <a class=\"ngx-btn ngx-btn-link\" (click)=\"showMenu()\">\r\n <span class=\"ngx-icon ngx-icon-menu\"></span>\r\n </a>\r\n <ul class=\"ngx-menu ngx-table__table-menu\" *ngIf=\"menuActive\">\r\n <ng-container\r\n *ngIf=\"additionalActionsTemplate\"\r\n [ngTemplateOutlet]=\"additionalActionsTemplate\"\r\n >\r\n </ng-container>\r\n </ul>\r\n </div>\r\n </th>\r\n</tr>\r\n<tr\r\n class=\"ngx-table__header ngx-table__header--draggable\"\r\n *ngIf=\"config.headerEnabled && config.columnReorder\"\r\n cdkDropList\r\n cdkDropListOrientation=\"horizontal\"\r\n (cdkDropListDropped)=\"columnDrop($event)\"\r\n>\r\n <th *ngIf=\"config.checkboxes || config.radio\" [style.width]=\"'3%'\">\r\n <ng-container\r\n *ngIf=\"selectAllTemplate && config.checkboxes\"\r\n [ngTemplateOutlet]=\"selectAllTemplate\"\r\n [ngTemplateOutletContext]=\"{ $implicit: onSelectAllBinded }\"\r\n >\r\n </ng-container>\r\n <label\r\n class=\"ngx-form-checkbox\"\r\n for=\"selectAllCheckboxes\"\r\n *ngIf=\"!selectAllTemplate && config.checkboxes\"\r\n >\r\n <input type=\"checkbox\" id=\"selectAllCheckboxesDrag\" (change)=\"onSelectAll()\" />\r\n <em class=\"ngx-form-icon\" id=\"selectAllCheckboxDrag\"></em>\r\n </label>\r\n </th>\r\n <ng-container *ngFor=\"let column of columns; let colIndex = index; let last = last\">\r\n <th\r\n class=\"ngx-table__header-cell ngx-table__header-cell--draggable\"\r\n cdkDragLockAxis=\"x\"\r\n cdkDrag\r\n [cdkDragStartDelay]=\"config.reorderDelay || 0\"\r\n [class.pinned-left]=\"column.pinned\"\r\n [ngClass]=\"column.cssClass && column.cssClass.includeHeader ? column.cssClass.name : ''\"\r\n [style.left]=\"styleService.pinnedWidth(column.pinned, colIndex)\"\r\n #th\r\n [style.width]=\"getColumnWidth(column)\"\r\n (mousedown)=\"onMouseDown($event, th)\"\r\n (mouseup)=\"onMouseUp($event)\"\r\n (mousemove)=\"onMouseMove($event)\"\r\n >\r\n <div\r\n (click)=\"orderBy(column)\"\r\n style=\"display: inline\"\r\n cdkDragHandle\r\n [class.pointer]=\"isOrderEnabled(column)\"\r\n >\r\n <div class=\"ngx-table__header-title\">\r\n {{ column.title }}<span> </span>\r\n <em class=\"ngx-icon ngx-icon-pin\" *ngIf=\"column.pinned\"></em>\r\n <div [style.display]=\"config.orderEnabled ? 'inline' : 'none'\">\r\n <em\r\n *ngIf=\"sortKey === column.key && this.sortState.get(sortKey) === 'asc'\"\r\n class=\"ngx-icon ngx-icon-arrow-up\"\r\n >\r\n </em>\r\n <em\r\n *ngIf=\"sortKey === column.key && this.sortState.get(sortKey) === 'desc'\"\r\n class=\"ngx-icon ngx-icon-arrow-down\"\r\n >\r\n </em>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"ngx-dropdown\" *ngIf=\"!!column.headerActionTemplate\" #headerDropdown>\r\n <a class=\"ngx-btn ngx-btn-link\" (click)=\"showHeaderActionTemplateMenu(column)\">\r\n <span class=\"ngx-icon ngx-icon-more\"></span>\r\n </a>\r\n <div\r\n class=\"ngx-menu ngx-table__table-menu\"\r\n *ngIf=\"column.key === openedHeaderActionTemplate\"\r\n >\r\n <ng-container [ngTemplateOutlet]=\"column.headerActionTemplate\"> </ng-container>\r\n </div>\r\n </div>\r\n <div class=\"ngx-table__column-resizer\" *ngIf=\"config.resizeColumn && !last\"></div>\r\n </th>\r\n </ng-container>\r\n <th\r\n *ngIf=\"\r\n config.additionalActions ||\r\n config.detailsTemplate ||\r\n config.collapseAllRows ||\r\n config.groupRows\r\n \"\r\n class=\"ngx-table__header-cell-additional-actions\"\r\n >\r\n <div class=\"ngx-dropdown\" #additionalActionMenu *ngIf=\"config.additionalActions\">\r\n <a class=\"ngx-btn ngx-btn-link\" (click)=\"showMenu()\">\r\n <span class=\"ngx-icon ngx-icon-menu\"></span>\r\n </a>\r\n <ul class=\"ngx-menu ngx-table__table-menu\" *ngIf=\"menuActive\">\r\n <ng-container\r\n *ngIf=\"additionalActionsTemplate\"\r\n [ngTemplateOutlet]=\"additionalActionsTemplate\"\r\n >\r\n </ng-container>\r\n </ul>\r\n </div>\r\n </th>\r\n</tr>\r\n<tr\r\n [style.display]=\"config.searchEnabled && !filtersTemplate ? 'table-row' : 'none'\"\r\n class=\"ngx-table__search-header\"\r\n>\r\n <th *ngIf=\"config.checkboxes || config.radio\"></th>\r\n <ng-container *ngFor=\"let column of columns; let colIndex = index\">\r\n <th\r\n [ngClass]=\"column.cssClass && column.cssClass.includeHeader ? column.cssClass.name : ''\"\r\n [class.pinned-left]=\"column.pinned\"\r\n [style.left]=\"styleService.pinnedWidth(column.pinned, colIndex)\"\r\n >\r\n <table-header\r\n *ngIf=\"getColumnDefinition(column)\"\r\n (update)=\"onSearch($event)\"\r\n [column]=\"column\"\r\n >\r\n </table-header>\r\n </th>\r\n </ng-container>\r\n <th *ngIf=\"config.additionalActions || config.detailsTemplate\"></th>\r\n</tr>\r\n<ng-container *ngIf=\"filtersTemplate\">\r\n <tr>\r\n <ng-container [ngTemplateOutlet]=\"filtersTemplate\"> </ng-container>\r\n </tr>\r\n</ng-container>\r\n", styles: [".cdk-drag-preview{text-align:left;padding-top:9px;padding-left:4px;color:#50596c;border:1px solid #e7e9ed}\n"] }]
|
|
112
|
+
}], ctorParameters: () => [{ type: i1.StyleService }], propDecorators: { config: [{
|
|
113
|
+
type: Input
|
|
114
|
+
}], columns: [{
|
|
115
|
+
type: Input
|
|
116
|
+
}], sortKey: [{
|
|
117
|
+
type: Input
|
|
118
|
+
}], sortState: [{
|
|
119
|
+
type: Input
|
|
120
|
+
}], selectAllTemplate: [{
|
|
121
|
+
type: Input
|
|
122
|
+
}], filtersTemplate: [{
|
|
123
|
+
type: Input
|
|
124
|
+
}], additionalActionsTemplate: [{
|
|
125
|
+
type: Input
|
|
126
|
+
}], filter: [{
|
|
127
|
+
type: Output
|
|
128
|
+
}], order: [{
|
|
129
|
+
type: Output
|
|
130
|
+
}], selectAll: [{
|
|
131
|
+
type: Output
|
|
132
|
+
}], event: [{
|
|
133
|
+
type: Output
|
|
134
|
+
}], th: [{
|
|
135
|
+
type: ViewChild,
|
|
136
|
+
args: ['th']
|
|
137
|
+
}], headerDropdown: [{
|
|
138
|
+
type: ViewChildren,
|
|
139
|
+
args: ['headerDropdown']
|
|
140
|
+
}], additionalActionMenu: [{
|
|
141
|
+
type: ViewChild,
|
|
142
|
+
args: ['additionalActionMenu']
|
|
143
|
+
}], onClick: [{
|
|
144
|
+
type: HostListener,
|
|
145
|
+
args: ['document:click', ['$event.target']]
|
|
146
|
+
}] } });
|
|
147
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlYWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWVhc3ktdGFibGUvc3JjL2xpYi9jb21wb25lbnRzL3RoZWFkL3RoZWFkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1lYXN5LXRhYmxlL3NyYy9saWIvY29tcG9uZW50cy90aGVhZC90aGVhZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBRU4sU0FBUyxFQUNULFlBQVksR0FDYixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQW1CLEtBQUssRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUMvQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDNUQsT0FBTyxFQUFlLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7Ozs7QUFtQnRFLE1BQU0sT0FBTyxtQkFBbUI7SUFxQnZCLE9BQU8sQ0FBQyxhQUFrQjtRQUMvQixJQUNFLElBQUksQ0FBQyxvQkFBb0I7WUFDekIsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsRUFDaEUsQ0FBQztZQUNELElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1FBQzFCLENBQUM7UUFFRCx1RUFBdUU7UUFDdkUsSUFDRSxJQUFJLENBQUMsMEJBQTBCO1lBQy9CLHNDQUFzQztZQUN0QyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQyxFQUN2RixDQUFDO1lBQ0QsSUFBSSxDQUFDLDBCQUEwQixHQUFHLElBQUksQ0FBQztRQUN6QyxDQUFDO0lBQ0gsQ0FBQztJQUVELFlBQTRCLFlBQTBCO1FBQTFCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBdEMvQyxlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ25CLCtCQUEwQixHQUFrQixJQUFJLENBQUM7UUFFakQsc0JBQWlCLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFTcEMsV0FBTSxHQUFHLElBQUksWUFBWSxFQUF5QyxDQUFDO1FBQ25FLFVBQUssR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBQ3BDLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBQ3JDLFVBQUssR0FBRyxJQUFJLFlBQVksRUFBaUMsQ0FBQztJQXVCcEIsQ0FBQztJQUUxRCxtQkFBbUIsQ0FBQyxNQUFlO1FBQ2pDLE9BQU8sTUFBTSxDQUFDLGFBQWEsSUFBSSxPQUFPLE1BQU0sQ0FBQyxhQUFhLEtBQUssV0FBVyxDQUFDO0lBQzdFLENBQUM7SUFFRCxPQUFPLENBQUMsTUFBZTtRQUNyQixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRUQsY0FBYyxDQUFDLE1BQWU7UUFDNUIsTUFBTSxrQkFBa0IsR0FBRyxNQUFNLENBQUMsWUFBWSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQztRQUM1RixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxJQUFJLGtCQUFrQixDQUFDO0lBQ3hELENBQUM7SUFFRCxVQUFVLENBQUMsS0FBNEI7UUFDckMsZUFBZSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLGFBQWEsRUFBRSxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDekUsQ0FBQztJQUVELFFBQVEsQ0FBQyxNQUE2QztRQUNwRCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRUQsY0FBYyxDQUFDLE1BQVc7UUFDeEIsSUFBSSxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDakIsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDO1FBQ3RCLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUMvRSxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFpQixFQUFFLEVBQThCO1FBQzNELElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQzlCLE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUM7UUFDYixJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQztRQUNoRCxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQztZQUNkLEtBQUssRUFBRSxLQUFLLENBQUMsdUJBQXVCO1lBQ3BDLEtBQUssRUFBRSxLQUFLO1NBQ2IsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFpQjtRQUMzQixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUM5QixPQUFPO1FBQ1QsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLEVBQUUsSUFBSSxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQzdCLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1lBQzVELElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxZQUFZLENBQUM7WUFDcEMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLEdBQUcsTUFBTSxDQUFDO1FBQ3hDLENBQUM7SUFDSCxDQUFDO0lBRUQsU0FBUyxDQUFDLEtBQWlCO1FBQ3pCLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQzlCLE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7WUFDZCxLQUFLLEVBQUUsS0FBSyxDQUFDLHFCQUFxQjtZQUNsQyxLQUFLLEVBQUUsS0FBSztTQUNiLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxTQUFTLENBQUM7UUFDakMsSUFBSSxDQUFDLEVBQUUsR0FBRyxTQUFTLENBQUM7SUFDdEIsQ0FBQztJQUVELDRCQUE0QixDQUFDLE1BQWU7UUFDMUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1lBQ2pDLE9BQU8sQ0FBQyxLQUFLLENBQUMsb0RBQW9ELENBQUMsQ0FBQztRQUN0RSxDQUFDO1FBQ0QsSUFBSSxJQUFJLENBQUMsMEJBQTBCLEtBQUssTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ25ELElBQUksQ0FBQywwQkFBMEIsR0FBRyxJQUFJLENBQUM7WUFDdkMsT0FBTztRQUNULENBQUM7UUFDRCxJQUFJLENBQUMsMEJBQTBCLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQztJQUMvQyxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxJQUFJLENBQUMseUJBQXlCLEVBQUUsQ0FBQztZQUNwQyxPQUFPLENBQUMsS0FBSyxDQUFDLGtEQUFrRCxDQUFDLENBQUM7UUFDcEUsQ0FBQztRQUNELElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3JDLENBQUM7OEdBNUhVLG1CQUFtQjtrR0FBbkIsbUJBQW1CLHNhQUZuQixDQUFDLFlBQVksQ0FBQyx5VEM5QjNCLDQzUUFvTkE7OzJGRHBMYSxtQkFBbUI7a0JBakIvQixTQUFTOytCQUNFLGVBQWUsbUJBYVIsdUJBQXVCLENBQUMsTUFBTSxhQUNwQyxDQUFDLFlBQVksQ0FBQztpRkFRaEIsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyx5QkFBeUI7c0JBQWpDLEtBQUs7Z0JBQ2EsTUFBTTtzQkFBeEIsTUFBTTtnQkFDWSxLQUFLO3NCQUF2QixNQUFNO2dCQUNZLFNBQVM7c0JBQTNCLE1BQU07Z0JBQ1ksS0FBSztzQkFBdkIsTUFBTTtnQkFDa0IsRUFBRTtzQkFBMUIsU0FBUzt1QkFBQyxJQUFJO2dCQUNpQixjQUFjO3NCQUE3QyxZQUFZO3VCQUFDLGdCQUFnQjtnQkFDSyxvQkFBb0I7c0JBQXRELFNBQVM7dUJBQUMsc0JBQXNCO2dCQUUxQixPQUFPO3NCQURiLFlBQVk7dUJBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxlQUFlLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENvbXBvbmVudCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSG9zdExpc3RlbmVyLFxyXG4gIElucHV0LFxyXG4gIE91dHB1dCxcclxuICBUZW1wbGF0ZVJlZixcclxuICBWaWV3Q2hpbGQsXHJcbiAgVmlld0NoaWxkcmVuLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb2x1bW5zLCBDb25maWcsIEV2ZW50IH0gZnJvbSAnLi4vLi4nO1xyXG5pbXBvcnQgeyBTdHlsZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9zdHlsZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ2RrRHJhZ0Ryb3AsIG1vdmVJdGVtSW5BcnJheSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdbdGFibGUtdGhlYWRdJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdGhlYWQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlczogW1xyXG4gICAgYFxyXG4gICAgICAuY2RrLWRyYWctcHJldmlldyB7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcclxuICAgICAgICBwYWRkaW5nLXRvcDogOXB4O1xyXG4gICAgICAgIHBhZGRpbmctbGVmdDogNHB4O1xyXG4gICAgICAgIGNvbG9yOiAjNTA1OTZjO1xyXG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNlN2U5ZWQ7XHJcbiAgICAgIH1cclxuICAgIGAsXHJcbiAgXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBwcm92aWRlcnM6IFtTdHlsZVNlcnZpY2VdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVGFibGVUSGVhZENvbXBvbmVudCB7XHJcbiAgcHVibGljIG1lbnVBY3RpdmUgPSBmYWxzZTtcclxuICBwdWJsaWMgb3BlbmVkSGVhZGVyQWN0aW9uVGVtcGxhdGU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xyXG4gIHB1YmxpYyBzdGFydE9mZnNldDtcclxuICBwdWJsaWMgb25TZWxlY3RBbGxCaW5kZWQgPSB0aGlzLm9uU2VsZWN0QWxsLmJpbmQodGhpcyk7XHJcblxyXG4gIEBJbnB1dCgpIGNvbmZpZzogQ29uZmlnO1xyXG4gIEBJbnB1dCgpIGNvbHVtbnM6IENvbHVtbnNbXTtcclxuICBASW5wdXQoKSBzb3J0S2V5O1xyXG4gIEBJbnB1dCgpIHNvcnRTdGF0ZTtcclxuICBASW5wdXQoKSBzZWxlY3RBbGxUZW1wbGF0ZTtcclxuICBASW5wdXQoKSBmaWx0ZXJzVGVtcGxhdGU7XHJcbiAgQElucHV0KCkgYWRkaXRpb25hbEFjdGlvbnNUZW1wbGF0ZTogVGVtcGxhdGVSZWY8dm9pZD47XHJcbiAgQE91dHB1dCgpIHJlYWRvbmx5IGZpbHRlciA9IG5ldyBFdmVudEVtaXR0ZXI8QXJyYXk8eyBrZXk6IHN0cmluZzsgdmFsdWU6IHN0cmluZyB9Pj4oKTtcclxuICBAT3V0cHV0KCkgcmVhZG9ubHkgb3JkZXIgPSBuZXcgRXZlbnRFbWl0dGVyPENvbHVtbnM+KCk7XHJcbiAgQE91dHB1dCgpIHJlYWRvbmx5IHNlbGVjdEFsbCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuICBAT3V0cHV0KCkgcmVhZG9ubHkgZXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPHsgZXZlbnQ6IHN0cmluZzsgdmFsdWU6IGFueSB9PigpO1xyXG4gIEBWaWV3Q2hpbGQoJ3RoJykgcHJpdmF0ZSB0aDtcclxuICBAVmlld0NoaWxkcmVuKCdoZWFkZXJEcm9wZG93bicpIGhlYWRlckRyb3Bkb3duO1xyXG4gIEBWaWV3Q2hpbGQoJ2FkZGl0aW9uYWxBY3Rpb25NZW51JykgYWRkaXRpb25hbEFjdGlvbk1lbnU7XHJcbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6Y2xpY2snLCBbJyRldmVudC50YXJnZXQnXSlcclxuICBwdWJsaWMgb25DbGljayh0YXJnZXRFbGVtZW50OiBhbnkpOiB2b2lkIHtcclxuICAgIGlmIChcclxuICAgICAgdGhpcy5hZGRpdGlvbmFsQWN0aW9uTWVudSAmJlxyXG4gICAgICAhdGhpcy5hZGRpdGlvbmFsQWN0aW9uTWVudS5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKHRhcmdldEVsZW1lbnQpXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5tZW51QWN0aXZlID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gaWYgY2xpY2sgb3V0c2lkZSB0aGUgaGVhZGVyIHRoZW4gY2xvc2Ugb3BlbmVkIEhlYWRlciBBY3Rpb24gVGVtcGxhdGVcclxuICAgIGlmIChcclxuICAgICAgdGhpcy5vcGVuZWRIZWFkZXJBY3Rpb25UZW1wbGF0ZSAmJlxyXG4gICAgICAvLyBpZiBubyBoZWFkZXIgaGF2ZSB0aGUgY2xpY2tlZCBwb2ludFxyXG4gICAgICAhdGhpcy5oZWFkZXJEcm9wZG93bi50b0FycmF5KCkuc29tZSgocmVmKSA9PiByZWYubmF0aXZlRWxlbWVudC5jb250YWlucyh0YXJnZXRFbGVtZW50KSlcclxuICAgICkge1xyXG4gICAgICB0aGlzLm9wZW5lZEhlYWRlckFjdGlvblRlbXBsYXRlID0gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSBzdHlsZVNlcnZpY2U6IFN0eWxlU2VydmljZSkge31cclxuXHJcbiAgZ2V0Q29sdW1uRGVmaW5pdGlvbihjb2x1bW46IENvbHVtbnMpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBjb2x1bW4uc2VhcmNoRW5hYmxlZCB8fCB0eXBlb2YgY29sdW1uLnNlYXJjaEVuYWJsZWQgPT09ICd1bmRlZmluZWQnO1xyXG4gIH1cclxuXHJcbiAgb3JkZXJCeShjb2x1bW46IENvbHVtbnMpOiB2b2lkIHtcclxuICAgIHRoaXMub3JkZXIuZW1pdChjb2x1bW4pO1xyXG4gIH1cclxuXHJcbiAgaXNPcmRlckVuYWJsZWQoY29sdW1uOiBDb2x1bW5zKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBjb2x1bW5PcmRlckVuYWJsZWQgPSBjb2x1bW4ub3JkZXJFbmFibGVkID09PSB1bmRlZmluZWQgPyB0cnVlIDogISFjb2x1bW4ub3JkZXJFbmFibGVkO1xyXG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLm9yZGVyRW5hYmxlZCAmJiBjb2x1bW5PcmRlckVuYWJsZWQ7XHJcbiAgfVxyXG5cclxuICBjb2x1bW5Ecm9wKGV2ZW50OiBDZGtEcmFnRHJvcDxzdHJpbmdbXT4pOiB2b2lkIHtcclxuICAgIG1vdmVJdGVtSW5BcnJheSh0aGlzLmNvbHVtbnMsIGV2ZW50LnByZXZpb3VzSW5kZXgsIGV2ZW50LmN1cnJlbnRJbmRleCk7XHJcbiAgfVxyXG5cclxuICBvblNlYXJjaCgkZXZlbnQ6IEFycmF5PHsga2V5OiBzdHJpbmc7IHZhbHVlOiBzdHJpbmcgfT4pOiB2b2lkIHtcclxuICAgIHRoaXMuZmlsdGVyLmVtaXQoJGV2ZW50KTtcclxuICB9XHJcblxyXG4gIGdldENvbHVtbldpZHRoKGNvbHVtbjogYW55KTogc3RyaW5nIHwgbnVsbCB7XHJcbiAgICBpZiAoY29sdW1uLndpZHRoKSB7XHJcbiAgICAgIHJldHVybiBjb2x1bW4ud2lkdGg7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5jb25maWcuZml4ZWRDb2x1bW5XaWR0aCA/IDEwMCAvIHRoaXMuY29sdW1ucy5sZW5ndGggKyAnJScgOiBudWxsO1xyXG4gIH1cclxuXHJcbiAgb25TZWxlY3RBbGwoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNlbGVjdEFsbC5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICBvbk1vdXNlRG93bihldmVudDogTW91c2VFdmVudCwgdGg6IEhUTUxUYWJsZUhlYWRlckNlbGxFbGVtZW50KTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuY29uZmlnLnJlc2l6ZUNvbHVtbikge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLnRoID0gdGg7XHJcbiAgICB0aGlzLnN0YXJ0T2Zmc2V0ID0gdGgub2Zmc2V0V2lkdGggLSBldmVudC5wYWdlWDtcclxuICAgIHRoaXMuZXZlbnQuZW1pdCh7XHJcbiAgICAgIGV2ZW50OiBFdmVudC5vbkNvbHVtblJlc2l6ZU1vdXNlRG93bixcclxuICAgICAgdmFsdWU6IGV2ZW50LFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBvbk1vdXNlTW92ZShldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLmNvbmZpZy5yZXNpemVDb2x1bW4pIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMudGggJiYgdGhpcy50aC5zdHlsZSkge1xyXG4gICAgICB0aGlzLnRoLnN0eWxlLndpZHRoID0gdGhpcy5zdGFydE9mZnNldCArIGV2ZW50LnBhZ2VYICsgJ3B4JztcclxuICAgICAgdGhpcy50aC5zdHlsZS5jdXJzb3IgPSAnY29sLXJlc2l6ZSc7XHJcbiAgICAgIHRoaXMudGguc3R5bGVbJ3VzZXItc2VsZWN0J10gPSAnbm9uZSc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbk1vdXNlVXAoZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5jb25maWcucmVzaXplQ29sdW1uKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuZXZlbnQuZW1pdCh7XHJcbiAgICAgIGV2ZW50OiBFdmVudC5vbkNvbHVtblJlc2l6ZU1vdXNlVXAsXHJcbiAgICAgIHZhbHVlOiBldmVudCxcclxuICAgIH0pO1xyXG4gICAgdGhpcy50aC5zdHlsZS5jdXJzb3IgPSAnZGVmYXVsdCc7XHJcbiAgICB0aGlzLnRoID0gdW5kZWZpbmVkO1xyXG4gIH1cclxuXHJcbiAgc2hvd0hlYWRlckFjdGlvblRlbXBsYXRlTWVudShjb2x1bW46IENvbHVtbnMpOiB2b2lkIHtcclxuICAgIGlmICghY29sdW1uLmhlYWRlckFjdGlvblRlbXBsYXRlKSB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0NvbHVtbiBbaGVhZGVyQWN0aW9uVGVtcGxhdGVdIHByb3BlcnR5IG5vdCBkZWZpbmVkJyk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5vcGVuZWRIZWFkZXJBY3Rpb25UZW1wbGF0ZSA9PT0gY29sdW1uLmtleSkge1xyXG4gICAgICB0aGlzLm9wZW5lZEhlYWRlckFjdGlvblRlbXBsYXRlID0gbnVsbDtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5vcGVuZWRIZWFkZXJBY3Rpb25UZW1wbGF0ZSA9IGNvbHVtbi5rZXk7XHJcbiAgfVxyXG5cclxuICBzaG93TWVudSgpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5hZGRpdGlvbmFsQWN0aW9uc1RlbXBsYXRlKSB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ1thZGRpdGlvbmFsQWN0aW9uc1RlbXBsYXRlXSBwcm9wZXJ0eSBub3QgZGVmaW5lZCcpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5tZW51QWN0aXZlID0gIXRoaXMubWVudUFjdGl2ZTtcclxuICB9XHJcbn1cclxuIiwiPHRyIGNsYXNzPVwibmd4LXRhYmxlX19oZWFkZXJcIiAqbmdJZj1cImNvbmZpZy5oZWFkZXJFbmFibGVkICYmICFjb25maWcuY29sdW1uUmVvcmRlclwiPlxyXG4gIDx0aCAqbmdJZj1cImNvbmZpZy5jaGVja2JveGVzIHx8IGNvbmZpZy5yYWRpb1wiIFtzdHlsZS53aWR0aF09XCInMyUnXCI+XHJcbiAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICpuZ0lmPVwic2VsZWN0QWxsVGVtcGxhdGUgJiYgY29uZmlnLmNoZWNrYm94ZXNcIlxyXG4gICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJzZWxlY3RBbGxUZW1wbGF0ZVwiXHJcbiAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogb25TZWxlY3RBbGxCaW5kZWQgfVwiXHJcbiAgICA+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDxsYWJlbFxyXG4gICAgICBjbGFzcz1cIm5neC1mb3JtLWNoZWNrYm94XCJcclxuICAgICAgZm9yPVwic2VsZWN0QWxsQ2hlY2tib3hlc1wiXHJcbiAgICAgICpuZ0lmPVwiIXNlbGVjdEFsbFRlbXBsYXRlICYmIGNvbmZpZy5jaGVja2JveGVzXCJcclxuICAgID5cclxuICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIGlkPVwic2VsZWN0QWxsQ2hlY2tib3hlc1wiIChjaGFuZ2UpPVwib25TZWxlY3RBbGwoKVwiIC8+XHJcbiAgICAgIDxlbSBjbGFzcz1cIm5neC1mb3JtLWljb25cIiBpZD1cInNlbGVjdEFsbENoZWNrYm94XCI+PC9lbT5cclxuICAgIDwvbGFiZWw+XHJcbiAgPC90aD5cclxuICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgY29sdW1uczsgbGV0IGNvbEluZGV4ID0gaW5kZXg7IGxldCBsYXN0ID0gbGFzdFwiPlxyXG4gICAgPHRoXHJcbiAgICAgIGNsYXNzPVwibmd4LXRhYmxlX19oZWFkZXItY2VsbFwiXHJcbiAgICAgIFtjbGFzcy5waW5uZWQtbGVmdF09XCJjb2x1bW4ucGlubmVkXCJcclxuICAgICAgW25nQ2xhc3NdPVwiY29sdW1uLmNzc0NsYXNzICYmIGNvbHVtbi5jc3NDbGFzcy5pbmNsdWRlSGVhZGVyID8gY29sdW1uLmNzc0NsYXNzLm5hbWUgOiAnJ1wiXHJcbiAgICAgIFtzdHlsZS5sZWZ0XT1cInN0eWxlU2VydmljZS5waW5uZWRXaWR0aChjb2x1bW4ucGlubmVkLCBjb2xJbmRleClcIlxyXG4gICAgICAjdGhcclxuICAgICAgW3N0eWxlLndpZHRoXT1cImdldENvbHVtbldpZHRoKGNvbHVtbilcIlxyXG4gICAgICAobW91c2Vkb3duKT1cIm9uTW91c2VEb3duKCRldmVudCwgdGgpXCJcclxuICAgICAgKG1vdXNldXApPVwib25Nb3VzZVVwKCRldmVudClcIlxyXG4gICAgICAobW91c2Vtb3ZlKT1cIm9uTW91c2VNb3ZlKCRldmVudClcIlxyXG4gICAgPlxyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgKGNsaWNrKT1cIm9yZGVyQnkoY29sdW1uKVwiXHJcbiAgICAgICAgc3R5bGU9XCJkaXNwbGF5OiBpbmxpbmVcIlxyXG4gICAgICAgIFtjbGFzcy5wb2ludGVyXT1cImlzT3JkZXJFbmFibGVkKGNvbHVtbilcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm5neC10YWJsZV9faGVhZGVyLXRpdGxlXCI+XHJcbiAgICAgICAgICB7eyBjb2x1bW4udGl0bGUgfX08c3Bhbj4mbmJzcDs8L3NwYW4+XHJcbiAgICAgICAgICA8ZW0gY2xhc3M9XCJuZ3gtaWNvbiBuZ3gtaWNvbi1waW5cIiAqbmdJZj1cImNvbHVtbi5waW5uZWRcIj48L2VtPlxyXG4gICAgICAgICAgPGRpdiBbc3R5bGUuZGlzcGxheV09XCJjb25maWcub3JkZXJFbmFibGVkID8gJ2lubGluZScgOiAnbm9uZSdcIj5cclxuICAgICAgICAgICAgPGVtXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCJzb3J0S2V5ID09PSBjb2x1bW4ua2V5ICYmIHRoaXMuc29ydFN0YXRlLmdldChzb3J0S2V5KSA9PT0gJ2FzYydcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwibmd4LWljb24gbmd4LWljb24tYXJyb3ctdXBcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDwvZW0+XHJcbiAgICAgICAgICAgIDxlbVxyXG4gICAgICAgICAgICAgICpuZ0lmPVwic29ydEtleSA9PT0gY29sdW1uLmtleSAmJiB0aGlzLnNvcnRTdGF0ZS5nZXQoc29ydEtleSkgPT09ICdkZXNjJ1wiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJuZ3gtaWNvbiBuZ3gtaWNvbi1hcnJvdy1kb3duXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICA8L2VtPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibmd4LWRyb3Bkb3duXCIgKm5nSWY9XCIhIWNvbHVtbi5oZWFkZXJBY3Rpb25UZW1wbGF0ZVwiICNoZWFkZXJEcm9wZG93bj5cclxuICAgICAgICA8YSBjbGFzcz1cIm5neC1idG4gbmd4LWJ0bi1saW5rXCIgKGNsaWNrKT1cInNob3dIZWFkZXJBY3Rpb25UZW1wbGF0ZU1lbnUoY29sdW1uKVwiPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJuZ3gtaWNvbiBuZ3gtaWNvbi1tb3JlXCI+PC9zcGFuPlxyXG4gICAgICAgIDwvYT5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICBjbGFzcz1cIm5neC1tZW51IG5neC10YWJsZV9fdGFibGUtbWVudVwiXHJcbiAgICAgICAgICAqbmdJZj1cImNvbHVtbi5rZXkgPT09IG9wZW5lZEhlYWRlckFjdGlvblRlbXBsYXRlXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImNvbHVtbi5oZWFkZXJBY3Rpb25UZW1wbGF0ZVwiPiA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJuZ3gtdGFibGVfX2NvbHVtbi1yZXNpemVyXCIgKm5nSWY9XCJjb25maWcucmVzaXplQ29sdW1uICYmICFsYXN0XCI+PC9kaXY+XHJcbiAgICA8L3RoPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG4gIDx0aFxyXG4gICAgKm5nSWY9XCJcclxuICAgICAgY29uZmlnLmFkZGl0aW9uYWxBY3Rpb25zIHx8XHJcbiAgICAgIGNvbmZpZy5kZXRhaWxzVGVtcGxhdGUgfHxcclxuICAgICAgY29uZmlnLmNvbGxhcHNlQWxsUm93cyB8fFxyXG4gICAgICBjb25maWcuZ3JvdXBSb3dzXHJcbiAgICBcIlxyXG4gICAgY2xhc3M9XCJuZ3gtdGFibGVfX2hlYWRlci1jZWxsLWFkZGl0aW9uYWwtYWN0aW9uc1wiXHJcbiAgPlxyXG4gICAgPGRpdiBjbGFzcz1cIm5neC1kcm9wZG93blwiICNhZGRpdGlvbmFsQWN0aW9uTWVudSAqbmdJZj1cImNvbmZpZy5hZGRpdGlvbmFsQWN0aW9uc1wiPlxyXG4gICAgICA8YSBjbGFzcz1cIm5neC1idG4gbmd4LWJ0bi1saW5rXCIgKGNsaWNrKT1cInNob3dNZW51KClcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cIm5neC1pY29uIG5neC1pY29uLW1lbnVcIj48L3NwYW4+XHJcbiAgICAgIDwvYT5cclxuICAgICAgPHVsIGNsYXNzPVwibmd4LW1lbnUgbmd4LXRhYmxlX190YWJsZS1tZW51XCIgKm5nSWY9XCJtZW51QWN0aXZlXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgKm5nSWY9XCJhZGRpdGlvbmFsQWN0aW9uc1RlbXBsYXRlXCJcclxuICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImFkZGl0aW9uYWxBY3Rpb25zVGVtcGxhdGVcIlxyXG4gICAgICAgID5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC91bD5cclxuICAgIDwvZGl2PlxyXG4gIDwvdGg+XHJcbjwvdHI+XHJcbjx0clxyXG4gIGNsYXNzPVwibmd4LXRhYmxlX19oZWFkZXIgbmd4LXRhYmxlX19oZWFkZXItLWRyYWdnYWJsZVwiXHJcbiAgKm5nSWY9XCJjb25maWcuaGVhZGVyRW5hYmxlZCAmJiBjb25maWcuY29sdW1uUmVvcmRlclwiXHJcbiAgY2RrRHJvcExpc3RcclxuICBjZGtEcm9wTGlzdE9yaWVudGF0aW9uPVwiaG9yaXpvbnRhbFwiXHJcbiAgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJjb2x1bW5Ecm9wKCRldmVudClcIlxyXG4+XHJcbiAgPHRoICpuZ0lmPVwiY29uZmlnLmNoZWNrYm94ZXMgfHwgY29uZmlnLnJhZGlvXCIgW3N0eWxlLndpZHRoXT1cIiczJSdcIj5cclxuICAgIDxuZy1jb250YWluZXJcclxuICAgICAgKm5nSWY9XCJzZWxlY3RBbGxUZW1wbGF0ZSAmJiBjb25maWcuY2hlY2tib3hlc1wiXHJcbiAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInNlbGVjdEFsbFRlbXBsYXRlXCJcclxuICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBvblNlbGVjdEFsbEJpbmRlZCB9XCJcclxuICAgID5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPGxhYmVsXHJcbiAgICAgIGNsYXNzPVwibmd4LWZvcm0tY2hlY2tib3hcIlxyXG4gICAgICBmb3I9XCJzZWxlY3RBbGxDaGVja2JveGVzXCJcclxuICAgICAgKm5nSWY9XCIhc2VsZWN0QWxsVGVtcGxhdGUgJiYgY29uZmlnLmNoZWNrYm94ZXNcIlxyXG4gICAgPlxyXG4gICAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgaWQ9XCJzZWxlY3RBbGxDaGVja2JveGVzRHJhZ1wiIChjaGFuZ2UpPVwib25TZWxlY3RBbGwoKVwiIC8+XHJcbiAgICAgIDxlbSBjbGFzcz1cIm5neC1mb3JtLWljb25cIiBpZD1cInNlbGVjdEFsbENoZWNrYm94RHJhZ1wiPjwvZW0+XHJcbiAgICA8L2xhYmVsPlxyXG4gIDwvdGg+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIGNvbHVtbnM7IGxldCBjb2xJbmRleCA9IGluZGV4OyBsZXQgbGFzdCA9IGxhc3RcIj5cclxuICAgIDx0aFxyXG4gICAgICBjbGFzcz1cIm5neC10YWJsZV9faGVhZGVyLWNlbGwgbmd4LXRhYmxlX19oZWFkZXItY2VsbC0tZHJhZ2dhYmxlXCJcclxuICAgICAgY2RrRHJhZ0xvY2tBeGlzPVwieFwiXHJcbiAgICAgIGNka0RyYWdcclxuICAgICAgW2Nka0RyYWdTdGFydERlbGF5XT1cImNvbmZpZy5yZW9yZGVyRGVsYXkgfHwgMFwiXHJcbiAgICAgIFtjbGFzcy5waW5uZWQtbGVmdF09XCJjb2x1bW4ucGlubmVkXCJcclxuICAgICAgW25nQ2xhc3NdPVwiY29sdW1uLmNzc0NsYXNzICYmIGNvbHVtbi5jc3NDbGFzcy5pbmNsdWRlSGVhZGVyID8gY29sdW1uLmNzc0NsYXNzLm5hbWUgOiAnJ1wiXHJcbiAgICAgIFtzdHlsZS5sZWZ0XT1cInN0eWxlU2VydmljZS5waW5uZWRXaWR0aChjb2x1bW4ucGlubmVkLCBjb2xJbmRleClcIlxyXG4gICAgICAjdGhcclxuICAgICAgW3N0eWxlLndpZHRoXT1cImdldENvbHVtbldpZHRoKGNvbHVtbilcIlxyXG4gICAgICAobW91c2Vkb3duKT1cIm9uTW91c2VEb3duKCRldmVudCwgdGgpXCJcclxuICAgICAgKG1vdXNldXApPVwib25Nb3VzZVVwKCRldmVudClcIlxyXG4gICAgICAobW91c2Vtb3ZlKT1cIm9uTW91c2VNb3ZlKCRldmVudClcIlxyXG4gICAgPlxyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgKGNsaWNrKT1cIm9yZGVyQnkoY29sdW1uKVwiXHJcbiAgICAgICAgc3R5bGU9XCJkaXNwbGF5OiBpbmxpbmVcIlxyXG4gICAgICAgIGNka0RyYWdIYW5kbGVcclxuICAgICAgICBbY2xhc3MucG9pbnRlcl09XCJpc09yZGVyRW5hYmxlZChjb2x1bW4pXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJuZ3gtdGFibGVfX2hlYWRlci10aXRsZVwiPlxyXG4gICAgICAgICAge3sgY29sdW1uLnRpdGxlIH19PHNwYW4+Jm5ic3A7PC9zcGFuPlxyXG4gICAgICAgICAgPGVtIGNsYXNzPVwibmd4LWljb24gbmd4LWljb24tcGluXCIgKm5nSWY9XCJjb2x1bW4ucGlubmVkXCI+PC9lbT5cclxuICAgICAgICAgIDxkaXYgW3N0eWxlLmRpc3BsYXldPVwiY29uZmlnLm9yZGVyRW5hYmxlZCA/ICdpbmxpbmUnIDogJ25vbmUnXCI+XHJcbiAgICAgICAgICAgIDxlbVxyXG4gICAgICAgICAgICAgICpuZ0lmPVwic29ydEtleSA9PT0gY29sdW1uLmtleSAmJiB0aGlzLnNvcnRTdGF0ZS5nZXQoc29ydEtleSkgPT09ICdhc2MnXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cIm5neC1pY29uIG5neC1pY29uLWFycm93LXVwXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICA8L2VtPlxyXG4gICAgICAgICAgICA8ZW1cclxuICAgICAgICAgICAgICAqbmdJZj1cInNvcnRLZXkgPT09IGNvbHVtbi5rZXkgJiYgdGhpcy5zb3J0U3RhdGUuZ2V0KHNvcnRLZXkpID09PSAnZGVzYydcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwibmd4LWljb24gbmd4LWljb24tYXJyb3ctZG93blwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgPC9lbT5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cIm5neC1kcm9wZG93blwiICpuZ0lmPVwiISFjb2x1bW4uaGVhZGVyQWN0aW9uVGVtcGxhdGVcIiAjaGVhZGVyRHJvcGRvd24+XHJcbiAgICAgICAgPGEgY2xhc3M9XCJuZ3gtYnRuIG5neC1idG4tbGlua1wiIChjbGljayk9XCJzaG93SGVhZGVyQWN0aW9uVGVtcGxhdGVNZW51KGNvbHVtbilcIj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwibmd4LWljb24gbmd4LWljb24tbW9yZVwiPjwvc3Bhbj5cclxuICAgICAgICA8L2E+XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgY2xhc3M9XCJuZ3gtbWVudSBuZ3gtdGFibGVfX3RhYmxlLW1lbnVcIlxyXG4gICAgICAgICAgKm5nSWY9XCJjb2x1bW4ua2V5ID09PSBvcGVuZWRIZWFkZXJBY3Rpb25UZW1wbGF0ZVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJjb2x1bW4uaGVhZGVyQWN0aW9uVGVtcGxhdGVcIj4gPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibmd4LXRhYmxlX19jb2x1bW4tcmVzaXplclwiICpuZ0lmPVwiY29uZmlnLnJlc2l6ZUNvbHVtbiAmJiAhbGFzdFwiPjwvZGl2PlxyXG4gICAgPC90aD5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuICA8dGhcclxuICAgICpuZ0lmPVwiXHJcbiAgICAgIGNvbmZpZy5hZGRpdGlvbmFsQWN0aW9ucyB8fFxyXG4gICAgICBjb25maWcuZGV0YWlsc1RlbXBsYXRlIHx8XHJcbiAgICAgIGNvbmZpZy5jb2xsYXBzZUFsbFJvd3MgfHxcclxuICAgICAgY29uZmlnLmdyb3VwUm93c1xyXG4gICAgXCJcclxuICAgIGNsYXNzPVwibmd4LXRhYmxlX19oZWFkZXItY2VsbC1hZGRpdGlvbmFsLWFjdGlvbnNcIlxyXG4gID5cclxuICAgIDxkaXYgY2xhc3M9XCJuZ3gtZHJvcGRvd25cIiAjYWRkaXRpb25hbEFjdGlvbk1lbnUgKm5nSWY9XCJjb25maWcuYWRkaXRpb25hbEFjdGlvbnNcIj5cclxuICAgICAgPGEgY2xhc3M9XCJuZ3gtYnRuIG5neC1idG4tbGlua1wiIChjbGljayk9XCJzaG93TWVudSgpXCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJuZ3gtaWNvbiBuZ3gtaWNvbi1tZW51XCI+PC9zcGFuPlxyXG4gICAgICA8L2E+XHJcbiAgICAgIDx1bCBjbGFzcz1cIm5neC1tZW51IG5neC10YWJsZV9fdGFibGUtbWVudVwiICpuZ0lmPVwibWVudUFjdGl2ZVwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICpuZ0lmPVwiYWRkaXRpb25hbEFjdGlvbnNUZW1wbGF0ZVwiXHJcbiAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJhZGRpdGlvbmFsQWN0aW9uc1RlbXBsYXRlXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvdWw+XHJcbiAgICA8L2Rpdj5cclxuICA8L3RoPlxyXG48L3RyPlxyXG48dHJcclxuICBbc3R5bGUuZGlzcGxheV09XCJjb25maWcuc2VhcmNoRW5hYmxlZCAmJiAhZmlsdGVyc1RlbXBsYXRlID8gJ3RhYmxlLXJvdycgOiAnbm9uZSdcIlxyXG4gIGNsYXNzPVwibmd4LXRhYmxlX19zZWFyY2gtaGVhZGVyXCJcclxuPlxyXG4gIDx0aCAqbmdJZj1cImNvbmZpZy5jaGVja2JveGVzIHx8IGNvbmZpZy5yYWRpb1wiPjwvdGg+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIGNvbHVtbnM7IGxldCBjb2xJbmRleCA9IGluZGV4XCI+XHJcbiAgICA8dGhcclxuICAgICAgW25nQ2xhc3NdPVwiY29sdW1uLmNzc0NsYXNzICYmIGNvbHVtbi5jc3NDbGFzcy5pbmNsdWRlSGVhZGVyID8gY29sdW1uLmNzc0NsYXNzLm5hbWUgOiAnJ1wiXHJcbiAgICAgIFtjbGFzcy5waW5uZWQtbGVmdF09XCJjb2x1bW4ucGlubmVkXCJcclxuICAgICAgW3N0eWxlLmxlZnRdPVwic3R5bGVTZXJ2aWNlLnBpbm5lZFdpZHRoKGNvbHVtbi5waW5uZWQsIGNvbEluZGV4KVwiXHJcbiAgICA+XHJcbiAgICAgIDx0YWJsZS1oZWFkZXJcclxuICAgICAgICAqbmdJZj1cImdldENvbHVtbkRlZmluaXRpb24oY29sdW1uKVwiXHJcbiAgICAgICAgKHVwZGF0ZSk9XCJvblNlYXJjaCgkZXZlbnQpXCJcclxuICAgICAgICBbY29sdW1uXT1cImNvbHVtblwiXHJcbiAgICAgID5cclxuICAgICAgPC90YWJsZS1oZWFkZXI+XHJcbiAgICA8L3RoPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG4gIDx0aCAqbmdJZj1cImNvbmZpZy5hZGRpdGlvbmFsQWN0aW9ucyB8fCBjb25maWcuZGV0YWlsc1RlbXBsYXRlXCI+PC90aD5cclxuPC90cj5cclxuPG5nLWNvbnRhaW5lciAqbmdJZj1cImZpbHRlcnNUZW1wbGF0ZVwiPlxyXG4gIDx0cj5cclxuICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiZmlsdGVyc1RlbXBsYXRlXCI+IDwvbmctY29udGFpbmVyPlxyXG4gIDwvdHI+XHJcbjwvbmctY29udGFpbmVyPlxyXG4iXX0=
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export * from './model/columns';
|
|
2
|
+
export * from './model/config';
|
|
3
|
+
export * from './model/event.enum';
|
|
4
|
+
export * from './model/pagination';
|
|
5
|
+
export * from './model/api';
|
|
6
|
+
export * from './services/config-service';
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtZWFzeS10YWJsZS9zcmMvbGliL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYywyQkFBMkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbW9kZWwvY29sdW1ucyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbW9kZWwvY29uZmlnJztcclxuZXhwb3J0ICogZnJvbSAnLi9tb2RlbC9ldmVudC5lbnVtJztcclxuZXhwb3J0ICogZnJvbSAnLi9tb2RlbC9wYWdpbmF0aW9uJztcclxuZXhwb3J0ICogZnJvbSAnLi9tb2RlbC9hcGknO1xyXG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL2NvbmZpZy1zZXJ2aWNlJztcclxuIl19
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export var API;
|
|
2
|
+
(function (API) {
|
|
3
|
+
API["rowContextMenuClicked"] = "rowContextMenuClicked";
|
|
4
|
+
API["setInputValue"] = "setInputValue";
|
|
5
|
+
API["toggleRowIndex"] = "toggleRowIndex";
|
|
6
|
+
API["toggleCheckbox"] = "toggleCheckbox";
|
|
7
|
+
API["onGlobalSearch"] = "onGlobalSearch";
|
|
8
|
+
API["setPaginationCurrentPage"] = "setPaginationCurrentPage";
|
|
9
|
+
API["getPaginationCurrentPage"] = "getPaginationCurrentPage";
|
|
10
|
+
API["getPaginationTotalItems"] = "getPaginationTotalItems";
|
|
11
|
+
API["getNumberOfRowsPerPage"] = "getNumberOfRowsPerPage";
|
|
12
|
+
API["getPaginationLastPage"] = "getPaginationLastPage";
|
|
13
|
+
API["setPaginationRange"] = "setPaginationRange";
|
|
14
|
+
API["setPaginationPreviousLabel"] = "setPaginationPreviousLabel";
|
|
15
|
+
API["setPaginationNextLabel"] = "setPaginationNextLabel";
|
|
16
|
+
API["setPaginationDisplayLimit"] = "setPaginationDisplayLimit";
|
|
17
|
+
API["setTableClass"] = "setTableClass";
|
|
18
|
+
API["setRowClass"] = "setRowClass";
|
|
19
|
+
API["setCellClass"] = "setCellClass";
|
|
20
|
+
API["setRowStyle"] = "setRowStyle";
|
|
21
|
+
API["setCellStyle"] = "setCellStyle";
|
|
22
|
+
API["sortBy"] = "sortBy";
|
|
23
|
+
})(API || (API = {}));
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWVhc3ktdGFibGUvc3JjL2xpYi9tb2RlbC9hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFOLElBQVksR0FxQlg7QUFyQkQsV0FBWSxHQUFHO0lBQ2Isc0RBQStDLENBQUE7SUFDL0Msc0NBQStCLENBQUE7SUFDL0Isd0NBQWlDLENBQUE7SUFDakMsd0NBQWlDLENBQUE7SUFDakMsd0NBQWlDLENBQUE7SUFDakMsNERBQXFELENBQUE7SUFDckQsNERBQXFELENBQUE7SUFDckQsMERBQW1ELENBQUE7SUFDbkQsd0RBQWlELENBQUE7SUFDakQsc0RBQStDLENBQUE7SUFDL0MsZ0RBQXlDLENBQUE7SUFDekMsZ0VBQXlELENBQUE7SUFDekQsd0RBQWlELENBQUE7SUFDakQsOERBQXVELENBQUE7SUFDdkQsc0NBQStCLENBQUE7SUFDL0Isa0NBQTJCLENBQUE7SUFDM0Isb0NBQTZCLENBQUE7SUFDN0Isa0NBQTJCLENBQUE7SUFDM0Isb0NBQTZCLENBQUE7SUFDN0Isd0JBQWlCLENBQUE7QUFDbkIsQ0FBQyxFQXJCVyxHQUFHLEtBQUgsR0FBRyxRQXFCZCIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIEFQSSB7XHJcbiAgcm93Q29udGV4dE1lbnVDbGlja2VkID0gJ3Jvd0NvbnRleHRNZW51Q2xpY2tlZCcsXHJcbiAgc2V0SW5wdXRWYWx1ZSA9ICdzZXRJbnB1dFZhbHVlJyxcclxuICB0b2dnbGVSb3dJbmRleCA9ICd0b2dnbGVSb3dJbmRleCcsXHJcbiAgdG9nZ2xlQ2hlY2tib3ggPSAndG9nZ2xlQ2hlY2tib3gnLFxyXG4gIG9uR2xvYmFsU2VhcmNoID0gJ29uR2xvYmFsU2VhcmNoJyxcclxuICBzZXRQYWdpbmF0aW9uQ3VycmVudFBhZ2UgPSAnc2V0UGFnaW5hdGlvbkN1cnJlbnRQYWdlJyxcclxuICBnZXRQYWdpbmF0aW9uQ3VycmVudFBhZ2UgPSAnZ2V0UGFnaW5hdGlvbkN1cnJlbnRQYWdlJyxcclxuICBnZXRQYWdpbmF0aW9uVG90YWxJdGVtcyA9ICdnZXRQYWdpbmF0aW9uVG90YWxJdGVtcycsXHJcbiAgZ2V0TnVtYmVyT2ZSb3dzUGVyUGFnZSA9ICdnZXROdW1iZXJPZlJvd3NQZXJQYWdlJyxcclxuICBnZXRQYWdpbmF0aW9uTGFzdFBhZ2UgPSAnZ2V0UGFnaW5hdGlvbkxhc3RQYWdlJyxcclxuICBzZXRQYWdpbmF0aW9uUmFuZ2UgPSAnc2V0UGFnaW5hdGlvblJhbmdlJyxcclxuICBzZXRQYWdpbmF0aW9uUHJldmlvdXNMYWJlbCA9ICdzZXRQYWdpbmF0aW9uUHJldmlvdXNMYWJlbCcsXHJcbiAgc2V0UGFnaW5hdGlvbk5leHRMYWJlbCA9ICdzZXRQYWdpbmF0aW9uTmV4dExhYmVsJyxcclxuICBzZXRQYWdpbmF0aW9uRGlzcGxheUxpbWl0ID0gJ3NldFBhZ2luYXRpb25EaXNwbGF5TGltaXQnLFxyXG4gIHNldFRhYmxlQ2xhc3MgPSAnc2V0VGFibGVDbGFzcycsXHJcbiAgc2V0Um93Q2xhc3MgPSAnc2V0Um93Q2xhc3MnLFxyXG4gIHNldENlbGxDbGFzcyA9ICdzZXRDZWxsQ2xhc3MnLFxyXG4gIHNldFJvd1N0eWxlID0gJ3NldFJvd1N0eWxlJyxcclxuICBzZXRDZWxsU3R5bGUgPSAnc2V0Q2VsbFN0eWxlJyxcclxuICBzb3J0QnkgPSAnc29ydEJ5JyxcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBSb3dDbGFzcyB7XHJcbiAgcm93OiBudW1iZXI7XHJcbiAgY2xhc3NOYW1lOiBzdHJpbmc7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBDZWxsQ2xhc3Mge1xyXG4gIHJvdzogbnVtYmVyO1xyXG4gIGNlbGw6IG51bWJlciB8IHN0cmluZztcclxuICBjbGFzc05hbWU6IHN0cmluZztcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIFJvd1N0eWxlIHtcclxuICByb3c6IG51bWJlcjtcclxuICBhdHRyOiBzdHJpbmc7XHJcbiAgdmFsdWU6IHN0cmluZztcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIENlbGxTdHlsZSB7XHJcbiAgcm93OiBudW1iZXI7XHJcbiAgY2VsbDogbnVtYmVyO1xyXG4gIGF0dHI6IHN0cmluZztcclxuICB2YWx1ZTogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgdHlwZSBBcGlUeXBlID1cclxuICB8IHsgdHlwZTogQVBJLnJvd0NvbnRleHRNZW51Q2xpY2tlZCB9XHJcbiAgfCB7IHR5cGU6IEFQSS5zZXRJbnB1dFZhbHVlOyB2YWx1ZTogQXJyYXk8eyBrZXk6IHN0cmluZzsgdmFsdWU6IHN0cmluZyB9PiB9XHJcbiAgfCB7IHR5cGU6IEFQSS50b2dnbGVSb3dJbmRleDsgdmFsdWU6IG51bWJlciB9XHJcbiAgfCB7IHR5cGU6IEFQSS50b2dnbGVDaGVja2JveDsgdmFsdWU6IG51bWJlciB9XHJcbiAgfCB7IHR5cGU6IEFQSS5vbkdsb2JhbFNlYXJjaDsgdmFsdWU6IHN0cmluZyB9XHJcbiAgfCB7IHR5cGU6IEFQSS5zZXRQYWdpbmF0aW9uQ3VycmVudFBhZ2U7IHZhbHVlOiBudW1iZXIgfVxyXG4gIHwgeyB0eXBlOiBBUEkuZ2V0UGFnaW5hdGlvbkN1cnJlbnRQYWdlIH1cclxuICB8IHsgdHlwZTogQVBJLmdldFBhZ2luYXRpb25Ub3RhbEl0ZW1zIH1cclxuICB8IHsgdHlwZTogQVBJLmdldFBhZ2luYXRpb25MYXN0UGFnZSB9XHJcbiAgfCB7IHR5cGU6IEFQSS5nZXROdW1iZXJPZlJvd3NQZXJQYWdlIH1cclxuICB8IHsgdHlwZTogQVBJLnNldFBhZ2luYXRpb25SYW5nZTsgdmFsdWU6IG51bWJlcltdIH1cclxuICB8IHsgdHlwZTogQVBJLnNldFBhZ2luYXRpb25QcmV2aW91c0xhYmVsOyB2YWx1ZTogc3RyaW5nIH1cclxuICB8IHsgdHlwZTogQVBJLnNldFBhZ2luYXRpb25OZXh0TGFiZWw7IHZhbHVlOiBzdHJpbmcgfVxyXG4gIHwgeyB0eXBlOiBBUEkuc2V0UGFnaW5hdGlvbkRpc3BsYXlMaW1pdDsgdmFsdWU6IG51bWJlciB9XHJcbiAgfCB7IHR5cGU6IEFQSS5zZXRUYWJsZUNsYXNzOyB2YWx1ZTogc3RyaW5nIHwgbnVsbCB9XHJcbiAgfCB7IHR5cGU6IEFQSS5zZXRSb3dDbGFzczsgdmFsdWU6IFJvd0NsYXNzIHwgUm93Q2xhc3NbXSB9XHJcbiAgfCB7IHR5cGU6IEFQSS5zZXRDZWxsQ2xhc3M7IHZhbHVlOiBDZWxsQ2xhc3MgfCBDZWxsQ2xhc3NbXSB9XHJcbiAgfCB7IHR5cGU6IEFQSS5zZXRSb3dTdHlsZTsgdmFsdWU6IFJvd1N0eWxlIHwgUm93U3R5bGVbXSB9XHJcbiAgfCB7IHR5cGU6IEFQSS5zZXRDZWxsU3R5bGU7IHZhbHVlOiBDZWxsU3R5bGUgfCBDZWxsU3R5bGVbXSB9XHJcbiAgfCB7IHR5cGU6IEFQSS5zb3J0Qnk7IHZhbHVlOiB7IGNvbHVtbjogc3RyaW5nOyBvcmRlcjogJ2FzYycgfCAnZGVzYycgfSB9O1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBBUElEZWZpbml0aW9uIHtcclxuICBhcGlFdmVudDxCIGV4dGVuZHMgQXBpVHlwZT4oZXZlbnQ6IEIpOiBJQVBJRGVmaW5pdGlvbjxCPjtcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgSUFQSURlZmluaXRpb248Qj4gPSBCIGV4dGVuZHNcclxuICB8IHsgdHlwZTogQVBJLmdldFBhZ2luYXRpb25DdXJyZW50UGFnZSB9XHJcbiAgfCB7IHR5cGU6IEFQSS5nZXRQYWdpbmF0aW9uVG90YWxJdGVtcyB9XHJcbiAgfCB7IHR5cGU6IEFQSS5nZXRQYWdpbmF0aW9uTGFzdFBhZ2UgfVxyXG4gIHwgeyB0eXBlOiBBUEkuZ2V0TnVtYmVyT2ZSb3dzUGVyUGFnZSB9XHJcbiAgPyBudW1iZXJcclxuICA6IHZvaWQ7XHJcbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1lYXN5LXRhYmxlL3NyYy9saWIvbW9kZWwvY29sdW1ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ29sdW1ucyB7XHJcbiAga2V5OiBzdHJpbmc7XHJcbiAgdGl0bGU6IHN0cmluZztcclxuICBwbGFjZWhvbGRlcj86IHN0cmluZztcclxuICB3aWR0aD86IHN0cmluZztcclxuICBjZWxsVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gIG9yZGVyRW5hYmxlZD86IGJvb2xlYW47XHJcbiAgb3JkZXJFdmVudE9ubHk/OiBib29sZWFuO1xyXG4gIHNlYXJjaEVuYWJsZWQ/OiBib29sZWFuO1xyXG4gIG9yZGVyQnk/OiBzdHJpbmc7XHJcbiAgY3NzQ2xhc3M/OiB7IG5hbWU6IHN0cmluZzsgaW5jbHVkZUhlYWRlcjogYm9vbGVhbiB9O1xyXG4gIHBpbm5lZD86IGJvb2xlYW47XHJcbiAgaGVhZGVyQWN0aW9uVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export var STYLE;
|
|
2
|
+
(function (STYLE) {
|
|
3
|
+
STYLE["TINY"] = "tiny";
|
|
4
|
+
STYLE["BIG"] = "big";
|
|
5
|
+
STYLE["NORMAL"] = "normal";
|
|
6
|
+
})(STYLE || (STYLE = {}));
|
|
7
|
+
export var THEME;
|
|
8
|
+
(function (THEME) {
|
|
9
|
+
THEME["LIGHT"] = "light";
|
|
10
|
+
THEME["DARK"] = "dark";
|
|
11
|
+
})(THEME || (THEME = {}));
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWVhc3ktdGFibGUvc3JjL2xpYi9tb2RlbC9jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBZ0RBLE1BQU0sQ0FBTixJQUFZLEtBSVg7QUFKRCxXQUFZLEtBQUs7SUFDZixzQkFBYSxDQUFBO0lBQ2Isb0JBQVcsQ0FBQTtJQUNYLDBCQUFpQixDQUFBO0FBQ25CLENBQUMsRUFKVyxLQUFLLEtBQUwsS0FBSyxRQUloQjtBQUVELE1BQU0sQ0FBTixJQUFZLEtBR1g7QUFIRCxXQUFZLEtBQUs7SUFDZix3QkFBZSxDQUFBO0lBQ2Ysc0JBQWEsQ0FBQTtBQUNmLENBQUMsRUFIVyxLQUFLLEtBQUwsS0FBSyxRQUdoQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgQ29uZmlnIHtcclxuICBzZWFyY2hFbmFibGVkOiBib29sZWFuO1xyXG4gIC8qIEBkZXByZWNhdGVkIFdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCB2ZXJzaW9uICovXHJcbiAgaGVhZGVyRW5hYmxlZDogYm9vbGVhbjtcclxuICBvcmRlckVuYWJsZWQ6IGJvb2xlYW47XHJcbiAgb3JkZXJFdmVudE9ubHk/OiBib29sZWFuO1xyXG4gIHBhZ2luYXRpb25FbmFibGVkOiBib29sZWFuO1xyXG4gIGNsaWNrRXZlbnQ6IGJvb2xlYW47XHJcbiAgc2VsZWN0Um93OiBib29sZWFuO1xyXG4gIHNlbGVjdENvbDogYm9vbGVhbjtcclxuICBzZWxlY3RDZWxsOiBib29sZWFuO1xyXG4gIHJvd3M6IG51bWJlcjtcclxuICBhZGRpdGlvbmFsQWN0aW9uczogYm9vbGVhbjtcclxuICBzZXJ2ZXJQYWdpbmF0aW9uOiBib29sZWFuO1xyXG4gIGlzTG9hZGluZzogYm9vbGVhbjtcclxuICBkZXRhaWxzVGVtcGxhdGU6IGJvb2xlYW47XHJcbiAgLyogQGRlcHJlY2F0ZWQgV2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IHZlcnNpb24gKi9cclxuICBncm91cFJvd3M6IGJvb2xlYW47XHJcbiAgcGFnaW5hdGlvblJhbmdlRW5hYmxlZDogYm9vbGVhbjtcclxuICBjb2xsYXBzZUFsbFJvd3M6IGJvb2xlYW47XHJcbiAgY2hlY2tib3hlczogYm9vbGVhbjtcclxuICByYWRpbz86IGJvb2xlYW47XHJcbiAgcmVzaXplQ29sdW1uOiBib29sZWFuO1xyXG4gIGZpeGVkQ29sdW1uV2lkdGg6IGJvb2xlYW47XHJcbiAgaG9yaXpvbnRhbFNjcm9sbDogYm9vbGVhbjtcclxuICBsb2dnZXI6IGJvb2xlYW47XHJcbiAgc2hvd0RldGFpbHNBcnJvdz86IGJvb2xlYW47XHJcbiAgc2hvd0NvbnRleHRNZW51PzogYm9vbGVhbjtcclxuICBwZXJzaXN0U3RhdGU/OiBib29sZWFuO1xyXG4gIC8qIEBkZXByZWNhdGVkIFdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCB2ZXJzaW9uICovXHJcbiAgcGFnaW5hdGlvbk1heFNpemU/OiBudW1iZXI7XHJcbiAgdGhyZWVXYXlTb3J0PzogYm9vbGVhbjtcclxuICBjb2x1bW5SZW9yZGVyPzogYm9vbGVhbjtcclxuICAvKiBAZGVwcmVjYXRlZCBXaWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgdmVyc2lvbiAqL1xyXG4gIHJvd1Jlb3JkZXI/OiBib29sZWFuO1xyXG4gIHJlb3JkZXJEZWxheT86IG51bWJlcjtcclxuICBpbmZpbml0ZVNjcm9sbD86IGJvb2xlYW47XHJcbiAgaW5maW5pdGVTY3JvbGxUaHJvdHRsZVRpbWU/OiBudW1iZXI7XHJcbiAgb25EcmFnT3Zlcj86IGJvb2xlYW47XHJcbiAgdGFibGVMYXlvdXQ6IHtcclxuICAgIHN0eWxlOiBTVFlMRSB8IHN0cmluZyB8IG51bGw7XHJcbiAgICB0aGVtZTogVEhFTUUgfCBzdHJpbmcgfCBudWxsO1xyXG4gICAgYm9yZGVybGVzczogYm9vbGVhbiB8IG51bGw7XHJcbiAgICBob3ZlcjogYm9vbGVhbiB8IG51bGw7XHJcbiAgICBzdHJpcGVkOiBib29sZWFuIHwgbnVsbDtcclxuICB9O1xyXG59XHJcblxyXG5leHBvcnQgZW51bSBTVFlMRSB7XHJcbiAgVElOWSA9ICd0aW55JyxcclxuICBCSUcgPSAnYmlnJyxcclxuICBOT1JNQUwgPSAnbm9ybWFsJyxcclxufVxyXG5cclxuZXhwb3J0IGVudW0gVEhFTUUge1xyXG4gIExJR0hUID0gJ2xpZ2h0JyxcclxuICBEQVJLID0gJ2RhcmsnLFxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export var Event;
|
|
2
|
+
(function (Event) {
|
|
3
|
+
Event["onPagination"] = "onPagination";
|
|
4
|
+
Event["onOrder"] = "onOrder";
|
|
5
|
+
Event["onGlobalSearch"] = "onGlobalSearch";
|
|
6
|
+
Event["onSearch"] = "onSearch";
|
|
7
|
+
Event["onClick"] = "onClick";
|
|
8
|
+
Event["onDoubleClick"] = "onDoubleClick";
|
|
9
|
+
Event["onCheckboxSelect"] = "onCheckboxSelect";
|
|
10
|
+
Event["onRadioSelect"] = "onRadioSelect";
|
|
11
|
+
Event["onCheckboxToggle"] = "onCheckboxToggle";
|
|
12
|
+
Event["onSelectAll"] = "onSelectAll";
|
|
13
|
+
Event["onInfiniteScrollEnd"] = "onInfiniteScrollEnd";
|
|
14
|
+
Event["onColumnResizeMouseDown"] = "onColumnResizeMouseDown";
|
|
15
|
+
Event["onColumnResizeMouseUp"] = "onColumnResizeMouseUp";
|
|
16
|
+
/* @deprecated Will be removed in the next version */
|
|
17
|
+
Event["onRowDrop"] = "onRowDrop";
|
|
18
|
+
/* @deprecated Will be removed in the next version */
|
|
19
|
+
Event["onReorderStart"] = "onReorderStart";
|
|
20
|
+
Event["onRowCollapsedShow"] = "onRowCollapsedShow";
|
|
21
|
+
Event["onRowCollapsedHide"] = "onRowCollapsedHide";
|
|
22
|
+
Event["onRowContextMenu"] = "onRowContextMenu";
|
|
23
|
+
})(Event || (Event = {}));
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQuZW51bS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1lYXN5LXRhYmxlL3NyYy9saWIvbW9kZWwvZXZlbnQuZW51bS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSxLQXFCWDtBQXJCRCxXQUFZLEtBQUs7SUFDZixzQ0FBNkIsQ0FBQTtJQUM3Qiw0QkFBbUIsQ0FBQTtJQUNuQiwwQ0FBaUMsQ0FBQTtJQUNqQyw4QkFBcUIsQ0FBQTtJQUNyQiw0QkFBbUIsQ0FBQTtJQUNuQix3Q0FBK0IsQ0FBQTtJQUMvQiw4Q0FBcUMsQ0FBQTtJQUNyQyx3Q0FBK0IsQ0FBQTtJQUMvQiw4Q0FBcUMsQ0FBQTtJQUNyQyxvQ0FBMkIsQ0FBQTtJQUMzQixvREFBMkMsQ0FBQTtJQUMzQyw0REFBbUQsQ0FBQTtJQUNuRCx3REFBK0MsQ0FBQTtJQUMvQyxxREFBcUQ7SUFDckQsZ0NBQXVCLENBQUE7SUFDdkIscURBQXFEO0lBQ3JELDBDQUFpQyxDQUFBO0lBQ2pDLGtEQUF5QyxDQUFBO0lBQ3pDLGtEQUF5QyxDQUFBO0lBQ3pDLDhDQUFxQyxDQUFBO0FBQ3ZDLENBQUMsRUFyQlcsS0FBSyxLQUFMLEtBQUssUUFxQmhCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gRXZlbnQge1xyXG4gIG9uUGFnaW5hdGlvbiA9ICdvblBhZ2luYXRpb24nLFxyXG4gIG9uT3JkZXIgPSAnb25PcmRlcicsXHJcbiAgb25HbG9iYWxTZWFyY2ggPSAnb25HbG9iYWxTZWFyY2gnLFxyXG4gIG9uU2VhcmNoID0gJ29uU2VhcmNoJyxcclxuICBvbkNsaWNrID0gJ29uQ2xpY2snLFxyXG4gIG9uRG91YmxlQ2xpY2sgPSAnb25Eb3VibGVDbGljaycsXHJcbiAgb25DaGVja2JveFNlbGVjdCA9ICdvbkNoZWNrYm94U2VsZWN0JyxcclxuICBvblJhZGlvU2VsZWN0ID0gJ29uUmFkaW9TZWxlY3QnLFxyXG4gIG9uQ2hlY2tib3hUb2dnbGUgPSAnb25DaGVja2JveFRvZ2dsZScsXHJcbiAgb25TZWxlY3RBbGwgPSAnb25TZWxlY3RBbGwnLFxyXG4gIG9uSW5maW5pdGVTY3JvbGxFbmQgPSAnb25JbmZpbml0ZVNjcm9sbEVuZCcsXHJcbiAgb25Db2x1bW5SZXNpemVNb3VzZURvd24gPSAnb25Db2x1bW5SZXNpemVNb3VzZURvd24nLFxyXG4gIG9uQ29sdW1uUmVzaXplTW91c2VVcCA9ICdvbkNvbHVtblJlc2l6ZU1vdXNlVXAnLFxyXG4gIC8qIEBkZXByZWNhdGVkIFdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCB2ZXJzaW9uICovXHJcbiAgb25Sb3dEcm9wID0gJ29uUm93RHJvcCcsXHJcbiAgLyogQGRlcHJlY2F0ZWQgV2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IHZlcnNpb24gKi9cclxuICBvblJlb3JkZXJTdGFydCA9ICdvblJlb3JkZXJTdGFydCcsXHJcbiAgb25Sb3dDb2xsYXBzZWRTaG93ID0gJ29uUm93Q29sbGFwc2VkU2hvdycsXHJcbiAgb25Sb3dDb2xsYXBzZWRIaWRlID0gJ29uUm93Q29sbGFwc2VkSGlkZScsXHJcbiAgb25Sb3dDb250ZXh0TWVudSA9ICdvblJvd0NvbnRleHRNZW51JyxcclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1lYXN5LXRhYmxlL3NyYy9saWIvbW9kZWwvcGFnaW5hdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBQYWdpbmF0aW9uIHtcclxuICBsaW1pdDogbnVtYmVyO1xyXG4gIG9mZnNldDogbnVtYmVyO1xyXG4gIGNvdW50OiBudW1iZXI7XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { Pipe } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class GlobalSearchPipe {
|
|
4
|
+
transform(array, filter, filteredCountSubject) {
|
|
5
|
+
filteredCountSubject.next(0);
|
|
6
|
+
if (typeof array === 'undefined') {
|
|
7
|
+
return;
|
|
8
|
+
}
|
|
9
|
+
if (typeof filter === 'undefined' || Object.keys(filter).length === 0 || filter === '') {
|
|
10
|
+
filteredCountSubject.next(array.length);
|
|
11
|
+
return array;
|
|
12
|
+
}
|
|
13
|
+
const arr = array.filter((row) => {
|
|
14
|
+
const element = JSON.stringify(Object.values(row));
|
|
15
|
+
const strings = filter.split(',');
|
|
16
|
+
return strings.some((s) => element.toLocaleLowerCase().indexOf(s.trim().toLocaleLowerCase()) > -1);
|
|
17
|
+
});
|
|
18
|
+
filteredCountSubject.next(arr.length);
|
|
19
|
+
return arr;
|
|
20
|
+
}
|
|
21
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: GlobalSearchPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
22
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.0", ngImport: i0, type: GlobalSearchPipe, name: "global" }); }
|
|
23
|
+
}
|
|
24
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: GlobalSearchPipe, decorators: [{
|
|
25
|
+
type: Pipe,
|
|
26
|
+
args: [{
|
|
27
|
+
name: 'global',
|
|
28
|
+
}]
|
|
29
|
+
}] });
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvYmFsLXNlYXJjaC1waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWVhc3ktdGFibGUvc3JjL2xpYi9waXBlcy9nbG9iYWwtc2VhcmNoLXBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7O0FBTXBELE1BQU0sT0FBTyxnQkFBZ0I7SUFDM0IsU0FBUyxDQUFDLEtBQVksRUFBRSxNQUFjLEVBQUUsb0JBQXFDO1FBQzNFLG9CQUFvQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM3QixJQUFJLE9BQU8sS0FBSyxLQUFLLFdBQVcsRUFBRSxDQUFDO1lBQ2pDLE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBSSxPQUFPLE1BQU0sS0FBSyxXQUFXLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLE1BQU0sS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUN2RixvQkFBb0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3hDLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztRQUNELE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUMvQixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUNuRCxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2xDLE9BQU8sT0FBTyxDQUFDLElBQUksQ0FDakIsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUM5RSxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7UUFDSCxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRXRDLE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQzs4R0FwQlUsZ0JBQWdCOzRHQUFoQixnQkFBZ0I7OzJGQUFoQixnQkFBZ0I7a0JBSDVCLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLFFBQVE7aUJBQ2YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuXHJcbkBQaXBlKHtcclxuICBuYW1lOiAnZ2xvYmFsJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIEdsb2JhbFNlYXJjaFBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcclxuICB0cmFuc2Zvcm0oYXJyYXk6IGFueVtdLCBmaWx0ZXI6IHN0cmluZywgZmlsdGVyZWRDb3VudFN1YmplY3Q6IFN1YmplY3Q8bnVtYmVyPik6IGFueSB7XHJcbiAgICBmaWx0ZXJlZENvdW50U3ViamVjdC5uZXh0KDApO1xyXG4gICAgaWYgKHR5cGVvZiBhcnJheSA9PT0gJ3VuZGVmaW5lZCcpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYgKHR5cGVvZiBmaWx0ZXIgPT09ICd1bmRlZmluZWQnIHx8IE9iamVjdC5rZXlzKGZpbHRlcikubGVuZ3RoID09PSAwIHx8IGZpbHRlciA9PT0gJycpIHtcclxuICAgICAgZmlsdGVyZWRDb3VudFN1YmplY3QubmV4dChhcnJheS5sZW5ndGgpO1xyXG4gICAgICByZXR1cm4gYXJyYXk7XHJcbiAgICB9XHJcbiAgICBjb25zdCBhcnIgPSBhcnJheS5maWx0ZXIoKHJvdykgPT4ge1xyXG4gICAgICBjb25zdCBlbGVtZW50ID0gSlNPTi5zdHJpbmdpZnkoT2JqZWN0LnZhbHVlcyhyb3cpKTtcclxuICAgICAgY29uc3Qgc3RyaW5ncyA9IGZpbHRlci5zcGxpdCgnLCcpO1xyXG4gICAgICByZXR1cm4gc3RyaW5ncy5zb21lKFxyXG4gICAgICAgIChzKSA9PiBlbGVtZW50LnRvTG9jYWxlTG93ZXJDYXNlKCkuaW5kZXhPZihzLnRyaW0oKS50b0xvY2FsZUxvd2VyQ2FzZSgpKSA+IC0xXHJcbiAgICAgICk7XHJcbiAgICB9KTtcclxuICAgIGZpbHRlcmVkQ291bnRTdWJqZWN0Lm5leHQoYXJyLmxlbmd0aCk7XHJcblxyXG4gICAgcmV0dXJuIGFycjtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Pipe } from '@angular/core';
|
|
2
|
+
import { FiltersService } from '../services/filters.service';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class RenderPipe {
|
|
5
|
+
transform(row, key) {
|
|
6
|
+
const split = key.split('.');
|
|
7
|
+
return FiltersService.getPath(split, row);
|
|
8
|
+
}
|
|
9
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: RenderPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
10
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.0", ngImport: i0, type: RenderPipe, name: "render" }); }
|
|
11
|
+
}
|
|
12
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: RenderPipe, decorators: [{
|
|
13
|
+
type: Pipe,
|
|
14
|
+
args: [{
|
|
15
|
+
name: 'render',
|
|
16
|
+
}]
|
|
17
|
+
}] });
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVuZGVyLXBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtZWFzeS10YWJsZS9zcmMvbGliL3BpcGVzL3JlbmRlci1waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ3BELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7QUFLN0QsTUFBTSxPQUFPLFVBQVU7SUFDckIsU0FBUyxDQUFDLEdBQVEsRUFBRSxHQUFXO1FBQzdCLE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFN0IsT0FBTyxjQUFjLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQztJQUM1QyxDQUFDOzhHQUxVLFVBQVU7NEdBQVYsVUFBVTs7MkZBQVYsVUFBVTtrQkFIdEIsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsUUFBUTtpQkFDZiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRmlsdGVyc1NlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9maWx0ZXJzLnNlcnZpY2UnO1xyXG5cclxuQFBpcGUoe1xyXG4gIG5hbWU6ICdyZW5kZXInLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUmVuZGVyUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xyXG4gIHRyYW5zZm9ybShyb3c6IGFueSwga2V5OiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgY29uc3Qgc3BsaXQgPSBrZXkuc3BsaXQoJy4nKTtcclxuXHJcbiAgICByZXR1cm4gRmlsdGVyc1NlcnZpY2UuZ2V0UGF0aChzcGxpdCwgcm93KTtcclxuICB9XHJcbn1cclxuIl19
|