@visactor/vchart 2.0.3-alpha.0 → 2.0.3-alpha.1
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/build/es5/index.js +1 -1
- package/build/index.es.js +980 -897
- package/build/index.js +981 -896
- package/build/index.min.js +2 -2
- package/build/tsconfig.tsbuildinfo +1 -1
- package/cjs/animation/index.js +2 -1
- package/cjs/animation/interface.js +1 -2
- package/cjs/animation/utils.js +1 -1
- package/cjs/animation/utils.js.map +1 -1
- package/cjs/chart/base/base-chart-transformer.js +3 -3
- package/cjs/chart/base/base-chart-transformer.js.map +1 -1
- package/cjs/chart/base/base-chart.d.ts +1 -0
- package/cjs/chart/base/base-chart.js +5 -8
- package/cjs/chart/base/base-chart.js.map +1 -1
- package/cjs/chart/index.d.ts +2 -2
- package/cjs/chart/index.js +7 -2
- package/cjs/chart/index.js.map +1 -1
- package/cjs/chart/interface/chart.d.ts +1 -0
- package/cjs/chart/interface/chart.js.map +1 -1
- package/cjs/chart/interface/common.d.ts +1 -1
- package/cjs/chart/interface/common.js.map +1 -1
- package/cjs/chart/util.js +2 -1
- package/cjs/compile/compiler.d.ts +1 -0
- package/cjs/compile/compiler.js +13 -5
- package/cjs/compile/compiler.js.map +1 -1
- package/cjs/compile/interface/compilable-item.d.ts +1 -0
- package/cjs/compile/interface/compilable-item.js.map +1 -1
- package/cjs/compile/interface/compiler.d.ts +5 -0
- package/cjs/compile/interface/compiler.js.map +1 -1
- package/cjs/component/axis/base-axis.js +14 -13
- package/cjs/component/axis/base-axis.js.map +1 -1
- package/cjs/component/axis/cartesian/band-axis.d.ts +8 -0
- package/cjs/component/axis/cartesian/band-axis.js +9 -0
- package/cjs/component/axis/cartesian/band-axis.js.map +1 -1
- package/cjs/component/axis/interface/common.js.map +1 -1
- package/cjs/component/axis/mixin/band-axis-mixin.d.ts +2 -0
- package/cjs/component/axis/mixin/band-axis-mixin.js +15 -1
- package/cjs/component/axis/mixin/band-axis-mixin.js.map +1 -1
- package/cjs/component/brush/brush.js +6 -6
- package/cjs/component/brush/brush.js.map +1 -1
- package/cjs/component/brush/interface.d.ts +1 -0
- package/cjs/component/brush/interface.js.map +1 -1
- package/cjs/component/crosshair/base.d.ts +1 -1
- package/cjs/component/crosshair/base.js +1 -1
- package/cjs/component/crosshair/base.js.map +1 -1
- package/cjs/component/crosshair/utils/cartesian.js +2 -2
- package/cjs/component/crosshair/utils/cartesian.js.map +1 -1
- package/cjs/component/custom-mark/custom-mark.js +6 -9
- package/cjs/component/custom-mark/custom-mark.js.map +1 -1
- package/cjs/component/data-zoom/data-filter-base-component.d.ts +0 -1
- package/cjs/component/data-zoom/data-filter-base-component.js +13 -19
- package/cjs/component/data-zoom/data-filter-base-component.js.map +1 -1
- package/cjs/component/data-zoom/interface.d.ts +0 -3
- package/cjs/component/data-zoom/interface.js.map +1 -1
- package/cjs/component/data-zoom/util.d.ts +0 -1
- package/cjs/component/data-zoom/util.js +3 -4
- package/cjs/component/data-zoom/util.js.map +1 -1
- package/cjs/component/player/player.js +2 -1
- package/cjs/component/player/player.js.map +1 -1
- package/cjs/component/tooltip/tooltip.js +8 -3
- package/cjs/component/tooltip/tooltip.js.map +1 -1
- package/cjs/constant/attribute.js +1 -2
- package/cjs/constant/sunburst.js +2 -1
- package/cjs/constant/waterfall.js +1 -2
- package/cjs/core/index.d.ts +1 -1
- package/cjs/core/index.js +1 -1
- package/cjs/core/index.js.map +1 -1
- package/cjs/core/interface.d.ts +1 -0
- package/cjs/core/interface.js.map +1 -1
- package/cjs/core/util.js +1 -1
- package/cjs/core/vchart.d.ts +2 -0
- package/cjs/core/vchart.js +42 -22
- package/cjs/core/vchart.js.map +1 -1
- package/cjs/data/transforms/obj-flat.js +1 -4
- package/cjs/data/transforms/obj-flat.js.map +1 -1
- package/cjs/mark/base/base-line.d.ts +1 -1
- package/cjs/mark/base/base-line.js.map +1 -1
- package/cjs/mark/base/base-mark.d.ts +6 -2
- package/cjs/mark/base/base-mark.js +69 -51
- package/cjs/mark/base/base-mark.js.map +1 -1
- package/cjs/mark/group.d.ts +3 -2
- package/cjs/mark/group.js +15 -13
- package/cjs/mark/group.js.map +1 -1
- package/cjs/mark/interface/common.d.ts +5 -2
- package/cjs/mark/interface/common.js.map +1 -1
- package/cjs/model/base-model.d.ts +5 -1
- package/cjs/model/base-model.js +7 -0
- package/cjs/model/base-model.js.map +1 -1
- package/cjs/model/interface.d.ts +5 -2
- package/cjs/model/interface.js.map +1 -1
- package/cjs/plugin/components/tooltip-handler/dom-tooltip-handler.d.ts +1 -1
- package/cjs/plugin/components/tooltip-handler/dom-tooltip-handler.js +4 -3
- package/cjs/plugin/components/tooltip-handler/dom-tooltip-handler.js.map +1 -1
- package/cjs/plugin/components/tooltip-handler/utils/style.js +4 -4
- package/cjs/plugin/components/tooltip-handler/utils/style.js.map +1 -1
- package/cjs/region/region.js.map +1 -1
- package/cjs/series/base/base-series-transformer.js +1 -1
- package/cjs/series/base/base-series-transformer.js.map +1 -1
- package/cjs/series/base/base-series.js +2 -3
- package/cjs/series/base/base-series.js.map +1 -1
- package/cjs/series/dot/dot.d.ts +0 -1
- package/cjs/series/dot/dot.js +6 -29
- package/cjs/series/dot/dot.js.map +1 -1
- package/cjs/series/dot/interface.d.ts +0 -1
- package/cjs/series/dot/interface.js.map +1 -1
- package/cjs/series/dot/tooltip-helper.js +2 -3
- package/cjs/series/dot/tooltip-helper.js.map +1 -1
- package/cjs/series/funnel/funnel.js +0 -2
- package/cjs/series/funnel/funnel.js.map +1 -1
- package/cjs/series/interface/type.d.ts +0 -3
- package/cjs/series/interface/type.js +3 -5
- package/cjs/series/interface/type.js.map +1 -1
- package/cjs/series/link/constant.js +0 -8
- package/cjs/series/link/constant.js.map +1 -1
- package/cjs/series/link/interface.d.ts +1 -10
- package/cjs/series/link/interface.js +1 -5
- package/cjs/series/link/interface.js.map +1 -1
- package/cjs/series/link/link.d.ts +1 -3
- package/cjs/series/link/link.js +16 -46
- package/cjs/series/link/link.js.map +1 -1
- package/cjs/series/map/map.js +1 -2
- package/cjs/series/map/map.js.map +1 -1
- package/cjs/series/pie/pie.js +0 -1
- package/cjs/series/pie/pie.js.map +1 -1
- package/cjs/series/sankey/sankey.d.ts +10 -10
- package/cjs/series/sankey/sankey.js +199 -194
- package/cjs/series/sankey/sankey.js.map +1 -1
- package/cjs/util/mark.d.ts +1 -0
- package/cjs/util/mark.js +10 -1
- package/cjs/util/mark.js.map +1 -1
- package/cjs/util/object.d.ts +1 -0
- package/cjs/util/object.js +13 -2
- package/cjs/util/object.js.map +1 -1
- package/esm/animation/index.js +2 -1
- package/esm/animation/interface.js +1 -2
- package/esm/animation/utils.js +1 -1
- package/esm/animation/utils.js.map +1 -1
- package/esm/chart/base/base-chart-transformer.js +3 -3
- package/esm/chart/base/base-chart-transformer.js.map +1 -1
- package/esm/chart/base/base-chart.d.ts +1 -0
- package/esm/chart/base/base-chart.js +5 -8
- package/esm/chart/base/base-chart.js.map +1 -1
- package/esm/chart/index.d.ts +2 -2
- package/esm/chart/index.js +2 -2
- package/esm/chart/index.js.map +1 -1
- package/esm/chart/interface/chart.d.ts +1 -0
- package/esm/chart/interface/chart.js.map +1 -1
- package/esm/chart/interface/common.d.ts +1 -1
- package/esm/chart/interface/common.js.map +1 -1
- package/esm/chart/util.js +2 -1
- package/esm/compile/compiler.d.ts +1 -0
- package/esm/compile/compiler.js +13 -6
- package/esm/compile/compiler.js.map +1 -1
- package/esm/compile/interface/compilable-item.d.ts +1 -0
- package/esm/compile/interface/compilable-item.js.map +1 -1
- package/esm/compile/interface/compiler.d.ts +5 -0
- package/esm/compile/interface/compiler.js.map +1 -1
- package/esm/component/axis/base-axis.js +8 -8
- package/esm/component/axis/base-axis.js.map +1 -1
- package/esm/component/axis/cartesian/band-axis.d.ts +8 -0
- package/esm/component/axis/cartesian/band-axis.js +9 -1
- package/esm/component/axis/cartesian/band-axis.js.map +1 -1
- package/esm/component/axis/interface/common.js.map +1 -1
- package/esm/component/axis/mixin/band-axis-mixin.d.ts +2 -0
- package/esm/component/axis/mixin/band-axis-mixin.js +15 -1
- package/esm/component/axis/mixin/band-axis-mixin.js.map +1 -1
- package/esm/component/brush/brush.js +6 -6
- package/esm/component/brush/brush.js.map +1 -1
- package/esm/component/brush/interface.d.ts +1 -0
- package/esm/component/brush/interface.js.map +1 -1
- package/esm/component/crosshair/base.d.ts +1 -1
- package/esm/component/crosshair/base.js +1 -1
- package/esm/component/crosshair/base.js.map +1 -1
- package/esm/component/crosshair/utils/cartesian.js +2 -2
- package/esm/component/crosshair/utils/cartesian.js.map +1 -1
- package/esm/component/custom-mark/custom-mark.js +6 -9
- package/esm/component/custom-mark/custom-mark.js.map +1 -1
- package/esm/component/data-zoom/data-filter-base-component.d.ts +0 -1
- package/esm/component/data-zoom/data-filter-base-component.js +13 -18
- package/esm/component/data-zoom/data-filter-base-component.js.map +1 -1
- package/esm/component/data-zoom/interface.d.ts +0 -3
- package/esm/component/data-zoom/interface.js.map +1 -1
- package/esm/component/data-zoom/util.d.ts +0 -1
- package/esm/component/data-zoom/util.js +2 -5
- package/esm/component/data-zoom/util.js.map +1 -1
- package/esm/component/player/player.js +2 -1
- package/esm/component/player/player.js.map +1 -1
- package/esm/component/tooltip/tooltip.js +8 -3
- package/esm/component/tooltip/tooltip.js.map +1 -1
- package/esm/constant/attribute.js +1 -2
- package/esm/constant/sunburst.js +2 -1
- package/esm/constant/waterfall.js +1 -2
- package/esm/core/index.d.ts +1 -1
- package/esm/core/index.js +1 -1
- package/esm/core/index.js.map +1 -1
- package/esm/core/interface.d.ts +1 -0
- package/esm/core/interface.js.map +1 -1
- package/esm/core/util.js +1 -1
- package/esm/core/vchart.d.ts +2 -0
- package/esm/core/vchart.js +42 -22
- package/esm/core/vchart.js.map +1 -1
- package/esm/data/transforms/obj-flat.js +1 -4
- package/esm/data/transforms/obj-flat.js.map +1 -1
- package/esm/mark/base/base-line.d.ts +1 -1
- package/esm/mark/base/base-line.js.map +1 -1
- package/esm/mark/base/base-mark.d.ts +6 -2
- package/esm/mark/base/base-mark.js +69 -50
- package/esm/mark/base/base-mark.js.map +1 -1
- package/esm/mark/group.d.ts +3 -2
- package/esm/mark/group.js +18 -12
- package/esm/mark/group.js.map +1 -1
- package/esm/mark/interface/common.d.ts +5 -2
- package/esm/mark/interface/common.js.map +1 -1
- package/esm/model/base-model.d.ts +5 -1
- package/esm/model/base-model.js +7 -0
- package/esm/model/base-model.js.map +1 -1
- package/esm/model/interface.d.ts +5 -2
- package/esm/model/interface.js.map +1 -1
- package/esm/plugin/components/tooltip-handler/dom-tooltip-handler.d.ts +1 -1
- package/esm/plugin/components/tooltip-handler/dom-tooltip-handler.js +4 -3
- package/esm/plugin/components/tooltip-handler/dom-tooltip-handler.js.map +1 -1
- package/esm/plugin/components/tooltip-handler/utils/style.js +5 -4
- package/esm/plugin/components/tooltip-handler/utils/style.js.map +1 -1
- package/esm/region/region.js.map +1 -1
- package/esm/series/base/base-series-transformer.js +1 -1
- package/esm/series/base/base-series-transformer.js.map +1 -1
- package/esm/series/base/base-series.js +2 -3
- package/esm/series/base/base-series.js.map +1 -1
- package/esm/series/dot/dot.d.ts +0 -1
- package/esm/series/dot/dot.js +6 -29
- package/esm/series/dot/dot.js.map +1 -1
- package/esm/series/dot/interface.d.ts +0 -1
- package/esm/series/dot/interface.js.map +1 -1
- package/esm/series/dot/tooltip-helper.js +2 -3
- package/esm/series/dot/tooltip-helper.js.map +1 -1
- package/esm/series/funnel/funnel.js +0 -2
- package/esm/series/funnel/funnel.js.map +1 -1
- package/esm/series/interface/type.d.ts +0 -3
- package/esm/series/interface/type.js +3 -5
- package/esm/series/interface/type.js.map +1 -1
- package/esm/series/link/constant.js +0 -8
- package/esm/series/link/constant.js.map +1 -1
- package/esm/series/link/interface.d.ts +1 -10
- package/esm/series/link/interface.js +1 -5
- package/esm/series/link/interface.js.map +1 -1
- package/esm/series/link/link.d.ts +1 -3
- package/esm/series/link/link.js +16 -48
- package/esm/series/link/link.js.map +1 -1
- package/esm/series/map/map.js +1 -2
- package/esm/series/map/map.js.map +1 -1
- package/esm/series/pie/pie.js +0 -1
- package/esm/series/pie/pie.js.map +1 -1
- package/esm/series/sankey/sankey.d.ts +10 -10
- package/esm/series/sankey/sankey.js +192 -187
- package/esm/series/sankey/sankey.js.map +1 -1
- package/esm/util/mark.d.ts +1 -0
- package/esm/util/mark.js +7 -0
- package/esm/util/mark.js.map +1 -1
- package/esm/util/object.d.ts +1 -0
- package/esm/util/object.js +11 -0
- package/esm/util/object.js.map +1 -1
- package/package.json +12 -12
- package/cjs/animation/animate-manager.d.ts +0 -1
- package/cjs/animation/animate-manager.js +0 -2
- package/cjs/animation/animate-manager.js.map +0 -1
- package/esm/animation/animate-manager.d.ts +0 -1
- package/esm/animation/animate-manager.js +0 -2
- package/esm/animation/animate-manager.js.map +0 -1
package/cjs/animation/index.js
CHANGED
|
@@ -8,5 +8,4 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
8
8
|
AnimationStateEnum.appear = "appear", AnimationStateEnum.disappear = "disappear",
|
|
9
9
|
AnimationStateEnum.enter = "enter", AnimationStateEnum.update = "update", AnimationStateEnum.state = "state",
|
|
10
10
|
AnimationStateEnum.exit = "exit", AnimationStateEnum.normal = "normal", AnimationStateEnum.none = "none";
|
|
11
|
-
}(AnimationStateEnum = exports.AnimationStateEnum || (exports.AnimationStateEnum = {}));
|
|
12
|
-
//# sourceMappingURL=interface.js.map
|
|
11
|
+
}(AnimationStateEnum = exports.AnimationStateEnum || (exports.AnimationStateEnum = {}));
|
package/cjs/animation/utils.js
CHANGED
|
@@ -117,7 +117,7 @@ function isAnimationEnabledForSeries(series) {
|
|
|
117
117
|
var _a, _b, _c, _d, _e, _f;
|
|
118
118
|
const seriesSpec = series.getSpec();
|
|
119
119
|
if (!1 === seriesSpec.animation) return !1;
|
|
120
|
-
if (!1 === (null === (_b = null === (_a = series.
|
|
120
|
+
if (!1 === (null === (_b = null === (_a = series.getOption()) || void 0 === _a ? void 0 : _a.globalInstance) || void 0 === _b ? void 0 : _b.isAnimationEnable())) return !1;
|
|
121
121
|
let animationThreshold = null !== (_c = seriesSpec.animationThreshold) && void 0 !== _c ? _c : Number.MAX_SAFE_INTEGER;
|
|
122
122
|
return null === (_d = series.getMarks()) || void 0 === _d || _d.forEach((m => {
|
|
123
123
|
const config = m.getMarkConfig();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/animation/utils.ts"],"names":[],"mappings":"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","file":"utils.js","sourcesContent":["import type {\n MarkAnimationSpec,\n IAnimationState,\n IAnimationConfig,\n ChannelAnimationConfig,\n IAnimationTypeConfig,\n IAnimationTimeline,\n TypeAnimationConfig\n} from './interface';\nimport type { IStateAnimateSpec, IAnimationSpec } from './spec';\nimport { isFunction, isValidNumber } from '../util/type';\nimport { DEFAULT_DATA_INDEX } from '../constant/data';\nimport { DEFAULT_ANIMATION_CONFIG } from './config';\nimport { cloneDeep, isArray, isObject, isValid } from '@visactor/vutils';\nimport type { SeriesMarkNameEnum } from '../series/interface/type';\nimport { mergeSpec } from '@visactor/vutils-extension';\nimport type { ISeries } from '../series';\nimport type { ISeriesSpec } from '../typings';\nimport type { IModelMarkAttributeContext } from '../compile/mark';\nimport type { IGraphic } from '@visactor/vrender-core';\nimport type { IMarkGraphic } from '../core';\n\nexport const AnimationStates = [...Object.keys(DEFAULT_ANIMATION_CONFIG), 'normal'];\n\nexport function animationConfig<Preset extends string>(\n defaultConfig: MarkAnimationSpec = {},\n userConfig?: Partial<\n Record<IAnimationState, boolean | IStateAnimateSpec<Preset> | IAnimationConfig | IAnimationConfig[]>\n >,\n params?: {\n dataIndex: (datum: any, params: any) => number;\n dataCount: () => number;\n }\n) {\n const config = {} as MarkAnimationSpec;\n for (let i = 0; i < AnimationStates.length; i++) {\n const state = AnimationStates[i];\n const userStateConfig = userConfig ? (userConfig as any)[state] : undefined;\n\n if (userStateConfig === false) {\n continue;\n }\n\n if (state === 'normal') {\n userStateConfig && (config.normal = userStateConfig as IAnimationTypeConfig);\n continue;\n } else if (state === 'state') {\n if (userStateConfig !== false) {\n config.state = (userStateConfig ?? DEFAULT_ANIMATION_CONFIG.state) as any;\n }\n continue;\n }\n\n if (state !== 'update' && !userStateConfig && !(defaultConfig as any)[state]) {\n // no user config and default config\n continue;\n }\n\n // 开始处理默认动画逻辑\n let defaultStateConfig: IAnimationConfig[];\n if (isArray((defaultConfig as any)[state])) {\n defaultStateConfig = (defaultConfig as any)[state] as IAnimationConfig[];\n } else {\n defaultStateConfig = [{ ...(DEFAULT_ANIMATION_CONFIG as any)[state], ...(defaultConfig as any)[state] } as any];\n }\n // FIXME: 用来控制当动画状态发生变更时是否清除正在执行的动画。\n // 现在 vrender 对于同一个视觉通道的 tween 不会做覆盖的处理。若不做动画清空同时 exit 动画比 update 动画时间长的情况下,效果会不正确\n if (state === 'exit') {\n defaultStateConfig.forEach(exitConfig => {\n exitConfig.controlOptions = { stopWhenStateChange: true };\n });\n }\n\n if (!userStateConfig) {\n (config as any)[state] = defaultStateConfig;\n continue;\n }\n\n // 开始处理用户配置的动画逻辑\n let stateConfig: IAnimationConfig[];\n if (isArray(userStateConfig)) {\n stateConfig = userStateConfig.map((userConfig, i) => {\n let singleConfig: IAnimationConfig = userConfig;\n // not merge default config when user animation config is array\n if (isChannelAnimation(singleConfig)) {\n // `type` and `channel` is conflict, and `type` has a higher priority.\n // here if user configured `channel`, we should remove `type` which will come from default animation config\n delete (singleConfig as TypeAnimationConfig).type;\n }\n if (singleConfig.oneByOne) {\n singleConfig = produceOneByOne(\n singleConfig as IAnimationTypeConfig,\n params?.dataIndex ?? defaultDataIndex,\n params?.dataCount\n );\n }\n return singleConfig;\n });\n } else {\n stateConfig = defaultStateConfig.map((stateConfig, i) => {\n let singleConfig: IAnimationConfig = mergeSpec({}, defaultStateConfig[i], userStateConfig) as IAnimationConfig;\n if (isChannelAnimation(singleConfig)) {\n // `type` and `channel` is conflict, and `type` has a higher priority.\n // here if user configured `channel`, we should remove `type` which will come from default animation config\n delete (singleConfig as TypeAnimationConfig).type;\n }\n\n if (singleConfig.oneByOne) {\n singleConfig = produceOneByOne(\n singleConfig as IAnimationTypeConfig,\n params?.dataIndex ?? defaultDataIndex,\n params?.dataCount\n );\n }\n return singleConfig;\n });\n }\n\n (config as any)[state] = stateConfig;\n }\n return config;\n}\n\nexport function userAnimationConfig<M extends string, Preset extends string>(\n markName: SeriesMarkNameEnum | string,\n spec: IAnimationSpec<M, Preset>,\n ctx: IModelMarkAttributeContext\n) {\n const userConfig: Partial<\n Record<IAnimationState, boolean | IStateAnimateSpec<Preset> | IAnimationConfig | IAnimationConfig[]>\n > = {};\n\n if (isValid(spec.animationAppear)) {\n userConfig.appear = spec.animationAppear[markName] ?? spec.animationAppear;\n }\n if (isValid(spec.animationDisappear)) {\n userConfig.disappear = spec.animationDisappear[markName] ?? spec.animationDisappear;\n }\n if (isValid(spec.animationEnter)) {\n userConfig.enter = spec.animationEnter[markName] ?? spec.animationEnter;\n }\n if (isValid(spec.animationExit)) {\n userConfig.exit = spec.animationExit[markName] ?? spec.animationExit;\n }\n if (isValid(spec.animationUpdate)) {\n userConfig.update = spec.animationUpdate[markName] ?? spec.animationUpdate;\n }\n if (isValid(spec.animationState)) {\n userConfig.state = spec.animationState[markName] ?? spec.animationState;\n }\n if (spec.animationNormal && spec.animationNormal[markName]) {\n userConfig.normal = spec.animationNormal[markName];\n }\n\n return uniformAnimationConfig(userConfig, ctx);\n}\n\n/**\n * oneByOne\n */\nfunction produceOneByOne(\n stateConfig: IAnimationTypeConfig,\n dataIndex: (datum: any, params: any) => number,\n dataCount?: () => number\n) {\n const { oneByOne, duration, delay, delayAfter } = stateConfig;\n stateConfig.delay = (datum: any, g: IGraphic, params: any) => {\n const index = dataIndex(datum, params);\n const durationTime = isFunction(duration) ? duration(datum, g, params) : isValidNumber(duration) ? duration : 0;\n const userDelay = isFunction(delay) ? delay(datum, g, params) : isValidNumber(delay) ? delay : 0;\n let oneByOneTime = isFunction(oneByOne) ? oneByOne(datum, g, params) : oneByOne;\n if (oneByOneTime === false) {\n return userDelay;\n }\n oneByOneTime = oneByOneTime === true ? 0 : oneByOneTime;\n return userDelay + index * (durationTime + oneByOneTime);\n };\n stateConfig.delayAfter = (datum: any, g: IGraphic, params: any) => {\n const index = dataIndex(datum, params);\n const durationTime = isFunction(duration) ? duration(datum, g, params) : isValidNumber(duration) ? duration : 0;\n const userDelayAfter = isFunction(delayAfter)\n ? delayAfter(datum, g, params)\n : isValidNumber(delayAfter)\n ? delayAfter\n : 0;\n let oneByOneTime = isFunction(oneByOne) ? oneByOne(datum, g, params) : oneByOne;\n if (oneByOneTime === false) {\n return userDelayAfter;\n }\n const indexCount = dataCount ? dataCount() : g.parent.count - 1;\n oneByOneTime = oneByOneTime === true ? 0 : oneByOneTime;\n return userDelayAfter + (indexCount - index) * (durationTime + oneByOneTime);\n };\n delete stateConfig.oneByOne;\n return stateConfig;\n}\n\nfunction defaultDataIndex(datum: any, graphic: IMarkGraphic) {\n return datum?.[DEFAULT_DATA_INDEX] ?? graphic.context.graphicIndex;\n}\n\nexport function shouldMarkDoMorph(spec: ISeriesSpec & IAnimationSpec<string, string>, markName: string) {\n if (spec.animation === false) {\n return false;\n }\n\n if (spec.morph?.enable === false) {\n return false;\n }\n\n const appearAnimationEnabled = (spec.animationAppear?.[markName] ?? spec.animationAppear) !== false;\n const updateAnimationEnabled = (spec.animationUpdate?.[markName] ?? spec.animationUpdate) !== false;\n\n if (!appearAnimationEnabled || !updateAnimationEnabled) {\n return false;\n }\n\n return true;\n}\n\nexport function isTimeLineAnimation(animationConfig: IAnimationConfig) {\n return isValid((animationConfig as IAnimationTimeline).timeSlices);\n}\n\nexport function isChannelAnimation(animationConfig: IAnimationConfig) {\n return !isTimeLineAnimation(animationConfig) && isValid((animationConfig as ChannelAnimationConfig).channel);\n}\n\nexport function uniformAnimationConfig<Preset extends string>(\n config: Partial<Record<IAnimationState, boolean | IStateAnimateSpec<Preset> | IAnimationConfig | IAnimationConfig[]>>,\n ctx: IModelMarkAttributeContext\n) {\n if (!config) {\n return config;\n }\n const excludeKeys = ['custom', 'customParameters'];\n config = cloneDeep(config, null, excludeKeys);\n traverseSpec(\n config,\n (node: any) => {\n // 将函数转换为 vchart 代理的函数\n // 这里可能会传自定义动画的构造函数,不能被代理\n if (isFunction(node) && node.prototype?.constructor !== node) {\n const name = (...args: any) => {\n return node(...args, ctx);\n };\n return name;\n }\n return node;\n },\n excludeKeys\n );\n\n return config;\n}\n\nfunction traverseSpec(spec: any, transform: (node: any, key: string | number) => any, excludeKeys: string[] = []) {\n if (isArray(spec)) {\n spec.forEach((i: any, index: number) => {\n spec[index] = transform(spec[index], index);\n traverseSpec(spec[index], transform, excludeKeys);\n });\n } else if (isObject(spec)) {\n for (const key in spec) {\n if (!excludeKeys.includes(key)) {\n spec[key] = transform(spec[key], key);\n traverseSpec(spec[key], transform, excludeKeys);\n }\n }\n }\n}\n\nexport function isAnimationEnabledForSeries(series: ISeries) {\n const seriesSpec = series.getSpec();\n\n if (seriesSpec.animation === false) {\n return false;\n }\n\n if (series.getChart()?.getOption()?.animation === false) {\n return false;\n }\n\n // if (!isValid(series.getRegion().animate)) {\n // return false;\n // }\n\n let animationThreshold = seriesSpec.animationThreshold ?? Number.MAX_SAFE_INTEGER;\n\n // set mark stroke color follow series color\n // only set normal state in the level lower than level Series\n series.getMarks()?.forEach(m => {\n const config = m.getMarkConfig();\n if (config) {\n if (config.large && config.largeThreshold) {\n animationThreshold = Math.min(animationThreshold, config.largeThreshold);\n }\n if (config.progressiveThreshold) {\n animationThreshold = Math.min(animationThreshold, config.progressiveThreshold);\n }\n }\n });\n // auto close animation\n if (series.getRawData()?.latestData?.length >= animationThreshold) {\n return false;\n }\n\n return true;\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/animation/utils.ts"],"names":[],"mappings":"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","file":"utils.js","sourcesContent":["import type {\n MarkAnimationSpec,\n IAnimationState,\n IAnimationConfig,\n ChannelAnimationConfig,\n IAnimationTypeConfig,\n IAnimationTimeline,\n TypeAnimationConfig\n} from './interface';\nimport type { IStateAnimateSpec, IAnimationSpec } from './spec';\nimport { isFunction, isValidNumber } from '../util/type';\nimport { DEFAULT_DATA_INDEX } from '../constant/data';\nimport { DEFAULT_ANIMATION_CONFIG } from './config';\nimport { cloneDeep, isArray, isObject, isValid } from '@visactor/vutils';\nimport type { SeriesMarkNameEnum } from '../series/interface/type';\nimport { mergeSpec } from '@visactor/vutils-extension';\nimport type { ISeries } from '../series';\nimport type { ISeriesSpec } from '../typings';\nimport type { IModelMarkAttributeContext } from '../compile/mark';\nimport type { IGraphic } from '@visactor/vrender-core';\nimport type { IMarkGraphic } from '../core';\n\nexport const AnimationStates = [...Object.keys(DEFAULT_ANIMATION_CONFIG), 'normal'];\n\nexport function animationConfig<Preset extends string>(\n defaultConfig: MarkAnimationSpec = {},\n userConfig?: Partial<\n Record<IAnimationState, boolean | IStateAnimateSpec<Preset> | IAnimationConfig | IAnimationConfig[]>\n >,\n params?: {\n dataIndex: (datum: any, params: any) => number;\n dataCount: () => number;\n }\n) {\n const config = {} as MarkAnimationSpec;\n for (let i = 0; i < AnimationStates.length; i++) {\n const state = AnimationStates[i];\n const userStateConfig = userConfig ? (userConfig as any)[state] : undefined;\n\n if (userStateConfig === false) {\n continue;\n }\n\n if (state === 'normal') {\n userStateConfig && (config.normal = userStateConfig as IAnimationTypeConfig);\n continue;\n } else if (state === 'state') {\n if (userStateConfig !== false) {\n config.state = (userStateConfig ?? DEFAULT_ANIMATION_CONFIG.state) as any;\n }\n continue;\n }\n\n if (state !== 'update' && !userStateConfig && !(defaultConfig as any)[state]) {\n // no user config and default config\n continue;\n }\n\n // 开始处理默认动画逻辑\n let defaultStateConfig: IAnimationConfig[];\n if (isArray((defaultConfig as any)[state])) {\n defaultStateConfig = (defaultConfig as any)[state] as IAnimationConfig[];\n } else {\n defaultStateConfig = [{ ...(DEFAULT_ANIMATION_CONFIG as any)[state], ...(defaultConfig as any)[state] } as any];\n }\n // FIXME: 用来控制当动画状态发生变更时是否清除正在执行的动画。\n // 现在 vrender 对于同一个视觉通道的 tween 不会做覆盖的处理。若不做动画清空同时 exit 动画比 update 动画时间长的情况下,效果会不正确\n if (state === 'exit') {\n defaultStateConfig.forEach(exitConfig => {\n exitConfig.controlOptions = { stopWhenStateChange: true };\n });\n }\n\n if (!userStateConfig) {\n (config as any)[state] = defaultStateConfig;\n continue;\n }\n\n // 开始处理用户配置的动画逻辑\n let stateConfig: IAnimationConfig[];\n if (isArray(userStateConfig)) {\n stateConfig = userStateConfig.map((userConfig, i) => {\n let singleConfig: IAnimationConfig = userConfig;\n // not merge default config when user animation config is array\n if (isChannelAnimation(singleConfig)) {\n // `type` and `channel` is conflict, and `type` has a higher priority.\n // here if user configured `channel`, we should remove `type` which will come from default animation config\n delete (singleConfig as TypeAnimationConfig).type;\n }\n if (singleConfig.oneByOne) {\n singleConfig = produceOneByOne(\n singleConfig as IAnimationTypeConfig,\n params?.dataIndex ?? defaultDataIndex,\n params?.dataCount\n );\n }\n return singleConfig;\n });\n } else {\n stateConfig = defaultStateConfig.map((stateConfig, i) => {\n let singleConfig: IAnimationConfig = mergeSpec({}, defaultStateConfig[i], userStateConfig) as IAnimationConfig;\n if (isChannelAnimation(singleConfig)) {\n // `type` and `channel` is conflict, and `type` has a higher priority.\n // here if user configured `channel`, we should remove `type` which will come from default animation config\n delete (singleConfig as TypeAnimationConfig).type;\n }\n\n if (singleConfig.oneByOne) {\n singleConfig = produceOneByOne(\n singleConfig as IAnimationTypeConfig,\n params?.dataIndex ?? defaultDataIndex,\n params?.dataCount\n );\n }\n return singleConfig;\n });\n }\n\n (config as any)[state] = stateConfig;\n }\n return config;\n}\n\nexport function userAnimationConfig<M extends string, Preset extends string>(\n markName: SeriesMarkNameEnum | string,\n spec: IAnimationSpec<M, Preset>,\n ctx: IModelMarkAttributeContext\n) {\n const userConfig: Partial<\n Record<IAnimationState, boolean | IStateAnimateSpec<Preset> | IAnimationConfig | IAnimationConfig[]>\n > = {};\n\n if (isValid(spec.animationAppear)) {\n userConfig.appear = spec.animationAppear[markName] ?? spec.animationAppear;\n }\n if (isValid(spec.animationDisappear)) {\n userConfig.disappear = spec.animationDisappear[markName] ?? spec.animationDisappear;\n }\n if (isValid(spec.animationEnter)) {\n userConfig.enter = spec.animationEnter[markName] ?? spec.animationEnter;\n }\n if (isValid(spec.animationExit)) {\n userConfig.exit = spec.animationExit[markName] ?? spec.animationExit;\n }\n if (isValid(spec.animationUpdate)) {\n userConfig.update = spec.animationUpdate[markName] ?? spec.animationUpdate;\n }\n if (isValid(spec.animationState)) {\n userConfig.state = spec.animationState[markName] ?? spec.animationState;\n }\n if (spec.animationNormal && spec.animationNormal[markName]) {\n userConfig.normal = spec.animationNormal[markName];\n }\n\n return uniformAnimationConfig(userConfig, ctx);\n}\n\n/**\n * oneByOne\n */\nfunction produceOneByOne(\n stateConfig: IAnimationTypeConfig,\n dataIndex: (datum: any, params: any) => number,\n dataCount?: () => number\n) {\n const { oneByOne, duration, delay, delayAfter } = stateConfig;\n stateConfig.delay = (datum: any, g: IGraphic, params: any) => {\n const index = dataIndex(datum, params);\n const durationTime = isFunction(duration) ? duration(datum, g, params) : isValidNumber(duration) ? duration : 0;\n const userDelay = isFunction(delay) ? delay(datum, g, params) : isValidNumber(delay) ? delay : 0;\n let oneByOneTime = isFunction(oneByOne) ? oneByOne(datum, g, params) : oneByOne;\n if (oneByOneTime === false) {\n return userDelay;\n }\n oneByOneTime = oneByOneTime === true ? 0 : oneByOneTime;\n return userDelay + index * (durationTime + oneByOneTime);\n };\n stateConfig.delayAfter = (datum: any, g: IGraphic, params: any) => {\n const index = dataIndex(datum, params);\n const durationTime = isFunction(duration) ? duration(datum, g, params) : isValidNumber(duration) ? duration : 0;\n const userDelayAfter = isFunction(delayAfter)\n ? delayAfter(datum, g, params)\n : isValidNumber(delayAfter)\n ? delayAfter\n : 0;\n let oneByOneTime = isFunction(oneByOne) ? oneByOne(datum, g, params) : oneByOne;\n if (oneByOneTime === false) {\n return userDelayAfter;\n }\n const indexCount = dataCount ? dataCount() : g.parent.count - 1;\n oneByOneTime = oneByOneTime === true ? 0 : oneByOneTime;\n return userDelayAfter + (indexCount - index) * (durationTime + oneByOneTime);\n };\n delete stateConfig.oneByOne;\n return stateConfig;\n}\n\nfunction defaultDataIndex(datum: any, graphic: IMarkGraphic) {\n return datum?.[DEFAULT_DATA_INDEX] ?? graphic.context.graphicIndex;\n}\n\nexport function shouldMarkDoMorph(spec: ISeriesSpec & IAnimationSpec<string, string>, markName: string) {\n if (spec.animation === false) {\n return false;\n }\n\n if (spec.morph?.enable === false) {\n return false;\n }\n\n const appearAnimationEnabled = (spec.animationAppear?.[markName] ?? spec.animationAppear) !== false;\n const updateAnimationEnabled = (spec.animationUpdate?.[markName] ?? spec.animationUpdate) !== false;\n\n if (!appearAnimationEnabled || !updateAnimationEnabled) {\n return false;\n }\n\n return true;\n}\n\nexport function isTimeLineAnimation(animationConfig: IAnimationConfig) {\n return isValid((animationConfig as IAnimationTimeline).timeSlices);\n}\n\nexport function isChannelAnimation(animationConfig: IAnimationConfig) {\n return !isTimeLineAnimation(animationConfig) && isValid((animationConfig as ChannelAnimationConfig).channel);\n}\n\nexport function uniformAnimationConfig<Preset extends string>(\n config: Partial<Record<IAnimationState, boolean | IStateAnimateSpec<Preset> | IAnimationConfig | IAnimationConfig[]>>,\n ctx: IModelMarkAttributeContext\n) {\n if (!config) {\n return config;\n }\n const excludeKeys = ['custom', 'customParameters'];\n config = cloneDeep(config, null, excludeKeys);\n traverseSpec(\n config,\n (node: any) => {\n // 将函数转换为 vchart 代理的函数\n // 这里可能会传自定义动画的构造函数,不能被代理\n if (isFunction(node) && node.prototype?.constructor !== node) {\n const name = (...args: any) => {\n return node(...args, ctx);\n };\n return name;\n }\n return node;\n },\n excludeKeys\n );\n\n return config;\n}\n\nfunction traverseSpec(spec: any, transform: (node: any, key: string | number) => any, excludeKeys: string[] = []) {\n if (isArray(spec)) {\n spec.forEach((i: any, index: number) => {\n spec[index] = transform(spec[index], index);\n traverseSpec(spec[index], transform, excludeKeys);\n });\n } else if (isObject(spec)) {\n for (const key in spec) {\n if (!excludeKeys.includes(key)) {\n spec[key] = transform(spec[key], key);\n traverseSpec(spec[key], transform, excludeKeys);\n }\n }\n }\n}\n\nexport function isAnimationEnabledForSeries(series: ISeries) {\n const seriesSpec = series.getSpec();\n\n if (seriesSpec.animation === false) {\n return false;\n }\n\n if (series.getOption()?.globalInstance?.isAnimationEnable() === false) {\n return false;\n }\n\n // if (!isValid(series.getRegion().animate)) {\n // return false;\n // }\n\n let animationThreshold = seriesSpec.animationThreshold ?? Number.MAX_SAFE_INTEGER;\n\n // set mark stroke color follow series color\n // only set normal state in the level lower than level Series\n series.getMarks()?.forEach(m => {\n const config = m.getMarkConfig();\n if (config) {\n if (config.large && config.largeThreshold) {\n animationThreshold = Math.min(animationThreshold, config.largeThreshold);\n }\n if (config.progressiveThreshold) {\n animationThreshold = Math.min(animationThreshold, config.progressiveThreshold);\n }\n }\n });\n // auto close animation\n if (series.getRawData()?.latestData?.length >= animationThreshold) {\n return false;\n }\n\n return true;\n}\n"]}
|
|
@@ -69,15 +69,15 @@ class BaseChartSpecTransformer {
|
|
|
69
69
|
return !0;
|
|
70
70
|
}
|
|
71
71
|
_getDefaultSeriesSpec(chartSpec, pickKeys, pickKeys2) {
|
|
72
|
-
var _a, _b, _c, _d;
|
|
72
|
+
var _a, _b, _c, _d, _e;
|
|
73
73
|
const series = {
|
|
74
74
|
dataKey: chartSpec.dataKey,
|
|
75
75
|
hover: chartSpec.hover,
|
|
76
76
|
select: chartSpec.select,
|
|
77
77
|
label: chartSpec.label,
|
|
78
78
|
seriesStyle: chartSpec.seriesStyle,
|
|
79
|
-
animation: null !== (_a = chartSpec.animation) && void 0 !== _a ? _a : this._option.
|
|
80
|
-
animationThreshold: null !== (
|
|
79
|
+
animation: null !== (_a = chartSpec.animation) && void 0 !== _a ? _a : null === (_b = this._option.globalInstance) || void 0 === _b ? void 0 : _b.isAnimationEnable(),
|
|
80
|
+
animationThreshold: null !== (_c = chartSpec.animationThreshold) && void 0 !== _c ? _c : null === (_e = (_d = this._option).getTheme) || void 0 === _e ? void 0 : _e.call(_d, "animationThreshold"),
|
|
81
81
|
animationAppear: chartSpec.animationAppear,
|
|
82
82
|
animationDisappear: chartSpec.animationDisappear,
|
|
83
83
|
animationEnter: chartSpec.animationEnter,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/chart/base/base-chart-transformer.ts"],"names":[],"mappings":"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","file":"base-chart-transformer.js","sourcesContent":["import { isArray, isNumber, isValid } from '@visactor/vutils';\nimport type { IChartSpec, ISeriesSpec } from '../../typings';\nimport type { IChartSpecInfo, IChartSpecTransformer, IChartSpecTransformerOption } from '../interface';\nimport type { IModelConstructor, IModelSpecInfo } from '../../model/interface';\nimport type { IRegionConstructor, RegionSpec } from '../../region/interface';\nimport { Factory } from '../../core';\nimport type { ISeriesConstructor } from '../../series';\nimport type { IComponentConstructor } from '../../component/interface/common';\nimport { ComponentTypeEnum } from '../../component/interface';\nimport { setProperty } from '@visactor/vutils-extension';\nimport { getRelatedRegionInfo, getRelatedSeriesInfo } from './util';\nimport type { ICartesianBandAxisSpec } from '../..//component/axis/cartesian/interface';\nimport { array } from '../../util';\nimport { getSpecInfo } from '../../component/util';\n\nexport class BaseChartSpecTransformer<T extends IChartSpec> implements IChartSpecTransformer {\n readonly type: string;\n readonly seriesType: string;\n\n protected _option: IChartSpecTransformerOption;\n\n constructor(option: IChartSpecTransformerOption) {\n this._option = option;\n this.type = option.type;\n this.seriesType = option.seriesType;\n }\n\n /** 此方法不建议重写 */\n initChartSpec(chartSpec: T): IChartSpecInfo {\n this.transformSpec(chartSpec);\n return this.transformModelSpec(chartSpec);\n }\n\n /**\n * 转换 chart spec。包含以下步骤:\n * - 将图表 spec 统一转换为 common 图表 spec\n * - 图表层级的在初始化阶段的 spec 修改\n */\n transformSpec(chartSpec: T): void {\n if (!chartSpec.region || chartSpec.region.length === 0) {\n chartSpec.region = [{}];\n }\n if (chartSpec.tooltip === undefined) {\n chartSpec.tooltip = {};\n }\n // 堆积逆序\n if (isValid(chartSpec.stackInverse)) {\n chartSpec.region.forEach((r: RegionSpec) => {\n !isValid(r.stackInverse) && (r.stackInverse = chartSpec.stackInverse);\n });\n }\n // 堆积排序\n if (isValid(chartSpec.stackSort)) {\n chartSpec.region.forEach((r: RegionSpec) => {\n !isValid(r.stackSort) && (r.stackSort = chartSpec.stackSort);\n });\n }\n }\n\n generateTransform(chartSpec: T, isRuntime?: boolean) {\n return (constructor: IModelConstructor, specInfo: IModelSpecInfo, chartSpecInfo?: IChartSpecInfo) => {\n const { spec, specPath, specInfoPath, type } = specInfo;\n const transformer = new constructor.transformerConstructor({\n ...this._option,\n type\n });\n // 调用 model 自己的 transformer 进行转换\n const transformResult = transformer.transformSpec(spec, chartSpec, chartSpecInfo);\n const chartSpecInfoValue = {\n ...specInfo,\n ...transformResult\n };\n if (isRuntime) {\n chartSpecInfoValue.theme = transformer.getTheme(spec, chartSpec);\n } else {\n setProperty(chartSpec, specPath, transformResult.spec);\n }\n setProperty(chartSpecInfo, specInfoPath ?? specPath, chartSpecInfoValue);\n };\n }\n\n /**\n * 转换 model spec。包含以下步骤:\n * - model 层级的主题合并\n * - model 层级的在初始化阶段的 spec 修改,如添加 label spec\n */\n transformModelSpec(chartSpec: T): IChartSpecInfo {\n return this.createSpecInfo(chartSpec, this.generateTransform(chartSpec, false));\n }\n\n /** 遍历图表 spec 中包含的所有的 model,进行 spec 转换并生成图表 spec info */\n createSpecInfo(\n chartSpec: T,\n transform?: (\n /** 当前 model 的类 */\n constructor: IModelConstructor,\n /** 当前 model 的 spec info */\n specInfo: IModelSpecInfo,\n /** 图表 spec info */\n chartSpecInfo?: IChartSpecInfo\n ) => void\n ): IChartSpecInfo {\n if (!transform) {\n transform = this.generateTransform(chartSpec, true);\n }\n\n const currentChartSpecInfo: IChartSpecInfo = {};\n\n /* 预处理 region */\n this.forEachRegionInSpec(chartSpec, transform, currentChartSpecInfo);\n\n /* 预处理 series */\n this.forEachSeriesInSpec(chartSpec, transform, currentChartSpecInfo);\n // 记录每个 series 关联的 region\n currentChartSpecInfo.series?.forEach((seriesSpecInfo, i) => {\n const relatedRegion =\n getRelatedRegionInfo(seriesSpecInfo, currentChartSpecInfo) ?? currentChartSpecInfo.region ?? [];\n const region = relatedRegion[0];\n if (region) {\n if (!region.seriesIndexes) {\n region.seriesIndexes = [];\n }\n region.seriesIndexes.push(i);\n seriesSpecInfo.regionIndexes = region.regionIndexes.slice();\n }\n });\n\n /* 预处理 component */\n this.forEachComponentInSpec(chartSpec, transform, currentChartSpecInfo);\n // 记录每个 component 关联的 region、series\n Object.values(currentChartSpecInfo.component ?? {}).forEach(specInfoList =>\n specInfoList.forEach((componentSpecInfo, i) => {\n if (!componentSpecInfo) {\n return;\n }\n if (!componentSpecInfo.regionIndexes) {\n const relatedRegion =\n getRelatedRegionInfo(componentSpecInfo, currentChartSpecInfo) ?? currentChartSpecInfo.region ?? [];\n componentSpecInfo.regionIndexes = relatedRegion.map(region => region.regionIndexes[0]);\n }\n if (!componentSpecInfo.seriesIndexes) {\n const seriesInfo = getRelatedSeriesInfo(componentSpecInfo, currentChartSpecInfo);\n if (!seriesInfo) {\n const seriesIndexSet = new Set<number>();\n (componentSpecInfo.regionIndexes ?? []).forEach(regionIndex => {\n const region = currentChartSpecInfo.region?.[regionIndex];\n region?.seriesIndexes?.forEach(seriesIndex => seriesIndexSet.add(seriesIndex));\n });\n componentSpecInfo.seriesIndexes = Array.from(seriesIndexSet);\n } else {\n componentSpecInfo.seriesIndexes = seriesInfo.map(({ seriesIndexes }) => seriesIndexes[0]);\n }\n }\n })\n );\n return currentChartSpecInfo;\n }\n\n protected _isValidSeries(seriesType: string): boolean {\n return true;\n }\n\n protected _getDefaultSeriesSpec(chartSpec: any, pickKeys?: string[], pickKeys2?: string[]) {\n const series: any = {\n dataKey: chartSpec.dataKey,\n\n hover: chartSpec.hover,\n select: chartSpec.select,\n\n label: chartSpec.label,\n\n seriesStyle: chartSpec.seriesStyle,\n\n animation: chartSpec.animation ?? this._option.animation,\n animationThreshold: chartSpec.animationThreshold ?? this._option.getTheme?.('animationThreshold'),\n animationAppear: chartSpec.animationAppear,\n animationDisappear: chartSpec.animationDisappear,\n animationEnter: chartSpec.animationEnter,\n animationUpdate: chartSpec.animationUpdate,\n animationExit: chartSpec.animationExit,\n animationNormal: chartSpec.animationNormal,\n animationState: chartSpec.animationState,\n\n extensionMark: chartSpec.extensionMark,\n\n large: chartSpec.large,\n largeThreshold: chartSpec.largeThreshold,\n progressiveStep: chartSpec.progressiveStep,\n progressiveThreshold: chartSpec.progressiveThreshold,\n background: chartSpec.seriesBackground,\n\n invalidType: chartSpec.invalidType,\n\n seriesField: chartSpec.seriesField,\n\n morph: chartSpec.morph,\n\n interactions: chartSpec.interactions\n };\n\n const seriesType = this.seriesType;\n if (seriesType) {\n series.type = seriesType;\n series[seriesType] = (chartSpec as any)[seriesType];\n }\n\n if (pickKeys && pickKeys.length) {\n pickKeys.forEach(k => {\n series[k] = chartSpec[k];\n });\n }\n if (pickKeys2 && pickKeys2.length) {\n pickKeys2.forEach(k => {\n series[k] = chartSpec[k];\n });\n }\n return series;\n }\n\n /** 遍历 spec 中每个有效的 region */\n forEachRegionInSpec<K>(\n chartSpec: T,\n callbackfn: (constructor: IRegionConstructor, specInfo: IModelSpecInfo, chartSpecInfo?: IChartSpecInfo) => K,\n chartSpecInfo?: IChartSpecInfo\n ): K[] {\n const regionSpec = (chartSpec.region as RegionSpec[]) ?? [];\n return regionSpec.map((spec, index) =>\n callbackfn(\n Factory.getRegionInType('region'),\n {\n spec,\n specPath: ['region', index],\n type: 'region',\n regionIndexes: [index]\n },\n chartSpecInfo\n )\n );\n }\n\n /** 遍历 spec 中每个有效的 series */\n forEachSeriesInSpec<K>(\n chartSpec: T,\n callbackfn: (constructor: ISeriesConstructor, specInfo: IModelSpecInfo, chartSpecInfo?: IChartSpecInfo) => K,\n chartSpecInfo?: IChartSpecInfo\n ): K[] {\n const seriesSpec = (chartSpec.series as ISeriesSpec[]) ?? [];\n return seriesSpec.map((spec, index) =>\n callbackfn(\n Factory.getSeriesInType(spec.type),\n {\n spec,\n specPath: ['series', index],\n type: spec.type,\n seriesIndexes: [index]\n },\n chartSpecInfo\n )\n );\n }\n\n /** 遍历 spec 中每个有效的 component */\n forEachComponentInSpec<K>(\n chartSpec: T,\n callbackfn: (constructor: IComponentConstructor, specInfo: IModelSpecInfo, chartSpecInfo?: IChartSpecInfo) => K,\n chartSpecInfo?: IChartSpecInfo\n ): K[] {\n const results: K[] = [];\n const components = Factory.getComponents();\n\n // 坐标轴组件只需要调用一次\n let cartesianAxis: IComponentConstructor;\n let polarAxis: IComponentConstructor;\n let geoCoordinate: IComponentConstructor;\n let tooltip: IComponentConstructor;\n const otherComponents = [];\n\n for (let index = 0; index < components.length; index++) {\n const { cmp, alwaysCheck } = components[index];\n if (cmp.type.startsWith(ComponentTypeEnum.cartesianAxis)) {\n cartesianAxis = cmp;\n } else if (cmp.type.startsWith(ComponentTypeEnum.polarAxis)) {\n polarAxis = cmp;\n } else if (cmp.type === ComponentTypeEnum.geoCoordinate) {\n geoCoordinate = cmp;\n } else if (alwaysCheck || (chartSpec as any)[cmp.specKey ?? cmp.type]) {\n if (cmp.type === ComponentTypeEnum.tooltip) {\n tooltip = cmp;\n } else {\n otherComponents.push(components[index]);\n }\n }\n }\n\n // NOTE: 坐标轴组件需要在其他组件之前创建\n let hasInitAxis = false;\n if (cartesianAxis) {\n const infoList = cartesianAxis.getSpecInfo(chartSpec, chartSpecInfo);\n if (infoList?.length > 0) {\n hasInitAxis = true;\n infoList.forEach(info => {\n const cmp = Factory.getComponentInKey(info.type);\n results.push(callbackfn(cmp, info, chartSpecInfo));\n });\n }\n }\n\n if (polarAxis && !hasInitAxis) {\n const infoList = polarAxis.getSpecInfo(chartSpec, chartSpecInfo);\n if (infoList?.length > 0) {\n hasInitAxis = true;\n infoList.forEach(info => {\n const cmp = Factory.getComponentInKey(info.type);\n results.push(callbackfn(cmp, info, chartSpecInfo));\n });\n }\n }\n\n if (geoCoordinate && !hasInitAxis) {\n geoCoordinate.getSpecInfo(chartSpec, chartSpecInfo)?.forEach(info => {\n results.push(callbackfn(geoCoordinate, info, chartSpecInfo));\n });\n }\n\n otherComponents.sort((a, b) => {\n return a.createOrder - b.createOrder;\n });\n\n otherComponents.forEach(({ cmp: C }) => {\n (C.getSpecInfo ? C.getSpecInfo(chartSpec, chartSpecInfo) : getSpecInfo(chartSpec, C.specKey, C.type))?.forEach(\n info => {\n results.push(callbackfn(C, info, chartSpecInfo));\n }\n );\n });\n\n // NOTE: tooltip 组件需要在 crosshair 组件之后创建\n if (tooltip) {\n getSpecInfo(chartSpec, tooltip.specKey, tooltip.type)?.forEach(info => {\n results.push(callbackfn(tooltip, info, chartSpecInfo));\n });\n }\n\n return results;\n }\n\n /** 处理series配置 */\n transformSeriesSpec(spec: T): void {\n const defaultSeriesSpec = this._getDefaultSeriesSpec(spec);\n if (!spec.series || spec.series.length === 0) {\n spec.series = [defaultSeriesSpec];\n } else {\n spec.series.forEach(s => {\n if (!this._isValidSeries(s.type)) {\n return;\n }\n Object.keys(defaultSeriesSpec).forEach(k => {\n if (!(k in s)) {\n (s as any)[k] = defaultSeriesSpec[k];\n }\n });\n });\n }\n }\n\n protected _findBandAxisBySeries(seriesSpec: ISeriesSpec, seriesIndex: number, axesSpec: any) {\n const isHorizontal = (seriesSpec as any)?.direction === 'horizontal';\n const matchOrient = isHorizontal ? ['left', 'right'] : ['top', 'bottom'];\n const targetBandAxis: any = axesSpec.find((axis: any) => {\n if (!matchOrient.includes(axis.orient)) {\n // orient必须匹配\n return false;\n }\n if (isValid(axis.seriesId)) {\n // 1. 通过seriesId绑定\n if (array(axis.seriesId).includes(seriesSpec?.id)) {\n return true;\n }\n } else if (isValid(axis.seriesIndex)) {\n // 2. 通过seriesIndex绑定\n if (array(axis.seriesIndex).includes(seriesIndex)) {\n return true;\n }\n } else if (axis.type === 'band') {\n // 3. 通过axis type识别\n return true;\n }\n // 4. 剩下的情况满足axis orient要求\n return true;\n });\n\n return targetBandAxis;\n }\n\n /**\n * @description bar chart 和 common chart支持autoBandsize, 此方法用于识别barWidth配置后应用到轴上\n * */\n protected _applyAxisBandSize(\n axis: ICartesianBandAxisSpec,\n extend: number,\n barWidthSpec: {\n barMaxWidth: number | string;\n barMinWidth: number | string;\n barWidth: number | string;\n barGapInGroup: number | string | (number | string)[];\n }\n ) {\n const { barMaxWidth, barMinWidth, barWidth, barGapInGroup } = barWidthSpec;\n let hasBarWidth = false;\n if (isNumber(barMinWidth)) {\n axis.minBandSize = barMinWidth as number;\n hasBarWidth = true;\n } else if (isNumber(barWidth)) {\n axis.minBandSize = barWidth as number;\n hasBarWidth = true;\n } else if (isNumber(barMaxWidth)) {\n axis.minBandSize = barMaxWidth as number;\n hasBarWidth = true;\n }\n if (hasBarWidth) {\n axis.bandSizeLevel = Number.MAX_VALUE; // 影响最底层的 scale\n axis.bandSizeExtend = {\n extend,\n gap: isArray(barGapInGroup) ? barGapInGroup[(barGapInGroup as any[]).length - 1] : barGapInGroup\n };\n }\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/chart/base/base-chart-transformer.ts"],"names":[],"mappings":"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","file":"base-chart-transformer.js","sourcesContent":["import { isArray, isNumber, isValid } from '@visactor/vutils';\nimport type { IChartSpec, ISeriesSpec } from '../../typings';\nimport type { IChartSpecInfo, IChartSpecTransformer, IChartSpecTransformerOption } from '../interface';\nimport type { IModelConstructor, IModelSpecInfo } from '../../model/interface';\nimport type { IRegionConstructor, RegionSpec } from '../../region/interface';\nimport { Factory } from '../../core';\nimport type { ISeriesConstructor } from '../../series';\nimport type { IComponentConstructor } from '../../component/interface/common';\nimport { ComponentTypeEnum } from '../../component/interface';\nimport { setProperty } from '@visactor/vutils-extension';\nimport { getRelatedRegionInfo, getRelatedSeriesInfo } from './util';\nimport type { ICartesianBandAxisSpec } from '../..//component/axis/cartesian/interface';\nimport { array } from '../../util';\nimport { getSpecInfo } from '../../component/util';\n\nexport class BaseChartSpecTransformer<T extends IChartSpec> implements IChartSpecTransformer {\n readonly type: string;\n readonly seriesType: string;\n\n protected _option: IChartSpecTransformerOption;\n\n constructor(option: IChartSpecTransformerOption) {\n this._option = option;\n this.type = option.type;\n this.seriesType = option.seriesType;\n }\n\n /** 此方法不建议重写 */\n initChartSpec(chartSpec: T): IChartSpecInfo {\n this.transformSpec(chartSpec);\n return this.transformModelSpec(chartSpec);\n }\n\n /**\n * 转换 chart spec。包含以下步骤:\n * - 将图表 spec 统一转换为 common 图表 spec\n * - 图表层级的在初始化阶段的 spec 修改\n */\n transformSpec(chartSpec: T): void {\n if (!chartSpec.region || chartSpec.region.length === 0) {\n chartSpec.region = [{}];\n }\n if (chartSpec.tooltip === undefined) {\n chartSpec.tooltip = {};\n }\n // 堆积逆序\n if (isValid(chartSpec.stackInverse)) {\n chartSpec.region.forEach((r: RegionSpec) => {\n !isValid(r.stackInverse) && (r.stackInverse = chartSpec.stackInverse);\n });\n }\n // 堆积排序\n if (isValid(chartSpec.stackSort)) {\n chartSpec.region.forEach((r: RegionSpec) => {\n !isValid(r.stackSort) && (r.stackSort = chartSpec.stackSort);\n });\n }\n }\n\n generateTransform(chartSpec: T, isRuntime?: boolean) {\n return (constructor: IModelConstructor, specInfo: IModelSpecInfo, chartSpecInfo?: IChartSpecInfo) => {\n const { spec, specPath, specInfoPath, type } = specInfo;\n const transformer = new constructor.transformerConstructor({\n ...this._option,\n type\n });\n // 调用 model 自己的 transformer 进行转换\n const transformResult = transformer.transformSpec(spec, chartSpec, chartSpecInfo);\n const chartSpecInfoValue = {\n ...specInfo,\n ...transformResult\n };\n if (isRuntime) {\n chartSpecInfoValue.theme = transformer.getTheme(spec, chartSpec);\n } else {\n setProperty(chartSpec, specPath, transformResult.spec);\n }\n setProperty(chartSpecInfo, specInfoPath ?? specPath, chartSpecInfoValue);\n };\n }\n\n /**\n * 转换 model spec。包含以下步骤:\n * - model 层级的主题合并\n * - model 层级的在初始化阶段的 spec 修改,如添加 label spec\n */\n transformModelSpec(chartSpec: T): IChartSpecInfo {\n return this.createSpecInfo(chartSpec, this.generateTransform(chartSpec, false));\n }\n\n /** 遍历图表 spec 中包含的所有的 model,进行 spec 转换并生成图表 spec info */\n createSpecInfo(\n chartSpec: T,\n transform?: (\n /** 当前 model 的类 */\n constructor: IModelConstructor,\n /** 当前 model 的 spec info */\n specInfo: IModelSpecInfo,\n /** 图表 spec info */\n chartSpecInfo?: IChartSpecInfo\n ) => void\n ): IChartSpecInfo {\n if (!transform) {\n transform = this.generateTransform(chartSpec, true);\n }\n\n const currentChartSpecInfo: IChartSpecInfo = {};\n\n /* 预处理 region */\n this.forEachRegionInSpec(chartSpec, transform, currentChartSpecInfo);\n\n /* 预处理 series */\n this.forEachSeriesInSpec(chartSpec, transform, currentChartSpecInfo);\n // 记录每个 series 关联的 region\n currentChartSpecInfo.series?.forEach((seriesSpecInfo, i) => {\n const relatedRegion =\n getRelatedRegionInfo(seriesSpecInfo, currentChartSpecInfo) ?? currentChartSpecInfo.region ?? [];\n const region = relatedRegion[0];\n if (region) {\n if (!region.seriesIndexes) {\n region.seriesIndexes = [];\n }\n region.seriesIndexes.push(i);\n seriesSpecInfo.regionIndexes = region.regionIndexes.slice();\n }\n });\n\n /* 预处理 component */\n this.forEachComponentInSpec(chartSpec, transform, currentChartSpecInfo);\n // 记录每个 component 关联的 region、series\n Object.values(currentChartSpecInfo.component ?? {}).forEach(specInfoList =>\n specInfoList.forEach((componentSpecInfo, i) => {\n if (!componentSpecInfo) {\n return;\n }\n if (!componentSpecInfo.regionIndexes) {\n const relatedRegion =\n getRelatedRegionInfo(componentSpecInfo, currentChartSpecInfo) ?? currentChartSpecInfo.region ?? [];\n componentSpecInfo.regionIndexes = relatedRegion.map(region => region.regionIndexes[0]);\n }\n if (!componentSpecInfo.seriesIndexes) {\n const seriesInfo = getRelatedSeriesInfo(componentSpecInfo, currentChartSpecInfo);\n if (!seriesInfo) {\n const seriesIndexSet = new Set<number>();\n (componentSpecInfo.regionIndexes ?? []).forEach(regionIndex => {\n const region = currentChartSpecInfo.region?.[regionIndex];\n region?.seriesIndexes?.forEach(seriesIndex => seriesIndexSet.add(seriesIndex));\n });\n componentSpecInfo.seriesIndexes = Array.from(seriesIndexSet);\n } else {\n componentSpecInfo.seriesIndexes = seriesInfo.map(({ seriesIndexes }) => seriesIndexes[0]);\n }\n }\n })\n );\n return currentChartSpecInfo;\n }\n\n protected _isValidSeries(seriesType: string): boolean {\n return true;\n }\n\n protected _getDefaultSeriesSpec(chartSpec: any, pickKeys?: string[], pickKeys2?: string[]) {\n const series: any = {\n dataKey: chartSpec.dataKey,\n\n hover: chartSpec.hover,\n select: chartSpec.select,\n\n label: chartSpec.label,\n\n seriesStyle: chartSpec.seriesStyle,\n\n animation: chartSpec.animation ?? this._option.globalInstance?.isAnimationEnable(),\n animationThreshold: chartSpec.animationThreshold ?? this._option.getTheme?.('animationThreshold'),\n animationAppear: chartSpec.animationAppear,\n animationDisappear: chartSpec.animationDisappear,\n animationEnter: chartSpec.animationEnter,\n animationUpdate: chartSpec.animationUpdate,\n animationExit: chartSpec.animationExit,\n animationNormal: chartSpec.animationNormal,\n animationState: chartSpec.animationState,\n\n extensionMark: chartSpec.extensionMark,\n\n large: chartSpec.large,\n largeThreshold: chartSpec.largeThreshold,\n progressiveStep: chartSpec.progressiveStep,\n progressiveThreshold: chartSpec.progressiveThreshold,\n background: chartSpec.seriesBackground,\n\n invalidType: chartSpec.invalidType,\n\n seriesField: chartSpec.seriesField,\n\n morph: chartSpec.morph,\n\n interactions: chartSpec.interactions\n };\n\n const seriesType = this.seriesType;\n if (seriesType) {\n series.type = seriesType;\n series[seriesType] = (chartSpec as any)[seriesType];\n }\n\n if (pickKeys && pickKeys.length) {\n pickKeys.forEach(k => {\n series[k] = chartSpec[k];\n });\n }\n if (pickKeys2 && pickKeys2.length) {\n pickKeys2.forEach(k => {\n series[k] = chartSpec[k];\n });\n }\n return series;\n }\n\n /** 遍历 spec 中每个有效的 region */\n forEachRegionInSpec<K>(\n chartSpec: T,\n callbackfn: (constructor: IRegionConstructor, specInfo: IModelSpecInfo, chartSpecInfo?: IChartSpecInfo) => K,\n chartSpecInfo?: IChartSpecInfo\n ): K[] {\n const regionSpec = (chartSpec.region as RegionSpec[]) ?? [];\n return regionSpec.map((spec, index) =>\n callbackfn(\n Factory.getRegionInType('region'),\n {\n spec,\n specPath: ['region', index],\n type: 'region',\n regionIndexes: [index]\n },\n chartSpecInfo\n )\n );\n }\n\n /** 遍历 spec 中每个有效的 series */\n forEachSeriesInSpec<K>(\n chartSpec: T,\n callbackfn: (constructor: ISeriesConstructor, specInfo: IModelSpecInfo, chartSpecInfo?: IChartSpecInfo) => K,\n chartSpecInfo?: IChartSpecInfo\n ): K[] {\n const seriesSpec = (chartSpec.series as ISeriesSpec[]) ?? [];\n return seriesSpec.map((spec, index) =>\n callbackfn(\n Factory.getSeriesInType(spec.type),\n {\n spec,\n specPath: ['series', index],\n type: spec.type,\n seriesIndexes: [index]\n },\n chartSpecInfo\n )\n );\n }\n\n /** 遍历 spec 中每个有效的 component */\n forEachComponentInSpec<K>(\n chartSpec: T,\n callbackfn: (constructor: IComponentConstructor, specInfo: IModelSpecInfo, chartSpecInfo?: IChartSpecInfo) => K,\n chartSpecInfo?: IChartSpecInfo\n ): K[] {\n const results: K[] = [];\n const components = Factory.getComponents();\n\n // 坐标轴组件只需要调用一次\n let cartesianAxis: IComponentConstructor;\n let polarAxis: IComponentConstructor;\n let geoCoordinate: IComponentConstructor;\n let tooltip: IComponentConstructor;\n const otherComponents = [];\n\n for (let index = 0; index < components.length; index++) {\n const { cmp, alwaysCheck } = components[index];\n if (cmp.type.startsWith(ComponentTypeEnum.cartesianAxis)) {\n cartesianAxis = cmp;\n } else if (cmp.type.startsWith(ComponentTypeEnum.polarAxis)) {\n polarAxis = cmp;\n } else if (cmp.type === ComponentTypeEnum.geoCoordinate) {\n geoCoordinate = cmp;\n } else if (alwaysCheck || (chartSpec as any)[cmp.specKey ?? cmp.type]) {\n if (cmp.type === ComponentTypeEnum.tooltip) {\n tooltip = cmp;\n } else {\n otherComponents.push(components[index]);\n }\n }\n }\n\n // NOTE: 坐标轴组件需要在其他组件之前创建\n let hasInitAxis = false;\n if (cartesianAxis) {\n const infoList = cartesianAxis.getSpecInfo(chartSpec, chartSpecInfo);\n if (infoList?.length > 0) {\n hasInitAxis = true;\n infoList.forEach(info => {\n const cmp = Factory.getComponentInKey(info.type);\n results.push(callbackfn(cmp, info, chartSpecInfo));\n });\n }\n }\n\n if (polarAxis && !hasInitAxis) {\n const infoList = polarAxis.getSpecInfo(chartSpec, chartSpecInfo);\n if (infoList?.length > 0) {\n hasInitAxis = true;\n infoList.forEach(info => {\n const cmp = Factory.getComponentInKey(info.type);\n results.push(callbackfn(cmp, info, chartSpecInfo));\n });\n }\n }\n\n if (geoCoordinate && !hasInitAxis) {\n geoCoordinate.getSpecInfo(chartSpec, chartSpecInfo)?.forEach(info => {\n results.push(callbackfn(geoCoordinate, info, chartSpecInfo));\n });\n }\n\n otherComponents.sort((a, b) => {\n return a.createOrder - b.createOrder;\n });\n\n otherComponents.forEach(({ cmp: C }) => {\n (C.getSpecInfo ? C.getSpecInfo(chartSpec, chartSpecInfo) : getSpecInfo(chartSpec, C.specKey, C.type))?.forEach(\n info => {\n results.push(callbackfn(C, info, chartSpecInfo));\n }\n );\n });\n\n // NOTE: tooltip 组件需要在 crosshair 组件之后创建\n if (tooltip) {\n getSpecInfo(chartSpec, tooltip.specKey, tooltip.type)?.forEach(info => {\n results.push(callbackfn(tooltip, info, chartSpecInfo));\n });\n }\n\n return results;\n }\n\n /** 处理series配置 */\n transformSeriesSpec(spec: T): void {\n const defaultSeriesSpec = this._getDefaultSeriesSpec(spec);\n if (!spec.series || spec.series.length === 0) {\n spec.series = [defaultSeriesSpec];\n } else {\n spec.series.forEach(s => {\n if (!this._isValidSeries(s.type)) {\n return;\n }\n Object.keys(defaultSeriesSpec).forEach(k => {\n if (!(k in s)) {\n (s as any)[k] = defaultSeriesSpec[k];\n }\n });\n });\n }\n }\n\n protected _findBandAxisBySeries(seriesSpec: ISeriesSpec, seriesIndex: number, axesSpec: any) {\n const isHorizontal = (seriesSpec as any)?.direction === 'horizontal';\n const matchOrient = isHorizontal ? ['left', 'right'] : ['top', 'bottom'];\n const targetBandAxis: any = axesSpec.find((axis: any) => {\n if (!matchOrient.includes(axis.orient)) {\n // orient必须匹配\n return false;\n }\n if (isValid(axis.seriesId)) {\n // 1. 通过seriesId绑定\n if (array(axis.seriesId).includes(seriesSpec?.id)) {\n return true;\n }\n } else if (isValid(axis.seriesIndex)) {\n // 2. 通过seriesIndex绑定\n if (array(axis.seriesIndex).includes(seriesIndex)) {\n return true;\n }\n } else if (axis.type === 'band') {\n // 3. 通过axis type识别\n return true;\n }\n // 4. 剩下的情况满足axis orient要求\n return true;\n });\n\n return targetBandAxis;\n }\n\n /**\n * @description bar chart 和 common chart支持autoBandsize, 此方法用于识别barWidth配置后应用到轴上\n * */\n protected _applyAxisBandSize(\n axis: ICartesianBandAxisSpec,\n extend: number,\n barWidthSpec: {\n barMaxWidth: number | string;\n barMinWidth: number | string;\n barWidth: number | string;\n barGapInGroup: number | string | (number | string)[];\n }\n ) {\n const { barMaxWidth, barMinWidth, barWidth, barGapInGroup } = barWidthSpec;\n let hasBarWidth = false;\n if (isNumber(barMinWidth)) {\n axis.minBandSize = barMinWidth as number;\n hasBarWidth = true;\n } else if (isNumber(barWidth)) {\n axis.minBandSize = barWidth as number;\n hasBarWidth = true;\n } else if (isNumber(barMaxWidth)) {\n axis.minBandSize = barMaxWidth as number;\n hasBarWidth = true;\n }\n if (hasBarWidth) {\n axis.bandSizeLevel = Number.MAX_VALUE; // 影响最底层的 scale\n axis.bandSizeExtend = {\n extend,\n gap: isArray(barGapInGroup) ? barGapInGroup[(barGapInGroup as any[]).length - 1] : barGapInGroup\n };\n }\n }\n}\n"]}
|
|
@@ -83,6 +83,7 @@ export declare class BaseChart<T extends IChartSpec> extends CompilableBase impl
|
|
|
83
83
|
onLayoutStart(): void;
|
|
84
84
|
onLayoutEnd(): void;
|
|
85
85
|
onEvaluateEnd(option: IChartEvaluateOption): void;
|
|
86
|
+
onBeforeRender(): void;
|
|
86
87
|
getLayoutElements(): ILayoutItem[];
|
|
87
88
|
getRegionsInIndex: (index?: number[]) => IRegion[];
|
|
88
89
|
getAllRegions: () => IRegion[];
|
|
@@ -300,6 +300,9 @@ class BaseChart extends compilable_base_1.CompilableBase {
|
|
|
300
300
|
onEvaluateEnd(option) {
|
|
301
301
|
[ ...this._components, ...this._regions, ...this._series ].forEach((element => element.onEvaluateEnd(option)));
|
|
302
302
|
}
|
|
303
|
+
onBeforeRender() {
|
|
304
|
+
[ ...this._components, ...this._regions, ...this._series ].forEach((element => element.onBeforeRender()));
|
|
305
|
+
}
|
|
303
306
|
getLayoutElements() {
|
|
304
307
|
return this.getAllModels().map((i => i.layout)).filter((i => !!i));
|
|
305
308
|
}
|
|
@@ -627,16 +630,10 @@ class BaseChart extends compilable_base_1.CompilableBase {
|
|
|
627
630
|
}));
|
|
628
631
|
}
|
|
629
632
|
_enableMarkAnimation(states) {
|
|
630
|
-
this.getAllMarks().forEach((mark =>
|
|
631
|
-
const product = mark.getProduct();
|
|
632
|
-
product && product.animate;
|
|
633
|
-
}));
|
|
633
|
+
this.getAllMarks().forEach((mark => mark.enableAnimationByState(states)));
|
|
634
634
|
}
|
|
635
635
|
_disableMarkAnimation(states) {
|
|
636
|
-
this.getAllMarks().forEach((mark =>
|
|
637
|
-
const product = mark.getProduct();
|
|
638
|
-
product && product.animate;
|
|
639
|
-
}));
|
|
636
|
+
this.getAllMarks().forEach((mark => mark.disableAnimationByState(states)));
|
|
640
637
|
}
|
|
641
638
|
filterGraphicsByDatum(datum, opt = {}) {
|
|
642
639
|
var _a;
|