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/es/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/es/ListTable.js
CHANGED
|
@@ -130,10 +130,32 @@ export class ListTable extends BaseTable {
|
|
|
130
130
|
this.renderAsync(), this.eventManager.updateEventBinder();
|
|
131
131
|
}
|
|
132
132
|
addColumns(toAddColumns, colIndex, isMaintainArrayData = !0) {
|
|
133
|
-
var _a;
|
|
133
|
+
var _a, _b;
|
|
134
134
|
const columns = this.options.columns;
|
|
135
|
+
if (Array.isArray(this.options.customMergeCell) && (null == toAddColumns ? void 0 : toAddColumns.length)) {
|
|
136
|
+
const axis = this.transpose ? "row" : "col";
|
|
137
|
+
let insertIndex = colIndex;
|
|
138
|
+
void 0 === insertIndex ? insertIndex = columns.length : insertIndex < 0 ? insertIndex = 0 : insertIndex > columns.length && (insertIndex = columns.length);
|
|
139
|
+
const toAddCount = toAddColumns.length, merges = this.options.customMergeCell.map((m => Object.assign(Object.assign({}, m), {
|
|
140
|
+
range: {
|
|
141
|
+
start: Object.assign({}, m.range.start),
|
|
142
|
+
end: Object.assign({}, m.range.end)
|
|
143
|
+
}
|
|
144
|
+
})));
|
|
145
|
+
for (let i = 0; i < merges.length; i++) {
|
|
146
|
+
const r = null === (_a = merges[i]) || void 0 === _a ? void 0 : _a.range;
|
|
147
|
+
if (!(null == r ? void 0 : r.start) || !(null == r ? void 0 : r.end)) continue;
|
|
148
|
+
const start = r.start[axis], end = r.end[axis];
|
|
149
|
+
end < insertIndex || (start > insertIndex ? (r.start[axis] = start + toAddCount,
|
|
150
|
+
r.end[axis] = end + toAddCount) : r.end[axis] = end + toAddCount);
|
|
151
|
+
}
|
|
152
|
+
this.options.customMergeCell = merges.filter((m => {
|
|
153
|
+
const r = null == m ? void 0 : m.range;
|
|
154
|
+
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));
|
|
155
|
+
})), this.internalProps.customMergeCell = getCustomMergeCellFunc(this.options.customMergeCell);
|
|
156
|
+
}
|
|
135
157
|
void 0 === colIndex ? (colIndex = columns.length, columns.push(...toAddColumns)) : columns.splice(colIndex, 0, ...toAddColumns);
|
|
136
|
-
for (let i = 0; i < toAddColumns.length; i++) this.colWidthsMap.addAndReorder(colIndex + i, null !== (
|
|
158
|
+
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);
|
|
137
159
|
this.internalProps._colRangeWidthsMap.clear();
|
|
138
160
|
const resizedColIndexs = Array.from(this.internalProps._widthResizedColMap.keys());
|
|
139
161
|
for (let i = 0; i < resizedColIndexs.length; i++) resizedColIndexs[i] >= colIndex && (this.internalProps._widthResizedColMap.delete(resizedColIndexs[i]),
|
|
@@ -147,15 +169,45 @@ export class ListTable extends BaseTable {
|
|
|
147
169
|
}
|
|
148
170
|
this.updateColumns(columns, {
|
|
149
171
|
clearRowHeightCache: !1
|
|
150
|
-
}), this.
|
|
172
|
+
}), Array.isArray(this.options.customMergeCell) && (this.internalProps.customMergeCell = getCustomMergeCellFunc(this.options.customMergeCell),
|
|
173
|
+
this.options.customMergeCell.forEach((m => {
|
|
174
|
+
const r = null == m ? void 0 : m.range;
|
|
175
|
+
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);
|
|
176
|
+
})), this.scenegraph.updateNextFrame()), this.fireListeners(TABLE_EVENT_TYPE.ADD_COLUMN, {
|
|
151
177
|
columnIndex: colIndex,
|
|
152
178
|
columnCount: toAddColumns.length,
|
|
153
179
|
columns: columns
|
|
154
180
|
});
|
|
155
181
|
}
|
|
156
182
|
deleteColumns(deleteColIndexs, isMaintainArrayData = !0) {
|
|
183
|
+
var _a;
|
|
157
184
|
const columns = this.options.columns;
|
|
158
185
|
deleteColIndexs.sort(((a, b) => b - a));
|
|
186
|
+
const deletedColumns = deleteColIndexs.map((idx => cloneDeepSpec(columns[idx], [ "children" ])));
|
|
187
|
+
let deletedRecordValues;
|
|
188
|
+
if (Array.isArray(this.options.customMergeCell) && (null == deleteColIndexs ? void 0 : deleteColIndexs.length)) {
|
|
189
|
+
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), {
|
|
190
|
+
range: {
|
|
191
|
+
start: Object.assign({}, m.range.start),
|
|
192
|
+
end: Object.assign({}, m.range.end)
|
|
193
|
+
}
|
|
194
|
+
})));
|
|
195
|
+
for (let i = 0; i < deleteIndexNums.length; i++) {
|
|
196
|
+
const deleteIndex = deleteIndexNums[i];
|
|
197
|
+
for (let j = 0; j < merges.length; j++) {
|
|
198
|
+
const r = null === (_a = merges[j]) || void 0 === _a ? void 0 : _a.range;
|
|
199
|
+
if (!(null == r ? void 0 : r.start) || !(null == r ? void 0 : r.end)) continue;
|
|
200
|
+
const start = r.start[axis], end = r.end[axis];
|
|
201
|
+
end < deleteIndex || (start > deleteIndex ? (r.start[axis] = start - 1, r.end[axis] = end - 1) : r.end[axis] = end - 1);
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
this.options.customMergeCell = merges.filter((m => {
|
|
205
|
+
const r = null == m ? void 0 : m.range;
|
|
206
|
+
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));
|
|
207
|
+
})), this.internalProps.customMergeCell = getCustomMergeCellFunc(this.options.customMergeCell);
|
|
208
|
+
}
|
|
209
|
+
isMaintainArrayData && Array.isArray(this.records) && this.records.length && (deletedRecordValues = this.records.map((record => Array.isArray(record) ? deleteColIndexs.map((idx => record[idx])) : [])),
|
|
210
|
+
deletedRecordValues.every((v => 0 === v.length)) && (deletedRecordValues = void 0));
|
|
159
211
|
for (let i = 0; i < deleteColIndexs.length; i++) if (columns.splice(deleteColIndexs[i], 1),
|
|
160
212
|
this.colWidthsMap.delAndReorder(deleteColIndexs[i]), this.internalProps._widthResizedColMap.delete(deleteColIndexs[i]),
|
|
161
213
|
isMaintainArrayData) for (let j = 0; j < this.records.length; j++) {
|
|
@@ -173,7 +225,9 @@ export class ListTable extends BaseTable {
|
|
|
173
225
|
clearRowHeightCache: !1
|
|
174
226
|
}), this.fireListeners(TABLE_EVENT_TYPE.DELETE_COLUMN, {
|
|
175
227
|
deleteColIndexs: deleteColIndexs,
|
|
176
|
-
columns: columns
|
|
228
|
+
columns: columns,
|
|
229
|
+
deletedColumns: deletedColumns,
|
|
230
|
+
deletedRecordValues: deletedRecordValues
|
|
177
231
|
});
|
|
178
232
|
}
|
|
179
233
|
get columns() {
|
|
@@ -555,10 +609,10 @@ export class ListTable extends BaseTable {
|
|
|
555
609
|
}
|
|
556
610
|
}
|
|
557
611
|
updateSortState(sortState, executeSort = !0) {
|
|
558
|
-
var _a;
|
|
559
|
-
|
|
560
|
-
sortState = this.internalProps.sortState
|
|
561
|
-
|
|
612
|
+
var _a, _b, _c, _d, _e;
|
|
613
|
+
const normalizedSortState = (Array.isArray(sortState) ? sortState : sortState ? [ sortState ] : []).filter(Boolean);
|
|
614
|
+
if (normalizedSortState.length ? this.internalProps.sortState = sortState : this.internalProps.sortState = null,
|
|
615
|
+
executeSort) if (normalizedSortState.length) this.internalProps.layoutMap.headerObjects.some((item => !1 !== item.define.sort)) && (this.dataSource.sort(normalizedSortState.map((item => {
|
|
562
616
|
const sortFunc = this._getSortFuncFromHeaderOption(this.internalProps.columns, item.field);
|
|
563
617
|
this.internalProps.layoutMap.headerObjects.find((col => col && col.field === item.field));
|
|
564
618
|
return {
|
|
@@ -567,13 +621,22 @@ export class ListTable extends BaseTable {
|
|
|
567
621
|
orderFn: null != sortFunc ? sortFunc : defaultOrderFn
|
|
568
622
|
};
|
|
569
623
|
}))), this.internalProps.layoutMap.clearCellRangeMap(), this.internalProps.useOneRowHeightFillAll = !1,
|
|
570
|
-
this.scenegraph.sortCell())
|
|
624
|
+
this.scenegraph.sortCell()); else {
|
|
625
|
+
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;
|
|
626
|
+
(null === (_d = null == ds ? void 0 : ds.sortedIndexMap) || void 0 === _d ? void 0 : _d.clear) && ds.sortedIndexMap.clear(),
|
|
627
|
+
void 0 !== ds.currentIndexedData && (ds.currentIndexedData = Array.from({
|
|
628
|
+
length: sourceLength
|
|
629
|
+
}, ((_, i) => i))), ds.lastSortStates = [], null === (_e = ds.updatePagination) || void 0 === _e || _e.call(ds, ds.pagination),
|
|
630
|
+
this.internalProps.layoutMap.clearCellRangeMap(), this.internalProps.useOneRowHeightFillAll = !1,
|
|
631
|
+
this.scenegraph.sortCell();
|
|
632
|
+
}
|
|
633
|
+
this.stateManager.updateSortState(normalizedSortState);
|
|
571
634
|
}
|
|
572
635
|
updateFilterRules(filterRules, options = {
|
|
573
636
|
clearRowHeightCache: !0
|
|
574
637
|
}) {
|
|
575
638
|
var _a, _b, _c;
|
|
576
|
-
this.scenegraph.clearCells(), null === (_b = (_a = this.dataSource).clearForceVisibleRecords) || void 0 === _b || _b.call(_a),
|
|
639
|
+
this.scenegraph.clearCells(), !1 !== (null == options ? void 0 : options.clearForceVisibleRecords) && (null === (_b = (_a = this.dataSource).clearForceVisibleRecords) || void 0 === _b || _b.call(_a)),
|
|
577
640
|
this.sortState ? (this.dataSource.updateFilterRulesForSorted(filterRules), sortRecords(this)) : this.dataSource.updateFilterRules(filterRules, null == options ? void 0 : options.onFilterRecordsEnd),
|
|
578
641
|
this.refreshRowColCount(), this.stateManager.initCheckedState(this.records), this.scenegraph.createSceneGraph(!(null == options ? void 0 : options.clearRowHeightCache)),
|
|
579
642
|
null === (_c = this.internalProps.emptyTip) || void 0 === _c || _c.resetVisible(),
|
|
@@ -630,7 +693,7 @@ export class ListTable extends BaseTable {
|
|
|
630
693
|
setRecords(records, option) {
|
|
631
694
|
var _a, _b, _c, _d, _e;
|
|
632
695
|
let sort;
|
|
633
|
-
clearChartRenderQueue(), null === (_a = this.internalProps.dataSource) || void 0 === _a || _a.release(),
|
|
696
|
+
this.stateManager.endResizeIfResizing(), clearChartRenderQueue(), null === (_a = this.internalProps.dataSource) || void 0 === _a || _a.release(),
|
|
634
697
|
this.internalProps.releaseList = null === (_b = this.internalProps.releaseList) || void 0 === _b ? void 0 : _b.filter((item => !item.dataSourceObj)),
|
|
635
698
|
this.internalProps.dataSource = null, Array.isArray(option) || (null == option ? void 0 : option.order) ? sort = option : option ? sort = option.sortState : null === option && (sort = null);
|
|
636
699
|
"undefined" != typeof window && window.performance.now();
|
|
@@ -843,34 +906,104 @@ export class ListTable extends BaseTable {
|
|
|
843
906
|
this.resize();
|
|
844
907
|
}
|
|
845
908
|
addRecord(record, recordIndex, triggerEvent = !0) {
|
|
846
|
-
var _a;
|
|
909
|
+
var _a, _b;
|
|
910
|
+
if (Array.isArray(this.options.customMergeCell) && "number" == typeof recordIndex) {
|
|
911
|
+
const axis = this.transpose ? "col" : "row", headerCount = this.transpose ? this.rowHeaderLevelCount : this.columnHeaderLevelCount, topAggregationCount = this.internalProps.layoutMap.hasAggregationOnTopCount;
|
|
912
|
+
let insertIndex = recordIndex;
|
|
913
|
+
void 0 === insertIndex || insertIndex > this.dataSource.sourceLength ? insertIndex = this.dataSource.sourceLength : insertIndex < 0 && (insertIndex = 0);
|
|
914
|
+
const insertIndexNum = insertIndex + headerCount + topAggregationCount, merges = this.options.customMergeCell.map((m => Object.assign(Object.assign({}, m), {
|
|
915
|
+
range: {
|
|
916
|
+
start: Object.assign({}, m.range.start),
|
|
917
|
+
end: Object.assign({}, m.range.end)
|
|
918
|
+
}
|
|
919
|
+
})));
|
|
920
|
+
for (let i = 0; i < merges.length; i++) {
|
|
921
|
+
const r = null === (_a = merges[i]) || void 0 === _a ? void 0 : _a.range;
|
|
922
|
+
if (!(null == r ? void 0 : r.start) || !(null == r ? void 0 : r.end)) continue;
|
|
923
|
+
const start = r.start[axis], end = r.end[axis];
|
|
924
|
+
end < insertIndexNum || (start > insertIndexNum ? (r.start[axis] = start + 1, r.end[axis] = end + 1) : r.end[axis] = end + 1);
|
|
925
|
+
}
|
|
926
|
+
this.options.customMergeCell = merges.filter((m => {
|
|
927
|
+
const r = null == m ? void 0 : m.range;
|
|
928
|
+
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));
|
|
929
|
+
})), this.internalProps.customMergeCell = getCustomMergeCellFunc(this.options.customMergeCell);
|
|
930
|
+
}
|
|
847
931
|
const success = listTableAddRecord(record, recordIndex, this);
|
|
848
|
-
adjustHeightResizedRowMapWithAddRecordIndex(this, recordIndex, [ record ]), null === (
|
|
849
|
-
|
|
932
|
+
adjustHeightResizedRowMapWithAddRecordIndex(this, recordIndex, [ record ]), null === (_b = this.internalProps.emptyTip) || void 0 === _b || _b.resetVisible(),
|
|
933
|
+
success && Array.isArray(this.options.customMergeCell) && (this.internalProps.customMergeCell = getCustomMergeCellFunc(this.options.customMergeCell),
|
|
934
|
+
this.options.customMergeCell.forEach((m => {
|
|
935
|
+
const r = null == m ? void 0 : m.range;
|
|
936
|
+
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);
|
|
937
|
+
})), this.scenegraph.updateNextFrame()), triggerEvent && success && this.fireListeners(TABLE_EVENT_TYPE.ADD_RECORD, {
|
|
850
938
|
records: [ record ],
|
|
851
939
|
recordIndex: recordIndex,
|
|
852
940
|
recordCount: 1
|
|
853
941
|
});
|
|
854
942
|
}
|
|
855
943
|
addRecords(records, recordIndex, triggerEvent = !0) {
|
|
856
|
-
var _a;
|
|
944
|
+
var _a, _b;
|
|
945
|
+
if (Array.isArray(this.options.customMergeCell) && "number" == typeof recordIndex && (null == records ? void 0 : records.length)) {
|
|
946
|
+
const axis = this.transpose ? "col" : "row", headerCount = this.transpose ? this.rowHeaderLevelCount : this.columnHeaderLevelCount, topAggregationCount = this.internalProps.layoutMap.hasAggregationOnTopCount;
|
|
947
|
+
let insertIndex = recordIndex;
|
|
948
|
+
void 0 === insertIndex || insertIndex > this.dataSource.sourceLength ? insertIndex = this.dataSource.sourceLength : insertIndex < 0 && (insertIndex = 0);
|
|
949
|
+
const insertIndexNum = insertIndex + headerCount + topAggregationCount, toAddCount = records.length, merges = this.options.customMergeCell.map((m => Object.assign(Object.assign({}, m), {
|
|
950
|
+
range: {
|
|
951
|
+
start: Object.assign({}, m.range.start),
|
|
952
|
+
end: Object.assign({}, m.range.end)
|
|
953
|
+
}
|
|
954
|
+
})));
|
|
955
|
+
for (let i = 0; i < merges.length; i++) {
|
|
956
|
+
const r = null === (_a = merges[i]) || void 0 === _a ? void 0 : _a.range;
|
|
957
|
+
if (!(null == r ? void 0 : r.start) || !(null == r ? void 0 : r.end)) continue;
|
|
958
|
+
const start = r.start[axis], end = r.end[axis];
|
|
959
|
+
end < insertIndexNum || (start > insertIndexNum ? (r.start[axis] = start + toAddCount,
|
|
960
|
+
r.end[axis] = end + toAddCount) : r.end[axis] = end + toAddCount);
|
|
961
|
+
}
|
|
962
|
+
this.options.customMergeCell = merges.filter((m => {
|
|
963
|
+
const r = null == m ? void 0 : m.range;
|
|
964
|
+
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));
|
|
965
|
+
})), this.internalProps.customMergeCell = getCustomMergeCellFunc(this.options.customMergeCell);
|
|
966
|
+
}
|
|
857
967
|
const success = listTableAddRecords(records, recordIndex, this);
|
|
858
968
|
"number" == typeof recordIndex && adjustHeightResizedRowMapWithAddRecordIndex(this, recordIndex, records),
|
|
859
|
-
null === (
|
|
860
|
-
|
|
969
|
+
null === (_b = this.internalProps.emptyTip) || void 0 === _b || _b.resetVisible(),
|
|
970
|
+
success && Array.isArray(this.options.customMergeCell) && (this.internalProps.customMergeCell = getCustomMergeCellFunc(this.options.customMergeCell),
|
|
971
|
+
this.options.customMergeCell.forEach((m => {
|
|
972
|
+
const r = null == m ? void 0 : m.range;
|
|
973
|
+
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);
|
|
974
|
+
})), this.scenegraph.updateNextFrame()), triggerEvent && success && this.fireListeners(TABLE_EVENT_TYPE.ADD_RECORD, {
|
|
861
975
|
records: records,
|
|
862
976
|
recordIndex: recordIndex,
|
|
863
977
|
recordCount: records.length
|
|
864
978
|
});
|
|
865
979
|
}
|
|
866
980
|
deleteRecords(recordIndexs, triggerEvent = !0) {
|
|
867
|
-
var _a;
|
|
868
|
-
const
|
|
869
|
-
|
|
981
|
+
var _a, _b;
|
|
982
|
+
const prevMergeRanges = Array.isArray(this.options.customMergeCell) ? this.options.customMergeCell.map((m => null == m ? void 0 : m.range)).filter(Boolean).map((r => ({
|
|
983
|
+
start: Object.assign({}, r.start),
|
|
984
|
+
end: Object.assign({}, r.end)
|
|
985
|
+
}))) : [], deletedRecords = [];
|
|
986
|
+
if ((null == recordIndexs ? void 0 : recordIndexs.length) > 0 && recordIndexs.forEach((index => {
|
|
870
987
|
let record = null;
|
|
871
988
|
record = "number" == typeof index ? this.dataSource.get(index) : [], deletedRecords.push(record);
|
|
872
|
-
})),
|
|
873
|
-
|
|
989
|
+
})), Array.isArray(this.options.customMergeCell) && (null == recordIndexs ? void 0 : recordIndexs.length) && "number" == typeof recordIndexs[0]) {
|
|
990
|
+
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;
|
|
991
|
+
for (let i = 0; i < deleteIndexNums.length; i++) {
|
|
992
|
+
const deleteIndex = deleteIndexNums[i];
|
|
993
|
+
for (let j = 0; j < merges.length; j++) {
|
|
994
|
+
const r = null === (_a = merges[j]) || void 0 === _a ? void 0 : _a.range;
|
|
995
|
+
if (!(null == r ? void 0 : r.start) || !(null == r ? void 0 : r.end)) continue;
|
|
996
|
+
const start = r.start[axis], end = r.end[axis];
|
|
997
|
+
end < deleteIndex || (start > deleteIndex ? (r.start[axis] = start - 1, r.end[axis] = end - 1) : r.end[axis] = end - 1);
|
|
998
|
+
}
|
|
999
|
+
}
|
|
1000
|
+
this.options.customMergeCell = merges.filter((m => {
|
|
1001
|
+
const r = null == m ? void 0 : m.range;
|
|
1002
|
+
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));
|
|
1003
|
+
}));
|
|
1004
|
+
}
|
|
1005
|
+
listTableDeleteRecords(recordIndexs, this), adjustHeightResizedRowMapWithDeleteRecordIndex(this, recordIndexs),
|
|
1006
|
+
null === (_b = this.internalProps.emptyTip) || void 0 === _b || _b.resetVisible();
|
|
874
1007
|
const rowIndexs = [];
|
|
875
1008
|
for (let i = 0; i < recordIndexs.length; i++) rowIndexs.push(this.getBodyRowIndexByRecordIndex(recordIndexs[i]) + this.columnHeaderLevelCount);
|
|
876
1009
|
triggerEvent && this.fireListeners(TABLE_EVENT_TYPE.DELETE_RECORD, {
|
|
@@ -878,7 +1011,17 @@ export class ListTable extends BaseTable {
|
|
|
878
1011
|
records: deletedRecords,
|
|
879
1012
|
rowIndexs: rowIndexs,
|
|
880
1013
|
deletedCount: (Array.isArray(recordIndexs[0]), recordIndexs.length)
|
|
881
|
-
})
|
|
1014
|
+
}), Array.isArray(this.options.customMergeCell) && (this.internalProps.customMergeCell = getCustomMergeCellFunc(this.options.customMergeCell),
|
|
1015
|
+
this.options.customMergeCell.forEach((m => {
|
|
1016
|
+
const r = null == m ? void 0 : m.range;
|
|
1017
|
+
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);
|
|
1018
|
+
})), this.scenegraph.updateNextFrame(), setTimeout((() => {
|
|
1019
|
+
if (!this.internalProps || !this.options || !this.scenegraph) return;
|
|
1020
|
+
Array.isArray(this.options.customMergeCell) && (this.internalProps.customMergeCell = getCustomMergeCellFunc(this.options.customMergeCell));
|
|
1021
|
+
[ ...prevMergeRanges, ...Array.isArray(this.options.customMergeCell) ? this.options.customMergeCell.map((m => null == m ? void 0 : m.range)) : [] ].filter(Boolean).forEach((r => {
|
|
1022
|
+
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);
|
|
1023
|
+
})), this.scenegraph.updateNextFrame();
|
|
1024
|
+
}), 0));
|
|
882
1025
|
}
|
|
883
1026
|
updateRecords(records, recordIndexs, triggerEvent = !0) {
|
|
884
1027
|
listTableUpdateRecords(records, recordIndexs, this), triggerEvent && this.fireListeners(TABLE_EVENT_TYPE.UPDATE_RECORD, {
|
|
@@ -982,7 +1125,12 @@ export class ListTable extends BaseTable {
|
|
|
982
1125
|
}
|
|
983
1126
|
}), this.internalProps.customMergeCell = getCustomMergeCellFunc(this.options.customMergeCell);
|
|
984
1127
|
for (let i = startCol; i <= endCol; i++) for (let j = startRow; j <= endRow; j++) this.scenegraph.updateCellContent(i, j);
|
|
985
|
-
this.scenegraph.updateNextFrame()
|
|
1128
|
+
this.scenegraph.updateNextFrame(), this.fireListeners(TABLE_EVENT_TYPE.MERGE_CELLS, {
|
|
1129
|
+
startCol: startCol,
|
|
1130
|
+
startRow: startRow,
|
|
1131
|
+
endCol: endCol,
|
|
1132
|
+
endRow: endRow
|
|
1133
|
+
});
|
|
986
1134
|
}
|
|
987
1135
|
unmergeCells(startCol, startRow, endCol, endRow) {
|
|
988
1136
|
this.options.customMergeCell ? "function" == typeof this.options.customMergeCell && (this.options.customMergeCell = []) : this.options.customMergeCell = [],
|
|
@@ -991,7 +1139,12 @@ export class ListTable extends BaseTable {
|
|
|
991
1139
|
return !(start.col === startCol && start.row === startRow && end.col === endCol && end.row === endRow);
|
|
992
1140
|
})), this.internalProps.customMergeCell = getCustomMergeCellFunc(this.options.customMergeCell);
|
|
993
1141
|
for (let i = startCol; i <= endCol; i++) for (let j = startRow; j <= endRow; j++) this.scenegraph.updateCellContent(i, j);
|
|
994
|
-
this.scenegraph.updateNextFrame()
|
|
1142
|
+
this.scenegraph.updateNextFrame(), this.fireListeners(TABLE_EVENT_TYPE.UNMERGE_CELLS, {
|
|
1143
|
+
startCol: startCol,
|
|
1144
|
+
startRow: startRow,
|
|
1145
|
+
endCol: endCol,
|
|
1146
|
+
endRow: endRow
|
|
1147
|
+
});
|
|
995
1148
|
}
|
|
996
1149
|
}
|
|
997
1150
|
//# sourceMappingURL=ListTable.js.map
|