@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.
- package/README.md +167 -0
- package/fesm2022/den4ik92-ng2-smart-table.mjs +1502 -1581
- package/fesm2022/den4ik92-ng2-smart-table.mjs.map +1 -1
- package/lib/components/cell/cell-edit-mode/custom-edit.component.d.ts +3 -5
- package/lib/components/cell/cell-edit-mode/default-edit.component.d.ts +3 -3
- package/lib/components/cell/cell-edit-mode/edit-cell-default.d.ts +2 -3
- package/lib/components/cell/cell-edit-mode/edit-cell.component.d.ts +4 -5
- package/lib/components/cell/cell-editors/checkbox-editor.component.d.ts +2 -2
- package/lib/components/cell/cell-editors/default-editor.d.ts +8 -8
- package/lib/components/cell/cell-editors/input-editor.component.d.ts +2 -2
- package/lib/components/cell/cell-editors/select-editor.component.d.ts +2 -2
- package/lib/components/cell/cell-editors/textarea-editor.component.d.ts +2 -2
- package/lib/components/cell/cell-view-mode/custom-view.component.d.ts +1 -1
- package/lib/components/cell/cell-view-mode/view-cell.component.d.ts +2 -2
- package/lib/components/cell/cell.component.d.ts +8 -8
- package/lib/components/filter/custom-filter.component.d.ts +3 -5
- package/lib/components/filter/default-filter.component.d.ts +1 -1
- package/lib/components/filter/filter-default.d.ts +2 -3
- package/lib/components/filter/filter-types/checkbox-filter.component.d.ts +4 -4
- package/lib/components/filter/filter-types/default-filter.d.ts +4 -4
- package/lib/components/filter/filter-types/input-filter.component.d.ts +4 -4
- package/lib/components/filter/filter-types/select-filter.component.d.ts +1 -1
- package/lib/components/filter/filter.component.d.ts +2 -2
- package/lib/components/pager/pager.component.d.ts +5 -5
- package/lib/components/tbody/cells/create-cancel.component.d.ts +4 -4
- package/lib/components/tbody/cells/custom.component.d.ts +2 -3
- package/lib/components/tbody/cells/edit-delete.component.d.ts +7 -7
- package/lib/components/tbody/tbody.component.d.ts +19 -19
- package/lib/components/thead/cells/actions-title.component.d.ts +3 -4
- package/lib/components/thead/cells/actions.component.d.ts +4 -4
- package/lib/components/thead/cells/add-button.component.d.ts +5 -6
- package/lib/components/thead/cells/checkbox-select-all.component.d.ts +3 -3
- package/lib/components/thead/cells/column-title.component.d.ts +4 -5
- package/lib/components/thead/cells/title/title.component.d.ts +8 -8
- package/lib/components/thead/rows/thead-filters-row.component.d.ts +4 -4
- package/lib/components/thead/rows/thead-form-row.component.d.ts +4 -4
- package/lib/components/thead/rows/thead-titles-row.component.d.ts +6 -6
- package/lib/components/thead/thead.component.d.ts +7 -7
- package/lib/lib/grid.d.ts +20 -11
- package/lib/lib/helpers.d.ts +4 -1
- package/lib/lib/interfaces/smart-table.models.d.ts +16 -12
- package/lib/ng2-smart-table.component.d.ts +20 -21
- package/package.json +6 -7
- package/public-api.d.ts +0 -1
- package/esm2022/den4ik92-ng2-smart-table.mjs +0 -5
- package/esm2022/lib/components/cell/cell-edit-mode/custom-edit.component.mjs +0 -44
- package/esm2022/lib/components/cell/cell-edit-mode/default-edit.component.mjs +0 -26
- package/esm2022/lib/components/cell/cell-edit-mode/edit-cell-default.mjs +0 -35
- package/esm2022/lib/components/cell/cell-edit-mode/edit-cell.component.mjs +0 -76
- package/esm2022/lib/components/cell/cell-editors/checkbox-editor.component.mjs +0 -40
- package/esm2022/lib/components/cell/cell-editors/default-editor.mjs +0 -30
- package/esm2022/lib/components/cell/cell-editors/input-editor.component.mjs +0 -37
- package/esm2022/lib/components/cell/cell-editors/select-editor.component.mjs +0 -52
- package/esm2022/lib/components/cell/cell-editors/textarea-editor.component.mjs +0 -39
- package/esm2022/lib/components/cell/cell-view-mode/custom-view.component.mjs +0 -15
- package/esm2022/lib/components/cell/cell-view-mode/view-cell.component.mjs +0 -47
- package/esm2022/lib/components/cell/cell-view-mode/view-cell.mjs +0 -2
- package/esm2022/lib/components/cell/cell.component.mjs +0 -73
- package/esm2022/lib/components/cell/cell.module.mjs +0 -75
- package/esm2022/lib/components/filter/custom-filter.component.mjs +0 -43
- package/esm2022/lib/components/filter/default-filter.component.mjs +0 -73
- package/esm2022/lib/components/filter/filter-default.mjs +0 -37
- package/esm2022/lib/components/filter/filter-types/checkbox-filter.component.mjs +0 -54
- package/esm2022/lib/components/filter/filter-types/default-filter.mjs +0 -36
- package/esm2022/lib/components/filter/filter-types/input-filter.component.mjs +0 -53
- package/esm2022/lib/components/filter/filter-types/select-filter.component.mjs +0 -58
- package/esm2022/lib/components/filter/filter.component.mjs +0 -86
- package/esm2022/lib/components/filter/filter.module.mjs +0 -62
- package/esm2022/lib/components/pager/pager.component.mjs +0 -241
- package/esm2022/lib/components/pager/pager.module.mjs +0 -28
- package/esm2022/lib/components/tbody/cells/create-cancel.component.mjs +0 -195
- package/esm2022/lib/components/tbody/cells/custom.component.mjs +0 -59
- package/esm2022/lib/components/tbody/cells/edit-delete.component.mjs +0 -241
- package/esm2022/lib/components/tbody/tbody.component.mjs +0 -95
- package/esm2022/lib/components/tbody/tbody.module.mjs +0 -47
- package/esm2022/lib/components/thead/cells/actions-title.component.mjs +0 -31
- package/esm2022/lib/components/thead/cells/actions.component.mjs +0 -42
- package/esm2022/lib/components/thead/cells/add-button.component.mjs +0 -57
- package/esm2022/lib/components/thead/cells/checkbox-select-all.component.mjs +0 -25
- package/esm2022/lib/components/thead/cells/column-title.component.mjs +0 -34
- package/esm2022/lib/components/thead/cells/title/title.component.mjs +0 -87
- package/esm2022/lib/components/thead/rows/thead-filters-row.component.mjs +0 -89
- package/esm2022/lib/components/thead/rows/thead-form-row.component.mjs +0 -108
- package/esm2022/lib/components/thead/rows/thead-titles-row.component.mjs +0 -87
- package/esm2022/lib/components/thead/thead.component.mjs +0 -42
- package/esm2022/lib/components/thead/thead.module.mjs +0 -75
- package/esm2022/lib/lib/data-set/cell.mjs +0 -43
- package/esm2022/lib/lib/data-set/column.mjs +0 -74
- package/esm2022/lib/lib/data-set/data-set.mjs +0 -96
- package/esm2022/lib/lib/data-set/row.mjs +0 -47
- package/esm2022/lib/lib/data-source/data-source.mjs +0 -92
- package/esm2022/lib/lib/data-source/local/local.data-source.mjs +0 -263
- package/esm2022/lib/lib/data-source/local/local.filter.mjs +0 -13
- package/esm2022/lib/lib/data-source/local/local.pager.mjs +0 -6
- package/esm2022/lib/lib/data-source/local/local.sorter.mjs +0 -19
- package/esm2022/lib/lib/grid.mjs +0 -218
- package/esm2022/lib/lib/helpers.mjs +0 -84
- package/esm2022/lib/lib/interfaces/smart-table.models.mjs +0 -16
- package/esm2022/lib/ng2-smart-table.component.mjs +0 -169
- package/esm2022/lib/ng2-smart-table.module.mjs +0 -51
- package/esm2022/public-api.mjs +0 -12
- package/lib/components/cell/cell.module.d.ts +0 -20
- package/lib/components/filter/filter.module.d.ts +0 -16
- package/lib/components/pager/pager.module.d.ts +0 -9
- package/lib/components/tbody/tbody.module.d.ts +0 -13
- package/lib/components/thead/thead.module.d.ts +0 -20
- 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1zZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZzItc21hcnQtdGFibGUvc3JjL2xpYi9saWIvZGF0YS1zZXQvZGF0YS1zZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUM1QixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBR2xDLE1BQU0sT0FBTyxPQUFPO0lBUWxCLFlBQVksT0FBYyxFQUFFLEVBQVksY0FBMEM7UUFBMUMsbUJBQWMsR0FBZCxjQUFjLENBQTRCO1FBTHhFLFNBQUksR0FBZSxFQUFFLENBQUM7UUFDdEIsWUFBTyxHQUFrQixFQUFFLENBQUM7UUFDNUIsU0FBSSxHQUFlLEVBQUUsQ0FBQztRQUN0QixpQkFBWSxHQUFHLElBQUksR0FBRyxFQUFPLENBQUM7UUFHdEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNuQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRW5CLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsT0FBTyxDQUFDLElBQWdCO1FBQ3RCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBRUQsVUFBVTtRQUNSLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBRUQsT0FBTztRQUNMLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztJQUNuQixDQUFDO0lBRUQsV0FBVztRQUNULE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN0QixDQUFDO0lBRUQsVUFBVTtRQUNSLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQsYUFBYSxDQUFDLElBQVM7UUFDckIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQVEsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxLQUFLLElBQUksQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFRCxZQUFZLENBQUMsS0FBYztRQUN6QixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ3hCLEdBQUcsQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM3QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUN4QixHQUFHLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztRQUN6QixDQUFDLENBQUMsQ0FBQztRQUNILGlFQUFpRTtRQUNqRSxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxTQUFTLENBQUMsR0FBUSxFQUFFLEtBQWM7UUFDaEMsR0FBRyxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7UUFDdkIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxHQUFRO1FBQ3hCLEdBQUcsQ0FBQyxVQUFVLEdBQUcsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUUzQixPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFRCxtQkFBbUI7UUFDakIsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFBO0lBQy9CLENBQUM7SUFFRCxZQUFZO1FBQ1YsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDcEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO0lBQ2pDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsYUFBYSxDQUFDLFFBQW9DO1FBQ2hELFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxjQUFjLEVBQUUsRUFBRTtZQUNsQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLE1BQU0sQ0FBQyxjQUFjLENBQUMsR0FBYSxFQUFFLGNBQWMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ3BGLENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVEOzs7T0FHRztJQUNILFVBQVU7UUFDUixJQUFJLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUNmLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFO1lBQzlCLE1BQU0sR0FBRyxHQUFHLElBQUksR0FBRyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDckMsR0FBRyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztZQUN0RCxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN0QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxJQUFXLGFBQWE7UUFDdEIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFBO0lBQ2pELENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxHQUFRO1FBQy9CLElBQUcsR0FBRyxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ2xCLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZDLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDMUMsQ0FBQztJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJvdyB9IGZyb20gJy4vcm93JztcbmltcG9ydCB7IENvbHVtbiB9IGZyb20gJy4vY29sdW1uJztcbmltcG9ydCB7IFNtYXJ0VGFibGVDb2x1bW5TZXR0aW5ncyB9IGZyb20gJy4uL2ludGVyZmFjZXMvc21hcnQtdGFibGUubW9kZWxzJztcblxuZXhwb3J0IGNsYXNzIERhdGFTZXQge1xuICBuZXdSb3chOiBSb3c7XG5cbiAgcHJvdGVjdGVkIGRhdGE6IEFycmF5PGFueT4gPSBbXTtcbiAgcHJvdGVjdGVkIGNvbHVtbnM6IEFycmF5PENvbHVtbj4gPSBbXTtcbiAgcHJvdGVjdGVkIHJvd3M6IEFycmF5PFJvdz4gPSBbXTtcbiAgcHJvdGVjdGVkIHNlbGVjdGVkUm93cyA9IG5ldyBTZXQ8Um93PigpO1xuXG4gIGNvbnN0cnVjdG9yKGRhdGE6IGFueVtdID0gW10sIHByb3RlY3RlZCBjb2x1bW5TZXR0aW5nczogU21hcnRUYWJsZUNvbHVtblNldHRpbmdzW10pIHtcbiAgICB0aGlzLmNyZWF0ZUNvbHVtbnMoY29sdW1uU2V0dGluZ3MpO1xuICAgIHRoaXMuc2V0RGF0YShkYXRhKTtcblxuICAgIHRoaXMuY3JlYXRlTmV3Um93KCk7XG4gIH1cblxuICBzZXREYXRhKGRhdGE6IEFycmF5PGFueT4pIHtcbiAgICB0aGlzLmRhdGEgPSBkYXRhO1xuICAgIHRoaXMuY3JlYXRlUm93cygpO1xuICB9XG5cbiAgZ2V0Q29sdW1ucygpOiBBcnJheTxDb2x1bW4+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=
|