k-vtable 1.0.34 → 1.0.35
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 +184 -25
- package/cjs/ListTable.js.map +1 -1
- package/cjs/PivotChart.js +3 -2
- package/cjs/PivotChart.js.map +1 -1
- package/cjs/PivotTable.d.ts +1 -0
- package/cjs/PivotTable.js +95 -15
- package/cjs/PivotTable.js.map +1 -1
- package/cjs/core/BaseTable.d.ts +14 -0
- package/cjs/core/BaseTable.js +149 -41
- 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/core/tableHelper.js +5 -3
- package/cjs/core/tableHelper.js.map +1 -1
- package/cjs/core/utils/get-cell-position.js +23 -12
- package/cjs/core/utils/get-cell-position.js.map +1 -1
- package/cjs/data/DataSource.js +3 -2
- package/cjs/data/DataSource.js.map +1 -1
- package/cjs/dataset/dataset.js +5 -1
- package/cjs/dataset/dataset.js.map +1 -1
- package/cjs/edit/edit-manager.js +24 -16
- package/cjs/edit/edit-manager.js.map +1 -1
- package/cjs/event/EventTarget.js +3 -1
- package/cjs/event/EventTarget.js.map +1 -1
- package/cjs/event/helper.js +1 -1
- package/cjs/event/listener/container-dom.js +11 -6
- package/cjs/event/listener/container-dom.js.map +1 -1
- package/cjs/event/listener/scroll-bar.js +77 -6
- package/cjs/event/listener/scroll-bar.js.map +1 -1
- package/cjs/event/listener/table-group.js +53 -23
- package/cjs/event/listener/table-group.js.map +1 -1
- package/cjs/event/media-click.js +1 -1
- package/cjs/event/scroll.js +35 -12
- package/cjs/event/scroll.js.map +1 -1
- package/cjs/event/sparkline-event.js +1 -1
- package/cjs/event/util.d.ts +2 -0
- package/cjs/event/util.js +29 -4
- package/cjs/event/util.js.map +1 -1
- package/cjs/header-helper/header-helper.js +2 -2
- package/cjs/header-helper/header-helper.js.map +1 -1
- package/cjs/header-helper/style.js +2 -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 -5
- package/cjs/layout/cell-range/simple-cell-range.js.map +1 -1
- package/cjs/plugins/index.js +1 -1
- package/cjs/plugins/interface.js +1 -1
- package/cjs/plugins/invert-highlight.js +1 -1
- package/cjs/plugins/list-tree-stick-cell.js +1 -1
- package/cjs/plugins/plugin-manager.js +1 -1
- package/cjs/scenegraph/component/table-component.d.ts +6 -1
- package/cjs/scenegraph/component/table-component.js +143 -17
- package/cjs/scenegraph/component/table-component.js.map +1 -1
- package/cjs/scenegraph/component/util.js +5 -2
- package/cjs/scenegraph/component/util.js.map +1 -1
- package/cjs/scenegraph/graphic/contributions/group-contribution-render.js +29 -10
- package/cjs/scenegraph/graphic/contributions/group-contribution-render.js.map +1 -1
- package/cjs/scenegraph/group-creater/cell-helper.js +7 -4
- package/cjs/scenegraph/group-creater/cell-helper.js.map +1 -1
- package/cjs/scenegraph/group-creater/init-scenegraph.js +37 -7
- package/cjs/scenegraph/group-creater/init-scenegraph.js.map +1 -1
- package/cjs/scenegraph/group-creater/progress/proxy.js +4 -2
- package/cjs/scenegraph/group-creater/progress/proxy.js.map +1 -1
- package/cjs/scenegraph/scenegraph.d.ts +13 -0
- package/cjs/scenegraph/scenegraph.js +194 -23
- package/cjs/scenegraph/scenegraph.js.map +1 -1
- package/cjs/scenegraph/select/create-select-border.js +9 -10
- package/cjs/scenegraph/select/create-select-border.js.map +1 -1
- package/cjs/scenegraph/select/delete-select-border.js.map +1 -1
- package/cjs/scenegraph/select/move-select-border.js.map +1 -1
- package/cjs/scenegraph/select/update-custom-select-border.js +9 -9
- package/cjs/scenegraph/select/update-custom-select-border.js.map +1 -1
- package/cjs/scenegraph/select/update-select-border.js +27 -122
- package/cjs/scenegraph/select/update-select-border.js.map +1 -1
- package/cjs/scenegraph/select/update-select-style.js.map +1 -1
- package/cjs/state/select/update-position.js +2 -1
- package/cjs/state/select/update-position.js.map +1 -1
- package/cjs/state/state.d.ts +8 -1
- package/cjs/state/state.js +82 -40
- package/cjs/state/state.js.map +1 -1
- package/cjs/ts-types/base-table.d.ts +15 -0
- package/cjs/ts-types/base-table.js.map +1 -1
- package/cjs/ts-types/dataset/aggregation.js +94 -39
- package/cjs/ts-types/dataset/aggregation.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 +2381 -733
- package/dist/vtable.min.js +1 -15
- package/es/ListTable.d.ts +1 -0
- package/es/ListTable.js +178 -25
- package/es/ListTable.js.map +1 -1
- package/es/PivotChart.js +2 -2
- package/es/PivotChart.js.map +1 -1
- package/es/PivotTable.d.ts +1 -0
- package/es/PivotTable.js +93 -15
- package/es/PivotTable.js.map +1 -1
- package/es/core/BaseTable.d.ts +14 -0
- package/es/core/BaseTable.js +148 -40
- 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/core/tableHelper.js +5 -3
- package/es/core/tableHelper.js.map +1 -1
- package/es/core/utils/get-cell-position.js +23 -12
- package/es/core/utils/get-cell-position.js.map +1 -1
- package/es/data/DataSource.js +3 -2
- package/es/data/DataSource.js.map +1 -1
- package/es/dataset/dataset.js +5 -1
- package/es/dataset/dataset.js.map +1 -1
- package/es/edit/edit-manager.js +22 -16
- package/es/edit/edit-manager.js.map +1 -1
- package/es/event/EventTarget.js +3 -1
- package/es/event/EventTarget.js.map +1 -1
- package/es/event/helper.js +1 -1
- package/es/event/listener/container-dom.js +10 -5
- package/es/event/listener/container-dom.js.map +1 -1
- package/es/event/listener/scroll-bar.js +75 -6
- package/es/event/listener/scroll-bar.js.map +1 -1
- package/es/event/listener/table-group.js +53 -24
- package/es/event/listener/table-group.js.map +1 -1
- package/es/event/media-click.js +1 -1
- package/es/event/scroll.js +35 -12
- package/es/event/scroll.js.map +1 -1
- package/es/event/sparkline-event.js +1 -1
- package/es/event/util.d.ts +2 -0
- package/es/event/util.js +25 -1
- package/es/event/util.js.map +1 -1
- package/es/header-helper/header-helper.js +2 -2
- package/es/header-helper/header-helper.js.map +1 -1
- package/es/header-helper/style.js +2 -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 -5
- package/es/layout/cell-range/simple-cell-range.js.map +1 -1
- package/es/plugins/index.js +1 -1
- package/es/plugins/interface.js +1 -1
- package/es/plugins/invert-highlight.js +1 -1
- package/es/plugins/list-tree-stick-cell.js +1 -1
- package/es/plugins/plugin-manager.js +1 -1
- package/es/scenegraph/component/table-component.d.ts +6 -1
- package/es/scenegraph/component/table-component.js +141 -17
- package/es/scenegraph/component/table-component.js.map +1 -1
- package/es/scenegraph/component/util.js +5 -2
- package/es/scenegraph/component/util.js.map +1 -1
- package/es/scenegraph/graphic/contributions/group-contribution-render.js +29 -10
- package/es/scenegraph/graphic/contributions/group-contribution-render.js.map +1 -1
- package/es/scenegraph/group-creater/cell-helper.js +7 -4
- package/es/scenegraph/group-creater/cell-helper.js.map +1 -1
- package/es/scenegraph/group-creater/init-scenegraph.js +37 -7
- package/es/scenegraph/group-creater/init-scenegraph.js.map +1 -1
- package/es/scenegraph/group-creater/progress/proxy.js +4 -2
- package/es/scenegraph/group-creater/progress/proxy.js.map +1 -1
- package/es/scenegraph/scenegraph.d.ts +13 -0
- package/es/scenegraph/scenegraph.js +185 -18
- package/es/scenegraph/scenegraph.js.map +1 -1
- package/es/scenegraph/select/create-select-border.js +9 -10
- package/es/scenegraph/select/create-select-border.js.map +1 -1
- package/es/scenegraph/select/delete-select-border.js.map +1 -1
- package/es/scenegraph/select/move-select-border.js.map +1 -1
- package/es/scenegraph/select/update-custom-select-border.js +9 -9
- package/es/scenegraph/select/update-custom-select-border.js.map +1 -1
- package/es/scenegraph/select/update-select-border.js +25 -118
- package/es/scenegraph/select/update-select-border.js.map +1 -1
- package/es/scenegraph/select/update-select-style.js.map +1 -1
- package/es/state/select/update-position.js +3 -0
- package/es/state/select/update-position.js.map +1 -1
- package/es/state/state.d.ts +8 -1
- package/es/state/state.js +81 -40
- package/es/state/state.js.map +1 -1
- package/es/ts-types/base-table.d.ts +15 -0
- package/es/ts-types/base-table.js.map +1 -1
- package/es/ts-types/dataset/aggregation.js +68 -38
- package/es/ts-types/dataset/aggregation.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 +12 -11
package/cjs/ListTable.d.ts
CHANGED
|
@@ -71,6 +71,7 @@ export declare class ListTable extends BaseTable implements ListTableAPI {
|
|
|
71
71
|
updateSortState(sortState: SortState[] | SortState | null, executeSort?: boolean): void;
|
|
72
72
|
updateFilterRules(filterRules: FilterRules, options?: {
|
|
73
73
|
clearRowHeightCache?: boolean;
|
|
74
|
+
clearForceVisibleRecords?: boolean;
|
|
74
75
|
onFilterRecordsEnd?: (records: any[]) => any[];
|
|
75
76
|
}): void;
|
|
76
77
|
getFilteredRecords(): any[];
|
package/cjs/ListTable.js
CHANGED
|
@@ -120,10 +120,32 @@ class ListTable extends core_1.BaseTable {
|
|
|
120
120
|
this.renderAsync(), this.eventManager.updateEventBinder();
|
|
121
121
|
}
|
|
122
122
|
addColumns(toAddColumns, colIndex, isMaintainArrayData = !0) {
|
|
123
|
-
var _a;
|
|
123
|
+
var _a, _b;
|
|
124
124
|
const columns = this.options.columns;
|
|
125
|
+
if (Array.isArray(this.options.customMergeCell) && (null == toAddColumns ? void 0 : toAddColumns.length)) {
|
|
126
|
+
const axis = this.transpose ? "row" : "col";
|
|
127
|
+
let insertIndex = colIndex;
|
|
128
|
+
void 0 === insertIndex ? insertIndex = columns.length : insertIndex < 0 ? insertIndex = 0 : insertIndex > columns.length && (insertIndex = columns.length);
|
|
129
|
+
const toAddCount = toAddColumns.length, merges = this.options.customMergeCell.map((m => Object.assign(Object.assign({}, m), {
|
|
130
|
+
range: {
|
|
131
|
+
start: Object.assign({}, m.range.start),
|
|
132
|
+
end: Object.assign({}, m.range.end)
|
|
133
|
+
}
|
|
134
|
+
})));
|
|
135
|
+
for (let i = 0; i < merges.length; i++) {
|
|
136
|
+
const r = null === (_a = merges[i]) || void 0 === _a ? void 0 : _a.range;
|
|
137
|
+
if (!(null == r ? void 0 : r.start) || !(null == r ? void 0 : r.end)) continue;
|
|
138
|
+
const start = r.start[axis], end = r.end[axis];
|
|
139
|
+
end < insertIndex || (start > insertIndex ? (r.start[axis] = start + toAddCount,
|
|
140
|
+
r.end[axis] = end + toAddCount) : r.end[axis] = end + toAddCount);
|
|
141
|
+
}
|
|
142
|
+
this.options.customMergeCell = merges.filter((m => {
|
|
143
|
+
const r = null == m ? void 0 : m.range;
|
|
144
|
+
return !(!(null == r ? void 0 : r.start) || !(null == r ? void 0 : r.end)) && (!(r.end.row < r.start.row || r.end.col < r.start.col) && !(r.start.row === r.end.row && r.start.col === r.end.col));
|
|
145
|
+
})), this.internalProps.customMergeCell = (0, get_custom_merge_cell_func_1.getCustomMergeCellFunc)(this.options.customMergeCell);
|
|
146
|
+
}
|
|
125
147
|
void 0 === colIndex ? (colIndex = columns.length, columns.push(...toAddColumns)) : columns.splice(colIndex, 0, ...toAddColumns);
|
|
126
|
-
for (let i = 0; i < toAddColumns.length; i++) this.colWidthsMap.addAndReorder(colIndex + i, null !== (
|
|
148
|
+
for (let i = 0; i < toAddColumns.length; i++) this.colWidthsMap.addAndReorder(colIndex + i, null !== (_b = toAddColumns[i].width) && void 0 !== _b ? _b : this.internalProps.defaultColWidth);
|
|
127
149
|
this.internalProps._colRangeWidthsMap.clear();
|
|
128
150
|
const resizedColIndexs = Array.from(this.internalProps._widthResizedColMap.keys());
|
|
129
151
|
for (let i = 0; i < resizedColIndexs.length; i++) resizedColIndexs[i] >= colIndex && (this.internalProps._widthResizedColMap.delete(resizedColIndexs[i]),
|
|
@@ -137,15 +159,46 @@ class ListTable extends core_1.BaseTable {
|
|
|
137
159
|
}
|
|
138
160
|
this.updateColumns(columns, {
|
|
139
161
|
clearRowHeightCache: !1
|
|
140
|
-
}), this.
|
|
162
|
+
}), Array.isArray(this.options.customMergeCell) && (this.internalProps.customMergeCell = (0,
|
|
163
|
+
get_custom_merge_cell_func_1.getCustomMergeCellFunc)(this.options.customMergeCell),
|
|
164
|
+
this.options.customMergeCell.forEach((m => {
|
|
165
|
+
const r = null == m ? void 0 : m.range;
|
|
166
|
+
if (null == r ? void 0 : r.start) for (let col = r.start.col; col <= r.end.col; col++) for (let row = r.start.row; row <= r.end.row; row++) this.scenegraph.updateCellContent(col, row);
|
|
167
|
+
})), this.scenegraph.updateNextFrame()), this.fireListeners(TABLE_EVENT_TYPE_1.TABLE_EVENT_TYPE.ADD_COLUMN, {
|
|
141
168
|
columnIndex: colIndex,
|
|
142
169
|
columnCount: toAddColumns.length,
|
|
143
170
|
columns: columns
|
|
144
171
|
});
|
|
145
172
|
}
|
|
146
173
|
deleteColumns(deleteColIndexs, isMaintainArrayData = !0) {
|
|
174
|
+
var _a;
|
|
147
175
|
const columns = this.options.columns;
|
|
148
176
|
deleteColIndexs.sort(((a, b) => b - a));
|
|
177
|
+
const deletedColumns = deleteColIndexs.map((idx => (0, vutils_extension_1.cloneDeepSpec)(columns[idx], [ "children" ])));
|
|
178
|
+
let deletedRecordValues;
|
|
179
|
+
if (Array.isArray(this.options.customMergeCell) && (null == deleteColIndexs ? void 0 : deleteColIndexs.length)) {
|
|
180
|
+
const axis = this.transpose ? "row" : "col", deleteIndexNums = deleteColIndexs.slice().sort(((a, b) => a - b)).map(((idx, i) => idx - i)), merges = this.options.customMergeCell.map((m => Object.assign(Object.assign({}, m), {
|
|
181
|
+
range: {
|
|
182
|
+
start: Object.assign({}, m.range.start),
|
|
183
|
+
end: Object.assign({}, m.range.end)
|
|
184
|
+
}
|
|
185
|
+
})));
|
|
186
|
+
for (let i = 0; i < deleteIndexNums.length; i++) {
|
|
187
|
+
const deleteIndex = deleteIndexNums[i];
|
|
188
|
+
for (let j = 0; j < merges.length; j++) {
|
|
189
|
+
const r = null === (_a = merges[j]) || void 0 === _a ? void 0 : _a.range;
|
|
190
|
+
if (!(null == r ? void 0 : r.start) || !(null == r ? void 0 : r.end)) continue;
|
|
191
|
+
const start = r.start[axis], end = r.end[axis];
|
|
192
|
+
end < deleteIndex || (start > deleteIndex ? (r.start[axis] = start - 1, r.end[axis] = end - 1) : r.end[axis] = end - 1);
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
this.options.customMergeCell = merges.filter((m => {
|
|
196
|
+
const r = null == m ? void 0 : m.range;
|
|
197
|
+
return !(!(null == r ? void 0 : r.start) || !(null == r ? void 0 : r.end)) && (!(r.end.row < r.start.row || r.end.col < r.start.col) && !(r.start.row === r.end.row && r.start.col === r.end.col));
|
|
198
|
+
})), this.internalProps.customMergeCell = (0, get_custom_merge_cell_func_1.getCustomMergeCellFunc)(this.options.customMergeCell);
|
|
199
|
+
}
|
|
200
|
+
isMaintainArrayData && Array.isArray(this.records) && this.records.length && (deletedRecordValues = this.records.map((record => Array.isArray(record) ? deleteColIndexs.map((idx => record[idx])) : [])),
|
|
201
|
+
deletedRecordValues.every((v => 0 === v.length)) && (deletedRecordValues = void 0));
|
|
149
202
|
for (let i = 0; i < deleteColIndexs.length; i++) if (columns.splice(deleteColIndexs[i], 1),
|
|
150
203
|
this.colWidthsMap.delAndReorder(deleteColIndexs[i]), this.internalProps._widthResizedColMap.delete(deleteColIndexs[i]),
|
|
151
204
|
isMaintainArrayData) for (let j = 0; j < this.records.length; j++) {
|
|
@@ -163,7 +216,9 @@ class ListTable extends core_1.BaseTable {
|
|
|
163
216
|
clearRowHeightCache: !1
|
|
164
217
|
}), this.fireListeners(TABLE_EVENT_TYPE_1.TABLE_EVENT_TYPE.DELETE_COLUMN, {
|
|
165
218
|
deleteColIndexs: deleteColIndexs,
|
|
166
|
-
columns: columns
|
|
219
|
+
columns: columns,
|
|
220
|
+
deletedColumns: deletedColumns,
|
|
221
|
+
deletedRecordValues: deletedRecordValues
|
|
167
222
|
});
|
|
168
223
|
}
|
|
169
224
|
get columns() {
|
|
@@ -549,10 +604,10 @@ class ListTable extends core_1.BaseTable {
|
|
|
549
604
|
}
|
|
550
605
|
}
|
|
551
606
|
updateSortState(sortState, executeSort = !0) {
|
|
552
|
-
var _a;
|
|
553
|
-
|
|
554
|
-
sortState = this.internalProps.sortState
|
|
555
|
-
|
|
607
|
+
var _a, _b, _c, _d, _e;
|
|
608
|
+
const normalizedSortState = (Array.isArray(sortState) ? sortState : sortState ? [ sortState ] : []).filter(Boolean);
|
|
609
|
+
if (normalizedSortState.length ? this.internalProps.sortState = sortState : this.internalProps.sortState = null,
|
|
610
|
+
executeSort) if (normalizedSortState.length) this.internalProps.layoutMap.headerObjects.some((item => !1 !== item.define.sort)) && (this.dataSource.sort(normalizedSortState.map((item => {
|
|
556
611
|
const sortFunc = this._getSortFuncFromHeaderOption(this.internalProps.columns, item.field);
|
|
557
612
|
this.internalProps.layoutMap.headerObjects.find((col => col && col.field === item.field));
|
|
558
613
|
return {
|
|
@@ -561,13 +616,22 @@ class ListTable extends core_1.BaseTable {
|
|
|
561
616
|
orderFn: null != sortFunc ? sortFunc : util_1.defaultOrderFn
|
|
562
617
|
};
|
|
563
618
|
}))), this.internalProps.layoutMap.clearCellRangeMap(), this.internalProps.useOneRowHeightFillAll = !1,
|
|
564
|
-
this.scenegraph.sortCell())
|
|
619
|
+
this.scenegraph.sortCell()); else {
|
|
620
|
+
const ds = this.dataSource, sourceLength = null !== (_c = null !== (_b = null !== (_a = null == ds ? void 0 : ds.sourceLength) && void 0 !== _a ? _a : null == ds ? void 0 : ds._sourceLength) && void 0 !== _b ? _b : null == ds ? void 0 : ds.length) && void 0 !== _c ? _c : 0;
|
|
621
|
+
(null === (_d = null == ds ? void 0 : ds.sortedIndexMap) || void 0 === _d ? void 0 : _d.clear) && ds.sortedIndexMap.clear(),
|
|
622
|
+
void 0 !== ds.currentIndexedData && (ds.currentIndexedData = Array.from({
|
|
623
|
+
length: sourceLength
|
|
624
|
+
}, ((_, i) => i))), ds.lastSortStates = [], null === (_e = ds.updatePagination) || void 0 === _e || _e.call(ds, ds.pagination),
|
|
625
|
+
this.internalProps.layoutMap.clearCellRangeMap(), this.internalProps.useOneRowHeightFillAll = !1,
|
|
626
|
+
this.scenegraph.sortCell();
|
|
627
|
+
}
|
|
628
|
+
this.stateManager.updateSortState(normalizedSortState);
|
|
565
629
|
}
|
|
566
630
|
updateFilterRules(filterRules, options = {
|
|
567
631
|
clearRowHeightCache: !0
|
|
568
632
|
}) {
|
|
569
633
|
var _a, _b, _c;
|
|
570
|
-
this.scenegraph.clearCells(), null === (_b = (_a = this.dataSource).clearForceVisibleRecords) || void 0 === _b || _b.call(_a),
|
|
634
|
+
this.scenegraph.clearCells(), !1 !== (null == options ? void 0 : options.clearForceVisibleRecords) && (null === (_b = (_a = this.dataSource).clearForceVisibleRecords) || void 0 === _b || _b.call(_a)),
|
|
571
635
|
this.sortState ? (this.dataSource.updateFilterRulesForSorted(filterRules), (0, record_helper_1.sortRecords)(this)) : this.dataSource.updateFilterRules(filterRules, null == options ? void 0 : options.onFilterRecordsEnd),
|
|
572
636
|
this.refreshRowColCount(), this.stateManager.initCheckedState(this.records), this.scenegraph.createSceneGraph(!(null == options ? void 0 : options.clearRowHeightCache)),
|
|
573
637
|
null === (_c = this.internalProps.emptyTip) || void 0 === _c || _c.resetVisible(),
|
|
@@ -625,7 +689,8 @@ class ListTable extends core_1.BaseTable {
|
|
|
625
689
|
setRecords(records, option) {
|
|
626
690
|
var _a, _b, _c, _d, _e;
|
|
627
691
|
let sort;
|
|
628
|
-
|
|
692
|
+
this.stateManager.endResizeIfResizing(), (0, chart_render_helper_1.clearChartRenderQueue)(),
|
|
693
|
+
null === (_a = this.internalProps.dataSource) || void 0 === _a || _a.release(),
|
|
629
694
|
this.internalProps.releaseList = null === (_b = this.internalProps.releaseList) || void 0 === _b ? void 0 : _b.filter((item => !item.dataSourceObj)),
|
|
630
695
|
this.internalProps.dataSource = null, Array.isArray(option) || (null == option ? void 0 : option.order) ? sort = option : option ? sort = option.sortState : null === option && (sort = null);
|
|
631
696
|
"undefined" != typeof window && window.performance.now();
|
|
@@ -845,35 +910,107 @@ class ListTable extends core_1.BaseTable {
|
|
|
845
910
|
this.resize();
|
|
846
911
|
}
|
|
847
912
|
addRecord(record, recordIndex, triggerEvent = !0) {
|
|
848
|
-
var _a;
|
|
913
|
+
var _a, _b;
|
|
914
|
+
if (Array.isArray(this.options.customMergeCell) && "number" == typeof recordIndex) {
|
|
915
|
+
const axis = this.transpose ? "col" : "row", headerCount = this.transpose ? this.rowHeaderLevelCount : this.columnHeaderLevelCount, topAggregationCount = this.internalProps.layoutMap.hasAggregationOnTopCount;
|
|
916
|
+
let insertIndex = recordIndex;
|
|
917
|
+
void 0 === insertIndex || insertIndex > this.dataSource.sourceLength ? insertIndex = this.dataSource.sourceLength : insertIndex < 0 && (insertIndex = 0);
|
|
918
|
+
const insertIndexNum = insertIndex + headerCount + topAggregationCount, merges = this.options.customMergeCell.map((m => Object.assign(Object.assign({}, m), {
|
|
919
|
+
range: {
|
|
920
|
+
start: Object.assign({}, m.range.start),
|
|
921
|
+
end: Object.assign({}, m.range.end)
|
|
922
|
+
}
|
|
923
|
+
})));
|
|
924
|
+
for (let i = 0; i < merges.length; i++) {
|
|
925
|
+
const r = null === (_a = merges[i]) || void 0 === _a ? void 0 : _a.range;
|
|
926
|
+
if (!(null == r ? void 0 : r.start) || !(null == r ? void 0 : r.end)) continue;
|
|
927
|
+
const start = r.start[axis], end = r.end[axis];
|
|
928
|
+
end < insertIndexNum || (start > insertIndexNum ? (r.start[axis] = start + 1, r.end[axis] = end + 1) : r.end[axis] = end + 1);
|
|
929
|
+
}
|
|
930
|
+
this.options.customMergeCell = merges.filter((m => {
|
|
931
|
+
const r = null == m ? void 0 : m.range;
|
|
932
|
+
return !(!(null == r ? void 0 : r.start) || !(null == r ? void 0 : r.end)) && (!(r.end.row < r.start.row || r.end.col < r.start.col) && !(r.start.row === r.end.row && r.start.col === r.end.col));
|
|
933
|
+
})), this.internalProps.customMergeCell = (0, get_custom_merge_cell_func_1.getCustomMergeCellFunc)(this.options.customMergeCell);
|
|
934
|
+
}
|
|
849
935
|
const success = (0, record_helper_1.listTableAddRecord)(record, recordIndex, this);
|
|
850
936
|
(0, adjust_header_1.adjustHeightResizedRowMapWithAddRecordIndex)(this, recordIndex, [ record ]),
|
|
851
|
-
null === (
|
|
852
|
-
|
|
937
|
+
null === (_b = this.internalProps.emptyTip) || void 0 === _b || _b.resetVisible(),
|
|
938
|
+
success && Array.isArray(this.options.customMergeCell) && (this.internalProps.customMergeCell = (0,
|
|
939
|
+
get_custom_merge_cell_func_1.getCustomMergeCellFunc)(this.options.customMergeCell),
|
|
940
|
+
this.options.customMergeCell.forEach((m => {
|
|
941
|
+
const r = null == m ? void 0 : m.range;
|
|
942
|
+
if (null == r ? void 0 : r.start) for (let col = r.start.col; col <= r.end.col; col++) for (let row = r.start.row; row <= r.end.row; row++) this.scenegraph.updateCellContent(col, row);
|
|
943
|
+
})), this.scenegraph.updateNextFrame()), triggerEvent && success && this.fireListeners(TABLE_EVENT_TYPE_1.TABLE_EVENT_TYPE.ADD_RECORD, {
|
|
853
944
|
records: [ record ],
|
|
854
945
|
recordIndex: recordIndex,
|
|
855
946
|
recordCount: 1
|
|
856
947
|
});
|
|
857
948
|
}
|
|
858
949
|
addRecords(records, recordIndex, triggerEvent = !0) {
|
|
859
|
-
var _a;
|
|
950
|
+
var _a, _b;
|
|
951
|
+
if (Array.isArray(this.options.customMergeCell) && "number" == typeof recordIndex && (null == records ? void 0 : records.length)) {
|
|
952
|
+
const axis = this.transpose ? "col" : "row", headerCount = this.transpose ? this.rowHeaderLevelCount : this.columnHeaderLevelCount, topAggregationCount = this.internalProps.layoutMap.hasAggregationOnTopCount;
|
|
953
|
+
let insertIndex = recordIndex;
|
|
954
|
+
void 0 === insertIndex || insertIndex > this.dataSource.sourceLength ? insertIndex = this.dataSource.sourceLength : insertIndex < 0 && (insertIndex = 0);
|
|
955
|
+
const insertIndexNum = insertIndex + headerCount + topAggregationCount, toAddCount = records.length, merges = this.options.customMergeCell.map((m => Object.assign(Object.assign({}, m), {
|
|
956
|
+
range: {
|
|
957
|
+
start: Object.assign({}, m.range.start),
|
|
958
|
+
end: Object.assign({}, m.range.end)
|
|
959
|
+
}
|
|
960
|
+
})));
|
|
961
|
+
for (let i = 0; i < merges.length; i++) {
|
|
962
|
+
const r = null === (_a = merges[i]) || void 0 === _a ? void 0 : _a.range;
|
|
963
|
+
if (!(null == r ? void 0 : r.start) || !(null == r ? void 0 : r.end)) continue;
|
|
964
|
+
const start = r.start[axis], end = r.end[axis];
|
|
965
|
+
end < insertIndexNum || (start > insertIndexNum ? (r.start[axis] = start + toAddCount,
|
|
966
|
+
r.end[axis] = end + toAddCount) : r.end[axis] = end + toAddCount);
|
|
967
|
+
}
|
|
968
|
+
this.options.customMergeCell = merges.filter((m => {
|
|
969
|
+
const r = null == m ? void 0 : m.range;
|
|
970
|
+
return !(!(null == r ? void 0 : r.start) || !(null == r ? void 0 : r.end)) && (!(r.end.row < r.start.row || r.end.col < r.start.col) && !(r.start.row === r.end.row && r.start.col === r.end.col));
|
|
971
|
+
})), this.internalProps.customMergeCell = (0, get_custom_merge_cell_func_1.getCustomMergeCellFunc)(this.options.customMergeCell);
|
|
972
|
+
}
|
|
860
973
|
const success = (0, record_helper_1.listTableAddRecords)(records, recordIndex, this);
|
|
861
974
|
"number" == typeof recordIndex && (0, adjust_header_1.adjustHeightResizedRowMapWithAddRecordIndex)(this, recordIndex, records),
|
|
862
|
-
null === (
|
|
863
|
-
|
|
975
|
+
null === (_b = this.internalProps.emptyTip) || void 0 === _b || _b.resetVisible(),
|
|
976
|
+
success && Array.isArray(this.options.customMergeCell) && (this.internalProps.customMergeCell = (0,
|
|
977
|
+
get_custom_merge_cell_func_1.getCustomMergeCellFunc)(this.options.customMergeCell),
|
|
978
|
+
this.options.customMergeCell.forEach((m => {
|
|
979
|
+
const r = null == m ? void 0 : m.range;
|
|
980
|
+
if (null == r ? void 0 : r.start) for (let col = r.start.col; col <= r.end.col; col++) for (let row = r.start.row; row <= r.end.row; row++) this.scenegraph.updateCellContent(col, row);
|
|
981
|
+
})), this.scenegraph.updateNextFrame()), triggerEvent && success && this.fireListeners(TABLE_EVENT_TYPE_1.TABLE_EVENT_TYPE.ADD_RECORD, {
|
|
864
982
|
records: records,
|
|
865
983
|
recordIndex: recordIndex,
|
|
866
984
|
recordCount: records.length
|
|
867
985
|
});
|
|
868
986
|
}
|
|
869
987
|
deleteRecords(recordIndexs, triggerEvent = !0) {
|
|
870
|
-
var _a;
|
|
871
|
-
const
|
|
872
|
-
|
|
988
|
+
var _a, _b;
|
|
989
|
+
const prevMergeRanges = Array.isArray(this.options.customMergeCell) ? this.options.customMergeCell.map((m => null == m ? void 0 : m.range)).filter(Boolean).map((r => ({
|
|
990
|
+
start: Object.assign({}, r.start),
|
|
991
|
+
end: Object.assign({}, r.end)
|
|
992
|
+
}))) : [], deletedRecords = [];
|
|
993
|
+
if ((null == recordIndexs ? void 0 : recordIndexs.length) > 0 && recordIndexs.forEach((index => {
|
|
873
994
|
let record = null;
|
|
874
995
|
record = "number" == typeof index ? this.dataSource.get(index) : [], deletedRecords.push(record);
|
|
875
|
-
})), (
|
|
876
|
-
|
|
996
|
+
})), Array.isArray(this.options.customMergeCell) && (null == recordIndexs ? void 0 : recordIndexs.length) && "number" == typeof recordIndexs[0]) {
|
|
997
|
+
const axis = this.transpose ? "col" : "row", headerCount = this.transpose ? this.rowHeaderLevelCount : this.columnHeaderLevelCount, topAggregationCount = this.internalProps.layoutMap.hasAggregationOnTopCount, deleteIndexNums = recordIndexs.slice().sort(((a, b) => a - b)).map(((index, i) => index + headerCount + topAggregationCount - i)), merges = this.options.customMergeCell;
|
|
998
|
+
for (let i = 0; i < deleteIndexNums.length; i++) {
|
|
999
|
+
const deleteIndex = deleteIndexNums[i];
|
|
1000
|
+
for (let j = 0; j < merges.length; j++) {
|
|
1001
|
+
const r = null === (_a = merges[j]) || void 0 === _a ? void 0 : _a.range;
|
|
1002
|
+
if (!(null == r ? void 0 : r.start) || !(null == r ? void 0 : r.end)) continue;
|
|
1003
|
+
const start = r.start[axis], end = r.end[axis];
|
|
1004
|
+
end < deleteIndex || (start > deleteIndex ? (r.start[axis] = start - 1, r.end[axis] = end - 1) : r.end[axis] = end - 1);
|
|
1005
|
+
}
|
|
1006
|
+
}
|
|
1007
|
+
this.options.customMergeCell = merges.filter((m => {
|
|
1008
|
+
const r = null == m ? void 0 : m.range;
|
|
1009
|
+
return !(!(null == r ? void 0 : r.start) || !(null == r ? void 0 : r.end)) && (!(r.end.row < r.start.row || r.end.col < r.start.col) && !(r.start.row === r.end.row && r.start.col === r.end.col));
|
|
1010
|
+
}));
|
|
1011
|
+
}
|
|
1012
|
+
(0, record_helper_1.listTableDeleteRecords)(recordIndexs, this), (0, adjust_header_1.adjustHeightResizedRowMapWithDeleteRecordIndex)(this, recordIndexs),
|
|
1013
|
+
null === (_b = this.internalProps.emptyTip) || void 0 === _b || _b.resetVisible();
|
|
877
1014
|
const rowIndexs = [];
|
|
878
1015
|
for (let i = 0; i < recordIndexs.length; i++) rowIndexs.push(this.getBodyRowIndexByRecordIndex(recordIndexs[i]) + this.columnHeaderLevelCount);
|
|
879
1016
|
triggerEvent && this.fireListeners(TABLE_EVENT_TYPE_1.TABLE_EVENT_TYPE.DELETE_RECORD, {
|
|
@@ -881,7 +1018,19 @@ class ListTable extends core_1.BaseTable {
|
|
|
881
1018
|
records: deletedRecords,
|
|
882
1019
|
rowIndexs: rowIndexs,
|
|
883
1020
|
deletedCount: (Array.isArray(recordIndexs[0]), recordIndexs.length)
|
|
884
|
-
})
|
|
1021
|
+
}), Array.isArray(this.options.customMergeCell) && (this.internalProps.customMergeCell = (0,
|
|
1022
|
+
get_custom_merge_cell_func_1.getCustomMergeCellFunc)(this.options.customMergeCell),
|
|
1023
|
+
this.options.customMergeCell.forEach((m => {
|
|
1024
|
+
const r = null == m ? void 0 : m.range;
|
|
1025
|
+
if (null == r ? void 0 : r.start) for (let col = r.start.col; col <= r.end.col; col++) for (let row = r.start.row; row <= r.end.row; row++) this.scenegraph.updateCellContent(col, row);
|
|
1026
|
+
})), this.scenegraph.updateNextFrame(), setTimeout((() => {
|
|
1027
|
+
if (!this.internalProps || !this.options || !this.scenegraph) return;
|
|
1028
|
+
Array.isArray(this.options.customMergeCell) && (this.internalProps.customMergeCell = (0,
|
|
1029
|
+
get_custom_merge_cell_func_1.getCustomMergeCellFunc)(this.options.customMergeCell));
|
|
1030
|
+
[ ...prevMergeRanges, ...Array.isArray(this.options.customMergeCell) ? this.options.customMergeCell.map((m => null == m ? void 0 : m.range)) : [] ].filter(Boolean).forEach((r => {
|
|
1031
|
+
if (null == r ? void 0 : r.start) for (let col = r.start.col; col <= r.end.col; col++) for (let row = r.start.row; row <= r.end.row; row++) this.scenegraph.updateCellContent(col, row);
|
|
1032
|
+
})), this.scenegraph.updateNextFrame();
|
|
1033
|
+
}), 0));
|
|
885
1034
|
}
|
|
886
1035
|
updateRecords(records, recordIndexs, triggerEvent = !0) {
|
|
887
1036
|
(0, record_helper_1.listTableUpdateRecords)(records, recordIndexs, this), triggerEvent && this.fireListeners(TABLE_EVENT_TYPE_1.TABLE_EVENT_TYPE.UPDATE_RECORD, {
|
|
@@ -985,7 +1134,12 @@ class ListTable extends core_1.BaseTable {
|
|
|
985
1134
|
}
|
|
986
1135
|
}), this.internalProps.customMergeCell = (0, get_custom_merge_cell_func_1.getCustomMergeCellFunc)(this.options.customMergeCell);
|
|
987
1136
|
for (let i = startCol; i <= endCol; i++) for (let j = startRow; j <= endRow; j++) this.scenegraph.updateCellContent(i, j);
|
|
988
|
-
this.scenegraph.updateNextFrame()
|
|
1137
|
+
this.scenegraph.updateNextFrame(), this.fireListeners(TABLE_EVENT_TYPE_1.TABLE_EVENT_TYPE.MERGE_CELLS, {
|
|
1138
|
+
startCol: startCol,
|
|
1139
|
+
startRow: startRow,
|
|
1140
|
+
endCol: endCol,
|
|
1141
|
+
endRow: endRow
|
|
1142
|
+
});
|
|
989
1143
|
}
|
|
990
1144
|
unmergeCells(startCol, startRow, endCol, endRow) {
|
|
991
1145
|
this.options.customMergeCell ? "function" == typeof this.options.customMergeCell && (this.options.customMergeCell = []) : this.options.customMergeCell = [],
|
|
@@ -994,7 +1148,12 @@ class ListTable extends core_1.BaseTable {
|
|
|
994
1148
|
return !(start.col === startCol && start.row === startRow && end.col === endCol && end.row === endRow);
|
|
995
1149
|
})), this.internalProps.customMergeCell = (0, get_custom_merge_cell_func_1.getCustomMergeCellFunc)(this.options.customMergeCell);
|
|
996
1150
|
for (let i = startCol; i <= endCol; i++) for (let j = startRow; j <= endRow; j++) this.scenegraph.updateCellContent(i, j);
|
|
997
|
-
this.scenegraph.updateNextFrame()
|
|
1151
|
+
this.scenegraph.updateNextFrame(), this.fireListeners(TABLE_EVENT_TYPE_1.TABLE_EVENT_TYPE.UNMERGE_CELLS, {
|
|
1152
|
+
startCol: startCol,
|
|
1153
|
+
startRow: startRow,
|
|
1154
|
+
endCol: endCol,
|
|
1155
|
+
endRow: endRow
|
|
1156
|
+
});
|
|
998
1157
|
}
|
|
999
1158
|
}
|
|
1000
1159
|
|