tabulator-tables 5.0.9 → 5.0.10
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/rollup.js +1 -1
- package/dist/js/tabulator.js +59 -35
- 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 +197 -172
- 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/column/Column.js +1 -1
- package/src/js/core/rendering/Renderer.js +1 -1
- package/src/js/core/rendering/renderers/VirtualDomHorizontal.js +150 -145
- package/src/js/core/tools/DataLoader.js +1 -1
- package/src/js/core/tools/InteractionMonitor.js +34 -15
- package/src/js/modules/Edit/Edit.js +5 -2
- package/src/js/modules/FrozenColumns/FrozenColumns.js +1 -1
- package/src/js/modules/ResponsiveLayout/ResponsiveLayout.js +3 -5
package/dist/js/tabulator_esm.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* Tabulator v5.0.
|
|
1
|
+
/* Tabulator v5.0.10 (c) Oliver Folkerd 2021 */
|
|
2
2
|
class CoreFeature{
|
|
3
3
|
|
|
4
4
|
constructor(table){
|
|
@@ -2361,7 +2361,7 @@ class Column$1 extends CoreFeature{
|
|
|
2361
2361
|
cell.hide();
|
|
2362
2362
|
});
|
|
2363
2363
|
|
|
2364
|
-
this.dispatch("column-hide", this);
|
|
2364
|
+
this.dispatch("column-hide", this, responsiveToggle);
|
|
2365
2365
|
|
|
2366
2366
|
if(!silent){
|
|
2367
2367
|
this.dispatchExternal("columnVisibilityChanged", this.getComponent(), false);
|
|
@@ -7065,20 +7065,23 @@ class Edit extends Module{
|
|
|
7065
7065
|
|
|
7066
7066
|
this.invalidEdit = false;
|
|
7067
7067
|
|
|
7068
|
+
console.log("clear", cancel, cell, cell.validate);
|
|
7069
|
+
|
|
7068
7070
|
if(cell){
|
|
7069
7071
|
this.currentCell = false;
|
|
7070
7072
|
|
|
7071
7073
|
cellEl = cell.getElement();
|
|
7072
7074
|
|
|
7073
7075
|
if(cancel){
|
|
7074
|
-
if(cell.validate){
|
|
7075
|
-
|
|
7076
|
+
if(cell.column.modules.validate && this.table.modExists("validate")){
|
|
7077
|
+
this.table.modules.validate.cellValidate(cell);
|
|
7076
7078
|
}
|
|
7077
7079
|
}else {
|
|
7078
7080
|
cellEl.classList.remove("tabulator-validation-fail");
|
|
7079
7081
|
}
|
|
7080
7082
|
|
|
7081
7083
|
cellEl.classList.remove("tabulator-editing");
|
|
7084
|
+
|
|
7082
7085
|
while(cellEl.firstChild) cellEl.removeChild(cellEl.firstChild);
|
|
7083
7086
|
|
|
7084
7087
|
cell.row.getElement().classList.remove("tabulator-row-editing");
|
|
@@ -9831,7 +9834,7 @@ class FrozenColumns extends Module{
|
|
|
9831
9834
|
this.subscribe("cell-layout", this.layoutCell.bind(this));
|
|
9832
9835
|
this.subscribe("column-init", this.initializeColumn.bind(this));
|
|
9833
9836
|
this.subscribe("column-width", this.layout.bind(this));
|
|
9834
|
-
this.subscribe("row-layout-
|
|
9837
|
+
this.subscribe("row-layout-after", this.layoutRow.bind(this));
|
|
9835
9838
|
this.subscribe("table-layout", this.layout.bind(this));
|
|
9836
9839
|
this.subscribe("scroll-horizontal", this.scrollHorizontal.bind(this));
|
|
9837
9840
|
this.subscribe("columns-loading", this.reset.bind(this));
|
|
@@ -16066,7 +16069,7 @@ class ResponsiveLayout extends Module{
|
|
|
16066
16069
|
this.registerColumnOption("responsive");
|
|
16067
16070
|
}
|
|
16068
16071
|
|
|
16069
|
-
//generate
|
|
16072
|
+
//generate responsive columns list
|
|
16070
16073
|
initialize(){
|
|
16071
16074
|
|
|
16072
16075
|
if(this.table.options.responsiveLayout){
|
|
@@ -16103,7 +16106,7 @@ class ResponsiveLayout extends Module{
|
|
|
16103
16106
|
this.collapseStartOpen = this.table.options.responsiveLayoutCollapseStartOpen;
|
|
16104
16107
|
this.hiddenColumns = [];
|
|
16105
16108
|
|
|
16106
|
-
//
|
|
16109
|
+
//determine level of responsivity for each column
|
|
16107
16110
|
this.table.columnManager.columnsByIndex.forEach(function(column, i){
|
|
16108
16111
|
if(column.modules.responsive){
|
|
16109
16112
|
if(column.modules.responsive.order && column.modules.responsive.visible){
|
|
@@ -16185,10 +16188,8 @@ class ResponsiveLayout extends Module{
|
|
|
16185
16188
|
updateColumnVisibility(column, responsiveToggle){
|
|
16186
16189
|
if(!responsiveToggle && column.modules.responsive){
|
|
16187
16190
|
column.modules.responsive.visible = column.visible;
|
|
16188
|
-
this.
|
|
16191
|
+
this.initializeResponsivity();
|
|
16189
16192
|
}
|
|
16190
|
-
|
|
16191
|
-
//this.update();
|
|
16192
16193
|
}
|
|
16193
16194
|
|
|
16194
16195
|
hideColumn(column){
|
|
@@ -18108,7 +18109,7 @@ class Renderer extends CoreFeature{
|
|
|
18108
18109
|
}
|
|
18109
18110
|
|
|
18110
18111
|
scrollToRowNearestTop(row){
|
|
18111
|
-
//
|
|
18112
|
+
//determine weather the row is nearest the top or bottom of the table, retur true for top or false for bottom
|
|
18112
18113
|
}
|
|
18113
18114
|
|
|
18114
18115
|
visibleRows(includingBuffer){
|
|
@@ -18250,157 +18251,157 @@ class BaiscHorizontal extends Renderer{
|
|
|
18250
18251
|
class VirtualDomHorizontal extends Renderer{
|
|
18251
18252
|
constructor(table){
|
|
18252
18253
|
super(table);
|
|
18253
|
-
|
|
18254
|
+
|
|
18254
18255
|
this.leftCol = 0;
|
|
18255
18256
|
this.rightCol = 0;
|
|
18256
18257
|
this.scrollLeft = 0;
|
|
18257
|
-
|
|
18258
|
+
|
|
18258
18259
|
this.vDomScrollPosLeft = 0;
|
|
18259
18260
|
this.vDomScrollPosRight = 0;
|
|
18260
|
-
|
|
18261
|
+
|
|
18261
18262
|
this.vDomPadLeft = 0;
|
|
18262
18263
|
this.vDomPadRight = 0;
|
|
18263
|
-
|
|
18264
|
+
|
|
18264
18265
|
this.fitDataColAvg = 0;
|
|
18265
|
-
|
|
18266
|
+
|
|
18266
18267
|
this.window = 200; //pixel margin to make column visible before it is shown on screen
|
|
18267
|
-
|
|
18268
|
+
|
|
18268
18269
|
this.initialized = false;
|
|
18269
|
-
|
|
18270
|
+
|
|
18270
18271
|
this.columns = [];
|
|
18271
18272
|
}
|
|
18272
|
-
|
|
18273
|
+
|
|
18273
18274
|
initialize(){
|
|
18274
18275
|
this.compatabilityCheck();
|
|
18275
18276
|
}
|
|
18276
|
-
|
|
18277
|
+
|
|
18277
18278
|
compatabilityCheck(){
|
|
18278
18279
|
var columns = this.options("columns"),
|
|
18279
18280
|
frozen = false,
|
|
18280
18281
|
ok = true;
|
|
18281
|
-
|
|
18282
|
+
|
|
18282
18283
|
if(this.options("layout") == "fitDataTable"){
|
|
18283
|
-
console.warn("Horizontal
|
|
18284
|
+
console.warn("Horizontal Virtual DOM is not compatible with fitDataTable layout mode");
|
|
18284
18285
|
ok = false;
|
|
18285
18286
|
}
|
|
18286
|
-
|
|
18287
|
+
|
|
18287
18288
|
if(this.options("responsiveLayout")){
|
|
18288
|
-
console.warn("Horizontal
|
|
18289
|
+
console.warn("Horizontal Virtual DOM is not compatible with responsive columns");
|
|
18289
18290
|
ok = false;
|
|
18290
18291
|
}
|
|
18291
|
-
|
|
18292
|
+
|
|
18292
18293
|
if(this.options("rtl")){
|
|
18293
|
-
console.warn("Horizontal
|
|
18294
|
+
console.warn("Horizontal Virtual DOM is not currently compatible with RTL text direction");
|
|
18294
18295
|
ok = false;
|
|
18295
18296
|
}
|
|
18296
|
-
|
|
18297
|
+
|
|
18297
18298
|
if(columns){
|
|
18298
18299
|
frozen = columns.find((col) => {
|
|
18299
18300
|
return col.frozen;
|
|
18300
18301
|
});
|
|
18301
|
-
|
|
18302
|
+
|
|
18302
18303
|
if(frozen){
|
|
18303
|
-
console.warn("Horizontal
|
|
18304
|
+
console.warn("Horizontal Virtual DOM is not compatible with frozen columns");
|
|
18304
18305
|
ok = false;
|
|
18305
18306
|
}
|
|
18306
18307
|
}
|
|
18307
|
-
|
|
18308
|
+
|
|
18308
18309
|
// if(!ok){
|
|
18309
18310
|
// options.virtualDomHoz = false;
|
|
18310
18311
|
// }
|
|
18311
|
-
|
|
18312
|
+
|
|
18312
18313
|
return ok;
|
|
18313
18314
|
}
|
|
18314
|
-
|
|
18315
|
+
|
|
18315
18316
|
//////////////////////////////////////
|
|
18316
18317
|
///////// Public Functions ///////////
|
|
18317
18318
|
//////////////////////////////////////
|
|
18318
|
-
|
|
18319
|
+
|
|
18319
18320
|
renderColumns(row, force){
|
|
18320
18321
|
this.dataChange();
|
|
18321
18322
|
}
|
|
18322
|
-
|
|
18323
|
+
|
|
18323
18324
|
scrollColumns(left, dir){
|
|
18324
18325
|
if(this.scrollLeft != left){
|
|
18325
18326
|
this.scrollLeft = left;
|
|
18326
|
-
|
|
18327
|
+
|
|
18327
18328
|
this.scroll(left - (this.vDomScrollPosLeft + this.window));
|
|
18328
18329
|
}
|
|
18329
18330
|
}
|
|
18330
|
-
|
|
18331
|
-
rerenderColumns(update, blockRedraw){
|
|
18331
|
+
|
|
18332
|
+
rerenderColumns(update, blockRedraw){
|
|
18332
18333
|
var old = {
|
|
18333
18334
|
cols:this.columns,
|
|
18334
18335
|
leftCol:this.leftCol,
|
|
18335
18336
|
rightCol:this.rightCol,
|
|
18336
18337
|
};
|
|
18337
|
-
|
|
18338
|
+
|
|
18338
18339
|
if(update && !this.initialized){
|
|
18339
18340
|
return;
|
|
18340
18341
|
}
|
|
18341
|
-
|
|
18342
|
+
|
|
18342
18343
|
this.clear();
|
|
18343
|
-
|
|
18344
|
+
|
|
18344
18345
|
this.scrollLeft = this.elementVertical.scrollLeft;
|
|
18345
|
-
|
|
18346
|
+
|
|
18346
18347
|
this.vDomScrollPosLeft = this.scrollLeft - this.window;
|
|
18347
18348
|
this.vDomScrollPosRight = this.scrollLeft + this.elementVertical.clientWidth + this.window;
|
|
18348
|
-
|
|
18349
|
+
|
|
18349
18350
|
var colPos = 0;
|
|
18350
|
-
|
|
18351
|
+
|
|
18351
18352
|
this.table.columnManager.columnsByIndex.forEach((column) => {
|
|
18352
18353
|
var config = {};
|
|
18353
|
-
|
|
18354
|
+
|
|
18354
18355
|
if(column.visible){
|
|
18355
18356
|
var width = column.getWidth();
|
|
18356
|
-
|
|
18357
|
+
|
|
18357
18358
|
config.leftPos = colPos;
|
|
18358
18359
|
config.rightPos = colPos + width;
|
|
18359
|
-
|
|
18360
|
+
|
|
18360
18361
|
config.width = width;
|
|
18361
|
-
|
|
18362
|
+
|
|
18362
18363
|
if (this.options("layout") === "fitData") {
|
|
18363
18364
|
config.fitDataCheck = true;
|
|
18364
18365
|
}
|
|
18365
|
-
|
|
18366
|
+
|
|
18366
18367
|
if((colPos + width > this.vDomScrollPosLeft) && (colPos < this.vDomScrollPosRight)){
|
|
18367
|
-
|
|
18368
|
-
|
|
18369
|
-
|
|
18370
|
-
|
|
18371
|
-
|
|
18372
|
-
|
|
18373
|
-
|
|
18374
|
-
|
|
18375
|
-
|
|
18376
|
-
|
|
18377
|
-
|
|
18378
|
-
|
|
18379
|
-
|
|
18380
|
-
|
|
18381
|
-
|
|
18382
|
-
|
|
18383
|
-
|
|
18384
|
-
|
|
18385
|
-
|
|
18386
|
-
|
|
18387
|
-
|
|
18388
|
-
|
|
18389
|
-
|
|
18368
|
+
//column is visible
|
|
18369
|
+
|
|
18370
|
+
if(this.leftCol == -1){
|
|
18371
|
+
this.leftCol = this.columns.length;
|
|
18372
|
+
this.vDomPadLeft = colPos;
|
|
18373
|
+
}
|
|
18374
|
+
|
|
18375
|
+
this.rightCol = this.columns.length;
|
|
18376
|
+
}else {
|
|
18377
|
+
// column is hidden
|
|
18378
|
+
if(this.leftCol !== -1){
|
|
18379
|
+
this.vDomPadRight += width;
|
|
18380
|
+
}
|
|
18381
|
+
}
|
|
18382
|
+
|
|
18383
|
+
this.columns.push(column);
|
|
18384
|
+
|
|
18385
|
+
column.modules.vdomHoz = config;
|
|
18386
|
+
|
|
18387
|
+
colPos += width;
|
|
18388
|
+
}
|
|
18389
|
+
});
|
|
18390
|
+
|
|
18390
18391
|
this.tableElement.style.paddingLeft = this.vDomPadLeft + "px";
|
|
18391
18392
|
this.tableElement.style.paddingRight = this.vDomPadRight + "px";
|
|
18392
|
-
|
|
18393
|
+
|
|
18393
18394
|
this.initialized = true;
|
|
18394
|
-
|
|
18395
|
+
|
|
18395
18396
|
if(!blockRedraw){
|
|
18396
18397
|
if(!update || this.reinitChanged(old)){
|
|
18397
|
-
this.
|
|
18398
|
+
this.reinitializeRows();
|
|
18398
18399
|
}
|
|
18399
18400
|
}
|
|
18400
|
-
|
|
18401
|
+
|
|
18401
18402
|
this.elementVertical.scrollLeft = this.scrollLeft;
|
|
18402
18403
|
}
|
|
18403
|
-
|
|
18404
|
+
|
|
18404
18405
|
renderRowCells(row){
|
|
18405
18406
|
if(this.initialized){
|
|
18406
18407
|
this.initializeRow(row);
|
|
@@ -18411,88 +18412,88 @@ class VirtualDomHorizontal extends Renderer{
|
|
|
18411
18412
|
});
|
|
18412
18413
|
}
|
|
18413
18414
|
}
|
|
18414
|
-
|
|
18415
|
+
|
|
18415
18416
|
rerenderRowCells(row, force){
|
|
18416
18417
|
this.reinitializeRow(row, force);
|
|
18417
18418
|
}
|
|
18418
|
-
|
|
18419
|
+
|
|
18419
18420
|
reinitializeColumnWidths(columns){
|
|
18420
18421
|
for(let i = this.leftCol; i <= this.rightCol; i++){
|
|
18421
18422
|
this.columns[i].reinitializeWidth();
|
|
18422
18423
|
}
|
|
18423
18424
|
}
|
|
18424
|
-
|
|
18425
|
+
|
|
18425
18426
|
//////////////////////////////////////
|
|
18426
18427
|
//////// Internal Rendering //////////
|
|
18427
18428
|
//////////////////////////////////////
|
|
18428
|
-
|
|
18429
|
+
|
|
18429
18430
|
deinitialize(){
|
|
18430
18431
|
this.initialized = false;
|
|
18431
18432
|
}
|
|
18432
|
-
|
|
18433
|
+
|
|
18433
18434
|
clear(){
|
|
18434
18435
|
this.columns = [];
|
|
18435
|
-
|
|
18436
|
+
|
|
18436
18437
|
this.leftCol = -1;
|
|
18437
18438
|
this.rightCol = 0;
|
|
18438
|
-
|
|
18439
|
+
|
|
18439
18440
|
this.vDomScrollPosLeft = 0;
|
|
18440
18441
|
this.vDomScrollPosRight = 0;
|
|
18441
18442
|
this.vDomPadLeft = 0;
|
|
18442
18443
|
this.vDomPadRight = 0;
|
|
18443
18444
|
}
|
|
18444
|
-
|
|
18445
|
+
|
|
18445
18446
|
dataChange(){
|
|
18446
18447
|
var change = false,
|
|
18447
18448
|
collsWidth = 0,
|
|
18448
18449
|
colEnd = 0,
|
|
18449
18450
|
row, rowEl;
|
|
18450
|
-
|
|
18451
|
+
|
|
18451
18452
|
if(this.options("layout") === "fitData"){
|
|
18452
18453
|
this.table.columnManager.columnsByIndex.forEach((column) => {
|
|
18453
18454
|
if(!column.definition.width && column.visible){
|
|
18454
18455
|
change = true;
|
|
18455
18456
|
}
|
|
18456
18457
|
});
|
|
18457
|
-
|
|
18458
|
+
|
|
18458
18459
|
if(change){
|
|
18459
18460
|
if(change && this.table.rowManager.getDisplayRows().length){
|
|
18460
|
-
|
|
18461
|
+
|
|
18461
18462
|
this.vDomScrollPosRight = this.scrollLeft + this.elementVertical.clientWidth + this.window;
|
|
18462
|
-
|
|
18463
|
+
|
|
18463
18464
|
var row = this.chain("rows-sample", [1], [], () => {
|
|
18464
18465
|
return this.table.rowManager.getDisplayRows()[0];
|
|
18465
18466
|
})[0];
|
|
18466
|
-
|
|
18467
|
+
|
|
18467
18468
|
if(row){
|
|
18468
|
-
|
|
18469
|
+
|
|
18469
18470
|
rowEl = row.getElement();
|
|
18470
|
-
|
|
18471
|
+
|
|
18471
18472
|
row.generateCells();
|
|
18472
|
-
|
|
18473
|
+
|
|
18473
18474
|
this.tableElement.appendChild(rowEl);
|
|
18474
|
-
|
|
18475
|
+
|
|
18475
18476
|
for(var colEnd = 0; colEnd < row.cells.length; colEnd++){
|
|
18476
18477
|
let cell = row.cells[colEnd];
|
|
18477
18478
|
rowEl.appendChild(cell.getElement());
|
|
18478
|
-
|
|
18479
|
+
|
|
18479
18480
|
cell.column.reinitializeWidth();
|
|
18480
|
-
|
|
18481
|
+
|
|
18481
18482
|
collsWidth += cell.column.getWidth();
|
|
18482
|
-
|
|
18483
|
+
|
|
18483
18484
|
if(collsWidth > this.vDomScrollPosRight){
|
|
18484
18485
|
break;
|
|
18485
18486
|
}
|
|
18486
18487
|
}
|
|
18487
|
-
|
|
18488
|
+
|
|
18488
18489
|
rowEl.parentNode.removeChild(rowEl);
|
|
18489
|
-
|
|
18490
|
+
|
|
18490
18491
|
this.fitDataColAvg = Math.floor(collsWidth / (colEnd + 1));
|
|
18491
|
-
|
|
18492
|
+
|
|
18492
18493
|
for(colEnd; colEnd < this.table.columnManager.columnsByIndex.length; colEnd++){
|
|
18493
18494
|
this.table.columnManager.columnsByIndex[colEnd].setWidth(this.fitDataColAvg);
|
|
18494
18495
|
}
|
|
18495
|
-
|
|
18496
|
+
|
|
18496
18497
|
this.rerenderColumns(false, true);
|
|
18497
18498
|
}
|
|
18498
18499
|
}
|
|
@@ -18504,34 +18505,34 @@ class VirtualDomHorizontal extends Renderer{
|
|
|
18504
18505
|
}
|
|
18505
18506
|
}
|
|
18506
18507
|
}
|
|
18507
|
-
|
|
18508
|
+
|
|
18508
18509
|
reinitChanged(old){
|
|
18509
18510
|
var match = true;
|
|
18510
|
-
|
|
18511
|
+
|
|
18511
18512
|
if(old.cols.length !== this.columns.length || old.leftCol !== this.leftCol || old.rightCol !== this.rightCol){
|
|
18512
18513
|
return true;
|
|
18513
18514
|
}
|
|
18514
|
-
|
|
18515
|
+
|
|
18515
18516
|
old.cols.forEach((col, i) => {
|
|
18516
18517
|
if(col !== this.columns[i]){
|
|
18517
18518
|
match = false;
|
|
18518
18519
|
}
|
|
18519
18520
|
});
|
|
18520
|
-
|
|
18521
|
+
|
|
18521
18522
|
return !match;
|
|
18522
18523
|
}
|
|
18523
|
-
|
|
18524
|
-
|
|
18524
|
+
|
|
18525
|
+
reinitializeRows(){
|
|
18525
18526
|
var rows = this.table.rowManager.getVisibleRows();
|
|
18526
18527
|
rows.forEach((row) => {
|
|
18527
18528
|
this.reinitializeRow(row, true);
|
|
18528
18529
|
});
|
|
18529
18530
|
}
|
|
18530
|
-
|
|
18531
|
+
|
|
18531
18532
|
scroll(diff){
|
|
18532
18533
|
this.vDomScrollPosLeft += diff;
|
|
18533
18534
|
this.vDomScrollPosRight += diff;
|
|
18534
|
-
|
|
18535
|
+
|
|
18535
18536
|
if(diff > (this.elementVertical.clientWidth * .8)){
|
|
18536
18537
|
this.rerenderColumns();
|
|
18537
18538
|
}else {
|
|
@@ -18546,24 +18547,23 @@ class VirtualDomHorizontal extends Renderer{
|
|
|
18546
18547
|
}
|
|
18547
18548
|
}
|
|
18548
18549
|
}
|
|
18549
|
-
|
|
18550
|
+
|
|
18550
18551
|
colPositionAdjust (start, end, diff){
|
|
18551
18552
|
for(let i = start; i < end; i++){
|
|
18552
18553
|
let column = this.columns[i];
|
|
18553
|
-
|
|
18554
|
+
|
|
18554
18555
|
column.modules.vdomHoz.leftPos += diff;
|
|
18555
18556
|
column.modules.vdomHoz.rightPos += diff;
|
|
18556
18557
|
}
|
|
18557
18558
|
}
|
|
18558
|
-
|
|
18559
|
+
|
|
18559
18560
|
addColRight(){
|
|
18560
18561
|
var column = this.columns[this.rightCol + 1],
|
|
18561
18562
|
rows;
|
|
18562
|
-
|
|
18563
|
+
|
|
18563
18564
|
if(column && column.modules.vdomHoz.leftPos <= this.vDomScrollPosRight){
|
|
18564
|
-
|
|
18565
18565
|
rows = this.table.rowManager.getVisibleRows();
|
|
18566
|
-
|
|
18566
|
+
|
|
18567
18567
|
rows.forEach((row) => {
|
|
18568
18568
|
if(row.type !== "group"){
|
|
18569
18569
|
var cell = row.getCell(column);
|
|
@@ -18571,30 +18571,30 @@ class VirtualDomHorizontal extends Renderer{
|
|
|
18571
18571
|
cell.cellRendered();
|
|
18572
18572
|
}
|
|
18573
18573
|
});
|
|
18574
|
-
|
|
18574
|
+
|
|
18575
18575
|
this.fitDataColActualWidthCheck(column);
|
|
18576
|
-
|
|
18576
|
+
|
|
18577
18577
|
this.rightCol++;
|
|
18578
|
-
|
|
18578
|
+
|
|
18579
18579
|
if(this.rightCol >= (this.columns.length - 1)){
|
|
18580
18580
|
this.vDomPadRight = 0;
|
|
18581
18581
|
}else {
|
|
18582
18582
|
this.vDomPadRight -= column.getWidth();
|
|
18583
18583
|
}
|
|
18584
|
-
|
|
18584
|
+
|
|
18585
18585
|
this.tableElement.style.paddingRight = this.vDomPadRight + "px";
|
|
18586
|
-
|
|
18586
|
+
|
|
18587
18587
|
this.addColRight();
|
|
18588
18588
|
}
|
|
18589
18589
|
}
|
|
18590
|
-
|
|
18590
|
+
|
|
18591
18591
|
addColLeft(){
|
|
18592
18592
|
var column = this.columns[this.leftCol - 1],
|
|
18593
18593
|
rows;
|
|
18594
|
-
|
|
18594
|
+
|
|
18595
18595
|
if(column && column.modules.vdomHoz.rightPos >= this.vDomScrollPosLeft){
|
|
18596
18596
|
var rows = this.table.rowManager.getVisibleRows();
|
|
18597
|
-
|
|
18597
|
+
|
|
18598
18598
|
rows.forEach((row) => {
|
|
18599
18599
|
if(row.type !== "group"){
|
|
18600
18600
|
var cell = row.getCell(column);
|
|
@@ -18602,119 +18602,125 @@ class VirtualDomHorizontal extends Renderer{
|
|
|
18602
18602
|
cell.cellRendered();
|
|
18603
18603
|
}
|
|
18604
18604
|
});
|
|
18605
|
-
|
|
18605
|
+
|
|
18606
18606
|
this.fitDataColActualWidthCheck(column);
|
|
18607
|
-
|
|
18607
|
+
|
|
18608
18608
|
if(!this.leftCol){
|
|
18609
18609
|
this.vDomPadLeft = 0;
|
|
18610
18610
|
}else {
|
|
18611
18611
|
this.vDomPadLeft -= column.getWidth();
|
|
18612
18612
|
}
|
|
18613
|
-
|
|
18613
|
+
|
|
18614
18614
|
this.tableElement.style.paddingLeft = this.vDomPadLeft + "px";
|
|
18615
|
-
|
|
18615
|
+
|
|
18616
18616
|
this.leftCol--;
|
|
18617
|
-
|
|
18617
|
+
|
|
18618
18618
|
this.addColLeft();
|
|
18619
18619
|
}
|
|
18620
18620
|
}
|
|
18621
|
-
|
|
18621
|
+
|
|
18622
18622
|
removeColRight(column){
|
|
18623
18623
|
var column = this.columns[this.rightCol],
|
|
18624
18624
|
rows;
|
|
18625
|
-
|
|
18625
|
+
|
|
18626
18626
|
if(column && column.modules.vdomHoz.leftPos > this.vDomScrollPosRight){
|
|
18627
18627
|
rows = this.table.rowManager.getVisibleRows();
|
|
18628
|
-
|
|
18628
|
+
|
|
18629
18629
|
column.modules.vdomHoz.visible = false;
|
|
18630
|
-
|
|
18630
|
+
|
|
18631
18631
|
rows.forEach((row) => {
|
|
18632
18632
|
if(row.type !== "group"){
|
|
18633
18633
|
var cell = row.getCell(column);
|
|
18634
18634
|
row.getElement().removeChild(cell.getElement());
|
|
18635
18635
|
}
|
|
18636
18636
|
});
|
|
18637
|
-
|
|
18637
|
+
|
|
18638
18638
|
this.vDomPadRight += column.getWidth();
|
|
18639
18639
|
this.tableElement.style.paddingRight = this.vDomPadRight + "px";
|
|
18640
|
-
|
|
18640
|
+
|
|
18641
18641
|
this.rightCol --;
|
|
18642
|
-
|
|
18642
|
+
|
|
18643
18643
|
this.removeColRight();
|
|
18644
18644
|
}
|
|
18645
18645
|
}
|
|
18646
|
-
|
|
18646
|
+
|
|
18647
18647
|
removeColLeft(){
|
|
18648
18648
|
var column = this.columns[this.leftCol],
|
|
18649
18649
|
rows;
|
|
18650
|
-
|
|
18651
|
-
if(column && column.modules.vdomHoz.rightPos < this.vDomScrollPosLeft){
|
|
18652
|
-
|
|
18650
|
+
|
|
18651
|
+
if(column && column.modules.vdomHoz.rightPos < this.vDomScrollPosLeft){
|
|
18653
18652
|
rows = this.table.rowManager.getVisibleRows();
|
|
18654
|
-
|
|
18653
|
+
|
|
18655
18654
|
rows.forEach((row) => {
|
|
18655
|
+
var cell, el;
|
|
18656
|
+
|
|
18656
18657
|
if(row.type !== "group"){
|
|
18657
|
-
|
|
18658
|
-
|
|
18659
|
-
|
|
18658
|
+
cell = row.getCell(column);
|
|
18659
|
+
|
|
18660
|
+
if(cell){
|
|
18661
|
+
el = cell.getElement();
|
|
18662
|
+
|
|
18663
|
+
if(el.parentNode){
|
|
18664
|
+
row.getElement().removeChild(el);
|
|
18665
|
+
}
|
|
18660
18666
|
}
|
|
18661
18667
|
}
|
|
18662
18668
|
});
|
|
18663
|
-
|
|
18669
|
+
|
|
18664
18670
|
this.vDomPadLeft += column.getWidth();
|
|
18665
18671
|
this.tableElement.style.paddingLeft = this.vDomPadLeft + "px";
|
|
18666
|
-
|
|
18672
|
+
|
|
18667
18673
|
this.leftCol ++;
|
|
18668
|
-
|
|
18674
|
+
|
|
18669
18675
|
this.removeColLeft();
|
|
18670
18676
|
}
|
|
18671
18677
|
}
|
|
18672
|
-
|
|
18678
|
+
|
|
18673
18679
|
fitDataColActualWidthCheck(column){
|
|
18674
18680
|
var newWidth, widthDiff;
|
|
18675
|
-
|
|
18681
|
+
|
|
18676
18682
|
if(column.modules.vdomHoz.fitDataCheck){
|
|
18677
18683
|
column.reinitializeWidth();
|
|
18678
|
-
|
|
18684
|
+
|
|
18679
18685
|
newWidth = column.getWidth();
|
|
18680
18686
|
widthDiff = newWidth - column.modules.vdomHoz.width;
|
|
18681
|
-
|
|
18687
|
+
|
|
18682
18688
|
if(widthDiff){
|
|
18683
18689
|
column.modules.vdomHoz.rightPos += widthDiff;
|
|
18684
18690
|
column.modules.vdomHoz.width = newWidth;
|
|
18685
18691
|
this.colPositionAdjust(this.rightCol + 2, this.columns.length, widthDiff);
|
|
18686
18692
|
}
|
|
18687
|
-
|
|
18693
|
+
|
|
18688
18694
|
column.modules.vdomHoz.fitDataCheck = false;
|
|
18689
18695
|
}
|
|
18690
18696
|
};
|
|
18691
|
-
|
|
18697
|
+
|
|
18692
18698
|
initializeRow(row){
|
|
18693
18699
|
if(row.type !== "group"){
|
|
18694
18700
|
row.modules.vdomHoz = {
|
|
18695
18701
|
leftCol:this.leftCol,
|
|
18696
18702
|
rightCol:this.rightCol,
|
|
18697
18703
|
};
|
|
18698
|
-
|
|
18704
|
+
|
|
18699
18705
|
for(let i = this.leftCol; i <= this.rightCol; i++){
|
|
18700
18706
|
let column = this.columns[i];
|
|
18701
|
-
|
|
18707
|
+
|
|
18702
18708
|
if(column && column.visible){
|
|
18703
18709
|
let cell = row.getCell(column);
|
|
18704
|
-
|
|
18710
|
+
|
|
18705
18711
|
row.getElement().appendChild(cell.getElement());
|
|
18706
18712
|
cell.cellRendered();
|
|
18707
18713
|
}
|
|
18708
18714
|
}
|
|
18709
18715
|
}
|
|
18710
18716
|
}
|
|
18711
|
-
|
|
18717
|
+
|
|
18712
18718
|
reinitializeRow(row, force){
|
|
18713
18719
|
if(row.type !== "group"){
|
|
18714
18720
|
if(force || !row.modules.vdomHoz || row.modules.vdomHoz.leftCol !== this.leftCol || row.modules.vdomHoz.rightCol !== this.rightCol){
|
|
18715
18721
|
var rowEl = row.getElement();
|
|
18716
18722
|
while(rowEl.firstChild) rowEl.removeChild(rowEl.firstChild);
|
|
18717
|
-
|
|
18723
|
+
|
|
18718
18724
|
this.initializeRow(row);
|
|
18719
18725
|
}
|
|
18720
18726
|
}
|
|
@@ -21196,18 +21202,31 @@ class InteractionManager extends CoreFeature {
|
|
|
21196
21202
|
};
|
|
21197
21203
|
|
|
21198
21204
|
this.pseudoTrackers = {
|
|
21199
|
-
"row":
|
|
21200
|
-
|
|
21201
|
-
|
|
21202
|
-
|
|
21205
|
+
"row":{
|
|
21206
|
+
subscriber:null,
|
|
21207
|
+
target:null,
|
|
21208
|
+
},
|
|
21209
|
+
"cell":{
|
|
21210
|
+
subscriber:null,
|
|
21211
|
+
target:null,
|
|
21212
|
+
},
|
|
21213
|
+
"group":{
|
|
21214
|
+
subscriber:null,
|
|
21215
|
+
target:null,
|
|
21216
|
+
},
|
|
21217
|
+
"column":{
|
|
21218
|
+
subscriber:null,
|
|
21219
|
+
target:null,
|
|
21220
|
+
},
|
|
21203
21221
|
};
|
|
21222
|
+
|
|
21223
|
+
this.pseudoTracking = false;
|
|
21204
21224
|
}
|
|
21205
21225
|
|
|
21206
21226
|
initialize(){
|
|
21207
21227
|
this.el = this.table.element;
|
|
21208
21228
|
this.buildListenerMap();
|
|
21209
21229
|
this.bindSubscriptionWatchers();
|
|
21210
|
-
this.bindPseudoEvents();
|
|
21211
21230
|
}
|
|
21212
21231
|
|
|
21213
21232
|
buildListenerMap(){
|
|
@@ -21225,21 +21244,23 @@ class InteractionManager extends CoreFeature {
|
|
|
21225
21244
|
|
|
21226
21245
|
bindPseudoEvents(){
|
|
21227
21246
|
Object.keys(this.pseudoTrackers).forEach((key) => {
|
|
21228
|
-
this.
|
|
21229
|
-
|
|
21247
|
+
this.pseudoTrackers[key].subscriber = this.pseudoMouseEnter.bind(this, key);
|
|
21248
|
+
this.subscribe(key + "-mouseover", this.pseudoTrackers[key].subscriber);
|
|
21230
21249
|
});
|
|
21250
|
+
|
|
21251
|
+
this.pseudoTracking = true;
|
|
21231
21252
|
}
|
|
21232
21253
|
|
|
21233
21254
|
pseudoMouseEnter(key, e, target){
|
|
21234
|
-
if(this.pseudoTrackers[key] !== target){
|
|
21255
|
+
if(this.pseudoTrackers[key].target !== target){
|
|
21235
21256
|
|
|
21236
|
-
if(this.pseudoTrackers[key]){
|
|
21257
|
+
if(this.pseudoTrackers[key].target){
|
|
21237
21258
|
this.dispatch(key + "-mouseleave", e, target);
|
|
21238
21259
|
}
|
|
21239
21260
|
|
|
21240
21261
|
this.pseudoMouseLeave(key, e);
|
|
21241
21262
|
|
|
21242
|
-
this.pseudoTrackers[key] = target;
|
|
21263
|
+
this.pseudoTrackers[key].target = target;
|
|
21243
21264
|
|
|
21244
21265
|
this.dispatch(key + "-mouseenter", e, target);
|
|
21245
21266
|
}
|
|
@@ -21259,12 +21280,12 @@ class InteractionManager extends CoreFeature {
|
|
|
21259
21280
|
|
|
21260
21281
|
|
|
21261
21282
|
leaveList.forEach((key) => {
|
|
21262
|
-
var target = this.pseudoTrackers[key];
|
|
21283
|
+
var target = this.pseudoTrackers[key].target;
|
|
21263
21284
|
|
|
21264
|
-
if(this.pseudoTrackers[key]){
|
|
21285
|
+
if(this.pseudoTrackers[key].target){
|
|
21265
21286
|
this.dispatch(key + "-mouseleave", e, target);
|
|
21266
21287
|
|
|
21267
|
-
this.pseudoTrackers[key] = null;
|
|
21288
|
+
this.pseudoTrackers[key].target = null;
|
|
21268
21289
|
}
|
|
21269
21290
|
});
|
|
21270
21291
|
}
|
|
@@ -21289,7 +21310,7 @@ class InteractionManager extends CoreFeature {
|
|
|
21289
21310
|
var listener = this.listeners[key].components,
|
|
21290
21311
|
index = listener.indexOf(component),
|
|
21291
21312
|
changed = false;
|
|
21292
|
-
|
|
21313
|
+
|
|
21293
21314
|
if(added){
|
|
21294
21315
|
if(index === -1){
|
|
21295
21316
|
listener.push(component);
|
|
@@ -21303,6 +21324,10 @@ class InteractionManager extends CoreFeature {
|
|
|
21303
21324
|
}
|
|
21304
21325
|
}
|
|
21305
21326
|
}
|
|
21327
|
+
|
|
21328
|
+
if((key === "mouseenter" || key === "mouseleave") && !this.pseudoTracking){
|
|
21329
|
+
this.bindPseudoEvents();
|
|
21330
|
+
}
|
|
21306
21331
|
|
|
21307
21332
|
if(changed){
|
|
21308
21333
|
this.updateEventListeners();
|
|
@@ -21336,7 +21361,7 @@ class InteractionManager extends CoreFeature {
|
|
|
21336
21361
|
|
|
21337
21362
|
this.triggerEvents(type, e, targets);
|
|
21338
21363
|
|
|
21339
|
-
if((type == "mouseover" || type == "mouseleave") && !Object.keys(targets).length){
|
|
21364
|
+
if(this.pseudoTracking && (type == "mouseover" || type == "mouseleave") && !Object.keys(targets).length){
|
|
21340
21365
|
this.pseudoMouseLeave("none", e);
|
|
21341
21366
|
}
|
|
21342
21367
|
}
|
|
@@ -21544,7 +21569,7 @@ class DataLoader extends CoreFeature{
|
|
|
21544
21569
|
data = JSON.parse(data);
|
|
21545
21570
|
}
|
|
21546
21571
|
|
|
21547
|
-
if(this.confirm("data-loading", data, params, config, silent)){
|
|
21572
|
+
if(this.confirm("data-loading", [data, params, config, silent])){
|
|
21548
21573
|
this.loading = true;
|
|
21549
21574
|
|
|
21550
21575
|
if(!silent){
|