@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.
@@ -35,4 +35,4 @@ class StoryLine extends chart_1.StoryChart {
35
35
  }
36
36
 
37
37
  exports.StoryLine = StoryLine;
38
- //# sourceMappingURL=line.js.map
38
+ //# sourceMappingURL=line.js.map
@@ -1 +1,3 @@
1
+
2
+
1
3
  //# sourceMappingURL=index.js.map
@@ -2,4 +2,5 @@
2
2
 
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
- });
5
+ });
6
+ //# sourceMappingURL=type.js.map
@@ -1 +1,3 @@
1
+
2
+
1
3
  //# sourceMappingURL=ticker.js.map
@@ -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
- return vchartStage.pick(nextP.x, nextP.y);
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;IAoBzC,CAAC;IAlBC,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,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;QACnD,OAAO,OAAO,CAAC;IACjB,CAAC;CACF,CAAA;AAtBY,YAAY;IADxB,IAAA,oBAAU,GAAE;GACA,YAAY,CAsBxB;AAtBY,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 graphic = vchartStage.pick(nextP.x, nextP.y);\n return graphic;\n }\n}\n"]}
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, IGroupGraphicAttribute, ITicker } from '@visactor/vrender';
5
- import { Group } from '@visactor/vrender';
6
- export interface IChartGraphicAttribute extends IGroupGraphicAttribute {
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 Group implements IVisactorGraphic {
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.Group {
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 Group$1 {
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 graphic = vchartStage.pick(nextP.x, nextP.y);
29139
- return graphic;
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);