tabulator-tables 5.1.2 → 5.1.5
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/dist/js/tabulator.js +247 -124
- 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 +571 -464
- 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 +5 -2
- package/src/js/core/FooterManager.js +2 -4
- package/src/js/core/Tabulator.js +5 -5
- package/src/js/core/rendering/renderers/VirtualDomHorizontal.js +38 -13
- package/src/js/core/row/Row.js +2 -2
- package/src/js/core/tools/InteractionMonitor.js +1 -1
- package/src/js/modules/ColumnCalcs/ColumnCalcs.js +9 -4
- package/src/js/modules/Export/Export.js +3 -3
- package/src/js/modules/Filter/Filter.js +3 -1
- package/src/js/modules/Format/defaults/formatters/rowSelection.js +19 -1
- package/src/js/modules/FrozenColumns/FrozenColumns.js +101 -83
- package/src/js/modules/GroupRows/Group.js +144 -142
- package/src/js/modules/Layout/Layout.js +1 -0
- package/src/js/modules/Page/Page.js +28 -13
- package/src/js/modules/Page/defaults/pageCounters/rows.js +21 -13
- package/src/js/modules/Persistence/defaults/readers.js +3 -3
- package/src/js/modules/ResizeColumns/ResizeColumns.js +61 -51
- package/src/js/modules/SelectRow/SelectRow.js +132 -128
package/package.json
CHANGED
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "tabulator-tables",
|
|
3
|
-
"version": "5.1.
|
|
3
|
+
"version": "5.1.5",
|
|
4
4
|
"description": "Interactive table generation JavaScript library",
|
|
5
5
|
"style": "dist/css/tabulator.css",
|
|
6
6
|
"main": "dist/js/tabulator.js",
|
|
7
7
|
"module": "dist/js/tabulator_esm.js",
|
|
8
|
-
"sideEffects":
|
|
8
|
+
"sideEffects": [
|
|
9
|
+
"**/*.css",
|
|
10
|
+
"**/*.scss"
|
|
11
|
+
],
|
|
9
12
|
"scripts": {
|
|
10
13
|
"build": "rollup -c build/rollup.js",
|
|
11
14
|
"dev": "rollup -c build/rollup.js -w --environment TARGET:dev",
|
|
@@ -10,8 +10,6 @@ export default class FooterManager extends CoreFeature{
|
|
|
10
10
|
this.containerElement = this.createContainerElement(); //containing element
|
|
11
11
|
this.external = false;
|
|
12
12
|
this.links = [];
|
|
13
|
-
|
|
14
|
-
this.initializeElement();
|
|
15
13
|
}
|
|
16
14
|
|
|
17
15
|
initialize(){
|
|
@@ -43,10 +41,10 @@ export default class FooterManager extends CoreFeature{
|
|
|
43
41
|
switch(typeof this.table.options.footerElement){
|
|
44
42
|
case "string":
|
|
45
43
|
if(this.table.options.footerElement[0] === "<"){
|
|
46
|
-
this.
|
|
44
|
+
this.containerElement.innerHTML = this.table.options.footerElement;
|
|
47
45
|
}else{
|
|
48
46
|
this.external = true;
|
|
49
|
-
this.
|
|
47
|
+
this.containerElement = document.querySelector(this.table.options.footerElement);
|
|
50
48
|
}
|
|
51
49
|
break;
|
|
52
50
|
|
package/src/js/core/Tabulator.js
CHANGED
|
@@ -50,7 +50,7 @@ class Tabulator {
|
|
|
50
50
|
|
|
51
51
|
if(this.initializeElement(element)){
|
|
52
52
|
|
|
53
|
-
this.
|
|
53
|
+
this.initializeCoreSystems(options);
|
|
54
54
|
|
|
55
55
|
//delay table creation to allow event bindings immediately after the constructor
|
|
56
56
|
setTimeout(() => {
|
|
@@ -80,7 +80,7 @@ class Tabulator {
|
|
|
80
80
|
}
|
|
81
81
|
}
|
|
82
82
|
|
|
83
|
-
|
|
83
|
+
initializeCoreSystems(options){
|
|
84
84
|
this.columnManager = new ColumnManager(this);
|
|
85
85
|
this.rowManager = new RowManager(this);
|
|
86
86
|
this.footerManager = new FooterManager(this);
|
|
@@ -171,7 +171,7 @@ class Tabulator {
|
|
|
171
171
|
_clearObjectPointers(){
|
|
172
172
|
this.options.columns = this.options.columns.slice(0);
|
|
173
173
|
|
|
174
|
-
if(this.options.data && !this.options.reactiveData){
|
|
174
|
+
if(Array.isArray(this.options.data) && !this.options.reactiveData){
|
|
175
175
|
this.options.data = this.options.data.slice(0);
|
|
176
176
|
}
|
|
177
177
|
}
|
|
@@ -310,7 +310,7 @@ class Tabulator {
|
|
|
310
310
|
this.browserSlow = false;
|
|
311
311
|
}
|
|
312
312
|
|
|
313
|
-
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.
|
|
313
|
+
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));
|
|
314
314
|
}
|
|
315
315
|
|
|
316
316
|
////////////////// Data Handling //////////////////
|
|
@@ -821,4 +821,4 @@ Tabulator.defaultOptions = defaultOptions;
|
|
|
821
821
|
//bind modules and static functionality
|
|
822
822
|
new ModuleBinder(Tabulator);
|
|
823
823
|
|
|
824
|
-
export default Tabulator;
|
|
824
|
+
export default Tabulator;
|
|
@@ -17,15 +17,18 @@ export default class VirtualDomHorizontal extends Renderer{
|
|
|
17
17
|
|
|
18
18
|
this.fitDataColAvg = 0;
|
|
19
19
|
|
|
20
|
-
this.
|
|
20
|
+
this.windowBuffer = 200; //pixel margin to make column visible before it is shown on screen
|
|
21
|
+
|
|
21
22
|
|
|
22
23
|
this.initialized = false;
|
|
24
|
+
this.isFitData = false;
|
|
23
25
|
|
|
24
26
|
this.columns = [];
|
|
25
27
|
}
|
|
26
28
|
|
|
27
29
|
initialize(){
|
|
28
30
|
this.compatibilityCheck();
|
|
31
|
+
this.layoutCheck();
|
|
29
32
|
}
|
|
30
33
|
|
|
31
34
|
compatibilityCheck(){
|
|
@@ -65,6 +68,10 @@ export default class VirtualDomHorizontal extends Renderer{
|
|
|
65
68
|
|
|
66
69
|
return ok;
|
|
67
70
|
}
|
|
71
|
+
|
|
72
|
+
layoutCheck(){
|
|
73
|
+
this.isFitData = this.options("layout").startsWith('fitData');
|
|
74
|
+
}
|
|
68
75
|
|
|
69
76
|
//////////////////////////////////////
|
|
70
77
|
///////// Public Functions ///////////
|
|
@@ -78,42 +85,60 @@ export default class VirtualDomHorizontal extends Renderer{
|
|
|
78
85
|
if(this.scrollLeft != left){
|
|
79
86
|
this.scrollLeft = left;
|
|
80
87
|
|
|
81
|
-
this.scroll(left - (this.vDomScrollPosLeft + this.
|
|
88
|
+
this.scroll(left - (this.vDomScrollPosLeft + this.windowBuffer));
|
|
82
89
|
}
|
|
83
90
|
}
|
|
91
|
+
|
|
92
|
+
calcWindowBuffer(){
|
|
93
|
+
var buffer = this.elementVertical.clientWidth;
|
|
94
|
+
|
|
95
|
+
this.table.columnManager.columnsByIndex.forEach((column) => {
|
|
96
|
+
if(column.visible){
|
|
97
|
+
var width = column.getWidth();
|
|
98
|
+
|
|
99
|
+
if(width > buffer){
|
|
100
|
+
buffer = width;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
});
|
|
104
|
+
|
|
105
|
+
this.windowBuffer = buffer * 2;
|
|
106
|
+
}
|
|
84
107
|
|
|
85
108
|
rerenderColumns(update, blockRedraw){
|
|
86
109
|
var old = {
|
|
87
110
|
cols:this.columns,
|
|
88
111
|
leftCol:this.leftCol,
|
|
89
112
|
rightCol:this.rightCol,
|
|
90
|
-
}
|
|
113
|
+
},
|
|
114
|
+
colPos = 0;
|
|
115
|
+
|
|
91
116
|
|
|
92
117
|
if(update && !this.initialized){
|
|
93
118
|
return;
|
|
94
119
|
}
|
|
95
120
|
|
|
96
121
|
this.clear();
|
|
122
|
+
|
|
123
|
+
this.calcWindowBuffer();
|
|
97
124
|
|
|
98
125
|
this.scrollLeft = this.elementVertical.scrollLeft;
|
|
99
126
|
|
|
100
|
-
this.vDomScrollPosLeft = this.scrollLeft - this.
|
|
101
|
-
this.vDomScrollPosRight = this.scrollLeft + this.elementVertical.clientWidth + this.
|
|
102
|
-
|
|
103
|
-
var colPos = 0;
|
|
104
|
-
|
|
127
|
+
this.vDomScrollPosLeft = this.scrollLeft - this.windowBuffer;
|
|
128
|
+
this.vDomScrollPosRight = this.scrollLeft + this.elementVertical.clientWidth + this.windowBuffer;
|
|
129
|
+
|
|
105
130
|
this.table.columnManager.columnsByIndex.forEach((column) => {
|
|
106
131
|
var config = {};
|
|
107
132
|
|
|
108
133
|
if(column.visible){
|
|
109
134
|
var width = column.getWidth();
|
|
110
|
-
|
|
135
|
+
|
|
111
136
|
config.leftPos = colPos;
|
|
112
137
|
config.rightPos = colPos + width;
|
|
113
138
|
|
|
114
139
|
config.width = width;
|
|
115
140
|
|
|
116
|
-
if (this.
|
|
141
|
+
if (this.isFitData) {
|
|
117
142
|
config.fitDataCheck = column.modules.vdomHoz ? column.modules.vdomHoz.fitDataCheck : true;
|
|
118
143
|
}
|
|
119
144
|
|
|
@@ -202,7 +227,7 @@ export default class VirtualDomHorizontal extends Renderer{
|
|
|
202
227
|
colEnd = 0,
|
|
203
228
|
group, row, rowEl;
|
|
204
229
|
|
|
205
|
-
if(this.
|
|
230
|
+
if(this.isFitData){
|
|
206
231
|
this.table.columnManager.columnsByIndex.forEach((column) => {
|
|
207
232
|
if(!column.definition.width && column.visible){
|
|
208
233
|
change = true;
|
|
@@ -212,10 +237,10 @@ export default class VirtualDomHorizontal extends Renderer{
|
|
|
212
237
|
if(change){
|
|
213
238
|
if(change && this.table.rowManager.getDisplayRows().length){
|
|
214
239
|
|
|
215
|
-
this.vDomScrollPosRight = this.scrollLeft + this.elementVertical.clientWidth + this.
|
|
240
|
+
this.vDomScrollPosRight = this.scrollLeft + this.elementVertical.clientWidth + this.windowBuffer;
|
|
216
241
|
|
|
217
242
|
var row = this.chain("rows-sample", [1], [], () => {
|
|
218
|
-
return this.table.rowManager.getDisplayRows()
|
|
243
|
+
return this.table.rowManager.getDisplayRows();
|
|
219
244
|
})[0];
|
|
220
245
|
|
|
221
246
|
if(row){
|
package/src/js/core/row/Row.js
CHANGED
|
@@ -76,6 +76,8 @@ export default class Row extends CoreFeature{
|
|
|
76
76
|
|
|
77
77
|
this.generateCells();
|
|
78
78
|
|
|
79
|
+
this.initialized = true;
|
|
80
|
+
|
|
79
81
|
this.table.columnManager.renderer.renderRowCells(this);
|
|
80
82
|
|
|
81
83
|
if(force){
|
|
@@ -84,8 +86,6 @@ export default class Row extends CoreFeature{
|
|
|
84
86
|
|
|
85
87
|
this.dispatch("row-layout", this);
|
|
86
88
|
|
|
87
|
-
this.initialized = true;
|
|
88
|
-
|
|
89
89
|
if(this.table.options.rowFormatter){
|
|
90
90
|
this.table.options.rowFormatter(this.getComponent());
|
|
91
91
|
}
|
|
@@ -255,7 +255,7 @@ export default class InteractionManager extends CoreFeature {
|
|
|
255
255
|
return row.getElement() === target;
|
|
256
256
|
});
|
|
257
257
|
|
|
258
|
-
if(targets["row"].parentNode && targets["row"].parentNode.closest(".tabulator-row")){
|
|
258
|
+
if(targets["row"] && targets["row"].parentNode && targets["row"].parentNode.closest(".tabulator-row")){
|
|
259
259
|
targets[key] = false;
|
|
260
260
|
}
|
|
261
261
|
}
|
|
@@ -51,7 +51,7 @@ class ColumnCalcs extends Module{
|
|
|
51
51
|
this.subscribe("row-added", this.rowsUpdated.bind(this));
|
|
52
52
|
this.subscribe("column-moved", this.recalcActiveRows.bind(this));
|
|
53
53
|
this.subscribe("column-add", this.recalcActiveRows.bind(this));
|
|
54
|
-
this.subscribe("data-refreshed", this.
|
|
54
|
+
this.subscribe("data-refreshed", this.recalcActiveRowsRefresh.bind(this));
|
|
55
55
|
this.subscribe("table-redraw", this.tableRedraw.bind(this));
|
|
56
56
|
this.subscribe("rows-visible", this.visibleRows.bind(this));
|
|
57
57
|
|
|
@@ -99,6 +99,14 @@ class ColumnCalcs extends Module{
|
|
|
99
99
|
}
|
|
100
100
|
}
|
|
101
101
|
|
|
102
|
+
recalcActiveRowsRefresh(){
|
|
103
|
+
if(this.table.options.groupBy && this.table.options.dataTreeStartExpanded && this.table.options.dataTree){
|
|
104
|
+
this.recalcAll();
|
|
105
|
+
}else{
|
|
106
|
+
this.recalcActiveRows();
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
|
|
102
110
|
recalcActiveRows(){
|
|
103
111
|
this.recalc(this.table.rowManager.activeRows);
|
|
104
112
|
}
|
|
@@ -106,7 +114,6 @@ class ColumnCalcs extends Module{
|
|
|
106
114
|
cellValueChanged(cell){
|
|
107
115
|
if(cell.column.definition.topCalc || cell.column.definition.bottomCalc){
|
|
108
116
|
if(this.table.options.groupBy){
|
|
109
|
-
|
|
110
117
|
if(this.table.options.columnCalcs == "table" || this.table.options.columnCalcs == "both"){
|
|
111
118
|
this.recalcActiveRows();
|
|
112
119
|
}
|
|
@@ -114,7 +121,6 @@ class ColumnCalcs extends Module{
|
|
|
114
121
|
if(this.table.options.columnCalcs != "table"){
|
|
115
122
|
this.recalcRowGroup(cell.row);
|
|
116
123
|
}
|
|
117
|
-
|
|
118
124
|
}else{
|
|
119
125
|
this.recalcActiveRows();
|
|
120
126
|
}
|
|
@@ -286,7 +292,6 @@ class ColumnCalcs extends Module{
|
|
|
286
292
|
|
|
287
293
|
if(this.table.options.groupBy && this.table.options.columnCalcs !== "table"){
|
|
288
294
|
|
|
289
|
-
|
|
290
295
|
var groups = this.table.modules.groupRows.getChildGroups();
|
|
291
296
|
|
|
292
297
|
groups.forEach((group) => {
|
|
@@ -467,10 +467,10 @@ class Export extends Module{
|
|
|
467
467
|
rowEl.classList.add("tabulator-print-table-row");
|
|
468
468
|
|
|
469
469
|
row.columns.forEach((col) => {
|
|
470
|
-
|
|
471
470
|
if(col){
|
|
472
471
|
var cellEl = document.createElement("td"),
|
|
473
472
|
column = col.component._column,
|
|
473
|
+
index = this.table.columnManager.findColumnIndex(column),
|
|
474
474
|
value = col.value;
|
|
475
475
|
|
|
476
476
|
var cellWrapper = {
|
|
@@ -529,8 +529,8 @@ class Export extends Module{
|
|
|
529
529
|
cellEl.innerHTML = value;
|
|
530
530
|
}
|
|
531
531
|
|
|
532
|
-
if(styles.firstCell){
|
|
533
|
-
this.mapElementStyles(styles.firstCell, cellEl, ["padding-top", "padding-left", "padding-right", "padding-bottom", "border-top", "border-left", "border-right", "border-bottom", "color", "font-weight", "font-family", "font-size"]);
|
|
532
|
+
if(styles.styleCells[index] || styles.firstCell){
|
|
533
|
+
this.mapElementStyles(styles.styleCells[index] || styles.firstCell, cellEl, ["padding-top", "padding-left", "padding-right", "padding-bottom", "border-top", "border-left", "border-right", "border-bottom", "color", "font-weight", "font-family", "font-size", "text-align"]);
|
|
534
534
|
|
|
535
535
|
if(column.definition.align){
|
|
536
536
|
cellEl.style.textAlign = column.definition.align;
|
|
@@ -416,7 +416,9 @@ class Filter extends Module{
|
|
|
416
416
|
editorElement.addEventListener("focus", (e) => {
|
|
417
417
|
var left = this.table.columnManager.element.scrollLeft;
|
|
418
418
|
|
|
419
|
-
|
|
419
|
+
var headerPos = this.table.rowManager.element.scrollLeft + parseInt(this.table.columnManager.element.style.marginLeft);
|
|
420
|
+
|
|
421
|
+
if(left !== headerPos){
|
|
420
422
|
this.table.rowManager.scrollHorizontal(left);
|
|
421
423
|
this.table.columnManager.scrollHorizontal(left);
|
|
422
424
|
}
|
|
@@ -2,9 +2,12 @@ import RowComponent from '../../../../core/row/RowComponent.js';
|
|
|
2
2
|
|
|
3
3
|
export default function(cell, formatterParams, onRendered){
|
|
4
4
|
var checkbox = document.createElement("input");
|
|
5
|
+
var blocked = false;
|
|
5
6
|
|
|
6
7
|
checkbox.type = 'checkbox';
|
|
7
8
|
|
|
9
|
+
checkbox.setAttribute("aria-label", "Select Row");
|
|
10
|
+
|
|
8
11
|
if(this.table.modExists("selectRow", true)){
|
|
9
12
|
|
|
10
13
|
checkbox.addEventListener("click", (e) => {
|
|
@@ -17,9 +20,24 @@ export default function(cell, formatterParams, onRendered){
|
|
|
17
20
|
if(row instanceof RowComponent){
|
|
18
21
|
|
|
19
22
|
checkbox.addEventListener("change", (e) => {
|
|
20
|
-
|
|
23
|
+
if(this.table.options.selectableRangeMode === "click"){
|
|
24
|
+
if(!blocked){
|
|
25
|
+
row.toggleSelect();
|
|
26
|
+
}else{
|
|
27
|
+
blocked = false;
|
|
28
|
+
}
|
|
29
|
+
}else{
|
|
30
|
+
row.toggleSelect();
|
|
31
|
+
}
|
|
21
32
|
});
|
|
22
33
|
|
|
34
|
+
if(this.table.options.selectableRangeMode === "click"){
|
|
35
|
+
checkbox.addEventListener("click", (e) => {
|
|
36
|
+
blocked = true;
|
|
37
|
+
this.table.modules.selectRow.handleComplexRowClick(row._row, e);
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
|
|
23
41
|
checkbox.checked = row.isSelected && row.isSelected();
|
|
24
42
|
this.table.modules.selectRow.registerRowSelectCheckbox(row, checkbox);
|
|
25
43
|
}else{
|