tabulator-tables 5.5.0 → 5.5.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/LICENSE +1 -1
- package/bower.json +1 -1
- package/build/Bundler.js +7 -3
- package/dist/css/tabulator.css +7 -2
- 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 +7 -2
- 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 +7 -2
- 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 +7 -2
- 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 +7 -2
- 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 +22 -17
- 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 +7 -2
- 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 +7 -2
- 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 +9 -4
- 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 +7 -2
- 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 +7 -2
- 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 +10 -2
- package/dist/js/tabulator.js +168 -92
- 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 +168 -92
- 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 +3 -2
- package/src/js/builds/jquery_wrapper.js +10 -2
- package/src/js/core/RowManager.js +2 -0
- package/src/js/core/rendering/renderers/BasicHorizontal.js +9 -7
- package/src/js/core/rendering/renderers/BasicVertical.js +43 -25
- package/src/js/core/rendering/renderers/VirtualDomVertical.js +6 -3
- package/src/js/core/row/Row.js +9 -3
- package/src/js/core/tools/DataLoader.js +44 -36
- package/src/js/modules/DataTree/DataTree.js +4 -1
- package/src/js/modules/GroupRows/Group.js +27 -10
- package/src/js/modules/History/defaults/redoers.js +4 -2
- package/src/js/modules/History/defaults/undoers.js +6 -2
- package/src/js/modules/HtmlTableImport/HtmlTableImport.js +2 -2
- package/src/js/modules/Keybindings/defaults/bindings.js +1 -1
- package/src/js/modules/Layout/Layout.js +10 -0
- package/src/js/modules/ResizeColumns/ResizeColumns.js +1 -0
- package/src/scss/tabulator.scss +7 -2
- package/src/scss/themes/materialize/tabulator_materialize.scss +2 -2
- package/src/scss/themes/materialize/variables.scss +1 -1
- package/src/scss/themes/semanticui/tabulator_semanticui.scss +1 -1
- package/src/scss/themes/semanticui/variables_table.scss +1 -1
package/dist/js/tabulator_esm.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* Tabulator v5.5.
|
|
1
|
+
/* Tabulator v5.5.2 (c) Oliver Folkerd 2023 */
|
|
2
2
|
class CoreFeature{
|
|
3
3
|
|
|
4
4
|
constructor(table){
|
|
@@ -3112,7 +3112,7 @@ class Row extends CoreFeature{
|
|
|
3112
3112
|
}
|
|
3113
3113
|
|
|
3114
3114
|
//functions to setup on first render
|
|
3115
|
-
initialize(force){
|
|
3115
|
+
initialize(force, inFragment){
|
|
3116
3116
|
this.create();
|
|
3117
3117
|
|
|
3118
3118
|
if(!this.initialized || force){
|
|
@@ -3127,7 +3127,7 @@ class Row extends CoreFeature{
|
|
|
3127
3127
|
|
|
3128
3128
|
this.initialized = true;
|
|
3129
3129
|
|
|
3130
|
-
this.table.columnManager.renderer.renderRowCells(this);
|
|
3130
|
+
this.table.columnManager.renderer.renderRowCells(this, inFragment);
|
|
3131
3131
|
|
|
3132
3132
|
if(force){
|
|
3133
3133
|
this.normalizeHeight();
|
|
@@ -3141,9 +3141,15 @@ class Row extends CoreFeature{
|
|
|
3141
3141
|
|
|
3142
3142
|
this.dispatch("row-layout-after", this);
|
|
3143
3143
|
}else {
|
|
3144
|
-
this.table.columnManager.renderer.rerenderRowCells(this);
|
|
3144
|
+
this.table.columnManager.renderer.rerenderRowCells(this, inFragment);
|
|
3145
3145
|
}
|
|
3146
3146
|
}
|
|
3147
|
+
|
|
3148
|
+
rendered(){
|
|
3149
|
+
this.cells.forEach((cell) => {
|
|
3150
|
+
cell.cellRendered();
|
|
3151
|
+
});
|
|
3152
|
+
}
|
|
3147
3153
|
|
|
3148
3154
|
reinitializeHeight(){
|
|
3149
3155
|
this.heightInitialized = false;
|
|
@@ -4231,6 +4237,9 @@ class DataTree extends Module{
|
|
|
4231
4237
|
this.branchEl = options.dataTreeBranchElement;
|
|
4232
4238
|
}
|
|
4233
4239
|
}
|
|
4240
|
+
}else {
|
|
4241
|
+
this.branchEl = document.createElement("div");
|
|
4242
|
+
this.branchEl.classList.add("tabulator-data-tree-branch-empty");
|
|
4234
4243
|
}
|
|
4235
4244
|
|
|
4236
4245
|
if(options.dataTreeCollapseElement){
|
|
@@ -4734,7 +4743,7 @@ class DataTree extends Module{
|
|
|
4734
4743
|
var config = row.modules.dataTree,
|
|
4735
4744
|
output = [];
|
|
4736
4745
|
|
|
4737
|
-
if(config.children){
|
|
4746
|
+
if(config && config.children){
|
|
4738
4747
|
|
|
4739
4748
|
if(!Array.isArray(config.children)){
|
|
4740
4749
|
config.children = this.generateChildren(row);
|
|
@@ -11434,7 +11443,7 @@ class Group{
|
|
|
11434
11443
|
this.arrowElement = document.createElement("div");
|
|
11435
11444
|
this.arrowElement.classList.add("tabulator-group-toggle");
|
|
11436
11445
|
this.arrowElement.appendChild(arrow);
|
|
11437
|
-
|
|
11446
|
+
|
|
11438
11447
|
//setup movable rows
|
|
11439
11448
|
if(this.groupManager.table.options.movableRows !== false && this.groupManager.table.modExists("moveRow")){
|
|
11440
11449
|
this.groupManager.table.modules.moveRow.initializeGroupHeader(this);
|
|
@@ -11457,9 +11466,15 @@ class Group{
|
|
|
11457
11466
|
toggleElement = this.groupManager.table.options.groupToggleElement == "arrow" ? this.arrowElement : this.element;
|
|
11458
11467
|
|
|
11459
11468
|
toggleElement.addEventListener("click", (e) => {
|
|
11460
|
-
|
|
11461
|
-
|
|
11462
|
-
|
|
11469
|
+
if(this.groupManager.table.options.groupToggleElement === "arrow"){
|
|
11470
|
+
e.stopPropagation();
|
|
11471
|
+
e.stopImmediatePropagation();
|
|
11472
|
+
}
|
|
11473
|
+
|
|
11474
|
+
//allow click event to propagate before toggling visibility
|
|
11475
|
+
setTimeout(() => {
|
|
11476
|
+
this.toggleVisibility();
|
|
11477
|
+
});
|
|
11463
11478
|
});
|
|
11464
11479
|
}
|
|
11465
11480
|
}
|
|
@@ -11580,7 +11595,7 @@ class Group{
|
|
|
11580
11595
|
if(el.parentNode){
|
|
11581
11596
|
el.parentNode.removeChild(el);
|
|
11582
11597
|
}
|
|
11583
|
-
|
|
11598
|
+
|
|
11584
11599
|
if(!this.groupManager.blockRedraw){
|
|
11585
11600
|
this.generateGroupHeaderContents();
|
|
11586
11601
|
|
|
@@ -11705,6 +11720,7 @@ class Group{
|
|
|
11705
11720
|
}
|
|
11706
11721
|
return count;
|
|
11707
11722
|
}
|
|
11723
|
+
|
|
11708
11724
|
|
|
11709
11725
|
toggleVisibility(){
|
|
11710
11726
|
if(this.visible){
|
|
@@ -11829,12 +11845,18 @@ class Group{
|
|
|
11829
11845
|
return output;
|
|
11830
11846
|
}
|
|
11831
11847
|
|
|
11832
|
-
getRows(component){
|
|
11848
|
+
getRows(component, includeChildren){
|
|
11833
11849
|
var output = [];
|
|
11834
11850
|
|
|
11835
|
-
this.
|
|
11836
|
-
|
|
11837
|
-
|
|
11851
|
+
if(includeChildren && this.groupList.length){
|
|
11852
|
+
this.groupList.forEach((group) => {
|
|
11853
|
+
output = output.concat(group.getRows(component, includeChildren));
|
|
11854
|
+
});
|
|
11855
|
+
}else {
|
|
11856
|
+
this.rows.forEach(function(row){
|
|
11857
|
+
output.push(component ? row.getComponent() : row);
|
|
11858
|
+
});
|
|
11859
|
+
}
|
|
11838
11860
|
|
|
11839
11861
|
return output;
|
|
11840
11862
|
}
|
|
@@ -11842,7 +11864,9 @@ class Group{
|
|
|
11842
11864
|
generateGroupHeaderContents(){
|
|
11843
11865
|
var data = [];
|
|
11844
11866
|
|
|
11845
|
-
this.
|
|
11867
|
+
var rows = this.getRows(false, true);
|
|
11868
|
+
|
|
11869
|
+
rows.forEach(function(row){
|
|
11846
11870
|
data.push(row.getData());
|
|
11847
11871
|
});
|
|
11848
11872
|
|
|
@@ -11947,6 +11971,8 @@ class Group{
|
|
|
11947
11971
|
clearCellHeight(){}
|
|
11948
11972
|
|
|
11949
11973
|
deinitializeHeight(){}
|
|
11974
|
+
|
|
11975
|
+
rendered(){}
|
|
11950
11976
|
|
|
11951
11977
|
//////////////// Object Generation /////////////////
|
|
11952
11978
|
getComponent(){
|
|
@@ -12613,8 +12639,12 @@ var defaultUndoers = {
|
|
|
12613
12639
|
},
|
|
12614
12640
|
|
|
12615
12641
|
rowMove: function(action){
|
|
12616
|
-
|
|
12617
|
-
|
|
12642
|
+
var after = (action.data.posFrom - action.data.posTo) > 0;
|
|
12643
|
+
|
|
12644
|
+
this.table.rowManager.moveRowActual(action.component, this.table.rowManager.getRowFromPosition(action.data.posFrom), after);
|
|
12645
|
+
|
|
12646
|
+
this.table.rowManager.regenerateRowPositions();
|
|
12647
|
+
this.table.rowManager.reRenderInPosition();
|
|
12618
12648
|
},
|
|
12619
12649
|
};
|
|
12620
12650
|
|
|
@@ -12639,8 +12669,10 @@ var defaultRedoers = {
|
|
|
12639
12669
|
},
|
|
12640
12670
|
|
|
12641
12671
|
rowMove: function(action){
|
|
12642
|
-
this.table.rowManager.moveRowActual(action.component, this.table.rowManager.
|
|
12643
|
-
|
|
12672
|
+
this.table.rowManager.moveRowActual(action.component, this.table.rowManager.getRowFromPosition(action.data.posTo), action.data.after);
|
|
12673
|
+
|
|
12674
|
+
this.table.rowManager.regenerateRowPositions();
|
|
12675
|
+
this.table.rowManager.reRenderInPosition();
|
|
12644
12676
|
},
|
|
12645
12677
|
};
|
|
12646
12678
|
|
|
@@ -12941,7 +12973,7 @@ class HtmlTableImport extends Module{
|
|
|
12941
12973
|
}
|
|
12942
12974
|
|
|
12943
12975
|
if(!col.field) {
|
|
12944
|
-
col.field = header.textContent.trim().toLowerCase().
|
|
12976
|
+
col.field = header.textContent.trim().toLowerCase().replaceAll(" ", "_");
|
|
12945
12977
|
}
|
|
12946
12978
|
|
|
12947
12979
|
width = header.getAttribute("width");
|
|
@@ -13599,7 +13631,7 @@ var defaultBindings = {
|
|
|
13599
13631
|
scrollToEnd:35,
|
|
13600
13632
|
undo:["ctrl + 90", "meta + 90"],
|
|
13601
13633
|
redo:["ctrl + 89", "meta + 89"],
|
|
13602
|
-
copyToClipboard:["ctrl + 67", "meta +
|
|
13634
|
+
copyToClipboard:["ctrl + 67", "meta + 67"],
|
|
13603
13635
|
};
|
|
13604
13636
|
|
|
13605
13637
|
var defaultActions = {
|
|
@@ -17611,6 +17643,7 @@ class ResizeColumns extends Module{
|
|
|
17611
17643
|
if(cell.modules.resize && cell.modules.resize.handleEl){
|
|
17612
17644
|
if(frozenOffset){
|
|
17613
17645
|
cell.modules.resize.handleEl.style[column.modules.frozen.position] = frozenOffset;
|
|
17646
|
+
cell.modules.resize.handleEl.style["z-index"] = 11;
|
|
17614
17647
|
}
|
|
17615
17648
|
|
|
17616
17649
|
cell.element.after(cell.modules.resize.handleEl);
|
|
@@ -20550,19 +20583,21 @@ class BasicHorizontal extends Renderer{
|
|
|
20550
20583
|
constructor(table){
|
|
20551
20584
|
super(table);
|
|
20552
20585
|
}
|
|
20553
|
-
|
|
20554
|
-
renderRowCells(row) {
|
|
20586
|
+
|
|
20587
|
+
renderRowCells(row, inFragment) {
|
|
20555
20588
|
const rowFrag = document.createDocumentFragment();
|
|
20556
20589
|
row.cells.forEach((cell) => {
|
|
20557
20590
|
rowFrag.appendChild(cell.getElement());
|
|
20558
20591
|
});
|
|
20559
20592
|
row.element.appendChild(rowFrag);
|
|
20560
|
-
|
|
20561
|
-
|
|
20562
|
-
|
|
20563
|
-
|
|
20593
|
+
|
|
20594
|
+
if(!inFragment){
|
|
20595
|
+
row.cells.forEach((cell) => {
|
|
20596
|
+
cell.cellRendered();
|
|
20597
|
+
});
|
|
20598
|
+
}
|
|
20564
20599
|
}
|
|
20565
|
-
|
|
20600
|
+
|
|
20566
20601
|
reinitializeColumnWidths(columns){
|
|
20567
20602
|
columns.forEach(function(column){
|
|
20568
20603
|
column.reinitializeWidth();
|
|
@@ -21891,82 +21926,100 @@ class ColumnManager extends CoreFeature {
|
|
|
21891
21926
|
class BasicVertical extends Renderer{
|
|
21892
21927
|
constructor(table){
|
|
21893
21928
|
super(table);
|
|
21894
|
-
|
|
21929
|
+
|
|
21895
21930
|
this.verticalFillMode = "fill";
|
|
21896
|
-
|
|
21931
|
+
|
|
21897
21932
|
this.scrollTop = 0;
|
|
21898
21933
|
this.scrollLeft = 0;
|
|
21899
|
-
|
|
21934
|
+
|
|
21900
21935
|
this.scrollTop = 0;
|
|
21901
21936
|
this.scrollLeft = 0;
|
|
21902
21937
|
}
|
|
21903
|
-
|
|
21938
|
+
|
|
21904
21939
|
clearRows(){
|
|
21905
21940
|
var element = this.tableElement;
|
|
21906
|
-
|
|
21941
|
+
|
|
21907
21942
|
// element.children.detach();
|
|
21908
21943
|
while(element.firstChild) element.removeChild(element.firstChild);
|
|
21909
|
-
|
|
21944
|
+
|
|
21910
21945
|
element.scrollTop = 0;
|
|
21911
21946
|
element.scrollLeft = 0;
|
|
21912
|
-
|
|
21947
|
+
|
|
21913
21948
|
element.style.minWidth = "";
|
|
21914
21949
|
element.style.minHeight = "";
|
|
21915
21950
|
element.style.display = "";
|
|
21916
21951
|
element.style.visibility = "";
|
|
21917
21952
|
}
|
|
21918
|
-
|
|
21953
|
+
|
|
21919
21954
|
renderRows() {
|
|
21920
21955
|
var element = this.tableElement,
|
|
21921
21956
|
onlyGroupHeaders = true,
|
|
21922
|
-
tableFrag = document.createDocumentFragment()
|
|
21923
|
-
|
|
21924
|
-
|
|
21957
|
+
tableFrag = document.createDocumentFragment(),
|
|
21958
|
+
rows = this.rows();
|
|
21959
|
+
|
|
21960
|
+
rows.forEach((row, index) => {
|
|
21925
21961
|
this.styleRow(row, index);
|
|
21926
|
-
row.initialize(true);
|
|
21927
|
-
|
|
21962
|
+
row.initialize(false, true);
|
|
21963
|
+
|
|
21928
21964
|
if (row.type !== "group") {
|
|
21929
21965
|
onlyGroupHeaders = false;
|
|
21930
21966
|
}
|
|
21931
|
-
|
|
21967
|
+
|
|
21932
21968
|
tableFrag.appendChild(row.getElement());
|
|
21933
21969
|
});
|
|
21970
|
+
|
|
21934
21971
|
element.appendChild(tableFrag);
|
|
21935
|
-
|
|
21972
|
+
|
|
21973
|
+
rows.forEach((row) => {
|
|
21974
|
+
row.rendered();
|
|
21975
|
+
|
|
21976
|
+
if(!row.heightInitialized) {
|
|
21977
|
+
row.calcHeight(true);
|
|
21978
|
+
}
|
|
21979
|
+
});
|
|
21980
|
+
|
|
21981
|
+
rows.forEach((row) => {
|
|
21982
|
+
if(!row.heightInitialized) {
|
|
21983
|
+
row.setCellHeight();
|
|
21984
|
+
}
|
|
21985
|
+
});
|
|
21986
|
+
|
|
21987
|
+
|
|
21988
|
+
|
|
21936
21989
|
if(onlyGroupHeaders){
|
|
21937
21990
|
element.style.minWidth = this.table.columnManager.getWidth() + "px";
|
|
21938
21991
|
}else {
|
|
21939
21992
|
element.style.minWidth = "";
|
|
21940
21993
|
}
|
|
21941
21994
|
}
|
|
21942
|
-
|
|
21943
|
-
|
|
21995
|
+
|
|
21996
|
+
|
|
21944
21997
|
rerenderRows(callback){
|
|
21945
21998
|
this.clearRows();
|
|
21946
|
-
|
|
21999
|
+
|
|
21947
22000
|
if(callback){
|
|
21948
22001
|
callback();
|
|
21949
22002
|
}
|
|
21950
|
-
|
|
22003
|
+
|
|
21951
22004
|
this.renderRows();
|
|
21952
22005
|
}
|
|
21953
|
-
|
|
22006
|
+
|
|
21954
22007
|
scrollToRowNearestTop(row){
|
|
21955
22008
|
var rowTop = Helpers.elOffset(row.getElement()).top;
|
|
21956
|
-
|
|
22009
|
+
|
|
21957
22010
|
return !(Math.abs(this.elementVertical.scrollTop - rowTop) > Math.abs(this.elementVertical.scrollTop + this.elementVertical.clientHeight - rowTop));
|
|
21958
22011
|
}
|
|
21959
|
-
|
|
22012
|
+
|
|
21960
22013
|
scrollToRow(row){
|
|
21961
22014
|
var rowEl = row.getElement();
|
|
21962
|
-
|
|
22015
|
+
|
|
21963
22016
|
this.elementVertical.scrollTop = Helpers.elOffset(rowEl).top - Helpers.elOffset(this.elementVertical).top + this.elementVertical.scrollTop;
|
|
21964
22017
|
}
|
|
21965
|
-
|
|
22018
|
+
|
|
21966
22019
|
visibleRows(includingBuffer){
|
|
21967
22020
|
return this.rows();
|
|
21968
22021
|
}
|
|
21969
|
-
|
|
22022
|
+
|
|
21970
22023
|
}
|
|
21971
22024
|
|
|
21972
22025
|
class VirtualDomVertical extends Renderer{
|
|
@@ -22255,13 +22308,14 @@ class VirtualDomVertical extends Renderer{
|
|
|
22255
22308
|
rowFragment = document.createDocumentFragment();
|
|
22256
22309
|
|
|
22257
22310
|
i = 0;
|
|
22311
|
+
|
|
22258
22312
|
while ((i < rowsToRender) && this.vDomBottom < rowsCount -1) {
|
|
22259
22313
|
index = this.vDomBottom + 1,
|
|
22260
22314
|
row = rows[index];
|
|
22261
22315
|
|
|
22262
22316
|
this.styleRow(row, index);
|
|
22263
22317
|
|
|
22264
|
-
row.initialize();
|
|
22318
|
+
row.initialize(false, true);
|
|
22265
22319
|
if(!row.heightInitialized && !this.table.options.rowHeight){
|
|
22266
22320
|
row.clearCellHeight();
|
|
22267
22321
|
}
|
|
@@ -22275,21 +22329,23 @@ class VirtualDomVertical extends Renderer{
|
|
|
22275
22329
|
if(!renderedRows.length){
|
|
22276
22330
|
break;
|
|
22277
22331
|
}
|
|
22332
|
+
|
|
22278
22333
|
element.appendChild(rowFragment);
|
|
22279
22334
|
|
|
22280
22335
|
// NOTE: The next 3 loops are separate on purpose
|
|
22281
22336
|
// This is to batch up the dom writes and reads which drastically improves performance
|
|
22337
|
+
|
|
22282
22338
|
renderedRows.forEach((row) => {
|
|
22339
|
+
row.rendered();
|
|
22340
|
+
|
|
22283
22341
|
if(!row.heightInitialized) {
|
|
22284
22342
|
row.calcHeight(true);
|
|
22285
|
-
|
|
22286
22343
|
}
|
|
22287
22344
|
});
|
|
22288
22345
|
|
|
22289
22346
|
renderedRows.forEach((row) => {
|
|
22290
22347
|
if(!row.heightInitialized) {
|
|
22291
22348
|
row.setCellHeight();
|
|
22292
|
-
|
|
22293
22349
|
}
|
|
22294
22350
|
});
|
|
22295
22351
|
|
|
@@ -23582,6 +23638,8 @@ class RowManager extends CoreFeature{
|
|
|
23582
23638
|
|
|
23583
23639
|
this.getElement().appendChild(this.placeholder);
|
|
23584
23640
|
this._positionPlaceholder();
|
|
23641
|
+
|
|
23642
|
+
this.adjustTableSize();
|
|
23585
23643
|
}
|
|
23586
23644
|
}
|
|
23587
23645
|
|
|
@@ -24179,58 +24237,66 @@ class ComponentFunctionBinder{
|
|
|
24179
24237
|
class DataLoader extends CoreFeature{
|
|
24180
24238
|
constructor(table){
|
|
24181
24239
|
super(table);
|
|
24182
|
-
|
|
24240
|
+
|
|
24183
24241
|
this.requestOrder = 0; //prevent requests coming out of sequence if overridden by another load request
|
|
24184
24242
|
this.loading = false;
|
|
24185
24243
|
}
|
|
24186
|
-
|
|
24244
|
+
|
|
24187
24245
|
initialize(){}
|
|
24188
|
-
|
|
24246
|
+
|
|
24189
24247
|
load(data, params, config, replace, silent, columnsChanged){
|
|
24190
24248
|
var requestNo = ++this.requestOrder;
|
|
24191
24249
|
|
|
24250
|
+
if(this.table.destroyed){
|
|
24251
|
+
return Promise.resolve();
|
|
24252
|
+
}
|
|
24253
|
+
|
|
24192
24254
|
this.dispatchExternal("dataLoading", data);
|
|
24193
|
-
|
|
24255
|
+
|
|
24194
24256
|
//parse json data to array
|
|
24195
24257
|
if (data && (data.indexOf("{") == 0 || data.indexOf("[") == 0)){
|
|
24196
24258
|
data = JSON.parse(data);
|
|
24197
24259
|
}
|
|
24198
|
-
|
|
24260
|
+
|
|
24199
24261
|
if(this.confirm("data-loading", [data, params, config, silent])){
|
|
24200
24262
|
this.loading = true;
|
|
24201
|
-
|
|
24263
|
+
|
|
24202
24264
|
if(!silent){
|
|
24203
24265
|
this.alertLoader();
|
|
24204
24266
|
}
|
|
24205
|
-
|
|
24267
|
+
|
|
24206
24268
|
//get params for request
|
|
24207
24269
|
params = this.chain("data-params", [data, config, silent], params || {}, params || {});
|
|
24208
|
-
|
|
24270
|
+
|
|
24209
24271
|
params = this.mapParams(params, this.table.options.dataSendParams);
|
|
24210
|
-
|
|
24272
|
+
|
|
24211
24273
|
var result = this.chain("data-load", [data, params, config, silent], false, Promise.resolve([]));
|
|
24212
24274
|
|
|
24213
24275
|
return result.then((response) => {
|
|
24214
|
-
if(!
|
|
24215
|
-
response
|
|
24216
|
-
|
|
24217
|
-
|
|
24218
|
-
|
|
24219
|
-
|
|
24220
|
-
|
|
24221
|
-
this.
|
|
24222
|
-
|
|
24223
|
-
|
|
24224
|
-
|
|
24225
|
-
|
|
24276
|
+
if(!this.table.destroyed){
|
|
24277
|
+
if(!Array.isArray(response) && typeof response == "object"){
|
|
24278
|
+
response = this.mapParams(response, this.objectInvert(this.table.options.dataReceiveParams));
|
|
24279
|
+
}
|
|
24280
|
+
|
|
24281
|
+
var rowData = this.chain("data-loaded", response, null, response);
|
|
24282
|
+
|
|
24283
|
+
if(requestNo == this.requestOrder){
|
|
24284
|
+
this.clearAlert();
|
|
24285
|
+
|
|
24286
|
+
if(rowData !== false){
|
|
24287
|
+
this.dispatchExternal("dataLoaded", rowData);
|
|
24288
|
+
this.table.rowManager.setData(rowData, replace, typeof columnsChanged === "undefined" ? !replace : columnsChanged);
|
|
24289
|
+
}
|
|
24290
|
+
}else {
|
|
24291
|
+
console.warn("Data Load Response Blocked - An active data load request was blocked by an attempt to change table data while the request was being made");
|
|
24226
24292
|
}
|
|
24227
24293
|
}else {
|
|
24228
|
-
console.warn("Data Load Response Blocked -
|
|
24294
|
+
console.warn("Data Load Response Blocked - Table has been destroyed");
|
|
24229
24295
|
}
|
|
24230
24296
|
}).catch((error) => {
|
|
24231
24297
|
console.error("Data Load Error: ", error);
|
|
24232
24298
|
this.dispatchExternal("dataLoadError", error);
|
|
24233
|
-
|
|
24299
|
+
|
|
24234
24300
|
if(!silent){
|
|
24235
24301
|
this.alertError();
|
|
24236
24302
|
}
|
|
@@ -24244,52 +24310,52 @@ class DataLoader extends CoreFeature{
|
|
|
24244
24310
|
});
|
|
24245
24311
|
}else {
|
|
24246
24312
|
this.dispatchExternal("dataLoaded", data);
|
|
24247
|
-
|
|
24313
|
+
|
|
24248
24314
|
if(!data){
|
|
24249
24315
|
data = [];
|
|
24250
24316
|
}
|
|
24251
|
-
|
|
24317
|
+
|
|
24252
24318
|
this.table.rowManager.setData(data, replace, typeof columnsChanged === "undefined" ? !replace : columnsChanged);
|
|
24253
24319
|
return Promise.resolve();
|
|
24254
24320
|
}
|
|
24255
24321
|
}
|
|
24256
|
-
|
|
24322
|
+
|
|
24257
24323
|
mapParams(params, map){
|
|
24258
24324
|
var output = {};
|
|
24259
|
-
|
|
24325
|
+
|
|
24260
24326
|
for(let key in params){
|
|
24261
24327
|
output[map.hasOwnProperty(key) ? map[key] : key] = params[key];
|
|
24262
24328
|
}
|
|
24263
|
-
|
|
24329
|
+
|
|
24264
24330
|
return output;
|
|
24265
24331
|
}
|
|
24266
|
-
|
|
24332
|
+
|
|
24267
24333
|
objectInvert(obj){
|
|
24268
24334
|
var output = {};
|
|
24269
|
-
|
|
24335
|
+
|
|
24270
24336
|
for(let key in obj){
|
|
24271
24337
|
output[obj[key]] = key;
|
|
24272
24338
|
}
|
|
24273
|
-
|
|
24339
|
+
|
|
24274
24340
|
return output;
|
|
24275
24341
|
}
|
|
24276
|
-
|
|
24342
|
+
|
|
24277
24343
|
blockActiveLoad(){
|
|
24278
24344
|
this.requestOrder++;
|
|
24279
24345
|
}
|
|
24280
|
-
|
|
24346
|
+
|
|
24281
24347
|
alertLoader(){
|
|
24282
24348
|
var shouldLoad = typeof this.table.options.dataLoader === "function" ? this.table.options.dataLoader() : this.table.options.dataLoader;
|
|
24283
|
-
|
|
24349
|
+
|
|
24284
24350
|
if(shouldLoad){
|
|
24285
24351
|
this.table.alertManager.alert(this.table.options.dataLoaderLoading || this.langText("data|loading"));
|
|
24286
24352
|
}
|
|
24287
24353
|
}
|
|
24288
|
-
|
|
24354
|
+
|
|
24289
24355
|
alertError(){
|
|
24290
24356
|
this.table.alertManager.alert(this.table.options.dataLoaderError || this.langText("data|error"), "error");
|
|
24291
24357
|
}
|
|
24292
|
-
|
|
24358
|
+
|
|
24293
24359
|
clearAlert(){
|
|
24294
24360
|
this.table.alertManager.clear();
|
|
24295
24361
|
}
|
|
@@ -24938,6 +25004,16 @@ class Layout extends Module{
|
|
|
24938
25004
|
}
|
|
24939
25005
|
|
|
24940
25006
|
this.table.element.setAttribute("tabulator-layout", this.mode);
|
|
25007
|
+
this.subscribe("column-init", this.initializeColumn.bind(this));
|
|
25008
|
+
}
|
|
25009
|
+
|
|
25010
|
+
initializeColumn(column){
|
|
25011
|
+
if(column.definition.widthGrow){
|
|
25012
|
+
column.definition.widthGrow = Number(column.definition.widthGrow);
|
|
25013
|
+
}
|
|
25014
|
+
if(column.definition.widthShrink){
|
|
25015
|
+
column.definition.widthShrink = Number(column.definition.widthShrink);
|
|
25016
|
+
}
|
|
24941
25017
|
}
|
|
24942
25018
|
|
|
24943
25019
|
getMode(){
|