@den4ik92/ng2-smart-table 2.0.6 → 2.1.2

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 (100) hide show
  1. package/{esm2020 → esm2022}/lib/components/cell/cell-edit-mode/custom-edit.component.mjs +6 -6
  2. package/{esm2020 → esm2022}/lib/components/cell/cell-edit-mode/default-edit.component.mjs +4 -4
  3. package/{esm2020 → esm2022}/lib/components/cell/cell-edit-mode/edit-cell-default.mjs +4 -4
  4. package/{esm2020 → esm2022}/lib/components/cell/cell-edit-mode/edit-cell.component.mjs +6 -6
  5. package/{esm2020 → esm2022}/lib/components/cell/cell-editors/checkbox-editor.component.mjs +6 -6
  6. package/{esm2020 → esm2022}/lib/components/cell/cell-editors/default-editor.mjs +4 -4
  7. package/{esm2020 → esm2022}/lib/components/cell/cell-editors/input-editor.component.mjs +6 -6
  8. package/{esm2020 → esm2022}/lib/components/cell/cell-editors/select-editor.component.mjs +6 -6
  9. package/{esm2020 → esm2022}/lib/components/cell/cell-editors/textarea-editor.component.mjs +6 -6
  10. package/{esm2020 → esm2022}/lib/components/cell/cell-view-mode/custom-view.component.mjs +6 -6
  11. package/{esm2020 → esm2022}/lib/components/cell/cell-view-mode/view-cell.component.mjs +6 -6
  12. package/{esm2020 → esm2022}/lib/components/cell/cell.component.mjs +8 -8
  13. package/{esm2020 → esm2022}/lib/components/cell/cell.module.mjs +29 -29
  14. package/{esm2020 → esm2022}/lib/components/filter/custom-filter.component.mjs +4 -4
  15. package/{esm2020 → esm2022}/lib/components/filter/default-filter.component.mjs +6 -6
  16. package/{esm2020 → esm2022}/lib/components/filter/filter-default.mjs +4 -4
  17. package/{esm2020 → esm2022}/lib/components/filter/filter-types/checkbox-filter.component.mjs +6 -6
  18. package/{esm2020 → esm2022}/lib/components/filter/filter-types/default-filter.mjs +4 -4
  19. package/{esm2020 → esm2022}/lib/components/filter/filter-types/input-filter.component.mjs +6 -6
  20. package/{esm2020 → esm2022}/lib/components/filter/filter-types/select-filter.component.mjs +6 -6
  21. package/{esm2020 → esm2022}/lib/components/filter/filter.component.mjs +6 -6
  22. package/{esm2020 → esm2022}/lib/components/filter/filter.module.mjs +23 -23
  23. package/{esm2020 → esm2022}/lib/components/pager/pager.component.mjs +6 -6
  24. package/{esm2020 → esm2022}/lib/components/pager/pager.module.mjs +7 -7
  25. package/esm2022/lib/components/tbody/cells/create-cancel.component.mjs +198 -0
  26. package/esm2022/lib/components/tbody/cells/custom.component.mjs +58 -0
  27. package/esm2022/lib/components/tbody/cells/edit-delete.component.mjs +236 -0
  28. package/esm2022/lib/components/tbody/tbody.component.mjs +95 -0
  29. package/{esm2020 → esm2022}/lib/components/tbody/tbody.module.mjs +15 -15
  30. package/{esm2020 → esm2022}/lib/components/thead/cells/actions-title.component.mjs +6 -6
  31. package/{esm2020 → esm2022}/lib/components/thead/cells/actions.component.mjs +6 -6
  32. package/{esm2020 → esm2022}/lib/components/thead/cells/add-button.component.mjs +6 -6
  33. package/{esm2020 → esm2022}/lib/components/thead/cells/checkbox-select-all.component.mjs +6 -6
  34. package/{esm2020 → esm2022}/lib/components/thead/cells/column-title.component.mjs +6 -6
  35. package/{esm2020 → esm2022}/lib/components/thead/cells/title/title.component.mjs +6 -6
  36. package/{esm2020 → esm2022}/lib/components/thead/rows/thead-filters-row.component.mjs +6 -6
  37. package/{esm2020 → esm2022}/lib/components/thead/rows/thead-form-row.component.mjs +6 -6
  38. package/{esm2020 → esm2022}/lib/components/thead/rows/thead-titles-row.component.mjs +6 -6
  39. package/{esm2020 → esm2022}/lib/components/thead/thead.component.mjs +4 -4
  40. package/{esm2020 → esm2022}/lib/components/thead/thead.module.mjs +29 -29
  41. package/esm2022/lib/lib/data-set/cell.mjs +43 -0
  42. package/esm2022/lib/lib/data-set/column.mjs +74 -0
  43. package/esm2022/lib/lib/data-set/row.mjs +47 -0
  44. package/{esm2020 → esm2022}/lib/lib/data-source/local/local.data-source.mjs +1 -1
  45. package/esm2022/lib/lib/grid.mjs +218 -0
  46. package/{esm2020 → esm2022}/lib/lib/helpers.mjs +1 -1
  47. package/{esm2020 → esm2022}/lib/lib/interfaces/smart-table.models.mjs +1 -1
  48. package/{esm2020 → esm2022}/lib/ng2-smart-table.component.mjs +4 -4
  49. package/{esm2020 → esm2022}/lib/ng2-smart-table.module.mjs +19 -19
  50. package/{fesm2020 → fesm2022}/den4ik92-ng2-smart-table.mjs +752 -438
  51. package/fesm2022/den4ik92-ng2-smart-table.mjs.map +1 -0
  52. package/lib/components/cell/cell-edit-mode/edit-cell-default.d.ts +1 -1
  53. package/lib/components/cell/cell-edit-mode/edit-cell.component.d.ts +1 -1
  54. package/lib/components/cell/cell-editors/default-editor.d.ts +1 -1
  55. package/lib/components/cell/cell-view-mode/custom-view.component.d.ts +1 -1
  56. package/lib/components/cell/cell-view-mode/view-cell.component.d.ts +1 -1
  57. package/lib/components/cell/cell.component.d.ts +2 -2
  58. package/lib/components/filter/filter-default.d.ts +1 -1
  59. package/lib/components/filter/filter-types/default-filter.d.ts +1 -1
  60. package/lib/components/pager/pager.component.d.ts +1 -1
  61. package/lib/components/tbody/cells/create-cancel.component.d.ts +4 -4
  62. package/lib/components/tbody/cells/custom.component.d.ts +8 -6
  63. package/lib/components/tbody/cells/edit-delete.component.d.ts +5 -5
  64. package/lib/components/tbody/tbody.component.d.ts +1 -1
  65. package/lib/components/thead/cells/actions-title.component.d.ts +1 -1
  66. package/lib/components/thead/cells/actions.component.d.ts +1 -1
  67. package/lib/components/thead/cells/add-button.component.d.ts +1 -1
  68. package/lib/components/thead/cells/checkbox-select-all.component.d.ts +1 -1
  69. package/lib/components/thead/cells/column-title.component.d.ts +1 -1
  70. package/lib/components/thead/cells/title/title.component.d.ts +1 -1
  71. package/lib/components/thead/rows/thead-filters-row.component.d.ts +1 -1
  72. package/lib/components/thead/rows/thead-form-row.component.d.ts +1 -1
  73. package/lib/components/thead/rows/thead-titles-row.component.d.ts +1 -1
  74. package/lib/components/thead/thead.component.d.ts +1 -1
  75. package/lib/lib/data-set/cell.d.ts +3 -2
  76. package/lib/lib/data-set/column.d.ts +3 -3
  77. package/lib/lib/data-set/row.d.ts +1 -0
  78. package/lib/lib/helpers.d.ts +4 -4
  79. package/lib/lib/interfaces/smart-table.models.d.ts +1 -1
  80. package/lib/ng2-smart-table.component.d.ts +1 -1
  81. package/package.json +8 -14
  82. package/esm2020/lib/components/tbody/cells/create-cancel.component.mjs +0 -53
  83. package/esm2020/lib/components/tbody/cells/custom.component.mjs +0 -49
  84. package/esm2020/lib/components/tbody/cells/edit-delete.component.mjs +0 -85
  85. package/esm2020/lib/components/tbody/tbody.component.mjs +0 -95
  86. package/esm2020/lib/lib/data-set/cell.mjs +0 -41
  87. package/esm2020/lib/lib/data-set/column.mjs +0 -74
  88. package/esm2020/lib/lib/data-set/row.mjs +0 -46
  89. package/esm2020/lib/lib/grid.mjs +0 -211
  90. package/fesm2015/den4ik92-ng2-smart-table.mjs +0 -3175
  91. package/fesm2015/den4ik92-ng2-smart-table.mjs.map +0 -1
  92. package/fesm2020/den4ik92-ng2-smart-table.mjs.map +0 -1
  93. /package/{esm2020 → esm2022}/den4ik92-ng2-smart-table.mjs +0 -0
  94. /package/{esm2020 → esm2022}/lib/components/cell/cell-view-mode/view-cell.mjs +0 -0
  95. /package/{esm2020 → esm2022}/lib/lib/data-set/data-set.mjs +0 -0
  96. /package/{esm2020 → esm2022}/lib/lib/data-source/data-source.mjs +0 -0
  97. /package/{esm2020 → esm2022}/lib/lib/data-source/local/local.filter.mjs +0 -0
  98. /package/{esm2020 → esm2022}/lib/lib/data-source/local/local.pager.mjs +0 -0
  99. /package/{esm2020 → esm2022}/lib/lib/data-source/local/local.sorter.mjs +0 -0
  100. /package/{esm2020 → esm2022}/public-api.mjs +0 -0
@@ -1,95 +0,0 @@
1
- import { Component, Input, Output, EventEmitter } from '@angular/core';
2
- import { Grid } from '../../lib/grid';
3
- import { LocalDataSource } from '../../lib/data-source/local/local.data-source';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "@angular/common";
6
- import * as i2 from "@angular/forms";
7
- import * as i3 from "../cell/cell.component";
8
- import * as i4 from "./cells/create-cancel.component";
9
- import * as i5 from "./cells/edit-delete.component";
10
- import * as i6 from "./cells/custom.component";
11
- export class Ng2SmartTableTbodyComponent {
12
- constructor() {
13
- this.rowClassFunction = () => '';
14
- this.save = new EventEmitter();
15
- this.cancel = new EventEmitter();
16
- this.edit = new EventEmitter();
17
- this.editCancel = new EventEmitter();
18
- this.delete = new EventEmitter();
19
- this.custom = new EventEmitter();
20
- this.edited = new EventEmitter();
21
- this.userSelectRow = new EventEmitter();
22
- this.userClickedRow = new EventEmitter();
23
- this.editRowSelect = new EventEmitter();
24
- this.multipleSelectRow = new EventEmitter();
25
- this.isMultiSelectVisible = false;
26
- this.showActionColumnLeft = false;
27
- this.showActionColumnRight = false;
28
- this.mode = 'inline';
29
- this.editInputClass = '';
30
- this.isActionAdd = false;
31
- this.isActionEdit = false;
32
- this.isActionDelete = false;
33
- this.noDataMessage = false;
34
- }
35
- get tableColumnsCount() {
36
- const actionColumns = this.isActionAdd || this.isActionEdit || this.isActionDelete ? 1 : 0;
37
- return this.grid.getColumns().length + actionColumns;
38
- }
39
- ngOnChanges() {
40
- this.isMultiSelectVisible = this.grid.isMultiSelectVisible();
41
- this.showActionColumnLeft = this.grid.showActionColumn('left');
42
- this.mode = this.grid.getSetting('mode', 'inline');
43
- this.editInputClass = this.grid.getSetting('edit.inputClass', '');
44
- this.showActionColumnRight = this.grid.showActionColumn('right');
45
- this.isActionAdd = this.grid.getSetting('actions.add', false);
46
- this.isActionEdit = this.grid.getSetting('actions.edit', false);
47
- this.isActionDelete = this.grid.getSetting('actions.delete', false);
48
- this.noDataMessage = this.grid.getSetting('noDataMessage');
49
- }
50
- getVisibleCells(cells) {
51
- return (cells || []).filter((cell) => !cell.getColumn().hide);
52
- }
53
- trackByIdOrIndex(index, item) {
54
- return item?.id || index;
55
- }
56
- }
57
- Ng2SmartTableTbodyComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: Ng2SmartTableTbodyComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
58
- Ng2SmartTableTbodyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: Ng2SmartTableTbodyComponent, selector: "[ng2-st-tbody]", inputs: { grid: "grid", source: "source", deleteConfirm: "deleteConfirm", editConfirm: "editConfirm", rowClassFunction: "rowClassFunction" }, outputs: { save: "save", cancel: "cancel", edit: "edit", editCancel: "editCancel", delete: "delete", custom: "custom", edited: "edited", userSelectRow: "userSelectRow", userClickedRow: "userClickedRow", editRowSelect: "editRowSelect", multipleSelectRow: "multipleSelectRow" }, usesOnChanges: true, ngImport: i0, template: "<tr\n *ngFor=\"let row of grid.getRows(); trackBy: trackByIdOrIndex\"\n (click)=\"userClickedRow.emit(row)\"\n class=\"ng2-smart-row\"\n [className]=\"rowClassFunction(row)\"\n [ngClass]=\"{ selected: row.isSelected }\"\n>\n <td\n *ngIf=\"isMultiSelectVisible\"\n class=\"ng2-smart-actions ng2-smart-action-multiple-select\"\n (click)=\"multipleSelectRow.emit(row); $event.stopPropagation()\"\n >\n <input type=\"checkbox\" class=\"form-control\" [ngModel]=\"row.isSelected\" />\n </td>\n <td\n *ngIf=\"!row.isInEditing && showActionColumnLeft\"\n class=\"ng2-smart-actions\"\n (click)=\"$event.stopPropagation()\"\n >\n <ng2-st-tbody-custom\n [grid]=\"grid\"\n (custom)=\"custom.emit($event)\"\n [row]=\"row\"\n [source]=\"source\"\n ></ng2-st-tbody-custom>\n\n <ng2-st-tbody-edit-delete\n [grid]=\"grid\"\n [deleteConfirm]=\"deleteConfirm\"\n [editConfirm]=\"editConfirm\"\n (edit)=\"edit.emit(row)\"\n (delete)=\"delete.emit(row)\"\n (editRowSelect)=\"editRowSelect.emit($event)\"\n [row]=\"row\"\n [source]=\"source\"\n >\n </ng2-st-tbody-edit-delete>\n </td>\n <td *ngIf=\"row.isInEditing && showActionColumnLeft\" class=\"ng2-smart-actions\">\n <ng2-st-tbody-create-cancel\n [grid]=\"grid\"\n [row]=\"row\"\n [editConfirm]=\"editConfirm\"\n [editCancel]=\"editCancel\"\n ></ng2-st-tbody-create-cancel>\n </td>\n <td *ngFor=\"let cell of getVisibleCells(row.cells)\">\n <ng2-smart-table-cell\n [cell]=\"cell\"\n [grid]=\"grid\"\n [row]=\"row\"\n [isNew]=\"false\"\n [mode]=\"mode\"\n [editConfirm]=\"editConfirm\"\n [inputClass]=\"editInputClass\"\n [isInEditing]=\"row.isInEditing\"\n >\n </ng2-smart-table-cell>\n </td>\n\n <td\n *ngIf=\"row.isInEditing && showActionColumnRight\"\n class=\"ng2-smart-actions\"\n >\n <ng2-st-tbody-create-cancel\n [grid]=\"grid\"\n [row]=\"row\"\n [editConfirm]=\"editConfirm\"\n ></ng2-st-tbody-create-cancel>\n </td>\n\n <td\n *ngIf=\"!row.isInEditing && showActionColumnRight\"\n class=\"ng2-smart-actions\"\n >\n <ng2-st-tbody-custom\n [grid]=\"grid\"\n (custom)=\"custom.emit($event)\"\n [row]=\"row\"\n [source]=\"source\"\n ></ng2-st-tbody-custom>\n\n <ng2-st-tbody-edit-delete\n [grid]=\"grid\"\n [deleteConfirm]=\"deleteConfirm\"\n [editConfirm]=\"editConfirm\"\n [row]=\"row\"\n [source]=\"source\"\n (edit)=\"edit.emit(row)\"\n (delete)=\"delete.emit(row)\"\n (editRowSelect)=\"editRowSelect.emit($event)\"\n >\n </ng2-st-tbody-edit-delete>\n </td>\n</tr>\n\n<tr *ngIf=\"grid.getRows().length == 0\">\n <td [attr.colspan]=\"tableColumnsCount\">\n {{ noDataMessage }}\n </td>\n</tr>\n", styles: [":host .ng2-smart-row.selected{background:rgba(0,0,0,.05)}:host .ng2-smart-row .ng2-smart-actions.ng2-smart-action-multiple-select{text-align:center}:host ::ng-deep ng2-st-tbody-edit-delete a:first-child,:host ::ng-deep ng2-st-tbody-create-cancel a:first-child{margin-right:.25rem}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.CellComponent, selector: "ng2-smart-table-cell", inputs: ["grid", "row", "editConfirm", "createConfirm", "isNew", "cell", "inputClass", "mode", "isInEditing"], outputs: ["edited"] }, { kind: "component", type: i4.TbodyCreateCancelComponent, selector: "ng2-st-tbody-create-cancel", inputs: ["grid", "row", "editConfirm", "editCancel"] }, { kind: "component", type: i5.TbodyEditDeleteComponent, selector: "ng2-st-tbody-edit-delete", inputs: ["grid", "row", "source", "deleteConfirm", "editConfirm"], outputs: ["edit", "delete", "editRowSelect"] }, { kind: "component", type: i6.TbodyCustomComponent, selector: "ng2-st-tbody-custom", inputs: ["grid", "row", "source"], outputs: ["custom"] }] });
59
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: Ng2SmartTableTbodyComponent, decorators: [{
60
- type: Component,
61
- args: [{ selector: '[ng2-st-tbody]', template: "<tr\n *ngFor=\"let row of grid.getRows(); trackBy: trackByIdOrIndex\"\n (click)=\"userClickedRow.emit(row)\"\n class=\"ng2-smart-row\"\n [className]=\"rowClassFunction(row)\"\n [ngClass]=\"{ selected: row.isSelected }\"\n>\n <td\n *ngIf=\"isMultiSelectVisible\"\n class=\"ng2-smart-actions ng2-smart-action-multiple-select\"\n (click)=\"multipleSelectRow.emit(row); $event.stopPropagation()\"\n >\n <input type=\"checkbox\" class=\"form-control\" [ngModel]=\"row.isSelected\" />\n </td>\n <td\n *ngIf=\"!row.isInEditing && showActionColumnLeft\"\n class=\"ng2-smart-actions\"\n (click)=\"$event.stopPropagation()\"\n >\n <ng2-st-tbody-custom\n [grid]=\"grid\"\n (custom)=\"custom.emit($event)\"\n [row]=\"row\"\n [source]=\"source\"\n ></ng2-st-tbody-custom>\n\n <ng2-st-tbody-edit-delete\n [grid]=\"grid\"\n [deleteConfirm]=\"deleteConfirm\"\n [editConfirm]=\"editConfirm\"\n (edit)=\"edit.emit(row)\"\n (delete)=\"delete.emit(row)\"\n (editRowSelect)=\"editRowSelect.emit($event)\"\n [row]=\"row\"\n [source]=\"source\"\n >\n </ng2-st-tbody-edit-delete>\n </td>\n <td *ngIf=\"row.isInEditing && showActionColumnLeft\" class=\"ng2-smart-actions\">\n <ng2-st-tbody-create-cancel\n [grid]=\"grid\"\n [row]=\"row\"\n [editConfirm]=\"editConfirm\"\n [editCancel]=\"editCancel\"\n ></ng2-st-tbody-create-cancel>\n </td>\n <td *ngFor=\"let cell of getVisibleCells(row.cells)\">\n <ng2-smart-table-cell\n [cell]=\"cell\"\n [grid]=\"grid\"\n [row]=\"row\"\n [isNew]=\"false\"\n [mode]=\"mode\"\n [editConfirm]=\"editConfirm\"\n [inputClass]=\"editInputClass\"\n [isInEditing]=\"row.isInEditing\"\n >\n </ng2-smart-table-cell>\n </td>\n\n <td\n *ngIf=\"row.isInEditing && showActionColumnRight\"\n class=\"ng2-smart-actions\"\n >\n <ng2-st-tbody-create-cancel\n [grid]=\"grid\"\n [row]=\"row\"\n [editConfirm]=\"editConfirm\"\n ></ng2-st-tbody-create-cancel>\n </td>\n\n <td\n *ngIf=\"!row.isInEditing && showActionColumnRight\"\n class=\"ng2-smart-actions\"\n >\n <ng2-st-tbody-custom\n [grid]=\"grid\"\n (custom)=\"custom.emit($event)\"\n [row]=\"row\"\n [source]=\"source\"\n ></ng2-st-tbody-custom>\n\n <ng2-st-tbody-edit-delete\n [grid]=\"grid\"\n [deleteConfirm]=\"deleteConfirm\"\n [editConfirm]=\"editConfirm\"\n [row]=\"row\"\n [source]=\"source\"\n (edit)=\"edit.emit(row)\"\n (delete)=\"delete.emit(row)\"\n (editRowSelect)=\"editRowSelect.emit($event)\"\n >\n </ng2-st-tbody-edit-delete>\n </td>\n</tr>\n\n<tr *ngIf=\"grid.getRows().length == 0\">\n <td [attr.colspan]=\"tableColumnsCount\">\n {{ noDataMessage }}\n </td>\n</tr>\n", styles: [":host .ng2-smart-row.selected{background:rgba(0,0,0,.05)}:host .ng2-smart-row .ng2-smart-actions.ng2-smart-action-multiple-select{text-align:center}:host ::ng-deep ng2-st-tbody-edit-delete a:first-child,:host ::ng-deep ng2-st-tbody-create-cancel a:first-child{margin-right:.25rem}\n"] }]
62
- }], propDecorators: { grid: [{
63
- type: Input
64
- }], source: [{
65
- type: Input
66
- }], deleteConfirm: [{
67
- type: Input
68
- }], editConfirm: [{
69
- type: Input
70
- }], rowClassFunction: [{
71
- type: Input
72
- }], save: [{
73
- type: Output
74
- }], cancel: [{
75
- type: Output
76
- }], edit: [{
77
- type: Output
78
- }], editCancel: [{
79
- type: Output
80
- }], delete: [{
81
- type: Output
82
- }], custom: [{
83
- type: Output
84
- }], edited: [{
85
- type: Output
86
- }], userSelectRow: [{
87
- type: Output
88
- }], userClickedRow: [{
89
- type: Output
90
- }], editRowSelect: [{
91
- type: Output
92
- }], multipleSelectRow: [{
93
- type: Output
94
- }] } });
95
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGJvZHkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmcyLXNtYXJ0LXRhYmxlL3NyYy9saWIvY29tcG9uZW50cy90Ym9keS90Ym9keS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZzItc21hcnQtdGFibGUvc3JjL2xpYi9jb21wb25lbnRzL3Rib2R5L3Rib2R5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdkUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXRDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQzs7Ozs7Ozs7QUFPaEYsTUFBTSxPQUFPLDJCQUEyQjtJQUx4QztRQVdXLHFCQUFnQixHQUFhLEdBQUUsRUFBRSxDQUFBLEVBQUUsQ0FBQztRQUVuQyxTQUFJLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUMvQixXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUNqQyxTQUFJLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUMvQixlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUNyQyxXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUNqQyxXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUNqQyxXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUNqQyxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFDeEMsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBQ3pDLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUN4QyxzQkFBaUIsR0FBRyxJQUFJLFlBQVksRUFB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QUFNO2dCQUNHLGNBQWM7c0JBQXZCLE1BQU07Z0JBQ0csYUFBYTtzQkFBdEIsTUFBTTtnQkFDRyxpQkFBaUI7c0JBQTFCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBHcmlkIH0gZnJvbSAnLi4vLi4vbGliL2dyaWQnO1xuaW1wb3J0IHsgQ2VsbCB9IGZyb20gJy4uLy4uL2xpYi9kYXRhLXNldC9jZWxsJztcbmltcG9ydCB7IExvY2FsRGF0YVNvdXJjZSB9IGZyb20gJy4uLy4uL2xpYi9kYXRhLXNvdXJjZS9sb2NhbC9sb2NhbC5kYXRhLXNvdXJjZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ1tuZzItc3QtdGJvZHldJyxcbiAgc3R5bGVVcmxzOiBbJy4vdGJvZHkuY29tcG9uZW50LnNjc3MnXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3Rib2R5LmNvbXBvbmVudC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgTmcyU21hcnRUYWJsZVRib2R5Q29tcG9uZW50IHtcblxuICBASW5wdXQoKSBncmlkITogR3JpZDtcbiAgQElucHV0KCkgc291cmNlITogTG9jYWxEYXRhU291cmNlO1xuICBASW5wdXQoKSBkZWxldGVDb25maXJtITogRXZlbnRFbWl0dGVyPGFueT47XG4gIEBJbnB1dCgpIGVkaXRDb25maXJtITogRXZlbnRFbWl0dGVyPGFueT47XG4gIEBJbnB1dCgpIHJvd0NsYXNzRnVuY3Rpb246IEZ1bmN0aW9uID0gKCk9PicnO1xuXG4gIEBPdXRwdXQoKSBzYXZlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBPdXRwdXQoKSBjYW5jZWwgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIGVkaXQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIGVkaXRDYW5jZWwgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIGRlbGV0ZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAT3V0cHV0KCkgY3VzdG9tID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBPdXRwdXQoKSBlZGl0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIHVzZXJTZWxlY3RSb3cgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIHVzZXJDbGlja2VkUm93ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBPdXRwdXQoKSBlZGl0Um93U2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBPdXRwdXQoKSBtdWx0aXBsZVNlbGVjdFJvdyA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIGlzTXVsdGlTZWxlY3RWaXNpYmxlOiBib29sZWFuID0gZmFsc2U7XG4gIHNob3dBY3Rpb25Db2x1bW5MZWZ0OiBib29sZWFuID0gZmFsc2U7XG4gIHNob3dBY3Rpb25Db2x1bW5SaWdodDogYm9vbGVhbiA9IGZhbHNlO1xuICBtb2RlOiAnaW5saW5lJyB8ICdleHRlcm5hbCcgfCAnY2xpY2stdG8tZWRpdCcgPSAnaW5saW5lJztcbiAgZWRpdElucHV0Q2xhc3M6IHN0cmluZyA9ICcnO1xuICBpc0FjdGlvbkFkZDogYm9vbGVhbiA9IGZhbHNlO1xuICBpc0FjdGlvbkVkaXQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgaXNBY3Rpb25EZWxldGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgbm9EYXRhTWVzc2FnZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGdldCB0YWJsZUNvbHVtbnNDb3VudCgpIHtcbiAgICBjb25zdCBhY3Rpb25Db2x1bW5zID0gdGhpcy5pc0FjdGlvbkFkZCB8fCB0aGlzLmlzQWN0aW9uRWRpdCB8fCB0aGlzLmlzQWN0aW9uRGVsZXRlID8gMSA6IDA7XG4gICAgcmV0dXJuIHRoaXMuZ3JpZC5nZXRDb2x1bW5zKCkubGVuZ3RoICsgYWN0aW9uQ29sdW1ucztcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKCkge1xuICAgIHRoaXMuaXNNdWx0aVNlbGVjdFZpc2libGUgPSB0aGlzLmdyaWQuaXNNdWx0aVNlbGVjdFZpc2libGUoKTtcbiAgICB0aGlzLnNob3dBY3Rpb25Db2x1bW5MZWZ0ID0gdGhpcy5ncmlkLnNob3dBY3Rpb25Db2x1bW4oJ2xlZnQnKTtcbiAgICB0aGlzLm1vZGUgPSB0aGlzLmdyaWQuZ2V0U2V0dGluZygnbW9kZScsICdpbmxpbmUnKTtcbiAgICB0aGlzLmVkaXRJbnB1dENsYXNzID0gdGhpcy5ncmlkLmdldFNldHRpbmcoJ2VkaXQuaW5wdXRDbGFzcycsICcnKTtcbiAgICB0aGlzLnNob3dBY3Rpb25Db2x1bW5SaWdodCA9IHRoaXMuZ3JpZC5zaG93QWN0aW9uQ29sdW1uKCdyaWdodCcpO1xuICAgIHRoaXMuaXNBY3Rpb25BZGQgPSB0aGlzLmdyaWQuZ2V0U2V0dGluZygnYWN0aW9ucy5hZGQnLCBmYWxzZSk7XG4gICAgdGhpcy5pc0FjdGlvbkVkaXQgPSB0aGlzLmdyaWQuZ2V0U2V0dGluZygnYWN0aW9ucy5lZGl0JywgZmFsc2UpO1xuICAgIHRoaXMuaXNBY3Rpb25EZWxldGUgPSB0aGlzLmdyaWQuZ2V0U2V0dGluZygnYWN0aW9ucy5kZWxldGUnLCBmYWxzZSk7XG4gICAgdGhpcy5ub0RhdGFNZXNzYWdlID0gdGhpcy5ncmlkLmdldFNldHRpbmcoJ25vRGF0YU1lc3NhZ2UnKTtcbiAgfVxuXG4gIGdldFZpc2libGVDZWxscyhjZWxsczogQ2VsbFtdKTogQ2VsbFtdIHtcbiAgICByZXR1cm4gKGNlbGxzIHx8IFtdKS5maWx0ZXIoKGNlbGw6IENlbGwpID0+ICFjZWxsLmdldENvbHVtbigpLmhpZGUpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHRyYWNrQnlJZE9ySW5kZXgoaW5kZXg6IG51bWJlciwgaXRlbTogYW55KTogc3RyaW5nIHwgbnVtYmVyIHsgICBcbiAgICByZXR1cm4gaXRlbT8uaWQgfHwgaW5kZXg7XG4gIH1cbn1cbiIsIjx0clxuICAqbmdGb3I9XCJsZXQgcm93IG9mIGdyaWQuZ2V0Um93cygpOyB0cmFja0J5OiB0cmFja0J5SWRPckluZGV4XCJcbiAgKGNsaWNrKT1cInVzZXJDbGlja2VkUm93LmVtaXQocm93KVwiXG4gIGNsYXNzPVwibmcyLXNtYXJ0LXJvd1wiXG4gIFtjbGFzc05hbWVdPVwicm93Q2xhc3NGdW5jdGlvbihyb3cpXCJcbiAgW25nQ2xhc3NdPVwieyBzZWxlY3RlZDogcm93LmlzU2VsZWN0ZWQgfVwiXG4+XG4gIDx0ZFxuICAgICpuZ0lmPVwiaXNNdWx0aVNlbGVjdFZpc2libGVcIlxuICAgIGNsYXNzPVwibmcyLXNtYXJ0LWFjdGlvbnMgbmcyLXNtYXJ0LWFjdGlvbi1tdWx0aXBsZS1zZWxlY3RcIlxuICAgIChjbGljayk9XCJtdWx0aXBsZVNlbGVjdFJvdy5lbWl0KHJvdyk7ICRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gID5cbiAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBbbmdNb2RlbF09XCJyb3cuaXNTZWxlY3RlZFwiIC8+XG4gIDwvdGQ+XG4gIDx0ZFxuICAgICpuZ0lmPVwiIXJvdy5pc0luRWRpdGluZyAmJiBzaG93QWN0aW9uQ29sdW1uTGVmdFwiXG4gICAgY2xhc3M9XCJuZzItc21hcnQtYWN0aW9uc1wiXG4gICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gID5cbiAgICA8bmcyLXN0LXRib2R5LWN1c3RvbVxuICAgICAgW2dyaWRdPVwiZ3JpZFwiXG4gICAgICAoY3VzdG9tKT1cImN1c3RvbS5lbWl0KCRldmVudClcIlxuICAgICAgW3Jvd109XCJyb3dcIlxuICAgICAgW3NvdXJjZV09XCJzb3VyY2VcIlxuICAgID48L25nMi1zdC10Ym9keS1jdXN0b20+XG5cbiAgICA8bmcyLXN0LXRib2R5LWVkaXQtZGVsZXRlXG4gICAgICBbZ3JpZF09XCJncmlkXCJcbiAgICAgIFtkZWxldGVDb25maXJtXT1cImRlbGV0ZUNvbmZpcm1cIlxuICAgICAgW2VkaXRDb25maXJtXT1cImVkaXRDb25maXJtXCJcbiAgICAgIChlZGl0KT1cImVkaXQuZW1pdChyb3cpXCJcbiAgICAgIChkZWxldGUpPVwiZGVsZXRlLmVtaXQocm93KVwiXG4gICAgICAoZWRpdFJvd1NlbGVjdCk9XCJlZGl0Um93U2VsZWN0LmVtaXQoJGV2ZW50KVwiXG4gICAgICBbcm93XT1cInJvd1wiXG4gICAgICBbc291cmNlXT1cInNvdXJjZVwiXG4gICAgPlxuICAgIDwvbmcyLXN0LXRib2R5LWVkaXQtZGVsZXRlPlxuICA8L3RkPlxuICA8dGQgKm5nSWY9XCJyb3cuaXNJbkVkaXRpbmcgJiYgc2hvd0FjdGlvbkNvbHVtbkxlZnRcIiBjbGFzcz1cIm5nMi1zbWFydC1hY3Rpb25zXCI+XG4gICAgPG5nMi1zdC10Ym9keS1jcmVhdGUtY2FuY2VsXG4gICAgICBbZ3JpZF09XCJncmlkXCJcbiAgICAgIFtyb3ddPVwicm93XCJcbiAgICAgIFtlZGl0Q29uZmlybV09XCJlZGl0Q29uZmlybVwiXG4gICAgICBbZWRpdENhbmNlbF09XCJlZGl0Q2FuY2VsXCJcbiAgICA+PC9uZzItc3QtdGJvZHktY3JlYXRlLWNhbmNlbD5cbiAgPC90ZD5cbiAgPHRkICpuZ0Zvcj1cImxldCBjZWxsIG9mIGdldFZpc2libGVDZWxscyhyb3cuY2VsbHMpXCI+XG4gICAgPG5nMi1zbWFydC10YWJsZS1jZWxsXG4gICAgICBbY2VsbF09XCJjZWxsXCJcbiAgICAgIFtncmlkXT1cImdyaWRcIlxuICAgICAgW3Jvd109XCJyb3dcIlxuICAgICAgW2lzTmV3XT1cImZhbHNlXCJcbiAgICAgIFttb2RlXT1cIm1vZGVcIlxuICAgICAgW2VkaXRDb25maXJtXT1cImVkaXRDb25maXJtXCJcbiAgICAgIFtpbnB1dENsYXNzXT1cImVkaXRJbnB1dENsYXNzXCJcbiAgICAgIFtpc0luRWRpdGluZ109XCJyb3cuaXNJbkVkaXRpbmdcIlxuICAgID5cbiAgICA8L25nMi1zbWFydC10YWJsZS1jZWxsPlxuICA8L3RkPlxuXG4gIDx0ZFxuICAgICpuZ0lmPVwicm93LmlzSW5FZGl0aW5nICYmIHNob3dBY3Rpb25Db2x1bW5SaWdodFwiXG4gICAgY2xhc3M9XCJuZzItc21hcnQtYWN0aW9uc1wiXG4gID5cbiAgICA8bmcyLXN0LXRib2R5LWNyZWF0ZS1jYW5jZWxcbiAgICAgIFtncmlkXT1cImdyaWRcIlxuICAgICAgW3Jvd109XCJyb3dcIlxuICAgICAgW2VkaXRDb25maXJtXT1cImVkaXRDb25maXJtXCJcbiAgICA+PC9uZzItc3QtdGJvZHktY3JlYXRlLWNhbmNlbD5cbiAgPC90ZD5cblxuICA8dGRcbiAgICAqbmdJZj1cIiFyb3cuaXNJbkVkaXRpbmcgJiYgc2hvd0FjdGlvbkNvbHVtblJpZ2h0XCJcbiAgICBjbGFzcz1cIm5nMi1zbWFydC1hY3Rpb25zXCJcbiAgPlxuICAgIDxuZzItc3QtdGJvZHktY3VzdG9tXG4gICAgICBbZ3JpZF09XCJncmlkXCJcbiAgICAgIChjdXN0b20pPVwiY3VzdG9tLmVtaXQoJGV2ZW50KVwiXG4gICAgICBbcm93XT1cInJvd1wiXG4gICAgICBbc291cmNlXT1cInNvdXJjZVwiXG4gICAgPjwvbmcyLXN0LXRib2R5LWN1c3RvbT5cblxuICAgIDxuZzItc3QtdGJvZHktZWRpdC1kZWxldGVcbiAgICAgIFtncmlkXT1cImdyaWRcIlxuICAgICAgW2RlbGV0ZUNvbmZpcm1dPVwiZGVsZXRlQ29uZmlybVwiXG4gICAgICBbZWRpdENvbmZpcm1dPVwiZWRpdENvbmZpcm1cIlxuICAgICAgW3Jvd109XCJyb3dcIlxuICAgICAgW3NvdXJjZV09XCJzb3VyY2VcIlxuICAgICAgKGVkaXQpPVwiZWRpdC5lbWl0KHJvdylcIlxuICAgICAgKGRlbGV0ZSk9XCJkZWxldGUuZW1pdChyb3cpXCJcbiAgICAgIChlZGl0Um93U2VsZWN0KT1cImVkaXRSb3dTZWxlY3QuZW1pdCgkZXZlbnQpXCJcbiAgICA+XG4gICAgPC9uZzItc3QtdGJvZHktZWRpdC1kZWxldGU+XG4gIDwvdGQ+XG48L3RyPlxuXG48dHIgKm5nSWY9XCJncmlkLmdldFJvd3MoKS5sZW5ndGggPT0gMFwiPlxuICA8dGQgW2F0dHIuY29sc3Bhbl09XCJ0YWJsZUNvbHVtbnNDb3VudFwiPlxuICAgIHt7IG5vRGF0YU1lc3NhZ2UgfX1cbiAgPC90ZD5cbjwvdHI+XG4iXX0=
@@ -1,41 +0,0 @@
1
- export function prepareValue(value) { return value; }
2
- export class Cell {
3
- constructor(value, row, column, dataSet) {
4
- this.value = value;
5
- this.row = row;
6
- this.column = column;
7
- this.dataSet = dataSet;
8
- this.newValue = '';
9
- this.newValue = value;
10
- }
11
- getColumn() {
12
- return this.column;
13
- }
14
- getRow() {
15
- return this.row;
16
- }
17
- getValue() {
18
- const valid = this.column.getValuePrepareFunction() instanceof Function;
19
- const prepare = valid ? this.column.getValuePrepareFunction() : Cell.PREPARE;
20
- return prepare.call(null, this.value, this.row.getData(), this);
21
- }
22
- setValue(value) {
23
- this.newValue = value;
24
- }
25
- getId() {
26
- return this.getColumn().id;
27
- }
28
- getTitle() {
29
- return this.getColumn().title;
30
- }
31
- isEditable() {
32
- if (this.getRow().index === -1) {
33
- return this.getColumn().isAddable;
34
- }
35
- else {
36
- return this.getColumn().isEditable;
37
- }
38
- }
39
- }
40
- Cell.PREPARE = prepareValue;
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nMi1zbWFydC10YWJsZS9zcmMvbGliL2xpYi9kYXRhLXNldC9jZWxsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE1BQU0sVUFBVSxZQUFZLENBQUUsS0FBVSxJQUFJLE9BQU8sS0FBSyxDQUFBLENBQUMsQ0FBQztBQUUxRCxNQUFNLE9BQU8sSUFBSTtJQUtmLFlBQXNCLEtBQVUsRUFBWSxHQUFRLEVBQVksTUFBVyxFQUFZLE9BQWdCO1FBQWpGLFVBQUssR0FBTCxLQUFLLENBQUs7UUFBWSxRQUFHLEdBQUgsR0FBRyxDQUFLO1FBQVksV0FBTSxHQUFOLE1BQU0sQ0FBSztRQUFZLFlBQU8sR0FBUCxPQUFPLENBQVM7UUFIdkcsYUFBUSxHQUFRLEVBQUUsQ0FBQztRQUlqQixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUN4QixDQUFDO0lBRUQsU0FBUztRQUNQLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFDO0lBRUQsTUFBTTtRQUNKLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQztJQUNsQixDQUFDO0lBRUQsUUFBUTtRQUNOLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsdUJBQXVCLEVBQUUsWUFBWSxRQUFRLENBQUM7UUFDeEUsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLHVCQUF1QixFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDN0UsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVELFFBQVEsQ0FBQyxLQUFVO1FBQ2pCLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxLQUFLO1FBQ0gsT0FBTyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRCxRQUFRO1FBQ04sT0FBTyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsS0FBSyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxVQUFVO1FBQ1IsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsS0FBSyxLQUFLLENBQUMsQ0FBQyxFQUFFO1lBQzlCLE9BQU8sSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLFNBQVMsQ0FBQztTQUNuQzthQUNJO1lBQ0gsT0FBTyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsVUFBVSxDQUFDO1NBQ3BDO0lBQ0gsQ0FBQzs7QUF2Q2dCLFlBQU8sR0FBRyxZQUFZLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb2x1bW4gfSBmcm9tICcuL2NvbHVtbic7XG5pbXBvcnQgeyBEYXRhU2V0IH0gZnJvbSAnLi9kYXRhLXNldCc7XG5pbXBvcnQgeyBSb3cgfSBmcm9tICcuL3Jvdyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBwcmVwYXJlVmFsdWUgKHZhbHVlOiBhbnkpIHsgcmV0dXJuIHZhbHVlIH1cblxuZXhwb3J0IGNsYXNzIENlbGwge1xuXG4gIG5ld1ZhbHVlOiBhbnkgPSAnJztcbiAgcHJvdGVjdGVkIHN0YXRpYyBQUkVQQVJFID0gcHJlcGFyZVZhbHVlO1xuXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCB2YWx1ZTogYW55LCBwcm90ZWN0ZWQgcm93OiBSb3csIHByb3RlY3RlZCBjb2x1bW46IGFueSwgcHJvdGVjdGVkIGRhdGFTZXQ6IERhdGFTZXQpIHtcbiAgICB0aGlzLm5ld1ZhbHVlID0gdmFsdWU7XG4gIH1cblxuICBnZXRDb2x1bW4oKTogQ29sdW1uIHtcbiAgICByZXR1cm4gdGhpcy5jb2x1bW47XG4gIH1cblxuICBnZXRSb3coKTogUm93IHtcbiAgICByZXR1cm4gdGhpcy5yb3c7XG4gIH1cblxuICBnZXRWYWx1ZSgpOiBhbnkge1xuICAgIGNvbnN0IHZhbGlkID0gdGhpcy5jb2x1bW4uZ2V0VmFsdWVQcmVwYXJlRnVuY3Rpb24oKSBpbnN0YW5jZW9mIEZ1bmN0aW9uO1xuICAgIGNvbnN0IHByZXBhcmUgPSB2YWxpZCA/IHRoaXMuY29sdW1uLmdldFZhbHVlUHJlcGFyZUZ1bmN0aW9uKCkgOiBDZWxsLlBSRVBBUkU7XG4gICAgcmV0dXJuIHByZXBhcmUuY2FsbChudWxsLCB0aGlzLnZhbHVlLCB0aGlzLnJvdy5nZXREYXRhKCksIHRoaXMpO1xuICB9XG5cbiAgc2V0VmFsdWUodmFsdWU6IGFueSk6IGFueSB7XG4gICAgdGhpcy5uZXdWYWx1ZSA9IHZhbHVlO1xuICB9XG5cbiAgZ2V0SWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5nZXRDb2x1bW4oKS5pZDtcbiAgfVxuXG4gIGdldFRpdGxlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0Q29sdW1uKCkudGl0bGU7XG4gIH1cblxuICBpc0VkaXRhYmxlKCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLmdldFJvdygpLmluZGV4ID09PSAtMSkge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0Q29sdW1uKCkuaXNBZGRhYmxlO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLmdldENvbHVtbigpLmlzRWRpdGFibGU7XG4gICAgfVxuICB9XG5cbn1cbiJdfQ==
@@ -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();
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() {
46
- this.title = this.settings.title;
47
- this.class = this.settings.class || '';
48
- this.width = this.settings.width || '';
49
- this.hide = !!this.settings.hide;
50
- this.type = this.settings.type;
51
- if (this.settings?.editor) {
52
- this.editor = this.settings.editor;
53
- }
54
- if (this.settings?.filter) {
55
- this.filter = this.settings.filter;
56
- }
57
- if (this.settings.type === 'custom' && this.settings.renderComponent) {
58
- this.renderComponent = this.settings.renderComponent;
59
- }
60
- this.isFilterable = typeof this.settings.filter === 'undefined' ? true : !!this.settings['filter'];
61
- this.defaultSortDirection = this.settings?.sortDirection || false;
62
- this.isSortable = typeof this.settings.sort === 'undefined' ? true : this.settings.sort;
63
- this.isEditable = typeof this.settings.editable === 'undefined' ? true : this.settings.editable;
64
- this.isAddable = typeof this.settings.addable === 'undefined' ? true : this.settings.addable;
65
- this.sortDirection = this.prepareSortDirection();
66
- this.compareFunction = this.settings.compareFunction;
67
- this.valuePrepareFunction = this.settings.valuePrepareFunction;
68
- this.filterFunction = this.settings.filterFunction;
69
- }
70
- prepareSortDirection() {
71
- return this.defaultSortDirection === 'desc' ? 'desc' : 'asc';
72
- }
73
- }
74
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmcyLXNtYXJ0LXRhYmxlL3NyYy9saWIvbGliL2RhdGEtc2V0L2NvbHVtbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxNQUFNLE9BQU8sTUFBTTtJQW1CakIsWUFBbUIsRUFBVSxFQUFZLFFBQWtDLEVBQVksT0FBZ0I7UUFBcEYsT0FBRSxHQUFGLEVBQUUsQ0FBUTtRQUFZLGFBQVEsR0FBUixRQUFRLENBQTBCO1FBQVksWUFBTyxHQUFQLE9BQU8sQ0FBUztRQWxCdkcsVUFBSyxHQUFXLEVBQUUsQ0FBQztRQUNuQixTQUFJLEdBQWtDLE1BQU0sQ0FBQztRQUM3QyxVQUFLLEdBQVcsRUFBRSxDQUFDO1FBQ25CLFVBQUssR0FBVyxFQUFFLENBQUM7UUFDbkIsU0FBSSxHQUFZLEtBQUssQ0FBQztRQUN0QixlQUFVLEdBQVksS0FBSyxDQUFDO1FBQzVCLGVBQVUsR0FBWSxJQUFJLENBQUM7UUFDM0IsY0FBUyxHQUFZLElBQUksQ0FBQztRQUMxQixpQkFBWSxHQUFZLEtBQUssQ0FBQztRQUM5QixrQkFBYSxHQUE0QixLQUFLLENBQUM7UUFDL0MseUJBQW9CLEdBQW9DLEtBQUssQ0FBQztRQUM5RCxXQUFNLEdBQXNDLEtBQUssQ0FBQztRQUNsRCxXQUFNLEdBQXNDLEtBQUssQ0FBQztRQU9oRCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUM7SUFDOUIsQ0FBQztJQUVELHVCQUF1QjtRQUNyQixPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQztJQUNuQyxDQUFDO0lBRUQsaUJBQWlCO1FBQ2YsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDO0lBQzdCLENBQUM7SUFFRCxTQUFTO1FBQ1AsSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsSUFBSSxD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RixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1FBRWpELElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUM7UUFDckQsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsb0JBQW9CLENBQUM7UUFDL0QsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQztJQUNyRCxDQUFDO0lBRUQsb0JBQW9CO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixLQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDL0QsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU21hcnRUYWJsZUNvbHVtblNldHRpbmdzLCBTbWFydFRhYmxlQ29sdW1uU2V0dGluZ3NUeXBlcywgU21hcnRUYWJsZUVkaXRvckFuZEZpbHRlclR5cGVzLCBTbWFydFRhYmxlU29ydERpcmVjdGlvbiB9IGZyb20gJy4vLi4vaW50ZXJmYWNlcy9zbWFydC10YWJsZS5tb2RlbHMnO1xuaW1wb3J0IHsgU21hcnRUYWJsZUVkaXRvckFuZEZpbHRlciB9IGZyb20gJy4uL2ludGVyZmFjZXMvc21hcnQtdGFibGUubW9kZWxzJztcbmltcG9ydCB7IERhdGFTZXQgfSBmcm9tICcuL2RhdGEtc2V0JztcblxuZXhwb3J0IGNsYXNzIENvbHVtbiB7XG4gIHRpdGxlOiBzdHJpbmcgPSAnJztcbiAgdHlwZTogU21hcnRUYWJsZUNvbHVtblNldHRpbmdzVHlwZXMgPSAndGV4dCc7XG4gIGNsYXNzOiBzdHJpbmcgPSAnJztcbiAgd2lkdGg6IHN0cmluZyA9ICcnO1xuICBoaWRlOiBib29sZWFuID0gZmFsc2U7XG4gIGlzU29ydGFibGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgaXNFZGl0YWJsZTogYm9vbGVhbiA9IHRydWU7XG4gIGlzQWRkYWJsZTogYm9vbGVhbiA9IHRydWU7XG4gIGlzRmlsdGVyYWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuICBzb3J0RGlyZWN0aW9uOiBTbWFydFRhYmxlU29ydERpcmVjdGlvbiA9ICdhc2MnO1xuICBkZWZhdWx0U29ydERpcmVjdGlvbjogU21hcnRUYWJsZVNvcnREaXJlY3Rpb24gfCBmYWxzZSA9IGZhbHNlO1xuICBlZGl0b3I6IFNtYXJ0VGFibGVFZGl0b3JBbmRGaWx0ZXIgfCBmYWxzZSA9IGZhbHNlO1xuICBmaWx0ZXI6IFNtYXJ0VGFibGVFZGl0b3JBbmRGaWx0ZXIgfCBmYWxzZSA9IGZhbHNlO1xuICByZW5kZXJDb21wb25lbnQ6IGFueTtcbiAgY29tcGFyZUZ1bmN0aW9uOiBGdW5jdGlvbiB8IHVuZGVmaW5lZDtcbiAgdmFsdWVQcmVwYXJlRnVuY3Rpb246IEZ1bmN0aW9uIHwgdW5kZWZpbmVkO1xuICBmaWx0ZXJGdW5jdGlvbjogRnVuY3Rpb24gfCB1bmRlZmluZWQ7XG5cbiAgY29uc3RydWN0b3IocHVibGljIGlkOiBzdHJpbmcsIHByb3RlY3RlZCBzZXR0aW5nczogU21hcnRUYWJsZUNvbHVtblNldHRpbmdzLCBwcm90ZWN0ZWQgZGF0YVNldDogRGF0YVNldCkge1xuICAgIHRoaXMucHJvY2VzcygpO1xuICB9XG5cbiAgZ2V0Q29tcGFyZUZ1bmN0aW9uKCk6IEZ1bmN0aW9uIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5jb21wYXJlRnVuY3Rpb247XG4gIH1cblxuICBnZXRWYWx1ZVByZXBhcmVGdW5jdGlvbigpOiBGdW5jdGlvbiB8IHVuZGVmaW5lZCAge1xuICAgIHJldHVybiB0aGlzLnZhbHVlUHJlcGFyZUZ1bmN0aW9uO1xuICB9XG5cbiAgZ2V0RmlsdGVyRnVuY3Rpb24oKTogRnVuY3Rpb24gfCB1bmRlZmluZWQgIHtcbiAgICByZXR1cm4gdGhpcy5maWx0ZXJGdW5jdGlvbjtcbiAgfVxuXG4gIGdldENvbmZpZygpOiBhbnkge1xuICAgIGlmICh0aGlzLmVkaXRvciAmJiAodGhpcy5lZGl0b3IudHlwZSA9PT0gJ2NoZWNrYm94JyB8fCB0aGlzLmVkaXRvci50eXBlID09PSAnY3VzdG9tJyB8fCB0aGlzLmVkaXRvci50eXBlID09PSAnbGlzdCcpKSB7XG4gICAgICByZXR1cm4gdGhpcy5lZGl0b3I/LmNvbmZpZ1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIGdldEZpbHRlclR5cGUoKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5maWx0ZXIgJiYgdGhpcy5maWx0ZXIudHlwZTtcbiAgfVxuXG4gIGdldEZpbHRlckNvbmZpZygpOiBhbnkge1xuICAgIGlmICh0aGlzLmZpbHRlciAmJiAodGhpcy5maWx0ZXIudHlwZSA9PT0gJ2NoZWNrYm94JyB8fCB0aGlzLmZpbHRlci50eXBlID09PSAnY3VzdG9tJyB8fCB0aGlzLmZpbHRlci50eXBlID09PSAnbGlzdCcpKSB7XG4gICAgICByZXR1cm4gdGhpcy5maWx0ZXI/LmNvbmZpZ1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwcm90ZWN0ZWQgcHJvY2VzcygpIHtcbiAgICB0aGlzLnRpdGxlID0gdGhpcy5zZXR0aW5ncy50aXRsZTtcbiAgICB0aGlzLmNsYXNzID0gdGhpcy5zZXR0aW5ncy5jbGFzcyB8fCAnJztcbiAgICB0aGlzLndpZHRoID0gdGhpcy5zZXR0aW5ncy53aWR0aCB8fCAnJztcbiAgICB0aGlzLmhpZGUgPSAhIXRoaXMuc2V0dGluZ3MuaGlkZTtcbiAgICB0aGlzLnR5cGUgPSB0aGlzLnNldHRpbmdzLnR5cGU7XG4gICAgaWYgKHRoaXMuc2V0dGluZ3M/LmVkaXRvcikge1xuICAgICAgdGhpcy5lZGl0b3IgPSB0aGlzLnNldHRpbmdzLmVkaXRvcjtcbiAgICB9ICAgIFxuICAgIGlmICh0aGlzLnNldHRpbmdzPy5maWx0ZXIpIHtcbiAgICAgIHRoaXMuZmlsdGVyID0gdGhpcy5zZXR0aW5ncy5maWx0ZXI7XG4gICAgfVxuICAgIGlmICh0aGlzLnNldHRpbmdzLnR5cGUgPT09ICdjdXN0b20nICYmIHRoaXMuc2V0dGluZ3MucmVuZGVyQ29tcG9uZW50KSB7XG4gICAgICB0aGlzLnJlbmRlckNvbXBvbmVudCA9IHRoaXMuc2V0dGluZ3MucmVuZGVyQ29tcG9uZW50O1xuICAgIH1cbiAgICB0aGlzLmlzRmlsdGVyYWJsZSA9IHR5cGVvZiB0aGlzLnNldHRpbmdzLmZpbHRlciA9PT0gJ3VuZGVmaW5lZCcgPyB0cnVlIDogISF0aGlzLnNldHRpbmdzWydmaWx0ZXInXTtcbiAgICB0aGlzLmRlZmF1bHRTb3J0RGlyZWN0aW9uID0gdGhpcy5zZXR0aW5ncz8uc29ydERpcmVjdGlvbiB8fCBmYWxzZTtcbiAgICB0aGlzLmlzU29ydGFibGUgPSB0eXBlb2YgdGhpcy5zZXR0aW5ncy5zb3J0ID09PSAndW5kZWZpbmVkJyA/IHRydWUgOiB0aGlzLnNldHRpbmdzLnNvcnQ7XG4gICAgdGhpcy5pc0VkaXRhYmxlID0gdHlwZW9mIHRoaXMuc2V0dGluZ3MuZWRpdGFibGUgPT09ICd1bmRlZmluZWQnID8gdHJ1ZSA6IHRoaXMuc2V0dGluZ3MuZWRpdGFibGU7XG4gICAgdGhpcy5pc0FkZGFibGU9dHlwZW9mIHRoaXMuc2V0dGluZ3MuYWRkYWJsZSA9PT0gJ3VuZGVmaW5lZCcgPyB0cnVlIDogdGhpcy5zZXR0aW5ncy5hZGRhYmxlO1xuICAgIHRoaXMuc29ydERpcmVjdGlvbiA9IHRoaXMucHJlcGFyZVNvcnREaXJlY3Rpb24oKTtcblxuICAgIHRoaXMuY29tcGFyZUZ1bmN0aW9uID0gdGhpcy5zZXR0aW5ncy5jb21wYXJlRnVuY3Rpb247XG4gICAgdGhpcy52YWx1ZVByZXBhcmVGdW5jdGlvbiA9IHRoaXMuc2V0dGluZ3MudmFsdWVQcmVwYXJlRnVuY3Rpb247XG4gICAgdGhpcy5maWx0ZXJGdW5jdGlvbiA9IHRoaXMuc2V0dGluZ3MuZmlsdGVyRnVuY3Rpb247XG4gIH1cblxuICBwcmVwYXJlU29ydERpcmVjdGlvbigpOiBTbWFydFRhYmxlU29ydERpcmVjdGlvbiB7XG4gICAgcmV0dXJuIHRoaXMuZGVmYXVsdFNvcnREaXJlY3Rpb24gPT09ICdkZXNjJyA/ICdkZXNjJyA6ICdhc2MnO1xuICB9XG59XG4iXX0=
@@ -1,46 +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.isSelected = false;
8
- this.isInEditing = false;
9
- this.cells = [];
10
- this.process();
11
- }
12
- getCell(column) {
13
- return this.cells.find(el => el.getColumn() === column);
14
- }
15
- getCells() {
16
- return this.cells;
17
- }
18
- getData() {
19
- return this.data;
20
- }
21
- getIsSelected() {
22
- return this.isSelected;
23
- }
24
- getNewData() {
25
- const values = Object.assign({}, this.data);
26
- this.getCells().forEach((cell) => values[cell.getColumn().id] = cell.newValue);
27
- return values;
28
- }
29
- setData(data) {
30
- this.data = data;
31
- this.process();
32
- }
33
- process() {
34
- this.cells = [];
35
- this._dataSet.getColumns().forEach((column) => {
36
- const cell = this.createCell(column);
37
- this.cells.push(cell);
38
- });
39
- }
40
- createCell(column) {
41
- const defValue = column.settings.defaultValue ? column.settings.defaultValue : '';
42
- const value = typeof this.data[column.id] === 'undefined' ? defValue : this.data[column.id];
43
- return new Cell(value, this, column, this._dataSet);
44
- }
45
- }
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm93LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmcyLXNtYXJ0LXRhYmxlL3NyYy9saWIvbGliL2RhdGEtc2V0L3Jvdy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBSTlCLE1BQU0sT0FBTyxHQUFHO0lBT2QsWUFBbUIsS0FBYSxFQUFZLElBQVMsRUFBWSxRQUFpQjtRQUEvRCxVQUFLLEdBQUwsS0FBSyxDQUFRO1FBQVksU0FBSSxHQUFKLElBQUksQ0FBSztRQUFZLGFBQVEsR0FBUixRQUFRLENBQVM7UUFMbEYsZUFBVSxHQUFZLEtBQUssQ0FBQztRQUM1QixnQkFBVyxHQUFZLEtBQUssQ0FBQztRQUM3QixVQUFLLEdBQVcsRUFBRSxDQUFDO1FBSWpCLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBRUQsT0FBTyxDQUFDLE1BQWM7UUFDcEIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxTQUFTLEVBQUUsS0FBSyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRUQsUUFBUTtRQUNOLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBRUQsT0FBTztRQUNMLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztJQUNuQixDQUFDO0lBRUQsYUFBYTtRQUNYLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUN6QixDQUFDO0lBRUQsVUFBVTtRQUNSLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM1QyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMvRSxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsT0FBTyxDQUFRLElBQU87UUFDcEIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDakIsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ2pCLENBQUM7SUFFRCxPQUFPO1FBQ0wsSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7UUFDaEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFjLEVBQUUsRUFBRTtZQUNwRCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3JDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFVBQVUsQ0FBQyxNQUFjO1FBQ3ZCLE1BQU0sUUFBUSxHQUFJLE1BQWMsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBRSxNQUFjLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3BHLE1BQU0sS0FBSyxHQUFHLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzVGLE9BQU8sSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3RELENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENlbGwgfSBmcm9tICcuL2NlbGwnO1xuaW1wb3J0IHsgQ29sdW1uIH0gZnJvbSAnLi9jb2x1bW4nO1xuaW1wb3J0IHsgRGF0YVNldCB9IGZyb20gJy4vZGF0YS1zZXQnO1xuXG5leHBvcnQgY2xhc3MgUm93IHtcblxuICBpc1NlbGVjdGVkOiBib29sZWFuID0gZmFsc2U7XG4gIGlzSW5FZGl0aW5nOiBib29sZWFuID0gZmFsc2U7XG4gIGNlbGxzOiBDZWxsW10gPSBbXTtcblxuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBpbmRleDogbnVtYmVyLCBwcm90ZWN0ZWQgZGF0YTogYW55LCBwcm90ZWN0ZWQgX2RhdGFTZXQ6IERhdGFTZXQpIHtcbiAgICB0aGlzLnByb2Nlc3MoKTtcbiAgfVxuXG4gIGdldENlbGwoY29sdW1uOiBDb2x1bW4pOiBDZWxsIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5jZWxscy5maW5kKGVsID0+IGVsLmdldENvbHVtbigpID09PSBjb2x1bW4pO1xuICB9XG5cbiAgZ2V0Q2VsbHMoKTogQ2VsbFtdIHtcbiAgICByZXR1cm4gdGhpcy5jZWxscztcbiAgfVxuXG4gIGdldERhdGEoKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5kYXRhO1xuICB9XG5cbiAgZ2V0SXNTZWxlY3RlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5pc1NlbGVjdGVkO1xuICB9XG5cbiAgZ2V0TmV3RGF0YSgpOiBhbnkge1xuICAgIGNvbnN0IHZhbHVlcyA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMuZGF0YSk7XG4gICAgdGhpcy5nZXRDZWxscygpLmZvckVhY2goKGNlbGwpID0+IHZhbHVlc1tjZWxsLmdldENvbHVtbigpLmlkXSA9IGNlbGwubmV3VmFsdWUpO1xuICAgIHJldHVybiB2YWx1ZXM7XG4gIH1cblxuICBzZXREYXRhPFQ9YW55PihkYXRhOiBUKTogdm9pZCB7XG4gICAgdGhpcy5kYXRhID0gZGF0YTtcbiAgICB0aGlzLnByb2Nlc3MoKTtcbiAgfVxuXG4gIHByb2Nlc3MoKTogdm9pZCB7XG4gICAgdGhpcy5jZWxscyA9IFtdO1xuICAgIHRoaXMuX2RhdGFTZXQuZ2V0Q29sdW1ucygpLmZvckVhY2goKGNvbHVtbjogQ29sdW1uKSA9PiB7XG4gICAgICBjb25zdCBjZWxsID0gdGhpcy5jcmVhdGVDZWxsKGNvbHVtbik7XG4gICAgICB0aGlzLmNlbGxzLnB1c2goY2VsbCk7XG4gICAgfSk7XG4gIH1cblxuICBjcmVhdGVDZWxsKGNvbHVtbjogQ29sdW1uKTogQ2VsbCB7XG4gICAgY29uc3QgZGVmVmFsdWUgPSAoY29sdW1uIGFzIGFueSkuc2V0dGluZ3MuZGVmYXVsdFZhbHVlID8gKGNvbHVtbiBhcyBhbnkpLnNldHRpbmdzLmRlZmF1bHRWYWx1ZSA6ICcnO1xuICAgIGNvbnN0IHZhbHVlID0gdHlwZW9mIHRoaXMuZGF0YVtjb2x1bW4uaWRdID09PSAndW5kZWZpbmVkJyA/IGRlZlZhbHVlIDogdGhpcy5kYXRhW2NvbHVtbi5pZF07XG4gICAgcmV0dXJuIG5ldyBDZWxsKHZhbHVlLCB0aGlzLCBjb2x1bW4sIHRoaXMuX2RhdGFTZXQpO1xuICB9XG59XG4iXX0=
@@ -1,211 +0,0 @@
1
- import { Subject } from "rxjs";
2
- import { Deferred, getDeepFromObject } from "./helpers";
3
- import { DataSet } from "./data-set/data-set";
4
- export class Grid {
5
- constructor(source, settings) {
6
- this.createFormShown = false;
7
- this.onSelectRowSource = new Subject();
8
- this.onDeselectRowSource = new Subject();
9
- this.setSettings(settings);
10
- this.setSource(source);
11
- }
12
- detach() {
13
- if (this.sourceOnChangedSubscription) {
14
- this.sourceOnChangedSubscription.unsubscribe();
15
- }
16
- if (this.sourceOnUpdatedSubscription) {
17
- this.sourceOnUpdatedSubscription.unsubscribe();
18
- }
19
- }
20
- showActionColumn(position) {
21
- return this.isCurrentActionsPosition(position) && this.isActionsVisible();
22
- }
23
- isCurrentActionsPosition(position) {
24
- return position == this.getSetting("actions.position");
25
- }
26
- isActionsVisible() {
27
- return (this.getSetting("actions.add", false) ||
28
- this.getSetting("actions.edit", false) ||
29
- this.getSetting("actions.delete", false) ||
30
- !!this.getSetting("actions.custom", [])?.length);
31
- }
32
- isMultiSelectVisible() {
33
- return this.getSetting("selectMode") === "multi";
34
- }
35
- getNewRow() {
36
- return this.dataSet.newRow;
37
- }
38
- setSettings(settings) {
39
- this.settings = settings;
40
- this.dataSet = new DataSet([], this.getSetting("columns"));
41
- if (this.source) {
42
- this.source.refresh();
43
- }
44
- }
45
- getDataSet() {
46
- return this.dataSet;
47
- }
48
- setSource(source) {
49
- this.source = this.prepareSource(source);
50
- this.detach();
51
- this.sourceOnChangedSubscription = this.source
52
- .onChanged()
53
- .subscribe((changes) => this.processDataChange(changes));
54
- this.sourceOnUpdatedSubscription = this.source
55
- .onUpdated()
56
- .subscribe((data) => {
57
- const changedRow = this.dataSet.findRowByData(data);
58
- if (changedRow) {
59
- changedRow.setData(data);
60
- }
61
- });
62
- }
63
- getSetting(name, defaultValue) {
64
- return getDeepFromObject(this.settings, name, defaultValue);
65
- }
66
- getColumns() {
67
- return this.dataSet.getColumns();
68
- }
69
- getRows() {
70
- return this.dataSet.getRows();
71
- }
72
- selectRow(row, state) {
73
- this.dataSet.selectRow(row, state);
74
- }
75
- multipleSelectRow(row) {
76
- this.dataSet.multipleSelectRow(row);
77
- }
78
- onSelectRow() {
79
- return this.onSelectRowSource.asObservable();
80
- }
81
- onDeselectRow() {
82
- return this.onDeselectRowSource.asObservable();
83
- }
84
- edit(row) {
85
- row.isInEditing = true;
86
- }
87
- create(row, confirmEmitter) {
88
- const deferred = new Deferred();
89
- deferred.promise
90
- .then((newData) => {
91
- newData = newData ? newData : row.getNewData();
92
- this.source.prepend(newData).then(() => {
93
- this.createFormShown = false;
94
- this.dataSet.createNewRow();
95
- });
96
- })
97
- .catch((err) => {
98
- // doing nothing
99
- });
100
- if (this.getSetting("add.confirmCreate")) {
101
- confirmEmitter.emit({
102
- newData: row.getNewData(),
103
- source: this.source,
104
- confirm: deferred,
105
- });
106
- }
107
- else {
108
- deferred.resolve();
109
- }
110
- }
111
- save(row, confirmEmitter) {
112
- const deferred = new Deferred();
113
- deferred.promise
114
- .then((newData) => {
115
- newData = newData ? newData : row.getNewData();
116
- this.source.update(row.getData(), newData).then(() => {
117
- row.isInEditing = false;
118
- });
119
- })
120
- .catch((err) => {
121
- // doing nothing
122
- });
123
- if (this.getSetting("edit.confirmSave")) {
124
- confirmEmitter.emit({
125
- data: row.getData(),
126
- newData: row.getNewData(),
127
- source: this.source,
128
- confirm: deferred,
129
- });
130
- }
131
- else {
132
- deferred.resolve();
133
- }
134
- }
135
- delete(row, confirmEmitter) {
136
- const deferred = new Deferred();
137
- deferred.promise
138
- .then(() => {
139
- this.source.remove(row.getData());
140
- })
141
- .catch((err) => {
142
- // doing nothing
143
- });
144
- if (this.getSetting("delete.confirmDelete")) {
145
- confirmEmitter.emit({
146
- data: row.getData(),
147
- source: this.source,
148
- confirm: deferred,
149
- });
150
- }
151
- else {
152
- deferred.resolve();
153
- }
154
- if (row.isSelected) {
155
- this.dataSet.selectRow(row, false);
156
- }
157
- }
158
- processDataChange(changes) {
159
- if (this.shouldProcessChange(changes)) {
160
- if (changes["action"] === "load") {
161
- this.dataSet.deselectAll();
162
- }
163
- this.dataSet.setData(changes["elements"]);
164
- }
165
- }
166
- shouldProcessChange(changes) {
167
- if (["filter", "sort", "page", "remove", "refresh", "load", "paging"].indexOf(changes["action"]) !== -1) {
168
- return true;
169
- }
170
- else if (["prepend", "append"].indexOf(changes["action"]) !== -1 &&
171
- !this.getSetting("pager.display")) {
172
- return true;
173
- }
174
- return false;
175
- }
176
- prepareSource(source) {
177
- const initialSort = this.getInitialSort();
178
- if (initialSort) {
179
- source.setSort([initialSort], false);
180
- }
181
- if (this.getSetting("pager.display") === true) {
182
- source.setPaging(1, this.getSetting("pager.perPage"), false);
183
- }
184
- source.refresh();
185
- return source;
186
- }
187
- getInitialSort() {
188
- const defaultSortColumn = this.getColumns().find((column) => column.isSortable && column.defaultSortDirection);
189
- if (!defaultSortColumn) {
190
- return false;
191
- }
192
- return {
193
- field: defaultSortColumn.id,
194
- direction: defaultSortColumn.defaultSortDirection || "asc",
195
- compare: defaultSortColumn.getCompareFunction(),
196
- };
197
- }
198
- getSelectedRowsData() {
199
- return this.dataSet.getRows();
200
- }
201
- selectAllRows(status) {
202
- this.dataSet.setSelectAll(status);
203
- }
204
- getFirstRow() {
205
- return this.dataSet.getFirstRow();
206
- }
207
- getLastRow() {
208
- return this.dataSet.getLastRow();
209
- }
210
- }
211
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nMi1zbWFydC10YWJsZS9zcmMvbGliL2xpYi9ncmlkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxPQUFPLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBSTdDLE9BQU8sRUFBRSxRQUFRLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFHeEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBTzlDLE1BQU0sT0FBTyxJQUFJO0lBYWYsWUFBWSxNQUF1QixFQUFFLFFBQTRCO1FBWmpFLG9CQUFlLEdBQVksS0FBSyxDQUFDO1FBTWpDLHNCQUFpQixHQUFHLElBQUksT0FBTyxFQUFPLENBQUM7UUFDdkMsd0JBQW1CLEdBQUcsSUFBSSxPQUFPLEVBQU8sQ0FBQztRQU12QyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzNCLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLElBQUksQ0FBQywyQkFBMkIsRUFBRTtZQUNwQyxJQUFJLENBQUMsMkJBQTJCLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDaEQ7UUFDRCxJQUFJLElBQUksQ0FBQywyQkFBMkIsRUFBRTtZQUNwQyxJQUFJLENBQUMsMkJBQTJCLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDaEQ7SUFDSCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsUUFBZ0I7UUFDL0IsT0FBTyxJQUFJLENBQUMsd0JBQXdCLENBQUMsUUFBUSxDQUFDLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDNUUsQ0FBQztJQUVELHdCQUF3QixDQUFDLFFBQWdCO1FBQ3ZDLE9BQU8sUUFBUSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUN6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O0lBRUQsVUFBVTtRQUNSLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMb2NhbERhdGFTb3VyY2UgfSBmcm9tIFwiLi9kYXRhLXNvdXJjZS9sb2NhbC9sb2NhbC5kYXRhLXNvdXJjZVwiO1xuaW1wb3J0IHsgU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHsgRXZlbnRFbWl0dGVyIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcblxuaW1wb3J0IHsgRGVmZXJyZWQsIGdldERlZXBGcm9tT2JqZWN0IH0gZnJvbSBcIi4vaGVscGVyc1wiO1xuaW1wb3J0IHsgQ29sdW1uIH0gZnJvbSBcIi4vZGF0YS1zZXQvY29sdW1uXCI7XG5pbXBvcnQgeyBSb3cgfSBmcm9tIFwiLi9kYXRhLXNldC9yb3dcIjtcbmltcG9ydCB7IERhdGFTZXQgfSBmcm9tIFwiLi9kYXRhLXNldC9kYXRhLXNldFwiO1xuaW1wb3J0IHtcbiAgU21hcnRUYWJsZVNldHRpbmdzLFxuICBTbWFydFRhYmxlQ29sdW1uU2V0dGluZ3MsXG4gIFNtYXJ0VGFibGVTb3J0SXRlbSxcbn0gZnJvbSBcIi4vaW50ZXJmYWNlcy9zbWFydC10YWJsZS5tb2RlbHNcIjtcblxuZXhwb3J0IGNsYXNzIEdyaWQge1xuICBjcmVhdGVGb3JtU2hvd246IGJvb2xlYW4gPSBmYWxzZTtcblxuICBzb3VyY2UhOiBMb2NhbERhdGFTb3VyY2U7XG4gIHNldHRpbmdzITogU21hcnRUYWJsZVNldHRpbmdzO1xuICBkYXRhU2V0ITogRGF0YVNldDtcblxuICBvblNlbGVjdFJvd1NvdXJjZSA9IG5ldyBTdWJqZWN0PGFueT4oKTtcbiAgb25EZXNlbGVjdFJvd1NvdXJjZSA9IG5ldyBTdWJqZWN0PGFueT4oKTtcblxuICBwcml2YXRlIHNvdXJjZU9uQ2hhbmdlZFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uIHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIHNvdXJjZU9uVXBkYXRlZFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uIHwgdW5kZWZpbmVkO1xuXG4gIGNvbnN0cnVjdG9yKHNvdXJjZTogTG9jYWxEYXRhU291cmNlLCBzZXR0aW5nczogU21hcnRUYWJsZVNldHRpbmdzKSB7XG4gICAgdGhpcy5zZXRTZXR0aW5ncyhzZXR0aW5ncyk7XG4gICAgdGhpcy5zZXRTb3VyY2Uoc291cmNlKTtcbiAgfVxuXG4gIGRldGFjaCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zb3VyY2VPbkNoYW5nZWRTdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMuc291cmNlT25DaGFuZ2VkU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICAgIGlmICh0aGlzLnNvdXJjZU9uVXBkYXRlZFN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5zb3VyY2VPblVwZGF0ZWRTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBzaG93QWN0aW9uQ29sdW1uKHBvc2l0aW9uOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5pc0N1cnJlbnRBY3Rpb25zUG9zaXRpb24ocG9zaXRpb24pICYmIHRoaXMuaXNBY3Rpb25zVmlzaWJsZSgpO1xuICB9XG5cbiAgaXNDdXJyZW50QWN0aW9uc1Bvc2l0aW9uKHBvc2l0aW9uOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gcG9zaXRpb24gPT0gdGhpcy5nZXRTZXR0aW5nKFwiYWN0aW9ucy5wb3NpdGlvblwiKTtcbiAgfVxuXG4gIGlzQWN0aW9uc1Zpc2libGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuZ2V0U2V0dGluZzxib29sZWFuPihcImFjdGlvbnMuYWRkXCIsIGZhbHNlKSB8fFxuICAgICAgdGhpcy5nZXRTZXR0aW5nPGJvb2xlYW4+KFwiYWN0aW9ucy5lZGl0XCIsIGZhbHNlKSB8fFxuICAgICAgdGhpcy5nZXRTZXR0aW5nPGJvb2xlYW4+KFwiYWN0aW9ucy5kZWxldGVcIiwgZmFsc2UpIHx8XG4gICAgICAhIXRoaXMuZ2V0U2V0dGluZzxbXT4oXCJhY3Rpb25zLmN1c3RvbVwiLCBbXSk/Lmxlbmd0aFxuICAgICk7XG4gIH1cblxuICBpc011bHRpU2VsZWN0VmlzaWJsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5nZXRTZXR0aW5nKFwic2VsZWN0TW9kZVwiKSA9PT0gXCJtdWx0aVwiO1xuICB9XG5cbiAgZ2V0TmV3Um93KCk6IFJvdyB7XG4gICAgcmV0dXJuIHRoaXMuZGF0YVNldC5uZXdSb3c7XG4gIH1cblxuICBzZXRTZXR0aW5ncyhzZXR0aW5nczogU21hcnRUYWJsZVNldHRpbmdzKSB7XG4gICAgdGhpcy5zZXR0aW5ncyA9IHNldHRpbmdzO1xuICAgIHRoaXMuZGF0YVNldCA9IG5ldyBEYXRhU2V0KFxuICAgICAgW10sXG4gICAgICB0aGlzLmdldFNldHRpbmc8U21hcnRUYWJsZUNvbHVtblNldHRpbmdzW10+KFwiY29sdW1uc1wiKVxuICAgICk7XG5cbiAgICBpZiAodGhpcy5zb3VyY2UpIHtcbiAgICAgIHRoaXMuc291cmNlLnJlZnJlc2goKTtcbiAgICB9XG4gIH1cblxuICBnZXREYXRhU2V0KCk6IERhdGFTZXQge1xuICAgIHJldHVybiB0aGlzLmRhdGFTZXQ7XG4gIH1cblxuICBzZXRTb3VyY2Uoc291cmNlOiBMb2NhbERhdGFTb3VyY2UpIHtcbiAgICB0aGlzLnNvdXJjZSA9IHRoaXMucHJlcGFyZVNvdXJjZShzb3VyY2UpO1xuICAgIHRoaXMuZGV0YWNoKCk7XG5cbiAgICB0aGlzLnNvdXJjZU9uQ2hhbmdlZFN1YnNjcmlwdGlvbiA9IHRoaXMuc291cmNlXG4gICAgICAub25DaGFuZ2VkKClcbiAgICAgIC5zdWJzY3JpYmUoKGNoYW5nZXM6IGFueSkgPT4gdGhpcy5wcm9jZXNzRGF0YUNoYW5nZShjaGFuZ2VzKSk7XG5cbiAgICB0aGlzLnNvdXJjZU9uVXBkYXRlZFN1YnNjcmlwdGlvbiA9IHRoaXMuc291cmNlXG4gICAgICAub25VcGRhdGVkKClcbiAgICAgIC5zdWJzY3JpYmUoKGRhdGE6IGFueSkgPT4ge1xuICAgICAgICBjb25zdCBjaGFuZ2VkUm93ID0gdGhpcy5kYXRhU2V0LmZpbmRSb3dCeURhdGEoZGF0YSk7XG4gICAgICAgIGlmIChjaGFuZ2VkUm93KSB7XG4gICAgICAgICAgY2hhbmdlZFJvdy5zZXREYXRhKGRhdGEpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIGdldFNldHRpbmc8VD4obmFtZTogc3RyaW5nLCBkZWZhdWx0VmFsdWU/OiBhbnkpOiBUIHtcbiAgICByZXR1cm4gZ2V0RGVlcEZyb21PYmplY3QodGhpcy5zZXR0aW5ncywgbmFtZSwgZGVmYXVsdFZhbHVlKTtcbiAgfVxuXG4gIGdldENvbHVtbnMoKTogQXJyYXk8Q29sdW1uPiB7XG4gICAgcmV0dXJuIHRoaXMuZGF0YVNldC5nZXRDb2x1bW5zKCk7XG4gIH1cblxuICBnZXRSb3dzKCk6IEFycmF5PFJvdz4ge1xuICAgIHJldHVybiB0aGlzLmRhdGFTZXQuZ2V0Um93cygpO1xuICB9XG5cbiAgc2VsZWN0Um93KHJvdzogUm93LCBzdGF0ZTogYm9vbGVhbikge1xuICAgIHRoaXMuZGF0YVNldC5zZWxlY3RSb3cocm93LCBzdGF0ZSk7XG4gIH1cblxuICBtdWx0aXBsZVNlbGVjdFJvdyhyb3c6IFJvdykge1xuICAgIHRoaXMuZGF0YVNldC5tdWx0aXBsZVNlbGVjdFJvdyhyb3cpO1xuICB9XG5cbiAgb25TZWxlY3RSb3coKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5vblNlbGVjdFJvd1NvdXJjZS5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIG9uRGVzZWxlY3RSb3coKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5vbkRlc2VsZWN0Um93U291cmNlLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgZWRpdChyb3c6IFJvdykge1xuICAgIHJvdy5pc0luRWRpdGluZyA9IHRydWU7XG4gIH1cblxuICBjcmVhdGUocm93OiBSb3csIGNvbmZpcm1FbWl0dGVyOiBFdmVudEVtaXR0ZXI8YW55Pikge1xuICAgIGNvbnN0IGRlZmVycmVkID0gbmV3IERlZmVycmVkKCk7XG4gICAgZGVmZXJyZWQucHJvbWlzZVxuICAgICAgLnRoZW4oKG5ld0RhdGEpID0+IHtcbiAgICAgICAgbmV3RGF0YSA9IG5ld0RhdGEgPyBuZXdEYXRhIDogcm93LmdldE5ld0RhdGEoKTtcbiAgICAgICAgdGhpcy5zb3VyY2UucHJlcGVuZChuZXdEYXRhKS50aGVuKCgpID0+IHtcbiAgICAgICAgICB0aGlzLmNyZWF0ZUZvcm1TaG93biA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMuZGF0YVNldC5jcmVhdGVOZXdSb3coKTtcbiAgICAgICAgfSk7XG4gICAgICB9KVxuICAgICAgLmNhdGNoKChlcnIpID0+IHtcbiAgICAgICAgLy8gZG9pbmcgbm90aGluZ1xuICAgICAgfSk7XG5cbiAgICBpZiAodGhpcy5nZXRTZXR0aW5nKFwiYWRkLmNvbmZpcm1DcmVhdGVcIikpIHtcbiAgICAgIGNvbmZpcm1FbWl0dGVyLmVtaXQoe1xuICAgICAgICBuZXdEYXRhOiByb3cuZ2V0TmV3RGF0YSgpLFxuICAgICAgICBzb3VyY2U6IHRoaXMuc291cmNlLFxuICAgICAgICBjb25maXJtOiBkZWZlcnJlZCxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBkZWZlcnJlZC5yZXNvbHZlKCk7XG4gICAgfVxuICB9XG5cbiAgc2F2ZShyb3c6IFJvdywgY29uZmlybUVtaXR0ZXI6IEV2ZW50RW1pdHRlcjxhbnk+KSB7XG4gICAgY29uc3QgZGVmZXJyZWQgPSBuZXcgRGVmZXJyZWQoKTtcbiAgICBkZWZlcnJlZC5wcm9taXNlXG4gICAgICAudGhlbigobmV3RGF0YSkgPT4ge1xuICAgICAgICBuZXdEYXRhID0gbmV3RGF0YSA/IG5ld0RhdGEgOiByb3cuZ2V0TmV3RGF0YSgpO1xuICAgICAgICB0aGlzLnNvdXJjZS51cGRhdGUocm93LmdldERhdGEoKSwgbmV3RGF0YSkudGhlbigoKSA9PiB7XG4gICAgICAgICAgcm93LmlzSW5FZGl0aW5nID0gZmFsc2U7XG4gICAgICAgIH0pO1xuICAgICAgfSlcbiAgICAgIC5jYXRjaCgoZXJyKSA9PiB7XG4gICAgICAgIC8vIGRvaW5nIG5vdGhpbmdcbiAgICAgIH0pO1xuXG4gICAgaWYgKHRoaXMuZ2V0U2V0dGluZyhcImVkaXQuY29uZmlybVNhdmVcIikpIHtcbiAgICAgIGNvbmZpcm1FbWl0dGVyLmVtaXQoe1xuICAgICAgICBkYXRhOiByb3cuZ2V0RGF0YSgpLFxuICAgICAgICBuZXdEYXRhOiByb3cuZ2V0TmV3RGF0YSgpLFxuICAgICAgICBzb3VyY2U6IHRoaXMuc291cmNlLFxuICAgICAgICBjb25maXJtOiBkZWZlcnJlZCxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBkZWZlcnJlZC5yZXNvbHZlKCk7XG4gICAgfVxuICB9XG5cbiAgZGVsZXRlKHJvdzogUm93LCBjb25maXJtRW1pdHRlcjogRXZlbnRFbWl0dGVyPGFueT4pIHtcbiAgICBjb25zdCBkZWZlcnJlZCA9IG5ldyBEZWZlcnJlZCgpO1xuICAgIGRlZmVycmVkLnByb21pc2VcbiAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgdGhpcy5zb3VyY2UucmVtb3ZlKHJvdy5nZXREYXRhKCkpO1xuICAgICAgfSlcbiAgICAgIC5jYXRjaCgoZXJyKSA9PiB7XG4gICAgICAgIC8vIGRvaW5nIG5vdGhpbmdcbiAgICAgIH0pO1xuXG4gICAgaWYgKHRoaXMuZ2V0U2V0dGluZyhcImRlbGV0ZS5jb25maXJtRGVsZXRlXCIpKSB7XG4gICAgICBjb25maXJtRW1pdHRlci5lbWl0KHtcbiAgICAgICAgZGF0YTogcm93LmdldERhdGEoKSxcbiAgICAgICAgc291cmNlOiB0aGlzLnNvdXJjZSxcbiAgICAgICAgY29uZmlybTogZGVmZXJyZWQsXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgZGVmZXJyZWQucmVzb2x2ZSgpO1xuICAgIH1cbiAgICBpZiAocm93LmlzU2VsZWN0ZWQpIHtcbiAgICAgIHRoaXMuZGF0YVNldC5zZWxlY3RSb3cocm93LCBmYWxzZSk7XG4gICAgfVxuICB9XG5cbiAgcHJvY2Vzc0RhdGFDaGFuZ2UoY2hhbmdlczogYW55KSB7XG4gICAgaWYgKHRoaXMuc2hvdWxkUHJvY2Vzc0NoYW5nZShjaGFuZ2VzKSkge1xuICAgICAgaWYgKGNoYW5nZXNbXCJhY3Rpb25cIl0gPT09IFwibG9hZFwiKSB7XG4gICAgICAgIHRoaXMuZGF0YVNldC5kZXNlbGVjdEFsbCgpO1xuICAgICAgfVxuICAgICAgdGhpcy5kYXRhU2V0LnNldERhdGEoY2hhbmdlc1tcImVsZW1lbnRzXCJdKTtcbiAgICB9XG4gIH1cblxuICBzaG91bGRQcm9jZXNzQ2hhbmdlKGNoYW5nZXM6IGFueSk6IGJvb2xlYW4ge1xuICAgIGlmIChcbiAgICAgIFtcImZpbHRlclwiLCBcInNvcnRcIiwgXCJwYWdlXCIsIFwicmVtb3ZlXCIsIFwicmVmcmVzaFwiLCBcImxvYWRcIiwgXCJwYWdpbmdcIl0uaW5kZXhPZihcbiAgICAgICAgY2hhbmdlc1tcImFjdGlvblwiXVxuICAgICAgKSAhPT0gLTFcbiAgICApIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gZWxzZSBpZiAoXG4gICAgICBbXCJwcmVwZW5kXCIsIFwiYXBwZW5kXCJdLmluZGV4T2YoY2hhbmdlc1tcImFjdGlvblwiXSkgIT09IC0xICYmXG4gICAgICAhdGhpcy5nZXRTZXR0aW5nKFwicGFnZXIuZGlzcGxheVwiKVxuICAgICkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHByZXBhcmVTb3VyY2Uoc291cmNlOiBMb2NhbERhdGFTb3VyY2UpOiBMb2NhbERhdGFTb3VyY2Uge1xuICAgIGNvbnN0IGluaXRpYWxTb3J0OiBTbWFydFRhYmxlU29ydEl0ZW0gfCBmYWxzZSA9IHRoaXMuZ2V0SW5pdGlhbFNvcnQoKTtcbiAgICBpZiAoaW5pdGlhbFNvcnQpIHtcbiAgICAgIHNvdXJjZS5zZXRTb3J0KFtpbml0aWFsU29ydF0sIGZhbHNlKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuZ2V0U2V0dGluZyhcInBhZ2VyLmRpc3BsYXlcIikgPT09IHRydWUpIHtcbiAgICAgIHNvdXJjZS5zZXRQYWdpbmcoMSwgdGhpcy5nZXRTZXR0aW5nKFwicGFnZXIucGVyUGFnZVwiKSwgZmFsc2UpO1xuICAgIH1cblxuICAgIHNvdXJjZS5yZWZyZXNoKCk7XG4gICAgcmV0dXJuIHNvdXJjZTtcbiAgfVxuXG4gIGdldEluaXRpYWxTb3J0KCk6IFNtYXJ0VGFibGVTb3J0SXRlbSB8IGZhbHNlIHtcbiAgICBjb25zdCBkZWZhdWx0U29ydENvbHVtbiA9IHRoaXMuZ2V0Q29sdW1ucygpLmZpbmQoXG4gICAgICAoY29sdW1uOiBDb2x1bW4pID0+IGNvbHVtbi5pc1NvcnRhYmxlICYmIGNvbHVtbi5kZWZhdWx0U29ydERpcmVjdGlvblxuICAgICk7XG4gICAgaWYgKCFkZWZhdWx0U29ydENvbHVtbikge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgZmllbGQ6IGRlZmF1bHRTb3J0Q29sdW1uLmlkLFxuICAgICAgZGlyZWN0aW9uOiBkZWZhdWx0U29ydENvbHVtbi5kZWZhdWx0U29ydERpcmVjdGlvbiB8fCBcImFzY1wiLFxuICAgICAgY29tcGFyZTogZGVmYXVsdFNvcnRDb2x1bW4uZ2V0Q29tcGFyZUZ1bmN0aW9uKCksXG4gICAgfTtcbiAgfVxuXG4gIGdldFNlbGVjdGVkUm93c0RhdGEoKTogQXJyYXk8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuZGF0YVNldC5nZXRSb3dzKCk7XG4gIH1cblxuICBzZWxlY3RBbGxSb3dzKHN0YXR1czogYm9vbGVhbikge1xuICAgIHRoaXMuZGF0YVNldC5zZXRTZWxlY3RBbGwoc3RhdHVzKTtcbiAgfVxuXG4gIGdldEZpcnN0Um93KCk6IFJvdyB7XG4gICAgcmV0dXJuIHRoaXMuZGF0YVNldC5nZXRGaXJzdFJvdygpO1xuICB9XG5cbiAgZ2V0TGFzdFJvdygpOiBSb3cge1xuICAgIHJldHVybiB0aGlzLmRhdGFTZXQuZ2V0TGFzdFJvdygpO1xuICB9XG59XG4iXX0=