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.
- package/.eslintignore +3 -0
- package/.eslintrc.js +28 -0
- package/.github/ISSUE_TEMPLATE/bug_report.md +1 -0
- package/.github/workflows/bad-files-check.yml +39 -0
- package/.github/workflows/lint-and-test.yml +31 -0
- package/README.md +18 -6
- package/bower.json +1 -1
- package/build/Bundler.js +77 -77
- package/dist/css/tabulator.css +12 -7
- package/dist/css/tabulator.css.map +1 -1
- package/dist/css/tabulator.min.css +1 -1
- package/dist/css/tabulator.min.css.map +1 -1
- package/dist/css/tabulator_bootstrap3.css +12 -7
- package/dist/css/tabulator_bootstrap3.css.map +1 -1
- package/dist/css/tabulator_bootstrap3.min.css +1 -1
- package/dist/css/tabulator_bootstrap3.min.css.map +1 -1
- package/dist/css/tabulator_bootstrap4.css +12 -7
- package/dist/css/tabulator_bootstrap4.css.map +1 -1
- package/dist/css/tabulator_bootstrap4.min.css +1 -1
- package/dist/css/tabulator_bootstrap4.min.css.map +1 -1
- package/dist/css/tabulator_bootstrap5.css +51 -46
- package/dist/css/tabulator_bootstrap5.css.map +1 -1
- package/dist/css/tabulator_bootstrap5.min.css +1 -1
- package/dist/css/tabulator_bootstrap5.min.css.map +1 -1
- package/dist/css/tabulator_bulma.css +12 -7
- package/dist/css/tabulator_bulma.css.map +1 -1
- package/dist/css/tabulator_bulma.min.css +1 -1
- package/dist/css/tabulator_bulma.min.css.map +1 -1
- package/dist/css/tabulator_materialize.css +12 -7
- package/dist/css/tabulator_materialize.css.map +1 -1
- package/dist/css/tabulator_materialize.min.css +1 -1
- package/dist/css/tabulator_materialize.min.css.map +1 -1
- package/dist/css/tabulator_midnight.css +12 -7
- package/dist/css/tabulator_midnight.css.map +1 -1
- package/dist/css/tabulator_midnight.min.css +1 -1
- package/dist/css/tabulator_midnight.min.css.map +1 -1
- package/dist/css/tabulator_modern.css +12 -7
- package/dist/css/tabulator_modern.css.map +1 -1
- package/dist/css/tabulator_modern.min.css +1 -1
- package/dist/css/tabulator_modern.min.css.map +1 -1
- package/dist/css/tabulator_semanticui.css +12 -7
- package/dist/css/tabulator_semanticui.css.map +1 -1
- package/dist/css/tabulator_semanticui.min.css +1 -1
- package/dist/css/tabulator_semanticui.min.css.map +1 -1
- package/dist/css/tabulator_simple.css +12 -7
- package/dist/css/tabulator_simple.css.map +1 -1
- package/dist/css/tabulator_simple.min.css +1 -1
- package/dist/css/tabulator_simple.min.css.map +1 -1
- package/dist/css/tabulator_site.css +12 -7
- package/dist/css/tabulator_site.css.map +1 -1
- package/dist/css/tabulator_site.min.css +1 -1
- package/dist/css/tabulator_site.min.css.map +1 -1
- package/dist/js/jquery_wrapper.js +37 -37
- package/dist/js/tabulator.js +1506 -706
- package/dist/js/tabulator.js.map +1 -1
- package/dist/js/tabulator.min.js +2 -2
- package/dist/js/tabulator.min.js.map +1 -1
- package/dist/js/tabulator_esm.js +4226 -3460
- package/dist/js/tabulator_esm.js.map +1 -1
- package/dist/js/tabulator_esm.min.js +2 -2
- package/dist/js/tabulator_esm.min.js.map +1 -1
- package/package.json +4 -1
- package/src/js/builds/jquery_wrapper.js +37 -37
- package/src/js/core/ColumnManager.js +270 -232
- package/src/js/core/CoreFeature.js +16 -2
- package/src/js/core/FooterManager.js +10 -10
- package/src/js/core/Module.js +8 -8
- package/src/js/core/RowManager.js +81 -88
- package/src/js/core/Tabulator.js +89 -72
- package/src/js/core/TabulatorFull.js +1 -1
- package/src/js/core/cell/Cell.js +15 -16
- package/src/js/core/cell/CellComponent.js +2 -2
- package/src/js/core/column/Column.js +81 -68
- package/src/js/core/column/ColumnComponent.js +4 -4
- package/src/js/core/column/defaults/options.js +1 -1
- package/src/js/core/defaults/options.js +4 -2
- package/src/js/core/rendering/Renderer.js +19 -19
- package/src/js/core/rendering/renderers/BasicHorizontal.js +1 -2
- package/src/js/core/rendering/renderers/BasicVertical.js +1 -1
- package/src/js/core/rendering/renderers/VirtualDomHorizontal.js +42 -58
- package/src/js/core/rendering/renderers/VirtualDomVertical.js +31 -22
- package/src/js/core/row/Row.js +32 -8
- package/src/js/core/row/RowComponent.js +8 -4
- package/src/js/core/tools/Alert.js +44 -45
- package/src/js/core/tools/ComponentFunctionBinder.js +4 -2
- package/src/js/core/tools/DataLoader.js +3 -3
- package/src/js/core/tools/DeprecationAdvisor.js +47 -0
- package/src/js/core/tools/ExternalEventBus.js +5 -5
- package/src/js/core/tools/InteractionMonitor.js +34 -33
- package/src/js/core/tools/InternalEventBus.js +5 -5
- package/src/js/core/tools/ModuleBinder.js +6 -6
- package/src/js/core/tools/OptionsList.js +4 -4
- package/src/js/core/tools/Popup.js +215 -189
- package/src/js/modules/Accessor/Accessor.js +16 -16
- package/src/js/modules/Accessor/defaults/accessors.js +1 -1
- package/src/js/modules/Ajax/Ajax.js +7 -7
- package/src/js/modules/Ajax/defaults/loaderPromise.js +19 -19
- package/src/js/modules/Ajax/defaults/urlGenerator.js +1 -1
- package/src/js/modules/Clipboard/Clipboard.js +23 -23
- package/src/js/modules/Clipboard/defaults/pasteParsers.js +0 -2
- package/src/js/modules/ColumnCalcs/CalcComponent.js +2 -2
- package/src/js/modules/ColumnCalcs/ColumnCalcs.js +55 -51
- package/src/js/modules/ColumnCalcs/defaults/calculations.js +1 -1
- package/src/js/modules/DataTree/DataTree.js +24 -15
- package/src/js/modules/Download/Download.js +15 -8
- package/src/js/modules/Download/defaults/downloaders/csv.js +28 -28
- package/src/js/modules/Download/defaults/downloaders/html.js +2 -2
- package/src/js/modules/Download/defaults/downloaders/json.js +14 -14
- package/src/js/modules/Download/defaults/downloaders/jsonLines.js +1 -1
- package/src/js/modules/Download/defaults/downloaders/pdf.js +17 -19
- package/src/js/modules/Download/defaults/downloaders/xlsx.js +2 -2
- package/src/js/modules/Edit/Edit.js +219 -201
- package/src/js/modules/Edit/List.js +1026 -991
- package/src/js/modules/Edit/defaults/editors/autocomplete.js +3 -3
- package/src/js/modules/Edit/defaults/editors/date.js +110 -0
- package/src/js/modules/Edit/defaults/editors/datetime.js +97 -0
- package/src/js/modules/Edit/defaults/editors/input.js +7 -7
- package/src/js/modules/Edit/defaults/editors/list.js +2 -2
- package/src/js/modules/Edit/defaults/editors/number.js +12 -12
- package/src/js/modules/Edit/defaults/editors/progress.js +11 -11
- package/src/js/modules/Edit/defaults/editors/range.js +5 -5
- package/src/js/modules/Edit/defaults/editors/select.js +3 -3
- package/src/js/modules/Edit/defaults/editors/star.js +9 -9
- package/src/js/modules/Edit/defaults/editors/textarea.js +97 -92
- package/src/js/modules/Edit/defaults/editors/tickCross.js +1 -3
- package/src/js/modules/Edit/defaults/editors/time.js +98 -0
- package/src/js/modules/Edit/defaults/editors.js +8 -2
- package/src/js/modules/Edit/inputMask.js +19 -26
- package/src/js/modules/Export/Export.js +69 -65
- package/src/js/modules/Filter/Filter.js +88 -95
- package/src/js/modules/Format/Format.js +24 -26
- package/src/js/modules/Format/defaults/formatters/buttonCross.js +1 -1
- package/src/js/modules/Format/defaults/formatters/buttonTick.js +1 -1
- package/src/js/modules/Format/defaults/formatters/color.js +1 -1
- package/src/js/modules/Format/defaults/formatters/datetime.js +7 -7
- package/src/js/modules/Format/defaults/formatters/datetimediff.js +7 -7
- package/src/js/modules/Format/defaults/formatters/handle.js +1 -1
- package/src/js/modules/Format/defaults/formatters/html.js +1 -1
- package/src/js/modules/Format/defaults/formatters/image.js +9 -9
- package/src/js/modules/Format/defaults/formatters/link.js +10 -10
- package/src/js/modules/Format/defaults/formatters/lookup.js +1 -1
- package/src/js/modules/Format/defaults/formatters/money.js +1 -1
- package/src/js/modules/Format/defaults/formatters/plaintext.js +1 -1
- package/src/js/modules/Format/defaults/formatters/progress.js +41 -42
- package/src/js/modules/Format/defaults/formatters/responsiveCollapse.js +3 -3
- package/src/js/modules/Format/defaults/formatters/rowSelection.js +1 -1
- package/src/js/modules/Format/defaults/formatters/rownum.js +9 -2
- package/src/js/modules/Format/defaults/formatters/star.js +1 -1
- package/src/js/modules/Format/defaults/formatters/textarea.js +1 -1
- package/src/js/modules/Format/defaults/formatters/tickCross.js +1 -1
- package/src/js/modules/Format/defaults/formatters/traffic.js +14 -14
- package/src/js/modules/FrozenColumns/FrozenColumns.js +6 -8
- package/src/js/modules/FrozenRows/FrozenRows.js +37 -7
- package/src/js/modules/GroupRows/Group.js +7 -7
- package/src/js/modules/GroupRows/GroupComponent.js +2 -2
- package/src/js/modules/GroupRows/GroupRows.js +34 -11
- package/src/js/modules/History/History.js +2 -2
- package/src/js/modules/HtmlTableImport/HtmlTableImport.js +3 -6
- package/src/js/modules/Import/Import.js +158 -159
- package/src/js/modules/Import/defaults/importers/array.js +5 -0
- package/src/js/modules/Import/defaults/importers/csv.js +49 -49
- package/src/js/modules/Import/defaults/importers/json.js +6 -6
- package/src/js/modules/Import/defaults/importers.js +2 -0
- package/src/js/modules/Interaction/Interaction.js +41 -42
- package/src/js/modules/Keybindings/Keybindings.js +14 -14
- package/src/js/modules/Keybindings/defaults/actions.js +1 -2
- package/src/js/modules/Layout/Layout.js +4 -5
- package/src/js/modules/Layout/defaults/modes/fitColumns.js +13 -16
- package/src/js/modules/Layout/defaults/modes/fitData.js +6 -4
- package/src/js/modules/Layout/defaults/modes/fitDataGeneral.js +2 -2
- package/src/js/modules/Layout/defaults/modes/fitDataStretch.js +2 -2
- package/src/js/modules/Localize/Localize.js +7 -7
- package/src/js/modules/Menu/Menu.js +8 -11
- package/src/js/modules/MoveColumns/MoveColumns.js +3 -6
- package/src/js/modules/MoveRows/MoveRows.js +30 -36
- package/src/js/modules/Mutator/Mutator.js +9 -9
- package/src/js/modules/Page/Page.js +73 -80
- package/src/js/modules/Page/defaults/pageCounters/pages.js +2 -2
- package/src/js/modules/Page/defaults/pageCounters/rows.js +1 -1
- package/src/js/modules/Persistence/Persistence.js +40 -44
- package/src/js/modules/Persistence/defaults/readers.js +1 -1
- package/src/js/modules/Popup/Popup.js +4 -5
- package/src/js/modules/Print/Print.js +2 -2
- package/src/js/modules/ReactiveData/ReactiveData.js +178 -115
- package/src/js/modules/ResizeColumns/ResizeColumns.js +3 -3
- package/src/js/modules/ResizeRows/ResizeRows.js +1 -1
- package/src/js/modules/ResizeTable/ResizeTable.js +77 -46
- package/src/js/modules/ResponsiveLayout/ResponsiveLayout.js +3 -5
- package/src/js/modules/SelectRow/SelectRow.js +26 -28
- package/src/js/modules/Sort/Sort.js +110 -79
- package/src/js/modules/Sort/defaults/sorters/alphanum.js +1 -1
- package/src/js/modules/Sort/defaults/sorters/array.js +24 -28
- package/src/js/modules/Sort/defaults/sorters/boolean.js +1 -1
- package/src/js/modules/Sort/defaults/sorters/date.js +1 -1
- package/src/js/modules/Sort/defaults/sorters/datetime.js +13 -13
- package/src/js/modules/Sort/defaults/sorters/exists.js +1 -1
- package/src/js/modules/Sort/defaults/sorters/number.js +1 -1
- package/src/js/modules/Sort/defaults/sorters/string.js +7 -7
- package/src/js/modules/Sort/defaults/sorters/time.js +1 -1
- package/src/js/modules/Tooltip/Tooltip.js +5 -7
- package/src/js/modules/Validate/Validate.js +10 -13
- package/src/js/modules/Validate/defaults/validators.js +8 -3
- package/src/scss/tabulator.scss +28 -17
- package/src/scss/themes/bootstrap/functions4.scss +1 -1
- package/src/scss/themes/bootstrap/tabulator_bootstrap3.scss +8 -8
- package/src/scss/themes/bootstrap/tabulator_bootstrap4.scss +8 -8
- package/src/scss/themes/bootstrap/tabulator_bootstrap5.scss +25 -25
- package/src/scss/themes/bootstrap/variables5.scss +4 -4
- package/src/scss/themes/bulma/tabulator_bulma.scss +7 -7
- package/src/scss/themes/materialize/tabulator_materialize.scss +6 -6
- package/src/scss/themes/materialize/variables.scss +1 -1
- package/src/scss/themes/semanticui/tabulator_semanticui.scss +7 -7
- package/src/scss/themes/tabulator_midnight.scss +7 -7
- package/src/scss/themes/tabulator_modern.scss +14 -14
- package/src/scss/themes/tabulator_simple.scss +8 -8
- package/src/scss/themes/tabulator_site.scss +15 -15
package/src/js/core/Tabulator.js
CHANGED
|
@@ -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
|
-
|
|
158
|
-
|
|
159
|
-
|
|
161
|
+
if(style.direction !== "rtl"){
|
|
162
|
+
break;
|
|
163
|
+
}
|
|
160
164
|
|
|
161
165
|
case "rtl":
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
166
|
+
this.element.classList.add("tabulator-rtl");
|
|
167
|
+
this.rtl = true;
|
|
168
|
+
break;
|
|
165
169
|
|
|
166
170
|
case "ltr":
|
|
167
|
-
|
|
171
|
+
this.element.classList.add("tabulator-ltr");
|
|
168
172
|
|
|
169
173
|
default:
|
|
170
|
-
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
411
|
-
|
|
428
|
+
.then(()=>{
|
|
429
|
+
responses--;
|
|
412
430
|
|
|
413
|
-
|
|
414
|
-
|
|
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
|
-
|
|
439
|
-
|
|
456
|
+
.then((rows) => {
|
|
457
|
+
var output = [];
|
|
440
458
|
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
459
|
+
rows.forEach(function(row){
|
|
460
|
+
output.push(row.getComponent());
|
|
461
|
+
});
|
|
444
462
|
|
|
445
|
-
|
|
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
|
-
|
|
477
|
-
|
|
478
|
-
|
|
494
|
+
.then(()=>{
|
|
495
|
+
responses--;
|
|
496
|
+
rows.push(row.getComponent());
|
|
479
497
|
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
498
|
+
if(!responses){
|
|
499
|
+
resolve(rows);
|
|
500
|
+
}
|
|
501
|
+
});
|
|
484
502
|
}else{
|
|
485
503
|
this.rowManager.addRows(item)
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
504
|
+
.then((newRows)=>{
|
|
505
|
+
responses--;
|
|
506
|
+
rows.push(newRows[0].getComponent());
|
|
489
507
|
|
|
490
|
-
|
|
491
|
-
|
|
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
|
|
517
|
-
var row = this.rowManager.getRowFromPosition(position
|
|
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
|
-
|
|
575
|
-
|
|
576
|
-
|
|
591
|
+
.then((rows)=>{
|
|
592
|
+
return rows[0].getComponent();
|
|
593
|
+
});
|
|
577
594
|
}
|
|
578
595
|
|
|
579
|
-
//update a row if 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
|
-
|
|
592
|
-
|
|
593
|
-
|
|
608
|
+
.then(()=>{
|
|
609
|
+
return row.getComponent();
|
|
610
|
+
});
|
|
594
611
|
}else{
|
|
595
612
|
return this.rowManager.addRows(data)
|
|
596
|
-
|
|
597
|
-
|
|
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
|
-
|
|
615
|
-
|
|
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
|
|
669
|
+
getRowPosition(index){
|
|
653
670
|
var row = this.rowManager.findRow(index);
|
|
654
671
|
|
|
655
672
|
if(row){
|
|
656
|
-
return
|
|
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
|
-
|
|
739
|
-
|
|
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
|
-
|
|
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);
|
package/src/js/core/cell/Cell.js
CHANGED
|
@@ -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
|
-
|
|
105
|
+
if(val instanceof Node){
|
|
107
106
|
|
|
108
|
-
|
|
109
|
-
|
|
107
|
+
//clear previous cell contents
|
|
108
|
+
while(this.element.firstChild) this.element.removeChild(this.element.firstChild);
|
|
110
109
|
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
110
|
+
this.element.appendChild(val);
|
|
111
|
+
}else{
|
|
112
|
+
this.element.innerHTML = "";
|
|
114
113
|
|
|
115
|
-
|
|
116
|
-
|
|
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
|
-
|
|
122
|
-
|
|
120
|
+
this.element.innerHTML = "";
|
|
121
|
+
break;
|
|
123
122
|
default:
|
|
124
|
-
|
|
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(){
|