tabulator-tables 5.0.2 → 5.0.7

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 (58) hide show
  1. package/bower.json +1 -1
  2. package/build/rollup.js +1 -1
  3. package/dist/css/tabulator_bootstrap3.css +9 -0
  4. package/dist/css/tabulator_bootstrap3.css.map +1 -1
  5. package/dist/css/tabulator_bootstrap3.min.css +1 -1
  6. package/dist/css/tabulator_bootstrap3.min.css.map +1 -1
  7. package/dist/css/tabulator_bootstrap4.css +0 -4
  8. package/dist/css/tabulator_bootstrap4.css.map +1 -1
  9. package/dist/css/tabulator_bootstrap4.min.css +1 -1
  10. package/dist/css/tabulator_bootstrap4.min.css.map +1 -1
  11. package/dist/css/tabulator_bulma.css +5 -1
  12. package/dist/css/tabulator_bulma.css.map +1 -1
  13. package/dist/css/tabulator_bulma.min.css +1 -1
  14. package/dist/css/tabulator_bulma.min.css.map +1 -1
  15. package/dist/css/tabulator_semanticui.css +11 -2
  16. package/dist/css/tabulator_semanticui.css.map +1 -1
  17. package/dist/css/tabulator_semanticui.min.css +1 -1
  18. package/dist/css/tabulator_semanticui.min.css.map +1 -1
  19. package/dist/js/tabulator.js +460 -308
  20. package/dist/js/tabulator.js.map +1 -1
  21. package/dist/js/tabulator.min.js +2 -2
  22. package/dist/js/tabulator.min.js.map +1 -1
  23. package/dist/js/tabulator_esm.js +426 -297
  24. package/dist/js/tabulator_esm.js.map +1 -1
  25. package/dist/js/tabulator_esm.min.js +2 -2
  26. package/dist/js/tabulator_esm.min.js.map +1 -1
  27. package/package.json +1 -1
  28. package/src/js/core/ColumnManager.js +15 -16
  29. package/src/js/core/RowManager.js +5 -3
  30. package/src/js/core/Tabulator.js +178 -117
  31. package/src/js/core/column/Column.js +2 -2
  32. package/src/js/core/tools/DataLoader.js +1 -1
  33. package/src/js/core/tools/ExternalEventBus.js +3 -2
  34. package/src/js/core/tools/Helpers.js +24 -7
  35. package/src/js/modules/Accessor/Accessor.js +1 -1
  36. package/src/js/modules/Ajax/defaults/contentTypeFormatters.js +22 -1
  37. package/src/js/modules/DataTree/DataTree.js +1 -1
  38. package/src/js/modules/Edit/Edit.js +7 -6
  39. package/src/js/modules/Edit/defaults/editors/progress.js +2 -2
  40. package/src/js/modules/Filter/Filter.js +9 -4
  41. package/src/js/modules/Format/defaults/formatters/money.js +8 -1
  42. package/src/js/modules/FrozenColumns/FrozenColumns.js +21 -0
  43. package/src/js/modules/FrozenRows/FrozenRows.js +4 -1
  44. package/src/js/modules/GroupRows/Group.js +2 -0
  45. package/src/js/modules/GroupRows/GroupRows.js +40 -35
  46. package/src/js/modules/History/History.js +3 -1
  47. package/src/js/modules/History/defaults/redoers.js +1 -0
  48. package/src/js/modules/History/defaults/undoers.js +1 -0
  49. package/src/js/modules/HtmlTableImport/HtmlTableImport.js +4 -22
  50. package/src/js/modules/MoveColumns/MoveColumns.js +6 -4
  51. package/src/js/modules/Page/Page.js +0 -4
  52. package/src/js/modules/ReactiveData/ReactiveData.js +28 -27
  53. package/src/js/modules/ResponsiveLayout/ResponsiveLayout.js +5 -1
  54. package/src/js/modules/SelectRow/SelectRow.js +1 -2
  55. package/src/scss/themes/bootstrap/tabulator_bootstrap3.scss +9 -0
  56. package/src/scss/themes/bootstrap/tabulator_bootstrap4.scss +0 -4
  57. package/src/scss/themes/bulma/tabulator_bulma.scss +5 -1
  58. package/src/scss/themes/semanticui/tabulator_semanticui.scss +12 -7
@@ -1,3 +1,23 @@
1
+ function generateParamsList(data, prefix){
2
+ var output = [];
3
+
4
+ prefix = prefix || "";
5
+
6
+ if(Array.isArray(data)){
7
+ data.forEach((item, i) => {
8
+ output = output.concat(generateParamsList(item, prefix ? prefix + "[" + i + "]" : i));
9
+ });
10
+ }else if (typeof data === "object"){
11
+ for (var key in data){
12
+ output = output.concat(generateParamsList(data[key], prefix ? prefix + "[" + key + "]" : key));
13
+ }
14
+ }else{
15
+ output.push({key:prefix, value:data});
16
+ }
17
+
18
+ return output;
19
+ }
20
+
1
21
  export default {
2
22
  "json":{
3
23
  headers:{
@@ -11,7 +31,8 @@ export default {
11
31
  headers:{
12
32
  },
13
33
  body:function(url, config, params){
14
- var output = this.generateParamsList(params),
34
+
35
+ var output = generateParamsList(params),
15
36
  form = new FormData();
16
37
 
17
38
  output.forEach(function(item){
@@ -557,7 +557,7 @@ class DataTree extends Module{
557
557
 
558
558
  checkForRestyle(cell){
559
559
  if(!cell.row.cells.indexOf(cell)){
560
- cell.row.reinitialize();
560
+ this.layoutRow(cell.row);
561
561
  }
562
562
  }
563
563
 
@@ -1,4 +1,5 @@
1
1
  import Module from '../../core/Module.js';
2
+ import Helpers from '../../core/tools/Helpers.js';
2
3
 
3
4
  import defaultEditors from './defaults/editors.js';
4
5
 
@@ -150,7 +151,7 @@ class Edit extends Module{
150
151
  nextCell = this.findNextEditableCell(prevRow, prevRow.cells.length);
151
152
 
152
153
  if(nextCell){
153
- nextCell.edit();
154
+ nextCell.getComponent().edit();
154
155
  return true;
155
156
  }
156
157
  }
@@ -181,7 +182,7 @@ class Edit extends Module{
181
182
  nextCell = this.findNextEditableCell(nextRow, -1);
182
183
 
183
184
  if(nextCell){
184
- nextCell.edit();
185
+ nextCell.getComponent().edit();
185
186
  return true;
186
187
  }
187
188
  }
@@ -205,7 +206,7 @@ class Edit extends Module{
205
206
  nextCell = this.findPrevEditableCell(cell.row, index);
206
207
 
207
208
  if(nextCell){
208
- nextCell.edit();
209
+ nextCell.getComponent().edit();
209
210
  return true;
210
211
  }
211
212
  }
@@ -227,7 +228,7 @@ class Edit extends Module{
227
228
  nextCell = this.findNextEditableCell(cell.row, index);
228
229
 
229
230
  if(nextCell){
230
- nextCell.edit();
231
+ nextCell.getComponent().edit();
231
232
  return true;
232
233
  }
233
234
  }
@@ -249,7 +250,7 @@ class Edit extends Module{
249
250
  nextRow = this.table.rowManager.prevDisplayRow(cell.row, true);
250
251
 
251
252
  if(nextRow){
252
- nextRow.cells[index].edit();
253
+ nextRow.cells[index].getComponent().edit();
253
254
  return true;
254
255
  }
255
256
  }
@@ -271,7 +272,7 @@ class Edit extends Module{
271
272
  nextRow = this.table.rowManager.nextDisplayRow(cell.row, true);
272
273
 
273
274
  if(nextRow){
274
- nextRow.cells[index].edit();
275
+ nextRow.cells[index].getComponent().edit();
275
276
  return true;
276
277
  }
277
278
  }
@@ -1,8 +1,8 @@
1
1
  //draggable progress bar
2
2
  export default function(cell, onRendered, success, cancel, editorParams){
3
3
  var element = cell.getElement(),
4
- max = typeof editorParams.max === "undefined" ? ( element.getElementsByTagName("div")[0].getAttribute("max") || 100) : editorParams.max,
5
- min = typeof editorParams.min === "undefined" ? ( element.getElementsByTagName("div")[0].getAttribute("min") || 0) : editorParams.min,
4
+ max = typeof editorParams.max === "undefined" ? ( element.getElementsByTagName("div")[0]?.getAttribute("max") || 100) : editorParams.max,
5
+ min = typeof editorParams.min === "undefined" ? ( element.getElementsByTagName("div")[0]?.getAttribute("min") || 0) : editorParams.min,
6
6
  percent = (max - min) / 100,
7
7
  value = cell.getValue() || 0,
8
8
  handle = document.createElement("div"),
@@ -15,6 +15,7 @@ class Filter extends Module{
15
15
  this.prevHeaderFilterChangeCheck = "{}";
16
16
 
17
17
  this.changed = false; //has filtering changed since last render
18
+ this.tableInitialized = false;
18
19
 
19
20
  this.registerTableOption("filterMode", "local"); //local or remote filtering
20
21
 
@@ -82,6 +83,8 @@ class Filter extends Module{
82
83
  }
83
84
  });
84
85
  }
86
+
87
+ this.tableInitialized = true;
85
88
  }
86
89
 
87
90
  remoteFilterParams(data, config, silent, params){
@@ -546,10 +549,12 @@ class Filter extends Module{
546
549
  }
547
550
 
548
551
  refreshFilter(){
549
- if(this.table.options.filterMode === "remote"){
550
- this.reloadData();
551
- }else{
552
- this.refreshData()
552
+ if(this.tableInitialized){
553
+ if(this.table.options.filterMode === "remote"){
554
+ this.reloadData();
555
+ }else{
556
+ this.refreshData();
557
+ }
553
558
  }
554
559
 
555
560
  //TODO - Persist left position of row manager
@@ -1,9 +1,11 @@
1
1
  export default function(cell, formatterParams, onRendered){
2
2
  var floatVal = parseFloat(cell.getValue()),
3
+ sign = "",
3
4
  number, integer, decimal, rgx;
4
5
 
5
6
  var decimalSym = formatterParams.decimal || ".";
6
7
  var thousandSym = formatterParams.thousand || ",";
8
+ var negativeSign = formatterParams.negativeSign || "-";
7
9
  var symbol = formatterParams.symbol || "";
8
10
  var after = !!formatterParams.symbolAfter;
9
11
  var precision = typeof formatterParams.precision !== "undefined" ? formatterParams.precision : 2;
@@ -12,6 +14,11 @@ export default function(cell, formatterParams, onRendered){
12
14
  return this.emptyToSpace(this.sanitizeHTML(cell.getValue()));
13
15
  }
14
16
 
17
+ if(floatVal < 0){
18
+ floatVal = Math.abs(floatVal);
19
+ sign = negativeSign;
20
+ }
21
+
15
22
  number = precision !== false ? floatVal.toFixed(precision) : floatVal;
16
23
  number = String(number).split(".");
17
24
 
@@ -24,5 +31,5 @@ export default function(cell, formatterParams, onRendered){
24
31
  integer = integer.replace(rgx, "$1" + thousandSym + "$2");
25
32
  }
26
33
 
27
- return after ? integer + decimal + symbol : symbol + integer + decimal;
34
+ return after ? sign + integer + decimal + symbol : sign + symbol + integer + decimal;
28
35
  };
@@ -135,12 +135,33 @@ class FrozenColumns extends Module{
135
135
  if(this.table.modules.columnCalcs.topInitialized && this.table.modules.columnCalcs.topRow){
136
136
  this.layoutRow(this.table.modules.columnCalcs.topRow);
137
137
  }
138
+
138
139
  if(this.table.modules.columnCalcs.botInitialized && this.table.modules.columnCalcs.botRow){
139
140
  this.layoutRow(this.table.modules.columnCalcs.botRow);
140
141
  }
142
+
143
+ if(this.table.modExists("groupRows")){
144
+ this.layoutGroupCalcs(this.table.modules.groupRows.getGroups())
145
+ }
141
146
  }
142
147
  }
143
148
 
149
+ layoutGroupCalcs(groups){
150
+ groups.forEach((group) => {
151
+ if(group.calcs.top){
152
+ this.layoutRow(group.calcs.top);
153
+ }
154
+
155
+ if(group.calcs.bottom){
156
+ this.layoutRow(group.calcs.bottom);
157
+ }
158
+
159
+ if(group.groupList && group.groupList.length){
160
+ this.layoutGroupCalcs(group.groupList && group.groupList);
161
+ }
162
+ });
163
+ }
164
+
144
165
  //calculate column positions and layout headers
145
166
  layoutColumnPosition(allCells){
146
167
 
@@ -99,7 +99,10 @@ class FrozenRows extends Module{
99
99
 
100
100
  if(index > -1){
101
101
  var rowEl = row.getElement();
102
- rowEl.parentNode.removeChild(rowEl);
102
+
103
+ if(rowEl.parentNode){
104
+ rowEl.parentNode.removeChild(rowEl);
105
+ }
103
106
 
104
107
  this.rows.splice(index, 1);
105
108
  }
@@ -638,6 +638,8 @@ class Group{
638
638
 
639
639
  clearCellHeight(){}
640
640
 
641
+ deinitializeHeight(){}
642
+
641
643
  //////////////// Object Generation /////////////////
642
644
  getComponent(){
643
645
  if(!this.component){
@@ -45,6 +45,34 @@ class GroupRows extends Module{
45
45
 
46
46
  //initialize group configuration
47
47
  initialize(){
48
+ if(this.table.options.groupBy){
49
+
50
+ this.configureGroupSetup();
51
+
52
+ if(this.table.options.groupUpdateOnCellEdit){
53
+ this.subscribe("cell-value-updated", this.cellUpdated.bind(this));
54
+ this.subscribe("row-data-changed", this.reassignRowToGroup.bind(this), 0);
55
+ }
56
+
57
+ this.subscribe("row-deleting", this.rowDeleting.bind(this));
58
+ this.subscribe("row-deleted", this.rowsUpdated.bind(this));
59
+ this.subscribe("scroll-horizontal", this.scrollHeaders.bind(this));
60
+ this.subscribe("rows-wipe", this.wipe.bind(this));
61
+ this.subscribe("rows-added", this.rowsUpdated.bind(this));
62
+ this.subscribe("row-moving", this.rowMoving.bind(this));
63
+ this.subscribe("row-adding-index", this.rowAddingIndex.bind(this));
64
+
65
+ this.subscribe("rows-sample", this.rowSample.bind(this));
66
+
67
+ this.subscribe("render-virtual-fill", this.virtualRenderFill.bind(this));
68
+
69
+ this.registerDisplayHandler(this.displayHandler, 20);
70
+
71
+ this.initialized = true;
72
+ }
73
+ }
74
+
75
+ configureGroupSetup(){
48
76
  if(this.table.options.groupBy){
49
77
  var groupBy = this.table.options.groupBy,
50
78
  startOpen = this.table.options.groupStartOpen,
@@ -133,27 +161,6 @@ class GroupRows extends Module{
133
161
  if(groupHeader){
134
162
  this.headerGenerator = Array.isArray(groupHeader) ? groupHeader : [groupHeader];
135
163
  }
136
-
137
- if(this.table.options.groupUpdateOnCellEdit){
138
- this.subscribe("cell-value-updated", this.cellUpdated.bind(this));
139
- this.subscribe("row-data-changed", this.reassignRowToGroup.bind(this), 0);
140
- }
141
-
142
- this.subscribe("row-deleting", this.rowDeleting.bind(this));
143
- this.subscribe("row-deleted", this.rowsUpdated.bind(this));
144
- this.subscribe("scroll-horizontal", this.scrollHeaders.bind(this));
145
- this.subscribe("rows-wipe", this.wipe.bind(this));
146
- this.subscribe("rows-added", this.rowsUpdated.bind(this));
147
- this.subscribe("row-moving", this.rowMoving.bind(this));
148
- this.subscribe("row-adding-index", this.rowAddingIndex.bind(this));
149
-
150
- this.subscribe("rows-sample", this.rowSample.bind(this));
151
-
152
- this.subscribe("render-virtual-fill", this.virtualRenderFill.bind(this));
153
-
154
- this.registerDisplayHandler(this.displayHandler, 20);
155
-
156
- this.initialized = true;
157
164
  }
158
165
  }
159
166
 
@@ -218,23 +225,23 @@ class GroupRows extends Module{
218
225
 
219
226
  setGroupBy(groups){
220
227
  this.table.options.groupBy = groups;
221
- this.initialize();
222
- this.refreshData(false, "display");
228
+ this.configureGroupSetup();
229
+ this.refreshData();
223
230
 
224
231
  this.trackChanges();
225
232
  }
226
233
 
227
234
  setGroupValues(groupValues){
228
235
  this.table.options.groupValues = groupValues;
229
- this.initialize();
230
- this.refreshData(false, "display");
236
+ this.configureGroupSetup();
237
+ this.refreshData();
231
238
 
232
239
  this.trackChanges();
233
240
  }
234
241
 
235
242
  setGroupStartOpen(values){
236
243
  this.table.options.groupStartOpen = values;
237
- this.initialize();
244
+ this.configureGroupSetup();
238
245
 
239
246
  if(this.table.options.groupBy){
240
247
  this.refreshData();
@@ -247,7 +254,7 @@ class GroupRows extends Module{
247
254
 
248
255
  setGroupHeader(values){
249
256
  this.table.options.groupHeader = values;
250
- this.initialize();
257
+ this.configureGroupSetup();
251
258
 
252
259
  if(this.table.options.groupBy){
253
260
  this.refreshData();
@@ -328,16 +335,14 @@ class GroupRows extends Module{
328
335
 
329
336
  //return appropriate rows with group headers
330
337
  getRows(rows){
331
- if(this.groupIDLookups.length){
338
+ if(this.table.options.groupBy && this.groupIDLookups.length){
332
339
 
333
- if(!Object.keys(this.groups).length){
334
- this.dispatchExternal("dataGrouping");
340
+ this.dispatchExternal("dataGrouping");
335
341
 
336
- this.generateGroups(rows);
342
+ this.generateGroups(rows);
337
343
 
338
- if(this.subscribedExternal("dataGrouped")){
339
- this.dispatchExternal("dataGrouped", this.getGroups(true));
340
- }
344
+ if(this.subscribedExternal("dataGrouped")){
345
+ this.dispatchExternal("dataGrouped", this.getGroups(true));
341
346
  }
342
347
 
343
348
  return this.updateGroupRows();
@@ -445,7 +450,7 @@ class GroupRows extends Module{
445
450
  var oldGroups = this.groups;
446
451
 
447
452
  this.groups = {};
448
- this.groupList =[];
453
+ this.groupList = [];
449
454
 
450
455
  if(this.allowedValues && this.allowedValues[0]){
451
456
  this.allowedValues[0].forEach((value) => {
@@ -1,4 +1,6 @@
1
1
  import Module from '../../core/Module.js';
2
+ import Row from '../../core/row/Row.js';
3
+ import Cell from '../../core/cell/Cell.js';
2
4
 
3
5
  import defaultUndoers from './defaults/undoers.js';
4
6
  import defaultRedoers from './defaults/redoers.js';
@@ -58,7 +60,7 @@ class History extends Module{
58
60
  }
59
61
  }
60
62
 
61
- this.history.action("rowDelete", row, {data:row.getData(), pos:!index, index:index});
63
+ this.action("rowDelete", row, {data:row.getData(), pos:!index, index:index});
62
64
  }
63
65
 
64
66
  cellUpdated(cell){
@@ -1,6 +1,7 @@
1
1
  export default {
2
2
  cellEdit: function(action){
3
3
  action.component.setValueProcessData(action.data.newValue);
4
+ action.component.cellRendered();
4
5
  },
5
6
 
6
7
  rowAdd: function(action){
@@ -1,6 +1,7 @@
1
1
  export default {
2
2
  cellEdit: function(action){
3
3
  action.component.setValueProcessData(action.data.oldValue);
4
+ action.component.cellRendered();
4
5
  },
5
6
 
6
7
  rowAdd: function(action){
@@ -1,4 +1,5 @@
1
1
  import Module from '../../core/Module.js';
2
+ import Column from '../../core/column/Column.js';
2
3
 
3
4
  class HtmlTableImport extends Module{
4
5
 
@@ -10,17 +11,17 @@ class HtmlTableImport extends Module{
10
11
  }
11
12
 
12
13
  initialize(){
13
- this.subscribe("table-building", this.tableElementCheck.bind(this));
14
+ this.tableElementCheck();
14
15
  }
15
16
 
16
17
  tableElementCheck(){
17
- if(this.table.element.tagName === "TABLE"){
18
+ if(this.table.originalElement && this.table.originalElement.tagName === "TABLE"){
18
19
  this.parseTable();
19
20
  }
20
21
  }
21
22
 
22
23
  parseTable(){
23
- var element = this.table.element,
24
+ var element = this.table.originalElement,
24
25
  options = this.table.options,
25
26
  columns = options.columns,
26
27
  headers = element.getElementsByTagName("th"),
@@ -65,28 +66,9 @@ class HtmlTableImport extends Module{
65
66
  data.push(item);
66
67
  }
67
68
 
68
- //create new element
69
- var newElement = document.createElement("div");
70
-
71
- //transfer attributes to new element
72
- var attributes = element.attributes;
73
-
74
- // loop through attributes and apply them on div
75
-
76
- for(var i in attributes){
77
- if(typeof attributes[i] == "object"){
78
- newElement.setAttribute(attributes[i].name, attributes[i].value);
79
- }
80
- }
81
-
82
- // replace table with div element
83
- element.parentNode.replaceChild(newElement, element);
84
-
85
69
  options.data = data;
86
70
 
87
71
  this.dispatchExternal("htmlImported");
88
-
89
- this.table.element = newElement;
90
72
  }
91
73
 
92
74
  //extract tabulator attribute options
@@ -165,7 +165,9 @@ class MoveColumns extends Module{
165
165
  }
166
166
 
167
167
  startMove(e, column){
168
- var element = column.getElement();
168
+ var element = column.getElement(),
169
+ headerElement = this.table.columnManager.getElement(),
170
+ headersElement = this.table.columnManager.getHeadersElement();
169
171
 
170
172
  this.moving = column;
171
173
  this.startX = (this.touchMove ? e.touches[0].pageX : e.pageX) - Helpers.elOffset(element).left;
@@ -186,7 +188,7 @@ class MoveColumns extends Module{
186
188
  this.table.columnManager.getElement().appendChild(this.hoverElement);
187
189
 
188
190
  this.hoverElement.style.left = "0";
189
- this.hoverElement.style.bottom = "0";
191
+ this.hoverElement.style.bottom = (headerElement.clientHeight - headersElement.offsetHeight) + "px";
190
192
 
191
193
  if(!this.touchMove){
192
194
  this._bindMouseMove();
@@ -224,7 +226,7 @@ class MoveColumns extends Module{
224
226
  column.getCells().forEach(function(cell, i){
225
227
  var cellEl = cell.getElement(true);
226
228
 
227
- if(cellEl.parentNode){
229
+ if(cellEl.parentNode && movingCells[i]){
228
230
  cellEl.parentNode.insertBefore(movingCells[i].getElement(), cellEl.nextSibling);
229
231
  }
230
232
  });
@@ -232,7 +234,7 @@ class MoveColumns extends Module{
232
234
  column.getCells().forEach(function(cell, i){
233
235
  var cellEl = cell.getElement(true);
234
236
 
235
- if(cellEl.parentNode){
237
+ if(cellEl.parentNode && movingCells[i]){
236
238
  cellEl.parentNode.insertBefore(movingCells[i].getElement(), cellEl);
237
239
  }
238
240
  });
@@ -260,8 +260,6 @@ class Page extends Module{
260
260
  pageSizes = this.table.options.paginationSizeSelector;
261
261
  this.pageSizes = pageSizes;
262
262
 
263
- console.log("gen",this.size)
264
-
265
263
  if(this.pageSizes.indexOf(this.size) == -1){
266
264
  pageSizes.unshift(this.size);
267
265
  }
@@ -521,8 +519,6 @@ class Page extends Module{
521
519
  this.generatePageSizeSelectList();
522
520
  }
523
521
 
524
- console.log("set", size, this.size)
525
-
526
522
  this.trackChanges();
527
523
  }
528
524
 
@@ -26,7 +26,8 @@ class ReactiveData extends Module{
26
26
  }
27
27
 
28
28
  watchData(data){
29
- var pushFunc, version;
29
+ var self = this,
30
+ pushFunc, version;
30
31
 
31
32
  this.currentVersion ++;
32
33
 
@@ -42,16 +43,16 @@ class ReactiveData extends Module{
42
43
  Object.defineProperty(this.data, "push", {
43
44
  enumerable: false,
44
45
  configurable: true,
45
- value: () => {
46
+ value: function(){
46
47
  var args = Array.from(arguments);
47
48
 
48
- if(!this.blocked && version === this.currentVersion){
49
+ if(!self.blocked && version === self.currentVersion){
49
50
  args.forEach((arg) => {
50
- this.table.rowManager.addRowActual(arg, false);
51
+ self.table.rowManager.addRowActual(arg, false);
51
52
  });
52
53
  }
53
54
 
54
- return this.origFuncs.push.apply(data, arguments);
55
+ return self.origFuncs.push.apply(data, arguments);
55
56
  }
56
57
  });
57
58
 
@@ -61,16 +62,16 @@ class ReactiveData extends Module{
61
62
  Object.defineProperty(this.data, "unshift", {
62
63
  enumerable: false,
63
64
  configurable: true,
64
- value: () => {
65
+ value: function(){
65
66
  var args = Array.from(arguments);
66
67
 
67
- if(!this.blocked && version === this.currentVersion){
68
+ if(!self.blocked && version === self.currentVersion){
68
69
  args.forEach((arg) => {
69
- this.table.rowManager.addRowActual(arg, true);
70
+ self.table.rowManager.addRowActual(arg, true);
70
71
  });
71
72
  }
72
73
 
73
- return this.origFuncs.unshift.apply(data, arguments);
74
+ return self.origFuncs.unshift.apply(data, arguments);
74
75
  }
75
76
  });
76
77
 
@@ -81,12 +82,12 @@ class ReactiveData extends Module{
81
82
  Object.defineProperty(this.data, "shift", {
82
83
  enumerable: false,
83
84
  configurable: true,
84
- value: () => {
85
+ value: function(){
85
86
  var row;
86
87
 
87
- if(!this.blocked && version === this.currentVersion){
88
- if(this.data.length){
89
- row = this.table.rowManager.getRowFromDataObject(this.data[0]);
88
+ if(!self.blocked && version === self.currentVersion){
89
+ if(self.data.length){
90
+ row = self.table.rowManager.getRowFromDataObject(self.data[0]);
90
91
 
91
92
  if(row){
92
93
  row.deleteActual();
@@ -94,7 +95,7 @@ class ReactiveData extends Module{
94
95
  }
95
96
  }
96
97
 
97
- return this.origFuncs.shift.call(data);
98
+ return self.origFuncs.shift.call(data);
98
99
  }
99
100
  });
100
101
 
@@ -104,18 +105,18 @@ class ReactiveData extends Module{
104
105
  Object.defineProperty(this.data, "pop", {
105
106
  enumerable: false,
106
107
  configurable: true,
107
- value: () => {
108
+ value: function(){
108
109
  var row;
109
- if(!this.blocked && version === this.currentVersion){
110
- if(this.data.length){
111
- row = this.table.rowManager.getRowFromDataObject(this.data[this.data.length - 1]);
110
+ if(!self.blocked && version === self.currentVersion){
111
+ if(self.data.length){
112
+ row = self.table.rowManager.getRowFromDataObject(self.data[self.data.length - 1]);
112
113
 
113
114
  if(row){
114
115
  row.deleteActual();
115
116
  }
116
117
  }
117
118
  }
118
- return this.origFuncs.pop.call(data);
119
+ return self.origFuncs.pop.call(data);
119
120
  }
120
121
  });
121
122
 
@@ -126,28 +127,28 @@ class ReactiveData extends Module{
126
127
  Object.defineProperty(this.data, "splice", {
127
128
  enumerable: false,
128
129
  configurable: true,
129
- value: () => {
130
+ value: function(){
130
131
  var args = Array.from(arguments),
131
132
  start = args[0] < 0 ? data.length + args[0] : args[0],
132
133
  end = args[1],
133
134
  newRows = args[2] ? args.slice(2) : false,
134
135
  startRow;
135
136
 
136
- if(!this.blocked && version === this.currentVersion){
137
+ if(!self.blocked && version === self.currentVersion){
137
138
 
138
139
  //add new rows
139
140
  if(newRows){
140
- startRow = data[start] ? this.table.rowManager.getRowFromDataObject(data[start]) : false;
141
+ startRow = data[start] ? self.table.rowManager.getRowFromDataObject(data[start]) : false;
141
142
 
142
143
  if(startRow){
143
144
  newRows.forEach((rowData) => {
144
- this.table.rowManager.addRowActual(rowData, true, startRow, true);
145
+ self.table.rowManager.addRowActual(rowData, true, startRow, true);
145
146
  });
146
147
  }else{
147
148
  newRows = newRows.slice().reverse();
148
149
 
149
150
  newRows.forEach((rowData) => {
150
- this.table.rowManager.addRowActual(rowData, true, false, true);
151
+ self.table.rowManager.addRowActual(rowData, true, false, true);
151
152
  });
152
153
  }
153
154
  }
@@ -157,7 +158,7 @@ class ReactiveData extends Module{
157
158
  var oldRows = data.slice(start, typeof args[1] === "undefined" ? args[1] : start + end);
158
159
 
159
160
  oldRows.forEach((rowData, i) => {
160
- var row = this.table.rowManager.getRowFromDataObject(rowData);
161
+ var row = self.table.rowManager.getRowFromDataObject(rowData);
161
162
 
162
163
  if(row){
163
164
  row.deleteActual(i !== oldRows.length - 1);
@@ -166,11 +167,11 @@ class ReactiveData extends Module{
166
167
  }
167
168
 
168
169
  if(newRows || end !== 0){
169
- this.table.rowManager.reRenderInPosition();
170
+ self.table.rowManager.reRenderInPosition();
170
171
  }
171
172
  }
172
173
 
173
- return this.origFuncs.splice.apply(data, arguments);
174
+ return self.origFuncs.splice.apply(data, arguments);
174
175
  }
175
176
  });
176
177
  }