@datarailsshared/datarailsshared 1.6.232 → 1.6.236

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/assets/styles/_storybook-styles.scss +3 -0
  2. package/assets/styles/_styles.scss +3 -0
  3. package/datarailsshared-datarailsshared-1.6.236.tgz +0 -0
  4. package/esm2022/lib/decorators/decorators.mjs +26 -0
  5. package/esm2022/lib/dr-grid/components/cells/cell-action/cell-action.component.mjs +95 -0
  6. package/esm2022/lib/dr-grid/components/cells/cell-badge-status/cell-badge-status.component.mjs +49 -0
  7. package/esm2022/lib/dr-grid/components/cells/cell-button/cell-button.component.mjs +38 -0
  8. package/esm2022/lib/dr-grid/components/cells/cell-checkbox/cell-checkbox.component.mjs +50 -0
  9. package/esm2022/lib/dr-grid/components/cells/cell-children-list/cell-children-list.component.mjs +141 -0
  10. package/esm2022/lib/dr-grid/components/cells/cell-custom-template/cell-custom-template.component.mjs +28 -0
  11. package/esm2022/lib/dr-grid/components/cells/cell-icon-actions/cell-icon-actions.component.mjs +101 -0
  12. package/esm2022/lib/dr-grid/components/cells/cell-icon-text-edit/cell-icon-text-edit.component.mjs +130 -0
  13. package/esm2022/lib/dr-grid/components/cells/cell-link/cell-link.component.mjs +94 -0
  14. package/esm2022/lib/dr-grid/components/cells/cell-select/cell-select.component.mjs +45 -0
  15. package/esm2022/lib/dr-grid/components/cells/cell-set-as-default/cell-set-as-default.component.mjs +48 -0
  16. package/esm2022/lib/dr-grid/components/cells/cell-split-rows/cell-split-rows.component.mjs +99 -0
  17. package/esm2022/lib/dr-grid/components/cells/cell-toggle/cell-toggle.component.mjs +38 -0
  18. package/esm2022/lib/dr-grid/components/cells/tbl-header/tbl-header.component.mjs +169 -0
  19. package/esm2022/lib/dr-grid/components/dr-grid-columns-filter-popover/dr-grid-columns-filter-popover.component.mjs +87 -0
  20. package/esm2022/lib/dr-grid/components/dr-grid-no-rows/dr-grid-no-rows.component.mjs +10 -0
  21. package/esm2022/lib/dr-grid/components/dr-grid-pagination/dr-grid-pagination.component.mjs +150 -0
  22. package/esm2022/lib/dr-grid/components/dr-grid-toolbar/dr-grid-toolbar.component.mjs +194 -0
  23. package/esm2022/lib/dr-grid/components/tbl-toggle-button-header/tbl-toggle-button-header.component.mjs +46 -0
  24. package/esm2022/lib/dr-grid/dr-grid.component.mjs +364 -0
  25. package/esm2022/lib/dr-grid/dr-grid.mjs +26 -0
  26. package/esm2022/lib/dr-grid/models/dr-grid-events.mjs +9 -0
  27. package/esm2022/lib/dr-grid/models/dr-grid-theme.mjs +27 -0
  28. package/esm2022/lib/dr-grid/models/interfaces.mjs +6 -0
  29. package/esm2022/lib/dr-grid/services/abstract-single-grid.mjs +136 -0
  30. package/esm2022/lib/dr-grid/services/grid-utils.mjs +53 -0
  31. package/esm2022/lib/dr-spinner/dr-spinner.component.mjs +2 -2
  32. package/esm2022/lib/pipes/indeterminate/indeterminate.pipe.mjs +38 -0
  33. package/esm2022/local-api.mjs +6 -2
  34. package/fesm2022/datarailsshared-datarailsshared.mjs +2335 -265
  35. package/fesm2022/datarailsshared-datarailsshared.mjs.map +1 -1
  36. package/lib/decorators/decorators.d.ts +2 -0
  37. package/lib/dr-grid/components/cells/cell-action/cell-action.component.d.ts +37 -0
  38. package/lib/dr-grid/components/cells/cell-badge-status/cell-badge-status.component.d.ts +22 -0
  39. package/lib/dr-grid/components/cells/cell-button/cell-button.component.d.ts +19 -0
  40. package/lib/dr-grid/components/cells/cell-checkbox/cell-checkbox.component.d.ts +24 -0
  41. package/lib/dr-grid/components/cells/cell-children-list/cell-children-list.component.d.ts +21 -0
  42. package/lib/dr-grid/components/cells/cell-custom-template/cell-custom-template.component.d.ts +23 -0
  43. package/lib/dr-grid/components/cells/cell-icon-actions/cell-icon-actions.component.d.ts +35 -0
  44. package/lib/dr-grid/components/cells/cell-icon-text-edit/cell-icon-text-edit.component.d.ts +34 -0
  45. package/lib/dr-grid/components/cells/cell-link/cell-link.component.d.ts +33 -0
  46. package/lib/dr-grid/components/cells/cell-select/cell-select.component.d.ts +22 -0
  47. package/lib/dr-grid/components/cells/cell-set-as-default/cell-set-as-default.component.d.ts +16 -0
  48. package/lib/dr-grid/components/cells/cell-split-rows/cell-split-rows.component.d.ts +19 -0
  49. package/lib/dr-grid/components/cells/cell-toggle/cell-toggle.component.d.ts +15 -0
  50. package/lib/dr-grid/components/cells/tbl-header/tbl-header.component.d.ts +23 -0
  51. package/lib/dr-grid/components/dr-grid-columns-filter-popover/dr-grid-columns-filter-popover.component.d.ts +18 -0
  52. package/lib/dr-grid/components/dr-grid-no-rows/dr-grid-no-rows.component.d.ts +6 -0
  53. package/lib/dr-grid/components/dr-grid-pagination/dr-grid-pagination.component.d.ts +25 -0
  54. package/lib/dr-grid/components/dr-grid-toolbar/dr-grid-toolbar.component.d.ts +37 -0
  55. package/lib/dr-grid/components/tbl-toggle-button-header/tbl-toggle-button-header.component.d.ts +31 -0
  56. package/lib/dr-grid/dr-grid.component.d.ts +86 -0
  57. package/lib/dr-grid/dr-grid.d.ts +25 -0
  58. package/lib/dr-grid/models/dr-grid-events.d.ts +7 -0
  59. package/lib/dr-grid/models/dr-grid-theme.d.ts +3 -0
  60. package/lib/dr-grid/models/interfaces.d.ts +125 -0
  61. package/lib/dr-grid/services/abstract-single-grid.d.ts +37 -0
  62. package/lib/dr-grid/services/grid-utils.d.ts +11 -0
  63. package/lib/pipes/indeterminate/indeterminate.pipe.d.ts +12 -0
  64. package/local-api.d.ts +4 -1
  65. package/package.json +4 -2
  66. package/styles.css +7995 -0
  67. package/datarailsshared-datarailsshared-1.6.232.tgz +0 -0
@@ -0,0 +1,136 @@
1
+ import { catchError, tap } from 'rxjs/operators';
2
+ import { Component, Inject, Injector, ViewChild } from '@angular/core';
3
+ import { isEqual as _isEqual } from 'lodash';
4
+ import { Router } from '@angular/router';
5
+ import { BehaviorSubject } from 'rxjs';
6
+ import { getColumnSortingBySortType } from './grid-utils';
7
+ import { GridDrEventType } from '../models/dr-grid-events';
8
+ import { DrGridPaginationComponent } from '../components/dr-grid-pagination/dr-grid-pagination.component';
9
+ import * as i0 from "@angular/core";
10
+ export class AbstractSingleGridComponent {
11
+ set gridApi(api) {
12
+ if (this._gridApi === api) {
13
+ return;
14
+ }
15
+ this._gridApi = api;
16
+ if (api) {
17
+ this.subscribeOnSort();
18
+ this.subscribeOnUpdateTableParams();
19
+ this.subscribeCustomFilter();
20
+ this.subscribeMenuAction();
21
+ }
22
+ }
23
+ get gridApi() {
24
+ return this._gridApi;
25
+ }
26
+ constructor(injector) {
27
+ this.startLoading$ = new BehaviorSubject(true);
28
+ this.router = injector.get(Router);
29
+ }
30
+ onChangeParams() { }
31
+ onAfterUpdateTableParams() { }
32
+ ngOnInit() {
33
+ const search = this.router.routerState?.snapshot?.root?.queryParams?.['search'];
34
+ if (search) {
35
+ this.params.search = search;
36
+ this.router.navigate([], { queryParams: { search: null }, queryParamsHandling: 'merge' });
37
+ }
38
+ }
39
+ getData(fetch$, noLoad) {
40
+ this.startLoading$.next(true);
41
+ return fetch$?.pipe(tap(() => this.startLoading$.next(false)), tap((res) => (this.count = res?.count)), catchError((err) => {
42
+ if (this.pagination) {
43
+ this.pagination.setCount = 0;
44
+ this.pagination.setPage = 1;
45
+ this.pagination.updatePagination();
46
+ delete this.params.page;
47
+ this.startLoading$.next(false);
48
+ }
49
+ throw err;
50
+ }));
51
+ }
52
+ onSearch($event) {
53
+ if (this.pagination) {
54
+ this.pagination.page = 1;
55
+ this.pagination.updatePagination();
56
+ }
57
+ delete this.params.page;
58
+ if ($event && typeof $event === 'string') {
59
+ this.params.search = $event;
60
+ }
61
+ else {
62
+ delete this.params.search;
63
+ }
64
+ this.onChangeParams();
65
+ }
66
+ pageChange(page) {
67
+ if (page >= 1) {
68
+ this.params.page = page;
69
+ this.onChangeParams();
70
+ }
71
+ else {
72
+ delete this.params.page;
73
+ }
74
+ }
75
+ onFilter($event) {
76
+ if ($event && !_isEqual(this.params.filter, $event)) {
77
+ this.params.filter = $event;
78
+ this.onChangeParams();
79
+ }
80
+ }
81
+ subscribeOnSort() {
82
+ this.gridApi.drEvents.on(GridDrEventType.UPDATE_SORT).subscribe((sort) => {
83
+ if (this.params) {
84
+ const field = sort.header.column.getColDef().field;
85
+ this.params.ordering = getColumnSortingBySortType(sort.sort, field);
86
+ }
87
+ this.onChangeParams();
88
+ });
89
+ }
90
+ subscribeCustomFilter() {
91
+ this._gridApi.drEvents.on(GridDrEventType.UPDATE_FILTER).subscribe((filterMap) => {
92
+ if (this.params) {
93
+ this.params.filtering = filterMap;
94
+ this.onChangeParams();
95
+ }
96
+ });
97
+ }
98
+ subscribeOnUpdateTableParams() {
99
+ this._gridApi.drEvents.on(GridDrEventType.UPDATE_PARAMS).subscribe((params) => {
100
+ if (this.params) {
101
+ this.params.filtering = params?.filtering;
102
+ this.params.ordering = params?.ordering;
103
+ }
104
+ params?.filtering?.forEach((filterText, columnName) => {
105
+ this.gridApi.drEvents.filtersMap.set(columnName, filterText);
106
+ });
107
+ this.onAfterUpdateTableParams();
108
+ });
109
+ }
110
+ subscribeMenuAction() {
111
+ this._gridApi.drEvents
112
+ .on(GridDrEventType.MENU_ACTION)
113
+ .subscribe((item) => this.onMenuAction(item));
114
+ }
115
+ /** @nocollapse */ static { this.ɵfac = function AbstractSingleGridComponent_Factory(t) { return new (t || AbstractSingleGridComponent)(i0.ɵɵdirectiveInject(Injector)); }; }
116
+ /** @nocollapse */ static { this.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: AbstractSingleGridComponent, selectors: [["dr-abstract-single-grid"]], viewQuery: function AbstractSingleGridComponent_Query(rf, ctx) { if (rf & 1) {
117
+ i0.ɵɵviewQuery(DrGridPaginationComponent, 5);
118
+ } if (rf & 2) {
119
+ let _t;
120
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.pagination = _t.first);
121
+ } }, decls: 0, vars: 0, template: function AbstractSingleGridComponent_Template(rf, ctx) { }, encapsulation: 2 }); }
122
+ }
123
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AbstractSingleGridComponent, [{
124
+ type: Component,
125
+ args: [{
126
+ selector: 'dr-abstract-single-grid',
127
+ template: '',
128
+ }]
129
+ }], function () { return [{ type: undefined, decorators: [{
130
+ type: Inject,
131
+ args: [Injector]
132
+ }] }]; }, { pagination: [{
133
+ type: ViewChild,
134
+ args: [DrGridPaginationComponent]
135
+ }] }); })();
136
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3Qtc2luZ2xlLWdyaWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhcmFpbHNzaGFyZWQvc3JjL2xpYi9kci1ncmlkL3NlcnZpY2VzL2Fic3RyYWN0LXNpbmdsZS1ncmlkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFVLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsT0FBTyxJQUFJLFFBQVEsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUM3QyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2QyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFVMUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLCtEQUErRCxDQUFDOztBQU0xRyxNQUFNLE9BQWdCLDJCQUEyQjtJQUc3QyxJQUFJLE9BQU8sQ0FBQyxHQUFZO1FBQ3BCLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxHQUFHLEVBQUU7WUFDdkIsT0FBTztTQUNWO1FBRUQsSUFBSSxDQUFDLFFBQVEsR0FBRyxHQUFHLENBQUM7UUFFcEIsSUFBSSxHQUFHLEVBQUU7WUFDTCxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLDRCQUE0QixFQUFFLENBQUM7WUFDcEMsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7WUFDN0IsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7U0FDOUI7SUFDTCxDQUFDO0lBRUQsSUFBSSxP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TUFBTSxFQUFFO2dCQUNiLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxHQUFHLE1BQU0sRUFBRSxTQUFTLENBQUM7Z0JBQzFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxHQUFHLE1BQU0sRUFBRSxRQUFRLENBQUM7YUFDM0M7WUFFRCxNQUFNLEVBQUUsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFVBQVUsRUFBRSxVQUFVLEVBQUUsRUFBRTtnQkFDbEQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUM7WUFDakUsQ0FBQyxDQUFDLENBQUM7WUFFSCxJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztRQUNwQyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxtQkFBbUI7UUFDZixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVE7YUFDakIsRUFBRSxDQUFDLGVBQWUsQ0FBQyxXQUFXLENBQUM7YUFDL0IsU0FBUyxDQUFDLENBQUMsSUFBNEIsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQzlFLENBQUM7K0dBeElpQiwyQkFBMkIsdUJBa0NmLFFBQVE7bUdBbENwQiwyQkFBMkI7MkJBK0JsQyx5QkFBeUI7Ozs7Ozt1RkEvQmxCLDJCQUEyQjtjQUpoRCxTQUFTO2VBQUM7Z0JBQ1AsUUFBUSxFQUFFLHlCQUF5QjtnQkFDbkMsUUFBUSxFQUFFLEVBQUU7YUFDZjs7c0JBbUMwQixNQUFNO3VCQUFDLFFBQVE7d0JBSEEsVUFBVTtrQkFBL0MsU0FBUzttQkFBQyx5QkFBeUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjYXRjaEVycm9yLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCwgSW5qZWN0b3IsIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBpc0VxdWFsIGFzIF9pc0VxdWFsIH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGdldENvbHVtblNvcnRpbmdCeVNvcnRUeXBlIH0gZnJvbSAnLi9ncmlkLXV0aWxzJztcbmltcG9ydCB7XG4gICAgR3JpZEFwaSxcbiAgICBJR3JpZERyRmlsdGVyRXZlbnQsXG4gICAgSUdyaWREck1lbnVBY3Rpb25FdmVudCxcbiAgICBJR3JpZERyU29ydEV2ZW50LFxuICAgIElHcmlkRHJVcGRhdGVQYXJhbXNFdmVudCxcbiAgICBJR3JpZFBhcmFtc0ZpbHRlcixcbiAgICBJR3JpZERhdGFXaXRoUGFnaW5hdGlvbixcbn0gZnJvbSAnLi4vbW9kZWxzL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgR3JpZERyRXZlbnRUeXBlIH0gZnJvbSAnLi4vbW9kZWxzL2RyLWdyaWQtZXZlbnRzJztcbmltcG9ydCB7IERyR3JpZFBhZ2luYXRpb25Db21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzL2RyLWdyaWQtcGFnaW5hdGlvbi9kci1ncmlkLXBhZ2luYXRpb24uY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdkci1hYnN0cmFjdC1zaW5nbGUtZ3JpZCcsXG4gICAgdGVtcGxhdGU6ICcnLFxufSlcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBYnN0cmFjdFNpbmdsZUdyaWRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIHByaXZhdGUgX2dyaWRBcGkhOiBHcmlkQXBpO1xuXG4gICAgc2V0IGdyaWRBcGkoYXBpOiBHcmlkQXBpKSB7XG4gICAgICAgIGlmICh0aGlzLl9ncmlkQXBpID09PSBhcGkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2dyaWRBcGkgPSBhcGk7XG5cbiAgICAgICAgaWYgKGFwaSkge1xuICAgICAgICAgICAgdGhpcy5zdWJzY3JpYmVPblNvcnQoKTtcbiAgICAgICAgICAgIHRoaXMuc3Vic2NyaWJlT25VcGRhdGVUYWJsZVBhcmFtcygpO1xuICAgICAgICAgICAgdGhpcy5zdWJzY3JpYmVDdXN0b21GaWx0ZXIoKTtcbiAgICAgICAgICAgIHRoaXMuc3Vic2NyaWJlTWVudUFjdGlvbigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0IGdyaWRBcGkoKTogR3JpZEFwaSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9ncmlkQXBpO1xuICAgIH1cblxuICAgIHB1YmxpYyByZWFkb25seSBzdGFydExvYWRpbmckID0gbmV3IEJlaGF2aW9yU3ViamVjdCh0cnVlKTtcbiAgICBjb3VudDogbnVtYmVyO1xuICAgIHBhcmFtczoge1xuICAgICAgICBzZWFyY2g/OiBzdHJpbmc7XG4gICAgICAgIHBhZ2U/OiBudW1iZXI7XG4gICAgICAgIGZpbHRlcj86IElHcmlkUGFyYW1zRmlsdGVyO1xuICAgICAgICBmaWx0ZXJpbmc/OiBJR3JpZERyRmlsdGVyRXZlbnQ7XG4gICAgICAgIG9yZGVyaW5nPzogc3RyaW5nO1xuICAgIH07XG4gICAgQFZpZXdDaGlsZChEckdyaWRQYWdpbmF0aW9uQ29tcG9uZW50KSBwYWdpbmF0aW9uOiBEckdyaWRQYWdpbmF0aW9uQ29tcG9uZW50O1xuICAgIHJlYWRvbmx5IHJvdXRlcjogUm91dGVyO1xuXG4gICAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKEBJbmplY3QoSW5qZWN0b3IpIGluamVjdG9yKSB7XG4gICAgICAgIHRoaXMucm91dGVyID0gaW5qZWN0b3IuZ2V0KFJvdXRlcik7XG4gICAgfVxuXG4gICAgb25DaGFuZ2VQYXJhbXMoKTogdm9pZCB7fVxuXG4gICAgb25BZnRlclVwZGF0ZVRhYmxlUGFyYW1zKCk6IHZvaWQge31cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBjb25zdCBzZWFyY2ggPSB0aGlzLnJvdXRlci5yb3V0ZXJTdGF0ZT8uc25hcHNob3Q/LnJvb3Q/LnF1ZXJ5UGFyYW1zPy5bJ3NlYXJjaCddO1xuICAgICAgICBpZiAoc2VhcmNoKSB7XG4gICAgICAgICAgICB0aGlzLnBhcmFtcy5zZWFyY2ggPSBzZWFyY2g7XG4gICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbXSwgeyBxdWVyeVBhcmFtczogeyBzZWFyY2g6IG51bGwgfSwgcXVlcnlQYXJhbXNIYW5kbGluZzogJ21lcmdlJyB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldERhdGE8VD4oZmV0Y2gkLCBub0xvYWQ/OiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuc3RhcnRMb2FkaW5nJC5uZXh0KHRydWUpO1xuICAgICAgICByZXR1cm4gZmV0Y2gkPy5waXBlKFxuICAgICAgICAgICAgdGFwKCgpID0+IHRoaXMuc3RhcnRMb2FkaW5nJC5uZXh0KGZhbHNlKSksXG4gICAgICAgICAgICB0YXAoKHJlczogSUdyaWREYXRhV2l0aFBhZ2luYXRpb248VD4pID0+ICh0aGlzLmNvdW50ID0gcmVzPy5jb3VudCkpLFxuICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMucGFnaW5hdGlvbikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnBhZ2luYXRpb24uc2V0Q291bnQgPSAwO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnBhZ2luYXRpb24uc2V0UGFnZSA9IDE7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucGFnaW5hdGlvbi51cGRhdGVQYWdpbmF0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgIGRlbGV0ZSB0aGlzLnBhcmFtcy5wYWdlO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXJ0TG9hZGluZyQubmV4dChmYWxzZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIG9uU2VhcmNoKCRldmVudDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnBhZ2luYXRpb24pIHtcbiAgICAgICAgICAgIHRoaXMucGFnaW5hdGlvbi5wYWdlID0gMTtcbiAgICAgICAgICAgIHRoaXMucGFnaW5hdGlvbi51cGRhdGVQYWdpbmF0aW9uKCk7XG4gICAgICAgIH1cbiAgICAgICAgZGVsZXRlIHRoaXMucGFyYW1zLnBhZ2U7XG4gICAgICAgIGlmICgkZXZlbnQgJiYgdHlwZW9mICRldmVudCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIHRoaXMucGFyYW1zLnNlYXJjaCA9ICRldmVudDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGRlbGV0ZSB0aGlzLnBhcmFtcy5zZWFyY2g7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5vbkNoYW5nZVBhcmFtcygpO1xuICAgIH1cblxuICAgIHBhZ2VDaGFuZ2UocGFnZTogbnVtYmVyKSB7XG4gICAgICAgIGlmIChwYWdlID49IDEpIHtcbiAgICAgICAgICAgIHRoaXMucGFyYW1zLnBhZ2UgPSBwYWdlO1xuICAgICAgICAgICAgdGhpcy5vbkNoYW5nZVBhcmFtcygpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZGVsZXRlIHRoaXMucGFyYW1zLnBhZ2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkZpbHRlcigkZXZlbnQ6IElHcmlkUGFyYW1zRmlsdGVyKSB7XG4gICAgICAgIGlmICgkZXZlbnQgJiYgIV9pc0VxdWFsKHRoaXMucGFyYW1zLmZpbHRlciwgJGV2ZW50KSkge1xuICAgICAgICAgICAgdGhpcy5wYXJhbXMuZmlsdGVyID0gJGV2ZW50O1xuICAgICAgICAgICAgdGhpcy5vbkNoYW5nZVBhcmFtcygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc3Vic2NyaWJlT25Tb3J0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmdyaWRBcGkuZHJFdmVudHMub24oR3JpZERyRXZlbnRUeXBlLlVQREFURV9TT1JUKS5zdWJzY3JpYmUoKHNvcnQ6IElHcmlkRHJTb3J0RXZlbnQpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLnBhcmFtcykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGZpZWxkID0gc29ydC5oZWFkZXIuY29sdW1uLmdldENvbERlZigpLmZpZWxkO1xuICAgICAgICAgICAgICAgIHRoaXMucGFyYW1zLm9yZGVyaW5nID0gZ2V0Q29sdW1uU29ydGluZ0J5U29ydFR5cGUoc29ydC5zb3J0LCBmaWVsZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLm9uQ2hhbmdlUGFyYW1zKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHN1YnNjcmliZUN1c3RvbUZpbHRlcigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZ3JpZEFwaS5kckV2ZW50cy5vbihHcmlkRHJFdmVudFR5cGUuVVBEQVRFX0ZJTFRFUikuc3Vic2NyaWJlKChmaWx0ZXJNYXApID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLnBhcmFtcykge1xuICAgICAgICAgICAgICAgIHRoaXMucGFyYW1zLmZpbHRlcmluZyA9IGZpbHRlck1hcDtcbiAgICAgICAgICAgICAgICB0aGlzLm9uQ2hhbmdlUGFyYW1zKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHN1YnNjcmliZU9uVXBkYXRlVGFibGVQYXJhbXMoKSB7XG4gICAgICAgIHRoaXMuX2dyaWRBcGkuZHJFdmVudHMub24oR3JpZERyRXZlbnRUeXBlLlVQREFURV9QQVJBTVMpLnN1YnNjcmliZSgocGFyYW1zOiBJR3JpZERyVXBkYXRlUGFyYW1zRXZlbnQpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLnBhcmFtcykge1xuICAgICAgICAgICAgICAgIHRoaXMucGFyYW1zLmZpbHRlcmluZyA9IHBhcmFtcz8uZmlsdGVyaW5nO1xuICAgICAgICAgICAgICAgIHRoaXMucGFyYW1zLm9yZGVyaW5nID0gcGFyYW1zPy5vcmRlcmluZztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcGFyYW1zPy5maWx0ZXJpbmc/LmZvckVhY2goKGZpbHRlclRleHQsIGNvbHVtbk5hbWUpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmdyaWRBcGkuZHJFdmVudHMuZmlsdGVyc01hcC5zZXQoY29sdW1uTmFtZSwgZmlsdGVyVGV4dCk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgdGhpcy5vbkFmdGVyVXBkYXRlVGFibGVQYXJhbXMoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgc3Vic2NyaWJlTWVudUFjdGlvbigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZ3JpZEFwaS5kckV2ZW50c1xuICAgICAgICAgICAgLm9uKEdyaWREckV2ZW50VHlwZS5NRU5VX0FDVElPTilcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGl0ZW06IElHcmlkRHJNZW51QWN0aW9uRXZlbnQpID0+IHRoaXMub25NZW51QWN0aW9uKGl0ZW0pKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25NZW51QWN0aW9uPyhpdGVtOiBJR3JpZERyTWVudUFjdGlvbkV2ZW50KTogdm9pZDtcbn1cbiJdfQ==
@@ -0,0 +1,53 @@
1
+ import { GridSortDirections } from '../models/interfaces';
2
+ export const getColumnSortingBySortType = (sort, columnName) => {
3
+ if (sort) {
4
+ return sort === GridSortDirections.ASC ? `-${columnName}` : columnName;
5
+ }
6
+ else {
7
+ return 'null';
8
+ }
9
+ };
10
+ export const getSortTypeByColumnSorting = (columnSorting, columnName) => {
11
+ switch (columnSorting) {
12
+ case `${columnName}`:
13
+ return GridSortDirections.DESC;
14
+ case `-${columnName}`:
15
+ return GridSortDirections.ASC;
16
+ default:
17
+ return null;
18
+ }
19
+ };
20
+ export const gridSumAggregation = (acc, value) => acc + value;
21
+ export const gridSortNumber = (valueA, valueB) => valueA - valueB;
22
+ export const gridSortArrayByLength = (valueA, valueB) => valueA.length - valueB.length;
23
+ // @ts-ignore
24
+ export const gridSortDate = (valueA, valueB) => new Date(valueA) - new Date(valueB);
25
+ export const gridSortWithSystem = (key) => (a, b, an, bn) => an.data.system + `${an.data[key]}` > bn.data.system + `${bn.data[key]}`
26
+ ? 1
27
+ : bn.data.system + `${bn.data[key]}` > an.data.system + `${an.data[key]}`
28
+ ? -1
29
+ : 0;
30
+ export const gridSortWithFormatter = (key, formatter, useObject) => (a, b, an, bn) => {
31
+ const firstVal = useObject ? formatter(an.data) : formatter(an.data[key]);
32
+ const secondVal = useObject ? formatter(bn.data) : formatter(bn.data[key]);
33
+ return firstVal > secondVal ? 1 : secondVal > firstVal ? -1 : 0;
34
+ };
35
+ export const gridSortWithSystemAndFormatter = (key, formatter, useObject) => (a, b, an, bn) => {
36
+ const firstVal = useObject ? formatter(an.data) : formatter(an.data[key]);
37
+ const secondVal = useObject ? formatter(bn.data) : formatter(bn.data[key]);
38
+ return an.data.system + firstVal > bn.data.system + secondVal
39
+ ? 1
40
+ : bn.data.system + secondVal > an.data.system + firstVal
41
+ ? -1
42
+ : 0;
43
+ };
44
+ export const gridSortArrayWithSystem = (key) => (a, b, an, bn) => {
45
+ const firstVal = an.data[key] ? an.data[key].join(', ') : '';
46
+ const secondVal = bn.data[key] ? bn.data[key].join(', ') : '';
47
+ return an.data.system + firstVal > bn.data.system + secondVal
48
+ ? 1
49
+ : bn.data.system + secondVal > an.data.system + firstVal
50
+ ? -1
51
+ : 0;
52
+ };
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGFyYWlsc3NoYXJlZC9zcmMvbGliL2RyLWdyaWQvc2VydmljZXMvZ3JpZC11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLGtCQUFrQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFN0UsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQUcsQ0FBQyxJQUE4QixFQUFFLFVBQWtCLEVBQVUsRUFBRTtJQUNyRyxJQUFJLElBQUksRUFBRTtRQUNOLE9BQU8sSUFBSSxLQUFLLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDO0tBQzFFO1NBQU07UUFDSCxPQUFPLE1BQU0sQ0FBQztLQUNqQjtBQUNMLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFHLENBQUMsYUFBcUIsRUFBRSxVQUFrQixFQUE0QixFQUFFO0lBQzlHLFFBQVEsYUFBYSxFQUFFO1FBQ25CLEtBQUssR0FBRyxVQUFVLEVBQUU7WUFDaEIsT0FBTyxrQkFBa0IsQ0FBQyxJQUFJLENBQUM7UUFDbkMsS0FBSyxJQUFJLFVBQVUsRUFBRTtZQUNqQixPQUFPLGtCQUFrQixDQUFDLEdBQUcsQ0FBQztRQUNsQztZQUNJLE9BQU8sSUFBSSxDQUFDO0tBQ25CO0FBQ0wsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxHQUFXLEVBQUUsS0FBYSxFQUFVLEVBQUUsQ0FBQyxHQUFHLEdBQUcsS0FBSyxDQUFDO0FBRXRGLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxDQUFDLE1BQWMsRUFBRSxNQUFjLEVBQVUsRUFBRSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7QUFFMUYsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsQ0FBQyxNQUFhLEVBQUUsTUFBYSxFQUFVLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7QUFFN0csYUFBYTtBQUNiLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxDQUFDLE1BQXVCLEVBQUUsTUFBdUIsRUFBVSxFQUFFLENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7QUFFOUgsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FDeEQsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFO0lBQ25FLENBQUMsQ0FBQyxDQUFDO0lBQ0gsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRTtRQUN2RSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUVkLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLENBQUMsR0FBRyxFQUFFLFNBQVMsRUFBRSxTQUFVLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUU7SUFDbEYsTUFBTSxRQUFRLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzFFLE1BQU0sU0FBUyxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUMzRSxPQUFPLFFBQVEsR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNwRSxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSw4QkFBOEIsR0FBRyxDQUFDLEdBQUcsRUFBRSxTQUFTLEVBQUUsU0FBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFO0lBQzNGLE1BQU0sUUFBUSxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUMxRSxNQUFNLFNBQVMsR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFFM0UsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxRQUFRLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsU0FBUztRQUN6RCxDQUFDLENBQUMsQ0FBQztRQUNILENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxTQUFTLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsUUFBUTtZQUN0RCxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ0osQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNkLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFO0lBQzdELE1BQU0sUUFBUSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDN0QsTUFBTSxTQUFTLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUU5RCxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLFFBQVEsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxTQUFTO1FBQ3pELENBQUMsQ0FBQyxDQUFDO1FBQ0gsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLFNBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxRQUFRO1lBQ3RELENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDSixDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2QsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgR3JpZFNvcnREaXJlY3Rpb24sIEdyaWRTb3J0RGlyZWN0aW9ucyB9IGZyb20gJy4uL21vZGVscy9pbnRlcmZhY2VzJztcblxuZXhwb3J0IGNvbnN0IGdldENvbHVtblNvcnRpbmdCeVNvcnRUeXBlID0gKHNvcnQ6IEdyaWRTb3J0RGlyZWN0aW9uIHwgbnVsbCwgY29sdW1uTmFtZTogc3RyaW5nKTogc3RyaW5nID0+IHtcbiAgICBpZiAoc29ydCkge1xuICAgICAgICByZXR1cm4gc29ydCA9PT0gR3JpZFNvcnREaXJlY3Rpb25zLkFTQyA/IGAtJHtjb2x1bW5OYW1lfWAgOiBjb2x1bW5OYW1lO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiAnbnVsbCc7XG4gICAgfVxufTtcblxuZXhwb3J0IGNvbnN0IGdldFNvcnRUeXBlQnlDb2x1bW5Tb3J0aW5nID0gKGNvbHVtblNvcnRpbmc6IHN0cmluZywgY29sdW1uTmFtZTogc3RyaW5nKTogR3JpZFNvcnREaXJlY3Rpb24gfCBudWxsID0+IHtcbiAgICBzd2l0Y2ggKGNvbHVtblNvcnRpbmcpIHtcbiAgICAgICAgY2FzZSBgJHtjb2x1bW5OYW1lfWA6XG4gICAgICAgICAgICByZXR1cm4gR3JpZFNvcnREaXJlY3Rpb25zLkRFU0M7XG4gICAgICAgIGNhc2UgYC0ke2NvbHVtbk5hbWV9YDpcbiAgICAgICAgICAgIHJldHVybiBHcmlkU29ydERpcmVjdGlvbnMuQVNDO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxufTtcblxuZXhwb3J0IGNvbnN0IGdyaWRTdW1BZ2dyZWdhdGlvbiA9IChhY2M6IG51bWJlciwgdmFsdWU6IG51bWJlcik6IG51bWJlciA9PiBhY2MgKyB2YWx1ZTtcblxuZXhwb3J0IGNvbnN0IGdyaWRTb3J0TnVtYmVyID0gKHZhbHVlQTogbnVtYmVyLCB2YWx1ZUI6IG51bWJlcik6IG51bWJlciA9PiB2YWx1ZUEgLSB2YWx1ZUI7XG5cbmV4cG9ydCBjb25zdCBncmlkU29ydEFycmF5QnlMZW5ndGggPSAodmFsdWVBOiBhbnlbXSwgdmFsdWVCOiBhbnlbXSk6IG51bWJlciA9PiB2YWx1ZUEubGVuZ3RoIC0gdmFsdWVCLmxlbmd0aDtcblxuLy8gQHRzLWlnbm9yZVxuZXhwb3J0IGNvbnN0IGdyaWRTb3J0RGF0ZSA9ICh2YWx1ZUE6IHN0cmluZyB8IG51bWJlciwgdmFsdWVCOiBzdHJpbmcgfCBudW1iZXIpOiBudW1iZXIgPT4gbmV3IERhdGUodmFsdWVBKSAtIG5ldyBEYXRlKHZhbHVlQik7XG5cbmV4cG9ydCBjb25zdCBncmlkU29ydFdpdGhTeXN0ZW0gPSAoa2V5KSA9PiAoYSwgYiwgYW4sIGJuKSA9PlxuICAgIGFuLmRhdGEuc3lzdGVtICsgYCR7YW4uZGF0YVtrZXldfWAgPiBibi5kYXRhLnN5c3RlbSArIGAke2JuLmRhdGFba2V5XX1gXG4gICAgICAgID8gMVxuICAgICAgICA6IGJuLmRhdGEuc3lzdGVtICsgYCR7Ym4uZGF0YVtrZXldfWAgPiBhbi5kYXRhLnN5c3RlbSArIGAke2FuLmRhdGFba2V5XX1gXG4gICAgICAgICAgPyAtMVxuICAgICAgICAgIDogMDtcblxuZXhwb3J0IGNvbnN0IGdyaWRTb3J0V2l0aEZvcm1hdHRlciA9IChrZXksIGZvcm1hdHRlciwgdXNlT2JqZWN0PykgPT4gKGEsIGIsIGFuLCBibikgPT4ge1xuICAgIGNvbnN0IGZpcnN0VmFsID0gdXNlT2JqZWN0ID8gZm9ybWF0dGVyKGFuLmRhdGEpIDogZm9ybWF0dGVyKGFuLmRhdGFba2V5XSk7XG4gICAgY29uc3Qgc2Vjb25kVmFsID0gdXNlT2JqZWN0ID8gZm9ybWF0dGVyKGJuLmRhdGEpIDogZm9ybWF0dGVyKGJuLmRhdGFba2V5XSk7XG4gICAgcmV0dXJuIGZpcnN0VmFsID4gc2Vjb25kVmFsID8gMSA6IHNlY29uZFZhbCA+IGZpcnN0VmFsID8gLTEgOiAwO1xufTtcblxuZXhwb3J0IGNvbnN0IGdyaWRTb3J0V2l0aFN5c3RlbUFuZEZvcm1hdHRlciA9IChrZXksIGZvcm1hdHRlciwgdXNlT2JqZWN0PykgPT4gKGEsIGIsIGFuLCBibikgPT4ge1xuICAgIGNvbnN0IGZpcnN0VmFsID0gdXNlT2JqZWN0ID8gZm9ybWF0dGVyKGFuLmRhdGEpIDogZm9ybWF0dGVyKGFuLmRhdGFba2V5XSk7XG4gICAgY29uc3Qgc2Vjb25kVmFsID0gdXNlT2JqZWN0ID8gZm9ybWF0dGVyKGJuLmRhdGEpIDogZm9ybWF0dGVyKGJuLmRhdGFba2V5XSk7XG5cbiAgICByZXR1cm4gYW4uZGF0YS5zeXN0ZW0gKyBmaXJzdFZhbCA+IGJuLmRhdGEuc3lzdGVtICsgc2Vjb25kVmFsXG4gICAgICAgID8gMVxuICAgICAgICA6IGJuLmRhdGEuc3lzdGVtICsgc2Vjb25kVmFsID4gYW4uZGF0YS5zeXN0ZW0gKyBmaXJzdFZhbFxuICAgICAgICAgID8gLTFcbiAgICAgICAgICA6IDA7XG59O1xuXG5leHBvcnQgY29uc3QgZ3JpZFNvcnRBcnJheVdpdGhTeXN0ZW0gPSAoa2V5KSA9PiAoYSwgYiwgYW4sIGJuKSA9PiB7XG4gICAgY29uc3QgZmlyc3RWYWwgPSBhbi5kYXRhW2tleV0gPyBhbi5kYXRhW2tleV0uam9pbignLCAnKSA6ICcnO1xuICAgIGNvbnN0IHNlY29uZFZhbCA9IGJuLmRhdGFba2V5XSA/IGJuLmRhdGFba2V5XS5qb2luKCcsICcpIDogJyc7XG5cbiAgICByZXR1cm4gYW4uZGF0YS5zeXN0ZW0gKyBmaXJzdFZhbCA+IGJuLmRhdGEuc3lzdGVtICsgc2Vjb25kVmFsXG4gICAgICAgID8gMVxuICAgICAgICA6IGJuLmRhdGEuc3lzdGVtICsgc2Vjb25kVmFsID4gYW4uZGF0YS5zeXN0ZW0gKyBmaXJzdFZhbFxuICAgICAgICAgID8gLTFcbiAgICAgICAgICA6IDA7XG59O1xuIl19