@visactor/vtable 1.22.7-alpha.4 → 1.22.7-alpha.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. package/cjs/ListTable.js +5 -2
  2. package/cjs/ListTable.js.map +1 -1
  3. package/cjs/core/BaseTable.d.ts +2 -2
  4. package/cjs/core/BaseTable.js +9 -7
  5. package/cjs/core/BaseTable.js.map +1 -1
  6. package/cjs/core/TABLE_EVENT_TYPE.d.ts +2 -0
  7. package/cjs/core/TABLE_EVENT_TYPE.js +3 -1
  8. package/cjs/core/TABLE_EVENT_TYPE.js.map +1 -1
  9. package/cjs/index.d.ts +1 -1
  10. package/cjs/index.js +1 -1
  11. package/cjs/index.js.map +1 -1
  12. package/cjs/plugins/plugin-manager.d.ts +2 -0
  13. package/cjs/plugins/plugin-manager.js +13 -6
  14. package/cjs/plugins/plugin-manager.js.map +1 -1
  15. package/cjs/scenegraph/graphic/active-cell-chart-list.js +45 -63
  16. package/cjs/scenegraph/graphic/active-cell-chart-list.js.map +1 -1
  17. package/cjs/scenegraph/graphic/chart.js +3 -10
  18. package/cjs/scenegraph/graphic/chart.js.map +1 -1
  19. package/cjs/state/state.js +9 -9
  20. package/cjs/state/state.js.map +1 -1
  21. package/cjs/ts-types/base-table.d.ts +2 -2
  22. package/cjs/ts-types/base-table.js.map +1 -1
  23. package/cjs/ts-types/events.d.ts +8 -0
  24. package/cjs/ts-types/events.js.map +1 -1
  25. package/cjs/ts-types/table-engine.d.ts +2 -2
  26. package/cjs/ts-types/table-engine.js.map +1 -1
  27. package/cjs/vrender.js.map +1 -1
  28. package/dist/vtable.js +132 -162
  29. package/dist/vtable.min.js +2 -2
  30. package/es/ListTable.js +5 -2
  31. package/es/ListTable.js.map +1 -1
  32. package/es/core/BaseTable.d.ts +2 -2
  33. package/es/core/BaseTable.js +9 -7
  34. package/es/core/BaseTable.js.map +1 -1
  35. package/es/core/TABLE_EVENT_TYPE.d.ts +2 -0
  36. package/es/core/TABLE_EVENT_TYPE.js +3 -1
  37. package/es/core/TABLE_EVENT_TYPE.js.map +1 -1
  38. package/es/index.d.ts +1 -1
  39. package/es/index.js +1 -1
  40. package/es/index.js.map +1 -1
  41. package/es/plugins/plugin-manager.d.ts +2 -0
  42. package/es/plugins/plugin-manager.js +13 -6
  43. package/es/plugins/plugin-manager.js.map +1 -1
  44. package/es/scenegraph/graphic/active-cell-chart-list.js +45 -63
  45. package/es/scenegraph/graphic/active-cell-chart-list.js.map +1 -1
  46. package/es/scenegraph/graphic/chart.js +3 -10
  47. package/es/scenegraph/graphic/chart.js.map +1 -1
  48. package/es/state/state.js +9 -9
  49. package/es/state/state.js.map +1 -1
  50. package/es/ts-types/base-table.d.ts +2 -2
  51. package/es/ts-types/base-table.js.map +1 -1
  52. package/es/ts-types/events.d.ts +8 -0
  53. package/es/ts-types/events.js.map +1 -1
  54. package/es/ts-types/table-engine.d.ts +2 -2
  55. package/es/ts-types/table-engine.js.map +1 -1
  56. package/es/vrender.js.map +1 -1
  57. package/package.json +7 -7
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/scenegraph/graphic/chart.ts"],"names":[],"mappings":"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","file":"chart.js","sourcesContent":["import type { GraphicType, IGroupGraphicAttribute, Stage, Group } from './../../vrender';\nimport { genNumberType, Rect } from './../../vrender';\nimport { Bounds, merge } from '@visactor/vutils';\nimport type { BaseTableAPI } from '../../ts-types/base-table';\nimport type { PivotChart } from '../../PivotChart';\nimport { getCellHoverColor } from '../../state/hover/is-cell-hover';\nimport {\n clearChartInstanceListByColumnDirection,\n clearChartInstanceListByRowDirection,\n generateChartInstanceListByColumnDirection,\n generateChartInstanceListByRowDirection\n} from './active-cell-chart-list';\nimport type { PivotChartConstructorOptions } from '../..';\nimport { getAxisConfigInPivotChart } from '../../layout/chart-helper/get-axis-config';\n\ninterface IChartGraphicAttribute extends IGroupGraphicAttribute {\n canvas: HTMLCanvasElement;\n dataId: string | Record<string, string>; //如果是spec外层的dataId,则是string,否则通过series获取到的是Record<string, string> <dataId, series-chart的指标key用于过滤数据>\n data: any;\n spec: any;\n axes: any;\n ClassType: any;\n chartInstance: any;\n cellPadding: number[];\n mode: string;\n modeParams: any;\n dpr: number;\n // viewBox: {\n // x1: number;\n // y1: number;\n // x2: number;\n // y2: number;\n // };\n tableChartOption: any;\n col?: number;\n row?: number;\n detectPickChartItem?: boolean;\n}\n\nexport const CHART_NUMBER_TYPE = genNumberType();\n\nexport class Chart extends Rect {\n type: GraphicType = 'chart' as any;\n declare attribute: IChartGraphicAttribute;\n chartInstance: any;\n activeChartInstance: any;\n activeChartInstanceHoverOnMark: any = null;\n justShowMarkTooltip: boolean = undefined;\n justShowMarkTooltipTimer: number = Date.now();\n delayRunDimensionHoverTimer: any = undefined;\n cacheCanvas: HTMLCanvasElement | { x: number; y: number; width: number; height: number; canvas: HTMLCanvasElement }[]; // HTMLCanvasElement\n isShareChartSpec: boolean; //针对chartSpec用户配置成函数形式的话 就不需要存储chartInstance了 会太占内存,使用这个变量 当渲染出缓存图表会就删除chartInstance实例\n constructor(isShareChartSpec: boolean, params: IChartGraphicAttribute) {\n super(params);\n this.numberType = CHART_NUMBER_TYPE;\n this.isShareChartSpec = isShareChartSpec;\n // 创建chart\n if (!params.chartInstance) {\n const chartInstance = (this.chartInstance = new params.ClassType(\n params.spec,\n merge({}, this.attribute.tableChartOption, {\n renderCanvas: params.canvas,\n mode: this.attribute.mode === 'node' ? 'node' : 'desktop-browser',\n modeParams: this.attribute.modeParams,\n canvasControled: false,\n viewBox: { x1: 0, x2: 0, y1: 0, y2: 0 },\n dpr: params.dpr,\n // viewBox: params.viewBox,\n // viewBox: this.getViewBox(),\n // viewBox: {\n // x1: params.cellPadding[3],\n // x2: params.width - params.cellPadding[1],\n // y1: params.cellPadding[0],\n // y2: params.height - params.cellPadding[2]\n // },\n interactive: false,\n animation: false,\n autoFit: false\n })\n ));\n chartInstance.renderSync();\n chartInstance.getStage().enableDirtyBounds();\n params.chartInstance = this.chartInstance = chartInstance;\n } else {\n this.chartInstance = params.chartInstance;\n }\n\n // this.chart.load().then((cache) => {\n // this.cacheCanvas = cache;\n // this.deactivate();\n // });\n }\n\n // onBeforeAttributeUpdate() {\n // if (arguments[2] === y) {\n // debugger;\n // }\n // }\n /**\n * 激活该图表元素\n * @param table\n */\n activate(table: BaseTableAPI) {\n if (this.activeChartInstance) {\n return;\n }\n const { col, row } = this.parent;\n const hoverColor = getCellHoverColor(this.parent, table);\n // this.chart = new TestChart(this.attribute.spec);\n // const ctx = this.attribute.canvas.getContext('2d');\n // const { x1, y1, x2, y2 } = this.attribute.viewBox;\n const { x1, y1, x2, y2 } = this.getViewBox();\n //获取渲染区域的bound 考虑被表头遮住部分的情况\n const tableBound = getTableBounds(col, row, table);\n const clipBound = tableBound.intersect({\n x1: x1 - table.scrollLeft,\n x2: x2 - table.scrollLeft,\n y1: y1 - table.scrollTop,\n y2: y2 - table.scrollTop\n });\n this.activeChartInstance?.release();\n this.attribute.ClassType.globalConfig.uniqueTooltip = false;\n this.activeChartInstance = new this.attribute.ClassType(\n this.attribute.spec,\n merge({}, this.attribute.tableChartOption, {\n // disableDirtyBounds: true,\n renderCanvas: this.attribute.canvas,\n mode: 'desktop-browser',\n canvasControled: false,\n // viewBox: {\n // x1: x1 - table.scrollLeft,\n // x2: x2 - table.scrollLeft,\n // y1: y1 - table.scrollTop,\n // y2: y2 - table.scrollTop\n // },\n viewBox: {\n x1: 0,\n x2: x2 - x1,\n y1: 0,\n y2: y2 - y1\n },\n dpr: table.internalProps.pixelRatio,\n animation: false,\n interactive: true,\n autoFit: false, //控制当容器变化大小时vchart实例不应响应事件进行内部处理\n beforeRender: (chartStage: Stage) => {\n const stage = this.stage;\n const ctx = chartStage.window.getContext();\n const stageMatrix = stage.window.getViewBoxTransform();\n const viewBox = stage.window.getViewBox();\n ctx.inuse = true;\n // ctx.save();\n // console.log(ctx.getImageData(0, 0, 100, 100));\n ctx.clearMatrix();\n ctx.setTransform(\n stageMatrix.a,\n stageMatrix.b,\n stageMatrix.c,\n stageMatrix.d,\n stageMatrix.e,\n stageMatrix.f,\n true\n );\n ctx.translate(viewBox.x1, viewBox.y1);\n ctx.setTransformForCurrent(true); // 替代原有的chart viewBox\n ctx.beginPath();\n ctx.rect(clipBound.x1, clipBound.y1, clipBound.x2 - clipBound.x1, clipBound.y2 - clipBound.y1);\n ctx.clip();\n ctx.clearMatrix();\n\n if (table.options.canvas && !(chartStage as any).needRender) {\n // 在使用viewbox局部渲染时,activate单独渲染chart stage,可能导致外部stage场景层级错乱\n // 此时触发整个表格的重绘,外部stage场景可以通过table的beforeRender配置触发更上一级的重绘\n chartStage.pauseRender();\n table.scenegraph.stage.dirtyBounds.union(this.globalAABBBounds);\n table.scenegraph.updateNextFrame();\n }\n },\n afterRender(stage: any) {\n const ctx = stage.window.getContext();\n ctx.inuse = false;\n\n stage.needRender = false;\n chartStage.resumeRender();\n },\n renderHooks: {\n afterClearRect(drawParams: any) {\n const { context, layer, viewBox } = drawParams;\n if (layer.main && drawParams.clear && hoverColor) {\n context.beginPath();\n context.fillStyle = hoverColor;\n context.rect(viewBox.x1, viewBox.y1, viewBox.x2 - viewBox.x1, viewBox.y2 - viewBox.y1);\n context.fill();\n }\n }\n },\n componentShowContent: (table.options as PivotChartConstructorOptions).chartDimensionLinkage\n ? {\n tooltip: {\n dimension: false,\n mark: true\n },\n crosshair: false\n }\n : undefined\n })\n );\n const chartStage = this.activeChartInstance.getStage();\n // chartStage.needRender = true;\n // chartStage.background = 'red';\n const matrix = this.globalTransMatrix.clone();\n const stageMatrix = this.stage.window.getViewBoxTransform();\n matrix.multiply(stageMatrix.a, stageMatrix.b, stageMatrix.c, stageMatrix.d, stageMatrix.e, stageMatrix.f);\n chartStage.window.setViewBoxTransform &&\n chartStage.window.setViewBoxTransform(matrix.a, matrix.b, matrix.c, matrix.d, matrix.e, matrix.f);\n\n // this.activeChartInstance.updateData('data', this.attribute.data);\n this.activeChartInstance.renderSync();\n\n (table.internalProps.layoutMap as any)?.updateDataStateToActiveChartInstance?.(this.activeChartInstance);\n this.activeChartInstance.on('click', (params: any) => {\n if (this.attribute.spec.select?.enable === false) {\n table.scenegraph.updateChartState(null);\n } else if (Chart.temp) {\n table.scenegraph.updateChartState(params?.datum);\n }\n });\n this.activeChartInstance.on('brushEnd', (params: any) => {\n table.scenegraph.updateChartState(params?.value?.inBrushData);\n Chart.temp = 0;\n setTimeout(() => {\n Chart.temp = 1;\n }, 0);\n });\n if ((table.options as PivotChartConstructorOptions).chartDimensionLinkage) {\n this.activeChartInstance.on('dimensionHover', (params: any) => {\n const dimensionInfo = params?.dimensionInfo[0];\n const canvasXY = params?.event?.canvas;\n const viewport = params?.event?.viewport;\n if (viewport) {\n const xValue = dimensionInfo.data[0].series.positionToDataX(viewport.x);\n const yValue = dimensionInfo.data[0].series.positionToDataY(viewport.y);\n\n if (this.attribute.spec.type === 'scatter') {\n // console.log('receive scatter dimensionHover', params.action);\n generateChartInstanceListByColumnDirection(col, xValue, undefined, canvasXY, table, false, true);\n generateChartInstanceListByRowDirection(row, undefined, yValue, canvasXY, table, false, true);\n //#region 显示横纵向crosshair的labelHoverOnAxis 代码块\n const axisConfigLeft = getAxisConfigInPivotChart(\n table.rowHeaderLevelCount - 1,\n row,\n table.internalProps.layoutMap as any\n );\n // 显示左侧纵向crosshair的labelHoverOnAxis\n if (axisConfigLeft.labelHoverOnAxis) {\n table.scenegraph\n .getCell(table.rowHeaderLevelCount - 1, row)\n .firstChild.showLabelHoverOnAxis(canvasXY.y - table.getCellRelativeRect(col, row).top, yValue);\n }\n const axisConfigBottom = getAxisConfigInPivotChart(\n col,\n table.rowCount - table.bottomFrozenRowCount,\n table.internalProps.layoutMap as any\n );\n // 显示底部横向crosshair的labelHoverOnAxis\n if (axisConfigBottom.labelHoverOnAxis) {\n table.scenegraph\n .getCell(col, table.rowCount - table.bottomFrozenRowCount)\n .firstChild.showLabelHoverOnAxis(canvasXY.x - table.getCellRelativeRect(col, row).left, xValue);\n }\n //#endregion 显示横纵向crosshair的labelHoverOnAxis 代码块\n } else {\n //hover到mark和dimension的tooltip显示逻辑有区别,hover到mark的时候只显示背景及本身的tooltip,不显示其他联动区域图表的tooltip,而hover到dimension的时候需要显示其他联动区域图表的tooltip\n //#region 为了解决鼠标快速移动于mark和dimension之间造成tooltip闪动问题,纯粹的防抖效果不好的问题,需要增加一个延迟显示tooltip的机制(写了一堆看不懂的逻辑)\n let justShowMarkTooltip = true;\n const preMark = this.activeChartInstanceHoverOnMark;\n const prev_justShowMarkTooltip = this.justShowMarkTooltip;\n // console.log('----', params, params.datum, params.dimensionInfo[0].data[0]);\n if (params.mark && params.datum && !Array.isArray(params.datum)) {\n this.activeChartInstanceHoverOnMark = params.mark;\n justShowMarkTooltip = true;\n } else {\n this.activeChartInstanceHoverOnMark = null;\n justShowMarkTooltip = false;\n }\n this.justShowMarkTooltip = justShowMarkTooltip;\n let delayRunDimensionHover: boolean = false;\n if (prev_justShowMarkTooltip === true && justShowMarkTooltip === false) {\n this.justShowMarkTooltipTimer = Date.now();\n delayRunDimensionHover = true;\n } else if (prev_justShowMarkTooltip === false && justShowMarkTooltip === false) {\n if (Date.now() - this.justShowMarkTooltipTimer < 100) {\n // 鼠标hover到空白区域时,不要立马显示tooltip,而是等100ms后显示 以防止tooltip在mark和dimension的tooltip之间来回闪烁\n delayRunDimensionHover = true;\n } else {\n delayRunDimensionHover = false;\n }\n } else if (prev_justShowMarkTooltip === false && justShowMarkTooltip === true) {\n delayRunDimensionHover = false;\n clearTimeout(this.delayRunDimensionHoverTimer);\n this.delayRunDimensionHoverTimer = undefined;\n } else if (prev_justShowMarkTooltip === true && justShowMarkTooltip === true) {\n delayRunDimensionHover = false;\n clearTimeout(this.delayRunDimensionHoverTimer); //及时清除之前的定时器\n this.delayRunDimensionHoverTimer = undefined;\n }\n //#endregion\n\n if (\n params.action === 'enter' ||\n params.action === 'move' ||\n preMark !== this.activeChartInstanceHoverOnMark\n ) {\n // console.log('-----preMark', params.action, hideTooltip, preMark, this.activeChartInstanceHoverOnMark);\n const dimensionValue = dimensionInfo.value;\n\n const indicatorsAsCol = (table.options as PivotChartConstructorOptions).indicatorsAsCol;\n if (!delayRunDimensionHover) {\n if (indicatorsAsCol) {\n generateChartInstanceListByRowDirection(\n row,\n dimensionValue,\n null,\n canvasXY,\n table,\n justShowMarkTooltip,\n false\n );\n } else {\n generateChartInstanceListByColumnDirection(\n col,\n dimensionValue,\n null,\n canvasXY,\n table,\n justShowMarkTooltip,\n false\n );\n }\n } else {\n clearTimeout(this.delayRunDimensionHoverTimer);\n //还是需要有个延迟出现的时间,否则从mark切换到dimension时,tooltip不会出现了( preMark !== this.activeChartInstanceHoverOnMark总是为false)\n this.delayRunDimensionHoverTimer = setTimeout(() => {\n if (indicatorsAsCol) {\n generateChartInstanceListByRowDirection(\n row,\n dimensionValue,\n null,\n canvasXY,\n table,\n justShowMarkTooltip,\n false\n );\n } else {\n generateChartInstanceListByColumnDirection(\n col,\n dimensionValue,\n null,\n canvasXY,\n table,\n justShowMarkTooltip,\n false\n );\n }\n }, 100);\n }\n //#region 显示横纵向crosshair的labelHoverOnAxis 代码块\n if (indicatorsAsCol) {\n const series = dimensionInfo.data[0].series;\n const width =\n this.attribute.spec.type === 'histogram' || series.type === 'line' || series.type === 'area'\n ? 0\n : series.getYAxisHelper().getBandwidth(0);\n let y = series.valueToPositionY(dimensionValue);\n\n const axisConfig = getAxisConfigInPivotChart(\n table.rowHeaderLevelCount - 1,\n row,\n table.internalProps.layoutMap as any\n );\n let hoverOnLabelValue = yValue;\n if (this.attribute.spec.type === 'histogram') {\n const { series, datum } = dimensionInfo.data[0];\n if (datum.length > 0) {\n const rangeStartValue = datum[0][series.fieldY[0]];\n const rangeEndValue = datum[0][series.fieldY2];\n hoverOnLabelValue = rangeStartValue + ' ~ ' + rangeEndValue;\n y = (series.valueToPositionY(rangeStartValue) + series.valueToPositionY(rangeEndValue)) / 2;\n }\n }\n // 显示左侧纵向crosshair的labelHoverOnAxis\n if (axisConfig.labelHoverOnAxis) {\n table.scenegraph\n .getCell(table.rowHeaderLevelCount - 1, row)\n .firstChild.showLabelHoverOnAxis(\n y + (series.type === 'line' || series.type === 'area' ? 0 : width / 2),\n hoverOnLabelValue\n );\n }\n } else {\n const series = dimensionInfo.data[0].series;\n const width =\n this.attribute.spec.type === 'histogram' || series.type === 'line' || series.type === 'area'\n ? 0\n : series.getXAxisHelper().getBandwidth(0);\n let x = series.valueToPositionX(dimensionValue);\n const axisConfig = getAxisConfigInPivotChart(\n col,\n table.rowCount - table.bottomFrozenRowCount,\n table.internalProps.layoutMap as any\n );\n let hoverOnLabelValue = dimensionValue;\n if (this.attribute.spec.type === 'histogram') {\n const { series, datum } = dimensionInfo.data[0];\n if (datum.length > 0) {\n const rangeStartValue = datum[0][series.fieldX[0]];\n const rangeEndValue = datum[0][series.fieldX2];\n hoverOnLabelValue = rangeStartValue + ' ~ ' + rangeEndValue;\n x = (series.valueToPositionX(rangeStartValue) + series.valueToPositionX(rangeEndValue)) / 2;\n }\n }\n // 显示底部横向crosshair的labelHoverOnAxis\n if (axisConfig.labelHoverOnAxis) {\n table.scenegraph\n .getCell(col, table.rowCount - table.bottomFrozenRowCount)\n .firstChild.showLabelHoverOnAxis(x + width / 2, hoverOnLabelValue);\n }\n }\n //#endregion 显示横纵向crosshair的labelHoverOnAxis 代码块\n }\n }\n }\n });\n }\n (table as PivotChart)._bindChartEvent?.(this.activeChartInstance);\n }\n static temp: number = 1;\n /**\n * 图表失去焦点\n * @param table\n */\n deactivate(\n table: BaseTableAPI,\n {\n releaseChartInstance = true,\n releaseColumnChartInstance = true,\n releaseRowChartInstance = true\n }: { releaseChartInstance?: boolean; releaseColumnChartInstance?: boolean; releaseRowChartInstance?: boolean } = {}\n ) {\n // console.log('------deactivate', releaseChartInstance, releaseColumnChartInstance, releaseRowChartInstance);\n this.activeChartInstanceHoverOnMark = null;\n this.justShowMarkTooltip = undefined;\n this.justShowMarkTooltipTimer = Date.now();\n clearTimeout(this.delayRunDimensionHoverTimer);\n this.delayRunDimensionHoverTimer = undefined;\n if (releaseChartInstance) {\n // move active chart view box out of browser view\n // to avoid async render when chart is releasd\n this.activeChartInstance?.updateViewBox(\n {\n x1: -1000,\n x2: -800,\n y1: -1000,\n y2: -800\n },\n false,\n false\n );\n this.activeChartInstance?.release();\n this.activeChartInstance = null;\n const { col, row } = this.parent;\n // 隐藏左侧纵向crosshair的labelHoverOnAxis\n table.internalProps.layoutMap.isAxisCell(table.rowHeaderLevelCount - 1, row) &&\n table.scenegraph.getCell(table.rowHeaderLevelCount - 1, row).firstChild.hideLabelHoverOnAxis?.();\n // 隐藏底部横向crosshair的labelHoverOnAxis\n table.internalProps.layoutMap.isAxisCell(col, table.rowCount - table.bottomFrozenRowCount) &&\n table.scenegraph.getCell(col, table.rowCount - table.bottomFrozenRowCount).firstChild.hideLabelHoverOnAxis?.();\n } else {\n const { col, row } = this.parent;\n if (releaseColumnChartInstance) {\n // 隐藏底部横向crosshair的labelHoverOnAxis\n table.internalProps.layoutMap.isAxisCell(col, table.rowCount - table.bottomFrozenRowCount) &&\n table.scenegraph\n .getCell(col, table.rowCount - table.bottomFrozenRowCount)\n .firstChild.hideLabelHoverOnAxis?.();\n }\n if (releaseRowChartInstance) {\n // 隐藏左侧纵向crosshair的labelHoverOnAxis\n table.internalProps.layoutMap.isAxisCell(table.rowHeaderLevelCount - 1, row) &&\n table.scenegraph.getCell(table.rowHeaderLevelCount - 1, row).firstChild.hideLabelHoverOnAxis?.();\n }\n }\n if (releaseColumnChartInstance) {\n clearChartInstanceListByColumnDirection(\n this.parent.col,\n this.attribute.spec.type === 'scatter' ? this.parent.row : undefined,\n table\n );\n }\n if (releaseRowChartInstance) {\n clearChartInstanceListByRowDirection(\n this.parent.row,\n this.attribute.spec.type === 'scatter' ? this.parent.col : undefined,\n table\n );\n }\n }\n /** 更新图表对应数据 */\n updateData(data: any) {\n this.attribute.data = data;\n }\n\n getViewBox(): {\n x1: number;\n y1: number;\n x2: number;\n y2: number;\n } {\n const cellGroup = this.parent as Group;\n const padding = this.attribute.cellPadding;\n const table = (this.stage as any).table as BaseTableAPI;\n\n const { x1, y1, x2, y2 } = cellGroup.globalAABBBounds;\n\n return {\n x1: Math.ceil(x1 + padding[3] + table.scrollLeft + (table.options.viewBox?.x1 ?? 0)),\n x2: Math.ceil(x1 + cellGroup.attribute.width - padding[1] + table.scrollLeft + (table.options.viewBox?.x1 ?? 0)),\n y1: Math.ceil(y1 + padding[0] + table.scrollTop + (table.options.viewBox?.y1 ?? 0)),\n y2: Math.ceil(y1 + cellGroup.attribute.height - padding[2] + table.scrollTop + (table.options.viewBox?.y1 ?? 0))\n };\n }\n}\n\nfunction getTableBounds(col: number, row: number, table: BaseTableAPI) {\n const { layoutMap } = table.internalProps;\n const bodyBound = new Bounds();\n const tableBound = table.scenegraph.tableGroup.globalAABBBounds;\n bodyBound.x1 = tableBound.x1;\n bodyBound.x2 = tableBound.x2;\n bodyBound.y1 = tableBound.y1;\n bodyBound.y2 = tableBound.y2;\n if (\n layoutMap.isLeftBottomCorner(col, row) ||\n layoutMap.isRightTopCorner(col, row) ||\n layoutMap.isLeftTopCorner(col, row) ||\n layoutMap.isRightBottomCorner(col, row)\n ) {\n // frozen cornor\n } else if (layoutMap.isFrozenColumn(col, row)) {\n // left frozen\n bodyBound.y1 = tableBound.y1 + table.getFrozenRowsHeight();\n bodyBound.y2 = tableBound.y2 - table.getBottomFrozenRowsHeight();\n } else if (layoutMap.isFrozenRow(col, row)) {\n // top frozen\n bodyBound.x1 = tableBound.x1 + table.getFrozenColsWidth();\n bodyBound.x2 = tableBound.x2 - table.getRightFrozenColsWidth();\n } else if (layoutMap.isRightFrozenColumn(col, row)) {\n // right frozen\n bodyBound.y1 = tableBound.y1 + table.getFrozenRowsHeight();\n bodyBound.y2 = tableBound.y2 - table.getBottomFrozenRowsHeight();\n } else if (layoutMap.isBottomFrozenRow(col, row)) {\n // bottom frozen\n bodyBound.x1 = tableBound.x1 + table.getFrozenColsWidth();\n bodyBound.x2 = tableBound.x2 - table.getRightFrozenColsWidth();\n } else if (!layoutMap.isFrozenColumn(col, row) && !layoutMap.isRightFrozenColumn(col, row)) {\n // no frozen body\n bodyBound.x1 = tableBound.x1 + table.getFrozenColsWidth();\n bodyBound.x2 = tableBound.x2 - table.getRightFrozenColsWidth();\n bodyBound.y1 = tableBound.y1 + table.getFrozenRowsHeight();\n bodyBound.y2 = tableBound.y2 - table.getBottomFrozenRowsHeight();\n }\n\n bodyBound.x1 = bodyBound.x1 + (table.options.viewBox?.x1 ?? 0);\n bodyBound.x2 = bodyBound.x2 + (table.options.viewBox?.x1 ?? 0);\n bodyBound.y1 = bodyBound.y1 + (table.options.viewBox?.y1 ?? 0);\n bodyBound.y2 = bodyBound.y2 + (table.options.viewBox?.y1 ?? 0);\n\n return bodyBound;\n}\n"]}
1
+ {"version":3,"sources":["../src/scenegraph/graphic/chart.ts"],"names":[],"mappings":"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","file":"chart.js","sourcesContent":["import type { GraphicType, IGroupGraphicAttribute, Stage, Group } from './../../vrender';\nimport { genNumberType, Rect } from './../../vrender';\nimport { Bounds, merge } from '@visactor/vutils';\nimport type { BaseTableAPI } from '../../ts-types/base-table';\nimport type { PivotChart } from '../../PivotChart';\nimport { getCellHoverColor } from '../../state/hover/is-cell-hover';\nimport {\n clearChartInstanceListByColumnDirection,\n clearChartInstanceListByRowDirection,\n generateChartInstanceListByColumnDirection,\n generateChartInstanceListByRowDirection\n} from './active-cell-chart-list';\nimport type { PivotChartConstructorOptions } from '../..';\nimport { getAxisConfigInPivotChart } from '../../layout/chart-helper/get-axis-config';\n\ninterface IChartGraphicAttribute extends IGroupGraphicAttribute {\n canvas: HTMLCanvasElement;\n dataId: string | Record<string, string>; //如果是spec外层的dataId,则是string,否则通过series获取到的是Record<string, string> <dataId, series-chart的指标key用于过滤数据>\n data: any;\n spec: any;\n axes: any;\n ClassType: any;\n chartInstance: any;\n cellPadding: number[];\n mode: string;\n modeParams: any;\n dpr: number;\n // viewBox: {\n // x1: number;\n // y1: number;\n // x2: number;\n // y2: number;\n // };\n tableChartOption: any;\n col?: number;\n row?: number;\n detectPickChartItem?: boolean;\n}\n\nexport const CHART_NUMBER_TYPE = genNumberType();\n\nexport class Chart extends Rect {\n type: GraphicType = 'chart' as any;\n declare attribute: IChartGraphicAttribute;\n chartInstance: any;\n activeChartInstance: any;\n activeChartInstanceHoverOnMark: any = null;\n justShowMarkTooltip: boolean = undefined;\n justShowMarkTooltipTimer: number = Date.now();\n delayRunDimensionHoverTimer: any = undefined;\n cacheCanvas: HTMLCanvasElement | { x: number; y: number; width: number; height: number; canvas: HTMLCanvasElement }[]; // HTMLCanvasElement\n isShareChartSpec: boolean; //针对chartSpec用户配置成函数形式的话 就不需要存储chartInstance了 会太占内存,使用这个变量 当渲染出缓存图表会就删除chartInstance实例\n constructor(isShareChartSpec: boolean, params: IChartGraphicAttribute) {\n super(params);\n this.numberType = CHART_NUMBER_TYPE;\n this.isShareChartSpec = isShareChartSpec;\n // 创建chart\n if (!params.chartInstance) {\n const chartInstance = (this.chartInstance = new params.ClassType(\n params.spec,\n merge({}, this.attribute.tableChartOption, {\n renderCanvas: params.canvas,\n mode: this.attribute.mode === 'node' ? 'node' : 'desktop-browser',\n modeParams: this.attribute.modeParams,\n canvasControled: false,\n viewBox: { x1: 0, x2: 0, y1: 0, y2: 0 },\n dpr: params.dpr,\n // viewBox: params.viewBox,\n // viewBox: this.getViewBox(),\n // viewBox: {\n // x1: params.cellPadding[3],\n // x2: params.width - params.cellPadding[1],\n // y1: params.cellPadding[0],\n // y2: params.height - params.cellPadding[2]\n // },\n interactive: false,\n animation: false,\n autoFit: false\n })\n ));\n chartInstance.renderSync();\n chartInstance.getStage().enableDirtyBounds();\n params.chartInstance = this.chartInstance = chartInstance;\n } else {\n this.chartInstance = params.chartInstance;\n }\n\n // this.chart.load().then((cache) => {\n // this.cacheCanvas = cache;\n // this.deactivate();\n // });\n }\n\n // onBeforeAttributeUpdate() {\n // if (arguments[2] === y) {\n // debugger;\n // }\n // }\n /**\n * 激活该图表元素\n * @param table\n */\n activate(table: BaseTableAPI) {\n if (this.activeChartInstance) {\n return;\n }\n const { col, row } = this.parent;\n const hoverColor = getCellHoverColor(this.parent, table);\n // this.chart = new TestChart(this.attribute.spec);\n // const ctx = this.attribute.canvas.getContext('2d');\n // const { x1, y1, x2, y2 } = this.attribute.viewBox;\n const { x1, y1, x2, y2 } = this.getViewBox();\n //获取渲染区域的bound 考虑被表头遮住部分的情况\n const tableBound = getTableBounds(col, row, table);\n const clipBound = tableBound.intersect({\n x1: x1 - table.scrollLeft,\n x2: x2 - table.scrollLeft,\n y1: y1 - table.scrollTop,\n y2: y2 - table.scrollTop\n });\n this.activeChartInstance?.release();\n this.attribute.ClassType.globalConfig.uniqueTooltip = false;\n this.activeChartInstance = new this.attribute.ClassType(\n this.attribute.spec,\n merge({}, this.attribute.tableChartOption, {\n // disableDirtyBounds: true,\n renderCanvas: this.attribute.canvas,\n mode: 'desktop-browser',\n canvasControled: false,\n // viewBox: {\n // x1: x1 - table.scrollLeft,\n // x2: x2 - table.scrollLeft,\n // y1: y1 - table.scrollTop,\n // y2: y2 - table.scrollTop\n // },\n viewBox: {\n x1: 0,\n x2: x2 - x1,\n y1: 0,\n y2: y2 - y1\n },\n dpr: table.internalProps.pixelRatio,\n animation: false,\n interactive: true,\n autoFit: false, //控制当容器变化大小时vchart实例不应响应事件进行内部处理\n beforeRender: (chartStage: Stage) => {\n const stage = this.stage;\n const ctx = chartStage.window.getContext();\n const stageMatrix = stage.window.getViewBoxTransform();\n const viewBox = stage.window.getViewBox();\n ctx.inuse = true;\n // ctx.save();\n // console.log(ctx.getImageData(0, 0, 100, 100));\n ctx.clearMatrix();\n ctx.setTransform(\n stageMatrix.a,\n stageMatrix.b,\n stageMatrix.c,\n stageMatrix.d,\n stageMatrix.e,\n stageMatrix.f,\n true\n );\n ctx.translate(viewBox.x1, viewBox.y1);\n ctx.setTransformForCurrent(true); // 替代原有的chart viewBox\n ctx.beginPath();\n ctx.rect(clipBound.x1, clipBound.y1, clipBound.x2 - clipBound.x1, clipBound.y2 - clipBound.y1);\n ctx.clip();\n ctx.clearMatrix();\n\n if (table.options.canvas && !(chartStage as any).needRender) {\n // 在使用viewbox局部渲染时,activate单独渲染chart stage,可能导致外部stage场景层级错乱\n // 此时触发整个表格的重绘,外部stage场景可以通过table的beforeRender配置触发更上一级的重绘\n chartStage.pauseRender();\n table.scenegraph.stage.dirtyBounds.union(this.globalAABBBounds);\n table.scenegraph.updateNextFrame();\n }\n },\n afterRender(stage: any) {\n const ctx = stage.window.getContext();\n ctx.inuse = false;\n\n stage.needRender = false;\n chartStage.resumeRender();\n },\n renderHooks: {\n afterClearRect(drawParams: any) {\n const { context, layer, viewBox } = drawParams;\n if (layer.main && drawParams.clear && hoverColor) {\n context.beginPath();\n context.fillStyle = hoverColor;\n context.rect(viewBox.x1, viewBox.y1, viewBox.x2 - viewBox.x1, viewBox.y2 - viewBox.y1);\n context.fill();\n }\n }\n }\n })\n );\n const chartStage = this.activeChartInstance.getStage();\n // chartStage.needRender = true;\n // chartStage.background = 'red';\n const matrix = this.globalTransMatrix.clone();\n const stageMatrix = this.stage.window.getViewBoxTransform();\n matrix.multiply(stageMatrix.a, stageMatrix.b, stageMatrix.c, stageMatrix.d, stageMatrix.e, stageMatrix.f);\n chartStage.window.setViewBoxTransform &&\n chartStage.window.setViewBoxTransform(matrix.a, matrix.b, matrix.c, matrix.d, matrix.e, matrix.f);\n\n // this.activeChartInstance.updateData('data', this.attribute.data);\n this.activeChartInstance.renderSync();\n\n (table.internalProps.layoutMap as any)?.updateDataStateToActiveChartInstance?.(this.activeChartInstance);\n this.activeChartInstance.on('click', (params: any) => {\n if (this.attribute.spec.select?.enable === false) {\n table.scenegraph.updateChartState(null);\n } else if (Chart.temp) {\n table.scenegraph.updateChartState(params?.datum);\n }\n });\n this.activeChartInstance.on('brushEnd', (params: any) => {\n table.scenegraph.updateChartState(params?.value?.inBrushData);\n Chart.temp = 0;\n setTimeout(() => {\n Chart.temp = 1;\n }, 0);\n });\n if ((table.options as PivotChartConstructorOptions).chartDimensionLinkage) {\n this.activeChartInstance.on('dimensionHover', (params: any) => {\n const dimensionInfo = params?.dimensionInfo[0];\n const canvasXY = params?.event?.canvas;\n const viewport = params?.event?.viewport;\n if (viewport) {\n const xValue = dimensionInfo.data[0].series.positionToDataX(viewport.x);\n const yValue = dimensionInfo.data[0].series.positionToDataY(viewport.y);\n\n if (this.attribute.spec.type === 'scatter') {\n // console.log('receive scatter dimensionHover', params.action);\n generateChartInstanceListByColumnDirection(col, xValue, undefined, canvasXY, table, false, true);\n generateChartInstanceListByRowDirection(row, undefined, yValue, canvasXY, table, false, true);\n const axisConfigLeft = getAxisConfigInPivotChart(\n table.rowHeaderLevelCount - 1,\n row,\n table.internalProps.layoutMap as any\n );\n // 显示左侧纵向crosshair的labelHoverOnAxis\n if (axisConfigLeft.labelHoverOnAxis) {\n table.scenegraph\n .getCell(table.rowHeaderLevelCount - 1, row)\n .firstChild.showLabelHoverOnAxis(canvasXY.y - table.getCellRelativeRect(col, row).top, yValue);\n }\n const axisConfigBottom = getAxisConfigInPivotChart(\n col,\n table.rowCount - table.bottomFrozenRowCount,\n table.internalProps.layoutMap as any\n );\n // 显示底部横向crosshair的labelHoverOnAxis\n if (axisConfigBottom.labelHoverOnAxis) {\n table.scenegraph\n .getCell(col, table.rowCount - table.bottomFrozenRowCount)\n .firstChild.showLabelHoverOnAxis(canvasXY.x - table.getCellRelativeRect(col, row).left, xValue);\n }\n } else {\n let justShowMarkTooltip = true;\n const preMark = this.activeChartInstanceHoverOnMark;\n const prev_justShowMarkTooltip = this.justShowMarkTooltip;\n // console.log('----', params, params.datum, params.dimensionInfo[0].data[0]);\n if (params.mark && params.datum && !Array.isArray(params.datum)) {\n this.activeChartInstanceHoverOnMark = params.mark;\n justShowMarkTooltip = true;\n } else {\n this.activeChartInstanceHoverOnMark = null;\n justShowMarkTooltip = false;\n }\n this.justShowMarkTooltip = justShowMarkTooltip;\n let delayRunDimensionHover: boolean = false;\n if (prev_justShowMarkTooltip === true && justShowMarkTooltip === false) {\n this.justShowMarkTooltipTimer = Date.now();\n delayRunDimensionHover = true;\n } else if (prev_justShowMarkTooltip === false && justShowMarkTooltip === false) {\n if (Date.now() - this.justShowMarkTooltipTimer < 100) {\n // 鼠标hover到空白区域时,不要立马显示tooltip,而是等100ms后显示 以防止tooltip在mark和dimension的tooltip之间来回闪烁\n delayRunDimensionHover = true;\n } else {\n delayRunDimensionHover = false;\n }\n } else if (prev_justShowMarkTooltip === false && justShowMarkTooltip === true) {\n delayRunDimensionHover = false;\n clearTimeout(this.delayRunDimensionHoverTimer);\n this.delayRunDimensionHoverTimer = undefined;\n } else if (prev_justShowMarkTooltip === true && justShowMarkTooltip === true) {\n delayRunDimensionHover = false;\n clearTimeout(this.delayRunDimensionHoverTimer); //及时清除之前的定时器\n this.delayRunDimensionHoverTimer = undefined;\n }\n\n if (\n params.action === 'enter' ||\n params.action === 'move' ||\n preMark !== this.activeChartInstanceHoverOnMark\n ) {\n // console.log('-----preMark', params.action, hideTooltip, preMark, this.activeChartInstanceHoverOnMark);\n const dimensionValue = dimensionInfo.value;\n\n const indicatorsAsCol = (table.options as PivotChartConstructorOptions).indicatorsAsCol;\n if (!delayRunDimensionHover) {\n if (indicatorsAsCol) {\n generateChartInstanceListByRowDirection(\n row,\n dimensionValue,\n null,\n canvasXY,\n table,\n justShowMarkTooltip,\n false\n );\n } else {\n generateChartInstanceListByColumnDirection(\n col,\n dimensionValue,\n null,\n canvasXY,\n table,\n justShowMarkTooltip,\n false\n );\n }\n } else {\n clearTimeout(this.delayRunDimensionHoverTimer);\n //还是需要有个延迟出现的时间,否则从mark切换到dimension时,tooltip不会出现了( preMark !== this.activeChartInstanceHoverOnMark总是为false)\n this.delayRunDimensionHoverTimer = setTimeout(() => {\n if (indicatorsAsCol) {\n generateChartInstanceListByRowDirection(\n row,\n dimensionValue,\n null,\n canvasXY,\n table,\n justShowMarkTooltip,\n false\n );\n } else {\n generateChartInstanceListByColumnDirection(\n col,\n dimensionValue,\n null,\n canvasXY,\n table,\n justShowMarkTooltip,\n false\n );\n }\n }, 100);\n }\n\n if (indicatorsAsCol) {\n const series = dimensionInfo.data[0].series;\n const width =\n this.attribute.spec.type === 'histogram' ||\n this.attribute.spec.type === 'boxPlot' ||\n series.type === 'line' ||\n series.type === 'area'\n ? 0\n : series.getYAxisHelper().getBandwidth(0);\n let y = series.valueToPositionY(dimensionValue);\n\n const axisConfig = getAxisConfigInPivotChart(\n table.rowHeaderLevelCount - 1,\n row,\n table.internalProps.layoutMap as any\n );\n let hoverOnLabelValue = yValue;\n if (this.attribute.spec.type === 'histogram') {\n const { series, datum } = dimensionInfo.data[0];\n if (datum.length > 0) {\n const rangeStartValue = datum[0][series.fieldY[0]];\n const rangeEndValue = datum[0][series.fieldY2];\n hoverOnLabelValue = rangeStartValue + ' ~ ' + rangeEndValue;\n y = (series.valueToPositionY(rangeStartValue) + series.valueToPositionY(rangeEndValue)) / 2;\n }\n }\n // 显示左侧纵向crosshair的labelHoverOnAxis\n if (axisConfig.labelHoverOnAxis) {\n table.scenegraph\n .getCell(table.rowHeaderLevelCount - 1, row)\n .firstChild.showLabelHoverOnAxis(\n y + (series.type === 'line' || series.type === 'area' ? 0 : width / 2),\n hoverOnLabelValue\n );\n }\n } else {\n const series = dimensionInfo.data[0].series;\n const width =\n this.attribute.spec.type === 'histogram' ||\n this.attribute.spec.type === 'boxPlot' ||\n series.type === 'line' ||\n series.type === 'area'\n ? 0\n : series.getXAxisHelper().getBandwidth(0);\n let x = series.valueToPositionX(dimensionValue);\n const axisConfig = getAxisConfigInPivotChart(\n col,\n table.rowCount - table.bottomFrozenRowCount,\n table.internalProps.layoutMap as any\n );\n let hoverOnLabelValue = dimensionValue;\n if (this.attribute.spec.type === 'histogram') {\n const { series, datum } = dimensionInfo.data[0];\n if (datum.length > 0) {\n const rangeStartValue = datum[0][series.fieldX[0]];\n const rangeEndValue = datum[0][series.fieldX2];\n hoverOnLabelValue = rangeStartValue + ' ~ ' + rangeEndValue;\n x = (series.valueToPositionX(rangeStartValue) + series.valueToPositionX(rangeEndValue)) / 2;\n }\n }\n // 显示底部横向crosshair的labelHoverOnAxis\n if (axisConfig.labelHoverOnAxis) {\n table.scenegraph\n .getCell(col, table.rowCount - table.bottomFrozenRowCount)\n .firstChild.showLabelHoverOnAxis(x + width / 2, hoverOnLabelValue);\n }\n }\n }\n }\n }\n });\n }\n (table as PivotChart)._bindChartEvent?.(this.activeChartInstance);\n }\n static temp: number = 1;\n /**\n * 图表失去焦点\n * @param table\n */\n deactivate(\n table: BaseTableAPI,\n {\n releaseChartInstance = true,\n releaseColumnChartInstance = true,\n releaseRowChartInstance = true\n }: { releaseChartInstance?: boolean; releaseColumnChartInstance?: boolean; releaseRowChartInstance?: boolean } = {}\n ) {\n // console.log('------deactivate', releaseChartInstance, releaseColumnChartInstance, releaseRowChartInstance);\n this.activeChartInstanceHoverOnMark = null;\n this.justShowMarkTooltip = undefined;\n this.justShowMarkTooltipTimer = Date.now();\n clearTimeout(this.delayRunDimensionHoverTimer);\n this.delayRunDimensionHoverTimer = undefined;\n if (releaseChartInstance) {\n // move active chart view box out of browser view\n // to avoid async render when chart is releasd\n this.activeChartInstance?.updateViewBox(\n {\n x1: -1000,\n x2: -800,\n y1: -1000,\n y2: -800\n },\n false,\n false\n );\n this.activeChartInstance?.release();\n this.activeChartInstance = null;\n const { col, row } = this.parent;\n // 隐藏左侧纵向crosshair的labelHoverOnAxis\n table.internalProps.layoutMap.isAxisCell(table.rowHeaderLevelCount - 1, row) &&\n table.scenegraph.getCell(table.rowHeaderLevelCount - 1, row).firstChild.hideLabelHoverOnAxis?.();\n // 隐藏底部横向crosshair的labelHoverOnAxis\n table.internalProps.layoutMap.isAxisCell(col, table.rowCount - table.bottomFrozenRowCount) &&\n table.scenegraph.getCell(col, table.rowCount - table.bottomFrozenRowCount).firstChild.hideLabelHoverOnAxis?.();\n } else {\n const { col, row } = this.parent;\n if (releaseColumnChartInstance) {\n // 隐藏底部横向crosshair的labelHoverOnAxis\n table.internalProps.layoutMap.isAxisCell(col, table.rowCount - table.bottomFrozenRowCount) &&\n table.scenegraph\n .getCell(col, table.rowCount - table.bottomFrozenRowCount)\n .firstChild.hideLabelHoverOnAxis?.();\n }\n if (releaseRowChartInstance) {\n // 隐藏左侧纵向crosshair的labelHoverOnAxis\n table.internalProps.layoutMap.isAxisCell(table.rowHeaderLevelCount - 1, row) &&\n table.scenegraph.getCell(table.rowHeaderLevelCount - 1, row).firstChild.hideLabelHoverOnAxis?.();\n }\n }\n if (releaseColumnChartInstance) {\n clearChartInstanceListByColumnDirection(\n this.parent.col,\n this.attribute.spec.type === 'scatter' ? this.parent.row : undefined,\n table\n );\n }\n if (releaseRowChartInstance) {\n clearChartInstanceListByRowDirection(\n this.parent.row,\n this.attribute.spec.type === 'scatter' ? this.parent.col : undefined,\n table\n );\n }\n }\n /** 更新图表对应数据 */\n updateData(data: any) {\n this.attribute.data = data;\n }\n\n getViewBox(): {\n x1: number;\n y1: number;\n x2: number;\n y2: number;\n } {\n const cellGroup = this.parent as Group;\n const padding = this.attribute.cellPadding;\n const table = (this.stage as any).table as BaseTableAPI;\n\n const { x1, y1, x2, y2 } = cellGroup.globalAABBBounds;\n\n return {\n x1: Math.ceil(x1 + padding[3] + table.scrollLeft + (table.options.viewBox?.x1 ?? 0)),\n x2: Math.ceil(x1 + cellGroup.attribute.width - padding[1] + table.scrollLeft + (table.options.viewBox?.x1 ?? 0)),\n y1: Math.ceil(y1 + padding[0] + table.scrollTop + (table.options.viewBox?.y1 ?? 0)),\n y2: Math.ceil(y1 + cellGroup.attribute.height - padding[2] + table.scrollTop + (table.options.viewBox?.y1 ?? 0))\n };\n }\n}\n\nfunction getTableBounds(col: number, row: number, table: BaseTableAPI) {\n const { layoutMap } = table.internalProps;\n const bodyBound = new Bounds();\n const tableBound = table.scenegraph.tableGroup.globalAABBBounds;\n bodyBound.x1 = tableBound.x1;\n bodyBound.x2 = tableBound.x2;\n bodyBound.y1 = tableBound.y1;\n bodyBound.y2 = tableBound.y2;\n if (\n layoutMap.isLeftBottomCorner(col, row) ||\n layoutMap.isRightTopCorner(col, row) ||\n layoutMap.isLeftTopCorner(col, row) ||\n layoutMap.isRightBottomCorner(col, row)\n ) {\n // frozen cornor\n } else if (layoutMap.isFrozenColumn(col, row)) {\n // left frozen\n bodyBound.y1 = tableBound.y1 + table.getFrozenRowsHeight();\n bodyBound.y2 = tableBound.y2 - table.getBottomFrozenRowsHeight();\n } else if (layoutMap.isFrozenRow(col, row)) {\n // top frozen\n bodyBound.x1 = tableBound.x1 + table.getFrozenColsWidth();\n bodyBound.x2 = tableBound.x2 - table.getRightFrozenColsWidth();\n } else if (layoutMap.isRightFrozenColumn(col, row)) {\n // right frozen\n bodyBound.y1 = tableBound.y1 + table.getFrozenRowsHeight();\n bodyBound.y2 = tableBound.y2 - table.getBottomFrozenRowsHeight();\n } else if (layoutMap.isBottomFrozenRow(col, row)) {\n // bottom frozen\n bodyBound.x1 = tableBound.x1 + table.getFrozenColsWidth();\n bodyBound.x2 = tableBound.x2 - table.getRightFrozenColsWidth();\n } else if (!layoutMap.isFrozenColumn(col, row) && !layoutMap.isRightFrozenColumn(col, row)) {\n // no frozen body\n bodyBound.x1 = tableBound.x1 + table.getFrozenColsWidth();\n bodyBound.x2 = tableBound.x2 - table.getRightFrozenColsWidth();\n bodyBound.y1 = tableBound.y1 + table.getFrozenRowsHeight();\n bodyBound.y2 = tableBound.y2 - table.getBottomFrozenRowsHeight();\n }\n\n bodyBound.x1 = bodyBound.x1 + (table.options.viewBox?.x1 ?? 0);\n bodyBound.x2 = bodyBound.x2 + (table.options.viewBox?.x1 ?? 0);\n bodyBound.y1 = bodyBound.y1 + (table.options.viewBox?.y1 ?? 0);\n bodyBound.y2 = bodyBound.y2 + (table.options.viewBox?.y1 ?? 0);\n\n return bodyBound;\n}\n"]}
package/es/state/state.js CHANGED
@@ -525,12 +525,12 @@ export class StateManager {
525
525
  }), oldHorizontalBarPos !== this.scroll.horizontalBarPos && this.checkHorizontalScrollBarEnd();
526
526
  }
527
527
  setScrollTop(top, event, triggerEvent = !0) {
528
- var _a, _b, _c, _d, _e, _f, _g;
528
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
529
529
  const totalHeight = this.table.getAllRowsHeight(), sizeTolerance = (null === (_a = this.table.options.customConfig) || void 0 === _a ? void 0 : _a._disableColumnAndRowSizeRound) ? 1 : 0;
530
- top = Math.max(0, Math.min(top, totalHeight - this.table.scenegraph.height - sizeTolerance)),
530
+ top = Math.max(0, Math.min(top, totalHeight - (null !== (_c = null === (_b = this.table.scenegraph) || void 0 === _b ? void 0 : _b.height) && void 0 !== _c ? _c : 0) - sizeTolerance)),
531
531
  top = Math.ceil(top);
532
- const oldVerticalBarPos = this.scroll.verticalBarPos, yRatio = top / (totalHeight - this.table.scenegraph.height);
533
- if ((oldVerticalBarPos !== top || !0 === (null === (_c = null === (_b = this.table.options) || void 0 === _b ? void 0 : _b.customConfig) || void 0 === _c ? void 0 : _c.scrollEventAlwaysTrigger)) && triggerEvent) {
532
+ const oldVerticalBarPos = this.scroll.verticalBarPos, yRatio = top / (totalHeight - (null !== (_e = null === (_d = this.table.scenegraph) || void 0 === _d ? void 0 : _d.height) && void 0 !== _e ? _e : 0));
533
+ if ((oldVerticalBarPos !== top || !0 === (null === (_g = null === (_f = this.table.options) || void 0 === _f ? void 0 : _f.customConfig) || void 0 === _g ? void 0 : _g.scrollEventAlwaysTrigger)) && triggerEvent) {
534
534
  let verticalBarPos = top;
535
535
  isValid(verticalBarPos) && !isNaN(verticalBarPos) || (verticalBarPos = 0);
536
536
  const dy = verticalBarPos - oldVerticalBarPos;
@@ -538,15 +538,15 @@ export class StateManager {
538
538
  event: null == event ? void 0 : event.nativeEvent,
539
539
  scrollTop: verticalBarPos,
540
540
  scrollLeft: this.scroll.horizontalBarPos,
541
- scrollHeight: null === (_d = this.table.theme.scrollStyle) || void 0 === _d ? void 0 : _d.width,
542
- scrollWidth: null === (_e = this.table.theme.scrollStyle) || void 0 === _e ? void 0 : _e.width,
541
+ scrollHeight: null === (_h = this.table.theme.scrollStyle) || void 0 === _h ? void 0 : _h.width,
542
+ scrollWidth: null === (_j = this.table.theme.scrollStyle) || void 0 === _j ? void 0 : _j.width,
543
543
  viewHeight: this.table.tableNoFrameHeight,
544
544
  viewWidth: this.table.tableNoFrameWidth,
545
545
  scrollDirection: "vertical",
546
546
  scrollRatioY: yRatio,
547
547
  dy: dy
548
548
  }).some((value => !1 === value))) {
549
- const yRatio = this.scroll.verticalBarPos / (totalHeight - this.table.scenegraph.height);
549
+ const yRatio = this.scroll.verticalBarPos / (totalHeight - (null !== (_l = null === (_k = this.table.scenegraph) || void 0 === _k ? void 0 : _k.height) && void 0 !== _l ? _l : 0));
550
550
  return void this.table.scenegraph.component.updateVerticalScrollBarPos(yRatio);
551
551
  }
552
552
  }
@@ -558,8 +558,8 @@ export class StateManager {
558
558
  event: null == event ? void 0 : event.nativeEvent,
559
559
  scrollTop: this.scroll.verticalBarPos,
560
560
  scrollLeft: this.scroll.horizontalBarPos,
561
- scrollHeight: null === (_f = this.table.theme.scrollStyle) || void 0 === _f ? void 0 : _f.width,
562
- scrollWidth: null === (_g = this.table.theme.scrollStyle) || void 0 === _g ? void 0 : _g.width,
561
+ scrollHeight: null === (_m = this.table.theme.scrollStyle) || void 0 === _m ? void 0 : _m.width,
562
+ scrollWidth: null === (_o = this.table.theme.scrollStyle) || void 0 === _o ? void 0 : _o.width,
563
563
  viewHeight: this.table.tableNoFrameHeight,
564
564
  viewWidth: this.table.tableNoFrameWidth,
565
565
  scrollDirection: "vertical",