tabulator-tables 5.2.6 → 5.3.1

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 +12 -7
  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 +12 -7
  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 +12 -7
  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 +51 -46
  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 +12 -7
  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 +12 -7
  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 +12 -7
  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 +12 -7
  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 +12 -7
  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 +12 -7
  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 +12 -7
  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 +1506 -706
  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 +4226 -3460
  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 +270 -232
  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 +81 -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 +81 -68
  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 +34 -33
  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 +55 -51
  103. package/src/js/modules/ColumnCalcs/defaults/calculations.js +1 -1
  104. package/src/js/modules/DataTree/DataTree.js +24 -15
  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 +88 -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 +7 -7
  155. package/src/js/modules/GroupRows/GroupComponent.js +2 -2
  156. package/src/js/modules/GroupRows/GroupRows.js +34 -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 +41 -42
  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 +13 -16
  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 +3 -5
  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 +28 -17
  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
@@ -13,6 +13,8 @@ import DataLoader from './tools/DataLoader.js';
13
13
  import ExternalEventBus from './tools/ExternalEventBus.js';
14
14
  import InternalEventBus from './tools/InternalEventBus.js';
15
15
 
16
+ import DeprecationAdvisor from './tools/DeprecationAdvisor.js';
17
+
16
18
  import TableRegistry from './tools/TableRegistry.js';
17
19
  import ModuleBinder from './tools/ModuleBinder.js';
18
20
 
@@ -47,9 +49,11 @@ class Tabulator {
47
49
  this.modulesCore = []; //hold core modules bound to this table (for initialization purposes)
48
50
  this.modulesRegular = []; //hold regular modules bound to this table (for initialization purposes)
49
51
 
52
+ this.deprecationAdvisor = new DeprecationAdvisor(this);
50
53
  this.optionsList = new OptionsList(this, "table constructor");
51
54
 
52
55
  this.initialized = false;
56
+ this.destroyed = false;
53
57
 
54
58
  if(this.initializeElement(element)){
55
59
 
@@ -58,7 +62,7 @@ class Tabulator {
58
62
  //delay table creation to allow event bindings immediately after the constructor
59
63
  setTimeout(() => {
60
64
  this._create();
61
- })
65
+ });
62
66
  }
63
67
 
64
68
  TableRegistry.register(this); //register table for inter-device communication
@@ -92,7 +96,7 @@ class Tabulator {
92
96
 
93
97
  this.bindModules();
94
98
 
95
- this.options = this.optionsList.generate(Tabulator.defaultOptions, options)
99
+ this.options = this.optionsList.generate(Tabulator.defaultOptions, options);
96
100
 
97
101
  this._clearObjectPointers();
98
102
 
@@ -154,20 +158,20 @@ class Tabulator {
154
158
 
155
159
  switch(this.options.textDirection){
156
160
  case"auto":
157
- if(style.direction !== "rtl"){
158
- break;
159
- };
161
+ if(style.direction !== "rtl"){
162
+ break;
163
+ }
160
164
 
161
165
  case "rtl":
162
- this.element.classList.add("tabulator-rtl");
163
- this.rtl = true;
164
- break;
166
+ this.element.classList.add("tabulator-rtl");
167
+ this.rtl = true;
168
+ break;
165
169
 
166
170
  case "ltr":
167
- this.element.classList.add("tabulator-ltr");
171
+ this.element.classList.add("tabulator-ltr");
168
172
 
169
173
  default:
170
- this.rtl = false;
174
+ this.rtl = false;
171
175
  }
172
176
  }
173
177
 
@@ -246,7 +250,7 @@ class Tabulator {
246
250
  //initialize core modules
247
251
  this.modulesCore.forEach((mod) => {
248
252
  mod.initialize();
249
- })
253
+ });
250
254
 
251
255
  //build table elements
252
256
  element.appendChild(this.columnManager.getElement());
@@ -279,6 +283,8 @@ class Tabulator {
279
283
  destroy(){
280
284
  var element = this.element;
281
285
 
286
+ this.destroyed = true;
287
+
282
288
  TableRegistry.deregister(this); //deregister table from inter-device communication
283
289
 
284
290
  this.eventBus.dispatch("table-destroy");
@@ -295,6 +301,8 @@ class Tabulator {
295
301
  //clear DOM
296
302
  while(element.firstChild) element.removeChild(element.firstChild);
297
303
  element.classList.remove("tabulator");
304
+
305
+ this.externalEvents.dispatch("tableDestroyed");
298
306
  }
299
307
 
300
308
  _detectBrowser(){
@@ -314,7 +322,7 @@ class Tabulator {
314
322
  this.browserSlow = false;
315
323
  }
316
324
 
317
- this.browserMobile = /(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(ua)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(ua.slice(0,4));
325
+ this.browserMobile = /(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(ua)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw-(n|u)|c55\/|capi|ccwa|cdm-|cell|chtm|cldc|cmd-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc-s|devi|dica|dmob|do(c|p)o|ds(12|-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(-|_)|g1 u|g560|gene|gf-5|g-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd-(m|p|t)|hei-|hi(pt|ta)|hp( i|ip)|hs-c|ht(c(-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i-(20|go|ma)|i230|iac( |-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|-[a-w])|libw|lynx|m1-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|-([1-8]|c))|phil|pire|pl(ay|uc)|pn-2|po(ck|rt|se)|prox|psio|pt-g|qa-a|qc(07|12|21|32|60|-[2-7]|i-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h-|oo|p-)|sdk\/|se(c(-|0|1)|47|mc|nd|ri)|sgh-|shar|sie(-|m)|sk-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h-|v-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl-|tdg-|tel(i|m)|tim-|t-mo|to(pl|sh)|ts(70|m-|m3|m5)|tx-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas-|your|zeto|zte-/i.test(ua.slice(0,4));
318
326
  }
319
327
 
320
328
  initGuard(func, msg){
@@ -343,15 +351,25 @@ class Tabulator {
343
351
  //block table redrawing
344
352
  blockRedraw(){
345
353
  this.initGuard();
354
+
355
+ this.eventBus.dispatch("redraw-blocking");
346
356
 
347
- return this.rowManager.blockRedraw();
357
+ this.rowManager.blockRedraw();
358
+ this.columnManager.blockRedraw();
359
+
360
+ this.eventBus.dispatch("redraw-blocked");
348
361
  }
349
362
 
350
363
  //restore table redrawing
351
364
  restoreRedraw(){
352
365
  this.initGuard();
353
-
354
- return this.rowManager.restoreRedraw();
366
+
367
+ this.eventBus.dispatch("redraw-restoring");
368
+
369
+ this.rowManager.restoreRedraw();
370
+ this.columnManager.restoreRedraw();
371
+
372
+ this.eventBus.dispatch("redraw-restored");
355
373
  }
356
374
 
357
375
  //load data
@@ -407,13 +425,13 @@ class Tabulator {
407
425
  responses++;
408
426
 
409
427
  row.updateData(item)
410
- .then(()=>{
411
- responses--;
428
+ .then(()=>{
429
+ responses--;
412
430
 
413
- if(!responses){
414
- resolve();
415
- }
416
- });
431
+ if(!responses){
432
+ resolve();
433
+ }
434
+ });
417
435
  }
418
436
  });
419
437
  }else{
@@ -435,15 +453,15 @@ class Tabulator {
435
453
 
436
454
  if(data){
437
455
  this.rowManager.addRows(data, pos, index)
438
- .then((rows) => {
439
- var output = [];
456
+ .then((rows) => {
457
+ var output = [];
440
458
 
441
- rows.forEach(function(row){
442
- output.push(row.getComponent());
443
- });
459
+ rows.forEach(function(row){
460
+ output.push(row.getComponent());
461
+ });
444
462
 
445
- resolve(output);
446
- });
463
+ resolve(output);
464
+ });
447
465
  }else{
448
466
  console.warn("Update Error - No data provided");
449
467
  reject("Update Error - No data provided");
@@ -473,24 +491,24 @@ class Tabulator {
473
491
 
474
492
  if(row){
475
493
  row.updateData(item)
476
- .then(()=>{
477
- responses--;
478
- rows.push(row.getComponent());
494
+ .then(()=>{
495
+ responses--;
496
+ rows.push(row.getComponent());
479
497
 
480
- if(!responses){
481
- resolve(rows);
482
- }
483
- });
498
+ if(!responses){
499
+ resolve(rows);
500
+ }
501
+ });
484
502
  }else{
485
503
  this.rowManager.addRows(item)
486
- .then((newRows)=>{
487
- responses--;
488
- rows.push(newRows[0].getComponent());
504
+ .then((newRows)=>{
505
+ responses--;
506
+ rows.push(newRows[0].getComponent());
489
507
 
490
- if(!responses){
491
- resolve(rows);
492
- }
493
- });
508
+ if(!responses){
509
+ resolve(rows);
510
+ }
511
+ });
494
512
  }
495
513
  });
496
514
  }else{
@@ -513,8 +531,8 @@ class Tabulator {
513
531
  }
514
532
 
515
533
  //get row object
516
- getRowFromPosition(position, active){
517
- var row = this.rowManager.getRowFromPosition(position, active);
534
+ getRowFromPosition(position){
535
+ var row = this.rowManager.getRowFromPosition(position);
518
536
 
519
537
  if(row){
520
538
  return row.getComponent();
@@ -542,8 +560,7 @@ class Tabulator {
542
560
  foundRows.push(row);
543
561
  }else{
544
562
  console.error("Delete Error - No matching row found:", item);
545
- return Promise.reject("Delete Error - No matching row found")
546
- break;
563
+ return Promise.reject("Delete Error - No matching row found");
547
564
  }
548
565
  }
549
566
 
@@ -554,7 +571,7 @@ class Tabulator {
554
571
 
555
572
  //delete rows
556
573
  foundRows.forEach((row) =>{
557
- row.delete()
574
+ row.delete();
558
575
  });
559
576
 
560
577
  this.rowManager.reRenderInPosition();
@@ -571,12 +588,12 @@ class Tabulator {
571
588
  }
572
589
 
573
590
  return this.rowManager.addRows(data, pos, index)
574
- .then((rows)=>{
575
- return rows[0].getComponent();
576
- });
591
+ .then((rows)=>{
592
+ return rows[0].getComponent();
593
+ });
577
594
  }
578
595
 
579
- //update a row if it exitsts otherwise create it
596
+ //update a row if it exists otherwise create it
580
597
  updateOrAddRow(index, data){
581
598
  var row = this.rowManager.findRow(index);
582
599
 
@@ -588,14 +605,14 @@ class Tabulator {
588
605
 
589
606
  if(row){
590
607
  return row.updateData(data)
591
- .then(()=>{
592
- return row.getComponent();
593
- })
608
+ .then(()=>{
609
+ return row.getComponent();
610
+ });
594
611
  }else{
595
612
  return this.rowManager.addRows(data)
596
- .then((rows)=>{
597
- return rows[0].getComponent();
598
- })
613
+ .then((rows)=>{
614
+ return rows[0].getComponent();
615
+ });
599
616
  }
600
617
  }
601
618
 
@@ -611,9 +628,9 @@ class Tabulator {
611
628
 
612
629
  if(row){
613
630
  return row.updateData(data)
614
- .then(()=>{
615
- return Promise.resolve(row.getComponent());
616
- })
631
+ .then(()=>{
632
+ return Promise.resolve(row.getComponent());
633
+ });
617
634
  }else{
618
635
  console.warn("Update Error - No matching row found:", index);
619
636
  return Promise.reject("Update Error - No matching row found");
@@ -625,7 +642,7 @@ class Tabulator {
625
642
  var row = this.rowManager.findRow(index);
626
643
 
627
644
  if(row){
628
- return this.rowManager.scrollToRow(row, position, ifVisible)
645
+ return this.rowManager.scrollToRow(row, position, ifVisible);
629
646
  }else{
630
647
  console.warn("Scroll Error - No matching row found:", index);
631
648
  return Promise.reject("Scroll Error - No matching row found");
@@ -649,11 +666,11 @@ class Tabulator {
649
666
  }
650
667
 
651
668
  //get position of row in table
652
- getRowPosition(index, active){
669
+ getRowPosition(index){
653
670
  var row = this.rowManager.findRow(index);
654
671
 
655
672
  if(row){
656
- return this.rowManager.getRowPosition(row, active);
673
+ return row.getPosition();
657
674
  }else{
658
675
  console.warn("Position Error - No matching row found:", index);
659
676
  return false;
@@ -735,9 +752,9 @@ class Tabulator {
735
752
  this.initGuard();
736
753
 
737
754
  return this.columnManager.addColumn(definition, before, column)
738
- .then((column) => {
739
- return column.getComponent();
740
- });
755
+ .then((column) => {
756
+ return column.getComponent();
757
+ });
741
758
  }
742
759
 
743
760
  deleteColumn(field){
@@ -759,7 +776,7 @@ class Tabulator {
759
776
  this.initGuard();
760
777
 
761
778
  if(column){
762
- return column.updateDefinition(definition)
779
+ return column.updateDefinition(definition);
763
780
  }else{
764
781
  console.warn("Column Update Error - No matching column found:", field);
765
782
  return Promise.reject();
@@ -774,7 +791,7 @@ class Tabulator {
774
791
 
775
792
  if(fromColumn){
776
793
  if(toColumn){
777
- this.columnManager.moveColumn(fromColumn, toColumn, after)
794
+ this.columnManager.moveColumn(fromColumn, toColumn, after);
778
795
  }else{
779
796
  console.warn("Move Error - No matching column found:", toColumn);
780
797
  }
@@ -789,7 +806,7 @@ class Tabulator {
789
806
  var column = this.columnManager.findColumn(field);
790
807
 
791
808
  if(column){
792
- return this.columnManager.scrollToColumn(column, position, ifVisible)
809
+ return this.columnManager.scrollToColumn(column, position, ifVisible);
793
810
  }else{
794
811
  console.warn("Scroll Error - No matching column found:", field);
795
812
  return Promise.reject("Scroll Error - No matching column found");
@@ -824,10 +841,10 @@ class Tabulator {
824
841
  }
825
842
 
826
843
  dispatchEvent(){
827
- var args = Array.from(arguments),
828
- key = args.shift();
844
+ var args = Array.from(arguments);
845
+ args.shift();
829
846
 
830
- this.externalEvents.dispatch(...arguments)
847
+ this.externalEvents.dispatch(...arguments);
831
848
  }
832
849
 
833
850
  //////////////////// Alerts ///////////////////
@@ -3,7 +3,7 @@ import {default as Tabulator} from './Tabulator.js';
3
3
  import * as modules from '../core/modules/optional.js';
4
4
  import ModuleBinder from './tools/ModuleBinder.js';
5
5
 
6
- class TabulatorFull extends Tabulator {};
6
+ class TabulatorFull extends Tabulator {}
7
7
 
8
8
  //bind modules and static functionality
9
9
  new ModuleBinder(TabulatorFull, modules);
@@ -43,7 +43,6 @@ export default class Cell extends CoreFeature{
43
43
  this.element = document.createElement('div');
44
44
  this.element.className = "tabulator-cell";
45
45
  this.element.setAttribute("role", "gridcell");
46
- this.element = this.element;
47
46
  }
48
47
 
49
48
  _configureCell(){
@@ -79,9 +78,9 @@ export default class Cell extends CoreFeature{
79
78
 
80
79
  //add class to cell if needed
81
80
  if(this.column.definition.cssClass){
82
- var classNames = this.column.definition.cssClass.split(" ")
81
+ var classNames = this.column.definition.cssClass.split(" ");
83
82
  classNames.forEach((className) => {
84
- element.classList.add(className)
83
+ element.classList.add(className);
85
84
  });
86
85
  }
87
86
 
@@ -103,25 +102,25 @@ export default class Cell extends CoreFeature{
103
102
 
104
103
  switch(typeof val){
105
104
  case "object":
106
- if(val instanceof Node){
105
+ if(val instanceof Node){
107
106
 
108
- //clear previous cell contents
109
- while(this.element.firstChild) this.element.removeChild(this.element.firstChild);
107
+ //clear previous cell contents
108
+ while(this.element.firstChild) this.element.removeChild(this.element.firstChild);
110
109
 
111
- this.element.appendChild(val);
112
- }else{
113
- this.element.innerHTML = "";
110
+ this.element.appendChild(val);
111
+ }else{
112
+ this.element.innerHTML = "";
114
113
 
115
- if(val != null){
116
- console.warn("Format Error - Formatter has returned a type of object, the only valid formatter object return is an instance of Node, the formatter returned:", val);
114
+ if(val != null){
115
+ console.warn("Format Error - Formatter has returned a type of object, the only valid formatter object return is an instance of Node, the formatter returned:", val);
116
+ }
117
117
  }
118
- }
119
- break;
118
+ break;
120
119
  case "undefined":
121
- this.element.innerHTML = "";
122
- break;
120
+ this.element.innerHTML = "";
121
+ break;
123
122
  default:
124
- this.element.innerHTML = val;
123
+ this.element.innerHTML = val;
125
124
  }
126
125
  }
127
126
 
@@ -9,10 +9,10 @@ export default class CellComponent {
9
9
  if (typeof target[name] !== "undefined") {
10
10
  return target[name];
11
11
  }else{
12
- return target._cell.table.componentFunctionBinder.handle("cell", target._cell, name)
12
+ return target._cell.table.componentFunctionBinder.handle("cell", target._cell, name);
13
13
  }
14
14
  }
15
- })
15
+ });
16
16
  }
17
17
 
18
18
  getValue(){