@visactor/vtable 1.23.3 → 1.24.0
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/cjs/ListTable.d.ts +1 -0
- package/cjs/ListTable.js +182 -24
- package/cjs/ListTable.js.map +1 -1
- package/cjs/PivotTable.d.ts +1 -0
- package/cjs/PivotTable.js +10 -2
- package/cjs/PivotTable.js.map +1 -1
- package/cjs/core/BaseTable.d.ts +9 -0
- package/cjs/core/BaseTable.js +64 -15
- package/cjs/core/BaseTable.js.map +1 -1
- package/cjs/core/TABLE_EVENT_TYPE.d.ts +2 -0
- package/cjs/core/TABLE_EVENT_TYPE.js +2 -0
- package/cjs/core/TABLE_EVENT_TYPE.js.map +1 -1
- package/cjs/core/record-helper.js +83 -13
- package/cjs/core/record-helper.js.map +1 -1
- package/cjs/data/DataSource.js +3 -2
- package/cjs/data/DataSource.js.map +1 -1
- package/cjs/dataset/DataStatistics.js +1 -2
- package/cjs/edit/edit-manager.js +21 -15
- package/cjs/edit/edit-manager.js.map +1 -1
- package/cjs/index.d.ts +3 -3
- package/cjs/index.js +51 -12
- package/cjs/index.js.map +1 -1
- package/cjs/layout/cell-range/simple-cell-range.js +14 -4
- package/cjs/layout/cell-range/simple-cell-range.js.map +1 -1
- package/cjs/scenegraph/group-creater/cell-helper.js +1 -1
- package/cjs/scenegraph/group-creater/cell-helper.js.map +1 -1
- package/cjs/scenegraph/group-creater/init-scenegraph.js +1 -1
- package/cjs/scenegraph/group-creater/init-scenegraph.js.map +1 -1
- package/cjs/state/state.js +14 -11
- package/cjs/state/state.js.map +1 -1
- package/cjs/ts-types/base-table.d.ts +5 -0
- package/cjs/ts-types/base-table.js.map +1 -1
- package/cjs/ts-types/events.d.ts +16 -0
- package/cjs/ts-types/events.js.map +1 -1
- package/cjs/ts-types/table-engine.js.map +1 -1
- package/cjs/vrender.js.map +1 -1
- package/dist/vtable.js +896 -218
- package/dist/vtable.min.js +2 -2
- package/es/ListTable.d.ts +1 -0
- package/es/ListTable.js +177 -24
- package/es/ListTable.js.map +1 -1
- package/es/PivotTable.d.ts +1 -0
- package/es/PivotTable.js +8 -2
- package/es/PivotTable.js.map +1 -1
- package/es/core/BaseTable.d.ts +9 -0
- package/es/core/BaseTable.js +64 -15
- package/es/core/BaseTable.js.map +1 -1
- package/es/core/TABLE_EVENT_TYPE.d.ts +2 -0
- package/es/core/TABLE_EVENT_TYPE.js +2 -0
- package/es/core/TABLE_EVENT_TYPE.js.map +1 -1
- package/es/core/record-helper.js +83 -12
- package/es/core/record-helper.js.map +1 -1
- package/es/data/DataSource.js +3 -2
- package/es/data/DataSource.js.map +1 -1
- package/es/dataset/DataStatistics.js +1 -2
- package/es/edit/edit-manager.js +20 -16
- package/es/edit/edit-manager.js.map +1 -1
- package/es/index.d.ts +3 -3
- package/es/index.js +5 -3
- package/es/index.js.map +1 -1
- package/es/layout/cell-range/simple-cell-range.js +14 -4
- package/es/layout/cell-range/simple-cell-range.js.map +1 -1
- package/es/scenegraph/group-creater/cell-helper.js +1 -1
- package/es/scenegraph/group-creater/cell-helper.js.map +1 -1
- package/es/scenegraph/group-creater/init-scenegraph.js +1 -1
- package/es/scenegraph/group-creater/init-scenegraph.js.map +1 -1
- package/es/state/state.js +14 -11
- package/es/state/state.js.map +1 -1
- package/es/ts-types/base-table.d.ts +5 -0
- package/es/ts-types/base-table.js.map +1 -1
- package/es/ts-types/events.d.ts +16 -0
- package/es/ts-types/events.js.map +1 -1
- package/es/ts-types/table-engine.js.map +1 -1
- package/es/vrender.js.map +1 -1
- package/package.json +4 -4
package/cjs/core/BaseTable.d.ts
CHANGED
|
@@ -27,6 +27,7 @@ import { PluginManager } from '../plugins/plugin-manager';
|
|
|
27
27
|
export declare abstract class BaseTable extends EventTarget implements BaseTableAPI {
|
|
28
28
|
internalProps: IBaseTableProtected;
|
|
29
29
|
showFrozenIcon: boolean;
|
|
30
|
+
_scrollToRowCorrectTimer: ReturnType<typeof setTimeout> | null;
|
|
30
31
|
padding: {
|
|
31
32
|
top: number;
|
|
32
33
|
left: number;
|
|
@@ -264,6 +265,7 @@ export declare abstract class BaseTable extends EventTarget implements BaseTable
|
|
|
264
265
|
release: () => void;
|
|
265
266
|
}): void;
|
|
266
267
|
private dispose;
|
|
268
|
+
clearCorrectTimer(): void;
|
|
267
269
|
release(): void;
|
|
268
270
|
fireListeners<TYPE extends keyof TableEventHandlersEventArgumentMap>(type: TYPE, event: TableEventHandlersEventArgumentMap[TYPE]): TableEventHandlersReturnMap[TYPE][];
|
|
269
271
|
updateOption(options: BaseTableConstructorOptions, updateConfig?: {
|
|
@@ -296,6 +298,11 @@ export declare abstract class BaseTable extends EventTarget implements BaseTable
|
|
|
296
298
|
endDragSelect(): void;
|
|
297
299
|
startDragSelectRow(rowIndex: number, enableCtrlSelectMode?: boolean, isShift?: boolean, makeSelectCellVisible?: boolean): void;
|
|
298
300
|
dragSelectRow(rowIndex: number, isCtrl?: boolean, makeSelectCellVisible?: boolean): void;
|
|
301
|
+
changeHeaderPosition(args: {
|
|
302
|
+
source: CellAddress;
|
|
303
|
+
target: CellAddress;
|
|
304
|
+
movingColumnOrRow?: 'column' | 'row';
|
|
305
|
+
}): boolean;
|
|
299
306
|
abstract isListTable(): boolean;
|
|
300
307
|
abstract isPivotTable(): boolean;
|
|
301
308
|
abstract isPivotChart(): boolean;
|
|
@@ -457,6 +464,8 @@ export declare abstract class BaseTable extends EventTarget implements BaseTable
|
|
|
457
464
|
disableScroll(): void;
|
|
458
465
|
enableScroll(): void;
|
|
459
466
|
getGroupTitleLevel(col: number, row: number): number | undefined;
|
|
467
|
+
getTargetScrollTop(row: number): number;
|
|
468
|
+
private _scheduleScrollToRowCorrect;
|
|
460
469
|
scrollToRow(row: number, animationOption?: ITableAnimationOption | boolean): void;
|
|
461
470
|
scrollToCol(col: number, animationOption?: ITableAnimationOption | boolean): void;
|
|
462
471
|
scrollToCell(cellAddr: {
|
package/cjs/core/BaseTable.js
CHANGED
|
@@ -43,12 +43,12 @@ class BaseTable extends EventTarget_1.EventTarget {
|
|
|
43
43
|
}
|
|
44
44
|
constructor(container, options = {}) {
|
|
45
45
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z;
|
|
46
|
-
if (super(), this.showFrozenIcon = !0, this.
|
|
47
|
-
this.
|
|
48
|
-
this.id = `VTable${Date.now()}`, this.isReleased = !1,
|
|
49
|
-
this.throttleInvalidate = (0, util_1.throttle2)(this.render.bind(this), 200),
|
|
50
|
-
container = null) : container instanceof HTMLElement || (options = container,
|
|
51
|
-
!container && "node" !== options.mode && !options.canvas) throw new Error("vtable's container is undefined");
|
|
46
|
+
if (super(), this.showFrozenIcon = !0, this._scrollToRowCorrectTimer = null, this._tableBorderWidth_left = 0,
|
|
47
|
+
this._tableBorderWidth_right = 0, this._tableBorderWidth_top = 0, this._tableBorderWidth_bottom = 0,
|
|
48
|
+
this.version = "1.24.0", this.id = `VTable${Date.now()}`, this.isReleased = !1,
|
|
49
|
+
this._chartEventMap = {}, this.throttleInvalidate = (0, util_1.throttle2)(this.render.bind(this), 200),
|
|
50
|
+
"node" === env_1.Env.mode ? (options = container, container = null) : container instanceof HTMLElement || (options = container,
|
|
51
|
+
container = container.container ? container.container : null), !container && "node" !== options.mode && !options.canvas) throw new Error("vtable's container is undefined");
|
|
52
52
|
this.pluginManager = new plugin_manager_1.PluginManager(this, options), this.fireListeners(TABLE_EVENT_TYPE_1.TABLE_EVENT_TYPE.BEFORE_INIT, {
|
|
53
53
|
options: options,
|
|
54
54
|
container: container
|
|
@@ -946,6 +946,9 @@ class BaseTable extends EventTarget_1.EventTarget {
|
|
|
946
946
|
dispose() {
|
|
947
947
|
this.release();
|
|
948
948
|
}
|
|
949
|
+
clearCorrectTimer() {
|
|
950
|
+
this._scrollToRowCorrectTimer && (clearTimeout(this._scrollToRowCorrectTimer), this._scrollToRowCorrectTimer = null);
|
|
951
|
+
}
|
|
949
952
|
release() {
|
|
950
953
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1;
|
|
951
954
|
null === (_c = null === (_b = null === (_a = this.scenegraph) || void 0 === _a ? void 0 : _a.component) || void 0 === _b ? void 0 : _b.vScrollBar) || void 0 === _c || _c.release(),
|
|
@@ -953,7 +956,7 @@ class BaseTable extends EventTarget_1.EventTarget {
|
|
|
953
956
|
this.animationManager.clear(), this.animationManager.ticker.release(), null === (_j = null === (_h = null === (_g = this.scenegraph) || void 0 === _g ? void 0 : _g.stage) || void 0 === _h ? void 0 : _h.ticker) || void 0 === _j || _j.release();
|
|
954
957
|
const internalProps = this.internalProps;
|
|
955
958
|
if (this.isReleased) return;
|
|
956
|
-
null === (_l = null === (_k = internalProps.tooltipHandler) || void 0 === _k ? void 0 : _k.release) || void 0 === _l || _l.call(_k),
|
|
959
|
+
this.clearCorrectTimer(), null === (_l = null === (_k = internalProps.tooltipHandler) || void 0 === _k ? void 0 : _k.release) || void 0 === _l || _l.call(_k),
|
|
957
960
|
null === (_o = null === (_m = internalProps.menuHandler) || void 0 === _m ? void 0 : _m.release) || void 0 === _o || _o.call(_m),
|
|
958
961
|
null === (_p = super.release) || void 0 === _p || _p.call(this), this.pluginManager.release(),
|
|
959
962
|
null === (_r = null === (_q = internalProps.handler) || void 0 === _q ? void 0 : _q.release) || void 0 === _r || _r.call(_q),
|
|
@@ -1267,6 +1270,31 @@ class BaseTable extends EventTarget_1.EventTarget {
|
|
|
1267
1270
|
lastSelectRange && (lastSelectRange.end.row = rowIndex), this.stateManager.updateSelectPos(this.colCount - 1, rowIndex, !1, isCtrl, !1, makeSelectCellVisible, !0),
|
|
1268
1271
|
this.stateManager.select.selecting = !1;
|
|
1269
1272
|
}
|
|
1273
|
+
changeHeaderPosition(args) {
|
|
1274
|
+
var _a, _b, _c, _d, _e;
|
|
1275
|
+
if (!("canMoveHeaderPosition" in this.internalProps.layoutMap) || !0 === (null === (_a = this.options.customConfig) || void 0 === _a ? void 0 : _a.notUpdateInColumnRowMove)) return !1;
|
|
1276
|
+
const prevMoving = this.stateManager.columnMove.movingColumnOrRow;
|
|
1277
|
+
this.stateManager.columnMove.movingColumnOrRow = args.movingColumnOrRow;
|
|
1278
|
+
try {
|
|
1279
|
+
if (!1 === (null === (_c = (_b = this.internalProps.layoutMap).canMoveHeaderPosition) || void 0 === _c ? void 0 : _c.call(_b, args.source, args.target))) return !1;
|
|
1280
|
+
const oldSourceMergeInfo = this.getCellRange(args.source.col, args.source.row), oldTargetMergeInfo = this.getCellRange(args.target.col, args.target.row), moveContext = this._moveHeaderPosition(args.source, args.target);
|
|
1281
|
+
if (!moveContext || moveContext.targetIndex === moveContext.sourceIndex) return !1;
|
|
1282
|
+
this.internalProps.useOneRowHeightFillAll = !1, this.internalProps.layoutMap.clearCellRangeMap();
|
|
1283
|
+
const sourceMergeInfo = this.getCellRange(args.source.col, args.source.row), targetMergeInfo = this.getCellRange(args.target.col, args.target.row), colMin = Math.min(sourceMergeInfo.start.col, targetMergeInfo.start.col, oldSourceMergeInfo.start.col, oldTargetMergeInfo.start.col), colMax = Math.max(sourceMergeInfo.end.col, targetMergeInfo.end.col, oldSourceMergeInfo.end.col, oldTargetMergeInfo.end.col), rowMin = Math.min(sourceMergeInfo.start.row, targetMergeInfo.start.row, oldSourceMergeInfo.start.row, oldTargetMergeInfo.start.row);
|
|
1284
|
+
let rowMax = Math.max(sourceMergeInfo.end.row, targetMergeInfo.end.row, oldSourceMergeInfo.end.row, oldTargetMergeInfo.end.row);
|
|
1285
|
+
if ("row" === moveContext.moveType && "tree" === this.internalProps.layoutMap.rowHierarchyType && (rowMax = moveContext.targetIndex > moveContext.sourceIndex ? rowMax + moveContext.targetSize - 1 : rowMax + moveContext.sourceSize - 1),
|
|
1286
|
+
this.transpose || !this.isSeriesNumberInBody(args.source.col, args.source.row) && "row" !== args.movingColumnOrRow || (this.changeRecordOrder(moveContext.sourceIndex, moveContext.targetIndex),
|
|
1287
|
+
this.stateManager.changeCheckboxAndRadioOrder(moveContext.sourceIndex, moveContext.targetIndex)),
|
|
1288
|
+
"column" === moveContext.moveType) for (let col = colMin; col <= colMax; col++) this._clearColRangeWidthsMap(col); else for (let row = rowMin; row <= rowMax; row++) this._clearRowRangeHeightsMap(row);
|
|
1289
|
+
return this.clearCellStyleCache(), this.isSeriesNumberInBody(args.source.col, args.source.row) || "row" === args.movingColumnOrRow ? this.scenegraph.updateHeaderPosition(this.scenegraph.proxy.colStart, this.scenegraph.proxy.colEnd, this.scenegraph.proxy.rowStart, this.scenegraph.proxy.rowEnd, moveContext.moveType) : "column" === moveContext.moveType ? this.scenegraph.updateHeaderPosition(colMin, colMax, 0, -1, moveContext.moveType) : this.scenegraph.updateHeaderPosition(0, -1, rowMin, rowMax, moveContext.moveType),
|
|
1290
|
+
"adjustFrozenCount" === this.internalProps.frozenColDragHeaderMode && this.isListTable() && (this.isLeftFrozenColumn(args.target.col) && !this.isLeftFrozenColumn(args.source.col) ? this.frozenColCount += sourceMergeInfo.end.col - sourceMergeInfo.start.col + 1 : this.isLeftFrozenColumn(args.source.col) && !this.isLeftFrozenColumn(args.target.col) && (this.frozenColCount -= sourceMergeInfo.end.col - sourceMergeInfo.start.col + 1),
|
|
1291
|
+
this.isRightFrozenColumn(args.target.col) && !this.isRightFrozenColumn(args.source.col) ? this.rightFrozenColCount += sourceMergeInfo.end.col - sourceMergeInfo.start.col + 1 : this.isRightFrozenColumn(args.source.col) && !this.isRightFrozenColumn(args.target.col) && (this.rightFrozenColCount -= sourceMergeInfo.end.col - sourceMergeInfo.start.col + 1)),
|
|
1292
|
+
null === (_e = (_d = this.scenegraph).updateNextFrame) || void 0 === _e || _e.call(_d),
|
|
1293
|
+
!0;
|
|
1294
|
+
} finally {
|
|
1295
|
+
this.stateManager.columnMove.movingColumnOrRow = prevMoving;
|
|
1296
|
+
}
|
|
1297
|
+
}
|
|
1270
1298
|
get recordsCount() {
|
|
1271
1299
|
var _a;
|
|
1272
1300
|
return null === (_a = this.records) || void 0 === _a ? void 0 : _a.length;
|
|
@@ -1419,7 +1447,7 @@ class BaseTable extends EventTarget_1.EventTarget {
|
|
|
1419
1447
|
getCustomMerge(col, row) {
|
|
1420
1448
|
if (this.internalProps.customMergeCell) {
|
|
1421
1449
|
const customMerge = this.internalProps.customMergeCell(col, row, this);
|
|
1422
|
-
if (customMerge && customMerge.range
|
|
1450
|
+
if (customMerge && customMerge.range) {
|
|
1423
1451
|
if (customMerge.style) {
|
|
1424
1452
|
const styleClass = this.internalProps.bodyHelper.getStyleClass("text"), style = customMerge.style, fullStyle = columnStyleContents.of(style, this.theme.bodyStyle, {
|
|
1425
1453
|
col: col,
|
|
@@ -2075,12 +2103,33 @@ class BaseTable extends EventTarget_1.EventTarget {
|
|
|
2075
2103
|
this.eventManager.enableScroll();
|
|
2076
2104
|
}
|
|
2077
2105
|
getGroupTitleLevel(col, row) {}
|
|
2106
|
+
getTargetScrollTop(row) {
|
|
2107
|
+
const drawRange = this.getDrawRange(), frozenHeight = this.getFrozenRowsHeight();
|
|
2108
|
+
return Math.max(0, Math.min(this.getRowsHeight(0, row - 1) - frozenHeight, this.getAllRowsHeight() - drawRange.height));
|
|
2109
|
+
}
|
|
2110
|
+
_scheduleScrollToRowCorrect(row, delay = 0) {
|
|
2111
|
+
this._scrollToRowCorrectTimer = setTimeout((() => {
|
|
2112
|
+
this.clearCorrectTimer();
|
|
2113
|
+
const targetScrollTop = this.getTargetScrollTop(row);
|
|
2114
|
+
if (targetScrollTop !== this.scrollTop) {
|
|
2115
|
+
this.scrollTop = targetScrollTop;
|
|
2116
|
+
const correctedTargetScrollTop = this.getTargetScrollTop(row);
|
|
2117
|
+
correctedTargetScrollTop !== this.scrollTop && (this.scrollTop = correctedTargetScrollTop);
|
|
2118
|
+
}
|
|
2119
|
+
}), delay);
|
|
2120
|
+
}
|
|
2078
2121
|
scrollToRow(row, animationOption) {
|
|
2079
|
-
|
|
2080
|
-
|
|
2081
|
-
|
|
2082
|
-
row:
|
|
2083
|
-
});
|
|
2122
|
+
var _a;
|
|
2123
|
+
const targetRow = Math.min(Math.max(Math.floor(row), 0), this.rowCount - 1);
|
|
2124
|
+
if (this.clearCorrectTimer(), !animationOption) return this.scrollToCell({
|
|
2125
|
+
row: targetRow
|
|
2126
|
+
}), void this._scheduleScrollToRowCorrect(targetRow);
|
|
2127
|
+
const duration = (0, vutils_1.isBoolean)(animationOption) ? 3e3 : null !== (_a = null == animationOption ? void 0 : animationOption.duration) && void 0 !== _a ? _a : 3e3;
|
|
2128
|
+
this.animationManager.scrollTo({
|
|
2129
|
+
row: targetRow
|
|
2130
|
+
}, animationOption), this._scrollToRowCorrectTimer = setTimeout((() => {
|
|
2131
|
+
this.scrollToRow(targetRow, !1);
|
|
2132
|
+
}), duration);
|
|
2084
2133
|
}
|
|
2085
2134
|
scrollToCol(col, animationOption) {
|
|
2086
2135
|
animationOption ? this.animationManager.scrollTo({
|
|
@@ -2097,8 +2146,8 @@ class BaseTable extends EventTarget_1.EventTarget {
|
|
|
2097
2146
|
this.scrollLeft = Math.min(left - frozenWidth, this.getAllColsWidth() - drawRange.width);
|
|
2098
2147
|
}
|
|
2099
2148
|
if ((0, vutils_1.isValid)(cellAddr.row) && cellAddr.row >= this.frozenRowCount) {
|
|
2100
|
-
const frozenHeight = this.getFrozenRowsHeight(), top = this.
|
|
2101
|
-
this.scrollTop = Math.min(top - frozenHeight, this.
|
|
2149
|
+
const frozenHeight = this.getFrozenRowsHeight(), top = this.rowHeightsMap.getSumInRange(0, cellAddr.row - 1);
|
|
2150
|
+
this.scrollTop = Math.min(top - frozenHeight, this.rowHeightsMap.getSumInRange(0, this.rowCount - 1) - drawRange.height);
|
|
2102
2151
|
}
|
|
2103
2152
|
this.render();
|
|
2104
2153
|
}
|