tabulator-tables 5.2.7 → 5.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintignore +3 -0
- package/.eslintrc.js +28 -0
- package/.github/workflows/bad-files-check.yml +39 -0
- package/.github/workflows/lint-and-test.yml +31 -0
- package/README.md +3 -3
- 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 +12 -7
- 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 +1551 -793
- 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 +4300 -3581
- 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 +139 -156
- package/src/js/core/Tabulator.js +88 -74
- 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 +41 -39
- 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 +211 -202
- 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 -1006
- 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 +42 -43
- 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 +113 -85
- 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 +8 -8
- 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,6 +49,7 @@ 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;
|
|
@@ -59,7 +62,7 @@ class Tabulator {
|
|
|
59
62
|
//delay table creation to allow event bindings immediately after the constructor
|
|
60
63
|
setTimeout(() => {
|
|
61
64
|
this._create();
|
|
62
|
-
})
|
|
65
|
+
});
|
|
63
66
|
}
|
|
64
67
|
|
|
65
68
|
TableRegistry.register(this); //register table for inter-device communication
|
|
@@ -93,7 +96,7 @@ class Tabulator {
|
|
|
93
96
|
|
|
94
97
|
this.bindModules();
|
|
95
98
|
|
|
96
|
-
this.options = this.optionsList.generate(Tabulator.defaultOptions, options)
|
|
99
|
+
this.options = this.optionsList.generate(Tabulator.defaultOptions, options);
|
|
97
100
|
|
|
98
101
|
this._clearObjectPointers();
|
|
99
102
|
|
|
@@ -155,20 +158,20 @@ class Tabulator {
|
|
|
155
158
|
|
|
156
159
|
switch(this.options.textDirection){
|
|
157
160
|
case"auto":
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
+
if(style.direction !== "rtl"){
|
|
162
|
+
break;
|
|
163
|
+
}
|
|
161
164
|
|
|
162
165
|
case "rtl":
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
+
this.element.classList.add("tabulator-rtl");
|
|
167
|
+
this.rtl = true;
|
|
168
|
+
break;
|
|
166
169
|
|
|
167
170
|
case "ltr":
|
|
168
|
-
|
|
171
|
+
this.element.classList.add("tabulator-ltr");
|
|
169
172
|
|
|
170
173
|
default:
|
|
171
|
-
|
|
174
|
+
this.rtl = false;
|
|
172
175
|
}
|
|
173
176
|
}
|
|
174
177
|
|
|
@@ -247,7 +250,7 @@ class Tabulator {
|
|
|
247
250
|
//initialize core modules
|
|
248
251
|
this.modulesCore.forEach((mod) => {
|
|
249
252
|
mod.initialize();
|
|
250
|
-
})
|
|
253
|
+
});
|
|
251
254
|
|
|
252
255
|
//build table elements
|
|
253
256
|
element.appendChild(this.columnManager.getElement());
|
|
@@ -298,6 +301,8 @@ class Tabulator {
|
|
|
298
301
|
//clear DOM
|
|
299
302
|
while(element.firstChild) element.removeChild(element.firstChild);
|
|
300
303
|
element.classList.remove("tabulator");
|
|
304
|
+
|
|
305
|
+
this.externalEvents.dispatch("tableDestroyed");
|
|
301
306
|
}
|
|
302
307
|
|
|
303
308
|
_detectBrowser(){
|
|
@@ -317,7 +322,7 @@ class Tabulator {
|
|
|
317
322
|
this.browserSlow = false;
|
|
318
323
|
}
|
|
319
324
|
|
|
320
|
-
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));
|
|
321
326
|
}
|
|
322
327
|
|
|
323
328
|
initGuard(func, msg){
|
|
@@ -346,15 +351,25 @@ class Tabulator {
|
|
|
346
351
|
//block table redrawing
|
|
347
352
|
blockRedraw(){
|
|
348
353
|
this.initGuard();
|
|
354
|
+
|
|
355
|
+
this.eventBus.dispatch("redraw-blocking");
|
|
349
356
|
|
|
350
|
-
|
|
357
|
+
this.rowManager.blockRedraw();
|
|
358
|
+
this.columnManager.blockRedraw();
|
|
359
|
+
|
|
360
|
+
this.eventBus.dispatch("redraw-blocked");
|
|
351
361
|
}
|
|
352
362
|
|
|
353
363
|
//restore table redrawing
|
|
354
364
|
restoreRedraw(){
|
|
355
365
|
this.initGuard();
|
|
356
|
-
|
|
357
|
-
|
|
366
|
+
|
|
367
|
+
this.eventBus.dispatch("redraw-restoring");
|
|
368
|
+
|
|
369
|
+
this.rowManager.restoreRedraw();
|
|
370
|
+
this.columnManager.restoreRedraw();
|
|
371
|
+
|
|
372
|
+
this.eventBus.dispatch("redraw-restored");
|
|
358
373
|
}
|
|
359
374
|
|
|
360
375
|
//load data
|
|
@@ -402,7 +417,7 @@ class Tabulator {
|
|
|
402
417
|
data = JSON.parse(data);
|
|
403
418
|
}
|
|
404
419
|
|
|
405
|
-
if(data){
|
|
420
|
+
if(data && data.length > 0){
|
|
406
421
|
data.forEach((item) => {
|
|
407
422
|
var row = this.rowManager.findRow(item[this.options.index]);
|
|
408
423
|
|
|
@@ -410,13 +425,13 @@ class Tabulator {
|
|
|
410
425
|
responses++;
|
|
411
426
|
|
|
412
427
|
row.updateData(item)
|
|
413
|
-
|
|
414
|
-
|
|
428
|
+
.then(()=>{
|
|
429
|
+
responses--;
|
|
415
430
|
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
431
|
+
if(!responses){
|
|
432
|
+
resolve();
|
|
433
|
+
}
|
|
434
|
+
});
|
|
420
435
|
}
|
|
421
436
|
});
|
|
422
437
|
}else{
|
|
@@ -438,15 +453,15 @@ class Tabulator {
|
|
|
438
453
|
|
|
439
454
|
if(data){
|
|
440
455
|
this.rowManager.addRows(data, pos, index)
|
|
441
|
-
|
|
442
|
-
|
|
456
|
+
.then((rows) => {
|
|
457
|
+
var output = [];
|
|
443
458
|
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
459
|
+
rows.forEach(function(row){
|
|
460
|
+
output.push(row.getComponent());
|
|
461
|
+
});
|
|
447
462
|
|
|
448
|
-
|
|
449
|
-
|
|
463
|
+
resolve(output);
|
|
464
|
+
});
|
|
450
465
|
}else{
|
|
451
466
|
console.warn("Update Error - No data provided");
|
|
452
467
|
reject("Update Error - No data provided");
|
|
@@ -468,7 +483,7 @@ class Tabulator {
|
|
|
468
483
|
data = JSON.parse(data);
|
|
469
484
|
}
|
|
470
485
|
|
|
471
|
-
if(data){
|
|
486
|
+
if(data && data.length > 0){
|
|
472
487
|
data.forEach((item) => {
|
|
473
488
|
var row = this.rowManager.findRow(item[this.options.index]);
|
|
474
489
|
|
|
@@ -476,24 +491,24 @@ class Tabulator {
|
|
|
476
491
|
|
|
477
492
|
if(row){
|
|
478
493
|
row.updateData(item)
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
494
|
+
.then(()=>{
|
|
495
|
+
responses--;
|
|
496
|
+
rows.push(row.getComponent());
|
|
482
497
|
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
498
|
+
if(!responses){
|
|
499
|
+
resolve(rows);
|
|
500
|
+
}
|
|
501
|
+
});
|
|
487
502
|
}else{
|
|
488
503
|
this.rowManager.addRows(item)
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
504
|
+
.then((newRows)=>{
|
|
505
|
+
responses--;
|
|
506
|
+
rows.push(newRows[0].getComponent());
|
|
492
507
|
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
508
|
+
if(!responses){
|
|
509
|
+
resolve(rows);
|
|
510
|
+
}
|
|
511
|
+
});
|
|
497
512
|
}
|
|
498
513
|
});
|
|
499
514
|
}else{
|
|
@@ -516,8 +531,8 @@ class Tabulator {
|
|
|
516
531
|
}
|
|
517
532
|
|
|
518
533
|
//get row object
|
|
519
|
-
getRowFromPosition(position
|
|
520
|
-
var row = this.rowManager.getRowFromPosition(position
|
|
534
|
+
getRowFromPosition(position){
|
|
535
|
+
var row = this.rowManager.getRowFromPosition(position);
|
|
521
536
|
|
|
522
537
|
if(row){
|
|
523
538
|
return row.getComponent();
|
|
@@ -545,8 +560,7 @@ class Tabulator {
|
|
|
545
560
|
foundRows.push(row);
|
|
546
561
|
}else{
|
|
547
562
|
console.error("Delete Error - No matching row found:", item);
|
|
548
|
-
return Promise.reject("Delete Error - No matching row found")
|
|
549
|
-
break;
|
|
563
|
+
return Promise.reject("Delete Error - No matching row found");
|
|
550
564
|
}
|
|
551
565
|
}
|
|
552
566
|
|
|
@@ -557,7 +571,7 @@ class Tabulator {
|
|
|
557
571
|
|
|
558
572
|
//delete rows
|
|
559
573
|
foundRows.forEach((row) =>{
|
|
560
|
-
row.delete()
|
|
574
|
+
row.delete();
|
|
561
575
|
});
|
|
562
576
|
|
|
563
577
|
this.rowManager.reRenderInPosition();
|
|
@@ -574,12 +588,12 @@ class Tabulator {
|
|
|
574
588
|
}
|
|
575
589
|
|
|
576
590
|
return this.rowManager.addRows(data, pos, index)
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
591
|
+
.then((rows)=>{
|
|
592
|
+
return rows[0].getComponent();
|
|
593
|
+
});
|
|
580
594
|
}
|
|
581
595
|
|
|
582
|
-
//update a row if it
|
|
596
|
+
//update a row if it exists otherwise create it
|
|
583
597
|
updateOrAddRow(index, data){
|
|
584
598
|
var row = this.rowManager.findRow(index);
|
|
585
599
|
|
|
@@ -591,14 +605,14 @@ class Tabulator {
|
|
|
591
605
|
|
|
592
606
|
if(row){
|
|
593
607
|
return row.updateData(data)
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
608
|
+
.then(()=>{
|
|
609
|
+
return row.getComponent();
|
|
610
|
+
});
|
|
597
611
|
}else{
|
|
598
612
|
return this.rowManager.addRows(data)
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
613
|
+
.then((rows)=>{
|
|
614
|
+
return rows[0].getComponent();
|
|
615
|
+
});
|
|
602
616
|
}
|
|
603
617
|
}
|
|
604
618
|
|
|
@@ -614,9 +628,9 @@ class Tabulator {
|
|
|
614
628
|
|
|
615
629
|
if(row){
|
|
616
630
|
return row.updateData(data)
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
631
|
+
.then(()=>{
|
|
632
|
+
return Promise.resolve(row.getComponent());
|
|
633
|
+
});
|
|
620
634
|
}else{
|
|
621
635
|
console.warn("Update Error - No matching row found:", index);
|
|
622
636
|
return Promise.reject("Update Error - No matching row found");
|
|
@@ -628,7 +642,7 @@ class Tabulator {
|
|
|
628
642
|
var row = this.rowManager.findRow(index);
|
|
629
643
|
|
|
630
644
|
if(row){
|
|
631
|
-
return this.rowManager.scrollToRow(row, position, ifVisible)
|
|
645
|
+
return this.rowManager.scrollToRow(row, position, ifVisible);
|
|
632
646
|
}else{
|
|
633
647
|
console.warn("Scroll Error - No matching row found:", index);
|
|
634
648
|
return Promise.reject("Scroll Error - No matching row found");
|
|
@@ -652,11 +666,11 @@ class Tabulator {
|
|
|
652
666
|
}
|
|
653
667
|
|
|
654
668
|
//get position of row in table
|
|
655
|
-
getRowPosition(index
|
|
669
|
+
getRowPosition(index){
|
|
656
670
|
var row = this.rowManager.findRow(index);
|
|
657
671
|
|
|
658
672
|
if(row){
|
|
659
|
-
return
|
|
673
|
+
return row.getPosition();
|
|
660
674
|
}else{
|
|
661
675
|
console.warn("Position Error - No matching row found:", index);
|
|
662
676
|
return false;
|
|
@@ -738,9 +752,9 @@ class Tabulator {
|
|
|
738
752
|
this.initGuard();
|
|
739
753
|
|
|
740
754
|
return this.columnManager.addColumn(definition, before, column)
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
755
|
+
.then((column) => {
|
|
756
|
+
return column.getComponent();
|
|
757
|
+
});
|
|
744
758
|
}
|
|
745
759
|
|
|
746
760
|
deleteColumn(field){
|
|
@@ -762,7 +776,7 @@ class Tabulator {
|
|
|
762
776
|
this.initGuard();
|
|
763
777
|
|
|
764
778
|
if(column){
|
|
765
|
-
return column.updateDefinition(definition)
|
|
779
|
+
return column.updateDefinition(definition);
|
|
766
780
|
}else{
|
|
767
781
|
console.warn("Column Update Error - No matching column found:", field);
|
|
768
782
|
return Promise.reject();
|
|
@@ -777,7 +791,7 @@ class Tabulator {
|
|
|
777
791
|
|
|
778
792
|
if(fromColumn){
|
|
779
793
|
if(toColumn){
|
|
780
|
-
this.columnManager.moveColumn(fromColumn, toColumn, after)
|
|
794
|
+
this.columnManager.moveColumn(fromColumn, toColumn, after);
|
|
781
795
|
}else{
|
|
782
796
|
console.warn("Move Error - No matching column found:", toColumn);
|
|
783
797
|
}
|
|
@@ -792,7 +806,7 @@ class Tabulator {
|
|
|
792
806
|
var column = this.columnManager.findColumn(field);
|
|
793
807
|
|
|
794
808
|
if(column){
|
|
795
|
-
return this.columnManager.scrollToColumn(column, position, ifVisible)
|
|
809
|
+
return this.columnManager.scrollToColumn(column, position, ifVisible);
|
|
796
810
|
}else{
|
|
797
811
|
console.warn("Scroll Error - No matching column found:", field);
|
|
798
812
|
return Promise.reject("Scroll Error - No matching column found");
|
|
@@ -827,10 +841,10 @@ class Tabulator {
|
|
|
827
841
|
}
|
|
828
842
|
|
|
829
843
|
dispatchEvent(){
|
|
830
|
-
var args = Array.from(arguments)
|
|
831
|
-
|
|
844
|
+
var args = Array.from(arguments);
|
|
845
|
+
args.shift();
|
|
832
846
|
|
|
833
|
-
this.externalEvents.dispatch(...arguments)
|
|
847
|
+
this.externalEvents.dispatch(...arguments);
|
|
834
848
|
}
|
|
835
849
|
|
|
836
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(){
|