@visactor/vtable 1.22.11-alpha.6 → 1.22.11-alpha.8

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 (77) hide show
  1. package/cjs/PivotChart.d.ts +2 -2
  2. package/cjs/PivotChart.js +4 -4
  3. package/cjs/PivotChart.js.map +1 -1
  4. package/cjs/body-helper/style.js +1 -2
  5. package/cjs/core/BaseTable.js +1 -1
  6. package/cjs/core/BaseTable.js.map +1 -1
  7. package/cjs/core/FouseInput.js +2 -1
  8. package/cjs/event/listener/container-dom.js +1 -1
  9. package/cjs/event/listener/container-dom.js.map +1 -1
  10. package/cjs/event/listener/scroll-bar.js +8 -2
  11. package/cjs/event/listener/scroll-bar.js.map +1 -1
  12. package/cjs/event/listener/table-group.js +7 -5
  13. package/cjs/event/listener/table-group.js.map +1 -1
  14. package/cjs/event/media-click.js +1 -1
  15. package/cjs/event/scroll.js +1 -1
  16. package/cjs/event/sparkline-event.js +1 -1
  17. package/cjs/event/util.js +1 -1
  18. package/cjs/index.d.ts +1 -1
  19. package/cjs/index.js +1 -1
  20. package/cjs/index.js.map +1 -1
  21. package/cjs/layout/index.js +2 -1
  22. package/cjs/plugins/custom-cell-style.js +1 -1
  23. package/cjs/plugins/index.js +1 -1
  24. package/cjs/plugins/interface.js +1 -1
  25. package/cjs/plugins/invert-highlight.js +1 -2
  26. package/cjs/plugins/list-tree-stick-cell.js +1 -1
  27. package/cjs/plugins/plugin-manager.js +1 -1
  28. package/cjs/scenegraph/graphic/active-cell-chart-list.d.ts +3 -2
  29. package/cjs/scenegraph/graphic/active-cell-chart-list.js +25 -22
  30. package/cjs/scenegraph/graphic/active-cell-chart-list.js.map +1 -1
  31. package/cjs/scenegraph/graphic/chart.d.ts +1 -0
  32. package/cjs/scenegraph/graphic/chart.js +14 -8
  33. package/cjs/scenegraph/graphic/chart.js.map +1 -1
  34. package/cjs/scenegraph/scenegraph.js +14 -10
  35. package/cjs/scenegraph/scenegraph.js.map +1 -1
  36. package/cjs/state/state.js +1 -1
  37. package/cjs/vrender.js.map +1 -1
  38. package/dist/vtable.js +57 -33
  39. package/dist/vtable.min.js +1 -1
  40. package/es/PivotChart.d.ts +2 -2
  41. package/es/PivotChart.js +5 -5
  42. package/es/PivotChart.js.map +1 -1
  43. package/es/body-helper/style.js +1 -2
  44. package/es/core/BaseTable.js +1 -1
  45. package/es/core/BaseTable.js.map +1 -1
  46. package/es/core/FouseInput.js +2 -1
  47. package/es/event/listener/container-dom.js +1 -1
  48. package/es/event/listener/container-dom.js.map +1 -1
  49. package/es/event/listener/scroll-bar.js +8 -2
  50. package/es/event/listener/scroll-bar.js.map +1 -1
  51. package/es/event/listener/table-group.js +7 -5
  52. package/es/event/listener/table-group.js.map +1 -1
  53. package/es/event/media-click.js +1 -1
  54. package/es/event/scroll.js +1 -1
  55. package/es/event/sparkline-event.js +1 -1
  56. package/es/event/util.js +1 -1
  57. package/es/index.d.ts +1 -1
  58. package/es/index.js +1 -1
  59. package/es/index.js.map +1 -1
  60. package/es/layout/index.js +2 -1
  61. package/es/plugins/custom-cell-style.js +1 -1
  62. package/es/plugins/index.js +1 -1
  63. package/es/plugins/interface.js +1 -1
  64. package/es/plugins/invert-highlight.js +1 -2
  65. package/es/plugins/list-tree-stick-cell.js +1 -1
  66. package/es/plugins/plugin-manager.js +1 -1
  67. package/es/scenegraph/graphic/active-cell-chart-list.d.ts +3 -2
  68. package/es/scenegraph/graphic/active-cell-chart-list.js +14 -11
  69. package/es/scenegraph/graphic/active-cell-chart-list.js.map +1 -1
  70. package/es/scenegraph/graphic/chart.d.ts +1 -0
  71. package/es/scenegraph/graphic/chart.js +13 -8
  72. package/es/scenegraph/graphic/chart.js.map +1 -1
  73. package/es/scenegraph/scenegraph.js +13 -10
  74. package/es/scenegraph/scenegraph.js.map +1 -1
  75. package/es/state/state.js +1 -1
  76. package/es/vrender.js.map +1 -1
  77. package/package.json +3 -3
@@ -237,20 +237,23 @@ export function clearAllChartInstanceList(table, forceRelease = !1) {
237
237
  for (const row in chartInstanceListRowByRowDirection) clearChartInstanceListByRowDirection(Number(row), void 0, table, forceRelease);
238
238
  }
239
239
 
240
- export function disableDimensionHoverToAllChartInstances() {
241
- clearDelayRunDimensionHoverTimers();
242
- for (const col in chartInstanceListColumnByColumnDirection) for (const row in chartInstanceListColumnByColumnDirection[col]) chartInstanceListColumnByColumnDirection[col][row].disableDimensionHoverEvent(!0),
243
- chartInstanceListColumnByColumnDirection[col][row].disableCrossHair(!0), chartInstanceListColumnByColumnDirection[col][row].disableTooltip(!0),
240
+ let disabledShowTooltipToAllChartInstances = !1;
241
+
242
+ export function isDisabledShowTooltipToAllChartInstances() {
243
+ return disabledShowTooltipToAllChartInstances;
244
+ }
245
+
246
+ export function disableTooltipToAllChartInstances() {
247
+ disabledShowTooltipToAllChartInstances = !0, clearDelayRunDimensionHoverTimers();
248
+ for (const col in chartInstanceListColumnByColumnDirection) for (const row in chartInstanceListColumnByColumnDirection[col]) chartInstanceListColumnByColumnDirection[col][row].disableTooltip(!0),
244
249
  chartInstanceListColumnByColumnDirection[col][row].hideTooltip();
245
- for (const row in chartInstanceListRowByRowDirection) for (const col in chartInstanceListRowByRowDirection[row]) chartInstanceListRowByRowDirection[row][col].disableDimensionHoverEvent(!0),
246
- chartInstanceListRowByRowDirection[row][col].disableCrossHair(!0), chartInstanceListRowByRowDirection[row][col].disableTooltip(!0),
250
+ for (const row in chartInstanceListRowByRowDirection) for (const col in chartInstanceListRowByRowDirection[row]) chartInstanceListRowByRowDirection[row][col].disableTooltip(!0),
247
251
  chartInstanceListRowByRowDirection[row][col].hideTooltip();
248
252
  }
249
253
 
250
- export function enableDimensionHoverToAllChartInstances() {
251
- for (const col in chartInstanceListColumnByColumnDirection) for (const row in chartInstanceListColumnByColumnDirection[col]) chartInstanceListColumnByColumnDirection[col][row].disableDimensionHoverEvent(!1),
252
- chartInstanceListColumnByColumnDirection[col][row].disableCrossHair(!1), chartInstanceListColumnByColumnDirection[col][row].disableTooltip(!1);
253
- for (const row in chartInstanceListRowByRowDirection) for (const col in chartInstanceListRowByRowDirection[row]) chartInstanceListRowByRowDirection[row][col].disableDimensionHoverEvent(!1),
254
- chartInstanceListRowByRowDirection[row][col].disableCrossHair(!1), chartInstanceListRowByRowDirection[row][col].disableTooltip(!1);
254
+ export function enableTooltipToAllChartInstances() {
255
+ disabledShowTooltipToAllChartInstances = !1;
256
+ for (const col in chartInstanceListColumnByColumnDirection) for (const row in chartInstanceListColumnByColumnDirection[col]) chartInstanceListColumnByColumnDirection[col][row].disableTooltip(!1);
257
+ for (const row in chartInstanceListRowByRowDirection) for (const col in chartInstanceListRowByRowDirection[row]) chartInstanceListRowByRowDirection[row][col].disableTooltip(!1);
255
258
  }
256
259
  //# sourceMappingURL=active-cell-chart-list.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/scenegraph/graphic/active-cell-chart-list.ts"],"names":[],"mappings":"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","file":"active-cell-chart-list.js","sourcesContent":["import { isValid } from '@visactor/vutils';\nimport type { BaseTableAPI } from '../../ts-types/base-table';\nimport type { Chart } from './chart';\nimport type { PivotChartConstructorOptions } from '../../ts-types/table-engine';\nimport { debug } from 'console';\n/** 存储当前被执行brush框选操作的图表实例。目的是希望在鼠标离开框选的单元格 不希望chart实例马上释放掉。 实例需要保留住,这样brush框才会不消失 */\nlet brushingChartInstance: any;\nlet brushingChartInstanceCellPos: { col: number; row: number } = { col: -1, row: -1 };\n// window.brushingChartInstance = brushingChartInstance;\nexport function setBrushingChartInstance(chartInstance: any, col: number, row: number) {\n brushingChartInstance = chartInstance;\n brushingChartInstanceCellPos = { col, row };\n}\nexport function clearBrushingChartInstance() {\n brushingChartInstance = undefined;\n brushingChartInstanceCellPos = { col: -1, row: -1 };\n}\nexport function getBrushingChartInstance() {\n return brushingChartInstance;\n}\nexport function getBrushingChartInstanceCellPos() {\n return brushingChartInstanceCellPos;\n}\n//存储可视区域内鼠标hover到的该列的图表实例,key为列号做个缓存\nexport const chartInstanceListColumnByColumnDirection: Record<number, Record<number, any>> = {};\nexport const chartInstanceListRowByRowDirection: Record<number, Record<number, any>> = {};\nconst delayRunDimensionHoverTimer: any[] = [];\n//临时存储 用于调试\n// window.chartInstanceListColumnByColumnDirection = chartInstanceListColumnByColumnDirection;\n// window.chartInstanceListRowByRowDirection = chartInstanceListRowByRowDirection;\n/**\n * 根据列号生成可视区域内图表实例列表\n * @param col 列号\n * @param table 表格实例\n */\nexport function generateChartInstanceListByColumnDirection(\n col: number,\n dimensionValueOrXValue: string,\n positionValueOrYValue: string | number,\n canvasXY: { x: number; y: number },\n table: BaseTableAPI,\n hideTooltip: boolean = false,\n isScatter: boolean = false\n) {\n // 清除之前的定时器,避免旧的定时器执行\n clearDelayRunDimensionHoverTimers();\n if (!isValid(chartInstanceListColumnByColumnDirection[col])) {\n chartInstanceListColumnByColumnDirection[col] = {};\n }\n const { rowStart } = table.getBodyVisibleRowRange();\n let rowEnd = table.getBodyVisibleRowRange().rowEnd;\n rowEnd = Math.min(table.rowCount - 1 - table.bottomFrozenRowCount, rowEnd);\n //增加10像素的偏移量,最后一行不是完整显示的chart就不显示tooltip\n for (let i = rowStart; i <= rowEnd; i++) {\n const cellGroup = table.scenegraph.getCell(col, i);\n const chartNode = cellGroup?.getChildren()?.[0] as Chart;\n\n if (chartInstanceListColumnByColumnDirection[col][i]) {\n } else if (isValid(chartNode)) {\n chartNode.addUpdateShapeAndBoundsTag();\n if (chartNode.activeChartInstance) {\n chartInstanceListColumnByColumnDirection[col][i] = chartNode.activeChartInstance;\n } else {\n chartNode.activate(table);\n chartInstanceListColumnByColumnDirection[col][i] = chartNode.activeChartInstance;\n }\n }\n\n const timer = setTimeout(() => {\n // 需要等updateNextFrame 触发了chart的drawShape后 设置了数据后 才能触发setDimensionIndex\n if (chartInstanceListColumnByColumnDirection[col]?.[i]) {\n const chartDimensionLinkage = (table.options as PivotChartConstructorOptions).chartDimensionLinkage;\n let isShowTooltip = !isScatter;\n if (!isScatter && typeof chartDimensionLinkage === 'object') {\n isShowTooltip = chartDimensionLinkage.showTooltip ?? true;\n isShowTooltip = isShowTooltip && checkIsShowTooltipForEdgeRow(i, table);\n }\n //测试代码 用于查看图表实例的id\n // const _21Group = table.scenegraph.getCell(2, 1).firstChild.activeChartInstance;\n // console.log(\n // 'setDimensionIndex column',\n // col,\n // i,\n // chartInstanceListColumnByColumnDirection[col][i].id,\n // _21Group?.id\n // );\n if (isScatter) {\n if (table.stateManager.hover.cellPos.col !== col || table.stateManager.hover.cellPos.row !== i) {\n chartInstanceListColumnByColumnDirection[col][i].showCrosshair?.((axis: any) => {\n // console.log('showCrosshair', axis.layoutOrient, dimensionValueOrXValue);\n if (axis.layoutOrient === 'left') {\n return positionValueOrYValue;\n }\n return dimensionValueOrXValue;\n });\n }\n } else {\n const cellBoundry = table.getCellRelativeRect(col, i);\n const bodyBoundryTop = table.frozenRowCount\n ? table.getCellRelativeRect(col, table.frozenRowCount - 1).bottom\n : 0;\n const absolutePositionTop = Math.max(bodyBoundryTop, table.getCellRelativeRect(col, i).top);\n if (hideTooltip) {\n if (table.stateManager.hover.cellPos.col !== col || table.stateManager.hover.cellPos.row !== i) {\n chartInstanceListColumnByColumnDirection[col][i].hideTooltip();\n }\n chartInstanceListColumnByColumnDirection[col][i].setDimensionIndex(dimensionValueOrXValue, {\n tooltip: false,\n showTooltipOption: {\n x: canvasXY.x - cellBoundry.left,\n y: absolutePositionTop - cellBoundry.top,\n activeType: 'dimension'\n }\n });\n } else {\n chartInstanceListColumnByColumnDirection[col][i].setDimensionIndex(dimensionValueOrXValue, {\n tooltip: isShowTooltip,\n showTooltipOption: {\n x: canvasXY.x - cellBoundry.left,\n y: absolutePositionTop - cellBoundry.top,\n activeType: 'dimension'\n }\n });\n }\n }\n }\n }, 0);\n\n delayRunDimensionHoverTimer.push(timer);\n table.scenegraph.updateNextFrame();\n }\n}\n\n/**\n * 根据行号生成可视区域内图表实例列表\n * @param row 行号\n * @param table 表格实例\n */\nexport function generateChartInstanceListByRowDirection(\n row: number,\n dimensionValueOrXValue: string,\n positionValueOrYValue: string | number,\n canvasXY: { x: number; y: number },\n table: BaseTableAPI,\n hideTooltip: boolean = false,\n isScatter: boolean = false\n) {\n // 清除之前的定时器,避免旧的定时器执行\n clearDelayRunDimensionHoverTimers();\n if (!isValid(chartInstanceListRowByRowDirection[row])) {\n chartInstanceListRowByRowDirection[row] = {};\n }\n const { colStart } = table.getBodyVisibleColRange();\n let colEnd = table.getBodyVisibleColRange().colEnd;\n colEnd = Math.min(table.colCount - 1 - table.rightFrozenColCount, colEnd);\n for (let i = colStart; i <= colEnd; i++) {\n const cellGroup = table.scenegraph.getCell(i, row);\n const chartNode = cellGroup?.getChildren()?.[0] as Chart;\n\n if (chartInstanceListRowByRowDirection[row][i]) {\n } else if (isValid(chartNode)) {\n chartNode.addUpdateShapeAndBoundsTag();\n if (chartNode.activeChartInstance) {\n chartInstanceListRowByRowDirection[row][i] = chartNode.activeChartInstance;\n } else {\n chartNode.activate(table);\n chartInstanceListRowByRowDirection[row][i] = chartNode.activeChartInstance;\n }\n }\n const timer = setTimeout(() => {\n // 需要等updateNextFrame 触发了chart的drawShape后 设置了数据后 才可触发setDimensionIndex绘制出东西 否则会绘制出空的\n if (chartInstanceListRowByRowDirection[row]?.[i]) {\n const chartDimensionLinkage = (table.options as PivotChartConstructorOptions).chartDimensionLinkage;\n let isShowTooltip = !isScatter;\n if (!isScatter && typeof chartDimensionLinkage === 'object') {\n isShowTooltip = chartDimensionLinkage.showTooltip ?? true;\n isShowTooltip = isShowTooltip && checkIsShowTooltipForEdgeColumn(i, table);\n }\n // console.log('setDimensionIndex row', i, row, chartInstanceListRowByRowDirection[row][i].id);\n if (isScatter) {\n if (table.stateManager.hover.cellPos.col !== i || table.stateManager.hover.cellPos.row !== row) {\n chartInstanceListRowByRowDirection[row][i].showCrosshair?.((axis: any) => {\n if (axis.layoutOrient === 'left') {\n return positionValueOrYValue;\n }\n return dimensionValueOrXValue;\n });\n }\n } else {\n const cellBoundry = table.getCellRelativeRect(i, row);\n const bodyBoundryLeft = table.frozenColCount\n ? table.getCellRelativeRect(table.frozenColCount - 1, row).right\n : 0;\n const absolutePositionLeft = Math.max(bodyBoundryLeft, table.getCellRelativeRect(i, row).left);\n if (hideTooltip) {\n if (table.stateManager.hover.cellPos.col !== i || table.stateManager.hover.cellPos.row !== row) {\n chartInstanceListRowByRowDirection[row][i].hideTooltip();\n }\n chartInstanceListRowByRowDirection[row][i].setDimensionIndex(dimensionValueOrXValue, {\n tooltip: false,\n showTooltipOption: {\n x: absolutePositionLeft - cellBoundry.left,\n y: canvasXY.y - cellBoundry.top,\n activeType: 'dimension'\n }\n });\n } else {\n chartInstanceListRowByRowDirection[row][i].setDimensionIndex(dimensionValueOrXValue, {\n tooltip: isShowTooltip,\n showTooltipOption: {\n x: absolutePositionLeft - cellBoundry.left,\n y: canvasXY.y - cellBoundry.top,\n activeType: 'dimension'\n }\n });\n }\n }\n }\n }, 0);\n\n delayRunDimensionHoverTimer.push(timer);\n table.scenegraph.updateNextFrame();\n }\n}\nexport function generateChartInstanceListByViewRange(datum: any, table: BaseTableAPI, deactivate: boolean = false) {\n // 清除之前的定时器,避免旧的定时器执行\n clearDelayRunDimensionHoverTimers();\n const { rowStart } = table.getBodyVisibleRowRange();\n let rowEnd = table.getBodyVisibleRowRange().rowEnd;\n rowEnd = Math.min(table.rowCount - 1 - table.bottomFrozenRowCount, rowEnd);\n const { colStart } = table.getBodyVisibleColRange();\n let colEnd = table.getBodyVisibleColRange().colEnd;\n colEnd = Math.min(table.colCount - 1 - table.rightFrozenColCount, colEnd);\n //增加10像素的偏移量,最后一行不是完整显示的chart就不显示tooltip\n for (let col = colStart; col <= colEnd; col++) {\n if (!isValid(chartInstanceListColumnByColumnDirection[col])) {\n chartInstanceListColumnByColumnDirection[col] = {};\n }\n for (let i = rowStart; i <= rowEnd; i++) {\n const cellGroup = table.scenegraph.getCell(col, i);\n const chartNode = cellGroup?.getChildren()?.[0] as Chart;\n\n if (chartInstanceListColumnByColumnDirection[col][i]) {\n } else if (isValid(chartNode)) {\n chartNode.addUpdateShapeAndBoundsTag();\n if (chartNode.activeChartInstance) {\n chartInstanceListColumnByColumnDirection[col][i] = chartNode.activeChartInstance;\n } else {\n if (chartNode.attribute.spec.type === 'pie') {\n chartNode.activate(table);\n chartInstanceListColumnByColumnDirection[col][i] = chartNode.activeChartInstance;\n }\n }\n }\n\n const timer = setTimeout(() => {\n // 需要等updateNextFrame 触发了chart的drawShape后 设置了数据后 才能触发setDimensionIndex\n if (chartInstanceListColumnByColumnDirection[col]?.[i]) {\n const chartDimensionLinkage = (table.options as PivotChartConstructorOptions).chartDimensionLinkage;\n let isShowTooltip = true;\n if (typeof chartDimensionLinkage === 'object') {\n if (deactivate) {\n chartInstanceListColumnByColumnDirection[col][i].setHovered();\n chartInstanceListColumnByColumnDirection[col][i].hideTooltip();\n } else {\n isShowTooltip = chartDimensionLinkage.showTooltip ?? true;\n isShowTooltip = isShowTooltip && checkIsShowTooltipForEdgeRow(i, table);\n isShowTooltip = isShowTooltip && checkIsShowTooltipForEdgeColumn(col, table);\n chartInstanceListColumnByColumnDirection[col][i].setHovered(datum);\n isShowTooltip &&\n chartInstanceListColumnByColumnDirection[col][i].showTooltip(datum, {\n activeType: 'mark'\n });\n }\n }\n }\n }, 0);\n\n delayRunDimensionHoverTimer.push(timer);\n table.scenegraph.updateNextFrame();\n }\n }\n}\n/**\n * 检查是否显示tooltip 用于检查是否边缘行,且单元格被滚动遮挡只显示一部分的情况下,检测该图表显示出来至少多高 可允许显示tooltip。\n * @param row 行号\n * @param table 表格实例\n * @returns 是否显示tooltip\n * @returns\n */\nfunction checkIsShowTooltipForEdgeRow(row: number, table: BaseTableAPI) {\n let isShowTooltip = true;\n const { rowStart } = table.getBodyVisibleRowRange();\n let rowEnd = table.getBodyVisibleRowRange().rowEnd;\n rowEnd = Math.min(table.rowCount - 1 - table.bottomFrozenRowCount, rowEnd);\n const chartDimensionLinkage = (table.options as PivotChartConstructorOptions).chartDimensionLinkage;\n if (row === rowEnd && isShowTooltip) {\n const heightLimitToShowTooltipForEdgeRow = chartDimensionLinkage.heightLimitToShowTooltipForEdgeRow ?? 0;\n const { rowEnd: rowEnd1 } = table.getBodyVisibleRowRange(0, -heightLimitToShowTooltipForEdgeRow);\n if (rowEnd1 === rowEnd) {\n isShowTooltip = true;\n } else {\n const { rowEnd: rowEnd2 } = table.getBodyVisibleRowRange(0, 5);\n if (rowEnd2 !== rowEnd) {\n isShowTooltip = true;\n } else {\n isShowTooltip = false;\n }\n }\n } else if (row === rowStart && isShowTooltip) {\n const heightLimitToShowTooltipForEdgeRow = chartDimensionLinkage.heightLimitToShowTooltipForEdgeRow ?? 0;\n const { rowStart: rowStart1 } = table.getBodyVisibleRowRange(heightLimitToShowTooltipForEdgeRow, 0);\n if (rowStart1 === rowStart) {\n isShowTooltip = true;\n } else {\n const { rowStart: rowStart2 } = table.getBodyVisibleRowRange(0, -5);\n if (rowStart2 !== rowStart) {\n isShowTooltip = true;\n } else {\n isShowTooltip = false;\n }\n }\n }\n return isShowTooltip;\n}\n\n/**\n * 检查是否显示tooltip 用于检查是否边缘列,且单元格被滚动遮挡只显示一部分的情况下,检测该图表显示出来至少多宽 可允许显示tooltip。\n * @param col 列号\n * @param table 表格实例\n * @returns 是否显示tooltip\n * @returns\n */\nfunction checkIsShowTooltipForEdgeColumn(col: number, table: BaseTableAPI) {\n let isShowTooltip = true;\n const { colStart } = table.getBodyVisibleColRange();\n let colEnd = table.getBodyVisibleColRange().colEnd;\n colEnd = Math.min(table.colCount - 1 - table.rightFrozenColCount, colEnd);\n const chartDimensionLinkage = (table.options as PivotChartConstructorOptions).chartDimensionLinkage;\n if (col === colEnd && isShowTooltip) {\n const widthLimitToShowTooltipForEdgeColumn = chartDimensionLinkage.widthLimitToShowTooltipForEdgeColumn;\n const { colEnd: colEnd1 } = table.getBodyVisibleColRange(0, -widthLimitToShowTooltipForEdgeColumn);\n if (colEnd1 === colEnd) {\n isShowTooltip = true;\n } else {\n const { colEnd: colEnd2 } = table.getBodyVisibleColRange(0, 5);\n if (colEnd2 !== colEnd) {\n isShowTooltip = true;\n } else {\n isShowTooltip = false;\n }\n }\n } else if (col === colStart && isShowTooltip) {\n const widthLimitToShowTooltipForEdgeColumn = chartDimensionLinkage.widthLimitToShowTooltipForEdgeColumn;\n const { colStart: colStart1 } = table.getBodyVisibleColRange(widthLimitToShowTooltipForEdgeColumn, 0);\n if (colStart1 === colStart) {\n isShowTooltip = true;\n } else {\n const { colStart: colStart2 } = table.getBodyVisibleColRange(0, -5);\n if (colStart2 !== colStart) {\n isShowTooltip = true;\n } else {\n isShowTooltip = false;\n }\n }\n }\n return isShowTooltip;\n}\nexport function clearChartInstanceListByColumnDirection(\n col: number,\n excludedRow: number,\n table: BaseTableAPI,\n forceRelease: boolean = false\n) {\n if (isValid(chartInstanceListColumnByColumnDirection[col])) {\n for (const i in chartInstanceListColumnByColumnDirection[col]) {\n if (isValid(excludedRow) && Number(i) === excludedRow) {\n continue;\n }\n const cellGroup = table.scenegraph.getCell(col, Number(i));\n const chartNode = cellGroup?.getChildren()?.[0] as Chart;\n\n if (isValid(chartNode)) {\n chartNode.addUpdateShapeAndBoundsTag();\n chartNode.deactivate(table, {\n forceRelease: forceRelease,\n releaseChartInstance: true,\n releaseColumnChartInstance: false,\n releaseRowChartInstance: false\n });\n chartInstanceListColumnByColumnDirection[col][i] = null;\n }\n }\n delete chartInstanceListColumnByColumnDirection[col];\n }\n}\n\nexport function clearChartInstanceListByRowDirection(\n row: number,\n excludedCol: number,\n table: BaseTableAPI,\n forceRelease: boolean = false\n) {\n if (isValid(chartInstanceListRowByRowDirection[row])) {\n for (const i in chartInstanceListRowByRowDirection[row]) {\n if (isValid(excludedCol) && Number(i) === excludedCol) {\n continue;\n }\n const cellGroup = table.scenegraph.getCell(Number(i), row);\n const chartNode = cellGroup?.getChildren()?.[0] as Chart;\n\n if (isValid(chartNode)) {\n chartNode.addUpdateShapeAndBoundsTag();\n chartNode.deactivate(table, {\n forceRelease: forceRelease,\n releaseChartInstance: true,\n releaseColumnChartInstance: false,\n releaseRowChartInstance: false\n });\n chartInstanceListRowByRowDirection[row][i] = null;\n }\n }\n }\n delete chartInstanceListRowByRowDirection[row];\n}\n\n/**\n * 清除所有延迟执行的定时器\n */\nexport function clearDelayRunDimensionHoverTimers() {\n for (const timer of delayRunDimensionHoverTimer) {\n clearTimeout(timer);\n }\n delayRunDimensionHoverTimer.length = 0;\n}\n\nexport function clearAllChartInstanceList(table: BaseTableAPI, forceRelease: boolean = false) {\n // 清除所有延迟执行的定时器\n clearDelayRunDimensionHoverTimers();\n for (const col in chartInstanceListColumnByColumnDirection) {\n clearChartInstanceListByColumnDirection(Number(col), undefined, table, forceRelease);\n }\n for (const row in chartInstanceListRowByRowDirection) {\n clearChartInstanceListByRowDirection(Number(row), undefined, table, forceRelease);\n }\n}\n\nexport function disableDimensionHoverToAllChartInstances() {\n clearDelayRunDimensionHoverTimers();\n for (const col in chartInstanceListColumnByColumnDirection) {\n for (const row in chartInstanceListColumnByColumnDirection[col]) {\n // chartInstanceListColumnByColumnDirection[col][row]\n // .getChart()\n // .getComponentsByKey('brush')[0]\n // .disableDimensionHover();\n chartInstanceListColumnByColumnDirection[col][row].disableDimensionHoverEvent(true);\n chartInstanceListColumnByColumnDirection[col][row].disableCrossHair(true);\n chartInstanceListColumnByColumnDirection[col][row].disableTooltip(true);\n chartInstanceListColumnByColumnDirection[col][row].hideTooltip();\n }\n }\n for (const row in chartInstanceListRowByRowDirection) {\n for (const col in chartInstanceListRowByRowDirection[row]) {\n chartInstanceListRowByRowDirection[row][col].disableDimensionHoverEvent(true);\n chartInstanceListRowByRowDirection[row][col].disableCrossHair(true);\n chartInstanceListRowByRowDirection[row][col].disableTooltip(true);\n chartInstanceListRowByRowDirection[row][col].hideTooltip();\n }\n }\n}\nexport function enableDimensionHoverToAllChartInstances() {\n for (const col in chartInstanceListColumnByColumnDirection) {\n for (const row in chartInstanceListColumnByColumnDirection[col]) {\n // chartInstanceListColumnByColumnDirection[col][row]\n // .getChart()\n // .getComponentsByKey('brush')[0]\n // .enableDimensionHover();\n chartInstanceListColumnByColumnDirection[col][row].disableDimensionHoverEvent(false);\n chartInstanceListColumnByColumnDirection[col][row].disableCrossHair(false);\n chartInstanceListColumnByColumnDirection[col][row].disableTooltip(false);\n }\n }\n for (const row in chartInstanceListRowByRowDirection) {\n for (const col in chartInstanceListRowByRowDirection[row]) {\n // chartInstanceListRowByRowDirection[row][col].getChart().getComponentsByKey('brush')[0].enableDimensionHover();\n chartInstanceListRowByRowDirection[row][col].disableDimensionHoverEvent(false);\n chartInstanceListRowByRowDirection[row][col].disableCrossHair(false);\n chartInstanceListRowByRowDirection[row][col].disableTooltip(false);\n }\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/scenegraph/graphic/active-cell-chart-list.ts"],"names":[],"mappings":"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","file":"active-cell-chart-list.js","sourcesContent":["import { isValid } from '@visactor/vutils';\nimport type { BaseTableAPI } from '../../ts-types/base-table';\nimport type { Chart } from './chart';\nimport type { PivotChartConstructorOptions } from '../../ts-types/table-engine';\n\n/** 存储当前被执行brush框选操作的图表实例。目的是希望在鼠标离开框选的单元格 不希望chart实例马上释放掉。 实例需要保留住,这样brush框才会不消失 */\nlet brushingChartInstance: any;\nlet brushingChartInstanceCellPos: { col: number; row: number } = { col: -1, row: -1 };\n// window.brushingChartInstance = brushingChartInstance;\nexport function setBrushingChartInstance(chartInstance: any, col: number, row: number) {\n brushingChartInstance = chartInstance;\n brushingChartInstanceCellPos = { col, row };\n\n // window.brushingChartInstance = brushingChartInstance;\n}\nexport function clearBrushingChartInstance() {\n brushingChartInstance = undefined;\n brushingChartInstanceCellPos = { col: -1, row: -1 };\n\n // window.brushingChartInstance = brushingChartInstance;\n}\nexport function getBrushingChartInstance() {\n return brushingChartInstance;\n}\nexport function getBrushingChartInstanceCellPos() {\n return brushingChartInstanceCellPos;\n}\n//存储可视区域内鼠标hover到的该列的图表实例,key为列号做个缓存\nexport const chartInstanceListColumnByColumnDirection: Record<number, Record<number, any>> = {};\nexport const chartInstanceListRowByRowDirection: Record<number, Record<number, any>> = {};\nconst delayRunDimensionHoverTimer: any[] = [];\n//临时存储 用于调试\n// window.chartInstanceListColumnByColumnDirection = chartInstanceListColumnByColumnDirection;\n// window.chartInstanceListRowByRowDirection = chartInstanceListRowByRowDirection;\n/**\n * 根据列号生成可视区域内图表实例列表\n * @param col 列号\n * @param table 表格实例\n */\nexport function generateChartInstanceListByColumnDirection(\n col: number,\n dimensionValueOrXValue: string,\n positionValueOrYValue: string | number,\n canvasXY: { x: number; y: number },\n table: BaseTableAPI,\n hideTooltip: boolean = false,\n isScatter: boolean = false\n) {\n // 清除之前的定时器,避免旧的定时器执行\n clearDelayRunDimensionHoverTimers();\n if (!isValid(chartInstanceListColumnByColumnDirection[col])) {\n chartInstanceListColumnByColumnDirection[col] = {};\n }\n const { rowStart } = table.getBodyVisibleRowRange();\n let rowEnd = table.getBodyVisibleRowRange().rowEnd;\n rowEnd = Math.min(table.rowCount - 1 - table.bottomFrozenRowCount, rowEnd);\n //增加10像素的偏移量,最后一行不是完整显示的chart就不显示tooltip\n for (let i = rowStart; i <= rowEnd; i++) {\n const cellGroup = table.scenegraph.getCell(col, i);\n const chartNode = cellGroup?.getChildren()?.[0] as Chart;\n\n if (chartInstanceListColumnByColumnDirection[col][i]) {\n } else if (isValid(chartNode)) {\n chartNode.addUpdateShapeAndBoundsTag();\n if (chartNode.activeChartInstance) {\n chartInstanceListColumnByColumnDirection[col][i] = chartNode.activeChartInstance;\n } else {\n chartNode.activate(table);\n chartInstanceListColumnByColumnDirection[col][i] = chartNode.activeChartInstance;\n }\n }\n\n const timer = setTimeout(() => {\n // 需要等updateNextFrame 触发了chart的drawShape后 设置了数据后 才能触发setDimensionIndex\n if (chartInstanceListColumnByColumnDirection[col]?.[i]) {\n const chartDimensionLinkage = (table.options as PivotChartConstructorOptions).chartDimensionLinkage;\n let isShowTooltip = !isScatter;\n if (!isScatter && typeof chartDimensionLinkage === 'object') {\n isShowTooltip = chartDimensionLinkage.showTooltip ?? true;\n isShowTooltip = isShowTooltip && checkIsShowTooltipForEdgeRow(i, table);\n }\n //测试代码 用于查看图表实例的id\n // const _21Group = table.scenegraph.getCell(2, 1).firstChild.activeChartInstance;\n // console.log(\n // 'setDimensionIndex column',\n // col,\n // i,\n // chartInstanceListColumnByColumnDirection[col][i].id,\n // _21Group?.id\n // );\n if (isScatter) {\n if (table.stateManager.hover.cellPos.col !== col || table.stateManager.hover.cellPos.row !== i) {\n chartInstanceListColumnByColumnDirection[col][i].showCrosshair?.((axis: any) => {\n // console.log('showCrosshair', axis.layoutOrient, dimensionValueOrXValue);\n if (axis.layoutOrient === 'left') {\n return positionValueOrYValue;\n }\n return dimensionValueOrXValue;\n });\n }\n } else {\n const cellBoundry = table.getCellRelativeRect(col, i);\n const bodyBoundryTop = table.frozenRowCount\n ? table.getCellRelativeRect(col, table.frozenRowCount - 1).bottom\n : 0;\n const absolutePositionTop = Math.max(bodyBoundryTop, table.getCellRelativeRect(col, i).top);\n if (hideTooltip) {\n if (table.stateManager.hover.cellPos.col !== col || table.stateManager.hover.cellPos.row !== i) {\n chartInstanceListColumnByColumnDirection[col][i].hideTooltip();\n }\n chartInstanceListColumnByColumnDirection[col][i].setDimensionIndex(dimensionValueOrXValue, {\n tooltip: false,\n showTooltipOption: {\n x: canvasXY.x - cellBoundry.left,\n y: absolutePositionTop - cellBoundry.top,\n activeType: 'dimension'\n }\n });\n } else {\n chartInstanceListColumnByColumnDirection[col][i].setDimensionIndex(dimensionValueOrXValue, {\n tooltip: isShowTooltip,\n showTooltipOption: {\n x: canvasXY.x - cellBoundry.left,\n y: absolutePositionTop - cellBoundry.top,\n activeType: 'dimension'\n }\n });\n }\n }\n }\n }, 0);\n\n delayRunDimensionHoverTimer.push(timer);\n table.scenegraph.updateNextFrame();\n }\n}\n\n/**\n * 根据行号生成可视区域内图表实例列表\n * @param row 行号\n * @param table 表格实例\n */\nexport function generateChartInstanceListByRowDirection(\n row: number,\n dimensionValueOrXValue: string,\n positionValueOrYValue: string | number,\n canvasXY: { x: number; y: number },\n table: BaseTableAPI,\n hideTooltip: boolean = false,\n isScatter: boolean = false\n) {\n // 清除之前的定时器,避免旧的定时器执行\n clearDelayRunDimensionHoverTimers();\n if (!isValid(chartInstanceListRowByRowDirection[row])) {\n chartInstanceListRowByRowDirection[row] = {};\n }\n const { colStart } = table.getBodyVisibleColRange();\n let colEnd = table.getBodyVisibleColRange().colEnd;\n colEnd = Math.min(table.colCount - 1 - table.rightFrozenColCount, colEnd);\n for (let i = colStart; i <= colEnd; i++) {\n const cellGroup = table.scenegraph.getCell(i, row);\n const chartNode = cellGroup?.getChildren()?.[0] as Chart;\n\n if (chartInstanceListRowByRowDirection[row][i]) {\n } else if (isValid(chartNode)) {\n chartNode.addUpdateShapeAndBoundsTag();\n if (chartNode.activeChartInstance) {\n chartInstanceListRowByRowDirection[row][i] = chartNode.activeChartInstance;\n } else {\n chartNode.activate(table);\n chartInstanceListRowByRowDirection[row][i] = chartNode.activeChartInstance;\n }\n }\n const timer = setTimeout(() => {\n // 需要等updateNextFrame 触发了chart的drawShape后 设置了数据后 才可触发setDimensionIndex绘制出东西 否则会绘制出空的\n if (chartInstanceListRowByRowDirection[row]?.[i]) {\n const chartDimensionLinkage = (table.options as PivotChartConstructorOptions).chartDimensionLinkage;\n let isShowTooltip = !isScatter;\n if (!isScatter && typeof chartDimensionLinkage === 'object') {\n isShowTooltip = chartDimensionLinkage.showTooltip ?? true;\n isShowTooltip = isShowTooltip && checkIsShowTooltipForEdgeColumn(i, table);\n }\n // console.log('setDimensionIndex row', i, row, chartInstanceListRowByRowDirection[row][i].id);\n if (isScatter) {\n if (table.stateManager.hover.cellPos.col !== i || table.stateManager.hover.cellPos.row !== row) {\n chartInstanceListRowByRowDirection[row][i].showCrosshair?.((axis: any) => {\n if (axis.layoutOrient === 'left') {\n return positionValueOrYValue;\n }\n return dimensionValueOrXValue;\n });\n }\n } else {\n const cellBoundry = table.getCellRelativeRect(i, row);\n const bodyBoundryLeft = table.frozenColCount\n ? table.getCellRelativeRect(table.frozenColCount - 1, row).right\n : 0;\n const absolutePositionLeft = Math.max(bodyBoundryLeft, table.getCellRelativeRect(i, row).left);\n if (hideTooltip) {\n if (table.stateManager.hover.cellPos.col !== i || table.stateManager.hover.cellPos.row !== row) {\n chartInstanceListRowByRowDirection[row][i].hideTooltip();\n }\n chartInstanceListRowByRowDirection[row][i].setDimensionIndex(dimensionValueOrXValue, {\n tooltip: false,\n showTooltipOption: {\n x: absolutePositionLeft - cellBoundry.left,\n y: canvasXY.y - cellBoundry.top,\n activeType: 'dimension'\n }\n });\n } else {\n chartInstanceListRowByRowDirection[row][i].setDimensionIndex(dimensionValueOrXValue, {\n tooltip: isShowTooltip,\n showTooltipOption: {\n x: absolutePositionLeft - cellBoundry.left,\n y: canvasXY.y - cellBoundry.top,\n activeType: 'dimension'\n }\n });\n }\n }\n }\n }, 0);\n\n delayRunDimensionHoverTimer.push(timer);\n table.scenegraph.updateNextFrame();\n }\n}\nexport function generateChartInstanceListByViewRange(datum: any, table: BaseTableAPI, deactivate: boolean = false) {\n // 清除之前的定时器,避免旧的定时器执行\n clearDelayRunDimensionHoverTimers();\n const { rowStart } = table.getBodyVisibleRowRange();\n let rowEnd = table.getBodyVisibleRowRange().rowEnd;\n rowEnd = Math.min(table.rowCount - 1 - table.bottomFrozenRowCount, rowEnd);\n const { colStart } = table.getBodyVisibleColRange();\n let colEnd = table.getBodyVisibleColRange().colEnd;\n colEnd = Math.min(table.colCount - 1 - table.rightFrozenColCount, colEnd);\n //增加10像素的偏移量,最后一行不是完整显示的chart就不显示tooltip\n for (let col = colStart; col <= colEnd; col++) {\n if (!isValid(chartInstanceListColumnByColumnDirection[col])) {\n chartInstanceListColumnByColumnDirection[col] = {};\n }\n for (let i = rowStart; i <= rowEnd; i++) {\n const cellGroup = table.scenegraph.getCell(col, i);\n const chartNode = cellGroup?.getChildren()?.[0] as Chart;\n\n if (chartInstanceListColumnByColumnDirection[col][i]) {\n } else if (isValid(chartNode)) {\n chartNode.addUpdateShapeAndBoundsTag();\n if (chartNode.activeChartInstance) {\n chartInstanceListColumnByColumnDirection[col][i] = chartNode.activeChartInstance;\n } else {\n if (chartNode.attribute.spec.type === 'pie') {\n chartNode.activate(table);\n chartInstanceListColumnByColumnDirection[col][i] = chartNode.activeChartInstance;\n }\n }\n }\n\n const timer = setTimeout(() => {\n // 需要等updateNextFrame 触发了chart的drawShape后 设置了数据后 才能触发setDimensionIndex\n if (chartInstanceListColumnByColumnDirection[col]?.[i]) {\n const chartDimensionLinkage = (table.options as PivotChartConstructorOptions).chartDimensionLinkage;\n let isShowTooltip = true;\n if (typeof chartDimensionLinkage === 'object') {\n if (deactivate) {\n chartInstanceListColumnByColumnDirection[col][i].setHovered();\n chartInstanceListColumnByColumnDirection[col][i].hideTooltip();\n } else {\n isShowTooltip = chartDimensionLinkage.showTooltip ?? true;\n isShowTooltip = isShowTooltip && checkIsShowTooltipForEdgeRow(i, table);\n isShowTooltip = isShowTooltip && checkIsShowTooltipForEdgeColumn(col, table);\n chartInstanceListColumnByColumnDirection[col][i].setHovered(datum);\n isShowTooltip &&\n chartInstanceListColumnByColumnDirection[col][i].showTooltip(datum, {\n activeType: 'mark'\n });\n }\n }\n }\n }, 0);\n\n delayRunDimensionHoverTimer.push(timer);\n table.scenegraph.updateNextFrame();\n }\n }\n}\n/**\n * 检查是否显示tooltip 用于检查是否边缘行,且单元格被滚动遮挡只显示一部分的情况下,检测该图表显示出来至少多高 可允许显示tooltip。\n * @param row 行号\n * @param table 表格实例\n * @returns 是否显示tooltip\n * @returns\n */\nfunction checkIsShowTooltipForEdgeRow(row: number, table: BaseTableAPI) {\n let isShowTooltip = true;\n const { rowStart } = table.getBodyVisibleRowRange();\n let rowEnd = table.getBodyVisibleRowRange().rowEnd;\n rowEnd = Math.min(table.rowCount - 1 - table.bottomFrozenRowCount, rowEnd);\n const chartDimensionLinkage = (table.options as PivotChartConstructorOptions).chartDimensionLinkage;\n if (row === rowEnd && isShowTooltip) {\n const heightLimitToShowTooltipForEdgeRow = chartDimensionLinkage.heightLimitToShowTooltipForEdgeRow ?? 0;\n const { rowEnd: rowEnd1 } = table.getBodyVisibleRowRange(0, -heightLimitToShowTooltipForEdgeRow);\n if (rowEnd1 === rowEnd) {\n isShowTooltip = true;\n } else {\n const { rowEnd: rowEnd2 } = table.getBodyVisibleRowRange(0, 5);\n if (rowEnd2 !== rowEnd) {\n isShowTooltip = true;\n } else {\n isShowTooltip = false;\n }\n }\n } else if (row === rowStart && isShowTooltip) {\n const heightLimitToShowTooltipForEdgeRow = chartDimensionLinkage.heightLimitToShowTooltipForEdgeRow ?? 0;\n const { rowStart: rowStart1 } = table.getBodyVisibleRowRange(heightLimitToShowTooltipForEdgeRow, 0);\n if (rowStart1 === rowStart) {\n isShowTooltip = true;\n } else {\n const { rowStart: rowStart2 } = table.getBodyVisibleRowRange(0, -5);\n if (rowStart2 !== rowStart) {\n isShowTooltip = true;\n } else {\n isShowTooltip = false;\n }\n }\n }\n return isShowTooltip;\n}\n\n/**\n * 检查是否显示tooltip 用于检查是否边缘列,且单元格被滚动遮挡只显示一部分的情况下,检测该图表显示出来至少多宽 可允许显示tooltip。\n * @param col 列号\n * @param table 表格实例\n * @returns 是否显示tooltip\n * @returns\n */\nfunction checkIsShowTooltipForEdgeColumn(col: number, table: BaseTableAPI) {\n let isShowTooltip = true;\n const { colStart } = table.getBodyVisibleColRange();\n let colEnd = table.getBodyVisibleColRange().colEnd;\n colEnd = Math.min(table.colCount - 1 - table.rightFrozenColCount, colEnd);\n const chartDimensionLinkage = (table.options as PivotChartConstructorOptions).chartDimensionLinkage;\n if (col === colEnd && isShowTooltip) {\n const widthLimitToShowTooltipForEdgeColumn = chartDimensionLinkage.widthLimitToShowTooltipForEdgeColumn;\n const { colEnd: colEnd1 } = table.getBodyVisibleColRange(0, -widthLimitToShowTooltipForEdgeColumn);\n if (colEnd1 === colEnd) {\n isShowTooltip = true;\n } else {\n const { colEnd: colEnd2 } = table.getBodyVisibleColRange(0, 5);\n if (colEnd2 !== colEnd) {\n isShowTooltip = true;\n } else {\n isShowTooltip = false;\n }\n }\n } else if (col === colStart && isShowTooltip) {\n const widthLimitToShowTooltipForEdgeColumn = chartDimensionLinkage.widthLimitToShowTooltipForEdgeColumn;\n const { colStart: colStart1 } = table.getBodyVisibleColRange(widthLimitToShowTooltipForEdgeColumn, 0);\n if (colStart1 === colStart) {\n isShowTooltip = true;\n } else {\n const { colStart: colStart2 } = table.getBodyVisibleColRange(0, -5);\n if (colStart2 !== colStart) {\n isShowTooltip = true;\n } else {\n isShowTooltip = false;\n }\n }\n }\n return isShowTooltip;\n}\nexport function clearChartInstanceListByColumnDirection(\n col: number,\n excludedRow: number,\n table: BaseTableAPI,\n forceRelease: boolean = false\n) {\n if (isValid(chartInstanceListColumnByColumnDirection[col])) {\n for (const i in chartInstanceListColumnByColumnDirection[col]) {\n if (isValid(excludedRow) && Number(i) === excludedRow) {\n continue;\n }\n const cellGroup = table.scenegraph.getCell(col, Number(i));\n const chartNode = cellGroup?.getChildren()?.[0] as Chart;\n\n if (isValid(chartNode)) {\n chartNode.addUpdateShapeAndBoundsTag();\n chartNode.deactivate(table, {\n forceRelease: forceRelease,\n releaseChartInstance: true,\n releaseColumnChartInstance: false,\n releaseRowChartInstance: false\n });\n chartInstanceListColumnByColumnDirection[col][i] = null;\n }\n }\n delete chartInstanceListColumnByColumnDirection[col];\n }\n}\n\nexport function clearChartInstanceListByRowDirection(\n row: number,\n excludedCol: number,\n table: BaseTableAPI,\n forceRelease: boolean = false\n) {\n if (isValid(chartInstanceListRowByRowDirection[row])) {\n for (const i in chartInstanceListRowByRowDirection[row]) {\n if (isValid(excludedCol) && Number(i) === excludedCol) {\n continue;\n }\n const cellGroup = table.scenegraph.getCell(Number(i), row);\n const chartNode = cellGroup?.getChildren()?.[0] as Chart;\n\n if (isValid(chartNode)) {\n chartNode.addUpdateShapeAndBoundsTag();\n chartNode.deactivate(table, {\n forceRelease: forceRelease,\n releaseChartInstance: true,\n releaseColumnChartInstance: false,\n releaseRowChartInstance: false\n });\n chartInstanceListRowByRowDirection[row][i] = null;\n }\n }\n }\n delete chartInstanceListRowByRowDirection[row];\n}\n\n/**\n * 清除所有延迟执行的定时器\n */\nexport function clearDelayRunDimensionHoverTimers() {\n for (const timer of delayRunDimensionHoverTimer) {\n clearTimeout(timer);\n }\n delayRunDimensionHoverTimer.length = 0;\n}\n\nexport function clearAllChartInstanceList(table: BaseTableAPI, forceRelease: boolean = false) {\n // 清除所有延迟执行的定时器\n clearDelayRunDimensionHoverTimers();\n for (const col in chartInstanceListColumnByColumnDirection) {\n clearChartInstanceListByColumnDirection(Number(col), undefined, table, forceRelease);\n }\n for (const row in chartInstanceListRowByRowDirection) {\n clearChartInstanceListByRowDirection(Number(row), undefined, table, forceRelease);\n }\n}\n\nlet disabledShowTooltipToAllChartInstances: boolean = false;\nexport function isDisabledShowTooltipToAllChartInstances() {\n return disabledShowTooltipToAllChartInstances;\n}\nexport function disableTooltipToAllChartInstances() {\n disabledShowTooltipToAllChartInstances = true;\n clearDelayRunDimensionHoverTimers();\n for (const col in chartInstanceListColumnByColumnDirection) {\n for (const row in chartInstanceListColumnByColumnDirection[col]) {\n // chartInstanceListColumnByColumnDirection[col][row].disableDimensionHoverEvent(true);\n // chartInstanceListColumnByColumnDirection[col][row].disableCrossHair(true);\n chartInstanceListColumnByColumnDirection[col][row].disableTooltip(true);\n chartInstanceListColumnByColumnDirection[col][row].hideTooltip();\n }\n }\n for (const row in chartInstanceListRowByRowDirection) {\n for (const col in chartInstanceListRowByRowDirection[row]) {\n // chartInstanceListRowByRowDirection[row][col].disableDimensionHoverEvent(true);\n // chartInstanceListRowByRowDirection[row][col].disableCrossHair(true);\n chartInstanceListRowByRowDirection[row][col].disableTooltip(true);\n chartInstanceListRowByRowDirection[row][col].hideTooltip();\n }\n }\n}\nexport function enableTooltipToAllChartInstances() {\n disabledShowTooltipToAllChartInstances = false;\n for (const col in chartInstanceListColumnByColumnDirection) {\n for (const row in chartInstanceListColumnByColumnDirection[col]) {\n // chartInstanceListColumnByColumnDirection[col][row].disableDimensionHoverEvent(false);\n // chartInstanceListColumnByColumnDirection[col][row].disableCrossHair(false);\n chartInstanceListColumnByColumnDirection[col][row].disableTooltip(false);\n }\n }\n for (const row in chartInstanceListRowByRowDirection) {\n for (const col in chartInstanceListRowByRowDirection[row]) {\n // chartInstanceListRowByRowDirection[row][col].getChart().getComponentsByKey('brush')[0].enableDimensionHover();\n // chartInstanceListRowByRowDirection[row][col].disableDimensionHoverEvent(false);\n // chartInstanceListRowByRowDirection[row][col].disableCrossHair(false);\n chartInstanceListRowByRowDirection[row][col].disableTooltip(false);\n }\n }\n}\n"]}
@@ -45,6 +45,7 @@ export declare class Chart extends Rect {
45
45
  constructor(isShareChartSpec: boolean, params: IChartGraphicAttribute);
46
46
  activate(table: BaseTableAPI): void;
47
47
  static temp: number;
48
+ clearDelayRunDimensionHoverTimer(): void;
48
49
  deactivate(table: BaseTableAPI, { forceRelease, releaseChartInstance, releaseColumnChartInstance, releaseRowChartInstance, releaseAllChartInstance }?: {
49
50
  forceRelease?: boolean;
50
51
  releaseChartInstance?: boolean;
@@ -4,7 +4,7 @@ import { Bounds, merge } from "@visactor/vutils";
4
4
 
5
5
  import { getCellHoverColor } from "../../state/hover/is-cell-hover";
6
6
 
7
- import { setBrushingChartInstance, clearAllChartInstanceList, clearChartInstanceListByColumnDirection, clearChartInstanceListByRowDirection, generateChartInstanceListByColumnDirection, generateChartInstanceListByRowDirection, generateChartInstanceListByViewRange, getBrushingChartInstance } from "./active-cell-chart-list";
7
+ import { setBrushingChartInstance, clearAllChartInstanceList, clearChartInstanceListByColumnDirection, clearChartInstanceListByRowDirection, generateChartInstanceListByColumnDirection, generateChartInstanceListByRowDirection, generateChartInstanceListByViewRange, getBrushingChartInstance, isDisabledShowTooltipToAllChartInstances } from "./active-cell-chart-list";
8
8
 
9
9
  import { getAxisConfigInPivotChart } from "../../layout/chart-helper/get-axis-config";
10
10
 
@@ -127,6 +127,8 @@ export class Chart extends Rect {
127
127
  generateChartInstanceListByViewRange(datum, table, !0);
128
128
  }))), this.activeChartInstance.on("dimensionHover", (params => {
129
129
  var _a, _b;
130
+ if (isDisabledShowTooltipToAllChartInstances()) return;
131
+ this.activeChartInstance.disableTooltip(!1);
130
132
  const dimensionInfo = null == params ? void 0 : params.dimensionInfo[0], canvasXY = null === (_a = null == params ? void 0 : params.event) || void 0 === _a ? void 0 : _a.canvas, viewport = null === (_b = null == params ? void 0 : params.event) || void 0 === _b ? void 0 : _b.viewport;
131
133
  if (viewport) {
132
134
  const xValue = dimensionInfo.data[0].series.positionToDataX(viewport.x), yValue = dimensionInfo.data[0].series.positionToDataY(viewport.y);
@@ -144,11 +146,10 @@ export class Chart extends Rect {
144
146
  let delayRunDimensionHover = !1;
145
147
  if (!1 !== prev_justShowMarkTooltip && !1 === justShowMarkTooltip ? (this.justShowMarkTooltipTimer = Date.now(),
146
148
  delayRunDimensionHover = !0) : !1 === prev_justShowMarkTooltip && !1 === justShowMarkTooltip ? delayRunDimensionHover = Date.now() - this.justShowMarkTooltipTimer < 100 : (!1 === prev_justShowMarkTooltip && !0 === justShowMarkTooltip || !0 === prev_justShowMarkTooltip && !0 === justShowMarkTooltip) && (delayRunDimensionHover = !1,
147
- clearTimeout(this.delayRunDimensionHoverTimer), this.delayRunDimensionHoverTimer = void 0),
148
- "enter" === params.action || "move" === params.action || preMark !== this.activeChartInstanceHoverOnMark) {
149
+ this.clearDelayRunDimensionHoverTimer()), "enter" === params.action || "move" === params.action || preMark !== this.activeChartInstanceHoverOnMark) {
149
150
  const dimensionValue = dimensionInfo.value, indicatorsAsCol = table.options.indicatorsAsCol;
150
- if (delayRunDimensionHover ? (clearTimeout(this.delayRunDimensionHoverTimer), this.delayRunDimensionHoverTimer = setTimeout((() => {
151
- indicatorsAsCol ? generateChartInstanceListByRowDirection(row, dimensionValue, null, canvasXY, table, justShowMarkTooltip, !1) : generateChartInstanceListByColumnDirection(col, dimensionValue, null, canvasXY, table, justShowMarkTooltip, !1);
151
+ if (delayRunDimensionHover ? (this.clearDelayRunDimensionHoverTimer(), this.delayRunDimensionHoverTimer = setTimeout((() => {
152
+ isDisabledShowTooltipToAllChartInstances() || (indicatorsAsCol ? generateChartInstanceListByRowDirection(row, dimensionValue, null, canvasXY, table, justShowMarkTooltip, !1) : generateChartInstanceListByColumnDirection(col, dimensionValue, null, canvasXY, table, justShowMarkTooltip, !1));
152
153
  }), 100)) : indicatorsAsCol ? generateChartInstanceListByRowDirection(row, dimensionValue, null, canvasXY, table, justShowMarkTooltip, !1) : generateChartInstanceListByColumnDirection(col, dimensionValue, null, canvasXY, table, justShowMarkTooltip, !1),
153
154
  indicatorsAsCol) {
154
155
  const series = dimensionInfo.data[0].series, width = "histogram" === this.attribute.spec.type || "line" === series.type || "area" === series.type ? 0 : series.getYAxisHelper().getBandwidth(0);
@@ -180,13 +181,17 @@ export class Chart extends Rect {
180
181
  }
181
182
  }
182
183
  }
183
- }))), null === (_j = (_h = table)._bindChartEvent) || void 0 === _j || _j.call(_h, this.activeChartInstance);
184
+ }))), null === (_j = (_h = table)._bindChartEvent) || void 0 === _j || _j.call(_h, this.activeChartInstance),
185
+ isDisabledShowTooltipToAllChartInstances() && this.activeChartInstance.disableTooltip(!0);
186
+ }
187
+ clearDelayRunDimensionHoverTimer() {
188
+ clearTimeout(this.delayRunDimensionHoverTimer), this.delayRunDimensionHoverTimer = void 0;
184
189
  }
185
190
  deactivate(table, {forceRelease: forceRelease = !1, releaseChartInstance: releaseChartInstance = !0, releaseColumnChartInstance: releaseColumnChartInstance = !0, releaseRowChartInstance: releaseRowChartInstance = !0, releaseAllChartInstance: releaseAllChartInstance = !1} = {}) {
186
191
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
187
192
  if (this.activeChartInstanceHoverOnMark = null, this.justShowMarkTooltip = void 0,
188
- this.justShowMarkTooltipTimer = Date.now(), clearTimeout(this.delayRunDimensionHoverTimer),
189
- this.delayRunDimensionHoverTimer = void 0, releaseChartInstance) {
193
+ this.justShowMarkTooltipTimer = Date.now(), this.clearDelayRunDimensionHoverTimer(),
194
+ releaseChartInstance) {
190
195
  !forceRelease && getBrushingChartInstance() && getBrushingChartInstance() === this.activeChartInstance || (null === (_a = this.activeChartInstance) || void 0 === _a || _a.updateViewBox({
191
196
  x1: -1e3,
192
197
  x2: -800,
@@ -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 setBrushingChartInstance,\n clearAllChartInstanceList,\n clearChartInstanceListByColumnDirection,\n clearChartInstanceListByRowDirection,\n generateChartInstanceListByColumnDirection,\n generateChartInstanceListByRowDirection,\n generateChartInstanceListByViewRange,\n getBrushingChartInstance\n} from './active-cell-chart-list';\nimport type { PivotChartConstructorOptions } from '../..';\nimport { getAxisConfigInPivotChart } from '../../layout/chart-helper/get-axis-config';\nimport { cancellableThrottle } from '../../tools/util';\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 activeChartInstanceLastViewBox: { x1: number; y1: number; x2: number; y2: number } = null;\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 // console.log('---activate', Date.now(), this.parent.col, this.parent.row);\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 // console.log(\n // 'beforeRender clip',\n // clipBound.x1,\n // clipBound.y1,\n // clipBound.x2 - clipBound.x1,\n // clipBound.y2 - clipBound.y1\n // );\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:\n (table.options as PivotChartConstructorOptions).chartDimensionLinkage?.showTooltip &&\n this.attribute.spec.type !== 'scatter'\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, undefined);\n } else if (Chart.temp) {\n table.scenegraph.updateChartState(params?.datum, 'click');\n }\n });\n let brushChangeThrottle: any;\n if ((table.options as PivotChartConstructorOptions).chartDimensionLinkage?.listenBrushChange) {\n // 创建可取消的节流函数,用于 brushChange 事件\n brushChangeThrottle = cancellableThrottle(\n table.scenegraph.updateChartState.bind(table.scenegraph),\n (table.options as PivotChartConstructorOptions).chartDimensionLinkage?.brushChangeDelay ?? 100\n );\n\n this.activeChartInstance.on('brushChange', (params: any) => {\n brushChangeThrottle.throttled(params?.value?.inBrushData, 'brush');\n });\n }\n this.activeChartInstance.on('brushStart', (params: any) => {\n const brushingChartInstance = getBrushingChartInstance();\n if (brushingChartInstance !== this.activeChartInstance) {\n if (brushingChartInstance) {\n brushingChartInstance.getChart().getComponentsByKey('brush')[0].clearBrushStateAndMask();\n }\n setBrushingChartInstance(this.activeChartInstance, col, row);\n }\n });\n this.activeChartInstance.on('brushEnd', (params: any) => {\n // 取消 brushChange 中可能还在等待的节流执行\n brushChangeThrottle?.cancel();\n // 立即执行 updateChartState,确保 brushEnd 的调用能及时执行\n table.scenegraph.updateChartState(params?.value?.inBrushData, 'brush');\n Chart.temp = 0;\n setTimeout(() => {\n Chart.temp = 1;\n }, 0);\n });\n if ((table.options as PivotChartConstructorOptions).chartDimensionLinkage?.showTooltip) {\n if (this.attribute.spec.type === 'pie') {\n this.activeChartInstance.on('pointerover', { markName: 'pie' }, (params: any) => {\n const categoryField = this.attribute.spec.categoryField;\n const datum = { [categoryField]: params?.datum?.[categoryField] };\n\n generateChartInstanceListByViewRange(datum, table, false);\n });\n this.activeChartInstance.on('pointerout', { markName: 'pie' }, (params: any) => {\n const categoryField = this.attribute.spec.categoryField;\n const datum = { [categoryField]: params?.datum?.[categoryField] };\n generateChartInstanceListByViewRange(datum, table, true);\n });\n }\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 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 !== false && 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 forceRelease = false,\n releaseChartInstance = true,\n releaseColumnChartInstance = true,\n releaseRowChartInstance = true,\n releaseAllChartInstance = false\n }: {\n forceRelease?: boolean;\n releaseChartInstance?: boolean;\n releaseColumnChartInstance?: boolean;\n releaseRowChartInstance?: boolean;\n releaseAllChartInstance?: boolean;\n } = {}\n ) {\n // console.trace('------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\n if (forceRelease || !getBrushingChartInstance() || getBrushingChartInstance() !== this.activeChartInstance) {\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 }\n\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 (releaseAllChartInstance) {\n clearAllChartInstanceList(table, forceRelease);\n } else {\n if (releaseColumnChartInstance) {\n clearChartInstanceListByColumnDirection(\n this.parent.col,\n this.attribute.spec.type === 'scatter' ? this.parent.row : undefined,\n table,\n forceRelease\n );\n }\n if (releaseRowChartInstance) {\n clearChartInstanceListByRowDirection(\n this.parent.row,\n this.attribute.spec.type === 'scatter' ? this.parent.col : undefined,\n table,\n forceRelease\n );\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 const viewBox = {\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 if (this.activeChartInstance) {\n this.activeChartInstanceLastViewBox = viewBox;\n } else {\n this.activeChartInstanceLastViewBox = null;\n }\n return viewBox;\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 setBrushingChartInstance,\n clearAllChartInstanceList,\n clearChartInstanceListByColumnDirection,\n clearChartInstanceListByRowDirection,\n generateChartInstanceListByColumnDirection,\n generateChartInstanceListByRowDirection,\n generateChartInstanceListByViewRange,\n getBrushingChartInstance,\n isDisabledShowTooltipToAllChartInstances\n} from './active-cell-chart-list';\nimport type { PivotChartConstructorOptions } from '../..';\nimport { getAxisConfigInPivotChart } from '../../layout/chart-helper/get-axis-config';\nimport { cancellableThrottle } from '../../tools/util';\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 activeChartInstanceLastViewBox: { x1: number; y1: number; x2: number; y2: number } = null;\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 // console.log('---activate', Date.now(), this.parent.col, this.parent.row);\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 // console.log(\n // 'beforeRender clip',\n // clipBound.x1,\n // clipBound.y1,\n // clipBound.x2 - clipBound.x1,\n // clipBound.y2 - clipBound.y1\n // );\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:\n (table.options as PivotChartConstructorOptions).chartDimensionLinkage?.showTooltip &&\n this.attribute.spec.type !== 'scatter'\n ? {\n tooltip: {\n dimension: false,\n mark: true\n },\n crosshair: false\n }\n : undefined\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, undefined);\n } else if (Chart.temp) {\n table.scenegraph.updateChartState(params?.datum, 'click');\n }\n });\n let brushChangeThrottle: any;\n if ((table.options as PivotChartConstructorOptions).chartDimensionLinkage?.listenBrushChange) {\n // 创建可取消的节流函数,用于 brushChange 事件\n brushChangeThrottle = cancellableThrottle(\n table.scenegraph.updateChartState.bind(table.scenegraph),\n (table.options as PivotChartConstructorOptions).chartDimensionLinkage?.brushChangeDelay ?? 100\n );\n\n this.activeChartInstance.on('brushChange', (params: any) => {\n brushChangeThrottle.throttled(params?.value?.inBrushData, 'brush');\n });\n }\n this.activeChartInstance.on('brushStart', (params: any) => {\n const brushingChartInstance = getBrushingChartInstance();\n if (brushingChartInstance !== this.activeChartInstance) {\n if (brushingChartInstance) {\n brushingChartInstance.getChart().getComponentsByKey('brush')[0].clearBrushStateAndMask();\n }\n setBrushingChartInstance(this.activeChartInstance, col, row);\n }\n });\n this.activeChartInstance.on('brushEnd', (params: any) => {\n // 取消 brushChange 中可能还在等待的节流执行\n brushChangeThrottle?.cancel();\n // 立即执行 updateChartState,确保 brushEnd 的调用能及时执行\n table.scenegraph.updateChartState(params?.value?.inBrushData, 'brush');\n Chart.temp = 0;\n setTimeout(() => {\n Chart.temp = 1;\n }, 0);\n });\n if ((table.options as PivotChartConstructorOptions).chartDimensionLinkage?.showTooltip) {\n if (this.attribute.spec.type === 'pie') {\n this.activeChartInstance.on('pointerover', { markName: 'pie' }, (params: any) => {\n const categoryField = this.attribute.spec.categoryField;\n const datum = { [categoryField]: params?.datum?.[categoryField] };\n\n generateChartInstanceListByViewRange(datum, table, false);\n });\n this.activeChartInstance.on('pointerout', { markName: 'pie' }, (params: any) => {\n const categoryField = this.attribute.spec.categoryField;\n const datum = { [categoryField]: params?.datum?.[categoryField] };\n generateChartInstanceListByViewRange(datum, table, true);\n });\n }\n this.activeChartInstance.on('dimensionHover', (params: any) => {\n if (isDisabledShowTooltipToAllChartInstances()) {\n return;\n }\n //和下面调用disableTooltip做对应,一个关闭,一个打开。如果这里不加这句话可能导致这个实例没有tooltip的情况(如这个实例没有机会被加入到chartInstanceListColumnByColumnDirection或chartInstanceListRowByRowDirection中)\n this.activeChartInstance.disableTooltip(false);\n\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 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 !== false && 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 this.clearDelayRunDimensionHoverTimer();\n } else if (prev_justShowMarkTooltip === true && justShowMarkTooltip === true) {\n delayRunDimensionHover = false;\n this.clearDelayRunDimensionHoverTimer(); //及时清除之前的定时器\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 this.clearDelayRunDimensionHoverTimer();\n //还是需要有个延迟出现的时间,否则从mark切换到dimension时,tooltip不会出现了( preMark !== this.activeChartInstanceHoverOnMark总是为false)\n this.delayRunDimensionHoverTimer = setTimeout(() => {\n if (isDisabledShowTooltipToAllChartInstances()) {\n // 如果当前是禁止显示tooltip的状态,这里的逻辑不会执行。否则这个延时会导致显示tooltip\n return;\n }\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 if (isDisabledShowTooltipToAllChartInstances()) {\n // 如果所有图表实例都禁用了dimensionHover,新建图表实例时,禁用当前图表实例的tooltip。避免在brush过程中显示tooltip\n this.activeChartInstance.disableTooltip(true);\n }\n }\n static temp: number = 1;\n\n clearDelayRunDimensionHoverTimer() {\n clearTimeout(this.delayRunDimensionHoverTimer);\n this.delayRunDimensionHoverTimer = undefined;\n }\n /**\n * 图表失去焦点\n * @param table\n */\n deactivate(\n table: BaseTableAPI,\n {\n forceRelease = false,\n releaseChartInstance = true,\n releaseColumnChartInstance = true,\n releaseRowChartInstance = true,\n releaseAllChartInstance = false\n }: {\n forceRelease?: boolean;\n releaseChartInstance?: boolean;\n releaseColumnChartInstance?: boolean;\n releaseRowChartInstance?: boolean;\n releaseAllChartInstance?: boolean;\n } = {}\n ) {\n // console.trace('------deactivate', releaseChartInstance, releaseColumnChartInstance, releaseRowChartInstance);\n this.activeChartInstanceHoverOnMark = null;\n this.justShowMarkTooltip = undefined;\n this.justShowMarkTooltipTimer = Date.now();\n this.clearDelayRunDimensionHoverTimer();\n if (releaseChartInstance) {\n // move active chart view box out of browser view\n // to avoid async render when chart is releasd\n\n if (forceRelease || !getBrushingChartInstance() || getBrushingChartInstance() !== this.activeChartInstance) {\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 }\n\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 (releaseAllChartInstance) {\n clearAllChartInstanceList(table, forceRelease);\n } else {\n if (releaseColumnChartInstance) {\n clearChartInstanceListByColumnDirection(\n this.parent.col,\n this.attribute.spec.type === 'scatter' ? this.parent.row : undefined,\n table,\n forceRelease\n );\n }\n if (releaseRowChartInstance) {\n clearChartInstanceListByRowDirection(\n this.parent.row,\n this.attribute.spec.type === 'scatter' ? this.parent.col : undefined,\n table,\n forceRelease\n );\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 const viewBox = {\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 if (this.activeChartInstance) {\n this.activeChartInstanceLastViewBox = viewBox;\n } else {\n this.activeChartInstanceLastViewBox = null;\n }\n return viewBox;\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"]}
@@ -362,15 +362,18 @@ export class Scenegraph {
362
362
  var _a, _b, _c, _d, _e, _f, _g, _h, _j;
363
363
  if (-1 === col || -1 === row) {
364
364
  if (forceRelease) {
365
- const brushingChartInstanceCellPos = getBrushingChartInstanceCellPos(), cellGroup = this.getCell(brushingChartInstanceCellPos.col, brushingChartInstanceCellPos.row);
366
- (null === (_a = null == cellGroup ? void 0 : cellGroup.firstChild) || void 0 === _a ? void 0 : _a.deactivate) && (clearBrushingChartInstance(),
367
- null === (_c = null === (_b = null == cellGroup ? void 0 : cellGroup.firstChild) || void 0 === _b ? void 0 : _b.deactivate) || void 0 === _c || _c.call(_b, this.table, {
368
- forceRelease: !0,
369
- releaseChartInstance: !0,
370
- releaseColumnChartInstance: !0,
371
- releaseRowChartInstance: !0,
372
- releaseAllChartInstance: !0
373
- }));
365
+ const brushingChartInstanceCellPos = getBrushingChartInstanceCellPos(), brushingChartInstance = getBrushingChartInstance();
366
+ if (brushingChartInstanceCellPos && brushingChartInstance) {
367
+ const cellGroup = this.getCell(brushingChartInstanceCellPos.col, brushingChartInstanceCellPos.row);
368
+ (null === (_a = null == cellGroup ? void 0 : cellGroup.firstChild) || void 0 === _a ? void 0 : _a.deactivate) && (clearBrushingChartInstance(),
369
+ null === (_c = null === (_b = null == cellGroup ? void 0 : cellGroup.firstChild) || void 0 === _b ? void 0 : _b.deactivate) || void 0 === _c || _c.call(_b, this.table, {
370
+ forceRelease: !0,
371
+ releaseChartInstance: !0,
372
+ releaseColumnChartInstance: !0,
373
+ releaseRowChartInstance: !0,
374
+ releaseAllChartInstance: !0
375
+ }));
376
+ }
374
377
  }
375
378
  return;
376
379
  }
@@ -1000,4 +1003,4 @@ export class Scenegraph {
1000
1003
  this.recreateAllSelectRangeComponents();
1001
1004
  }
1002
1005
  }
1003
- //# sourceMappingURL=scenegraph.js.map
1006
+ //# sourceMappingURL=scenegraph.js.map