tabulator-tables 5.2.5 → 5.3.0

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 (216) hide show
  1. package/.eslintignore +3 -0
  2. package/.eslintrc.js +28 -0
  3. package/.github/ISSUE_TEMPLATE/bug_report.md +1 -0
  4. package/.github/workflows/bad-files-check.yml +39 -0
  5. package/.github/workflows/lint-and-test.yml +31 -0
  6. package/README.md +18 -6
  7. package/bower.json +1 -1
  8. package/build/Bundler.js +77 -77
  9. package/dist/css/tabulator.css +16 -11
  10. package/dist/css/tabulator.css.map +1 -1
  11. package/dist/css/tabulator.min.css +1 -1
  12. package/dist/css/tabulator.min.css.map +1 -1
  13. package/dist/css/tabulator_bootstrap3.css +16 -11
  14. package/dist/css/tabulator_bootstrap3.css.map +1 -1
  15. package/dist/css/tabulator_bootstrap3.min.css +1 -1
  16. package/dist/css/tabulator_bootstrap3.min.css.map +1 -1
  17. package/dist/css/tabulator_bootstrap4.css +16 -11
  18. package/dist/css/tabulator_bootstrap4.css.map +1 -1
  19. package/dist/css/tabulator_bootstrap4.min.css +1 -1
  20. package/dist/css/tabulator_bootstrap4.min.css.map +1 -1
  21. package/dist/css/tabulator_bootstrap5.css +55 -50
  22. package/dist/css/tabulator_bootstrap5.css.map +1 -1
  23. package/dist/css/tabulator_bootstrap5.min.css +1 -1
  24. package/dist/css/tabulator_bootstrap5.min.css.map +1 -1
  25. package/dist/css/tabulator_bulma.css +16 -11
  26. package/dist/css/tabulator_bulma.css.map +1 -1
  27. package/dist/css/tabulator_bulma.min.css +1 -1
  28. package/dist/css/tabulator_bulma.min.css.map +1 -1
  29. package/dist/css/tabulator_materialize.css +16 -11
  30. package/dist/css/tabulator_materialize.css.map +1 -1
  31. package/dist/css/tabulator_materialize.min.css +1 -1
  32. package/dist/css/tabulator_materialize.min.css.map +1 -1
  33. package/dist/css/tabulator_midnight.css +16 -11
  34. package/dist/css/tabulator_midnight.css.map +1 -1
  35. package/dist/css/tabulator_midnight.min.css +1 -1
  36. package/dist/css/tabulator_midnight.min.css.map +1 -1
  37. package/dist/css/tabulator_modern.css +16 -11
  38. package/dist/css/tabulator_modern.css.map +1 -1
  39. package/dist/css/tabulator_modern.min.css +1 -1
  40. package/dist/css/tabulator_modern.min.css.map +1 -1
  41. package/dist/css/tabulator_semanticui.css +16 -11
  42. package/dist/css/tabulator_semanticui.css.map +1 -1
  43. package/dist/css/tabulator_semanticui.min.css +1 -1
  44. package/dist/css/tabulator_semanticui.min.css.map +1 -1
  45. package/dist/css/tabulator_simple.css +16 -11
  46. package/dist/css/tabulator_simple.css.map +1 -1
  47. package/dist/css/tabulator_simple.min.css +1 -1
  48. package/dist/css/tabulator_simple.min.css.map +1 -1
  49. package/dist/css/tabulator_site.css +16 -11
  50. package/dist/css/tabulator_site.css.map +1 -1
  51. package/dist/css/tabulator_site.min.css +1 -1
  52. package/dist/css/tabulator_site.min.css.map +1 -1
  53. package/dist/js/jquery_wrapper.js +37 -37
  54. package/dist/js/tabulator.js +1423 -686
  55. package/dist/js/tabulator.js.map +1 -1
  56. package/dist/js/tabulator.min.js +2 -2
  57. package/dist/js/tabulator.min.js.map +1 -1
  58. package/dist/js/tabulator_esm.js +4140 -3440
  59. package/dist/js/tabulator_esm.js.map +1 -1
  60. package/dist/js/tabulator_esm.min.js +2 -2
  61. package/dist/js/tabulator_esm.min.js.map +1 -1
  62. package/package.json +4 -1
  63. package/src/js/builds/jquery_wrapper.js +37 -37
  64. package/src/js/core/ColumnManager.js +259 -231
  65. package/src/js/core/CoreFeature.js +16 -2
  66. package/src/js/core/FooterManager.js +10 -10
  67. package/src/js/core/Module.js +8 -8
  68. package/src/js/core/RowManager.js +79 -88
  69. package/src/js/core/Tabulator.js +89 -72
  70. package/src/js/core/TabulatorFull.js +1 -1
  71. package/src/js/core/cell/Cell.js +15 -16
  72. package/src/js/core/cell/CellComponent.js +2 -2
  73. package/src/js/core/column/Column.js +55 -66
  74. package/src/js/core/column/ColumnComponent.js +4 -4
  75. package/src/js/core/column/defaults/options.js +1 -1
  76. package/src/js/core/defaults/options.js +4 -2
  77. package/src/js/core/rendering/Renderer.js +19 -19
  78. package/src/js/core/rendering/renderers/BasicHorizontal.js +1 -2
  79. package/src/js/core/rendering/renderers/BasicVertical.js +1 -1
  80. package/src/js/core/rendering/renderers/VirtualDomHorizontal.js +42 -58
  81. package/src/js/core/rendering/renderers/VirtualDomVertical.js +31 -22
  82. package/src/js/core/row/Row.js +32 -8
  83. package/src/js/core/row/RowComponent.js +8 -4
  84. package/src/js/core/tools/Alert.js +44 -45
  85. package/src/js/core/tools/ComponentFunctionBinder.js +4 -2
  86. package/src/js/core/tools/DataLoader.js +3 -3
  87. package/src/js/core/tools/DeprecationAdvisor.js +47 -0
  88. package/src/js/core/tools/ExternalEventBus.js +5 -5
  89. package/src/js/core/tools/InteractionMonitor.js +31 -32
  90. package/src/js/core/tools/InternalEventBus.js +5 -5
  91. package/src/js/core/tools/ModuleBinder.js +6 -6
  92. package/src/js/core/tools/OptionsList.js +4 -4
  93. package/src/js/core/tools/Popup.js +215 -189
  94. package/src/js/modules/Accessor/Accessor.js +16 -16
  95. package/src/js/modules/Accessor/defaults/accessors.js +1 -1
  96. package/src/js/modules/Ajax/Ajax.js +7 -7
  97. package/src/js/modules/Ajax/defaults/loaderPromise.js +19 -19
  98. package/src/js/modules/Ajax/defaults/urlGenerator.js +1 -1
  99. package/src/js/modules/Clipboard/Clipboard.js +23 -23
  100. package/src/js/modules/Clipboard/defaults/pasteParsers.js +0 -2
  101. package/src/js/modules/ColumnCalcs/CalcComponent.js +2 -2
  102. package/src/js/modules/ColumnCalcs/ColumnCalcs.js +54 -50
  103. package/src/js/modules/ColumnCalcs/defaults/calculations.js +1 -1
  104. package/src/js/modules/DataTree/DataTree.js +19 -14
  105. package/src/js/modules/Download/Download.js +15 -8
  106. package/src/js/modules/Download/defaults/downloaders/csv.js +28 -28
  107. package/src/js/modules/Download/defaults/downloaders/html.js +2 -2
  108. package/src/js/modules/Download/defaults/downloaders/json.js +14 -14
  109. package/src/js/modules/Download/defaults/downloaders/jsonLines.js +1 -1
  110. package/src/js/modules/Download/defaults/downloaders/pdf.js +17 -19
  111. package/src/js/modules/Download/defaults/downloaders/xlsx.js +2 -2
  112. package/src/js/modules/Edit/Edit.js +219 -201
  113. package/src/js/modules/Edit/List.js +1026 -991
  114. package/src/js/modules/Edit/defaults/editors/autocomplete.js +3 -3
  115. package/src/js/modules/Edit/defaults/editors/date.js +110 -0
  116. package/src/js/modules/Edit/defaults/editors/datetime.js +97 -0
  117. package/src/js/modules/Edit/defaults/editors/input.js +7 -7
  118. package/src/js/modules/Edit/defaults/editors/list.js +2 -2
  119. package/src/js/modules/Edit/defaults/editors/number.js +12 -12
  120. package/src/js/modules/Edit/defaults/editors/progress.js +11 -11
  121. package/src/js/modules/Edit/defaults/editors/range.js +5 -5
  122. package/src/js/modules/Edit/defaults/editors/select.js +3 -3
  123. package/src/js/modules/Edit/defaults/editors/star.js +9 -9
  124. package/src/js/modules/Edit/defaults/editors/textarea.js +97 -92
  125. package/src/js/modules/Edit/defaults/editors/tickCross.js +1 -3
  126. package/src/js/modules/Edit/defaults/editors/time.js +98 -0
  127. package/src/js/modules/Edit/defaults/editors.js +8 -2
  128. package/src/js/modules/Edit/inputMask.js +19 -26
  129. package/src/js/modules/Export/Export.js +69 -65
  130. package/src/js/modules/Filter/Filter.js +85 -95
  131. package/src/js/modules/Format/Format.js +24 -26
  132. package/src/js/modules/Format/defaults/formatters/buttonCross.js +1 -1
  133. package/src/js/modules/Format/defaults/formatters/buttonTick.js +1 -1
  134. package/src/js/modules/Format/defaults/formatters/color.js +1 -1
  135. package/src/js/modules/Format/defaults/formatters/datetime.js +7 -7
  136. package/src/js/modules/Format/defaults/formatters/datetimediff.js +7 -7
  137. package/src/js/modules/Format/defaults/formatters/handle.js +1 -1
  138. package/src/js/modules/Format/defaults/formatters/html.js +1 -1
  139. package/src/js/modules/Format/defaults/formatters/image.js +9 -9
  140. package/src/js/modules/Format/defaults/formatters/link.js +10 -10
  141. package/src/js/modules/Format/defaults/formatters/lookup.js +1 -1
  142. package/src/js/modules/Format/defaults/formatters/money.js +1 -1
  143. package/src/js/modules/Format/defaults/formatters/plaintext.js +1 -1
  144. package/src/js/modules/Format/defaults/formatters/progress.js +41 -42
  145. package/src/js/modules/Format/defaults/formatters/responsiveCollapse.js +3 -3
  146. package/src/js/modules/Format/defaults/formatters/rowSelection.js +1 -1
  147. package/src/js/modules/Format/defaults/formatters/rownum.js +9 -2
  148. package/src/js/modules/Format/defaults/formatters/star.js +1 -1
  149. package/src/js/modules/Format/defaults/formatters/textarea.js +1 -1
  150. package/src/js/modules/Format/defaults/formatters/tickCross.js +1 -1
  151. package/src/js/modules/Format/defaults/formatters/traffic.js +14 -14
  152. package/src/js/modules/FrozenColumns/FrozenColumns.js +6 -8
  153. package/src/js/modules/FrozenRows/FrozenRows.js +37 -7
  154. package/src/js/modules/GroupRows/Group.js +3 -3
  155. package/src/js/modules/GroupRows/GroupComponent.js +2 -2
  156. package/src/js/modules/GroupRows/GroupRows.js +12 -11
  157. package/src/js/modules/History/History.js +2 -2
  158. package/src/js/modules/HtmlTableImport/HtmlTableImport.js +3 -6
  159. package/src/js/modules/Import/Import.js +158 -159
  160. package/src/js/modules/Import/defaults/importers/array.js +5 -0
  161. package/src/js/modules/Import/defaults/importers/csv.js +49 -49
  162. package/src/js/modules/Import/defaults/importers/json.js +6 -6
  163. package/src/js/modules/Import/defaults/importers.js +2 -0
  164. package/src/js/modules/Interaction/Interaction.js +39 -40
  165. package/src/js/modules/Keybindings/Keybindings.js +14 -14
  166. package/src/js/modules/Keybindings/defaults/actions.js +1 -2
  167. package/src/js/modules/Layout/Layout.js +4 -5
  168. package/src/js/modules/Layout/defaults/modes/fitColumns.js +9 -10
  169. package/src/js/modules/Layout/defaults/modes/fitData.js +6 -4
  170. package/src/js/modules/Layout/defaults/modes/fitDataGeneral.js +2 -2
  171. package/src/js/modules/Layout/defaults/modes/fitDataStretch.js +2 -2
  172. package/src/js/modules/Localize/Localize.js +7 -7
  173. package/src/js/modules/Menu/Menu.js +8 -11
  174. package/src/js/modules/MoveColumns/MoveColumns.js +3 -6
  175. package/src/js/modules/MoveRows/MoveRows.js +30 -36
  176. package/src/js/modules/Mutator/Mutator.js +9 -9
  177. package/src/js/modules/Page/Page.js +73 -80
  178. package/src/js/modules/Page/defaults/pageCounters/pages.js +2 -2
  179. package/src/js/modules/Page/defaults/pageCounters/rows.js +1 -1
  180. package/src/js/modules/Persistence/Persistence.js +40 -44
  181. package/src/js/modules/Persistence/defaults/readers.js +1 -1
  182. package/src/js/modules/Popup/Popup.js +4 -5
  183. package/src/js/modules/Print/Print.js +2 -2
  184. package/src/js/modules/ReactiveData/ReactiveData.js +178 -115
  185. package/src/js/modules/ResizeColumns/ResizeColumns.js +3 -3
  186. package/src/js/modules/ResizeRows/ResizeRows.js +1 -1
  187. package/src/js/modules/ResizeTable/ResizeTable.js +77 -46
  188. package/src/js/modules/ResponsiveLayout/ResponsiveLayout.js +0 -3
  189. package/src/js/modules/SelectRow/SelectRow.js +26 -28
  190. package/src/js/modules/Sort/Sort.js +110 -79
  191. package/src/js/modules/Sort/defaults/sorters/alphanum.js +1 -1
  192. package/src/js/modules/Sort/defaults/sorters/array.js +24 -28
  193. package/src/js/modules/Sort/defaults/sorters/boolean.js +1 -1
  194. package/src/js/modules/Sort/defaults/sorters/date.js +1 -1
  195. package/src/js/modules/Sort/defaults/sorters/datetime.js +13 -13
  196. package/src/js/modules/Sort/defaults/sorters/exists.js +1 -1
  197. package/src/js/modules/Sort/defaults/sorters/number.js +1 -1
  198. package/src/js/modules/Sort/defaults/sorters/string.js +7 -7
  199. package/src/js/modules/Sort/defaults/sorters/time.js +1 -1
  200. package/src/js/modules/Tooltip/Tooltip.js +5 -7
  201. package/src/js/modules/Validate/Validate.js +10 -13
  202. package/src/js/modules/Validate/defaults/validators.js +8 -3
  203. package/src/scss/tabulator.scss +30 -19
  204. package/src/scss/themes/bootstrap/functions4.scss +1 -1
  205. package/src/scss/themes/bootstrap/tabulator_bootstrap3.scss +8 -8
  206. package/src/scss/themes/bootstrap/tabulator_bootstrap4.scss +8 -8
  207. package/src/scss/themes/bootstrap/tabulator_bootstrap5.scss +25 -25
  208. package/src/scss/themes/bootstrap/variables5.scss +4 -4
  209. package/src/scss/themes/bulma/tabulator_bulma.scss +7 -7
  210. package/src/scss/themes/materialize/tabulator_materialize.scss +6 -6
  211. package/src/scss/themes/materialize/variables.scss +1 -1
  212. package/src/scss/themes/semanticui/tabulator_semanticui.scss +7 -7
  213. package/src/scss/themes/tabulator_midnight.scss +7 -7
  214. package/src/scss/themes/tabulator_modern.scss +14 -14
  215. package/src/scss/themes/tabulator_simple.scss +8 -8
  216. package/src/scss/themes/tabulator_site.scss +15 -15
@@ -39,12 +39,12 @@ class Column extends CoreFeature{
39
39
  this.modules = {}; //hold module variables;
40
40
 
41
41
  this.width = null; //column width
42
- this.widthStyled = ""; //column width prestyled to improve render efficiency
42
+ this.widthStyled = ""; //column width pre-styled to improve render efficiency
43
43
  this.maxWidth = null; //column maximum width
44
- this.maxWidthStyled = ""; //column maximum prestyled to improve render efficiency
44
+ this.maxWidthStyled = ""; //column maximum pre-styled to improve render efficiency
45
45
  this.maxInitialWidth = null;
46
46
  this.minWidth = null; //column minimum width
47
- this.minWidthStyled = ""; //column minimum prestyled to improve render efficiency
47
+ this.minWidthStyled = ""; //column minimum pre-styled to improve render efficiency
48
48
  this.widthFixed = false; //user has specified a width for this column
49
49
 
50
50
  this.visible = true; //default visible state
@@ -67,8 +67,6 @@ class Column extends CoreFeature{
67
67
  }
68
68
 
69
69
  this._initialize();
70
-
71
- this.bindModuleColumns();
72
70
  }
73
71
 
74
72
  createElement (){
@@ -78,6 +76,15 @@ class Column extends CoreFeature{
78
76
  el.setAttribute("role", "columnheader");
79
77
  el.setAttribute("aria-sort", "none");
80
78
 
79
+ switch(this.table.options.columnHeaderVertAlign){
80
+ case "middle":
81
+ el.style.justifyContent = "center";
82
+ break;
83
+ case "bottom":
84
+ el.style.justifyContent = "flex-end";
85
+ break;
86
+ }
87
+
81
88
  return el;
82
89
  }
83
90
 
@@ -101,13 +108,13 @@ class Column extends CoreFeature{
101
108
  }
102
109
  }
103
110
 
104
- this.definition = this.table.columnManager.optionsList.generate(Column.defaultOptionList, this.definition)
111
+ this.definition = this.table.columnManager.optionsList.generate(Column.defaultOptionList, this.definition);
105
112
  }
106
113
 
107
114
  checkDefinition(){
108
115
  Object.keys(this.definition).forEach((key) => {
109
116
  if(Column.defaultOptionList.indexOf(key) === -1){
110
- console.warn("Invalid column definition option in '" + (this.field || this.definition.title) + "' column:", key)
117
+ console.warn("Invalid column definition option in '" + (this.field || this.definition.title) + "' column:", key);
111
118
  }
112
119
  });
113
120
  }
@@ -140,10 +147,6 @@ class Column extends CoreFeature{
140
147
  }
141
148
  }
142
149
 
143
- _mapDepricatedFunctionality(){
144
- //all previously deprecated functionality removed in the 5.0 release
145
- }
146
-
147
150
  //build header element
148
151
  _initialize(){
149
152
  var def = this.definition;
@@ -173,8 +176,7 @@ class Column extends CoreFeature{
173
176
 
174
177
  //build header element for header
175
178
  _buildColumnHeader(){
176
- var def = this.definition,
177
- table = this.table;
179
+ var def = this.definition;
178
180
 
179
181
  this.dispatch("column-layout", this);
180
182
 
@@ -187,10 +189,10 @@ class Column extends CoreFeature{
187
189
  }
188
190
  }
189
191
 
190
- //asign additional css classes to column header
192
+ //assign additional css classes to column header
191
193
  if(def.cssClass){
192
- var classeNames = def.cssClass.split(" ");
193
- classeNames.forEach((className) => {
194
+ var classNames = def.cssClass.split(" ");
195
+ classNames.forEach((className) => {
194
196
  this.element.classList.add(className);
195
197
  });
196
198
  }
@@ -212,7 +214,7 @@ class Column extends CoreFeature{
212
214
 
213
215
  this.reinitializeWidth();
214
216
 
215
- //set orizontal text alignment
217
+ //set horizontal text alignment
216
218
  this.hozAlign = this.definition.hozAlign;
217
219
  this.vertAlign = this.definition.vertAlign;
218
220
 
@@ -220,9 +222,6 @@ class Column extends CoreFeature{
220
222
  }
221
223
 
222
224
  _buildColumnHeaderContent(){
223
- var def = this.definition,
224
- table = this.table;
225
-
226
225
  var contentElement = document.createElement("div");
227
226
  contentElement.classList.add("tabulator-col-content");
228
227
 
@@ -240,8 +239,7 @@ class Column extends CoreFeature{
240
239
 
241
240
  //build title element of column
242
241
  _buildColumnHeaderTitle(){
243
- var def = this.definition,
244
- title;
242
+ var def = this.definition;
245
243
 
246
244
  var titleHolderElement = document.createElement("div");
247
245
  titleHolderElement.classList.add("tabulator-col-title");
@@ -290,18 +288,18 @@ class Column extends CoreFeature{
290
288
 
291
289
  switch(typeof contents){
292
290
  case "object":
293
- if(contents instanceof Node){
294
- el.appendChild(contents);
295
- }else{
296
- el.innerHTML = "";
297
- console.warn("Format Error - Title formatter has returned a type of object, the only valid formatter object return is an instance of Node, the formatter returned:", contents);
298
- }
299
- break;
291
+ if(contents instanceof Node){
292
+ el.appendChild(contents);
293
+ }else{
294
+ el.innerHTML = "";
295
+ console.warn("Format Error - Title formatter has returned a type of object, the only valid formatter object return is an instance of Node, the formatter returned:", contents);
296
+ }
297
+ break;
300
298
  case "undefined":
301
- el.innerHTML = "";
302
- break;
299
+ el.innerHTML = "";
300
+ break;
303
301
  default:
304
- el.innerHTML = contents;
302
+ el.innerHTML = contents;
305
303
  }
306
304
  }
307
305
 
@@ -313,8 +311,8 @@ class Column extends CoreFeature{
313
311
 
314
312
  //asign additional css classes to column header
315
313
  if(this.definition.cssClass){
316
- var classeNames = this.definition.cssClass.split(" ");
317
- classeNames.forEach((className) => {
314
+ var classNames = this.definition.cssClass.split(" ");
315
+ classNames.forEach((className) => {
318
316
  this.element.classList.add(className);
319
317
  });
320
318
  }
@@ -409,20 +407,20 @@ class Column extends CoreFeature{
409
407
  }
410
408
 
411
409
  //vertically align cell contents
412
- if(!this.isGroup && alignment !== "top"){
413
- if(alignment === "bottom"){
414
- this.element.style.paddingTop = (this.element.clientHeight - this.contentElement.offsetHeight) + "px";
415
- }else{
416
- this.element.style.paddingTop = ((this.element.clientHeight - this.contentElement.offsetHeight) / 2) + "px";
417
- }
418
- }
410
+ // if(!this.isGroup && alignment !== "top"){
411
+ // if(alignment === "bottom"){
412
+ // this.element.style.paddingTop = (this.element.clientHeight - this.contentElement.offsetHeight) + "px";
413
+ // }else{
414
+ // this.element.style.paddingTop = ((this.element.clientHeight - this.contentElement.offsetHeight) / 2) + "px";
415
+ // }
416
+ // }
419
417
 
420
418
  this.columns.forEach(function(column){
421
419
  column.verticalAlign(alignment);
422
420
  });
423
421
  }
424
422
 
425
- //clear vertical alignmenet
423
+ //clear vertical alignment
426
424
  clearVerticalAlign(){
427
425
  this.element.style.paddingTop = "";
428
426
  this.element.style.height = "";
@@ -436,20 +434,13 @@ class Column extends CoreFeature{
436
434
  this.dispatch("column-height", this, "");
437
435
  }
438
436
 
439
- bindModuleColumns (){
440
- //check if rownum formatter is being used on a column
441
- if(this.definition.formatter == "rownum"){
442
- this.table.rowManager.rowNumColumn = this;
443
- }
444
- }
445
-
446
- //// Retreive Column Information ////
437
+ //// Retrieve Column Information ////
447
438
  //return column header element
448
439
  getElement(){
449
440
  return this.element;
450
441
  }
451
442
 
452
- //return colunm group element
443
+ //return column group element
453
444
  getGroupElement(){
454
445
  return this.groupElement;
455
446
  }
@@ -499,7 +490,7 @@ class Column extends CoreFeature{
499
490
  return this.cells;
500
491
  }
501
492
 
502
- //retreive the top column in a group of columns
493
+ //retrieve the top column in a group of columns
503
494
  getTopColumn(){
504
495
  if(this.parent.isGroup){
505
496
  return this.parent.getTopColumn();
@@ -573,7 +564,7 @@ class Column extends CoreFeature{
573
564
  }
574
565
 
575
566
  if(!this.silent){
576
- this.table.columnManager.renderer.rerenderColumns();
567
+ this.table.columnManager.rerenderColumns();
577
568
  }
578
569
  }
579
570
  }
@@ -606,7 +597,7 @@ class Column extends CoreFeature{
606
597
  }
607
598
 
608
599
  if(!this.silent){
609
- this.table.columnManager.renderer.rerenderColumns();
600
+ this.table.columnManager.rerenderColumns();
610
601
  }
611
602
  }
612
603
  }
@@ -742,8 +733,6 @@ class Column extends CoreFeature{
742
733
 
743
734
  delete(){
744
735
  return new Promise((resolve, reject) => {
745
- var index;
746
-
747
736
  if(this.isGroup){
748
737
  this.columns.forEach(function(column){
749
738
  column.delete();
@@ -773,7 +762,7 @@ class Column extends CoreFeature{
773
762
 
774
763
  this.table.columnManager.deregisterColumn(this);
775
764
 
776
- this.table.columnManager.renderer.rerenderColumns(true);
765
+ this.table.columnManager.rerenderColumns(true);
777
766
 
778
767
  resolve();
779
768
  });
@@ -877,18 +866,18 @@ class Column extends CoreFeature{
877
866
  definition = Object.assign(definition, updates);
878
867
 
879
868
  return this.table.columnManager.addColumn(definition, false, this)
880
- .then((column) => {
869
+ .then((column) => {
881
870
 
882
- if(definition.field == this.field){
883
- this.field = false; //cleair field name to prevent deletion of duplicate column from arrays
884
- }
871
+ if(definition.field == this.field){
872
+ this.field = false; //clear field name to prevent deletion of duplicate column from arrays
873
+ }
885
874
 
886
- return this.delete()
887
- .then(() => {
888
- return column.getComponent();
889
- });
875
+ return this.delete()
876
+ .then(() => {
877
+ return column.getComponent();
878
+ });
890
879
 
891
- });
880
+ });
892
881
  }else{
893
882
  console.error("Column Update Error - The updateDefinition function is only available on ungrouped columns");
894
883
  return Promise.reject("Column Update Error - The updateDefinition function is only available on columns, not column groups");
@@ -11,10 +11,10 @@ export default class ColumnComponent {
11
11
  if (typeof target[name] !== "undefined") {
12
12
  return target[name];
13
13
  }else{
14
- return target._column.table.componentFunctionBinder.handle("column", target._column, name)
14
+ return target._column.table.componentFunctionBinder.handle("column", target._column, name);
15
15
  }
16
16
  }
17
- })
17
+ });
18
18
  }
19
19
 
20
20
  getElement(){
@@ -111,7 +111,7 @@ export default class ColumnComponent {
111
111
  var toColumn = this._column.table.columnManager.findColumn(to);
112
112
 
113
113
  if(toColumn){
114
- this._column.table.columnManager.moveColumn(this._column, toColumn, after)
114
+ this._column.table.columnManager.moveColumn(this._column, toColumn, after);
115
115
  }else{
116
116
  console.warn("Move Error - No matching column found:", toColumn);
117
117
  }
@@ -146,7 +146,7 @@ export default class ColumnComponent {
146
146
  result = this._column.setWidth(width);
147
147
  }
148
148
 
149
- this._column.table.columnManager.renderer.rerenderColumns(true);
149
+ this._column.table.columnManager.rerenderColumns(true);
150
150
 
151
151
  return result;
152
152
  }
@@ -14,4 +14,4 @@ export default {
14
14
  "headerVertical": undefined,
15
15
  "headerHozAlign": undefined,
16
16
  "editableTitle": undefined,
17
- }
17
+ };
@@ -3,7 +3,9 @@ export default {
3
3
  debugEventsExternal:false, //flag to console log events
4
4
  debugEventsInternal:false, //flag to console log events
5
5
  debugInvalidOptions:true, //allow toggling of invalid option warnings
6
- debugInitialization:true, //allow toggling of invalid option warnings
6
+ debugInvalidComponentFuncs:true, //allow toggling of invalid component warnings
7
+ debugInitialization:true, //allow toggling of pre initialization function call warnings
8
+ debugDeprecation:true, //allow toggling of deprecation warnings
7
9
 
8
10
  height:false, //height of tabulator
9
11
  minHeight:false, //minimum height of tabulator
@@ -60,4 +62,4 @@ export default {
60
62
  dataSendParams:{},
61
63
 
62
64
  dataReceiveParams:{},
63
- }
65
+ };
@@ -9,7 +9,7 @@ export default class Renderer extends CoreFeature{
9
9
  this.elementHorizontal = table.columnManager.element;
10
10
  this.tableElement = table.rowManager.tableElement;
11
11
 
12
- this.verticalFillMode = "fit"; // used by row manager to determin how to size the render area ("fit" - fits container to the contents, "fill" - fills the contianer without resizing it)
12
+ this.verticalFillMode = "fit"; // used by row manager to determine how to size the render area ("fit" - fits container to the contents, "fill" - fills the container without resizing it)
13
13
  }
14
14
 
15
15
 
@@ -67,11 +67,11 @@ export default class Renderer extends CoreFeature{
67
67
  }
68
68
 
69
69
  scrollRows(top, dir){
70
- //handle vertical scolling
70
+ //handle vertical scrolling
71
71
  }
72
72
 
73
73
  resize(){
74
- //container has rezied, carry out any needed recalculations (DO NOT RERENDER IN THIS FUNCTION)
74
+ //container has resized, carry out any needed recalculations (DO NOT RERENDER IN THIS FUNCTION)
75
75
  }
76
76
 
77
77
  scrollToRow(row){
@@ -79,7 +79,7 @@ export default class Renderer extends CoreFeature{
79
79
  }
80
80
 
81
81
  scrollToRowNearestTop(row){
82
- //determine weather the row is nearest the top or bottom of the table, retur true for top or false for bottom
82
+ //determine weather the row is nearest the top or bottom of the table, return true for top or false for bottom
83
83
  }
84
84
 
85
85
  visibleRows(includingBuffer){
@@ -159,7 +159,7 @@ export default class Renderer extends CoreFeature{
159
159
  }
160
160
 
161
161
  if(position === "nearest"){
162
- position = this.scrollToRowNearestTop(row) ? "top" : "bottom"
162
+ position = this.scrollToRowNearestTop(row) ? "top" : "bottom";
163
163
  }
164
164
 
165
165
  //scroll to row
@@ -170,27 +170,27 @@ export default class Renderer extends CoreFeature{
170
170
  case "middle":
171
171
  case "center":
172
172
 
173
- if(this.elementVertical.scrollHeight - this.elementVertical.scrollTop == this.elementVertical.clientHeight){
174
- this.elementVertical.scrollTop = this.elementVertical.scrollTop + (rowEl.offsetTop - this.elementVertical.scrollTop) - ((this.elementVertical.scrollHeight - rowEl.offsetTop) / 2);
175
- }else{
176
- this.elementVertical.scrollTop = this.elementVertical.scrollTop - (this.elementVertical.clientHeight / 2);
177
- }
173
+ if(this.elementVertical.scrollHeight - this.elementVertical.scrollTop == this.elementVertical.clientHeight){
174
+ this.elementVertical.scrollTop = this.elementVertical.scrollTop + (rowEl.offsetTop - this.elementVertical.scrollTop) - ((this.elementVertical.scrollHeight - rowEl.offsetTop) / 2);
175
+ }else{
176
+ this.elementVertical.scrollTop = this.elementVertical.scrollTop - (this.elementVertical.clientHeight / 2);
177
+ }
178
178
 
179
- break;
179
+ break;
180
180
 
181
181
  case "bottom":
182
182
 
183
- if(this.elementVertical.scrollHeight - this.elementVertical.scrollTop == this.elementVertical.clientHeight){
184
- this.elementVertical.scrollTop = this.elementVertical.scrollTop - (this.elementVertical.scrollHeight - rowEl.offsetTop) + rowEl.offsetHeight;
185
- }else{
186
- this.elementVertical.scrollTop = this.elementVertical.scrollTop - this.elementVertical.clientHeight + rowEl.offsetHeight;
187
- }
183
+ if(this.elementVertical.scrollHeight - this.elementVertical.scrollTop == this.elementVertical.clientHeight){
184
+ this.elementVertical.scrollTop = this.elementVertical.scrollTop - (this.elementVertical.scrollHeight - rowEl.offsetTop) + rowEl.offsetHeight;
185
+ }else{
186
+ this.elementVertical.scrollTop = this.elementVertical.scrollTop - this.elementVertical.clientHeight + rowEl.offsetHeight;
187
+ }
188
188
 
189
- break;
189
+ break;
190
190
 
191
191
  case "top":
192
- this.elementVertical.scrollTop = rowEl.offsetTop;
193
- break;
192
+ this.elementVertical.scrollTop = rowEl.offsetTop;
193
+ break;
194
194
  }
195
195
 
196
196
  resolve();
@@ -1,7 +1,6 @@
1
1
  import Renderer from '../Renderer.js';
2
- import Helpers from '../../tools/Helpers.js';
3
2
 
4
- export default class BaiscHorizontal extends Renderer{
3
+ export default class BasicHorizontal extends Renderer{
5
4
  constructor(table){
6
5
  super(table);
7
6
  }
@@ -1,7 +1,7 @@
1
1
  import Renderer from '../Renderer.js';
2
2
  import Helpers from '../../tools/Helpers.js';
3
3
 
4
- export default class BaiscVertical extends Renderer{
4
+ export default class BasicVertical extends Renderer{
5
5
  constructor(table){
6
6
  super(table);
7
7
 
@@ -1,5 +1,4 @@
1
1
  import Renderer from '../Renderer.js';
2
- import Helpers from '../../tools/Helpers.js';
3
2
 
4
3
  export default class VirtualDomHorizontal extends Renderer{
5
4
  constructor(table){
@@ -235,9 +234,7 @@ export default class VirtualDomHorizontal extends Renderer{
235
234
 
236
235
  dataChange(){
237
236
  var change = false,
238
- collsWidth = 0,
239
- colEnd = 0,
240
- group, row, rowEl;
237
+ row, rowEl;
241
238
 
242
239
  if(this.isFitData){
243
240
  this.table.columnManager.columnsByIndex.forEach((column) => {
@@ -246,46 +243,30 @@ export default class VirtualDomHorizontal extends Renderer{
246
243
  }
247
244
  });
248
245
 
249
- if(change){
250
- if(change && this.table.rowManager.getDisplayRows().length){
246
+ if(change && this.table.rowManager.getDisplayRows().length){
247
+ this.vDomScrollPosRight = this.scrollLeft + this.elementVertical.clientWidth + this.windowBuffer;
248
+
249
+ row = this.chain("rows-sample", [1], [], () => {
250
+ return this.table.rowManager.getDisplayRows();
251
+ })[0];
252
+
253
+ if(row){
254
+ rowEl = row.getElement();
251
255
 
252
- this.vDomScrollPosRight = this.scrollLeft + this.elementVertical.clientWidth + this.windowBuffer;
256
+ row.generateCells();
253
257
 
254
- var row = this.chain("rows-sample", [1], [], () => {
255
- return this.table.rowManager.getDisplayRows();
256
- })[0];
258
+ this.tableElement.appendChild(rowEl);
257
259
 
258
- if(row){
259
-
260
- rowEl = row.getElement();
261
-
262
- row.generateCells();
263
-
264
- this.tableElement.appendChild(rowEl);
265
-
266
- for(var colEnd = 0; colEnd < row.cells.length; colEnd++){
267
- let cell = row.cells[colEnd];
268
- rowEl.appendChild(cell.getElement());
269
-
270
- cell.column.reinitializeWidth();
271
-
272
- collsWidth += cell.column.getWidth();
273
-
274
- // if(collsWidth > this.vDomScrollPosRight){
275
- // break;
276
- // }
277
- }
278
-
279
- rowEl.parentNode.removeChild(rowEl);
280
-
281
- // this.fitDataColAvg = Math.floor(collsWidth / (colEnd + 1));
260
+ for(let colEnd = 0; colEnd < row.cells.length; colEnd++){
261
+ let cell = row.cells[colEnd];
262
+ rowEl.appendChild(cell.getElement());
282
263
 
283
- // for(colEnd; colEnd < this.table.columnManager.columnsByIndex.length; colEnd++){
284
- // this.table.columnManager.columnsByIndex[colEnd].setWidth(this.fitDataColAvg);
285
- // }
286
-
287
- this.rerenderColumns(false, true);
264
+ cell.column.reinitializeWidth();
288
265
  }
266
+
267
+ rowEl.parentNode.removeChild(rowEl);
268
+
269
+ this.rerenderColumns(false, true);
289
270
  }
290
271
  }
291
272
  }else{
@@ -356,9 +337,10 @@ export default class VirtualDomHorizontal extends Renderer{
356
337
  }
357
338
 
358
339
  addColRight(){
359
- var changes = false;
340
+ var changes = false,
341
+ working = true;
360
342
 
361
- while(true){
343
+ while(working){
362
344
 
363
345
  let column = this.columns[this.rightCol + 1];
364
346
 
@@ -384,10 +366,10 @@ export default class VirtualDomHorizontal extends Renderer{
384
366
  this.vDomPadRight -= column.getWidth();
385
367
  }
386
368
  }else{
387
- break;
369
+ working = false;
388
370
  }
389
371
  }else{
390
- break;
372
+ working = false;
391
373
  }
392
374
  }
393
375
 
@@ -397,9 +379,10 @@ export default class VirtualDomHorizontal extends Renderer{
397
379
  }
398
380
 
399
381
  addColLeft(){
400
- var changes = false;
382
+ var changes = false,
383
+ working = true;
401
384
 
402
- while(true){
385
+ while(working){
403
386
  let column = this.columns[this.leftCol - 1];
404
387
 
405
388
  if(column){
@@ -430,10 +413,10 @@ export default class VirtualDomHorizontal extends Renderer{
430
413
  }
431
414
 
432
415
  }else{
433
- break;
416
+ working = false;
434
417
  }
435
418
  }else{
436
- break;
419
+ working = false;
437
420
  }
438
421
  }
439
422
 
@@ -443,9 +426,10 @@ export default class VirtualDomHorizontal extends Renderer{
443
426
  }
444
427
 
445
428
  removeColRight(){
446
- var changes = false;
429
+ var changes = false,
430
+ working = true;
447
431
 
448
- while(true){
432
+ while(working){
449
433
  let column = this.columns[this.rightCol];
450
434
 
451
435
  if(column){
@@ -459,7 +443,7 @@ export default class VirtualDomHorizontal extends Renderer{
459
443
  try {
460
444
  row.getElement().removeChild(cell.getElement());
461
445
  } catch (ex) {
462
- console.warn("Could not removeColRight", ex.message)
446
+ console.warn("Could not removeColRight", ex.message);
463
447
  }
464
448
  }
465
449
  });
@@ -467,10 +451,10 @@ export default class VirtualDomHorizontal extends Renderer{
467
451
  this.vDomPadRight += column.getWidth();
468
452
  this.rightCol --;
469
453
  }else{
470
- break;
454
+ working = false;
471
455
  }
472
456
  }else{
473
- break;
457
+ working = false;
474
458
  }
475
459
  }
476
460
 
@@ -480,9 +464,10 @@ export default class VirtualDomHorizontal extends Renderer{
480
464
  }
481
465
 
482
466
  removeColLeft(){
483
- var changes = false;
467
+ var changes = false,
468
+ working = true;
484
469
 
485
- while(true){
470
+ while(working){
486
471
  let column = this.columns[this.leftCol];
487
472
 
488
473
  if(column){
@@ -496,7 +481,7 @@ export default class VirtualDomHorizontal extends Renderer{
496
481
  try {
497
482
  row.getElement().removeChild(cell.getElement());
498
483
  } catch (ex) {
499
- console.warn("Could not removeColLeft", ex.message)
484
+ console.warn("Could not removeColLeft", ex.message);
500
485
  }
501
486
  }
502
487
  });
@@ -504,17 +489,16 @@ export default class VirtualDomHorizontal extends Renderer{
504
489
  this.vDomPadLeft += column.getWidth();
505
490
  this.leftCol ++;
506
491
  }else{
507
- break;
492
+ working = false;
508
493
  }
509
494
  }else{
510
- break;
495
+ working = false;
511
496
  }
512
497
  }
513
498
 
514
499
  if(changes){
515
500
  this.tableElement.style.paddingLeft = this.vDomPadLeft + "px";
516
501
  }
517
-
518
502
  }
519
503
 
520
504
  fitDataColActualWidthCheck(column){