tabulator-tables 5.2.0 → 5.2.3
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/css/tabulator.css +5 -0
- 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 +5 -0
- 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 +5 -0
- 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 +21 -0
- 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 +5 -0
- 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 +5 -0
- 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 +5 -0
- 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 +5 -0
- 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 +5 -0
- 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 +5 -0
- 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 +5 -0
- 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 +86 -74
- 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 +58 -51
- 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 +1 -1
- package/src/js/core/RowManager.js +2 -0
- package/src/js/core/rendering/Renderer.js +2 -0
- package/src/js/modules/DataTree/DataTree.js +13 -0
- package/src/js/modules/Edit/List.js +1 -1
- package/src/js/modules/FrozenColumns/FrozenColumns.js +29 -39
- package/src/js/modules/MoveColumns/MoveColumns.js +1 -1
- package/src/js/modules/Persistence/Persistence.js +1 -0
- package/src/js/modules/ResizeColumns/ResizeColumns.js +1 -1
- package/src/js/modules/Sort/defaults/sorters/datetime.js +5 -5
- package/src/js/modules/Validate/Validate.js +3 -3
- package/src/scss/tabulator.scss +5 -0
- package/src/scss/themes/bootstrap/tabulator_bootstrap5.scss +20 -0
package/package.json
CHANGED
|
@@ -848,7 +848,9 @@ export default class RowManager extends CoreFeature{
|
|
|
848
848
|
this.redrawBlockRenderInPosition = true;
|
|
849
849
|
}
|
|
850
850
|
}else{
|
|
851
|
+
this.dispatchExternal("renderStarted");
|
|
851
852
|
this.renderer.rerenderRows(callback);
|
|
853
|
+
this.dispatchExternal("renderComplete");
|
|
852
854
|
}
|
|
853
855
|
}
|
|
854
856
|
|
|
@@ -186,6 +186,8 @@ export default class Renderer extends CoreFeature{
|
|
|
186
186
|
this.elementVertical.scrollTop = this.elementVertical.scrollTop - this.elementVertical.clientHeight + rowEl.offsetHeight;
|
|
187
187
|
}
|
|
188
188
|
|
|
189
|
+
case "top":
|
|
190
|
+
this.elementVertical.scrollTop = rowEl.offsetTop;
|
|
189
191
|
break;
|
|
190
192
|
}
|
|
191
193
|
|
|
@@ -122,11 +122,24 @@ class DataTree extends Module{
|
|
|
122
122
|
this.subscribe("edit-cancelled", this.cellValueChanged.bind(this));
|
|
123
123
|
this.subscribe("column-moving-rows", this.columnMoving.bind(this));
|
|
124
124
|
this.subscribe("table-built", this.initializeElementField.bind(this));
|
|
125
|
+
this.subscribe("table-redrawing", this.tableRedrawing.bind(this));
|
|
125
126
|
|
|
126
127
|
this.registerDisplayHandler(this.getRows.bind(this), 30);
|
|
127
128
|
}
|
|
128
129
|
}
|
|
129
130
|
|
|
131
|
+
tableRedrawing(force){
|
|
132
|
+
var rows;
|
|
133
|
+
|
|
134
|
+
if(force){
|
|
135
|
+
rows = this.table.rowManager.getRows();
|
|
136
|
+
|
|
137
|
+
rows.forEach((row) => {
|
|
138
|
+
this.reinitializeRowChildren(row);
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
|
|
130
143
|
initializeElementField(){
|
|
131
144
|
var firstCol = this.table.columnManager.getFirstVisibleColumn();
|
|
132
145
|
|
|
@@ -12,7 +12,6 @@ class FrozenColumns extends Module{
|
|
|
12
12
|
this.rightPadding = 0;
|
|
13
13
|
this.initializationMode = "left";
|
|
14
14
|
this.active = false;
|
|
15
|
-
this.scrollEndTimer = false;
|
|
16
15
|
this.blocked = true;
|
|
17
16
|
|
|
18
17
|
this.registerColumnOption("frozen");
|
|
@@ -41,10 +40,10 @@ class FrozenColumns extends Module{
|
|
|
41
40
|
this.subscribe("scroll-horizontal", this.scrollHorizontal.bind(this));
|
|
42
41
|
this.subscribe("scroll-horizontal", this.scrollHorizontal.bind(this));
|
|
43
42
|
this.subscribe("columns-loading", this.reset.bind(this));
|
|
44
|
-
|
|
43
|
+
|
|
45
44
|
this.subscribe("column-add", this.reinitializeColumns.bind(this));
|
|
46
45
|
this.subscribe("column-delete", this.reinitializeColumns.bind(this));
|
|
47
|
-
|
|
46
|
+
|
|
48
47
|
this.subscribe("table-redraw", this.layout.bind(this));
|
|
49
48
|
this.subscribe("layout-refreshing", this.blockLayout.bind(this));
|
|
50
49
|
this.subscribe("layout-refreshed", this.unblockLayout.bind(this));
|
|
@@ -61,10 +60,10 @@ class FrozenColumns extends Module{
|
|
|
61
60
|
layoutCell(cell){
|
|
62
61
|
this.layoutElement(cell.element, cell.column)
|
|
63
62
|
}
|
|
64
|
-
|
|
63
|
+
|
|
65
64
|
reinitializeColumns(){
|
|
66
65
|
this.reset();
|
|
67
|
-
|
|
66
|
+
|
|
68
67
|
this.table.columnManager.columnsByIndex.forEach((column) => {
|
|
69
68
|
this.initializeColumn(column);
|
|
70
69
|
});
|
|
@@ -111,22 +110,14 @@ class FrozenColumns extends Module{
|
|
|
111
110
|
scrollHorizontal(){
|
|
112
111
|
var rows;
|
|
113
112
|
|
|
114
|
-
if(this.active){
|
|
115
|
-
clearTimeout(this.scrollEndTimer);
|
|
116
|
-
|
|
117
|
-
rows = this.table.rowManager.getVisibleRows();
|
|
118
|
-
|
|
113
|
+
if(this.active){
|
|
119
114
|
this.calcMargins(true);
|
|
120
115
|
|
|
121
116
|
this.layoutColumnPosition();
|
|
122
117
|
|
|
123
118
|
this.layoutCalcRows();
|
|
124
119
|
|
|
125
|
-
|
|
126
|
-
if(row.type === "row"){
|
|
127
|
-
this.layoutRow(row);
|
|
128
|
-
}
|
|
129
|
-
});
|
|
120
|
+
this.reinitializeRows();
|
|
130
121
|
}
|
|
131
122
|
}
|
|
132
123
|
|
|
@@ -138,7 +129,7 @@ class FrozenColumns extends Module{
|
|
|
138
129
|
this.rightMargin = this._calcSpace(this.rightColumns, this.rightColumns.length) + "px";
|
|
139
130
|
this.table.rowManager.tableElement.style.marginRight = this.rightMargin;
|
|
140
131
|
}
|
|
141
|
-
|
|
132
|
+
|
|
142
133
|
//calculate right frozen columns
|
|
143
134
|
this.rightPadding = this.table.rowManager.element.clientWidth + this.table.columnManager.scrollLeft;
|
|
144
135
|
}
|
|
@@ -185,10 +176,10 @@ class FrozenColumns extends Module{
|
|
|
185
176
|
|
|
186
177
|
this.table.columnManager.headersElement.style.marginLeft = this.leftMargin;
|
|
187
178
|
this.table.columnManager.element.style.paddingRight = this.rightMargin;
|
|
188
|
-
|
|
179
|
+
|
|
189
180
|
this.leftColumns.forEach((column, i) => {
|
|
190
181
|
column.modules.frozen.margin = (leftMargin + this.table.columnManager.scrollLeft) + "px";
|
|
191
|
-
|
|
182
|
+
|
|
192
183
|
if(column.visible){
|
|
193
184
|
leftMargin += column.getWidth();
|
|
194
185
|
}
|
|
@@ -221,11 +212,11 @@ class FrozenColumns extends Module{
|
|
|
221
212
|
});
|
|
222
213
|
|
|
223
214
|
this.rightColumns.forEach((column, i) => {
|
|
224
|
-
|
|
215
|
+
|
|
225
216
|
if(column.visible){
|
|
226
217
|
rightMargin += column.getWidth();
|
|
227
218
|
}
|
|
228
|
-
|
|
219
|
+
|
|
229
220
|
column.modules.frozen.margin = (this.rightPadding - rightMargin) + "px";
|
|
230
221
|
|
|
231
222
|
if(i == this.rightColumns.length - 1){
|
|
@@ -254,36 +245,35 @@ class FrozenColumns extends Module{
|
|
|
254
245
|
}
|
|
255
246
|
|
|
256
247
|
//layout columns appropriately
|
|
257
|
-
layout(){
|
|
258
|
-
var visibleRows = [],
|
|
259
|
-
otherRows = [];
|
|
260
|
-
|
|
248
|
+
layout(){
|
|
261
249
|
if(this.active && !this.blocked){
|
|
262
250
|
//calculate row padding
|
|
263
251
|
this.calcMargins();
|
|
264
|
-
|
|
252
|
+
|
|
265
253
|
//calculate left columns
|
|
266
254
|
this.layoutColumnPosition();
|
|
267
255
|
|
|
268
|
-
|
|
269
|
-
otherRows = this.table.rowManager.getDisplayRows().filter(row => !visibleRows.includes(row));
|
|
270
|
-
|
|
271
|
-
otherRows.forEach((row) =>{
|
|
272
|
-
row.deinitialize();
|
|
273
|
-
});
|
|
274
|
-
|
|
275
|
-
visibleRows.forEach((row) =>{
|
|
276
|
-
if(row.type === "row"){
|
|
277
|
-
this.layoutRow(row);
|
|
278
|
-
}
|
|
279
|
-
});
|
|
256
|
+
this.reinitializeRows();
|
|
280
257
|
|
|
281
258
|
this.layoutCalcRows();
|
|
282
|
-
|
|
283
|
-
|
|
284
259
|
}
|
|
285
260
|
}
|
|
286
261
|
|
|
262
|
+
reinitializeRows(){
|
|
263
|
+
var visibleRows = this.table.rowManager.getVisibleRows();
|
|
264
|
+
var otherRows = this.table.rowManager.getRows().filter(row => !visibleRows.includes(row));
|
|
265
|
+
|
|
266
|
+
otherRows.forEach((row) =>{
|
|
267
|
+
row.deinitialize();
|
|
268
|
+
});
|
|
269
|
+
|
|
270
|
+
visibleRows.forEach((row) =>{
|
|
271
|
+
if(row.type === "row"){
|
|
272
|
+
this.layoutRow(row);
|
|
273
|
+
}
|
|
274
|
+
});
|
|
275
|
+
}
|
|
276
|
+
|
|
287
277
|
layoutRow(row){
|
|
288
278
|
// console.trace("row")
|
|
289
279
|
var rowEl = row.getElement();
|
|
@@ -94,7 +94,7 @@ class ResizeColumns extends Module{
|
|
|
94
94
|
|
|
95
95
|
if((mode === true || mode == type) && this._checkResizability(nearestColumn)){
|
|
96
96
|
|
|
97
|
-
var handle = document.createElement('
|
|
97
|
+
var handle = document.createElement('span');
|
|
98
98
|
handle.className = "tabulator-col-resize-handle";
|
|
99
99
|
|
|
100
100
|
handle.addEventListener("click", function(e){
|
|
@@ -8,18 +8,18 @@ export default function(a, b, aRow, bRow, column, dir, params){
|
|
|
8
8
|
if(typeof DT != "undefined"){
|
|
9
9
|
if(DT.isDateTime(a)){
|
|
10
10
|
a = a;
|
|
11
|
-
}else if(
|
|
11
|
+
}else if(format === "iso"){
|
|
12
12
|
a = DT.fromISO(String(a));
|
|
13
13
|
}else{
|
|
14
|
-
a = DT.fromFormat(String(a),
|
|
14
|
+
a = DT.fromFormat(String(a), format);
|
|
15
15
|
}
|
|
16
16
|
|
|
17
17
|
if(DT.isDateTime(b)){
|
|
18
18
|
b = b;
|
|
19
|
-
}else if(
|
|
20
|
-
|
|
19
|
+
}else if(format === "iso"){
|
|
20
|
+
b = DT.fromISO(String(b));
|
|
21
21
|
}else{
|
|
22
|
-
b = DT.fromFormat(String(b),
|
|
22
|
+
b = DT.fromFormat(String(b), format);
|
|
23
23
|
}
|
|
24
24
|
|
|
25
25
|
if(!a.isValid){
|
|
@@ -89,7 +89,7 @@ class Validate extends Module{
|
|
|
89
89
|
var invalid = [];
|
|
90
90
|
|
|
91
91
|
column.cells.forEach((cell) => {
|
|
92
|
-
if(
|
|
92
|
+
if(this.cellValidate(cell) !== true){
|
|
93
93
|
invalid.push(cell.getComponent());
|
|
94
94
|
}
|
|
95
95
|
});
|
|
@@ -105,7 +105,7 @@ class Validate extends Module{
|
|
|
105
105
|
var invalid = [];
|
|
106
106
|
|
|
107
107
|
row.cells.forEach((cell) => {
|
|
108
|
-
if(
|
|
108
|
+
if(this.cellValidate(cell) !== true){
|
|
109
109
|
invalid.push(cell.getComponent());
|
|
110
110
|
}
|
|
111
111
|
});
|
|
@@ -305,4 +305,4 @@ Validate.moduleName = "validate";
|
|
|
305
305
|
//load defaults
|
|
306
306
|
Validate.validators = defaultValidators;
|
|
307
307
|
|
|
308
|
-
export default Validate;
|
|
308
|
+
export default Validate;
|
package/src/scss/tabulator.scss
CHANGED
|
@@ -543,4 +543,24 @@ $table-cell-padding-sm: 5px;
|
|
|
543
543
|
}
|
|
544
544
|
}
|
|
545
545
|
}
|
|
546
|
+
}
|
|
547
|
+
|
|
548
|
+
.tabulator-popup-container{
|
|
549
|
+
background:#fff;
|
|
550
|
+
}
|
|
551
|
+
|
|
552
|
+
.tabulator-edit-list{
|
|
553
|
+
.tabulator-edit-list-item{
|
|
554
|
+
&.active{
|
|
555
|
+
color:#fff;
|
|
556
|
+
|
|
557
|
+
&.focused{
|
|
558
|
+
outline:1px solid rgba(#fff, .5);
|
|
559
|
+
}
|
|
560
|
+
}
|
|
561
|
+
|
|
562
|
+
&:hover{
|
|
563
|
+
color:#fff;
|
|
564
|
+
}
|
|
565
|
+
}
|
|
546
566
|
}
|