@visactor/vstory 0.0.8-alpha.2 → 0.0.8-alpha.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/cjs/dsl/story-chart/line.js +1 -1
  2. package/cjs/dsl/story-chart/pie.js +1 -1
  3. package/cjs/dsl/story-processor/index.js +1 -1
  4. package/cjs/dsl/story-processor/processor.js +1 -1
  5. package/cjs/dsl/types/Datum.js +1 -2
  6. package/cjs/dsl/types/index.js +1 -1
  7. package/cjs/dsl/utils/datum.js +1 -1
  8. package/cjs/dsl/utils/flicker.js +1 -1
  9. package/cjs/edit/edit-component/common.js +2 -0
  10. package/cjs/edit/edit-component/image-selection.js +1 -1
  11. package/cjs/edit/edit-component/index.js +1 -1
  12. package/cjs/edit/edit-component/layer-edit.js +2 -0
  13. package/cjs/edit/edit-component/rect-selection.js +1 -1
  14. package/cjs/edit/edit-component/richtext-selection-common.js +1 -1
  15. package/cjs/edit/edit-component/richtext-selection.js +1 -1
  16. package/cjs/edit/edit-component/shape-selection.js +1 -1
  17. package/cjs/edit/edit-component/text-selection.js +2 -1
  18. package/cjs/story/canvas/canvas.js +1 -1
  19. package/cjs/story/character/chart/graphic/vchart-graphic-picker.js +2 -1
  20. package/cjs/story/character/chart/graphic/vchart-graphic-picker.js.map +1 -1
  21. package/cjs/story/character/chart/graphic/vchart-graphic.d.ts +5 -4
  22. package/cjs/story/character/chart/graphic/vchart-graphic.js +1 -1
  23. package/cjs/story/character/chart/graphic/vchart-graphic.js.map +1 -1
  24. package/cjs/story/utils/vchart-pick.js +2 -0
  25. package/cjs/story/utils/vchart-pick.js.map +1 -1
  26. package/dist/index.js +19119 -21645
  27. package/dist/index.min.js +3 -3
  28. package/es/dsl/story-chart/line.js +1 -1
  29. package/es/dsl/story-chart/pie.js +1 -1
  30. package/es/dsl/story-processor/index.js +1 -1
  31. package/es/dsl/story-processor/processor.js +1 -1
  32. package/es/dsl/types/Datum.js +1 -2
  33. package/es/dsl/types/index.js +1 -1
  34. package/es/dsl/utils/datum.js +1 -1
  35. package/es/dsl/utils/flicker.js +1 -1
  36. package/es/edit/edit-component/common.js +2 -0
  37. package/es/edit/edit-component/image-selection.js +1 -1
  38. package/es/edit/edit-component/index.js +1 -1
  39. package/es/edit/edit-component/layer-edit.js +2 -0
  40. package/es/edit/edit-component/rect-selection.js +1 -1
  41. package/es/edit/edit-component/richtext-selection-common.js +1 -1
  42. package/es/edit/edit-component/richtext-selection.js +1 -1
  43. package/es/edit/edit-component/shape-selection.js +1 -1
  44. package/es/edit/edit-component/text-selection.js +2 -1
  45. package/es/story/canvas/canvas.js +1 -1
  46. package/es/story/character/chart/graphic/vchart-graphic-picker.js +2 -1
  47. package/es/story/character/chart/graphic/vchart-graphic-picker.js.map +1 -1
  48. package/es/story/character/chart/graphic/vchart-graphic.d.ts +5 -4
  49. package/es/story/character/chart/graphic/vchart-graphic.js +2 -2
  50. package/es/story/character/chart/graphic/vchart-graphic.js.map +1 -1
  51. package/es/story/utils/vchart-pick.js +2 -0
  52. package/es/story/utils/vchart-pick.js.map +1 -1
  53. package/package.json +5 -5
@@ -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
@@ -24,4 +24,4 @@ class StoryPie extends chart_1.StoryChart {
24
24
  }
25
25
 
26
26
  exports.StoryPie = StoryPie;
27
- //# sourceMappingURL=pie.js.map
27
+ //# sourceMappingURL=pie.js.map
@@ -27,4 +27,4 @@ Object.defineProperty(exports, "processorMap", {
27
27
  return processorMap_1.processorMap;
28
28
  }
29
29
  });
30
- //# sourceMappingURL=index.js.map
30
+ //# sourceMappingURL=index.js.map
@@ -67,4 +67,4 @@ class ActionProcessor {
67
67
  }
68
68
 
69
69
  exports.ActionProcessor = ActionProcessor, ActionProcessor._instance = null;
70
- //# sourceMappingURL=processor.js.map
70
+ //# sourceMappingURL=processor.js.map
@@ -2,5 +2,4 @@
2
2
 
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
- });
6
- //# sourceMappingURL=Datum.js.map
5
+ });
@@ -19,4 +19,4 @@ Object.defineProperty(exports, "__esModule", {
19
19
  value: !0
20
20
  }), __exportStar(require("./common"), exports), __exportStar(require("./chart"), exports),
21
21
  __exportStar(require("./graphic"), exports);
22
- //# sourceMappingURL=index.js.map
22
+ //# sourceMappingURL=index.js.map
@@ -13,4 +13,4 @@ const vutils_1 = require("@visactor/vutils"), isDatumEqual = (source, target) =>
13
13
  };
14
14
 
15
15
  exports.isDatumEqual = isDatumEqual;
16
- //# sourceMappingURL=datum.js.map
16
+ //# sourceMappingURL=datum.js.map
@@ -15,4 +15,4 @@ const flickerEffect = group => {
15
15
  };
16
16
 
17
17
  exports.flickerEffect = flickerEffect;
18
- //# sourceMappingURL=flicker.js.map
18
+ //# sourceMappingURL=flicker.js.map
@@ -1 +1,3 @@
1
+
2
+
1
3
  //# sourceMappingURL=common.js.map
@@ -13,4 +13,4 @@ class ImageSelection extends rect_selection_1.RectSelection {
13
13
  }
14
14
 
15
15
  exports.ImageSelection = ImageSelection;
16
- //# sourceMappingURL=image-selection.js.map
16
+ //# sourceMappingURL=image-selection.js.map
@@ -13,4 +13,4 @@ function loadAllSelection() {
13
13
  }
14
14
 
15
15
  exports.loadAllSelection = loadAllSelection;
16
- //# sourceMappingURL=index.js.map
16
+ //# sourceMappingURL=index.js.map
@@ -1 +1,3 @@
1
+
2
+
1
3
  //# sourceMappingURL=layer-edit.js.map
@@ -27,4 +27,4 @@ class RectSelection extends richtext_selection_common_1.RichTextSelectionCommon
27
27
  }
28
28
 
29
29
  exports.RectSelection = RectSelection;
30
- //# sourceMappingURL=rect-selection.js.map
30
+ //# sourceMappingURL=rect-selection.js.map
@@ -32,4 +32,4 @@ class RichTextSelectionCommon extends base_selection_1.BaseSelection {
32
32
  }
33
33
 
34
34
  exports.RichTextSelectionCommon = RichTextSelectionCommon, (0, vutils_1.mixin)(RichTextSelectionCommon, richtext_1.RichTextMixin);
35
- //# sourceMappingURL=richtext-selection-common.js.map
35
+ //# sourceMappingURL=richtext-selection-common.js.map
@@ -30,4 +30,4 @@ class RichTextSelection extends base_selection_1.BaseSelection {
30
30
  }
31
31
 
32
32
  exports.RichTextSelection = RichTextSelection;
33
- //# sourceMappingURL=richtext-selection.js.map
33
+ //# sourceMappingURL=richtext-selection.js.map
@@ -33,4 +33,4 @@ class ShapeSelection extends rect_selection_1.RectSelection {
33
33
  }
34
34
 
35
35
  exports.ShapeSelection = ShapeSelection;
36
- //# sourceMappingURL=shape-selection.js.map
36
+ //# sourceMappingURL=shape-selection.js.map
@@ -19,4 +19,5 @@ class TextSelection extends base_selection_1.BaseSelection {
19
19
  }
20
20
  }
21
21
 
22
- exports.TextSelection = TextSelection;
22
+ exports.TextSelection = TextSelection;
23
+ //# sourceMappingURL=text-selection.js.map
@@ -82,4 +82,4 @@ class StoryCanvas {
82
82
  }
83
83
 
84
84
  exports.StoryCanvas = StoryCanvas;
85
- //# sourceMappingURL=canvas.js.map
85
+ //# sourceMappingURL=canvas.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 || !0 === chart.attribute.enablePickBounds) && 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,IAAI,KAAK,CAAC,SAAS,CAAC,gBAAgB,KAAK,IAAI,EAAE;YACpG,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' && chart.attribute.enablePickBounds !== true) {\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, IRectGraphicAttribute, ITicker } from '@visactor/vrender';
5
+ import { Rect } from '@visactor/vrender';
6
+ export interface IChartGraphicAttribute extends IRectGraphicAttribute {
7
7
  renderCanvas: HTMLCanvasElement;
8
8
  spec: any;
9
9
  ClassType: any;
@@ -19,9 +19,10 @@ export interface IChartGraphicAttribute extends IGroupGraphicAttribute {
19
19
  ticker?: ITicker;
20
20
  autoRender?: boolean;
21
21
  chartInitOptions?: any;
22
+ enablePickBounds?: boolean;
22
23
  }
23
24
  export declare const CHART_NUMBER_TYPE: number;
24
- export declare class Chart extends Group implements IVisactorGraphic {
25
+ export declare class Chart extends Rect implements IVisactorGraphic {
25
26
  type: GraphicType;
26
27
  attribute: IChartGraphicAttribute;
27
28
  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.Rect {
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, IRectGraphicAttribute, ITicker } from '@visactor/vrender';\nimport { genNumberType, Rect } from '@visactor/vrender';\nimport { isPointInBounds } from '../../../../util/space';\nimport { mergeChartOption } from '../../../utils/chart';\n\nconst VIEW_BOX_EXPEND = 4;\n\nexport interface IChartGraphicAttribute extends IRectGraphicAttribute {\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 // 是否支持bounds选中。默认为false,不会选中图表的无内容部分。\n enablePickBounds?: boolean;\n}\n\nexport const CHART_NUMBER_TYPE = genNumberType();\n\n// @ts-ignore\nexport class Chart extends Rect 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"]}
@@ -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":";;;AAaA,SAAS,eAAe,CAAC,KAAU;IACjC,OAAO;QACL,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,KAAK;QACL,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,SAAS,EAAE,KAAK,CAAC,YAAY,EAAE;KAChC,CAAC;AACJ,CAAC;AAEY,QAAA,cAAc,GAAG;IAC5B,KAAK,EAAE,CAAC,OAAiB,EAAE,WAAuB,EAAE,EAAE;;QACpD,OAAO,MAAA,OAAO,CAAC,IAAI,0CAAE,UAAU,CAAC,cAAc,CAAC,CAAC;IAClD,CAAC;IACD,SAAS,EAAE,CAAC,KAAc,EAAE,OAAiB,EAAE,WAAuB,EAAE,KAAa,EAAE,EAAE;QACvF,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACzC,MAAM,QAAQ,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC9B,MAAM,WAAW,GAAG,WAAW,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QAC3C,MAAM,MAAM,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/C,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9D,MAAM,KAAK,GAAG,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,uBAAuB,CAAC,IAAI,CAAC;QAC/E,OAAO;YACL,IAAI,EAAE,YAAY;YAClB,KAAK,EAAE,MAAM;YACb,IAAI,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC;YAChC,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,SAAS,EAAE,MAAM,CAAC,YAAY,EAAE;YAChC,KAAK;SACN,CAAC;IACJ,CAAC;CACF,CAAC;AAEW,QAAA,YAAY,GAAG;IAC1B,KAAK,EAAE,CAAC,OAAiB,EAAE,WAAuB,EAAE,EAAE;QACpD,OAAO,OAAO,CAAC,IAAI,KAAK,MAAM,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW,CAAC;IACjE,CAAC;IACD,SAAS,EAAE,CAAC,KAAc,EAAE,OAAiB,EAAE,WAAuB,EAAE,KAAa,EAAE,EAAE;QACvF,MAAM,SAAS,GAAG,KAAK;aACpB,QAAQ,EAAE;aACV,gBAAgB,EAAE;aAElB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC;QACrC,IAAI,WAAW,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;QAC3D,IAAI,WAAW,EAAE;YAEf,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC,WAAW,KAAK,WAAW,CAAC,MAAM,CAAC,CAAC;YAC9F,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC;SAC9B;QACD,WAAW,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC;QAC5D,IAAI,WAAW,EAAE;YAEf,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC,WAAW,KAAK,WAAW,CAAC,MAAM,CAAC,CAAC;YAC9F,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC;SAC9B;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAC;AAEF,MAAM,eAAe,GAA+B;IAClD,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,SAAS,EAAE,IAAI;IACf,WAAW,EAAE,IAAI;IACjB,WAAW,EAAE,IAAI;CAClB,CAAC;AAEF,MAAM,cAAc,GAA+B;IACjD,SAAS,EAAE,IAAI;IACf,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;CACf,CAAC;AAEW,QAAA,cAAc,GAAG;IAC5B,KAAK,EAAE,CAAC,OAAiB,EAAE,WAAuB,EAAE,EAAE;QACpD,OAAO,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACrD,CAAC;IACD,SAAS,EAAE,CAAC,KAAc,EAAE,OAAiB,EAAE,WAAuB,EAAE,EAAE;QACxE,MAAM,KAAK,GAAY,OAAO,CAAC,EAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC9C,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAC1B,IAAI,KAAK,CAAC;QACV,IAAI,cAAc,CAAC,QAAQ,CAAC,EAAE;YAC5B,MAAM,QAAQ,GAAG,CAAU,OAAO,CAAC,EAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACrD,KAAK,GAAG,KAAK;iBACV,QAAQ,EAAE;iBACV,gBAAgB,EAAE;iBAElB,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC;SACjC;aAAM;YACL,MAAM,YAAY,GAAG,OAAO,CAAC,EAAE,CAAC;YAChC,KAAK,GAAG,KAAK;iBACV,QAAQ,EAAE;iBACV,gBAAgB,EAAE;iBAElB,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,YAAY,CAAC,CAAC;SACzC;QACD,OAAO,eAAe,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;CACF,CAAC;AAEW,QAAA,aAAa,GAAG;IAC3B,KAAK,EAAE,CAAC,OAAiB,EAAE,WAAuB,EAAE,EAAE;QACpD,OAAO,OAAO,CAAC,IAAI,KAAK,YAAY,CAAC;IACvC,CAAC;IACD,SAAS,EAAE,CAAC,KAAc,EAAE,OAAiB,EAAE,WAAuB,EAAE,KAAa,EAAE,EAAE;QACvF,MAAM,EAAE,GAAG,CAAC,WAAW,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACtD,MAAM,KAAK,GAAG,KAAK;aAChB,QAAQ,EAAE;aACV,gBAAgB,EAAE;aAElB,IAAI,CAAC,CAAC,CAAC,EAAE;YACR,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,CAAC,IAAI,KAAK,YAAY,EAAE;gBACjD,OAAO,KAAK,CAAC;aACd;YACD,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEL,uCAAY,eAAe,CAAC,KAAK,CAAC,KAAE,KAAK,EAAE,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,IAAG;IAClG,CAAC;CACF,CAAC;AAEF,SAAS,cAAc,CAAC,uBAA+B,EAAE,SAAiB;IACxE,OAAO;QACL,KAAK,EAAE,CAAC,OAAiB,EAAE,WAAuB,EAAE,EAAE;YACpD,OAAO,OAAO,CAAC,WAAW,CAAC,IAAI,KAAK,uBAAuB,CAAC;QAC9D,CAAC;QACD,SAAS,EAAE,CAAC,KAAc,EAAE,OAAiB,EAAE,WAAuB,EAAE,KAAa,EAAE,EAAE;YACvF,OAAO,eAAe,CACpB,KAAK;iBACF,QAAQ,EAAE;iBACV,gBAAgB,EAAE;iBAElB,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CACnC,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC;AAEY,QAAA,sBAAsB,GAAG,cAAc,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;AAC5E,QAAA,mBAAmB,GAAG,cAAc,CAAC,uBAAuB,EAAE,aAAa,CAAC,CAAC;AAC7E,QAAA,kBAAkB,GAAG,cAAc,CAAC,sBAAsB,EAAE,YAAY,CAAC,CAAC;AAC1E,QAAA,iBAAiB,GAAG,cAAc,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;AAC7D,QAAA,gBAAgB,GAAG,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AACpD,QAAA,wBAAwB,GAAG,cAAc,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAC;AACxE,QAAA,sBAAsB,GAAG,cAAc,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC;AAEjF,MAAM,UAAU,GAGV;IACJ,sBAAc;IACd,oBAAY;IACZ,8BAAsB;IACtB,2BAAmB;IACnB,0BAAkB;IAClB,sBAAc;IACd,yBAAiB;IACjB,qBAAa;IACb,wBAAgB;IAChB,gCAAwB;IACxB,8BAAsB;CACvB,CAAC;AAMF,SAAgB,sBAAsB,CAAC,KAAc,EAAE,KAAiB;IACtE,MAAM,WAAW,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAE7D,CAAC;IACJ,IAAI,CAAC,WAAW,EAAE;QAChB,OAAO,IAAI,CAAC;KACb;IACD,MAAM,WAAW,GAAG,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAG,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC1D,IAAI,CAAC,WAAW,EAAE;QAChB,OAAO,IAAI,CAAC;KACb;IACD,OAAO,mBAAmB,CAAC,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;AACjE,CAAC;AAZD,wDAYC;AAED,SAAgB,mBAAmB,CACjC,KAAc,EACd,OAAiB,EACjB,WAAuB,EACvB,KAAa;IAEb,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC;IACxE,IAAI,SAAS,EAAE;QACb,OAAO,SAAS,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;KAChE;IAED,IAAI,KAAK,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;QACnC,OAAO,IAAI,CAAC;KACb;IAED,OAAO,mBAAmB,CAAC,KAAK,EAAE,WAAW,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;AACpF,CAAC;AAhBD,kDAgBC","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"]}