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.
- package/cjs/ListTable.d.ts +1 -0
- package/cjs/ListTable.js +17 -7
- package/cjs/ListTable.js.map +1 -1
- package/cjs/PivotChart.js +6 -6
- package/cjs/PivotChart.js.map +1 -1
- package/cjs/PivotTable-all.js +5 -5
- package/cjs/PivotTable-all.js.map +1 -1
- package/cjs/PivotTable.js +14 -8
- package/cjs/PivotTable.js.map +1 -1
- package/cjs/components/axis/axis.d.ts +5 -3
- package/cjs/components/axis/axis.js +20 -14
- package/cjs/components/axis/axis.js.map +1 -1
- package/cjs/components/axis/get-axis-attributes.d.ts +1 -0
- package/cjs/components/axis/get-axis-attributes.js +5 -2
- package/cjs/components/axis/get-axis-attributes.js.map +1 -1
- package/cjs/components/axis/get-axis-component-size.js +11 -5
- package/cjs/components/axis/get-axis-component-size.js.map +1 -1
- package/cjs/core/BaseTable.d.ts +3 -3
- package/cjs/core/BaseTable.js +16 -13
- package/cjs/core/BaseTable.js.map +1 -1
- package/cjs/core/TABLE_EVENT_TYPE.d.ts +2 -0
- package/cjs/core/TABLE_EVENT_TYPE.js +3 -1
- package/cjs/core/TABLE_EVENT_TYPE.js.map +1 -1
- package/cjs/data/DataSource.d.ts +1 -1
- package/cjs/data/DataSource.js +2 -2
- package/cjs/data/DataSource.js.map +1 -1
- package/cjs/dataset/dataset.js +13 -4
- package/cjs/dataset/dataset.js.map +1 -1
- package/cjs/edit/edit-manager.d.ts +3 -2
- package/cjs/edit/edit-manager.js +36 -6
- package/cjs/edit/edit-manager.js.map +1 -1
- package/cjs/event/event.d.ts +9 -0
- package/cjs/event/event.js +161 -85
- package/cjs/event/event.js.map +1 -1
- package/cjs/event/listener/container-dom.js +15 -7
- package/cjs/event/listener/container-dom.js.map +1 -1
- package/cjs/event/self-event-listener/pivot-chart/axis-hover.js +1 -1
- package/cjs/event/self-event-listener/pivot-chart/axis-hover.js.map +1 -1
- package/cjs/event/util.d.ts +1 -0
- package/cjs/event/util.js +13 -2
- package/cjs/event/util.js.map +1 -1
- package/cjs/index.d.ts +1 -1
- package/cjs/index.js +1 -1
- package/cjs/index.js.map +1 -1
- package/cjs/layout/chart-helper/get-axis-config.js +40 -25
- package/cjs/layout/chart-helper/get-axis-config.js.map +1 -1
- package/cjs/layout/chart-helper/get-chart-spec.js +6 -2
- package/cjs/layout/chart-helper/get-chart-spec.js.map +1 -1
- package/cjs/layout/pivot-header-layout.d.ts +4 -1
- package/cjs/layout/pivot-header-layout.js +55 -22
- package/cjs/layout/pivot-header-layout.js.map +1 -1
- package/cjs/plugins/index.js +1 -1
- package/cjs/plugins/plugin-manager.d.ts +2 -0
- package/cjs/plugins/plugin-manager.js +13 -6
- package/cjs/plugins/plugin-manager.js.map +1 -1
- package/cjs/scenegraph/component/menu.d.ts +41 -0
- package/cjs/scenegraph/component/table-component.d.ts +2 -0
- package/cjs/scenegraph/component/table-component.js +39 -9
- package/cjs/scenegraph/component/table-component.js.map +1 -1
- package/cjs/scenegraph/debug-tool/debug-tool.js +1 -1
- package/cjs/scenegraph/debug-tool/debug-tool.js.map +1 -1
- package/cjs/scenegraph/graphic/active-cell-chart-list.d.ts +13 -0
- package/cjs/scenegraph/graphic/active-cell-chart-list.js +152 -0
- package/cjs/scenegraph/graphic/active-cell-chart-list.js.map +1 -0
- package/cjs/scenegraph/graphic/chart.d.ts +9 -2
- package/cjs/scenegraph/graphic/chart.js +95 -15
- package/cjs/scenegraph/graphic/chart.js.map +1 -1
- package/cjs/scenegraph/graphic/contributions/chart-render-helper.js +2 -1
- package/cjs/scenegraph/graphic/contributions/chart-render-helper.js.map +1 -1
- package/cjs/scenegraph/graphic/contributions/chart-render.js +3 -3
- package/cjs/scenegraph/graphic/contributions/chart-render.js.map +1 -1
- package/cjs/scenegraph/group-creater/cell-helper.js +3 -3
- package/cjs/scenegraph/group-creater/cell-helper.js.map +1 -1
- package/cjs/scenegraph/group-creater/column-helper.js +1 -1
- package/cjs/scenegraph/group-creater/column-helper.js.map +1 -1
- package/cjs/scenegraph/layout/compute-col-width.js +1 -1
- package/cjs/scenegraph/layout/compute-col-width.js.map +1 -1
- package/cjs/scenegraph/layout/frozen.js +4 -4
- package/cjs/scenegraph/layout/frozen.js.map +1 -1
- package/cjs/scenegraph/layout/update-width.js +1 -1
- package/cjs/scenegraph/layout/update-width.js.map +1 -1
- package/cjs/scenegraph/refresh-node/update-chart.js +2 -2
- package/cjs/scenegraph/refresh-node/update-chart.js.map +1 -1
- package/cjs/scenegraph/scenegraph.js +9 -2
- package/cjs/scenegraph/scenegraph.js.map +1 -1
- package/cjs/scenegraph/utils/text-measure.d.ts +38 -0
- package/cjs/state/state.js +15 -23
- package/cjs/state/state.js.map +1 -1
- package/cjs/themes/theme-define.js +22 -16
- package/cjs/themes/theme-define.js.map +1 -1
- package/cjs/ts-types/base-table.d.ts +5 -3
- package/cjs/ts-types/base-table.js.map +1 -1
- package/cjs/ts-types/events.d.ts +8 -0
- package/cjs/ts-types/events.js.map +1 -1
- package/cjs/ts-types/list-table/define/index.d.ts +9 -2
- package/cjs/ts-types/list-table/define/index.js.map +1 -1
- package/cjs/ts-types/table-engine.d.ts +17 -0
- package/cjs/ts-types/table-engine.js.map +1 -1
- package/cjs/ts-types/theme.d.ts +12 -4
- package/cjs/ts-types/theme.js.map +1 -1
- package/cjs/vrender.js.map +1 -1
- package/dist/vtable.js +25073 -25724
- package/dist/vtable.min.js +2 -2
- package/es/ListTable.d.ts +1 -0
- package/es/ListTable.js +18 -8
- package/es/ListTable.js.map +1 -1
- package/es/PivotChart.js +6 -6
- package/es/PivotChart.js.map +1 -1
- package/es/PivotTable-all.js +5 -3
- package/es/PivotTable-all.js.map +1 -1
- package/es/PivotTable.js +14 -8
- package/es/PivotTable.js.map +1 -1
- package/es/components/axis/axis.d.ts +5 -3
- package/es/components/axis/axis.js +19 -12
- package/es/components/axis/axis.js.map +1 -1
- package/es/components/axis/get-axis-attributes.d.ts +1 -0
- package/es/components/axis/get-axis-attributes.js +5 -2
- package/es/components/axis/get-axis-attributes.js.map +1 -1
- package/es/components/axis/get-axis-component-size.js +12 -4
- package/es/components/axis/get-axis-component-size.js.map +1 -1
- package/es/core/BaseTable.d.ts +3 -3
- package/es/core/BaseTable.js +16 -13
- package/es/core/BaseTable.js.map +1 -1
- package/es/core/TABLE_EVENT_TYPE.d.ts +2 -0
- package/es/core/TABLE_EVENT_TYPE.js +3 -1
- package/es/core/TABLE_EVENT_TYPE.js.map +1 -1
- package/es/data/DataSource.d.ts +1 -1
- package/es/data/DataSource.js +2 -2
- package/es/data/DataSource.js.map +1 -1
- package/es/dataset/dataset.js +12 -4
- package/es/dataset/dataset.js.map +1 -1
- package/es/edit/edit-manager.d.ts +3 -2
- package/es/edit/edit-manager.js +36 -6
- package/es/edit/edit-manager.js.map +1 -1
- package/es/event/event.d.ts +9 -0
- package/es/event/event.js +161 -85
- package/es/event/event.js.map +1 -1
- package/es/event/listener/container-dom.js +15 -7
- package/es/event/listener/container-dom.js.map +1 -1
- package/es/event/self-event-listener/pivot-chart/axis-hover.js +1 -1
- package/es/event/self-event-listener/pivot-chart/axis-hover.js.map +1 -1
- package/es/event/util.d.ts +1 -0
- package/es/event/util.js +11 -0
- package/es/event/util.js.map +1 -1
- package/es/index.d.ts +1 -1
- package/es/index.js +1 -1
- package/es/index.js.map +1 -1
- package/es/layout/chart-helper/get-axis-config.js +39 -24
- package/es/layout/chart-helper/get-axis-config.js.map +1 -1
- package/es/layout/chart-helper/get-chart-spec.js +5 -3
- package/es/layout/chart-helper/get-chart-spec.js.map +1 -1
- package/es/layout/pivot-header-layout.d.ts +4 -1
- package/es/layout/pivot-header-layout.js +53 -21
- package/es/layout/pivot-header-layout.js.map +1 -1
- package/es/plugins/index.js +1 -1
- package/es/plugins/plugin-manager.d.ts +2 -0
- package/es/plugins/plugin-manager.js +13 -6
- package/es/plugins/plugin-manager.js.map +1 -1
- package/es/scenegraph/component/menu.d.ts +41 -0
- package/es/scenegraph/component/table-component.d.ts +2 -0
- package/es/scenegraph/component/table-component.js +39 -9
- package/es/scenegraph/component/table-component.js.map +1 -1
- package/es/scenegraph/debug-tool/debug-tool.js +1 -1
- package/es/scenegraph/debug-tool/debug-tool.js.map +1 -1
- package/es/scenegraph/graphic/active-cell-chart-list.d.ts +13 -0
- package/es/scenegraph/graphic/active-cell-chart-list.js +141 -0
- package/es/scenegraph/graphic/active-cell-chart-list.js.map +1 -0
- package/es/scenegraph/graphic/chart.d.ts +9 -2
- package/es/scenegraph/graphic/chart.js +95 -14
- package/es/scenegraph/graphic/chart.js.map +1 -1
- package/es/scenegraph/graphic/contributions/chart-render-helper.js +2 -1
- package/es/scenegraph/graphic/contributions/chart-render-helper.js.map +1 -1
- package/es/scenegraph/graphic/contributions/chart-render.js +3 -3
- package/es/scenegraph/graphic/contributions/chart-render.js.map +1 -1
- package/es/scenegraph/group-creater/cell-helper.js +3 -3
- package/es/scenegraph/group-creater/cell-helper.js.map +1 -1
- package/es/scenegraph/group-creater/column-helper.js +1 -1
- package/es/scenegraph/group-creater/column-helper.js.map +1 -1
- package/es/scenegraph/layout/compute-col-width.js +1 -1
- package/es/scenegraph/layout/compute-col-width.js.map +1 -1
- package/es/scenegraph/layout/frozen.js +4 -4
- package/es/scenegraph/layout/frozen.js.map +1 -1
- package/es/scenegraph/layout/update-width.js +1 -1
- package/es/scenegraph/layout/update-width.js.map +1 -1
- package/es/scenegraph/refresh-node/update-chart.js +2 -2
- package/es/scenegraph/refresh-node/update-chart.js.map +1 -1
- package/es/scenegraph/scenegraph.js +9 -2
- package/es/scenegraph/scenegraph.js.map +1 -1
- package/es/scenegraph/utils/text-measure.d.ts +38 -0
- package/es/state/state.js +15 -23
- package/es/state/state.js.map +1 -1
- package/es/themes/theme-define.js +18 -12
- package/es/themes/theme-define.js.map +1 -1
- package/es/ts-types/base-table.d.ts +5 -3
- package/es/ts-types/base-table.js.map +1 -1
- package/es/ts-types/events.d.ts +8 -0
- package/es/ts-types/events.js.map +1 -1
- package/es/ts-types/list-table/define/index.d.ts +9 -2
- package/es/ts-types/list-table/define/index.js.map +1 -1
- package/es/ts-types/table-engine.d.ts +17 -0
- package/es/ts-types/table-engine.js.map +1 -1
- package/es/ts-types/theme.d.ts +12 -4
- package/es/ts-types/theme.js.map +1 -1
- package/es/vrender.js.map +1 -1
- package/package.json +11 -11
- package/cjs/layout/pivot-layout.d.ts +0 -1
- package/cjs/layout/pivot-layout.js +0 -1
- package/cjs/layout/pivot-layout.js.map +0 -1
- package/es/layout/pivot-layout.d.ts +0 -1
- package/es/layout/pivot-layout.js +0 -1
- 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
|
-
|
|
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(
|
|
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.
|
|
14
|
-
this.
|
|
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.
|
|
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.
|
|
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.
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
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;
|