@visactor/vstory 0.0.8-alpha.11 → 0.0.8-alpha.13
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/story/character/chart/graphic/vchart-graphic.js +6 -7
- package/cjs/story/character/chart/graphic/vchart-graphic.js.map +1 -1
- package/dist/index.js +5 -5
- package/dist/index.min.js +1 -1
- package/es/story/character/chart/graphic/vchart-graphic.js +6 -7
- package/es/story/character/chart/graphic/vchart-graphic.js.map +1 -1
- package/package.json +3 -3
|
@@ -20,18 +20,17 @@ class Chart extends vrender_1.Rect {
|
|
|
20
20
|
}
|
|
21
21
|
_getGroupActualBounds(bounds, _group) {
|
|
22
22
|
var _a;
|
|
23
|
-
if ("group" !== _group.type) return void bounds.union(_group.
|
|
23
|
+
if ("group" !== _group.type) return void bounds.union(_group.globalAABBBounds);
|
|
24
24
|
const group = _group;
|
|
25
|
-
return 0 !== group.childrenCount ? (null === (_a = group.name) || void 0 === _a ? void 0 : _a.startsWith("seriesGroup_")) ? bounds.union(group.
|
|
25
|
+
return 0 !== group.childrenCount ? (null === (_a = group.name) || void 0 === _a ? void 0 : _a.startsWith("seriesGroup_")) ? bounds.union(group.globalAABBBounds) : void (!0 !== group.attribute.clip || !group.attribute.width && !group.attribute.height ? group.forEachChildren((_child => {
|
|
26
26
|
this._getGroupActualBounds(bounds, _child);
|
|
27
|
-
})) : bounds.union(group.
|
|
27
|
+
})) : bounds.union(group.globalAABBBounds)) : void 0;
|
|
28
28
|
}
|
|
29
29
|
getVChartActualBounds() {
|
|
30
|
-
const
|
|
30
|
+
const root = this._vchart.getStage().defaultLayer.getChildByName("root"), bounds = new vutils_1.Bounds;
|
|
31
31
|
return root.forEachChildren((child => {
|
|
32
32
|
this._getGroupActualBounds(bounds, child);
|
|
33
|
-
})), bounds.translate(this.attribute.x
|
|
34
|
-
bounds;
|
|
33
|
+
})), bounds.translate(this.attribute.x, this.attribute.y), bounds;
|
|
35
34
|
}
|
|
36
35
|
doUpdateAABBBounds(full) {
|
|
37
36
|
if (!this._vchart) return super.doUpdateAABBBounds();
|
|
@@ -113,7 +112,7 @@ class Chart extends vrender_1.Rect {
|
|
|
113
112
|
spec.height = this._globalViewBox.y2 - this._globalViewBox.y1), this._vchart.updateSpecSync(spec, forceMerge, {
|
|
114
113
|
reuse: !1,
|
|
115
114
|
morph: morphConfig
|
|
116
|
-
}), this._BoundsViewBox) {
|
|
115
|
+
}), this._vchart.getStage() && (this._vchart.getStage().background = !1), this._BoundsViewBox) {
|
|
117
116
|
const rootBounds = this._getVChartBounds();
|
|
118
117
|
if ((0, space_1.isBoundsLikeEqual)(rootBounds, this._BoundsViewBox)) return;
|
|
119
118
|
}
|
|
@@ -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 { 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"]}
|
|
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.globalAABBBounds);\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.globalAABBBounds);\n }\n if (group.attribute.clip === true && (group.attribute.width || group.attribute.height)) {\n bounds.union(group.globalAABBBounds);\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, this.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 // 需要设置为false,否则会导致擦除下层内容\n this._vchart.getStage() && (this._vchart.getStage().background = false as any);\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
|
@@ -28954,7 +28954,7 @@
|
|
|
28954
28954
|
_getGroupActualBounds(bounds, _group) {
|
|
28955
28955
|
var _a;
|
|
28956
28956
|
if (_group.type !== 'group') {
|
|
28957
|
-
bounds.union(_group.
|
|
28957
|
+
bounds.union(_group.globalAABBBounds);
|
|
28958
28958
|
return;
|
|
28959
28959
|
}
|
|
28960
28960
|
const group = _group;
|
|
@@ -28962,10 +28962,10 @@
|
|
|
28962
28962
|
return;
|
|
28963
28963
|
}
|
|
28964
28964
|
if ((_a = group.name) === null || _a === void 0 ? void 0 : _a.startsWith('seriesGroup_')) {
|
|
28965
|
-
return bounds.union(group.
|
|
28965
|
+
return bounds.union(group.globalAABBBounds);
|
|
28966
28966
|
}
|
|
28967
28967
|
if (group.attribute.clip === true && (group.attribute.width || group.attribute.height)) {
|
|
28968
|
-
bounds.union(group.
|
|
28968
|
+
bounds.union(group.globalAABBBounds);
|
|
28969
28969
|
return;
|
|
28970
28970
|
}
|
|
28971
28971
|
group.forEachChildren(_child => {
|
|
@@ -28974,13 +28974,12 @@
|
|
|
28974
28974
|
}
|
|
28975
28975
|
getVChartActualBounds() {
|
|
28976
28976
|
const stage = this._vchart.getStage();
|
|
28977
|
-
const layer = stage.defaultLayer;
|
|
28978
28977
|
const root = stage.defaultLayer.getChildByName('root');
|
|
28979
28978
|
const bounds = new Bounds$1();
|
|
28980
28979
|
root.forEachChildren((child) => {
|
|
28981
28980
|
this._getGroupActualBounds(bounds, child);
|
|
28982
28981
|
});
|
|
28983
|
-
bounds.translate(this.attribute.x
|
|
28982
|
+
bounds.translate(this.attribute.x, this.attribute.y);
|
|
28984
28983
|
return bounds;
|
|
28985
28984
|
}
|
|
28986
28985
|
doUpdateAABBBounds(full) {
|
|
@@ -29079,6 +29078,7 @@
|
|
|
29079
29078
|
spec.height = this._globalViewBox.y2 - this._globalViewBox.y1;
|
|
29080
29079
|
}
|
|
29081
29080
|
this._vchart.updateSpecSync(spec, forceMerge, { reuse: false, morph: morphConfig });
|
|
29081
|
+
this._vchart.getStage() && (this._vchart.getStage().background = false);
|
|
29082
29082
|
if (this._BoundsViewBox) {
|
|
29083
29083
|
const rootBounds = this._getVChartBounds();
|
|
29084
29084
|
if (isBoundsLikeEqual(rootBounds, this._BoundsViewBox)) {
|