@visactor/vtable 1.8.2 → 1.8.3
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.js +7 -4
- package/cjs/ListTable.js.map +1 -1
- package/cjs/components/legend/discrete-legend/discrete-legend.js +7 -4
- package/cjs/components/legend/discrete-legend/discrete-legend.js.map +1 -1
- package/cjs/components/react/react-custom-layout.js +1 -0
- package/cjs/components/react/react-custom-layout.js.map +1 -1
- package/cjs/core/BaseTable.js +1 -1
- package/cjs/core/BaseTable.js.map +1 -1
- package/cjs/core/TABLE_EVENT_TYPE.d.ts +2 -0
- package/cjs/core/TABLE_EVENT_TYPE.js +2 -0
- package/cjs/core/TABLE_EVENT_TYPE.js.map +1 -1
- package/cjs/core/tableHelper.d.ts +2 -1
- package/cjs/core/tableHelper.js +9 -2
- package/cjs/core/tableHelper.js.map +1 -1
- package/cjs/data/DataSource.d.ts +1 -0
- package/cjs/data/DataSource.js +4 -0
- package/cjs/data/DataSource.js.map +1 -1
- package/cjs/event/event.js +2 -2
- 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/table-group.js +43 -19
- package/cjs/event/listener/table-group.js.map +1 -1
- package/cjs/event/scroll.js +1 -1
- 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/pivot-header-layout.js +10 -3
- package/cjs/layout/pivot-header-layout.js.map +1 -1
- package/cjs/layout/simple-header-layout.js +5 -1
- package/cjs/layout/simple-header-layout.js.map +1 -1
- package/cjs/scenegraph/component/custom.js +6 -4
- package/cjs/scenegraph/component/custom.js.map +1 -1
- package/cjs/scenegraph/group-creater/cell-helper.js +32 -9
- package/cjs/scenegraph/group-creater/cell-helper.js.map +1 -1
- package/cjs/scenegraph/group-creater/column-helper.js +37 -9
- package/cjs/scenegraph/group-creater/column-helper.js.map +1 -1
- package/cjs/scenegraph/layout/compute-col-width.js +9 -7
- package/cjs/scenegraph/layout/compute-col-width.js.map +1 -1
- package/cjs/scenegraph/layout/compute-row-height.js +9 -7
- package/cjs/scenegraph/layout/compute-row-height.js.map +1 -1
- package/cjs/scenegraph/layout/frozen-react.js +7 -7
- package/cjs/scenegraph/layout/frozen-react.js.map +1 -1
- package/cjs/scenegraph/layout/update-height.js +1 -2
- package/cjs/scenegraph/layout/update-height.js.map +1 -1
- package/cjs/scenegraph/layout/update-width.js +3 -4
- package/cjs/scenegraph/layout/update-width.js.map +1 -1
- package/cjs/state/cell-move/index.js +3 -2
- package/cjs/state/cell-move/index.js.map +1 -1
- package/cjs/state/select/update-position.js +19 -4
- package/cjs/state/select/update-position.js.map +1 -1
- package/cjs/state/state.d.ts +2 -1
- package/cjs/state/state.js +11 -4
- package/cjs/state/state.js.map +1 -1
- package/cjs/ts-types/base-table.d.ts +2 -0
- package/cjs/ts-types/base-table.js.map +1 -1
- package/cjs/ts-types/events.d.ts +11 -0
- package/cjs/ts-types/events.js.map +1 -1
- package/cjs/ts-types/pivot-table/corner.d.ts +3 -0
- package/cjs/ts-types/pivot-table/corner.js.map +1 -1
- package/cjs/vrender.js.map +1 -1
- package/dist/vtable.js +245 -82
- package/dist/vtable.min.js +2 -2
- package/es/ListTable.js +8 -5
- package/es/ListTable.js.map +1 -1
- package/es/components/legend/discrete-legend/discrete-legend.js +5 -4
- package/es/components/legend/discrete-legend/discrete-legend.js.map +1 -1
- package/es/components/react/react-custom-layout.js +1 -0
- package/es/components/react/react-custom-layout.js.map +1 -1
- package/es/core/BaseTable.js +1 -1
- package/es/core/BaseTable.js.map +1 -1
- package/es/core/TABLE_EVENT_TYPE.d.ts +2 -0
- package/es/core/TABLE_EVENT_TYPE.js +2 -0
- package/es/core/TABLE_EVENT_TYPE.js.map +1 -1
- package/es/core/tableHelper.d.ts +2 -1
- package/es/core/tableHelper.js +7 -0
- package/es/core/tableHelper.js.map +1 -1
- package/es/data/DataSource.d.ts +1 -0
- package/es/data/DataSource.js +4 -0
- package/es/data/DataSource.js.map +1 -1
- package/es/event/event.js +2 -2
- 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/table-group.js +43 -19
- package/es/event/listener/table-group.js.map +1 -1
- package/es/event/scroll.js +1 -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/pivot-header-layout.js +10 -3
- package/es/layout/pivot-header-layout.js.map +1 -1
- package/es/layout/simple-header-layout.js +5 -1
- package/es/layout/simple-header-layout.js.map +1 -1
- package/es/scenegraph/component/custom.js +6 -4
- package/es/scenegraph/component/custom.js.map +1 -1
- package/es/scenegraph/group-creater/cell-helper.js +28 -7
- package/es/scenegraph/group-creater/cell-helper.js.map +1 -1
- package/es/scenegraph/group-creater/column-helper.js +35 -8
- package/es/scenegraph/group-creater/column-helper.js.map +1 -1
- package/es/scenegraph/layout/compute-col-width.js +10 -6
- package/es/scenegraph/layout/compute-col-width.js.map +1 -1
- package/es/scenegraph/layout/compute-row-height.js +10 -6
- package/es/scenegraph/layout/compute-row-height.js.map +1 -1
- package/es/scenegraph/layout/frozen-react.js +7 -7
- package/es/scenegraph/layout/frozen-react.js.map +1 -1
- package/es/scenegraph/layout/update-height.js +1 -2
- package/es/scenegraph/layout/update-height.js.map +1 -1
- package/es/scenegraph/layout/update-width.js +3 -4
- package/es/scenegraph/layout/update-width.js.map +1 -1
- package/es/state/cell-move/index.js +3 -2
- package/es/state/cell-move/index.js.map +1 -1
- package/es/state/select/update-position.js +19 -4
- package/es/state/select/update-position.js.map +1 -1
- package/es/state/state.d.ts +2 -1
- package/es/state/state.js +11 -4
- package/es/state/state.js.map +1 -1
- package/es/ts-types/base-table.d.ts +2 -0
- package/es/ts-types/base-table.js.map +1 -1
- package/es/ts-types/events.d.ts +11 -0
- package/es/ts-types/events.js.map +1 -1
- package/es/ts-types/pivot-table/corner.d.ts +3 -0
- package/es/ts-types/pivot-table/corner.js.map +1 -1
- package/es/vrender.js.map +1 -1
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/scenegraph/layout/compute-row-height.ts"],"names":[],"mappings":"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","file":"compute-row-height.js","sourcesContent":["import type { Group as VGroup } from './../../vrender';\nimport { RichText, Text } from './../../vrender';\nimport type { PivotHeaderLayoutMap } from '../../layout/pivot-header-layout';\nimport { validToString } from '../../tools/util';\nimport type { ColumnIconOption, ColumnTypeOption, IRowSeriesNumber } from '../../ts-types';\nimport { IconPosition } from '../../ts-types';\nimport type { BaseTableAPI, HeaderData } from '../../ts-types/base-table';\nimport type { ColumnData, ColumnDefine, TextColumnDefine } from '../../ts-types/list-table/layout-map/api';\nimport { getProp } from '../utils/get-prop';\nimport { getQuadProps } from '../utils/padding';\nimport { dealWithRichTextIcon } from '../utils/text-icon-layout';\nimport type { ComputeAxisComponentHeight } from '../../components/axis/get-axis-component-size';\nimport { Factory } from '../../core/factory';\nimport { isArray, isFunction, isNumber, isObject, isValid } from '@visactor/vutils';\nimport { CheckBox } from '@visactor/vrender-components';\nimport { decodeReactDom, dealPercentCalc } from '../component/custom';\nimport { getCellMergeRange } from '../../tools/merge-range';\nimport { getCellMergeInfo } from '../utils/get-cell-merge';\nimport { getHierarchyOffset } from '../utils/get-hierarchy-offset';\nimport { computeCheckboxCellHeight, computeRadioCellHeight } from './height-util';\nimport { measureTextBounds } from '../utils/text-measure';\nimport { breakString } from '../utils/break-string';\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 update?: boolean\n): void {\n const time = typeof window !== 'undefined' ? window.performance.now() : 0;\n\n const oldRowHeights: number[] = [];\n const newHeights: number[] = [];\n if (update) {\n for (let row = rowStart; row <= rowEnd; row++) {\n // oldRowHeights.push(table.getRowHeight(row));\n oldRowHeights[row] = table.getRowHeight(row);\n }\n }\n\n const layoutMap = table.internalProps.layoutMap;\n if (table.isPivotTable()) {\n (layoutMap as PivotHeaderLayoutMap).enableUseGetBodyCache();\n (layoutMap as PivotHeaderLayoutMap).enableUseHeaderPathCache();\n }\n\n table.defaultHeaderRowHeight;\n table.defaultHeaderColWidth;\n const isDefaultHeaderHasAuto =\n table.defaultHeaderRowHeight === 'auto' ||\n (isArray(table.defaultHeaderRowHeight) && table.defaultHeaderRowHeight.some(item => item === 'auto'));\n const isAllRowsAuto = table.heightMode === 'autoHeight' || table.heightMode === 'adaptive';\n\n if (isAllRowsAuto || isDefaultHeaderHasAuto) {\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 let startCol = 0;\n let endCol = table.colCount - 1;\n if (\n ((table.isPivotTable() && !table.isPivotChart()) ||\n (table.isPivotChart() && !(table.internalProps.layoutMap as PivotHeaderLayoutMap).indicatorsAsCol)) && // no top axis\n checkPivotFixedStyleAndNoWrap(table, row) &&\n !getCellMergeInfo(table, table.rowHeaderLevelCount, row)\n ) {\n // 列表头样式一致,只计算第一列行高,作为整行行高\n startCol = 0;\n endCol = table.rowHeaderLevelCount;\n }\n if (isAllRowsAuto || table.getDefaultRowHeight(row) === 'auto') {\n const height = computeRowHeight(row, startCol, endCol, table);\n newHeights[row] = Math.round(height);\n //表头部分需要马上设置到缓存中 因为adaptive不会调整表头的高度 另外后面adaptive处理过程中有取值 table.getRowsHeight(0, table.columnHeaderLevelCount - 1);\n table._setRowHeight(row, height);\n }\n }\n\n // compute bottom frozen row\n for (let row = table.rowCount - table.bottomFrozenRowCount; row <= rowEnd; row++) {\n if (isAllRowsAuto || table.getDefaultRowHeight(row) === 'auto') {\n const height = computeRowHeight(row, 0, table.colCount - 1, table);\n if (update) {\n newHeights[row] = Math.round(height);\n } else {\n table._setRowHeight(row, height);\n }\n }\n }\n\n if (rowEnd < table.columnHeaderLevelCount || !isAllRowsAuto) {\n // do nothing\n } else {\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(\n height,\n table.columnHeaderLevelCount,\n table.rowCount - 1 - table.bottomFrozenRowCount,\n table,\n update ? newHeights : undefined\n );\n //底部冻结的行行高需要单独计算\n for (let row = table.rowCount - table.bottomFrozenRowCount; row <= rowEnd; row++) {\n const height = computeRowHeight(row, 0, table.colCount - 1, table);\n if (update) {\n newHeights[row] = Math.round(height);\n } else {\n table._setRowHeight(row, height);\n }\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 if (update) {\n newHeights[row] = Math.round(height);\n } else {\n table._setRowHeight(row, height);\n }\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 if (update) {\n newHeights[row] = Math.round(height);\n } else {\n table._setRowHeight(row, height);\n }\n }\n }\n }\n } else {\n if (table.heightMode === 'adaptive' || table.autoFillHeight) {\n // for tree mode\n // getRowHeight() in adaptive will return scaled height\n table.clearRowHeightCache();\n }\n if (update) {\n for (let row = rowStart; row <= rowEnd; row++) {\n newHeights[row] = table.getRowHeight(row);\n }\n }\n }\n\n if ((rowStart === 0 && rowEnd === table.rowCount - 1) || isClearRowRangeHeightsMap) {\n table._clearRowRangeHeightsMap();\n }\n\n // 处理adaptive高度\n if (table.heightMode === 'adaptive') {\n table._clearRowRangeHeightsMap();\n // const canvasWidth = table.internalProps.canvas.width;\n let totalDrawHeight = table.tableNoFrameHeight;\n let startRow = 0;\n let endRow = table.rowCount;\n if (table.heightAdaptiveMode === 'only-body') {\n const columnHeaderHeight = table.getRowsHeight(0, table.columnHeaderLevelCount - 1);\n const bottomHeaderHeight = table.isPivotChart() ? table.getBottomFrozenRowsHeight() : 0;\n totalDrawHeight = table.tableNoFrameHeight - columnHeaderHeight - bottomHeaderHeight;\n startRow = table.columnHeaderLevelCount;\n endRow = table.isPivotChart() ? table.rowCount - table.bottomFrozenRowCount : table.rowCount;\n }\n let actualHeight = 0;\n for (let row = startRow; row < endRow; row++) {\n actualHeight += update ? newHeights[row] ?? table.getRowHeight(row) : table.getRowHeight(row);\n }\n const factor = totalDrawHeight / actualHeight;\n for (let row = startRow; row < endRow; row++) {\n let rowHeight;\n if (row === endRow - 1) {\n rowHeight =\n totalDrawHeight -\n (update\n ? newHeights.reduce((acr, cur, index) => {\n if (index >= startRow && index <= endRow - 2) {\n return acr + cur;\n }\n return acr;\n }, 0)\n : table.getRowsHeight(startRow, endRow - 2));\n } else {\n rowHeight = Math.round(\n (update ? newHeights[row] ?? table.getRowHeight(row) : table.getRowHeight(row)) * factor\n );\n }\n if (update) {\n newHeights[row] = rowHeight;\n } else {\n table._setRowHeight(row, rowHeight, false);\n }\n }\n } else if (table.autoFillHeight) {\n table._clearRowRangeHeightsMap();\n const canvasHeight = table.tableNoFrameHeight;\n let actualHeight = 0;\n let actualHeaderHeight = 0;\n for (let row = 0; row < table.rowCount; row++) {\n const rowHeight = update ? newHeights[row] ?? table.getRowHeight(row) : table.getRowHeight(row);\n if (\n row < table.columnHeaderLevelCount ||\n (table.isPivotChart() && row >= table.rowCount - table.bottomFrozenRowCount)\n ) {\n actualHeaderHeight += rowHeight;\n }\n\n actualHeight += rowHeight;\n }\n table.scenegraph._dealAutoFillHeightOriginRowsHeight = actualHeight;\n // 如果内容高度小于canvas高度,执行adaptive放大\n if (actualHeight < canvasHeight && actualHeight - actualHeaderHeight > 0) {\n const startRow = table.columnHeaderLevelCount;\n const endRow = table.isPivotChart() ? table.rowCount - table.bottomFrozenRowCount : table.rowCount;\n const factor = (canvasHeight - actualHeaderHeight) / (actualHeight - actualHeaderHeight);\n for (let row = startRow; row < endRow; row++) {\n // if (update) {\n // newHeights[row] = newHeights[row] * factor;\n // } else {\n // table.setRowHeight(row, table.getRowHeight(row) * factor);\n // }\n let rowHeight;\n if (row === endRow - 1) {\n rowHeight =\n canvasHeight -\n actualHeaderHeight -\n (update\n ? newHeights.reduce((acr, cur, index) => {\n if (index >= startRow && index <= endRow - 2) {\n return acr + cur;\n }\n return acr;\n }, 0)\n : table.getRowsHeight(startRow, endRow - 2));\n } else {\n rowHeight = Math.round(\n (update ? newHeights[row] ?? table.getRowHeight(row) : table.getRowHeight(row)) * factor\n );\n }\n if (update) {\n newHeights[row] = rowHeight;\n } else {\n table._setRowHeight(row, rowHeight, false);\n }\n }\n }\n }\n\n if (update) {\n for (let row = rowStart; row <= rowEnd; row++) {\n const newRowHeight = newHeights[row] ?? table.getRowHeight(row);\n if (newRowHeight !== (oldRowHeights[row] ?? table.getRowHeight(row))) {\n table._setRowHeight(row, newRowHeight);\n }\n }\n\n if (\n table.heightMode === 'adaptive' ||\n (table.autoFillHeight && table.getAllRowsHeight() <= table.tableNoFrameHeight)\n ) {\n for (let row = 0; row <= table.columnHeaderLevelCount - 1; row++) {\n const newRowHeight = table.getRowHeight(row);\n if (newRowHeight !== (oldRowHeights[row] ?? table.getRowHeight(row))) {\n // update the row height in scenegraph\n table.scenegraph.updateRowHeight(row, newRowHeight - (oldRowHeights[row] ?? table.getRowHeight(row)), true);\n }\n }\n for (let row = table.rowCount - table.bottomFrozenRowCount; row <= table.rowCount - 1; row++) {\n const newRowHeight = table.getRowHeight(row);\n if (newRowHeight !== (oldRowHeights[row] ?? table.getRowHeight(row))) {\n // update the row height in scenegraph\n table.scenegraph.updateRowHeight(row, newRowHeight - (oldRowHeights[row] ?? table.getRowHeight(row)), true);\n }\n }\n }\n for (let row = table.scenegraph.proxy.rowStart; row <= table.scenegraph.proxy.rowEnd; row++) {\n const newRowHeight = table.getRowHeight(row);\n if (newRowHeight !== (oldRowHeights[row] ?? table.getRowHeight(row))) {\n // update the row height in scenegraph\n table.scenegraph.updateRowHeight(row, newRowHeight - (oldRowHeights[row] ?? table.getRowHeight(row)), true);\n }\n }\n }\n // console.log('computeRowsHeight time:', (typeof window !== 'undefined' ? window.performance.now() : 0) - time, rowStart, rowEnd);\n\n if (table.isPivotTable()) {\n (layoutMap as PivotHeaderLayoutMap).disableUseGetBodyCache();\n (layoutMap as PivotHeaderLayoutMap).disableUseHeaderPathCache();\n }\n}\n\nexport function computeRowHeight(row: number, startCol: number, endCol: number, table: BaseTableAPI): number {\n let maxHeight;\n // 如果是透视图\n if (\n table.isPivotChart() &&\n row >= table.columnHeaderLevelCount &&\n row < table.rowCount - table.bottomFrozenRowCount\n ) {\n if ((table.internalProps.layoutMap as PivotHeaderLayoutMap).indicatorsAsCol) {\n //并且指标是以列展示 计算行高需要根据y轴的值域范围\n const optimunHeight = (table.internalProps.layoutMap as PivotHeaderLayoutMap).getOptimunHeightForChart(row);\n if (optimunHeight > 0) {\n return optimunHeight;\n }\n } else {\n //直接拿默认行高\n const defaultHeight = table.getDefaultRowHeight(row);\n if (isNumber(defaultHeight)) {\n return defaultHeight;\n }\n }\n }\n for (let col = startCol; col <= endCol; col++) {\n // CustomRender height calculation\n const customHeight = computeCustomRenderHeight(col, row, table);\n if (customHeight) {\n maxHeight = isValid(maxHeight) ? Math.max(customHeight.height, maxHeight) : customHeight.height;\n if (!customHeight.renderDefault) {\n continue;\n }\n }\n\n // Axis component height calculation\n if (table.isPivotChart()) {\n const layout = table.internalProps.layoutMap as PivotHeaderLayoutMap;\n const axisConfig = layout.getAxisConfigInPivotChart(col, row);\n if (axisConfig) {\n const computeAxisComponentHeight: ComputeAxisComponentHeight =\n Factory.getFunction('computeAxisComponentHeight');\n const axisWidth = computeAxisComponentHeight(axisConfig, table);\n if (typeof axisWidth === 'number') {\n maxHeight = isValid(maxHeight) ? Math.max(axisWidth, maxHeight) : axisWidth;\n continue;\n }\n }\n }\n\n if (\n table.isPivotChart() &&\n ((table.isLeftFrozenColumn(col) && table.isBottomFrozenRow(row)) ||\n (table.isRightFrozenColumn(col) && table.isBottomFrozenRow(row)))\n ) {\n continue;\n }\n const cellType = table.isHeader(col, row)\n ? (table._getHeaderLayoutMap(col, row) as HeaderData)?.headerType\n : table.getBodyColumnType(col, row);\n // if ( isValid(cellType) && cellType !== 'text' && cellType !== 'link' && cellType !== 'progressbar' && cellType !== 'checkbox') {\n // // text&link&progressbar测量文字宽度\n // // image&video&sparkline使用默认宽度\n // const defaultHeight = table.getDefaultRowHeight(row);\n // maxHeight = Math.max(maxHeight, isNumber(defaultHeight) ? defaultHeight : table.defaultRowHeight);\n // continue;\n // }\n\n // text height calculation\n const textHeight = computeTextHeight(col, row, cellType, table);\n maxHeight = isValid(maxHeight) ? Math.max(textHeight, maxHeight) : textHeight;\n }\n if (isValid(maxHeight)) {\n return maxHeight;\n }\n\n const defaultHeight = table.getDefaultRowHeight(row);\n return isNumber(defaultHeight) ? defaultHeight : table.defaultRowHeight;\n}\n\nfunction checkFixedStyleAndNoWrap(table: BaseTableAPI): boolean {\n const { layoutMap } = table.internalProps;\n const row = table.columnHeaderLevelCount;\n //设置了全局自动换行的话 不能复用高度计算\n if (\n (table.internalProps.autoWrapText || table.internalProps.enableLineBreak || table.isPivotChart()) &&\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 (cellDefine.cellType === 'radio') {\n return false;\n }\n if (\n typeof cellDefine.style === 'function' ||\n typeof (cellDefine as ColumnData).icon === 'function' ||\n (cellDefine.define as ColumnDefine)?.customRender ||\n (cellDefine.define as ColumnDefine)?.customLayout ||\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 || table.internalProps.enableLineBreak) &&\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 as ColumnDefine)?.customRender ||\n (cellDefine.define as ColumnDefine)?.customLayout ||\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 checkPivotFixedStyleAndNoWrap(table: BaseTableAPI, row: number) {\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 headerDefine = layoutMap.getHeader(table.rowHeaderLevelCount, row);\n if (\n typeof headerDefine.style === 'function' ||\n typeof (headerDefine as HeaderData).icons === 'function' ||\n (headerDefine.define as ColumnDefine)?.headerCustomRender ||\n (headerDefine.define as ColumnDefine)?.headerCustomLayout ||\n typeof headerDefine.define?.icon === 'function'\n ) {\n return false;\n }\n const headerStyle = table._getCellStyle(table.rowHeaderLevelCount, row);\n if (\n typeof headerStyle.padding === 'function' ||\n typeof headerStyle.fontSize === 'function' ||\n typeof headerStyle.lineHeight === 'function' ||\n headerStyle.autoWrapText === true\n ) {\n return false;\n }\n\n return true;\n}\n\nfunction fillRowsHeight(\n height: number,\n startRow: number,\n endRow: number,\n table: BaseTableAPI,\n newHeights: number[] | undefined\n) {\n if (table.internalProps.useOneRowHeightFillAll) {\n return;\n }\n for (let row = startRow; row <= endRow; row++) {\n if (newHeights) {\n newHeights[row] = height;\n } else {\n table._setRowHeight(row, height);\n }\n }\n table.internalProps.useOneRowHeightFillAll = true;\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) {\n const customRender = table.getCustomRender(col, row);\n const customLayout = table.getCustomLayout(col, row);\n if (customRender || customLayout) {\n let spanRow = 1;\n let height = 0;\n let renderDefault = false;\n let enableCellPadding = false;\n if (\n table.isHeader(col, row) ||\n (table.getBodyColumnDefine(col, row) as TextColumnDefine)?.mergeCell ||\n table.hasCustomMerge()\n ) {\n const cellRange = table.getCellRange(col, row);\n spanRow = cellRange.end.row - cellRange.start.row + 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 (isFunction(customLayout)) {\n // 处理customLayout\n const customLayoutObj = customLayout(arg);\n if (customLayoutObj.rootContainer) {\n customLayoutObj.rootContainer = decodeReactDom(customLayoutObj.rootContainer);\n dealPercentCalc(customLayoutObj.rootContainer, table.getColWidth(col), 0);\n customLayoutObj.rootContainer.setStage(table.scenegraph.stage);\n height = (customLayoutObj.rootContainer as VGroup).AABBBounds.height() ?? 0;\n renderDefault = customLayoutObj.renderDefault;\n enableCellPadding = customLayoutObj.enableCellPadding;\n } else {\n height = 0;\n renderDefault = customLayoutObj.renderDefault;\n enableCellPadding = customLayoutObj.enableCellPadding;\n }\n } else if (typeof customRender === 'function') {\n // 处理customRender\n const customRenderObj = customRender(arg);\n height = customRenderObj?.expectedHeight ?? 0;\n renderDefault = customRenderObj?.renderDefault;\n } else {\n height = customRender?.expectedHeight ?? 0;\n renderDefault = customRender?.renderDefault;\n }\n if (enableCellPadding) {\n const actStyle = table._getCellStyle(col, row);\n const padding = getQuadProps(getProp('padding', actStyle, col, row, table));\n height += padding[0] + padding[2];\n }\n return {\n height: height / spanRow,\n renderDefault\n };\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, cellType: ColumnTypeOption, 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.getCellLocation(col, row) !== 'body' ? true : !!define?.icon || !!define?.tree;\n\n let mayHaveIcon = false;\n if (table.getCellLocation(col, row) !== 'body') {\n mayHaveIcon = true;\n } else {\n const define = table.getBodyColumnDefine(col, row);\n mayHaveIcon = !!define?.icon || !!(define as ColumnDefine)?.tree || (define as IRowSeriesNumber)?.dragOrder;\n }\n\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 let endCol = col;\n if (\n table.isHeader(col, row) ||\n (table.getBodyColumnDefine(col, row) as TextColumnDefine)?.mergeCell ||\n table.hasCustomMerge()\n ) {\n const cellRange = table.getCellRange(col, row);\n spanRow = cellRange.end.row - cellRange.start.row + 1;\n col = cellRange.start.col;\n endCol = cellRange.end.col;\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 lineClamp = getProp('lineClamp', actStyle, col, row, table);\n let text;\n if (\n cellType !== 'text' &&\n cellType !== 'link' &&\n cellType !== 'progressbar' &&\n cellType !== 'checkbox' &&\n cellType !== 'radio'\n ) {\n maxHeight = lineHeight;\n } else if (cellType === 'checkbox') {\n maxHeight = computeCheckboxCellHeight(\n cellValue,\n col,\n row,\n endCol,\n actStyle,\n autoWrapText,\n iconWidth,\n fontSize,\n fontStyle,\n fontWeight,\n fontFamily,\n lineHeight,\n lineClamp,\n padding,\n table\n );\n } else if (cellType === 'radio') {\n maxHeight = computeRadioCellHeight(\n cellValue,\n col,\n row,\n endCol,\n actStyle,\n autoWrapText,\n iconWidth,\n fontSize,\n fontStyle,\n fontWeight,\n fontFamily,\n lineHeight,\n lineClamp,\n padding,\n table\n );\n } else {\n // text\n text = cellValue;\n const lines = breakString(text, table).text;\n const cellWidth = table.getColsWidth(col, endCol);\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: cellWidth - (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 (table.options.customConfig?.multilinesForXTable && index !== 0) {\n return;\n }\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 hierarchyOffset = getHierarchyOffset(col, row, table);\n const maxLineWidth = cellWidth - (padding[1] + padding[3]) - iconWidth - hierarchyOffset;\n const bounds = measureTextBounds({\n maxLineWidth,\n text: lines,\n fontSize,\n fontStyle,\n fontWeight,\n fontFamily,\n lineHeight,\n wordBreak: 'break-word',\n whiteSpace: lines.length === 1 && !autoWrapText ? 'no-wrap' : 'normal',\n lineClamp\n });\n maxHeight = bounds.height() || (typeof lineHeight === 'number' ? lineHeight : fontSize);\n } else {\n // autoWrapText = false\n if (table.options.customConfig?.multilinesForXTable) {\n maxHeight = lineHeight;\n } else {\n maxHeight = lines.length * lineHeight;\n }\n }\n }\n return (Math.max(maxHeight, iconHeight) + padding[0] + padding[2]) / spanRow;\n}\n\nfunction 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: 0\n };\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/scenegraph/layout/compute-row-height.ts"],"names":[],"mappings":"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","file":"compute-row-height.js","sourcesContent":["import type { Group as VGroup } from './../../vrender';\nimport { RichText, Text } from './../../vrender';\nimport type { PivotHeaderLayoutMap } from '../../layout/pivot-header-layout';\nimport { validToString } from '../../tools/util';\nimport type { ColumnIconOption, ColumnTypeOption, IRowSeriesNumber } from '../../ts-types';\nimport { IconPosition } from '../../ts-types';\nimport type { BaseTableAPI, HeaderData } from '../../ts-types/base-table';\nimport type { ColumnData, ColumnDefine, TextColumnDefine } from '../../ts-types/list-table/layout-map/api';\nimport { getProp } from '../utils/get-prop';\nimport { getQuadProps } from '../utils/padding';\nimport { dealWithRichTextIcon } from '../utils/text-icon-layout';\nimport type { ComputeAxisComponentHeight } from '../../components/axis/get-axis-component-size';\nimport { Factory } from '../../core/factory';\nimport { isArray, isFunction, isNumber, isObject, isValid } from '@visactor/vutils';\nimport { CheckBox } from '@visactor/vrender-components';\nimport { decodeReactDom, dealPercentCalc } from '../component/custom';\nimport { getCellMergeRange } from '../../tools/merge-range';\nimport { getCellMergeInfo } from '../utils/get-cell-merge';\nimport { getHierarchyOffset } from '../utils/get-hierarchy-offset';\nimport { computeCheckboxCellHeight, computeRadioCellHeight } from './height-util';\nimport { measureTextBounds } from '../utils/text-measure';\nimport { breakString } from '../utils/break-string';\nimport { emptyCustomLayout } from '../../components/react/react-custom-layout';\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 update?: boolean\n): void {\n const time = typeof window !== 'undefined' ? window.performance.now() : 0;\n\n const oldRowHeights: number[] = [];\n const newHeights: number[] = [];\n if (update) {\n for (let row = rowStart; row <= rowEnd; row++) {\n // oldRowHeights.push(table.getRowHeight(row));\n oldRowHeights[row] = table.getRowHeight(row);\n }\n }\n\n const layoutMap = table.internalProps.layoutMap;\n if (table.isPivotTable()) {\n (layoutMap as PivotHeaderLayoutMap).enableUseGetBodyCache();\n (layoutMap as PivotHeaderLayoutMap).enableUseHeaderPathCache();\n }\n\n table.defaultHeaderRowHeight;\n table.defaultHeaderColWidth;\n const isDefaultHeaderHasAuto =\n table.defaultHeaderRowHeight === 'auto' ||\n (isArray(table.defaultHeaderRowHeight) && table.defaultHeaderRowHeight.some(item => item === 'auto'));\n const isAllRowsAuto = table.heightMode === 'autoHeight' || table.heightMode === 'adaptive';\n\n if (isAllRowsAuto || isDefaultHeaderHasAuto) {\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 let startCol = 0;\n let endCol = table.colCount - 1;\n if (\n ((table.isPivotTable() && !table.isPivotChart()) ||\n (table.isPivotChart() && !(table.internalProps.layoutMap as PivotHeaderLayoutMap).indicatorsAsCol)) && // no top axis\n checkPivotFixedStyleAndNoWrap(table, row) &&\n !getCellMergeInfo(table, table.rowHeaderLevelCount, row)\n ) {\n // 列表头样式一致,只计算第一列行高,作为整行行高\n startCol = 0;\n endCol = table.rowHeaderLevelCount;\n }\n if (isAllRowsAuto || table.getDefaultRowHeight(row) === 'auto') {\n const height = computeRowHeight(row, startCol, endCol, table);\n newHeights[row] = Math.round(height);\n //表头部分需要马上设置到缓存中 因为adaptive不会调整表头的高度 另外后面adaptive处理过程中有取值 table.getRowsHeight(0, table.columnHeaderLevelCount - 1);\n table._setRowHeight(row, height);\n }\n }\n\n // compute bottom frozen row\n for (let row = table.rowCount - table.bottomFrozenRowCount; row <= rowEnd; row++) {\n if (isAllRowsAuto || table.getDefaultRowHeight(row) === 'auto') {\n const height = computeRowHeight(row, 0, table.colCount - 1, table);\n if (update) {\n newHeights[row] = Math.round(height);\n } else {\n table._setRowHeight(row, height);\n }\n }\n }\n\n if (rowEnd < table.columnHeaderLevelCount || !isAllRowsAuto) {\n // do nothing\n } else {\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(\n height,\n table.columnHeaderLevelCount,\n table.rowCount - 1 - table.bottomFrozenRowCount,\n table,\n update ? newHeights : undefined\n );\n //底部冻结的行行高需要单独计算\n for (let row = table.rowCount - table.bottomFrozenRowCount; row <= rowEnd; row++) {\n const height = computeRowHeight(row, 0, table.colCount - 1, table);\n if (update) {\n newHeights[row] = Math.round(height);\n } else {\n table._setRowHeight(row, height);\n }\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 if (update) {\n newHeights[row] = Math.round(height);\n } else {\n table._setRowHeight(row, height);\n }\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 if (update) {\n newHeights[row] = Math.round(height);\n } else {\n table._setRowHeight(row, height);\n }\n }\n }\n }\n } else {\n if (table.heightMode === 'adaptive' || table.autoFillHeight) {\n // for tree mode\n // getRowHeight() in adaptive will return scaled height\n table.clearRowHeightCache();\n }\n if (update) {\n for (let row = rowStart; row <= rowEnd; row++) {\n newHeights[row] = table.getRowHeight(row);\n }\n }\n }\n\n if ((rowStart === 0 && rowEnd === table.rowCount - 1) || isClearRowRangeHeightsMap) {\n table._clearRowRangeHeightsMap();\n }\n\n // 处理adaptive高度\n if (table.heightMode === 'adaptive') {\n table._clearRowRangeHeightsMap();\n // const canvasWidth = table.internalProps.canvas.width;\n let totalDrawHeight = table.tableNoFrameHeight;\n let startRow = 0;\n let endRow = table.rowCount;\n if (table.heightAdaptiveMode === 'only-body') {\n const columnHeaderHeight = table.getRowsHeight(0, table.columnHeaderLevelCount - 1);\n const bottomHeaderHeight = table.isPivotChart() ? table.getBottomFrozenRowsHeight() : 0;\n totalDrawHeight = table.tableNoFrameHeight - columnHeaderHeight - bottomHeaderHeight;\n startRow = table.columnHeaderLevelCount;\n endRow = table.isPivotChart() ? table.rowCount - table.bottomFrozenRowCount : table.rowCount;\n }\n let actualHeight = 0;\n for (let row = startRow; row < endRow; row++) {\n actualHeight += update ? newHeights[row] ?? table.getRowHeight(row) : table.getRowHeight(row);\n }\n const factor = totalDrawHeight / actualHeight;\n for (let row = startRow; row < endRow; row++) {\n let rowHeight;\n if (row === endRow - 1) {\n rowHeight =\n totalDrawHeight -\n (update\n ? newHeights.reduce((acr, cur, index) => {\n if (index >= startRow && index <= endRow - 2) {\n return acr + cur;\n }\n return acr;\n }, 0)\n : table.getRowsHeight(startRow, endRow - 2));\n } else {\n rowHeight = Math.round(\n (update ? newHeights[row] ?? table.getRowHeight(row) : table.getRowHeight(row)) * factor\n );\n }\n if (update) {\n newHeights[row] = rowHeight;\n } else {\n table._setRowHeight(row, rowHeight, false);\n }\n }\n } else if (table.autoFillHeight) {\n table._clearRowRangeHeightsMap();\n const canvasHeight = table.tableNoFrameHeight;\n let actualHeight = 0;\n let actualHeaderHeight = 0;\n for (let row = 0; row < table.rowCount; row++) {\n const rowHeight = update ? newHeights[row] ?? table.getRowHeight(row) : table.getRowHeight(row);\n if (\n row < table.columnHeaderLevelCount ||\n (table.isPivotChart() && row >= table.rowCount - table.bottomFrozenRowCount)\n ) {\n actualHeaderHeight += rowHeight;\n }\n\n actualHeight += rowHeight;\n }\n table.scenegraph._dealAutoFillHeightOriginRowsHeight = actualHeight;\n // 如果内容高度小于canvas高度,执行adaptive放大\n if (actualHeight < canvasHeight && actualHeight - actualHeaderHeight > 0) {\n const startRow = table.columnHeaderLevelCount;\n const endRow = table.isPivotChart() ? table.rowCount - table.bottomFrozenRowCount : table.rowCount;\n const factor = (canvasHeight - actualHeaderHeight) / (actualHeight - actualHeaderHeight);\n for (let row = startRow; row < endRow; row++) {\n // if (update) {\n // newHeights[row] = newHeights[row] * factor;\n // } else {\n // table.setRowHeight(row, table.getRowHeight(row) * factor);\n // }\n let rowHeight;\n if (row === endRow - 1) {\n rowHeight =\n canvasHeight -\n actualHeaderHeight -\n (update\n ? newHeights.reduce((acr, cur, index) => {\n if (index >= startRow && index <= endRow - 2) {\n return acr + cur;\n }\n return acr;\n }, 0)\n : table.getRowsHeight(startRow, endRow - 2));\n } else {\n rowHeight = Math.round(\n (update ? newHeights[row] ?? table.getRowHeight(row) : table.getRowHeight(row)) * factor\n );\n }\n if (update) {\n newHeights[row] = rowHeight;\n } else {\n table._setRowHeight(row, rowHeight, false);\n }\n }\n }\n }\n\n if (update) {\n for (let row = rowStart; row <= rowEnd; row++) {\n const newRowHeight = newHeights[row] ?? table.getRowHeight(row);\n if (newRowHeight !== (oldRowHeights[row] ?? table.getRowHeight(row))) {\n table._setRowHeight(row, newRowHeight);\n }\n }\n\n if (\n table.heightMode === 'adaptive' ||\n (table.autoFillHeight && table.getAllRowsHeight() <= table.tableNoFrameHeight)\n ) {\n for (let row = 0; row <= table.columnHeaderLevelCount - 1; row++) {\n const newRowHeight = table.getRowHeight(row);\n if (newRowHeight !== (oldRowHeights[row] ?? table.getRowHeight(row))) {\n // update the row height in scenegraph\n table.scenegraph.updateRowHeight(row, newRowHeight - (oldRowHeights[row] ?? table.getRowHeight(row)), true);\n }\n }\n for (let row = table.rowCount - table.bottomFrozenRowCount; row <= table.rowCount - 1; row++) {\n const newRowHeight = table.getRowHeight(row);\n if (newRowHeight !== (oldRowHeights[row] ?? table.getRowHeight(row))) {\n // update the row height in scenegraph\n table.scenegraph.updateRowHeight(row, newRowHeight - (oldRowHeights[row] ?? table.getRowHeight(row)), true);\n }\n }\n }\n for (let row = table.scenegraph.proxy.rowStart; row <= table.scenegraph.proxy.rowEnd; row++) {\n const newRowHeight = table.getRowHeight(row);\n if (newRowHeight !== (oldRowHeights[row] ?? table.getRowHeight(row))) {\n // update the row height in scenegraph\n table.scenegraph.updateRowHeight(row, newRowHeight - (oldRowHeights[row] ?? table.getRowHeight(row)), true);\n }\n }\n }\n // console.log('computeRowsHeight time:', (typeof window !== 'undefined' ? window.performance.now() : 0) - time, rowStart, rowEnd);\n\n if (table.isPivotTable()) {\n (layoutMap as PivotHeaderLayoutMap).disableUseGetBodyCache();\n (layoutMap as PivotHeaderLayoutMap).disableUseHeaderPathCache();\n }\n}\n\nexport function computeRowHeight(row: number, startCol: number, endCol: number, table: BaseTableAPI): number {\n let maxHeight;\n // 如果是透视图\n if (\n table.isPivotChart() &&\n row >= table.columnHeaderLevelCount &&\n row < table.rowCount - table.bottomFrozenRowCount\n ) {\n if ((table.internalProps.layoutMap as PivotHeaderLayoutMap).indicatorsAsCol) {\n //并且指标是以列展示 计算行高需要根据y轴的值域范围\n const optimunHeight = (table.internalProps.layoutMap as PivotHeaderLayoutMap).getOptimunHeightForChart(row);\n if (optimunHeight > 0) {\n return optimunHeight;\n }\n } else {\n //直接拿默认行高\n const defaultHeight = table.getDefaultRowHeight(row);\n if (isNumber(defaultHeight)) {\n return defaultHeight;\n }\n }\n }\n for (let col = startCol; col <= endCol; col++) {\n // CustomRender height calculation\n const customHeight = computeCustomRenderHeight(col, row, table);\n if (customHeight) {\n maxHeight = isValid(maxHeight) ? Math.max(customHeight.height, maxHeight) : customHeight.height;\n if (!customHeight.renderDefault) {\n continue;\n }\n }\n\n // Axis component height calculation\n if (table.isPivotChart()) {\n const layout = table.internalProps.layoutMap as PivotHeaderLayoutMap;\n const axisConfig = layout.getAxisConfigInPivotChart(col, row);\n if (axisConfig) {\n const computeAxisComponentHeight: ComputeAxisComponentHeight =\n Factory.getFunction('computeAxisComponentHeight');\n const axisWidth = computeAxisComponentHeight(axisConfig, table);\n if (typeof axisWidth === 'number') {\n maxHeight = isValid(maxHeight) ? Math.max(axisWidth, maxHeight) : axisWidth;\n continue;\n }\n }\n }\n\n if (\n table.isPivotChart() &&\n ((table.isLeftFrozenColumn(col) && table.isBottomFrozenRow(row)) ||\n (table.isRightFrozenColumn(col) && table.isBottomFrozenRow(row)))\n ) {\n continue;\n }\n const cellType = table.isHeader(col, row)\n ? (table._getHeaderLayoutMap(col, row) as HeaderData)?.headerType\n : table.getBodyColumnType(col, row);\n // if ( isValid(cellType) && cellType !== 'text' && cellType !== 'link' && cellType !== 'progressbar' && cellType !== 'checkbox') {\n // // text&link&progressbar测量文字宽度\n // // image&video&sparkline使用默认宽度\n // const defaultHeight = table.getDefaultRowHeight(row);\n // maxHeight = Math.max(maxHeight, isNumber(defaultHeight) ? defaultHeight : table.defaultRowHeight);\n // continue;\n // }\n\n // text height calculation\n const textHeight = computeTextHeight(col, row, cellType, table);\n maxHeight = isValid(maxHeight) ? Math.max(textHeight, maxHeight) : textHeight;\n }\n if (isValid(maxHeight)) {\n return maxHeight;\n }\n\n const defaultHeight = table.getDefaultRowHeight(row);\n return isNumber(defaultHeight) ? defaultHeight : table.defaultRowHeight;\n}\n\nfunction checkFixedStyleAndNoWrap(table: BaseTableAPI): boolean {\n const { layoutMap } = table.internalProps;\n const row = table.columnHeaderLevelCount;\n //设置了全局自动换行的话 不能复用高度计算\n if (\n (table.internalProps.autoWrapText || table.internalProps.enableLineBreak || table.isPivotChart()) &&\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 (cellDefine.cellType === 'radio') {\n return false;\n }\n if (\n typeof cellDefine.style === 'function' ||\n typeof (cellDefine as ColumnData).icon === 'function' ||\n (cellDefine.define as ColumnDefine)?.customRender ||\n (cellDefine.define as ColumnDefine)?.customLayout ||\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 || table.internalProps.enableLineBreak) &&\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 as ColumnDefine)?.customRender ||\n (cellDefine.define as ColumnDefine)?.customLayout ||\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 checkPivotFixedStyleAndNoWrap(table: BaseTableAPI, row: number) {\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 headerDefine = layoutMap.getHeader(table.rowHeaderLevelCount, row);\n if (\n typeof headerDefine.style === 'function' ||\n typeof (headerDefine as HeaderData).icons === 'function' ||\n (headerDefine.define as ColumnDefine)?.headerCustomRender ||\n (headerDefine.define as ColumnDefine)?.headerCustomLayout ||\n typeof headerDefine.define?.icon === 'function'\n ) {\n return false;\n }\n const headerStyle = table._getCellStyle(table.rowHeaderLevelCount, row);\n if (\n typeof headerStyle.padding === 'function' ||\n typeof headerStyle.fontSize === 'function' ||\n typeof headerStyle.lineHeight === 'function' ||\n headerStyle.autoWrapText === true\n ) {\n return false;\n }\n\n return true;\n}\n\nfunction fillRowsHeight(\n height: number,\n startRow: number,\n endRow: number,\n table: BaseTableAPI,\n newHeights: number[] | undefined\n) {\n if (table.internalProps.useOneRowHeightFillAll) {\n return;\n }\n for (let row = startRow; row <= endRow; row++) {\n if (newHeights) {\n newHeights[row] = height;\n } else {\n table._setRowHeight(row, height);\n }\n }\n table.internalProps.useOneRowHeightFillAll = true;\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) {\n const customRender = table.getCustomRender(col, row);\n let customLayout = table.getCustomLayout(col, row);\n if (customRender || customLayout) {\n let spanRow = 1;\n let height = 0;\n let renderDefault = false;\n let enableCellPadding = false;\n if (\n table.isHeader(col, row) ||\n (table.getBodyColumnDefine(col, row) as TextColumnDefine)?.mergeCell ||\n table.hasCustomMerge()\n ) {\n const cellRange = table.getCellRange(col, row);\n spanRow = cellRange.end.row - cellRange.start.row + 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 === 'react-custom-layout') {\n // customLayout = table._reactCreateGraphic;\n customLayout = table.reactCustomLayout?.getCustomLayoutFunc(col, row) || emptyCustomLayout;\n }\n if (isFunction(customLayout)) {\n // 处理customLayout\n const customLayoutObj = customLayout(arg);\n if (customLayoutObj.rootContainer) {\n customLayoutObj.rootContainer = decodeReactDom(customLayoutObj.rootContainer);\n dealPercentCalc(customLayoutObj.rootContainer, table.getColWidth(col), 0);\n customLayoutObj.rootContainer.setStage(table.scenegraph.stage);\n height = (customLayoutObj.rootContainer as VGroup).AABBBounds.height() ?? 0;\n renderDefault = customLayoutObj.renderDefault;\n enableCellPadding = customLayoutObj.enableCellPadding;\n } else {\n height = 0;\n renderDefault = customLayoutObj.renderDefault;\n enableCellPadding = customLayoutObj.enableCellPadding;\n }\n } else if (typeof customRender === 'function') {\n // 处理customRender\n const customRenderObj = customRender(arg);\n height = customRenderObj?.expectedHeight ?? 0;\n renderDefault = customRenderObj?.renderDefault;\n } else {\n height = customRender?.expectedHeight ?? 0;\n renderDefault = customRender?.renderDefault;\n }\n if (enableCellPadding) {\n const actStyle = table._getCellStyle(col, row);\n const padding = getQuadProps(getProp('padding', actStyle, col, row, table));\n height += padding[0] + padding[2];\n }\n return {\n height: height / spanRow,\n renderDefault\n };\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, cellType: ColumnTypeOption, 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.getCellLocation(col, row) !== 'body' ? true : !!define?.icon || !!define?.tree;\n\n let mayHaveIcon = false;\n if (table.getCellLocation(col, row) !== 'body') {\n mayHaveIcon = true;\n } else {\n const define = table.getBodyColumnDefine(col, row);\n mayHaveIcon = !!define?.icon || !!(define as ColumnDefine)?.tree || (define as IRowSeriesNumber)?.dragOrder;\n }\n\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 let endCol = col;\n if (\n table.isHeader(col, row) ||\n (table.getBodyColumnDefine(col, row) as TextColumnDefine)?.mergeCell ||\n table.hasCustomMerge()\n ) {\n const cellRange = table.getCellRange(col, row);\n spanRow = cellRange.end.row - cellRange.start.row + 1;\n col = cellRange.start.col;\n endCol = cellRange.end.col;\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 lineClamp = getProp('lineClamp', actStyle, col, row, table);\n let text;\n if (\n cellType !== 'text' &&\n cellType !== 'link' &&\n cellType !== 'progressbar' &&\n cellType !== 'checkbox' &&\n cellType !== 'radio'\n ) {\n maxHeight = lineHeight;\n } else if (cellType === 'checkbox') {\n maxHeight = computeCheckboxCellHeight(\n cellValue,\n col,\n row,\n endCol,\n actStyle,\n autoWrapText,\n iconWidth,\n fontSize,\n fontStyle,\n fontWeight,\n fontFamily,\n lineHeight,\n lineClamp,\n padding,\n table\n );\n } else if (cellType === 'radio') {\n maxHeight = computeRadioCellHeight(\n cellValue,\n col,\n row,\n endCol,\n actStyle,\n autoWrapText,\n iconWidth,\n fontSize,\n fontStyle,\n fontWeight,\n fontFamily,\n lineHeight,\n lineClamp,\n padding,\n table\n );\n } else {\n // text\n text = cellValue;\n const lines = breakString(text, table).text;\n const cellWidth = table.getColsWidth(col, endCol);\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: cellWidth - (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 (table.options.customConfig?.multilinesForXTable && index !== 0) {\n return;\n }\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 hierarchyOffset = getHierarchyOffset(col, row, table);\n const maxLineWidth = cellWidth - (padding[1] + padding[3]) - iconWidth - hierarchyOffset;\n const bounds = measureTextBounds({\n maxLineWidth,\n text: lines,\n fontSize,\n fontStyle,\n fontWeight,\n fontFamily,\n lineHeight,\n wordBreak: 'break-word',\n whiteSpace: lines.length === 1 && !autoWrapText ? 'no-wrap' : 'normal',\n lineClamp\n });\n maxHeight = bounds.height() || (typeof lineHeight === 'number' ? lineHeight : fontSize);\n } else {\n // autoWrapText = false\n if (table.options.customConfig?.multilinesForXTable) {\n maxHeight = lineHeight;\n } else {\n maxHeight = lines.length * lineHeight;\n }\n }\n }\n return (Math.max(maxHeight, iconHeight) + padding[0] + padding[2]) / spanRow;\n}\n\nfunction 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: 0\n };\n}\n"]}
|
|
@@ -31,7 +31,7 @@ export function createReactContainer(table) {
|
|
|
31
31
|
export function updateReactContainer(table) {
|
|
32
32
|
const {headerDomContainer: headerDomContainer, bodyDomContainer: bodyDomContainer, frozenBodyDomContainer: frozenBodyDomContainer, frozenHeaderDomContainer: frozenHeaderDomContainer, rightFrozenBodyDomContainer: rightFrozenBodyDomContainer, rightFrozenHeaderDomContainer: rightFrozenHeaderDomContainer, bottomDomContainer: bottomDomContainer, frozenBottomDomContainer: frozenBottomDomContainer, rightFrozenBottomDomContainer: rightFrozenBottomDomContainer} = table.internalProps;
|
|
33
33
|
if (!(headerDomContainer || bodyDomContainer || frozenBodyDomContainer || frozenHeaderDomContainer || rightFrozenBodyDomContainer || rightFrozenHeaderDomContainer || bottomDomContainer || frozenBottomDomContainer || rightFrozenBottomDomContainer)) return;
|
|
34
|
-
const allColsWidth = table.getAllColsWidth(), frozenColsWidth = table.getFrozenColsWidth(), rightFrozenColsWidth = table.getRightFrozenColsWidth(), totalFrozenColsWidth = frozenColsWidth + rightFrozenColsWidth, bodyWidth = Math.min(allColsWidth - totalFrozenColsWidth,
|
|
34
|
+
const allColsWidth = table.getAllColsWidth(), tableNoFrameWidth = Math.min(allColsWidth, table.tableNoFrameWidth), frozenColsWidth = table.getFrozenColsWidth(), rightFrozenColsWidth = table.getRightFrozenColsWidth(), totalFrozenColsWidth = frozenColsWidth + rightFrozenColsWidth, bodyWidth = Math.min(allColsWidth - totalFrozenColsWidth, tableNoFrameWidth - totalFrozenColsWidth), allRowsHeight = table.getAllRowsHeight(), tableNoFrameHeight = Math.min(allRowsHeight, table.tableNoFrameHeight), frozenRowsHeight = table.getFrozenRowsHeight(), bottomFrozenRowsHeight = table.getBottomFrozenRowsHeight(), totalFrozenRowsHeight = frozenRowsHeight + bottomFrozenRowsHeight, bodyHeight = Math.min(allRowsHeight - totalFrozenRowsHeight, tableNoFrameHeight - totalFrozenRowsHeight);
|
|
35
35
|
table.frozenColCount > 0 ? (headerDomContainer.style.left = `${table.tableX + frozenColsWidth}px`,
|
|
36
36
|
bodyDomContainer.style.left = `${table.tableX + frozenColsWidth}px`, bottomDomContainer.style.left = `${table.tableX + frozenColsWidth}px`) : 0 === table.frozenColCount && (headerDomContainer.style.left = `${table.tableX}px`,
|
|
37
37
|
bodyDomContainer.style.left = `${table.tableX}px`, bottomDomContainer.style.left = `${table.tableX}px`),
|
|
@@ -44,16 +44,16 @@ export function updateReactContainer(table) {
|
|
|
44
44
|
frozenHeaderDomContainer.style.height = `${frozenRowsHeight}px`, frozenHeaderDomContainer.style.top = `${table.tableY}px`,
|
|
45
45
|
rightFrozenBodyDomContainer.style.width = `${rightFrozenColsWidth}px`, rightFrozenBodyDomContainer.style.height = `${bodyHeight}px`,
|
|
46
46
|
rightFrozenBodyDomContainer.style.top = `${table.tableY + frozenRowsHeight}px`,
|
|
47
|
-
rightFrozenBodyDomContainer.style.left = table.tableX +
|
|
47
|
+
rightFrozenBodyDomContainer.style.left = table.tableX + tableNoFrameWidth - rightFrozenColsWidth + "px",
|
|
48
48
|
rightFrozenHeaderDomContainer.style.width = `${rightFrozenColsWidth}px`, rightFrozenHeaderDomContainer.style.height = `${frozenRowsHeight}px`,
|
|
49
|
-
rightFrozenHeaderDomContainer.style.top = `${table.tableY}px`, rightFrozenHeaderDomContainer.style.left = table.tableX +
|
|
49
|
+
rightFrozenHeaderDomContainer.style.top = `${table.tableY}px`, rightFrozenHeaderDomContainer.style.left = table.tableX + tableNoFrameWidth - rightFrozenColsWidth + "px",
|
|
50
50
|
bottomDomContainer.style.width = `${bodyWidth}px`, bottomDomContainer.style.height = `${bottomFrozenRowsHeight}px`,
|
|
51
|
-
bottomDomContainer.style.top = table.tableY +
|
|
51
|
+
bottomDomContainer.style.top = table.tableY + tableNoFrameHeight - bottomFrozenRowsHeight + "px",
|
|
52
52
|
frozenBottomDomContainer.style.width = `${frozenColsWidth}px`, frozenBottomDomContainer.style.height = `${bottomFrozenRowsHeight}px`,
|
|
53
|
-
frozenBottomDomContainer.style.top = table.tableY +
|
|
53
|
+
frozenBottomDomContainer.style.top = table.tableY + tableNoFrameHeight - bottomFrozenRowsHeight + "px",
|
|
54
54
|
rightFrozenBottomDomContainer.style.width = `${rightFrozenColsWidth}px`, rightFrozenBottomDomContainer.style.height = `${bottomFrozenRowsHeight}px`,
|
|
55
|
-
rightFrozenBottomDomContainer.style.top = table.tableY +
|
|
56
|
-
rightFrozenBottomDomContainer.style.left = table.tableX +
|
|
55
|
+
rightFrozenBottomDomContainer.style.top = table.tableY + tableNoFrameHeight - bottomFrozenRowsHeight + "px",
|
|
56
|
+
rightFrozenBottomDomContainer.style.left = table.tableX + tableNoFrameWidth - rightFrozenColsWidth + "px";
|
|
57
57
|
}
|
|
58
58
|
|
|
59
59
|
export function updateReactComponentContainer(scene) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/scenegraph/layout/frozen-react.ts"],"names":[],"mappings":"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","file":"frozen-react.js","sourcesContent":["import type { IGraphic, ReactAttributePlugin } from './../../vrender';\nimport { getTargetCell } from '../../event/util';\nimport type { BaseTableAPI } from '../../ts-types/base-table';\nimport type { Scenegraph } from '../scenegraph';\n\nexport function createReactContainer(table: BaseTableAPI) {\n const { internalProps } = table;\n internalProps.bodyDomContainer = document.createElement('div');\n internalProps.bodyDomContainer.id = 'vtable-body-dom-container';\n internalProps.bodyDomContainer.classList.add('table-component-container');\n internalProps.element.appendChild(internalProps.bodyDomContainer);\n\n internalProps.headerDomContainer = document.createElement('div');\n internalProps.headerDomContainer.id = 'vtable-header-dom-container';\n internalProps.headerDomContainer.classList.add('table-component-container');\n internalProps.element.appendChild(internalProps.headerDomContainer);\n\n internalProps.frozenBodyDomContainer = document.createElement('div');\n internalProps.frozenBodyDomContainer.id = 'vtable-frozen-body-dom-container';\n internalProps.frozenBodyDomContainer.classList.add('table-component-container');\n internalProps.element.appendChild(internalProps.frozenBodyDomContainer);\n\n internalProps.frozenHeaderDomContainer = document.createElement('div');\n internalProps.frozenHeaderDomContainer.id = 'vtable-frozen-header-dom-container';\n internalProps.frozenHeaderDomContainer.classList.add('table-component-container');\n internalProps.element.appendChild(internalProps.frozenHeaderDomContainer);\n\n internalProps.rightFrozenBodyDomContainer = document.createElement('div');\n internalProps.rightFrozenBodyDomContainer.id = 'vtable-right-frozen-body-dom-container';\n internalProps.rightFrozenBodyDomContainer.classList.add('table-component-container');\n internalProps.element.appendChild(internalProps.rightFrozenBodyDomContainer);\n\n internalProps.rightFrozenHeaderDomContainer = document.createElement('div');\n internalProps.rightFrozenHeaderDomContainer.id = 'vtable-right-frozen-header-dom-container';\n internalProps.rightFrozenHeaderDomContainer.classList.add('table-component-container');\n internalProps.element.appendChild(internalProps.rightFrozenHeaderDomContainer);\n\n internalProps.frozenBottomDomContainer = document.createElement('div');\n internalProps.frozenBottomDomContainer.id = 'vtable-frozen-bottom-dom-container';\n internalProps.frozenBottomDomContainer.classList.add('table-component-container');\n internalProps.element.appendChild(internalProps.frozenBottomDomContainer);\n\n internalProps.bottomDomContainer = document.createElement('div');\n internalProps.bottomDomContainer.id = 'vtable-bottom-dom-container';\n internalProps.bottomDomContainer.classList.add('table-component-container');\n internalProps.element.appendChild(internalProps.bottomDomContainer);\n\n internalProps.rightFrozenBottomDomContainer = document.createElement('div');\n internalProps.rightFrozenBottomDomContainer.id = 'vtable-right-frozen-bottom-dom-container';\n internalProps.rightFrozenBottomDomContainer.classList.add('table-component-container');\n internalProps.element.appendChild(internalProps.rightFrozenBottomDomContainer);\n}\n\nexport function updateReactContainer(table: BaseTableAPI) {\n const {\n headerDomContainer,\n bodyDomContainer,\n frozenBodyDomContainer,\n frozenHeaderDomContainer,\n rightFrozenBodyDomContainer,\n rightFrozenHeaderDomContainer,\n bottomDomContainer,\n frozenBottomDomContainer,\n rightFrozenBottomDomContainer\n } = table.internalProps;\n if (\n !headerDomContainer &&\n !bodyDomContainer &&\n !frozenBodyDomContainer &&\n !frozenHeaderDomContainer &&\n !rightFrozenBodyDomContainer &&\n !rightFrozenHeaderDomContainer &&\n !bottomDomContainer &&\n !frozenBottomDomContainer &&\n !rightFrozenBottomDomContainer\n ) {\n return;\n }\n const allColsWidth = table.getAllColsWidth();\n const frozenColsWidth = table.getFrozenColsWidth();\n const rightFrozenColsWidth = table.getRightFrozenColsWidth();\n const totalFrozenColsWidth = frozenColsWidth + rightFrozenColsWidth;\n const bodyWidth = Math.min(allColsWidth - totalFrozenColsWidth, table.tableNoFrameWidth - totalFrozenColsWidth);\n\n const allRowsHeight = table.getAllRowsHeight();\n const frozenRowsHeight = table.getFrozenRowsHeight();\n const bottomFrozenRowsHeight = table.getBottomFrozenRowsHeight();\n const totalFrozenRowsHeight = frozenRowsHeight + bottomFrozenRowsHeight;\n const bodyHeight = Math.min(allRowsHeight - totalFrozenRowsHeight, table.tableNoFrameHeight - totalFrozenRowsHeight);\n\n if (table.frozenColCount > 0) {\n headerDomContainer.style.left = `${table.tableX + frozenColsWidth}px`;\n bodyDomContainer.style.left = `${table.tableX + frozenColsWidth}px`;\n bottomDomContainer.style.left = `${table.tableX + frozenColsWidth}px`;\n } else if (table.frozenColCount === 0) {\n headerDomContainer.style.left = `${table.tableX}px`;\n bodyDomContainer.style.left = `${table.tableX}px`;\n bottomDomContainer.style.left = `${table.tableX}px`;\n }\n frozenBodyDomContainer.style.left = `${table.tableX}px`;\n frozenHeaderDomContainer.style.left = `${table.tableX}px`;\n\n // headerDomContainer.style.width = `${(headerDomContainer.parentElement?.offsetWidth ?? 1) - 1}px`;\n headerDomContainer.style.width = `${bodyWidth}px`;\n headerDomContainer.style.height = `${frozenRowsHeight}px`;\n bodyDomContainer.style.top = `${table.tableY}px`;\n\n // bodyDomContainer.style.width = `${(bodyDomContainer.parentElement?.offsetWidth ?? 1) - 1}px`;\n bodyDomContainer.style.width = `${bodyWidth}px`;\n bodyDomContainer.style.height = `${bodyHeight}px`;\n bodyDomContainer.style.top = `${table.tableY + frozenRowsHeight}px`;\n\n frozenBodyDomContainer.style.width = `${frozenColsWidth}px`;\n frozenBodyDomContainer.style.height = `${bodyHeight}px`;\n frozenBodyDomContainer.style.top = `${table.tableY + frozenRowsHeight}px`;\n\n frozenHeaderDomContainer.style.width = `${frozenColsWidth}px`;\n frozenHeaderDomContainer.style.height = `${frozenRowsHeight}px`;\n frozenHeaderDomContainer.style.top = `${table.tableY}px`;\n\n rightFrozenBodyDomContainer.style.width = `${rightFrozenColsWidth}px`;\n rightFrozenBodyDomContainer.style.height = `${bodyHeight}px`;\n rightFrozenBodyDomContainer.style.top = `${table.tableY + frozenRowsHeight}px`;\n rightFrozenBodyDomContainer.style.left = `${table.tableX + table.tableNoFrameWidth - rightFrozenColsWidth}px`;\n\n rightFrozenHeaderDomContainer.style.width = `${rightFrozenColsWidth}px`;\n rightFrozenHeaderDomContainer.style.height = `${frozenRowsHeight}px`;\n rightFrozenHeaderDomContainer.style.top = `${table.tableY}px`;\n rightFrozenHeaderDomContainer.style.left = `${table.tableX + table.tableNoFrameWidth - rightFrozenColsWidth}px`;\n\n bottomDomContainer.style.width = `${bodyWidth}px`;\n bottomDomContainer.style.height = `${bottomFrozenRowsHeight}px`;\n bottomDomContainer.style.top = `${table.tableY + table.tableNoFrameHeight - bottomFrozenRowsHeight}px`;\n\n frozenBottomDomContainer.style.width = `${frozenColsWidth}px`;\n frozenBottomDomContainer.style.height = `${bottomFrozenRowsHeight}px`;\n frozenBottomDomContainer.style.top = `${table.tableY + table.tableNoFrameHeight - bottomFrozenRowsHeight}px`;\n\n rightFrozenBottomDomContainer.style.width = `${rightFrozenColsWidth}px`;\n rightFrozenBottomDomContainer.style.height = `${bottomFrozenRowsHeight}px`;\n rightFrozenBottomDomContainer.style.top = `${table.tableY + table.tableNoFrameHeight - bottomFrozenRowsHeight}px`;\n rightFrozenBottomDomContainer.style.left = `${table.tableX + table.tableNoFrameWidth - rightFrozenColsWidth}px`;\n}\n\nexport function updateReactComponentContainer(scene: Scenegraph) {\n if (!scene.table.reactCustomLayout) {\n return;\n }\n const { table, stage } = scene;\n const plugin = stage.pluginService.findPluginsByName('ReactAttributePlugin')[0] as ReactAttributePlugin;\n const { htmlMap } = plugin;\n\n for (const key in htmlMap) {\n const item = htmlMap[key];\n const { graphic, wrapContainer } = item as typeof item & { graphic: IGraphic };\n let targetContainer: HTMLElement;\n if (scene.frozenColCount > table.frozenColCount) {\n // move columnGroup from rowHeaderGroup into bodyGroup(from cornerHeaderGroup into colHeaderGroup)\n const { col, row } = getTargetCell(graphic);\n if (\n row >= table.rowCount - table.bottomFrozenRowCount &&\n col < scene.frozenColCount &&\n col >= table.frozenColCount &&\n graphic.attribute.react.container === table.frozenBottomDomContainer\n ) {\n targetContainer = table.bottomDomContainer;\n } else if (\n row >= table.frozenRowCount &&\n col < scene.frozenColCount &&\n col >= table.frozenColCount &&\n graphic.attribute.react.container === table.frozenBodyDomContainer\n ) {\n targetContainer = table.bodyDomContainer;\n } else if (\n row < table.frozenRowCount &&\n col < scene.frozenColCount &&\n col >= table.frozenColCount &&\n graphic.attribute.react.container === table.frozenHeaderDomContainer\n ) {\n targetContainer = table.headerDomContainer;\n }\n } else if (scene.frozenColCount < table.frozenColCount) {\n // move columnGroup from bodyGroup into rowHeaderGroup(from colHeaderGroup into cornerHeaderGroup)\n const { col, row } = getTargetCell(graphic);\n if (\n row >= table.rowCount - table.bottomFrozenRowCount &&\n col < table.frozenColCount &&\n col >= scene.frozenColCount &&\n graphic.attribute.react.container === table.bottomDomContainer\n ) {\n targetContainer = table.frozenBottomDomContainer;\n } else if (\n row >= table.frozenRowCount &&\n col < table.frozenColCount &&\n col >= scene.frozenColCount &&\n graphic.attribute.react.container === table.bodyDomContainer\n ) {\n targetContainer = table.frozenBodyDomContainer;\n } else if (\n row < table.frozenRowCount &&\n col < table.frozenColCount &&\n col >= scene.frozenColCount &&\n graphic.attribute.react.container === table.headerDomContainer\n ) {\n targetContainer = table.frozenHeaderDomContainer;\n }\n }\n\n if (targetContainer) {\n targetContainer.appendChild(wrapContainer);\n item.nativeContainer = targetContainer;\n item.container = targetContainer;\n graphic.attribute.react.container = targetContainer;\n plugin.updateStyleOfWrapContainer(graphic, stage, wrapContainer, targetContainer, graphic.attribute.react);\n }\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/scenegraph/layout/frozen-react.ts"],"names":[],"mappings":"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","file":"frozen-react.js","sourcesContent":["import type { IGraphic, ReactAttributePlugin } from './../../vrender';\nimport { getTargetCell } from '../../event/util';\nimport type { BaseTableAPI } from '../../ts-types/base-table';\nimport type { Scenegraph } from '../scenegraph';\n\nexport function createReactContainer(table: BaseTableAPI) {\n const { internalProps } = table;\n internalProps.bodyDomContainer = document.createElement('div');\n internalProps.bodyDomContainer.id = 'vtable-body-dom-container';\n internalProps.bodyDomContainer.classList.add('table-component-container');\n internalProps.element.appendChild(internalProps.bodyDomContainer);\n\n internalProps.headerDomContainer = document.createElement('div');\n internalProps.headerDomContainer.id = 'vtable-header-dom-container';\n internalProps.headerDomContainer.classList.add('table-component-container');\n internalProps.element.appendChild(internalProps.headerDomContainer);\n\n internalProps.frozenBodyDomContainer = document.createElement('div');\n internalProps.frozenBodyDomContainer.id = 'vtable-frozen-body-dom-container';\n internalProps.frozenBodyDomContainer.classList.add('table-component-container');\n internalProps.element.appendChild(internalProps.frozenBodyDomContainer);\n\n internalProps.frozenHeaderDomContainer = document.createElement('div');\n internalProps.frozenHeaderDomContainer.id = 'vtable-frozen-header-dom-container';\n internalProps.frozenHeaderDomContainer.classList.add('table-component-container');\n internalProps.element.appendChild(internalProps.frozenHeaderDomContainer);\n\n internalProps.rightFrozenBodyDomContainer = document.createElement('div');\n internalProps.rightFrozenBodyDomContainer.id = 'vtable-right-frozen-body-dom-container';\n internalProps.rightFrozenBodyDomContainer.classList.add('table-component-container');\n internalProps.element.appendChild(internalProps.rightFrozenBodyDomContainer);\n\n internalProps.rightFrozenHeaderDomContainer = document.createElement('div');\n internalProps.rightFrozenHeaderDomContainer.id = 'vtable-right-frozen-header-dom-container';\n internalProps.rightFrozenHeaderDomContainer.classList.add('table-component-container');\n internalProps.element.appendChild(internalProps.rightFrozenHeaderDomContainer);\n\n internalProps.frozenBottomDomContainer = document.createElement('div');\n internalProps.frozenBottomDomContainer.id = 'vtable-frozen-bottom-dom-container';\n internalProps.frozenBottomDomContainer.classList.add('table-component-container');\n internalProps.element.appendChild(internalProps.frozenBottomDomContainer);\n\n internalProps.bottomDomContainer = document.createElement('div');\n internalProps.bottomDomContainer.id = 'vtable-bottom-dom-container';\n internalProps.bottomDomContainer.classList.add('table-component-container');\n internalProps.element.appendChild(internalProps.bottomDomContainer);\n\n internalProps.rightFrozenBottomDomContainer = document.createElement('div');\n internalProps.rightFrozenBottomDomContainer.id = 'vtable-right-frozen-bottom-dom-container';\n internalProps.rightFrozenBottomDomContainer.classList.add('table-component-container');\n internalProps.element.appendChild(internalProps.rightFrozenBottomDomContainer);\n}\n\nexport function updateReactContainer(table: BaseTableAPI) {\n const {\n headerDomContainer,\n bodyDomContainer,\n frozenBodyDomContainer,\n frozenHeaderDomContainer,\n rightFrozenBodyDomContainer,\n rightFrozenHeaderDomContainer,\n bottomDomContainer,\n frozenBottomDomContainer,\n rightFrozenBottomDomContainer\n } = table.internalProps;\n if (\n !headerDomContainer &&\n !bodyDomContainer &&\n !frozenBodyDomContainer &&\n !frozenHeaderDomContainer &&\n !rightFrozenBodyDomContainer &&\n !rightFrozenHeaderDomContainer &&\n !bottomDomContainer &&\n !frozenBottomDomContainer &&\n !rightFrozenBottomDomContainer\n ) {\n return;\n }\n const allColsWidth = table.getAllColsWidth();\n const tableNoFrameWidth = Math.min(allColsWidth, table.tableNoFrameWidth);\n const frozenColsWidth = table.getFrozenColsWidth();\n const rightFrozenColsWidth = table.getRightFrozenColsWidth();\n const totalFrozenColsWidth = frozenColsWidth + rightFrozenColsWidth;\n const bodyWidth = Math.min(allColsWidth - totalFrozenColsWidth, tableNoFrameWidth - totalFrozenColsWidth);\n\n const allRowsHeight = table.getAllRowsHeight();\n const tableNoFrameHeight = Math.min(allRowsHeight, table.tableNoFrameHeight);\n const frozenRowsHeight = table.getFrozenRowsHeight();\n const bottomFrozenRowsHeight = table.getBottomFrozenRowsHeight();\n const totalFrozenRowsHeight = frozenRowsHeight + bottomFrozenRowsHeight;\n const bodyHeight = Math.min(allRowsHeight - totalFrozenRowsHeight, tableNoFrameHeight - totalFrozenRowsHeight);\n\n if (table.frozenColCount > 0) {\n headerDomContainer.style.left = `${table.tableX + frozenColsWidth}px`;\n bodyDomContainer.style.left = `${table.tableX + frozenColsWidth}px`;\n bottomDomContainer.style.left = `${table.tableX + frozenColsWidth}px`;\n } else if (table.frozenColCount === 0) {\n headerDomContainer.style.left = `${table.tableX}px`;\n bodyDomContainer.style.left = `${table.tableX}px`;\n bottomDomContainer.style.left = `${table.tableX}px`;\n }\n frozenBodyDomContainer.style.left = `${table.tableX}px`;\n frozenHeaderDomContainer.style.left = `${table.tableX}px`;\n\n // headerDomContainer.style.width = `${(headerDomContainer.parentElement?.offsetWidth ?? 1) - 1}px`;\n headerDomContainer.style.width = `${bodyWidth}px`;\n headerDomContainer.style.height = `${frozenRowsHeight}px`;\n bodyDomContainer.style.top = `${table.tableY}px`;\n\n // bodyDomContainer.style.width = `${(bodyDomContainer.parentElement?.offsetWidth ?? 1) - 1}px`;\n bodyDomContainer.style.width = `${bodyWidth}px`;\n bodyDomContainer.style.height = `${bodyHeight}px`;\n bodyDomContainer.style.top = `${table.tableY + frozenRowsHeight}px`;\n\n frozenBodyDomContainer.style.width = `${frozenColsWidth}px`;\n frozenBodyDomContainer.style.height = `${bodyHeight}px`;\n frozenBodyDomContainer.style.top = `${table.tableY + frozenRowsHeight}px`;\n\n frozenHeaderDomContainer.style.width = `${frozenColsWidth}px`;\n frozenHeaderDomContainer.style.height = `${frozenRowsHeight}px`;\n frozenHeaderDomContainer.style.top = `${table.tableY}px`;\n\n rightFrozenBodyDomContainer.style.width = `${rightFrozenColsWidth}px`;\n rightFrozenBodyDomContainer.style.height = `${bodyHeight}px`;\n rightFrozenBodyDomContainer.style.top = `${table.tableY + frozenRowsHeight}px`;\n rightFrozenBodyDomContainer.style.left = `${table.tableX + tableNoFrameWidth - rightFrozenColsWidth}px`;\n\n rightFrozenHeaderDomContainer.style.width = `${rightFrozenColsWidth}px`;\n rightFrozenHeaderDomContainer.style.height = `${frozenRowsHeight}px`;\n rightFrozenHeaderDomContainer.style.top = `${table.tableY}px`;\n rightFrozenHeaderDomContainer.style.left = `${table.tableX + tableNoFrameWidth - rightFrozenColsWidth}px`;\n\n bottomDomContainer.style.width = `${bodyWidth}px`;\n bottomDomContainer.style.height = `${bottomFrozenRowsHeight}px`;\n bottomDomContainer.style.top = `${table.tableY + tableNoFrameHeight - bottomFrozenRowsHeight}px`;\n\n frozenBottomDomContainer.style.width = `${frozenColsWidth}px`;\n frozenBottomDomContainer.style.height = `${bottomFrozenRowsHeight}px`;\n frozenBottomDomContainer.style.top = `${table.tableY + tableNoFrameHeight - bottomFrozenRowsHeight}px`;\n\n rightFrozenBottomDomContainer.style.width = `${rightFrozenColsWidth}px`;\n rightFrozenBottomDomContainer.style.height = `${bottomFrozenRowsHeight}px`;\n rightFrozenBottomDomContainer.style.top = `${table.tableY + tableNoFrameHeight - bottomFrozenRowsHeight}px`;\n rightFrozenBottomDomContainer.style.left = `${table.tableX + tableNoFrameWidth - rightFrozenColsWidth}px`;\n}\n\nexport function updateReactComponentContainer(scene: Scenegraph) {\n if (!scene.table.reactCustomLayout) {\n return;\n }\n const { table, stage } = scene;\n const plugin = stage.pluginService.findPluginsByName('ReactAttributePlugin')[0] as ReactAttributePlugin;\n const { htmlMap } = plugin;\n\n for (const key in htmlMap) {\n const item = htmlMap[key];\n const { graphic, wrapContainer } = item as typeof item & { graphic: IGraphic };\n let targetContainer: HTMLElement;\n if (scene.frozenColCount > table.frozenColCount) {\n // move columnGroup from rowHeaderGroup into bodyGroup(from cornerHeaderGroup into colHeaderGroup)\n const { col, row } = getTargetCell(graphic);\n if (\n row >= table.rowCount - table.bottomFrozenRowCount &&\n col < scene.frozenColCount &&\n col >= table.frozenColCount &&\n graphic.attribute.react.container === table.frozenBottomDomContainer\n ) {\n targetContainer = table.bottomDomContainer;\n } else if (\n row >= table.frozenRowCount &&\n col < scene.frozenColCount &&\n col >= table.frozenColCount &&\n graphic.attribute.react.container === table.frozenBodyDomContainer\n ) {\n targetContainer = table.bodyDomContainer;\n } else if (\n row < table.frozenRowCount &&\n col < scene.frozenColCount &&\n col >= table.frozenColCount &&\n graphic.attribute.react.container === table.frozenHeaderDomContainer\n ) {\n targetContainer = table.headerDomContainer;\n }\n } else if (scene.frozenColCount < table.frozenColCount) {\n // move columnGroup from bodyGroup into rowHeaderGroup(from colHeaderGroup into cornerHeaderGroup)\n const { col, row } = getTargetCell(graphic);\n if (\n row >= table.rowCount - table.bottomFrozenRowCount &&\n col < table.frozenColCount &&\n col >= scene.frozenColCount &&\n graphic.attribute.react.container === table.bottomDomContainer\n ) {\n targetContainer = table.frozenBottomDomContainer;\n } else if (\n row >= table.frozenRowCount &&\n col < table.frozenColCount &&\n col >= scene.frozenColCount &&\n graphic.attribute.react.container === table.bodyDomContainer\n ) {\n targetContainer = table.frozenBodyDomContainer;\n } else if (\n row < table.frozenRowCount &&\n col < table.frozenColCount &&\n col >= scene.frozenColCount &&\n graphic.attribute.react.container === table.headerDomContainer\n ) {\n targetContainer = table.frozenHeaderDomContainer;\n }\n }\n\n if (targetContainer) {\n targetContainer.appendChild(wrapContainer);\n item.nativeContainer = targetContainer;\n item.container = targetContainer;\n graphic.attribute.react.container = targetContainer;\n plugin.updateStyleOfWrapContainer(graphic, stage, wrapContainer, targetContainer, graphic.attribute.react);\n }\n }\n}\n"]}
|
|
@@ -68,8 +68,7 @@ export function updateCellHeight(scene, cell, col, row, distHeight, detaY, isHea
|
|
|
68
68
|
const customContainer = cell.getChildByName(CUSTOM_CONTAINER_NAME) || cell.getChildByName(CUSTOM_MERGE_CONTAINER_NAME);
|
|
69
69
|
if (customContainer) {
|
|
70
70
|
let customElementsGroup;
|
|
71
|
-
|
|
72
|
-
customContainer.removeAllChild(), cell.removeChild(customContainer);
|
|
71
|
+
cell.removeChild(customContainer);
|
|
73
72
|
const customMergeRange = getCustomCellMergeCustom(col, row, cell, scene.table);
|
|
74
73
|
if (customMergeRange) for (let mergeRow = customMergeRange.start.row; mergeRow <= customMergeRange.end.row; mergeRow++) {
|
|
75
74
|
if (mergeRow === row) continue;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/scenegraph/layout/update-height.ts"],"names":[],"mappings":"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","file":"update-height.js","sourcesContent":["import type { ProgressBarStyle } from '../../body-helper/style/ProgressBarStyle';\nimport type { Group } from '../graphic/group';\nimport type { CreateProgressBarCell } from '../group-creater/cell-type/progress-bar-cell';\nimport type { CreateSparkLineCellGroup } from '../group-creater/cell-type/spark-line-cell';\nimport type { Scenegraph } from '../scenegraph';\nimport { getCellMergeInfo } from '../utils/get-cell-merge';\nimport { getProp } from '../utils/get-prop';\nimport { getQuadProps } from '../utils/padding';\nimport { updateCellContentHeight } from '../utils/text-icon-layout';\nimport type { IProgressbarColumnBodyDefine } from '../../ts-types/list-table/define/progressbar-define';\nimport { CUSTOM_CONTAINER_NAME, CUSTOM_MERGE_CONTAINER_NAME, dealWithCustom } from '../component/custom';\nimport { updateImageCellContentWhileResize } from '../group-creater/cell-type/image-cell';\nimport { getStyleTheme } from '../../core/tableHelper';\nimport { isMergeCellGroup } from '../utils/is-merge-cell-group';\nimport type { BaseTableAPI, HeaderData } from '../../ts-types/base-table';\nimport { resizeCellGroup, getCustomCellMergeCustom } from '../group-creater/cell-helper';\nimport type { IGraphic } from './../../vrender';\nimport { getCellMergeRange } from '../../tools/merge-range';\nimport type { ColumnDefine, ListTableConstructorOptions } from '../../ts-types';\nimport { Factory } from '../../core/factory';\n\nexport function updateRowHeight(scene: Scenegraph, row: number, detaY: number, skipTableHeightMap?: boolean) {\n // 更新table行高存储\n if (!skipTableHeightMap) {\n scene.table._setRowHeight(row, scene.table.getRowHeight(row) + detaY, true);\n }\n\n for (let col = 0; col < scene.table.colCount; col++) {\n const cell = scene.getCell(col, row);\n if (cell.role === 'empty') {\n continue;\n }\n const mergeInfo = getCellMergeInfo(scene.table, col, row);\n if (mergeInfo && mergeInfo.start.col !== col) {\n continue;\n }\n const height = cell.attribute.height;\n // cell.setAttribute('height', height);\n // (cell.firstChild as Rect).setAttribute('height', cell.attribute.height);\n updateCellHeightForRow(scene, cell, col, row, height + detaY, detaY, scene.table.isHeader(col, row));\n\n scene.updateCellContentWhileResize(col, row);\n }\n\n let rowStart = 0;\n let rowEnd = 0;\n // 更新header 高度\n if (row < scene.table.frozenRowCount) {\n // scene.colHeaderGroup.setAttribute('height', scene.colHeaderGroup.attribute.height + detaY);\n // scene.rowHeaderGroup.setAttribute('y', scene.rowHeaderGroup.attribute.y + detaY);\n // scene.bodyGroup.setAttribute('y', scene.bodyGroup.attribute.y + detaY);\n\n rowStart = row + 1;\n rowEnd = scene.table.frozenRowCount - 1;\n } else if (row >= scene.table.rowCount - scene.table.bottomFrozenRowCount) {\n rowStart = row + 1;\n rowEnd = scene.table.rowCount - 1;\n } else {\n rowStart = row + 1;\n // rowEnd = scene.table.rowCount - 1;\n rowEnd = Math.min(scene.proxy.rowEnd, scene.table.rowCount - scene.table.bottomFrozenRowCount - 1); //- scene.table.bottomFrozenRowCount;\n }\n\n // 更新以下行位置\n for (let colIndex = 0; colIndex < scene.table.colCount; colIndex++) {\n for (let rowIndex = rowStart; rowIndex <= rowEnd; rowIndex++) {\n const cellGroup = scene.highPerformanceGetCell(colIndex, rowIndex);\n if (cellGroup.role === 'cell') {\n cellGroup.setAttribute('y', cellGroup.attribute.y + detaY);\n }\n }\n }\n}\n\n/**\n * @description: 更新单个单元格高度\n * @return {*}\n */\nexport function updateCellHeightForRow(\n scene: Scenegraph,\n cell: Group,\n col: number,\n row: number,\n height: number,\n detaY: number,\n isHeader: boolean\n // autoRowHeight: boolean\n) {\n // cell.setAttribute('height', height);\n const cellGroup = cell;\n const distHeight = height;\n\n if (!cellGroup) {\n // 合并单元格非主单元格,不处理\n return;\n }\n\n updateCellHeight(scene, cellGroup, col, row, distHeight, detaY, isHeader);\n}\n\nexport function updateCellHeightForColumn(\n scene: Scenegraph,\n cell: Group,\n col: number,\n row: number,\n height: number,\n detaY: number,\n isHeader: boolean\n) {\n // cell.setAttribute('height', height);\n const cellGroup = cell;\n updateCellHeight(scene, cellGroup, col, row, height, 0, isHeader);\n}\n\nexport function updateCellHeight(\n scene: Scenegraph,\n cell: Group,\n col: number,\n row: number,\n distHeight: number,\n detaY: number,\n isHeader: boolean\n) {\n if (cell.attribute.height === distHeight && !cell.needUpdateHeight) {\n return;\n }\n cell.needUpdateHeight = false;\n\n cell.setAttribute('height', distHeight);\n const isVtableMerge = scene.table.getCellRawRecord(col, row)?.vtableMerge;\n const isCustomMerge = !!scene.table.getCustomMerge(col, row);\n // 更新单元格布局\n const type =\n isVtableMerge || isCustomMerge\n ? 'text'\n : scene.table.isHeader(col, row)\n ? (scene.table._getHeaderLayoutMap(col, row) as HeaderData).headerType\n : scene.table.getBodyColumnType(col, row);\n if (type === 'progressbar') {\n // 目前先采用重新生成节点的方案\n const columnDefine = scene.table.getBodyColumnDefine(col, row) as IProgressbarColumnBodyDefine;\n const style = scene.table._getCellStyle(col, row) as ProgressBarStyle;\n const value = scene.table.getCellValue(col, row);\n const dataValue = scene.table.getCellOriginValue(col, row);\n const padding = getQuadProps(getProp('padding', style, col, row, scene.table));\n\n // deal with bar\n let range;\n if (columnDefine?.mergeCell) {\n range = scene.table.getCellRange(col, row);\n }\n\n const createProgressBarCell = Factory.getFunction('createProgressBarCell') as CreateProgressBarCell;\n const newBarCell = createProgressBarCell(\n columnDefine,\n style,\n cell.attribute.width,\n // cell.attribute.height,\n value,\n dataValue,\n col,\n row,\n padding,\n scene.table,\n range\n );\n\n const oldBarCell = cell.getChildByName('progress-bar') as Group;\n // cell.replaceChild(newBarCell, oldBarCell);\n cell.insertBefore(newBarCell, oldBarCell);\n cell.removeChild(oldBarCell);\n oldBarCell.removeAllChild();\n oldBarCell.release();\n\n // deal with text\n updateMergeCellContentHeight(\n cell,\n distHeight,\n detaY,\n // scene.table.heightMode === 'autoHeight',\n scene.table.isAutoRowHeight(row),\n true,\n scene.table\n );\n } else if (type === 'sparkline') {\n // 目前先采用重新生成节点的方案\n cell.removeAllChild();\n const headerStyle = scene.table._getCellStyle(col, row);\n const padding = getQuadProps(getProp('padding', headerStyle, col, row, scene.table));\n const createSparkLineCellGroup = Factory.getFunction('createSparkLineCellGroup') as CreateSparkLineCellGroup;\n createSparkLineCellGroup(\n cell,\n cell.parent,\n cell.attribute.x,\n cell.attribute.y,\n col,\n row,\n cell.attribute.width,\n cell.attribute.height,\n padding,\n scene.table,\n getStyleTheme(headerStyle, scene.table, col, row, getProp).theme,\n false\n );\n } else if (type === 'image' || type === 'video') {\n updateImageCellContentWhileResize(cell, col, row, 0, detaY, scene.table);\n } else if (cell.firstChild?.name === 'axis') {\n (cell.firstChild as any)?.originAxis.resize(cell.attribute.width, cell.attribute.height);\n } else {\n let renderDefault = true;\n const customContainer =\n (cell.getChildByName(CUSTOM_CONTAINER_NAME) as Group) ||\n (cell.getChildByName(CUSTOM_MERGE_CONTAINER_NAME) as Group);\n if (customContainer) {\n if (scene.table.reactCustomLayout) {\n scene.table.reactCustomLayout.removeCustomCell(col, row);\n }\n\n let customElementsGroup;\n customContainer.removeAllChild();\n cell.removeChild(customContainer);\n\n const customMergeRange = getCustomCellMergeCustom(col, row, cell, scene.table);\n if (customMergeRange) {\n for (let mergeRow = customMergeRange.start.row; mergeRow <= customMergeRange.end.row; mergeRow++) {\n if (mergeRow === row) {\n continue;\n }\n const mergedCell = scene.getCell(col, mergeRow);\n const customContainer =\n (mergedCell.getChildByName(CUSTOM_CONTAINER_NAME) as Group) ||\n (mergedCell.getChildByName(CUSTOM_MERGE_CONTAINER_NAME) as Group);\n customContainer.removeAllChild();\n mergedCell.removeChild(customContainer);\n getCustomCellMergeCustom(col, mergeRow, mergedCell, scene.table);\n }\n } else {\n let customRender;\n let customLayout;\n const cellLocation = scene.table.getCellLocation(col, row);\n const { vtableMerge } = scene.table.getCellRawRecord(col, row) || {};\n\n if (vtableMerge && (scene.table.options as ListTableConstructorOptions).groupTitleCustomLayout) {\n customLayout = (scene.table.options as ListTableConstructorOptions).groupTitleCustomLayout;\n } else if (cellLocation !== 'body') {\n const define = scene.table.getHeaderDefine(col, row);\n customRender = (define as ColumnDefine)?.headerCustomRender;\n customLayout = (define as ColumnDefine)?.headerCustomLayout;\n } else {\n const define = scene.table.getBodyColumnDefine(col, row);\n customRender = (define as ColumnDefine)?.customRender || scene.table.customRender;\n customLayout = (define as ColumnDefine)?.customLayout;\n }\n\n if ((customRender || customLayout) && isMergeCellGroup(cell)) {\n for (let mergeCol = cell.mergeStartCol; mergeCol <= cell.mergeEndCol; mergeCol++) {\n for (let mergeRow = cell.mergeStartRow; mergeRow <= cell.mergeEndRow; mergeRow++) {\n if (mergeRow !== row) {\n scene.updateCellContent(mergeCol, mergeRow);\n }\n }\n }\n }\n\n if (customLayout || customRender) {\n // const { autoRowHeight } = table.internalProps;\n const style = scene.table._getCellStyle(col, row) as ProgressBarStyle;\n const padding = getQuadProps(getProp('padding', style, col, row, scene.table));\n let width = cell.attribute.width;\n let height = cell.attribute.height;\n if (isMergeCellGroup(cell)) {\n width = scene.table.getColsWidth(cell.mergeStartCol, cell.mergeEndCol);\n height = scene.table.getRowsHeight(cell.mergeStartRow, cell.mergeEndRow);\n }\n const customResult = dealWithCustom(\n customLayout,\n customRender,\n col,\n row,\n width,\n height,\n false,\n // scene.table.heightMode === 'autoHeight',\n scene.table.isAutoRowHeight(row),\n padding,\n isMergeCellGroup(cell)\n ? {\n start: { col: cell.mergeStartCol, row: cell.mergeStartRow },\n end: { col: cell.mergeEndCol, row: cell.mergeEndRow }\n }\n : undefined,\n scene.table\n );\n customElementsGroup = customResult.elementsGroup;\n renderDefault = customResult.renderDefault;\n }\n\n if (cell.childrenCount > 0 && customElementsGroup) {\n cell.insertBefore(customElementsGroup, cell.firstChild);\n } else if (customElementsGroup) {\n cell.appendChild(customElementsGroup);\n }\n }\n }\n // if (renderDefault) {\n // // 处理文字\n // const style = scene.table._getCellStyle(col, row);\n // updateMergeCellContentHeight(\n // cell,\n // distHeight,\n // detaY,\n // // scene.table.internalProps.autoRowHeight,\n // scene.table.heightMode === 'autoHeight',\n // getQuadProps(style.padding as number),\n // style.textAlign,\n // style.textBaseline,\n // scene.table\n // );\n // }\n updateMergeCellContentHeight(\n cell,\n distHeight,\n detaY,\n // scene.table.heightMode === 'autoHeight',\n scene.table.isAutoRowHeight(row),\n renderDefault,\n scene.table\n );\n }\n}\n\nfunction updateMergeCellContentHeight(\n cellGroup: Group,\n distHeight: number,\n detaY: number,\n autoRowHeight: boolean,\n renderDefault: boolean,\n table: BaseTableAPI\n) {\n if (isMergeCellGroup(cellGroup)) {\n distHeight = 0;\n for (let row = cellGroup.mergeStartRow; row <= cellGroup.mergeEndRow; row++) {\n distHeight += table.getRowHeight(row);\n }\n const { colStart, colEnd, rowStart, rowEnd } = getCellMergeRange(cellGroup, table.scenegraph);\n for (let col = colStart; col <= colEnd; col++) {\n for (let row = rowStart; row <= rowEnd; row++) {\n const singleCellGroup = table.scenegraph.getCell(col, row);\n singleCellGroup.forEachChildren((child: IGraphic) => {\n child.setAttributes({\n dx: 0,\n dy: 0\n });\n });\n\n if (renderDefault) {\n const style = table._getCellStyle(colStart, rowStart);\n updateCellContentHeight(\n singleCellGroup,\n distHeight,\n detaY,\n autoRowHeight,\n getQuadProps(style.padding as number),\n style.textAlign,\n style.textBaseline\n );\n }\n\n const rangeHeight = table.getRowHeight(row);\n const rangeWidth = table.getColWidth(col);\n\n // const { height: contentHeight } = cellGroup.attribute;\n singleCellGroup.contentHeight = distHeight;\n\n const { widthChange } = resizeCellGroup(\n singleCellGroup,\n rangeWidth,\n rangeHeight,\n {\n start: {\n col: cellGroup.mergeStartCol,\n row: cellGroup.mergeStartRow\n },\n end: {\n col: cellGroup.mergeEndCol,\n row: cellGroup.mergeEndRow\n }\n },\n table\n );\n\n if (widthChange) {\n singleCellGroup.needUpdateWidth = true;\n }\n }\n }\n } else {\n const style = table._getCellStyle(cellGroup.col, cellGroup.row);\n updateCellContentHeight(\n cellGroup,\n distHeight,\n detaY,\n autoRowHeight,\n getQuadProps(style.padding as number),\n style.textAlign,\n style.textBaseline\n );\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/scenegraph/layout/update-height.ts"],"names":[],"mappings":"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","file":"update-height.js","sourcesContent":["import type { ProgressBarStyle } from '../../body-helper/style/ProgressBarStyle';\nimport type { Group } from '../graphic/group';\nimport type { CreateProgressBarCell } from '../group-creater/cell-type/progress-bar-cell';\nimport type { CreateSparkLineCellGroup } from '../group-creater/cell-type/spark-line-cell';\nimport type { Scenegraph } from '../scenegraph';\nimport { getCellMergeInfo } from '../utils/get-cell-merge';\nimport { getProp } from '../utils/get-prop';\nimport { getQuadProps } from '../utils/padding';\nimport { updateCellContentHeight } from '../utils/text-icon-layout';\nimport type { IProgressbarColumnBodyDefine } from '../../ts-types/list-table/define/progressbar-define';\nimport { CUSTOM_CONTAINER_NAME, CUSTOM_MERGE_CONTAINER_NAME, dealWithCustom } from '../component/custom';\nimport { updateImageCellContentWhileResize } from '../group-creater/cell-type/image-cell';\nimport { getStyleTheme } from '../../core/tableHelper';\nimport { isMergeCellGroup } from '../utils/is-merge-cell-group';\nimport type { BaseTableAPI, HeaderData } from '../../ts-types/base-table';\nimport { resizeCellGroup, getCustomCellMergeCustom } from '../group-creater/cell-helper';\nimport type { IGraphic } from './../../vrender';\nimport { getCellMergeRange } from '../../tools/merge-range';\nimport type { ColumnDefine, ListTableConstructorOptions } from '../../ts-types';\nimport { Factory } from '../../core/factory';\n\nexport function updateRowHeight(scene: Scenegraph, row: number, detaY: number, skipTableHeightMap?: boolean) {\n // 更新table行高存储\n if (!skipTableHeightMap) {\n scene.table._setRowHeight(row, scene.table.getRowHeight(row) + detaY, true);\n }\n\n for (let col = 0; col < scene.table.colCount; col++) {\n const cell = scene.getCell(col, row);\n if (cell.role === 'empty') {\n continue;\n }\n const mergeInfo = getCellMergeInfo(scene.table, col, row);\n if (mergeInfo && mergeInfo.start.col !== col) {\n continue;\n }\n const height = cell.attribute.height;\n // cell.setAttribute('height', height);\n // (cell.firstChild as Rect).setAttribute('height', cell.attribute.height);\n updateCellHeightForRow(scene, cell, col, row, height + detaY, detaY, scene.table.isHeader(col, row));\n\n scene.updateCellContentWhileResize(col, row);\n }\n\n let rowStart = 0;\n let rowEnd = 0;\n // 更新header 高度\n if (row < scene.table.frozenRowCount) {\n // scene.colHeaderGroup.setAttribute('height', scene.colHeaderGroup.attribute.height + detaY);\n // scene.rowHeaderGroup.setAttribute('y', scene.rowHeaderGroup.attribute.y + detaY);\n // scene.bodyGroup.setAttribute('y', scene.bodyGroup.attribute.y + detaY);\n\n rowStart = row + 1;\n rowEnd = scene.table.frozenRowCount - 1;\n } else if (row >= scene.table.rowCount - scene.table.bottomFrozenRowCount) {\n rowStart = row + 1;\n rowEnd = scene.table.rowCount - 1;\n } else {\n rowStart = row + 1;\n // rowEnd = scene.table.rowCount - 1;\n rowEnd = Math.min(scene.proxy.rowEnd, scene.table.rowCount - scene.table.bottomFrozenRowCount - 1); //- scene.table.bottomFrozenRowCount;\n }\n\n // 更新以下行位置\n for (let colIndex = 0; colIndex < scene.table.colCount; colIndex++) {\n for (let rowIndex = rowStart; rowIndex <= rowEnd; rowIndex++) {\n const cellGroup = scene.highPerformanceGetCell(colIndex, rowIndex);\n if (cellGroup.role === 'cell') {\n cellGroup.setAttribute('y', cellGroup.attribute.y + detaY);\n }\n }\n }\n}\n\n/**\n * @description: 更新单个单元格高度\n * @return {*}\n */\nexport function updateCellHeightForRow(\n scene: Scenegraph,\n cell: Group,\n col: number,\n row: number,\n height: number,\n detaY: number,\n isHeader: boolean\n // autoRowHeight: boolean\n) {\n // cell.setAttribute('height', height);\n const cellGroup = cell;\n const distHeight = height;\n\n if (!cellGroup) {\n // 合并单元格非主单元格,不处理\n return;\n }\n\n updateCellHeight(scene, cellGroup, col, row, distHeight, detaY, isHeader);\n}\n\nexport function updateCellHeightForColumn(\n scene: Scenegraph,\n cell: Group,\n col: number,\n row: number,\n height: number,\n detaY: number,\n isHeader: boolean\n) {\n // cell.setAttribute('height', height);\n const cellGroup = cell;\n updateCellHeight(scene, cellGroup, col, row, height, 0, isHeader);\n}\n\nexport function updateCellHeight(\n scene: Scenegraph,\n cell: Group,\n col: number,\n row: number,\n distHeight: number,\n detaY: number,\n isHeader: boolean\n) {\n if (cell.attribute.height === distHeight && !cell.needUpdateHeight) {\n return;\n }\n cell.needUpdateHeight = false;\n\n cell.setAttribute('height', distHeight);\n const isVtableMerge = scene.table.getCellRawRecord(col, row)?.vtableMerge;\n const isCustomMerge = !!scene.table.getCustomMerge(col, row);\n // 更新单元格布局\n const type =\n isVtableMerge || isCustomMerge\n ? 'text'\n : scene.table.isHeader(col, row)\n ? (scene.table._getHeaderLayoutMap(col, row) as HeaderData).headerType\n : scene.table.getBodyColumnType(col, row);\n if (type === 'progressbar') {\n // 目前先采用重新生成节点的方案\n const columnDefine = scene.table.getBodyColumnDefine(col, row) as IProgressbarColumnBodyDefine;\n const style = scene.table._getCellStyle(col, row) as ProgressBarStyle;\n const value = scene.table.getCellValue(col, row);\n const dataValue = scene.table.getCellOriginValue(col, row);\n const padding = getQuadProps(getProp('padding', style, col, row, scene.table));\n\n // deal with bar\n let range;\n if (columnDefine?.mergeCell) {\n range = scene.table.getCellRange(col, row);\n }\n\n const createProgressBarCell = Factory.getFunction('createProgressBarCell') as CreateProgressBarCell;\n const newBarCell = createProgressBarCell(\n columnDefine,\n style,\n cell.attribute.width,\n // cell.attribute.height,\n value,\n dataValue,\n col,\n row,\n padding,\n scene.table,\n range\n );\n\n const oldBarCell = cell.getChildByName('progress-bar') as Group;\n // cell.replaceChild(newBarCell, oldBarCell);\n cell.insertBefore(newBarCell, oldBarCell);\n cell.removeChild(oldBarCell);\n oldBarCell.removeAllChild();\n oldBarCell.release();\n\n // deal with text\n updateMergeCellContentHeight(\n cell,\n distHeight,\n detaY,\n // scene.table.heightMode === 'autoHeight',\n scene.table.isAutoRowHeight(row),\n true,\n scene.table\n );\n } else if (type === 'sparkline') {\n // 目前先采用重新生成节点的方案\n cell.removeAllChild();\n const headerStyle = scene.table._getCellStyle(col, row);\n const padding = getQuadProps(getProp('padding', headerStyle, col, row, scene.table));\n const createSparkLineCellGroup = Factory.getFunction('createSparkLineCellGroup') as CreateSparkLineCellGroup;\n createSparkLineCellGroup(\n cell,\n cell.parent,\n cell.attribute.x,\n cell.attribute.y,\n col,\n row,\n cell.attribute.width,\n cell.attribute.height,\n padding,\n scene.table,\n getStyleTheme(headerStyle, scene.table, col, row, getProp).theme,\n false\n );\n } else if (type === 'image' || type === 'video') {\n updateImageCellContentWhileResize(cell, col, row, 0, detaY, scene.table);\n } else if (cell.firstChild?.name === 'axis') {\n (cell.firstChild as any)?.originAxis.resize(cell.attribute.width, cell.attribute.height);\n } else {\n let renderDefault = true;\n const customContainer =\n (cell.getChildByName(CUSTOM_CONTAINER_NAME) as Group) ||\n (cell.getChildByName(CUSTOM_MERGE_CONTAINER_NAME) as Group);\n if (customContainer) {\n // if (scene.table.reactCustomLayout) {\n // scene.table.reactCustomLayout.removeCustomCell(col, row);\n // }\n // customContainer.removeAllChild();\n let customElementsGroup;\n cell.removeChild(customContainer);\n\n const customMergeRange = getCustomCellMergeCustom(col, row, cell, scene.table);\n if (customMergeRange) {\n for (let mergeRow = customMergeRange.start.row; mergeRow <= customMergeRange.end.row; mergeRow++) {\n if (mergeRow === row) {\n continue;\n }\n const mergedCell = scene.getCell(col, mergeRow);\n const customContainer =\n (mergedCell.getChildByName(CUSTOM_CONTAINER_NAME) as Group) ||\n (mergedCell.getChildByName(CUSTOM_MERGE_CONTAINER_NAME) as Group);\n customContainer.removeAllChild();\n mergedCell.removeChild(customContainer);\n getCustomCellMergeCustom(col, mergeRow, mergedCell, scene.table);\n }\n } else {\n let customRender;\n let customLayout;\n const cellLocation = scene.table.getCellLocation(col, row);\n const { vtableMerge } = scene.table.getCellRawRecord(col, row) || {};\n\n if (vtableMerge && (scene.table.options as ListTableConstructorOptions).groupTitleCustomLayout) {\n customLayout = (scene.table.options as ListTableConstructorOptions).groupTitleCustomLayout;\n } else if (cellLocation !== 'body') {\n const define = scene.table.getHeaderDefine(col, row);\n customRender = (define as ColumnDefine)?.headerCustomRender;\n customLayout = (define as ColumnDefine)?.headerCustomLayout;\n } else {\n const define = scene.table.getBodyColumnDefine(col, row);\n customRender = (define as ColumnDefine)?.customRender || scene.table.customRender;\n customLayout = (define as ColumnDefine)?.customLayout;\n }\n\n if ((customRender || customLayout) && isMergeCellGroup(cell)) {\n for (let mergeCol = cell.mergeStartCol; mergeCol <= cell.mergeEndCol; mergeCol++) {\n for (let mergeRow = cell.mergeStartRow; mergeRow <= cell.mergeEndRow; mergeRow++) {\n if (mergeRow !== row) {\n scene.updateCellContent(mergeCol, mergeRow);\n }\n }\n }\n }\n\n if (customLayout || customRender) {\n // const { autoRowHeight } = table.internalProps;\n const style = scene.table._getCellStyle(col, row) as ProgressBarStyle;\n const padding = getQuadProps(getProp('padding', style, col, row, scene.table));\n let width = cell.attribute.width;\n let height = cell.attribute.height;\n if (isMergeCellGroup(cell)) {\n width = scene.table.getColsWidth(cell.mergeStartCol, cell.mergeEndCol);\n height = scene.table.getRowsHeight(cell.mergeStartRow, cell.mergeEndRow);\n }\n const customResult = dealWithCustom(\n customLayout,\n customRender,\n col,\n row,\n width,\n height,\n false,\n // scene.table.heightMode === 'autoHeight',\n scene.table.isAutoRowHeight(row),\n padding,\n isMergeCellGroup(cell)\n ? {\n start: { col: cell.mergeStartCol, row: cell.mergeStartRow },\n end: { col: cell.mergeEndCol, row: cell.mergeEndRow }\n }\n : undefined,\n scene.table\n );\n customElementsGroup = customResult.elementsGroup;\n renderDefault = customResult.renderDefault;\n }\n\n if (cell.childrenCount > 0 && customElementsGroup) {\n cell.insertBefore(customElementsGroup, cell.firstChild);\n } else if (customElementsGroup) {\n cell.appendChild(customElementsGroup);\n }\n }\n }\n // if (renderDefault) {\n // // 处理文字\n // const style = scene.table._getCellStyle(col, row);\n // updateMergeCellContentHeight(\n // cell,\n // distHeight,\n // detaY,\n // // scene.table.internalProps.autoRowHeight,\n // scene.table.heightMode === 'autoHeight',\n // getQuadProps(style.padding as number),\n // style.textAlign,\n // style.textBaseline,\n // scene.table\n // );\n // }\n updateMergeCellContentHeight(\n cell,\n distHeight,\n detaY,\n // scene.table.heightMode === 'autoHeight',\n scene.table.isAutoRowHeight(row),\n renderDefault,\n scene.table\n );\n }\n}\n\nfunction updateMergeCellContentHeight(\n cellGroup: Group,\n distHeight: number,\n detaY: number,\n autoRowHeight: boolean,\n renderDefault: boolean,\n table: BaseTableAPI\n) {\n if (isMergeCellGroup(cellGroup)) {\n distHeight = 0;\n for (let row = cellGroup.mergeStartRow; row <= cellGroup.mergeEndRow; row++) {\n distHeight += table.getRowHeight(row);\n }\n const { colStart, colEnd, rowStart, rowEnd } = getCellMergeRange(cellGroup, table.scenegraph);\n for (let col = colStart; col <= colEnd; col++) {\n for (let row = rowStart; row <= rowEnd; row++) {\n const singleCellGroup = table.scenegraph.getCell(col, row);\n singleCellGroup.forEachChildren((child: IGraphic) => {\n child.setAttributes({\n dx: 0,\n dy: 0\n });\n });\n\n if (renderDefault) {\n const style = table._getCellStyle(colStart, rowStart);\n updateCellContentHeight(\n singleCellGroup,\n distHeight,\n detaY,\n autoRowHeight,\n getQuadProps(style.padding as number),\n style.textAlign,\n style.textBaseline\n );\n }\n\n const rangeHeight = table.getRowHeight(row);\n const rangeWidth = table.getColWidth(col);\n\n // const { height: contentHeight } = cellGroup.attribute;\n singleCellGroup.contentHeight = distHeight;\n\n const { widthChange } = resizeCellGroup(\n singleCellGroup,\n rangeWidth,\n rangeHeight,\n {\n start: {\n col: cellGroup.mergeStartCol,\n row: cellGroup.mergeStartRow\n },\n end: {\n col: cellGroup.mergeEndCol,\n row: cellGroup.mergeEndRow\n }\n },\n table\n );\n\n if (widthChange) {\n singleCellGroup.needUpdateWidth = true;\n }\n }\n }\n } else {\n const style = table._getCellStyle(cellGroup.col, cellGroup.row);\n updateCellContentHeight(\n cellGroup,\n distHeight,\n detaY,\n autoRowHeight,\n getQuadProps(style.padding as number),\n style.textAlign,\n style.textBaseline\n );\n }\n}\n"]}
|
|
@@ -109,7 +109,7 @@ function updateColunmWidth(columnGroup, detaX, mode, scene) {
|
|
|
109
109
|
}
|
|
110
110
|
|
|
111
111
|
function updateCellWidth(scene, cell, col, row, oldWidth, distWidth, detaX, isHeader, autoWrapText) {
|
|
112
|
-
var _a, _b, _c, _d, _e
|
|
112
|
+
var _a, _b, _c, _d, _e;
|
|
113
113
|
if (cell.attribute.width === distWidth && !cell.needUpdateWidth) return !1;
|
|
114
114
|
cell.needUpdateWidth = !1, cell.setAttribute("width", distWidth);
|
|
115
115
|
const cellGroup = cell;
|
|
@@ -140,8 +140,7 @@ function updateCellWidth(scene, cell, col, row, oldWidth, distWidth, detaX, isHe
|
|
|
140
140
|
const customContainer = cell.getChildByName(CUSTOM_CONTAINER_NAME) || cell.getChildByName(CUSTOM_MERGE_CONTAINER_NAME);
|
|
141
141
|
if (customContainer) {
|
|
142
142
|
let customElementsGroup;
|
|
143
|
-
|
|
144
|
-
customContainer.removeAllChild(), cell.removeChild(customContainer);
|
|
143
|
+
cell.removeChild(customContainer);
|
|
145
144
|
const customMergeRange = getCustomCellMergeCustom(col, row, cell, scene.table);
|
|
146
145
|
if (customMergeRange) for (let mergeCol = customMergeRange.start.col; mergeCol <= customMergeRange.end.col; mergeCol++) {
|
|
147
146
|
if (mergeCol === col) continue;
|
|
@@ -164,7 +163,7 @@ function updateCellWidth(scene, cell, col, row, oldWidth, distWidth, detaX, isHe
|
|
|
164
163
|
let width = cellGroup.attribute.width, height = cellGroup.attribute.height;
|
|
165
164
|
isMergeCellGroup(cellGroup) && (width = scene.table.getColsWidth(cellGroup.mergeStartCol, cellGroup.mergeEndCol),
|
|
166
165
|
height = scene.table.getRowsHeight(cellGroup.mergeStartRow, cellGroup.mergeEndRow));
|
|
167
|
-
const customResult = dealWithCustom(customLayout, customRender,
|
|
166
|
+
const customResult = dealWithCustom(customLayout, customRender, col, row, width, height, !1, scene.table.isAutoRowHeight(row), padding, isMergeCellGroup(cellGroup) ? {
|
|
168
167
|
start: {
|
|
169
168
|
col: cellGroup.mergeStartCol,
|
|
170
169
|
row: cellGroup.mergeStartRow
|