@den4ik92/ng2-smart-table 18.2.13 → 19.0.4

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 (107) hide show
  1. package/README.md +167 -0
  2. package/fesm2022/den4ik92-ng2-smart-table.mjs +1502 -1581
  3. package/fesm2022/den4ik92-ng2-smart-table.mjs.map +1 -1
  4. package/lib/components/cell/cell-edit-mode/custom-edit.component.d.ts +3 -5
  5. package/lib/components/cell/cell-edit-mode/default-edit.component.d.ts +3 -3
  6. package/lib/components/cell/cell-edit-mode/edit-cell-default.d.ts +2 -3
  7. package/lib/components/cell/cell-edit-mode/edit-cell.component.d.ts +4 -5
  8. package/lib/components/cell/cell-editors/checkbox-editor.component.d.ts +2 -2
  9. package/lib/components/cell/cell-editors/default-editor.d.ts +8 -8
  10. package/lib/components/cell/cell-editors/input-editor.component.d.ts +2 -2
  11. package/lib/components/cell/cell-editors/select-editor.component.d.ts +2 -2
  12. package/lib/components/cell/cell-editors/textarea-editor.component.d.ts +2 -2
  13. package/lib/components/cell/cell-view-mode/custom-view.component.d.ts +1 -1
  14. package/lib/components/cell/cell-view-mode/view-cell.component.d.ts +2 -2
  15. package/lib/components/cell/cell.component.d.ts +8 -8
  16. package/lib/components/filter/custom-filter.component.d.ts +3 -5
  17. package/lib/components/filter/default-filter.component.d.ts +1 -1
  18. package/lib/components/filter/filter-default.d.ts +2 -3
  19. package/lib/components/filter/filter-types/checkbox-filter.component.d.ts +4 -4
  20. package/lib/components/filter/filter-types/default-filter.d.ts +4 -4
  21. package/lib/components/filter/filter-types/input-filter.component.d.ts +4 -4
  22. package/lib/components/filter/filter-types/select-filter.component.d.ts +1 -1
  23. package/lib/components/filter/filter.component.d.ts +2 -2
  24. package/lib/components/pager/pager.component.d.ts +5 -5
  25. package/lib/components/tbody/cells/create-cancel.component.d.ts +4 -4
  26. package/lib/components/tbody/cells/custom.component.d.ts +2 -3
  27. package/lib/components/tbody/cells/edit-delete.component.d.ts +7 -7
  28. package/lib/components/tbody/tbody.component.d.ts +19 -19
  29. package/lib/components/thead/cells/actions-title.component.d.ts +3 -4
  30. package/lib/components/thead/cells/actions.component.d.ts +4 -4
  31. package/lib/components/thead/cells/add-button.component.d.ts +5 -6
  32. package/lib/components/thead/cells/checkbox-select-all.component.d.ts +3 -3
  33. package/lib/components/thead/cells/column-title.component.d.ts +4 -5
  34. package/lib/components/thead/cells/title/title.component.d.ts +8 -8
  35. package/lib/components/thead/rows/thead-filters-row.component.d.ts +4 -4
  36. package/lib/components/thead/rows/thead-form-row.component.d.ts +4 -4
  37. package/lib/components/thead/rows/thead-titles-row.component.d.ts +6 -6
  38. package/lib/components/thead/thead.component.d.ts +7 -7
  39. package/lib/lib/grid.d.ts +20 -11
  40. package/lib/lib/helpers.d.ts +4 -1
  41. package/lib/lib/interfaces/smart-table.models.d.ts +16 -12
  42. package/lib/ng2-smart-table.component.d.ts +20 -21
  43. package/package.json +6 -7
  44. package/public-api.d.ts +0 -1
  45. package/esm2022/den4ik92-ng2-smart-table.mjs +0 -5
  46. package/esm2022/lib/components/cell/cell-edit-mode/custom-edit.component.mjs +0 -44
  47. package/esm2022/lib/components/cell/cell-edit-mode/default-edit.component.mjs +0 -26
  48. package/esm2022/lib/components/cell/cell-edit-mode/edit-cell-default.mjs +0 -35
  49. package/esm2022/lib/components/cell/cell-edit-mode/edit-cell.component.mjs +0 -76
  50. package/esm2022/lib/components/cell/cell-editors/checkbox-editor.component.mjs +0 -40
  51. package/esm2022/lib/components/cell/cell-editors/default-editor.mjs +0 -30
  52. package/esm2022/lib/components/cell/cell-editors/input-editor.component.mjs +0 -37
  53. package/esm2022/lib/components/cell/cell-editors/select-editor.component.mjs +0 -52
  54. package/esm2022/lib/components/cell/cell-editors/textarea-editor.component.mjs +0 -39
  55. package/esm2022/lib/components/cell/cell-view-mode/custom-view.component.mjs +0 -15
  56. package/esm2022/lib/components/cell/cell-view-mode/view-cell.component.mjs +0 -47
  57. package/esm2022/lib/components/cell/cell-view-mode/view-cell.mjs +0 -2
  58. package/esm2022/lib/components/cell/cell.component.mjs +0 -73
  59. package/esm2022/lib/components/cell/cell.module.mjs +0 -75
  60. package/esm2022/lib/components/filter/custom-filter.component.mjs +0 -43
  61. package/esm2022/lib/components/filter/default-filter.component.mjs +0 -73
  62. package/esm2022/lib/components/filter/filter-default.mjs +0 -37
  63. package/esm2022/lib/components/filter/filter-types/checkbox-filter.component.mjs +0 -54
  64. package/esm2022/lib/components/filter/filter-types/default-filter.mjs +0 -36
  65. package/esm2022/lib/components/filter/filter-types/input-filter.component.mjs +0 -53
  66. package/esm2022/lib/components/filter/filter-types/select-filter.component.mjs +0 -58
  67. package/esm2022/lib/components/filter/filter.component.mjs +0 -86
  68. package/esm2022/lib/components/filter/filter.module.mjs +0 -62
  69. package/esm2022/lib/components/pager/pager.component.mjs +0 -241
  70. package/esm2022/lib/components/pager/pager.module.mjs +0 -28
  71. package/esm2022/lib/components/tbody/cells/create-cancel.component.mjs +0 -195
  72. package/esm2022/lib/components/tbody/cells/custom.component.mjs +0 -59
  73. package/esm2022/lib/components/tbody/cells/edit-delete.component.mjs +0 -241
  74. package/esm2022/lib/components/tbody/tbody.component.mjs +0 -95
  75. package/esm2022/lib/components/tbody/tbody.module.mjs +0 -47
  76. package/esm2022/lib/components/thead/cells/actions-title.component.mjs +0 -31
  77. package/esm2022/lib/components/thead/cells/actions.component.mjs +0 -42
  78. package/esm2022/lib/components/thead/cells/add-button.component.mjs +0 -57
  79. package/esm2022/lib/components/thead/cells/checkbox-select-all.component.mjs +0 -25
  80. package/esm2022/lib/components/thead/cells/column-title.component.mjs +0 -34
  81. package/esm2022/lib/components/thead/cells/title/title.component.mjs +0 -87
  82. package/esm2022/lib/components/thead/rows/thead-filters-row.component.mjs +0 -89
  83. package/esm2022/lib/components/thead/rows/thead-form-row.component.mjs +0 -108
  84. package/esm2022/lib/components/thead/rows/thead-titles-row.component.mjs +0 -87
  85. package/esm2022/lib/components/thead/thead.component.mjs +0 -42
  86. package/esm2022/lib/components/thead/thead.module.mjs +0 -75
  87. package/esm2022/lib/lib/data-set/cell.mjs +0 -43
  88. package/esm2022/lib/lib/data-set/column.mjs +0 -74
  89. package/esm2022/lib/lib/data-set/data-set.mjs +0 -96
  90. package/esm2022/lib/lib/data-set/row.mjs +0 -47
  91. package/esm2022/lib/lib/data-source/data-source.mjs +0 -92
  92. package/esm2022/lib/lib/data-source/local/local.data-source.mjs +0 -263
  93. package/esm2022/lib/lib/data-source/local/local.filter.mjs +0 -13
  94. package/esm2022/lib/lib/data-source/local/local.pager.mjs +0 -6
  95. package/esm2022/lib/lib/data-source/local/local.sorter.mjs +0 -19
  96. package/esm2022/lib/lib/grid.mjs +0 -218
  97. package/esm2022/lib/lib/helpers.mjs +0 -84
  98. package/esm2022/lib/lib/interfaces/smart-table.models.mjs +0 -16
  99. package/esm2022/lib/ng2-smart-table.component.mjs +0 -169
  100. package/esm2022/lib/ng2-smart-table.module.mjs +0 -51
  101. package/esm2022/public-api.mjs +0 -12
  102. package/lib/components/cell/cell.module.d.ts +0 -20
  103. package/lib/components/filter/filter.module.d.ts +0 -16
  104. package/lib/components/pager/pager.module.d.ts +0 -9
  105. package/lib/components/tbody/tbody.module.d.ts +0 -13
  106. package/lib/components/thead/thead.module.d.ts +0 -20
  107. package/lib/ng2-smart-table.module.d.ts +0 -14
@@ -1,74 +0,0 @@
1
- export class Column {
2
- constructor(id, settings, dataSet) {
3
- this.id = id;
4
- this.settings = settings;
5
- this.dataSet = dataSet;
6
- this.title = '';
7
- this.type = 'text';
8
- this.class = '';
9
- this.width = '';
10
- this.hide = false;
11
- this.isSortable = false;
12
- this.isEditable = true;
13
- this.isAddable = true;
14
- this.isFilterable = false;
15
- this.sortDirection = 'asc';
16
- this.defaultSortDirection = false;
17
- this.editor = false;
18
- this.filter = false;
19
- this.process(this.settings);
20
- }
21
- getCompareFunction() {
22
- return this.compareFunction;
23
- }
24
- getValuePrepareFunction() {
25
- return this.valuePrepareFunction;
26
- }
27
- getFilterFunction() {
28
- return this.filterFunction;
29
- }
30
- getConfig() {
31
- if (this.editor && (this.editor.type === 'checkbox' || this.editor.type === 'custom' || this.editor.type === 'list')) {
32
- return this.editor?.config;
33
- }
34
- return false;
35
- }
36
- getFilterType() {
37
- return this.filter && this.filter.type;
38
- }
39
- getFilterConfig() {
40
- if (this.filter && (this.filter.type === 'checkbox' || this.filter.type === 'custom' || this.filter.type === 'list')) {
41
- return this.filter?.config;
42
- }
43
- return false;
44
- }
45
- process(settings) {
46
- this.title = settings.title;
47
- this.class = settings.class || '';
48
- this.width = settings.width || '';
49
- this.hide = !!settings.hide;
50
- this.type = settings.type;
51
- if (settings?.editor) {
52
- this.editor = settings.editor;
53
- }
54
- if (settings?.filter) {
55
- this.filter = settings.filter;
56
- }
57
- if (settings.type === 'custom' && settings.renderComponent) {
58
- this.renderComponent = settings.renderComponent;
59
- }
60
- this.isFilterable = typeof settings.filter === 'undefined' ? true : !!settings['filter'];
61
- this.defaultSortDirection = settings?.sortDirection || false;
62
- this.isSortable = typeof settings.sort === 'undefined' ? true : settings.sort;
63
- this.isEditable = typeof settings.editable === 'undefined' ? true : settings.editable;
64
- this.isAddable = typeof settings.addable === 'undefined' ? true : settings.addable;
65
- this.sortDirection = this.prepareSortDirection();
66
- this.compareFunction = settings.compareFunction;
67
- this.valuePrepareFunction = settings.valuePrepareFunction;
68
- this.filterFunction = settings.filterFunction;
69
- }
70
- prepareSortDirection() {
71
- return this.defaultSortDirection === 'desc' ? 'desc' : 'asc';
72
- }
73
- }
74
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmcyLXNtYXJ0LXRhYmxlL3NyYy9saWIvbGliL2RhdGEtc2V0L2NvbHVtbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxNQUFNLE9BQU8sTUFBTTtJQW1CakIsWUFBbUIsRUFBVSxFQUFVLFFBQWtDLEVBQVksT0FBZ0I7UUFBbEYsT0FBRSxHQUFGLEVBQUUsQ0FBUTtRQUFVLGFBQVEsR0FBUixRQUFRLENBQTBCO1FBQVksWUFBTyxHQUFQLE9BQU8sQ0FBUztRQWxCckcsVUFBSyxHQUFXLEVBQUUsQ0FBQztRQUNuQixTQUFJLEdBQWtDLE1BQU0sQ0FBQztRQUM3QyxVQUFLLEdBQVcsRUFBRSxDQUFDO1FBQ25CLFVBQUssR0FBVyxFQUFFLENBQUM7UUFDbkIsU0FBSSxHQUFZLEtBQUssQ0FBQztRQUN0QixlQUFVLEdBQVksS0FBSyxDQUFDO1FBQzVCLGVBQVUsR0FBWSxJQUFJLENBQUM7UUFDM0IsY0FBUyxHQUFZLElBQUksQ0FBQztRQUMxQixpQkFBWSxHQUFZLEtBQUssQ0FBQztRQUM5QixrQkFBYSxHQUE0QixLQUFLLENBQUM7UUFDL0MseUJBQW9CLEdBQW9DLEtBQUssQ0FBQztRQUM5RCxXQUFNLEdBQXNDLEtBQUssQ0FBQztRQUNsRCxXQUFNLEdBQXNDLEtBQUssQ0FBQztRQU9oRCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUM5QixDQUFDO0lBRUQsdUJBQXVCO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDO0lBQ25DLENBQUM7SUFFRCxpQkFBaUI7UUFDZixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUM7SUFDN0IsQ0FBQztJQUVELFNBQVM7UUFDUCxJQUFJLElBQUksQ0FBQyxN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Q0FBQyxvQkFBb0IsQ0FBQztRQUMxRCxJQUFJLENBQUMsY0FBYyxHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUM7SUFDaEQsQ0FBQztJQUVELG9CQUFvQjtRQUNsQixPQUFPLElBQUksQ0FBQyxvQkFBb0IsS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQy9ELENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNtYXJ0VGFibGVFZGl0b3JBbmRGaWx0ZXIgfSBmcm9tICcuLi9pbnRlcmZhY2VzL3NtYXJ0LXRhYmxlLm1vZGVscyc7XG5pbXBvcnQgeyBTbWFydFRhYmxlQ29sdW1uU2V0dGluZ3MsIFNtYXJ0VGFibGVDb2x1bW5TZXR0aW5nc1R5cGVzLCBTbWFydFRhYmxlU29ydERpcmVjdGlvbiB9IGZyb20gJy4vLi4vaW50ZXJmYWNlcy9zbWFydC10YWJsZS5tb2RlbHMnO1xuaW1wb3J0IHsgRGF0YVNldCB9IGZyb20gJy4vZGF0YS1zZXQnO1xuXG5leHBvcnQgY2xhc3MgQ29sdW1uIHtcbiAgdGl0bGU6IHN0cmluZyA9ICcnO1xuICB0eXBlOiBTbWFydFRhYmxlQ29sdW1uU2V0dGluZ3NUeXBlcyA9ICd0ZXh0JztcbiAgY2xhc3M6IHN0cmluZyA9ICcnO1xuICB3aWR0aDogc3RyaW5nID0gJyc7XG4gIGhpZGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgaXNTb3J0YWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuICBpc0VkaXRhYmxlOiBib29sZWFuID0gdHJ1ZTtcbiAgaXNBZGRhYmxlOiBib29sZWFuID0gdHJ1ZTtcbiAgaXNGaWx0ZXJhYmxlOiBib29sZWFuID0gZmFsc2U7XG4gIHNvcnREaXJlY3Rpb246IFNtYXJ0VGFibGVTb3J0RGlyZWN0aW9uID0gJ2FzYyc7XG4gIGRlZmF1bHRTb3J0RGlyZWN0aW9uOiBTbWFydFRhYmxlU29ydERpcmVjdGlvbiB8IGZhbHNlID0gZmFsc2U7XG4gIGVkaXRvcjogU21hcnRUYWJsZUVkaXRvckFuZEZpbHRlciB8IGZhbHNlID0gZmFsc2U7XG4gIGZpbHRlcjogU21hcnRUYWJsZUVkaXRvckFuZEZpbHRlciB8IGZhbHNlID0gZmFsc2U7XG4gIHJlbmRlckNvbXBvbmVudDogYW55O1xuICBjb21wYXJlRnVuY3Rpb246IEZ1bmN0aW9uIHwgdW5kZWZpbmVkO1xuICB2YWx1ZVByZXBhcmVGdW5jdGlvbjogRnVuY3Rpb24gfCB1bmRlZmluZWQ7XG4gIGZpbHRlckZ1bmN0aW9uOiBGdW5jdGlvbiB8IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgaWQ6IHN0cmluZywgcHJpdmF0ZSBzZXR0aW5nczogU21hcnRUYWJsZUNvbHVtblNldHRpbmdzLCBwcm90ZWN0ZWQgZGF0YVNldDogRGF0YVNldCkge1xuICAgIHRoaXMucHJvY2Vzcyh0aGlzLnNldHRpbmdzKTtcbiAgfVxuXG4gIGdldENvbXBhcmVGdW5jdGlvbigpOiBGdW5jdGlvbiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuY29tcGFyZUZ1bmN0aW9uO1xuICB9XG5cbiAgZ2V0VmFsdWVQcmVwYXJlRnVuY3Rpb24oKTogRnVuY3Rpb24gfCB1bmRlZmluZWQgIHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZVByZXBhcmVGdW5jdGlvbjtcbiAgfVxuXG4gIGdldEZpbHRlckZ1bmN0aW9uKCk6IEZ1bmN0aW9uIHwgdW5kZWZpbmVkICB7XG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyRnVuY3Rpb247XG4gIH1cblxuICBnZXRDb25maWcoKTogYW55IHtcbiAgICBpZiAodGhpcy5lZGl0b3IgJiYgKHRoaXMuZWRpdG9yLnR5cGUgPT09ICdjaGVja2JveCcgfHwgdGhpcy5lZGl0b3IudHlwZSA9PT0gJ2N1c3RvbScgfHwgdGhpcy5lZGl0b3IudHlwZSA9PT0gJ2xpc3QnKSkge1xuICAgICAgcmV0dXJuIHRoaXMuZWRpdG9yPy5jb25maWdcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICBnZXRGaWx0ZXJUeXBlKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyICYmIHRoaXMuZmlsdGVyLnR5cGU7XG4gIH1cblxuICBnZXRGaWx0ZXJDb25maWcoKTogYW55IHtcbiAgICBpZiAodGhpcy5maWx0ZXIgJiYgKHRoaXMuZmlsdGVyLnR5cGUgPT09ICdjaGVja2JveCcgfHwgdGhpcy5maWx0ZXIudHlwZSA9PT0gJ2N1c3RvbScgfHwgdGhpcy5maWx0ZXIudHlwZSA9PT0gJ2xpc3QnKSkge1xuICAgICAgcmV0dXJuIHRoaXMuZmlsdGVyPy5jb25maWdcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHJvdGVjdGVkIHByb2Nlc3Moc2V0dGluZ3M6IFNtYXJ0VGFibGVDb2x1bW5TZXR0aW5ncykge1xuICAgIHRoaXMudGl0bGUgPSBzZXR0aW5ncy50aXRsZTtcbiAgICB0aGlzLmNsYXNzID0gc2V0dGluZ3MuY2xhc3MgfHwgJyc7XG4gICAgdGhpcy53aWR0aCA9IHNldHRpbmdzLndpZHRoIHx8ICcnO1xuICAgIHRoaXMuaGlkZSA9ICEhc2V0dGluZ3MuaGlkZTtcbiAgICB0aGlzLnR5cGUgPSBzZXR0aW5ncy50eXBlO1xuICAgIGlmIChzZXR0aW5ncz8uZWRpdG9yKSB7XG4gICAgICB0aGlzLmVkaXRvciA9IHNldHRpbmdzLmVkaXRvcjtcbiAgICB9XG4gICAgaWYgKHNldHRpbmdzPy5maWx0ZXIpIHtcbiAgICAgIHRoaXMuZmlsdGVyID0gc2V0dGluZ3MuZmlsdGVyO1xuICAgIH1cbiAgICBpZiAoc2V0dGluZ3MudHlwZSA9PT0gJ2N1c3RvbScgJiYgc2V0dGluZ3MucmVuZGVyQ29tcG9uZW50KSB7XG4gICAgICB0aGlzLnJlbmRlckNvbXBvbmVudCA9IHNldHRpbmdzLnJlbmRlckNvbXBvbmVudDtcbiAgICB9XG4gICAgdGhpcy5pc0ZpbHRlcmFibGUgPSB0eXBlb2Ygc2V0dGluZ3MuZmlsdGVyID09PSAndW5kZWZpbmVkJyA/IHRydWUgOiAhIXNldHRpbmdzWydmaWx0ZXInXTtcbiAgICB0aGlzLmRlZmF1bHRTb3J0RGlyZWN0aW9uID0gc2V0dGluZ3M/LnNvcnREaXJlY3Rpb24gfHwgZmFsc2U7XG4gICAgdGhpcy5pc1NvcnRhYmxlID0gdHlwZW9mIHNldHRpbmdzLnNvcnQgPT09ICd1bmRlZmluZWQnID8gdHJ1ZSA6IHNldHRpbmdzLnNvcnQ7XG4gICAgdGhpcy5pc0VkaXRhYmxlID0gdHlwZW9mIHNldHRpbmdzLmVkaXRhYmxlID09PSAndW5kZWZpbmVkJyA/IHRydWUgOiBzZXR0aW5ncy5lZGl0YWJsZTtcbiAgICB0aGlzLmlzQWRkYWJsZT10eXBlb2Ygc2V0dGluZ3MuYWRkYWJsZSA9PT0gJ3VuZGVmaW5lZCcgPyB0cnVlIDogc2V0dGluZ3MuYWRkYWJsZTtcbiAgICB0aGlzLnNvcnREaXJlY3Rpb24gPSB0aGlzLnByZXBhcmVTb3J0RGlyZWN0aW9uKCk7XG5cbiAgICB0aGlzLmNvbXBhcmVGdW5jdGlvbiA9IHNldHRpbmdzLmNvbXBhcmVGdW5jdGlvbjtcbiAgICB0aGlzLnZhbHVlUHJlcGFyZUZ1bmN0aW9uID0gc2V0dGluZ3MudmFsdWVQcmVwYXJlRnVuY3Rpb247XG4gICAgdGhpcy5maWx0ZXJGdW5jdGlvbiA9IHNldHRpbmdzLmZpbHRlckZ1bmN0aW9uO1xuICB9XG5cbiAgcHJlcGFyZVNvcnREaXJlY3Rpb24oKTogU21hcnRUYWJsZVNvcnREaXJlY3Rpb24ge1xuICAgIHJldHVybiB0aGlzLmRlZmF1bHRTb3J0RGlyZWN0aW9uID09PSAnZGVzYycgPyAnZGVzYycgOiAnYXNjJztcbiAgfVxufVxuIl19
@@ -1,96 +0,0 @@
1
- import { Row } from './row';
2
- import { Column } from './column';
3
- export class DataSet {
4
- constructor(data = [], columnSettings) {
5
- this.columnSettings = columnSettings;
6
- this.data = [];
7
- this.columns = [];
8
- this.rows = [];
9
- this.selectedRows = new Set();
10
- this.createColumns(columnSettings);
11
- this.setData(data);
12
- this.createNewRow();
13
- }
14
- setData(data) {
15
- this.data = data;
16
- this.createRows();
17
- }
18
- getColumns() {
19
- return this.columns;
20
- }
21
- getRows() {
22
- return this.rows;
23
- }
24
- getFirstRow() {
25
- return this.rows[0];
26
- }
27
- getLastRow() {
28
- return this.rows[this.rows.length - 1];
29
- }
30
- findRowByData(data) {
31
- return this.rows.find((row) => row.getData() === data);
32
- }
33
- setSelectAll(state) {
34
- this.rows.forEach((row) => {
35
- row.isSelected = state;
36
- this.storeSelectedRow(row);
37
- });
38
- }
39
- deselectAll() {
40
- this.rows.forEach((row) => {
41
- row.isSelected = false;
42
- });
43
- // we need to clear selectedRow field because no one row selected
44
- this.selectedRows.clear();
45
- }
46
- selectRow(row, state) {
47
- row.isSelected = state;
48
- this.storeSelectedRow(row);
49
- }
50
- multipleSelectRow(row) {
51
- row.isSelected = !row.isSelected;
52
- this.storeSelectedRow(row);
53
- return row;
54
- }
55
- getSelectedRowsData() {
56
- return [...this.selectedRows];
57
- }
58
- createNewRow() {
59
- this.newRow = new Row(-1, {}, this);
60
- this.newRow.isInEditing = true;
61
- }
62
- /**
63
- * Create columns by mapping from the settings
64
- * @param settings
65
- * @private
66
- */
67
- createColumns(settings) {
68
- settings.forEach((columnSettings) => {
69
- this.columns.push(new Column(columnSettings.key, columnSettings, this));
70
- });
71
- }
72
- /**
73
- * Create rows based on current data prepared in data source
74
- * @private
75
- */
76
- createRows() {
77
- this.rows = [];
78
- this.data.forEach((el, index) => {
79
- const row = new Row(index, el, this);
80
- row.isSelected = this.selectedRows.has(row.getData());
81
- this.rows.push(row);
82
- });
83
- }
84
- get isAllSelected() {
85
- return this.rows.every((row) => row.isSelected);
86
- }
87
- storeSelectedRow(row) {
88
- if (row.isSelected) {
89
- this.selectedRows.add(row.getData());
90
- }
91
- else {
92
- this.selectedRows.delete(row.getData());
93
- }
94
- }
95
- }
96
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1zZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZzItc21hcnQtdGFibGUvc3JjL2xpYi9saWIvZGF0YS1zZXQvZGF0YS1zZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUM1QixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBR2xDLE1BQU0sT0FBTyxPQUFPO0lBUWxCLFlBQVksT0FBYyxFQUFFLEVBQVksY0FBMEM7UUFBMUMsbUJBQWMsR0FBZCxjQUFjLENBQTRCO1FBTHhFLFNBQUksR0FBZSxFQUFFLENBQUM7UUFDdEIsWUFBTyxHQUFrQixFQUFFLENBQUM7UUFDNUIsU0FBSSxHQUFlLEVBQUUsQ0FBQztRQUN0QixpQkFBWSxHQUFHLElBQUksR0FBRyxFQUFPLENBQUM7UUFHdEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNuQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRW5CLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsT0FBTyxDQUFDLElBQWdCO1FBQ3RCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBRUQsVUFBVTtRQUNSLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBRUQsT0FBTztRQUNMLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztJQUNuQixDQUFDO0lBRUQsV0FBVztRQUNULE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN0QixDQUFDO0lBRUQsVUFBVTtRQUNSLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FB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QUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZDLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDMUMsQ0FBQztJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJvdyB9IGZyb20gJy4vcm93JztcbmltcG9ydCB7IENvbHVtbiB9IGZyb20gJy4vY29sdW1uJztcbmltcG9ydCB7IFNtYXJ0VGFibGVDb2x1bW5TZXR0aW5ncyB9IGZyb20gJy4uL2ludGVyZmFjZXMvc21hcnQtdGFibGUubW9kZWxzJztcblxuZXhwb3J0IGNsYXNzIERhdGFTZXQge1xuICBuZXdSb3chOiBSb3c7XG5cbiAgcHJvdGVjdGVkIGRhdGE6IEFycmF5PGFueT4gPSBbXTtcbiAgcHJvdGVjdGVkIGNvbHVtbnM6IEFycmF5PENvbHVtbj4gPSBbXTtcbiAgcHJvdGVjdGVkIHJvd3M6IEFycmF5PFJvdz4gPSBbXTtcbiAgcHJvdGVjdGVkIHNlbGVjdGVkUm93cyA9IG5ldyBTZXQ8Um93PigpO1xuXG4gIGNvbnN0cnVjdG9yKGRhdGE6IGFueVtdID0gW10sIHByb3RlY3RlZCBjb2x1bW5TZXR0aW5nczogU21hcnRUYWJsZUNvbHVtblNldHRpbmdzW10pIHtcbiAgICB0aGlzLmNyZWF0ZUNvbHVtbnMoY29sdW1uU2V0dGluZ3MpO1xuICAgIHRoaXMuc2V0RGF0YShkYXRhKTtcblxuICAgIHRoaXMuY3JlYXRlTmV3Um93KCk7XG4gIH1cblxuICBzZXREYXRhKGRhdGE6IEFycmF5PGFueT4pIHtcbiAgICB0aGlzLmRhdGEgPSBkYXRhO1xuICAgIHRoaXMuY3JlYXRlUm93cygpO1xuICB9XG5cbiAgZ2V0Q29sdW1ucygpOiBBcnJheTxDb2x1bW4+IHtcbiAgICByZXR1cm4gdGhpcy5jb2x1bW5zO1xuICB9XG5cbiAgZ2V0Um93cygpOiBBcnJheTxSb3c+IHtcbiAgICByZXR1cm4gdGhpcy5yb3dzO1xuICB9XG5cbiAgZ2V0Rmlyc3RSb3coKTogUm93IHtcbiAgICByZXR1cm4gdGhpcy5yb3dzWzBdO1xuICB9XG5cbiAgZ2V0TGFzdFJvdygpOiBSb3cge1xuICAgIHJldHVybiB0aGlzLnJvd3NbdGhpcy5yb3dzLmxlbmd0aCAtIDFdO1xuICB9XG5cbiAgZmluZFJvd0J5RGF0YShkYXRhOiBhbnkpOiBSb3cgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLnJvd3MuZmluZCgocm93OiBSb3cpID0+IHJvdy5nZXREYXRhKCkgPT09IGRhdGEpO1xuICB9XG5cbiAgc2V0U2VsZWN0QWxsKHN0YXRlOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5yb3dzLmZvckVhY2goKHJvdykgPT4ge1xuICAgICAgcm93LmlzU2VsZWN0ZWQgPSBzdGF0ZTtcbiAgICAgIHRoaXMuc3RvcmVTZWxlY3RlZFJvdyhyb3cpO1xuICAgIH0pO1xuICB9XG5cbiAgZGVzZWxlY3RBbGwoKSB7XG4gICAgdGhpcy5yb3dzLmZvckVhY2goKHJvdykgPT4ge1xuICAgICAgcm93LmlzU2VsZWN0ZWQgPSBmYWxzZTtcbiAgICB9KTtcbiAgICAvLyB3ZSBuZWVkIHRvIGNsZWFyIHNlbGVjdGVkUm93IGZpZWxkIGJlY2F1c2Ugbm8gb25lIHJvdyBzZWxlY3RlZFxuICAgIHRoaXMuc2VsZWN0ZWRSb3dzLmNsZWFyKCk7XG4gIH1cblxuICBzZWxlY3RSb3cocm93OiBSb3csIHN0YXRlOiBib29sZWFuKTogdm9pZCB7XG4gICAgcm93LmlzU2VsZWN0ZWQgPSBzdGF0ZTtcbiAgICB0aGlzLnN0b3JlU2VsZWN0ZWRSb3cocm93KTtcbiAgfVxuXG4gIG11bHRpcGxlU2VsZWN0Um93KHJvdzogUm93KTogUm93IHtcbiAgICByb3cuaXNTZWxlY3RlZCA9ICFyb3cuaXNTZWxlY3RlZDtcbiAgICB0aGlzLnN0b3JlU2VsZWN0ZWRSb3cocm93KTtcblxuICAgIHJldHVybiByb3c7XG4gIH1cblxuICBnZXRTZWxlY3RlZFJvd3NEYXRhKCk6IEFycmF5PGFueT4ge1xuICAgIHJldHVybiBbLi4udGhpcy5zZWxlY3RlZFJvd3NdXG4gIH1cblxuICBjcmVhdGVOZXdSb3coKSB7XG4gICAgdGhpcy5uZXdSb3cgPSBuZXcgUm93KC0xLCB7fSwgdGhpcyk7XG4gICAgdGhpcy5uZXdSb3cuaXNJbkVkaXRpbmcgPSB0cnVlO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBjb2x1bW5zIGJ5IG1hcHBpbmcgZnJvbSB0aGUgc2V0dGluZ3NcbiAgICogQHBhcmFtIHNldHRpbmdzXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBjcmVhdGVDb2x1bW5zKHNldHRpbmdzOiBTbWFydFRhYmxlQ29sdW1uU2V0dGluZ3NbXSkge1xuICAgIHNldHRpbmdzLmZvckVhY2goKGNvbHVtblNldHRpbmdzKSA9PiB7XG4gICAgICB0aGlzLmNvbHVtbnMucHVzaChuZXcgQ29sdW1uKGNvbHVtblNldHRpbmdzLmtleSBhcyBzdHJpbmcsIGNvbHVtblNldHRpbmdzLCB0aGlzKSk7XG4gICAgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgcm93cyBiYXNlZCBvbiBjdXJyZW50IGRhdGEgcHJlcGFyZWQgaW4gZGF0YSBzb3VyY2VcbiAgICogQHByaXZhdGVcbiAgICovXG4gIGNyZWF0ZVJvd3MoKSB7XG4gICAgdGhpcy5yb3dzID0gW107XG4gICAgdGhpcy5kYXRhLmZvckVhY2goKGVsLCBpbmRleCkgPT4ge1xuICAgICAgY29uc3Qgcm93ID0gbmV3IFJvdyhpbmRleCwgZWwsIHRoaXMpO1xuICAgICAgcm93LmlzU2VsZWN0ZWQgPSB0aGlzLnNlbGVjdGVkUm93cy5oYXMocm93LmdldERhdGEoKSk7XG4gICAgICB0aGlzLnJvd3MucHVzaChyb3cpO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGdldCBpc0FsbFNlbGVjdGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnJvd3MuZXZlcnkoKHJvdykgPT4gcm93LmlzU2VsZWN0ZWQpXG4gIH1cblxuICBwcml2YXRlIHN0b3JlU2VsZWN0ZWRSb3cocm93OiBSb3cpOiB2b2lkIHtcbiAgICBpZihyb3cuaXNTZWxlY3RlZCkge1xuICAgICAgdGhpcy5zZWxlY3RlZFJvd3MuYWRkKHJvdy5nZXREYXRhKCkpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNlbGVjdGVkUm93cy5kZWxldGUocm93LmdldERhdGEoKSk7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -1,47 +0,0 @@
1
- import { Cell } from './cell';
2
- export class Row {
3
- constructor(index, data, _dataSet) {
4
- this.index = index;
5
- this.data = data;
6
- this._dataSet = _dataSet;
7
- this.pending = false;
8
- this.isSelected = false;
9
- this.isInEditing = false;
10
- this.cells = [];
11
- this.process();
12
- }
13
- getCell(column) {
14
- return this.cells.find(el => el.getColumn() === column);
15
- }
16
- getCells() {
17
- return this.cells;
18
- }
19
- getData() {
20
- return this.data;
21
- }
22
- getIsSelected() {
23
- return this.isSelected;
24
- }
25
- getNewData() {
26
- const values = Object.assign({}, this.data);
27
- this.getCells().forEach((cell) => values[cell.getColumn().id] = cell.newValue);
28
- return values;
29
- }
30
- setData(data) {
31
- this.data = data;
32
- this.process();
33
- }
34
- process() {
35
- this.cells = [];
36
- this._dataSet.getColumns().forEach((column) => {
37
- const cell = this.createCell(column);
38
- this.cells.push(cell);
39
- });
40
- }
41
- createCell(column) {
42
- const defValue = column.settings.defaultValue ? column.settings.defaultValue : '';
43
- const value = typeof this.data[column.id] === 'undefined' ? defValue : this.data[column.id];
44
- return new Cell(value, this, column, this._dataSet);
45
- }
46
- }
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm93LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmcyLXNtYXJ0LXRhYmxlL3NyYy9saWIvbGliL2RhdGEtc2V0L3Jvdy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBSTlCLE1BQU0sT0FBTyxHQUFHO0lBUWQsWUFBbUIsS0FBYSxFQUFZLElBQVMsRUFBWSxRQUFpQjtRQUEvRCxVQUFLLEdBQUwsS0FBSyxDQUFRO1FBQVksU0FBSSxHQUFKLElBQUksQ0FBSztRQUFZLGFBQVEsR0FBUixRQUFRLENBQVM7UUFObEYsWUFBTyxHQUFZLEtBQUssQ0FBQztRQUN6QixlQUFVLEdBQVksS0FBSyxDQUFDO1FBQzVCLGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBQzdCLFVBQUssR0FBVyxFQUFFLENBQUM7UUFJakIsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ2pCLENBQUM7SUFFRCxPQUFPLENBQUMsTUFBYztRQUNwQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLFNBQVMsRUFBRSxLQUFLLE1BQU0sQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFRCxRQUFRO1FBQ04sT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3BCLENBQUM7SUFFRCxPQUFPO1FBQ0wsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ25CLENBQUM7SUFFRCxhQUFhO1FBQ1gsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxVQUFVO1FBQ1IsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQy9FLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxPQUFPLENBQVEsSUFBTztRQUNwQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUVELE9BQU87UUFDTCxJQUFJLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUNoQixJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQWMsRUFBRSxFQUFFO1lBQ3BELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDckMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDeEIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsVUFBVSxDQUFDLE1BQWM7UUFDdkIsTUFBTSxRQUFRLEdBQUksTUFBYyxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFFLE1BQWMsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDcEcsTUFBTSxLQUFLLEdBQUcsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsS0FBSyxXQUFXLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDNUYsT0FBTyxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDdEQsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2VsbCB9IGZyb20gJy4vY2VsbCc7XG5pbXBvcnQgeyBDb2x1bW4gfSBmcm9tICcuL2NvbHVtbic7XG5pbXBvcnQgeyBEYXRhU2V0IH0gZnJvbSAnLi9kYXRhLXNldCc7XG5cbmV4cG9ydCBjbGFzcyBSb3cge1xuXG4gIHBlbmRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcbiAgaXNTZWxlY3RlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBpc0luRWRpdGluZzogYm9vbGVhbiA9IGZhbHNlO1xuICBjZWxsczogQ2VsbFtdID0gW107XG5cblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgaW5kZXg6IG51bWJlciwgcHJvdGVjdGVkIGRhdGE6IGFueSwgcHJvdGVjdGVkIF9kYXRhU2V0OiBEYXRhU2V0KSB7XG4gICAgdGhpcy5wcm9jZXNzKCk7XG4gIH1cblxuICBnZXRDZWxsKGNvbHVtbjogQ29sdW1uKTogQ2VsbCB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuY2VsbHMuZmluZChlbCA9PiBlbC5nZXRDb2x1bW4oKSA9PT0gY29sdW1uKTtcbiAgfVxuXG4gIGdldENlbGxzKCk6IENlbGxbXSB7XG4gICAgcmV0dXJuIHRoaXMuY2VsbHM7XG4gIH1cblxuICBnZXREYXRhKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuZGF0YTtcbiAgfVxuXG4gIGdldElzU2VsZWN0ZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNTZWxlY3RlZDtcbiAgfVxuXG4gIGdldE5ld0RhdGEoKTogYW55IHtcbiAgICBjb25zdCB2YWx1ZXMgPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLmRhdGEpO1xuICAgIHRoaXMuZ2V0Q2VsbHMoKS5mb3JFYWNoKChjZWxsKSA9PiB2YWx1ZXNbY2VsbC5nZXRDb2x1bW4oKS5pZF0gPSBjZWxsLm5ld1ZhbHVlKTtcbiAgICByZXR1cm4gdmFsdWVzO1xuICB9XG5cbiAgc2V0RGF0YTxUPWFueT4oZGF0YTogVCk6IHZvaWQge1xuICAgIHRoaXMuZGF0YSA9IGRhdGE7XG4gICAgdGhpcy5wcm9jZXNzKCk7XG4gIH1cblxuICBwcm9jZXNzKCk6IHZvaWQge1xuICAgIHRoaXMuY2VsbHMgPSBbXTtcbiAgICB0aGlzLl9kYXRhU2V0LmdldENvbHVtbnMoKS5mb3JFYWNoKChjb2x1bW46IENvbHVtbikgPT4ge1xuICAgICAgY29uc3QgY2VsbCA9IHRoaXMuY3JlYXRlQ2VsbChjb2x1bW4pO1xuICAgICAgdGhpcy5jZWxscy5wdXNoKGNlbGwpO1xuICAgIH0pO1xuICB9XG5cbiAgY3JlYXRlQ2VsbChjb2x1bW46IENvbHVtbik6IENlbGwge1xuICAgIGNvbnN0IGRlZlZhbHVlID0gKGNvbHVtbiBhcyBhbnkpLnNldHRpbmdzLmRlZmF1bHRWYWx1ZSA/IChjb2x1bW4gYXMgYW55KS5zZXR0aW5ncy5kZWZhdWx0VmFsdWUgOiAnJztcbiAgICBjb25zdCB2YWx1ZSA9IHR5cGVvZiB0aGlzLmRhdGFbY29sdW1uLmlkXSA9PT0gJ3VuZGVmaW5lZCcgPyBkZWZWYWx1ZSA6IHRoaXMuZGF0YVtjb2x1bW4uaWRdO1xuICAgIHJldHVybiBuZXcgQ2VsbCh2YWx1ZSwgdGhpcywgY29sdW1uLCB0aGlzLl9kYXRhU2V0KTtcbiAgfVxufVxuIl19
@@ -1,92 +0,0 @@
1
- import { Subject } from 'rxjs';
2
- import { SmartTableOnChangedEventName } from '../interfaces/smart-table.models';
3
- export class DataSource {
4
- constructor() {
5
- this.onChangedSource = new Subject();
6
- this.onAddedSource = new Subject();
7
- this.onUpdatedSource = new Subject();
8
- this.onRemovedSource = new Subject();
9
- }
10
- refresh() {
11
- this.emitOnChanged(SmartTableOnChangedEventName.refresh);
12
- }
13
- loadEmit() {
14
- this.emitOnChanged(SmartTableOnChangedEventName.load);
15
- return Promise.resolve(true);
16
- }
17
- onChanged() {
18
- return this.onChangedSource.asObservable();
19
- }
20
- onAdded() {
21
- return this.onAddedSource.asObservable();
22
- }
23
- onUpdated() {
24
- return this.onUpdatedSource.asObservable();
25
- }
26
- onRemoved() {
27
- return this.onRemovedSource.asObservable();
28
- }
29
- prependEmit(element) {
30
- this.emitOnAdded(element);
31
- this.emitOnChanged(SmartTableOnChangedEventName.prepend);
32
- return Promise.resolve(true);
33
- }
34
- appendEmit(element) {
35
- this.emitOnAdded(element);
36
- this.emitOnChanged(SmartTableOnChangedEventName.append);
37
- return Promise.resolve(true);
38
- }
39
- addEmit(element) {
40
- this.emitOnAdded(element);
41
- this.emitOnChanged(SmartTableOnChangedEventName.add);
42
- return Promise.resolve(true);
43
- }
44
- removeEmit(element) {
45
- this.emitOnRemoved(element);
46
- this.emitOnChanged(SmartTableOnChangedEventName.remove);
47
- return Promise.resolve(true);
48
- }
49
- updateEmit(element) {
50
- this.emitOnUpdated(element);
51
- this.emitOnChanged(SmartTableOnChangedEventName.update);
52
- return Promise.resolve(true);
53
- }
54
- emptyEmit() {
55
- this.emitOnChanged(SmartTableOnChangedEventName.empty);
56
- return Promise.resolve(true);
57
- }
58
- setSortEmit() {
59
- this.emitOnChanged(SmartTableOnChangedEventName.sort);
60
- }
61
- setFilterEmit() {
62
- this.emitOnChanged(SmartTableOnChangedEventName.filter);
63
- }
64
- addFilterEmit() {
65
- this.emitOnChanged(SmartTableOnChangedEventName.filter);
66
- }
67
- setPagingEmit() {
68
- this.emitOnChanged(SmartTableOnChangedEventName.paging);
69
- }
70
- setPageEmit() {
71
- this.emitOnChanged(SmartTableOnChangedEventName.page);
72
- }
73
- emitOnRemoved(element) {
74
- this.onRemovedSource.next(element);
75
- }
76
- emitOnUpdated(element) {
77
- this.onUpdatedSource.next(element);
78
- }
79
- emitOnAdded(element) {
80
- this.onAddedSource.next(element);
81
- }
82
- emitOnChanged(action) {
83
- this.getElements().then((elements) => this.onChangedSource.next({
84
- action: action,
85
- elements: elements,
86
- paging: this.getPaging(),
87
- filter: this.getFilter(),
88
- sort: this.getSort(),
89
- }));
90
- }
91
- }
92
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1zb3VyY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZzItc21hcnQtdGFibGUvc3JjL2xpYi9saWIvZGF0YS1zb3VyY2UvZGF0YS1zb3VyY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUvQixPQUFPLEVBQWtELDRCQUE0QixFQUEwRSxNQUFNLGtDQUFrQyxDQUFDO0FBRXhNLE1BQU0sT0FBZ0IsVUFBVTtJQUFoQztRQUVZLG9CQUFlLEdBQUcsSUFBSSxPQUFPLEVBQTRCLENBQUM7UUFDMUQsa0JBQWEsR0FBRyxJQUFJLE9BQU8sRUFBTyxDQUFDO1FBQ25DLG9CQUFlLEdBQUcsSUFBSSxPQUFPLEVBQU8sQ0FBQztRQUNyQyxvQkFBZSxHQUFHLElBQUksT0FBTyxFQUFPLENBQUM7SUE4R2pELENBQUM7SUFyR0MsT0FBTztRQUNMLElBQUksQ0FBQyxhQUFhLENBQUMsNEJBQTRCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsYUFBYSxDQUFDLDRCQUE0QixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RELE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQsU0FBUztRQUNQLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUM3QyxDQUFDO0lBRUQsT0FBTztRQUNMLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMzQyxDQUFDO0lBRUQsU0FBUztRQUNQLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUM3QyxDQUFDO0lBRUQsU0FBUztRQUNQLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUM3QyxD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QUFJLENBQUMsU0FBUyxFQUFFO1lBQ3hCLElBQUksRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFO1NBQ3JCLENBQUMsQ0FBQyxDQUFDO0lBQ04sQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgU21hcnRUYWJsZUZpbHRlckNvbmYsIFNtYXJ0VGFibGVPbkNoYW5nZWRFdmVudCwgU21hcnRUYWJsZU9uQ2hhbmdlZEV2ZW50TmFtZSwgU21hcnRUYWJsZU9uQ2hhbmdlZEV2ZW50VHlwZSwgU21hcnRUYWJsZVBhZ2luZ0l0ZW0sIFNtYXJ0VGFibGVTb3J0SXRlbSB9IGZyb20gJy4uL2ludGVyZmFjZXMvc21hcnQtdGFibGUubW9kZWxzJztcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIERhdGFTb3VyY2U8VD1hbnk+IHtcblxuICBwcm90ZWN0ZWQgb25DaGFuZ2VkU291cmNlID0gbmV3IFN1YmplY3Q8U21hcnRUYWJsZU9uQ2hhbmdlZEV2ZW50PigpO1xuICBwcm90ZWN0ZWQgb25BZGRlZFNvdXJjZSA9IG5ldyBTdWJqZWN0PGFueT4oKTtcbiAgcHJvdGVjdGVkIG9uVXBkYXRlZFNvdXJjZSA9IG5ldyBTdWJqZWN0PGFueT4oKTtcbiAgcHJvdGVjdGVkIG9uUmVtb3ZlZFNvdXJjZSA9IG5ldyBTdWJqZWN0PGFueT4oKTtcblxuICBhYnN0cmFjdCBnZXRBbGwoKTogUHJvbWlzZTxUW10+O1xuICBhYnN0cmFjdCBnZXRFbGVtZW50cygpOiBQcm9taXNlPFRbXT47XG4gIGFic3RyYWN0IGdldFNvcnQoKTogU21hcnRUYWJsZVNvcnRJdGVtW107XG4gIGFic3RyYWN0IGdldEZpbHRlcigpOiBTbWFydFRhYmxlRmlsdGVyQ29uZjtcbiAgYWJzdHJhY3QgZ2V0UGFnaW5nKCk6IFNtYXJ0VGFibGVQYWdpbmdJdGVtIHwgZmFsc2U7XG4gIGFic3RyYWN0IGNvdW50KCk6IG51bWJlcjtcblxuICByZWZyZXNoKCk6IHZvaWQge1xuICAgIHRoaXMuZW1pdE9uQ2hhbmdlZChTbWFydFRhYmxlT25DaGFuZ2VkRXZlbnROYW1lLnJlZnJlc2gpO1xuICB9XG5cbiAgbG9hZEVtaXQ8VD4oKTogUHJvbWlzZTx0cnVlPiB7XG4gICAgdGhpcy5lbWl0T25DaGFuZ2VkKFNtYXJ0VGFibGVPbkNoYW5nZWRFdmVudE5hbWUubG9hZCk7XG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh0cnVlKTtcbiAgfVxuXG4gIG9uQ2hhbmdlZCgpOiBPYnNlcnZhYmxlPFNtYXJ0VGFibGVPbkNoYW5nZWRFdmVudD4ge1xuICAgIHJldHVybiB0aGlzLm9uQ2hhbmdlZFNvdXJjZS5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIG9uQWRkZWQoKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5vbkFkZGVkU291cmNlLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgb25VcGRhdGVkKCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMub25VcGRhdGVkU291cmNlLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgb25SZW1vdmVkKCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMub25SZW1vdmVkU291cmNlLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHJlcGVuZEVtaXQoZWxlbWVudDogVCk6IFByb21pc2U8dHJ1ZT4ge1xuICAgIHRoaXMuZW1pdE9uQWRkZWQoZWxlbWVudCk7XG4gICAgdGhpcy5lbWl0T25DaGFuZ2VkKFNtYXJ0VGFibGVPbkNoYW5nZWRFdmVudE5hbWUucHJlcGVuZCk7XG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh0cnVlKTtcbiAgfVxuXG4gIGFwcGVuZEVtaXQoZWxlbWVudDogVCk6IFByb21pc2U8dHJ1ZT4ge1xuICAgIHRoaXMuZW1pdE9uQWRkZWQoZWxlbWVudCk7XG4gICAgdGhpcy5lbWl0T25DaGFuZ2VkKFNtYXJ0VGFibGVPbkNoYW5nZWRFdmVudE5hbWUuYXBwZW5kKTtcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHRydWUpO1xuICB9XG5cbiAgYWRkRW1pdChlbGVtZW50OiBUKTogUHJvbWlzZTx0cnVlPiB7XG4gICAgdGhpcy5lbWl0T25BZGRlZChlbGVtZW50KTtcbiAgICB0aGlzLmVtaXRPbkNoYW5nZWQoU21hcnRUYWJsZU9uQ2hhbmdlZEV2ZW50TmFtZS5hZGQpO1xuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUodHJ1ZSk7XG4gIH1cblxuICByZW1vdmVFbWl0KGVsZW1lbnQ6IFQpOiBQcm9taXNlPHRydWU+IHtcbiAgICB0aGlzLmVtaXRPblJlbW92ZWQoZWxlbWVudCk7XG4gICAgdGhpcy5lbWl0T25DaGFuZ2VkKFNtYXJ0VGFibGVPbkNoYW5nZWRFdmVudE5hbWUucmVtb3ZlKTtcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHRydWUpO1xuICB9XG5cbiAgdXBkYXRlRW1pdChlbGVtZW50OiBUKTogUHJvbWlzZTx0cnVlPiB7XG4gICAgdGhpcy5lbWl0T25VcGRhdGVkKGVsZW1lbnQpO1xuICAgIHRoaXMuZW1pdE9uQ2hhbmdlZChTbWFydFRhYmxlT25DaGFuZ2VkRXZlbnROYW1lLnVwZGF0ZSk7XG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh0cnVlKTtcbiAgfVxuXG4gIGVtcHR5RW1pdCgpOiBQcm9taXNlPHRydWU+IHtcbiAgICB0aGlzLmVtaXRPbkNoYW5nZWQoU21hcnRUYWJsZU9uQ2hhbmdlZEV2ZW50TmFtZS5lbXB0eSk7XG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh0cnVlKTtcbiAgfVxuXG4gIHNldFNvcnRFbWl0KCkge1xuICAgIHRoaXMuZW1pdE9uQ2hhbmdlZChTbWFydFRhYmxlT25DaGFuZ2VkRXZlbnROYW1lLnNvcnQpO1xuICB9XG5cbiAgc2V0RmlsdGVyRW1pdCgpIHtcbiAgICB0aGlzLmVtaXRPbkNoYW5nZWQoU21hcnRUYWJsZU9uQ2hhbmdlZEV2ZW50TmFtZS5maWx0ZXIpO1xuICB9XG5cbiAgYWRkRmlsdGVyRW1pdCgpIHtcbiAgICB0aGlzLmVtaXRPbkNoYW5nZWQoU21hcnRUYWJsZU9uQ2hhbmdlZEV2ZW50TmFtZS5maWx0ZXIpO1xuICB9XG5cbiAgc2V0UGFnaW5nRW1pdCgpIHtcbiAgICB0aGlzLmVtaXRPbkNoYW5nZWQoU21hcnRUYWJsZU9uQ2hhbmdlZEV2ZW50TmFtZS5wYWdpbmcpO1xuICB9XG5cbiAgc2V0UGFnZUVtaXQoKSB7XG4gICAgdGhpcy5lbWl0T25DaGFuZ2VkKFNtYXJ0VGFibGVPbkNoYW5nZWRFdmVudE5hbWUucGFnZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZW1pdE9uUmVtb3ZlZChlbGVtZW50OiBUKSB7XG4gICAgdGhpcy5vblJlbW92ZWRTb3VyY2UubmV4dChlbGVtZW50KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBlbWl0T25VcGRhdGVkKGVsZW1lbnQ6IFQpIHtcbiAgICB0aGlzLm9uVXBkYXRlZFNvdXJjZS5uZXh0KGVsZW1lbnQpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGVtaXRPbkFkZGVkKGVsZW1lbnQ6IFQpIHtcbiAgICB0aGlzLm9uQWRkZWRTb3VyY2UubmV4dChlbGVtZW50KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBlbWl0T25DaGFuZ2VkKGFjdGlvbjogU21hcnRUYWJsZU9uQ2hhbmdlZEV2ZW50VHlwZSkge1xuICAgIHRoaXMuZ2V0RWxlbWVudHMoKS50aGVuKChlbGVtZW50cykgPT4gdGhpcy5vbkNoYW5nZWRTb3VyY2UubmV4dCh7XG4gICAgICBhY3Rpb246IGFjdGlvbixcbiAgICAgIGVsZW1lbnRzOiBlbGVtZW50cyxcbiAgICAgIHBhZ2luZzogdGhpcy5nZXRQYWdpbmcoKSxcbiAgICAgIGZpbHRlcjogdGhpcy5nZXRGaWx0ZXIoKSxcbiAgICAgIHNvcnQ6IHRoaXMuZ2V0U29ydCgpLFxuICAgIH0pKTtcbiAgfVxufVxuIl19
@@ -1,263 +0,0 @@
1
- import { LocalSorter } from './local.sorter';
2
- import { LocalFilter } from './local.filter';
3
- import { LocalPager } from './local.pager';
4
- import { DataSource } from '../data-source';
5
- import { deepExtend } from '../../helpers';
6
- export class LocalDataSource extends DataSource {
7
- constructor(data = []) {
8
- super();
9
- this.data = [];
10
- this.filteredAndSorted = [];
11
- this.sortConf = [];
12
- this.filterConf = {
13
- filters: [],
14
- andOperator: true,
15
- };
16
- this.pagingConf = false;
17
- this.data = data;
18
- }
19
- load(data) {
20
- this.data = data;
21
- return super.loadEmit();
22
- }
23
- prepend(element) {
24
- this.reset(true);
25
- this.data.unshift(element);
26
- return super.prependEmit(element);
27
- }
28
- appendMany(elements) {
29
- this.reset(true);
30
- this.data = [...this.data, ...elements];
31
- return super.loadEmit();
32
- }
33
- append(element) {
34
- this.reset(true);
35
- this.data.push(element);
36
- return super.appendEmit(element);
37
- }
38
- add(element) {
39
- this.data.push(element);
40
- return super.addEmit(element);
41
- }
42
- remove(element) {
43
- this.data = this.data.filter(el => el !== element);
44
- return super.removeEmit(element);
45
- }
46
- update(element, values) {
47
- return new Promise((resolve, reject) => {
48
- this.find(element).then((found) => {
49
- found = deepExtend(found, values);
50
- super.updateEmit(found).then(resolve).catch(reject);
51
- }).catch(reject);
52
- });
53
- }
54
- find(element) {
55
- const found = this.data.find(el => el === element);
56
- if (found) {
57
- return Promise.resolve(found);
58
- }
59
- return Promise.reject(new Error('Element was not found in the dataset'));
60
- }
61
- getElements() {
62
- const data = this.data.slice(0);
63
- return Promise.resolve(this.prepareData(data));
64
- }
65
- getFilteredAndSorted() {
66
- let data = this.data.slice(0);
67
- this.prepareData(data);
68
- return Promise.resolve(this.filteredAndSorted);
69
- }
70
- getAll() {
71
- const data = this.data.slice(0);
72
- return Promise.resolve(data);
73
- }
74
- reset(silent = false) {
75
- if (silent) {
76
- this.filterConf = {
77
- filters: [],
78
- andOperator: true,
79
- };
80
- this.sortConf = [];
81
- if (this.pagingConf) {
82
- this.pagingConf.page = 1;
83
- }
84
- }
85
- else {
86
- this.setFilter([], true, false);
87
- this.setSort([], false);
88
- if (this.pagingConf) {
89
- this.setPage(1);
90
- }
91
- }
92
- }
93
- empty() {
94
- this.data = [];
95
- return super.emptyEmit();
96
- }
97
- count() {
98
- return this.filteredAndSorted.length;
99
- }
100
- /**
101
- *
102
- * Array of conf objects
103
- * [
104
- * {field: string, direction: asc|desc|null, compare: Function|null},
105
- * ]
106
- * @param conf
107
- * @param doEmit
108
- * @returns {LocalDataSource}
109
- */
110
- setSort(conf, doEmit = true) {
111
- if (conf !== null) {
112
- conf.forEach((fieldConf) => {
113
- if (!fieldConf.field || typeof fieldConf.direction === 'undefined') {
114
- throw new Error('Sort configuration object is not valid');
115
- }
116
- });
117
- this.sortConf = conf;
118
- }
119
- if (doEmit) {
120
- super.setSortEmit();
121
- }
122
- return this;
123
- }
124
- /**
125
- *
126
- * Array of conf objects
127
- * [
128
- * {field: string, search: string, filter: Function|null},
129
- * ]
130
- * @param conf
131
- * @param andOperator
132
- * @param doEmit
133
- * @returns {LocalDataSource}
134
- */
135
- setFilter(conf, andOperator = true, doEmit = true) {
136
- if (conf && conf.length > 0) {
137
- conf.forEach((fieldConf) => {
138
- this.addFilter(fieldConf, andOperator, false);
139
- });
140
- }
141
- else {
142
- this.filterConf = {
143
- filters: [],
144
- andOperator: true,
145
- };
146
- }
147
- this.filterConf.andOperator = andOperator;
148
- if (this.pagingConf) {
149
- this.pagingConf.page = 1;
150
- }
151
- if (doEmit) {
152
- super.setFilterEmit();
153
- }
154
- return this;
155
- }
156
- addFilter(fieldConf, andOperator = true, doEmit = true) {
157
- if (!fieldConf.field || typeof fieldConf.search === 'undefined') {
158
- throw new Error('Filter configuration object is not valid');
159
- }
160
- let found = false;
161
- this.filterConf.filters.forEach((currentFieldConf, index) => {
162
- if (currentFieldConf.field === fieldConf.field) {
163
- this.filterConf.filters[index] = fieldConf;
164
- found = true;
165
- }
166
- });
167
- if (!found) {
168
- this.filterConf.filters.push(fieldConf);
169
- }
170
- this.filterConf.andOperator = andOperator;
171
- if (doEmit) {
172
- super.addFilterEmit();
173
- }
174
- return this;
175
- }
176
- setPaging(page = 1, perPage, doEmit = true) {
177
- if (this.pagingConf) {
178
- this.pagingConf.page = page;
179
- this.pagingConf.perPage = perPage;
180
- }
181
- else {
182
- this.pagingConf = {
183
- page, perPage
184
- };
185
- }
186
- if (doEmit) {
187
- super.setPagingEmit();
188
- }
189
- return;
190
- }
191
- setPage(page, doEmit = true) {
192
- if (!this.pagingConf) {
193
- return;
194
- }
195
- this.pagingConf.page = page;
196
- if (doEmit) {
197
- super.setPageEmit();
198
- }
199
- return;
200
- }
201
- getSort() {
202
- return this.sortConf;
203
- }
204
- getFilter() {
205
- return this.filterConf;
206
- }
207
- getPaging() {
208
- return this.pagingConf;
209
- }
210
- prepareData(data) {
211
- data = this.filter(data);
212
- data = this.sort(data);
213
- this.filteredAndSorted = data.slice(0);
214
- if (this.pagingConf) {
215
- return this.paginate(data);
216
- }
217
- else
218
- return data;
219
- }
220
- sort(data) {
221
- if (this.sortConf) {
222
- this.sortConf.forEach((fieldConf) => {
223
- data = LocalSorter
224
- .sort(data, fieldConf.field, fieldConf.direction, fieldConf.compare);
225
- });
226
- }
227
- return data;
228
- }
229
- // TODO: refactor?
230
- filter(data) {
231
- if (this.filterConf.filters) {
232
- if (this.filterConf.andOperator) {
233
- this.filterConf.filters.forEach((fieldConf) => {
234
- if (fieldConf.search?.length > 0) {
235
- data = LocalFilter
236
- .filter(data, fieldConf.field, fieldConf.search, fieldConf.filter);
237
- }
238
- });
239
- }
240
- else {
241
- let mergedData = [];
242
- this.filterConf.filters.forEach((fieldConf) => {
243
- if (fieldConf.search?.length > 0) {
244
- mergedData = mergedData.concat(LocalFilter
245
- .filter(data, fieldConf.field, fieldConf.search, fieldConf.filter));
246
- }
247
- });
248
- // remove non unique items
249
- data = mergedData.filter((elem, pos, arr) => {
250
- return arr.indexOf(elem) === pos;
251
- });
252
- }
253
- }
254
- return data;
255
- }
256
- paginate(data) {
257
- if (this.pagingConf && this.pagingConf.page && this.pagingConf.perPage) {
258
- data = LocalPager.paginate(data, this.pagingConf.page, this.pagingConf.perPage);
259
- }
260
- return data;
261
- }
262
- }
263
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWwuZGF0YS1zb3VyY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZzItc21hcnQtdGFibGUvc3JjL2xpYi9saWIvZGF0YS1zb3VyY2UvbG9jYWwvbG9jYWwuZGF0YS1zb3VyY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzNDLE1BQU0sT0FBTyxlQUF5QixTQUFRLFVBQWE7SUFXekQsWUFBWSxPQUFZLEVBQUU7UUFDeEIsS0FBSyxFQUFFLENBQUM7UUFWQSxTQUFJLEdBQVEsRUFBRSxDQUFDO1FBQ2Ysc0JBQWlCLEdBQVEsRUFBRSxDQUFDO1FBQzVCLGFBQVEsR0FBeUIsRUFBRSxDQUFDO1FBQ3BDLGVBQVUsR0FBeUI7WUFDM0MsT0FBTyxFQUFFLEVBQUU7WUFDWCxXQUFXLEVBQUUsSUFBSTtTQUNsQixDQUFDO1FBQ1EsZUFBVSxHQUFpQyxLQUFLLENBQUM7UUFLekQsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7SUFDbkIsQ0FBQztJQUVELElBQUksQ0FBQyxJQUFTO1FBQ1osSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDakIsT0FBTyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELE9BQU8sQ0FBQyxPQUFVO1FBQ2hCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakIsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FB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Q0FBQyxDQUFDLENBQUM7b0JBQ3hFLENBQUM7Z0JBQ0gsQ0FBQyxDQUFDLENBQUM7Z0JBQ0gsMEJBQTBCO2dCQUMxQixJQUFJLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQVMsRUFBRSxHQUFRLEVBQUUsR0FBUSxFQUFFLEVBQUU7b0JBQ3pELE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUM7Z0JBQ25DLENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFUyxRQUFRLENBQUMsSUFBUztRQUMxQixJQUFJLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUN2RSxJQUFJLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNsRixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMb2NhbFNvcnRlciB9IGZyb20gJy4vbG9jYWwuc29ydGVyJztcbmltcG9ydCB7IExvY2FsRmlsdGVyIH0gZnJvbSAnLi9sb2NhbC5maWx0ZXInO1xuaW1wb3J0IHsgTG9jYWxQYWdlciB9IGZyb20gJy4vbG9jYWwucGFnZXInO1xuaW1wb3J0IHsgRGF0YVNvdXJjZSB9IGZyb20gJy4uL2RhdGEtc291cmNlJztcbmltcG9ydCB7IGRlZXBFeHRlbmQgfSBmcm9tICcuLi8uLi9oZWxwZXJzJztcbmltcG9ydCB7IFNtYXJ0VGFibGVGaWx0ZXJDb25mLCBTbWFydFRhYmxlRmlsdGVySXRlbSwgU21hcnRUYWJsZVBhZ2luZ0l0ZW0sIFNtYXJ0VGFibGVTb3J0SXRlbSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvc21hcnQtdGFibGUubW9kZWxzJztcblxuZXhwb3J0IGNsYXNzIExvY2FsRGF0YVNvdXJjZTxUID0gYW55PiBleHRlbmRzIERhdGFTb3VyY2U8VD4ge1xuXG4gIHByb3RlY3RlZCBkYXRhOiBUW10gPSBbXTtcbiAgcHJvdGVjdGVkIGZpbHRlcmVkQW5kU29ydGVkOiBUW10gPSBbXTtcbiAgcHJvdGVjdGVkIHNvcnRDb25mOiBTbWFydFRhYmxlU29ydEl0ZW1bXSA9IFtdO1xuICBwcm90ZWN0ZWQgZmlsdGVyQ29uZjogU21hcnRUYWJsZUZpbHRlckNvbmYgPSB7XG4gICAgZmlsdGVyczogW10sXG4gICAgYW5kT3BlcmF0b3I6IHRydWUsXG4gIH07XG4gIHByb3RlY3RlZCBwYWdpbmdDb25mOiBTbWFydFRhYmxlUGFnaW5nSXRlbSB8IGZhbHNlID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoZGF0YTogVFtdID0gW10pIHtcbiAgICBzdXBlcigpO1xuXG4gICAgdGhpcy5kYXRhID0gZGF0YTtcbiAgfVxuXG4gIGxvYWQoZGF0YTogYW55KTogUHJvbWlzZTx0cnVlPiB7XG4gICAgdGhpcy5kYXRhID0gZGF0YTtcbiAgICByZXR1cm4gc3VwZXIubG9hZEVtaXQoKTtcbiAgfVxuXG4gIHByZXBlbmQoZWxlbWVudDogVCk6IFByb21pc2U8dHJ1ZT4ge1xuICAgIHRoaXMucmVzZXQodHJ1ZSk7XG4gICAgdGhpcy5kYXRhLnVuc2hpZnQoZWxlbWVudCk7XG4gICAgcmV0dXJuIHN1cGVyLnByZXBlbmRFbWl0KGVsZW1lbnQpO1xuICB9XG5cbiAgYXBwZW5kTWFueShlbGVtZW50czogVFtdKTogUHJvbWlzZTx0cnVlPiB7XG4gICAgdGhpcy5yZXNldCh0cnVlKTtcbiAgICB0aGlzLmRhdGEgPSBbLi4udGhpcy5kYXRhLCAuLi5lbGVtZW50c107XG4gICAgcmV0dXJuIHN1cGVyLmxvYWRFbWl0KCk7XG4gIH1cblxuICBhcHBlbmQoZWxlbWVudDogVCk6IFByb21pc2U8dHJ1ZT4ge1xuICAgIHRoaXMucmVzZXQodHJ1ZSk7XG5cbiAgICB0aGlzLmRhdGEucHVzaChlbGVtZW50KTtcbiAgICByZXR1cm4gc3VwZXIuYXBwZW5kRW1pdChlbGVtZW50KTtcbiAgfVxuXG4gIGFkZChlbGVtZW50OiBUKTogUHJvbWlzZTx0cnVlPiB7XG4gICAgdGhpcy5kYXRhLnB1c2goZWxlbWVudCk7XG4gICAgcmV0dXJuIHN1cGVyLmFkZEVtaXQoZWxlbWVudCk7XG4gIH1cblxuICByZW1vdmUoZWxlbWVudDogVCk6IFByb21pc2U8dHJ1ZT4ge1xuICAgIHRoaXMuZGF0YSA9IHRoaXMuZGF0YS5maWx0ZXIoZWwgPT4gZWwgIT09IGVsZW1lbnQpO1xuICAgIHJldHVybiBzdXBlci5yZW1vdmVFbWl0KGVsZW1lbnQpO1xuICB9XG5cbiAgdXBkYXRlKGVsZW1lbnQ6IFQsIHZhbHVlczogVCk6IFByb21pc2U8dHJ1ZT4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICB0aGlzLmZpbmQoZWxlbWVudCkudGhlbigoZm91bmQpID0+IHtcbiAgICAgICAgZm91bmQgPSBkZWVwRXh0ZW5kKGZvdW5kLCB2YWx1ZXMpO1xuICAgICAgICBzdXBlci51cGRhdGVFbWl0KGZvdW5kKS50aGVuKHJlc29sdmUpLmNhdGNoKHJlamVjdCk7XG4gICAgICB9KS5jYXRjaChyZWplY3QpO1xuICAgIH0pO1xuICB9XG5cbiAgZmluZChlbGVtZW50OiBUKTogUHJvbWlzZTxUPiB7XG4gICAgY29uc3QgZm91bmQgPSB0aGlzLmRhdGEuZmluZChlbCA9PiBlbCA9PT0gZWxlbWVudCk7XG4gICAgaWYgKGZvdW5kKSB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGZvdW5kKTtcbiAgICB9XG4gICAgcmV0dXJuIFByb21pc2UucmVqZWN0KG5ldyBFcnJvcignRWxlbWVudCB3YXMgbm90IGZvdW5kIGluIHRoZSBkYXRhc2V0JykpO1xuICB9XG5cbiAgZ2V0RWxlbWVudHMoKTogUHJvbWlzZTxUW10+IHtcbiAgICBjb25zdCBkYXRhID0gdGhpcy5kYXRhLnNsaWNlKDApO1xuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUodGhpcy5wcmVwYXJlRGF0YShkYXRhKSk7XG4gIH1cblxuICBnZXRGaWx0ZXJlZEFuZFNvcnRlZCgpOiBQcm9taXNlPFRbXT4ge1xuICAgIGxldCBkYXRhID0gdGhpcy5kYXRhLnNsaWNlKDApO1xuICAgIHRoaXMucHJlcGFyZURhdGEoZGF0YSk7XG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh0aGlzLmZpbHRlcmVkQW5kU29ydGVkKTtcbiAgfVxuXG4gIGdldEFsbCgpOiBQcm9taXNlPFRbXT4ge1xuICAgIGNvbnN0IGRhdGEgPSB0aGlzLmRhdGEuc2xpY2UoMCk7XG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShkYXRhKTtcbiAgfVxuXG4gIHJlc2V0KHNpbGVudCA9IGZhbHNlKSB7XG4gICAgaWYgKHNpbGVudCkge1xuICAgICAgdGhpcy5maWx0ZXJDb25mID0ge1xuICAgICAgICBmaWx0ZXJzOiBbXSxcbiAgICAgICAgYW5kT3BlcmF0b3I6IHRydWUsXG4gICAgICB9O1xuICAgICAgdGhpcy5zb3J0Q29uZiA9IFtdO1xuICAgICAgaWYgKHRoaXMucGFnaW5nQ29uZikge1xuICAgICAgICB0aGlzLnBhZ2luZ0NvbmYucGFnZSA9IDE7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2V0RmlsdGVyKFtdLCB0cnVlLCBmYWxzZSk7XG4gICAgICB0aGlzLnNldFNvcnQoW10sIGZhbHNlKTtcbiAgICAgIGlmICh0aGlzLnBhZ2luZ0NvbmYpIHtcbiAgICAgICAgdGhpcy5zZXRQYWdlKDEpO1xuICAgICAgIH1cbiAgICB9XG4gIH1cblxuICBlbXB0eSgpOiBQcm9taXNlPHRydWU+IHtcbiAgICB0aGlzLmRhdGEgPSBbXTtcbiAgICByZXR1cm4gc3VwZXIuZW1wdHlFbWl0KCk7XG4gIH1cblxuICBjb3VudCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmZpbHRlcmVkQW5kU29ydGVkLmxlbmd0aDtcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBBcnJheSBvZiBjb25mIG9iamVjdHNcbiAgICogW1xuICAgKiAge2ZpZWxkOiBzdHJpbmcsIGRpcmVjdGlvbjogYXNjfGRlc2N8bnVsbCwgY29tcGFyZTogRnVuY3Rpb258bnVsbH0sXG4gICAqIF1cbiAgICogQHBhcmFtIGNvbmZcbiAgICogQHBhcmFtIGRvRW1pdFxuICAgKiBAcmV0dXJucyB7TG9jYWxEYXRhU291cmNlfVxuICAgKi9cbiAgc2V0U29ydChjb25mOiBTbWFydFRhYmxlU29ydEl0ZW1bXSwgZG9FbWl0ID0gdHJ1ZSk6IExvY2FsRGF0YVNvdXJjZSB7XG4gICAgaWYgKGNvbmYgIT09IG51bGwpIHtcbiAgICAgIGNvbmYuZm9yRWFjaCgoZmllbGRDb25mKSA9PiB7XG4gICAgICAgIGlmICghZmllbGRDb25mLmZpZWxkIHx8IHR5cGVvZiBmaWVsZENvbmYuZGlyZWN0aW9uID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcignU29ydCBjb25maWd1cmF0aW9uIG9iamVjdCBpcyBub3QgdmFsaWQnKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICB0aGlzLnNvcnRDb25mID0gY29uZjtcbiAgICB9XG4gICAgaWYgKGRvRW1pdCkge1xuICAgICAgc3VwZXIuc2V0U29ydEVtaXQoKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogQXJyYXkgb2YgY29uZiBvYmplY3RzXG4gICAqIFtcbiAgICogIHtmaWVsZDogc3RyaW5nLCBzZWFyY2g6IHN0cmluZywgZmlsdGVyOiBGdW5jdGlvbnxudWxsfSxcbiAgICogXVxuICAgKiBAcGFyYW0gY29uZlxuICAgKiBAcGFyYW0gYW5kT3BlcmF0b3JcbiAgICogQHBhcmFtIGRvRW1pdFxuICAgKiBAcmV0dXJucyB7TG9jYWxEYXRhU291cmNlfVxuICAgKi9cbiAgc2V0RmlsdGVyKGNvbmY6IFNtYXJ0VGFibGVGaWx0ZXJJdGVtW10sIGFuZE9wZXJhdG9yID0gdHJ1ZSwgZG9FbWl0ID0gdHJ1ZSk6IExvY2FsRGF0YVNvdXJjZSB7XG4gICAgaWYgKGNvbmYgJiYgY29uZi5sZW5ndGggPiAwKSB7XG4gICAgICBjb25mLmZvckVhY2goKGZpZWxkQ29uZikgPT4ge1xuICAgICAgICB0aGlzLmFkZEZpbHRlcihmaWVsZENvbmYsIGFuZE9wZXJhdG9yLCBmYWxzZSk7XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5maWx0ZXJDb25mID0ge1xuICAgICAgICBmaWx0ZXJzOiBbXSxcbiAgICAgICAgYW5kT3BlcmF0b3I6IHRydWUsXG4gICAgICB9O1xuICAgIH1cbiAgICB0aGlzLmZpbHRlckNvbmYuYW5kT3BlcmF0b3IgPSBhbmRPcGVyYXRvcjtcbiAgICBpZiAodGhpcy5wYWdpbmdDb25mKSB7XG4gICAgICB0aGlzLnBhZ2luZ0NvbmYucGFnZSA9IDE7XG4gICAgfVxuICAgIGlmIChkb0VtaXQpIHtcbiAgICAgIHN1cGVyLnNldEZpbHRlckVtaXQoKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBhZGRGaWx0ZXIoZmllbGRDb25mOiBTbWFydFRhYmxlRmlsdGVySXRlbSwgYW5kT3BlcmF0b3IgPSB0cnVlLCBkb0VtaXQ6IGJvb2xlYW4gPSB0cnVlKTogTG9jYWxEYXRhU291cmNlIHtcbiAgICBpZiAoIWZpZWxkQ29uZi5maWVsZCB8fCB0eXBlb2YgZmllbGRDb25mLnNlYXJjaCA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignRmlsdGVyIGNvbmZpZ3VyYXRpb24gb2JqZWN0IGlzIG5vdCB2YWxpZCcpO1xuICAgIH1cblxuICAgIGxldCBmb3VuZCA9IGZhbHNlO1xuICAgIHRoaXMuZmlsdGVyQ29uZi5maWx0ZXJzLmZvckVhY2goKGN1cnJlbnRGaWVsZENvbmY6IGFueSwgaW5kZXg6IGFueSkgPT4ge1xuICAgICAgaWYgKGN1cnJlbnRGaWVsZENvbmYuZmllbGQgPT09IGZpZWxkQ29uZi5maWVsZCkge1xuICAgICAgICB0aGlzLmZpbHRlckNvbmYuZmlsdGVyc1tpbmRleF0gPSBmaWVsZENvbmY7XG4gICAgICAgIGZvdW5kID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBpZiAoIWZvdW5kKSB7XG4gICAgICB0aGlzLmZpbHRlckNvbmYuZmlsdGVycy5wdXNoKGZpZWxkQ29uZik7XG4gICAgfVxuICAgIHRoaXMuZmlsdGVyQ29uZi5hbmRPcGVyYXRvciA9IGFuZE9wZXJhdG9yO1xuICAgIGlmIChkb0VtaXQpIHtcbiAgICAgIHN1cGVyLmFkZEZpbHRlckVtaXQoKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBzZXRQYWdpbmcocGFnZTogbnVtYmVyID0gMSwgcGVyUGFnZTogbnVtYmVyLCBkb0VtaXQ6IGJvb2xlYW4gPSB0cnVlKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucGFnaW5nQ29uZikge1xuICAgICAgdGhpcy5wYWdpbmdDb25mLnBhZ2UgPSBwYWdlO1xuICAgICAgdGhpcy5wYWdpbmdDb25mLnBlclBhZ2UgPSBwZXJQYWdlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnBhZ2luZ0NvbmYgPSB7XG4gICAgICAgIHBhZ2UsIHBlclBhZ2VcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGRvRW1pdCkge1xuICAgICAgc3VwZXIuc2V0UGFnaW5nRW1pdCgpO1xuICAgIH1cbiAgICByZXR1cm47XG4gIH1cblxuICBzZXRQYWdlKHBhZ2U6IG51bWJlciwgZG9FbWl0OiBib29sZWFuID0gdHJ1ZSk6IHZvaWQge1xuICAgIGlmICghdGhpcy5wYWdpbmdDb25mKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMucGFnaW5nQ29uZi5wYWdlID0gcGFnZTtcbiAgICBpZihkb0VtaXQpIHtcbiAgICAgIHN1cGVyLnNldFBhZ2VFbWl0KCk7XG4gICAgfVxuICAgIHJldHVybjtcbiAgfVxuXG4gIGdldFNvcnQoKTogU21hcnRUYWJsZVNvcnRJdGVtW10ge1xuICAgIHJldHVybiB0aGlzLnNvcnRDb25mO1xuICB9XG5cbiAgZ2V0RmlsdGVyKCk6IFNtYXJ0VGFibGVGaWx0ZXJDb25mIHtcbiAgICByZXR1cm4gdGhpcy5maWx0ZXJDb25mO1xuICB9XG5cbiAgZ2V0UGFnaW5nKCk6IFNtYXJ0VGFibGVQYWdpbmdJdGVtIHwgZmFsc2Uge1xuICAgIHJldHVybiB0aGlzLnBhZ2luZ0NvbmY7XG4gIH1cblxuICBwcm90ZWN0ZWQgcHJlcGFyZURhdGEoZGF0YTogVFtdKTogVFtdIHtcbiAgICBkYXRhID0gdGhpcy5maWx0ZXIoZGF0YSk7XG4gICAgZGF0YSA9IHRoaXMuc29ydChkYXRhKTtcbiAgICB0aGlzLmZpbHRlcmVkQW5kU29ydGVkID0gZGF0YS5zbGljZSgwKTtcbiAgICBpZih0aGlzLnBhZ2luZ0NvbmYpIHtcbiAgICAgIHJldHVybiB0aGlzLnBhZ2luYXRlKGRhdGEpO1xuICAgIH0gZWxzZSByZXR1cm4gZGF0YVxuICB9XG5cbiAgcHJvdGVjdGVkIHNvcnQoZGF0YTogVFtdKTogVFtdIHtcbiAgICBpZiAodGhpcy5zb3J0Q29uZikge1xuICAgICAgdGhpcy5zb3J0Q29uZi5mb3JFYWNoKChmaWVsZENvbmYpID0+IHtcbiAgICAgICAgZGF0YSA9IExvY2FsU29ydGVyXG4gICAgICAgICAgLnNvcnQoZGF0YSwgZmllbGRDb25mLmZpZWxkLCBmaWVsZENvbmYuZGlyZWN0aW9uLCBmaWVsZENvbmYuY29tcGFyZSk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIGRhdGE7XG4gIH1cblxuICAvLyBUT0RPOiByZWZhY3Rvcj9cbiAgcHJvdGVjdGVkIGZpbHRlcihkYXRhOiBUW10pOiBUW10ge1xuICAgIGlmICh0aGlzLmZpbHRlckNvbmYuZmlsdGVycykge1xuICAgICAgaWYgKHRoaXMuZmlsdGVyQ29uZi5hbmRPcGVyYXRvcikge1xuICAgICAgICB0aGlzLmZpbHRlckNvbmYuZmlsdGVycy5mb3JFYWNoKChmaWVsZENvbmY6IFNtYXJ0VGFibGVGaWx0ZXJJdGVtKSA9PiB7XG4gICAgICAgICAgaWYgKGZpZWxkQ29uZi5zZWFyY2g/Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGRhdGEgPSBMb2NhbEZpbHRlclxuICAgICAgICAgICAgICAuZmlsdGVyKGRhdGEsIGZpZWxkQ29uZi5maWVsZCwgZmllbGRDb25mLnNlYXJjaCwgZmllbGRDb25mLmZpbHRlcik7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxldCBtZXJnZWREYXRhOiBUW10gPSBbXTtcbiAgICAgICAgdGhpcy5maWx0ZXJDb25mLmZpbHRlcnMuZm9yRWFjaCgoZmllbGRDb25mOiBTbWFydFRhYmxlRmlsdGVySXRlbSkgPT4ge1xuICAgICAgICAgIGlmIChmaWVsZENvbmYuc2VhcmNoPy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBtZXJnZWREYXRhID0gbWVyZ2VkRGF0YS5jb25jYXQoTG9jYWxGaWx0ZXJcbiAgICAgICAgICAgICAgLmZpbHRlcihkYXRhLCBmaWVsZENvbmYuZmllbGQsIGZpZWxkQ29uZi5zZWFyY2gsIGZpZWxkQ29uZi5maWx0ZXIpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICAvLyByZW1vdmUgbm9uIHVuaXF1ZSBpdGVtc1xuICAgICAgICBkYXRhID0gbWVyZ2VkRGF0YS5maWx0ZXIoKGVsZW06IGFueSwgcG9zOiBhbnksIGFycjogYW55KSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGFyci5pbmRleE9mKGVsZW0pID09PSBwb3M7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuXG4gIHByb3RlY3RlZCBwYWdpbmF0ZShkYXRhOiBUW10pOiBUW10ge1xuICAgIGlmICh0aGlzLnBhZ2luZ0NvbmYgJiYgdGhpcy5wYWdpbmdDb25mLnBhZ2UgJiYgdGhpcy5wYWdpbmdDb25mLnBlclBhZ2UpIHtcbiAgICAgIGRhdGEgPSBMb2NhbFBhZ2VyLnBhZ2luYXRlKGRhdGEsIHRoaXMucGFnaW5nQ29uZi5wYWdlLCB0aGlzLnBhZ2luZ0NvbmYucGVyUGFnZSk7XG4gICAgfVxuICAgIHJldHVybiBkYXRhO1xuICB9XG59XG4iXX0=