@visactor/vtable 1.26.5 → 1.26.6
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 +4 -1
- package/cjs/ListTable.js +17 -3
- package/cjs/ListTable.js.map +1 -1
- package/cjs/body-helper/body-helper.d.ts +1 -0
- package/cjs/body-helper/body-helper.js +4 -3
- package/cjs/body-helper/body-helper.js.map +1 -1
- package/cjs/components/index.js +2 -1
- package/cjs/core/BaseTable.d.ts +1 -0
- package/cjs/core/BaseTable.js +20 -10
- package/cjs/core/BaseTable.js.map +1 -1
- package/cjs/core/row-series-number-helper.d.ts +1 -0
- package/cjs/core/row-series-number-helper.js +3 -1
- package/cjs/core/row-series-number-helper.js.map +1 -1
- package/cjs/data/CachedDataSource.js +5 -3
- package/cjs/data/CachedDataSource.js.map +1 -1
- package/cjs/header-helper/header-helper.d.ts +1 -0
- package/cjs/header-helper/header-helper.js +4 -3
- package/cjs/header-helper/header-helper.js.map +1 -1
- package/cjs/index.d.ts +1 -1
- package/cjs/index.js +1 -1
- package/cjs/index.js.map +1 -1
- package/cjs/layout/index.js +2 -1
- package/cjs/plugins/interface.d.ts +2 -1
- package/cjs/plugins/interface.js.map +1 -1
- package/cjs/plugins/plugin-manager.d.ts +1 -1
- package/cjs/plugins/plugin-manager.js +11 -6
- package/cjs/plugins/plugin-manager.js.map +1 -1
- package/cjs/scenegraph/group-creater/progress/create-group-for-first-screen.js +24 -8
- package/cjs/scenegraph/group-creater/progress/create-group-for-first-screen.js.map +1 -1
- package/cjs/scenegraph/layout/compute-row-height.js +15 -4
- package/cjs/scenegraph/layout/compute-row-height.js.map +1 -1
- package/cjs/scenegraph/layout/update-row.js +24 -3
- package/cjs/scenegraph/layout/update-row.js.map +1 -1
- package/cjs/scenegraph/scenegraph.js +42 -20
- package/cjs/scenegraph/scenegraph.js.map +1 -1
- package/cjs/scenegraph/utils/text-icon-layout.js +4 -3
- package/cjs/scenegraph/utils/text-icon-layout.js.map +1 -1
- package/cjs/state/checkbox/checkbox.d.ts +3 -0
- package/cjs/state/checkbox/checkbox.js +138 -2
- package/cjs/state/checkbox/checkbox.js.map +1 -1
- package/cjs/ts-types/base-table.d.ts +1 -0
- package/cjs/ts-types/base-table.js.map +1 -1
- package/cjs/ts-types/table-engine.d.ts +7 -1
- package/cjs/ts-types/table-engine.js.map +1 -1
- package/cjs/vrender.js.map +1 -1
- package/dist/vtable.js +404 -45
- package/dist/vtable.min.js +1 -1
- package/es/ListTable.d.ts +4 -1
- package/es/ListTable.js +17 -4
- package/es/ListTable.js.map +1 -1
- package/es/body-helper/body-helper.d.ts +1 -0
- package/es/body-helper/body-helper.js +4 -3
- package/es/body-helper/body-helper.js.map +1 -1
- package/es/components/index.js +2 -1
- package/es/core/BaseTable.d.ts +1 -0
- package/es/core/BaseTable.js +22 -12
- package/es/core/BaseTable.js.map +1 -1
- package/es/core/row-series-number-helper.d.ts +1 -0
- package/es/core/row-series-number-helper.js +3 -1
- package/es/core/row-series-number-helper.js.map +1 -1
- package/es/data/CachedDataSource.js +5 -3
- package/es/data/CachedDataSource.js.map +1 -1
- package/es/header-helper/header-helper.d.ts +1 -0
- package/es/header-helper/header-helper.js +4 -3
- package/es/header-helper/header-helper.js.map +1 -1
- package/es/index.d.ts +1 -1
- package/es/index.js +1 -1
- package/es/index.js.map +1 -1
- package/es/layout/index.js +2 -1
- package/es/plugins/interface.d.ts +2 -1
- package/es/plugins/interface.js.map +1 -1
- package/es/plugins/plugin-manager.d.ts +1 -1
- package/es/plugins/plugin-manager.js +11 -6
- package/es/plugins/plugin-manager.js.map +1 -1
- package/es/scenegraph/group-creater/progress/create-group-for-first-screen.js +24 -8
- package/es/scenegraph/group-creater/progress/create-group-for-first-screen.js.map +1 -1
- package/es/scenegraph/layout/compute-row-height.js +15 -4
- package/es/scenegraph/layout/compute-row-height.js.map +1 -1
- package/es/scenegraph/layout/update-row.js +25 -2
- package/es/scenegraph/layout/update-row.js.map +1 -1
- package/es/scenegraph/scenegraph.js +42 -20
- package/es/scenegraph/scenegraph.js.map +1 -1
- package/es/scenegraph/utils/text-icon-layout.js +7 -6
- package/es/scenegraph/utils/text-icon-layout.js.map +1 -1
- package/es/state/checkbox/checkbox.d.ts +3 -0
- package/es/state/checkbox/checkbox.js +133 -0
- package/es/state/checkbox/checkbox.js.map +1 -1
- package/es/ts-types/base-table.d.ts +1 -0
- package/es/ts-types/base-table.js.map +1 -1
- package/es/ts-types/table-engine.d.ts +7 -1
- package/es/ts-types/table-engine.js.map +1 -1
- package/es/vrender.js.map +1 -1
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/scenegraph/layout/update-row.ts"],"names":[],"mappings":"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","file":"update-row.js","sourcesContent":["import { isNumber, isValid } from '@visactor/vutils';\nimport type { CellAddress, CellRange } from '../../ts-types';\nimport type { BaseTableAPI } from '../../ts-types/base-table';\nimport { Group } from '../graphic/group';\nimport { updateCell } from '../group-creater/cell-helper';\nimport type { Scenegraph } from '../scenegraph';\nimport { getCellMergeInfo } from '../utils/get-cell-merge';\nimport { deduplication } from '../../tools/util';\nimport { checkHaveTextStick, resetTextStick } from '../stick-text';\n\n/**\n * add and remove rows in scenegraph\n */\nexport function updateRow(\n removeCells: CellAddress[],\n addCells: CellAddress[],\n updateCells: CellAddress[],\n table: BaseTableAPI,\n skipUpdateProxy?: boolean\n) {\n if (checkHaveTextStick(table)) {\n resetTextStick(table); // reset text stick\n }\n\n const scene = table.scenegraph;\n // deduplication\n const removeRows = deduplication(removeCells.map(cell => cell.row)).sort((a, b) => b - a);\n const addRows = deduplication(addCells.map(cell => cell.row)).sort((a, b) => a - b);\n const updateRows = deduplication(updateCells.map(cell => cell.row)).sort((a, b) => a - b);\n\n let rowUpdatePos;\n if (updateRows.length) {\n const beforeRow = updateRows[0] - 1;\n const afterRow = updateRows[updateRows.length - 1] + 1;\n rowUpdatePos = _getUpdateRowIndexUseCellNode(beforeRow, afterRow, scene);\n }\n if (addRows.length) {\n const beforeRow = addRows[0] - 1;\n const afterRow = addRows[addRows.length - 1] + 1;\n const pos = _getUpdateRowIndexUseCellNode(beforeRow, afterRow, scene);\n rowUpdatePos = isValid(rowUpdatePos) ? (isValid(pos) ? Math.min(rowUpdatePos, pos) : rowUpdatePos) : pos;\n }\n if (removeRows.length) {\n const beforeRow = removeRows[0] - 1;\n const afterRow = removeRows[removeRows.length - 1] + 1;\n const pos = _getUpdateRowIndexUseCellNode(beforeRow, afterRow, scene);\n rowUpdatePos = isValid(rowUpdatePos) ? (isValid(pos) ? Math.min(rowUpdatePos, pos) : rowUpdatePos) : pos;\n }\n\n // remove cells\n removeRows.forEach(row => {\n removeRow(row, scene, skipUpdateProxy);\n });\n\n const rowHeightsMap = table.rowHeightsMap;\n removeRows.forEach(row => {\n rowHeightsMap.delete(row);\n });\n\n if (removeRows.length) {\n resetRowNumber(scene);\n const beforeRow = removeRows[removeRows.length - 1] - 1;\n const afterRow = removeRows[0] - removeRows.length + 1;\n const pos = _getUpdateRowIndex(beforeRow, afterRow, scene);\n // isNumber(rowUpdatePos) && (scene.proxy.rowUpdatePos = Math.min(scene.proxy.rowUpdatePos, rowUpdatePos));\n rowUpdatePos = isValid(rowUpdatePos) ? (isValid(pos) ? Math.min(rowUpdatePos, pos) : rowUpdatePos) : pos;\n }\n\n scene.table._clearRowRangeHeightsMap();\n\n // verify proxy row status\n verifyProxyRowStatus(scene);\n\n // add cells\n let updateAfter: number;\n addRows.forEach(row => {\n const needUpdateAfter = addRow(row, scene, skipUpdateProxy);\n updateAfter = updateAfter ?? needUpdateAfter;\n rowHeightsMap.insert(row);\n });\n\n // reset attribute y and row number in CellGroup\n // const newTotalHeight = resetRowNumberAndY(scene);\n resetRowNumberAndY(scene);\n\n if (addRows.length) {\n const beforeRow = addRows[0] - 1;\n const afterRow = addRows[addRows.length - 1] + 1;\n const pos = _getUpdateRowIndex(beforeRow, afterRow, scene);\n rowUpdatePos = isValid(rowUpdatePos) ? (isValid(pos) ? Math.min(rowUpdatePos, pos) : rowUpdatePos) : pos;\n }\n //下面合并单元格情况有重复调用updateCell问题,需要优化。用这个变量记录已经处理过的合并单元格位置,避免重复处理。\n const batchMergePos = new Set<string>();\n for (let col = 0; col < table.colCount; col++) {\n // add cells\n updateRows.forEach(row => {\n if (row < table.frozenRowCount) {\n // top frozen\n const mergeInfo = getCellMergeInfo(scene.table, col, row);\n if (mergeInfo) {\n for (let col = mergeInfo.start.col; col <= mergeInfo.end.col; col++) {\n for (let row = mergeInfo.start.row; row <= mergeInfo.end.row; row++) {\n const key = `${col}-${row}`;\n if (!batchMergePos.has(key)) {\n updateCell(col, row, scene.table, false);\n batchMergePos.add(key);\n }\n }\n }\n } else {\n updateCell(col, row, scene.table, false);\n }\n } else if (\n // row < table.frozenRowCount || // not top frozen\n row > table.rowCount - 1 || // greater than rowCount - 1\n (row < scene.table.rowCount - scene.table.bottomFrozenRowCount && // not bottom frozen\n (row < scene.proxy.rowStart || row > scene.proxy.rowEnd)) // not in row range\n ) {\n removeCellGroup(row, scene);\n } else {\n // updateRowAttr(row, scene);\n const mergeInfo = getCellMergeInfo(scene.table, col, row);\n if (mergeInfo) {\n for (let col = mergeInfo.start.col; col <= mergeInfo.end.col; col++) {\n for (let row = mergeInfo.start.row; row <= mergeInfo.end.row; row++) {\n const key = `${col}-${row}`;\n if (!batchMergePos.has(key)) {\n updateCell(col, row, scene.table, false);\n batchMergePos.add(key);\n }\n }\n }\n } else {\n updateCell(col, row, scene.table, false);\n }\n }\n });\n }\n\n if (updateRows.length) {\n const beforeRow = updateRows[0] - 1;\n const afterRow = updateRows[updateRows.length - 1] + 1;\n const pos = _getUpdateRowIndex(beforeRow, afterRow, scene);\n rowUpdatePos = isValid(rowUpdatePos) ? (isValid(pos) ? Math.min(rowUpdatePos, pos) : rowUpdatePos) : pos;\n }\n\n if (isNumber(updateAfter)) {\n for (let col = 0; col < Math.max(table.colCount, table.internalProps._oldColCount ?? table.colCount); col++) {\n for (\n let row = updateAfter;\n row < Math.max(table.rowCount, table.internalProps._oldRowCount ?? table.rowCount);\n row++\n ) {\n const cellGroup = scene.highPerformanceGetCell(col, row, true);\n cellGroup && (cellGroup.needUpdate = true);\n }\n }\n rowUpdatePos = isValid(rowUpdatePos)\n ? isValid(updateAfter)\n ? Math.min(rowUpdatePos, updateAfter)\n : rowUpdatePos\n : updateAfter;\n // scene.proxy.rowUpdatePos = Math.min(scene.proxy.rowUpdatePos, updateAfter);\n }\n isNumber(rowUpdatePos) && (scene.proxy.rowUpdatePos = Math.min(scene.proxy.rowUpdatePos, rowUpdatePos));\n if (addRows.length) {\n if (!isNumber(updateAfter)) {\n const minRow = Math.min(...addRows);\n scene.proxy.rowUpdatePos = Math.min(minRow, scene.proxy.rowUpdatePos);\n }\n // 对于列表,折叠展开时最上行(按钮行行)位置不变,为基准向下更新,所以这里配置方向为up(从上向下更新)\n // 对于透视表,最上行以上以下都也可能会变,目前采区重新建立场景树方案\n scene.proxy.rowUpdateDirection = 'up';\n scene.proxy.updateCellGroups(scene.proxy.screenRowCount * 2);\n updateBottomFrozeCellGroups();\n // scene.proxy.progress();\n } else if (removeRows.length) {\n setRowSeriesNumberCellNeedUpdate(removeRows[removeRows.length - 1], scene);\n scene.proxy.updateCellGroups(scene.proxy.screenRowCount * 2);\n\n updateBottomFrozeCellGroups();\n // scene.proxy.progress();\n }\n scene.proxy.progress();\n\n // update table size\n const newTotalHeight = table.getRowsHeight(table.frozenRowCount, table.rowCount - 1 - table.bottomFrozenRowCount);\n scene.updateContainerHeight(scene.table.frozenRowCount, newTotalHeight - scene.bodyGroup.attribute.height);\n\n function updateBottomFrozeCellGroups() {\n if (\n addRows?.[addRows?.length - 1] >= table.rowCount - table.bottomFrozenRowCount ||\n updateRows?.[updateRows?.length - 1] >= table.rowCount - table.bottomFrozenRowCount ||\n removeRows?.[0] >= table.rowCount - table.bottomFrozenRowCount\n ) {\n for (let col = 0; col < table.colCount; col++) {\n for (let row = table.rowCount - table.bottomFrozenRowCount; row < table.rowCount; row++) {\n const cellGroup = scene.highPerformanceGetCell(col, row, true);\n cellGroup && (cellGroup.needUpdate = true);\n }\n }\n scene.proxy.updateBottomFrozenCellGroups();\n }\n }\n}\nfunction removeRow(row: number, scene: Scenegraph, skipUpdateProxy?: boolean) {\n // const infectCellRange = removeCellGroup(row, scene);\n // for (let i = 0; i < infectCellRange.length; i++) {\n // const { mergeStartCol, mergeEndCol, mergeStartRow, mergeEndRow } = infectCellRange[i];\n // for (let col = mergeStartCol; col <= mergeEndCol; col++) {\n // for (let row = mergeStartRow; row <= mergeEndRow; row++) {\n // const cellGroup = scene.getCell(col, row, true);\n // if (cellGroup) {\n // cellGroup.needUpdate = true;\n // }\n // }\n // }\n // }\n\n const proxy = scene.proxy;\n\n // TODO 需要整体更新proxy的状态\n if (row >= proxy.rowStart && row <= proxy.rowEnd) {\n removeCellGroup(row, scene);\n proxy.rowEnd--;\n proxy.currentRow--;\n }\n if (!skipUpdateProxy) {\n proxy.bodyBottomRow--;\n // proxy.totalRow--;\n const totalActualBodyRowCount = Math.min(proxy.rowLimit, proxy.bodyBottomRow - proxy.bodyTopRow + 1); // 渐进加载总row数量\n proxy.totalActualBodyRowCount = totalActualBodyRowCount;\n proxy.totalRow = Math.min(proxy.table.rowCount - 1, proxy.rowStart + totalActualBodyRowCount - 1); // 目标渐进完成的row\n }\n}\n\nfunction addRow(row: number, scene: Scenegraph, skipUpdateProxy?: boolean) {\n const proxy = scene.proxy;\n if (!skipUpdateProxy) {\n proxy.bodyBottomRow++;\n // proxy.totalRow++;\n const totalActualBodyRowCount = Math.min(proxy.rowLimit, proxy.bodyBottomRow - proxy.bodyTopRow + 1); // 渐进加载总row数量\n proxy.totalActualBodyRowCount = totalActualBodyRowCount;\n proxy.totalRow = proxy.rowStart + totalActualBodyRowCount - 1; // 目标渐进完成的row\n }\n\n if (row < proxy.rowStart) {\n return undefined;\n } else if (row > proxy.rowEnd) {\n if (proxy.rowEnd - proxy.rowStart + 1 < proxy.rowLimit) {\n // can add row\n proxy.rowEnd++;\n proxy.currentRow++;\n\n addRowCellGroup(row, scene);\n return row;\n }\n return undefined;\n }\n if (proxy.rowEnd - proxy.rowStart + 1 < proxy.rowLimit) {\n // can add row\n proxy.rowEnd++;\n proxy.currentRow++;\n\n addRowCellGroup(row, scene);\n return row;\n }\n\n // update rows after\n return row;\n\n // return undefined;\n\n // // TODO 需要整体更新proxy的状态\n // scene.proxy.bodyBottomRow++;\n // scene.proxy.totalRow++;\n // scene.proxy.rowEnd++;\n // scene.proxy.currentRow++;\n}\nfunction resetRowNumber(scene: Scenegraph) {\n scene.bodyGroup.forEachChildren((colGroup: Group) => {\n let rowIndex = scene.bodyRowStart;\n colGroup?.forEachChildren((cellGroup: Group) => {\n processCell(cellGroup, rowIndex);\n rowIndex++;\n });\n });\n\n scene.rowHeaderGroup.forEachChildren((colGroup: Group) => {\n let rowIndex = scene.bodyRowStart;\n colGroup?.forEachChildren((cellGroup: Group) => {\n processCell(cellGroup, rowIndex);\n rowIndex++;\n });\n });\n\n scene.rightFrozenGroup.forEachChildren((colGroup: Group) => {\n let rowIndex = scene.bodyRowStart;\n colGroup?.forEachChildren((cellGroup: Group) => {\n processCell(cellGroup, rowIndex);\n rowIndex++;\n });\n });\n scene.bottomFrozenGroup.forEachChildren((colGroup: Group) => {\n let rowIndex = scene.table.rowCount - scene.table.bottomFrozenRowCount;\n colGroup?.forEachChildren((cellGroup: Group) => {\n processCell(cellGroup, rowIndex);\n rowIndex++;\n });\n });\n scene.leftBottomCornerGroup.forEachChildren((colGroup: Group) => {\n let rowIndex = scene.table.rowCount - scene.table.bottomFrozenRowCount;\n colGroup?.forEachChildren((cellGroup: Group) => {\n processCell(cellGroup, rowIndex);\n rowIndex++;\n });\n });\n scene.rightBottomCornerGroup.forEachChildren((colGroup: Group) => {\n let rowIndex = scene.table.rowCount - scene.table.bottomFrozenRowCount;\n colGroup?.forEachChildren((cellGroup: Group) => {\n processCell(cellGroup, rowIndex);\n rowIndex++;\n });\n });\n function processCell(cellGroup: Group, rowIndex: number) {\n cellGroup.row = rowIndex;\n const merge = getCellMergeInfo(scene.table, cellGroup.col, cellGroup.row);\n if (merge) {\n cellGroup.mergeStartCol = merge.start.col;\n cellGroup.mergeEndCol = merge.end.col;\n cellGroup.mergeStartRow = merge.start.row;\n cellGroup.mergeEndRow = merge.end.row;\n } else {\n cellGroup.mergeStartCol = undefined;\n cellGroup.mergeEndCol = undefined;\n cellGroup.mergeStartRow = undefined;\n cellGroup.mergeEndRow = undefined;\n }\n }\n}\n\nfunction resetRowNumberAndY(scene: Scenegraph) {\n scene.bodyGroup.forEachChildren((colGroup: Group) => {\n let rowIndex = scene.bodyRowStart;\n // let y = (colGroup.firstChild as IGraphic).attribute.y;\n let y = scene.getCellGroupY(rowIndex);\n colGroup?.forEachChildren((cellGroup: Group) => {\n processCell(cellGroup, rowIndex, y);\n rowIndex++;\n y += cellGroup.attribute.height;\n });\n });\n\n scene.rowHeaderGroup.forEachChildren((colGroup: Group) => {\n let rowIndex = scene.bodyRowStart;\n // let y = (colGroup.firstChild as IGraphic).attribute.y;\n let y = scene.getCellGroupY(rowIndex);\n colGroup?.forEachChildren((cellGroup: Group) => {\n processCell(cellGroup, rowIndex, y);\n rowIndex++;\n y += cellGroup.attribute.height;\n });\n });\n\n scene.rightFrozenGroup.forEachChildren((colGroup: Group) => {\n let rowIndex = scene.bodyRowStart;\n // let y = (colGroup.firstChild as IGraphic).attribute.y;\n let y = scene.getCellGroupY(rowIndex);\n colGroup?.forEachChildren((cellGroup: Group) => {\n processCell(cellGroup, rowIndex, y);\n rowIndex++;\n y += cellGroup.attribute.height;\n });\n });\n scene.bottomFrozenGroup.forEachChildren((colGroup: Group) => {\n let rowIndex = scene.table.rowCount - scene.table.bottomFrozenRowCount;\n let y = 0;\n colGroup?.forEachChildren((cellGroup: Group) => {\n processCell(cellGroup, rowIndex, y);\n rowIndex++;\n y += cellGroup.attribute.height;\n });\n });\n scene.leftBottomCornerGroup.forEachChildren((colGroup: Group) => {\n let rowIndex = scene.table.rowCount - scene.table.bottomFrozenRowCount;\n let y = 0;\n colGroup?.forEachChildren((cellGroup: Group) => {\n processCell(cellGroup, rowIndex, y);\n rowIndex++;\n y += cellGroup.attribute.height;\n });\n });\n scene.rightBottomCornerGroup.forEachChildren((colGroup: Group) => {\n let rowIndex = scene.table.rowCount - scene.table.bottomFrozenRowCount;\n let y = 0;\n colGroup?.forEachChildren((cellGroup: Group) => {\n processCell(cellGroup, rowIndex, y);\n rowIndex++;\n y += cellGroup.attribute.height;\n });\n });\n function processCell(cellGroup: Group, rowIndex: number, y: number) {\n cellGroup.row = rowIndex;\n cellGroup.setAttribute('y', y);\n const merge = getCellMergeInfo(scene.table, cellGroup.col, cellGroup.row);\n if (merge) {\n cellGroup.mergeStartCol = merge.start.col;\n cellGroup.mergeEndCol = merge.end.col;\n cellGroup.mergeStartRow = merge.start.row;\n cellGroup.mergeEndRow = merge.end.row;\n } else {\n cellGroup.mergeStartCol = undefined;\n cellGroup.mergeEndCol = undefined;\n cellGroup.mergeStartRow = undefined;\n cellGroup.mergeEndRow = undefined;\n }\n }\n}\nfunction addRowCellGroup(row: number, scene: Scenegraph) {\n for (let col = 0; col < scene.table.colCount; col++) {\n // create cellGroup\n // const cellGroup = updateCell(col, row, scene.table, true);\n const cellGroup = new Group({\n x: 0,\n y: 0,\n width: scene.table.getColWidth(col),\n height: scene.table.getRowHeight(row)\n });\n cellGroup.role = 'cell';\n cellGroup.col = col;\n cellGroup.row = row;\n cellGroup.needUpdate = true;\n\n if (!cellGroup) {\n // TODO: deal with data promise situation\n continue;\n }\n\n // insert cellGroup in colGroup\n const colGroup = scene.getColGroup(col);\n if (!colGroup) {\n continue;\n }\n\n if (colGroup.firstChild && row < (colGroup.firstChild as Group).row) {\n colGroup.insertBefore(cellGroup, colGroup.firstChild);\n (colGroup.firstChild as Group).row = (colGroup.firstChild as Group).row + 1;\n // if (\n // isNumber((colGroup.firstChild as Group).mergeStartRow) &&\n // isNumber((colGroup.firstChild as Group).mergeEndRow)\n // ) {\n // (colGroup.firstChild as Group).mergeStartRow = (colGroup.firstChild as Group).mergeStartRow + 1;\n // (colGroup.firstChild as Group).mergeEndRow = (colGroup.firstChild as Group).mergeEndRow + 1;\n // }\n } else if (colGroup.lastChild && row > (colGroup.lastChild as Group).row) {\n colGroup.appendChild(cellGroup);\n } else {\n // let cellBefore: Group;\n // colGroup.forEachChildren((cellGroup: Group) => {\n // if (cellGroup.row === row) {\n // cellBefore = cellGroup;\n // return true;\n // }\n // return false;\n // });\n\n const cellBefore = scene.highPerformanceGetCell(col, row, true);\n if (cellBefore !== cellGroup) {\n colGroup.insertBefore(cellGroup, cellBefore);\n cellBefore && (cellBefore.row = cellBefore.row + 1);\n // if (isNumber(cellBefore.mergeStartRow) && isNumber(cellBefore.mergeEndRow)) {\n // cellBefore.mergeStartRow = cellBefore.mergeStartRow + 1;\n // cellBefore.mergeEndRow = cellBefore.mergeEndRow + 1;\n // }\n if (cellBefore !== colGroup.lastChild) {\n colGroup.lastChild && ((colGroup.lastChild as Group).row = (colGroup.lastChild as Group).row + 1);\n // if (\n // isNumber((colGroup.lastChild as Group).mergeStartRow) &&\n // isNumber((colGroup.lastChild as Group).mergeEndRow)\n // ) {\n // (colGroup.lastChild as Group).mergeStartRow = (colGroup.lastChild as Group).mergeStartRow + 1;\n // (colGroup.lastChild as Group).mergeEndRow = (colGroup.lastChild as Group).mergeEndRow + 1;\n // }\n }\n }\n }\n\n // // reset row number\n // let rowIndex = (colGroup.firstChild as Group)?.row;\n // colGroup.forEachChildren((cellGroup: Group) => {\n // cellGroup.row = rowIndex;\n // rowIndex++;\n // });\n }\n}\n\nfunction removeCellGroup(row: number, scene: Scenegraph) {\n // const infectCellRange = [];\n for (let col = 0; col < scene.table.colCount; col++) {\n // const headerColGroup = scene.getColGroup(col, true);\n const colGroup = scene.getColGroup(col, false);\n if (!colGroup) {\n continue;\n }\n\n // remove cellGroup in colGroup\n let cellGroup: Group;\n colGroup.forEachChildren((cell: Group) => {\n if (cell.row === row) {\n cellGroup = cell;\n return true;\n }\n return false;\n });\n if (cellGroup) {\n colGroup.updateColumnHeight(-(cellGroup as Group).attribute.height);\n colGroup.removeChild(cellGroup);\n // if (\n // isValid(cellGroup.mergeStartCol) &&\n // isValid(cellGroup.mergeEndCol) &&\n // isValid(cellGroup.mergeStartRow) &&\n // isValid(cellGroup.mergeEndRow)\n // ) {\n // infectCellRange.push({\n // col: cellGroup.col,\n // row: cellGroup.row,\n // mergeStartCol: cellGroup.mergeStartCol,\n // mergeEndCol: cellGroup.mergeEndCol,\n // mergeStartRow: cellGroup.mergeStartRow,\n // mergeEndRow: cellGroup.mergeEndRow\n // });\n // }\n }\n }\n // return infectCellRange;\n}\n\nfunction _getUpdateRowIndex(beforeRow: number, afterRow: number, scene: Scenegraph) {\n let updateRow;\n for (let col = 0; col < scene.table.colCount; col++) {\n const rangeBefore = scene.table.getCellRange(col, beforeRow);\n let row;\n if (rangeBefore.start.row <= beforeRow + 1 && rangeBefore.end.row >= beforeRow + 1) {\n addNeedUpdateTag(rangeBefore, scene);\n row = rangeBefore.start.row;\n }\n\n const rangeAfter = scene.table.getCellRange(col, afterRow);\n if (rangeAfter.start.row <= afterRow + 1 && rangeAfter.end.row >= afterRow + 1) {\n addNeedUpdateTag(rangeAfter, scene);\n row = rangeAfter.start.row;\n }\n if (isValid(row)) {\n updateRow = isValid(updateRow) ? Math.min(updateRow, row) : row;\n }\n }\n return updateRow;\n}\nfunction _getUpdateRowIndexUseCellNode(beforeRow: number, afterRow: number, scene: Scenegraph) {\n let updateRow;\n for (let col = 0; col < scene.table.colCount; col++) {\n let row;\n const beforeCell = scene.highPerformanceGetCell(col, beforeRow);\n if (beforeCell.mergeStartRow && beforeCell.mergeEndRow && beforeCell.mergeEndRow > beforeRow) {\n addNeedUpdateTag(\n {\n start: {\n row: beforeCell.mergeStartRow,\n col: scene.table.isAutoRowHeight(afterRow) ? 0 : beforeCell.mergeStartCol\n },\n end: {\n row: beforeCell.mergeEndRow,\n col: scene.table.isAutoRowHeight(afterRow) ? scene.table.colCount - 1 : beforeCell.mergeEndCol\n }\n },\n scene\n );\n row = beforeCell.mergeStartRow;\n }\n\n const afterCell = scene.highPerformanceGetCell(col, afterRow);\n if (afterCell.mergeStartRow && afterCell.mergeEndRow && afterCell.mergeStartRow < afterRow) {\n addNeedUpdateTag(\n {\n start: {\n row: afterCell.mergeStartRow,\n col: scene.table.isAutoRowHeight(afterRow) ? 0 : afterCell.mergeStartCol\n },\n end: {\n row: afterCell.mergeEndRow,\n col: scene.table.isAutoRowHeight(afterRow) ? scene.table.colCount - 1 : afterCell.mergeEndCol\n }\n },\n scene\n );\n row = afterCell.mergeStartRow;\n }\n if (isValid(row)) {\n updateRow = isValid(updateRow) ? Math.min(updateRow, row) : row;\n }\n }\n return updateRow;\n}\n\nfunction addNeedUpdateTag(range: CellRange, scene: Scenegraph) {\n const { start, end } = range;\n for (let col = start.col; col <= end.col; col++) {\n for (let row = start.row; row <= end.row; row++) {\n const cellGroup = scene.highPerformanceGetCell(col, row, true);\n if (!cellGroup) {\n continue;\n }\n cellGroup.needUpdate = true;\n }\n }\n}\n\nfunction setRowSeriesNumberCellNeedUpdate(startUpdateRow: number, scene: Scenegraph) {\n if (scene.table.isHasSeriesNumber()) {\n for (let row = startUpdateRow; row <= scene.table.rowCount - 1; row++) {\n updateCell(0, row, scene.table, false);\n }\n }\n}\n\nfunction verifyProxyRowStatus(scene: Scenegraph) {\n const proxy = scene.proxy;\n const { rowStart, rowEnd, rowLimit, totalRow } = proxy;\n\n if (rowStart > rowEnd) {\n // 当前维护行全部清空, 重置proxy row状态\n proxy.rowStart = scene.table.columnHeaderLevelCount;\n proxy.rowEnd = Math.min(totalRow, proxy.rowStart + rowLimit - 1);\n proxy.currentRow = 0;\n\n return;\n }\n\n // 当前维护行部分清空,并且rowEnd向下已经超出范围,rowStart 需要向上更新\n if (rowStart + rowLimit - 1 > totalRow) {\n const oldRowStart = proxy.rowStart;\n const newRowStart = Math.max(scene.table.columnHeaderLevelCount, totalRow - rowLimit + 1);\n\n if (newRowStart === oldRowStart) {\n return;\n }\n proxy.rowStart = newRowStart;\n proxy.rowEnd = Math.min(totalRow, newRowStart + rowLimit - 1);\n proxy.currentRow = proxy.rowEnd + 1;\n\n const addRowCount = oldRowStart - proxy.rowStart;\n\n // 补充缺失的空行\n for (let i = 0; i < addRowCount; i++) {\n addRowCellGroup(proxy.rowStart + i, scene);\n }\n\n // 更新行内容\n proxy.rowUpdatePos = proxy.rowStart;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/scenegraph/layout/update-row.ts"],"names":[],"mappings":"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","file":"update-row.js","sourcesContent":["import { isNumber, isValid } from '@visactor/vutils';\nimport type { CellAddress, CellRange } from '../../ts-types';\nimport type { BaseTableAPI } from '../../ts-types/base-table';\nimport { Group } from '../graphic/group';\nimport { updateCell } from '../group-creater/cell-helper';\nimport type { Scenegraph } from '../scenegraph';\nimport { getCellMergeInfo } from '../utils/get-cell-merge';\nimport { deduplication } from '../../tools/util';\nimport { checkHaveTextStick, resetTextStick } from '../stick-text';\nimport { computeRowsHeight } from './compute-row-height';\n\n/**\n * add and remove rows in scenegraph\n */\nexport function updateRow(\n removeCells: CellAddress[],\n addCells: CellAddress[],\n updateCells: CellAddress[],\n table: BaseTableAPI,\n skipUpdateProxy?: boolean\n) {\n if (checkHaveTextStick(table)) {\n resetTextStick(table); // reset text stick\n }\n\n const scene = table.scenegraph;\n // deduplication\n const removeRows = deduplication(removeCells.map(cell => cell.row)).sort((a, b) => b - a);\n const addRows = deduplication(addCells.map(cell => cell.row)).sort((a, b) => a - b);\n const updateRows = deduplication(updateCells.map(cell => cell.row)).sort((a, b) => a - b);\n\n let rowUpdatePos;\n if (updateRows.length) {\n const beforeRow = updateRows[0] - 1;\n const afterRow = updateRows[updateRows.length - 1] + 1;\n rowUpdatePos = _getUpdateRowIndexUseCellNode(beforeRow, afterRow, scene);\n }\n if (addRows.length) {\n const beforeRow = addRows[0] - 1;\n const afterRow = addRows[addRows.length - 1] + 1;\n const pos = _getUpdateRowIndexUseCellNode(beforeRow, afterRow, scene);\n rowUpdatePos = isValid(rowUpdatePos) ? (isValid(pos) ? Math.min(rowUpdatePos, pos) : rowUpdatePos) : pos;\n }\n if (removeRows.length) {\n const beforeRow = removeRows[0] - 1;\n const afterRow = removeRows[removeRows.length - 1] + 1;\n const pos = _getUpdateRowIndexUseCellNode(beforeRow, afterRow, scene);\n rowUpdatePos = isValid(rowUpdatePos) ? (isValid(pos) ? Math.min(rowUpdatePos, pos) : rowUpdatePos) : pos;\n }\n\n // remove cells\n removeRows.forEach(row => {\n removeRow(row, scene, skipUpdateProxy);\n });\n\n const rowHeightsMap = table.rowHeightsMap;\n removeRows.forEach(row => {\n rowHeightsMap.delete(row);\n });\n\n if (removeRows.length) {\n resetRowNumber(scene);\n const beforeRow = removeRows[removeRows.length - 1] - 1;\n const afterRow = removeRows[0] - removeRows.length + 1;\n const pos = _getUpdateRowIndex(beforeRow, afterRow, scene);\n // isNumber(rowUpdatePos) && (scene.proxy.rowUpdatePos = Math.min(scene.proxy.rowUpdatePos, rowUpdatePos));\n rowUpdatePos = isValid(rowUpdatePos) ? (isValid(pos) ? Math.min(rowUpdatePos, pos) : rowUpdatePos) : pos;\n }\n\n scene.table._clearRowRangeHeightsMap();\n\n // verify proxy row status\n verifyProxyRowStatus(scene);\n\n // add cells\n let updateAfter: number;\n addRows.forEach(row => {\n const needUpdateAfter = addRow(row, scene, skipUpdateProxy);\n updateAfter = updateAfter ?? needUpdateAfter;\n rowHeightsMap.insert(row);\n });\n const filledVisibleRowStart = fillVisibleBodyRows(scene);\n if (isNumber(filledVisibleRowStart)) {\n updateAfter = updateAfter ?? filledVisibleRowStart;\n rowUpdatePos = isValid(rowUpdatePos) ? Math.min(rowUpdatePos, filledVisibleRowStart) : filledVisibleRowStart;\n }\n\n // reset attribute y and row number in CellGroup\n // const newTotalHeight = resetRowNumberAndY(scene);\n resetRowNumberAndY(scene);\n\n if (addRows.length) {\n const beforeRow = addRows[0] - 1;\n const afterRow = addRows[addRows.length - 1] + 1;\n const pos = _getUpdateRowIndex(beforeRow, afterRow, scene);\n rowUpdatePos = isValid(rowUpdatePos) ? (isValid(pos) ? Math.min(rowUpdatePos, pos) : rowUpdatePos) : pos;\n }\n //下面合并单元格情况有重复调用updateCell问题,需要优化。用这个变量记录已经处理过的合并单元格位置,避免重复处理。\n const batchMergePos = new Set<string>();\n for (let col = 0; col < table.colCount; col++) {\n // add cells\n updateRows.forEach(row => {\n if (row < table.frozenRowCount) {\n // top frozen\n const mergeInfo = getCellMergeInfo(scene.table, col, row);\n if (mergeInfo) {\n for (let col = mergeInfo.start.col; col <= mergeInfo.end.col; col++) {\n for (let row = mergeInfo.start.row; row <= mergeInfo.end.row; row++) {\n const key = `${col}-${row}`;\n if (!batchMergePos.has(key)) {\n updateCell(col, row, scene.table, false);\n batchMergePos.add(key);\n }\n }\n }\n } else {\n updateCell(col, row, scene.table, false);\n }\n } else if (\n // row < table.frozenRowCount || // not top frozen\n row > table.rowCount - 1 || // greater than rowCount - 1\n (row < scene.table.rowCount - scene.table.bottomFrozenRowCount && // not bottom frozen\n (row < scene.proxy.rowStart || row > scene.proxy.rowEnd)) // not in row range\n ) {\n removeCellGroup(row, scene);\n } else {\n // updateRowAttr(row, scene);\n const mergeInfo = getCellMergeInfo(scene.table, col, row);\n if (mergeInfo) {\n for (let col = mergeInfo.start.col; col <= mergeInfo.end.col; col++) {\n for (let row = mergeInfo.start.row; row <= mergeInfo.end.row; row++) {\n const key = `${col}-${row}`;\n if (!batchMergePos.has(key)) {\n updateCell(col, row, scene.table, false);\n batchMergePos.add(key);\n }\n }\n }\n } else {\n updateCell(col, row, scene.table, false);\n }\n }\n });\n }\n\n if (updateRows.length) {\n const beforeRow = updateRows[0] - 1;\n const afterRow = updateRows[updateRows.length - 1] + 1;\n const pos = _getUpdateRowIndex(beforeRow, afterRow, scene);\n rowUpdatePos = isValid(rowUpdatePos) ? (isValid(pos) ? Math.min(rowUpdatePos, pos) : rowUpdatePos) : pos;\n }\n\n if (isNumber(updateAfter)) {\n for (let col = 0; col < Math.max(table.colCount, table.internalProps._oldColCount ?? table.colCount); col++) {\n for (\n let row = updateAfter;\n row < Math.max(table.rowCount, table.internalProps._oldRowCount ?? table.rowCount);\n row++\n ) {\n const cellGroup = scene.highPerformanceGetCell(col, row, true);\n cellGroup && (cellGroup.needUpdate = true);\n }\n }\n rowUpdatePos = isValid(rowUpdatePos)\n ? isValid(updateAfter)\n ? Math.min(rowUpdatePos, updateAfter)\n : rowUpdatePos\n : updateAfter;\n // scene.proxy.rowUpdatePos = Math.min(scene.proxy.rowUpdatePos, updateAfter);\n }\n isNumber(rowUpdatePos) && (scene.proxy.rowUpdatePos = Math.min(scene.proxy.rowUpdatePos, rowUpdatePos));\n if (addRows.length) {\n if (!isNumber(updateAfter)) {\n const minRow = Math.min(...addRows);\n scene.proxy.rowUpdatePos = Math.min(minRow, scene.proxy.rowUpdatePos);\n }\n // 对于列表,折叠展开时最上行(按钮行行)位置不变,为基准向下更新,所以这里配置方向为up(从上向下更新)\n // 对于透视表,最上行以上以下都也可能会变,目前采区重新建立场景树方案\n scene.proxy.rowUpdateDirection = 'up';\n scene.proxy.updateCellGroups(scene.proxy.screenRowCount * 2);\n updateBottomFrozeCellGroups();\n // scene.proxy.progress();\n } else if (removeRows.length) {\n setRowSeriesNumberCellNeedUpdate(removeRows[removeRows.length - 1], scene);\n scene.proxy.updateCellGroups(scene.proxy.screenRowCount * 2);\n\n updateBottomFrozeCellGroups();\n // scene.proxy.progress();\n }\n scene.proxy.progress();\n\n // update table size\n const newTotalHeight = table.getRowsHeight(table.frozenRowCount, table.rowCount - 1 - table.bottomFrozenRowCount);\n scene.updateContainerHeight(scene.table.frozenRowCount, newTotalHeight - scene.bodyGroup.attribute.height);\n\n function updateBottomFrozeCellGroups() {\n if (\n addRows?.[addRows?.length - 1] >= table.rowCount - table.bottomFrozenRowCount ||\n updateRows?.[updateRows?.length - 1] >= table.rowCount - table.bottomFrozenRowCount ||\n removeRows?.[0] >= table.rowCount - table.bottomFrozenRowCount\n ) {\n for (let col = 0; col < table.colCount; col++) {\n for (let row = table.rowCount - table.bottomFrozenRowCount; row < table.rowCount; row++) {\n const cellGroup = scene.highPerformanceGetCell(col, row, true);\n cellGroup && (cellGroup.needUpdate = true);\n }\n }\n scene.proxy.updateBottomFrozenCellGroups();\n }\n }\n}\nfunction removeRow(row: number, scene: Scenegraph, skipUpdateProxy?: boolean) {\n // const infectCellRange = removeCellGroup(row, scene);\n // for (let i = 0; i < infectCellRange.length; i++) {\n // const { mergeStartCol, mergeEndCol, mergeStartRow, mergeEndRow } = infectCellRange[i];\n // for (let col = mergeStartCol; col <= mergeEndCol; col++) {\n // for (let row = mergeStartRow; row <= mergeEndRow; row++) {\n // const cellGroup = scene.getCell(col, row, true);\n // if (cellGroup) {\n // cellGroup.needUpdate = true;\n // }\n // }\n // }\n // }\n\n const proxy = scene.proxy;\n\n // TODO 需要整体更新proxy的状态\n if (row >= proxy.rowStart && row <= proxy.rowEnd) {\n removeCellGroup(row, scene);\n proxy.rowEnd--;\n proxy.currentRow--;\n }\n if (!skipUpdateProxy) {\n proxy.bodyBottomRow--;\n // proxy.totalRow--;\n const totalActualBodyRowCount = Math.min(proxy.rowLimit, proxy.bodyBottomRow - proxy.bodyTopRow + 1); // 渐进加载总row数量\n proxy.totalActualBodyRowCount = totalActualBodyRowCount;\n proxy.totalRow = Math.min(proxy.table.rowCount - 1, proxy.rowStart + totalActualBodyRowCount - 1); // 目标渐进完成的row\n }\n}\n\nfunction addRow(row: number, scene: Scenegraph, skipUpdateProxy?: boolean) {\n const proxy = scene.proxy;\n if (!skipUpdateProxy) {\n proxy.bodyBottomRow++;\n // proxy.totalRow++;\n const totalActualBodyRowCount = Math.min(proxy.rowLimit, proxy.bodyBottomRow - proxy.bodyTopRow + 1); // 渐进加载总row数量\n proxy.totalActualBodyRowCount = totalActualBodyRowCount;\n proxy.totalRow = proxy.rowStart + totalActualBodyRowCount - 1; // 目标渐进完成的row\n }\n\n if (row < proxy.rowStart) {\n return undefined;\n } else if (row > proxy.rowEnd) {\n if (proxy.rowEnd - proxy.rowStart + 1 < proxy.rowLimit) {\n // can add row\n proxy.rowEnd++;\n proxy.currentRow++;\n\n addRowCellGroup(row, scene);\n return row;\n }\n return undefined;\n }\n if (proxy.rowEnd - proxy.rowStart + 1 < proxy.rowLimit) {\n // can add row\n proxy.rowEnd++;\n proxy.currentRow++;\n\n addRowCellGroup(row, scene);\n return row;\n }\n\n // update rows after\n return row;\n\n // return undefined;\n\n // // TODO 需要整体更新proxy的状态\n // scene.proxy.bodyBottomRow++;\n // scene.proxy.totalRow++;\n // scene.proxy.rowEnd++;\n // scene.proxy.currentRow++;\n}\n\nfunction fillVisibleBodyRows(scene: Scenegraph): number | undefined {\n const { table, proxy } = scene;\n if (table.heightMode !== 'autoHeight') {\n return undefined;\n }\n const bodyBottomRow = table.rowCount - 1 - table.bottomFrozenRowCount;\n const visibleBodyHeight = table.tableNoFrameHeight - table.getFrozenRowsHeight() - table.getBottomFrozenRowsHeight();\n let targetRow = Math.min(proxy.rowEnd, bodyBottomRow);\n\n computeRowsHeight(table, proxy.rowStart, targetRow, false);\n while (targetRow < bodyBottomRow && table.getRowsHeight(table.frozenRowCount, targetRow) < visibleBodyHeight) {\n const nextRow = targetRow + 1;\n computeRowsHeight(table, nextRow, nextRow, false);\n targetRow = nextRow;\n }\n\n if (targetRow <= proxy.rowEnd) {\n return undefined;\n }\n\n const startRow = proxy.rowEnd + 1;\n for (let row = startRow; row <= targetRow; row++) {\n addRowCellGroup(row, scene);\n }\n proxy.rowEnd = targetRow;\n proxy.currentRow = Math.max(proxy.currentRow, targetRow);\n proxy.totalRow = Math.max(proxy.totalRow, targetRow);\n proxy.totalActualBodyRowCount = Math.max(proxy.totalActualBodyRowCount, targetRow - proxy.rowStart + 1);\n proxy.rowUpdatePos = Math.min(proxy.rowUpdatePos, startRow);\n\n return startRow;\n}\n\nfunction resetRowNumber(scene: Scenegraph) {\n scene.bodyGroup.forEachChildren((colGroup: Group) => {\n let rowIndex = scene.bodyRowStart;\n colGroup?.forEachChildren((cellGroup: Group) => {\n processCell(cellGroup, rowIndex);\n rowIndex++;\n });\n });\n\n scene.rowHeaderGroup.forEachChildren((colGroup: Group) => {\n let rowIndex = scene.bodyRowStart;\n colGroup?.forEachChildren((cellGroup: Group) => {\n processCell(cellGroup, rowIndex);\n rowIndex++;\n });\n });\n\n scene.rightFrozenGroup.forEachChildren((colGroup: Group) => {\n let rowIndex = scene.bodyRowStart;\n colGroup?.forEachChildren((cellGroup: Group) => {\n processCell(cellGroup, rowIndex);\n rowIndex++;\n });\n });\n scene.bottomFrozenGroup.forEachChildren((colGroup: Group) => {\n let rowIndex = scene.table.rowCount - scene.table.bottomFrozenRowCount;\n colGroup?.forEachChildren((cellGroup: Group) => {\n processCell(cellGroup, rowIndex);\n rowIndex++;\n });\n });\n scene.leftBottomCornerGroup.forEachChildren((colGroup: Group) => {\n let rowIndex = scene.table.rowCount - scene.table.bottomFrozenRowCount;\n colGroup?.forEachChildren((cellGroup: Group) => {\n processCell(cellGroup, rowIndex);\n rowIndex++;\n });\n });\n scene.rightBottomCornerGroup.forEachChildren((colGroup: Group) => {\n let rowIndex = scene.table.rowCount - scene.table.bottomFrozenRowCount;\n colGroup?.forEachChildren((cellGroup: Group) => {\n processCell(cellGroup, rowIndex);\n rowIndex++;\n });\n });\n function processCell(cellGroup: Group, rowIndex: number) {\n cellGroup.row = rowIndex;\n const merge = getCellMergeInfo(scene.table, cellGroup.col, cellGroup.row);\n if (merge) {\n cellGroup.mergeStartCol = merge.start.col;\n cellGroup.mergeEndCol = merge.end.col;\n cellGroup.mergeStartRow = merge.start.row;\n cellGroup.mergeEndRow = merge.end.row;\n } else {\n cellGroup.mergeStartCol = undefined;\n cellGroup.mergeEndCol = undefined;\n cellGroup.mergeStartRow = undefined;\n cellGroup.mergeEndRow = undefined;\n }\n }\n}\n\nfunction resetRowNumberAndY(scene: Scenegraph) {\n scene.bodyGroup.forEachChildren((colGroup: Group) => {\n let rowIndex = scene.bodyRowStart;\n // let y = (colGroup.firstChild as IGraphic).attribute.y;\n let y = scene.getCellGroupY(rowIndex);\n colGroup?.forEachChildren((cellGroup: Group) => {\n processCell(cellGroup, rowIndex, y);\n rowIndex++;\n y += cellGroup.attribute.height;\n });\n });\n\n scene.rowHeaderGroup.forEachChildren((colGroup: Group) => {\n let rowIndex = scene.bodyRowStart;\n // let y = (colGroup.firstChild as IGraphic).attribute.y;\n let y = scene.getCellGroupY(rowIndex);\n colGroup?.forEachChildren((cellGroup: Group) => {\n processCell(cellGroup, rowIndex, y);\n rowIndex++;\n y += cellGroup.attribute.height;\n });\n });\n\n scene.rightFrozenGroup.forEachChildren((colGroup: Group) => {\n let rowIndex = scene.bodyRowStart;\n // let y = (colGroup.firstChild as IGraphic).attribute.y;\n let y = scene.getCellGroupY(rowIndex);\n colGroup?.forEachChildren((cellGroup: Group) => {\n processCell(cellGroup, rowIndex, y);\n rowIndex++;\n y += cellGroup.attribute.height;\n });\n });\n scene.bottomFrozenGroup.forEachChildren((colGroup: Group) => {\n let rowIndex = scene.table.rowCount - scene.table.bottomFrozenRowCount;\n let y = 0;\n colGroup?.forEachChildren((cellGroup: Group) => {\n processCell(cellGroup, rowIndex, y);\n rowIndex++;\n y += cellGroup.attribute.height;\n });\n });\n scene.leftBottomCornerGroup.forEachChildren((colGroup: Group) => {\n let rowIndex = scene.table.rowCount - scene.table.bottomFrozenRowCount;\n let y = 0;\n colGroup?.forEachChildren((cellGroup: Group) => {\n processCell(cellGroup, rowIndex, y);\n rowIndex++;\n y += cellGroup.attribute.height;\n });\n });\n scene.rightBottomCornerGroup.forEachChildren((colGroup: Group) => {\n let rowIndex = scene.table.rowCount - scene.table.bottomFrozenRowCount;\n let y = 0;\n colGroup?.forEachChildren((cellGroup: Group) => {\n processCell(cellGroup, rowIndex, y);\n rowIndex++;\n y += cellGroup.attribute.height;\n });\n });\n function processCell(cellGroup: Group, rowIndex: number, y: number) {\n cellGroup.row = rowIndex;\n cellGroup.setAttribute('y', y);\n const merge = getCellMergeInfo(scene.table, cellGroup.col, cellGroup.row);\n if (merge) {\n cellGroup.mergeStartCol = merge.start.col;\n cellGroup.mergeEndCol = merge.end.col;\n cellGroup.mergeStartRow = merge.start.row;\n cellGroup.mergeEndRow = merge.end.row;\n } else {\n cellGroup.mergeStartCol = undefined;\n cellGroup.mergeEndCol = undefined;\n cellGroup.mergeStartRow = undefined;\n cellGroup.mergeEndRow = undefined;\n }\n }\n}\nfunction addRowCellGroup(row: number, scene: Scenegraph) {\n for (let col = 0; col < scene.table.colCount; col++) {\n // create cellGroup\n // const cellGroup = updateCell(col, row, scene.table, true);\n const cellGroup = new Group({\n x: 0,\n y: 0,\n width: scene.table.getColWidth(col),\n height: scene.table.getRowHeight(row)\n });\n cellGroup.role = 'cell';\n cellGroup.col = col;\n cellGroup.row = row;\n cellGroup.needUpdate = true;\n\n if (!cellGroup) {\n // TODO: deal with data promise situation\n continue;\n }\n\n // insert cellGroup in colGroup\n const colGroup = scene.getColGroup(col);\n if (!colGroup) {\n continue;\n }\n\n if (colGroup.firstChild && row < (colGroup.firstChild as Group).row) {\n colGroup.insertBefore(cellGroup, colGroup.firstChild);\n (colGroup.firstChild as Group).row = (colGroup.firstChild as Group).row + 1;\n // if (\n // isNumber((colGroup.firstChild as Group).mergeStartRow) &&\n // isNumber((colGroup.firstChild as Group).mergeEndRow)\n // ) {\n // (colGroup.firstChild as Group).mergeStartRow = (colGroup.firstChild as Group).mergeStartRow + 1;\n // (colGroup.firstChild as Group).mergeEndRow = (colGroup.firstChild as Group).mergeEndRow + 1;\n // }\n } else if (colGroup.lastChild && row > (colGroup.lastChild as Group).row) {\n colGroup.appendChild(cellGroup);\n } else {\n // let cellBefore: Group;\n // colGroup.forEachChildren((cellGroup: Group) => {\n // if (cellGroup.row === row) {\n // cellBefore = cellGroup;\n // return true;\n // }\n // return false;\n // });\n\n const cellBefore = scene.highPerformanceGetCell(col, row, true);\n if (cellBefore !== cellGroup) {\n colGroup.insertBefore(cellGroup, cellBefore);\n cellBefore && (cellBefore.row = cellBefore.row + 1);\n // if (isNumber(cellBefore.mergeStartRow) && isNumber(cellBefore.mergeEndRow)) {\n // cellBefore.mergeStartRow = cellBefore.mergeStartRow + 1;\n // cellBefore.mergeEndRow = cellBefore.mergeEndRow + 1;\n // }\n if (cellBefore !== colGroup.lastChild) {\n colGroup.lastChild && ((colGroup.lastChild as Group).row = (colGroup.lastChild as Group).row + 1);\n // if (\n // isNumber((colGroup.lastChild as Group).mergeStartRow) &&\n // isNumber((colGroup.lastChild as Group).mergeEndRow)\n // ) {\n // (colGroup.lastChild as Group).mergeStartRow = (colGroup.lastChild as Group).mergeStartRow + 1;\n // (colGroup.lastChild as Group).mergeEndRow = (colGroup.lastChild as Group).mergeEndRow + 1;\n // }\n }\n }\n }\n\n // // reset row number\n // let rowIndex = (colGroup.firstChild as Group)?.row;\n // colGroup.forEachChildren((cellGroup: Group) => {\n // cellGroup.row = rowIndex;\n // rowIndex++;\n // });\n }\n}\n\nfunction removeCellGroup(row: number, scene: Scenegraph) {\n // const infectCellRange = [];\n for (let col = 0; col < scene.table.colCount; col++) {\n // const headerColGroup = scene.getColGroup(col, true);\n const colGroup = scene.getColGroup(col, false);\n if (!colGroup) {\n continue;\n }\n\n // remove cellGroup in colGroup\n let cellGroup: Group;\n colGroup.forEachChildren((cell: Group) => {\n if (cell.row === row) {\n cellGroup = cell;\n return true;\n }\n return false;\n });\n if (cellGroup) {\n colGroup.updateColumnHeight(-(cellGroup as Group).attribute.height);\n colGroup.removeChild(cellGroup);\n // if (\n // isValid(cellGroup.mergeStartCol) &&\n // isValid(cellGroup.mergeEndCol) &&\n // isValid(cellGroup.mergeStartRow) &&\n // isValid(cellGroup.mergeEndRow)\n // ) {\n // infectCellRange.push({\n // col: cellGroup.col,\n // row: cellGroup.row,\n // mergeStartCol: cellGroup.mergeStartCol,\n // mergeEndCol: cellGroup.mergeEndCol,\n // mergeStartRow: cellGroup.mergeStartRow,\n // mergeEndRow: cellGroup.mergeEndRow\n // });\n // }\n }\n }\n // return infectCellRange;\n}\n\nfunction _getUpdateRowIndex(beforeRow: number, afterRow: number, scene: Scenegraph) {\n let updateRow;\n for (let col = 0; col < scene.table.colCount; col++) {\n const rangeBefore = scene.table.getCellRange(col, beforeRow);\n let row;\n if (rangeBefore.start.row <= beforeRow + 1 && rangeBefore.end.row >= beforeRow + 1) {\n addNeedUpdateTag(rangeBefore, scene);\n row = rangeBefore.start.row;\n }\n\n const rangeAfter = scene.table.getCellRange(col, afterRow);\n if (rangeAfter.start.row <= afterRow + 1 && rangeAfter.end.row >= afterRow + 1) {\n addNeedUpdateTag(rangeAfter, scene);\n row = rangeAfter.start.row;\n }\n if (isValid(row)) {\n updateRow = isValid(updateRow) ? Math.min(updateRow, row) : row;\n }\n }\n return updateRow;\n}\nfunction _getUpdateRowIndexUseCellNode(beforeRow: number, afterRow: number, scene: Scenegraph) {\n let updateRow;\n for (let col = 0; col < scene.table.colCount; col++) {\n let row;\n const beforeCell = scene.highPerformanceGetCell(col, beforeRow);\n if (beforeCell.mergeStartRow && beforeCell.mergeEndRow && beforeCell.mergeEndRow > beforeRow) {\n addNeedUpdateTag(\n {\n start: {\n row: beforeCell.mergeStartRow,\n col: scene.table.isAutoRowHeight(afterRow) ? 0 : beforeCell.mergeStartCol\n },\n end: {\n row: beforeCell.mergeEndRow,\n col: scene.table.isAutoRowHeight(afterRow) ? scene.table.colCount - 1 : beforeCell.mergeEndCol\n }\n },\n scene\n );\n row = beforeCell.mergeStartRow;\n }\n\n const afterCell = scene.highPerformanceGetCell(col, afterRow);\n if (afterCell.mergeStartRow && afterCell.mergeEndRow && afterCell.mergeStartRow < afterRow) {\n addNeedUpdateTag(\n {\n start: {\n row: afterCell.mergeStartRow,\n col: scene.table.isAutoRowHeight(afterRow) ? 0 : afterCell.mergeStartCol\n },\n end: {\n row: afterCell.mergeEndRow,\n col: scene.table.isAutoRowHeight(afterRow) ? scene.table.colCount - 1 : afterCell.mergeEndCol\n }\n },\n scene\n );\n row = afterCell.mergeStartRow;\n }\n if (isValid(row)) {\n updateRow = isValid(updateRow) ? Math.min(updateRow, row) : row;\n }\n }\n return updateRow;\n}\n\nfunction addNeedUpdateTag(range: CellRange, scene: Scenegraph) {\n const { start, end } = range;\n for (let col = start.col; col <= end.col; col++) {\n for (let row = start.row; row <= end.row; row++) {\n const cellGroup = scene.highPerformanceGetCell(col, row, true);\n if (!cellGroup) {\n continue;\n }\n cellGroup.needUpdate = true;\n }\n }\n}\n\nfunction setRowSeriesNumberCellNeedUpdate(startUpdateRow: number, scene: Scenegraph) {\n if (scene.table.isHasSeriesNumber()) {\n for (let row = startUpdateRow; row <= scene.table.rowCount - 1; row++) {\n updateCell(0, row, scene.table, false);\n }\n }\n}\n\nfunction verifyProxyRowStatus(scene: Scenegraph) {\n const proxy = scene.proxy;\n const { rowStart, rowEnd, rowLimit, totalRow } = proxy;\n\n if (rowStart > rowEnd) {\n // 当前维护行全部清空, 重置proxy row状态\n proxy.rowStart = scene.table.columnHeaderLevelCount;\n proxy.rowEnd = Math.min(totalRow, proxy.rowStart + rowLimit - 1);\n proxy.currentRow = 0;\n\n return;\n }\n\n // 当前维护行部分清空,并且rowEnd向下已经超出范围,rowStart 需要向上更新\n if (rowStart + rowLimit - 1 > totalRow) {\n const oldRowStart = proxy.rowStart;\n const newRowStart = Math.max(scene.table.columnHeaderLevelCount, totalRow - rowLimit + 1);\n\n if (newRowStart === oldRowStart) {\n return;\n }\n proxy.rowStart = newRowStart;\n proxy.rowEnd = Math.min(totalRow, newRowStart + rowLimit - 1);\n proxy.currentRow = proxy.rowEnd + 1;\n\n const addRowCount = oldRowStart - proxy.rowStart;\n\n // 补充缺失的空行\n for (let i = 0; i < addRowCount; i++) {\n addRowCellGroup(proxy.rowStart + i, scene);\n }\n\n // 更新行内容\n proxy.rowUpdatePos = proxy.rowStart;\n }\n}\n"]}
|
|
@@ -610,27 +610,49 @@ class Scenegraph {
|
|
|
610
610
|
height: this.tableGroup.attribute.height
|
|
611
611
|
})));
|
|
612
612
|
}
|
|
613
|
-
this.table.
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
613
|
+
const hasFrozenCols = this.table.frozenColCount > 0, hasRightFrozenCols = this.table.rightFrozenColCount > 0, hasFrozenRows = this.table.frozenRowCount > 0, hasBottomFrozenRows = this.table.bottomFrozenRowCount > 0;
|
|
614
|
+
if (hasBottomFrozenRows) {
|
|
615
|
+
const bottomFrozenRowsHeight = this.table.getBottomFrozenRowsHeight(), topFrozenBottom = Math.max(this.colHeaderGroup.attribute.y + this.colHeaderGroup.attribute.height, this.cornerHeaderGroup.attribute.y + this.cornerHeaderGroup.attribute.height, this.rightTopCornerGroup.attribute.y + this.rightTopCornerGroup.attribute.height), middleContentBottom = Math.max(this.rowHeaderGroup.attribute.y + this.rowHeaderGroup.attribute.height, this.bodyGroup.attribute.y + this.bodyGroup.attribute.height, this.rightFrozenGroup.attribute.y + this.rightFrozenGroup.attribute.height, topFrozenBottom), bottomFrozenY = Math.min(this.tableGroup.attribute.height - bottomFrozenRowsHeight, middleContentBottom);
|
|
616
|
+
this.bottomFrozenGroup.setAttribute("y", bottomFrozenY), this.leftBottomCornerGroup.setAttributes({
|
|
617
|
+
visible: hasFrozenCols,
|
|
618
|
+
y: bottomFrozenY,
|
|
619
|
+
height: bottomFrozenRowsHeight,
|
|
620
|
+
width: hasFrozenCols ? this.table.getFrozenColsWidth() : 0
|
|
621
|
+
}), this.rightBottomCornerGroup.setAttributes({
|
|
622
|
+
visible: hasRightFrozenCols,
|
|
623
|
+
x: 0,
|
|
624
|
+
y: bottomFrozenY,
|
|
625
|
+
width: 0,
|
|
626
|
+
height: bottomFrozenRowsHeight
|
|
627
|
+
});
|
|
628
|
+
} else this.leftBottomCornerGroup.setAttributes({
|
|
629
|
+
visible: !1,
|
|
630
|
+
width: 0,
|
|
631
|
+
height: 0
|
|
629
632
|
}), this.rightBottomCornerGroup.setAttributes({
|
|
630
|
-
visible: !
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
})
|
|
633
|
+
visible: !1,
|
|
634
|
+
width: 0,
|
|
635
|
+
height: 0
|
|
636
|
+
});
|
|
637
|
+
if (hasRightFrozenCols) {
|
|
638
|
+
const rightFrozenColsWidth = this.table.getRightFrozenColsWidth(), middleContentRight = Math.max(this.colHeaderGroup.attribute.x + this.colHeaderGroup.attribute.width, this.bodyGroup.attribute.x + this.bodyGroup.attribute.width, this.bottomFrozenGroup.attribute.x + this.bottomFrozenGroup.attribute.width), rightFrozenX = Math.min(this.tableGroup.attribute.width - rightFrozenColsWidth, middleContentRight);
|
|
639
|
+
this.rightFrozenGroup.setAttribute("x", rightFrozenX), this.rightTopCornerGroup.setAttributes({
|
|
640
|
+
visible: hasFrozenRows,
|
|
641
|
+
x: rightFrozenX,
|
|
642
|
+
width: hasFrozenRows ? rightFrozenColsWidth : 0,
|
|
643
|
+
height: hasFrozenRows ? this.table.getFrozenRowsHeight() : 0
|
|
644
|
+
}), this.rightBottomCornerGroup.setAttributes({
|
|
645
|
+
visible: hasBottomFrozenRows,
|
|
646
|
+
x: rightFrozenX,
|
|
647
|
+
width: hasBottomFrozenRows ? rightFrozenColsWidth : 0,
|
|
648
|
+
height: hasBottomFrozenRows ? this.table.getBottomFrozenRowsHeight() : 0
|
|
649
|
+
});
|
|
650
|
+
} else this.rightTopCornerGroup.setAttributes({
|
|
651
|
+
visible: !1,
|
|
652
|
+
width: 0,
|
|
653
|
+
height: 0
|
|
654
|
+
});
|
|
655
|
+
this.updateDomContainer();
|
|
634
656
|
}
|
|
635
657
|
updateRowHeight(row, detaY, skipTableHeightMap) {
|
|
636
658
|
detaY = Math.round(detaY), (0, update_height_1.updateRowHeight)(this, row, detaY, skipTableHeightMap),
|