k-vtable 1.0.26 → 1.0.28

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 (211) hide show
  1. package/cjs/ListTable.d.ts +1 -0
  2. package/cjs/ListTable.js +17 -7
  3. package/cjs/ListTable.js.map +1 -1
  4. package/cjs/PivotChart.js +6 -6
  5. package/cjs/PivotChart.js.map +1 -1
  6. package/cjs/PivotTable-all.js +5 -5
  7. package/cjs/PivotTable-all.js.map +1 -1
  8. package/cjs/PivotTable.js +14 -8
  9. package/cjs/PivotTable.js.map +1 -1
  10. package/cjs/components/axis/axis.d.ts +5 -3
  11. package/cjs/components/axis/axis.js +20 -14
  12. package/cjs/components/axis/axis.js.map +1 -1
  13. package/cjs/components/axis/get-axis-attributes.d.ts +1 -0
  14. package/cjs/components/axis/get-axis-attributes.js +5 -2
  15. package/cjs/components/axis/get-axis-attributes.js.map +1 -1
  16. package/cjs/components/axis/get-axis-component-size.js +11 -5
  17. package/cjs/components/axis/get-axis-component-size.js.map +1 -1
  18. package/cjs/core/BaseTable.d.ts +3 -3
  19. package/cjs/core/BaseTable.js +16 -13
  20. package/cjs/core/BaseTable.js.map +1 -1
  21. package/cjs/core/TABLE_EVENT_TYPE.d.ts +2 -0
  22. package/cjs/core/TABLE_EVENT_TYPE.js +3 -1
  23. package/cjs/core/TABLE_EVENT_TYPE.js.map +1 -1
  24. package/cjs/data/DataSource.d.ts +1 -1
  25. package/cjs/data/DataSource.js +2 -2
  26. package/cjs/data/DataSource.js.map +1 -1
  27. package/cjs/dataset/dataset.js +13 -4
  28. package/cjs/dataset/dataset.js.map +1 -1
  29. package/cjs/edit/edit-manager.d.ts +3 -2
  30. package/cjs/edit/edit-manager.js +36 -6
  31. package/cjs/edit/edit-manager.js.map +1 -1
  32. package/cjs/event/event.d.ts +9 -0
  33. package/cjs/event/event.js +161 -85
  34. package/cjs/event/event.js.map +1 -1
  35. package/cjs/event/listener/container-dom.js +15 -7
  36. package/cjs/event/listener/container-dom.js.map +1 -1
  37. package/cjs/event/self-event-listener/pivot-chart/axis-hover.js +1 -1
  38. package/cjs/event/self-event-listener/pivot-chart/axis-hover.js.map +1 -1
  39. package/cjs/event/util.d.ts +1 -0
  40. package/cjs/event/util.js +13 -2
  41. package/cjs/event/util.js.map +1 -1
  42. package/cjs/index.d.ts +1 -1
  43. package/cjs/index.js +1 -1
  44. package/cjs/index.js.map +1 -1
  45. package/cjs/layout/chart-helper/get-axis-config.js +40 -25
  46. package/cjs/layout/chart-helper/get-axis-config.js.map +1 -1
  47. package/cjs/layout/chart-helper/get-chart-spec.js +6 -2
  48. package/cjs/layout/chart-helper/get-chart-spec.js.map +1 -1
  49. package/cjs/layout/pivot-header-layout.d.ts +4 -1
  50. package/cjs/layout/pivot-header-layout.js +55 -22
  51. package/cjs/layout/pivot-header-layout.js.map +1 -1
  52. package/cjs/plugins/index.js +1 -1
  53. package/cjs/plugins/plugin-manager.d.ts +2 -0
  54. package/cjs/plugins/plugin-manager.js +13 -6
  55. package/cjs/plugins/plugin-manager.js.map +1 -1
  56. package/cjs/scenegraph/component/menu.d.ts +41 -0
  57. package/cjs/scenegraph/component/table-component.d.ts +2 -0
  58. package/cjs/scenegraph/component/table-component.js +39 -9
  59. package/cjs/scenegraph/component/table-component.js.map +1 -1
  60. package/cjs/scenegraph/debug-tool/debug-tool.js +1 -1
  61. package/cjs/scenegraph/debug-tool/debug-tool.js.map +1 -1
  62. package/cjs/scenegraph/graphic/active-cell-chart-list.d.ts +13 -0
  63. package/cjs/scenegraph/graphic/active-cell-chart-list.js +152 -0
  64. package/cjs/scenegraph/graphic/active-cell-chart-list.js.map +1 -0
  65. package/cjs/scenegraph/graphic/chart.d.ts +9 -2
  66. package/cjs/scenegraph/graphic/chart.js +95 -15
  67. package/cjs/scenegraph/graphic/chart.js.map +1 -1
  68. package/cjs/scenegraph/graphic/contributions/chart-render-helper.js +2 -1
  69. package/cjs/scenegraph/graphic/contributions/chart-render-helper.js.map +1 -1
  70. package/cjs/scenegraph/graphic/contributions/chart-render.js +3 -3
  71. package/cjs/scenegraph/graphic/contributions/chart-render.js.map +1 -1
  72. package/cjs/scenegraph/group-creater/cell-helper.js +3 -3
  73. package/cjs/scenegraph/group-creater/cell-helper.js.map +1 -1
  74. package/cjs/scenegraph/group-creater/column-helper.js +1 -1
  75. package/cjs/scenegraph/group-creater/column-helper.js.map +1 -1
  76. package/cjs/scenegraph/layout/compute-col-width.js +1 -1
  77. package/cjs/scenegraph/layout/compute-col-width.js.map +1 -1
  78. package/cjs/scenegraph/layout/frozen.js +4 -4
  79. package/cjs/scenegraph/layout/frozen.js.map +1 -1
  80. package/cjs/scenegraph/layout/update-width.js +1 -1
  81. package/cjs/scenegraph/layout/update-width.js.map +1 -1
  82. package/cjs/scenegraph/refresh-node/update-chart.js +2 -2
  83. package/cjs/scenegraph/refresh-node/update-chart.js.map +1 -1
  84. package/cjs/scenegraph/scenegraph.js +9 -2
  85. package/cjs/scenegraph/scenegraph.js.map +1 -1
  86. package/cjs/scenegraph/utils/text-measure.d.ts +38 -0
  87. package/cjs/state/state.js +15 -23
  88. package/cjs/state/state.js.map +1 -1
  89. package/cjs/themes/theme-define.js +22 -16
  90. package/cjs/themes/theme-define.js.map +1 -1
  91. package/cjs/ts-types/base-table.d.ts +5 -3
  92. package/cjs/ts-types/base-table.js.map +1 -1
  93. package/cjs/ts-types/events.d.ts +8 -0
  94. package/cjs/ts-types/events.js.map +1 -1
  95. package/cjs/ts-types/list-table/define/index.d.ts +9 -2
  96. package/cjs/ts-types/list-table/define/index.js.map +1 -1
  97. package/cjs/ts-types/table-engine.d.ts +17 -0
  98. package/cjs/ts-types/table-engine.js.map +1 -1
  99. package/cjs/ts-types/theme.d.ts +12 -4
  100. package/cjs/ts-types/theme.js.map +1 -1
  101. package/cjs/vrender.js.map +1 -1
  102. package/dist/vtable.js +25073 -25724
  103. package/dist/vtable.min.js +2 -2
  104. package/es/ListTable.d.ts +1 -0
  105. package/es/ListTable.js +18 -8
  106. package/es/ListTable.js.map +1 -1
  107. package/es/PivotChart.js +6 -6
  108. package/es/PivotChart.js.map +1 -1
  109. package/es/PivotTable-all.js +5 -3
  110. package/es/PivotTable-all.js.map +1 -1
  111. package/es/PivotTable.js +14 -8
  112. package/es/PivotTable.js.map +1 -1
  113. package/es/components/axis/axis.d.ts +5 -3
  114. package/es/components/axis/axis.js +19 -12
  115. package/es/components/axis/axis.js.map +1 -1
  116. package/es/components/axis/get-axis-attributes.d.ts +1 -0
  117. package/es/components/axis/get-axis-attributes.js +5 -2
  118. package/es/components/axis/get-axis-attributes.js.map +1 -1
  119. package/es/components/axis/get-axis-component-size.js +12 -4
  120. package/es/components/axis/get-axis-component-size.js.map +1 -1
  121. package/es/core/BaseTable.d.ts +3 -3
  122. package/es/core/BaseTable.js +16 -13
  123. package/es/core/BaseTable.js.map +1 -1
  124. package/es/core/TABLE_EVENT_TYPE.d.ts +2 -0
  125. package/es/core/TABLE_EVENT_TYPE.js +3 -1
  126. package/es/core/TABLE_EVENT_TYPE.js.map +1 -1
  127. package/es/data/DataSource.d.ts +1 -1
  128. package/es/data/DataSource.js +2 -2
  129. package/es/data/DataSource.js.map +1 -1
  130. package/es/dataset/dataset.js +12 -4
  131. package/es/dataset/dataset.js.map +1 -1
  132. package/es/edit/edit-manager.d.ts +3 -2
  133. package/es/edit/edit-manager.js +36 -6
  134. package/es/edit/edit-manager.js.map +1 -1
  135. package/es/event/event.d.ts +9 -0
  136. package/es/event/event.js +161 -85
  137. package/es/event/event.js.map +1 -1
  138. package/es/event/listener/container-dom.js +15 -7
  139. package/es/event/listener/container-dom.js.map +1 -1
  140. package/es/event/self-event-listener/pivot-chart/axis-hover.js +1 -1
  141. package/es/event/self-event-listener/pivot-chart/axis-hover.js.map +1 -1
  142. package/es/event/util.d.ts +1 -0
  143. package/es/event/util.js +11 -0
  144. package/es/event/util.js.map +1 -1
  145. package/es/index.d.ts +1 -1
  146. package/es/index.js +1 -1
  147. package/es/index.js.map +1 -1
  148. package/es/layout/chart-helper/get-axis-config.js +39 -24
  149. package/es/layout/chart-helper/get-axis-config.js.map +1 -1
  150. package/es/layout/chart-helper/get-chart-spec.js +5 -3
  151. package/es/layout/chart-helper/get-chart-spec.js.map +1 -1
  152. package/es/layout/pivot-header-layout.d.ts +4 -1
  153. package/es/layout/pivot-header-layout.js +53 -21
  154. package/es/layout/pivot-header-layout.js.map +1 -1
  155. package/es/plugins/index.js +1 -1
  156. package/es/plugins/plugin-manager.d.ts +2 -0
  157. package/es/plugins/plugin-manager.js +13 -6
  158. package/es/plugins/plugin-manager.js.map +1 -1
  159. package/es/scenegraph/component/menu.d.ts +41 -0
  160. package/es/scenegraph/component/table-component.d.ts +2 -0
  161. package/es/scenegraph/component/table-component.js +39 -9
  162. package/es/scenegraph/component/table-component.js.map +1 -1
  163. package/es/scenegraph/debug-tool/debug-tool.js +1 -1
  164. package/es/scenegraph/debug-tool/debug-tool.js.map +1 -1
  165. package/es/scenegraph/graphic/active-cell-chart-list.d.ts +13 -0
  166. package/es/scenegraph/graphic/active-cell-chart-list.js +141 -0
  167. package/es/scenegraph/graphic/active-cell-chart-list.js.map +1 -0
  168. package/es/scenegraph/graphic/chart.d.ts +9 -2
  169. package/es/scenegraph/graphic/chart.js +95 -14
  170. package/es/scenegraph/graphic/chart.js.map +1 -1
  171. package/es/scenegraph/graphic/contributions/chart-render-helper.js +2 -1
  172. package/es/scenegraph/graphic/contributions/chart-render-helper.js.map +1 -1
  173. package/es/scenegraph/graphic/contributions/chart-render.js +3 -3
  174. package/es/scenegraph/graphic/contributions/chart-render.js.map +1 -1
  175. package/es/scenegraph/group-creater/cell-helper.js +3 -3
  176. package/es/scenegraph/group-creater/cell-helper.js.map +1 -1
  177. package/es/scenegraph/group-creater/column-helper.js +1 -1
  178. package/es/scenegraph/group-creater/column-helper.js.map +1 -1
  179. package/es/scenegraph/layout/compute-col-width.js +1 -1
  180. package/es/scenegraph/layout/compute-col-width.js.map +1 -1
  181. package/es/scenegraph/layout/frozen.js +4 -4
  182. package/es/scenegraph/layout/frozen.js.map +1 -1
  183. package/es/scenegraph/layout/update-width.js +1 -1
  184. package/es/scenegraph/layout/update-width.js.map +1 -1
  185. package/es/scenegraph/refresh-node/update-chart.js +2 -2
  186. package/es/scenegraph/refresh-node/update-chart.js.map +1 -1
  187. package/es/scenegraph/scenegraph.js +9 -2
  188. package/es/scenegraph/scenegraph.js.map +1 -1
  189. package/es/scenegraph/utils/text-measure.d.ts +38 -0
  190. package/es/state/state.js +15 -23
  191. package/es/state/state.js.map +1 -1
  192. package/es/themes/theme-define.js +18 -12
  193. package/es/themes/theme-define.js.map +1 -1
  194. package/es/ts-types/base-table.d.ts +5 -3
  195. package/es/ts-types/base-table.js.map +1 -1
  196. package/es/ts-types/events.d.ts +8 -0
  197. package/es/ts-types/events.js.map +1 -1
  198. package/es/ts-types/list-table/define/index.d.ts +9 -2
  199. package/es/ts-types/list-table/define/index.js.map +1 -1
  200. package/es/ts-types/table-engine.d.ts +17 -0
  201. package/es/ts-types/table-engine.js.map +1 -1
  202. package/es/ts-types/theme.d.ts +12 -4
  203. package/es/ts-types/theme.js.map +1 -1
  204. package/es/vrender.js.map +1 -1
  205. package/package.json +11 -11
  206. package/cjs/layout/pivot-layout.d.ts +0 -1
  207. package/cjs/layout/pivot-layout.js +0 -1
  208. package/cjs/layout/pivot-layout.js.map +0 -1
  209. package/es/layout/pivot-layout.d.ts +0 -1
  210. package/es/layout/pivot-layout.js +0 -1
  211. package/es/layout/pivot-layout.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/scenegraph/debug-tool/debug-tool.ts"],"names":[],"mappings":"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","file":"debug-tool.js","sourcesContent":["import type { FederatedPointerEvent, IStage, IRect, IGraphic } from './../../vrender';\nimport { createRect, getTheme } from './../../vrender';\nimport JSONFormatter from 'json-formatter-js';\n\nexport interface DebugToolOptions {\n container?: HTMLElement;\n infoPosition?: 'tl' | 'tr' | 'bl' | 'br';\n infoWidth?: number;\n infoHeight?: number;\n mode?: 'hover' | 'click';\n customGrapicKeys?: string[];\n}\n\nexport class DebugTool {\n _stage: IStage;\n _infoContainer: HTMLElement;\n _highlightRect: HTMLElement;\n _target: IGraphic;\n // _rect: IRect;\n _mode: 'hover' | 'click' = 'hover';\n _customGrapicKeys?: string[];\n _modeTip: HTMLElement;\n _callback: {\n pointermove: (e: FederatedPointerEvent) => void;\n pointerup: (e: FederatedPointerEvent) => void;\n pointerleave: (e: FederatedPointerEvent) => void;\n keydown: (e: KeyboardEvent) => void;\n };\n\n constructor(stage: IStage, options?: DebugToolOptions) {\n this._stage = stage;\n this._callback = {} as any;\n\n if (options?.customGrapicKeys) {\n this._customGrapicKeys = options.customGrapicKeys;\n }\n\n // 创建信息框\n if (options?.container) {\n this._infoContainer = options.container;\n } else {\n this.createInfoContainer(options);\n }\n\n // 创建高亮矩形\n this.createHighlightRect();\n\n // 绑定stage事件\n this.bindStageEvent();\n\n // 绑定键盘事件\n this.bindKeyEvent();\n }\n\n createInfoContainer(options?: DebugToolOptions) {\n const position = options?.infoPosition || 'tr';\n const width = options?.infoWidth || 300;\n const height = options?.infoPosition || 400;\n this._infoContainer = document.createElement('div');\n this._infoContainer.style.position = 'fixed';\n this._infoContainer.style.width = `${width}px`;\n this._infoContainer.style.height = `${height}px`;\n this._infoContainer.style.backgroundColor = 'rgba(210, 210, 210, 0.3)';\n this._infoContainer.style.overflow = 'auto';\n this._infoContainer.style.display = 'none';\n this._infoContainer.style.fontSize = '14px';\n switch (position) {\n case 'tl':\n this._infoContainer.style.top = '0px';\n this._infoContainer.style.left = '0px';\n break;\n case 'tr':\n this._infoContainer.style.top = '0px';\n this._infoContainer.style.right = `0px`;\n break;\n case 'bl':\n this._infoContainer.style.bottom = `0px`;\n this._infoContainer.style.left = '0px';\n break;\n case 'br':\n this._infoContainer.style.bottom = `0px`;\n this._infoContainer.style.right = `0px`;\n break;\n }\n\n // Tip\n // debug 模式:hover(shift + s改变模式;shift + d控制台输出target graphic)\n const tip = document.createElement('div');\n const tipSpan1 = document.createElement('span');\n tipSpan1.innerText = 'debug 模式:';\n tip.appendChild(tipSpan1);\n this._modeTip = document.createElement('span');\n this._modeTip.innerText = this._mode;\n tip.appendChild(this._modeTip);\n const tipSpan2 = document.createElement('span');\n tipSpan2.innerText = '(shift + s改变模式;shift + d控制台输出target graphic)';\n tip.appendChild(tipSpan2);\n this._infoContainer.appendChild(tip);\n\n // document.body.append(this._infoContainer);\n this._stage.window.getContainer().append(this._infoContainer);\n }\n\n createHighlightRect() {\n const container = this._stage.window.getContainer();\n this._highlightRect = document.createElement('div');\n this._highlightRect.style.display = 'absolute';\n this._highlightRect.style.border = '1px solid red';\n this._highlightRect.style.pointerEvents = 'none';\n this._highlightRect.style.position = 'absolute';\n container.appendChild(this._highlightRect);\n }\n\n bindStageEvent() {\n this._callback.pointermove = (e: FederatedPointerEvent) => {\n if (this._mode !== 'hover') {\n // do nothing\n } else if (e.target && (e.target as unknown as IGraphic) !== this._target) {\n // 更新bounds\n this._target = e.target as unknown as IGraphic;\n this.addHighlightBounds(this._target.globalAABBBounds);\n setTimeout(() => {\n this.updateInfo();\n }, 100);\n } else if (!e.target) {\n this._target = undefined;\n // this.removeHighlightBounds();\n this.clearInfo();\n }\n };\n this._stage.addEventListener('pointermove', this._callback.pointermove);\n\n this._callback.pointerup = (e: FederatedPointerEvent) => {\n if (this._mode !== 'click') {\n // do nothing\n } else if (e.target && (e.target as unknown as IGraphic) !== this._target) {\n // 更新bounds\n this._target = e.target as unknown as IGraphic;\n this.addHighlightBounds(this._target.globalAABBBounds);\n setTimeout(() => {\n this.updateInfo();\n }, 100);\n } else if (!e.target) {\n this._target = undefined;\n // this.removeHighlightBounds();\n this.clearInfo();\n }\n };\n this._stage.addEventListener('pointerup', this._callback.pointerup);\n\n this._callback.pointerleave = (e: FederatedPointerEvent) => {\n if (this._mode === 'hover') {\n this._target = undefined;\n // this.removeHighlightBounds();\n this.clearInfo();\n }\n };\n this._stage.addEventListener('pointerleave', this._callback.pointerleave);\n }\n\n addHighlightBounds(bounds: any) {\n // 使用VRender绘制高亮框会导致触发多余渲染,因此使用dom\n // this._rect.setAttributes({\n // x: bounds.x1,\n // y: bounds.y1,\n // width: bounds.width(),\n // height: bounds.height(),\n // visible: true,\n // });\n\n // // 保证rect在最上层\n // this._stage.defaultLayer.appendChild(this._rect);\n // this._stage.renderNextFrame();\n\n const table = (this._stage as any).table;\n const stage = table.scenegraph.stage;\n const stageMatrix = stage.window.getViewBoxTransform();\n\n this._highlightRect.style.left = `${bounds.x1 + (stageMatrix.e ?? 0) + (table.options.viewBox?.x1 ?? 0)}px`;\n this._highlightRect.style.top = `${bounds.y1 + (stageMatrix.f ?? 0) + (table.options.viewBox?.y1 ?? 0)}px`;\n this._highlightRect.style.width = `${bounds.width()}px`;\n this._highlightRect.style.height = `${bounds.height()}px`;\n\n // console.log(this._highlightRect.style.left);\n }\n\n // removeHighlightBounds() {\n // this._rect.setAttribute('visible', false);\n // this._stage.renderNextFrame();\n // }\n\n updateInfo() {\n if (!this._target) {\n return;\n }\n // this._infoContainer.innerHTML = '';\n if (this._infoContainer.children.length > 1) {\n this._infoContainer.removeChild(this._infoContainer.children[1]);\n }\n this._infoContainer.style.display = 'block';\n\n const info = {\n customKeys: {},\n type: this._target.type,\n // role: (this._target as any).role,\n globalX: this._target.globalTransMatrix.e,\n globalY: this._target.globalTransMatrix.f,\n attribute: this._target.attribute,\n theme: getTheme(this._target)[this._target.type],\n target: this._target\n };\n\n if (this._customGrapicKeys) {\n this._customGrapicKeys.forEach(key => {\n info.customKeys[key] = this._target[key];\n });\n } else {\n delete info.customKeys;\n }\n\n const formatter = new JSONFormatter(info, 2);\n this._infoContainer.appendChild(formatter.render());\n }\n\n clearInfo() {\n this._infoContainer.style.display = 'none';\n }\n\n updateMode() {\n this._modeTip.innerText = this._mode;\n }\n\n bindKeyEvent() {\n this._callback.keydown = (e: KeyboardEvent) => {\n if (e.key === 'D') {\n console.log(this._target);\n } else if (e.key === 'S') {\n switch (this._mode) {\n case 'click':\n this._mode = 'hover';\n break;\n case 'hover':\n this._mode = 'click';\n break;\n }\n this.updateMode();\n }\n };\n window.addEventListener('keydown', this._callback.keydown);\n }\n\n release() {\n // 移除信息框\n document.body.removeChild(this._infoContainer);\n\n // 移除高亮框\n this._highlightRect.parentElement.removeChild(this._highlightRect);\n\n // 解绑stage事件\n // this._stage.defaultLayer.removeChild(this._rect);\n this._stage.removeEventListener('pointermove', this._callback.pointermove);\n this._stage.removeEventListener('pointerup', this._callback.pointerup);\n this._stage.removeEventListener('pointerleave', this._callback.pointerleave);\n\n // 解绑键盘事件\n window.removeEventListener('keydown', this._callback.keydown);\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/scenegraph/debug-tool/debug-tool.ts"],"names":[],"mappings":"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","file":"debug-tool.js","sourcesContent":["import type { FederatedPointerEvent, IStage, IRect, IGraphic } from './../../vrender';\nimport { createRect, getTheme } from './../../vrender';\nimport JSONFormatter from 'json-formatter-js';\n\nexport interface DebugToolOptions {\n container?: HTMLElement;\n infoPosition?: 'tl' | 'tr' | 'bl' | 'br';\n infoWidth?: number;\n infoHeight?: number;\n mode?: 'hover' | 'click';\n customGrapicKeys?: string[];\n}\n\nexport class DebugTool {\n _stage: IStage;\n _infoContainer: HTMLElement;\n _highlightRect: HTMLElement;\n _target: IGraphic;\n // _rect: IRect;\n _mode: 'hover' | 'click' = 'hover';\n _customGrapicKeys?: string[];\n _modeTip: HTMLElement;\n _callback: {\n pointermove: (e: FederatedPointerEvent) => void;\n pointerup: (e: FederatedPointerEvent) => void;\n pointerleave: (e: FederatedPointerEvent) => void;\n keydown: (e: KeyboardEvent) => void;\n };\n\n constructor(stage: IStage, options?: DebugToolOptions) {\n this._stage = stage;\n this._callback = {} as any;\n\n if (options?.customGrapicKeys) {\n this._customGrapicKeys = options.customGrapicKeys;\n }\n\n // 创建信息框\n if (options?.container) {\n this._infoContainer = options.container;\n } else {\n this.createInfoContainer(options);\n }\n\n // 创建高亮矩形\n this.createHighlightRect();\n\n // 绑定stage事件\n this.bindStageEvent();\n\n // 绑定键盘事件\n this.bindKeyEvent();\n }\n\n createInfoContainer(options?: DebugToolOptions) {\n const position = options?.infoPosition || 'tr';\n const width = options?.infoWidth || 300;\n const height = options?.infoPosition || 400;\n this._infoContainer = document.createElement('div');\n this._infoContainer.style.position = 'fixed';\n this._infoContainer.style.width = `${width}px`;\n this._infoContainer.style.height = `${height}px`;\n this._infoContainer.style.backgroundColor = 'rgba(210, 210, 210, 0.3)';\n this._infoContainer.style.overflow = 'auto';\n this._infoContainer.style.display = 'none';\n this._infoContainer.style.fontSize = '14px';\n switch (position) {\n case 'tl':\n this._infoContainer.style.top = '0px';\n this._infoContainer.style.left = '0px';\n break;\n case 'tr':\n this._infoContainer.style.top = '0px';\n this._infoContainer.style.right = `0px`;\n break;\n case 'bl':\n this._infoContainer.style.bottom = `0px`;\n this._infoContainer.style.left = '0px';\n break;\n case 'br':\n this._infoContainer.style.bottom = `0px`;\n this._infoContainer.style.right = `0px`;\n break;\n }\n\n // Tip\n // debug 模式:hover(shift + s改变模式;shift + d控制台输出target graphic)\n const tip = document.createElement('div');\n const tipSpan1 = document.createElement('span');\n tipSpan1.innerText = 'debug 模式:';\n tip.appendChild(tipSpan1);\n this._modeTip = document.createElement('span');\n this._modeTip.innerText = this._mode;\n tip.appendChild(this._modeTip);\n const tipSpan2 = document.createElement('span');\n tipSpan2.innerText = '(shift + s改变模式;shift + d控制台输出target graphic)';\n tip.appendChild(tipSpan2);\n this._infoContainer.appendChild(tip);\n\n // document.body.append(this._infoContainer);\n this._stage.window.getContainer().append(this._infoContainer);\n }\n\n createHighlightRect() {\n const container = this._stage.window.getContainer();\n this._highlightRect = document.createElement('div');\n this._highlightRect.style.display = 'absolute';\n this._highlightRect.style.border = '1px solid red';\n this._highlightRect.style.pointerEvents = 'none';\n this._highlightRect.style.position = 'absolute';\n container.appendChild(this._highlightRect);\n }\n\n bindStageEvent() {\n this._callback.pointermove = (e: FederatedPointerEvent) => {\n if (this._mode !== 'hover') {\n // do nothing\n } else if (e.target && (e.target as unknown as IGraphic) !== this._target) {\n // 更新bounds\n this._target = e.target as unknown as IGraphic;\n this.addHighlightBounds(this._target.globalAABBBounds);\n setTimeout(() => {\n this.updateInfo();\n }, 100);\n } else if (!e.target) {\n this._target = undefined;\n // this.removeHighlightBounds();\n this.clearInfo();\n }\n };\n this._stage.addEventListener('pointermove', this._callback.pointermove);\n\n this._callback.pointerup = (e: FederatedPointerEvent) => {\n if (this._mode !== 'click') {\n // do nothing\n } else if (e.target && (e.target as unknown as IGraphic) !== this._target) {\n // 更新bounds\n this._target = e.target as unknown as IGraphic;\n this.addHighlightBounds(this._target.globalAABBBounds);\n setTimeout(() => {\n this.updateInfo();\n }, 100);\n } else if (!e.target) {\n this._target = undefined;\n // this.removeHighlightBounds();\n this.clearInfo();\n }\n };\n this._stage.addEventListener('pointerup', this._callback.pointerup);\n\n this._callback.pointerleave = (e: FederatedPointerEvent) => {\n if (this._mode === 'hover') {\n this._target = undefined;\n // this.removeHighlightBounds();\n this.clearInfo();\n }\n };\n this._stage.addEventListener('pointerleave', this._callback.pointerleave);\n }\n\n addHighlightBounds(bounds: any) {\n // 使用VRender绘制高亮框会导致触发多余渲染,因此使用dom\n // this._rect.setAttributes({\n // x: bounds.x1,\n // y: bounds.y1,\n // width: bounds.width(),\n // height: bounds.height(),\n // visible: true,\n // });\n\n // // 保证rect在最上层\n // this._stage.defaultLayer.appendChild(this._rect);\n // this._stage.renderNextFrame();\n\n const table = (this._stage as any).table;\n const stage = table.scenegraph.stage;\n const stageMatrix = stage.window.getViewBoxTransform();\n\n this._highlightRect.style.left = `${bounds.x1 + (stageMatrix.e ?? 0) + (table.options.viewBox?.x1 ?? 0)}px`;\n this._highlightRect.style.top = `${bounds.y1 + (stageMatrix.f ?? 0) + (table.options.viewBox?.y1 ?? 0)}px`;\n this._highlightRect.style.width = `${bounds.width()}px`;\n this._highlightRect.style.height = `${bounds.height()}px`;\n\n // console.log(this._highlightRect.style.left);\n }\n\n // removeHighlightBounds() {\n // this._rect.setAttribute('visible', false);\n // this._stage.renderNextFrame();\n // }\n\n updateInfo() {\n if (!this._target) {\n return;\n }\n // this._infoContainer.innerHTML = '';\n if (this._infoContainer.children.length > 1) {\n this._infoContainer.removeChild(this._infoContainer.children[1]);\n }\n this._infoContainer.style.display = 'block';\n\n const info = {\n customKeys: {},\n type: this._target.type,\n // role: (this._target as any).role,\n globalX: this._target.globalTransMatrix.e,\n globalY: this._target.globalTransMatrix.f,\n attribute: this._target.attribute,\n theme: getTheme(this._target)[this._target.type],\n target: this._target\n };\n\n if (this._customGrapicKeys) {\n this._customGrapicKeys.forEach(key => {\n info.customKeys[key] = this._target[key];\n });\n } else {\n delete info.customKeys;\n }\n\n const formatter = new JSONFormatter(info, 2);\n this._infoContainer.appendChild(formatter.render());\n }\n\n clearInfo() {\n this._infoContainer.style.display = 'none';\n }\n\n updateMode() {\n this._modeTip.innerText = this._mode;\n }\n\n bindKeyEvent() {\n this._callback.keydown = (e: KeyboardEvent) => {\n if (e.key === 'D') {\n console.log(this._target);\n } else if (e.key === 'S') {\n switch (this._mode) {\n case 'click':\n this._mode = 'hover';\n break;\n case 'hover':\n this._mode = 'click';\n break;\n }\n this.updateMode();\n }\n };\n window.addEventListener('keydown', this._callback.keydown);\n }\n\n release() {\n // 移除信息框\n this._stage.window.getContainer().removeChild(this._infoContainer);\n\n // 移除高亮框\n this._highlightRect.parentElement.removeChild(this._highlightRect);\n\n // 解绑stage事件\n // this._stage.defaultLayer.removeChild(this._rect);\n this._stage.removeEventListener('pointermove', this._callback.pointermove);\n this._stage.removeEventListener('pointerup', this._callback.pointerup);\n this._stage.removeEventListener('pointerleave', this._callback.pointerleave);\n\n // 解绑键盘事件\n window.removeEventListener('keydown', this._callback.keydown);\n }\n}\n"]}
@@ -0,0 +1,13 @@
1
+ import type { BaseTableAPI } from '../../ts-types/base-table';
2
+ export declare const chartInstanceListColumnByColumnDirection: Record<number, Record<number, any>>;
3
+ export declare const chartInstanceListRowByRowDirection: Record<number, Record<number, any>>;
4
+ export declare function generateChartInstanceListByColumnDirection(col: number, dimensionValueOrXValue: string, positionValueOrYValue: string | number, canvasXY: {
5
+ x: number;
6
+ y: number;
7
+ }, table: BaseTableAPI, hideTooltip?: boolean, isScatter?: boolean): void;
8
+ export declare function clearChartInstanceListByColumnDirection(col: number, excludedRow: number, table: BaseTableAPI): void;
9
+ export declare function generateChartInstanceListByRowDirection(row: number, dimensionValueOrXValue: string, positionValueOrYValue: string | number, canvasXY: {
10
+ x: number;
11
+ y: number;
12
+ }, table: BaseTableAPI, hideTooltip?: boolean, isScatter?: boolean): void;
13
+ export declare function clearChartInstanceListByRowDirection(row: number, excludedCol: number, table: BaseTableAPI): void;
@@ -0,0 +1,152 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: !0
5
+ }), exports.clearChartInstanceListByRowDirection = exports.generateChartInstanceListByRowDirection = exports.clearChartInstanceListByColumnDirection = exports.generateChartInstanceListByColumnDirection = exports.chartInstanceListRowByRowDirection = exports.chartInstanceListColumnByColumnDirection = void 0;
6
+
7
+ const vutils_1 = require("@visactor/vutils");
8
+
9
+ function generateChartInstanceListByColumnDirection(col, dimensionValueOrXValue, positionValueOrYValue, canvasXY, table, hideTooltip = !1, isScatter = !1) {
10
+ var _a;
11
+ (0, vutils_1.isValid)(exports.chartInstanceListColumnByColumnDirection[col]) || (exports.chartInstanceListColumnByColumnDirection[col] = {});
12
+ const {rowStart: rowStart} = table.getBodyVisibleRowRange();
13
+ let rowEnd = table.getBodyVisibleRowRange().rowEnd;
14
+ rowEnd = Math.min(table.rowCount - 1 - table.bottomFrozenRowCount, rowEnd);
15
+ for (let i = rowStart; i <= rowEnd; i++) {
16
+ const cellGroup = table.scenegraph.getCell(col, i), chartNode = null === (_a = null == cellGroup ? void 0 : cellGroup.getChildren()) || void 0 === _a ? void 0 : _a[0];
17
+ chartNode.addUpdateShapeAndBoundsTag(), exports.chartInstanceListColumnByColumnDirection[col][i] || (0,
18
+ vutils_1.isValid)(chartNode) && (chartNode.activeChartInstance || chartNode.activate(table),
19
+ exports.chartInstanceListColumnByColumnDirection[col][i] = chartNode.activeChartInstance),
20
+ setTimeout((() => {
21
+ var _a, _b, _c, _d, _e, _f;
22
+ if (null === (_a = exports.chartInstanceListColumnByColumnDirection[col]) || void 0 === _a ? void 0 : _a[i]) {
23
+ const chartDimensionLinkage = table.options.chartDimensionLinkage;
24
+ let isShowTooltip = !isScatter;
25
+ if (!isScatter && "object" == typeof chartDimensionLinkage) if (isShowTooltip = null === (_b = chartDimensionLinkage.showTooltip) || void 0 === _b || _b,
26
+ i === rowEnd && isShowTooltip) {
27
+ const heightLimitToShowTooltipForEdgeRow = null !== (_c = chartDimensionLinkage.heightLimitToShowTooltipForEdgeRow) && void 0 !== _c ? _c : 0, {rowEnd: rowEnd1} = table.getBodyVisibleRowRange(0, -heightLimitToShowTooltipForEdgeRow);
28
+ if (rowEnd1 === rowEnd) isShowTooltip = !0; else {
29
+ const {rowEnd: rowEnd2} = table.getBodyVisibleRowRange(0, 5);
30
+ isShowTooltip = rowEnd2 !== rowEnd;
31
+ }
32
+ } else if (i === rowStart && isShowTooltip) {
33
+ const heightLimitToShowTooltipForEdgeRow = null !== (_d = chartDimensionLinkage.heightLimitToShowTooltipForEdgeRow) && void 0 !== _d ? _d : 0, {rowStart: rowStart1} = table.getBodyVisibleRowRange(heightLimitToShowTooltipForEdgeRow, 0);
34
+ if (rowStart1 === rowStart) isShowTooltip = !0; else {
35
+ const {rowStart: rowStart2} = table.getBodyVisibleRowRange(0, -5);
36
+ isShowTooltip = rowStart2 !== rowStart;
37
+ }
38
+ }
39
+ if (isScatter) table.stateManager.hover.cellPos.col === col && table.stateManager.hover.cellPos.row === i || null === (_f = (_e = exports.chartInstanceListColumnByColumnDirection[col][i]).showCrosshair) || void 0 === _f || _f.call(_e, (axis => "left" === axis.layoutOrient ? positionValueOrYValue : dimensionValueOrXValue)); else {
40
+ const bodyBoundryTop = table.frozenRowCount ? table.getCellRelativeRect(col, table.frozenRowCount - 1).bottom : 0, absolutePositionTop = Math.max(bodyBoundryTop, table.getCellRelativeRect(col, i).top);
41
+ hideTooltip ? (table.stateManager.hover.cellPos.col === col && table.stateManager.hover.cellPos.row === i || exports.chartInstanceListColumnByColumnDirection[col][i].hideTooltip(),
42
+ exports.chartInstanceListColumnByColumnDirection[col][i].setDimensionIndex(dimensionValueOrXValue, {
43
+ tooltip: !1,
44
+ showTooltipOption: {
45
+ x: canvasXY.x,
46
+ y: absolutePositionTop,
47
+ activeType: "dimension"
48
+ }
49
+ })) : exports.chartInstanceListColumnByColumnDirection[col][i].setDimensionIndex(dimensionValueOrXValue, {
50
+ tooltip: isShowTooltip,
51
+ showTooltipOption: {
52
+ x: canvasXY.x,
53
+ y: absolutePositionTop,
54
+ activeType: "dimension"
55
+ }
56
+ });
57
+ }
58
+ }
59
+ }), 0), table.scenegraph.updateNextFrame();
60
+ }
61
+ }
62
+
63
+ function clearChartInstanceListByColumnDirection(col, excludedRow, table) {
64
+ var _a;
65
+ if ((0, vutils_1.isValid)(exports.chartInstanceListColumnByColumnDirection[col])) {
66
+ for (const i in exports.chartInstanceListColumnByColumnDirection[col]) {
67
+ if ((0, vutils_1.isValid)(excludedRow) && Number(i) === excludedRow) continue;
68
+ const cellGroup = table.scenegraph.getCell(col, Number(i)), chartNode = null === (_a = null == cellGroup ? void 0 : cellGroup.getChildren()) || void 0 === _a ? void 0 : _a[0];
69
+ chartNode.addUpdateShapeAndBoundsTag(), (0, vutils_1.isValid)(chartNode) && (chartNode.deactivate(table, {
70
+ releaseChartInstance: !0,
71
+ releaseColumnChartInstance: !1,
72
+ releaseRowChartInstance: !1
73
+ }), exports.chartInstanceListColumnByColumnDirection[col][i] = null);
74
+ }
75
+ delete exports.chartInstanceListColumnByColumnDirection[col];
76
+ }
77
+ }
78
+
79
+ function generateChartInstanceListByRowDirection(row, dimensionValueOrXValue, positionValueOrYValue, canvasXY, table, hideTooltip = !1, isScatter = !1) {
80
+ var _a;
81
+ (0, vutils_1.isValid)(exports.chartInstanceListRowByRowDirection[row]) || (exports.chartInstanceListRowByRowDirection[row] = {});
82
+ const {colStart: colStart} = table.getBodyVisibleColRange();
83
+ let colEnd = table.getBodyVisibleColRange().colEnd;
84
+ colEnd = Math.min(table.colCount - 1 - table.rightFrozenColCount, colEnd);
85
+ for (let i = colStart; i <= colEnd; i++) {
86
+ const cellGroup = table.scenegraph.getCell(i, row), chartNode = null === (_a = null == cellGroup ? void 0 : cellGroup.getChildren()) || void 0 === _a ? void 0 : _a[0];
87
+ chartNode.addUpdateShapeAndBoundsTag(), exports.chartInstanceListRowByRowDirection[row][i] || (0,
88
+ vutils_1.isValid)(chartNode) && (chartNode.activeChartInstance || chartNode.activate(table),
89
+ exports.chartInstanceListRowByRowDirection[row][i] = chartNode.activeChartInstance),
90
+ setTimeout((() => {
91
+ var _a, _b, _c, _d;
92
+ if (null === (_a = exports.chartInstanceListRowByRowDirection[row]) || void 0 === _a ? void 0 : _a[i]) {
93
+ const chartDimensionLinkage = table.options.chartDimensionLinkage;
94
+ let isShowTooltip = !isScatter;
95
+ if (!isScatter && "object" == typeof chartDimensionLinkage) if (isShowTooltip = null === (_b = chartDimensionLinkage.showTooltip) || void 0 === _b || _b,
96
+ i === colEnd && isShowTooltip) {
97
+ const widthLimitToShowTooltipForEdgeColumn = chartDimensionLinkage.widthLimitToShowTooltipForEdgeColumn, {colEnd: colEnd1} = table.getBodyVisibleColRange(0, -widthLimitToShowTooltipForEdgeColumn);
98
+ if (colEnd1 === colEnd) isShowTooltip = !0; else {
99
+ const {colEnd: colEnd2} = table.getBodyVisibleColRange(0, 5);
100
+ isShowTooltip = colEnd2 !== colEnd;
101
+ }
102
+ } else if (i === colStart && isShowTooltip) {
103
+ const widthLimitToShowTooltipForEdgeColumn = chartDimensionLinkage.widthLimitToShowTooltipForEdgeColumn, {colStart: colStart1} = table.getBodyVisibleColRange(widthLimitToShowTooltipForEdgeColumn, 0);
104
+ if (colStart1 === colStart) isShowTooltip = !0; else {
105
+ const {colStart: colStart2} = table.getBodyVisibleColRange(0, -5);
106
+ isShowTooltip = colStart2 !== colStart;
107
+ }
108
+ }
109
+ if (isScatter) table.stateManager.hover.cellPos.col === i && table.stateManager.hover.cellPos.row === row || null === (_d = (_c = exports.chartInstanceListRowByRowDirection[row][i]).showCrosshair) || void 0 === _d || _d.call(_c, (axis => "left" === axis.layoutOrient ? positionValueOrYValue : dimensionValueOrXValue)); else {
110
+ const bodyBoundryLeft = table.frozenColCount ? table.getCellRelativeRect(table.frozenColCount - 1, row).right : 0, absolutePositionLeft = Math.max(bodyBoundryLeft, table.getCellRelativeRect(i, row).left);
111
+ hideTooltip ? (table.stateManager.hover.cellPos.col === i && table.stateManager.hover.cellPos.row === row || exports.chartInstanceListRowByRowDirection[row][i].hideTooltip(),
112
+ exports.chartInstanceListRowByRowDirection[row][i].setDimensionIndex(dimensionValueOrXValue, {
113
+ tooltip: !1,
114
+ showTooltipOption: {
115
+ x: absolutePositionLeft,
116
+ y: canvasXY.y,
117
+ activeType: "dimension"
118
+ }
119
+ })) : exports.chartInstanceListRowByRowDirection[row][i].setDimensionIndex(dimensionValueOrXValue, {
120
+ tooltip: isShowTooltip,
121
+ showTooltipOption: {
122
+ x: absolutePositionLeft,
123
+ y: canvasXY.y,
124
+ activeType: "dimension"
125
+ }
126
+ });
127
+ }
128
+ }
129
+ }), 0), table.scenegraph.updateNextFrame();
130
+ }
131
+ }
132
+
133
+ function clearChartInstanceListByRowDirection(row, excludedCol, table) {
134
+ var _a;
135
+ if ((0, vutils_1.isValid)(exports.chartInstanceListRowByRowDirection[row])) for (const i in exports.chartInstanceListRowByRowDirection[row]) {
136
+ if ((0, vutils_1.isValid)(excludedCol) && Number(i) === excludedCol) continue;
137
+ const cellGroup = table.scenegraph.getCell(Number(i), row), chartNode = null === (_a = null == cellGroup ? void 0 : cellGroup.getChildren()) || void 0 === _a ? void 0 : _a[0];
138
+ chartNode.addUpdateShapeAndBoundsTag(), (0, vutils_1.isValid)(chartNode) && (chartNode.deactivate(table, {
139
+ releaseChartInstance: !0,
140
+ releaseColumnChartInstance: !1,
141
+ releaseRowChartInstance: !1
142
+ }), exports.chartInstanceListRowByRowDirection[row][i] = null);
143
+ }
144
+ delete exports.chartInstanceListRowByRowDirection[row];
145
+ }
146
+
147
+ exports.chartInstanceListColumnByColumnDirection = {}, exports.chartInstanceListRowByRowDirection = {},
148
+ exports.generateChartInstanceListByColumnDirection = generateChartInstanceListByColumnDirection,
149
+ exports.clearChartInstanceListByColumnDirection = clearChartInstanceListByColumnDirection,
150
+ exports.generateChartInstanceListByRowDirection = generateChartInstanceListByRowDirection,
151
+ exports.clearChartInstanceListByRowDirection = clearChartInstanceListByRowDirection;
152
+ //# sourceMappingURL=active-cell-chart-list.js.map
@@ -0,0 +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\n//存储可视区域内鼠标hover到的该列的图表实例,key为列号做个缓存\nexport const chartInstanceListColumnByColumnDirection: Record<number, Record<number, any>> = {};\nexport const chartInstanceListRowByRowDirection: Record<number, Record<number, any>> = {};\n\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 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 chartNode.addUpdateShapeAndBoundsTag();\n if (chartInstanceListColumnByColumnDirection[col][i]) {\n } else if (isValid(chartNode)) {\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 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 if (i === 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 (i === 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 }\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 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: { x: canvasXY.x, y: absolutePositionTop, activeType: 'dimension' }\n });\n } else {\n chartInstanceListColumnByColumnDirection[col][i].setDimensionIndex(dimensionValueOrXValue, {\n tooltip: isShowTooltip,\n showTooltipOption: { x: canvasXY.x, y: absolutePositionTop, activeType: 'dimension' }\n });\n }\n }\n }\n }, 0);\n\n table.scenegraph.updateNextFrame();\n }\n}\nexport function clearChartInstanceListByColumnDirection(col: number, excludedRow: number, table: BaseTableAPI) {\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 chartNode.addUpdateShapeAndBoundsTag();\n if (isValid(chartNode)) {\n chartNode.deactivate(table, {\n releaseChartInstance: true,\n releaseColumnChartInstance: false,\n releaseRowChartInstance: false\n });\n chartInstanceListColumnByColumnDirection[col][i] = null;\n }\n }\n delete chartInstanceListColumnByColumnDirection[col];\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 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 chartNode.addUpdateShapeAndBoundsTag();\n if (chartInstanceListRowByRowDirection[row][i]) {\n } else if (isValid(chartNode)) {\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 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 if (i === 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 (i === 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 }\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 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 console.log('hideTooltip', row, i);\n chartInstanceListRowByRowDirection[row][i].hideTooltip();\n }\n chartInstanceListRowByRowDirection[row][i].setDimensionIndex(dimensionValueOrXValue, {\n tooltip: false,\n showTooltipOption: { x: absolutePositionLeft, y: canvasXY.y, activeType: 'dimension' }\n });\n } else {\n chartInstanceListRowByRowDirection[row][i].setDimensionIndex(dimensionValueOrXValue, {\n tooltip: isShowTooltip,\n showTooltipOption: { x: absolutePositionLeft, y: canvasXY.y, activeType: 'dimension' }\n });\n }\n }\n }\n }, 0);\n\n table.scenegraph.updateNextFrame();\n }\n}\n\nexport function clearChartInstanceListByRowDirection(row: number, excludedCol: number, table: BaseTableAPI) {\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 chartNode.addUpdateShapeAndBoundsTag();\n if (isValid(chartNode)) {\n chartNode.deactivate(table, {\n releaseChartInstance: true,\n releaseColumnChartInstance: false,\n releaseRowChartInstance: false\n });\n chartInstanceListRowByRowDirection[row][i] = null;\n console.log('clearChartInstanceListByRowDirection', row, i);\n }\n }\n }\n delete chartInstanceListRowByRowDirection[row];\n}\n"]}
@@ -24,7 +24,10 @@ export declare class Chart extends Rect {
24
24
  attribute: IChartGraphicAttribute;
25
25
  chartInstance: any;
26
26
  activeChartInstance: any;
27
- active: boolean;
27
+ activeChartInstanceHoverOnMark: any;
28
+ justShowMarkTooltip: boolean;
29
+ justShowMarkTooltipTimer: number;
30
+ delayRunDimensionHoverTimer: any;
28
31
  cacheCanvas: HTMLCanvasElement | {
29
32
  x: number;
30
33
  y: number;
@@ -36,7 +39,11 @@ export declare class Chart extends Rect {
36
39
  constructor(isShareChartSpec: boolean, params: IChartGraphicAttribute);
37
40
  activate(table: BaseTableAPI): void;
38
41
  static temp: number;
39
- deactivate(): void;
42
+ deactivate(table: BaseTableAPI, { releaseChartInstance, releaseColumnChartInstance, releaseRowChartInstance }?: {
43
+ releaseChartInstance?: boolean;
44
+ releaseColumnChartInstance?: boolean;
45
+ releaseRowChartInstance?: boolean;
46
+ }): void;
40
47
  updateData(data: any): void;
41
48
  getViewBox(): {
42
49
  x1: number;
@@ -4,14 +4,16 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  }), exports.Chart = exports.CHART_NUMBER_TYPE = void 0;
6
6
 
7
- const vrender_1 = require("./../../vrender"), vutils_1 = require("@visactor/vutils"), is_cell_hover_1 = require("../../state/hover/is-cell-hover");
7
+ const vrender_1 = require("./../../vrender"), vutils_1 = require("@visactor/vutils"), is_cell_hover_1 = require("../../state/hover/is-cell-hover"), active_cell_chart_list_1 = require("./active-cell-chart-list"), get_axis_config_1 = require("../../layout/chart-helper/get-axis-config");
8
8
 
9
9
  exports.CHART_NUMBER_TYPE = (0, vrender_1.genNumberType)();
10
10
 
11
11
  class Chart extends vrender_1.Rect {
12
12
  constructor(isShareChartSpec, params) {
13
- if (super(params), this.type = "chart", this.numberType = exports.CHART_NUMBER_TYPE,
14
- this.isShareChartSpec = isShareChartSpec, params.chartInstance) this.chartInstance = params.chartInstance; else {
13
+ if (super(params), this.type = "chart", this.activeChartInstanceHoverOnMark = null,
14
+ this.justShowMarkTooltip = void 0, this.justShowMarkTooltipTimer = Date.now(), this.delayRunDimensionHoverTimer = void 0,
15
+ this.numberType = exports.CHART_NUMBER_TYPE, this.isShareChartSpec = isShareChartSpec,
16
+ params.chartInstance) this.chartInstance = params.chartInstance; else {
15
17
  const chartInstance = this.chartInstance = new params.ClassType(params.spec, (0,
16
18
  vutils_1.merge)({}, this.attribute.tableChartOption, {
17
19
  renderCanvas: params.canvas,
@@ -34,14 +36,15 @@ class Chart extends vrender_1.Rect {
34
36
  }
35
37
  activate(table) {
36
38
  var _a, _b, _c, _d, _e;
37
- this.active = !0;
39
+ if (this.activeChartInstance) return;
38
40
  const {col: col, row: row} = this.parent, hoverColor = (0, is_cell_hover_1.getCellHoverColor)(this.parent, table), {x1: x1, y1: y1, x2: x2, y2: y2} = this.getViewBox(), clipBound = getTableBounds(col, row, table).intersect({
39
41
  x1: x1 - table.scrollLeft,
40
42
  x2: x2 - table.scrollLeft,
41
43
  y1: y1 - table.scrollTop,
42
44
  y2: y2 - table.scrollTop
43
45
  });
44
- null === (_a = this.activeChartInstance) || void 0 === _a || _a.release(), this.activeChartInstance = new this.attribute.ClassType(this.attribute.spec, (0,
46
+ null === (_a = this.activeChartInstance) || void 0 === _a || _a.release(), this.attribute.ClassType.globalConfig.uniqueTooltip = !1,
47
+ this.activeChartInstance = new this.attribute.ClassType(this.attribute.spec, (0,
45
48
  vutils_1.merge)({}, this.attribute.tableChartOption, {
46
49
  renderCanvas: this.attribute.canvas,
47
50
  mode: "desktop-browser",
@@ -74,7 +77,14 @@ class Chart extends vrender_1.Rect {
74
77
  context.rect(viewBox.x1, viewBox.y1, viewBox.x2 - viewBox.x1, viewBox.y2 - viewBox.y1),
75
78
  context.fill());
76
79
  }
77
- }
80
+ },
81
+ componentShowContent: table.options.chartDimensionLinkage && "scatter" !== this.attribute.spec.type ? {
82
+ tooltip: {
83
+ dimension: !1,
84
+ mark: !0
85
+ },
86
+ crosshair: !1
87
+ } : void 0
78
88
  }));
79
89
  const chartStage = this.activeChartInstance.getStage(), matrix = this.globalTransMatrix.clone(), stageMatrix = this.stage.window.getViewBoxTransform();
80
90
  matrix.multiply(stageMatrix.a, stageMatrix.b, stageMatrix.c, stageMatrix.d, stageMatrix.e, stageMatrix.f),
@@ -89,17 +99,87 @@ class Chart extends vrender_1.Rect {
89
99
  Chart.temp = 0, setTimeout((() => {
90
100
  Chart.temp = 1;
91
101
  }), 0);
102
+ })), table.options.chartDimensionLinkage && this.activeChartInstance.on("dimensionHover", (params => {
103
+ var _a, _b;
104
+ 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;
105
+ if (viewport) {
106
+ const xValue = dimensionInfo.data[0].series.positionToDataX(viewport.x), yValue = dimensionInfo.data[0].series.positionToDataY(viewport.y);
107
+ if ("scatter" === this.attribute.spec.type) {
108
+ (0, active_cell_chart_list_1.generateChartInstanceListByColumnDirection)(col, xValue, void 0, canvasXY, table, !1, !0),
109
+ (0, active_cell_chart_list_1.generateChartInstanceListByRowDirection)(row, void 0, yValue, canvasXY, table, !1, !0);
110
+ (0, get_axis_config_1.getAxisConfigInPivotChart)(table.rowHeaderLevelCount - 1, row, table.internalProps.layoutMap).labelHoverOnAxis && table.scenegraph.getCell(table.rowHeaderLevelCount - 1, row).firstChild.showLabelHoverOnAxis(canvasXY.y - table.getCellRelativeRect(col, row).top, yValue);
111
+ (0, get_axis_config_1.getAxisConfigInPivotChart)(col, table.rowCount - table.bottomFrozenRowCount, table.internalProps.layoutMap).labelHoverOnAxis && table.scenegraph.getCell(col, table.rowCount - table.bottomFrozenRowCount).firstChild.showLabelHoverOnAxis(canvasXY.x - table.getCellRelativeRect(col, row).left, xValue);
112
+ } else {
113
+ let justShowMarkTooltip = !0;
114
+ const preMark = this.activeChartInstanceHoverOnMark, prev_justShowMarkTooltip = this.justShowMarkTooltip;
115
+ params.mark && params.datum && !Array.isArray(params.datum) ? (this.activeChartInstanceHoverOnMark = params.mark,
116
+ justShowMarkTooltip = !0) : (this.activeChartInstanceHoverOnMark = null, justShowMarkTooltip = !1),
117
+ this.justShowMarkTooltip = justShowMarkTooltip;
118
+ let delayRunDimensionHover = !1;
119
+ if (!1 !== prev_justShowMarkTooltip && !1 === justShowMarkTooltip ? (this.justShowMarkTooltipTimer = Date.now(),
120
+ 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,
121
+ clearTimeout(this.delayRunDimensionHoverTimer), this.delayRunDimensionHoverTimer = void 0),
122
+ "enter" === params.action || "move" === params.action || preMark !== this.activeChartInstanceHoverOnMark) {
123
+ const dimensionValue = dimensionInfo.value, indicatorsAsCol = table.options.indicatorsAsCol;
124
+ if (delayRunDimensionHover ? (clearTimeout(this.delayRunDimensionHoverTimer), this.delayRunDimensionHoverTimer = setTimeout((() => {
125
+ indicatorsAsCol ? (0, active_cell_chart_list_1.generateChartInstanceListByRowDirection)(row, dimensionValue, null, canvasXY, table, justShowMarkTooltip, !1) : (0,
126
+ active_cell_chart_list_1.generateChartInstanceListByColumnDirection)(col, dimensionValue, null, canvasXY, table, justShowMarkTooltip, !1);
127
+ }), 100)) : indicatorsAsCol ? (0, active_cell_chart_list_1.generateChartInstanceListByRowDirection)(row, dimensionValue, null, canvasXY, table, justShowMarkTooltip, !1) : (0,
128
+ active_cell_chart_list_1.generateChartInstanceListByColumnDirection)(col, dimensionValue, null, canvasXY, table, justShowMarkTooltip, !1),
129
+ indicatorsAsCol) {
130
+ const series = dimensionInfo.data[0].series, width = "histogram" === this.attribute.spec.type || "line" === series.type || "area" === series.type ? 0 : series.getYAxisHelper().getBandwidth(0);
131
+ let y = series.valueToPositionY(dimensionValue);
132
+ const axisConfig = (0, get_axis_config_1.getAxisConfigInPivotChart)(table.rowHeaderLevelCount - 1, row, table.internalProps.layoutMap);
133
+ let hoverOnLabelValue = yValue;
134
+ if ("histogram" === this.attribute.spec.type) {
135
+ const {series: series, datum: datum} = dimensionInfo.data[0];
136
+ if (datum.length > 0) {
137
+ const rangeStartValue = datum[0][series.fieldY[0]], rangeEndValue = datum[0][series.fieldY2];
138
+ hoverOnLabelValue = rangeStartValue + " ~ " + rangeEndValue, y = (series.valueToPositionY(rangeStartValue) + series.valueToPositionY(rangeEndValue)) / 2;
139
+ }
140
+ }
141
+ axisConfig.labelHoverOnAxis && table.scenegraph.getCell(table.rowHeaderLevelCount - 1, row).firstChild.showLabelHoverOnAxis(y + ("line" === series.type || "area" === series.type ? 0 : width / 2), hoverOnLabelValue);
142
+ } else {
143
+ const series = dimensionInfo.data[0].series, width = "histogram" === this.attribute.spec.type || "line" === series.type || "area" === series.type ? 0 : series.getXAxisHelper().getBandwidth(0);
144
+ let x = series.valueToPositionX(dimensionValue);
145
+ const axisConfig = (0, get_axis_config_1.getAxisConfigInPivotChart)(col, table.rowCount - table.bottomFrozenRowCount, table.internalProps.layoutMap);
146
+ let hoverOnLabelValue = dimensionValue;
147
+ if ("histogram" === this.attribute.spec.type) {
148
+ const {series: series, datum: datum} = dimensionInfo.data[0];
149
+ if (datum.length > 0) {
150
+ const rangeStartValue = datum[0][series.fieldX[0]], rangeEndValue = datum[0][series.fieldX2];
151
+ hoverOnLabelValue = rangeStartValue + " ~ " + rangeEndValue, x = (series.valueToPositionX(rangeStartValue) + series.valueToPositionX(rangeEndValue)) / 2;
152
+ }
153
+ }
154
+ axisConfig.labelHoverOnAxis && table.scenegraph.getCell(col, table.rowCount - table.bottomFrozenRowCount).firstChild.showLabelHoverOnAxis(x + width / 2, hoverOnLabelValue);
155
+ }
156
+ }
157
+ }
158
+ }
92
159
  })), null === (_e = (_d = table)._bindChartEvent) || void 0 === _e || _e.call(_d, this.activeChartInstance);
93
160
  }
94
- deactivate() {
95
- var _a, _b;
96
- this.active = !1, null === (_a = this.activeChartInstance) || void 0 === _a || _a.updateViewBox({
97
- x1: -1e3,
98
- x2: -800,
99
- y1: -1e3,
100
- y2: -800
101
- }, !1, !1), null === (_b = this.activeChartInstance) || void 0 === _b || _b.release(),
102
- this.activeChartInstance = null;
161
+ deactivate(table, {releaseChartInstance: releaseChartInstance = !0, releaseColumnChartInstance: releaseColumnChartInstance = !0, releaseRowChartInstance: releaseRowChartInstance = !0} = {}) {
162
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
163
+ if (this.activeChartInstanceHoverOnMark = null, this.justShowMarkTooltip = void 0,
164
+ this.justShowMarkTooltipTimer = Date.now(), clearTimeout(this.delayRunDimensionHoverTimer),
165
+ this.delayRunDimensionHoverTimer = void 0, releaseChartInstance) {
166
+ null === (_a = this.activeChartInstance) || void 0 === _a || _a.updateViewBox({
167
+ x1: -1e3,
168
+ x2: -800,
169
+ y1: -1e3,
170
+ y2: -800
171
+ }, !1, !1), null === (_b = this.activeChartInstance) || void 0 === _b || _b.release(),
172
+ this.activeChartInstance = null;
173
+ const {col: col, row: row} = this.parent;
174
+ table.internalProps.layoutMap.isAxisCell(table.rowHeaderLevelCount - 1, row) && (null === (_d = null === (_c = table.scenegraph.getCell(table.rowHeaderLevelCount - 1, row).firstChild) || void 0 === _c ? void 0 : _c.hideLabelHoverOnAxis) || void 0 === _d || _d.call(_c)),
175
+ table.internalProps.layoutMap.isAxisCell(col, table.rowCount - table.bottomFrozenRowCount) && (null === (_f = null === (_e = table.scenegraph.getCell(col, table.rowCount - table.bottomFrozenRowCount).firstChild) || void 0 === _e ? void 0 : _e.hideLabelHoverOnAxis) || void 0 === _f || _f.call(_e));
176
+ } else {
177
+ const {col: col, row: row} = this.parent;
178
+ releaseColumnChartInstance && table.internalProps.layoutMap.isAxisCell(col, table.rowCount - table.bottomFrozenRowCount) && (null === (_h = null === (_g = table.scenegraph.getCell(col, table.rowCount - table.bottomFrozenRowCount).firstChild) || void 0 === _g ? void 0 : _g.hideLabelHoverOnAxis) || void 0 === _h || _h.call(_g)),
179
+ releaseRowChartInstance && table.internalProps.layoutMap.isAxisCell(table.rowHeaderLevelCount - 1, row) && (null === (_k = null === (_j = table.scenegraph.getCell(table.rowHeaderLevelCount - 1, row).firstChild) || void 0 === _j ? void 0 : _j.hideLabelHoverOnAxis) || void 0 === _k || _k.call(_j));
180
+ }
181
+ releaseColumnChartInstance && (0, active_cell_chart_list_1.clearChartInstanceListByColumnDirection)(this.parent.col, "scatter" === this.attribute.spec.type ? this.parent.row : void 0, table),
182
+ releaseRowChartInstance && (0, active_cell_chart_list_1.clearChartInstanceListByRowDirection)(this.parent.row, "scatter" === this.attribute.spec.type ? this.parent.col : void 0, table);
103
183
  }
104
184
  updateData(data) {
105
185
  this.attribute.data = data;