tabulator-tables 5.3.4 → 5.4.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/bower.json +1 -1
- package/build/Bundler.js +64 -38
- package/dist/css/tabulator.css +69 -19
- 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 +69 -19
- 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 +69 -19
- 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 +69 -19
- 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 +69 -19
- 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 +69 -19
- 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 +69 -19
- 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 +69 -19
- 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 +69 -19
- 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 +69 -19
- 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 +69 -19
- 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/tabulator.js +25853 -27494
- 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 +738 -506
- 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 -6
- package/src/js/core/ColumnManager.js +30 -15
- package/src/js/core/RowManager.js +26 -0
- package/src/js/core/column/Column.js +4 -0
- package/src/js/core/column/defaults/options.js +1 -0
- package/src/js/core/rendering/renderers/VirtualDomHorizontal.js +100 -77
- package/src/js/core/row/Row.js +1 -1
- package/src/js/core/tools/InteractionMonitor.js +2 -0
- package/src/js/core/tools/Popup.js +98 -76
- package/src/js/modules/ColumnCalcs/ColumnCalcs.js +185 -146
- package/src/js/modules/Download/defaults/downloaders/xlsx.js +2 -1
- package/src/js/modules/Edit/Edit.js +13 -2
- package/src/js/modules/Edit/List.js +1 -0
- package/src/js/modules/Filter/Filter.js +2 -2
- package/src/js/modules/Format/Format.js +46 -40
- package/src/js/modules/Format/defaults/formatters/responsiveCollapse.js +9 -1
- package/src/js/modules/FrozenColumns/FrozenColumns.js +24 -57
- package/src/js/modules/FrozenRows/FrozenRows.js +1 -1
- package/src/js/modules/GroupRows/Group.js +20 -28
- package/src/js/modules/GroupRows/GroupComponent.js +1 -1
- package/src/js/modules/GroupRows/GroupRows.js +8 -0
- package/src/js/modules/Interaction/Interaction.js +12 -0
- package/src/js/modules/Menu/Menu.js +31 -7
- package/src/js/modules/MoveColumns/MoveColumns.js +3 -3
- package/src/js/modules/Page/Page.js +1 -0
- package/src/js/modules/Persistence/Persistence.js +1 -0
- package/src/js/modules/Popup/Popup.js +42 -4
- package/src/js/modules/ResizeColumns/ResizeColumns.js +25 -6
- package/src/js/modules/ResizeTable/ResizeTable.js +7 -8
- package/src/js/modules/ResponsiveLayout/ResponsiveLayout.js +21 -21
- package/src/js/modules/Sort/Sort.js +14 -2
- package/src/scss/tabulator.scss +92 -31
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "tabulator-tables",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.4.1",
|
|
4
4
|
"description": "Interactive table generation JavaScript library",
|
|
5
5
|
"style": "dist/css/tabulator.css",
|
|
6
6
|
"main": "dist/js/tabulator.js",
|
|
@@ -10,7 +10,8 @@
|
|
|
10
10
|
"**/*.scss"
|
|
11
11
|
],
|
|
12
12
|
"scripts": {
|
|
13
|
-
"lint": "eslint src",
|
|
13
|
+
"lint": "eslint src --fix",
|
|
14
|
+
"prebuild": "eslint src --fix",
|
|
14
15
|
"build": "rollup -c build/rollup.js",
|
|
15
16
|
"dev": "rollup -c build/rollup.js -w --environment TARGET:dev",
|
|
16
17
|
"dev:css": "rollup -c build/rollup.js -w --environment TARGET:css",
|
|
@@ -47,10 +48,6 @@
|
|
|
47
48
|
},
|
|
48
49
|
"homepage": "http://tabulator.info/",
|
|
49
50
|
"devDependencies": {
|
|
50
|
-
"@babel/core": "^7.12.10",
|
|
51
|
-
"@babel/plugin-proposal-class-properties": "^7.12.1",
|
|
52
|
-
"@babel/preset-env": "^7.12.11",
|
|
53
|
-
"@rollup/plugin-babel": "^5.2.2",
|
|
54
51
|
"@rollup/plugin-node-resolve": "^11.0.1",
|
|
55
52
|
"eslint": "^8.10.0",
|
|
56
53
|
"eslint-plugin-only-warn": "^1.0.3",
|
|
@@ -16,6 +16,7 @@ export default class ColumnManager extends CoreFeature {
|
|
|
16
16
|
|
|
17
17
|
this.blockHozScrollEvent = false;
|
|
18
18
|
this.headersElement = null;
|
|
19
|
+
this.contentsElement = null;
|
|
19
20
|
this.element = null ; //containing element
|
|
20
21
|
this.columns = []; // column definition object
|
|
21
22
|
this.columnsByIndex = []; //columns by index
|
|
@@ -35,11 +36,22 @@ export default class ColumnManager extends CoreFeature {
|
|
|
35
36
|
this.initializeRenderer();
|
|
36
37
|
|
|
37
38
|
this.headersElement = this.createHeadersElement();
|
|
39
|
+
this.contentsElement = this.createHeaderContentsElement();
|
|
38
40
|
this.element = this.createHeaderElement();
|
|
39
41
|
|
|
40
|
-
this.
|
|
42
|
+
this.contentsElement.insertBefore(this.headersElement, this.contentsElement.firstChild);
|
|
43
|
+
this.element.insertBefore(this.contentsElement, this.element.firstChild);
|
|
41
44
|
|
|
42
45
|
this.subscribe("scroll-horizontal", this.scrollHorizontal.bind(this));
|
|
46
|
+
this.subscribe("scrollbar-vertical", this.padVerticalScrollbar.bind(this));
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
padVerticalScrollbar(width){
|
|
50
|
+
if(this.table.rtl){
|
|
51
|
+
this.headersElement.style.marginLeft = width + "px";
|
|
52
|
+
}else{
|
|
53
|
+
this.headersElement.style.marginRight = width + "px";
|
|
54
|
+
}
|
|
43
55
|
}
|
|
44
56
|
|
|
45
57
|
initializeRenderer(){
|
|
@@ -73,6 +85,15 @@ export default class ColumnManager extends CoreFeature {
|
|
|
73
85
|
|
|
74
86
|
return el;
|
|
75
87
|
}
|
|
88
|
+
|
|
89
|
+
createHeaderContentsElement (){
|
|
90
|
+
var el = document.createElement("div");
|
|
91
|
+
|
|
92
|
+
el.classList.add("tabulator-header-contents");
|
|
93
|
+
el.setAttribute("role", "rowgroup");
|
|
94
|
+
|
|
95
|
+
return el;
|
|
96
|
+
}
|
|
76
97
|
|
|
77
98
|
createHeaderElement (){
|
|
78
99
|
var el = document.createElement("div");
|
|
@@ -91,6 +112,12 @@ export default class ColumnManager extends CoreFeature {
|
|
|
91
112
|
getElement(){
|
|
92
113
|
return this.element;
|
|
93
114
|
}
|
|
115
|
+
|
|
116
|
+
//return containing contents element
|
|
117
|
+
getContentsElement(){
|
|
118
|
+
return this.contentsElement;
|
|
119
|
+
}
|
|
120
|
+
|
|
94
121
|
|
|
95
122
|
//return header containing element
|
|
96
123
|
getHeadersElement(){
|
|
@@ -99,20 +126,8 @@ export default class ColumnManager extends CoreFeature {
|
|
|
99
126
|
|
|
100
127
|
//scroll horizontally to match table body
|
|
101
128
|
scrollHorizontal(left){
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
// this.tempScrollBlock();
|
|
106
|
-
this.element.scrollLeft = left;
|
|
107
|
-
|
|
108
|
-
//adjust for vertical scrollbar moving table when present
|
|
109
|
-
if(left > scrollWidth){
|
|
110
|
-
hozAdjust = left - scrollWidth;
|
|
111
|
-
this.element.style.marginLeft = (-(hozAdjust)) + "px";
|
|
112
|
-
}else{
|
|
113
|
-
this.element.style.marginLeft = 0;
|
|
114
|
-
}
|
|
115
|
-
|
|
129
|
+
this.contentsElement.scrollLeft = left;
|
|
130
|
+
|
|
116
131
|
this.scrollLeft = left;
|
|
117
132
|
|
|
118
133
|
this.renderer.scrollColumns(left);
|
|
@@ -38,6 +38,8 @@ export default class RowManager extends CoreFeature{
|
|
|
38
38
|
|
|
39
39
|
this.dataPipeline = []; //hold data pipeline tasks
|
|
40
40
|
this.displayPipeline = []; //hold data display pipeline tasks
|
|
41
|
+
|
|
42
|
+
this.scrollbarWidth = 0;
|
|
41
43
|
|
|
42
44
|
this.renderer = null;
|
|
43
45
|
}
|
|
@@ -720,6 +722,10 @@ export default class RowManager extends CoreFeature{
|
|
|
720
722
|
//case to handle scenario when trying to skip past end stage
|
|
721
723
|
this.regenerateRowPositions();
|
|
722
724
|
}
|
|
725
|
+
|
|
726
|
+
if(this.getDisplayRows().length){
|
|
727
|
+
this._clearPlaceholder();
|
|
728
|
+
}
|
|
723
729
|
}
|
|
724
730
|
|
|
725
731
|
//regenerate row positions
|
|
@@ -826,10 +832,26 @@ export default class RowManager extends CoreFeature{
|
|
|
826
832
|
if(!this.fixedHeight){
|
|
827
833
|
this.adjustTableSize();
|
|
828
834
|
}
|
|
835
|
+
|
|
836
|
+
this.scrollBarCheck();
|
|
829
837
|
|
|
830
838
|
this.dispatchExternal("renderComplete");
|
|
831
839
|
}
|
|
832
840
|
}
|
|
841
|
+
|
|
842
|
+
scrollBarCheck(){
|
|
843
|
+
var scrollbarWidth = 0;
|
|
844
|
+
|
|
845
|
+
//adjust for vertical scrollbar moving table when present
|
|
846
|
+
if(this.element.scrollHeight > this.element.clientHeight){
|
|
847
|
+
scrollbarWidth = this.element.offsetWidth - this.element.clientWidth;
|
|
848
|
+
}
|
|
849
|
+
|
|
850
|
+
if(scrollbarWidth !== this.scrollbarWidth){
|
|
851
|
+
this.scrollbarWidth = scrollbarWidth;
|
|
852
|
+
this.dispatch("scrollbar-vertical", scrollbarWidth);
|
|
853
|
+
}
|
|
854
|
+
}
|
|
833
855
|
|
|
834
856
|
initializeRenderer(){
|
|
835
857
|
var renderClass;
|
|
@@ -892,6 +914,8 @@ export default class RowManager extends CoreFeature{
|
|
|
892
914
|
if(!this.displayRowsCount){
|
|
893
915
|
this._showPlaceholder();
|
|
894
916
|
}
|
|
917
|
+
|
|
918
|
+
this.scrollBarCheck();
|
|
895
919
|
|
|
896
920
|
this.dispatchExternal("renderComplete");
|
|
897
921
|
}
|
|
@@ -990,6 +1014,8 @@ export default class RowManager extends CoreFeature{
|
|
|
990
1014
|
this.redraw();
|
|
991
1015
|
}
|
|
992
1016
|
}
|
|
1017
|
+
|
|
1018
|
+
this.scrollBarCheck();
|
|
993
1019
|
}
|
|
994
1020
|
|
|
995
1021
|
this._positionPlaceholder();
|
|
@@ -243,6 +243,10 @@ class Column extends CoreFeature{
|
|
|
243
243
|
|
|
244
244
|
var titleHolderElement = document.createElement("div");
|
|
245
245
|
titleHolderElement.classList.add("tabulator-col-title");
|
|
246
|
+
|
|
247
|
+
if(def.headerWordWrap){
|
|
248
|
+
titleHolderElement.classList.add("tabulator-col-title-wrap");
|
|
249
|
+
}
|
|
246
250
|
|
|
247
251
|
if(def.editableTitle){
|
|
248
252
|
var titleElement = document.createElement("input");
|
|
@@ -19,7 +19,7 @@ export default class VirtualDomHorizontal extends Renderer{
|
|
|
19
19
|
this.windowBuffer = 200; //pixel margin to make column visible before it is shown on screen
|
|
20
20
|
|
|
21
21
|
this.visibleRows = null;
|
|
22
|
-
|
|
22
|
+
|
|
23
23
|
this.initialized = false;
|
|
24
24
|
this.isFitData = false;
|
|
25
25
|
|
|
@@ -32,53 +32,29 @@ export default class VirtualDomHorizontal extends Renderer{
|
|
|
32
32
|
this.vertScrollListen();
|
|
33
33
|
}
|
|
34
34
|
|
|
35
|
-
compatibilityCheck(){
|
|
36
|
-
var columns = this.options("columns"),
|
|
37
|
-
frozen = false,
|
|
38
|
-
ok = true;
|
|
39
|
-
|
|
35
|
+
compatibilityCheck(){
|
|
40
36
|
if(this.options("layout") == "fitDataTable"){
|
|
41
37
|
console.warn("Horizontal Virtual DOM is not compatible with fitDataTable layout mode");
|
|
42
|
-
ok = false;
|
|
43
38
|
}
|
|
44
39
|
|
|
45
40
|
if(this.options("responsiveLayout")){
|
|
46
41
|
console.warn("Horizontal Virtual DOM is not compatible with responsive columns");
|
|
47
|
-
ok = false;
|
|
48
42
|
}
|
|
49
43
|
|
|
50
44
|
if(this.options("rtl")){
|
|
51
45
|
console.warn("Horizontal Virtual DOM is not currently compatible with RTL text direction");
|
|
52
|
-
ok = false;
|
|
53
46
|
}
|
|
54
|
-
|
|
55
|
-
if(columns){
|
|
56
|
-
frozen = columns.find((col) => {
|
|
57
|
-
return col.frozen;
|
|
58
|
-
});
|
|
59
|
-
|
|
60
|
-
if(frozen){
|
|
61
|
-
console.warn("Horizontal Virtual DOM is not compatible with frozen columns");
|
|
62
|
-
ok = false;
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
// if(!ok){
|
|
67
|
-
// options.virtualDomHoz = false;
|
|
68
|
-
// }
|
|
69
|
-
|
|
70
|
-
return ok;
|
|
71
47
|
}
|
|
72
48
|
|
|
73
49
|
layoutCheck(){
|
|
74
50
|
this.isFitData = this.options("layout").startsWith('fitData');
|
|
75
51
|
}
|
|
76
|
-
|
|
52
|
+
|
|
77
53
|
vertScrollListen(){
|
|
78
54
|
this.subscribe("scroll-vertical", this.clearVisRowCache.bind(this));
|
|
79
55
|
this.subscribe("data-refreshed", this.clearVisRowCache.bind(this));
|
|
80
56
|
}
|
|
81
|
-
|
|
57
|
+
|
|
82
58
|
clearVisRowCache(){
|
|
83
59
|
this.visibleRows = null;
|
|
84
60
|
}
|
|
@@ -90,7 +66,7 @@ export default class VirtualDomHorizontal extends Renderer{
|
|
|
90
66
|
renderColumns(row, force){
|
|
91
67
|
this.dataChange();
|
|
92
68
|
}
|
|
93
|
-
|
|
69
|
+
|
|
94
70
|
|
|
95
71
|
scrollColumns(left, dir){
|
|
96
72
|
if(this.scrollLeft != left){
|
|
@@ -124,7 +100,6 @@ export default class VirtualDomHorizontal extends Renderer{
|
|
|
124
100
|
},
|
|
125
101
|
colPos = 0;
|
|
126
102
|
|
|
127
|
-
|
|
128
103
|
if(update && !this.initialized){
|
|
129
104
|
return;
|
|
130
105
|
}
|
|
@@ -139,41 +114,44 @@ export default class VirtualDomHorizontal extends Renderer{
|
|
|
139
114
|
this.vDomScrollPosRight = this.scrollLeft + this.elementVertical.clientWidth + this.windowBuffer;
|
|
140
115
|
|
|
141
116
|
this.table.columnManager.columnsByIndex.forEach((column) => {
|
|
142
|
-
var config = {}
|
|
117
|
+
var config = {},
|
|
118
|
+
width;
|
|
143
119
|
|
|
144
120
|
if(column.visible){
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
if (this.isFitData) {
|
|
153
|
-
config.fitDataCheck = column.modules.vdomHoz ? column.modules.vdomHoz.fitDataCheck : true;
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
if((colPos + width > this.vDomScrollPosLeft) && (colPos < this.vDomScrollPosRight)){
|
|
157
|
-
//column is visible
|
|
121
|
+
if(!column.modules.frozen){
|
|
122
|
+
width = column.getWidth();
|
|
123
|
+
|
|
124
|
+
config.leftPos = colPos;
|
|
125
|
+
config.rightPos = colPos + width;
|
|
126
|
+
|
|
127
|
+
config.width = width;
|
|
158
128
|
|
|
159
|
-
if(this.
|
|
160
|
-
|
|
161
|
-
this.vDomPadLeft = colPos;
|
|
129
|
+
if (this.isFitData) {
|
|
130
|
+
config.fitDataCheck = column.modules.vdomHoz ? column.modules.vdomHoz.fitDataCheck : true;
|
|
162
131
|
}
|
|
163
132
|
|
|
164
|
-
this.
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
133
|
+
if((colPos + width > this.vDomScrollPosLeft) && (colPos < this.vDomScrollPosRight)){
|
|
134
|
+
//column is visible
|
|
135
|
+
|
|
136
|
+
if(this.leftCol == -1){
|
|
137
|
+
this.leftCol = this.columns.length;
|
|
138
|
+
this.vDomPadLeft = colPos;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
this.rightCol = this.columns.length;
|
|
142
|
+
}else{
|
|
143
|
+
// column is hidden
|
|
144
|
+
if(this.leftCol !== -1){
|
|
145
|
+
this.vDomPadRight += width;
|
|
146
|
+
}
|
|
169
147
|
}
|
|
148
|
+
|
|
149
|
+
this.columns.push(column);
|
|
150
|
+
|
|
151
|
+
column.modules.vdomHoz = config;
|
|
152
|
+
|
|
153
|
+
colPos += width;
|
|
170
154
|
}
|
|
171
|
-
|
|
172
|
-
this.columns.push(column);
|
|
173
|
-
|
|
174
|
-
column.modules.vdomHoz = config;
|
|
175
|
-
|
|
176
|
-
colPos += width;
|
|
177
155
|
}
|
|
178
156
|
});
|
|
179
157
|
|
|
@@ -265,7 +243,7 @@ export default class VirtualDomHorizontal extends Renderer{
|
|
|
265
243
|
}
|
|
266
244
|
|
|
267
245
|
rowEl.parentNode.removeChild(rowEl);
|
|
268
|
-
|
|
246
|
+
|
|
269
247
|
this.rerenderColumns(false, true);
|
|
270
248
|
}
|
|
271
249
|
}
|
|
@@ -294,24 +272,30 @@ export default class VirtualDomHorizontal extends Renderer{
|
|
|
294
272
|
}
|
|
295
273
|
|
|
296
274
|
reinitializeRows(){
|
|
297
|
-
var
|
|
298
|
-
|
|
275
|
+
var visibleRows = this.getVisibleRows(),
|
|
276
|
+
otherRows = this.table.rowManager.getRows().filter(row => !visibleRows.includes(row));
|
|
277
|
+
|
|
278
|
+
visibleRows.forEach((row) => {
|
|
299
279
|
this.reinitializeRow(row, true);
|
|
300
280
|
});
|
|
281
|
+
|
|
282
|
+
otherRows.forEach((row) =>{
|
|
283
|
+
row.deinitialize();
|
|
284
|
+
});
|
|
301
285
|
}
|
|
302
286
|
|
|
303
287
|
getVisibleRows(){
|
|
304
288
|
if (!this.visibleRows){
|
|
305
289
|
this.visibleRows = this.table.rowManager.getVisibleRows();
|
|
306
290
|
}
|
|
307
|
-
|
|
291
|
+
|
|
308
292
|
return this.visibleRows;
|
|
309
293
|
}
|
|
310
294
|
|
|
311
295
|
scroll(diff){
|
|
312
296
|
this.vDomScrollPosLeft += diff;
|
|
313
297
|
this.vDomScrollPosRight += diff;
|
|
314
|
-
|
|
298
|
+
|
|
315
299
|
if(Math.abs(diff) > (this.windowBuffer / 2)){
|
|
316
300
|
this.rerenderColumns();
|
|
317
301
|
}else{
|
|
@@ -341,7 +325,7 @@ export default class VirtualDomHorizontal extends Renderer{
|
|
|
341
325
|
working = true;
|
|
342
326
|
|
|
343
327
|
while(working){
|
|
344
|
-
|
|
328
|
+
|
|
345
329
|
let column = this.columns[this.rightCol + 1];
|
|
346
330
|
|
|
347
331
|
if(column){
|
|
@@ -351,7 +335,7 @@ export default class VirtualDomHorizontal extends Renderer{
|
|
|
351
335
|
this.getVisibleRows().forEach((row) => {
|
|
352
336
|
if(row.type !== "group"){
|
|
353
337
|
var cell = row.getCell(column);
|
|
354
|
-
row.getElement().
|
|
338
|
+
row.getElement().insertBefore(cell.getElement(), row.getCell(this.columns[this.rightCol]).getElement().nextSibling);
|
|
355
339
|
cell.cellRendered();
|
|
356
340
|
}
|
|
357
341
|
});
|
|
@@ -359,6 +343,12 @@ export default class VirtualDomHorizontal extends Renderer{
|
|
|
359
343
|
this.fitDataColActualWidthCheck(column);
|
|
360
344
|
|
|
361
345
|
this.rightCol++; // Don't move this below the >= check below
|
|
346
|
+
|
|
347
|
+
this.getVisibleRows().forEach((row) => {
|
|
348
|
+
if(row.type !== "group"){
|
|
349
|
+
row.modules.vdomHoz.rightCol = this.rightCol;
|
|
350
|
+
}
|
|
351
|
+
});
|
|
362
352
|
|
|
363
353
|
if(this.rightCol >= (this.columns.length - 1)){
|
|
364
354
|
this.vDomPadRight = 0;
|
|
@@ -392,12 +382,18 @@ export default class VirtualDomHorizontal extends Renderer{
|
|
|
392
382
|
this.getVisibleRows().forEach((row) => {
|
|
393
383
|
if(row.type !== "group"){
|
|
394
384
|
var cell = row.getCell(column);
|
|
395
|
-
row.getElement().
|
|
385
|
+
row.getElement().insertBefore(cell.getElement(), row.getCell(this.columns[this.leftCol]).getElement());
|
|
396
386
|
cell.cellRendered();
|
|
397
387
|
}
|
|
398
388
|
});
|
|
399
389
|
|
|
400
390
|
this.leftCol--; // don't move this below the <= check below
|
|
391
|
+
|
|
392
|
+
this.getVisibleRows().forEach((row) => {
|
|
393
|
+
if(row.type !== "group"){
|
|
394
|
+
row.modules.vdomHoz.leftCol = this.leftCol;
|
|
395
|
+
}
|
|
396
|
+
});
|
|
401
397
|
|
|
402
398
|
if(this.leftCol <= 0){ // replicating logic in addColRight
|
|
403
399
|
this.vDomPadLeft = 0;
|
|
@@ -450,6 +446,12 @@ export default class VirtualDomHorizontal extends Renderer{
|
|
|
450
446
|
|
|
451
447
|
this.vDomPadRight += column.getWidth();
|
|
452
448
|
this.rightCol --;
|
|
449
|
+
|
|
450
|
+
this.getVisibleRows().forEach((row) => {
|
|
451
|
+
if(row.type !== "group"){
|
|
452
|
+
row.modules.vdomHoz.rightCol = this.rightCol;
|
|
453
|
+
}
|
|
454
|
+
});
|
|
453
455
|
}else{
|
|
454
456
|
working = false;
|
|
455
457
|
}
|
|
@@ -466,7 +468,7 @@ export default class VirtualDomHorizontal extends Renderer{
|
|
|
466
468
|
removeColLeft(){
|
|
467
469
|
var changes = false,
|
|
468
470
|
working = true;
|
|
469
|
-
|
|
471
|
+
|
|
470
472
|
while(working){
|
|
471
473
|
let column = this.columns[this.leftCol];
|
|
472
474
|
|
|
@@ -488,6 +490,12 @@ export default class VirtualDomHorizontal extends Renderer{
|
|
|
488
490
|
|
|
489
491
|
this.vDomPadLeft += column.getWidth();
|
|
490
492
|
this.leftCol ++;
|
|
493
|
+
|
|
494
|
+
this.getVisibleRows().forEach((row) => {
|
|
495
|
+
if(row.type !== "group"){
|
|
496
|
+
row.modules.vdomHoz.leftCol = this.leftCol;
|
|
497
|
+
}
|
|
498
|
+
});
|
|
491
499
|
}else{
|
|
492
500
|
working = false;
|
|
493
501
|
}
|
|
@@ -528,26 +536,41 @@ export default class VirtualDomHorizontal extends Renderer{
|
|
|
528
536
|
leftCol:this.leftCol,
|
|
529
537
|
rightCol:this.rightCol,
|
|
530
538
|
};
|
|
531
|
-
|
|
539
|
+
|
|
540
|
+
if(this.table.modules.frozenColumns){
|
|
541
|
+
this.table.modules.frozenColumns.leftColumns.forEach((column) => {
|
|
542
|
+
this.appendCell(row, column);
|
|
543
|
+
});
|
|
544
|
+
}
|
|
545
|
+
|
|
532
546
|
for(let i = this.leftCol; i <= this.rightCol; i++){
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
}
|
|
547
|
+
this.appendCell(row, this.columns[i]);
|
|
548
|
+
}
|
|
549
|
+
|
|
550
|
+
if(this.table.modules.frozenColumns){
|
|
551
|
+
this.table.modules.frozenColumns.rightColumns.forEach((column) => {
|
|
552
|
+
this.appendCell(row, column);
|
|
553
|
+
});
|
|
541
554
|
}
|
|
542
555
|
}
|
|
543
556
|
}
|
|
544
557
|
|
|
558
|
+
appendCell(row, column){
|
|
559
|
+
if(column && column.visible){
|
|
560
|
+
let cell = row.getCell(column);
|
|
561
|
+
|
|
562
|
+
row.getElement().appendChild(cell.getElement());
|
|
563
|
+
cell.cellRendered();
|
|
564
|
+
}
|
|
565
|
+
}
|
|
566
|
+
|
|
545
567
|
reinitializeRow(row, force){
|
|
546
568
|
if(row.type !== "group"){
|
|
547
569
|
if(force || !row.modules.vdomHoz || row.modules.vdomHoz.leftCol !== this.leftCol || row.modules.vdomHoz.rightCol !== this.rightCol){
|
|
570
|
+
|
|
548
571
|
var rowEl = row.getElement();
|
|
549
572
|
while(rowEl.firstChild) rowEl.removeChild(rowEl.firstChild);
|
|
550
|
-
|
|
573
|
+
|
|
551
574
|
this.initializeRow(row);
|
|
552
575
|
}
|
|
553
576
|
}
|
package/src/js/core/row/Row.js
CHANGED