@visactor/vstory 0.0.8-alpha.2 → 0.0.8-alpha.4
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/dsl/story-chart/line.js +1 -1
- package/cjs/dsl/story-executor/index.js +2 -0
- package/cjs/interface/type.js +2 -1
- package/cjs/player/ticker.js +2 -0
- package/cjs/story/character/chart/graphic/vchart-graphic-picker.js +2 -1
- package/cjs/story/character/chart/graphic/vchart-graphic-picker.js.map +1 -1
- package/cjs/story/character/chart/graphic/vchart-graphic.d.ts +7 -4
- package/cjs/story/character/chart/graphic/vchart-graphic.js +1 -1
- package/cjs/story/character/chart/graphic/vchart-graphic.js.map +1 -1
- package/cjs/story/utils/vchart-pick.js +2 -0
- package/cjs/story/utils/vchart-pick.js.map +1 -1
- package/dist/index.js +12 -3
- package/dist/index.min.js +1 -1
- package/es/dsl/story-chart/line.js +1 -1
- package/es/dsl/story-executor/index.js +2 -0
- package/es/interface/type.js +2 -1
- package/es/player/ticker.js +2 -0
- package/es/story/character/chart/graphic/vchart-graphic-picker.js +2 -1
- package/es/story/character/chart/graphic/vchart-graphic-picker.js.map +1 -1
- package/es/story/character/chart/graphic/vchart-graphic.d.ts +7 -4
- package/es/story/character/chart/graphic/vchart-graphic.js +2 -2
- package/es/story/character/chart/graphic/vchart-graphic.js.map +1 -1
- package/es/story/utils/vchart-pick.js +2 -0
- package/es/story/utils/vchart-pick.js.map +1 -1
- package/package.json +18 -18
package/cjs/interface/type.js
CHANGED
package/cjs/player/ticker.js
CHANGED
|
@@ -28,7 +28,8 @@ let VChartPicker = class {
|
|
|
28
28
|
const vchartStage = chart.vchart.getStage();
|
|
29
29
|
null === (_a = vchartStage.dirtyBounds) || void 0 === _a || _a.clear();
|
|
30
30
|
vchartStage.window.getViewBoxTransform().transformPoint(nextP, nextP);
|
|
31
|
-
|
|
31
|
+
const pick = vchartStage.pick(nextP.x, nextP.y);
|
|
32
|
+
return (null !== pick.graphic || "root" !== pick.group.name) && pick;
|
|
32
33
|
}
|
|
33
34
|
};
|
|
34
35
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/story/character/chart/graphic/vchart-graphic-picker.ts"],"names":[],"mappings":";;;;;;;;;AAAA,+CAA+C;AAG/C,qDAAqD;AAG9C,IAAM,YAAY,GAAlB,MAAM,YAAY;IAAlB;QACL,SAAI,GAAG,OAAO,CAAC;QACf,eAAU,GAAW,kCAAiB,CAAC;
|
|
1
|
+
{"version":3,"sources":["../src/story/character/chart/graphic/vchart-graphic-picker.ts"],"names":[],"mappings":";;;;;;;;;AAAA,+CAA+C;AAG/C,qDAAqD;AAG9C,IAAM,YAAY,GAAlB,MAAM,YAAY;IAAlB;QACL,SAAI,GAAG,OAAO,CAAC;QACf,eAAU,GAAW,kCAAiB,CAAC;IAwBzC,CAAC;IAtBC,QAAQ,CAAC,KAAU,EAAE,KAAU,EAAE,MAAoB;;QAEnD,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;QACtD,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,mBAAmB,EAAE,CAAC;QAC7D,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;QAC1G,MAAM,cAAc,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;QAC3C,MAAM,KAAK,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;QAC7B,cAAc,CAAC,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAG5C,MAAM,MAAM,GAAI,KAAe,CAAC,MAAM,CAAC;QACvC,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;QACtC,MAAA,WAAW,CAAC,WAAW,0CAAE,KAAK,EAAE,CAAC;QACjC,MAAM,aAAa,GAAG,WAAW,CAAC,MAAM,CAAC,mBAAmB,EAAE,CAAC;QAC/D,aAAa,CAAC,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAC3C,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;QAEhD,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE;YACvD,OAAO,KAAK,CAAC;SACd;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAA;AA1BY,YAAY;IADxB,IAAA,oBAAU,GAAE;GACA,YAAY,CA0BxB;AA1BY,oCAAY","file":"vchart-graphic-picker.js","sourcesContent":["import { injectable } from '@visactor/vrender';\nimport type { IGraphicPicker, IPickParams } from '@visactor/vrender';\nimport type { Chart } from './vchart-graphic';\nimport { CHART_NUMBER_TYPE } from './vchart-graphic';\n\n@injectable()\nexport class VChartPicker implements IGraphicPicker {\n type = 'chart';\n numberType: number = CHART_NUMBER_TYPE;\n\n contains(chart: any, point: any, params?: IPickParams): boolean | any {\n // 将当前的point转化到global\n const matrix = chart.parent.globalTransMatrix.clone();\n const stageMatrix = chart.stage.window.getViewBoxTransform();\n matrix.multiply(stageMatrix.a, stageMatrix.b, stageMatrix.c, stageMatrix.d, stageMatrix.e, stageMatrix.f);\n const toGlobalMatrix = matrix.getInverse();\n const nextP = { x: 0, y: 0 };\n toGlobalMatrix.transformPoint(point, nextP);\n\n // 得到 vchart stage\n const vChart = (chart as Chart).vchart;\n const vchartStage = vChart.getStage();\n vchartStage.dirtyBounds?.clear();\n const toChartMatrix = vchartStage.window.getViewBoxTransform();\n toChartMatrix.transformPoint(nextP, nextP);\n const pick = vchartStage.pick(nextP.x, nextP.y);\n // @ts-ignore\n if (pick.graphic === null && pick.group.name === 'root') {\n return false;\n }\n return pick;\n }\n}\n"]}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import type { IVisactorGraphic } from '../../visactor/interface';
|
|
2
2
|
import { Bounds, type AABBBounds, type IAABBBounds, type IBoundsLike } from '@visactor/vutils';
|
|
3
3
|
import type { IInitOption, ISpec, IVChart } from '@visactor/vchart';
|
|
4
|
-
import type { GraphicType,
|
|
5
|
-
import {
|
|
6
|
-
export interface IChartGraphicAttribute extends
|
|
4
|
+
import type { GraphicType, IGraphicAttribute, ITicker } from '@visactor/vrender';
|
|
5
|
+
import { Graphic } from '@visactor/vrender';
|
|
6
|
+
export interface IChartGraphicAttribute extends IGraphicAttribute {
|
|
7
7
|
renderCanvas: HTMLCanvasElement;
|
|
8
8
|
spec: any;
|
|
9
9
|
ClassType: any;
|
|
@@ -19,9 +19,12 @@ export interface IChartGraphicAttribute extends IGroupGraphicAttribute {
|
|
|
19
19
|
ticker?: ITicker;
|
|
20
20
|
autoRender?: boolean;
|
|
21
21
|
chartInitOptions?: any;
|
|
22
|
+
enablePickBounds?: boolean;
|
|
23
|
+
width: number;
|
|
24
|
+
height: number;
|
|
22
25
|
}
|
|
23
26
|
export declare const CHART_NUMBER_TYPE: number;
|
|
24
|
-
export declare class Chart extends
|
|
27
|
+
export declare class Chart extends Graphic implements IVisactorGraphic {
|
|
25
28
|
type: GraphicType;
|
|
26
29
|
attribute: IChartGraphicAttribute;
|
|
27
30
|
protected _vchart: IVChart;
|
|
@@ -8,7 +8,7 @@ const vutils_1 = require("@visactor/vutils"), vrender_1 = require("@visactor/vre
|
|
|
8
8
|
|
|
9
9
|
exports.CHART_NUMBER_TYPE = (0, vrender_1.genNumberType)();
|
|
10
10
|
|
|
11
|
-
class Chart extends vrender_1.
|
|
11
|
+
class Chart extends vrender_1.Graphic {
|
|
12
12
|
get vchart() {
|
|
13
13
|
return this._vchart;
|
|
14
14
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/story/character/chart/graphic/vchart-graphic.ts"],"names":[],"mappings":"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","file":"vchart-graphic.js","sourcesContent":["import type { IGroup } from '@visactor/vrender-core';\nimport type { IVisactorGraphic } from '../../visactor/interface';\nimport { Bounds, type AABBBounds, type IAABBBounds, type IBoundsLike } from '@visactor/vutils';\nimport type { IInitOption, ISpec, IVChart } from '@visactor/vchart';\nimport type { GraphicType, IGroupGraphicAttribute, ITicker } from '@visactor/vrender';\nimport { genNumberType, Group } from '@visactor/vrender';\nimport { isPointInBounds } from '../../../../util/space';\nimport { mergeChartOption } from '../../../utils/chart';\n\nconst VIEW_BOX_EXPEND = 4;\n\nexport interface IChartGraphicAttribute extends IGroupGraphicAttribute {\n renderCanvas: HTMLCanvasElement;\n spec: any;\n ClassType: any;\n vchart: IVChart;\n mode: IInitOption['mode'];\n modeParams?: any;\n dpr: number;\n interactive: boolean;\n animation: boolean;\n disableTriggerEvent: boolean;\n disableDirtyBounds: boolean;\n viewBox: IBoundsLike;\n ticker?: ITicker;\n autoRender?: boolean;\n chartInitOptions?: any;\n}\n\nexport const CHART_NUMBER_TYPE = genNumberType();\n\n// @ts-ignore\nexport class Chart extends Group implements IVisactorGraphic {\n type: GraphicType = 'chart' as any;\n declare attribute: IChartGraphicAttribute;\n protected _vchart: IVChart;\n // 是否试一次空render,目的是只生成场景树,不会真实渲染\n // protected _emptyRenderCall: boolean;\n protected declare _AABBBounds: AABBBounds;\n declare valid: boolean;\n get vchart() {\n return this._vchart;\n }\n get vProduct() {\n return this._vchart;\n }\n\n // 设置的 viewBox 是全局值\n private _globalViewBox: IBoundsLike = { x1: 0, y1: 0, x2: 100, y2: 100 };\n // 设置的 viewBox 相对于 vchart-graphic 的位置\n private _localViewBox: IBoundsLike = { x1: 0, y1: 0, x2: 100, y2: 100 };\n private _BoundsViewBox: IBoundsLike = { x1: 0, y1: 0, x2: 100, y2: 100 };\n\n drawTag = false;\n protected _boundsChangeTag: boolean = true;\n\n private _getVChartBounds() {\n const stage = this._vchart.getStage();\n return stage.defaultLayer.getChildByName('root').AABBBounds.clone();\n }\n\n getVChartActualBounds() {\n const stage = this._vchart.getStage();\n const layer = stage.defaultLayer;\n const root = stage.defaultLayer.getChildByName('root') as IGroup;\n const bounds = new Bounds();\n root.forEachChildren((child: IGroup) => {\n if (child.attribute.width || child.attribute.height) {\n child.forEachChildren((_child: IGroup) => {\n bounds.union(_child.AABBBounds);\n });\n } else {\n bounds.union(child.AABBBounds);\n }\n });\n bounds.translate(this.attribute.x + layer.attribute.x, this.attribute.y + layer.attribute.y);\n return bounds;\n }\n\n doUpdateAABBBounds(full?: boolean): IAABBBounds {\n if (!this._vchart) {\n return super.doUpdateAABBBounds();\n }\n const b = new Bounds();\n b.x1 = this.attribute.x;\n b.x2 = this.attribute.x + this.attribute.width;\n b.y1 = this.attribute.y;\n b.y2 = this.attribute.y + this.attribute.height;\n return b;\n }\n\n constructor(params: IChartGraphicAttribute) {\n super(params);\n this.numberType = CHART_NUMBER_TYPE;\n\n // 创建chart\n if (!params.vchart) {\n params.vchart = this._vchart = new params.ClassType(\n params.spec,\n mergeChartOption(\n {\n renderCanvas: params.renderCanvas,\n mode: params.mode,\n modeParams: params.modeParams,\n canvasControled: false,\n // viewBox: params.vi\n dpr: params.dpr,\n interactive: params.interactive,\n animation: false,\n autoFit: false,\n disableTriggerEvent: params.disableTriggerEvent,\n disableDirtyBounds: params.disableDirtyBounds,\n // @ts-ignore\n ticker: params.ticker,\n beforeRender: () => {\n if (!this.stage) {\n return;\n }\n const chartStage = this._vchart.getStage();\n if (!(chartStage as any)._editor_needRender) {\n chartStage.pauseRender();\n this.stage.dirtyBounds?.union(this.globalAABBBounds);\n this.stage.renderNextFrame();\n }\n },\n afterRender: () => {\n if (!this._vchart) {\n return;\n }\n if (!this.stage) {\n return;\n }\n // @ts-ignore\n this._vchart.getStage()._editor_needRender = false;\n this._vchart.getStage().stage.resumeRender();\n }\n },\n params.chartInitOptions ?? {}\n )\n );\n } else {\n this._vchart = params.vchart;\n }\n // 背景设置为false后,不会擦除画布内容,可以实现元素正常堆叠绘制\n const stage = this._vchart.getStage();\n stage.stage.pauseRender();\n this._vchart.renderSync();\n stage.stage.resumeRender();\n if (stage) {\n stage.background = false as any;\n // 关闭交互\n // stage.pauseTriggerEvent();\n }\n if (params.viewBox) {\n this.updateViewBox(params.viewBox);\n }\n }\n\n /**\n * 判定点是否在VChart中,可能点在Character里,但不在VChart里\n * @param canvasX\n * @param canvasY\n */\n pointInVChart(canvasX: number, canvasY: number): boolean {\n const vchart = this._vchart;\n if (!vchart) {\n return false;\n }\n const target = { x: 0, y: 0 };\n this.globalTransMatrix.transformPoint({ x: canvasX, y: canvasY }, target);\n // 判断点是否在viewBox中\n return isPointInBounds(target, vchart.getStage().viewBox);\n }\n\n /**\n * 判定点是否在设置 viewBox 内。设置 viewBox 会小于展示 bounds\n * @param canvasX\n * @param canvasY\n */\n pointInViewBox(canvasX: number, canvasY: number): boolean {\n const target = { x: 0, y: 0 };\n this.globalTransMatrix.transformPoint({ x: canvasX, y: canvasY }, target);\n return isPointInBounds(target, this._localViewBox);\n }\n\n updateSpec(spec: ISpec, viewBox?: IBoundsLike, forceMerge = false, morphConfig = false) {\n this._boundsChangeTag = true;\n viewBox && this.updateViewBox(viewBox);\n this._vchart.updateSpecSync(spec, forceMerge, { reuse: false, morph: morphConfig });\n this._updateViewBox();\n }\n\n updateViewBox(viewBox: IBoundsLike) {\n // 图表的设置大小\n this._globalViewBox = { ...viewBox };\n this._localViewBox = { x1: 0, y1: 0, x2: viewBox.x2 - viewBox.x1, y2: viewBox.y2 - viewBox.y1 };\n\n this._updateViewBox();\n }\n\n private _updateViewBox() {\n if (!this._vchart) {\n return;\n }\n this._boundsChangeTag = true;\n this._vchart.resize(\n this._globalViewBox.x2 - this._globalViewBox.x1,\n this._globalViewBox.y2 - this._globalViewBox.y1\n );\n const rootBounds = this._getVChartBounds();\n this._vchart.getStage().defaultLayer.translateTo(-rootBounds.x1, -rootBounds.y1);\n this._BoundsViewBox = rootBounds;\n\n const viewBox = { ...this._globalViewBox };\n this.setAttributes({\n x: viewBox.x1 + rootBounds.x1,\n y: viewBox.y1 + rootBounds.y1,\n width: rootBounds.x2 - rootBounds.x1,\n height: rootBounds.y2 - rootBounds.y1\n });\n // viewBox 在展示 bounds 下的位置\n this._localViewBox.x1 = -rootBounds.x1;\n this._localViewBox.y1 = -rootBounds.y1;\n this._localViewBox.x2 += -rootBounds.x1;\n this._localViewBox.y2 += -rootBounds.y1;\n //\n viewBox.x2 -= viewBox.x1;\n viewBox.y2 -= viewBox.y1;\n viewBox.x1 = 0;\n viewBox.y1 = 0;\n // this._vchart.resize(viewBox.x2 - viewBox.x1, viewBox.y2 - viewBox.y1);\n this._vchart.updateViewBox(viewBox);\n const renderViewBox = { ...rootBounds };\n renderViewBox.x2 -= renderViewBox.x1;\n renderViewBox.y2 -= renderViewBox.y1;\n renderViewBox.x1 = 0;\n renderViewBox.y1 = 0;\n renderViewBox.x2 += VIEW_BOX_EXPEND;\n renderViewBox.y2 += VIEW_BOX_EXPEND;\n // @ts-ignore\n this._vchart._compiler._view.renderer.setViewBox(renderViewBox, true);\n }\n\n release() {\n this._vchart && this._vchart.release();\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/story/character/chart/graphic/vchart-graphic.ts"],"names":[],"mappings":"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","file":"vchart-graphic.js","sourcesContent":["import type { IGroup } from '@visactor/vrender-core';\nimport type { IVisactorGraphic } from '../../visactor/interface';\nimport { Bounds, type AABBBounds, type IAABBBounds, type IBoundsLike } from '@visactor/vutils';\nimport type { IInitOption, ISpec, IVChart } from '@visactor/vchart';\nimport type { GraphicType, IGraphicAttribute, ITicker } from '@visactor/vrender';\nimport { genNumberType, Graphic } from '@visactor/vrender';\nimport { isPointInBounds } from '../../../../util/space';\nimport { mergeChartOption } from '../../../utils/chart';\n\nconst VIEW_BOX_EXPEND = 4;\n\nexport interface IChartGraphicAttribute extends IGraphicAttribute {\n renderCanvas: HTMLCanvasElement;\n spec: any;\n ClassType: any;\n vchart: IVChart;\n mode: IInitOption['mode'];\n modeParams?: any;\n dpr: number;\n interactive: boolean;\n animation: boolean;\n disableTriggerEvent: boolean;\n disableDirtyBounds: boolean;\n viewBox: IBoundsLike;\n ticker?: ITicker;\n autoRender?: boolean;\n chartInitOptions?: any;\n enablePickBounds?: boolean;\n width: number;\n height: number;\n}\n\nexport const CHART_NUMBER_TYPE = genNumberType();\n\n// @ts-ignore\nexport class Chart extends Graphic implements IVisactorGraphic {\n type: GraphicType = 'chart' as any;\n declare attribute: IChartGraphicAttribute;\n protected _vchart: IVChart;\n // 是否试一次空render,目的是只生成场景树,不会真实渲染\n // protected _emptyRenderCall: boolean;\n protected declare _AABBBounds: AABBBounds;\n declare valid: boolean;\n get vchart() {\n return this._vchart;\n }\n get vProduct() {\n return this._vchart;\n }\n\n // 设置的 viewBox 是全局值\n private _globalViewBox: IBoundsLike = { x1: 0, y1: 0, x2: 100, y2: 100 };\n // 设置的 viewBox 相对于 vchart-graphic 的位置\n private _localViewBox: IBoundsLike = { x1: 0, y1: 0, x2: 100, y2: 100 };\n private _BoundsViewBox: IBoundsLike = { x1: 0, y1: 0, x2: 100, y2: 100 };\n\n drawTag = false;\n protected _boundsChangeTag: boolean = true;\n\n private _getVChartBounds() {\n const stage = this._vchart.getStage();\n return stage.defaultLayer.getChildByName('root').AABBBounds.clone();\n }\n\n getVChartActualBounds() {\n const stage = this._vchart.getStage();\n const layer = stage.defaultLayer;\n const root = stage.defaultLayer.getChildByName('root') as IGroup;\n const bounds = new Bounds();\n root.forEachChildren((child: IGroup) => {\n if (child.attribute.width || child.attribute.height) {\n child.forEachChildren((_child: IGroup) => {\n bounds.union(_child.AABBBounds);\n });\n } else {\n bounds.union(child.AABBBounds);\n }\n });\n bounds.translate(this.attribute.x + layer.attribute.x, this.attribute.y + layer.attribute.y);\n return bounds;\n }\n\n doUpdateAABBBounds(full?: boolean): IAABBBounds {\n if (!this._vchart) {\n return super.doUpdateAABBBounds();\n }\n const b = new Bounds();\n b.x1 = this.attribute.x;\n b.x2 = this.attribute.x + this.attribute.width;\n b.y1 = this.attribute.y;\n b.y2 = this.attribute.y + this.attribute.height;\n return b;\n }\n\n constructor(params: IChartGraphicAttribute) {\n super(params);\n this.numberType = CHART_NUMBER_TYPE;\n\n // 创建chart\n if (!params.vchart) {\n params.vchart = this._vchart = new params.ClassType(\n params.spec,\n mergeChartOption(\n {\n renderCanvas: params.renderCanvas,\n mode: params.mode,\n modeParams: params.modeParams,\n canvasControled: false,\n // viewBox: params.vi\n dpr: params.dpr,\n interactive: params.interactive,\n animation: false,\n autoFit: false,\n disableTriggerEvent: params.disableTriggerEvent,\n disableDirtyBounds: params.disableDirtyBounds,\n // @ts-ignore\n ticker: params.ticker,\n beforeRender: () => {\n if (!this.stage) {\n return;\n }\n const chartStage = this._vchart.getStage();\n if (!(chartStage as any)._editor_needRender) {\n chartStage.pauseRender();\n this.stage.dirtyBounds?.union(this.globalAABBBounds);\n this.stage.renderNextFrame();\n }\n },\n afterRender: () => {\n if (!this._vchart) {\n return;\n }\n if (!this.stage) {\n return;\n }\n // @ts-ignore\n this._vchart.getStage()._editor_needRender = false;\n this._vchart.getStage().stage.resumeRender();\n }\n },\n params.chartInitOptions ?? {}\n )\n );\n } else {\n this._vchart = params.vchart;\n }\n // 背景设置为false后,不会擦除画布内容,可以实现元素正常堆叠绘制\n const stage = this._vchart.getStage();\n stage.stage.pauseRender();\n this._vchart.renderSync();\n stage.stage.resumeRender();\n if (stage) {\n stage.background = false as any;\n // 关闭交互\n // stage.pauseTriggerEvent();\n }\n if (params.viewBox) {\n this.updateViewBox(params.viewBox);\n }\n }\n\n /**\n * 判定点是否在VChart中,可能点在Character里,但不在VChart里\n * @param canvasX\n * @param canvasY\n */\n pointInVChart(canvasX: number, canvasY: number): boolean {\n const vchart = this._vchart;\n if (!vchart) {\n return false;\n }\n const target = { x: 0, y: 0 };\n this.globalTransMatrix.transformPoint({ x: canvasX, y: canvasY }, target);\n // 判断点是否在viewBox中\n return isPointInBounds(target, vchart.getStage().viewBox);\n }\n\n /**\n * 判定点是否在设置 viewBox 内。设置 viewBox 会小于展示 bounds\n * @param canvasX\n * @param canvasY\n */\n pointInViewBox(canvasX: number, canvasY: number): boolean {\n const target = { x: 0, y: 0 };\n this.globalTransMatrix.transformPoint({ x: canvasX, y: canvasY }, target);\n return isPointInBounds(target, this._localViewBox);\n }\n\n updateSpec(spec: ISpec, viewBox?: IBoundsLike, forceMerge = false, morphConfig = false) {\n this._boundsChangeTag = true;\n viewBox && this.updateViewBox(viewBox);\n this._vchart.updateSpecSync(spec, forceMerge, { reuse: false, morph: morphConfig });\n this._updateViewBox();\n }\n\n updateViewBox(viewBox: IBoundsLike) {\n // 图表的设置大小\n this._globalViewBox = { ...viewBox };\n this._localViewBox = { x1: 0, y1: 0, x2: viewBox.x2 - viewBox.x1, y2: viewBox.y2 - viewBox.y1 };\n\n this._updateViewBox();\n }\n\n private _updateViewBox() {\n if (!this._vchart) {\n return;\n }\n this._boundsChangeTag = true;\n this._vchart.resize(\n this._globalViewBox.x2 - this._globalViewBox.x1,\n this._globalViewBox.y2 - this._globalViewBox.y1\n );\n const rootBounds = this._getVChartBounds();\n this._vchart.getStage().defaultLayer.translateTo(-rootBounds.x1, -rootBounds.y1);\n this._BoundsViewBox = rootBounds;\n\n const viewBox = { ...this._globalViewBox };\n this.setAttributes({\n x: viewBox.x1 + rootBounds.x1,\n y: viewBox.y1 + rootBounds.y1,\n // @ts-ignore\n width: rootBounds.x2 - rootBounds.x1,\n height: rootBounds.y2 - rootBounds.y1\n });\n // viewBox 在展示 bounds 下的位置\n this._localViewBox.x1 = -rootBounds.x1;\n this._localViewBox.y1 = -rootBounds.y1;\n this._localViewBox.x2 += -rootBounds.x1;\n this._localViewBox.y2 += -rootBounds.y1;\n //\n viewBox.x2 -= viewBox.x1;\n viewBox.y2 -= viewBox.y1;\n viewBox.x1 = 0;\n viewBox.y1 = 0;\n // this._vchart.resize(viewBox.x2 - viewBox.x1, viewBox.y2 - viewBox.y1);\n this._vchart.updateViewBox(viewBox);\n const renderViewBox = { ...rootBounds };\n renderViewBox.x2 -= renderViewBox.x1;\n renderViewBox.y2 -= renderViewBox.y1;\n renderViewBox.x1 = 0;\n renderViewBox.y1 = 0;\n renderViewBox.x2 += VIEW_BOX_EXPEND;\n renderViewBox.y2 += VIEW_BOX_EXPEND;\n // @ts-ignore\n this._vchart._compiler._view.renderer.setViewBox(renderViewBox, true);\n }\n\n release() {\n this._vchart && this._vchart.release();\n }\n}\n"]}
|
|
@@ -101,6 +101,8 @@ function getChartModelWithEvent(chart, event) {
|
|
|
101
101
|
}
|
|
102
102
|
|
|
103
103
|
function getGraphicModelMark(chart, graphic, graphicPath, index) {
|
|
104
|
+
if (!graphic) return null;
|
|
105
|
+
if (graphic.layer !== chart.getStage().layer) return null;
|
|
104
106
|
const modelPick = modelCheck.find((mc => mc.check(graphic, graphicPath)));
|
|
105
107
|
return modelPick ? modelPick.modelInfo(chart, graphic, graphicPath, index) : index >= graphicPath.length - 1 ? null : getGraphicModelMark(chart, graphicPath[index + 1], graphicPath, index + 1);
|
|
106
108
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/story/utils/vchart-pick.ts"],"names":[],"mappings":"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","file":"vchart-pick.js","sourcesContent":["import type { IGraphic, IGraphicAttribute } from '@visactor/vrender';\nimport type { IVChart } from '@visactor/vchart';\nimport type { StoryEvent } from '../interface/runtime-interface';\n\nexport interface IPickModelInfo {\n type: string;\n model: any;\n specKey: string;\n specIndex: number;\n datum?: any;\n mark?: any;\n}\n\nfunction commonModelInfo(model: any) {\n return {\n type: model.type,\n model,\n specKey: model.specKey,\n specIndex: model.getSpecIndex()\n };\n}\n\nexport const seriesMarkPick = {\n check: (graphic: IGraphic, graphicPath: IGraphic[]) => {\n return graphic.name?.startsWith('seriesGroup_');\n },\n modelInfo: (chart: IVChart, graphic: IGraphic, graphicPath: IGraphic[], index: number) => {\n const nameInfo = graphic.name.split('_');\n const seriesId = +nameInfo[2];\n const markGraphic = graphicPath[index + 1];\n const markId = +markGraphic.name.split('_')[1];\n const series = chart.getChart().getSeriesInIds([seriesId])[0];\n const datum = graphicPath[graphicPath.length - 1].__vgrammar_scene_item__.data;\n return {\n type: 'seriesMark',\n model: series,\n mark: series.getMarkInId(markId),\n specKey: series.specKey,\n specIndex: series.getSpecIndex(),\n datum\n };\n }\n};\n\nexport const axisMarkPick = {\n check: (graphic: IGraphic, graphicPath: IGraphic[]) => {\n return graphic.name === 'axis' || graphic.name === 'axis-grid';\n },\n modelInfo: (chart: IVChart, graphic: IGraphic, graphicPath: IGraphic[], index: number) => {\n const axisModel = chart\n .getChart()\n .getAllComponents()\n // @ts-ignore\n .filter(c => c.specKey === 'axes');\n let axisGraphic = graphicPath.find(g => g.name === 'axis');\n if (axisGraphic) {\n // @ts-ignore\n const axis = axisModel.find(a => a._axisMark.getProduct().graphicItem === axisGraphic.parent);\n return commonModelInfo(axis);\n }\n axisGraphic = graphicPath.find(g => g.name === 'axis-grid');\n if (axisGraphic) {\n // @ts-ignore\n const axis = axisModel.find(a => a._gridMark.getProduct().graphicItem === axisGraphic.parent);\n return commonModelInfo(axis);\n }\n return null;\n }\n};\n\nconst MarkerClassName: { [key: string]: boolean } = {\n MarkLine: true,\n MarkArea: true,\n MarkPoint: true,\n MarkArcLine: true,\n MarkArcArea: true\n};\n\nconst MarkerIdPrefix: { [key: string]: boolean } = {\n markPoint: true,\n markLine: true,\n markArea: true\n};\n\nexport const markerMarkPick = {\n check: (graphic: IGraphic, graphicPath: IGraphic[]) => {\n return !!MarkerClassName[graphic.constructor.name];\n },\n modelInfo: (chart: IVChart, graphic: IGraphic, graphicPath: IGraphic[]) => {\n const split = (<string>graphic.id).split('-');\n const idPrefix = split[0];\n let model;\n if (MarkerIdPrefix[idPrefix]) {\n const markerId = +(<string>graphic.id).split('-')[1];\n model = chart\n .getChart()\n .getAllComponents()\n // @ts-ignore\n .find(c => c.id === markerId);\n } else {\n const markerUserId = graphic.id;\n model = chart\n .getChart()\n .getAllComponents()\n // @ts-ignore\n .find(c => c.userId === markerUserId);\n }\n return commonModelInfo(model);\n }\n};\n\nexport const labelMarkPick = {\n check: (graphic: IGraphic, graphicPath: IGraphic[]) => {\n return graphic.name === 'data-label';\n },\n modelInfo: (chart: IVChart, graphic: IGraphic, graphicPath: IGraphic[], index: number) => {\n const id = +graphicPath[index - 1].name.split('_')[1];\n const model = chart\n .getChart()\n .getAllComponents()\n // @ts-ignore\n .find(c => {\n if (c.type !== 'label' && c.type !== 'totalLabel') {\n return false;\n }\n return c.getMarks().some(m => m.id === id);\n });\n // @ts-ignore\n return { ...commonModelInfo(model), datum: graphicPath[graphicPath.length - 1].attribute.data };\n }\n};\n\nfunction commonModePick(vrenderGraphicClassName: string, modelName: string) {\n return {\n check: (graphic: IGraphic, graphicPath: IGraphic[]) => {\n return graphic.constructor.name === vrenderGraphicClassName;\n },\n modelInfo: (chart: IVChart, graphic: IGraphic, graphicPath: IGraphic[], index: number) => {\n return commonModelInfo(\n chart\n .getChart()\n .getAllComponents()\n // @ts-ignore\n .find(c => c.type === modelName)\n );\n }\n };\n}\n\nexport const discreteLegendMarkPick = commonModePick('DiscreteLegend', 'discreteLegend');\nexport const colorLegendMarkPick = commonModePick('ColorContinuousLegend', 'colorLegend');\nexport const sizeLegendMarkPick = commonModePick('SizeContinuousLegend', 'sizeLegend');\nexport const scrollBarMarkPick = commonModePick('ScrollBar', 'scrollBar');\nexport const titleBarMarkPick = commonModePick('Title', 'title');\nexport const continuousPlayerMarkPick = commonModePick('ContinuousPlayer', 'player');\nexport const discretePlayerMarkPick = commonModePick('DiscretePlayer', 'player');\n\nconst modelCheck: {\n check: (graphic: IGraphic, graphicPath: IGraphic[]) => boolean;\n modelInfo: (chart: IVChart, graphic: IGraphic, graphicPath: IGraphic[], index: number) => any;\n}[] = [\n seriesMarkPick,\n axisMarkPick,\n discreteLegendMarkPick,\n colorLegendMarkPick,\n sizeLegendMarkPick,\n markerMarkPick,\n scrollBarMarkPick,\n labelMarkPick,\n titleBarMarkPick,\n continuousPlayerMarkPick,\n discretePlayerMarkPick\n];\n\n/**\n * 从event属性上,读取当前pick到的图表模块内容\n * @param event\n */\nexport function getChartModelWithEvent(chart: IVChart, event: StoryEvent) {\n const graphicPath = event.detailPath[event.detailPath.length - 1] as unknown as IGraphic<\n Partial<IGraphicAttribute>\n >[];\n if (!graphicPath) {\n return null;\n }\n const pickGraphic = graphicPath?.[graphicPath.length - 1];\n if (!pickGraphic) {\n return null;\n }\n return getGraphicModelMark(chart, pickGraphic, graphicPath, 0);\n}\n\nexport function getGraphicModelMark(\n chart: IVChart,\n graphic: IGraphic,\n graphicPath: IGraphic[],\n index: number\n): IPickModelInfo {\n const modelPick = modelCheck.find(mc => mc.check(graphic, graphicPath));\n if (modelPick) {\n return modelPick.modelInfo(chart, graphic, graphicPath, index);\n }\n // @ts-ignore\n if (index >= graphicPath.length - 1) {\n return null;\n }\n\n return getGraphicModelMark(chart, graphicPath[index + 1], graphicPath, index + 1);\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/story/utils/vchart-pick.ts"],"names":[],"mappings":"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","file":"vchart-pick.js","sourcesContent":["import type { IGraphic, IGraphicAttribute } from '@visactor/vrender';\nimport type { IVChart } from '@visactor/vchart';\nimport type { StoryEvent } from '../interface/runtime-interface';\n\nexport interface IPickModelInfo {\n type: string;\n model: any;\n specKey: string;\n specIndex: number;\n datum?: any;\n mark?: any;\n}\n\nfunction commonModelInfo(model: any) {\n return {\n type: model.type,\n model,\n specKey: model.specKey,\n specIndex: model.getSpecIndex()\n };\n}\n\nexport const seriesMarkPick = {\n check: (graphic: IGraphic, graphicPath: IGraphic[]) => {\n return graphic.name?.startsWith('seriesGroup_');\n },\n modelInfo: (chart: IVChart, graphic: IGraphic, graphicPath: IGraphic[], index: number) => {\n const nameInfo = graphic.name.split('_');\n const seriesId = +nameInfo[2];\n const markGraphic = graphicPath[index + 1];\n const markId = +markGraphic.name.split('_')[1];\n const series = chart.getChart().getSeriesInIds([seriesId])[0];\n const datum = graphicPath[graphicPath.length - 1].__vgrammar_scene_item__.data;\n return {\n type: 'seriesMark',\n model: series,\n mark: series.getMarkInId(markId),\n specKey: series.specKey,\n specIndex: series.getSpecIndex(),\n datum\n };\n }\n};\n\nexport const axisMarkPick = {\n check: (graphic: IGraphic, graphicPath: IGraphic[]) => {\n return graphic.name === 'axis' || graphic.name === 'axis-grid';\n },\n modelInfo: (chart: IVChart, graphic: IGraphic, graphicPath: IGraphic[], index: number) => {\n const axisModel = chart\n .getChart()\n .getAllComponents()\n // @ts-ignore\n .filter(c => c.specKey === 'axes');\n let axisGraphic = graphicPath.find(g => g.name === 'axis');\n if (axisGraphic) {\n // @ts-ignore\n const axis = axisModel.find(a => a._axisMark.getProduct().graphicItem === axisGraphic.parent);\n return commonModelInfo(axis);\n }\n axisGraphic = graphicPath.find(g => g.name === 'axis-grid');\n if (axisGraphic) {\n // @ts-ignore\n const axis = axisModel.find(a => a._gridMark.getProduct().graphicItem === axisGraphic.parent);\n return commonModelInfo(axis);\n }\n return null;\n }\n};\n\nconst MarkerClassName: { [key: string]: boolean } = {\n MarkLine: true,\n MarkArea: true,\n MarkPoint: true,\n MarkArcLine: true,\n MarkArcArea: true\n};\n\nconst MarkerIdPrefix: { [key: string]: boolean } = {\n markPoint: true,\n markLine: true,\n markArea: true\n};\n\nexport const markerMarkPick = {\n check: (graphic: IGraphic, graphicPath: IGraphic[]) => {\n return !!MarkerClassName[graphic.constructor.name];\n },\n modelInfo: (chart: IVChart, graphic: IGraphic, graphicPath: IGraphic[]) => {\n const split = (<string>graphic.id).split('-');\n const idPrefix = split[0];\n let model;\n if (MarkerIdPrefix[idPrefix]) {\n const markerId = +(<string>graphic.id).split('-')[1];\n model = chart\n .getChart()\n .getAllComponents()\n // @ts-ignore\n .find(c => c.id === markerId);\n } else {\n const markerUserId = graphic.id;\n model = chart\n .getChart()\n .getAllComponents()\n // @ts-ignore\n .find(c => c.userId === markerUserId);\n }\n return commonModelInfo(model);\n }\n};\n\nexport const labelMarkPick = {\n check: (graphic: IGraphic, graphicPath: IGraphic[]) => {\n return graphic.name === 'data-label';\n },\n modelInfo: (chart: IVChart, graphic: IGraphic, graphicPath: IGraphic[], index: number) => {\n const id = +graphicPath[index - 1].name.split('_')[1];\n const model = chart\n .getChart()\n .getAllComponents()\n // @ts-ignore\n .find(c => {\n if (c.type !== 'label' && c.type !== 'totalLabel') {\n return false;\n }\n return c.getMarks().some(m => m.id === id);\n });\n // @ts-ignore\n return { ...commonModelInfo(model), datum: graphicPath[graphicPath.length - 1].attribute.data };\n }\n};\n\nfunction commonModePick(vrenderGraphicClassName: string, modelName: string) {\n return {\n check: (graphic: IGraphic, graphicPath: IGraphic[]) => {\n return graphic.constructor.name === vrenderGraphicClassName;\n },\n modelInfo: (chart: IVChart, graphic: IGraphic, graphicPath: IGraphic[], index: number) => {\n return commonModelInfo(\n chart\n .getChart()\n .getAllComponents()\n // @ts-ignore\n .find(c => c.type === modelName)\n );\n }\n };\n}\n\nexport const discreteLegendMarkPick = commonModePick('DiscreteLegend', 'discreteLegend');\nexport const colorLegendMarkPick = commonModePick('ColorContinuousLegend', 'colorLegend');\nexport const sizeLegendMarkPick = commonModePick('SizeContinuousLegend', 'sizeLegend');\nexport const scrollBarMarkPick = commonModePick('ScrollBar', 'scrollBar');\nexport const titleBarMarkPick = commonModePick('Title', 'title');\nexport const continuousPlayerMarkPick = commonModePick('ContinuousPlayer', 'player');\nexport const discretePlayerMarkPick = commonModePick('DiscretePlayer', 'player');\n\nconst modelCheck: {\n check: (graphic: IGraphic, graphicPath: IGraphic[]) => boolean;\n modelInfo: (chart: IVChart, graphic: IGraphic, graphicPath: IGraphic[], index: number) => any;\n}[] = [\n seriesMarkPick,\n axisMarkPick,\n discreteLegendMarkPick,\n colorLegendMarkPick,\n sizeLegendMarkPick,\n markerMarkPick,\n scrollBarMarkPick,\n labelMarkPick,\n titleBarMarkPick,\n continuousPlayerMarkPick,\n discretePlayerMarkPick\n];\n\n/**\n * 从event属性上,读取当前pick到的图表模块内容\n * @param event\n */\nexport function getChartModelWithEvent(chart: IVChart, event: StoryEvent) {\n const graphicPath = event.detailPath[event.detailPath.length - 1] as unknown as IGraphic<\n Partial<IGraphicAttribute>\n >[];\n if (!graphicPath) {\n return null;\n }\n const pickGraphic = graphicPath?.[graphicPath.length - 1];\n if (!pickGraphic) {\n return null;\n }\n return getGraphicModelMark(chart, pickGraphic, graphicPath, 0);\n}\n\nexport function getGraphicModelMark(\n chart: IVChart,\n graphic: IGraphic,\n graphicPath: IGraphic[],\n index: number\n): IPickModelInfo {\n if (!graphic) {\n return null;\n }\n if (graphic.layer !== chart.getStage().layer) {\n return null;\n }\n const modelPick = modelCheck.find(mc => mc.check(graphic, graphicPath));\n if (modelPick) {\n return modelPick.modelInfo(chart, graphic, graphicPath, index);\n }\n // @ts-ignore\n if (index >= graphicPath.length - 1) {\n return null;\n }\n\n return getGraphicModelMark(chart, graphicPath[index + 1], graphicPath, index + 1);\n}\n"]}
|
package/dist/index.js
CHANGED
|
@@ -28850,7 +28850,7 @@
|
|
|
28850
28850
|
|
|
28851
28851
|
const VIEW_BOX_EXPEND = 4;
|
|
28852
28852
|
const CHART_NUMBER_TYPE = genNumberType();
|
|
28853
|
-
class Chart extends
|
|
28853
|
+
class Chart extends Graphic$1 {
|
|
28854
28854
|
get vchart() {
|
|
28855
28855
|
return this._vchart;
|
|
28856
28856
|
}
|
|
@@ -29135,8 +29135,11 @@
|
|
|
29135
29135
|
(_a = vchartStage.dirtyBounds) === null || _a === void 0 ? void 0 : _a.clear();
|
|
29136
29136
|
const toChartMatrix = vchartStage.window.getViewBoxTransform();
|
|
29137
29137
|
toChartMatrix.transformPoint(nextP, nextP);
|
|
29138
|
-
const
|
|
29139
|
-
|
|
29138
|
+
const pick = vchartStage.pick(nextP.x, nextP.y);
|
|
29139
|
+
if (pick.graphic === null && pick.group.name === 'root') {
|
|
29140
|
+
return false;
|
|
29141
|
+
}
|
|
29142
|
+
return pick;
|
|
29140
29143
|
}
|
|
29141
29144
|
};
|
|
29142
29145
|
VChartPicker = __decorate$2([
|
|
@@ -107844,6 +107847,12 @@
|
|
|
107844
107847
|
return getGraphicModelMark(chart, pickGraphic, graphicPath, 0);
|
|
107845
107848
|
}
|
|
107846
107849
|
function getGraphicModelMark(chart, graphic, graphicPath, index) {
|
|
107850
|
+
if (!graphic) {
|
|
107851
|
+
return null;
|
|
107852
|
+
}
|
|
107853
|
+
if (graphic.layer !== chart.getStage().layer) {
|
|
107854
|
+
return null;
|
|
107855
|
+
}
|
|
107847
107856
|
const modelPick = modelCheck.find(mc => mc.check(graphic, graphicPath));
|
|
107848
107857
|
if (modelPick) {
|
|
107849
107858
|
return modelPick.modelInfo(chart, graphic, graphicPath, index);
|