@visactor/vstory 0.0.8-alpha.10 → 0.0.8-alpha.11
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/types/Datum.js +1 -2
- package/cjs/dsl/utils/datum.js +2 -1
- package/cjs/interface/type.js +1 -2
- package/cjs/player/encode.js +0 -2
- package/cjs/story/character/chart/graphic/vchart-graphic.d.ts +1 -0
- package/cjs/story/character/chart/graphic/vchart-graphic.js +9 -3
- package/cjs/story/character/chart/graphic/vchart-graphic.js.map +1 -1
- package/dist/index.js +22 -8
- package/dist/index.min.js +1 -1
- package/es/dsl/types/Datum.js +1 -2
- package/es/dsl/utils/datum.js +2 -1
- package/es/interface/type.js +1 -2
- package/es/player/encode.js +0 -2
- package/es/story/character/chart/graphic/vchart-graphic.d.ts +1 -0
- package/es/story/character/chart/graphic/vchart-graphic.js +9 -3
- package/es/story/character/chart/graphic/vchart-graphic.js.map +1 -1
- package/package.json +3 -3
package/cjs/dsl/types/Datum.js
CHANGED
package/cjs/dsl/utils/datum.js
CHANGED
package/cjs/interface/type.js
CHANGED
package/cjs/player/encode.js
CHANGED
|
@@ -38,6 +38,7 @@ export declare class Chart extends Rect implements IVisactorGraphic {
|
|
|
38
38
|
drawTag: boolean;
|
|
39
39
|
protected _boundsChangeTag: boolean;
|
|
40
40
|
private _getVChartBounds;
|
|
41
|
+
private _getGroupActualBounds;
|
|
41
42
|
getVChartActualBounds(): Bounds;
|
|
42
43
|
doUpdateAABBBounds(full?: boolean): IAABBBounds;
|
|
43
44
|
constructor(params: IChartGraphicAttribute);
|
|
@@ -18,12 +18,18 @@ class Chart extends vrender_1.Rect {
|
|
|
18
18
|
_getVChartBounds() {
|
|
19
19
|
return this._vchart.getStage().defaultLayer.getChildByName("root").AABBBounds.clone();
|
|
20
20
|
}
|
|
21
|
+
_getGroupActualBounds(bounds, _group) {
|
|
22
|
+
var _a;
|
|
23
|
+
if ("group" !== _group.type) return void bounds.union(_group.AABBBounds);
|
|
24
|
+
const group = _group;
|
|
25
|
+
return 0 !== group.childrenCount ? (null === (_a = group.name) || void 0 === _a ? void 0 : _a.startsWith("seriesGroup_")) ? bounds.union(group.AABBBounds) : void (!0 !== group.attribute.clip || !group.attribute.width && !group.attribute.height ? group.forEachChildren((_child => {
|
|
26
|
+
this._getGroupActualBounds(bounds, _child);
|
|
27
|
+
})) : bounds.union(group.AABBBounds)) : void 0;
|
|
28
|
+
}
|
|
21
29
|
getVChartActualBounds() {
|
|
22
30
|
const stage = this._vchart.getStage(), layer = stage.defaultLayer, root = stage.defaultLayer.getChildByName("root"), bounds = new vutils_1.Bounds;
|
|
23
31
|
return root.forEachChildren((child => {
|
|
24
|
-
|
|
25
|
-
bounds.union(_child.AABBBounds);
|
|
26
|
-
})) : bounds.union(child.AABBBounds);
|
|
32
|
+
this._getGroupActualBounds(bounds, child);
|
|
27
33
|
})), bounds.translate(this.attribute.x + layer.attribute.x, this.attribute.y + layer.attribute.y),
|
|
28
34
|
bounds;
|
|
29
35
|
}
|
|
@@ -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, IGraphicAttribute, ITicker } from '@visactor/vrender';\nimport { isPointInBounds, isBoundsLikeEqual } from '../../../../util/space';\nimport { genNumberType, Rect } from '@visactor/vrender';\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 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\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\n if (viewBox) {\n this._setGlobalViewBox(viewBox);\n }\n if (this._globalViewBox) {\n spec.width = this._globalViewBox.x2 - this._globalViewBox.x1;\n spec.height = this._globalViewBox.y2 - this._globalViewBox.y1;\n }\n this._vchart.updateSpecSync(spec, forceMerge, { reuse: false, morph: morphConfig });\n if (this._BoundsViewBox) {\n const rootBounds = this._getVChartBounds();\n if (isBoundsLikeEqual(rootBounds, this._BoundsViewBox)) {\n return;\n }\n }\n this._updateViewBox();\n }\n\n private _setGlobalViewBox(viewBox: IBoundsLike) {\n if (this._globalAABBBounds && isBoundsLikeEqual(this._globalAABBBounds, viewBox)) {\n // 尺寸没变化\n return false;\n }\n // 图表的设置大小\n this._globalViewBox = { ...viewBox };\n this._localViewBox = { x1: 0, y1: 0, x2: viewBox.x2 - viewBox.x1, y2: viewBox.y2 - viewBox.y1 };\n return true;\n }\n\n updateViewBox(viewBox: IBoundsLike) {\n if (!this._setGlobalViewBox(viewBox)) {\n return;\n }\n this._updateViewBox();\n }\n\n private _updateViewBox() {\n if (!this._vchart) {\n return;\n }\n this._boundsChangeTag = true;\n const rect = this._vchart.getChart().getCanvasRect();\n // 只有当尺寸变化时才resize\n if (\n rect.width !== this._globalViewBox.x2 - this._globalViewBox.x1 ||\n rect.height !== this._globalViewBox.y2 - this._globalViewBox.y1\n ) {\n this._vchart.resize(\n this._globalViewBox.x2 - this._globalViewBox.x1,\n this._globalViewBox.y2 - this._globalViewBox.y1\n );\n }\n const rootBounds = this._getVChartBounds().expand(VIEW_BOX_EXPEND);\n this.setAttributes({\n x: this._globalViewBox.x1 + rootBounds.x1,\n y: this._globalViewBox.y1 + rootBounds.y1,\n // @ts-ignore\n width: rootBounds.x2 - rootBounds.x1,\n height: rootBounds.y2 - rootBounds.y1\n });\n // 如果 图表bounds 没有变化,则不更新\n if (this._BoundsViewBox && isBoundsLikeEqual(rootBounds, this._BoundsViewBox)) {\n return;\n }\n this._vchart.getStage().defaultLayer.translateTo(-rootBounds.x1, -rootBounds.y1);\n this._BoundsViewBox = rootBounds;\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 const renderViewBox = { ...rootBounds };\n renderViewBox.x2 -= renderViewBox.x1;\n renderViewBox.y2 -= renderViewBox.y1;\n renderViewBox.x1 = 0;\n renderViewBox.y1 = 0;\n // 这个时候需要改的是vrender的viewBox\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 { isPointInBounds, isBoundsLikeEqual } from '../../../../util/space';\nimport type { GraphicType, IGraphicAttribute, ITicker, IGraphic } from '@visactor/vrender';\nimport { genNumberType, Rect } from '@visactor/vrender';\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 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 private _getGroupActualBounds(bounds: Bounds, _group: IGraphic) {\n if (_group.type !== 'group') {\n bounds.union(_group.AABBBounds);\n return;\n }\n // 以下是 group 的情况\n const group = _group as IGroup;\n if (group.childrenCount === 0) {\n return;\n }\n if (group.name?.startsWith('seriesGroup_')) {\n return bounds.union(group.AABBBounds);\n }\n if (group.attribute.clip === true && (group.attribute.width || group.attribute.height)) {\n bounds.union(group.AABBBounds);\n return;\n }\n group.forEachChildren(_child => {\n this._getGroupActualBounds(bounds, _child as IGraphic);\n });\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 this._getGroupActualBounds(bounds, child);\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\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\n if (viewBox) {\n this._setGlobalViewBox(viewBox);\n }\n if (this._globalViewBox) {\n spec.width = this._globalViewBox.x2 - this._globalViewBox.x1;\n spec.height = this._globalViewBox.y2 - this._globalViewBox.y1;\n }\n this._vchart.updateSpecSync(spec, forceMerge, { reuse: false, morph: morphConfig });\n if (this._BoundsViewBox) {\n const rootBounds = this._getVChartBounds();\n if (isBoundsLikeEqual(rootBounds, this._BoundsViewBox)) {\n return;\n }\n }\n this._updateViewBox();\n }\n\n private _setGlobalViewBox(viewBox: IBoundsLike) {\n if (this._globalAABBBounds && isBoundsLikeEqual(this._globalAABBBounds, viewBox)) {\n // 尺寸没变化\n return false;\n }\n // 图表的设置大小\n this._globalViewBox = { ...viewBox };\n this._localViewBox = { x1: 0, y1: 0, x2: viewBox.x2 - viewBox.x1, y2: viewBox.y2 - viewBox.y1 };\n return true;\n }\n\n updateViewBox(viewBox: IBoundsLike) {\n if (!this._setGlobalViewBox(viewBox)) {\n return;\n }\n this._updateViewBox();\n }\n\n private _updateViewBox() {\n if (!this._vchart) {\n return;\n }\n this._boundsChangeTag = true;\n const rect = this._vchart.getChart().getCanvasRect();\n // 只有当尺寸变化时才resize\n if (\n rect.width !== this._globalViewBox.x2 - this._globalViewBox.x1 ||\n rect.height !== this._globalViewBox.y2 - this._globalViewBox.y1\n ) {\n this._vchart.resize(\n this._globalViewBox.x2 - this._globalViewBox.x1,\n this._globalViewBox.y2 - this._globalViewBox.y1\n );\n }\n const rootBounds = this._getVChartBounds().expand(VIEW_BOX_EXPEND);\n this.setAttributes({\n x: this._globalViewBox.x1 + rootBounds.x1,\n y: this._globalViewBox.y1 + rootBounds.y1,\n // @ts-ignore\n width: rootBounds.x2 - rootBounds.x1,\n height: rootBounds.y2 - rootBounds.y1\n });\n // 如果 图表bounds 没有变化,则不更新\n if (this._BoundsViewBox && isBoundsLikeEqual(rootBounds, this._BoundsViewBox)) {\n return;\n }\n this._vchart.getStage().defaultLayer.translateTo(-rootBounds.x1, -rootBounds.y1);\n this._BoundsViewBox = rootBounds;\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 const renderViewBox = { ...rootBounds };\n renderViewBox.x2 -= renderViewBox.x1;\n renderViewBox.y2 -= renderViewBox.y1;\n renderViewBox.x1 = 0;\n renderViewBox.y1 = 0;\n // 这个时候需要改的是vrender的viewBox\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"]}
|
package/dist/index.js
CHANGED
|
@@ -28951,20 +28951,34 @@
|
|
|
28951
28951
|
const stage = this._vchart.getStage();
|
|
28952
28952
|
return stage.defaultLayer.getChildByName('root').AABBBounds.clone();
|
|
28953
28953
|
}
|
|
28954
|
+
_getGroupActualBounds(bounds, _group) {
|
|
28955
|
+
var _a;
|
|
28956
|
+
if (_group.type !== 'group') {
|
|
28957
|
+
bounds.union(_group.AABBBounds);
|
|
28958
|
+
return;
|
|
28959
|
+
}
|
|
28960
|
+
const group = _group;
|
|
28961
|
+
if (group.childrenCount === 0) {
|
|
28962
|
+
return;
|
|
28963
|
+
}
|
|
28964
|
+
if ((_a = group.name) === null || _a === void 0 ? void 0 : _a.startsWith('seriesGroup_')) {
|
|
28965
|
+
return bounds.union(group.AABBBounds);
|
|
28966
|
+
}
|
|
28967
|
+
if (group.attribute.clip === true && (group.attribute.width || group.attribute.height)) {
|
|
28968
|
+
bounds.union(group.AABBBounds);
|
|
28969
|
+
return;
|
|
28970
|
+
}
|
|
28971
|
+
group.forEachChildren(_child => {
|
|
28972
|
+
this._getGroupActualBounds(bounds, _child);
|
|
28973
|
+
});
|
|
28974
|
+
}
|
|
28954
28975
|
getVChartActualBounds() {
|
|
28955
28976
|
const stage = this._vchart.getStage();
|
|
28956
28977
|
const layer = stage.defaultLayer;
|
|
28957
28978
|
const root = stage.defaultLayer.getChildByName('root');
|
|
28958
28979
|
const bounds = new Bounds$1();
|
|
28959
28980
|
root.forEachChildren((child) => {
|
|
28960
|
-
|
|
28961
|
-
child.forEachChildren((_child) => {
|
|
28962
|
-
bounds.union(_child.AABBBounds);
|
|
28963
|
-
});
|
|
28964
|
-
}
|
|
28965
|
-
else {
|
|
28966
|
-
bounds.union(child.AABBBounds);
|
|
28967
|
-
}
|
|
28981
|
+
this._getGroupActualBounds(bounds, child);
|
|
28968
28982
|
});
|
|
28969
28983
|
bounds.translate(this.attribute.x + layer.attribute.x, this.attribute.y + layer.attribute.y);
|
|
28970
28984
|
return bounds;
|