@visactor/vtable 0.9.3-alpha.6 → 0.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/ListTable.d.ts +2 -1
- package/cjs/ListTable.js +9 -7
- package/cjs/ListTable.js.map +1 -1
- package/cjs/PivotChart.d.ts +1 -0
- package/cjs/PivotChart.js +6 -5
- package/cjs/PivotChart.js.map +1 -1
- package/cjs/PivotTable.d.ts +1 -0
- package/cjs/PivotTable.js +7 -5
- package/cjs/PivotTable.js.map +1 -1
- package/cjs/components/axis/axis.d.ts +1 -0
- package/cjs/components/axis/axis.js +10 -1
- package/cjs/components/axis/axis.js.map +1 -1
- package/cjs/components/axis/get-axis-component-size.js +13 -9
- package/cjs/components/axis/get-axis-component-size.js.map +1 -1
- package/cjs/components/legend/legend.js +5 -3
- package/cjs/components/legend/legend.js.map +1 -1
- package/cjs/core/BaseTable.d.ts +8 -5
- package/cjs/core/BaseTable.js +40 -27
- package/cjs/core/BaseTable.js.map +1 -1
- package/cjs/event/drill.d.ts +2 -0
- package/cjs/event/drill.js +15 -2
- package/cjs/event/drill.js.map +1 -1
- package/cjs/event/event.js +2 -1
- package/cjs/event/event.js.map +1 -1
- package/cjs/event/listener/container-dom.js +1 -1
- package/cjs/event/listener/container-dom.js.map +1 -1
- package/cjs/event/listener/scroll-bar.js +2 -0
- package/cjs/event/listener/scroll-bar.js.map +1 -1
- package/cjs/event/pivot-chart/axis-click.js +3 -2
- package/cjs/event/pivot-chart/axis-click.js.map +1 -1
- package/cjs/event/scroll.js +8 -4
- package/cjs/event/scroll.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/chart-helper/get-axis-config.js +5 -5
- package/cjs/layout/chart-helper/get-axis-config.js.map +1 -1
- package/cjs/layout/chart-helper/get-chart-spec.js +2 -2
- package/cjs/layout/chart-helper/get-chart-spec.js.map +1 -1
- package/cjs/layout/pivot-layout.js +4 -2
- package/cjs/layout/pivot-layout.js.map +1 -1
- package/cjs/render/layout/text.js +1 -0
- package/cjs/render/layout/text.js.map +1 -1
- package/cjs/scenegraph/graphic/chart.js.map +1 -1
- package/cjs/scenegraph/graphic/contributions/chart-render-helper.d.ts +8 -0
- package/cjs/scenegraph/graphic/contributions/chart-render-helper.js +66 -0
- package/cjs/scenegraph/graphic/contributions/chart-render-helper.js.map +1 -0
- package/cjs/scenegraph/graphic/contributions/chart-render.js +9 -35
- package/cjs/scenegraph/graphic/contributions/chart-render.js.map +1 -1
- package/cjs/scenegraph/graphic/contributions/group-contribution-render.js +6 -3
- package/cjs/scenegraph/graphic/contributions/group-contribution-render.js.map +1 -1
- package/cjs/scenegraph/graphic/text.js +6 -4
- package/cjs/scenegraph/graphic/text.js.map +1 -1
- package/cjs/scenegraph/group-creater/cell-helper.js +2 -1
- package/cjs/scenegraph/group-creater/cell-helper.js.map +1 -1
- package/cjs/scenegraph/group-creater/cell-type/chart-cell.js +1 -1
- package/cjs/scenegraph/group-creater/cell-type/chart-cell.js.map +1 -1
- package/cjs/scenegraph/group-creater/cell-type/image-cell.js +1 -1
- package/cjs/scenegraph/group-creater/cell-type/image-cell.js.map +1 -1
- package/cjs/scenegraph/group-creater/cell-type/spark-line-cell.js +1 -1
- package/cjs/scenegraph/group-creater/cell-type/spark-line-cell.js.map +1 -1
- package/cjs/scenegraph/group-creater/cell-type/text-cell.js +1 -1
- package/cjs/scenegraph/group-creater/cell-type/text-cell.js.map +1 -1
- package/cjs/scenegraph/group-creater/cell-type/video-cell.js +1 -1
- package/cjs/scenegraph/group-creater/cell-type/video-cell.js.map +1 -1
- package/cjs/scenegraph/group-creater/column-helper.js +3 -3
- package/cjs/scenegraph/group-creater/column-helper.js.map +1 -1
- package/cjs/scenegraph/group-creater/init-scenegraph.d.ts +2 -0
- package/cjs/scenegraph/group-creater/init-scenegraph.js +61 -0
- package/cjs/scenegraph/group-creater/init-scenegraph.js.map +1 -0
- package/cjs/scenegraph/group-creater/progress/create-group-for-first-screen.js +7 -2
- package/cjs/scenegraph/group-creater/progress/create-group-for-first-screen.js.map +1 -1
- package/cjs/scenegraph/group-creater/progress/proxy.d.ts +1 -1
- package/cjs/scenegraph/group-creater/progress/proxy.js +12 -21
- package/cjs/scenegraph/group-creater/progress/proxy.js.map +1 -1
- package/cjs/scenegraph/group-creater/progress/update-position/dynamic-set-x.js +36 -44
- package/cjs/scenegraph/group-creater/progress/update-position/dynamic-set-x.js.map +1 -1
- package/cjs/scenegraph/group-creater/progress/update-position/dynamic-set-y.js +5 -19
- package/cjs/scenegraph/group-creater/progress/update-position/dynamic-set-y.js.map +1 -1
- package/cjs/scenegraph/group-creater/progress/update-position/update-auto-column.d.ts +2 -0
- package/cjs/scenegraph/group-creater/progress/update-position/update-auto-column.js +37 -0
- package/cjs/scenegraph/group-creater/progress/update-position/update-auto-column.js.map +1 -0
- package/cjs/scenegraph/group-creater/progress/update-position/update-auto-row.js.map +1 -1
- package/cjs/scenegraph/group-creater/progress/update-position/util.d.ts +8 -0
- package/cjs/scenegraph/group-creater/progress/update-position/util.js +70 -0
- package/cjs/scenegraph/group-creater/progress/update-position/util.js.map +1 -0
- package/cjs/scenegraph/layout/compute-col-width.js +5 -3
- package/cjs/scenegraph/layout/compute-col-width.js.map +1 -1
- package/cjs/scenegraph/layout/compute-row-height.d.ts +1 -1
- package/cjs/scenegraph/layout/compute-row-height.js +26 -13
- package/cjs/scenegraph/layout/compute-row-height.js.map +1 -1
- package/cjs/scenegraph/layout/frozen.d.ts +2 -0
- package/cjs/scenegraph/layout/frozen.js +139 -6
- package/cjs/scenegraph/layout/frozen.js.map +1 -1
- package/cjs/scenegraph/layout/update-height.js +2 -1
- package/cjs/scenegraph/layout/update-height.js.map +1 -1
- package/cjs/scenegraph/layout/update-width.js +45 -66
- package/cjs/scenegraph/layout/update-width.js.map +1 -1
- package/cjs/scenegraph/refresh-node/update-chart.js +8 -6
- package/cjs/scenegraph/refresh-node/update-chart.js.map +1 -1
- package/cjs/scenegraph/scenegraph.d.ts +9 -4
- package/cjs/scenegraph/scenegraph.js +39 -102
- package/cjs/scenegraph/scenegraph.js.map +1 -1
- package/cjs/scenegraph/style/corner-cell.d.ts +2 -2
- package/cjs/scenegraph/style/corner-cell.js +8 -9
- package/cjs/scenegraph/style/corner-cell.js.map +1 -1
- package/cjs/scenegraph/utils/measure-text.js +9 -8
- package/cjs/scenegraph/utils/measure-text.js.map +1 -1
- package/cjs/state/hover/update-position.js +1 -1
- package/cjs/state/hover/update-position.js.map +1 -1
- package/cjs/state/state.d.ts +1 -0
- package/cjs/state/state.js +4 -2
- package/cjs/state/state.js.map +1 -1
- package/cjs/ts-types/base-table.d.ts +10 -2
- package/cjs/ts-types/base-table.js.map +1 -1
- package/cjs/ts-types/table-engine.d.ts +1 -1
- package/cjs/ts-types/table-engine.js.map +1 -1
- package/dist/vtable.js +1244 -790
- package/dist/vtable.min.js +3 -3
- package/es/ListTable.d.ts +2 -1
- package/es/ListTable.js +9 -7
- package/es/ListTable.js.map +1 -1
- package/es/PivotChart.d.ts +1 -0
- package/es/PivotChart.js +6 -5
- package/es/PivotChart.js.map +1 -1
- package/es/PivotTable.d.ts +1 -0
- package/es/PivotTable.js +7 -5
- package/es/PivotTable.js.map +1 -1
- package/es/components/axis/axis.d.ts +1 -0
- package/es/components/axis/axis.js +10 -1
- package/es/components/axis/axis.js.map +1 -1
- package/es/components/axis/get-axis-component-size.js +13 -9
- package/es/components/axis/get-axis-component-size.js.map +1 -1
- package/es/components/legend/legend.js +5 -3
- package/es/components/legend/legend.js.map +1 -1
- package/es/core/BaseTable.d.ts +8 -5
- package/es/core/BaseTable.js +34 -20
- package/es/core/BaseTable.js.map +1 -1
- package/es/event/drill.d.ts +2 -0
- package/es/event/drill.js +13 -0
- package/es/event/drill.js.map +1 -1
- package/es/event/event.js +3 -3
- package/es/event/event.js.map +1 -1
- package/es/event/listener/container-dom.js +1 -1
- package/es/event/listener/container-dom.js.map +1 -1
- package/es/event/listener/scroll-bar.js +2 -0
- package/es/event/listener/scroll-bar.js.map +1 -1
- package/es/event/pivot-chart/axis-click.js +3 -2
- package/es/event/pivot-chart/axis-click.js.map +1 -1
- package/es/event/scroll.js +4 -1
- package/es/event/scroll.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/chart-helper/get-axis-config.js +5 -5
- package/es/layout/chart-helper/get-axis-config.js.map +1 -1
- package/es/layout/chart-helper/get-chart-spec.js +2 -2
- package/es/layout/chart-helper/get-chart-spec.js.map +1 -1
- package/es/layout/pivot-layout.js +4 -2
- package/es/layout/pivot-layout.js.map +1 -1
- package/es/render/layout/text.js +1 -0
- package/es/render/layout/text.js.map +1 -1
- package/es/scenegraph/graphic/chart.js.map +1 -1
- package/es/scenegraph/graphic/contributions/chart-render-helper.d.ts +8 -0
- package/es/scenegraph/graphic/contributions/chart-render-helper.js +61 -0
- package/es/scenegraph/graphic/contributions/chart-render-helper.js.map +1 -0
- package/es/scenegraph/graphic/contributions/chart-render.js +9 -34
- package/es/scenegraph/graphic/contributions/chart-render.js.map +1 -1
- package/es/scenegraph/graphic/contributions/group-contribution-render.js +7 -2
- package/es/scenegraph/graphic/contributions/group-contribution-render.js.map +1 -1
- package/es/scenegraph/graphic/text.js +6 -4
- package/es/scenegraph/graphic/text.js.map +1 -1
- package/es/scenegraph/group-creater/cell-helper.js +2 -1
- package/es/scenegraph/group-creater/cell-helper.js.map +1 -1
- package/es/scenegraph/group-creater/cell-type/chart-cell.js +1 -1
- package/es/scenegraph/group-creater/cell-type/chart-cell.js.map +1 -1
- package/es/scenegraph/group-creater/cell-type/image-cell.js +1 -1
- package/es/scenegraph/group-creater/cell-type/image-cell.js.map +1 -1
- package/es/scenegraph/group-creater/cell-type/spark-line-cell.js +1 -1
- package/es/scenegraph/group-creater/cell-type/spark-line-cell.js.map +1 -1
- package/es/scenegraph/group-creater/cell-type/text-cell.js +1 -1
- package/es/scenegraph/group-creater/cell-type/text-cell.js.map +1 -1
- package/es/scenegraph/group-creater/cell-type/video-cell.js +1 -1
- package/es/scenegraph/group-creater/cell-type/video-cell.js.map +1 -1
- package/es/scenegraph/group-creater/column-helper.js +3 -3
- package/es/scenegraph/group-creater/column-helper.js.map +1 -1
- package/es/scenegraph/group-creater/init-scenegraph.d.ts +2 -0
- package/es/scenegraph/group-creater/init-scenegraph.js +55 -0
- package/es/scenegraph/group-creater/init-scenegraph.js.map +1 -0
- package/es/scenegraph/group-creater/progress/create-group-for-first-screen.js +6 -2
- package/es/scenegraph/group-creater/progress/create-group-for-first-screen.js.map +1 -1
- package/es/scenegraph/group-creater/progress/proxy.d.ts +1 -1
- package/es/scenegraph/group-creater/progress/proxy.js +13 -18
- package/es/scenegraph/group-creater/progress/proxy.js.map +1 -1
- package/es/scenegraph/group-creater/progress/update-position/dynamic-set-x.js +37 -44
- package/es/scenegraph/group-creater/progress/update-position/dynamic-set-x.js.map +1 -1
- package/es/scenegraph/group-creater/progress/update-position/dynamic-set-y.js +6 -22
- package/es/scenegraph/group-creater/progress/update-position/dynamic-set-y.js.map +1 -1
- package/es/scenegraph/group-creater/progress/update-position/update-auto-column.d.ts +2 -0
- package/es/scenegraph/group-creater/progress/update-position/update-auto-column.js +29 -0
- package/es/scenegraph/group-creater/progress/update-position/update-auto-column.js.map +1 -0
- package/es/scenegraph/group-creater/progress/update-position/update-auto-row.js.map +1 -1
- package/es/scenegraph/group-creater/progress/update-position/util.d.ts +8 -0
- package/es/scenegraph/group-creater/progress/update-position/util.js +60 -0
- package/es/scenegraph/group-creater/progress/update-position/util.js.map +1 -0
- package/es/scenegraph/layout/compute-col-width.js +4 -2
- package/es/scenegraph/layout/compute-col-width.js.map +1 -1
- package/es/scenegraph/layout/compute-row-height.d.ts +1 -1
- package/es/scenegraph/layout/compute-row-height.js +26 -13
- package/es/scenegraph/layout/compute-row-height.js.map +1 -1
- package/es/scenegraph/layout/frozen.d.ts +2 -0
- package/es/scenegraph/layout/frozen.js +137 -3
- package/es/scenegraph/layout/frozen.js.map +1 -1
- package/es/scenegraph/layout/update-height.js +2 -1
- package/es/scenegraph/layout/update-height.js.map +1 -1
- package/es/scenegraph/layout/update-width.js +45 -66
- package/es/scenegraph/layout/update-width.js.map +1 -1
- package/es/scenegraph/refresh-node/update-chart.js +9 -5
- package/es/scenegraph/refresh-node/update-chart.js.map +1 -1
- package/es/scenegraph/scenegraph.d.ts +9 -4
- package/es/scenegraph/scenegraph.js +39 -104
- package/es/scenegraph/scenegraph.js.map +1 -1
- package/es/scenegraph/style/corner-cell.d.ts +2 -2
- package/es/scenegraph/style/corner-cell.js +4 -7
- package/es/scenegraph/style/corner-cell.js.map +1 -1
- package/es/scenegraph/utils/measure-text.js +10 -9
- package/es/scenegraph/utils/measure-text.js.map +1 -1
- package/es/state/hover/update-position.js +1 -1
- package/es/state/hover/update-position.js.map +1 -1
- package/es/state/state.d.ts +1 -0
- package/es/state/state.js +5 -1
- package/es/state/state.js.map +1 -1
- package/es/ts-types/base-table.d.ts +10 -2
- package/es/ts-types/base-table.js.map +1 -1
- package/es/ts-types/table-engine.d.ts +1 -1
- package/es/ts-types/table-engine.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["scenegraph/group-creater/progress/update-position/util.ts"],"names":[],"mappings":"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","file":"util.js","sourcesContent":["import { table } from 'console';\nimport type { Group } from '../../../graphic/group';\nimport { getCellMergeInfo } from '../../../utils/get-cell-merge';\nimport { updateCell } from '../../cell-helper';\nimport type { SceneProxy } from '../proxy';\nimport { BaseTableAPI } from '../../../../ts-types/base-table';\n\nexport function checkFirstRowMerge(row: number, proxy: SceneProxy) {\n for (let col = 0; col < proxy.table.colCount; col++) {\n if (\n (col >= proxy.table.rowHeaderLevelCount && col < proxy.colStart) ||\n (col > proxy.colEnd && col < proxy.table.colCount - proxy.table.rightFrozenColCount)\n ) {\n continue;\n }\n const range = getCellMergeInfo(proxy.table, col, row);\n if (range && range.start.row !== row) {\n // 在row的位置添加range.start.row单元格\n const oldCellGroup = proxy.highPerformanceGetCell(col, row, true);\n const newCellGroup = updateCell(range.start.col, range.start.row, proxy.table, true);\n\n newCellGroup.col = col;\n newCellGroup.row = row;\n newCellGroup.setAttribute(\n 'y',\n proxy.table.getRowsHeight(proxy.table.columnHeaderLevelCount, range.start.row - 1)\n );\n\n oldCellGroup.parent.insertAfter(newCellGroup, oldCellGroup);\n oldCellGroup.parent.removeChild(oldCellGroup);\n\n oldCellGroup.needUpdate = false;\n newCellGroup.needUpdate = false;\n\n // update cache\n if (proxy.cellCache.get(col)) {\n proxy.cellCache.set(col, newCellGroup);\n }\n }\n }\n}\n\nexport function checkFirstColMerge(col: number, scrolling: boolean, proxy: SceneProxy) {\n for (let row = 0; row < proxy.table.rowCount; row++) {\n if (\n (row >= proxy.table.columnHeaderLevelCount && row < proxy.rowStart) ||\n (row > proxy.rowEnd && row < proxy.table.rowCount - proxy.table.bottomFrozenRowCount)\n ) {\n continue;\n }\n\n const range = getCellMergeInfo(proxy.table, col, row);\n if (range && range.start.col !== col) {\n if (scrolling && checkHasColMerge(range.start.col, range.end.col, row, proxy)) {\n continue;\n }\n // 在col的位置添加range.start.col单元格\n const oldCellGroup = proxy.highPerformanceGetCell(col, row, true);\n const newCellGroup = updateCell(range.start.col, range.start.row, proxy.table, true);\n\n newCellGroup.col = col;\n newCellGroup.row = row;\n newCellGroup.setAttribute(\n 'x',\n proxy.table.getColsWidth(proxy.table.rowHeaderLevelCount, range.start.col - 1) - oldCellGroup.parent.attribute.x\n );\n\n oldCellGroup.parent.insertAfter(newCellGroup, oldCellGroup);\n oldCellGroup.parent.removeChild(oldCellGroup);\n\n oldCellGroup.needUpdate = false;\n newCellGroup.needUpdate = false;\n\n // update cache\n if (proxy.cellCache.get(col)) {\n proxy.cellCache.set(col, newCellGroup);\n }\n }\n }\n}\n\nfunction checkHasColMerge(colStart: number, colEnd: number, row: number, proxy: SceneProxy) {\n for (let col = colStart; col <= colEnd; col++) {\n if (\n proxy.highPerformanceGetCell(col, row, true).role !== 'shadow-cell' &&\n proxy.highPerformanceGetCell(col, row, true).role !== 'empty'\n ) {\n return true;\n }\n }\n return false;\n}\n\nexport function getFirstChild(containerGroup: Group): Group {\n let child = containerGroup.firstChild as Group;\n while (child.type !== 'group') {\n child = child._next as Group;\n }\n return child;\n}\n\nexport function getLastChild(containerGroup: Group): Group {\n let child = containerGroup.lastChild as Group;\n while (child.type !== 'group') {\n child = child._prev as Group;\n }\n return child;\n}\n\nexport function getPrevGroup(group: Group): Group {\n let child = group._prev as Group;\n while (child && child.type !== 'group') {\n child = child._prev as Group;\n }\n return child;\n}\n\nexport function getNextGroup(group: Group): Group {\n let child = group._next as Group;\n while (child && child.type !== 'group') {\n child = child._next as Group;\n }\n return child;\n}\n"]}
|
|
@@ -14,6 +14,7 @@ import { computeAxisComponentWidth } from "../../components/axis/get-axis-compon
|
|
|
14
14
|
|
|
15
15
|
export function computeColsWidth(table, colStart, colEnd, update) {
|
|
16
16
|
var _a, _b, _c, _d;
|
|
17
|
+
"undefined" != typeof window && window.performance.now();
|
|
17
18
|
colStart = null != colStart ? colStart : 0, colEnd = null != colEnd ? colEnd : table.colCount - 1,
|
|
18
19
|
0 === colStart && colEnd === table.colCount - 1 && table._clearColRangeWidthsMap();
|
|
19
20
|
const oldColWidths = [];
|
|
@@ -196,11 +197,12 @@ function computeTextWidth(col, row, table) {
|
|
|
196
197
|
const cellRange = table.getCellRange(col, row);
|
|
197
198
|
spanCol = cellRange.end.col - cellRange.start.col + 1;
|
|
198
199
|
}
|
|
199
|
-
const padding = getQuadProps(getProp("padding", actStyle, col, row, table)), paddingWidth = padding[1] + padding[3], fontSize = getProp("fontSize", actStyle, col, row, table), fontFamily = getProp("fontFamily", actStyle, col, row, table), lines = validToString(cellValue).split("\n") || [];
|
|
200
|
+
const padding = getQuadProps(getProp("padding", actStyle, col, row, table)), paddingWidth = padding[1] + padding[3], fontSize = getProp("fontSize", actStyle, col, row, table), fontFamily = getProp("fontFamily", actStyle, col, row, table), fontWeight = getProp("fontWeight", actStyle, col, row, table), lines = validToString(cellValue).split("\n") || [];
|
|
200
201
|
return lines.length >= 1 ? lines.forEach((line => {
|
|
201
202
|
const width = table.measureText(line.slice(0, table.options.maxCharactersNumber || 200), {
|
|
202
203
|
fontSize: fontSize,
|
|
203
|
-
fontFamily: fontFamily
|
|
204
|
+
fontFamily: fontFamily,
|
|
205
|
+
fontWeight: fontWeight
|
|
204
206
|
}).width;
|
|
205
207
|
maxWidth = Math.max((width + paddingWidth + 4 + iconWidth) / spanCol, maxWidth);
|
|
206
208
|
})) : maxWidth = Math.max((paddingWidth + 4 + iconWidth) / spanCol, maxWidth), !1 !== table.internalProps.limitMaxAutoWidth && (maxWidth = Math.min("number" == typeof table.internalProps.limitMaxAutoWidth ? table.internalProps.limitMaxAutoWidth : 450, maxWidth)),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["scenegraph/layout/compute-col-width.ts"],"names":[],"mappings":"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","file":"compute-col-width.js","sourcesContent":["import type { SimpleHeaderLayoutMap } from '../../layout';\nimport type { PivotHeaderLayoutMap } from '../../layout/pivot-header-layout';\nimport type { TextColumnDefine } from '../../ts-types';\nimport { HierarchyState, IconPosition } from '../../ts-types';\nimport * as calc from '../../tools/calc';\nimport { validToString } from '../../tools/util';\nimport { getQuadProps } from '../utils/padding';\nimport { getProp } from '../utils/get-prop';\nimport type { BaseTableAPI } from '../../ts-types/base-table';\nimport type { PivotLayoutMap } from '../../layout/pivot-layout';\nimport { getAxisConfigInPivotChart } from '../../layout/chart-helper/get-axis-config';\nimport { computeAxisComponentWidth } from '../../components/axis/get-axis-component-size';\n\nexport function computeColsWidth(table: BaseTableAPI, colStart?: number, colEnd?: number, update?: boolean): void {\n colStart = colStart ?? 0;\n colEnd = colEnd ?? table.colCount - 1;\n // table._clearColRangeWidthsMap();\n // clear colRangeWidthsMap\n if (colStart === 0 && colEnd === table.colCount - 1) {\n table._clearColRangeWidthsMap();\n // } else {\n // for (let col = colStart; col <= colEnd; col++) {\n // table._clearColRangeWidthsMap(col);\n // }\n }\n\n const oldColWidths = [];\n if (update) {\n for (let col = 0; col < table.colCount; col++) {\n oldColWidths.push(table.getColWidth(col));\n }\n }\n for (let col = colStart; col <= colEnd; col++) {\n let maxWidth;\n if (\n !table.internalProps.transpose &&\n table.internalProps.layoutMap.columnWidths?.[col]?.columnWidthComputeMode === 'only-header' &&\n 'showHeader' in table.internalProps.layoutMap\n ) {\n const temp = table.internalProps.layoutMap.showHeader;\n table.internalProps.layoutMap.showHeader = true;\n maxWidth = computeColWidth(col, 0, table.internalProps.layoutMap.headerLevelCount, table, false);\n table.internalProps.layoutMap.showHeader = temp;\n } else if (\n !table.internalProps.transpose &&\n table.internalProps.layoutMap.columnWidths?.[col]?.columnWidthComputeMode === 'only-body'\n ) {\n maxWidth = computeColWidth(\n col,\n table.internalProps.layoutMap.getBodyRange().start.row,\n table.internalProps.layoutMap.getBodyRange().end.row,\n table,\n false\n );\n } else {\n maxWidth = computeColWidth(col, 0, table.rowCount - 1, table, false);\n }\n\n table._setColContentWidth(col, maxWidth);\n\n const oldWidth = table.getColWidth(col);\n if (oldWidth !== maxWidth) {\n table._clearColRangeWidthsMap(col);\n }\n table.setColWidth(col, maxWidth, false, true);\n }\n // 处理adaptive宽度\n if (table.widthMode === 'adaptive') {\n table._clearColRangeWidthsMap();\n // const canvasWidth = table.internalProps.canvas.width;\n const totalDrawWidth = table.tableNoFrameWidth - table.getFrozenColsWidth() - table.getRightFrozenColsWidth();\n let actualWidth = 0;\n for (let col = table.frozenColCount; col < table.colCount - table.rightFrozenColCount; col++) {\n actualWidth += table.getColWidth(col);\n }\n const factor = totalDrawWidth / actualWidth;\n for (let col = table.frozenColCount; col < table.colCount - table.rightFrozenColCount; col++) {\n let colWidth;\n if (col === table.colCount - table.rightFrozenColCount - 1) {\n colWidth =\n totalDrawWidth - table.getColsWidth(table.frozenColCount, table.colCount - table.rightFrozenColCount - 2);\n } else {\n colWidth = Math.round(table.getColWidth(col) * factor);\n }\n table.setColWidth(col, colWidth, false, true);\n }\n } else if (table.autoFillWidth) {\n // 处理风神列宽特殊逻辑\n table._clearColRangeWidthsMap();\n const canvasWidth = table.tableNoFrameWidth;\n let actualWidth = 0;\n let actualHeaderWidth = 0;\n for (let col = 0; col < table.colCount; col++) {\n const colWidth = table.getColWidth(col);\n if (col < table.frozenColCount || col >= table.colCount - table.rightFrozenColCount) {\n actualHeaderWidth += colWidth;\n }\n\n actualWidth += colWidth;\n }\n\n // 如果内容宽度小于canvas宽度,执行adaptive放大\n if (actualWidth < canvasWidth && actualWidth - actualHeaderWidth > 0) {\n const factor = (canvasWidth - actualHeaderWidth) / (actualWidth - actualHeaderWidth);\n for (let col = table.frozenColCount; col < table.colCount - table.rightFrozenColCount; col++) {\n table.setColWidth(col, table.getColWidth(col) * factor, false, true);\n }\n }\n }\n // console.log('computeColsWidth time:', (typeof window !== 'undefined' ? window.performance.now() : 0) - time);\n\n if (update) {\n for (let col = 0; col < table.colCount; col++) {\n const newColWidth = table.getColWidth(col);\n if (newColWidth !== oldColWidths[col]) {\n // update the column width in scenegraph\n table.scenegraph.updateColWidth(col, newColWidth - oldColWidths[col]);\n }\n }\n }\n}\n\n/**\n * @description: 计算列宽\n * @param {number} col\n * @param {number} startRow\n * @param {number} endRow\n * @param {BaseTableAPI} table\n * @param {boolean} forceCompute\n * @return {*}\n */\nexport function computeColWidth(\n col: number,\n startRow: number,\n endRow: number,\n table: BaseTableAPI,\n forceCompute: boolean\n): number {\n const { layoutMap, transpose } = table.internalProps;\n // const ctx = _getInitContext.call(table);\n let { width } = layoutMap?.getColumnWidthDefined(col) ?? {};\n\n if (transpose) {\n // 转置模式\n if (table.widthMode === 'standard') {\n // return table.getColWidth(col);\n // standard模式使用默认值\n if (table.isRowHeader(col, 0) || table.isCornerHeader(col, 0)) {\n const defaultWidth = Array.isArray(table.defaultHeaderColWidth)\n ? table.defaultHeaderColWidth[col] ?? table.defaultColWidth\n : table.defaultHeaderColWidth;\n if (defaultWidth === 'auto') {\n width = 'auto';\n } else {\n return defaultWidth;\n }\n }\n\n if (width !== 'auto') {\n // if (width && (typeof width === 'string' || width > 0)) return width;\n if (typeof width === 'string') {\n return calc.toPx(width, table.internalProps.calcWidthContext);\n } else if (width) {\n return width;\n }\n return table.defaultColWidth;\n }\n } else if (\n table.widthMode === 'adaptive' &&\n col === 0 &&\n width !== 'auto' &&\n (layoutMap as SimpleHeaderLayoutMap)?.showHeader\n ) {\n // ToBeFixed hack逻辑,转置第一列列宽为header[0]\n if (typeof width === 'string') {\n return calc.toPx(width, table.internalProps.calcWidthContext);\n } else if (width) {\n return width;\n }\n }\n // autoWidth adaptive 需要计算内容宽度\n // do nothing\n } else if (width !== 'auto' && table.widthMode !== 'autoWidth' && !forceCompute) {\n // if (width && (typeof width === 'string' || width > 0)) return width;\n if (typeof width === 'string') {\n return calc.toPx(width, table.internalProps.calcWidthContext);\n } else if (width) {\n return width;\n }\n //是透视表的行表头部分 则宽度按defaultHeaderColWidth设置\n const defaultWidth = table.getColWidthDefine(col);\n if (defaultWidth !== 'auto') {\n return table.getColWidth(col);\n }\n }\n\n return computeAutoColWidth(width, col, startRow, endRow, forceCompute, table);\n}\n\n/**\n * @description: 计算width: auto情况下的列宽\n * @param {number} col\n * @param {number} startRow\n * @param {number} endRow\n * @param {boolean} forceCompute\n * @param {BaseTableAPI} table\n * @return {*}\n */\nfunction computeAutoColWidth(\n widthDeifne: string | number,\n col: number,\n startRow: number,\n endRow: number,\n forceCompute: boolean,\n table: BaseTableAPI\n): number {\n // 处理 auto width\n let maxWidth = 0;\n let deltaRow = 1;\n if (endRow - startRow > 5000) {\n // 超过5000行启动列宽自动计算采样\n deltaRow = Math.ceil((endRow - startRow) / 5000);\n }\n // 如果是透视图\n if (table.isPivotChart() && col >= table.rowHeaderLevelCount) {\n if (!(table.internalProps.layoutMap as PivotLayoutMap).indicatorsAsCol) {\n //并且指标是以行展示 计算列宽需要根据x轴的值域范围\n const optimunWidth = (table.internalProps.layoutMap as PivotLayoutMap).getOptimunWidthForChart(col);\n if (optimunWidth > 0) {\n return optimunWidth;\n }\n } else {\n //直接拿表头的默认列宽\n return table.defaultColWidth;\n }\n }\n\n for (let row = startRow; row <= endRow; row += deltaRow) {\n // 判断透视图轴组件\n if (table.isPivotChart()) {\n const layout = table.internalProps.layoutMap as PivotLayoutMap;\n const axisConfig = getAxisConfigInPivotChart(col, row, layout);\n if (axisConfig) {\n const axisWidth = computeAxisComponentWidth(axisConfig, table);\n if (typeof axisWidth === 'number') {\n maxWidth = Math.max(axisWidth, maxWidth);\n continue;\n }\n } else if (\n layout.isLeftBottomCorner(col, row) ||\n layout.isRightTopCorner(col, row) ||\n layout.isRightBottomCorner(col, row)\n ) {\n // 透视图三角为无效单元格,不参与宽度计算\n continue;\n }\n }\n\n // 判断CustomRender\n const customWidth = computeCustomRenderWidth(col, row, table);\n if (typeof customWidth === 'number') {\n maxWidth = Math.max(customWidth, maxWidth);\n continue;\n }\n\n // 判断透视表如果在指标\n // const indicatorWidth = computeIndicatorWidth(col, row, forceCompute, table);\n // const indicatorWidth = table.internalProps.layoutMap.getColumnWidthDefined(col);\n const indicatorWidth = widthDeifne;\n if (typeof indicatorWidth === 'number' && table.widthMode === 'standard') {\n maxWidth = Math.max(indicatorWidth, maxWidth);\n continue;\n }\n\n const cellType = table.isHeader(col, row)\n ? table._getHeaderLayoutMap(col, row)?.headerType\n : table.getBodyColumnType(col, row);\n if (cellType !== 'text' && cellType !== 'link' && cellType !== 'progressbar') {\n // text&link&progressbar测量文字宽度\n // image&video&sparkline使用默认宽度\n maxWidth = Math.max(maxWidth, table.getColWidth(col) || 0);\n continue;\n }\n\n // 处理树形展开\n let cellHierarchyIndent = 0;\n const layoutMap = table.internalProps.layoutMap;\n //判断是否为表头\n if (layoutMap.isHeader(col, row)) {\n const hd = layoutMap.getHeader(col, row);\n // 如果某级表头设置了only-body,在计算表头内容宽度时跳过改级表头\n if (hd?.define?.columnWidthComputeMode === 'only-body') {\n continue;\n }\n if (hd?.hierarchyLevel) {\n cellHierarchyIndent = (hd.hierarchyLevel ?? 0) * ((layoutMap as PivotHeaderLayoutMap).rowHierarchyIndent ?? 0);\n }\n } else {\n // 基本表格表身body单元格 如果是树形展开 需要考虑缩进值\n // const cellHierarchyState = table.getHierarchyState(col, row);\n // if (cellHierarchyState === HierarchyState.expand || cellHierarchyState === HierarchyState.collapse) {\n const define = table.getBodyColumnDefine(col, row);\n if (define?.tree) {\n const indexArr = table.dataSource.getIndexKey(table.getRecordIndexByRow(col, row));\n cellHierarchyIndent =\n Array.isArray(indexArr) && table.getHierarchyState(col, row) !== HierarchyState.none\n ? (indexArr.length - 1) * ((layoutMap as SimpleHeaderLayoutMap).hierarchyIndent ?? 0)\n : 0;\n }\n }\n\n // 测量文字宽度\n const textWidth = computeTextWidth(col, row, table);\n maxWidth = Math.max(textWidth + cellHierarchyIndent, maxWidth);\n }\n\n // 处理宽度限制\n const colMinWidth = table.getMinColWidth(col);\n const colMaxWidth = table.getMaxColWidth(col);\n if (maxWidth < colMinWidth) {\n return colMinWidth;\n } else if (maxWidth > colMaxWidth) {\n return colMaxWidth;\n }\n return maxWidth;\n}\n\n/**\n * @description: 计算customRender相关列宽\n * @param {number} col\n * @param {number} row\n * @param {BaseTableAPI} table\n * @return {*}\n */\nfunction computeCustomRenderWidth(col: number, row: number, table: BaseTableAPI): number | undefined {\n const customRender = table.getCustomRender(col, row);\n const customLayout = table.getCustomLayout(col, row);\n if (customRender || customLayout) {\n let spanCol = 1;\n let width = 0;\n if (table.isHeader(col, row) || (table.getBodyColumnDefine(col, row) as TextColumnDefine).mergeCell) {\n const cellRange = table.getCellRange(col, row);\n spanCol = cellRange.end.col - cellRange.start.col + 1;\n }\n const arg = {\n col,\n row,\n dataValue: table.getCellOriginValue(col, row),\n value: table.getCellValue(col, row) || '',\n rect: getCellRect(col, row, table),\n table\n };\n if (customLayout) {\n // 处理customLayout\n const customLayoutObj = customLayout(arg);\n customLayoutObj.rootContainer.isRoot = true;\n const size = customLayoutObj.rootContainer.getContentSize();\n width = size.width ?? 0;\n } else if (typeof customRender === 'function') {\n // 处理customRender\n const customRenderObj = customRender(arg);\n width = customRenderObj?.expectedWidth ?? 0;\n } else {\n width = customRender?.expectedWidth ?? 0;\n }\n return width / spanCol;\n }\n return undefined;\n}\n\n/**\n * @description: 计算指标相关列宽\n * @param {number} col\n * @param {number} row\n * @param {boolean} forceCompute\n * @param {BaseTableAPI} table\n * @return {*}\n */\nfunction computeIndicatorWidth(\n col: number,\n row: number,\n forceCompute: boolean,\n table: BaseTableAPI\n): number | undefined {\n const { layoutMap } = table.internalProps;\n if (table.isPivotTable() && (layoutMap as PivotHeaderLayoutMap).isColumnIndicatorHeader(col, row)) {\n // 透视表如果在指标中配置了宽度,使用该宽度作为指标单元格及下面内容单元格的列宽\n const body = layoutMap.getBody(col, row);\n if (body && body.width && body.width !== 'auto' && !forceCompute) {\n const width = Math.round(calc.toPx(body.width, table.internalProps.calcWidthContext));\n return width;\n }\n }\n return undefined;\n}\n\n/**\n * @description: 计算文字宽度\n * @param {number} col\n * @param {number} row\n * @param {BaseTableAPI} table\n * @return {*}\n */\nfunction computeTextWidth(col: number, row: number, table: BaseTableAPI): number {\n let maxWidth = 0;\n const cellValue = table.getCellValue(col, row);\n // const dataValue = table.getCellOriginValue(col, row);\n const actStyle = table._getCellStyle(col, row);\n let iconWidth = 0;\n const define = table.getBodyColumnDefine(col, row);\n const mayHaveIcon = table.getCellType(col, row) !== 'body' ? true : !!define?.icon || !!define?.tree;\n if (mayHaveIcon) {\n const icons = table.getCellIcons(col, row);\n icons?.forEach(icon => {\n if (icon.positionType !== IconPosition.absoluteRight) {\n iconWidth += (icon.width ?? 0) + (icon.marginLeft ?? 0) + (icon.marginRight ?? 0);\n }\n });\n }\n let spanCol = 1;\n if (table.isHeader(col, row) || (table.getBodyColumnDefine(col, row) as TextColumnDefine).mergeCell) {\n const cellRange = table.getCellRange(col, row);\n spanCol = cellRange.end.col - cellRange.start.col + 1;\n }\n\n const padding = getQuadProps(getProp('padding', actStyle, col, row, table));\n const paddingWidth = padding[1] + padding[3]; // + cellHierarchyIndent\n\n const fontSize = getProp('fontSize', actStyle, col, row, table);\n const fontFamily = getProp('fontFamily', actStyle, col, row, table);\n\n const lines = validToString(cellValue).split('\\n') || [];\n if (lines.length >= 1) {\n // eslint-disable-next-line no-loop-func\n lines.forEach((line: string) => {\n const width = table.measureText(line.slice(0, table.options.maxCharactersNumber || 200), {\n fontSize,\n fontFamily\n }).width;\n maxWidth = Math.max(\n // 最大字符上限控制测量的字符\n (width + paddingWidth + 4 + iconWidth) / spanCol, // 这里+4为列宽测量结果的buffer\n maxWidth\n );\n });\n } else {\n maxWidth = Math.max(\n // 最大字符上限控制测量的字符\n (paddingWidth + 4 + iconWidth) / spanCol,\n maxWidth\n );\n }\n // 判断是否需要限制最大宽度 之前写死的450 需要使用配置来判断\n if (table.internalProps.limitMaxAutoWidth !== false) {\n maxWidth = Math.min(\n typeof table.internalProps.limitMaxAutoWidth === 'number' ? table.internalProps.limitMaxAutoWidth : 450,\n maxWidth\n );\n }\n\n return maxWidth;\n}\n\nexport function getCellRect(col: number, row: number, table: BaseTableAPI) {\n return {\n left: 0,\n top: 0,\n right: table.getColWidth(col),\n bottom: table.getRowHeight(row),\n width: table.getColWidth(col),\n height: table.getRowHeight(row)\n };\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["scenegraph/layout/compute-col-width.ts"],"names":[],"mappings":"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","file":"compute-col-width.js","sourcesContent":["import type { SimpleHeaderLayoutMap } from '../../layout';\nimport type { PivotHeaderLayoutMap } from '../../layout/pivot-header-layout';\nimport type { TextColumnDefine } from '../../ts-types';\nimport { HierarchyState, IconPosition } from '../../ts-types';\nimport * as calc from '../../tools/calc';\nimport { validToString } from '../../tools/util';\nimport { getQuadProps } from '../utils/padding';\nimport { getProp } from '../utils/get-prop';\nimport type { BaseTableAPI } from '../../ts-types/base-table';\nimport type { PivotLayoutMap } from '../../layout/pivot-layout';\nimport { getAxisConfigInPivotChart } from '../../layout/chart-helper/get-axis-config';\nimport { computeAxisComponentWidth } from '../../components/axis/get-axis-component-size';\n\nexport function computeColsWidth(table: BaseTableAPI, colStart?: number, colEnd?: number, update?: boolean): void {\n const time = typeof window !== 'undefined' ? window.performance.now() : 0;\n colStart = colStart ?? 0;\n colEnd = colEnd ?? table.colCount - 1;\n // table._clearColRangeWidthsMap();\n // clear colRangeWidthsMap\n if (colStart === 0 && colEnd === table.colCount - 1) {\n table._clearColRangeWidthsMap();\n // } else {\n // for (let col = colStart; col <= colEnd; col++) {\n // table._clearColRangeWidthsMap(col);\n // }\n }\n\n const oldColWidths = [];\n if (update) {\n for (let col = 0; col < table.colCount; col++) {\n oldColWidths.push(table.getColWidth(col));\n }\n }\n for (let col = colStart; col <= colEnd; col++) {\n let maxWidth;\n if (\n !table.internalProps.transpose &&\n table.internalProps.layoutMap.columnWidths?.[col]?.columnWidthComputeMode === 'only-header' &&\n 'showHeader' in table.internalProps.layoutMap\n ) {\n const temp = table.internalProps.layoutMap.showHeader;\n table.internalProps.layoutMap.showHeader = true;\n maxWidth = computeColWidth(col, 0, table.internalProps.layoutMap.headerLevelCount, table, false);\n table.internalProps.layoutMap.showHeader = temp;\n } else if (\n !table.internalProps.transpose &&\n table.internalProps.layoutMap.columnWidths?.[col]?.columnWidthComputeMode === 'only-body'\n ) {\n maxWidth = computeColWidth(\n col,\n table.internalProps.layoutMap.getBodyRange().start.row,\n table.internalProps.layoutMap.getBodyRange().end.row,\n table,\n false\n );\n } else {\n maxWidth = computeColWidth(col, 0, table.rowCount - 1, table, false);\n }\n\n table._setColContentWidth(col, maxWidth);\n\n const oldWidth = table.getColWidth(col);\n if (oldWidth !== maxWidth) {\n table._clearColRangeWidthsMap(col);\n }\n table.setColWidth(col, maxWidth, false, true);\n }\n // 处理adaptive宽度\n if (table.widthMode === 'adaptive') {\n table._clearColRangeWidthsMap();\n // const canvasWidth = table.internalProps.canvas.width;\n const totalDrawWidth = table.tableNoFrameWidth - table.getFrozenColsWidth() - table.getRightFrozenColsWidth();\n let actualWidth = 0;\n for (let col = table.frozenColCount; col < table.colCount - table.rightFrozenColCount; col++) {\n actualWidth += table.getColWidth(col);\n }\n const factor = totalDrawWidth / actualWidth;\n for (let col = table.frozenColCount; col < table.colCount - table.rightFrozenColCount; col++) {\n let colWidth;\n if (col === table.colCount - table.rightFrozenColCount - 1) {\n colWidth =\n totalDrawWidth - table.getColsWidth(table.frozenColCount, table.colCount - table.rightFrozenColCount - 2);\n } else {\n colWidth = Math.round(table.getColWidth(col) * factor);\n }\n table.setColWidth(col, colWidth, false, true);\n }\n } else if (table.autoFillWidth) {\n // 处理风神列宽特殊逻辑\n table._clearColRangeWidthsMap();\n const canvasWidth = table.tableNoFrameWidth;\n let actualWidth = 0;\n let actualHeaderWidth = 0;\n for (let col = 0; col < table.colCount; col++) {\n const colWidth = table.getColWidth(col);\n if (col < table.frozenColCount || col >= table.colCount - table.rightFrozenColCount) {\n actualHeaderWidth += colWidth;\n }\n\n actualWidth += colWidth;\n }\n\n // 如果内容宽度小于canvas宽度,执行adaptive放大\n if (actualWidth < canvasWidth && actualWidth - actualHeaderWidth > 0) {\n const factor = (canvasWidth - actualHeaderWidth) / (actualWidth - actualHeaderWidth);\n for (let col = table.frozenColCount; col < table.colCount - table.rightFrozenColCount; col++) {\n table.setColWidth(col, table.getColWidth(col) * factor, false, true);\n }\n }\n }\n // console.log('computeColsWidth time:', (typeof window !== 'undefined' ? window.performance.now() : 0) - time);\n\n if (update) {\n for (let col = 0; col < table.colCount; col++) {\n const newColWidth = table.getColWidth(col);\n if (newColWidth !== oldColWidths[col]) {\n // update the column width in scenegraph\n table.scenegraph.updateColWidth(col, newColWidth - oldColWidths[col]);\n }\n }\n }\n // console.log('computeColsWidth time:', (typeof window !== 'undefined' ? window.performance.now() : 0) - time, colStart, colEnd);\n}\n\n/**\n * @description: 计算列宽\n * @param {number} col\n * @param {number} startRow\n * @param {number} endRow\n * @param {BaseTableAPI} table\n * @param {boolean} forceCompute\n * @return {*}\n */\nexport function computeColWidth(\n col: number,\n startRow: number,\n endRow: number,\n table: BaseTableAPI,\n forceCompute: boolean\n): number {\n const { layoutMap, transpose } = table.internalProps;\n // const ctx = _getInitContext.call(table);\n let { width } = layoutMap?.getColumnWidthDefined(col) ?? {};\n\n if (transpose) {\n // 转置模式\n if (table.widthMode === 'standard') {\n // return table.getColWidth(col);\n // standard模式使用默认值\n if (table.isRowHeader(col, 0) || table.isCornerHeader(col, 0)) {\n const defaultWidth = Array.isArray(table.defaultHeaderColWidth)\n ? table.defaultHeaderColWidth[col] ?? table.defaultColWidth\n : table.defaultHeaderColWidth;\n if (defaultWidth === 'auto') {\n width = 'auto';\n } else {\n return defaultWidth;\n }\n }\n\n if (width !== 'auto') {\n // if (width && (typeof width === 'string' || width > 0)) return width;\n if (typeof width === 'string') {\n return calc.toPx(width, table.internalProps.calcWidthContext);\n } else if (width) {\n return width;\n }\n return table.defaultColWidth;\n }\n } else if (\n table.widthMode === 'adaptive' &&\n col === 0 &&\n width !== 'auto' &&\n (layoutMap as SimpleHeaderLayoutMap)?.showHeader\n ) {\n // ToBeFixed hack逻辑,转置第一列列宽为header[0]\n if (typeof width === 'string') {\n return calc.toPx(width, table.internalProps.calcWidthContext);\n } else if (width) {\n return width;\n }\n }\n // autoWidth adaptive 需要计算内容宽度\n // do nothing\n } else if (width !== 'auto' && table.widthMode !== 'autoWidth' && !forceCompute) {\n // if (width && (typeof width === 'string' || width > 0)) return width;\n if (typeof width === 'string') {\n return calc.toPx(width, table.internalProps.calcWidthContext);\n } else if (width) {\n return width;\n }\n //是透视表的行表头部分 则宽度按defaultHeaderColWidth设置\n const defaultWidth = table.getColWidthDefine(col);\n if (defaultWidth !== 'auto') {\n return table.getColWidth(col);\n }\n }\n\n return computeAutoColWidth(width, col, startRow, endRow, forceCompute, table);\n}\n\n/**\n * @description: 计算width: auto情况下的列宽\n * @param {number} col\n * @param {number} startRow\n * @param {number} endRow\n * @param {boolean} forceCompute\n * @param {BaseTableAPI} table\n * @return {*}\n */\nfunction computeAutoColWidth(\n widthDeifne: string | number,\n col: number,\n startRow: number,\n endRow: number,\n forceCompute: boolean,\n table: BaseTableAPI\n): number {\n // 处理 auto width\n let maxWidth = 0;\n let deltaRow = 1;\n if (endRow - startRow > 5000) {\n // 超过5000行启动列宽自动计算采样\n deltaRow = Math.ceil((endRow - startRow) / 5000);\n }\n // 如果是透视图\n if (table.isPivotChart() && col >= table.rowHeaderLevelCount) {\n if (!(table.internalProps.layoutMap as PivotLayoutMap).indicatorsAsCol) {\n //并且指标是以行展示 计算列宽需要根据x轴的值域范围\n const optimunWidth = (table.internalProps.layoutMap as PivotLayoutMap).getOptimunWidthForChart(col);\n if (optimunWidth > 0) {\n return optimunWidth;\n }\n } else {\n //直接拿表头的默认列宽\n return table.defaultColWidth;\n }\n }\n\n for (let row = startRow; row <= endRow; row += deltaRow) {\n // 判断透视图轴组件\n if (table.isPivotChart()) {\n const layout = table.internalProps.layoutMap as PivotLayoutMap;\n const axisConfig = getAxisConfigInPivotChart(col, row, layout);\n if (axisConfig) {\n const axisWidth = computeAxisComponentWidth(axisConfig, table);\n if (typeof axisWidth === 'number') {\n maxWidth = Math.max(axisWidth, maxWidth);\n continue;\n }\n } else if (\n layout.isLeftBottomCorner(col, row) ||\n layout.isRightTopCorner(col, row) ||\n layout.isRightBottomCorner(col, row)\n ) {\n // 透视图三角为无效单元格,不参与宽度计算\n continue;\n }\n }\n\n // 判断CustomRender\n const customWidth = computeCustomRenderWidth(col, row, table);\n if (typeof customWidth === 'number') {\n maxWidth = Math.max(customWidth, maxWidth);\n continue;\n }\n\n // 判断透视表如果在指标\n // const indicatorWidth = computeIndicatorWidth(col, row, forceCompute, table);\n // const indicatorWidth = table.internalProps.layoutMap.getColumnWidthDefined(col);\n const indicatorWidth = widthDeifne;\n if (typeof indicatorWidth === 'number' && table.widthMode === 'standard') {\n maxWidth = Math.max(indicatorWidth, maxWidth);\n continue;\n }\n\n const cellType = table.isHeader(col, row)\n ? table._getHeaderLayoutMap(col, row)?.headerType\n : table.getBodyColumnType(col, row);\n if (cellType !== 'text' && cellType !== 'link' && cellType !== 'progressbar') {\n // text&link&progressbar测量文字宽度\n // image&video&sparkline使用默认宽度\n maxWidth = Math.max(maxWidth, table.getColWidth(col) || 0);\n continue;\n }\n\n // 处理树形展开\n let cellHierarchyIndent = 0;\n const layoutMap = table.internalProps.layoutMap;\n //判断是否为表头\n if (layoutMap.isHeader(col, row)) {\n const hd = layoutMap.getHeader(col, row);\n // 如果某级表头设置了only-body,在计算表头内容宽度时跳过改级表头\n if (hd?.define?.columnWidthComputeMode === 'only-body') {\n continue;\n }\n if (hd?.hierarchyLevel) {\n cellHierarchyIndent = (hd.hierarchyLevel ?? 0) * ((layoutMap as PivotHeaderLayoutMap).rowHierarchyIndent ?? 0);\n }\n } else {\n // 基本表格表身body单元格 如果是树形展开 需要考虑缩进值\n // const cellHierarchyState = table.getHierarchyState(col, row);\n // if (cellHierarchyState === HierarchyState.expand || cellHierarchyState === HierarchyState.collapse) {\n const define = table.getBodyColumnDefine(col, row);\n if (define?.tree) {\n const indexArr = table.dataSource.getIndexKey(table.getRecordIndexByRow(col, row));\n cellHierarchyIndent =\n Array.isArray(indexArr) && table.getHierarchyState(col, row) !== HierarchyState.none\n ? (indexArr.length - 1) * ((layoutMap as SimpleHeaderLayoutMap).hierarchyIndent ?? 0)\n : 0;\n }\n }\n\n // 测量文字宽度\n const textWidth = computeTextWidth(col, row, table);\n maxWidth = Math.max(textWidth + cellHierarchyIndent, maxWidth);\n }\n\n // 处理宽度限制\n const colMinWidth = table.getMinColWidth(col);\n const colMaxWidth = table.getMaxColWidth(col);\n if (maxWidth < colMinWidth) {\n return colMinWidth;\n } else if (maxWidth > colMaxWidth) {\n return colMaxWidth;\n }\n return maxWidth;\n}\n\n/**\n * @description: 计算customRender相关列宽\n * @param {number} col\n * @param {number} row\n * @param {BaseTableAPI} table\n * @return {*}\n */\nfunction computeCustomRenderWidth(col: number, row: number, table: BaseTableAPI): number | undefined {\n const customRender = table.getCustomRender(col, row);\n const customLayout = table.getCustomLayout(col, row);\n if (customRender || customLayout) {\n let spanCol = 1;\n let width = 0;\n if (table.isHeader(col, row) || (table.getBodyColumnDefine(col, row) as TextColumnDefine).mergeCell) {\n const cellRange = table.getCellRange(col, row);\n spanCol = cellRange.end.col - cellRange.start.col + 1;\n }\n const arg = {\n col,\n row,\n dataValue: table.getCellOriginValue(col, row),\n value: table.getCellValue(col, row) || '',\n rect: getCellRect(col, row, table),\n table\n };\n if (customLayout) {\n // 处理customLayout\n const customLayoutObj = customLayout(arg);\n customLayoutObj.rootContainer.isRoot = true;\n const size = customLayoutObj.rootContainer.getContentSize();\n width = size.width ?? 0;\n } else if (typeof customRender === 'function') {\n // 处理customRender\n const customRenderObj = customRender(arg);\n width = customRenderObj?.expectedWidth ?? 0;\n } else {\n width = customRender?.expectedWidth ?? 0;\n }\n return width / spanCol;\n }\n return undefined;\n}\n\n/**\n * @description: 计算指标相关列宽\n * @param {number} col\n * @param {number} row\n * @param {boolean} forceCompute\n * @param {BaseTableAPI} table\n * @return {*}\n */\nfunction computeIndicatorWidth(\n col: number,\n row: number,\n forceCompute: boolean,\n table: BaseTableAPI\n): number | undefined {\n const { layoutMap } = table.internalProps;\n if (table.isPivotTable() && (layoutMap as PivotHeaderLayoutMap).isColumnIndicatorHeader(col, row)) {\n // 透视表如果在指标中配置了宽度,使用该宽度作为指标单元格及下面内容单元格的列宽\n const body = layoutMap.getBody(col, row);\n if (body && body.width && body.width !== 'auto' && !forceCompute) {\n const width = Math.round(calc.toPx(body.width, table.internalProps.calcWidthContext));\n return width;\n }\n }\n return undefined;\n}\n\n/**\n * @description: 计算文字宽度\n * @param {number} col\n * @param {number} row\n * @param {BaseTableAPI} table\n * @return {*}\n */\nfunction computeTextWidth(col: number, row: number, table: BaseTableAPI): number {\n let maxWidth = 0;\n const cellValue = table.getCellValue(col, row);\n // const dataValue = table.getCellOriginValue(col, row);\n const actStyle = table._getCellStyle(col, row);\n let iconWidth = 0;\n const define = table.getBodyColumnDefine(col, row);\n const mayHaveIcon = table.getCellType(col, row) !== 'body' ? true : !!define?.icon || !!define?.tree;\n if (mayHaveIcon) {\n const icons = table.getCellIcons(col, row);\n icons?.forEach(icon => {\n if (icon.positionType !== IconPosition.absoluteRight) {\n iconWidth += (icon.width ?? 0) + (icon.marginLeft ?? 0) + (icon.marginRight ?? 0);\n }\n });\n }\n let spanCol = 1;\n if (table.isHeader(col, row) || (table.getBodyColumnDefine(col, row) as TextColumnDefine).mergeCell) {\n const cellRange = table.getCellRange(col, row);\n spanCol = cellRange.end.col - cellRange.start.col + 1;\n }\n\n const padding = getQuadProps(getProp('padding', actStyle, col, row, table));\n const paddingWidth = padding[1] + padding[3]; // + cellHierarchyIndent\n\n const fontSize = getProp('fontSize', actStyle, col, row, table);\n const fontFamily = getProp('fontFamily', actStyle, col, row, table);\n const fontWeight = getProp('fontWeight', actStyle, col, row, table);\n const lines = validToString(cellValue).split('\\n') || [];\n if (lines.length >= 1) {\n // eslint-disable-next-line no-loop-func\n lines.forEach((line: string) => {\n const width = table.measureText(line.slice(0, table.options.maxCharactersNumber || 200), {\n fontSize,\n fontFamily,\n fontWeight\n }).width;\n maxWidth = Math.max(\n // 最大字符上限控制测量的字符\n (width + paddingWidth + 4 + iconWidth) / spanCol, // 这里+4为列宽测量结果的buffer\n maxWidth\n );\n });\n } else {\n maxWidth = Math.max(\n // 最大字符上限控制测量的字符\n (paddingWidth + 4 + iconWidth) / spanCol,\n maxWidth\n );\n }\n // 判断是否需要限制最大宽度 之前写死的450 需要使用配置来判断\n if (table.internalProps.limitMaxAutoWidth !== false) {\n maxWidth = Math.min(\n typeof table.internalProps.limitMaxAutoWidth === 'number' ? table.internalProps.limitMaxAutoWidth : 450,\n maxWidth\n );\n }\n\n return maxWidth;\n}\n\nexport function getCellRect(col: number, row: number, table: BaseTableAPI) {\n return {\n left: 0,\n top: 0,\n right: table.getColWidth(col),\n bottom: table.getRowHeight(row),\n width: table.getColWidth(col),\n height: table.getRowHeight(row)\n };\n}\n"]}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import type { BaseTableAPI } from '../../ts-types/base-table';
|
|
2
|
-
export declare function computeRowsHeight(table: BaseTableAPI, rowStart?: number, rowEnd?: number): void;
|
|
2
|
+
export declare function computeRowsHeight(table: BaseTableAPI, rowStart?: number, rowEnd?: number, isClearRowRangeHeightsMap?: boolean): void;
|
|
3
3
|
export declare function computeRowHeight(row: number, startCol: number, endCol: number, table: BaseTableAPI): number;
|
|
@@ -26,26 +26,29 @@ const utilTextMark = new WrapText({
|
|
|
26
26
|
textConfig: []
|
|
27
27
|
});
|
|
28
28
|
|
|
29
|
-
export function computeRowsHeight(table, rowStart, rowEnd) {
|
|
30
|
-
|
|
29
|
+
export function computeRowsHeight(table, rowStart, rowEnd, isClearRowRangeHeightsMap = !0) {
|
|
30
|
+
"undefined" != typeof window && window.performance.now();
|
|
31
31
|
if ("autoHeight" === table.heightMode || "adaptive" === table.heightMode) {
|
|
32
|
-
|
|
33
|
-
0 === rowStart && rowEnd === table.rowCount - 1
|
|
32
|
+
rowStart = null != rowStart ? rowStart : 0, rowEnd = null != rowEnd ? rowEnd : table.rowCount - 1,
|
|
33
|
+
(0 === rowStart && rowEnd === table.rowCount - 1 || isClearRowRangeHeightsMap) && table._clearRowRangeHeightsMap();
|
|
34
34
|
for (let row = rowStart; row < table.columnHeaderLevelCount; row++) {
|
|
35
35
|
const height = computeRowHeight(row, 0, table.colCount - 1, table);
|
|
36
36
|
table.setRowHeight(row, height);
|
|
37
37
|
}
|
|
38
38
|
if (rowEnd < table.columnHeaderLevelCount) return;
|
|
39
|
-
if (table.internalProps.transpose || table.isPivotTable() && table.internalProps.layoutMap.indicatorsAsCol || !checkFixedStyleAndNoWrap(table)) if (
|
|
40
|
-
|
|
41
|
-
|
|
39
|
+
if (table.internalProps.transpose || table.isPivotTable() && !table.internalProps.layoutMap.indicatorsAsCol || !checkFixedStyleAndNoWrap(table)) if (table.internalProps.transpose || table.isPivotTable() && !table.internalProps.layoutMap.indicatorsAsCol) for (let row = Math.max(rowStart, table.columnHeaderLevelCount); row <= rowEnd; row++) {
|
|
40
|
+
let height;
|
|
41
|
+
height = checkFixedStyleAndNoWrapForTranspose(table, row) ? computeRowHeight(row, 0, table.rowHeaderLevelCount, table) : computeRowHeight(row, 0, table.colCount - 1, table),
|
|
42
42
|
table.setRowHeight(row, height);
|
|
43
43
|
} else for (let row = Math.max(rowStart, table.columnHeaderLevelCount); row <= rowEnd; row++) {
|
|
44
|
-
table._clearRowRangeHeightsMap(row);
|
|
45
44
|
const height = computeRowHeight(row, 0, table.colCount - 1, table);
|
|
46
45
|
table.setRowHeight(row, height);
|
|
47
46
|
} else {
|
|
48
|
-
fillRowsHeight(computeRowHeight(table.columnHeaderLevelCount, 0, table.colCount - 1, table), table.columnHeaderLevelCount, table.rowCount - 1, table);
|
|
47
|
+
fillRowsHeight(computeRowHeight(table.columnHeaderLevelCount, 0, table.colCount - 1, table), table.columnHeaderLevelCount, table.rowCount - 1 - table.bottomFrozenRowCount, table);
|
|
48
|
+
for (let row = table.rowCount - table.bottomFrozenRowCount; row <= rowEnd; row++) {
|
|
49
|
+
const height = computeRowHeight(row, 0, table.colCount - 1, table);
|
|
50
|
+
table.setRowHeight(row, height);
|
|
51
|
+
}
|
|
49
52
|
}
|
|
50
53
|
}
|
|
51
54
|
if ("adaptive" === table.heightMode) {
|
|
@@ -60,7 +63,6 @@ export function computeRowsHeight(table, rowStart, rowEnd) {
|
|
|
60
63
|
table.setRowHeight(row, rowHeight, !1);
|
|
61
64
|
}
|
|
62
65
|
}
|
|
63
|
-
console.log("computeRowsHeight time:", ("undefined" != typeof window ? window.performance.now() : 0) - time);
|
|
64
66
|
}
|
|
65
67
|
|
|
66
68
|
export function computeRowHeight(row, startCol, endCol, table) {
|
|
@@ -95,17 +97,28 @@ export function computeRowHeight(row, startCol, endCol, table) {
|
|
|
95
97
|
}
|
|
96
98
|
|
|
97
99
|
function checkFixedStyleAndNoWrap(table) {
|
|
98
|
-
var _a, _b
|
|
100
|
+
var _a, _b;
|
|
99
101
|
const {layoutMap: layoutMap} = table.internalProps, row = table.columnHeaderLevelCount;
|
|
102
|
+
if (table.internalProps.autoWrapText && ("autoHeight" === table.options.heightMode || "adaptive" === table.options.heightMode)) return !1;
|
|
100
103
|
for (let col = 0; col < table.colCount; col++) {
|
|
101
|
-
const
|
|
102
|
-
if ("function" == typeof cellDefine.style || "function" == typeof cellDefine.icon ||
|
|
104
|
+
const cellDefine = layoutMap.getBody(col, row);
|
|
105
|
+
if ("function" == typeof cellDefine.style || "function" == typeof cellDefine.icon || (null === (_a = cellDefine.define) || void 0 === _a ? void 0 : _a.customRender) || "function" == typeof (null === (_b = cellDefine.define) || void 0 === _b ? void 0 : _b.icon)) return !1;
|
|
103
106
|
const cellStyle = table._getCellStyle(col, row);
|
|
104
107
|
if ("function" == typeof cellStyle.padding || "function" == typeof cellStyle.fontSize || "function" == typeof cellStyle.lineHeight || !0 === cellStyle.autoWrapText) return !1;
|
|
105
108
|
}
|
|
106
109
|
return !0;
|
|
107
110
|
}
|
|
108
111
|
|
|
112
|
+
function checkFixedStyleAndNoWrapForTranspose(table, row) {
|
|
113
|
+
var _a, _b;
|
|
114
|
+
const {layoutMap: layoutMap} = table.internalProps;
|
|
115
|
+
if (table.internalProps.autoWrapText && ("autoHeight" === table.options.heightMode || "adaptive" === table.options.heightMode)) return !1;
|
|
116
|
+
const cellDefine = layoutMap.getBody(table.rowHeaderLevelCount, row);
|
|
117
|
+
if ("function" == typeof cellDefine.style || "function" == typeof cellDefine.icon || (null === (_a = cellDefine.define) || void 0 === _a ? void 0 : _a.customRender) || "function" == typeof (null === (_b = cellDefine.define) || void 0 === _b ? void 0 : _b.icon)) return !1;
|
|
118
|
+
const cellStyle = table._getCellStyle(table.rowHeaderLevelCount, row);
|
|
119
|
+
return "function" != typeof cellStyle.padding && "function" != typeof cellStyle.fontSize && "function" != typeof cellStyle.lineHeight && !0 !== cellStyle.autoWrapText;
|
|
120
|
+
}
|
|
121
|
+
|
|
109
122
|
function fillRowsHeight(height, startRow, endRow, table) {
|
|
110
123
|
for (let row = startRow; row <= endRow; row++) table.setRowHeight(row, height);
|
|
111
124
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["scenegraph/layout/compute-row-height.ts"],"names":[],"mappings":"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","file":"compute-row-height.js","sourcesContent":["import { RichText } from '@visactor/vrender';\nimport type { PivotHeaderLayoutMap } from '../../layout/pivot-header-layout';\nimport { validToString } from '../../tools/util';\nimport type { ColumnIconOption } from '../../ts-types';\nimport { IconPosition } from '../../ts-types';\nimport type { BaseTableAPI, HeaderData } from '../../ts-types/base-table';\nimport type { ColumnData, TextColumnDefine } from '../../ts-types/list-table/layout-map/api';\nimport { WrapText } from '../graphic/text';\nimport { getProp } from '../utils/get-prop';\nimport { getQuadProps } from '../utils/padding';\nimport { getCellRect } from './compute-col-width';\nimport { dealWithRichTextIcon } from '../utils/text-icon-layout';\nimport type { PivotLayoutMap } from '../../layout/pivot-layout';\nimport { getAxisConfigInPivotChart } from '../../layout/chart-helper/get-axis-config';\nimport { computeAxisComponentHeight } from '../../components/axis/get-axis-component-size';\n\nconst utilTextMark = new WrapText({\n autoWrapText: true\n});\nconst utilRichTextMark = new RichText({\n width: 0,\n height: 0,\n textConfig: []\n});\n\nexport function computeRowsHeight(table: BaseTableAPI, rowStart?: number, rowEnd?: number): void {\n const time = typeof window !== 'undefined' ? window.performance.now() : 0;\n if (table.heightMode === 'autoHeight' || table.heightMode === 'adaptive') {\n rowStart = rowStart ?? 0;\n rowEnd = rowEnd ?? table.rowCount - 1;\n\n // clear rowRangeHeightsMap\n if (rowStart === 0 && rowEnd === table.rowCount - 1) {\n table._clearRowRangeHeightsMap();\n } else {\n for (let row = rowStart; row <= rowEnd; row++) {\n table._clearRowRangeHeightsMap(row);\n }\n }\n\n // compute header row in column header row\n for (let row = rowStart; row < table.columnHeaderLevelCount; row++) {\n const height = computeRowHeight(row, 0, table.colCount - 1, table);\n table.setRowHeight(row, height);\n }\n\n if (rowEnd < table.columnHeaderLevelCount) {\n return;\n }\n\n // compute body row\n if (\n !table.internalProps.transpose &&\n !(table.isPivotTable() && (table.internalProps.layoutMap as PivotHeaderLayoutMap).indicatorsAsCol) &&\n checkFixedStyleAndNoWrap(table)\n ) {\n // check fixed style and no wrap situation, fill all row width single compute\n // traspose table and row indicator pivot table cannot use single row height\n const height = computeRowHeight(table.columnHeaderLevelCount, 0, table.colCount - 1, table);\n fillRowsHeight(height, table.columnHeaderLevelCount, table.rowCount - 1, table);\n } else if (\n (table.internalProps.transpose ||\n (table.isPivotTable() && !(table.internalProps.layoutMap as PivotHeaderLayoutMap).indicatorsAsCol)) &&\n checkFixedStyleAndNoWrap(table)\n ) {\n // check fixed style and no wrap situation, just compute 0-table.rowHeaderLevelCount column(the column after row header) in ervey row\n // in traspose table and row indicator pivot table\n for (let row = Math.max(rowStart, table.columnHeaderLevelCount); row <= rowEnd; row++) {\n table._clearRowRangeHeightsMap(row);\n const height = computeRowHeight(row, 0, table.rowHeaderLevelCount, table);\n table.setRowHeight(row, height);\n }\n } else {\n for (let row = Math.max(rowStart, table.columnHeaderLevelCount); row <= rowEnd; row++) {\n table._clearRowRangeHeightsMap(row);\n const height = computeRowHeight(row, 0, table.colCount - 1, table);\n table.setRowHeight(row, height);\n }\n }\n }\n // 处理adaptive高度\n if (table.heightMode === 'adaptive') {\n table._clearRowRangeHeightsMap();\n // const canvasWidth = table.internalProps.canvas.width;\n const totalDrawHeight = table.tableNoFrameHeight - table.getFrozenRowsHeight() - table.getBottomFrozenRowsHeight();\n let actualHeight = 0;\n for (let row = table.frozenRowCount; row < table.rowCount - table.bottomFrozenRowCount; row++) {\n actualHeight += table.getRowHeight(row);\n }\n const factor = totalDrawHeight / actualHeight;\n for (let row = table.frozenRowCount; row < table.rowCount - table.bottomFrozenRowCount; row++) {\n let rowHeight;\n if (row === table.rowCount - table.bottomFrozenRowCount - 1) {\n rowHeight =\n totalDrawHeight - table.getRowsHeight(table.frozenRowCount, table.rowCount - table.bottomFrozenRowCount - 2);\n } else {\n rowHeight = Math.round(table.getRowHeight(row) * factor);\n }\n table.setRowHeight(row, rowHeight, false);\n }\n }\n\n console.log('computeRowsHeight time:', (typeof window !== 'undefined' ? window.performance.now() : 0) - time);\n}\n\nexport function computeRowHeight(row: number, startCol: number, endCol: number, table: BaseTableAPI): number {\n let maxHeight = 0;\n // 如果是透视图\n if (\n table.isPivotChart() &&\n row >= table.columnHeaderLevelCount &&\n row < table.rowCount - table.bottomFrozenRowCount\n ) {\n if ((table.internalProps.layoutMap as PivotLayoutMap).indicatorsAsCol) {\n //并且指标是以列展示 计算行高需要根据y轴的值域范围\n const optimunHeight = (table.internalProps.layoutMap as PivotLayoutMap).getOptimunHeightForChart(row);\n if (optimunHeight > 0) {\n return optimunHeight;\n }\n } else {\n //直接拿默认行高\n return table.getRowHeight(row);\n }\n }\n for (let col = startCol; col <= endCol; col++) {\n // CustomRender height calculation\n const customHeight = computeCustomRenderHeight(col, row, table);\n if (typeof customHeight === 'number') {\n maxHeight = Math.max(customHeight, maxHeight);\n continue;\n }\n\n // Axis component height calculation\n if (table.isPivotChart()) {\n const layout = table.internalProps.layoutMap as PivotLayoutMap;\n const axisConfig = getAxisConfigInPivotChart(col, row, layout);\n if (axisConfig) {\n const axisWidth = computeAxisComponentHeight(axisConfig, table);\n if (typeof axisWidth === 'number') {\n maxHeight = Math.max(axisWidth, maxHeight);\n continue;\n }\n }\n }\n\n // text height calculation\n const textHeight = computeTextHeight(col, row, table);\n maxHeight = Math.max(textHeight, maxHeight);\n }\n return maxHeight;\n}\n\nfunction checkFixedStyleAndNoWrap(table: BaseTableAPI): boolean {\n const { layoutMap } = table.internalProps;\n const row = table.columnHeaderLevelCount;\n for (let col = 0; col < table.colCount; col++) {\n const isHeader = layoutMap.isHeader(col, row);\n const cellDefine = isHeader ? layoutMap.getHeader(col, row) : layoutMap.getBody(col, row);\n if (\n typeof cellDefine.style === 'function' ||\n typeof (cellDefine as ColumnData).icon === 'function' ||\n typeof (cellDefine as HeaderData).headerIcon === 'function' ||\n (isHeader ? cellDefine.define?.headerCustomRender : cellDefine.define?.customRender) ||\n (isHeader ? typeof cellDefine.define?.headerIcon === 'function' : typeof cellDefine.define?.icon === 'function')\n ) {\n return false;\n }\n const cellStyle = table._getCellStyle(col, row);\n if (\n typeof cellStyle.padding === 'function' ||\n typeof cellStyle.fontSize === 'function' ||\n typeof cellStyle.lineHeight === 'function' ||\n cellStyle.autoWrapText === true\n ) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction fillRowsHeight(height: number, startRow: number, endRow: number, table: BaseTableAPI) {\n for (let row = startRow; row <= endRow; row++) {\n table.setRowHeight(row, height);\n }\n}\n\n/**\n * @description: compute customRender height\n * @param {number} col\n * @param {number} row\n * @param {BaseTableAPI} table\n * @return {*}\n */\nfunction computeCustomRenderHeight(col: number, row: number, table: BaseTableAPI): number | undefined {\n const customRender = table.getCustomRender(col, row);\n const customLayout = table.getCustomLayout(col, row);\n if (customRender || customLayout) {\n let spanCol = 1;\n let height = 0;\n if (table.isHeader(col, row) || (table.getBodyColumnDefine(col, row) as TextColumnDefine).mergeCell) {\n const cellRange = table.getCellRange(col, row);\n spanCol = cellRange.end.col - cellRange.start.col + 1;\n }\n const arg = {\n col,\n row,\n dataValue: table.getCellOriginValue(col, row),\n value: table.getCellValue(col, row) || '',\n rect: getCellRect(col, row, table),\n table\n };\n if (customLayout) {\n // 处理customLayout\n const customLayoutObj = customLayout(arg);\n customLayoutObj.rootContainer.isRoot = true;\n const size = customLayoutObj.rootContainer.getContentSize();\n height = size.height ?? 0;\n } else if (typeof customRender === 'function') {\n // 处理customRender\n const customRenderObj = customRender(arg);\n height = customRenderObj?.expectedHeight ?? 0;\n } else {\n height = customRender?.expectedHeight ?? 0;\n }\n return height / spanCol;\n }\n return undefined;\n}\n\n/**\n * @description: compute text height\n * @param {number} col\n * @param {number} row\n * @param {BaseTableAPI} table\n * @return {*}\n */\nfunction computeTextHeight(col: number, row: number, table: BaseTableAPI): number {\n let maxHeight = 0;\n const cellValue = table.getCellValue(col, row);\n // const dataValue = table.getCellOriginValue(col, row);\n const actStyle = table._getCellStyle(col, row);\n let iconHeight = 0;\n let iconWidth = 0;\n const iconInlineFront: ColumnIconOption[] = [];\n let iconInlineFrontHeight = 0;\n const iconInlineEnd: ColumnIconOption[] = [];\n let iconInlineEndHeight = 0;\n const define = table.getBodyColumnDefine(col, row);\n const mayHaveIcon = table.getCellType(col, row) !== 'body' ? true : !!define?.icon || !!define?.tree;\n if (mayHaveIcon) {\n const icons = table.getCellIcons(col, row);\n icons?.forEach(icon => {\n if (\n icon.positionType !== IconPosition.absoluteRight &&\n icon.positionType !== IconPosition.inlineFront &&\n icon.positionType !== IconPosition.inlineEnd\n ) {\n iconWidth += (icon.width ?? 0) + (icon.marginLeft ?? 0) + (icon.marginRight ?? 0);\n iconHeight = Math.max(iconHeight, icon.height ?? 0);\n } else if (icon.positionType === IconPosition.inlineFront) {\n iconInlineFront.push(icon);\n iconInlineFrontHeight = Math.max(\n iconInlineFrontHeight,\n (icon.height ?? 0) + (icon.marginLeft ?? 0) + (icon.marginRight ?? 0)\n );\n } else if (icon.positionType === IconPosition.inlineEnd) {\n iconInlineEnd.push(icon);\n iconInlineEndHeight = Math.max(\n iconInlineEndHeight,\n (icon.height ?? 0) + (icon.marginLeft ?? 0) + (icon.marginRight ?? 0)\n );\n }\n });\n }\n let spanRow = 1;\n if (table.isHeader(col, row) || (table.getBodyColumnDefine(col, row) as TextColumnDefine).mergeCell) {\n const cellRange = table.getCellRange(col, row);\n spanRow = cellRange.end.row - cellRange.start.row + 1;\n }\n\n const padding = getQuadProps(getProp('padding', actStyle, col, row, table));\n const fontSize = getProp('fontSize', actStyle, col, row, table);\n const fontStyle = getProp('fontStyle', actStyle, col, row, table);\n const fontWeight = getProp('fontWeight', actStyle, col, row, table);\n const lineHeight = getProp('lineHeight', actStyle, col, row, table) ?? fontSize;\n const fontFamily = getProp('fontFamily', actStyle, col, row, table);\n const autoWrapText = getProp('autoWrapText', actStyle, col, row, table);\n const lines = validToString(cellValue).split('\\n') || [];\n\n if (iconInlineFront.length || iconInlineEnd.length) {\n // if (autoWrapText) {\n const textOption = Object.assign({\n text: cellValue?.toString(),\n fontFamily,\n fontSize,\n fontStyle,\n fontWeight,\n lineHeight\n });\n textOption.textBaseline = 'middle';\n const textConfig = [\n ...iconInlineFront.map(icon => dealWithRichTextIcon(icon)),\n textOption,\n ...iconInlineEnd.map(icon => dealWithRichTextIcon(icon))\n ];\n utilRichTextMark.setAttributes({\n width: table.getColWidth(col) - (padding[1] + padding[3]) - iconWidth,\n height: 0,\n textConfig\n });\n maxHeight = utilRichTextMark.AABBBounds.height();\n // } else {\n // maxHeight = 0;\n // lines.forEach((line: string, index: number) => {\n // if (index === 0 && iconInlineFront.length) {\n // maxHeight += Math.max(lineHeight, iconInlineFrontHeight);\n // } else if (index === lines.length - 1 && iconInlineEnd.length) {\n // maxHeight += Math.max(lineHeight, iconInlineEndHeight);\n // } else {\n // maxHeight += lineHeight;\n // }\n // });\n // }\n } else if (autoWrapText) {\n const maxLineWidth = table.getColWidth(col) - (padding[1] + padding[3]) - iconWidth;\n utilTextMark.setAttributes({\n maxLineWidth,\n text: lines,\n fontSize,\n fontStyle,\n fontWeight,\n fontFamily,\n lineHeight\n });\n maxHeight = utilTextMark.AABBBounds.height();\n } else {\n // autoWrapText = false\n maxHeight = lines.length * lineHeight;\n }\n\n return (Math.max(maxHeight, iconHeight) + padding[0] + padding[2]) / spanRow;\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["scenegraph/layout/compute-row-height.ts"],"names":[],"mappings":"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","file":"compute-row-height.js","sourcesContent":["import { RichText } from '@visactor/vrender';\nimport type { PivotHeaderLayoutMap } from '../../layout/pivot-header-layout';\nimport { validToString } from '../../tools/util';\nimport type { ColumnIconOption } from '../../ts-types';\nimport { IconPosition } from '../../ts-types';\nimport type { BaseTableAPI, HeaderData } from '../../ts-types/base-table';\nimport type { ColumnData, TextColumnDefine } from '../../ts-types/list-table/layout-map/api';\nimport { WrapText } from '../graphic/text';\nimport { getProp } from '../utils/get-prop';\nimport { getQuadProps } from '../utils/padding';\nimport { getCellRect } from './compute-col-width';\nimport { dealWithRichTextIcon } from '../utils/text-icon-layout';\nimport type { PivotLayoutMap } from '../../layout/pivot-layout';\nimport { getAxisConfigInPivotChart } from '../../layout/chart-helper/get-axis-config';\nimport { computeAxisComponentHeight } from '../../components/axis/get-axis-component-size';\n\nconst utilTextMark = new WrapText({\n autoWrapText: true\n});\nconst utilRichTextMark = new RichText({\n width: 0,\n height: 0,\n textConfig: []\n});\n\nexport function computeRowsHeight(\n table: BaseTableAPI,\n rowStart?: number,\n rowEnd?: number,\n isClearRowRangeHeightsMap: boolean = true\n): void {\n const time = typeof window !== 'undefined' ? window.performance.now() : 0;\n if (table.heightMode === 'autoHeight' || table.heightMode === 'adaptive') {\n rowStart = rowStart ?? 0;\n rowEnd = rowEnd ?? table.rowCount - 1;\n\n // clear rowRangeHeightsMap\n if ((rowStart === 0 && rowEnd === table.rowCount - 1) || isClearRowRangeHeightsMap) {\n table._clearRowRangeHeightsMap();\n }\n // else {\n // for (let row = rowStart; row <= rowEnd; row++) {\n // table._clearRowRangeHeightsMap(row);\n // }\n // }\n\n // compute header row in column header row\n for (let row = rowStart; row < table.columnHeaderLevelCount; row++) {\n const height = computeRowHeight(row, 0, table.colCount - 1, table);\n table.setRowHeight(row, height);\n }\n\n if (rowEnd < table.columnHeaderLevelCount) {\n return;\n }\n\n // compute body row\n if (\n // 以列展示 且符合只需要计算第一行其他行可复用行高的条条件\n !(\n table.internalProps.transpose ||\n (table.isPivotTable() && !(table.internalProps.layoutMap as PivotHeaderLayoutMap).indicatorsAsCol)\n ) &&\n checkFixedStyleAndNoWrap(table)\n ) {\n // check fixed style and no wrap situation, fill all row width single compute\n // traspose table and row indicator pivot table cannot use single row height\n const height = computeRowHeight(table.columnHeaderLevelCount, 0, table.colCount - 1, table);\n fillRowsHeight(height, table.columnHeaderLevelCount, table.rowCount - 1 - table.bottomFrozenRowCount, table);\n //底部冻结的行行高需要单独计算\n for (let row = table.rowCount - table.bottomFrozenRowCount; row <= rowEnd; row++) {\n const height = computeRowHeight(row, 0, table.colCount - 1, table);\n table.setRowHeight(row, height);\n }\n } else if (\n // 以行展示\n table.internalProps.transpose ||\n (table.isPivotTable() && !(table.internalProps.layoutMap as PivotHeaderLayoutMap).indicatorsAsCol)\n ) {\n // check fixed style and no wrap situation, just compute 0-table.rowHeaderLevelCount column(the column after row header) in ervey row\n // in traspose table and row indicator pivot table\n for (let row = Math.max(rowStart, table.columnHeaderLevelCount); row <= rowEnd; row++) {\n // table._clearRowRangeHeightsMap(row);//注释掉 注意有无缓存问题\n let height;\n if (checkFixedStyleAndNoWrapForTranspose(table, row)) {\n // 以行展示 只计算到body第一列样式的情况即可\n height = computeRowHeight(row, 0, table.rowHeaderLevelCount, table);\n } else {\n height = computeRowHeight(row, 0, table.colCount - 1, table);\n }\n table.setRowHeight(row, height);\n }\n } else {\n // 以列展示 需要逐行计算情况\n for (let row = Math.max(rowStart, table.columnHeaderLevelCount); row <= rowEnd; row++) {\n // table._clearRowRangeHeightsMap(row); //注释掉 注意有无缓存问题\n const height = computeRowHeight(row, 0, table.colCount - 1, table);\n table.setRowHeight(row, height);\n }\n }\n }\n // 处理adaptive高度\n if (table.heightMode === 'adaptive') {\n table._clearRowRangeHeightsMap();\n // const canvasWidth = table.internalProps.canvas.width;\n const totalDrawHeight = table.tableNoFrameHeight - table.getFrozenRowsHeight() - table.getBottomFrozenRowsHeight();\n let actualHeight = 0;\n for (let row = table.frozenRowCount; row < table.rowCount - table.bottomFrozenRowCount; row++) {\n actualHeight += table.getRowHeight(row);\n }\n const factor = totalDrawHeight / actualHeight;\n for (let row = table.frozenRowCount; row < table.rowCount - table.bottomFrozenRowCount; row++) {\n let rowHeight;\n if (row === table.rowCount - table.bottomFrozenRowCount - 1) {\n rowHeight =\n totalDrawHeight - table.getRowsHeight(table.frozenRowCount, table.rowCount - table.bottomFrozenRowCount - 2);\n } else {\n rowHeight = Math.round(table.getRowHeight(row) * factor);\n }\n table.setRowHeight(row, rowHeight, false);\n }\n }\n\n // console.log('computeRowsHeight time:', (typeof window !== 'undefined' ? window.performance.now() : 0) - time, rowStart, rowEnd);\n}\n\nexport function computeRowHeight(row: number, startCol: number, endCol: number, table: BaseTableAPI): number {\n let maxHeight = 0;\n // 如果是透视图\n if (\n table.isPivotChart() &&\n row >= table.columnHeaderLevelCount &&\n row < table.rowCount - table.bottomFrozenRowCount\n ) {\n if ((table.internalProps.layoutMap as PivotLayoutMap).indicatorsAsCol) {\n //并且指标是以列展示 计算行高需要根据y轴的值域范围\n const optimunHeight = (table.internalProps.layoutMap as PivotLayoutMap).getOptimunHeightForChart(row);\n if (optimunHeight > 0) {\n return optimunHeight;\n }\n } else {\n //直接拿默认行高\n return table.getRowHeight(row);\n }\n }\n for (let col = startCol; col <= endCol; col++) {\n // CustomRender height calculation\n const customHeight = computeCustomRenderHeight(col, row, table);\n if (typeof customHeight === 'number') {\n maxHeight = Math.max(customHeight, maxHeight);\n continue;\n }\n\n // Axis component height calculation\n if (table.isPivotChart()) {\n const layout = table.internalProps.layoutMap as PivotLayoutMap;\n const axisConfig = getAxisConfigInPivotChart(col, row, layout);\n if (axisConfig) {\n const axisWidth = computeAxisComponentHeight(axisConfig, table);\n if (typeof axisWidth === 'number') {\n maxHeight = Math.max(axisWidth, maxHeight);\n continue;\n }\n }\n }\n\n // text height calculation\n const textHeight = computeTextHeight(col, row, table);\n maxHeight = Math.max(textHeight, maxHeight);\n }\n return maxHeight;\n}\n\nfunction checkFixedStyleAndNoWrap(table: BaseTableAPI): boolean {\n const { layoutMap } = table.internalProps;\n const row = table.columnHeaderLevelCount;\n //设置了全局自动换行的话 不能复用高度计算\n if (\n table.internalProps.autoWrapText &&\n (table.options.heightMode === 'autoHeight' || table.options.heightMode === 'adaptive')\n ) {\n return false;\n }\n for (let col = 0; col < table.colCount; col++) {\n const cellDefine = layoutMap.getBody(col, row);\n if (\n typeof cellDefine.style === 'function' ||\n typeof (cellDefine as ColumnData).icon === 'function' ||\n cellDefine.define?.customRender ||\n typeof cellDefine.define?.icon === 'function'\n ) {\n return false;\n }\n const cellStyle = table._getCellStyle(col, row); //获取的style是结合了theme配置的style\n if (\n typeof cellStyle.padding === 'function' ||\n typeof cellStyle.fontSize === 'function' ||\n typeof cellStyle.lineHeight === 'function' ||\n cellStyle.autoWrapText === true\n ) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction checkFixedStyleAndNoWrapForTranspose(table: BaseTableAPI, row: number): boolean {\n const { layoutMap } = table.internalProps;\n //设置了全局自动换行的话 不能复用高度计算\n if (\n table.internalProps.autoWrapText &&\n (table.options.heightMode === 'autoHeight' || table.options.heightMode === 'adaptive')\n ) {\n return false;\n }\n\n const cellDefine = layoutMap.getBody(table.rowHeaderLevelCount, row);\n if (\n typeof cellDefine.style === 'function' ||\n typeof (cellDefine as ColumnData).icon === 'function' ||\n cellDefine.define?.customRender ||\n typeof cellDefine.define?.icon === 'function'\n ) {\n return false;\n }\n const cellStyle = table._getCellStyle(table.rowHeaderLevelCount, row);\n if (\n typeof cellStyle.padding === 'function' ||\n typeof cellStyle.fontSize === 'function' ||\n typeof cellStyle.lineHeight === 'function' ||\n cellStyle.autoWrapText === true\n ) {\n return false;\n }\n\n return true;\n}\n\nfunction fillRowsHeight(height: number, startRow: number, endRow: number, table: BaseTableAPI) {\n for (let row = startRow; row <= endRow; row++) {\n table.setRowHeight(row, height);\n }\n}\n\n/**\n * @description: compute customRender height\n * @param {number} col\n * @param {number} row\n * @param {BaseTableAPI} table\n * @return {*}\n */\nfunction computeCustomRenderHeight(col: number, row: number, table: BaseTableAPI): number | undefined {\n const customRender = table.getCustomRender(col, row);\n const customLayout = table.getCustomLayout(col, row);\n if (customRender || customLayout) {\n let spanCol = 1;\n let height = 0;\n if (table.isHeader(col, row) || (table.getBodyColumnDefine(col, row) as TextColumnDefine).mergeCell) {\n const cellRange = table.getCellRange(col, row);\n spanCol = cellRange.end.col - cellRange.start.col + 1;\n }\n const arg = {\n col,\n row,\n dataValue: table.getCellOriginValue(col, row),\n value: table.getCellValue(col, row) || '',\n rect: getCellRect(col, row, table),\n table\n };\n if (customLayout) {\n // 处理customLayout\n const customLayoutObj = customLayout(arg);\n customLayoutObj.rootContainer.isRoot = true;\n const size = customLayoutObj.rootContainer.getContentSize();\n height = size.height ?? 0;\n } else if (typeof customRender === 'function') {\n // 处理customRender\n const customRenderObj = customRender(arg);\n height = customRenderObj?.expectedHeight ?? 0;\n } else {\n height = customRender?.expectedHeight ?? 0;\n }\n return height / spanCol;\n }\n return undefined;\n}\n\n/**\n * @description: compute text height\n * @param {number} col\n * @param {number} row\n * @param {BaseTableAPI} table\n * @return {*}\n */\nfunction computeTextHeight(col: number, row: number, table: BaseTableAPI): number {\n let maxHeight = 0;\n const cellValue = table.getCellValue(col, row);\n // const dataValue = table.getCellOriginValue(col, row);\n const actStyle = table._getCellStyle(col, row);\n let iconHeight = 0;\n let iconWidth = 0;\n const iconInlineFront: ColumnIconOption[] = [];\n let iconInlineFrontHeight = 0;\n const iconInlineEnd: ColumnIconOption[] = [];\n let iconInlineEndHeight = 0;\n const define = table.getBodyColumnDefine(col, row);\n const mayHaveIcon = table.getCellType(col, row) !== 'body' ? true : !!define?.icon || !!define?.tree;\n if (mayHaveIcon) {\n const icons = table.getCellIcons(col, row);\n icons?.forEach(icon => {\n if (\n icon.positionType !== IconPosition.absoluteRight &&\n icon.positionType !== IconPosition.inlineFront &&\n icon.positionType !== IconPosition.inlineEnd\n ) {\n iconWidth += (icon.width ?? 0) + (icon.marginLeft ?? 0) + (icon.marginRight ?? 0);\n iconHeight = Math.max(iconHeight, icon.height ?? 0);\n } else if (icon.positionType === IconPosition.inlineFront) {\n iconInlineFront.push(icon);\n iconInlineFrontHeight = Math.max(\n iconInlineFrontHeight,\n (icon.height ?? 0) + (icon.marginLeft ?? 0) + (icon.marginRight ?? 0)\n );\n } else if (icon.positionType === IconPosition.inlineEnd) {\n iconInlineEnd.push(icon);\n iconInlineEndHeight = Math.max(\n iconInlineEndHeight,\n (icon.height ?? 0) + (icon.marginLeft ?? 0) + (icon.marginRight ?? 0)\n );\n }\n });\n }\n let spanRow = 1;\n if (table.isHeader(col, row) || (table.getBodyColumnDefine(col, row) as TextColumnDefine).mergeCell) {\n const cellRange = table.getCellRange(col, row);\n spanRow = cellRange.end.row - cellRange.start.row + 1;\n }\n\n const padding = getQuadProps(getProp('padding', actStyle, col, row, table));\n const fontSize = getProp('fontSize', actStyle, col, row, table);\n const fontStyle = getProp('fontStyle', actStyle, col, row, table);\n const fontWeight = getProp('fontWeight', actStyle, col, row, table);\n const lineHeight = getProp('lineHeight', actStyle, col, row, table) ?? fontSize;\n const fontFamily = getProp('fontFamily', actStyle, col, row, table);\n const autoWrapText = getProp('autoWrapText', actStyle, col, row, table);\n const lines = validToString(cellValue).split('\\n') || [];\n\n if (iconInlineFront.length || iconInlineEnd.length) {\n // if (autoWrapText) {\n const textOption = Object.assign({\n text: cellValue?.toString(),\n fontFamily,\n fontSize,\n fontStyle,\n fontWeight,\n lineHeight\n });\n textOption.textBaseline = 'middle';\n const textConfig = [\n ...iconInlineFront.map(icon => dealWithRichTextIcon(icon)),\n textOption,\n ...iconInlineEnd.map(icon => dealWithRichTextIcon(icon))\n ];\n utilRichTextMark.setAttributes({\n width: table.getColWidth(col) - (padding[1] + padding[3]) - iconWidth,\n height: 0,\n textConfig\n });\n maxHeight = utilRichTextMark.AABBBounds.height();\n // } else {\n // maxHeight = 0;\n // lines.forEach((line: string, index: number) => {\n // if (index === 0 && iconInlineFront.length) {\n // maxHeight += Math.max(lineHeight, iconInlineFrontHeight);\n // } else if (index === lines.length - 1 && iconInlineEnd.length) {\n // maxHeight += Math.max(lineHeight, iconInlineEndHeight);\n // } else {\n // maxHeight += lineHeight;\n // }\n // });\n // }\n } else if (autoWrapText) {\n const maxLineWidth = table.getColWidth(col) - (padding[1] + padding[3]) - iconWidth;\n utilTextMark.setAttributes({\n maxLineWidth,\n text: lines,\n fontSize,\n fontStyle,\n fontWeight,\n fontFamily,\n lineHeight\n });\n maxHeight = utilTextMark.AABBBounds.height();\n } else {\n // autoWrapText = false\n maxHeight = lines.length * lineHeight;\n }\n\n return (Math.max(maxHeight, iconHeight) + padding[0] + padding[2]) / spanRow;\n}\n"]}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
1
|
import type { Scenegraph } from '../scenegraph';
|
|
2
2
|
export declare function dealFrozen(scene: Scenegraph): void;
|
|
3
3
|
export declare function resetFrozen(scene: Scenegraph): void;
|
|
4
|
+
export declare function dealRightFrozen(distRightFrozenCol: number, scene: Scenegraph): void;
|
|
5
|
+
export declare function dealBottomFrozen(distBottomFrozenRow: number, scene: Scenegraph): void;
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { Group } from "../graphic/group";
|
|
2
2
|
|
|
3
|
+
import { createColGroup } from "../group-creater/column";
|
|
4
|
+
|
|
3
5
|
export function dealFrozen(scene) {
|
|
4
6
|
var _a, _b;
|
|
5
7
|
if (scene.table.frozenColCount > scene.table.rowHeaderLevelCount) {
|
|
@@ -43,16 +45,148 @@ function moveColumnFromColHeaderToCornerHeader(scene) {
|
|
|
43
45
|
function moveColumnFromRowHeaderToBody(scene) {
|
|
44
46
|
var _a;
|
|
45
47
|
const column = scene.rowHeaderGroup.lastChild instanceof Group ? scene.rowHeaderGroup.lastChild : null === (_a = scene.rowHeaderGroup.lastChild) || void 0 === _a ? void 0 : _a._prev;
|
|
46
|
-
column && (scene.bodyGroup.firstChild
|
|
47
|
-
scene.bodyGroup.setAttribute("width", scene.bodyGroup.attribute.width + column.attribute.width),
|
|
48
|
+
column && (insertBefore(scene.bodyGroup, column, scene.bodyGroup.firstChild), scene.bodyGroup.setAttribute("width", scene.bodyGroup.attribute.width + column.attribute.width),
|
|
48
49
|
scene.rowHeaderGroup.setAttribute("width", scene.rowHeaderGroup.attribute.width - column.attribute.width));
|
|
49
50
|
}
|
|
50
51
|
|
|
51
52
|
function moveColumnFromCornerHeaderToColHeader(scene) {
|
|
52
53
|
var _a;
|
|
53
54
|
const headerColumn = scene.cornerHeaderGroup.lastChild instanceof Group ? scene.cornerHeaderGroup.lastChild : null === (_a = scene.cornerHeaderGroup.lastChild) || void 0 === _a ? void 0 : _a._prev;
|
|
54
|
-
headerColumn && (scene.colHeaderGroup
|
|
55
|
+
headerColumn && (insertBefore(scene.colHeaderGroup, headerColumn, scene.colHeaderGroup.firstChild),
|
|
55
56
|
scene.colHeaderGroup.setAttribute("width", scene.colHeaderGroup.attribute.width + headerColumn.attribute.width),
|
|
56
57
|
scene.cornerHeaderGroup.setAttribute("width", scene.cornerHeaderGroup.attribute.width - headerColumn.attribute.width));
|
|
57
58
|
}
|
|
59
|
+
|
|
60
|
+
export function dealRightFrozen(distRightFrozenCol, scene) {
|
|
61
|
+
const {table: table, proxy: proxy, rightTopCornerGroup: rightTopCornerGroup, rightFrozenGroup: rightFrozenGroup, rightBottomCornerGroup: rightBottomCornerGroup, bottomFrozenGroup: bottomFrozenGroup, bodyGroup: bodyGroup, colHeaderGroup: colHeaderGroup} = scene, currentRightFrozenCol = scene.table.rightFrozenColCount;
|
|
62
|
+
if (distRightFrozenCol > currentRightFrozenCol) {
|
|
63
|
+
for (let col = table.colCount - currentRightFrozenCol - 1; col >= table.colCount - distRightFrozenCol; col--) {
|
|
64
|
+
insertBefore(rightFrozenGroup, scene.getColGroup(col), rightFrozenGroup.firstChild);
|
|
65
|
+
insertBefore(rightTopCornerGroup, scene.getColGroup(col, !0), rightTopCornerGroup.firstChild);
|
|
66
|
+
insertBefore(rightBottomCornerGroup, scene.getColGroupInBottom(col), rightBottomCornerGroup.firstChild);
|
|
67
|
+
}
|
|
68
|
+
let x = 0;
|
|
69
|
+
rightFrozenGroup.forEachChildren((columnGroup => {
|
|
70
|
+
columnGroup.setAttribute("x", x), x += columnGroup.attribute.width;
|
|
71
|
+
})), x = 0, rightTopCornerGroup.forEachChildren((columnGroup => {
|
|
72
|
+
columnGroup.setAttribute("x", x), x += columnGroup.attribute.width;
|
|
73
|
+
})), x = 0, rightBottomCornerGroup.forEachChildren((columnGroup => {
|
|
74
|
+
columnGroup.setAttribute("x", x), x += columnGroup.attribute.width;
|
|
75
|
+
}));
|
|
76
|
+
} else if (distRightFrozenCol < currentRightFrozenCol) {
|
|
77
|
+
for (let col = table.colCount - currentRightFrozenCol; col < table.colCount - distRightFrozenCol; col++) {
|
|
78
|
+
const colGroup = scene.getColGroup(col);
|
|
79
|
+
colGroup.setAttribute("x", bodyGroup.lastChild.attribute.x + table.getColWidth(bodyGroup.lastChild.col)),
|
|
80
|
+
bodyGroup.appendChild(colGroup);
|
|
81
|
+
const headerColGroup = scene.getColGroupInRightTopCorner(col);
|
|
82
|
+
headerColGroup.setAttribute("x", colHeaderGroup.lastChild.attribute.x + table.getColWidth(colHeaderGroup.lastChild.col)),
|
|
83
|
+
colHeaderGroup.appendChild(headerColGroup);
|
|
84
|
+
const bottomColGroup = scene.getColGroupInRightBottomCorner(col);
|
|
85
|
+
bottomColGroup.setAttribute("x", bottomFrozenGroup.lastChild.attribute.x + table.getColWidth(bottomFrozenGroup.lastChild.col)),
|
|
86
|
+
bottomFrozenGroup.appendChild(bottomColGroup);
|
|
87
|
+
}
|
|
88
|
+
let x = 0;
|
|
89
|
+
rightFrozenGroup.forEachChildren((columnGroup => {
|
|
90
|
+
columnGroup.setAttribute("x", x), x += columnGroup.attribute.width;
|
|
91
|
+
})), x = 0, rightTopCornerGroup.forEachChildren((columnGroup => {
|
|
92
|
+
columnGroup.setAttribute("x", x), x += columnGroup.attribute.width;
|
|
93
|
+
})), x = 0, rightBottomCornerGroup.forEachChildren((columnGroup => {
|
|
94
|
+
columnGroup.setAttribute("x", x), x += columnGroup.attribute.width;
|
|
95
|
+
}));
|
|
96
|
+
}
|
|
97
|
+
rightFrozenGroup.setAttribute("width", table.getColsWidth(table.colCount - distRightFrozenCol, table.colCount - 1)),
|
|
98
|
+
rightTopCornerGroup.setAttribute("width", table.getColsWidth(table.colCount - distRightFrozenCol, table.colCount - 1)),
|
|
99
|
+
rightBottomCornerGroup.setAttribute("width", table.getColsWidth(table.colCount - distRightFrozenCol, table.colCount - 1)),
|
|
100
|
+
table.internalProps.rightFrozenColCount = distRightFrozenCol, scene.updateContainer(),
|
|
101
|
+
scene.component.updateScrollBar(), scene.updateNextFrame();
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
export function dealBottomFrozen(distBottomFrozenRow, scene) {
|
|
105
|
+
const {table: table, proxy: proxy, bottomFrozenGroup: bottomFrozenGroup, leftBottomCornerGroup: leftBottomCornerGroup, rightBottomCornerGroup: rightBottomCornerGroup} = scene;
|
|
106
|
+
bottomFrozenGroup.childrenCount || (proxy.table.isPivotChart() || (createColGroup(leftBottomCornerGroup, 0, 0, 0, table.rowHeaderLevelCount - 1, 0, -1, "rowHeader", table),
|
|
107
|
+
createColGroup(rightBottomCornerGroup, 0, 0, table.colCount - table.rightFrozenColCount, table.colCount - 1, 0, -1, "body", table)),
|
|
108
|
+
createColGroup(bottomFrozenGroup, 0, 0, proxy.colStart, proxy.colEnd, 0, -1, "body", table));
|
|
109
|
+
const currentBottomFrozenRow = scene.table.bottomFrozenRowCount;
|
|
110
|
+
if (distBottomFrozenRow > currentBottomFrozenRow) {
|
|
111
|
+
for (let col = 0; col < table.rowHeaderLevelCount; col++) {
|
|
112
|
+
const bottomFrozenColumnGroup = scene.getColGroupInLeftBottomCorner(col);
|
|
113
|
+
for (let row = table.rowCount - currentBottomFrozenRow - 1; row >= table.rowCount - distBottomFrozenRow; row--) {
|
|
114
|
+
insertBefore(bottomFrozenColumnGroup, scene.getCell(col, row, !0), bottomFrozenColumnGroup.firstChild);
|
|
115
|
+
}
|
|
116
|
+
let y = 0;
|
|
117
|
+
bottomFrozenColumnGroup.forEachChildren((cellGroup => {
|
|
118
|
+
cellGroup.setAttribute("y", y), y += table.getRowHeight(cellGroup.row);
|
|
119
|
+
}));
|
|
120
|
+
}
|
|
121
|
+
for (let col = proxy.colStart; col <= proxy.colEnd; col++) {
|
|
122
|
+
const bottomFrozenColumnGroup = scene.getColGroupInBottom(col);
|
|
123
|
+
for (let row = table.rowCount - currentBottomFrozenRow - 1; row >= table.rowCount - distBottomFrozenRow; row--) {
|
|
124
|
+
insertBefore(bottomFrozenColumnGroup, scene.getCell(col, row, !0), bottomFrozenColumnGroup.firstChild);
|
|
125
|
+
}
|
|
126
|
+
let y = 0;
|
|
127
|
+
bottomFrozenColumnGroup.forEachChildren((cellGroup => {
|
|
128
|
+
cellGroup.setAttribute("y", y), y += table.getRowHeight(cellGroup.row);
|
|
129
|
+
}));
|
|
130
|
+
}
|
|
131
|
+
if (table.rightFrozenColCount > 0) for (let col = table.colCount - table.rightFrozenColCount; col < table.colCount; col++) {
|
|
132
|
+
const bottomFrozenColumnGroup = scene.getColGroupInRightBottomCorner(col);
|
|
133
|
+
for (let row = table.rowCount - currentBottomFrozenRow - 1; row >= table.rowCount - distBottomFrozenRow; row--) {
|
|
134
|
+
insertBefore(bottomFrozenColumnGroup, scene.getCell(col, row, !0), bottomFrozenColumnGroup.firstChild);
|
|
135
|
+
}
|
|
136
|
+
let y = 0;
|
|
137
|
+
bottomFrozenColumnGroup.forEachChildren((cellGroup => {
|
|
138
|
+
cellGroup.setAttribute("y", y), y += table.getRowHeight(cellGroup.row);
|
|
139
|
+
}));
|
|
140
|
+
}
|
|
141
|
+
} else if (distBottomFrozenRow < currentBottomFrozenRow) {
|
|
142
|
+
for (let col = 0; col < table.rowHeaderLevelCount; col++) {
|
|
143
|
+
const columnGroup = scene.getColGroup(col);
|
|
144
|
+
for (let row = table.rowCount - currentBottomFrozenRow; row < table.rowCount - distBottomFrozenRow; row++) {
|
|
145
|
+
const cellGroup = scene.getCell(col, row, !0);
|
|
146
|
+
cellGroup.setAttribute("y", columnGroup.lastChild.attribute.y + table.getRowHeight(columnGroup.lastChild.row)),
|
|
147
|
+
columnGroup.appendChild(cellGroup);
|
|
148
|
+
}
|
|
149
|
+
const bottomFrozenColumnGroup = scene.getColGroupInLeftBottomCorner(col);
|
|
150
|
+
let y = 0;
|
|
151
|
+
bottomFrozenColumnGroup.forEachChildren((cellGroup => {
|
|
152
|
+
cellGroup.setAttribute("y", y), y += table.getRowHeight(cellGroup.row);
|
|
153
|
+
}));
|
|
154
|
+
}
|
|
155
|
+
for (let col = proxy.colStart; col <= proxy.colEnd; col++) {
|
|
156
|
+
const columnGroup = scene.getColGroup(col);
|
|
157
|
+
for (let row = table.rowCount - currentBottomFrozenRow; row < table.rowCount - distBottomFrozenRow; row++) {
|
|
158
|
+
const cellGroup = scene.getCell(col, row, !0);
|
|
159
|
+
cellGroup.setAttribute("y", columnGroup.lastChild.attribute.y + table.getRowHeight(columnGroup.lastChild.row)),
|
|
160
|
+
columnGroup.appendChild(cellGroup);
|
|
161
|
+
}
|
|
162
|
+
const bottomFrozenColumnGroup = scene.getColGroupInBottom(col);
|
|
163
|
+
let y = 0;
|
|
164
|
+
bottomFrozenColumnGroup.forEachChildren((cellGroup => {
|
|
165
|
+
cellGroup.setAttribute("y", y), y += table.getRowHeight(cellGroup.row);
|
|
166
|
+
}));
|
|
167
|
+
}
|
|
168
|
+
if (table.rightFrozenColCount > 0) for (let col = table.colCount - table.rightFrozenColCount; col < table.colCount; col++) {
|
|
169
|
+
const columnGroup = scene.getColGroup(col);
|
|
170
|
+
for (let row = table.rowCount - currentBottomFrozenRow; row < table.rowCount - distBottomFrozenRow; row++) {
|
|
171
|
+
const cellGroup = scene.getCell(col, row, !0);
|
|
172
|
+
cellGroup.setAttribute("y", columnGroup.lastChild.attribute.y + table.getRowHeight(columnGroup.lastChild.row)),
|
|
173
|
+
columnGroup.appendChild(cellGroup);
|
|
174
|
+
}
|
|
175
|
+
const bottomFrozenColumnGroup = scene.getColGroupInRightBottomCorner(col);
|
|
176
|
+
let y = 0;
|
|
177
|
+
bottomFrozenColumnGroup.forEachChildren((cellGroup => {
|
|
178
|
+
cellGroup.setAttribute("y", y), y += table.getRowHeight(cellGroup.row);
|
|
179
|
+
}));
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
bottomFrozenGroup.setAttribute("height", table.getRowsHeight(table.rowCount - distBottomFrozenRow, table.rowCount - 1)),
|
|
183
|
+
leftBottomCornerGroup.setAttribute("height", table.getRowsHeight(table.rowCount - distBottomFrozenRow, table.rowCount - 1)),
|
|
184
|
+
rightBottomCornerGroup.setAttribute("height", table.getRowsHeight(table.rowCount - distBottomFrozenRow, table.rowCount - 1)),
|
|
185
|
+
table.internalProps.bottomFrozenRowCount = distBottomFrozenRow, scene.updateContainer(),
|
|
186
|
+
scene.component.updateScrollBar(), scene.updateNextFrame();
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
function insertBefore(container, newNode, targetGroup) {
|
|
190
|
+
newNode && container && (targetGroup ? container.insertBefore(newNode, targetGroup) : container.appendChild(newNode));
|
|
191
|
+
}
|
|
58
192
|
//# sourceMappingURL=frozen.js.map
|