tabulator-tables 5.0.9 → 5.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 (110) hide show
  1. package/.editorconfig +6 -0
  2. package/LICENSE +1 -1
  3. package/bower.json +1 -1
  4. package/build/rollup.js +2 -1
  5. package/dist/css/tabulator.css +26 -10
  6. package/dist/css/tabulator.css.map +1 -1
  7. package/dist/css/tabulator.min.css +1 -1
  8. package/dist/css/tabulator.min.css.map +1 -1
  9. package/dist/css/tabulator_bootstrap3.css +26 -10
  10. package/dist/css/tabulator_bootstrap3.css.map +1 -1
  11. package/dist/css/tabulator_bootstrap3.min.css +1 -1
  12. package/dist/css/tabulator_bootstrap3.min.css.map +1 -1
  13. package/dist/css/tabulator_bootstrap4.css +26 -10
  14. package/dist/css/tabulator_bootstrap4.css.map +1 -1
  15. package/dist/css/tabulator_bootstrap4.min.css +1 -1
  16. package/dist/css/tabulator_bootstrap4.min.css.map +1 -1
  17. package/dist/css/tabulator_bulma.css +26 -10
  18. package/dist/css/tabulator_bulma.css.map +1 -1
  19. package/dist/css/tabulator_bulma.min.css +1 -1
  20. package/dist/css/tabulator_bulma.min.css.map +1 -1
  21. package/dist/css/tabulator_materialize.css +33 -14
  22. package/dist/css/tabulator_materialize.css.map +1 -1
  23. package/dist/css/tabulator_materialize.min.css +1 -1
  24. package/dist/css/tabulator_materialize.min.css.map +1 -1
  25. package/dist/css/tabulator_midnight.css +30 -10
  26. package/dist/css/tabulator_midnight.css.map +1 -1
  27. package/dist/css/tabulator_midnight.min.css +1 -1
  28. package/dist/css/tabulator_midnight.min.css.map +1 -1
  29. package/dist/css/tabulator_modern.css +26 -10
  30. package/dist/css/tabulator_modern.css.map +1 -1
  31. package/dist/css/tabulator_modern.min.css +1 -1
  32. package/dist/css/tabulator_modern.min.css.map +1 -1
  33. package/dist/css/tabulator_semanticui.css +26 -10
  34. package/dist/css/tabulator_semanticui.css.map +1 -1
  35. package/dist/css/tabulator_semanticui.min.css +1 -1
  36. package/dist/css/tabulator_semanticui.min.css.map +1 -1
  37. package/dist/css/tabulator_simple.css +26 -10
  38. package/dist/css/tabulator_simple.css.map +1 -1
  39. package/dist/css/tabulator_simple.min.css +1 -1
  40. package/dist/css/tabulator_simple.min.css.map +1 -1
  41. package/dist/css/tabulator_site.css +30 -10
  42. package/dist/css/tabulator_site.css.map +1 -1
  43. package/dist/css/tabulator_site.min.css +1 -1
  44. package/dist/css/tabulator_site.min.css.map +1 -1
  45. package/dist/js/tabulator.js +1077 -530
  46. package/dist/js/tabulator.js.map +1 -1
  47. package/dist/js/tabulator.min.js +2 -2
  48. package/dist/js/tabulator.min.js.map +1 -1
  49. package/dist/js/tabulator_esm.js +1696 -1171
  50. package/dist/js/tabulator_esm.js.map +1 -1
  51. package/dist/js/tabulator_esm.min.js +2 -2
  52. package/dist/js/tabulator_esm.min.js.map +1 -1
  53. package/package.json +1 -1
  54. package/src/js/core/FooterManager.js +14 -2
  55. package/src/js/core/RowManager.js +318 -291
  56. package/src/js/core/Tabulator.js +8 -68
  57. package/src/js/core/cell/Cell.js +5 -1
  58. package/src/js/core/column/Column.js +20 -5
  59. package/src/js/core/column/ColumnComponent.js +6 -0
  60. package/src/js/core/column/defaults/options.js +1 -0
  61. package/src/js/core/defaults/options.js +2 -2
  62. package/src/js/core/modules/optional.js +1 -0
  63. package/src/js/core/rendering/Renderer.js +1 -1
  64. package/src/js/core/rendering/renderers/BasicVertical.js +2 -1
  65. package/src/js/core/rendering/renderers/VirtualDomHorizontal.js +165 -151
  66. package/src/js/core/row/Row.js +2 -2
  67. package/src/js/core/tools/DataLoader.js +5 -5
  68. package/src/js/core/tools/InteractionMonitor.js +63 -32
  69. package/src/js/core/tools/ModuleBinder.js +15 -3
  70. package/src/js/modules/Ajax/Ajax.js +62 -82
  71. package/src/js/modules/ColumnCalcs/ColumnCalcs.js +3 -3
  72. package/src/js/modules/DataTree/DataTree.js +5 -1
  73. package/src/js/modules/Download/defaults/downloaders/json.js +1 -1
  74. package/src/js/modules/Download/defaults/downloaders/jsonLines.js +32 -0
  75. package/src/js/modules/Download/defaults/downloaders.js +2 -0
  76. package/src/js/modules/Edit/Edit.js +26 -31
  77. package/src/js/modules/Export/Export.js +2 -1
  78. package/src/js/modules/Filter/Filter.js +2 -3
  79. package/src/js/modules/Format/defaults/formatters/datetime.js +1 -1
  80. package/src/js/modules/Format/defaults/formatters/datetimediff.js +2 -1
  81. package/src/js/modules/Format/defaults/formatters/rownum.js +1 -1
  82. package/src/js/modules/FrozenColumns/FrozenColumns.js +1 -1
  83. package/src/js/modules/FrozenRows/FrozenRows.js +9 -0
  84. package/src/js/modules/GroupRows/Group.js +2 -61
  85. package/src/js/modules/GroupRows/GroupComponent.js +1 -1
  86. package/src/js/modules/GroupRows/GroupRows.js +2 -2
  87. package/src/js/modules/Import/Import.js +195 -0
  88. package/src/js/modules/Import/defaults/importers/csv.js +63 -0
  89. package/src/js/modules/Import/defaults/importers/json.js +8 -0
  90. package/src/js/modules/Import/defaults/importers.js +7 -0
  91. package/src/js/modules/Interaction/Interaction.js +5 -0
  92. package/src/js/modules/Keybindings/Keybindings.js +9 -14
  93. package/src/js/modules/Keybindings/defaults/bindings.js +3 -3
  94. package/src/js/modules/Localize/defaults/langs.js +6 -0
  95. package/src/js/modules/Menu/Menu.js +200 -155
  96. package/src/js/modules/MoveRows/MoveRows.js +4 -0
  97. package/src/js/modules/Page/Page.js +279 -176
  98. package/src/js/modules/Page/defaults/pageCounters/pages.js +33 -0
  99. package/src/js/modules/Page/defaults/pageCounters/rows.js +32 -0
  100. package/src/js/modules/Page/defaults/pageCounters.js +8 -0
  101. package/src/js/modules/Persistence/Persistence.js +6 -4
  102. package/src/js/modules/ResizeRows/ResizeRows.js +1 -1
  103. package/src/js/modules/ResponsiveLayout/ResponsiveLayout.js +8 -10
  104. package/src/js/modules/SelectRow/SelectRow.js +1 -1
  105. package/src/js/modules/Sort/defaults/sorters/datetime.js +2 -2
  106. package/src/js/modules/Validate/Validate.js +7 -5
  107. package/src/scss/tabulator.scss +31 -12
  108. package/src/scss/themes/materialize/tabulator_materialize.scss +5 -4
  109. package/src/scss/themes/tabulator_midnight.scss +4 -0
  110. package/src/scss/themes/tabulator_site.scss +4 -0
@@ -4,157 +4,157 @@ import Helpers from '../../tools/Helpers.js';
4
4
  export default class VirtualDomHorizontal extends Renderer{
5
5
  constructor(table){
6
6
  super(table);
7
-
7
+
8
8
  this.leftCol = 0;
9
9
  this.rightCol = 0;
10
10
  this.scrollLeft = 0;
11
-
11
+
12
12
  this.vDomScrollPosLeft = 0;
13
13
  this.vDomScrollPosRight = 0;
14
-
14
+
15
15
  this.vDomPadLeft = 0;
16
16
  this.vDomPadRight = 0;
17
-
17
+
18
18
  this.fitDataColAvg = 0;
19
-
19
+
20
20
  this.window = 200; //pixel margin to make column visible before it is shown on screen
21
-
21
+
22
22
  this.initialized = false;
23
-
23
+
24
24
  this.columns = [];
25
25
  }
26
-
26
+
27
27
  initialize(){
28
- this.compatabilityCheck();
28
+ this.compatibilityCheck();
29
29
  }
30
-
31
- compatabilityCheck(){
30
+
31
+ compatibilityCheck(){
32
32
  var columns = this.options("columns"),
33
33
  frozen = false,
34
34
  ok = true;
35
-
35
+
36
36
  if(this.options("layout") == "fitDataTable"){
37
- console.warn("Horizontal Vitrual DOM is not compatible with fitDataTable layout mode");
37
+ console.warn("Horizontal Virtual DOM is not compatible with fitDataTable layout mode");
38
38
  ok = false;
39
39
  }
40
-
40
+
41
41
  if(this.options("responsiveLayout")){
42
- console.warn("Horizontal Vitrual DOM is not compatible with responsive columns");
42
+ console.warn("Horizontal Virtual DOM is not compatible with responsive columns");
43
43
  ok = false;
44
44
  }
45
-
45
+
46
46
  if(this.options("rtl")){
47
- console.warn("Horizontal Vitrual DOM is not currently compatible with RTL text direction");
47
+ console.warn("Horizontal Virtual DOM is not currently compatible with RTL text direction");
48
48
  ok = false;
49
49
  }
50
-
50
+
51
51
  if(columns){
52
52
  frozen = columns.find((col) => {
53
53
  return col.frozen;
54
54
  });
55
-
55
+
56
56
  if(frozen){
57
- console.warn("Horizontal Vitrual DOM is not compatible with frozen columns");
57
+ console.warn("Horizontal Virtual DOM is not compatible with frozen columns");
58
58
  ok = false;
59
59
  }
60
60
  }
61
-
61
+
62
62
  // if(!ok){
63
63
  // options.virtualDomHoz = false;
64
64
  // }
65
-
65
+
66
66
  return ok;
67
67
  }
68
-
68
+
69
69
  //////////////////////////////////////
70
70
  ///////// Public Functions ///////////
71
71
  //////////////////////////////////////
72
-
72
+
73
73
  renderColumns(row, force){
74
74
  this.dataChange();
75
75
  }
76
-
76
+
77
77
  scrollColumns(left, dir){
78
78
  if(this.scrollLeft != left){
79
79
  this.scrollLeft = left;
80
-
80
+
81
81
  this.scroll(left - (this.vDomScrollPosLeft + this.window));
82
82
  }
83
83
  }
84
-
85
- rerenderColumns(update, blockRedraw){
84
+
85
+ rerenderColumns(update, blockRedraw){
86
86
  var old = {
87
87
  cols:this.columns,
88
88
  leftCol:this.leftCol,
89
89
  rightCol:this.rightCol,
90
90
  };
91
-
91
+
92
92
  if(update && !this.initialized){
93
93
  return;
94
94
  }
95
-
95
+
96
96
  this.clear();
97
-
97
+
98
98
  this.scrollLeft = this.elementVertical.scrollLeft;
99
-
99
+
100
100
  this.vDomScrollPosLeft = this.scrollLeft - this.window;
101
101
  this.vDomScrollPosRight = this.scrollLeft + this.elementVertical.clientWidth + this.window;
102
-
102
+
103
103
  var colPos = 0;
104
-
104
+
105
105
  this.table.columnManager.columnsByIndex.forEach((column) => {
106
106
  var config = {};
107
-
107
+
108
108
  if(column.visible){
109
109
  var width = column.getWidth();
110
-
110
+
111
111
  config.leftPos = colPos;
112
112
  config.rightPos = colPos + width;
113
-
113
+
114
114
  config.width = width;
115
-
115
+
116
116
  if (this.options("layout") === "fitData") {
117
- config.fitDataCheck = true;
117
+ config.fitDataCheck = column.modules.vdomHoz ? column.modules.vdomHoz.fitDataCheck : true;
118
118
  }
119
-
119
+
120
120
  if((colPos + width > this.vDomScrollPosLeft) && (colPos < this.vDomScrollPosRight)){
121
- //column is visible
122
-
123
- if(this.leftCol == -1){
124
- this.leftCol = this.columns.length;
125
- this.vDomPadLeft = colPos;
126
- }
127
-
128
- this.rightCol = this.columns.length;
129
- }else{
130
- // column is hidden
131
- if(this.leftCol !== -1){
132
- this.vDomPadRight += width;
133
- }
134
- }
135
-
136
- this.columns.push(column);
137
-
138
- column.modules.vdomHoz = config;
139
-
140
- colPos += width;
141
- }
142
- });
143
-
121
+ //column is visible
122
+
123
+ if(this.leftCol == -1){
124
+ this.leftCol = this.columns.length;
125
+ this.vDomPadLeft = colPos;
126
+ }
127
+
128
+ this.rightCol = this.columns.length;
129
+ }else{
130
+ // column is hidden
131
+ if(this.leftCol !== -1){
132
+ this.vDomPadRight += width;
133
+ }
134
+ }
135
+
136
+ this.columns.push(column);
137
+
138
+ column.modules.vdomHoz = config;
139
+
140
+ colPos += width;
141
+ }
142
+ });
143
+
144
144
  this.tableElement.style.paddingLeft = this.vDomPadLeft + "px";
145
145
  this.tableElement.style.paddingRight = this.vDomPadRight + "px";
146
-
146
+
147
147
  this.initialized = true;
148
-
148
+
149
149
  if(!blockRedraw){
150
150
  if(!update || this.reinitChanged(old)){
151
- this.renitializeRows();
151
+ this.reinitializeRows();
152
152
  }
153
153
  }
154
-
154
+
155
155
  this.elementVertical.scrollLeft = this.scrollLeft;
156
156
  }
157
-
157
+
158
158
  renderRowCells(row){
159
159
  if(this.initialized){
160
160
  this.initializeRow(row);
@@ -165,88 +165,88 @@ export default class VirtualDomHorizontal extends Renderer{
165
165
  });
166
166
  }
167
167
  }
168
-
168
+
169
169
  rerenderRowCells(row, force){
170
170
  this.reinitializeRow(row, force);
171
171
  }
172
-
172
+
173
173
  reinitializeColumnWidths(columns){
174
174
  for(let i = this.leftCol; i <= this.rightCol; i++){
175
175
  this.columns[i].reinitializeWidth();
176
176
  }
177
177
  }
178
-
178
+
179
179
  //////////////////////////////////////
180
180
  //////// Internal Rendering //////////
181
181
  //////////////////////////////////////
182
-
182
+
183
183
  deinitialize(){
184
184
  this.initialized = false;
185
185
  }
186
-
186
+
187
187
  clear(){
188
188
  this.columns = [];
189
-
189
+
190
190
  this.leftCol = -1;
191
191
  this.rightCol = 0;
192
-
192
+
193
193
  this.vDomScrollPosLeft = 0;
194
194
  this.vDomScrollPosRight = 0;
195
195
  this.vDomPadLeft = 0;
196
196
  this.vDomPadRight = 0;
197
197
  }
198
-
198
+
199
199
  dataChange(){
200
200
  var change = false,
201
201
  collsWidth = 0,
202
202
  colEnd = 0,
203
203
  group, row, rowEl;
204
-
204
+
205
205
  if(this.options("layout") === "fitData"){
206
206
  this.table.columnManager.columnsByIndex.forEach((column) => {
207
207
  if(!column.definition.width && column.visible){
208
208
  change = true;
209
209
  }
210
210
  });
211
-
211
+
212
212
  if(change){
213
213
  if(change && this.table.rowManager.getDisplayRows().length){
214
-
214
+
215
215
  this.vDomScrollPosRight = this.scrollLeft + this.elementVertical.clientWidth + this.window;
216
-
216
+
217
217
  var row = this.chain("rows-sample", [1], [], () => {
218
218
  return this.table.rowManager.getDisplayRows()[0];
219
219
  })[0];
220
-
220
+
221
221
  if(row){
222
-
222
+
223
223
  rowEl = row.getElement();
224
-
224
+
225
225
  row.generateCells();
226
-
226
+
227
227
  this.tableElement.appendChild(rowEl);
228
-
228
+
229
229
  for(var colEnd = 0; colEnd < row.cells.length; colEnd++){
230
230
  let cell = row.cells[colEnd];
231
231
  rowEl.appendChild(cell.getElement());
232
-
232
+
233
233
  cell.column.reinitializeWidth();
234
-
234
+
235
235
  collsWidth += cell.column.getWidth();
236
-
236
+
237
237
  if(collsWidth > this.vDomScrollPosRight){
238
238
  break;
239
239
  }
240
240
  }
241
-
241
+
242
242
  rowEl.parentNode.removeChild(rowEl);
243
-
243
+
244
244
  this.fitDataColAvg = Math.floor(collsWidth / (colEnd + 1));
245
-
245
+
246
246
  for(colEnd; colEnd < this.table.columnManager.columnsByIndex.length; colEnd++){
247
247
  this.table.columnManager.columnsByIndex[colEnd].setWidth(this.fitDataColAvg);
248
248
  }
249
-
249
+
250
250
  this.rerenderColumns(false, true);
251
251
  }
252
252
  }
@@ -258,34 +258,34 @@ export default class VirtualDomHorizontal extends Renderer{
258
258
  }
259
259
  }
260
260
  }
261
-
261
+
262
262
  reinitChanged(old){
263
263
  var match = true;
264
-
264
+
265
265
  if(old.cols.length !== this.columns.length || old.leftCol !== this.leftCol || old.rightCol !== this.rightCol){
266
266
  return true;
267
267
  }
268
-
268
+
269
269
  old.cols.forEach((col, i) => {
270
270
  if(col !== this.columns[i]){
271
271
  match = false;
272
272
  }
273
273
  });
274
-
274
+
275
275
  return !match;
276
276
  }
277
-
278
- renitializeRows(){
277
+
278
+ reinitializeRows(){
279
279
  var rows = this.table.rowManager.getVisibleRows();
280
280
  rows.forEach((row) => {
281
281
  this.reinitializeRow(row, true);
282
282
  });
283
283
  }
284
-
284
+
285
285
  scroll(diff){
286
286
  this.vDomScrollPosLeft += diff;
287
287
  this.vDomScrollPosRight += diff;
288
-
288
+
289
289
  if(diff > (this.elementVertical.clientWidth * .8)){
290
290
  this.rerenderColumns();
291
291
  }else{
@@ -300,24 +300,23 @@ export default class VirtualDomHorizontal extends Renderer{
300
300
  }
301
301
  }
302
302
  }
303
-
303
+
304
304
  colPositionAdjust (start, end, diff){
305
305
  for(let i = start; i < end; i++){
306
306
  let column = this.columns[i];
307
-
307
+
308
308
  column.modules.vdomHoz.leftPos += diff;
309
309
  column.modules.vdomHoz.rightPos += diff;
310
310
  }
311
311
  }
312
-
312
+
313
313
  addColRight(){
314
314
  var column = this.columns[this.rightCol + 1],
315
315
  rows, newWidth, widthDiff;
316
-
316
+
317
317
  if(column && column.modules.vdomHoz.leftPos <= this.vDomScrollPosRight){
318
-
319
318
  rows = this.table.rowManager.getVisibleRows();
320
-
319
+
321
320
  rows.forEach((row) => {
322
321
  if(row.type !== "group"){
323
322
  var cell = row.getCell(column);
@@ -325,30 +324,30 @@ export default class VirtualDomHorizontal extends Renderer{
325
324
  cell.cellRendered();
326
325
  }
327
326
  });
328
-
327
+
329
328
  this.fitDataColActualWidthCheck(column);
330
-
331
- this.rightCol++;
332
-
329
+
330
+ this.rightCol++; // Don't move this below the >= check below
331
+
333
332
  if(this.rightCol >= (this.columns.length - 1)){
334
333
  this.vDomPadRight = 0;
335
334
  }else{
336
335
  this.vDomPadRight -= column.getWidth();
337
336
  }
338
-
337
+
339
338
  this.tableElement.style.paddingRight = this.vDomPadRight + "px";
340
-
339
+
341
340
  this.addColRight();
342
341
  }
343
342
  }
344
-
343
+
345
344
  addColLeft(){
346
345
  var column = this.columns[this.leftCol - 1],
347
346
  rows;
348
-
347
+
349
348
  if(column && column.modules.vdomHoz.rightPos >= this.vDomScrollPosLeft){
350
349
  var rows = this.table.rowManager.getVisibleRows();
351
-
350
+
352
351
  rows.forEach((row) => {
353
352
  if(row.type !== "group"){
354
353
  var cell = row.getCell(column);
@@ -356,119 +355,134 @@ export default class VirtualDomHorizontal extends Renderer{
356
355
  cell.cellRendered();
357
356
  }
358
357
  });
359
-
358
+
360
359
  this.fitDataColActualWidthCheck(column);
360
+
361
+ this.leftCol--; // don't move this below the <= check below
361
362
 
362
- if(!this.leftCol){
363
+ if(this.leftCol <= 0){ // replicating logic in addColRight
363
364
  this.vDomPadLeft = 0;
364
365
  }else{
365
366
  this.vDomPadLeft -= column.getWidth();
366
367
  }
367
-
368
+
368
369
  this.tableElement.style.paddingLeft = this.vDomPadLeft + "px";
369
-
370
- this.leftCol--;
371
-
370
+
371
+
372
372
  this.addColLeft();
373
373
  }
374
374
  }
375
-
375
+
376
376
  removeColRight(column){
377
377
  var column = this.columns[this.rightCol],
378
378
  rows;
379
-
379
+
380
380
  if(column && column.modules.vdomHoz.leftPos > this.vDomScrollPosRight){
381
381
  rows = this.table.rowManager.getVisibleRows();
382
-
382
+
383
383
  column.modules.vdomHoz.visible = false;
384
-
384
+
385
385
  rows.forEach((row) => {
386
386
  if(row.type !== "group"){
387
387
  var cell = row.getCell(column);
388
- row.getElement().removeChild(cell.getElement());
388
+ try {
389
+ row.getElement().removeChild(cell.getElement());
390
+ } catch (ex) {
391
+ console.warn("Could not removeColRight", ex.message)
392
+ }
389
393
  }
390
394
  });
391
-
395
+
392
396
  this.vDomPadRight += column.getWidth();
393
397
  this.tableElement.style.paddingRight = this.vDomPadRight + "px";
394
-
398
+
395
399
  this.rightCol --;
396
-
400
+
397
401
  this.removeColRight();
398
402
  }
399
403
  }
400
-
404
+
401
405
  removeColLeft(){
402
406
  var column = this.columns[this.leftCol],
403
407
  rows;
404
-
405
- if(column && column.modules.vdomHoz.rightPos < this.vDomScrollPosLeft){
406
-
408
+
409
+ if(column && column.modules.vdomHoz.rightPos < this.vDomScrollPosLeft){
407
410
  rows = this.table.rowManager.getVisibleRows();
408
-
411
+
409
412
  rows.forEach((row) => {
413
+ var cell, el;
414
+
410
415
  if(row.type !== "group"){
411
- var cell = row.getCell(column);
412
- if(cell.parentNode){
413
- row.getElement().removeChild(cell.getElement());
416
+ cell = row.getCell(column);
417
+
418
+ if(cell){
419
+ el = cell.getElement();
420
+
421
+ if(el.parentNode){
422
+ try {
423
+ row.getElement().removeChild(el);
424
+ } catch (ex) {
425
+ console.warn("Could not removeColLeft", ex.message)
426
+ }
427
+ }
414
428
  }
415
429
  }
416
430
  });
417
-
431
+
418
432
  this.vDomPadLeft += column.getWidth();
419
433
  this.tableElement.style.paddingLeft = this.vDomPadLeft + "px";
420
-
434
+
421
435
  this.leftCol ++;
422
-
436
+
423
437
  this.removeColLeft();
424
438
  }
425
439
  }
426
-
440
+
427
441
  fitDataColActualWidthCheck(column){
428
442
  var newWidth, widthDiff;
429
-
443
+
430
444
  if(column.modules.vdomHoz.fitDataCheck){
431
445
  column.reinitializeWidth();
432
-
446
+
433
447
  newWidth = column.getWidth();
434
448
  widthDiff = newWidth - column.modules.vdomHoz.width;
435
-
449
+
436
450
  if(widthDiff){
437
451
  column.modules.vdomHoz.rightPos += widthDiff;
438
452
  column.modules.vdomHoz.width = newWidth;
439
453
  this.colPositionAdjust(this.rightCol + 2, this.columns.length, widthDiff);
440
454
  }
441
-
455
+
442
456
  column.modules.vdomHoz.fitDataCheck = false;
443
457
  }
444
458
  };
445
-
459
+
446
460
  initializeRow(row){
447
461
  if(row.type !== "group"){
448
462
  row.modules.vdomHoz = {
449
463
  leftCol:this.leftCol,
450
464
  rightCol:this.rightCol,
451
465
  };
452
-
466
+
453
467
  for(let i = this.leftCol; i <= this.rightCol; i++){
454
468
  let column = this.columns[i];
455
-
469
+
456
470
  if(column && column.visible){
457
471
  let cell = row.getCell(column);
458
-
472
+
459
473
  row.getElement().appendChild(cell.getElement());
460
474
  cell.cellRendered();
461
475
  }
462
476
  }
463
477
  }
464
478
  }
465
-
479
+
466
480
  reinitializeRow(row, force){
467
481
  if(row.type !== "group"){
468
482
  if(force || !row.modules.vdomHoz || row.modules.vdomHoz.leftCol !== this.leftCol || row.modules.vdomHoz.rightCol !== this.rightCol){
469
483
  var rowEl = row.getElement();
470
484
  while(rowEl.firstChild) rowEl.removeChild(rowEl.firstChild);
471
-
485
+
472
486
  this.initializeRow(row);
473
487
  }
474
488
  }
@@ -84,12 +84,12 @@ export default class Row extends CoreFeature{
84
84
 
85
85
  this.dispatch("row-layout", this);
86
86
 
87
+ this.initialized = true;
88
+
87
89
  if(this.table.options.rowFormatter){
88
90
  this.table.options.rowFormatter(this.getComponent());
89
91
  }
90
92
 
91
- this.initialized = true;
92
-
93
93
  this.dispatch("row-layout-after", this);
94
94
  }else{
95
95
  this.table.columnManager.renderer.rerenderRowCells(this);
@@ -64,7 +64,7 @@ export default class DataLoader extends CoreFeature{
64
64
  data = JSON.parse(data);
65
65
  }
66
66
 
67
- if(this.confirm("data-loading", data, params, config, silent)){
67
+ if(this.confirm("data-loading", [data, params, config, silent])){
68
68
  this.loading = true;
69
69
 
70
70
  if(!silent){
@@ -76,8 +76,8 @@ export default class DataLoader extends CoreFeature{
76
76
 
77
77
  params = this.mapParams(params, this.table.options.dataSendParams);
78
78
 
79
- var result = this.chain("data-load", [data, params, config, silent], Promise.resolve([]));
80
-
79
+ var result = this.chain("data-load", [data, params, config, silent], false, Promise.resolve([]));
80
+
81
81
  return result.then((response) => {
82
82
  if(!Array.isArray(response) && typeof response == "object"){
83
83
  response = this.mapParams(response, this.objectInvert(this.table.options.dataReceiveParams));
@@ -102,10 +102,10 @@ export default class DataLoader extends CoreFeature{
102
102
  if(!silent){
103
103
  this.showError();
104
104
  }
105
-
105
+
106
106
  setTimeout(() => {
107
107
  this.hideLoader();
108
- }, 3000);
108
+ }, this.table.options.dataLoaderErrorTimeout);
109
109
  })
110
110
  .finally(() => {
111
111
  this.loading = false;