@visactor/vtable 1.22.11-alpha.10 → 1.22.11-alpha.12

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 (63) hide show
  1. package/cjs/PivotChart.js.map +1 -1
  2. package/cjs/core/BaseTable.js +1 -1
  3. package/cjs/core/BaseTable.js.map +1 -1
  4. package/cjs/core/style-helper.js +1 -2
  5. package/cjs/dataset/dataset-pivot-table.js +2 -1
  6. package/cjs/event/listener/table-group.js.map +1 -1
  7. package/cjs/index.d.ts +1 -1
  8. package/cjs/index.js +1 -1
  9. package/cjs/index.js.map +1 -1
  10. package/cjs/layout/index.js +1 -2
  11. package/cjs/layout/layout-helper.js +1 -1
  12. package/cjs/layout/pivot-header-layout.js +4 -3
  13. package/cjs/layout/pivot-header-layout.js.map +1 -1
  14. package/cjs/layout/row-height-map.js +1 -1
  15. package/cjs/layout/simple-header-layout.js +1 -1
  16. package/cjs/layout/tree-helper.js +1 -1
  17. package/cjs/plugins/custom-cell-style.js +2 -1
  18. package/cjs/plugins/interface.js +1 -1
  19. package/cjs/plugins/invert-highlight.js +1 -1
  20. package/cjs/plugins/list-tree-stick-cell.js +1 -1
  21. package/cjs/plugins/plugin-manager.js +1 -1
  22. package/cjs/scenegraph/graphic/active-cell-chart-list.d.ts +5 -1
  23. package/cjs/scenegraph/graphic/active-cell-chart-list.js +45 -12
  24. package/cjs/scenegraph/graphic/active-cell-chart-list.js.map +1 -1
  25. package/cjs/scenegraph/graphic/chart.js +4 -3
  26. package/cjs/scenegraph/graphic/chart.js.map +1 -1
  27. package/cjs/scenegraph/scenegraph.js +7 -16
  28. package/cjs/scenegraph/scenegraph.js.map +1 -1
  29. package/cjs/state/state.js +1 -1
  30. package/cjs/vrender.js.map +1 -1
  31. package/dist/vtable.js +62 -24
  32. package/dist/vtable.min.js +1 -1
  33. package/es/PivotChart.js.map +1 -1
  34. package/es/core/BaseTable.js +1 -1
  35. package/es/core/BaseTable.js.map +1 -1
  36. package/es/core/style-helper.js +1 -2
  37. package/es/dataset/dataset-pivot-table.js +2 -1
  38. package/es/event/listener/table-group.js.map +1 -1
  39. package/es/index.d.ts +1 -1
  40. package/es/index.js +1 -1
  41. package/es/index.js.map +1 -1
  42. package/es/layout/index.js +1 -2
  43. package/es/layout/layout-helper.js +1 -1
  44. package/es/layout/pivot-header-layout.js +4 -2
  45. package/es/layout/pivot-header-layout.js.map +1 -1
  46. package/es/layout/row-height-map.js +1 -1
  47. package/es/layout/simple-header-layout.js +1 -1
  48. package/es/layout/tree-helper.js +1 -1
  49. package/es/plugins/custom-cell-style.js +2 -1
  50. package/es/plugins/interface.js +1 -1
  51. package/es/plugins/invert-highlight.js +1 -1
  52. package/es/plugins/list-tree-stick-cell.js +1 -1
  53. package/es/plugins/plugin-manager.js +1 -1
  54. package/es/scenegraph/graphic/active-cell-chart-list.d.ts +5 -1
  55. package/es/scenegraph/graphic/active-cell-chart-list.js +40 -10
  56. package/es/scenegraph/graphic/active-cell-chart-list.js.map +1 -1
  57. package/es/scenegraph/graphic/chart.js +4 -4
  58. package/es/scenegraph/graphic/chart.js.map +1 -1
  59. package/es/scenegraph/scenegraph.js +8 -17
  60. package/es/scenegraph/scenegraph.js.map +1 -1
  61. package/es/state/state.js +1 -1
  62. package/es/vrender.js.map +1 -1
  63. package/package.json +3 -3
@@ -178,5 +178,5 @@ function indexFirst(arr, elm) {
178
178
  return arr[tempI] === elm ? tempI : -1;
179
179
  }
180
180
 
181
- exports.NumberRangeMap = NumberRangeMap;
182
181
  //# sourceMappingURL=row-height-map.js.map
182
+ exports.NumberRangeMap = NumberRangeMap;
@@ -809,4 +809,4 @@ class SimpleHeaderLayoutMap {
809
809
  }
810
810
 
811
811
  exports.SimpleHeaderLayoutMap = SimpleHeaderLayoutMap;
812
- //# sourceMappingURL=simple-header-layout.js.map
812
+ //# sourceMappingURL=simple-header-layout.js.map
@@ -411,4 +411,4 @@ function deleteTreeHideNode(tree_children, dimensionPath, indicators, hasHideNod
411
411
  exports.DimensionTree = DimensionTree, exports.generateLayoutTree = generateLayoutTree,
412
412
  exports.countLayoutTree = countLayoutTree, exports.dealHeader = dealHeader, exports.dealHeaderForGridTreeMode = dealHeaderForGridTreeMode,
413
413
  exports.dealHeaderForTreeMode = dealHeaderForTreeMode, exports.deleteTreeHideNode = deleteTreeHideNode;
414
- //# sourceMappingURL=tree-helper.js.map
414
+ //# sourceMappingURL=tree-helper.js.map
@@ -109,4 +109,5 @@ const registerCustomCellStylePlugin = () => {
109
109
  factory_1.Factory.registerComponent("customCellStylePlugin", CustomCellStylePlugin);
110
110
  };
111
111
 
112
- exports.registerCustomCellStylePlugin = registerCustomCellStylePlugin;
112
+ exports.registerCustomCellStylePlugin = registerCustomCellStylePlugin;
113
+ //# sourceMappingURL=custom-cell-style.js.map
@@ -3,4 +3,4 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  });
6
- //# sourceMappingURL=interface.js.map
6
+ //# sourceMappingURL=interface.js.map
@@ -20,4 +20,4 @@ function onBeforeAttributeUpdateForInvertHighlight(val, attribute) {
20
20
  }
21
21
 
22
22
  exports.onBeforeAttributeUpdateForInvertHighlight = onBeforeAttributeUpdateForInvertHighlight;
23
- //# sourceMappingURL=invert-highlight.js.map
23
+ //# sourceMappingURL=invert-highlight.js.map
@@ -177,4 +177,4 @@ const registerListTreeStickCellPlugin = () => {
177
177
  };
178
178
 
179
179
  exports.registerListTreeStickCellPlugin = registerListTreeStickCellPlugin;
180
- //# sourceMappingURL=list-tree-stick-cell.js.map
180
+ //# sourceMappingURL=list-tree-stick-cell.js.map
@@ -59,4 +59,4 @@ class PluginManager {
59
59
  }
60
60
 
61
61
  exports.PluginManager = PluginManager;
62
- //# sourceMappingURL=plugin-manager.js.map
62
+ //# sourceMappingURL=plugin-manager.js.map
@@ -1,6 +1,7 @@
1
1
  import type { BaseTableAPI } from '../../ts-types/base-table';
2
+ import type { Scenegraph } from '../scenegraph';
2
3
  export declare function setBrushingChartInstance(chartInstance: any, col: number, row: number): void;
3
- export declare function clearBrushingChartInstance(): void;
4
+ export declare function clearAndReleaseBrushingChartInstance(scenegraph: Scenegraph): void;
4
5
  export declare function getBrushingChartInstance(): any;
5
6
  export declare function getBrushingChartInstanceCellPos(): {
6
7
  col: number;
@@ -19,6 +20,9 @@ export declare function generateChartInstanceListByRowDirection(row: number, dim
19
20
  export declare function generateChartInstanceListByViewRange(datum: any, table: BaseTableAPI, deactivate?: boolean): void;
20
21
  export declare function clearChartInstanceListByColumnDirection(col: number, excludedRow: number, table: BaseTableAPI, forceRelease?: boolean): void;
21
22
  export declare function clearChartInstanceListByRowDirection(row: number, excludedCol: number, table: BaseTableAPI, forceRelease?: boolean): void;
23
+ export declare function clearDelayRunDimensionHoverTimerForColumnDirection(): void;
24
+ export declare function clearDelayRunDimensionHoverTimerForRowDirection(): void;
25
+ export declare function clearDelayRunDimensionHoverTimerForViewRange(): void;
22
26
  export declare function clearDelayRunDimensionHoverTimers(): void;
23
27
  export declare function clearAllChartInstanceList(table: BaseTableAPI, forceRelease?: boolean): void;
24
28
  export declare function isDisabledTooltipToAllChartInstances(): boolean;
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
- }), exports.enableTooltipToAllChartInstances = exports.disableTooltipToAllChartInstances = exports.isDisabledTooltipToAllChartInstances = exports.clearAllChartInstanceList = exports.clearDelayRunDimensionHoverTimers = exports.clearChartInstanceListByRowDirection = exports.clearChartInstanceListByColumnDirection = exports.generateChartInstanceListByViewRange = exports.generateChartInstanceListByRowDirection = exports.generateChartInstanceListByColumnDirection = exports.chartInstanceListRowByRowDirection = exports.chartInstanceListColumnByColumnDirection = exports.getBrushingChartInstanceCellPos = exports.getBrushingChartInstance = exports.clearBrushingChartInstance = exports.setBrushingChartInstance = void 0;
5
+ }), exports.enableTooltipToAllChartInstances = exports.disableTooltipToAllChartInstances = exports.isDisabledTooltipToAllChartInstances = exports.clearAllChartInstanceList = exports.clearDelayRunDimensionHoverTimers = exports.clearDelayRunDimensionHoverTimerForViewRange = exports.clearDelayRunDimensionHoverTimerForRowDirection = exports.clearDelayRunDimensionHoverTimerForColumnDirection = exports.clearChartInstanceListByRowDirection = exports.clearChartInstanceListByColumnDirection = exports.generateChartInstanceListByViewRange = exports.generateChartInstanceListByRowDirection = exports.generateChartInstanceListByColumnDirection = exports.chartInstanceListRowByRowDirection = exports.chartInstanceListColumnByColumnDirection = exports.getBrushingChartInstanceCellPos = exports.getBrushingChartInstance = exports.clearAndReleaseBrushingChartInstance = exports.setBrushingChartInstance = void 0;
6
6
 
7
7
  const vutils_1 = require("@visactor/vutils");
8
8
 
@@ -18,7 +18,18 @@ function setBrushingChartInstance(chartInstance, col, row) {
18
18
  };
19
19
  }
20
20
 
21
- function clearBrushingChartInstance() {
21
+ function clearAndReleaseBrushingChartInstance(scenegraph) {
22
+ var _a, _b, _c;
23
+ enableTooltipToAllChartInstances();
24
+ const cellGroup = scenegraph.getCell(brushingChartInstanceCellPos.col, brushingChartInstanceCellPos.row);
25
+ (null === (_a = null == cellGroup ? void 0 : cellGroup.firstChild) || void 0 === _a ? void 0 : _a.deactivate) && (null === (_c = null === (_b = null == cellGroup ? void 0 : cellGroup.firstChild) || void 0 === _b ? void 0 : _b.deactivate) || void 0 === _c || _c.call(_b, scenegraph.table, {
26
+ forceRelease: !0,
27
+ releaseChartInstance: !0,
28
+ releaseColumnChartInstance: !1,
29
+ releaseRowChartInstance: !1,
30
+ releaseAllChartInstance: !1
31
+ })), (0, vutils_1.isValid)(exports.chartInstanceListColumnByColumnDirection[brushingChartInstanceCellPos.col]) && delete exports.chartInstanceListColumnByColumnDirection[brushingChartInstanceCellPos.col][brushingChartInstanceCellPos.row],
32
+ (0, vutils_1.isValid)(exports.chartInstanceListRowByRowDirection[brushingChartInstanceCellPos.row]) && delete exports.chartInstanceListRowByRowDirection[brushingChartInstanceCellPos.row][brushingChartInstanceCellPos.col],
22
33
  brushingChartInstance = void 0, brushingChartInstanceCellPos = {
23
34
  col: -1,
24
35
  row: -1
@@ -33,15 +44,15 @@ function getBrushingChartInstanceCellPos() {
33
44
  return brushingChartInstanceCellPos;
34
45
  }
35
46
 
36
- exports.setBrushingChartInstance = setBrushingChartInstance, exports.clearBrushingChartInstance = clearBrushingChartInstance,
47
+ exports.setBrushingChartInstance = setBrushingChartInstance, exports.clearAndReleaseBrushingChartInstance = clearAndReleaseBrushingChartInstance,
37
48
  exports.getBrushingChartInstance = getBrushingChartInstance, exports.getBrushingChartInstanceCellPos = getBrushingChartInstanceCellPos,
38
49
  exports.chartInstanceListColumnByColumnDirection = {}, exports.chartInstanceListRowByRowDirection = {};
39
50
 
40
- const delayRunDimensionHoverTimer = [];
51
+ const delayRunDimensionHoverTimerForColumnDirection = [], delayRunDimensionHoverTimerForRowDirection = [], delayRunDimensionHoverTimerForViewRange = [];
41
52
 
42
53
  function generateChartInstanceListByColumnDirection(col, dimensionValueOrXValue, positionValueOrYValue, canvasXY, table, hideTooltip = !1, isScatter = !1) {
43
54
  var _a;
44
- clearDelayRunDimensionHoverTimers(), (0, vutils_1.isValid)(exports.chartInstanceListColumnByColumnDirection[col]) || (exports.chartInstanceListColumnByColumnDirection[col] = {});
55
+ clearDelayRunDimensionHoverTimerForColumnDirection(), (0, vutils_1.isValid)(exports.chartInstanceListColumnByColumnDirection[col]) || (exports.chartInstanceListColumnByColumnDirection[col] = {});
45
56
  const {rowStart: rowStart} = table.getBodyVisibleRowRange();
46
57
  let rowEnd = table.getBodyVisibleRowRange().rowEnd;
47
58
  rowEnd = Math.min(table.rowCount - 1 - table.bottomFrozenRowCount, rowEnd);
@@ -76,13 +87,13 @@ function generateChartInstanceListByColumnDirection(col, dimensionValueOrXValue,
76
87
  }
77
88
  }
78
89
  }), 0);
79
- delayRunDimensionHoverTimer.push(timer), table.scenegraph.updateNextFrame();
90
+ delayRunDimensionHoverTimerForColumnDirection.push(timer), table.scenegraph.updateNextFrame();
80
91
  }
81
92
  }
82
93
 
83
94
  function generateChartInstanceListByRowDirection(row, dimensionValueOrXValue, positionValueOrYValue, canvasXY, table, hideTooltip = !1, isScatter = !1) {
84
95
  var _a;
85
- clearDelayRunDimensionHoverTimers(), (0, vutils_1.isValid)(exports.chartInstanceListRowByRowDirection[row]) || (exports.chartInstanceListRowByRowDirection[row] = {});
96
+ clearDelayRunDimensionHoverTimerForRowDirection(), (0, vutils_1.isValid)(exports.chartInstanceListRowByRowDirection[row]) || (exports.chartInstanceListRowByRowDirection[row] = {});
86
97
  const {colStart: colStart} = table.getBodyVisibleColRange();
87
98
  let colEnd = table.getBodyVisibleColRange().colEnd;
88
99
  colEnd = Math.min(table.colCount - 1 - table.rightFrozenColCount, colEnd);
@@ -117,13 +128,13 @@ function generateChartInstanceListByRowDirection(row, dimensionValueOrXValue, po
117
128
  }
118
129
  }
119
130
  }), 0);
120
- delayRunDimensionHoverTimer.push(timer), table.scenegraph.updateNextFrame();
131
+ delayRunDimensionHoverTimerForRowDirection.push(timer), table.scenegraph.updateNextFrame();
121
132
  }
122
133
  }
123
134
 
124
135
  function generateChartInstanceListByViewRange(datum, table, deactivate = !1) {
125
136
  var _a;
126
- clearDelayRunDimensionHoverTimers();
137
+ clearDelayRunDimensionHoverTimerForViewRange();
127
138
  const {rowStart: rowStart} = table.getBodyVisibleRowRange();
128
139
  let rowEnd = table.getBodyVisibleRowRange().rowEnd;
129
140
  rowEnd = Math.min(table.rowCount - 1 - table.bottomFrozenRowCount, rowEnd);
@@ -150,7 +161,7 @@ function generateChartInstanceListByViewRange(datum, table, deactivate = !1) {
150
161
  })));
151
162
  }
152
163
  }), 0);
153
- delayRunDimensionHoverTimer.push(timer), table.scenegraph.updateNextFrame();
164
+ delayRunDimensionHoverTimerForViewRange.push(timer), table.scenegraph.updateNextFrame();
154
165
  }
155
166
  }
156
167
  }
@@ -232,9 +243,28 @@ function clearChartInstanceListByRowDirection(row, excludedCol, table, forceRele
232
243
  delete exports.chartInstanceListRowByRowDirection[row];
233
244
  }
234
245
 
246
+ function clearDelayRunDimensionHoverTimerForColumnDirection() {
247
+ for (const timer of delayRunDimensionHoverTimerForColumnDirection) clearTimeout(timer);
248
+ delayRunDimensionHoverTimerForColumnDirection.length = 0;
249
+ }
250
+
251
+ function clearDelayRunDimensionHoverTimerForRowDirection() {
252
+ for (const timer of delayRunDimensionHoverTimerForRowDirection) clearTimeout(timer);
253
+ delayRunDimensionHoverTimerForRowDirection.length = 0;
254
+ }
255
+
256
+ function clearDelayRunDimensionHoverTimerForViewRange() {
257
+ for (const timer of delayRunDimensionHoverTimerForViewRange) clearTimeout(timer);
258
+ delayRunDimensionHoverTimerForViewRange.length = 0;
259
+ }
260
+
235
261
  function clearDelayRunDimensionHoverTimers() {
236
- for (const timer of delayRunDimensionHoverTimer) clearTimeout(timer);
237
- delayRunDimensionHoverTimer.length = 0;
262
+ for (const timer of delayRunDimensionHoverTimerForColumnDirection) clearTimeout(timer);
263
+ delayRunDimensionHoverTimerForColumnDirection.length = 0;
264
+ for (const timer of delayRunDimensionHoverTimerForRowDirection) clearTimeout(timer);
265
+ delayRunDimensionHoverTimerForRowDirection.length = 0;
266
+ for (const timer of delayRunDimensionHoverTimerForViewRange) clearTimeout(timer);
267
+ delayRunDimensionHoverTimerForViewRange.length = 0;
238
268
  }
239
269
 
240
270
  function clearAllChartInstanceList(table, forceRelease = !1) {
@@ -248,6 +278,9 @@ exports.generateChartInstanceListByRowDirection = generateChartInstanceListByRow
248
278
  exports.generateChartInstanceListByViewRange = generateChartInstanceListByViewRange,
249
279
  exports.clearChartInstanceListByColumnDirection = clearChartInstanceListByColumnDirection,
250
280
  exports.clearChartInstanceListByRowDirection = clearChartInstanceListByRowDirection,
281
+ exports.clearDelayRunDimensionHoverTimerForColumnDirection = clearDelayRunDimensionHoverTimerForColumnDirection,
282
+ exports.clearDelayRunDimensionHoverTimerForRowDirection = clearDelayRunDimensionHoverTimerForRowDirection,
283
+ exports.clearDelayRunDimensionHoverTimerForViewRange = clearDelayRunDimensionHoverTimerForViewRange,
251
284
  exports.clearDelayRunDimensionHoverTimers = clearDelayRunDimensionHoverTimers, exports.clearAllChartInstanceList = clearAllChartInstanceList;
252
285
 
253
286
  let disabledTooltipToAllChartInstances = !1;
@@ -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';\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 disabledTooltipToAllChartInstances: boolean = false;\nexport function isDisabledTooltipToAllChartInstances() {\n return disabledTooltipToAllChartInstances;\n}\nexport function disableTooltipToAllChartInstances() {\n disabledTooltipToAllChartInstances = 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 disabledTooltipToAllChartInstances = 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"]}
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 type { Scenegraph } from '../scenegraph';\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 clearAndReleaseBrushingChartInstance(scenegraph: Scenegraph) {\n enableTooltipToAllChartInstances();\n const cellGroup = scenegraph.getCell(brushingChartInstanceCellPos.col, brushingChartInstanceCellPos.row);\n if ((cellGroup?.firstChild as any)?.deactivate) {\n (cellGroup?.firstChild as any)?.deactivate?.(scenegraph.table, {\n forceRelease: true,\n releaseChartInstance: true,\n releaseColumnChartInstance: false,\n releaseRowChartInstance: false,\n releaseAllChartInstance: false\n });\n }\n //将这个单元格的chart引用从chartInstanceListColumnByColumnDirection或chartInstanceListRowByRowDirection中删除\n if (isValid(chartInstanceListColumnByColumnDirection[brushingChartInstanceCellPos.col])) {\n delete chartInstanceListColumnByColumnDirection[brushingChartInstanceCellPos.col][brushingChartInstanceCellPos.row];\n }\n if (isValid(chartInstanceListRowByRowDirection[brushingChartInstanceCellPos.row])) {\n delete chartInstanceListRowByRowDirection[brushingChartInstanceCellPos.row][brushingChartInstanceCellPos.col];\n }\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 delayRunDimensionHoverTimerForColumnDirection: any[] = [];\nconst delayRunDimensionHoverTimerForRowDirection: any[] = [];\nconst delayRunDimensionHoverTimerForViewRange: 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 clearDelayRunDimensionHoverTimerForColumnDirection();\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 delayRunDimensionHoverTimerForColumnDirection.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 clearDelayRunDimensionHoverTimerForRowDirection();\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 delayRunDimensionHoverTimerForRowDirection.push(timer);\n table.scenegraph.updateNextFrame();\n }\n}\nexport function generateChartInstanceListByViewRange(datum: any, table: BaseTableAPI, deactivate: boolean = false) {\n // 清除之前的定时器,避免旧的定时器执行\n clearDelayRunDimensionHoverTimerForViewRange();\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 delayRunDimensionHoverTimerForViewRange.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}\nexport function clearDelayRunDimensionHoverTimerForColumnDirection() {\n for (const timer of delayRunDimensionHoverTimerForColumnDirection) {\n clearTimeout(timer);\n }\n delayRunDimensionHoverTimerForColumnDirection.length = 0;\n}\nexport function clearDelayRunDimensionHoverTimerForRowDirection() {\n for (const timer of delayRunDimensionHoverTimerForRowDirection) {\n clearTimeout(timer);\n }\n delayRunDimensionHoverTimerForRowDirection.length = 0;\n}\nexport function clearDelayRunDimensionHoverTimerForViewRange() {\n for (const timer of delayRunDimensionHoverTimerForViewRange) {\n clearTimeout(timer);\n }\n delayRunDimensionHoverTimerForViewRange.length = 0;\n}\n/**\n * 清除所有延迟执行的定时器\n */\nexport function clearDelayRunDimensionHoverTimers() {\n for (const timer of delayRunDimensionHoverTimerForColumnDirection) {\n clearTimeout(timer);\n }\n delayRunDimensionHoverTimerForColumnDirection.length = 0;\n for (const timer of delayRunDimensionHoverTimerForRowDirection) {\n clearTimeout(timer);\n }\n delayRunDimensionHoverTimerForRowDirection.length = 0;\n for (const timer of delayRunDimensionHoverTimerForViewRange) {\n clearTimeout(timer);\n }\n delayRunDimensionHoverTimerForViewRange.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 disabledTooltipToAllChartInstances: boolean = false;\nexport function isDisabledTooltipToAllChartInstances() {\n return disabledTooltipToAllChartInstances;\n}\nexport function disableTooltipToAllChartInstances() {\n disabledTooltipToAllChartInstances = 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 disabledTooltipToAllChartInstances = 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"]}
@@ -92,16 +92,17 @@ class Chart extends vrender_1.Rect {
92
92
  this.activeChartInstance.renderSync(), null === (_c = null === (_b = table.internalProps.layoutMap) || void 0 === _b ? void 0 : _b.updateDataStateToActiveChartInstance) || void 0 === _c || _c.call(_b, this.activeChartInstance),
93
93
  this.activeChartInstance.on("click", (params => {
94
94
  var _a;
95
- !1 === (null === (_a = this.attribute.spec.select) || void 0 === _a ? void 0 : _a.enable) ? table.scenegraph.updateChartState(null, void 0) : Chart.temp && table.scenegraph.updateChartState(null == params ? void 0 : params.datum, "click");
95
+ !1 === (null === (_a = this.attribute.spec.select) || void 0 === _a ? void 0 : _a.enable) ? table.scenegraph.updateChartState(null, void 0) : Chart.temp && (table.scenegraph.updateChartState(null, "brush"),
96
+ table.scenegraph.updateChartState(null == params ? void 0 : params.datum, "click"));
96
97
  })), (null === (_d = table.options.chartDimensionLinkage) || void 0 === _d ? void 0 : _d.listenBrushChange) && (brushChangeThrottle = (0,
97
98
  util_1.cancellableThrottle)(table.scenegraph.updateChartState.bind(table.scenegraph), null !== (_f = null === (_e = table.options.chartDimensionLinkage) || void 0 === _e ? void 0 : _e.brushChangeDelay) && void 0 !== _f ? _f : 100),
98
99
  this.activeChartInstance.on("brushChange", (params => {
99
100
  var _a;
100
101
  brushChangeThrottle.throttled(null === (_a = null == params ? void 0 : params.value) || void 0 === _a ? void 0 : _a.inBrushData, "brush");
101
102
  }))), this.activeChartInstance.on("brushStart", (params => {
102
- var _a;
103
103
  const brushingChartInstance = (0, active_cell_chart_list_1.getBrushingChartInstance)();
104
- brushingChartInstance !== this.activeChartInstance && (brushingChartInstance && (null === (_a = brushingChartInstance.getChart()) || void 0 === _a || _a.getComponentsByKey("brush")[0].clearBrushStateAndMask()),
104
+ brushingChartInstance !== this.activeChartInstance && (brushingChartInstance && (0,
105
+ active_cell_chart_list_1.clearAndReleaseBrushingChartInstance)(table.scenegraph),
105
106
  (0, active_cell_chart_list_1.setBrushingChartInstance)(this.activeChartInstance, col, row));
106
107
  })), this.activeChartInstance.on("brushEnd", (params => {
107
108
  var _a;